commit dd8c694f6b64ceac796061bdd306bc71541d876d Author: ndyysagiii <118824217+ndyysagiii@users.noreply.github.com> Date: Mon Jul 29 11:31:04 2024 +0700 fisrt commit diff --git a/.editorconfig b/.editorconfig new file mode 100644 index 0000000..8f0de65 --- /dev/null +++ b/.editorconfig @@ -0,0 +1,18 @@ +root = true + +[*] +charset = utf-8 +end_of_line = lf +indent_size = 4 +indent_style = space +insert_final_newline = true +trim_trailing_whitespace = true + +[*.md] +trim_trailing_whitespace = false + +[*.{yml,yaml}] +indent_size = 2 + +[docker-compose.yml] +indent_size = 4 diff --git a/.env.example b/.env.example new file mode 100644 index 0000000..478972c --- /dev/null +++ b/.env.example @@ -0,0 +1,58 @@ +APP_NAME=Laravel +APP_ENV=local +APP_KEY= +APP_DEBUG=true +APP_URL=http://localhost + +LOG_CHANNEL=stack +LOG_DEPRECATIONS_CHANNEL=null +LOG_LEVEL=debug + +DB_CONNECTION=mysql +DB_HOST=127.0.0.1 +DB_PORT=3306 +DB_DATABASE=laravel +DB_USERNAME=root +DB_PASSWORD= + +BROADCAST_DRIVER=log +CACHE_DRIVER=file +FILESYSTEM_DISK=local +QUEUE_CONNECTION=sync +SESSION_DRIVER=file +SESSION_LIFETIME=120 + +MEMCACHED_HOST=127.0.0.1 + +REDIS_HOST=127.0.0.1 +REDIS_PASSWORD=null +REDIS_PORT=6379 + +MAIL_MAILER=smtp +MAIL_HOST=mailpit +MAIL_PORT=1025 +MAIL_USERNAME=null +MAIL_PASSWORD=null +MAIL_ENCRYPTION=null +MAIL_FROM_ADDRESS="hello@example.com" +MAIL_FROM_NAME="${APP_NAME}" + +AWS_ACCESS_KEY_ID= +AWS_SECRET_ACCESS_KEY= +AWS_DEFAULT_REGION=us-east-1 +AWS_BUCKET= +AWS_USE_PATH_STYLE_ENDPOINT=false + +PUSHER_APP_ID= +PUSHER_APP_KEY= +PUSHER_APP_SECRET= +PUSHER_HOST= +PUSHER_PORT=443 +PUSHER_SCHEME=https +PUSHER_APP_CLUSTER=mt1 + +VITE_PUSHER_APP_KEY="${PUSHER_APP_KEY}" +VITE_PUSHER_HOST="${PUSHER_HOST}" +VITE_PUSHER_PORT="${PUSHER_PORT}" +VITE_PUSHER_SCHEME="${PUSHER_SCHEME}" +VITE_PUSHER_APP_CLUSTER="${PUSHER_APP_CLUSTER}" diff --git a/.gitattributes b/.gitattributes new file mode 100644 index 0000000..fcb21d3 --- /dev/null +++ b/.gitattributes @@ -0,0 +1,11 @@ +* text=auto eol=lf + +*.blade.php diff=html +*.css diff=css +*.html diff=html +*.md diff=markdown +*.php diff=php + +/.github export-ignore +CHANGELOG.md export-ignore +.styleci.yml export-ignore diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..e6bbd7a --- /dev/null +++ b/.gitignore @@ -0,0 +1,18 @@ +/.phpunit.cache +/node_modules +/public/build +/public/hot +/public/storage +/storage/*.key +/vendor +.env +.env.backup +.env.production +Homestead.json +Homestead.yaml +auth.json +npm-debug.log +yarn-error.log +/.fleet +/.idea +/.vscode diff --git a/README.md b/README.md new file mode 100644 index 0000000..3ed385a --- /dev/null +++ b/README.md @@ -0,0 +1,66 @@ +

Laravel Logo

+ +

+Build Status +Total Downloads +Latest Stable Version +License +

+ +## About Laravel + +Laravel is a web application framework with expressive, elegant syntax. We believe development must be an enjoyable and creative experience to be truly fulfilling. Laravel takes the pain out of development by easing common tasks used in many web projects, such as: + +- [Simple, fast routing engine](https://laravel.com/docs/routing). +- [Powerful dependency injection container](https://laravel.com/docs/container). +- Multiple back-ends for [session](https://laravel.com/docs/session) and [cache](https://laravel.com/docs/cache) storage. +- Expressive, intuitive [database ORM](https://laravel.com/docs/eloquent). +- Database agnostic [schema migrations](https://laravel.com/docs/migrations). +- [Robust background job processing](https://laravel.com/docs/queues). +- [Real-time event broadcasting](https://laravel.com/docs/broadcasting). + +Laravel is accessible, powerful, and provides tools required for large, robust applications. + +## Learning Laravel + +Laravel has the most extensive and thorough [documentation](https://laravel.com/docs) and video tutorial library of all modern web application frameworks, making it a breeze to get started with the framework. + +You may also try the [Laravel Bootcamp](https://bootcamp.laravel.com), where you will be guided through building a modern Laravel application from scratch. + +If you don't feel like reading, [Laracasts](https://laracasts.com) can help. Laracasts contains over 2000 video tutorials on a range of topics including Laravel, modern PHP, unit testing, and JavaScript. Boost your skills by digging into our comprehensive video library. + +## Laravel Sponsors + +We would like to extend our thanks to the following sponsors for funding Laravel development. If you are interested in becoming a sponsor, please visit the Laravel [Patreon page](https://patreon.com/taylorotwell). + +### Premium Partners + +- **[Vehikl](https://vehikl.com/)** +- **[Tighten Co.](https://tighten.co)** +- **[Kirschbaum Development Group](https://kirschbaumdevelopment.com)** +- **[64 Robots](https://64robots.com)** +- **[Cubet Techno Labs](https://cubettech.com)** +- **[Cyber-Duck](https://cyber-duck.co.uk)** +- **[Many](https://www.many.co.uk)** +- **[Webdock, Fast VPS Hosting](https://www.webdock.io/en)** +- **[DevSquad](https://devsquad.com)** +- **[Curotec](https://www.curotec.com/services/technologies/laravel/)** +- **[OP.GG](https://op.gg)** +- **[WebReinvent](https://webreinvent.com/?utm_source=laravel&utm_medium=github&utm_campaign=patreon-sponsors)** +- **[Lendio](https://lendio.com)** + +## Contributing + +Thank you for considering contributing to the Laravel framework! The contribution guide can be found in the [Laravel documentation](https://laravel.com/docs/contributions). + +## Code of Conduct + +In order to ensure that the Laravel community is welcoming to all, please review and abide by the [Code of Conduct](https://laravel.com/docs/contributions#code-of-conduct). + +## Security Vulnerabilities + +If you discover a security vulnerability within Laravel, please send an e-mail to Taylor Otwell via [taylor@laravel.com](mailto:taylor@laravel.com). All security vulnerabilities will be promptly addressed. + +## License + +The Laravel framework is open-sourced software licensed under the [MIT license](https://opensource.org/licenses/MIT). diff --git a/app/Console/Commands/CheckEstimasiPemesanan.php b/app/Console/Commands/CheckEstimasiPemesanan.php new file mode 100644 index 0000000..293df51 --- /dev/null +++ b/app/Console/Commands/CheckEstimasiPemesanan.php @@ -0,0 +1,43 @@ +estimasi_pemesanan == !null && $item->estimasi_pemesanan < $now) { + $item->update([ + 'status_pemesanan' => 'Pemesanan Selesai' + ]); + } + } + } +} diff --git a/app/Console/Kernel.php b/app/Console/Kernel.php new file mode 100644 index 0000000..ed3f2dc --- /dev/null +++ b/app/Console/Kernel.php @@ -0,0 +1,28 @@ +command('inspire')->hourly(); + $schedule->command('app:check-estimasi-pemesanan')->everyMinute(); + } + + /** + * Register the commands for the application. + */ + protected function commands(): void + { + $this->load(__DIR__ . '/Commands'); + + require base_path('routes/console.php'); + } +} diff --git a/app/Exceptions/Handler.php b/app/Exceptions/Handler.php new file mode 100644 index 0000000..b1c262c --- /dev/null +++ b/app/Exceptions/Handler.php @@ -0,0 +1,48 @@ +, \Psr\Log\LogLevel::*> + */ + protected $levels = [ + // + ]; + + /** + * A list of the exception types that are not reported. + * + * @var array> + */ + protected $dontReport = [ + // + ]; + + /** + * A list of the inputs that are never flashed to the session on validation exceptions. + * + * @var array + */ + protected $dontFlash = [ + 'current_password', + 'password', + 'password_confirmation', + ]; + + /** + * Register the exception handling callbacks for the application. + */ + public function register(): void + { + $this->reportable(function (Throwable $e) { + // + }); + } +} diff --git a/app/Http/Controllers/AuthController.php b/app/Http/Controllers/AuthController.php new file mode 100644 index 0000000..46597a6 --- /dev/null +++ b/app/Http/Controllers/AuthController.php @@ -0,0 +1,99 @@ +email); + Session::flash('passwordLogin', $request->password); + + $request->validate([ + 'email' => 'required|email', + 'password' => 'required', + ], [ + 'email.required' => 'Email harus diisi', + 'email.email' => 'Email tidak valid', + 'password.required' => 'Password harus diisi', + ]); + + if (Auth::attempt($request->only('email', 'password'))) { + if (Auth::user()->role == 'admin') { + return redirect('/admin/dashboard'); + } else { + Auth::logout(); + return redirect('/admin/login')->with('fail', 'Anda tidak memiliki akses'); + } + } + + return redirect('/admin/login')->with('logingagal', 'Email atau password salah'); + } + + public function updateprofil(Request $request) + { + if ($request->password) { + $request->validate([ + 'name' => 'required', + 'email' => 'required|email|unique:users,email,' . Auth::user()->id, + 'password' => 'required|min:6', + 'repassword' => 'required|same:password', + ], [ + 'name.required' => 'Nama user harus diisi', + 'email.required' => 'Email user harus diisi', + 'email.email' => 'Email user harus valid', + 'email.unique' => 'Email user sudah terdaftar', + 'password.required' => 'Password user harus diisi', + 'password.min' => 'Password user minimal 6 karakter', + 'repassword.required' => 'Konfirmasi password user harus diisi', + 'repassword.same' => 'Konfirmasi password user tidak sama dengan password', + ]); + + $user = User::find(Auth::user()->id); + $user->update([ + 'name' => $request->name, + 'email' => $request->email, + 'password' => bcrypt($request->password), + ]); + } else { + $request->validate([ + 'name' => 'required', + 'email' => 'required|email|unique:users,email,' . Auth::user()->id, + ], [ + 'name.required' => 'Nama user harus diisi', + 'email.required' => 'Email user harus diisi', + 'email.email' => 'Email user harus valid', + 'email.unique' => 'Email user sudah terdaftar', + ]); + + $user = User::find(Auth::user()->id); + $user->update([ + 'name' => $request->name, + 'email' => $request->email, + ]); + } + + return redirect('/admin/profil')->with('update', 'Profil berhasil diubah'); + } + + public function profil() + { + return view('admin.auth.profil'); + } + + public function logout() + { + Auth::logout(); + return redirect('/admin/login'); + } +} diff --git a/app/Http/Controllers/Controller.php b/app/Http/Controllers/Controller.php new file mode 100644 index 0000000..77ec359 --- /dev/null +++ b/app/Http/Controllers/Controller.php @@ -0,0 +1,12 @@ +subDays(6); + $end = Carbon::now(); + + $report = Transaksi::selectRaw('DATE(created_at) as date, COUNT(id) as total_transaksi, SUM(total_harga) as total_harga') + ->whereBetween('created_at', [$start, $end]) + ->where('status_pembayaran', 'paid') + ->groupBy('date') + ->get() + ->keyBy('date'); + + // Generate an array of dates for the last 7 days + $dates = []; + for ($date = $start; $date->lte($end); $date->addDay()) { + $dates[$date->format('Y-m-d')] = [ + 'date' => $date->format('Y-m-d'), + 'total_transaksi' => $report->has($date->format('Y-m-d')) ? (int) $report[$date->format('Y-m-d')]->total_transaksi : 0, + 'total_harga' => $report->has($date->format('Y-m-d')) ? (int) $report[$date->format('Y-m-d')]->total_harga : 0, + ]; + } + + $total_transaksi_count = Transaksi::count(); + $total_user = User::where('role', 'user')->count(); + $total_product = Product::count(); + $total_kategori = Kategori::count(); + + return view('admin.pages.dashboard', [ + 'total_transaksi_count' => $total_transaksi_count, + 'total_user' => $total_user, + 'total_product' => $total_product, + 'total_kategori' => $total_kategori, + 'report' => array_values($dates) + ]); + } + + + +} diff --git a/app/Http/Controllers/KategoriController.php b/app/Http/Controllers/KategoriController.php new file mode 100644 index 0000000..e0f3524 --- /dev/null +++ b/app/Http/Controllers/KategoriController.php @@ -0,0 +1,59 @@ +sortByDesc('id'); + return view('admin.pages.kategori', [ + 'kategori' => $kategori, + ]); + } + + public function store(Request $request) + { + $request->validate([ + 'nama' => 'required', + ], [ + 'nama.required' => 'Nama kategori harus diisi', + ]); + + Kategori::create([ + 'nama' => $request->nama, + ]); + + return redirect('/admin/kategori')->with('store', 'Kategori berhasil ditambahkan'); + } + + public function edit(Request $request, $id) + { + $request->validate([ + 'nama' => 'required', + ], [ + 'nama.required' => 'Nama kategori harus diisi', + ]); + + Kategori::where('id', $id)->update([ + 'nama' => $request->nama, + ]); + + return redirect('/admin/kategori')->with('update', 'Kategori berhasil diubah'); + } + + public function destroy($id) + { + // cek apakah kategori ini memiliki produk + $kategori = Kategori::find($id); + if ($kategori->product->count() > 0) { + return redirect('/admin/kategori')->with('kategori-product', 'Kategori ini memiliki produk'); + } + + Kategori::destroy($id); + return redirect('/admin/kategori')->with('destroy', 'Kategori berhasil dihapus'); + } +} diff --git a/app/Http/Controllers/ProductController.php b/app/Http/Controllers/ProductController.php new file mode 100644 index 0000000..d375759 --- /dev/null +++ b/app/Http/Controllers/ProductController.php @@ -0,0 +1,138 @@ +get()->sortByDesc('id'); + return view('admin.pages.product', [ + 'product' => $product, + 'kategori' => $kategori, + ]); + } + + public function store(Request $request) + { + $request->validate([ + 'nama' => 'required', + // 'deskripsi' => 'required', + 'harga' => 'required|numeric|min:1', + 'gambar' => 'required|image|mimes:jpeg,png,jpg,gif,svg|max:2048', + 'stok' => 'required|numeric|min:1', + 'id_kategori' => 'required', + ], [ + 'nama.required' => 'Nama produk harus diisi', + // 'deskripsi.required' => 'Deskripsi produk harus diisi', + 'harga.required' => 'Harga produk harus diisi', + 'harga.numeric' => 'Harga produk harus berupa angka', + 'harga.min' => 'Harga produk minimal 1', + 'gambar.required' => 'Gambar produk harus diisi', + 'gambar.image' => 'Gambar produk harus berupa gambar', + 'gambar.mimes' => 'Gambar produk harus berupa gambar dengan format jpeg, png, jpg, gif, atau svg', + 'gambar.max' => 'Ukuran gambar produk maksimal 2 MB', + 'stok.required' => 'Stok produk harus diisi', + 'stok.min' => 'Stok produk minimal 1', + 'stok.numeric' => 'Stok produk harus berupa angka', + 'id_kategori.required' => 'Kategori produk harus diisi', + ]); + + $gambar = $request->file('gambar'); + $nama_gambar = time() . '_' . $gambar->getClientOriginalName(); + $gambar->move('img/product', $nama_gambar); + + Product::create([ + 'nama' => $request->nama, + // 'deskripsi' => $request->deskripsi, + 'harga' => $request->harga, + 'gambar' => $nama_gambar, + 'stok' => $request->stok, + 'id_kategori' => $request->id_kategori, + ]); + + return redirect('/admin/product')->with('store', 'Produk berhasil ditambahkan'); + } + + public function edit(Request $request, $id) + { + $request->validate([ + 'nama' => 'required', + // 'deskripsi' => 'required', + 'harga' => 'required|numeric|min:1', + 'gambar' => 'image|mimes:jpeg,png,jpg,gif,svg|max:2048', + 'stok' => 'required|numeric|min:1', + 'id_kategori' => 'required', + ], [ + 'nama.required' => 'Nama produk harus diisi', + // 'deskripsi.required' => 'Deskripsi produk harus diisi', + 'harga.required' => 'Harga produk harus diisi', + 'harga.numeric' => 'Harga produk harus berupa angka', + 'harga.min' => 'Harga produk minimal 1', + 'gambar.image' => 'Gambar produk harus berupa gambar', + 'gambar.mimes' => 'Gambar produk harus berupa gambar dengan format jpeg, png, jpg, gif, atau svg', + 'gambar.max' => 'Ukuran gambar produk maksimal 2 MB', + 'stok.required' => 'Stok produk harus diisi', + 'stok.min' => 'Stok produk minimal 1', + 'stok.numeric' => 'Stok produk harus berupa angka', + 'id_kategori.required' => 'Kategori produk harus diisi', + ]); + + $product = Product::find($id); + + if ($request->hasFile('gambar')) { + + // hapus gambar lama + $gambar_lama = 'img/product/' . $product->gambar; + if (file_exists($gambar_lama)) { + unlink($gambar_lama); + } + + $gambar = $request->file('gambar'); + $nama_gambar = time() . '_' . $gambar->getClientOriginalName(); + $gambar->move('img/product', $nama_gambar); + } else { + $nama_gambar = $product->gambar; + } + + Product::where('id', $id)->update([ + 'nama' => $request->nama, + // 'deskripsi' => $request->deskripsi, + 'harga' => $request->harga, + 'gambar' => $nama_gambar, + 'stok' => $request->stok, + 'id_kategori' => $request->id_kategori, + ]); + + return redirect('/admin/product')->with('update', 'Produk berhasil diubah'); + } + + public function destroy($id) + { + // cek apakah produk ini memiliki transaksi + $product = Product::find($id); + if ($product->detailTransaksi->count() > 0) { + return redirect('/admin/product')->with('product-transaksi', 'Produk ini ada di transaksi'); + } + + // cek apakah produk ini memiliki cart + if ($product->cart->count() > 0) { + return redirect('/admin/product')->with('product-cart', 'Produk ini ada di cart'); + } + + // hapus gambar + $product = Product::find($id); + $gambar = 'img/product/' . $product->gambar; + if (file_exists($gambar)) { + unlink($gambar); + } + + Product::destroy($id); + return redirect('/admin/product')->with('destroy', 'Produk berhasil dihapus'); + } +} diff --git a/app/Http/Controllers/ReportController.php b/app/Http/Controllers/ReportController.php new file mode 100644 index 0000000..36f2c10 --- /dev/null +++ b/app/Http/Controllers/ReportController.php @@ -0,0 +1,171 @@ +get()->sortByDesc('id'); + $total = Transaksi::select(DB::raw('DATE(created_at) as date'), DB::raw('SUM(total_harga) as total_revenue')) + ->groupBy('date') + ->get(); + $transactions = Transaksi::with('detailTransaksi.product') + ->get(); + + // Mengelompokkan dan menghitung data per produk + $productData = []; + + foreach ($transactions as $transaction) { + foreach ($transaction->detailTransaksi as $detail) { + $productName = $detail->product->nama; + $quantity = $detail->jumlah; + $price = $detail->product->harga; + + if (!isset($productData[$productName])) { + $productData[$productName] = [ + 'name' => $productName, + 'total_sold' => 0, + 'total_revenue' => 0, + ]; + } + + $productData[$productName]['total_sold'] += $quantity; + $productData[$productName]['total_revenue'] += $quantity * $price; + } + } + + // Format hasil akhir + $result = []; + foreach ($productData as $product) { + $result[] = [ + 'name' => $product['name'], + 'total_sold' => $product['total_sold'], + 'total_revenue' => $product['total_revenue'], + ]; + } + return view('admin.pages.report', [ + 'transaksi' => $transaksi, + 'total' => $total, + 'result' => $result + ]); + } + + public function filter(Request $request) + { + $date1 = $request->date1; + $date2 = $request->date2; + $status = $request->status; + + // Base query with relationships loaded + $query = Transaksi::with('user', 'detailTransaksi'); + + // Apply filters if both dates and status are provided + if ($date1 && $date2 && $status) { + $query->whereBetween('created_at', [$date1, $date2]) + ->where('status_pembayaran', $status); + } + // Apply date range filter if both dates are provided but status is not + elseif ($date1 && $date2) { + $query->whereBetween('created_at', [$date1, $date2]); + } + // Apply status filter if status is provided but dates are not + elseif ($status) { + $query->where('status_pembayaran', $status); + } + + // Execute the query and get the results + $transaksi = $query->get(); + + + // tampilkan total pendapatan per tanggal yang dipilih jika ada filter tanggal yang dipilih dan status nya + if ($date1 && $date2 && $status) { + $total = Transaksi::whereBetween('created_at', [$date1, $date2]) + ->where('status_pembayaran', $status) + ->select(DB::raw('DATE(created_at) as date'), DB::raw('SUM(total_harga) as total_revenue')) + ->groupBy('date') + ->get(); + } + // tampilkan total pendapatan per tanggal yang dipilih jika ada filter tanggal yang dipilih + elseif ($date1 && $date2) { + $total = Transaksi::whereBetween('created_at', [$date1, $date2]) + ->select(DB::raw('DATE(created_at) as date'), DB::raw('SUM(total_harga) as total_revenue')) + ->groupBy('date') + ->get(); + } + // tampilkan total pendapatan per tanggal yang dipilih jika ada filter status nya + elseif ($status) { + $total = Transaksi::where('status_pembayaran', $status) + ->select(DB::raw('DATE(created_at) as date'), DB::raw('SUM(total_harga) as total_revenue')) + ->groupBy('date') + ->get(); + } + // tampilkan total pendapatan per tanggal yang dipilih jika tidak ada filter tanggal dan status + else { + $total = Transaksi::select(DB::raw('DATE(created_at) as date'), DB::raw('SUM(total_harga) as total_revenue')) + ->groupBy('date') + ->get(); + } + + // Ambil data transaksi sesuai dengan filter yang diterapkan + if ($date1 && $date2 && $status) { + $transactions = Transaksi::whereBetween('created_at', [$date1, $date2]) + ->where('status_pembayaran', $status) + ->with('detailTransaksi.product') + ->get(); + } elseif ($date1 && $date2) { + $transactions = Transaksi::whereBetween('created_at', [$date1, $date2]) + ->with('detailTransaksi.product') + ->get(); + } elseif ($status) { + $transactions = Transaksi::where('status_pembayaran', $status) + ->with('detailTransaksi.product') + ->get(); + } else { + $transactions = Transaksi::with('detailTransaksi.product') + ->get(); + } + + // Mengelompokkan dan menghitung data per produk + $productData = []; + + foreach ($transactions as $transaction) { + foreach ($transaction->detailTransaksi as $detail) { + $productName = $detail->product->nama; + $quantity = $detail->jumlah; + $price = $detail->product->harga; + + if (!isset($productData[$productName])) { + $productData[$productName] = [ + 'name' => $productName, + 'total_sold' => 0, + 'total_revenue' => 0, + ]; + } + + $productData[$productName]['total_sold'] += $quantity; + $productData[$productName]['total_revenue'] += $quantity * $price; + } + } + + // Format hasil akhir + $result = []; + foreach ($productData as $product) { + $result[] = [ + 'name' => $product['name'], + 'total_sold' => $product['total_sold'], + 'total_revenue' => $product['total_revenue'], + ]; + } + + return view('admin.pages.report', [ + 'transaksi' => $transaksi, + 'total' => $total, + 'result' => $result + ]); + } +} diff --git a/app/Http/Controllers/TransaksiController.php b/app/Http/Controllers/TransaksiController.php new file mode 100644 index 0000000..de4c830 --- /dev/null +++ b/app/Http/Controllers/TransaksiController.php @@ -0,0 +1,30 @@ +get()->sortByDesc('id'); + + // date dan time sekarang + $now = date('Y-m-d H:i:s'); + + foreach ($transaksi as $item) { + // jika estimasi pemesanan sudah lewat dari waktu sekarang, maka status pemesanan menjadi Pemesanan Selesai + if ($item->estimasi_pemesanan == !null && $item->estimasi_pemesanan < $now) { + $item->update([ + 'status_pemesanan' => 'Pemesanan Selesai' + ]); + } + } + + return view('admin.pages.transaksi', [ + 'transaksi' => $transaksi + ]); + } +} diff --git a/app/Http/Controllers/User/AuthController.php b/app/Http/Controllers/User/AuthController.php new file mode 100644 index 0000000..ec312c7 --- /dev/null +++ b/app/Http/Controllers/User/AuthController.php @@ -0,0 +1,201 @@ +email); + Session::flash('passwordLogin', $request->password); + + $request->validate([ + 'email' => 'required|email', + 'password' => 'required', + ], [ + 'email.required' => 'Email harus diisi', + 'email.email' => 'Email tidak valid', + 'password.required' => 'Password harus diisi', + ]); + + $credentials = $request->only('email', 'password'); + if (auth()->attempt($credentials)) { + return redirect('/')->with('login', 'Login berhasil'); + } + + return redirect()->back()->with('loginerror', 'Email atau password salah'); + } + + public function registerPost(Request $request) + { + Session::flash('nameRegister', $request->name); + Session::flash('emailRegister', $request->email); + + $request->validate([ + 'name' => 'required', + 'email' => 'required|email|unique:users,email', + 'password' => 'required|min:6', + 'repassword' => 'required|same:password', + ], [ + 'name.required' => 'Nama user harus diisi', + 'email.required' => 'Email user harus diisi', + 'email.email' => 'Email user harus valid', + 'email.unique' => 'Email user sudah terdaftar', + 'password.required' => 'Password user harus diisi', + 'password.min' => 'Password user minimal 6 karakter', + 'repassword.required' => 'Konfirmasi password user harus diisi', + 'repassword.same' => 'Konfirmasi password user tidak sama dengan password', + ]); + + User::create([ + 'name' => $request->name, + 'email' => $request->email, + 'password' => bcrypt($request->password), + 'role' => 'user', + ]); + + return redirect('/user/login')->with('register', 'Registrasi berhasil, silahkan login'); + } + + public function updateprofil(Request $request) + { + $request->validate([ + 'name' => 'required', + 'email' => 'required|email|unique:users,email,' . auth()->user()->id, + 'password' => 'nullable|min:6', + 'repassword' => 'nullable|same:password', + ], [ + 'name.required' => 'Nama user harus diisi', + 'email.required' => 'Email user harus diisi', + 'email.email' => 'Email user harus valid', + 'email.unique' => 'Email user sudah terdaftar', + 'password.min' => 'Password user minimal 6 karakter', + 'repassword.same' => 'Konfirmasi password user tidak sama dengan password', + ]); + + $user = User::find(auth()->user()->id); + $user->name = $request->name; + $user->email = $request->email; + if ($request->password) { + $user->password = bcrypt($request->password); + } + $user->save(); + + return redirect('/user/profil')->with('updateprofil', 'Profil berhasil diupdate'); + } + + public function profil() + { + return view('user.auth.profil'); + } + + public function logout() + { + auth()->logout(); + return redirect('/')->with('logout', 'Logout berhasil'); + } + + public function linkresetpassword() + { + return view('user.auth.reset-password'); + } + + public function changepassword($code) + { + $user = User::where('code', $code)->where('status_code', 'aktif')->where('role', 'user')->first(); + if ($user) { + return view('user.auth.change-password', [ + 'user' => $user, + ]); + } else { + return redirect('/')->with('linkkadaluarsa', 'Reset Password Gagal'); + } + } + + public function changepasswordpost(Request $request) + { + $user = User::where('code', $request->code)->where('status_code', 'aktif')->where('role', 'user')->first(); + $request->validate([ + 'password' => 'required', + 'repassword' => 'required|same:password', + ], [ + 'password.required' => 'Password tidak boleh kosong', + 'repassword.required' => 'Re-Password tidak boleh kosong', + 'repassword.same' => 'Re-Password tidak sama dengan Password', + ]); + + $user->password = bcrypt($request->password); + $user->code = null; + $user->status_code = "tidak_aktif"; + $user->save(); + + return redirect('/')->with('resetpasswordberhasil', 'Reset Password Berhasil'); + } + + public function sendlinkresetpassword(Request $request) + { + $request->validate([ + 'email' => ['required'], + ], [ + 'email.required' => 'Email tidak boleh kosong', + ]); + + $user = User::where('email', $request->email)->where('role', 'user')->first(); + + if ($user) { + try { + $mail = new PHPMailer(true); + + //Server settings + $mail->SMTPDebug = SMTP::DEBUG_SERVER; //Enable verbose debug output + $mail->isSMTP(); //Send using SMTP + $mail->Host = 'monza.id.domainesia.com'; //Set the SMTP server to send through + $mail->SMTPAuth = true; //Enable SMTP authentication + $mail->Username = 'rentcar@kaliansenang.my.id'; //SMTP username + $mail->Password = 'Gituajamarah#23'; //SMTP password + $mail->SMTPSecure = 'ssl'; //Enable implicit TLS encryption + $mail->Port = 465; + //Recipients + $mail->setFrom('rentcar@kaliansenang.my.id', 'Pemesanan Makanan'); + $mail->addAddress($request->email); //Add a recipient + + $Code = substr((str_shuffle("0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ")), 0, 10); + + //Content + $mail->isHTML(true); //Set email format to HTML + $mail->Subject = 'Password Reset'; + $mail->Body = 'To reset your password, please click the link below:

Reset Password'; + $updatecode = User::where('email', '=', $request->email)->first(); + $updatecode->code = $Code; + $updatecode->status_code = 'aktif'; + $updatecode->save(); + + $mail->send(); + + return redirect('/user/reset-password')->with('linkresetdikirim', 'Link reset password telah dikirim ke email'); + } catch (Exception $e) { + } + } else { + return redirect()->back()->with('emailtidakditemukan', 'Email tidak ditemukan'); + } + } +} diff --git a/app/Http/Controllers/User/CartController.php b/app/Http/Controllers/User/CartController.php new file mode 100644 index 0000000..67ca7ac --- /dev/null +++ b/app/Http/Controllers/User/CartController.php @@ -0,0 +1,258 @@ +where('id_user', auth()->user()->id)->get()->sortByDesc('id'); + $sum_cart = Cart::where('id_user', auth()->user()->id)->sum('total_harga'); + return view('user.pages.cart', [ + 'cart' => $cart, + 'sum_cart' => $sum_cart + ]); + } + + public function store(Request $request) + { + $request->validate([ + 'id_product' => 'required|exists:product,id', + 'jumlah' => 'required|integer|min:1', + ], [ + 'id_product.required' => 'Produk tidak boleh kosong', + 'id_product.exists' => 'Produk tidak ditemukan', + 'jumlah.required' => 'Jumlah tidak boleh kosong', + 'jumlah.integer' => 'Jumlah harus berupa angka', + 'jumlah.min' => 'Jumlah minimal 1', + + ]); + + $stok = Product::find($request->id_product)->stok; + + $jumlah_transaksi_paid = DetailTransaksi::where('id_product', $request->id_product)->whereHas('transaksi', function ($query) { + $query->where('status_pembayaran', 'paid'); + })->sum('jumlah'); + + $jumlah_transaksi_pending = DetailTransaksi::where('id_product', $request->id_product)->whereHas('transaksi', function ($query) { + $query->where('status_pembayaran', 'pending'); + })->sum('jumlah'); + + $jumlah_transaksi = $jumlah_transaksi_paid + $jumlah_transaksi_pending; + + if ($request->jumlah > $stok - $jumlah_transaksi) { + return redirect()->back()->with('stoktidakcukup', 'Stok produk ' . Product::find($request->id_product)->nama . ' tidak mencukupi'); + } + + $product = Product::find($request->id_product); + $cart = Cart::where('id_user', auth()->user()->id)->where('id_product', $request->id_product)->first(); + if ($cart) { + $cart->update([ + 'jumlah' => $cart->jumlah + $request->jumlah, + 'total_harga' => $cart->product->harga * ($cart->jumlah + $request->jumlah) + ]); + } else { + Cart::create([ + 'id_user' => auth()->user()->id, + 'id_product' => $request->id_product, + 'jumlah' => $request->jumlah, + 'total_harga' => $request->jumlah * $product->harga + ]); + } + return redirect('/user/product/' . $request->id_product)->with('storecart', 'Produk berhasil ditambahkan ke keranjang'); + } + + public function update(Request $request) + { + // cek cart user + $cart = Cart::where('id_user', auth()->user()->id)->get(); + if ($cart->count() == 0) { + return redirect('/user/cart')->with('kosongcart', 'Keranjang kosong'); + } + + // Validasi data yang diterima dari form + $request->validate([ + 'items.*.id' => 'required|exists:cart,id', + 'items.*.jumlah' => 'required|integer|min:1', + ], [ + 'items.*.id.required' => 'Produk tidak boleh kosong', + 'items.*.id.exists' => 'Produk tidak ditemukan', + 'items.*.jumlah.required' => 'Jumlah tidak boleh kosong', + 'items.*.jumlah.integer' => 'Jumlah harus berupa angka', + 'items.*.jumlah.min' => 'Jumlah minimal 1', + + ]); + + // loop cek stok + foreach ($request->items as $item) { + $stok = Product::find(Cart::find($item['id'])->id_product)->stok; + $jumlah_transaksi_paid = DetailTransaksi::where('id_product', Cart::find($item['id'])->id_product)->whereHas('transaksi', function ($query) { + $query->where('status_pembayaran', 'paid'); + })->sum('jumlah'); + + $jumlah_transaksi_pending = DetailTransaksi::where('id_product', Cart::find($item['id'])->id_product)->whereHas('transaksi', function ($query) { + $query->where('status_pembayaran', 'pending'); + })->sum('jumlah'); + + $jumlah_transaksi = $jumlah_transaksi_paid + $jumlah_transaksi_pending; + + if ($item['jumlah'] > $stok - $jumlah_transaksi) { + return redirect()->back()->with('stoktidakcukup', 'Stok produk ' . Cart::find($item['id'])->product->nama . ' tidak mencukupi'); + } + } + + + // Loop melalui item yang diterima dari form + foreach ($request->items as $item) { + $cart = Cart::find($item['id']); + $cart->update([ + 'jumlah' => $item['jumlah'], + 'total_harga' => $cart->product->harga * $item['jumlah'], + ]); + } + + return redirect('/user/cart')->with('updatecart', 'Keranjang berhasil diupdate'); + } + + public function destroy($id) + { + $cart = Cart::find($id); + $cart->delete(); + return redirect('/user/cart')->with('deletecart', 'Produk berhasil dihapus dari keranjang'); + } + + + public function checkout() + { + $cart = Cart::where('id_user', auth()->user()->id)->get(); + if ($cart->count() == 0) { + return redirect('/user/cart')->with('kosongcart', 'Keranjang kosong'); + } + + // loop cek stok + foreach ($cart as $c) { + $stok = Product::find($c->id_product)->stok; + $jumlah_transaksi_paid = DetailTransaksi::where('id_product', $c->id_product)->whereHas('transaksi', function ($query) { + $query->where('status_pembayaran', 'paid'); + })->sum('jumlah'); + + $jumlah_transaksi_pending = DetailTransaksi::where('id_product', $c->id_product)->whereHas('transaksi', function ($query) { + $query->where('status_pembayaran', 'pending'); + })->sum('jumlah'); + + $jumlah_transaksi = $jumlah_transaksi_paid + $jumlah_transaksi_pending; + + if ($c->jumlah > $stok - $jumlah_transaksi) { + return redirect()->back()->with('stoktidakcukup', 'Stok produk ' . $c->product->nama . ' tidak mencukupi'); + } + } + + $transaksi = new Transaksi(); + $transaksi->no_transaksi = 'TRX' . date('YmdHis'); + $transaksi->total_harga = $cart->sum('total_harga'); + $transaksi->status_pembayaran = 'Belum Pilih Pembayaran'; + $transaksi->status_pemesanan = 'Menunggu Pembayaran'; + $transaksi->bank = ''; + $transaksi->no_va = ''; + $transaksi->expired_at = ''; + $transaksi->id_user = auth()->user()->id; + $transaksi->save(); + foreach ($cart as $c) { + $detail_transaksi = new DetailTransaksi(); + $detail_transaksi->id_transaksi = $transaksi->id; + $detail_transaksi->id_product = $c->id_product; + $detail_transaksi->total_harga = $c->total_harga; + $detail_transaksi->jumlah = $c->jumlah; + $detail_transaksi->save(); + } + + $delete_cart = Cart::where('id_user', auth()->user()->id)->get(); + if ($delete_cart) { + foreach ($delete_cart as $dc) { + $dc->delete(); + } + } + + \Midtrans\Config::$serverKey = 'SB-Mid-server-QmM6Wx6PNzqhOeVL9f4tnBM7'; + // Set to Development/Sandbox Environment (default). Set to true for Production Environment (accept real transaction). + \Midtrans\Config::$isProduction = false; + + // \Midtrans\Config::$isProduction = true; + // Set sanitization on (default) + \Midtrans\Config::$isSanitized = true; + // Set 3DS transaction for credit card to true + \Midtrans\Config::$is3ds = true; + + $params = array( + 'transaction_details' => array( + 'order_id' => $transaksi->no_transaksi, + 'gross_amount' => $transaksi->total_harga, + ), + 'customer_details' => array( + 'first_name' => auth()->user()->name, + // 'phone' => auth()->user()->phone, + 'email' => auth()->user()->email, + ), + 'item_details' => array( + array( + 'id' => $transaksi->no_transaksi, + 'price' => $transaksi->total_harga, + 'quantity' => 1, + 'name' => 'Pembayaran Produk', + ), + ), + ); + + $snapToken = \Midtrans\Snap::getSnapToken($params); + + return view('user.pages.checkout', [ + 'transaksi' => $transaksi, + 'snapToken' => $snapToken + ]); + } + + public function callback(Request $request) + { + $serverkey = 'SB-Mid-server-QmM6Wx6PNzqhOeVL9f4tnBM7'; + $hashed = hash('sha512', $request->order_id . $request->status_code . $request->gross_amount . $serverkey); + + if ($hashed == $request->signature_key) { + if ($request->transaction_status == 'settlement') { + + $order = Transaksi::where('no_transaksi', $request->order_id)->first(); + $order->bank = $request->va_numbers[0]['bank']; + $order->no_va = $request->va_numbers[0]['va_number']; + $order->expired_at = $request->expiry_time; + $order->status_pembayaran = 'paid'; + $order->status_pemesanan = 'Pesanan Diproses'; + // 10 menit setelah pembayaran sukses + $order->estimasi_pemesanan = date('Y-m-d H:i:s', strtotime('+10 minutes')); + $order->save(); + } elseif ($request->transaction_status == 'pending') { + + $order = Transaksi::where('no_transaksi', $request->order_id)->first(); + $order->bank = $request->va_numbers[0]['bank']; + $order->no_va = $request->va_numbers[0]['va_number']; + $order->expired_at = $request->expiry_time; + $order->status_pembayaran = 'pending'; + $order->status_pemesanan = 'Menunggu Pembayaran'; + $order->save(); + } else { + $order = Transaksi::where('no_transaksi', $request->order_id)->first(); + $order->bank = $request->va_numbers[0]['bank']; + $order->no_va = $request->va_numbers[0]['va_number']; + $order->expired_at = $request->expiry_time; + $order->status_pembayaran = 'expire'; + $order->status_pemesanan = 'Pesanan Dibatalkan'; + $order->save(); + } + } + } +} diff --git a/app/Http/Controllers/User/CheckoutController.php b/app/Http/Controllers/User/CheckoutController.php new file mode 100644 index 0000000..9825bdc --- /dev/null +++ b/app/Http/Controllers/User/CheckoutController.php @@ -0,0 +1,57 @@ +bank != '' && $transaksi->no_va != '') { + $snapToken = ''; + } else { + \Midtrans\Config::$serverKey = 'SB-Mid-server-QmM6Wx6PNzqhOeVL9f4tnBM7'; + // Set to Development/Sandbox Environment (default). Set to true for Production Environment (accept real transaction). + \Midtrans\Config::$isProduction = false; + + // \Midtrans\Config::$isProduction = true; + // Set sanitization on (default) + \Midtrans\Config::$isSanitized = true; + // Set 3DS transaction for credit card to true + \Midtrans\Config::$is3ds = true; + + $params = array( + 'transaction_details' => array( + 'order_id' => $transaksi->no_transaksi, + 'gross_amount' => $transaksi->total_harga, + ), + 'customer_details' => array( + 'first_name' => auth()->user()->name, + // 'phone' => auth()->user()->phone, + 'email' => auth()->user()->email, + ), + 'item_details' => array( + array( + 'id' => $transaksi->no_transaksi, + 'price' => $transaksi->total_harga, + 'quantity' => 1, + 'name' => 'Pembayaran Produk', + ), + ), + ); + + $snapToken = \Midtrans\Snap::getSnapToken($params); + } + + + return view('user.pages.checkout', [ + 'transaksi' => $transaksi, + 'snapToken' => $snapToken + ]); + } +} diff --git a/app/Http/Controllers/User/DetailProductController.php b/app/Http/Controllers/User/DetailProductController.php new file mode 100644 index 0000000..6e8cc69 --- /dev/null +++ b/app/Http/Controllers/User/DetailProductController.php @@ -0,0 +1,22 @@ +find($id); + // $relateProduct = Product::where('id_kategori', $product->id_kategori)->where('id', '!=', $id)->get(); + return view('user.pages.product-detail', [ + 'product' => $product, + // 'relateProduct' => $relateProduct, + ]); + } +} diff --git a/app/Http/Controllers/User/LandingController.php b/app/Http/Controllers/User/LandingController.php new file mode 100644 index 0000000..9114107 --- /dev/null +++ b/app/Http/Controllers/User/LandingController.php @@ -0,0 +1,60 @@ +get()->sortByDesc('id'); + + // product dengan jumlah terbali terbanyak dengan transaksi paid + $mostproduct = DB::table('product') + ->join('detail_transaksi', 'product.id', '=', 'detail_transaksi.id_product') + ->join('transaksi', 'detail_transaksi.id_transaksi', '=', 'transaksi.id') + ->where('transaksi.status_pembayaran', 'paid') + ->select('product.*', DB::raw('count(detail_transaksi.jumlah) as jumlah')) + ->groupBy('product.id', 'product.nama', 'product.harga', 'product.stok', 'product.gambar', 'product.id_kategori', 'product.created_at', 'product.updated_at') + ->orderBy('jumlah', 'desc') + ->limit(5) + ->get(); + + $product = Product::with('kategori')->get()->sortByDesc('id'); + return view('user.pages.index', [ + 'product' => $product, + 'mostproduct' => $mostproduct, + 'product2' => $product2, + 'kategori' => $kategori, + ]); + } + + // public function menu() + // { + // $product = Product::with('kategori')->get()->sortByDesc('id'); + // return view('user.pages.menu', [ + // 'product' => $product, + // ]); + // } + + // public function shop() + // { + // $kategori = Kategori::all(); + // $product = Product::with('kategori')->get()->sortByDesc('id'); + // return view('user.pages.shop', [ + // 'product' => $product, + // 'kategori' => $kategori, + // ]); + // } + + public function contact() + { + return view('user.pages.contact'); + } +} diff --git a/app/Http/Controllers/User/PemesananController.php b/app/Http/Controllers/User/PemesananController.php new file mode 100644 index 0000000..78fcac6 --- /dev/null +++ b/app/Http/Controllers/User/PemesananController.php @@ -0,0 +1,32 @@ +where('id_user', auth()->user()->id)->get()->sortByDesc('id'); + + // date dan time sekarang + $now = date('Y-m-d H:i:s'); + + foreach ($transaksi as $item) { + // jika estimasi pemesanan sudah lewat dari waktu sekarang, maka status pemesanan menjadi Pemesanan Selesai + if ($item->estimasi_pemesanan == !null && $item->estimasi_pemesanan < $now) { + $item->update([ + 'status_pemesanan' => 'Pemesanan Selesai' + ]); + } + } + + return view('user.pages.pemesanan', [ + 'transaksi' => $transaksi + ]); + } +} diff --git a/app/Http/Controllers/UserController.php b/app/Http/Controllers/UserController.php new file mode 100644 index 0000000..a92c1bb --- /dev/null +++ b/app/Http/Controllers/UserController.php @@ -0,0 +1,110 @@ +get()->sortByDesc('id'); + return view('admin.pages.user', [ + 'user' => $user, + ]); + } + + public function store(Request $request) + { + $request->validate([ + 'name' => 'required', + 'email' => 'required|email|unique:users', + 'password' => 'required|min:6', + 'repassword' => 'required|same:password', + ], [ + 'name.required' => 'Nama user harus diisi', + 'email.required' => 'Email user harus diisi', + 'email.email' => 'Email user harus valid', + 'email.unique' => 'Email user sudah terdaftar', + 'password.required' => 'Password user harus diisi', + 'password.min' => 'Password user minimal 6 karakter', + 'repassword.required' => 'Konfirmasi password user harus diisi', + 'repassword.same' => 'Konfirmasi password user tidak sama dengan password', + ]); + + User::create([ + 'name' => $request->name, + 'email' => $request->email, + 'password' => bcrypt($request->password), + 'role' => 'user', + ]); + + return redirect('/admin/user')->with('store', 'User berhasil ditambahkan'); + } + + public function edit(Request $request, $id) + { + if ($request->password) { + $request->validate([ + 'name' => 'required', + 'email' => 'required|email|unique:users,email,' . $id, + 'password' => 'required|min:6', + 'repassword' => 'required|same:password', + ], [ + 'name.required' => 'Nama user harus diisi', + 'email.required' => 'Email user harus diisi', + 'email.email' => 'Email user harus valid', + 'email.unique' => 'Email user sudah terdaftar', + 'password.required' => 'Password user harus diisi', + 'password.min' => 'Password user minimal 6 karakter', + 'repassword.required' => 'Konfirmasi password user harus diisi', + 'repassword.same' => 'Konfirmasi password user tidak sama dengan password', + ]); + + User::where('id', $id)->update([ + 'name' => $request->name, + 'email' => $request->email, + 'password' => bcrypt($request->password), + ]); + } else { + $request->validate([ + 'name' => 'required', + 'email' => 'required|email|unique:users,email,' . $id, + ], [ + 'name.required' => 'Nama user harus diisi', + 'email.required' => 'Email user harus diisi', + 'email.email' => 'Email user harus valid', + 'email.unique' => 'Email user sudah terdaftar', + ]); + + User::where('id', $id)->update([ + 'name' => $request->name, + 'email' => $request->email, + ]); + } + + return redirect('/admin/user')->with('update', 'User berhasil diubah'); + } + + public function destroy($id) + { + // cek apakah user ini memiliki cart + $user = User::find($id); + if ($user->cart->count() > 0) { + foreach ($user->cart as $cart) { + $cart->delete(); + } + } + + // cek apakah user ini memiliki transaksi + if ($user->transaksi->count() > 0) { + foreach ($user->transaksi as $transaction) { + $transaction->delete(); + } + } + + User::destroy($id); + return redirect('/admin/user')->with('destroy', 'User berhasil dihapus'); + } +} diff --git a/app/Http/Kernel.php b/app/Http/Kernel.php new file mode 100644 index 0000000..5da47be --- /dev/null +++ b/app/Http/Kernel.php @@ -0,0 +1,69 @@ + + */ + protected $middleware = [ + // \App\Http\Middleware\TrustHosts::class, + \App\Http\Middleware\TrustProxies::class, + \Illuminate\Http\Middleware\HandleCors::class, + \App\Http\Middleware\PreventRequestsDuringMaintenance::class, + \Illuminate\Foundation\Http\Middleware\ValidatePostSize::class, + \App\Http\Middleware\TrimStrings::class, + \Illuminate\Foundation\Http\Middleware\ConvertEmptyStringsToNull::class, + ]; + + /** + * The application's route middleware groups. + * + * @var array> + */ + protected $middlewareGroups = [ + 'web' => [ + \App\Http\Middleware\EncryptCookies::class, + \Illuminate\Cookie\Middleware\AddQueuedCookiesToResponse::class, + \Illuminate\Session\Middleware\StartSession::class, + \Illuminate\View\Middleware\ShareErrorsFromSession::class, + \App\Http\Middleware\VerifyCsrfToken::class, + \Illuminate\Routing\Middleware\SubstituteBindings::class, + ], + + 'api' => [ + // \Laravel\Sanctum\Http\Middleware\EnsureFrontendRequestsAreStateful::class, + \Illuminate\Routing\Middleware\ThrottleRequests::class . ':api', + \Illuminate\Routing\Middleware\SubstituteBindings::class, + ], + ]; + + /** + * The application's middleware aliases. + * + * Aliases may be used to conveniently assign middleware to routes and groups. + * + * @var array + */ + protected $middlewareAliases = [ + 'auth' => \App\Http\Middleware\Authenticate::class, + 'auth.basic' => \Illuminate\Auth\Middleware\AuthenticateWithBasicAuth::class, + 'auth.session' => \Illuminate\Session\Middleware\AuthenticateSession::class, + 'cache.headers' => \Illuminate\Http\Middleware\SetCacheHeaders::class, + 'can' => \Illuminate\Auth\Middleware\Authorize::class, + 'guest' => \App\Http\Middleware\RedirectIfAuthenticated::class, + 'password.confirm' => \Illuminate\Auth\Middleware\RequirePassword::class, + 'signed' => \App\Http\Middleware\ValidateSignature::class, + 'throttle' => \Illuminate\Routing\Middleware\ThrottleRequests::class, + 'verified' => \Illuminate\Auth\Middleware\EnsureEmailIsVerified::class, + 'IsAdmin' => \App\Http\Middleware\IsAdmin::class, + 'IsUser' => \App\Http\Middleware\IsUser::class, + ]; +} diff --git a/app/Http/Middleware/Authenticate.php b/app/Http/Middleware/Authenticate.php new file mode 100644 index 0000000..d4ef644 --- /dev/null +++ b/app/Http/Middleware/Authenticate.php @@ -0,0 +1,17 @@ +expectsJson() ? null : route('login'); + } +} diff --git a/app/Http/Middleware/EncryptCookies.php b/app/Http/Middleware/EncryptCookies.php new file mode 100644 index 0000000..867695b --- /dev/null +++ b/app/Http/Middleware/EncryptCookies.php @@ -0,0 +1,17 @@ + + */ + protected $except = [ + // + ]; +} diff --git a/app/Http/Middleware/IsAdmin.php b/app/Http/Middleware/IsAdmin.php new file mode 100644 index 0000000..40f65b9 --- /dev/null +++ b/app/Http/Middleware/IsAdmin.php @@ -0,0 +1,26 @@ +role == 'admin') { + return $next($request); + } + + return redirect('/admin/login')->with('logindulu', 'Anda tidak memiliki akses'); + } +} diff --git a/app/Http/Middleware/IsUser.php b/app/Http/Middleware/IsUser.php new file mode 100644 index 0000000..e63efa0 --- /dev/null +++ b/app/Http/Middleware/IsUser.php @@ -0,0 +1,25 @@ +role == 'user') { + return $next($request); + } + + return redirect('/user/login')->with('logindulu', 'Anda tidak memiliki akses'); + } +} diff --git a/app/Http/Middleware/PreventRequestsDuringMaintenance.php b/app/Http/Middleware/PreventRequestsDuringMaintenance.php new file mode 100644 index 0000000..74cbd9a --- /dev/null +++ b/app/Http/Middleware/PreventRequestsDuringMaintenance.php @@ -0,0 +1,17 @@ + + */ + protected $except = [ + // + ]; +} diff --git a/app/Http/Middleware/RedirectIfAuthenticated.php b/app/Http/Middleware/RedirectIfAuthenticated.php new file mode 100644 index 0000000..afc78c4 --- /dev/null +++ b/app/Http/Middleware/RedirectIfAuthenticated.php @@ -0,0 +1,30 @@ +check()) { + return redirect(RouteServiceProvider::HOME); + } + } + + return $next($request); + } +} diff --git a/app/Http/Middleware/TrimStrings.php b/app/Http/Middleware/TrimStrings.php new file mode 100644 index 0000000..88cadca --- /dev/null +++ b/app/Http/Middleware/TrimStrings.php @@ -0,0 +1,19 @@ + + */ + protected $except = [ + 'current_password', + 'password', + 'password_confirmation', + ]; +} diff --git a/app/Http/Middleware/TrustHosts.php b/app/Http/Middleware/TrustHosts.php new file mode 100644 index 0000000..c9c58bd --- /dev/null +++ b/app/Http/Middleware/TrustHosts.php @@ -0,0 +1,20 @@ + + */ + public function hosts(): array + { + return [ + $this->allSubdomainsOfApplicationUrl(), + ]; + } +} diff --git a/app/Http/Middleware/TrustProxies.php b/app/Http/Middleware/TrustProxies.php new file mode 100644 index 0000000..3391630 --- /dev/null +++ b/app/Http/Middleware/TrustProxies.php @@ -0,0 +1,28 @@ +|string|null + */ + protected $proxies; + + /** + * The headers that should be used to detect proxies. + * + * @var int + */ + protected $headers = + Request::HEADER_X_FORWARDED_FOR | + Request::HEADER_X_FORWARDED_HOST | + Request::HEADER_X_FORWARDED_PORT | + Request::HEADER_X_FORWARDED_PROTO | + Request::HEADER_X_FORWARDED_AWS_ELB; +} diff --git a/app/Http/Middleware/ValidateSignature.php b/app/Http/Middleware/ValidateSignature.php new file mode 100644 index 0000000..093bf64 --- /dev/null +++ b/app/Http/Middleware/ValidateSignature.php @@ -0,0 +1,22 @@ + + */ + protected $except = [ + // 'fbclid', + // 'utm_campaign', + // 'utm_content', + // 'utm_medium', + // 'utm_source', + // 'utm_term', + ]; +} diff --git a/app/Http/Middleware/VerifyCsrfToken.php b/app/Http/Middleware/VerifyCsrfToken.php new file mode 100644 index 0000000..9e86521 --- /dev/null +++ b/app/Http/Middleware/VerifyCsrfToken.php @@ -0,0 +1,17 @@ + + */ + protected $except = [ + // + ]; +} diff --git a/app/Models/Cart.php b/app/Models/Cart.php new file mode 100644 index 0000000..3662e92 --- /dev/null +++ b/app/Models/Cart.php @@ -0,0 +1,30 @@ +belongsTo(Product::class, 'id_product', 'id'); + } + + public function user() + { + return $this->belongsTo(User::class, 'id_user', 'id'); + } +} diff --git a/app/Models/DetailTransaksi.php b/app/Models/DetailTransaksi.php new file mode 100644 index 0000000..2cd8564 --- /dev/null +++ b/app/Models/DetailTransaksi.php @@ -0,0 +1,30 @@ +belongsTo(Product::class, 'id_product', 'id'); + } + + public function transaksi() + { + return $this->belongsTo(Transaksi::class, 'id_transaksi', 'id'); + } +} diff --git a/app/Models/Kategori.php b/app/Models/Kategori.php new file mode 100644 index 0000000..063714d --- /dev/null +++ b/app/Models/Kategori.php @@ -0,0 +1,22 @@ +hasMany(Product::class, 'id_kategori', 'id'); + } +} diff --git a/app/Models/Product.php b/app/Models/Product.php new file mode 100644 index 0000000..51e8ada --- /dev/null +++ b/app/Models/Product.php @@ -0,0 +1,37 @@ +belongsTo(Kategori::class, 'id_kategori', 'id'); + } + + public function detailTransaksi() + { + return $this->hasMany(DetailTransaksi::class, 'id_product', 'id'); + } + + public function cart() + { + return $this->hasMany(Cart::class, 'id_product', 'id'); + } +} diff --git a/app/Models/Transaksi.php b/app/Models/Transaksi.php new file mode 100644 index 0000000..c9b97b8 --- /dev/null +++ b/app/Models/Transaksi.php @@ -0,0 +1,35 @@ +belongsTo(User::class, 'id_user', 'id'); + } + + public function detailTransaksi() + { + return $this->hasMany(DetailTransaksi::class, 'id_transaksi', 'id'); + } +} diff --git a/app/Models/User.php b/app/Models/User.php new file mode 100644 index 0000000..65a58e2 --- /dev/null +++ b/app/Models/User.php @@ -0,0 +1,57 @@ + + */ + protected $fillable = [ + 'name', + 'email', + 'password', + 'role', + 'code', + 'status_code', + ]; + + /** + * The attributes that should be hidden for serialization. + * + * @var array + */ + protected $hidden = [ + 'password', + 'remember_token', + ]; + + /** + * The attributes that should be cast. + * + * @var array + */ + protected $casts = [ + 'email_verified_at' => 'datetime', + ]; + + public function cart() + { + return $this->hasMany(Cart::class, 'id_user', 'id'); + } + + public function transaksi() + { + return $this->hasMany(Transaksi::class, 'id_user', 'id'); + } +} diff --git a/app/Providers/AppServiceProvider.php b/app/Providers/AppServiceProvider.php new file mode 100644 index 0000000..452e6b6 --- /dev/null +++ b/app/Providers/AppServiceProvider.php @@ -0,0 +1,24 @@ + + */ + protected $policies = [ + // 'App\Models\Model' => 'App\Policies\ModelPolicy', + ]; + + /** + * Register any authentication / authorization services. + */ + public function boot(): void + { + $this->registerPolicies(); + + // + } +} diff --git a/app/Providers/BroadcastServiceProvider.php b/app/Providers/BroadcastServiceProvider.php new file mode 100644 index 0000000..2be04f5 --- /dev/null +++ b/app/Providers/BroadcastServiceProvider.php @@ -0,0 +1,19 @@ +> + */ + protected $listen = [ + Registered::class => [ + SendEmailVerificationNotification::class, + ], + ]; + + /** + * Register any events for your application. + */ + public function boot(): void + { + // + } + + /** + * Determine if events and listeners should be automatically discovered. + */ + public function shouldDiscoverEvents(): bool + { + return false; + } +} diff --git a/app/Providers/RouteServiceProvider.php b/app/Providers/RouteServiceProvider.php new file mode 100644 index 0000000..bc49109 --- /dev/null +++ b/app/Providers/RouteServiceProvider.php @@ -0,0 +1,48 @@ +configureRateLimiting(); + + $this->routes(function () { + Route::middleware('api') + ->prefix('api') + ->group(base_path('routes/api.php')); + + Route::middleware('web') + ->group(base_path('routes/web.php')); + }); + } + + /** + * Configure the rate limiters for the application. + */ + protected function configureRateLimiting(): void + { + RateLimiter::for('api', function (Request $request) { + return Limit::perMinute(60)->by($request->user()?->id ?: $request->ip()); + }); + } +} diff --git a/artisan b/artisan new file mode 100644 index 0000000..67a3329 --- /dev/null +++ b/artisan @@ -0,0 +1,53 @@ +#!/usr/bin/env php +make(Illuminate\Contracts\Console\Kernel::class); + +$status = $kernel->handle( + $input = new Symfony\Component\Console\Input\ArgvInput, + new Symfony\Component\Console\Output\ConsoleOutput +); + +/* +|-------------------------------------------------------------------------- +| Shutdown The Application +|-------------------------------------------------------------------------- +| +| Once Artisan has finished running, we will fire off the shutdown events +| so that any final work may be done by the application before we shut +| down the process. This is the last thing to happen to the request. +| +*/ + +$kernel->terminate($input, $status); + +exit($status); diff --git a/bootstrap/app.php b/bootstrap/app.php new file mode 100644 index 0000000..037e17d --- /dev/null +++ b/bootstrap/app.php @@ -0,0 +1,55 @@ +singleton( + Illuminate\Contracts\Http\Kernel::class, + App\Http\Kernel::class +); + +$app->singleton( + Illuminate\Contracts\Console\Kernel::class, + App\Console\Kernel::class +); + +$app->singleton( + Illuminate\Contracts\Debug\ExceptionHandler::class, + App\Exceptions\Handler::class +); + +/* +|-------------------------------------------------------------------------- +| Return The Application +|-------------------------------------------------------------------------- +| +| This script returns the application instance. The instance is given to +| the calling script so we can separate the building of the instances +| from the actual running of the application and sending responses. +| +*/ + +return $app; diff --git a/bootstrap/cache/.gitignore b/bootstrap/cache/.gitignore new file mode 100644 index 0000000..d6b7ef3 --- /dev/null +++ b/bootstrap/cache/.gitignore @@ -0,0 +1,2 @@ +* +!.gitignore diff --git a/composer.json b/composer.json new file mode 100644 index 0000000..c5d5d8f --- /dev/null +++ b/composer.json @@ -0,0 +1,70 @@ +{ + "name": "laravel/laravel", + "type": "project", + "description": "The Laravel Framework.", + "keywords": ["framework", "laravel"], + "license": "MIT", + "require": { + "php": "^8.1", + "guzzlehttp/guzzle": "^7.2", + "laravel/framework": "^10.0", + "laravel/sanctum": "^3.2", + "laravel/tinker": "^2.8", + "midtrans/midtrans-php": "^2.5", + "phpmailer/phpmailer": "^6.9" + }, + "require-dev": { + "fakerphp/faker": "^1.9.1", + "laravel/pint": "^1.0", + "laravel/sail": "^1.18", + "mockery/mockery": "^1.4.4", + "nunomaduro/collision": "^7.0", + "phpunit/phpunit": "^10.0", + "spatie/laravel-ignition": "^2.0" + }, + "autoload": { + "psr-4": { + "App\\": "app/", + "Database\\Factories\\": "database/factories/", + "Database\\Seeders\\": "database/seeders/" + } + }, + "autoload-dev": { + "psr-4": { + "Tests\\": "tests/" + } + }, + "scripts": { + "post-autoload-dump": [ + "Illuminate\\Foundation\\ComposerScripts::postAutoloadDump", + "@php artisan package:discover --ansi" + ], + "post-update-cmd": [ + "@php artisan vendor:publish --tag=laravel-assets --ansi --force" + ], + "post-root-package-install": [ + "@php -r \"file_exists('.env') || copy('.env.example', '.env');\"" + ], + "post-create-project-cmd": [ + "@php artisan key:generate --ansi" + ] + }, + "extra": { + "branch-alias": { + "dev-master": "10.x-dev" + }, + "laravel": { + "dont-discover": [] + } + }, + "config": { + "optimize-autoloader": true, + "preferred-install": "dist", + "sort-packages": true, + "allow-plugins": { + "pestphp/pest-plugin": true + } + }, + "minimum-stability": "stable", + "prefer-stable": true +} diff --git a/composer.lock b/composer.lock new file mode 100644 index 0000000..21fe70c --- /dev/null +++ b/composer.lock @@ -0,0 +1,8265 @@ +{ + "_readme": [ + "This file locks the dependencies of your project to a known state", + "Read more about it at https://getcomposer.org/doc/01-basic-usage.md#installing-dependencies", + "This file is @generated automatically" + ], + "content-hash": "92f04c4b2ec758dd011c1a3446f27c69", + "packages": [ + { + "name": "brick/math", + "version": "0.12.1", + "source": { + "type": "git", + "url": "https://github.com/brick/math.git", + "reference": "f510c0a40911935b77b86859eb5223d58d660df1" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/brick/math/zipball/f510c0a40911935b77b86859eb5223d58d660df1", + "reference": "f510c0a40911935b77b86859eb5223d58d660df1", + "shasum": "" + }, + "require": { + "php": "^8.1" + }, + "require-dev": { + "php-coveralls/php-coveralls": "^2.2", + "phpunit/phpunit": "^10.1", + "vimeo/psalm": "5.16.0" + }, + "type": "library", + "autoload": { + "psr-4": { + "Brick\\Math\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "description": "Arbitrary-precision arithmetic library", + "keywords": [ + "Arbitrary-precision", + "BigInteger", + "BigRational", + "arithmetic", + "bigdecimal", + "bignum", + "bignumber", + "brick", + "decimal", + "integer", + "math", + "mathematics", + "rational" + ], + "support": { + "issues": "https://github.com/brick/math/issues", + "source": "https://github.com/brick/math/tree/0.12.1" + }, + "funding": [ + { + "url": "https://github.com/BenMorel", + "type": "github" + } + ], + "time": "2023-11-29T23:19:16+00:00" + }, + { + "name": "carbonphp/carbon-doctrine-types", + "version": "2.1.0", + "source": { + "type": "git", + "url": "https://github.com/CarbonPHP/carbon-doctrine-types.git", + "reference": "99f76ffa36cce3b70a4a6abce41dba15ca2e84cb" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/CarbonPHP/carbon-doctrine-types/zipball/99f76ffa36cce3b70a4a6abce41dba15ca2e84cb", + "reference": "99f76ffa36cce3b70a4a6abce41dba15ca2e84cb", + "shasum": "" + }, + "require": { + "php": "^7.4 || ^8.0" + }, + "conflict": { + "doctrine/dbal": "<3.7.0 || >=4.0.0" + }, + "require-dev": { + "doctrine/dbal": "^3.7.0", + "nesbot/carbon": "^2.71.0 || ^3.0.0", + "phpunit/phpunit": "^10.3" + }, + "type": "library", + "autoload": { + "psr-4": { + "Carbon\\Doctrine\\": "src/Carbon/Doctrine/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "KyleKatarn", + "email": "kylekatarnls@gmail.com" + } + ], + "description": "Types to use Carbon in Doctrine", + "keywords": [ + "carbon", + "date", + "datetime", + "doctrine", + "time" + ], + "support": { + "issues": "https://github.com/CarbonPHP/carbon-doctrine-types/issues", + "source": "https://github.com/CarbonPHP/carbon-doctrine-types/tree/2.1.0" + }, + "funding": [ + { + "url": "https://github.com/kylekatarnls", + "type": "github" + }, + { + "url": "https://opencollective.com/Carbon", + "type": "open_collective" + }, + { + "url": "https://tidelift.com/funding/github/packagist/nesbot/carbon", + "type": "tidelift" + } + ], + "time": "2023-12-11T17:09:12+00:00" + }, + { + "name": "dflydev/dot-access-data", + "version": "v3.0.2", + "source": { + "type": "git", + "url": "https://github.com/dflydev/dflydev-dot-access-data.git", + "reference": "f41715465d65213d644d3141a6a93081be5d3549" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/dflydev/dflydev-dot-access-data/zipball/f41715465d65213d644d3141a6a93081be5d3549", + "reference": "f41715465d65213d644d3141a6a93081be5d3549", + "shasum": "" + }, + "require": { + "php": "^7.1 || ^8.0" + }, + "require-dev": { + "phpstan/phpstan": "^0.12.42", + "phpunit/phpunit": "^7.5 || ^8.5 || ^9.3", + "scrutinizer/ocular": "1.6.0", + "squizlabs/php_codesniffer": "^3.5", + "vimeo/psalm": "^4.0.0" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-main": "3.x-dev" + } + }, + "autoload": { + "psr-4": { + "Dflydev\\DotAccessData\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Dragonfly Development Inc.", + "email": "info@dflydev.com", + "homepage": "http://dflydev.com" + }, + { + "name": "Beau Simensen", + "email": "beau@dflydev.com", + "homepage": "http://beausimensen.com" + }, + { + "name": "Carlos Frutos", + "email": "carlos@kiwing.it", + "homepage": "https://github.com/cfrutos" + }, + { + "name": "Colin O'Dell", + "email": "colinodell@gmail.com", + "homepage": "https://www.colinodell.com" + } + ], + "description": "Given a deep data structure, access data by dot notation.", + "homepage": "https://github.com/dflydev/dflydev-dot-access-data", + "keywords": [ + "access", + "data", + "dot", + "notation" + ], + "support": { + "issues": "https://github.com/dflydev/dflydev-dot-access-data/issues", + "source": "https://github.com/dflydev/dflydev-dot-access-data/tree/v3.0.2" + }, + "time": "2022-10-27T11:44:00+00:00" + }, + { + "name": "doctrine/inflector", + "version": "2.0.10", + "source": { + "type": "git", + "url": "https://github.com/doctrine/inflector.git", + "reference": "5817d0659c5b50c9b950feb9af7b9668e2c436bc" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/doctrine/inflector/zipball/5817d0659c5b50c9b950feb9af7b9668e2c436bc", + "reference": "5817d0659c5b50c9b950feb9af7b9668e2c436bc", + "shasum": "" + }, + "require": { + "php": "^7.2 || ^8.0" + }, + "require-dev": { + "doctrine/coding-standard": "^11.0", + "phpstan/phpstan": "^1.8", + "phpstan/phpstan-phpunit": "^1.1", + "phpstan/phpstan-strict-rules": "^1.3", + "phpunit/phpunit": "^8.5 || ^9.5", + "vimeo/psalm": "^4.25 || ^5.4" + }, + "type": "library", + "autoload": { + "psr-4": { + "Doctrine\\Inflector\\": "lib/Doctrine/Inflector" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Guilherme Blanco", + "email": "guilhermeblanco@gmail.com" + }, + { + "name": "Roman Borschel", + "email": "roman@code-factory.org" + }, + { + "name": "Benjamin Eberlei", + "email": "kontakt@beberlei.de" + }, + { + "name": "Jonathan Wage", + "email": "jonwage@gmail.com" + }, + { + "name": "Johannes Schmitt", + "email": "schmittjoh@gmail.com" + } + ], + "description": "PHP Doctrine Inflector is a small library that can perform string manipulations with regard to upper/lowercase and singular/plural forms of words.", + "homepage": "https://www.doctrine-project.org/projects/inflector.html", + "keywords": [ + "inflection", + "inflector", + "lowercase", + "manipulation", + "php", + "plural", + "singular", + "strings", + "uppercase", + "words" + ], + "support": { + "issues": "https://github.com/doctrine/inflector/issues", + "source": "https://github.com/doctrine/inflector/tree/2.0.10" + }, + "funding": [ + { + "url": "https://www.doctrine-project.org/sponsorship.html", + "type": "custom" + }, + { + "url": "https://www.patreon.com/phpdoctrine", + "type": "patreon" + }, + { + "url": "https://tidelift.com/funding/github/packagist/doctrine%2Finflector", + "type": "tidelift" + } + ], + "time": "2024-02-18T20:23:39+00:00" + }, + { + "name": "doctrine/lexer", + "version": "3.0.1", + "source": { + "type": "git", + "url": "https://github.com/doctrine/lexer.git", + "reference": "31ad66abc0fc9e1a1f2d9bc6a42668d2fbbcd6dd" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/doctrine/lexer/zipball/31ad66abc0fc9e1a1f2d9bc6a42668d2fbbcd6dd", + "reference": "31ad66abc0fc9e1a1f2d9bc6a42668d2fbbcd6dd", + "shasum": "" + }, + "require": { + "php": "^8.1" + }, + "require-dev": { + "doctrine/coding-standard": "^12", + "phpstan/phpstan": "^1.10", + "phpunit/phpunit": "^10.5", + "psalm/plugin-phpunit": "^0.18.3", + "vimeo/psalm": "^5.21" + }, + "type": "library", + "autoload": { + "psr-4": { + "Doctrine\\Common\\Lexer\\": "src" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Guilherme Blanco", + "email": "guilhermeblanco@gmail.com" + }, + { + "name": "Roman Borschel", + "email": "roman@code-factory.org" + }, + { + "name": "Johannes Schmitt", + "email": "schmittjoh@gmail.com" + } + ], + "description": "PHP Doctrine Lexer parser library that can be used in Top-Down, Recursive Descent Parsers.", + "homepage": "https://www.doctrine-project.org/projects/lexer.html", + "keywords": [ + "annotations", + "docblock", + "lexer", + "parser", + "php" + ], + "support": { + "issues": "https://github.com/doctrine/lexer/issues", + "source": "https://github.com/doctrine/lexer/tree/3.0.1" + }, + "funding": [ + { + "url": "https://www.doctrine-project.org/sponsorship.html", + "type": "custom" + }, + { + "url": "https://www.patreon.com/phpdoctrine", + "type": "patreon" + }, + { + "url": "https://tidelift.com/funding/github/packagist/doctrine%2Flexer", + "type": "tidelift" + } + ], + "time": "2024-02-05T11:56:58+00:00" + }, + { + "name": "dragonmantank/cron-expression", + "version": "v3.3.3", + "source": { + "type": "git", + "url": "https://github.com/dragonmantank/cron-expression.git", + "reference": "adfb1f505deb6384dc8b39804c5065dd3c8c8c0a" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/dragonmantank/cron-expression/zipball/adfb1f505deb6384dc8b39804c5065dd3c8c8c0a", + "reference": "adfb1f505deb6384dc8b39804c5065dd3c8c8c0a", + "shasum": "" + }, + "require": { + "php": "^7.2|^8.0", + "webmozart/assert": "^1.0" + }, + "replace": { + "mtdowling/cron-expression": "^1.0" + }, + "require-dev": { + "phpstan/extension-installer": "^1.0", + "phpstan/phpstan": "^1.0", + "phpstan/phpstan-webmozart-assert": "^1.0", + "phpunit/phpunit": "^7.0|^8.0|^9.0" + }, + "type": "library", + "autoload": { + "psr-4": { + "Cron\\": "src/Cron/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Chris Tankersley", + "email": "chris@ctankersley.com", + "homepage": "https://github.com/dragonmantank" + } + ], + "description": "CRON for PHP: Calculate the next or previous run date and determine if a CRON expression is due", + "keywords": [ + "cron", + "schedule" + ], + "support": { + "issues": "https://github.com/dragonmantank/cron-expression/issues", + "source": "https://github.com/dragonmantank/cron-expression/tree/v3.3.3" + }, + "funding": [ + { + "url": "https://github.com/dragonmantank", + "type": "github" + } + ], + "time": "2023-08-10T19:36:49+00:00" + }, + { + "name": "egulias/email-validator", + "version": "4.0.2", + "source": { + "type": "git", + "url": "https://github.com/egulias/EmailValidator.git", + "reference": "ebaaf5be6c0286928352e054f2d5125608e5405e" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/egulias/EmailValidator/zipball/ebaaf5be6c0286928352e054f2d5125608e5405e", + "reference": "ebaaf5be6c0286928352e054f2d5125608e5405e", + "shasum": "" + }, + "require": { + "doctrine/lexer": "^2.0 || ^3.0", + "php": ">=8.1", + "symfony/polyfill-intl-idn": "^1.26" + }, + "require-dev": { + "phpunit/phpunit": "^10.2", + "vimeo/psalm": "^5.12" + }, + "suggest": { + "ext-intl": "PHP Internationalization Libraries are required to use the SpoofChecking validation" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "4.0.x-dev" + } + }, + "autoload": { + "psr-4": { + "Egulias\\EmailValidator\\": "src" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Eduardo Gulias Davis" + } + ], + "description": "A library for validating emails against several RFCs", + "homepage": "https://github.com/egulias/EmailValidator", + "keywords": [ + "email", + "emailvalidation", + "emailvalidator", + "validation", + "validator" + ], + "support": { + "issues": "https://github.com/egulias/EmailValidator/issues", + "source": "https://github.com/egulias/EmailValidator/tree/4.0.2" + }, + "funding": [ + { + "url": "https://github.com/egulias", + "type": "github" + } + ], + "time": "2023-10-06T06:47:41+00:00" + }, + { + "name": "fruitcake/php-cors", + "version": "v1.3.0", + "source": { + "type": "git", + "url": "https://github.com/fruitcake/php-cors.git", + "reference": "3d158f36e7875e2f040f37bc0573956240a5a38b" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/fruitcake/php-cors/zipball/3d158f36e7875e2f040f37bc0573956240a5a38b", + "reference": "3d158f36e7875e2f040f37bc0573956240a5a38b", + "shasum": "" + }, + "require": { + "php": "^7.4|^8.0", + "symfony/http-foundation": "^4.4|^5.4|^6|^7" + }, + "require-dev": { + "phpstan/phpstan": "^1.4", + "phpunit/phpunit": "^9", + "squizlabs/php_codesniffer": "^3.5" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "1.2-dev" + } + }, + "autoload": { + "psr-4": { + "Fruitcake\\Cors\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Fruitcake", + "homepage": "https://fruitcake.nl" + }, + { + "name": "Barryvdh", + "email": "barryvdh@gmail.com" + } + ], + "description": "Cross-origin resource sharing library for the Symfony HttpFoundation", + "homepage": "https://github.com/fruitcake/php-cors", + "keywords": [ + "cors", + "laravel", + "symfony" + ], + "support": { + "issues": "https://github.com/fruitcake/php-cors/issues", + "source": "https://github.com/fruitcake/php-cors/tree/v1.3.0" + }, + "funding": [ + { + "url": "https://fruitcake.nl", + "type": "custom" + }, + { + "url": "https://github.com/barryvdh", + "type": "github" + } + ], + "time": "2023-10-12T05:21:21+00:00" + }, + { + "name": "graham-campbell/result-type", + "version": "v1.1.2", + "source": { + "type": "git", + "url": "https://github.com/GrahamCampbell/Result-Type.git", + "reference": "fbd48bce38f73f8a4ec8583362e732e4095e5862" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/GrahamCampbell/Result-Type/zipball/fbd48bce38f73f8a4ec8583362e732e4095e5862", + "reference": "fbd48bce38f73f8a4ec8583362e732e4095e5862", + "shasum": "" + }, + "require": { + "php": "^7.2.5 || ^8.0", + "phpoption/phpoption": "^1.9.2" + }, + "require-dev": { + "phpunit/phpunit": "^8.5.34 || ^9.6.13 || ^10.4.2" + }, + "type": "library", + "autoload": { + "psr-4": { + "GrahamCampbell\\ResultType\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Graham Campbell", + "email": "hello@gjcampbell.co.uk", + "homepage": "https://github.com/GrahamCampbell" + } + ], + "description": "An Implementation Of The Result Type", + "keywords": [ + "Graham Campbell", + "GrahamCampbell", + "Result Type", + "Result-Type", + "result" + ], + "support": { + "issues": "https://github.com/GrahamCampbell/Result-Type/issues", + "source": "https://github.com/GrahamCampbell/Result-Type/tree/v1.1.2" + }, + "funding": [ + { + "url": "https://github.com/GrahamCampbell", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/graham-campbell/result-type", + "type": "tidelift" + } + ], + "time": "2023-11-12T22:16:48+00:00" + }, + { + "name": "guzzlehttp/guzzle", + "version": "7.8.1", + "source": { + "type": "git", + "url": "https://github.com/guzzle/guzzle.git", + "reference": "41042bc7ab002487b876a0683fc8dce04ddce104" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/guzzle/guzzle/zipball/41042bc7ab002487b876a0683fc8dce04ddce104", + "reference": "41042bc7ab002487b876a0683fc8dce04ddce104", + "shasum": "" + }, + "require": { + "ext-json": "*", + "guzzlehttp/promises": "^1.5.3 || ^2.0.1", + "guzzlehttp/psr7": "^1.9.1 || ^2.5.1", + "php": "^7.2.5 || ^8.0", + "psr/http-client": "^1.0", + "symfony/deprecation-contracts": "^2.2 || ^3.0" + }, + "provide": { + "psr/http-client-implementation": "1.0" + }, + "require-dev": { + "bamarni/composer-bin-plugin": "^1.8.2", + "ext-curl": "*", + "php-http/client-integration-tests": "dev-master#2c025848417c1135031fdf9c728ee53d0a7ceaee as 3.0.999", + "php-http/message-factory": "^1.1", + "phpunit/phpunit": "^8.5.36 || ^9.6.15", + "psr/log": "^1.1 || ^2.0 || ^3.0" + }, + "suggest": { + "ext-curl": "Required for CURL handler support", + "ext-intl": "Required for Internationalized Domain Name (IDN) support", + "psr/log": "Required for using the Log middleware" + }, + "type": "library", + "extra": { + "bamarni-bin": { + "bin-links": true, + "forward-command": false + } + }, + "autoload": { + "files": [ + "src/functions_include.php" + ], + "psr-4": { + "GuzzleHttp\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Graham Campbell", + "email": "hello@gjcampbell.co.uk", + "homepage": "https://github.com/GrahamCampbell" + }, + { + "name": "Michael Dowling", + "email": "mtdowling@gmail.com", + "homepage": "https://github.com/mtdowling" + }, + { + "name": "Jeremy Lindblom", + "email": "jeremeamia@gmail.com", + "homepage": "https://github.com/jeremeamia" + }, + { + "name": "George Mponos", + "email": "gmponos@gmail.com", + "homepage": "https://github.com/gmponos" + }, + { + "name": "Tobias Nyholm", + "email": "tobias.nyholm@gmail.com", + "homepage": "https://github.com/Nyholm" + }, + { + "name": "Márk Sági-Kazár", + "email": "mark.sagikazar@gmail.com", + "homepage": "https://github.com/sagikazarmark" + }, + { + "name": "Tobias Schultze", + "email": "webmaster@tubo-world.de", + "homepage": "https://github.com/Tobion" + } + ], + "description": "Guzzle is a PHP HTTP client library", + "keywords": [ + "client", + "curl", + "framework", + "http", + "http client", + "psr-18", + "psr-7", + "rest", + "web service" + ], + "support": { + "issues": "https://github.com/guzzle/guzzle/issues", + "source": "https://github.com/guzzle/guzzle/tree/7.8.1" + }, + "funding": [ + { + "url": "https://github.com/GrahamCampbell", + "type": "github" + }, + { + "url": "https://github.com/Nyholm", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/guzzlehttp/guzzle", + "type": "tidelift" + } + ], + "time": "2023-12-03T20:35:24+00:00" + }, + { + "name": "guzzlehttp/promises", + "version": "2.0.2", + "source": { + "type": "git", + "url": "https://github.com/guzzle/promises.git", + "reference": "bbff78d96034045e58e13dedd6ad91b5d1253223" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/guzzle/promises/zipball/bbff78d96034045e58e13dedd6ad91b5d1253223", + "reference": "bbff78d96034045e58e13dedd6ad91b5d1253223", + "shasum": "" + }, + "require": { + "php": "^7.2.5 || ^8.0" + }, + "require-dev": { + "bamarni/composer-bin-plugin": "^1.8.2", + "phpunit/phpunit": "^8.5.36 || ^9.6.15" + }, + "type": "library", + "extra": { + "bamarni-bin": { + "bin-links": true, + "forward-command": false + } + }, + "autoload": { + "psr-4": { + "GuzzleHttp\\Promise\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Graham Campbell", + "email": "hello@gjcampbell.co.uk", + "homepage": "https://github.com/GrahamCampbell" + }, + { + "name": "Michael Dowling", + "email": "mtdowling@gmail.com", + "homepage": "https://github.com/mtdowling" + }, + { + "name": "Tobias Nyholm", + "email": "tobias.nyholm@gmail.com", + "homepage": "https://github.com/Nyholm" + }, + { + "name": "Tobias Schultze", + "email": "webmaster@tubo-world.de", + "homepage": "https://github.com/Tobion" + } + ], + "description": "Guzzle promises library", + "keywords": [ + "promise" + ], + "support": { + "issues": "https://github.com/guzzle/promises/issues", + "source": "https://github.com/guzzle/promises/tree/2.0.2" + }, + "funding": [ + { + "url": "https://github.com/GrahamCampbell", + "type": "github" + }, + { + "url": "https://github.com/Nyholm", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/guzzlehttp/promises", + "type": "tidelift" + } + ], + "time": "2023-12-03T20:19:20+00:00" + }, + { + "name": "guzzlehttp/psr7", + "version": "2.6.2", + "source": { + "type": "git", + "url": "https://github.com/guzzle/psr7.git", + "reference": "45b30f99ac27b5ca93cb4831afe16285f57b8221" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/guzzle/psr7/zipball/45b30f99ac27b5ca93cb4831afe16285f57b8221", + "reference": "45b30f99ac27b5ca93cb4831afe16285f57b8221", + "shasum": "" + }, + "require": { + "php": "^7.2.5 || ^8.0", + "psr/http-factory": "^1.0", + "psr/http-message": "^1.1 || ^2.0", + "ralouphie/getallheaders": "^3.0" + }, + "provide": { + "psr/http-factory-implementation": "1.0", + "psr/http-message-implementation": "1.0" + }, + "require-dev": { + "bamarni/composer-bin-plugin": "^1.8.2", + "http-interop/http-factory-tests": "^0.9", + "phpunit/phpunit": "^8.5.36 || ^9.6.15" + }, + "suggest": { + "laminas/laminas-httphandlerrunner": "Emit PSR-7 responses" + }, + "type": "library", + "extra": { + "bamarni-bin": { + "bin-links": true, + "forward-command": false + } + }, + "autoload": { + "psr-4": { + "GuzzleHttp\\Psr7\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Graham Campbell", + "email": "hello@gjcampbell.co.uk", + "homepage": "https://github.com/GrahamCampbell" + }, + { + "name": "Michael Dowling", + "email": "mtdowling@gmail.com", + "homepage": "https://github.com/mtdowling" + }, + { + "name": "George Mponos", + "email": "gmponos@gmail.com", + "homepage": "https://github.com/gmponos" + }, + { + "name": "Tobias Nyholm", + "email": "tobias.nyholm@gmail.com", + "homepage": "https://github.com/Nyholm" + }, + { + "name": "Márk Sági-Kazár", + "email": "mark.sagikazar@gmail.com", + "homepage": "https://github.com/sagikazarmark" + }, + { + "name": "Tobias Schultze", + "email": "webmaster@tubo-world.de", + "homepage": "https://github.com/Tobion" + }, + { + "name": "Márk Sági-Kazár", + "email": "mark.sagikazar@gmail.com", + "homepage": "https://sagikazarmark.hu" + } + ], + "description": "PSR-7 message implementation that also provides common utility methods", + "keywords": [ + "http", + "message", + "psr-7", + "request", + "response", + "stream", + "uri", + "url" + ], + "support": { + "issues": "https://github.com/guzzle/psr7/issues", + "source": "https://github.com/guzzle/psr7/tree/2.6.2" + }, + "funding": [ + { + "url": "https://github.com/GrahamCampbell", + "type": "github" + }, + { + "url": "https://github.com/Nyholm", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/guzzlehttp/psr7", + "type": "tidelift" + } + ], + "time": "2023-12-03T20:05:35+00:00" + }, + { + "name": "guzzlehttp/uri-template", + "version": "v1.0.3", + "source": { + "type": "git", + "url": "https://github.com/guzzle/uri-template.git", + "reference": "ecea8feef63bd4fef1f037ecb288386999ecc11c" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/guzzle/uri-template/zipball/ecea8feef63bd4fef1f037ecb288386999ecc11c", + "reference": "ecea8feef63bd4fef1f037ecb288386999ecc11c", + "shasum": "" + }, + "require": { + "php": "^7.2.5 || ^8.0", + "symfony/polyfill-php80": "^1.24" + }, + "require-dev": { + "bamarni/composer-bin-plugin": "^1.8.2", + "phpunit/phpunit": "^8.5.36 || ^9.6.15", + "uri-template/tests": "1.0.0" + }, + "type": "library", + "extra": { + "bamarni-bin": { + "bin-links": true, + "forward-command": false + } + }, + "autoload": { + "psr-4": { + "GuzzleHttp\\UriTemplate\\": "src" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Graham Campbell", + "email": "hello@gjcampbell.co.uk", + "homepage": "https://github.com/GrahamCampbell" + }, + { + "name": "Michael Dowling", + "email": "mtdowling@gmail.com", + "homepage": "https://github.com/mtdowling" + }, + { + "name": "George Mponos", + "email": "gmponos@gmail.com", + "homepage": "https://github.com/gmponos" + }, + { + "name": "Tobias Nyholm", + "email": "tobias.nyholm@gmail.com", + "homepage": "https://github.com/Nyholm" + } + ], + "description": "A polyfill class for uri_template of PHP", + "keywords": [ + "guzzlehttp", + "uri-template" + ], + "support": { + "issues": "https://github.com/guzzle/uri-template/issues", + "source": "https://github.com/guzzle/uri-template/tree/v1.0.3" + }, + "funding": [ + { + "url": "https://github.com/GrahamCampbell", + "type": "github" + }, + { + "url": "https://github.com/Nyholm", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/guzzlehttp/uri-template", + "type": "tidelift" + } + ], + "time": "2023-12-03T19:50:20+00:00" + }, + { + "name": "laravel/framework", + "version": "v10.48.12", + "source": { + "type": "git", + "url": "https://github.com/laravel/framework.git", + "reference": "590afea38e708022662629fbf5184351fa82cf08" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/laravel/framework/zipball/590afea38e708022662629fbf5184351fa82cf08", + "reference": "590afea38e708022662629fbf5184351fa82cf08", + "shasum": "" + }, + "require": { + "brick/math": "^0.9.3|^0.10.2|^0.11|^0.12", + "composer-runtime-api": "^2.2", + "doctrine/inflector": "^2.0.5", + "dragonmantank/cron-expression": "^3.3.2", + "egulias/email-validator": "^3.2.1|^4.0", + "ext-ctype": "*", + "ext-filter": "*", + "ext-hash": "*", + "ext-mbstring": "*", + "ext-openssl": "*", + "ext-session": "*", + "ext-tokenizer": "*", + "fruitcake/php-cors": "^1.2", + "guzzlehttp/uri-template": "^1.0", + "laravel/prompts": "^0.1.9", + "laravel/serializable-closure": "^1.3", + "league/commonmark": "^2.2.1", + "league/flysystem": "^3.8.0", + "monolog/monolog": "^3.0", + "nesbot/carbon": "^2.67", + "nunomaduro/termwind": "^1.13", + "php": "^8.1", + "psr/container": "^1.1.1|^2.0.1", + "psr/log": "^1.0|^2.0|^3.0", + "psr/simple-cache": "^1.0|^2.0|^3.0", + "ramsey/uuid": "^4.7", + "symfony/console": "^6.2", + "symfony/error-handler": "^6.2", + "symfony/finder": "^6.2", + "symfony/http-foundation": "^6.4", + "symfony/http-kernel": "^6.2", + "symfony/mailer": "^6.2", + "symfony/mime": "^6.2", + "symfony/process": "^6.2", + "symfony/routing": "^6.2", + "symfony/uid": "^6.2", + "symfony/var-dumper": "^6.2", + "tijsverkoyen/css-to-inline-styles": "^2.2.5", + "vlucas/phpdotenv": "^5.4.1", + "voku/portable-ascii": "^2.0" + }, + "conflict": { + "carbonphp/carbon-doctrine-types": ">=3.0", + "doctrine/dbal": ">=4.0", + "mockery/mockery": "1.6.8", + "phpunit/phpunit": ">=11.0.0", + "tightenco/collect": "<5.5.33" + }, + "provide": { + "psr/container-implementation": "1.1|2.0", + "psr/simple-cache-implementation": "1.0|2.0|3.0" + }, + "replace": { + "illuminate/auth": "self.version", + "illuminate/broadcasting": "self.version", + "illuminate/bus": "self.version", + "illuminate/cache": "self.version", + "illuminate/collections": "self.version", + "illuminate/conditionable": "self.version", + "illuminate/config": "self.version", + "illuminate/console": "self.version", + "illuminate/container": "self.version", + "illuminate/contracts": "self.version", + "illuminate/cookie": "self.version", + "illuminate/database": "self.version", + "illuminate/encryption": "self.version", + "illuminate/events": "self.version", + "illuminate/filesystem": "self.version", + "illuminate/hashing": "self.version", + "illuminate/http": "self.version", + "illuminate/log": "self.version", + "illuminate/macroable": "self.version", + "illuminate/mail": "self.version", + "illuminate/notifications": "self.version", + "illuminate/pagination": "self.version", + "illuminate/pipeline": "self.version", + "illuminate/process": "self.version", + "illuminate/queue": "self.version", + "illuminate/redis": "self.version", + "illuminate/routing": "self.version", + "illuminate/session": "self.version", + "illuminate/support": "self.version", + "illuminate/testing": "self.version", + "illuminate/translation": "self.version", + "illuminate/validation": "self.version", + "illuminate/view": "self.version" + }, + "require-dev": { + "ably/ably-php": "^1.0", + "aws/aws-sdk-php": "^3.235.5", + "doctrine/dbal": "^3.5.1", + "ext-gmp": "*", + "fakerphp/faker": "^1.21", + "guzzlehttp/guzzle": "^7.5", + "league/flysystem-aws-s3-v3": "^3.0", + "league/flysystem-ftp": "^3.0", + "league/flysystem-path-prefixing": "^3.3", + "league/flysystem-read-only": "^3.3", + "league/flysystem-sftp-v3": "^3.0", + "mockery/mockery": "^1.5.1", + "nyholm/psr7": "^1.2", + "orchestra/testbench-core": "^8.23.4", + "pda/pheanstalk": "^4.0", + "phpstan/phpstan": "^1.4.7", + "phpunit/phpunit": "^10.0.7", + "predis/predis": "^2.0.2", + "symfony/cache": "^6.2", + "symfony/http-client": "^6.2.4", + "symfony/psr-http-message-bridge": "^2.0" + }, + "suggest": { + "ably/ably-php": "Required to use the Ably broadcast driver (^1.0).", + "aws/aws-sdk-php": "Required to use the SQS queue driver, DynamoDb failed job storage, and SES mail driver (^3.235.5).", + "brianium/paratest": "Required to run tests in parallel (^6.0).", + "doctrine/dbal": "Required to rename columns and drop SQLite columns (^3.5.1).", + "ext-apcu": "Required to use the APC cache driver.", + "ext-fileinfo": "Required to use the Filesystem class.", + "ext-ftp": "Required to use the Flysystem FTP driver.", + "ext-gd": "Required to use Illuminate\\Http\\Testing\\FileFactory::image().", + "ext-memcached": "Required to use the memcache cache driver.", + "ext-pcntl": "Required to use all features of the queue worker and console signal trapping.", + "ext-pdo": "Required to use all database features.", + "ext-posix": "Required to use all features of the queue worker.", + "ext-redis": "Required to use the Redis cache and queue drivers (^4.0|^5.0).", + "fakerphp/faker": "Required to use the eloquent factory builder (^1.9.1).", + "filp/whoops": "Required for friendly error pages in development (^2.14.3).", + "guzzlehttp/guzzle": "Required to use the HTTP Client and the ping methods on schedules (^7.5).", + "laravel/tinker": "Required to use the tinker console command (^2.0).", + "league/flysystem-aws-s3-v3": "Required to use the Flysystem S3 driver (^3.0).", + "league/flysystem-ftp": "Required to use the Flysystem FTP driver (^3.0).", + "league/flysystem-path-prefixing": "Required to use the scoped driver (^3.3).", + "league/flysystem-read-only": "Required to use read-only disks (^3.3)", + "league/flysystem-sftp-v3": "Required to use the Flysystem SFTP driver (^3.0).", + "mockery/mockery": "Required to use mocking (^1.5.1).", + "nyholm/psr7": "Required to use PSR-7 bridging features (^1.2).", + "pda/pheanstalk": "Required to use the beanstalk queue driver (^4.0).", + "phpunit/phpunit": "Required to use assertions and run tests (^9.5.8|^10.0.7).", + "predis/predis": "Required to use the predis connector (^2.0.2).", + "psr/http-message": "Required to allow Storage::put to accept a StreamInterface (^1.0).", + "pusher/pusher-php-server": "Required to use the Pusher broadcast driver (^6.0|^7.0).", + "symfony/cache": "Required to PSR-6 cache bridge (^6.2).", + "symfony/filesystem": "Required to enable support for relative symbolic links (^6.2).", + "symfony/http-client": "Required to enable support for the Symfony API mail transports (^6.2).", + "symfony/mailgun-mailer": "Required to enable support for the Mailgun mail transport (^6.2).", + "symfony/postmark-mailer": "Required to enable support for the Postmark mail transport (^6.2).", + "symfony/psr-http-message-bridge": "Required to use PSR-7 bridging features (^2.0)." + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "10.x-dev" + } + }, + "autoload": { + "files": [ + "src/Illuminate/Collections/helpers.php", + "src/Illuminate/Events/functions.php", + "src/Illuminate/Filesystem/functions.php", + "src/Illuminate/Foundation/helpers.php", + "src/Illuminate/Support/helpers.php" + ], + "psr-4": { + "Illuminate\\": "src/Illuminate/", + "Illuminate\\Support\\": [ + "src/Illuminate/Macroable/", + "src/Illuminate/Collections/", + "src/Illuminate/Conditionable/" + ] + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Taylor Otwell", + "email": "taylor@laravel.com" + } + ], + "description": "The Laravel Framework.", + "homepage": "https://laravel.com", + "keywords": [ + "framework", + "laravel" + ], + "support": { + "issues": "https://github.com/laravel/framework/issues", + "source": "https://github.com/laravel/framework" + }, + "time": "2024-05-28T15:46:19+00:00" + }, + { + "name": "laravel/prompts", + "version": "v0.1.23", + "source": { + "type": "git", + "url": "https://github.com/laravel/prompts.git", + "reference": "9bc4df7c699b0452c6b815e64a2d84b6d7f99400" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/laravel/prompts/zipball/9bc4df7c699b0452c6b815e64a2d84b6d7f99400", + "reference": "9bc4df7c699b0452c6b815e64a2d84b6d7f99400", + "shasum": "" + }, + "require": { + "ext-mbstring": "*", + "illuminate/collections": "^10.0|^11.0", + "php": "^8.1", + "symfony/console": "^6.2|^7.0" + }, + "conflict": { + "illuminate/console": ">=10.17.0 <10.25.0", + "laravel/framework": ">=10.17.0 <10.25.0" + }, + "require-dev": { + "mockery/mockery": "^1.5", + "pestphp/pest": "^2.3", + "phpstan/phpstan": "^1.11", + "phpstan/phpstan-mockery": "^1.1" + }, + "suggest": { + "ext-pcntl": "Required for the spinner to be animated." + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-main": "0.1.x-dev" + } + }, + "autoload": { + "files": [ + "src/helpers.php" + ], + "psr-4": { + "Laravel\\Prompts\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "description": "Add beautiful and user-friendly forms to your command-line applications.", + "support": { + "issues": "https://github.com/laravel/prompts/issues", + "source": "https://github.com/laravel/prompts/tree/v0.1.23" + }, + "time": "2024-05-27T13:53:20+00:00" + }, + { + "name": "laravel/sanctum", + "version": "v3.3.3", + "source": { + "type": "git", + "url": "https://github.com/laravel/sanctum.git", + "reference": "8c104366459739f3ada0e994bcd3e6fd681ce3d5" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/laravel/sanctum/zipball/8c104366459739f3ada0e994bcd3e6fd681ce3d5", + "reference": "8c104366459739f3ada0e994bcd3e6fd681ce3d5", + "shasum": "" + }, + "require": { + "ext-json": "*", + "illuminate/console": "^9.21|^10.0", + "illuminate/contracts": "^9.21|^10.0", + "illuminate/database": "^9.21|^10.0", + "illuminate/support": "^9.21|^10.0", + "php": "^8.0.2" + }, + "require-dev": { + "mockery/mockery": "^1.0", + "orchestra/testbench": "^7.28.2|^8.8.3", + "phpstan/phpstan": "^1.10", + "phpunit/phpunit": "^9.6" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "3.x-dev" + }, + "laravel": { + "providers": [ + "Laravel\\Sanctum\\SanctumServiceProvider" + ] + } + }, + "autoload": { + "psr-4": { + "Laravel\\Sanctum\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Taylor Otwell", + "email": "taylor@laravel.com" + } + ], + "description": "Laravel Sanctum provides a featherweight authentication system for SPAs and simple APIs.", + "keywords": [ + "auth", + "laravel", + "sanctum" + ], + "support": { + "issues": "https://github.com/laravel/sanctum/issues", + "source": "https://github.com/laravel/sanctum" + }, + "time": "2023-12-19T18:44:48+00:00" + }, + { + "name": "laravel/serializable-closure", + "version": "v1.3.3", + "source": { + "type": "git", + "url": "https://github.com/laravel/serializable-closure.git", + "reference": "3dbf8a8e914634c48d389c1234552666b3d43754" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/laravel/serializable-closure/zipball/3dbf8a8e914634c48d389c1234552666b3d43754", + "reference": "3dbf8a8e914634c48d389c1234552666b3d43754", + "shasum": "" + }, + "require": { + "php": "^7.3|^8.0" + }, + "require-dev": { + "nesbot/carbon": "^2.61", + "pestphp/pest": "^1.21.3", + "phpstan/phpstan": "^1.8.2", + "symfony/var-dumper": "^5.4.11" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "1.x-dev" + } + }, + "autoload": { + "psr-4": { + "Laravel\\SerializableClosure\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Taylor Otwell", + "email": "taylor@laravel.com" + }, + { + "name": "Nuno Maduro", + "email": "nuno@laravel.com" + } + ], + "description": "Laravel Serializable Closure provides an easy and secure way to serialize closures in PHP.", + "keywords": [ + "closure", + "laravel", + "serializable" + ], + "support": { + "issues": "https://github.com/laravel/serializable-closure/issues", + "source": "https://github.com/laravel/serializable-closure" + }, + "time": "2023-11-08T14:08:06+00:00" + }, + { + "name": "laravel/tinker", + "version": "v2.9.0", + "source": { + "type": "git", + "url": "https://github.com/laravel/tinker.git", + "reference": "502e0fe3f0415d06d5db1f83a472f0f3b754bafe" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/laravel/tinker/zipball/502e0fe3f0415d06d5db1f83a472f0f3b754bafe", + "reference": "502e0fe3f0415d06d5db1f83a472f0f3b754bafe", + "shasum": "" + }, + "require": { + "illuminate/console": "^6.0|^7.0|^8.0|^9.0|^10.0|^11.0", + "illuminate/contracts": "^6.0|^7.0|^8.0|^9.0|^10.0|^11.0", + "illuminate/support": "^6.0|^7.0|^8.0|^9.0|^10.0|^11.0", + "php": "^7.2.5|^8.0", + "psy/psysh": "^0.11.1|^0.12.0", + "symfony/var-dumper": "^4.3.4|^5.0|^6.0|^7.0" + }, + "require-dev": { + "mockery/mockery": "~1.3.3|^1.4.2", + "phpstan/phpstan": "^1.10", + "phpunit/phpunit": "^8.5.8|^9.3.3" + }, + "suggest": { + "illuminate/database": "The Illuminate Database package (^6.0|^7.0|^8.0|^9.0|^10.0|^11.0)." + }, + "type": "library", + "extra": { + "laravel": { + "providers": [ + "Laravel\\Tinker\\TinkerServiceProvider" + ] + } + }, + "autoload": { + "psr-4": { + "Laravel\\Tinker\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Taylor Otwell", + "email": "taylor@laravel.com" + } + ], + "description": "Powerful REPL for the Laravel framework.", + "keywords": [ + "REPL", + "Tinker", + "laravel", + "psysh" + ], + "support": { + "issues": "https://github.com/laravel/tinker/issues", + "source": "https://github.com/laravel/tinker/tree/v2.9.0" + }, + "time": "2024-01-04T16:10:04+00:00" + }, + { + "name": "league/commonmark", + "version": "2.4.2", + "source": { + "type": "git", + "url": "https://github.com/thephpleague/commonmark.git", + "reference": "91c24291965bd6d7c46c46a12ba7492f83b1cadf" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/thephpleague/commonmark/zipball/91c24291965bd6d7c46c46a12ba7492f83b1cadf", + "reference": "91c24291965bd6d7c46c46a12ba7492f83b1cadf", + "shasum": "" + }, + "require": { + "ext-mbstring": "*", + "league/config": "^1.1.1", + "php": "^7.4 || ^8.0", + "psr/event-dispatcher": "^1.0", + "symfony/deprecation-contracts": "^2.1 || ^3.0", + "symfony/polyfill-php80": "^1.16" + }, + "require-dev": { + "cebe/markdown": "^1.0", + "commonmark/cmark": "0.30.3", + "commonmark/commonmark.js": "0.30.0", + "composer/package-versions-deprecated": "^1.8", + "embed/embed": "^4.4", + "erusev/parsedown": "^1.0", + "ext-json": "*", + "github/gfm": "0.29.0", + "michelf/php-markdown": "^1.4 || ^2.0", + "nyholm/psr7": "^1.5", + "phpstan/phpstan": "^1.8.2", + "phpunit/phpunit": "^9.5.21 || ^10.5.9 || ^11.0.0", + "scrutinizer/ocular": "^1.8.1", + "symfony/finder": "^5.3 | ^6.0 || ^7.0", + "symfony/yaml": "^2.3 | ^3.0 | ^4.0 | ^5.0 | ^6.0 || ^7.0", + "unleashedtech/php-coding-standard": "^3.1.1", + "vimeo/psalm": "^4.24.0 || ^5.0.0" + }, + "suggest": { + "symfony/yaml": "v2.3+ required if using the Front Matter extension" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-main": "2.5-dev" + } + }, + "autoload": { + "psr-4": { + "League\\CommonMark\\": "src" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BSD-3-Clause" + ], + "authors": [ + { + "name": "Colin O'Dell", + "email": "colinodell@gmail.com", + "homepage": "https://www.colinodell.com", + "role": "Lead Developer" + } + ], + "description": "Highly-extensible PHP Markdown parser which fully supports the CommonMark spec and GitHub-Flavored Markdown (GFM)", + "homepage": "https://commonmark.thephpleague.com", + "keywords": [ + "commonmark", + "flavored", + "gfm", + "github", + "github-flavored", + "markdown", + "md", + "parser" + ], + "support": { + "docs": "https://commonmark.thephpleague.com/", + "forum": "https://github.com/thephpleague/commonmark/discussions", + "issues": "https://github.com/thephpleague/commonmark/issues", + "rss": "https://github.com/thephpleague/commonmark/releases.atom", + "source": "https://github.com/thephpleague/commonmark" + }, + "funding": [ + { + "url": "https://www.colinodell.com/sponsor", + "type": "custom" + }, + { + "url": "https://www.paypal.me/colinpodell/10.00", + "type": "custom" + }, + { + "url": "https://github.com/colinodell", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/league/commonmark", + "type": "tidelift" + } + ], + "time": "2024-02-02T11:59:32+00:00" + }, + { + "name": "league/config", + "version": "v1.2.0", + "source": { + "type": "git", + "url": "https://github.com/thephpleague/config.git", + "reference": "754b3604fb2984c71f4af4a9cbe7b57f346ec1f3" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/thephpleague/config/zipball/754b3604fb2984c71f4af4a9cbe7b57f346ec1f3", + "reference": "754b3604fb2984c71f4af4a9cbe7b57f346ec1f3", + "shasum": "" + }, + "require": { + "dflydev/dot-access-data": "^3.0.1", + "nette/schema": "^1.2", + "php": "^7.4 || ^8.0" + }, + "require-dev": { + "phpstan/phpstan": "^1.8.2", + "phpunit/phpunit": "^9.5.5", + "scrutinizer/ocular": "^1.8.1", + "unleashedtech/php-coding-standard": "^3.1", + "vimeo/psalm": "^4.7.3" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-main": "1.2-dev" + } + }, + "autoload": { + "psr-4": { + "League\\Config\\": "src" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BSD-3-Clause" + ], + "authors": [ + { + "name": "Colin O'Dell", + "email": "colinodell@gmail.com", + "homepage": "https://www.colinodell.com", + "role": "Lead Developer" + } + ], + "description": "Define configuration arrays with strict schemas and access values with dot notation", + "homepage": "https://config.thephpleague.com", + "keywords": [ + "array", + "config", + "configuration", + "dot", + "dot-access", + "nested", + "schema" + ], + "support": { + "docs": "https://config.thephpleague.com/", + "issues": "https://github.com/thephpleague/config/issues", + "rss": "https://github.com/thephpleague/config/releases.atom", + "source": "https://github.com/thephpleague/config" + }, + "funding": [ + { + "url": "https://www.colinodell.com/sponsor", + "type": "custom" + }, + { + "url": "https://www.paypal.me/colinpodell/10.00", + "type": "custom" + }, + { + "url": "https://github.com/colinodell", + "type": "github" + } + ], + "time": "2022-12-11T20:36:23+00:00" + }, + { + "name": "league/flysystem", + "version": "3.28.0", + "source": { + "type": "git", + "url": "https://github.com/thephpleague/flysystem.git", + "reference": "e611adab2b1ae2e3072fa72d62c62f52c2bf1f0c" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/thephpleague/flysystem/zipball/e611adab2b1ae2e3072fa72d62c62f52c2bf1f0c", + "reference": "e611adab2b1ae2e3072fa72d62c62f52c2bf1f0c", + "shasum": "" + }, + "require": { + "league/flysystem-local": "^3.0.0", + "league/mime-type-detection": "^1.0.0", + "php": "^8.0.2" + }, + "conflict": { + "async-aws/core": "<1.19.0", + "async-aws/s3": "<1.14.0", + "aws/aws-sdk-php": "3.209.31 || 3.210.0", + "guzzlehttp/guzzle": "<7.0", + "guzzlehttp/ringphp": "<1.1.1", + "phpseclib/phpseclib": "3.0.15", + "symfony/http-client": "<5.2" + }, + "require-dev": { + "async-aws/s3": "^1.5 || ^2.0", + "async-aws/simple-s3": "^1.1 || ^2.0", + "aws/aws-sdk-php": "^3.295.10", + "composer/semver": "^3.0", + "ext-fileinfo": "*", + "ext-ftp": "*", + "ext-mongodb": "^1.3", + "ext-zip": "*", + "friendsofphp/php-cs-fixer": "^3.5", + "google/cloud-storage": "^1.23", + "guzzlehttp/psr7": "^2.6", + "microsoft/azure-storage-blob": "^1.1", + "mongodb/mongodb": "^1.2", + "phpseclib/phpseclib": "^3.0.36", + "phpstan/phpstan": "^1.10", + "phpunit/phpunit": "^9.5.11|^10.0", + "sabre/dav": "^4.6.0" + }, + "type": "library", + "autoload": { + "psr-4": { + "League\\Flysystem\\": "src" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Frank de Jonge", + "email": "info@frankdejonge.nl" + } + ], + "description": "File storage abstraction for PHP", + "keywords": [ + "WebDAV", + "aws", + "cloud", + "file", + "files", + "filesystem", + "filesystems", + "ftp", + "s3", + "sftp", + "storage" + ], + "support": { + "issues": "https://github.com/thephpleague/flysystem/issues", + "source": "https://github.com/thephpleague/flysystem/tree/3.28.0" + }, + "time": "2024-05-22T10:09:12+00:00" + }, + { + "name": "league/flysystem-local", + "version": "3.28.0", + "source": { + "type": "git", + "url": "https://github.com/thephpleague/flysystem-local.git", + "reference": "13f22ea8be526ea58c2ddff9e158ef7c296e4f40" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/thephpleague/flysystem-local/zipball/13f22ea8be526ea58c2ddff9e158ef7c296e4f40", + "reference": "13f22ea8be526ea58c2ddff9e158ef7c296e4f40", + "shasum": "" + }, + "require": { + "ext-fileinfo": "*", + "league/flysystem": "^3.0.0", + "league/mime-type-detection": "^1.0.0", + "php": "^8.0.2" + }, + "type": "library", + "autoload": { + "psr-4": { + "League\\Flysystem\\Local\\": "" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Frank de Jonge", + "email": "info@frankdejonge.nl" + } + ], + "description": "Local filesystem adapter for Flysystem.", + "keywords": [ + "Flysystem", + "file", + "files", + "filesystem", + "local" + ], + "support": { + "source": "https://github.com/thephpleague/flysystem-local/tree/3.28.0" + }, + "time": "2024-05-06T20:05:52+00:00" + }, + { + "name": "league/mime-type-detection", + "version": "1.15.0", + "source": { + "type": "git", + "url": "https://github.com/thephpleague/mime-type-detection.git", + "reference": "ce0f4d1e8a6f4eb0ddff33f57c69c50fd09f4301" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/thephpleague/mime-type-detection/zipball/ce0f4d1e8a6f4eb0ddff33f57c69c50fd09f4301", + "reference": "ce0f4d1e8a6f4eb0ddff33f57c69c50fd09f4301", + "shasum": "" + }, + "require": { + "ext-fileinfo": "*", + "php": "^7.4 || ^8.0" + }, + "require-dev": { + "friendsofphp/php-cs-fixer": "^3.2", + "phpstan/phpstan": "^0.12.68", + "phpunit/phpunit": "^8.5.8 || ^9.3 || ^10.0" + }, + "type": "library", + "autoload": { + "psr-4": { + "League\\MimeTypeDetection\\": "src" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Frank de Jonge", + "email": "info@frankdejonge.nl" + } + ], + "description": "Mime-type detection for Flysystem", + "support": { + "issues": "https://github.com/thephpleague/mime-type-detection/issues", + "source": "https://github.com/thephpleague/mime-type-detection/tree/1.15.0" + }, + "funding": [ + { + "url": "https://github.com/frankdejonge", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/league/flysystem", + "type": "tidelift" + } + ], + "time": "2024-01-28T23:22:08+00:00" + }, + { + "name": "midtrans/midtrans-php", + "version": "2.5.2", + "source": { + "type": "git", + "url": "https://github.com/Midtrans/midtrans-php.git", + "reference": "a1ad0c824449ca8c68c4cf11b3417ad518311d2b" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/Midtrans/midtrans-php/zipball/a1ad0c824449ca8c68c4cf11b3417ad518311d2b", + "reference": "a1ad0c824449ca8c68c4cf11b3417ad518311d2b", + "shasum": "" + }, + "require": { + "ext-curl": "*", + "ext-json": "*", + "php": ">=5.4" + }, + "require-dev": { + "phpunit/phpunit": "5.7.*", + "psy/psysh": "0.4.*" + }, + "type": "library", + "autoload": { + "psr-4": { + "Midtrans\\": "Midtrans/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Andri Setiawan", + "email": "andri.setiawan@veritrans.co.id" + }, + { + "name": "Alvin Litani", + "email": "alvin.litani@veritrans.co.id" + }, + { + "name": "Ismail Faruqi", + "email": "ismail.faruqi@veritrans.co.id" + } + ], + "description": "PHP Wrapper for Midtrans Payment API.", + "homepage": "https://midtrans.com", + "support": { + "issues": "https://github.com/Midtrans/midtrans-php/issues", + "source": "https://github.com/Midtrans/midtrans-php/tree/2.5.2" + }, + "time": "2021-08-23T08:52:05+00:00" + }, + { + "name": "monolog/monolog", + "version": "3.6.0", + "source": { + "type": "git", + "url": "https://github.com/Seldaek/monolog.git", + "reference": "4b18b21a5527a3d5ffdac2fd35d3ab25a9597654" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/Seldaek/monolog/zipball/4b18b21a5527a3d5ffdac2fd35d3ab25a9597654", + "reference": "4b18b21a5527a3d5ffdac2fd35d3ab25a9597654", + "shasum": "" + }, + "require": { + "php": ">=8.1", + "psr/log": "^2.0 || ^3.0" + }, + "provide": { + "psr/log-implementation": "3.0.0" + }, + "require-dev": { + "aws/aws-sdk-php": "^3.0", + "doctrine/couchdb": "~1.0@dev", + "elasticsearch/elasticsearch": "^7 || ^8", + "ext-json": "*", + "graylog2/gelf-php": "^1.4.2 || ^2.0", + "guzzlehttp/guzzle": "^7.4.5", + "guzzlehttp/psr7": "^2.2", + "mongodb/mongodb": "^1.8", + "php-amqplib/php-amqplib": "~2.4 || ^3", + "phpstan/phpstan": "^1.9", + "phpstan/phpstan-deprecation-rules": "^1.0", + "phpstan/phpstan-strict-rules": "^1.4", + "phpunit/phpunit": "^10.5.17", + "predis/predis": "^1.1 || ^2", + "ruflin/elastica": "^7", + "symfony/mailer": "^5.4 || ^6", + "symfony/mime": "^5.4 || ^6" + }, + "suggest": { + "aws/aws-sdk-php": "Allow sending log messages to AWS services like DynamoDB", + "doctrine/couchdb": "Allow sending log messages to a CouchDB server", + "elasticsearch/elasticsearch": "Allow sending log messages to an Elasticsearch server via official client", + "ext-amqp": "Allow sending log messages to an AMQP server (1.0+ required)", + "ext-curl": "Required to send log messages using the IFTTTHandler, the LogglyHandler, the SendGridHandler, the SlackWebhookHandler or the TelegramBotHandler", + "ext-mbstring": "Allow to work properly with unicode symbols", + "ext-mongodb": "Allow sending log messages to a MongoDB server (via driver)", + "ext-openssl": "Required to send log messages using SSL", + "ext-sockets": "Allow sending log messages to a Syslog server (via UDP driver)", + "graylog2/gelf-php": "Allow sending log messages to a GrayLog2 server", + "mongodb/mongodb": "Allow sending log messages to a MongoDB server (via library)", + "php-amqplib/php-amqplib": "Allow sending log messages to an AMQP server using php-amqplib", + "rollbar/rollbar": "Allow sending log messages to Rollbar", + "ruflin/elastica": "Allow sending log messages to an Elastic Search server" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-main": "3.x-dev" + } + }, + "autoload": { + "psr-4": { + "Monolog\\": "src/Monolog" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Jordi Boggiano", + "email": "j.boggiano@seld.be", + "homepage": "https://seld.be" + } + ], + "description": "Sends your logs to files, sockets, inboxes, databases and various web services", + "homepage": "https://github.com/Seldaek/monolog", + "keywords": [ + "log", + "logging", + "psr-3" + ], + "support": { + "issues": "https://github.com/Seldaek/monolog/issues", + "source": "https://github.com/Seldaek/monolog/tree/3.6.0" + }, + "funding": [ + { + "url": "https://github.com/Seldaek", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/monolog/monolog", + "type": "tidelift" + } + ], + "time": "2024-04-12T21:02:21+00:00" + }, + { + "name": "nesbot/carbon", + "version": "2.72.5", + "source": { + "type": "git", + "url": "https://github.com/briannesbitt/Carbon.git", + "reference": "afd46589c216118ecd48ff2b95d77596af1e57ed" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/briannesbitt/Carbon/zipball/afd46589c216118ecd48ff2b95d77596af1e57ed", + "reference": "afd46589c216118ecd48ff2b95d77596af1e57ed", + "shasum": "" + }, + "require": { + "carbonphp/carbon-doctrine-types": "*", + "ext-json": "*", + "php": "^7.1.8 || ^8.0", + "psr/clock": "^1.0", + "symfony/polyfill-mbstring": "^1.0", + "symfony/polyfill-php80": "^1.16", + "symfony/translation": "^3.4 || ^4.0 || ^5.0 || ^6.0" + }, + "provide": { + "psr/clock-implementation": "1.0" + }, + "require-dev": { + "doctrine/dbal": "^2.0 || ^3.1.4 || ^4.0", + "doctrine/orm": "^2.7 || ^3.0", + "friendsofphp/php-cs-fixer": "^3.0", + "kylekatarnls/multi-tester": "^2.0", + "ondrejmirtes/better-reflection": "*", + "phpmd/phpmd": "^2.9", + "phpstan/extension-installer": "^1.0", + "phpstan/phpstan": "^0.12.99 || ^1.7.14", + "phpunit/php-file-iterator": "^2.0.5 || ^3.0.6", + "phpunit/phpunit": "^7.5.20 || ^8.5.26 || ^9.5.20", + "squizlabs/php_codesniffer": "^3.4" + }, + "bin": [ + "bin/carbon" + ], + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "3.x-dev", + "dev-2.x": "2.x-dev" + }, + "laravel": { + "providers": [ + "Carbon\\Laravel\\ServiceProvider" + ] + }, + "phpstan": { + "includes": [ + "extension.neon" + ] + } + }, + "autoload": { + "psr-4": { + "Carbon\\": "src/Carbon/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Brian Nesbitt", + "email": "brian@nesbot.com", + "homepage": "https://markido.com" + }, + { + "name": "kylekatarnls", + "homepage": "https://github.com/kylekatarnls" + } + ], + "description": "An API extension for DateTime that supports 281 different languages.", + "homepage": "https://carbon.nesbot.com", + "keywords": [ + "date", + "datetime", + "time" + ], + "support": { + "docs": "https://carbon.nesbot.com/docs", + "issues": "https://github.com/briannesbitt/Carbon/issues", + "source": "https://github.com/briannesbitt/Carbon" + }, + "funding": [ + { + "url": "https://github.com/sponsors/kylekatarnls", + "type": "github" + }, + { + "url": "https://opencollective.com/Carbon#sponsor", + "type": "opencollective" + }, + { + "url": "https://tidelift.com/subscription/pkg/packagist-nesbot-carbon?utm_source=packagist-nesbot-carbon&utm_medium=referral&utm_campaign=readme", + "type": "tidelift" + } + ], + "time": "2024-06-03T19:18:41+00:00" + }, + { + "name": "nette/schema", + "version": "v1.3.0", + "source": { + "type": "git", + "url": "https://github.com/nette/schema.git", + "reference": "a6d3a6d1f545f01ef38e60f375d1cf1f4de98188" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/nette/schema/zipball/a6d3a6d1f545f01ef38e60f375d1cf1f4de98188", + "reference": "a6d3a6d1f545f01ef38e60f375d1cf1f4de98188", + "shasum": "" + }, + "require": { + "nette/utils": "^4.0", + "php": "8.1 - 8.3" + }, + "require-dev": { + "nette/tester": "^2.4", + "phpstan/phpstan-nette": "^1.0", + "tracy/tracy": "^2.8" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "1.3-dev" + } + }, + "autoload": { + "classmap": [ + "src/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BSD-3-Clause", + "GPL-2.0-only", + "GPL-3.0-only" + ], + "authors": [ + { + "name": "David Grudl", + "homepage": "https://davidgrudl.com" + }, + { + "name": "Nette Community", + "homepage": "https://nette.org/contributors" + } + ], + "description": "📐 Nette Schema: validating data structures against a given Schema.", + "homepage": "https://nette.org", + "keywords": [ + "config", + "nette" + ], + "support": { + "issues": "https://github.com/nette/schema/issues", + "source": "https://github.com/nette/schema/tree/v1.3.0" + }, + "time": "2023-12-11T11:54:22+00:00" + }, + { + "name": "nette/utils", + "version": "v4.0.4", + "source": { + "type": "git", + "url": "https://github.com/nette/utils.git", + "reference": "d3ad0aa3b9f934602cb3e3902ebccf10be34d218" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/nette/utils/zipball/d3ad0aa3b9f934602cb3e3902ebccf10be34d218", + "reference": "d3ad0aa3b9f934602cb3e3902ebccf10be34d218", + "shasum": "" + }, + "require": { + "php": ">=8.0 <8.4" + }, + "conflict": { + "nette/finder": "<3", + "nette/schema": "<1.2.2" + }, + "require-dev": { + "jetbrains/phpstorm-attributes": "dev-master", + "nette/tester": "^2.5", + "phpstan/phpstan": "^1.0", + "tracy/tracy": "^2.9" + }, + "suggest": { + "ext-gd": "to use Image", + "ext-iconv": "to use Strings::webalize(), toAscii(), chr() and reverse()", + "ext-intl": "to use Strings::webalize(), toAscii(), normalize() and compare()", + "ext-json": "to use Nette\\Utils\\Json", + "ext-mbstring": "to use Strings::lower() etc...", + "ext-tokenizer": "to use Nette\\Utils\\Reflection::getUseStatements()" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "4.0-dev" + } + }, + "autoload": { + "classmap": [ + "src/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BSD-3-Clause", + "GPL-2.0-only", + "GPL-3.0-only" + ], + "authors": [ + { + "name": "David Grudl", + "homepage": "https://davidgrudl.com" + }, + { + "name": "Nette Community", + "homepage": "https://nette.org/contributors" + } + ], + "description": "🛠 Nette Utils: lightweight utilities for string & array manipulation, image handling, safe JSON encoding/decoding, validation, slug or strong password generating etc.", + "homepage": "https://nette.org", + "keywords": [ + "array", + "core", + "datetime", + "images", + "json", + "nette", + "paginator", + "password", + "slugify", + "string", + "unicode", + "utf-8", + "utility", + "validation" + ], + "support": { + "issues": "https://github.com/nette/utils/issues", + "source": "https://github.com/nette/utils/tree/v4.0.4" + }, + "time": "2024-01-17T16:50:36+00:00" + }, + { + "name": "nikic/php-parser", + "version": "v5.0.2", + "source": { + "type": "git", + "url": "https://github.com/nikic/PHP-Parser.git", + "reference": "139676794dc1e9231bf7bcd123cfc0c99182cb13" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/nikic/PHP-Parser/zipball/139676794dc1e9231bf7bcd123cfc0c99182cb13", + "reference": "139676794dc1e9231bf7bcd123cfc0c99182cb13", + "shasum": "" + }, + "require": { + "ext-ctype": "*", + "ext-json": "*", + "ext-tokenizer": "*", + "php": ">=7.4" + }, + "require-dev": { + "ircmaxell/php-yacc": "^0.0.7", + "phpunit/phpunit": "^7.0 || ^8.0 || ^9.0" + }, + "bin": [ + "bin/php-parse" + ], + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "5.0-dev" + } + }, + "autoload": { + "psr-4": { + "PhpParser\\": "lib/PhpParser" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BSD-3-Clause" + ], + "authors": [ + { + "name": "Nikita Popov" + } + ], + "description": "A PHP parser written in PHP", + "keywords": [ + "parser", + "php" + ], + "support": { + "issues": "https://github.com/nikic/PHP-Parser/issues", + "source": "https://github.com/nikic/PHP-Parser/tree/v5.0.2" + }, + "time": "2024-03-05T20:51:40+00:00" + }, + { + "name": "nunomaduro/termwind", + "version": "v1.15.1", + "source": { + "type": "git", + "url": "https://github.com/nunomaduro/termwind.git", + "reference": "8ab0b32c8caa4a2e09700ea32925441385e4a5dc" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/nunomaduro/termwind/zipball/8ab0b32c8caa4a2e09700ea32925441385e4a5dc", + "reference": "8ab0b32c8caa4a2e09700ea32925441385e4a5dc", + "shasum": "" + }, + "require": { + "ext-mbstring": "*", + "php": "^8.0", + "symfony/console": "^5.3.0|^6.0.0" + }, + "require-dev": { + "ergebnis/phpstan-rules": "^1.0.", + "illuminate/console": "^8.0|^9.0", + "illuminate/support": "^8.0|^9.0", + "laravel/pint": "^1.0.0", + "pestphp/pest": "^1.21.0", + "pestphp/pest-plugin-mock": "^1.0", + "phpstan/phpstan": "^1.4.6", + "phpstan/phpstan-strict-rules": "^1.1.0", + "symfony/var-dumper": "^5.2.7|^6.0.0", + "thecodingmachine/phpstan-strict-rules": "^1.0.0" + }, + "type": "library", + "extra": { + "laravel": { + "providers": [ + "Termwind\\Laravel\\TermwindServiceProvider" + ] + } + }, + "autoload": { + "files": [ + "src/Functions.php" + ], + "psr-4": { + "Termwind\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Nuno Maduro", + "email": "enunomaduro@gmail.com" + } + ], + "description": "Its like Tailwind CSS, but for the console.", + "keywords": [ + "cli", + "console", + "css", + "package", + "php", + "style" + ], + "support": { + "issues": "https://github.com/nunomaduro/termwind/issues", + "source": "https://github.com/nunomaduro/termwind/tree/v1.15.1" + }, + "funding": [ + { + "url": "https://www.paypal.com/paypalme/enunomaduro", + "type": "custom" + }, + { + "url": "https://github.com/nunomaduro", + "type": "github" + }, + { + "url": "https://github.com/xiCO2k", + "type": "github" + } + ], + "time": "2023-02-08T01:06:31+00:00" + }, + { + "name": "phpmailer/phpmailer", + "version": "v6.9.1", + "source": { + "type": "git", + "url": "https://github.com/PHPMailer/PHPMailer.git", + "reference": "039de174cd9c17a8389754d3b877a2ed22743e18" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/PHPMailer/PHPMailer/zipball/039de174cd9c17a8389754d3b877a2ed22743e18", + "reference": "039de174cd9c17a8389754d3b877a2ed22743e18", + "shasum": "" + }, + "require": { + "ext-ctype": "*", + "ext-filter": "*", + "ext-hash": "*", + "php": ">=5.5.0" + }, + "require-dev": { + "dealerdirect/phpcodesniffer-composer-installer": "^1.0", + "doctrine/annotations": "^1.2.6 || ^1.13.3", + "php-parallel-lint/php-console-highlighter": "^1.0.0", + "php-parallel-lint/php-parallel-lint": "^1.3.2", + "phpcompatibility/php-compatibility": "^9.3.5", + "roave/security-advisories": "dev-latest", + "squizlabs/php_codesniffer": "^3.7.2", + "yoast/phpunit-polyfills": "^1.0.4" + }, + "suggest": { + "decomplexity/SendOauth2": "Adapter for using XOAUTH2 authentication", + "ext-mbstring": "Needed to send email in multibyte encoding charset or decode encoded addresses", + "ext-openssl": "Needed for secure SMTP sending and DKIM signing", + "greew/oauth2-azure-provider": "Needed for Microsoft Azure XOAUTH2 authentication", + "hayageek/oauth2-yahoo": "Needed for Yahoo XOAUTH2 authentication", + "league/oauth2-google": "Needed for Google XOAUTH2 authentication", + "psr/log": "For optional PSR-3 debug logging", + "symfony/polyfill-mbstring": "To support UTF-8 if the Mbstring PHP extension is not enabled (^1.2)", + "thenetworg/oauth2-azure": "Needed for Microsoft XOAUTH2 authentication" + }, + "type": "library", + "autoload": { + "psr-4": { + "PHPMailer\\PHPMailer\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "LGPL-2.1-only" + ], + "authors": [ + { + "name": "Marcus Bointon", + "email": "phpmailer@synchromedia.co.uk" + }, + { + "name": "Jim Jagielski", + "email": "jimjag@gmail.com" + }, + { + "name": "Andy Prevost", + "email": "codeworxtech@users.sourceforge.net" + }, + { + "name": "Brent R. Matzelle" + } + ], + "description": "PHPMailer is a full-featured email creation and transfer class for PHP", + "support": { + "issues": "https://github.com/PHPMailer/PHPMailer/issues", + "source": "https://github.com/PHPMailer/PHPMailer/tree/v6.9.1" + }, + "funding": [ + { + "url": "https://github.com/Synchro", + "type": "github" + } + ], + "time": "2023-11-25T22:23:28+00:00" + }, + { + "name": "phpoption/phpoption", + "version": "1.9.2", + "source": { + "type": "git", + "url": "https://github.com/schmittjoh/php-option.git", + "reference": "80735db690fe4fc5c76dfa7f9b770634285fa820" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/schmittjoh/php-option/zipball/80735db690fe4fc5c76dfa7f9b770634285fa820", + "reference": "80735db690fe4fc5c76dfa7f9b770634285fa820", + "shasum": "" + }, + "require": { + "php": "^7.2.5 || ^8.0" + }, + "require-dev": { + "bamarni/composer-bin-plugin": "^1.8.2", + "phpunit/phpunit": "^8.5.34 || ^9.6.13 || ^10.4.2" + }, + "type": "library", + "extra": { + "bamarni-bin": { + "bin-links": true, + "forward-command": true + }, + "branch-alias": { + "dev-master": "1.9-dev" + } + }, + "autoload": { + "psr-4": { + "PhpOption\\": "src/PhpOption/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "Apache-2.0" + ], + "authors": [ + { + "name": "Johannes M. Schmitt", + "email": "schmittjoh@gmail.com", + "homepage": "https://github.com/schmittjoh" + }, + { + "name": "Graham Campbell", + "email": "hello@gjcampbell.co.uk", + "homepage": "https://github.com/GrahamCampbell" + } + ], + "description": "Option Type for PHP", + "keywords": [ + "language", + "option", + "php", + "type" + ], + "support": { + "issues": "https://github.com/schmittjoh/php-option/issues", + "source": "https://github.com/schmittjoh/php-option/tree/1.9.2" + }, + "funding": [ + { + "url": "https://github.com/GrahamCampbell", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/phpoption/phpoption", + "type": "tidelift" + } + ], + "time": "2023-11-12T21:59:55+00:00" + }, + { + "name": "psr/clock", + "version": "1.0.0", + "source": { + "type": "git", + "url": "https://github.com/php-fig/clock.git", + "reference": "e41a24703d4560fd0acb709162f73b8adfc3aa0d" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/php-fig/clock/zipball/e41a24703d4560fd0acb709162f73b8adfc3aa0d", + "reference": "e41a24703d4560fd0acb709162f73b8adfc3aa0d", + "shasum": "" + }, + "require": { + "php": "^7.0 || ^8.0" + }, + "type": "library", + "autoload": { + "psr-4": { + "Psr\\Clock\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "PHP-FIG", + "homepage": "https://www.php-fig.org/" + } + ], + "description": "Common interface for reading the clock.", + "homepage": "https://github.com/php-fig/clock", + "keywords": [ + "clock", + "now", + "psr", + "psr-20", + "time" + ], + "support": { + "issues": "https://github.com/php-fig/clock/issues", + "source": "https://github.com/php-fig/clock/tree/1.0.0" + }, + "time": "2022-11-25T14:36:26+00:00" + }, + { + "name": "psr/container", + "version": "2.0.2", + "source": { + "type": "git", + "url": "https://github.com/php-fig/container.git", + "reference": "c71ecc56dfe541dbd90c5360474fbc405f8d5963" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/php-fig/container/zipball/c71ecc56dfe541dbd90c5360474fbc405f8d5963", + "reference": "c71ecc56dfe541dbd90c5360474fbc405f8d5963", + "shasum": "" + }, + "require": { + "php": ">=7.4.0" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "2.0.x-dev" + } + }, + "autoload": { + "psr-4": { + "Psr\\Container\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "PHP-FIG", + "homepage": "https://www.php-fig.org/" + } + ], + "description": "Common Container Interface (PHP FIG PSR-11)", + "homepage": "https://github.com/php-fig/container", + "keywords": [ + "PSR-11", + "container", + "container-interface", + "container-interop", + "psr" + ], + "support": { + "issues": "https://github.com/php-fig/container/issues", + "source": "https://github.com/php-fig/container/tree/2.0.2" + }, + "time": "2021-11-05T16:47:00+00:00" + }, + { + "name": "psr/event-dispatcher", + "version": "1.0.0", + "source": { + "type": "git", + "url": "https://github.com/php-fig/event-dispatcher.git", + "reference": "dbefd12671e8a14ec7f180cab83036ed26714bb0" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/php-fig/event-dispatcher/zipball/dbefd12671e8a14ec7f180cab83036ed26714bb0", + "reference": "dbefd12671e8a14ec7f180cab83036ed26714bb0", + "shasum": "" + }, + "require": { + "php": ">=7.2.0" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "1.0.x-dev" + } + }, + "autoload": { + "psr-4": { + "Psr\\EventDispatcher\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "PHP-FIG", + "homepage": "http://www.php-fig.org/" + } + ], + "description": "Standard interfaces for event handling.", + "keywords": [ + "events", + "psr", + "psr-14" + ], + "support": { + "issues": "https://github.com/php-fig/event-dispatcher/issues", + "source": "https://github.com/php-fig/event-dispatcher/tree/1.0.0" + }, + "time": "2019-01-08T18:20:26+00:00" + }, + { + "name": "psr/http-client", + "version": "1.0.3", + "source": { + "type": "git", + "url": "https://github.com/php-fig/http-client.git", + "reference": "bb5906edc1c324c9a05aa0873d40117941e5fa90" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/php-fig/http-client/zipball/bb5906edc1c324c9a05aa0873d40117941e5fa90", + "reference": "bb5906edc1c324c9a05aa0873d40117941e5fa90", + "shasum": "" + }, + "require": { + "php": "^7.0 || ^8.0", + "psr/http-message": "^1.0 || ^2.0" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "1.0.x-dev" + } + }, + "autoload": { + "psr-4": { + "Psr\\Http\\Client\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "PHP-FIG", + "homepage": "https://www.php-fig.org/" + } + ], + "description": "Common interface for HTTP clients", + "homepage": "https://github.com/php-fig/http-client", + "keywords": [ + "http", + "http-client", + "psr", + "psr-18" + ], + "support": { + "source": "https://github.com/php-fig/http-client" + }, + "time": "2023-09-23T14:17:50+00:00" + }, + { + "name": "psr/http-factory", + "version": "1.1.0", + "source": { + "type": "git", + "url": "https://github.com/php-fig/http-factory.git", + "reference": "2b4765fddfe3b508ac62f829e852b1501d3f6e8a" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/php-fig/http-factory/zipball/2b4765fddfe3b508ac62f829e852b1501d3f6e8a", + "reference": "2b4765fddfe3b508ac62f829e852b1501d3f6e8a", + "shasum": "" + }, + "require": { + "php": ">=7.1", + "psr/http-message": "^1.0 || ^2.0" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "1.0.x-dev" + } + }, + "autoload": { + "psr-4": { + "Psr\\Http\\Message\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "PHP-FIG", + "homepage": "https://www.php-fig.org/" + } + ], + "description": "PSR-17: Common interfaces for PSR-7 HTTP message factories", + "keywords": [ + "factory", + "http", + "message", + "psr", + "psr-17", + "psr-7", + "request", + "response" + ], + "support": { + "source": "https://github.com/php-fig/http-factory" + }, + "time": "2024-04-15T12:06:14+00:00" + }, + { + "name": "psr/http-message", + "version": "2.0", + "source": { + "type": "git", + "url": "https://github.com/php-fig/http-message.git", + "reference": "402d35bcb92c70c026d1a6a9883f06b2ead23d71" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/php-fig/http-message/zipball/402d35bcb92c70c026d1a6a9883f06b2ead23d71", + "reference": "402d35bcb92c70c026d1a6a9883f06b2ead23d71", + "shasum": "" + }, + "require": { + "php": "^7.2 || ^8.0" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "2.0.x-dev" + } + }, + "autoload": { + "psr-4": { + "Psr\\Http\\Message\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "PHP-FIG", + "homepage": "https://www.php-fig.org/" + } + ], + "description": "Common interface for HTTP messages", + "homepage": "https://github.com/php-fig/http-message", + "keywords": [ + "http", + "http-message", + "psr", + "psr-7", + "request", + "response" + ], + "support": { + "source": "https://github.com/php-fig/http-message/tree/2.0" + }, + "time": "2023-04-04T09:54:51+00:00" + }, + { + "name": "psr/log", + "version": "3.0.0", + "source": { + "type": "git", + "url": "https://github.com/php-fig/log.git", + "reference": "fe5ea303b0887d5caefd3d431c3e61ad47037001" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/php-fig/log/zipball/fe5ea303b0887d5caefd3d431c3e61ad47037001", + "reference": "fe5ea303b0887d5caefd3d431c3e61ad47037001", + "shasum": "" + }, + "require": { + "php": ">=8.0.0" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "3.x-dev" + } + }, + "autoload": { + "psr-4": { + "Psr\\Log\\": "src" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "PHP-FIG", + "homepage": "https://www.php-fig.org/" + } + ], + "description": "Common interface for logging libraries", + "homepage": "https://github.com/php-fig/log", + "keywords": [ + "log", + "psr", + "psr-3" + ], + "support": { + "source": "https://github.com/php-fig/log/tree/3.0.0" + }, + "time": "2021-07-14T16:46:02+00:00" + }, + { + "name": "psr/simple-cache", + "version": "3.0.0", + "source": { + "type": "git", + "url": "https://github.com/php-fig/simple-cache.git", + "reference": "764e0b3939f5ca87cb904f570ef9be2d78a07865" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/php-fig/simple-cache/zipball/764e0b3939f5ca87cb904f570ef9be2d78a07865", + "reference": "764e0b3939f5ca87cb904f570ef9be2d78a07865", + "shasum": "" + }, + "require": { + "php": ">=8.0.0" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "3.0.x-dev" + } + }, + "autoload": { + "psr-4": { + "Psr\\SimpleCache\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "PHP-FIG", + "homepage": "https://www.php-fig.org/" + } + ], + "description": "Common interfaces for simple caching", + "keywords": [ + "cache", + "caching", + "psr", + "psr-16", + "simple-cache" + ], + "support": { + "source": "https://github.com/php-fig/simple-cache/tree/3.0.0" + }, + "time": "2021-10-29T13:26:27+00:00" + }, + { + "name": "psy/psysh", + "version": "v0.12.3", + "source": { + "type": "git", + "url": "https://github.com/bobthecow/psysh.git", + "reference": "b6b6cce7d3ee8fbf31843edce5e8f5a72eff4a73" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/bobthecow/psysh/zipball/b6b6cce7d3ee8fbf31843edce5e8f5a72eff4a73", + "reference": "b6b6cce7d3ee8fbf31843edce5e8f5a72eff4a73", + "shasum": "" + }, + "require": { + "ext-json": "*", + "ext-tokenizer": "*", + "nikic/php-parser": "^5.0 || ^4.0", + "php": "^8.0 || ^7.4", + "symfony/console": "^7.0 || ^6.0 || ^5.0 || ^4.0 || ^3.4", + "symfony/var-dumper": "^7.0 || ^6.0 || ^5.0 || ^4.0 || ^3.4" + }, + "conflict": { + "symfony/console": "4.4.37 || 5.3.14 || 5.3.15 || 5.4.3 || 5.4.4 || 6.0.3 || 6.0.4" + }, + "require-dev": { + "bamarni/composer-bin-plugin": "^1.2" + }, + "suggest": { + "ext-pcntl": "Enabling the PCNTL extension makes PsySH a lot happier :)", + "ext-pdo-sqlite": "The doc command requires SQLite to work.", + "ext-posix": "If you have PCNTL, you'll want the POSIX extension as well." + }, + "bin": [ + "bin/psysh" + ], + "type": "library", + "extra": { + "branch-alias": { + "dev-main": "0.12.x-dev" + }, + "bamarni-bin": { + "bin-links": false, + "forward-command": false + } + }, + "autoload": { + "files": [ + "src/functions.php" + ], + "psr-4": { + "Psy\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Justin Hileman", + "email": "justin@justinhileman.info", + "homepage": "http://justinhileman.com" + } + ], + "description": "An interactive shell for modern PHP.", + "homepage": "http://psysh.org", + "keywords": [ + "REPL", + "console", + "interactive", + "shell" + ], + "support": { + "issues": "https://github.com/bobthecow/psysh/issues", + "source": "https://github.com/bobthecow/psysh/tree/v0.12.3" + }, + "time": "2024-04-02T15:57:53+00:00" + }, + { + "name": "ralouphie/getallheaders", + "version": "3.0.3", + "source": { + "type": "git", + "url": "https://github.com/ralouphie/getallheaders.git", + "reference": "120b605dfeb996808c31b6477290a714d356e822" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/ralouphie/getallheaders/zipball/120b605dfeb996808c31b6477290a714d356e822", + "reference": "120b605dfeb996808c31b6477290a714d356e822", + "shasum": "" + }, + "require": { + "php": ">=5.6" + }, + "require-dev": { + "php-coveralls/php-coveralls": "^2.1", + "phpunit/phpunit": "^5 || ^6.5" + }, + "type": "library", + "autoload": { + "files": [ + "src/getallheaders.php" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Ralph Khattar", + "email": "ralph.khattar@gmail.com" + } + ], + "description": "A polyfill for getallheaders.", + "support": { + "issues": "https://github.com/ralouphie/getallheaders/issues", + "source": "https://github.com/ralouphie/getallheaders/tree/develop" + }, + "time": "2019-03-08T08:55:37+00:00" + }, + { + "name": "ramsey/collection", + "version": "2.0.0", + "source": { + "type": "git", + "url": "https://github.com/ramsey/collection.git", + "reference": "a4b48764bfbb8f3a6a4d1aeb1a35bb5e9ecac4a5" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/ramsey/collection/zipball/a4b48764bfbb8f3a6a4d1aeb1a35bb5e9ecac4a5", + "reference": "a4b48764bfbb8f3a6a4d1aeb1a35bb5e9ecac4a5", + "shasum": "" + }, + "require": { + "php": "^8.1" + }, + "require-dev": { + "captainhook/plugin-composer": "^5.3", + "ergebnis/composer-normalize": "^2.28.3", + "fakerphp/faker": "^1.21", + "hamcrest/hamcrest-php": "^2.0", + "jangregor/phpstan-prophecy": "^1.0", + "mockery/mockery": "^1.5", + "php-parallel-lint/php-console-highlighter": "^1.0", + "php-parallel-lint/php-parallel-lint": "^1.3", + "phpcsstandards/phpcsutils": "^1.0.0-rc1", + "phpspec/prophecy-phpunit": "^2.0", + "phpstan/extension-installer": "^1.2", + "phpstan/phpstan": "^1.9", + "phpstan/phpstan-mockery": "^1.1", + "phpstan/phpstan-phpunit": "^1.3", + "phpunit/phpunit": "^9.5", + "psalm/plugin-mockery": "^1.1", + "psalm/plugin-phpunit": "^0.18.4", + "ramsey/coding-standard": "^2.0.3", + "ramsey/conventional-commits": "^1.3", + "vimeo/psalm": "^5.4" + }, + "type": "library", + "extra": { + "captainhook": { + "force-install": true + }, + "ramsey/conventional-commits": { + "configFile": "conventional-commits.json" + } + }, + "autoload": { + "psr-4": { + "Ramsey\\Collection\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Ben Ramsey", + "email": "ben@benramsey.com", + "homepage": "https://benramsey.com" + } + ], + "description": "A PHP library for representing and manipulating collections.", + "keywords": [ + "array", + "collection", + "hash", + "map", + "queue", + "set" + ], + "support": { + "issues": "https://github.com/ramsey/collection/issues", + "source": "https://github.com/ramsey/collection/tree/2.0.0" + }, + "funding": [ + { + "url": "https://github.com/ramsey", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/ramsey/collection", + "type": "tidelift" + } + ], + "time": "2022-12-31T21:50:55+00:00" + }, + { + "name": "ramsey/uuid", + "version": "4.7.6", + "source": { + "type": "git", + "url": "https://github.com/ramsey/uuid.git", + "reference": "91039bc1faa45ba123c4328958e620d382ec7088" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/ramsey/uuid/zipball/91039bc1faa45ba123c4328958e620d382ec7088", + "reference": "91039bc1faa45ba123c4328958e620d382ec7088", + "shasum": "" + }, + "require": { + "brick/math": "^0.8.8 || ^0.9 || ^0.10 || ^0.11 || ^0.12", + "ext-json": "*", + "php": "^8.0", + "ramsey/collection": "^1.2 || ^2.0" + }, + "replace": { + "rhumsaa/uuid": "self.version" + }, + "require-dev": { + "captainhook/captainhook": "^5.10", + "captainhook/plugin-composer": "^5.3", + "dealerdirect/phpcodesniffer-composer-installer": "^0.7.0", + "doctrine/annotations": "^1.8", + "ergebnis/composer-normalize": "^2.15", + "mockery/mockery": "^1.3", + "paragonie/random-lib": "^2", + "php-mock/php-mock": "^2.2", + "php-mock/php-mock-mockery": "^1.3", + "php-parallel-lint/php-parallel-lint": "^1.1", + "phpbench/phpbench": "^1.0", + "phpstan/extension-installer": "^1.1", + "phpstan/phpstan": "^1.8", + "phpstan/phpstan-mockery": "^1.1", + "phpstan/phpstan-phpunit": "^1.1", + "phpunit/phpunit": "^8.5 || ^9", + "ramsey/composer-repl": "^1.4", + "slevomat/coding-standard": "^8.4", + "squizlabs/php_codesniffer": "^3.5", + "vimeo/psalm": "^4.9" + }, + "suggest": { + "ext-bcmath": "Enables faster math with arbitrary-precision integers using BCMath.", + "ext-gmp": "Enables faster math with arbitrary-precision integers using GMP.", + "ext-uuid": "Enables the use of PeclUuidTimeGenerator and PeclUuidRandomGenerator.", + "paragonie/random-lib": "Provides RandomLib for use with the RandomLibAdapter", + "ramsey/uuid-doctrine": "Allows the use of Ramsey\\Uuid\\Uuid as Doctrine field type." + }, + "type": "library", + "extra": { + "captainhook": { + "force-install": true + } + }, + "autoload": { + "files": [ + "src/functions.php" + ], + "psr-4": { + "Ramsey\\Uuid\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "description": "A PHP library for generating and working with universally unique identifiers (UUIDs).", + "keywords": [ + "guid", + "identifier", + "uuid" + ], + "support": { + "issues": "https://github.com/ramsey/uuid/issues", + "source": "https://github.com/ramsey/uuid/tree/4.7.6" + }, + "funding": [ + { + "url": "https://github.com/ramsey", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/ramsey/uuid", + "type": "tidelift" + } + ], + "time": "2024-04-27T21:32:50+00:00" + }, + { + "name": "symfony/console", + "version": "v6.4.8", + "source": { + "type": "git", + "url": "https://github.com/symfony/console.git", + "reference": "be5854cee0e8c7b110f00d695d11debdfa1a2a91" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/console/zipball/be5854cee0e8c7b110f00d695d11debdfa1a2a91", + "reference": "be5854cee0e8c7b110f00d695d11debdfa1a2a91", + "shasum": "" + }, + "require": { + "php": ">=8.1", + "symfony/deprecation-contracts": "^2.5|^3", + "symfony/polyfill-mbstring": "~1.0", + "symfony/service-contracts": "^2.5|^3", + "symfony/string": "^5.4|^6.0|^7.0" + }, + "conflict": { + "symfony/dependency-injection": "<5.4", + "symfony/dotenv": "<5.4", + "symfony/event-dispatcher": "<5.4", + "symfony/lock": "<5.4", + "symfony/process": "<5.4" + }, + "provide": { + "psr/log-implementation": "1.0|2.0|3.0" + }, + "require-dev": { + "psr/log": "^1|^2|^3", + "symfony/config": "^5.4|^6.0|^7.0", + "symfony/dependency-injection": "^5.4|^6.0|^7.0", + "symfony/event-dispatcher": "^5.4|^6.0|^7.0", + "symfony/http-foundation": "^6.4|^7.0", + "symfony/http-kernel": "^6.4|^7.0", + "symfony/lock": "^5.4|^6.0|^7.0", + "symfony/messenger": "^5.4|^6.0|^7.0", + "symfony/process": "^5.4|^6.0|^7.0", + "symfony/stopwatch": "^5.4|^6.0|^7.0", + "symfony/var-dumper": "^5.4|^6.0|^7.0" + }, + "type": "library", + "autoload": { + "psr-4": { + "Symfony\\Component\\Console\\": "" + }, + "exclude-from-classmap": [ + "/Tests/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Fabien Potencier", + "email": "fabien@symfony.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Eases the creation of beautiful and testable command line interfaces", + "homepage": "https://symfony.com", + "keywords": [ + "cli", + "command-line", + "console", + "terminal" + ], + "support": { + "source": "https://github.com/symfony/console/tree/v6.4.8" + }, + "funding": [ + { + "url": "https://symfony.com/sponsor", + "type": "custom" + }, + { + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" + } + ], + "time": "2024-05-31T14:49:08+00:00" + }, + { + "name": "symfony/css-selector", + "version": "v7.1.1", + "source": { + "type": "git", + "url": "https://github.com/symfony/css-selector.git", + "reference": "1c7cee86c6f812896af54434f8ce29c8d94f9ff4" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/css-selector/zipball/1c7cee86c6f812896af54434f8ce29c8d94f9ff4", + "reference": "1c7cee86c6f812896af54434f8ce29c8d94f9ff4", + "shasum": "" + }, + "require": { + "php": ">=8.2" + }, + "type": "library", + "autoload": { + "psr-4": { + "Symfony\\Component\\CssSelector\\": "" + }, + "exclude-from-classmap": [ + "/Tests/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Fabien Potencier", + "email": "fabien@symfony.com" + }, + { + "name": "Jean-François Simon", + "email": "jeanfrancois.simon@sensiolabs.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Converts CSS selectors to XPath expressions", + "homepage": "https://symfony.com", + "support": { + "source": "https://github.com/symfony/css-selector/tree/v7.1.1" + }, + "funding": [ + { + "url": "https://symfony.com/sponsor", + "type": "custom" + }, + { + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" + } + ], + "time": "2024-05-31T14:57:53+00:00" + }, + { + "name": "symfony/deprecation-contracts", + "version": "v3.5.0", + "source": { + "type": "git", + "url": "https://github.com/symfony/deprecation-contracts.git", + "reference": "0e0d29ce1f20deffb4ab1b016a7257c4f1e789a1" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/deprecation-contracts/zipball/0e0d29ce1f20deffb4ab1b016a7257c4f1e789a1", + "reference": "0e0d29ce1f20deffb4ab1b016a7257c4f1e789a1", + "shasum": "" + }, + "require": { + "php": ">=8.1" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-main": "3.5-dev" + }, + "thanks": { + "name": "symfony/contracts", + "url": "https://github.com/symfony/contracts" + } + }, + "autoload": { + "files": [ + "function.php" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Nicolas Grekas", + "email": "p@tchwork.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "A generic function and convention to trigger deprecation notices", + "homepage": "https://symfony.com", + "support": { + "source": "https://github.com/symfony/deprecation-contracts/tree/v3.5.0" + }, + "funding": [ + { + "url": "https://symfony.com/sponsor", + "type": "custom" + }, + { + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" + } + ], + "time": "2024-04-18T09:32:20+00:00" + }, + { + "name": "symfony/error-handler", + "version": "v6.4.8", + "source": { + "type": "git", + "url": "https://github.com/symfony/error-handler.git", + "reference": "ef836152bf13472dc5fb5b08b0c0c4cfeddc0fcc" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/error-handler/zipball/ef836152bf13472dc5fb5b08b0c0c4cfeddc0fcc", + "reference": "ef836152bf13472dc5fb5b08b0c0c4cfeddc0fcc", + "shasum": "" + }, + "require": { + "php": ">=8.1", + "psr/log": "^1|^2|^3", + "symfony/var-dumper": "^5.4|^6.0|^7.0" + }, + "conflict": { + "symfony/deprecation-contracts": "<2.5", + "symfony/http-kernel": "<6.4" + }, + "require-dev": { + "symfony/deprecation-contracts": "^2.5|^3", + "symfony/http-kernel": "^6.4|^7.0", + "symfony/serializer": "^5.4|^6.0|^7.0" + }, + "bin": [ + "Resources/bin/patch-type-declarations" + ], + "type": "library", + "autoload": { + "psr-4": { + "Symfony\\Component\\ErrorHandler\\": "" + }, + "exclude-from-classmap": [ + "/Tests/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Fabien Potencier", + "email": "fabien@symfony.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Provides tools to manage errors and ease debugging PHP code", + "homepage": "https://symfony.com", + "support": { + "source": "https://github.com/symfony/error-handler/tree/v6.4.8" + }, + "funding": [ + { + "url": "https://symfony.com/sponsor", + "type": "custom" + }, + { + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" + } + ], + "time": "2024-05-31T14:49:08+00:00" + }, + { + "name": "symfony/event-dispatcher", + "version": "v7.1.1", + "source": { + "type": "git", + "url": "https://github.com/symfony/event-dispatcher.git", + "reference": "9fa7f7a21beb22a39a8f3f28618b29e50d7a55a7" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/event-dispatcher/zipball/9fa7f7a21beb22a39a8f3f28618b29e50d7a55a7", + "reference": "9fa7f7a21beb22a39a8f3f28618b29e50d7a55a7", + "shasum": "" + }, + "require": { + "php": ">=8.2", + "symfony/event-dispatcher-contracts": "^2.5|^3" + }, + "conflict": { + "symfony/dependency-injection": "<6.4", + "symfony/service-contracts": "<2.5" + }, + "provide": { + "psr/event-dispatcher-implementation": "1.0", + "symfony/event-dispatcher-implementation": "2.0|3.0" + }, + "require-dev": { + "psr/log": "^1|^2|^3", + "symfony/config": "^6.4|^7.0", + "symfony/dependency-injection": "^6.4|^7.0", + "symfony/error-handler": "^6.4|^7.0", + "symfony/expression-language": "^6.4|^7.0", + "symfony/http-foundation": "^6.4|^7.0", + "symfony/service-contracts": "^2.5|^3", + "symfony/stopwatch": "^6.4|^7.0" + }, + "type": "library", + "autoload": { + "psr-4": { + "Symfony\\Component\\EventDispatcher\\": "" + }, + "exclude-from-classmap": [ + "/Tests/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Fabien Potencier", + "email": "fabien@symfony.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Provides tools that allow your application components to communicate with each other by dispatching events and listening to them", + "homepage": "https://symfony.com", + "support": { + "source": "https://github.com/symfony/event-dispatcher/tree/v7.1.1" + }, + "funding": [ + { + "url": "https://symfony.com/sponsor", + "type": "custom" + }, + { + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" + } + ], + "time": "2024-05-31T14:57:53+00:00" + }, + { + "name": "symfony/event-dispatcher-contracts", + "version": "v3.5.0", + "source": { + "type": "git", + "url": "https://github.com/symfony/event-dispatcher-contracts.git", + "reference": "8f93aec25d41b72493c6ddff14e916177c9efc50" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/event-dispatcher-contracts/zipball/8f93aec25d41b72493c6ddff14e916177c9efc50", + "reference": "8f93aec25d41b72493c6ddff14e916177c9efc50", + "shasum": "" + }, + "require": { + "php": ">=8.1", + "psr/event-dispatcher": "^1" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-main": "3.5-dev" + }, + "thanks": { + "name": "symfony/contracts", + "url": "https://github.com/symfony/contracts" + } + }, + "autoload": { + "psr-4": { + "Symfony\\Contracts\\EventDispatcher\\": "" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Nicolas Grekas", + "email": "p@tchwork.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Generic abstractions related to dispatching event", + "homepage": "https://symfony.com", + "keywords": [ + "abstractions", + "contracts", + "decoupling", + "interfaces", + "interoperability", + "standards" + ], + "support": { + "source": "https://github.com/symfony/event-dispatcher-contracts/tree/v3.5.0" + }, + "funding": [ + { + "url": "https://symfony.com/sponsor", + "type": "custom" + }, + { + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" + } + ], + "time": "2024-04-18T09:32:20+00:00" + }, + { + "name": "symfony/finder", + "version": "v6.4.8", + "source": { + "type": "git", + "url": "https://github.com/symfony/finder.git", + "reference": "3ef977a43883215d560a2cecb82ec8e62131471c" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/finder/zipball/3ef977a43883215d560a2cecb82ec8e62131471c", + "reference": "3ef977a43883215d560a2cecb82ec8e62131471c", + "shasum": "" + }, + "require": { + "php": ">=8.1" + }, + "require-dev": { + "symfony/filesystem": "^6.0|^7.0" + }, + "type": "library", + "autoload": { + "psr-4": { + "Symfony\\Component\\Finder\\": "" + }, + "exclude-from-classmap": [ + "/Tests/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Fabien Potencier", + "email": "fabien@symfony.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Finds files and directories via an intuitive fluent interface", + "homepage": "https://symfony.com", + "support": { + "source": "https://github.com/symfony/finder/tree/v6.4.8" + }, + "funding": [ + { + "url": "https://symfony.com/sponsor", + "type": "custom" + }, + { + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" + } + ], + "time": "2024-05-31T14:49:08+00:00" + }, + { + "name": "symfony/http-foundation", + "version": "v6.4.8", + "source": { + "type": "git", + "url": "https://github.com/symfony/http-foundation.git", + "reference": "27de8cc95e11db7a50b027e71caaab9024545947" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/http-foundation/zipball/27de8cc95e11db7a50b027e71caaab9024545947", + "reference": "27de8cc95e11db7a50b027e71caaab9024545947", + "shasum": "" + }, + "require": { + "php": ">=8.1", + "symfony/deprecation-contracts": "^2.5|^3", + "symfony/polyfill-mbstring": "~1.1", + "symfony/polyfill-php83": "^1.27" + }, + "conflict": { + "symfony/cache": "<6.3" + }, + "require-dev": { + "doctrine/dbal": "^2.13.1|^3|^4", + "predis/predis": "^1.1|^2.0", + "symfony/cache": "^6.3|^7.0", + "symfony/dependency-injection": "^5.4|^6.0|^7.0", + "symfony/expression-language": "^5.4|^6.0|^7.0", + "symfony/http-kernel": "^5.4.12|^6.0.12|^6.1.4|^7.0", + "symfony/mime": "^5.4|^6.0|^7.0", + "symfony/rate-limiter": "^5.4|^6.0|^7.0" + }, + "type": "library", + "autoload": { + "psr-4": { + "Symfony\\Component\\HttpFoundation\\": "" + }, + "exclude-from-classmap": [ + "/Tests/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Fabien Potencier", + "email": "fabien@symfony.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Defines an object-oriented layer for the HTTP specification", + "homepage": "https://symfony.com", + "support": { + "source": "https://github.com/symfony/http-foundation/tree/v6.4.8" + }, + "funding": [ + { + "url": "https://symfony.com/sponsor", + "type": "custom" + }, + { + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" + } + ], + "time": "2024-05-31T14:49:08+00:00" + }, + { + "name": "symfony/http-kernel", + "version": "v6.4.8", + "source": { + "type": "git", + "url": "https://github.com/symfony/http-kernel.git", + "reference": "6c519aa3f32adcfd1d1f18d923f6b227d9acf3c1" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/http-kernel/zipball/6c519aa3f32adcfd1d1f18d923f6b227d9acf3c1", + "reference": "6c519aa3f32adcfd1d1f18d923f6b227d9acf3c1", + "shasum": "" + }, + "require": { + "php": ">=8.1", + "psr/log": "^1|^2|^3", + "symfony/deprecation-contracts": "^2.5|^3", + "symfony/error-handler": "^6.4|^7.0", + "symfony/event-dispatcher": "^5.4|^6.0|^7.0", + "symfony/http-foundation": "^6.4|^7.0", + "symfony/polyfill-ctype": "^1.8" + }, + "conflict": { + "symfony/browser-kit": "<5.4", + "symfony/cache": "<5.4", + "symfony/config": "<6.1", + "symfony/console": "<5.4", + "symfony/dependency-injection": "<6.4", + "symfony/doctrine-bridge": "<5.4", + "symfony/form": "<5.4", + "symfony/http-client": "<5.4", + "symfony/http-client-contracts": "<2.5", + "symfony/mailer": "<5.4", + "symfony/messenger": "<5.4", + "symfony/translation": "<5.4", + "symfony/translation-contracts": "<2.5", + "symfony/twig-bridge": "<5.4", + "symfony/validator": "<6.4", + "symfony/var-dumper": "<6.3", + "twig/twig": "<2.13" + }, + "provide": { + "psr/log-implementation": "1.0|2.0|3.0" + }, + "require-dev": { + "psr/cache": "^1.0|^2.0|^3.0", + "symfony/browser-kit": "^5.4|^6.0|^7.0", + "symfony/clock": "^6.2|^7.0", + "symfony/config": "^6.1|^7.0", + "symfony/console": "^5.4|^6.0|^7.0", + "symfony/css-selector": "^5.4|^6.0|^7.0", + "symfony/dependency-injection": "^6.4|^7.0", + "symfony/dom-crawler": "^5.4|^6.0|^7.0", + "symfony/expression-language": "^5.4|^6.0|^7.0", + "symfony/finder": "^5.4|^6.0|^7.0", + "symfony/http-client-contracts": "^2.5|^3", + "symfony/process": "^5.4|^6.0|^7.0", + "symfony/property-access": "^5.4.5|^6.0.5|^7.0", + "symfony/routing": "^5.4|^6.0|^7.0", + "symfony/serializer": "^6.4.4|^7.0.4", + "symfony/stopwatch": "^5.4|^6.0|^7.0", + "symfony/translation": "^5.4|^6.0|^7.0", + "symfony/translation-contracts": "^2.5|^3", + "symfony/uid": "^5.4|^6.0|^7.0", + "symfony/validator": "^6.4|^7.0", + "symfony/var-dumper": "^5.4|^6.4|^7.0", + "symfony/var-exporter": "^6.2|^7.0", + "twig/twig": "^2.13|^3.0.4" + }, + "type": "library", + "autoload": { + "psr-4": { + "Symfony\\Component\\HttpKernel\\": "" + }, + "exclude-from-classmap": [ + "/Tests/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Fabien Potencier", + "email": "fabien@symfony.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Provides a structured process for converting a Request into a Response", + "homepage": "https://symfony.com", + "support": { + "source": "https://github.com/symfony/http-kernel/tree/v6.4.8" + }, + "funding": [ + { + "url": "https://symfony.com/sponsor", + "type": "custom" + }, + { + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" + } + ], + "time": "2024-06-02T16:06:25+00:00" + }, + { + "name": "symfony/mailer", + "version": "v6.4.8", + "source": { + "type": "git", + "url": "https://github.com/symfony/mailer.git", + "reference": "76326421d44c07f7824b19487cfbf87870b37efc" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/mailer/zipball/76326421d44c07f7824b19487cfbf87870b37efc", + "reference": "76326421d44c07f7824b19487cfbf87870b37efc", + "shasum": "" + }, + "require": { + "egulias/email-validator": "^2.1.10|^3|^4", + "php": ">=8.1", + "psr/event-dispatcher": "^1", + "psr/log": "^1|^2|^3", + "symfony/event-dispatcher": "^5.4|^6.0|^7.0", + "symfony/mime": "^6.2|^7.0", + "symfony/service-contracts": "^2.5|^3" + }, + "conflict": { + "symfony/http-client-contracts": "<2.5", + "symfony/http-kernel": "<5.4", + "symfony/messenger": "<6.2", + "symfony/mime": "<6.2", + "symfony/twig-bridge": "<6.2.1" + }, + "require-dev": { + "symfony/console": "^5.4|^6.0|^7.0", + "symfony/http-client": "^5.4|^6.0|^7.0", + "symfony/messenger": "^6.2|^7.0", + "symfony/twig-bridge": "^6.2|^7.0" + }, + "type": "library", + "autoload": { + "psr-4": { + "Symfony\\Component\\Mailer\\": "" + }, + "exclude-from-classmap": [ + "/Tests/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Fabien Potencier", + "email": "fabien@symfony.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Helps sending emails", + "homepage": "https://symfony.com", + "support": { + "source": "https://github.com/symfony/mailer/tree/v6.4.8" + }, + "funding": [ + { + "url": "https://symfony.com/sponsor", + "type": "custom" + }, + { + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" + } + ], + "time": "2024-05-31T14:49:08+00:00" + }, + { + "name": "symfony/mime", + "version": "v6.4.8", + "source": { + "type": "git", + "url": "https://github.com/symfony/mime.git", + "reference": "618597ab8b78ac86d1c75a9d0b35540cda074f33" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/mime/zipball/618597ab8b78ac86d1c75a9d0b35540cda074f33", + "reference": "618597ab8b78ac86d1c75a9d0b35540cda074f33", + "shasum": "" + }, + "require": { + "php": ">=8.1", + "symfony/deprecation-contracts": "^2.5|^3", + "symfony/polyfill-intl-idn": "^1.10", + "symfony/polyfill-mbstring": "^1.0" + }, + "conflict": { + "egulias/email-validator": "~3.0.0", + "phpdocumentor/reflection-docblock": "<3.2.2", + "phpdocumentor/type-resolver": "<1.4.0", + "symfony/mailer": "<5.4", + "symfony/serializer": "<6.3.2" + }, + "require-dev": { + "egulias/email-validator": "^2.1.10|^3.1|^4", + "league/html-to-markdown": "^5.0", + "phpdocumentor/reflection-docblock": "^3.0|^4.0|^5.0", + "symfony/dependency-injection": "^5.4|^6.0|^7.0", + "symfony/process": "^5.4|^6.4|^7.0", + "symfony/property-access": "^5.4|^6.0|^7.0", + "symfony/property-info": "^5.4|^6.0|^7.0", + "symfony/serializer": "^6.3.2|^7.0" + }, + "type": "library", + "autoload": { + "psr-4": { + "Symfony\\Component\\Mime\\": "" + }, + "exclude-from-classmap": [ + "/Tests/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Fabien Potencier", + "email": "fabien@symfony.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Allows manipulating MIME messages", + "homepage": "https://symfony.com", + "keywords": [ + "mime", + "mime-type" + ], + "support": { + "source": "https://github.com/symfony/mime/tree/v6.4.8" + }, + "funding": [ + { + "url": "https://symfony.com/sponsor", + "type": "custom" + }, + { + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" + } + ], + "time": "2024-06-01T07:50:16+00:00" + }, + { + "name": "symfony/polyfill-ctype", + "version": "v1.29.0", + "source": { + "type": "git", + "url": "https://github.com/symfony/polyfill-ctype.git", + "reference": "ef4d7e442ca910c4764bce785146269b30cb5fc4" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/polyfill-ctype/zipball/ef4d7e442ca910c4764bce785146269b30cb5fc4", + "reference": "ef4d7e442ca910c4764bce785146269b30cb5fc4", + "shasum": "" + }, + "require": { + "php": ">=7.1" + }, + "provide": { + "ext-ctype": "*" + }, + "suggest": { + "ext-ctype": "For best performance" + }, + "type": "library", + "extra": { + "thanks": { + "name": "symfony/polyfill", + "url": "https://github.com/symfony/polyfill" + } + }, + "autoload": { + "files": [ + "bootstrap.php" + ], + "psr-4": { + "Symfony\\Polyfill\\Ctype\\": "" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Gert de Pagter", + "email": "BackEndTea@gmail.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Symfony polyfill for ctype functions", + "homepage": "https://symfony.com", + "keywords": [ + "compatibility", + "ctype", + "polyfill", + "portable" + ], + "support": { + "source": "https://github.com/symfony/polyfill-ctype/tree/v1.29.0" + }, + "funding": [ + { + "url": "https://symfony.com/sponsor", + "type": "custom" + }, + { + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" + } + ], + "time": "2024-01-29T20:11:03+00:00" + }, + { + "name": "symfony/polyfill-intl-grapheme", + "version": "v1.29.0", + "source": { + "type": "git", + "url": "https://github.com/symfony/polyfill-intl-grapheme.git", + "reference": "32a9da87d7b3245e09ac426c83d334ae9f06f80f" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/polyfill-intl-grapheme/zipball/32a9da87d7b3245e09ac426c83d334ae9f06f80f", + "reference": "32a9da87d7b3245e09ac426c83d334ae9f06f80f", + "shasum": "" + }, + "require": { + "php": ">=7.1" + }, + "suggest": { + "ext-intl": "For best performance" + }, + "type": "library", + "extra": { + "thanks": { + "name": "symfony/polyfill", + "url": "https://github.com/symfony/polyfill" + } + }, + "autoload": { + "files": [ + "bootstrap.php" + ], + "psr-4": { + "Symfony\\Polyfill\\Intl\\Grapheme\\": "" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Nicolas Grekas", + "email": "p@tchwork.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Symfony polyfill for intl's grapheme_* functions", + "homepage": "https://symfony.com", + "keywords": [ + "compatibility", + "grapheme", + "intl", + "polyfill", + "portable", + "shim" + ], + "support": { + "source": "https://github.com/symfony/polyfill-intl-grapheme/tree/v1.29.0" + }, + "funding": [ + { + "url": "https://symfony.com/sponsor", + "type": "custom" + }, + { + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" + } + ], + "time": "2024-01-29T20:11:03+00:00" + }, + { + "name": "symfony/polyfill-intl-idn", + "version": "v1.29.0", + "source": { + "type": "git", + "url": "https://github.com/symfony/polyfill-intl-idn.git", + "reference": "a287ed7475f85bf6f61890146edbc932c0fff919" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/polyfill-intl-idn/zipball/a287ed7475f85bf6f61890146edbc932c0fff919", + "reference": "a287ed7475f85bf6f61890146edbc932c0fff919", + "shasum": "" + }, + "require": { + "php": ">=7.1", + "symfony/polyfill-intl-normalizer": "^1.10", + "symfony/polyfill-php72": "^1.10" + }, + "suggest": { + "ext-intl": "For best performance" + }, + "type": "library", + "extra": { + "thanks": { + "name": "symfony/polyfill", + "url": "https://github.com/symfony/polyfill" + } + }, + "autoload": { + "files": [ + "bootstrap.php" + ], + "psr-4": { + "Symfony\\Polyfill\\Intl\\Idn\\": "" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Laurent Bassin", + "email": "laurent@bassin.info" + }, + { + "name": "Trevor Rowbotham", + "email": "trevor.rowbotham@pm.me" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Symfony polyfill for intl's idn_to_ascii and idn_to_utf8 functions", + "homepage": "https://symfony.com", + "keywords": [ + "compatibility", + "idn", + "intl", + "polyfill", + "portable", + "shim" + ], + "support": { + "source": "https://github.com/symfony/polyfill-intl-idn/tree/v1.29.0" + }, + "funding": [ + { + "url": "https://symfony.com/sponsor", + "type": "custom" + }, + { + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" + } + ], + "time": "2024-01-29T20:11:03+00:00" + }, + { + "name": "symfony/polyfill-intl-normalizer", + "version": "v1.29.0", + "source": { + "type": "git", + "url": "https://github.com/symfony/polyfill-intl-normalizer.git", + "reference": "bc45c394692b948b4d383a08d7753968bed9a83d" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/polyfill-intl-normalizer/zipball/bc45c394692b948b4d383a08d7753968bed9a83d", + "reference": "bc45c394692b948b4d383a08d7753968bed9a83d", + "shasum": "" + }, + "require": { + "php": ">=7.1" + }, + "suggest": { + "ext-intl": "For best performance" + }, + "type": "library", + "extra": { + "thanks": { + "name": "symfony/polyfill", + "url": "https://github.com/symfony/polyfill" + } + }, + "autoload": { + "files": [ + "bootstrap.php" + ], + "psr-4": { + "Symfony\\Polyfill\\Intl\\Normalizer\\": "" + }, + "classmap": [ + "Resources/stubs" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Nicolas Grekas", + "email": "p@tchwork.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Symfony polyfill for intl's Normalizer class and related functions", + "homepage": "https://symfony.com", + "keywords": [ + "compatibility", + "intl", + "normalizer", + "polyfill", + "portable", + "shim" + ], + "support": { + "source": "https://github.com/symfony/polyfill-intl-normalizer/tree/v1.29.0" + }, + "funding": [ + { + "url": "https://symfony.com/sponsor", + "type": "custom" + }, + { + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" + } + ], + "time": "2024-01-29T20:11:03+00:00" + }, + { + "name": "symfony/polyfill-mbstring", + "version": "v1.29.0", + "source": { + "type": "git", + "url": "https://github.com/symfony/polyfill-mbstring.git", + "reference": "9773676c8a1bb1f8d4340a62efe641cf76eda7ec" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/polyfill-mbstring/zipball/9773676c8a1bb1f8d4340a62efe641cf76eda7ec", + "reference": "9773676c8a1bb1f8d4340a62efe641cf76eda7ec", + "shasum": "" + }, + "require": { + "php": ">=7.1" + }, + "provide": { + "ext-mbstring": "*" + }, + "suggest": { + "ext-mbstring": "For best performance" + }, + "type": "library", + "extra": { + "thanks": { + "name": "symfony/polyfill", + "url": "https://github.com/symfony/polyfill" + } + }, + "autoload": { + "files": [ + "bootstrap.php" + ], + "psr-4": { + "Symfony\\Polyfill\\Mbstring\\": "" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Nicolas Grekas", + "email": "p@tchwork.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Symfony polyfill for the Mbstring extension", + "homepage": "https://symfony.com", + "keywords": [ + "compatibility", + "mbstring", + "polyfill", + "portable", + "shim" + ], + "support": { + "source": "https://github.com/symfony/polyfill-mbstring/tree/v1.29.0" + }, + "funding": [ + { + "url": "https://symfony.com/sponsor", + "type": "custom" + }, + { + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" + } + ], + "time": "2024-01-29T20:11:03+00:00" + }, + { + "name": "symfony/polyfill-php72", + "version": "v1.29.0", + "source": { + "type": "git", + "url": "https://github.com/symfony/polyfill-php72.git", + "reference": "861391a8da9a04cbad2d232ddd9e4893220d6e25" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/polyfill-php72/zipball/861391a8da9a04cbad2d232ddd9e4893220d6e25", + "reference": "861391a8da9a04cbad2d232ddd9e4893220d6e25", + "shasum": "" + }, + "require": { + "php": ">=7.1" + }, + "type": "library", + "extra": { + "thanks": { + "name": "symfony/polyfill", + "url": "https://github.com/symfony/polyfill" + } + }, + "autoload": { + "files": [ + "bootstrap.php" + ], + "psr-4": { + "Symfony\\Polyfill\\Php72\\": "" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Nicolas Grekas", + "email": "p@tchwork.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Symfony polyfill backporting some PHP 7.2+ features to lower PHP versions", + "homepage": "https://symfony.com", + "keywords": [ + "compatibility", + "polyfill", + "portable", + "shim" + ], + "support": { + "source": "https://github.com/symfony/polyfill-php72/tree/v1.29.0" + }, + "funding": [ + { + "url": "https://symfony.com/sponsor", + "type": "custom" + }, + { + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" + } + ], + "time": "2024-01-29T20:11:03+00:00" + }, + { + "name": "symfony/polyfill-php80", + "version": "v1.29.0", + "source": { + "type": "git", + "url": "https://github.com/symfony/polyfill-php80.git", + "reference": "87b68208d5c1188808dd7839ee1e6c8ec3b02f1b" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/polyfill-php80/zipball/87b68208d5c1188808dd7839ee1e6c8ec3b02f1b", + "reference": "87b68208d5c1188808dd7839ee1e6c8ec3b02f1b", + "shasum": "" + }, + "require": { + "php": ">=7.1" + }, + "type": "library", + "extra": { + "thanks": { + "name": "symfony/polyfill", + "url": "https://github.com/symfony/polyfill" + } + }, + "autoload": { + "files": [ + "bootstrap.php" + ], + "psr-4": { + "Symfony\\Polyfill\\Php80\\": "" + }, + "classmap": [ + "Resources/stubs" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Ion Bazan", + "email": "ion.bazan@gmail.com" + }, + { + "name": "Nicolas Grekas", + "email": "p@tchwork.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Symfony polyfill backporting some PHP 8.0+ features to lower PHP versions", + "homepage": "https://symfony.com", + "keywords": [ + "compatibility", + "polyfill", + "portable", + "shim" + ], + "support": { + "source": "https://github.com/symfony/polyfill-php80/tree/v1.29.0" + }, + "funding": [ + { + "url": "https://symfony.com/sponsor", + "type": "custom" + }, + { + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" + } + ], + "time": "2024-01-29T20:11:03+00:00" + }, + { + "name": "symfony/polyfill-php83", + "version": "v1.29.0", + "source": { + "type": "git", + "url": "https://github.com/symfony/polyfill-php83.git", + "reference": "86fcae159633351e5fd145d1c47de6c528f8caff" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/polyfill-php83/zipball/86fcae159633351e5fd145d1c47de6c528f8caff", + "reference": "86fcae159633351e5fd145d1c47de6c528f8caff", + "shasum": "" + }, + "require": { + "php": ">=7.1", + "symfony/polyfill-php80": "^1.14" + }, + "type": "library", + "extra": { + "thanks": { + "name": "symfony/polyfill", + "url": "https://github.com/symfony/polyfill" + } + }, + "autoload": { + "files": [ + "bootstrap.php" + ], + "psr-4": { + "Symfony\\Polyfill\\Php83\\": "" + }, + "classmap": [ + "Resources/stubs" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Nicolas Grekas", + "email": "p@tchwork.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Symfony polyfill backporting some PHP 8.3+ features to lower PHP versions", + "homepage": "https://symfony.com", + "keywords": [ + "compatibility", + "polyfill", + "portable", + "shim" + ], + "support": { + "source": "https://github.com/symfony/polyfill-php83/tree/v1.29.0" + }, + "funding": [ + { + "url": "https://symfony.com/sponsor", + "type": "custom" + }, + { + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" + } + ], + "time": "2024-01-29T20:11:03+00:00" + }, + { + "name": "symfony/polyfill-uuid", + "version": "v1.29.0", + "source": { + "type": "git", + "url": "https://github.com/symfony/polyfill-uuid.git", + "reference": "3abdd21b0ceaa3000ee950097bc3cf9efc137853" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/polyfill-uuid/zipball/3abdd21b0ceaa3000ee950097bc3cf9efc137853", + "reference": "3abdd21b0ceaa3000ee950097bc3cf9efc137853", + "shasum": "" + }, + "require": { + "php": ">=7.1" + }, + "provide": { + "ext-uuid": "*" + }, + "suggest": { + "ext-uuid": "For best performance" + }, + "type": "library", + "extra": { + "thanks": { + "name": "symfony/polyfill", + "url": "https://github.com/symfony/polyfill" + } + }, + "autoload": { + "files": [ + "bootstrap.php" + ], + "psr-4": { + "Symfony\\Polyfill\\Uuid\\": "" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Grégoire Pineau", + "email": "lyrixx@lyrixx.info" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Symfony polyfill for uuid functions", + "homepage": "https://symfony.com", + "keywords": [ + "compatibility", + "polyfill", + "portable", + "uuid" + ], + "support": { + "source": "https://github.com/symfony/polyfill-uuid/tree/v1.29.0" + }, + "funding": [ + { + "url": "https://symfony.com/sponsor", + "type": "custom" + }, + { + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" + } + ], + "time": "2024-01-29T20:11:03+00:00" + }, + { + "name": "symfony/process", + "version": "v6.4.8", + "source": { + "type": "git", + "url": "https://github.com/symfony/process.git", + "reference": "8d92dd79149f29e89ee0f480254db595f6a6a2c5" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/process/zipball/8d92dd79149f29e89ee0f480254db595f6a6a2c5", + "reference": "8d92dd79149f29e89ee0f480254db595f6a6a2c5", + "shasum": "" + }, + "require": { + "php": ">=8.1" + }, + "type": "library", + "autoload": { + "psr-4": { + "Symfony\\Component\\Process\\": "" + }, + "exclude-from-classmap": [ + "/Tests/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Fabien Potencier", + "email": "fabien@symfony.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Executes commands in sub-processes", + "homepage": "https://symfony.com", + "support": { + "source": "https://github.com/symfony/process/tree/v6.4.8" + }, + "funding": [ + { + "url": "https://symfony.com/sponsor", + "type": "custom" + }, + { + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" + } + ], + "time": "2024-05-31T14:49:08+00:00" + }, + { + "name": "symfony/routing", + "version": "v6.4.8", + "source": { + "type": "git", + "url": "https://github.com/symfony/routing.git", + "reference": "8a40d0f9b01f0fbb80885d3ce0ad6714fb603a58" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/routing/zipball/8a40d0f9b01f0fbb80885d3ce0ad6714fb603a58", + "reference": "8a40d0f9b01f0fbb80885d3ce0ad6714fb603a58", + "shasum": "" + }, + "require": { + "php": ">=8.1", + "symfony/deprecation-contracts": "^2.5|^3" + }, + "conflict": { + "doctrine/annotations": "<1.12", + "symfony/config": "<6.2", + "symfony/dependency-injection": "<5.4", + "symfony/yaml": "<5.4" + }, + "require-dev": { + "doctrine/annotations": "^1.12|^2", + "psr/log": "^1|^2|^3", + "symfony/config": "^6.2|^7.0", + "symfony/dependency-injection": "^5.4|^6.0|^7.0", + "symfony/expression-language": "^5.4|^6.0|^7.0", + "symfony/http-foundation": "^5.4|^6.0|^7.0", + "symfony/yaml": "^5.4|^6.0|^7.0" + }, + "type": "library", + "autoload": { + "psr-4": { + "Symfony\\Component\\Routing\\": "" + }, + "exclude-from-classmap": [ + "/Tests/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Fabien Potencier", + "email": "fabien@symfony.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Maps an HTTP request to a set of configuration variables", + "homepage": "https://symfony.com", + "keywords": [ + "router", + "routing", + "uri", + "url" + ], + "support": { + "source": "https://github.com/symfony/routing/tree/v6.4.8" + }, + "funding": [ + { + "url": "https://symfony.com/sponsor", + "type": "custom" + }, + { + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" + } + ], + "time": "2024-05-31T14:49:08+00:00" + }, + { + "name": "symfony/service-contracts", + "version": "v3.5.0", + "source": { + "type": "git", + "url": "https://github.com/symfony/service-contracts.git", + "reference": "bd1d9e59a81d8fa4acdcea3f617c581f7475a80f" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/service-contracts/zipball/bd1d9e59a81d8fa4acdcea3f617c581f7475a80f", + "reference": "bd1d9e59a81d8fa4acdcea3f617c581f7475a80f", + "shasum": "" + }, + "require": { + "php": ">=8.1", + "psr/container": "^1.1|^2.0", + "symfony/deprecation-contracts": "^2.5|^3" + }, + "conflict": { + "ext-psr": "<1.1|>=2" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-main": "3.5-dev" + }, + "thanks": { + "name": "symfony/contracts", + "url": "https://github.com/symfony/contracts" + } + }, + "autoload": { + "psr-4": { + "Symfony\\Contracts\\Service\\": "" + }, + "exclude-from-classmap": [ + "/Test/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Nicolas Grekas", + "email": "p@tchwork.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Generic abstractions related to writing services", + "homepage": "https://symfony.com", + "keywords": [ + "abstractions", + "contracts", + "decoupling", + "interfaces", + "interoperability", + "standards" + ], + "support": { + "source": "https://github.com/symfony/service-contracts/tree/v3.5.0" + }, + "funding": [ + { + "url": "https://symfony.com/sponsor", + "type": "custom" + }, + { + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" + } + ], + "time": "2024-04-18T09:32:20+00:00" + }, + { + "name": "symfony/string", + "version": "v7.1.1", + "source": { + "type": "git", + "url": "https://github.com/symfony/string.git", + "reference": "60bc311c74e0af215101235aa6f471bcbc032df2" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/string/zipball/60bc311c74e0af215101235aa6f471bcbc032df2", + "reference": "60bc311c74e0af215101235aa6f471bcbc032df2", + "shasum": "" + }, + "require": { + "php": ">=8.2", + "symfony/polyfill-ctype": "~1.8", + "symfony/polyfill-intl-grapheme": "~1.0", + "symfony/polyfill-intl-normalizer": "~1.0", + "symfony/polyfill-mbstring": "~1.0" + }, + "conflict": { + "symfony/translation-contracts": "<2.5" + }, + "require-dev": { + "symfony/emoji": "^7.1", + "symfony/error-handler": "^6.4|^7.0", + "symfony/http-client": "^6.4|^7.0", + "symfony/intl": "^6.4|^7.0", + "symfony/translation-contracts": "^2.5|^3.0", + "symfony/var-exporter": "^6.4|^7.0" + }, + "type": "library", + "autoload": { + "files": [ + "Resources/functions.php" + ], + "psr-4": { + "Symfony\\Component\\String\\": "" + }, + "exclude-from-classmap": [ + "/Tests/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Nicolas Grekas", + "email": "p@tchwork.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Provides an object-oriented API to strings and deals with bytes, UTF-8 code points and grapheme clusters in a unified way", + "homepage": "https://symfony.com", + "keywords": [ + "grapheme", + "i18n", + "string", + "unicode", + "utf-8", + "utf8" + ], + "support": { + "source": "https://github.com/symfony/string/tree/v7.1.1" + }, + "funding": [ + { + "url": "https://symfony.com/sponsor", + "type": "custom" + }, + { + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" + } + ], + "time": "2024-06-04T06:40:14+00:00" + }, + { + "name": "symfony/translation", + "version": "v6.4.8", + "source": { + "type": "git", + "url": "https://github.com/symfony/translation.git", + "reference": "a002933b13989fc4bd0b58e04bf7eec5210e438a" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/translation/zipball/a002933b13989fc4bd0b58e04bf7eec5210e438a", + "reference": "a002933b13989fc4bd0b58e04bf7eec5210e438a", + "shasum": "" + }, + "require": { + "php": ">=8.1", + "symfony/deprecation-contracts": "^2.5|^3", + "symfony/polyfill-mbstring": "~1.0", + "symfony/translation-contracts": "^2.5|^3.0" + }, + "conflict": { + "symfony/config": "<5.4", + "symfony/console": "<5.4", + "symfony/dependency-injection": "<5.4", + "symfony/http-client-contracts": "<2.5", + "symfony/http-kernel": "<5.4", + "symfony/service-contracts": "<2.5", + "symfony/twig-bundle": "<5.4", + "symfony/yaml": "<5.4" + }, + "provide": { + "symfony/translation-implementation": "2.3|3.0" + }, + "require-dev": { + "nikic/php-parser": "^4.18|^5.0", + "psr/log": "^1|^2|^3", + "symfony/config": "^5.4|^6.0|^7.0", + "symfony/console": "^5.4|^6.0|^7.0", + "symfony/dependency-injection": "^5.4|^6.0|^7.0", + "symfony/finder": "^5.4|^6.0|^7.0", + "symfony/http-client-contracts": "^2.5|^3.0", + "symfony/http-kernel": "^5.4|^6.0|^7.0", + "symfony/intl": "^5.4|^6.0|^7.0", + "symfony/polyfill-intl-icu": "^1.21", + "symfony/routing": "^5.4|^6.0|^7.0", + "symfony/service-contracts": "^2.5|^3", + "symfony/yaml": "^5.4|^6.0|^7.0" + }, + "type": "library", + "autoload": { + "files": [ + "Resources/functions.php" + ], + "psr-4": { + "Symfony\\Component\\Translation\\": "" + }, + "exclude-from-classmap": [ + "/Tests/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Fabien Potencier", + "email": "fabien@symfony.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Provides tools to internationalize your application", + "homepage": "https://symfony.com", + "support": { + "source": "https://github.com/symfony/translation/tree/v6.4.8" + }, + "funding": [ + { + "url": "https://symfony.com/sponsor", + "type": "custom" + }, + { + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" + } + ], + "time": "2024-05-31T14:49:08+00:00" + }, + { + "name": "symfony/translation-contracts", + "version": "v3.5.0", + "source": { + "type": "git", + "url": "https://github.com/symfony/translation-contracts.git", + "reference": "b9d2189887bb6b2e0367a9fc7136c5239ab9b05a" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/translation-contracts/zipball/b9d2189887bb6b2e0367a9fc7136c5239ab9b05a", + "reference": "b9d2189887bb6b2e0367a9fc7136c5239ab9b05a", + "shasum": "" + }, + "require": { + "php": ">=8.1" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-main": "3.5-dev" + }, + "thanks": { + "name": "symfony/contracts", + "url": "https://github.com/symfony/contracts" + } + }, + "autoload": { + "psr-4": { + "Symfony\\Contracts\\Translation\\": "" + }, + "exclude-from-classmap": [ + "/Test/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Nicolas Grekas", + "email": "p@tchwork.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Generic abstractions related to translation", + "homepage": "https://symfony.com", + "keywords": [ + "abstractions", + "contracts", + "decoupling", + "interfaces", + "interoperability", + "standards" + ], + "support": { + "source": "https://github.com/symfony/translation-contracts/tree/v3.5.0" + }, + "funding": [ + { + "url": "https://symfony.com/sponsor", + "type": "custom" + }, + { + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" + } + ], + "time": "2024-04-18T09:32:20+00:00" + }, + { + "name": "symfony/uid", + "version": "v6.4.8", + "source": { + "type": "git", + "url": "https://github.com/symfony/uid.git", + "reference": "35904eca37a84bb764c560cbfcac9f0ac2bcdbdf" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/uid/zipball/35904eca37a84bb764c560cbfcac9f0ac2bcdbdf", + "reference": "35904eca37a84bb764c560cbfcac9f0ac2bcdbdf", + "shasum": "" + }, + "require": { + "php": ">=8.1", + "symfony/polyfill-uuid": "^1.15" + }, + "require-dev": { + "symfony/console": "^5.4|^6.0|^7.0" + }, + "type": "library", + "autoload": { + "psr-4": { + "Symfony\\Component\\Uid\\": "" + }, + "exclude-from-classmap": [ + "/Tests/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Grégoire Pineau", + "email": "lyrixx@lyrixx.info" + }, + { + "name": "Nicolas Grekas", + "email": "p@tchwork.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Provides an object-oriented API to generate and represent UIDs", + "homepage": "https://symfony.com", + "keywords": [ + "UID", + "ulid", + "uuid" + ], + "support": { + "source": "https://github.com/symfony/uid/tree/v6.4.8" + }, + "funding": [ + { + "url": "https://symfony.com/sponsor", + "type": "custom" + }, + { + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" + } + ], + "time": "2024-05-31T14:49:08+00:00" + }, + { + "name": "symfony/var-dumper", + "version": "v6.4.8", + "source": { + "type": "git", + "url": "https://github.com/symfony/var-dumper.git", + "reference": "ad23ca4312395f0a8a8633c831ef4c4ee542ed25" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/var-dumper/zipball/ad23ca4312395f0a8a8633c831ef4c4ee542ed25", + "reference": "ad23ca4312395f0a8a8633c831ef4c4ee542ed25", + "shasum": "" + }, + "require": { + "php": ">=8.1", + "symfony/deprecation-contracts": "^2.5|^3", + "symfony/polyfill-mbstring": "~1.0" + }, + "conflict": { + "symfony/console": "<5.4" + }, + "require-dev": { + "ext-iconv": "*", + "symfony/console": "^5.4|^6.0|^7.0", + "symfony/error-handler": "^6.3|^7.0", + "symfony/http-kernel": "^5.4|^6.0|^7.0", + "symfony/process": "^5.4|^6.0|^7.0", + "symfony/uid": "^5.4|^6.0|^7.0", + "twig/twig": "^2.13|^3.0.4" + }, + "bin": [ + "Resources/bin/var-dump-server" + ], + "type": "library", + "autoload": { + "files": [ + "Resources/functions/dump.php" + ], + "psr-4": { + "Symfony\\Component\\VarDumper\\": "" + }, + "exclude-from-classmap": [ + "/Tests/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Nicolas Grekas", + "email": "p@tchwork.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Provides mechanisms for walking through any arbitrary PHP variable", + "homepage": "https://symfony.com", + "keywords": [ + "debug", + "dump" + ], + "support": { + "source": "https://github.com/symfony/var-dumper/tree/v6.4.8" + }, + "funding": [ + { + "url": "https://symfony.com/sponsor", + "type": "custom" + }, + { + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" + } + ], + "time": "2024-05-31T14:49:08+00:00" + }, + { + "name": "tijsverkoyen/css-to-inline-styles", + "version": "v2.2.7", + "source": { + "type": "git", + "url": "https://github.com/tijsverkoyen/CssToInlineStyles.git", + "reference": "83ee6f38df0a63106a9e4536e3060458b74ccedb" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/tijsverkoyen/CssToInlineStyles/zipball/83ee6f38df0a63106a9e4536e3060458b74ccedb", + "reference": "83ee6f38df0a63106a9e4536e3060458b74ccedb", + "shasum": "" + }, + "require": { + "ext-dom": "*", + "ext-libxml": "*", + "php": "^5.5 || ^7.0 || ^8.0", + "symfony/css-selector": "^2.7 || ^3.0 || ^4.0 || ^5.0 || ^6.0 || ^7.0" + }, + "require-dev": { + "phpunit/phpunit": "^4.8.35 || ^5.7 || ^6.0 || ^7.5 || ^8.5.21 || ^9.5.10" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "2.2.x-dev" + } + }, + "autoload": { + "psr-4": { + "TijsVerkoyen\\CssToInlineStyles\\": "src" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BSD-3-Clause" + ], + "authors": [ + { + "name": "Tijs Verkoyen", + "email": "css_to_inline_styles@verkoyen.eu", + "role": "Developer" + } + ], + "description": "CssToInlineStyles is a class that enables you to convert HTML-pages/files into HTML-pages/files with inline styles. This is very useful when you're sending emails.", + "homepage": "https://github.com/tijsverkoyen/CssToInlineStyles", + "support": { + "issues": "https://github.com/tijsverkoyen/CssToInlineStyles/issues", + "source": "https://github.com/tijsverkoyen/CssToInlineStyles/tree/v2.2.7" + }, + "time": "2023-12-08T13:03:43+00:00" + }, + { + "name": "vlucas/phpdotenv", + "version": "v5.6.0", + "source": { + "type": "git", + "url": "https://github.com/vlucas/phpdotenv.git", + "reference": "2cf9fb6054c2bb1d59d1f3817706ecdb9d2934c4" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/vlucas/phpdotenv/zipball/2cf9fb6054c2bb1d59d1f3817706ecdb9d2934c4", + "reference": "2cf9fb6054c2bb1d59d1f3817706ecdb9d2934c4", + "shasum": "" + }, + "require": { + "ext-pcre": "*", + "graham-campbell/result-type": "^1.1.2", + "php": "^7.2.5 || ^8.0", + "phpoption/phpoption": "^1.9.2", + "symfony/polyfill-ctype": "^1.24", + "symfony/polyfill-mbstring": "^1.24", + "symfony/polyfill-php80": "^1.24" + }, + "require-dev": { + "bamarni/composer-bin-plugin": "^1.8.2", + "ext-filter": "*", + "phpunit/phpunit": "^8.5.34 || ^9.6.13 || ^10.4.2" + }, + "suggest": { + "ext-filter": "Required to use the boolean validator." + }, + "type": "library", + "extra": { + "bamarni-bin": { + "bin-links": true, + "forward-command": true + }, + "branch-alias": { + "dev-master": "5.6-dev" + } + }, + "autoload": { + "psr-4": { + "Dotenv\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BSD-3-Clause" + ], + "authors": [ + { + "name": "Graham Campbell", + "email": "hello@gjcampbell.co.uk", + "homepage": "https://github.com/GrahamCampbell" + }, + { + "name": "Vance Lucas", + "email": "vance@vancelucas.com", + "homepage": "https://github.com/vlucas" + } + ], + "description": "Loads environment variables from `.env` to `getenv()`, `$_ENV` and `$_SERVER` automagically.", + "keywords": [ + "dotenv", + "env", + "environment" + ], + "support": { + "issues": "https://github.com/vlucas/phpdotenv/issues", + "source": "https://github.com/vlucas/phpdotenv/tree/v5.6.0" + }, + "funding": [ + { + "url": "https://github.com/GrahamCampbell", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/vlucas/phpdotenv", + "type": "tidelift" + } + ], + "time": "2023-11-12T22:43:29+00:00" + }, + { + "name": "voku/portable-ascii", + "version": "2.0.1", + "source": { + "type": "git", + "url": "https://github.com/voku/portable-ascii.git", + "reference": "b56450eed252f6801410d810c8e1727224ae0743" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/voku/portable-ascii/zipball/b56450eed252f6801410d810c8e1727224ae0743", + "reference": "b56450eed252f6801410d810c8e1727224ae0743", + "shasum": "" + }, + "require": { + "php": ">=7.0.0" + }, + "require-dev": { + "phpunit/phpunit": "~6.0 || ~7.0 || ~9.0" + }, + "suggest": { + "ext-intl": "Use Intl for transliterator_transliterate() support" + }, + "type": "library", + "autoload": { + "psr-4": { + "voku\\": "src/voku/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Lars Moelleken", + "homepage": "http://www.moelleken.org/" + } + ], + "description": "Portable ASCII library - performance optimized (ascii) string functions for php.", + "homepage": "https://github.com/voku/portable-ascii", + "keywords": [ + "ascii", + "clean", + "php" + ], + "support": { + "issues": "https://github.com/voku/portable-ascii/issues", + "source": "https://github.com/voku/portable-ascii/tree/2.0.1" + }, + "funding": [ + { + "url": "https://www.paypal.me/moelleken", + "type": "custom" + }, + { + "url": "https://github.com/voku", + "type": "github" + }, + { + "url": "https://opencollective.com/portable-ascii", + "type": "open_collective" + }, + { + "url": "https://www.patreon.com/voku", + "type": "patreon" + }, + { + "url": "https://tidelift.com/funding/github/packagist/voku/portable-ascii", + "type": "tidelift" + } + ], + "time": "2022-03-08T17:03:00+00:00" + }, + { + "name": "webmozart/assert", + "version": "1.11.0", + "source": { + "type": "git", + "url": "https://github.com/webmozarts/assert.git", + "reference": "11cb2199493b2f8a3b53e7f19068fc6aac760991" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/webmozarts/assert/zipball/11cb2199493b2f8a3b53e7f19068fc6aac760991", + "reference": "11cb2199493b2f8a3b53e7f19068fc6aac760991", + "shasum": "" + }, + "require": { + "ext-ctype": "*", + "php": "^7.2 || ^8.0" + }, + "conflict": { + "phpstan/phpstan": "<0.12.20", + "vimeo/psalm": "<4.6.1 || 4.6.2" + }, + "require-dev": { + "phpunit/phpunit": "^8.5.13" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "1.10-dev" + } + }, + "autoload": { + "psr-4": { + "Webmozart\\Assert\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Bernhard Schussek", + "email": "bschussek@gmail.com" + } + ], + "description": "Assertions to validate method input/output with nice error messages.", + "keywords": [ + "assert", + "check", + "validate" + ], + "support": { + "issues": "https://github.com/webmozarts/assert/issues", + "source": "https://github.com/webmozarts/assert/tree/1.11.0" + }, + "time": "2022-06-03T18:03:27+00:00" + } + ], + "packages-dev": [ + { + "name": "fakerphp/faker", + "version": "v1.23.1", + "source": { + "type": "git", + "url": "https://github.com/FakerPHP/Faker.git", + "reference": "bfb4fe148adbf78eff521199619b93a52ae3554b" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/FakerPHP/Faker/zipball/bfb4fe148adbf78eff521199619b93a52ae3554b", + "reference": "bfb4fe148adbf78eff521199619b93a52ae3554b", + "shasum": "" + }, + "require": { + "php": "^7.4 || ^8.0", + "psr/container": "^1.0 || ^2.0", + "symfony/deprecation-contracts": "^2.2 || ^3.0" + }, + "conflict": { + "fzaninotto/faker": "*" + }, + "require-dev": { + "bamarni/composer-bin-plugin": "^1.4.1", + "doctrine/persistence": "^1.3 || ^2.0", + "ext-intl": "*", + "phpunit/phpunit": "^9.5.26", + "symfony/phpunit-bridge": "^5.4.16" + }, + "suggest": { + "doctrine/orm": "Required to use Faker\\ORM\\Doctrine", + "ext-curl": "Required by Faker\\Provider\\Image to download images.", + "ext-dom": "Required by Faker\\Provider\\HtmlLorem for generating random HTML.", + "ext-iconv": "Required by Faker\\Provider\\ru_RU\\Text::realText() for generating real Russian text.", + "ext-mbstring": "Required for multibyte Unicode string functionality." + }, + "type": "library", + "autoload": { + "psr-4": { + "Faker\\": "src/Faker/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "François Zaninotto" + } + ], + "description": "Faker is a PHP library that generates fake data for you.", + "keywords": [ + "data", + "faker", + "fixtures" + ], + "support": { + "issues": "https://github.com/FakerPHP/Faker/issues", + "source": "https://github.com/FakerPHP/Faker/tree/v1.23.1" + }, + "time": "2024-01-02T13:46:09+00:00" + }, + { + "name": "filp/whoops", + "version": "2.15.4", + "source": { + "type": "git", + "url": "https://github.com/filp/whoops.git", + "reference": "a139776fa3f5985a50b509f2a02ff0f709d2a546" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/filp/whoops/zipball/a139776fa3f5985a50b509f2a02ff0f709d2a546", + "reference": "a139776fa3f5985a50b509f2a02ff0f709d2a546", + "shasum": "" + }, + "require": { + "php": "^5.5.9 || ^7.0 || ^8.0", + "psr/log": "^1.0.1 || ^2.0 || ^3.0" + }, + "require-dev": { + "mockery/mockery": "^0.9 || ^1.0", + "phpunit/phpunit": "^4.8.36 || ^5.7.27 || ^6.5.14 || ^7.5.20 || ^8.5.8 || ^9.3.3", + "symfony/var-dumper": "^2.6 || ^3.0 || ^4.0 || ^5.0" + }, + "suggest": { + "symfony/var-dumper": "Pretty print complex values better with var-dumper available", + "whoops/soap": "Formats errors as SOAP responses" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "2.7-dev" + } + }, + "autoload": { + "psr-4": { + "Whoops\\": "src/Whoops/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Filipe Dobreira", + "homepage": "https://github.com/filp", + "role": "Developer" + } + ], + "description": "php error handling for cool kids", + "homepage": "https://filp.github.io/whoops/", + "keywords": [ + "error", + "exception", + "handling", + "library", + "throwable", + "whoops" + ], + "support": { + "issues": "https://github.com/filp/whoops/issues", + "source": "https://github.com/filp/whoops/tree/2.15.4" + }, + "funding": [ + { + "url": "https://github.com/denis-sokolov", + "type": "github" + } + ], + "time": "2023-11-03T12:00:00+00:00" + }, + { + "name": "hamcrest/hamcrest-php", + "version": "v2.0.1", + "source": { + "type": "git", + "url": "https://github.com/hamcrest/hamcrest-php.git", + "reference": "8c3d0a3f6af734494ad8f6fbbee0ba92422859f3" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/hamcrest/hamcrest-php/zipball/8c3d0a3f6af734494ad8f6fbbee0ba92422859f3", + "reference": "8c3d0a3f6af734494ad8f6fbbee0ba92422859f3", + "shasum": "" + }, + "require": { + "php": "^5.3|^7.0|^8.0" + }, + "replace": { + "cordoval/hamcrest-php": "*", + "davedevelopment/hamcrest-php": "*", + "kodova/hamcrest-php": "*" + }, + "require-dev": { + "phpunit/php-file-iterator": "^1.4 || ^2.0", + "phpunit/phpunit": "^4.8.36 || ^5.7 || ^6.5 || ^7.0" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "2.1-dev" + } + }, + "autoload": { + "classmap": [ + "hamcrest" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BSD-3-Clause" + ], + "description": "This is the PHP port of Hamcrest Matchers", + "keywords": [ + "test" + ], + "support": { + "issues": "https://github.com/hamcrest/hamcrest-php/issues", + "source": "https://github.com/hamcrest/hamcrest-php/tree/v2.0.1" + }, + "time": "2020-07-09T08:09:16+00:00" + }, + { + "name": "laravel/pint", + "version": "v1.16.0", + "source": { + "type": "git", + "url": "https://github.com/laravel/pint.git", + "reference": "1b3a3dc5bc6a81ff52828ba7277621f1d49d6d98" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/laravel/pint/zipball/1b3a3dc5bc6a81ff52828ba7277621f1d49d6d98", + "reference": "1b3a3dc5bc6a81ff52828ba7277621f1d49d6d98", + "shasum": "" + }, + "require": { + "ext-json": "*", + "ext-mbstring": "*", + "ext-tokenizer": "*", + "ext-xml": "*", + "php": "^8.1.0" + }, + "require-dev": { + "friendsofphp/php-cs-fixer": "^3.57.1", + "illuminate/view": "^10.48.10", + "larastan/larastan": "^2.9.6", + "laravel-zero/framework": "^10.4.0", + "mockery/mockery": "^1.6.12", + "nunomaduro/termwind": "^1.15.1", + "pestphp/pest": "^2.34.7" + }, + "bin": [ + "builds/pint" + ], + "type": "project", + "autoload": { + "psr-4": { + "App\\": "app/", + "Database\\Seeders\\": "database/seeders/", + "Database\\Factories\\": "database/factories/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Nuno Maduro", + "email": "enunomaduro@gmail.com" + } + ], + "description": "An opinionated code formatter for PHP.", + "homepage": "https://laravel.com", + "keywords": [ + "format", + "formatter", + "lint", + "linter", + "php" + ], + "support": { + "issues": "https://github.com/laravel/pint/issues", + "source": "https://github.com/laravel/pint" + }, + "time": "2024-05-21T18:08:25+00:00" + }, + { + "name": "laravel/sail", + "version": "v1.29.2", + "source": { + "type": "git", + "url": "https://github.com/laravel/sail.git", + "reference": "a8e4e749735ba2f091856eafeb3f99db8cd6b621" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/laravel/sail/zipball/a8e4e749735ba2f091856eafeb3f99db8cd6b621", + "reference": "a8e4e749735ba2f091856eafeb3f99db8cd6b621", + "shasum": "" + }, + "require": { + "illuminate/console": "^9.52.16|^10.0|^11.0", + "illuminate/contracts": "^9.52.16|^10.0|^11.0", + "illuminate/support": "^9.52.16|^10.0|^11.0", + "php": "^8.0", + "symfony/console": "^6.0|^7.0", + "symfony/yaml": "^6.0|^7.0" + }, + "require-dev": { + "orchestra/testbench": "^7.0|^8.0|^9.0", + "phpstan/phpstan": "^1.10" + }, + "bin": [ + "bin/sail" + ], + "type": "library", + "extra": { + "laravel": { + "providers": [ + "Laravel\\Sail\\SailServiceProvider" + ] + } + }, + "autoload": { + "psr-4": { + "Laravel\\Sail\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Taylor Otwell", + "email": "taylor@laravel.com" + } + ], + "description": "Docker files for running a basic Laravel application.", + "keywords": [ + "docker", + "laravel" + ], + "support": { + "issues": "https://github.com/laravel/sail/issues", + "source": "https://github.com/laravel/sail" + }, + "time": "2024-05-16T21:39:11+00:00" + }, + { + "name": "mockery/mockery", + "version": "1.6.12", + "source": { + "type": "git", + "url": "https://github.com/mockery/mockery.git", + "reference": "1f4efdd7d3beafe9807b08156dfcb176d18f1699" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/mockery/mockery/zipball/1f4efdd7d3beafe9807b08156dfcb176d18f1699", + "reference": "1f4efdd7d3beafe9807b08156dfcb176d18f1699", + "shasum": "" + }, + "require": { + "hamcrest/hamcrest-php": "^2.0.1", + "lib-pcre": ">=7.0", + "php": ">=7.3" + }, + "conflict": { + "phpunit/phpunit": "<8.0" + }, + "require-dev": { + "phpunit/phpunit": "^8.5 || ^9.6.17", + "symplify/easy-coding-standard": "^12.1.14" + }, + "type": "library", + "autoload": { + "files": [ + "library/helpers.php", + "library/Mockery.php" + ], + "psr-4": { + "Mockery\\": "library/Mockery" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BSD-3-Clause" + ], + "authors": [ + { + "name": "Pádraic Brady", + "email": "padraic.brady@gmail.com", + "homepage": "https://github.com/padraic", + "role": "Author" + }, + { + "name": "Dave Marshall", + "email": "dave.marshall@atstsolutions.co.uk", + "homepage": "https://davedevelopment.co.uk", + "role": "Developer" + }, + { + "name": "Nathanael Esayeas", + "email": "nathanael.esayeas@protonmail.com", + "homepage": "https://github.com/ghostwriter", + "role": "Lead Developer" + } + ], + "description": "Mockery is a simple yet flexible PHP mock object framework", + "homepage": "https://github.com/mockery/mockery", + "keywords": [ + "BDD", + "TDD", + "library", + "mock", + "mock objects", + "mockery", + "stub", + "test", + "test double", + "testing" + ], + "support": { + "docs": "https://docs.mockery.io/", + "issues": "https://github.com/mockery/mockery/issues", + "rss": "https://github.com/mockery/mockery/releases.atom", + "security": "https://github.com/mockery/mockery/security/advisories", + "source": "https://github.com/mockery/mockery" + }, + "time": "2024-05-16T03:13:13+00:00" + }, + { + "name": "myclabs/deep-copy", + "version": "1.11.1", + "source": { + "type": "git", + "url": "https://github.com/myclabs/DeepCopy.git", + "reference": "7284c22080590fb39f2ffa3e9057f10a4ddd0e0c" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/myclabs/DeepCopy/zipball/7284c22080590fb39f2ffa3e9057f10a4ddd0e0c", + "reference": "7284c22080590fb39f2ffa3e9057f10a4ddd0e0c", + "shasum": "" + }, + "require": { + "php": "^7.1 || ^8.0" + }, + "conflict": { + "doctrine/collections": "<1.6.8", + "doctrine/common": "<2.13.3 || >=3,<3.2.2" + }, + "require-dev": { + "doctrine/collections": "^1.6.8", + "doctrine/common": "^2.13.3 || ^3.2.2", + "phpunit/phpunit": "^7.5.20 || ^8.5.23 || ^9.5.13" + }, + "type": "library", + "autoload": { + "files": [ + "src/DeepCopy/deep_copy.php" + ], + "psr-4": { + "DeepCopy\\": "src/DeepCopy/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "description": "Create deep copies (clones) of your objects", + "keywords": [ + "clone", + "copy", + "duplicate", + "object", + "object graph" + ], + "support": { + "issues": "https://github.com/myclabs/DeepCopy/issues", + "source": "https://github.com/myclabs/DeepCopy/tree/1.11.1" + }, + "funding": [ + { + "url": "https://tidelift.com/funding/github/packagist/myclabs/deep-copy", + "type": "tidelift" + } + ], + "time": "2023-03-08T13:26:56+00:00" + }, + { + "name": "nunomaduro/collision", + "version": "v7.10.0", + "source": { + "type": "git", + "url": "https://github.com/nunomaduro/collision.git", + "reference": "49ec67fa7b002712da8526678abd651c09f375b2" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/nunomaduro/collision/zipball/49ec67fa7b002712da8526678abd651c09f375b2", + "reference": "49ec67fa7b002712da8526678abd651c09f375b2", + "shasum": "" + }, + "require": { + "filp/whoops": "^2.15.3", + "nunomaduro/termwind": "^1.15.1", + "php": "^8.1.0", + "symfony/console": "^6.3.4" + }, + "conflict": { + "laravel/framework": ">=11.0.0" + }, + "require-dev": { + "brianium/paratest": "^7.3.0", + "laravel/framework": "^10.28.0", + "laravel/pint": "^1.13.3", + "laravel/sail": "^1.25.0", + "laravel/sanctum": "^3.3.1", + "laravel/tinker": "^2.8.2", + "nunomaduro/larastan": "^2.6.4", + "orchestra/testbench-core": "^8.13.0", + "pestphp/pest": "^2.23.2", + "phpunit/phpunit": "^10.4.1", + "sebastian/environment": "^6.0.1", + "spatie/laravel-ignition": "^2.3.1" + }, + "type": "library", + "extra": { + "laravel": { + "providers": [ + "NunoMaduro\\Collision\\Adapters\\Laravel\\CollisionServiceProvider" + ] + } + }, + "autoload": { + "files": [ + "./src/Adapters/Phpunit/Autoload.php" + ], + "psr-4": { + "NunoMaduro\\Collision\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Nuno Maduro", + "email": "enunomaduro@gmail.com" + } + ], + "description": "Cli error handling for console/command-line PHP applications.", + "keywords": [ + "artisan", + "cli", + "command-line", + "console", + "error", + "handling", + "laravel", + "laravel-zero", + "php", + "symfony" + ], + "support": { + "issues": "https://github.com/nunomaduro/collision/issues", + "source": "https://github.com/nunomaduro/collision" + }, + "funding": [ + { + "url": "https://www.paypal.com/paypalme/enunomaduro", + "type": "custom" + }, + { + "url": "https://github.com/nunomaduro", + "type": "github" + }, + { + "url": "https://www.patreon.com/nunomaduro", + "type": "patreon" + } + ], + "time": "2023-10-11T15:45:01+00:00" + }, + { + "name": "phar-io/manifest", + "version": "2.0.4", + "source": { + "type": "git", + "url": "https://github.com/phar-io/manifest.git", + "reference": "54750ef60c58e43759730615a392c31c80e23176" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/phar-io/manifest/zipball/54750ef60c58e43759730615a392c31c80e23176", + "reference": "54750ef60c58e43759730615a392c31c80e23176", + "shasum": "" + }, + "require": { + "ext-dom": "*", + "ext-libxml": "*", + "ext-phar": "*", + "ext-xmlwriter": "*", + "phar-io/version": "^3.0.1", + "php": "^7.2 || ^8.0" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "2.0.x-dev" + } + }, + "autoload": { + "classmap": [ + "src/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BSD-3-Clause" + ], + "authors": [ + { + "name": "Arne Blankerts", + "email": "arne@blankerts.de", + "role": "Developer" + }, + { + "name": "Sebastian Heuer", + "email": "sebastian@phpeople.de", + "role": "Developer" + }, + { + "name": "Sebastian Bergmann", + "email": "sebastian@phpunit.de", + "role": "Developer" + } + ], + "description": "Component for reading phar.io manifest information from a PHP Archive (PHAR)", + "support": { + "issues": "https://github.com/phar-io/manifest/issues", + "source": "https://github.com/phar-io/manifest/tree/2.0.4" + }, + "funding": [ + { + "url": "https://github.com/theseer", + "type": "github" + } + ], + "time": "2024-03-03T12:33:53+00:00" + }, + { + "name": "phar-io/version", + "version": "3.2.1", + "source": { + "type": "git", + "url": "https://github.com/phar-io/version.git", + "reference": "4f7fd7836c6f332bb2933569e566a0d6c4cbed74" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/phar-io/version/zipball/4f7fd7836c6f332bb2933569e566a0d6c4cbed74", + "reference": "4f7fd7836c6f332bb2933569e566a0d6c4cbed74", + "shasum": "" + }, + "require": { + "php": "^7.2 || ^8.0" + }, + "type": "library", + "autoload": { + "classmap": [ + "src/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BSD-3-Clause" + ], + "authors": [ + { + "name": "Arne Blankerts", + "email": "arne@blankerts.de", + "role": "Developer" + }, + { + "name": "Sebastian Heuer", + "email": "sebastian@phpeople.de", + "role": "Developer" + }, + { + "name": "Sebastian Bergmann", + "email": "sebastian@phpunit.de", + "role": "Developer" + } + ], + "description": "Library for handling version information and constraints", + "support": { + "issues": "https://github.com/phar-io/version/issues", + "source": "https://github.com/phar-io/version/tree/3.2.1" + }, + "time": "2022-02-21T01:04:05+00:00" + }, + { + "name": "phpunit/php-code-coverage", + "version": "10.1.14", + "source": { + "type": "git", + "url": "https://github.com/sebastianbergmann/php-code-coverage.git", + "reference": "e3f51450ebffe8e0efdf7346ae966a656f7d5e5b" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/sebastianbergmann/php-code-coverage/zipball/e3f51450ebffe8e0efdf7346ae966a656f7d5e5b", + "reference": "e3f51450ebffe8e0efdf7346ae966a656f7d5e5b", + "shasum": "" + }, + "require": { + "ext-dom": "*", + "ext-libxml": "*", + "ext-xmlwriter": "*", + "nikic/php-parser": "^4.18 || ^5.0", + "php": ">=8.1", + "phpunit/php-file-iterator": "^4.0", + "phpunit/php-text-template": "^3.0", + "sebastian/code-unit-reverse-lookup": "^3.0", + "sebastian/complexity": "^3.0", + "sebastian/environment": "^6.0", + "sebastian/lines-of-code": "^2.0", + "sebastian/version": "^4.0", + "theseer/tokenizer": "^1.2.0" + }, + "require-dev": { + "phpunit/phpunit": "^10.1" + }, + "suggest": { + "ext-pcov": "PHP extension that provides line coverage", + "ext-xdebug": "PHP extension that provides line coverage as well as branch and path coverage" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-main": "10.1-dev" + } + }, + "autoload": { + "classmap": [ + "src/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BSD-3-Clause" + ], + "authors": [ + { + "name": "Sebastian Bergmann", + "email": "sebastian@phpunit.de", + "role": "lead" + } + ], + "description": "Library that provides collection, processing, and rendering functionality for PHP code coverage information.", + "homepage": "https://github.com/sebastianbergmann/php-code-coverage", + "keywords": [ + "coverage", + "testing", + "xunit" + ], + "support": { + "issues": "https://github.com/sebastianbergmann/php-code-coverage/issues", + "security": "https://github.com/sebastianbergmann/php-code-coverage/security/policy", + "source": "https://github.com/sebastianbergmann/php-code-coverage/tree/10.1.14" + }, + "funding": [ + { + "url": "https://github.com/sebastianbergmann", + "type": "github" + } + ], + "time": "2024-03-12T15:33:41+00:00" + }, + { + "name": "phpunit/php-file-iterator", + "version": "4.1.0", + "source": { + "type": "git", + "url": "https://github.com/sebastianbergmann/php-file-iterator.git", + "reference": "a95037b6d9e608ba092da1b23931e537cadc3c3c" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/sebastianbergmann/php-file-iterator/zipball/a95037b6d9e608ba092da1b23931e537cadc3c3c", + "reference": "a95037b6d9e608ba092da1b23931e537cadc3c3c", + "shasum": "" + }, + "require": { + "php": ">=8.1" + }, + "require-dev": { + "phpunit/phpunit": "^10.0" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-main": "4.0-dev" + } + }, + "autoload": { + "classmap": [ + "src/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BSD-3-Clause" + ], + "authors": [ + { + "name": "Sebastian Bergmann", + "email": "sebastian@phpunit.de", + "role": "lead" + } + ], + "description": "FilterIterator implementation that filters files based on a list of suffixes.", + "homepage": "https://github.com/sebastianbergmann/php-file-iterator/", + "keywords": [ + "filesystem", + "iterator" + ], + "support": { + "issues": "https://github.com/sebastianbergmann/php-file-iterator/issues", + "security": "https://github.com/sebastianbergmann/php-file-iterator/security/policy", + "source": "https://github.com/sebastianbergmann/php-file-iterator/tree/4.1.0" + }, + "funding": [ + { + "url": "https://github.com/sebastianbergmann", + "type": "github" + } + ], + "time": "2023-08-31T06:24:48+00:00" + }, + { + "name": "phpunit/php-invoker", + "version": "4.0.0", + "source": { + "type": "git", + "url": "https://github.com/sebastianbergmann/php-invoker.git", + "reference": "f5e568ba02fa5ba0ddd0f618391d5a9ea50b06d7" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/sebastianbergmann/php-invoker/zipball/f5e568ba02fa5ba0ddd0f618391d5a9ea50b06d7", + "reference": "f5e568ba02fa5ba0ddd0f618391d5a9ea50b06d7", + "shasum": "" + }, + "require": { + "php": ">=8.1" + }, + "require-dev": { + "ext-pcntl": "*", + "phpunit/phpunit": "^10.0" + }, + "suggest": { + "ext-pcntl": "*" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-main": "4.0-dev" + } + }, + "autoload": { + "classmap": [ + "src/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BSD-3-Clause" + ], + "authors": [ + { + "name": "Sebastian Bergmann", + "email": "sebastian@phpunit.de", + "role": "lead" + } + ], + "description": "Invoke callables with a timeout", + "homepage": "https://github.com/sebastianbergmann/php-invoker/", + "keywords": [ + "process" + ], + "support": { + "issues": "https://github.com/sebastianbergmann/php-invoker/issues", + "source": "https://github.com/sebastianbergmann/php-invoker/tree/4.0.0" + }, + "funding": [ + { + "url": "https://github.com/sebastianbergmann", + "type": "github" + } + ], + "time": "2023-02-03T06:56:09+00:00" + }, + { + "name": "phpunit/php-text-template", + "version": "3.0.1", + "source": { + "type": "git", + "url": "https://github.com/sebastianbergmann/php-text-template.git", + "reference": "0c7b06ff49e3d5072f057eb1fa59258bf287a748" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/sebastianbergmann/php-text-template/zipball/0c7b06ff49e3d5072f057eb1fa59258bf287a748", + "reference": "0c7b06ff49e3d5072f057eb1fa59258bf287a748", + "shasum": "" + }, + "require": { + "php": ">=8.1" + }, + "require-dev": { + "phpunit/phpunit": "^10.0" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-main": "3.0-dev" + } + }, + "autoload": { + "classmap": [ + "src/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BSD-3-Clause" + ], + "authors": [ + { + "name": "Sebastian Bergmann", + "email": "sebastian@phpunit.de", + "role": "lead" + } + ], + "description": "Simple template engine.", + "homepage": "https://github.com/sebastianbergmann/php-text-template/", + "keywords": [ + "template" + ], + "support": { + "issues": "https://github.com/sebastianbergmann/php-text-template/issues", + "security": "https://github.com/sebastianbergmann/php-text-template/security/policy", + "source": "https://github.com/sebastianbergmann/php-text-template/tree/3.0.1" + }, + "funding": [ + { + "url": "https://github.com/sebastianbergmann", + "type": "github" + } + ], + "time": "2023-08-31T14:07:24+00:00" + }, + { + "name": "phpunit/php-timer", + "version": "6.0.0", + "source": { + "type": "git", + "url": "https://github.com/sebastianbergmann/php-timer.git", + "reference": "e2a2d67966e740530f4a3343fe2e030ffdc1161d" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/sebastianbergmann/php-timer/zipball/e2a2d67966e740530f4a3343fe2e030ffdc1161d", + "reference": "e2a2d67966e740530f4a3343fe2e030ffdc1161d", + "shasum": "" + }, + "require": { + "php": ">=8.1" + }, + "require-dev": { + "phpunit/phpunit": "^10.0" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-main": "6.0-dev" + } + }, + "autoload": { + "classmap": [ + "src/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BSD-3-Clause" + ], + "authors": [ + { + "name": "Sebastian Bergmann", + "email": "sebastian@phpunit.de", + "role": "lead" + } + ], + "description": "Utility class for timing", + "homepage": "https://github.com/sebastianbergmann/php-timer/", + "keywords": [ + "timer" + ], + "support": { + "issues": "https://github.com/sebastianbergmann/php-timer/issues", + "source": "https://github.com/sebastianbergmann/php-timer/tree/6.0.0" + }, + "funding": [ + { + "url": "https://github.com/sebastianbergmann", + "type": "github" + } + ], + "time": "2023-02-03T06:57:52+00:00" + }, + { + "name": "phpunit/phpunit", + "version": "10.5.20", + "source": { + "type": "git", + "url": "https://github.com/sebastianbergmann/phpunit.git", + "reference": "547d314dc24ec1e177720d45c6263fb226cc2ae3" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/sebastianbergmann/phpunit/zipball/547d314dc24ec1e177720d45c6263fb226cc2ae3", + "reference": "547d314dc24ec1e177720d45c6263fb226cc2ae3", + "shasum": "" + }, + "require": { + "ext-dom": "*", + "ext-json": "*", + "ext-libxml": "*", + "ext-mbstring": "*", + "ext-xml": "*", + "ext-xmlwriter": "*", + "myclabs/deep-copy": "^1.10.1", + "phar-io/manifest": "^2.0.3", + "phar-io/version": "^3.0.2", + "php": ">=8.1", + "phpunit/php-code-coverage": "^10.1.5", + "phpunit/php-file-iterator": "^4.0", + "phpunit/php-invoker": "^4.0", + "phpunit/php-text-template": "^3.0", + "phpunit/php-timer": "^6.0", + "sebastian/cli-parser": "^2.0", + "sebastian/code-unit": "^2.0", + "sebastian/comparator": "^5.0", + "sebastian/diff": "^5.0", + "sebastian/environment": "^6.0", + "sebastian/exporter": "^5.1", + "sebastian/global-state": "^6.0.1", + "sebastian/object-enumerator": "^5.0", + "sebastian/recursion-context": "^5.0", + "sebastian/type": "^4.0", + "sebastian/version": "^4.0" + }, + "suggest": { + "ext-soap": "To be able to generate mocks based on WSDL files" + }, + "bin": [ + "phpunit" + ], + "type": "library", + "extra": { + "branch-alias": { + "dev-main": "10.5-dev" + } + }, + "autoload": { + "files": [ + "src/Framework/Assert/Functions.php" + ], + "classmap": [ + "src/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BSD-3-Clause" + ], + "authors": [ + { + "name": "Sebastian Bergmann", + "email": "sebastian@phpunit.de", + "role": "lead" + } + ], + "description": "The PHP Unit Testing framework.", + "homepage": "https://phpunit.de/", + "keywords": [ + "phpunit", + "testing", + "xunit" + ], + "support": { + "issues": "https://github.com/sebastianbergmann/phpunit/issues", + "security": "https://github.com/sebastianbergmann/phpunit/security/policy", + "source": "https://github.com/sebastianbergmann/phpunit/tree/10.5.20" + }, + "funding": [ + { + "url": "https://phpunit.de/sponsors.html", + "type": "custom" + }, + { + "url": "https://github.com/sebastianbergmann", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/phpunit/phpunit", + "type": "tidelift" + } + ], + "time": "2024-04-24T06:32:35+00:00" + }, + { + "name": "sebastian/cli-parser", + "version": "2.0.1", + "source": { + "type": "git", + "url": "https://github.com/sebastianbergmann/cli-parser.git", + "reference": "c34583b87e7b7a8055bf6c450c2c77ce32a24084" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/sebastianbergmann/cli-parser/zipball/c34583b87e7b7a8055bf6c450c2c77ce32a24084", + "reference": "c34583b87e7b7a8055bf6c450c2c77ce32a24084", + "shasum": "" + }, + "require": { + "php": ">=8.1" + }, + "require-dev": { + "phpunit/phpunit": "^10.0" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-main": "2.0-dev" + } + }, + "autoload": { + "classmap": [ + "src/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BSD-3-Clause" + ], + "authors": [ + { + "name": "Sebastian Bergmann", + "email": "sebastian@phpunit.de", + "role": "lead" + } + ], + "description": "Library for parsing CLI options", + "homepage": "https://github.com/sebastianbergmann/cli-parser", + "support": { + "issues": "https://github.com/sebastianbergmann/cli-parser/issues", + "security": "https://github.com/sebastianbergmann/cli-parser/security/policy", + "source": "https://github.com/sebastianbergmann/cli-parser/tree/2.0.1" + }, + "funding": [ + { + "url": "https://github.com/sebastianbergmann", + "type": "github" + } + ], + "time": "2024-03-02T07:12:49+00:00" + }, + { + "name": "sebastian/code-unit", + "version": "2.0.0", + "source": { + "type": "git", + "url": "https://github.com/sebastianbergmann/code-unit.git", + "reference": "a81fee9eef0b7a76af11d121767abc44c104e503" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/sebastianbergmann/code-unit/zipball/a81fee9eef0b7a76af11d121767abc44c104e503", + "reference": "a81fee9eef0b7a76af11d121767abc44c104e503", + "shasum": "" + }, + "require": { + "php": ">=8.1" + }, + "require-dev": { + "phpunit/phpunit": "^10.0" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-main": "2.0-dev" + } + }, + "autoload": { + "classmap": [ + "src/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BSD-3-Clause" + ], + "authors": [ + { + "name": "Sebastian Bergmann", + "email": "sebastian@phpunit.de", + "role": "lead" + } + ], + "description": "Collection of value objects that represent the PHP code units", + "homepage": "https://github.com/sebastianbergmann/code-unit", + "support": { + "issues": "https://github.com/sebastianbergmann/code-unit/issues", + "source": "https://github.com/sebastianbergmann/code-unit/tree/2.0.0" + }, + "funding": [ + { + "url": "https://github.com/sebastianbergmann", + "type": "github" + } + ], + "time": "2023-02-03T06:58:43+00:00" + }, + { + "name": "sebastian/code-unit-reverse-lookup", + "version": "3.0.0", + "source": { + "type": "git", + "url": "https://github.com/sebastianbergmann/code-unit-reverse-lookup.git", + "reference": "5e3a687f7d8ae33fb362c5c0743794bbb2420a1d" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/sebastianbergmann/code-unit-reverse-lookup/zipball/5e3a687f7d8ae33fb362c5c0743794bbb2420a1d", + "reference": "5e3a687f7d8ae33fb362c5c0743794bbb2420a1d", + "shasum": "" + }, + "require": { + "php": ">=8.1" + }, + "require-dev": { + "phpunit/phpunit": "^10.0" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-main": "3.0-dev" + } + }, + "autoload": { + "classmap": [ + "src/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BSD-3-Clause" + ], + "authors": [ + { + "name": "Sebastian Bergmann", + "email": "sebastian@phpunit.de" + } + ], + "description": "Looks up which function or method a line of code belongs to", + "homepage": "https://github.com/sebastianbergmann/code-unit-reverse-lookup/", + "support": { + "issues": "https://github.com/sebastianbergmann/code-unit-reverse-lookup/issues", + "source": "https://github.com/sebastianbergmann/code-unit-reverse-lookup/tree/3.0.0" + }, + "funding": [ + { + "url": "https://github.com/sebastianbergmann", + "type": "github" + } + ], + "time": "2023-02-03T06:59:15+00:00" + }, + { + "name": "sebastian/comparator", + "version": "5.0.1", + "source": { + "type": "git", + "url": "https://github.com/sebastianbergmann/comparator.git", + "reference": "2db5010a484d53ebf536087a70b4a5423c102372" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/sebastianbergmann/comparator/zipball/2db5010a484d53ebf536087a70b4a5423c102372", + "reference": "2db5010a484d53ebf536087a70b4a5423c102372", + "shasum": "" + }, + "require": { + "ext-dom": "*", + "ext-mbstring": "*", + "php": ">=8.1", + "sebastian/diff": "^5.0", + "sebastian/exporter": "^5.0" + }, + "require-dev": { + "phpunit/phpunit": "^10.3" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-main": "5.0-dev" + } + }, + "autoload": { + "classmap": [ + "src/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BSD-3-Clause" + ], + "authors": [ + { + "name": "Sebastian Bergmann", + "email": "sebastian@phpunit.de" + }, + { + "name": "Jeff Welch", + "email": "whatthejeff@gmail.com" + }, + { + "name": "Volker Dusch", + "email": "github@wallbash.com" + }, + { + "name": "Bernhard Schussek", + "email": "bschussek@2bepublished.at" + } + ], + "description": "Provides the functionality to compare PHP values for equality", + "homepage": "https://github.com/sebastianbergmann/comparator", + "keywords": [ + "comparator", + "compare", + "equality" + ], + "support": { + "issues": "https://github.com/sebastianbergmann/comparator/issues", + "security": "https://github.com/sebastianbergmann/comparator/security/policy", + "source": "https://github.com/sebastianbergmann/comparator/tree/5.0.1" + }, + "funding": [ + { + "url": "https://github.com/sebastianbergmann", + "type": "github" + } + ], + "time": "2023-08-14T13:18:12+00:00" + }, + { + "name": "sebastian/complexity", + "version": "3.2.0", + "source": { + "type": "git", + "url": "https://github.com/sebastianbergmann/complexity.git", + "reference": "68ff824baeae169ec9f2137158ee529584553799" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/sebastianbergmann/complexity/zipball/68ff824baeae169ec9f2137158ee529584553799", + "reference": "68ff824baeae169ec9f2137158ee529584553799", + "shasum": "" + }, + "require": { + "nikic/php-parser": "^4.18 || ^5.0", + "php": ">=8.1" + }, + "require-dev": { + "phpunit/phpunit": "^10.0" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-main": "3.2-dev" + } + }, + "autoload": { + "classmap": [ + "src/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BSD-3-Clause" + ], + "authors": [ + { + "name": "Sebastian Bergmann", + "email": "sebastian@phpunit.de", + "role": "lead" + } + ], + "description": "Library for calculating the complexity of PHP code units", + "homepage": "https://github.com/sebastianbergmann/complexity", + "support": { + "issues": "https://github.com/sebastianbergmann/complexity/issues", + "security": "https://github.com/sebastianbergmann/complexity/security/policy", + "source": "https://github.com/sebastianbergmann/complexity/tree/3.2.0" + }, + "funding": [ + { + "url": "https://github.com/sebastianbergmann", + "type": "github" + } + ], + "time": "2023-12-21T08:37:17+00:00" + }, + { + "name": "sebastian/diff", + "version": "5.1.1", + "source": { + "type": "git", + "url": "https://github.com/sebastianbergmann/diff.git", + "reference": "c41e007b4b62af48218231d6c2275e4c9b975b2e" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/sebastianbergmann/diff/zipball/c41e007b4b62af48218231d6c2275e4c9b975b2e", + "reference": "c41e007b4b62af48218231d6c2275e4c9b975b2e", + "shasum": "" + }, + "require": { + "php": ">=8.1" + }, + "require-dev": { + "phpunit/phpunit": "^10.0", + "symfony/process": "^6.4" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-main": "5.1-dev" + } + }, + "autoload": { + "classmap": [ + "src/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BSD-3-Clause" + ], + "authors": [ + { + "name": "Sebastian Bergmann", + "email": "sebastian@phpunit.de" + }, + { + "name": "Kore Nordmann", + "email": "mail@kore-nordmann.de" + } + ], + "description": "Diff implementation", + "homepage": "https://github.com/sebastianbergmann/diff", + "keywords": [ + "diff", + "udiff", + "unidiff", + "unified diff" + ], + "support": { + "issues": "https://github.com/sebastianbergmann/diff/issues", + "security": "https://github.com/sebastianbergmann/diff/security/policy", + "source": "https://github.com/sebastianbergmann/diff/tree/5.1.1" + }, + "funding": [ + { + "url": "https://github.com/sebastianbergmann", + "type": "github" + } + ], + "time": "2024-03-02T07:15:17+00:00" + }, + { + "name": "sebastian/environment", + "version": "6.1.0", + "source": { + "type": "git", + "url": "https://github.com/sebastianbergmann/environment.git", + "reference": "8074dbcd93529b357029f5cc5058fd3e43666984" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/sebastianbergmann/environment/zipball/8074dbcd93529b357029f5cc5058fd3e43666984", + "reference": "8074dbcd93529b357029f5cc5058fd3e43666984", + "shasum": "" + }, + "require": { + "php": ">=8.1" + }, + "require-dev": { + "phpunit/phpunit": "^10.0" + }, + "suggest": { + "ext-posix": "*" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-main": "6.1-dev" + } + }, + "autoload": { + "classmap": [ + "src/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BSD-3-Clause" + ], + "authors": [ + { + "name": "Sebastian Bergmann", + "email": "sebastian@phpunit.de" + } + ], + "description": "Provides functionality to handle HHVM/PHP environments", + "homepage": "https://github.com/sebastianbergmann/environment", + "keywords": [ + "Xdebug", + "environment", + "hhvm" + ], + "support": { + "issues": "https://github.com/sebastianbergmann/environment/issues", + "security": "https://github.com/sebastianbergmann/environment/security/policy", + "source": "https://github.com/sebastianbergmann/environment/tree/6.1.0" + }, + "funding": [ + { + "url": "https://github.com/sebastianbergmann", + "type": "github" + } + ], + "time": "2024-03-23T08:47:14+00:00" + }, + { + "name": "sebastian/exporter", + "version": "5.1.2", + "source": { + "type": "git", + "url": "https://github.com/sebastianbergmann/exporter.git", + "reference": "955288482d97c19a372d3f31006ab3f37da47adf" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/sebastianbergmann/exporter/zipball/955288482d97c19a372d3f31006ab3f37da47adf", + "reference": "955288482d97c19a372d3f31006ab3f37da47adf", + "shasum": "" + }, + "require": { + "ext-mbstring": "*", + "php": ">=8.1", + "sebastian/recursion-context": "^5.0" + }, + "require-dev": { + "phpunit/phpunit": "^10.0" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-main": "5.1-dev" + } + }, + "autoload": { + "classmap": [ + "src/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BSD-3-Clause" + ], + "authors": [ + { + "name": "Sebastian Bergmann", + "email": "sebastian@phpunit.de" + }, + { + "name": "Jeff Welch", + "email": "whatthejeff@gmail.com" + }, + { + "name": "Volker Dusch", + "email": "github@wallbash.com" + }, + { + "name": "Adam Harvey", + "email": "aharvey@php.net" + }, + { + "name": "Bernhard Schussek", + "email": "bschussek@gmail.com" + } + ], + "description": "Provides the functionality to export PHP variables for visualization", + "homepage": "https://www.github.com/sebastianbergmann/exporter", + "keywords": [ + "export", + "exporter" + ], + "support": { + "issues": "https://github.com/sebastianbergmann/exporter/issues", + "security": "https://github.com/sebastianbergmann/exporter/security/policy", + "source": "https://github.com/sebastianbergmann/exporter/tree/5.1.2" + }, + "funding": [ + { + "url": "https://github.com/sebastianbergmann", + "type": "github" + } + ], + "time": "2024-03-02T07:17:12+00:00" + }, + { + "name": "sebastian/global-state", + "version": "6.0.2", + "source": { + "type": "git", + "url": "https://github.com/sebastianbergmann/global-state.git", + "reference": "987bafff24ecc4c9ac418cab1145b96dd6e9cbd9" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/sebastianbergmann/global-state/zipball/987bafff24ecc4c9ac418cab1145b96dd6e9cbd9", + "reference": "987bafff24ecc4c9ac418cab1145b96dd6e9cbd9", + "shasum": "" + }, + "require": { + "php": ">=8.1", + "sebastian/object-reflector": "^3.0", + "sebastian/recursion-context": "^5.0" + }, + "require-dev": { + "ext-dom": "*", + "phpunit/phpunit": "^10.0" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-main": "6.0-dev" + } + }, + "autoload": { + "classmap": [ + "src/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BSD-3-Clause" + ], + "authors": [ + { + "name": "Sebastian Bergmann", + "email": "sebastian@phpunit.de" + } + ], + "description": "Snapshotting of global state", + "homepage": "https://www.github.com/sebastianbergmann/global-state", + "keywords": [ + "global state" + ], + "support": { + "issues": "https://github.com/sebastianbergmann/global-state/issues", + "security": "https://github.com/sebastianbergmann/global-state/security/policy", + "source": "https://github.com/sebastianbergmann/global-state/tree/6.0.2" + }, + "funding": [ + { + "url": "https://github.com/sebastianbergmann", + "type": "github" + } + ], + "time": "2024-03-02T07:19:19+00:00" + }, + { + "name": "sebastian/lines-of-code", + "version": "2.0.2", + "source": { + "type": "git", + "url": "https://github.com/sebastianbergmann/lines-of-code.git", + "reference": "856e7f6a75a84e339195d48c556f23be2ebf75d0" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/sebastianbergmann/lines-of-code/zipball/856e7f6a75a84e339195d48c556f23be2ebf75d0", + "reference": "856e7f6a75a84e339195d48c556f23be2ebf75d0", + "shasum": "" + }, + "require": { + "nikic/php-parser": "^4.18 || ^5.0", + "php": ">=8.1" + }, + "require-dev": { + "phpunit/phpunit": "^10.0" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-main": "2.0-dev" + } + }, + "autoload": { + "classmap": [ + "src/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BSD-3-Clause" + ], + "authors": [ + { + "name": "Sebastian Bergmann", + "email": "sebastian@phpunit.de", + "role": "lead" + } + ], + "description": "Library for counting the lines of code in PHP source code", + "homepage": "https://github.com/sebastianbergmann/lines-of-code", + "support": { + "issues": "https://github.com/sebastianbergmann/lines-of-code/issues", + "security": "https://github.com/sebastianbergmann/lines-of-code/security/policy", + "source": "https://github.com/sebastianbergmann/lines-of-code/tree/2.0.2" + }, + "funding": [ + { + "url": "https://github.com/sebastianbergmann", + "type": "github" + } + ], + "time": "2023-12-21T08:38:20+00:00" + }, + { + "name": "sebastian/object-enumerator", + "version": "5.0.0", + "source": { + "type": "git", + "url": "https://github.com/sebastianbergmann/object-enumerator.git", + "reference": "202d0e344a580d7f7d04b3fafce6933e59dae906" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/sebastianbergmann/object-enumerator/zipball/202d0e344a580d7f7d04b3fafce6933e59dae906", + "reference": "202d0e344a580d7f7d04b3fafce6933e59dae906", + "shasum": "" + }, + "require": { + "php": ">=8.1", + "sebastian/object-reflector": "^3.0", + "sebastian/recursion-context": "^5.0" + }, + "require-dev": { + "phpunit/phpunit": "^10.0" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-main": "5.0-dev" + } + }, + "autoload": { + "classmap": [ + "src/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BSD-3-Clause" + ], + "authors": [ + { + "name": "Sebastian Bergmann", + "email": "sebastian@phpunit.de" + } + ], + "description": "Traverses array structures and object graphs to enumerate all referenced objects", + "homepage": "https://github.com/sebastianbergmann/object-enumerator/", + "support": { + "issues": "https://github.com/sebastianbergmann/object-enumerator/issues", + "source": "https://github.com/sebastianbergmann/object-enumerator/tree/5.0.0" + }, + "funding": [ + { + "url": "https://github.com/sebastianbergmann", + "type": "github" + } + ], + "time": "2023-02-03T07:08:32+00:00" + }, + { + "name": "sebastian/object-reflector", + "version": "3.0.0", + "source": { + "type": "git", + "url": "https://github.com/sebastianbergmann/object-reflector.git", + "reference": "24ed13d98130f0e7122df55d06c5c4942a577957" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/sebastianbergmann/object-reflector/zipball/24ed13d98130f0e7122df55d06c5c4942a577957", + "reference": "24ed13d98130f0e7122df55d06c5c4942a577957", + "shasum": "" + }, + "require": { + "php": ">=8.1" + }, + "require-dev": { + "phpunit/phpunit": "^10.0" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-main": "3.0-dev" + } + }, + "autoload": { + "classmap": [ + "src/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BSD-3-Clause" + ], + "authors": [ + { + "name": "Sebastian Bergmann", + "email": "sebastian@phpunit.de" + } + ], + "description": "Allows reflection of object attributes, including inherited and non-public ones", + "homepage": "https://github.com/sebastianbergmann/object-reflector/", + "support": { + "issues": "https://github.com/sebastianbergmann/object-reflector/issues", + "source": "https://github.com/sebastianbergmann/object-reflector/tree/3.0.0" + }, + "funding": [ + { + "url": "https://github.com/sebastianbergmann", + "type": "github" + } + ], + "time": "2023-02-03T07:06:18+00:00" + }, + { + "name": "sebastian/recursion-context", + "version": "5.0.0", + "source": { + "type": "git", + "url": "https://github.com/sebastianbergmann/recursion-context.git", + "reference": "05909fb5bc7df4c52992396d0116aed689f93712" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/sebastianbergmann/recursion-context/zipball/05909fb5bc7df4c52992396d0116aed689f93712", + "reference": "05909fb5bc7df4c52992396d0116aed689f93712", + "shasum": "" + }, + "require": { + "php": ">=8.1" + }, + "require-dev": { + "phpunit/phpunit": "^10.0" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-main": "5.0-dev" + } + }, + "autoload": { + "classmap": [ + "src/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BSD-3-Clause" + ], + "authors": [ + { + "name": "Sebastian Bergmann", + "email": "sebastian@phpunit.de" + }, + { + "name": "Jeff Welch", + "email": "whatthejeff@gmail.com" + }, + { + "name": "Adam Harvey", + "email": "aharvey@php.net" + } + ], + "description": "Provides functionality to recursively process PHP variables", + "homepage": "https://github.com/sebastianbergmann/recursion-context", + "support": { + "issues": "https://github.com/sebastianbergmann/recursion-context/issues", + "source": "https://github.com/sebastianbergmann/recursion-context/tree/5.0.0" + }, + "funding": [ + { + "url": "https://github.com/sebastianbergmann", + "type": "github" + } + ], + "time": "2023-02-03T07:05:40+00:00" + }, + { + "name": "sebastian/type", + "version": "4.0.0", + "source": { + "type": "git", + "url": "https://github.com/sebastianbergmann/type.git", + "reference": "462699a16464c3944eefc02ebdd77882bd3925bf" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/sebastianbergmann/type/zipball/462699a16464c3944eefc02ebdd77882bd3925bf", + "reference": "462699a16464c3944eefc02ebdd77882bd3925bf", + "shasum": "" + }, + "require": { + "php": ">=8.1" + }, + "require-dev": { + "phpunit/phpunit": "^10.0" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-main": "4.0-dev" + } + }, + "autoload": { + "classmap": [ + "src/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BSD-3-Clause" + ], + "authors": [ + { + "name": "Sebastian Bergmann", + "email": "sebastian@phpunit.de", + "role": "lead" + } + ], + "description": "Collection of value objects that represent the types of the PHP type system", + "homepage": "https://github.com/sebastianbergmann/type", + "support": { + "issues": "https://github.com/sebastianbergmann/type/issues", + "source": "https://github.com/sebastianbergmann/type/tree/4.0.0" + }, + "funding": [ + { + "url": "https://github.com/sebastianbergmann", + "type": "github" + } + ], + "time": "2023-02-03T07:10:45+00:00" + }, + { + "name": "sebastian/version", + "version": "4.0.1", + "source": { + "type": "git", + "url": "https://github.com/sebastianbergmann/version.git", + "reference": "c51fa83a5d8f43f1402e3f32a005e6262244ef17" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/sebastianbergmann/version/zipball/c51fa83a5d8f43f1402e3f32a005e6262244ef17", + "reference": "c51fa83a5d8f43f1402e3f32a005e6262244ef17", + "shasum": "" + }, + "require": { + "php": ">=8.1" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-main": "4.0-dev" + } + }, + "autoload": { + "classmap": [ + "src/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BSD-3-Clause" + ], + "authors": [ + { + "name": "Sebastian Bergmann", + "email": "sebastian@phpunit.de", + "role": "lead" + } + ], + "description": "Library that helps with managing the version number of Git-hosted PHP projects", + "homepage": "https://github.com/sebastianbergmann/version", + "support": { + "issues": "https://github.com/sebastianbergmann/version/issues", + "source": "https://github.com/sebastianbergmann/version/tree/4.0.1" + }, + "funding": [ + { + "url": "https://github.com/sebastianbergmann", + "type": "github" + } + ], + "time": "2023-02-07T11:34:05+00:00" + }, + { + "name": "spatie/backtrace", + "version": "1.6.1", + "source": { + "type": "git", + "url": "https://github.com/spatie/backtrace.git", + "reference": "8373b9d51638292e3bfd736a9c19a654111b4a23" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/spatie/backtrace/zipball/8373b9d51638292e3bfd736a9c19a654111b4a23", + "reference": "8373b9d51638292e3bfd736a9c19a654111b4a23", + "shasum": "" + }, + "require": { + "php": "^7.3|^8.0" + }, + "require-dev": { + "ext-json": "*", + "laravel/serializable-closure": "^1.3", + "phpunit/phpunit": "^9.3", + "spatie/phpunit-snapshot-assertions": "^4.2", + "symfony/var-dumper": "^5.1" + }, + "type": "library", + "autoload": { + "psr-4": { + "Spatie\\Backtrace\\": "src" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Freek Van de Herten", + "email": "freek@spatie.be", + "homepage": "https://spatie.be", + "role": "Developer" + } + ], + "description": "A better backtrace", + "homepage": "https://github.com/spatie/backtrace", + "keywords": [ + "Backtrace", + "spatie" + ], + "support": { + "source": "https://github.com/spatie/backtrace/tree/1.6.1" + }, + "funding": [ + { + "url": "https://github.com/sponsors/spatie", + "type": "github" + }, + { + "url": "https://spatie.be/open-source/support-us", + "type": "other" + } + ], + "time": "2024-04-24T13:22:11+00:00" + }, + { + "name": "spatie/flare-client-php", + "version": "1.6.0", + "source": { + "type": "git", + "url": "https://github.com/spatie/flare-client-php.git", + "reference": "220a7c8745e9fa427d54099f47147c4b97fe6462" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/spatie/flare-client-php/zipball/220a7c8745e9fa427d54099f47147c4b97fe6462", + "reference": "220a7c8745e9fa427d54099f47147c4b97fe6462", + "shasum": "" + }, + "require": { + "illuminate/pipeline": "^8.0|^9.0|^10.0|^11.0", + "php": "^8.0", + "spatie/backtrace": "^1.5.2", + "symfony/http-foundation": "^5.2|^6.0|^7.0", + "symfony/mime": "^5.2|^6.0|^7.0", + "symfony/process": "^5.2|^6.0|^7.0", + "symfony/var-dumper": "^5.2|^6.0|^7.0" + }, + "require-dev": { + "dms/phpunit-arraysubset-asserts": "^0.5.0", + "pestphp/pest": "^1.20|^2.0", + "phpstan/extension-installer": "^1.1", + "phpstan/phpstan-deprecation-rules": "^1.0", + "phpstan/phpstan-phpunit": "^1.0", + "spatie/phpunit-snapshot-assertions": "^4.0|^5.0" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-main": "1.3.x-dev" + } + }, + "autoload": { + "files": [ + "src/helpers.php" + ], + "psr-4": { + "Spatie\\FlareClient\\": "src" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "description": "Send PHP errors to Flare", + "homepage": "https://github.com/spatie/flare-client-php", + "keywords": [ + "exception", + "flare", + "reporting", + "spatie" + ], + "support": { + "issues": "https://github.com/spatie/flare-client-php/issues", + "source": "https://github.com/spatie/flare-client-php/tree/1.6.0" + }, + "funding": [ + { + "url": "https://github.com/spatie", + "type": "github" + } + ], + "time": "2024-05-22T09:45:39+00:00" + }, + { + "name": "spatie/ignition", + "version": "1.14.2", + "source": { + "type": "git", + "url": "https://github.com/spatie/ignition.git", + "reference": "5e11c11f675bb5251f061491a493e04a1a571532" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/spatie/ignition/zipball/5e11c11f675bb5251f061491a493e04a1a571532", + "reference": "5e11c11f675bb5251f061491a493e04a1a571532", + "shasum": "" + }, + "require": { + "ext-json": "*", + "ext-mbstring": "*", + "php": "^8.0", + "spatie/backtrace": "^1.5.3", + "spatie/flare-client-php": "^1.4.0", + "symfony/console": "^5.4|^6.0|^7.0", + "symfony/var-dumper": "^5.4|^6.0|^7.0" + }, + "require-dev": { + "illuminate/cache": "^9.52|^10.0|^11.0", + "mockery/mockery": "^1.4", + "pestphp/pest": "^1.20|^2.0", + "phpstan/extension-installer": "^1.1", + "phpstan/phpstan-deprecation-rules": "^1.0", + "phpstan/phpstan-phpunit": "^1.0", + "psr/simple-cache-implementation": "*", + "symfony/cache": "^5.4|^6.0|^7.0", + "symfony/process": "^5.4|^6.0|^7.0", + "vlucas/phpdotenv": "^5.5" + }, + "suggest": { + "openai-php/client": "Require get solutions from OpenAI", + "simple-cache-implementation": "To cache solutions from OpenAI" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-main": "1.5.x-dev" + } + }, + "autoload": { + "psr-4": { + "Spatie\\Ignition\\": "src" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Spatie", + "email": "info@spatie.be", + "role": "Developer" + } + ], + "description": "A beautiful error page for PHP applications.", + "homepage": "https://flareapp.io/ignition", + "keywords": [ + "error", + "flare", + "laravel", + "page" + ], + "support": { + "docs": "https://flareapp.io/docs/ignition-for-laravel/introduction", + "forum": "https://twitter.com/flareappio", + "issues": "https://github.com/spatie/ignition/issues", + "source": "https://github.com/spatie/ignition" + }, + "funding": [ + { + "url": "https://github.com/spatie", + "type": "github" + } + ], + "time": "2024-05-29T08:10:20+00:00" + }, + { + "name": "spatie/laravel-ignition", + "version": "2.7.0", + "source": { + "type": "git", + "url": "https://github.com/spatie/laravel-ignition.git", + "reference": "f52124d50122611e8a40f628cef5c19ff6cc5b57" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/spatie/laravel-ignition/zipball/f52124d50122611e8a40f628cef5c19ff6cc5b57", + "reference": "f52124d50122611e8a40f628cef5c19ff6cc5b57", + "shasum": "" + }, + "require": { + "ext-curl": "*", + "ext-json": "*", + "ext-mbstring": "*", + "illuminate/support": "^10.0|^11.0", + "php": "^8.1", + "spatie/flare-client-php": "^1.5", + "spatie/ignition": "^1.14", + "symfony/console": "^6.2.3|^7.0", + "symfony/var-dumper": "^6.2.3|^7.0" + }, + "require-dev": { + "livewire/livewire": "^2.11|^3.3.5", + "mockery/mockery": "^1.5.1", + "openai-php/client": "^0.8.1", + "orchestra/testbench": "8.22.3|^9.0", + "pestphp/pest": "^2.34", + "phpstan/extension-installer": "^1.3.1", + "phpstan/phpstan-deprecation-rules": "^1.1.1", + "phpstan/phpstan-phpunit": "^1.3.16", + "vlucas/phpdotenv": "^5.5" + }, + "suggest": { + "openai-php/client": "Require get solutions from OpenAI", + "psr/simple-cache-implementation": "Needed to cache solutions from OpenAI" + }, + "type": "library", + "extra": { + "laravel": { + "providers": [ + "Spatie\\LaravelIgnition\\IgnitionServiceProvider" + ], + "aliases": { + "Flare": "Spatie\\LaravelIgnition\\Facades\\Flare" + } + } + }, + "autoload": { + "files": [ + "src/helpers.php" + ], + "psr-4": { + "Spatie\\LaravelIgnition\\": "src" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Spatie", + "email": "info@spatie.be", + "role": "Developer" + } + ], + "description": "A beautiful error page for Laravel applications.", + "homepage": "https://flareapp.io/ignition", + "keywords": [ + "error", + "flare", + "laravel", + "page" + ], + "support": { + "docs": "https://flareapp.io/docs/ignition-for-laravel/introduction", + "forum": "https://twitter.com/flareappio", + "issues": "https://github.com/spatie/laravel-ignition/issues", + "source": "https://github.com/spatie/laravel-ignition" + }, + "funding": [ + { + "url": "https://github.com/spatie", + "type": "github" + } + ], + "time": "2024-05-02T13:42:49+00:00" + }, + { + "name": "symfony/yaml", + "version": "v7.1.1", + "source": { + "type": "git", + "url": "https://github.com/symfony/yaml.git", + "reference": "fa34c77015aa6720469db7003567b9f772492bf2" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/yaml/zipball/fa34c77015aa6720469db7003567b9f772492bf2", + "reference": "fa34c77015aa6720469db7003567b9f772492bf2", + "shasum": "" + }, + "require": { + "php": ">=8.2", + "symfony/polyfill-ctype": "^1.8" + }, + "conflict": { + "symfony/console": "<6.4" + }, + "require-dev": { + "symfony/console": "^6.4|^7.0" + }, + "bin": [ + "Resources/bin/yaml-lint" + ], + "type": "library", + "autoload": { + "psr-4": { + "Symfony\\Component\\Yaml\\": "" + }, + "exclude-from-classmap": [ + "/Tests/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Fabien Potencier", + "email": "fabien@symfony.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Loads and dumps YAML files", + "homepage": "https://symfony.com", + "support": { + "source": "https://github.com/symfony/yaml/tree/v7.1.1" + }, + "funding": [ + { + "url": "https://symfony.com/sponsor", + "type": "custom" + }, + { + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" + } + ], + "time": "2024-05-31T14:57:53+00:00" + }, + { + "name": "theseer/tokenizer", + "version": "1.2.3", + "source": { + "type": "git", + "url": "https://github.com/theseer/tokenizer.git", + "reference": "737eda637ed5e28c3413cb1ebe8bb52cbf1ca7a2" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/theseer/tokenizer/zipball/737eda637ed5e28c3413cb1ebe8bb52cbf1ca7a2", + "reference": "737eda637ed5e28c3413cb1ebe8bb52cbf1ca7a2", + "shasum": "" + }, + "require": { + "ext-dom": "*", + "ext-tokenizer": "*", + "ext-xmlwriter": "*", + "php": "^7.2 || ^8.0" + }, + "type": "library", + "autoload": { + "classmap": [ + "src/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BSD-3-Clause" + ], + "authors": [ + { + "name": "Arne Blankerts", + "email": "arne@blankerts.de", + "role": "Developer" + } + ], + "description": "A small library for converting tokenized PHP source code into XML and potentially other formats", + "support": { + "issues": "https://github.com/theseer/tokenizer/issues", + "source": "https://github.com/theseer/tokenizer/tree/1.2.3" + }, + "funding": [ + { + "url": "https://github.com/theseer", + "type": "github" + } + ], + "time": "2024-03-03T12:36:25+00:00" + } + ], + "aliases": [], + "minimum-stability": "stable", + "stability-flags": [], + "prefer-stable": true, + "prefer-lowest": false, + "platform": { + "php": "^8.1" + }, + "platform-dev": [], + "plugin-api-version": "2.6.0" +} diff --git a/config/app.php b/config/app.php new file mode 100644 index 0000000..4056fd2 --- /dev/null +++ b/config/app.php @@ -0,0 +1,215 @@ + env('APP_NAME', 'Laravel'), + + /* + |-------------------------------------------------------------------------- + | Application Environment + |-------------------------------------------------------------------------- + | + | This value determines the "environment" your application is currently + | running in. This may determine how you prefer to configure various + | services the application utilizes. Set this in your ".env" file. + | + */ + + 'env' => env('APP_ENV', 'production'), + + /* + |-------------------------------------------------------------------------- + | Application Debug Mode + |-------------------------------------------------------------------------- + | + | When your application is in debug mode, detailed error messages with + | stack traces will be shown on every error that occurs within your + | application. If disabled, a simple generic error page is shown. + | + */ + + 'debug' => (bool) env('APP_DEBUG', false), + + /* + |-------------------------------------------------------------------------- + | Application URL + |-------------------------------------------------------------------------- + | + | This URL is used by the console to properly generate URLs when using + | the Artisan command line tool. You should set this to the root of + | your application so that it is used when running Artisan tasks. + | + */ + + 'url' => env('APP_URL', 'http://localhost'), + + 'asset_url' => env('ASSET_URL', '/'), + + /* + |-------------------------------------------------------------------------- + | Application Timezone + |-------------------------------------------------------------------------- + | + | Here you may specify the default timezone for your application, which + | will be used by the PHP date and date-time functions. We have gone + | ahead and set this to a sensible default for you out of the box. + | + */ + + 'timezone' => 'Asia/Jakarta', + + /* + |-------------------------------------------------------------------------- + | Application Locale Configuration + |-------------------------------------------------------------------------- + | + | The application locale determines the default locale that will be used + | by the translation service provider. You are free to set this value + | to any of the locales which will be supported by the application. + | + */ + + 'locale' => 'en', + + /* + |-------------------------------------------------------------------------- + | Application Fallback Locale + |-------------------------------------------------------------------------- + | + | The fallback locale determines the locale to use when the current one + | is not available. You may change the value to correspond to any of + | the language folders that are provided through your application. + | + */ + + 'fallback_locale' => 'en', + + /* + |-------------------------------------------------------------------------- + | Faker Locale + |-------------------------------------------------------------------------- + | + | This locale will be used by the Faker PHP library when generating fake + | data for your database seeds. For example, this will be used to get + | localized telephone numbers, street address information and more. + | + */ + + 'faker_locale' => 'en_US', + + /* + |-------------------------------------------------------------------------- + | Encryption Key + |-------------------------------------------------------------------------- + | + | This key is used by the Illuminate encrypter service and should be set + | to a random, 32 character string, otherwise these encrypted strings + | will not be safe. Please do this before deploying an application! + | + */ + + 'key' => env('APP_KEY'), + + 'cipher' => 'AES-256-CBC', + + /* + |-------------------------------------------------------------------------- + | Maintenance Mode Driver + |-------------------------------------------------------------------------- + | + | These configuration options determine the driver used to determine and + | manage Laravel's "maintenance mode" status. The "cache" driver will + | allow maintenance mode to be controlled across multiple machines. + | + | Supported drivers: "file", "cache" + | + */ + + 'maintenance' => [ + 'driver' => 'file', + // 'store' => 'redis', + ], + + /* + |-------------------------------------------------------------------------- + | Autoloaded Service Providers + |-------------------------------------------------------------------------- + | + | The service providers listed here will be automatically loaded on the + | request to your application. Feel free to add your own services to + | this array to grant expanded functionality to your applications. + | + */ + + 'providers' => [ + + /* + * Laravel Framework Service Providers... + */ + Illuminate\Auth\AuthServiceProvider::class, + Illuminate\Broadcasting\BroadcastServiceProvider::class, + Illuminate\Bus\BusServiceProvider::class, + Illuminate\Cache\CacheServiceProvider::class, + Illuminate\Foundation\Providers\ConsoleSupportServiceProvider::class, + Illuminate\Cookie\CookieServiceProvider::class, + Illuminate\Database\DatabaseServiceProvider::class, + Illuminate\Encryption\EncryptionServiceProvider::class, + Illuminate\Filesystem\FilesystemServiceProvider::class, + Illuminate\Foundation\Providers\FoundationServiceProvider::class, + Illuminate\Hashing\HashServiceProvider::class, + Illuminate\Mail\MailServiceProvider::class, + Illuminate\Notifications\NotificationServiceProvider::class, + Illuminate\Pagination\PaginationServiceProvider::class, + Illuminate\Pipeline\PipelineServiceProvider::class, + Illuminate\Queue\QueueServiceProvider::class, + Illuminate\Redis\RedisServiceProvider::class, + Illuminate\Auth\Passwords\PasswordResetServiceProvider::class, + Illuminate\Session\SessionServiceProvider::class, + Illuminate\Translation\TranslationServiceProvider::class, + Illuminate\Validation\ValidationServiceProvider::class, + Illuminate\View\ViewServiceProvider::class, + + /* + * Package Service Providers... + */ + + /* + * Application Service Providers... + */ + App\Providers\AppServiceProvider::class, + App\Providers\AuthServiceProvider::class, + // App\Providers\BroadcastServiceProvider::class, + App\Providers\EventServiceProvider::class, + App\Providers\RouteServiceProvider::class, + + ], + + /* + |-------------------------------------------------------------------------- + | Class Aliases + |-------------------------------------------------------------------------- + | + | This array of class aliases will be registered when this application + | is started. However, feel free to register as many as you wish as + | the aliases are "lazy" loaded so they don't hinder performance. + | + */ + + 'aliases' => Facade::defaultAliases()->merge([ + // 'ExampleClass' => App\Example\ExampleClass::class, + ])->toArray(), + +]; diff --git a/config/auth.php b/config/auth.php new file mode 100644 index 0000000..cae0028 --- /dev/null +++ b/config/auth.php @@ -0,0 +1,115 @@ + [ + 'guard' => 'web', + 'passwords' => 'users', + ], + + /* + |-------------------------------------------------------------------------- + | Authentication Guards + |-------------------------------------------------------------------------- + | + | Next, you may define every authentication guard for your application. + | Of course, a great default configuration has been defined for you + | here which uses session storage and the Eloquent user provider. + | + | All authentication drivers have a user provider. This defines how the + | users are actually retrieved out of your database or other storage + | mechanisms used by this application to persist your user's data. + | + | Supported: "session" + | + */ + + 'guards' => [ + 'web' => [ + 'driver' => 'session', + 'provider' => 'users', + ], + ], + + /* + |-------------------------------------------------------------------------- + | User Providers + |-------------------------------------------------------------------------- + | + | All authentication drivers have a user provider. This defines how the + | users are actually retrieved out of your database or other storage + | mechanisms used by this application to persist your user's data. + | + | If you have multiple user tables or models you may configure multiple + | sources which represent each model / table. These sources may then + | be assigned to any extra authentication guards you have defined. + | + | Supported: "database", "eloquent" + | + */ + + 'providers' => [ + 'users' => [ + 'driver' => 'eloquent', + 'model' => App\Models\User::class, + ], + + // 'users' => [ + // 'driver' => 'database', + // 'table' => 'users', + // ], + ], + + /* + |-------------------------------------------------------------------------- + | Resetting Passwords + |-------------------------------------------------------------------------- + | + | You may specify multiple password reset configurations if you have more + | than one user table or model in the application and you want to have + | separate password reset settings based on the specific user types. + | + | The expire time is the number of minutes that each reset token will be + | considered valid. This security feature keeps tokens short-lived so + | they have less time to be guessed. You may change this as needed. + | + | The throttle setting is the number of seconds a user must wait before + | generating more password reset tokens. This prevents the user from + | quickly generating a very large amount of password reset tokens. + | + */ + + 'passwords' => [ + 'users' => [ + 'provider' => 'users', + 'table' => 'password_reset_tokens', + 'expire' => 60, + 'throttle' => 60, + ], + ], + + /* + |-------------------------------------------------------------------------- + | Password Confirmation Timeout + |-------------------------------------------------------------------------- + | + | Here you may define the amount of seconds before a password confirmation + | times out and the user is prompted to re-enter their password via the + | confirmation screen. By default, the timeout lasts for three hours. + | + */ + + 'password_timeout' => 10800, + +]; diff --git a/config/broadcasting.php b/config/broadcasting.php new file mode 100644 index 0000000..9e4d4aa --- /dev/null +++ b/config/broadcasting.php @@ -0,0 +1,70 @@ + env('BROADCAST_DRIVER', 'null'), + + /* + |-------------------------------------------------------------------------- + | Broadcast Connections + |-------------------------------------------------------------------------- + | + | Here you may define all of the broadcast connections that will be used + | to broadcast events to other systems or over websockets. Samples of + | each available type of connection are provided inside this array. + | + */ + + 'connections' => [ + + 'pusher' => [ + 'driver' => 'pusher', + 'key' => env('PUSHER_APP_KEY'), + 'secret' => env('PUSHER_APP_SECRET'), + 'app_id' => env('PUSHER_APP_ID'), + 'options' => [ + 'host' => env('PUSHER_HOST') ?: 'api-'.env('PUSHER_APP_CLUSTER', 'mt1').'.pusher.com', + 'port' => env('PUSHER_PORT', 443), + 'scheme' => env('PUSHER_SCHEME', 'https'), + 'encrypted' => true, + 'useTLS' => env('PUSHER_SCHEME', 'https') === 'https', + ], + 'client_options' => [ + // Guzzle client options: https://docs.guzzlephp.org/en/stable/request-options.html + ], + ], + + 'ably' => [ + 'driver' => 'ably', + 'key' => env('ABLY_KEY'), + ], + + 'redis' => [ + 'driver' => 'redis', + 'connection' => 'default', + ], + + 'log' => [ + 'driver' => 'log', + ], + + 'null' => [ + 'driver' => 'null', + ], + + ], + +]; diff --git a/config/cache.php b/config/cache.php new file mode 100644 index 0000000..33bb295 --- /dev/null +++ b/config/cache.php @@ -0,0 +1,110 @@ + env('CACHE_DRIVER', 'file'), + + /* + |-------------------------------------------------------------------------- + | Cache Stores + |-------------------------------------------------------------------------- + | + | Here you may define all of the cache "stores" for your application as + | well as their drivers. You may even define multiple stores for the + | same cache driver to group types of items stored in your caches. + | + | Supported drivers: "apc", "array", "database", "file", + | "memcached", "redis", "dynamodb", "octane", "null" + | + */ + + 'stores' => [ + + 'apc' => [ + 'driver' => 'apc', + ], + + 'array' => [ + 'driver' => 'array', + 'serialize' => false, + ], + + 'database' => [ + 'driver' => 'database', + 'table' => 'cache', + 'connection' => null, + 'lock_connection' => null, + ], + + 'file' => [ + 'driver' => 'file', + 'path' => storage_path('framework/cache/data'), + ], + + 'memcached' => [ + 'driver' => 'memcached', + 'persistent_id' => env('MEMCACHED_PERSISTENT_ID'), + 'sasl' => [ + env('MEMCACHED_USERNAME'), + env('MEMCACHED_PASSWORD'), + ], + 'options' => [ + // Memcached::OPT_CONNECT_TIMEOUT => 2000, + ], + 'servers' => [ + [ + 'host' => env('MEMCACHED_HOST', '127.0.0.1'), + 'port' => env('MEMCACHED_PORT', 11211), + 'weight' => 100, + ], + ], + ], + + 'redis' => [ + 'driver' => 'redis', + 'connection' => 'cache', + 'lock_connection' => 'default', + ], + + 'dynamodb' => [ + 'driver' => 'dynamodb', + 'key' => env('AWS_ACCESS_KEY_ID'), + 'secret' => env('AWS_SECRET_ACCESS_KEY'), + 'region' => env('AWS_DEFAULT_REGION', 'us-east-1'), + 'table' => env('DYNAMODB_CACHE_TABLE', 'cache'), + 'endpoint' => env('DYNAMODB_ENDPOINT'), + ], + + 'octane' => [ + 'driver' => 'octane', + ], + + ], + + /* + |-------------------------------------------------------------------------- + | Cache Key Prefix + |-------------------------------------------------------------------------- + | + | When utilizing the APC, database, memcached, Redis, or DynamoDB cache + | stores there might be other applications using the same cache. For + | that reason, you may prefix every cache key to avoid collisions. + | + */ + + 'prefix' => env('CACHE_PREFIX', Str::slug(env('APP_NAME', 'laravel'), '_').'_cache_'), + +]; diff --git a/config/cors.php b/config/cors.php new file mode 100644 index 0000000..8a39e6d --- /dev/null +++ b/config/cors.php @@ -0,0 +1,34 @@ + ['api/*', 'sanctum/csrf-cookie'], + + 'allowed_methods' => ['*'], + + 'allowed_origins' => ['*'], + + 'allowed_origins_patterns' => [], + + 'allowed_headers' => ['*'], + + 'exposed_headers' => [], + + 'max_age' => 0, + + 'supports_credentials' => false, + +]; diff --git a/config/database.php b/config/database.php new file mode 100644 index 0000000..137ad18 --- /dev/null +++ b/config/database.php @@ -0,0 +1,151 @@ + env('DB_CONNECTION', 'mysql'), + + /* + |-------------------------------------------------------------------------- + | Database Connections + |-------------------------------------------------------------------------- + | + | Here are each of the database connections setup for your application. + | Of course, examples of configuring each database platform that is + | supported by Laravel is shown below to make development simple. + | + | + | All database work in Laravel is done through the PHP PDO facilities + | so make sure you have the driver for your particular database of + | choice installed on your machine before you begin development. + | + */ + + 'connections' => [ + + 'sqlite' => [ + 'driver' => 'sqlite', + 'url' => env('DATABASE_URL'), + 'database' => env('DB_DATABASE', database_path('database.sqlite')), + 'prefix' => '', + 'foreign_key_constraints' => env('DB_FOREIGN_KEYS', true), + ], + + 'mysql' => [ + 'driver' => 'mysql', + 'url' => env('DATABASE_URL'), + 'host' => env('DB_HOST', '127.0.0.1'), + 'port' => env('DB_PORT', '3306'), + 'database' => env('DB_DATABASE', 'forge'), + 'username' => env('DB_USERNAME', 'forge'), + 'password' => env('DB_PASSWORD', ''), + 'unix_socket' => env('DB_SOCKET', ''), + 'charset' => 'utf8mb4', + 'collation' => 'utf8mb4_unicode_ci', + 'prefix' => '', + 'prefix_indexes' => true, + 'strict' => true, + 'engine' => null, + 'options' => extension_loaded('pdo_mysql') ? array_filter([ + PDO::MYSQL_ATTR_SSL_CA => env('MYSQL_ATTR_SSL_CA'), + ]) : [], + ], + + 'pgsql' => [ + 'driver' => 'pgsql', + 'url' => env('DATABASE_URL'), + 'host' => env('DB_HOST', '127.0.0.1'), + 'port' => env('DB_PORT', '5432'), + 'database' => env('DB_DATABASE', 'forge'), + 'username' => env('DB_USERNAME', 'forge'), + 'password' => env('DB_PASSWORD', ''), + 'charset' => 'utf8', + 'prefix' => '', + 'prefix_indexes' => true, + 'search_path' => 'public', + 'sslmode' => 'prefer', + ], + + 'sqlsrv' => [ + 'driver' => 'sqlsrv', + 'url' => env('DATABASE_URL'), + 'host' => env('DB_HOST', 'localhost'), + 'port' => env('DB_PORT', '1433'), + 'database' => env('DB_DATABASE', 'forge'), + 'username' => env('DB_USERNAME', 'forge'), + 'password' => env('DB_PASSWORD', ''), + 'charset' => 'utf8', + 'prefix' => '', + 'prefix_indexes' => true, + // 'encrypt' => env('DB_ENCRYPT', 'yes'), + // 'trust_server_certificate' => env('DB_TRUST_SERVER_CERTIFICATE', 'false'), + ], + + ], + + /* + |-------------------------------------------------------------------------- + | Migration Repository Table + |-------------------------------------------------------------------------- + | + | This table keeps track of all the migrations that have already run for + | your application. Using this information, we can determine which of + | the migrations on disk haven't actually been run in the database. + | + */ + + 'migrations' => 'migrations', + + /* + |-------------------------------------------------------------------------- + | Redis Databases + |-------------------------------------------------------------------------- + | + | Redis is an open source, fast, and advanced key-value store that also + | provides a richer body of commands than a typical key-value system + | such as APC or Memcached. Laravel makes it easy to dig right in. + | + */ + + 'redis' => [ + + 'client' => env('REDIS_CLIENT', 'phpredis'), + + 'options' => [ + 'cluster' => env('REDIS_CLUSTER', 'redis'), + 'prefix' => env('REDIS_PREFIX', Str::slug(env('APP_NAME', 'laravel'), '_').'_database_'), + ], + + 'default' => [ + 'url' => env('REDIS_URL'), + 'host' => env('REDIS_HOST', '127.0.0.1'), + 'username' => env('REDIS_USERNAME'), + 'password' => env('REDIS_PASSWORD'), + 'port' => env('REDIS_PORT', '6379'), + 'database' => env('REDIS_DB', '0'), + ], + + 'cache' => [ + 'url' => env('REDIS_URL'), + 'host' => env('REDIS_HOST', '127.0.0.1'), + 'username' => env('REDIS_USERNAME'), + 'password' => env('REDIS_PASSWORD'), + 'port' => env('REDIS_PORT', '6379'), + 'database' => env('REDIS_CACHE_DB', '1'), + ], + + ], + +]; diff --git a/config/filesystems.php b/config/filesystems.php new file mode 100644 index 0000000..e9d9dbd --- /dev/null +++ b/config/filesystems.php @@ -0,0 +1,76 @@ + env('FILESYSTEM_DISK', 'local'), + + /* + |-------------------------------------------------------------------------- + | Filesystem Disks + |-------------------------------------------------------------------------- + | + | Here you may configure as many filesystem "disks" as you wish, and you + | may even configure multiple disks of the same driver. Defaults have + | been set up for each driver as an example of the required values. + | + | Supported Drivers: "local", "ftp", "sftp", "s3" + | + */ + + 'disks' => [ + + 'local' => [ + 'driver' => 'local', + 'root' => storage_path('app'), + 'throw' => false, + ], + + 'public' => [ + 'driver' => 'local', + 'root' => storage_path('app/public'), + 'url' => env('APP_URL').'/storage', + 'visibility' => 'public', + 'throw' => false, + ], + + 's3' => [ + 'driver' => 's3', + 'key' => env('AWS_ACCESS_KEY_ID'), + 'secret' => env('AWS_SECRET_ACCESS_KEY'), + 'region' => env('AWS_DEFAULT_REGION'), + 'bucket' => env('AWS_BUCKET'), + 'url' => env('AWS_URL'), + 'endpoint' => env('AWS_ENDPOINT'), + 'use_path_style_endpoint' => env('AWS_USE_PATH_STYLE_ENDPOINT', false), + 'throw' => false, + ], + + ], + + /* + |-------------------------------------------------------------------------- + | Symbolic Links + |-------------------------------------------------------------------------- + | + | Here you may configure the symbolic links that will be created when the + | `storage:link` Artisan command is executed. The array keys should be + | the locations of the links and the values should be their targets. + | + */ + + 'links' => [ + public_path('storage') => storage_path('app/public'), + ], + +]; diff --git a/config/hashing.php b/config/hashing.php new file mode 100644 index 0000000..bcd3be4 --- /dev/null +++ b/config/hashing.php @@ -0,0 +1,52 @@ + 'bcrypt', + + /* + |-------------------------------------------------------------------------- + | Bcrypt Options + |-------------------------------------------------------------------------- + | + | Here you may specify the configuration options that should be used when + | passwords are hashed using the Bcrypt algorithm. This will allow you + | to control the amount of time it takes to hash the given password. + | + */ + + 'bcrypt' => [ + 'rounds' => env('BCRYPT_ROUNDS', 10), + ], + + /* + |-------------------------------------------------------------------------- + | Argon Options + |-------------------------------------------------------------------------- + | + | Here you may specify the configuration options that should be used when + | passwords are hashed using the Argon algorithm. These will allow you + | to control the amount of time it takes to hash the given password. + | + */ + + 'argon' => [ + 'memory' => 65536, + 'threads' => 1, + 'time' => 4, + ], + +]; diff --git a/config/logging.php b/config/logging.php new file mode 100644 index 0000000..5aa1dbb --- /dev/null +++ b/config/logging.php @@ -0,0 +1,122 @@ + env('LOG_CHANNEL', 'stack'), + + /* + |-------------------------------------------------------------------------- + | Deprecations Log Channel + |-------------------------------------------------------------------------- + | + | This option controls the log channel that should be used to log warnings + | regarding deprecated PHP and library features. This allows you to get + | your application ready for upcoming major versions of dependencies. + | + */ + + 'deprecations' => [ + 'channel' => env('LOG_DEPRECATIONS_CHANNEL', 'null'), + 'trace' => false, + ], + + /* + |-------------------------------------------------------------------------- + | Log Channels + |-------------------------------------------------------------------------- + | + | Here you may configure the log channels for your application. Out of + | the box, Laravel uses the Monolog PHP logging library. This gives + | you a variety of powerful log handlers / formatters to utilize. + | + | Available Drivers: "single", "daily", "slack", "syslog", + | "errorlog", "monolog", + | "custom", "stack" + | + */ + + 'channels' => [ + 'stack' => [ + 'driver' => 'stack', + 'channels' => ['single'], + 'ignore_exceptions' => false, + ], + + 'single' => [ + 'driver' => 'single', + 'path' => storage_path('logs/laravel.log'), + 'level' => env('LOG_LEVEL', 'debug'), + ], + + 'daily' => [ + 'driver' => 'daily', + 'path' => storage_path('logs/laravel.log'), + 'level' => env('LOG_LEVEL', 'debug'), + 'days' => 14, + ], + + 'slack' => [ + 'driver' => 'slack', + 'url' => env('LOG_SLACK_WEBHOOK_URL'), + 'username' => 'Laravel Log', + 'emoji' => ':boom:', + 'level' => env('LOG_LEVEL', 'critical'), + ], + + 'papertrail' => [ + 'driver' => 'monolog', + 'level' => env('LOG_LEVEL', 'debug'), + 'handler' => env('LOG_PAPERTRAIL_HANDLER', SyslogUdpHandler::class), + 'handler_with' => [ + 'host' => env('PAPERTRAIL_URL'), + 'port' => env('PAPERTRAIL_PORT'), + 'connectionString' => 'tls://'.env('PAPERTRAIL_URL').':'.env('PAPERTRAIL_PORT'), + ], + ], + + 'stderr' => [ + 'driver' => 'monolog', + 'level' => env('LOG_LEVEL', 'debug'), + 'handler' => StreamHandler::class, + 'formatter' => env('LOG_STDERR_FORMATTER'), + 'with' => [ + 'stream' => 'php://stderr', + ], + ], + + 'syslog' => [ + 'driver' => 'syslog', + 'level' => env('LOG_LEVEL', 'debug'), + ], + + 'errorlog' => [ + 'driver' => 'errorlog', + 'level' => env('LOG_LEVEL', 'debug'), + ], + + 'null' => [ + 'driver' => 'monolog', + 'handler' => NullHandler::class, + ], + + 'emergency' => [ + 'path' => storage_path('logs/laravel.log'), + ], + ], + +]; diff --git a/config/mail.php b/config/mail.php new file mode 100644 index 0000000..049052f --- /dev/null +++ b/config/mail.php @@ -0,0 +1,124 @@ + env('MAIL_MAILER', 'smtp'), + + /* + |-------------------------------------------------------------------------- + | Mailer Configurations + |-------------------------------------------------------------------------- + | + | Here you may configure all of the mailers used by your application plus + | their respective settings. Several examples have been configured for + | you and you are free to add your own as your application requires. + | + | Laravel supports a variety of mail "transport" drivers to be used while + | sending an e-mail. You will specify which one you are using for your + | mailers below. You are free to add additional mailers as required. + | + | Supported: "smtp", "sendmail", "mailgun", "ses", + | "postmark", "log", "array", "failover" + | + */ + + 'mailers' => [ + 'smtp' => [ + 'transport' => 'smtp', + 'host' => env('MAIL_HOST', 'smtp.mailgun.org'), + 'port' => env('MAIL_PORT', 587), + 'encryption' => env('MAIL_ENCRYPTION', 'tls'), + 'username' => env('MAIL_USERNAME'), + 'password' => env('MAIL_PASSWORD'), + 'timeout' => null, + 'local_domain' => env('MAIL_EHLO_DOMAIN'), + ], + + 'ses' => [ + 'transport' => 'ses', + ], + + 'mailgun' => [ + 'transport' => 'mailgun', + // 'client' => [ + // 'timeout' => 5, + // ], + ], + + 'postmark' => [ + 'transport' => 'postmark', + // 'client' => [ + // 'timeout' => 5, + // ], + ], + + 'sendmail' => [ + 'transport' => 'sendmail', + 'path' => env('MAIL_SENDMAIL_PATH', '/usr/sbin/sendmail -bs -i'), + ], + + 'log' => [ + 'transport' => 'log', + 'channel' => env('MAIL_LOG_CHANNEL'), + ], + + 'array' => [ + 'transport' => 'array', + ], + + 'failover' => [ + 'transport' => 'failover', + 'mailers' => [ + 'smtp', + 'log', + ], + ], + ], + + /* + |-------------------------------------------------------------------------- + | Global "From" Address + |-------------------------------------------------------------------------- + | + | You may wish for all e-mails sent by your application to be sent from + | the same address. Here, you may specify a name and address that is + | used globally for all e-mails that are sent by your application. + | + */ + + 'from' => [ + 'address' => env('MAIL_FROM_ADDRESS', 'hello@example.com'), + 'name' => env('MAIL_FROM_NAME', 'Example'), + ], + + /* + |-------------------------------------------------------------------------- + | Markdown Mail Settings + |-------------------------------------------------------------------------- + | + | If you are using Markdown based email rendering, you may configure your + | theme and component paths here, allowing you to customize the design + | of the emails. Or, you may simply stick with the Laravel defaults! + | + */ + + 'markdown' => [ + 'theme' => 'default', + + 'paths' => [ + resource_path('views/vendor/mail'), + ], + ], + +]; diff --git a/config/queue.php b/config/queue.php new file mode 100644 index 0000000..25ea5a8 --- /dev/null +++ b/config/queue.php @@ -0,0 +1,93 @@ + env('QUEUE_CONNECTION', 'sync'), + + /* + |-------------------------------------------------------------------------- + | Queue Connections + |-------------------------------------------------------------------------- + | + | Here you may configure the connection information for each server that + | is used by your application. A default configuration has been added + | for each back-end shipped with Laravel. You are free to add more. + | + | Drivers: "sync", "database", "beanstalkd", "sqs", "redis", "null" + | + */ + + 'connections' => [ + + 'sync' => [ + 'driver' => 'sync', + ], + + 'database' => [ + 'driver' => 'database', + 'table' => 'jobs', + 'queue' => 'default', + 'retry_after' => 90, + 'after_commit' => false, + ], + + 'beanstalkd' => [ + 'driver' => 'beanstalkd', + 'host' => 'localhost', + 'queue' => 'default', + 'retry_after' => 90, + 'block_for' => 0, + 'after_commit' => false, + ], + + 'sqs' => [ + 'driver' => 'sqs', + 'key' => env('AWS_ACCESS_KEY_ID'), + 'secret' => env('AWS_SECRET_ACCESS_KEY'), + 'prefix' => env('SQS_PREFIX', 'https://sqs.us-east-1.amazonaws.com/your-account-id'), + 'queue' => env('SQS_QUEUE', 'default'), + 'suffix' => env('SQS_SUFFIX'), + 'region' => env('AWS_DEFAULT_REGION', 'us-east-1'), + 'after_commit' => false, + ], + + 'redis' => [ + 'driver' => 'redis', + 'connection' => 'default', + 'queue' => env('REDIS_QUEUE', 'default'), + 'retry_after' => 90, + 'block_for' => null, + 'after_commit' => false, + ], + + ], + + /* + |-------------------------------------------------------------------------- + | Failed Queue Jobs + |-------------------------------------------------------------------------- + | + | These options configure the behavior of failed queue job logging so you + | can control which database and table are used to store the jobs that + | have failed. You may change them to any database / table you wish. + | + */ + + 'failed' => [ + 'driver' => env('QUEUE_FAILED_DRIVER', 'database-uuids'), + 'database' => env('DB_CONNECTION', 'mysql'), + 'table' => 'failed_jobs', + ], + +]; diff --git a/config/sanctum.php b/config/sanctum.php new file mode 100644 index 0000000..529cfdc --- /dev/null +++ b/config/sanctum.php @@ -0,0 +1,67 @@ + explode(',', env('SANCTUM_STATEFUL_DOMAINS', sprintf( + '%s%s', + 'localhost,localhost:3000,127.0.0.1,127.0.0.1:8000,::1', + Sanctum::currentApplicationUrlWithPort() + ))), + + /* + |-------------------------------------------------------------------------- + | Sanctum Guards + |-------------------------------------------------------------------------- + | + | This array contains the authentication guards that will be checked when + | Sanctum is trying to authenticate a request. If none of these guards + | are able to authenticate the request, Sanctum will use the bearer + | token that's present on an incoming request for authentication. + | + */ + + 'guard' => ['web'], + + /* + |-------------------------------------------------------------------------- + | Expiration Minutes + |-------------------------------------------------------------------------- + | + | This value controls the number of minutes until an issued token will be + | considered expired. If this value is null, personal access tokens do + | not expire. This won't tweak the lifetime of first-party sessions. + | + */ + + 'expiration' => null, + + /* + |-------------------------------------------------------------------------- + | Sanctum Middleware + |-------------------------------------------------------------------------- + | + | When authenticating your first-party SPA with Sanctum you may need to + | customize some of the middleware Sanctum uses while processing the + | request. You may change the middleware listed below as required. + | + */ + + 'middleware' => [ + 'verify_csrf_token' => App\Http\Middleware\VerifyCsrfToken::class, + 'encrypt_cookies' => App\Http\Middleware\EncryptCookies::class, + ], + +]; diff --git a/config/services.php b/config/services.php new file mode 100644 index 0000000..0ace530 --- /dev/null +++ b/config/services.php @@ -0,0 +1,34 @@ + [ + 'domain' => env('MAILGUN_DOMAIN'), + 'secret' => env('MAILGUN_SECRET'), + 'endpoint' => env('MAILGUN_ENDPOINT', 'api.mailgun.net'), + 'scheme' => 'https', + ], + + 'postmark' => [ + 'token' => env('POSTMARK_TOKEN'), + ], + + 'ses' => [ + 'key' => env('AWS_ACCESS_KEY_ID'), + 'secret' => env('AWS_SECRET_ACCESS_KEY'), + 'region' => env('AWS_DEFAULT_REGION', 'us-east-1'), + ], + +]; diff --git a/config/session.php b/config/session.php new file mode 100644 index 0000000..8fed97c --- /dev/null +++ b/config/session.php @@ -0,0 +1,201 @@ + env('SESSION_DRIVER', 'file'), + + /* + |-------------------------------------------------------------------------- + | Session Lifetime + |-------------------------------------------------------------------------- + | + | Here you may specify the number of minutes that you wish the session + | to be allowed to remain idle before it expires. If you want them + | to immediately expire on the browser closing, set that option. + | + */ + + 'lifetime' => env('SESSION_LIFETIME', 120), + + 'expire_on_close' => false, + + /* + |-------------------------------------------------------------------------- + | Session Encryption + |-------------------------------------------------------------------------- + | + | This option allows you to easily specify that all of your session data + | should be encrypted before it is stored. All encryption will be run + | automatically by Laravel and you can use the Session like normal. + | + */ + + 'encrypt' => false, + + /* + |-------------------------------------------------------------------------- + | Session File Location + |-------------------------------------------------------------------------- + | + | When using the native session driver, we need a location where session + | files may be stored. A default has been set for you but a different + | location may be specified. This is only needed for file sessions. + | + */ + + 'files' => storage_path('framework/sessions'), + + /* + |-------------------------------------------------------------------------- + | Session Database Connection + |-------------------------------------------------------------------------- + | + | When using the "database" or "redis" session drivers, you may specify a + | connection that should be used to manage these sessions. This should + | correspond to a connection in your database configuration options. + | + */ + + 'connection' => env('SESSION_CONNECTION'), + + /* + |-------------------------------------------------------------------------- + | Session Database Table + |-------------------------------------------------------------------------- + | + | When using the "database" session driver, you may specify the table we + | should use to manage the sessions. Of course, a sensible default is + | provided for you; however, you are free to change this as needed. + | + */ + + 'table' => 'sessions', + + /* + |-------------------------------------------------------------------------- + | Session Cache Store + |-------------------------------------------------------------------------- + | + | While using one of the framework's cache driven session backends you may + | list a cache store that should be used for these sessions. This value + | must match with one of the application's configured cache "stores". + | + | Affects: "apc", "dynamodb", "memcached", "redis" + | + */ + + 'store' => env('SESSION_STORE'), + + /* + |-------------------------------------------------------------------------- + | Session Sweeping Lottery + |-------------------------------------------------------------------------- + | + | Some session drivers must manually sweep their storage location to get + | rid of old sessions from storage. Here are the chances that it will + | happen on a given request. By default, the odds are 2 out of 100. + | + */ + + 'lottery' => [2, 100], + + /* + |-------------------------------------------------------------------------- + | Session Cookie Name + |-------------------------------------------------------------------------- + | + | Here you may change the name of the cookie used to identify a session + | instance by ID. The name specified here will get used every time a + | new session cookie is created by the framework for every driver. + | + */ + + 'cookie' => env( + 'SESSION_COOKIE', + Str::slug(env('APP_NAME', 'laravel'), '_').'_session' + ), + + /* + |-------------------------------------------------------------------------- + | Session Cookie Path + |-------------------------------------------------------------------------- + | + | The session cookie path determines the path for which the cookie will + | be regarded as available. Typically, this will be the root path of + | your application but you are free to change this when necessary. + | + */ + + 'path' => '/', + + /* + |-------------------------------------------------------------------------- + | Session Cookie Domain + |-------------------------------------------------------------------------- + | + | Here you may change the domain of the cookie used to identify a session + | in your application. This will determine which domains the cookie is + | available to in your application. A sensible default has been set. + | + */ + + 'domain' => env('SESSION_DOMAIN'), + + /* + |-------------------------------------------------------------------------- + | HTTPS Only Cookies + |-------------------------------------------------------------------------- + | + | By setting this option to true, session cookies will only be sent back + | to the server if the browser has a HTTPS connection. This will keep + | the cookie from being sent to you when it can't be done securely. + | + */ + + 'secure' => env('SESSION_SECURE_COOKIE'), + + /* + |-------------------------------------------------------------------------- + | HTTP Access Only + |-------------------------------------------------------------------------- + | + | Setting this value to true will prevent JavaScript from accessing the + | value of the cookie and the cookie will only be accessible through + | the HTTP protocol. You are free to modify this option if needed. + | + */ + + 'http_only' => true, + + /* + |-------------------------------------------------------------------------- + | Same-Site Cookies + |-------------------------------------------------------------------------- + | + | This option determines how your cookies behave when cross-site requests + | take place, and can be used to mitigate CSRF attacks. By default, we + | will set this value to "lax" since this is a secure default value. + | + | Supported: "lax", "strict", "none", null + | + */ + + 'same_site' => 'lax', + +]; diff --git a/config/view.php b/config/view.php new file mode 100644 index 0000000..22b8a18 --- /dev/null +++ b/config/view.php @@ -0,0 +1,36 @@ + [ + resource_path('views'), + ], + + /* + |-------------------------------------------------------------------------- + | Compiled View Path + |-------------------------------------------------------------------------- + | + | This option determines where all the compiled Blade templates will be + | stored for your application. Typically, this is within the storage + | directory. However, as usual, you are free to change this value. + | + */ + + 'compiled' => env( + 'VIEW_COMPILED_PATH', + realpath(storage_path('framework/views')) + ), + +]; diff --git a/database/.gitignore b/database/.gitignore new file mode 100644 index 0000000..9b19b93 --- /dev/null +++ b/database/.gitignore @@ -0,0 +1 @@ +*.sqlite* diff --git a/database/factories/UserFactory.php b/database/factories/UserFactory.php new file mode 100644 index 0000000..d4e8835 --- /dev/null +++ b/database/factories/UserFactory.php @@ -0,0 +1,40 @@ + + */ +class UserFactory extends Factory +{ + /** + * Define the model's default state. + * + * @return array + */ + public function definition(): array + { + return [ + 'name' => fake()->name(), + 'email' => fake()->unique()->safeEmail(), + 'email_verified_at' => now(), + 'password' => '$2y$10$92IXUNpkjO0rOQ5byMi.Ye4oKoEa3Ro9llC/.og/at2.uheWG/igi', // password + 'remember_token' => Str::random(10), + ]; + } + + /** + * Indicate that the model's email address should be unverified. + * + * @return $this + */ + public function unverified(): static + { + return $this->state(fn (array $attributes) => [ + 'email_verified_at' => null, + ]); + } +} diff --git a/database/migrations/2014_10_12_000000_create_users_table.php b/database/migrations/2014_10_12_000000_create_users_table.php new file mode 100644 index 0000000..2eb8955 --- /dev/null +++ b/database/migrations/2014_10_12_000000_create_users_table.php @@ -0,0 +1,35 @@ +id(); + $table->string('name'); + $table->string('email')->unique(); + $table->timestamp('email_verified_at')->nullable(); + $table->string('password'); + $table->string('role')->default('user'); + $table->string('code')->nullable(); + $table->string('status_code')->nullable(); + $table->rememberToken(); + $table->timestamps(); + }); + } + + /** + * Reverse the migrations. + */ + public function down(): void + { + Schema::dropIfExists('users'); + } +}; diff --git a/database/migrations/2014_10_12_100000_create_password_reset_tokens_table.php b/database/migrations/2014_10_12_100000_create_password_reset_tokens_table.php new file mode 100644 index 0000000..81a7229 --- /dev/null +++ b/database/migrations/2014_10_12_100000_create_password_reset_tokens_table.php @@ -0,0 +1,28 @@ +string('email')->primary(); + $table->string('token'); + $table->timestamp('created_at')->nullable(); + }); + } + + /** + * Reverse the migrations. + */ + public function down(): void + { + Schema::dropIfExists('password_reset_tokens'); + } +}; diff --git a/database/migrations/2019_08_19_000000_create_failed_jobs_table.php b/database/migrations/2019_08_19_000000_create_failed_jobs_table.php new file mode 100644 index 0000000..249da81 --- /dev/null +++ b/database/migrations/2019_08_19_000000_create_failed_jobs_table.php @@ -0,0 +1,32 @@ +id(); + $table->string('uuid')->unique(); + $table->text('connection'); + $table->text('queue'); + $table->longText('payload'); + $table->longText('exception'); + $table->timestamp('failed_at')->useCurrent(); + }); + } + + /** + * Reverse the migrations. + */ + public function down(): void + { + Schema::dropIfExists('failed_jobs'); + } +}; diff --git a/database/migrations/2019_12_14_000001_create_personal_access_tokens_table.php b/database/migrations/2019_12_14_000001_create_personal_access_tokens_table.php new file mode 100644 index 0000000..e828ad8 --- /dev/null +++ b/database/migrations/2019_12_14_000001_create_personal_access_tokens_table.php @@ -0,0 +1,33 @@ +id(); + $table->morphs('tokenable'); + $table->string('name'); + $table->string('token', 64)->unique(); + $table->text('abilities')->nullable(); + $table->timestamp('last_used_at')->nullable(); + $table->timestamp('expires_at')->nullable(); + $table->timestamps(); + }); + } + + /** + * Reverse the migrations. + */ + public function down(): void + { + Schema::dropIfExists('personal_access_tokens'); + } +}; diff --git a/database/migrations/2024_06_07_155523_create_product_table.php b/database/migrations/2024_06_07_155523_create_product_table.php new file mode 100644 index 0000000..052d3dc --- /dev/null +++ b/database/migrations/2024_06_07_155523_create_product_table.php @@ -0,0 +1,32 @@ +id(); + $table->string('nama'); + // $table->string('deskripsi'); + $table->string('harga'); + $table->string('gambar'); + $table->string('stok'); + $table->timestamps(); + }); + } + + /** + * Reverse the migrations. + */ + public function down(): void + { + Schema::dropIfExists('product'); + } +}; diff --git a/database/migrations/2024_06_07_155539_create_cart_table.php b/database/migrations/2024_06_07_155539_create_cart_table.php new file mode 100644 index 0000000..9c3915f --- /dev/null +++ b/database/migrations/2024_06_07_155539_create_cart_table.php @@ -0,0 +1,29 @@ +id(); + $table->string('jumlah'); + $table->string('total_harga'); + $table->timestamps(); + }); + } + + /** + * Reverse the migrations. + */ + public function down(): void + { + Schema::dropIfExists('cart'); + } +}; diff --git a/database/migrations/2024_06_07_155550_create_transaksi_table.php b/database/migrations/2024_06_07_155550_create_transaksi_table.php new file mode 100644 index 0000000..65b8bdf --- /dev/null +++ b/database/migrations/2024_06_07_155550_create_transaksi_table.php @@ -0,0 +1,35 @@ +id(); + $table->string('no_transaksi'); + $table->string('total_harga'); + $table->string('status_pembayaran'); + $table->string('status_pemesanan'); + $table->string('estimasi_pemesanan')->nullable(); + $table->string('bank'); + $table->string('no_va'); + $table->string('expired_at'); + $table->timestamps(); + }); + } + + /** + * Reverse the migrations. + */ + public function down(): void + { + Schema::dropIfExists('transaksi'); + } +}; diff --git a/database/migrations/2024_06_07_155603_create_detail_transaksi_table.php b/database/migrations/2024_06_07_155603_create_detail_transaksi_table.php new file mode 100644 index 0000000..363da27 --- /dev/null +++ b/database/migrations/2024_06_07_155603_create_detail_transaksi_table.php @@ -0,0 +1,29 @@ +id(); + $table->string('jumlah'); + $table->string('total_harga'); + $table->timestamps(); + }); + } + + /** + * Reverse the migrations. + */ + public function down(): void + { + Schema::dropIfExists('detail_transaksi'); + } +}; diff --git a/database/migrations/2024_06_07_155724_create_kategori_table.php b/database/migrations/2024_06_07_155724_create_kategori_table.php new file mode 100644 index 0000000..d5bb0ca --- /dev/null +++ b/database/migrations/2024_06_07_155724_create_kategori_table.php @@ -0,0 +1,28 @@ +id(); + $table->string('nama'); + $table->timestamps(); + }); + } + + /** + * Reverse the migrations. + */ + public function down(): void + { + Schema::dropIfExists('kategori'); + } +}; diff --git a/database/migrations/2024_06_07_160541_add_id_user_column_to_cart_table.php b/database/migrations/2024_06_07_160541_add_id_user_column_to_cart_table.php new file mode 100644 index 0000000..dc0f032 --- /dev/null +++ b/database/migrations/2024_06_07_160541_add_id_user_column_to_cart_table.php @@ -0,0 +1,30 @@ +unsignedBigInteger('id_user')->after('id'); + $table->foreign('id_user')->references('id')->on('users'); + }); + } + + /** + * Reverse the migrations. + */ + public function down(): void + { + Schema::table('cart', function (Blueprint $table) { + $table->dropForeign(['id_user']); + $table->dropColumn('id_user'); + }); + } +}; diff --git a/database/migrations/2024_06_07_160557_add_id_user_column_to_transaksi_table.php b/database/migrations/2024_06_07_160557_add_id_user_column_to_transaksi_table.php new file mode 100644 index 0000000..21da33e --- /dev/null +++ b/database/migrations/2024_06_07_160557_add_id_user_column_to_transaksi_table.php @@ -0,0 +1,30 @@ +unsignedBigInteger('id_user')->after('id'); + $table->foreign('id_user')->references('id')->on('users'); + }); + } + + /** + * Reverse the migrations. + */ + public function down(): void + { + Schema::table('transaksi', function (Blueprint $table) { + $table->dropForeign(['id_user']); + $table->dropColumn('id_user'); + }); + } +}; diff --git a/database/migrations/2024_06_07_160628_add_id_product_to_cart_table.php b/database/migrations/2024_06_07_160628_add_id_product_to_cart_table.php new file mode 100644 index 0000000..deee149 --- /dev/null +++ b/database/migrations/2024_06_07_160628_add_id_product_to_cart_table.php @@ -0,0 +1,30 @@ +unsignedBigInteger('id_product')->after('id'); + $table->foreign('id_product')->references('id')->on('product'); + }); + } + + /** + * Reverse the migrations. + */ + public function down(): void + { + Schema::table('cart', function (Blueprint $table) { + $table->dropForeign(['id_product']); + $table->dropColumn('id_product'); + }); + } +}; diff --git a/database/migrations/2024_06_07_160648_add_id_product_to_detail_transaksi_table.php b/database/migrations/2024_06_07_160648_add_id_product_to_detail_transaksi_table.php new file mode 100644 index 0000000..1407350 --- /dev/null +++ b/database/migrations/2024_06_07_160648_add_id_product_to_detail_transaksi_table.php @@ -0,0 +1,30 @@ +unsignedBigInteger('id_product')->after('id'); + $table->foreign('id_product')->references('id')->on('product'); + }); + } + + /** + * Reverse the migrations. + */ + public function down(): void + { + Schema::table('detail_transaksi', function (Blueprint $table) { + $table->dropForeign(['id_product']); + $table->dropColumn('id_product'); + }); + } +}; diff --git a/database/migrations/2024_06_07_160709_add_id_transaksi_to_detail_transaksi_table.php b/database/migrations/2024_06_07_160709_add_id_transaksi_to_detail_transaksi_table.php new file mode 100644 index 0000000..5f166e5 --- /dev/null +++ b/database/migrations/2024_06_07_160709_add_id_transaksi_to_detail_transaksi_table.php @@ -0,0 +1,30 @@ +unsignedBigInteger('id_transaksi')->after('id'); + $table->foreign('id_transaksi')->references('id')->on('transaksi'); + }); + } + + /** + * Reverse the migrations. + */ + public function down(): void + { + Schema::table('detail_transaksi', function (Blueprint $table) { + $table->dropForeign(['id_transaksi']); + $table->dropColumn('id_transaksi'); + }); + } +}; diff --git a/database/migrations/2024_06_07_160739_add_id_kategori_to_product_table.php b/database/migrations/2024_06_07_160739_add_id_kategori_to_product_table.php new file mode 100644 index 0000000..fc1ea54 --- /dev/null +++ b/database/migrations/2024_06_07_160739_add_id_kategori_to_product_table.php @@ -0,0 +1,30 @@ +unsignedBigInteger('id_kategori')->after('id'); + $table->foreign('id_kategori')->references('id')->on('kategori'); + }); + } + + /** + * Reverse the migrations. + */ + public function down(): void + { + Schema::table('product', function (Blueprint $table) { + $table->dropForeign(['id_kategori']); + $table->dropColumn('id_kategori'); + }); + } +}; diff --git a/database/seeders/DatabaseSeeder.php b/database/seeders/DatabaseSeeder.php new file mode 100644 index 0000000..870d2d4 --- /dev/null +++ b/database/seeders/DatabaseSeeder.php @@ -0,0 +1,167 @@ + 'Admin', + 'email' => 'admin@gmail.com', + 'password' => bcrypt('admin123'), + 'role' => 'admin', + ]); + + User::create([ + 'name' => 'User', + 'email' => 'user@gmail.com', + 'password' => bcrypt('user123'), + 'role' => 'user', + ]); + + Kategori::create([ + 'nama' => 'Makanan', + ]); + + Kategori::create([ + 'nama' => 'Minuman', + ]); + + Kategori::create([ + 'nama' => 'Cemilan', + ]); + + Product::create([ + 'nama' => 'Nasi Goreng', + 'harga' => '15000', + 'stok' => '10', + 'gambar' => 'nasigoreng.jpg', + 'id_kategori' => 1, + ]); + + Product::create([ + 'nama' => 'Mie Pangsit', + 'harga' => '10000', + 'stok' => '10', + 'gambar' => 'miepangsit.jpg', + 'id_kategori' => 1, + ]); + + Product::create([ + 'nama' => 'Fuyung Hai', + 'harga' => '10000', + 'stok' => '10', + 'gambar' => 'fuyunghai.jpg', + 'id_kategori' => 1, + ]); + + Product::create([ + 'nama' => 'Bakso', + 'harga' => '10000', + 'stok' => '10', + 'gambar' => 'bakso.jpg', + 'id_kategori' => 1, + ]); + + + Product::create([ + 'nama' => 'Nasi Pecel', + 'harga' => '10000', + 'stok' => '10', + 'gambar' => 'nasipecel.jpg', + 'id_kategori' => 1, + ]); + + Product::create([ + 'nama' => 'Bakmi Goreng', + 'harga' => '15000', + 'stok' => '10', + 'gambar' => 'bakmigoreng.jpg', + 'id_kategori' => 1, + ]); + + + Product::create([ + 'nama' => 'Es Teh', + 'harga' => '5000', + 'stok' => '10', + 'gambar' => 'teh.jpg', + 'id_kategori' => 2, + ]); + + Product::create([ + 'nama' => 'Es Jeruk', + 'harga' => '5000', + 'stok' => '10', + 'gambar' => 'jeruk.jpg', + 'id_kategori' => 2, + ]); + + Product::create([ + 'nama' => 'Es Susu', + 'harga' => '10000', + 'stok' => '10', + 'gambar' => 'susu.jpg', + 'id_kategori' => 2, + ]); + + Product::create([ + 'nama' => 'Air Putih', + 'harga' => '5000', + 'stok' => '10', + 'gambar' => 'airputih.jpg', + 'id_kategori' => 2, + ]); + + + Product::create([ + 'nama' => 'Lumpia Ayam', + 'harga' => '15000', + 'stok' => '10', + 'gambar' => 'lumpia.jpg', + 'id_kategori' => 3, + ]); + + Product::create([ + 'nama' => 'Tahu Bakso', + 'harga' => '10000', + 'stok' => '10', + 'gambar' => 'tahubakso.jpg', + 'id_kategori' => 3, + ]); + + Product::create([ + 'nama' => 'Sempol Ayam', + 'harga' => '10000', + 'stok' => '10', + 'gambar' => 'sempol.jpg', + 'id_kategori' => 3, + ]); + + Product::create([ + 'nama' => 'Tahu Kucek', + 'harga' => '10000', + 'stok' => '10', + 'gambar' => 'tahukucek.jpg', + 'id_kategori' => 3, + ]); + + Product::create([ + 'nama' => 'Roti Bakar Coklat', + 'harga' => '15000', + 'stok' => '10', + 'gambar' => 'rotibakar.jpg', + 'id_kategori' => 3, + ]); + } +} diff --git a/package.json b/package.json new file mode 100644 index 0000000..3a76ed0 --- /dev/null +++ b/package.json @@ -0,0 +1,12 @@ +{ + "private": true, + "scripts": { + "dev": "vite", + "build": "vite build" + }, + "devDependencies": { + "axios": "^1.1.2", + "laravel-vite-plugin": "^0.7.2", + "vite": "^4.0.0" + } +} diff --git a/phpunit.xml b/phpunit.xml new file mode 100644 index 0000000..eb13aff --- /dev/null +++ b/phpunit.xml @@ -0,0 +1,31 @@ + + + + + ./tests/Unit + + + ./tests/Feature + + + + + ./app + + + + + + + + + + + + + + diff --git a/public/.htaccess b/public/.htaccess new file mode 100644 index 0000000..3aec5e2 --- /dev/null +++ b/public/.htaccess @@ -0,0 +1,21 @@ + + + Options -MultiViews -Indexes + + + RewriteEngine On + + # Handle Authorization Header + RewriteCond %{HTTP:Authorization} . + RewriteRule .* - [E=HTTP_AUTHORIZATION:%{HTTP:Authorization}] + + # Redirect Trailing Slashes If Not A Folder... + RewriteCond %{REQUEST_FILENAME} !-d + RewriteCond %{REQUEST_URI} (.+)/$ + RewriteRule ^ %1 [L,R=301] + + # Send Requests To Front Controller... + RewriteCond %{REQUEST_FILENAME} !-d + RewriteCond %{REQUEST_FILENAME} !-f + RewriteRule ^ index.php [L] + diff --git a/public/admin/assets/audio/horse.ogg b/public/admin/assets/audio/horse.ogg new file mode 100644 index 0000000..a39a4e5 Binary files /dev/null and b/public/admin/assets/audio/horse.ogg differ diff --git a/public/admin/assets/css/${file-1x}.html b/public/admin/assets/css/${file-1x}.html new file mode 100644 index 0000000..464fa5f --- /dev/null +++ b/public/admin/assets/css/${file-1x}.html @@ -0,0 +1,32 @@ + + + + + + + Not Found + + + + + + +
+
+
+
+ 404
+ +
+ Not Found
+
+
+
+ + diff --git a/public/admin/assets/css/${file-2x}.html b/public/admin/assets/css/${file-2x}.html new file mode 100644 index 0000000..464fa5f --- /dev/null +++ b/public/admin/assets/css/${file-2x}.html @@ -0,0 +1,32 @@ + + + + + + + Not Found + + + + + + +
+
+
+
+ 404
+ +
+ Not Found
+
+
+
+ + diff --git a/public/admin/assets/css/animate.css b/public/admin/assets/css/animate.css new file mode 100644 index 0000000..896f5fb --- /dev/null +++ b/public/admin/assets/css/animate.css @@ -0,0 +1,2682 @@ +.animated { + -webkit-animation-duration: 1s; + animation-duration: 1s; + -webkit-animation-fill-mode: both; + animation-fill-mode: both; } + .animated.infinite { + -webkit-animation-iteration-count: infinite; + animation-iteration-count: infinite; } + .animated.hinge { + -webkit-animation-duration: 2s; + animation-duration: 2s; } + .animated.bounceIn { + -webkit-animation-duration: .75s; + animation-duration: .75s; } + .animated.bounceOut { + -webkit-animation-duration: .75s; + animation-duration: .75s; } + .animated.flipOutX { + -webkit-animation-duration: .75s; + animation-duration: .75s; } + .animated.flipOutY { + -webkit-animation-duration: .75s; + animation-duration: .75s; } + .animated.flip { + -webkit-backface-visibility: visible; + backface-visibility: visible; + -webkit-animation-name: flip; + animation-name: flip; } + +@-webkit-keyframes bounce { + 0% { + -webkit-animation-timing-function: cubic-bezier(0.215, 0.61, 0.355, 1); + animation-timing-function: cubic-bezier(0.215, 0.61, 0.355, 1); + -webkit-transform: translateZ(0); + transform: translateZ(0); } + 20% { + -webkit-animation-timing-function: cubic-bezier(0.215, 0.61, 0.355, 1); + animation-timing-function: cubic-bezier(0.215, 0.61, 0.355, 1); + -webkit-transform: translateZ(0); + transform: translateZ(0); } + 53% { + -webkit-animation-timing-function: cubic-bezier(0.215, 0.61, 0.355, 1); + animation-timing-function: cubic-bezier(0.215, 0.61, 0.355, 1); + -webkit-transform: translateZ(0); + transform: translateZ(0); } + 80% { + -webkit-animation-timing-function: cubic-bezier(0.215, 0.61, 0.355, 1); + animation-timing-function: cubic-bezier(0.215, 0.61, 0.355, 1); + -webkit-transform: translateZ(0); + transform: translateZ(0); } + to { + -webkit-animation-timing-function: cubic-bezier(0.215, 0.61, 0.355, 1); + animation-timing-function: cubic-bezier(0.215, 0.61, 0.355, 1); + -webkit-transform: translateZ(0); + transform: translateZ(0); } + 40% { + -webkit-animation-timing-function: cubic-bezier(0.755, 0.05, 0.855, 0.06); + animation-timing-function: cubic-bezier(0.755, 0.05, 0.855, 0.06); + -webkit-transform: translate3d(0, -30px, 0); + transform: translate3d(0, -30px, 0); } + 43% { + -webkit-animation-timing-function: cubic-bezier(0.755, 0.05, 0.855, 0.06); + animation-timing-function: cubic-bezier(0.755, 0.05, 0.855, 0.06); + -webkit-transform: translate3d(0, -30px, 0); + transform: translate3d(0, -30px, 0); } + 70% { + -webkit-animation-timing-function: cubic-bezier(0.755, 0.05, 0.855, 0.06); + animation-timing-function: cubic-bezier(0.755, 0.05, 0.855, 0.06); + -webkit-transform: translate3d(0, -15px, 0); + transform: translate3d(0, -15px, 0); } + 90% { + -webkit-transform: translate3d(0, -4px, 0); + transform: translate3d(0, -4px, 0); } } + +@keyframes bounce { + 0% { + -webkit-animation-timing-function: cubic-bezier(0.215, 0.61, 0.355, 1); + animation-timing-function: cubic-bezier(0.215, 0.61, 0.355, 1); + -webkit-transform: translateZ(0); + transform: translateZ(0); } + 20% { + -webkit-animation-timing-function: cubic-bezier(0.215, 0.61, 0.355, 1); + animation-timing-function: cubic-bezier(0.215, 0.61, 0.355, 1); + -webkit-transform: translateZ(0); + transform: translateZ(0); } + 53% { + -webkit-animation-timing-function: cubic-bezier(0.215, 0.61, 0.355, 1); + animation-timing-function: cubic-bezier(0.215, 0.61, 0.355, 1); + -webkit-transform: translateZ(0); + transform: translateZ(0); } + 80% { + -webkit-animation-timing-function: cubic-bezier(0.215, 0.61, 0.355, 1); + animation-timing-function: cubic-bezier(0.215, 0.61, 0.355, 1); + -webkit-transform: translateZ(0); + transform: translateZ(0); } + to { + -webkit-animation-timing-function: cubic-bezier(0.215, 0.61, 0.355, 1); + animation-timing-function: cubic-bezier(0.215, 0.61, 0.355, 1); + -webkit-transform: translateZ(0); + transform: translateZ(0); } + 40% { + -webkit-animation-timing-function: cubic-bezier(0.755, 0.05, 0.855, 0.06); + animation-timing-function: cubic-bezier(0.755, 0.05, 0.855, 0.06); + -webkit-transform: translate3d(0, -30px, 0); + transform: translate3d(0, -30px, 0); } + 43% { + -webkit-animation-timing-function: cubic-bezier(0.755, 0.05, 0.855, 0.06); + animation-timing-function: cubic-bezier(0.755, 0.05, 0.855, 0.06); + -webkit-transform: translate3d(0, -30px, 0); + transform: translate3d(0, -30px, 0); } + 70% { + -webkit-animation-timing-function: cubic-bezier(0.755, 0.05, 0.855, 0.06); + animation-timing-function: cubic-bezier(0.755, 0.05, 0.855, 0.06); + -webkit-transform: translate3d(0, -15px, 0); + transform: translate3d(0, -15px, 0); } + 90% { + -webkit-transform: translate3d(0, -4px, 0); + transform: translate3d(0, -4px, 0); } } + +.bounce { + -webkit-animation-name: bounce; + animation-name: bounce; + -webkit-transform-origin: center bottom; + transform-origin: center bottom; } + +@-webkit-keyframes flash { + 0% { + opacity: 1; } + 50% { + opacity: 1; } + to { + opacity: 1; } + 25% { + opacity: 0; } + 75% { + opacity: 0; } } + +@keyframes flash { + 0% { + opacity: 1; } + 50% { + opacity: 1; } + to { + opacity: 1; } + 25% { + opacity: 0; } + 75% { + opacity: 0; } } + +.flash { + -webkit-animation-name: flash; + animation-name: flash; } + +@-webkit-keyframes pulse { + 0% { + -webkit-transform: scaleX(1); + transform: scaleX(1); } + 50% { + -webkit-transform: scale3d(1.05, 1.05, 1.05); + transform: scale3d(1.05, 1.05, 1.05); } + to { + -webkit-transform: scaleX(1); + transform: scaleX(1); } } + +@keyframes pulse { + 0% { + -webkit-transform: scaleX(1); + transform: scaleX(1); } + 50% { + -webkit-transform: scale3d(1.05, 1.05, 1.05); + transform: scale3d(1.05, 1.05, 1.05); } + to { + -webkit-transform: scaleX(1); + transform: scaleX(1); } } + +.pulse { + -webkit-animation-name: pulse; + animation-name: pulse; } + +@-webkit-keyframes rubberBand { + 0% { + -webkit-transform: scaleX(1); + transform: scaleX(1); } + 30% { + -webkit-transform: scale3d(1.25, 0.75, 1); + transform: scale3d(1.25, 0.75, 1); } + 40% { + -webkit-transform: scale3d(0.75, 1.25, 1); + transform: scale3d(0.75, 1.25, 1); } + 50% { + -webkit-transform: scale3d(1.15, 0.85, 1); + transform: scale3d(1.15, 0.85, 1); } + 65% { + -webkit-transform: scale3d(0.95, 1.05, 1); + transform: scale3d(0.95, 1.05, 1); } + 75% { + -webkit-transform: scale3d(1.05, 0.95, 1); + transform: scale3d(1.05, 0.95, 1); } + to { + -webkit-transform: scaleX(1); + transform: scaleX(1); } } + +@keyframes rubberBand { + 0% { + -webkit-transform: scaleX(1); + transform: scaleX(1); } + 30% { + -webkit-transform: scale3d(1.25, 0.75, 1); + transform: scale3d(1.25, 0.75, 1); } + 40% { + -webkit-transform: scale3d(0.75, 1.25, 1); + transform: scale3d(0.75, 1.25, 1); } + 50% { + -webkit-transform: scale3d(1.15, 0.85, 1); + transform: scale3d(1.15, 0.85, 1); } + 65% { + -webkit-transform: scale3d(0.95, 1.05, 1); + transform: scale3d(0.95, 1.05, 1); } + 75% { + -webkit-transform: scale3d(1.05, 0.95, 1); + transform: scale3d(1.05, 0.95, 1); } + to { + -webkit-transform: scaleX(1); + transform: scaleX(1); } } + +.rubberBand { + -webkit-animation-name: rubberBand; + animation-name: rubberBand; } + +@-webkit-keyframes shake { + 0% { + -webkit-transform: translateZ(0); + transform: translateZ(0); } + to { + -webkit-transform: translateZ(0); + transform: translateZ(0); } + 10% { + -webkit-transform: translate3d(-10px, 0, 0); + transform: translate3d(-10px, 0, 0); } + 30% { + -webkit-transform: translate3d(-10px, 0, 0); + transform: translate3d(-10px, 0, 0); } + 50% { + -webkit-transform: translate3d(-10px, 0, 0); + transform: translate3d(-10px, 0, 0); } + 70% { + -webkit-transform: translate3d(-10px, 0, 0); + transform: translate3d(-10px, 0, 0); } + 90% { + -webkit-transform: translate3d(-10px, 0, 0); + transform: translate3d(-10px, 0, 0); } + 20% { + -webkit-transform: translate3d(10px, 0, 0); + transform: translate3d(10px, 0, 0); } + 40% { + -webkit-transform: translate3d(10px, 0, 0); + transform: translate3d(10px, 0, 0); } + 60% { + -webkit-transform: translate3d(10px, 0, 0); + transform: translate3d(10px, 0, 0); } + 80% { + -webkit-transform: translate3d(10px, 0, 0); + transform: translate3d(10px, 0, 0); } } + +@keyframes shake { + 0% { + -webkit-transform: translateZ(0); + transform: translateZ(0); } + to { + -webkit-transform: translateZ(0); + transform: translateZ(0); } + 10% { + -webkit-transform: translate3d(-10px, 0, 0); + transform: translate3d(-10px, 0, 0); } + 30% { + -webkit-transform: translate3d(-10px, 0, 0); + transform: translate3d(-10px, 0, 0); } + 50% { + -webkit-transform: translate3d(-10px, 0, 0); + transform: translate3d(-10px, 0, 0); } + 70% { + -webkit-transform: translate3d(-10px, 0, 0); + transform: translate3d(-10px, 0, 0); } + 90% { + -webkit-transform: translate3d(-10px, 0, 0); + transform: translate3d(-10px, 0, 0); } + 20% { + -webkit-transform: translate3d(10px, 0, 0); + transform: translate3d(10px, 0, 0); } + 40% { + -webkit-transform: translate3d(10px, 0, 0); + transform: translate3d(10px, 0, 0); } + 60% { + -webkit-transform: translate3d(10px, 0, 0); + transform: translate3d(10px, 0, 0); } + 80% { + -webkit-transform: translate3d(10px, 0, 0); + transform: translate3d(10px, 0, 0); } } + +.shake { + -webkit-animation-name: shake; + animation-name: shake; } + +@-webkit-keyframes headShake { + 0% { + -webkit-transform: translateX(0); + transform: translateX(0); } + 50% { + -webkit-transform: translateX(0); + transform: translateX(0); } + 0.5% { + -webkit-transform: translateX(-6px) rotateY(-9deg); + transform: translateX(-6px) rotateY(-9deg); } + 1.5% { + -webkit-transform: translateX(5px) rotateY(7deg); + transform: translateX(5px) rotateY(7deg); } + 2.5% { + -webkit-transform: translateX(-3px) rotateY(-5deg); + transform: translateX(-3px) rotateY(-5deg); } + 3.5% { + -webkit-transform: translateX(2px) rotateY(3deg); + transform: translateX(2px) rotateY(3deg); } } + +@keyframes headShake { + 0% { + -webkit-transform: translateX(0); + transform: translateX(0); } + 50% { + -webkit-transform: translateX(0); + transform: translateX(0); } + 0.5% { + -webkit-transform: translateX(-6px) rotateY(-9deg); + transform: translateX(-6px) rotateY(-9deg); } + 1.5% { + -webkit-transform: translateX(5px) rotateY(7deg); + transform: translateX(5px) rotateY(7deg); } + 2.5% { + -webkit-transform: translateX(-3px) rotateY(-5deg); + transform: translateX(-3px) rotateY(-5deg); } + 3.5% { + -webkit-transform: translateX(2px) rotateY(3deg); + transform: translateX(2px) rotateY(3deg); } } + +.headShake { + -webkit-animation-timing-function: ease-in-out; + animation-timing-function: ease-in-out; + -webkit-animation-name: headShake; + animation-name: headShake; } + +@-webkit-keyframes swing { + 20% { + -webkit-transform: rotate(15deg); + transform: rotate(15deg); } + 40% { + -webkit-transform: rotate(-10deg); + transform: rotate(-10deg); } + 60% { + -webkit-transform: rotate(5deg); + transform: rotate(5deg); } + 80% { + -webkit-transform: rotate(-5deg); + transform: rotate(-5deg); } + to { + -webkit-transform: rotate(0deg); + transform: rotate(0deg); } } + +@keyframes swing { + 20% { + -webkit-transform: rotate(15deg); + transform: rotate(15deg); } + 40% { + -webkit-transform: rotate(-10deg); + transform: rotate(-10deg); } + 60% { + -webkit-transform: rotate(5deg); + transform: rotate(5deg); } + 80% { + -webkit-transform: rotate(-5deg); + transform: rotate(-5deg); } + to { + -webkit-transform: rotate(0deg); + transform: rotate(0deg); } } + +.swing { + -webkit-transform-origin: top center; + transform-origin: top center; + -webkit-animation-name: swing; + animation-name: swing; } + +@-webkit-keyframes tada { + 0% { + -webkit-transform: scaleX(1); + transform: scaleX(1); } + 10% { + -webkit-transform: scale3d(0.9, 0.9, 0.9) rotate(-3deg); + transform: scale3d(0.9, 0.9, 0.9) rotate(-3deg); } + 20% { + -webkit-transform: scale3d(0.9, 0.9, 0.9) rotate(-3deg); + transform: scale3d(0.9, 0.9, 0.9) rotate(-3deg); } + 30% { + -webkit-transform: scale3d(1.1, 1.1, 1.1) rotate(3deg); + transform: scale3d(1.1, 1.1, 1.1) rotate(3deg); } + 50% { + -webkit-transform: scale3d(1.1, 1.1, 1.1) rotate(3deg); + transform: scale3d(1.1, 1.1, 1.1) rotate(3deg); } + 70% { + -webkit-transform: scale3d(1.1, 1.1, 1.1) rotate(3deg); + transform: scale3d(1.1, 1.1, 1.1) rotate(3deg); } + 90% { + -webkit-transform: scale3d(1.1, 1.1, 1.1) rotate(3deg); + transform: scale3d(1.1, 1.1, 1.1) rotate(3deg); } + 40% { + -webkit-transform: scale3d(1.1, 1.1, 1.1) rotate(-3deg); + transform: scale3d(1.1, 1.1, 1.1) rotate(-3deg); } + 60% { + -webkit-transform: scale3d(1.1, 1.1, 1.1) rotate(-3deg); + transform: scale3d(1.1, 1.1, 1.1) rotate(-3deg); } + 80% { + -webkit-transform: scale3d(1.1, 1.1, 1.1) rotate(-3deg); + transform: scale3d(1.1, 1.1, 1.1) rotate(-3deg); } + to { + -webkit-transform: scaleX(1); + transform: scaleX(1); } } + +@keyframes tada { + 0% { + -webkit-transform: scaleX(1); + transform: scaleX(1); } + 10% { + -webkit-transform: scale3d(0.9, 0.9, 0.9) rotate(-3deg); + transform: scale3d(0.9, 0.9, 0.9) rotate(-3deg); } + 20% { + -webkit-transform: scale3d(0.9, 0.9, 0.9) rotate(-3deg); + transform: scale3d(0.9, 0.9, 0.9) rotate(-3deg); } + 30% { + -webkit-transform: scale3d(1.1, 1.1, 1.1) rotate(3deg); + transform: scale3d(1.1, 1.1, 1.1) rotate(3deg); } + 50% { + -webkit-transform: scale3d(1.1, 1.1, 1.1) rotate(3deg); + transform: scale3d(1.1, 1.1, 1.1) rotate(3deg); } + 70% { + -webkit-transform: scale3d(1.1, 1.1, 1.1) rotate(3deg); + transform: scale3d(1.1, 1.1, 1.1) rotate(3deg); } + 90% { + -webkit-transform: scale3d(1.1, 1.1, 1.1) rotate(3deg); + transform: scale3d(1.1, 1.1, 1.1) rotate(3deg); } + 40% { + -webkit-transform: scale3d(1.1, 1.1, 1.1) rotate(-3deg); + transform: scale3d(1.1, 1.1, 1.1) rotate(-3deg); } + 60% { + -webkit-transform: scale3d(1.1, 1.1, 1.1) rotate(-3deg); + transform: scale3d(1.1, 1.1, 1.1) rotate(-3deg); } + 80% { + -webkit-transform: scale3d(1.1, 1.1, 1.1) rotate(-3deg); + transform: scale3d(1.1, 1.1, 1.1) rotate(-3deg); } + to { + -webkit-transform: scaleX(1); + transform: scaleX(1); } } + +.tada { + -webkit-animation-name: tada; + animation-name: tada; } + +@-webkit-keyframes wobble { + 0% { + -webkit-transform: none; + transform: none; } + 15% { + -webkit-transform: translate3d(-25%, 0, 0) rotate(-5deg); + transform: translate3d(-25%, 0, 0) rotate(-5deg); } + 30% { + -webkit-transform: translate3d(20%, 0, 0) rotate(3deg); + transform: translate3d(20%, 0, 0) rotate(3deg); } + 45% { + -webkit-transform: translate3d(-15%, 0, 0) rotate(-3deg); + transform: translate3d(-15%, 0, 0) rotate(-3deg); } + 60% { + -webkit-transform: translate3d(10%, 0, 0) rotate(2deg); + transform: translate3d(10%, 0, 0) rotate(2deg); } + 75% { + -webkit-transform: translate3d(-5%, 0, 0) rotate(-1deg); + transform: translate3d(-5%, 0, 0) rotate(-1deg); } + to { + -webkit-transform: none; + transform: none; } } + +@keyframes wobble { + 0% { + -webkit-transform: none; + transform: none; } + 15% { + -webkit-transform: translate3d(-25%, 0, 0) rotate(-5deg); + transform: translate3d(-25%, 0, 0) rotate(-5deg); } + 30% { + -webkit-transform: translate3d(20%, 0, 0) rotate(3deg); + transform: translate3d(20%, 0, 0) rotate(3deg); } + 45% { + -webkit-transform: translate3d(-15%, 0, 0) rotate(-3deg); + transform: translate3d(-15%, 0, 0) rotate(-3deg); } + 60% { + -webkit-transform: translate3d(10%, 0, 0) rotate(2deg); + transform: translate3d(10%, 0, 0) rotate(2deg); } + 75% { + -webkit-transform: translate3d(-5%, 0, 0) rotate(-1deg); + transform: translate3d(-5%, 0, 0) rotate(-1deg); } + to { + -webkit-transform: none; + transform: none; } } + +.wobble { + -webkit-animation-name: wobble; + animation-name: wobble; } + +@-webkit-keyframes jello { + 0% { + -webkit-transform: none; + transform: none; } + to { + -webkit-transform: none; + transform: none; } + 0.1% { + -webkit-transform: none; + transform: none; } + 1.2% { + -webkit-transform: skewX(-12.5deg) skewY(-12.5deg); + transform: skewX(-12.5deg) skewY(-12.5deg); } + 2.3% { + -webkit-transform: skewX(6.25deg) skewY(6.25deg); + transform: skewX(6.25deg) skewY(6.25deg); } + 3.4% { + -webkit-transform: skewX(-3.125deg) skewY(-3.125deg); + transform: skewX(-3.125deg) skewY(-3.125deg); } + 4.5% { + -webkit-transform: skewX(1.5625deg) skewY(1.5625deg); + transform: skewX(1.5625deg) skewY(1.5625deg); } + 5.6% { + -webkit-transform: skewX(-0.78125deg) skewY(-0.78125deg); + transform: skewX(-0.78125deg) skewY(-0.78125deg); } + 6.7% { + -webkit-transform: skewX(0.39062deg) skewY(0.39062deg); + transform: skewX(0.39062deg) skewY(0.39062deg); } + 7.8% { + -webkit-transform: skewX(-0.19531deg) skewY(-0.19531deg); + transform: skewX(-0.19531deg) skewY(-0.19531deg); } } + +@keyframes jello { + 0% { + -webkit-transform: none; + transform: none; } + to { + -webkit-transform: none; + transform: none; } + 0.1% { + -webkit-transform: none; + transform: none; } + 1.2% { + -webkit-transform: skewX(-12.5deg) skewY(-12.5deg); + transform: skewX(-12.5deg) skewY(-12.5deg); } + 2.3% { + -webkit-transform: skewX(6.25deg) skewY(6.25deg); + transform: skewX(6.25deg) skewY(6.25deg); } + 3.4% { + -webkit-transform: skewX(-3.125deg) skewY(-3.125deg); + transform: skewX(-3.125deg) skewY(-3.125deg); } + 4.5% { + -webkit-transform: skewX(1.5625deg) skewY(1.5625deg); + transform: skewX(1.5625deg) skewY(1.5625deg); } + 5.6% { + -webkit-transform: skewX(-0.78125deg) skewY(-0.78125deg); + transform: skewX(-0.78125deg) skewY(-0.78125deg); } + 6.7% { + -webkit-transform: skewX(0.39062deg) skewY(0.39062deg); + transform: skewX(0.39062deg) skewY(0.39062deg); } + 7.8% { + -webkit-transform: skewX(-0.19531deg) skewY(-0.19531deg); + transform: skewX(-0.19531deg) skewY(-0.19531deg); } } + +.jello { + -webkit-animation-name: jello; + animation-name: jello; + -webkit-transform-origin: center; + transform-origin: center; } + +@-webkit-keyframes bounceIn { + 0% { + -webkit-animation-timing-function: cubic-bezier(0.215, 0.61, 0.355, 1); + animation-timing-function: cubic-bezier(0.215, 0.61, 0.355, 1); + opacity: 0; + -webkit-transform: scale3d(0.3, 0.3, 0.3); + transform: scale3d(0.3, 0.3, 0.3); } + 20% { + -webkit-animation-timing-function: cubic-bezier(0.215, 0.61, 0.355, 1); + animation-timing-function: cubic-bezier(0.215, 0.61, 0.355, 1); + -webkit-transform: scale3d(1.1, 1.1, 1.1); + transform: scale3d(1.1, 1.1, 1.1); } + 40% { + -webkit-animation-timing-function: cubic-bezier(0.215, 0.61, 0.355, 1); + animation-timing-function: cubic-bezier(0.215, 0.61, 0.355, 1); + -webkit-transform: scale3d(0.9, 0.9, 0.9); + transform: scale3d(0.9, 0.9, 0.9); } + 60% { + -webkit-animation-timing-function: cubic-bezier(0.215, 0.61, 0.355, 1); + animation-timing-function: cubic-bezier(0.215, 0.61, 0.355, 1); + opacity: 1; + -webkit-transform: scale3d(1.03, 1.03, 1.03); + transform: scale3d(1.03, 1.03, 1.03); } + 80% { + -webkit-animation-timing-function: cubic-bezier(0.215, 0.61, 0.355, 1); + animation-timing-function: cubic-bezier(0.215, 0.61, 0.355, 1); + -webkit-transform: scale3d(0.97, 0.97, 0.97); + transform: scale3d(0.97, 0.97, 0.97); } + to { + -webkit-animation-timing-function: cubic-bezier(0.215, 0.61, 0.355, 1); + animation-timing-function: cubic-bezier(0.215, 0.61, 0.355, 1); + opacity: 1; + -webkit-transform: scaleX(1); + transform: scaleX(1); } } + +@keyframes bounceIn { + 0% { + -webkit-animation-timing-function: cubic-bezier(0.215, 0.61, 0.355, 1); + animation-timing-function: cubic-bezier(0.215, 0.61, 0.355, 1); + opacity: 0; + -webkit-transform: scale3d(0.3, 0.3, 0.3); + transform: scale3d(0.3, 0.3, 0.3); } + 20% { + -webkit-animation-timing-function: cubic-bezier(0.215, 0.61, 0.355, 1); + animation-timing-function: cubic-bezier(0.215, 0.61, 0.355, 1); + -webkit-transform: scale3d(1.1, 1.1, 1.1); + transform: scale3d(1.1, 1.1, 1.1); } + 40% { + -webkit-animation-timing-function: cubic-bezier(0.215, 0.61, 0.355, 1); + animation-timing-function: cubic-bezier(0.215, 0.61, 0.355, 1); + -webkit-transform: scale3d(0.9, 0.9, 0.9); + transform: scale3d(0.9, 0.9, 0.9); } + 60% { + -webkit-animation-timing-function: cubic-bezier(0.215, 0.61, 0.355, 1); + animation-timing-function: cubic-bezier(0.215, 0.61, 0.355, 1); + opacity: 1; + -webkit-transform: scale3d(1.03, 1.03, 1.03); + transform: scale3d(1.03, 1.03, 1.03); } + 80% { + -webkit-animation-timing-function: cubic-bezier(0.215, 0.61, 0.355, 1); + animation-timing-function: cubic-bezier(0.215, 0.61, 0.355, 1); + -webkit-transform: scale3d(0.97, 0.97, 0.97); + transform: scale3d(0.97, 0.97, 0.97); } + to { + -webkit-animation-timing-function: cubic-bezier(0.215, 0.61, 0.355, 1); + animation-timing-function: cubic-bezier(0.215, 0.61, 0.355, 1); + opacity: 1; + -webkit-transform: scaleX(1); + transform: scaleX(1); } } + +.bounceIn { + -webkit-animation-name: bounceIn; + animation-name: bounceIn; } + +@-webkit-keyframes bounceInDown { + 0% { + -webkit-animation-timing-function: cubic-bezier(0.215, 0.61, 0.355, 1); + animation-timing-function: cubic-bezier(0.215, 0.61, 0.355, 1); + opacity: 0; + -webkit-transform: translate3d(0, -3000px, 0); + transform: translate3d(0, -3000px, 0); } + 60% { + -webkit-animation-timing-function: cubic-bezier(0.215, 0.61, 0.355, 1); + animation-timing-function: cubic-bezier(0.215, 0.61, 0.355, 1); + opacity: 1; + -webkit-transform: translate3d(0, 25px, 0); + transform: translate3d(0, 25px, 0); } + 75% { + -webkit-animation-timing-function: cubic-bezier(0.215, 0.61, 0.355, 1); + animation-timing-function: cubic-bezier(0.215, 0.61, 0.355, 1); + -webkit-transform: translate3d(0, -10px, 0); + transform: translate3d(0, -10px, 0); } + 90% { + -webkit-animation-timing-function: cubic-bezier(0.215, 0.61, 0.355, 1); + animation-timing-function: cubic-bezier(0.215, 0.61, 0.355, 1); + -webkit-transform: translate3d(0, 5px, 0); + transform: translate3d(0, 5px, 0); } + to { + -webkit-animation-timing-function: cubic-bezier(0.215, 0.61, 0.355, 1); + animation-timing-function: cubic-bezier(0.215, 0.61, 0.355, 1); + -webkit-transform: none; + transform: none; } } + +@keyframes bounceInDown { + 0% { + -webkit-animation-timing-function: cubic-bezier(0.215, 0.61, 0.355, 1); + animation-timing-function: cubic-bezier(0.215, 0.61, 0.355, 1); + opacity: 0; + -webkit-transform: translate3d(0, -3000px, 0); + transform: translate3d(0, -3000px, 0); } + 60% { + -webkit-animation-timing-function: cubic-bezier(0.215, 0.61, 0.355, 1); + animation-timing-function: cubic-bezier(0.215, 0.61, 0.355, 1); + opacity: 1; + -webkit-transform: translate3d(0, 25px, 0); + transform: translate3d(0, 25px, 0); } + 75% { + -webkit-animation-timing-function: cubic-bezier(0.215, 0.61, 0.355, 1); + animation-timing-function: cubic-bezier(0.215, 0.61, 0.355, 1); + -webkit-transform: translate3d(0, -10px, 0); + transform: translate3d(0, -10px, 0); } + 90% { + -webkit-animation-timing-function: cubic-bezier(0.215, 0.61, 0.355, 1); + animation-timing-function: cubic-bezier(0.215, 0.61, 0.355, 1); + -webkit-transform: translate3d(0, 5px, 0); + transform: translate3d(0, 5px, 0); } + to { + -webkit-animation-timing-function: cubic-bezier(0.215, 0.61, 0.355, 1); + animation-timing-function: cubic-bezier(0.215, 0.61, 0.355, 1); + -webkit-transform: none; + transform: none; } } + +.bounceInDown { + -webkit-animation-name: bounceInDown; + animation-name: bounceInDown; } + +@-webkit-keyframes bounceInLeft { + 0% { + -webkit-animation-timing-function: cubic-bezier(0.215, 0.61, 0.355, 1); + animation-timing-function: cubic-bezier(0.215, 0.61, 0.355, 1); + opacity: 0; + -webkit-transform: translate3d(-3000px, 0, 0); + transform: translate3d(-3000px, 0, 0); } + 60% { + -webkit-animation-timing-function: cubic-bezier(0.215, 0.61, 0.355, 1); + animation-timing-function: cubic-bezier(0.215, 0.61, 0.355, 1); + opacity: 1; + -webkit-transform: translate3d(25px, 0, 0); + transform: translate3d(25px, 0, 0); } + 75% { + -webkit-animation-timing-function: cubic-bezier(0.215, 0.61, 0.355, 1); + animation-timing-function: cubic-bezier(0.215, 0.61, 0.355, 1); + -webkit-transform: translate3d(-10px, 0, 0); + transform: translate3d(-10px, 0, 0); } + 90% { + -webkit-animation-timing-function: cubic-bezier(0.215, 0.61, 0.355, 1); + animation-timing-function: cubic-bezier(0.215, 0.61, 0.355, 1); + -webkit-transform: translate3d(5px, 0, 0); + transform: translate3d(5px, 0, 0); } + to { + -webkit-animation-timing-function: cubic-bezier(0.215, 0.61, 0.355, 1); + animation-timing-function: cubic-bezier(0.215, 0.61, 0.355, 1); + -webkit-transform: none; + transform: none; } } + +@keyframes bounceInLeft { + 0% { + -webkit-animation-timing-function: cubic-bezier(0.215, 0.61, 0.355, 1); + animation-timing-function: cubic-bezier(0.215, 0.61, 0.355, 1); + opacity: 0; + -webkit-transform: translate3d(-3000px, 0, 0); + transform: translate3d(-3000px, 0, 0); } + 60% { + -webkit-animation-timing-function: cubic-bezier(0.215, 0.61, 0.355, 1); + animation-timing-function: cubic-bezier(0.215, 0.61, 0.355, 1); + opacity: 1; + -webkit-transform: translate3d(25px, 0, 0); + transform: translate3d(25px, 0, 0); } + 75% { + -webkit-animation-timing-function: cubic-bezier(0.215, 0.61, 0.355, 1); + animation-timing-function: cubic-bezier(0.215, 0.61, 0.355, 1); + -webkit-transform: translate3d(-10px, 0, 0); + transform: translate3d(-10px, 0, 0); } + 90% { + -webkit-animation-timing-function: cubic-bezier(0.215, 0.61, 0.355, 1); + animation-timing-function: cubic-bezier(0.215, 0.61, 0.355, 1); + -webkit-transform: translate3d(5px, 0, 0); + transform: translate3d(5px, 0, 0); } + to { + -webkit-animation-timing-function: cubic-bezier(0.215, 0.61, 0.355, 1); + animation-timing-function: cubic-bezier(0.215, 0.61, 0.355, 1); + -webkit-transform: none; + transform: none; } } + +.bounceInLeft { + -webkit-animation-name: bounceInLeft; + animation-name: bounceInLeft; } + +@-webkit-keyframes bounceInRight { + 0% { + -webkit-animation-timing-function: cubic-bezier(0.215, 0.61, 0.355, 1); + animation-timing-function: cubic-bezier(0.215, 0.61, 0.355, 1); + opacity: 0; + -webkit-transform: translate3d(3000px, 0, 0); + transform: translate3d(3000px, 0, 0); } + 60% { + -webkit-animation-timing-function: cubic-bezier(0.215, 0.61, 0.355, 1); + animation-timing-function: cubic-bezier(0.215, 0.61, 0.355, 1); + opacity: 1; + -webkit-transform: translate3d(-25px, 0, 0); + transform: translate3d(-25px, 0, 0); } + 75% { + -webkit-animation-timing-function: cubic-bezier(0.215, 0.61, 0.355, 1); + animation-timing-function: cubic-bezier(0.215, 0.61, 0.355, 1); + -webkit-transform: translate3d(10px, 0, 0); + transform: translate3d(10px, 0, 0); } + 90% { + -webkit-animation-timing-function: cubic-bezier(0.215, 0.61, 0.355, 1); + animation-timing-function: cubic-bezier(0.215, 0.61, 0.355, 1); + -webkit-transform: translate3d(-5px, 0, 0); + transform: translate3d(-5px, 0, 0); } + to { + -webkit-animation-timing-function: cubic-bezier(0.215, 0.61, 0.355, 1); + animation-timing-function: cubic-bezier(0.215, 0.61, 0.355, 1); + -webkit-transform: none; + transform: none; } } + +@keyframes bounceInRight { + 0% { + -webkit-animation-timing-function: cubic-bezier(0.215, 0.61, 0.355, 1); + animation-timing-function: cubic-bezier(0.215, 0.61, 0.355, 1); + opacity: 0; + -webkit-transform: translate3d(3000px, 0, 0); + transform: translate3d(3000px, 0, 0); } + 60% { + -webkit-animation-timing-function: cubic-bezier(0.215, 0.61, 0.355, 1); + animation-timing-function: cubic-bezier(0.215, 0.61, 0.355, 1); + opacity: 1; + -webkit-transform: translate3d(-25px, 0, 0); + transform: translate3d(-25px, 0, 0); } + 75% { + -webkit-animation-timing-function: cubic-bezier(0.215, 0.61, 0.355, 1); + animation-timing-function: cubic-bezier(0.215, 0.61, 0.355, 1); + -webkit-transform: translate3d(10px, 0, 0); + transform: translate3d(10px, 0, 0); } + 90% { + -webkit-animation-timing-function: cubic-bezier(0.215, 0.61, 0.355, 1); + animation-timing-function: cubic-bezier(0.215, 0.61, 0.355, 1); + -webkit-transform: translate3d(-5px, 0, 0); + transform: translate3d(-5px, 0, 0); } + to { + -webkit-animation-timing-function: cubic-bezier(0.215, 0.61, 0.355, 1); + animation-timing-function: cubic-bezier(0.215, 0.61, 0.355, 1); + -webkit-transform: none; + transform: none; } } + +.bounceInRight { + -webkit-animation-name: bounceInRight; + animation-name: bounceInRight; } + +@-webkit-keyframes bounceInUp { + 0% { + -webkit-animation-timing-function: cubic-bezier(0.215, 0.61, 0.355, 1); + animation-timing-function: cubic-bezier(0.215, 0.61, 0.355, 1); + opacity: 0; + -webkit-transform: translate3d(0, 3000px, 0); + transform: translate3d(0, 3000px, 0); } + 60% { + -webkit-animation-timing-function: cubic-bezier(0.215, 0.61, 0.355, 1); + animation-timing-function: cubic-bezier(0.215, 0.61, 0.355, 1); + opacity: 1; + -webkit-transform: translate3d(0, -20px, 0); + transform: translate3d(0, -20px, 0); } + 75% { + -webkit-animation-timing-function: cubic-bezier(0.215, 0.61, 0.355, 1); + animation-timing-function: cubic-bezier(0.215, 0.61, 0.355, 1); + -webkit-transform: translate3d(0, 10px, 0); + transform: translate3d(0, 10px, 0); } + 90% { + -webkit-animation-timing-function: cubic-bezier(0.215, 0.61, 0.355, 1); + animation-timing-function: cubic-bezier(0.215, 0.61, 0.355, 1); + -webkit-transform: translate3d(0, -5px, 0); + transform: translate3d(0, -5px, 0); } + to { + -webkit-animation-timing-function: cubic-bezier(0.215, 0.61, 0.355, 1); + animation-timing-function: cubic-bezier(0.215, 0.61, 0.355, 1); + -webkit-transform: translateZ(0); + transform: translateZ(0); } } + +@keyframes bounceInUp { + 0% { + -webkit-animation-timing-function: cubic-bezier(0.215, 0.61, 0.355, 1); + animation-timing-function: cubic-bezier(0.215, 0.61, 0.355, 1); + opacity: 0; + -webkit-transform: translate3d(0, 3000px, 0); + transform: translate3d(0, 3000px, 0); } + 60% { + -webkit-animation-timing-function: cubic-bezier(0.215, 0.61, 0.355, 1); + animation-timing-function: cubic-bezier(0.215, 0.61, 0.355, 1); + opacity: 1; + -webkit-transform: translate3d(0, -20px, 0); + transform: translate3d(0, -20px, 0); } + 75% { + -webkit-animation-timing-function: cubic-bezier(0.215, 0.61, 0.355, 1); + animation-timing-function: cubic-bezier(0.215, 0.61, 0.355, 1); + -webkit-transform: translate3d(0, 10px, 0); + transform: translate3d(0, 10px, 0); } + 90% { + -webkit-animation-timing-function: cubic-bezier(0.215, 0.61, 0.355, 1); + animation-timing-function: cubic-bezier(0.215, 0.61, 0.355, 1); + -webkit-transform: translate3d(0, -5px, 0); + transform: translate3d(0, -5px, 0); } + to { + -webkit-animation-timing-function: cubic-bezier(0.215, 0.61, 0.355, 1); + animation-timing-function: cubic-bezier(0.215, 0.61, 0.355, 1); + -webkit-transform: translateZ(0); + transform: translateZ(0); } } + +.bounceInUp { + -webkit-animation-name: bounceInUp; + animation-name: bounceInUp; } + +@-webkit-keyframes bounceOut { + 20% { + -webkit-transform: scale3d(0.9, 0.9, 0.9); + transform: scale3d(0.9, 0.9, 0.9); } + 50% { + opacity: 1; + -webkit-transform: scale3d(1.1, 1.1, 1.1); + transform: scale3d(1.1, 1.1, 1.1); } + 55% { + opacity: 1; + -webkit-transform: scale3d(1.1, 1.1, 1.1); + transform: scale3d(1.1, 1.1, 1.1); } + to { + opacity: 0; + -webkit-transform: scale3d(0.3, 0.3, 0.3); + transform: scale3d(0.3, 0.3, 0.3); } } + +@keyframes bounceOut { + 20% { + -webkit-transform: scale3d(0.9, 0.9, 0.9); + transform: scale3d(0.9, 0.9, 0.9); } + 50% { + opacity: 1; + -webkit-transform: scale3d(1.1, 1.1, 1.1); + transform: scale3d(1.1, 1.1, 1.1); } + 55% { + opacity: 1; + -webkit-transform: scale3d(1.1, 1.1, 1.1); + transform: scale3d(1.1, 1.1, 1.1); } + to { + opacity: 0; + -webkit-transform: scale3d(0.3, 0.3, 0.3); + transform: scale3d(0.3, 0.3, 0.3); } } + +.bounceOut { + -webkit-animation-name: bounceOut; + animation-name: bounceOut; } + +@-webkit-keyframes bounceOutDown { + 20% { + -webkit-transform: translate3d(0, 10px, 0); + transform: translate3d(0, 10px, 0); } + 40% { + opacity: 1; + -webkit-transform: translate3d(0, -20px, 0); + transform: translate3d(0, -20px, 0); } + 45% { + opacity: 1; + -webkit-transform: translate3d(0, -20px, 0); + transform: translate3d(0, -20px, 0); } + to { + opacity: 0; + -webkit-transform: translate3d(0, 2000px, 0); + transform: translate3d(0, 2000px, 0); } } + +@keyframes bounceOutDown { + 20% { + -webkit-transform: translate3d(0, 10px, 0); + transform: translate3d(0, 10px, 0); } + 40% { + opacity: 1; + -webkit-transform: translate3d(0, -20px, 0); + transform: translate3d(0, -20px, 0); } + 45% { + opacity: 1; + -webkit-transform: translate3d(0, -20px, 0); + transform: translate3d(0, -20px, 0); } + to { + opacity: 0; + -webkit-transform: translate3d(0, 2000px, 0); + transform: translate3d(0, 2000px, 0); } } + +.bounceOutDown { + -webkit-animation-name: bounceOutDown; + animation-name: bounceOutDown; } + +@-webkit-keyframes bounceOutLeft { + 20% { + opacity: 1; + -webkit-transform: translate3d(20px, 0, 0); + transform: translate3d(20px, 0, 0); } + to { + opacity: 0; + -webkit-transform: translate3d(-2000px, 0, 0); + transform: translate3d(-2000px, 0, 0); } } + +@keyframes bounceOutLeft { + 20% { + opacity: 1; + -webkit-transform: translate3d(20px, 0, 0); + transform: translate3d(20px, 0, 0); } + to { + opacity: 0; + -webkit-transform: translate3d(-2000px, 0, 0); + transform: translate3d(-2000px, 0, 0); } } + +.bounceOutLeft { + -webkit-animation-name: bounceOutLeft; + animation-name: bounceOutLeft; } + +@-webkit-keyframes bounceOutRight { + 20% { + opacity: 1; + -webkit-transform: translate3d(-20px, 0, 0); + transform: translate3d(-20px, 0, 0); } + to { + opacity: 0; + -webkit-transform: translate3d(2000px, 0, 0); + transform: translate3d(2000px, 0, 0); } } + +@keyframes bounceOutRight { + 20% { + opacity: 1; + -webkit-transform: translate3d(-20px, 0, 0); + transform: translate3d(-20px, 0, 0); } + to { + opacity: 0; + -webkit-transform: translate3d(2000px, 0, 0); + transform: translate3d(2000px, 0, 0); } } + +.bounceOutRight { + -webkit-animation-name: bounceOutRight; + animation-name: bounceOutRight; } + +@-webkit-keyframes bounceOutUp { + 20% { + -webkit-transform: translate3d(0, -10px, 0); + transform: translate3d(0, -10px, 0); } + 40% { + opacity: 1; + -webkit-transform: translate3d(0, 20px, 0); + transform: translate3d(0, 20px, 0); } + 45% { + opacity: 1; + -webkit-transform: translate3d(0, 20px, 0); + transform: translate3d(0, 20px, 0); } + to { + opacity: 0; + -webkit-transform: translate3d(0, -2000px, 0); + transform: translate3d(0, -2000px, 0); } } + +@keyframes bounceOutUp { + 20% { + -webkit-transform: translate3d(0, -10px, 0); + transform: translate3d(0, -10px, 0); } + 40% { + opacity: 1; + -webkit-transform: translate3d(0, 20px, 0); + transform: translate3d(0, 20px, 0); } + 45% { + opacity: 1; + -webkit-transform: translate3d(0, 20px, 0); + transform: translate3d(0, 20px, 0); } + to { + opacity: 0; + -webkit-transform: translate3d(0, -2000px, 0); + transform: translate3d(0, -2000px, 0); } } + +.bounceOutUp { + -webkit-animation-name: bounceOutUp; + animation-name: bounceOutUp; } + +@-webkit-keyframes fadeIn { + 0% { + opacity: 0; } + to { + opacity: 1; } } + +@keyframes fadeIn { + 0% { + opacity: 0; } + to { + opacity: 1; } } + +.fadeIn { + -webkit-animation-name: fadeIn; + animation-name: fadeIn; } + +@-webkit-keyframes fadeInDown { + 0% { + opacity: 0; + -webkit-transform: translate3d(0, -100%, 0); + transform: translate3d(0, -100%, 0); } + to { + opacity: 1; + -webkit-transform: none; + transform: none; } } + +@keyframes fadeInDown { + 0% { + opacity: 0; + -webkit-transform: translate3d(0, -100%, 0); + transform: translate3d(0, -100%, 0); } + to { + opacity: 1; + -webkit-transform: none; + transform: none; } } + +.fadeInDown { + -webkit-animation-name: fadeInDown; + animation-name: fadeInDown; } + +@-webkit-keyframes fadeInDownBig { + 0% { + opacity: 0; + -webkit-transform: translate3d(0, -2000px, 0); + transform: translate3d(0, -2000px, 0); } + to { + opacity: 1; + -webkit-transform: none; + transform: none; } } + +@keyframes fadeInDownBig { + 0% { + opacity: 0; + -webkit-transform: translate3d(0, -2000px, 0); + transform: translate3d(0, -2000px, 0); } + to { + opacity: 1; + -webkit-transform: none; + transform: none; } } + +.fadeInDownBig { + -webkit-animation-name: fadeInDownBig; + animation-name: fadeInDownBig; } + +@-webkit-keyframes fadeInLeft { + 0% { + opacity: 0; + -webkit-transform: translate3d(-100%, 0, 0); + transform: translate3d(-100%, 0, 0); } + to { + opacity: 1; + -webkit-transform: none; + transform: none; } } + +@keyframes fadeInLeft { + 0% { + opacity: 0; + -webkit-transform: translate3d(-100%, 0, 0); + transform: translate3d(-100%, 0, 0); } + to { + opacity: 1; + -webkit-transform: none; + transform: none; } } + +.fadeInLeft { + -webkit-animation-name: fadeInLeft; + animation-name: fadeInLeft; } + +@-webkit-keyframes fadeInLeftBig { + 0% { + opacity: 0; + -webkit-transform: translate3d(-2000px, 0, 0); + transform: translate3d(-2000px, 0, 0); } + to { + opacity: 1; + -webkit-transform: none; + transform: none; } } + +@keyframes fadeInLeftBig { + 0% { + opacity: 0; + -webkit-transform: translate3d(-2000px, 0, 0); + transform: translate3d(-2000px, 0, 0); } + to { + opacity: 1; + -webkit-transform: none; + transform: none; } } + +.fadeInLeftBig { + -webkit-animation-name: fadeInLeftBig; + animation-name: fadeInLeftBig; } + +@-webkit-keyframes fadeInRight { + 0% { + opacity: 0; + -webkit-transform: translate3d(100%, 0, 0); + transform: translate3d(100%, 0, 0); } + to { + opacity: 1; + -webkit-transform: none; + transform: none; } } + +@keyframes fadeInRight { + 0% { + opacity: 0; + -webkit-transform: translate3d(100%, 0, 0); + transform: translate3d(100%, 0, 0); } + to { + opacity: 1; + -webkit-transform: none; + transform: none; } } + +.fadeInRight { + -webkit-animation-name: fadeInRight; + animation-name: fadeInRight; } + +@-webkit-keyframes fadeInRightBig { + 0% { + opacity: 0; + -webkit-transform: translate3d(2000px, 0, 0); + transform: translate3d(2000px, 0, 0); } + to { + opacity: 1; + -webkit-transform: none; + transform: none; } } + +@keyframes fadeInRightBig { + 0% { + opacity: 0; + -webkit-transform: translate3d(2000px, 0, 0); + transform: translate3d(2000px, 0, 0); } + to { + opacity: 1; + -webkit-transform: none; + transform: none; } } + +.fadeInRightBig { + -webkit-animation-name: fadeInRightBig; + animation-name: fadeInRightBig; } + +@-webkit-keyframes fadeInUp { + 0% { + opacity: 0; + -webkit-transform: translate3d(0, 100%, 0); + transform: translate3d(0, 100%, 0); } + to { + opacity: 1; + -webkit-transform: none; + transform: none; } } + +@keyframes fadeInUp { + 0% { + opacity: 0; + -webkit-transform: translate3d(0, 100%, 0); + transform: translate3d(0, 100%, 0); } + to { + opacity: 1; + -webkit-transform: none; + transform: none; } } + +.fadeInUp { + -webkit-animation-name: fadeInUp; + animation-name: fadeInUp; } + +@-webkit-keyframes fadeInUpBig { + 0% { + opacity: 0; + -webkit-transform: translate3d(0, 2000px, 0); + transform: translate3d(0, 2000px, 0); } + to { + opacity: 1; + -webkit-transform: none; + transform: none; } } + +@keyframes fadeInUpBig { + 0% { + opacity: 0; + -webkit-transform: translate3d(0, 2000px, 0); + transform: translate3d(0, 2000px, 0); } + to { + opacity: 1; + -webkit-transform: none; + transform: none; } } + +.fadeInUpBig { + -webkit-animation-name: fadeInUpBig; + animation-name: fadeInUpBig; } + +@-webkit-keyframes fadeOut { + 0% { + opacity: 1; } + to { + opacity: 0; } } + +@keyframes fadeOut { + 0% { + opacity: 1; } + to { + opacity: 0; } } + +.fadeOut { + -webkit-animation-name: fadeOut; + animation-name: fadeOut; } + +@-webkit-keyframes fadeOutDown { + 0% { + opacity: 1; } + to { + opacity: 0; + -webkit-transform: translate3d(0, 100%, 0); + transform: translate3d(0, 100%, 0); } } + +@keyframes fadeOutDown { + 0% { + opacity: 1; } + to { + opacity: 0; + -webkit-transform: translate3d(0, 100%, 0); + transform: translate3d(0, 100%, 0); } } + +.fadeOutDown { + -webkit-animation-name: fadeOutDown; + animation-name: fadeOutDown; } + +@-webkit-keyframes fadeOutDownBig { + 0% { + opacity: 1; } + to { + opacity: 0; + -webkit-transform: translate3d(0, 2000px, 0); + transform: translate3d(0, 2000px, 0); } } + +@keyframes fadeOutDownBig { + 0% { + opacity: 1; } + to { + opacity: 0; + -webkit-transform: translate3d(0, 2000px, 0); + transform: translate3d(0, 2000px, 0); } } + +.fadeOutDownBig { + -webkit-animation-name: fadeOutDownBig; + animation-name: fadeOutDownBig; } + +@-webkit-keyframes fadeOutLeft { + 0% { + opacity: 1; } + to { + opacity: 0; + -webkit-transform: translate3d(-100%, 0, 0); + transform: translate3d(-100%, 0, 0); } } + +@keyframes fadeOutLeft { + 0% { + opacity: 1; } + to { + opacity: 0; + -webkit-transform: translate3d(-100%, 0, 0); + transform: translate3d(-100%, 0, 0); } } + +.fadeOutLeft { + -webkit-animation-name: fadeOutLeft; + animation-name: fadeOutLeft; } + +@-webkit-keyframes fadeOutLeftBig { + 0% { + opacity: 1; } + to { + opacity: 0; + -webkit-transform: translate3d(-2000px, 0, 0); + transform: translate3d(-2000px, 0, 0); } } + +@keyframes fadeOutLeftBig { + 0% { + opacity: 1; } + to { + opacity: 0; + -webkit-transform: translate3d(-2000px, 0, 0); + transform: translate3d(-2000px, 0, 0); } } + +.fadeOutLeftBig { + -webkit-animation-name: fadeOutLeftBig; + animation-name: fadeOutLeftBig; } + +@-webkit-keyframes fadeOutRight { + 0% { + opacity: 1; } + to { + opacity: 0; + -webkit-transform: translate3d(100%, 0, 0); + transform: translate3d(100%, 0, 0); } } + +@keyframes fadeOutRight { + 0% { + opacity: 1; } + to { + opacity: 0; + -webkit-transform: translate3d(100%, 0, 0); + transform: translate3d(100%, 0, 0); } } + +.fadeOutRight { + -webkit-animation-name: fadeOutRight; + animation-name: fadeOutRight; } + +@-webkit-keyframes fadeOutRightBig { + 0% { + opacity: 1; } + to { + opacity: 0; + -webkit-transform: translate3d(2000px, 0, 0); + transform: translate3d(2000px, 0, 0); } } + +@keyframes fadeOutRightBig { + 0% { + opacity: 1; } + to { + opacity: 0; + -webkit-transform: translate3d(2000px, 0, 0); + transform: translate3d(2000px, 0, 0); } } + +.fadeOutRightBig { + -webkit-animation-name: fadeOutRightBig; + animation-name: fadeOutRightBig; } + +@-webkit-keyframes fadeOutUp { + 0% { + opacity: 1; } + to { + opacity: 0; + -webkit-transform: translate3d(0, -100%, 0); + transform: translate3d(0, -100%, 0); } } + +@keyframes fadeOutUp { + 0% { + opacity: 1; } + to { + opacity: 0; + -webkit-transform: translate3d(0, -100%, 0); + transform: translate3d(0, -100%, 0); } } + +.fadeOutUp { + -webkit-animation-name: fadeOutUp; + animation-name: fadeOutUp; } + +@-webkit-keyframes fadeOutUpBig { + 0% { + opacity: 1; } + to { + opacity: 0; + -webkit-transform: translate3d(0, -2000px, 0); + transform: translate3d(0, -2000px, 0); } } + +@keyframes fadeOutUpBig { + 0% { + opacity: 1; } + to { + opacity: 0; + -webkit-transform: translate3d(0, -2000px, 0); + transform: translate3d(0, -2000px, 0); } } + +.fadeOutUpBig { + -webkit-animation-name: fadeOutUpBig; + animation-name: fadeOutUpBig; } + +@-webkit-keyframes flip { + 0% { + -webkit-transform: perspective(400px) rotateY(-1turn); + transform: perspective(400px) rotateY(-1turn); + -webkit-animation-timing-function: ease-out; + animation-timing-function: ease-out; } + 40% { + -webkit-transform: perspective(400px) translateZ(150px) rotateY(-190deg); + transform: perspective(400px) translateZ(150px) rotateY(-190deg); + -webkit-animation-timing-function: ease-out; + animation-timing-function: ease-out; } + 50% { + -webkit-transform: perspective(400px) translateZ(150px) rotateY(-170deg); + transform: perspective(400px) translateZ(150px) rotateY(-170deg); + -webkit-animation-timing-function: ease-in; + animation-timing-function: ease-in; } + 80% { + -webkit-transform: perspective(400px) scale3d(0.95, 0.95, 0.95); + transform: perspective(400px) scale3d(0.95, 0.95, 0.95); + -webkit-animation-timing-function: ease-in; + animation-timing-function: ease-in; } + to { + -webkit-transform: perspective(400px); + transform: perspective(400px); + -webkit-animation-timing-function: ease-in; + animation-timing-function: ease-in; } } + +@keyframes flip { + 0% { + -webkit-transform: perspective(400px) rotateY(-1turn); + transform: perspective(400px) rotateY(-1turn); + -webkit-animation-timing-function: ease-out; + animation-timing-function: ease-out; } + 40% { + -webkit-transform: perspective(400px) translateZ(150px) rotateY(-190deg); + transform: perspective(400px) translateZ(150px) rotateY(-190deg); + -webkit-animation-timing-function: ease-out; + animation-timing-function: ease-out; } + 50% { + -webkit-transform: perspective(400px) translateZ(150px) rotateY(-170deg); + transform: perspective(400px) translateZ(150px) rotateY(-170deg); + -webkit-animation-timing-function: ease-in; + animation-timing-function: ease-in; } + 80% { + -webkit-transform: perspective(400px) scale3d(0.95, 0.95, 0.95); + transform: perspective(400px) scale3d(0.95, 0.95, 0.95); + -webkit-animation-timing-function: ease-in; + animation-timing-function: ease-in; } + to { + -webkit-transform: perspective(400px); + transform: perspective(400px); + -webkit-animation-timing-function: ease-in; + animation-timing-function: ease-in; } } + +@-webkit-keyframes flipInX { + 0% { + -webkit-transform: perspective(400px) rotateX(90deg); + transform: perspective(400px) rotateX(90deg); + -webkit-animation-timing-function: ease-in; + animation-timing-function: ease-in; + opacity: 0; } + 40% { + -webkit-transform: perspective(400px) rotateX(-20deg); + transform: perspective(400px) rotateX(-20deg); + -webkit-animation-timing-function: ease-in; + animation-timing-function: ease-in; } + 60% { + -webkit-transform: perspective(400px) rotateX(10deg); + transform: perspective(400px) rotateX(10deg); + opacity: 1; } + 80% { + -webkit-transform: perspective(400px) rotateX(-5deg); + transform: perspective(400px) rotateX(-5deg); } + to { + -webkit-transform: perspective(400px); + transform: perspective(400px); } } + +@keyframes flipInX { + 0% { + -webkit-transform: perspective(400px) rotateX(90deg); + transform: perspective(400px) rotateX(90deg); + -webkit-animation-timing-function: ease-in; + animation-timing-function: ease-in; + opacity: 0; } + 40% { + -webkit-transform: perspective(400px) rotateX(-20deg); + transform: perspective(400px) rotateX(-20deg); + -webkit-animation-timing-function: ease-in; + animation-timing-function: ease-in; } + 60% { + -webkit-transform: perspective(400px) rotateX(10deg); + transform: perspective(400px) rotateX(10deg); + opacity: 1; } + 80% { + -webkit-transform: perspective(400px) rotateX(-5deg); + transform: perspective(400px) rotateX(-5deg); } + to { + -webkit-transform: perspective(400px); + transform: perspective(400px); } } + +.flipInX { + -webkit-backface-visibility: visible !important; + backface-visibility: visible !important; + -webkit-animation-name: flipInX; + animation-name: flipInX; } + +@-webkit-keyframes flipInY { + 0% { + -webkit-transform: perspective(400px) rotateY(90deg); + transform: perspective(400px) rotateY(90deg); + -webkit-animation-timing-function: ease-in; + animation-timing-function: ease-in; + opacity: 0; } + 40% { + -webkit-transform: perspective(400px) rotateY(-20deg); + transform: perspective(400px) rotateY(-20deg); + -webkit-animation-timing-function: ease-in; + animation-timing-function: ease-in; } + 60% { + -webkit-transform: perspective(400px) rotateY(10deg); + transform: perspective(400px) rotateY(10deg); + opacity: 1; } + 80% { + -webkit-transform: perspective(400px) rotateY(-5deg); + transform: perspective(400px) rotateY(-5deg); } + to { + -webkit-transform: perspective(400px); + transform: perspective(400px); } } + +@keyframes flipInY { + 0% { + -webkit-transform: perspective(400px) rotateY(90deg); + transform: perspective(400px) rotateY(90deg); + -webkit-animation-timing-function: ease-in; + animation-timing-function: ease-in; + opacity: 0; } + 40% { + -webkit-transform: perspective(400px) rotateY(-20deg); + transform: perspective(400px) rotateY(-20deg); + -webkit-animation-timing-function: ease-in; + animation-timing-function: ease-in; } + 60% { + -webkit-transform: perspective(400px) rotateY(10deg); + transform: perspective(400px) rotateY(10deg); + opacity: 1; } + 80% { + -webkit-transform: perspective(400px) rotateY(-5deg); + transform: perspective(400px) rotateY(-5deg); } + to { + -webkit-transform: perspective(400px); + transform: perspective(400px); } } + +.flipInY { + -webkit-backface-visibility: visible !important; + backface-visibility: visible !important; + -webkit-animation-name: flipInY; + animation-name: flipInY; } + +@-webkit-keyframes flipOutX { + 0% { + -webkit-transform: perspective(400px); + transform: perspective(400px); } + 30% { + -webkit-transform: perspective(400px) rotateX(-20deg); + transform: perspective(400px) rotateX(-20deg); + opacity: 1; } + to { + -webkit-transform: perspective(400px) rotateX(90deg); + transform: perspective(400px) rotateX(90deg); + opacity: 0; } } + +@keyframes flipOutX { + 0% { + -webkit-transform: perspective(400px); + transform: perspective(400px); } + 30% { + -webkit-transform: perspective(400px) rotateX(-20deg); + transform: perspective(400px) rotateX(-20deg); + opacity: 1; } + to { + -webkit-transform: perspective(400px) rotateX(90deg); + transform: perspective(400px) rotateX(90deg); + opacity: 0; } } + +.flipOutX { + -webkit-animation-name: flipOutX; + animation-name: flipOutX; + -webkit-backface-visibility: visible !important; + backface-visibility: visible !important; } + +@-webkit-keyframes flipOutY { + 0% { + -webkit-transform: perspective(400px); + transform: perspective(400px); } + 30% { + -webkit-transform: perspective(400px) rotateY(-15deg); + transform: perspective(400px) rotateY(-15deg); + opacity: 1; } + to { + -webkit-transform: perspective(400px) rotateY(90deg); + transform: perspective(400px) rotateY(90deg); + opacity: 0; } } + +@keyframes flipOutY { + 0% { + -webkit-transform: perspective(400px); + transform: perspective(400px); } + 30% { + -webkit-transform: perspective(400px) rotateY(-15deg); + transform: perspective(400px) rotateY(-15deg); + opacity: 1; } + to { + -webkit-transform: perspective(400px) rotateY(90deg); + transform: perspective(400px) rotateY(90deg); + opacity: 0; } } + +.flipOutY { + -webkit-backface-visibility: visible !important; + backface-visibility: visible !important; + -webkit-animation-name: flipOutY; + animation-name: flipOutY; } + +@-webkit-keyframes lightSpeedIn { + 0% { + -webkit-transform: translate3d(100%, 0, 0) skewX(-30deg); + transform: translate3d(100%, 0, 0) skewX(-30deg); + opacity: 0; } + 60% { + -webkit-transform: skewX(20deg); + transform: skewX(20deg); + opacity: 1; } + 80% { + -webkit-transform: skewX(-5deg); + transform: skewX(-5deg); + opacity: 1; } + to { + -webkit-transform: none; + transform: none; + opacity: 1; } } + +@keyframes lightSpeedIn { + 0% { + -webkit-transform: translate3d(100%, 0, 0) skewX(-30deg); + transform: translate3d(100%, 0, 0) skewX(-30deg); + opacity: 0; } + 60% { + -webkit-transform: skewX(20deg); + transform: skewX(20deg); + opacity: 1; } + 80% { + -webkit-transform: skewX(-5deg); + transform: skewX(-5deg); + opacity: 1; } + to { + -webkit-transform: none; + transform: none; + opacity: 1; } } + +.lightSpeedIn { + -webkit-animation-name: lightSpeedIn; + animation-name: lightSpeedIn; + -webkit-animation-timing-function: ease-out; + animation-timing-function: ease-out; } + +@-webkit-keyframes lightSpeedOut { + 0% { + opacity: 1; } + to { + -webkit-transform: translate3d(100%, 0, 0) skewX(30deg); + transform: translate3d(100%, 0, 0) skewX(30deg); + opacity: 0; } } + +@keyframes lightSpeedOut { + 0% { + opacity: 1; } + to { + -webkit-transform: translate3d(100%, 0, 0) skewX(30deg); + transform: translate3d(100%, 0, 0) skewX(30deg); + opacity: 0; } } + +.lightSpeedOut { + -webkit-animation-name: lightSpeedOut; + animation-name: lightSpeedOut; + -webkit-animation-timing-function: ease-in; + animation-timing-function: ease-in; } + +@-webkit-keyframes rotateIn { + 0% { + -webkit-transform-origin: center; + transform-origin: center; + -webkit-transform: rotate(-200deg); + transform: rotate(-200deg); + opacity: 0; } + to { + -webkit-transform-origin: center; + transform-origin: center; + -webkit-transform: none; + transform: none; + opacity: 1; } } + +@keyframes rotateIn { + 0% { + -webkit-transform-origin: center; + transform-origin: center; + -webkit-transform: rotate(-200deg); + transform: rotate(-200deg); + opacity: 0; } + to { + -webkit-transform-origin: center; + transform-origin: center; + -webkit-transform: none; + transform: none; + opacity: 1; } } + +.rotateIn { + -webkit-animation-name: rotateIn; + animation-name: rotateIn; } + +@-webkit-keyframes rotateInDownLeft { + 0% { + -webkit-transform-origin: left bottom; + transform-origin: left bottom; + -webkit-transform: rotate(-45deg); + transform: rotate(-45deg); + opacity: 0; } + to { + -webkit-transform-origin: left bottom; + transform-origin: left bottom; + -webkit-transform: none; + transform: none; + opacity: 1; } } + +@keyframes rotateInDownLeft { + 0% { + -webkit-transform-origin: left bottom; + transform-origin: left bottom; + -webkit-transform: rotate(-45deg); + transform: rotate(-45deg); + opacity: 0; } + to { + -webkit-transform-origin: left bottom; + transform-origin: left bottom; + -webkit-transform: none; + transform: none; + opacity: 1; } } + +.rotateInDownLeft { + -webkit-animation-name: rotateInDownLeft; + animation-name: rotateInDownLeft; } + +@-webkit-keyframes rotateInDownRight { + 0% { + -webkit-transform-origin: right bottom; + transform-origin: right bottom; + -webkit-transform: rotate(45deg); + transform: rotate(45deg); + opacity: 0; } + to { + -webkit-transform-origin: right bottom; + transform-origin: right bottom; + -webkit-transform: none; + transform: none; + opacity: 1; } } + +@keyframes rotateInDownRight { + 0% { + -webkit-transform-origin: right bottom; + transform-origin: right bottom; + -webkit-transform: rotate(45deg); + transform: rotate(45deg); + opacity: 0; } + to { + -webkit-transform-origin: right bottom; + transform-origin: right bottom; + -webkit-transform: none; + transform: none; + opacity: 1; } } + +.rotateInDownRight { + -webkit-animation-name: rotateInDownRight; + animation-name: rotateInDownRight; } + +@-webkit-keyframes rotateInUpLeft { + 0% { + -webkit-transform-origin: left bottom; + transform-origin: left bottom; + -webkit-transform: rotate(45deg); + transform: rotate(45deg); + opacity: 0; } + to { + -webkit-transform-origin: left bottom; + transform-origin: left bottom; + -webkit-transform: none; + transform: none; + opacity: 1; } } + +@keyframes rotateInUpLeft { + 0% { + -webkit-transform-origin: left bottom; + transform-origin: left bottom; + -webkit-transform: rotate(45deg); + transform: rotate(45deg); + opacity: 0; } + to { + -webkit-transform-origin: left bottom; + transform-origin: left bottom; + -webkit-transform: none; + transform: none; + opacity: 1; } } + +.rotateInUpLeft { + -webkit-animation-name: rotateInUpLeft; + animation-name: rotateInUpLeft; } + +@-webkit-keyframes rotateInUpRight { + 0% { + -webkit-transform-origin: right bottom; + transform-origin: right bottom; + -webkit-transform: rotate(-90deg); + transform: rotate(-90deg); + opacity: 0; } + to { + -webkit-transform-origin: right bottom; + transform-origin: right bottom; + -webkit-transform: none; + transform: none; + opacity: 1; } } + +@keyframes rotateInUpRight { + 0% { + -webkit-transform-origin: right bottom; + transform-origin: right bottom; + -webkit-transform: rotate(-90deg); + transform: rotate(-90deg); + opacity: 0; } + to { + -webkit-transform-origin: right bottom; + transform-origin: right bottom; + -webkit-transform: none; + transform: none; + opacity: 1; } } + +.rotateInUpRight { + -webkit-animation-name: rotateInUpRight; + animation-name: rotateInUpRight; } + +@-webkit-keyframes rotateOut { + 0% { + -webkit-transform-origin: center; + transform-origin: center; + opacity: 1; } + to { + -webkit-transform-origin: center; + transform-origin: center; + -webkit-transform: rotate(200deg); + transform: rotate(200deg); + opacity: 0; } } + +@keyframes rotateOut { + 0% { + -webkit-transform-origin: center; + transform-origin: center; + opacity: 1; } + to { + -webkit-transform-origin: center; + transform-origin: center; + -webkit-transform: rotate(200deg); + transform: rotate(200deg); + opacity: 0; } } + +.rotateOut { + -webkit-animation-name: rotateOut; + animation-name: rotateOut; } + +@-webkit-keyframes rotateOutDownLeft { + 0% { + -webkit-transform-origin: left bottom; + transform-origin: left bottom; + opacity: 1; } + to { + -webkit-transform-origin: left bottom; + transform-origin: left bottom; + -webkit-transform: rotate(45deg); + transform: rotate(45deg); + opacity: 0; } } + +@keyframes rotateOutDownLeft { + 0% { + -webkit-transform-origin: left bottom; + transform-origin: left bottom; + opacity: 1; } + to { + -webkit-transform-origin: left bottom; + transform-origin: left bottom; + -webkit-transform: rotate(45deg); + transform: rotate(45deg); + opacity: 0; } } + +.rotateOutDownLeft { + -webkit-animation-name: rotateOutDownLeft; + animation-name: rotateOutDownLeft; } + +@-webkit-keyframes rotateOutDownRight { + 0% { + -webkit-transform-origin: right bottom; + transform-origin: right bottom; + opacity: 1; } + to { + -webkit-transform-origin: right bottom; + transform-origin: right bottom; + -webkit-transform: rotate(-45deg); + transform: rotate(-45deg); + opacity: 0; } } + +@keyframes rotateOutDownRight { + 0% { + -webkit-transform-origin: right bottom; + transform-origin: right bottom; + opacity: 1; } + to { + -webkit-transform-origin: right bottom; + transform-origin: right bottom; + -webkit-transform: rotate(-45deg); + transform: rotate(-45deg); + opacity: 0; } } + +.rotateOutDownRight { + -webkit-animation-name: rotateOutDownRight; + animation-name: rotateOutDownRight; } + +@-webkit-keyframes rotateOutUpLeft { + 0% { + -webkit-transform-origin: left bottom; + transform-origin: left bottom; + opacity: 1; } + to { + -webkit-transform-origin: left bottom; + transform-origin: left bottom; + -webkit-transform: rotate(-45deg); + transform: rotate(-45deg); + opacity: 0; } } + +@keyframes rotateOutUpLeft { + 0% { + -webkit-transform-origin: left bottom; + transform-origin: left bottom; + opacity: 1; } + to { + -webkit-transform-origin: left bottom; + transform-origin: left bottom; + -webkit-transform: rotate(-45deg); + transform: rotate(-45deg); + opacity: 0; } } + +.rotateOutUpLeft { + -webkit-animation-name: rotateOutUpLeft; + animation-name: rotateOutUpLeft; } + +@-webkit-keyframes rotateOutUpRight { + 0% { + -webkit-transform-origin: right bottom; + transform-origin: right bottom; + opacity: 1; } + to { + -webkit-transform-origin: right bottom; + transform-origin: right bottom; + -webkit-transform: rotate(90deg); + transform: rotate(90deg); + opacity: 0; } } + +@keyframes rotateOutUpRight { + 0% { + -webkit-transform-origin: right bottom; + transform-origin: right bottom; + opacity: 1; } + to { + -webkit-transform-origin: right bottom; + transform-origin: right bottom; + -webkit-transform: rotate(90deg); + transform: rotate(90deg); + opacity: 0; } } + +.rotateOutUpRight { + -webkit-animation-name: rotateOutUpRight; + animation-name: rotateOutUpRight; } + +@-webkit-keyframes hinge { + 0% { + -webkit-transform-origin: top left; + transform-origin: top left; + -webkit-animation-timing-function: ease-in-out; + animation-timing-function: ease-in-out; } + 20% { + -webkit-transform: rotate(80deg); + transform: rotate(80deg); + -webkit-transform-origin: top left; + transform-origin: top left; + -webkit-animation-timing-function: ease-in-out; + animation-timing-function: ease-in-out; } + 60% { + -webkit-transform: rotate(80deg); + transform: rotate(80deg); + -webkit-transform-origin: top left; + transform-origin: top left; + -webkit-animation-timing-function: ease-in-out; + animation-timing-function: ease-in-out; } + 40% { + -webkit-transform: rotate(60deg); + transform: rotate(60deg); + -webkit-transform-origin: top left; + transform-origin: top left; + -webkit-animation-timing-function: ease-in-out; + animation-timing-function: ease-in-out; + opacity: 1; } + 80% { + -webkit-transform: rotate(60deg); + transform: rotate(60deg); + -webkit-transform-origin: top left; + transform-origin: top left; + -webkit-animation-timing-function: ease-in-out; + animation-timing-function: ease-in-out; + opacity: 1; } + to { + -webkit-transform: translate3d(0, 700px, 0); + transform: translate3d(0, 700px, 0); + opacity: 0; } } + +@keyframes hinge { + 0% { + -webkit-transform-origin: top left; + transform-origin: top left; + -webkit-animation-timing-function: ease-in-out; + animation-timing-function: ease-in-out; } + 20% { + -webkit-transform: rotate(80deg); + transform: rotate(80deg); + -webkit-transform-origin: top left; + transform-origin: top left; + -webkit-animation-timing-function: ease-in-out; + animation-timing-function: ease-in-out; } + 60% { + -webkit-transform: rotate(80deg); + transform: rotate(80deg); + -webkit-transform-origin: top left; + transform-origin: top left; + -webkit-animation-timing-function: ease-in-out; + animation-timing-function: ease-in-out; } + 40% { + -webkit-transform: rotate(60deg); + transform: rotate(60deg); + -webkit-transform-origin: top left; + transform-origin: top left; + -webkit-animation-timing-function: ease-in-out; + animation-timing-function: ease-in-out; + opacity: 1; } + 80% { + -webkit-transform: rotate(60deg); + transform: rotate(60deg); + -webkit-transform-origin: top left; + transform-origin: top left; + -webkit-animation-timing-function: ease-in-out; + animation-timing-function: ease-in-out; + opacity: 1; } + to { + -webkit-transform: translate3d(0, 700px, 0); + transform: translate3d(0, 700px, 0); + opacity: 0; } } + +.hinge { + -webkit-animation-name: hinge; + animation-name: hinge; } + +@-webkit-keyframes jackInTheBox { + 0% { + opacity: 0; + -webkit-transform: scale(0.1) rotate(30deg); + transform: scale(0.1) rotate(30deg); + -webkit-transform-origin: center bottom; + transform-origin: center bottom; } + 50% { + -webkit-transform: rotate(-10deg); + transform: rotate(-10deg); } + 70% { + -webkit-transform: rotate(3deg); + transform: rotate(3deg); } + to { + opacity: 1; + -webkit-transform: scale(1); + transform: scale(1); } } + +@keyframes jackInTheBox { + 0% { + opacity: 0; + -webkit-transform: scale(0.1) rotate(30deg); + transform: scale(0.1) rotate(30deg); + -webkit-transform-origin: center bottom; + transform-origin: center bottom; } + 50% { + -webkit-transform: rotate(-10deg); + transform: rotate(-10deg); } + 70% { + -webkit-transform: rotate(3deg); + transform: rotate(3deg); } + to { + opacity: 1; + -webkit-transform: scale(1); + transform: scale(1); } } + +.jackInTheBox { + -webkit-animation-name: jackInTheBox; + animation-name: jackInTheBox; } + +@-webkit-keyframes rollIn { + 0% { + opacity: 0; + -webkit-transform: translate3d(-100%, 0, 0) rotate(-120deg); + transform: translate3d(-100%, 0, 0) rotate(-120deg); } + to { + opacity: 1; + -webkit-transform: none; + transform: none; } } + +@keyframes rollIn { + 0% { + opacity: 0; + -webkit-transform: translate3d(-100%, 0, 0) rotate(-120deg); + transform: translate3d(-100%, 0, 0) rotate(-120deg); } + to { + opacity: 1; + -webkit-transform: none; + transform: none; } } + +.rollIn { + -webkit-animation-name: rollIn; + animation-name: rollIn; } + +@-webkit-keyframes rollOut { + 0% { + opacity: 1; } + to { + opacity: 0; + -webkit-transform: translate3d(100%, 0, 0) rotate(120deg); + transform: translate3d(100%, 0, 0) rotate(120deg); } } + +@keyframes rollOut { + 0% { + opacity: 1; } + to { + opacity: 0; + -webkit-transform: translate3d(100%, 0, 0) rotate(120deg); + transform: translate3d(100%, 0, 0) rotate(120deg); } } + +.rollOut { + -webkit-animation-name: rollOut; + animation-name: rollOut; } + +@-webkit-keyframes zoomIn { + 0% { + opacity: 0; + -webkit-transform: scale3d(0.3, 0.3, 0.3); + transform: scale3d(0.3, 0.3, 0.3); } + 50% { + opacity: 1; } } + +@keyframes zoomIn { + 0% { + opacity: 0; + -webkit-transform: scale3d(0.3, 0.3, 0.3); + transform: scale3d(0.3, 0.3, 0.3); } + 50% { + opacity: 1; } } + +.zoomIn { + -webkit-animation-name: zoomIn; + animation-name: zoomIn; } + +@-webkit-keyframes zoomInDown { + 0% { + opacity: 0; + -webkit-transform: scale3d(0.1, 0.1, 0.1) translate3d(0, -1000px, 0); + transform: scale3d(0.1, 0.1, 0.1) translate3d(0, -1000px, 0); + -webkit-animation-timing-function: cubic-bezier(0.55, 0.055, 0.675, 0.19); + animation-timing-function: cubic-bezier(0.55, 0.055, 0.675, 0.19); } + 60% { + opacity: 1; + -webkit-transform: scale3d(0.475, 0.475, 0.475) translate3d(0, 60px, 0); + transform: scale3d(0.475, 0.475, 0.475) translate3d(0, 60px, 0); + -webkit-animation-timing-function: cubic-bezier(0.175, 0.885, 0.32, 1); + animation-timing-function: cubic-bezier(0.175, 0.885, 0.32, 1); } } + +@keyframes zoomInDown { + 0% { + opacity: 0; + -webkit-transform: scale3d(0.1, 0.1, 0.1) translate3d(0, -1000px, 0); + transform: scale3d(0.1, 0.1, 0.1) translate3d(0, -1000px, 0); + -webkit-animation-timing-function: cubic-bezier(0.55, 0.055, 0.675, 0.19); + animation-timing-function: cubic-bezier(0.55, 0.055, 0.675, 0.19); } + 60% { + opacity: 1; + -webkit-transform: scale3d(0.475, 0.475, 0.475) translate3d(0, 60px, 0); + transform: scale3d(0.475, 0.475, 0.475) translate3d(0, 60px, 0); + -webkit-animation-timing-function: cubic-bezier(0.175, 0.885, 0.32, 1); + animation-timing-function: cubic-bezier(0.175, 0.885, 0.32, 1); } } + +.zoomInDown { + -webkit-animation-name: zoomInDown; + animation-name: zoomInDown; } + +@-webkit-keyframes zoomInLeft { + 0% { + opacity: 0; + -webkit-transform: scale3d(0.1, 0.1, 0.1) translate3d(-1000px, 0, 0); + transform: scale3d(0.1, 0.1, 0.1) translate3d(-1000px, 0, 0); + -webkit-animation-timing-function: cubic-bezier(0.55, 0.055, 0.675, 0.19); + animation-timing-function: cubic-bezier(0.55, 0.055, 0.675, 0.19); } + 60% { + opacity: 1; + -webkit-transform: scale3d(0.475, 0.475, 0.475) translate3d(10px, 0, 0); + transform: scale3d(0.475, 0.475, 0.475) translate3d(10px, 0, 0); + -webkit-animation-timing-function: cubic-bezier(0.175, 0.885, 0.32, 1); + animation-timing-function: cubic-bezier(0.175, 0.885, 0.32, 1); } } + +@keyframes zoomInLeft { + 0% { + opacity: 0; + -webkit-transform: scale3d(0.1, 0.1, 0.1) translate3d(-1000px, 0, 0); + transform: scale3d(0.1, 0.1, 0.1) translate3d(-1000px, 0, 0); + -webkit-animation-timing-function: cubic-bezier(0.55, 0.055, 0.675, 0.19); + animation-timing-function: cubic-bezier(0.55, 0.055, 0.675, 0.19); } + 60% { + opacity: 1; + -webkit-transform: scale3d(0.475, 0.475, 0.475) translate3d(10px, 0, 0); + transform: scale3d(0.475, 0.475, 0.475) translate3d(10px, 0, 0); + -webkit-animation-timing-function: cubic-bezier(0.175, 0.885, 0.32, 1); + animation-timing-function: cubic-bezier(0.175, 0.885, 0.32, 1); } } + +.zoomInLeft { + -webkit-animation-name: zoomInLeft; + animation-name: zoomInLeft; } + +@-webkit-keyframes zoomInRight { + 0% { + opacity: 0; + -webkit-transform: scale3d(0.1, 0.1, 0.1) translate3d(1000px, 0, 0); + transform: scale3d(0.1, 0.1, 0.1) translate3d(1000px, 0, 0); + -webkit-animation-timing-function: cubic-bezier(0.55, 0.055, 0.675, 0.19); + animation-timing-function: cubic-bezier(0.55, 0.055, 0.675, 0.19); } + 60% { + opacity: 1; + -webkit-transform: scale3d(0.475, 0.475, 0.475) translate3d(-10px, 0, 0); + transform: scale3d(0.475, 0.475, 0.475) translate3d(-10px, 0, 0); + -webkit-animation-timing-function: cubic-bezier(0.175, 0.885, 0.32, 1); + animation-timing-function: cubic-bezier(0.175, 0.885, 0.32, 1); } } + +@keyframes zoomInRight { + 0% { + opacity: 0; + -webkit-transform: scale3d(0.1, 0.1, 0.1) translate3d(1000px, 0, 0); + transform: scale3d(0.1, 0.1, 0.1) translate3d(1000px, 0, 0); + -webkit-animation-timing-function: cubic-bezier(0.55, 0.055, 0.675, 0.19); + animation-timing-function: cubic-bezier(0.55, 0.055, 0.675, 0.19); } + 60% { + opacity: 1; + -webkit-transform: scale3d(0.475, 0.475, 0.475) translate3d(-10px, 0, 0); + transform: scale3d(0.475, 0.475, 0.475) translate3d(-10px, 0, 0); + -webkit-animation-timing-function: cubic-bezier(0.175, 0.885, 0.32, 1); + animation-timing-function: cubic-bezier(0.175, 0.885, 0.32, 1); } } + +.zoomInRight { + -webkit-animation-name: zoomInRight; + animation-name: zoomInRight; } + +@-webkit-keyframes zoomInUp { + 0% { + opacity: 0; + -webkit-transform: scale3d(0.1, 0.1, 0.1) translate3d(0, 1000px, 0); + transform: scale3d(0.1, 0.1, 0.1) translate3d(0, 1000px, 0); + -webkit-animation-timing-function: cubic-bezier(0.55, 0.055, 0.675, 0.19); + animation-timing-function: cubic-bezier(0.55, 0.055, 0.675, 0.19); } + 60% { + opacity: 1; + -webkit-transform: scale3d(0.475, 0.475, 0.475) translate3d(0, -60px, 0); + transform: scale3d(0.475, 0.475, 0.475) translate3d(0, -60px, 0); + -webkit-animation-timing-function: cubic-bezier(0.175, 0.885, 0.32, 1); + animation-timing-function: cubic-bezier(0.175, 0.885, 0.32, 1); } } + +@keyframes zoomInUp { + 0% { + opacity: 0; + -webkit-transform: scale3d(0.1, 0.1, 0.1) translate3d(0, 1000px, 0); + transform: scale3d(0.1, 0.1, 0.1) translate3d(0, 1000px, 0); + -webkit-animation-timing-function: cubic-bezier(0.55, 0.055, 0.675, 0.19); + animation-timing-function: cubic-bezier(0.55, 0.055, 0.675, 0.19); } + 60% { + opacity: 1; + -webkit-transform: scale3d(0.475, 0.475, 0.475) translate3d(0, -60px, 0); + transform: scale3d(0.475, 0.475, 0.475) translate3d(0, -60px, 0); + -webkit-animation-timing-function: cubic-bezier(0.175, 0.885, 0.32, 1); + animation-timing-function: cubic-bezier(0.175, 0.885, 0.32, 1); } } + +.zoomInUp { + -webkit-animation-name: zoomInUp; + animation-name: zoomInUp; } + +@-webkit-keyframes zoomOut { + 0% { + opacity: 1; } + 50% { + opacity: 0; + -webkit-transform: scale3d(0.3, 0.3, 0.3); + transform: scale3d(0.3, 0.3, 0.3); } + to { + opacity: 0; } } + +@keyframes zoomOut { + 0% { + opacity: 1; } + 50% { + opacity: 0; + -webkit-transform: scale3d(0.3, 0.3, 0.3); + transform: scale3d(0.3, 0.3, 0.3); } + to { + opacity: 0; } } + +.zoomOut { + -webkit-animation-name: zoomOut; + animation-name: zoomOut; } + +@-webkit-keyframes zoomOutDown { + 40% { + opacity: 1; + -webkit-transform: scale3d(0.475, 0.475, 0.475) translate3d(0, -60px, 0); + transform: scale3d(0.475, 0.475, 0.475) translate3d(0, -60px, 0); + -webkit-animation-timing-function: cubic-bezier(0.55, 0.055, 0.675, 0.19); + animation-timing-function: cubic-bezier(0.55, 0.055, 0.675, 0.19); } + to { + opacity: 0; + -webkit-transform: scale3d(0.1, 0.1, 0.1) translate3d(0, 2000px, 0); + transform: scale3d(0.1, 0.1, 0.1) translate3d(0, 2000px, 0); + -webkit-transform-origin: center bottom; + transform-origin: center bottom; + -webkit-animation-timing-function: cubic-bezier(0.175, 0.885, 0.32, 1); + animation-timing-function: cubic-bezier(0.175, 0.885, 0.32, 1); } } + +@keyframes zoomOutDown { + 40% { + opacity: 1; + -webkit-transform: scale3d(0.475, 0.475, 0.475) translate3d(0, -60px, 0); + transform: scale3d(0.475, 0.475, 0.475) translate3d(0, -60px, 0); + -webkit-animation-timing-function: cubic-bezier(0.55, 0.055, 0.675, 0.19); + animation-timing-function: cubic-bezier(0.55, 0.055, 0.675, 0.19); } + to { + opacity: 0; + -webkit-transform: scale3d(0.1, 0.1, 0.1) translate3d(0, 2000px, 0); + transform: scale3d(0.1, 0.1, 0.1) translate3d(0, 2000px, 0); + -webkit-transform-origin: center bottom; + transform-origin: center bottom; + -webkit-animation-timing-function: cubic-bezier(0.175, 0.885, 0.32, 1); + animation-timing-function: cubic-bezier(0.175, 0.885, 0.32, 1); } } + +.zoomOutDown { + -webkit-animation-name: zoomOutDown; + animation-name: zoomOutDown; } + +@-webkit-keyframes zoomOutLeft { + 40% { + opacity: 1; + -webkit-transform: scale3d(0.475, 0.475, 0.475) translate3d(42px, 0, 0); + transform: scale3d(0.475, 0.475, 0.475) translate3d(42px, 0, 0); } + to { + opacity: 0; + -webkit-transform: scale(0.1) translate3d(-2000px, 0, 0); + transform: scale(0.1) translate3d(-2000px, 0, 0); + -webkit-transform-origin: left center; + transform-origin: left center; } } + +@keyframes zoomOutLeft { + 40% { + opacity: 1; + -webkit-transform: scale3d(0.475, 0.475, 0.475) translate3d(42px, 0, 0); + transform: scale3d(0.475, 0.475, 0.475) translate3d(42px, 0, 0); } + to { + opacity: 0; + -webkit-transform: scale(0.1) translate3d(-2000px, 0, 0); + transform: scale(0.1) translate3d(-2000px, 0, 0); + -webkit-transform-origin: left center; + transform-origin: left center; } } + +.zoomOutLeft { + -webkit-animation-name: zoomOutLeft; + animation-name: zoomOutLeft; } + +@-webkit-keyframes zoomOutRight { + 40% { + opacity: 1; + -webkit-transform: scale3d(0.475, 0.475, 0.475) translate3d(-42px, 0, 0); + transform: scale3d(0.475, 0.475, 0.475) translate3d(-42px, 0, 0); } + to { + opacity: 0; + -webkit-transform: scale(0.1) translate3d(2000px, 0, 0); + transform: scale(0.1) translate3d(2000px, 0, 0); + -webkit-transform-origin: right center; + transform-origin: right center; } } + +@keyframes zoomOutRight { + 40% { + opacity: 1; + -webkit-transform: scale3d(0.475, 0.475, 0.475) translate3d(-42px, 0, 0); + transform: scale3d(0.475, 0.475, 0.475) translate3d(-42px, 0, 0); } + to { + opacity: 0; + -webkit-transform: scale(0.1) translate3d(2000px, 0, 0); + transform: scale(0.1) translate3d(2000px, 0, 0); + -webkit-transform-origin: right center; + transform-origin: right center; } } + +.zoomOutRight { + -webkit-animation-name: zoomOutRight; + animation-name: zoomOutRight; } + +@-webkit-keyframes zoomOutUp { + 40% { + opacity: 1; + -webkit-transform: scale3d(0.475, 0.475, 0.475) translate3d(0, 60px, 0); + transform: scale3d(0.475, 0.475, 0.475) translate3d(0, 60px, 0); + -webkit-animation-timing-function: cubic-bezier(0.55, 0.055, 0.675, 0.19); + animation-timing-function: cubic-bezier(0.55, 0.055, 0.675, 0.19); } + to { + opacity: 0; + -webkit-transform: scale3d(0.1, 0.1, 0.1) translate3d(0, -2000px, 0); + transform: scale3d(0.1, 0.1, 0.1) translate3d(0, -2000px, 0); + -webkit-transform-origin: center bottom; + transform-origin: center bottom; + -webkit-animation-timing-function: cubic-bezier(0.175, 0.885, 0.32, 1); + animation-timing-function: cubic-bezier(0.175, 0.885, 0.32, 1); } } + +@keyframes zoomOutUp { + 40% { + opacity: 1; + -webkit-transform: scale3d(0.475, 0.475, 0.475) translate3d(0, 60px, 0); + transform: scale3d(0.475, 0.475, 0.475) translate3d(0, 60px, 0); + -webkit-animation-timing-function: cubic-bezier(0.55, 0.055, 0.675, 0.19); + animation-timing-function: cubic-bezier(0.55, 0.055, 0.675, 0.19); } + to { + opacity: 0; + -webkit-transform: scale3d(0.1, 0.1, 0.1) translate3d(0, -2000px, 0); + transform: scale3d(0.1, 0.1, 0.1) translate3d(0, -2000px, 0); + -webkit-transform-origin: center bottom; + transform-origin: center bottom; + -webkit-animation-timing-function: cubic-bezier(0.175, 0.885, 0.32, 1); + animation-timing-function: cubic-bezier(0.175, 0.885, 0.32, 1); } } + +.zoomOutUp { + -webkit-animation-name: zoomOutUp; + animation-name: zoomOutUp; } + +@-webkit-keyframes slideInDown { + 0% { + -webkit-transform: translate3d(0, -100%, 0); + transform: translate3d(0, -100%, 0); + visibility: visible; } + to { + -webkit-transform: translateZ(0); + transform: translateZ(0); } } + +@keyframes slideInDown { + 0% { + -webkit-transform: translate3d(0, -100%, 0); + transform: translate3d(0, -100%, 0); + visibility: visible; } + to { + -webkit-transform: translateZ(0); + transform: translateZ(0); } } + +.slideInDown { + -webkit-animation-name: slideInDown; + animation-name: slideInDown; } + +@-webkit-keyframes slideInLeft { + 0% { + -webkit-transform: translate3d(-100%, 0, 0); + transform: translate3d(-100%, 0, 0); + visibility: visible; } + to { + -webkit-transform: translateZ(0); + transform: translateZ(0); } } + +@keyframes slideInLeft { + 0% { + -webkit-transform: translate3d(-100%, 0, 0); + transform: translate3d(-100%, 0, 0); + visibility: visible; } + to { + -webkit-transform: translateZ(0); + transform: translateZ(0); } } + +.slideInLeft { + -webkit-animation-name: slideInLeft; + animation-name: slideInLeft; } + +@-webkit-keyframes slideInRight { + 0% { + -webkit-transform: translate3d(100%, 0, 0); + transform: translate3d(100%, 0, 0); + visibility: visible; } + to { + -webkit-transform: translateZ(0); + transform: translateZ(0); } } + +@keyframes slideInRight { + 0% { + -webkit-transform: translate3d(100%, 0, 0); + transform: translate3d(100%, 0, 0); + visibility: visible; } + to { + -webkit-transform: translateZ(0); + transform: translateZ(0); } } + +.slideInRight { + -webkit-animation-name: slideInRight; + animation-name: slideInRight; } + +@-webkit-keyframes slideInUp { + 0% { + -webkit-transform: translate3d(0, 100%, 0); + transform: translate3d(0, 100%, 0); + visibility: visible; } + to { + -webkit-transform: translateZ(0); + transform: translateZ(0); } } + +@keyframes slideInUp { + 0% { + -webkit-transform: translate3d(0, 100%, 0); + transform: translate3d(0, 100%, 0); + visibility: visible; } + to { + -webkit-transform: translateZ(0); + transform: translateZ(0); } } + +.slideInUp { + -webkit-animation-name: slideInUp; + animation-name: slideInUp; } + +@-webkit-keyframes slideOutDown { + 0% { + -webkit-transform: translateZ(0); + transform: translateZ(0); } + to { + visibility: hidden; + -webkit-transform: translate3d(0, 100%, 0); + transform: translate3d(0, 100%, 0); } } + +@keyframes slideOutDown { + 0% { + -webkit-transform: translateZ(0); + transform: translateZ(0); } + to { + visibility: hidden; + -webkit-transform: translate3d(0, 100%, 0); + transform: translate3d(0, 100%, 0); } } + +.slideOutDown { + -webkit-animation-name: slideOutDown; + animation-name: slideOutDown; } + +@-webkit-keyframes slideOutLeft { + 0% { + -webkit-transform: translateZ(0); + transform: translateZ(0); } + to { + visibility: hidden; + -webkit-transform: translate3d(-100%, 0, 0); + transform: translate3d(-100%, 0, 0); } } + +@keyframes slideOutLeft { + 0% { + -webkit-transform: translateZ(0); + transform: translateZ(0); } + to { + visibility: hidden; + -webkit-transform: translate3d(-100%, 0, 0); + transform: translate3d(-100%, 0, 0); } } + +.slideOutLeft { + -webkit-animation-name: slideOutLeft; + animation-name: slideOutLeft; } + +@-webkit-keyframes slideOutRight { + 0% { + -webkit-transform: translateZ(0); + transform: translateZ(0); } + to { + visibility: hidden; + -webkit-transform: translate3d(100%, 0, 0); + transform: translate3d(100%, 0, 0); } } + +@keyframes slideOutRight { + 0% { + -webkit-transform: translateZ(0); + transform: translateZ(0); } + to { + visibility: hidden; + -webkit-transform: translate3d(100%, 0, 0); + transform: translate3d(100%, 0, 0); } } + +.slideOutRight { + -webkit-animation-name: slideOutRight; + animation-name: slideOutRight; } + +@-webkit-keyframes slideOutUp { + 0% { + -webkit-transform: translateZ(0); + transform: translateZ(0); } + to { + visibility: hidden; + -webkit-transform: translate3d(0, -100%, 0); + transform: translate3d(0, -100%, 0); } } + +@keyframes slideOutUp { + 0% { + -webkit-transform: translateZ(0); + transform: translateZ(0); } + to { + visibility: hidden; + -webkit-transform: translate3d(0, -100%, 0); + transform: translate3d(0, -100%, 0); } } + +.slideOutUp { + -webkit-animation-name: slideOutUp; + animation-name: slideOutUp; } diff --git a/public/admin/assets/css/aos.css b/public/admin/assets/css/aos.css new file mode 100644 index 0000000..929199f --- /dev/null +++ b/public/admin/assets/css/aos.css @@ -0,0 +1,912 @@ +body[data-aos-duration='50'] [data-aos], [data-aos][data-aos][data-aos-duration='50'] { + -webkit-transition-duration: 50ms; + transition-duration: 50ms; } + +body[data-aos-delay='50'] [data-aos], [data-aos][data-aos][data-aos-delay='50'] { + -webkit-transition-delay: 0; + transition-delay: 0; } + body[data-aos-delay='50'] [data-aos].aos-animate, [data-aos][data-aos][data-aos-delay='50'].aos-animate { + -webkit-transition-delay: 50ms; + transition-delay: 50ms; } + +body[data-aos-duration='100'] [data-aos], [data-aos][data-aos][data-aos-duration='100'] { + -webkit-transition-duration: 100ms; + transition-duration: 100ms; } + +body[data-aos-delay='100'] [data-aos], [data-aos][data-aos][data-aos-delay='100'] { + -webkit-transition-delay: 0; + transition-delay: 0; } + body[data-aos-delay='100'] [data-aos].aos-animate, [data-aos][data-aos][data-aos-delay='100'].aos-animate { + -webkit-transition-delay: 100ms; + transition-delay: 100ms; } + +body[data-aos-duration='150'] [data-aos], [data-aos][data-aos][data-aos-duration='150'] { + -webkit-transition-duration: 150ms; + transition-duration: 150ms; } + +body[data-aos-delay='150'] [data-aos], [data-aos][data-aos][data-aos-delay='150'] { + -webkit-transition-delay: 0; + transition-delay: 0; } + body[data-aos-delay='150'] [data-aos].aos-animate, [data-aos][data-aos][data-aos-delay='150'].aos-animate { + -webkit-transition-delay: 150ms; + transition-delay: 150ms; } + +body[data-aos-duration='200'] [data-aos], [data-aos][data-aos][data-aos-duration='200'] { + -webkit-transition-duration: 200ms; + transition-duration: 200ms; } + +body[data-aos-delay='200'] [data-aos], [data-aos][data-aos][data-aos-delay='200'] { + -webkit-transition-delay: 0; + transition-delay: 0; } + body[data-aos-delay='200'] [data-aos].aos-animate, [data-aos][data-aos][data-aos-delay='200'].aos-animate { + -webkit-transition-delay: 200ms; + transition-delay: 200ms; } + +body[data-aos-duration='250'] [data-aos], [data-aos][data-aos][data-aos-duration='250'] { + -webkit-transition-duration: 250ms; + transition-duration: 250ms; } + +body[data-aos-delay='250'] [data-aos], [data-aos][data-aos][data-aos-delay='250'] { + -webkit-transition-delay: 0; + transition-delay: 0; } + body[data-aos-delay='250'] [data-aos].aos-animate, [data-aos][data-aos][data-aos-delay='250'].aos-animate { + -webkit-transition-delay: 250ms; + transition-delay: 250ms; } + +body[data-aos-duration='300'] [data-aos], [data-aos][data-aos][data-aos-duration='300'] { + -webkit-transition-duration: 300ms; + transition-duration: 300ms; } + +body[data-aos-delay='300'] [data-aos], [data-aos][data-aos][data-aos-delay='300'] { + -webkit-transition-delay: 0; + transition-delay: 0; } + body[data-aos-delay='300'] [data-aos].aos-animate, [data-aos][data-aos][data-aos-delay='300'].aos-animate { + -webkit-transition-delay: 300ms; + transition-delay: 300ms; } + +body[data-aos-duration='350'] [data-aos], [data-aos][data-aos][data-aos-duration='350'] { + -webkit-transition-duration: 350ms; + transition-duration: 350ms; } + +body[data-aos-delay='350'] [data-aos], [data-aos][data-aos][data-aos-delay='350'] { + -webkit-transition-delay: 0; + transition-delay: 0; } + body[data-aos-delay='350'] [data-aos].aos-animate, [data-aos][data-aos][data-aos-delay='350'].aos-animate { + -webkit-transition-delay: 350ms; + transition-delay: 350ms; } + +body[data-aos-duration='400'] [data-aos], [data-aos][data-aos][data-aos-duration='400'] { + -webkit-transition-duration: 400ms; + transition-duration: 400ms; } + +body[data-aos-delay='400'] [data-aos], [data-aos][data-aos][data-aos-delay='400'] { + -webkit-transition-delay: 0; + transition-delay: 0; } + body[data-aos-delay='400'] [data-aos].aos-animate, [data-aos][data-aos][data-aos-delay='400'].aos-animate { + -webkit-transition-delay: 400ms; + transition-delay: 400ms; } + +body[data-aos-duration='450'] [data-aos], [data-aos][data-aos][data-aos-duration='450'] { + -webkit-transition-duration: 450ms; + transition-duration: 450ms; } + +body[data-aos-delay='450'] [data-aos], [data-aos][data-aos][data-aos-delay='450'] { + -webkit-transition-delay: 0; + transition-delay: 0; } + body[data-aos-delay='450'] [data-aos].aos-animate, [data-aos][data-aos][data-aos-delay='450'].aos-animate { + -webkit-transition-delay: 450ms; + transition-delay: 450ms; } + +body[data-aos-duration='500'] [data-aos], [data-aos][data-aos][data-aos-duration='500'] { + -webkit-transition-duration: 500ms; + transition-duration: 500ms; } + +body[data-aos-delay='500'] [data-aos], [data-aos][data-aos][data-aos-delay='500'] { + -webkit-transition-delay: 0; + transition-delay: 0; } + body[data-aos-delay='500'] [data-aos].aos-animate, [data-aos][data-aos][data-aos-delay='500'].aos-animate { + -webkit-transition-delay: 500ms; + transition-delay: 500ms; } + +body[data-aos-duration='550'] [data-aos], [data-aos][data-aos][data-aos-duration='550'] { + -webkit-transition-duration: 550ms; + transition-duration: 550ms; } + +body[data-aos-delay='550'] [data-aos], [data-aos][data-aos][data-aos-delay='550'] { + -webkit-transition-delay: 0; + transition-delay: 0; } + body[data-aos-delay='550'] [data-aos].aos-animate, [data-aos][data-aos][data-aos-delay='550'].aos-animate { + -webkit-transition-delay: 550ms; + transition-delay: 550ms; } + +body[data-aos-duration='600'] [data-aos], [data-aos][data-aos][data-aos-duration='600'] { + -webkit-transition-duration: 600ms; + transition-duration: 600ms; } + +body[data-aos-delay='600'] [data-aos], [data-aos][data-aos][data-aos-delay='600'] { + -webkit-transition-delay: 0; + transition-delay: 0; } + body[data-aos-delay='600'] [data-aos].aos-animate, [data-aos][data-aos][data-aos-delay='600'].aos-animate { + -webkit-transition-delay: 600ms; + transition-delay: 600ms; } + +body[data-aos-duration='650'] [data-aos], [data-aos][data-aos][data-aos-duration='650'] { + -webkit-transition-duration: 650ms; + transition-duration: 650ms; } + +body[data-aos-delay='650'] [data-aos], [data-aos][data-aos][data-aos-delay='650'] { + -webkit-transition-delay: 0; + transition-delay: 0; } + body[data-aos-delay='650'] [data-aos].aos-animate, [data-aos][data-aos][data-aos-delay='650'].aos-animate { + -webkit-transition-delay: 650ms; + transition-delay: 650ms; } + +body[data-aos-duration='700'] [data-aos], [data-aos][data-aos][data-aos-duration='700'] { + -webkit-transition-duration: 700ms; + transition-duration: 700ms; } + +body[data-aos-delay='700'] [data-aos], [data-aos][data-aos][data-aos-delay='700'] { + -webkit-transition-delay: 0; + transition-delay: 0; } + body[data-aos-delay='700'] [data-aos].aos-animate, [data-aos][data-aos][data-aos-delay='700'].aos-animate { + -webkit-transition-delay: 700ms; + transition-delay: 700ms; } + +body[data-aos-duration='750'] [data-aos], [data-aos][data-aos][data-aos-duration='750'] { + -webkit-transition-duration: 750ms; + transition-duration: 750ms; } + +body[data-aos-delay='750'] [data-aos], [data-aos][data-aos][data-aos-delay='750'] { + -webkit-transition-delay: 0; + transition-delay: 0; } + body[data-aos-delay='750'] [data-aos].aos-animate, [data-aos][data-aos][data-aos-delay='750'].aos-animate { + -webkit-transition-delay: 750ms; + transition-delay: 750ms; } + +body[data-aos-duration='800'] [data-aos], [data-aos][data-aos][data-aos-duration='800'] { + -webkit-transition-duration: 800ms; + transition-duration: 800ms; } + +body[data-aos-delay='800'] [data-aos], [data-aos][data-aos][data-aos-delay='800'] { + -webkit-transition-delay: 0; + transition-delay: 0; } + body[data-aos-delay='800'] [data-aos].aos-animate, [data-aos][data-aos][data-aos-delay='800'].aos-animate { + -webkit-transition-delay: 800ms; + transition-delay: 800ms; } + +body[data-aos-duration='850'] [data-aos], [data-aos][data-aos][data-aos-duration='850'] { + -webkit-transition-duration: 850ms; + transition-duration: 850ms; } + +body[data-aos-delay='850'] [data-aos], [data-aos][data-aos][data-aos-delay='850'] { + -webkit-transition-delay: 0; + transition-delay: 0; } + body[data-aos-delay='850'] [data-aos].aos-animate, [data-aos][data-aos][data-aos-delay='850'].aos-animate { + -webkit-transition-delay: 850ms; + transition-delay: 850ms; } + +body[data-aos-duration='900'] [data-aos], [data-aos][data-aos][data-aos-duration='900'] { + -webkit-transition-duration: 900ms; + transition-duration: 900ms; } + +body[data-aos-delay='900'] [data-aos], [data-aos][data-aos][data-aos-delay='900'] { + -webkit-transition-delay: 0; + transition-delay: 0; } + body[data-aos-delay='900'] [data-aos].aos-animate, [data-aos][data-aos][data-aos-delay='900'].aos-animate { + -webkit-transition-delay: 900ms; + transition-delay: 900ms; } + +body[data-aos-duration='950'] [data-aos], [data-aos][data-aos][data-aos-duration='950'] { + -webkit-transition-duration: 950ms; + transition-duration: 950ms; } + +body[data-aos-delay='950'] [data-aos], [data-aos][data-aos][data-aos-delay='950'] { + -webkit-transition-delay: 0; + transition-delay: 0; } + body[data-aos-delay='950'] [data-aos].aos-animate, [data-aos][data-aos][data-aos-delay='950'].aos-animate { + -webkit-transition-delay: 950ms; + transition-delay: 950ms; } + +body[data-aos-duration='1000'] [data-aos], [data-aos][data-aos][data-aos-duration='1000'] { + -webkit-transition-duration: 1000ms; + transition-duration: 1000ms; } + +body[data-aos-delay='1000'] [data-aos], [data-aos][data-aos][data-aos-delay='1000'] { + -webkit-transition-delay: 0; + transition-delay: 0; } + body[data-aos-delay='1000'] [data-aos].aos-animate, [data-aos][data-aos][data-aos-delay='1000'].aos-animate { + -webkit-transition-delay: 1000ms; + transition-delay: 1000ms; } + +body[data-aos-duration='1050'] [data-aos], [data-aos][data-aos][data-aos-duration='1050'] { + -webkit-transition-duration: 1050ms; + transition-duration: 1050ms; } + +body[data-aos-delay='1050'] [data-aos], [data-aos][data-aos][data-aos-delay='1050'] { + -webkit-transition-delay: 0; + transition-delay: 0; } + body[data-aos-delay='1050'] [data-aos].aos-animate, [data-aos][data-aos][data-aos-delay='1050'].aos-animate { + -webkit-transition-delay: 1050ms; + transition-delay: 1050ms; } + +body[data-aos-duration='1100'] [data-aos], [data-aos][data-aos][data-aos-duration='1100'] { + -webkit-transition-duration: 1100ms; + transition-duration: 1100ms; } + +body[data-aos-delay='1100'] [data-aos], [data-aos][data-aos][data-aos-delay='1100'] { + -webkit-transition-delay: 0; + transition-delay: 0; } + body[data-aos-delay='1100'] [data-aos].aos-animate, [data-aos][data-aos][data-aos-delay='1100'].aos-animate { + -webkit-transition-delay: 1100ms; + transition-delay: 1100ms; } + +body[data-aos-duration='1150'] [data-aos], [data-aos][data-aos][data-aos-duration='1150'] { + -webkit-transition-duration: 1150ms; + transition-duration: 1150ms; } + +body[data-aos-delay='1150'] [data-aos], [data-aos][data-aos][data-aos-delay='1150'] { + -webkit-transition-delay: 0; + transition-delay: 0; } + body[data-aos-delay='1150'] [data-aos].aos-animate, [data-aos][data-aos][data-aos-delay='1150'].aos-animate { + -webkit-transition-delay: 1150ms; + transition-delay: 1150ms; } + +body[data-aos-duration='1200'] [data-aos], [data-aos][data-aos][data-aos-duration='1200'] { + -webkit-transition-duration: 1200ms; + transition-duration: 1200ms; } + +body[data-aos-delay='1200'] [data-aos], [data-aos][data-aos][data-aos-delay='1200'] { + -webkit-transition-delay: 0; + transition-delay: 0; } + body[data-aos-delay='1200'] [data-aos].aos-animate, [data-aos][data-aos][data-aos-delay='1200'].aos-animate { + -webkit-transition-delay: 1200ms; + transition-delay: 1200ms; } + +body[data-aos-duration='1250'] [data-aos], [data-aos][data-aos][data-aos-duration='1250'] { + -webkit-transition-duration: 1250ms; + transition-duration: 1250ms; } + +body[data-aos-delay='1250'] [data-aos], [data-aos][data-aos][data-aos-delay='1250'] { + -webkit-transition-delay: 0; + transition-delay: 0; } + body[data-aos-delay='1250'] [data-aos].aos-animate, [data-aos][data-aos][data-aos-delay='1250'].aos-animate { + -webkit-transition-delay: 1250ms; + transition-delay: 1250ms; } + +body[data-aos-duration='1300'] [data-aos], [data-aos][data-aos][data-aos-duration='1300'] { + -webkit-transition-duration: 1300ms; + transition-duration: 1300ms; } + +body[data-aos-delay='1300'] [data-aos], [data-aos][data-aos][data-aos-delay='1300'] { + -webkit-transition-delay: 0; + transition-delay: 0; } + body[data-aos-delay='1300'] [data-aos].aos-animate, [data-aos][data-aos][data-aos-delay='1300'].aos-animate { + -webkit-transition-delay: 1300ms; + transition-delay: 1300ms; } + +body[data-aos-duration='1350'] [data-aos], [data-aos][data-aos][data-aos-duration='1350'] { + -webkit-transition-duration: 1350ms; + transition-duration: 1350ms; } + +body[data-aos-delay='1350'] [data-aos], [data-aos][data-aos][data-aos-delay='1350'] { + -webkit-transition-delay: 0; + transition-delay: 0; } + body[data-aos-delay='1350'] [data-aos].aos-animate, [data-aos][data-aos][data-aos-delay='1350'].aos-animate { + -webkit-transition-delay: 1350ms; + transition-delay: 1350ms; } + +body[data-aos-duration='1400'] [data-aos], [data-aos][data-aos][data-aos-duration='1400'] { + -webkit-transition-duration: 1400ms; + transition-duration: 1400ms; } + +body[data-aos-delay='1400'] [data-aos], [data-aos][data-aos][data-aos-delay='1400'] { + -webkit-transition-delay: 0; + transition-delay: 0; } + body[data-aos-delay='1400'] [data-aos].aos-animate, [data-aos][data-aos][data-aos-delay='1400'].aos-animate { + -webkit-transition-delay: 1400ms; + transition-delay: 1400ms; } + +body[data-aos-duration='1450'] [data-aos], [data-aos][data-aos][data-aos-duration='1450'] { + -webkit-transition-duration: 1450ms; + transition-duration: 1450ms; } + +body[data-aos-delay='1450'] [data-aos], [data-aos][data-aos][data-aos-delay='1450'] { + -webkit-transition-delay: 0; + transition-delay: 0; } + body[data-aos-delay='1450'] [data-aos].aos-animate, [data-aos][data-aos][data-aos-delay='1450'].aos-animate { + -webkit-transition-delay: 1450ms; + transition-delay: 1450ms; } + +body[data-aos-duration='1500'] [data-aos], [data-aos][data-aos][data-aos-duration='1500'] { + -webkit-transition-duration: 1500ms; + transition-duration: 1500ms; } + +body[data-aos-delay='1500'] [data-aos], [data-aos][data-aos][data-aos-delay='1500'] { + -webkit-transition-delay: 0; + transition-delay: 0; } + body[data-aos-delay='1500'] [data-aos].aos-animate, [data-aos][data-aos][data-aos-delay='1500'].aos-animate { + -webkit-transition-delay: 1500ms; + transition-delay: 1500ms; } + +body[data-aos-duration='1550'] [data-aos], [data-aos][data-aos][data-aos-duration='1550'] { + -webkit-transition-duration: 1550ms; + transition-duration: 1550ms; } + +body[data-aos-delay='1550'] [data-aos], [data-aos][data-aos][data-aos-delay='1550'] { + -webkit-transition-delay: 0; + transition-delay: 0; } + body[data-aos-delay='1550'] [data-aos].aos-animate, [data-aos][data-aos][data-aos-delay='1550'].aos-animate { + -webkit-transition-delay: 1550ms; + transition-delay: 1550ms; } + +body[data-aos-duration='1600'] [data-aos], [data-aos][data-aos][data-aos-duration='1600'] { + -webkit-transition-duration: 1600ms; + transition-duration: 1600ms; } + +body[data-aos-delay='1600'] [data-aos], [data-aos][data-aos][data-aos-delay='1600'] { + -webkit-transition-delay: 0; + transition-delay: 0; } + body[data-aos-delay='1600'] [data-aos].aos-animate, [data-aos][data-aos][data-aos-delay='1600'].aos-animate { + -webkit-transition-delay: 1600ms; + transition-delay: 1600ms; } + +body[data-aos-duration='1650'] [data-aos], [data-aos][data-aos][data-aos-duration='1650'] { + -webkit-transition-duration: 1650ms; + transition-duration: 1650ms; } + +body[data-aos-delay='1650'] [data-aos], [data-aos][data-aos][data-aos-delay='1650'] { + -webkit-transition-delay: 0; + transition-delay: 0; } + body[data-aos-delay='1650'] [data-aos].aos-animate, [data-aos][data-aos][data-aos-delay='1650'].aos-animate { + -webkit-transition-delay: 1650ms; + transition-delay: 1650ms; } + +body[data-aos-duration='1700'] [data-aos], [data-aos][data-aos][data-aos-duration='1700'] { + -webkit-transition-duration: 1700ms; + transition-duration: 1700ms; } + +body[data-aos-delay='1700'] [data-aos], [data-aos][data-aos][data-aos-delay='1700'] { + -webkit-transition-delay: 0; + transition-delay: 0; } + body[data-aos-delay='1700'] [data-aos].aos-animate, [data-aos][data-aos][data-aos-delay='1700'].aos-animate { + -webkit-transition-delay: 1700ms; + transition-delay: 1700ms; } + +body[data-aos-duration='1750'] [data-aos], [data-aos][data-aos][data-aos-duration='1750'] { + -webkit-transition-duration: 1750ms; + transition-duration: 1750ms; } + +body[data-aos-delay='1750'] [data-aos], [data-aos][data-aos][data-aos-delay='1750'] { + -webkit-transition-delay: 0; + transition-delay: 0; } + body[data-aos-delay='1750'] [data-aos].aos-animate, [data-aos][data-aos][data-aos-delay='1750'].aos-animate { + -webkit-transition-delay: 1750ms; + transition-delay: 1750ms; } + +body[data-aos-duration='1800'] [data-aos], [data-aos][data-aos][data-aos-duration='1800'] { + -webkit-transition-duration: 1800ms; + transition-duration: 1800ms; } + +body[data-aos-delay='1800'] [data-aos], [data-aos][data-aos][data-aos-delay='1800'] { + -webkit-transition-delay: 0; + transition-delay: 0; } + body[data-aos-delay='1800'] [data-aos].aos-animate, [data-aos][data-aos][data-aos-delay='1800'].aos-animate { + -webkit-transition-delay: 1800ms; + transition-delay: 1800ms; } + +body[data-aos-duration='1850'] [data-aos], [data-aos][data-aos][data-aos-duration='1850'] { + -webkit-transition-duration: 1850ms; + transition-duration: 1850ms; } + +body[data-aos-delay='1850'] [data-aos], [data-aos][data-aos][data-aos-delay='1850'] { + -webkit-transition-delay: 0; + transition-delay: 0; } + body[data-aos-delay='1850'] [data-aos].aos-animate, [data-aos][data-aos][data-aos-delay='1850'].aos-animate { + -webkit-transition-delay: 1850ms; + transition-delay: 1850ms; } + +body[data-aos-duration='1900'] [data-aos], [data-aos][data-aos][data-aos-duration='1900'] { + -webkit-transition-duration: 1900ms; + transition-duration: 1900ms; } + +body[data-aos-delay='1900'] [data-aos], [data-aos][data-aos][data-aos-delay='1900'] { + -webkit-transition-delay: 0; + transition-delay: 0; } + body[data-aos-delay='1900'] [data-aos].aos-animate, [data-aos][data-aos][data-aos-delay='1900'].aos-animate { + -webkit-transition-delay: 1900ms; + transition-delay: 1900ms; } + +body[data-aos-duration='1950'] [data-aos], [data-aos][data-aos][data-aos-duration='1950'] { + -webkit-transition-duration: 1950ms; + transition-duration: 1950ms; } + +body[data-aos-delay='1950'] [data-aos], [data-aos][data-aos][data-aos-delay='1950'] { + -webkit-transition-delay: 0; + transition-delay: 0; } + body[data-aos-delay='1950'] [data-aos].aos-animate, [data-aos][data-aos][data-aos-delay='1950'].aos-animate { + -webkit-transition-delay: 1950ms; + transition-delay: 1950ms; } + +body[data-aos-duration='2000'] [data-aos], [data-aos][data-aos][data-aos-duration='2000'] { + -webkit-transition-duration: 2000ms; + transition-duration: 2000ms; } + +body[data-aos-delay='2000'] [data-aos], [data-aos][data-aos][data-aos-delay='2000'] { + -webkit-transition-delay: 0; + transition-delay: 0; } + body[data-aos-delay='2000'] [data-aos].aos-animate, [data-aos][data-aos][data-aos-delay='2000'].aos-animate { + -webkit-transition-delay: 2000ms; + transition-delay: 2000ms; } + +body[data-aos-duration='2050'] [data-aos], [data-aos][data-aos][data-aos-duration='2050'] { + -webkit-transition-duration: 2050ms; + transition-duration: 2050ms; } + +body[data-aos-delay='2050'] [data-aos], [data-aos][data-aos][data-aos-delay='2050'] { + -webkit-transition-delay: 0; + transition-delay: 0; } + body[data-aos-delay='2050'] [data-aos].aos-animate, [data-aos][data-aos][data-aos-delay='2050'].aos-animate { + -webkit-transition-delay: 2050ms; + transition-delay: 2050ms; } + +body[data-aos-duration='2100'] [data-aos], [data-aos][data-aos][data-aos-duration='2100'] { + -webkit-transition-duration: 2100ms; + transition-duration: 2100ms; } + +body[data-aos-delay='2100'] [data-aos], [data-aos][data-aos][data-aos-delay='2100'] { + -webkit-transition-delay: 0; + transition-delay: 0; } + body[data-aos-delay='2100'] [data-aos].aos-animate, [data-aos][data-aos][data-aos-delay='2100'].aos-animate { + -webkit-transition-delay: 2100ms; + transition-delay: 2100ms; } + +body[data-aos-duration='2150'] [data-aos], [data-aos][data-aos][data-aos-duration='2150'] { + -webkit-transition-duration: 2150ms; + transition-duration: 2150ms; } + +body[data-aos-delay='2150'] [data-aos], [data-aos][data-aos][data-aos-delay='2150'] { + -webkit-transition-delay: 0; + transition-delay: 0; } + body[data-aos-delay='2150'] [data-aos].aos-animate, [data-aos][data-aos][data-aos-delay='2150'].aos-animate { + -webkit-transition-delay: 2150ms; + transition-delay: 2150ms; } + +body[data-aos-duration='2200'] [data-aos], [data-aos][data-aos][data-aos-duration='2200'] { + -webkit-transition-duration: 2200ms; + transition-duration: 2200ms; } + +body[data-aos-delay='2200'] [data-aos], [data-aos][data-aos][data-aos-delay='2200'] { + -webkit-transition-delay: 0; + transition-delay: 0; } + body[data-aos-delay='2200'] [data-aos].aos-animate, [data-aos][data-aos][data-aos-delay='2200'].aos-animate { + -webkit-transition-delay: 2200ms; + transition-delay: 2200ms; } + +body[data-aos-duration='2250'] [data-aos], [data-aos][data-aos][data-aos-duration='2250'] { + -webkit-transition-duration: 2250ms; + transition-duration: 2250ms; } + +body[data-aos-delay='2250'] [data-aos], [data-aos][data-aos][data-aos-delay='2250'] { + -webkit-transition-delay: 0; + transition-delay: 0; } + body[data-aos-delay='2250'] [data-aos].aos-animate, [data-aos][data-aos][data-aos-delay='2250'].aos-animate { + -webkit-transition-delay: 2250ms; + transition-delay: 2250ms; } + +body[data-aos-duration='2300'] [data-aos], [data-aos][data-aos][data-aos-duration='2300'] { + -webkit-transition-duration: 2300ms; + transition-duration: 2300ms; } + +body[data-aos-delay='2300'] [data-aos], [data-aos][data-aos][data-aos-delay='2300'] { + -webkit-transition-delay: 0; + transition-delay: 0; } + body[data-aos-delay='2300'] [data-aos].aos-animate, [data-aos][data-aos][data-aos-delay='2300'].aos-animate { + -webkit-transition-delay: 2300ms; + transition-delay: 2300ms; } + +body[data-aos-duration='2350'] [data-aos], [data-aos][data-aos][data-aos-duration='2350'] { + -webkit-transition-duration: 2350ms; + transition-duration: 2350ms; } + +body[data-aos-delay='2350'] [data-aos], [data-aos][data-aos][data-aos-delay='2350'] { + -webkit-transition-delay: 0; + transition-delay: 0; } + body[data-aos-delay='2350'] [data-aos].aos-animate, [data-aos][data-aos][data-aos-delay='2350'].aos-animate { + -webkit-transition-delay: 2350ms; + transition-delay: 2350ms; } + +body[data-aos-duration='2400'] [data-aos], [data-aos][data-aos][data-aos-duration='2400'] { + -webkit-transition-duration: 2400ms; + transition-duration: 2400ms; } + +body[data-aos-delay='2400'] [data-aos], [data-aos][data-aos][data-aos-delay='2400'] { + -webkit-transition-delay: 0; + transition-delay: 0; } + body[data-aos-delay='2400'] [data-aos].aos-animate, [data-aos][data-aos][data-aos-delay='2400'].aos-animate { + -webkit-transition-delay: 2400ms; + transition-delay: 2400ms; } + +body[data-aos-duration='2450'] [data-aos], [data-aos][data-aos][data-aos-duration='2450'] { + -webkit-transition-duration: 2450ms; + transition-duration: 2450ms; } + +body[data-aos-delay='2450'] [data-aos], [data-aos][data-aos][data-aos-delay='2450'] { + -webkit-transition-delay: 0; + transition-delay: 0; } + body[data-aos-delay='2450'] [data-aos].aos-animate, [data-aos][data-aos][data-aos-delay='2450'].aos-animate { + -webkit-transition-delay: 2450ms; + transition-delay: 2450ms; } + +body[data-aos-duration='2500'] [data-aos], [data-aos][data-aos][data-aos-duration='2500'] { + -webkit-transition-duration: 2500ms; + transition-duration: 2500ms; } + +body[data-aos-delay='2500'] [data-aos], [data-aos][data-aos][data-aos-delay='2500'] { + -webkit-transition-delay: 0; + transition-delay: 0; } + body[data-aos-delay='2500'] [data-aos].aos-animate, [data-aos][data-aos][data-aos-delay='2500'].aos-animate { + -webkit-transition-delay: 2500ms; + transition-delay: 2500ms; } + +body[data-aos-duration='2550'] [data-aos], [data-aos][data-aos][data-aos-duration='2550'] { + -webkit-transition-duration: 2550ms; + transition-duration: 2550ms; } + +body[data-aos-delay='2550'] [data-aos], [data-aos][data-aos][data-aos-delay='2550'] { + -webkit-transition-delay: 0; + transition-delay: 0; } + body[data-aos-delay='2550'] [data-aos].aos-animate, [data-aos][data-aos][data-aos-delay='2550'].aos-animate { + -webkit-transition-delay: 2550ms; + transition-delay: 2550ms; } + +body[data-aos-duration='2600'] [data-aos], [data-aos][data-aos][data-aos-duration='2600'] { + -webkit-transition-duration: 2600ms; + transition-duration: 2600ms; } + +body[data-aos-delay='2600'] [data-aos], [data-aos][data-aos][data-aos-delay='2600'] { + -webkit-transition-delay: 0; + transition-delay: 0; } + body[data-aos-delay='2600'] [data-aos].aos-animate, [data-aos][data-aos][data-aos-delay='2600'].aos-animate { + -webkit-transition-delay: 2600ms; + transition-delay: 2600ms; } + +body[data-aos-duration='2650'] [data-aos], [data-aos][data-aos][data-aos-duration='2650'] { + -webkit-transition-duration: 2650ms; + transition-duration: 2650ms; } + +body[data-aos-delay='2650'] [data-aos], [data-aos][data-aos][data-aos-delay='2650'] { + -webkit-transition-delay: 0; + transition-delay: 0; } + body[data-aos-delay='2650'] [data-aos].aos-animate, [data-aos][data-aos][data-aos-delay='2650'].aos-animate { + -webkit-transition-delay: 2650ms; + transition-delay: 2650ms; } + +body[data-aos-duration='2700'] [data-aos], [data-aos][data-aos][data-aos-duration='2700'] { + -webkit-transition-duration: 2700ms; + transition-duration: 2700ms; } + +body[data-aos-delay='2700'] [data-aos], [data-aos][data-aos][data-aos-delay='2700'] { + -webkit-transition-delay: 0; + transition-delay: 0; } + body[data-aos-delay='2700'] [data-aos].aos-animate, [data-aos][data-aos][data-aos-delay='2700'].aos-animate { + -webkit-transition-delay: 2700ms; + transition-delay: 2700ms; } + +body[data-aos-duration='2750'] [data-aos], [data-aos][data-aos][data-aos-duration='2750'] { + -webkit-transition-duration: 2750ms; + transition-duration: 2750ms; } + +body[data-aos-delay='2750'] [data-aos], [data-aos][data-aos][data-aos-delay='2750'] { + -webkit-transition-delay: 0; + transition-delay: 0; } + body[data-aos-delay='2750'] [data-aos].aos-animate, [data-aos][data-aos][data-aos-delay='2750'].aos-animate { + -webkit-transition-delay: 2750ms; + transition-delay: 2750ms; } + +body[data-aos-duration='2800'] [data-aos], [data-aos][data-aos][data-aos-duration='2800'] { + -webkit-transition-duration: 2800ms; + transition-duration: 2800ms; } + +body[data-aos-delay='2800'] [data-aos], [data-aos][data-aos][data-aos-delay='2800'] { + -webkit-transition-delay: 0; + transition-delay: 0; } + body[data-aos-delay='2800'] [data-aos].aos-animate, [data-aos][data-aos][data-aos-delay='2800'].aos-animate { + -webkit-transition-delay: 2800ms; + transition-delay: 2800ms; } + +body[data-aos-duration='2850'] [data-aos], [data-aos][data-aos][data-aos-duration='2850'] { + -webkit-transition-duration: 2850ms; + transition-duration: 2850ms; } + +body[data-aos-delay='2850'] [data-aos], [data-aos][data-aos][data-aos-delay='2850'] { + -webkit-transition-delay: 0; + transition-delay: 0; } + body[data-aos-delay='2850'] [data-aos].aos-animate, [data-aos][data-aos][data-aos-delay='2850'].aos-animate { + -webkit-transition-delay: 2850ms; + transition-delay: 2850ms; } + +body[data-aos-duration='2900'] [data-aos], [data-aos][data-aos][data-aos-duration='2900'] { + -webkit-transition-duration: 2900ms; + transition-duration: 2900ms; } + +body[data-aos-delay='2900'] [data-aos], [data-aos][data-aos][data-aos-delay='2900'] { + -webkit-transition-delay: 0; + transition-delay: 0; } + body[data-aos-delay='2900'] [data-aos].aos-animate, [data-aos][data-aos][data-aos-delay='2900'].aos-animate { + -webkit-transition-delay: 2900ms; + transition-delay: 2900ms; } + +body[data-aos-duration='2950'] [data-aos], [data-aos][data-aos][data-aos-duration='2950'] { + -webkit-transition-duration: 2950ms; + transition-duration: 2950ms; } + +body[data-aos-delay='2950'] [data-aos], [data-aos][data-aos][data-aos-delay='2950'] { + -webkit-transition-delay: 0; + transition-delay: 0; } + body[data-aos-delay='2950'] [data-aos].aos-animate, [data-aos][data-aos][data-aos-delay='2950'].aos-animate { + -webkit-transition-delay: 2950ms; + transition-delay: 2950ms; } + +body[data-aos-duration='3000'] [data-aos], [data-aos][data-aos][data-aos-duration='3000'] { + -webkit-transition-duration: 3000ms; + transition-duration: 3000ms; } + +body[data-aos-delay='3000'] [data-aos], [data-aos][data-aos][data-aos-delay='3000'] { + -webkit-transition-delay: 0; + transition-delay: 0; } + body[data-aos-delay='3000'] [data-aos].aos-animate, [data-aos][data-aos][data-aos-delay='3000'].aos-animate { + -webkit-transition-delay: 3000ms; + transition-delay: 3000ms; } + +body[data-aos-easing="linear"] [data-aos], [data-aos][data-aos][data-aos-easing="linear"] { + -webkit-transition-timing-function: cubic-bezier(0.25, 0.25, 0.75, 0.75); + transition-timing-function: cubic-bezier(0.25, 0.25, 0.75, 0.75); } + +body[data-aos-easing="ease"] [data-aos], [data-aos][data-aos][data-aos-easing="ease"] { + -webkit-transition-timing-function: cubic-bezier(0.25, 0.1, 0.25, 1); + transition-timing-function: cubic-bezier(0.25, 0.1, 0.25, 1); } + +body[data-aos-easing="ease-in"] [data-aos], [data-aos][data-aos][data-aos-easing="ease-in"] { + -webkit-transition-timing-function: cubic-bezier(0.42, 0, 1, 1); + transition-timing-function: cubic-bezier(0.42, 0, 1, 1); } + +body[data-aos-easing="ease-out"] [data-aos], [data-aos][data-aos][data-aos-easing="ease-out"] { + -webkit-transition-timing-function: cubic-bezier(0, 0, 0.58, 1); + transition-timing-function: cubic-bezier(0, 0, 0.58, 1); } + +body[data-aos-easing="ease-in-out"] [data-aos], [data-aos][data-aos][data-aos-easing="ease-in-out"] { + -webkit-transition-timing-function: cubic-bezier(0.42, 0, 0.58, 1); + transition-timing-function: cubic-bezier(0.42, 0, 0.58, 1); } + +body[data-aos-easing="ease-in-back"] [data-aos], [data-aos][data-aos][data-aos-easing="ease-in-back"] { + -webkit-transition-timing-function: cubic-bezier(0.6, -0.28, 0.735, 0.045); + transition-timing-function: cubic-bezier(0.6, -0.28, 0.735, 0.045); } + +body[data-aos-easing="ease-out-back"] [data-aos], [data-aos][data-aos][data-aos-easing="ease-out-back"] { + -webkit-transition-timing-function: cubic-bezier(0.175, 0.885, 0.32, 1.275); + transition-timing-function: cubic-bezier(0.175, 0.885, 0.32, 1.275); } + +body[data-aos-easing="ease-in-out-back"] [data-aos], [data-aos][data-aos][data-aos-easing="ease-in-out-back"] { + -webkit-transition-timing-function: cubic-bezier(0.68, -0.55, 0.265, 1.55); + transition-timing-function: cubic-bezier(0.68, -0.55, 0.265, 1.55); } + +body[data-aos-easing="ease-in-sine"] [data-aos], [data-aos][data-aos][data-aos-easing="ease-in-sine"] { + -webkit-transition-timing-function: cubic-bezier(0.47, 0, 0.745, 0.715); + transition-timing-function: cubic-bezier(0.47, 0, 0.745, 0.715); } + +body[data-aos-easing="ease-out-sine"] [data-aos], [data-aos][data-aos][data-aos-easing="ease-out-sine"] { + -webkit-transition-timing-function: cubic-bezier(0.39, 0.575, 0.565, 1); + transition-timing-function: cubic-bezier(0.39, 0.575, 0.565, 1); } + +body[data-aos-easing="ease-in-out-sine"] [data-aos], [data-aos][data-aos][data-aos-easing="ease-in-out-sine"] { + -webkit-transition-timing-function: cubic-bezier(0.445, 0.05, 0.55, 0.95); + transition-timing-function: cubic-bezier(0.445, 0.05, 0.55, 0.95); } + +body[data-aos-easing="ease-in-quad"] [data-aos], [data-aos][data-aos][data-aos-easing="ease-in-quad"] { + -webkit-transition-timing-function: cubic-bezier(0.55, 0.085, 0.68, 0.53); + transition-timing-function: cubic-bezier(0.55, 0.085, 0.68, 0.53); } + +body[data-aos-easing="ease-out-quad"] [data-aos], [data-aos][data-aos][data-aos-easing="ease-out-quad"] { + -webkit-transition-timing-function: cubic-bezier(0.25, 0.46, 0.45, 0.94); + transition-timing-function: cubic-bezier(0.25, 0.46, 0.45, 0.94); } + +body[data-aos-easing="ease-in-out-quad"] [data-aos], [data-aos][data-aos][data-aos-easing="ease-in-out-quad"] { + -webkit-transition-timing-function: cubic-bezier(0.455, 0.03, 0.515, 0.955); + transition-timing-function: cubic-bezier(0.455, 0.03, 0.515, 0.955); } + +body[data-aos-easing="ease-in-cubic"] [data-aos], [data-aos][data-aos][data-aos-easing="ease-in-cubic"] { + -webkit-transition-timing-function: cubic-bezier(0.55, 0.085, 0.68, 0.53); + transition-timing-function: cubic-bezier(0.55, 0.085, 0.68, 0.53); } + +body[data-aos-easing="ease-out-cubic"] [data-aos], [data-aos][data-aos][data-aos-easing="ease-out-cubic"] { + -webkit-transition-timing-function: cubic-bezier(0.25, 0.46, 0.45, 0.94); + transition-timing-function: cubic-bezier(0.25, 0.46, 0.45, 0.94); } + +body[data-aos-easing="ease-in-out-cubic"] [data-aos], [data-aos][data-aos][data-aos-easing="ease-in-out-cubic"] { + -webkit-transition-timing-function: cubic-bezier(0.455, 0.03, 0.515, 0.955); + transition-timing-function: cubic-bezier(0.455, 0.03, 0.515, 0.955); } + +body[data-aos-easing="ease-in-quart"] [data-aos], [data-aos][data-aos][data-aos-easing="ease-in-quart"] { + -webkit-transition-timing-function: cubic-bezier(0.55, 0.085, 0.68, 0.53); + transition-timing-function: cubic-bezier(0.55, 0.085, 0.68, 0.53); } + +body[data-aos-easing="ease-out-quart"] [data-aos], [data-aos][data-aos][data-aos-easing="ease-out-quart"] { + -webkit-transition-timing-function: cubic-bezier(0.25, 0.46, 0.45, 0.94); + transition-timing-function: cubic-bezier(0.25, 0.46, 0.45, 0.94); } + +body[data-aos-easing="ease-in-out-quart"] [data-aos], [data-aos][data-aos][data-aos-easing="ease-in-out-quart"] { + -webkit-transition-timing-function: cubic-bezier(0.455, 0.03, 0.515, 0.955); + transition-timing-function: cubic-bezier(0.455, 0.03, 0.515, 0.955); } + +/** + * Fade animations: + * fade + * fade-up, fade-down, fade-left, fade-right + * fade-up-right, fade-up-left, fade-down-right, fade-down-left + */ +[data-aos^='fade'][data-aos^='fade'] { + opacity: 0; + -webkit-transition-property: opacity, -webkit-transform; + transition-property: opacity, -webkit-transform; + transition-property: opacity, transform; + transition-property: opacity, transform, -webkit-transform; } + [data-aos^='fade'][data-aos^='fade'].aos-animate { + opacity: 1; + -webkit-transform: translate(0, 0); + transform: translate(0, 0); } + +[data-aos='fade-up'] { + -webkit-transform: translate(0, 100px); + transform: translate(0, 100px); } + +[data-aos='fade-down'] { + -webkit-transform: translate(0, -100px); + transform: translate(0, -100px); } + +[data-aos='fade-right'] { + -webkit-transform: translate(-100px, 0); + transform: translate(-100px, 0); } + +[data-aos='fade-left'] { + -webkit-transform: translate(100px, 0); + transform: translate(100px, 0); } + +[data-aos='fade-up-right'] { + -webkit-transform: translate(-100px, 100px); + transform: translate(-100px, 100px); } + +[data-aos='fade-up-left'] { + -webkit-transform: translate(100px, 100px); + transform: translate(100px, 100px); } + +[data-aos='fade-down-right'] { + -webkit-transform: translate(-100px, -100px); + transform: translate(-100px, -100px); } + +[data-aos='fade-down-left'] { + -webkit-transform: translate(100px, -100px); + transform: translate(100px, -100px); } + +/** + * Zoom animations: + * zoom-in, zoom-in-up, zoom-in-down, zoom-in-left, zoom-in-right + * zoom-out, zoom-out-up, zoom-out-down, zoom-out-left, zoom-out-right + */ +[data-aos^='zoom'][data-aos^='zoom'] { + opacity: 0; + -webkit-transition-property: opacity, -webkit-transform; + transition-property: opacity, -webkit-transform; + transition-property: opacity, transform; + transition-property: opacity, transform, -webkit-transform; } + [data-aos^='zoom'][data-aos^='zoom'].aos-animate { + opacity: 1; + -webkit-transform: translate(0, 0) scale(1); + transform: translate(0, 0) scale(1); } + +[data-aos='zoom-in'] { + -webkit-transform: scale(0.6); + transform: scale(0.6); } + +[data-aos='zoom-in-up'] { + -webkit-transform: translate(0, 100px) scale(0.6); + transform: translate(0, 100px) scale(0.6); } + +[data-aos='zoom-in-down'] { + -webkit-transform: translate(0, -100px) scale(0.6); + transform: translate(0, -100px) scale(0.6); } + +[data-aos='zoom-in-right'] { + -webkit-transform: translate(-100px, 0) scale(0.6); + transform: translate(-100px, 0) scale(0.6); } + +[data-aos='zoom-in-left'] { + -webkit-transform: translate(100px, 0) scale(0.6); + transform: translate(100px, 0) scale(0.6); } + +[data-aos='zoom-out'] { + -webkit-transform: scale(1.2); + transform: scale(1.2); } + +[data-aos='zoom-out-up'] { + -webkit-transform: translate(0, 100px) scale(1.2); + transform: translate(0, 100px) scale(1.2); } + +[data-aos='zoom-out-down'] { + -webkit-transform: translate(0, -100px) scale(1.2); + transform: translate(0, -100px) scale(1.2); } + +[data-aos='zoom-out-right'] { + -webkit-transform: translate(-100px, 0) scale(1.2); + transform: translate(-100px, 0) scale(1.2); } + +[data-aos='zoom-out-left'] { + -webkit-transform: translate(100px, 0) scale(1.2); + transform: translate(100px, 0) scale(1.2); } + +/** + * Slide animations + */ +[data-aos^='slide'][data-aos^='slide'] { + -webkit-transition-property: -webkit-transform; + transition-property: -webkit-transform; + transition-property: transform; + transition-property: transform, -webkit-transform; } + [data-aos^='slide'][data-aos^='slide'].aos-animate { + -webkit-transform: translate(0, 0); + transform: translate(0, 0); } + +[data-aos='slide-up'] { + -webkit-transform: translateY(100%); + transform: translateY(100%); } + +[data-aos='slide-down'] { + -webkit-transform: translateY(-100%); + transform: translateY(-100%); } + +[data-aos='slide-right'] { + -webkit-transform: translateX(-100%); + transform: translateX(-100%); } + +[data-aos='slide-left'] { + -webkit-transform: translateX(100%); + transform: translateX(100%); } + +/** + * Flip animations: + * flip-left, flip-right, flip-up, flip-down + */ +[data-aos^='flip'][data-aos^='flip'] { + -webkit-backface-visibility: hidden; + backface-visibility: hidden; + -webkit-transition-property: -webkit-transform; + transition-property: -webkit-transform; + transition-property: transform; + transition-property: transform, -webkit-transform; } + +[data-aos='flip-left'] { + -webkit-transform: perspective(2500px) rotateY(-100deg); + transform: perspective(2500px) rotateY(-100deg); } + [data-aos='flip-left'].aos-animate { + -webkit-transform: perspective(2500px) rotateY(0); + transform: perspective(2500px) rotateY(0); } + +[data-aos='flip-right'] { + -webkit-transform: perspective(2500px) rotateY(100deg); + transform: perspective(2500px) rotateY(100deg); } + [data-aos='flip-right'].aos-animate { + -webkit-transform: perspective(2500px) rotateY(0); + transform: perspective(2500px) rotateY(0); } + +[data-aos='flip-up'] { + -webkit-transform: perspective(2500px) rotateX(-100deg); + transform: perspective(2500px) rotateX(-100deg); } + [data-aos='flip-up'].aos-animate { + -webkit-transform: perspective(2500px) rotateX(0); + transform: perspective(2500px) rotateX(0); } + +[data-aos='flip-down'] { + -webkit-transform: perspective(2500px) rotateX(100deg); + transform: perspective(2500px) rotateX(100deg); } + [data-aos='flip-down'].aos-animate { + -webkit-transform: perspective(2500px) rotateX(0); + transform: perspective(2500px) rotateX(0); } diff --git a/public/admin/assets/css/bootstrap.css b/public/admin/assets/css/bootstrap.css new file mode 100644 index 0000000..663ef69 --- /dev/null +++ b/public/admin/assets/css/bootstrap.css @@ -0,0 +1,8548 @@ +/*! + * Bootstrap v5.0.0-beta1 (https://getbootstrap.com/) + * Copyright 2011-2020 The Bootstrap Authors + * Copyright 2011-2020 Twitter, Inc. + * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE) + */ +:root { + --bs-blue: #0d6efd; + --bs-indigo: #6610f2; + --bs-purple: #6f42c1; + --bs-pink: #d63384; + --bs-red: #dc3545; + --bs-orange: #fd7e14; + --bs-yellow: #ffc107; + --bs-green: #198754; + --bs-teal: #20c997; + --bs-cyan: #0dcaf0; + --bs-white: #fff; + --bs-gray: #6c757d; + --bs-gray-dark: #343a40; + --bs-primary: #0d6efd; + --bs-secondary: #6c757d; + --bs-success: #198754; + --bs-info: #0dcaf0; + --bs-warning: #ffc107; + --bs-danger: #dc3545; + --bs-light: #f8f9fa; + --bs-dark: #212529; + --bs-font-sans-serif: system-ui, -apple-system, "Segoe UI", Roboto, "Helvetica Neue", Arial, "Noto Sans", "Liberation Sans", sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji"; + --bs-font-monospace: SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace; + --bs-gradient: linear-gradient(180deg, rgba(255, 255, 255, 0.15), rgba(255, 255, 255, 0)); } + +*, +*::before, +*::after { + -webkit-box-sizing: border-box; + box-sizing: border-box; } + +@media (prefers-reduced-motion: no-preference) { + :root { + scroll-behavior: smooth; } } + +body { + margin: 0; + font-family: var(--bs-font-sans-serif); + font-size: 1rem; + font-weight: 400; + line-height: 1.5; + color: #212529; + background-color: #fff; + -webkit-text-size-adjust: 100%; + -webkit-tap-highlight-color: rgba(0, 0, 0, 0); } + +[tabindex="-1"]:focus:not(:focus-visible) { + outline: 0 !important; } + +hr { + margin: 1rem 0; + color: inherit; + background-color: currentColor; + border: 0; + opacity: 0.25; } + +hr:not([size]) { + height: 1px; } + +h1, .h1, h2, .h2, h3, .h3, h4, .h4, h5, .h5, h6, .h6 { + margin-top: 0; + margin-bottom: 0.5rem; + font-weight: 500; + line-height: 1.2; } + +h1, .h1 { + font-size: calc(1.375rem + 1.5vw); } + @media (min-width: 1200px) { + h1, .h1 { + font-size: 2.5rem; } } + +h2, .h2 { + font-size: calc(1.325rem + 0.9vw); } + @media (min-width: 1200px) { + h2, .h2 { + font-size: 2rem; } } + +h3, .h3 { + font-size: calc(1.3rem + 0.6vw); } + @media (min-width: 1200px) { + h3, .h3 { + font-size: 1.75rem; } } + +h4, .h4 { + font-size: calc(1.275rem + 0.3vw); } + @media (min-width: 1200px) { + h4, .h4 { + font-size: 1.5rem; } } + +h5, .h5 { + font-size: 1.25rem; } + +h6, .h6 { + font-size: 1rem; } + +p { + margin-top: 0; + margin-bottom: 1rem; } + +abbr[title], +abbr[data-bs-original-title] { + text-decoration: underline; + -webkit-text-decoration: underline dotted; + text-decoration: underline dotted; + cursor: help; + -webkit-text-decoration-skip-ink: none; + text-decoration-skip-ink: none; } + +address { + margin-bottom: 1rem; + font-style: normal; + line-height: inherit; } + +ol, +ul { + padding-left: 2rem; } + +ol, +ul, +dl { + margin-top: 0; + margin-bottom: 1rem; } + +ol ol, +ul ul, +ol ul, +ul ol { + margin-bottom: 0; } + +dt { + font-weight: 700; } + +dd { + margin-bottom: .5rem; + margin-left: 0; } + +blockquote { + margin: 0 0 1rem; } + +b, +strong { + font-weight: bolder; } + +small, .small { + font-size: 0.875em; } + +mark, .mark { + padding: 0.2em; + background-color: #fcf8e3; } + +sub, +sup { + position: relative; + font-size: 0.75em; + line-height: 0; + vertical-align: baseline; } + +sub { + bottom: -.25em; } + +sup { + top: -.5em; } + +a { + color: #0d6efd; + text-decoration: underline; } + a:hover { + color: #0a58ca; } + +a:not([href]):not([class]), a:not([href]):not([class]):hover { + color: inherit; + text-decoration: none; } + +pre, +code, +kbd, +samp { + font-family: var(--bs-font-monospace); + font-size: 1em; + direction: ltr /* rtl:ignore */; + unicode-bidi: bidi-override; } + +pre { + display: block; + margin-top: 0; + margin-bottom: 1rem; + overflow: auto; + font-size: 0.875em; } + pre code { + font-size: inherit; + color: inherit; + word-break: normal; } + +code { + font-size: 0.875em; + color: #d63384; + word-wrap: break-word; } + a > code { + color: inherit; } + +kbd { + padding: 0.2rem 0.4rem; + font-size: 0.875em; + color: #fff; + background-color: #212529; + border-radius: 0.2rem; } + kbd kbd { + padding: 0; + font-size: 1em; + font-weight: 700; } + +figure { + margin: 0 0 1rem; } + +img, +svg { + vertical-align: middle; } + +table { + caption-side: bottom; + border-collapse: collapse; } + +caption { + padding-top: 0.5rem; + padding-bottom: 0.5rem; + color: #6c757d; + text-align: left; } + +th { + text-align: inherit; + text-align: -webkit-match-parent; } + +thead, +tbody, +tfoot, +tr, +td, +th { + border-color: inherit; + border-style: solid; + border-width: 0; } + +label { + display: inline-block; } + +button { + border-radius: 0; } + +button:focus { + outline: dotted 1px; + outline: -webkit-focus-ring-color auto 5px; } + +input, +button, +select, +optgroup, +textarea { + margin: 0; + font-family: inherit; + font-size: inherit; + line-height: inherit; } + +button, +select { + text-transform: none; } + +[role="button"] { + cursor: pointer; } + +select { + word-wrap: normal; } + +[list]::-webkit-calendar-picker-indicator { + display: none; } + +button, +[type="button"], +[type="reset"], +[type="submit"] { + -webkit-appearance: button; } + button:not(:disabled), + [type="button"]:not(:disabled), + [type="reset"]:not(:disabled), + [type="submit"]:not(:disabled) { + cursor: pointer; } + +::-moz-focus-inner { + padding: 0; + border-style: none; } + +textarea { + resize: vertical; } + +fieldset { + min-width: 0; + padding: 0; + margin: 0; + border: 0; } + +legend { + float: left; + width: 100%; + padding: 0; + margin-bottom: 0.5rem; + font-size: calc(1.275rem + 0.3vw); + line-height: inherit; } + @media (min-width: 1200px) { + legend { + font-size: 1.5rem; } } + legend + * { + clear: left; } + +::-webkit-datetime-edit-fields-wrapper, +::-webkit-datetime-edit-text, +::-webkit-datetime-edit-minute, +::-webkit-datetime-edit-hour-field, +::-webkit-datetime-edit-day-field, +::-webkit-datetime-edit-month-field, +::-webkit-datetime-edit-year-field { + padding: 0; } + +::-webkit-inner-spin-button { + height: auto; } + +[type="search"] { + outline-offset: -2px; + -webkit-appearance: textfield; } + +/* rtl:raw: +[type="tel"], +[type="url"], +[type="email"], +[type="number"] { + direction: ltr; +} +*/ +::-webkit-search-decoration { + -webkit-appearance: none; } + +::-webkit-color-swatch-wrapper { + padding: 0; } + +::file-selector-button { + font: inherit; } + +::-webkit-file-upload-button { + font: inherit; + -webkit-appearance: button; } + +output { + display: inline-block; } + +iframe { + border: 0; } + +summary { + display: list-item; + cursor: pointer; } + +progress { + vertical-align: baseline; } + +[hidden] { + display: none !important; } + +.lead { + font-size: 1.25rem; + font-weight: 300; } + +.display-1 { + font-size: calc(1.625rem + 4.5vw); + font-weight: 300; + line-height: 1.2; } + @media (min-width: 1200px) { + .display-1 { + font-size: 5rem; } } + +.display-2 { + font-size: calc(1.575rem + 3.9vw); + font-weight: 300; + line-height: 1.2; } + @media (min-width: 1200px) { + .display-2 { + font-size: 4.5rem; } } + +.display-3 { + font-size: calc(1.525rem + 3.3vw); + font-weight: 300; + line-height: 1.2; } + @media (min-width: 1200px) { + .display-3 { + font-size: 4rem; } } + +.display-4 { + font-size: calc(1.475rem + 2.7vw); + font-weight: 300; + line-height: 1.2; } + @media (min-width: 1200px) { + .display-4 { + font-size: 3.5rem; } } + +.display-5 { + font-size: calc(1.425rem + 2.1vw); + font-weight: 300; + line-height: 1.2; } + @media (min-width: 1200px) { + .display-5 { + font-size: 3rem; } } + +.display-6 { + font-size: calc(1.375rem + 1.5vw); + font-weight: 300; + line-height: 1.2; } + @media (min-width: 1200px) { + .display-6 { + font-size: 2.5rem; } } + +.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: 0.5rem; } + +.initialism { + font-size: 0.875em; + text-transform: uppercase; } + +.blockquote { + margin-bottom: 1rem; + font-size: 1.25rem; } + .blockquote > :last-child { + margin-bottom: 0; } + +.blockquote-footer { + margin-top: -1rem; + margin-bottom: 1rem; + font-size: 0.875em; + color: #6c757d; } + .blockquote-footer::before { + content: "\2014\00A0"; } + +.img-fluid { + max-width: 100%; + height: auto; } + +.img-thumbnail { + padding: 0.25rem; + background-color: #fff; + border: 1px solid #dee2e6; + border-radius: 0.25rem; + max-width: 100%; + height: auto; } + +.figure { + display: inline-block; } + +.figure-img { + margin-bottom: 0.5rem; + line-height: 1; } + +.figure-caption { + font-size: 0.875em; + color: #6c757d; } + +.container, +.container-fluid, +.container-sm, +.container-md, +.container-lg, +.container-xl, +.container-xxl { + width: 100%; + padding-right: var(--bs-gutter-x, 0.75rem); + padding-left: var(--bs-gutter-x, 0.75rem); + margin-right: auto; + margin-left: auto; } + +@media (min-width: 576px) { + .container, .container-sm { + max-width: 540px; } } + +@media (min-width: 768px) { + .container, .container-sm, .container-md { + max-width: 720px; } } + +@media (min-width: 992px) { + .container, .container-sm, .container-md, .container-lg { + max-width: 960px; } } + +@media (min-width: 1200px) { + .container, .container-sm, .container-md, .container-lg, .container-xl { + max-width: 1140px; } } + +@media (min-width: 1400px) { + .container, .container-sm, .container-md, .container-lg, .container-xl, .container-xxl { + max-width: 1320px; } } + +.row { + --bs-gutter-x: 1.5rem; + --bs-gutter-y: 0; + display: -webkit-box; + display: -ms-flexbox; + display: flex; + -ms-flex-wrap: wrap; + flex-wrap: wrap; + margin-top: calc(var(--bs-gutter-y) * -1); + margin-right: calc(var(--bs-gutter-x) / -2); + margin-left: calc(var(--bs-gutter-x) / -2); } + .row > * { + -ms-flex-negative: 0; + flex-shrink: 0; + width: 100%; + max-width: 100%; + padding-right: calc(var(--bs-gutter-x) / 2); + padding-left: calc(var(--bs-gutter-x) / 2); + margin-top: var(--bs-gutter-y); } + +.col { + -webkit-box-flex: 1; + -ms-flex: 1 0 0%; + flex: 1 0 0%; } + +.row-cols-auto > * { + -webkit-box-flex: 0; + -ms-flex: 0 0 auto; + flex: 0 0 auto; + width: auto; } + +.row-cols-1 > * { + -webkit-box-flex: 0; + -ms-flex: 0 0 auto; + flex: 0 0 auto; + width: 100%; } + +.row-cols-2 > * { + -webkit-box-flex: 0; + -ms-flex: 0 0 auto; + flex: 0 0 auto; + width: 50%; } + +.row-cols-3 > * { + -webkit-box-flex: 0; + -ms-flex: 0 0 auto; + flex: 0 0 auto; + width: 33.33333%; } + +.row-cols-4 > * { + -webkit-box-flex: 0; + -ms-flex: 0 0 auto; + flex: 0 0 auto; + width: 25%; } + +.row-cols-5 > * { + -webkit-box-flex: 0; + -ms-flex: 0 0 auto; + flex: 0 0 auto; + width: 20%; } + +.row-cols-6 > * { + -webkit-box-flex: 0; + -ms-flex: 0 0 auto; + flex: 0 0 auto; + width: 16.66667%; } + +.col-auto { + -webkit-box-flex: 0; + -ms-flex: 0 0 auto; + flex: 0 0 auto; + width: auto; } + +.col-1 { + -webkit-box-flex: 0; + -ms-flex: 0 0 auto; + flex: 0 0 auto; + width: 8.33333%; } + +.col-2 { + -webkit-box-flex: 0; + -ms-flex: 0 0 auto; + flex: 0 0 auto; + width: 16.66667%; } + +.col-3 { + -webkit-box-flex: 0; + -ms-flex: 0 0 auto; + flex: 0 0 auto; + width: 25%; } + +.col-4 { + -webkit-box-flex: 0; + -ms-flex: 0 0 auto; + flex: 0 0 auto; + width: 33.33333%; } + +.col-5 { + -webkit-box-flex: 0; + -ms-flex: 0 0 auto; + flex: 0 0 auto; + width: 41.66667%; } + +.col-6 { + -webkit-box-flex: 0; + -ms-flex: 0 0 auto; + flex: 0 0 auto; + width: 50%; } + +.col-7 { + -webkit-box-flex: 0; + -ms-flex: 0 0 auto; + flex: 0 0 auto; + width: 58.33333%; } + +.col-8 { + -webkit-box-flex: 0; + -ms-flex: 0 0 auto; + flex: 0 0 auto; + width: 66.66667%; } + +.col-9 { + -webkit-box-flex: 0; + -ms-flex: 0 0 auto; + flex: 0 0 auto; + width: 75%; } + +.col-10 { + -webkit-box-flex: 0; + -ms-flex: 0 0 auto; + flex: 0 0 auto; + width: 83.33333%; } + +.col-11 { + -webkit-box-flex: 0; + -ms-flex: 0 0 auto; + flex: 0 0 auto; + width: 91.66667%; } + +.col-12 { + -webkit-box-flex: 0; + -ms-flex: 0 0 auto; + flex: 0 0 auto; + width: 100%; } + +.offset-1 { + margin-left: 8.33333%; } + +.offset-2 { + margin-left: 16.66667%; } + +.offset-3 { + margin-left: 25%; } + +.offset-4 { + margin-left: 33.33333%; } + +.offset-5 { + margin-left: 41.66667%; } + +.offset-6 { + margin-left: 50%; } + +.offset-7 { + margin-left: 58.33333%; } + +.offset-8 { + margin-left: 66.66667%; } + +.offset-9 { + margin-left: 75%; } + +.offset-10 { + margin-left: 83.33333%; } + +.offset-11 { + margin-left: 91.66667%; } + +.g-0, +.gx-0 { + --bs-gutter-x: 0; } + +.g-0, +.gy-0 { + --bs-gutter-y: 0; } + +.g-1, +.gx-1 { + --bs-gutter-x: 0.25rem; } + +.g-1, +.gy-1 { + --bs-gutter-y: 0.25rem; } + +.g-2, +.gx-2 { + --bs-gutter-x: 0.5rem; } + +.g-2, +.gy-2 { + --bs-gutter-y: 0.5rem; } + +.g-3, +.gx-3 { + --bs-gutter-x: 1rem; } + +.g-3, +.gy-3 { + --bs-gutter-y: 1rem; } + +.g-4, +.gx-4 { + --bs-gutter-x: 1.5rem; } + +.g-4, +.gy-4 { + --bs-gutter-y: 1.5rem; } + +.g-5, +.gx-5 { + --bs-gutter-x: 3rem; } + +.g-5, +.gy-5 { + --bs-gutter-y: 3rem; } + +@media (min-width: 576px) { + .col-sm { + -webkit-box-flex: 1; + -ms-flex: 1 0 0%; + flex: 1 0 0%; } + .row-cols-sm-auto > * { + -webkit-box-flex: 0; + -ms-flex: 0 0 auto; + flex: 0 0 auto; + width: auto; } + .row-cols-sm-1 > * { + -webkit-box-flex: 0; + -ms-flex: 0 0 auto; + flex: 0 0 auto; + width: 100%; } + .row-cols-sm-2 > * { + -webkit-box-flex: 0; + -ms-flex: 0 0 auto; + flex: 0 0 auto; + width: 50%; } + .row-cols-sm-3 > * { + -webkit-box-flex: 0; + -ms-flex: 0 0 auto; + flex: 0 0 auto; + width: 33.33333%; } + .row-cols-sm-4 > * { + -webkit-box-flex: 0; + -ms-flex: 0 0 auto; + flex: 0 0 auto; + width: 25%; } + .row-cols-sm-5 > * { + -webkit-box-flex: 0; + -ms-flex: 0 0 auto; + flex: 0 0 auto; + width: 20%; } + .row-cols-sm-6 > * { + -webkit-box-flex: 0; + -ms-flex: 0 0 auto; + flex: 0 0 auto; + width: 16.66667%; } + .col-sm-auto { + -webkit-box-flex: 0; + -ms-flex: 0 0 auto; + flex: 0 0 auto; + width: auto; } + .col-sm-1 { + -webkit-box-flex: 0; + -ms-flex: 0 0 auto; + flex: 0 0 auto; + width: 8.33333%; } + .col-sm-2 { + -webkit-box-flex: 0; + -ms-flex: 0 0 auto; + flex: 0 0 auto; + width: 16.66667%; } + .col-sm-3 { + -webkit-box-flex: 0; + -ms-flex: 0 0 auto; + flex: 0 0 auto; + width: 25%; } + .col-sm-4 { + -webkit-box-flex: 0; + -ms-flex: 0 0 auto; + flex: 0 0 auto; + width: 33.33333%; } + .col-sm-5 { + -webkit-box-flex: 0; + -ms-flex: 0 0 auto; + flex: 0 0 auto; + width: 41.66667%; } + .col-sm-6 { + -webkit-box-flex: 0; + -ms-flex: 0 0 auto; + flex: 0 0 auto; + width: 50%; } + .col-sm-7 { + -webkit-box-flex: 0; + -ms-flex: 0 0 auto; + flex: 0 0 auto; + width: 58.33333%; } + .col-sm-8 { + -webkit-box-flex: 0; + -ms-flex: 0 0 auto; + flex: 0 0 auto; + width: 66.66667%; } + .col-sm-9 { + -webkit-box-flex: 0; + -ms-flex: 0 0 auto; + flex: 0 0 auto; + width: 75%; } + .col-sm-10 { + -webkit-box-flex: 0; + -ms-flex: 0 0 auto; + flex: 0 0 auto; + width: 83.33333%; } + .col-sm-11 { + -webkit-box-flex: 0; + -ms-flex: 0 0 auto; + flex: 0 0 auto; + width: 91.66667%; } + .col-sm-12 { + -webkit-box-flex: 0; + -ms-flex: 0 0 auto; + flex: 0 0 auto; + width: 100%; } + .offset-sm-0 { + margin-left: 0; } + .offset-sm-1 { + margin-left: 8.33333%; } + .offset-sm-2 { + margin-left: 16.66667%; } + .offset-sm-3 { + margin-left: 25%; } + .offset-sm-4 { + margin-left: 33.33333%; } + .offset-sm-5 { + margin-left: 41.66667%; } + .offset-sm-6 { + margin-left: 50%; } + .offset-sm-7 { + margin-left: 58.33333%; } + .offset-sm-8 { + margin-left: 66.66667%; } + .offset-sm-9 { + margin-left: 75%; } + .offset-sm-10 { + margin-left: 83.33333%; } + .offset-sm-11 { + margin-left: 91.66667%; } + .g-sm-0, + .gx-sm-0 { + --bs-gutter-x: 0; } + .g-sm-0, + .gy-sm-0 { + --bs-gutter-y: 0; } + .g-sm-1, + .gx-sm-1 { + --bs-gutter-x: 0.25rem; } + .g-sm-1, + .gy-sm-1 { + --bs-gutter-y: 0.25rem; } + .g-sm-2, + .gx-sm-2 { + --bs-gutter-x: 0.5rem; } + .g-sm-2, + .gy-sm-2 { + --bs-gutter-y: 0.5rem; } + .g-sm-3, + .gx-sm-3 { + --bs-gutter-x: 1rem; } + .g-sm-3, + .gy-sm-3 { + --bs-gutter-y: 1rem; } + .g-sm-4, + .gx-sm-4 { + --bs-gutter-x: 1.5rem; } + .g-sm-4, + .gy-sm-4 { + --bs-gutter-y: 1.5rem; } + .g-sm-5, + .gx-sm-5 { + --bs-gutter-x: 3rem; } + .g-sm-5, + .gy-sm-5 { + --bs-gutter-y: 3rem; } } + +@media (min-width: 768px) { + .col-md { + -webkit-box-flex: 1; + -ms-flex: 1 0 0%; + flex: 1 0 0%; } + .row-cols-md-auto > * { + -webkit-box-flex: 0; + -ms-flex: 0 0 auto; + flex: 0 0 auto; + width: auto; } + .row-cols-md-1 > * { + -webkit-box-flex: 0; + -ms-flex: 0 0 auto; + flex: 0 0 auto; + width: 100%; } + .row-cols-md-2 > * { + -webkit-box-flex: 0; + -ms-flex: 0 0 auto; + flex: 0 0 auto; + width: 50%; } + .row-cols-md-3 > * { + -webkit-box-flex: 0; + -ms-flex: 0 0 auto; + flex: 0 0 auto; + width: 33.33333%; } + .row-cols-md-4 > * { + -webkit-box-flex: 0; + -ms-flex: 0 0 auto; + flex: 0 0 auto; + width: 25%; } + .row-cols-md-5 > * { + -webkit-box-flex: 0; + -ms-flex: 0 0 auto; + flex: 0 0 auto; + width: 20%; } + .row-cols-md-6 > * { + -webkit-box-flex: 0; + -ms-flex: 0 0 auto; + flex: 0 0 auto; + width: 16.66667%; } + .col-md-auto { + -webkit-box-flex: 0; + -ms-flex: 0 0 auto; + flex: 0 0 auto; + width: auto; } + .col-md-1 { + -webkit-box-flex: 0; + -ms-flex: 0 0 auto; + flex: 0 0 auto; + width: 8.33333%; } + .col-md-2 { + -webkit-box-flex: 0; + -ms-flex: 0 0 auto; + flex: 0 0 auto; + width: 16.66667%; } + .col-md-3 { + -webkit-box-flex: 0; + -ms-flex: 0 0 auto; + flex: 0 0 auto; + width: 25%; } + .col-md-4 { + -webkit-box-flex: 0; + -ms-flex: 0 0 auto; + flex: 0 0 auto; + width: 33.33333%; } + .col-md-5 { + -webkit-box-flex: 0; + -ms-flex: 0 0 auto; + flex: 0 0 auto; + width: 41.66667%; } + .col-md-6 { + -webkit-box-flex: 0; + -ms-flex: 0 0 auto; + flex: 0 0 auto; + width: 50%; } + .col-md-7 { + -webkit-box-flex: 0; + -ms-flex: 0 0 auto; + flex: 0 0 auto; + width: 58.33333%; } + .col-md-8 { + -webkit-box-flex: 0; + -ms-flex: 0 0 auto; + flex: 0 0 auto; + width: 66.66667%; } + .col-md-9 { + -webkit-box-flex: 0; + -ms-flex: 0 0 auto; + flex: 0 0 auto; + width: 75%; } + .col-md-10 { + -webkit-box-flex: 0; + -ms-flex: 0 0 auto; + flex: 0 0 auto; + width: 83.33333%; } + .col-md-11 { + -webkit-box-flex: 0; + -ms-flex: 0 0 auto; + flex: 0 0 auto; + width: 91.66667%; } + .col-md-12 { + -webkit-box-flex: 0; + -ms-flex: 0 0 auto; + flex: 0 0 auto; + width: 100%; } + .offset-md-0 { + margin-left: 0; } + .offset-md-1 { + margin-left: 8.33333%; } + .offset-md-2 { + margin-left: 16.66667%; } + .offset-md-3 { + margin-left: 25%; } + .offset-md-4 { + margin-left: 33.33333%; } + .offset-md-5 { + margin-left: 41.66667%; } + .offset-md-6 { + margin-left: 50%; } + .offset-md-7 { + margin-left: 58.33333%; } + .offset-md-8 { + margin-left: 66.66667%; } + .offset-md-9 { + margin-left: 75%; } + .offset-md-10 { + margin-left: 83.33333%; } + .offset-md-11 { + margin-left: 91.66667%; } + .g-md-0, + .gx-md-0 { + --bs-gutter-x: 0; } + .g-md-0, + .gy-md-0 { + --bs-gutter-y: 0; } + .g-md-1, + .gx-md-1 { + --bs-gutter-x: 0.25rem; } + .g-md-1, + .gy-md-1 { + --bs-gutter-y: 0.25rem; } + .g-md-2, + .gx-md-2 { + --bs-gutter-x: 0.5rem; } + .g-md-2, + .gy-md-2 { + --bs-gutter-y: 0.5rem; } + .g-md-3, + .gx-md-3 { + --bs-gutter-x: 1rem; } + .g-md-3, + .gy-md-3 { + --bs-gutter-y: 1rem; } + .g-md-4, + .gx-md-4 { + --bs-gutter-x: 1.5rem; } + .g-md-4, + .gy-md-4 { + --bs-gutter-y: 1.5rem; } + .g-md-5, + .gx-md-5 { + --bs-gutter-x: 3rem; } + .g-md-5, + .gy-md-5 { + --bs-gutter-y: 3rem; } } + +@media (min-width: 992px) { + .col-lg { + -webkit-box-flex: 1; + -ms-flex: 1 0 0%; + flex: 1 0 0%; } + .row-cols-lg-auto > * { + -webkit-box-flex: 0; + -ms-flex: 0 0 auto; + flex: 0 0 auto; + width: auto; } + .row-cols-lg-1 > * { + -webkit-box-flex: 0; + -ms-flex: 0 0 auto; + flex: 0 0 auto; + width: 100%; } + .row-cols-lg-2 > * { + -webkit-box-flex: 0; + -ms-flex: 0 0 auto; + flex: 0 0 auto; + width: 50%; } + .row-cols-lg-3 > * { + -webkit-box-flex: 0; + -ms-flex: 0 0 auto; + flex: 0 0 auto; + width: 33.33333%; } + .row-cols-lg-4 > * { + -webkit-box-flex: 0; + -ms-flex: 0 0 auto; + flex: 0 0 auto; + width: 25%; } + .row-cols-lg-5 > * { + -webkit-box-flex: 0; + -ms-flex: 0 0 auto; + flex: 0 0 auto; + width: 20%; } + .row-cols-lg-6 > * { + -webkit-box-flex: 0; + -ms-flex: 0 0 auto; + flex: 0 0 auto; + width: 16.66667%; } + .col-lg-auto { + -webkit-box-flex: 0; + -ms-flex: 0 0 auto; + flex: 0 0 auto; + width: auto; } + .col-lg-1 { + -webkit-box-flex: 0; + -ms-flex: 0 0 auto; + flex: 0 0 auto; + width: 8.33333%; } + .col-lg-2 { + -webkit-box-flex: 0; + -ms-flex: 0 0 auto; + flex: 0 0 auto; + width: 16.66667%; } + .col-lg-3 { + -webkit-box-flex: 0; + -ms-flex: 0 0 auto; + flex: 0 0 auto; + width: 25%; } + .col-lg-4 { + -webkit-box-flex: 0; + -ms-flex: 0 0 auto; + flex: 0 0 auto; + width: 33.33333%; } + .col-lg-5 { + -webkit-box-flex: 0; + -ms-flex: 0 0 auto; + flex: 0 0 auto; + width: 41.66667%; } + .col-lg-6 { + -webkit-box-flex: 0; + -ms-flex: 0 0 auto; + flex: 0 0 auto; + width: 50%; } + .col-lg-7 { + -webkit-box-flex: 0; + -ms-flex: 0 0 auto; + flex: 0 0 auto; + width: 58.33333%; } + .col-lg-8 { + -webkit-box-flex: 0; + -ms-flex: 0 0 auto; + flex: 0 0 auto; + width: 66.66667%; } + .col-lg-9 { + -webkit-box-flex: 0; + -ms-flex: 0 0 auto; + flex: 0 0 auto; + width: 75%; } + .col-lg-10 { + -webkit-box-flex: 0; + -ms-flex: 0 0 auto; + flex: 0 0 auto; + width: 83.33333%; } + .col-lg-11 { + -webkit-box-flex: 0; + -ms-flex: 0 0 auto; + flex: 0 0 auto; + width: 91.66667%; } + .col-lg-12 { + -webkit-box-flex: 0; + -ms-flex: 0 0 auto; + flex: 0 0 auto; + width: 100%; } + .offset-lg-0 { + margin-left: 0; } + .offset-lg-1 { + margin-left: 8.33333%; } + .offset-lg-2 { + margin-left: 16.66667%; } + .offset-lg-3 { + margin-left: 25%; } + .offset-lg-4 { + margin-left: 33.33333%; } + .offset-lg-5 { + margin-left: 41.66667%; } + .offset-lg-6 { + margin-left: 50%; } + .offset-lg-7 { + margin-left: 58.33333%; } + .offset-lg-8 { + margin-left: 66.66667%; } + .offset-lg-9 { + margin-left: 75%; } + .offset-lg-10 { + margin-left: 83.33333%; } + .offset-lg-11 { + margin-left: 91.66667%; } + .g-lg-0, + .gx-lg-0 { + --bs-gutter-x: 0; } + .g-lg-0, + .gy-lg-0 { + --bs-gutter-y: 0; } + .g-lg-1, + .gx-lg-1 { + --bs-gutter-x: 0.25rem; } + .g-lg-1, + .gy-lg-1 { + --bs-gutter-y: 0.25rem; } + .g-lg-2, + .gx-lg-2 { + --bs-gutter-x: 0.5rem; } + .g-lg-2, + .gy-lg-2 { + --bs-gutter-y: 0.5rem; } + .g-lg-3, + .gx-lg-3 { + --bs-gutter-x: 1rem; } + .g-lg-3, + .gy-lg-3 { + --bs-gutter-y: 1rem; } + .g-lg-4, + .gx-lg-4 { + --bs-gutter-x: 1.5rem; } + .g-lg-4, + .gy-lg-4 { + --bs-gutter-y: 1.5rem; } + .g-lg-5, + .gx-lg-5 { + --bs-gutter-x: 3rem; } + .g-lg-5, + .gy-lg-5 { + --bs-gutter-y: 3rem; } } + +@media (min-width: 1200px) { + .col-xl { + -webkit-box-flex: 1; + -ms-flex: 1 0 0%; + flex: 1 0 0%; } + .row-cols-xl-auto > * { + -webkit-box-flex: 0; + -ms-flex: 0 0 auto; + flex: 0 0 auto; + width: auto; } + .row-cols-xl-1 > * { + -webkit-box-flex: 0; + -ms-flex: 0 0 auto; + flex: 0 0 auto; + width: 100%; } + .row-cols-xl-2 > * { + -webkit-box-flex: 0; + -ms-flex: 0 0 auto; + flex: 0 0 auto; + width: 50%; } + .row-cols-xl-3 > * { + -webkit-box-flex: 0; + -ms-flex: 0 0 auto; + flex: 0 0 auto; + width: 33.33333%; } + .row-cols-xl-4 > * { + -webkit-box-flex: 0; + -ms-flex: 0 0 auto; + flex: 0 0 auto; + width: 25%; } + .row-cols-xl-5 > * { + -webkit-box-flex: 0; + -ms-flex: 0 0 auto; + flex: 0 0 auto; + width: 20%; } + .row-cols-xl-6 > * { + -webkit-box-flex: 0; + -ms-flex: 0 0 auto; + flex: 0 0 auto; + width: 16.66667%; } + .col-xl-auto { + -webkit-box-flex: 0; + -ms-flex: 0 0 auto; + flex: 0 0 auto; + width: auto; } + .col-xl-1 { + -webkit-box-flex: 0; + -ms-flex: 0 0 auto; + flex: 0 0 auto; + width: 8.33333%; } + .col-xl-2 { + -webkit-box-flex: 0; + -ms-flex: 0 0 auto; + flex: 0 0 auto; + width: 16.66667%; } + .col-xl-3 { + -webkit-box-flex: 0; + -ms-flex: 0 0 auto; + flex: 0 0 auto; + width: 25%; } + .col-xl-4 { + -webkit-box-flex: 0; + -ms-flex: 0 0 auto; + flex: 0 0 auto; + width: 33.33333%; } + .col-xl-5 { + -webkit-box-flex: 0; + -ms-flex: 0 0 auto; + flex: 0 0 auto; + width: 41.66667%; } + .col-xl-6 { + -webkit-box-flex: 0; + -ms-flex: 0 0 auto; + flex: 0 0 auto; + width: 50%; } + .col-xl-7 { + -webkit-box-flex: 0; + -ms-flex: 0 0 auto; + flex: 0 0 auto; + width: 58.33333%; } + .col-xl-8 { + -webkit-box-flex: 0; + -ms-flex: 0 0 auto; + flex: 0 0 auto; + width: 66.66667%; } + .col-xl-9 { + -webkit-box-flex: 0; + -ms-flex: 0 0 auto; + flex: 0 0 auto; + width: 75%; } + .col-xl-10 { + -webkit-box-flex: 0; + -ms-flex: 0 0 auto; + flex: 0 0 auto; + width: 83.33333%; } + .col-xl-11 { + -webkit-box-flex: 0; + -ms-flex: 0 0 auto; + flex: 0 0 auto; + width: 91.66667%; } + .col-xl-12 { + -webkit-box-flex: 0; + -ms-flex: 0 0 auto; + flex: 0 0 auto; + width: 100%; } + .offset-xl-0 { + margin-left: 0; } + .offset-xl-1 { + margin-left: 8.33333%; } + .offset-xl-2 { + margin-left: 16.66667%; } + .offset-xl-3 { + margin-left: 25%; } + .offset-xl-4 { + margin-left: 33.33333%; } + .offset-xl-5 { + margin-left: 41.66667%; } + .offset-xl-6 { + margin-left: 50%; } + .offset-xl-7 { + margin-left: 58.33333%; } + .offset-xl-8 { + margin-left: 66.66667%; } + .offset-xl-9 { + margin-left: 75%; } + .offset-xl-10 { + margin-left: 83.33333%; } + .offset-xl-11 { + margin-left: 91.66667%; } + .g-xl-0, + .gx-xl-0 { + --bs-gutter-x: 0; } + .g-xl-0, + .gy-xl-0 { + --bs-gutter-y: 0; } + .g-xl-1, + .gx-xl-1 { + --bs-gutter-x: 0.25rem; } + .g-xl-1, + .gy-xl-1 { + --bs-gutter-y: 0.25rem; } + .g-xl-2, + .gx-xl-2 { + --bs-gutter-x: 0.5rem; } + .g-xl-2, + .gy-xl-2 { + --bs-gutter-y: 0.5rem; } + .g-xl-3, + .gx-xl-3 { + --bs-gutter-x: 1rem; } + .g-xl-3, + .gy-xl-3 { + --bs-gutter-y: 1rem; } + .g-xl-4, + .gx-xl-4 { + --bs-gutter-x: 1.5rem; } + .g-xl-4, + .gy-xl-4 { + --bs-gutter-y: 1.5rem; } + .g-xl-5, + .gx-xl-5 { + --bs-gutter-x: 3rem; } + .g-xl-5, + .gy-xl-5 { + --bs-gutter-y: 3rem; } } + +@media (min-width: 1400px) { + .col-xxl { + -webkit-box-flex: 1; + -ms-flex: 1 0 0%; + flex: 1 0 0%; } + .row-cols-xxl-auto > * { + -webkit-box-flex: 0; + -ms-flex: 0 0 auto; + flex: 0 0 auto; + width: auto; } + .row-cols-xxl-1 > * { + -webkit-box-flex: 0; + -ms-flex: 0 0 auto; + flex: 0 0 auto; + width: 100%; } + .row-cols-xxl-2 > * { + -webkit-box-flex: 0; + -ms-flex: 0 0 auto; + flex: 0 0 auto; + width: 50%; } + .row-cols-xxl-3 > * { + -webkit-box-flex: 0; + -ms-flex: 0 0 auto; + flex: 0 0 auto; + width: 33.33333%; } + .row-cols-xxl-4 > * { + -webkit-box-flex: 0; + -ms-flex: 0 0 auto; + flex: 0 0 auto; + width: 25%; } + .row-cols-xxl-5 > * { + -webkit-box-flex: 0; + -ms-flex: 0 0 auto; + flex: 0 0 auto; + width: 20%; } + .row-cols-xxl-6 > * { + -webkit-box-flex: 0; + -ms-flex: 0 0 auto; + flex: 0 0 auto; + width: 16.66667%; } + .col-xxl-auto { + -webkit-box-flex: 0; + -ms-flex: 0 0 auto; + flex: 0 0 auto; + width: auto; } + .col-xxl-1 { + -webkit-box-flex: 0; + -ms-flex: 0 0 auto; + flex: 0 0 auto; + width: 8.33333%; } + .col-xxl-2 { + -webkit-box-flex: 0; + -ms-flex: 0 0 auto; + flex: 0 0 auto; + width: 16.66667%; } + .col-xxl-3 { + -webkit-box-flex: 0; + -ms-flex: 0 0 auto; + flex: 0 0 auto; + width: 25%; } + .col-xxl-4 { + -webkit-box-flex: 0; + -ms-flex: 0 0 auto; + flex: 0 0 auto; + width: 33.33333%; } + .col-xxl-5 { + -webkit-box-flex: 0; + -ms-flex: 0 0 auto; + flex: 0 0 auto; + width: 41.66667%; } + .col-xxl-6 { + -webkit-box-flex: 0; + -ms-flex: 0 0 auto; + flex: 0 0 auto; + width: 50%; } + .col-xxl-7 { + -webkit-box-flex: 0; + -ms-flex: 0 0 auto; + flex: 0 0 auto; + width: 58.33333%; } + .col-xxl-8 { + -webkit-box-flex: 0; + -ms-flex: 0 0 auto; + flex: 0 0 auto; + width: 66.66667%; } + .col-xxl-9 { + -webkit-box-flex: 0; + -ms-flex: 0 0 auto; + flex: 0 0 auto; + width: 75%; } + .col-xxl-10 { + -webkit-box-flex: 0; + -ms-flex: 0 0 auto; + flex: 0 0 auto; + width: 83.33333%; } + .col-xxl-11 { + -webkit-box-flex: 0; + -ms-flex: 0 0 auto; + flex: 0 0 auto; + width: 91.66667%; } + .col-xxl-12 { + -webkit-box-flex: 0; + -ms-flex: 0 0 auto; + flex: 0 0 auto; + width: 100%; } + .offset-xxl-0 { + margin-left: 0; } + .offset-xxl-1 { + margin-left: 8.33333%; } + .offset-xxl-2 { + margin-left: 16.66667%; } + .offset-xxl-3 { + margin-left: 25%; } + .offset-xxl-4 { + margin-left: 33.33333%; } + .offset-xxl-5 { + margin-left: 41.66667%; } + .offset-xxl-6 { + margin-left: 50%; } + .offset-xxl-7 { + margin-left: 58.33333%; } + .offset-xxl-8 { + margin-left: 66.66667%; } + .offset-xxl-9 { + margin-left: 75%; } + .offset-xxl-10 { + margin-left: 83.33333%; } + .offset-xxl-11 { + margin-left: 91.66667%; } + .g-xxl-0, + .gx-xxl-0 { + --bs-gutter-x: 0; } + .g-xxl-0, + .gy-xxl-0 { + --bs-gutter-y: 0; } + .g-xxl-1, + .gx-xxl-1 { + --bs-gutter-x: 0.25rem; } + .g-xxl-1, + .gy-xxl-1 { + --bs-gutter-y: 0.25rem; } + .g-xxl-2, + .gx-xxl-2 { + --bs-gutter-x: 0.5rem; } + .g-xxl-2, + .gy-xxl-2 { + --bs-gutter-y: 0.5rem; } + .g-xxl-3, + .gx-xxl-3 { + --bs-gutter-x: 1rem; } + .g-xxl-3, + .gy-xxl-3 { + --bs-gutter-y: 1rem; } + .g-xxl-4, + .gx-xxl-4 { + --bs-gutter-x: 1.5rem; } + .g-xxl-4, + .gy-xxl-4 { + --bs-gutter-y: 1.5rem; } + .g-xxl-5, + .gx-xxl-5 { + --bs-gutter-x: 3rem; } + .g-xxl-5, + .gy-xxl-5 { + --bs-gutter-y: 3rem; } } + +.table { + --bs-table-bg: transparent; + --bs-table-striped-color: #212529; + --bs-table-striped-bg: rgba(0, 0, 0, 0.05); + --bs-table-active-color: #212529; + --bs-table-active-bg: rgba(0, 0, 0, 0.1); + --bs-table-hover-color: #212529; + --bs-table-hover-bg: rgba(0, 0, 0, 0.075); + width: 100%; + margin-bottom: 1rem; + color: #212529; + vertical-align: top; + border-color: #dee2e6; } + .table > :not(caption) > * > * { + padding: 0.5rem 0.5rem; + background-color: var(--bs-table-bg); + background-image: -webkit-gradient(linear, left top, left bottom, from(var(--bs-table-accent-bg)), to(var(--bs-table-accent-bg))); + background-image: linear-gradient(var(--bs-table-accent-bg), var(--bs-table-accent-bg)); + border-bottom-width: 1px; } + .table > tbody { + vertical-align: inherit; } + .table > thead { + vertical-align: bottom; } + .table > :not(:last-child) > :last-child > * { + border-bottom-color: currentColor; } + +.caption-top { + caption-side: top; } + +.table-sm > :not(caption) > * > * { + padding: 0.25rem 0.25rem; } + +.table-bordered > :not(caption) > * { + border-width: 1px 0; } + .table-bordered > :not(caption) > * > * { + border-width: 0 1px; } + +.table-borderless > :not(caption) > * > * { + border-bottom-width: 0; } + +.table-striped > tbody > tr:nth-of-type(odd) { + --bs-table-accent-bg: var(--bs-table-striped-bg); + color: var(--bs-table-striped-color); } + +.table-active { + --bs-table-accent-bg: var(--bs-table-active-bg); + color: var(--bs-table-active-color); } + +.table-hover > tbody > tr:hover { + --bs-table-accent-bg: var(--bs-table-hover-bg); + color: var(--bs-table-hover-color); } + +.table-primary { + --bs-table-bg: #cfe2ff; + --bs-table-striped-bg: #c5d7f2; + --bs-table-striped-color: #000; + --bs-table-active-bg: #bacbe6; + --bs-table-active-color: #000; + --bs-table-hover-bg: #bfd1ec; + --bs-table-hover-color: #000; + color: #000; + border-color: #bacbe6; } + +.table-secondary { + --bs-table-bg: #e2e3e5; + --bs-table-striped-bg: #d7d8da; + --bs-table-striped-color: #000; + --bs-table-active-bg: #cbccce; + --bs-table-active-color: #000; + --bs-table-hover-bg: #d1d2d4; + --bs-table-hover-color: #000; + color: #000; + border-color: #cbccce; } + +.table-success { + --bs-table-bg: #d1e7dd; + --bs-table-striped-bg: #c7dbd2; + --bs-table-striped-color: #000; + --bs-table-active-bg: #bcd0c7; + --bs-table-active-color: #000; + --bs-table-hover-bg: #c1d6cc; + --bs-table-hover-color: #000; + color: #000; + border-color: #bcd0c7; } + +.table-info { + --bs-table-bg: #cff4fc; + --bs-table-striped-bg: #c5e8ef; + --bs-table-striped-color: #000; + --bs-table-active-bg: #badce3; + --bs-table-active-color: #000; + --bs-table-hover-bg: #bfe2e9; + --bs-table-hover-color: #000; + color: #000; + border-color: #badce3; } + +.table-warning { + --bs-table-bg: #fff3cd; + --bs-table-striped-bg: #f2e7c3; + --bs-table-striped-color: #000; + --bs-table-active-bg: #e6dbb9; + --bs-table-active-color: #000; + --bs-table-hover-bg: #ece1be; + --bs-table-hover-color: #000; + color: #000; + border-color: #e6dbb9; } + +.table-danger { + --bs-table-bg: #f8d7da; + --bs-table-striped-bg: #eccccf; + --bs-table-striped-color: #000; + --bs-table-active-bg: #dfc2c4; + --bs-table-active-color: #000; + --bs-table-hover-bg: #e5c7ca; + --bs-table-hover-color: #000; + color: #000; + border-color: #dfc2c4; } + +.table-light { + --bs-table-bg: #f8f9fa; + --bs-table-striped-bg: #ecedee; + --bs-table-striped-color: #000; + --bs-table-active-bg: #dfe0e1; + --bs-table-active-color: #000; + --bs-table-hover-bg: #e5e6e7; + --bs-table-hover-color: #000; + color: #000; + border-color: #dfe0e1; } + +.table-dark { + --bs-table-bg: #212529; + --bs-table-striped-bg: #2c3034; + --bs-table-striped-color: #fff; + --bs-table-active-bg: #373b3e; + --bs-table-active-color: #fff; + --bs-table-hover-bg: #323539; + --bs-table-hover-color: #fff; + color: #fff; + border-color: #373b3e; } + +.table-responsive { + overflow-x: auto; + -webkit-overflow-scrolling: touch; } + +@media (max-width: 575.98px) { + .table-responsive-sm { + overflow-x: auto; + -webkit-overflow-scrolling: touch; } } + +@media (max-width: 767.98px) { + .table-responsive-md { + overflow-x: auto; + -webkit-overflow-scrolling: touch; } } + +@media (max-width: 991.98px) { + .table-responsive-lg { + overflow-x: auto; + -webkit-overflow-scrolling: touch; } } + +@media (max-width: 1199.98px) { + .table-responsive-xl { + overflow-x: auto; + -webkit-overflow-scrolling: touch; } } + +@media (max-width: 1399.98px) { + .table-responsive-xxl { + overflow-x: auto; + -webkit-overflow-scrolling: touch; } } + +.form-label { + margin-bottom: 0.5rem; } + +.col-form-label { + padding-top: calc(0.375rem + 1px); + padding-bottom: calc(0.375rem + 1px); + margin-bottom: 0; + font-size: inherit; + line-height: 1.5; } + +.col-form-label-lg { + padding-top: calc(0.5rem + 1px); + padding-bottom: calc(0.5rem + 1px); + font-size: 1.25rem; } + +.col-form-label-sm { + padding-top: calc(0.25rem + 1px); + padding-bottom: calc(0.25rem + 1px); + font-size: 0.875rem; } + +.form-text { + margin-top: 0.25rem; + font-size: 0.875em; + color: #6c757d; } + +.form-control { + display: block; + width: 100%; + padding: 0.375rem 0.75rem; + font-size: 1rem; + font-weight: 400; + line-height: 1.5; + color: #212529; + background-color: #fff; + background-clip: padding-box; + border: 1px solid #ced4da; + -webkit-appearance: none; + -moz-appearance: none; + appearance: none; + border-radius: 0.25rem; + -webkit-transition: border-color 0.15s ease-in-out, -webkit-box-shadow 0.15s ease-in-out; + transition: border-color 0.15s ease-in-out, -webkit-box-shadow 0.15s ease-in-out; + transition: border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out; + transition: border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out, -webkit-box-shadow 0.15s ease-in-out; } + @media (prefers-reduced-motion: reduce) { + .form-control { + -webkit-transition: none; + transition: none; } } + .form-control[type="file"] { + overflow: hidden; } + .form-control[type="file"]:not(:disabled):not([readonly]) { + cursor: pointer; } + .form-control:focus { + color: #212529; + background-color: #fff; + border-color: #86b7fe; + outline: 0; + -webkit-box-shadow: 0 0 0 0.25rem rgba(13, 110, 253, 0.25); + box-shadow: 0 0 0 0.25rem rgba(13, 110, 253, 0.25); } + .form-control::-webkit-date-and-time-value { + height: 1.5em; } + .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; } + .form-control::file-selector-button { + padding: 0.375rem 0.75rem; + margin: -0.375rem -0.75rem; + -webkit-margin-end: 0.75rem; + margin-inline-end: 0.75rem; + color: #212529; + background-color: #e9ecef; + pointer-events: none; + border-color: inherit; + border-style: solid; + border-width: 0; + border-inline-end-width: 1px; + border-radius: 0; + -webkit-transition: color 0.15s ease-in-out, background-color 0.15s ease-in-out, border-color 0.15s ease-in-out, -webkit-box-shadow 0.15s ease-in-out; + transition: color 0.15s ease-in-out, background-color 0.15s ease-in-out, border-color 0.15s ease-in-out, -webkit-box-shadow 0.15s ease-in-out; + transition: color 0.15s ease-in-out, background-color 0.15s ease-in-out, border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out; + transition: color 0.15s ease-in-out, background-color 0.15s ease-in-out, border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out, -webkit-box-shadow 0.15s ease-in-out; } + @media (prefers-reduced-motion: reduce) { + .form-control::file-selector-button { + -webkit-transition: none; + transition: none; } } + .form-control:hover:not(:disabled):not([readonly])::file-selector-button { + background-color: #dde0e3; } + .form-control::-webkit-file-upload-button { + padding: 0.375rem 0.75rem; + margin: -0.375rem -0.75rem; + -webkit-margin-end: 0.75rem; + margin-inline-end: 0.75rem; + color: #212529; + background-color: #e9ecef; + pointer-events: none; + border-color: inherit; + border-style: solid; + border-width: 0; + border-inline-end-width: 1px; + border-radius: 0; + -webkit-transition: color 0.15s ease-in-out, background-color 0.15s ease-in-out, border-color 0.15s ease-in-out, -webkit-box-shadow 0.15s ease-in-out; + transition: color 0.15s ease-in-out, background-color 0.15s ease-in-out, border-color 0.15s ease-in-out, -webkit-box-shadow 0.15s ease-in-out; + transition: color 0.15s ease-in-out, background-color 0.15s ease-in-out, border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out; + transition: color 0.15s ease-in-out, background-color 0.15s ease-in-out, border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out, -webkit-box-shadow 0.15s ease-in-out; } + @media (prefers-reduced-motion: reduce) { + .form-control::-webkit-file-upload-button { + -webkit-transition: none; + transition: none; } } + .form-control:hover:not(:disabled):not([readonly])::-webkit-file-upload-button { + background-color: #dde0e3; } + +.form-control-plaintext { + display: block; + width: 100%; + padding: 0.375rem 0; + margin-bottom: 0; + line-height: 1.5; + color: #212529; + background-color: transparent; + border: solid transparent; + border-width: 1px 0; } + .form-control-plaintext.form-control-sm, .form-control-plaintext.form-control-lg { + padding-right: 0; + padding-left: 0; } + +.form-control-sm { + min-height: calc(1.5em + 0.5rem + 2px); + padding: 0.25rem 0.5rem; + font-size: 0.875rem; + border-radius: 0.2rem; } + .form-control-sm::file-selector-button { + padding: 0.25rem 0.5rem; + margin: -0.25rem -0.5rem; + -webkit-margin-end: 0.5rem; + margin-inline-end: 0.5rem; } + .form-control-sm::-webkit-file-upload-button { + padding: 0.25rem 0.5rem; + margin: -0.25rem -0.5rem; + -webkit-margin-end: 0.5rem; + margin-inline-end: 0.5rem; } + +.form-control-lg { + min-height: calc(1.5em + 1rem + 2px); + padding: 0.5rem 1rem; + font-size: 1.25rem; + border-radius: 0.3rem; } + .form-control-lg::file-selector-button { + padding: 0.5rem 1rem; + margin: -0.5rem -1rem; + -webkit-margin-end: 1rem; + margin-inline-end: 1rem; } + .form-control-lg::-webkit-file-upload-button { + padding: 0.5rem 1rem; + margin: -0.5rem -1rem; + -webkit-margin-end: 1rem; + margin-inline-end: 1rem; } + +textarea.form-control { + min-height: calc(1.5em + 0.75rem + 2px); } + +textarea.form-control-sm { + min-height: calc(1.5em + 0.5rem + 2px); } + +textarea.form-control-lg { + min-height: calc(1.5em + 1rem + 2px); } + +.form-control-color { + max-width: 3rem; + height: auto; + padding: 0.375rem; } + .form-control-color:not(:disabled):not([readonly]) { + cursor: pointer; } + .form-control-color::-moz-color-swatch { + height: 1.5em; + border-radius: 0.25rem; } + .form-control-color::-webkit-color-swatch { + height: 1.5em; + border-radius: 0.25rem; } + +.form-select { + display: block; + width: 100%; + padding: 0.375rem 1.75rem 0.375rem 0.75rem; + font-size: 1rem; + font-weight: 400; + line-height: 1.5; + color: #212529; + vertical-align: middle; + background-color: #fff; + background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3e%3cpath fill='none' stroke='%23343a40' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' d='M2 5l6 6 6-6'/%3e%3c/svg%3e"); + background-repeat: no-repeat; + background-position: right 0.75rem center; + background-size: 16px 12px; + border: 1px solid #ced4da; + border-radius: 0.25rem; + -webkit-appearance: none; + -moz-appearance: none; + appearance: none; } + .form-select:focus { + border-color: #86b7fe; + outline: 0; + -webkit-box-shadow: 0 0 0 0.25rem rgba(13, 110, 253, 0.25); + box-shadow: 0 0 0 0.25rem rgba(13, 110, 253, 0.25); } + .form-select[multiple], .form-select[size]:not([size="1"]) { + padding-right: 0.75rem; + background-image: none; } + .form-select:disabled { + color: #6c757d; + background-color: #e9ecef; } + .form-select:-moz-focusring { + color: transparent; + text-shadow: 0 0 0 #212529; } + +.form-select-sm { + padding-top: 0.25rem; + padding-bottom: 0.25rem; + padding-left: 0.5rem; + font-size: 0.875rem; } + +.form-select-lg { + padding-top: 0.5rem; + padding-bottom: 0.5rem; + padding-left: 1rem; + font-size: 1.25rem; } + +.form-check { + display: block; + min-height: 1.5rem; + padding-left: 1.5em; + margin-bottom: 0.125rem; } + .form-check .form-check-input { + float: left; + margin-left: -1.5em; } + +.form-check-input { + width: 1em; + height: 1em; + margin-top: 0.25em; + vertical-align: top; + background-color: #fff; + background-repeat: no-repeat; + background-position: center; + background-size: contain; + border: 1px solid rgba(0, 0, 0, 0.25); + -webkit-appearance: none; + -moz-appearance: none; + appearance: none; + -webkit-print-color-adjust: exact; + color-adjust: exact; + -webkit-transition: background-color 0.15s ease-in-out, background-position 0.15s ease-in-out, border-color 0.15s ease-in-out, -webkit-box-shadow 0.15s ease-in-out; + transition: background-color 0.15s ease-in-out, background-position 0.15s ease-in-out, border-color 0.15s ease-in-out, -webkit-box-shadow 0.15s ease-in-out; + transition: background-color 0.15s ease-in-out, background-position 0.15s ease-in-out, border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out; + transition: background-color 0.15s ease-in-out, background-position 0.15s ease-in-out, border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out, -webkit-box-shadow 0.15s ease-in-out; } + @media (prefers-reduced-motion: reduce) { + .form-check-input { + -webkit-transition: none; + transition: none; } } + .form-check-input[type="checkbox"] { + border-radius: 0.25em; } + .form-check-input[type="radio"] { + border-radius: 50%; } + .form-check-input:active { + -webkit-filter: brightness(90%); + filter: brightness(90%); } + .form-check-input:focus { + border-color: #86b7fe; + outline: 0; + -webkit-box-shadow: 0 0 0 0.25rem rgba(13, 110, 253, 0.25); + box-shadow: 0 0 0 0.25rem rgba(13, 110, 253, 0.25); } + .form-check-input:checked { + background-color: #0d6efd; + border-color: #0d6efd; } + .form-check-input:checked[type="checkbox"] { + background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 20 20'%3e%3cpath fill='none' stroke='%23fff' stroke-linecap='round' stroke-linejoin='round' stroke-width='3' d='M6 10l3 3l6-6'/%3e%3c/svg%3e"); } + .form-check-input:checked[type="radio"] { + background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='-4 -4 8 8'%3e%3ccircle r='2' fill='%23fff'/%3e%3c/svg%3e"); } + .form-check-input[type="checkbox"]:indeterminate { + background-color: #0d6efd; + border-color: #0d6efd; + background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 20 20'%3e%3cpath fill='none' stroke='%23fff' stroke-linecap='round' stroke-linejoin='round' stroke-width='3' d='M6 10h8'/%3e%3c/svg%3e"); } + .form-check-input:disabled { + pointer-events: none; + -webkit-filter: none; + filter: none; + opacity: 0.5; } + .form-check-input[disabled] ~ .form-check-label, .form-check-input:disabled ~ .form-check-label { + opacity: 0.5; } + +.form-switch { + padding-left: 2.5em; } + .form-switch .form-check-input { + width: 2em; + margin-left: -2.5em; + background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='-4 -4 8 8'%3e%3ccircle r='3' fill='rgba%280, 0, 0, 0.25%29'/%3e%3c/svg%3e"); + background-position: left center; + border-radius: 2em; } + .form-switch .form-check-input:focus { + background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='-4 -4 8 8'%3e%3ccircle r='3' fill='%2386b7fe'/%3e%3c/svg%3e"); } + .form-switch .form-check-input:checked { + background-position: right center; + background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='-4 -4 8 8'%3e%3ccircle r='3' fill='%23fff'/%3e%3c/svg%3e"); } + +.form-check-inline { + display: inline-block; + margin-right: 1rem; } + +.btn-check { + position: absolute; + clip: rect(0, 0, 0, 0); + pointer-events: none; } + .btn-check[disabled] + .btn, .btn-check:disabled + .btn { + pointer-events: none; + -webkit-filter: none; + filter: none; + opacity: 0.65; } + +.form-range { + width: 100%; + height: 1.5rem; + padding: 0; + background-color: transparent; + -webkit-appearance: none; + -moz-appearance: none; + appearance: none; } + .form-range:focus { + outline: none; } + .form-range:focus::-webkit-slider-thumb { + -webkit-box-shadow: 0 0 0 1px #fff, 0 0 0 0.25rem rgba(13, 110, 253, 0.25); + box-shadow: 0 0 0 1px #fff, 0 0 0 0.25rem rgba(13, 110, 253, 0.25); } + .form-range:focus::-moz-range-thumb { + box-shadow: 0 0 0 1px #fff, 0 0 0 0.25rem rgba(13, 110, 253, 0.25); } + .form-range::-moz-focus-outer { + border: 0; } + .form-range::-webkit-slider-thumb { + width: 1rem; + height: 1rem; + margin-top: -0.25rem; + background-color: #0d6efd; + border: 0; + border-radius: 1rem; + -webkit-transition: background-color 0.15s ease-in-out, border-color 0.15s ease-in-out, -webkit-box-shadow 0.15s ease-in-out; + transition: background-color 0.15s ease-in-out, border-color 0.15s ease-in-out, -webkit-box-shadow 0.15s ease-in-out; + transition: background-color 0.15s ease-in-out, border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out; + transition: background-color 0.15s ease-in-out, border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out, -webkit-box-shadow 0.15s ease-in-out; + -webkit-appearance: none; + appearance: none; } + @media (prefers-reduced-motion: reduce) { + .form-range::-webkit-slider-thumb { + -webkit-transition: none; + transition: none; } } + .form-range::-webkit-slider-thumb:active { + background-color: #b6d4fe; } + .form-range::-webkit-slider-runnable-track { + width: 100%; + height: 0.5rem; + color: transparent; + cursor: pointer; + background-color: #dee2e6; + border-color: transparent; + border-radius: 1rem; } + .form-range::-moz-range-thumb { + width: 1rem; + height: 1rem; + background-color: #0d6efd; + border: 0; + border-radius: 1rem; + -moz-transition: background-color 0.15s ease-in-out, border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out; + transition: background-color 0.15s ease-in-out, border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out; + -moz-appearance: none; + appearance: none; } + @media (prefers-reduced-motion: reduce) { + .form-range::-moz-range-thumb { + -moz-transition: none; + transition: none; } } + .form-range::-moz-range-thumb:active { + background-color: #b6d4fe; } + .form-range::-moz-range-track { + width: 100%; + height: 0.5rem; + color: transparent; + cursor: pointer; + background-color: #dee2e6; + border-color: transparent; + border-radius: 1rem; } + .form-range:disabled { + pointer-events: none; } + .form-range:disabled::-webkit-slider-thumb { + background-color: #adb5bd; } + .form-range:disabled::-moz-range-thumb { + background-color: #adb5bd; } + +.form-floating { + position: relative; } + .form-floating > .form-control, + .form-floating > .form-select { + height: calc(3.5rem + 2px); + padding: 1rem 0.75rem; } + .form-floating > label { + position: absolute; + top: 0; + left: 0; + height: 100%; + padding: 1rem 0.75rem; + pointer-events: none; + border: 1px solid transparent; + -webkit-transform-origin: 0 0; + transform-origin: 0 0; + -webkit-transition: opacity 0.1s ease-in-out, -webkit-transform 0.1s ease-in-out; + transition: opacity 0.1s ease-in-out, -webkit-transform 0.1s ease-in-out; + transition: opacity 0.1s ease-in-out, transform 0.1s ease-in-out; + transition: opacity 0.1s ease-in-out, transform 0.1s ease-in-out, -webkit-transform 0.1s ease-in-out; } + @media (prefers-reduced-motion: reduce) { + .form-floating > label { + -webkit-transition: none; + transition: none; } } + .form-floating > .form-control::-webkit-input-placeholder { + color: transparent; } + .form-floating > .form-control::-moz-placeholder { + color: transparent; } + .form-floating > .form-control:-ms-input-placeholder { + color: transparent; } + .form-floating > .form-control::-ms-input-placeholder { + color: transparent; } + .form-floating > .form-control::placeholder { + color: transparent; } + .form-floating > .form-control:not(:-moz-placeholder-shown) { + padding-top: 1.625rem; + padding-bottom: 0.625rem; } + .form-floating > .form-control:not(:-ms-input-placeholder) { + padding-top: 1.625rem; + padding-bottom: 0.625rem; } + .form-floating > .form-control:focus, .form-floating > .form-control:not(:placeholder-shown) { + padding-top: 1.625rem; + padding-bottom: 0.625rem; } + .form-floating > .form-control:-webkit-autofill { + padding-top: 1.625rem; + padding-bottom: 0.625rem; } + .form-floating > .form-select { + padding-top: 1.625rem; + padding-bottom: 0.625rem; } + .form-floating > .form-control:not(:-moz-placeholder-shown) ~ label { + opacity: 0.65; + transform: scale(0.85) translateY(-0.5rem) translateX(0.15rem); } + .form-floating > .form-control:not(:-ms-input-placeholder) ~ label { + opacity: 0.65; + transform: scale(0.85) translateY(-0.5rem) translateX(0.15rem); } + .form-floating > .form-control:focus ~ label, + .form-floating > .form-control:not(:placeholder-shown) ~ label, + .form-floating > .form-select ~ label { + opacity: 0.65; + -webkit-transform: scale(0.85) translateY(-0.5rem) translateX(0.15rem); + transform: scale(0.85) translateY(-0.5rem) translateX(0.15rem); } + .form-floating > .form-control:-webkit-autofill ~ label { + opacity: 0.65; + -webkit-transform: scale(0.85) translateY(-0.5rem) translateX(0.15rem); + transform: scale(0.85) translateY(-0.5rem) translateX(0.15rem); } + +.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 > .form-control, + .input-group > .form-select { + position: relative; + -webkit-box-flex: 1; + -ms-flex: 1 1 auto; + flex: 1 1 auto; + width: 1%; + min-width: 0; } + .input-group > .form-control:focus, + .input-group > .form-select:focus { + z-index: 3; } + .input-group .btn { + position: relative; + z-index: 2; } + .input-group .btn:focus { + z-index: 3; } + +.input-group-text { + display: -webkit-box; + display: -ms-flexbox; + display: flex; + -webkit-box-align: center; + -ms-flex-align: center; + align-items: center; + padding: 0.375rem 0.75rem; + font-size: 1rem; + font-weight: 400; + line-height: 1.5; + color: #212529; + text-align: center; + white-space: nowrap; + background-color: #e9ecef; + border: 1px solid #ced4da; + border-radius: 0.25rem; } + +.input-group-lg > .form-control, +.input-group-lg > .form-select, +.input-group-lg > .input-group-text, +.input-group-lg > .btn { + padding: 0.5rem 1rem; + font-size: 1.25rem; + border-radius: 0.3rem; } + +.input-group-sm > .form-control, +.input-group-sm > .form-select, +.input-group-sm > .input-group-text, +.input-group-sm > .btn { + padding: 0.25rem 0.5rem; + font-size: 0.875rem; + border-radius: 0.2rem; } + +.input-group-lg > .form-select, +.input-group-sm > .form-select { + padding-right: 1.75rem; } + +.input-group:not(.has-validation) > :not(:last-child):not(.dropdown-toggle):not(.dropdown-menu), +.input-group:not(.has-validation) > .dropdown-toggle:nth-last-child(n + 3) { + border-top-right-radius: 0; + border-bottom-right-radius: 0; } + +.input-group.has-validation > :nth-last-child(n + 3):not(.dropdown-toggle):not(.dropdown-menu), +.input-group.has-validation > .dropdown-toggle:nth-last-child(n + 4) { + border-top-right-radius: 0; + border-bottom-right-radius: 0; } + +.input-group > :not(:first-child):not(.dropdown-menu):not(.valid-tooltip):not(.valid-feedback):not(.invalid-tooltip):not(.invalid-feedback) { + margin-left: -1px; + border-top-left-radius: 0; + border-bottom-left-radius: 0; } + +.valid-feedback { + display: none; + width: 100%; + margin-top: 0.25rem; + font-size: 0.875em; + color: #198754; } + +.valid-tooltip { + position: absolute; + top: 100%; + z-index: 5; + display: none; + max-width: 100%; + padding: 0.25rem 0.5rem; + margin-top: .1rem; + font-size: 0.875rem; + color: #fff; + background-color: rgba(25, 135, 84, 0.9); + border-radius: 0.25rem; } + +.was-validated :valid ~ .valid-feedback, +.was-validated :valid ~ .valid-tooltip, +.is-valid ~ .valid-feedback, +.is-valid ~ .valid-tooltip { + display: block; } + +.was-validated .form-control:valid, .form-control.is-valid { + border-color: #198754; + padding-right: calc(1.5em + 0.75rem); + background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8 8'%3e%3cpath fill='%23198754' d='M2.3 6.73L.6 4.53c-.4-1.04.46-1.4 1.1-.8l1.1 1.4 3.4-3.8c.6-.63 1.6-.27 1.2.7l-4 4.6c-.43.5-.8.4-1.1.1z'/%3e%3c/svg%3e"); + background-repeat: no-repeat; + background-position: right calc(0.375em + 0.1875rem) center; + background-size: calc(0.75em + 0.375rem) calc(0.75em + 0.375rem); } + .was-validated .form-control:valid:focus, .form-control.is-valid:focus { + border-color: #198754; + -webkit-box-shadow: 0 0 0 0.25rem rgba(25, 135, 84, 0.25); + box-shadow: 0 0 0 0.25rem rgba(25, 135, 84, 0.25); } + +.was-validated textarea.form-control:valid, textarea.form-control.is-valid { + padding-right: calc(1.5em + 0.75rem); + background-position: top calc(0.375em + 0.1875rem) right calc(0.375em + 0.1875rem); } + +.was-validated .form-select:valid, .form-select.is-valid { + border-color: #198754; + padding-right: calc(0.75em + 2.3125rem); + background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3e%3cpath fill='none' stroke='%23343a40' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' d='M2 5l6 6 6-6'/%3e%3c/svg%3e"), url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8 8'%3e%3cpath fill='%23198754' d='M2.3 6.73L.6 4.53c-.4-1.04.46-1.4 1.1-.8l1.1 1.4 3.4-3.8c.6-.63 1.6-.27 1.2.7l-4 4.6c-.43.5-.8.4-1.1.1z'/%3e%3c/svg%3e"); + background-position: right 0.75rem center, center right 1.75rem; + background-size: 16px 12px, calc(0.75em + 0.375rem) calc(0.75em + 0.375rem); } + .was-validated .form-select:valid:focus, .form-select.is-valid:focus { + border-color: #198754; + -webkit-box-shadow: 0 0 0 0.25rem rgba(25, 135, 84, 0.25); + box-shadow: 0 0 0 0.25rem rgba(25, 135, 84, 0.25); } + +.was-validated .form-check-input:valid, .form-check-input.is-valid { + border-color: #198754; } + .was-validated .form-check-input:valid:checked, .form-check-input.is-valid:checked { + background-color: #198754; } + .was-validated .form-check-input:valid:focus, .form-check-input.is-valid:focus { + -webkit-box-shadow: 0 0 0 0.25rem rgba(25, 135, 84, 0.25); + box-shadow: 0 0 0 0.25rem rgba(25, 135, 84, 0.25); } + .was-validated .form-check-input:valid ~ .form-check-label, .form-check-input.is-valid ~ .form-check-label { + color: #198754; } + +.form-check-inline .form-check-input ~ .valid-feedback { + margin-left: .5em; } + +.invalid-feedback { + display: none; + width: 100%; + margin-top: 0.25rem; + font-size: 0.875em; + color: #dc3545; } + +.invalid-tooltip { + position: absolute; + top: 100%; + z-index: 5; + display: none; + max-width: 100%; + padding: 0.25rem 0.5rem; + margin-top: .1rem; + font-size: 0.875rem; + color: #fff; + background-color: rgba(220, 53, 69, 0.9); + border-radius: 0.25rem; } + +.was-validated :invalid ~ .invalid-feedback, +.was-validated :invalid ~ .invalid-tooltip, +.is-invalid ~ .invalid-feedback, +.is-invalid ~ .invalid-tooltip { + display: block; } + +.was-validated .form-control:invalid, .form-control.is-invalid { + border-color: #dc3545; + padding-right: calc(1.5em + 0.75rem); + background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 12 12' width='12' height='12' fill='none' stroke='%23dc3545'%3e%3ccircle cx='6' cy='6' r='4.5'/%3e%3cpath stroke-linejoin='round' d='M5.8 3.6h.4L6 6.5z'/%3e%3ccircle cx='6' cy='8.2' r='.6' fill='%23dc3545' stroke='none'/%3e%3c/svg%3e"); + background-repeat: no-repeat; + background-position: right calc(0.375em + 0.1875rem) center; + background-size: calc(0.75em + 0.375rem) calc(0.75em + 0.375rem); } + .was-validated .form-control:invalid:focus, .form-control.is-invalid:focus { + border-color: #dc3545; + -webkit-box-shadow: 0 0 0 0.25rem rgba(220, 53, 69, 0.25); + box-shadow: 0 0 0 0.25rem rgba(220, 53, 69, 0.25); } + +.was-validated textarea.form-control:invalid, textarea.form-control.is-invalid { + padding-right: calc(1.5em + 0.75rem); + background-position: top calc(0.375em + 0.1875rem) right calc(0.375em + 0.1875rem); } + +.was-validated .form-select:invalid, .form-select.is-invalid { + border-color: #dc3545; + padding-right: calc(0.75em + 2.3125rem); + background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3e%3cpath fill='none' stroke='%23343a40' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' d='M2 5l6 6 6-6'/%3e%3c/svg%3e"), url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 12 12' width='12' height='12' fill='none' stroke='%23dc3545'%3e%3ccircle cx='6' cy='6' r='4.5'/%3e%3cpath stroke-linejoin='round' d='M5.8 3.6h.4L6 6.5z'/%3e%3ccircle cx='6' cy='8.2' r='.6' fill='%23dc3545' stroke='none'/%3e%3c/svg%3e"); + background-position: right 0.75rem center, center right 1.75rem; + background-size: 16px 12px, calc(0.75em + 0.375rem) calc(0.75em + 0.375rem); } + .was-validated .form-select:invalid:focus, .form-select.is-invalid:focus { + border-color: #dc3545; + -webkit-box-shadow: 0 0 0 0.25rem rgba(220, 53, 69, 0.25); + box-shadow: 0 0 0 0.25rem rgba(220, 53, 69, 0.25); } + +.was-validated .form-check-input:invalid, .form-check-input.is-invalid { + border-color: #dc3545; } + .was-validated .form-check-input:invalid:checked, .form-check-input.is-invalid:checked { + background-color: #dc3545; } + .was-validated .form-check-input:invalid:focus, .form-check-input.is-invalid:focus { + -webkit-box-shadow: 0 0 0 0.25rem rgba(220, 53, 69, 0.25); + box-shadow: 0 0 0 0.25rem rgba(220, 53, 69, 0.25); } + .was-validated .form-check-input:invalid ~ .form-check-label, .form-check-input.is-invalid ~ .form-check-label { + color: #dc3545; } + +.form-check-inline .form-check-input ~ .invalid-feedback { + margin-left: .5em; } + +.btn { + display: inline-block; + font-weight: 400; + line-height: 1.5; + color: #212529; + text-align: center; + text-decoration: none; + vertical-align: middle; + cursor: pointer; + -webkit-user-select: none; + -moz-user-select: none; + -ms-user-select: none; + user-select: none; + background-color: transparent; + border: 1px solid transparent; + padding: 0.375rem 0.75rem; + font-size: 1rem; + border-radius: 0.25rem; + -webkit-transition: color 0.15s ease-in-out, background-color 0.15s ease-in-out, border-color 0.15s ease-in-out, -webkit-box-shadow 0.15s ease-in-out; + transition: color 0.15s ease-in-out, background-color 0.15s ease-in-out, border-color 0.15s ease-in-out, -webkit-box-shadow 0.15s ease-in-out; + transition: color 0.15s ease-in-out, background-color 0.15s ease-in-out, border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out; + transition: color 0.15s ease-in-out, background-color 0.15s ease-in-out, border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out, -webkit-box-shadow 0.15s ease-in-out; } + @media (prefers-reduced-motion: reduce) { + .btn { + -webkit-transition: none; + transition: none; } } + .btn:hover { + color: #212529; } + .btn-check:focus + .btn, .btn:focus { + outline: 0; + -webkit-box-shadow: 0 0 0 0.25rem rgba(13, 110, 253, 0.25); + box-shadow: 0 0 0 0.25rem rgba(13, 110, 253, 0.25); } + .btn:disabled, .btn.disabled, + fieldset:disabled .btn { + pointer-events: none; + opacity: 0.65; } + +.btn-primary { + color: #fff; + background-color: #0d6efd; + border-color: #0d6efd; } + .btn-primary:hover { + color: #fff; + background-color: #0b5ed7; + border-color: #0a58ca; } + .btn-check:focus + .btn-primary, .btn-primary:focus { + color: #fff; + background-color: #0b5ed7; + border-color: #0a58ca; + -webkit-box-shadow: 0 0 0 0.25rem rgba(49, 132, 253, 0.5); + box-shadow: 0 0 0 0.25rem rgba(49, 132, 253, 0.5); } + .btn-check:checked + .btn-primary, + .btn-check:active + .btn-primary, .btn-primary:active, .btn-primary.active, + .show > .btn-primary.dropdown-toggle { + color: #fff; + background-color: #0a58ca; + border-color: #0a53be; } + .btn-check:checked + .btn-primary:focus, + .btn-check:active + .btn-primary:focus, .btn-primary:active:focus, .btn-primary.active:focus, + .show > .btn-primary.dropdown-toggle:focus { + -webkit-box-shadow: 0 0 0 0.25rem rgba(49, 132, 253, 0.5); + box-shadow: 0 0 0 0.25rem rgba(49, 132, 253, 0.5); } + .btn-primary:disabled, .btn-primary.disabled { + color: #fff; + background-color: #0d6efd; + border-color: #0d6efd; } + +.btn-secondary { + color: #fff; + background-color: #6c757d; + border-color: #6c757d; } + .btn-secondary:hover { + color: #fff; + background-color: #5c636a; + border-color: #565e64; } + .btn-check:focus + .btn-secondary, .btn-secondary:focus { + color: #fff; + background-color: #5c636a; + border-color: #565e64; + -webkit-box-shadow: 0 0 0 0.25rem rgba(130, 138, 145, 0.5); + box-shadow: 0 0 0 0.25rem rgba(130, 138, 145, 0.5); } + .btn-check:checked + .btn-secondary, + .btn-check:active + .btn-secondary, .btn-secondary:active, .btn-secondary.active, + .show > .btn-secondary.dropdown-toggle { + color: #fff; + background-color: #565e64; + border-color: #51585e; } + .btn-check:checked + .btn-secondary:focus, + .btn-check:active + .btn-secondary:focus, .btn-secondary:active:focus, .btn-secondary.active:focus, + .show > .btn-secondary.dropdown-toggle:focus { + -webkit-box-shadow: 0 0 0 0.25rem rgba(130, 138, 145, 0.5); + box-shadow: 0 0 0 0.25rem rgba(130, 138, 145, 0.5); } + .btn-secondary:disabled, .btn-secondary.disabled { + color: #fff; + background-color: #6c757d; + border-color: #6c757d; } + +.btn-success { + color: #fff; + background-color: #198754; + border-color: #198754; } + .btn-success:hover { + color: #fff; + background-color: #157347; + border-color: #146c43; } + .btn-check:focus + .btn-success, .btn-success:focus { + color: #fff; + background-color: #157347; + border-color: #146c43; + -webkit-box-shadow: 0 0 0 0.25rem rgba(60, 153, 110, 0.5); + box-shadow: 0 0 0 0.25rem rgba(60, 153, 110, 0.5); } + .btn-check:checked + .btn-success, + .btn-check:active + .btn-success, .btn-success:active, .btn-success.active, + .show > .btn-success.dropdown-toggle { + color: #fff; + background-color: #146c43; + border-color: #13653f; } + .btn-check:checked + .btn-success:focus, + .btn-check:active + .btn-success:focus, .btn-success:active:focus, .btn-success.active:focus, + .show > .btn-success.dropdown-toggle:focus { + -webkit-box-shadow: 0 0 0 0.25rem rgba(60, 153, 110, 0.5); + box-shadow: 0 0 0 0.25rem rgba(60, 153, 110, 0.5); } + .btn-success:disabled, .btn-success.disabled { + color: #fff; + background-color: #198754; + border-color: #198754; } + +.btn-info { + color: #000; + background-color: #0dcaf0; + border-color: #0dcaf0; } + .btn-info:hover { + color: #000; + background-color: #31d2f2; + border-color: #25cff2; } + .btn-check:focus + .btn-info, .btn-info:focus { + color: #000; + background-color: #31d2f2; + border-color: #25cff2; + -webkit-box-shadow: 0 0 0 0.25rem rgba(11, 172, 204, 0.5); + box-shadow: 0 0 0 0.25rem rgba(11, 172, 204, 0.5); } + .btn-check:checked + .btn-info, + .btn-check:active + .btn-info, .btn-info:active, .btn-info.active, + .show > .btn-info.dropdown-toggle { + color: #000; + background-color: #3dd5f3; + border-color: #25cff2; } + .btn-check:checked + .btn-info:focus, + .btn-check:active + .btn-info:focus, .btn-info:active:focus, .btn-info.active:focus, + .show > .btn-info.dropdown-toggle:focus { + -webkit-box-shadow: 0 0 0 0.25rem rgba(11, 172, 204, 0.5); + box-shadow: 0 0 0 0.25rem rgba(11, 172, 204, 0.5); } + .btn-info:disabled, .btn-info.disabled { + color: #000; + background-color: #0dcaf0; + border-color: #0dcaf0; } + +.btn-warning { + color: #000; + background-color: #ffc107; + border-color: #ffc107; } + .btn-warning:hover { + color: #000; + background-color: #ffca2c; + border-color: #ffc720; } + .btn-check:focus + .btn-warning, .btn-warning:focus { + color: #000; + background-color: #ffca2c; + border-color: #ffc720; + -webkit-box-shadow: 0 0 0 0.25rem rgba(217, 164, 6, 0.5); + box-shadow: 0 0 0 0.25rem rgba(217, 164, 6, 0.5); } + .btn-check:checked + .btn-warning, + .btn-check:active + .btn-warning, .btn-warning:active, .btn-warning.active, + .show > .btn-warning.dropdown-toggle { + color: #000; + background-color: #ffcd39; + border-color: #ffc720; } + .btn-check:checked + .btn-warning:focus, + .btn-check:active + .btn-warning:focus, .btn-warning:active:focus, .btn-warning.active:focus, + .show > .btn-warning.dropdown-toggle:focus { + -webkit-box-shadow: 0 0 0 0.25rem rgba(217, 164, 6, 0.5); + box-shadow: 0 0 0 0.25rem rgba(217, 164, 6, 0.5); } + .btn-warning:disabled, .btn-warning.disabled { + color: #000; + background-color: #ffc107; + border-color: #ffc107; } + +.btn-danger { + color: #fff; + background-color: #dc3545; + border-color: #dc3545; } + .btn-danger:hover { + color: #fff; + background-color: #bb2d3b; + border-color: #b02a37; } + .btn-check:focus + .btn-danger, .btn-danger:focus { + color: #fff; + background-color: #bb2d3b; + border-color: #b02a37; + -webkit-box-shadow: 0 0 0 0.25rem rgba(225, 83, 97, 0.5); + box-shadow: 0 0 0 0.25rem rgba(225, 83, 97, 0.5); } + .btn-check:checked + .btn-danger, + .btn-check:active + .btn-danger, .btn-danger:active, .btn-danger.active, + .show > .btn-danger.dropdown-toggle { + color: #fff; + background-color: #b02a37; + border-color: #a52834; } + .btn-check:checked + .btn-danger:focus, + .btn-check:active + .btn-danger:focus, .btn-danger:active:focus, .btn-danger.active:focus, + .show > .btn-danger.dropdown-toggle:focus { + -webkit-box-shadow: 0 0 0 0.25rem rgba(225, 83, 97, 0.5); + box-shadow: 0 0 0 0.25rem rgba(225, 83, 97, 0.5); } + .btn-danger:disabled, .btn-danger.disabled { + color: #fff; + background-color: #dc3545; + border-color: #dc3545; } + +.btn-light { + color: #000; + background-color: #f8f9fa; + border-color: #f8f9fa; } + .btn-light:hover { + color: #000; + background-color: #f9fafb; + border-color: #f9fafb; } + .btn-check:focus + .btn-light, .btn-light:focus { + color: #000; + background-color: #f9fafb; + border-color: #f9fafb; + -webkit-box-shadow: 0 0 0 0.25rem rgba(211, 212, 213, 0.5); + box-shadow: 0 0 0 0.25rem rgba(211, 212, 213, 0.5); } + .btn-check:checked + .btn-light, + .btn-check:active + .btn-light, .btn-light:active, .btn-light.active, + .show > .btn-light.dropdown-toggle { + color: #000; + background-color: #f9fafb; + border-color: #f9fafb; } + .btn-check:checked + .btn-light:focus, + .btn-check:active + .btn-light:focus, .btn-light:active:focus, .btn-light.active:focus, + .show > .btn-light.dropdown-toggle:focus { + -webkit-box-shadow: 0 0 0 0.25rem rgba(211, 212, 213, 0.5); + box-shadow: 0 0 0 0.25rem rgba(211, 212, 213, 0.5); } + .btn-light:disabled, .btn-light.disabled { + color: #000; + background-color: #f8f9fa; + border-color: #f8f9fa; } + +.btn-dark { + color: #fff; + background-color: #212529; + border-color: #212529; } + .btn-dark:hover { + color: #fff; + background-color: #1c1f23; + border-color: #1a1e21; } + .btn-check:focus + .btn-dark, .btn-dark:focus { + color: #fff; + background-color: #1c1f23; + border-color: #1a1e21; + -webkit-box-shadow: 0 0 0 0.25rem rgba(66, 70, 73, 0.5); + box-shadow: 0 0 0 0.25rem rgba(66, 70, 73, 0.5); } + .btn-check:checked + .btn-dark, + .btn-check:active + .btn-dark, .btn-dark:active, .btn-dark.active, + .show > .btn-dark.dropdown-toggle { + color: #fff; + background-color: #1a1e21; + border-color: #191c1f; } + .btn-check:checked + .btn-dark:focus, + .btn-check:active + .btn-dark:focus, .btn-dark:active:focus, .btn-dark.active:focus, + .show > .btn-dark.dropdown-toggle:focus { + -webkit-box-shadow: 0 0 0 0.25rem rgba(66, 70, 73, 0.5); + box-shadow: 0 0 0 0.25rem rgba(66, 70, 73, 0.5); } + .btn-dark:disabled, .btn-dark.disabled { + color: #fff; + background-color: #212529; + border-color: #212529; } + +.btn-outline-primary { + color: #0d6efd; + border-color: #0d6efd; } + .btn-outline-primary:hover { + color: #fff; + background-color: #0d6efd; + border-color: #0d6efd; } + .btn-check:focus + .btn-outline-primary, .btn-outline-primary:focus { + -webkit-box-shadow: 0 0 0 0.25rem rgba(13, 110, 253, 0.5); + box-shadow: 0 0 0 0.25rem rgba(13, 110, 253, 0.5); } + .btn-check:checked + .btn-outline-primary, + .btn-check:active + .btn-outline-primary, .btn-outline-primary:active, .btn-outline-primary.active, .btn-outline-primary.dropdown-toggle.show { + color: #fff; + background-color: #0d6efd; + border-color: #0d6efd; } + .btn-check:checked + .btn-outline-primary:focus, + .btn-check:active + .btn-outline-primary:focus, .btn-outline-primary:active:focus, .btn-outline-primary.active:focus, .btn-outline-primary.dropdown-toggle.show:focus { + -webkit-box-shadow: 0 0 0 0.25rem rgba(13, 110, 253, 0.5); + box-shadow: 0 0 0 0.25rem rgba(13, 110, 253, 0.5); } + .btn-outline-primary:disabled, .btn-outline-primary.disabled { + color: #0d6efd; + background-color: transparent; } + +.btn-outline-secondary { + color: #6c757d; + border-color: #6c757d; } + .btn-outline-secondary:hover { + color: #fff; + background-color: #6c757d; + border-color: #6c757d; } + .btn-check:focus + .btn-outline-secondary, .btn-outline-secondary:focus { + -webkit-box-shadow: 0 0 0 0.25rem rgba(108, 117, 125, 0.5); + box-shadow: 0 0 0 0.25rem rgba(108, 117, 125, 0.5); } + .btn-check:checked + .btn-outline-secondary, + .btn-check:active + .btn-outline-secondary, .btn-outline-secondary:active, .btn-outline-secondary.active, .btn-outline-secondary.dropdown-toggle.show { + color: #fff; + background-color: #6c757d; + border-color: #6c757d; } + .btn-check:checked + .btn-outline-secondary:focus, + .btn-check:active + .btn-outline-secondary:focus, .btn-outline-secondary:active:focus, .btn-outline-secondary.active:focus, .btn-outline-secondary.dropdown-toggle.show:focus { + -webkit-box-shadow: 0 0 0 0.25rem rgba(108, 117, 125, 0.5); + box-shadow: 0 0 0 0.25rem rgba(108, 117, 125, 0.5); } + .btn-outline-secondary:disabled, .btn-outline-secondary.disabled { + color: #6c757d; + background-color: transparent; } + +.btn-outline-success { + color: #198754; + border-color: #198754; } + .btn-outline-success:hover { + color: #fff; + background-color: #198754; + border-color: #198754; } + .btn-check:focus + .btn-outline-success, .btn-outline-success:focus { + -webkit-box-shadow: 0 0 0 0.25rem rgba(25, 135, 84, 0.5); + box-shadow: 0 0 0 0.25rem rgba(25, 135, 84, 0.5); } + .btn-check:checked + .btn-outline-success, + .btn-check:active + .btn-outline-success, .btn-outline-success:active, .btn-outline-success.active, .btn-outline-success.dropdown-toggle.show { + color: #fff; + background-color: #198754; + border-color: #198754; } + .btn-check:checked + .btn-outline-success:focus, + .btn-check:active + .btn-outline-success:focus, .btn-outline-success:active:focus, .btn-outline-success.active:focus, .btn-outline-success.dropdown-toggle.show:focus { + -webkit-box-shadow: 0 0 0 0.25rem rgba(25, 135, 84, 0.5); + box-shadow: 0 0 0 0.25rem rgba(25, 135, 84, 0.5); } + .btn-outline-success:disabled, .btn-outline-success.disabled { + color: #198754; + background-color: transparent; } + +.btn-outline-info { + color: #0dcaf0; + border-color: #0dcaf0; } + .btn-outline-info:hover { + color: #000; + background-color: #0dcaf0; + border-color: #0dcaf0; } + .btn-check:focus + .btn-outline-info, .btn-outline-info:focus { + -webkit-box-shadow: 0 0 0 0.25rem rgba(13, 202, 240, 0.5); + box-shadow: 0 0 0 0.25rem rgba(13, 202, 240, 0.5); } + .btn-check:checked + .btn-outline-info, + .btn-check:active + .btn-outline-info, .btn-outline-info:active, .btn-outline-info.active, .btn-outline-info.dropdown-toggle.show { + color: #000; + background-color: #0dcaf0; + border-color: #0dcaf0; } + .btn-check:checked + .btn-outline-info:focus, + .btn-check:active + .btn-outline-info:focus, .btn-outline-info:active:focus, .btn-outline-info.active:focus, .btn-outline-info.dropdown-toggle.show:focus { + -webkit-box-shadow: 0 0 0 0.25rem rgba(13, 202, 240, 0.5); + box-shadow: 0 0 0 0.25rem rgba(13, 202, 240, 0.5); } + .btn-outline-info:disabled, .btn-outline-info.disabled { + color: #0dcaf0; + background-color: transparent; } + +.btn-outline-warning { + color: #ffc107; + border-color: #ffc107; } + .btn-outline-warning:hover { + color: #000; + background-color: #ffc107; + border-color: #ffc107; } + .btn-check:focus + .btn-outline-warning, .btn-outline-warning:focus { + -webkit-box-shadow: 0 0 0 0.25rem rgba(255, 193, 7, 0.5); + box-shadow: 0 0 0 0.25rem rgba(255, 193, 7, 0.5); } + .btn-check:checked + .btn-outline-warning, + .btn-check:active + .btn-outline-warning, .btn-outline-warning:active, .btn-outline-warning.active, .btn-outline-warning.dropdown-toggle.show { + color: #000; + background-color: #ffc107; + border-color: #ffc107; } + .btn-check:checked + .btn-outline-warning:focus, + .btn-check:active + .btn-outline-warning:focus, .btn-outline-warning:active:focus, .btn-outline-warning.active:focus, .btn-outline-warning.dropdown-toggle.show:focus { + -webkit-box-shadow: 0 0 0 0.25rem rgba(255, 193, 7, 0.5); + box-shadow: 0 0 0 0.25rem rgba(255, 193, 7, 0.5); } + .btn-outline-warning:disabled, .btn-outline-warning.disabled { + color: #ffc107; + background-color: transparent; } + +.btn-outline-danger { + color: #dc3545; + border-color: #dc3545; } + .btn-outline-danger:hover { + color: #fff; + background-color: #dc3545; + border-color: #dc3545; } + .btn-check:focus + .btn-outline-danger, .btn-outline-danger:focus { + -webkit-box-shadow: 0 0 0 0.25rem rgba(220, 53, 69, 0.5); + box-shadow: 0 0 0 0.25rem rgba(220, 53, 69, 0.5); } + .btn-check:checked + .btn-outline-danger, + .btn-check:active + .btn-outline-danger, .btn-outline-danger:active, .btn-outline-danger.active, .btn-outline-danger.dropdown-toggle.show { + color: #fff; + background-color: #dc3545; + border-color: #dc3545; } + .btn-check:checked + .btn-outline-danger:focus, + .btn-check:active + .btn-outline-danger:focus, .btn-outline-danger:active:focus, .btn-outline-danger.active:focus, .btn-outline-danger.dropdown-toggle.show:focus { + -webkit-box-shadow: 0 0 0 0.25rem rgba(220, 53, 69, 0.5); + box-shadow: 0 0 0 0.25rem rgba(220, 53, 69, 0.5); } + .btn-outline-danger:disabled, .btn-outline-danger.disabled { + color: #dc3545; + background-color: transparent; } + +.btn-outline-light { + color: #f8f9fa; + border-color: #f8f9fa; } + .btn-outline-light:hover { + color: #000; + background-color: #f8f9fa; + border-color: #f8f9fa; } + .btn-check:focus + .btn-outline-light, .btn-outline-light:focus { + -webkit-box-shadow: 0 0 0 0.25rem rgba(248, 249, 250, 0.5); + box-shadow: 0 0 0 0.25rem rgba(248, 249, 250, 0.5); } + .btn-check:checked + .btn-outline-light, + .btn-check:active + .btn-outline-light, .btn-outline-light:active, .btn-outline-light.active, .btn-outline-light.dropdown-toggle.show { + color: #000; + background-color: #f8f9fa; + border-color: #f8f9fa; } + .btn-check:checked + .btn-outline-light:focus, + .btn-check:active + .btn-outline-light:focus, .btn-outline-light:active:focus, .btn-outline-light.active:focus, .btn-outline-light.dropdown-toggle.show:focus { + -webkit-box-shadow: 0 0 0 0.25rem rgba(248, 249, 250, 0.5); + box-shadow: 0 0 0 0.25rem rgba(248, 249, 250, 0.5); } + .btn-outline-light:disabled, .btn-outline-light.disabled { + color: #f8f9fa; + background-color: transparent; } + +.btn-outline-dark { + color: #212529; + border-color: #212529; } + .btn-outline-dark:hover { + color: #fff; + background-color: #212529; + border-color: #212529; } + .btn-check:focus + .btn-outline-dark, .btn-outline-dark:focus { + -webkit-box-shadow: 0 0 0 0.25rem rgba(33, 37, 41, 0.5); + box-shadow: 0 0 0 0.25rem rgba(33, 37, 41, 0.5); } + .btn-check:checked + .btn-outline-dark, + .btn-check:active + .btn-outline-dark, .btn-outline-dark:active, .btn-outline-dark.active, .btn-outline-dark.dropdown-toggle.show { + color: #fff; + background-color: #212529; + border-color: #212529; } + .btn-check:checked + .btn-outline-dark:focus, + .btn-check:active + .btn-outline-dark:focus, .btn-outline-dark:active:focus, .btn-outline-dark.active:focus, .btn-outline-dark.dropdown-toggle.show:focus { + -webkit-box-shadow: 0 0 0 0.25rem rgba(33, 37, 41, 0.5); + box-shadow: 0 0 0 0.25rem rgba(33, 37, 41, 0.5); } + .btn-outline-dark:disabled, .btn-outline-dark.disabled { + color: #212529; + background-color: transparent; } + +.btn-link { + font-weight: 400; + color: #0d6efd; + text-decoration: underline; } + .btn-link:hover { + color: #0a58ca; } + .btn-link:disabled, .btn-link.disabled { + color: #6c757d; } + +.btn-lg, .btn-group-lg > .btn { + padding: 0.5rem 1rem; + font-size: 1.25rem; + border-radius: 0.3rem; } + +.btn-sm, .btn-group-sm > .btn { + padding: 0.25rem 0.5rem; + font-size: 0.875rem; + border-radius: 0.2rem; } + +.fade { + -webkit-transition: opacity 0.15s linear; + transition: opacity 0.15s linear; } + @media (prefers-reduced-motion: reduce) { + .fade { + -webkit-transition: none; + transition: none; } } + .fade:not(.show) { + opacity: 0; } + +.collapse:not(.show) { + display: none; } + +.collapsing { + height: 0; + overflow: hidden; + -webkit-transition: height 0.35s ease; + transition: height 0.35s ease; } + @media (prefers-reduced-motion: reduce) { + .collapsing { + -webkit-transition: none; + transition: none; } } + +.dropup, +.dropend, +.dropdown, +.dropstart { + position: relative; } + +.dropdown-toggle { + white-space: nowrap; } + .dropdown-toggle::after { + display: inline-block; + margin-left: 0.255em; + vertical-align: 0.255em; + content: ""; + border-top: 0.3em solid; + border-right: 0.3em solid transparent; + border-bottom: 0; + border-left: 0.3em solid transparent; } + .dropdown-toggle:empty::after { + margin-left: 0; } + +.dropdown-menu { + position: absolute; + top: 100%; + left: 0; + z-index: 1000; + display: none; + min-width: 10rem; + padding: 0.5rem 0; + margin: 0.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, 0.15); + border-radius: 0.25rem; } + .dropdown-menu[style] { + right: auto !important; } + +.dropdown-menu-start { + --bs-position: start; + right: auto /* rtl:ignore */; + left: 0 /* rtl:ignore */; } + +.dropdown-menu-end { + --bs-position: end; + right: 0 /* rtl:ignore */; + left: auto /* rtl:ignore */; } + +@media (min-width: 576px) { + .dropdown-menu-sm-start { + --bs-position: start; + right: auto /* rtl:ignore */; + left: 0 /* rtl:ignore */; } + .dropdown-menu-sm-end { + --bs-position: end; + right: 0 /* rtl:ignore */; + left: auto /* rtl:ignore */; } } + +@media (min-width: 768px) { + .dropdown-menu-md-start { + --bs-position: start; + right: auto /* rtl:ignore */; + left: 0 /* rtl:ignore */; } + .dropdown-menu-md-end { + --bs-position: end; + right: 0 /* rtl:ignore */; + left: auto /* rtl:ignore */; } } + +@media (min-width: 992px) { + .dropdown-menu-lg-start { + --bs-position: start; + right: auto /* rtl:ignore */; + left: 0 /* rtl:ignore */; } + .dropdown-menu-lg-end { + --bs-position: end; + right: 0 /* rtl:ignore */; + left: auto /* rtl:ignore */; } } + +@media (min-width: 1200px) { + .dropdown-menu-xl-start { + --bs-position: start; + right: auto /* rtl:ignore */; + left: 0 /* rtl:ignore */; } + .dropdown-menu-xl-end { + --bs-position: end; + right: 0 /* rtl:ignore */; + left: auto /* rtl:ignore */; } } + +@media (min-width: 1400px) { + .dropdown-menu-xxl-start { + --bs-position: start; + right: auto /* rtl:ignore */; + left: 0 /* rtl:ignore */; } + .dropdown-menu-xxl-end { + --bs-position: end; + right: 0 /* rtl:ignore */; + left: auto /* rtl:ignore */; } } + +.dropup .dropdown-menu { + top: auto; + bottom: 100%; + margin-top: 0; + margin-bottom: 0.125rem; } + +.dropup .dropdown-toggle::after { + display: inline-block; + margin-left: 0.255em; + vertical-align: 0.255em; + content: ""; + border-top: 0; + border-right: 0.3em solid transparent; + border-bottom: 0.3em solid; + border-left: 0.3em solid transparent; } + +.dropup .dropdown-toggle:empty::after { + margin-left: 0; } + +.dropend .dropdown-menu { + top: 0; + right: auto; + left: 100%; + margin-top: 0; + margin-left: 0.125rem; } + +.dropend .dropdown-toggle::after { + display: inline-block; + margin-left: 0.255em; + vertical-align: 0.255em; + content: ""; + border-top: 0.3em solid transparent; + border-right: 0; + border-bottom: 0.3em solid transparent; + border-left: 0.3em solid; } + +.dropend .dropdown-toggle:empty::after { + margin-left: 0; } + +.dropend .dropdown-toggle::after { + vertical-align: 0; } + +.dropstart .dropdown-menu { + top: 0; + right: 100%; + left: auto; + margin-top: 0; + margin-right: 0.125rem; } + +.dropstart .dropdown-toggle::after { + display: inline-block; + margin-left: 0.255em; + vertical-align: 0.255em; + content: ""; } + +.dropstart .dropdown-toggle::after { + display: none; } + +.dropstart .dropdown-toggle::before { + display: inline-block; + margin-right: 0.255em; + vertical-align: 0.255em; + content: ""; + border-top: 0.3em solid transparent; + border-right: 0.3em solid; + border-bottom: 0.3em solid transparent; } + +.dropstart .dropdown-toggle:empty::after { + margin-left: 0; } + +.dropstart .dropdown-toggle::before { + vertical-align: 0; } + +.dropdown-divider { + height: 0; + margin: 0.5rem 0; + overflow: hidden; + border-top: 1px solid rgba(0, 0, 0, 0.15); } + +.dropdown-item { + display: block; + width: 100%; + padding: 0.25rem 1rem; + clear: both; + font-weight: 400; + color: #212529; + text-align: inherit; + text-decoration: none; + white-space: nowrap; + background-color: transparent; + border: 0; } + .dropdown-item:hover, .dropdown-item:focus { + color: #1e2125; + background-color: #f8f9fa; } + .dropdown-item.active, .dropdown-item:active { + color: #fff; + text-decoration: none; + background-color: #0d6efd; } + .dropdown-item.disabled, .dropdown-item:disabled { + color: #6c757d; + pointer-events: none; + background-color: transparent; } + +.dropdown-menu.show { + display: block; } + +.dropdown-header { + display: block; + padding: 0.5rem 1rem; + margin-bottom: 0; + font-size: 0.875rem; + color: #6c757d; + white-space: nowrap; } + +.dropdown-item-text { + display: block; + padding: 0.25rem 1rem; + color: #212529; } + +.dropdown-menu-dark { + color: #dee2e6; + background-color: #343a40; + border-color: rgba(0, 0, 0, 0.15); } + .dropdown-menu-dark .dropdown-item { + color: #dee2e6; } + .dropdown-menu-dark .dropdown-item:hover, .dropdown-menu-dark .dropdown-item:focus { + color: #fff; + background-color: rgba(255, 255, 255, 0.15); } + .dropdown-menu-dark .dropdown-item.active, .dropdown-menu-dark .dropdown-item:active { + color: #fff; + background-color: #0d6efd; } + .dropdown-menu-dark .dropdown-item.disabled, .dropdown-menu-dark .dropdown-item:disabled { + color: #adb5bd; } + .dropdown-menu-dark .dropdown-divider { + border-color: rgba(0, 0, 0, 0.15); } + .dropdown-menu-dark .dropdown-item-text { + color: #dee2e6; } + .dropdown-menu-dark .dropdown-header { + color: #adb5bd; } + +.btn-group, +.btn-group-vertical { + position: relative; + display: -webkit-inline-box; + display: -ms-inline-flexbox; + display: inline-flex; + vertical-align: middle; } + .btn-group > .btn, + .btn-group-vertical > .btn { + position: relative; + -webkit-box-flex: 1; + -ms-flex: 1 1 auto; + flex: 1 1 auto; } + .btn-group > .btn-check:checked + .btn, + .btn-group > .btn-check:focus + .btn, + .btn-group > .btn:hover, + .btn-group > .btn:focus, + .btn-group > .btn:active, + .btn-group > .btn.active, + .btn-group-vertical > .btn-check:checked + .btn, + .btn-group-vertical > .btn-check:focus + .btn, + .btn-group-vertical > .btn:hover, + .btn-group-vertical > .btn:focus, + .btn-group-vertical > .btn:active, + .btn-group-vertical > .btn.active { + z-index: 1; } + +.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:not(:first-child), +.btn-group > .btn-group:not(:first-child) { + margin-left: -1px; } + +.btn-group > .btn:not(:last-child):not(.dropdown-toggle), +.btn-group > .btn-group:not(:last-child) > .btn { + border-top-right-radius: 0; + border-bottom-right-radius: 0; } + +.btn-group > .btn:nth-child(n + 3), +.btn-group > :not(.btn-check) + .btn, +.btn-group > .btn-group:not(:first-child) > .btn { + border-top-left-radius: 0; + border-bottom-left-radius: 0; } + +.dropdown-toggle-split { + padding-right: 0.5625rem; + padding-left: 0.5625rem; } + .dropdown-toggle-split::after, + .dropup .dropdown-toggle-split::after, + .dropend .dropdown-toggle-split::after { + margin-left: 0; } + .dropstart .dropdown-toggle-split::before { + margin-right: 0; } + +.btn-sm + .dropdown-toggle-split, .btn-group-sm > .btn + .dropdown-toggle-split { + padding-right: 0.375rem; + padding-left: 0.375rem; } + +.btn-lg + .dropdown-toggle-split, .btn-group-lg > .btn + .dropdown-toggle-split { + padding-right: 0.75rem; + padding-left: 0.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:not(:first-child), + .btn-group-vertical > .btn-group:not(:first-child) { + margin-top: -1px; } + .btn-group-vertical > .btn:not(:last-child):not(.dropdown-toggle), + .btn-group-vertical > .btn-group:not(:last-child) > .btn { + border-bottom-right-radius: 0; + border-bottom-left-radius: 0; } + .btn-group-vertical > .btn ~ .btn, + .btn-group-vertical > .btn-group:not(:first-child) > .btn { + border-top-left-radius: 0; + border-top-right-radius: 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: 0.5rem 1rem; + text-decoration: none; + -webkit-transition: color 0.15s ease-in-out, background-color 0.15s ease-in-out, border-color 0.15s ease-in-out; + transition: color 0.15s ease-in-out, background-color 0.15s ease-in-out, border-color 0.15s ease-in-out; } + @media (prefers-reduced-motion: reduce) { + .nav-link { + -webkit-transition: none; + transition: none; } } + .nav-link.disabled { + color: #6c757d; + pointer-events: none; + cursor: default; } + +.nav-tabs { + border-bottom: 1px solid #dee2e6; } + .nav-tabs .nav-link { + margin-bottom: -1px; + border: 1px solid transparent; + border-top-left-radius: 0.25rem; + border-top-right-radius: 0.25rem; } + .nav-tabs .nav-link:hover, .nav-tabs .nav-link:focus { + border-color: #e9ecef #e9ecef #dee2e6; } + .nav-tabs .nav-link.disabled { + color: #6c757d; + background-color: transparent; + border-color: transparent; } + .nav-tabs .nav-link.active, + .nav-tabs .nav-item.show .nav-link { + 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: 0.25rem; } + +.nav-pills .nav-link.active, +.nav-pills .show > .nav-link { + color: #fff; + background-color: #0d6efd; } + +.nav-fill > .nav-link, +.nav-fill .nav-item { + -webkit-box-flex: 1; + -ms-flex: 1 1 auto; + flex: 1 1 auto; + text-align: center; } + +.nav-justified > .nav-link, +.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 { + line-height: 1.8; } + +.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-top: 0.5rem; + padding-bottom: 0.5rem; } + .navbar > .container, + .navbar > .container-fluid, .navbar > .container-sm, .navbar > .container-md, .navbar > .container-lg, .navbar > .container-xl, .navbar > .container-xxl { + display: -webkit-box; + display: -ms-flexbox; + display: flex; + -ms-flex-wrap: inherit; + flex-wrap: inherit; + -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 { + padding-top: 0.3125rem; + padding-bottom: 0.3125rem; + margin-right: 1rem; + font-size: 1.25rem; + text-decoration: none; + white-space: nowrap; } + +.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; } + +.navbar-text { + padding-top: 0.5rem; + padding-bottom: 0.5rem; } + +.navbar-collapse { + -webkit-box-align: center; + -ms-flex-align: center; + align-items: center; + width: 100%; } + +.navbar-toggler { + padding: 0.25rem 0.75rem; + font-size: 1.25rem; + line-height: 1; + background-color: transparent; + border: 1px solid transparent; + border-radius: 0.25rem; + -webkit-transition: -webkit-box-shadow 0.15s ease-in-out; + transition: -webkit-box-shadow 0.15s ease-in-out; + transition: box-shadow 0.15s ease-in-out; + transition: box-shadow 0.15s ease-in-out, -webkit-box-shadow 0.15s ease-in-out; } + @media (prefers-reduced-motion: reduce) { + .navbar-toggler { + -webkit-transition: none; + transition: none; } } + .navbar-toggler:hover { + text-decoration: none; } + .navbar-toggler:focus { + text-decoration: none; + outline: 0; + -webkit-box-shadow: 0 0 0 0.25rem; + box-shadow: 0 0 0 0.25rem; } + +.navbar-toggler-icon { + display: inline-block; + width: 1.5em; + height: 1.5em; + vertical-align: middle; + background-repeat: no-repeat; + background-position: center; + background-size: 100%; } + +@media (min-width: 576px) { + .navbar-expand-sm { + -ms-flex-wrap: nowrap; + flex-wrap: 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 .nav-link { + padding-right: 0.5rem; + padding-left: 0.5rem; } + .navbar-expand-sm .navbar-collapse { + display: -webkit-box !important; + display: -ms-flexbox !important; + display: flex !important; } + .navbar-expand-sm .navbar-toggler { + display: none; } } + +@media (min-width: 768px) { + .navbar-expand-md { + -ms-flex-wrap: nowrap; + flex-wrap: 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 .nav-link { + padding-right: 0.5rem; + padding-left: 0.5rem; } + .navbar-expand-md .navbar-collapse { + display: -webkit-box !important; + display: -ms-flexbox !important; + display: flex !important; } + .navbar-expand-md .navbar-toggler { + display: none; } } + +@media (min-width: 992px) { + .navbar-expand-lg { + -ms-flex-wrap: nowrap; + flex-wrap: 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 .nav-link { + padding-right: 0.5rem; + padding-left: 0.5rem; } + .navbar-expand-lg .navbar-collapse { + display: -webkit-box !important; + display: -ms-flexbox !important; + display: flex !important; } + .navbar-expand-lg .navbar-toggler { + display: none; } } + +@media (min-width: 1200px) { + .navbar-expand-xl { + -ms-flex-wrap: nowrap; + flex-wrap: 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 .nav-link { + padding-right: 0.5rem; + padding-left: 0.5rem; } + .navbar-expand-xl .navbar-collapse { + display: -webkit-box !important; + display: -ms-flexbox !important; + display: flex !important; } + .navbar-expand-xl .navbar-toggler { + display: none; } } + +@media (min-width: 1400px) { + .navbar-expand-xxl { + -ms-flex-wrap: nowrap; + flex-wrap: nowrap; + -webkit-box-pack: start; + -ms-flex-pack: start; + justify-content: flex-start; } + .navbar-expand-xxl .navbar-nav { + -webkit-box-orient: horizontal; + -webkit-box-direction: normal; + -ms-flex-direction: row; + flex-direction: row; } + .navbar-expand-xxl .navbar-nav .dropdown-menu { + position: absolute; } + .navbar-expand-xxl .navbar-nav .nav-link { + padding-right: 0.5rem; + padding-left: 0.5rem; } + .navbar-expand-xxl .navbar-collapse { + display: -webkit-box !important; + display: -ms-flexbox !important; + display: flex !important; } + .navbar-expand-xxl .navbar-toggler { + display: none; } } + +.navbar-expand { + -ms-flex-wrap: nowrap; + flex-wrap: nowrap; + -webkit-box-pack: start; + -ms-flex-pack: start; + justify-content: flex-start; } + .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 .nav-link { + padding-right: 0.5rem; + padding-left: 0.5rem; } + .navbar-expand .navbar-collapse { + display: -webkit-box !important; + display: -ms-flexbox !important; + display: flex !important; } + .navbar-expand .navbar-toggler { + display: none; } + +.navbar-light .navbar-brand { + color: rgba(0, 0, 0, 0.9); } + .navbar-light .navbar-brand:hover, .navbar-light .navbar-brand:focus { + color: rgba(0, 0, 0, 0.9); } + +.navbar-light .navbar-nav .nav-link { + color: rgba(0, 0, 0, 0.55); } + .navbar-light .navbar-nav .nav-link:hover, .navbar-light .navbar-nav .nav-link:focus { + color: rgba(0, 0, 0, 0.7); } + .navbar-light .navbar-nav .nav-link.disabled { + color: rgba(0, 0, 0, 0.3); } + +.navbar-light .navbar-nav .show > .nav-link, +.navbar-light .navbar-nav .nav-link.active { + color: rgba(0, 0, 0, 0.9); } + +.navbar-light .navbar-toggler { + color: rgba(0, 0, 0, 0.55); + border-color: rgba(0, 0, 0, 0.1); } + +.navbar-light .navbar-toggler-icon { + background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 30 30'%3e%3cpath stroke='rgba%280, 0, 0, 0.55%29' stroke-linecap='round' stroke-miterlimit='10' stroke-width='2' d='M4 7h22M4 15h22M4 23h22'/%3e%3c/svg%3e"); } + +.navbar-light .navbar-text { + color: rgba(0, 0, 0, 0.55); } + .navbar-light .navbar-text a, + .navbar-light .navbar-text a:hover, + .navbar-light .navbar-text a:focus { + color: rgba(0, 0, 0, 0.9); } + +.navbar-dark .navbar-brand { + color: #fff; } + .navbar-dark .navbar-brand:hover, .navbar-dark .navbar-brand:focus { + color: #fff; } + +.navbar-dark .navbar-nav .nav-link { + color: rgba(255, 255, 255, 0.55); } + .navbar-dark .navbar-nav .nav-link:hover, .navbar-dark .navbar-nav .nav-link:focus { + color: rgba(255, 255, 255, 0.75); } + .navbar-dark .navbar-nav .nav-link.disabled { + color: rgba(255, 255, 255, 0.25); } + +.navbar-dark .navbar-nav .show > .nav-link, +.navbar-dark .navbar-nav .nav-link.active { + color: #fff; } + +.navbar-dark .navbar-toggler { + color: rgba(255, 255, 255, 0.55); + border-color: rgba(255, 255, 255, 0.1); } + +.navbar-dark .navbar-toggler-icon { + background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 30 30'%3e%3cpath stroke='rgba%28255, 255, 255, 0.55%29' stroke-linecap='round' stroke-miterlimit='10' stroke-width='2' d='M4 7h22M4 15h22M4 23h22'/%3e%3c/svg%3e"); } + +.navbar-dark .navbar-text { + color: rgba(255, 255, 255, 0.55); } + .navbar-dark .navbar-text a, + .navbar-dark .navbar-text a:hover, + .navbar-dark .navbar-text a:focus { + 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, 0.125); + border-radius: 0.25rem; } + .card > hr { + margin-right: 0; + margin-left: 0; } + .card > .list-group { + border-top: inherit; + border-bottom: inherit; } + .card > .list-group:first-child { + border-top-width: 0; + border-top-left-radius: calc(0.25rem - 1px); + border-top-right-radius: calc(0.25rem - 1px); } + .card > .list-group:last-child { + border-bottom-width: 0; + border-bottom-right-radius: calc(0.25rem - 1px); + border-bottom-left-radius: calc(0.25rem - 1px); } + .card > .card-header + .list-group, + .card > .list-group + .card-footer { + border-top: 0; } + +.card-body { + -webkit-box-flex: 1; + -ms-flex: 1 1 auto; + flex: 1 1 auto; + padding: 1rem 1rem; } + +.card-title { + margin-bottom: 0.5rem; } + +.card-subtitle { + margin-top: -0.25rem; + margin-bottom: 0; } + +.card-text:last-child { + margin-bottom: 0; } + +.card-link:hover { + text-decoration: none; } + +.card-link + .card-link { + margin-left: 1rem /* rtl:ignore */; } + +.card-header { + padding: 0.5rem 1rem; + margin-bottom: 0; + background-color: rgba(0, 0, 0, 0.03); + border-bottom: 1px solid rgba(0, 0, 0, 0.125); } + .card-header:first-child { + border-radius: calc(0.25rem - 1px) calc(0.25rem - 1px) 0 0; } + +.card-footer { + padding: 0.5rem 1rem; + background-color: rgba(0, 0, 0, 0.03); + border-top: 1px solid rgba(0, 0, 0, 0.125); } + .card-footer:last-child { + border-radius: 0 0 calc(0.25rem - 1px) calc(0.25rem - 1px); } + +.card-header-tabs { + margin-right: -0.5rem; + margin-bottom: -0.5rem; + margin-left: -0.5rem; + border-bottom: 0; } + +.card-header-pills { + margin-right: -0.5rem; + margin-left: -0.5rem; } + +.card-img-overlay { + position: absolute; + top: 0; + right: 0; + bottom: 0; + left: 0; + padding: 1rem; + border-radius: calc(0.25rem - 1px); } + +.card-img, +.card-img-top, +.card-img-bottom { + width: 100%; } + +.card-img, +.card-img-top { + border-top-left-radius: calc(0.25rem - 1px); + border-top-right-radius: calc(0.25rem - 1px); } + +.card-img, +.card-img-bottom { + border-bottom-right-radius: calc(0.25rem - 1px); + border-bottom-left-radius: calc(0.25rem - 1px); } + +.card-group > .card { + margin-bottom: 0.75rem; } + +@media (min-width: 576px) { + .card-group { + 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; } + .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:not(:last-child) { + border-top-right-radius: 0; + border-bottom-right-radius: 0; } + .card-group > .card:not(:last-child) .card-img-top, + .card-group > .card:not(:last-child) .card-header { + border-top-right-radius: 0; } + .card-group > .card:not(:last-child) .card-img-bottom, + .card-group > .card:not(:last-child) .card-footer { + border-bottom-right-radius: 0; } + .card-group > .card:not(:first-child) { + border-top-left-radius: 0; + border-bottom-left-radius: 0; } + .card-group > .card:not(:first-child) .card-img-top, + .card-group > .card:not(:first-child) .card-header { + border-top-left-radius: 0; } + .card-group > .card:not(:first-child) .card-img-bottom, + .card-group > .card:not(:first-child) .card-footer { + border-bottom-left-radius: 0; } } + +.accordion-button { + position: relative; + display: -webkit-box; + display: -ms-flexbox; + display: flex; + -webkit-box-align: center; + -ms-flex-align: center; + align-items: center; + width: 100%; + padding: 1rem 1.25rem; + font-size: 1rem; + color: #212529; + background-color: transparent; + border: 1px solid rgba(0, 0, 0, 0.125); + border-radius: 0; + overflow-anchor: none; + -webkit-transition: color 0.15s ease-in-out, background-color 0.15s ease-in-out, border-color 0.15s ease-in-out, border-radius 0.15s ease, -webkit-box-shadow 0.15s ease-in-out; + transition: color 0.15s ease-in-out, background-color 0.15s ease-in-out, border-color 0.15s ease-in-out, border-radius 0.15s ease, -webkit-box-shadow 0.15s ease-in-out; + transition: color 0.15s ease-in-out, background-color 0.15s ease-in-out, border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out, border-radius 0.15s ease; + transition: color 0.15s ease-in-out, background-color 0.15s ease-in-out, border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out, border-radius 0.15s ease, -webkit-box-shadow 0.15s ease-in-out; } + @media (prefers-reduced-motion: reduce) { + .accordion-button { + -webkit-transition: none; + transition: none; } } + .accordion-button.collapsed { + border-bottom-width: 0; } + .accordion-button:not(.collapsed) { + color: #0c63e4; + background-color: #e7f1ff; } + .accordion-button:not(.collapsed)::after { + background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='%230c63e4'%3e%3cpath fill-rule='evenodd' d='M1.646 4.646a.5.5 0 0 1 .708 0L8 10.293l5.646-5.647a.5.5 0 0 1 .708.708l-6 6a.5.5 0 0 1-.708 0l-6-6a.5.5 0 0 1 0-.708z'/%3e%3c/svg%3e"); + -webkit-transform: rotate(180deg); + transform: rotate(180deg); } + .accordion-button::after { + -ms-flex-negative: 0; + flex-shrink: 0; + width: 1.25rem; + height: 1.25rem; + margin-left: auto; + content: ""; + background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='%23212529'%3e%3cpath fill-rule='evenodd' d='M1.646 4.646a.5.5 0 0 1 .708 0L8 10.293l5.646-5.647a.5.5 0 0 1 .708.708l-6 6a.5.5 0 0 1-.708 0l-6-6a.5.5 0 0 1 0-.708z'/%3e%3c/svg%3e"); + background-repeat: no-repeat; + background-size: 1.25rem; + -webkit-transition: -webkit-transform 0.2s ease-in-out; + transition: -webkit-transform 0.2s ease-in-out; + transition: transform 0.2s ease-in-out; + transition: transform 0.2s ease-in-out, -webkit-transform 0.2s ease-in-out; } + @media (prefers-reduced-motion: reduce) { + .accordion-button::after { + -webkit-transition: none; + transition: none; } } + .accordion-button:hover { + z-index: 2; } + .accordion-button:focus { + z-index: 3; + border-color: #86b7fe; + outline: 0; + -webkit-box-shadow: 0 0 0 0.25rem rgba(13, 110, 253, 0.25); + box-shadow: 0 0 0 0.25rem rgba(13, 110, 253, 0.25); } + +.accordion-header { + margin-bottom: 0; } + +.accordion-item:first-of-type .accordion-button { + border-top-left-radius: 0.25rem; + border-top-right-radius: 0.25rem; } + +.accordion-item:last-of-type .accordion-button.collapsed { + border-bottom-width: 1px; + border-bottom-right-radius: 0.25rem; + border-bottom-left-radius: 0.25rem; } + +.accordion-item:last-of-type .accordion-collapse { + border-bottom-width: 1px; + border-bottom-right-radius: 0.25rem; + border-bottom-left-radius: 0.25rem; } + +.accordion-collapse { + border: solid rgba(0, 0, 0, 0.125); + border-width: 0 1px; } + +.accordion-body { + padding: 1rem 1.25rem; } + +.accordion-flush .accordion-button { + border-right: 0; + border-left: 0; + border-radius: 0; } + +.accordion-flush .accordion-collapse { + border-width: 0; } + +.accordion-flush .accordion-item:first-of-type .accordion-button { + border-top-width: 0; + border-top-left-radius: 0; + border-top-right-radius: 0; } + +.accordion-flush .accordion-item:last-of-type .accordion-button.collapsed { + border-bottom-width: 0; + border-bottom-right-radius: 0; + border-bottom-left-radius: 0; } + +.breadcrumb { + display: -webkit-box; + display: -ms-flexbox; + display: flex; + -ms-flex-wrap: wrap; + flex-wrap: wrap; + padding: 0 0; + margin-bottom: 1rem; + list-style: none; } + +.breadcrumb-item + .breadcrumb-item { + padding-left: 0.5rem; } + .breadcrumb-item + .breadcrumb-item::before { + float: left; + padding-right: 0.5rem; + color: #6c757d; + content: var(--bs-breadcrumb-divider, "https://laravel.pixelstrap.com/") /* rtl: var(--bs-breadcrumb-divider, "/") */; } + +.breadcrumb-item.active { + color: #6c757d; } + +.pagination { + display: -webkit-box; + display: -ms-flexbox; + display: flex; + padding-left: 0; + list-style: none; } + +.page-link { + position: relative; + display: block; + color: #0d6efd; + text-decoration: none; + background-color: #fff; + background-color: #fff; + border: 1px solid #dee2e6; + -webkit-transition: color 0.15s ease-in-out, background-color 0.15s ease-in-out, border-color 0.15s ease-in-out, -webkit-box-shadow 0.15s ease-in-out; + transition: color 0.15s ease-in-out, background-color 0.15s ease-in-out, border-color 0.15s ease-in-out, -webkit-box-shadow 0.15s ease-in-out; + transition: color 0.15s ease-in-out, background-color 0.15s ease-in-out, border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out; + transition: color 0.15s ease-in-out, background-color 0.15s ease-in-out, border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out, -webkit-box-shadow 0.15s ease-in-out; } + @media (prefers-reduced-motion: reduce) { + .page-link { + -webkit-transition: none; + transition: none; } } + .page-link:hover { + z-index: 2; + color: #0a58ca; + background-color: #e9ecef; + border-color: #dee2e6; } + .page-link:focus { + z-index: 3; + color: #0a58ca; + background-color: #e9ecef; + outline: 0; + -webkit-box-shadow: 0 0 0 0.25rem rgba(13, 110, 253, 0.25); + box-shadow: 0 0 0 0.25rem rgba(13, 110, 253, 0.25); } + +.page-item:not(:first-child) .page-link { + margin-left: -1px; } + +.page-item.active .page-link { + z-index: 3; + color: #fff; + background-color: #0d6efd; + border-color: #0d6efd; } + +.page-item.disabled .page-link { + color: #6c757d; + pointer-events: none; + background-color: #fff; + border-color: #dee2e6; } + +.page-link { + padding: 0.375rem 0.75rem; } + +.page-item:first-child .page-link { + border-top-left-radius: 0.25rem; + border-bottom-left-radius: 0.25rem; } + +.page-item:last-child .page-link { + border-top-right-radius: 0.25rem; + border-bottom-right-radius: 0.25rem; } + +.pagination-lg .page-link { + padding: 0.75rem 1.5rem; + font-size: 1.25rem; } + +.pagination-lg .page-item:first-child .page-link { + border-top-left-radius: 0.3rem; + border-bottom-left-radius: 0.3rem; } + +.pagination-lg .page-item:last-child .page-link { + border-top-right-radius: 0.3rem; + border-bottom-right-radius: 0.3rem; } + +.pagination-sm .page-link { + padding: 0.25rem 0.5rem; + font-size: 0.875rem; } + +.pagination-sm .page-item:first-child .page-link { + border-top-left-radius: 0.2rem; + border-bottom-left-radius: 0.2rem; } + +.pagination-sm .page-item:last-child .page-link { + border-top-right-radius: 0.2rem; + border-bottom-right-radius: 0.2rem; } + +.badge { + display: inline-block; + padding: 0.35em 0.65em; + font-size: 0.75em; + font-weight: 700; + line-height: 1; + color: #fff; + text-align: center; + white-space: nowrap; + vertical-align: baseline; + border-radius: 0.25rem; } + .badge:empty { + display: none; } + +.btn .badge { + position: relative; + height: 20px; } + +.alert { + position: relative; + padding: 1rem 1rem; + margin-bottom: 1rem; + border: 1px solid transparent; + border-radius: 0.25rem; } + +.alert-heading { + color: inherit; } + +.alert-link { + font-weight: 700; } + +.alert-dismissible { + padding-right: 3rem; } + .alert-dismissible .btn-close { + position: absolute; + top: 0; + right: 0; + z-index: 2; + padding: 1.25rem 1rem; } + +.alert-primary { + color: #084298; + background-color: #cfe2ff; + border-color: #b6d4fe; } + .alert-primary .alert-link { + color: #06357a; } + +.alert-secondary { + color: #41464b; + background-color: #e2e3e5; + border-color: #d3d6d8; } + .alert-secondary .alert-link { + color: #34383c; } + +.alert-success { + color: #0f5132; + background-color: #d1e7dd; + border-color: #badbcc; } + .alert-success .alert-link { + color: #0c4128; } + +.alert-info { + color: #055160; + background-color: #cff4fc; + border-color: #b6effb; } + .alert-info .alert-link { + color: #04414d; } + +.alert-warning { + color: #664d03; + background-color: #fff3cd; + border-color: #ffecb5; } + .alert-warning .alert-link { + color: #523e02; } + +.alert-danger { + color: #842029; + background-color: #f8d7da; + border-color: #f5c2c7; } + .alert-danger .alert-link { + color: #6a1a21; } + +.alert-light { + color: #636464; + background-color: #fefefe; + border-color: #fdfdfe; } + .alert-light .alert-link { + color: #4f5050; } + +.alert-dark { + color: #141619; + background-color: #d3d3d4; + border-color: #bcbebf; } + .alert-dark .alert-link { + color: #101214; } + +@-webkit-keyframes progress-bar-stripes { + 0% { + background-position-x: 1rem; } } + +@keyframes progress-bar-stripes { + 0% { + background-position-x: 1rem; } } + +.progress { + display: -webkit-box; + display: -ms-flexbox; + display: flex; + height: 1rem; + overflow: hidden; + font-size: 0.75rem; + background-color: #e9ecef; + border-radius: 0.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; + overflow: hidden; + color: #fff; + text-align: center; + white-space: nowrap; + background-color: #0d6efd; + -webkit-transition: width 0.6s ease; + transition: width 0.6s ease; } + @media (prefers-reduced-motion: reduce) { + .progress-bar { + -webkit-transition: none; + transition: none; } } + +.progress-bar-striped { + background-image: linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent); + background-size: 1rem 1rem; } + +.progress-bar-animated { + -webkit-animation: 1s linear infinite progress-bar-stripes; + animation: 1s linear infinite progress-bar-stripes; } + @media (prefers-reduced-motion: reduce) { + .progress-bar-animated { + -webkit-animation: none; + animation: none; } } + +.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; + border-radius: 0.25rem; } + +.list-group-item-action { + width: 100%; + color: #495057; + text-align: inherit; } + .list-group-item-action:hover, .list-group-item-action:focus { + z-index: 1; + 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: 0.5rem 1rem; + text-decoration: none; + background-color: #fff; + border: 1px solid rgba(0, 0, 0, 0.125); } + .list-group-item:first-child { + border-top-left-radius: inherit; + border-top-right-radius: inherit; } + .list-group-item:last-child { + border-bottom-right-radius: inherit; + border-bottom-left-radius: inherit; } + .list-group-item.disabled, .list-group-item:disabled { + color: #6c757d; + pointer-events: none; + background-color: #fff; } + .list-group-item.active { + z-index: 2; + color: #fff; + background-color: #0d6efd; + border-color: #0d6efd; } + .list-group-item + .list-group-item { + border-top-width: 0; } + .list-group-item + .list-group-item.active { + margin-top: -1px; + border-top-width: 1px; } + +.list-group-horizontal { + -webkit-box-orient: horizontal; + -webkit-box-direction: normal; + -ms-flex-direction: row; + flex-direction: row; } + .list-group-horizontal > .list-group-item:first-child { + border-bottom-left-radius: 0.25rem; + border-top-right-radius: 0; } + .list-group-horizontal > .list-group-item:last-child { + border-top-right-radius: 0.25rem; + border-bottom-left-radius: 0; } + .list-group-horizontal > .list-group-item.active { + margin-top: 0; } + .list-group-horizontal > .list-group-item + .list-group-item { + border-top-width: 1px; + border-left-width: 0; } + .list-group-horizontal > .list-group-item + .list-group-item.active { + margin-left: -1px; + border-left-width: 1px; } + +@media (min-width: 576px) { + .list-group-horizontal-sm { + -webkit-box-orient: horizontal; + -webkit-box-direction: normal; + -ms-flex-direction: row; + flex-direction: row; } + .list-group-horizontal-sm > .list-group-item:first-child { + border-bottom-left-radius: 0.25rem; + border-top-right-radius: 0; } + .list-group-horizontal-sm > .list-group-item:last-child { + border-top-right-radius: 0.25rem; + border-bottom-left-radius: 0; } + .list-group-horizontal-sm > .list-group-item.active { + margin-top: 0; } + .list-group-horizontal-sm > .list-group-item + .list-group-item { + border-top-width: 1px; + border-left-width: 0; } + .list-group-horizontal-sm > .list-group-item + .list-group-item.active { + margin-left: -1px; + border-left-width: 1px; } } + +@media (min-width: 768px) { + .list-group-horizontal-md { + -webkit-box-orient: horizontal; + -webkit-box-direction: normal; + -ms-flex-direction: row; + flex-direction: row; } + .list-group-horizontal-md > .list-group-item:first-child { + border-bottom-left-radius: 0.25rem; + border-top-right-radius: 0; } + .list-group-horizontal-md > .list-group-item:last-child { + border-top-right-radius: 0.25rem; + border-bottom-left-radius: 0; } + .list-group-horizontal-md > .list-group-item.active { + margin-top: 0; } + .list-group-horizontal-md > .list-group-item + .list-group-item { + border-top-width: 1px; + border-left-width: 0; } + .list-group-horizontal-md > .list-group-item + .list-group-item.active { + margin-left: -1px; + border-left-width: 1px; } } + +@media (min-width: 992px) { + .list-group-horizontal-lg { + -webkit-box-orient: horizontal; + -webkit-box-direction: normal; + -ms-flex-direction: row; + flex-direction: row; } + .list-group-horizontal-lg > .list-group-item:first-child { + border-bottom-left-radius: 0.25rem; + border-top-right-radius: 0; } + .list-group-horizontal-lg > .list-group-item:last-child { + border-top-right-radius: 0.25rem; + border-bottom-left-radius: 0; } + .list-group-horizontal-lg > .list-group-item.active { + margin-top: 0; } + .list-group-horizontal-lg > .list-group-item + .list-group-item { + border-top-width: 1px; + border-left-width: 0; } + .list-group-horizontal-lg > .list-group-item + .list-group-item.active { + margin-left: -1px; + border-left-width: 1px; } } + +@media (min-width: 1200px) { + .list-group-horizontal-xl { + -webkit-box-orient: horizontal; + -webkit-box-direction: normal; + -ms-flex-direction: row; + flex-direction: row; } + .list-group-horizontal-xl > .list-group-item:first-child { + border-bottom-left-radius: 0.25rem; + border-top-right-radius: 0; } + .list-group-horizontal-xl > .list-group-item:last-child { + border-top-right-radius: 0.25rem; + border-bottom-left-radius: 0; } + .list-group-horizontal-xl > .list-group-item.active { + margin-top: 0; } + .list-group-horizontal-xl > .list-group-item + .list-group-item { + border-top-width: 1px; + border-left-width: 0; } + .list-group-horizontal-xl > .list-group-item + .list-group-item.active { + margin-left: -1px; + border-left-width: 1px; } } + +@media (min-width: 1400px) { + .list-group-horizontal-xxl { + -webkit-box-orient: horizontal; + -webkit-box-direction: normal; + -ms-flex-direction: row; + flex-direction: row; } + .list-group-horizontal-xxl > .list-group-item:first-child { + border-bottom-left-radius: 0.25rem; + border-top-right-radius: 0; } + .list-group-horizontal-xxl > .list-group-item:last-child { + border-top-right-radius: 0.25rem; + border-bottom-left-radius: 0; } + .list-group-horizontal-xxl > .list-group-item.active { + margin-top: 0; } + .list-group-horizontal-xxl > .list-group-item + .list-group-item { + border-top-width: 1px; + border-left-width: 0; } + .list-group-horizontal-xxl > .list-group-item + .list-group-item.active { + margin-left: -1px; + border-left-width: 1px; } } + +.list-group-flush { + border-radius: 0; } + .list-group-flush > .list-group-item { + border-width: 0 0 1px; } + .list-group-flush > .list-group-item:last-child { + border-bottom-width: 0; } + +.list-group-item-primary { + color: #084298; + background-color: #cfe2ff; } + .list-group-item-primary.list-group-item-action:hover, .list-group-item-primary.list-group-item-action:focus { + color: #084298; + background-color: #bacbe6; } + .list-group-item-primary.list-group-item-action.active { + color: #fff; + background-color: #084298; + border-color: #084298; } + +.list-group-item-secondary { + color: #41464b; + background-color: #e2e3e5; } + .list-group-item-secondary.list-group-item-action:hover, .list-group-item-secondary.list-group-item-action:focus { + color: #41464b; + background-color: #cbccce; } + .list-group-item-secondary.list-group-item-action.active { + color: #fff; + background-color: #41464b; + border-color: #41464b; } + +.list-group-item-success { + color: #0f5132; + background-color: #d1e7dd; } + .list-group-item-success.list-group-item-action:hover, .list-group-item-success.list-group-item-action:focus { + color: #0f5132; + background-color: #bcd0c7; } + .list-group-item-success.list-group-item-action.active { + color: #fff; + background-color: #0f5132; + border-color: #0f5132; } + +.list-group-item-info { + color: #055160; + background-color: #cff4fc; } + .list-group-item-info.list-group-item-action:hover, .list-group-item-info.list-group-item-action:focus { + color: #055160; + background-color: #badce3; } + .list-group-item-info.list-group-item-action.active { + color: #fff; + background-color: #055160; + border-color: #055160; } + +.list-group-item-warning { + color: #664d03; + background-color: #fff3cd; } + .list-group-item-warning.list-group-item-action:hover, .list-group-item-warning.list-group-item-action:focus { + color: #664d03; + background-color: #e6dbb9; } + .list-group-item-warning.list-group-item-action.active { + color: #fff; + background-color: #664d03; + border-color: #664d03; } + +.list-group-item-danger { + color: #842029; + background-color: #f8d7da; } + .list-group-item-danger.list-group-item-action:hover, .list-group-item-danger.list-group-item-action:focus { + color: #842029; + background-color: #dfc2c4; } + .list-group-item-danger.list-group-item-action.active { + color: #fff; + background-color: #842029; + border-color: #842029; } + +.list-group-item-light { + color: #636464; + background-color: #fefefe; } + .list-group-item-light.list-group-item-action:hover, .list-group-item-light.list-group-item-action:focus { + color: #636464; + background-color: #e5e5e5; } + .list-group-item-light.list-group-item-action.active { + color: #fff; + background-color: #636464; + border-color: #636464; } + +.list-group-item-dark { + color: #141619; + background-color: #d3d3d4; } + .list-group-item-dark.list-group-item-action:hover, .list-group-item-dark.list-group-item-action:focus { + color: #141619; + background-color: #bebebf; } + .list-group-item-dark.list-group-item-action.active { + color: #fff; + background-color: #141619; + border-color: #141619; } + +.btn-close { + -webkit-box-sizing: content-box; + box-sizing: content-box; + width: 1em; + height: 1em; + padding: 0.25em 0.25em; + color: #000; + background: transparent url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='%23000'%3e%3cpath d='M.293.293a1 1 0 011.414 0L8 6.586 14.293.293a1 1 0 111.414 1.414L9.414 8l6.293 6.293a1 1 0 01-1.414 1.414L8 9.414l-6.293 6.293a1 1 0 01-1.414-1.414L6.586 8 .293 1.707a1 1 0 010-1.414z'/%3e%3c/svg%3e") center/1em auto no-repeat; + border: 0; + border-radius: 0.25rem; + opacity: 0.5; } + .btn-close:hover { + color: #000; + text-decoration: none; + opacity: 0.75; } + .btn-close:focus { + outline: none; + -webkit-box-shadow: 0 0 0 0.25rem rgba(13, 110, 253, 0.25); + box-shadow: 0 0 0 0.25rem rgba(13, 110, 253, 0.25); + opacity: 1; } + .btn-close:disabled, .btn-close.disabled { + pointer-events: none; + -webkit-user-select: none; + -moz-user-select: none; + -ms-user-select: none; + user-select: none; + opacity: 0.25; } + +.btn-close-white { + -webkit-filter: invert(1) grayscale(100%) brightness(200%); + filter: invert(1) grayscale(100%) brightness(200%); } + +.toast { + width: 350px; + max-width: 100%; + font-size: 0.875rem; + pointer-events: auto; + background-color: rgba(255, 255, 255, 0.85); + background-clip: padding-box; + border: 1px solid rgba(0, 0, 0, 0.1); + -webkit-box-shadow: 0 0.5rem 1rem rgba(0, 0, 0, 0.15); + box-shadow: 0 0.5rem 1rem rgba(0, 0, 0, 0.15); + border-radius: 0.25rem; } + .toast:not(.showing):not(.show) { + opacity: 0; } + .toast.hide { + display: none; } + +.toast-container { + width: -webkit-max-content; + width: -moz-max-content; + width: max-content; + max-width: 100%; + pointer-events: none; } + .toast-container > :not(:last-child) { + margin-bottom: 0.75rem; } + +.toast-header { + display: -webkit-box; + display: -ms-flexbox; + display: flex; + -webkit-box-align: center; + -ms-flex-align: center; + align-items: center; + padding: 0.5rem 0.75rem; + color: #6c757d; + background-color: rgba(255, 255, 255, 0.85); + background-clip: padding-box; + border-bottom: 1px solid rgba(0, 0, 0, 0.05); + border-top-left-radius: calc(0.25rem - 1px); + border-top-right-radius: calc(0.25rem - 1px); } + .toast-header .btn-close { + margin-right: -0.375rem; + margin-left: 0.75rem; } + +.toast-body { + padding: 0.75rem; } + +.modal-open { + overflow: hidden; } + .modal-open .modal { + overflow-x: hidden; + overflow-y: auto; } + +.modal { + position: fixed; + top: 0; + left: 0; + z-index: 1050; + display: none; + width: 100%; + height: 100%; + overflow: hidden; + outline: 0; } + +.modal-dialog { + position: relative; + width: auto; + margin: 0.5rem; + pointer-events: none; } + .modal.fade .modal-dialog { + -webkit-transition: -webkit-transform 0.3s ease-out; + transition: -webkit-transform 0.3s ease-out; + transition: transform 0.3s ease-out; + transition: transform 0.3s ease-out, -webkit-transform 0.3s ease-out; + -webkit-transform: translate(0, -50px); + transform: translate(0, -50px); } + @media (prefers-reduced-motion: reduce) { + .modal.fade .modal-dialog { + -webkit-transition: none; + transition: none; } } + .modal.show .modal-dialog { + -webkit-transform: none; + transform: none; } + .modal.modal-static .modal-dialog { + -webkit-transform: scale(1.02); + transform: scale(1.02); } + +.modal-dialog-scrollable { + height: calc(100% - 1rem); } + .modal-dialog-scrollable .modal-content { + max-height: 100%; + overflow: hidden; } + .modal-dialog-scrollable .modal-body { + overflow-y: auto; } + +.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% - 1rem); } + +.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, 0.2); + border-radius: 0.3rem; + outline: 0; } + +.modal-backdrop { + position: fixed; + top: 0; + left: 0; + z-index: 1040; + width: 100vw; + height: 100vh; + background-color: #000; } + .modal-backdrop.fade { + opacity: 0; } + .modal-backdrop.show { + opacity: 0.5; } + +.modal-header { + display: -webkit-box; + display: -ms-flexbox; + display: flex; + -ms-flex-negative: 0; + flex-shrink: 0; + -webkit-box-align: center; + -ms-flex-align: center; + align-items: center; + -webkit-box-pack: justify; + -ms-flex-pack: justify; + justify-content: space-between; + padding: 1rem 1rem; + border-bottom: 1px solid #dee2e6; + border-top-left-radius: calc(0.3rem - 1px); + border-top-right-radius: calc(0.3rem - 1px); } + .modal-header .btn-close { + padding: 0.5rem 0.5rem; + margin: -0.5rem -0.5rem -0.5rem 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; + -ms-flex-wrap: wrap; + flex-wrap: wrap; + -ms-flex-negative: 0; + flex-shrink: 0; + -webkit-box-align: center; + -ms-flex-align: center; + align-items: center; + -webkit-box-pack: end; + -ms-flex-pack: end; + justify-content: flex-end; + padding: 0.75rem; + border-top: 1px solid #dee2e6; + border-bottom-right-radius: calc(0.3rem - 1px); + border-bottom-left-radius: calc(0.3rem - 1px); } + .modal-footer > * { + margin: 0.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-scrollable { + height: calc(100% - 3.5rem); } + .modal-dialog-centered { + min-height: calc(100% - 3.5rem); } + .modal-sm { + max-width: 300px; } } + +@media (min-width: 992px) { + .modal-lg, + .modal-xl { + max-width: 800px; } } + +@media (min-width: 1200px) { + .modal-xl { + max-width: 1140px; } } + +.modal-fullscreen { + width: 100vw; + max-width: none; + height: 100%; + margin: 0; } + .modal-fullscreen .modal-content { + height: 100%; + border: 0; + border-radius: 0; } + .modal-fullscreen .modal-header { + border-radius: 0; } + .modal-fullscreen .modal-body { + overflow-y: auto; } + .modal-fullscreen .modal-footer { + border-radius: 0; } + +@media (max-width: 575.98px) { + .modal-fullscreen-sm-down { + width: 100vw; + max-width: none; + height: 100%; + margin: 0; } + .modal-fullscreen-sm-down .modal-content { + height: 100%; + border: 0; + border-radius: 0; } + .modal-fullscreen-sm-down .modal-header { + border-radius: 0; } + .modal-fullscreen-sm-down .modal-body { + overflow-y: auto; } + .modal-fullscreen-sm-down .modal-footer { + border-radius: 0; } } + +@media (max-width: 767.98px) { + .modal-fullscreen-md-down { + width: 100vw; + max-width: none; + height: 100%; + margin: 0; } + .modal-fullscreen-md-down .modal-content { + height: 100%; + border: 0; + border-radius: 0; } + .modal-fullscreen-md-down .modal-header { + border-radius: 0; } + .modal-fullscreen-md-down .modal-body { + overflow-y: auto; } + .modal-fullscreen-md-down .modal-footer { + border-radius: 0; } } + +@media (max-width: 991.98px) { + .modal-fullscreen-lg-down { + width: 100vw; + max-width: none; + height: 100%; + margin: 0; } + .modal-fullscreen-lg-down .modal-content { + height: 100%; + border: 0; + border-radius: 0; } + .modal-fullscreen-lg-down .modal-header { + border-radius: 0; } + .modal-fullscreen-lg-down .modal-body { + overflow-y: auto; } + .modal-fullscreen-lg-down .modal-footer { + border-radius: 0; } } + +@media (max-width: 1199.98px) { + .modal-fullscreen-xl-down { + width: 100vw; + max-width: none; + height: 100%; + margin: 0; } + .modal-fullscreen-xl-down .modal-content { + height: 100%; + border: 0; + border-radius: 0; } + .modal-fullscreen-xl-down .modal-header { + border-radius: 0; } + .modal-fullscreen-xl-down .modal-body { + overflow-y: auto; } + .modal-fullscreen-xl-down .modal-footer { + border-radius: 0; } } + +@media (max-width: 1399.98px) { + .modal-fullscreen-xxl-down { + width: 100vw; + max-width: none; + height: 100%; + margin: 0; } + .modal-fullscreen-xxl-down .modal-content { + height: 100%; + border: 0; + border-radius: 0; } + .modal-fullscreen-xxl-down .modal-header { + border-radius: 0; } + .modal-fullscreen-xxl-down .modal-body { + overflow-y: auto; } + .modal-fullscreen-xxl-down .modal-footer { + border-radius: 0; } } + +.tooltip { + position: absolute; + z-index: 1070; + display: block; + margin: 0; + font-family: var(--bs-font-sans-serif); + 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: 0.875rem; + word-wrap: break-word; + opacity: 0; } + .tooltip.show { + opacity: 0.9; } + .tooltip .tooltip-arrow { + position: absolute; + display: block; + width: 0.8rem; + height: 0.4rem; } + .tooltip .tooltip-arrow::before { + position: absolute; + content: ""; + border-color: transparent; + border-style: solid; } + +.bs-tooltip-top, .bs-tooltip-auto[data-popper-placement^="top"] { + padding: 0.4rem 0; } + .bs-tooltip-top .tooltip-arrow, .bs-tooltip-auto[data-popper-placement^="top"] .tooltip-arrow { + bottom: 0; } + .bs-tooltip-top .tooltip-arrow::before, .bs-tooltip-auto[data-popper-placement^="top"] .tooltip-arrow::before { + top: -1px; + border-width: 0.4rem 0.4rem 0; + border-top-color: #000; } + +.bs-tooltip-end, .bs-tooltip-auto[data-popper-placement^="right"] { + padding: 0 0.4rem; } + .bs-tooltip-end .tooltip-arrow, .bs-tooltip-auto[data-popper-placement^="right"] .tooltip-arrow { + left: 0; + width: 0.4rem; + height: 0.8rem; } + .bs-tooltip-end .tooltip-arrow::before, .bs-tooltip-auto[data-popper-placement^="right"] .tooltip-arrow::before { + right: -1px; + border-width: 0.4rem 0.4rem 0.4rem 0; + border-right-color: #000; } + +.bs-tooltip-bottom, .bs-tooltip-auto[data-popper-placement^="bottom"] { + padding: 0.4rem 0; } + .bs-tooltip-bottom .tooltip-arrow, .bs-tooltip-auto[data-popper-placement^="bottom"] .tooltip-arrow { + top: 0; } + .bs-tooltip-bottom .tooltip-arrow::before, .bs-tooltip-auto[data-popper-placement^="bottom"] .tooltip-arrow::before { + bottom: -1px; + border-width: 0 0.4rem 0.4rem; + border-bottom-color: #000; } + +.bs-tooltip-start, .bs-tooltip-auto[data-popper-placement^="left"] { + padding: 0 0.4rem; } + .bs-tooltip-start .tooltip-arrow, .bs-tooltip-auto[data-popper-placement^="left"] .tooltip-arrow { + right: 0; + width: 0.4rem; + height: 0.8rem; } + .bs-tooltip-start .tooltip-arrow::before, .bs-tooltip-auto[data-popper-placement^="left"] .tooltip-arrow::before { + left: -1px; + border-width: 0.4rem 0 0.4rem 0.4rem; + border-left-color: #000; } + +.tooltip-inner { + max-width: 200px; + padding: 0.25rem 0.5rem; + color: #fff; + text-align: center; + background-color: #000; + border-radius: 0.25rem; } + +.popover { + position: absolute; + top: 0; + left: 0 /* rtl:ignore */; + z-index: 1060; + display: block; + max-width: 276px; + font-family: var(--bs-font-sans-serif); + 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: 0.875rem; + word-wrap: break-word; + background-color: #fff; + background-clip: padding-box; + border: 1px solid rgba(0, 0, 0, 0.2); + border-radius: 0.3rem; } + .popover .popover-arrow { + position: absolute; + display: block; + width: 1rem; + height: 0.5rem; + margin: 0 0.3rem; } + .popover .popover-arrow::before, .popover .popover-arrow::after { + position: absolute; + display: block; + content: ""; + border-color: transparent; + border-style: solid; } + +.bs-popover-top, .bs-popover-auto[data-popper-placement^="top"] { + margin-bottom: 0.5rem !important; } + .bs-popover-top > .popover-arrow, .bs-popover-auto[data-popper-placement^="top"] > .popover-arrow { + bottom: calc(-0.5rem - 1px); } + .bs-popover-top > .popover-arrow::before, .bs-popover-auto[data-popper-placement^="top"] > .popover-arrow::before { + bottom: 0; + border-width: 0.5rem 0.5rem 0; + border-top-color: rgba(0, 0, 0, 0.25); } + .bs-popover-top > .popover-arrow::after, .bs-popover-auto[data-popper-placement^="top"] > .popover-arrow::after { + bottom: 1px; + border-width: 0.5rem 0.5rem 0; + border-top-color: #fff; } + +.bs-popover-end, .bs-popover-auto[data-popper-placement^="right"] { + margin-left: 0.5rem !important; } + .bs-popover-end > .popover-arrow, .bs-popover-auto[data-popper-placement^="right"] > .popover-arrow { + left: calc(-0.5rem - 1px); + width: 0.5rem; + height: 1rem; + margin: 0.3rem 0; } + .bs-popover-end > .popover-arrow::before, .bs-popover-auto[data-popper-placement^="right"] > .popover-arrow::before { + left: 0; + border-width: 0.5rem 0.5rem 0.5rem 0; + border-right-color: rgba(0, 0, 0, 0.25); } + .bs-popover-end > .popover-arrow::after, .bs-popover-auto[data-popper-placement^="right"] > .popover-arrow::after { + left: 1px; + border-width: 0.5rem 0.5rem 0.5rem 0; + border-right-color: #fff; } + +.bs-popover-bottom, .bs-popover-auto[data-popper-placement^="bottom"] { + margin-top: 0.5rem !important; } + .bs-popover-bottom > .popover-arrow, .bs-popover-auto[data-popper-placement^="bottom"] > .popover-arrow { + top: calc(-0.5rem - 1px); } + .bs-popover-bottom > .popover-arrow::before, .bs-popover-auto[data-popper-placement^="bottom"] > .popover-arrow::before { + top: 0; + border-width: 0 0.5rem 0.5rem 0.5rem; + border-bottom-color: rgba(0, 0, 0, 0.25); } + .bs-popover-bottom > .popover-arrow::after, .bs-popover-auto[data-popper-placement^="bottom"] > .popover-arrow::after { + top: 1px; + border-width: 0 0.5rem 0.5rem 0.5rem; + border-bottom-color: #fff; } + .bs-popover-bottom .popover-header::before, .bs-popover-auto[data-popper-placement^="bottom"] .popover-header::before { + position: absolute; + top: 0; + left: 50%; + display: block; + width: 1rem; + margin-left: -0.5rem; + content: ""; + border-bottom: 1px solid #f0f0f0; } + +.bs-popover-start, .bs-popover-auto[data-popper-placement^="left"] { + margin-right: 0.5rem !important; } + .bs-popover-start > .popover-arrow, .bs-popover-auto[data-popper-placement^="left"] > .popover-arrow { + right: calc(-0.5rem - 1px); + width: 0.5rem; + height: 1rem; + margin: 0.3rem 0; } + .bs-popover-start > .popover-arrow::before, .bs-popover-auto[data-popper-placement^="left"] > .popover-arrow::before { + right: 0; + border-width: 0.5rem 0 0.5rem 0.5rem; + border-left-color: rgba(0, 0, 0, 0.25); } + .bs-popover-start > .popover-arrow::after, .bs-popover-auto[data-popper-placement^="left"] > .popover-arrow::after { + right: 1px; + border-width: 0.5rem 0 0.5rem 0.5rem; + border-left-color: #fff; } + +.popover-header { + padding: 0.5rem 1rem; + margin-bottom: 0; + font-size: 1rem; + background-color: #f0f0f0; + border-bottom: 1px solid #d8d8d8; + border-top-left-radius: calc(0.3rem - 1px); + border-top-right-radius: calc(0.3rem - 1px); } + .popover-header:empty { + display: none; } + +.popover-body { + padding: 1rem 1rem; + color: #212529; } + +.carousel { + position: relative; } + +.carousel.pointer-event { + -ms-touch-action: pan-y; + touch-action: pan-y; } + +.carousel-inner { + position: relative; + width: 100%; + overflow: hidden; } + .carousel-inner::after { + display: block; + clear: both; + content: ""; } + +.carousel-item { + position: relative; + display: none; + float: left; + width: 100%; + margin-right: -100%; + -webkit-backface-visibility: hidden; + backface-visibility: hidden; + -webkit-transition: -webkit-transform 0.6s ease-in-out; + transition: -webkit-transform 0.6s ease-in-out; + transition: transform 0.6s ease-in-out; + transition: transform 0.6s ease-in-out, -webkit-transform 0.6s ease-in-out; } + @media (prefers-reduced-motion: reduce) { + .carousel-item { + -webkit-transition: none; + transition: none; } } + +.carousel-item.active, +.carousel-item-next, +.carousel-item-prev { + display: block; } + +/* rtl:begin:ignore */ +.carousel-item-next:not(.carousel-item-start), +.active.carousel-item-end { + -webkit-transform: translateX(100%); + transform: translateX(100%); } + +.carousel-item-prev:not(.carousel-item-end), +.active.carousel-item-start { + -webkit-transform: translateX(-100%); + transform: translateX(-100%); } + +/* rtl:end:ignore */ +.carousel-fade .carousel-item { + opacity: 0; + -webkit-transition-property: opacity; + transition-property: opacity; + -webkit-transform: none; + transform: none; } + +.carousel-fade .carousel-item.active, +.carousel-fade .carousel-item-next.carousel-item-start, +.carousel-fade .carousel-item-prev.carousel-item-end { + z-index: 1; + opacity: 1; } + +.carousel-fade .active.carousel-item-start, +.carousel-fade .active.carousel-item-end { + z-index: 0; + opacity: 0; + -webkit-transition: opacity 0s 0.6s; + transition: opacity 0s 0.6s; } + @media (prefers-reduced-motion: reduce) { + .carousel-fade .active.carousel-item-start, + .carousel-fade .active.carousel-item-end { + -webkit-transition: none; + transition: none; } } + +.carousel-control-prev, +.carousel-control-next { + position: absolute; + top: 0; + bottom: 0; + z-index: 1; + 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: 0.5; + -webkit-transition: opacity 0.15s ease; + transition: opacity 0.15s ease; } + @media (prefers-reduced-motion: reduce) { + .carousel-control-prev, + .carousel-control-next { + -webkit-transition: none; + transition: none; } } + .carousel-control-prev:hover, .carousel-control-prev:focus, + .carousel-control-next:hover, + .carousel-control-next:focus { + color: #fff; + text-decoration: none; + outline: 0; + opacity: 0.9; } + +.carousel-control-prev { + left: 0; } + +.carousel-control-next { + right: 0; } + +.carousel-control-prev-icon, +.carousel-control-next-icon { + display: inline-block; + width: 2rem; + height: 2rem; + background-repeat: no-repeat; + background-position: 50%; + background-size: 100% 100%; } + +/* rtl:options: { + "autoRename": true, + "stringMap":[ { + "name" : "prev-next", + "search" : "prev", + "replace" : "next" + } ] +} */ +.carousel-control-prev-icon { + background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='%23fff'%3e%3cpath d='M11.354 1.646a.5.5 0 0 1 0 .708L5.707 8l5.647 5.646a.5.5 0 0 1-.708.708l-6-6a.5.5 0 0 1 0-.708l6-6a.5.5 0 0 1 .708 0z'/%3e%3c/svg%3e"); } + +.carousel-control-next-icon { + background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='%23fff'%3e%3cpath d='M4.646 1.646a.5.5 0 0 1 .708 0l6 6a.5.5 0 0 1 0 .708l-6 6a.5.5 0 0 1-.708-.708L10.293 8 4.646 2.354a.5.5 0 0 1 0-.708z'/%3e%3c/svg%3e"); } + +.carousel-indicators { + position: absolute; + right: 0; + bottom: 0; + left: 0; + z-index: 2; + 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 { + -webkit-box-sizing: content-box; + box-sizing: content-box; + -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; + cursor: pointer; + background-color: #fff; + background-clip: padding-box; + border-top: 10px solid transparent; + border-bottom: 10px solid transparent; + opacity: 0.5; + -webkit-transition: opacity 0.6s ease; + transition: opacity 0.6s ease; } + @media (prefers-reduced-motion: reduce) { + .carousel-indicators li { + -webkit-transition: none; + transition: none; } } + .carousel-indicators .active { + opacity: 1; } + +.carousel-caption { + position: absolute; + right: 15%; + bottom: 1.25rem; + left: 15%; + padding-top: 1.25rem; + padding-bottom: 1.25rem; + color: #fff; + text-align: center; } + +.carousel-dark .carousel-control-prev-icon, +.carousel-dark .carousel-control-next-icon { + -webkit-filter: invert(1) grayscale(100); + filter: invert(1) grayscale(100); } + +.carousel-dark .carousel-indicators li { + background-color: #000; } + +.carousel-dark .carousel-caption { + color: #000; } + +@-webkit-keyframes spinner-border { + to { + -webkit-transform: rotate(360deg) /* rtl:ignore */; + transform: rotate(360deg) /* rtl:ignore */; } } + +@keyframes spinner-border { + to { + -webkit-transform: rotate(360deg) /* rtl:ignore */; + transform: rotate(360deg) /* rtl:ignore */; } } + +.spinner-border { + display: inline-block; + width: 2rem; + height: 2rem; + vertical-align: text-bottom; + border: 0.25em solid currentColor; + border-right-color: transparent; + border-radius: 50%; + -webkit-animation: 0.75s linear infinite spinner-border; + animation: 0.75s linear infinite spinner-border; } + +.spinner-border-sm { + width: 1rem; + height: 1rem; + border-width: 0.2em; } + +@-webkit-keyframes spinner-grow { + 0% { + -webkit-transform: scale(0); + transform: scale(0); } + 50% { + opacity: 1; + -webkit-transform: none; + transform: none; } } + +@keyframes spinner-grow { + 0% { + -webkit-transform: scale(0); + transform: scale(0); } + 50% { + opacity: 1; + -webkit-transform: none; + transform: none; } } + +.spinner-grow { + display: inline-block; + width: 2rem; + height: 2rem; + vertical-align: text-bottom; + background-color: currentColor; + border-radius: 50%; + opacity: 0; + -webkit-animation: 0.75s linear infinite spinner-grow; + animation: 0.75s linear infinite spinner-grow; } + +.spinner-grow-sm { + width: 1rem; + height: 1rem; } + +@media (prefers-reduced-motion: reduce) { + .spinner-border, + .spinner-grow { + -webkit-animation-duration: 1.5s; + animation-duration: 1.5s; } } + +.clearfix::after { + display: block; + clear: both; + content: ""; } + +.link-primary { + color: #0d6efd; } + .link-primary:hover, .link-primary:focus { + color: #0a58ca; } + +.link-secondary { + color: #6c757d; } + .link-secondary:hover, .link-secondary:focus { + color: #565e64; } + +.link-success { + color: #198754; } + .link-success:hover, .link-success:focus { + color: #146c43; } + +.link-info { + color: #0dcaf0; } + .link-info:hover, .link-info:focus { + color: #3dd5f3; } + +.link-warning { + color: #ffc107; } + .link-warning:hover, .link-warning:focus { + color: #ffcd39; } + +.link-danger { + color: #dc3545; } + .link-danger:hover, .link-danger:focus { + color: #b02a37; } + +.link-light { + color: #f8f9fa; } + .link-light:hover, .link-light:focus { + color: #f9fafb; } + +.link-dark { + color: #212529; } + .link-dark:hover, .link-dark:focus { + color: #1a1e21; } + +.ratio { + position: relative; + width: 100%; } + .ratio::before { + display: block; + padding-top: var(--aspect-ratio); + content: ""; } + .ratio > * { + position: absolute; + top: 0; + left: 0; + width: 100%; + height: 100%; } + +.ratio-1x1 { + --aspect-ratio: 100%; } + +.ratio-4x3 { + --aspect-ratio: calc(3 / 4 * 100%); } + +.ratio-16x9 { + --aspect-ratio: calc(9 / 16 * 100%); } + +.ratio-21x9 { + --aspect-ratio: calc(9 / 21 * 100%); } + +.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; } + +.sticky-top { + position: sticky; + top: 0; + z-index: 1020; } + +@media (min-width: 576px) { + .sticky-sm-top { + position: sticky; + top: 0; + z-index: 1020; } } + +@media (min-width: 768px) { + .sticky-md-top { + position: sticky; + top: 0; + z-index: 1020; } } + +@media (min-width: 992px) { + .sticky-lg-top { + position: sticky; + top: 0; + z-index: 1020; } } + +@media (min-width: 1200px) { + .sticky-xl-top { + position: sticky; + top: 0; + z-index: 1020; } } + +@media (min-width: 1400px) { + .sticky-xxl-top { + position: sticky; + top: 0; + z-index: 1020; } } + +.visually-hidden, +.visually-hidden-focusable:not(:focus) { + position: absolute !important; + width: 1px !important; + height: 1px !important; + padding: 0 !important; + margin: -1px !important; + overflow: hidden !important; + clip: rect(0, 0, 0, 0) !important; + white-space: nowrap !important; + border: 0 !important; } + +.stretched-link::after { + position: absolute; + top: 0; + right: 0; + bottom: 0; + left: 0; + z-index: 1; + content: ""; } + +.text-truncate { + overflow: hidden; + text-overflow: ellipsis; + white-space: nowrap; } + +.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; } + +.float-start { + float: left !important; } + +.float-end { + float: right !important; } + +.float-none { + float: none !important; } + +.overflow-auto { + overflow: auto !important; } + +.overflow-hidden { + overflow: hidden !important; } + +.overflow-visible { + overflow: visible !important; } + +.overflow-scroll { + overflow: scroll !important; } + +.d-inline { + display: inline !important; } + +.d-inline-block { + display: inline-block !important; } + +.d-block { + display: block !important; } + +.d-grid { + display: grid !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; } + +.d-none { + display: none !important; } + +.shadow { + -webkit-box-shadow: 0 0.5rem 1rem rgba(0, 0, 0, 0.15) !important; + box-shadow: 0 0.5rem 1rem rgba(0, 0, 0, 0.15) !important; } + +.shadow-sm { + -webkit-box-shadow: 0 0.125rem 0.25rem rgba(0, 0, 0, 0.075) !important; + box-shadow: 0 0.125rem 0.25rem rgba(0, 0, 0, 0.075) !important; } + +.shadow-lg { + -webkit-box-shadow: 0 1rem 3rem rgba(0, 0, 0, 0.175) !important; + box-shadow: 0 1rem 3rem rgba(0, 0, 0, 0.175) !important; } + +.shadow-none { + -webkit-box-shadow: none !important; + box-shadow: 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: sticky !important; } + +.top-0 { + top: 0 !important; } + +.top-50 { + top: 50% !important; } + +.top-100 { + top: 100% !important; } + +.bottom-0 { + bottom: 0 !important; } + +.bottom-50 { + bottom: 50% !important; } + +.bottom-100 { + bottom: 100% !important; } + +.start-0 { + left: 0 !important; } + +.start-50 { + left: 50% !important; } + +.start-100 { + left: 100% !important; } + +.end-0 { + right: 0 !important; } + +.end-50 { + right: 50% !important; } + +.end-100 { + right: 100% !important; } + +.translate-middle { + -webkit-transform: translate(-50%, -50%) !important; + transform: translate(-50%, -50%) !important; } + +.translate-middle-x { + -webkit-transform: translateX(-50%) !important; + transform: translateX(-50%) !important; } + +.translate-middle-y { + -webkit-transform: translateY(-50%) !important; + transform: translateY(-50%) !important; } + +.border { + border: 1px solid #dee2e6 !important; } + +.border-0 { + border: 0 !important; } + +.border-top { + border-top: 1px solid #dee2e6 !important; } + +.border-top-0 { + border-top: 0 !important; } + +.border-end { + border-right: 1px solid #dee2e6 !important; } + +.border-end-0 { + border-right: 0 !important; } + +.border-bottom { + border-bottom: 1px solid #dee2e6 !important; } + +.border-bottom-0 { + border-bottom: 0 !important; } + +.border-start { + border-left: 1px solid #dee2e6 !important; } + +.border-start-0 { + border-left: 0 !important; } + +.border-primary { + border-color: #0d6efd !important; } + +.border-secondary { + border-color: #6c757d !important; } + +.border-success { + border-color: #198754 !important; } + +.border-info { + border-color: #0dcaf0 !important; } + +.border-warning { + border-color: #ffc107 !important; } + +.border-danger { + border-color: #dc3545 !important; } + +.border-light { + border-color: #f8f9fa !important; } + +.border-dark { + border-color: #212529 !important; } + +.border-white { + border-color: #fff !important; } + +.border-0 { + border-width: 0 !important; } + +.border-1 { + border-width: 1px !important; } + +.border-2 { + border-width: 2px !important; } + +.border-3 { + border-width: 3px !important; } + +.border-4 { + border-width: 4px !important; } + +.border-5 { + border-width: 5px !important; } + +.w-25 { + width: 25% !important; } + +.w-50 { + width: 50% !important; } + +.w-75 { + width: 75% !important; } + +.w-100 { + width: 100% !important; } + +.w-auto { + width: auto !important; } + +.mw-100 { + max-width: 100% !important; } + +.vw-100 { + width: 100vw !important; } + +.min-vw-100 { + min-width: 100vw !important; } + +.h-25 { + height: 25% !important; } + +.h-50 { + height: 50% !important; } + +.h-75 { + height: 75% !important; } + +.h-100 { + height: 100% !important; } + +.h-auto { + height: auto !important; } + +.mh-100 { + max-height: 100% !important; } + +.vh-100 { + height: 100vh !important; } + +.min-vh-100 { + min-height: 100vh !important; } + +.flex-fill { + -webkit-box-flex: 1 !important; + -ms-flex: 1 1 auto !important; + flex: 1 1 auto !important; } + +.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-grow-0 { + -webkit-box-flex: 0 !important; + -ms-flex-positive: 0 !important; + flex-grow: 0 !important; } + +.flex-grow-1 { + -webkit-box-flex: 1 !important; + -ms-flex-positive: 1 !important; + flex-grow: 1 !important; } + +.flex-shrink-0 { + -ms-flex-negative: 0 !important; + flex-shrink: 0 !important; } + +.flex-shrink-1 { + -ms-flex-negative: 1 !important; + flex-shrink: 1 !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; } + +.gap-0 { + gap: 0 !important; } + +.gap-1 { + gap: 0.25rem !important; } + +.gap-2 { + gap: 0.5rem !important; } + +.gap-3 { + gap: 1rem !important; } + +.gap-4 { + gap: 1.5rem !important; } + +.gap-5 { + gap: 3rem !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; } + +.justify-content-evenly { + -webkit-box-pack: space-evenly !important; + -ms-flex-pack: space-evenly !important; + justify-content: space-evenly !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; } + +.order-first { + -webkit-box-ordinal-group: 0 !important; + -ms-flex-order: -1 !important; + order: -1 !important; } + +.order-0 { + -webkit-box-ordinal-group: 1 !important; + -ms-flex-order: 0 !important; + order: 0 !important; } + +.order-1 { + -webkit-box-ordinal-group: 2 !important; + -ms-flex-order: 1 !important; + order: 1 !important; } + +.order-2 { + -webkit-box-ordinal-group: 3 !important; + -ms-flex-order: 2 !important; + order: 2 !important; } + +.order-3 { + -webkit-box-ordinal-group: 4 !important; + -ms-flex-order: 3 !important; + order: 3 !important; } + +.order-4 { + -webkit-box-ordinal-group: 5 !important; + -ms-flex-order: 4 !important; + order: 4 !important; } + +.order-5 { + -webkit-box-ordinal-group: 6 !important; + -ms-flex-order: 5 !important; + order: 5 !important; } + +.order-last { + -webkit-box-ordinal-group: 7 !important; + -ms-flex-order: 6 !important; + order: 6 !important; } + +.m-0 { + margin: 0 !important; } + +.m-1 { + margin: 0.25rem !important; } + +.m-2 { + margin: 0.5rem !important; } + +.m-3 { + margin: 1rem !important; } + +.m-4 { + margin: 1.5rem !important; } + +.m-5 { + margin: 3rem !important; } + +.m-auto { + margin: auto !important; } + +.mx-0 { + margin-right: 0 !important; + margin-left: 0 !important; } + +.mx-1 { + margin-right: 0.25rem !important; + margin-left: 0.25rem !important; } + +.mx-2 { + margin-right: 0.5rem !important; + margin-left: 0.5rem !important; } + +.mx-3 { + margin-right: 1rem !important; + margin-left: 1rem !important; } + +.mx-4 { + margin-right: 1.5rem !important; + margin-left: 1.5rem !important; } + +.mx-5 { + margin-right: 3rem !important; + margin-left: 3rem !important; } + +.mx-auto { + margin-right: auto !important; + margin-left: auto !important; } + +.my-0 { + margin-top: 0 !important; + margin-bottom: 0 !important; } + +.my-1 { + margin-top: 0.25rem !important; + margin-bottom: 0.25rem !important; } + +.my-2 { + margin-top: 0.5rem !important; + margin-bottom: 0.5rem !important; } + +.my-3 { + margin-top: 1rem !important; + margin-bottom: 1rem !important; } + +.my-4 { + margin-top: 1.5rem !important; + margin-bottom: 1.5rem !important; } + +.my-5 { + margin-top: 3rem !important; + margin-bottom: 3rem !important; } + +.my-auto { + margin-top: auto !important; + margin-bottom: auto !important; } + +.mt-0 { + margin-top: 0 !important; } + +.mt-1 { + margin-top: 0.25rem !important; } + +.mt-2 { + margin-top: 0.5rem !important; } + +.mt-3 { + margin-top: 1rem !important; } + +.mt-4 { + margin-top: 1.5rem !important; } + +.mt-5 { + margin-top: 3rem !important; } + +.mt-auto { + margin-top: auto !important; } + +.me-0 { + margin-right: 0 !important; } + +.me-1 { + margin-right: 0.25rem !important; } + +.me-2 { + margin-right: 0.5rem !important; } + +.me-3 { + margin-right: 1rem !important; } + +.me-4 { + margin-right: 1.5rem !important; } + +.me-5 { + margin-right: 3rem !important; } + +.me-auto { + margin-right: auto !important; } + +.mb-0 { + margin-bottom: 0 !important; } + +.mb-1 { + margin-bottom: 0.25rem !important; } + +.mb-2 { + margin-bottom: 0.5rem !important; } + +.mb-3 { + margin-bottom: 1rem !important; } + +.mb-4 { + margin-bottom: 1.5rem !important; } + +.mb-5 { + margin-bottom: 3rem !important; } + +.mb-auto { + margin-bottom: auto !important; } + +.ms-0 { + margin-left: 0 !important; } + +.ms-1 { + margin-left: 0.25rem !important; } + +.ms-2 { + margin-left: 0.5rem !important; } + +.ms-3 { + margin-left: 1rem !important; } + +.ms-4 { + margin-left: 1.5rem !important; } + +.ms-5 { + margin-left: 3rem !important; } + +.ms-auto { + margin-left: auto !important; } + +.p-0 { + padding: 0 !important; } + +.p-1 { + padding: 0.25rem !important; } + +.p-2 { + padding: 0.5rem !important; } + +.p-3 { + padding: 1rem !important; } + +.p-4 { + padding: 1.5rem !important; } + +.p-5 { + padding: 3rem !important; } + +.px-0 { + padding-right: 0 !important; + padding-left: 0 !important; } + +.px-1 { + padding-right: 0.25rem !important; + padding-left: 0.25rem !important; } + +.px-2 { + padding-right: 0.5rem !important; + padding-left: 0.5rem !important; } + +.px-3 { + padding-right: 1rem !important; + padding-left: 1rem !important; } + +.px-4 { + padding-right: 1.5rem !important; + padding-left: 1.5rem !important; } + +.px-5 { + padding-right: 3rem !important; + padding-left: 3rem !important; } + +.py-0 { + padding-top: 0 !important; + padding-bottom: 0 !important; } + +.py-1 { + padding-top: 0.25rem !important; + padding-bottom: 0.25rem !important; } + +.py-2 { + padding-top: 0.5rem !important; + padding-bottom: 0.5rem !important; } + +.py-3 { + padding-top: 1rem !important; + padding-bottom: 1rem !important; } + +.py-4 { + padding-top: 1.5rem !important; + padding-bottom: 1.5rem !important; } + +.py-5 { + padding-top: 3rem !important; + padding-bottom: 3rem !important; } + +.pt-0 { + padding-top: 0 !important; } + +.pt-1 { + padding-top: 0.25rem !important; } + +.pt-2 { + padding-top: 0.5rem !important; } + +.pt-3 { + padding-top: 1rem !important; } + +.pt-4 { + padding-top: 1.5rem !important; } + +.pt-5 { + padding-top: 3rem !important; } + +.pe-0 { + padding-right: 0 !important; } + +.pe-1 { + padding-right: 0.25rem !important; } + +.pe-2 { + padding-right: 0.5rem !important; } + +.pe-3 { + padding-right: 1rem !important; } + +.pe-4 { + padding-right: 1.5rem !important; } + +.pe-5 { + padding-right: 3rem !important; } + +.pb-0 { + padding-bottom: 0 !important; } + +.pb-1 { + padding-bottom: 0.25rem !important; } + +.pb-2 { + padding-bottom: 0.5rem !important; } + +.pb-3 { + padding-bottom: 1rem !important; } + +.pb-4 { + padding-bottom: 1.5rem !important; } + +.pb-5 { + padding-bottom: 3rem !important; } + +.ps-0 { + padding-left: 0 !important; } + +.ps-1 { + padding-left: 0.25rem !important; } + +.ps-2 { + padding-left: 0.5rem !important; } + +.ps-3 { + padding-left: 1rem !important; } + +.ps-4 { + padding-left: 1.5rem !important; } + +.ps-5 { + padding-left: 3rem !important; } + +.fs-1 { + font-size: calc(1.375rem + 1.5vw) !important; } + +.fs-2 { + font-size: calc(1.325rem + 0.9vw) !important; } + +.fs-3 { + font-size: calc(1.3rem + 0.6vw) !important; } + +.fs-4 { + font-size: calc(1.275rem + 0.3vw) !important; } + +.fs-5 { + font-size: 1.25rem !important; } + +.fs-6 { + font-size: 1rem !important; } + +.fst-italic { + font-style: italic !important; } + +.fst-normal { + font-style: normal !important; } + +.fw-light { + font-weight: 300 !important; } + +.fw-lighter { + font-weight: lighter !important; } + +.fw-normal { + font-weight: 400 !important; } + +.fw-bold { + font-weight: 700 !important; } + +.fw-bolder { + font-weight: bolder !important; } + +.text-lowercase { + text-transform: lowercase !important; } + +.text-uppercase { + text-transform: uppercase !important; } + +.text-capitalize { + text-transform: capitalize !important; } + +.text-start { + text-align: left !important; } + +.text-end { + text-align: right !important; } + +.text-center { + text-align: center !important; } + +.text-primary { + color: #0d6efd !important; } + +.text-secondary { + color: #6c757d !important; } + +.text-success { + color: #198754 !important; } + +.text-info { + color: #0dcaf0 !important; } + +.text-warning { + color: #ffc107 !important; } + +.text-danger { + color: #dc3545 !important; } + +.text-light { + color: #f8f9fa !important; } + +.text-dark { + color: #212529 !important; } + +.text-white { + color: #fff !important; } + +.text-body { + color: #212529 !important; } + +.text-muted { + color: #6c757d !important; } + +.text-black-50 { + color: rgba(0, 0, 0, 0.5) !important; } + +.text-white-50 { + color: rgba(255, 255, 255, 0.5) !important; } + +.text-reset { + color: inherit !important; } + +.lh-1 { + line-height: 1 !important; } + +.lh-sm { + line-height: 1.25 !important; } + +.lh-base { + line-height: 1.5 !important; } + +.lh-lg { + line-height: 2 !important; } + +.bg-primary { + background-color: #0d6efd !important; } + +.bg-secondary { + background-color: #6c757d !important; } + +.bg-success { + background-color: #198754 !important; } + +.bg-info { + background-color: #0dcaf0 !important; } + +.bg-warning { + background-color: #ffc107 !important; } + +.bg-danger { + background-color: #dc3545 !important; } + +.bg-light { + background-color: #f8f9fa !important; } + +.bg-dark { + background-color: #212529 !important; } + +.bg-body { + background-color: #fff !important; } + +.bg-white { + background-color: #fff !important; } + +.bg-transparent { + background-color: transparent !important; } + +.bg-gradient { + background-image: var(--bs-gradient) !important; } + +.text-wrap { + white-space: normal !important; } + +.text-nowrap { + white-space: nowrap !important; } + +.text-decoration-none { + text-decoration: none !important; } + +.text-decoration-underline { + text-decoration: underline !important; } + +.text-decoration-line-through { + text-decoration: line-through !important; } + +/* rtl:begin:remove */ +.text-break { + word-wrap: break-word !important; + word-break: break-word !important; } + +/* rtl:end:remove */ +.font-monospace { + font-family: var(--bs-font-monospace) !important; } + +.user-select-all { + -webkit-user-select: all !important; + -moz-user-select: all !important; + -ms-user-select: all !important; + user-select: all !important; } + +.user-select-auto { + -webkit-user-select: auto !important; + -moz-user-select: auto !important; + -ms-user-select: auto !important; + user-select: auto !important; } + +.user-select-none { + -webkit-user-select: none !important; + -moz-user-select: none !important; + -ms-user-select: none !important; + user-select: none !important; } + +.pe-none { + pointer-events: none !important; } + +.pe-auto { + pointer-events: auto !important; } + +.rounded { + border-radius: 0.25rem !important; } + +.rounded-0 { + border-radius: 0 !important; } + +.rounded-1 { + border-radius: 0.2rem !important; } + +.rounded-2 { + border-radius: 0.25rem !important; } + +.rounded-3 { + border-radius: 0.3rem !important; } + +.rounded-circle { + border-radius: 50% !important; } + +.rounded-pill { + border-radius: 50rem !important; } + +.rounded-top { + border-top-left-radius: 0.25rem !important; + border-top-right-radius: 0.25rem !important; } + +.rounded-end { + border-top-right-radius: 0.25rem !important; + border-bottom-right-radius: 0.25rem !important; } + +.rounded-bottom { + border-bottom-right-radius: 0.25rem !important; + border-bottom-left-radius: 0.25rem !important; } + +.rounded-start { + border-bottom-left-radius: 0.25rem !important; + border-top-left-radius: 0.25rem !important; } + +.visible { + visibility: visible !important; } + +.invisible { + visibility: hidden !important; } + +@media (min-width: 576px) { + .float-sm-start { + float: left !important; } + .float-sm-end { + float: right !important; } + .float-sm-none { + float: none !important; } + .d-sm-inline { + display: inline !important; } + .d-sm-inline-block { + display: inline-block !important; } + .d-sm-block { + display: block !important; } + .d-sm-grid { + display: grid !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; } + .d-sm-none { + display: none !important; } + .flex-sm-fill { + -webkit-box-flex: 1 !important; + -ms-flex: 1 1 auto !important; + flex: 1 1 auto !important; } + .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-grow-0 { + -webkit-box-flex: 0 !important; + -ms-flex-positive: 0 !important; + flex-grow: 0 !important; } + .flex-sm-grow-1 { + -webkit-box-flex: 1 !important; + -ms-flex-positive: 1 !important; + flex-grow: 1 !important; } + .flex-sm-shrink-0 { + -ms-flex-negative: 0 !important; + flex-shrink: 0 !important; } + .flex-sm-shrink-1 { + -ms-flex-negative: 1 !important; + flex-shrink: 1 !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; } + .gap-sm-0 { + gap: 0 !important; } + .gap-sm-1 { + gap: 0.25rem !important; } + .gap-sm-2 { + gap: 0.5rem !important; } + .gap-sm-3 { + gap: 1rem !important; } + .gap-sm-4 { + gap: 1.5rem !important; } + .gap-sm-5 { + gap: 3rem !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; } + .justify-content-sm-evenly { + -webkit-box-pack: space-evenly !important; + -ms-flex-pack: space-evenly !important; + justify-content: space-evenly !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; } + .order-sm-first { + -webkit-box-ordinal-group: 0 !important; + -ms-flex-order: -1 !important; + order: -1 !important; } + .order-sm-0 { + -webkit-box-ordinal-group: 1 !important; + -ms-flex-order: 0 !important; + order: 0 !important; } + .order-sm-1 { + -webkit-box-ordinal-group: 2 !important; + -ms-flex-order: 1 !important; + order: 1 !important; } + .order-sm-2 { + -webkit-box-ordinal-group: 3 !important; + -ms-flex-order: 2 !important; + order: 2 !important; } + .order-sm-3 { + -webkit-box-ordinal-group: 4 !important; + -ms-flex-order: 3 !important; + order: 3 !important; } + .order-sm-4 { + -webkit-box-ordinal-group: 5 !important; + -ms-flex-order: 4 !important; + order: 4 !important; } + .order-sm-5 { + -webkit-box-ordinal-group: 6 !important; + -ms-flex-order: 5 !important; + order: 5 !important; } + .order-sm-last { + -webkit-box-ordinal-group: 7 !important; + -ms-flex-order: 6 !important; + order: 6 !important; } + .m-sm-0 { + margin: 0 !important; } + .m-sm-1 { + margin: 0.25rem !important; } + .m-sm-2 { + margin: 0.5rem !important; } + .m-sm-3 { + margin: 1rem !important; } + .m-sm-4 { + margin: 1.5rem !important; } + .m-sm-5 { + margin: 3rem !important; } + .m-sm-auto { + margin: auto !important; } + .mx-sm-0 { + margin-right: 0 !important; + margin-left: 0 !important; } + .mx-sm-1 { + margin-right: 0.25rem !important; + margin-left: 0.25rem !important; } + .mx-sm-2 { + margin-right: 0.5rem !important; + margin-left: 0.5rem !important; } + .mx-sm-3 { + margin-right: 1rem !important; + margin-left: 1rem !important; } + .mx-sm-4 { + margin-right: 1.5rem !important; + margin-left: 1.5rem !important; } + .mx-sm-5 { + margin-right: 3rem !important; + margin-left: 3rem !important; } + .mx-sm-auto { + margin-right: auto !important; + margin-left: auto !important; } + .my-sm-0 { + margin-top: 0 !important; + margin-bottom: 0 !important; } + .my-sm-1 { + margin-top: 0.25rem !important; + margin-bottom: 0.25rem !important; } + .my-sm-2 { + margin-top: 0.5rem !important; + margin-bottom: 0.5rem !important; } + .my-sm-3 { + margin-top: 1rem !important; + margin-bottom: 1rem !important; } + .my-sm-4 { + margin-top: 1.5rem !important; + margin-bottom: 1.5rem !important; } + .my-sm-5 { + margin-top: 3rem !important; + margin-bottom: 3rem !important; } + .my-sm-auto { + margin-top: auto !important; + margin-bottom: auto !important; } + .mt-sm-0 { + margin-top: 0 !important; } + .mt-sm-1 { + margin-top: 0.25rem !important; } + .mt-sm-2 { + margin-top: 0.5rem !important; } + .mt-sm-3 { + margin-top: 1rem !important; } + .mt-sm-4 { + margin-top: 1.5rem !important; } + .mt-sm-5 { + margin-top: 3rem !important; } + .mt-sm-auto { + margin-top: auto !important; } + .me-sm-0 { + margin-right: 0 !important; } + .me-sm-1 { + margin-right: 0.25rem !important; } + .me-sm-2 { + margin-right: 0.5rem !important; } + .me-sm-3 { + margin-right: 1rem !important; } + .me-sm-4 { + margin-right: 1.5rem !important; } + .me-sm-5 { + margin-right: 3rem !important; } + .me-sm-auto { + margin-right: auto !important; } + .mb-sm-0 { + margin-bottom: 0 !important; } + .mb-sm-1 { + margin-bottom: 0.25rem !important; } + .mb-sm-2 { + margin-bottom: 0.5rem !important; } + .mb-sm-3 { + margin-bottom: 1rem !important; } + .mb-sm-4 { + margin-bottom: 1.5rem !important; } + .mb-sm-5 { + margin-bottom: 3rem !important; } + .mb-sm-auto { + margin-bottom: auto !important; } + .ms-sm-0 { + margin-left: 0 !important; } + .ms-sm-1 { + margin-left: 0.25rem !important; } + .ms-sm-2 { + margin-left: 0.5rem !important; } + .ms-sm-3 { + margin-left: 1rem !important; } + .ms-sm-4 { + margin-left: 1.5rem !important; } + .ms-sm-5 { + margin-left: 3rem !important; } + .ms-sm-auto { + margin-left: auto !important; } + .p-sm-0 { + padding: 0 !important; } + .p-sm-1 { + padding: 0.25rem !important; } + .p-sm-2 { + padding: 0.5rem !important; } + .p-sm-3 { + padding: 1rem !important; } + .p-sm-4 { + padding: 1.5rem !important; } + .p-sm-5 { + padding: 3rem !important; } + .px-sm-0 { + padding-right: 0 !important; + padding-left: 0 !important; } + .px-sm-1 { + padding-right: 0.25rem !important; + padding-left: 0.25rem !important; } + .px-sm-2 { + padding-right: 0.5rem !important; + padding-left: 0.5rem !important; } + .px-sm-3 { + padding-right: 1rem !important; + padding-left: 1rem !important; } + .px-sm-4 { + padding-right: 1.5rem !important; + padding-left: 1.5rem !important; } + .px-sm-5 { + padding-right: 3rem !important; + padding-left: 3rem !important; } + .py-sm-0 { + padding-top: 0 !important; + padding-bottom: 0 !important; } + .py-sm-1 { + padding-top: 0.25rem !important; + padding-bottom: 0.25rem !important; } + .py-sm-2 { + padding-top: 0.5rem !important; + padding-bottom: 0.5rem !important; } + .py-sm-3 { + padding-top: 1rem !important; + padding-bottom: 1rem !important; } + .py-sm-4 { + padding-top: 1.5rem !important; + padding-bottom: 1.5rem !important; } + .py-sm-5 { + padding-top: 3rem !important; + padding-bottom: 3rem !important; } + .pt-sm-0 { + padding-top: 0 !important; } + .pt-sm-1 { + padding-top: 0.25rem !important; } + .pt-sm-2 { + padding-top: 0.5rem !important; } + .pt-sm-3 { + padding-top: 1rem !important; } + .pt-sm-4 { + padding-top: 1.5rem !important; } + .pt-sm-5 { + padding-top: 3rem !important; } + .pe-sm-0 { + padding-right: 0 !important; } + .pe-sm-1 { + padding-right: 0.25rem !important; } + .pe-sm-2 { + padding-right: 0.5rem !important; } + .pe-sm-3 { + padding-right: 1rem !important; } + .pe-sm-4 { + padding-right: 1.5rem !important; } + .pe-sm-5 { + padding-right: 3rem !important; } + .pb-sm-0 { + padding-bottom: 0 !important; } + .pb-sm-1 { + padding-bottom: 0.25rem !important; } + .pb-sm-2 { + padding-bottom: 0.5rem !important; } + .pb-sm-3 { + padding-bottom: 1rem !important; } + .pb-sm-4 { + padding-bottom: 1.5rem !important; } + .pb-sm-5 { + padding-bottom: 3rem !important; } + .ps-sm-0 { + padding-left: 0 !important; } + .ps-sm-1 { + padding-left: 0.25rem !important; } + .ps-sm-2 { + padding-left: 0.5rem !important; } + .ps-sm-3 { + padding-left: 1rem !important; } + .ps-sm-4 { + padding-left: 1.5rem !important; } + .ps-sm-5 { + padding-left: 3rem !important; } + .text-sm-start { + text-align: left !important; } + .text-sm-end { + text-align: right !important; } + .text-sm-center { + text-align: center !important; } } + +@media (min-width: 768px) { + .float-md-start { + float: left !important; } + .float-md-end { + float: right !important; } + .float-md-none { + float: none !important; } + .d-md-inline { + display: inline !important; } + .d-md-inline-block { + display: inline-block !important; } + .d-md-block { + display: block !important; } + .d-md-grid { + display: grid !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; } + .d-md-none { + display: none !important; } + .flex-md-fill { + -webkit-box-flex: 1 !important; + -ms-flex: 1 1 auto !important; + flex: 1 1 auto !important; } + .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-grow-0 { + -webkit-box-flex: 0 !important; + -ms-flex-positive: 0 !important; + flex-grow: 0 !important; } + .flex-md-grow-1 { + -webkit-box-flex: 1 !important; + -ms-flex-positive: 1 !important; + flex-grow: 1 !important; } + .flex-md-shrink-0 { + -ms-flex-negative: 0 !important; + flex-shrink: 0 !important; } + .flex-md-shrink-1 { + -ms-flex-negative: 1 !important; + flex-shrink: 1 !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; } + .gap-md-0 { + gap: 0 !important; } + .gap-md-1 { + gap: 0.25rem !important; } + .gap-md-2 { + gap: 0.5rem !important; } + .gap-md-3 { + gap: 1rem !important; } + .gap-md-4 { + gap: 1.5rem !important; } + .gap-md-5 { + gap: 3rem !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; } + .justify-content-md-evenly { + -webkit-box-pack: space-evenly !important; + -ms-flex-pack: space-evenly !important; + justify-content: space-evenly !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; } + .order-md-first { + -webkit-box-ordinal-group: 0 !important; + -ms-flex-order: -1 !important; + order: -1 !important; } + .order-md-0 { + -webkit-box-ordinal-group: 1 !important; + -ms-flex-order: 0 !important; + order: 0 !important; } + .order-md-1 { + -webkit-box-ordinal-group: 2 !important; + -ms-flex-order: 1 !important; + order: 1 !important; } + .order-md-2 { + -webkit-box-ordinal-group: 3 !important; + -ms-flex-order: 2 !important; + order: 2 !important; } + .order-md-3 { + -webkit-box-ordinal-group: 4 !important; + -ms-flex-order: 3 !important; + order: 3 !important; } + .order-md-4 { + -webkit-box-ordinal-group: 5 !important; + -ms-flex-order: 4 !important; + order: 4 !important; } + .order-md-5 { + -webkit-box-ordinal-group: 6 !important; + -ms-flex-order: 5 !important; + order: 5 !important; } + .order-md-last { + -webkit-box-ordinal-group: 7 !important; + -ms-flex-order: 6 !important; + order: 6 !important; } + .m-md-0 { + margin: 0 !important; } + .m-md-1 { + margin: 0.25rem !important; } + .m-md-2 { + margin: 0.5rem !important; } + .m-md-3 { + margin: 1rem !important; } + .m-md-4 { + margin: 1.5rem !important; } + .m-md-5 { + margin: 3rem !important; } + .m-md-auto { + margin: auto !important; } + .mx-md-0 { + margin-right: 0 !important; + margin-left: 0 !important; } + .mx-md-1 { + margin-right: 0.25rem !important; + margin-left: 0.25rem !important; } + .mx-md-2 { + margin-right: 0.5rem !important; + margin-left: 0.5rem !important; } + .mx-md-3 { + margin-right: 1rem !important; + margin-left: 1rem !important; } + .mx-md-4 { + margin-right: 1.5rem !important; + margin-left: 1.5rem !important; } + .mx-md-5 { + margin-right: 3rem !important; + margin-left: 3rem !important; } + .mx-md-auto { + margin-right: auto !important; + margin-left: auto !important; } + .my-md-0 { + margin-top: 0 !important; + margin-bottom: 0 !important; } + .my-md-1 { + margin-top: 0.25rem !important; + margin-bottom: 0.25rem !important; } + .my-md-2 { + margin-top: 0.5rem !important; + margin-bottom: 0.5rem !important; } + .my-md-3 { + margin-top: 1rem !important; + margin-bottom: 1rem !important; } + .my-md-4 { + margin-top: 1.5rem !important; + margin-bottom: 1.5rem !important; } + .my-md-5 { + margin-top: 3rem !important; + margin-bottom: 3rem !important; } + .my-md-auto { + margin-top: auto !important; + margin-bottom: auto !important; } + .mt-md-0 { + margin-top: 0 !important; } + .mt-md-1 { + margin-top: 0.25rem !important; } + .mt-md-2 { + margin-top: 0.5rem !important; } + .mt-md-3 { + margin-top: 1rem !important; } + .mt-md-4 { + margin-top: 1.5rem !important; } + .mt-md-5 { + margin-top: 3rem !important; } + .mt-md-auto { + margin-top: auto !important; } + .me-md-0 { + margin-right: 0 !important; } + .me-md-1 { + margin-right: 0.25rem !important; } + .me-md-2 { + margin-right: 0.5rem !important; } + .me-md-3 { + margin-right: 1rem !important; } + .me-md-4 { + margin-right: 1.5rem !important; } + .me-md-5 { + margin-right: 3rem !important; } + .me-md-auto { + margin-right: auto !important; } + .mb-md-0 { + margin-bottom: 0 !important; } + .mb-md-1 { + margin-bottom: 0.25rem !important; } + .mb-md-2 { + margin-bottom: 0.5rem !important; } + .mb-md-3 { + margin-bottom: 1rem !important; } + .mb-md-4 { + margin-bottom: 1.5rem !important; } + .mb-md-5 { + margin-bottom: 3rem !important; } + .mb-md-auto { + margin-bottom: auto !important; } + .ms-md-0 { + margin-left: 0 !important; } + .ms-md-1 { + margin-left: 0.25rem !important; } + .ms-md-2 { + margin-left: 0.5rem !important; } + .ms-md-3 { + margin-left: 1rem !important; } + .ms-md-4 { + margin-left: 1.5rem !important; } + .ms-md-5 { + margin-left: 3rem !important; } + .ms-md-auto { + margin-left: auto !important; } + .p-md-0 { + padding: 0 !important; } + .p-md-1 { + padding: 0.25rem !important; } + .p-md-2 { + padding: 0.5rem !important; } + .p-md-3 { + padding: 1rem !important; } + .p-md-4 { + padding: 1.5rem !important; } + .p-md-5 { + padding: 3rem !important; } + .px-md-0 { + padding-right: 0 !important; + padding-left: 0 !important; } + .px-md-1 { + padding-right: 0.25rem !important; + padding-left: 0.25rem !important; } + .px-md-2 { + padding-right: 0.5rem !important; + padding-left: 0.5rem !important; } + .px-md-3 { + padding-right: 1rem !important; + padding-left: 1rem !important; } + .px-md-4 { + padding-right: 1.5rem !important; + padding-left: 1.5rem !important; } + .px-md-5 { + padding-right: 3rem !important; + padding-left: 3rem !important; } + .py-md-0 { + padding-top: 0 !important; + padding-bottom: 0 !important; } + .py-md-1 { + padding-top: 0.25rem !important; + padding-bottom: 0.25rem !important; } + .py-md-2 { + padding-top: 0.5rem !important; + padding-bottom: 0.5rem !important; } + .py-md-3 { + padding-top: 1rem !important; + padding-bottom: 1rem !important; } + .py-md-4 { + padding-top: 1.5rem !important; + padding-bottom: 1.5rem !important; } + .py-md-5 { + padding-top: 3rem !important; + padding-bottom: 3rem !important; } + .pt-md-0 { + padding-top: 0 !important; } + .pt-md-1 { + padding-top: 0.25rem !important; } + .pt-md-2 { + padding-top: 0.5rem !important; } + .pt-md-3 { + padding-top: 1rem !important; } + .pt-md-4 { + padding-top: 1.5rem !important; } + .pt-md-5 { + padding-top: 3rem !important; } + .pe-md-0 { + padding-right: 0 !important; } + .pe-md-1 { + padding-right: 0.25rem !important; } + .pe-md-2 { + padding-right: 0.5rem !important; } + .pe-md-3 { + padding-right: 1rem !important; } + .pe-md-4 { + padding-right: 1.5rem !important; } + .pe-md-5 { + padding-right: 3rem !important; } + .pb-md-0 { + padding-bottom: 0 !important; } + .pb-md-1 { + padding-bottom: 0.25rem !important; } + .pb-md-2 { + padding-bottom: 0.5rem !important; } + .pb-md-3 { + padding-bottom: 1rem !important; } + .pb-md-4 { + padding-bottom: 1.5rem !important; } + .pb-md-5 { + padding-bottom: 3rem !important; } + .ps-md-0 { + padding-left: 0 !important; } + .ps-md-1 { + padding-left: 0.25rem !important; } + .ps-md-2 { + padding-left: 0.5rem !important; } + .ps-md-3 { + padding-left: 1rem !important; } + .ps-md-4 { + padding-left: 1.5rem !important; } + .ps-md-5 { + padding-left: 3rem !important; } + .text-md-start { + text-align: left !important; } + .text-md-end { + text-align: right !important; } + .text-md-center { + text-align: center !important; } } + +@media (min-width: 992px) { + .float-lg-start { + float: left !important; } + .float-lg-end { + float: right !important; } + .float-lg-none { + float: none !important; } + .d-lg-inline { + display: inline !important; } + .d-lg-inline-block { + display: inline-block !important; } + .d-lg-block { + display: block !important; } + .d-lg-grid { + display: grid !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; } + .d-lg-none { + display: none !important; } + .flex-lg-fill { + -webkit-box-flex: 1 !important; + -ms-flex: 1 1 auto !important; + flex: 1 1 auto !important; } + .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-grow-0 { + -webkit-box-flex: 0 !important; + -ms-flex-positive: 0 !important; + flex-grow: 0 !important; } + .flex-lg-grow-1 { + -webkit-box-flex: 1 !important; + -ms-flex-positive: 1 !important; + flex-grow: 1 !important; } + .flex-lg-shrink-0 { + -ms-flex-negative: 0 !important; + flex-shrink: 0 !important; } + .flex-lg-shrink-1 { + -ms-flex-negative: 1 !important; + flex-shrink: 1 !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; } + .gap-lg-0 { + gap: 0 !important; } + .gap-lg-1 { + gap: 0.25rem !important; } + .gap-lg-2 { + gap: 0.5rem !important; } + .gap-lg-3 { + gap: 1rem !important; } + .gap-lg-4 { + gap: 1.5rem !important; } + .gap-lg-5 { + gap: 3rem !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; } + .justify-content-lg-evenly { + -webkit-box-pack: space-evenly !important; + -ms-flex-pack: space-evenly !important; + justify-content: space-evenly !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; } + .order-lg-first { + -webkit-box-ordinal-group: 0 !important; + -ms-flex-order: -1 !important; + order: -1 !important; } + .order-lg-0 { + -webkit-box-ordinal-group: 1 !important; + -ms-flex-order: 0 !important; + order: 0 !important; } + .order-lg-1 { + -webkit-box-ordinal-group: 2 !important; + -ms-flex-order: 1 !important; + order: 1 !important; } + .order-lg-2 { + -webkit-box-ordinal-group: 3 !important; + -ms-flex-order: 2 !important; + order: 2 !important; } + .order-lg-3 { + -webkit-box-ordinal-group: 4 !important; + -ms-flex-order: 3 !important; + order: 3 !important; } + .order-lg-4 { + -webkit-box-ordinal-group: 5 !important; + -ms-flex-order: 4 !important; + order: 4 !important; } + .order-lg-5 { + -webkit-box-ordinal-group: 6 !important; + -ms-flex-order: 5 !important; + order: 5 !important; } + .order-lg-last { + -webkit-box-ordinal-group: 7 !important; + -ms-flex-order: 6 !important; + order: 6 !important; } + .m-lg-0 { + margin: 0 !important; } + .m-lg-1 { + margin: 0.25rem !important; } + .m-lg-2 { + margin: 0.5rem !important; } + .m-lg-3 { + margin: 1rem !important; } + .m-lg-4 { + margin: 1.5rem !important; } + .m-lg-5 { + margin: 3rem !important; } + .m-lg-auto { + margin: auto !important; } + .mx-lg-0 { + margin-right: 0 !important; + margin-left: 0 !important; } + .mx-lg-1 { + margin-right: 0.25rem !important; + margin-left: 0.25rem !important; } + .mx-lg-2 { + margin-right: 0.5rem !important; + margin-left: 0.5rem !important; } + .mx-lg-3 { + margin-right: 1rem !important; + margin-left: 1rem !important; } + .mx-lg-4 { + margin-right: 1.5rem !important; + margin-left: 1.5rem !important; } + .mx-lg-5 { + margin-right: 3rem !important; + margin-left: 3rem !important; } + .mx-lg-auto { + margin-right: auto !important; + margin-left: auto !important; } + .my-lg-0 { + margin-top: 0 !important; + margin-bottom: 0 !important; } + .my-lg-1 { + margin-top: 0.25rem !important; + margin-bottom: 0.25rem !important; } + .my-lg-2 { + margin-top: 0.5rem !important; + margin-bottom: 0.5rem !important; } + .my-lg-3 { + margin-top: 1rem !important; + margin-bottom: 1rem !important; } + .my-lg-4 { + margin-top: 1.5rem !important; + margin-bottom: 1.5rem !important; } + .my-lg-5 { + margin-top: 3rem !important; + margin-bottom: 3rem !important; } + .my-lg-auto { + margin-top: auto !important; + margin-bottom: auto !important; } + .mt-lg-0 { + margin-top: 0 !important; } + .mt-lg-1 { + margin-top: 0.25rem !important; } + .mt-lg-2 { + margin-top: 0.5rem !important; } + .mt-lg-3 { + margin-top: 1rem !important; } + .mt-lg-4 { + margin-top: 1.5rem !important; } + .mt-lg-5 { + margin-top: 3rem !important; } + .mt-lg-auto { + margin-top: auto !important; } + .me-lg-0 { + margin-right: 0 !important; } + .me-lg-1 { + margin-right: 0.25rem !important; } + .me-lg-2 { + margin-right: 0.5rem !important; } + .me-lg-3 { + margin-right: 1rem !important; } + .me-lg-4 { + margin-right: 1.5rem !important; } + .me-lg-5 { + margin-right: 3rem !important; } + .me-lg-auto { + margin-right: auto !important; } + .mb-lg-0 { + margin-bottom: 0 !important; } + .mb-lg-1 { + margin-bottom: 0.25rem !important; } + .mb-lg-2 { + margin-bottom: 0.5rem !important; } + .mb-lg-3 { + margin-bottom: 1rem !important; } + .mb-lg-4 { + margin-bottom: 1.5rem !important; } + .mb-lg-5 { + margin-bottom: 3rem !important; } + .mb-lg-auto { + margin-bottom: auto !important; } + .ms-lg-0 { + margin-left: 0 !important; } + .ms-lg-1 { + margin-left: 0.25rem !important; } + .ms-lg-2 { + margin-left: 0.5rem !important; } + .ms-lg-3 { + margin-left: 1rem !important; } + .ms-lg-4 { + margin-left: 1.5rem !important; } + .ms-lg-5 { + margin-left: 3rem !important; } + .ms-lg-auto { + margin-left: auto !important; } + .p-lg-0 { + padding: 0 !important; } + .p-lg-1 { + padding: 0.25rem !important; } + .p-lg-2 { + padding: 0.5rem !important; } + .p-lg-3 { + padding: 1rem !important; } + .p-lg-4 { + padding: 1.5rem !important; } + .p-lg-5 { + padding: 3rem !important; } + .px-lg-0 { + padding-right: 0 !important; + padding-left: 0 !important; } + .px-lg-1 { + padding-right: 0.25rem !important; + padding-left: 0.25rem !important; } + .px-lg-2 { + padding-right: 0.5rem !important; + padding-left: 0.5rem !important; } + .px-lg-3 { + padding-right: 1rem !important; + padding-left: 1rem !important; } + .px-lg-4 { + padding-right: 1.5rem !important; + padding-left: 1.5rem !important; } + .px-lg-5 { + padding-right: 3rem !important; + padding-left: 3rem !important; } + .py-lg-0 { + padding-top: 0 !important; + padding-bottom: 0 !important; } + .py-lg-1 { + padding-top: 0.25rem !important; + padding-bottom: 0.25rem !important; } + .py-lg-2 { + padding-top: 0.5rem !important; + padding-bottom: 0.5rem !important; } + .py-lg-3 { + padding-top: 1rem !important; + padding-bottom: 1rem !important; } + .py-lg-4 { + padding-top: 1.5rem !important; + padding-bottom: 1.5rem !important; } + .py-lg-5 { + padding-top: 3rem !important; + padding-bottom: 3rem !important; } + .pt-lg-0 { + padding-top: 0 !important; } + .pt-lg-1 { + padding-top: 0.25rem !important; } + .pt-lg-2 { + padding-top: 0.5rem !important; } + .pt-lg-3 { + padding-top: 1rem !important; } + .pt-lg-4 { + padding-top: 1.5rem !important; } + .pt-lg-5 { + padding-top: 3rem !important; } + .pe-lg-0 { + padding-right: 0 !important; } + .pe-lg-1 { + padding-right: 0.25rem !important; } + .pe-lg-2 { + padding-right: 0.5rem !important; } + .pe-lg-3 { + padding-right: 1rem !important; } + .pe-lg-4 { + padding-right: 1.5rem !important; } + .pe-lg-5 { + padding-right: 3rem !important; } + .pb-lg-0 { + padding-bottom: 0 !important; } + .pb-lg-1 { + padding-bottom: 0.25rem !important; } + .pb-lg-2 { + padding-bottom: 0.5rem !important; } + .pb-lg-3 { + padding-bottom: 1rem !important; } + .pb-lg-4 { + padding-bottom: 1.5rem !important; } + .pb-lg-5 { + padding-bottom: 3rem !important; } + .ps-lg-0 { + padding-left: 0 !important; } + .ps-lg-1 { + padding-left: 0.25rem !important; } + .ps-lg-2 { + padding-left: 0.5rem !important; } + .ps-lg-3 { + padding-left: 1rem !important; } + .ps-lg-4 { + padding-left: 1.5rem !important; } + .ps-lg-5 { + padding-left: 3rem !important; } + .text-lg-start { + text-align: left !important; } + .text-lg-end { + text-align: right !important; } + .text-lg-center { + text-align: center !important; } } + +@media (min-width: 1200px) { + .float-xl-start { + float: left !important; } + .float-xl-end { + float: right !important; } + .float-xl-none { + float: none !important; } + .d-xl-inline { + display: inline !important; } + .d-xl-inline-block { + display: inline-block !important; } + .d-xl-block { + display: block !important; } + .d-xl-grid { + display: grid !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; } + .d-xl-none { + display: none !important; } + .flex-xl-fill { + -webkit-box-flex: 1 !important; + -ms-flex: 1 1 auto !important; + flex: 1 1 auto !important; } + .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-grow-0 { + -webkit-box-flex: 0 !important; + -ms-flex-positive: 0 !important; + flex-grow: 0 !important; } + .flex-xl-grow-1 { + -webkit-box-flex: 1 !important; + -ms-flex-positive: 1 !important; + flex-grow: 1 !important; } + .flex-xl-shrink-0 { + -ms-flex-negative: 0 !important; + flex-shrink: 0 !important; } + .flex-xl-shrink-1 { + -ms-flex-negative: 1 !important; + flex-shrink: 1 !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; } + .gap-xl-0 { + gap: 0 !important; } + .gap-xl-1 { + gap: 0.25rem !important; } + .gap-xl-2 { + gap: 0.5rem !important; } + .gap-xl-3 { + gap: 1rem !important; } + .gap-xl-4 { + gap: 1.5rem !important; } + .gap-xl-5 { + gap: 3rem !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; } + .justify-content-xl-evenly { + -webkit-box-pack: space-evenly !important; + -ms-flex-pack: space-evenly !important; + justify-content: space-evenly !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; } + .order-xl-first { + -webkit-box-ordinal-group: 0 !important; + -ms-flex-order: -1 !important; + order: -1 !important; } + .order-xl-0 { + -webkit-box-ordinal-group: 1 !important; + -ms-flex-order: 0 !important; + order: 0 !important; } + .order-xl-1 { + -webkit-box-ordinal-group: 2 !important; + -ms-flex-order: 1 !important; + order: 1 !important; } + .order-xl-2 { + -webkit-box-ordinal-group: 3 !important; + -ms-flex-order: 2 !important; + order: 2 !important; } + .order-xl-3 { + -webkit-box-ordinal-group: 4 !important; + -ms-flex-order: 3 !important; + order: 3 !important; } + .order-xl-4 { + -webkit-box-ordinal-group: 5 !important; + -ms-flex-order: 4 !important; + order: 4 !important; } + .order-xl-5 { + -webkit-box-ordinal-group: 6 !important; + -ms-flex-order: 5 !important; + order: 5 !important; } + .order-xl-last { + -webkit-box-ordinal-group: 7 !important; + -ms-flex-order: 6 !important; + order: 6 !important; } + .m-xl-0 { + margin: 0 !important; } + .m-xl-1 { + margin: 0.25rem !important; } + .m-xl-2 { + margin: 0.5rem !important; } + .m-xl-3 { + margin: 1rem !important; } + .m-xl-4 { + margin: 1.5rem !important; } + .m-xl-5 { + margin: 3rem !important; } + .m-xl-auto { + margin: auto !important; } + .mx-xl-0 { + margin-right: 0 !important; + margin-left: 0 !important; } + .mx-xl-1 { + margin-right: 0.25rem !important; + margin-left: 0.25rem !important; } + .mx-xl-2 { + margin-right: 0.5rem !important; + margin-left: 0.5rem !important; } + .mx-xl-3 { + margin-right: 1rem !important; + margin-left: 1rem !important; } + .mx-xl-4 { + margin-right: 1.5rem !important; + margin-left: 1.5rem !important; } + .mx-xl-5 { + margin-right: 3rem !important; + margin-left: 3rem !important; } + .mx-xl-auto { + margin-right: auto !important; + margin-left: auto !important; } + .my-xl-0 { + margin-top: 0 !important; + margin-bottom: 0 !important; } + .my-xl-1 { + margin-top: 0.25rem !important; + margin-bottom: 0.25rem !important; } + .my-xl-2 { + margin-top: 0.5rem !important; + margin-bottom: 0.5rem !important; } + .my-xl-3 { + margin-top: 1rem !important; + margin-bottom: 1rem !important; } + .my-xl-4 { + margin-top: 1.5rem !important; + margin-bottom: 1.5rem !important; } + .my-xl-5 { + margin-top: 3rem !important; + margin-bottom: 3rem !important; } + .my-xl-auto { + margin-top: auto !important; + margin-bottom: auto !important; } + .mt-xl-0 { + margin-top: 0 !important; } + .mt-xl-1 { + margin-top: 0.25rem !important; } + .mt-xl-2 { + margin-top: 0.5rem !important; } + .mt-xl-3 { + margin-top: 1rem !important; } + .mt-xl-4 { + margin-top: 1.5rem !important; } + .mt-xl-5 { + margin-top: 3rem !important; } + .mt-xl-auto { + margin-top: auto !important; } + .me-xl-0 { + margin-right: 0 !important; } + .me-xl-1 { + margin-right: 0.25rem !important; } + .me-xl-2 { + margin-right: 0.5rem !important; } + .me-xl-3 { + margin-right: 1rem !important; } + .me-xl-4 { + margin-right: 1.5rem !important; } + .me-xl-5 { + margin-right: 3rem !important; } + .me-xl-auto { + margin-right: auto !important; } + .mb-xl-0 { + margin-bottom: 0 !important; } + .mb-xl-1 { + margin-bottom: 0.25rem !important; } + .mb-xl-2 { + margin-bottom: 0.5rem !important; } + .mb-xl-3 { + margin-bottom: 1rem !important; } + .mb-xl-4 { + margin-bottom: 1.5rem !important; } + .mb-xl-5 { + margin-bottom: 3rem !important; } + .mb-xl-auto { + margin-bottom: auto !important; } + .ms-xl-0 { + margin-left: 0 !important; } + .ms-xl-1 { + margin-left: 0.25rem !important; } + .ms-xl-2 { + margin-left: 0.5rem !important; } + .ms-xl-3 { + margin-left: 1rem !important; } + .ms-xl-4 { + margin-left: 1.5rem !important; } + .ms-xl-5 { + margin-left: 3rem !important; } + .ms-xl-auto { + margin-left: auto !important; } + .p-xl-0 { + padding: 0 !important; } + .p-xl-1 { + padding: 0.25rem !important; } + .p-xl-2 { + padding: 0.5rem !important; } + .p-xl-3 { + padding: 1rem !important; } + .p-xl-4 { + padding: 1.5rem !important; } + .p-xl-5 { + padding: 3rem !important; } + .px-xl-0 { + padding-right: 0 !important; + padding-left: 0 !important; } + .px-xl-1 { + padding-right: 0.25rem !important; + padding-left: 0.25rem !important; } + .px-xl-2 { + padding-right: 0.5rem !important; + padding-left: 0.5rem !important; } + .px-xl-3 { + padding-right: 1rem !important; + padding-left: 1rem !important; } + .px-xl-4 { + padding-right: 1.5rem !important; + padding-left: 1.5rem !important; } + .px-xl-5 { + padding-right: 3rem !important; + padding-left: 3rem !important; } + .py-xl-0 { + padding-top: 0 !important; + padding-bottom: 0 !important; } + .py-xl-1 { + padding-top: 0.25rem !important; + padding-bottom: 0.25rem !important; } + .py-xl-2 { + padding-top: 0.5rem !important; + padding-bottom: 0.5rem !important; } + .py-xl-3 { + padding-top: 1rem !important; + padding-bottom: 1rem !important; } + .py-xl-4 { + padding-top: 1.5rem !important; + padding-bottom: 1.5rem !important; } + .py-xl-5 { + padding-top: 3rem !important; + padding-bottom: 3rem !important; } + .pt-xl-0 { + padding-top: 0 !important; } + .pt-xl-1 { + padding-top: 0.25rem !important; } + .pt-xl-2 { + padding-top: 0.5rem !important; } + .pt-xl-3 { + padding-top: 1rem !important; } + .pt-xl-4 { + padding-top: 1.5rem !important; } + .pt-xl-5 { + padding-top: 3rem !important; } + .pe-xl-0 { + padding-right: 0 !important; } + .pe-xl-1 { + padding-right: 0.25rem !important; } + .pe-xl-2 { + padding-right: 0.5rem !important; } + .pe-xl-3 { + padding-right: 1rem !important; } + .pe-xl-4 { + padding-right: 1.5rem !important; } + .pe-xl-5 { + padding-right: 3rem !important; } + .pb-xl-0 { + padding-bottom: 0 !important; } + .pb-xl-1 { + padding-bottom: 0.25rem !important; } + .pb-xl-2 { + padding-bottom: 0.5rem !important; } + .pb-xl-3 { + padding-bottom: 1rem !important; } + .pb-xl-4 { + padding-bottom: 1.5rem !important; } + .pb-xl-5 { + padding-bottom: 3rem !important; } + .ps-xl-0 { + padding-left: 0 !important; } + .ps-xl-1 { + padding-left: 0.25rem !important; } + .ps-xl-2 { + padding-left: 0.5rem !important; } + .ps-xl-3 { + padding-left: 1rem !important; } + .ps-xl-4 { + padding-left: 1.5rem !important; } + .ps-xl-5 { + padding-left: 3rem !important; } + .text-xl-start { + text-align: left !important; } + .text-xl-end { + text-align: right !important; } + .text-xl-center { + text-align: center !important; } } + +@media (min-width: 1400px) { + .float-xxl-start { + float: left !important; } + .float-xxl-end { + float: right !important; } + .float-xxl-none { + float: none !important; } + .d-xxl-inline { + display: inline !important; } + .d-xxl-inline-block { + display: inline-block !important; } + .d-xxl-block { + display: block !important; } + .d-xxl-grid { + display: grid !important; } + .d-xxl-table { + display: table !important; } + .d-xxl-table-row { + display: table-row !important; } + .d-xxl-table-cell { + display: table-cell !important; } + .d-xxl-flex { + display: -webkit-box !important; + display: -ms-flexbox !important; + display: flex !important; } + .d-xxl-inline-flex { + display: -webkit-inline-box !important; + display: -ms-inline-flexbox !important; + display: inline-flex !important; } + .d-xxl-none { + display: none !important; } + .flex-xxl-fill { + -webkit-box-flex: 1 !important; + -ms-flex: 1 1 auto !important; + flex: 1 1 auto !important; } + .flex-xxl-row { + -webkit-box-orient: horizontal !important; + -webkit-box-direction: normal !important; + -ms-flex-direction: row !important; + flex-direction: row !important; } + .flex-xxl-column { + -webkit-box-orient: vertical !important; + -webkit-box-direction: normal !important; + -ms-flex-direction: column !important; + flex-direction: column !important; } + .flex-xxl-row-reverse { + -webkit-box-orient: horizontal !important; + -webkit-box-direction: reverse !important; + -ms-flex-direction: row-reverse !important; + flex-direction: row-reverse !important; } + .flex-xxl-column-reverse { + -webkit-box-orient: vertical !important; + -webkit-box-direction: reverse !important; + -ms-flex-direction: column-reverse !important; + flex-direction: column-reverse !important; } + .flex-xxl-grow-0 { + -webkit-box-flex: 0 !important; + -ms-flex-positive: 0 !important; + flex-grow: 0 !important; } + .flex-xxl-grow-1 { + -webkit-box-flex: 1 !important; + -ms-flex-positive: 1 !important; + flex-grow: 1 !important; } + .flex-xxl-shrink-0 { + -ms-flex-negative: 0 !important; + flex-shrink: 0 !important; } + .flex-xxl-shrink-1 { + -ms-flex-negative: 1 !important; + flex-shrink: 1 !important; } + .flex-xxl-wrap { + -ms-flex-wrap: wrap !important; + flex-wrap: wrap !important; } + .flex-xxl-nowrap { + -ms-flex-wrap: nowrap !important; + flex-wrap: nowrap !important; } + .flex-xxl-wrap-reverse { + -ms-flex-wrap: wrap-reverse !important; + flex-wrap: wrap-reverse !important; } + .gap-xxl-0 { + gap: 0 !important; } + .gap-xxl-1 { + gap: 0.25rem !important; } + .gap-xxl-2 { + gap: 0.5rem !important; } + .gap-xxl-3 { + gap: 1rem !important; } + .gap-xxl-4 { + gap: 1.5rem !important; } + .gap-xxl-5 { + gap: 3rem !important; } + .justify-content-xxl-start { + -webkit-box-pack: start !important; + -ms-flex-pack: start !important; + justify-content: flex-start !important; } + .justify-content-xxl-end { + -webkit-box-pack: end !important; + -ms-flex-pack: end !important; + justify-content: flex-end !important; } + .justify-content-xxl-center { + -webkit-box-pack: center !important; + -ms-flex-pack: center !important; + justify-content: center !important; } + .justify-content-xxl-between { + -webkit-box-pack: justify !important; + -ms-flex-pack: justify !important; + justify-content: space-between !important; } + .justify-content-xxl-around { + -ms-flex-pack: distribute !important; + justify-content: space-around !important; } + .justify-content-xxl-evenly { + -webkit-box-pack: space-evenly !important; + -ms-flex-pack: space-evenly !important; + justify-content: space-evenly !important; } + .align-items-xxl-start { + -webkit-box-align: start !important; + -ms-flex-align: start !important; + align-items: flex-start !important; } + .align-items-xxl-end { + -webkit-box-align: end !important; + -ms-flex-align: end !important; + align-items: flex-end !important; } + .align-items-xxl-center { + -webkit-box-align: center !important; + -ms-flex-align: center !important; + align-items: center !important; } + .align-items-xxl-baseline { + -webkit-box-align: baseline !important; + -ms-flex-align: baseline !important; + align-items: baseline !important; } + .align-items-xxl-stretch { + -webkit-box-align: stretch !important; + -ms-flex-align: stretch !important; + align-items: stretch !important; } + .align-content-xxl-start { + -ms-flex-line-pack: start !important; + align-content: flex-start !important; } + .align-content-xxl-end { + -ms-flex-line-pack: end !important; + align-content: flex-end !important; } + .align-content-xxl-center { + -ms-flex-line-pack: center !important; + align-content: center !important; } + .align-content-xxl-between { + -ms-flex-line-pack: justify !important; + align-content: space-between !important; } + .align-content-xxl-around { + -ms-flex-line-pack: distribute !important; + align-content: space-around !important; } + .align-content-xxl-stretch { + -ms-flex-line-pack: stretch !important; + align-content: stretch !important; } + .align-self-xxl-auto { + -ms-flex-item-align: auto !important; + align-self: auto !important; } + .align-self-xxl-start { + -ms-flex-item-align: start !important; + align-self: flex-start !important; } + .align-self-xxl-end { + -ms-flex-item-align: end !important; + align-self: flex-end !important; } + .align-self-xxl-center { + -ms-flex-item-align: center !important; + align-self: center !important; } + .align-self-xxl-baseline { + -ms-flex-item-align: baseline !important; + align-self: baseline !important; } + .align-self-xxl-stretch { + -ms-flex-item-align: stretch !important; + align-self: stretch !important; } + .order-xxl-first { + -webkit-box-ordinal-group: 0 !important; + -ms-flex-order: -1 !important; + order: -1 !important; } + .order-xxl-0 { + -webkit-box-ordinal-group: 1 !important; + -ms-flex-order: 0 !important; + order: 0 !important; } + .order-xxl-1 { + -webkit-box-ordinal-group: 2 !important; + -ms-flex-order: 1 !important; + order: 1 !important; } + .order-xxl-2 { + -webkit-box-ordinal-group: 3 !important; + -ms-flex-order: 2 !important; + order: 2 !important; } + .order-xxl-3 { + -webkit-box-ordinal-group: 4 !important; + -ms-flex-order: 3 !important; + order: 3 !important; } + .order-xxl-4 { + -webkit-box-ordinal-group: 5 !important; + -ms-flex-order: 4 !important; + order: 4 !important; } + .order-xxl-5 { + -webkit-box-ordinal-group: 6 !important; + -ms-flex-order: 5 !important; + order: 5 !important; } + .order-xxl-last { + -webkit-box-ordinal-group: 7 !important; + -ms-flex-order: 6 !important; + order: 6 !important; } + .m-xxl-0 { + margin: 0 !important; } + .m-xxl-1 { + margin: 0.25rem !important; } + .m-xxl-2 { + margin: 0.5rem !important; } + .m-xxl-3 { + margin: 1rem !important; } + .m-xxl-4 { + margin: 1.5rem !important; } + .m-xxl-5 { + margin: 3rem !important; } + .m-xxl-auto { + margin: auto !important; } + .mx-xxl-0 { + margin-right: 0 !important; + margin-left: 0 !important; } + .mx-xxl-1 { + margin-right: 0.25rem !important; + margin-left: 0.25rem !important; } + .mx-xxl-2 { + margin-right: 0.5rem !important; + margin-left: 0.5rem !important; } + .mx-xxl-3 { + margin-right: 1rem !important; + margin-left: 1rem !important; } + .mx-xxl-4 { + margin-right: 1.5rem !important; + margin-left: 1.5rem !important; } + .mx-xxl-5 { + margin-right: 3rem !important; + margin-left: 3rem !important; } + .mx-xxl-auto { + margin-right: auto !important; + margin-left: auto !important; } + .my-xxl-0 { + margin-top: 0 !important; + margin-bottom: 0 !important; } + .my-xxl-1 { + margin-top: 0.25rem !important; + margin-bottom: 0.25rem !important; } + .my-xxl-2 { + margin-top: 0.5rem !important; + margin-bottom: 0.5rem !important; } + .my-xxl-3 { + margin-top: 1rem !important; + margin-bottom: 1rem !important; } + .my-xxl-4 { + margin-top: 1.5rem !important; + margin-bottom: 1.5rem !important; } + .my-xxl-5 { + margin-top: 3rem !important; + margin-bottom: 3rem !important; } + .my-xxl-auto { + margin-top: auto !important; + margin-bottom: auto !important; } + .mt-xxl-0 { + margin-top: 0 !important; } + .mt-xxl-1 { + margin-top: 0.25rem !important; } + .mt-xxl-2 { + margin-top: 0.5rem !important; } + .mt-xxl-3 { + margin-top: 1rem !important; } + .mt-xxl-4 { + margin-top: 1.5rem !important; } + .mt-xxl-5 { + margin-top: 3rem !important; } + .mt-xxl-auto { + margin-top: auto !important; } + .me-xxl-0 { + margin-right: 0 !important; } + .me-xxl-1 { + margin-right: 0.25rem !important; } + .me-xxl-2 { + margin-right: 0.5rem !important; } + .me-xxl-3 { + margin-right: 1rem !important; } + .me-xxl-4 { + margin-right: 1.5rem !important; } + .me-xxl-5 { + margin-right: 3rem !important; } + .me-xxl-auto { + margin-right: auto !important; } + .mb-xxl-0 { + margin-bottom: 0 !important; } + .mb-xxl-1 { + margin-bottom: 0.25rem !important; } + .mb-xxl-2 { + margin-bottom: 0.5rem !important; } + .mb-xxl-3 { + margin-bottom: 1rem !important; } + .mb-xxl-4 { + margin-bottom: 1.5rem !important; } + .mb-xxl-5 { + margin-bottom: 3rem !important; } + .mb-xxl-auto { + margin-bottom: auto !important; } + .ms-xxl-0 { + margin-left: 0 !important; } + .ms-xxl-1 { + margin-left: 0.25rem !important; } + .ms-xxl-2 { + margin-left: 0.5rem !important; } + .ms-xxl-3 { + margin-left: 1rem !important; } + .ms-xxl-4 { + margin-left: 1.5rem !important; } + .ms-xxl-5 { + margin-left: 3rem !important; } + .ms-xxl-auto { + margin-left: auto !important; } + .p-xxl-0 { + padding: 0 !important; } + .p-xxl-1 { + padding: 0.25rem !important; } + .p-xxl-2 { + padding: 0.5rem !important; } + .p-xxl-3 { + padding: 1rem !important; } + .p-xxl-4 { + padding: 1.5rem !important; } + .p-xxl-5 { + padding: 3rem !important; } + .px-xxl-0 { + padding-right: 0 !important; + padding-left: 0 !important; } + .px-xxl-1 { + padding-right: 0.25rem !important; + padding-left: 0.25rem !important; } + .px-xxl-2 { + padding-right: 0.5rem !important; + padding-left: 0.5rem !important; } + .px-xxl-3 { + padding-right: 1rem !important; + padding-left: 1rem !important; } + .px-xxl-4 { + padding-right: 1.5rem !important; + padding-left: 1.5rem !important; } + .px-xxl-5 { + padding-right: 3rem !important; + padding-left: 3rem !important; } + .py-xxl-0 { + padding-top: 0 !important; + padding-bottom: 0 !important; } + .py-xxl-1 { + padding-top: 0.25rem !important; + padding-bottom: 0.25rem !important; } + .py-xxl-2 { + padding-top: 0.5rem !important; + padding-bottom: 0.5rem !important; } + .py-xxl-3 { + padding-top: 1rem !important; + padding-bottom: 1rem !important; } + .py-xxl-4 { + padding-top: 1.5rem !important; + padding-bottom: 1.5rem !important; } + .py-xxl-5 { + padding-top: 3rem !important; + padding-bottom: 3rem !important; } + .pt-xxl-0 { + padding-top: 0 !important; } + .pt-xxl-1 { + padding-top: 0.25rem !important; } + .pt-xxl-2 { + padding-top: 0.5rem !important; } + .pt-xxl-3 { + padding-top: 1rem !important; } + .pt-xxl-4 { + padding-top: 1.5rem !important; } + .pt-xxl-5 { + padding-top: 3rem !important; } + .pe-xxl-0 { + padding-right: 0 !important; } + .pe-xxl-1 { + padding-right: 0.25rem !important; } + .pe-xxl-2 { + padding-right: 0.5rem !important; } + .pe-xxl-3 { + padding-right: 1rem !important; } + .pe-xxl-4 { + padding-right: 1.5rem !important; } + .pe-xxl-5 { + padding-right: 3rem !important; } + .pb-xxl-0 { + padding-bottom: 0 !important; } + .pb-xxl-1 { + padding-bottom: 0.25rem !important; } + .pb-xxl-2 { + padding-bottom: 0.5rem !important; } + .pb-xxl-3 { + padding-bottom: 1rem !important; } + .pb-xxl-4 { + padding-bottom: 1.5rem !important; } + .pb-xxl-5 { + padding-bottom: 3rem !important; } + .ps-xxl-0 { + padding-left: 0 !important; } + .ps-xxl-1 { + padding-left: 0.25rem !important; } + .ps-xxl-2 { + padding-left: 0.5rem !important; } + .ps-xxl-3 { + padding-left: 1rem !important; } + .ps-xxl-4 { + padding-left: 1.5rem !important; } + .ps-xxl-5 { + padding-left: 3rem !important; } + .text-xxl-start { + text-align: left !important; } + .text-xxl-end { + text-align: right !important; } + .text-xxl-center { + text-align: center !important; } } + +@media (min-width: 1200px) { + .fs-1 { + font-size: 2.5rem !important; } + .fs-2 { + font-size: 2rem !important; } + .fs-3 { + font-size: 1.75rem !important; } + .fs-4 { + font-size: 1.5rem !important; } + .fs-sm-1 { + font-size: 2.5rem !important; } + .fs-sm-2 { + font-size: 2rem !important; } + .fs-sm-3 { + font-size: 1.75rem !important; } + .fs-sm-4 { + font-size: 1.5rem !important; } + .fs-md-1 { + font-size: 2.5rem !important; } + .fs-md-2 { + font-size: 2rem !important; } + .fs-md-3 { + font-size: 1.75rem !important; } + .fs-md-4 { + font-size: 1.5rem !important; } + .fs-lg-1 { + font-size: 2.5rem !important; } + .fs-lg-2 { + font-size: 2rem !important; } + .fs-lg-3 { + font-size: 1.75rem !important; } + .fs-lg-4 { + font-size: 1.5rem !important; } } + +@media print { + .d-print-inline { + display: inline !important; } + .d-print-inline-block { + display: inline-block !important; } + .d-print-block { + display: block !important; } + .d-print-grid { + display: grid !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; } + .d-print-none { + display: none !important; } } diff --git a/public/admin/assets/css/button-builder.css b/public/admin/assets/css/button-builder.css new file mode 100644 index 0000000..eeba3a6 --- /dev/null +++ b/public/admin/assets/css/button-builder.css @@ -0,0 +1,446 @@ +/**===================== + 65. Button Builder color picker CSS Start +==========================**/ +.button-builder .colorpicker { + width: 325px; + height: 176px; + overflow: hidden; + position: absolute; + display: none; + z-index: 8; + background: #2c323f; + border: 1px solid #e6edef; } + .button-builder .colorpicker input { + background-color: transparent; + border: 1px solid transparent; + position: absolute; + font-size: 10px; + color: #e6edef; + top: 4px; + right: 11px; + text-align: right; + margin: 0; + padding: 0; + height: 11px; } + +.button-builder .colorpicker-color { + width: 150px; + height: 150px; + left: 14px; + top: 13px; + position: absolute; + background: #d22d3d; + overflow: hidden; + cursor: crosshair; } + .button-builder .colorpicker-color div { + position: absolute; + top: 0; + left: 0; + width: 150px; + height: 150px; + background: url(../images/button_builder/colorpicker_overlay.png); } + .button-builder .colorpicker-color div div { + position: absolute; + top: 0; + left: 0; + width: 11px; + height: 11px; + overflow: hidden; + background: url(../images/button_builder/colorpicker_select.gif); + margin: -5px 0 0 -5px; } + +.button-builder .colorpicker-hue { + position: absolute; + top: 13px; + left: 171px; + width: 35px; + height: 150px; + cursor: n-resize; } + .button-builder .colorpicker-hue div { + position: absolute; + width: 35px; + height: 9px; + overflow: hidden; + margin: -4px 0 0; + left: 0; } + +.button-builder .colorpicker-new-color { + position: absolute; + width: 60px; + height: 30px; + left: 213px; + top: 13px; + background: #d22d3d; } + +.button-builder .colorpicker-current-color { + position: absolute; + width: 60px; + height: 30px; + left: 283px; + top: 13px; + background: #d22d3d; } + +.button-builder .colorpicker-hex { + position: absolute; + width: 72px; + height: 22px; + left: 212px; + top: 142px; } + .button-builder .colorpicker-hex input { + right: 6px; } + .button-builder .colorpicker-hex.colorpicker-focus { + background-position: bottom; } + +.button-builder .colorpicker-field { + height: 22px; + width: 62px; + background-position: top; + position: absolute; } + .button-builder .colorpicker-field span { + position: absolute; + width: 12px; + height: 22px; + overflow: hidden; + top: 0; + right: 0; + cursor: n-resize; } + +.button-builder .colorpicker-rgb-r { + top: 52px; + left: 212px; } + +.button-builder .colorpicker-rgb-g { + top: 82px; + left: 212px; } + +.button-builder .colorpicker-rgb-b { + top: 112px; + left: 212px; } + +.button-builder .colorpicker_hsb_h { + top: 52px; + left: 282px; } + +.button-builder .colorpicker_hsb_s { + top: 82px; + left: 282px; } + +.button-builder .colorpicker-hsb-b { + top: 112px; + left: 282px; } + +.button-builder .colorpicker-submit { + position: absolute; + width: 22px; + height: 22px; + left: 322px; + top: 142px; + overflow: hidden; } + .button-builder .colorpicker-submit.colorpicker-focus { + background-position: bottom; } + +.button-builder .colorpicker-focus { + background-position: center; } + +.button-builder .colorpicker-slider { + background-position: bottom; } + +/**===================== + 65. Button Builder colorpicker CSS start +==========================**/ +/**===================== + 64. Button Builder CSS start Here +==========================**/ +.button-builder .colorpicker-submit:visited { + background-color: #2c323f; + background-image: none; + color: #fff; + text-decoration: none; } + +.button-builder .button-generator-bx { + position: fixed; + width: 340px; + max-height: 500px; + height: 100%; + overflow-y: auto; + overflow-x: hidden; } + +.button-builder .grp-btns input { + display: none !important; } + +.button-builder .custom-button-color { + display: none; } + .button-builder .custom-button-color .form-control { + width: 100px; + border-radius: 5px 0 0 5px; } + +.button-builder .color-slelector { + float: left; + height: 39px; + position: relative; + width: 39px; } + .button-builder .color-slelector div { + height: 33px; + left: 0; + position: absolute; + top: 0; + width: 33px; + -webkit-transform: scale(1.4); + transform: scale(1.4); + z-index: 1; + background: url(../images/button_builder/select.png) repeat scroll 0 0 rgba(0, 0, 0, 0); } + +.button-builder .custom-radio { + width: 16px; + height: 16px; + display: inline-block; + position: relative; + z-index: 1; + top: 3px; + border: 1px solid #24695c; + border-radius: 100%; } + .button-builder .custom-radio:hover { + background-position: 0 -16px; } + .button-builder .custom-radio.selected { + background-color: #24695c; } + .button-builder .custom-radio input[type="radio"] { + margin: 1px; + position: absolute; + z-index: 2; + cursor: pointer; + outline: none; + opacity: 0; + filter: alpha(opacity=0); } + +.button-builder .custom-checkbox { + width: 16px; + height: 16px; + display: inline-block; + position: relative; + z-index: 1; + top: 3px; + background: url(../images/button_builder/checkbox-sprite.png) no-repeat 0 0 transparent; } + .button-builder .custom-checkbox:hover { + background-position: 0 -16px; } + .button-builder .custom-checkbox.selected { + background-position: 0 -32px; } + .button-builder .custom-checkbox input[type="checkbox"] { + margin: 0; + position: absolute; + z-index: 2; + cursor: pointer; + outline: none; + opacity: 0; + filter: alpha(opacity=0); } + +.button-builder .colorpicker-hex { + background: url(../images/button_builder/hex_bg.gif) no-repeat scroll right center rgba(0, 0, 0, 0); + left: 220px; + padding-left: 15px; + position: absolute; + top: 98px; + width: 75px; + height: 25px; + -webkit-box-sizing: content-box; + box-sizing: content-box; } + .button-builder .colorpicker-hex input { + background: transparent; + border: medium none; + color: #2b2b2b; + display: block; + -webkit-box-shadow: none; + box-shadow: none; + font-size: 13px; + height: 17px; + outline: medium none; + padding: 5px; + top: 0; + right: 1px; + text-align: left; + text-transform: uppercase; + width: 65px; + -webkit-box-sizing: content-box; + box-sizing: content-box; } + +.button-builder .colorpicker-hue { + background: url(../images/button_builder/rainbow.png) no-repeat scroll center center rgba(0, 0, 0, 0); + cursor: default; + height: 150px; + left: 171px; + position: absolute; + top: 13px; + width: 35px; } + .button-builder .colorpicker-hue div { + background: url(../images/button_builder/scroll.png) no-repeat scroll left top rgba(0, 0, 0, 0); + height: 16px; + left: 0; + margin-top: -8px; + overflow: hidden; + position: absolute; + width: 35px; } + +.button-builder .colorpicker-new-color { + height: 75px; + left: 235px; + position: absolute; + top: 12px; + width: 73px; + border: 1px solid #e6edef; } + +.button-builder .colorpicker-field { + display: none; } + +.button-builder .colorpicker-current-color { + display: none; } + +.button-builder .colorpicker-submit { + cursor: pointer; + display: block; + height: 25px; + left: 235px; + position: absolute; + top: 133px; + width: 75px; + background-color: #24695c; + border-radius: 5px; } + .button-builder .colorpicker-submit:before { + content: "Ok"; + position: absolute; + width: 100%; + text-align: center; + padding: 3px 10px; + color: #fff; } + .button-builder .colorpicker-submit:hover { + background-color: #17433b; } + +.button-builder .box { + background-color: #f5f7fb; + margin-bottom: 20px; + padding: 30px; + text-align: center; + border: 1px solid #efefef; + border-radius: 5px; } + +.button-builder .button-preview { + min-height: 145px; } + .button-builder .button-preview h2 { + color: #2c323f; + font-size: 18px; + font-weight: normal; + margin: 0; + font-weight: 600; } + .button-builder .button-preview.affix { + top: 58px; + position: fixed; + width: 395px; + z-index: 999; } + +.button-builder #result { + padding-top: 30px; } + +.button-builder .well .language-markup { + word-wrap: break-word; + white-space: normal; } + +.button-builder .well .language-css { + word-wrap: break-word; + white-space: pre-wrap; } + +.button-builder pre.well { + margin: 0; + padding: 0; + overflow: unset; } + +.button-builder .copy { + margin-top: 30px; + position: relative; } + .button-builder .copy .zclip { + left: 0 !important; + right: 0 !important; + margin: 0 auto !important; } + .button-builder .copy a { + background-color: #24695c; + color: #fff; + font-weight: bold; + display: inline-block; + padding: 0.375rem 1.75rem; + border-radius: 5px; } + +.button-builder .sucess-msg { + height: 30px; + line-height: 30px; + display: none; + font-size: 14px; + width: 100%; + text-align: center; + margin-bottom: -30px; } + +.button-builder .code-wrapper { + position: relative; + width: 100%; + margin: 0; } + +.button-builder .column-left { + float: left; + width: 655px; } + +.button-builder .column-right { + float: right; + width: 395px; + position: relative; + padding-top: 175px; } + +.button-builder code { + font-size: 11.5px !important; } + +.button-builder .hint-label { + float: left; + padding: 4px 0 0 020px; + font-style: italic; } + +.button-builder .button-style { + margin-top: 1px !important; } + +.button-builder .ad-box { + height: 90px; + overflow: hidden; + margin: 0 0 20px; } + +.button-builder ul.the-icons { + margin: 0 0 0 -8px; + padding-left: 0; + font-size: 13px; } + .button-builder ul.the-icons li { + float: left; + line-height: 15px; + cursor: pointer; + text-align: center; + list-style: none outside none; + padding: 5px; + border: 1px dotted #e6edef; + color: #898989; + width: 40px; + -webkit-transition: all 0.2s ease-in-out 0s; + transition: all 0.2s ease-in-out 0s; + margin: 2px; } + .button-builder ul.the-icons li em { + display: none; } + .button-builder ul.the-icons li:hover { + background: #fff; + -webkit-box-shadow: 0 0 3px #e6edef; + box-shadow: 0 0 3px #e6edef; } + .button-builder ul.the-icons li:hover.active { + background: #fff; + -webkit-box-shadow: 0 0 3px #e6edef; + box-shadow: 0 0 3px #e6edef; } + +.button-builder-wrap .form-group { + margin-bottom: 15px; } + .button-builder-wrap .form-group .btn { + margin-right: 15px; + margin-bottom: 15px; + min-width: 100px; } + +/*============================== + 64. Button Builder CSS End + ===========================*/ diff --git a/public/admin/assets/css/calendar.css b/public/admin/assets/css/calendar.css new file mode 100644 index 0000000..a3dfae0 --- /dev/null +++ b/public/admin/assets/css/calendar.css @@ -0,0 +1,2242 @@ +/*! + * TOAST UI Time Picker + * @version 2.1.3 + * @author NHN FE Development Lab + * @license MIT + */ +@import "https://fonts.googleapis.com/css?family=Noto+Sans"; +.tui-timepicker { + position: relative; + top: -1px; + padding: 30px 20px; + font-weight: bold; + border: 1px solid #aaa; + background: white; + text-align: center; } + .tui-timepicker * { + -webkit-box-sizing: border-box; + box-sizing: border-box; } + .tui-timepicker button { + border-radius: 0; } + .tui-timepicker input { + font-weight: normal; + font-size: 16px; + text-align: center; + font-weight: normal; } + .tui-timepicker select { + font-weight: normal; } + .tui-timepicker .tui-timepicker-select { + -webkit-appearance: none; + -moz-appearance: none; + -o-appearance: none; + appearance: none; + border-radius: 0; } + .tui-timepicker .tui-timepicker-select::-ms-expand { + display: none; } + +.tui-ico-t-btn { + overflow: hidden; + display: inline-block; + width: 1px; + height: 1px; + line-height: 300px; + background: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAC8AAAA+CAYAAAC7rUKSAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAA2ZpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuMy1jMDExIDY2LjE0NTY2MSwgMjAxMi8wMi8wNi0xNDo1NjoyNyAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wTU09Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9tbS8iIHhtbG5zOnN0UmVmPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvc1R5cGUvUmVzb3VyY2VSZWYjIiB4bWxuczp4bXA9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC8iIHhtcE1NOk9yaWdpbmFsRG9jdW1lbnRJRD0ieG1wLmRpZDpERjdGMzkzODVEQkRFNjExQkVCMjlDOUFDNzZDM0E5NCIgeG1wTU06RG9jdW1lbnRJRD0ieG1wLmRpZDo1ODVCRTc4NkM2QkQxMUU2OTgzMzhGQjZFMjcyMTQ1RSIgeG1wTU06SW5zdGFuY2VJRD0ieG1wLmlpZDo1ODVCRTc4NUM2QkQxMUU2OTgzMzhGQjZFMjcyMTQ1RSIgeG1wOkNyZWF0b3JUb29sPSJBZG9iZSBQaG90b3Nob3AgQ1M2IChXaW5kb3dzKSI+IDx4bXBNTTpEZXJpdmVkRnJvbSBzdFJlZjppbnN0YW5jZUlEPSJ4bXAuaWlkOjFERENDMTc0QjlDNkU2MTE5OTc0QjIwOTY3QkQzNjZBIiBzdFJlZjpkb2N1bWVudElEPSJ4bXAuZGlkOkRGN0YzOTM4NURCREU2MTFCRUIyOUM5QUM3NkMzQTk0Ii8+IDwvcmRmOkRlc2NyaXB0aW9uPiA8L3JkZjpSREY+IDwveDp4bXBtZXRhPiA8P3hwYWNrZXQgZW5kPSJyIj8+ClaYfwAACcFJREFUeNrEWgtwVOUVPnt37+4mmyUhkSQLGEigQ4uRQiEITe0U0Djio61ArNqpQguWdtrKtNqKM9W2Y6sOHaWdUaEvmVZtQaYjg8ZHU6zFApX4GAGdiYaHQmISks1r2Ueyt+fcPXdz9+69d/+72dQz883e+z92v/+/5z//95+7rsWLF4PB1jBu5vtvIn6IWIXoNDbetGkTfSjgzFxm/RRFgXA4DNFoFOLxuFrm9XrB5/PB1KlTweVyZXyJx4T4nxDNurI/IhYhXuUBnIFJsOHhYejp6YHy8nIoLS1VSZPRIBKJBJw8eRIqKyuhpKTElPwNTPxGxAv6CUF8D/Eg4l88gI5CEh8aGoKRkRGora3NqvN4UhRpQJ2dnerTCQaDapmkI76LibeYfD8N4C7En/kJzDNzBUFkEY9EIlBdXZ1zkKFQSB0kPSWN/GYm3mxBXG8/5QEcRMye6Iwnk0no7e2Fqqoq4T40yO7ubvUJEPnLERcQ5wT6Xoz4KmIP4nSOtopuQSpmi5oWJy1Ep0bror+/XyVPUeVeRCuiwaZPLfv8c4jv5hFhsiwWi6UXphOjPtRXW7CPISKIFxHXs1vojXz8ZXaZe0TDocV12iiS5Eue+kq6sl3s//sRV+jK5yNeQewQIB7mJ1Kqu7Z0m4maMc7/jf3/NsQ/NBdD/Arxm0L/uDaDWjgUNe2JmfXax9DsoIkbWVmZxbWp29DOSUSKi4sdk6e+Ur6zdvToURUm0SUX0kaRpq+vz/FvUx/qa0V+A+JNxHQHi9MJUp1Qq9CW39XVJUycdlnqQ30lC+K0m/6Vw+d0mARbsmSJ+klaJRAICA2A2lB7Td94LIiv5E2rF/FP3X2W7dy5My9Vqb8hrUIz2dHRARUVFSDLcoYwI5Cr2AkzI3GyP/Cn7QAKYdqM0s45MDCQIYn9fr8q2qwksRlx+D8MICsKOZELHiZ+Zw5iIgNwCf5mwTYrD2ubVQIzqg2AjkD3FeLHr32s0zh4Ogx9R3JBY1mxW3X6cGQsnlTgNbx8FLFXP3iPQQqA4ACczLDLcG0qFBFPz50mN61ZGICGWX7wy6mm0YTiff10dMXet0ZWvN+ToCd/E6JbJV9XVwefsFUgXkPS825dNgUkw/BoEJfPLYLGOUWw6/DgShwEHYYaEecl1jAhwR/awPLZycYFVqcoth3XXRqYt355JvGhWFKFZlRHbagtq2DVbZ7WLcTOHMTv4vXh1FWs3GZZZdC9Zv3yYLrgRFccdhwchA96Eur9nGky3P6FKTC/OhX3N2DbI6ei67qHxpZJ7MfbeADTBYifLaDL3HZtfQC87tSYiPDWZ/vSxM3KZGz7lQUBulwv6RbiNgs54IS4latYuc0VS2f70jdPHBmC0WR2JKWyXVin2aKL1T5f8phEklZd6HRCPJ/4XVM9ZZzCic64ZcPjurqqoFs9T3ssQmEr53A25NpVOeOWMattbW2i5MeSSUXWViq5RGzUfA5kt8u4HUqSRSwnF7plsvUMWvvp/tFxpVnjs1ahuroPU33aJZvN6LMOiNudUbUzbdZhhvJEh09G02XfuCwIZUXZlKiM6jTjPi2efPImeeyyYT4WDhjqf7//WGQLRg856JcAwyY8svYi+MvrQ/D2R3G188KZXvh6QxAuKnGn4n80CfveiVDo+Z3e5ymQfpu333ouO8b7wOMkrZ2oQ5MnETa227851I76Zvu21vCP7l1drro+kbxjRZl5hg2/8detYRiJJbfr3WYG4gjrnK2844b4+kqum5HHjIuU/6TtTOy5nz/fB4PRpOUXUh21OYptqY+2w3o5V/MM4n5DnwOMezhTdhkluvLR6XYRB/FlJPXAxqd6frD6kmJ52Ww/VE1JucnHg2Nw+FQUnj8eSfCM3819VPK3Iz4yIa63+5k4yeHf5pAF+RiRuRPJPb7njeFvIZrwfibXEbeXaH3Qhmum57eakDESeRjxSwvyZpFEyNDv9bcf8MzeLXoY+Rz9nkiqBlJvSCbqJpOW7rNzBbpPGNMXJu+00mkNp08GxZfyzrk4dA2Ogk9OxZJYIgkkIS6d7iWF6TKSf4N+jxem3Uw2cOiEHFJgJa+jG3OUpQ1PS8pL70YgitJg0UwfXFNfnJYDiTEFTp0fhbYPY4ADU66aXwxFciqNIHEc3yLwlLZwWztbyefMJ3KUZRB/5s1hNb6vW1QCn6qUM3QMXVMZ1dEmthfbUh+NPKWua3Kkr6luFre1slUcbikAtNiUZbjmgfYLUFMuw+fr/KBPy9BTiOpEGtVRG2r7SvsFta+H4/Y1HOuXIh5B/Jf7LOUZp8GttonxRHIPi7kWm7LM9B3GcDwRwS0NReO5SPT3V9+PQs+QGsphGs72F+f6IcTSubHOh/JhWO2r7bBnOY7Taeoh2hsYD7E8Xmqj5682IXl1LuJk730chwW4ED0siYnw39+KpImblbmx7cIZXni3K/PNCGmX7bwwSxgNXBYXSZsLlmVI29kVcvr+P6gWk4piomkUOKRTn+Q6Z8Oj4KHc4ASthWeYZrqZsxFmZVlGCrFUJ4E7B8Ysf+Scri7od8FwLJkx86Rxvo84RN/LOMRlXoEB0KLcrUtimZVlGHmLfqbdNq86jHUKjL8BL4SqfEFH9kqbsrSVFrmhb2RcSc4qt94z9XX9kaTaVzKoyut5sxpm0PV1XEeq0ic4gM05ytKEOs6Pb9rLa/1QLGfvj1RGdZp19CbUvpIDVXmGVWUuCUBkbxAog/khLxxHOYCbDvuyBM2LS+Az1TIEfRKUIOiayqiONzU4hn0uCXknR1WKGp5NXZ+u9iovvxcBSj7RRkSEV80zfztIy4PaYh+1r1QAVUkRpUmgzFSUNdb51Rce+4+NpJ+AhYxQ21Bb6gO6BSuSEchSldohmjVPU44y6zx9fcBVHnDDk3jwpnhOp6cIkiXQNZVRHbWhtgVTlZD6v8LNTPYmPvWYldkazWZ9yKtQopW0yzBniMmNanBxrkVhhntCliTWVOWBCahKxwNobm52fKjZvXt35j5RQFX5IpPUu4tZWcFM0qnKtYhnESsQAQZd0/8Q1uVQlca14hcoE8lA0KAP2pGfqKrUjGb2KXaVfTZlokZu+jW7lKPHRFVuz+MJNpn4dpOTBWuwBbynnOUsnjl5emWeTypDt8NOhPhaJkd/PNX+s0bu9STLllsRfXZuI/T3EhvbaEJyo+CMz+ETF/13TXst+QDnSh9ml7VNfbgsiIrmYtYJlpkZ/dGU0tQ/RvwbUv+oIgn+tolksVywZZ9gEomSpvdB6l0Y6aYoL/CckU1bsAM8gLAocScpPQH7GR9+foG4A3FCpNP/BBgAdZ3B2yZg0vUAAAAASUVORK5CYII=) no-repeat; } + +.tui-timepicker-input-radio { + overflow: hidden; + display: inline-block; + width: 1px; + height: 1px; + line-height: 300px; + background: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAC8AAAA+CAYAAAC7rUKSAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAA2ZpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuMy1jMDExIDY2LjE0NTY2MSwgMjAxMi8wMi8wNi0xNDo1NjoyNyAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wTU09Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9tbS8iIHhtbG5zOnN0UmVmPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvc1R5cGUvUmVzb3VyY2VSZWYjIiB4bWxuczp4bXA9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC8iIHhtcE1NOk9yaWdpbmFsRG9jdW1lbnRJRD0ieG1wLmRpZDpERjdGMzkzODVEQkRFNjExQkVCMjlDOUFDNzZDM0E5NCIgeG1wTU06RG9jdW1lbnRJRD0ieG1wLmRpZDo1ODVCRTc4NkM2QkQxMUU2OTgzMzhGQjZFMjcyMTQ1RSIgeG1wTU06SW5zdGFuY2VJRD0ieG1wLmlpZDo1ODVCRTc4NUM2QkQxMUU2OTgzMzhGQjZFMjcyMTQ1RSIgeG1wOkNyZWF0b3JUb29sPSJBZG9iZSBQaG90b3Nob3AgQ1M2IChXaW5kb3dzKSI+IDx4bXBNTTpEZXJpdmVkRnJvbSBzdFJlZjppbnN0YW5jZUlEPSJ4bXAuaWlkOjFERENDMTc0QjlDNkU2MTE5OTc0QjIwOTY3QkQzNjZBIiBzdFJlZjpkb2N1bWVudElEPSJ4bXAuZGlkOkRGN0YzOTM4NURCREU2MTFCRUIyOUM5QUM3NkMzQTk0Ii8+IDwvcmRmOkRlc2NyaXB0aW9uPiA8L3JkZjpSREY+IDwveDp4bXBtZXRhPiA8P3hwYWNrZXQgZW5kPSJyIj8+ClaYfwAACcFJREFUeNrEWgtwVOUVPnt37+4mmyUhkSQLGEigQ4uRQiEITe0U0Djio61ArNqpQguWdtrKtNqKM9W2Y6sOHaWdUaEvmVZtQaYjg8ZHU6zFApX4GAGdiYaHQmISks1r2Ueyt+fcPXdz9+69d/+72dQz883e+z92v/+/5z//95+7rsWLF4PB1jBu5vtvIn6IWIXoNDbetGkTfSjgzFxm/RRFgXA4DNFoFOLxuFrm9XrB5/PB1KlTweVyZXyJx4T4nxDNurI/IhYhXuUBnIFJsOHhYejp6YHy8nIoLS1VSZPRIBKJBJw8eRIqKyuhpKTElPwNTPxGxAv6CUF8D/Eg4l88gI5CEh8aGoKRkRGora3NqvN4UhRpQJ2dnerTCQaDapmkI76LibeYfD8N4C7En/kJzDNzBUFkEY9EIlBdXZ1zkKFQSB0kPSWN/GYm3mxBXG8/5QEcRMye6Iwnk0no7e2Fqqoq4T40yO7ubvUJEPnLERcQ5wT6Xoz4KmIP4nSOtopuQSpmi5oWJy1Ep0bror+/XyVPUeVeRCuiwaZPLfv8c4jv5hFhsiwWi6UXphOjPtRXW7CPISKIFxHXs1vojXz8ZXaZe0TDocV12iiS5Eue+kq6sl3s//sRV+jK5yNeQewQIB7mJ1Kqu7Z0m4maMc7/jf3/NsQ/NBdD/Arxm0L/uDaDWjgUNe2JmfXax9DsoIkbWVmZxbWp29DOSUSKi4sdk6e+Ur6zdvToURUm0SUX0kaRpq+vz/FvUx/qa0V+A+JNxHQHi9MJUp1Qq9CW39XVJUycdlnqQ30lC+K0m/6Vw+d0mARbsmSJ+klaJRAICA2A2lB7Td94LIiv5E2rF/FP3X2W7dy5My9Vqb8hrUIz2dHRARUVFSDLcoYwI5Cr2AkzI3GyP/Cn7QAKYdqM0s45MDCQIYn9fr8q2qwksRlx+D8MICsKOZELHiZ+Zw5iIgNwCf5mwTYrD2ubVQIzqg2AjkD3FeLHr32s0zh4Ogx9R3JBY1mxW3X6cGQsnlTgNbx8FLFXP3iPQQqA4ACczLDLcG0qFBFPz50mN61ZGICGWX7wy6mm0YTiff10dMXet0ZWvN+ToCd/E6JbJV9XVwefsFUgXkPS825dNgUkw/BoEJfPLYLGOUWw6/DgShwEHYYaEecl1jAhwR/awPLZycYFVqcoth3XXRqYt355JvGhWFKFZlRHbagtq2DVbZ7WLcTOHMTv4vXh1FWs3GZZZdC9Zv3yYLrgRFccdhwchA96Eur9nGky3P6FKTC/OhX3N2DbI6ei67qHxpZJ7MfbeADTBYifLaDL3HZtfQC87tSYiPDWZ/vSxM3KZGz7lQUBulwv6RbiNgs54IS4latYuc0VS2f70jdPHBmC0WR2JKWyXVin2aKL1T5f8phEklZd6HRCPJ/4XVM9ZZzCic64ZcPjurqqoFs9T3ssQmEr53A25NpVOeOWMattbW2i5MeSSUXWViq5RGzUfA5kt8u4HUqSRSwnF7plsvUMWvvp/tFxpVnjs1ahuroPU33aJZvN6LMOiNudUbUzbdZhhvJEh09G02XfuCwIZUXZlKiM6jTjPi2efPImeeyyYT4WDhjqf7//WGQLRg856JcAwyY8svYi+MvrQ/D2R3G188KZXvh6QxAuKnGn4n80CfveiVDo+Z3e5ymQfpu333ouO8b7wOMkrZ2oQ5MnETa227851I76Zvu21vCP7l1drro+kbxjRZl5hg2/8detYRiJJbfr3WYG4gjrnK2844b4+kqum5HHjIuU/6TtTOy5nz/fB4PRpOUXUh21OYptqY+2w3o5V/MM4n5DnwOMezhTdhkluvLR6XYRB/FlJPXAxqd6frD6kmJ52Ww/VE1JucnHg2Nw+FQUnj8eSfCM3819VPK3Iz4yIa63+5k4yeHf5pAF+RiRuRPJPb7njeFvIZrwfibXEbeXaH3Qhmum57eakDESeRjxSwvyZpFEyNDv9bcf8MzeLXoY+Rz9nkiqBlJvSCbqJpOW7rNzBbpPGNMXJu+00mkNp08GxZfyzrk4dA2Ogk9OxZJYIgkkIS6d7iWF6TKSf4N+jxem3Uw2cOiEHFJgJa+jG3OUpQ1PS8pL70YgitJg0UwfXFNfnJYDiTEFTp0fhbYPY4ADU66aXwxFciqNIHEc3yLwlLZwWztbyefMJ3KUZRB/5s1hNb6vW1QCn6qUM3QMXVMZ1dEmthfbUh+NPKWua3Kkr6luFre1slUcbikAtNiUZbjmgfYLUFMuw+fr/KBPy9BTiOpEGtVRG2r7SvsFta+H4/Y1HOuXIh5B/Jf7LOUZp8GttonxRHIPi7kWm7LM9B3GcDwRwS0NReO5SPT3V9+PQs+QGsphGs72F+f6IcTSubHOh/JhWO2r7bBnOY7Taeoh2hsYD7E8Xmqj5682IXl1LuJk730chwW4ED0siYnw39+KpImblbmx7cIZXni3K/PNCGmX7bwwSxgNXBYXSZsLlmVI29kVcvr+P6gWk4piomkUOKRTn+Q6Z8Oj4KHc4ASthWeYZrqZsxFmZVlGCrFUJ4E7B8Ysf+Scri7od8FwLJkx86Rxvo84RN/LOMRlXoEB0KLcrUtimZVlGHmLfqbdNq86jHUKjL8BL4SqfEFH9kqbsrSVFrmhb2RcSc4qt94z9XX9kaTaVzKoyut5sxpm0PV1XEeq0ic4gM05ytKEOs6Pb9rLa/1QLGfvj1RGdZp19CbUvpIDVXmGVWUuCUBkbxAog/khLxxHOYCbDvuyBM2LS+Az1TIEfRKUIOiayqiONzU4hn0uCXknR1WKGp5NXZ+u9iovvxcBSj7RRkSEV80zfztIy4PaYh+1r1QAVUkRpUmgzFSUNdb51Rce+4+NpJ+AhYxQ21Bb6gO6BSuSEchSldohmjVPU44y6zx9fcBVHnDDk3jwpnhOp6cIkiXQNZVRHbWhtgVTlZD6v8LNTPYmPvWYldkazWZ9yKtQopW0yzBniMmNanBxrkVhhntCliTWVOWBCahKxwNobm52fKjZvXt35j5RQFX5IpPUu4tZWcFM0qnKtYhnESsQAQZd0/8Q1uVQlca14hcoE8lA0KAP2pGfqKrUjGb2KXaVfTZlokZu+jW7lKPHRFVuz+MJNpn4dpOTBWuwBbynnOUsnjl5emWeTypDt8NOhPhaJkd/PNX+s0bu9STLllsRfXZuI/T3EhvbaEJyo+CMz+ETF/13TXst+QDnSh9ml7VNfbgsiIrmYtYJlpkZ/dGU0tQ/RvwbUv+oIgn+tolksVywZZ9gEomSpvdB6l0Y6aYoL/CckU1bsAM8gLAocScpPQH7GR9+foG4A3FCpNP/BBgAdZ3B2yZg0vUAAAAASUVORK5CYII=) no-repeat; + position: absolute; + display: block; + top: 0; + left: 0; + width: 16px; + height: 16px; + vertical-align: middle; + background-position: -31px 0; } + +.tui-ico-colon { + overflow: hidden; + display: inline-block; + width: 1px; + height: 1px; + line-height: 300px; + background: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAC8AAAA+CAYAAAC7rUKSAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAA2ZpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuMy1jMDExIDY2LjE0NTY2MSwgMjAxMi8wMi8wNi0xNDo1NjoyNyAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wTU09Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9tbS8iIHhtbG5zOnN0UmVmPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvc1R5cGUvUmVzb3VyY2VSZWYjIiB4bWxuczp4bXA9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC8iIHhtcE1NOk9yaWdpbmFsRG9jdW1lbnRJRD0ieG1wLmRpZDpERjdGMzkzODVEQkRFNjExQkVCMjlDOUFDNzZDM0E5NCIgeG1wTU06RG9jdW1lbnRJRD0ieG1wLmRpZDo1ODVCRTc4NkM2QkQxMUU2OTgzMzhGQjZFMjcyMTQ1RSIgeG1wTU06SW5zdGFuY2VJRD0ieG1wLmlpZDo1ODVCRTc4NUM2QkQxMUU2OTgzMzhGQjZFMjcyMTQ1RSIgeG1wOkNyZWF0b3JUb29sPSJBZG9iZSBQaG90b3Nob3AgQ1M2IChXaW5kb3dzKSI+IDx4bXBNTTpEZXJpdmVkRnJvbSBzdFJlZjppbnN0YW5jZUlEPSJ4bXAuaWlkOjFERENDMTc0QjlDNkU2MTE5OTc0QjIwOTY3QkQzNjZBIiBzdFJlZjpkb2N1bWVudElEPSJ4bXAuZGlkOkRGN0YzOTM4NURCREU2MTFCRUIyOUM5QUM3NkMzQTk0Ii8+IDwvcmRmOkRlc2NyaXB0aW9uPiA8L3JkZjpSREY+IDwveDp4bXBtZXRhPiA8P3hwYWNrZXQgZW5kPSJyIj8+ClaYfwAACcFJREFUeNrEWgtwVOUVPnt37+4mmyUhkSQLGEigQ4uRQiEITe0U0Djio61ArNqpQguWdtrKtNqKM9W2Y6sOHaWdUaEvmVZtQaYjg8ZHU6zFApX4GAGdiYaHQmISks1r2Ueyt+fcPXdz9+69d/+72dQz883e+z92v/+/5z//95+7rsWLF4PB1jBu5vtvIn6IWIXoNDbetGkTfSjgzFxm/RRFgXA4DNFoFOLxuFrm9XrB5/PB1KlTweVyZXyJx4T4nxDNurI/IhYhXuUBnIFJsOHhYejp6YHy8nIoLS1VSZPRIBKJBJw8eRIqKyuhpKTElPwNTPxGxAv6CUF8D/Eg4l88gI5CEh8aGoKRkRGora3NqvN4UhRpQJ2dnerTCQaDapmkI76LibeYfD8N4C7En/kJzDNzBUFkEY9EIlBdXZ1zkKFQSB0kPSWN/GYm3mxBXG8/5QEcRMye6Iwnk0no7e2Fqqoq4T40yO7ubvUJEPnLERcQ5wT6Xoz4KmIP4nSOtopuQSpmi5oWJy1Ep0bror+/XyVPUeVeRCuiwaZPLfv8c4jv5hFhsiwWi6UXphOjPtRXW7CPISKIFxHXs1vojXz8ZXaZe0TDocV12iiS5Eue+kq6sl3s//sRV+jK5yNeQewQIB7mJ1Kqu7Z0m4maMc7/jf3/NsQ/NBdD/Arxm0L/uDaDWjgUNe2JmfXax9DsoIkbWVmZxbWp29DOSUSKi4sdk6e+Ur6zdvToURUm0SUX0kaRpq+vz/FvUx/qa0V+A+JNxHQHi9MJUp1Qq9CW39XVJUycdlnqQ30lC+K0m/6Vw+d0mARbsmSJ+klaJRAICA2A2lB7Td94LIiv5E2rF/FP3X2W7dy5My9Vqb8hrUIz2dHRARUVFSDLcoYwI5Cr2AkzI3GyP/Cn7QAKYdqM0s45MDCQIYn9fr8q2qwksRlx+D8MICsKOZELHiZ+Zw5iIgNwCf5mwTYrD2ubVQIzqg2AjkD3FeLHr32s0zh4Ogx9R3JBY1mxW3X6cGQsnlTgNbx8FLFXP3iPQQqA4ACczLDLcG0qFBFPz50mN61ZGICGWX7wy6mm0YTiff10dMXet0ZWvN+ToCd/E6JbJV9XVwefsFUgXkPS825dNgUkw/BoEJfPLYLGOUWw6/DgShwEHYYaEecl1jAhwR/awPLZycYFVqcoth3XXRqYt355JvGhWFKFZlRHbagtq2DVbZ7WLcTOHMTv4vXh1FWs3GZZZdC9Zv3yYLrgRFccdhwchA96Eur9nGky3P6FKTC/OhX3N2DbI6ei67qHxpZJ7MfbeADTBYifLaDL3HZtfQC87tSYiPDWZ/vSxM3KZGz7lQUBulwv6RbiNgs54IS4latYuc0VS2f70jdPHBmC0WR2JKWyXVin2aKL1T5f8phEklZd6HRCPJ/4XVM9ZZzCic64ZcPjurqqoFs9T3ssQmEr53A25NpVOeOWMattbW2i5MeSSUXWViq5RGzUfA5kt8u4HUqSRSwnF7plsvUMWvvp/tFxpVnjs1ahuroPU33aJZvN6LMOiNudUbUzbdZhhvJEh09G02XfuCwIZUXZlKiM6jTjPi2efPImeeyyYT4WDhjqf7//WGQLRg856JcAwyY8svYi+MvrQ/D2R3G188KZXvh6QxAuKnGn4n80CfveiVDo+Z3e5ymQfpu333ouO8b7wOMkrZ2oQ5MnETa227851I76Zvu21vCP7l1drro+kbxjRZl5hg2/8detYRiJJbfr3WYG4gjrnK2844b4+kqum5HHjIuU/6TtTOy5nz/fB4PRpOUXUh21OYptqY+2w3o5V/MM4n5DnwOMezhTdhkluvLR6XYRB/FlJPXAxqd6frD6kmJ52Ww/VE1JucnHg2Nw+FQUnj8eSfCM3819VPK3Iz4yIa63+5k4yeHf5pAF+RiRuRPJPb7njeFvIZrwfibXEbeXaH3Qhmum57eakDESeRjxSwvyZpFEyNDv9bcf8MzeLXoY+Rz9nkiqBlJvSCbqJpOW7rNzBbpPGNMXJu+00mkNp08GxZfyzrk4dA2Ogk9OxZJYIgkkIS6d7iWF6TKSf4N+jxem3Uw2cOiEHFJgJa+jG3OUpQ1PS8pL70YgitJg0UwfXFNfnJYDiTEFTp0fhbYPY4ADU66aXwxFciqNIHEc3yLwlLZwWztbyefMJ3KUZRB/5s1hNb6vW1QCn6qUM3QMXVMZ1dEmthfbUh+NPKWua3Kkr6luFre1slUcbikAtNiUZbjmgfYLUFMuw+fr/KBPy9BTiOpEGtVRG2r7SvsFta+H4/Y1HOuXIh5B/Jf7LOUZp8GttonxRHIPi7kWm7LM9B3GcDwRwS0NReO5SPT3V9+PQs+QGsphGs72F+f6IcTSubHOh/JhWO2r7bBnOY7Taeoh2hsYD7E8Xmqj5682IXl1LuJk730chwW4ED0siYnw39+KpImblbmx7cIZXni3K/PNCGmX7bwwSxgNXBYXSZsLlmVI29kVcvr+P6gWk4piomkUOKRTn+Q6Z8Oj4KHc4ASthWeYZrqZsxFmZVlGCrFUJ4E7B8Ysf+Scri7od8FwLJkx86Rxvo84RN/LOMRlXoEB0KLcrUtimZVlGHmLfqbdNq86jHUKjL8BL4SqfEFH9kqbsrSVFrmhb2RcSc4qt94z9XX9kaTaVzKoyut5sxpm0PV1XEeq0ic4gM05ytKEOs6Pb9rLa/1QLGfvj1RGdZp19CbUvpIDVXmGVWUuCUBkbxAog/khLxxHOYCbDvuyBM2LS+Az1TIEfRKUIOiayqiONzU4hn0uCXknR1WKGp5NXZ+u9iovvxcBSj7RRkSEV80zfztIy4PaYh+1r1QAVUkRpUmgzFSUNdb51Rce+4+NpJ+AhYxQ21Bb6gO6BSuSEchSldohmjVPU44y6zx9fcBVHnDDk3jwpnhOp6cIkiXQNZVRHbWhtgVTlZD6v8LNTPYmPvWYldkazWZ9yKtQopW0yzBniMmNanBxrkVhhntCliTWVOWBCahKxwNobm52fKjZvXt35j5RQFX5IpPUu4tZWcFM0qnKtYhnESsQAQZd0/8Q1uVQlca14hcoE8lA0KAP2pGfqKrUjGb2KXaVfTZlokZu+jW7lKPHRFVuz+MJNpn4dpOTBWuwBbynnOUsnjl5emWeTypDt8NOhPhaJkd/PNX+s0bu9STLllsRfXZuI/T3EhvbaEJyo+CMz+ETF/13TXst+QDnSh9ml7VNfbgsiIrmYtYJlpkZ/dGU0tQ/RvwbUv+oIgn+tolksVywZZ9gEomSpvdB6l0Y6aYoL/CckU1bsAM8gLAocScpPQH7GR9+foG4A3FCpNP/BBgAdZ3B2yZg0vUAAAAASUVORK5CYII=) no-repeat; + width: 2px; + height: 7px; + background-position: -17px -28px; } + +.tui-ico-time { + overflow: hidden; + display: inline-block; + width: 1px; + height: 1px; + line-height: 300px; + background: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAC8AAAA+CAYAAAC7rUKSAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAA2ZpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuMy1jMDExIDY2LjE0NTY2MSwgMjAxMi8wMi8wNi0xNDo1NjoyNyAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wTU09Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9tbS8iIHhtbG5zOnN0UmVmPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvc1R5cGUvUmVzb3VyY2VSZWYjIiB4bWxuczp4bXA9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC8iIHhtcE1NOk9yaWdpbmFsRG9jdW1lbnRJRD0ieG1wLmRpZDpERjdGMzkzODVEQkRFNjExQkVCMjlDOUFDNzZDM0E5NCIgeG1wTU06RG9jdW1lbnRJRD0ieG1wLmRpZDo1ODVCRTc4NkM2QkQxMUU2OTgzMzhGQjZFMjcyMTQ1RSIgeG1wTU06SW5zdGFuY2VJRD0ieG1wLmlpZDo1ODVCRTc4NUM2QkQxMUU2OTgzMzhGQjZFMjcyMTQ1RSIgeG1wOkNyZWF0b3JUb29sPSJBZG9iZSBQaG90b3Nob3AgQ1M2IChXaW5kb3dzKSI+IDx4bXBNTTpEZXJpdmVkRnJvbSBzdFJlZjppbnN0YW5jZUlEPSJ4bXAuaWlkOjFERENDMTc0QjlDNkU2MTE5OTc0QjIwOTY3QkQzNjZBIiBzdFJlZjpkb2N1bWVudElEPSJ4bXAuZGlkOkRGN0YzOTM4NURCREU2MTFCRUIyOUM5QUM3NkMzQTk0Ii8+IDwvcmRmOkRlc2NyaXB0aW9uPiA8L3JkZjpSREY+IDwveDp4bXBtZXRhPiA8P3hwYWNrZXQgZW5kPSJyIj8+ClaYfwAACcFJREFUeNrEWgtwVOUVPnt37+4mmyUhkSQLGEigQ4uRQiEITe0U0Djio61ArNqpQguWdtrKtNqKM9W2Y6sOHaWdUaEvmVZtQaYjg8ZHU6zFApX4GAGdiYaHQmISks1r2Ueyt+fcPXdz9+69d/+72dQz883e+z92v/+/5z//95+7rsWLF4PB1jBu5vtvIn6IWIXoNDbetGkTfSjgzFxm/RRFgXA4DNFoFOLxuFrm9XrB5/PB1KlTweVyZXyJx4T4nxDNurI/IhYhXuUBnIFJsOHhYejp6YHy8nIoLS1VSZPRIBKJBJw8eRIqKyuhpKTElPwNTPxGxAv6CUF8D/Eg4l88gI5CEh8aGoKRkRGora3NqvN4UhRpQJ2dnerTCQaDapmkI76LibeYfD8N4C7En/kJzDNzBUFkEY9EIlBdXZ1zkKFQSB0kPSWN/GYm3mxBXG8/5QEcRMye6Iwnk0no7e2Fqqoq4T40yO7ubvUJEPnLERcQ5wT6Xoz4KmIP4nSOtopuQSpmi5oWJy1Ep0bror+/XyVPUeVeRCuiwaZPLfv8c4jv5hFhsiwWi6UXphOjPtRXW7CPISKIFxHXs1vojXz8ZXaZe0TDocV12iiS5Eue+kq6sl3s//sRV+jK5yNeQewQIB7mJ1Kqu7Z0m4maMc7/jf3/NsQ/NBdD/Arxm0L/uDaDWjgUNe2JmfXax9DsoIkbWVmZxbWp29DOSUSKi4sdk6e+Ur6zdvToURUm0SUX0kaRpq+vz/FvUx/qa0V+A+JNxHQHi9MJUp1Qq9CW39XVJUycdlnqQ30lC+K0m/6Vw+d0mARbsmSJ+klaJRAICA2A2lB7Td94LIiv5E2rF/FP3X2W7dy5My9Vqb8hrUIz2dHRARUVFSDLcoYwI5Cr2AkzI3GyP/Cn7QAKYdqM0s45MDCQIYn9fr8q2qwksRlx+D8MICsKOZELHiZ+Zw5iIgNwCf5mwTYrD2ubVQIzqg2AjkD3FeLHr32s0zh4Ogx9R3JBY1mxW3X6cGQsnlTgNbx8FLFXP3iPQQqA4ACczLDLcG0qFBFPz50mN61ZGICGWX7wy6mm0YTiff10dMXet0ZWvN+ToCd/E6JbJV9XVwefsFUgXkPS825dNgUkw/BoEJfPLYLGOUWw6/DgShwEHYYaEecl1jAhwR/awPLZycYFVqcoth3XXRqYt355JvGhWFKFZlRHbagtq2DVbZ7WLcTOHMTv4vXh1FWs3GZZZdC9Zv3yYLrgRFccdhwchA96Eur9nGky3P6FKTC/OhX3N2DbI6ei67qHxpZJ7MfbeADTBYifLaDL3HZtfQC87tSYiPDWZ/vSxM3KZGz7lQUBulwv6RbiNgs54IS4latYuc0VS2f70jdPHBmC0WR2JKWyXVin2aKL1T5f8phEklZd6HRCPJ/4XVM9ZZzCic64ZcPjurqqoFs9T3ssQmEr53A25NpVOeOWMattbW2i5MeSSUXWViq5RGzUfA5kt8u4HUqSRSwnF7plsvUMWvvp/tFxpVnjs1ahuroPU33aJZvN6LMOiNudUbUzbdZhhvJEh09G02XfuCwIZUXZlKiM6jTjPi2efPImeeyyYT4WDhjqf7//WGQLRg856JcAwyY8svYi+MvrQ/D2R3G188KZXvh6QxAuKnGn4n80CfveiVDo+Z3e5ymQfpu333ouO8b7wOMkrZ2oQ5MnETa227851I76Zvu21vCP7l1drro+kbxjRZl5hg2/8detYRiJJbfr3WYG4gjrnK2844b4+kqum5HHjIuU/6TtTOy5nz/fB4PRpOUXUh21OYptqY+2w3o5V/MM4n5DnwOMezhTdhkluvLR6XYRB/FlJPXAxqd6frD6kmJ52Ww/VE1JucnHg2Nw+FQUnj8eSfCM3819VPK3Iz4yIa63+5k4yeHf5pAF+RiRuRPJPb7njeFvIZrwfibXEbeXaH3Qhmum57eakDESeRjxSwvyZpFEyNDv9bcf8MzeLXoY+Rz9nkiqBlJvSCbqJpOW7rNzBbpPGNMXJu+00mkNp08GxZfyzrk4dA2Ogk9OxZJYIgkkIS6d7iWF6TKSf4N+jxem3Uw2cOiEHFJgJa+jG3OUpQ1PS8pL70YgitJg0UwfXFNfnJYDiTEFTp0fhbYPY4ADU66aXwxFciqNIHEc3yLwlLZwWztbyefMJ3KUZRB/5s1hNb6vW1QCn6qUM3QMXVMZ1dEmthfbUh+NPKWua3Kkr6luFre1slUcbikAtNiUZbjmgfYLUFMuw+fr/KBPy9BTiOpEGtVRG2r7SvsFta+H4/Y1HOuXIh5B/Jf7LOUZp8GttonxRHIPi7kWm7LM9B3GcDwRwS0NReO5SPT3V9+PQs+QGsphGs72F+f6IcTSubHOh/JhWO2r7bBnOY7Taeoh2hsYD7E8Xmqj5682IXl1LuJk730chwW4ED0siYnw39+KpImblbmx7cIZXni3K/PNCGmX7bwwSxgNXBYXSZsLlmVI29kVcvr+P6gWk4piomkUOKRTn+Q6Z8Oj4KHc4ASthWeYZrqZsxFmZVlGCrFUJ4E7B8Ysf+Scri7od8FwLJkx86Rxvo84RN/LOMRlXoEB0KLcrUtimZVlGHmLfqbdNq86jHUKjL8BL4SqfEFH9kqbsrSVFrmhb2RcSc4qt94z9XX9kaTaVzKoyut5sxpm0PV1XEeq0ic4gM05ytKEOs6Pb9rLa/1QLGfvj1RGdZp19CbUvpIDVXmGVWUuCUBkbxAog/khLxxHOYCbDvuyBM2LS+Az1TIEfRKUIOiayqiONzU4hn0uCXknR1WKGp5NXZ+u9iovvxcBSj7RRkSEV80zfztIy4PaYh+1r1QAVUkRpUmgzFSUNdb51Rce+4+NpJ+AhYxQ21Bb6gO6BSuSEchSldohmjVPU44y6zx9fcBVHnDDk3jwpnhOp6cIkiXQNZVRHbWhtgVTlZD6v8LNTPYmPvWYldkazWZ9yKtQopW0yzBniMmNanBxrkVhhntCliTWVOWBCahKxwNobm52fKjZvXt35j5RQFX5IpPUu4tZWcFM0qnKtYhnESsQAQZd0/8Q1uVQlca14hcoE8lA0KAP2pGfqKrUjGb2KXaVfTZlokZu+jW7lKPHRFVuz+MJNpn4dpOTBWuwBbynnOUsnjl5emWeTypDt8NOhPhaJkd/PNX+s0bu9STLllsRfXZuI/T3EhvbaEJyo+CMz+ETF/13TXst+QDnSh9ml7VNfbgsiIrmYtYJlpkZ/dGU0tQ/RvwbUv+oIgn+tolksVywZZ9gEomSpvdB6l0Y6aYoL/CckU1bsAM8gLAocScpPQH7GR9+foG4A3FCpNP/BBgAdZ3B2yZg0vUAAAAASUVORK5CYII=) no-repeat; + width: 12px; + height: 12px; + background-position: 0 -30px; } + +.tui-calendar-select-content .tui-timepicker { + border: 0; + margin: 0 auto; } + +.tui-timepicker-row { + width: 100%; + font-size: 0; } + +.tui-timepicker-column { + display: inline-block; + vertical-align: middle; } + +.tui-timepicker-btn-area { + position: relative; + height: 88px; + padding: 19px 0; } + .tui-timepicker-btn-area .tui-timepicker-spinbox-input { + width: 100%; + height: 100%; + line-height: 46px; + border: 1px solid #ddd; } + +.tui-timepicker-spinbox { + width: 52px; } + +.tui-timepicker-selectbox + .tui-timepicker-selectbox { + padding-left: 5px; } + +.tui-timepicker-btn { + position: absolute; + left: 0; + width: 100%; + height: 20px; + background-color: transparent; + border: 1px solid #ddd; + cursor: pointer; } + .tui-timepicker-btn:hover { + background-color: #f4f4f4; } + .tui-timepicker-btn:focus { + background-color: #f4f4f4; } + .tui-timepicker-btn:active { + background-color: #f4f4f4; } + .tui-timepicker-btn .tui-ico-t-btn { + width: 13px; + height: 7px; } + +.tui-timepicker-btn-up { + top: 0; } + .tui-timepicker-btn-up .tui-ico-t-btn { + background-position: 0 -12px; } + +.tui-timepicker-btn-down { + bottom: 0; } + .tui-timepicker-btn-down .tui-ico-t-btn { + background-position: 0 -21px; } + +.tui-timepicker-colon { + width: 22px; } + +.tui-timepicker-body .tui-timepicker-colon { + width: 18px; } + +.tui-timepicker-footer .tui-timepicker-colon { + width: 18px; } + +.tui-timepicker-select { + width: 52px; + height: 28px; + padding: 5px 0 5px 9px; + font-size: 12px; + border: 1px solid #ddd; + background: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAECAYAAACHtL/sAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyJpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuMy1jMDExIDY2LjE0NTY2MSwgMjAxMi8wMi8wNi0xNDo1NjoyNyAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENTNiAoV2luZG93cykiIHhtcE1NOkluc3RhbmNlSUQ9InhtcC5paWQ6Mzk1NDA2RTVCREIxMTFFNjhENTJFMjdDNDQ3RDJCMTEiIHhtcE1NOkRvY3VtZW50SUQ9InhtcC5kaWQ6Mzk1NDA2RTZCREIxMTFFNjhENTJFMjdDNDQ3RDJCMTEiPiA8eG1wTU06RGVyaXZlZEZyb20gc3RSZWY6aW5zdGFuY2VJRD0ieG1wLmlpZDozOTU0MDZFM0JEQjExMUU2OEQ1MkUyN0M0NDdEMkIxMSIgc3RSZWY6ZG9jdW1lbnRJRD0ieG1wLmRpZDozOTU0MDZFNEJEQjExMUU2OEQ1MkUyN0M0NDdEMkIxMSIvPiA8L3JkZjpEZXNjcmlwdGlvbj4gPC9yZGY6UkRGPiA8L3g6eG1wbWV0YT4gPD94cGFja2V0IGVuZD0iciI/PpZ5HPgAAAAxSURBVHjaYjQ2Nv7PgBswgogzZ87gVMAEU4RLMyHABKUFyNGMbMBHJEOI1gwCAAEGAPSlBRrNcMApAAAAAElFTkSuQmCC) no-repeat; + background-position: 100% 50%; + cursor: pointer; } + +.tui-timepicker-check-lst { + list-style: none; + padding: 0; + margin: 0; } + +.tui-timepicker-check { + margin-top: 11px; } + .tui-timepicker-check:first-child { + margin-top: 0; } + +.tui-timepicker-checkbox { + padding-left: 16px; } + +.tui-timepicker-radio { + overflow: hidden; + position: relative; + text-align: left; } + .tui-timepicker-radio input { + position: absolute; + left: -9999px; + width: 1px; + height: 1px; } + .tui-timepicker-radio input:disabled + .tui-timepicker-radio-label .tui-timepicker-input-radio { + background-position: -31px -36px; } + .tui-timepicker-radio .tui-timepicker-meridiem-checked + .tui-timepicker-radio-label .tui-timepicker-input-radio { + background-position: -31px -18px; } + +.tui-timepicker-radio-label { + display: inline-block; + padding-left: 20px; + font-size: 12px; + line-height: 16px; + vertical-align: top; + color: #777; + cursor: pointer; } + +.tui-timepicker-area { + position: relative; } + +.tui-time-input { + position: relative; + display: inline-block; + width: 120px; + height: 28px; + border: 1px solid #ddd; } + .tui-time-input input { + width: 100%; + height: 100%; + padding: 0 27px 0 10px; + font-size: 12px; + border: 0; + color: #333; + -webkit-box-sizing: border-box; + box-sizing: border-box; } + .tui-time-input .tui-ico-time { + position: absolute; + top: 50%; + right: 8px; + margin: -6px 0 0 0; + background-position: 0 -30px; } + +.tui-time-input.tui-has-focus { + border-color: #aaa; } + .tui-time-input.tui-has-focus .tui-ico-time { + background-position: 0 -44px; } + +.tui-has-left.tui-timepicker-body { + position: relative; } + +.tui-has-left .tui-timepicker-row { + position: relative; } + .tui-has-left .tui-timepicker-row:after { + display: block; + clear: both; + content: ''; } + +.tui-has-left .tui-is-add-picker { + float: left; + padding: 0 5px 0 0; } + +.tui-has-left .tui-timepicker-checkbox { + float: left; + margin-top: 23px; + padding: 0 16px 0 0; } + +.tui-hidden { + display: none; } + +/*! + * TOAST UI Date Picker + * @version 4.3.0 + * @author NHN. FE Development Lab + * @license MIT + */ +.tui-calendar { + position: relative; + background-color: #fff; + border: 1px solid #aaa; + width: 274px; } + .tui-calendar * { + -webkit-box-sizing: border-box; + box-sizing: border-box; } + .tui-calendar div { + text-align: center; } + .tui-calendar caption { + padding: 0; } + .tui-calendar caption span { + overflow: hidden; + position: absolute; + clip: rect(0 0 0 0); + width: 1px; + height: 1px; + margin: -1px; + padding: 0; } + .tui-calendar button { + -webkit-appearance: none; + -moz-appearance: none; + appearance: none; } + .tui-calendar .tui-calendar-header { + position: relative; + border-bottom: 1px solid #efefef; } + .tui-calendar .tui-calendar-header-inner { + padding: 17px 50px 15px; + height: 50px; } + .tui-calendar .tui-calendar-title-today { + height: 30px; + margin: 0; + font-size: 12px; + line-height: 34px; + color: #777; + background-color: #f4f4f4; } + .tui-calendar .tui-calendar-title-today:hover { + color: #333; + background-color: #edf4fc; + cursor: pointer; } + .tui-calendar .tui-calendar-title { + display: inline-block; + font-size: 18px; + font-weight: normal; + font-style: normal; + line-height: 1; + color: #333; + cursor: default; + vertical-align: top; } + .tui-calendar .tui-calendar-btn-prev-month { + left: 0; } + .tui-calendar .tui-calendar-btn-prev-month:after { + overflow: hidden; + position: absolute; + top: 50%; + margin-top: -5px; + line-height: 400px; + background: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAC8AAAA+CAYAAAC7rUKSAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAA2ZpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuMy1jMDExIDY2LjE0NTY2MSwgMjAxMi8wMi8wNi0xNDo1NjoyNyAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wTU09Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9tbS8iIHhtbG5zOnN0UmVmPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvc1R5cGUvUmVzb3VyY2VSZWYjIiB4bWxuczp4bXA9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC8iIHhtcE1NOk9yaWdpbmFsRG9jdW1lbnRJRD0ieG1wLmRpZDpERjdGMzkzODVEQkRFNjExQkVCMjlDOUFDNzZDM0E5NCIgeG1wTU06RG9jdW1lbnRJRD0ieG1wLmRpZDo1ODVCRTc4NkM2QkQxMUU2OTgzMzhGQjZFMjcyMTQ1RSIgeG1wTU06SW5zdGFuY2VJRD0ieG1wLmlpZDo1ODVCRTc4NUM2QkQxMUU2OTgzMzhGQjZFMjcyMTQ1RSIgeG1wOkNyZWF0b3JUb29sPSJBZG9iZSBQaG90b3Nob3AgQ1M2IChXaW5kb3dzKSI+IDx4bXBNTTpEZXJpdmVkRnJvbSBzdFJlZjppbnN0YW5jZUlEPSJ4bXAuaWlkOjFERENDMTc0QjlDNkU2MTE5OTc0QjIwOTY3QkQzNjZBIiBzdFJlZjpkb2N1bWVudElEPSJ4bXAuZGlkOkRGN0YzOTM4NURCREU2MTFCRUIyOUM5QUM3NkMzQTk0Ii8+IDwvcmRmOkRlc2NyaXB0aW9uPiA8L3JkZjpSREY+IDwveDp4bXBtZXRhPiA8P3hwYWNrZXQgZW5kPSJyIj8+ClaYfwAACcFJREFUeNrEWgtwVOUVPnt37+4mmyUhkSQLGEigQ4uRQiEITe0U0Djio61ArNqpQguWdtrKtNqKM9W2Y6sOHaWdUaEvmVZtQaYjg8ZHU6zFApX4GAGdiYaHQmISks1r2Ueyt+fcPXdz9+69d/+72dQz883e+z92v/+/5z//95+7rsWLF4PB1jBu5vtvIn6IWIXoNDbetGkTfSjgzFxm/RRFgXA4DNFoFOLxuFrm9XrB5/PB1KlTweVyZXyJx4T4nxDNurI/IhYhXuUBnIFJsOHhYejp6YHy8nIoLS1VSZPRIBKJBJw8eRIqKyuhpKTElPwNTPxGxAv6CUF8D/Eg4l88gI5CEh8aGoKRkRGora3NqvN4UhRpQJ2dnerTCQaDapmkI76LibeYfD8N4C7En/kJzDNzBUFkEY9EIlBdXZ1zkKFQSB0kPSWN/GYm3mxBXG8/5QEcRMye6Iwnk0no7e2Fqqoq4T40yO7ubvUJEPnLERcQ5wT6Xoz4KmIP4nSOtopuQSpmi5oWJy1Ep0bror+/XyVPUeVeRCuiwaZPLfv8c4jv5hFhsiwWi6UXphOjPtRXW7CPISKIFxHXs1vojXz8ZXaZe0TDocV12iiS5Eue+kq6sl3s//sRV+jK5yNeQewQIB7mJ1Kqu7Z0m4maMc7/jf3/NsQ/NBdD/Arxm0L/uDaDWjgUNe2JmfXax9DsoIkbWVmZxbWp29DOSUSKi4sdk6e+Ur6zdvToURUm0SUX0kaRpq+vz/FvUx/qa0V+A+JNxHQHi9MJUp1Qq9CW39XVJUycdlnqQ30lC+K0m/6Vw+d0mARbsmSJ+klaJRAICA2A2lB7Td94LIiv5E2rF/FP3X2W7dy5My9Vqb8hrUIz2dHRARUVFSDLcoYwI5Cr2AkzI3GyP/Cn7QAKYdqM0s45MDCQIYn9fr8q2qwksRlx+D8MICsKOZELHiZ+Zw5iIgNwCf5mwTYrD2ubVQIzqg2AjkD3FeLHr32s0zh4Ogx9R3JBY1mxW3X6cGQsnlTgNbx8FLFXP3iPQQqA4ACczLDLcG0qFBFPz50mN61ZGICGWX7wy6mm0YTiff10dMXet0ZWvN+ToCd/E6JbJV9XVwefsFUgXkPS825dNgUkw/BoEJfPLYLGOUWw6/DgShwEHYYaEecl1jAhwR/awPLZycYFVqcoth3XXRqYt355JvGhWFKFZlRHbagtq2DVbZ7WLcTOHMTv4vXh1FWs3GZZZdC9Zv3yYLrgRFccdhwchA96Eur9nGky3P6FKTC/OhX3N2DbI6ei67qHxpZJ7MfbeADTBYifLaDL3HZtfQC87tSYiPDWZ/vSxM3KZGz7lQUBulwv6RbiNgs54IS4latYuc0VS2f70jdPHBmC0WR2JKWyXVin2aKL1T5f8phEklZd6HRCPJ/4XVM9ZZzCic64ZcPjurqqoFs9T3ssQmEr53A25NpVOeOWMattbW2i5MeSSUXWViq5RGzUfA5kt8u4HUqSRSwnF7plsvUMWvvp/tFxpVnjs1ahuroPU33aJZvN6LMOiNudUbUzbdZhhvJEh09G02XfuCwIZUXZlKiM6jTjPi2efPImeeyyYT4WDhjqf7//WGQLRg856JcAwyY8svYi+MvrQ/D2R3G188KZXvh6QxAuKnGn4n80CfveiVDo+Z3e5ymQfpu333ouO8b7wOMkrZ2oQ5MnETa227851I76Zvu21vCP7l1drro+kbxjRZl5hg2/8detYRiJJbfr3WYG4gjrnK2844b4+kqum5HHjIuU/6TtTOy5nz/fB4PRpOUXUh21OYptqY+2w3o5V/MM4n5DnwOMezhTdhkluvLR6XYRB/FlJPXAxqd6frD6kmJ52Ww/VE1JucnHg2Nw+FQUnj8eSfCM3819VPK3Iz4yIa63+5k4yeHf5pAF+RiRuRPJPb7njeFvIZrwfibXEbeXaH3Qhmum57eakDESeRjxSwvyZpFEyNDv9bcf8MzeLXoY+Rz9nkiqBlJvSCbqJpOW7rNzBbpPGNMXJu+00mkNp08GxZfyzrk4dA2Ogk9OxZJYIgkkIS6d7iWF6TKSf4N+jxem3Uw2cOiEHFJgJa+jG3OUpQ1PS8pL70YgitJg0UwfXFNfnJYDiTEFTp0fhbYPY4ADU66aXwxFciqNIHEc3yLwlLZwWztbyefMJ3KUZRB/5s1hNb6vW1QCn6qUM3QMXVMZ1dEmthfbUh+NPKWua3Kkr6luFre1slUcbikAtNiUZbjmgfYLUFMuw+fr/KBPy9BTiOpEGtVRG2r7SvsFta+H4/Y1HOuXIh5B/Jf7LOUZp8GttonxRHIPi7kWm7LM9B3GcDwRwS0NReO5SPT3V9+PQs+QGsphGs72F+f6IcTSubHOh/JhWO2r7bBnOY7Taeoh2hsYD7E8Xmqj5682IXl1LuJk730chwW4ED0siYnw39+KpImblbmx7cIZXni3K/PNCGmX7bwwSxgNXBYXSZsLlmVI29kVcvr+P6gWk4piomkUOKRTn+Q6Z8Oj4KHc4ASthWeYZrqZsxFmZVlGCrFUJ4E7B8Ysf+Scri7od8FwLJkx86Rxvo84RN/LOMRlXoEB0KLcrUtimZVlGHmLfqbdNq86jHUKjL8BL4SqfEFH9kqbsrSVFrmhb2RcSc4qt94z9XX9kaTaVzKoyut5sxpm0PV1XEeq0ic4gM05ytKEOs6Pb9rLa/1QLGfvj1RGdZp19CbUvpIDVXmGVWUuCUBkbxAog/khLxxHOYCbDvuyBM2LS+Az1TIEfRKUIOiayqiONzU4hn0uCXknR1WKGp5NXZ+u9iovvxcBSj7RRkSEV80zfztIy4PaYh+1r1QAVUkRpUmgzFSUNdb51Rce+4+NpJ+AhYxQ21Bb6gO6BSuSEchSldohmjVPU44y6zx9fcBVHnDDk3jwpnhOp6cIkiXQNZVRHbWhtgVTlZD6v8LNTPYmPvWYldkazWZ9yKtQopW0yzBniMmNanBxrkVhhntCliTWVOWBCahKxwNobm52fKjZvXt35j5RQFX5IpPUu4tZWcFM0qnKtYhnESsQAQZd0/8Q1uVQlca14hcoE8lA0KAP2pGfqKrUjGb2KXaVfTZlokZu+jW7lKPHRFVuz+MJNpn4dpOTBWuwBbynnOUsnjl5emWeTypDt8NOhPhaJkd/PNX+s0bu9STLllsRfXZuI/T3EhvbaEJyo+CMz+ETF/13TXst+QDnSh9ml7VNfbgsiIrmYtYJlpkZ/dGU0tQ/RvwbUv+oIgn+tolksVywZZ9gEomSpvdB6l0Y6aYoL/CckU1bsAM8gLAocScpPQH7GR9+foG4A3FCpNP/BBgAdZ3B2yZg0vUAAAAASUVORK5CYII=) no-repeat; + content: ''; + width: 6px; + height: 11px; + left: 50%; + margin-left: -3px; + background-position: 0 0; } + .tui-calendar .tui-calendar-btn-next-month { + right: 0; } + .tui-calendar .tui-calendar-btn-next-month:after { + overflow: hidden; + position: absolute; + top: 50%; + margin-top: -5px; + line-height: 400px; + background: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAC8AAAA+CAYAAAC7rUKSAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAA2ZpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuMy1jMDExIDY2LjE0NTY2MSwgMjAxMi8wMi8wNi0xNDo1NjoyNyAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wTU09Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9tbS8iIHhtbG5zOnN0UmVmPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvc1R5cGUvUmVzb3VyY2VSZWYjIiB4bWxuczp4bXA9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC8iIHhtcE1NOk9yaWdpbmFsRG9jdW1lbnRJRD0ieG1wLmRpZDpERjdGMzkzODVEQkRFNjExQkVCMjlDOUFDNzZDM0E5NCIgeG1wTU06RG9jdW1lbnRJRD0ieG1wLmRpZDo1ODVCRTc4NkM2QkQxMUU2OTgzMzhGQjZFMjcyMTQ1RSIgeG1wTU06SW5zdGFuY2VJRD0ieG1wLmlpZDo1ODVCRTc4NUM2QkQxMUU2OTgzMzhGQjZFMjcyMTQ1RSIgeG1wOkNyZWF0b3JUb29sPSJBZG9iZSBQaG90b3Nob3AgQ1M2IChXaW5kb3dzKSI+IDx4bXBNTTpEZXJpdmVkRnJvbSBzdFJlZjppbnN0YW5jZUlEPSJ4bXAuaWlkOjFERENDMTc0QjlDNkU2MTE5OTc0QjIwOTY3QkQzNjZBIiBzdFJlZjpkb2N1bWVudElEPSJ4bXAuZGlkOkRGN0YzOTM4NURCREU2MTFCRUIyOUM5QUM3NkMzQTk0Ii8+IDwvcmRmOkRlc2NyaXB0aW9uPiA8L3JkZjpSREY+IDwveDp4bXBtZXRhPiA8P3hwYWNrZXQgZW5kPSJyIj8+ClaYfwAACcFJREFUeNrEWgtwVOUVPnt37+4mmyUhkSQLGEigQ4uRQiEITe0U0Djio61ArNqpQguWdtrKtNqKM9W2Y6sOHaWdUaEvmVZtQaYjg8ZHU6zFApX4GAGdiYaHQmISks1r2Ueyt+fcPXdz9+69d/+72dQz883e+z92v/+/5z//95+7rsWLF4PB1jBu5vtvIn6IWIXoNDbetGkTfSjgzFxm/RRFgXA4DNFoFOLxuFrm9XrB5/PB1KlTweVyZXyJx4T4nxDNurI/IhYhXuUBnIFJsOHhYejp6YHy8nIoLS1VSZPRIBKJBJw8eRIqKyuhpKTElPwNTPxGxAv6CUF8D/Eg4l88gI5CEh8aGoKRkRGora3NqvN4UhRpQJ2dnerTCQaDapmkI76LibeYfD8N4C7En/kJzDNzBUFkEY9EIlBdXZ1zkKFQSB0kPSWN/GYm3mxBXG8/5QEcRMye6Iwnk0no7e2Fqqoq4T40yO7ubvUJEPnLERcQ5wT6Xoz4KmIP4nSOtopuQSpmi5oWJy1Ep0bror+/XyVPUeVeRCuiwaZPLfv8c4jv5hFhsiwWi6UXphOjPtRXW7CPISKIFxHXs1vojXz8ZXaZe0TDocV12iiS5Eue+kq6sl3s//sRV+jK5yNeQewQIB7mJ1Kqu7Z0m4maMc7/jf3/NsQ/NBdD/Arxm0L/uDaDWjgUNe2JmfXax9DsoIkbWVmZxbWp29DOSUSKi4sdk6e+Ur6zdvToURUm0SUX0kaRpq+vz/FvUx/qa0V+A+JNxHQHi9MJUp1Qq9CW39XVJUycdlnqQ30lC+K0m/6Vw+d0mARbsmSJ+klaJRAICA2A2lB7Td94LIiv5E2rF/FP3X2W7dy5My9Vqb8hrUIz2dHRARUVFSDLcoYwI5Cr2AkzI3GyP/Cn7QAKYdqM0s45MDCQIYn9fr8q2qwksRlx+D8MICsKOZELHiZ+Zw5iIgNwCf5mwTYrD2ubVQIzqg2AjkD3FeLHr32s0zh4Ogx9R3JBY1mxW3X6cGQsnlTgNbx8FLFXP3iPQQqA4ACczLDLcG0qFBFPz50mN61ZGICGWX7wy6mm0YTiff10dMXet0ZWvN+ToCd/E6JbJV9XVwefsFUgXkPS825dNgUkw/BoEJfPLYLGOUWw6/DgShwEHYYaEecl1jAhwR/awPLZycYFVqcoth3XXRqYt355JvGhWFKFZlRHbagtq2DVbZ7WLcTOHMTv4vXh1FWs3GZZZdC9Zv3yYLrgRFccdhwchA96Eur9nGky3P6FKTC/OhX3N2DbI6ei67qHxpZJ7MfbeADTBYifLaDL3HZtfQC87tSYiPDWZ/vSxM3KZGz7lQUBulwv6RbiNgs54IS4latYuc0VS2f70jdPHBmC0WR2JKWyXVin2aKL1T5f8phEklZd6HRCPJ/4XVM9ZZzCic64ZcPjurqqoFs9T3ssQmEr53A25NpVOeOWMattbW2i5MeSSUXWViq5RGzUfA5kt8u4HUqSRSwnF7plsvUMWvvp/tFxpVnjs1ahuroPU33aJZvN6LMOiNudUbUzbdZhhvJEh09G02XfuCwIZUXZlKiM6jTjPi2efPImeeyyYT4WDhjqf7//WGQLRg856JcAwyY8svYi+MvrQ/D2R3G188KZXvh6QxAuKnGn4n80CfveiVDo+Z3e5ymQfpu333ouO8b7wOMkrZ2oQ5MnETa227851I76Zvu21vCP7l1drro+kbxjRZl5hg2/8detYRiJJbfr3WYG4gjrnK2844b4+kqum5HHjIuU/6TtTOy5nz/fB4PRpOUXUh21OYptqY+2w3o5V/MM4n5DnwOMezhTdhkluvLR6XYRB/FlJPXAxqd6frD6kmJ52Ww/VE1JucnHg2Nw+FQUnj8eSfCM3819VPK3Iz4yIa63+5k4yeHf5pAF+RiRuRPJPb7njeFvIZrwfibXEbeXaH3Qhmum57eakDESeRjxSwvyZpFEyNDv9bcf8MzeLXoY+Rz9nkiqBlJvSCbqJpOW7rNzBbpPGNMXJu+00mkNp08GxZfyzrk4dA2Ogk9OxZJYIgkkIS6d7iWF6TKSf4N+jxem3Uw2cOiEHFJgJa+jG3OUpQ1PS8pL70YgitJg0UwfXFNfnJYDiTEFTp0fhbYPY4ADU66aXwxFciqNIHEc3yLwlLZwWztbyefMJ3KUZRB/5s1hNb6vW1QCn6qUM3QMXVMZ1dEmthfbUh+NPKWua3Kkr6luFre1slUcbikAtNiUZbjmgfYLUFMuw+fr/KBPy9BTiOpEGtVRG2r7SvsFta+H4/Y1HOuXIh5B/Jf7LOUZp8GttonxRHIPi7kWm7LM9B3GcDwRwS0NReO5SPT3V9+PQs+QGsphGs72F+f6IcTSubHOh/JhWO2r7bBnOY7Taeoh2hsYD7E8Xmqj5682IXl1LuJk730chwW4ED0siYnw39+KpImblbmx7cIZXni3K/PNCGmX7bwwSxgNXBYXSZsLlmVI29kVcvr+P6gWk4piomkUOKRTn+Q6Z8Oj4KHc4ASthWeYZrqZsxFmZVlGCrFUJ4E7B8Ysf+Scri7od8FwLJkx86Rxvo84RN/LOMRlXoEB0KLcrUtimZVlGHmLfqbdNq86jHUKjL8BL4SqfEFH9kqbsrSVFrmhb2RcSc4qt94z9XX9kaTaVzKoyut5sxpm0PV1XEeq0ic4gM05ytKEOs6Pb9rLa/1QLGfvj1RGdZp19CbUvpIDVXmGVWUuCUBkbxAog/khLxxHOYCbDvuyBM2LS+Az1TIEfRKUIOiayqiONzU4hn0uCXknR1WKGp5NXZ+u9iovvxcBSj7RRkSEV80zfztIy4PaYh+1r1QAVUkRpUmgzFSUNdb51Rce+4+NpJ+AhYxQ21Bb6gO6BSuSEchSldohmjVPU44y6zx9fcBVHnDDk3jwpnhOp6cIkiXQNZVRHbWhtgVTlZD6v8LNTPYmPvWYldkazWZ9yKtQopW0yzBniMmNanBxrkVhhntCliTWVOWBCahKxwNobm52fKjZvXt35j5RQFX5IpPUu4tZWcFM0qnKtYhnESsQAQZd0/8Q1uVQlca14hcoE8lA0KAP2pGfqKrUjGb2KXaVfTZlokZu+jW7lKPHRFVuz+MJNpn4dpOTBWuwBbynnOUsnjl5emWeTypDt8NOhPhaJkd/PNX+s0bu9STLllsRfXZuI/T3EhvbaEJyo+CMz+ETF/13TXst+QDnSh9ml7VNfbgsiIrmYtYJlpkZ/dGU0tQ/RvwbUv+oIgn+tolksVywZZ9gEomSpvdB6l0Y6aYoL/CckU1bsAM8gLAocScpPQH7GR9+foG4A3FCpNP/BBgAdZ3B2yZg0vUAAAAASUVORK5CYII=) no-repeat; + content: ''; + width: 6px; + height: 11px; + right: 50%; + margin-right: -3px; + background-position: -8px 0; } + .tui-calendar .tui-calendar-btn-prev-year { + left: 0; } + .tui-calendar .tui-calendar-btn-prev-year:after { + overflow: hidden; + position: absolute; + top: 50%; + margin-top: -5px; + line-height: 400px; + background: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAC8AAAA+CAYAAAC7rUKSAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAA2ZpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuMy1jMDExIDY2LjE0NTY2MSwgMjAxMi8wMi8wNi0xNDo1NjoyNyAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wTU09Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9tbS8iIHhtbG5zOnN0UmVmPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvc1R5cGUvUmVzb3VyY2VSZWYjIiB4bWxuczp4bXA9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC8iIHhtcE1NOk9yaWdpbmFsRG9jdW1lbnRJRD0ieG1wLmRpZDpERjdGMzkzODVEQkRFNjExQkVCMjlDOUFDNzZDM0E5NCIgeG1wTU06RG9jdW1lbnRJRD0ieG1wLmRpZDo1ODVCRTc4NkM2QkQxMUU2OTgzMzhGQjZFMjcyMTQ1RSIgeG1wTU06SW5zdGFuY2VJRD0ieG1wLmlpZDo1ODVCRTc4NUM2QkQxMUU2OTgzMzhGQjZFMjcyMTQ1RSIgeG1wOkNyZWF0b3JUb29sPSJBZG9iZSBQaG90b3Nob3AgQ1M2IChXaW5kb3dzKSI+IDx4bXBNTTpEZXJpdmVkRnJvbSBzdFJlZjppbnN0YW5jZUlEPSJ4bXAuaWlkOjFERENDMTc0QjlDNkU2MTE5OTc0QjIwOTY3QkQzNjZBIiBzdFJlZjpkb2N1bWVudElEPSJ4bXAuZGlkOkRGN0YzOTM4NURCREU2MTFCRUIyOUM5QUM3NkMzQTk0Ii8+IDwvcmRmOkRlc2NyaXB0aW9uPiA8L3JkZjpSREY+IDwveDp4bXBtZXRhPiA8P3hwYWNrZXQgZW5kPSJyIj8+ClaYfwAACcFJREFUeNrEWgtwVOUVPnt37+4mmyUhkSQLGEigQ4uRQiEITe0U0Djio61ArNqpQguWdtrKtNqKM9W2Y6sOHaWdUaEvmVZtQaYjg8ZHU6zFApX4GAGdiYaHQmISks1r2Ueyt+fcPXdz9+69d/+72dQz883e+z92v/+/5z//95+7rsWLF4PB1jBu5vtvIn6IWIXoNDbetGkTfSjgzFxm/RRFgXA4DNFoFOLxuFrm9XrB5/PB1KlTweVyZXyJx4T4nxDNurI/IhYhXuUBnIFJsOHhYejp6YHy8nIoLS1VSZPRIBKJBJw8eRIqKyuhpKTElPwNTPxGxAv6CUF8D/Eg4l88gI5CEh8aGoKRkRGora3NqvN4UhRpQJ2dnerTCQaDapmkI76LibeYfD8N4C7En/kJzDNzBUFkEY9EIlBdXZ1zkKFQSB0kPSWN/GYm3mxBXG8/5QEcRMye6Iwnk0no7e2Fqqoq4T40yO7ubvUJEPnLERcQ5wT6Xoz4KmIP4nSOtopuQSpmi5oWJy1Ep0bror+/XyVPUeVeRCuiwaZPLfv8c4jv5hFhsiwWi6UXphOjPtRXW7CPISKIFxHXs1vojXz8ZXaZe0TDocV12iiS5Eue+kq6sl3s//sRV+jK5yNeQewQIB7mJ1Kqu7Z0m4maMc7/jf3/NsQ/NBdD/Arxm0L/uDaDWjgUNe2JmfXax9DsoIkbWVmZxbWp29DOSUSKi4sdk6e+Ur6zdvToURUm0SUX0kaRpq+vz/FvUx/qa0V+A+JNxHQHi9MJUp1Qq9CW39XVJUycdlnqQ30lC+K0m/6Vw+d0mARbsmSJ+klaJRAICA2A2lB7Td94LIiv5E2rF/FP3X2W7dy5My9Vqb8hrUIz2dHRARUVFSDLcoYwI5Cr2AkzI3GyP/Cn7QAKYdqM0s45MDCQIYn9fr8q2qwksRlx+D8MICsKOZELHiZ+Zw5iIgNwCf5mwTYrD2ubVQIzqg2AjkD3FeLHr32s0zh4Ogx9R3JBY1mxW3X6cGQsnlTgNbx8FLFXP3iPQQqA4ACczLDLcG0qFBFPz50mN61ZGICGWX7wy6mm0YTiff10dMXet0ZWvN+ToCd/E6JbJV9XVwefsFUgXkPS825dNgUkw/BoEJfPLYLGOUWw6/DgShwEHYYaEecl1jAhwR/awPLZycYFVqcoth3XXRqYt355JvGhWFKFZlRHbagtq2DVbZ7WLcTOHMTv4vXh1FWs3GZZZdC9Zv3yYLrgRFccdhwchA96Eur9nGky3P6FKTC/OhX3N2DbI6ei67qHxpZJ7MfbeADTBYifLaDL3HZtfQC87tSYiPDWZ/vSxM3KZGz7lQUBulwv6RbiNgs54IS4latYuc0VS2f70jdPHBmC0WR2JKWyXVin2aKL1T5f8phEklZd6HRCPJ/4XVM9ZZzCic64ZcPjurqqoFs9T3ssQmEr53A25NpVOeOWMattbW2i5MeSSUXWViq5RGzUfA5kt8u4HUqSRSwnF7plsvUMWvvp/tFxpVnjs1ahuroPU33aJZvN6LMOiNudUbUzbdZhhvJEh09G02XfuCwIZUXZlKiM6jTjPi2efPImeeyyYT4WDhjqf7//WGQLRg856JcAwyY8svYi+MvrQ/D2R3G188KZXvh6QxAuKnGn4n80CfveiVDo+Z3e5ymQfpu333ouO8b7wOMkrZ2oQ5MnETa227851I76Zvu21vCP7l1drro+kbxjRZl5hg2/8detYRiJJbfr3WYG4gjrnK2844b4+kqum5HHjIuU/6TtTOy5nz/fB4PRpOUXUh21OYptqY+2w3o5V/MM4n5DnwOMezhTdhkluvLR6XYRB/FlJPXAxqd6frD6kmJ52Ww/VE1JucnHg2Nw+FQUnj8eSfCM3819VPK3Iz4yIa63+5k4yeHf5pAF+RiRuRPJPb7njeFvIZrwfibXEbeXaH3Qhmum57eakDESeRjxSwvyZpFEyNDv9bcf8MzeLXoY+Rz9nkiqBlJvSCbqJpOW7rNzBbpPGNMXJu+00mkNp08GxZfyzrk4dA2Ogk9OxZJYIgkkIS6d7iWF6TKSf4N+jxem3Uw2cOiEHFJgJa+jG3OUpQ1PS8pL70YgitJg0UwfXFNfnJYDiTEFTp0fhbYPY4ADU66aXwxFciqNIHEc3yLwlLZwWztbyefMJ3KUZRB/5s1hNb6vW1QCn6qUM3QMXVMZ1dEmthfbUh+NPKWua3Kkr6luFre1slUcbikAtNiUZbjmgfYLUFMuw+fr/KBPy9BTiOpEGtVRG2r7SvsFta+H4/Y1HOuXIh5B/Jf7LOUZp8GttonxRHIPi7kWm7LM9B3GcDwRwS0NReO5SPT3V9+PQs+QGsphGs72F+f6IcTSubHOh/JhWO2r7bBnOY7Taeoh2hsYD7E8Xmqj5682IXl1LuJk730chwW4ED0siYnw39+KpImblbmx7cIZXni3K/PNCGmX7bwwSxgNXBYXSZsLlmVI29kVcvr+P6gWk4piomkUOKRTn+Q6Z8Oj4KHc4ASthWeYZrqZsxFmZVlGCrFUJ4E7B8Ysf+Scri7od8FwLJkx86Rxvo84RN/LOMRlXoEB0KLcrUtimZVlGHmLfqbdNq86jHUKjL8BL4SqfEFH9kqbsrSVFrmhb2RcSc4qt94z9XX9kaTaVzKoyut5sxpm0PV1XEeq0ic4gM05ytKEOs6Pb9rLa/1QLGfvj1RGdZp19CbUvpIDVXmGVWUuCUBkbxAog/khLxxHOYCbDvuyBM2LS+Az1TIEfRKUIOiayqiONzU4hn0uCXknR1WKGp5NXZ+u9iovvxcBSj7RRkSEV80zfztIy4PaYh+1r1QAVUkRpUmgzFSUNdb51Rce+4+NpJ+AhYxQ21Bb6gO6BSuSEchSldohmjVPU44y6zx9fcBVHnDDk3jwpnhOp6cIkiXQNZVRHbWhtgVTlZD6v8LNTPYmPvWYldkazWZ9yKtQopW0yzBniMmNanBxrkVhhntCliTWVOWBCahKxwNobm52fKjZvXt35j5RQFX5IpPUu4tZWcFM0qnKtYhnESsQAQZd0/8Q1uVQlca14hcoE8lA0KAP2pGfqKrUjGb2KXaVfTZlokZu+jW7lKPHRFVuz+MJNpn4dpOTBWuwBbynnOUsnjl5emWeTypDt8NOhPhaJkd/PNX+s0bu9STLllsRfXZuI/T3EhvbaEJyo+CMz+ETF/13TXst+QDnSh9ml7VNfbgsiIrmYtYJlpkZ/dGU0tQ/RvwbUv+oIgn+tolksVywZZ9gEomSpvdB6l0Y6aYoL/CckU1bsAM8gLAocScpPQH7GR9+foG4A3FCpNP/BBgAdZ3B2yZg0vUAAAAASUVORK5CYII=) no-repeat; + content: ''; + width: 11px; + height: 10px; + left: 50%; + margin-left: -6px; + background-position: -16px -36px; } + .tui-calendar .tui-calendar-btn-next-year { + right: 0; } + .tui-calendar .tui-calendar-btn-next-year:after { + overflow: hidden; + position: absolute; + top: 50%; + margin-top: -5px; + line-height: 400px; + background: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAC8AAAA+CAYAAAC7rUKSAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAA2ZpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuMy1jMDExIDY2LjE0NTY2MSwgMjAxMi8wMi8wNi0xNDo1NjoyNyAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wTU09Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9tbS8iIHhtbG5zOnN0UmVmPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvc1R5cGUvUmVzb3VyY2VSZWYjIiB4bWxuczp4bXA9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC8iIHhtcE1NOk9yaWdpbmFsRG9jdW1lbnRJRD0ieG1wLmRpZDpERjdGMzkzODVEQkRFNjExQkVCMjlDOUFDNzZDM0E5NCIgeG1wTU06RG9jdW1lbnRJRD0ieG1wLmRpZDo1ODVCRTc4NkM2QkQxMUU2OTgzMzhGQjZFMjcyMTQ1RSIgeG1wTU06SW5zdGFuY2VJRD0ieG1wLmlpZDo1ODVCRTc4NUM2QkQxMUU2OTgzMzhGQjZFMjcyMTQ1RSIgeG1wOkNyZWF0b3JUb29sPSJBZG9iZSBQaG90b3Nob3AgQ1M2IChXaW5kb3dzKSI+IDx4bXBNTTpEZXJpdmVkRnJvbSBzdFJlZjppbnN0YW5jZUlEPSJ4bXAuaWlkOjFERENDMTc0QjlDNkU2MTE5OTc0QjIwOTY3QkQzNjZBIiBzdFJlZjpkb2N1bWVudElEPSJ4bXAuZGlkOkRGN0YzOTM4NURCREU2MTFCRUIyOUM5QUM3NkMzQTk0Ii8+IDwvcmRmOkRlc2NyaXB0aW9uPiA8L3JkZjpSREY+IDwveDp4bXBtZXRhPiA8P3hwYWNrZXQgZW5kPSJyIj8+ClaYfwAACcFJREFUeNrEWgtwVOUVPnt37+4mmyUhkSQLGEigQ4uRQiEITe0U0Djio61ArNqpQguWdtrKtNqKM9W2Y6sOHaWdUaEvmVZtQaYjg8ZHU6zFApX4GAGdiYaHQmISks1r2Ueyt+fcPXdz9+69d/+72dQz883e+z92v/+/5z//95+7rsWLF4PB1jBu5vtvIn6IWIXoNDbetGkTfSjgzFxm/RRFgXA4DNFoFOLxuFrm9XrB5/PB1KlTweVyZXyJx4T4nxDNurI/IhYhXuUBnIFJsOHhYejp6YHy8nIoLS1VSZPRIBKJBJw8eRIqKyuhpKTElPwNTPxGxAv6CUF8D/Eg4l88gI5CEh8aGoKRkRGora3NqvN4UhRpQJ2dnerTCQaDapmkI76LibeYfD8N4C7En/kJzDNzBUFkEY9EIlBdXZ1zkKFQSB0kPSWN/GYm3mxBXG8/5QEcRMye6Iwnk0no7e2Fqqoq4T40yO7ubvUJEPnLERcQ5wT6Xoz4KmIP4nSOtopuQSpmi5oWJy1Ep0bror+/XyVPUeVeRCuiwaZPLfv8c4jv5hFhsiwWi6UXphOjPtRXW7CPISKIFxHXs1vojXz8ZXaZe0TDocV12iiS5Eue+kq6sl3s//sRV+jK5yNeQewQIB7mJ1Kqu7Z0m4maMc7/jf3/NsQ/NBdD/Arxm0L/uDaDWjgUNe2JmfXax9DsoIkbWVmZxbWp29DOSUSKi4sdk6e+Ur6zdvToURUm0SUX0kaRpq+vz/FvUx/qa0V+A+JNxHQHi9MJUp1Qq9CW39XVJUycdlnqQ30lC+K0m/6Vw+d0mARbsmSJ+klaJRAICA2A2lB7Td94LIiv5E2rF/FP3X2W7dy5My9Vqb8hrUIz2dHRARUVFSDLcoYwI5Cr2AkzI3GyP/Cn7QAKYdqM0s45MDCQIYn9fr8q2qwksRlx+D8MICsKOZELHiZ+Zw5iIgNwCf5mwTYrD2ubVQIzqg2AjkD3FeLHr32s0zh4Ogx9R3JBY1mxW3X6cGQsnlTgNbx8FLFXP3iPQQqA4ACczLDLcG0qFBFPz50mN61ZGICGWX7wy6mm0YTiff10dMXet0ZWvN+ToCd/E6JbJV9XVwefsFUgXkPS825dNgUkw/BoEJfPLYLGOUWw6/DgShwEHYYaEecl1jAhwR/awPLZycYFVqcoth3XXRqYt355JvGhWFKFZlRHbagtq2DVbZ7WLcTOHMTv4vXh1FWs3GZZZdC9Zv3yYLrgRFccdhwchA96Eur9nGky3P6FKTC/OhX3N2DbI6ei67qHxpZJ7MfbeADTBYifLaDL3HZtfQC87tSYiPDWZ/vSxM3KZGz7lQUBulwv6RbiNgs54IS4latYuc0VS2f70jdPHBmC0WR2JKWyXVin2aKL1T5f8phEklZd6HRCPJ/4XVM9ZZzCic64ZcPjurqqoFs9T3ssQmEr53A25NpVOeOWMattbW2i5MeSSUXWViq5RGzUfA5kt8u4HUqSRSwnF7plsvUMWvvp/tFxpVnjs1ahuroPU33aJZvN6LMOiNudUbUzbdZhhvJEh09G02XfuCwIZUXZlKiM6jTjPi2efPImeeyyYT4WDhjqf7//WGQLRg856JcAwyY8svYi+MvrQ/D2R3G188KZXvh6QxAuKnGn4n80CfveiVDo+Z3e5ymQfpu333ouO8b7wOMkrZ2oQ5MnETa227851I76Zvu21vCP7l1drro+kbxjRZl5hg2/8detYRiJJbfr3WYG4gjrnK2844b4+kqum5HHjIuU/6TtTOy5nz/fB4PRpOUXUh21OYptqY+2w3o5V/MM4n5DnwOMezhTdhkluvLR6XYRB/FlJPXAxqd6frD6kmJ52Ww/VE1JucnHg2Nw+FQUnj8eSfCM3819VPK3Iz4yIa63+5k4yeHf5pAF+RiRuRPJPb7njeFvIZrwfibXEbeXaH3Qhmum57eakDESeRjxSwvyZpFEyNDv9bcf8MzeLXoY+Rz9nkiqBlJvSCbqJpOW7rNzBbpPGNMXJu+00mkNp08GxZfyzrk4dA2Ogk9OxZJYIgkkIS6d7iWF6TKSf4N+jxem3Uw2cOiEHFJgJa+jG3OUpQ1PS8pL70YgitJg0UwfXFNfnJYDiTEFTp0fhbYPY4ADU66aXwxFciqNIHEc3yLwlLZwWztbyefMJ3KUZRB/5s1hNb6vW1QCn6qUM3QMXVMZ1dEmthfbUh+NPKWua3Kkr6luFre1slUcbikAtNiUZbjmgfYLUFMuw+fr/KBPy9BTiOpEGtVRG2r7SvsFta+H4/Y1HOuXIh5B/Jf7LOUZp8GttonxRHIPi7kWm7LM9B3GcDwRwS0NReO5SPT3V9+PQs+QGsphGs72F+f6IcTSubHOh/JhWO2r7bBnOY7Taeoh2hsYD7E8Xmqj5682IXl1LuJk730chwW4ED0siYnw39+KpImblbmx7cIZXni3K/PNCGmX7bwwSxgNXBYXSZsLlmVI29kVcvr+P6gWk4piomkUOKRTn+Q6Z8Oj4KHc4ASthWeYZrqZsxFmZVlGCrFUJ4E7B8Ysf+Scri7od8FwLJkx86Rxvo84RN/LOMRlXoEB0KLcrUtimZVlGHmLfqbdNq86jHUKjL8BL4SqfEFH9kqbsrSVFrmhb2RcSc4qt94z9XX9kaTaVzKoyut5sxpm0PV1XEeq0ic4gM05ytKEOs6Pb9rLa/1QLGfvj1RGdZp19CbUvpIDVXmGVWUuCUBkbxAog/khLxxHOYCbDvuyBM2LS+Az1TIEfRKUIOiayqiONzU4hn0uCXknR1WKGp5NXZ+u9iovvxcBSj7RRkSEV80zfztIy4PaYh+1r1QAVUkRpUmgzFSUNdb51Rce+4+NpJ+AhYxQ21Bb6gO6BSuSEchSldohmjVPU44y6zx9fcBVHnDDk3jwpnhOp6cIkiXQNZVRHbWhtgVTlZD6v8LNTPYmPvWYldkazWZ9yKtQopW0yzBniMmNanBxrkVhhntCliTWVOWBCahKxwNobm52fKjZvXt35j5RQFX5IpPUu4tZWcFM0qnKtYhnESsQAQZd0/8Q1uVQlca14hcoE8lA0KAP2pGfqKrUjGb2KXaVfTZlokZu+jW7lKPHRFVuz+MJNpn4dpOTBWuwBbynnOUsnjl5emWeTypDt8NOhPhaJkd/PNX+s0bu9STLllsRfXZuI/T3EhvbaEJyo+CMz+ETF/13TXst+QDnSh9ml7VNfbgsiIrmYtYJlpkZ/dGU0tQ/RvwbUv+oIgn+tolksVywZZ9gEomSpvdB6l0Y6aYoL/CckU1bsAM8gLAocScpPQH7GR9+foG4A3FCpNP/BBgAdZ3B2yZg0vUAAAAASUVORK5CYII=) no-repeat; + content: ''; + width: 11px; + height: 10px; + right: 50%; + margin-right: -6px; + background-position: -16px -49px; } + .tui-calendar .tui-calendar-has-btns .tui-calendar-btn-prev-year { + left: 10px; } + .tui-calendar .tui-calendar-has-btns .tui-calendar-btn-next-year { + right: 10px; } + .tui-calendar .tui-calendar-has-btns .tui-calendar-btn-prev-month { + left: 44px; } + .tui-calendar .tui-calendar-has-btns .tui-calendar-btn-next-month { + right: 44px; } + .tui-calendar .tui-calendar-body-header th { + color: #777; } + .tui-calendar .tui-calendar-body-inner { + width: 100%; + margin: 0 auto; + table-layout: fixed; + border-collapse: collapse; + text-align: center; + font-size: 12px; } + .tui-calendar th { + font-weight: normal; + cursor: default; + height: 39px; + text-align: center; + color: #999; } + .tui-calendar td { + height: 39px; + text-align: center; + color: #999; } + .tui-calendar .tui-is-blocked:hover { + cursor: default; } + .tui-calendar .tui-calendar-month { + width: 25%; + height: 50px; } + .tui-calendar .tui-calendar-today { + color: #4b96e6; } + .tui-calendar .tui-calendar-prev-month { + color: #ccc; } + .tui-calendar .tui-calendar-next-month { + color: #ccc; } + .tui-calendar .tui-calendar-prev-month.tui-calendar-date { + visibility: hidden; } + .tui-calendar .tui-calendar-next-month.tui-calendar-date { + visibility: hidden; } + .tui-calendar .tui-calendar-btn-choice { + background-color: #4b96e6; } + .tui-calendar .tui-calendar-btn-close { + background-color: #777; } + .tui-calendar .tui-calendar-year { + width: 25%; + height: 50px; } + +.tui-datepicker-dropdown { + display: inline-block; + width: 120px; + position: relative; } + .tui-datepicker-dropdown button { + -webkit-appearance: none; + -moz-appearance: none; + appearance: none; } + .tui-datepicker-dropdown .tui-ico-check { + overflow: hidden; + display: inline-block; + width: 1px; + height: 1px; + line-height: 300px; + background: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAC8AAAA+CAYAAAC7rUKSAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAA2ZpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuMy1jMDExIDY2LjE0NTY2MSwgMjAxMi8wMi8wNi0xNDo1NjoyNyAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wTU09Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9tbS8iIHhtbG5zOnN0UmVmPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvc1R5cGUvUmVzb3VyY2VSZWYjIiB4bWxuczp4bXA9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC8iIHhtcE1NOk9yaWdpbmFsRG9jdW1lbnRJRD0ieG1wLmRpZDpERjdGMzkzODVEQkRFNjExQkVCMjlDOUFDNzZDM0E5NCIgeG1wTU06RG9jdW1lbnRJRD0ieG1wLmRpZDo1ODVCRTc4NkM2QkQxMUU2OTgzMzhGQjZFMjcyMTQ1RSIgeG1wTU06SW5zdGFuY2VJRD0ieG1wLmlpZDo1ODVCRTc4NUM2QkQxMUU2OTgzMzhGQjZFMjcyMTQ1RSIgeG1wOkNyZWF0b3JUb29sPSJBZG9iZSBQaG90b3Nob3AgQ1M2IChXaW5kb3dzKSI+IDx4bXBNTTpEZXJpdmVkRnJvbSBzdFJlZjppbnN0YW5jZUlEPSJ4bXAuaWlkOjFERENDMTc0QjlDNkU2MTE5OTc0QjIwOTY3QkQzNjZBIiBzdFJlZjpkb2N1bWVudElEPSJ4bXAuZGlkOkRGN0YzOTM4NURCREU2MTFCRUIyOUM5QUM3NkMzQTk0Ii8+IDwvcmRmOkRlc2NyaXB0aW9uPiA8L3JkZjpSREY+IDwveDp4bXBtZXRhPiA8P3hwYWNrZXQgZW5kPSJyIj8+ClaYfwAACcFJREFUeNrEWgtwVOUVPnt37+4mmyUhkSQLGEigQ4uRQiEITe0U0Djio61ArNqpQguWdtrKtNqKM9W2Y6sOHaWdUaEvmVZtQaYjg8ZHU6zFApX4GAGdiYaHQmISks1r2Ueyt+fcPXdz9+69d/+72dQz883e+z92v/+/5z//95+7rsWLF4PB1jBu5vtvIn6IWIXoNDbetGkTfSjgzFxm/RRFgXA4DNFoFOLxuFrm9XrB5/PB1KlTweVyZXyJx4T4nxDNurI/IhYhXuUBnIFJsOHhYejp6YHy8nIoLS1VSZPRIBKJBJw8eRIqKyuhpKTElPwNTPxGxAv6CUF8D/Eg4l88gI5CEh8aGoKRkRGora3NqvN4UhRpQJ2dnerTCQaDapmkI76LibeYfD8N4C7En/kJzDNzBUFkEY9EIlBdXZ1zkKFQSB0kPSWN/GYm3mxBXG8/5QEcRMye6Iwnk0no7e2Fqqoq4T40yO7ubvUJEPnLERcQ5wT6Xoz4KmIP4nSOtopuQSpmi5oWJy1Ep0bror+/XyVPUeVeRCuiwaZPLfv8c4jv5hFhsiwWi6UXphOjPtRXW7CPISKIFxHXs1vojXz8ZXaZe0TDocV12iiS5Eue+kq6sl3s//sRV+jK5yNeQewQIB7mJ1Kqu7Z0m4maMc7/jf3/NsQ/NBdD/Arxm0L/uDaDWjgUNe2JmfXax9DsoIkbWVmZxbWp29DOSUSKi4sdk6e+Ur6zdvToURUm0SUX0kaRpq+vz/FvUx/qa0V+A+JNxHQHi9MJUp1Qq9CW39XVJUycdlnqQ30lC+K0m/6Vw+d0mARbsmSJ+klaJRAICA2A2lB7Td94LIiv5E2rF/FP3X2W7dy5My9Vqb8hrUIz2dHRARUVFSDLcoYwI5Cr2AkzI3GyP/Cn7QAKYdqM0s45MDCQIYn9fr8q2qwksRlx+D8MICsKOZELHiZ+Zw5iIgNwCf5mwTYrD2ubVQIzqg2AjkD3FeLHr32s0zh4Ogx9R3JBY1mxW3X6cGQsnlTgNbx8FLFXP3iPQQqA4ACczLDLcG0qFBFPz50mN61ZGICGWX7wy6mm0YTiff10dMXet0ZWvN+ToCd/E6JbJV9XVwefsFUgXkPS825dNgUkw/BoEJfPLYLGOUWw6/DgShwEHYYaEecl1jAhwR/awPLZycYFVqcoth3XXRqYt355JvGhWFKFZlRHbagtq2DVbZ7WLcTOHMTv4vXh1FWs3GZZZdC9Zv3yYLrgRFccdhwchA96Eur9nGky3P6FKTC/OhX3N2DbI6ei67qHxpZJ7MfbeADTBYifLaDL3HZtfQC87tSYiPDWZ/vSxM3KZGz7lQUBulwv6RbiNgs54IS4latYuc0VS2f70jdPHBmC0WR2JKWyXVin2aKL1T5f8phEklZd6HRCPJ/4XVM9ZZzCic64ZcPjurqqoFs9T3ssQmEr53A25NpVOeOWMattbW2i5MeSSUXWViq5RGzUfA5kt8u4HUqSRSwnF7plsvUMWvvp/tFxpVnjs1ahuroPU33aJZvN6LMOiNudUbUzbdZhhvJEh09G02XfuCwIZUXZlKiM6jTjPi2efPImeeyyYT4WDhjqf7//WGQLRg856JcAwyY8svYi+MvrQ/D2R3G188KZXvh6QxAuKnGn4n80CfveiVDo+Z3e5ymQfpu333ouO8b7wOMkrZ2oQ5MnETa227851I76Zvu21vCP7l1drro+kbxjRZl5hg2/8detYRiJJbfr3WYG4gjrnK2844b4+kqum5HHjIuU/6TtTOy5nz/fB4PRpOUXUh21OYptqY+2w3o5V/MM4n5DnwOMezhTdhkluvLR6XYRB/FlJPXAxqd6frD6kmJ52Ww/VE1JucnHg2Nw+FQUnj8eSfCM3819VPK3Iz4yIa63+5k4yeHf5pAF+RiRuRPJPb7njeFvIZrwfibXEbeXaH3Qhmum57eakDESeRjxSwvyZpFEyNDv9bcf8MzeLXoY+Rz9nkiqBlJvSCbqJpOW7rNzBbpPGNMXJu+00mkNp08GxZfyzrk4dA2Ogk9OxZJYIgkkIS6d7iWF6TKSf4N+jxem3Uw2cOiEHFJgJa+jG3OUpQ1PS8pL70YgitJg0UwfXFNfnJYDiTEFTp0fhbYPY4ADU66aXwxFciqNIHEc3yLwlLZwWztbyefMJ3KUZRB/5s1hNb6vW1QCn6qUM3QMXVMZ1dEmthfbUh+NPKWua3Kkr6luFre1slUcbikAtNiUZbjmgfYLUFMuw+fr/KBPy9BTiOpEGtVRG2r7SvsFta+H4/Y1HOuXIh5B/Jf7LOUZp8GttonxRHIPi7kWm7LM9B3GcDwRwS0NReO5SPT3V9+PQs+QGsphGs72F+f6IcTSubHOh/JhWO2r7bBnOY7Taeoh2hsYD7E8Xmqj5682IXl1LuJk730chwW4ED0siYnw39+KpImblbmx7cIZXni3K/PNCGmX7bwwSxgNXBYXSZsLlmVI29kVcvr+P6gWk4piomkUOKRTn+Q6Z8Oj4KHc4ASthWeYZrqZsxFmZVlGCrFUJ4E7B8Ysf+Scri7od8FwLJkx86Rxvo84RN/LOMRlXoEB0KLcrUtimZVlGHmLfqbdNq86jHUKjL8BL4SqfEFH9kqbsrSVFrmhb2RcSc4qt94z9XX9kaTaVzKoyut5sxpm0PV1XEeq0ic4gM05ytKEOs6Pb9rLa/1QLGfvj1RGdZp19CbUvpIDVXmGVWUuCUBkbxAog/khLxxHOYCbDvuyBM2LS+Az1TIEfRKUIOiayqiONzU4hn0uCXknR1WKGp5NXZ+u9iovvxcBSj7RRkSEV80zfztIy4PaYh+1r1QAVUkRpUmgzFSUNdb51Rce+4+NpJ+AhYxQ21Bb6gO6BSuSEchSldohmjVPU44y6zx9fcBVHnDDk3jwpnhOp6cIkiXQNZVRHbWhtgVTlZD6v8LNTPYmPvWYldkazWZ9yKtQopW0yzBniMmNanBxrkVhhntCliTWVOWBCahKxwNobm52fKjZvXt35j5RQFX5IpPUu4tZWcFM0qnKtYhnESsQAQZd0/8Q1uVQlca14hcoE8lA0KAP2pGfqKrUjGb2KXaVfTZlokZu+jW7lKPHRFVuz+MJNpn4dpOTBWuwBbynnOUsnjl5emWeTypDt8NOhPhaJkd/PNX+s0bu9STLllsRfXZuI/T3EhvbaEJyo+CMz+ETF/13TXst+QDnSh9ml7VNfbgsiIrmYtYJlpkZ/dGU0tQ/RvwbUv+oIgn+tolksVywZZ9gEomSpvdB6l0Y6aYoL/CckU1bsAM8gLAocScpPQH7GR9+foG4A3FCpNP/BBgAdZ3B2yZg0vUAAAAASUVORK5CYII=) no-repeat; } + .tui-datepicker-dropdown .tui-dropdown-button { + width: 100%; + height: 28px; + padding: 0 10px; + font-size: 12px; + line-height: 20px; + border: 1px solid #ddd; + padding: 0 30px 0 10px; + text-align: left; + background: #fff; + cursor: pointer; } + .tui-datepicker-dropdown .tui-ico-caret { + position: absolute; + top: 12px; + right: 10px; } + .tui-datepicker-dropdown .tui-dropdown-menu { + display: none; + position: absolute; + top: 27px; + left: 0; + right: 0; + width: 100%; + padding: 5px 0; + margin: 0; + overflow-y: auto; + min-width: 0; + max-height: 198px; + font-size: 12px; + border: 1px solid #ddd; + border-top-color: #fff; + z-index: 10; + -webkit-box-sizing: border-box; + box-sizing: border-box; + -webkit-box-shadow: none; + box-shadow: none; + border-radius: 0; } + .tui-datepicker-dropdown .tui-menu-item { + position: relative; + overflow: hidden; + position: relative; + height: 28px; + line-height: 28px; + background-color: #fff; + z-index: 10; } + .tui-datepicker-dropdown .tui-menu-item .tui-ico-check { + display: none; + overflow: hidden; + position: absolute; + width: 10px; + height: 8px; + top: 10px; + left: 10px; + background-position: -31px -54px; + z-index: 10; + content: 'aaa'; } + .tui-datepicker-dropdown .tui-menu-item-btn { + position: relative; + width: 100%; + font-size: 12px; + font-weight: normal; + line-height: 28px; + padding: 0 10px 0 30px; + text-align: left; + color: #333; + background-color: #fff; + border: 0; + cursor: pointer; + z-index: 9; } + .tui-datepicker-dropdown .tui-menu-item-btn:hover { + color: #333; + background-color: #f4f4f4; } + .tui-datepicker-dropdown .tui-menu-item.tui-is-selected .tui-ico-check { + display: block; } + .tui-datepicker-dropdown .tui-menu-item.tui-is-selected .tui-menu-item-btn { + font-weight: bold; } + +.tui-datepicker-selector { + padding: 10px; + font-size: 0; + text-align: center; + border-bottom: 1px solid #eee; } + .tui-datepicker-selector button { + -webkit-appearance: none; + -moz-appearance: none; + appearance: none; } + +.tui-ico-date { + overflow: hidden; + display: inline-block; + width: 1px; + height: 1px; + line-height: 300px; + background: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAC8AAAA+CAYAAAC7rUKSAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAA2ZpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuMy1jMDExIDY2LjE0NTY2MSwgMjAxMi8wMi8wNi0xNDo1NjoyNyAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wTU09Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9tbS8iIHhtbG5zOnN0UmVmPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvc1R5cGUvUmVzb3VyY2VSZWYjIiB4bWxuczp4bXA9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC8iIHhtcE1NOk9yaWdpbmFsRG9jdW1lbnRJRD0ieG1wLmRpZDpERjdGMzkzODVEQkRFNjExQkVCMjlDOUFDNzZDM0E5NCIgeG1wTU06RG9jdW1lbnRJRD0ieG1wLmRpZDo1ODVCRTc4NkM2QkQxMUU2OTgzMzhGQjZFMjcyMTQ1RSIgeG1wTU06SW5zdGFuY2VJRD0ieG1wLmlpZDo1ODVCRTc4NUM2QkQxMUU2OTgzMzhGQjZFMjcyMTQ1RSIgeG1wOkNyZWF0b3JUb29sPSJBZG9iZSBQaG90b3Nob3AgQ1M2IChXaW5kb3dzKSI+IDx4bXBNTTpEZXJpdmVkRnJvbSBzdFJlZjppbnN0YW5jZUlEPSJ4bXAuaWlkOjFERENDMTc0QjlDNkU2MTE5OTc0QjIwOTY3QkQzNjZBIiBzdFJlZjpkb2N1bWVudElEPSJ4bXAuZGlkOkRGN0YzOTM4NURCREU2MTFCRUIyOUM5QUM3NkMzQTk0Ii8+IDwvcmRmOkRlc2NyaXB0aW9uPiA8L3JkZjpSREY+IDwveDp4bXBtZXRhPiA8P3hwYWNrZXQgZW5kPSJyIj8+ClaYfwAACcFJREFUeNrEWgtwVOUVPnt37+4mmyUhkSQLGEigQ4uRQiEITe0U0Djio61ArNqpQguWdtrKtNqKM9W2Y6sOHaWdUaEvmVZtQaYjg8ZHU6zFApX4GAGdiYaHQmISks1r2Ueyt+fcPXdz9+69d/+72dQz883e+z92v/+/5z//95+7rsWLF4PB1jBu5vtvIn6IWIXoNDbetGkTfSjgzFxm/RRFgXA4DNFoFOLxuFrm9XrB5/PB1KlTweVyZXyJx4T4nxDNurI/IhYhXuUBnIFJsOHhYejp6YHy8nIoLS1VSZPRIBKJBJw8eRIqKyuhpKTElPwNTPxGxAv6CUF8D/Eg4l88gI5CEh8aGoKRkRGora3NqvN4UhRpQJ2dnerTCQaDapmkI76LibeYfD8N4C7En/kJzDNzBUFkEY9EIlBdXZ1zkKFQSB0kPSWN/GYm3mxBXG8/5QEcRMye6Iwnk0no7e2Fqqoq4T40yO7ubvUJEPnLERcQ5wT6Xoz4KmIP4nSOtopuQSpmi5oWJy1Ep0bror+/XyVPUeVeRCuiwaZPLfv8c4jv5hFhsiwWi6UXphOjPtRXW7CPISKIFxHXs1vojXz8ZXaZe0TDocV12iiS5Eue+kq6sl3s//sRV+jK5yNeQewQIB7mJ1Kqu7Z0m4maMc7/jf3/NsQ/NBdD/Arxm0L/uDaDWjgUNe2JmfXax9DsoIkbWVmZxbWp29DOSUSKi4sdk6e+Ur6zdvToURUm0SUX0kaRpq+vz/FvUx/qa0V+A+JNxHQHi9MJUp1Qq9CW39XVJUycdlnqQ30lC+K0m/6Vw+d0mARbsmSJ+klaJRAICA2A2lB7Td94LIiv5E2rF/FP3X2W7dy5My9Vqb8hrUIz2dHRARUVFSDLcoYwI5Cr2AkzI3GyP/Cn7QAKYdqM0s45MDCQIYn9fr8q2qwksRlx+D8MICsKOZELHiZ+Zw5iIgNwCf5mwTYrD2ubVQIzqg2AjkD3FeLHr32s0zh4Ogx9R3JBY1mxW3X6cGQsnlTgNbx8FLFXP3iPQQqA4ACczLDLcG0qFBFPz50mN61ZGICGWX7wy6mm0YTiff10dMXet0ZWvN+ToCd/E6JbJV9XVwefsFUgXkPS825dNgUkw/BoEJfPLYLGOUWw6/DgShwEHYYaEecl1jAhwR/awPLZycYFVqcoth3XXRqYt355JvGhWFKFZlRHbagtq2DVbZ7WLcTOHMTv4vXh1FWs3GZZZdC9Zv3yYLrgRFccdhwchA96Eur9nGky3P6FKTC/OhX3N2DbI6ei67qHxpZJ7MfbeADTBYifLaDL3HZtfQC87tSYiPDWZ/vSxM3KZGz7lQUBulwv6RbiNgs54IS4latYuc0VS2f70jdPHBmC0WR2JKWyXVin2aKL1T5f8phEklZd6HRCPJ/4XVM9ZZzCic64ZcPjurqqoFs9T3ssQmEr53A25NpVOeOWMattbW2i5MeSSUXWViq5RGzUfA5kt8u4HUqSRSwnF7plsvUMWvvp/tFxpVnjs1ahuroPU33aJZvN6LMOiNudUbUzbdZhhvJEh09G02XfuCwIZUXZlKiM6jTjPi2efPImeeyyYT4WDhjqf7//WGQLRg856JcAwyY8svYi+MvrQ/D2R3G188KZXvh6QxAuKnGn4n80CfveiVDo+Z3e5ymQfpu333ouO8b7wOMkrZ2oQ5MnETa227851I76Zvu21vCP7l1drro+kbxjRZl5hg2/8detYRiJJbfr3WYG4gjrnK2844b4+kqum5HHjIuU/6TtTOy5nz/fB4PRpOUXUh21OYptqY+2w3o5V/MM4n5DnwOMezhTdhkluvLR6XYRB/FlJPXAxqd6frD6kmJ52Ww/VE1JucnHg2Nw+FQUnj8eSfCM3819VPK3Iz4yIa63+5k4yeHf5pAF+RiRuRPJPb7njeFvIZrwfibXEbeXaH3Qhmum57eakDESeRjxSwvyZpFEyNDv9bcf8MzeLXoY+Rz9nkiqBlJvSCbqJpOW7rNzBbpPGNMXJu+00mkNp08GxZfyzrk4dA2Ogk9OxZJYIgkkIS6d7iWF6TKSf4N+jxem3Uw2cOiEHFJgJa+jG3OUpQ1PS8pL70YgitJg0UwfXFNfnJYDiTEFTp0fhbYPY4ADU66aXwxFciqNIHEc3yLwlLZwWztbyefMJ3KUZRB/5s1hNb6vW1QCn6qUM3QMXVMZ1dEmthfbUh+NPKWua3Kkr6luFre1slUcbikAtNiUZbjmgfYLUFMuw+fr/KBPy9BTiOpEGtVRG2r7SvsFta+H4/Y1HOuXIh5B/Jf7LOUZp8GttonxRHIPi7kWm7LM9B3GcDwRwS0NReO5SPT3V9+PQs+QGsphGs72F+f6IcTSubHOh/JhWO2r7bBnOY7Taeoh2hsYD7E8Xmqj5682IXl1LuJk730chwW4ED0siYnw39+KpImblbmx7cIZXni3K/PNCGmX7bwwSxgNXBYXSZsLlmVI29kVcvr+P6gWk4piomkUOKRTn+Q6Z8Oj4KHc4ASthWeYZrqZsxFmZVlGCrFUJ4E7B8Ysf+Scri7od8FwLJkx86Rxvo84RN/LOMRlXoEB0KLcrUtimZVlGHmLfqbdNq86jHUKjL8BL4SqfEFH9kqbsrSVFrmhb2RcSc4qt94z9XX9kaTaVzKoyut5sxpm0PV1XEeq0ic4gM05ytKEOs6Pb9rLa/1QLGfvj1RGdZp19CbUvpIDVXmGVWUuCUBkbxAog/khLxxHOYCbDvuyBM2LS+Az1TIEfRKUIOiayqiONzU4hn0uCXknR1WKGp5NXZ+u9iovvxcBSj7RRkSEV80zfztIy4PaYh+1r1QAVUkRpUmgzFSUNdb51Rce+4+NpJ+AhYxQ21Bb6gO6BSuSEchSldohmjVPU44y6zx9fcBVHnDDk3jwpnhOp6cIkiXQNZVRHbWhtgVTlZD6v8LNTPYmPvWYldkazWZ9yKtQopW0yzBniMmNanBxrkVhhntCliTWVOWBCahKxwNobm52fKjZvXt35j5RQFX5IpPUu4tZWcFM0qnKtYhnESsQAQZd0/8Q1uVQlca14hcoE8lA0KAP2pGfqKrUjGb2KXaVfTZlokZu+jW7lKPHRFVuz+MJNpn4dpOTBWuwBbynnOUsnjl5emWeTypDt8NOhPhaJkd/PNX+s0bu9STLllsRfXZuI/T3EhvbaEJyo+CMz+ETF/13TXst+QDnSh9ml7VNfbgsiIrmYtYJlpkZ/dGU0tQ/RvwbUv+oIgn+tolksVywZZ9gEomSpvdB6l0Y6aYoL/CckU1bsAM8gLAocScpPQH7GR9+foG4A3FCpNP/BBgAdZ3B2yZg0vUAAAAASUVORK5CYII=) no-repeat; + width: 12px; + height: 12px; + background-position: -17px 0; } + +.tui-ico-time { + overflow: hidden; + display: inline-block; + width: 1px; + height: 1px; + line-height: 300px; + background: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAC8AAAA+CAYAAAC7rUKSAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAA2ZpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuMy1jMDExIDY2LjE0NTY2MSwgMjAxMi8wMi8wNi0xNDo1NjoyNyAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wTU09Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9tbS8iIHhtbG5zOnN0UmVmPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvc1R5cGUvUmVzb3VyY2VSZWYjIiB4bWxuczp4bXA9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC8iIHhtcE1NOk9yaWdpbmFsRG9jdW1lbnRJRD0ieG1wLmRpZDpERjdGMzkzODVEQkRFNjExQkVCMjlDOUFDNzZDM0E5NCIgeG1wTU06RG9jdW1lbnRJRD0ieG1wLmRpZDo1ODVCRTc4NkM2QkQxMUU2OTgzMzhGQjZFMjcyMTQ1RSIgeG1wTU06SW5zdGFuY2VJRD0ieG1wLmlpZDo1ODVCRTc4NUM2QkQxMUU2OTgzMzhGQjZFMjcyMTQ1RSIgeG1wOkNyZWF0b3JUb29sPSJBZG9iZSBQaG90b3Nob3AgQ1M2IChXaW5kb3dzKSI+IDx4bXBNTTpEZXJpdmVkRnJvbSBzdFJlZjppbnN0YW5jZUlEPSJ4bXAuaWlkOjFERENDMTc0QjlDNkU2MTE5OTc0QjIwOTY3QkQzNjZBIiBzdFJlZjpkb2N1bWVudElEPSJ4bXAuZGlkOkRGN0YzOTM4NURCREU2MTFCRUIyOUM5QUM3NkMzQTk0Ii8+IDwvcmRmOkRlc2NyaXB0aW9uPiA8L3JkZjpSREY+IDwveDp4bXBtZXRhPiA8P3hwYWNrZXQgZW5kPSJyIj8+ClaYfwAACcFJREFUeNrEWgtwVOUVPnt37+4mmyUhkSQLGEigQ4uRQiEITe0U0Djio61ArNqpQguWdtrKtNqKM9W2Y6sOHaWdUaEvmVZtQaYjg8ZHU6zFApX4GAGdiYaHQmISks1r2Ueyt+fcPXdz9+69d/+72dQz883e+z92v/+/5z//95+7rsWLF4PB1jBu5vtvIn6IWIXoNDbetGkTfSjgzFxm/RRFgXA4DNFoFOLxuFrm9XrB5/PB1KlTweVyZXyJx4T4nxDNurI/IhYhXuUBnIFJsOHhYejp6YHy8nIoLS1VSZPRIBKJBJw8eRIqKyuhpKTElPwNTPxGxAv6CUF8D/Eg4l88gI5CEh8aGoKRkRGora3NqvN4UhRpQJ2dnerTCQaDapmkI76LibeYfD8N4C7En/kJzDNzBUFkEY9EIlBdXZ1zkKFQSB0kPSWN/GYm3mxBXG8/5QEcRMye6Iwnk0no7e2Fqqoq4T40yO7ubvUJEPnLERcQ5wT6Xoz4KmIP4nSOtopuQSpmi5oWJy1Ep0bror+/XyVPUeVeRCuiwaZPLfv8c4jv5hFhsiwWi6UXphOjPtRXW7CPISKIFxHXs1vojXz8ZXaZe0TDocV12iiS5Eue+kq6sl3s//sRV+jK5yNeQewQIB7mJ1Kqu7Z0m4maMc7/jf3/NsQ/NBdD/Arxm0L/uDaDWjgUNe2JmfXax9DsoIkbWVmZxbWp29DOSUSKi4sdk6e+Ur6zdvToURUm0SUX0kaRpq+vz/FvUx/qa0V+A+JNxHQHi9MJUp1Qq9CW39XVJUycdlnqQ30lC+K0m/6Vw+d0mARbsmSJ+klaJRAICA2A2lB7Td94LIiv5E2rF/FP3X2W7dy5My9Vqb8hrUIz2dHRARUVFSDLcoYwI5Cr2AkzI3GyP/Cn7QAKYdqM0s45MDCQIYn9fr8q2qwksRlx+D8MICsKOZELHiZ+Zw5iIgNwCf5mwTYrD2ubVQIzqg2AjkD3FeLHr32s0zh4Ogx9R3JBY1mxW3X6cGQsnlTgNbx8FLFXP3iPQQqA4ACczLDLcG0qFBFPz50mN61ZGICGWX7wy6mm0YTiff10dMXet0ZWvN+ToCd/E6JbJV9XVwefsFUgXkPS825dNgUkw/BoEJfPLYLGOUWw6/DgShwEHYYaEecl1jAhwR/awPLZycYFVqcoth3XXRqYt355JvGhWFKFZlRHbagtq2DVbZ7WLcTOHMTv4vXh1FWs3GZZZdC9Zv3yYLrgRFccdhwchA96Eur9nGky3P6FKTC/OhX3N2DbI6ei67qHxpZJ7MfbeADTBYifLaDL3HZtfQC87tSYiPDWZ/vSxM3KZGz7lQUBulwv6RbiNgs54IS4latYuc0VS2f70jdPHBmC0WR2JKWyXVin2aKL1T5f8phEklZd6HRCPJ/4XVM9ZZzCic64ZcPjurqqoFs9T3ssQmEr53A25NpVOeOWMattbW2i5MeSSUXWViq5RGzUfA5kt8u4HUqSRSwnF7plsvUMWvvp/tFxpVnjs1ahuroPU33aJZvN6LMOiNudUbUzbdZhhvJEh09G02XfuCwIZUXZlKiM6jTjPi2efPImeeyyYT4WDhjqf7//WGQLRg856JcAwyY8svYi+MvrQ/D2R3G188KZXvh6QxAuKnGn4n80CfveiVDo+Z3e5ymQfpu333ouO8b7wOMkrZ2oQ5MnETa227851I76Zvu21vCP7l1drro+kbxjRZl5hg2/8detYRiJJbfr3WYG4gjrnK2844b4+kqum5HHjIuU/6TtTOy5nz/fB4PRpOUXUh21OYptqY+2w3o5V/MM4n5DnwOMezhTdhkluvLR6XYRB/FlJPXAxqd6frD6kmJ52Ww/VE1JucnHg2Nw+FQUnj8eSfCM3819VPK3Iz4yIa63+5k4yeHf5pAF+RiRuRPJPb7njeFvIZrwfibXEbeXaH3Qhmum57eakDESeRjxSwvyZpFEyNDv9bcf8MzeLXoY+Rz9nkiqBlJvSCbqJpOW7rNzBbpPGNMXJu+00mkNp08GxZfyzrk4dA2Ogk9OxZJYIgkkIS6d7iWF6TKSf4N+jxem3Uw2cOiEHFJgJa+jG3OUpQ1PS8pL70YgitJg0UwfXFNfnJYDiTEFTp0fhbYPY4ADU66aXwxFciqNIHEc3yLwlLZwWztbyefMJ3KUZRB/5s1hNb6vW1QCn6qUM3QMXVMZ1dEmthfbUh+NPKWua3Kkr6luFre1slUcbikAtNiUZbjmgfYLUFMuw+fr/KBPy9BTiOpEGtVRG2r7SvsFta+H4/Y1HOuXIh5B/Jf7LOUZp8GttonxRHIPi7kWm7LM9B3GcDwRwS0NReO5SPT3V9+PQs+QGsphGs72F+f6IcTSubHOh/JhWO2r7bBnOY7Taeoh2hsYD7E8Xmqj5682IXl1LuJk730chwW4ED0siYnw39+KpImblbmx7cIZXni3K/PNCGmX7bwwSxgNXBYXSZsLlmVI29kVcvr+P6gWk4piomkUOKRTn+Q6Z8Oj4KHc4ASthWeYZrqZsxFmZVlGCrFUJ4E7B8Ysf+Scri7od8FwLJkx86Rxvo84RN/LOMRlXoEB0KLcrUtimZVlGHmLfqbdNq86jHUKjL8BL4SqfEFH9kqbsrSVFrmhb2RcSc4qt94z9XX9kaTaVzKoyut5sxpm0PV1XEeq0ic4gM05ytKEOs6Pb9rLa/1QLGfvj1RGdZp19CbUvpIDVXmGVWUuCUBkbxAog/khLxxHOYCbDvuyBM2LS+Az1TIEfRKUIOiayqiONzU4hn0uCXknR1WKGp5NXZ+u9iovvxcBSj7RRkSEV80zfztIy4PaYh+1r1QAVUkRpUmgzFSUNdb51Rce+4+NpJ+AhYxQ21Bb6gO6BSuSEchSldohmjVPU44y6zx9fcBVHnDDk3jwpnhOp6cIkiXQNZVRHbWhtgVTlZD6v8LNTPYmPvWYldkazWZ9yKtQopW0yzBniMmNanBxrkVhhntCliTWVOWBCahKxwNobm52fKjZvXt35j5RQFX5IpPUu4tZWcFM0qnKtYhnESsQAQZd0/8Q1uVQlca14hcoE8lA0KAP2pGfqKrUjGb2KXaVfTZlokZu+jW7lKPHRFVuz+MJNpn4dpOTBWuwBbynnOUsnjl5emWeTypDt8NOhPhaJkd/PNX+s0bu9STLllsRfXZuI/T3EhvbaEJyo+CMz+ETF/13TXst+QDnSh9ml7VNfbgsiIrmYtYJlpkZ/dGU0tQ/RvwbUv+oIgn+tolksVywZZ9gEomSpvdB6l0Y6aYoL/CckU1bsAM8gLAocScpPQH7GR9+foG4A3FCpNP/BBgAdZ3B2yZg0vUAAAAASUVORK5CYII=) no-repeat; + width: 12px; + height: 12px; + background-position: 0 -30px; } + +.tui-ico-caret { + overflow: hidden; + display: inline-block; + width: 1px; + height: 1px; + line-height: 300px; + background: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAC8AAAA+CAYAAAC7rUKSAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAA2ZpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuMy1jMDExIDY2LjE0NTY2MSwgMjAxMi8wMi8wNi0xNDo1NjoyNyAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wTU09Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9tbS8iIHhtbG5zOnN0UmVmPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvc1R5cGUvUmVzb3VyY2VSZWYjIiB4bWxuczp4bXA9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC8iIHhtcE1NOk9yaWdpbmFsRG9jdW1lbnRJRD0ieG1wLmRpZDpERjdGMzkzODVEQkRFNjExQkVCMjlDOUFDNzZDM0E5NCIgeG1wTU06RG9jdW1lbnRJRD0ieG1wLmRpZDo1ODVCRTc4NkM2QkQxMUU2OTgzMzhGQjZFMjcyMTQ1RSIgeG1wTU06SW5zdGFuY2VJRD0ieG1wLmlpZDo1ODVCRTc4NUM2QkQxMUU2OTgzMzhGQjZFMjcyMTQ1RSIgeG1wOkNyZWF0b3JUb29sPSJBZG9iZSBQaG90b3Nob3AgQ1M2IChXaW5kb3dzKSI+IDx4bXBNTTpEZXJpdmVkRnJvbSBzdFJlZjppbnN0YW5jZUlEPSJ4bXAuaWlkOjFERENDMTc0QjlDNkU2MTE5OTc0QjIwOTY3QkQzNjZBIiBzdFJlZjpkb2N1bWVudElEPSJ4bXAuZGlkOkRGN0YzOTM4NURCREU2MTFCRUIyOUM5QUM3NkMzQTk0Ii8+IDwvcmRmOkRlc2NyaXB0aW9uPiA8L3JkZjpSREY+IDwveDp4bXBtZXRhPiA8P3hwYWNrZXQgZW5kPSJyIj8+ClaYfwAACcFJREFUeNrEWgtwVOUVPnt37+4mmyUhkSQLGEigQ4uRQiEITe0U0Djio61ArNqpQguWdtrKtNqKM9W2Y6sOHaWdUaEvmVZtQaYjg8ZHU6zFApX4GAGdiYaHQmISks1r2Ueyt+fcPXdz9+69d/+72dQz883e+z92v/+/5z//95+7rsWLF4PB1jBu5vtvIn6IWIXoNDbetGkTfSjgzFxm/RRFgXA4DNFoFOLxuFrm9XrB5/PB1KlTweVyZXyJx4T4nxDNurI/IhYhXuUBnIFJsOHhYejp6YHy8nIoLS1VSZPRIBKJBJw8eRIqKyuhpKTElPwNTPxGxAv6CUF8D/Eg4l88gI5CEh8aGoKRkRGora3NqvN4UhRpQJ2dnerTCQaDapmkI76LibeYfD8N4C7En/kJzDNzBUFkEY9EIlBdXZ1zkKFQSB0kPSWN/GYm3mxBXG8/5QEcRMye6Iwnk0no7e2Fqqoq4T40yO7ubvUJEPnLERcQ5wT6Xoz4KmIP4nSOtopuQSpmi5oWJy1Ep0bror+/XyVPUeVeRCuiwaZPLfv8c4jv5hFhsiwWi6UXphOjPtRXW7CPISKIFxHXs1vojXz8ZXaZe0TDocV12iiS5Eue+kq6sl3s//sRV+jK5yNeQewQIB7mJ1Kqu7Z0m4maMc7/jf3/NsQ/NBdD/Arxm0L/uDaDWjgUNe2JmfXax9DsoIkbWVmZxbWp29DOSUSKi4sdk6e+Ur6zdvToURUm0SUX0kaRpq+vz/FvUx/qa0V+A+JNxHQHi9MJUp1Qq9CW39XVJUycdlnqQ30lC+K0m/6Vw+d0mARbsmSJ+klaJRAICA2A2lB7Td94LIiv5E2rF/FP3X2W7dy5My9Vqb8hrUIz2dHRARUVFSDLcoYwI5Cr2AkzI3GyP/Cn7QAKYdqM0s45MDCQIYn9fr8q2qwksRlx+D8MICsKOZELHiZ+Zw5iIgNwCf5mwTYrD2ubVQIzqg2AjkD3FeLHr32s0zh4Ogx9R3JBY1mxW3X6cGQsnlTgNbx8FLFXP3iPQQqA4ACczLDLcG0qFBFPz50mN61ZGICGWX7wy6mm0YTiff10dMXet0ZWvN+ToCd/E6JbJV9XVwefsFUgXkPS825dNgUkw/BoEJfPLYLGOUWw6/DgShwEHYYaEecl1jAhwR/awPLZycYFVqcoth3XXRqYt355JvGhWFKFZlRHbagtq2DVbZ7WLcTOHMTv4vXh1FWs3GZZZdC9Zv3yYLrgRFccdhwchA96Eur9nGky3P6FKTC/OhX3N2DbI6ei67qHxpZJ7MfbeADTBYifLaDL3HZtfQC87tSYiPDWZ/vSxM3KZGz7lQUBulwv6RbiNgs54IS4latYuc0VS2f70jdPHBmC0WR2JKWyXVin2aKL1T5f8phEklZd6HRCPJ/4XVM9ZZzCic64ZcPjurqqoFs9T3ssQmEr53A25NpVOeOWMattbW2i5MeSSUXWViq5RGzUfA5kt8u4HUqSRSwnF7plsvUMWvvp/tFxpVnjs1ahuroPU33aJZvN6LMOiNudUbUzbdZhhvJEh09G02XfuCwIZUXZlKiM6jTjPi2efPImeeyyYT4WDhjqf7//WGQLRg856JcAwyY8svYi+MvrQ/D2R3G188KZXvh6QxAuKnGn4n80CfveiVDo+Z3e5ymQfpu333ouO8b7wOMkrZ2oQ5MnETa227851I76Zvu21vCP7l1drro+kbxjRZl5hg2/8detYRiJJbfr3WYG4gjrnK2844b4+kqum5HHjIuU/6TtTOy5nz/fB4PRpOUXUh21OYptqY+2w3o5V/MM4n5DnwOMezhTdhkluvLR6XYRB/FlJPXAxqd6frD6kmJ52Ww/VE1JucnHg2Nw+FQUnj8eSfCM3819VPK3Iz4yIa63+5k4yeHf5pAF+RiRuRPJPb7njeFvIZrwfibXEbeXaH3Qhmum57eakDESeRjxSwvyZpFEyNDv9bcf8MzeLXoY+Rz9nkiqBlJvSCbqJpOW7rNzBbpPGNMXJu+00mkNp08GxZfyzrk4dA2Ogk9OxZJYIgkkIS6d7iWF6TKSf4N+jxem3Uw2cOiEHFJgJa+jG3OUpQ1PS8pL70YgitJg0UwfXFNfnJYDiTEFTp0fhbYPY4ADU66aXwxFciqNIHEc3yLwlLZwWztbyefMJ3KUZRB/5s1hNb6vW1QCn6qUM3QMXVMZ1dEmthfbUh+NPKWua3Kkr6luFre1slUcbikAtNiUZbjmgfYLUFMuw+fr/KBPy9BTiOpEGtVRG2r7SvsFta+H4/Y1HOuXIh5B/Jf7LOUZp8GttonxRHIPi7kWm7LM9B3GcDwRwS0NReO5SPT3V9+PQs+QGsphGs72F+f6IcTSubHOh/JhWO2r7bBnOY7Taeoh2hsYD7E8Xmqj5682IXl1LuJk730chwW4ED0siYnw39+KpImblbmx7cIZXni3K/PNCGmX7bwwSxgNXBYXSZsLlmVI29kVcvr+P6gWk4piomkUOKRTn+Q6Z8Oj4KHc4ASthWeYZrqZsxFmZVlGCrFUJ4E7B8Ysf+Scri7od8FwLJkx86Rxvo84RN/LOMRlXoEB0KLcrUtimZVlGHmLfqbdNq86jHUKjL8BL4SqfEFH9kqbsrSVFrmhb2RcSc4qt94z9XX9kaTaVzKoyut5sxpm0PV1XEeq0ic4gM05ytKEOs6Pb9rLa/1QLGfvj1RGdZp19CbUvpIDVXmGVWUuCUBkbxAog/khLxxHOYCbDvuyBM2LS+Az1TIEfRKUIOiayqiONzU4hn0uCXknR1WKGp5NXZ+u9iovvxcBSj7RRkSEV80zfztIy4PaYh+1r1QAVUkRpUmgzFSUNdb51Rce+4+NpJ+AhYxQ21Bb6gO6BSuSEchSldohmjVPU44y6zx9fcBVHnDDk3jwpnhOp6cIkiXQNZVRHbWhtgVTlZD6v8LNTPYmPvWYldkazWZ9yKtQopW0yzBniMmNanBxrkVhhntCliTWVOWBCahKxwNobm52fKjZvXt35j5RQFX5IpPUu4tZWcFM0qnKtYhnESsQAQZd0/8Q1uVQlca14hcoE8lA0KAP2pGfqKrUjGb2KXaVfTZlokZu+jW7lKPHRFVuz+MJNpn4dpOTBWuwBbynnOUsnjl5emWeTypDt8NOhPhaJkd/PNX+s0bu9STLllsRfXZuI/T3EhvbaEJyo+CMz+ETF/13TXst+QDnSh9ml7VNfbgsiIrmYtYJlpkZ/dGU0tQ/RvwbUv+oIgn+tolksVywZZ9gEomSpvdB6l0Y6aYoL/CckU1bsAM8gLAocScpPQH7GR9+foG4A3FCpNP/BBgAdZ3B2yZg0vUAAAAASUVORK5CYII=) no-repeat; + width: 7px; + height: 4px; + background-position: 0 -58px; } + +.tui-calendar-month { + width: 202px; } + .tui-calendar-month .tui-calendar-body { + width: 202px; + margin: 0 auto; } + +.tui-calendar-year { + width: 202px; } + .tui-calendar-year .tui-calendar-body { + width: 202px; + margin: 0 auto; } + +.tui-calendar-btn { + overflow: hidden; + position: absolute; + top: 0; + width: 32px; + height: 50px; + line-height: 400px; + z-index: 10; + cursor: pointer; + border: none; + background-color: #fff; } + +.tui-calendar.tui-calendar-month .tui-calendar-btn-prev-year { + width: 50px; } + .tui-calendar.tui-calendar-month .tui-calendar-btn-prev-year:after { + width: 6px; + height: 11px; + left: 50%; + margin-left: -3px; + background-position: 0 0; } + +.tui-calendar.tui-calendar-month .tui-calendar-btn-next-year { + width: 50px; } + .tui-calendar.tui-calendar-month .tui-calendar-btn-next-year:after { + width: 6px; + height: 11px; + right: 50%; + margin-right: -3px; + background-position: -8px 0; } + +.tui-calendar.tui-calendar-year .tui-calendar-btn-prev-year { + width: 50px; } + .tui-calendar.tui-calendar-year .tui-calendar-btn-prev-year:after { + width: 6px; + height: 11px; + left: 50%; + margin-left: -3px; + background-position: 0 0; } + +.tui-calendar.tui-calendar-year .tui-calendar-btn-next-year { + width: 50px; } + .tui-calendar.tui-calendar-year .tui-calendar-btn-next-year:after { + width: 6px; + height: 11px; + right: 50%; + margin-right: -3px; + background-position: -8px 0; } + +.tui-datepicker { + border: 1px solid #aaa; + background-color: white; + position: absolute; } + .tui-datepicker * { + -webkit-box-sizing: border-box; + box-sizing: border-box; } + .tui-datepicker .tui-calendar { + border: 0; } + .tui-datepicker .tui-calendar-title { + cursor: pointer; } + .tui-datepicker .tui-calendar-title.tui-calendar-title-year-to-year { + cursor: auto; } + .tui-datepicker .tui-is-blocked { + cursor: default; + color: #ddd; } + .tui-datepicker .tui-is-valid { + color: #999; } + .tui-datepicker .tui-is-selectable:hover { + background-color: #edf4fc; + cursor: pointer; } + .tui-datepicker .tui-is-selectable.tui-is-selected { + background-color: #4b96e6; + color: #fff; } + +.tui-datepicker-type-date { + width: 274px; } + +.tui-datepicker-body .tui-calendar-month { + width: auto; } + +.tui-datepicker-body .tui-calendar-year { + width: auto; } + +.tui-datepicker-body .tui-timepicker { + width: 274px; + position: static; + padding: 20px 46px 20px 47px; + border: 0; } + +.tui-datepicker-footer .tui-timepicker { + width: 274px; + position: static; + padding: 20px 46px 20px 47px; + border: 0; + border-top: 1px solid #eee; } + +.tui-datepicker-selector-button { + width: 50%; + height: 26px; + font-size: 12px; + line-height: 23px; + border: 1px solid #ddd; + background-color: #fff; + color: #777; + outline: none; + cursor: pointer; } + .tui-datepicker-selector-button [class^=tui-ico-] { + margin: 5px 9px 0 0; + vertical-align: top; } + +.tui-datepicker-selector-button.tui-is-checked { + background-color: #eee; + color: #333; } + .tui-datepicker-selector-button.tui-is-checked .tui-ico-date { + background-position: -17px -14px; } + .tui-datepicker-selector-button.tui-is-checked .tui-ico-time { + background-position: 0 -44px; } + +.tui-datepicker-selector-button + .tui-datepicker-selector-button { + margin-left: -1px; } + +.tui-datepicker-input.tui-has-focus { + border-color: #aaa; } + .tui-datepicker-input.tui-has-focus .tui-ico-date { + background-position: -17px -14px; } + +.tui-datepicker-area { + position: relative; } + +.tui-datepicker-input { + position: relative; + display: inline-block; + width: 120px; + height: 28px; + vertical-align: top; + border: 1px solid #ddd; } + .tui-datepicker-input * { + -webkit-box-sizing: border-box; + box-sizing: border-box; } + .tui-datepicker-input > input { + width: 100%; + height: 100%; + padding: 6px 27px 6px 10px; + font-size: 12px; + line-height: 14px; + vertical-align: top; + border: 0; + color: #333; } + .tui-datepicker-input > .tui-ico-date { + position: absolute; + top: 50%; + right: 8px; + margin: -6px 0 0 0; } + +.tui-datetime-input { + width: 170px; } + +.tui-datepicker.tui-rangepicker .tui-is-selectable.tui-is-selected { + background-color: #4b96e6; + color: #fff; } + +.tui-datepicker.tui-rangepicker .tui-is-selected-range { + background-color: #edf4fc; } + +.tui-datepicker-dropdown.tui-is-open .tui-dropdown-button { + display: block; + display: block; + border-color: #aaa; } + +.tui-datepicker-dropdown.tui-is-open .tui-dropdown-menu { + display: block; + border-color: #aaa; } + +.tui-datepicker-dropdown.tui-is-open .tui-ico-caret { + background-position: -21px -28px; } + +.tui-menu-item-btn:focus { + color: #333; + background-color: #f4f4f4; } + +.tui-menu-item-btn:active { + color: #333; + background-color: #f4f4f4; } + +.tui-dropdown-area { + font-size: 0; } + .tui-dropdown-area .tui-datepicker-dropdown + .tui-datepicker-dropdown { + margin-left: 5px; } + +.tui-hidden { + display: none; } + +/*! + * TOAST UI Calendar + * @version 1.13.1 | Tue Jul 06 2021 + * @author NHN FE Development Lab + * @license MIT + */ +.tui-full-calendar-layout { + height: 100%; + position: relative; + -webkit-box-sizing: border-box; + box-sizing: border-box; } + .tui-full-calendar-layout * { + -webkit-box-sizing: border-box; + box-sizing: border-box; } + +.tui-full-calendar-dragging { + cursor: move; } + +.tui-full-calendar-resizing { + cursor: row-resize; } + +.tui-full-calendar-resizing-x { + cursor: col-resize; } + +.tui-full-calendar-hidden { + display: none !important; } + +.tui-full-calendar-invisible span { + visibility: hidden; } + +.tui-full-calendar-clear:after { + content: ''; + display: block; + clear: both; } + +.tui-full-calendar-scroll-y { + overflow-y: scroll; } + +.tui-full-calendar-dot { + display: inline-block; + position: relative; + top: -1px; + content: ''; + width: 7px; + height: 7px; + border-radius: 50%; } + +.tui-full-calendar-holiday { + color: #f00; } + +.tui-full-calendar-today { + background: rgba(218, 229, 249, 0.3); } + +.handle-x { + background-position: center center; + background-repeat: no-repeat; + background-image: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAgAAAAECAMAAACEE47CAAAACVBMVEX///////////+OSuX+AAAAA3RSTlMrQJG5H4EIAAAAEUlEQVR4AWNgYoRABhjEFAEAArQAIcHQcPsAAAAASUVORK5CYII=); } + +.handle-y { + background-position: center center; + background-repeat: no-repeat; + background-image: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAQAAAAICAMAAADp7a43AAAACVBMVEX///////////+OSuX+AAAAA3RSTlMrQJG5H4EIAAAAEUlEQVR4AWNgYmRiZABB/CwAAtgAIUTUNkMAAAAASUVORK5CYII=); } + +.tui-full-calendar-month-week-item { + position: relative; } + .tui-full-calendar-month-week-item .tui-full-calendar-weekday-grid { + overflow-y: hidden; } + .tui-full-calendar-month-week-item .tui-full-calendar-weekday-schedules { + overflow-y: visible; + height: 0; } + .tui-full-calendar-month-week-item .tui-full-calendar-weekday-schedule { + margin: 0 10px; } + .tui-full-calendar-month-week-item .tui-full-calendar-today { + background: none; } + .tui-full-calendar-month-week-item .tui-full-calendar-today .tui-full-calendar-weekday-grid-date-decorator { + display: inline-block; + width: 27px; + height: 27px; + line-height: 27px; + text-align: center; + background: #135de6; + border-radius: 50%; + color: #fff; + font-weight: bold; + margin-left: 2px; } + .tui-full-calendar-month-week-item > div { + height: 100%; } + +.tui-full-calendar-weekday-container { + height: 100%; + min-height: inherit; + position: relative; } + .tui-full-calendar-weekday-container > div { + height: 100%; } + +.tui-full-calendar-weekday-grid { + height: 100%; + min-height: inherit; + position: absolute; + width: 100%; + overflow-y: scroll; } + +.tui-full-calendar-weekday-grid-line { + height: 100%; + min-height: inherit; + position: absolute; + padding: 3px; } + .tui-full-calendar-weekday-grid-line .tui-full-calendar-weekday-grid-footer { + position: absolute; + bottom: 4px; } + .tui-full-calendar-weekday-grid-line .tui-full-calendar-weekday-grid-date { + display: inline-block; + width: 27px; + height: 27px; + line-height: 27px; + text-align: center; } + .tui-full-calendar-weekday-grid-line .tui-full-calendar-weekday-grid-date-title { + line-height: 27px; + margin-right: 5px; } + .tui-full-calendar-weekday-grid-line .tui-full-calendar-weekday-grid-more-schedules { + float: right; + display: inline-block; + height: 27px; + line-height: 27px; + padding: 0 5px; + text-align: center; + font-size: 11px; + font-weight: bold; + color: #aaa; } + +.tui-full-calendar-weekday-border { + border-top: 1px solid #ddd; } + +.tui-full-calendar-weekday-creation { + top: 0; + left: 0; + width: 100%; + height: 100%; + position: absolute; + overflow-y: scroll; } + +.tui-full-calendar-weekday-schedules { + top: 0; + left: 0; + width: 100%; + height: 100%; + position: absolute; + font-size: 12px; + overflow-y: scroll; } + +.tui-full-calendar-weekday-schedules-height-span { + width: 1px; + margin-left: -1px; } + +.tui-full-calendar-weekday-schedule-block { + position: absolute; } + +.tui-full-calendar-weekday-schedule-block-dragging-dim { + opacity: 0.3; } + +.tui-full-calendar-weekday-schedule { + position: relative; + margin: 0 10px 0 1px; + cursor: pointer; + border-left-style: solid; + border-left-width: 3px; } + +.tui-full-calendar-weekday-schedule.tui-full-calendar-weekday-schedule-time { + border-left-width: 0; } + .tui-full-calendar-weekday-schedule.tui-full-calendar-weekday-schedule-time .tui-full-calendar-weekday-schedule-title { + padding-left: 9px; } + +.tui-full-calendar-weekday-schedule-bullet { + position: absolute; + padding: 0; + width: 6px; + height: 6px; + top: 6px; + left: 0; + border-radius: 50%; } + +.tui-full-calendar-weekday-schedule-bullet-focused { + left: 10px; + background: #fff; } + +.tui-full-calendar-weekday-schedule-title { + display: block; + white-space: nowrap; + overflow: hidden; + text-overflow: ellipsis; + padding-left: 3px; + font-weight: bold; } + +.tui-full-calendar-weekday-schedule-title-focused { + padding-left: 16px; } + +.tui-full-calendar-weekday-schedule-cover { + position: absolute; + top: 0; + width: 100%; + height: 100%; + background-color: rgba(0, 0, 0, 0.2); + -webkit-box-shadow: 0 2px 6px 0 rgba(0, 0, 0, 0.1); + box-shadow: 0 2px 6px 0 rgba(0, 0, 0, 0.1); } + +.tui-full-calendar-weekday-exceed-left .tui-full-calendar-weekday-schedule { + margin-left: 0; + border-left-width: 0; } + +.tui-full-calendar-weekday-exceed-right .tui-full-calendar-weekday-schedule { + margin-right: 0; } + +.tui-full-calendar-weekday-exceed-right .tui-full-calendar-weekday-resize-handle { + display: none; } + +.tui-full-calendar-weekday-exceed-in-month { + cursor: pointer; } + .tui-full-calendar-weekday-exceed-in-month:hover { + background-color: #f0f1f5; } + +.tui-full-calendar-weekday-exceed-in-week { + position: absolute; + bottom: 5px; + margin-right: 5px; + font-size: 12px; + line-height: 14px; + cursor: pointer; + padding: 1px 5px; + background-color: #fff; + border: 1px solid #ddd; + color: #000; } + +.tui-full-calendar-weekday-collapse-btn { + position: absolute; + bottom: 5px; + margin-right: 5px; + font-size: 12px; + line-height: 14px; + cursor: pointer; + padding: 1px 5px; + background-color: #fff; + border: 1px solid #ddd; + color: #000; } + +.tui-full-calendar-weekday-resize-handle { + position: absolute; + top: 0; + right: 0; + width: 6px; + background-position: 3px center; + cursor: col-resize; + line-height: 18px; } + +.tui-full-calendar-weekday-filled { + background-color: #e8e8e8 !important; } + +.tui-full-calendar-left { + height: 100%; + float: left; + -webkit-box-sizing: border-box; + box-sizing: border-box; + display: table; } + +.tui-full-calendar-left-content { + display: table-cell; + vertical-align: middle; + text-align: right; + font-size: 11px; } + +.tui-full-calendar-right { + height: 100%; + overflow-y: scroll; + position: relative; } + +.tui-full-calendar-week-container { + width: 100%; + height: inherit; + display: inline-block; + font-size: 10px; + min-height: 600px; } + .tui-full-calendar-week-container .tui-full-calendar-today { + background: none; } + +.tui-full-calendar-dayname { + position: absolute; + margin-left: -1px; + height: 100%; + overflow: hidden; } + +.tui-full-calendar-dayname.tui-full-calendar-today { + font-weight: bold; } + +.tui-full-calendar-dayname-container { + overflow-y: scroll; } + +.tui-full-calendar-dayname-leftmargin { + position: relative; + height: 100%; } + +.tui-full-calendar-dayname-date { + font-size: 26px; } + +.tui-full-calendar-dayname-name { + font-weight: bold; + font-size: 12px; } + +.tui-full-calendar-daygrid-layout { + height: 100%; } + .tui-full-calendar-daygrid-layout .tui-full-calendar-right { + overflow-y: hidden; } + +.tui-full-calendar-daygrid-guide-creation-block { + position: absolute; + top: 0; + bottom: 0; + z-index: 1; } + +.tui-full-calendar-timegrid-container { + height: 100%; + position: relative; + overflow: hidden; + overflow-y: scroll; } + +.tui-full-calendar-timegrid-container-split { + height: 100%; + position: relative; + overflow: hidden; } + +.tui-full-calendar-timegrid-left { + position: absolute; } + +.tui-full-calendar-timegrid-hour { + position: relative; + color: #555; + -webkit-box-sizing: border-box; + box-sizing: border-box; } + .tui-full-calendar-timegrid-hour:first-child span { + display: none; } + .tui-full-calendar-timegrid-hour:last-child { + border-bottom: none; } + .tui-full-calendar-timegrid-hour span { + position: absolute; + top: -11px; + left: 0; + right: 5px; + text-align: right; + line-height: 25px; } + +.tui-full-calendar-timegrid-right { + position: relative; } + +.tui-full-calendar-timegrid-gridline { + border-bottom: 1px solid #eee; + -webkit-box-sizing: border-box; + box-sizing: border-box; } + .tui-full-calendar-timegrid-gridline:last-child { + border-bottom: none; } + +.tui-full-calendar-timegrid-schedules { + position: absolute; + width: 100%; + height: 100%; + top: 0; + left: 0; + cursor: pointer; } + +.tui-full-calendar-timegrid-hourmarker { + position: absolute; + width: 100%; + display: table; } + +.tui-full-calendar-timegrid-hourmarker-line-left { + position: absolute; + min-height: 1px; + left: 0; } + +.tui-full-calendar-timegrid-hourmarker-line-today { + position: absolute; + min-height: 1px; } + +.tui-full-calendar-timegrid-hourmarker-line-right { + position: absolute; + min-height: 1px; + right: 0; } + +.tui-full-calendar-timegrid-hourmarker-time { + padding-right: 5px; + line-height: 12px; + text-align: right; + display: table-cell; + vertical-align: bottom; } + +.tui-full-calendar-timegrid-todaymarker { + position: absolute; + text-indent: -9999px; + width: 9px; + height: 9px; + background-color: #135de6; + margin: -4px 0 0 -5px; + border-radius: 50%; } + +.tui-full-calendar-timegrid-sticky-container { + position: absolute; + top: 0; } + +.tui-full-calendar-timegrid-timezone-label-container { + position: absolute; } + +.tui-full-calendar-timegrid-timezone-label-cell { + display: table; } + +.tui-full-calendar-timegrid-timezone-label { + display: table-cell; + vertical-align: middle; + padding-right: 5px; + text-align: right; } + +.tui-full-calendar-timegrid-timezone-close-btn { + cursor: pointer; + position: absolute; + text-align: center; + background-color: #fff; } + .tui-full-calendar-timegrid-timezone-close-btn .tui-full-calendar-icon { + width: 5px; + height: 10px; } + +.tui-full-calendar-time-date { + position: absolute; + height: 100%; + margin-left: -1px; + -webkit-box-sizing: content-box; + box-sizing: content-box; } + .tui-full-calendar-time-date:last-child { + border-right: none; + margin: 0; } + .tui-full-calendar-time-date:last-child .tui-full-calendar-time-schedule { + left: 0px; } + .tui-full-calendar-time-date:last-child .tui-full-calendar-time-guide-creation { + left: 0px; } + +.tui-full-calendar-time-date-schedule-block-wrap { + position: relative; + height: 100%; } + +.tui-full-calendar-time-date-schedule-block { + position: absolute; + right: 0px; } + +.tui-full-calendar-time-date-schedule-block-pending { + opacity: 0.7; } + +.tui-full-calendar-time-date-schedule-block-dragging-dim { + opacity: 0.3; } + +.tui-full-calendar-time-date-schedule-block-focused { + -webkit-box-shadow: 0 0 8px 0 rgba(0, 0, 0, 0.2); + box-shadow: 0 0 8px 0 rgba(0, 0, 0, 0.2); } + +.tui-full-calendar-time-date-schedule-block-cover { + position: absolute; + top: 0; + width: 100%; + height: 100%; + background-color: rgba(0, 0, 0, 0.2); + -webkit-box-shadow: 0 2px 6px 0 rgba(0, 0, 0, 0.1); + box-shadow: 0 2px 6px 0 rgba(0, 0, 0, 0.1); } + +.tui-full-calendar-time-schedule { + position: relative; + left: 1px; + height: 100%; + overflow: hidden; + font-size: 12px; + font-weight: bold; } + +.tui-full-calendar-time-schedule-content { + overflow: hidden; + border-left-width: 3px; + border-left-style: solid; + padding: 1px 0 0 3px; } + +.tui-full-calendar-time-schedule-content-travel-time { + font-weight: normal; + font-size: 11px; } + +.tui-full-calendar-time-resize-handle { + position: absolute; + right: 0px; + bottom: 0px; + left: 0px; + height: 5px; + text-align: center; + color: #fff; + cursor: row-resize; + background-position: center top; } + +.tui-full-calendar-time-guide-creation { + position: absolute; + right: 10px; + left: 1px; + padding: 3px; } + +.tui-full-calendar-time-guide-move .tui-full-calendar-time-schedule { + opacity: 0.8; + z-index: 97; } + +.tui-full-calendar-time-guide-move .tui-full-calendar-time-resize-handle { + opacity: 0.8; + z-index: 97; } + +.tui-full-calendar-time-guide-resize .tui-full-calendar-time-schedule { + opacity: 0.8; + z-index: 97; } + +.tui-full-calendar-time-guide-resize .tui-full-calendar-time-resize-handle { + opacity: 0.8; + z-index: 97; } + +.tui-full-calendar-time-guide-creation-label { + cursor: default; } + +.tui-full-calendar-time-guide-bottom { + position: absolute; + bottom: 3px; } + +.tui-full-calendar-month { + height: 100%; + min-height: 600px; } + +.tui-full-calendar-month-dayname { + width: 100%; + position: absolute; + font-size: 13px; } + +.tui-full-calendar-month-dayname-item { + height: 100%; + font-weight: bold; } + +.tui-full-calendar-month-more { + height: inherit; + min-width: 280px; + min-height: 150px; } + +.tui-full-calendar-month-more-title { + position: relative; } + +.tui-full-calendar-month-more-title-day { + font-size: 23px; + color: #333; } + +.tui-full-calendar-month-more-title-day-label { + font-size: 12px; + color: #333; } + +.tui-full-calendar-month-more-close { + position: absolute; + right: 0; + outline: 0; + background: none; + border: 0; + font-size: 14px; + line-height: 28px; + padding: 0 7px; + cursor: pointer; } + +.tui-full-calendar-month-more-list { + overflow-y: auto; } + +.tui-full-calendar-month-more-schedule { + cursor: pointer; + display: block; + overflow: hidden; + white-space: nowrap; + text-overflow: ellipsis; + font-size: 12px; } + +.tui-full-calendar-month-guide-block { + position: absolute; } + +.tui-full-calendar-month-weekday-schedule { + margin-top: 2px; } + +.tui-full-calendar-month-creation-guide { + top: 0; + bottom: -1px; + left: -1px; + right: 0; + position: absolute; + z-index: 20; } + +.tui-full-calendar-month-guide-focused { + -webkit-box-shadow: 0 0 8px 0 rgba(0, 0, 0, 0.2); + box-shadow: 0 0 8px 0 rgba(0, 0, 0, 0.2); } + +.tui-full-calendar-month-guide { + position: relative; + padding-left: 3px; + line-height: 18px; + overflow: hidden; + white-space: nowrap; + text-overflow: ellipsis; } + +.tui-full-calendar-month-guide-cover { + width: 100%; + position: absolute; + top: -50%; + left: -50%; + background-color: rgba(0, 0, 0, 0.2); + -webkit-box-shadow: 0 2px 6px 0 rgba(0, 0, 0, 0.1); + box-shadow: 0 2px 6px 0 rgba(0, 0, 0, 0.1); } + +.tui-full-calendar-month-exceed-left .tui-full-calendar-month-guide { + margin-left: 0px; } + +.tui-full-calendar-month-exceed-right .tui-full-calendar-month-guide { + margin-right: 0px; } + +.tui-full-calendar-month-exceed-right .tui-full-calendar-month-guide-handle { + display: none; } + +.tui-full-calendar-month-guide-handle { + position: absolute; + top: 0; + right: 3px; + width: 6px; + background-position: 3px center; + cursor: col-resize; } + +.tui-full-calendar-vlayout-container { + position: relative; } + +.tui-full-calendar-splitter { + clear: left; + cursor: row-resize; } + .tui-full-calendar-splitter:hover { + border-color: #999; } + +.tui-full-calendar-splitter-focused { + background-color: #ddd; + border: none; } + +.tui-full-calendar-splitter-guide { + position: absolute; + width: 100%; + height: 3px; + border: none; + background-color: #e8e8e8; } + +.tui-full-calendar-popup { + position: absolute; + font-weight: 2.5; + -webkit-box-shadow: 0 2px 6px 0 rgba(0, 0, 0, 0.1); + box-shadow: 0 2px 6px 0 rgba(0, 0, 0, 0.1); + clear: both; } + +.tui-full-calendar-popup-container { + min-width: 474px; + -webkit-box-shadow: 0 2px 6px 0 rgba(0, 0, 0, 0.1); + box-shadow: 0 2px 6px 0 rgba(0, 0, 0, 0.1); + background-color: #fff; + border: solid 1px #d5d5d5; + padding: 17px; + border-radius: 2px; } + +.tui-full-calendar-popup-section { + font-size: 0; + min-height: 40px; } + +.tui-full-calendar-section-calendar { + width: 176px; } + .tui-full-calendar-section-calendar .tui-full-calendar-dropdown-button .tui-full-calendar-content { + width: 125px; + text-overflow: ellipsis; + overflow: hidden; + top: -1px; } + .tui-full-calendar-section-calendar .tui-full-calendar-dropdown-menu-item { + width: 100%; } + +.tui-full-calendar-section-calendar.tui-full-calendar-hide { + height: 21px; + visibility: hidden; } + +.tui-full-calendar-section-title { + width: calc(100% - 36px); + padding-right: 4px; } + .tui-full-calendar-section-title input { + width: 365px; } + +.tui-full-calendar-button.tui-full-calendar-section-private { + height: 32px; + padding: 8px; + font-size: 0; + margin-left: 4px; } + +.tui-full-calendar-section-private.tui-full-calendar-public .tui-full-calendar-ic-private { + background: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAA4AAAAOCAYAAAAfSC3RAAAAAXNSR0IArs4c6QAAAKdJREFUKBVjYCATMKLri46Olvn9+3fX////HUByjIyMB1hZWcuWLl36BFktikaQpl+/fl0EKhBCVgRkv2NjY9NH1syErABkE1TTdqBCWRAG8reDxKBycOUoGmHOA2pIA5kOwiA2SDVMDq4TmREaGvofhJHFcLHhfgwLC9sKNNULl0KQODCgtq1atcobxIY7lZAmkGJkNXCNIAlSwIjSCApqIgJnK0wNALoOPwSpOcq0AAAAAElFTkSuQmCC) no-repeat; } + +.tui-full-calendar-section-start-date { + width: 176px; } + .tui-full-calendar-section-start-date input { + width: 139px; } + .tui-full-calendar-section-start-date:hover .tui-full-calendar-popup-section-item { + border-color: #bbb; } + .tui-full-calendar-section-start-date:hover .tui-datepicker { + border-color: #bbb; } + .tui-full-calendar-section-start-date:focus .tui-full-calendar-popup-section-item { + border-color: #bbb; } + .tui-full-calendar-section-start-date:focus .tui-datepicker { + border-color: #bbb; } + +.tui-full-calendar-section-end-date { + width: 176px; } + .tui-full-calendar-section-end-date input { + width: 139px; } + .tui-full-calendar-section-end-date:hover .tui-full-calendar-popup-section-item { + border-color: #bbb; } + .tui-full-calendar-section-end-date:hover .tui-datepicker { + border-color: #bbb; } + .tui-full-calendar-section-end-date:focus .tui-full-calendar-popup-section-item { + border-color: #bbb; } + .tui-full-calendar-section-end-date:focus .tui-datepicker { + border-color: #bbb; } + +.tui-full-calendar-popup-section-item { + height: 32px; + padding: 0 9px 0 12px; + border: 1px solid #d5d5d5; + display: inline-block; + font-size: 0; + border-radius: 2px; } + .tui-full-calendar-popup-section-item:focus { + border-color: #bbb; + border-color: #bbb; } + .tui-full-calendar-popup-section-item:hover { + border-color: #bbb; } + .tui-full-calendar-popup-section-item .tui-full-calendar-icon { + position: relative; } + .tui-full-calendar-popup-section-item .tui-full-calendar-content { + text-align: left; + display: inline-block; + font-size: 12px; + vertical-align: middle; + position: relative; + padding-left: 8px; } + .tui-full-calendar-popup-section-item input { + border: none; + height: 30px; + outline: none; + display: inline-block; } + .tui-full-calendar-popup-section-item input::-webkit-input-placeholder { + color: #bbb; + font-weight: 300; } + .tui-full-calendar-popup-section-item input::-moz-placeholder { + color: #bbb; + font-weight: 300; } + .tui-full-calendar-popup-section-item input:-ms-input-placeholder { + color: #bbb; + font-weight: 300; } + .tui-full-calendar-popup-section-item input::-ms-input-placeholder { + color: #bbb; + font-weight: 300; } + .tui-full-calendar-popup-section-item input::placeholder { + color: #bbb; + font-weight: 300; } + +.tui-full-calendar-section-date-dash { + font-size: 12px; + color: #d5d5d5; + height: 32px; + padding: 0 4px; + vertical-align: middle; } + +.tui-full-calendar-popup-section-item.tui-full-calendar-section-allday { + border: none; + padding: 0 0 0 8px; + cursor: pointer; } + .tui-full-calendar-popup-section-item.tui-full-calendar-section-allday .tui-full-calendar-content { + padding-left: 4px; } + +.tui-full-calendar-popup-section-item.tui-full-calendar-section-location { + display: block; } + .tui-full-calendar-popup-section-item.tui-full-calendar-section-location input { + width: 400px; } + +.tui-full-calendar-section-allday .tui-full-calendar-icon.tui-full-calendar-ic-checkbox { + margin: 0; } + +.tui-full-calendar-section-state { + width: 109px; } + .tui-full-calendar-section-state .tui-full-calendar-content { + width: 58px; + text-overflow: ellipsis; + overflow: hidden; } + .tui-full-calendar-section-state .tui-full-calendar-dropdown-menu-item { + width: 100%; } + +.tui-full-calendar-dropdown { + position: relative; } + .tui-full-calendar-dropdown:hover .tui-full-calendar-dropdown-button { + border: 1px solid #bbb; } + .tui-full-calendar-dropdown:hover .tui-full-calendar-dropdown-menu { + border: 1px solid #bbb; + border-top: none; } + +.tui-full-calendar-dropdown-button.tui-full-calendar-popup-section-item { + height: 32px; + font-size: 0; + top: -1px; } + +.tui-full-calendar-dropdown-arrow { + background: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAA4AAAAOCAYAAAAfSC3RAAAAAXNSR0IArs4c6QAAAHlJREFUKBVjYBgFOEOAEVkmPDxc89+/f6eAYjzI4kD2FyYmJrOVK1deh4kzwRggGiQBVJCELAZig8SQNYHEmEEEMrh69eo1HR0dfqCYJUickZGxf9WqVf3IakBsFBthklpaWmVA9mEQhrJhUoTp0NBQCRAmrHL4qgAAuu4cWZOZIGsAAAAASUVORK5CYII=) no-repeat; } + +.dropdown.open .tui-full-calendar-dropdown-arrow { + background: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAA4AAAAOCAYAAAAfSC3RAAAAAXNSR0IArs4c6QAAAIFJREFUKBVjYBj+gBmXF2NiYiTV1dV5rl279gWbGiZsgg0NDSw/f/5cCZRbBWJjU4PVRjExsR6g4nAgln/z5g3v1atXd6JrxtAYHh4e+v///z4khZa6urrXgJqvIYkxMCJzgJo0//37dwooxoMsDmR/YWJiMlu5cuV1NPFRLrYQAADMVCaUtbG7XwAAAABJRU5ErkJggg==) no-repeat; } + +.tui-full-calendar-open .tui-full-calendar-dropdown-arrow { + background: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAA4AAAAOCAYAAAAfSC3RAAAAAXNSR0IArs4c6QAAAIFJREFUKBVjYBj+gBmXF2NiYiTV1dV5rl279gWbGiZsgg0NDSw/f/5cCZRbBWJjU4PVRjExsR6g4nAgln/z5g3v1atXd6JrxtAYHh4e+v///z4khZa6urrXgJqvIYkxMCJzgJo0//37dwooxoMsDmR/YWJiMlu5cuV1NPFRLrYQAADMVCaUtbG7XwAAAABJRU5ErkJggg==) no-repeat; } + +.tui-full-calendar-open .tui-full-calendar-dropdown-menu { + display: block; } + +.tui-full-calendar-dropdown-menu { + position: absolute; + top: 31px; + padding: 4px 0; + background-color: #fff; + border: 1px solid #d5d5d5; + border-top: none; + border-radius: 0 0 2px 2px; + width: 100%; + display: none; } + +.tui-full-calendar-dropdown-menu-item { + height: 30px; + border: none; + cursor: pointer; } + .tui-full-calendar-dropdown-menu-item:hover { + background-color: rgba(81, 92, 230, 0.05); } + .tui-full-calendar-dropdown-menu-item .tui-full-calendar-content { + line-height: 30px; } + +.tui-full-calendar-button.tui-full-calendar-popup-close { + position: absolute; + top: 10px; + right: 10px; + background-color: #fff; + padding: 2px; + border: none; } + +.tui-full-calendar-section-button-save { + height: 36px; } + +.tui-full-calendar-popup-save { + float: right; } + +.tui-full-calendar-popup-arrow-border { + position: absolute; } + +.tui-full-calendar-popup-arrow-fill { + position: absolute; } + +.tui-full-calendar-arrow-top .tui-full-calendar-popup-arrow-border { + border-top: none; + border-right: 8px solid transparent; + border-bottom: 8px solid #d5d5d5; + border-left: 8px solid transparent; + left: calc(50% - 8px); + top: -7px; } + +.tui-full-calendar-arrow-top .tui-full-calendar-popup-arrow-fill { + border-top: none; + border-right: 7px solid transparent; + border-bottom: 7px solid #fff; + border-left: 7px solid transparent; + left: -7px; + top: 1px; } + +.tui-full-calendar-arrow-right .tui-full-calendar-popup-arrow-border { + border-top: 8px solid transparent; + border-right: none; + border-bottom: 8px solid transparent; + border-left: 8px solid #d5d5d5; + top: calc(50% - 8px); + right: -7px; } + +.tui-full-calendar-arrow-right .tui-full-calendar-popup-arrow-fill { + border-top: 7px solid transparent; + border-right: none; + border-bottom: 7px solid transparent; + border-left: 7px solid #fff; + top: -7px; + right: 1px; } + +.tui-full-calendar-arrow-bottom .tui-full-calendar-popup-arrow-border { + border-top: 8px solid #d5d5d5; + border-right: 8px solid transparent; + border-bottom: none; + border-left: 8px solid transparent; + left: calc(50% - 8px); + bottom: -7px; } + +.tui-full-calendar-arrow-bottom .tui-full-calendar-popup-arrow-fill { + border-top: 7px solid #fff; + border-right: 7px solid transparent; + border-bottom: none; + border-left: 7px solid transparent; + left: -7px; + bottom: 1px; } + +.tui-full-calendar-arrow-left .tui-full-calendar-popup-arrow-border { + border-top: 8px solid transparent; + border-right: 8px solid #d5d5d5; + border-bottom: 8px solid transparent; + border-left: none; + top: calc(50% - 8px); + left: -7px; } + +.tui-full-calendar-arrow-left .tui-full-calendar-popup-arrow-fill { + border-top: 7px solid transparent; + border-right: 7px solid #fff; + border-bottom: 7px solid transparent; + border-left: none; + top: -7px; + left: 1px; } + +.tui-full-calendar-button { + background: #fff; + border: 1px solid #d5d5d5; + border-radius: 2px; + text-align: center; + outline: none; + font-size: 12px; + cursor: pointer; + color: #333; } + .tui-full-calendar-button:hover { + border-color: #bbb; + color: #333; } + .tui-full-calendar-button:active { + background: #f9f9f9; + color: #333; } + .tui-full-calendar-button .round { + border-radius: 25px; } + +.tui-full-calendar-confirm { + padding: 10px 20px; + font-size: 12px; + font-weight: bold; + border: none; + border-radius: 0.25rem; } + +.tui-full-calendar-icon.tui-full-calendar-right { + float: right; + top: 1px; } + +.tui-full-calendar-icon { + width: 14px; + height: 14px; + display: inline-block; + vertical-align: middle; } + .tui-full-calendar-icon .tui-full-calendar-none { + display: none; } + +.tui-full-calendar-icon.tui-full-calendar-calendar-dot { + border-radius: 8px; + width: 12px; + height: 12px; + margin: 1px; } + +input[type='checkbox'].tui-full-calendar-checkbox-square { + display: none; } + input[type='checkbox'].tui-full-calendar-checkbox-square + span { + display: inline-block; + cursor: pointer; + line-height: 14px; + margin-right: 3px; + width: 14px; + height: 14px; + background: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAA4AAAAOCAYAAAAfSC3RAAAAAXNSR0IArs4c6QAAADpJREFUKBVjPHfu3O5///65MJAAmJiY9jCcOXPmP6kApIeJBItQlI5qRAkOVM5o4KCGBwqPkcxEvhsAbzRE+Jhb9IwAAAAASUVORK5CYII=) no-repeat; + vertical-align: middle; } + input[type='checkbox'].tui-full-calendar-checkbox-square:checked + span { + background: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAA4AAAAOCAYAAAAfSC3RAAAAAXNSR0IArs4c6QAAAMBJREFUKBWVkjEOwjAMRe2WgZW7IIHEDdhghhuwcQ42rlJugAQS54Cxa5cq1QM5TUpByZfS2j9+dlJVt/tX5ZxbS4ZU9VLkQvSHKTIGRaVJYFmKrBbTCJxE2UgCdDzMZDkHrOV6b95V0US6UmgKodujEZbJg0B0ZgEModO5lrY1TMQf1TpyJGBEjD+E2NPN7ukIUDiF/BfEXgRiGEw8NgkffYGYwCi808fpn/6OvfUfsDr/Vc1IfRf8sKnFVqeiVQfDu0tf/nWH9gAAAABJRU5ErkJggg==) no-repeat; } + +input[type='checkbox'].tui-full-calendar-checkbox-round { + display: none; } + input[type='checkbox'].tui-full-calendar-checkbox-round + span { + display: inline-block; + cursor: pointer; + width: 14px; + height: 14px; + line-height: 14px; + vertical-align: middle; + margin-right: 8px; + border-radius: 8px; + border: solid 2px; + background: transparent; } + +.tui-full-calendar-popup-top-line { + position: absolute; + border-radius: 2px 2px 0 0; + width: 100%; + height: 4px; + border: none; + top: 0; } + +.tui-full-calendar-popup-detail .tui-full-calendar-popup-container { + width: 301px; + min-width: 301px; + padding-bottom: 0; } + +.tui-full-calendar-popup-detail .tui-full-calendar-icon { + width: 12px; + height: 12px; + background-size: 12px; + position: relative; + margin-right: 8px; } + +.tui-full-calendar-popup-detail .tui-full-calendar-icon.tui-full-calendar-ic-location-b { + top: -2px; } + +.tui-full-calendar-popup-detail .tui-full-calendar-icon.tui-full-calendar-ic-user-b { + top: -2px; } + +.tui-full-calendar-popup-detail .tui-full-calendar-icon.tui-full-calendar-ic-state-b { + top: -1px; } + +.tui-full-calendar-popup-detail .tui-full-calendar-icon.tui-full-calendar-calendar-dot { + width: 10px; + height: 10px; + margin-right: 8px; + top: -1px; } + +.tui-full-calendar-popup-detail .tui-full-calendar-content { + line-height: 24px; + height: 24px; + font-size: 12px; + line-height: 2; } + +.tui-full-calendar-popup-detail .tui-full-calendar-section-header { + margin-bottom: 6px; } + +.tui-full-calendar-popup-detail .tui-full-calendar-popup-detail-item-separate { + margin-top: 4px; } + +.tui-full-calendar-popup-detail .tui-full-calendar-popup-detail-item-indent { + text-indent: -20px; + padding-left: 20px; } + +.tui-full-calendar-popup-detail .tui-full-calendar-schedule-title { + font-size: 15px; + font-weight: bold; + line-height: 1.6; + word-break: break-all; } + +.tui-full-calendar-popup-detail .tui-full-calendar-schedule-private { + display: none; + width: 16px; + height: 16px; + background: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAA4AAAAOCAYAAAAfSC3RAAAAAXNSR0IArs4c6QAAAKpJREFUKBVjYCATMKLri46Olvn9+3fX////HUByjIyMB1hZWcuWLl36BFktikaQpl+/fl0EKhBCVgRkv2NjY9NH1syErABkE1TTdqBCWRAG8reDxKBycOUoGmHOA2pIA5kOwiA2SDVMDqYTRSNQUBIkgewkJDZYDqYR7sewsLCtQFO9YBLYaGBAbVu1apU3SA5uIyFNIMXIauAaQRKkgBGlERTURATOVpgaABRQQOK46wEAAAAAAElFTkSuQmCC) no-repeat 16px; } + .tui-full-calendar-popup-detail .tui-full-calendar-schedule-private .tui-full-calendar-ic-private { + display: block; } + +.tui-full-calendar-popup-detail .tui-full-calendar-section-detail { + margin-bottom: 16px; } + +.tui-full-calendar-popup-detail .tui-full-calendar-section-button { + border-top: 1px solid #e5e5e5; + font-size: 0; } + +.tui-full-calendar-section-button .tui-full-calendar-icon { + margin-right: 4px; + top: -3px; } + +.tui-full-calendar-section-button .tui-full-calendar-content { + position: relative; + top: 2px; } + +.tui-full-calendar-popup-edit { + display: inline-block; + padding: 7px 9px 11px 9px; + width: calc(50% - 1px); + outline: none; + background: none; + border: none; + cursor: pointer; } + +.tui-full-calendar-popup-delete { + display: inline-block; + padding: 7px 9px 11px 9px; + width: calc(50% - 1px); + outline: none; + background: none; + border: none; + cursor: pointer; } + +.tui-full-calendar-popup-vertical-line { + background: #e5e5e5; + width: 1px; + height: 14px; + vertical-align: middle; + display: inline-block; + margin-top: -7px; } + +.tui-datepicker { + left: -12px; + z-index: 1; + border-color: #d5d5d5; } + +.tui-full-calendar-icon.tui-full-calendar-ic-title { + background: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAA4AAAAOCAYAAAAfSC3RAAAAAXNSR0IArs4c6QAAAO5JREFUKBVjYCATMOLSFxkZqfHnz5+1QHktNDVbV69e7cOCJgjmQjXtB3IksMh7g8SY0CXQNTEyMlYD1fBCabhyFI3omkCq/v//PwnotC8gGq4LyIBrxKYJpBBoU15oaCgPiEbWCPYjUEIFGBBY/QS0qRWooRVIg/UBDXgMYoBtBHJSgWxsAQFWjET8BBqQBuLDNM4Can6GpAAb8ydQMADo3x0gSbDGlStX3gVqdMSjGUUTSCNKAggPD1cDOmU/EEuBJKEAQxNIHEUjSABNM1ZNIHXMIAIZXL169a2+vv5moK18QKeXAv20B1meYjYAr7xrljpOzc0AAAAASUVORK5CYII=) no-repeat; } + +.tui-full-calendar-icon.tui-full-calendar-ic-location { + background: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAA4AAAAOCAYAAAAfSC3RAAAAAXNSR0IArs4c6QAAAR1JREFUKBWdUTtPg1AUBiT8CydHJtv/0MTJRWAgcTK1bq0/pO3k4E4IYLo2Me46tS4wumjSpV07kAb6HXLPzaGPRZLL+c73uE/D+OdnHuaCIOhVVTUEf620pWVZ0yRJ3qW3FfR9f1zX9UgaGJumOUnT9Fn3DDzPuwPOuD9TvSzL3kizhOFJ4LnjOJc0wM0FP2Asgx0mEehHUfRHgzDzqF3GOogzbJg8V6XHFqYv4Cvqy7J8DcOwWYmw8Hwy1kHMRjcaKuEGgV82caWbZay3indagJyxcKLOlKeRdJA627YfUVaN0v6tlKbZVjCO4zW2cw91px3AxJEmOONCNoTzPP9xXZfOd6u0Bzz60RGOgmQuiuIb4S3gB0IvaoJW2QMDs1bBoH1CAQAAAABJRU5ErkJggg==) no-repeat; } + +.tui-full-calendar-icon.tui-full-calendar-ic-date { + background: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAA4AAAAOCAYAAAAfSC3RAAAAAXNSR0IArs4c6QAAAGpJREFUKBVjYKAGCA0N/Q/C6GZhE2cEKQoLC9v6//9/L3QN2PiMjIzbVq1a5c0EkiRWE7JasEZsJhMSI1sjC7LJq1evBvsZWQyZjRxwZNs4hDSiBA6y55EDBRsb7EdQasAmiUNsKw5x4oQBkUAeDPJ53KsAAAAASUVORK5CYII=) no-repeat; } + +.tui-full-calendar-icon.tui-full-calendar-ic-state { + background: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAA4AAAAOCAYAAAAfSC3RAAAAAXNSR0IArs4c6QAAAIxJREFUKBVjYCATMKLrCw8P9/z3798soLgMVO4JExNT2sqVK7cjq2VC5oDYME2MjIyNIAwUkoGKoShlQeFBOGCbVq1a1QDihoaG1gMpmO0gITAAOzUsLGzr////vWCC+GigK7YBDfUGO5VYTSADYWox/IjPNmS5UY3IoYHGBgcOKG7QxPFxt+KTJCgHAGcZJbGLRuJ2AAAAAElFTkSuQmCC) no-repeat; } + +.tui-full-calendar-icon.tui-full-calendar-ic-private { + background: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAA4AAAAOCAYAAAAfSC3RAAAAAXNSR0IArs4c6QAAAKpJREFUKBVjYCATMKLri46Olvn9+3fX////HUByjIyMB1hZWcuWLl36BFktikaQpl+/fl0EKhBCVgRkv2NjY9NH1syErABkE1TTdqBCWRAG8reDxKBycOUoGmHOA2pIA5kOwiA2SDVMDqYTRSNQUBIkgewkJDZYDqYR7sewsLCtQFO9YBLYaGBAbVu1apU3SA5uIyFNIMXIauAaQRKkgBGlERTURATOVpgaABRQQOK46wEAAAAAAElFTkSuQmCC) no-repeat; } + +.tui-full-calendar-icon.tui-full-calendar-ic-close { + background: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAA4AAAAOCAYAAAAfSC3RAAAAAXNSR0IArs4c6QAAAJRJREFUKBXFkNERhCAMREUbuEKohzq0Eq2DDq6Da4B60KezDORkxj+ZwchmX0IYhtdWCGFl9y5g82NtzDnPdzAaudo76ZBS+nrvPxiInMkJcs5tMcZFfqcfxdqIRiELof+BiIJPg+mExmpmvKRn3zKj7OrG9Y79szPL14A1xEP0Hgy4gBZS5R7czHj3ehSgOzkVeyfuGrBw/WLm0hsAAAAASUVORK5CYII=) no-repeat; } + +.tui-full-calendar-ic-location-b { + background: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAwAAAAMCAYAAABWdVznAAAAAXNSR0IArs4c6QAAAOZJREFUKBWVUT0KwjAUbkzGTuJWPYNDpV0cXD2ETuIRBK+gs4ubp3BwcXBp6eINBKWDgydoid9X8oKCggYeee/7S9IGwZ9LverTNO3Wdb2y1o6IK6WOWutFlmU30XmDE58hbgvpTA+Y+mJqCemS20jdG2N6LPYMICc6b5BrIG3ONBZ7CoVj7w0cfllGRDj+gKQpjt/iPU0ye/LkROcNANaoCUzjqqquIsBuHddAWoiyLO9RFHUwJ4JxR/qmKIqdYG9vCMNwCeIiJHuHecj/B0GSJBng7ifO+ErDPM8L4b7ucRzPWJ8ET1E7YC7tmi9qAAAAAElFTkSuQmCC); } + +.tui-full-calendar-ic-state-b { + background: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAwAAAAMCAYAAABWdVznAAAAAXNSR0IArs4c6QAAAHlJREFUKBVjYCARMCKrNzEx8QTyZ/3//18GJM7IyPgESKWdOXNmO4gPAkwQCk6CFQMVNoIwVOMsuCw6w9jY+D8Iw8TR+SBxsJOATtkKNM0LphAbDbRxG9Bp3mAnEVIMMgCmBt0P2AxHERusGkAhgOJQ7Jyt2IUJiAIAwwIn24FgmhkAAAAASUVORK5CYII=); } + +.tui-full-calendar-icon.tui-full-calendar-ic-user-b { + background-image: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAwAAAAMCAYAAABWdVznAAAAAXNSR0IArs4c6QAAAJpJREFUKBVjYKA1YES3wMTExBMoNgsqnnbmzJntyGqYkDlQ9qz////LgDCQD9MIV4ZNA1wSGwObhjRGRsYnIAzUkIZNE0licE+bm5tr/fnzJx1osjPQBFmoKY+BftnLwsIy8+TJk9dAYmANxsbGoUD2YiBmBwliAT+BYrFnz55dDfNDO1AAl2KQfpAcSA0DTIMyiEMAEKMG0wgAolIjcM7Tjm8AAAAASUVORK5CYII=); } + +.tui-full-calendar-icon.tui-full-calendar-ic-edit { + background-image: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAwAAAAMCAYAAABWdVznAAAAAXNSR0IArs4c6QAAAMdJREFUKBVjYCARMOJTb2xsLMfIyBjLysq64Pjx409BapnwaQDKzf7//3/L79+/D1tbW0uB1LJg02BmZqYIVPgdKBf/79+//UC2xs+fP8OB/H4MG0CK//79ewCkEGQYExOTI5DawMnJuQTER/EDTDFQXA4kCQQ3QBpOnz79AsJF8gMWxTA1KDTYBhyKMUwH6WSysrKSB7kZyIY5AySOVTFIggno+5VAmijFYA1AwhzEgAKcJsMUwIMVGKPH2NnZ7ZFDBKYImQYAuO5YIMgk39gAAAAASUVORK5CYII=); } + +.tui-full-calendar-icon.tui-full-calendar-ic-delete { + background-image: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAwAAAAMCAYAAABWdVznAAAAAXNSR0IArs4c6QAAAFhJREFUKBVjYCARMKKrNzEx2fr//38vkDgjI+O2M2fOeCOrAWtAVoQsicyGaWZCFsTHBtr6H588Tjm4H4yNjfGacPbsWbBaop0Es3JYaQBFDMxjWOitMDEA3EEZfFEISwUAAAAASUVORK5CYII=); } + +.tui-full-calendar-icon.tui-full-calendar-ic-arrow-solid-top { + background: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAA4AAAAOCAYAAAAfSC3RAAAAAXNSR0IArs4c6QAAAIFJREFUKBVjYBj+gBmXF2NiYiTV1dV5rl279gWbGiZsgg0NDSw/f/5cCZRbBWJjU4PVRjExsR6g4nAgln/z5g3v1atXd6JrxtAYHh4e+v///z4khZa6urrXgJqvIYkxMCJzgJo0//37dwooxoMsDmR/YWJiMlu5cuV1NPFRLrYQAADMVCaUtbG7XwAAAABJRU5ErkJggg==) no-repeat; } + +.tui-full-calendar-icon.tui-full-calendar-ic-milestone { + background: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAwAAAAMCAYAAABWdVznAAAAAXNSR0IArs4c6QAAAGFJREFUKBVjYCARMILU/3dw+I+hj5FxG+P+/d7o4rg1IKtE0syELI6T/f+/F0yOOA0w1UCa9hpYkGxjYDxwABwIILH/jo5bGWBuZ2TcClOHogEmCKKxBSlInPZ+ANlCEgAA37EU4AHbBQUAAAAASUVORK5CYII=) no-repeat; } + +.tui-full-calendar-icon.tui-full-calendar-ic-arrow-left { + background: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAQAAAAHCAYAAAAvZezQAAAAAXNSR0IArs4c6QAAAFZJREFUCB1jZICCyspK83///hUxgvhVVVV6f//+3c3ExJTMVFNTowqU2cHMzJzf3t6+hen379/zgIp2t7W1rQCpZmJlZU0C0q5AbREgAQwzwAIgGZgtADMCJqH/QyvhAAAAAElFTkSuQmCC) no-repeat; } + +.tui-full-calendar-icon.tui-full-calendar-ic-arrow-right { + background: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAQAAAAHCAYAAAAvZezQAAAAAXNSR0IArs4c6QAAAFxJREFUCB1jKC8vX1lZWWnOAAVMQLD4379/m6qqqvRAYowgAsiJAAr2sbCw2IMFQIIVFRUL////r8SCpMKVlZXVnhFooA9Q+VxmZmbXtra2S0xATizQYD8QB6QaAJMLJ9BqE9yTAAAAAElFTkSuQmCC) no-repeat; } + +.tui-full-calendar-ic-repeat-b { + background: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAwAAAAMCAYAAABWdVznAAAAAXNSR0IArs4c6QAAAQpJREFUKBVjYCARMCKrNzU1tf/3718lUMwQiP8yMjKeYWJi6j516tRhExOThjNnzjTANQAFqv///98CVHQPSO8A0ixATa5AtjyQPgDETmfPngULMpiZmbn//fu3BSg4B6ggCyjxG8hm8PT0ZH/9+vUJoJgTiA8CTCACqDgXaOJ9Xl7eTJhikDhQcSVQsQGITT8A9rSxsfF/mJVApzWCQgPGd3BwYPny5cstoNOuAZ3rAwoJOAAqviAqKtoOEwAaxPr58+dpQL4iEGeAxJFt2AfkOwA1PQTSu4Em/gGyPYC0EpCuAdraCtIADiWgQCPQOmdmZmYHoNgVoCJfIB0CpG8DI84BphgoRjoAAAzgdELI91E5AAAAAElFTkSuQmCC); } + +@media only screen and (-moz-min-device-pixel-ratio: 1.5) { + .handle-x { + background-image: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAICAMAAADHqI+lAAAACVBMVEX///////////+OSuX+AAAAA3RSTlMZK5EY+QKaAAAAGUlEQVR4AWNgYmJAwegCIMDIiIwxBKhhBgAcSABh8gN42gAAAABJRU5ErkJggg==); + background-size: 8px 4px; } + .handle-y { + background-image: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAgAAAAQCAMAAAAcVM5PAAAACVBMVEX///////////+OSuX+AAAAA3RSTlMEK5EMBzK5AAAAGElEQVR4AWNgYmIAYxgDBBgZQRjOoKcaABzQAGGjsIM/AAAAAElFTkSuQmCC); + background-size: 4px 8px; } } + +@media only screen and (-o-min-device-pixel-ratio: 3 / 2) { + .handle-x { + background-image: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAICAMAAADHqI+lAAAACVBMVEX///////////+OSuX+AAAAA3RSTlMZK5EY+QKaAAAAGUlEQVR4AWNgYmJAwegCIMDIiIwxBKhhBgAcSABh8gN42gAAAABJRU5ErkJggg==); + background-size: 8px 4px; } + .handle-y { + background-image: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAgAAAAQCAMAAAAcVM5PAAAACVBMVEX///////////+OSuX+AAAAA3RSTlMEK5EMBzK5AAAAGElEQVR4AWNgYmIAYxgDBBgZQRjOoKcaABzQAGGjsIM/AAAAAElFTkSuQmCC); + background-size: 4px 8px; } } + +@media only screen and (-webkit-min-device-pixel-ratio: 1.5) { + .handle-x { + background-image: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAICAMAAADHqI+lAAAACVBMVEX///////////+OSuX+AAAAA3RSTlMZK5EY+QKaAAAAGUlEQVR4AWNgYmJAwegCIMDIiIwxBKhhBgAcSABh8gN42gAAAABJRU5ErkJggg==); + background-size: 8px 4px; } + .handle-y { + background-image: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAgAAAAQCAMAAAAcVM5PAAAACVBMVEX///////////+OSuX+AAAAA3RSTlMEK5EMBzK5AAAAGElEQVR4AWNgYmIAYxgDBBgZQRjOoKcaABzQAGGjsIM/AAAAAElFTkSuQmCC); + background-size: 4px 8px; } } + +@media only screen and (min-devicepixel-ratio: 1.5) { + .handle-x { + background-image: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAICAMAAADHqI+lAAAACVBMVEX///////////+OSuX+AAAAA3RSTlMZK5EY+QKaAAAAGUlEQVR4AWNgYmJAwegCIMDIiIwxBKhhBgAcSABh8gN42gAAAABJRU5ErkJggg==); + background-size: 8px 4px; } + .handle-y { + background-image: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAgAAAAQCAMAAAAcVM5PAAAACVBMVEX///////////+OSuX+AAAAA3RSTlMEK5EMBzK5AAAAGElEQVR4AWNgYmIAYxgDBBgZQRjOoKcaABzQAGGjsIM/AAAAAElFTkSuQmCC); + background-size: 4px 8px; } } + +@media only screen and (-webkit-min-device-pixel-ratio: 1.5), only screen and (min-resolution: 1.5dppx) { + .handle-x { + background-image: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAICAMAAADHqI+lAAAACVBMVEX///////////+OSuX+AAAAA3RSTlMZK5EY+QKaAAAAGUlEQVR4AWNgYmJAwegCIMDIiIwxBKhhBgAcSABh8gN42gAAAABJRU5ErkJggg==); + background-size: 8px 4px; } + .handle-y { + background-image: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAgAAAAQCAMAAAAcVM5PAAAACVBMVEX///////////+OSuX+AAAAA3RSTlMEK5EMBzK5AAAAGElEQVR4AWNgYmIAYxgDBBgZQRjOoKcaABzQAGGjsIM/AAAAAElFTkSuQmCC); + background-size: 4px 8px; } } + +.calendar-basic { + /* font icons */ + /* font icons */ } + +@font-face { + .calendar-basic { + font-family: 'tui-calendar-font-icon'; + src: url("../fonts/calendar/icon.eot") format("embedded-opentype"), url("../fonts/calendar/icon.ttf") format("truetype"), url("../fonts/calendar/icon.woff") format("woff"), url("../fonts/calendar/icon.svg") format("svg"); } } + .calendar-basic .calendar-icon { + width: 14px; + height: 14px; + display: inline-block; + vertical-align: middle; } + .calendar-basic .calendar-font-icon { + font-family: 'tui-calendar-font-icon'; + font-size: 10px; + font-weight: normal; } + .calendar-basic .img-bi { + background: url("../images/calender/img-bi.png") no-repeat; + width: 215px; + height: 16px; } + .calendar-basic .ic_view_month { + background: url("../images/calender/ic-view-month.png") no-repeat; } + .calendar-basic .ic_view_week { + background: url("../images/calender/ic-view-week.png") no-repeat; } + .calendar-basic .ic_view_day { + background: url("../images/calender/ic-view-day.png") no-repeat; } + .calendar-basic .ic-arrow-line-left { + background: url("../images/calender/ic-arrow-line-left.png") no-repeat; } + .calendar-basic .ic-arrow-line-right { + background: url("../images/calender/ic-arrow-line-right.png") no-repeat; } + .calendar-basic .ic-travel-time { + background: url("../images/calender/ic-traveltime-w.png") no-repeat; } + .calendar-basic .ic-location-b:before { + content: '\e900'; } + .calendar-basic .ic-lock-b:before { + content: '\e901'; } + .calendar-basic .ic-milestone-b:before { + content: '\e902'; } + .calendar-basic .ic-readonly-b:before { + content: '\e903'; } + .calendar-basic .ic-repeat-b:before { + content: '\e904'; } + .calendar-basic .ic-state-b:before { + content: '\e905'; } + .calendar-basic .ic-user-b:before { + content: '\e906'; } + +.calendar-basic { } + .calendar-basic .open > .dropdown-toggle.btn-default { + background-color: #fff; } + .calendar-basic .dropdown-menu { + top: 25px; + padding: 15px; + border-radius: 2px; + border: 1px solid #e6edef; + background-color: #fff; } + .calendar-basic .dropdown-menu .dropdown-divider { + border-top: 1px solid #e6edef; } + .calendar-basic .dropdown-menu > li > a { + color: #242934; + cursor: pointer; + font-size: 14px; } + .calendar-basic .dropdown-menu > li > a i { + margin-right: 10px; } + .calendar-basic .dropdown-menu > li > a:hover { + color: #24695c; } + .calendar-basic .lnb-calendars-item span { + font-size: 13px; } + .calendar-basic .tui-full-calendar-month-dayname span { + font-weight: 700; } + .calendar-basic .bi15 { + width: 15px; + height: 15px; } + .calendar-basic #top { + height: 49px; + border-bottom: 1px solid #e6edef; + padding: 16px; + font-size: 10px; } + .calendar-basic #lnb { + padding-top: 20px; } + .calendar-basic #lnb label { + margin-bottom: 0; + cursor: pointer; + display: -webkit-box; + display: -ms-flexbox; + display: flex; } + .calendar-basic #lnb .lnb-new-schedule { + display: inline-block; } + .calendar-basic #right { + margin-top: 15px; } + .calendar-basic .lnb-calendars { + display: -webkit-box; + display: -ms-flexbox; + display: flex; + -webkit-box-align: center; + -ms-flex-align: center; + align-items: center; + float: right; + clear: both; } + .calendar-basic .lnb-calendars > div { + padding: 12px 16px; + font-weight: normal; } + .calendar-basic .lnb-calendars-d1 label { + font-weight: normal; } + .calendar-basic .lnb-calendars-item { + min-height: 14px; + line-height: 14px; + display: inline-block; } + .calendar-basic .lnb-calendars-item strong { + font-weight: 700; } + .calendar-basic .lnb-calendars-item:nth-child(n+2) { + margin-left: 10px; } + .calendar-basic .lnb-footer { + color: #999; + font-size: 11px; + position: absolute; + bottom: 12px; + padding-left: 16px; } + .calendar-basic #dropdownMenu-calendarType { + font-weight: 600; } + .calendar-basic #dropdownMenu-calendarType i { + font-size: 16px !important; } + .calendar-basic #dropdownMenu-calendarType i:first-child { + margin-right: 15px; } + .calendar-basic #dropdownMenu-calendarType i:last-child { + margin-left: 15px; } + .calendar-basic #renderRange { + font-size: 22px; + font-weight: 600; } + .calendar-basic #menu-navi { + display: -webkit-box; + display: -ms-flexbox; + display: flex; + -webkit-box-align: center; + -ms-flex-align: center; + align-items: center; + -webkit-box-pack: justify; + -ms-flex-pack: justify; + justify-content: space-between; + padding-bottom: 20px; + border-bottom: 1px solid #e6edef; } + .calendar-basic #menu-navi .move-day { + padding: 6px 15px; } + .calendar-basic #menu-navi .move-day i { + font-size: 25px; } + .calendar-basic #menu-navi button { + padding: 10px 20px; + line-height: 1; } + .calendar-basic #menu-navi button span { + font-weight: 600; } + .calendar-basic #menu-navi button i { + color: #fff; + font-size: 20px; + width: auto; + height: auto; } + .calendar-basic #menu-navi .menu-navi-right { + display: -webkit-box; + display: -ms-flexbox; + display: flex; + -webkit-box-align: center; + -ms-flex-align: center; + align-items: center; } + .calendar-basic #menu-navi .menu-navi-right .move-btn { + margin-left: 15px; } + .calendar-basic .dropdown-menu-title .calendar-icon { + margin-right: 8px; + width: auto; + height: auto; } + .calendar-basic .calendar-bar { + width: 16px; + height: 16px; + margin-right: 5px; + display: inline-block; + border: 1px solid #eee; + vertical-align: middle; } + .calendar-basic .calendar-name { + font-size: 14px; + font-weight: bold; + vertical-align: middle; } + .calendar-basic .schedule-time { + color: #005aff; } + .calendar-basic .weekday-grid-more-schedules { + float: right; + margin-top: 4px; + margin-right: 6px; + height: 18px; + line-height: 17px; + padding: 0 5px; + border-radius: 3px; + border: 1px solid #e6edef; + font-size: 12px; + text-align: center; + color: #000; } + .calendar-basic .tui-full-calendar-popup .tui-full-calendar-popup-section { + margin-bottom: 15px; + min-height: auto; } + .calendar-basic .tui-full-calendar-popup .tui-full-calendar-popup-section-item { + padding: 0; + border-color: #e6edef; } + .calendar-basic .tui-full-calendar-popup .tui-full-calendar-popup-section-item .tui-full-calendar-icon { + margin-left: 10px; } + .calendar-basic .tui-full-calendar-popup .tui-full-calendar-button.tui-full-calendar-section-private { + position: absolute; } + .calendar-basic .tui-full-calendar-popup .tui-full-calendar-section-start-date { + width: 167px; } + .calendar-basic .tui-full-calendar-popup .tui-full-calendar-confirm { + background-color: #24695c; + color: #fff; + display: block; + margin-left: auto; } + .calendar-basic .tui-full-calendar-popup .tui-full-calendar-confirm span { + font-weight: 600; } + .calendar-basic .tui-full-calendar-popup .tui-calendar-title-today { + background-color: #f5f7fb; + color: #24695c; + font-size: 12px; + font-weight: 600; + height: auto; } + .calendar-basic .tui-full-calendar-popup .tui-calendar th { + font-weight: 600; } + .calendar-basic .tui-full-calendar-popup .tui-calendar td { + font-weight: 500; } + .calendar-basic .tui-full-calendar-popup .tui-datepicker .tui-calendar-title { + font-weight: 600; } + .calendar-basic .tui-full-calendar-popup .tui-full-calendar-section-start-date .tui-datepicker { + border-color: #e6edef; } + .calendar-basic .tui-datepicker.tui-rangepicker .tui-is-selectable.tui-is-selected { + background-color: #24695c; } + .calendar-basic .tui-datepicker .tui-is-selectable:hover { + background-color: rgba(36, 105, 92, 0.1); + color: #24695c; } + .calendar-basic .tui-calendar .tui-calendar-today { + color: #24695c; } + .calendar-basic .tui-calendar .tui-timepicker-select { + border-color: #e6edef; } + .calendar-basic .tui-calendar .tui-calendar-header { + border-color: #e6edef; } + +@media (max-width: 1470px) { + .calendar-basic #menu-navi .move-day { + padding: 6px 13px; } + .calendar-basic #menu-navi .move-day i { + font-size: 22px; } + .calendar-basic #menu-navi button { + padding: 8px 12px; } } + +@media (max-width: 767px) { + .calendar-basic #menu-navi { + display: block; } + .calendar-basic #menu-navi > div { + display: inline-block; } + .calendar-basic #menu-navi .menu-navi-center { + position: absolute; + top: 0; + right: 20px; } + .calendar-basic #menu-navi .menu-navi-right { + display: block; + margin-top: 8px; } + .calendar-basic #menu-navi .menu-navi-right .move-btn { + display: inline-block; + float: right; } } + +@media (max-width: 480px) { + .calendar-basic #inb { + padding-top: 10px; } + .calendar-basic #renderRange { + font-size: 18px; } + .calendar-basic #menu-navi { + padding-bottom: 10px; } + .calendar-basic #menu-navi .move-day i { + font-size: 16px; } + .calendar-basic #menu-navi button { + font-size: 12px; } + .calendar-basic #dropdownMenu-calendarType i { + font-size: 12px !important; } + .calendar-basic #dropdownMenu-calendarType i:first-child { + margin-right: 8px; } + .calendar-basic #dropdownMenu-calendarType i:last-child { + margin-left: 8px; } + .calendar-basic .tui-full-calendar-popup-container { + min-width: 270px; + max-width: 270px; } + .calendar-basic .tui-full-calendar-section-calendar { + width: 100%; } + .calendar-basic .tui-full-calendar-section-title input { + width: 160px; + min-width: 160px; } + .calendar-basic .tui-full-calendar-popup-section-item.tui-full-calendar-section-location input { + width: 160px; } + .calendar-basic .tui-full-calendar-popup .tui-full-calendar-section-start-date { + width: 232px; } + .calendar-basic .tui-full-calendar-section-end-date { + width: 232px; } + .calendar-basic .tui-full-calendar-popup-section-item.tui-full-calendar-section-allday { + margin-top: 10px; + height: auto; } + .calendar-basic .tui-full-calendar-popup-section-item.tui-full-calendar-section-allday .tui-full-calendar-icon { + margin-left: unset; } } diff --git a/public/admin/assets/css/chartist.css b/public/admin/assets/css/chartist.css new file mode 100644 index 0000000..722874f --- /dev/null +++ b/public/admin/assets/css/chartist.css @@ -0,0 +1,591 @@ +.ct-label { + fill: rgba(0, 0, 0, 0.4); + color: rgba(0, 0, 0, 0.4); + font-size: 0.75rem; + line-height: 1; } + +.ct-chart-line .ct-label, +.ct-chart-bar .ct-label { + display: block; + display: -webkit-box; + display: -ms-flexbox; + display: flex; } + +.ct-chart-pie .ct-label, +.ct-chart-donut .ct-label { + dominant-baseline: central; } + +.ct-label.ct-horizontal.ct-start { + -webkit-box-align: flex-end; + -ms-flex-align: flex-end; + align-items: flex-end; + -webkit-box-pack: flex-start; + -ms-flex-pack: flex-start; + justify-content: flex-start; + text-align: left; + text-anchor: start; } + +.ct-label.ct-horizontal.ct-end { + -webkit-box-align: flex-start; + -ms-flex-align: flex-start; + align-items: flex-start; + -webkit-box-pack: flex-start; + -ms-flex-pack: flex-start; + justify-content: flex-start; + text-align: left; + text-anchor: start; } + +.ct-label.ct-vertical.ct-start { + -webkit-box-align: flex-end; + -ms-flex-align: flex-end; + align-items: flex-end; + -webkit-box-pack: flex-end; + -ms-flex-pack: flex-end; + justify-content: flex-end; + text-align: right; + text-anchor: end; } + +.ct-label.ct-vertical.ct-end { + -webkit-box-align: flex-end; + -ms-flex-align: flex-end; + align-items: flex-end; + -webkit-box-pack: flex-start; + -ms-flex-pack: flex-start; + justify-content: flex-start; + text-align: left; + text-anchor: start; } + +.ct-chart-bar .ct-label.ct-horizontal.ct-start { + -webkit-box-align: flex-end; + -ms-flex-align: flex-end; + align-items: flex-end; + -webkit-box-pack: center; + -ms-flex-pack: center; + justify-content: center; + text-align: center; + text-anchor: start; } + +.ct-chart-bar .ct-label.ct-horizontal.ct-end { + -webkit-box-align: flex-start; + -ms-flex-align: flex-start; + align-items: flex-start; + -webkit-box-pack: center; + -ms-flex-pack: center; + justify-content: center; + text-align: center; + text-anchor: start; } + +.ct-chart-bar.ct-horizontal-bars .ct-label.ct-horizontal.ct-start { + -webkit-box-align: flex-end; + -ms-flex-align: flex-end; + align-items: flex-end; + -webkit-box-pack: flex-start; + -ms-flex-pack: flex-start; + justify-content: flex-start; + text-align: left; + text-anchor: start; } + +.ct-chart-bar.ct-horizontal-bars .ct-label.ct-horizontal.ct-end { + -webkit-box-align: flex-start; + -ms-flex-align: flex-start; + align-items: flex-start; + -webkit-box-pack: flex-start; + -ms-flex-pack: flex-start; + justify-content: flex-start; + text-align: left; + text-anchor: start; } + +.ct-chart-bar.ct-horizontal-bars .ct-label.ct-vertical.ct-start { + -webkit-box-align: center; + -ms-flex-align: center; + align-items: center; + -webkit-box-pack: flex-end; + -ms-flex-pack: flex-end; + justify-content: flex-end; + text-align: right; + text-anchor: end; } + +.ct-chart-bar.ct-horizontal-bars .ct-label.ct-vertical.ct-end { + -webkit-box-align: center; + -ms-flex-align: center; + align-items: center; + -webkit-box-pack: flex-start; + -ms-flex-pack: flex-start; + justify-content: flex-start; + text-align: left; + text-anchor: end; } + +.ct-grid { + stroke: rgba(0, 0, 0, 0.2); + stroke-width: 1px; + stroke-dasharray: 2px; } + +.ct-grid-background { + fill: none; } + +.ct-point { + stroke-width: 10px; + stroke-linecap: round; } + +.ct-line { + fill: none; + stroke-width: 4px; } + +.ct-area { + stroke: none; + fill-opacity: 0.1; } + +.ct-bar { + fill: none; + stroke-width: 10px; } + +.ct-slice-donut { + fill: none; + stroke-width: 60px; } + +.ct-series-a .ct-point, .ct-series-a .ct-line, .ct-series-a .ct-bar, .ct-series-a .ct-slice-donut { + stroke: #24695c; } + +.ct-series-a .ct-slice-pie, .ct-series-a .ct-slice-donut-solid, .ct-series-a .ct-area { + fill: #24695c; } + +.ct-series-b .ct-point, .ct-series-b .ct-line, .ct-series-b .ct-bar, .ct-series-b .ct-slice-donut { + stroke: #ba895d; } + +.ct-series-b .ct-slice-pie, .ct-series-b .ct-slice-donut-solid, .ct-series-b .ct-area { + fill: #ba895d; } + +.ct-series-c .ct-point, .ct-series-c .ct-line, .ct-series-c .ct-bar, .ct-series-c .ct-slice-donut { + stroke: #e2c636; } + +.ct-series-c .ct-slice-pie, .ct-series-c .ct-slice-donut-solid, .ct-series-c .ct-area { + fill: #e2c636; } + +.ct-series-d .ct-point, .ct-series-d .ct-line, .ct-series-d .ct-bar, .ct-series-d .ct-slice-donut { + stroke: #717171; } + +.ct-series-d .ct-slice-pie, .ct-series-d .ct-slice-donut-solid, .ct-series-d .ct-area { + fill: #717171; } + +.ct-series-e .ct-point, .ct-series-e .ct-line, .ct-series-e .ct-bar, .ct-series-e .ct-slice-donut { + stroke: #222222; } + +.ct-series-e .ct-slice-pie, .ct-series-e .ct-slice-donut-solid, .ct-series-e .ct-area { + fill: #222222; } + +.ct-series-f .ct-point, .ct-series-f .ct-line, .ct-series-f .ct-bar, .ct-series-f .ct-slice-donut { + stroke: #222222; } + +.ct-series-f .ct-slice-pie, .ct-series-f .ct-slice-donut-solid, .ct-series-f .ct-area { + fill: #222222; } + +.ct-series-g .ct-point, .ct-series-g .ct-line, .ct-series-g .ct-bar, .ct-series-g .ct-slice-donut { + stroke: #222222; } + +.ct-series-g .ct-slice-pie, .ct-series-g .ct-slice-donut-solid, .ct-series-g .ct-area { + fill: #222222; } + +.ct-series-h .ct-point, .ct-series-h .ct-line, .ct-series-h .ct-bar, .ct-series-h .ct-slice-donut { + stroke: #222222; } + +.ct-series-h .ct-slice-pie, .ct-series-h .ct-slice-donut-solid, .ct-series-h .ct-area { + fill: #222222; } + +.ct-series-i .ct-point, .ct-series-i .ct-line, .ct-series-i .ct-bar, .ct-series-i .ct-slice-donut { + stroke: #222222; } + +.ct-series-i .ct-slice-pie, .ct-series-i .ct-slice-donut-solid, .ct-series-i .ct-area { + fill: #222222; } + +.ct-series-j .ct-point, .ct-series-j .ct-line, .ct-series-j .ct-bar, .ct-series-j .ct-slice-donut { + stroke: #222222; } + +.ct-series-j .ct-slice-pie, .ct-series-j .ct-slice-donut-solid, .ct-series-j .ct-area { + fill: #222222; } + +.ct-series-k .ct-point, .ct-series-k .ct-line, .ct-series-k .ct-bar, .ct-series-k .ct-slice-donut { + stroke: #222222; } + +.ct-series-k .ct-slice-pie, .ct-series-k .ct-slice-donut-solid, .ct-series-k .ct-area { + fill: #222222; } + +.ct-series-l .ct-point, .ct-series-l .ct-line, .ct-series-l .ct-bar, .ct-series-l .ct-slice-donut { + stroke: #222222; } + +.ct-series-l .ct-slice-pie, .ct-series-l .ct-slice-donut-solid, .ct-series-l .ct-area { + fill: #222222; } + +.ct-series-m .ct-point, .ct-series-m .ct-line, .ct-series-m .ct-bar, .ct-series-m .ct-slice-donut { + stroke: #222222; } + +.ct-series-m .ct-slice-pie, .ct-series-m .ct-slice-donut-solid, .ct-series-m .ct-area { + fill: #222222; } + +.ct-series-n .ct-point, .ct-series-n .ct-line, .ct-series-n .ct-bar, .ct-series-n .ct-slice-donut { + stroke: #222222; } + +.ct-series-n .ct-slice-pie, .ct-series-n .ct-slice-donut-solid, .ct-series-n .ct-area { + fill: #222222; } + +.ct-series-o .ct-point, .ct-series-o .ct-line, .ct-series-o .ct-bar, .ct-series-o .ct-slice-donut { + stroke: #222222; } + +.ct-series-o .ct-slice-pie, .ct-series-o .ct-slice-donut-solid, .ct-series-o .ct-area { + fill: #222222; } + +.ct-square { + display: block; + position: relative; + width: 100%; } + .ct-square:before { + display: block; + float: left; + content: ""; + width: 0; + height: 0; + padding-bottom: 100%; } + .ct-square:after { + content: ""; + display: table; + clear: both; } + .ct-square > svg { + display: block; + position: absolute; + top: 0; + left: 0; } + +.ct-minor-second { + display: block; + position: relative; + width: 100%; } + .ct-minor-second:before { + display: block; + float: left; + content: ""; + width: 0; + height: 0; + padding-bottom: 93.75%; } + .ct-minor-second:after { + content: ""; + display: table; + clear: both; } + .ct-minor-second > svg { + display: block; + position: absolute; + top: 0; + left: 0; } + +.ct-major-second { + display: block; + position: relative; + width: 100%; } + .ct-major-second:before { + display: block; + float: left; + content: ""; + width: 0; + height: 0; + padding-bottom: 88.88889%; } + .ct-major-second:after { + content: ""; + display: table; + clear: both; } + .ct-major-second > svg { + display: block; + position: absolute; + top: 0; + left: 0; } + +.ct-minor-third { + display: block; + position: relative; + width: 100%; } + .ct-minor-third:before { + display: block; + float: left; + content: ""; + width: 0; + height: 0; + padding-bottom: 83.33333%; } + .ct-minor-third:after { + content: ""; + display: table; + clear: both; } + .ct-minor-third > svg { + display: block; + position: absolute; + top: 0; + left: 0; } + +.ct-major-third { + display: block; + position: relative; + width: 100%; } + .ct-major-third:before { + display: block; + float: left; + content: ""; + width: 0; + height: 0; + padding-bottom: 80%; } + .ct-major-third:after { + content: ""; + display: table; + clear: both; } + .ct-major-third > svg { + display: block; + position: absolute; + top: 0; + left: 0; } + +.ct-perfect-fourth { + display: block; + position: relative; + width: 100%; } + .ct-perfect-fourth:before { + display: block; + float: left; + content: ""; + width: 0; + height: 0; + padding-bottom: 75%; } + .ct-perfect-fourth:after { + content: ""; + display: table; + clear: both; } + .ct-perfect-fourth > svg { + display: block; + position: absolute; + top: 0; + left: 0; } + +.ct-perfect-fifth { + display: block; + position: relative; + width: 100%; } + .ct-perfect-fifth:before { + display: block; + float: left; + content: ""; + width: 0; + height: 0; + padding-bottom: 66.66667%; } + .ct-perfect-fifth:after { + content: ""; + display: table; + clear: both; } + .ct-perfect-fifth > svg { + display: block; + position: absolute; + top: 0; + left: 0; } + +.ct-minor-sixth { + display: block; + position: relative; + width: 100%; } + .ct-minor-sixth:before { + display: block; + float: left; + content: ""; + width: 0; + height: 0; + padding-bottom: 62.5%; } + .ct-minor-sixth:after { + content: ""; + display: table; + clear: both; } + .ct-minor-sixth > svg { + display: block; + position: absolute; + top: 0; + left: 0; } + +.ct-golden-section { + display: block; + position: relative; + width: 100%; } + .ct-golden-section:before { + display: block; + float: left; + content: ""; + width: 0; + height: 0; + padding-bottom: 61.8047%; } + .ct-golden-section:after { + content: ""; + display: table; + clear: both; } + .ct-golden-section > svg { + display: block; + position: absolute; + top: 0; + left: 0; } + +.ct-major-sixth { + display: block; + position: relative; + width: 100%; } + .ct-major-sixth:before { + display: block; + float: left; + content: ""; + width: 0; + height: 0; + padding-bottom: 60%; } + .ct-major-sixth:after { + content: ""; + display: table; + clear: both; } + .ct-major-sixth > svg { + display: block; + position: absolute; + top: 0; + left: 0; } + +.ct-minor-seventh { + display: block; + position: relative; + width: 100%; } + .ct-minor-seventh:before { + display: block; + float: left; + content: ""; + width: 0; + height: 0; + padding-bottom: 56.25%; } + .ct-minor-seventh:after { + content: ""; + display: table; + clear: both; } + .ct-minor-seventh > svg { + display: block; + position: absolute; + top: 0; + left: 0; } + +.ct-major-seventh { + display: block; + position: relative; + width: 100%; } + .ct-major-seventh:before { + display: block; + float: left; + content: ""; + width: 0; + height: 0; + padding-bottom: 53.33333%; } + .ct-major-seventh:after { + content: ""; + display: table; + clear: both; } + .ct-major-seventh > svg { + display: block; + position: absolute; + top: 0; + left: 0; } + +.ct-octave { + display: block; + position: relative; + width: 100%; } + .ct-octave:before { + display: block; + float: left; + content: ""; + width: 0; + height: 0; + padding-bottom: 50%; } + .ct-octave:after { + content: ""; + display: table; + clear: both; } + .ct-octave > svg { + display: block; + position: absolute; + top: 0; + left: 0; } + +.ct-major-tenth { + display: block; + position: relative; + width: 100%; } + .ct-major-tenth:before { + display: block; + float: left; + content: ""; + width: 0; + height: 0; + padding-bottom: 40%; } + .ct-major-tenth:after { + content: ""; + display: table; + clear: both; } + .ct-major-tenth > svg { + display: block; + position: absolute; + top: 0; + left: 0; } + +.ct-major-eleventh { + display: block; + position: relative; + width: 100%; } + .ct-major-eleventh:before { + display: block; + float: left; + content: ""; + width: 0; + height: 0; + padding-bottom: 37.5%; } + .ct-major-eleventh:after { + content: ""; + display: table; + clear: both; } + .ct-major-eleventh > svg { + display: block; + position: absolute; + top: 0; + left: 0; } + +.ct-major-twelfth { + display: block; + position: relative; + width: 100%; } + .ct-major-twelfth:before { + display: block; + float: left; + content: ""; + width: 0; + height: 0; + padding-bottom: 33.33333%; } + .ct-major-twelfth:after { + content: ""; + display: table; + clear: both; } + .ct-major-twelfth > svg { + display: block; + position: absolute; + top: 0; + left: 0; } + +.ct-double-octave { + display: block; + position: relative; + width: 100%; } + .ct-double-octave:before { + display: block; + float: left; + content: ""; + width: 0; + height: 0; + padding-bottom: 25%; } + .ct-double-octave:after { + content: ""; + display: table; + clear: both; } + .ct-double-octave > svg { + display: block; + position: absolute; + top: 0; + left: 0; } diff --git a/public/admin/assets/css/color-1.css b/public/admin/assets/css/color-1.css new file mode 100644 index 0000000..e69de29 diff --git a/public/admin/assets/css/datatable-extension.css b/public/admin/assets/css/datatable-extension.css new file mode 100644 index 0000000..13d78d0 --- /dev/null +++ b/public/admin/assets/css/datatable-extension.css @@ -0,0 +1,1246 @@ +@charset "UTF-8"; +/*button bootstrap4 css*/ +@keyframes dtb-spinner { + 100% { + -webkit-transform: rotate(360deg); + transform: rotate(360deg); } } + +@-webkit-keyframes dtb-spinner { + 100% { + -webkit-transform: rotate(360deg); + transform: rotate(360deg); } } + +div.dt-button-info { + position: fixed; + top: 50%; + left: 50%; + width: 400px; + margin-top: -100px; + margin-left: -200px; + background-color: white; + border: 2px solid #111; + -webkit-box-shadow: 3px 3px 8px rgba(0, 0, 0, 0.3); + box-shadow: 3px 3px 8px rgba(0, 0, 0, 0.3); + border-radius: 3px; + text-align: center; + z-index: 21; } + div.dt-button-info h2 { + padding: 0.5em; + margin: 0; + font-weight: normal; + border-bottom: 1px solid #ddd; + background-color: #f3f3f3; } + div.dt-button-info > div { + padding: 1em; } + +ul.dt-button-collection.dropdown-menu { + display: block; + z-index: 2002; + -webkit-column-gap: 8px; + -moz-column-gap: 8px; + -ms-column-gap: 8px; + -o-column-gap: 8px; + column-gap: 8px; } + ul.dt-button-collection.dropdown-menu.fixed { + position: fixed; + top: 50%; + left: 50%; + margin-left: -75px; + border-radius: 0; } + ul.dt-button-collection.dropdown-menu.fixed.two-column { + margin-left: -150px; } + ul.dt-button-collection.dropdown-menu.fixed.three-column { + margin-left: -225px; } + ul.dt-button-collection.dropdown-menu.fixed.four-column { + margin-left: -300px; } + ul.dt-button-collection.dropdown-menu > * { + -webkit-column-break-inside: avoid; + -moz-column-break-inside: avoid; + break-inside: avoid; } + ul.dt-button-collection.dropdown-menu.two-column { + width: 300px; + padding-bottom: 1px; + -webkit-column-count: 2; + -moz-column-count: 2; + -ms-column-count: 2; + -o-column-count: 2; + column-count: 2; } + ul.dt-button-collection.dropdown-menu.three-column { + width: 450px; + padding-bottom: 1px; + -webkit-column-count: 3; + -moz-column-count: 3; + -ms-column-count: 3; + -o-column-count: 3; + column-count: 3; } + ul.dt-button-collection.dropdown-menu.four-column { + width: 600px; + padding-bottom: 1px; + -webkit-column-count: 4; + -moz-column-count: 4; + -ms-column-count: 4; + -o-column-count: 4; + column-count: 4; } + ul.dt-button-collection.dropdown-menu .dt-button { + border-radius: 0; } + +ul.dt-button-collection { + -webkit-column-gap: 8px; + -moz-column-gap: 8px; + -ms-column-gap: 8px; + -o-column-gap: 8px; + column-gap: 8px; } + ul.dt-button-collection.fixed { + position: fixed; + top: 50%; + left: 50%; + margin-left: -75px; + border-radius: 0; } + ul.dt-button-collection.fixed.two-column { + margin-left: -150px; } + ul.dt-button-collection.fixed.three-column { + margin-left: -225px; } + ul.dt-button-collection.fixed.four-column { + margin-left: -300px; } + ul.dt-button-collection > * { + -webkit-column-break-inside: avoid; + -moz-column-break-inside: avoid; + break-inside: avoid; } + ul.dt-button-collection.two-column { + width: 300px; + padding-bottom: 1px; + -webkit-column-count: 2; + -moz-column-count: 2; + -ms-column-count: 2; + -o-column-count: 2; + column-count: 2; } + ul.dt-button-collection.three-column { + width: 450px; + padding-bottom: 1px; + -webkit-column-count: 3; + -moz-column-count: 3; + -ms-column-count: 3; + -o-column-count: 3; + column-count: 3; } + ul.dt-button-collection.four-column { + width: 600px; + padding-bottom: 1px; + -webkit-column-count: 4; + -moz-column-count: 4; + -ms-column-count: 4; + -o-column-count: 4; + column-count: 4; } + ul.dt-button-collection .dt-button { + border-radius: 0; } + ul.dt-button-collection.fixed { + max-width: none; } + ul.dt-button-collection.fixed:before, ul.dt-button-collection.fixed:after { + display: none; } + +div.dt-button-background { + position: fixed; + top: 0; + left: 0; + width: 100%; + height: 100%; + z-index: 999; } + +@media screen and (max-width: 767px) { + div.dt-buttons { + float: none; + width: 100%; + text-align: center; + margin-bottom: 0.5em; } + div.dt-buttons a.btn { + float: none; } } + +div.dt-buttons button.btn.processing, +div.dt-buttons div.btn.processing, +div.dt-buttons a.btn.processing { + color: rgba(0, 0, 0, 0.2); } + div.dt-buttons button.btn.processing:after, + div.dt-buttons div.btn.processing:after, + div.dt-buttons a.btn.processing:after { + position: absolute; + top: 50%; + left: 50%; + width: 16px; + height: 16px; + margin: -8px 0 0 -8px; + -webkit-box-sizing: border-box; + box-sizing: border-box; + display: block; + content: ' '; + border: 2px solid #282828; + border-radius: 50%; + border-left-color: transparent; + border-right-color: transparent; + animation: dtb-spinner 1500ms infinite linear; + -o-animation: dtb-spinner 1500ms infinite linear; + -ms-animation: dtb-spinner 1500ms infinite linear; + -webkit-animation: dtb-spinner 1500ms infinite linear; + -moz-animation: dtb-spinner 1500ms infinite linear; } + +/*button bootstrap4 css*/ +/*buttons datatable css*/ +@keyframes dtb-spinner { + 100% { + -webkit-transform: rotate(360deg); + transform: rotate(360deg); } } + +@-webkit-keyframes dtb-spinner { + 100% { + -webkit-transform: rotate(360deg); + transform: rotate(360deg); } } + +div.dt-button-info { + position: fixed; + top: 50%; + left: 50%; + width: 400px; + margin-top: -100px; + margin-left: -200px; + background-color: white; + border: 2px solid #111; + -webkit-box-shadow: 3px 3px 8px rgba(0, 0, 0, 0.3); + box-shadow: 3px 3px 8px rgba(0, 0, 0, 0.3); + border-radius: 3px; + text-align: center; + z-index: 21; } + div.dt-button-info h2 { + padding: 0.5em; + margin: 0; + font-weight: normal; + border-bottom: 1px solid #ddd; + background-color: #f3f3f3; } + div.dt-button-info > div { + padding: 1em; } + +button.dt-button, +div.dt-button, +a.dt-button { + position: relative; + display: inline-block; + -webkit-box-sizing: border-box; + box-sizing: border-box; + margin-right: 0.333em; + margin-bottom: 0.333em; + padding: 0.5em 1em; + border: 1px solid #999; + border-radius: 2px; + cursor: pointer; + font-size: 0.88em; + line-height: 1.6em; + color: black; + white-space: nowrap; + overflow: hidden; + background-color: #e9e9e9; + /* Fallback */ + /* Chrome 10+, Saf5.1+, iOS 5+ */ + /* FF3.6 */ + /* IE10 */ + /* Opera 11.10+ */ + background-image: -webkit-gradient(linear, left top, left bottom, from(white), to(#e9e9e9)); + background-image: linear-gradient(to bottom, white 0%, #e9e9e9 100%); + filter: progid:DXImageTransform.Microsoft.gradient(GradientType=0,StartColorStr='white', EndColorStr='#e9e9e9'); + -webkit-user-select: none; + -moz-user-select: none; + -ms-user-select: none; + user-select: none; + text-decoration: none; + outline: none; } + button.dt-button.disabled, + div.dt-button.disabled, + a.dt-button.disabled { + color: #999; + border: 1px solid #d0d0d0; + cursor: default; + background-color: #f9f9f9; + /* Fallback */ + /* Chrome 10+, Saf5.1+, iOS 5+ */ + /* FF3.6 */ + /* IE10 */ + /* Opera 11.10+ */ + background-image: -webkit-gradient(linear, left top, left bottom, from(#ffffff), to(#f9f9f9)); + background-image: linear-gradient(to bottom, #ffffff 0%, #f9f9f9 100%); + filter: progid:DXImageTransform.Microsoft.gradient(GradientType=0,StartColorStr='#ffffff', EndColorStr='#f9f9f9'); } + button.dt-button:active:not(.disabled), button.dt-button.active:not(.disabled), + div.dt-button:active:not(.disabled), + div.dt-button.active:not(.disabled), + a.dt-button:active:not(.disabled), + a.dt-button.active:not(.disabled) { + background-color: #e2e2e2; + /* Fallback */ + /* Chrome 10+, Saf5.1+, iOS 5+ */ + /* FF3.6 */ + /* IE10 */ + /* Opera 11.10+ */ + background-image: -webkit-gradient(linear, left top, left bottom, from(#f3f3f3), to(#e2e2e2)); + background-image: linear-gradient(to bottom, #f3f3f3 0%, #e2e2e2 100%); + filter: progid:DXImageTransform.Microsoft.gradient(GradientType=0,StartColorStr='#f3f3f3', EndColorStr='#e2e2e2'); + -webkit-box-shadow: inset 1px 1px 3px #999999; + box-shadow: inset 1px 1px 3px #999999; } + button.dt-button:active:not(.disabled):hover:not(.disabled), button.dt-button.active:not(.disabled):hover:not(.disabled), + div.dt-button:active:not(.disabled):hover:not(.disabled), + div.dt-button.active:not(.disabled):hover:not(.disabled), + a.dt-button:active:not(.disabled):hover:not(.disabled), + a.dt-button.active:not(.disabled):hover:not(.disabled) { + -webkit-box-shadow: inset 1px 1px 3px #999999; + box-shadow: inset 1px 1px 3px #999999; + background-color: #cccccc; + /* Fallback */ + /* Chrome 10+, Saf5.1+, iOS 5+ */ + /* FF3.6 */ + /* IE10 */ + /* Opera 11.10+ */ + background-image: -webkit-gradient(linear, left top, left bottom, from(#eaeaea), to(#cccccc)); + background-image: linear-gradient(to bottom, #eaeaea 0%, #cccccc 100%); + filter: progid:DXImageTransform.Microsoft.gradient(GradientType=0,StartColorStr='#eaeaea', EndColorStr='#cccccc'); } + button.dt-button:hover, + div.dt-button:hover, + a.dt-button:hover { + text-decoration: none; } + button.dt-button:hover:not(.disabled), + div.dt-button:hover:not(.disabled), + a.dt-button:hover:not(.disabled) { + border: 1px solid #666; + background-color: #e0e0e0; + /* Fallback */ + /* Chrome 10+, Saf5.1+, iOS 5+ */ + /* FF3.6 */ + /* IE10 */ + /* Opera 11.10+ */ + background-image: -webkit-gradient(linear, left top, left bottom, from(#f9f9f9), to(#e0e0e0)); + background-image: linear-gradient(to bottom, #f9f9f9 0%, #e0e0e0 100%); + filter: progid:DXImageTransform.Microsoft.gradient(GradientType=0,StartColorStr='#f9f9f9', EndColorStr='#e0e0e0'); } + button.dt-button:focus:not(.disabled), + div.dt-button:focus:not(.disabled), + a.dt-button:focus:not(.disabled) { + border: 1px solid #426c9e; + text-shadow: 0 1px 0 #c4def1; + outline: none; + background-color: #79ace9; + /* Fallback */ + /* Chrome 10+, Saf5.1+, iOS 5+ */ + /* FF3.6 */ + /* IE10 */ + /* Opera 11.10+ */ + background-image: -webkit-gradient(linear, left top, left bottom, from(#bddef4), to(#79ace9)); + background-image: linear-gradient(to bottom, #bddef4 0%, #79ace9 100%); + filter: progid:DXImageTransform.Microsoft.gradient(GradientType=0,StartColorStr='#bddef4', EndColorStr='#79ace9'); } + +.dt-button embed { + outline: none; } + +div.dt-buttons { + position: relative; + float: left; } + div.dt-buttons.buttons-right { + float: right; } + +div.dt-button-collection { + position: absolute; + top: 0; + left: 0; + width: 150px; + margin-top: 3px; + padding: 8px 8px 4px 8px; + border: 1px solid #ccc; + border: 1px solid rgba(0, 0, 0, 0.4); + background-color: white; + overflow: hidden; + z-index: 2002; + border-radius: 5px; + -webkit-box-shadow: 3px 3px 5px rgba(0, 0, 0, 0.3); + box-shadow: 3px 3px 5px rgba(0, 0, 0, 0.3); + -webkit-column-gap: 8px; + -moz-column-gap: 8px; + -ms-column-gap: 8px; + -o-column-gap: 8px; + column-gap: 8px; } + div.dt-button-collection button.dt-button, + div.dt-button-collection div.dt-button, + div.dt-button-collection a.dt-button { + position: relative; + left: 0; + right: 0; + width: 100%; + display: block; + float: none; + margin-bottom: 4px; + margin-right: 0; } + div.dt-button-collection button.dt-button:active:not(.disabled), div.dt-button-collection button.dt-button.active:not(.disabled), + div.dt-button-collection div.dt-button:active:not(.disabled), + div.dt-button-collection div.dt-button.active:not(.disabled), + div.dt-button-collection a.dt-button:active:not(.disabled), + div.dt-button-collection a.dt-button.active:not(.disabled) { + background-color: #dadada; + /* Fallback */ + /* Chrome 10+, Saf5.1+, iOS 5+ */ + /* FF3.6 */ + /* IE10 */ + /* Opera 11.10+ */ + background-image: -webkit-gradient(linear, left top, left bottom, from(#f0f0f0), to(#dadada)); + background-image: linear-gradient(to bottom, #f0f0f0 0%, #dadada 100%); + filter: progid:DXImageTransform.Microsoft.gradient(GradientType=0,StartColorStr='#f0f0f0', EndColorStr='#dadada'); + -webkit-box-shadow: inset 1px 1px 3px #666; + box-shadow: inset 1px 1px 3px #666; } + div.dt-button-collection.fixed { + position: fixed; + top: 50%; + left: 50%; + margin-left: -75px; + border-radius: 0; } + div.dt-button-collection.fixed.two-column { + margin-left: -150px; } + div.dt-button-collection.fixed.three-column { + margin-left: -225px; } + div.dt-button-collection.fixed.four-column { + margin-left: -300px; } + div.dt-button-collection > * { + -webkit-column-break-inside: avoid; + -moz-column-break-inside: avoid; + break-inside: avoid; } + div.dt-button-collection.two-column { + width: 300px; + padding-bottom: 1px; + -webkit-column-count: 2; + -moz-column-count: 2; + -ms-column-count: 2; + -o-column-count: 2; + column-count: 2; } + div.dt-button-collection.three-column { + width: 450px; + padding-bottom: 1px; + -webkit-column-count: 3; + -moz-column-count: 3; + -ms-column-count: 3; + -o-column-count: 3; + column-count: 3; } + div.dt-button-collection.four-column { + width: 600px; + padding-bottom: 1px; + -webkit-column-count: 4; + -moz-column-count: 4; + -ms-column-count: 4; + -o-column-count: 4; + column-count: 4; } + div.dt-button-collection .dt-button { + border-radius: 0; } + +div.dt-button-background { + position: fixed; + top: 0; + left: 0; + width: 100%; + height: 100%; + background: rgba(0, 0, 0, 0.7); + /* Fallback */ + /* IE10 Consumer Preview */ + /* Firefox */ + /* Opera */ + /* Webkit (Safari/Chrome 10) */ + /* Webkit (Chrome 11+) */ + background: radial-gradient(ellipse farthest-corner at center, rgba(0, 0, 0, 0.3) 0%, rgba(0, 0, 0, 0.7) 100%); + /* W3C Markup, IE10 Release Preview */ + z-index: 2001; } + +@media screen and (max-width: 640px) { + div.dt-buttons { + float: none !important; + text-align: center; } } + +button.dt-button.processing, +div.dt-button.processing, +a.dt-button.processing { + color: rgba(0, 0, 0, 0.2); } + button.dt-button.processing:after, + div.dt-button.processing:after, + a.dt-button.processing:after { + position: absolute; + top: 50%; + left: 50%; + width: 16px; + height: 16px; + margin: -8px 0 0 -8px; + -webkit-box-sizing: border-box; + box-sizing: border-box; + display: block; + content: ' '; + border: 2px solid #282828; + border-radius: 50%; + border-left-color: transparent; + border-right-color: transparent; + animation: dtb-spinner 1500ms infinite linear; + -o-animation: dtb-spinner 1500ms infinite linear; + -ms-animation: dtb-spinner 1500ms infinite linear; + -webkit-animation: dtb-spinner 1500ms infinite linear; + -moz-animation: dtb-spinner 1500ms infinite linear; } + +/*buttons datatable css*/ +/*buttons jqueryui css*/ +@keyframes dtb-spinner { + 100% { + -webkit-transform: rotate(360deg); + transform: rotate(360deg); } } + +@-webkit-keyframes dtb-spinner { + 100% { + -webkit-transform: rotate(360deg); + transform: rotate(360deg); } } + +div.dt-button-info { + position: fixed; + top: 50%; + left: 50%; + width: 400px; + margin-top: -100px; + margin-left: -200px; + background-color: white; + border: 2px solid #111; + -webkit-box-shadow: 3px 3px 8px rgba(0, 0, 0, 0.3); + box-shadow: 3px 3px 8px rgba(0, 0, 0, 0.3); + border-radius: 3px; + text-align: center; + z-index: 21; } + div.dt-button-info h2 { + padding: 0.5em; + margin: 0; + font-weight: normal; + border-bottom: 1px solid #ddd; + background-color: #f3f3f3; } + div.dt-button-info > div { + padding: 1em; } + +div.dt-buttons { + position: relative; + float: left; } + div.dt-buttons .dt-button { + margin-right: 0; } + div.dt-buttons .dt-button span.ui-icon { + display: inline-block; + vertical-align: middle; + margin-top: -2px; } + div.dt-buttons .dt-button:active { + outline: none; } + div.dt-buttons .dt-button:hover > span { + background-color: rgba(0, 0, 0, 0.05); } + +div.dt-button-collection { + position: absolute; + top: 0; + left: 0; + width: 150px; + margin-top: 3px; + padding: 8px 8px 4px 8px; + border: 1px solid #ccc; + border: 1px solid rgba(0, 0, 0, 0.4); + background-color: #f3f3f3; + background-color: rgba(255, 255, 255, 0.3); + overflow: hidden; + z-index: 2002; + border-radius: 5px; + -webkit-box-shadow: 3px 3px 5px rgba(0, 0, 0, 0.3); + box-shadow: 3px 3px 5px rgba(0, 0, 0, 0.3); + z-index: 2002; + -webkit-column-gap: 8px; + -moz-column-gap: 8px; + -ms-column-gap: 8px; + -o-column-gap: 8px; + column-gap: 8px; + -webkit-column-gap: 0; + -moz-column-gap: 0; + -ms-column-gap: 0; + -o-column-gap: 0; + column-gap: 0; } + div.dt-button-collection .dt-button { + position: relative; + left: 0; + right: 0; + width: 100%; + display: block; + float: none; + margin-right: 0; + margin-bottom: 4px; } + div.dt-button-collection .dt-button:hover > span { + background-color: rgba(0, 0, 0, 0.05); } + div.dt-button-collection.fixed { + position: fixed; + top: 50%; + left: 50%; + margin-left: -75px; + border-radius: 0; } + div.dt-button-collection.fixed.two-column { + margin-left: -150px; } + div.dt-button-collection.fixed.three-column { + margin-left: -225px; } + div.dt-button-collection.fixed.four-column { + margin-left: -300px; } + div.dt-button-collection > * { + -webkit-column-break-inside: avoid; + -moz-column-break-inside: avoid; + break-inside: avoid; } + div.dt-button-collection.two-column { + width: 300px; + padding-bottom: 1px; + -webkit-column-count: 2; + -moz-column-count: 2; + -ms-column-count: 2; + -o-column-count: 2; + column-count: 2; } + div.dt-button-collection.three-column { + width: 450px; + padding-bottom: 1px; + -webkit-column-count: 3; + -moz-column-count: 3; + -ms-column-count: 3; + -o-column-count: 3; + column-count: 3; } + div.dt-button-collection.four-column { + width: 600px; + padding-bottom: 1px; + -webkit-column-count: 4; + -moz-column-count: 4; + -ms-column-count: 4; + -o-column-count: 4; + column-count: 4; } + div.dt-button-collection .dt-button { + border-radius: 0; } + +div.dt-button-background { + position: fixed; + top: 0; + left: 0; + width: 100%; + height: 100%; + background: rgba(0, 0, 0, 0.7); + /* Fallback */ + /* IE10 Consumer Preview */ + /* Firefox */ + /* Opera */ + /* Webkit (Safari/Chrome 10) */ + /* Webkit (Chrome 11+) */ + background: radial-gradient(ellipse farthest-corner at center, rgba(0, 0, 0, 0.3) 0%, rgba(0, 0, 0, 0.7) 100%); + /* W3C Markup, IE10 Release Preview */ + z-index: 2001; } + +@media screen and (max-width: 640px) { + div.dt-buttons { + float: none !important; + text-align: center; } } + +button.dt-button.processing, +div.dt-button.processing, +a.dt-button.processing { + color: rgba(0, 0, 0, 0.2); } + button.dt-button.processing:after, + div.dt-button.processing:after, + a.dt-button.processing:after { + position: absolute; + top: 50%; + left: 50%; + width: 16px; + height: 16px; + margin: -8px 0 0 -8px; + -webkit-box-sizing: border-box; + box-sizing: border-box; + display: block; + content: ' '; + border: 2px solid #282828; + border-radius: 50%; + border-left-color: transparent; + border-right-color: transparent; + animation: dtb-spinner 1500ms infinite linear; + -o-animation: dtb-spinner 1500ms infinite linear; + -ms-animation: dtb-spinner 1500ms infinite linear; + -webkit-animation: dtb-spinner 1500ms infinite linear; + -moz-animation: dtb-spinner 1500ms infinite linear; } + +/*buttons jqueryui css*/ +/*buttons semanticui css*/ +@keyframes dtb-spinner { + 100% { + -webkit-transform: rotate(360deg); + transform: rotate(360deg); } } + +@-webkit-keyframes dtb-spinner { + 100% { + -webkit-transform: rotate(360deg); + transform: rotate(360deg); } } + +div.dt-button-info { + position: fixed; + top: 50%; + left: 50%; + width: 400px; + margin-top: -100px; + margin-left: -200px; + background-color: white; + border: 2px solid #111; + -webkit-box-shadow: 3px 3px 8px rgba(0, 0, 0, 0.3); + box-shadow: 3px 3px 8px rgba(0, 0, 0, 0.3); + border-radius: 3px; + text-align: center; + z-index: 21; } + div.dt-button-info h2 { + padding: 0.5em; + margin: 0; + font-weight: normal; + border-bottom: 1px solid #ddd; + background-color: #f3f3f3; } + div.dt-button-info > div { + padding: 1em; } + +div.dt-button-collection { + position: absolute; + top: 0; + left: 0; + width: 150px; + margin-top: 3px !important; + z-index: 2002; + background: white; + -webkit-column-gap: 8px; + -moz-column-gap: 8px; + -ms-column-gap: 8px; + -o-column-gap: 8px; + column-gap: 8px; } + div.dt-button-collection.fixed { + position: fixed; + top: 50%; + left: 50%; + margin-left: -75px; + border-radius: 0; } + div.dt-button-collection.fixed.two-column { + margin-left: -150px; } + div.dt-button-collection.fixed.three-column { + margin-left: -225px; } + div.dt-button-collection.fixed.four-column { + margin-left: -300px; } + div.dt-button-collection > * { + -webkit-column-break-inside: avoid; + -moz-column-break-inside: avoid; + break-inside: avoid; } + div.dt-button-collection.two-column { + width: 300px; + padding-bottom: 1px; + -webkit-column-count: 2; + -moz-column-count: 2; + -ms-column-count: 2; + -o-column-count: 2; + column-count: 2; } + div.dt-button-collection.three-column { + width: 450px; + padding-bottom: 1px; + -webkit-column-count: 3; + -moz-column-count: 3; + -ms-column-count: 3; + -o-column-count: 3; + column-count: 3; } + div.dt-button-collection.four-column { + width: 600px; + padding-bottom: 1px; + -webkit-column-count: 4; + -moz-column-count: 4; + -ms-column-count: 4; + -o-column-count: 4; + column-count: 4; } + div.dt-button-collection .dt-button { + border-radius: 0; } + +button.buttons-collection.ui.button span:after { + display: inline-block; + content: "▾"; + padding-left: 0.5em; } + +div.dt-button-background { + position: fixed; + top: 0; + left: 0; + width: 100%; + height: 100%; + z-index: 2001; } + +@media screen and (max-width: 767px) { + div.dt-buttons { + float: none; + width: 100%; + text-align: center; + margin-bottom: 0.5em; } + div.dt-buttons a.btn { + float: none; } } + +div.dt-buttons button.button.processing, +div.dt-buttons div.button.processing, +div.dt-buttons a.button.processing { + position: relative; + color: rgba(0, 0, 0, 0.2); } + div.dt-buttons button.button.processing:after, + div.dt-buttons div.button.processing:after, + div.dt-buttons a.button.processing:after { + position: absolute; + top: 50%; + left: 50%; + width: 16px; + height: 16px; + margin: -8px 0 0 -8px; + -webkit-box-sizing: border-box; + box-sizing: border-box; + display: block; + content: ' '; + border: 2px solid #282828; + border-radius: 50%; + border-left-color: transparent; + border-right-color: transparent; + animation: dtb-spinner 1500ms infinite linear; + -o-animation: dtb-spinner 1500ms infinite linear; + -ms-animation: dtb-spinner 1500ms infinite linear; + -webkit-animation: dtb-spinner 1500ms infinite linear; + -moz-animation: dtb-spinner 1500ms infinite linear; } + +/*buttons semanticui css*/ +/*autofill datatable css*/ +div.dt-autofill-handle { + position: absolute; + height: 8px; + width: 8px; + z-index: 102; + -webkit-box-sizing: border-box; + box-sizing: border-box; + border: 1px solid #316ad1; + background: -webkit-gradient(linear, left top, left bottom, from(#abcffb), to(#4989de)); + background: linear-gradient(to bottom, #abcffb 0%, #4989de 100%); } + +div.dt-autofill-select { + position: absolute; + z-index: 1001; + background-color: #4989de; + background-image: repeating-linear-gradient(45deg, transparent, transparent 5px, rgba(255, 255, 255, 0.5) 5px, rgba(255, 255, 255, 0.5) 10px); } + div.dt-autofill-select.top, div.dt-autofill-select.bottom { + height: 3px; + margin-top: -1px; } + div.dt-autofill-select.left, div.dt-autofill-select.right { + width: 3px; + margin-left: -1px; } + +div.dt-autofill-list { + position: fixed; + top: 50%; + left: 50%; + width: 500px; + margin-left: -250px; + background-color: white; + border-radius: 6px; + -webkit-box-shadow: 0 0 5px #555; + box-shadow: 0 0 5px #555; + border: 2px solid #444; + z-index: 11; + -webkit-box-sizing: border-box; + box-sizing: border-box; + padding: 1.5em 2em; } + div.dt-autofill-list ul { + display: table; + margin: 0; + padding: 0; + list-style: none; + width: 100%; } + div.dt-autofill-list ul li { + display: table-row; } + div.dt-autofill-list ul li:last-child div.dt-autofill-question, + div.dt-autofill-list ul li:last-child div.dt-autofill-button { + border-bottom: none; } + div.dt-autofill-list ul li:hover { + background-color: #f6f6f6; } + div.dt-autofill-list div.dt-autofill-question { + display: table-cell; + padding: 0.5em 0; + border-bottom: 1px solid #ccc; } + div.dt-autofill-list div.dt-autofill-question input[type=number] { + padding: 6px; + width: 30px; + margin: -2px 0; } + div.dt-autofill-list div.dt-autofill-button { + display: table-cell; + padding: 0.5em 0; + border-bottom: 1px solid #ccc; } + div.dt-autofill-list div.dt-autofill-button button { + color: white; + margin: 0; + padding: 6px 12px; + text-align: center; + border: 1px solid #2e6da4; + background-color: #337ab7; + border-radius: 4px; + cursor: pointer; + vertical-align: middle; } + +div.dt-autofill-background { + position: fixed; + top: 0; + left: 0; + width: 100%; + height: 100%; + background: rgba(0, 0, 0, 0.7); + background: radial-gradient(ellipse farthest-corner at center, rgba(0, 0, 0, 0.3) 0%, rgba(0, 0, 0, 0.7) 100%); + z-index: 10; } + +/*autofill datatable css*/ +/*keytable css*/ +table.dataTable th.focus, +table.dataTable td.focus { + outline: 3px solid #0275d8; + outline-offset: -1px; } + +/*keytable css*/ +/*select datatable css*/ +table.dataTable tbody > tr.selected, +table.dataTable tbody > tr > .selected { + background-color: #B0BED9; } + +table.dataTable.stripe tbody > tr.odd.selected, +table.dataTable.stripe tbody > tr.odd > .selected, +table.dataTable.display tbody > tr.odd.selected, +table.dataTable.display tbody > tr.odd > .selected { + background-color: #acbad4; } + +table.dataTable.hover tbody > tr.selected:hover, +table.dataTable.hover tbody > tr > .selected:hover, +table.dataTable.display tbody > tr.selected:hover, +table.dataTable.display tbody > tr > .selected:hover { + background-color: #aab7d1; } + +table.dataTable.order-column tbody > tr.selected > .sorting_1, +table.dataTable.order-column tbody > tr.selected > .sorting_2, +table.dataTable.order-column tbody > tr.selected > .sorting_3, +table.dataTable.order-column tbody > tr > .selected, +table.dataTable.display tbody > tr.selected > .sorting_1, +table.dataTable.display tbody > tr.selected > .sorting_2, +table.dataTable.display tbody > tr.selected > .sorting_3, +table.dataTable.display tbody > tr > .selected { + background-color: #acbad5; } + +table.dataTable.display tbody > tr.odd.selected > .sorting_1, +table.dataTable.order-column.stripe tbody > tr.odd.selected > .sorting_1 { + background-color: #a6b4cd; } + +table.dataTable.display tbody > tr.odd.selected > .sorting_2, +table.dataTable.order-column.stripe tbody > tr.odd.selected > .sorting_2 { + background-color: #a8b5cf; } + +table.dataTable.display tbody > tr.odd.selected > .sorting_3, +table.dataTable.order-column.stripe tbody > tr.odd.selected > .sorting_3 { + background-color: #a9b7d1; } + +table.dataTable.display tbody > tr.even.selected > .sorting_1, +table.dataTable.order-column.stripe tbody > tr.even.selected > .sorting_1 { + background-color: #acbad5; } + +table.dataTable.display tbody > tr.even.selected > .sorting_2, +table.dataTable.order-column.stripe tbody > tr.even.selected > .sorting_2 { + background-color: #aebcd6; } + +table.dataTable.display tbody > tr.even.selected > .sorting_3, +table.dataTable.order-column.stripe tbody > tr.even.selected > .sorting_3 { + background-color: #afbdd8; } + +table.dataTable.display tbody > tr.odd > .selected, +table.dataTable.order-column.stripe tbody > tr.odd > .selected { + background-color: #a6b4cd; } + +table.dataTable.display tbody > tr.even > .selected, +table.dataTable.order-column.stripe tbody > tr.even > .selected { + background-color: #acbad5; } + +table.dataTable.display tbody > tr.selected:hover > .sorting_1, +table.dataTable.order-column.hover tbody > tr.selected:hover > .sorting_1 { + background-color: #a2aec7; } + +table.dataTable.display tbody > tr.selected:hover > .sorting_2, +table.dataTable.order-column.hover tbody > tr.selected:hover > .sorting_2 { + background-color: #a3b0c9; } + +table.dataTable.display tbody > tr.selected:hover > .sorting_3, +table.dataTable.order-column.hover tbody > tr.selected:hover > .sorting_3 { + background-color: #a5b2cb; } + +table.dataTable.display tbody > tr:hover > .selected, +table.dataTable.display tbody > tr > .selected:hover, +table.dataTable.order-column.hover tbody > tr:hover > .selected, +table.dataTable.order-column.hover tbody > tr > .selected:hover { + background-color: #a2aec7; } + +table.dataTable tbody td.select-checkbox, +table.dataTable tbody th.select-checkbox { + position: relative; } + table.dataTable tbody td.select-checkbox:before, table.dataTable tbody td.select-checkbox:after, + table.dataTable tbody th.select-checkbox:before, + table.dataTable tbody th.select-checkbox:after { + display: block; + position: absolute; + top: 1.2em; + left: 50%; + width: 12px; + height: 12px; + -webkit-box-sizing: border-box; + box-sizing: border-box; } + table.dataTable tbody td.select-checkbox:before, + table.dataTable tbody th.select-checkbox:before { + content: ' '; + margin-top: -6px; + margin-left: -6px; + border: 1px solid black; + border-radius: 3px; } + +table.dataTable tr.selected td.select-checkbox:after, +table.dataTable tr.selected th.select-checkbox:after { + content: '\2714'; + margin-top: -11px; + margin-left: -4px; + text-align: center; + text-shadow: 1px 1px #B0BED9, -1px -1px #B0BED9, 1px -1px #B0BED9, -1px 1px #B0BED9; } + +div.dataTables_wrapper span.select-info, +div.dataTables_wrapper span.select-item { + margin-left: 0.5em; } + +@media screen and (max-width: 640px) { + div.dataTables_wrapper span.select-info, + div.dataTables_wrapper span.select-item { + margin-left: 0; + display: block; } } + +/*select datatable css*/ +/*Fixed columns datatable css*/ +table.DTFC_Cloned thead, +table.DTFC_Cloned tfoot { + background-color: white; } + +div.DTFC_Blocker { + background-color: white; } + +div.DTFC_LeftWrapper table.dataTable, +div.DTFC_RightWrapper table.dataTable { + margin-bottom: 0; + z-index: 2; } + div.DTFC_LeftWrapper table.dataTable.no-footer, + div.DTFC_RightWrapper table.dataTable.no-footer { + border-bottom: none; } + +/*Fixed columns datatable css*/ +/*fixed haeder datatable css*/ +table.fixedHeader-floating { + position: fixed !important; + background-color: white; } + +table.fixedHeader-floating.no-footer { + border-bottom-width: 0; } + +table.fixedHeader-locked { + position: absolute !important; + background-color: white; } + +/*fixed haeder datatable css*/ +/*Responsive datatable css*/ +table.dataTable.dtr-inline.collapsed > tbody > tr > td.child, +table.dataTable.dtr-inline.collapsed > tbody > tr > th.child, +table.dataTable.dtr-inline.collapsed > tbody > tr > td.dataTables_empty { + cursor: default !important; } + table.dataTable.dtr-inline.collapsed > tbody > tr > td.child:before, + table.dataTable.dtr-inline.collapsed > tbody > tr > th.child:before, + table.dataTable.dtr-inline.collapsed > tbody > tr > td.dataTables_empty:before { + display: none !important; } + +table.dataTable.dtr-inline.collapsed > tbody > tr[role="row"] > td:first-child, +table.dataTable.dtr-inline.collapsed > tbody > tr[role="row"] > th:first-child { + position: relative; + padding-left: 30px; + cursor: pointer; } + table.dataTable.dtr-inline.collapsed > tbody > tr[role="row"] > td:first-child:before, + table.dataTable.dtr-inline.collapsed > tbody > tr[role="row"] > th:first-child:before { + top: 9px; + left: 4px; + height: 14px; + width: 14px; + display: block; + position: absolute; + color: white; + border: 2px solid white; + border-radius: 14px; + -webkit-box-shadow: 0 0 3px #444; + box-shadow: 0 0 3px #444; + -webkit-box-sizing: content-box; + box-sizing: content-box; + text-align: center; + text-indent: 0 !important; + font-family: 'Courier New', Courier, monospace; + line-height: 14px; + content: '+'; + background-color: #31b131; } + +table.dataTable.dtr-inline.collapsed > tbody > tr.parent > td:first-child:before, +table.dataTable.dtr-inline.collapsed > tbody > tr.parent > th:first-child:before { + content: '-'; + background-color: #d33333; } + +table.dataTable.dtr-inline.collapsed.compact > tbody > tr > td:first-child, +table.dataTable.dtr-inline.collapsed.compact > tbody > tr > th:first-child { + padding-left: 27px; } + table.dataTable.dtr-inline.collapsed.compact > tbody > tr > td:first-child:before, + table.dataTable.dtr-inline.collapsed.compact > tbody > tr > th:first-child:before { + top: 5px; + left: 4px; + height: 14px; + width: 14px; + border-radius: 14px; + line-height: 14px; + text-indent: 3px; } + +table.dataTable.dtr-column > tbody > tr > td.control, +table.dataTable.dtr-column > tbody > tr > th.control { + position: relative; + cursor: pointer; } + table.dataTable.dtr-column > tbody > tr > td.control:before, + table.dataTable.dtr-column > tbody > tr > th.control:before { + top: 50%; + left: 50%; + height: 16px; + width: 16px; + margin-top: -10px; + margin-left: -10px; + display: block; + position: absolute; + color: white; + border: 2px solid white; + border-radius: 14px; + -webkit-box-shadow: 0 0 3px #444; + box-shadow: 0 0 3px #444; + -webkit-box-sizing: content-box; + box-sizing: content-box; + text-align: center; + text-indent: 0 !important; + font-family: 'Courier New', Courier, monospace; + line-height: 14px; + content: '+'; + background-color: #31b131; } + +table.dataTable.dtr-column > tbody > tr.parent td.control:before, +table.dataTable.dtr-column > tbody > tr.parent th.control:before { + content: '-'; + background-color: #d33333; } + +table.dataTable > tbody > tr.child { + padding: 0.5em 1em; } + table.dataTable > tbody > tr.child:hover { + background: transparent !important; } + table.dataTable > tbody > tr.child ul.dtr-details { + display: inline-block; + list-style-type: none; + margin: 0; + padding: 0; } + table.dataTable > tbody > tr.child ul.dtr-details > li { + border-bottom: 1px solid #efefef; + padding: 0.5em 0; } + table.dataTable > tbody > tr.child ul.dtr-details > li:first-child { + padding-top: 0; } + table.dataTable > tbody > tr.child ul.dtr-details > li:last-child { + border-bottom: none; } + table.dataTable > tbody > tr.child span.dtr-title { + display: inline-block; + min-width: 75px; + font-weight: bold; } + +div.dtr-modal { + position: fixed; + -webkit-box-sizing: border-box; + box-sizing: border-box; + top: 0; + left: 0; + height: 100%; + width: 100%; + z-index: 100; + padding: 10em 1em; } + div.dtr-modal div.dtr-modal-display { + position: absolute; + top: 0; + left: 0; + bottom: 0; + right: 0; + width: 50%; + height: 50%; + overflow: auto; + margin: auto; + z-index: 102; + overflow: auto; + background-color: #f5f5f7; + border: 1px solid black; + border-radius: 0.5em; + -webkit-box-shadow: 0 12px 30px rgba(0, 0, 0, 0.6); + box-shadow: 0 12px 30px rgba(0, 0, 0, 0.6); } + div.dtr-modal div.dtr-modal-content { + position: relative; + padding: 1em; } + div.dtr-modal div.dtr-modal-close { + position: absolute; + top: 6px; + right: 6px; + width: 22px; + height: 22px; + border: 1px solid #eaeaea; + background-color: #f9f9f9; + text-align: center; + border-radius: 3px; + cursor: pointer; + z-index: 12; } + div.dtr-modal div.dtr-modal-close:hover { + background-color: #eaeaea; } + div.dtr-modal div.dtr-modal-background { + position: fixed; + top: 0; + left: 0; + right: 0; + bottom: 0; + z-index: 101; + background: rgba(0, 0, 0, 0.6); } + +@media screen and (max-width: 767px) { + div.dtr-modal div.dtr-modal-display { + width: 95%; } } + +/*Responsive datatable css*/ +/*Row reorder css*/ +table.dt-rowReorder-float { + position: absolute !important; + opacity: 0.8; + table-layout: fixed; + outline: 2px solid #888; + outline-offset: -2px; + z-index: 2001; } + +tr.dt-rowReorder-moving { + outline: 2px solid #555; + outline-offset: -2px; } + +body.dt-rowReorder-noOverflow { + overflow-x: hidden; } + +table.dataTable td.reorder { + text-align: center; + cursor: move; } + +/*Row reorder css*/ +/*scroller css*/ +div.DTS { + display: block !important; } + div.DTS tbody th, + div.DTS tbody td { + white-space: nowrap; } + div.DTS div.DTS_Loading { + z-index: 1; } + div.DTS div.dataTables_scrollBody { + background: repeating-linear-gradient(45deg, #edeeff, #edeeff 10px, white 10px, white 20px); } + div.DTS div.dataTables_scrollBody table { + z-index: 2; } + div.DTS div.dataTables_paginate, + div.DTS div.dataTables_length { + display: none; } + +/*scroller css*/ diff --git a/public/admin/assets/css/datatables.css b/public/admin/assets/css/datatables.css new file mode 100644 index 0000000..373847a --- /dev/null +++ b/public/admin/assets/css/datatables.css @@ -0,0 +1,1527 @@ +table.dataTable { + clear: both; + margin-top: 6px !important; + margin-bottom: 6px !important; + max-width: none !important; + border-collapse: separate !important; } + table.dataTable td, + table.dataTable th { + -webkit-box-sizing: content-box; + box-sizing: content-box; } + table.dataTable td.dataTables_empty, + table.dataTable th.dataTables_empty { + text-align: center; } + table.dataTable.nowrap th, + table.dataTable.nowrap td { + white-space: nowrap; } + +div.dataTables_wrapper div.dataTables_length label { + font-weight: normal; + text-align: left; + white-space: nowrap; } + +div.dataTables_wrapper div.dataTables_length select { + width: 75px; + display: inline-block; } + +div.dataTables_wrapper div.dataTables_filter { + text-align: right; } + div.dataTables_wrapper div.dataTables_filter label { + font-weight: normal; + white-space: nowrap; + text-align: left; } + div.dataTables_wrapper div.dataTables_filter input { + margin-left: 0.5em; + display: inline-block; + width: auto; } + +div.dataTables_wrapper div.dataTables_info { + padding-top: 8px; + white-space: nowrap; } + +div.dataTables_wrapper div.dataTables_paginate { + margin: 0; + white-space: nowrap; + text-align: right; } + div.dataTables_wrapper div.dataTables_paginate ul.pagination { + margin: 2px 0; + white-space: nowrap; } + +div.dataTables_wrapper div.dataTables_processing { + position: absolute; + top: 50%; + left: 50%; + width: 200px; + margin-left: -100px; + margin-top: -26px; + text-align: center; + padding: 1em 0; } + +table.dataTable thead > tr > th.sorting_asc, table.dataTable thead > tr > th.sorting_desc, table.dataTable thead > tr > th.sorting, +table.dataTable thead > tr > td.sorting_asc, +table.dataTable thead > tr > td.sorting_desc, +table.dataTable thead > tr > td.sorting { + padding-right: 30px; } + +table.dataTable thead > tr > th:active, +table.dataTable thead > tr > td:active { + outline: none; } + +table.dataTable thead .sorting, +table.dataTable thead .sorting_asc, +table.dataTable thead .sorting_desc, +table.dataTable thead .sorting_asc_disabled, +table.dataTable thead .sorting_desc_disabled { + cursor: pointer; + position: relative; } + table.dataTable thead .sorting:after, + table.dataTable thead .sorting_asc:after, + table.dataTable thead .sorting_desc:after, + table.dataTable thead .sorting_asc_disabled:after, + table.dataTable thead .sorting_desc_disabled:after { + position: absolute; + bottom: 8px; + right: 8px; + display: block; + font-family: 'Glyphicons Halflings'; + opacity: 0.5; } + +table.dataTable thead .sorting:after { + opacity: 0.2; + content: "\e150"; + /* sort */ } + +table.dataTable thead .sorting_asc:after { + content: "\e155"; + /* sort-by-attributes */ } + +table.dataTable thead .sorting_desc:after { + content: "\e156"; + /* sort-by-attributes-alt */ } + +table.dataTable thead .sorting_asc_disabled:after, +table.dataTable thead .sorting_desc_disabled:after { + color: #eee; } + +div.dataTables_scrollHead table.dataTable { + margin-bottom: 0 !important; } + +div.dataTables_scrollBody > table { + border-top: none; + margin-top: 0 !important; + margin-bottom: 0 !important; } + div.dataTables_scrollBody > table > thead .sorting:after, + div.dataTables_scrollBody > table > thead .sorting_asc:after, + div.dataTables_scrollBody > table > thead .sorting_desc:after { + display: none; } + div.dataTables_scrollBody > table > tbody > tr:first-child > th, + div.dataTables_scrollBody > table > tbody > tr:first-child > td { + border-top: none; } + +div.dataTables_scrollFoot > .dataTables_scrollFootInner { + -webkit-box-sizing: content-box; + box-sizing: content-box; } + div.dataTables_scrollFoot > .dataTables_scrollFootInner > table { + margin-top: 0 !important; + border-top: none; } + +@media screen and (max-width: 767px) { + div.dataTables_wrapper div.dataTables_length, + div.dataTables_wrapper div.dataTables_filter, + div.dataTables_wrapper div.dataTables_info, + div.dataTables_wrapper div.dataTables_paginate { + text-align: center; } } + +table.dataTable.table-condensed > thead > tr > th { + padding-right: 20px; } + +table.dataTable.table-condensed .sorting:after, +table.dataTable.table-condensed .sorting_asc:after, +table.dataTable.table-condensed .sorting_desc:after { + top: 6px; + right: 6px; } + +table.table-bordered.dataTable th, +table.table-bordered.dataTable td { + border-left-width: 0; } + table.table-bordered.dataTable th:last-child, table.table-bordered.dataTable th:last-child, + table.table-bordered.dataTable td:last-child, + table.table-bordered.dataTable td:last-child { + border-right-width: 0; } + +table.table-bordered.dataTable tbody th, +table.table-bordered.dataTable tbody td { + border-bottom-width: 0; } + +div.dataTables_scrollHead table.table-bordered { + border-bottom-width: 0; } + +div.table-responsive > div.dataTables_wrapper > div.row { + margin: 0; } + div.table-responsive > div.dataTables_wrapper > div.row > div[class^="col-"]:first-child { + padding-left: 0; } + div.table-responsive > div.dataTables_wrapper > div.row > div[class^="col-"]:last-child { + padding-right: 0; } + +table.dataTable { + clear: both; + margin-top: 6px !important; + margin-bottom: 6px !important; + max-width: none !important; + border-collapse: separate !important; + border-spacing: 0; } + table.dataTable td, + table.dataTable th { + -webkit-box-sizing: content-box; + box-sizing: content-box; } + table.dataTable td.dataTables_empty, + table.dataTable th.dataTables_empty { + text-align: center; } + table.dataTable.nowrap th, + table.dataTable.nowrap td { + white-space: nowrap; } + +div.dataTables_wrapper div.dataTables_length label { + font-weight: normal; + text-align: left; + white-space: nowrap; } + +div.dataTables_wrapper div.dataTables_length select { + width: 75px; + display: inline-block; } + +div.dataTables_wrapper div.dataTables_filter { + text-align: right; } + div.dataTables_wrapper div.dataTables_filter label { + font-weight: normal; + white-space: nowrap; + text-align: left; } + div.dataTables_wrapper div.dataTables_filter input { + margin-left: 0.5em; + display: inline-block; + width: auto; } + +div.dataTables_wrapper div.dataTables_info { + padding-top: 0.85em; + white-space: nowrap; } + +div.dataTables_wrapper div.dataTables_paginate { + margin: 0; + white-space: nowrap; + text-align: right; } + div.dataTables_wrapper div.dataTables_paginate ul.pagination { + margin: 2px 0; + white-space: nowrap; + -webkit-box-pack: end; + -ms-flex-pack: end; + justify-content: flex-end; } + +div.dataTables_wrapper div.dataTables_processing { + position: absolute; + top: 50%; + left: 50%; + width: 200px; + margin-left: -100px; + margin-top: -26px; + text-align: center; + padding: 1em 0; } + +table.dataTable thead > tr > th.sorting_asc, table.dataTable thead > tr > th.sorting_desc, table.dataTable thead > tr > th.sorting, +table.dataTable thead > tr > td.sorting_asc, +table.dataTable thead > tr > td.sorting_desc, +table.dataTable thead > tr > td.sorting { + padding-right: 30px; } + +table.dataTable thead > tr > th:active, +table.dataTable thead > tr > td:active { + outline: none; } + +table.dataTable thead .sorting, +table.dataTable thead .sorting_asc, +table.dataTable thead .sorting_desc, +table.dataTable thead .sorting_asc_disabled, +table.dataTable thead .sorting_desc_disabled { + cursor: pointer; + position: relative; } + table.dataTable thead .sorting:before, table.dataTable thead .sorting:after, + table.dataTable thead .sorting_asc:before, + table.dataTable thead .sorting_asc:after, + table.dataTable thead .sorting_desc:before, + table.dataTable thead .sorting_desc:after, + table.dataTable thead .sorting_asc_disabled:before, + table.dataTable thead .sorting_asc_disabled:after, + table.dataTable thead .sorting_desc_disabled:before, + table.dataTable thead .sorting_desc_disabled:after { + position: absolute; + bottom: 0.9em; + display: block; + opacity: 0.3; } + table.dataTable thead .sorting:before, + table.dataTable thead .sorting_asc:before, + table.dataTable thead .sorting_desc:before, + table.dataTable thead .sorting_asc_disabled:before, + table.dataTable thead .sorting_desc_disabled:before { + right: 1em; + content: "\2191"; } + table.dataTable thead .sorting:after, + table.dataTable thead .sorting_asc:after, + table.dataTable thead .sorting_desc:after, + table.dataTable thead .sorting_asc_disabled:after, + table.dataTable thead .sorting_desc_disabled:after { + right: 0.5em; + content: "\2193"; } + +table.dataTable thead .sorting_asc:before, +table.dataTable thead .sorting_desc:after { + opacity: 1; } + +table.dataTable thead .sorting_asc_disabled:before, +table.dataTable thead .sorting_desc_disabled:after { + opacity: 0; } + +div.dataTables_scrollHead table.dataTable { + margin-bottom: 0 !important; } + +div.dataTables_scrollBody table { + border-top: none; + margin-top: 0 !important; + margin-bottom: 0 !important; } + div.dataTables_scrollBody table thead .sorting:before, + div.dataTables_scrollBody table thead .sorting_asc:before, + div.dataTables_scrollBody table thead .sorting_desc:before, + div.dataTables_scrollBody table thead .sorting:after, + div.dataTables_scrollBody table thead .sorting_asc:after, + div.dataTables_scrollBody table thead .sorting_desc:after { + display: none; } + div.dataTables_scrollBody table tbody tr:first-child th, + div.dataTables_scrollBody table tbody tr:first-child td { + border-top: none; } + +div.dataTables_scrollFoot > .dataTables_scrollFootInner { + -webkit-box-sizing: content-box; + box-sizing: content-box; } + div.dataTables_scrollFoot > .dataTables_scrollFootInner > table { + margin-top: 0 !important; + border-top: none; } + +@media screen and (max-width: 767px) { + div.dataTables_wrapper div.dataTables_length, + div.dataTables_wrapper div.dataTables_filter, + div.dataTables_wrapper div.dataTables_info, + div.dataTables_wrapper div.dataTables_paginate { + text-align: center; } + div.dataTables_wrapper div.dataTables_paginate ul.pagination { + -webkit-box-pack: center; + -ms-flex-pack: center; + justify-content: center; } } + +table.dataTable.table-sm > thead > tr > th { + padding-right: 20px; } + +table.dataTable.table-sm .sorting:before, +table.dataTable.table-sm .sorting_asc:before, +table.dataTable.table-sm .sorting_desc:before { + top: 5px; + right: 0.85em; } + +table.dataTable.table-sm .sorting:after, +table.dataTable.table-sm .sorting_asc:after, +table.dataTable.table-sm .sorting_desc:after { + top: 5px; } + +table.table-bordered.dataTable th, +table.table-bordered.dataTable td { + border-left-width: 0; } + table.table-bordered.dataTable th:last-child, table.table-bordered.dataTable th:last-child, + table.table-bordered.dataTable td:last-child, + table.table-bordered.dataTable td:last-child { + border-right-width: 0; } + +table.table-bordered.dataTable tbody th, +table.table-bordered.dataTable tbody td { + border-bottom-width: 0; } + +div.dataTables_scrollHead table.table-bordered { + border-bottom-width: 0; } + +div.table-responsive > div.dataTables_wrapper > div.row { + margin: 0; } + div.table-responsive > div.dataTables_wrapper > div.row > div[class^="col-"]:first-child { + padding-left: 0; } + div.table-responsive > div.dataTables_wrapper > div.row > div[class^="col-"]:last-child { + padding-right: 0; } + +table.dataTable { + clear: both; + margin: 0.5em 0 !important; + max-width: none !important; + width: 100%; } + table.dataTable td, + table.dataTable th { + -webkit-box-sizing: content-box; + box-sizing: content-box; } + table.dataTable td.dataTables_empty, + table.dataTable th.dataTables_empty { + text-align: center; } + table.dataTable.nowrap th, table.dataTable.nowrap td { + white-space: nowrap; } + +div.dataTables_wrapper { + position: relative; + font-family: 'Open Sans', sans-serif; } + div.dataTables_wrapper div.dataTables_length label { + float: left; + text-align: left; + margin-bottom: 0; } + div.dataTables_wrapper div.dataTables_length select { + width: 75px; + margin-bottom: 0; } + div.dataTables_wrapper div.dataTables_filter label { + float: right; + margin-bottom: 0; } + div.dataTables_wrapper div.dataTables_filter input { + display: inline-block !important; + width: auto !important; + margin-bottom: 0; + margin-left: 0.5em; } + div.dataTables_wrapper div.dataTables_info { + padding-top: 2px; } + div.dataTables_wrapper div.dataTables_paginate { + float: right; + margin: 0; } + div.dataTables_wrapper div.dataTables_processing { + position: absolute; + top: 50%; + left: 50%; + width: 200px; + margin-left: -100px; + margin-top: -26px; + text-align: center; + padding: 1rem 0; } + +table.dataTable thead > tr > th.sorting_asc, table.dataTable thead > tr > th.sorting_desc, table.dataTable thead > tr > th.sorting, +table.dataTable thead > tr > td.sorting_asc, +table.dataTable thead > tr > td.sorting_desc, +table.dataTable thead > tr > td.sorting { + padding-right: 1.5rem; } + +table.dataTable thead > tr > th:active, +table.dataTable thead > tr > td:active { + outline: none; } + +table.dataTable thead .sorting, +table.dataTable thead .sorting_asc, +table.dataTable thead .sorting_desc, +table.dataTable thead .sorting_asc_disabled, +table.dataTable thead .sorting_desc_disabled { + cursor: pointer; } + +table.dataTable thead .sorting, +table.dataTable thead .sorting_asc, +table.dataTable thead .sorting_desc, +table.dataTable thead .sorting_asc_disabled, +table.dataTable thead .sorting_desc_disabled { + background-repeat: no-repeat; + background-position: center right; } + +table.dataTable thead .sorting { + background-image: url("../images/sort_both.png"); } + +table.dataTable thead .sorting_asc { + background-image: url("../images/sort_asc.png"); } + +table.dataTable thead .sorting_desc { + background-image: url("../images/sort_desc.png"); } + +table.dataTable thead .sorting_asc_disabled { + background-image: url("../images/sort_asc_disabled.png"); } + +table.dataTable thead .sorting_desc_disabled { + background-image: url("../images/sort_desc_disabled.png"); } + +div.dataTables_scrollHead table { + margin-bottom: 0 !important; } + +div.dataTables_scrollBody table { + border-top: none; + margin-top: 0 !important; + margin-bottom: 0 !important; } + div.dataTables_scrollBody table tbody tr:first-child th, + div.dataTables_scrollBody table tbody tr:first-child td { + border-top: none; } + +div.dataTables_scrollFoot table { + margin-top: 0 !important; + border-top: none; } + +/* + * Table styles + */ +table.dataTable { + width: 100%; + margin: 0 auto; + clear: both; + border-collapse: separate; + border-spacing: 0; + /* + * Header and footer styles + */ + /* + * Body styles + */ } + table.dataTable thead th, + table.dataTable tfoot th { + font-weight: bold; } + table.dataTable thead th, + table.dataTable thead td { + padding: 10px 18px; } + table.dataTable thead th:active, + table.dataTable thead td:active { + outline: none; } + table.dataTable tfoot th, + table.dataTable tfoot td { + padding: 10px 18px 6px 18px; } + table.dataTable tbody tr { + background-color: #ffffff; } + table.dataTable tbody tr.selected { + background-color: #B0BED9; } + table.dataTable tbody th, + table.dataTable tbody td { + padding: 8px 10px; } + table.dataTable.row-border tbody th, table.dataTable.row-border tbody td, + table.dataTable.display tbody th, + table.dataTable.display tbody td { + border-top: 1px solid #ddd; } + table.dataTable.row-border tbody tr:first-child th, + table.dataTable.row-border tbody tr:first-child td, + table.dataTable.display tbody tr:first-child th, + table.dataTable.display tbody tr:first-child td { + border-top: none; } + table.dataTable.cell-border tbody th, table.dataTable.cell-border tbody td { + border-top: 1px solid #ddd; + border-right: 1px solid #ddd; } + table.dataTable.cell-border tbody tr th:first-child, + table.dataTable.cell-border tbody tr td:first-child { + border-left: 1px solid #ddd; } + table.dataTable.cell-border tbody tr:first-child th, + table.dataTable.cell-border tbody tr:first-child td { + border-top: none; } + table.dataTable.stripe tbody tr.odd, + table.dataTable.display tbody tr.odd { + background-color: #f9f9f9; } + table.dataTable.stripe tbody tr.odd.selected, + table.dataTable.display tbody tr.odd.selected { + background-color: #acbad4; } + table.dataTable.hover tbody tr:hover, + table.dataTable.display tbody tr:hover { + background-color: #f6f6f6; } + table.dataTable.hover tbody tr:hover.selected, + table.dataTable.display tbody tr:hover.selected { + background-color: #aab7d1; } + table.dataTable.order-column tbody tr > .sorting_1, + table.dataTable.order-column tbody tr > .sorting_2, + table.dataTable.order-column tbody tr > .sorting_3, table.dataTable.display tbody tr > .sorting_1, + table.dataTable.display tbody tr > .sorting_2, + table.dataTable.display tbody tr > .sorting_3 { + background-color: #fafafa; } + table.dataTable.order-column tbody tr.selected > .sorting_1, + table.dataTable.order-column tbody tr.selected > .sorting_2, + table.dataTable.order-column tbody tr.selected > .sorting_3, table.dataTable.display tbody tr.selected > .sorting_1, + table.dataTable.display tbody tr.selected > .sorting_2, + table.dataTable.display tbody tr.selected > .sorting_3 { + background-color: #acbad5; } + table.dataTable.display tbody tr.odd > .sorting_1, + table.dataTable.order-column.stripe tbody tr.odd > .sorting_1 { + background-color: #f1f1f1; } + table.dataTable.display tbody tr.odd > .sorting_2, + table.dataTable.order-column.stripe tbody tr.odd > .sorting_2 { + background-color: #f3f3f3; } + table.dataTable.display tbody tr.odd > .sorting_3, + table.dataTable.order-column.stripe tbody tr.odd > .sorting_3 { + background-color: whitesmoke; } + table.dataTable.display tbody tr.odd.selected > .sorting_1, + table.dataTable.order-column.stripe tbody tr.odd.selected > .sorting_1 { + background-color: #a6b4cd; } + table.dataTable.display tbody tr.odd.selected > .sorting_2, + table.dataTable.order-column.stripe tbody tr.odd.selected > .sorting_2 { + background-color: #a8b5cf; } + table.dataTable.display tbody tr.odd.selected > .sorting_3, + table.dataTable.order-column.stripe tbody tr.odd.selected > .sorting_3 { + background-color: #a9b7d1; } + table.dataTable.display tbody tr.even > .sorting_1, + table.dataTable.order-column.stripe tbody tr.even > .sorting_1 { + background-color: #fafafa; } + table.dataTable.display tbody tr.even > .sorting_2, + table.dataTable.order-column.stripe tbody tr.even > .sorting_2 { + background-color: #fcfcfc; } + table.dataTable.display tbody tr.even > .sorting_3, + table.dataTable.order-column.stripe tbody tr.even > .sorting_3 { + background-color: #fefefe; } + table.dataTable.display tbody tr.even.selected > .sorting_1, + table.dataTable.order-column.stripe tbody tr.even.selected > .sorting_1 { + background-color: #acbad5; } + table.dataTable.display tbody tr.even.selected > .sorting_2, + table.dataTable.order-column.stripe tbody tr.even.selected > .sorting_2 { + background-color: #aebcd6; } + table.dataTable.display tbody tr.even.selected > .sorting_3, + table.dataTable.order-column.stripe tbody tr.even.selected > .sorting_3 { + background-color: #afbdd8; } + table.dataTable.display tbody tr:hover > .sorting_1, + table.dataTable.order-column.hover tbody tr:hover > .sorting_1 { + background-color: #eaeaea; } + table.dataTable.display tbody tr:hover > .sorting_2, + table.dataTable.order-column.hover tbody tr:hover > .sorting_2 { + background-color: #ececec; } + table.dataTable.display tbody tr:hover > .sorting_3, + table.dataTable.order-column.hover tbody tr:hover > .sorting_3 { + background-color: #efefef; } + table.dataTable.display tbody tr:hover.selected > .sorting_1, + table.dataTable.order-column.hover tbody tr:hover.selected > .sorting_1 { + background-color: #a2aec7; } + table.dataTable.display tbody tr:hover.selected > .sorting_2, + table.dataTable.order-column.hover tbody tr:hover.selected > .sorting_2 { + background-color: #a3b0c9; } + table.dataTable.display tbody tr:hover.selected > .sorting_3, + table.dataTable.order-column.hover tbody tr:hover.selected > .sorting_3 { + background-color: #a5b2cb; } + table.dataTable.no-footer { + border-bottom: 1px solid #111; } + table.dataTable.nowrap th, table.dataTable.nowrap td { + white-space: nowrap; } + table.dataTable.compact thead th, + table.dataTable.compact thead td { + padding: 4px 17px 4px 4px; } + table.dataTable.compact tfoot th, + table.dataTable.compact tfoot td { + padding: 4px; } + table.dataTable.compact tbody th, + table.dataTable.compact tbody td { + padding: 4px; } + table.dataTable th.dt-left, + table.dataTable td.dt-left { + text-align: left; } + table.dataTable th.dt-center, + table.dataTable td.dt-center, + table.dataTable td.dataTables_empty { + text-align: center; } + table.dataTable th.dt-right, + table.dataTable td.dt-right { + text-align: right; } + table.dataTable th.dt-justify, + table.dataTable td.dt-justify { + text-align: justify; } + table.dataTable th.dt-nowrap, + table.dataTable td.dt-nowrap { + white-space: nowrap; } + table.dataTable thead th.dt-head-left, + table.dataTable thead td.dt-head-left, + table.dataTable tfoot th.dt-head-left, + table.dataTable tfoot td.dt-head-left { + text-align: left; } + table.dataTable thead th.dt-head-center, + table.dataTable thead td.dt-head-center, + table.dataTable tfoot th.dt-head-center, + table.dataTable tfoot td.dt-head-center { + text-align: center; } + table.dataTable thead th.dt-head-right, + table.dataTable thead td.dt-head-right, + table.dataTable tfoot th.dt-head-right, + table.dataTable tfoot td.dt-head-right { + text-align: right; } + table.dataTable thead th.dt-head-justify, + table.dataTable thead td.dt-head-justify, + table.dataTable tfoot th.dt-head-justify, + table.dataTable tfoot td.dt-head-justify { + text-align: justify; } + table.dataTable thead th.dt-head-nowrap, + table.dataTable thead td.dt-head-nowrap, + table.dataTable tfoot th.dt-head-nowrap, + table.dataTable tfoot td.dt-head-nowrap { + white-space: nowrap; } + table.dataTable tbody th.dt-body-left, + table.dataTable tbody td.dt-body-left { + text-align: left; } + table.dataTable tbody th.dt-body-center, + table.dataTable tbody td.dt-body-center { + text-align: center; } + table.dataTable tbody th.dt-body-right, + table.dataTable tbody td.dt-body-right { + text-align: right; } + table.dataTable tbody th.dt-body-justify, + table.dataTable tbody td.dt-body-justify { + text-align: justify; } + table.dataTable tbody th.dt-body-nowrap, + table.dataTable tbody td.dt-body-nowrap { + white-space: nowrap; } + +table.dataTable, +table.dataTable th, +table.dataTable td { + -webkit-box-sizing: content-box; + box-sizing: content-box; } + +/* + * Control feature layout + */ +.dataTables_wrapper { + position: relative; + clear: both; + *zoom: 1; + zoom: 1; } + .dataTables_wrapper .dataTables_length { + float: left; } + .dataTables_wrapper .dataTables_filter { + float: right; + text-align: right; } + .dataTables_wrapper .dataTables_filter input { + margin-left: 0.5em; } + .dataTables_wrapper .dataTables_info { + clear: both; + float: left; + padding-top: 0.755em; } + .dataTables_wrapper .dataTables_paginate { + float: right; + text-align: right; + padding-top: 0.25em; } + .dataTables_wrapper .dataTables_paginate .paginate_button { + -webkit-box-sizing: border-box; + box-sizing: border-box; + display: inline-block; + min-width: 1.5em; + padding: 0.5em 1em; + margin-left: 2px; + text-align: center; + text-decoration: none !important; + cursor: pointer; + *cursor: hand; + color: #333 !important; + border: 1px solid transparent; + border-radius: 2px; } + .dataTables_wrapper .dataTables_paginate .paginate_button.current, .dataTables_wrapper .dataTables_paginate .paginate_button.current:hover { + color: #333 !important; + border: 1px solid #979797; + background-color: white; + /* Chrome,Safari4+ */ + /* Chrome10+,Safari5.1+ */ + /* FF3.6+ */ + /* IE10+ */ + /* Opera 11.10+ */ + background: -webkit-gradient(linear, left top, left bottom, from(white), to(#dcdcdc)); + background: linear-gradient(to bottom, white 0%, #dcdcdc 100%); + /* W3C */ } + .dataTables_wrapper .dataTables_paginate .paginate_button.disabled, .dataTables_wrapper .dataTables_paginate .paginate_button.disabled:hover, .dataTables_wrapper .dataTables_paginate .paginate_button.disabled:active { + cursor: default; + color: #666 !important; + border: 1px solid transparent; + background: transparent; + -webkit-box-shadow: none; + box-shadow: none; } + .dataTables_wrapper .dataTables_paginate .paginate_button:hover { + color: white !important; + border: 1px solid #111; + background-color: #585858; + /* Chrome,Safari4+ */ + /* Chrome10+,Safari5.1+ */ + /* FF3.6+ */ + /* IE10+ */ + /* Opera 11.10+ */ + background: -webkit-gradient(linear, left top, left bottom, from(#585858), to(#111)); + background: linear-gradient(to bottom, #585858 0%, #111 100%); + /* W3C */ } + .dataTables_wrapper .dataTables_paginate .paginate_button:active { + outline: none; + background-color: #2b2b2b; + /* Chrome,Safari4+ */ + /* Chrome10+,Safari5.1+ */ + /* FF3.6+ */ + /* IE10+ */ + /* Opera 11.10+ */ + background: -webkit-gradient(linear, left top, left bottom, from(#2b2b2b), to(#0c0c0c)); + background: linear-gradient(to bottom, #2b2b2b 0%, #0c0c0c 100%); + /* W3C */ + -webkit-box-shadow: inset 0 0 3px #111; + box-shadow: inset 0 0 3px #111; } + .dataTables_wrapper .dataTables_paginate .ellipsis { + padding: 0 1em; } + .dataTables_wrapper .dataTables_processing { + position: absolute; + top: 50%; + left: 50%; + width: 100%; + height: 40px; + margin-left: -50%; + margin-top: -25px; + padding-top: 20px; + text-align: center; + font-size: 1.2em; + background-color: white; + background: -webkit-gradient(linear, left top, right top, from(rgba(255, 255, 255, 0)), color-stop(25%, rgba(255, 255, 255, 0.9)), color-stop(75%, rgba(255, 255, 255, 0.9)), to(rgba(255, 255, 255, 0))); + background: linear-gradient(to right, rgba(255, 255, 255, 0) 0%, rgba(255, 255, 255, 0.9) 25%, rgba(255, 255, 255, 0.9) 75%, rgba(255, 255, 255, 0) 100%); } + .dataTables_wrapper .dataTables_length, + .dataTables_wrapper .dataTables_filter, + .dataTables_wrapper .dataTables_info, + .dataTables_wrapper .dataTables_processing, + .dataTables_wrapper .dataTables_paginate { + color: #333; } + .dataTables_wrapper .dataTables_scroll { + clear: both; } + .dataTables_wrapper .dataTables_scroll div.dataTables_scrollBody { + *margin-top: -1px; + -webkit-overflow-scrolling: touch; } + .dataTables_wrapper .dataTables_scroll div.dataTables_scrollBody > table > thead > tr > th, .dataTables_wrapper .dataTables_scroll div.dataTables_scrollBody > table > thead > tr > td, .dataTables_wrapper .dataTables_scroll div.dataTables_scrollBody > table > tbody > tr > th, .dataTables_wrapper .dataTables_scroll div.dataTables_scrollBody > table > tbody > tr > td { + vertical-align: middle; } + .dataTables_wrapper .dataTables_scroll div.dataTables_scrollBody > table > thead > tr > th > div.dataTables_sizing, + .dataTables_wrapper .dataTables_scroll div.dataTables_scrollBody > table > thead > tr > td > div.dataTables_sizing, .dataTables_wrapper .dataTables_scroll div.dataTables_scrollBody > table > tbody > tr > th > div.dataTables_sizing, + .dataTables_wrapper .dataTables_scroll div.dataTables_scrollBody > table > tbody > tr > td > div.dataTables_sizing { + height: 0; + overflow: hidden; + margin: 0 !important; + padding: 0 !important; } + .dataTables_wrapper.no-footer .dataTables_scrollBody { + border-bottom: 1px solid #111; } + .dataTables_wrapper.no-footer div.dataTables_scrollHead table.dataTable, + .dataTables_wrapper.no-footer div.dataTables_scrollBody > table { + border-bottom: none; } + .dataTables_wrapper:after { + visibility: hidden; + display: block; + content: ""; + clear: both; + height: 0; } + +@media screen and (max-width: 767px) { + .dataTables_wrapper .dataTables_info, + .dataTables_wrapper .dataTables_paginate { + float: none; + text-align: center; } + .dataTables_wrapper .dataTables_paginate { + margin-top: 0.5em; } } + +@media screen and (max-width: 640px) { + .dataTables_wrapper .dataTables_length, + .dataTables_wrapper .dataTables_filter { + float: none; + text-align: center; } + .dataTables_wrapper .dataTables_filter { + margin-top: 0.5em; } } + +table.dataTable thead th div.DataTables_sort_wrapper { + position: relative; } + table.dataTable thead th div.DataTables_sort_wrapper span { + position: absolute; + top: 50%; + margin-top: -8px; + right: -18px; } + +table.dataTable thead th.ui-state-default, +table.dataTable tfoot th.ui-state-default { + border-left-width: 0; } + table.dataTable thead th.ui-state-default:first-child, + table.dataTable tfoot th.ui-state-default:first-child { + border-left-width: 1px; } + +/* + * Control feature layout + */ +.dataTables_wrapper .dataTables_paginate .fg-button { + -webkit-box-sizing: border-box; + box-sizing: border-box; + display: inline-block; + min-width: 1.5em; + padding: 0.5em; + margin-left: 2px; + text-align: center; + text-decoration: none !important; + cursor: pointer; + *cursor: hand; + border: 1px solid transparent; } + .dataTables_wrapper .dataTables_paginate .fg-button:active { + outline: none; } + +.dataTables_wrapper .dataTables_paginate .fg-button:first-child { + border-top-left-radius: 3px; + border-bottom-left-radius: 3px; } + +.dataTables_wrapper .dataTables_paginate .fg-button:last-child { + border-top-right-radius: 3px; + border-bottom-right-radius: 3px; } + +.dataTables_wrapper .ui-widget-header { + font-weight: normal; } + +.dataTables_wrapper .ui-toolbar { + padding: 8px; } + +.dataTables_wrapper.no-footer .dataTables_scrollBody { + border-bottom: none; } + +.dataTables_wrapper .dataTables_length, +.dataTables_wrapper .dataTables_filter, +.dataTables_wrapper .dataTables_info, +.dataTables_wrapper .dataTables_processing, +.dataTables_wrapper .dataTables_paginate { + color: inherit; } + +div.dataTables_wrapper div.dataTables_filter { + text-align: right; } + div.dataTables_wrapper div.dataTables_filter input { + margin-left: 0.5em; } + +div.dataTables_wrapper div.dataTables_info { + padding-top: 10px; + white-space: nowrap; } + +div.dataTables_wrapper div.dataTables_processing { + position: absolute; + top: 50%; + left: 50%; + width: 200px; + margin-left: -100px; + text-align: center; } + +div.dataTables_wrapper div.dataTables_paginate { + text-align: right; } + +div.dataTables_wrapper div.mdl-grid.dt-table { + padding-top: 0; + padding-bottom: 0; } + div.dataTables_wrapper div.mdl-grid.dt-table > div.mdl-cell { + margin-top: 0; + margin-bottom: 0; } + +table.dataTable thead > tr > th.sorting_asc, table.dataTable thead > tr > th.sorting_desc, table.dataTable thead > tr > th.sorting, +table.dataTable thead > tr > td.sorting_asc, +table.dataTable thead > tr > td.sorting_desc, +table.dataTable thead > tr > td.sorting { + padding-right: 30px; } + +table.dataTable thead > tr > th:active, +table.dataTable thead > tr > td:active { + outline: none; } + +table.dataTable thead .sorting, +table.dataTable thead .sorting_asc, +table.dataTable thead .sorting_desc, +table.dataTable thead .sorting_asc_disabled, +table.dataTable thead .sorting_desc_disabled { + cursor: pointer; + position: relative; } + table.dataTable thead .sorting:before, table.dataTable thead .sorting:after, + table.dataTable thead .sorting_asc:before, + table.dataTable thead .sorting_asc:after, + table.dataTable thead .sorting_desc:before, + table.dataTable thead .sorting_desc:after, + table.dataTable thead .sorting_asc_disabled:before, + table.dataTable thead .sorting_asc_disabled:after, + table.dataTable thead .sorting_desc_disabled:before, + table.dataTable thead .sorting_desc_disabled:after { + position: absolute; + bottom: 11px; + display: block; + opacity: 0.3; + font-size: 1.3em; } + table.dataTable thead .sorting:before, + table.dataTable thead .sorting_asc:before, + table.dataTable thead .sorting_desc:before, + table.dataTable thead .sorting_asc_disabled:before, + table.dataTable thead .sorting_desc_disabled:before { + right: 1em; + content: "\2191"; } + table.dataTable thead .sorting:after, + table.dataTable thead .sorting_asc:after, + table.dataTable thead .sorting_desc:after, + table.dataTable thead .sorting_asc_disabled:after, + table.dataTable thead .sorting_desc_disabled:after { + right: 0.5em; + content: "\2193"; } + +table.dataTable thead .sorting_asc:before, +table.dataTable thead .sorting_desc:after { + opacity: 1; } + +table.dataTable thead .sorting_asc_disabled:before, +table.dataTable thead .sorting_desc_disabled:after { + opacity: 0; } + +/* + * Styling for DataTables with Semantic UI + */ +table.dataTable.table { + margin: 0; } + table.dataTable.table thead th, + table.dataTable.table thead td { + position: relative; } + table.dataTable.table thead th.sorting, table.dataTable.table thead th.sorting_asc, table.dataTable.table thead th.sorting_desc, + table.dataTable.table thead td.sorting, + table.dataTable.table thead td.sorting_asc, + table.dataTable.table thead td.sorting_desc { + padding-right: 20px; } + table.dataTable.table thead th.sorting:after, table.dataTable.table thead th.sorting_asc:after, table.dataTable.table thead th.sorting_desc:after, + table.dataTable.table thead td.sorting:after, + table.dataTable.table thead td.sorting_asc:after, + table.dataTable.table thead td.sorting_desc:after { + position: absolute; + top: 12px; + right: 8px; + display: block; + font-family: Icons; } + table.dataTable.table thead th.sorting:after, + table.dataTable.table thead td.sorting:after { + content: "\f0dc"; + color: #ddd; + font-size: 0.8em; } + table.dataTable.table td, + table.dataTable.table th { + -webkit-box-sizing: content-box; + box-sizing: content-box; } + table.dataTable.table td.dataTables_empty, + table.dataTable.table th.dataTables_empty { + text-align: center; } + table.dataTable.table.nowrap th, + table.dataTable.table.nowrap td { + white-space: nowrap; } + +div.dataTables_wrapper div.dataTables_length select { + vertical-align: middle; + min-height: 2.7142em; } + +div.dataTables_wrapper div.dataTables_length .ui.selection.dropdown { + min-width: 0; } + +div.dataTables_wrapper div.dataTables_filter span.input { + margin-left: 0.5em; } + +div.dataTables_wrapper div.dataTables_info { + padding-top: 13px; + white-space: nowrap; } + +div.dataTables_wrapper div.dataTables_processing { + position: absolute; + top: 50%; + left: 50%; + width: 200px; + margin-left: -100px; + text-align: center; } + +div.dataTables_wrapper div.row.dt-table { + padding: 0; } + +div.dataTables_wrapper div.dataTables_scrollHead table.dataTable { + border-bottom-right-radius: 0; + border-bottom-left-radius: 0; + border-bottom: none; } + +div.dataTables_wrapper div.dataTables_scrollBody thead .sorting:after, +div.dataTables_wrapper div.dataTables_scrollBody thead .sorting_asc:after, +div.dataTables_wrapper div.dataTables_scrollBody thead .sorting_desc:after { + display: none; } + +div.dataTables_wrapper div.dataTables_scrollBody table.dataTable { + border-radius: 0; + border-top: none; + border-bottom-width: 0; } + +div.dataTables_wrapper div.dataTables_scrollBody table.dataTable.no-footer { + border-bottom-width: 1px; } + +div.dataTables_wrapper div.dataTables_scrollFoot table.dataTable { + border-top-right-radius: 0; + border-top-left-radius: 0; + border-top: none; } + +table.dataTable { + clear: both; } + table.dataTable td, + table.dataTable th { + -webkit-box-sizing: content-box; + box-sizing: content-box; } + table.dataTable td.dataTables_empty, + table.dataTable th.dataTables_empty { + text-align: center; } + table.dataTable.nowrap th, + table.dataTable.nowrap td { + white-space: nowrap; } + +div.dataTables_wrapper div.row.uk-grid.dt-merge-grid { + margin-top: 5px; } + +div.dataTables_wrapper div.dataTables_length label { + font-weight: normal; + text-align: left; + white-space: nowrap; } + +div.dataTables_wrapper div.dataTables_length select { + width: 75px; + display: inline-block; } + +div.dataTables_wrapper div.dataTables_filter { + text-align: right; } + div.dataTables_wrapper div.dataTables_filter label { + font-weight: normal; + white-space: nowrap; + text-align: left; } + div.dataTables_wrapper div.dataTables_filter input { + margin-left: 0.5em; + display: inline-block; + width: auto; } + +div.dataTables_wrapper div.dataTables_info { + padding-top: 8px; + white-space: nowrap; } + +div.dataTables_wrapper div.dataTables_paginate { + margin: 0; + white-space: nowrap; + text-align: right; } + div.dataTables_wrapper div.dataTables_paginate ul.pagination { + margin: 2px 0; + white-space: nowrap; } + +div.dataTables_wrapper div.dataTables_processing { + position: absolute; + top: 50%; + left: 50%; + width: 200px; + margin-left: -100px; + margin-top: -26px; + text-align: center; + padding: 1em 0; } + +table.dataTable thead > tr > th.sorting_asc, table.dataTable thead > tr > th.sorting_desc, table.dataTable thead > tr > th.sorting, +table.dataTable thead > tr > td.sorting_asc, +table.dataTable thead > tr > td.sorting_desc, +table.dataTable thead > tr > td.sorting { + padding-right: 30px; } + +table.dataTable thead > tr > th:active, +table.dataTable thead > tr > td:active { + outline: none; } + +table.dataTable thead .sorting, +table.dataTable thead .sorting_asc, +table.dataTable thead .sorting_desc, +table.dataTable thead .sorting_asc_disabled, +table.dataTable thead .sorting_desc_disabled { + cursor: pointer; + position: relative; } + table.dataTable thead .sorting:before, table.dataTable thead .sorting:after, + table.dataTable thead .sorting_asc:before, + table.dataTable thead .sorting_asc:after, + table.dataTable thead .sorting_desc:before, + table.dataTable thead .sorting_desc:after, + table.dataTable thead .sorting_asc_disabled:before, + table.dataTable thead .sorting_asc_disabled:after, + table.dataTable thead .sorting_desc_disabled:before, + table.dataTable thead .sorting_desc_disabled:after { + position: absolute; + bottom: 1.2em; + display: block; + opacity: 0.3; } + table.dataTable thead .sorting:before, + table.dataTable thead .sorting_asc:before, + table.dataTable thead .sorting_desc:before, + table.dataTable thead .sorting_asc_disabled:before, + table.dataTable thead .sorting_desc_disabled:before { + right: 1em; + content: "\2191"; } + table.dataTable thead .sorting:after, + table.dataTable thead .sorting_asc:after, + table.dataTable thead .sorting_desc:after, + table.dataTable thead .sorting_asc_disabled:after, + table.dataTable thead .sorting_desc_disabled:after { + right: 0.5em; + content: "\2193"; } + +table.dataTable thead .sorting_asc:before, +table.dataTable thead .sorting_desc:after { + opacity: 1; } + +table.dataTable thead .sorting_asc_disabled:before, +table.dataTable thead .sorting_desc_disabled:after { + opacity: 0; } + +div.dataTables_scrollHead table.dataTable { + margin-bottom: 0 !important; } + +div.dataTables_scrollBody table { + border-top: none; + margin-top: 0 !important; + margin-bottom: 0 !important; } + div.dataTables_scrollBody table thead .sorting:after, + div.dataTables_scrollBody table thead .sorting_asc:after, + div.dataTables_scrollBody table thead .sorting_desc:after { + display: none; } + div.dataTables_scrollBody table tbody tr:first-child th, + div.dataTables_scrollBody table tbody tr:first-child td { + border-top: none; } + +div.dataTables_scrollFoot table { + margin-top: 0 !important; + border-top: none; } + +@media screen and (max-width: 767px) { + div.dataTables_wrapper div.dataTables_length, + div.dataTables_wrapper div.dataTables_filter, + div.dataTables_wrapper div.dataTables_info, + div.dataTables_wrapper div.dataTables_paginate { + text-align: center; } } + +table.dataTable.uk-table-condensed > thead > tr > th { + padding-right: 20px; } + +table.dataTable.uk-table-condensed .sorting:after, +table.dataTable.uk-table-condensed .sorting_asc:after, +table.dataTable.uk-table-condensed .sorting_desc:after { + top: 6px; + right: 6px; } + +/* + * Table styles + */ +table.dataTable { + width: 100%; + margin: 0 auto; + clear: both; + border-collapse: separate; + border-spacing: 0; + /* + * Header and footer styles + */ + /* + * Body styles + */ } + table.dataTable thead th, + table.dataTable tfoot th { + font-weight: bold; } + table.dataTable thead th, + table.dataTable thead td { + padding: 10px 18px; } + table.dataTable thead th:active, + table.dataTable thead td:active { + outline: none; } + table.dataTable tfoot th, + table.dataTable tfoot td { + padding: 10px 18px 6px 18px; } + table.dataTable tbody tr { + background-color: #ffffff; } + table.dataTable tbody tr.selected { + background-color: #B0BED9; } + table.dataTable tbody th, + table.dataTable tbody td { + padding: 8px 10px; } + table.dataTable.row-border tbody th, table.dataTable.row-border tbody td, + table.dataTable.display tbody th, + table.dataTable.display tbody td { + border-top: 1px solid #ddd; } + table.dataTable.row-border tbody tr:first-child th, + table.dataTable.row-border tbody tr:first-child td, + table.dataTable.display tbody tr:first-child th, + table.dataTable.display tbody tr:first-child td { + border-top: none; } + table.dataTable.cell-border tbody th, table.dataTable.cell-border tbody td { + border-top: 1px solid #ddd; + border-right: 1px solid #ddd; } + table.dataTable.cell-border tbody tr th:first-child, + table.dataTable.cell-border tbody tr td:first-child { + border-left: 1px solid #ddd; } + table.dataTable.cell-border tbody tr:first-child th, + table.dataTable.cell-border tbody tr:first-child td { + border-top: none; } + table.dataTable.stripe tbody tr.odd, + table.dataTable.display tbody tr.odd { + background-color: #f9f9f9; } + table.dataTable.stripe tbody tr.odd.selected, + table.dataTable.display tbody tr.odd.selected { + background-color: #acbad4; } + table.dataTable.hover tbody tr:hover, + table.dataTable.display tbody tr:hover { + background-color: #f6f6f6; } + table.dataTable.hover tbody tr:hover.selected, + table.dataTable.display tbody tr:hover.selected { + background-color: #aab7d1; } + table.dataTable.order-column tbody tr > .sorting_1, + table.dataTable.order-column tbody tr > .sorting_2, + table.dataTable.order-column tbody tr > .sorting_3, table.dataTable.display tbody tr > .sorting_1, + table.dataTable.display tbody tr > .sorting_2, + table.dataTable.display tbody tr > .sorting_3 { + background-color: #fafafa; } + table.dataTable.order-column tbody tr.selected > .sorting_1, + table.dataTable.order-column tbody tr.selected > .sorting_2, + table.dataTable.order-column tbody tr.selected > .sorting_3, table.dataTable.display tbody tr.selected > .sorting_1, + table.dataTable.display tbody tr.selected > .sorting_2, + table.dataTable.display tbody tr.selected > .sorting_3 { + background-color: #acbad5; } + table.dataTable.display tbody tr.odd > .sorting_1, + table.dataTable.order-column.stripe tbody tr.odd > .sorting_1 { + background-color: #f1f1f1; } + table.dataTable.display tbody tr.odd > .sorting_2, + table.dataTable.order-column.stripe tbody tr.odd > .sorting_2 { + background-color: #f3f3f3; } + table.dataTable.display tbody tr.odd > .sorting_3, + table.dataTable.order-column.stripe tbody tr.odd > .sorting_3 { + background-color: whitesmoke; } + table.dataTable.display tbody tr.odd.selected > .sorting_1, + table.dataTable.order-column.stripe tbody tr.odd.selected > .sorting_1 { + background-color: #a6b4cd; } + table.dataTable.display tbody tr.odd.selected > .sorting_2, + table.dataTable.order-column.stripe tbody tr.odd.selected > .sorting_2 { + background-color: #a8b5cf; } + table.dataTable.display tbody tr.odd.selected > .sorting_3, + table.dataTable.order-column.stripe tbody tr.odd.selected > .sorting_3 { + background-color: #a9b7d1; } + table.dataTable.display tbody tr.even > .sorting_1, + table.dataTable.order-column.stripe tbody tr.even > .sorting_1 { + background-color: #fafafa; } + table.dataTable.display tbody tr.even > .sorting_2, + table.dataTable.order-column.stripe tbody tr.even > .sorting_2 { + background-color: #fcfcfc; } + table.dataTable.display tbody tr.even > .sorting_3, + table.dataTable.order-column.stripe tbody tr.even > .sorting_3 { + background-color: #fefefe; } + table.dataTable.display tbody tr.even.selected > .sorting_1, + table.dataTable.order-column.stripe tbody tr.even.selected > .sorting_1 { + background-color: #acbad5; } + table.dataTable.display tbody tr.even.selected > .sorting_2, + table.dataTable.order-column.stripe tbody tr.even.selected > .sorting_2 { + background-color: #aebcd6; } + table.dataTable.display tbody tr.even.selected > .sorting_3, + table.dataTable.order-column.stripe tbody tr.even.selected > .sorting_3 { + background-color: #afbdd8; } + table.dataTable.display tbody tr:hover > .sorting_1, + table.dataTable.order-column.hover tbody tr:hover > .sorting_1 { + background-color: #eaeaea; } + table.dataTable.display tbody tr:hover > .sorting_2, + table.dataTable.order-column.hover tbody tr:hover > .sorting_2 { + background-color: #ececec; } + table.dataTable.display tbody tr:hover > .sorting_3, + table.dataTable.order-column.hover tbody tr:hover > .sorting_3 { + background-color: #efefef; } + table.dataTable.display tbody tr:hover.selected > .sorting_1, + table.dataTable.order-column.hover tbody tr:hover.selected > .sorting_1 { + background-color: #a2aec7; } + table.dataTable.display tbody tr:hover.selected > .sorting_2, + table.dataTable.order-column.hover tbody tr:hover.selected > .sorting_2 { + background-color: #a3b0c9; } + table.dataTable.display tbody tr:hover.selected > .sorting_3, + table.dataTable.order-column.hover tbody tr:hover.selected > .sorting_3 { + background-color: #a5b2cb; } + table.dataTable.no-footer { + border-bottom: 1px solid #111; } + table.dataTable.nowrap th, table.dataTable.nowrap td { + white-space: nowrap; } + table.dataTable.compact thead th, + table.dataTable.compact thead td { + padding: 4px 17px 4px 4px; } + table.dataTable.compact tfoot th, + table.dataTable.compact tfoot td { + padding: 4px; } + table.dataTable.compact tbody th, + table.dataTable.compact tbody td { + padding: 4px; } + table.dataTable th.dt-left, + table.dataTable td.dt-left { + text-align: left; } + table.dataTable th.dt-center, + table.dataTable td.dt-center, + table.dataTable td.dataTables_empty { + text-align: center; } + table.dataTable th.dt-right, + table.dataTable td.dt-right { + text-align: right; } + table.dataTable th.dt-justify, + table.dataTable td.dt-justify { + text-align: justify; } + table.dataTable th.dt-nowrap, + table.dataTable td.dt-nowrap { + white-space: nowrap; } + table.dataTable thead th.dt-head-left, + table.dataTable thead td.dt-head-left, + table.dataTable tfoot th.dt-head-left, + table.dataTable tfoot td.dt-head-left { + text-align: left; } + table.dataTable thead th.dt-head-center, + table.dataTable thead td.dt-head-center, + table.dataTable tfoot th.dt-head-center, + table.dataTable tfoot td.dt-head-center { + text-align: center; } + table.dataTable thead th.dt-head-right, + table.dataTable thead td.dt-head-right, + table.dataTable tfoot th.dt-head-right, + table.dataTable tfoot td.dt-head-right { + text-align: right; } + table.dataTable thead th.dt-head-justify, + table.dataTable thead td.dt-head-justify, + table.dataTable tfoot th.dt-head-justify, + table.dataTable tfoot td.dt-head-justify { + text-align: justify; } + table.dataTable thead th.dt-head-nowrap, + table.dataTable thead td.dt-head-nowrap, + table.dataTable tfoot th.dt-head-nowrap, + table.dataTable tfoot td.dt-head-nowrap { + white-space: nowrap; } + table.dataTable tbody th.dt-body-left, + table.dataTable tbody td.dt-body-left { + text-align: left; } + table.dataTable tbody th.dt-body-center, + table.dataTable tbody td.dt-body-center { + text-align: center; } + table.dataTable tbody th.dt-body-right, + table.dataTable tbody td.dt-body-right { + text-align: right; } + table.dataTable tbody th.dt-body-justify, + table.dataTable tbody td.dt-body-justify { + text-align: justify; } + table.dataTable tbody th.dt-body-nowrap, + table.dataTable tbody td.dt-body-nowrap { + white-space: nowrap; } + +table.dataTable, +table.dataTable th, +table.dataTable td { + -webkit-box-sizing: content-box; + box-sizing: content-box; } + +/* + * Control feature layout + */ +.dataTables_wrapper { + position: relative; + clear: both; + *zoom: 1; + zoom: 1; } + .dataTables_wrapper .dataTables_length { + float: left; } + .dataTables_wrapper .dataTables_filter { + float: right; + text-align: right; } + .dataTables_wrapper .dataTables_filter input { + margin-left: 0.5em; } + .dataTables_wrapper .dataTables_info { + clear: both; + float: left; + padding-top: 0.755em; } + .dataTables_wrapper .dataTables_paginate { + float: right; + text-align: right; + padding-top: 0.25em; } + .dataTables_wrapper .dataTables_paginate .paginate_button { + -webkit-box-sizing: border-box; + box-sizing: border-box; + display: inline-block; + min-width: 1.5em; + padding: 0.5em 1em; + margin-left: 2px; + text-align: center; + text-decoration: none !important; + cursor: pointer; + *cursor: hand; + color: #333 !important; + border: 1px solid transparent; + border-radius: 2px; } + .dataTables_wrapper .dataTables_paginate .paginate_button.current, .dataTables_wrapper .dataTables_paginate .paginate_button.current:hover { + color: #333 !important; + border: 1px solid #979797; + background-color: white; + /* Chrome,Safari4+ */ + /* Chrome10+,Safari5.1+ */ + /* FF3.6+ */ + /* IE10+ */ + /* Opera 11.10+ */ + background: -webkit-gradient(linear, left top, left bottom, from(white), to(#dcdcdc)); + background: linear-gradient(to bottom, white 0%, #dcdcdc 100%); + /* W3C */ } + .dataTables_wrapper .dataTables_paginate .paginate_button.disabled, .dataTables_wrapper .dataTables_paginate .paginate_button.disabled:hover, .dataTables_wrapper .dataTables_paginate .paginate_button.disabled:active { + cursor: default; + color: #666 !important; + border: 1px solid transparent; + background: transparent; + -webkit-box-shadow: none; + box-shadow: none; } + .dataTables_wrapper .dataTables_paginate .paginate_button:hover { + color: white !important; + border: 1px solid #111; + background-color: #585858; + /* Chrome,Safari4+ */ + /* Chrome10+,Safari5.1+ */ + /* FF3.6+ */ + /* IE10+ */ + /* Opera 11.10+ */ + background: -webkit-gradient(linear, left top, left bottom, from(#585858), to(#111)); + background: linear-gradient(to bottom, #585858 0%, #111 100%); + /* W3C */ } + .dataTables_wrapper .dataTables_paginate .paginate_button:active { + outline: none; + background-color: #2b2b2b; + /* Chrome,Safari4+ */ + /* Chrome10+,Safari5.1+ */ + /* FF3.6+ */ + /* IE10+ */ + /* Opera 11.10+ */ + background: -webkit-gradient(linear, left top, left bottom, from(#2b2b2b), to(#0c0c0c)); + background: linear-gradient(to bottom, #2b2b2b 0%, #0c0c0c 100%); + /* W3C */ + -webkit-box-shadow: inset 0 0 3px #111; + box-shadow: inset 0 0 3px #111; } + .dataTables_wrapper .dataTables_paginate .ellipsis { + padding: 0 1em; } + .dataTables_wrapper .dataTables_processing { + position: absolute; + top: 50%; + left: 50%; + width: 100%; + height: 40px; + margin-left: -50%; + margin-top: -25px; + padding-top: 20px; + text-align: center; + font-size: 1.2em; + background-color: white; + background: -webkit-gradient(linear, left top, right top, from(rgba(255, 255, 255, 0)), color-stop(25%, rgba(255, 255, 255, 0.9)), color-stop(75%, rgba(255, 255, 255, 0.9)), to(rgba(255, 255, 255, 0))); + background: linear-gradient(to right, rgba(255, 255, 255, 0) 0%, rgba(255, 255, 255, 0.9) 25%, rgba(255, 255, 255, 0.9) 75%, rgba(255, 255, 255, 0) 100%); } + .dataTables_wrapper .dataTables_length, + .dataTables_wrapper .dataTables_filter, + .dataTables_wrapper .dataTables_info, + .dataTables_wrapper .dataTables_processing, + .dataTables_wrapper .dataTables_paginate { + color: #333; } + .dataTables_wrapper .dataTables_scroll { + clear: both; } + .dataTables_wrapper .dataTables_scroll div.dataTables_scrollBody { + *margin-top: -1px; + -webkit-overflow-scrolling: touch; } + .dataTables_wrapper .dataTables_scroll div.dataTables_scrollBody > table > thead > tr > th, .dataTables_wrapper .dataTables_scroll div.dataTables_scrollBody > table > thead > tr > td, .dataTables_wrapper .dataTables_scroll div.dataTables_scrollBody > table > tbody > tr > th, .dataTables_wrapper .dataTables_scroll div.dataTables_scrollBody > table > tbody > tr > td { + vertical-align: middle; } + .dataTables_wrapper .dataTables_scroll div.dataTables_scrollBody > table > thead > tr > th > div.dataTables_sizing, + .dataTables_wrapper .dataTables_scroll div.dataTables_scrollBody > table > thead > tr > td > div.dataTables_sizing, .dataTables_wrapper .dataTables_scroll div.dataTables_scrollBody > table > tbody > tr > th > div.dataTables_sizing, + .dataTables_wrapper .dataTables_scroll div.dataTables_scrollBody > table > tbody > tr > td > div.dataTables_sizing { + height: 0; + overflow: hidden; + margin: 0 !important; + padding: 0 !important; } + .dataTables_wrapper.no-footer .dataTables_scrollBody { + border-bottom: 1px solid #111; } + .dataTables_wrapper.no-footer div.dataTables_scrollHead table.dataTable, + .dataTables_wrapper.no-footer div.dataTables_scrollBody > table { + border-bottom: none; } + .dataTables_wrapper:after { + visibility: hidden; + display: block; + content: ""; + clear: both; + height: 0; } + +@media screen and (max-width: 767px) { + .dataTables_wrapper .dataTables_info, + .dataTables_wrapper .dataTables_paginate { + float: none; + text-align: center; } + .dataTables_wrapper .dataTables_paginate { + margin-top: 0.5em; } } + +@media screen and (max-width: 640px) { + .dataTables_wrapper .dataTables_length, + .dataTables_wrapper .dataTables_filter { + float: none; + text-align: center; } + .dataTables_wrapper .dataTables_filter { + margin-top: 0.5em; } } diff --git a/public/admin/assets/css/date-picker.css b/public/admin/assets/css/date-picker.css new file mode 100644 index 0000000..f1e850d --- /dev/null +++ b/public/admin/assets/css/date-picker.css @@ -0,0 +1,341 @@ +.datepicker--cell-day.-other-month-, .datepicker--cell-year.-other-decade- { + color: #dedede; } + .datepicker--cell-day.-other-month-:hover, .datepicker--cell-year.-other-decade-:hover { + color: #c5c5c5; } + .-disabled-.-focus-.datepicker--cell-day.-other-month-, .-disabled-.-focus-.datepicker--cell-year.-other-decade- { + color: #dedede; } + .-selected-.datepicker--cell-day.-other-month-, .-selected-.datepicker--cell-year.-other-decade- { + color: #fff; + background: #a2ddf6; } + .-selected-.-focus-.datepicker--cell-day.-other-month-, .-selected-.-focus-.datepicker--cell-year.-other-decade- { + background: #8ad5f4; } + .-in-range-.datepicker--cell-day.-other-month-, .-in-range-.datepicker--cell-year.-other-decade- { + background-color: rgba(92, 196, 239, 0.1); + color: #cccccc; } + .-in-range-.-focus-.datepicker--cell-day.-other-month-, .-in-range-.-focus-.datepicker--cell-year.-other-decade- { + background-color: rgba(92, 196, 239, 0.2); } + .datepicker--cell-day.-other-month-:empty, .datepicker--cell-year.-other-decade-:empty { + background: none; + border: none; } + +/* ------------------------------------------------- + Datepicker cells + ------------------------------------------------- */ +.datepicker--cells { + display: -webkit-box; + display: -ms-flexbox; + display: flex; + -ms-flex-wrap: wrap; + flex-wrap: wrap; } + +.datepicker--cell { + border-radius: 5px; + -webkit-box-sizing: border-box; + box-sizing: border-box; + cursor: pointer; + display: -webkit-box; + display: -ms-flexbox; + display: flex; + position: relative; + -webkit-box-align: center; + -ms-flex-align: center; + align-items: center; + -webkit-box-pack: center; + -ms-flex-pack: center; + justify-content: center; + height: 32px; + z-index: 1; } + .datepicker--cell.-focus- { + background: #f0f0f0; } + .datepicker--cell.-current- { + color: #4EB5E6; + border-color: #4EB5E6; } + .datepicker--cell.-current-.-focus- { + color: #4a4a4a; } + .datepicker--cell.-current-.-in-range- { + color: #4EB5E6; } + .datepicker--cell.-in-range- { + background: rgba(92, 196, 239, 0.1); + color: #4a4a4a; + border-radius: 0; } + .datepicker--cell.-in-range-.-focus- { + background-color: rgba(92, 196, 239, 0.2); } + .datepicker--cell.-disabled- { + cursor: default; + color: #aeaeae; } + .datepicker--cell.-disabled-.-focus- { + color: #aeaeae; } + .datepicker--cell.-disabled-.-in-range- { + color: #a1a1a1; } + .datepicker--cell.-disabled-.-current-.-focus- { + color: #aeaeae; } + .datepicker--cell.-range-from- { + border: 1px solid rgba(92, 196, 239, 0.5); + background-color: rgba(92, 196, 239, 0.1); + border-radius: 8px 0 0 8px; } + .datepicker--cell.-range-to- { + border: 1px solid rgba(92, 196, 239, 0.5); + background-color: rgba(92, 196, 239, 0.1); + border-radius: 0 8px 8px 0; } + .datepicker--cell.-range-from-.-range-to- { + border-radius: 8px; } + .datepicker--cell.-selected- { + color: #fff; + border: none; + background-color: #24695c; } + .datepicker--cell.-selected-.-current- { + color: #fff; + background-color: #24695c; } + .datepicker--cell.-selected-.-focus- { + background-color: #24695c; } + .datepicker--cell:empty { + cursor: default; } + +.datepicker--days-names { + display: -webkit-box; + display: -ms-flexbox; + display: flex; + -ms-flex-wrap: wrap; + flex-wrap: wrap; + margin: 8px 0 3px; } + +.datepicker--day-name { + color: #FF9A19; + 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; + -webkit-box-flex: 1; + -ms-flex: 1; + flex: 1; + text-align: center; + text-transform: uppercase; + font-size: .8em; } + +.datepicker--cell-day { + width: 14.28571%; + height: 34px; } + +.datepicker--cells-months { + height: 170px; } + +.datepicker--cell-month { + width: 33.33%; + height: 25%; } + +.datepicker--years { + height: 170px; } + +.datepicker--cells-years { + height: 170px; } + +.datepicker--cell-year { + width: 25%; + height: 33.33%; } + +/* ------------------------------------------------- + Datepicker + ------------------------------------------------- */ +.datepickers-container { + position: absolute; + left: 0; + top: 0; } + @media print { + .datepickers-container { + display: none; } } + +.datepicker { + background-color: #fff; + border-radius: 8px; + -webkit-box-sizing: content-box; + box-sizing: content-box; + font-size: 14px; + color: #4a4a4a; + width: 250px; + position: absolute; + left: -100000px; + opacity: 0; + padding: 10px; + -webkit-transition: opacity 0.3s ease, left 0s 0.3s, -webkit-transform 0.3s ease; + transition: opacity 0.3s ease, left 0s 0.3s, -webkit-transform 0.3s ease; + transition: opacity 0.3s ease, transform 0.3s ease, left 0s 0.3s; + transition: opacity 0.3s ease, transform 0.3s ease, left 0s 0.3s, -webkit-transform 0.3s ease; + z-index: 100; + -webkit-box-shadow: 0 4px 14px rgba(174, 197, 231, 0.5); + box-shadow: 0 4px 14px rgba(174, 197, 231, 0.5); } + .datepicker.-from-top- { + -webkit-transform: translateY(-8px); + transform: translateY(-8px); } + .datepicker.-from-right- { + -webkit-transform: translateX(8px); + transform: translateX(8px); } + .datepicker.-from-bottom- { + -webkit-transform: translateY(8px); + transform: translateY(8px); } + .datepicker.-from-left- { + -webkit-transform: translateX(-8px); + transform: translateX(-8px); } + .datepicker.active { + opacity: 1; + -webkit-transform: translate(0); + transform: translate(0); + -webkit-transition: opacity 0.3s ease, left 0s 0s, -webkit-transform 0.3s ease; + transition: opacity 0.3s ease, left 0s 0s, -webkit-transform 0.3s ease; + transition: opacity 0.3s ease, transform 0.3s ease, left 0s 0s; + transition: opacity 0.3s ease, transform 0.3s ease, left 0s 0s, -webkit-transform 0.3s ease; } + +.datepicker-inline .datepicker { + position: static; + left: auto; + right: auto; + opacity: 1; + -webkit-transform: none; + transform: none; + border-color: #e6edef; } + +.datepicker-inline .datepicker--pointer { + display: none; } + +.datepicker--content { + -webkit-box-sizing: content-box; + box-sizing: content-box; + padding: 4px; } + .-only-timepicker- .datepicker--content { + display: none; } + +.datepicker--pointer { + position: absolute; + background: #fff; + border-top: 1px solid #dbdbdb; + border-right: 1px solid #dbdbdb; + width: 10px; + height: 10px; + z-index: -1; } + .-top-left- .datepicker--pointer, .-top-center- .datepicker--pointer, .-top-right- .datepicker--pointer { + top: calc(100% - 4px); + -webkit-transform: rotate(135deg); + transform: rotate(135deg); } + .-right-top- .datepicker--pointer, .-right-center- .datepicker--pointer, .-right-bottom- .datepicker--pointer { + right: calc(100% - 4px); + -webkit-transform: rotate(225deg); + transform: rotate(225deg); } + .-bottom-left- .datepicker--pointer, .-bottom-center- .datepicker--pointer, .-bottom-right- .datepicker--pointer { + bottom: calc(100% - 4px); + -webkit-transform: rotate(315deg); + transform: rotate(315deg); } + .-left-top- .datepicker--pointer, .-left-center- .datepicker--pointer, .-left-bottom- .datepicker--pointer { + left: calc(100% - 4px); + -webkit-transform: rotate(45deg); + transform: rotate(45deg); } + .-top-left- .datepicker--pointer, .-bottom-left- .datepicker--pointer { + left: 10px; } + .-top-right- .datepicker--pointer, .-bottom-right- .datepicker--pointer { + right: 10px; } + .-top-center- .datepicker--pointer, .-bottom-center- .datepicker--pointer { + left: calc(50% - 10px / 2); } + .-left-top- .datepicker--pointer, .-right-top- .datepicker--pointer { + top: 10px; } + .-left-bottom- .datepicker--pointer, .-right-bottom- .datepicker--pointer { + bottom: 10px; } + .-left-center- .datepicker--pointer, .-right-center- .datepicker--pointer { + top: calc(50% - 10px / 2); } + +.datepicker--body { + display: none; } + .datepicker--body.active { + display: block !important; } + +/* ------------------------------------------------- + Navigation + ------------------------------------------------- */ +.datepicker--nav { + color: #24695c; + text-transform: uppercase; + letter-spacing: 2px; + font-weight: 600; + border-radius: 5px; + display: -webkit-box; + display: -ms-flexbox; + display: flex; + -webkit-box-pack: justify; + -ms-flex-pack: justify; + justify-content: space-between; + border-bottom: 1px solid #efefef; + min-height: 32px; + padding: 4px; } + .-only-timepicker- .datepicker--nav { + display: none; } + +.datepicker--nav-title, +.datepicker--nav-action { + display: -webkit-box; + display: -ms-flexbox; + display: flex; + cursor: pointer; + -webkit-box-align: center; + -ms-flex-align: center; + align-items: center; + -webkit-box-pack: center; + -ms-flex-pack: center; + justify-content: center; } + +.datepicker--nav-action { + width: 32px; + border-radius: 5px; + -webkit-user-select: none; + -moz-user-select: none; + -ms-user-select: none; + user-select: none; } + .datepicker--nav-action.-disabled- { + visibility: hidden; } + .datepicker--nav-action svg { + width: 32px; + height: 32px; } + .datepicker--nav-action path { + fill: none; + stroke: #fff; + stroke-width: 2px; } + +.datepicker--nav-title { + border-radius: 8px; + padding: 0 8px; } + .datepicker--nav-title i { + font-style: normal; + color: #24695c; + margin-left: 5px; } + .datepicker--nav-title.-disabled- { + cursor: default; + background: none; } + +.datepicker--buttons { + display: -webkit-box; + display: -ms-flexbox; + display: flex; + padding: 4px; + border-top: 1px solid #efefef; } + +.datepicker--button { + color: #4EB5E6; + cursor: pointer; + border-radius: 8px; + -webkit-box-flex: 1; + -ms-flex: 1; + flex: 1; + display: -webkit-inline-box; + display: -ms-inline-flexbox; + display: inline-flex; + -webkit-box-pack: center; + -ms-flex-pack: center; + justify-content: center; + -webkit-box-align: center; + -ms-flex-align: center; + align-items: center; + height: 32px; } + .datepicker--button:hover { + color: #4a4a4a; + background: #f0f0f0; } diff --git a/public/admin/assets/css/daterange-picker.css b/public/admin/assets/css/daterange-picker.css new file mode 100644 index 0000000..11f53c9 --- /dev/null +++ b/public/admin/assets/css/daterange-picker.css @@ -0,0 +1,276 @@ +.daterangepicker { + position: absolute; + color: inherit; + background-color: #fff; + border-radius: 5px; + width: 278px; + padding: 4px; + margin-top: 1px; + font-family: "Rubik", sans-serif, sans-serif; + top: 100px; + left: 20px; + -webkit-box-shadow: 0 4px 14px rgba(174, 197, 231, 0.5); + box-shadow: 0 4px 14px rgba(174, 197, 231, 0.5); + border: none; + /* Calendars */ } + .daterangepicker:before, .daterangepicker:after { + position: absolute; + display: inline-block; + border-bottom-color: rgba(0, 0, 0, 0.2); + content: ''; } + .daterangepicker:before { + top: -7px; + border-right: 7px solid transparent; + border-left: 7px solid transparent; + border-bottom: 7px solid #24695c; } + .daterangepicker:after { + top: -6px; + border-right: 6px solid transparent; + border-bottom: 6px solid #fff; + border-left: 6px solid transparent; } + .daterangepicker.opensleft:before { + right: 9px; } + .daterangepicker.opensleft:after { + right: 10px; } + .daterangepicker.openscenter:before { + left: 0; + right: 0; + width: 0; + margin-left: auto; + margin-right: auto; } + .daterangepicker.openscenter:after { + left: 0; + right: 0; + width: 0; + margin-left: auto; + margin-right: auto; } + .daterangepicker.opensright:before { + left: 9px; } + .daterangepicker.opensright:after { + left: 10px; } + .daterangepicker.dropup { + margin-top: -5px; } + .daterangepicker.dropup:before { + top: initial; + bottom: -7px; + border-bottom: initial; + border-top: 7px solid #ccc; } + .daterangepicker.dropup:after { + top: initial; + bottom: -6px; + border-bottom: initial; + border-top: 6px solid #fff; } + .daterangepicker.dropdown-menu { + max-width: none; + z-index: 3001; } + .daterangepicker.single .ranges, .daterangepicker.single .calendar { + float: none; } + .daterangepicker.show-calendar .calendar { + display: block; } + .daterangepicker .calendar { + display: none; + max-width: 270px; + margin: 4px; } + .daterangepicker .calendar.single .calendar-table { + border: none; } + .daterangepicker .calendar th, .daterangepicker .calendar td { + white-space: nowrap; + text-align: center; + min-width: 32px; } + .daterangepicker .calendar-table { + border: 1px solid #fff; + padding: 4px; + border-radius: 5px; + background-color: #fff; } + .daterangepicker table { + width: 100%; + margin: 0; } + .daterangepicker td, .daterangepicker th { + text-align: center; + width: 20px; + height: 20px; + border-radius: 5px; + border: 1px solid transparent; + white-space: nowrap; + cursor: pointer; } + .daterangepicker td.available:hover, .daterangepicker th.available:hover { + border-color: transparent; + background-color: #24695c; + color: #fff; } + .daterangepicker td.week, .daterangepicker th.week { + font-size: 80%; + color: #ccc; } + .daterangepicker td.off, .daterangepicker td.off.in-range, .daterangepicker td.off.start-date, .daterangepicker td.off.end-date { + background-color: #fff; + border-color: transparent; + color: #999; } + .daterangepicker td.off.active { + color: #fff; } + .daterangepicker td.in-range { + background-color: #ebf4f8; + border-color: transparent; + color: #000; + border-radius: 0; } + .daterangepicker td.start-date { + border-radius: 5px; } + .daterangepicker td.end-date { + border-radius: 5px; } + .daterangepicker td.start-date.end-date { + border-radius: 5px; } + .daterangepicker td.active, .daterangepicker td.active:hover { + background-color: #357ebd; + border-color: transparent; + color: #fff; } + .daterangepicker th.month { + width: auto; } + .daterangepicker td.disabled, .daterangepicker option.disabled { + color: #999; + cursor: not-allowed; + text-decoration: line-through; } + .daterangepicker select.monthselect, .daterangepicker select.yearselect { + font-size: 12px; + padding: 1px; + height: auto; + margin: 0; + cursor: default; } + .daterangepicker select.monthselect { + margin-right: 2%; + width: 56%; } + .daterangepicker select.yearselect { + width: 40%; } + .daterangepicker select.hourselect, .daterangepicker select.minuteselect, .daterangepicker select.secondselect, .daterangepicker select.ampmselect { + width: 50px; + margin-bottom: 0; } + .daterangepicker .input-mini { + border: 1px solid #ccc; + border-radius: 4px; + color: #555; + height: 30px; + line-height: 30px; + display: block; + vertical-align: middle; + margin: 0 0 5px 0; + padding: 0 6px 0 28px; + width: 100%; } + .daterangepicker .input-mini.active { + border: 1px solid #24695c; + border-radius: 4px; } + .daterangepicker .daterangepicker_input { + position: relative; } + .daterangepicker .daterangepicker_input i { + position: absolute; + left: 8px; + top: 8px; } + .daterangepicker.rtl .input-mini { + padding-right: 28px; + padding-left: 6px; } + .daterangepicker.rtl .daterangepicker_input i { + left: auto; + right: 8px; } + .daterangepicker .calendar-time { + text-align: center; + margin: 5px auto; + line-height: 30px; + position: relative; + padding-left: 28px; } + .daterangepicker .calendar-time select.disabled { + color: #ccc; + cursor: not-allowed; } + +.ranges { + font-size: 11px; + float: none; + margin: 4px; + text-align: left; } + .ranges ul { + list-style: none; + margin: 0 auto; + padding: 0; + width: 100%; } + .ranges li { + font-size: 14px; + background-color: rgba(246, 246, 246, 0.6); + border: 1px solid rgba(246, 246, 246, 0.6); + border-radius: 5px; + color: #08c; + padding: 3px 12px; + margin-bottom: 8px; + cursor: pointer; } + .ranges li:hover { + background-color: #08c; + border: 1px solid #08c; + color: #fff; } + .ranges li.active { + background-color: #08c; + border: 1px solid #08c; + color: #fff; } + +/* Larger Screen Styling */ +@media (min-width: 564px) { + .daterangepicker { + width: auto; } + .daterangepicker .ranges ul { + width: 160px; } + .daterangepicker.single .ranges ul { + width: 100%; } + .daterangepicker.single .calendar.left { + clear: none; } + .daterangepicker.single.ltr .ranges, .daterangepicker.single.ltr .calendar { + float: left; } + .daterangepicker.single.rtl .ranges, .daterangepicker.single.rtl .calendar { + float: right; } + .daterangepicker.ltr { + direction: ltr; + text-align: left; } + .daterangepicker.ltr .calendar.left { + clear: left; + margin-right: 0; } + .daterangepicker.ltr .calendar.left .calendar-table { + border-right: none; + border-top-right-radius: 0; + border-bottom-right-radius: 0; } + .daterangepicker.ltr .calendar.right { + margin-left: 0; } + .daterangepicker.ltr .calendar.right .calendar-table { + border-left: none; + border-top-left-radius: 0; + border-bottom-left-radius: 0; } + .daterangepicker.ltr .left .daterangepicker_input { + padding-right: 12px; } + .daterangepicker.ltr .calendar.left .calendar-table { + padding-right: 12px; } + .daterangepicker.ltr .ranges, .daterangepicker.ltr .calendar { + float: left; } + .daterangepicker.rtl { + direction: rtl; + text-align: right; } + .daterangepicker.rtl .calendar.left { + clear: right; + margin-left: 0; } + .daterangepicker.rtl .calendar.left .calendar-table { + border-left: none; + border-top-left-radius: 0; + border-bottom-left-radius: 0; } + .daterangepicker.rtl .calendar.right { + margin-right: 0; } + .daterangepicker.rtl .calendar.right .calendar-table { + border-right: none; + border-top-right-radius: 0; + border-bottom-right-radius: 0; } + .daterangepicker.rtl .left .daterangepicker_input { + padding-left: 12px; } + .daterangepicker.rtl .calendar.left .calendar-table { + padding-left: 12px; } + .daterangepicker.rtl .ranges, .daterangepicker.rtl .calendar { + text-align: right; + float: right; } } + +@media (min-width: 730px) { + .daterangepicker .ranges { + width: auto; } + .daterangepicker.ltr .ranges { + float: left; } + .daterangepicker.rtl .ranges { + float: right; } + .daterangepicker .calendar.left { + clear: none !important; } } diff --git a/public/admin/assets/css/dropzone-spritemap.html b/public/admin/assets/css/dropzone-spritemap.html new file mode 100644 index 0000000..464fa5f --- /dev/null +++ b/public/admin/assets/css/dropzone-spritemap.html @@ -0,0 +1,32 @@ + + + + + + + Not Found + + + + + + +
+
+
+
+ 404
+ +
+ Not Found
+
+
+
+ + diff --git a/public/admin/assets/css/dropzone.css b/public/admin/assets/css/dropzone.css new file mode 100644 index 0000000..716fe67 --- /dev/null +++ b/public/admin/assets/css/dropzone.css @@ -0,0 +1,479 @@ +/* The MIT License */ + +@-webkit-keyframes loading { + 0% { + background-position: 0 -400px; } + 100% { + background-position: -7px -400px; } } + +@keyframes loading { + 0% { + background-position: 0 -400px; } + 100% { + background-position: -7px -400px; } } + +.dropzone { + -webkit-box-sizing: border-box; + box-sizing: border-box; + position: relative; + border: 1px solid rgba(0, 0, 0, 0.08); + background: rgba(0, 0, 0, 0.02); + padding: 1em; + min-height: 360px; + border-radius: 3px; } + .dropzone * { + -webkit-box-sizing: border-box; + box-sizing: border-box; } + .dropzone .dz-message { + opacity: 1; + -ms-filter: none; + -webkit-filter: none; + filter: none; } + .dropzone .dz-preview { + background: rgba(255, 255, 255, 0.8); + position: relative; + display: inline-block; + margin: 17px; + vertical-align: top; + border: 1px solid #acacac; + padding: 6px 6px 6px 6px; + -webkit-box-shadow: 1px 1px 4px rgba(0, 0, 0, 0.16); + box-shadow: 1px 1px 4px rgba(0, 0, 0, 0.16); + font-size: 14px; } + .dropzone .dz-preview .dz-details { + position: absolute; + top: 10px; + background-color: #eeeeee; + width: 50%; + left: 32px; + text-align: center; } + .dropzone .dz-preview .dz-details .dz-filename { + overflow: hidden; + height: 0; } + .dropzone .dz-preview .dz-details img { + position: absolute; + top: 0; + left: 0; + width: 100px; + height: 100px; } + .dropzone .dz-preview:hover .dz-details img { + display: none; } + .dropzone .dz-preview .dz-success-mark { + display: none; + position: absolute; + width: 40px; + height: 40px; + font-size: 30px; + text-align: center; + right: -10px; + top: -10px; + color: #8cc657; + display: block; + opacity: 0; + filter: alpha(opacity=0); + -ms-filter: "progid:DXImageTransform.Microsoft.Alpha(Opacity=0)"; + -webkit-transition: opacity 0.4s ease-in-out; + transition: opacity 0.4s ease-in-out; + background-image: image-url("dropzone-spritemap.html"); + background-repeat: no-repeat; + background-position: -268px -163px; } + .dropzone .dz-preview .dz-success-mark span { + display: none; } + .dropzone .dz-preview .dz-error-mark { + display: none; + position: absolute; + width: 40px; + height: 40px; + font-size: 30px; + text-align: center; + right: -10px; + top: -10px; + color: #ee162d; + display: block; + opacity: 0; + filter: alpha(opacity=0); + -ms-filter: "progid:DXImageTransform.Microsoft.Alpha(Opacity=0)"; + -webkit-transition: opacity 0.4s ease-in-out; + transition: opacity 0.4s ease-in-out; + background-image: image-url("dropzone-spritemap.html"); + background-repeat: no-repeat; + background-position: -268px -123px; } + .dropzone .dz-preview .dz-error-mark span { + display: none; } + .dropzone .dz-preview .dz-progress { + position: absolute; + top: 100px; + left: 6px; + right: 6px; + height: 6px; + background: #1b4c43; + display: none; } + .dropzone .dz-preview .dz-progress .dz-upload { + position: absolute; + top: 0; + bottom: 0; + left: 0; + width: 0%; + background-color: #8cc657; + -webkit-animation: loading 0.4s linear infinite; + animation: loading 0.4s linear infinite; + -webkit-transition: width 0.3s ease-in-out; + transition: width 0.3s ease-in-out; + border-radius: 2px; + position: absolute; + top: 0; + left: 0; + width: 0%; + height: 100%; + background-image: image-url("dropzone-spritemap.html"); + background-repeat: repeat-x; + background-position: 0px -400px; } + .dropzone .dz-preview .dz-error-message { + display: none; + position: absolute; + top: -5px; + left: -20px; + background: rgba(245, 245, 245, 0.8); + padding: 8px 10px; + color: #800; + min-width: 140px; + max-width: 500px; + z-index: 500; + display: block; + opacity: 0; + filter: alpha(opacity=0); + -ms-filter: "progid:DXImageTransform.Microsoft.Alpha(Opacity=0)"; + -webkit-transition: opacity 0.3s ease-in-out; + transition: opacity 0.3s ease-in-out; } + .dropzone .dz-preview:hover.dz-error .dz-error-message { + display: block; + opacity: 1; + -ms-filter: none; + -webkit-filter: none; + filter: none; } + .dropzone .dz-preview.dz-file-preview [data-dz-thumbnail] { + display: none; } + .dropzone .dz-preview.dz-error .dz-error-mark { + display: block; + opacity: 1; + -ms-filter: none; + -webkit-filter: none; + filter: none; } + .dropzone .dz-preview.dz-error .dz-progress .dz-upload { + background: #1b4c43; } + .dropzone .dz-preview.dz-success .dz-success-mark { + display: block; + opacity: 1; + -ms-filter: none; + -webkit-filter: none; + filter: none; } + .dropzone .dz-preview.dz-success .dz-progress { + display: block; + opacity: 0; + filter: alpha(opacity=0); + -ms-filter: "progid:DXImageTransform.Microsoft.Alpha(Opacity=0)"; + -webkit-transition: opacity 0.4s ease-in-out; + transition: opacity 0.4s ease-in-out; } + .dropzone .dz-preview.dz-processing .dz-progress { + display: block; } + .dropzone .dz-default.dz-message { + opacity: 1; + -ms-filter: none; + -webkit-filter: none; + filter: none; + -webkit-transition: opacity 0.3s ease-in-out; + transition: opacity 0.3s ease-in-out; + background-image: image-url("dropzone-spritemap.html"); + background-repeat: no-repeat; + background-position: 0 0; + position: absolute; + width: 428px; + height: 123px; + margin-left: -214px; + margin-top: -61.5px; + top: 50%; + left: 50%; } + .dropzone .dz-default.dz-message span { + display: none; } + .dropzone .dz-preview.dz-image-preview:hover .dz-details img { + display: block; + opacity: 0.1; + filter: alpha(opacity=10); + -ms-filter: "progid:DXImageTransform.Microsoft.Alpha(Opacity=10)"; } + +.dropzone-previews { + -webkit-box-sizing: border-box; + box-sizing: border-box; } + .dropzone-previews * { + -webkit-box-sizing: border-box; + box-sizing: border-box; } + .dropzone-previews .dz-preview { + background: rgba(255, 255, 255, 0.8); + position: relative; + display: inline-block; + margin: 17px; + vertical-align: top; + border: 1px solid #acacac; + padding: 6px 6px 6px 6px; + -webkit-box-shadow: 1px 1px 4px rgba(0, 0, 0, 0.16); + box-shadow: 1px 1px 4px rgba(0, 0, 0, 0.16); + font-size: 14px; } + .dropzone-previews .dz-preview .dz-details { + width: 100px; + height: 100px; + position: relative; + background: #ebebeb; + padding: 5px; + margin-bottom: 22px; } + .dropzone-previews .dz-preview .dz-details .dz-filename { + overflow: hidden; + height: 100%; } + .dropzone-previews .dz-preview .dz-details img { + position: absolute; + top: 0; + left: 0; + width: 100px; + height: 100px; } + .dropzone-previews .dz-preview .dz-details .dz-size { + position: absolute; + bottom: -28px; + left: 3px; + height: 28px; + line-height: 28px; } + .dropzone-previews .dz-preview:hover .dz-details img { + display: none; } + .dropzone-previews .dz-preview .dz-success-mark { + display: none; + position: absolute; + width: 40px; + height: 40px; + font-size: 30px; + text-align: center; + right: -10px; + top: -10px; + color: #8cc657; + display: block; + opacity: 0; + filter: alpha(opacity=0); + -ms-filter: "progid:DXImageTransform.Microsoft.Alpha(Opacity=0)"; + -webkit-transition: opacity 0.4s ease-in-out; + transition: opacity 0.4s ease-in-out; + background-image: image-url("dropzone-spritemap.html"); + background-repeat: no-repeat; + background-position: -268px -163px; } + .dropzone-previews .dz-preview .dz-success-mark span { + display: none; } + .dropzone-previews .dz-preview .dz-error-mark { + display: none; + position: absolute; + width: 40px; + height: 40px; + font-size: 30px; + text-align: center; + right: -10px; + top: -10px; + color: #ee162d; + display: block; + opacity: 0; + filter: alpha(opacity=0); + -ms-filter: "progid:DXImageTransform.Microsoft.Alpha(Opacity=0)"; + -webkit-transition: opacity 0.4s ease-in-out; + transition: opacity 0.4s ease-in-out; + background-image: image-url("dropzone-spritemap.html"); + background-repeat: no-repeat; + background-position: -268px -123px; } + .dropzone-previews .dz-preview .dz-error-mark span { + display: none; } + .dropzone-previews .dz-preview .dz-progress { + position: absolute; + top: 100px; + left: 6px; + right: 6px; + height: 6px; + background: #1b4c43; + display: none; } + .dropzone-previews .dz-preview .dz-progress .dz-upload { + position: absolute; + top: 0; + bottom: 0; + left: 0; + width: 0%; + background-color: #8cc657; + -webkit-animation: loading 0.4s linear infinite; + animation: loading 0.4s linear infinite; + -webkit-transition: width 0.3s ease-in-out; + transition: width 0.3s ease-in-out; + border-radius: 2px; + position: absolute; + top: 0; + left: 0; + width: 0%; + height: 100%; + background-image: image-url("dropzone-spritemap.html"); + background-repeat: repeat-x; + background-position: 0px -400px; } + .dropzone-previews .dz-preview .dz-error-message { + display: none; + position: absolute; + top: -5px; + left: -20px; + background: rgba(245, 245, 245, 0.8); + padding: 8px 10px; + color: #800; + min-width: 140px; + max-width: 500px; + z-index: 500; + display: block; + opacity: 0; + filter: alpha(opacity=0); + -ms-filter: "progid:DXImageTransform.Microsoft.Alpha(Opacity=0)"; + -webkit-transition: opacity 0.3s ease-in-out; + transition: opacity 0.3s ease-in-out; } + .dropzone-previews .dz-preview:hover.dz-error .dz-error-message { + display: block; + opacity: 1; + -ms-filter: none; + -webkit-filter: none; + filter: none; } + .dropzone-previews .dz-preview.dz-file-preview [data-dz-thumbnail] { + display: none; } + .dropzone-previews .dz-preview.dz-error .dz-error-mark { + display: block; + opacity: 1; + -ms-filter: none; + -webkit-filter: none; + filter: none; } + .dropzone-previews .dz-preview.dz-error .dz-progress .dz-upload { + background: #ee1e2d; } + .dropzone-previews .dz-preview.dz-success .dz-success-mark { + display: block; + opacity: 1; + -ms-filter: none; + -webkit-filter: none; + filter: none; } + .dropzone-previews .dz-preview.dz-success .dz-progress { + display: block; + opacity: 0; + filter: alpha(opacity=0); + -ms-filter: "progid:DXImageTransform.Microsoft.Alpha(Opacity=0)"; + -webkit-transition: opacity 0.4s ease-in-out; + transition: opacity 0.4s ease-in-out; } + .dropzone-previews .dz-preview.dz-processing .dz-progress { + display: block; } + .dropzone-previews .dz-preview.dz-image-preview:hover .dz-details img { + display: block; + opacity: 0.1; + filter: alpha(opacity=10); + -ms-filter: "progid:DXImageTransform.Microsoft.Alpha(Opacity=10)"; } + +.dropzone.dz-clickable { + cursor: pointer; + text-align: center; } + .dropzone.dz-clickable .dz-message { + cursor: pointer; } + .dropzone.dz-clickable .dz-message * { + cursor: default; } + .dropzone.dz-clickable .dz-message .dz-message { + cursor: pointer; } + .dropzone.dz-clickable * { + cursor: default; + border-radius: 5px; } + +.dropzone.dz-drag-hover { + border-color: rgba(0, 0, 0, 0.15); + background: rgba(0, 0, 0, 0.04); } + .dropzone.dz-drag-hover .dz-message { + opacity: 0.15; + filter: alpha(opacity=15); + -ms-filter: "progid:DXImageTransform.Microsoft.Alpha(Opacity=15)"; } + +.dropzone.dz-started .dz-message { + display: none; + opacity: 0; + filter: alpha(opacity=0); + -ms-filter: "progid:DXImageTransform.Microsoft.Alpha(Opacity=0)"; } + +.dropzone.dz-square .dz-default.dz-message { + background-position: 0 -123px; + width: 268px; + margin-left: -134px; + height: 174px; + margin-top: -87px; } + +/* + * The MIT License + * Copyright (c) 2012 Matias Meno + */ +.dropzone { + margin-right: auto; + margin-left: auto; + padding: 50px; + border: 2px dashed #24695c; + border-radius: 15px; + -o-border-image: none; + border-image: none; + background: rgba(36, 105, 92, 0.05); + -webkit-box-sizing: border-box; + box-sizing: border-box; + min-height: 150px; + position: relative; } + .dropzone * { + -webkit-box-sizing: border-box; + box-sizing: border-box; } + .dropzone i { + font-size: 50px; + color: #24695c; } + .dropzone .dz-message { + text-align: center; + margin: 25px 0; } + .dropzone .dz-preview { + position: relative; + display: inline-block; + margin: 0.5em; + padding: 0; + border: none; + background-color: #eeeeee; + width: 120px; + height: 120px; + -webkit-box-shadow: 0px 0px 3px #24695c; + box-shadow: 0px 0px 3px #24695c; } + .dropzone .dz-preview .dz-progress { + display: block; + height: 10px; + border: 1px solid #1b4c43; + left: 12px; + right: 12px; } + .dropzone .dz-preview .dz-progress .dz-upload { + display: block; + height: 100%; + width: 0; + background: #1b4c43; } + .dropzone .dz-preview .dz-error-message { + color: red; + display: none; + top: 131px; + left: -12px; + pointer-events: none; } + .dropzone .dz-preview .dz-error-message:after { + content: ''; + position: absolute; + top: -6px; + left: 64px; + width: 0; + height: 0; + border-left: 6px solid transparent; + border-right: 6px solid transparent; + border-bottom: 6px solid #be2626; } + .dropzone .dz-preview.dz-error .dz-error-message, .dropzone .dz-preview.dz-error .dz-error-mark { + display: block; } + .dropzone .dz-preview.dz-success .dz-success-mark { + display: block; } + .dropzone .dz-preview .dz-error-mark, .dropzone .dz-preview .dz-success-mark { + position: absolute; + display: none; + left: 30px; + top: 30px; + width: 54px; + height: 58px; + left: 50%; + margin-left: -27px; } diff --git a/public/admin/assets/css/feather-icon.css b/public/admin/assets/css/feather-icon.css new file mode 100644 index 0000000..640a3e4 --- /dev/null +++ b/public/admin/assets/css/feather-icon.css @@ -0,0 +1,147 @@ +button, hr, input { + overflow: visible; } + +audio, canvas, progress, video { + display: inline-block; } + +progress, sub, sup { + vertical-align: baseline; } + +html { + font-family: sans-serif; + line-height: 1.15; + -ms-text-size-adjust: 100%; + -webkit-text-size-adjust: 100%; } + +body { + margin: 0; } + +menu, article, aside, details, footer, header, nav, section { + display: block; } + +h1 { + font-size: 2em; + margin: .67em 0; } + +figcaption, figure, main { + display: block; } + +figure { + margin: 1em 40px; } + +hr { + -webkit-box-sizing: content-box; + box-sizing: content-box; + height: 0; } + +code, kbd, pre, samp { + font-family: monospace,monospace; + font-size: 1em; } + +a { + background-color: transparent; + -webkit-text-decoration-skip: objects; } + +a:active, a:hover { + outline-width: 0; } + +abbr[title] { + border-bottom: none; + text-decoration: underline; + -webkit-text-decoration: underline dotted; + text-decoration: underline dotted; } + +b, strong { + font-weight: bolder; } + +dfn { + font-style: italic; } + +mark { + background-color: #ff0; + color: #000; } + +small { + font-size: 80%; } + +sub, sup { + font-size: 75%; + line-height: 0; + position: relative; } + +sub { + bottom: -.25em; } + +sup { + top: -.5em; } + +audio:not([controls]) { + display: none; + height: 0; } + +img { + border-style: none; } + +svg:not(:root) { + overflow: hidden; } + +button, input, optgroup, select, textarea { + font-family: sans-serif; + font-size: 100%; + line-height: 1.15; + margin: 0; } + +button, select { + text-transform: none; } + +[type=submit], [type=reset], 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 { + border-style: none; + padding: 0; } + +[type=button]:-moz-focusring, [type=reset]:-moz-focusring, [type=submit]:-moz-focusring, button:-moz-focusring { + outline: ButtonText dotted 1px; } + +fieldset { + border: 1px solid silver; + margin: 0 2px; + padding: .35em .625em .75em; } + +legend { + -webkit-box-sizing: border-box; + box-sizing: border-box; + color: inherit; + display: table; + max-width: 100%; + padding: 0; + white-space: normal; } + +textarea { + overflow: auto; } + +[type=checkbox], [type=radio] { + -webkit-box-sizing: border-box; + box-sizing: border-box; + padding: 0; } + +[type=number]::-webkit-inner-spin-button, [type=number]::-webkit-outer-spin-button { + height: auto; } + +[type=search] { + -webkit-appearance: textfield; + outline-offset: -2px; } + +[type=search]::-webkit-search-cancel-button, [type=search]::-webkit-search-decoration { + -webkit-appearance: none; } + +::-webkit-file-upload-button { + -webkit-appearance: button; + font: inherit; } + +summary { + display: list-item; } + +[hidden], template { + display: none; } diff --git a/public/admin/assets/css/flag-icon.css b/public/admin/assets/css/flag-icon.css new file mode 100644 index 0000000..885204c --- /dev/null +++ b/public/admin/assets/css/flag-icon.css @@ -0,0 +1,1294 @@ +.flag-icon-background, .flag-icon { + background-size: contain; + background-position: 50%; + background-repeat: no-repeat; } + +.flag-icon { + position: relative; + display: inline-block; + width: 1.33333em; + line-height: 1em; } + .flag-icon:before { + content: '\00a0'; } + .flag-icon.flag-icon-squared { + width: 1em; } + +.flag-icon-es-ct { + background-image: url(../fonts/flag-icon/es-ct.svg); } + .flag-icon-es-ct.flag-icon-squared { + background-image: url(../fonts/flag-icon/es-ct.svg); } + +.flag-icon-eu { + background-image: url(../fonts/flag-icon/eu.svg); } + .flag-icon-eu.flag-icon-squared { + background-image: url(../fonts/flag-icon/eu.svg); } + +.flag-icon-gb-eng { + background-image: url(../fonts/flag-icon/gb-eng.svg); } + .flag-icon-gb-eng.flag-icon-squared { + background-image: url(../fonts/flag-icon/gb-eng.svg); } + +.flag-icon-gb-nir { + background-image: url(../fonts/flag-icon/gb-nir.svg); } + .flag-icon-gb-nir.flag-icon-squared { + background-image: url(../fonts/flag-icon/gb-nir.svg); } + +.flag-icon-gb-sct { + background-image: url(../fonts/flag-icon/gb-sct.svg); } + .flag-icon-gb-sct.flag-icon-squared { + background-image: url(../fonts/flag-icon/gb-sct.svg); } + +.flag-icon-gb-wls { + background-image: url(../fonts/flag-icon/gb-wls.svg); } + .flag-icon-gb-wls.flag-icon-squared { + background-image: url(../fonts/flag-icon/gb-wls.svg); } + +.flag-icon-un { + background-image: url(../fonts/flag-icon/un.svg); } + .flag-icon-un.flag-icon-squared { + background-image: url(../fonts/flag-icon/un.svg); } + +.flag-icon-ad { + background-image: url(../fonts/flag-icon/ad.svg); } + .flag-icon-ad.flag-icon-squared { + background-image: url(../fonts/flag-icon/ad.svg); } + +.flag-icon-ae { + background-image: url(../fonts/flag-icon/ae.svg); } + .flag-icon-ae.flag-icon-squared { + background-image: url(../fonts/flag-icon/ae.svg); } + +.flag-icon-af { + background-image: url(../fonts/flag-icon/af.svg); } + .flag-icon-af.flag-icon-squared { + background-image: url(../fonts/flag-icon/af.svg); } + +.flag-icon-ag { + background-image: url(../fonts/flag-icon/ag.svg); } + .flag-icon-ag.flag-icon-squared { + background-image: url(../fonts/flag-icon/ag.svg); } + +.flag-icon-ai { + background-image: url(../fonts/flag-icon/ai.svg); } + .flag-icon-ai.flag-icon-squared { + background-image: url(../fonts/flag-icon/ai.svg); } + +.flag-icon-al { + background-image: url(../fonts/flag-icon/al.svg); } + .flag-icon-al.flag-icon-squared { + background-image: url(../fonts/flag-icon/al.svg); } + +.flag-icon-am { + background-image: url(../fonts/flag-icon/am.svg); } + .flag-icon-am.flag-icon-squared { + background-image: url(../fonts/flag-icon/am.svg); } + +.flag-icon-ao { + background-image: url(../fonts/flag-icon/ao.svg); } + .flag-icon-ao.flag-icon-squared { + background-image: url(../fonts/flag-icon/ao.svg); } + +.flag-icon-aq { + background-image: url(../fonts/flag-icon/aq.svg); } + .flag-icon-aq.flag-icon-squared { + background-image: url(../fonts/flag-icon/aq.svg); } + +.flag-icon-ar { + background-image: url(../fonts/flag-icon/ar.svg); } + .flag-icon-ar.flag-icon-squared { + background-image: url(../fonts/flag-icon/ar.svg); } + +.flag-icon-as { + background-image: url(../fonts/flag-icon/as.svg); } + .flag-icon-as.flag-icon-squared { + background-image: url(../fonts/flag-icon/as.svg); } + +.flag-icon-at { + background-image: url(../fonts/flag-icon/at.svg); } + .flag-icon-at.flag-icon-squared { + background-image: url(../fonts/flag-icon/at.svg); } + +.flag-icon-au { + background-image: url(../fonts/flag-icon/au.svg); } + .flag-icon-au.flag-icon-squared { + background-image: url(../fonts/flag-icon/au.svg); } + +.flag-icon-aw { + background-image: url(../fonts/flag-icon/aw.svg); } + .flag-icon-aw.flag-icon-squared { + background-image: url(../fonts/flag-icon/aw.svg); } + +.flag-icon-ax { + background-image: url(../fonts/flag-icon/ax.svg); } + .flag-icon-ax.flag-icon-squared { + background-image: url(../fonts/flag-icon/ax.svg); } + +.flag-icon-az { + background-image: url(../fonts/flag-icon/az.svg); } + .flag-icon-az.flag-icon-squared { + background-image: url(../fonts/flag-icon/az.svg); } + +.flag-icon-ba { + background-image: url(../fonts/flag-icon/ba.svg); } + .flag-icon-ba.flag-icon-squared { + background-image: url(../fonts/flag-icon/ba.svg); } + +.flag-icon-bb { + background-image: url(../fonts/flag-icon/bb.svg); } + .flag-icon-bb.flag-icon-squared { + background-image: url(../fonts/flag-icon/bb.svg); } + +.flag-icon-bd { + background-image: url(../fonts/flag-icon/bd.svg); } + .flag-icon-bd.flag-icon-squared { + background-image: url(../fonts/flag-icon/bd.svg); } + +.flag-icon-be { + background-image: url(../fonts/flag-icon/be.svg); } + .flag-icon-be.flag-icon-squared { + background-image: url(../fonts/flag-icon/be.svg); } + +.flag-icon-bf { + background-image: url(../fonts/flag-icon/bf.svg); } + .flag-icon-bf.flag-icon-squared { + background-image: url(../fonts/flag-icon/bf.svg); } + +.flag-icon-bg { + background-image: url(../fonts/flag-icon/bg.svg); } + .flag-icon-bg.flag-icon-squared { + background-image: url(../fonts/flag-icon/bg.svg); } + +.flag-icon-bh { + background-image: url(../fonts/flag-icon/bh.svg); } + .flag-icon-bh.flag-icon-squared { + background-image: url(../fonts/flag-icon/bh.svg); } + +.flag-icon-bi { + background-image: url(../fonts/flag-icon/bi.svg); } + .flag-icon-bi.flag-icon-squared { + background-image: url(../fonts/flag-icon/bi.svg); } + +.flag-icon-bj { + background-image: url(../fonts/flag-icon/bj.svg); } + .flag-icon-bj.flag-icon-squared { + background-image: url(../fonts/flag-icon/bj.svg); } + +.flag-icon-bl { + background-image: url(../fonts/flag-icon/bl.svg); } + .flag-icon-bl.flag-icon-squared { + background-image: url(../fonts/flag-icon/bl.svg); } + +.flag-icon-bm { + background-image: url(../fonts/flag-icon/bm.svg); } + .flag-icon-bm.flag-icon-squared { + background-image: url(../fonts/flag-icon/bm.svg); } + +.flag-icon-bn { + background-image: url(../fonts/flag-icon/bn.svg); } + .flag-icon-bn.flag-icon-squared { + background-image: url(../fonts/flag-icon/bn.svg); } + +.flag-icon-bo { + background-image: url(../fonts/flag-icon/bo.svg); } + .flag-icon-bo.flag-icon-squared { + background-image: url(../fonts/flag-icon/bo.svg); } + +.flag-icon-bq { + background-image: url(../fonts/flag-icon/bq.svg); } + .flag-icon-bq.flag-icon-squared { + background-image: url(../fonts/flag-icon/bq.svg); } + +.flag-icon-br { + background-image: url(../fonts/flag-icon/br.svg); } + .flag-icon-br.flag-icon-squared { + background-image: url(../fonts/flag-icon/br.svg); } + +.flag-icon-bs { + background-image: url(../fonts/flag-icon/bs.svg); } + .flag-icon-bs.flag-icon-squared { + background-image: url(../fonts/flag-icon/bs.svg); } + +.flag-icon-bt { + background-image: url(../fonts/flag-icon/bt.svg); } + .flag-icon-bt.flag-icon-squared { + background-image: url(../fonts/flag-icon/bt.svg); } + +.flag-icon-bv { + background-image: url(../fonts/flag-icon/bv.svg); } + .flag-icon-bv.flag-icon-squared { + background-image: url(../fonts/flag-icon/bv.svg); } + +.flag-icon-bw { + background-image: url(../fonts/flag-icon/bw.svg); } + .flag-icon-bw.flag-icon-squared { + background-image: url(../fonts/flag-icon/bw.svg); } + +.flag-icon-by { + background-image: url(../fonts/flag-icon/by.svg); } + .flag-icon-by.flag-icon-squared { + background-image: url(../fonts/flag-icon/by.svg); } + +.flag-icon-bz { + background-image: url(../fonts/flag-icon/bz.svg); } + .flag-icon-bz.flag-icon-squared { + background-image: url(../fonts/flag-icon/bz.svg); } + +.flag-icon-ca { + background-image: url(../fonts/flag-icon/ca.svg); } + .flag-icon-ca.flag-icon-squared { + background-image: url(../fonts/flag-icon/ca.svg); } + +.flag-icon-cc { + background-image: url(../fonts/flag-icon/cc.svg); } + .flag-icon-cc.flag-icon-squared { + background-image: url(../fonts/flag-icon/cc.svg); } + +.flag-icon-cd { + background-image: url(../fonts/flag-icon/cd.svg); } + .flag-icon-cd.flag-icon-squared { + background-image: url(../fonts/flag-icon/cd.svg); } + +.flag-icon-cf { + background-image: url(../fonts/flag-icon/cf.svg); } + .flag-icon-cf.flag-icon-squared { + background-image: url(../fonts/flag-icon/cf.svg); } + +.flag-icon-cg { + background-image: url(../fonts/flag-icon/cg.svg); } + .flag-icon-cg.flag-icon-squared { + background-image: url(../fonts/flag-icon/cg.svg); } + +.flag-icon-ch { + background-image: url(../fonts/flag-icon/ch.svg); } + .flag-icon-ch.flag-icon-squared { + background-image: url(../fonts/flag-icon/ch.svg); } + +.flag-icon-ci { + background-image: url(../fonts/flag-icon/ci.svg); } + .flag-icon-ci.flag-icon-squared { + background-image: url(../fonts/flag-icon/ci.svg); } + +.flag-icon-ck { + background-image: url(../fonts/flag-icon/ck.svg); } + .flag-icon-ck.flag-icon-squared { + background-image: url(../fonts/flag-icon/ck.svg); } + +.flag-icon-cl { + background-image: url(../fonts/flag-icon/cl.svg); } + .flag-icon-cl.flag-icon-squared { + background-image: url(../fonts/flag-icon/cl.svg); } + +.flag-icon-cm { + background-image: url(../fonts/flag-icon/cm.svg); } + .flag-icon-cm.flag-icon-squared { + background-image: url(../fonts/flag-icon/cm.svg); } + +.flag-icon-cn { + background-image: url(../fonts/flag-icon/cn.svg); } + .flag-icon-cn.flag-icon-squared { + background-image: url(../fonts/flag-icon/cn.svg); } + +.flag-icon-co { + background-image: url(../fonts/flag-icon/co.svg); } + .flag-icon-co.flag-icon-squared { + background-image: url(../fonts/flag-icon/co.svg); } + +.flag-icon-cr { + background-image: url(../fonts/flag-icon/cr.svg); } + .flag-icon-cr.flag-icon-squared { + background-image: url(../fonts/flag-icon/cr.svg); } + +.flag-icon-cu { + background-image: url(../fonts/flag-icon/cu.svg); } + .flag-icon-cu.flag-icon-squared { + background-image: url(../fonts/flag-icon/cu.svg); } + +.flag-icon-cv { + background-image: url(../fonts/flag-icon/cv.svg); } + .flag-icon-cv.flag-icon-squared { + background-image: url(../fonts/flag-icon/cv.svg); } + +.flag-icon-cw { + background-image: url(../fonts/flag-icon/cw.svg); } + .flag-icon-cw.flag-icon-squared { + background-image: url(../fonts/flag-icon/cw.svg); } + +.flag-icon-cx { + background-image: url(../fonts/flag-icon/cx.svg); } + .flag-icon-cx.flag-icon-squared { + background-image: url(../fonts/flag-icon/cx.svg); } + +.flag-icon-cy { + background-image: url(../fonts/flag-icon/cy.svg); } + .flag-icon-cy.flag-icon-squared { + background-image: url(../fonts/flag-icon/cy.svg); } + +.flag-icon-cz { + background-image: url(../fonts/flag-icon/cz.svg); } + .flag-icon-cz.flag-icon-squared { + background-image: url(../fonts/flag-icon/cz.svg); } + +.flag-icon-de { + background-image: url(../fonts/flag-icon/de.svg); } + .flag-icon-de.flag-icon-squared { + background-image: url(../fonts/flag-icon/de.svg); } + +.flag-icon-dj { + background-image: url(../fonts/flag-icon/dj.svg); } + .flag-icon-dj.flag-icon-squared { + background-image: url(../fonts/flag-icon/dj.svg); } + +.flag-icon-dk { + background-image: url(../fonts/flag-icon/dk.svg); } + .flag-icon-dk.flag-icon-squared { + background-image: url(../fonts/flag-icon/dk.svg); } + +.flag-icon-dm { + background-image: url(../fonts/flag-icon/dm.svg); } + .flag-icon-dm.flag-icon-squared { + background-image: url(../fonts/flag-icon/dm.svg); } + +.flag-icon-do { + background-image: url(../fonts/flag-icon/do.svg); } + .flag-icon-do.flag-icon-squared { + background-image: url(../fonts/flag-icon/do.svg); } + +.flag-icon-dz { + background-image: url(../fonts/flag-icon/dz.svg); } + .flag-icon-dz.flag-icon-squared { + background-image: url(../fonts/flag-icon/dz.svg); } + +.flag-icon-ec { + background-image: url(../fonts/flag-icon/ec.svg); } + .flag-icon-ec.flag-icon-squared { + background-image: url(../fonts/flag-icon/ec.svg); } + +.flag-icon-ee { + background-image: url(../fonts/flag-icon/ee.svg); } + .flag-icon-ee.flag-icon-squared { + background-image: url(../fonts/flag-icon/ee.svg); } + +.flag-icon-eg { + background-image: url(../fonts/flag-icon/eg.svg); } + .flag-icon-eg.flag-icon-squared { + background-image: url(../fonts/flag-icon/eg.svg); } + +.flag-icon-eh { + background-image: url(../fonts/flag-icon/eh.svg); } + .flag-icon-eh.flag-icon-squared { + background-image: url(../fonts/flag-icon/eh.svg); } + +.flag-icon-er { + background-image: url(../fonts/flag-icon/er.svg); } + .flag-icon-er.flag-icon-squared { + background-image: url(../fonts/flag-icon/er.svg); } + +.flag-icon-es { + background-image: url(../fonts/flag-icon/es.svg); } + .flag-icon-es.flag-icon-squared { + background-image: url(../fonts/flag-icon/es.svg); } + +.flag-icon-et { + background-image: url(../fonts/flag-icon/et.svg); } + .flag-icon-et.flag-icon-squared { + background-image: url(../fonts/flag-icon/et.svg); } + +.flag-icon-fi { + background-image: url(../fonts/flag-icon/fi.svg); } + .flag-icon-fi.flag-icon-squared { + background-image: url(../fonts/flag-icon/fi.svg); } + +.flag-icon-fj { + background-image: url(../fonts/flag-icon/fj.svg); } + .flag-icon-fj.flag-icon-squared { + background-image: url(../fonts/flag-icon/fj.svg); } + +.flag-icon-fk { + background-image: url(../fonts/flag-icon/fk.svg); } + .flag-icon-fk.flag-icon-squared { + background-image: url(../fonts/flag-icon/fk.svg); } + +.flag-icon-fm { + background-image: url(../fonts/flag-icon/fm.svg); } + .flag-icon-fm.flag-icon-squared { + background-image: url(../fonts/flag-icon/fm.svg); } + +.flag-icon-fo { + background-image: url(../fonts/flag-icon/fo.svg); } + .flag-icon-fo.flag-icon-squared { + background-image: url(../fonts/flag-icon/fo.svg); } + +.flag-icon-fr { + background-image: url(../fonts/flag-icon/fr.svg); } + .flag-icon-fr.flag-icon-squared { + background-image: url(../fonts/flag-icon/fr.svg); } + +.flag-icon-ga { + background-image: url(../fonts/flag-icon/ga.svg); } + .flag-icon-ga.flag-icon-squared { + background-image: url(../fonts/flag-icon/ga.svg); } + +.flag-icon-gb { + background-image: url(../fonts/flag-icon/gb.svg); } + .flag-icon-gb.flag-icon-squared { + background-image: url(../fonts/flag-icon/gb.svg); } + +.flag-icon-gd { + background-image: url(../fonts/flag-icon/gd.svg); } + .flag-icon-gd.flag-icon-squared { + background-image: url(../fonts/flag-icon/gd.svg); } + +.flag-icon-ge { + background-image: url(../fonts/flag-icon/ge.svg); } + .flag-icon-ge.flag-icon-squared { + background-image: url(../fonts/flag-icon/ge.svg); } + +.flag-icon-gf { + background-image: url(../fonts/flag-icon/gf.svg); } + .flag-icon-gf.flag-icon-squared { + background-image: url(../fonts/flag-icon/gf.svg); } + +.flag-icon-gg { + background-image: url(../fonts/flag-icon/gg.svg); } + .flag-icon-gg.flag-icon-squared { + background-image: url(../fonts/flag-icon/gg.svg); } + +.flag-icon-gh { + background-image: url(../fonts/flag-icon/gh.svg); } + .flag-icon-gh.flag-icon-squared { + background-image: url(../fonts/flag-icon/gh.svg); } + +.flag-icon-gi { + background-image: url(../fonts/flag-icon/gi.svg); } + .flag-icon-gi.flag-icon-squared { + background-image: url(../fonts/flag-icon/gi.svg); } + +.flag-icon-gl { + background-image: url(../fonts/flag-icon/gl.svg); } + .flag-icon-gl.flag-icon-squared { + background-image: url(../fonts/flag-icon/gl.svg); } + +.flag-icon-gm { + background-image: url(../fonts/flag-icon/gm.svg); } + .flag-icon-gm.flag-icon-squared { + background-image: url(../fonts/flag-icon/gm.svg); } + +.flag-icon-gn { + background-image: url(../fonts/flag-icon/gn.svg); } + .flag-icon-gn.flag-icon-squared { + background-image: url(../fonts/flag-icon/gn.svg); } + +.flag-icon-gp { + background-image: url(../fonts/flag-icon/gp.svg); } + .flag-icon-gp.flag-icon-squared { + background-image: url(../fonts/flag-icon/gp.svg); } + +.flag-icon-gq { + background-image: url(../fonts/flag-icon/gq.svg); } + .flag-icon-gq.flag-icon-squared { + background-image: url(../fonts/flag-icon/gq.svg); } + +.flag-icon-gr { + background-image: url(../fonts/flag-icon/gr.svg); } + .flag-icon-gr.flag-icon-squared { + background-image: url(../fonts/flag-icon/gr.svg); } + +.flag-icon-gs { + background-image: url(../fonts/flag-icon/gs.svg); } + .flag-icon-gs.flag-icon-squared { + background-image: url(../fonts/flag-icon/gs.svg); } + +.flag-icon-gt { + background-image: url(../fonts/flag-icon/gt.svg); } + .flag-icon-gt.flag-icon-squared { + background-image: url(../fonts/flag-icon/gt.svg); } + +.flag-icon-gu { + background-image: url(../fonts/flag-icon/gu.svg); } + .flag-icon-gu.flag-icon-squared { + background-image: url(../fonts/flag-icon/gu.svg); } + +.flag-icon-gw { + background-image: url(../fonts/flag-icon/gw.svg); } + .flag-icon-gw.flag-icon-squared { + background-image: url(../fonts/flag-icon/gw.svg); } + +.flag-icon-gy { + background-image: url(../fonts/flag-icon/gy.svg); } + .flag-icon-gy.flag-icon-squared { + background-image: url(../fonts/flag-icon/gy.svg); } + +.flag-icon-hk { + background-image: url(../fonts/flag-icon/hk.svg); } + .flag-icon-hk.flag-icon-squared { + background-image: url(../fonts/flag-icon/hk.svg); } + +.flag-icon-hm { + background-image: url(../fonts/flag-icon/hm.svg); } + .flag-icon-hm.flag-icon-squared { + background-image: url(../fonts/flag-icon/hm.svg); } + +.flag-icon-hn { + background-image: url(../fonts/flag-icon/hn.svg); } + .flag-icon-hn.flag-icon-squared { + background-image: url(../fonts/flag-icon/hn.svg); } + +.flag-icon-hr { + background-image: url(../fonts/flag-icon/hr.svg); } + .flag-icon-hr.flag-icon-squared { + background-image: url(../fonts/flag-icon/hr.svg); } + +.flag-icon-ht { + background-image: url(../fonts/flag-icon/ht.svg); } + .flag-icon-ht.flag-icon-squared { + background-image: url(../fonts/flag-icon/ht.svg); } + +.flag-icon-hu { + background-image: url(../fonts/flag-icon/hu.svg); } + .flag-icon-hu.flag-icon-squared { + background-image: url(../fonts/flag-icon/hu.svg); } + +.flag-icon-id { + background-image: url(../fonts/flag-icon/id.svg); } + .flag-icon-id.flag-icon-squared { + background-image: url(../fonts/flag-icon/id.svg); } + +.flag-icon-ie { + background-image: url(../fonts/flag-icon/ie.svg); } + .flag-icon-ie.flag-icon-squared { + background-image: url(../fonts/flag-icon/ie.svg); } + +.flag-icon-il { + background-image: url(../fonts/flag-icon/il.svg); } + .flag-icon-il.flag-icon-squared { + background-image: url(../fonts/flag-icon/il.svg); } + +.flag-icon-im { + background-image: url(../fonts/flag-icon/im.svg); } + .flag-icon-im.flag-icon-squared { + background-image: url(../fonts/flag-icon/im.svg); } + +.flag-icon-in { + background-image: url(../fonts/flag-icon/in.svg); } + .flag-icon-in.flag-icon-squared { + background-image: url(../fonts/flag-icon/in.svg); } + +.flag-icon-io { + background-image: url(../fonts/flag-icon/io.svg); } + .flag-icon-io.flag-icon-squared { + background-image: url(../fonts/flag-icon/io.svg); } + +.flag-icon-iq { + background-image: url(../fonts/flag-icon/iq.svg); } + .flag-icon-iq.flag-icon-squared { + background-image: url(../fonts/flag-icon/iq.svg); } + +.flag-icon-ir { + background-image: url(../fonts/flag-icon/ir.svg); } + .flag-icon-ir.flag-icon-squared { + background-image: url(../fonts/flag-icon/ir.svg); } + +.flag-icon-is { + background-image: url(../fonts/flag-icon/is.svg); } + .flag-icon-is.flag-icon-squared { + background-image: url(../fonts/flag-icon/is.svg); } + +.flag-icon-it { + background-image: url(../fonts/flag-icon/it.svg); } + .flag-icon-it.flag-icon-squared { + background-image: url(../fonts/flag-icon/it.svg); } + +.flag-icon-je { + background-image: url(../fonts/flag-icon/je.svg); } + .flag-icon-je.flag-icon-squared { + background-image: url(../fonts/flag-icon/je.svg); } + +.flag-icon-jm { + background-image: url(../fonts/flag-icon/jm.svg); } + .flag-icon-jm.flag-icon-squared { + background-image: url(../fonts/flag-icon/jm.svg); } + +.flag-icon-jo { + background-image: url(../fonts/flag-icon/jo.svg); } + .flag-icon-jo.flag-icon-squared { + background-image: url(../fonts/flag-icon/jo.svg); } + +.flag-icon-jp { + background-image: url(../fonts/flag-icon/jp.svg); } + .flag-icon-jp.flag-icon-squared { + background-image: url(../fonts/flag-icon/jp.svg); } + +.flag-icon-ke { + background-image: url(../fonts/flag-icon/ke.svg); } + .flag-icon-ke.flag-icon-squared { + background-image: url(../fonts/flag-icon/ke.svg); } + +.flag-icon-kg { + background-image: url(../fonts/flag-icon/kg.svg); } + .flag-icon-kg.flag-icon-squared { + background-image: url(../fonts/flag-icon/kg.svg); } + +.flag-icon-kh { + background-image: url(../fonts/flag-icon/kh.svg); } + .flag-icon-kh.flag-icon-squared { + background-image: url(../fonts/flag-icon/kh.svg); } + +.flag-icon-ki { + background-image: url(../fonts/flag-icon/ki.svg); } + .flag-icon-ki.flag-icon-squared { + background-image: url(../fonts/flag-icon/ki.svg); } + +.flag-icon-km { + background-image: url(../fonts/flag-icon/km.svg); } + .flag-icon-km.flag-icon-squared { + background-image: url(../fonts/flag-icon/km.svg); } + +.flag-icon-kn { + background-image: url(../fonts/flag-icon/kn.svg); } + .flag-icon-kn.flag-icon-squared { + background-image: url(../fonts/flag-icon/kn.svg); } + +.flag-icon-kp { + background-image: url(../fonts/flag-icon/kp.svg); } + .flag-icon-kp.flag-icon-squared { + background-image: url(../fonts/flag-icon/kp.svg); } + +.flag-icon-kr { + background-image: url(../fonts/flag-icon/kr.svg); } + .flag-icon-kr.flag-icon-squared { + background-image: url(../fonts/flag-icon/kr.svg); } + +.flag-icon-kw { + background-image: url(../fonts/flag-icon/kw.svg); } + .flag-icon-kw.flag-icon-squared { + background-image: url(../fonts/flag-icon/kw.svg); } + +.flag-icon-ky { + background-image: url(../fonts/flag-icon/ky.svg); } + .flag-icon-ky.flag-icon-squared { + background-image: url(../fonts/flag-icon/ky.svg); } + +.flag-icon-kz { + background-image: url(../fonts/flag-icon/kz.svg); } + .flag-icon-kz.flag-icon-squared { + background-image: url(../fonts/flag-icon/kz.svg); } + +.flag-icon-la { + background-image: url(../fonts/flag-icon/la.svg); } + .flag-icon-la.flag-icon-squared { + background-image: url(../fonts/flag-icon/la.svg); } + +.flag-icon-lb { + background-image: url(../fonts/flag-icon/lb.svg); } + .flag-icon-lb.flag-icon-squared { + background-image: url(../fonts/flag-icon/lb.svg); } + +.flag-icon-lc { + background-image: url(../fonts/flag-icon/lc.svg); } + .flag-icon-lc.flag-icon-squared { + background-image: url(../fonts/flag-icon/lc.svg); } + +.flag-icon-li { + background-image: url(../fonts/flag-icon/li.svg); } + .flag-icon-li.flag-icon-squared { + background-image: url(../fonts/flag-icon/li.svg); } + +.flag-icon-lk { + background-image: url(../fonts/flag-icon/lk.svg); } + .flag-icon-lk.flag-icon-squared { + background-image: url(../fonts/flag-icon/lk.svg); } + +.flag-icon-lr { + background-image: url(../fonts/flag-icon/lr.svg); } + .flag-icon-lr.flag-icon-squared { + background-image: url(../fonts/flag-icon/lr.svg); } + +.flag-icon-ls { + background-image: url(../fonts/flag-icon/ls.svg); } + .flag-icon-ls.flag-icon-squared { + background-image: url(../fonts/flag-icon/ls.svg); } + +.flag-icon-lt { + background-image: url(../fonts/flag-icon/lt.svg); } + .flag-icon-lt.flag-icon-squared { + background-image: url(../fonts/flag-icon/lt.svg); } + +.flag-icon-lu { + background-image: url(../fonts/flag-icon/lu.svg); } + .flag-icon-lu.flag-icon-squared { + background-image: url(../fonts/flag-icon/lu.svg); } + +.flag-icon-lv { + background-image: url(../fonts/flag-icon/lv.svg); } + .flag-icon-lv.flag-icon-squared { + background-image: url(../fonts/flag-icon/lv.svg); } + +.flag-icon-ly { + background-image: url(../fonts/flag-icon/ly.svg); } + .flag-icon-ly.flag-icon-squared { + background-image: url(../fonts/flag-icon/ly.svg); } + +.flag-icon-ma { + background-image: url(../fonts/flag-icon/ma.svg); } + .flag-icon-ma.flag-icon-squared { + background-image: url(../fonts/flag-icon/ma.svg); } + +.flag-icon-mc { + background-image: url(../fonts/flag-icon/mc.svg); } + .flag-icon-mc.flag-icon-squared { + background-image: url(../fonts/flag-icon/mc.svg); } + +.flag-icon-md { + background-image: url(../fonts/flag-icon/md.svg); } + .flag-icon-md.flag-icon-squared { + background-image: url(../fonts/flag-icon/md.svg); } + +.flag-icon-me { + background-image: url(../fonts/flag-icon/me.svg); } + .flag-icon-me.flag-icon-squared { + background-image: url(../fonts/flag-icon/me.svg); } + +.flag-icon-mf { + background-image: url(../fonts/flag-icon/mf.svg); } + .flag-icon-mf.flag-icon-squared { + background-image: url(../fonts/flag-icon/mf.svg); } + +.flag-icon-mg { + background-image: url(../fonts/flag-icon/mg.svg); } + .flag-icon-mg.flag-icon-squared { + background-image: url(../fonts/flag-icon/mg.svg); } + +.flag-icon-mh { + background-image: url(../fonts/flag-icon/mh.svg); } + .flag-icon-mh.flag-icon-squared { + background-image: url(../fonts/flag-icon/mh.svg); } + +.flag-icon-mk { + background-image: url(../fonts/flag-icon/mk.svg); } + .flag-icon-mk.flag-icon-squared { + background-image: url(../fonts/flag-icon/mk.svg); } + +.flag-icon-ml { + background-image: url(../fonts/flag-icon/ml.svg); } + .flag-icon-ml.flag-icon-squared { + background-image: url(../fonts/flag-icon/ml.svg); } + +.flag-icon-mm { + background-image: url(../fonts/flag-icon/mm.svg); } + .flag-icon-mm.flag-icon-squared { + background-image: url(../fonts/flag-icon/mm.svg); } + +.flag-icon-mn { + background-image: url(../fonts/flag-icon/mn.svg); } + .flag-icon-mn.flag-icon-squared { + background-image: url(../fonts/flag-icon/mn.svg); } + +.flag-icon-mo { + background-image: url(../fonts/flag-icon/mo.svg); } + .flag-icon-mo.flag-icon-squared { + background-image: url(../fonts/flag-icon/mo.svg); } + +.flag-icon-mp { + background-image: url(../fonts/flag-icon/mp.svg); } + .flag-icon-mp.flag-icon-squared { + background-image: url(../fonts/flag-icon/mp.svg); } + +.flag-icon-mq { + background-image: url(../fonts/flag-icon/mq.svg); } + .flag-icon-mq.flag-icon-squared { + background-image: url(../fonts/flag-icon/mq.svg); } + +.flag-icon-mr { + background-image: url(../fonts/flag-icon/mr.svg); } + .flag-icon-mr.flag-icon-squared { + background-image: url(../fonts/flag-icon/mr.svg); } + +.flag-icon-ms { + background-image: url(../fonts/flag-icon/ms.svg); } + .flag-icon-ms.flag-icon-squared { + background-image: url(../fonts/flag-icon/ms.svg); } + +.flag-icon-mt { + background-image: url(../fonts/flag-icon/mt.svg); } + .flag-icon-mt.flag-icon-squared { + background-image: url(../fonts/flag-icon/mt.svg); } + +.flag-icon-mu { + background-image: url(../fonts/flag-icon/mu.svg); } + .flag-icon-mu.flag-icon-squared { + background-image: url(../fonts/flag-icon/mu.svg); } + +.flag-icon-mv { + background-image: url(../fonts/flag-icon/mv.svg); } + .flag-icon-mv.flag-icon-squared { + background-image: url(../fonts/flag-icon/mv.svg); } + +.flag-icon-mw { + background-image: url(../fonts/flag-icon/mw.svg); } + .flag-icon-mw.flag-icon-squared { + background-image: url(../fonts/flag-icon/mw.svg); } + +.flag-icon-mx { + background-image: url(../fonts/flag-icon/mx.svg); } + .flag-icon-mx.flag-icon-squared { + background-image: url(../fonts/flag-icon/mx.svg); } + +.flag-icon-my { + background-image: url(../fonts/flag-icon/my.svg); } + .flag-icon-my.flag-icon-squared { + background-image: url(../fonts/flag-icon/my.svg); } + +.flag-icon-mz { + background-image: url(../fonts/flag-icon/mz.svg); } + .flag-icon-mz.flag-icon-squared { + background-image: url(../fonts/flag-icon/mz.svg); } + +.flag-icon-na { + background-image: url(../fonts/flag-icon/na.svg); } + .flag-icon-na.flag-icon-squared { + background-image: url(../fonts/flag-icon/na.svg); } + +.flag-icon-nc { + background-image: url(../fonts/flag-icon/nc.svg); } + .flag-icon-nc.flag-icon-squared { + background-image: url(../fonts/flag-icon/nc.svg); } + +.flag-icon-ne { + background-image: url(../fonts/flag-icon/ne.svg); } + .flag-icon-ne.flag-icon-squared { + background-image: url(../fonts/flag-icon/ne.svg); } + +.flag-icon-nf { + background-image: url(../fonts/flag-icon/nf.svg); } + .flag-icon-nf.flag-icon-squared { + background-image: url(../fonts/flag-icon/nf.svg); } + +.flag-icon-ng { + background-image: url(../fonts/flag-icon/ng.svg); } + .flag-icon-ng.flag-icon-squared { + background-image: url(../fonts/flag-icon/ng.svg); } + +.flag-icon-ni { + background-image: url(../fonts/flag-icon/ni.svg); } + .flag-icon-ni.flag-icon-squared { + background-image: url(../fonts/flag-icon/ni.svg); } + +.flag-icon-nl { + background-image: url(../fonts/flag-icon/nl.svg); } + .flag-icon-nl.flag-icon-squared { + background-image: url(../fonts/flag-icon/nl.svg); } + +.flag-icon-no { + background-image: url(../fonts/flag-icon/no.svg); } + .flag-icon-no.flag-icon-squared { + background-image: url(../fonts/flag-icon/no.svg); } + +.flag-icon-np { + background-image: url(../fonts/flag-icon/np.svg); } + .flag-icon-np.flag-icon-squared { + background-image: url(../fonts/flag-icon/np.svg); } + +.flag-icon-nr { + background-image: url(../fonts/flag-icon/nr.svg); } + .flag-icon-nr.flag-icon-squared { + background-image: url(../fonts/flag-icon/nr.svg); } + +.flag-icon-nu { + background-image: url(../fonts/flag-icon/nu.svg); } + .flag-icon-nu.flag-icon-squared { + background-image: url(../fonts/flag-icon/nu.svg); } + +.flag-icon-nz { + background-image: url(../fonts/flag-icon/nz.svg); } + .flag-icon-nz.flag-icon-squared { + background-image: url(../fonts/flag-icon/nz.svg); } + +.flag-icon-om { + background-image: url(../fonts/flag-icon/om.svg); } + .flag-icon-om.flag-icon-squared { + background-image: url(../fonts/flag-icon/om.svg); } + +.flag-icon-pa { + background-image: url(../fonts/flag-icon/pa.svg); } + .flag-icon-pa.flag-icon-squared { + background-image: url(../fonts/flag-icon/pa.svg); } + +.flag-icon-pe { + background-image: url(../fonts/flag-icon/pe.svg); } + .flag-icon-pe.flag-icon-squared { + background-image: url(../fonts/flag-icon/pe.svg); } + +.flag-icon-pf { + background-image: url(../fonts/flag-icon/pf.svg); } + .flag-icon-pf.flag-icon-squared { + background-image: url(../fonts/flag-icon/pf.svg); } + +.flag-icon-pg { + background-image: url(../fonts/flag-icon/pg.svg); } + .flag-icon-pg.flag-icon-squared { + background-image: url(../fonts/flag-icon/pg.svg); } + +.flag-icon-ph { + background-image: url(../fonts/flag-icon/ph.svg); } + .flag-icon-ph.flag-icon-squared { + background-image: url(../fonts/flag-icon/ph.svg); } + +.flag-icon-pk { + background-image: url(../fonts/flag-icon/pk.svg); } + .flag-icon-pk.flag-icon-squared { + background-image: url(../fonts/flag-icon/pk.svg); } + +.flag-icon-pl { + background-image: url(../fonts/flag-icon/pl.svg); } + .flag-icon-pl.flag-icon-squared { + background-image: url(../fonts/flag-icon/pl.svg); } + +.flag-icon-pm { + background-image: url(../fonts/flag-icon/pm.svg); } + .flag-icon-pm.flag-icon-squared { + background-image: url(../fonts/flag-icon/pm.svg); } + +.flag-icon-pn { + background-image: url(../fonts/flag-icon/pn.svg); } + .flag-icon-pn.flag-icon-squared { + background-image: url(../fonts/flag-icon/pn.svg); } + +.flag-icon-pr { + background-image: url(../fonts/flag-icon/pr.svg); } + .flag-icon-pr.flag-icon-squared { + background-image: url(../fonts/flag-icon/pr.svg); } + +.flag-icon-ps { + background-image: url(../fonts/flag-icon/ps.svg); } + .flag-icon-ps.flag-icon-squared { + background-image: url(../fonts/flag-icon/ps.svg); } + +.flag-icon-pt { + background-image: url(../fonts/flag-icon/pt.svg); } + .flag-icon-pt.flag-icon-squared { + background-image: url(../fonts/flag-icon/pt.svg); } + +.flag-icon-pw { + background-image: url(../fonts/flag-icon/pw.svg); } + .flag-icon-pw.flag-icon-squared { + background-image: url(../fonts/flag-icon/pw.svg); } + +.flag-icon-py { + background-image: url(../fonts/flag-icon/py.svg); } + .flag-icon-py.flag-icon-squared { + background-image: url(../fonts/flag-icon/py.svg); } + +.flag-icon-qa { + background-image: url(../fonts/flag-icon/qa.svg); } + .flag-icon-qa.flag-icon-squared { + background-image: url(../fonts/flag-icon/qa.svg); } + +.flag-icon-re { + background-image: url(../fonts/flag-icon/re.svg); } + .flag-icon-re.flag-icon-squared { + background-image: url(../fonts/flag-icon/re.svg); } + +.flag-icon-ro { + background-image: url(../fonts/flag-icon/ro.svg); } + .flag-icon-ro.flag-icon-squared { + background-image: url(../fonts/flag-icon/ro.svg); } + +.flag-icon-rs { + background-image: url(../fonts/flag-icon/rs.svg); } + .flag-icon-rs.flag-icon-squared { + background-image: url(../fonts/flag-icon/rs.svg); } + +.flag-icon-ru { + background-image: url(../fonts/flag-icon/ru.svg); } + .flag-icon-ru.flag-icon-squared { + background-image: url(../fonts/flag-icon/ru.svg); } + +.flag-icon-rw { + background-image: url(../fonts/flag-icon/rw.svg); } + .flag-icon-rw.flag-icon-squared { + background-image: url(../fonts/flag-icon/rw.svg); } + +.flag-icon-sa { + background-image: url(../fonts/flag-icon/sa.svg); } + .flag-icon-sa.flag-icon-squared { + background-image: url(../fonts/flag-icon/sa.svg); } + +.flag-icon-sb { + background-image: url(../fonts/flag-icon/sb.svg); } + .flag-icon-sb.flag-icon-squared { + background-image: url(../fonts/flag-icon/sb.svg); } + +.flag-icon-sc { + background-image: url(../fonts/flag-icon/sc.svg); } + .flag-icon-sc.flag-icon-squared { + background-image: url(../fonts/flag-icon/sc.svg); } + +.flag-icon-sd { + background-image: url(../fonts/flag-icon/sd.svg); } + .flag-icon-sd.flag-icon-squared { + background-image: url(../fonts/flag-icon/sd.svg); } + +.flag-icon-se { + background-image: url(../fonts/flag-icon/se.svg); } + .flag-icon-se.flag-icon-squared { + background-image: url(../fonts/flag-icon/se.svg); } + +.flag-icon-sg { + background-image: url(../fonts/flag-icon/sg.svg); } + .flag-icon-sg.flag-icon-squared { + background-image: url(../fonts/flag-icon/sg.svg); } + +.flag-icon-sh { + background-image: url(../fonts/flag-icon/sh.svg); } + .flag-icon-sh.flag-icon-squared { + background-image: url(../fonts/flag-icon/sh.svg); } + +.flag-icon-si { + background-image: url(../fonts/flag-icon/si.svg); } + .flag-icon-si.flag-icon-squared { + background-image: url(../fonts/flag-icon/si.svg); } + +.flag-icon-sj { + background-image: url(../fonts/flag-icon/sj.svg); } + .flag-icon-sj.flag-icon-squared { + background-image: url(../fonts/flag-icon/sj.svg); } + +.flag-icon-sk { + background-image: url(../fonts/flag-icon/sk.svg); } + .flag-icon-sk.flag-icon-squared { + background-image: url(../fonts/flag-icon/sk.svg); } + +.flag-icon-sl { + background-image: url(../fonts/flag-icon/sl.svg); } + .flag-icon-sl.flag-icon-squared { + background-image: url(../fonts/flag-icon/sl.svg); } + +.flag-icon-sm { + background-image: url(../fonts/flag-icon/sm.svg); } + .flag-icon-sm.flag-icon-squared { + background-image: url(../fonts/flag-icon/sm.svg); } + +.flag-icon-sn { + background-image: url(../fonts/flag-icon/sn.svg); } + .flag-icon-sn.flag-icon-squared { + background-image: url(../fonts/flag-icon/sn.svg); } + +.flag-icon-so { + background-image: url(../fonts/flag-icon/so.svg); } + .flag-icon-so.flag-icon-squared { + background-image: url(../fonts/flag-icon/so.svg); } + +.flag-icon-sr { + background-image: url(../fonts/flag-icon/sr.svg); } + .flag-icon-sr.flag-icon-squared { + background-image: url(../fonts/flag-icon/sr.svg); } + +.flag-icon-ss { + background-image: url(../fonts/flag-icon/ss.svg); } + .flag-icon-ss.flag-icon-squared { + background-image: url(../fonts/flag-icon/ss.svg); } + +.flag-icon-st { + background-image: url(../fonts/flag-icon/st.svg); } + .flag-icon-st.flag-icon-squared { + background-image: url(../fonts/flag-icon/st.svg); } + +.flag-icon-sv { + background-image: url(../fonts/flag-icon/sv.svg); } + .flag-icon-sv.flag-icon-squared { + background-image: url(../fonts/flag-icon/sv.svg); } + +.flag-icon-sx { + background-image: url(../fonts/flag-icon/sx.svg); } + .flag-icon-sx.flag-icon-squared { + background-image: url(../fonts/flag-icon/sx.svg); } + +.flag-icon-sy { + background-image: url(../fonts/flag-icon/sy.svg); } + .flag-icon-sy.flag-icon-squared { + background-image: url(../fonts/flag-icon/sy.svg); } + +.flag-icon-sz { + background-image: url(../fonts/flag-icon/sz.svg); } + .flag-icon-sz.flag-icon-squared { + background-image: url(../fonts/flag-icon/sz.svg); } + +.flag-icon-tc { + background-image: url(../fonts/flag-icon/tc.svg); } + .flag-icon-tc.flag-icon-squared { + background-image: url(../fonts/flag-icon/tc.svg); } + +.flag-icon-td { + background-image: url(../fonts/flag-icon/td.svg); } + .flag-icon-td.flag-icon-squared { + background-image: url(../fonts/flag-icon/td.svg); } + +.flag-icon-tf { + background-image: url(../fonts/flag-icon/tf.svg); } + .flag-icon-tf.flag-icon-squared { + background-image: url(../fonts/flag-icon/tf.svg); } + +.flag-icon-tg { + background-image: url(../fonts/flag-icon/tg.svg); } + .flag-icon-tg.flag-icon-squared { + background-image: url(../fonts/flag-icon/tg.svg); } + +.flag-icon-th { + background-image: url(../fonts/flag-icon/th.svg); } + .flag-icon-th.flag-icon-squared { + background-image: url(../fonts/flag-icon/th.svg); } + +.flag-icon-tj { + background-image: url(../fonts/flag-icon/tj.svg); } + .flag-icon-tj.flag-icon-squared { + background-image: url(../fonts/flag-icon/tj.svg); } + +.flag-icon-tk { + background-image: url(../fonts/flag-icon/tk.svg); } + .flag-icon-tk.flag-icon-squared { + background-image: url(../fonts/flag-icon/tk.svg); } + +.flag-icon-tl { + background-image: url(../fonts/flag-icon/tl.svg); } + .flag-icon-tl.flag-icon-squared { + background-image: url(../fonts/flag-icon/tl.svg); } + +.flag-icon-tm { + background-image: url(../fonts/flag-icon/tm.svg); } + .flag-icon-tm.flag-icon-squared { + background-image: url(../fonts/flag-icon/tm.svg); } + +.flag-icon-tn { + background-image: url(../fonts/flag-icon/tn.svg); } + .flag-icon-tn.flag-icon-squared { + background-image: url(../fonts/flag-icon/tn.svg); } + +.flag-icon-to { + background-image: url(../fonts/flag-icon/to.svg); } + .flag-icon-to.flag-icon-squared { + background-image: url(../fonts/flag-icon/to.svg); } + +.flag-icon-tr { + background-image: url(../fonts/flag-icon/tr.svg); } + .flag-icon-tr.flag-icon-squared { + background-image: url(../fonts/flag-icon/tr.svg); } + +.flag-icon-tt { + background-image: url(../fonts/flag-icon/tt.svg); } + .flag-icon-tt.flag-icon-squared { + background-image: url(../fonts/flag-icon/tt.svg); } + +.flag-icon-tv { + background-image: url(../fonts/flag-icon/tv.svg); } + .flag-icon-tv.flag-icon-squared { + background-image: url(../fonts/flag-icon/tv.svg); } + +.flag-icon-tw { + background-image: url(../fonts/flag-icon/tw.svg); } + .flag-icon-tw.flag-icon-squared { + background-image: url(../fonts/flag-icon/tw.svg); } + +.flag-icon-tz { + background-image: url(../fonts/flag-icon/tz.svg); } + .flag-icon-tz.flag-icon-squared { + background-image: url(../fonts/flag-icon/tz.svg); } + +.flag-icon-ua { + background-image: url(../fonts/flag-icon/ua.svg); } + .flag-icon-ua.flag-icon-squared { + background-image: url(../fonts/flag-icon/ua.svg); } + +.flag-icon-ug { + background-image: url(../fonts/flag-icon/ug.svg); } + .flag-icon-ug.flag-icon-squared { + background-image: url(../fonts/flag-icon/ug.svg); } + +.flag-icon-um { + background-image: url(../fonts/flag-icon/um.svg); } + .flag-icon-um.flag-icon-squared { + background-image: url(../fonts/flag-icon/um.svg); } + +.flag-icon-us { + background-image: url(../fonts/flag-icon/us.svg); } + .flag-icon-us.flag-icon-squared { + background-image: url(../fonts/flag-icon/us.svg); } + +.flag-icon-uy { + background-image: url(../fonts/flag-icon/uy.svg); } + .flag-icon-uy.flag-icon-squared { + background-image: url(../fonts/flag-icon/uy.svg); } + +.flag-icon-uz { + background-image: url(../fonts/flag-icon/uz.svg); } + .flag-icon-uz.flag-icon-squared { + background-image: url(../fonts/flag-icon/uz.svg); } + +.flag-icon-va { + background-image: url(../fonts/flag-icon/va.svg); } + .flag-icon-va.flag-icon-squared { + background-image: url(../fonts/flag-icon/va.svg); } + +.flag-icon-vc { + background-image: url(../fonts/flag-icon/vc.svg); } + .flag-icon-vc.flag-icon-squared { + background-image: url(../fonts/flag-icon/vc.svg); } + +.flag-icon-ve { + background-image: url(../fonts/flag-icon/ve.svg); } + .flag-icon-ve.flag-icon-squared { + background-image: url(../fonts/flag-icon/ve.svg); } + +.flag-icon-vg { + background-image: url(../fonts/flag-icon/vg.svg); } + .flag-icon-vg.flag-icon-squared { + background-image: url(../fonts/flag-icon/vg.svg); } + +.flag-icon-vi { + background-image: url(../fonts/flag-icon/vi.svg); } + .flag-icon-vi.flag-icon-squared { + background-image: url(../fonts/flag-icon/vi.svg); } + +.flag-icon-vn { + background-image: url(../fonts/flag-icon/vn.svg); } + .flag-icon-vn.flag-icon-squared { + background-image: url(../fonts/flag-icon/vn.svg); } + +.flag-icon-vu { + background-image: url(../fonts/flag-icon/vu.svg); } + .flag-icon-vu.flag-icon-squared { + background-image: url(../fonts/flag-icon/vu.svg); } + +.flag-icon-wf { + background-image: url(../fonts/flag-icon/wf.svg); } + .flag-icon-wf.flag-icon-squared { + background-image: url(../fonts/flag-icon/wf.svg); } + +.flag-icon-ws { + background-image: url(../fonts/flag-icon/ws.svg); } + .flag-icon-ws.flag-icon-squared { + background-image: url(../fonts/flag-icon/ws.svg); } + +.flag-icon-ye { + background-image: url(../fonts/flag-icon/ye.svg); } + .flag-icon-ye.flag-icon-squared { + background-image: url(../fonts/flag-icon/ye.svg); } + +.flag-icon-yt { + background-image: url(../fonts/flag-icon/yt.svg); } + .flag-icon-yt.flag-icon-squared { + background-image: url(../fonts/flag-icon/yt.svg); } + +.flag-icon-za { + background-image: url(../fonts/flag-icon/za.svg); } + .flag-icon-za.flag-icon-squared { + background-image: url(../fonts/flag-icon/za.svg); } + +.flag-icon-zm { + background-image: url(../fonts/flag-icon/zm.svg); } + .flag-icon-zm.flag-icon-squared { + background-image: url(../fonts/flag-icon/zm.svg); } + +.flag-icon-zw { + background-image: url(../fonts/flag-icon/zw.svg); } + .flag-icon-zw.flag-icon-squared { + background-image: url(../fonts/flag-icon/zw.svg); } diff --git a/public/admin/assets/css/fontawesome.css b/public/admin/assets/css/fontawesome.css new file mode 100644 index 0000000..b9c0efd --- /dev/null +++ b/public/admin/assets/css/fontawesome.css @@ -0,0 +1,2325 @@ +@charset "UTF-8"; +/*! + * 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/font-awesome/fontawesome-webfont3e6e.eot?v=4.7.0"); + src: url("../fonts/font-awesome/fontawesome-webfontd41d.eot?#iefix&v=4.7.0") format("embedded-opentype"), url("../fonts/font-awesome/fontawesome-webfont3e6e.woff2?v=4.7.0") format("woff2"), url("../fonts/font-awesome/fontawesome-webfont3e6e.woff?v=4.7.0") format("woff"), url("../fonts/font-awesome/fontawesome-webfont3e6e.ttf?v=4.7.0") format("truetype"), url("../fonts/font-awesome/fontawesome-webfont3e6e.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); + transform: rotate(90deg); } + +.fa-rotate-180 { + -ms-filter: "progid:DXImageTransform.Microsoft.BasicImage(rotation=2)"; + -webkit-transform: rotate(180deg); + transform: rotate(180deg); } + +.fa-rotate-270 { + -ms-filter: "progid:DXImageTransform.Microsoft.BasicImage(rotation=3)"; + -webkit-transform: rotate(270deg); + transform: rotate(270deg); } + +.fa-flip-horizontal { + -ms-filter: "progid:DXImageTransform.Microsoft.BasicImage(rotation=0, mirror=1)"; + -webkit-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); + transform: scale(1, -1); } + +:root .fa-rotate-90, +:root .fa-rotate-180, +:root .fa-rotate-270, +:root .fa-flip-horizontal, +:root .fa-flip-vertical { + -webkit-filter: none; + 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-viho-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-viho-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; } diff --git a/public/admin/assets/css/icofont.css b/public/admin/assets/css/icofont.css new file mode 100644 index 0000000..9206728 --- /dev/null +++ b/public/admin/assets/css/icofont.css @@ -0,0 +1,6403 @@ +/** + * @package IcoFont by ThemeHunt - https://themehunt.com + * @version 1.0.0 Beta + * @author IcoFont http://icofont.com + * @copyright Copyright (c) 2018 IcoFont + * @license - http://icofont.com/license/ +*/ +@font-face { + font-family: 'icofont'; + src: url("../fonts/ico/icofont7858.eot?v=1.0.0-beta"); + src: url("../fonts/ico/icofont7858.eot?v=1.0.0-beta#iefix") format("embedded-opentype"), url("../fonts/ico/icofont7858.ttf?v=1.0.0-beta") format("truetype"), url("../fonts/ico/icofont7858.woff?v=1.0.0-beta") format("woff"), url("../fonts/ico/icofont7858.svg?v=1.0.0-beta#icofont") format("svg"); + font-weight: normal; + font-style: normal; } + +.icofont { + font-family: 'IcoFont' !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; } + +.icofont-angry-monster:before { + content: "\e901"; } + +.icofont-bathtub:before { + content: "\e902"; } + +.icofont-bird-wings:before { + content: "\e903"; } + +.icofont-bow:before { + content: "\e904"; } + +.icofont-brain-alt:before { + content: "\e905"; } + +.icofont-butterfly-alt:before { + content: "\e906"; } + +.icofont-castle:before { + content: "\e907"; } + +.icofont-circuit:before { + content: "\e908"; } + +.icofont-dart:before { + content: "\e909"; } + +.icofont-dice-alt:before { + content: "\e90a"; } + +.icofont-disability-race:before { + content: "\e90b"; } + +.icofont-diving-goggle:before { + content: "\e90c"; } + +.icofont-fire-alt:before { + content: "\e90d"; } + +.icofont-flame-torch:before { + content: "\e90e"; } + +.icofont-flora-flower:before { + content: "\e90f"; } + +.icofont-flora:before { + content: "\e910"; } + +.icofont-gift-box:before { + content: "\e911"; } + +.icofont-halloween-pumpkin:before { + content: "\e912"; } + +.icofont-hand-power:before { + content: "\e913"; } + +.icofont-hand-thunder:before { + content: "\e914"; } + +.icofont-king-crown:before { + content: "\e915"; } + +.icofont-king-monster:before { + content: "\e916"; } + +.icofont-love:before { + content: "\e917"; } + +.icofont-magician-hat:before { + content: "\e918"; } + +.icofont-native-american:before { + content: "\e919"; } + +.icofont-open-eye:before { + content: "\e91a"; } + +.icofont-owl-look:before { + content: "\e91b"; } + +.icofont-phoenix:before { + content: "\e91c"; } + +.icofont-queen-crown:before { + content: "\e91d"; } + +.icofont-robot-face:before { + content: "\e91e"; } + +.icofont-sand-clock:before { + content: "\e91f"; } + +.icofont-shield-alt:before { + content: "\e920"; } + +.icofont-ship-wheel:before { + content: "\e921"; } + +.icofont-skull-danger:before { + content: "\e922"; } + +.icofont-skull-face:before { + content: "\e923"; } + +.icofont-snail:before { + content: "\e924"; } + +.icofont-snow-alt:before { + content: "\e925"; } + +.icofont-snow-flake:before { + content: "\e926"; } + +.icofont-snowmobile:before { + content: "\e927"; } + +.icofont-space-shuttle:before { + content: "\e928"; } + +.icofont-star-shape:before { + content: "\e929"; } + +.icofont-swirl:before { + content: "\e92a"; } + +.icofont-tattoo-wing:before { + content: "\e92b"; } + +.icofont-throne:before { + content: "\e92c"; } + +.icofont-touch:before { + content: "\e92d"; } + +.icofont-tree-alt:before { + content: "\e92e"; } + +.icofont-triangle:before { + content: "\e92f"; } + +.icofont-unity-hand:before { + content: "\e930"; } + +.icofont-weed:before { + content: "\e931"; } + +.icofont-woman-bird:before { + content: "\e932"; } + +.icofont-animal-bat:before { + content: "\e933"; } + +.icofont-animal-bear-tracks:before { + content: "\e934"; } + +.icofont-animal-bear:before { + content: "\e935"; } + +.icofont-animal-bird-alt:before { + content: "\e936"; } + +.icofont-animal-bird:before { + content: "\e937"; } + +.icofont-animal-bone:before { + content: "\e938"; } + +.icofont-animal-bull:before { + content: "\e939"; } + +.icofont-animal-camel-alt:before { + content: "\e93a"; } + +.icofont-animal-camel-head:before { + content: "\e93b"; } + +.icofont-animal-camel:before { + content: "\e93c"; } + +.icofont-animal-cat-alt-1:before { + content: "\e93d"; } + +.icofont-animal-cat-alt-2:before { + content: "\e93e"; } + +.icofont-animal-cat-alt-3:before { + content: "\e93f"; } + +.icofont-animal-cat-alt-4:before { + content: "\e940"; } + +.icofont-animal-cat-with-dog:before { + content: "\e941"; } + +.icofont-animal-cat:before { + content: "\e942"; } + +.icofont-animal-cow-head:before { + content: "\e943"; } + +.icofont-animal-cow:before { + content: "\e944"; } + +.icofont-animal-crab:before { + content: "\e945"; } + +.icofont-animal-crocodile:before { + content: "\e946"; } + +.icofont-animal-deer-head:before { + content: "\e947"; } + +.icofont-animal-dog-alt:before { + content: "\e948"; } + +.icofont-animal-dog-barking:before { + content: "\e949"; } + +.icofont-animal-dog:before { + content: "\e94a"; } + +.icofont-animal-dolphin:before { + content: "\e94b"; } + +.icofont-animal-duck-tracks:before { + content: "\e94c"; } + +.icofont-animal-eagle-head:before { + content: "\e94d"; } + +.icofont-animal-eaten-fish:before { + content: "\e94e"; } + +.icofont-animal-elephant-alt:before { + content: "\e94f"; } + +.icofont-animal-elephant-head-alt:before { + content: "\e950"; } + +.icofont-animal-elephant-head:before { + content: "\e951"; } + +.icofont-animal-elephant:before { + content: "\e952"; } + +.icofont-animal-elk:before { + content: "\e953"; } + +.icofont-animal-fish-alt-1:before { + content: "\e954"; } + +.icofont-animal-fish-alt-2:before { + content: "\e955"; } + +.icofont-animal-fish-alt-3:before { + content: "\e956"; } + +.icofont-animal-fish-alt-4:before { + content: "\e957"; } + +.icofont-animal-fish:before { + content: "\e958"; } + +.icofont-animal-fox-alt:before { + content: "\e959"; } + +.icofont-animal-fox:before { + content: "\e95a"; } + +.icofont-animal-frog-tracks:before { + content: "\e95b"; } + +.icofont-animal-frog:before { + content: "\e95c"; } + +.icofont-animal-froggy:before { + content: "\e95d"; } + +.icofont-animal-giraffe-alt:before { + content: "\e95e"; } + +.icofont-animal-giraffe:before { + content: "\e95f"; } + +.icofont-animal-goat-head-alt-1:before { + content: "\e960"; } + +.icofont-animal-goat-head-alt-2:before { + content: "\e961"; } + +.icofont-animal-goat-head:before { + content: "\e962"; } + +.icofont-animal-gorilla:before { + content: "\e963"; } + +.icofont-animal-hen-tracks:before { + content: "\e964"; } + +.icofont-animal-horse-head-alt-1:before { + content: "\e965"; } + +.icofont-animal-horse-head-alt-2:before { + content: "\e966"; } + +.icofont-animal-horse-head:before { + content: "\e967"; } + +.icofont-animal-horse-tracks:before { + content: "\e968"; } + +.icofont-animal-jellyfish:before { + content: "\e969"; } + +.icofont-animal-kangaroo:before { + content: "\e96a"; } + +.icofont-animal-lemur:before { + content: "\e96b"; } + +.icofont-animal-lion-alt:before { + content: "\e96c"; } + +.icofont-animal-lion-head-alt:before { + content: "\e96d"; } + +.icofont-animal-lion-head:before { + content: "\e96e"; } + +.icofont-animal-lion:before { + content: "\e96f"; } + +.icofont-animal-monkey-alt-1:before { + content: "\e970"; } + +.icofont-animal-monkey-alt-2:before { + content: "\e971"; } + +.icofont-animal-monkey-alt-3:before { + content: "\e972"; } + +.icofont-animal-monkey:before { + content: "\e973"; } + +.icofont-animal-octopus-alt:before { + content: "\e974"; } + +.icofont-animal-octopus:before { + content: "\e975"; } + +.icofont-animal-owl:before { + content: "\e976"; } + +.icofont-animal-panda-alt:before { + content: "\e977"; } + +.icofont-animal-panda:before { + content: "\e978"; } + +.icofont-animal-panther:before { + content: "\e979"; } + +.icofont-animal-parrot-lip:before { + content: "\e97a"; } + +.icofont-animal-parrot:before { + content: "\e97b"; } + +.icofont-animal-paw:before { + content: "\e97c"; } + +.icofont-animal-pelican:before { + content: "\e97d"; } + +.icofont-animal-penguin:before { + content: "\e97e"; } + +.icofont-animal-pig-alt:before { + content: "\e97f"; } + +.icofont-animal-pig:before { + content: "\e980"; } + +.icofont-animal-pigeon-alt:before { + content: "\e981"; } + +.icofont-animal-pigeon:before { + content: "\e982"; } + +.icofont-animal-pigeons:before { + content: "\e983"; } + +.icofont-animal-rabbit-running:before { + content: "\e984"; } + +.icofont-animal-rat-alt:before { + content: "\e985"; } + +.icofont-animal-rhino-head:before { + content: "\e986"; } + +.icofont-animal-rhino:before { + content: "\e987"; } + +.icofont-animal-rooster:before { + content: "\e988"; } + +.icofont-animal-seahorse:before { + content: "\e989"; } + +.icofont-animal-seal:before { + content: "\e98a"; } + +.icofont-animal-shrimp:before { + content: "\e98b"; } + +.icofont-animal-snail-alt-1:before { + content: "\e98c"; } + +.icofont-animal-snail-alt-2:before { + content: "\e98d"; } + +.icofont-animal-snail:before { + content: "\e98e"; } + +.icofont-animal-snake:before { + content: "\e98f"; } + +.icofont-animal-squid:before { + content: "\e990"; } + +.icofont-animal-squirrel:before { + content: "\e991"; } + +.icofont-animal-tiger-alt:before { + content: "\e992"; } + +.icofont-animal-tiger:before { + content: "\e993"; } + +.icofont-animal-turtle:before { + content: "\e994"; } + +.icofont-animal-whale:before { + content: "\e995"; } + +.icofont-animal-woodpecker:before { + content: "\e996"; } + +.icofont-animal-zebra:before { + content: "\e997"; } + +.icofont-brand-acer:before { + content: "\e998"; } + +.icofont-brand-adidas:before { + content: "\e999"; } + +.icofont-brand-adobe:before { + content: "\e99a"; } + +.icofont-brand-air-new-zealand:before { + content: "\e99b"; } + +.icofont-brand-airbnb:before { + content: "\e99c"; } + +.icofont-brand-aircell:before { + content: "\e99d"; } + +.icofont-brand-airtel:before { + content: "\e99e"; } + +.icofont-brand-alcatel:before { + content: "\e99f"; } + +.icofont-brand-alibaba:before { + content: "\e9a0"; } + +.icofont-brand-aliexpress:before { + content: "\e9a1"; } + +.icofont-brand-alipay:before { + content: "\e9a2"; } + +.icofont-brand-amazon:before { + content: "\e9a3"; } + +.icofont-brand-amd:before { + content: "\e9a4"; } + +.icofont-brand-american-airlines:before { + content: "\e9a5"; } + +.icofont-brand-android-robot:before { + content: "\e9a6"; } + +.icofont-brand-android:before { + content: "\e9a7"; } + +.icofont-brand-aol:before { + content: "\e9a8"; } + +.icofont-brand-apple:before { + content: "\e9a9"; } + +.icofont-brand-appstore:before { + content: "\e9aa"; } + +.icofont-brand-asus:before { + content: "\e9ab"; } + +.icofont-brand-ati:before { + content: "\e9ac"; } + +.icofont-brand-att:before { + content: "\e9ad"; } + +.icofont-brand-audi:before { + content: "\e9ae"; } + +.icofont-brand-axiata:before { + content: "\e9af"; } + +.icofont-brand-bada:before { + content: "\e9b0"; } + +.icofont-brand-bbc:before { + content: "\e9b1"; } + +.icofont-brand-bing:before { + content: "\e9b2"; } + +.icofont-brand-blackberry:before { + content: "\e9b3"; } + +.icofont-brand-bmw:before { + content: "\e9b4"; } + +.icofont-brand-box:before { + content: "\e9b5"; } + +.icofont-brand-burger-king:before { + content: "\e9b6"; } + +.icofont-brand-business-insider:before { + content: "\e9b7"; } + +.icofont-brand-buzzfeed:before { + content: "\e9b8"; } + +.icofont-brand-cannon:before { + content: "\e9b9"; } + +.icofont-brand-casio:before { + content: "\e9ba"; } + +.icofont-brand-china-mobile:before { + content: "\e9bb"; } + +.icofont-brand-china-telecom:before { + content: "\e9bc"; } + +.icofont-brand-china-unicom:before { + content: "\e9bd"; } + +.icofont-brand-cisco:before { + content: "\e9be"; } + +.icofont-brand-citibank:before { + content: "\e9bf"; } + +.icofont-brand-cnet:before { + content: "\e9c0"; } + +.icofont-brand-cnn:before { + content: "\e9c1"; } + +.icofont-brand-cocal-cola:before { + content: "\e9c2"; } + +.icofont-brand-compaq:before { + content: "\e9c3"; } + +.icofont-brand-copy:before { + content: "\e9c4"; } + +.icofont-brand-debian:before { + content: "\e9c5"; } + +.icofont-brand-delicious:before { + content: "\e9c6"; } + +.icofont-brand-dell:before { + content: "\e9c7"; } + +.icofont-brand-designbump:before { + content: "\e9c8"; } + +.icofont-brand-designfloat:before { + content: "\e9c9"; } + +.icofont-brand-disney:before { + content: "\e9ca"; } + +.icofont-brand-dodge:before { + content: "\e9cb"; } + +.icofont-brand-dove:before { + content: "\e9cc"; } + +.icofont-brand-ebay:before { + content: "\e9cd"; } + +.icofont-brand-eleven:before { + content: "\e9ce"; } + +.icofont-brand-emirates:before { + content: "\e9cf"; } + +.icofont-brand-espn:before { + content: "\e9d0"; } + +.icofont-brand-etihad-airways:before { + content: "\e9d1"; } + +.icofont-brand-etisalat:before { + content: "\e9d2"; } + +.icofont-brand-etsy:before { + content: "\e9d3"; } + +.icofont-brand-facebook:before { + content: "\e9d4"; } + +.icofont-brand-fastrack:before { + content: "\e9d5"; } + +.icofont-brand-fedex:before { + content: "\e9d6"; } + +.icofont-brand-ferrari:before { + content: "\e9d7"; } + +.icofont-brand-fitbit:before { + content: "\e9d8"; } + +.icofont-brand-flikr:before { + content: "\e9d9"; } + +.icofont-brand-forbes:before { + content: "\e9da"; } + +.icofont-brand-foursquare:before { + content: "\e9db"; } + +.icofont-brand-fox:before { + content: "\e9dc"; } + +.icofont-brand-foxconn:before { + content: "\e9dd"; } + +.icofont-brand-fujitsu:before { + content: "\e9de"; } + +.icofont-brand-general-electric:before { + content: "\e9df"; } + +.icofont-brand-gillette:before { + content: "\e9e0"; } + +.icofont-brand-gizmodo:before { + content: "\e9e1"; } + +.icofont-brand-gnome:before { + content: "\e9e2"; } + +.icofont-brand-google:before { + content: "\e9e3"; } + +.icofont-brand-gopro:before { + content: "\e9e4"; } + +.icofont-brand-gucci:before { + content: "\e9e5"; } + +.icofont-brand-hallmark:before { + content: "\e9e6"; } + +.icofont-brand-hi5:before { + content: "\e9e7"; } + +.icofont-brand-honda:before { + content: "\e9e8"; } + +.icofont-brand-hp:before { + content: "\e9e9"; } + +.icofont-brand-hsbc:before { + content: "\e9ea"; } + +.icofont-brand-htc:before { + content: "\e9eb"; } + +.icofont-brand-huawei:before { + content: "\e9ec"; } + +.icofont-brand-hulu:before { + content: "\e9ed"; } + +.icofont-brand-hyundai:before { + content: "\e9ee"; } + +.icofont-brand-ibm:before { + content: "\e9ef"; } + +.icofont-brand-icofont:before { + content: "\e9f0"; } + +.icofont-brand-icq:before { + content: "\e9f1"; } + +.icofont-brand-ikea:before { + content: "\e9f2"; } + +.icofont-brand-imdb:before { + content: "\e9f3"; } + +.icofont-brand-indiegogo:before { + content: "\e9f4"; } + +.icofont-brand-intel:before { + content: "\e9f5"; } + +.icofont-brand-ipair:before { + content: "\e9f6"; } + +.icofont-brand-jaguar:before { + content: "\e9f7"; } + +.icofont-brand-java:before { + content: "\e9f8"; } + +.icofont-brand-joomshaper:before { + content: "\e9f9"; } + +.icofont-brand-kickstarter:before { + content: "\e9fa"; } + +.icofont-brand-kik:before { + content: "\e9fb"; } + +.icofont-brand-lastfm:before { + content: "\e9fc"; } + +.icofont-brand-lego:before { + content: "\e9fd"; } + +.icofont-brand-lenovo:before { + content: "\e9fe"; } + +.icofont-brand-levis:before { + content: "\e9ff"; } + +.icofont-brand-lexus:before { + content: "\ea00"; } + +.icofont-brand-lg:before { + content: "\ea01"; } + +.icofont-brand-life-hacker:before { + content: "\ea02"; } + +.icofont-brand-line-messenger:before { + content: "\ea03"; } + +.icofont-brand-linkedin:before { + content: "\ea04"; } + +.icofont-brand-linux-mint:before { + content: "\ea05"; } + +.icofont-brand-linux:before { + content: "\ea06"; } + +.icofont-brand-lionix:before { + content: "\ea07"; } + +.icofont-brand-live-messenger:before { + content: "\ea08"; } + +.icofont-brand-loreal:before { + content: "\ea09"; } + +.icofont-brand-louis-vuitton:before { + content: "\ea0a"; } + +.icofont-brand-mac-os:before { + content: "\ea0b"; } + +.icofont-brand-marvel-app:before { + content: "\ea0c"; } + +.icofont-brand-mashable:before { + content: "\ea0d"; } + +.icofont-brand-mazda:before { + content: "\ea0e"; } + +.icofont-brand-mcdonals:before { + content: "\ea0f"; } + +.icofont-brand-mercedes:before { + content: "\ea10"; } + +.icofont-brand-micromax:before { + content: "\ea11"; } + +.icofont-brand-microsoft:before { + content: "\ea12"; } + +.icofont-brand-mobileme:before { + content: "\ea13"; } + +.icofont-brand-mobily:before { + content: "\ea14"; } + +.icofont-brand-motorola:before { + content: "\ea15"; } + +.icofont-brand-msi:before { + content: "\ea16"; } + +.icofont-brand-mts:before { + content: "\ea17"; } + +.icofont-brand-myspace:before { + content: "\ea18"; } + +.icofont-brand-mytv:before { + content: "\ea19"; } + +.icofont-brand-nasa:before { + content: "\ea1a"; } + +.icofont-brand-natgeo:before { + content: "\ea1b"; } + +.icofont-brand-nbc:before { + content: "\ea1c"; } + +.icofont-brand-nescafe:before { + content: "\ea1d"; } + +.icofont-brand-nestle:before { + content: "\ea1e"; } + +.icofont-brand-netflix:before { + content: "\ea1f"; } + +.icofont-brand-nexus:before { + content: "\ea20"; } + +.icofont-brand-nike:before { + content: "\ea21"; } + +.icofont-brand-nokia:before { + content: "\ea22"; } + +.icofont-brand-nvidia:before { + content: "\ea23"; } + +.icofont-brand-omega:before { + content: "\ea24"; } + +.icofont-brand-opensuse:before { + content: "\ea25"; } + +.icofont-brand-oracle:before { + content: "\ea26"; } + +.icofont-brand-panasonic:before { + content: "\ea27"; } + +.icofont-brand-paypal:before { + content: "\ea28"; } + +.icofont-brand-pepsi:before { + content: "\ea29"; } + +.icofont-brand-philips:before { + content: "\ea2a"; } + +.icofont-brand-pizza-hut:before { + content: "\ea2b"; } + +.icofont-brand-playstation:before { + content: "\ea2c"; } + +.icofont-brand-puma:before { + content: "\ea2d"; } + +.icofont-brand-qatar-air:before { + content: "\ea2e"; } + +.icofont-brand-qvc:before { + content: "\ea2f"; } + +.icofont-brand-readernaut:before { + content: "\ea30"; } + +.icofont-brand-redbull:before { + content: "\ea31"; } + +.icofont-brand-reebok:before { + content: "\ea32"; } + +.icofont-brand-reuters:before { + content: "\ea33"; } + +.icofont-brand-samsung:before { + content: "\ea34"; } + +.icofont-brand-sap:before { + content: "\ea35"; } + +.icofont-brand-saudia-airlines:before { + content: "\ea36"; } + +.icofont-brand-scribd:before { + content: "\ea37"; } + +.icofont-brand-shell:before { + content: "\ea38"; } + +.icofont-brand-siemens:before { + content: "\ea39"; } + +.icofont-brand-sk-telecom:before { + content: "\ea3a"; } + +.icofont-brand-slideshare:before { + content: "\ea3b"; } + +.icofont-brand-smashing-magazine:before { + content: "\ea3c"; } + +.icofont-brand-snapchat:before { + content: "\ea3d"; } + +.icofont-brand-sony-ericsson:before { + content: "\ea3e"; } + +.icofont-brand-sony:before { + content: "\ea3f"; } + +.icofont-brand-soundcloud:before { + content: "\ea40"; } + +.icofont-brand-sprint:before { + content: "\ea41"; } + +.icofont-brand-squidoo:before { + content: "\ea42"; } + +.icofont-brand-starbucks:before { + content: "\ea43"; } + +.icofont-brand-stc:before { + content: "\ea44"; } + +.icofont-brand-steam:before { + content: "\ea45"; } + +.icofont-brand-suzuki:before { + content: "\ea46"; } + +.icofont-brand-symbian:before { + content: "\ea47"; } + +.icofont-brand-t-mobile:before { + content: "\ea48"; } + +.icofont-brand-tango:before { + content: "\ea49"; } + +.icofont-brand-target:before { + content: "\ea4a"; } + +.icofont-brand-tata-indicom:before { + content: "\ea4b"; } + +.icofont-brand-techcrunch:before { + content: "\ea4c"; } + +.icofont-brand-telenor:before { + content: "\ea4d"; } + +.icofont-brand-teliasonera:before { + content: "\ea4e"; } + +.icofont-brand-tesla:before { + content: "\ea4f"; } + +.icofont-brand-the-verge:before { + content: "\ea50"; } + +.icofont-brand-thenextweb:before { + content: "\ea51"; } + +.icofont-brand-toshiba:before { + content: "\ea52"; } + +.icofont-brand-toyota:before { + content: "\ea53"; } + +.icofont-brand-tribenet:before { + content: "\ea54"; } + +.icofont-brand-ubuntu:before { + content: "\ea55"; } + +.icofont-brand-unilever:before { + content: "\ea56"; } + +.icofont-brand-vaio:before { + content: "\ea57"; } + +.icofont-brand-verizon:before { + content: "\ea58"; } + +.icofont-brand-viber:before { + content: "\ea59"; } + +.icofont-brand-vodafone:before { + content: "\ea5a"; } + +.icofont-brand-volkswagen:before { + content: "\ea5b"; } + +.icofont-brand-walmart:before { + content: "\ea5c"; } + +.icofont-brand-warnerbros:before { + content: "\ea5d"; } + +.icofont-brand-whatsapp:before { + content: "\ea5e"; } + +.icofont-brand-wikipedia:before { + content: "\ea5f"; } + +.icofont-brand-windows:before { + content: "\ea60"; } + +.icofont-brand-wire:before { + content: "\ea61"; } + +.icofont-brand-yahoobuzz:before { + content: "\ea62"; } + +.icofont-brand-yamaha:before { + content: "\ea63"; } + +.icofont-brand-youtube:before { + content: "\ea64"; } + +.icofont-brand-zain:before { + content: "\ea65"; } + +.icofont-bank-alt:before { + content: "\ea66"; } + +.icofont-barcode:before { + content: "\ea67"; } + +.icofont-basket:before { + content: "\ea68"; } + +.icofont-bill-alt:before { + content: "\ea69"; } + +.icofont-billboard:before { + content: "\ea6a"; } + +.icofont-briefcase-alt-1:before { + content: "\ea6b"; } + +.icofont-briefcase-alt-2:before { + content: "\ea6c"; } + +.icofont-building-alt:before { + content: "\ea6d"; } + +.icofont-businessman:before { + content: "\ea6e"; } + +.icofont-businesswoman:before { + content: "\ea6f"; } + +.icofont-cart-alt:before { + content: "\ea70"; } + +.icofont-chair:before { + content: "\ea71"; } + +.icofont-clip:before { + content: "\ea72"; } + +.icofont-coins:before { + content: "\ea73"; } + +.icofont-company:before { + content: "\ea74"; } + +.icofont-contact-add:before { + content: "\ea75"; } + +.icofont-deal:before { + content: "\ea76"; } + +.icofont-files:before { + content: "\ea77"; } + +.icofont-growth:before { + content: "\ea78"; } + +.icofont-id-card:before { + content: "\ea79"; } + +.icofont-idea:before { + content: "\ea7a"; } + +.icofont-list:before { + content: "\ea7b"; } + +.icofont-meeting-add:before { + content: "\ea7c"; } + +.icofont-money-bag:before { + content: "\ea7d"; } + +.icofont-people:before { + content: "\ea7e"; } + +.icofont-pie-chart:before { + content: "\ea7f"; } + +.icofont-presentation-alt:before { + content: "\ea80"; } + +.icofont-stamp:before { + content: "\ea81"; } + +.icofont-stock-mobile:before { + content: "\ea82"; } + +.icofont-support:before { + content: "\ea83"; } + +.icofont-tasks-alt:before { + content: "\ea84"; } + +.icofont-wheel:before { + content: "\ea85"; } + +.icofont-chart-arrows-axis:before { + content: "\ea86"; } + +.icofont-chart-bar-graph:before { + content: "\ea87"; } + +.icofont-chart-flow-alt-1:before { + content: "\ea88"; } + +.icofont-chart-flow-alt-2:before { + content: "\ea89"; } + +.icofont-chart-flow:before { + content: "\ea8a"; } + +.icofont-chart-histogram-alt:before { + content: "\ea8b"; } + +.icofont-chart-histogram:before { + content: "\ea8c"; } + +.icofont-chart-line-alt:before { + content: "\ea8d"; } + +.icofont-chart-line:before { + content: "\ea8e"; } + +.icofont-chart-pie-alt:before { + content: "\ea8f"; } + +.icofont-chart-pie:before { + content: "\ea90"; } + +.icofont-chart-radar-graph:before { + content: "\ea91"; } + +.icofont-cur-afghani-false:before { + content: "\ea92"; } + +.icofont-cur-afghani-minus:before { + content: "\ea93"; } + +.icofont-cur-afghani-plus:before { + content: "\ea94"; } + +.icofont-cur-afghani-true:before { + content: "\ea95"; } + +.icofont-cur-afghani:before { + content: "\ea96"; } + +.icofont-cur-baht-false:before { + content: "\ea97"; } + +.icofont-cur-baht-minus:before { + content: "\ea98"; } + +.icofont-cur-baht-plus:before { + content: "\ea99"; } + +.icofont-cur-baht-true:before { + content: "\ea9a"; } + +.icofont-cur-baht:before { + content: "\ea9b"; } + +.icofont-cur-bitcoin-false:before { + content: "\ea9c"; } + +.icofont-cur-bitcoin-minus:before { + content: "\ea9d"; } + +.icofont-cur-bitcoin-plus:before { + content: "\ea9e"; } + +.icofont-cur-bitcoin-true:before { + content: "\ea9f"; } + +.icofont-cur-bitcoin:before { + content: "\eaa0"; } + +.icofont-cur-dollar-flase:before { + content: "\eaa1"; } + +.icofont-cur-dollar-minus:before { + content: "\eaa2"; } + +.icofont-cur-dollar-plus:before { + content: "\eaa3"; } + +.icofont-cur-dollar-true:before { + content: "\eaa4"; } + +.icofont-cur-dollar:before { + content: "\eaa5"; } + +.icofont-cur-dong-false:before { + content: "\eaa6"; } + +.icofont-cur-dong-minus:before { + content: "\eaa7"; } + +.icofont-cur-dong-plus:before { + content: "\eaa8"; } + +.icofont-cur-dong-true:before { + content: "\eaa9"; } + +.icofont-cur-dong:before { + content: "\eaaa"; } + +.icofont-cur-euro-false:before { + content: "\eaab"; } + +.icofont-cur-euro-minus:before { + content: "\eaac"; } + +.icofont-cur-euro-plus:before { + content: "\eaad"; } + +.icofont-cur-euro-true:before { + content: "\eaae"; } + +.icofont-cur-euro:before { + content: "\eaaf"; } + +.icofont-cur-frank-false:before { + content: "\eab0"; } + +.icofont-cur-frank-minus:before { + content: "\eab1"; } + +.icofont-cur-frank-plus:before { + content: "\eab2"; } + +.icofont-cur-frank-true:before { + content: "\eab3"; } + +.icofont-cur-frank:before { + content: "\eab4"; } + +.icofont-cur-hryvnia-false:before { + content: "\eab5"; } + +.icofont-cur-hryvnia-minus:before { + content: "\eab6"; } + +.icofont-cur-hryvnia-plus:before { + content: "\eab7"; } + +.icofont-cur-hryvnia-true:before { + content: "\eab8"; } + +.icofont-cur-hryvnia:before { + content: "\eab9"; } + +.icofont-cur-lira-false:before { + content: "\eaba"; } + +.icofont-cur-lira-minus:before { + content: "\eabb"; } + +.icofont-cur-lira-plus:before { + content: "\eabc"; } + +.icofont-cur-lira-true:before { + content: "\eabd"; } + +.icofont-cur-lira:before { + content: "\eabe"; } + +.icofont-cur-peseta-false:before { + content: "\eabf"; } + +.icofont-cur-peseta-minus:before { + content: "\eac0"; } + +.icofont-cur-peseta-plus:before { + content: "\eac1"; } + +.icofont-cur-peseta-true:before { + content: "\eac2"; } + +.icofont-cur-peseta:before { + content: "\eac3"; } + +.icofont-cur-peso-false:before { + content: "\eac4"; } + +.icofont-cur-peso-minus:before { + content: "\eac5"; } + +.icofont-cur-peso-plus:before { + content: "\eac6"; } + +.icofont-cur-peso-true:before { + content: "\eac7"; } + +.icofont-cur-peso:before { + content: "\eac8"; } + +.icofont-cur-pound-false:before { + content: "\eac9"; } + +.icofont-cur-pound-minus:before { + content: "\eaca"; } + +.icofont-cur-pound-plus:before { + content: "\eacb"; } + +.icofont-cur-pound-true:before { + content: "\eacc"; } + +.icofont-cur-pound:before { + content: "\eacd"; } + +.icofont-cur-renminbi-false:before { + content: "\eace"; } + +.icofont-cur-renminbi-minus:before { + content: "\eacf"; } + +.icofont-cur-renminbi-plus:before { + content: "\ead0"; } + +.icofont-cur-renminbi-true:before { + content: "\ead1"; } + +.icofont-cur-renminbi:before { + content: "\ead2"; } + +.icofont-cur-riyal-false:before { + content: "\ead3"; } + +.icofont-cur-riyal-minus:before { + content: "\ead4"; } + +.icofont-cur-riyal-plus:before { + content: "\ead5"; } + +.icofont-cur-riyal-true:before { + content: "\ead6"; } + +.icofont-cur-riyal:before { + content: "\ead7"; } + +.icofont-cur-rouble-false:before { + content: "\ead8"; } + +.icofont-cur-rouble-minus:before { + content: "\ead9"; } + +.icofont-cur-rouble-plus:before { + content: "\eada"; } + +.icofont-cur-rouble-true:before { + content: "\eadb"; } + +.icofont-cur-rouble:before { + content: "\eadc"; } + +.icofont-cur-rupee-false:before { + content: "\eadd"; } + +.icofont-cur-rupee-minus:before { + content: "\eade"; } + +.icofont-cur-rupee-plus:before { + content: "\eadf"; } + +.icofont-cur-rupee-true:before { + content: "\eae0"; } + +.icofont-cur-rupee:before { + content: "\eae1"; } + +.icofont-cur-taka-false:before { + content: "\eae2"; } + +.icofont-cur-taka-minus:before { + content: "\eae3"; } + +.icofont-cur-taka-plus:before { + content: "\eae4"; } + +.icofont-cur-taka-true:before { + content: "\eae5"; } + +.icofont-cur-taka:before { + content: "\eae6"; } + +.icofont-cur-turkish-lira-false:before { + content: "\eae7"; } + +.icofont-cur-turkish-lira-minus:before { + content: "\eae8"; } + +.icofont-cur-turkish-lira-plus:before { + content: "\eae9"; } + +.icofont-cur-turkish-lira-true:before { + content: "\eaea"; } + +.icofont-cur-turkish-lira:before { + content: "\eaeb"; } + +.icofont-cur-won-false:before { + content: "\eaec"; } + +.icofont-cur-won-minus:before { + content: "\eaed"; } + +.icofont-cur-won-plus:before { + content: "\eaee"; } + +.icofont-cur-won-true:before { + content: "\eaef"; } + +.icofont-cur-won:before { + content: "\eaf0"; } + +.icofont-cur-yen-false:before { + content: "\eaf1"; } + +.icofont-cur-yen-minus:before { + content: "\eaf2"; } + +.icofont-cur-yen-plus:before { + content: "\eaf3"; } + +.icofont-cur-yen-true:before { + content: "\eaf4"; } + +.icofont-cur-yen:before { + content: "\eaf5"; } + +.icofont-android-nexus:before { + content: "\eaf6"; } + +.icofont-android-tablet:before { + content: "\eaf7"; } + +.icofont-apple-watch:before { + content: "\eaf8"; } + +.icofont-drwaing-tablet:before { + content: "\eaf9"; } + +.icofont-earphone:before { + content: "\eafa"; } + +.icofont-flash-drive:before { + content: "\eafb"; } + +.icofont-game-control:before { + content: "\eafc"; } + +.icofont-headphone-alt:before { + content: "\eafd"; } + +.icofont-htc-one:before { + content: "\eafe"; } + +.icofont-imac:before { + content: "\eaff"; } + +.icofont-ipad-touch:before { + content: "\eb00"; } + +.icofont-iphone:before { + content: "\eb01"; } + +.icofont-ipod-nano:before { + content: "\eb02"; } + +.icofont-ipod-touch:before { + content: "\eb03"; } + +.icofont-keyboard-alt:before { + content: "\eb04"; } + +.icofont-keyboard-wireless:before { + content: "\eb05"; } + +.icofont-laptop-alt:before { + content: "\eb06"; } + +.icofont-macbook:before { + content: "\eb07"; } + +.icofont-magic-mouse:before { + content: "\eb08"; } + +.icofont-microphone-alt:before { + content: "\eb09"; } + +.icofont-monitor:before { + content: "\eb0a"; } + +.icofont-mouse:before { + content: "\eb0b"; } + +.icofont-nintendo:before { + content: "\eb0c"; } + +.icofont-playstation:before { + content: "\eb0d"; } + +.icofont-psvita:before { + content: "\eb0e"; } + +.icofont-radio-mic:before { + content: "\eb0f"; } + +.icofont-refrigerator:before { + content: "\eb10"; } + +.icofont-samsung-galaxy:before { + content: "\eb11"; } + +.icofont-surface-tablet:before { + content: "\eb12"; } + +.icofont-washing-machine:before { + content: "\eb13"; } + +.icofont-wifi-router:before { + content: "\eb14"; } + +.icofont-wii-u:before { + content: "\eb15"; } + +.icofont-windows-lumia:before { + content: "\eb16"; } + +.icofont-wireless-mouse:before { + content: "\eb17"; } + +.icofont-xbox-360:before { + content: "\eb18"; } + +.icofont-arrow-down:before { + content: "\eb19"; } + +.icofont-arrow-left:before { + content: "\eb1a"; } + +.icofont-arrow-right:before { + content: "\eb1b"; } + +.icofont-arrow-up:before { + content: "\eb1c"; } + +.icofont-block-down:before { + content: "\eb1d"; } + +.icofont-block-left:before { + content: "\eb1e"; } + +.icofont-block-right:before { + content: "\eb1f"; } + +.icofont-block-up:before { + content: "\eb20"; } + +.icofont-bubble-down:before { + content: "\eb21"; } + +.icofont-bubble-left:before { + content: "\eb22"; } + +.icofont-bubble-right:before { + content: "\eb23"; } + +.icofont-bubble-up:before { + content: "\eb24"; } + +.icofont-caret-down:before { + content: "\eb25"; } + +.icofont-caret-left:before { + content: "\eb26"; } + +.icofont-caret-right:before { + content: "\eb27"; } + +.icofont-caret-up:before { + content: "\eb28"; } + +.icofont-circled-down:before { + content: "\eb29"; } + +.icofont-circled-left:before { + content: "\eb2a"; } + +.icofont-circled-right:before { + content: "\eb2b"; } + +.icofont-circled-up:before { + content: "\eb2c"; } + +.icofont-collapse:before { + content: "\eb2d"; } + +.icofont-cursor-drag:before { + content: "\eb2e"; } + +.icofont-curved-double-left:before { + content: "\eb2f"; } + +.icofont-curved-double-right:before { + content: "\eb30"; } + +.icofont-curved-down:before { + content: "\eb31"; } + +.icofont-curved-left:before { + content: "\eb32"; } + +.icofont-curved-right:before { + content: "\eb33"; } + +.icofont-curved-up:before { + content: "\eb34"; } + +.icofont-dotted-down:before { + content: "\eb35"; } + +.icofont-dotted-left:before { + content: "\eb36"; } + +.icofont-dotted-right:before { + content: "\eb37"; } + +.icofont-dotted-up:before { + content: "\eb38"; } + +.icofont-double-left:before { + content: "\eb39"; } + +.icofont-double-right:before { + content: "\eb3a"; } + +.icofont-drag:before { + content: "\eb3b"; } + +.icofont-drag1:before { + content: "\eb3c"; } + +.icofont-drag2:before { + content: "\eb3d"; } + +.icofont-drag3:before { + content: "\eb3e"; } + +.icofont-expand-alt:before { + content: "\eb3f"; } + +.icofont-hand-down:before { + content: "\eb40"; } + +.icofont-hand-drag:before { + content: "\eb41"; } + +.icofont-hand-drag1:before { + content: "\eb42"; } + +.icofont-hand-drag2:before { + content: "\eb43"; } + +.icofont-hand-drawn-alt-down:before { + content: "\eb44"; } + +.icofont-hand-drawn-alt-left:before { + content: "\eb45"; } + +.icofont-hand-drawn-alt-right:before { + content: "\eb46"; } + +.icofont-hand-drawn-alt-up:before { + content: "\eb47"; } + +.icofont-hand-drawn-down:before { + content: "\eb48"; } + +.icofont-hand-drawn-left:before { + content: "\eb49"; } + +.icofont-hand-drawn-right:before { + content: "\eb4a"; } + +.icofont-hand-drawn-up:before { + content: "\eb4b"; } + +.icofont-hand-left:before { + content: "\eb4c"; } + +.icofont-hand-right:before { + content: "\eb4d"; } + +.icofont-hand-up:before { + content: "\eb4e"; } + +.icofont-line-block-down:before { + content: "\eb4f"; } + +.icofont-line-block-left:before { + content: "\eb50"; } + +.icofont-line-block-right:before { + content: "\eb51"; } + +.icofont-line-block-up:before { + content: "\eb52"; } + +.icofont-long-arrow-down:before { + content: "\eb53"; } + +.icofont-long-arrow-left:before { + content: "\eb54"; } + +.icofont-long-arrow-right:before { + content: "\eb55"; } + +.icofont-long-arrow-up:before { + content: "\eb56"; } + +.icofont-rounded-collapse:before { + content: "\eb57"; } + +.icofont-rounded-double-left:before { + content: "\eb58"; } + +.icofont-rounded-double-right:before { + content: "\eb59"; } + +.icofont-rounded-down:before { + content: "\eb5a"; } + +.icofont-rounded-expand:before { + content: "\eb5b"; } + +.icofont-rounded-left-down:before { + content: "\eb5c"; } + +.icofont-rounded-left-up:before { + content: "\eb5d"; } + +.icofont-rounded-left:before { + content: "\eb5e"; } + +.icofont-rounded-right-down:before { + content: "\eb5f"; } + +.icofont-rounded-right-up:before { + content: "\eb60"; } + +.icofont-rounded-right:before { + content: "\eb61"; } + +.icofont-rounded-up:before { + content: "\eb62"; } + +.icofont-scroll-bubble-down:before { + content: "\eb63"; } + +.icofont-scroll-bubble-left:before { + content: "\eb64"; } + +.icofont-scroll-bubble-right:before { + content: "\eb65"; } + +.icofont-scroll-bubble-up:before { + content: "\eb66"; } + +.icofont-scroll-double-down:before { + content: "\eb67"; } + +.icofont-scroll-double-left:before { + content: "\eb68"; } + +.icofont-scroll-double-right:before { + content: "\eb69"; } + +.icofont-scroll-double-up:before { + content: "\eb6a"; } + +.icofont-scroll-down:before { + content: "\eb6b"; } + +.icofont-scroll-left:before { + content: "\eb6c"; } + +.icofont-scroll-long-down:before { + content: "\eb6d"; } + +.icofont-scroll-long-left:before { + content: "\eb6e"; } + +.icofont-scroll-long-right:before { + content: "\eb6f"; } + +.icofont-scroll-long-up:before { + content: "\eb70"; } + +.icofont-scroll-right:before { + content: "\eb71"; } + +.icofont-scroll-up:before { + content: "\eb72"; } + +.icofont-simple-down:before { + content: "\eb73"; } + +.icofont-simple-left-down:before { + content: "\eb74"; } + +.icofont-simple-left-up:before { + content: "\eb75"; } + +.icofont-simple-left:before { + content: "\eb76"; } + +.icofont-simple-right-down:before { + content: "\eb77"; } + +.icofont-simple-right-up:before { + content: "\eb78"; } + +.icofont-simple-right:before { + content: "\eb79"; } + +.icofont-simple-up:before { + content: "\eb7a"; } + +.icofont-square-down:before { + content: "\eb7b"; } + +.icofont-square-left:before { + content: "\eb7c"; } + +.icofont-square-right:before { + content: "\eb7d"; } + +.icofont-square-up:before { + content: "\eb7e"; } + +.icofont-stylish-down:before { + content: "\eb7f"; } + +.icofont-stylish-left:before { + content: "\eb80"; } + +.icofont-stylish-right:before { + content: "\eb81"; } + +.icofont-stylish-up:before { + content: "\eb82"; } + +.icofont-swoosh-down:before { + content: "\eb83"; } + +.icofont-swoosh-left:before { + content: "\eb84"; } + +.icofont-swoosh-right:before { + content: "\eb85"; } + +.icofont-swoosh-up:before { + content: "\eb86"; } + +.icofont-thin-double-left:before { + content: "\eb87"; } + +.icofont-thin-double-right:before { + content: "\eb88"; } + +.icofont-thin-down:before { + content: "\eb89"; } + +.icofont-thin-left:before { + content: "\eb8a"; } + +.icofont-thin-right:before { + content: "\eb8b"; } + +.icofont-thin-up:before { + content: "\eb8c"; } + +.icofont-atom:before { + content: "\eb8d"; } + +.icofont-award:before { + content: "\eb8e"; } + +.icofont-bell-alt:before { + content: "\eb8f"; } + +.icofont-book-alt:before { + content: "\eb90"; } + +.icofont-brainstorming:before { + content: "\eb91"; } + +.icofont-certificate-alt-1:before { + content: "\eb92"; } + +.icofont-certificate-alt-2:before { + content: "\eb93"; } + +.icofont-dna-alt-2:before { + content: "\eb94"; } + +.icofont-education:before { + content: "\eb95"; } + +.icofont-electron:before { + content: "\eb96"; } + +.icofont-fountain-pen:before { + content: "\eb97"; } + +.icofont-globe-alt:before { + content: "\eb98"; } + +.icofont-graduate-alt:before { + content: "\eb99"; } + +.icofont-group-students:before { + content: "\eb9a"; } + +.icofont-hat-alt:before { + content: "\eb9b"; } + +.icofont-hat:before { + content: "\eb9c"; } + +.icofont-instrument:before { + content: "\eb9d"; } + +.icofont-lamp-light:before { + content: "\eb9e"; } + +.icofont-microscope-alt:before { + content: "\eb9f"; } + +.icofont-paper:before { + content: "\eba0"; } + +.icofont-pen-alt-4:before { + content: "\eba1"; } + +.icofont-pen-nib:before { + content: "\eba2"; } + +.icofont-pencil-alt-5:before { + content: "\eba3"; } + +.icofont-quill-pen:before { + content: "\eba4"; } + +.icofont-read-book-alt:before { + content: "\eba5"; } + +.icofont-read-book:before { + content: "\eba6"; } + +.icofont-school-bag:before { + content: "\eba7"; } + +.icofont-school-bus:before { + content: "\eba8"; } + +.icofont-student-alt:before { + content: "\eba9"; } + +.icofont-student:before { + content: "\ebaa"; } + +.icofont-teacher:before { + content: "\ebab"; } + +.icofont-test-bulb:before { + content: "\ebac"; } + +.icofont-test-tube-alt:before { + content: "\ebad"; } + +.icofont-university:before { + content: "\ebae"; } + +.icofont-emo-angry:before { + content: "\ebaf"; } + +.icofont-emo-astonished:before { + content: "\ebb0"; } + +.icofont-emo-confounded:before { + content: "\ebb1"; } + +.icofont-emo-confused:before { + content: "\ebb2"; } + +.icofont-emo-crying:before { + content: "\ebb3"; } + +.icofont-emo-dizzy:before { + content: "\ebb4"; } + +.icofont-emo-expressionless:before { + content: "\ebb5"; } + +.icofont-emo-heart-eyes:before { + content: "\ebb6"; } + +.icofont-emo-laughing:before { + content: "\ebb7"; } + +.icofont-emo-nerd-smile:before { + content: "\ebb8"; } + +.icofont-emo-open-mouth:before { + content: "\ebb9"; } + +.icofont-emo-rage:before { + content: "\ebba"; } + +.icofont-emo-rolling-eyes:before { + content: "\ebbb"; } + +.icofont-emo-sad:before { + content: "\ebbc"; } + +.icofont-emo-simple-smile:before { + content: "\ebbd"; } + +.icofont-emo-slightly-smile:before { + content: "\ebbe"; } + +.icofont-emo-smirk:before { + content: "\ebbf"; } + +.icofont-emo-stuck-out-tongue:before { + content: "\ebc0"; } + +.icofont-emo-wink-smile:before { + content: "\ebc1"; } + +.icofont-emo-worried:before { + content: "\ebc2"; } + +.icofont-architecture-alt:before { + content: "\ebc3"; } + +.icofont-architecture:before { + content: "\ebc4"; } + +.icofont-barricade:before { + content: "\ebc5"; } + +.icofont-bricks:before { + content: "\ebc6"; } + +.icofont-calculations:before { + content: "\ebc7"; } + +.icofont-cement-mix:before { + content: "\ebc8"; } + +.icofont-cement-mixer:before { + content: "\ebc9"; } + +.icofont-danger-zone:before { + content: "\ebca"; } + +.icofont-drill:before { + content: "\ebcb"; } + +.icofont-eco-energy:before { + content: "\ebcc"; } + +.icofont-eco-environmen:before { + content: "\ebcd"; } + +.icofont-energy-air:before { + content: "\ebce"; } + +.icofont-energy-oil:before { + content: "\ebcf"; } + +.icofont-energy-savings:before { + content: "\ebd0"; } + +.icofont-energy-solar:before { + content: "\ebd1"; } + +.icofont-energy-water:before { + content: "\ebd2"; } + +.icofont-engineer:before { + content: "\ebd3"; } + +.icofont-fire-extinguisher-alt:before { + content: "\ebd4"; } + +.icofont-fix-tools:before { + content: "\ebd5"; } + +.icofont-glue-oil:before { + content: "\ebd6"; } + +.icofont-hammer-alt:before { + content: "\ebd7"; } + +.icofont-help-robot:before { + content: "\ebd8"; } + +.icofont-industries-alt-1:before { + content: "\ebd9"; } + +.icofont-industries-alt-2:before { + content: "\ebda"; } + +.icofont-industries-alt-3:before { + content: "\ebdb"; } + +.icofont-industries-alt-4:before { + content: "\ebdc"; } + +.icofont-industries-alt-5:before { + content: "\ebdd"; } + +.icofont-industries:before { + content: "\ebde"; } + +.icofont-labour:before { + content: "\ebdf"; } + +.icofont-mining:before { + content: "\ebe0"; } + +.icofont-paint-brush:before { + content: "\ebe1"; } + +.icofont-pollution:before { + content: "\ebe2"; } + +.icofont-power-zone:before { + content: "\ebe3"; } + +.icofont-radio-active:before { + content: "\ebe4"; } + +.icofont-recycle-alt:before { + content: "\ebe5"; } + +.icofont-recycling-man:before { + content: "\ebe6"; } + +.icofont-safety-hat-light:before { + content: "\ebe7"; } + +.icofont-safety-hat:before { + content: "\ebe8"; } + +.icofont-saw:before { + content: "\ebe9"; } + +.icofont-screw-driver:before { + content: "\ebea"; } + +.icofont-settings-alt:before { + content: "\ebeb"; } + +.icofont-tools-alt-1:before { + content: "\ebec"; } + +.icofont-tools-alt-2:before { + content: "\ebed"; } + +.icofont-tools-bag:before { + content: "\ebee"; } + +.icofont-trolley:before { + content: "\ebef"; } + +.icofont-trowel:before { + content: "\ebf0"; } + +.icofont-under-construction-alt:before { + content: "\ebf1"; } + +.icofont-under-construction:before { + content: "\ebf2"; } + +.icofont-vehicle-cement:before { + content: "\ebf3"; } + +.icofont-vehicle-crane:before { + content: "\ebf4"; } + +.icofont-vehicle-delivery-van:before { + content: "\ebf5"; } + +.icofont-vehicle-dozer:before { + content: "\ebf6"; } + +.icofont-vehicle-excavator:before { + content: "\ebf7"; } + +.icofont-vehicle-trucktor:before { + content: "\ebf8"; } + +.icofont-vehicle-wrecking:before { + content: "\ebf9"; } + +.icofont-worker-group:before { + content: "\ebfa"; } + +.icofont-worker:before { + content: "\ebfb"; } + +.icofont-wrench:before { + content: "\ebfc"; } + +.icofont-file-audio:before { + content: "\ebfd"; } + +.icofont-file-avi-mp4:before { + content: "\ebfe"; } + +.icofont-file-bmp:before { + content: "\ebff"; } + +.icofont-file-code:before { + content: "\ec00"; } + +.icofont-file-css:before { + content: "\ec01"; } + +.icofont-file-document:before { + content: "\ec02"; } + +.icofont-file-eps:before { + content: "\ec03"; } + +.icofont-file-excel:before { + content: "\ec04"; } + +.icofont-file-exe:before { + content: "\ec05"; } + +.icofont-file-file:before { + content: "\ec06"; } + +.icofont-file-flv:before { + content: "\ec07"; } + +.icofont-file-gif:before { + content: "\ec08"; } + +.icofont-file-html5:before { + content: "\ec09"; } + +.icofont-file-image:before { + content: "\ec0a"; } + +.icofont-file-iso:before { + content: "\ec0b"; } + +.icofont-file-java:before { + content: "\ec0c"; } + +.icofont-file-javascript:before { + content: "\ec0d"; } + +.icofont-file-jpg:before { + content: "\ec0e"; } + +.icofont-file-midi:before { + content: "\ec0f"; } + +.icofont-file-mov:before { + content: "\ec10"; } + +.icofont-file-mp3:before { + content: "\ec11"; } + +.icofont-file-pdf:before { + content: "\ec12"; } + +.icofont-file-php:before { + content: "\ec13"; } + +.icofont-file-png:before { + content: "\ec14"; } + +.icofont-file-powerpoint:before { + content: "\ec15"; } + +.icofont-file-presentation:before { + content: "\ec16"; } + +.icofont-file-psb:before { + content: "\ec17"; } + +.icofont-file-psd:before { + content: "\ec18"; } + +.icofont-file-python:before { + content: "\ec19"; } + +.icofont-file-ruby:before { + content: "\ec1a"; } + +.icofont-file-spreadsheet:before { + content: "\ec1b"; } + +.icofont-file-sql:before { + content: "\ec1c"; } + +.icofont-file-svg:before { + content: "\ec1d"; } + +.icofont-file-text:before { + content: "\ec1e"; } + +.icofont-file-tiff:before { + content: "\ec1f"; } + +.icofont-file-video:before { + content: "\ec20"; } + +.icofont-file-wave:before { + content: "\ec21"; } + +.icofont-file-wmv:before { + content: "\ec22"; } + +.icofont-file-word:before { + content: "\ec23"; } + +.icofont-file-zip:before { + content: "\ec24"; } + +.icofont-apple:before { + content: "\ec25"; } + +.icofont-arabian-coffee:before { + content: "\ec26"; } + +.icofont-artichoke:before { + content: "\ec27"; } + +.icofont-asparagus:before { + content: "\ec28"; } + +.icofont-avocado:before { + content: "\ec29"; } + +.icofont-baby-food:before { + content: "\ec2a"; } + +.icofont-banana:before { + content: "\ec2b"; } + +.icofont-bbq:before { + content: "\ec2c"; } + +.icofont-beans:before { + content: "\ec2d"; } + +.icofont-beer:before { + content: "\ec2e"; } + +.icofont-bell-pepper-capsicum:before { + content: "\ec2f"; } + +.icofont-birthday-cake:before { + content: "\ec30"; } + +.icofont-bread:before { + content: "\ec31"; } + +.icofont-broccoli:before { + content: "\ec32"; } + +.icofont-burger:before { + content: "\ec33"; } + +.icofont-cabbage:before { + content: "\ec34"; } + +.icofont-carrot:before { + content: "\ec35"; } + +.icofont-cauli-flower:before { + content: "\ec36"; } + +.icofont-cheese:before { + content: "\ec37"; } + +.icofont-chef:before { + content: "\ec38"; } + +.icofont-cherry:before { + content: "\ec39"; } + +.icofont-chicken-fry:before { + content: "\ec3a"; } + +.icofont-chicken:before { + content: "\ec3b"; } + +.icofont-cocktail:before { + content: "\ec3c"; } + +.icofont-coconut:before { + content: "\ec3d"; } + +.icofont-coffee-alt:before { + content: "\ec3e"; } + +.icofont-coffee-mug:before { + content: "\ec3f"; } + +.icofont-coffee-pot:before { + content: "\ec40"; } + +.icofont-cola:before { + content: "\ec41"; } + +.icofont-corn:before { + content: "\ec42"; } + +.icofont-croissant:before { + content: "\ec43"; } + +.icofont-crop-plant:before { + content: "\ec44"; } + +.icofont-cucumber:before { + content: "\ec45"; } + +.icofont-cup-cake:before { + content: "\ec46"; } + +.icofont-dining-table:before { + content: "\ec47"; } + +.icofont-donut:before { + content: "\ec48"; } + +.icofont-egg-plant:before { + content: "\ec49"; } + +.icofont-egg-poached:before { + content: "\ec4a"; } + +.icofont-farmer:before { + content: "\ec4b"; } + +.icofont-farmer1:before { + content: "\ec4c"; } + +.icofont-fast-food:before { + content: "\ec4d"; } + +.icofont-fish:before { + content: "\ec4e"; } + +.icofont-food-basket:before { + content: "\ec4f"; } + +.icofont-food-cart:before { + content: "\ec50"; } + +.icofont-fork-and-knife:before { + content: "\ec51"; } + +.icofont-french-fries:before { + content: "\ec52"; } + +.icofont-fresh-juice:before { + content: "\ec53"; } + +.icofont-fruits:before { + content: "\ec54"; } + +.icofont-grapes:before { + content: "\ec55"; } + +.icofont-honey:before { + content: "\ec56"; } + +.icofont-hot-dog:before { + content: "\ec57"; } + +.icofont-hotel-alt:before { + content: "\ec58"; } + +.icofont-ice-cream-alt:before { + content: "\ec59"; } + +.icofont-ice-cream:before { + content: "\ec5a"; } + +.icofont-ketchup:before { + content: "\ec5b"; } + +.icofont-kiwi:before { + content: "\ec5c"; } + +.icofont-layered-cake:before { + content: "\ec5d"; } + +.icofont-lemon-alt:before { + content: "\ec5e"; } + +.icofont-lobster:before { + content: "\ec5f"; } + +.icofont-mango:before { + content: "\ec60"; } + +.icofont-milk:before { + content: "\ec61"; } + +.icofont-mushroom:before { + content: "\ec62"; } + +.icofont-noodles:before { + content: "\ec63"; } + +.icofont-onion:before { + content: "\ec64"; } + +.icofont-orange:before { + content: "\ec65"; } + +.icofont-pear:before { + content: "\ec66"; } + +.icofont-peas:before { + content: "\ec67"; } + +.icofont-pepper:before { + content: "\ec68"; } + +.icofont-pie-alt:before { + content: "\ec69"; } + +.icofont-pineapple:before { + content: "\ec6a"; } + +.icofont-pizza-slice:before { + content: "\ec6b"; } + +.icofont-pizza:before { + content: "\ec6c"; } + +.icofont-plant:before { + content: "\ec6d"; } + +.icofont-popcorn:before { + content: "\ec6e"; } + +.icofont-potato:before { + content: "\ec6f"; } + +.icofont-pumpkin:before { + content: "\ec70"; } + +.icofont-raddish:before { + content: "\ec71"; } + +.icofont-restaurant-menu:before { + content: "\ec72"; } + +.icofont-restaurant:before { + content: "\ec73"; } + +.icofont-salt-and-pepper:before { + content: "\ec74"; } + +.icofont-sandwich:before { + content: "\ec75"; } + +.icofont-sausage:before { + content: "\ec76"; } + +.icofont-shrimp:before { + content: "\ec77"; } + +.icofont-sof-drinks:before { + content: "\ec78"; } + +.icofont-soup-bowl:before { + content: "\ec79"; } + +.icofont-spoon-and-fork:before { + content: "\ec7a"; } + +.icofont-steak:before { + content: "\ec7b"; } + +.icofont-strawberry:before { + content: "\ec7c"; } + +.icofont-sub-sandwich:before { + content: "\ec7d"; } + +.icofont-sushi:before { + content: "\ec7e"; } + +.icofont-taco:before { + content: "\ec7f"; } + +.icofont-tea-pot:before { + content: "\ec80"; } + +.icofont-tea:before { + content: "\ec81"; } + +.icofont-tomato:before { + content: "\ec82"; } + +.icofont-waiter-alt:before { + content: "\ec83"; } + +.icofont-watermelon:before { + content: "\ec84"; } + +.icofont-wheat:before { + content: "\ec85"; } + +.icofont-abc:before { + content: "\ec86"; } + +.icofont-baby-cloth:before { + content: "\ec87"; } + +.icofont-baby-milk-bottle:before { + content: "\ec88"; } + +.icofont-baby-trolley:before { + content: "\ec89"; } + +.icofont-back-pack:before { + content: "\ec8a"; } + +.icofont-candy:before { + content: "\ec8b"; } + +.icofont-cycling:before { + content: "\ec8c"; } + +.icofont-holding-hands:before { + content: "\ec8d"; } + +.icofont-infant-nipple:before { + content: "\ec8e"; } + +.icofont-kids-scooter:before { + content: "\ec8f"; } + +.icofont-safety-pin:before { + content: "\ec90"; } + +.icofont-teddy-bear:before { + content: "\ec91"; } + +.icofont-toy-ball:before { + content: "\ec92"; } + +.icofont-toy-cat:before { + content: "\ec93"; } + +.icofont-toy-duck:before { + content: "\ec94"; } + +.icofont-toy-elephant:before { + content: "\ec95"; } + +.icofont-toy-hand:before { + content: "\ec96"; } + +.icofont-toy-horse:before { + content: "\ec97"; } + +.icofont-toy-lattu:before { + content: "\ec98"; } + +.icofont-toy-train:before { + content: "\ec99"; } + +.icofont-unique-idea:before { + content: "\ec9a"; } + +.icofont-bag-alt:before { + content: "\ec9b"; } + +.icofont-burglar:before { + content: "\ec9c"; } + +.icofont-cannon-firing:before { + content: "\ec9d"; } + +.icofont-cc-camera:before { + content: "\ec9e"; } + +.icofont-cop-badge:before { + content: "\ec9f"; } + +.icofont-cop:before { + content: "\eca0"; } + +.icofont-court-hammer:before { + content: "\eca1"; } + +.icofont-court:before { + content: "\eca2"; } + +.icofont-finger-print:before { + content: "\eca3"; } + +.icofont-handcuff-alt:before { + content: "\eca4"; } + +.icofont-handcuff:before { + content: "\eca5"; } + +.icofont-investigation:before { + content: "\eca6"; } + +.icofont-investigator:before { + content: "\eca7"; } + +.icofont-jail:before { + content: "\eca8"; } + +.icofont-judge:before { + content: "\eca9"; } + +.icofont-law-alt-1:before { + content: "\ecaa"; } + +.icofont-law-alt-2:before { + content: "\ecab"; } + +.icofont-law-alt-3:before { + content: "\ecac"; } + +.icofont-law-book:before { + content: "\ecad"; } + +.icofont-law-document:before { + content: "\ecae"; } + +.icofont-law:before { + content: "\ecaf"; } + +.icofont-lawyer-alt-1:before { + content: "\ecb0"; } + +.icofont-lawyer-alt-2:before { + content: "\ecb1"; } + +.icofont-lawyer:before { + content: "\ecb2"; } + +.icofont-order:before { + content: "\ecb3"; } + +.icofont-pistol:before { + content: "\ecb4"; } + +.icofont-police-badge:before { + content: "\ecb5"; } + +.icofont-police-cap:before { + content: "\ecb6"; } + +.icofont-police-car-alt-1:before { + content: "\ecb7"; } + +.icofont-police-car-alt-2:before { + content: "\ecb8"; } + +.icofont-police-hat:before { + content: "\ecb9"; } + +.icofont-police-van:before { + content: "\ecba"; } + +.icofont-police:before { + content: "\ecbb"; } + +.icofont-protect:before { + content: "\ecbc"; } + +.icofont-scales:before { + content: "\ecbd"; } + +.icofont-thief-alt:before { + content: "\ecbe"; } + +.icofont-thief:before { + content: "\ecbf"; } + +.icofont-abacus-alt:before { + content: "\ecc0"; } + +.icofont-abacus:before { + content: "\ecc1"; } + +.icofont-angle:before { + content: "\ecc2"; } + +.icofont-calculator-alt-1:before { + content: "\ecc3"; } + +.icofont-calculator-alt-2:before { + content: "\ecc4"; } + +.icofont-circle-ruler-alt:before { + content: "\ecc5"; } + +.icofont-circle-ruler:before { + content: "\ecc6"; } + +.icofont-compass-alt-1:before { + content: "\ecc7"; } + +.icofont-compass-alt-2:before { + content: "\ecc8"; } + +.icofont-compass-alt-3:before { + content: "\ecc9"; } + +.icofont-compass-alt-4:before { + content: "\ecca"; } + +.icofont-degrees-alt-1:before { + content: "\eccb"; } + +.icofont-degrees-alt-2:before { + content: "\eccc"; } + +.icofont-degrees:before { + content: "\eccd"; } + +.icofont-golden-ratio:before { + content: "\ecce"; } + +.icofont-marker-alt-1:before { + content: "\eccf"; } + +.icofont-marker-alt-2:before { + content: "\ecd0"; } + +.icofont-marker-alt-3:before { + content: "\ecd1"; } + +.icofont-mathematical-alt-1:before { + content: "\ecd2"; } + +.icofont-mathematical-alt-2:before { + content: "\ecd3"; } + +.icofont-mathematical:before { + content: "\ecd4"; } + +.icofont-pen-alt-1:before { + content: "\ecd5"; } + +.icofont-pen-alt-2:before { + content: "\ecd6"; } + +.icofont-pen-alt-3:before { + content: "\ecd7"; } + +.icofont-pen-holder-alt-1:before { + content: "\ecd8"; } + +.icofont-pen-holder:before { + content: "\ecd9"; } + +.icofont-pencil-alt-1:before { + content: "\ecda"; } + +.icofont-pencil-alt-2:before { + content: "\ecdb"; } + +.icofont-pencil-alt-3:before { + content: "\ecdc"; } + +.icofont-pencil-alt-4:before { + content: "\ecdd"; } + +.icofont-ruler-alt-1:before { + content: "\ecde"; } + +.icofont-ruler-alt-2:before { + content: "\ecdf"; } + +.icofont-ruler-compass-alt:before { + content: "\ece0"; } + +.icofont-ruler-compass:before { + content: "\ece1"; } + +.icofont-ruler-pencil-alt-1:before { + content: "\ece2"; } + +.icofont-ruler-pencil-alt-2:before { + content: "\ece3"; } + +.icofont-ruler-pencil:before { + content: "\ece4"; } + +.icofont-ruler:before { + content: "\ece5"; } + +.icofont-rulers-alt:before { + content: "\ece6"; } + +.icofont-rulers:before { + content: "\ece7"; } + +.icofont-square-root:before { + content: "\ece8"; } + +.icofont-aids:before { + content: "\ece9"; } + +.icofont-ambulance:before { + content: "\ecea"; } + +.icofont-autism:before { + content: "\eceb"; } + +.icofont-bandage:before { + content: "\ecec"; } + +.icofont-bed-patient:before { + content: "\eced"; } + +.icofont-blind:before { + content: "\ecee"; } + +.icofont-blood-drop:before { + content: "\ecef"; } + +.icofont-blood-test:before { + content: "\ecf0"; } + +.icofont-blood:before { + content: "\ecf1"; } + +.icofont-capsule:before { + content: "\ecf2"; } + +.icofont-crutches:before { + content: "\ecf3"; } + +.icofont-dna-alt-1:before { + content: "\ecf4"; } + +.icofont-dna:before { + content: "\ecf5"; } + +.icofont-doctor-alt:before { + content: "\ecf6"; } + +.icofont-doctor:before { + content: "\ecf7"; } + +.icofont-drug-pack:before { + content: "\ecf8"; } + +.icofont-drug:before { + content: "\ecf9"; } + +.icofont-eye-alt:before { + content: "\ecfa"; } + +.icofont-first-aid-alt:before { + content: "\ecfb"; } + +.icofont-garbage:before { + content: "\ecfc"; } + +.icofont-heart-alt:before { + content: "\ecfd"; } + +.icofont-heartbeat:before { + content: "\ecfe"; } + +.icofont-herbal:before { + content: "\ecff"; } + +.icofont-hospital:before { + content: "\ed00"; } + +.icofont-icu:before { + content: "\ed01"; } + +.icofont-injection-syringe:before { + content: "\ed02"; } + +.icofont-laboratory:before { + content: "\ed03"; } + +.icofont-medical-sign-alt:before { + content: "\ed04"; } + +.icofont-medical-sign:before { + content: "\ed05"; } + +.icofont-nurse-alt:before { + content: "\ed06"; } + +.icofont-nurse:before { + content: "\ed07"; } + +.icofont-nursing-home:before { + content: "\ed08"; } + +.icofont-operation-theater:before { + content: "\ed09"; } + +.icofont-paralysis-disability:before { + content: "\ed0a"; } + +.icofont-pills:before { + content: "\ed0b"; } + +.icofont-prescription:before { + content: "\ed0c"; } + +.icofont-pulse:before { + content: "\ed0d"; } + +.icofont-stethoscope-alt:before { + content: "\ed0e"; } + +.icofont-stethoscope:before { + content: "\ed0f"; } + +.icofont-stretcher:before { + content: "\ed10"; } + +.icofont-surgeon-alt:before { + content: "\ed11"; } + +.icofont-surgeon:before { + content: "\ed12"; } + +.icofont-tablets:before { + content: "\ed13"; } + +.icofont-test-bottle:before { + content: "\ed14"; } + +.icofont-test-tube:before { + content: "\ed15"; } + +.icofont-thermometer-alt:before { + content: "\ed16"; } + +.icofont-tooth:before { + content: "\ed17"; } + +.icofont-xray:before { + content: "\ed18"; } + +.icofont-ui-add:before { + content: "\ed19"; } + +.icofont-ui-alarm:before { + content: "\ed1a"; } + +.icofont-ui-battery:before { + content: "\ed1b"; } + +.icofont-ui-block:before { + content: "\ed1c"; } + +.icofont-ui-bluetooth:before { + content: "\ed1d"; } + +.icofont-ui-brightness:before { + content: "\ed1e"; } + +.icofont-ui-browser:before { + content: "\ed1f"; } + +.icofont-ui-calculator:before { + content: "\ed20"; } + +.icofont-ui-calendar:before { + content: "\ed21"; } + +.icofont-ui-call:before { + content: "\ed22"; } + +.icofont-ui-camera:before { + content: "\ed23"; } + +.icofont-ui-cart:before { + content: "\ed24"; } + +.icofont-ui-cell-phone:before { + content: "\ed25"; } + +.icofont-ui-chat:before { + content: "\ed26"; } + +.icofont-ui-check:before { + content: "\ed27"; } + +.icofont-ui-clip-board:before { + content: "\ed28"; } + +.icofont-ui-clip:before { + content: "\ed29"; } + +.icofont-ui-clock:before { + content: "\ed2a"; } + +.icofont-ui-close:before { + content: "\ed2b"; } + +.icofont-ui-contact-list:before { + content: "\ed2c"; } + +.icofont-ui-copy:before { + content: "\ed2d"; } + +.icofont-ui-cut:before { + content: "\ed2e"; } + +.icofont-ui-delete:before { + content: "\ed2f"; } + +.icofont-ui-dial-phone:before { + content: "\ed30"; } + +.icofont-ui-edit:before { + content: "\ed31"; } + +.icofont-ui-email:before { + content: "\ed32"; } + +.icofont-ui-file:before { + content: "\ed33"; } + +.icofont-ui-fire-wall:before { + content: "\ed34"; } + +.icofont-ui-flash-light:before { + content: "\ed35"; } + +.icofont-ui-flight:before { + content: "\ed36"; } + +.icofont-ui-folder:before { + content: "\ed37"; } + +.icofont-ui-game:before { + content: "\ed38"; } + +.icofont-ui-handicapped:before { + content: "\ed39"; } + +.icofont-ui-head-phone:before { + content: "\ed3a"; } + +.icofont-ui-home:before { + content: "\ed3b"; } + +.icofont-ui-image:before { + content: "\ed3c"; } + +.icofont-ui-keyboard:before { + content: "\ed3d"; } + +.icofont-ui-laoding:before { + content: "\ed3e"; } + +.icofont-ui-lock:before { + content: "\ed3f"; } + +.icofont-ui-love-add:before { + content: "\ed40"; } + +.icofont-ui-love-broken:before { + content: "\ed41"; } + +.icofont-ui-love-remove:before { + content: "\ed42"; } + +.icofont-ui-love:before { + content: "\ed43"; } + +.icofont-ui-map:before { + content: "\ed44"; } + +.icofont-ui-message:before { + content: "\ed45"; } + +.icofont-ui-messaging:before { + content: "\ed46"; } + +.icofont-ui-movie:before { + content: "\ed47"; } + +.icofont-ui-music-player:before { + content: "\ed48"; } + +.icofont-ui-music:before { + content: "\ed49"; } + +.icofont-ui-mute:before { + content: "\ed4a"; } + +.icofont-ui-network:before { + content: "\ed4b"; } + +.icofont-ui-next:before { + content: "\ed4c"; } + +.icofont-ui-note:before { + content: "\ed4d"; } + +.icofont-ui-office:before { + content: "\ed4e"; } + +.icofont-ui-password:before { + content: "\ed4f"; } + +.icofont-ui-pause:before { + content: "\ed50"; } + +.icofont-ui-play-stop:before { + content: "\ed51"; } + +.icofont-ui-play:before { + content: "\ed52"; } + +.icofont-ui-pointer:before { + content: "\ed53"; } + +.icofont-ui-power:before { + content: "\ed54"; } + +.icofont-ui-press:before { + content: "\ed55"; } + +.icofont-ui-previous:before { + content: "\ed56"; } + +.icofont-ui-rate-add:before { + content: "\ed57"; } + +.icofont-ui-rate-blank:before { + content: "\ed58"; } + +.icofont-ui-rate-remove:before { + content: "\ed59"; } + +.icofont-ui-rating:before { + content: "\ed5a"; } + +.icofont-ui-record:before { + content: "\ed5b"; } + +.icofont-ui-remove:before { + content: "\ed5c"; } + +.icofont-ui-reply:before { + content: "\ed5d"; } + +.icofont-ui-rotation:before { + content: "\ed5e"; } + +.icofont-ui-rss:before { + content: "\ed5f"; } + +.icofont-ui-search:before { + content: "\ed60"; } + +.icofont-ui-settings:before { + content: "\ed61"; } + +.icofont-ui-social-link:before { + content: "\ed62"; } + +.icofont-ui-tag:before { + content: "\ed63"; } + +.icofont-ui-text-chat:before { + content: "\ed64"; } + +.icofont-ui-text-loading:before { + content: "\ed65"; } + +.icofont-ui-theme:before { + content: "\ed66"; } + +.icofont-ui-timer:before { + content: "\ed67"; } + +.icofont-ui-touch-phone:before { + content: "\ed68"; } + +.icofont-ui-travel:before { + content: "\ed69"; } + +.icofont-ui-unlock:before { + content: "\ed6a"; } + +.icofont-ui-user-group:before { + content: "\ed6b"; } + +.icofont-ui-user:before { + content: "\ed6c"; } + +.icofont-ui-v-card:before { + content: "\ed6d"; } + +.icofont-ui-video-chat:before { + content: "\ed6e"; } + +.icofont-ui-video-message:before { + content: "\ed6f"; } + +.icofont-ui-video-play:before { + content: "\ed70"; } + +.icofont-ui-video:before { + content: "\ed71"; } + +.icofont-ui-volume:before { + content: "\ed72"; } + +.icofont-ui-weather:before { + content: "\ed73"; } + +.icofont-ui-wifi:before { + content: "\ed74"; } + +.icofont-ui-zoom-in:before { + content: "\ed75"; } + +.icofont-ui-zoom-out:before { + content: "\ed76"; } + +.icofont-cassette-player:before { + content: "\ed77"; } + +.icofont-cassette:before { + content: "\ed78"; } + +.icofont-forward:before { + content: "\ed79"; } + +.icofont-game:before { + content: "\ed7a"; } + +.icofont-guiter:before { + content: "\ed7b"; } + +.icofont-headphone-alt-1:before { + content: "\ed7c"; } + +.icofont-headphone-alt-2:before { + content: "\ed7d"; } + +.icofont-headphone-alt-3:before { + content: "\ed7e"; } + +.icofont-listening:before { + content: "\ed7f"; } + +.icofont-megaphone-alt:before { + content: "\ed80"; } + +.icofont-megaphone:before { + content: "\ed81"; } + +.icofont-movie:before { + content: "\ed82"; } + +.icofont-mp3-player:before { + content: "\ed83"; } + +.icofont-multimedia:before { + content: "\ed84"; } + +.icofont-music-disk:before { + content: "\ed85"; } + +.icofont-music-note:before { + content: "\ed86"; } + +.icofont-pause:before { + content: "\ed87"; } + +.icofont-play-alt-1:before { + content: "\ed88"; } + +.icofont-play-alt-2:before { + content: "\ed89"; } + +.icofont-play-alt-3:before { + content: "\ed8a"; } + +.icofont-play-pause:before { + content: "\ed8b"; } + +.icofont-record:before { + content: "\ed8c"; } + +.icofont-retro-music-disk:before { + content: "\ed8d"; } + +.icofont-rewind:before { + content: "\ed8e"; } + +.icofont-song-notes:before { + content: "\ed8f"; } + +.icofont-sound-wave-alt:before { + content: "\ed90"; } + +.icofont-sound-wave:before { + content: "\ed91"; } + +.icofont-stop:before { + content: "\ed92"; } + +.icofont-video-alt:before { + content: "\ed93"; } + +.icofont-video-cam:before { + content: "\ed94"; } + +.icofont-volume-bar:before { + content: "\ed95"; } + +.icofont-volume-mute:before { + content: "\ed96"; } + +.icofont-youtube-play:before { + content: "\ed97"; } + +.icofont-amazon-alt:before { + content: "\ed98"; } + +.icofont-amazon:before { + content: "\ed99"; } + +.icofont-american-express-alt:before { + content: "\ed9a"; } + +.icofont-american-express:before { + content: "\ed9b"; } + +.icofont-apple-pay-alt:before { + content: "\ed9c"; } + +.icofont-apple-pay:before { + content: "\ed9d"; } + +.icofont-bank-transfer-alt:before { + content: "\ed9e"; } + +.icofont-bank-transfer:before { + content: "\ed9f"; } + +.icofont-braintree-alt:before { + content: "\eda0"; } + +.icofont-braintree:before { + content: "\eda1"; } + +.icofont-cash-on-delivery-alt:before { + content: "\eda2"; } + +.icofont-cash-on-delivery:before { + content: "\eda3"; } + +.icofont-checkout-alt:before { + content: "\eda4"; } + +.icofont-checkout:before { + content: "\eda5"; } + +.icofont-diners-club-alt-1:before { + content: "\eda6"; } + +.icofont-diners-club-alt-2:before { + content: "\eda7"; } + +.icofont-diners-club-alt-3:before { + content: "\eda8"; } + +.icofont-diners-club:before { + content: "\eda9"; } + +.icofont-discover-alt:before { + content: "\edaa"; } + +.icofont-discover:before { + content: "\edab"; } + +.icofont-eway-alt:before { + content: "\edac"; } + +.icofont-eway:before { + content: "\edad"; } + +.icofont-google-wallet-alt-1:before { + content: "\edae"; } + +.icofont-google-wallet-alt-2:before { + content: "\edaf"; } + +.icofont-google-wallet-alt-3:before { + content: "\edb0"; } + +.icofont-google-wallet:before { + content: "\edb1"; } + +.icofont-jcb-alt:before { + content: "\edb2"; } + +.icofont-jcb:before { + content: "\edb3"; } + +.icofont-maestro-alt:before { + content: "\edb4"; } + +.icofont-maestro:before { + content: "\edb5"; } + +.icofont-mastercard-alt:before { + content: "\edb6"; } + +.icofont-mastercard:before { + content: "\edb7"; } + +.icofont-payoneer-alt:before { + content: "\edb8"; } + +.icofont-payoneer:before { + content: "\edb9"; } + +.icofont-paypal-alt:before { + content: "\edba"; } + +.icofont-paypal:before { + content: "\edbb"; } + +.icofont-sage-alt:before { + content: "\edbc"; } + +.icofont-sage:before { + content: "\edbd"; } + +.icofont-skrill-alt:before { + content: "\edbe"; } + +.icofont-skrill:before { + content: "\edbf"; } + +.icofont-stripe-alt:before { + content: "\edc0"; } + +.icofont-stripe:before { + content: "\edc1"; } + +.icofont-visa-alt:before { + content: "\edc2"; } + +.icofont-visa-electron:before { + content: "\edc3"; } + +.icofont-visa:before { + content: "\edc4"; } + +.icofont-western-union-alt:before { + content: "\edc5"; } + +.icofont-western-union:before { + content: "\edc6"; } + +.icofont-boy:before { + content: "\edc7"; } + +.icofont-business-man-alt-1:before { + content: "\edc8"; } + +.icofont-business-man-alt-2:before { + content: "\edc9"; } + +.icofont-business-man-alt-3:before { + content: "\edca"; } + +.icofont-business-man:before { + content: "\edcb"; } + +.icofont-funky-man:before { + content: "\edcc"; } + +.icofont-girl-alt:before { + content: "\edcd"; } + +.icofont-girl:before { + content: "\edce"; } + +.icofont-hotel-boy-alt:before { + content: "\edcf"; } + +.icofont-hotel-boy:before { + content: "\edd0"; } + +.icofont-man-in-glasses:before { + content: "\edd1"; } + +.icofont-user-alt-1:before { + content: "\edd2"; } + +.icofont-user-alt-2:before { + content: "\edd3"; } + +.icofont-user-alt-3:before { + content: "\edd4"; } + +.icofont-user-alt-4:before { + content: "\edd5"; } + +.icofont-user-alt-5:before { + content: "\edd6"; } + +.icofont-user-alt-6:before { + content: "\edd7"; } + +.icofont-user-alt-7:before { + content: "\edd8"; } + +.icofont-user-female:before { + content: "\edd9"; } + +.icofont-user-male:before { + content: "\edda"; } + +.icofont-user-suited:before { + content: "\eddb"; } + +.icofont-user:before { + content: "\eddc"; } + +.icofont-users-alt-1:before { + content: "\eddd"; } + +.icofont-users-alt-2:before { + content: "\edde"; } + +.icofont-users-alt-3:before { + content: "\eddf"; } + +.icofont-users-alt-4:before { + content: "\ede0"; } + +.icofont-users-alt-5:before { + content: "\ede1"; } + +.icofont-users-alt-6:before { + content: "\ede2"; } + +.icofont-users-social:before { + content: "\ede3"; } + +.icofont-users:before { + content: "\ede4"; } + +.icofont-waiter:before { + content: "\ede5"; } + +.icofont-woman-in-glasses:before { + content: "\ede6"; } + +.icofont-document-search:before { + content: "\ede7"; } + +.icofont-folder-search:before { + content: "\ede8"; } + +.icofont-home-search:before { + content: "\ede9"; } + +.icofont-job-search:before { + content: "\edea"; } + +.icofont-map-search:before { + content: "\edeb"; } + +.icofont-restaurant-search:before { + content: "\edec"; } + +.icofont-search-alt-1:before { + content: "\eded"; } + +.icofont-search-alt-2:before { + content: "\edee"; } + +.icofont-search:before { + content: "\edef"; } + +.icofont-stock-search:before { + content: "\edf0"; } + +.icofont-user-search:before { + content: "\edf1"; } + +.icofont-social-aim:before { + content: "\edf2"; } + +.icofont-social-badoo:before { + content: "\edf3"; } + +.icofont-social-bebo:before { + content: "\edf4"; } + +.icofont-social-behance:before { + content: "\edf5"; } + +.icofont-social-blogger:before { + content: "\edf6"; } + +.icofont-social-bootstrap:before { + content: "\edf7"; } + +.icofont-social-brightkite:before { + content: "\edf8"; } + +.icofont-social-cloudapp:before { + content: "\edf9"; } + +.icofont-social-concrete5:before { + content: "\edfa"; } + +.icofont-social-designbump:before { + content: "\edfb"; } + +.icofont-social-designfloat:before { + content: "\edfc"; } + +.icofont-social-deviantart:before { + content: "\edfd"; } + +.icofont-social-digg:before { + content: "\edfe"; } + +.icofont-social-dotcms:before { + content: "\edff"; } + +.icofont-social-dribble:before { + content: "\ee00"; } + +.icofont-social-dropbox:before { + content: "\ee01"; } + +.icofont-brand-drupal:before { + content: "\ee02"; } + +.icofont-social-ebuddy:before { + content: "\ee03"; } + +.icofont-social-ello:before { + content: "\ee04"; } + +.icofont-social-ember:before { + content: "\ee05"; } + +.icofont-social-envato:before { + content: "\ee06"; } + +.icofont-social-evernote:before { + content: "\ee07"; } + +.icofont-social-facebook:before { + content: "\ee08"; } + +.icofont-social-feedburner:before { + content: "\ee09"; } + +.icofont-social-folkd:before { + content: "\ee0a"; } + +.icofont-social-friendfeed:before { + content: "\ee0b"; } + +.icofont-social-ghost:before { + content: "\ee0c"; } + +.icofont-social-github:before { + content: "\ee0d"; } + +.icofont-social-gnome:before { + content: "\ee0e"; } + +.icofont-social-google-buzz:before { + content: "\ee0f"; } + +.icofont-social-google-map:before { + content: "\ee10"; } + +.icofont-social-google-plus:before { + content: "\ee11"; } + +.icofont-social-google-talk:before { + content: "\ee12"; } + +.icofont-social-hype-machine:before { + content: "\ee13"; } + +.icofont-social-instagram:before { + content: "\ee14"; } + +.icofont-brand-joomla:before { + content: "\ee15"; } + +.icofont-social-kickstarter:before { + content: "\ee16"; } + +.icofont-social-line:before { + content: "\ee17"; } + +.icofont-social-linux-mint:before { + content: "\ee18"; } + +.icofont-social-livejournal:before { + content: "\ee19"; } + +.icofont-social-magento:before { + content: "\ee1a"; } + +.icofont-social-meetup:before { + content: "\ee1b"; } + +.icofont-social-mixx:before { + content: "\ee1c"; } + +.icofont-social-newsvine:before { + content: "\ee1d"; } + +.icofont-social-nimbuss:before { + content: "\ee1e"; } + +.icofont-social-opencart:before { + content: "\ee1f"; } + +.icofont-social-oscommerce:before { + content: "\ee20"; } + +.icofont-social-pandora:before { + content: "\ee21"; } + +.icofont-social-picasa:before { + content: "\ee22"; } + +.icofont-social-pinterest:before { + content: "\ee23"; } + +.icofont-social-prestashop:before { + content: "\ee24"; } + +.icofont-social-qik:before { + content: "\ee25"; } + +.icofont-social-readernaut:before { + content: "\ee26"; } + +.icofont-social-reddit:before { + content: "\ee27"; } + +.icofont-social-rss:before { + content: "\ee28"; } + +.icofont-social-shopify:before { + content: "\ee29"; } + +.icofont-social-silverstripe:before { + content: "\ee2a"; } + +.icofont-social-skype:before { + content: "\ee2b"; } + +.icofont-social-slashdot:before { + content: "\ee2c"; } + +.icofont-social-smugmug:before { + content: "\ee2d"; } + +.icofont-social-steam:before { + content: "\ee2e"; } + +.icofont-social-stumbleupon:before { + content: "\ee2f"; } + +.icofont-social-technorati:before { + content: "\ee30"; } + +.icofont-social-telegram:before { + content: "\ee31"; } + +.icofont-social-tinder:before { + content: "\ee32"; } + +.icofont-social-tumblr:before { + content: "\ee33"; } + +.icofont-social-twitter:before { + content: "\ee34"; } + +.icofont-social-typo3:before { + content: "\ee35"; } + +.icofont-social-ubercart:before { + content: "\ee36"; } + +.icofont-social-viber:before { + content: "\ee37"; } + +.icofont-social-viddler:before { + content: "\ee38"; } + +.icofont-social-vimeo:before { + content: "\ee39"; } + +.icofont-social-vine:before { + content: "\ee3a"; } + +.icofont-social-virb:before { + content: "\ee3b"; } + +.icofont-social-virtuemart:before { + content: "\ee3c"; } + +.icofont-social-wechat:before { + content: "\ee3d"; } + +.icofont-brand-wordpress:before { + content: "\ee3e"; } + +.icofont-social-xing:before { + content: "\ee3f"; } + +.icofont-social-yahoo:before { + content: "\ee40"; } + +.icofont-social-yelp:before { + content: "\ee41"; } + +.icofont-social-zencart:before { + content: "\ee42"; } + +.icofont-badminton-birdie:before { + content: "\ee43"; } + +.icofont-baseball:before { + content: "\ee44"; } + +.icofont-baseballer:before { + content: "\ee45"; } + +.icofont-basketball-hoop:before { + content: "\ee46"; } + +.icofont-basketball:before { + content: "\ee47"; } + +.icofont-billiard-ball:before { + content: "\ee48"; } + +.icofont-boot-alt-1:before { + content: "\ee49"; } + +.icofont-boot-alt-2:before { + content: "\ee4a"; } + +.icofont-bowling-alt:before { + content: "\ee4b"; } + +.icofont-bowling:before { + content: "\ee4c"; } + +.icofont-canoe:before { + content: "\ee4d"; } + +.icofont-cheer-leader:before { + content: "\ee4e"; } + +.icofont-climbing:before { + content: "\ee4f"; } + +.icofont-corner:before { + content: "\ee50"; } + +.icofont-cyclist:before { + content: "\ee51"; } + +.icofont-dumbbell-alt:before { + content: "\ee52"; } + +.icofont-dumbbell:before { + content: "\ee53"; } + +.icofont-field-alt:before { + content: "\ee54"; } + +.icofont-field:before { + content: "\ee55"; } + +.icofont-football-alt:before { + content: "\ee56"; } + +.icofont-foul:before { + content: "\ee57"; } + +.icofont-goal-keeper:before { + content: "\ee58"; } + +.icofont-goal:before { + content: "\ee59"; } + +.icofont-golf-alt:before { + content: "\ee5a"; } + +.icofont-golf-bag:before { + content: "\ee5b"; } + +.icofont-golf-field:before { + content: "\ee5c"; } + +.icofont-golf:before { + content: "\ee5d"; } + +.icofont-golfer:before { + content: "\ee5e"; } + +.icofont-gym-alt-1:before { + content: "\ee5f"; } + +.icofont-gym-alt-2:before { + content: "\ee60"; } + +.icofont-gym-alt-3:before { + content: "\ee61"; } + +.icofont-gym:before { + content: "\ee62"; } + +.icofont-hand-grippers:before { + content: "\ee63"; } + +.icofont-heart-beat-alt:before { + content: "\ee64"; } + +.icofont-helmet:before { + content: "\ee65"; } + +.icofont-hockey-alt:before { + content: "\ee66"; } + +.icofont-hockey:before { + content: "\ee67"; } + +.icofont-ice-skate:before { + content: "\ee68"; } + +.icofont-jersey-alt:before { + content: "\ee69"; } + +.icofont-jersey:before { + content: "\ee6a"; } + +.icofont-jumping:before { + content: "\ee6b"; } + +.icofont-kick:before { + content: "\ee6c"; } + +.icofont-leg:before { + content: "\ee6d"; } + +.icofont-match-review:before { + content: "\ee6e"; } + +.icofont-medal-alt:before { + content: "\ee6f"; } + +.icofont-muscle-alt:before { + content: "\ee70"; } + +.icofont-muscle:before { + content: "\ee71"; } + +.icofont-offside:before { + content: "\ee72"; } + +.icofont-olympic-logo:before { + content: "\ee73"; } + +.icofont-olympic:before { + content: "\ee74"; } + +.icofont-padding:before { + content: "\ee75"; } + +.icofont-penalty-card:before { + content: "\ee76"; } + +.icofont-racer:before { + content: "\ee77"; } + +.icofont-racing-car:before { + content: "\ee78"; } + +.icofont-racing-flag-alt:before { + content: "\ee79"; } + +.icofont-racing-flag:before { + content: "\ee7a"; } + +.icofont-racings-wheel:before { + content: "\ee7b"; } + +.icofont-referee:before { + content: "\ee7c"; } + +.icofont-refree-jersey:before { + content: "\ee7d"; } + +.icofont-result:before { + content: "\ee7e"; } + +.icofont-rugby-ball:before { + content: "\ee7f"; } + +.icofont-rugby-player:before { + content: "\ee80"; } + +.icofont-rugby:before { + content: "\ee81"; } + +.icofont-runner-alt-1:before { + content: "\ee82"; } + +.icofont-runner-alt-2:before { + content: "\ee83"; } + +.icofont-runner:before { + content: "\ee84"; } + +.icofont-score-board:before { + content: "\ee85"; } + +.icofont-skiing-man:before { + content: "\ee86"; } + +.icofont-skydiving-goggles:before { + content: "\ee87"; } + +.icofont-snow-mobile:before { + content: "\ee88"; } + +.icofont-steering:before { + content: "\ee89"; } + +.icofont-substitute:before { + content: "\ee8a"; } + +.icofont-swimmer:before { + content: "\ee8b"; } + +.icofont-table-tennis:before { + content: "\ee8c"; } + +.icofont-team-alt:before { + content: "\ee8d"; } + +.icofont-team:before { + content: "\ee8e"; } + +.icofont-tennis-player:before { + content: "\ee8f"; } + +.icofont-tennis:before { + content: "\ee90"; } + +.icofont-time:before { + content: "\ee91"; } + +.icofont-track:before { + content: "\ee92"; } + +.icofont-tracking:before { + content: "\ee93"; } + +.icofont-trophy-alt:before { + content: "\ee94"; } + +.icofont-trophy:before { + content: "\ee95"; } + +.icofont-volleyball-alt:before { + content: "\ee96"; } + +.icofont-volleyball-fire:before { + content: "\ee97"; } + +.icofont-volleyball:before { + content: "\ee98"; } + +.icofont-water-bottle:before { + content: "\ee99"; } + +.icofont-whisle:before { + content: "\ee9a"; } + +.icofont-win-trophy:before { + content: "\ee9b"; } + +.icofont-align-center:before { + content: "\ee9c"; } + +.icofont-align-left:before { + content: "\ee9d"; } + +.icofont-align-right:before { + content: "\ee9e"; } + +.icofont-all-caps:before { + content: "\ee9f"; } + +.icofont-bold:before { + content: "\eea0"; } + +.icofont-brush:before { + content: "\eea1"; } + +.icofont-clip-board:before { + content: "\eea2"; } + +.icofont-code-alt:before { + content: "\eea3"; } + +.icofont-color-bucket:before { + content: "\eea4"; } + +.icofont-color-picker:before { + content: "\eea5"; } + +.icofont-copy-alt:before { + content: "\eea6"; } + +.icofont-copy-black:before { + content: "\eea7"; } + +.icofont-cut:before { + content: "\eea8"; } + +.icofont-delete-alt:before { + content: "\eea9"; } + +.icofont-edit-alt:before { + content: "\eeaa"; } + +.icofont-eraser-alt:before { + content: "\eeab"; } + +.icofont-file-alt:before { + content: "\eeac"; } + +.icofont-font:before { + content: "\eead"; } + +.icofont-header:before { + content: "\eeae"; } + +.icofont-indent:before { + content: "\eeaf"; } + +.icofont-italic-alt:before { + content: "\eeb0"; } + +.icofont-justify-all:before { + content: "\eeb1"; } + +.icofont-justify-center:before { + content: "\eeb2"; } + +.icofont-justify-left:before { + content: "\eeb3"; } + +.icofont-justify-right:before { + content: "\eeb4"; } + +.icofont-line-height:before { + content: "\eeb5"; } + +.icofont-link-alt:before { + content: "\eeb6"; } + +.icofont-listine-dots:before { + content: "\eeb7"; } + +.icofont-listing-box:before { + content: "\eeb8"; } + +.icofont-listing-number:before { + content: "\eeb9"; } + +.icofont-marker:before { + content: "\eeba"; } + +.icofont-outdent:before { + content: "\eebb"; } + +.icofont-paper-clip:before { + content: "\eebc"; } + +.icofont-paragraph:before { + content: "\eebd"; } + +.icofont-pin:before { + content: "\eebe"; } + +.icofont-printer:before { + content: "\eebf"; } + +.icofont-redo:before { + content: "\eec0"; } + +.icofont-rotation:before { + content: "\eec1"; } + +.icofont-save:before { + content: "\eec2"; } + +.icofont-small-cap:before { + content: "\eec3"; } + +.icofont-strike-through:before { + content: "\eec4"; } + +.icofont-sub-listing:before { + content: "\eec5"; } + +.icofont-subscript:before { + content: "\eec6"; } + +.icofont-superscript:before { + content: "\eec7"; } + +.icofont-table:before { + content: "\eec8"; } + +.icofont-text-height:before { + content: "\eec9"; } + +.icofont-text-width:before { + content: "\eeca"; } + +.icofont-trash:before { + content: "\eecb"; } + +.icofont-underline:before { + content: "\eecc"; } + +.icofont-undo:before { + content: "\eecd"; } + +.icofont-unlink:before { + content: "\eece"; } + +.icofont-air-balloon:before { + content: "\eecf"; } + +.icofont-airplane-alt:before { + content: "\eed0"; } + +.icofont-airplane:before { + content: "\eed1"; } + +.icofont-ambulance-crescent:before { + content: "\eed2"; } + +.icofont-ambulance-cross:before { + content: "\eed3"; } + +.icofont-articulated-truck:before { + content: "\eed4"; } + +.icofont-auto-rickshaw:before { + content: "\eed5"; } + +.icofont-bicycle-alt-1:before { + content: "\eed6"; } + +.icofont-bicycle-alt-2:before { + content: "\eed7"; } + +.icofont-bull-dozer:before { + content: "\eed8"; } + +.icofont-bus-alt-1:before { + content: "\eed9"; } + +.icofont-bus-alt-2:before { + content: "\eeda"; } + +.icofont-bus-alt-3:before { + content: "\eedb"; } + +.icofont-cable-car:before { + content: "\eedc"; } + +.icofont-car-alt-1:before { + content: "\eedd"; } + +.icofont-car-alt-2:before { + content: "\eede"; } + +.icofont-car-alt-3:before { + content: "\eedf"; } + +.icofont-car-alt-4:before { + content: "\eee0"; } + +.icofont-concrete-mixer:before { + content: "\eee1"; } + +.icofont-delivery-time:before { + content: "\eee2"; } + +.icofont-excavator:before { + content: "\eee3"; } + +.icofont-fast-delivery:before { + content: "\eee4"; } + +.icofont-fire-truck-alt:before { + content: "\eee5"; } + +.icofont-fire-truck:before { + content: "\eee6"; } + +.icofont-fork-lift:before { + content: "\eee7"; } + +.icofont-free-delivery:before { + content: "\eee8"; } + +.icofont-golf-cart:before { + content: "\eee9"; } + +.icofont-helicopter:before { + content: "\eeea"; } + +.icofont-motor-bike-alt:before { + content: "\eeeb"; } + +.icofont-motor-bike:before { + content: "\eeec"; } + +.icofont-motor-biker:before { + content: "\eeed"; } + +.icofont-oil-truck:before { + content: "\eeee"; } + +.icofont-police-car:before { + content: "\eeef"; } + +.icofont-rickshaw:before { + content: "\eef0"; } + +.icofont-rocket-alt-1:before { + content: "\eef1"; } + +.icofont-rocket-alt-2:before { + content: "\eef2"; } + +.icofont-sail-boat:before { + content: "\eef3"; } + +.icofont-scooter:before { + content: "\eef4"; } + +.icofont-sea-plane:before { + content: "\eef5"; } + +.icofont-ship-alt:before { + content: "\eef6"; } + +.icofont-speed-boat:before { + content: "\eef7"; } + +.icofont-taxi:before { + content: "\eef8"; } + +.icofont-tow-truck:before { + content: "\eef9"; } + +.icofont-tractor:before { + content: "\eefa"; } + +.icofont-traffic-light:before { + content: "\eefb"; } + +.icofont-train-line:before { + content: "\eefc"; } + +.icofont-train-steam:before { + content: "\eefd"; } + +.icofont-tram:before { + content: "\eefe"; } + +.icofont-truck-alt:before { + content: "\eeff"; } + +.icofont-truck-loaded:before { + content: "\ef00"; } + +.icofont-truck:before { + content: "\ef01"; } + +.icofont-van-alt:before { + content: "\ef02"; } + +.icofont-van:before { + content: "\ef03"; } + +.icofont-yacht:before { + content: "\ef04"; } + +.icofont-5-star-hotel:before { + content: "\ef05"; } + +.icofont-anchor-alt:before { + content: "\ef06"; } + +.icofont-beach-bed:before { + content: "\ef07"; } + +.icofont-camping-vest:before { + content: "\ef08"; } + +.icofont-coconut-alt:before { + content: "\ef09"; } + +.icofont-direction-sign:before { + content: "\ef0a"; } + +.icofont-hill-side:before { + content: "\ef0b"; } + +.icofont-island-alt:before { + content: "\ef0c"; } + +.icofont-long-drive:before { + content: "\ef0d"; } + +.icofont-map-pins:before { + content: "\ef0e"; } + +.icofont-plane-ticket:before { + content: "\ef0f"; } + +.icofont-sail-boat-alt-1:before { + content: "\ef10"; } + +.icofont-sail-boat-alt-2:before { + content: "\ef11"; } + +.icofont-sandals-female:before { + content: "\ef12"; } + +.icofont-sandals-male:before { + content: "\ef13"; } + +.icofont-travelling:before { + content: "\ef14"; } + +.icofont-breakdown:before { + content: "\ef15"; } + +.icofont-celsius:before { + content: "\ef16"; } + +.icofont-clouds:before { + content: "\ef17"; } + +.icofont-cloudy:before { + content: "\ef18"; } + +.icofont-compass-alt:before { + content: "\ef19"; } + +.icofont-dust:before { + content: "\ef1a"; } + +.icofont-eclipse:before { + content: "\ef1b"; } + +.icofont-fahrenheit:before { + content: "\ef1c"; } + +.icofont-forest-fire:before { + content: "\ef1d"; } + +.icofont-full-night:before { + content: "\ef1e"; } + +.icofont-full-sunny:before { + content: "\ef1f"; } + +.icofont-hail-night:before { + content: "\ef20"; } + +.icofont-hail-rainy-night:before { + content: "\ef21"; } + +.icofont-hail-rainy-sunny:before { + content: "\ef22"; } + +.icofont-hail-rainy:before { + content: "\ef23"; } + +.icofont-hail-sunny:before { + content: "\ef24"; } + +.icofont-hail-thunder-night:before { + content: "\ef25"; } + +.icofont-hail-thunder-sunny:before { + content: "\ef26"; } + +.icofont-hail-thunder:before { + content: "\ef27"; } + +.icofont-hail:before { + content: "\ef28"; } + +.icofont-hill-night:before { + content: "\ef29"; } + +.icofont-hill-sunny:before { + content: "\ef2a"; } + +.icofont-hill:before { + content: "\ef2b"; } + +.icofont-hurricane:before { + content: "\ef2c"; } + +.icofont-island:before { + content: "\ef2d"; } + +.icofont-meteor:before { + content: "\ef2e"; } + +.icofont-night:before { + content: "\ef2f"; } + +.icofont-rainy-night:before { + content: "\ef30"; } + +.icofont-rainy-sunny:before { + content: "\ef31"; } + +.icofont-rainy-thunder:before { + content: "\ef32"; } + +.icofont-rainy:before { + content: "\ef33"; } + +.icofont-showy-night-hail:before { + content: "\ef34"; } + +.icofont-snow-temp:before { + content: "\ef35"; } + +.icofont-snow:before { + content: "\ef36"; } + +.icofont-snowy-hail:before { + content: "\ef37"; } + +.icofont-snowy-night-rainy:before { + content: "\ef38"; } + +.icofont-snowy-night:before { + content: "\ef39"; } + +.icofont-snowy-rainy:before { + content: "\ef3a"; } + +.icofont-snowy-sunny-hail:before { + content: "\ef3b"; } + +.icofont-snowy-sunny-rainy:before { + content: "\ef3c"; } + +.icofont-snowy-sunny:before { + content: "\ef3d"; } + +.icofont-snowy-thunder-night:before { + content: "\ef3e"; } + +.icofont-snowy-thunder-sunny:before { + content: "\ef3f"; } + +.icofont-snowy-thunder:before { + content: "\ef40"; } + +.icofont-snowy-windy-night:before { + content: "\ef41"; } + +.icofont-snowy-windy-sunny:before { + content: "\ef42"; } + +.icofont-snowy-windy:before { + content: "\ef43"; } + +.icofont-snowy:before { + content: "\ef44"; } + +.icofont-sun-alt:before { + content: "\ef45"; } + +.icofont-sun-rise:before { + content: "\ef46"; } + +.icofont-sun-set:before { + content: "\ef47"; } + +.icofont-sunny-day-temp:before { + content: "\ef48"; } + +.icofont-sunny:before { + content: "\ef49"; } + +.icofont-thermometer:before { + content: "\ef4a"; } + +.icofont-thinder-light:before { + content: "\ef4b"; } + +.icofont-tornado:before { + content: "\ef4c"; } + +.icofont-umbrella-alt:before { + content: "\ef4d"; } + +.icofont-volcano:before { + content: "\ef4e"; } + +.icofont-wave:before { + content: "\ef4f"; } + +.icofont-wind-scale-0:before { + content: "\ef50"; } + +.icofont-wind-scale-1:before { + content: "\ef51"; } + +.icofont-wind-scale-2:before { + content: "\ef52"; } + +.icofont-wind-scale-3:before { + content: "\ef53"; } + +.icofont-wind-scale-4:before { + content: "\ef54"; } + +.icofont-wind-scale-5:before { + content: "\ef55"; } + +.icofont-wind-scale-6:before { + content: "\ef56"; } + +.icofont-wind-scale-7:before { + content: "\ef57"; } + +.icofont-wind-scale-8:before { + content: "\ef58"; } + +.icofont-wind-scale-9:before { + content: "\ef59"; } + +.icofont-wind-scale-10:before { + content: "\ef5a"; } + +.icofont-wind-scale-11:before { + content: "\ef5b"; } + +.icofont-wind-scale-12:before { + content: "\ef5c"; } + +.icofont-wind-waves:before { + content: "\ef5d"; } + +.icofont-wind:before { + content: "\ef5e"; } + +.icofont-windy-hail:before { + content: "\ef5f"; } + +.icofont-windy-night:before { + content: "\ef60"; } + +.icofont-windy-raining:before { + content: "\ef61"; } + +.icofont-windy-sunny:before { + content: "\ef62"; } + +.icofont-windy-thunder-raining:before { + content: "\ef63"; } + +.icofont-windy-thunder:before { + content: "\ef64"; } + +.icofont-windy:before { + content: "\ef65"; } + +.icofont-addons:before { + content: "\ef66"; } + +.icofont-address-book:before { + content: "\ef67"; } + +.icofont-adjust:before { + content: "\ef68"; } + +.icofont-alarm:before { + content: "\ef69"; } + +.icofont-anchor:before { + content: "\ef6a"; } + +.icofont-archive:before { + content: "\ef6b"; } + +.icofont-at:before { + content: "\ef6c"; } + +.icofont-attachment:before { + content: "\ef6d"; } + +.icofont-audio:before { + content: "\ef6e"; } + +.icofont-auto-mobile:before { + content: "\ef6f"; } + +.icofont-automation:before { + content: "\ef70"; } + +.icofont-baby:before { + content: "\ef71"; } + +.icofont-badge:before { + content: "\ef72"; } + +.icofont-bag:before { + content: "\ef73"; } + +.icofont-ban:before { + content: "\ef74"; } + +.icofont-bank:before { + content: "\ef75"; } + +.icofont-bar-code:before { + content: "\ef76"; } + +.icofont-bars:before { + content: "\ef77"; } + +.icofont-battery-empty:before { + content: "\ef78"; } + +.icofont-battery-full:before { + content: "\ef79"; } + +.icofont-battery-half:before { + content: "\ef7a"; } + +.icofont-battery-low:before { + content: "\ef7b"; } + +.icofont-beach:before { + content: "\ef7c"; } + +.icofont-beaker:before { + content: "\ef7d"; } + +.icofont-bear:before { + content: "\ef7e"; } + +.icofont-beard:before { + content: "\ef7f"; } + +.icofont-bed:before { + content: "\ef80"; } + +.icofont-bell:before { + content: "\ef81"; } + +.icofont-beverage:before { + content: "\ef82"; } + +.icofont-bicycle:before { + content: "\ef83"; } + +.icofont-bill:before { + content: "\ef84"; } + +.icofont-bin:before { + content: "\ef85"; } + +.icofont-binary:before { + content: "\ef86"; } + +.icofont-binoculars:before { + content: "\ef87"; } + +.icofont-bird:before { + content: "\ef88"; } + +.icofont-birds:before { + content: "\ef89"; } + +.icofont-black-board:before { + content: "\ef8a"; } + +.icofont-bluetooth:before { + content: "\ef8b"; } + +.icofont-bolt:before { + content: "\ef8c"; } + +.icofont-bomb:before { + content: "\ef8d"; } + +.icofont-book-mark:before { + content: "\ef8e"; } + +.icofont-book:before { + content: "\ef8f"; } + +.icofont-boot:before { + content: "\ef90"; } + +.icofont-box:before { + content: "\ef91"; } + +.icofont-brain:before { + content: "\ef92"; } + +.icofont-briefcase:before { + content: "\ef93"; } + +.icofont-broken:before { + content: "\ef94"; } + +.icofont-bucket:before { + content: "\ef95"; } + +.icofont-bucket1:before { + content: "\ef96"; } + +.icofont-bucket2:before { + content: "\ef97"; } + +.icofont-bug:before { + content: "\ef98"; } + +.icofont-building:before { + content: "\ef99"; } + +.icofont-bullet:before { + content: "\ef9a"; } + +.icofont-bullhorn:before { + content: "\ef9b"; } + +.icofont-bullseye:before { + content: "\ef9c"; } + +.icofont-bus:before { + content: "\ef9d"; } + +.icofont-butterfly:before { + content: "\ef9e"; } + +.icofont-cab:before { + content: "\ef9f"; } + +.icofont-calculator:before { + content: "\efa0"; } + +.icofont-calendar:before { + content: "\efa1"; } + +.icofont-camera-alt:before { + content: "\efa2"; } + +.icofont-camera:before { + content: "\efa3"; } + +.icofont-car:before { + content: "\efa4"; } + +.icofont-card:before { + content: "\efa5"; } + +.icofont-cart:before { + content: "\efa6"; } + +.icofont-cc:before { + content: "\efa7"; } + +.icofont-certificate:before { + content: "\efa8"; } + +.icofont-charging:before { + content: "\efa9"; } + +.icofont-chat:before { + content: "\efaa"; } + +.icofont-check-alt:before { + content: "\efab"; } + +.icofont-check-circled:before { + content: "\efac"; } + +.icofont-check:before { + content: "\efad"; } + +.icofont-checked:before { + content: "\efae"; } + +.icofont-children-care:before { + content: "\efaf"; } + +.icofont-clock-time:before { + content: "\efb0"; } + +.icofont-close-circled:before { + content: "\efb1"; } + +.icofont-close-line-circled:before { + content: "\efb2"; } + +.icofont-close-line-squared-alt:before { + content: "\efb3"; } + +.icofont-close-line-squared:before { + content: "\efb4"; } + +.icofont-close-line:before { + content: "\efb5"; } + +.icofont-close-squared-alt:before { + content: "\efb6"; } + +.icofont-close-squared:before { + content: "\efb7"; } + +.icofont-close:before { + content: "\efb8"; } + +.icofont-cloud-download:before { + content: "\efb9"; } + +.icofont-cloud-refresh:before { + content: "\efba"; } + +.icofont-cloud-upload:before { + content: "\efbb"; } + +.icofont-cloud:before { + content: "\efbc"; } + +.icofont-code-not-allowed:before { + content: "\efbd"; } + +.icofont-code:before { + content: "\efbe"; } + +.icofont-coffee-cup:before { + content: "\efbf"; } + +.icofont-comment:before { + content: "\efc0"; } + +.icofont-compass:before { + content: "\efc1"; } + +.icofont-computer:before { + content: "\efc2"; } + +.icofont-connection:before { + content: "\efc3"; } + +.icofont-console:before { + content: "\efc4"; } + +.icofont-contacts:before { + content: "\efc5"; } + +.icofont-contrast:before { + content: "\efc6"; } + +.icofont-copy:before { + content: "\efc7"; } + +.icofont-copyright:before { + content: "\efc8"; } + +.icofont-credit-card:before { + content: "\efc9"; } + +.icofont-crop:before { + content: "\efca"; } + +.icofont-crown:before { + content: "\efcb"; } + +.icofont-cube:before { + content: "\efcc"; } + +.icofont-cubes:before { + content: "\efcd"; } + +.icofont-culinary:before { + content: "\efce"; } + +.icofont-dashboard-web:before { + content: "\efcf"; } + +.icofont-dashboard:before { + content: "\efd0"; } + +.icofont-data:before { + content: "\efd1"; } + +.icofont-database-add:before { + content: "\efd2"; } + +.icofont-database-locked:before { + content: "\efd3"; } + +.icofont-database-remove:before { + content: "\efd4"; } + +.icofont-database:before { + content: "\efd5"; } + +.icofont-delete:before { + content: "\efd6"; } + +.icofont-diamond:before { + content: "\efd7"; } + +.icofont-dice:before { + content: "\efd8"; } + +.icofont-disabled:before { + content: "\efd9"; } + +.icofont-disc:before { + content: "\efda"; } + +.icofont-diskette:before { + content: "\efdb"; } + +.icofont-document-folder:before { + content: "\efdc"; } + +.icofont-download-alt:before { + content: "\efdd"; } + +.icofont-download:before { + content: "\efde"; } + +.icofont-downloaded:before { + content: "\efdf"; } + +.icofont-earth:before { + content: "\efe0"; } + +.icofont-ebook:before { + content: "\efe1"; } + +.icofont-edit:before { + content: "\efe2"; } + +.icofont-eject:before { + content: "\efe3"; } + +.icofont-email:before { + content: "\efe4"; } + +.icofont-envelope-open:before { + content: "\efe5"; } + +.icofont-envelope:before { + content: "\efe6"; } + +.icofont-eraser:before { + content: "\efe7"; } + +.icofont-error:before { + content: "\efe8"; } + +.icofont-exchange:before { + content: "\efe9"; } + +.icofont-exclamation-circle:before { + content: "\efea"; } + +.icofont-exclamation-square:before { + content: "\efeb"; } + +.icofont-exclamation-tringle:before { + content: "\efec"; } + +.icofont-exclamation:before { + content: "\efed"; } + +.icofont-exit:before { + content: "\efee"; } + +.icofont-expand:before { + content: "\efef"; } + +.icofont-external-link:before { + content: "\eff0"; } + +.icofont-external:before { + content: "\eff1"; } + +.icofont-eye-blocked:before { + content: "\eff2"; } + +.icofont-eye-dropper:before { + content: "\eff3"; } + +.icofont-eye:before { + content: "\eff4"; } + +.icofont-favourite:before { + content: "\eff5"; } + +.icofont-fax:before { + content: "\eff6"; } + +.icofont-female:before { + content: "\eff7"; } + +.icofont-file:before { + content: "\eff8"; } + +.icofont-film:before { + content: "\eff9"; } + +.icofont-filter:before { + content: "\effa"; } + +.icofont-fire-burn:before { + content: "\effb"; } + +.icofont-fire-extinguisher:before { + content: "\effc"; } + +.icofont-fire:before { + content: "\effd"; } + +.icofont-first-aid:before { + content: "\effe"; } + +.icofont-flag-alt-1:before { + content: "\efff"; } + +.icofont-flag-alt-2:before { + content: "\f000"; } + +.icofont-flag:before { + content: "\f001"; } + +.icofont-flash-light:before { + content: "\f002"; } + +.icofont-flash:before { + content: "\f003"; } + +.icofont-flask:before { + content: "\f004"; } + +.icofont-focus:before { + content: "\f005"; } + +.icofont-folder-open:before { + content: "\f006"; } + +.icofont-folder:before { + content: "\f007"; } + +.icofont-foot-print:before { + content: "\f008"; } + +.icofont-football-american:before { + content: "\f009"; } + +.icofont-football:before { + content: "\f00a"; } + +.icofont-game-console:before { + content: "\f00b"; } + +.icofont-game-pad:before { + content: "\f00c"; } + +.icofont-gavel:before { + content: "\f00d"; } + +.icofont-gear:before { + content: "\f00e"; } + +.icofont-gears:before { + content: "\f00f"; } + +.icofont-gift:before { + content: "\f010"; } + +.icofont-glass:before { + content: "\f011"; } + +.icofont-globe:before { + content: "\f012"; } + +.icofont-graduate:before { + content: "\f013"; } + +.icofont-graffiti:before { + content: "\f014"; } + +.icofont-grocery:before { + content: "\f015"; } + +.icofont-group:before { + content: "\f016"; } + +.icofont-hammer:before { + content: "\f017"; } + +.icofont-hand:before { + content: "\f018"; } + +.icofont-hanger:before { + content: "\f019"; } + +.icofont-hard-disk:before { + content: "\f01a"; } + +.icofont-headphone:before { + content: "\f01b"; } + +.icofont-heart-beat:before { + content: "\f01c"; } + +.icofont-heart:before { + content: "\f01d"; } + +.icofont-history:before { + content: "\f01e"; } + +.icofont-home:before { + content: "\f01f"; } + +.icofont-horn:before { + content: "\f020"; } + +.icofont-hotel:before { + content: "\f021"; } + +.icofont-hour-glass:before { + content: "\f022"; } + +.icofont-id:before { + content: "\f023"; } + +.icofont-image:before { + content: "\f024"; } + +.icofont-inbox:before { + content: "\f025"; } + +.icofont-infinite:before { + content: "\f026"; } + +.icofont-info-circle:before { + content: "\f027"; } + +.icofont-info-square:before { + content: "\f028"; } + +.icofont-info:before { + content: "\f029"; } + +.icofont-institution:before { + content: "\f02a"; } + +.icofont-interface:before { + content: "\f02b"; } + +.icofont-invisible:before { + content: "\f02c"; } + +.icofont-italic:before { + content: "\f02d"; } + +.icofont-jacket:before { + content: "\f02e"; } + +.icofont-jar:before { + content: "\f02f"; } + +.icofont-jewlery:before { + content: "\f030"; } + +.icofont-karate:before { + content: "\f031"; } + +.icofont-key-hole:before { + content: "\f032"; } + +.icofont-key:before { + content: "\f033"; } + +.icofont-keyboard:before { + content: "\f034"; } + +.icofont-kid:before { + content: "\f035"; } + +.icofont-label:before { + content: "\f036"; } + +.icofont-lamp:before { + content: "\f037"; } + +.icofont-laptop:before { + content: "\f038"; } + +.icofont-layers:before { + content: "\f039"; } + +.icofont-layout:before { + content: "\f03a"; } + +.icofont-leaf:before { + content: "\f03b"; } + +.icofont-leaflet:before { + content: "\f03c"; } + +.icofont-learn:before { + content: "\f03d"; } + +.icofont-legal:before { + content: "\f03e"; } + +.icofont-lego:before { + content: "\f03f"; } + +.icofont-lemon:before { + content: "\f040"; } + +.icofont-lens:before { + content: "\f041"; } + +.icofont-letter:before { + content: "\f042"; } + +.icofont-letterbox:before { + content: "\f043"; } + +.icofont-library:before { + content: "\f044"; } + +.icofont-license:before { + content: "\f045"; } + +.icofont-life-bouy:before { + content: "\f046"; } + +.icofont-life-buoy:before { + content: "\f047"; } + +.icofont-life-jacket:before { + content: "\f048"; } + +.icofont-life-ring:before { + content: "\f049"; } + +.icofont-light-bulb:before { + content: "\f04a"; } + +.icofont-lighter:before { + content: "\f04b"; } + +.icofont-lightning-ray:before { + content: "\f04c"; } + +.icofont-like:before { + content: "\f04d"; } + +.icofont-link:before { + content: "\f04e"; } + +.icofont-live-support:before { + content: "\f04f"; } + +.icofont-location-arrow:before { + content: "\f050"; } + +.icofont-location-pin:before { + content: "\f051"; } + +.icofont-lock:before { + content: "\f052"; } + +.icofont-login:before { + content: "\f053"; } + +.icofont-logout:before { + content: "\f054"; } + +.icofont-lollipop:before { + content: "\f055"; } + +.icofont-look:before { + content: "\f056"; } + +.icofont-loop:before { + content: "\f057"; } + +.icofont-luggage:before { + content: "\f058"; } + +.icofont-lunch:before { + content: "\f059"; } + +.icofont-lungs:before { + content: "\f05a"; } + +.icofont-magic-alt:before { + content: "\f05b"; } + +.icofont-magic:before { + content: "\f05c"; } + +.icofont-magnet:before { + content: "\f05d"; } + +.icofont-mail-box:before { + content: "\f05e"; } + +.icofont-mail:before { + content: "\f05f"; } + +.icofont-male:before { + content: "\f060"; } + +.icofont-map:before { + content: "\f061"; } + +.icofont-math:before { + content: "\f062"; } + +.icofont-maximize:before { + content: "\f063"; } + +.icofont-measure:before { + content: "\f064"; } + +.icofont-medal:before { + content: "\f065"; } + +.icofont-medical:before { + content: "\f066"; } + +.icofont-medicine:before { + content: "\f067"; } + +.icofont-mega-phone:before { + content: "\f068"; } + +.icofont-memorial:before { + content: "\f069"; } + +.icofont-memory-card:before { + content: "\f06a"; } + +.icofont-mic-mute:before { + content: "\f06b"; } + +.icofont-mic:before { + content: "\f06c"; } + +.icofont-micro-chip:before { + content: "\f06d"; } + +.icofont-microphone:before { + content: "\f06e"; } + +.icofont-microscope:before { + content: "\f06f"; } + +.icofont-military:before { + content: "\f070"; } + +.icofont-mill:before { + content: "\f071"; } + +.icofont-minus-circle:before { + content: "\f072"; } + +.icofont-minus-square:before { + content: "\f073"; } + +.icofont-minus:before { + content: "\f074"; } + +.icofont-mobile-phone:before { + content: "\f075"; } + +.icofont-molecule:before { + content: "\f076"; } + +.icofont-money:before { + content: "\f077"; } + +.icofont-moon:before { + content: "\f078"; } + +.icofont-mop:before { + content: "\f079"; } + +.icofont-muffin:before { + content: "\f07a"; } + +.icofont-music-alt:before { + content: "\f07b"; } + +.icofont-music-notes:before { + content: "\f07c"; } + +.icofont-music:before { + content: "\f07d"; } + +.icofont-mustache:before { + content: "\f07e"; } + +.icofont-mute-volume:before { + content: "\f07f"; } + +.icofont-navigation-menu:before { + content: "\f080"; } + +.icofont-navigation:before { + content: "\f081"; } + +.icofont-network-tower:before { + content: "\f082"; } + +.icofont-network:before { + content: "\f083"; } + +.icofont-news:before { + content: "\f084"; } + +.icofont-newspaper:before { + content: "\f085"; } + +.icofont-no-smoking:before { + content: "\f086"; } + +.icofont-not-allowed:before { + content: "\f087"; } + +.icofont-notebook:before { + content: "\f088"; } + +.icofont-notepad:before { + content: "\f089"; } + +.icofont-notification:before { + content: "\f08a"; } + +.icofont-numbered:before { + content: "\f08b"; } + +.icofont-opposite:before { + content: "\f08c"; } + +.icofont-optic:before { + content: "\f08d"; } + +.icofont-options:before { + content: "\f08e"; } + +.icofont-package:before { + content: "\f08f"; } + +.icofont-page:before { + content: "\f090"; } + +.icofont-paint:before { + content: "\f091"; } + +.icofont-paper-plane:before { + content: "\f092"; } + +.icofont-paperclip:before { + content: "\f093"; } + +.icofont-papers:before { + content: "\f094"; } + +.icofont-paw:before { + content: "\f095"; } + +.icofont-pay:before { + content: "\f096"; } + +.icofont-pen:before { + content: "\f097"; } + +.icofont-pencil:before { + content: "\f098"; } + +.icofont-penguin-linux:before { + content: "\f099"; } + +.icofont-pestle:before { + content: "\f09a"; } + +.icofont-phone-circle:before { + content: "\f09b"; } + +.icofont-phone:before { + content: "\f09c"; } + +.icofont-picture:before { + content: "\f09d"; } + +.icofont-pie:before { + content: "\f09e"; } + +.icofont-pine:before { + content: "\f09f"; } + +.icofont-pixels:before { + content: "\f0a0"; } + +.icofont-play:before { + content: "\f0a1"; } + +.icofont-plugin:before { + content: "\f0a2"; } + +.icofont-plus-circle:before { + content: "\f0a3"; } + +.icofont-plus-square:before { + content: "\f0a4"; } + +.icofont-plus:before { + content: "\f0a5"; } + +.icofont-polygonal:before { + content: "\f0a6"; } + +.icofont-power:before { + content: "\f0a7"; } + +.icofont-presentation:before { + content: "\f0a8"; } + +.icofont-price:before { + content: "\f0a9"; } + +.icofont-print:before { + content: "\f0aa"; } + +.icofont-puzzle:before { + content: "\f0ab"; } + +.icofont-qr-code:before { + content: "\f0ac"; } + +.icofont-queen:before { + content: "\f0ad"; } + +.icofont-question-circle:before { + content: "\f0ae"; } + +.icofont-question-square:before { + content: "\f0af"; } + +.icofont-question:before { + content: "\f0b0"; } + +.icofont-quote-left:before { + content: "\f0b1"; } + +.icofont-quote-right:before { + content: "\f0b2"; } + +.icofont-radio:before { + content: "\f0b3"; } + +.icofont-random:before { + content: "\f0b4"; } + +.icofont-recycle:before { + content: "\f0b5"; } + +.icofont-refresh:before { + content: "\f0b6"; } + +.icofont-repair:before { + content: "\f0b7"; } + +.icofont-reply-all:before { + content: "\f0b8"; } + +.icofont-reply:before { + content: "\f0b9"; } + +.icofont-resize:before { + content: "\f0ba"; } + +.icofont-responsive:before { + content: "\f0bb"; } + +.icofont-retweet:before { + content: "\f0bc"; } + +.icofont-road:before { + content: "\f0bd"; } + +.icofont-robot:before { + content: "\f0be"; } + +.icofont-rocket:before { + content: "\f0bf"; } + +.icofont-royal:before { + content: "\f0c0"; } + +.icofont-rss-feed:before { + content: "\f0c1"; } + +.icofont-safety:before { + content: "\f0c2"; } + +.icofont-sale-discount:before { + content: "\f0c3"; } + +.icofont-satellite:before { + content: "\f0c4"; } + +.icofont-send-mail:before { + content: "\f0c5"; } + +.icofont-server:before { + content: "\f0c6"; } + +.icofont-settings:before { + content: "\f0c7"; } + +.icofont-share-alt:before { + content: "\f0c8"; } + +.icofont-share-boxed:before { + content: "\f0c9"; } + +.icofont-share:before { + content: "\f0ca"; } + +.icofont-shield:before { + content: "\f0cb"; } + +.icofont-ship:before { + content: "\f0cc"; } + +.icofont-shopping-cart:before { + content: "\f0cd"; } + +.icofont-sign-in:before { + content: "\f0ce"; } + +.icofont-sign-out:before { + content: "\f0cf"; } + +.icofont-signal:before { + content: "\f0d0"; } + +.icofont-site-map:before { + content: "\f0d1"; } + +.icofont-smart-phone:before { + content: "\f0d2"; } + +.icofont-soccer:before { + content: "\f0d3"; } + +.icofont-sort-alt:before { + content: "\f0d4"; } + +.icofont-sort:before { + content: "\f0d5"; } + +.icofont-space:before { + content: "\f0d6"; } + +.icofont-spanner:before { + content: "\f0d7"; } + +.icofont-speech-comments:before { + content: "\f0d8"; } + +.icofont-speed-meter:before { + content: "\f0d9"; } + +.icofont-spinner-alt-1:before { + content: "\f0da"; } + +.icofont-spinner-alt-2:before { + content: "\f0db"; } + +.icofont-spinner-alt-3:before { + content: "\f0dc"; } + +.icofont-spinner-alt-4:before { + content: "\f0dd"; } + +.icofont-spinner-alt-5:before { + content: "\f0de"; } + +.icofont-spinner-alt-6:before { + content: "\f0df"; } + +.icofont-spinner:before { + content: "\f0e0"; } + +.icofont-spreadsheet:before { + content: "\f0e1"; } + +.icofont-square:before { + content: "\f0e2"; } + +.icofont-ssl-security:before { + content: "\f0e3"; } + +.icofont-star-alt-1:before { + content: "\f0e4"; } + +.icofont-star-alt-2:before { + content: "\f0e5"; } + +.icofont-star:before { + content: "\f0e6"; } + +.icofont-street-view:before { + content: "\f0e7"; } + +.icofont-sun:before { + content: "\f0e8"; } + +.icofont-support-faq:before { + content: "\f0e9"; } + +.icofont-tack-pin:before { + content: "\f0ea"; } + +.icofont-tag:before { + content: "\f0eb"; } + +.icofont-tags:before { + content: "\f0ec"; } + +.icofont-tasks:before { + content: "\f0ed"; } + +.icofont-telephone:before { + content: "\f0ee"; } + +.icofont-telescope:before { + content: "\f0ef"; } + +.icofont-terminal:before { + content: "\f0f0"; } + +.icofont-thumbs-down:before { + content: "\f0f1"; } + +.icofont-thumbs-up:before { + content: "\f0f2"; } + +.icofont-tick-boxed:before { + content: "\f0f3"; } + +.icofont-tick-mark:before { + content: "\f0f4"; } + +.icofont-ticket:before { + content: "\f0f5"; } + +.icofont-tie:before { + content: "\f0f6"; } + +.icofont-toggle-off:before { + content: "\f0f7"; } + +.icofont-toggle-on:before { + content: "\f0f8"; } + +.icofont-tools:before { + content: "\f0f9"; } + +.icofont-transparent:before { + content: "\f0fa"; } + +.icofont-tree:before { + content: "\f0fb"; } + +.icofont-umbrella:before { + content: "\f0fc"; } + +.icofont-unlock:before { + content: "\f0fd"; } + +.icofont-unlocked:before { + content: "\f0fe"; } + +.icofont-upload-alt:before { + content: "\f0ff"; } + +.icofont-upload:before { + content: "\f100"; } + +.icofont-usb-drive:before { + content: "\f101"; } + +.icofont-usb:before { + content: "\f102"; } + +.icofont-vector-path:before { + content: "\f103"; } + +.icofont-verification-check:before { + content: "\f104"; } + +.icofont-video-clapper:before { + content: "\f105"; } + +.icofont-video:before { + content: "\f106"; } + +.icofont-volume-down:before { + content: "\f107"; } + +.icofont-volume-off:before { + content: "\f108"; } + +.icofont-volume-up:before { + content: "\f109"; } + +.icofont-wall-clock:before { + content: "\f10a"; } + +.icofont-wall:before { + content: "\f10b"; } + +.icofont-wallet:before { + content: "\f10c"; } + +.icofont-warning-alt:before { + content: "\f10d"; } + +.icofont-warning:before { + content: "\f10e"; } + +.icofont-water-drop:before { + content: "\f10f"; } + +.icofont-web:before { + content: "\f110"; } + +.icofont-wheelchair:before { + content: "\f111"; } + +.icofont-wifi-alt:before { + content: "\f112"; } + +.icofont-wifi:before { + content: "\f113"; } + +.icofont-world:before { + content: "\f114"; } + +.icofont-zigzag:before { + content: "\f115"; } + +.icofont-zipped:before { + content: "\f116"; } + +.icofont-social-500px:before { + content: "\f117"; } + +.icofont-social-baidu-tieba:before { + content: "\f118"; } + +.icofont-social-bbm-messenger:before { + content: "\f119"; } + +.icofont-social-delicious:before { + content: "\f11a"; } + +.icofont-social-dribbble:before { + content: "\f11b"; } + +.icofont-social-facebook-messenger:before { + content: "\f11c"; } + +.icofont-social-flikr:before { + content: "\f11d"; } + +.icofont-social-foursquare:before { + content: "\f11e"; } + +.icofont-social-google-hangouts:before { + content: "\f11f"; } + +.icofont-social-kakaotalk:before { + content: "\f120"; } + +.icofont-social-kik:before { + content: "\f121"; } + +.icofont-social-kiwibox:before { + content: "\f122"; } + +.icofont-social-linkedin:before { + content: "\f123"; } + +.icofont-social-meetme:before { + content: "\f124"; } + +.icofont-social-odnoklassniki:before { + content: "\f125"; } + +.icofont-social-photobucket:before { + content: "\f126"; } + +.icofont-social-qq:before { + content: "\f127"; } + +.icofont-social-renren:before { + content: "\f128"; } + +.icofont-social-slack:before { + content: "\f129"; } + +.icofont-social-slidshare:before { + content: "\f12a"; } + +.icofont-social-snapchat:before { + content: "\f12b"; } + +.icofont-social-soundcloud:before { + content: "\f12c"; } + +.icofont-social-spotify:before { + content: "\f12d"; } + +.icofont-social-stack-exchange:before { + content: "\f12e"; } + +.icofont-social-stack-overflow:before { + content: "\f12f"; } + +.icofont-social-tagged:before { + content: "\f130"; } + +.icofont-social-trello:before { + content: "\f131"; } + +.icofont-social-twitch:before { + content: "\f132"; } + +.icofont-social-vk:before { + content: "\f133"; } + +.icofont-social-weibo:before { + content: "\f134"; } + +.icofont-social-whatsapp:before { + content: "\f135"; } + +.icofont-social-youku:before { + content: "\f136"; } + +.icofont-social-youtube-play:before { + content: "\f137"; } + +.icofont-social-youtube:before { + content: "\f138"; } + +.icofont-brand-xiaomi:before { + content: "\f139"; } + +/*Font size*/ +.icofont-lg { + font-size: 1.33333333em; + line-height: .75em; + vertical-align: -15%; } + +.icofont-2x { + font-size: 2em; } + +.icofont-3x { + font-size: 3em; } + +.icofont-4x { + font-size: 4em; } + +.icofont-5x { + font-size: 5em; } + +.icofont-fw { + display: inline-block; + width: 1.28571429em; + text-align: center; + width: 1.28571429em; + text-align: center; } + +/*Fixed Width Icons*/ +/*Custom list icons*/ +.icofont-ul { + padding-left: 0; + margin-left: 2.14285714em; + list-style-type: none; } + .icofont-ul > li { + position: relative; } + +.icofont-li { + position: absolute; + left: -2.14285714em; + width: 2.14285714em; + top: .14285714em; + text-align: center; } + +/*Animation*/ +.icofont-rotate { + display: inline-block; + -webkit-animation: icofont-rotate 2s infinite linear; + animation: icofont-rotate 2s infinite linear; } + +@-webkit-keyframes icofont-rotate { + 0% { + -webkit-transform: rotate(0deg); + transform: rotate(0deg); } + 100% { + -webkit-transform: rotate(359deg); + transform: rotate(359deg); } } + +@keyframes icofont-rotate { + 0% { + -webkit-transform: rotate(0deg); + transform: rotate(0deg); } + 100% { + -webkit-transform: rotate(359deg); + transform: rotate(359deg); } } diff --git a/public/admin/assets/css/image-cropper.css b/public/admin/assets/css/image-cropper.css new file mode 100644 index 0000000..2ea83e5 --- /dev/null +++ b/public/admin/assets/css/image-cropper.css @@ -0,0 +1,420 @@ +@charset "UTF-8"; +.cropper-wrap-box, .cropper-canvas, .cropper-drag-box, .cropper-crop-box, .cropper-modal { + bottom: 0; + left: 0; + position: absolute; + right: 0; + top: 0; } + +.cropper-center:before, .cropper-center:after { + background-color: #e6edef; + content: ' '; + display: block; + position: absolute; } + +.cropper-face, .cropper-line, .cropper-point { + display: block; + height: 100%; + opacity: .1; + position: absolute; + width: 100%; } + +.cropper-container { + direction: ltr; + font-size: 0; + line-height: 0; + position: relative; + -ms-touch-action: none; + touch-action: none; + -webkit-user-select: none; + -moz-user-select: none; + -ms-user-select: none; + user-select: none; } + .cropper-container img { + display: block; + height: 100%; + image-orientation: 0deg; + max-height: none !important; + max-width: none !important; + min-height: 0 !important; + min-width: 0 !important; + width: 100%; } + +.cropper-wrap-box { + overflow: hidden; } + +.cropper-canvas { + overflow: hidden; } + +.cropper-drag-box { + background-color: #fff; + opacity: 0; } + +.cropper-modal { + background-color: #000; + opacity: .5; } + +.cropper-view-box { + display: block; + height: 100%; + outline-color: #24695c; + outline: 1px solid #24695c; + overflow: hidden; + width: 100%; } + +.cropper-dashed { + border: 0 dashed #e6edef; + display: block; + opacity: .5; + position: absolute; } + .cropper-dashed.dashed-h { + border-bottom-width: 1px; + border-top-width: 1px; + height: 33.33333%; + left: 0; + top: 33.33333%; + width: 100%; } + .cropper-dashed.dashed-v { + border-left-width: 1px; + border-right-width: 1px; + height: 100%; + left: 33.33333%; + top: 0; + width: 33.33333%; } + +.cropper-center { + display: block; + height: 0; + left: 50%; + opacity: .75; + position: absolute; + top: 50%; + width: 0; } + .cropper-center:before { + height: 1px; + left: -3px; + top: 0; + width: 7px; } + .cropper-center:after { + height: 7px; + left: 0; + top: -3px; + width: 1px; } + +.cropper-face { + background-color: #fff; + left: 0; + top: 0; } + +.cropper-line { + background-color: #24695c; } + .cropper-line.line-e { + cursor: ew-resize; + right: -3px; + top: 0; + width: 5px; } + .cropper-line.line-n { + cursor: ns-resize; + height: 5px; + left: 0; + top: -3px; } + .cropper-line.line-w { + cursor: ew-resize; + left: -3px; + top: 0; + width: 5px; } + .cropper-line.line-s { + bottom: -3px; + cursor: ns-resize; + height: 5px; + left: 0; } + +.cropper-point { + background-color: #24695c; + height: 5px; + opacity: .75; + width: 5px; } + .cropper-point.point-e { + cursor: ew-resize; + margin-top: -3px; + right: -3px; + top: 50%; } + .cropper-point.point-n { + cursor: ns-resize; + left: 50%; + margin-left: -3px; + top: -3px; } + .cropper-point.point-w { + cursor: ew-resize; + left: -3px; + margin-top: -3px; + top: 50%; } + .cropper-point.point-s { + bottom: -3px; + cursor: s-resize; + left: 50%; + margin-left: -3px; } + .cropper-point.point-ne { + cursor: nesw-resize; + right: -3px; + top: -3px; } + .cropper-point.point-nw { + cursor: nwse-resize; + left: -3px; + top: -3px; } + .cropper-point.point-sw { + bottom: -3px; + cursor: nesw-resize; + left: -3px; } + .cropper-point.point-se { + bottom: -3px; + cursor: nwse-resize; + height: 20px; + opacity: 1; + right: -3px; + width: 20px; } + .cropper-point.point-se:before { + background-color: #24695c; + bottom: -50%; + content: ' '; + display: block; + height: 200%; + opacity: 0; + position: absolute; + right: -50%; + width: 200%; } + +.cropper-invisible { + opacity: 0; } + +.cropper-bg { + background-image: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQAQMAAAAlPW0iAAAAA3NCSVQICAjb4U/gAAAABlBMVEXMzMz////TjRV2AAAACXBIWXMAAArrAAAK6wGCiw1aAAAAHHRFWHRTb2Z0d2FyZQBBZG9iZSBGaXJld29ya3MgQ1M26LyyjAAAABFJREFUCJlj+M/AgBVhF/0PAH6/D/HkDxOGAAAAAElFTkSuQmCC"); } + +.cropper-hide { + display: block; + height: 0; + position: absolute; + width: 0; } + +.cropper-hidden { + display: none !important; } + +.cropper-move { + cursor: move; } + +.cropper-crop { + cursor: crosshair; } + +.cropper-disabled .cropper-drag-box { + cursor: not-allowed; } + +.cropper-disabled .cropper-face { + cursor: not-allowed; } + +.cropper-disabled .cropper-line { + cursor: not-allowed; } + +.cropper-disabled .cropper-point { + cursor: not-allowed; } + +.img-cropper .btn { + padding: 6px 15px; } + +.img-cropper label.btn { + margin-bottom: 0; } + +.img-cropper .d-flex > .btn { + -webkit-box-flex: 1; + -ms-flex: 1; + flex: 1; } + +.img-cropper .carbonads { + border-radius: .25rem; + border: 1px solid #ccc; + font-size: .875rem; + overflow: hidden; + padding: 1rem; } + +.img-cropper .carbon-wrap { + overflow: hidden; } + +.img-cropper .carbon-img { + clear: left; + display: block; + float: left; } + +.img-cropper .carbon-text, +.img-cropper .carbon-poweredby { + display: block; + margin-left: 140px; } + +.img-cropper .carbon-text, +.img-cropper .carbon-text:hover, +.img-cropper .carbon-text:focus { + color: #fff; + text-decoration: none; } + +.img-cropper .carbon-poweredby, +.img-cropper .carbon-poweredby:hover, +.img-cropper .carbon-poweredby:focus { + color: #ddd; + text-decoration: none; } + +.img-cropper .carbonads { + float: right; + margin-bottom: -1rem; + margin-top: -1rem; + max-width: 360px; } + +.img-cropper .heart { + color: #ddd; + display: block; + height: 2rem; + line-height: 2rem; + margin-bottom: 0; + margin-top: 1rem; + position: relative; + text-align: center; + width: 100%; } + +.img-cropper .heart:hover { + color: #ff4136; } + +.img-cropper .heart::before { + border-top: 1px solid #eee; + content: " "; + display: block; + height: 0; + left: 0; + position: absolute; + right: 0; + top: 50%; } + +.img-cropper .heart::after { + background-color: #fff; + content: "♥"; + padding-left: .5rem; + padding-right: .5rem; + position: relative; + z-index: 1; } + +.img-cropper .img-container, +.img-cropper .img-preview { + background-color: #f7f7f7; + text-align: center; + width: 100%; } + +.img-cropper .img-container { + margin-bottom: 1rem; + max-height: 497px; + min-height: 200px; } + .img-cropper .img-container .cropper-bg { + width: 100% !important; } + +.img-cropper .img-container { + min-height: 497px; } + +.img-cropper .img-container > img { + max-width: 100%; } + +.img-cropper .docs-preview { + margin-right: -1rem; } + +.img-cropper .img-preview { + float: left; + margin-bottom: .5rem; + margin-right: .5rem; + overflow: hidden; } + +.img-cropper .img-preview > img { + max-width: 100%; } + +.img-cropper .preview-lg { + height: 9rem; + width: 16rem; } + +.img-cropper .preview-md { + height: 4.5rem; + width: 8rem; } + +.img-cropper .preview-sm { + height: 2.25rem; + width: 4rem; } + +.img-cropper .preview-xs { + height: 1.125rem; + margin-right: 0; + width: 2rem; } + +.img-cropper .docs-data > .input-group { + margin-bottom: .5rem; } + +.img-cropper .docs-data .input-group-prepend .input-group-text { + min-width: 4rem; } + +.img-cropper .docs-data .input-group-append .input-group-text { + min-width: 3rem; } + +.img-cropper .docs-buttons > .btn, +.img-cropper .docs-buttons > .btn-group, +.img-cropper .docs-buttons > .form-control { + margin-bottom: 10px; + margin-right: 10px; } + +.img-cropper .docs-toggles > .btn, +.img-cropper .docs-toggles > .btn-group, +.img-cropper .docs-toggles > .dropdown { + margin-bottom: .5rem; } + +.img-cropper .docs-tooltip { + display: block; + font-size: 14px; + letter-spacing: 1px; } + +.img-cropper .docs-tooltip > .icon { + margin: 0 -.25rem; + vertical-align: top; } + +.img-cropper .tooltip-inner { + white-space: normal; } + +.img-cropper .btn-upload .tooltip-inner, +.img-cropper .btn-toggle .tooltip-inner { + white-space: nowrap; } + +.img-cropper .btn-toggle { + padding: .5rem; } + +.img-cropper .btn-toggle > .docs-tooltip { + margin: -.5rem; + padding: .5rem; } + +.img-cropper .btn-group-crop { + margin-right: 5px !important; } + +.img-cropper .btn-group-crop > .btn { + padding-left: .5rem; + padding-right: .5rem; } + +.img-cropper .btn-group-crop .docs-tooltip { + margin-left: -.5rem; + margin-right: -.5rem; + padding-left: .5rem; + padding-right: .5rem; } + +.img-cropper .docs-options .dropdown-menu { + width: 100%; } + +.img-cropper .docs-options .dropdown-menu > li { + font-size: .875rem; + padding: .125rem 1rem; } + +.img-cropper .docs-options .dropdown-menu .form-check-label { + display: block; } + +.img-cropper .docs-cropped .modal-body { + text-align: center; } + +.img-cropper .docs-cropped .modal-body > img, +.img-cropper .docs-cropped .modal-body > canvas { + max-width: 100%; } diff --git a/public/admin/assets/css/jkanban.css b/public/admin/assets/css/jkanban.css new file mode 100644 index 0000000..2ce19c6 --- /dev/null +++ b/public/admin/assets/css/jkanban.css @@ -0,0 +1,117 @@ +.drag_handler_icon:before, .drag_handler_icon:after { + background: #000; + content: ''; + display: block; + width: 100%; + height: 100%; + position: absolute; + -webkit-transition: .5s ease-in-out; + transition: .5s ease-in-out; } + +.kanban-container { + position: relative; + -webkit-box-sizing: border-box; + box-sizing: border-box; + width: auto; } + .kanban-container * { + -webkit-box-sizing: border-box; + box-sizing: border-box; } + .kanban-container:after { + clear: both; + display: block; + content: ""; } + +.kanban-board { + position: relative; + float: left; + -webkit-transition: all 0.3s cubic-bezier(0.23, 1, 0.32, 1); + transition: all 0.3s cubic-bezier(0.23, 1, 0.32, 1); } + .kanban-board.disabled-board { + opacity: 0.3; } + .kanban-board header { + font-size: 16px; + padding: 20px 30px; } + .kanban-board header .kanban-title-board { + font-weight: 600; + margin: 0; + padding: 0; + display: inline; } + .kanban-board header .kanban-title-button { + float: right; } + .kanban-board .kanban-drag { + min-height: 200px; + padding: 20px; } + .kanban-board:after { + clear: both; + display: block; + content: ""; } + .kanban-board.is-moving.gu-mirror { + -webkit-transform: rotate(3deg); + transform: rotate(3deg); } + .kanban-board.is-moving.gu-mirror .kanban-drag { + overflow: hidden; + padding-right: 50px; } + +.kanban-item { + background: #fff; + padding: 15px; + margin-bottom: 20px; + -webkit-transition: all 0.3s cubic-bezier(0.23, 1, 0.32, 1); + transition: all 0.3s cubic-bezier(0.23, 1, 0.32, 1); } + .kanban-item:hover { + cursor: move; } + .kanban-item:last-child { + margin: 0; } + .kanban-item.is-moving.gu-mirror { + -webkit-transform: rotate(3deg); + transform: rotate(3deg); + height: auto !important; } + +.gu-mirror { + position: fixed !important; + margin: 0 !important; + z-index: 9999 !important; } + +.gu-hide { + display: none !important; } + +.gu-unselectable { + -webkit-user-select: none !important; + -moz-user-select: none !important; + -ms-user-select: none !important; + user-select: none !important; } + +.gu-transit { + opacity: 0.2 !important; + -webkit-transform: rotate(0deg) !important; + transform: rotate(0deg) !important; } + +.drag_handler { + background: #fff; + border-radius: 50%; + width: 24px; + height: 24px; + position: relative; + float: left; + top: -3px; + margin-right: 4px; } + .drag_handler:hover { + cursor: move; } + +.drag_handler_icon { + position: relative; + display: block; + background: #000; + width: 24px; + height: 2px; + top: 12px; + -webkit-transition: .5s ease-in-out; + transition: .5s ease-in-out; } + .drag_handler_icon:before { + top: 6px; } + .drag_handler_icon:after { + bottom: 6px; } + +#myKanban { + overflow-x: auto; + padding: 20px 0; } diff --git a/public/admin/assets/css/jsgrid.css b/public/admin/assets/css/jsgrid.css new file mode 100644 index 0000000..a499226 --- /dev/null +++ b/public/admin/assets/css/jsgrid.css @@ -0,0 +1,396 @@ +@charset "UTF-8"; +.jsgrid { + position: relative; + overflow: hidden; + font-size: 1em; + -webkit-box-sizing: border-box; + box-sizing: border-box; } + .jsgrid * { + -webkit-box-sizing: border-box; + box-sizing: border-box; } + .jsgrid :after { + -webkit-box-sizing: border-box; + box-sizing: border-box; } + .jsgrid :before { + -webkit-box-sizing: border-box; + box-sizing: border-box; } + .jsgrid input { + font-size: 1em; } + .jsgrid select { + font-size: 1em; } + .jsgrid textarea { + font-size: 1em; } + +.jsgrid-grid-header { + overflow-x: hidden; + overflow-y: scroll; + -webkit-user-select: none; + -moz-user-select: none; + -ms-user-select: none; + user-select: none; } + +.jsgrid-grid-body { + overflow-x: auto; + overflow-y: scroll; } + +.jsgrid-table { + width: 100%; + table-layout: fixed; + border-collapse: collapse; + border-spacing: 0; } + +.jsgrid-cell { + padding: .5em; } + +.jsgrid-header-cell { + -webkit-box-sizing: border-box; + box-sizing: border-box; + padding: .5em; } + +.jsgrid-сell { + -webkit-box-sizing: border-box; + box-sizing: border-box; } + +.jsgrid-align-left { + text-align: left; } + +.jsgrid-align-center { + text-align: center; } + .jsgrid-align-center input { + text-align: center; } + .jsgrid-align-center select { + text-align: center; } + .jsgrid-align-center textarea { + text-align: center; } + +.jsgrid-align-right { + text-align: right; } + .jsgrid-align-right input { + text-align: right; } + .jsgrid-align-right select { + text-align: right; } + .jsgrid-align-right textarea { + text-align: right; } + +.jsgrid-edit-row input { + width: 100%; + padding: .3em .5em; } + +.jsgrid-edit-row select { + width: 100%; + padding: .3em .5em; } + +.jsgrid-edit-row textarea { + width: 100%; + padding: .3em .5em; } + +.jsgrid-edit-row input[type=checkbox] { + width: auto; } + +.jsgrid-filter-row input { + width: 100%; + padding: .3em .5em; + background-color: #f5f7fb; + border: none; + -webkit-box-shadow: none; + box-shadow: none; + outline: none; } + +.jsgrid-filter-row select { + width: 100%; + padding: .3em .5em; + background-color: #f5f7fb; + border: none; + -webkit-box-shadow: none; + box-shadow: none; + outline: none; } + +.jsgrid-filter-row textarea { + width: 100%; + padding: .3em .5em; } + +.jsgrid-filter-row input[type=checkbox] { + width: auto; } + +.jsgrid-insert-row input { + width: 100%; + padding: .3em .5em; } + +.jsgrid-insert-row select { + width: 100%; + padding: .3em .5em; } + +.jsgrid-insert-row textarea { + width: 100%; + padding: .3em .5em; } + +.jsgrid-insert-row input[type=checkbox] { + width: auto; } + +.jsgrid-header-sort { + cursor: pointer; } + +.jsgrid-pager { + padding: .5em 0; } + +.jsgrid-pager-nav-button { + padding: .2em .6em; } + +.jsgrid-pager-nav-inactive-button { + display: none; + pointer-events: none; } + +.jsgrid-pager-page { + padding: .2em .6em; } + +.jsgrid-selected-row .jsgrid-cell { + cursor: pointer; } + +.jsgrid-nodata-row .jsgrid-cell { + padding: .5em 0; + text-align: center; } + +.jsgrid-grid-body { + border: 1px solid #e9e9e9; + border-top: none; } + .jsgrid-grid-body .jsgrid-cell:first-child { + border-left: none; } + .jsgrid-grid-body .jsgrid-cell:last-child { + border-right: none; } + .jsgrid-grid-body .jsgrid-alt-row:first-child .jsgrid-cell { + border-top: none; } + .jsgrid-grid-body .jsgrid-row:first-child .jsgrid-cell { + border-top: none; } + +.jsgrid-grid-header { + border: 1px solid #e9e9e9; + background-color: #f5f7fb; } + +.jsgrid-header-row .jsgrid-align-left { + text-align: center; } + +.jsgrid-header-row .jsgrid-align-right { + text-align: center; } + +.jsgrid-header-row .jsgrid-header-sort { + background: #c4e2ff; } + +.jsgrid-header-row > .jsgrid-header-cell { + border: 1px solid #e9e9e9; + border-top: 0; + background-color: #f5f7fb; + border-bottom: 0; } + .jsgrid-header-row > .jsgrid-header-cell:first-child { + border-left: none; } + .jsgrid-header-row > .jsgrid-header-cell:last-child { + border-right: none; } + +.jsgrid-header-scrollbar { + scrollbar-arrow-color: #f1f1f1; + scrollbar-base-color: #f1f1f1; + scrollbar-3dlight-color: #f1f1f1; + scrollbar-highlight-color: #f1f1f1; + scrollbar-track-color: #f1f1f1; + scrollbar-shadow-color: #f1f1f1; + scrollbar-dark-shadow-color: #f1f1f1; } + +.jsgrid-header-scrollbar::-webkit-scrollbar { + visibility: hidden; } + +.jsgrid-header-scrollbar::-webkit-scrollbar-track { + background: #f1f1f1; } + +.jsgrid-cell { + border: 1px solid #f3f3f3; } + +.jsgrid-invalid input { + background: #ffe3e5; + border: 1px solid #ff808a; } + +.jsgrid-invalid select { + background: #ffe3e5; + border: 1px solid #ff808a; } + +.jsgrid-invalid textarea { + background: #ffe3e5; + border: 1px solid #ff808a; } + +.jsgrid-pager-current-page { + font-weight: 700; } + +.jsgrid-button:hover { + opacity: .5; + -webkit-transition: opacity 200ms linear; + transition: opacity 200ms linear; } + +.jsgrid-button + .jsgrid-button { + margin-left: 5px; } + +.jsgrid .jsgrid-button { + width: 16px; + height: 16px; + border: none; + cursor: pointer; + background-image: url(../images/js-grid.png); + background-repeat: no-repeat; + background-color: transparent; } + +.jsgrid .jsgrid-mode-button { + width: 24px; + height: 24px; } + +@media only screen and (-webkit-min-device-pixel-ratio: 2), only screen and (min-device-pixel-ratio: 2) { + .jsgrid .jsgrid-button { + background-image: url(../images/js-grid.png); + background-size: 24px 352px; } } + +.jsgrid-mode-on-button { + opacity: .5; } + +.jsgrid-cancel-edit-button { + background-position: 0 0; + width: 16px; + height: 16px; } + +.jsgrid-clear-filter-button { + background-position: 0 -40px; + width: 16px; + height: 16px; } + +.jsgrid-delete-button { + background-position: 0 -80px; + width: 16px; + height: 16px; } + +.jsgrid-edit-button { + background-position: 0 -120px; + width: 16px; + height: 16px; } + +.jsgrid-insert-mode-button { + background-position: 0 -160px; + width: 24px; + height: 24px; } + +.jsgrid-insert-button { + background-position: 0 -208px; + width: 16px; + height: 16px; } + +.jsgrid-search-mode-button { + background-position: 0 -248px; + width: 24px; + height: 24px; } + +.jsgrid-search-button { + background-position: 0 -296px; + width: 16px; + height: 16px; } + +.jsgrid-update-button { + background-position: 0 -336px; + width: 16px; + height: 16px; } + +.jsgrid-load-shader { + background: #ddd; + opacity: .5; + filter: alpha(opacity=50); } + +.jsgrid-load-panel { + width: 15em; + height: 5em; + background: #fff; + border: 1px solid #e9e9e9; + padding-top: 3em; + text-align: center; } + .jsgrid-load-panel:before { + content: ' '; + position: absolute; + top: .5em; + left: 50%; + margin-left: -1em; + width: 2em; + height: 2em; + border: 2px solid #009a67; + border-right-color: transparent; + border-radius: 50%; + -webkit-animation: indicator 1s linear infinite; + animation: indicator 1s linear infinite; } + +@-webkit-keyframes indicator { + from { } + 50% { } + to { } } + +@keyframes indicator { + from { + -webkit-transform: rotate(0deg); + transform: rotate(0deg); } + 50% { + -webkit-transform: rotate(180deg); + transform: rotate(180deg); } + to { + -webkit-transform: rotate(360deg); + transform: rotate(360deg); } } + +.jsgrid-edit-row > .jsgrid-cell { + border: 1px solid #e9e9e9; + background: #fdffe3; } + +.jsgrid-filter-row > .jsgrid-cell { + border: 1px solid #e9e9e9; + border-bottom: 0; + background-color: rgba(36, 105, 92, 0.04); } + .jsgrid-filter-row > .jsgrid-cell:first-child { + border-left: none; } + .jsgrid-filter-row > .jsgrid-cell:last-child { + border-right: none; } + +.jsgrid-insert-row > .jsgrid-cell { + border: 1px solid #e9e9e9; + border-bottom: 0; + background-color: #f5f7fb; } + .jsgrid-insert-row > .jsgrid-cell:first-child { + border-left: none; } + .jsgrid-insert-row > .jsgrid-cell:last-child { + border-right: none; } + +.jsgrid-header-sortable:hover { + cursor: pointer; + background: #f9f9f9; } + +.jsgrid-header-sort:before { + content: " "; + display: block; + float: right; + width: 0; + height: 0; + border-style: solid; + margin-top: 8px; + margin-right: 9px; } + +.jsgrid-header-sort-asc:before { + border-width: 0 5px 5px; + border-color: transparent transparent #ffc412; } + +.jsgrid-header-sort-desc:before { + border-width: 5px 5px 0; + border-color: #ffc412 transparent transparent; } + +.jsgrid-row > .jsgrid-cell { + background-color: #f5f7fb; } + +.jsgrid-alt-row > .jsgrid-cell { + background-color: #f5f7fb; + background-color: rgba(36, 105, 92, 0.04); } + +.jsgrid-selected-row > .jsgrid-cell { + background: #c4e2ff; + border-color: #c4e2ff; } + +.jsgrid-nodata-row > .jsgrid-cell { + background: #fff; } + +.jsgrid-pager-nav-inactive-button a { + color: #d3d3d3; } diff --git a/public/admin/assets/css/mapsjs-ui.css b/public/admin/assets/css/mapsjs-ui.css new file mode 100644 index 0000000..620dc43 --- /dev/null +++ b/public/admin/assets/css/mapsjs-ui.css @@ -0,0 +1,557 @@ +/* + * Explanation why the layout looks so complicated: + * The UI container needs a position (absolute or relative) to prevent z-index issues (DomMarker on top of UI) + * Therefore it has these additional styles: + * position: absolute; + * width: 100%; + * height: 100%; + * To prevent that the UI container captures all events the container is displaced by + * left: 100%; + * To neutralize the displacement for the UI elements within the UI container the following adjustments are needed: + * - InfoBubble (.H_ib): left: -100%; + * - left anchor (.H_l_left): margin-left: -100%; + * - center anchor (.H_l_center): left: -50%; (was left: 50%) + * - right anchor (.H_l_right): right: 100%; (was right: 0) + * margin-left: -100%; + */ +.H_ui { + font-size: 10px; + font-family: "Lucida Grande", Arial, Helvetica, sans-serif; + -moz-user-select: none; + -khtml-user-select: none; + -webkit-user-select: none; + -o-user-select: none; + -ms-user-select: none; + z-index: 0; + position: absolute; + width: 100%; + height: 100%; + left: 100%; } + +.H_ui * { + /* normalize in case some other normalization CSS likes things differently */ + -webkit-box-sizing: content-box; + box-sizing: content-box; + -moz-box-sizing: content-box; } + +.H_noevs { + pointer-events: none; } + +/* + * Layout + */ +.H_l_left { + position: absolute; + left: 0; + margin-left: -100%; } + +.H_l_center { + position: absolute; + left: -50%; } + +.H_l_right { + position: absolute; + right: 100%; + margin-left: -100%; } + +.H_l_top { + top: 0; } + +.H_l_middle { + top: 50%; } + +.H_l_bottom { + bottom: 0; } + +/* Fix MAPSJS-579 for modern browsers */ +[class^=H_l_] { + pointer-events: none; } + +.H_ctl { + /* hack for IE9-10, auto doesn't work for them */ + pointer-events: visiblePainted; + pointer-events: auto; } + +.H_l_horizontal .H_ctl { + float: left; } + +.H_l_anchor { + clear: both; + float: right; } + +.H_l_vertical .H_ctl { + clear: both; } + +.H_l_right .H_l_vertical .H_ctl { + float: right; } + +.H_l_right.H_l_middle.H_l_vertical .H_ctl { + float: right; } + +/** + * Element styles + */ +.H_ctl { + margin: .6em; + position: relative; + cursor: pointer; + -ms-touch-action: none; } + +.H_btn, +.H_rdo li { + background: #1f262a; + border-radius: 2em; + color: #fff; + padding: .4em; + -webkit-transform: translate3d(0, 1, 0); } + +.H_rdo { + color: white; + padding-bottom: .5em; + margin-bottom: .5em; + border-bottom: .1em solid #4A5B65; } + +.H_rdo_title { + text-transform: uppercase; + color: #dbe1e4; + margin-bottom: 1em; } + +.H_rdo ul { + list-style: none; + margin: 0 auto; + padding: 0; } + +.H_active, +.H_rdo li.H_active { + background: #4A5B65; } + +.H_disabled, +.H_active.H_disabled { + color: #5A6166; + cursor: default; } + +/** + * Base Elements + */ +.H_l_vertical .H_grp > .H_btn { + border-radius: 0; } + +.H_l_vertical .H_grp > div:first-child { + -webkit-border-top-left-radius: 2em; + -webkit-border-top-right-radius: 2em; + -moz-border-radius-topleft: 2em; + -moz-border-radius-topright: 2em; + border-top-left-radius: 2em; + border-top-right-radius: 2em; + padding-top: 1em; + margin-bottom: -1px; } + +.H_l_vertical .H_grp > div:last-child { + -webkit-border-bottom-right-radius: 2em; + -webkit-border-bottom-left-radius: 2em; + -moz-border-radius-bottomright: 2em; + -moz-border-radius-bottomleft: 2em; + border-bottom-right-radius: 2em; + border-bottom-left-radius: 2em; + padding-bottom: 1em; } + +.H_l_horizontal .H_grp > .H_btn, +.H_l_vertical .H_ctl { + border-radius: 0; + float: left; } + +.H_l_horizontal .H_grp > div:first-child { + -webkit-border-top-left-radius: 2em; + -webkit-border-bottom-left-radius: 2em; + -moz-border-radius-topleft: 2em; + -moz-border-radius-bottomleft: 2em; + border-top-left-radius: 2em; + border-bottom-left-radius: 2em; + padding-left: 1em; } + +.H_l_horizontal .H_grp > div:last-child { + -webkit-border-top-right-radius: 2em; + -webkit-border-bottom-right-radius: 2em; + -moz-border-radius-topright: 2em; + -moz-border-radius-bottomright: 2em; + border-top-right-radius: 2em; + border-bottom-right-radius: 2em; + padding-right: 1em; } + +/** Menu panel */ +.H_overlay { + position: absolute; + min-width: 15em; + background: #1F262A; + display: none; + padding: 1em; + z-index: 100; } + +.H_overlay > *:last-child { + clear: both; } + +.H_overlay > .H_btn { + white-space: nowrap; } + +.H_overlay.H_open { + display: block; } + +.H_overlay::after { + content: " "; + width: 0px; + height: 0px; + border-style: solid; + position: absolute; } + +.H_overlay.H_left::after { + border-width: 1em 1em 1em 0; + border-color: transparent #1F262A transparent transparent; + left: -1em; } + +.H_overlay.H_right::after { + border-width: 1em 0 1em 1em; + border-color: transparent transparent transparent #1F262A; + left: 100%; } + +.H_overlay.H_top::after { + top: .5em; } + +.H_overlay.H_bottom::after { + bottom: .5em; } + +.H_overlay.H_middle::after { + top: 50%; + margin-top: -1em; } + +.H_overlay.H_top.H_center::after { + border-width: 0 1em 1em 1em; + border-color: transparent transparent #1F262A transparent; + top: -1em; + left: 50%; + margin-left: -1em; } + +.H_overlay.H_bottom.H_center::after { + border-width: 1em 1em 0 1em; + border-color: #1F262A transparent transparent transparent; + bottom: -1em; + left: 50%; + margin-left: -1em; } + +/** InfoBubble */ +.H_ib { + position: absolute; + left: .91em; + background: #000; + color: #fff; + font-size: 2em; + line-height: 1em; + fill: #000; + left: -100%; } + +.H_ib_tail { + position: absolute; + left: -.3em; + bottom: -.5em; + width: 1.2em; + height: 1.2em; + z-index: 100; } + +.H_ib_notail .H_ib_tail { + display: none; } + +.H_ib_body { + background: #000; + position: absolute; + bottom: .5em; + padding: 0 1.2em 0 0; + border-radius: .2em; + margin-right: -1em; + right: 0; } + +.H_ib_close { + font-size: .6em; + position: absolute; + right: .2em; + top: .2em; + cursor: pointer; + fill: #fff; } + +.H_disabled .H_ib_close { + cursor: default; } + +.H_ib_noclose .H_ib_close { + display: none; } + +.H_ib_noclose .H_ib_body { + padding: 0 0 0 0; } + +.H_ib_content { + min-width: 6em; + margin: .2em 0; + padding: 0 .2em; + user-select: text; + -moz-user-select: text; + -khtml-user-select: text; + -webkit-user-select: text; + -o-user-select: text; + -ms-user-select: text; } + +/*################################################## SLIDER ########################################################*/ +.H_l_horizontal.H_slider { + float: left; + height: 2.8em; + width: auto; + padding: 0 1em; } + +.H_slider .H_slider_track { + width: 0.2em; + height: 100%; } + +.H_l_horizontal.H_slider .H_slider_track { + height: 0.2em; + width: 100%; } + +.H_l_horizontal.H_slider .H_slider_cont { + height: 100%; } + +.H_l_horizontal.H_slider .H_slider_knob_cont { + margin-top: -0.2em; } + +.H_slider { + background-color: #1f262a; + padding: 1em 0em; + width: 2.8em; } + +.H_slider .H_slider_cont { + position: relative; } + +.H_slider .H_slider_knob_cont, +.H_slider .H_slider_knob_halo { + width: 2.4em; + height: 2.4em; + margin-left: 0em; + border-radius: 9em; } + +/* This will make slightly easy to grab the knob on touch devices*/ +.H_slider .H_slider_knob_halo { + background-color: rgba(255, 255, 255, 0.1); } + +.H_slider .H_slider_knob { + width: 1.6em; + height: 1.6em; + background-color: white; + border-radius: 9em; + -webkit-transform: translate(-50%, -50%); + transform: translate(-50%, -50%); + top: 50%; + left: 50%; + position: absolute; } + +.H_slider .H_slider_track, +.H_slider .H_slider_knob_cont { + position: relative; + top: 50%; + left: 50%; + -webkit-transform: translate(-50%, -50%); + transform: translate(-50%, -50%); } + +.H_slider .H_slider_track { + background-color: white; } + +.H_slider.H_disabled { + cursor: default; } + +.H_disabled .H_slider_track, +.H_disabled .H_slider_knob { + background-color: #5A6166; } + +/*############################################### CONTEXT MENU #####################################################*/ +.H_context_menu { + min-width: 158px; + max-width: 40%; + position: absolute; + left: -100%; + top: 0; + color: white; + background-color: #000F1A; + border-radius: .4em; + padding: 10px 0; + -moz-user-select: initial; + -khtml-user-select: initial; + -webkit-user-select: initial; + -o-user-select: initial; + -ms-user-select: initial; + z-index: 200; } + +.H_context_menu_closed { + display: none; } + +.H_context_menu_item { + text-overflow: ellipsis; + overflow: hidden; + padding: 1px 10px 0; } + +.H_context_menu_item.clickable:hover, +.H_context_menu_item.clickable:focus { + outline: none; + background-color: #00BBDC; + cursor: pointer; } + +.H_context_menu_item.disabled { + background: transparent !important; + color: #5A6166; + cursor: default !important; + -moz-user-select: none; + -khtml-user-select: none; + -webkit-user-select: none; + -o-user-select: none; + -ms-user-select: none; } + +.H_context_menu_item_separator { + height: 0; + margin: 8px 10px; + border-top: 1px solid #333; + border-bottom: 1px solid #666; + line-height: 0; + font-size: 0; } + +/*################################################# SCALE BAR ######################################################*/ +.H_scalebar_svg { + display: block; } + +/*################################################## PANORAMA ######################################################*/ +.H_pano_mm { + position: absolute; + top: 0; + left: -100%; + font-size: 1.5em; + width: 0; + height: 0; } + +.H_pano_man { + margin-top: -3em; + z-index: 2; } + +.H_pano_notransition { + -webkit-transition: none !important; + transition: none !important; } + +.H_pano_circle { + margin-top: -1em; + margin-left: -1em; + -webkit-transition: all .3s; + transition: all .3s; + pointer-events: none; } + +.H_disabled .H_pano_circle { + -webkit-transition: none; + transition: none; + margin-left: -.1em; } + +.H_disabled .H_pano_mm svg.H_icon { + fill: #ddd; + stroke: #5A6166; } + +.H_pano_man svg.H_icon, +.H_pano_circle svg.H_icon { + fill: #09b; + stroke: #fff; + pointer-events: none; } + +.H_pano_ib { + cursor: pointer; } + +.H_tib { + margin: 1em 0 1em 1em; + font-size: .5em; + width: 30em; } + +.H_tib p { + margin: .5em 0; + padding: 0; + line-height: 1.3em; } + +.H_tib p.H_tib_desc { + border-top: 1px solid #666; + padding-top: .5em; } + +.H_tib .H_tib_time { + color: #aaa; } + +.H_tib_right { + float: right; } + +.H_dm_label { + font: 10pt sans-serif; + color: black; + text-shadow: 1px 1px .5px #FFF, 1px -1px .5px #FFF, -1px 1px .5px #FFF, -1px -1px .5px #FFF; + white-space: nowrap; + margin-left: 12px; + margin-top: -7px; + /* This will not work on IE9, but it is accepted! */ + pointer-events: none; } + +/*################################################### ICON #########################################################*/ +svg.H_icon { + display: block; + width: 2em; + height: 2em; + fill: #fff; } + +.H_active svg.H_icon { + fill: #fff; } + +.H_disabled svg.H_icon, +.H_active.H_disabled { + fill: #5A6166; } + +/*############################################### OVERVIEW MAP #####################################################*/ +.H_overview { + -webkit-transition: width 0.2s,height 0.2s,margin-top 0.2s, padding 0.2s; + transition: width 0.2s,height 0.2s,margin-top 0.2s, padding 0.2s; + width: 0em; + height: 0em; + overflow: hidden; + cursor: default; + position: absolute; + margin: auto; + -webkit-box-sizing: border-box; + box-sizing: border-box; } + +.H_overview_active { + padding: 0.5em; } + +.H_l_center .H_overview { + left: -9999px; + right: -9999px; } + +.H_l_middle .H_overview { + top: -9999px; + bottom: -9999px; } + +.H_l_right .H_overview { + right: 100%; } + +.H_l_left .H_overview { + left: 100%; } + +.H_l_bottom .H_overview { + bottom: 0; } + +.H_l_center.H_l_bottom .H_overview { + bottom: 100%; } + +.H_l_top .H_overview { + top: 0; } + +.H_l_center.H_l_top .H_overview { + top: 100%; } + +.H_overview .H_overview_map { + border: 1px solid black; + background-color: rgba(255, 255, 255, 0.6); + -webkit-box-sizing: border-box; + box-sizing: border-box; } + +.H_overview_map .H_ui { + display: none; } diff --git a/public/admin/assets/css/owlcarousel.css b/public/admin/assets/css/owlcarousel.css new file mode 100644 index 0000000..4b6cf55 --- /dev/null +++ b/public/admin/assets/css/owlcarousel.css @@ -0,0 +1,236 @@ +/* + * Default theme - Owl Carousel CSS File + */ +.owl-theme .owl-nav { + margin-top: 10px; + text-align: center; + -webkit-tap-highlight-color: transparent; } + .owl-theme .owl-nav [class*='owl-'] { + color: #FFF; + font-size: 14px; + margin: 5px; + padding: 4px 7px; + background: #D6D6D6; + display: inline-block; + cursor: pointer; + border-radius: 3px; } + .owl-theme .owl-nav [class*='owl-']:hover { + background: #869791; + color: #FFF; + text-decoration: none; } + .owl-theme .owl-nav .disabled { + opacity: 0.5; + cursor: default; } + +.owl-theme .owl-nav.disabled + .owl-dots { + margin-top: 10px; } + +.owl-theme .owl-dots { + text-align: center; + -webkit-tap-highlight-color: transparent; } + .owl-theme .owl-dots .owl-dot { + display: inline-block; + zoom: 1; + *display: inline; + outline: none; } + .owl-theme .owl-dots .owl-dot span { + width: 10px; + height: 10px; + margin: 5px 7px; + background: #D6D6D6; + display: block; + -webkit-backface-visibility: visible; + -webkit-transition: opacity 200ms ease; + transition: opacity 200ms ease; + border-radius: 30px; } + .owl-theme .owl-dots .owl-dot.active span, .owl-theme .owl-dots .owl-dot:hover span { + background: #869791; } + +/* + * Owl Carousel - Core + */ +.owl-carousel { + display: none; + width: 100%; + -webkit-tap-highlight-color: transparent; + /* position relative and z-index fix webkit rendering fonts issue */ + position: relative; + z-index: 1; } + .owl-carousel .owl-stage { + position: relative; + -ms-touch-action: pan-Y; + touch-action: manipulation; + -moz-backface-visibility: hidden; + /* fix firefox animation glitch */ } + .owl-carousel .owl-stage:after { + content: "."; + display: block; + clear: both; + visibility: hidden; + line-height: 0; + height: 0; } + .owl-carousel .owl-stage-outer { + position: relative; + overflow: hidden; + /* fix for flashing background */ + -webkit-transform: translate3d(0px, 0px, 0px); } + .owl-carousel .owl-wrapper, + .owl-carousel .owl-item { + -webkit-backface-visibility: hidden; + -moz-backface-visibility: hidden; + -ms-backface-visibility: hidden; + -webkit-transform: translate3d(0, 0, 0); + -moz-transform: translate3d(0, 0, 0); + -ms-transform: translate3d(0, 0, 0); } + .owl-carousel .owl-item { + position: relative; + min-height: 1px; + float: left; + -webkit-backface-visibility: hidden; + -webkit-tap-highlight-color: transparent; + -webkit-touch-callout: none; } + .owl-carousel .owl-item img { + display: block; + width: 100%; } + .owl-carousel .owl-nav.disabled, + .owl-carousel .owl-dots.disabled { + display: none; } + .owl-carousel .owl-nav .owl-prev, + .owl-carousel .owl-nav .owl-next, + .owl-carousel .owl-dot { + cursor: pointer; + -webkit-user-select: none; + -moz-user-select: none; + -ms-user-select: none; + user-select: none; } + .owl-carousel .owl-nav button.owl-prev, + .owl-carousel .owl-nav button.owl-next, + .owl-carousel button.owl-dot { + background: none; + color: inherit; + border: none; + padding: 0 !important; + font: inherit; } + .owl-carousel.owl-loaded { + display: block; } + .owl-carousel.owl-loading { + opacity: 0; + display: block; } + .owl-carousel.owl-hidden { + opacity: 0; } + .owl-carousel.owl-refresh .owl-item { + visibility: hidden; } + .owl-carousel.owl-drag .owl-item { + -ms-touch-action: none; + touch-action: none; + -webkit-user-select: none; + -moz-user-select: none; + -ms-user-select: none; + user-select: none; } + .owl-carousel.owl-grab { + cursor: move; + cursor: -webkit-grab; + cursor: grab; } + .owl-carousel.owl-rtl { + direction: rtl !important; } + .owl-carousel.owl-rtl .owl-item { + float: right; } + +/* No Js */ +.no-js .owl-carousel { + display: block; } + +/* + * Owl Carousel - Animate Plugin + */ +.owl-carousel .animated { + -webkit-animation-duration: 1000ms; + animation-duration: 1000ms; + -webkit-animation-fill-mode: both; + animation-fill-mode: both; } + +.owl-carousel .owl-animated-in { + z-index: 0; } + +.owl-carousel .owl-animated-out { + z-index: 1; } + +.owl-carousel .fadeOut { + -webkit-animation-name: fadeOut; + animation-name: fadeOut; } + +@-webkit-keyframes fadeOut { + 0% { + opacity: 1; } + 100% { + opacity: 0; } } + +@keyframes fadeOut { + 0% { + opacity: 1; } + 100% { + opacity: 0; } } + +/* + * Owl Carousel - Auto Height Plugin + */ +.owl-height { + -webkit-transition: height 500ms ease-in-out; + transition: height 500ms ease-in-out; } + +/* + * Owl Carousel - Lazy Load Plugin + */ +.owl-carousel .owl-item .owl-lazy { + opacity: 0; + -webkit-transition: opacity 400ms ease; + transition: opacity 400ms ease; } + +.owl-carousel .owl-item img.owl-lazy { + -webkit-transform-style: preserve-3d; + transform-style: preserve-3d; } + +.owl-theme .owl-nav { + margin-top: 10px; + text-align: center; + -webkit-tap-highlight-color: transparent; } + .owl-theme .owl-nav [class*='owl-'] { + color: #FFF; + font-size: 14px; + margin: 5px; + padding: 4px 7px; + background: #D6D6D6; + display: inline-block; + cursor: pointer; + border-radius: 3px; } + .owl-theme .owl-nav [class*='owl-']:hover { + background: #869791; + color: #FFF; + text-decoration: none; } + .owl-theme .owl-nav .disabled { + opacity: 0.5; + cursor: default; } + +.owl-theme .owl-nav.disabled + .owl-dots { + margin-top: 10px; } + +.owl-theme .owl-dots { + text-align: center; + -webkit-tap-highlight-color: transparent; } + .owl-theme .owl-dots .owl-dot { + display: inline-block; + zoom: 1; + *display: inline; + outline: none; } + .owl-theme .owl-dots .owl-dot span { + width: 10px; + height: 10px; + margin: 5px 7px; + background: #D6D6D6; + display: block; + -webkit-backface-visibility: visible; + -webkit-transition: opacity 200ms ease; + transition: opacity 200ms ease; + border-radius: 30px; } + .owl-theme .owl-dots .owl-dot.active span, .owl-theme .owl-dots .owl-dot:hover span { + background: #869791; } diff --git a/public/admin/assets/css/page-builder.css b/public/admin/assets/css/page-builder.css new file mode 100644 index 0000000..1ba27db --- /dev/null +++ b/public/admin/assets/css/page-builder.css @@ -0,0 +1,437 @@ +/**===================== + Page Builder CSS Start +==========================**/ +.cke { + z-index: 0 !important; } + +.page-builder .btn-screen { + padding: 0px 18px; + background: transparent; + color: #cccccc; + border: none; } + +.page-builder .btn-code { + padding: 0px 10px; + background-color: transparent; + border: none; + font-size: 12px; + border-right: 1px solid #e6edef; + color: #cccccc; } + +.page-builder .btn-grid { + background-color: #f5f7fb; + color: rgba(36, 41, 52, 0.7) !important; + border-right: 1px solid #efefef; + padding: 0px; + margin-right: 8px; + padding-right: 10px; + cursor: pointer; } + +.page-builder .ge-mainControls { + margin-bottom: 10px; } + .page-builder .ge-mainControls .ge-wrapper { + color: #fff; + font-family: "Rubik", sans-serif, sans-serif; } + .page-builder .ge-mainControls .ge-wrapper.ge-fixed { + position: fixed; + z-index: 8; + top: 0; } + .page-builder .ge-mainControls .ge-wrapper.ge-top .container { + margin: 0; + padding: 0; + width: auto; } + .page-builder .ge-mainControls .ge-addRowGroup .ge-row-icon { + display: -webkit-inline-box; + display: -ms-inline-flexbox; + display: inline-flex; + width: 50px; + margin: 0; } + .page-builder .ge-mainControls .ge-addRowGroup .ge-row-icon .column { + height: 10px; + background: #24695c; + padding: 0; + border-left: 3px solid #fff; } + .page-builder .ge-mainControls .ge-layout-mode ul li a { + cursor: pointer; } + .page-builder .ge-mainControls .ge-layout-mode ul li a:active { + background-color: #ba895d; + color: #fff; } + .page-builder .ge-mainControls .btn:focus { + -webkit-box-shadow: none; + box-shadow: none; + outline: none; } + +.page-builder .ge-html-output { + width: 100%; + display: none; } + +.page-builder .ge-canvas .ge-tools-drawer { + display: none; } + +.page-builder .ge-canvas.ge-editing .ge-tools-drawer { + -webkit-user-select: none; + -moz-user-select: none; + -ms-user-select: none; + user-select: none; + margin: 0 0 5px; + display: block; } + .page-builder .ge-canvas.ge-editing .ge-tools-drawer > a { + display: inline-block; + padding: 5px; } + .page-builder .ge-canvas.ge-editing .ge-tools-drawer > a:hover { + cursor: pointer; + color: #24695c !important; } + .page-builder .ge-canvas.ge-editing .ge-tools-drawer .ge-details { + padding: 5px; + border-top: 1px solid #2c323f; + display: none; } + .page-builder .ge-canvas.ge-editing .ge-tools-drawer .ge-details .btn-group a { + color: #2c323f; } + .page-builder .ge-canvas.ge-editing .ge-tools-drawer .ge-details .btn-group a:hover { + text-decoration: none; + cursor: pointer; } + +.page-builder .ge-canvas.ge-editing .row { + background-color: rgba(36, 105, 92, 0.02); + padding: 25px; + margin-bottom: 20px; + margin-left: 0; + margin-right: 0; + border-radius: 4px; } + .page-builder .ge-canvas.ge-editing .row > .ge-tools-drawer { + text-align: right; + width: 100%; } + .page-builder .ge-canvas.ge-editing .row > .ge-tools-drawer > a { + color: #cccccc; + font-size: 11px; } + +.page-builder .ge-canvas.ge-editing .column { + background-color: #f5f7fb; + border: 1px solid #e6edef; + padding: 15px; + border-radius: 4px; } + .page-builder .ge-canvas.ge-editing .column > .ge-tools-drawer a { + color: #cccccc; + font-size: 11px; } + .page-builder .ge-canvas.ge-editing .column > .ge-tools-drawer > a.ge-add-row { + color: #2c323f; } + +.page-builder .ge-canvas.ge-editing .ui-sortable-placeholder { + background: #e6edef; + visibility: visible !important; + min-height: 50px; } + +.page-builder .ge-canvas.ge-editing .ge-content-type-tinymce.active { + outline: 1px dotted #e6edef; } + +.page-builder .ge-canvas.ge-layout-phone { + max-width: 450px; + margin-left: auto; + margin-right: auto; } + .page-builder .ge-canvas.ge-layout-phone .col-sm-1 { + width: inherit; } + .page-builder .ge-canvas.ge-layout-phone .col-md-1 { + width: inherit; } + .page-builder .ge-canvas.ge-layout-phone .col-lg-1 { + width: inherit; } + .page-builder .ge-canvas.ge-layout-phone .col-sm-2 { + width: inherit; } + .page-builder .ge-canvas.ge-layout-phone .col-md-2 { + width: inherit; } + .page-builder .ge-canvas.ge-layout-phone .col-lg-2 { + width: inherit; } + .page-builder .ge-canvas.ge-layout-phone .col-sm-3 { + width: inherit; } + .page-builder .ge-canvas.ge-layout-phone .col-md-3 { + width: inherit; } + .page-builder .ge-canvas.ge-layout-phone .col-lg-3 { + width: inherit; } + .page-builder .ge-canvas.ge-layout-phone .col-sm-4 { + width: inherit; } + .page-builder .ge-canvas.ge-layout-phone .col-md-4 { + width: inherit; } + .page-builder .ge-canvas.ge-layout-phone .col-lg-4 { + width: inherit; } + .page-builder .ge-canvas.ge-layout-phone .col-sm-5 { + width: inherit; } + .page-builder .ge-canvas.ge-layout-phone .col-md-5 { + width: inherit; } + .page-builder .ge-canvas.ge-layout-phone .col-lg-5 { + width: inherit; } + .page-builder .ge-canvas.ge-layout-phone .col-sm-6 { + width: inherit; } + .page-builder .ge-canvas.ge-layout-phone .col-md-6 { + width: inherit; } + .page-builder .ge-canvas.ge-layout-phone .col-lg-6 { + width: inherit; } + .page-builder .ge-canvas.ge-layout-phone .col-sm-7 { + width: inherit; } + .page-builder .ge-canvas.ge-layout-phone .col-md-7 { + width: inherit; } + .page-builder .ge-canvas.ge-layout-phone .col-lg-7 { + width: inherit; } + .page-builder .ge-canvas.ge-layout-phone .col-sm-8 { + width: inherit; } + .page-builder .ge-canvas.ge-layout-phone .col-md-8 { + width: inherit; } + .page-builder .ge-canvas.ge-layout-phone .col-lg-8 { + width: inherit; } + .page-builder .ge-canvas.ge-layout-phone .col-sm-9 { + width: inherit; } + .page-builder .ge-canvas.ge-layout-phone .col-md-9 { + width: inherit; } + .page-builder .ge-canvas.ge-layout-phone .col-lg-9 { + width: inherit; } + .page-builder .ge-canvas.ge-layout-phone .col-sm-10 { + width: inherit; } + .page-builder .ge-canvas.ge-layout-phone .col-md-10 { + width: inherit; } + .page-builder .ge-canvas.ge-layout-phone .col-lg-10 { + width: inherit; } + .page-builder .ge-canvas.ge-layout-phone .col-sm-11 { + width: inherit; } + .page-builder .ge-canvas.ge-layout-phone .col-md-11 { + width: inherit; } + .page-builder .ge-canvas.ge-layout-phone .col-lg-11 { + width: inherit; } + .page-builder .ge-canvas.ge-layout-phone .col-sm-12 { + width: inherit; } + .page-builder .ge-canvas.ge-layout-phone .col-md-12 { + width: inherit; } + .page-builder .ge-canvas.ge-layout-phone .col-lg-12 { + width: inherit; } + .page-builder .ge-canvas.ge-layout-phone .col-1 { + width: 8.33333333%; } + .page-builder .ge-canvas.ge-layout-phone .col-2 { + width: 16.66666667%; } + .page-builder .ge-canvas.ge-layout-phone .col-3 { + width: 25%; } + .page-builder .ge-canvas.ge-layout-phone .col-4 { + width: 33.33333333%; } + .page-builder .ge-canvas.ge-layout-phone .col-5 { + width: 41.66666667%; } + .page-builder .ge-canvas.ge-layout-phone .col-6 { + width: 50%; } + .page-builder .ge-canvas.ge-layout-phone .col-7 { + width: 58.33333333%; } + .page-builder .ge-canvas.ge-layout-phone .col-8 { + width: 66.66666667%; } + .page-builder .ge-canvas.ge-layout-phone .col-9 { + width: 75%; } + .page-builder .ge-canvas.ge-layout-phone .col-10 { + width: 83.33333333%; } + .page-builder .ge-canvas.ge-layout-phone .col-11 { + width: 91.66666667%; } + .page-builder .ge-canvas.ge-layout-phone .col-12 { + width: 100%; } + +.page-builder .ge-canvas.ge-layout-tablet { + max-width: 800px; + margin-left: auto; + margin-right: auto; } + .page-builder .ge-canvas.ge-layout-tablet .col-1 { + width: inherit; } + .page-builder .ge-canvas.ge-layout-tablet .col-md-1 { + width: inherit; } + .page-builder .ge-canvas.ge-layout-tablet .col-lg-1 { + width: inherit; } + .page-builder .ge-canvas.ge-layout-tablet .col-2 { + width: inherit; } + .page-builder .ge-canvas.ge-layout-tablet .col-md-2 { + width: inherit; } + .page-builder .ge-canvas.ge-layout-tablet .col-lg-2 { + width: inherit; } + .page-builder .ge-canvas.ge-layout-tablet .col-3 { + width: inherit; } + .page-builder .ge-canvas.ge-layout-tablet .col-md-3 { + width: inherit; } + .page-builder .ge-canvas.ge-layout-tablet .col-lg-3 { + width: inherit; } + .page-builder .ge-canvas.ge-layout-tablet .col-4 { + width: inherit; } + .page-builder .ge-canvas.ge-layout-tablet .col-md-4 { + width: inherit; } + .page-builder .ge-canvas.ge-layout-tablet .col-lg-4 { + width: inherit; } + .page-builder .ge-canvas.ge-layout-tablet .col-5 { + width: inherit; } + .page-builder .ge-canvas.ge-layout-tablet .col-md-5 { + width: inherit; } + .page-builder .ge-canvas.ge-layout-tablet .col-lg-5 { + width: inherit; } + .page-builder .ge-canvas.ge-layout-tablet .col-6 { + width: inherit; } + .page-builder .ge-canvas.ge-layout-tablet .col-md-6 { + width: inherit; } + .page-builder .ge-canvas.ge-layout-tablet .col-lg-6 { + width: inherit; } + .page-builder .ge-canvas.ge-layout-tablet .col-7 { + width: inherit; } + .page-builder .ge-canvas.ge-layout-tablet .col-md-7 { + width: inherit; } + .page-builder .ge-canvas.ge-layout-tablet .col-lg-7 { + width: inherit; } + .page-builder .ge-canvas.ge-layout-tablet .col-8 { + width: inherit; } + .page-builder .ge-canvas.ge-layout-tablet .col-md-8 { + width: inherit; } + .page-builder .ge-canvas.ge-layout-tablet .col-lg-8 { + width: inherit; } + .page-builder .ge-canvas.ge-layout-tablet .col-9 { + width: inherit; } + .page-builder .ge-canvas.ge-layout-tablet .col-md-9 { + width: inherit; } + .page-builder .ge-canvas.ge-layout-tablet .col-lg-9 { + width: inherit; } + .page-builder .ge-canvas.ge-layout-tablet .col-10 { + width: inherit; } + .page-builder .ge-canvas.ge-layout-tablet .col-md-10 { + width: inherit; } + .page-builder .ge-canvas.ge-layout-tablet .col-lg-10 { + width: inherit; } + .page-builder .ge-canvas.ge-layout-tablet .col-11 { + width: inherit; } + .page-builder .ge-canvas.ge-layout-tablet .col-md-11 { + width: inherit; } + .page-builder .ge-canvas.ge-layout-tablet .col-lg-11 { + width: inherit; } + .page-builder .ge-canvas.ge-layout-tablet .col-12 { + width: inherit; } + .page-builder .ge-canvas.ge-layout-tablet .col-md-12 { + width: inherit; } + .page-builder .ge-canvas.ge-layout-tablet .col-lg-12 { + width: inherit; } + .page-builder .ge-canvas.ge-layout-tablet .col-sm-1 { + width: 8.33333333%; } + .page-builder .ge-canvas.ge-layout-tablet .col-sm-2 { + width: 16.66666667%; } + .page-builder .ge-canvas.ge-layout-tablet .col-sm-3 { + width: 25%; } + .page-builder .ge-canvas.ge-layout-tablet .col-sm-4 { + width: 33.33333333%; } + .page-builder .ge-canvas.ge-layout-tablet .col-sm-5 { + width: 41.66666667%; } + .page-builder .ge-canvas.ge-layout-tablet .col-sm-6 { + width: 50%; } + .page-builder .ge-canvas.ge-layout-tablet .col-sm-7 { + width: 58.33333333%; } + .page-builder .ge-canvas.ge-layout-tablet .col-sm-8 { + width: 66.66666667%; } + .page-builder .ge-canvas.ge-layout-tablet .col-sm-9 { + width: 75%; } + .page-builder .ge-canvas.ge-layout-tablet .col-sm-10 { + width: 83.33333333%; } + .page-builder .ge-canvas.ge-layout-tablet .col-sm-11 { + width: 91.66666667%; } + .page-builder .ge-canvas.ge-layout-tablet .col-sm-12 { + width: 100%; } + +.page-builder .ge-canvas.ge-layout-desktop { + max-width: none; + margin-left: auto; + margin-right: auto; + margin-top: 20px; } + .page-builder .ge-canvas.ge-layout-desktop .col-1 { + width: inherit; } + .page-builder .ge-canvas.ge-layout-desktop .col-sm-1 { + width: inherit; } + .page-builder .ge-canvas.ge-layout-desktop .col-lg-1 { + width: inherit; } + .page-builder .ge-canvas.ge-layout-desktop .col-2 { + width: inherit; } + .page-builder .ge-canvas.ge-layout-desktop .col-sm-2 { + width: inherit; } + .page-builder .ge-canvas.ge-layout-desktop .col-lg-2 { + width: inherit; } + .page-builder .ge-canvas.ge-layout-desktop .col-3 { + width: inherit; } + .page-builder .ge-canvas.ge-layout-desktop .col-sm-3 { + width: inherit; } + .page-builder .ge-canvas.ge-layout-desktop .col-lg-3 { + width: inherit; } + .page-builder .ge-canvas.ge-layout-desktop .col-4 { + width: inherit; } + .page-builder .ge-canvas.ge-layout-desktop .col-sm-4 { + width: inherit; } + .page-builder .ge-canvas.ge-layout-desktop .col-lg-4 { + width: inherit; } + .page-builder .ge-canvas.ge-layout-desktop .col-5 { + width: inherit; } + .page-builder .ge-canvas.ge-layout-desktop .col-sm-5 { + width: inherit; } + .page-builder .ge-canvas.ge-layout-desktop .col-lg-5 { + width: inherit; } + .page-builder .ge-canvas.ge-layout-desktop .col-6 { + width: inherit; } + .page-builder .ge-canvas.ge-layout-desktop .col-sm-6 { + width: inherit; } + .page-builder .ge-canvas.ge-layout-desktop .col-lg-6 { + width: inherit; } + .page-builder .ge-canvas.ge-layout-desktop .col-7 { + width: inherit; } + .page-builder .ge-canvas.ge-layout-desktop .col-sm-7 { + width: inherit; } + .page-builder .ge-canvas.ge-layout-desktop .col-lg-7 { + width: inherit; } + .page-builder .ge-canvas.ge-layout-desktop .col-8 { + width: inherit; } + .page-builder .ge-canvas.ge-layout-desktop .col-sm-8 { + width: inherit; } + .page-builder .ge-canvas.ge-layout-desktop .col-lg-8 { + width: inherit; } + .page-builder .ge-canvas.ge-layout-desktop .col-9 { + width: inherit; } + .page-builder .ge-canvas.ge-layout-desktop .col-sm-9 { + width: inherit; } + .page-builder .ge-canvas.ge-layout-desktop .col-lg-9 { + width: inherit; } + .page-builder .ge-canvas.ge-layout-desktop .col-10 { + width: inherit; } + .page-builder .ge-canvas.ge-layout-desktop .col-sm-10 { + width: inherit; } + .page-builder .ge-canvas.ge-layout-desktop .col-lg-10 { + width: inherit; } + .page-builder .ge-canvas.ge-layout-desktop .col-11 { + width: inherit; } + .page-builder .ge-canvas.ge-layout-desktop .col-sm-11 { + width: inherit; } + .page-builder .ge-canvas.ge-layout-desktop .col-lg-11 { + width: inherit; } + .page-builder .ge-canvas.ge-layout-desktop .col-12 { + width: inherit; } + .page-builder .ge-canvas.ge-layout-desktop .col-sm-12 { + width: inherit; } + .page-builder .ge-canvas.ge-layout-desktop .col-lg-12 { + width: inherit; } + .page-builder .ge-canvas.ge-layout-desktop .col-md-1 { + width: 8.33333333%; } + .page-builder .ge-canvas.ge-layout-desktop .col-md-2 { + width: 16.66666667%; } + .page-builder .ge-canvas.ge-layout-desktop .col-md-3 { + width: 25%; } + .page-builder .ge-canvas.ge-layout-desktop .col-md-4 { + width: 33.33333333%; } + .page-builder .ge-canvas.ge-layout-desktop .col-md-5 { + width: 41.66666667%; } + .page-builder .ge-canvas.ge-layout-desktop .col-md-6 { + width: 50%; } + .page-builder .ge-canvas.ge-layout-desktop .col-md-7 { + width: 58.33333333%; } + .page-builder .ge-canvas.ge-layout-desktop .col-md-8 { + width: 66.66666667%; } + .page-builder .ge-canvas.ge-layout-desktop .col-md-9 { + width: 75%; } + .page-builder .ge-canvas.ge-layout-desktop .col-md-10 { + width: 83.33333333%; } + .page-builder .ge-canvas.ge-layout-desktop .col-md-11 { + width: 91.66666667%; } + .page-builder .ge-canvas.ge-layout-desktop .col-md-12 { + width: 100%; } + +.page-builder .ge-content-type-ckeditor { + padding: 10px; + color: #898989; } + +/**===================== + Page Builder CSS Ends +==========================**/ diff --git a/public/admin/assets/css/photoswipe.css b/public/admin/assets/css/photoswipe.css new file mode 100644 index 0000000..59fb972 --- /dev/null +++ b/public/admin/assets/css/photoswipe.css @@ -0,0 +1,603 @@ +/*! PhotoSwipe Default UI CSS by Dmitry Semenov | photoswipe.com | MIT license */ +.pswp__button { + width: 44px; + height: 44px; + position: relative; + background: 0; + cursor: pointer; + overflow: visible; + -webkit-appearance: none; + display: block; + border: 0; + padding: 0; + margin: 0; + float: right; + opacity: .75; + -webkit-transition: opacity .2s; + transition: opacity .2s; + -webkit-box-shadow: none; + box-shadow: none; } + +.pswp__button:focus, +.pswp__button:hover { + opacity: 1; } + +.pswp__button:active { + outline: 0; + opacity: .9; } + +.pswp__button::-moz-focus-inner { + padding: 0; + border: 0; } + +.pswp__ui--over-close .pswp__button--close { + opacity: 1; } + +.pswp__button, +.pswp__button--arrow--left:before, +.pswp__button--arrow--right:before { + background: url(../images/lightgallry/default-skin.png) 0 0 no-repeat; + background-size: 264px 88px; + width: 44px; + height: 44px; } + +@media (-webkit-min-device-pixel-ratio: 1.1), (-webkit-min-device-pixel-ratio: 1.09375), (min-resolution: 105dpi), (min-resolution: 1.1dppx) { + .pswp--svg .pswp__button, + .pswp--svg .pswp__button--arrow--left:before, + .pswp--svg .pswp__button--arrow--right:before { + background-image: url(../images/lightgallry/default-skin.svg); } + .pswp--svg .pswp__button--arrow--left, + .pswp--svg .pswp__button--arrow--right { + background: 0; } } + +.pswp__button--close { + background-position: 0 -44px; } + +.pswp__button--share { + background-position: -44px -44px; } + +.pswp__button--fs { + display: none; } + +.pswp--supports-fs .pswp__button--fs { + display: block; } + +.pswp--fs .pswp__button--fs { + background-position: -44px 0; } + +.pswp__button--zoom { + display: none; + background-position: -88px 0; } + +.pswp--zoom-allowed .pswp__button--zoom { + display: block; } + +.pswp--zoomed-in .pswp__button--zoom { + background-position: -132px 0; } + +.pswp--touch .pswp__button--arrow--left, +.pswp--touch .pswp__button--arrow--right { + visibility: hidden; } + +.pswp__button--arrow--left, +.pswp__button--arrow--right { + background: 0; + top: 50%; + margin-top: -50px; + width: 70px; + height: 100px; + position: absolute; } + +.pswp__button--arrow--left { + left: 0; } + +.pswp__button--arrow--right { + right: 0; } + +.pswp__button--arrow--left:before, +.pswp__button--arrow--right:before { + content: ''; + top: 35px; + background-color: rgba(0, 0, 0, 0.3); + height: 30px; + width: 32px; + position: absolute; } + +.pswp__button--arrow--left:before { + left: 6px; + background-position: -138px -44px; } + +.pswp__button--arrow--right:before { + right: 6px; + background-position: -94px -44px; } + +.pswp__counter, +.pswp__share-modal { + -webkit-user-select: none; + -moz-user-select: none; + -ms-user-select: none; + user-select: none; } + +.pswp__share-modal { + display: block; + background: rgba(0, 0, 0, 0.5); + width: 100%; + height: 100%; + top: 0; + left: 0; + padding: 10px; + position: absolute; + z-index: 1600; + opacity: 0; + -webkit-transition: opacity .25s ease-out; + transition: opacity .25s ease-out; + -webkit-backface-visibility: hidden; + will-change: opacity; } + +.pswp__share-modal--hidden { + display: none; } + +.pswp__share-tooltip { + z-index: 1620; + position: absolute; + background: #FFF; + top: 56px; + border-radius: 2px; + display: block; + width: auto; + right: 44px; + -webkit-box-shadow: 0 2px 5px rgba(0, 0, 0, 0.25); + box-shadow: 0 2px 5px rgba(0, 0, 0, 0.25); + -webkit-transform: translateY(6px); + transform: translateY(6px); + -webkit-transition: -webkit-transform .25s; + transition: -webkit-transform .25s; + transition: transform .25s; + transition: transform .25s, -webkit-transform .25s; + -webkit-backface-visibility: hidden; + will-change: transform; } + +.pswp__share-tooltip a { + display: block; + padding: 8px 12px; + color: #000; + text-decoration: none; + font-size: 14px; + line-height: 18px; } + +.pswp__share-tooltip a:hover { + text-decoration: none; + color: #000; } + +.pswp__share-tooltip a:first-child { + border-radius: 2px 2px 0 0; } + +.pswp__share-tooltip a:last-child { + border-radius: 0 0 2px 2px; } + +.pswp__share-modal--fade-in { + opacity: 1; } + +.pswp__share-modal--fade-in .pswp__share-tooltip { + -webkit-transform: translateY(0); + transform: translateY(0); } + +.pswp--touch .pswp__share-tooltip a { + padding: 16px 12px; } + +a.pswp__share--facebook:before { + content: ''; + display: block; + width: 0; + height: 0; + position: absolute; + top: -12px; + right: 15px; + border: 6px solid transparent; + border-bottom-color: #FFF; + -webkit-pointer-events: none; + -moz-pointer-events: none; + pointer-events: none; } + +a.pswp__share--facebook:hover { + background: #3e5c9a; + color: #FFF; } + +a.pswp__share--facebook:hover:before { + border-bottom-color: #3e5c9a; } + +a.pswp__share--twitter:hover { + background: #55acee; + color: #FFF; } + +a.pswp__share--pinterest:hover { + background: #CCC; + color: #ce272d; } + +a.pswp__share--download:hover { + background: #DDD; } + +.pswp__counter { + position: absolute; + left: 0; + top: 0; + height: 44px; + font-size: 13px; + line-height: 44px; + color: #FFF; + opacity: .75; + padding: 0 10px; } + +.pswp__caption { + position: absolute; + left: 0; + bottom: 0; + width: 100%; + min-height: 44px; } + +.pswp__caption small { + font-size: 11px; + color: #BBB; } + +.pswp__caption__center { + text-align: center; + max-width: 420px; + margin: 0 auto; + font-size: 13px; + padding: 10px; + line-height: 20px; + color: #CCC; } + +.pswp__caption--empty { + display: none; } + +.pswp__caption--fake { + visibility: hidden; } + +.pswp__preloader { + width: 44px; + height: 44px; + position: absolute; + top: 0; + left: 50%; + margin-left: -22px; + opacity: 0; + -webkit-transition: opacity .25s ease-out; + transition: opacity .25s ease-out; + will-change: opacity; + direction: ltr; } + +.pswp__preloader__icn { + width: 20px; + height: 20px; + margin: 12px; } + +.pswp__preloader--active { + opacity: 1; } + +.pswp__preloader--active .pswp__preloader__icn { + background: url(preloader.html) 0 0 no-repeat; } + +.pswp--css_animation .pswp__preloader--active { + opacity: 1; } + +.pswp--css_animation .pswp__preloader--active .pswp__preloader__icn { + -webkit-animation: clockwise 500ms linear infinite; + animation: clockwise 500ms linear infinite; } + +.pswp--css_animation .pswp__preloader--active .pswp__preloader__donut { + -webkit-animation: donut-rotate 1000ms cubic-bezier(0.4, 0, 0.22, 1) infinite; + animation: donut-rotate 1000ms cubic-bezier(0.4, 0, 0.22, 1) infinite; } + +.pswp--css_animation .pswp__preloader__icn { + background: 0; + opacity: .75; + width: 14px; + height: 14px; + position: absolute; + left: 15px; + top: 15px; + margin: 0; } + +.pswp--css_animation .pswp__preloader__cut { + position: relative; + width: 7px; + height: 14px; + overflow: hidden; } + +.pswp--css_animation .pswp__preloader__donut { + -webkit-box-sizing: border-box; + box-sizing: border-box; + width: 14px; + height: 14px; + border: 2px solid #FFF; + border-radius: 50%; + border-left-color: transparent; + border-bottom-color: transparent; + position: absolute; + top: 0; + left: 0; + background: 0; + margin: 0; } + +@media screen and (max-width: 1024px) { + .pswp__preloader { + position: relative; + left: auto; + top: auto; + margin: 0; + float: right; } } + +@-webkit-keyframes clockwise { + 0% { + -webkit-transform: rotate(0deg); + transform: rotate(0deg); } + 100% { + -webkit-transform: rotate(360deg); + transform: rotate(360deg); } } + +@keyframes clockwise { + 0% { + -webkit-transform: rotate(0deg); + transform: rotate(0deg); } + 100% { + -webkit-transform: rotate(360deg); + transform: rotate(360deg); } } + +@-webkit-keyframes donut-rotate { + 0% { + -webkit-transform: rotate(0deg); + transform: rotate(0deg); } + 50% { + -webkit-transform: rotate(-140deg); + transform: rotate(-140deg); } + 100% { + -webkit-transform: rotate(0deg); + transform: rotate(0deg); } } + +@keyframes donut-rotate { + 0% { + -webkit-transform: rotate(0deg); + transform: rotate(0deg); } + 50% { + -webkit-transform: rotate(-140deg); + transform: rotate(-140deg); } + 100% { + -webkit-transform: rotate(0deg); + transform: rotate(0deg); } } + +.pswp__ui { + -webkit-font-smoothing: auto; + visibility: visible; + opacity: 1; + z-index: 1550; } + +.pswp__top-bar { + position: absolute; + left: 0; + top: 0; + height: 44px; + width: 100%; } + +.pswp__caption, +.pswp__top-bar, +.pswp--has_mouse .pswp__button--arrow--left, +.pswp--has_mouse .pswp__button--arrow--right { + -webkit-backface-visibility: hidden; + will-change: opacity; + -webkit-transition: opacity 333ms cubic-bezier(0.4, 0, 0.22, 1); + transition: opacity 333ms cubic-bezier(0.4, 0, 0.22, 1); } + +.pswp--has_mouse .pswp__button--arrow--left, +.pswp--has_mouse .pswp__button--arrow--right { + visibility: visible; } + +.pswp__top-bar, +.pswp__caption { + background-color: rgba(0, 0, 0, 0.5); } + +.pswp__ui--fit .pswp__top-bar, +.pswp__ui--fit .pswp__caption { + background-color: rgba(0, 0, 0, 0.3); } + +.pswp__ui--idle .pswp__top-bar { + opacity: 0; } + +.pswp__ui--idle .pswp__button--arrow--left, +.pswp__ui--idle .pswp__button--arrow--right { + opacity: 0; } + +.pswp__ui--hidden .pswp__top-bar, +.pswp__ui--hidden .pswp__caption, +.pswp__ui--hidden .pswp__button--arrow--left, +.pswp__ui--hidden .pswp__button--arrow--right { + opacity: .001; } + +.pswp__ui--one-slide .pswp__button--arrow--left, +.pswp__ui--one-slide .pswp__button--arrow--right, +.pswp__ui--one-slide .pswp__counter { + display: none; } + +.pswp__element--disabled { + display: none !important; } + +.pswp--minimal--dark .pswp__top-bar { + background: 0; } + +/*! PhotoSwipe main CSS by Dmitry Semenov | photoswipe.com | MIT license */ +.my-gallery figure { + margin-bottom: 30px; } + +.pswp { + display: none; + position: absolute; + width: 100%; + height: 100%; + left: 0; + top: 0; + overflow: hidden; + -ms-touch-action: none; + touch-action: none; + z-index: 1500; + -webkit-text-size-adjust: 100%; + -webkit-backface-visibility: hidden; + outline: 0; } + +.pswp * { + -webkit-box-sizing: border-box; + box-sizing: border-box; } + +.pswp img { + max-width: none; } + +.pswp--animate_opacity { + opacity: .001; + will-change: opacity; + -webkit-transition: opacity 333ms cubic-bezier(0.4, 0, 0.22, 1); + transition: opacity 333ms cubic-bezier(0.4, 0, 0.22, 1); } + +.pswp--open { + display: block; } + +.pswp--zoom-allowed .pswp__img { + cursor: -webkit-zoom-in; + cursor: zoom-in; } + +.pswp--zoomed-in .pswp__img { + cursor: -webkit-grab; + cursor: grab; } + +.pswp--dragging .pswp__img { + cursor: -webkit-grabbing; + cursor: grabbing; } + +.pswp__bg { + position: absolute; + left: 0; + top: 0; + width: 100%; + height: 100%; + background: #000; + opacity: 0; + -webkit-backface-visibility: hidden; + will-change: opacity; } + +.pswp__scroll-wrap { + position: absolute; + left: 0; + top: 0; + width: 100%; + height: 100%; + overflow: hidden; } + +.pswp__container, +.pswp__zoom-wrap { + -ms-touch-action: none; + touch-action: none; + position: absolute; + left: 0; + right: 0; + top: 0; + bottom: 0; } + +.pswp__container, +.pswp__img { + -webkit-user-select: none; + -moz-user-select: none; + -ms-user-select: none; + user-select: none; + -webkit-tap-highlight-color: transparent; + -webkit-touch-callout: none; } + +.pswp__zoom-wrap { + position: absolute; + width: 100%; + -webkit-transform-origin: left top; + transform-origin: left top; + -webkit-transition: -webkit-transform 333ms cubic-bezier(0.4, 0, 0.22, 1); + transition: -webkit-transform 333ms cubic-bezier(0.4, 0, 0.22, 1); + transition: transform 333ms cubic-bezier(0.4, 0, 0.22, 1); + transition: transform 333ms cubic-bezier(0.4, 0, 0.22, 1), -webkit-transform 333ms cubic-bezier(0.4, 0, 0.22, 1); } + +.pswp__bg { + will-change: opacity; + -webkit-transition: opacity 333ms cubic-bezier(0.4, 0, 0.22, 1); + transition: opacity 333ms cubic-bezier(0.4, 0, 0.22, 1); } + +.pswp--animated-in .pswp__bg, +.pswp--animated-in .pswp__zoom-wrap { + -webkit-transition: none; + transition: none; } + +.pswp__container, +.pswp__zoom-wrap { + -webkit-backface-visibility: hidden; } + +.pswp__item { + position: absolute; + left: 0; + right: 0; + top: 0; + bottom: 0; + overflow: hidden; } + +.pswp__img { + position: absolute; + width: auto; + height: auto; + top: 0; + left: 0; } + +.pswp__img--placeholder { + -webkit-backface-visibility: hidden; } + +.pswp__img--placeholder--blank { + background: #222; } + +.pswp--ie .pswp__img { + width: 100% !important; + height: auto !important; + left: 0; + top: 0; } + +.pswp__error-msg { + position: absolute; + left: 0; + top: 50%; + width: 100%; + text-align: center; + font-size: 14px; + line-height: 16px; + margin-top: -8px; + color: #CCC; } + +.pswp__error-msg a { + color: #CCC; + text-decoration: underline; } + +.my-gallery { + padding-right: 0; } + .my-gallery img { + width: 100%; } + .my-gallery figcaption { + display: none; } + .my-gallery.gallery-with-description img { + padding: 10px !important; + border: 1px solid #ddd !important; + border-bottom: none !important; + border-radius: 0; } + .my-gallery.gallery-with-description a > div { + border-top: none !important; + margin-bottom: 0; + padding: 5px 10px 10px 10px; } + .my-gallery.gallery-with-description h4 { + margin-top: 0px; } + .my-gallery.gallery figure.img-hover a > div { + overflow: hidden; } + .my-gallery.gallery figure.img-hover.hover-12 a > div { + background: #158df7; } + .my-gallery.gallery figure.img-hover.hover-12 a > div:hover img { + opacity: .7; } + +#aniimated-thumbnials figure:nth-child(12), #aniimated-thumbnials figure:nth-child(11), #aniimated-thumbnials figure:nth-child(10), #aniimated-thumbnials figure:nth-child(9) { + margin-bottom: 30px; } diff --git a/public/admin/assets/css/preloader.html b/public/admin/assets/css/preloader.html new file mode 100644 index 0000000..464fa5f --- /dev/null +++ b/public/admin/assets/css/preloader.html @@ -0,0 +1,32 @@ + + + + + + + Not Found + + + + + + +
+
+
+
+ 404
+ +
+ Not Found
+
+
+
+ + diff --git a/public/admin/assets/css/prism.css b/public/admin/assets/css/prism.css new file mode 100644 index 0000000..43132fc --- /dev/null +++ b/public/admin/assets/css/prism.css @@ -0,0 +1,162 @@ +code[class*=language-], pre[class*=language-] { + color: #000; + background: 0 0; + text-shadow: 0 1px #fff; + text-align: left; + white-space: pre; + word-spacing: normal; + word-break: normal; + word-wrap: normal; + line-height: 1.5; + -moz-tab-size: 4; + -o-tab-size: 4; + tab-size: 4; + -webkit-hyphens: none; + -ms-hyphens: none; + hyphens: none; } + +code[class*=language-] ::-moz-selection, code[class*=language-]::-moz-selection { + text-shadow: none; + background: #b3d4fc; } + +pre[class*=language-] ::-moz-selection, pre[class*=language-]::-moz-selection { + text-shadow: none; + background: #b3d4fc; } + +code[class*=language-] ::-moz-selection, code[class*=language-]::-moz-selection { + text-shadow: none; + background: #b3d4fc; } + +code[class*=language-] ::selection, code[class*=language-]::selection { + text-shadow: none; + background: #b3d4fc; } + +pre[class*=language-] { + padding: 1em; + margin: .5em 0; + overflow: auto; } + pre[class*=language-] ::-moz-selection, pre[class*=language-]::-moz-selection { + text-shadow: none; + background: #b3d4fc; } + pre[class*=language-] ::selection, pre[class*=language-]::selection { + text-shadow: none; + background: #b3d4fc; } + +@media print { + code[class*=language-], pre[class*=language-] { + text-shadow: none; } } + +:not(pre) > code[class*=language-], pre[class*=language-] { + background: #f6f7fb; } + +:not(pre) > code[class*=language-] { + padding: .1em; + border-radius: .3em; + white-space: normal; } + +.token.cdata, .token.comment, .token.doctype, .token.prolog { + color: #708090; } + +.token.punctuation { + color: #999; } + +.namespace { + opacity: .7; } + +.token.boolean, .token.constant, .token.deleted, .token.number, .token.property, .token.symbol, .token.tag { + color: #905; } + +.token.attr-name, .token.builtin, .token.char, .token.inserted, .token.selector, .token.string { + color: #690; } + +.language-css .token.string, .style .token.string { + color: #a67f59; + background: rgba(255, 255, 255, 0.5); } + +.token.entity, .token.operator, .token.url { + color: #a67f59; + background: rgba(255, 255, 255, 0.5); } + +.token.atrule, .token.attr-value, .token.keyword { + color: #07a; } + +.token.function { + color: #DD4A68; } + +.token.important, .token.regex, .token.variable { + color: #e90; } + +.token.bold, .token.important { + font-weight: 700; } + +.token.italic { + font-style: italic; } + +.token.entity { + cursor: help; } +.code-box-copy { + position: relative; + font-size: 16px; + display: none; } + .code-box-copy pre[class*="language-"] { + border: 1px solid #dee3f9; + border-radius: 2px; } + +.code-box-copy__btn { + opacity: 0; + position: absolute; + top: 11px; + right: 11px; + width: 36px; + height: 36px; + background-color: #e5eaff; + border: 1px solid #dee3f9; + color: #333; + border-radius: 4px; + -webkit-transition: all 0.25s ease-in-out; + transition: all 0.25s ease-in-out; } + +.code-box-copy:hover .code-box-copy__btn { + opacity: 1; } + +.code-box-copy__btn:disabled { + background-color: #eee; + border-color: #ccc; + color: #333; + pointer-events: none; } + +.code-box-copy__btn:hover { + cursor: pointer; + background-color: #fff; + border: 1px solid #ccc; + color: #333; } + +.code-box-copy__btn:focus, .code-box-copy__btn:active { + outline: 0; } + +.code-box-copy__tooltip { + display: none; + position: absolute; + bottom: calc(100% + 11px); + right: 0; + width: 80px; + padding: 6px 0; + background-color: #333; + color: #fff; + text-align: center; + border-radius: 2px; + font-size: 13px; } + .code-box-copy__tooltip::after { + display: block; + position: absolute; + right: 13px; + bottom: -5px; + content: ' '; + width: 0; + height: 0; + border-style: solid; + border-width: 5px 5px 0 5px; + border-color: #333 transparent transparent transparent; } + +.card-body.show-source .code-box-copy { + display: block; } diff --git a/public/admin/assets/css/range-slider.css b/public/admin/assets/css/range-slider.css new file mode 100644 index 0000000..f91d407 --- /dev/null +++ b/public/admin/assets/css/range-slider.css @@ -0,0 +1,256 @@ +@charset "UTF-8"; +/* 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; + -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.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); + 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; } + +/* Ion.RangeSlider, Modern Skin +// css version 2.0.3 +// © Denis Ineshin, 2014 https://github.com/IonDen +// ===================================================================================================================*/ +/* ===================================================================================================================== +// Skin details */ +.irs-line-mid, .irs-line-left, .irs-line-right, .irs-bar, .irs-bar-edge, .irs-slider { + background: url(../images/range-slider/sprite-skin-modern-1.png) repeat-x; } + +.irs { + height: 50px; } + +.irs-with-grid { + height: 70px; } + +.irs-line { + height: 6px; + top: 25px; } + +.irs-line-left { + height: 6px; + background-position: 0 -30px; } + +.irs-line-mid { + height: 6px; + background-position: 0 0; } + +.irs-line-right { + height: 6px; + background-position: 100% -30px; } + +.irs-bar { + height: 6px; + top: 25px; + background-position: 0 -60px; } + +.irs-bar-edge { + top: 25px; + height: 6px; + width: 6px; + background-position: 0 -90px; } + +.irs-shadow { + height: 5px; + top: 25px; + background: #000; + opacity: 0.25; } + +.lt-ie9 .irs-shadow { + filter: alpha(opacity=25); } + +.irs-slider { + width: 11px; + height: 18px; + top: 31px; + background-position: 0 -120px; } + .irs-slider.state_hover, .irs-slider:hover { + background-position: 0 -150px; } + +.irs-min, .irs-max { + color: #999; + font-size: 10px; + line-height: 1.333; + text-shadow: none; + top: 0; + padding: 1px 3px; + background: #e1e4e9; + border-radius: 4px; } + +.irs-from, .irs-to, .irs-single { + color: #fff; + font-size: 10px; + line-height: 1.333; + text-shadow: none; + padding: 1px 5px; + background: #4466f2; + border-radius: 4px; } + +.irs-from:after, .irs-to:after, .irs-single:after { + position: absolute; + display: block; + content: ""; + bottom: -6px; + left: 50%; + width: 0; + height: 0; + margin-left: -3px; + overflow: hidden; + border: 3px solid transparent; + border-top-color: #4466f2; } + +.irs-grid { + height: 34px; } + +.irs-grid-pol { + background: #c0c0c0; } + +.irs-grid-text { + bottom: 12px; + color: #c0c0c0; } diff --git a/public/admin/assets/css/rating.css b/public/admin/assets/css/rating.css new file mode 100644 index 0000000..7d4cb90 --- /dev/null +++ b/public/admin/assets/css/rating.css @@ -0,0 +1,826 @@ +.antennaio { + background-image: url("%24%7bfile-1x%7d.html"); + background-repeat: no-repeat; + color: #cecece; + width: 280px; + height: 60px; + display: block; + margin: auto; + font-weight: 400; + font-size: 0.6em; + /* 12px */ + line-height: 5.5; + letter-spacing: 2px; + margin-bottom: 7em; + -webkit-transition: color 2s; + transition: color 2s; } + @media only screen and (-webkit-min-device-pixel-ratio: 2), only screen and (min-device-pixel-ratio: 2), only screen and (min-resolution: 192dpi), only screen and (min-resolution: 2dppx) { + .antennaio { + background-image: url("%24%7bfile-2x%7d.html"); + background-size: 60px 60px; } } + .antennaio:hover { + color: #757575; } + .antennaio span { + padding: 0 0 0 70px; } + +.bars { + background-image: url("%24%7bfile-1x%7d.html"); + width: 80px; + height: 80px; + display: block; + margin: auto; } + @media only screen and (-webkit-min-device-pixel-ratio: 2), only screen and (min-device-pixel-ratio: 2), only screen and (min-resolution: 192dpi), only screen and (min-resolution: 2dppx) { + .bars { + background-image: url("%24%7bfile-2x%7d.html"); + background-size: 80px 80px; } } + +.section-intro { + text-align: center; + margin: 3em 0 4em 0; + max-height: 9999px; + /* no font boosting please */ } + .section-intro h1 { + line-height: 2.4; } + .section-intro p { + max-width: 560px; + margin: auto; } + .section-intro p.tagline { + font-size: 0.8em; + /* 16px */ + color: #a8a8a8; + margin-bottom: 3em; } + +.section-examples { + position: relative; + background: #f8f8f8; } + +.section-docs { + margin: 3em 0; } + +.docs { + width: 800px; + margin: auto; + max-height: 9999px; + /* no font boosting please */ } + .docs .how-to-use header, .docs .callbacks header, .docs .download header { + background: #4278F5; } + .docs .how-to-use strong, .docs .callbacks strong, .docs .download strong { + color: #4278F5; } + .docs .how-to-use a, .docs .callbacks a, .docs .download a { + color: #4278F5; } + .docs .how-to-use a:hover, .docs .callbacks a:hover, .docs .download a:hover { + color: #0b43c6; } + .docs .how-to-use pre, .docs .callbacks pre, .docs .download pre { + background: white; + border-left: 2px solid #4278F5; + padding: 0 2em; } + .docs .how-to-use code, .docs .callbacks code, .docs .download code { + font-family: "Source Code Pro", sans-serif; + font-size: 0.9em; + /* 18px */ + color: #4278F5; } + .docs .configuration header, .docs .faq header { + background: #50E3C2; } + .docs .configuration strong, .docs .faq strong { + color: #50E3C2; } + .docs .configuration a, .docs .faq a { + color: #50E3C2; } + .docs .configuration a:hover, .docs .faq a:hover { + color: #1cb18f; } + .docs .configuration pre, .docs .faq pre { + background: white; + border-left: 2px solid #50E3C2; + padding: 0 2em; } + .docs .configuration code, .docs .faq code { + font-family: "Source Code Pro", sans-serif; + font-size: 0.9em; + /* 18px */ + color: #50E3C2; } + .docs .license header, .docs .methods header { + background: #EDB867; } + .docs .license strong, .docs .methods strong { + color: #EDB867; } + .docs .license a, .docs .methods a { + color: #EDB867; } + .docs .license a:hover, .docs .methods a:hover { + color: #d58b19; } + .docs .license pre, .docs .methods pre { + background: white; + border-left: 2px solid #EDB867; + padding: 0 2em; } + .docs .license code, .docs .methods code { + font-family: "Source Code Pro", sans-serif; + font-size: 0.9em; + /* 18px */ + color: #EDB867; } + .docs .instructions { + padding: 2em 3em; + background: #f8f8f8; } + .docs .faq p { + margin: 0 0 .5em 0; } + .docs .faq .question { + margin-bottom: 2em; } + .docs .faq .question:last-child { + margin-bottom: 0; } + +.controls { + position: absolute; + top: -23px; + left: 50%; + margin-left: -190px; } + .controls a { + display: block; + width: 150px; + background-color: #50E3C2; + color: white; + float: left; + padding: .3em 1em .5em 1em; + text-decoration: none; + text-align: center; + font-weight: 400; + -webkit-transition: background-color 2s; + transition: background-color 2s; } + .controls a:hover { + background-color: #3adfba; } + .controls a:focus { + color: #d4f8f0; + background-color: #199b7e; } + .controls a.rating-enable { + -webkit-border-top-left-radius: 999px; + -webkit-border-bottom-left-radius: 999px; + -moz-border-radius-topleft: 999px; + -moz-border-radius-bottomleft: 999px; + border-top-left-radius: 999px; + border-bottom-left-radius: 999px; } + .controls a.rating-disable { + -webkit-border-top-right-radius: 999px; + -webkit-border-bottom-right-radius: 999px; + -moz-border-radius-topright: 999px; + -moz-border-radius-bottomright: 999px; + border-top-right-radius: 999px; + border-bottom-right-radius: 999px; } + .controls a:last-child { + border-left: 0; } + .controls a.deactivated { + background: #20c7a1; + color: white; } + +/* ========================================================================== + Media Queries + ========================================================================== */ +@media print { + .controls, + .github, + .antennaio { + display: none; } + .section-intro { + margin: 1em 0 2em 0; } + .section-intro p.tagline { + color: black; } + .section-examples { + background: transparent; } + .section-examples .examples { + padding: 1em 0; } + .section-docs { + margin: 1em 0; } + .docs .how-to-use a, + .docs .callbacks a, + .docs .download a, + .docs .configuration a, + .docs .faq a, + .docs .license a, + .docs .methods a { + color: black; + text-decoration: none; } + .docs .how-to-use a:hover, + .docs .callbacks a:hover, + .docs .download a:hover, + .docs .configuration a:hover, + .docs .faq a:hover, + .docs .license a:hover, + .docs .methods a:hover { + color: black; } + .docs .how-to-use header, + .docs .callbacks header, + .docs .download header, + .docs .configuration header, + .docs .faq header, + .docs .license header, + .docs .methods header { + background: transparent; + color: black; } + .docs .how-to-use code, .docs .how-to-use strong, + .docs .callbacks code, + .docs .callbacks strong, + .docs .download code, + .docs .download strong, + .docs .configuration code, + .docs .configuration strong, + .docs .faq code, + .docs .faq strong, + .docs .license code, + .docs .license strong, + .docs .methods code, + .docs .methods strong { + color: black; } + .docs .how-to-use pre, + .docs .callbacks pre, + .docs .download pre, + .docs .configuration pre, + .docs .faq pre, + .docs .license pre, + .docs .methods pre { + border: none; + padding: 0; } + .docs .how-to-use .instructions, + .docs .callbacks .instructions, + .docs .download .instructions, + .docs .configuration .instructions, + .docs .faq .instructions, + .docs .license .instructions, + .docs .methods .instructions { + background: transparent; } } + +/* ========================================================================== + Helper classes + ========================================================================== */ +.hidden { + display: none !important; + visibility: hidden; } + +.visuallyhidden { + border: 0; + clip: rect(0 0 0 0); + height: 1px; + margin: -1px; + overflow: hidden; + padding: 0; + position: absolute; + width: 1px; } + +.visuallyhidden.focusable:active, +.visuallyhidden.focusable:focus { + clip: auto; + height: auto; + margin: 0; + overflow: visible; + position: static; + width: auto; } + +.invisible { + visibility: hidden; } + +.clearfix:before, +.clearfix:after { + content: " "; + display: table; } + +.clearfix:after { + clear: both; } + +.clearfix { + *zoom: 1; } + +/* Center ratings in container */ +.box-example-1to10 .br-wrapper { + width: 210px; + position: absolute; + margin: 0px 0 0 -105px; + left: 50%; } + +.box-example-movie .br-wrapper { + width: 250px; + position: absolute; + margin: 0px 0 0 -125px; + left: 50%; } + +.box-example-square .br-wrapper { + width: 190px; + position: absolute; + margin: 0px 0 0 -95px; + left: 50%; } + +.box-example-pill .br-wrapper { + width: 232px; + position: absolute; + margin: 0px 0 0 -116px; + left: 50%; } + +.box-example-reversed .br-wrapper { + padding-top: 1.3em; + width: 356px; + position: absolute; + margin: 0px 0 0 -178px; + left: 50%; } + +.box-example-horizontal .br-wrapper { + width: 120px; + position: absolute; + margin: 0px 0 0 -60px; + left: 50%; } + +/* Display star ratings */ +.star-ratings h1 { + font-size: 1.5em; + line-height: 2; + margin-top: 3em; + color: #757575; } + +.star-ratings p { + margin-bottom: 3em; + line-height: 1.2; } + +.star-ratings h1, .star-ratings p { + text-align: center; } + +.star-ratings .stars { + width: 205px; + text-align: center; } + .star-ratings .stars .title { + font-size: 14px; + color: #cccccc; + line-height: 3; + font-weight: 600; } + .star-ratings .stars select { + width: 120px; + font-size: 16px; } + +.star-ratings .stars-example-fontawesome, +.star-ratings .stars-example-css, +.star-ratings .stars-example-bootstrap { + float: left; } + +.star-ratings .stars-example-fontawesome-o select { + width: 200px; } + +.start-ratings-main { + margin-bottom: 3em; } + +/* Boxes */ +.box { + width: 100%; + float: left; + margin: 1em 0; } + .box .box-header { + text-align: center; + font-weight: 400; + padding: .5em 0; } + .box .box-body { + padding-top: 2em; + height: 85px; + /* rating widgets will be absolutely centered relative to box body */ + position: relative; } + .box select { + width: 120px; + margin: 10px auto 0 auto; + display: block; + font-size: 16px; } + +.box-large .box-body { + padding-top: 2em; + height: 120px; } + +.box-orange .box-header { + background-color: #EDB867; + color: white; } + +.box-orange .box-body { + background-color: white; + border: 2px solid #f5d8ab; + border-top: 0; } + +.box-green .box-header { + background-color: #50E3C2; + color: white; } + +.box-green .box-body { + background-color: white; + border: 2px solid #92eed9; + border-top: 0; } + +.box-blue .box-header { + background-color: #4278F5; + color: white; } + +.box-blue .box-body { + background-color: white; + border: 2px solid #8bacf9; + border-top: 0; } + +@media print { + .star-ratings h1 { + color: black; } + .star-ratings .stars .title { + color: black; } + .box-orange .box-header, + .box-green .box-header, + .box-blue .box-header { + background-color: transparent; + color: black; } + .box-orange .box-body, + .box-green .box-body, + .box-blue .box-body { + background-color: transparent; + border: none; } } + +.br-theme-fontawesome-stars .br-widget { + height: 28px; + white-space: nowrap; } + .br-theme-fontawesome-stars .br-widget a { + text-rendering: auto; + -webkit-font-smoothing: antialiased; + text-decoration: none; + margin-right: 2px; } + .br-theme-fontawesome-stars .br-widget a:after { + content: '\f005'; + color: #d2d2d2; } + .br-theme-fontawesome-stars .br-widget a.br-active:after { + color: #24695c; } + .br-theme-fontawesome-stars .br-widget a.br-selected:after { + color: #24695c; } + .br-theme-fontawesome-stars .br-widget .br-current-rating { + display: none; } + +.br-theme-fontawesome-stars .br-readonly a { + cursor: default; } + +@media print { + .br-theme-fontawesome-stars .br-widget a:after { + content: '\f006'; + color: black; } + .br-theme-fontawesome-stars .br-widget a.br-active:after, + .br-theme-fontawesome-stars .br-widget a.br-selected:after { + content: '\f005'; + color: black; } } + +.br-theme-bars-1to10 .br-widget { + height: 50px; + white-space: nowrap; } + .br-theme-bars-1to10 .br-widget a { + display: block; + width: 12px; + padding: 5px 0; + height: 28px; + float: left; + background-color: rgba(36, 105, 92, 0.2); + margin: 1px; + text-align: center; } + .br-theme-bars-1to10 .br-widget a.br-active, .br-theme-bars-1to10 .br-widget a.br-selected { + background-color: #24695c; } + .br-theme-bars-1to10 .br-widget .br-current-rating { + font-size: 20px; + line-height: 1.8; + float: left; + padding: 0 20px 0 20px; + color: #24695c; + font-weight: 400; } + +.br-theme-bars-1to10 .br-readonly a { + cursor: default; } + .br-theme-bars-1to10 .br-readonly a.br-active, .br-theme-bars-1to10 .br-readonly a.br-selected { + background-color: #318f7d; } + +.br-theme-bars-1to10 .br-readonly .br-current-rating { + color: #318f7d; } + +@media print { + .br-theme-bars-1to10 .br-widget a { + border: 1px solid #b3b3b3; + background: white; + height: 38px; + -webkit-box-sizing: border-box; + box-sizing: border-box; } + .br-theme-bars-1to10 .br-widget a.br-active, .br-theme-bars-1to10 .br-widget a.br-selected { + border: 1px solid black; + background: white; } + .br-theme-bars-1to10 .br-widget .br-current-rating { + color: black; } } + +.br-theme-bars-horizontal .br-widget { + width: 120px; + white-space: nowrap; } + .br-theme-bars-horizontal .br-widget a { + display: block; + width: 120px; + height: 5px; + background-color: rgba(36, 105, 92, 0.2); + margin: 1px; } + .br-theme-bars-horizontal .br-widget a.br-active, .br-theme-bars-horizontal .br-widget a.br-selected { + background-color: #24695c; } + .br-theme-bars-horizontal .br-widget .br-current-rating { + width: 120px; + font-size: 18px; + font-weight: 600; + line-height: 2; + text-align: center; + color: #24695c; } + +.br-theme-bars-horizontal .br-readonly a { + cursor: default; } + .br-theme-bars-horizontal .br-readonly a.br-active, .br-theme-bars-horizontal .br-readonly a.br-selected { + background-color: #318f7d; } + +.br-theme-bars-horizontal .br-readonly .br-current-rating { + color: #318f7d; } + +@media print { + .br-theme-bars-horizontal .br-widget a { + border: 1px solid #b3b3b3; + background: white; + -webkit-box-sizing: border-box; + box-sizing: border-box; } + .br-theme-bars-horizontal .br-widget a.br-active, .br-theme-bars-horizontal .br-widget a.br-selected { + border: 1px solid black; + background: white; } + .br-theme-bars-horizontal .br-widget .br-current-rating { + color: black; } } + +.br-theme-bars-movie .br-widget { + height: 50px; + white-space: nowrap; } + .br-theme-bars-movie .br-widget a { + display: block; + width: 60px; + height: 8px; + float: left; + background-color: rgba(36, 105, 92, 0.2); + margin: 1px; } + .br-theme-bars-movie .br-widget a.br-active, .br-theme-bars-movie .br-widget a.br-selected { + background-color: #24695c; } + .br-theme-bars-movie .br-widget .br-current-rating { + clear: both; + width: 240px; + text-align: center; + font-weight: 600; + display: block; + padding: .5em 0; + color: #24695c; } + +.br-theme-bars-movie .br-readonly a { + cursor: default; } + .br-theme-bars-movie .br-readonly a.br-active, .br-theme-bars-movie .br-readonly a.br-selected { + background-color: #318f7d; } + +.br-theme-bars-movie .br-readonly .br-current-rating { + color: #318f7d; } + +@media print { + .br-theme-bars-movie .br-widget a { + border: 1px solid #b3b3b3; + background: white; + -webkit-box-sizing: border-box; + box-sizing: border-box; } + .br-theme-bars-movie .br-widget a.br-active, .br-theme-bars-movie .br-widget a.br-selected { + border: 1px solid black; + background: white; } + .br-theme-bars-movie .br-widget .br-current-rating { + color: black; } } + +.br-theme-bars-pill .br-widget { + white-space: nowrap; } + .br-theme-bars-pill .br-widget a { + padding: 7px 15px; + background-color: rgba(36, 105, 92, 0.2); + color: #24695c; + text-decoration: none; + font-size: 13px; + line-height: 3; + text-align: center; + font-weight: 400; } + .br-theme-bars-pill .br-widget a:first-child { + -webkit-border-top-left-radius: 999px; + -webkit-border-bottom-left-radius: 999px; + -moz-border-radius-topleft: 999px; + -moz-border-radius-bottomleft: 999px; + border-top-left-radius: 999px; + border-bottom-left-radius: 999px; } + .br-theme-bars-pill .br-widget a:last-child { + -webkit-border-top-right-radius: 999px; + -webkit-border-bottom-right-radius: 999px; + -moz-border-radius-topright: 999px; + -moz-border-radius-bottomright: 999px; + border-top-right-radius: 999px; + border-bottom-right-radius: 999px; } + .br-theme-bars-pill .br-widget a.br-active, .br-theme-bars-pill .br-widget a.br-selected { + background-color: #24695c; + color: white; } + +.br-theme-bars-pill .br-readonly a { + cursor: default; } + .br-theme-bars-pill .br-readonly a.br-active, .br-theme-bars-pill .br-readonly a.br-selected { + background-color: #318f7d; } + +@media print { + .br-theme-bars-pill .br-widget a { + border: 1px solid #b3b3b3; + border-left: none; + background: white; + -webkit-box-sizing: border-box; + box-sizing: border-box; } + .br-theme-bars-pill .br-widget a.br-active, .br-theme-bars-pill .br-widget a.br-selected { + border: 1px solid black; + border-left: none; + background: white; + color: black; } + .br-theme-bars-pill .br-widget a:first-child { + border-left: 1px solid black; } } + +.br-theme-bars-reversed .br-widget { + height: 25px; + white-space: nowrap; } + .br-theme-bars-reversed .br-widget a { + display: block; + width: 22px; + height: 22px; + float: left; + background-color: rgba(36, 105, 92, 0.2); + margin: 1px; + font-size: 15px; + font-weight: 400; + line-height: 1.4; + color: #24695c; + text-align: center; } + .br-theme-bars-reversed .br-widget a.br-active, .br-theme-bars-reversed .br-widget a.br-selected { + background-color: #24695c; + color: white; } + .br-theme-bars-reversed .br-widget .br-current-rating { + line-height: 1.3; + float: left; + padding: 0 20px 0 20px; + color: #24695c; + font-size: 16px; + font-weight: 600; } + +.br-theme-bars-reversed .br-readonly a { + cursor: default; } + .br-theme-bars-reversed .br-readonly a.br-active, .br-theme-bars-reversed .br-readonly a.br-selected { + background-color: #318f7d; } + +.br-theme-bars-reversed .br-readonly .br-current-rating { + color: #318f7d; } + +@media print { + .br-theme-bars-reversed .br-widget a { + border: 1px solid #b3b3b3; + background: white; + -webkit-box-sizing: border-box; + box-sizing: border-box; } + .br-theme-bars-reversed .br-widget a.br-active, .br-theme-bars-reversed .br-widget a.br-selected { + border: 1px solid black; + background: white; } + .br-theme-bars-reversed .br-widget .br-current-rating { + color: black; } } + +.br-theme-bars-square .br-widget { + height: 40px; + white-space: nowrap; } + .br-theme-bars-square .br-widget a { + display: block; + width: 30px; + height: 30px; + float: left; + border: 2px solid rgba(36, 105, 92, 0.2); + background-color: white; + margin: 2px; + text-decoration: none; + font-size: 14px; + line-height: 1.8; + text-align: center; + color: #3eb59f; + font-weight: 600; } + .br-theme-bars-square .br-widget a.br-active, .br-theme-bars-square .br-widget a.br-selected { + border: 2px solid #24695c; + color: #24695c; } + .br-theme-bars-square .br-widget .br-current-rating { + clear: both; + width: 330px; + text-align: center; + font-weight: 600; + display: block; + padding: .5em 0; + color: #646464; } + +.br-theme-bars-square .br-readonly a { + cursor: default; } + .br-theme-bars-square .br-readonly a.br-active, .br-theme-bars-square .br-readonly a.br-selected { + border: 2px solid #24695c; + color: #318f7d; } + +@media print { + .br-theme-bars-square .br-widget a { + border: 2px solid #b3b3b3; + color: #b3b3b3; } + .br-theme-bars-square .br-widget a.br-active, .br-theme-bars-square .br-widget a.br-selected { + border: 2px solid black; + color: black; } } + +.br-theme-bootstrap-stars .br-widget { + height: 28px; + white-space: nowrap; } + .br-theme-bootstrap-stars .br-widget a { + font: normal normal normal 18px/1 'Glyphicons Halflings'; + text-rendering: auto; + -webkit-font-smoothing: antialiased; + text-decoration: none; + margin-right: 2px; } + .br-theme-bootstrap-stars .br-widget a:after { + content: '\e006'; + color: #d2d2d2; } + .br-theme-bootstrap-stars .br-widget a.br-active:after { + color: #EDB867; } + .br-theme-bootstrap-stars .br-widget a.br-selected:after { + color: #EDB867; } + .br-theme-bootstrap-stars .br-widget .br-current-rating { + display: none; } + +.br-theme-bootstrap-stars .br-readonly a { + cursor: default; } + +@media print { + .br-theme-bootstrap-stars .br-widget a:after { + content: '\e007'; + color: black; } + .br-theme-bootstrap-stars .br-widget a.br-active:after, + .br-theme-bootstrap-stars .br-widget a.br-selected:after { + content: '\e006'; + color: black; } } + +.br-theme-css-stars .br-widget { + height: 28px; + white-space: nowrap; } + .br-theme-css-stars .br-widget a { + text-decoration: none; + height: 18px; + width: 18px; + float: left; + font-size: 23px; + margin-right: 5px; } + .br-theme-css-stars .br-widget a:after { + content: "\2605"; + color: #d2d2d2; } + .br-theme-css-stars .br-widget a.br-active:after { + color: #EDB867; } + .br-theme-css-stars .br-widget a.br-selected:after { + color: #EDB867; } + .br-theme-css-stars .br-widget .br-current-rating { + display: none; } + +.br-theme-css-stars .br-readonly a { + cursor: default; } + +@media print { + .br-theme-css-stars .br-widget a:after { + content: "\2606"; + color: black; } + .br-theme-css-stars .br-widget a.br-active:after, + .br-theme-css-stars .br-widget a.br-selected:after { + content: "\2605"; + color: black; } } + +.br-theme-fontawesome-stars-o .br-widget { + height: 28px; + white-space: nowrap; } + .br-theme-fontawesome-stars-o .br-widget a { + font: normal normal normal 20px/1 FontAwesome; + text-rendering: auto; + -webkit-font-smoothing: antialiased; + text-decoration: none; + margin-right: 2px; } + .br-theme-fontawesome-stars-o .br-widget a:after { + content: '\f006'; + color: #d2d2d2; } + .br-theme-fontawesome-stars-o .br-widget a.br-active:after { + content: '\f005'; + color: #24695c; } + .br-theme-fontawesome-stars-o .br-widget a.br-selected:after { + content: '\f005'; + color: #24695c; } + .br-theme-fontawesome-stars-o .br-widget a.br-fractional:after { + content: '\f123'; + color: #24695c; } + .br-theme-fontawesome-stars-o .br-widget .br-current-rating { + display: none; } + +.br-theme-fontawesome-stars-o .br-readonly a { + cursor: default; } + +.br-theme-fontawesome-stars-o .br-reverse a.br-fractional { + display: inline-block; + transform: scaleX(-1); + -moz-transform: scaleX(-1); + -webkit-transform: scaleX(-1); + -webkit-filter: FlipH; + filter: FlipH; + -ms-filter: "FlipH"; } + +@media print { + .br-theme-fontawesome-stars-o .br-widget a:after { + content: '\f006'; + color: black; } + .br-theme-fontawesome-stars-o .br-widget a.br-active:after, + .br-theme-fontawesome-stars-o .br-widget a.br-selected:after { + content: '\f005'; + color: black; } + .br-theme-fontawesome-stars-o .br-widget a.br-fractional:after { + content: '\f123'; + color: black; } } diff --git a/public/admin/assets/css/responsive.css b/public/admin/assets/css/responsive.css new file mode 100644 index 0000000..4edab1c --- /dev/null +++ b/public/admin/assets/css/responsive.css @@ -0,0 +1,3325 @@ +/**===================== + 62. Responsive CSS Start +==========================**/ +@media screen and (max-width: 1660px) { + .blog-list .blog-details p { + width: 100%; + white-space: nowrap; + overflow: hidden; + text-overflow: ellipsis; } + .photos ul li { + width: 22%; } + .vertical-menu-main .mega-menu { + width: 1200px !important; + max-width: 1200px !important; + left: 0px !important; } + .user-status table thead tr th:nth-child(3) { + min-width: 124px; } + .user-status table tbody tr td:first-child { + min-width: 278px; } + .employee-status table tbody tr td:first-child { + min-width: 300px; } + .bar-chart canvas { + width: 100% !important; } + .main-header-right .main-header-right .left-menu-header .orm-control-plaintext .form-inline { + width: auto !important; } + .chat-box .chat-history .call-icons { + margin-bottom: 15px; } + .chat-box .chat-history .call-icons ul li { + width: 45px; + height: 45px; } + .chat-box .chat-history .call-icons ul li a { + font-size: 18px; } + .chat-box .chat-history .total-time h2 { + font-size: 40px; + color: #898989; + margin-bottom: 10px; } + .chat-box .chat-history .call-content .btn { + width: auto; + margin: 0 auto; } + .chat-box .chat-right-aside .chat .chat-header .chat-menu-icons li:nth-child(n+2) { + margin-left: 10px; } + .chat-box .chat-right-aside .chat .chat-header .chat-menu-icons li a i { + font-size: 18px; } + .chat-left-aside .people-list { + height: 520px; } + .chat-box .chat-right-aside .chat .chat-msg-box { + height: 440px; } + .chat-box .people-list ul { + max-height: 450px; + overflow: auto; } + .call-chat-body .chat-box { + overflow: hidden; + height: 625px; } + .call-chat-body .chat-box .people-list ul { + max-height: 500px; + overflow: auto; } + .caller-img img { + opacity: 0.7; } + .chat-box .chat-history .receiver-img { + margin-top: 25px; } + .chat-box .chat-history .call-content { + min-height: 545px; } + .search-page .search-vid-block > div { + margin-top: 30px; } + .email-wrap .email-right-aside .email-profile .inbox p { + width: calc(100% - 300px); + max-width: 500px; } } + +@media screen and (max-width: 1550px) { + .bg-gallery { + height: 90vh; } + .email-wrap .email-content .email-top .user-emailid:after { + display: none; } + .email-wrap .email-top .email-right { + display: none; } + .cal-date-widget .datepicker { + width: unset; } } + +@media screen and (max-width: 1440px) { + .target-sec .card-header ul.target-list li:nth-child(n + 2) p { + padding: 0 5px; } + .bg-gallery { + height: 85vh; + min-height: 700px; } + .landing_gallery_section_img:before { + content: ""; + height: 300px; + background: -webkit-gradient(linear, left bottom, left top, color-stop(8%, #01397d), color-stop(92%, transparent)); + background: linear-gradient(to top, #01397d 8%, transparent 92%); } + .page-main-header .main-header-right .left-menu-header { + padding-left: 30px; + padding-right: 30px; } } + +@media screen and (min-width: 1200px) and (max-width: 1660px) { + .latest-articles .card-body .media .m-r-30 { + margin-right: 10px; } + .whishlist-main .prooduct-details-box .btn { + top: 0; + bottom: unset; + right: unset; + left: 0; } + .whishlist-main .col-xl-2 { + width: 25%; } + .xl-none { + display: none; } + .xl-60 { + max-width: 60%; + -webkit-box-flex: 0; + -ms-flex: 0 0 60%; + flex: 0 0 60%; } + .xl-30 { + max-width: 30%; + -webkit-box-flex: 0; + -ms-flex: 0 0 30%; + flex: 0 0 30%; } + .xl-33 { + max-width: 33.33333%; + -webkit-box-flex: 33.33333%; + -ms-flex: 33.33333%; + flex: 33.33333%; } + .xl-35 { + max-width: 35%; + -webkit-box-flex: 35%; + -ms-flex: 35%; + flex: 35%; } + .xl-65 { + max-width: 65%; + -webkit-box-flex: 65%; + -ms-flex: 65%; + flex: 65%; } + .xl-60 { + max-width: 60%; + -webkit-box-flex: 60%; + -ms-flex: 60%; + flex: 60%; } + .xl-70 { + max-width: 70%; + -webkit-box-flex: 70%; + -ms-flex: 70%; + flex: 70%; } + .xl-50 { + max-width: 50%; + -webkit-box-flex: 0; + -ms-flex: 0 0 50%; + flex: 0 0 50%; } + .xl-100 { + max-width: 100%; + width: 100%; + -webkit-box-flex: 0; + -ms-flex: 0 0 100%; + flex: 0 0 100%; } + .xl-23 { + max-width: 23%; + -webkit-box-flex: 0; + -ms-flex: 0 0 23%; + flex: 0 0 23%; } + .xl-25 { + max-width: 25%; + -webkit-box-flex: 0; + -ms-flex: 0 0 25%; + flex: 0 0 25%; } + .xl-40 { + max-width: 40%; + -webkit-box-flex: 0; + -ms-flex: 0 0 40%; + flex: 0 0 40%; } + .xl-4 { + max-width: 33.33%; + -webkit-box-flex: 0; + -ms-flex: 0 0 33.33%; + flex: 0 0 33.33%; } + .xl-cs-65 { + max-width: 65%; + -webkit-box-flex: 0; + -ms-flex: 0 0 65%; + flex: 0 0 65%; } + .xl-cs-35 { + max-width: 35%; + -webkit-box-flex: 0; + -ms-flex: 0 0 35%; + flex: 0 0 35%; + -webkit-box-ordinal-group: 0; + -ms-flex-order: -1; + order: -1; } + .product-page-main .owl-item .item { + border: 1px solid #f4f4f4; + border-radius: 5px; } + .product-page-main .proorder-xl-3 { + -webkit-box-ordinal-group: 4; + -ms-flex-order: 3; + order: 3; } + .owl-carousel .owl-item img { + max-width: 420px; + margin: 0 auto; } } + +@media screen and (max-width: 1580px) and (min-width: 768px) { + .product-filter.new-products .owl-theme .owl-item .item .product-box .media { + display: block; } + .product-filter.new-products .owl-theme .owl-item .item .product-box .media .product-img { + width: 100%; } + .product-filter.new-products .owl-theme .owl-item .item .product-box .product-details { + padding: 15px 0; } } + +@media screen and (max-width: 1580px) and (min-width: 1200px) { + .docs-buttons, + .docs-toggles { + -webkit-box-flex: 0; + -ms-flex: 0 0 100%; + flex: 0 0 100%; + max-width: 100%; } + .bg-sky-blue .main-landing { + height: 765px; } } + +@media screen and (min-width: 1200px) and (max-width: 1214px) { + .product-thumbnail, .product-main { + -webkit-box-flex: 0; + -ms-flex: 0 0 auto; + flex: 0 0 auto; + width: 100% !important; } + .product-thumbnail { + margin-top: 15px; } } + +@media screen and (min-width: 1200px) and (max-width: 1366px) { + .knowledgebase-bg { + height: 400px; } + .custom-card .card-footer > div { + padding: 10px 0; } + .card-activity ::-webkit-scrollbar { + width: 5px; } + .card-activity ::-webkit-scrollbar-track { + background: #d0efe9; } + .card-activity ::-webkit-scrollbar-thumb { + background: #24695c; } + .card-activity h5 { + font-size: 18px !important; } + .card-activity .setting-list { + display: none; } + .crm-activity span { + display: none; } + .vertical-menu-mt .crm-activity { + height: 298px; } + .pixelstrap a { + padding-left: 18px; } + .pixelstrap a:hover, .pixelstrap a:focus, .pixelstrap a:active { + padding-left: 18px; } + .flot-chart-container-small { + height: 227px; } + .call-chat-sidebar { + max-width: 260px; } + .product-box .product-details { + padding: 15px; } + .flot-chart-container { + height: 282px; } + .custom-card .card-profile img { + height: 80px; } + .custom-card .profile-details h4 { + font-size: 18px; } + .custom-card .profile-details h6 { + margin-bottom: 24px; } + .custom-card .card-footer > div h3 { + font-size: 18px; } + .crm-activity { + height: 291px; + overflow-y: auto; } + .crm-activity .media .media-body .dates { + display: -webkit-box; + display: -ms-flexbox; + display: flex; } + .calender-widget .cal-date { + width: 95px; + height: 95px; } + .calender-widget .cal-date h5 { + line-height: 1.4; + padding: 13px; } + .chat-body { + padding: 10px; } + .chat-box .chat-history .call-content .btn { + font-size: 15px; } + .chat-box .chat-history .total-time h2 { + font-size: 30px; } + .chat-box .chat-history .receiver-img { + margin-top: 30px; + margin-bottom: 30px; } + .chat-box .chat-history .call-icons { + margin-top: 20px; + margin-bottom: 20px; } + .chat-box .chat-history .call-icons ul li { + width: 45px; + height: 45px; } + .chat-box .user-image { + width: 30px; + height: 30px; + margin-top: 3px; + margin-right: 3px; } + .chat-box .about { + margin-top: 0; } + .chat-box .border-tab.nav-tabs .nav-item a { + padding: 13px 4px !important; + color: #59667a !important; + letter-spacing: 0; } + .chat-box .chat-menu .people-list ul.list { + max-height: 376px; + overflow-y: auto; } + .chat-left-aside .people-list { + height: 420px; } + .chat-left-aside .people-list ul { + max-height: 376px; + overflow-y: auto; } + .chat-left-aside .status-circle { + top: 4px; + left: 36px; } + .blog-box .blog-details-main .blog-bottom-details { + margin: 20px 10px; } + .blog-box .blog-details-main .blog-social li { + padding: 0px 5px; } + .blog-box.blog-shadow .blog-details { + padding: 15px; } + .comment-box .media img { + margin-right: 25px; } + .comment-box ul ul { + margin-left: 50px; } + .browser-widget img { + height: 50px; } + .browser-widget .media-img { + margin-left: auto; + margin-right: auto; + margin-bottom: 15px; } + .email-wrap .email-left-aside .email-app-sidebar .media { + display: block; } + .email-wrap .email-left-aside .email-app-sidebar .media .media-size-email { + width: 100%; + text-align: center; } + .email-wrap .email-left-aside .email-app-sidebar .media .media-size-email img { + margin-bottom: 10px; } + .email-wrap .email-left-aside .email-app-sidebar .media .media-size-email .me-3 { + margin-right: 0 !important; } + .email-wrap .email-left-aside .email-app-sidebar .media .media-body { + text-align: center; } + .email-wrap .email-right-aside .email-body .attachment ul li img { + width: 73px; + height: 73px; } + .email-wrap .email-right-aside .email-body .email-top { + line-height: 50px; } + .email-wrap .email-right-aside .email-body .email-top h5 { + padding: 13px 0; } + .email-wrap .email-right-aside .email-body .inbox .media-body { + text-align: center; } + .email-wrap .email-right-aside .email-body .inbox .media-body h6 { + font-size: 14px; } + .email-wrap .email-right-aside .email-body .email-compose .cke_contents.cke_reset { + max-height: 144px; + width: 99%; } + .email-wrap .email-right-aside .email-body .email-compose .compose-border { + margin: 0; } + .email-wrap .media-body p { + font-size: 13px; } + .alert-dismissible p { + overflow: hidden; + text-overflow: ellipsis; + white-space: nowrap; + max-width: 181px; } + .bootstrap-touchspin .touchspin-vertical-tab .input-group { + width: 96% !important; } + .blog-list .blog-details h6 { + padding-bottom: 0; + margin-bottom: 0; + border: none; } + .blog-box .blog-date span { + font-weight: 500; } } + +@media screen and (max-width: 1470px) { + .edit-profile .profile-title .media { + display: block; } + .edit-profile .profile-title .media .media-body { + margin-left: unset; + margin-top: 10px; } + .page-main-header .main-header-right .left-menu-header { + -webkit-box-flex: 0; + -ms-flex: 0 0 35%; + flex: 0 0 35%; } + .email-wrap .email-right-aside .email-profile .inbox p { + width: calc(100% - 300px); + max-width: 500px; } } + +@media screen and (max-width: 1366px) { + .email-wrap .email-content .email-top .user-emailid:after { + display: none; } + .lnb-calendars { + display: block !important; + text-align: right; } + .page-main-header .main-header-right .nav-right .nav-menus { + padding: 20px 35px; } + .span.ace_indent-guide { + display: none; } + .grid-options ul li:last-child { + display: none; } + .product-wrapper-grid .col-xl-3 { + padding-left: 8px; + padding-right: 8px; } + .product-wrapper-grid.list-view .product-box .product-img { + width: 25%; } + .product-price { + font-size: 14px; } + .product-box .product-img .product-hover ul li { + width: 35px; + height: 35px; } + .product-box .product-details h4 { + font-size: 18px; } + .cart .qty-box { + width: 40%; } + .alert-dismissible strong ~ p { + display: inline; } + .learning-box .details-main { + margin: 20px; } + .learning-box .details-main h6 { + font-size: 18px; } + .timeline-small .media .media-body p { + width: 95%; } + .timeline-small .media .timeline-round.timeline-line-1:after { + bottom: -66px; } + .map-js-height { + height: 350px; } + .browser-widget .media { + -ms-flex-wrap: wrap; + flex-wrap: wrap; } + .browser-widget .media .media-body h3 { + font-size: 20px; } + .browser-widget .media .media-body p { + margin-bottom: 2px; } + .browser-widget .media .media-body h4 { + font-size: 20px; } + .testimonial i { + font-size: 46px; } + .testimonial p { + margin-top: 20px; } + .cal-date-widget .datepicker { + margin: 0 auto; + width: unset; } + .company-card { + padding: 20px; } + .static-top-widget .media-body h3 { + font-size: 30px; } + .static-top-widget .media-body .icon-bg { + right: -21px; } + .widget-joins .media { + padding: 20px; } + .widget-joins .media .media-body h3 { + font-size: 20px; } + .left-bookmark ul li button { + font-size: 13px; } + .photos ul li { + width: 21%; } + .chat-box .chat-right-aside .chat .chat-msg-box { + height: 420px; } + .chat-box .chat-right-aside .chat .chat-msg-box .chat-user-img { + margin-top: -30px; } + .chat-box .chat-right-aside .chat .chat-msg-box .message { + width: 100%; + padding: 15px; } + .chat-box .chat-right-aside .chat .chat-header .chat-menu-icons li a i { + font-size: 20px; } + .chat-box .chat-history .call-content { + min-height: 512px; } + .chat-right-aside .chat .chat-message .smiley-box { + width: 45px; } + .chat-box .chat-history .receiver-img img { + height: 150px; } + .call-chat-body .chat-box { + overflow: hidden; + height: 595px; } + .calender-widget .cal-desc p { + max-height: 88px; + overflow: auto; } + .equal-height-xl { + height: 517px; } + .authentication-main .auth-innerright { + background-size: cover; } + .grp-btns { + display: inline-block; } + .button-builder .button-generator-bx { + position: relative; + width: 100%; } + .page-builder .btn-group { + display: inline-block; + margin-bottom: 10px; } + .page-builder .btn-grid { + margin-bottom: 15px; + margin-right: 0px; + border-right: none; + display: inline-block; } + .page-builder .ge-canvas.ge-layout-desktop { + margin-top: 50px; } + .ecommerce-widget h6 { + font-size: 14px; } + .ecommerce-widget .total-num { + letter-spacing: 0px; } + .support-ticket .pro-gress .progress-showcase { + margin-top: 15px; } + .support-ticket-font .total-num { + font-size: 20px; } + .custom-card { + padding: 15px; } + .custom-card .card-social li a { + width: 30px; + height: 30px; } + .map-chart .chart-container { + height: 300px; } + .speed-chart .chart-container { + height: 250px; + margin-top: -40px; + margin-bottom: 100px; } + .candidcahrt { + height: 360px; } + .status-details h3 { + font-size: 18px; } + .chart-widget-top .total-value { + font-size: 20px; } + .status-widget .card-body { + padding: 10px; } + .browser-widget .media { + -ms-flex-wrap: wrap; + flex-wrap: wrap; } + .browser-widget .media .media-body h3 { + font-size: 20px; } + .browser-widget .media .media-body p { + margin-bottom: 2px; } + .browser-widget .media .media-body h4 { + font-size: 20px; } + .testimonial i { + font-size: 46px; } + .testimonial p { + margin-top: 20px; } + .cal-date-widget .datepicker { + margin: 0 auto; + width: unset; } + .company-card { + padding: 20px; } + .static-top-widget .media-body h3 { + font-size: 30px; } + .static-top-widget .media-body .icon-bg { + right: -21px; } + .widget-joins .media { + padding: 20px; } + .widget-joins .media .media-body h3 { + font-size: 20px; } + .chat-body { + padding: 10px; } + .chat-box .chat-history .call-content .btn { + font-size: 15px; } + .chat-box .chat-history .total-time h2 { + font-size: 30px; } + .chat-box .chat-history .receiver-img { + margin-top: 30px; + margin-bottom: 30px; } + .chat-box .chat-history .call-icons { + margin-top: 20px; + margin-bottom: 20px; } + .chat-box .chat-history .call-icons ul li { + width: 45px; + height: 45px; } + .chat-box .user-image { + width: 45px; + height: 45px; } + .chat-box .about { + margin-top: 0; } + .chat-box .border-tab.nav-tabs .nav-item a { + padding: 13px 4px !important; + color: #59667a !important; + letter-spacing: 0; + font-size: 12px !important; } + .chat-box .chat-menu .people-list ul.list { + max-height: 376px; + overflow-y: auto; } + .chat-left-aside .people-list { + height: 490px; } + .chat-left-aside .people-list ul { + max-height: 434px; + overflow-y: auto; } + .status-circle { + top: 4px; + left: 37px; } + .mega-menu .onhover-show-div { + left: 164px; } + .img-cropper .docs-toggles { + margin-top: 8px; } + .bootstrap-touchspin .dropdown-basic .dropdown .dropdown-content { + left: -21px; } + #advance-5_wrapper .dataTables_paginate { + margin-bottom: 8px; } + #batchDelete .jsgrid-grid-header .jsgrid-table .jsgrid-header-row .jsgrid-header-cell:first-child { + width: 67px !important; } + #batchDelete .jsgrid-grid-body .jsgrid-table .jsgrid-row .jsgrid-cell:first-child { + width: 67px !important; } + .reset-password-box .theme-form .form-group .btn { + padding: 6px 22px; } + .cd-timeline-img { + width: 45px; + height: 45px; } + .cd-timeline-img i { + font-size: 20px; } } + +@media screen and (min-width: 1200px) and (max-width: 1365px) { + .redial-social-widget { + width: 90px; + height: 90px; } + .redial-social-widget i { + width: 70px; + height: 70px; } + .social-widget-card .card-body { + padding: 20px; } + .social-widget-card h5 { + margin-bottom: 15px; } + .widget-joins .media { + padding: 15px; } + .widget-joins .media h5 { + font-size: 14px; } + .widget-joins .media .media-body svg { + width: 25px; + height: 25px; } + .widget-joins .media .media-body > span { + font-size: 13px; } + .widget-joins .media .me-3 { + margin-right: 10px !important; } + .testimonial p { + margin-top: unset; } + .general-widget .custom-card .card-header img { + margin-top: -45px; } } + +@media screen and (min-width: 992px) and (max-width: 1199px) { + .project-box { + padding: 20px; } + .project-box .badge { + right: 10px; + top: 10px; + font-size: 8px; + padding: 5px; } } + +@media screen and (max-width: 1280px) { + .blog-list .blog-details hr { + display: none; } + .blog-list .blog-details p { + display: none; } + .page-main-header .main-header-right .nav-right > ul > li { + margin-right: 10px; } + .bg-gallery { + height: 108vh; } + .img-gallery-set1, + .img-gallery-set5 { + display: none; } + .box-layout.page-wrapper.horizontal-wrapper .page-main-header { + padding-left: unset; + max-width: unset; + left: unset; } + .box-layout.page-wrapper.horizontal-wrapper .page-body-wrapper { + width: unset; } + .email-wrap .actions li:nth-child(n+2) { + margin-left: 10px; } + .email-wrap .actions li .btn { + padding: 7px 20px; + text-transform: capitalize; } } + +@media screen and (max-width: 1199px) { + .ttl-info { + display: none; } + input[type='checkbox'].tui-full-calendar-checkbox-round + span { + margin-right: 2px; + width: 4px; } + .blog-list .blog-details p, .blog-list .blog-details hr { + display: block; } + .profile-greeting .header-top { + text-align: center; } + .profile-greeting .header-top .setting-list { + float: none; } + .alert-theme { + max-width: 400px; } + .vertical .page-main-header .main-header-right .vertical-mobile-sidebar { + display: block; } + .mega-menu-header .main-header-right .vertical-mobile-sidebar { + display: block; + margin-right: 15px; } + .page-main-header .main-header-right .nav-right.right-menu ul { + padding-left: 15px; + padding-right: 15px; } + .page-main-header .main-header-right .main-header-left { + padding-left: 25px; + padding-right: 25px; } + .page-wrapper .page-main-header .main-header-right .nav-right > ul li .submenu li:first-child { + padding-left: 15px !important; } + .page-wrapper .page-main-header .main-header-right .mobile-sidebar .switch-sm .switch { + margin-top: 6px; } + .page-main-header .main-header-right .left-menu-header { + padding: 24px 15px; + -webkit-box-flex: 0; + -ms-flex: 0 0 30%; + flex: 0 0 30%; } + .page-main-header .main-header-right .nav-right .nav-menus { + padding: 20px 15px; } + .grid-options ul li:nth-child(3) { + display: none; } + .dashboard-default-sec .card.income-card .card-body .knob-block canvas, .dashboard-2-main .card.income-card .card-body .knob-block canvas { + width: 30%; + height: 30%; } + .photos ul li { + width: 20%; } + .timeline-small .media .timeline-round.timeline-line-1:after { + height: 33px; + bottom: -40px; } + .timeline-small .media .timeline-round.small-line:after { + height: 28px; + bottom: -38px; } + .timeline-small .media .timeline-round.medium-line:after { + height: 30px; + bottom: -40px; } + .timeline-small .media .media-body h6 { + font-weight: 600; + margin-bottom: 30px; } + .timeline-small .media .media-body h6 span { + font-weight: normal; + color: #999; } + .timeline-small .media .media-body p { + width: 100%; } + .bg-gallery { + height: 100vh; } + .mt50 { + margin-top: 30px; } + .landing-main .sticky .navbar-expand-xl .navbar-brand { + top: 8px; } + .landing-main .sticky .navbar-expand-xl .navabr_btn-set { + top: 16px; } + .landing-main .navbar-toggler span { + background-color: #fff; } + .landing-main .navbar_nav_modify { + width: 100vw; + left: 0; + position: fixed; + height: 100vh; + background-color: #293240; + top: 0; + padding: 120px 0px; } + .landing-main h4 { + font-size: 20px; } + .landing-main .navbar-expand-xl .navabr_btn-set { + position: fixed; + top: 24px; + z-index: 1; + right: 20px; } + .landing-main .navbar-expand-xl .navbar-brand { + padding-left: 5px; + z-index: 1; + position: fixed; + top: 14px; } + .landing-main .navbar-expand-xl .navbar-collapse .navbar-nav .nav-item a { + padding: 28px 60px; + width: 16px; + margin: 0 auto; + text-align: center; + display: -webkit-box; + display: -ms-flexbox; + display: flex; + -webkit-box-pack: center; + -ms-flex-pack: center; + justify-content: center; } + .landing-main .support-res { + text-align: center; + -webkit-box-align: center; + -ms-flex-align: center; + align-items: center; + -webkit-box-pack: center; + -ms-flex-pack: center; + justify-content: center; + padding: 20px; } + .landing-main .navbar-expand-lg .navbar-brand { + padding-left: 5px; } + .landing-main .navbar-expand-lg .navbar-collapse .navbar-nav .nav-item a { + padding: 9px; } + .lg-mt-col { + margin-top: 30px; } + .xl-none { + display: none; } + .user-status table tbody tr td .d-inline-block { + margin-top: 10px; } + .lg-mt { + margin-top: 30px; } + .product-page-details { + margin-top: 30px; } + .product-wrapper-grid.list-view .product-box .product-img { + width: 32%; } + .debit-card { + -webkit-box-ordinal-group: 2; + -ms-flex-order: 1; + order: 1; } + .typography .row div + div { + margin-top: 30px; } + .listing .card-body .row > div + div { + margin-top: 30px; } + .flot-chart-container { + height: 250px; } + .img-cropper #putData { + margin-bottom: 10px; } + .img-cropper .docs-toggles > .dropdown { + margin-bottom: 0; } + .error-wrapper .maintenance-icons li i { + color: #e6edef; + font-size: 40px; } + .error-wrapper .maintenance-icons li:nth-child(2) i { + font-size: 80px; + margin-left: 90px; } + .error-wrapper .maintenance-icons li:nth-child(3) i { + font-size: 120px; + margin-top: -75px; + margin-right: 110px; } + div.dataTables_wrapper div.dataTables_paginate ~ .dataTables_filter { + display: block; + width: 100%; + margin-top: 20px; + margin-bottom: 0; } + .jvector-map-height { + height: 280px; } + .custom-card .card-profile .card-social li a { + padding: 8px; } + .custom-card .card-profile img { + height: 90px; } + .custom-card .card-profile .card-footer > div h3 { + font-size: 18px; } + .custom-card .profile-details h4 { + font-size: 20px; } + .custom-card .profile-details h6 { + margin-bottom: 20px; } + .custom-card .card-footer > div h3 { + font-size: 18px; } + .equal-height-lg { + min-height: unset !important; } + .mega-menu .onhover-show-div { + height: 435px; + overflow-x: scroll; + left: 215px; } + .mega-menu .mega-bg { + display: none; } + .mega-menu .lg-mt { + margin-top: 25px; } + .button-builder .button-generator-bx { + position: relative; + width: 100%; } + .blog-single .comment-box ul .comment-social { + margin-left: 0; } + .error-wrapper .maintenance-heading { + margin-top: 30px; } + .error-wrapper .maintenance-heading .headline { + font-size: 50px; + margin-top: -15%; + margin-bottom: 0px; } + .error-wrapper .maintenance-heading .cloud-second { + margin-top: -25px; } + .mobile-clock-widget #date { + margin-top: 15px; } + .social-widget-card .b-b-light { + padding: 15px; + margin-bottom: 15px; } + .weather-widget-two .bottom-whetherinfo .whether-content { + top: 34px; } + .cal-date-widget .cal-datepicker { + margin-top: 15px; } + .static-top-widget .media-body .icon-bg { + width: 70px; + height: 70px; } + .user-status table tbody tr th { + min-width: 120px; } + .user-status table tbody tr td:first-child { + min-width: 295px; } + .testimonial p { + margin-top: 17px; } + .contact-form { + padding: 10px; } + .contact-form .theme-form .form-icon { + margin-top: -57px; } + .calender-widget .cal-date { + width: 90px; + height: 90px; } + .calender-widget .cal-date h5 { + font-size: 16px; + padding: 18px; } + .calender-widget .cal-desc { + padding: 14px; } + .calender-widget .cal-desc p { + max-height: 114px; + overflow-y: auto; } + .browser-widget { + padding: 0px; } + .browser-widget img { + height: 50px; } + .browser-widget .media .media-body h4 { + font-size: 17px; } + .browser-widget .media .media-img { + width: 100%; + text-align: center; + margin-bottom: 10px; } + .static-top-widget .media-body { + padding-left: 20px; } + .widget-joins:before { + display: none; } + .widget-joins .ps-0 { + padding-left: 15px !important; } + .widget-joins .pe-0 { + padding-right: 15px !important; } + .widget-joins .border-after-xs:after { + content: ""; + position: absolute; + height: 1px; + width: 94%; + background-color: #efefef; + left: 0; + bottom: 0; + right: 0; + margin: 0 auto; } + .widget-joins .media .media-body svg { + width: 30px; + height: 30px; } + .crm-overall .overall-chart { + height: 200px; } + .product-page-main .proorder-lg-1 { + -webkit-box-ordinal-group: 0; + -ms-flex-order: -1; + order: -1; } + .chat-box .chat-menu { + background-color: #fff; } + .chat-box .chat-menu .people-list ul.list { + max-height: 444px; + overflow-y: auto; } + .chat-box .btn-lg { + font-size: 12px; } + .chat-box .people-list ul { + height: auto; } + .chat-box .chat-right-aside .chat .chat-header { + height: auto; } + .chat-box .chat-right-aside .chat .chat-header .chat-menu-icons li a i { + font-size: 19px; } + .chat-box .chat-right-aside .chat .chat-message { + margin: 0; + bottom: 15px; } + .chat-box .chat-history .total-time h2 { + font-size: 25px; } + .chat-box .chat-history .row .col-sm-7 { + padding-right: 0; } + .chat-box .border-tab.nav-tabs { + width: 100%; } + .chat-box .border-tab.nav-tabs .nav-item { + margin-right: 5px; } + .chat-box .chat-left-aside .people-list { + height: 493px; } + .chat-menu-icons { + display: block; + clear: both; + width: 100%; + text-align: right; } + .chat-box .border-tab.nav-tabs .nav-item a { + height: auto; + line-height: 1.2; } + .chat-history { + height: 447px; } + .chat-box .toogle-bar { + display: inline-block; + margin-right: 0 !important; } + .email-wrap .email-right-aside .email-body { + border-top-right-radius: 4px; + border-bottom-right-radius: 4px; } + .email-wrap .email-right-aside .email-body .b-r-light { + border-right: none !important; } + .email-wrap .email-right-aside .radius-left { + border-top-left-radius: 4px !important; + border-bottom-left-radius: 4px !important; } + .email-wrap .email-aside-toggle { + display: block; } + .email-wrap .email-sidebar { + position: relative; } + .email-wrap .email-sidebar .email-aside-toggle { + margin-bottom: 20px; + width: -webkit-fit-content; + width: -moz-fit-content; + width: fit-content; } + .email-wrap .email-sidebar .email-left-aside { + position: absolute; + top: 100%; + left: 0; + opacity: 0; + visibility: hidden; + z-index: 2; + width: 300px; + -webkit-transition: all 0.5s ease; + transition: all 0.5s ease; } + .email-wrap .email-sidebar .email-left-aside.open { + visibility: visible; + opacity: 1; } + .job-accordion .card { + margin-bottom: 20px; } + .job-sidebar { + position: relative; } + .job-sidebar .job-toggle { + display: block; + margin-bottom: 20px; } + .job-sidebar .job-left-aside { + position: absolute; + top: 100%; + left: 0; + margin-top: 20px; + opacity: 1; + visibility: hidden; + overflow-y: scroll; + z-index: 3; + max-width: 270px; + height: 600px; + background-color: #fff; + border: 1px solid #e6edef; + padding: 20px; } + .job-sidebar .job-left-aside.open { + opacity: 1; + visibility: visible; } + .learning-block > div:first-child { + -webkit-box-ordinal-group: 3; + -ms-flex-order: 2; + order: 2; } + .icon-lists div { + overflow: hidden; + text-overflow: ellipsis; + max-width: 209px; } + .like-comment-lg-mb { + margin-bottom: 12px; } + .ribbon-space-bottom { + top: 9px; } + .bootstrap-touchspin .touchspin-vertical-tab .input-group { + width: 98.5% !important; } + #batchDelete .jsgrid-grid-header .jsgrid-table .jsgrid-header-row .jsgrid-header-cell:first-child { + width: 95px !important; } + #batchDelete .jsgrid-grid-body .jsgrid-table .jsgrid-row .jsgrid-cell:first-child { + width: 95px !important; } + .vertical-menu-mt { + margin-top: 80px !important; } + .vertical-menu-mt .xl-none { + display: block; } + .sm { + position: fixed; + background-color: #fff; + width: 300px; + border-radius: 0; + border: 1px solid #e6edef; + top: 80px; + height: 100vh; + left: -300px; + z-index: 99; + -webkit-transition: all 0.3s ease; + transition: all 0.3s ease; + overflow: scroll; } + .calendar-wrap .fc-day-grid-event { + width: 87%; } } + +@media screen and (max-width: 1120px) { + .bg-gallery { + height: 94vh; } + .social-tab .input-group { + width: 190px; } } + +@media screen and (max-width: 1024px) { + .bg-gallery { + height: 90vh; } + .bg-sky-blue .main-landing .position-cards .landing-card-9 { + left: 16%; + top: 8%; + width: 13%; } + .bg-sky-blue .main-landing .position-cards .landing-square-2 { + left: 13%; + top: 6%; } + .bg-sky-blue .main-landing .position-cards .landing-card-2 { + left: 32%; + top: 3%; + width: 30%; } + .bg-sky-blue .main-landing .position-cards .landing-card-4 { + right: 16%; } + .bg-sky-blue .main-landing .position-cards .landing-card-5 { + top: 11%; } + .bg-sky-blue .main-landing .position-cards .landing-card-3 { + left: 3%; + bottom: 1%; + width: 32%; + right: unset; + top: unset; } + .bg-sky-blue .main-landing .position-cards .landing-card-10 { + right: 5%; + top: 36%; + width: 40%; } } + +@media screen and (max-width: 991px) { + .page-wrapper.compact-wrapper .page-body-wrapper header.main-nav { + top: 65px; } + .ttl-info { + display: block; } + .page-wrapper .page-body-wrapper .page-body { + min-height: calc(100vh - 65px); + margin-top: 65px; } + .customizer-contain { + top: 62px; } + .mobile-clock-widget #date { + margin-top: 20px; } + .m-r-30 { + margin-right: 20px; } + .card.full-card { + top: 60px; + width: calc(100vw - 0px); } + .card .sub-title { + font-size: 16px; } + .card .card-header { + padding: 20px; } + .card .card-header h5 { + font-size: 18px; } + .card .card-body { + padding: 20px; } + .card .card-footer { + padding: 20px; } + .setting-list { + top: 18px; } + .setting-list .setting-option { + height: 26px; } + .setting-list .setting-option li:first-child i { + font-size: 14px; } + .setting-list .setting-option li:first-child i.icon-angle-double-right { + font-size: 12px; } + .setting-primary, + .setting-secondary, + .setting-white { + width: 26px; + height: 26px; } + .trasaction-sec .transaction-totalbal { + padding-left: 20px; } + .document.page-wrapper.horizontal-wrapper .page-main-header.document-header { + height: 60px; } + .document-content .page-body { + margin-top: 90px !important; } + .document-content ul.nav-pills { + max-height: calc(100vh - 84px); } + .document-content .logo-wrapper { + display: none; } + .vertical-mobile-sidebar { + right: 75px; + top: 18px; } + .sm { + top: 80px; } + .bg-gallery { + height: 85vh; } + .bg-sky-blue .main-landing .landing-main-content { + margin: 0 auto; + text-align: center; + width: 100%; } + .bg-sky-blue .main-landing .landing-main-content img { + display: unset !important; } + .bg-sky-blue .main-landing .position-cards .landing-card-3 { + left: 3%; + bottom: 14%; + top: unset; } + .bg-sky-blue .main-landing .position-cards .landing-card-10 { + left: 0%; + top: 3%; + width: 35%; } + .bg-sky-blue .main-landing .position-cards .landing-card-8 { + left: 38%; + bottom: 18%; + width: 15%; } + .bg-sky-blue .main-landing .position-cards .landing-square-1 { + bottom: 18%; + left: 38%; } + .bg-sky-blue .main-landing .position-cards .landing-card-7 { + right: 17%; + bottom: 13%; } + .bg-sky-blue .main-landing .position-cards .landing-card-6 { + right: -4%; + bottom: 15%; } + .bg-sky-blue .main-landing .position-cards .landing-card-9 { + left: 34%; + top: 13%; + width: 10%; } + .bg-sky-blue .main-landing .position-cards .landing-square-2 { + left: 32%; + top: 11%; } + .bg-sky-blue .main-landing .position-cards .landing-card-2 { + right: 30%; + top: 10%; + width: 24%; + left: unset; } + .bg-sky-blue .main-landing .position-cards .landing-card-5 { + right: -3%; } + .viho-demo-section .gallery_content p, + .viho-demo-section .viho-demo-content p { + width: 70% !important; } + .landing_gallery_section_img { + margin-bottom: -60px; } + .landing_gallery_section_img .img-gallery-set3, + .landing_gallery_section_img .img-gallery-set2, + .landing_gallery_section_img .img-gallery-set4 { + bottom: 80px; } + .landing_gallery_section_img:before { + height: 500px; } + .landing-main .navbar-expand-lg .navbar-collapse { + position: absolute; + top: 90px; + background-color: white; + width: calc(100% - 30px); + border-radius: 5px; + -webkit-box-shadow: 0 0.5rem 1rem rgba(0, 0, 0, 0.15); + box-shadow: 0 0.5rem 1rem rgba(0, 0, 0, 0.15); + padding: 15px; } + .gallery { + margin-bottom: -20px; } + .my-gallery figure { + margin-bottom: 20px; } + #aniimated-thumbnials figure:nth-child(12), #aniimated-thumbnials figure:nth-child(11), #aniimated-thumbnials figure:nth-child(10), #aniimated-thumbnials figure:nth-child(9) { + margin-bottom: 20px; } + .photoswipe-pb-responsive { + padding-bottom: 25px !important; } + .page-wrapper .section-space { + padding: 60px 0; } + .page-wrapper .card .card-header .tab-content .m-t-30, + .page-wrapper .card .card-body .tab-content .m-t-30, + .page-wrapper .card .card-footer .tab-content .m-t-30 { + margin-top: 20px !important; } + .page-wrapper .card .card-header .tab-content .m-b-30, + .page-wrapper .card .card-body .tab-content .m-b-30, + .page-wrapper .card .card-footer .tab-content .m-b-30 { + margin-bottom: 20px !important; } + .page-wrapper .page-body-wrapper .page-header { + padding-bottom: 25px; } + .page-wrapper .page-body-wrapper .footer-fix { + margin-left: 0px; + padding-right: 15px; + width: calc(100% - 0px); } + .page-wrapper.compact-wrapper .page-main-header { + margin-left: 0 !important; + width: calc(100% - 0px) !important; } + .page-wrapper.compact-wrapper .page-main-header .main-header-right .logo-wrapper { + display: block; } + .page-wrapper.compact-wrapper .page-main-header .main-header-right .toggle-nav { + display: none; } + .page-wrapper.compact-wrapper .page-body-wrapper.sidebar-icon header.main-nav { + top: 59px; + -webkit-box-shadow: 0 4px 14px 0 rgba(4, 122, 251, 0.13); + box-shadow: 0 4px 14px 0 rgba(4, 122, 251, 0.13); } + .page-wrapper.compact-wrapper .page-body-wrapper.sidebar-icon header.main-nav .logo-wrapper { + display: none; } + .page-wrapper.compact-wrapper .page-body-wrapper.sidebar-icon header.main-nav .sidebar-user { + padding: 20px; } + .page-wrapper.compact-wrapper .page-body-wrapper.sidebar-icon header.main-nav .sidebar-user .badge-bottom { + top: 86px; } + .page-wrapper.compact-wrapper .page-body-wrapper.sidebar-icon header.main-nav .main-navbar .nav-menu { + height: calc(100vh - 304px); } + .page-wrapper.compact-wrapper .page-body-wrapper.sidebar-icon header.main-nav.close_icon .main-navbar .nav-menu { + height: unset; } + .page-wrapper .page-main-header .main-header-right { + margin: 0; } + .page-wrapper .page-main-header .main-header-right .nav-right .notification { + top: 10px; } + .page-wrapper .page-main-header .main-header-right .nav-right > ul { + top: 58px; + position: fixed; + z-index: -1; + background-color: #fff; + -webkit-transition: all linear 0.3s; + transition: all linear 0.3s; + border-top: 1px solid #e6edef; + -webkit-box-shadow: 0 2px 2px 2px rgba(113, 113, 113, 0.08); + box-shadow: 0 2px 2px 2px rgba(113, 113, 113, 0.08); + width: 100%; + left: 0; + padding: 0 20px; + -webkit-transform: translateY(-35px) scaleY(0); + transform: translateY(-35px) scaleY(0); + opacity: 0; + visibility: hidden; + height: 70px; } + .page-wrapper .page-main-header .main-header-right .nav-right > ul.open { + z-index: 1; + opacity: 1; + -webkit-transform: translateY(0px) scaleY(1); + transform: translateY(0px) scaleY(1); + visibility: visible; } + .page-wrapper .page-main-header .main-header-right > .mobile-toggle { + display: -webkit-box; + display: -ms-flexbox; + display: flex; + padding-right: 20px; } + .page-wrapper .page-main-header .main-header-right .main-header-left { + margin-right: 0; + padding: 15px 20px; } + .page-wrapper .page-main-header .main-header-left .logo-wrapper img { + margin-top: 0; } + .page-wrapper .page-main-header .left-menu-header { + padding: 15px 20px; } + .page-wrapper .page-main-header .left-menu-header ul li i { + display: inline; } + .page-wrapper.compact-sidebar.compact-wrapper .page-body-wrapper header.main-nav .main-navbar .nav-menu { + height: calc(100vh - 80px); + padding-top: 20px; + padding-bottom: 20px; } + .page-wrapper.compact-sidebar.compact-wrapper .page-body-wrapper header.main-nav .main-navbar .nav-menu .dropdown .menu-content { + top: 60px; } + .page-body-wrapper .page-body, + .page-body-wrapper footer { + margin-left: 0 !important; } + .page-body-wrapper .page-body #customer-review .owl-stage-outer, + .page-body-wrapper footer #customer-review .owl-stage-outer { + width: 100% !important; } + .page-body-wrapper .page-body .calender-widget .cal-desc p, + .page-body-wrapper footer .calender-widget .cal-desc p { + max-height: 101px; } + .product-page-details h3 { + font-size: 22px; } + .bookmark ul li a svg { + width: 12px; + height: 12px; } + .crm-activity > li + li { + margin-top: 10px; + padding-top: 10px; } + .add-post form .form-group { + margin-bottom: 20px; } + .add-post .dropzone { + margin-bottom: 20px; } + .customers.avatar-group { + margin-right: 20px; } + .main .langChoice { + right: 20px; + top: 11px; } + .socialprofile .social-btngroup { + margin: 20px 0; } + .socialprofile .social-group { + margin-top: 20px; } + .social-status form .form-group .form-control-social { + margin-bottom: 20px; } + .social-status .media { + margin-bottom: 20px; } + .timeline-content p, + .timeline-content .comments-box { + margin-top: 20px; } + .social-chat { + margin-top: 20px; } + .social-chat .media-body { + padding: 20px; } + .social-chat .your-msg, + .social-chat .other-msg { + margin-bottom: 20px; } + .social-network span { + margin-bottom: 20px; } + .details-about + .details-about { + margin-top: 20px; } + .activity-log .my-activity + .my-activity { + margin-top: 20px; } + .new-users-social { + margin-bottom: 20px; } + .timeline-small .media { + margin-bottom: 20px; } + .timeline-small .media .media-body h6 { + margin-bottom: 20px; } + .timeline-small .media .media-body p { + width: 75%; } + .timeline-small .media .timeline-round { + width: 45px; + height: 45px; + top: -14px; } + .timeline-small .media .timeline-round.timeline-line-1:after { + bottom: -41px; + height: 25px; } + .timeline-small .media .timeline-round.small-line:after { + bottom: -26px; + height: 14px; } + .timeline-small .media .timeline-round.medium-line:after { + bottom: -33px; + height: 17px; } + .timeline-small .media .timeline-round svg { + top: 14px; } + .landing-main .section-space { + padding: 60px 0; } + .landing-main .section-space p { + font-size: 15px; } + .landing-main .navbar-expand-lg .navbar-toggler { + background-color: #fff; } + .landing-main .navbar-expand-lg .navbar-toggler .navbar-toggler-icon i { + margin-top: 5px; + color: #24695c; } + .landing-main .navbar-expand-lg .navbar-collapse { + background-color: #fff; + z-index: 111; } + .landing-main .navbar-expand-lg .navbar-collapse .navbar-nav .nav-item a { + color: #000; } + .landing-main .footer-bg h2 { + font-size: 28px; } + .helper-classes { + padding: 20px; } + .floated-customizer-btn, + .floated-customizer-panel { + display: none; } + .page-builder .ge-canvas.ge-editing .row { + padding: 20px; } + .weather-widget-two .bottom-whetherinfo .whether-content { + top: -15px; } + .social-widget-card .b-b-light { + padding: 20px; + margin-bottom: 20px; } + .ecommerce-widget .progress-showcase { + margin-top: 20px; } + .crm-overall { + margin: 0 -20px -20px; } + .product-page-main { + padding: 20px; } + .grid-options ul li:nth-child(3) { + display: none; } + .feature-products form .form-group i { + right: 20px; } + .tabbed-card ul { + padding: 18px 15px; } + .tabbed-card ul { + top: -5px; } + .tabbed-card ul.border-tab.nav-tabs { + padding: 0; } + .tabbed-card ul.border-tab.nav-tabs .nav-item .nav-link { + padding: 18px 15px; } + .tilt-showcase .tilt-image { + text-align: center; } + .tilt-showcase .mt-4 { + margin-top: 20px !important; } + .todo .todo-list-wrapper .mark-all-tasks { + top: 20px; + right: 20px; } + .custom-card { + padding-bottom: 0; } + .custom-card .card-footer { + padding: 0; } + .custom-card .card-header { + border: none; } + .custom-card .dashboard-card { + padding: 0; } + .display-1 { + font-size: 4rem; } + .display-2 { + font-size: 3.5rem; } + .display-3 { + font-size: 2.5rem; } + .display-4 { + font-size: 1.5rem; } + .typography .h1 { + font-size: 34px; } + .typography .h2 { + font-size: 30px; } + .typography .h3 { + font-size: 26px; } + .typography .h4 { + font-size: 22px; } + .typography .h5 { + font-size: 18px; } + .typography .h6 { + font-size: 15px; } + h1 { + font-size: 34px; } + h2 { + font-size: 28px; } + h3 { + font-size: 26px; } + h4 { + font-size: 22px; } + h5 { + font-size: 18px; } + .flot-chart-container { + height: 300px; } + .card-absolute .card-header { + padding: 10px 15px !important; } + .comingsoon .comingsoon-inner .countdown .time { + width: 80px; + height: 80px; + font-size: 26px; } + footer { + bottom: -20px; } + .calendar-wrap .basic-calendar .external-events .fc-event + .fc-event { + margin-top: 10px; } + .owl-theme .owl-nav.disabled + .owl-dots { + margin-bottom: -10px; + margin-top: 15px; } + .card .card-header .card-header-right { + top: 11px; + right: 11px; } + .page-builder .ge-addRowGroup { + width: 100%; } + .comment-box .comment-social li:nth-child(n+2) { + padding-left: 15px; + margin-left: 15px; } + .error-wrapper { + padding: 35px 0; } + .error-wrapper .sub-content { + font-size: 14px; + line-height: 25px; + margin-top: 0px; } + .error-wrapper .error-heading { + margin-top: 30px; } + .error-wrapper .error-heading .headline { + font-size: 180px; + margin-top: 0; } + .error-wrapper .maintenance-heading { + margin-top: 30px; } + .search-page .info-block { + -ms-flex-wrap: wrap; + flex-wrap: wrap; } + .search-page .tab-content .pb-4 { + padding-bottom: 20px !important; } + .calender-widget .cal-desc { + padding: 10px 20px 20px !important; } + .calender-widget .cal-desc p { + max-height: 100px; } + .contact-form { + padding-top: 10px !important; } + .contact-form .theme-form { + padding: 20px; + margin-top: 27px; } + .contact-form .theme-form .form-icon { + margin-top: -47px; } + .user-status.product-chart { + max-height: 518px; + overflow: auto; } + .widget-joins .media .media-body i { + float: none !important; } + .xl-none { + display: block; } + .top-radius-blog { + width: 100%; } + .sm-100-w { + width: 100%; + height: 100%; } + /*Form Wizard One start*/ + .form-wizard .btn-mb { + margin-bottom: 20px; } + /*Form Wizard One ends*/ + /*Form Wizard Two Start*/ + .stepwizard { + margin-bottom: 20px; } + /*Form Wizard Two Ends*/ + /*Form Wizard Three Start*/ + .f1 .f1-steps { + margin-top: 20px; + margin-bottom: 20px; } + /*Form Wizard Three ends*/ + /*Form Wizard Four Start*/ + .wizard-4 ul.anchor { + padding-right: 20px; } + /*Form Wizard Four ends*/ + .border-tab.nav-tabs { + margin-bottom: 20px; } + .tab-content ~ .nav-tabs.border-tab { + margin-top: 20px; } + .dataTables_wrapper .dataTables_length { + margin-bottom: 20px; } + .dataTables_wrapper table.dataTable { + margin-bottom: 20px !important; } + .search-page .info-block + .info-block { + padding-top: 20px; + margin-top: 20px; } + .search-page #video-links .embed-responsive + .embed-responsive { + margin-top: 20px; } + .lg-mt { + margin-top: 20px; } + .gallery-with-description { + margin-bottom: -20px; } + .gallery-with-description a > div { + margin-bottom: 20px; } + .clipboaard-container p { + margin-bottom: 8px; } + .m-b-30 { + margin-bottom: 20px !important; } + .nav-md-mt { + margin-top: 20px; } + .navs-icon { + padding: 20px; } + .navs-icon .main-section { + padding-top: 20px; } + .navs-icon .separator { + margin: 20px 0; } + .nav-list { + padding: 20px; } + .navs-dropdown button { + margin-top: 20px; } + .navs-dropdown .onhover-show-div { + top: 68px; } + .animated-modal .form-group { + width: 100%; + display: block; } + .animated-modal .me-4 { + margin-right: 0 !important; } + .animated-modal .animated-modal-md-mb { + margin-bottom: 20px !important; } + .steps-md-mt { + margin-top: 20px; } + .btn-group-wrapper .m-b-30:last-child { + margin-bottom: 0 !important; } + #advance-5_wrapper .dataTables_paginate { + margin-bottom: 20px; } + .click2edit ~ .note-editor.note-frame { + margin-bottom: 20px; } + .summer-note .card-header, + .summer-note .card-body { + padding: 20px; } + .chat-box .chat-left-aside .people-list { + height: 483px; } + .chat-box .chat-menu { + top: 75px; } + .chat-box .chat-menu .user-profile .user-content h5 { + margin-bottom: 10px; } + .chat-box .chat-menu .user-profile .follow span { + font-size: 12px; } + .chat-box .chat-menu .user-profile .follow .follow-num { + font-size: 18px; } } + +@media screen and (max-width: 900px) { + .bg-gallery { + height: 80vh; } } + +@media screen and (max-width: 800px) { + .bg-gallery { + height: 75vh; + min-height: 560px; } } + +@media screen and (max-width: 767px) { + .order-history table tbody tr td img { + width: 25px !important; } + .calendar-basic .lnb-calendars > div { + padding: 12px 0; } + .learning-box .details-main { + margin: 20px; } + .ace-editor { + height: 280px; + width: 100%; } + .dashboard-2-main .card .card-header p { + font-size: 0; } + .card-social { + margin-top: 30px; } + .btn-showcase { + text-align: center; } + .form-inline .form-group + .form-group { + margin-top: 10px; } + .credit-card .text-center img { + margin-bottom: 20px; } + .starter-kit-fix .page-body { + margin-bottom: 78px; } + .navbar-toggler { + position: absolute; + right: 0; + top: 10px; } + .document .page-main-header .document-right-nav .navbar .navbar-collapse .navbar-nav .nav-item .nav-link { + color: #24695c !important; } + .document .navbar-collapse { + position: absolute; + width: 100%; + background-color: #fff; + top: 60px; + padding: 15px; + left: 0; + right: 0; } + .products-total { + margin-bottom: 10px; } + .page-main-header .main-header-right .left-menu-header ul li .search-form input { + width: 90% !important; } + .page-main-header .main-header-right .main-header-left { + width: auto; } + .page-main-header .main-header-right .main-header-left .toggle-sidebar { + margin-left: 30px; } + .product-page-main .border-tab.nav-tabs .nav-item { + width: auto !important; } + .blog-box .blog-details-main .blog-social li { + padding: 0 12px; } + .footer-copyright ~ div { + text-align: center; } + .footer-copyright ~ div p { + float: none; } + .event-calendar { + display: block !important; } + .event-calendar #right { + width: 100%; } + #lnb { + width: auto; } + .ecommerce-widget .progress-showcase .progress { + height: 15px; } + .general-widget .custom-card { + padding: 0; } + .general-widget .custom-card .card-profile { + margin-top: -45px; } + .general-widget .custom-card .card-header { + padding: 0; } + .general-widget .custom-card .card-header img { + margin-top: 0; } + .general-widget .custom-card .card-social { + margin-top: unset; } + .tabs-scoial.border-tab.nav-tabs { + display: -webkit-box; + display: -ms-flexbox; + display: flex; } + .edit-profile .card .card-header h4 { + font-size: 22px; } + .edit-profile .profile-title .media .media-body h3 { + font-size: 20px; } + .tabbed-card ul { + padding: 10px 0 5px 0; + position: relative; + width: 100%; + left: 0; } + .search-page .search-vid-block > div:nth-child(n + 2) { + margin-top: 20px; } + .product-page-details h3 { + font-size: 18px; } + .filter-block h4 { + font-size: 18px; + margin-bottom: 15px; } + .filter-block ul li:nth-child(n + 2) { + margin-top: 10px; } + .center-content p { + text-align: center; } + .center-content p span { + display: block; } + .timeline-small .media .media-body p { + width: 100%; } + .my-gallery figure:nth-child(9), .my-gallery figure:nth-child(10) { + margin-bottom: 20px; } + .chat-box .chat-right-aside .chat .chat-message .text-box .btn { + font-size: 0; } + .chat-box .chat-right-aside .chat .chat-message .text-box .btn:before { + position: absolute; + content: "\e661"; + font-family: themify; + font-size: 18px; + top: 11px; + left: 20px; } + .chat-box .border-tab.nav-tabs { + display: -webkit-box; + display: -ms-flexbox; + display: flex; } + .chat-box .chat-menu .nav-tabs .nav-item a { + height: 50px; } + .chat-box .people-list ul { + margin-bottom: -15px; } + .chat-box .people-list ul li { + display: inline-block; + padding: 10px; + margin-right: 5px; + border: 1px solid #e6edef; + margin-bottom: 10px; } + .chat-box .people-list ul li:last-child { + padding-bottom: 10px; } + .chat-box .chat-left-aside .people-list { + height: auto; } + .clockpicker-align-top { + left: 55px !important; + top: 470px !important; } + .clockpicker-align-top .arrow { + display: none; } + .form-builder-column .form-body { + min-height: 250px; } + .form-builder-2-header { + -ms-flex-wrap: wrap; + flex-wrap: wrap; } + .form-builder-2-header > div { + width: 100%; + margin-top: 10px; } + .form-builder-2-header > div nav { + float: none; } + .dropzone.dz-clickable { + padding: 20px; } + .lg-mt-col { + margin-top: 20px; } + .form-builder .drag-box fieldset { + padding: 20px; + margin-top: 20px; } + .form-builder #components { + margin-top: 20px; } + .form-builder .component label { + padding-top: 0px; } + .mega-menu .onhover-show-div { + height: 415px; + left: 0; + top: 61px; + padding: 20px; } + .mega-menu .lg-mt { + margin-top: 15px; } + .bg-gallery { + min-height: 530px; } + .landing_gallery_section_img:before { + height: 400px; } + .page-wrapper .section-space { + padding: 30px 0; } + .and-many-more { + font-size: 65px; } + .container-modify .img-effect { + max-width: 320px; + margin: 0 auto; } + .bg-sky-blue .main-landing .position-cards .landing-card-9 { + left: 12%; + top: 33%; + width: 12%; } + .bg-sky-blue .main-landing .position-cards .landing-square-1 { + top: 32%; + right: 9%; + bottom: unset; + left: unset; } + .bg-sky-blue .main-landing .position-cards .landing-card-8 { + right: 9%; + top: 32%; + left: unset; + bottom: unset; } + .bg-sky-blue .main-landing .position-cards .landing-square-2 { + left: 9%; + top: 31%; } + .bg-sky-blue .main-landing .position-cards .landing-card-7 { + right: 21%; + width: 40%; } + .bg-sky-blue .main-landing .position-cards .landing-card-2 { + right: 44%; } + .viho-demo-section .viho-demo-content img, + .viho-demo-section .gallery_content img { + width: 30px !important; } + .viho-demo-section .viho-demo-content p, + .viho-demo-section .gallery_content p { + width: 100% !important; } + .and-more { + top: 40%; } + .landing-main .section-space { + padding: 40px 0; } + .landing-main .main-landing { + padding: 27px 0 0 0; } + .page-builder .ge-canvas.ge-editing .ge-tools-drawer { + margin: 10px 0 0 10px; } + .page-builder .ge-canvas.ge-editing .ge-tools-drawer > a { + padding: 0 5px; } + .reader { + margin-top: 15px; + height: auto !important; } + .range-slider.theme-form .form-group { + margin-bottom: 0; } + .note-editor .btn-group .btn { + font-size: 11px; } + .user-status tbody tr td { + min-width: 284px; } + .user-status tbody tr td + td { + min-width: unset; } + .user-status tbody tr td + td + td { + min-width: 100px; } + .text-md-end { + text-align: right; } + .star-ratings .stars { + padding: 0; } + .form-inline.d-inline-block { + display: block !important; + width: 100%; } + .form-inline.d-inline-block .form-control { + margin-bottom: 10px; } + .reset-password-box { + width: 500px; + margin: 0 auto; } + .reset-password-box .card { + padding: 20px; } + .user-card .custom-card { + padding: 0; } + .user-card .custom-card .card-header { + padding: 0; } + .user-card .custom-card .card-profile { + margin-top: -40px; } + .user-card .custom-card .card-social { + margin-top: unset; } + .custom-card .card-header img { + -webkit-transform: scale(1); + transform: scale(1); } + .custom-card .card-profile img { + height: 75px; } + .custom-card .profile-details h4 { + font-size: 18px; } + .custom-card .card-footer > div { + padding-top: 15px; + padding-bottom: 15px; + padding-right: 10px; + padding-left: 10px; } + .error-wrapper .maintenance-icons li i { + color: #e6edef; + font-size: 30px; } + .error-wrapper .maintenance-icons li:nth-child(2) i { + font-size: 60px; + margin-top: -10px; + margin-left: 70px; } + .error-wrapper .maintenance-icons li:nth-child(3) i { + font-size: 90px; + margin-right: 80px; } + .authentication-main .auth-innerright { + min-height: unset; + padding: 0; } + .authentication-main .auth-innerright .social-media li { + font-size: 14px; } + .loader-box { + -webkit-box-pack: center; + -ms-flex-pack: center; + justify-content: center; } + .dataTables_wrapper .dataTables_length { + margin-bottom: 20px; } + .dataTables_wrapper .dataTables_filter { + margin-left: 0; + margin-top: 0; + margin-bottom: 20px; } + div.dataTables_wrapper div.dataTables_info { + padding-top: 0; } + div.dataTables_wrapper div.dataTables_length label, div.dataTables_wrapper div.dataTables_filter label { + float: none; } + div.dataTables_wrapper div.dataTables_paginate { + float: none; + margin-top: 20px !important; + margin-left: 0 !important; } + .calendar-wrap .fc-basic-view .fc-day-number { + padding: 0 0px !important; } + .calendar-wrap .fc-events-container { + margin-top: 0px; } + .calendar-wrap .fc-events-container h6, + .calendar-wrap .fc-events-container .checkbox { + text-align: right; } + .calendar-wrap .checkbox label { + margin-top: 0; } + .calendar-wrap .fc-toolbar .fc-left .fc-next-button .fc-icon-right-single-arrow:after { + font-size: 12px !important; } + .calendar-wrap .fc-toolbar .fc-left .fc-prev-button .fc-icon-left-single-arrow:after { + font-size: 12px !important; } + .calendar-wrap .fc-toolbar .fc-left .fc-today-button, + .calendar-wrap .fc-toolbar .fc-right .fc-today-button { + padding-top: 0px !important; } + .calendar-wrap .fc { + margin-top: 0px; } + .calendar-wrap .fc button { + font-size: 14px !important; + padding: 0 5px !important; } + .calendar-wrap .fc .fc-left { + margin-bottom: 10px; } + .calendar-wrap .fc .fc-toolbar > div { + display: block !important; + float: none !important; } + .calendar-wrap .fc .fc-toolbar > * :first-child { + font-size: 18px; } + .calendar-wrap .fc .fc-toolbar > * > * { + float: none !important; } + .btn-group-wrapper { + text-align: center; } + .btn-group-wrapper .m-b-30 { + margin-bottom: 15px !important; } + .btn-group-showcase { + text-align: center; } + .btn-group-showcase .btn-group { + margin-right: 0; + margin-bottom: 15px; } + .btn-group .btn { + font-size: 14px; + padding: 0.375rem 1.3rem; } + .animate-widget .text-center { + display: none; } + .calender-widget .cal-desc p { + max-height: 100%; } + .user-status.product-chart { + max-height: 100%; } + .user-status table thead tr th:nth-child(3) { + min-width: 124px; } + .mega-menu .onhover-show-div { + height: 350px; } + .page-builder .ge-canvas .column { + padding: 0 !important; } + .page-builder .ge-content-type-ckeditor h3 { + font-size: 20px; } + .page-builder .ge-content-type-ckeditor p { + font-size: 12px; } + .page-builder .ge-row-icon { + display: none !important; } + /* font-awesom icon page */ + .icon-hover-bottom .form-group input { + min-width: 270px; } + .calendar-wrap .fc button { + padding: 5px; } + .calendar-wrap .fc-day-grid-event { + margin: 0; + padding: 5px; + width: inherit; } + .calendar-wrap .fc-toolbar h2 { + font-size: 20px; + line-height: 35px; + font-weight: bold; } + .calendar-wrap .basic-calendar .external-events { + margin-top: 0px; } + .blog-single .comment-box .media h6 { + margin-bottom: 10px; } + .blog-single .comment-box .media img { + margin-right: 30px; } + .blog-single .comment-box .comment-social { + margin-bottom: 10px; } + .search-page #image-links .info-block.m-t-30 { + margin-top: 0 !important; } + .authentication-main .authentication-box { + width: 100%; } + .authentication-main .auth-innerright { + display: inherit; } + .map-chart .chart-container { + height: 300px; } + .candidcahrt { + height: 250px; } + .bar-chart-widget .earning-details i { + right: 0; } + .serial-chart .chart-container { + height: 300px; } + .bottom-content { + padding: 10px; } + .bottom-content p { + font-size: 12px; } + .stepwizard .stepwizard-row:before { + top: 17px; } + .icon-hover-bottom .icon-popup div .flag-icon { + width: 30px; + height: auto; } + .icon-hover-bottom .icon-popup .form-group input { + min-width: 40%; } + .footer-links { + text-align: center; } + .footer-copyright { + text-align: center !important; } + .jvector-map-height { + height: 150px; } + .sm-left-text { + text-align: left !important; } + .email-wrap .email-right-aside .email-content .email-top .d-flex { + padding-bottom: 0; } + .email-wrap .email-right-aside .email-content .email-top .float-end { + float: left !important; } + .email-wrap .email-right-aside .email-content .email-wrapper .attachment ul li:last-child { + padding-right: 0; } + .email-wrap .email-right-aside .email-content .email-wrapper .attachment ul li img { + width: 90px; + height: 90px; } + .email-wrap .email-right-aside .email-profile { + overflow-x: auto; } + .email-wrap .email-right-aside .email-profile .inbox { + width: 700px; } + .email-wrap .email-right-aside .email-profile .inbox p { + width: calc(100% - 200px); + max-width: 500px; } + .alert-dismissible p { + overflow: hidden; + text-overflow: ellipsis; + white-space: nowrap; + max-width: 294px; } + .button-group-mb-sm { + margin-bottom: 5px; } + .card-block .table-responsive .table tbody tr td span { + overflow: hidden; + text-overflow: ellipsis; + white-space: nowrap; + max-width: 100px; } + .card-block .table-responsive .progress-content tbody tr td span { + text-overflow: ellipsis; + white-space: normal; + max-width: 50px; } + .card-block .table-responsive .checkbox-td-width tbody tr td, + .card-block .table-responsive .radio-first-col-width tbody tr td { + min-width: 200px !important; } + #batchDelete .jsgrid-grid-header .jsgrid-table .jsgrid-header-row .jsgrid-header-cell:first-child { + width: 119px !important; } + #batchDelete .jsgrid-grid-body .jsgrid-table .jsgrid-row .jsgrid-cell:first-child { + width: 119px !important; } + .jsgrid .jsgrid-pager-container { + text-align: center; } + .chat-box .chat-menu .nav-tabs .nav-item { + width: 32.33%; } + .chat-box .chat-menu .people-list ul.list { + max-height: 433px; + margin-bottom: 15px; } + .chat-box .chat-menu #info-profile, + .chat-box .chat-menu #info-contact { + margin-bottom: 15px; } + .chat-box .chat-history .call-content > div { + padding-top: 40px; + height: auto; } + .call-chat-sidebar { + max-width: 100%; + width: 100%; + -ms-flex-preferred-size: auto; + flex-basis: auto; } + .reset-password-box .theme-form .form-group .btn { + margin-top: 15px !important; } + .lg-outer .lg-actions .lg-next, + .lg-outer .lg-actions .lg-prev { + top: 48%; } + .feature-products .filter-toggle { + padding: 8px 15px; + margin-left: 10px; + border-radius: 5px; + background-color: rgba(36, 105, 92, 0.05); + color: #24695c; } + .feature-products span { + font-size: 12px; } + .feature-products span.f-w-600 { + padding-top: 8px; + display: inline-block; } + .grid-options ul li { + display: none; } + .product-wrapper.sidebaron .product-grid .product-wrapper-grid { + margin-left: 0; } + .product-filter .product-box { + -ms-flex-wrap: nowrap; + flex-wrap: nowrap; } + .product-filter .product-box .product-img { + width: 100px; } + .product-filter .product-box .product-details { + padding: 0 !important; } } + +@media screen and (max-width: 700px) { + .bg-gallery { + min-height: 470px; } } + +@media screen and (max-width: 650px) { + .bg-gallery { + height: 63vh; } } + +@media screen and (max-width: 600px) { + .bg-gallery { + height: 60vh; } } + +@media screen and (max-width: 540px) { + .bg-gallery { + height: 57vh; } } + +@media screen and (max-width: 575px) { + .search-form .search-bg > i { + display: none !important; } + .job-accordion .card { + -webkit-box-shadow: 0 0 11px 5px rgba(113, 113, 113, 0.08) !important; + box-shadow: 0 0 11px 5px rgba(113, 113, 113, 0.08) !important; } + .alert-dismissible p { + max-width: 209px; } + .customizer-links { + display: none; } + .m-r-30 { + margin-right: 15px; } + .card .card-footer { + padding: 15px; } + .setting-list { + top: 15px; } + .setting-list .setting-option { + height: 21px; } + .setting-list .setting-option li:first-child i { + font-size: 12px; } + .setting-primary, + .setting-secondary, + .setting-white { + width: 22px; + height: 22px; } + .feature-products .text-end { + text-align: left !important; } + .feature-products .select-options { + float: left; + margin-right: 10px; } + .call-chat-body .chat-box { + height: auto; } + .chat-box .chat-menu .people-list ul.list { + max-height: 400px; } + .chat-box .chat-history .call-content { + min-height: 447px; } + .center-content { + margin-top: 5px; } + .center-content p { + text-align: left; } + .center-content p i { + margin-left: 0 !important; } + .dashboard-default-sec .card.income-card .card-body .round-box, + .dashboard-2-main .card.income-card .card-body .round-box { + margin-bottom: 10px; + width: 45px; + height: 45px; } + .dashboard-default-sec .card.income-card .card-body .round-box svg, + .dashboard-2-main .card.income-card .card-body .round-box svg { + height: 18px; } + .dashboard-default-sec .card.income-card .card-body .knob-block canvas, + .dashboard-2-main .card.income-card .card-body .knob-block canvas { + width: 80px; + height: 80px; } + .dashboard-default-sec .card.income-card .card-body h5, + .dashboard-2-main .card.income-card .card-body h5 { + font-size: 18px; + margin-bottom: 5px; } + .dashboard-default-sec .card.income-card .card-body p, + .dashboard-2-main .card.income-card .card-body p { + margin-bottom: 10px; } + .dashboard-default-sec .card .card-header i, + .dashboard-2-main .card .card-header i { + font-size: 12px; } + .dashboard-default-sec #chart-dashbord .apexcharts-legend.position-right, .dashboard-default-sec #chart-dashbord .apexcharts-legend.position-left { + top: 28px !important; } + .profile-greeting h3 { + font-size: 22px; + margin-bottom: 5px; } + .profile-greeting p { + margin-bottom: 10px; + line-height: 1.4; + padding: unset; } + .trasaction-sec .transaction-totalbal h2 { + font-size: 16px; } + .support-ticket .pro-gress .total-num { + font-size: 18px; } + .page-main-header .main-header-right .left-menu-header ul li .search-form .form-control-plaintext { + top: 44px; + position: absolute; + -webkit-transition: all linear 0.3s; + transition: all linear 0.3s; + left: -15px; + background-color: #fff; + -webkit-transform: translateY(-35px) scaleY(0); + transform: translateY(-35px) scaleY(0); + opacity: 0; + border-radius: 0; + visibility: hidden; + width: 180px !important; + padding: 10px 10px 10px 15px; } + .page-main-header .main-header-right .left-menu-header ul li .search-form .form-control-plaintext.open { + -webkit-transform: translateY(0px) scaleY(1); + transform: translateY(0px) scaleY(1); + opacity: 1; + visibility: visible; + -webkit-transition: all linear 0.3s; + transition: all linear 0.3s; + z-index: 2; } + .page-main-header .main-header-right .nav-right .btn-primary-light { + padding: 6px 15px; } + .page-main-header .main-header-right .nav-right .btn-primary-light svg { + margin-right: 6px; } + .page-main-header .main-header-right .nav-right .bookmark-dropdown { + right: -168px; + width: 270px; } + .page-wrapper .page-main-header .main-header-right .left-menu-header .search-form > .fa { + display: none; } + .page-wrapper .page-main-header .main-header-right > .mobile-toggle { + padding-right: 15px; } + .page-wrapper .page-main-header .main-header-right .nav-right > ul { + top: 55px; } + .page-wrapper .page-main-header .main-header-right .nav-right > ul .search-form i { + display: none; } + .page-wrapper .page-main-header .main-header-right .nav-right.right-menu ul { + -webkit-box-pack: end; + -ms-flex-pack: end; + justify-content: flex-end; } + .page-wrapper .page-main-header .main-header-right .nav-right.right-menu ul li.px-0 { + padding: 6px !important; } + .page-wrapper .page-main-header .main-header-right .nav-right > ul li { + margin-right: 10px; } + .page-wrapper .page-main-header .main-header-right .nav-right > ul li.onhover-dropdown ul li { + margin-right: 0 !important; } + .page-wrapper .page-main-header .main-header-right .nav-right .notification-dropdown { + left: -93px !important; + padding: 0; + width: 270px !important; } + .page-wrapper .page-main-header .main-header-right .nav-right .notification-dropdown.onhover-show-div:before, .page-wrapper .page-main-header .main-header-right .nav-right .notification-dropdown.onhover-show-div:after { + left: 102px !important; + right: unset !important; } + .page-wrapper .page-main-header .main-header-right .nav-right .chat-dropdown { + left: -132px; + width: 270px; + padding: 0; } + .page-wrapper .page-main-header .main-header-right .nav-right .chat-dropdown:after, .page-wrapper .page-main-header .main-header-right .nav-right .chat-dropdown:before { + left: 138px !important; } + .page-wrapper .page-main-header .main-header-right .main-header-left { + padding: 15px; } + .page-wrapper .page-main-header .main-header-right .main-header-left .toggle-sidebar { + margin-left: 20px; } + .page-wrapper .page-body-wrapper .page-header .btn-group .btn { + padding: 8px 30px; } + .pagination-lg .page-link { + font-size: 1rem; } + .bookmark { + text-align: left; + margin-top: 10px; } + .page-wrapper.compact-wrapper .page-body-wrapper.sidebar-icon header.main-nav { + top: 59px; } + .page-wrapper.compact-wrapper .page-body-wrapper.sidebar-icon header.main-nav .main-navbar .nav-menu { + height: calc(100vh - 79px); } + footer p { + font-size: 12px; } + .mobile-clock-widget #date { + margin-top: 15px; } + .social-widget-card .b-b-light { + padding: 15px; + margin-bottom: 15px; } + .cal-date-widget .cal-datepicker { + margin-top: 15px; } + .static-top-widget .media-body .icon-bg { + width: 70px; + height: 70px; } + .animat-md-center { + text-align: center; } + .add-post form .m-checkbox-inline label { + margin-right: 15px; } + .add-post form .form-group { + margin-bottom: 15px; } + .add-post .dropzone { + margin-bottom: 15px; } + .add-post .btn-showcase { + text-align: center; } + .add-post .btn-showcase .btn { + margin-right: 10px; + padding: 5px 13px; } + .main .langChoice { + right: 15px; + padding: 4px 7px; } + .language-xs { + margin-top: 15px; } + .product-color li { + width: 15px; + height: 15px; } + ul.pro-services li h5 { + font-size: 14px; } + ul.pro-services li p { + font-size: 13px; } + .tabs-scoial.border-tab.nav-tabs .nav-item .nav-link { + height: auto; } + .customers.avatar-group { + margin-right: 15px; } + .vertical-mobile-sidebar { + top: 19px; } + .hdg_main { + font-size: 16px; } + .alert-theme i { + margin-right: 10px !important; } + .alert-theme button { + top: 2px !important; } + .chart-widgets-small .chart-container { + height: unset !important; } + .bar-chart-widget .earning-details i { + right: -30px; } + .widget-joins:before { + display: none; } + .widget-joins .ps-0 { + padding-left: 15px !important; } + .widget-joins .border-after-xs:after { + content: ""; + position: absolute; + height: 1px; + width: 94%; + background-color: #efefef; + left: 0; + bottom: 0; + right: 0; + margin: 0 auto; } + .clockpicker-align-top { + left: 45px !important; + top: 406px !important; } + .gallery { + margin-bottom: -15px; } + .my-gallery figure { + margin-bottom: 15px; } + .my-gallery figure:nth-child(9), .my-gallery figure:nth-child(10) { + margin-bottom: 15px; } + .my-gallery.gallery-with-description figure:last-child { + margin-bottom: 20px; } + #aniimated-thumbnials figure:nth-child(12), #aniimated-thumbnials figure:nth-child(11), #aniimated-thumbnials figure:nth-child(10), #aniimated-thumbnials figure:nth-child(9) { + margin-bottom: 15px; } + .photoswipe-pb-responsive { + padding-bottom: 30px !important; } + .avatar-showcase .pepole-knows { + text-align: center; } + .avatar-showcase .pepole-knows ul li { + margin-right: 14px; } + .social-app-profile .hovercard .user-image .avatar { + margin-top: -56px; } + .social-app-profile .hovercard .user-image .avatar img { + width: 100px; + height: 100px; } + .social-app-profile .hovercard .user-image .icon-wrapper { + left: 52%; + top: 10px; + height: 30px; + width: 30px; + font-size: 15px; } + .social-app-profile .hovercard .user-image .icon-wrapper:hover { + font-size: 12px; } + .social-app-profile .hovercard .user-image .share-icons { + right: 15px; } + .social-app-profile .hovercard .user-image .share-icons li { + margin-right: 0px; } + .social-app-profile .hovercard .info .tabs-scoial .user-designation { + border-top: none; + border-bottom: none; + margin-bottom: 0; + padding: 0px 0px; } + .socialprofile .social-btngroup { + margin: 15px 0; } + .socialprofile .social-group { + margin-top: 15px; } + .social-status form .form-group .form-control-social { + margin-bottom: 15px; } + .social-status .media { + margin-bottom: 15px; } + .new-users-social { + margin-bottom: 15px; } + .tabs-scoial { + position: relative; + padding-top: 90px; } + .tabs-scoial li:nth-child(3) { + position: absolute; + top: 25px; + left: 0; + right: 0; + margin: 0 auto; } + .tabs-scoial.border-tab.nav-tabs .nav-item .nav-link { + padding: 10px 18px; } + .timeline-content p, + .timeline-content .comments-box { + margin-top: 15px; } + .timeline-content .comments-box .media .m-r-20 { + margin-right: 10px; } + .timeline-content .comments-box .media .media-body .input-group .input-group-append .btn { + padding: 6px; } + .timeline-content .comment-number i { + margin-right: 15px; } + .social-chat { + margin-top: 15px; } + .social-chat .media-body { + padding: 15px; } + .social-chat .your-msg, + .social-chat .other-msg { + margin-bottom: 15px; } + .social-network span { + margin-bottom: 15px; } + .social-list .media { + margin-bottom: 15px; } + .details-about + .details-about { + margin-top: 15px; } + .your-details-xs { + margin-top: 15px; } + .social-header h5 span.pull-right { + float: right !important; + margin-top: 0 !important; } + .social-header h5 span.pull-right svg { + width: 18px; + height: 18px; } + .activity-log .my-activity + .my-activity { + margin-top: 15px; } + .photos ul li { + width: 70px; } + .edit-profile .card .card-header h4 { + font-size: 18px; } + .edit-profile .profile-title .media .media-body h3 { + font-size: 16px; } + .timeline-small .media { + margin-bottom: 15px; } + .timeline-small .media .media-body h6 { + margin-bottom: 15px; } + .timeline-small .media .timeline-round.timeline-line-1:after { + bottom: -39px; + height: 30px; } + .timeline-small .media .timeline-round.small-line:after { + bottom: -17px; + height: 8px; } + .timeline-small .media .timeline-round.medium-line:after { + bottom: -30px; + height: 22px; } + #cd-timeline { + margin-right: unset; } + .bootstrap-touchspin .input-group .btn { + padding: 5px 15px; } + .and-many-more { + font-size: 52px; } + .page-wrapper .section-space { + padding: 40px 0; } + .landing_gallery_section_img { + margin-bottom: -40px; } + .bg-sky-blue .main-landing { + height: 480px; } + .bg-sky-blue .main-landing .position-cards { + display: none; } + .landing-main h4 { + font-size: 17px; } + .landing-main .main-landing { + padding: 0px 0px 0px 0px; } + .landing-main .footer-bg h2 { + font-size: 21px; } + .landing-main .footer-bg button { + font-size: 18px; } + .helper-classes { + padding: 15px; } + .form-builder-2-header ul li { + text-align: left; } + .form-builder-2-header .form-inline { + display: block; + width: 100%; } + .form-builder-2-header .form-inline .form-group { + width: 100%; + margin-right: 0; } + .form-builder-2-header .form-inline button { + width: 100%; + text-align: left; } + .page-builder .btn-grid { + margin-bottom: 7px; + padding-right: 5px; } + .page-builder .ge-canvas.ge-editing .row { + padding: 15px; } + .page-builder .ge-canvas.ge-editing .ge-tools-drawer { + margin: 10px; } + .wizard-4 .step-container div.content { + margin-top: 10px; } + .nav-tabs .nav-item.show .nav-link { + border-top: 0; + border-bottom: 0; } + .nav-tabs .nav-link { + border-top: 0; + border-bottom: 0; } + .nav-tabs .nav-link:hover, .nav-tabs .nav-link.active, .nav-tabs .nav-link:focus { + border-top: 0; + border-bottom: 0; } + .border-tab.nav-tabs .nav-item { + width: 100% !important; } + .border-tab .weather-widget-two .bottom-whetherinfo .whether-content { + top: 35px; } + .border-tab .social-widget-card .b-b-light { + padding: 15px; + margin-bottom: 15px; } + .border-tab .ecommerce-widget .progress-showcase { + margin-top: 15px; } + .nav { + display: inherit; + text-align: center; + border-bottom: none; } + .border-tab.nav-left .nav-link { + text-align: center; + border-left: none; } + .border-tab.nav-right .nav-link { + text-align: center; + border-right: none; } + .border-tab.nav-tabs { + margin-bottom: 10px; } + .tab-content ~ .nav-tabs.border-tab { + margin-top: 10px; } + .nav-pills { + text-align: center; } + .crm-overall { + margin: 0 -15px -15px; } + .product-page-main { + padding: 15px; } + .product-page-main .m-t-15 { + margin-top: 0 !important; } + .product-page-main .m-t-15 .btn { + margin-top: 10px; } + .product-page-main .pro-group .pro-shop button:last-child { + margin-top: 15px; } + .tabbed-card ul { + padding: 10px 0 5px 0; + position: relative; + width: 100%; + left: 0; } + .tabbed-card ul.border-tab.nav-tabs .nav-item .nav-link { + padding: 5px 15px 10px; } + .todo .action-box.large { + height: 25px; + width: 25px; } + .todo .action-box.large .icon { + font-size: 14px; + vertical-align: -3px; } + .todo .todo-list-wrapper #todo-list li .task-container .task-label { + font-size: 14px; } + .todo .todo-list-wrapper .mark-all-tasks { + top: 15px; + right: 15px; } + .datetime-picker label { + text-align: left !important; } + .redial-chart-block { + text-align: center; } + #nav-tabContent { + margin-top: 15px; } + .reset-password-box { + width: 430px; } + .auth-bg { + padding: 25px 15px; } + .auth-bg-effect { + display: none; } + .date-picker .text-end { + text-align: left !important; } + .dataTables_wrapper table.dataTable { + margin-bottom: 15px !important; } + ul.pagination li:before { + line-height: 3; } + div.table-responsive > div.dataTables_wrapper > div.row > div[class^="col-"]:last-child { + padding-left: 0 !important; } + div.table-responsive > div.dataTables_wrapper > div.row > div[class^="col-"]:first-child { + padding-right: 0 !important; } + div.dataTables_wrapper div.dataTables_length { + margin-bottom: 15px; } + div.dataTables_wrapper div.dataTables_length select { + min-height: 30px; } + div.dataTables_wrapper table.dataTable th, + div.dataTables_wrapper table.dataTable td { + padding: 0.5rem; } + div.dataTables_wrapper div.dataTables_paginate { + margin-top: 15px !important; } + div.dataTables_wrapper div.dataTables_paginate .paginate_button { + padding: 1px 7px; } + div.dataTables_wrapper div.dataTables_paginate .paginate_button.previous { + font-size: 0; + padding: 0; } + div.dataTables_wrapper div.dataTables_paginate .paginate_button.previous:before { + content: "\e64a"; + font-family: themify; + font-size: 11px; + padding: 0 5px; } + div.dataTables_wrapper div.dataTables_paginate .paginate_button.next { + font-size: 0; + padding: 0; } + div.dataTables_wrapper div.dataTables_paginate .paginate_button.next:before { + content: "\e649"; + font-family: themify; + font-size: 11px; + padding: 0 5px; } + div.dataTables_wrapper .dataTables_filter { + margin-bottom: 15px; } + div.dataTables_wrapper .dataTables_filter input[type="search"] { + height: 30px; } + .jvector-map-height { + height: 250px; } + .icon-hover-bottom .form-group { + display: -webkit-box; + display: -ms-flexbox; + display: flex; } + .icon-hover-bottom .icon-popup { + padding: 15px; } + .icon-hover-bottom svg.climacon { + height: 50px; + width: 50px; } + .blog-box.blog-shadow:before { + -webkit-box-shadow: inset 0px -100px 100px -13px rgba(0, 0, 0, 0.6); + box-shadow: inset 0px -100px 100px -13px rgba(0, 0, 0, 0.6); } + .blog-box .blog-details p, + .blog-box .blog-details .single-blog-content-top { + margin-top: 15px; } + .blog-box .blog-details h4 { + font-size: 16px; + margin-top: 10px; } + .blog-box .blog-details .blog-social li { + font-size: 12px; + font-weight: 500; } + .blog-box .blog-details .blog-social li:nth-child(n+2) { + padding-left: unset; + margin-left: 10px; + border-left: none; } + .comment-box h4 { + margin-bottom: 15px; + padding-bottom: 15px; } + .comment-box ul ul { + margin-left: 30px; } + .comment-box li { + margin-bottom: 15px; } + .comment-box li .media { + display: block; } + .comment-box li .media img { + height: 50px; + width: 50px; + padding: 3px; + margin-bottom: 10px; } + .card .card-header .card-header-right { + top: 6px; } + .ace-editor { + height: 320px; } + .gallery > a { + margin-bottom: 15px; + text-align: center; } + .card .card-header h5 { + font-size: 17px; } + .theme-form .form-group { + margin-bottom: 15px; } + .page-wrapper .page-body-wrapper .default-according .card .card-header, + .page-wrapper .page-body-wrapper .default-according .card .card-body, + .page-wrapper .page-body-wrapper .default-according .card .card-footer { + padding: 1rem 1.25rem; } + .page-wrapper .page-body-wrapper .card { + -webkit-box-shadow: 0 0 11px 5px rgba(113, 113, 113, 0.08); + box-shadow: 0 0 11px 5px rgba(113, 113, 113, 0.08); + margin-bottom: 15px; + overflow: hidden; } + .page-wrapper .page-body-wrapper .card .card-header .tab-content .m-t-30, + .page-wrapper .page-body-wrapper .card .card-body .tab-content .m-t-30 { + margin-top: 15px !important; } + .page-wrapper .page-body-wrapper .card .card-header .tab-content .m-b-30, + .page-wrapper .page-body-wrapper .card .card-body .tab-content .m-b-30 { + margin-bottom: 15px !important; } + .page-wrapper .page-body-wrapper .page-body { + padding: 5px 0 !important; + padding-top: 20px !important; } + .page-wrapper .page-body-wrapper .page-header { + padding-bottom: 20px; } + .page-wrapper .page-body-wrapper .page-header .row h3 { + font-size: 20px; } + .page-wrapper .search-form .form-group { + margin-right: 0; } + /* alert responsive css start here */ + .alert-primary.inverse { + background-color: transparent; } + .alert-secondary.inverse { + background-color: transparent; } + .alert-success.inverse { + background-color: transparent; } + .alert-danger.inverse { + background-color: transparent; } + .alert-warning.inverse { + background-color: transparent; } + .alert-info.inverse { + background-color: transparent; } + .alert-light.inverse { + background-color: transparent; } + .alert-dark.inverse { + background-color: transparent; } + .alert .close { + height: 100%; } + .calender-widget .cal-desc { + padding: 10px 15px 15px !important; } + .calender-widget .cal-desc p { + max-height: 100%; } + .custom-card .card-footer > div h6 { + font-weight: 600; } + .custom-card .card-profile { + margin-top: 25px; } + .custom-card .card-social { + padding-top: 10px; + padding-bottom: 10px; } + .calendar-wrap .fc-toolbar .fc-center { + margin-top: 10px; } + .calendar-wrap a.fc-more { + font-size: 0.7em; } + .mega-inline { + display: block; } + .megaoptions-border-space-sm { + padding-bottom: 30px !important; } + .blog-box.blog-shadow .blog-details { + padding: 15px; } + .blog-box.blog-shadow .blog-details p { + margin-bottom: 0; } + .blog-box.blog-shadow .blog-details h4 { + margin-bottom: 10px; } + .blog-box .blog-details { + padding: 20px; } + .blog-box .blog-date span { + font-size: 25px; } + .error-wrapper { + padding: 20px 0; } + .error-wrapper .btn { + margin-top: 15px; } + .error-wrapper .img-100 { + width: 50px !important; } + .error-wrapper .error-heading { + margin-top: 20px; } + .error-wrapper .error-heading .cloud-second { + margin-top: -60px; } + .error-wrapper .error-heading .headline { + font-size: 150px; } + .error-wrapper .maintenance-heading .cloud-second { + display: none; } + .error-wrapper .maintenance-heading .headline { + font-size: 30px; + margin-top: -10%; + letter-spacing: 2px; } + .comingsoon .comingsoon-inner .coming-soon-bottom-link { + margin-top: 20px; + line-height: 1; } + .comingsoon .comingsoon-inner h5 { + margin-bottom: 20px; + margin-top: 20px; + font-size: 18px; } + .comingsoon .comingsoon-inner .countdown { + padding: 20px 0px; } + .comingsoon .comingsoon-inner .countdown ul li { + margin: 0 7px; } + .comingsoon .comingsoon-inner .countdown .title { + font-size: 12px; } + .comingsoon .comingsoon-inner .countdown .time { + width: 45px; + height: 45px; + line-height: 45px; + font-size: 16px; + margin: 0 auto; } + .comingsoon .comingsoon-inner img { + width: auto; + height: 75px; } + .form-wizard .btn-mb { + margin-bottom: 15px; } + .stepwizard { + margin-bottom: 15px; } + .f1 .f1-steps { + margin-top: 15px; + margin-bottom: 15px; } + .wizard-4 ul.anchor { + width: 100%; + padding-bottom: 15px; + padding-right: 0; } + .wizard-4 .step-container { + width: 100%; } + .flot-chart-container { + height: 300px; } + .small-chart-widget .chart-container { + height: unset !important; } + .status-widget .text-sm-end { + text-align: right; } + .mega-menu { + padding-left: 15px; } + .mega-menu .onhover-show-div { + height: 405px; + left: 0; + top: 61px; + padding: 15px; } + .mega-menu .lg-mt { + margin-top: 10px; } + .mega-menu .xs-mt { + margin-top: 15px; } + .nav-md-mt { + margin-top: 15px; } + .navs-icon { + padding: 15px; } + .navs-icon .main-section { + padding-top: 15px; } + .navs-icon .separator { + margin: 15px 0; } + .nav-list { + padding: 15px; } + .navs-dropdown button { + margin-top: 15px; } + .navs-dropdown .onhover-show-div { + top: 64px; } + .lg-mt { + margin-top: 15px; } + #aniimated-thumbnials a:last-child img { + margin-bottom: 15px; } + .tilt-showcase .mt-4 { + margin-top: 15px !important; } + .tilt-showcase ol .m-b-20 { + margin-bottom: 15px !important; } + .xs-mt { + margin-top: 15px; } + span:last-child.tag-pills-sm-mb { + margin-top: 3px; } + .animated-modal .form-group .form-control { + width: 50%; + margin: 0 auto; } + .animated-modal .animated-modal-md-mb { + margin-bottom: 15px !important; } + .steps-md-mt { + margin-top: 15px; } + .steps-sizing-sm-mb { + margin-bottom: 15px; } + .bootstrap-touchspin .touchspin-vertical-tab .input-group { + width: 96% !important; } + #API-chield-row_wrapper #API-chield-row tbody tr td:first-child { + min-width: 20px; } + .chart-block .flot-chart-container p#choices { + width: 100%; } + .chart-block .flot-chart-container #toggling-series-flot { + width: 100% !important; } + .click2edit ~ .note-editor.note-frame { + margin-bottom: 15px; } + .chat-box .chat-left-aside .people-list { + height: auto; } + .call-chat-sidebar { + max-width: 100%; + width: 100%; + -ms-flex-preferred-size: auto; + flex-basis: auto; } + .call-chat-sidebar .people-list { + height: auto; } + .chat-left-aside .people-list ul { + max-height: 300px; } + .ecommerce-widget .progress-showcase { + margin-top: 15px; } + .reset-password-box .theme-form .form-group .btn { + margin-top: 13px !important; } + .gallery-with-description a > div { + margin-bottom: 15px; } + .gallery-img-mb-sm { + margin-bottom: 15px; } + .page-wrapper.document .landing-main .navbar-expand-lg .navbar-brand { + width: 150px; } + .page-wrapper.document .landing-main .navbar-expand-lg .navbar-brand img { + width: unset; } + .page-wrapper.document .page-body-wrapper.document-content .page-sidebar .nav-pills { + text-align: left; } + .page-wrapper.document .page-body-wrapper.document-content .page-sidebar .nav-pills .nav { + text-align: left; } + .page-wrapper.document .page-body-wrapper.document-content .page-body { + margin-top: 75px !important; } + .xm-mb-peity { + margin-bottom: 8px; } + .authentication-main { + padding: 30px 15px; } } + +@media screen and (max-width: 480px) { + .editor-toolbar a { + width: 16px; } + .editor-toolbar a:before { + line-height: 30px; + font-size: 12px; } + .note-editor .btn-group .btn { + padding: 0.375rem 0.5rem; } + .CodeMirror pre { + font-size: 12px; } + .and-many-more { + font-size: 45px; } + .viho-demo-section .viho-demo-content p, + .viho-demo-section .gallery_content p { + font-size: 13px; } + .and-more { + font-size: 20px; } + .gallery-img-blur-div { + height: 70px; } + .bg-gallery { + min-height: 390px; } + .landing_gallery_section_img { + margin-bottom: -80px; } + .landing_gallery_section_img:before { + height: 350px; } + .box-layout.page-wrapper .set-col-6, + .box-layout.page-wrapper .set-col-3, + .box-layout.page-wrapper .set-col-7, + .box-layout.page-wrapper .set-col-5 { + -webkit-box-flex: 0; + -ms-flex: 0 0 100%; + flex: 0 0 100%; + max-width: 100%; } + .bg-sky-blue .main-landing .landing-main-content h3 { + font-size: 26px; } + .page-wrapper .page-main-header .main-header-left .logo-wrapper img { + height: 25px; } + .page-wrapper .page-main-header .main-header-right .nav-right > ul { + padding-left: 15px; + padding-right: 15px; } + .page-wrapper .page-main-header .main-header-right .nav-right .btn-primary-light { + padding: 5px 7px; + font-size: 12px; } + .page-wrapper .page-main-header .main-header-right .nav-right .btn-primary-light svg { + width: 14px; } + .page-wrapper .page-main-header .main-header-right .nav-right > ul { + height: 50px; } + .page-wrapper .page-main-header .main-header-right .nav-right > ul li { + margin-right: 5px; } + .page-wrapper .page-main-header .main-header-right .nav-right > ul li svg { + width: 16px; } + .todo .btn { + padding: 7px 20px; } + .chat-box .people-list ul li { + display: block; } + .wizard-4 .action-bar .btn { + width: 100%; } + .wizard-4 .action-bar .btn + .btn { + margin-top: 10px; } + ul.notification-dropdown.onhover-show-div { + width: 260px; + right: -80px; } + ul.notification-dropdown.onhover-show-div:before, ul.notification-dropdown.onhover-show-div:after { + right: 89px !important; } + .inline-block-sm { + display: inline-block; } + .pagination-lg .page-link { + padding: 0.3rem 0.65rem; } + .nav-pills li { + width: 100%; } + .reset-password-box { + width: 290px; } + .icon-hover-bottom .icon-first { + margin-right: 10px; } + .icon-hover-bottom .icon-popup .icon-class { + display: none; } + .error-wrapper .maintenance-heading { + margin-top: 0; } + .card .card-header > span + span { + display: none; } + .custom-card { + padding: 0; } + .custom-card .profile-details h6 { + margin-bottom: 15px; } + .custom-card .profile-details h4 { + font-size: 20px; } + .custom-card .card-profile { + margin-top: unset; } + .card .card-header .card-header-right i { + margin: 0 3px; + font-size: 14px; } + .knob-block .chart-clock-main .clock-small { + left: 34px; + top: 74px; } + .knob-block .chart-clock-main { + margin: auto; + width: auto; } + .knob-block .chart-clock-main .clock-medium { + position: absolute; + left: 33px; + top: 33px; } + .knob-block .chart-clock-main .clock-medium canvas { + width: 180px !important; + height: 180px !important; } + .knob-block .chart-clock-main .clock-small { + left: 34px; + top: 74px; } + .knob-block .chart-clock-main .clock-large { + left: 0; + top: 0; + margin: 0 auto; } + .knob-block .chart-clock-main .clock-large canvas { + width: 245px !important; + height: 245px !important; } + .blog-box.blog-shadow .blog-details { + padding: 10px; } + .blog-box.blog-shadow .blog-details h4 { + font-size: 14px; } + .cal-date-widget { + padding: 30px; } + .calender-widget .cal-img { + height: 225px; } + .company-card .details .media { + -ms-flex-wrap: wrap; + flex-wrap: wrap; } + .stepwizard .stepwizard-row:before { + top: 17px; } + .stepwizard .stepwizard-row .stepwizard-step .btn { + padding: 6px 22px; } + .product-sidebar { + -webkit-transform: translateX(-300px) scaleX(0); + transform: translateX(-300px) scaleX(0); + opacity: 0; + visibility: hidden; + -webkit-transition: 0.3s; + transition: 0.3s; + height: 0; + position: absolute; + z-index: 9; + width: 300px; } + .product-sidebar.open { + -webkit-transform: translateX(0px) scaleX(1); + transform: translateX(0px) scaleX(1); + -webkit-box-shadow: 1px 5px 24px 0 rgba(68, 102, 242, 0.05); + box-shadow: 1px 5px 24px 0 rgba(68, 102, 242, 0.05); + visibility: visible; + opacity: 1; + height: auto; + top: -45px; } + .product-sidebar .filter-section .card-header { + display: none; } + .product-sidebar .filter-section .left-filter { + top: unset !important; } + .feature-products .filter-toggle { + font-size: 14px; + padding: 7px 15px; + margin-left: 10px; + border-radius: 5px; + background-color: rgba(36, 105, 92, 0.05); + color: #24695c; } + .feature-products .filter-toggle h6 { + font-size: 12px; } + .feature-products .text-end { + text-align: left !important; } + .d-none-productlist { + display: block; + margin-right: 10px; } + .email-wrap .email-right-aside .email-content .email-wrapper .attachment ul li img { + width: 83px; + height: 83px; } + .email-wrap .actions { + margin-bottom: -10px; } + .email-wrap .actions li { + margin-bottom: 10px; } + .email-wrap .actions li .btn { + padding: 5px 10px; + font-size: 12px; } + .email-wrap .email-wrapper .right-download { + float: none; + margin-top: 5px; } + .email-wrap .email-wrapper h6 { + float: none; } + .social-app-profile .hovercard .user-image .share-icons li .social-icon { + width: 30px; + height: 30px; } + .social-app-profile .hovercard .user-image .icon-wrapper { + top: -5px; } + .social-app-profile .hovercard .user-image .avatar img { + width: 80px; + height: 80px; } + .mega-menu { + padding-left: 20px; + padding-top: 3px; } + .mega-menu .onhover-show-div { + height: 405px; + left: 0; + top: 61px; + padding: 15px; } + .mega-menu .lg-mt { + margin-top: 10px; } + .mega-menu .xs-mt { + margin-top: 15px; } + .badge { + padding: 0.42em 0.7em; } + .alert-dismissible .close { + top: -1px; } + .alert-dismissible .close span { + font-size: 19px; } + .notify-alert { + width: 90%; } + .invoice .text-md-end { + margin-top: 10px; } + .product-wrapper-grid.list-view .product-box { + display: block; } + .product-wrapper-grid.list-view .product-box .product-img { + width: 100%; } + .product-wrapper-grid.list-view .product-box .product-details { + text-align: center; } + .user-profile .profile-header .profile-img-wrrap { + height: 210px; } + .user-profile .profile-header .userpro-box { + padding: 15px; } + .user-profile .follow .follow-num { + font-size: 16px; } + .user-profile .follow span { + font-size: 12px; } + .user-profile .follow ul.follow-list li:nth-child(n+2) { + margin-left: 10px; + padding-left: 10px; } } + +@media screen and (max-width: 420px) { + .and-many-more { + font-size: 37px; } + .chat-box .chat-right-aside .chat .chat-header { + display: block; } + .chat-box .chat-right-aside .chat .chat-header .chat-menu-icons { + -webkit-box-pack: start; + -ms-flex-pack: start; + justify-content: flex-start; } + .chat-box .chat-history .call-icons ul li { + width: 40px; + height: 40px; } + .chat-box .chat-history .call-icons ul li a { + line-height: 1; } + .chat-box .chat-menu.show { + top: 102px; } + .chat-box .chat-menu { + width: 260px; } + .chat-box .chat-menu .people-list ul.list { + height: 360px; } + .chat-menu { + top: 120px; } + .product-page-main .pro-group .pro-shop button { + display: block; } + .product-page-main .pro-group .pro-shop button:nth-child(n + 2) { + margin-top: 15px; } + .product-page-main .border-tab.nav-tabs .nav-item { + width: 100% !important; } + .border-tab.nav-tabs { + display: block; } + .tabs-scoial.border-tab.nav-tabs .nav-item { + width: auto !important; } + .tabs-scoial.border-tab.nav-tabs .nav-item .nav-link { + padding: 8px 8px; + font-size: 14px; } + .feature-products span.f-w-600 { + padding-top: unset; + margin-bottom: 5px; } + .custom-card .card-social li a { + width: 25px; + height: 25px; + font-size: 12px; } + .custom-card .card-social li:nth-child(n+2) { + margin-left: 5px; } + .email-wrap .email-body .email-compose .compose-header { + display: block; } + .email-wrap .email-body .email-compose .compose-header .btn { + margin-top: 10px; } + .job-sidebar .job-left-aside { + padding: 15px; } } + +@media screen and (max-width: 397px) { + .clockpicker-align-top { + top: 426px !important; } } + +@media screen and (max-width: 360px) { + .datepicker { + width: 239px; } + .add-post form .m-checkbox-inline label { + margin-bottom: 8px; } + .add-post form .m-checkbox-inline label:last-child { + margin-bottom: 0; } + .map-js-height { + height: 250px; } + .alert-theme { + font-size: 12px; } + .alert-theme button { + right: 30px !important; } + .alert-theme i { + display: none; } + .alert-theme span + span + span { + padding: 15px; } + .bar-chart-widget .earning-details i { + right: -73px; } + .widget-joins .border-after-xs:after { + width: 92%; } + .status-widget svg { + width: 18px; + height: 18px; } + .custom-card .card-footer > div h6 { + font-size: 12px; } + .custom-card .card-footer > div h6 h3 { + font-size: 16px; } + .main .langChoice { + padding: 4px 7px; + width: 30%; + position: unset; + margin-right: auto; + margin-top: 15px; } + .tabs-scoial.border-tab.nav-tabs .nav-item .nav-link { + padding: 10px 5px; + font-size: 14px; } + .social-chat .other-msg { + margin-left: 15px; } + .social-header h5 span.pull-right { + display: none; } + .timeline-small .media .timeline-round.timeline-line-1:after { + bottom: -74px; + height: 56px; } + .timeline-small .media .timeline-round.small-line:after { + bottom: -32px; + height: 14px; } + .timeline-small .media .timeline-round.medium-line:after { + bottom: -59px; + height: 40px; } + .and-many-more { + font-size: 30px; } + .landing-main .section-space .landing-header h2 { + font-size: 18px; } + .landing-main .section-space p { + font-size: 14px; } + .bg-sky-blue .main-landing .landing-main-content h3 { + font-size: 22px; } + .custom-card .dashboard-card { + padding-top: 0; } + .flot-chart-container { + height: 230px; } + .map-block { + height: 250px; } + .img-cropper .docs-tooltip { + font-size: 11px; } + .img-cropper .docs-toggles .btn-group .btn { + padding: 0.375rem 0.2rem; } + .blog-box .blog-details p { + line-height: 1.5; } + .blog-box .blog-details .blog-social li:last-child { + padding-left: 0; } + .blog-box .blog-details-main .blog-social li { + padding: 0 10px; } + .button-builder-wrap .btn-lg { + font-size: 18px; } + /* responsive material tabs*/ + .border-tab.nav-tabs .nav-item .nav-link { + padding: 10px 0px; } + .tabs-responsive-side { + max-width: 100%; } + .browser-widget .media i { + font-size: 52px; } + .browser-widget .media .media-body h4 { + font-size: 20px; } + .bar-chart-widget .bottom-content .num { + font-size: 20px; } + .stepwizard .stepwizard-row .stepwizard-step .btn { + padding: 6px 20px; } + .user-status table tbody img { + height: 40px; } + .xs-width-100 { + min-width: 100%; } + .email-wrap .email-right-aside .email-content .email-wrapper .attachment ul li img { + width: 65px; + height: 65px; } + .email-wrap .email-right-aside .email-top .dropdown-menu { + left: -58px; } + .form-builder #components .component .form-group #button1id { + margin-bottom: 15px; } + .prooduct-details-box .media { + display: block; } + .prooduct-details-box .media .media-body { + margin-top: 15px; + margin-left: unset !important; } + .mega-menu-p { + padding: 0 23px !important; } + .default-according .card .card-header i { + font-size: 14px; + top: 24px; } + .default-according .card .btn-link { + display: block; + width: 100%; + padding-left: 17px; } + .star-ratings .stars .title { + line-height: 1; } + .bootstrap-touchspin .touchspin-vertical-tab .input-group { + width: 93% !important; } + .step-container { + height: 280px !important; } + .sort-panel .d-inline .btn { + margin-left: 87px; } + .jsgrid .jsgrid-pager-container .jsgrid-pager .jsgrid-pager-page { + padding: 0.5em 0.62em; } + .chat-box .chat-right-aside { + -webkit-box-flex: 0; + -ms-flex: 0 0 96%; + flex: 0 0 96%; + max-width: 96%; } + .chat-box .chat-right-aside .chat .chat-message { + width: calc(100% - 20px); } + .error-wrapper .error-heading .headline { + font-size: 100px; } + .lg-toolbar .lg-icon { + width: 40px; } + .calendar-wrap a.fc-more { + font-size: 0.59em; } + .calendar-wrap .fc th { + font-size: 10px; } } + +@media screen and (min-width: 768px) { + .product-wrapper-grid.list-view .ribbon { + display: none; } + .product-wrapper-grid.list-view .col-sm-6 { + -webkit-box-flex: 0; + -ms-flex: 0 0 50%; + flex: 0 0 50%; + max-width: 50%; } } + +/**===================== + 62. Responsive CSS Ends +==========================**/ diff --git a/public/admin/assets/css/scrollable.css b/public/admin/assets/css/scrollable.css new file mode 100644 index 0000000..2d93fe5 --- /dev/null +++ b/public/admin/assets/css/scrollable.css @@ -0,0 +1,105 @@ +/*=============Scrollable css start=============*/ +.ps-container.ps-active-x > .ps-scrollbar-x-rail, .ps-container.ps-active-y > .ps-scrollbar-y-rail { + background-color: transparent; + display: block; } + +.scroll-demo { + padding: 10px; + position: relative; + border: 1px solid #e6edef; + overflow: auto; + height: 300px; } + .scroll-demo .horz-scroll-content { + width: 1600px; } + +.ps-container { + -ms-touch-action: none; + touch-action: none; + overflow: hidden !important; } + .ps-container.ps-in-scrolling { + pointer-events: none; } + .ps-container.ps-in-scrolling.ps-x > .ps-scrollbar-x-rail { + background-color: #e6edef; + opacity: 0.9; } + .ps-container.ps-in-scrolling.ps-x > .ps-scrollbar-x-rail > .ps-scrollbar-x { + background-color: #59667a; } + .ps-container.ps-in-scrolling.ps-y > .ps-scrollbar-y-rail { + background-color: #e6edef; + opacity: 0.9; } + .ps-container.ps-in-scrolling.ps-y > .ps-scrollbar-y-rail > .ps-scrollbar-y { + background-color: #59667a; } + .ps-container > .ps-scrollbar-x-rail { + display: none; + position: absolute; + border-radius: 4px; + opacity: 0; + -webkit-transition: background-color 0.2s linear, opacity 0.2s linear; + transition: background-color 0.2s linear, opacity 0.2s linear; + bottom: 3px; + height: 8px; } + .ps-container > .ps-scrollbar-x-rail > .ps-scrollbar-x { + position: absolute; + background-color: #59667a; + border-radius: 4px; + -webkit-transition: background-color 0.2s linear; + transition: background-color 0.2s linear; + bottom: 0; + height: 8px; } + .ps-container > .ps-scrollbar-y-rail { + right: 3px; + width: 8px; + display: none; + position: absolute; + border-radius: 4px; + opacity: 0; + -webkit-transition: background-color 0.2s linear, opacity 0.2s linear; + transition: background-color 0.2s linear, opacity 0.2s linear; } + .ps-container > .ps-scrollbar-y-rail > .ps-scrollbar-y { + width: 10px; + position: absolute; + background-color: #59667a; + border-radius: 4px; + -webkit-transition: background-color 0.2s linear; + transition: background-color 0.2s linear; + right: 0; } + .ps-container:hover.ps-in-scrolling { + pointer-events: none; } + .ps-container:hover.ps-in-scrolling.ps-x > .ps-scrollbar-x-rail { + background-color: #59667a; + opacity: 0.9; } + .ps-container:hover.ps-in-scrolling.ps-x > .ps-scrollbar-x-rail > .ps-scrollbar-x { + width: 128px; + background-color: #999999; } + .ps-container:hover.ps-in-scrolling.ps-y > .ps-scrollbar-y-rail { + background-color: #59667a; + opacity: 0.9; } + .ps-container:hover.ps-in-scrolling.ps-y > .ps-scrollbar-y-rail > .ps-scrollbar-y { + background-color: #999999; } + .ps-container:hover > .ps-scrollbar-x-rail { + opacity: 0.6; } + .ps-container:hover > .ps-scrollbar-x-rail:hover { + background-color: #e6edef; + opacity: 0.9; } + .ps-container:hover > .ps-scrollbar-x-rail:hover > .ps-scrollbar-x { + background-color: #999999; } + .ps-container:hover > .ps-scrollbar-y-rail { + opacity: 0.6; } + .ps-container:hover > .ps-scrollbar-y-rail:hover { + background-color: #e6edef; + opacity: 0.9; } + .ps-container:hover > .ps-scrollbar-y-rail:hover > .ps-scrollbar-y { + background-color: #59667a; } + +.always-visible.ps-container > .ps-scrollbar-x-rail { + opacity: 0.6; } + +.always-visible.ps-container > .ps-scrollbar-y-rail { + opacity: 0.6; } + +.large-margin.ps-container > .ps-scrollbar-x-rail { + margin: 0 25%; } + +.large-margin.ps-container > .ps-scrollbar-y-rail { + margin: 100px 0; } + +/*=============Scrollable css end=============*/ diff --git a/public/admin/assets/css/select2.css b/public/admin/assets/css/select2.css new file mode 100644 index 0000000..753f153 --- /dev/null +++ b/public/admin/assets/css/select2.css @@ -0,0 +1,501 @@ +.select2-container { + -webkit-box-sizing: border-box; + box-sizing: border-box; + display: inline-block; + margin: 0; + position: relative; + vertical-align: middle; } + .select2-container .select2-selection--single { + -webkit-box-sizing: border-box; + box-sizing: border-box; + cursor: pointer; + display: block; + height: 28px; + -moz-user-select: none; + -ms-user-select: none; + user-select: none; + -webkit-user-select: none; } + .select2-container .select2-selection--single .select2-selection__rendered { + display: block; + padding-left: 8px; + padding-right: 20px; + overflow: hidden; + text-overflow: ellipsis; + white-space: nowrap; } + .select2-container .select2-selection--single .select2-selection__clear { + position: relative; } + .select2-container[dir="rtl"] .select2-selection--single .select2-selection__rendered { + padding-right: 8px; + padding-left: 20px; } + .select2-container .select2-selection--multiple { + -webkit-box-sizing: border-box; + box-sizing: border-box; + cursor: pointer; + display: block; + min-height: 32px; + -moz-user-select: none; + -ms-user-select: none; + user-select: none; + -webkit-user-select: none; } + .select2-container .select2-selection--multiple .select2-selection__rendered { + display: inline-block; + overflow: hidden; + padding-left: 8px; + text-overflow: ellipsis; + white-space: nowrap; } + .select2-container .select2-search--inline { + float: left; } + .select2-container .select2-search--inline .select2-search__field { + -webkit-box-sizing: border-box; + box-sizing: border-box; + border: none; + font-size: 100%; + margin-top: 5px; + padding: 0; } + .select2-container .select2-search--inline .select2-search__field::-webkit-search-cancel-button { + -webkit-appearance: none; } + +.select2-dropdown { + background-color: white; + border: 1px solid #aaa; + border-radius: 4px; + -webkit-box-sizing: border-box; + box-sizing: border-box; + display: block; + position: absolute; + left: -100000px; + width: 100%; + z-index: 1051; } + +.select2-results { + display: block; } + +.select2-results__options { + list-style: none; + margin: 0; + padding: 0; } + +.select2-results__option { + padding: 6px; + -moz-user-select: none; + -ms-user-select: none; + user-select: none; + -webkit-user-select: none; } + .select2-results__option[aria-selected] { + cursor: pointer; } + +.select2-container--open .select2-dropdown { + left: 0; } + +.select2-container--open .select2-dropdown--above { + border-bottom: none; + border-bottom-left-radius: 0; + border-bottom-right-radius: 0; } + +.select2-container--open .select2-dropdown--below { + border-top: none; + border-top-left-radius: 0; + border-top-right-radius: 0; } + +.select2-search--dropdown { + display: block; + padding: 4px; } + .select2-search--dropdown .select2-search__field { + padding: 4px; + width: 100%; + -webkit-box-sizing: border-box; + box-sizing: border-box; } + .select2-search--dropdown .select2-search__field::-webkit-search-cancel-button { + -webkit-appearance: none; } + .select2-search--dropdown.select2-search--hide { + display: none; } + +.select2-close-mask { + border: 0; + margin: 0; + padding: 0; + display: block; + position: fixed; + left: 0; + top: 0; + min-height: 100%; + min-width: 100%; + height: auto; + width: auto; + opacity: 0; + z-index: 99; + background-color: transparent; + filter: alpha(opacity=0); } + +.select2-hidden-accessible { + border: 0 !important; + clip: rect(0 0 0 0) !important; + -webkit-clip-path: inset(50%) !important; + clip-path: inset(50%) !important; + height: 1px !important; + overflow: hidden !important; + padding: 0 !important; + position: absolute !important; + width: 1px !important; + white-space: nowrap !important; } + +.select2 { + max-width: 100%; } + +.select2-container { + width: 100% !important; } + +.select2-container--default .select2-selection--single { + background-color: #fff; + border: 1px solid #aaa; + border-radius: 4px; } + .select2-container--default .select2-selection--single .select2-selection__rendered { + color: #444; + line-height: 28px; } + .select2-container--default .select2-selection--single .select2-selection__clear { + cursor: pointer; + float: right; + font-weight: bold; } + .select2-container--default .select2-selection--single .select2-selection__placeholder { + color: #999; } + .select2-container--default .select2-selection--single .select2-selection__arrow { + height: 26px; + position: absolute; + top: 1px; + right: 1px; + width: 20px; } + .select2-container--default .select2-selection--single .select2-selection__arrow b { + border-color: #888 transparent transparent transparent; + border-style: solid; + border-width: 5px 4px 0 4px; + height: 0; + left: 50%; + margin-left: -4px; + margin-top: -2px; + position: absolute; + top: 50%; + width: 0; } + +.select2-container--default[dir="rtl"] .select2-selection--single .select2-selection__clear { + float: left; } + +.select2-container--default[dir="rtl"] .select2-selection--single .select2-selection__arrow { + left: 1px; + right: auto; } + +.select2-container--default.select2-container--disabled .select2-selection--single { + background-color: #eee; + cursor: default; } + .select2-container--default.select2-container--disabled .select2-selection--single .select2-selection__clear { + display: none; } + +.select2-container--default.select2-container--open .select2-selection--single .select2-selection__arrow b { + border-color: transparent transparent #888 transparent; + border-width: 0 4px 5px 4px; } + +.select2-container--default .select2-selection--multiple { + background-color: white; + border: 1px solid #aaa; + border-radius: 4px; + cursor: text; } + .select2-container--default .select2-selection--multiple .select2-selection__rendered { + -webkit-box-sizing: border-box; + box-sizing: border-box; + list-style: none; + margin: 0; + padding: 5px 5px 0 0; + width: 100%; } + .select2-container--default .select2-selection--multiple .select2-selection__rendered li { + list-style: none; } + .select2-container--default .select2-selection--multiple .select2-selection__placeholder { + color: #999; + margin-top: 5px; + float: left; } + .select2-container--default .select2-selection--multiple .select2-selection__clear { + cursor: pointer; + float: right; + font-weight: bold; + margin-top: 5px; + margin-right: 10px; } + .select2-container--default .select2-selection--multiple .select2-selection__choice { + background-color: #e4e4e4; + border: 1px solid #aaa; + border-radius: 4px; + cursor: default; + float: left; + margin-right: 5px; + margin-top: 5px; + padding: 0 5px; } + .select2-container--default .select2-selection--multiple .select2-selection__choice__remove { + color: #999; + cursor: pointer; + display: inline-block; + font-weight: bold; + margin-right: 2px; } + .select2-container--default .select2-selection--multiple .select2-selection__choice__remove:hover { + color: #333; } + +.select2-container--default[dir="rtl"] .select2-selection--multiple .select2-selection__choice, .select2-container--default[dir="rtl"] .select2-selection--multiple .select2-selection__placeholder, .select2-container--default[dir="rtl"] .select2-selection--multiple .select2-search--inline { + float: right; } + +.select2-container--default[dir="rtl"] .select2-selection--multiple .select2-selection__choice { + margin-left: 5px; + margin-right: auto; } + +.select2-container--default[dir="rtl"] .select2-selection--multiple .select2-selection__choice__remove { + margin-left: 2px; + margin-right: auto; } + +.select2-container--default.select2-container--focus .select2-selection--multiple { + border: solid black 1px; + outline: 0; } + +.select2-container--default.select2-container--disabled .select2-selection--multiple { + background-color: #eee; + cursor: default; } + +.select2-container--default.select2-container--disabled .select2-selection__choice__remove { + display: none; } + +.select2-container--default.select2-container--open.select2-container--above .select2-selection--single, .select2-container--default.select2-container--open.select2-container--above .select2-selection--multiple { + border-top-left-radius: 0; + border-top-right-radius: 0; } + +.select2-container--default.select2-container--open.select2-container--below .select2-selection--single, .select2-container--default.select2-container--open.select2-container--below .select2-selection--multiple { + border-bottom-left-radius: 0; + border-bottom-right-radius: 0; } + +.select2-container--default .select2-search--dropdown .select2-search__field { + border: 1px solid #e6edef; } + +.select2-container--default .select2-search--inline .select2-search__field { + background: transparent; + border: none; + outline: 0; + -webkit-box-shadow: none; + box-shadow: none; + -webkit-appearance: textfield; } + +.select2-container--default .select2-results > .select2-results__options { + max-height: 200px; + overflow-y: auto; } + +.select2-container--default .select2-results__option[role=group] { + padding: 0; } + +.select2-container--default .select2-results__option[aria-disabled=true] { + color: #999; } + +.select2-container--default .select2-results__option[aria-selected=true] { + background-color: #ddd; } + +.select2-container--default .select2-results__option .select2-results__option { + padding-left: 1em; } + .select2-container--default .select2-results__option .select2-results__option .select2-results__group { + padding-left: 0; } + .select2-container--default .select2-results__option .select2-results__option .select2-results__option { + margin-left: -1em; + padding-left: 2em; } + .select2-container--default .select2-results__option .select2-results__option .select2-results__option .select2-results__option { + margin-left: -2em; + padding-left: 3em; } + .select2-container--default .select2-results__option .select2-results__option .select2-results__option .select2-results__option .select2-results__option { + margin-left: -3em; + padding-left: 4em; } + .select2-container--default .select2-results__option .select2-results__option .select2-results__option .select2-results__option .select2-results__option .select2-results__option { + margin-left: -4em; + padding-left: 5em; } + .select2-container--default .select2-results__option .select2-results__option .select2-results__option .select2-results__option .select2-results__option .select2-results__option .select2-results__option { + margin-left: -5em; + padding-left: 6em; } + +.select2-container--default .select2-results__option--highlighted[aria-selected] { + background-color: #5897fb; + color: white; } + +.select2-container--default .select2-results__group { + cursor: default; + display: block; + padding: 6px; } + +.select2-container--classic .select2-selection--single { + background-color: #f7f7f7; + border: 1px solid #aaa; + border-radius: 4px; + outline: 0; + background-image: -webkit-gradient(linear, left top, left bottom, color-stop(50%, white), to(#eeeeee)); + background-image: linear-gradient(to bottom, white 50%, #eeeeee 100%); + background-repeat: repeat-x; + filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#FFFFFFFF', endColorstr='#FFEEEEEE', GradientType=0); } + .select2-container--classic .select2-selection--single:focus { + border: 1px solid #5897fb; } + .select2-container--classic .select2-selection--single .select2-selection__rendered { + color: #444; + line-height: 28px; } + .select2-container--classic .select2-selection--single .select2-selection__clear { + cursor: pointer; + float: right; + font-weight: bold; + margin-right: 10px; } + .select2-container--classic .select2-selection--single .select2-selection__placeholder { + color: #999; } + .select2-container--classic .select2-selection--single .select2-selection__arrow { + background-color: #ddd; + border: none; + border-left: 1px solid #aaa; + border-top-right-radius: 4px; + border-bottom-right-radius: 4px; + height: 26px; + position: absolute; + top: 1px; + right: 1px; + width: 20px; + background-image: -webkit-gradient(linear, left top, left bottom, color-stop(50%, #eeeeee), to(#cccccc)); + background-image: linear-gradient(to bottom, #eeeeee 50%, #cccccc 100%); + background-repeat: repeat-x; + filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#FFEEEEEE', endColorstr='#FFCCCCCC', GradientType=0); } + .select2-container--classic .select2-selection--single .select2-selection__arrow b { + border-color: #888 transparent transparent transparent; + border-style: solid; + border-width: 5px 4px 0 4px; + height: 0; + left: 50%; + margin-left: -4px; + margin-top: -2px; + position: absolute; + top: 50%; + width: 0; } + +.select2-container--classic[dir="rtl"] .select2-selection--single .select2-selection__clear { + float: left; } + +.select2-container--classic[dir="rtl"] .select2-selection--single .select2-selection__arrow { + border: none; + border-right: 1px solid #aaa; + border-radius: 0; + border-top-left-radius: 4px; + border-bottom-left-radius: 4px; + left: 1px; + right: auto; } + +.select2-container--classic.select2-container--open .select2-selection--single { + border: 1px solid #5897fb; } + .select2-container--classic.select2-container--open .select2-selection--single .select2-selection__arrow { + background: transparent; + border: none; } + .select2-container--classic.select2-container--open .select2-selection--single .select2-selection__arrow b { + border-color: transparent transparent #888 transparent; + border-width: 0 4px 5px 4px; } + +.select2-container--classic.select2-container--open.select2-container--above .select2-selection--single { + border-top: none; + border-top-left-radius: 0; + border-top-right-radius: 0; + background-image: -webkit-gradient(linear, left top, left bottom, from(white), color-stop(50%, #eeeeee)); + background-image: linear-gradient(to bottom, white 0%, #eeeeee 50%); + background-repeat: repeat-x; + filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#FFFFFFFF', endColorstr='#FFEEEEEE', GradientType=0); } + +.select2-container--classic.select2-container--open.select2-container--below .select2-selection--single { + border-bottom: none; + border-bottom-left-radius: 0; + border-bottom-right-radius: 0; + background-image: -webkit-gradient(linear, left top, left bottom, color-stop(50%, #eeeeee), to(white)); + background-image: linear-gradient(to bottom, #eeeeee 50%, white 100%); + background-repeat: repeat-x; + filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#FFEEEEEE', endColorstr='#FFFFFFFF', GradientType=0); } + +.select2-container--classic .select2-selection--multiple { + background-color: white; + border: 1px solid #aaa; + border-radius: 4px; + cursor: text; + outline: 0; } + .select2-container--classic .select2-selection--multiple:focus { + border: 1px solid #5897fb; } + .select2-container--classic .select2-selection--multiple .select2-selection__rendered { + list-style: none; + margin: 0; + padding: 0 5px; } + .select2-container--classic .select2-selection--multiple .select2-selection__clear { + display: none; } + .select2-container--classic .select2-selection--multiple .select2-selection__choice { + background-color: #e4e4e4; + border: 1px solid #aaa; + border-radius: 4px; + cursor: default; + float: left; + margin-right: 5px; + margin-top: 5px; + padding: 0 5px; } + .select2-container--classic .select2-selection--multiple .select2-selection__choice__remove { + color: #888; + cursor: pointer; + display: inline-block; + font-weight: bold; + margin-right: 2px; } + .select2-container--classic .select2-selection--multiple .select2-selection__choice__remove:hover { + color: #555; } + +.select2-container--classic[dir="rtl"] .select2-selection--multiple .select2-selection__choice { + float: right; + margin-left: 5px; + margin-right: auto; } + +.select2-container--classic[dir="rtl"] .select2-selection--multiple .select2-selection__choice__remove { + margin-left: 2px; + margin-right: auto; } + +.select2-container--classic.select2-container--open .select2-selection--multiple { + border: 1px solid #5897fb; } + +.select2-container--classic.select2-container--open.select2-container--above .select2-selection--multiple { + border-top: none; + border-top-left-radius: 0; + border-top-right-radius: 0; } + +.select2-container--classic.select2-container--open.select2-container--below .select2-selection--multiple { + border-bottom: none; + border-bottom-left-radius: 0; + border-bottom-right-radius: 0; } + +.select2-container--classic .select2-search--dropdown .select2-search__field { + border: 1px solid #aaa; + outline: 0; } + +.select2-container--classic .select2-search--inline .select2-search__field { + outline: 0; + -webkit-box-shadow: none; + box-shadow: none; } + +.select2-container--classic .select2-dropdown { + background-color: white; + border: 1px solid transparent; } + +.select2-container--classic .select2-dropdown--above { + border-bottom: none; } + +.select2-container--classic .select2-dropdown--below { + border-top: none; } + +.select2-container--classic .select2-results > .select2-results__options { + max-height: 200px; + overflow-y: auto; } + +.select2-container--classic .select2-results__option[role=group] { + padding: 0; } + +.select2-container--classic .select2-results__option[aria-disabled=true] { + color: grey; } + +.select2-container--classic .select2-results__option--highlighted[aria-selected] { + background-color: #3875d7; + color: white; } + +.select2-container--classic .select2-results__group { + cursor: default; + display: block; + padding: 6px; } + +.select2-container--classic.select2-container--open .select2-dropdown { + border-color: #5897fb; } diff --git a/public/admin/assets/css/simple-mde.css b/public/admin/assets/css/simple-mde.css new file mode 100644 index 0000000..3b0f937 --- /dev/null +++ b/public/admin/assets/css/simple-mde.css @@ -0,0 +1,617 @@ +@charset "UTF-8"; +.CodeMirror { + color: #000; + position: relative; + overflow: hidden; + height: auto; + min-height: 300px; + border: 1px solid #e6edef; + border-bottom-left-radius: 4px; + border-bottom-right-radius: 4px; + padding: 10px; + font: inherit; + z-index: 1; } + .CodeMirror pre { + padding: 0 4px; + border-radius: 0; + border-width: 0; + background: 0 0; + font-family: inherit; + font-size: inherit; + margin: 0; + white-space: pre; + word-wrap: normal; + line-height: inherit; + color: inherit; + z-index: 2; + position: relative; + overflow: visible; + -webkit-font-variant-ligatures: none; + font-variant-ligatures: none; } + .CodeMirror .CodeMirror-code .cm-tag { + color: #63a35c; } + .CodeMirror .CodeMirror-code .cm-attribute { + color: #795da3; } + .CodeMirror .CodeMirror-code .cm-string { + color: #183691; } + .CodeMirror .CodeMirror-code .cm-header-1 { + font-size: 200%; + line-height: 200%; } + .CodeMirror .CodeMirror-code .cm-header-2 { + font-size: 160%; + line-height: 160%; } + .CodeMirror .CodeMirror-code .cm-header-3 { + font-size: 125%; + line-height: 125%; } + .CodeMirror .CodeMirror-code .cm-header-4 { + font-size: 110%; + line-height: 110%; } + .CodeMirror .CodeMirror-code .cm-comment { + background: rgba(0, 0, 0, 0.05); + border-radius: 2px; } + .CodeMirror .CodeMirror-code .cm-link { + color: #7f8c8d; } + .CodeMirror .CodeMirror-code .cm-url { + color: #aab2b3; } + .CodeMirror .CodeMirror-code .cm-strikethrough { + text-decoration: line-through; } + .CodeMirror .CodeMirror-selected { + background: #ddd; } + .CodeMirror .CodeMirror-placeholder { + opacity: .5; } + .CodeMirror div.CodeMirror-secondarycursor { + border-left: 1px solid silver; } + .CodeMirror .cm-spell-error:not(.cm-url):not(.cm-comment):not(.cm-tag):not(.cm-word) { + background: rgba(255, 0, 0, 0.15); } + +.CodeMirror-lines { + padding: 4px 0; + cursor: text; + min-height: 1px; } + +.CodeMirror-gutter-filler { + background-color: #fff; + position: absolute; + z-index: 6; + display: none; + left: 0; + bottom: 0; } + +.CodeMirror-scrollbar-filler { + background-color: #fff; + position: absolute; + z-index: 6; + display: none; + right: 0; + bottom: 0; } + +.CodeMirror-gutters { + border-right: 1px solid #ddd; + background-color: #f7f7f7; + white-space: nowrap; + position: absolute; + left: 0; + top: 0; + min-height: 100%; + z-index: 3; + -webkit-box-sizing: content-box; + box-sizing: content-box; } + +.CodeMirror-linenumber { + padding: 0 3px 0 5px; + min-width: 20px; + text-align: right; + color: #999; + white-space: nowrap; + -webkit-box-sizing: content-box; + box-sizing: content-box; } + +.CodeMirror-guttermarker { + color: #000; } + +.CodeMirror-guttermarker-subtle { + color: #999; } + +.CodeMirror-cursor { + border-left: 1px solid #000; + border-right: none; + width: 0; + position: absolute; } + +.cm-fat-cursor .CodeMirror-cursor { + width: auto; + border: 0 !important; + background: #7e7; } + +.cm-fat-cursor div.CodeMirror-cursors { + z-index: 1; } + +.cm-animate-fat-cursor { + width: auto; + border: 0; + -webkit-animation: blink 1.06s steps(1) infinite; + animation: blink 1.06s steps(1) infinite; + background-color: #7e7; } + +@-webkit-keyframes blink { + 50% { + background-color: transparent; } } + +@keyframes blink { + 50% { + background-color: transparent; } } + +.cm-tab { + display: inline-block; + text-decoration: inherit; } + +.CodeMirror-ruler { + border-left: 1px solid #ccc; + position: absolute; } + +.cm-s-default .cm-header { + color: #00f; } + +.cm-s-default .cm-quote { + color: #090; } + +.cm-s-default .cm-keyword { + color: #708; } + +.cm-s-default .cm-atom { + color: #219; } + +.cm-s-default .cm-number { + color: #164; } + +.cm-s-default .cm-def { + color: #00f; } + +.cm-s-default .cm-variable-2 { + color: #05a; } + +.cm-s-default .cm-variable-3 { + color: #085; } + +.cm-s-default .cm-comment { + color: #a50; } + +.cm-s-default .cm-string { + color: #a11; } + +.cm-s-default .cm-string-2 { + color: #f50; } + +.cm-s-default .cm-meta { + color: #555; } + +.cm-s-default .cm-qualifier { + color: #555; } + +.cm-s-default .cm-builtin { + color: #219; } + +.cm-s-default .cm-bracket { + color: #997; } + +.cm-s-default .cm-tag { + color: #090; } + +.cm-s-default .cm-attribute { + color: #00c; } + +.cm-s-default .cm-hr { + color: #999; } + +.cm-s-default .cm-link { + color: #00c; } + +.cm-s-default .cm-error { + color: red; } + +.cm-negative { + color: #d44; } + +.cm-positive { + color: #292; } + +.cm-header { + font-weight: 700; } + +.cm-strong { + font-weight: 700; } + +.cm-em { + font-style: italic; } + +.cm-link { + text-decoration: underline; } + +.cm-strikethrough { + text-decoration: line-through; } + +.cm-invalidchar { + color: red; } + +.CodeMirror-composing { + border-bottom: 2px solid; } + +div.CodeMirror-cursors { + visibility: hidden; + position: relative; + z-index: 3; } + +div.CodeMirror-dragcursors { + visibility: visible; } + +div.CodeMirror span.CodeMirror-matchingbracket { + color: #0f0; } + +div.CodeMirror span.CodeMirror-nonmatchingbracket { + color: #f22; } + +.CodeMirror-matchingtag { + background: rgba(255, 150, 0, 0.3); } + +.CodeMirror-activeline-background { + background: #e8f2ff; } + +.CodeMirror-scroll { + overflow: scroll !important; + margin-bottom: -30px; + margin-right: -30px; + padding-bottom: 30px; + height: 100%; + outline: 0; + position: relative; + min-height: 300px; + -webkit-box-sizing: content-box; + box-sizing: content-box; } + +.CodeMirror-sizer { + position: relative; + border-right: 30px solid transparent; + -webkit-box-sizing: content-box; + box-sizing: content-box; } + +.CodeMirror-hscrollbar { + position: absolute; + z-index: 6; + display: none; + bottom: 0; + left: 0; + overflow-y: hidden; + overflow-x: scroll; } + +.CodeMirror-vscrollbar { + position: absolute; + z-index: 6; + display: none; + right: 0; + top: 0; + overflow-x: hidden; + overflow-y: scroll; } + +.CodeMirror-gutter { + white-space: normal; + height: 100%; + display: inline-block; + vertical-align: top; + margin-bottom: -30px; + -webkit-box-sizing: content-box; + box-sizing: content-box; } + +.CodeMirror-gutter-wrapper { + position: absolute; + z-index: 4; + background: 0 0 !important; + border: none !important; + -webkit-user-select: none; + -moz-user-select: none; + -ms-user-select: none; + user-select: none; } + +.CodeMirror-gutter-background { + position: absolute; + top: 0; + bottom: 0; + z-index: 4; } + +.CodeMirror-gutter-elt { + position: absolute; + cursor: default; + z-index: 4; } + +.CodeMirror-linebackground { + position: absolute; + left: 0; + right: 0; + top: 0; + bottom: 0; + z-index: 0; } + +.CodeMirror-linewidget { + position: relative; + z-index: 2; + overflow: auto; } + +.CodeMirror-code { + outline: 0; } + +.CodeMirror-measure { + position: absolute; + width: 100%; + height: 0; + overflow: hidden; + visibility: hidden; } + .CodeMirror-measure pre { + position: static; } + +.CodeMirror-focused .CodeMirror-selected { + background: #d7d4f0; } + +.CodeMirror-focused div.CodeMirror-cursors { + visibility: visible; } + +.CodeMirror-selected { + background: #ddd; } + +.CodeMirror-line::-moz-selection { + background: #d7d4f0; } + +.CodeMirror-line::selection { + background: #d7d4f0; } + +.CodeMirror-line > span::-moz-selection { + background: #d7d4f0; } + +.CodeMirror-line > span::selection { + background: #d7d4f0; } + +.CodeMirror-line > span > span::-moz-selection { + background: #d7d4f0; } + +.CodeMirror-line > span > span::selection { + background: #d7d4f0; } + +.CodeMirror-line > span > span::-moz-selection { + background: #d7d4f0; } + +.CodeMirror-line > span::-moz-selection { + background: #d7d4f0; } + +.CodeMirror-crosshair { + cursor: crosshair; } + +.CodeMirror-line::-moz-selection { + background: #d7d4f0; } + +.cm-searching { + background: #ffa; + background: rgba(255, 255, 0, 0.4); } + +.cm-force-border { + padding-right: .1px; } + +@media print { + .CodeMirror div.CodeMirror-cursors { + visibility: hidden; } } + +.CodeMirror-fullscreen { + background: #fff; + position: fixed !important; + top: 50px; + left: 0; + right: 0; + bottom: 0; + height: auto; + z-index: 9; } + +.CodeMirror-sided { + width: 50% !important; } + +.editor-toolbar { + position: relative; + opacity: .6; + -webkit-user-select: none; + -moz-user-select: none; + -ms-user-select: none; + user-select: none; + padding: 0 10px; + border-top: 1px solid #e6edef; + border-left: 1px solid #e6edef; + border-right: 1px solid #e6edef; + border-top-left-radius: 4px; + border-top-right-radius: 4px; } + .editor-toolbar:after { + display: block; + content: ' '; + height: 1px; + margin-top: 8px; } + .editor-toolbar:before { + display: block; + content: ' '; + height: 1px; + margin-bottom: 8px; } + .editor-toolbar:hover { + opacity: .8; } + .editor-toolbar.fullscreen { + width: 100%; + height: 50px; + overflow-x: auto; + overflow-y: hidden; + white-space: nowrap; + padding-top: 10px; + padding-bottom: 10px; + -webkit-box-sizing: border-box; + box-sizing: border-box; + background: #fff; + border: 0; + position: fixed; + top: 0; + left: 0; + opacity: 1; + z-index: 9; } + .editor-toolbar.fullscreen::before { + width: 20px; + height: 50px; + background: -webkit-gradient(linear, left top, right top, color-stop(0, white), to(rgba(255, 255, 255, 0))); + background: linear-gradient(to right, white 0, rgba(255, 255, 255, 0) 100%); + position: fixed; + top: 0; + left: 0; + margin: 0; + padding: 0; } + .editor-toolbar.fullscreen::after { + width: 20px; + height: 50px; + background: -webkit-gradient(linear, left top, right top, color-stop(0, rgba(255, 255, 255, 0)), to(white)); + background: linear-gradient(to right, rgba(255, 255, 255, 0) 0, white 100%); + position: fixed; + top: 0; + right: 0; + margin: 0; + padding: 0; } + .editor-toolbar a { + display: inline-block; + text-align: center; + text-decoration: none !important; + color: #2c3e50 !important; + width: 30px; + height: 30px; + margin: 0; + border: 1px solid transparent; + border-radius: 3px; + cursor: pointer; } + .editor-toolbar a.active { + background: #fcfcfc; + border-color: #95a5a6; } + .editor-toolbar a:hover { + background: #fcfcfc; + border-color: #95a5a6; } + .editor-toolbar a:before { + line-height: 30px; } + .editor-toolbar a.fa-header-x:after { + font-family: Arial, Helvetica Neue, Helvetica, sans-serif; + font-size: 65%; + vertical-align: text-bottom; + position: relative; + top: 2px; } + .editor-toolbar a.fa-header-1:after { + content: "1"; } + .editor-toolbar a.fa-header-2:after { + content: "2"; } + .editor-toolbar a.fa-header-3:after { + content: "3"; } + .editor-toolbar a.fa-header-bigger:after { + content: "▲"; } + .editor-toolbar a.fa-header-smaller:after { + content: "▼"; } + .editor-toolbar i.separator { + display: inline-block; + width: 0; + border-left: 1px solid #ddd; + border-right: 1px solid #fff; + color: transparent; + text-indent: -10px; + margin: 0 6px; } + .editor-toolbar.disabled-for-preview a:not(.no-disable) { + pointer-events: none; + background: #fff; + border-color: transparent; + text-shadow: inherit; } + +@media only screen and (max-width: 700px) { + .editor-toolbar a.no-mobile { + display: none; } } + +.editor-statusbar { + padding: 8px 10px; + font-size: 12px; + color: #999; + text-align: right; } + .editor-statusbar span { + display: inline-block; + min-width: 4em; + margin-left: 1em; } + .editor-statusbar .lines:before { + content: 'lines: '; } + .editor-statusbar .words:before { + content: 'words: '; } + .editor-statusbar .characters:before { + content: 'characters: '; } + +.editor-preview { + padding: 10px; + background: #fafafa; + overflow: auto; + display: none; + -webkit-box-sizing: border-box; + box-sizing: border-box; + position: absolute; + width: 100%; + height: 100%; + top: 0; + left: 0; + z-index: 7; } + .editor-preview > p { + margin-top: 0; } + .editor-preview pre { + background: #eee; + margin-bottom: 10px; } + .editor-preview table td { + border: 1px solid #ddd; + padding: 5px; } + .editor-preview table th { + border: 1px solid #ddd; + padding: 5px; } + +.editor-preview-side { + padding: 10px; + background: #fafafa; + overflow: auto; + display: none; + -webkit-box-sizing: border-box; + box-sizing: border-box; + position: fixed; + bottom: 0; + width: 50%; + top: 50px; + right: 0; + z-index: 9; + border: 1px solid #ddd; } + .editor-preview-side > p { + margin-top: 0; } + .editor-preview-side pre { + background: #eee; + margin-bottom: 10px; } + .editor-preview-side table td { + border: 1px solid #ddd; + padding: 5px; } + .editor-preview-side table th { + border: 1px solid #ddd; + padding: 5px; } + +.editor-preview-active { + display: block; } + +.editor-preview-active-side { + display: block; } + +.CodeMirror-wrap pre { + word-wrap: break-word; + white-space: pre-wrap; + word-break: normal; + color: #999; } + +.cm-tab-wrap-hack:after { + content: ''; } + +span.CodeMirror-selectedtext { + background: 0 0; } + +.editor-wrapper input.title:focus { + opacity: .8; } + +.editor-wrapper input.title:hover { + opacity: .8; } diff --git a/public/admin/assets/css/slick-theme.css b/public/admin/assets/css/slick-theme.css new file mode 100644 index 0000000..9ada87a --- /dev/null +++ b/public/admin/assets/css/slick-theme.css @@ -0,0 +1,129 @@ +@charset "UTF-8"; +/* Slider */ +.slick-loading .slick-list { + background: #fff url("../images/ajax-loader.gif") center center no-repeat; } + +/* Icons */ +@font-face { + font-family: "slick"; + src: url("../fonts/slick/slick.eot"); + src: url("../fonts/slick/slickd41d.eot?#iefix") format("embedded-opentype"), url("../fonts/slick/slick.woff") format("woff"), url("../fonts/slick/slick.ttf") format("truetype"), url("../fonts/slick/slick.svg#slick") format("svg"); + font-weight: normal; + font-style: normal; } + +/* Arrows */ +.slick-prev, +.slick-next { + position: absolute; + display: block; + height: 20px; + width: 20px; + line-height: 0px; + font-size: 0px; + cursor: pointer; + background: transparent; + color: transparent; + top: 50%; + -webkit-transform: translate(0, -50%); + transform: translate(0, -50%); + padding: 0; + border: none; + outline: none; } + .slick-prev:hover, .slick-prev:focus, + .slick-next:hover, + .slick-next:focus { + outline: none; + background: transparent; + color: transparent; } + .slick-prev:hover:before, .slick-prev:focus:before, + .slick-next:hover:before, + .slick-next:focus:before { + opacity: 1; } + .slick-prev.slick-disabled:before, + .slick-next.slick-disabled:before { + opacity: 0.25; } + .slick-prev:before, + .slick-next:before { + font-family: "slick"; + font-size: 20px; + line-height: 1; + color: white; + opacity: 0.75; + -webkit-font-smoothing: antialiased; + -moz-osx-font-smoothing: grayscale; } + +.slick-prev { + left: -25px; } + [dir="rtl"] .slick-prev { + left: auto; + right: -25px; } + .slick-prev:before { + content: "←"; } + [dir="rtl"] .slick-prev:before { + content: "→"; } + +.slick-next { + right: -25px; } + [dir="rtl"] .slick-next { + left: -25px; + right: auto; } + .slick-next:before { + content: "→"; } + [dir="rtl"] .slick-next:before { + content: "←"; } + +/* Dots */ +.slick-dotted.slick-slider { + margin-bottom: 30px; } + +.slick-dots { + position: absolute; + bottom: -25px; + list-style: none; + display: block; + text-align: center; + padding: 0; + margin: 0; + width: 100%; } + .slick-dots li { + position: relative; + display: inline-block; + height: 20px; + width: 20px; + margin: 0 5px; + padding: 0; + cursor: pointer; } + .slick-dots li button { + border: 0; + background: transparent; + display: block; + height: 20px; + width: 20px; + outline: none; + line-height: 0px; + font-size: 0px; + color: transparent; + padding: 5px; + cursor: pointer; } + .slick-dots li button:hover, .slick-dots li button:focus { + outline: none; } + .slick-dots li button:hover:before, .slick-dots li button:focus:before { + opacity: 1; } + .slick-dots li button:before { + position: absolute; + top: 0; + left: 0; + content: "•"; + width: 20px; + height: 20px; + font-family: "slick"; + font-size: 6px; + line-height: 20px; + text-align: center; + color: black; + opacity: 0.25; + -webkit-font-smoothing: antialiased; + -moz-osx-font-smoothing: grayscale; } + .slick-dots li.slick-active button:before { + color: black; + opacity: 0.75; } diff --git a/public/admin/assets/css/slick.css b/public/admin/assets/css/slick.css new file mode 100644 index 0000000..05a49c6 --- /dev/null +++ b/public/admin/assets/css/slick.css @@ -0,0 +1,71 @@ +/* Slider */ +.slick-slider { + position: relative; + display: block; + -webkit-box-sizing: border-box; + box-sizing: border-box; + -webkit-touch-callout: none; + -webkit-user-select: none; + -moz-user-select: none; + -ms-user-select: none; + user-select: none; + -ms-touch-action: pan-y; + touch-action: pan-y; + -webkit-tap-highlight-color: transparent; } + +.slick-list { + position: relative; + overflow: hidden; + display: block; + margin: 0; + padding: 0; } + .slick-list:focus { + outline: none; } + .slick-list.dragging { + cursor: pointer; + cursor: hand; } + +.slick-slider .slick-track, +.slick-slider .slick-list { + -webkit-transform: translate3d(0, 0, 0); + transform: translate3d(0, 0, 0); } + +.slick-track { + position: relative; + left: 0; + top: 0; + display: block; + margin-left: auto; + margin-right: auto; } + .slick-track:before, .slick-track:after { + content: ""; + display: table; } + .slick-track:after { + clear: both; } + .slick-loading .slick-track { + visibility: hidden; } + +.slick-slide { + float: left; + height: 100%; + min-height: 1px; + display: none; } + [dir="rtl"] .slick-slide { + float: right; } + .slick-slide img { + display: block; } + .slick-slide.slick-loading img { + display: none; } + .slick-slide.dragging img { + pointer-events: none; } + .slick-initialized .slick-slide { + display: block; } + .slick-loading .slick-slide { + visibility: hidden; } + .slick-vertical .slick-slide { + display: block; + height: auto; + border: 1px solid transparent; } + +.slick-arrow.slick-hidden { + display: none; } diff --git a/public/admin/assets/css/sticky.css b/public/admin/assets/css/sticky.css new file mode 100644 index 0000000..3784574 --- /dev/null +++ b/public/admin/assets/css/sticky.css @@ -0,0 +1,140 @@ +/* * Hide from both screenreaders and browsers: h5bp.com/u */ +.hidden { + display: none !important; + visibility: hidden; } + +/* * Hide only visually, but have it available for screenreaders: h5bp.com/v */ +.visuallyhidden { + border: 0; + clip: rect(0 0 0 0); + height: 1px; + margin: -1px; + overflow: hidden; + padding: 0; + position: absolute; + width: 1px; } + +/* * Extends the .visuallyhidden class to allow the element to be focusable * when navigated to via the keyboard: h5bp.com/p */ +.visuallyhidden.focusable:active, +.visuallyhidden.focusable:focus { + clip: auto; + height: auto; + margin: 0; + overflow: visible; + position: static; + width: auto; } + +/* * Hide visually and from screenreaders, but maintain layout */ +.invisible { + visibility: hidden; } + +.clearfix:before, +.clearfix:after { + content: " "; + /* 1 */ + display: table; + /* 2 */ } + +.clearfix:after { + clear: both; } + +.noflick, .note, .button { + -webkit-perspective: 1000; + perspective: 1000; + -webkit-backface-visibility: hidden; + backface-visibility: hidden; + -webkit-transform: translate3d(0, 0, 0); + transform: translate3d(0, 0, 0); } + +.sticky-note { + margin: -15px; } + +.note { + float: left; + display: block; + position: relative; + padding: 1em; + width: calc(25% - 30px); + min-height: 300px; + margin: 15px; + border-radius: 5px; + background-color: #3eb59f; + -webkit-transition: -webkit-transform .15s; + transition: -webkit-transform .15s; + transition: transform .15s; + transition: transform .15s, -webkit-transform .15s; + z-index: 1; } + .note:hover { + cursor: move; } + .note.ui-draggable-dragging:nth-child(n) { + -webkit-box-shadow: 5px 5px 15px 0 rgba(0, 0, 0, 0.3); + box-shadow: 5px 5px 15px 0 rgba(0, 0, 0, 0.3); + -webkit-transform: scale(1.125) !important; + transform: scale(1.125) !important; + z-index: 100; + cursor: move; + -webkit-transition: -webkit-transform .150s; + transition: -webkit-transform .150s; + transition: transform .150s; + transition: transform .150s, -webkit-transform .150s; } + .note textarea { + background-color: transparent; + border: none; + resize: vertical; + font-style: italic; + width: 100%; + padding: 5px; + color: #fff; } + .note textarea::-webkit-input-placeholder { + color: #fff; } + .note textarea:-moz-placeholder { + /* Firefox 18- */ + color: #fff; } + .note textarea::-moz-placeholder { + /* Firefox 19+ */ + color: #fff; } + .note textarea:-ms-input-placeholder { + color: #fff; } + .note textarea:focus { + outline: none; + border: none; + -webkit-box-shadow: 0 0 0px 1px rgba(255, 255, 255, 0.2) inset; + box-shadow: 0 0 0px 1px rgba(255, 255, 255, 0.2) inset; } + .note textarea.title { + font-size: 24px; + line-height: 1.2; + color: #fff; + height: 64px; + margin-top: 20px; } + .note textarea.cnt { + min-height: 200px; } + .note:nth-child(2n) { + background: #efe4da; } + .note:nth-child(3n) { + background: #8fd7ca; } + .note:nth-child(4n) { + background: #b1b1b1; } + .note:nth-child(5n) { + background: #f9f2d2; } + .note:nth-child(6n) { + background: #e9969e; } + +/* Button style */ +.button { + color: #FFFFFF; + padding: 1em 2em; + text-decoration: none; + -webkit-transition: background .01s, -webkit-transform .150s; + transition: background .01s, -webkit-transform .150s; + transition: transform .150s, background .01s; + transition: transform .150s, background .01s, -webkit-transform .150s; } + .button.remove { + position: absolute; + top: 0; + right: -10px; + color: #999; } + +@media only screen and (max-width: 1199px) { + .note { + min-width: 260px; + min-height: 260px; } } diff --git a/public/admin/assets/css/style.css b/public/admin/assets/css/style.css new file mode 100644 index 0000000..68e0602 --- /dev/null +++ b/public/admin/assets/css/style.css @@ -0,0 +1,30944 @@ +@charset "UTF-8"; +/*----------------------------------------------------------------------------------- + Template Name: viho Admin + Template URI: themes.pixelstrap.com/viho + Description: This is Admin theme + Author: Pixelstrap + Author URI: https://themeforest.net/user/pixelstrap +----------------------------------------------------------------------------------- + +01. General CSS +02. Generic CSS +03. Card CSS +04. Loader CSS +05. Header CSS +06. Button CSS +07. Color CSS +08. GRID CSS +09. Error-page CSS +10. Icon css +11. Form Builder 1 CSS +12. Form Builder 2 CSS +13. Email Application CSS +14. Chat CSS +15. Alert CSS +16. Popover CSS +17. List CSS +18. Switch CSS +19. Mega option CSS +20. Touchspin CSS +21. Select 2 CSS +22. User profile css +23. Progress CSS +24. According CSS +25. Authentication CSS +26. Form CSS +27. Coming Soon CSS +28. Radio CSS +29. Form Input CSS +30. Data-table CSS +31. JS datagrid CSS +32. Page CSS +33. Ecommerce CSS +34. Pricing CSS +35. Form builder css +36. NAV CSS +37. Dropdown CSS +38. Landing CSS +39. Table CSS +40. Alertbox-call-out CSS +41. Chart CSS +42. Timeline CSS +43. Timeline 2 CSS +44. Tabs CSS +45. Gallery CSS +46. Blog CSS +47. Footer CSS +48. Form Wizard +49. Badge CSS +50. Tree CSS +51. Search CSS +52. Datepicker CSS +53. Dashboard CSS +54. Tour CSS +55. theme layout CSS +56. Ribbon CSS +57. breadcrumb CSS +58. Steps CSS +59. Customizer CSS +60. RTL CSS +61. base_inputs CSS +62. Responsive css +63. Box-layout css +64. Button Builder css +65. Button Builder color picker CSS +66. FullCalendar CSS +67. Dashboard 2 +68. Dashboard 3 +70. Document css +71. Faq CSS +72. Job CSS +73. knowledgebase CSS +74. internationalization CSS +75. Learning CSS +76. Order History css +77. Print CSS +78. Sidebar CSS +79. social app +80. avatars +81. Bookmark +82. cart +83. wishlist +84. checkout +85. bookmark app +86. contacts +87. task +88. Invoice +89. Formwidgets +90. Base_inputs +91. Project list +92. File Manager + + */ +/**===================== + 01. General CSS Start +==========================**/ +html { + max-width: 100vw; + overflow-x: hidden; } + +body { + font-size: 14px; + overflow-x: hidden; + font-family: "Montserrat", sans-serif; + color: #242934; + background-color: #f5f7fb; } + +ul { + padding-left: 0px; + list-style-type: none; + margin-bottom: 0; + padding-right: 0px; } + +a { + color: #24695c; + text-decoration: none; } + a:hover { + text-decoration: none; } + +.btn-link { + text-decoration: none; } + +*a { + color: #24695c; + text-decoration: none; } + *a:hover { + text-decoration: none; } + +*.btn:focus { + -webkit-box-shadow: none !important; + box-shadow: none !important; } + +h6 { + font-weight: 600; } + +p { + font-size: 14px; + line-height: 1.7; + letter-spacing: inherit; } + +span { + font-weight: 500; } + +.dropdown-item:active, .dropdown-item.active { + background-color: #24695c; } + +hr { + background-color: #e6edef; + opacity: 1; } + +.theme-form .col-form-label { + color: #59667a; } + +.form-label { + color: #59667a; + font-weight: 500; } + +code { + color: #24695c !important; + background-color: rgba(36, 105, 92, 0.03); + padding: 3px; + margin: 0 3px; + border-radius: 2px; } + +blockquote { + border-left: 4px solid #e6edef; + padding: 15px; } + +blockquote.text-center { + border: none; + padding: 15px; } + +blockquote.text-end { + border-left: none; + border-right: 4px solid #e6edef; + padding: 15px; } + +:focus { + outline: none; } + +.disabled { + cursor: not-allowed; + opacity: 0.5; } + +svg { + vertical-align: baseline; } + +input:focus { + outline-color: transparent; } + +.font-nunito { + font-family: Nunito, sans-serif; } + +.font-roboto { + font-family: "Roboto", sans-serif; } + +.font-rubik { + font-family: "Rubik", sans-serif, sans-serif; } + +.media-widgets .media-body { + margin-bottom: 30px; } + +.rating-star { + display: -webkit-box; + display: -ms-flexbox; + display: flex; + -webkit-box-align: center; + -ms-flex-align: center; + align-items: center; } + .rating-star li i { + color: #f4c705; } + +@-webkit-keyframes rotateInSetting { + 0% { + -webkit-transform-origin: center; + transform-origin: center; + -webkit-transform: rotate(-200deg); + transform: rotate(-200deg); } + to { + -webkit-transform-origin: center; + transform-origin: center; + -webkit-transform: none; + transform: none; } } + +@keyframes rotateInSetting { + 0% { + -webkit-transform-origin: center; + transform-origin: center; + -webkit-transform: rotate(-200deg); + transform: rotate(-200deg); } + to { + -webkit-transform-origin: center; + transform-origin: center; + -webkit-transform: none; + transform: none; } } + +.setting-primary, .setting-secondary, .setting-white { + width: 32px; + height: 32px; + 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; + border-radius: 50px; } + .setting-primary svg, .setting-secondary svg, .setting-white svg { + width: 15px; + stroke-width: 2.5px; + -webkit-animation: rotateInSetting 1.5s ease infinite; + animation: rotateInSetting 1.5s ease infinite; } + +.setting-primary { + background-color: rgba(36, 105, 92, 0.1); } + .setting-primary svg { + color: #24695c; } + .setting-primary i { + color: #24695c; } + .setting-primary:hover { + background-color: #24695c; } + .setting-primary:hover svg { + color: #fff; } + .setting-primary:hover i { + color: #fff; } + +.setting-secondary { + background-color: rgba(186, 137, 93, 0.1); } + .setting-secondary svg { + color: #ba895d; } + .setting-secondary i { + color: #ba895d; } + .setting-secondary:hover { + background-color: #ba895d; } + .setting-secondary:hover svg { + color: #fff; } + .setting-secondary:hover i { + color: #fff; } + +.setting-white { + background-color: rgba(255, 255, 255, 0.1); } + .setting-white svg { + color: #fff; } + .setting-white i { + color: #fff; } + .setting-white:hover { + background-color: #fff; } + .setting-white:hover svg { + color: #24695c; } + .setting-white:hover i { + color: #24695c; } + +.setting-bg-primary { + background-color: rgba(36, 105, 92, 0.1); + width: 32px; + height: 32px; + 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; + border-radius: 50px; } + .setting-bg-primary svg { + width: 15px; + color: #24695c; + stroke-width: 2.5px; + -webkit-animation: rotateInSetting 1.5s ease infinite; + animation: rotateInSetting 1.5s ease infinite; } + +.typography h1, .typography .h1, +.typography h2, .typography .h2, +.typography h3, .typography .h3, +.typography h4, .typography .h4, +.typography h5, .typography .h5, +.typography h6, .typography .h6 { + margin: 20px 0; + margin-top: 0; } + .typography h1:last-child, .typography .h1:last-child, + .typography h2:last-child, .typography .h2:last-child, + .typography h3:last-child, .typography .h3:last-child, + .typography h4:last-child, .typography .h4:last-child, + .typography h5:last-child, .typography .h5:last-child, + .typography h6:last-child, .typography .h6:last-child { + margin-bottom: 0; } + +.typography small { + padding-left: 10px; + color: #2c323f; } + +pre { + background-color: rgba(36, 105, 92, 0.03); + padding: 20px 0; } + +a:hover { + text-decoration: none; + color: #24695c; } + +.typography .blockquote-footer { + background-color: #f5f7fb; } + +.owl-theme .owl-dots .owl-dot span { + background: #3eb59f; } + +.owl-theme .owl-dots .owl-dot.active span, .owl-theme .owl-dots .owl-dot:hover span { + background: #24695c; } + +.owl-theme .owl-nav.disabled + .owl-dots { + margin-bottom: -10px; + margin-top: 25px; } + +.click2edit ~ .note-editor.note-frame { + margin-bottom: 30px; } + +.note-editor p { + color: #999; } + +.note-editor.note-frame { + border-color: #e6edef; } + +.note-editor i { + color: #24695c; } + +.note-editor span { + color: #24695c; } + +.note-editor.note-frame { + border-color: #e6edef; } + +.modal .modal-body .card { + -webkit-box-shadow: none !important; + box-shadow: none !important; } + +.modal-dialog .modal-content .modal-body p a { + margin-right: 0; } + +.clipboaard-container p { + font-weight: 600; } + +.clipboaard-container h6 { + line-height: 1.8; } + +.alert-theme button { + top: 24px !important; + right: 30px !important; + color: #24695c; } + +.alert-theme span + span + span { + border-left: 5px solid #24695c; + background-color: #fff; + border-radius: 4px; + -webkit-box-shadow: 0 2px 14px -3px rgba(0, 0, 0, 0.2); + box-shadow: 0 2px 14px -3px rgba(0, 0, 0, 0.2); } + +.alert-theme i { + padding: 20px; + padding-right: 0 !important; + margin-right: 10px !important; } + +.alert-theme .progress { + margin-top: -2px !important; + height: 2px; } + .alert-theme .progress .progress-bar { + background-color: #24695c; } + +.alert-copy { + border: 1px solid #24695c; + line-height: 1; + display: inline-block; + width: 300px; + color: #fff; + background-color: #24695c; + -webkit-box-shadow: 3px 3px 5px 0 #9b9b9b; + box-shadow: 3px 3px 5px 0 #9b9b9b; } + .alert-copy .close { + -webkit-box-shadow: none; + box-shadow: none; + color: #fff; + line-height: 1.4; + font-weight: 100; } + +.ace-editor { + height: 400px; + width: 100%; } + +.editor-toolbar { + width: 100% !important; } + +.CodeMirror { + top: 0 !important; } + +.border { + border: 1px solid #e6edef !important; } + +.irs-from, .irs-to, .irs-single { + background: #24695c; } + +.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; } + +.row > div { + position: relative; } + +[class*="col-"] { + position: relative; } + +.cke_top { + background-color: #f5f7fb; } + +.cke_wysiwyg_frame, .cke_wysiwyg_div { + background-color: #f5f7fb; } + +.modal-header .btn-close, .modal-footer .btn-close, .modal-content .btn-close { + position: absolute; + top: 30px; + right: 25px; } + +.btn-close:focus { + -webkit-box-shadow: none; + box-shadow: none; } + +.my-gallery.gallery-with-description img { + border-color: #e6edef !important; } + +/**===================== + 01. General CSS Ends +==========================**/ +/**===================== + 02. Generic CSS Start +==========================**/ +/*====== Padding css starts ======*/ +.p-0 { + padding: 0px; } + +.p-5 { + padding: 5px; } + +.p-10 { + padding: 10px; } + +.p-15 { + padding: 15px; } + +.p-20 { + padding: 20px; } + +.p-25 { + padding: 25px; } + +.p-30 { + padding: 30px; } + +.p-35 { + padding: 35px; } + +.p-40 { + padding: 40px; } + +.p-45 { + padding: 45px; } + +.p-50 { + padding: 50px; } + +/*====== Padding css ends ======*/ +/*====== Padding-left css starts ======*/ +.p-l-0 { + padding-left: 0px; } + +.p-l-5 { + padding-left: 5px; } + +.p-l-10 { + padding-left: 10px; } + +.p-l-15 { + padding-left: 15px; } + +.p-l-20 { + padding-left: 20px; } + +.p-l-25 { + padding-left: 25px; } + +.p-l-30 { + padding-left: 30px; } + +.p-l-35 { + padding-left: 35px; } + +.p-l-40 { + padding-left: 40px; } + +.p-l-45 { + padding-left: 45px; } + +.p-l-50 { + padding-left: 50px; } + +/*====== Padding-left css ends ======*/ +/*====== Padding-top css starts ======*/ +.p-t-0 { + padding-top: 0px !important; } + +.p-t-5 { + padding-top: 5px !important; } + +.p-t-10 { + padding-top: 10px !important; } + +.p-t-15 { + padding-top: 15px !important; } + +.p-t-20 { + padding-top: 20px !important; } + +.p-t-25 { + padding-top: 25px !important; } + +.p-t-30 { + padding-top: 30px !important; } + +.p-t-35 { + padding-top: 35px !important; } + +.p-t-40 { + padding-top: 40px !important; } + +.p-t-45 { + padding-top: 45px !important; } + +.p-t-50 { + padding-top: 50px !important; } + +/*====== Padding-top css ends ======*/ +/*====== Padding-bottom css starts ======*/ +.p-b-0 { + padding-bottom: 0px !important; } + +.p-b-5 { + padding-bottom: 5px !important; } + +.p-b-10 { + padding-bottom: 10px !important; } + +.p-b-15 { + padding-bottom: 15px !important; } + +.p-b-20 { + padding-bottom: 20px !important; } + +.p-b-25 { + padding-bottom: 25px !important; } + +.p-b-30 { + padding-bottom: 30px !important; } + +.p-b-35 { + padding-bottom: 35px !important; } + +.p-b-40 { + padding-bottom: 40px !important; } + +.p-b-45 { + padding-bottom: 45px !important; } + +.p-b-50 { + padding-bottom: 50px !important; } + +/*====== Padding-bottom css ends ======*/ +/*====== Padding-right css starts ======*/ +.p-r-0 { + padding-right: 0px; } + +.p-r-5 { + padding-right: 5px; } + +.p-r-10 { + padding-right: 10px; } + +.p-r-15 { + padding-right: 15px; } + +.p-r-20 { + padding-right: 20px; } + +.p-r-25 { + padding-right: 25px; } + +.p-r-30 { + padding-right: 30px; } + +.p-r-35 { + padding-right: 35px; } + +.p-r-40 { + padding-right: 40px; } + +.p-r-45 { + padding-right: 45px; } + +.p-r-50 { + padding-right: 50px; } + +/*====== Padding-right css ends ======*/ +/*====== Margin css starts ======*/ +.m-0 { + margin: 0px !important; } + +.m-5 { + margin: 5px !important; } + +.m-10 { + margin: 10px !important; } + +.m-15 { + margin: 15px !important; } + +.m-20 { + margin: 20px !important; } + +.m-25 { + margin: 25px !important; } + +.m-30 { + margin: 30px !important; } + +.m-35 { + margin: 35px !important; } + +.m-40 { + margin: 40px !important; } + +.m-45 { + margin: 45px !important; } + +.m-50 { + margin: 50px !important; } + +/*====== Margin css ends ======*/ +/*====== Margin-top css starts ======*/ +.m-t-0 { + margin-top: 0px !important; } + +.m-t-5 { + margin-top: 5px !important; } + +.m-t-10 { + margin-top: 10px !important; } + +.m-t-15 { + margin-top: 15px !important; } + +.m-t-20 { + margin-top: 20px !important; } + +.m-t-25 { + margin-top: 25px !important; } + +.m-t-30 { + margin-top: 30px !important; } + +.m-t-35 { + margin-top: 35px !important; } + +.m-t-40 { + margin-top: 40px !important; } + +.m-t-45 { + margin-top: 45px !important; } + +.m-t-50 { + margin-top: 50px !important; } + +/*====== Margin-top css ends ======*/ +/*====== Margin-Bottom css starts ======*/ +.m-b-0 { + margin-bottom: 0px !important; } + +.m-b-5 { + margin-bottom: 5px !important; } + +.m-b-10 { + margin-bottom: 10px !important; } + +.m-b-15 { + margin-bottom: 15px !important; } + +.m-b-20 { + margin-bottom: 20px !important; } + +.m-b-25 { + margin-bottom: 25px !important; } + +.m-b-30 { + margin-bottom: 30px !important; } + +.m-b-35 { + margin-bottom: 35px !important; } + +.m-b-40 { + margin-bottom: 40px !important; } + +.m-b-45 { + margin-bottom: 45px !important; } + +.m-b-50 { + margin-bottom: 50px !important; } + +/*====== Margin-Bottom css ends ======*/ +/*====== Margin-left css starts ======*/ +.m-l-0 { + margin-left: 0px !important; } + +.m-l-5 { + margin-left: 5px !important; } + +.m-l-10 { + margin-left: 10px !important; } + +.m-l-15 { + margin-left: 15px !important; } + +.m-l-20 { + margin-left: 20px !important; } + +.m-l-25 { + margin-left: 25px !important; } + +.m-l-30 { + margin-left: 30px !important; } + +.m-l-35 { + margin-left: 35px !important; } + +.m-l-40 { + margin-left: 40px !important; } + +.m-l-45 { + margin-left: 45px !important; } + +.m-l-50 { + margin-left: 50px !important; } + +/*====== Margin-left css ends ======*/ +/*====== Margin-right css starts ======*/ +.m-r-0 { + margin-right: 0px; } + +.m-r-5 { + margin-right: 5px; } + +.m-r-10 { + margin-right: 10px; } + +.m-r-15 { + margin-right: 15px; } + +.m-r-20 { + margin-right: 20px; } + +.m-r-25 { + margin-right: 25px; } + +.m-r-30 { + margin-right: 30px; } + +.m-r-35 { + margin-right: 35px; } + +.m-r-40 { + margin-right: 40px; } + +.m-r-45 { + margin-right: 45px; } + +.m-r-50 { + margin-right: 50px; } + +/*====== Margin-right css ends ======*/ +/*====== Border-radius css starts ======*/ +.b-r-0 { + border-radius: 0px !important; } + +.b-r-1 { + border-radius: 1px !important; } + +.b-r-2 { + border-radius: 2px !important; } + +.b-r-3 { + border-radius: 3px !important; } + +.b-r-4 { + border-radius: 4px !important; } + +.b-r-5 { + border-radius: 5px !important; } + +.b-r-6 { + border-radius: 6px !important; } + +.b-r-7 { + border-radius: 7px !important; } + +.b-r-8 { + border-radius: 8px !important; } + +.b-r-9 { + border-radius: 9px !important; } + +.b-r-10 { + border-radius: 10px !important; } + +/*====== Border-radius css ends ======*/ +/*====== Font-size css starts ======*/ +.f-12 { + font-size: 12px; } + +.f-14 { + font-size: 14px; } + +.f-16 { + font-size: 16px; } + +.f-18 { + font-size: 18px; } + +.f-20 { + font-size: 20px; } + +.f-22 { + font-size: 22px; } + +.f-24 { + font-size: 24px; } + +.f-26 { + font-size: 26px; } + +.f-28 { + font-size: 28px; } + +.f-30 { + font-size: 30px; } + +.f-32 { + font-size: 32px; } + +.f-34 { + font-size: 34px; } + +.f-36 { + font-size: 36px; } + +.f-38 { + font-size: 38px; } + +.f-40 { + font-size: 40px; } + +.f-42 { + font-size: 42px; } + +.f-44 { + font-size: 44px; } + +.f-46 { + font-size: 46px; } + +.f-48 { + font-size: 48px; } + +.f-50 { + font-size: 50px; } + +.f-52 { + font-size: 52px; } + +.f-54 { + font-size: 54px; } + +.f-56 { + font-size: 56px; } + +.f-58 { + font-size: 58px; } + +.f-60 { + font-size: 60px; } + +.f-62 { + font-size: 62px; } + +.f-64 { + font-size: 64px; } + +.f-66 { + font-size: 66px; } + +.f-68 { + font-size: 68px; } + +.f-70 { + font-size: 70px; } + +.f-72 { + font-size: 72px; } + +.f-74 { + font-size: 74px; } + +.f-76 { + font-size: 76px; } + +.f-78 { + font-size: 78px; } + +.f-80 { + font-size: 80px; } + +.f-82 { + font-size: 82px; } + +.f-84 { + font-size: 84px; } + +.f-86 { + font-size: 86px; } + +.f-88 { + font-size: 88px; } + +.f-90 { + font-size: 90px; } + +.f-92 { + font-size: 92px; } + +.f-94 { + font-size: 94px; } + +.f-96 { + font-size: 96px; } + +.f-98 { + font-size: 98px; } + +.f-100 { + font-size: 100px; } + +/*====== Font-size css ends ======*/ +/*====== Font-weight css starts ======*/ +.f-w-100 { + font-weight: 100; } + +.f-w-200 { + font-weight: 200; } + +.f-w-300 { + font-weight: 300; } + +.f-w-400 { + font-weight: 400; } + +.f-w-500 { + font-weight: 500; } + +.f-w-600 { + font-weight: 600; } + +.f-w-700 { + font-weight: 700; } + +.f-w-800 { + font-weight: 800; } + +.f-w-900 { + font-weight: 900; } + +/*====== Font-weight css ends ======*/ +/*====== Font-style css starts ======*/ +.f-s-normal { + font-style: normal; } + +.f-s-italic { + font-style: italic; } + +.f-s-oblique { + font-style: oblique; } + +.f-s-initial { + font-style: initial; } + +.f-s-inherit { + font-style: inherit; } + +/*====== Font-style css ends ======*/ +/*====== Text-Decoration css starts ======*/ +.text-overline { + text-decoration: overline; } + +.text-line-through { + text-decoration: line-through; } + +.text-underline { + text-decoration: underline; } + +.text-dashed { + -webkit-text-decoration: dashed; + text-decoration: dashed; } + +.text-blink { + text-decoration: blink; } + +.text-dotted { + -webkit-text-decoration: dotted; + text-decoration: dotted; } + +.text-initial { + text-decoration: initial; } + +.text-none { + text-decoration: none; } + +.text-solid { + -webkit-text-decoration: solid; + text-decoration: solid; } + +.text-wavy { + -webkit-text-decoration: wavy; + text-decoration: wavy; } + +.text-inherit { + text-decoration: inherit; } + +.text-double { + -webkit-text-decoration: double; + text-decoration: double; } + +/*====== Text-Decoration css ends ======*/ +/*====== Vertical-Align css starts ======*/ +.baseline { + vertical-align: baseline; } + +.sub { + vertical-align: sub; } + +.super { + vertical-align: super; } + +.top { + vertical-align: top; } + +.text-top { + vertical-align: text-top; } + +.middle { + vertical-align: middle; } + +.bottom { + vertical-align: bottom; } + +.text-bottom { + vertical-align: text-bottom; } + +.initial { + vertical-align: initial; } + +.inherit { + vertical-align: inherit; } + +/*====== Vertical-Align css ends ======*/ +/*====== Position css starts ======*/ +.p-static { + position: static; } + +.p-absolute { + position: absolute; } + +.p-fixed { + position: fixed; } + +.p-relative { + position: relative; } + +.p-initial { + position: initial; } + +.p-inherit { + position: inherit; } + +/*====== Position css ends ======*/ +/*====== Float css starts ======*/ +.f-left { + float: left; } + +.f-right { + float: right; } + +.f-none { + float: none; } + +/*====== Float css ends ======*/ +/*====== Overflow css starts ======*/ +.o-hidden { + overflow: hidden; } + +.o-visible { + overflow: visible; } + +.o-auto { + overflow: auto; } + +/*====== Overflow css ends ======*/ +/*====== Image-sizes css starts ======*/ +.img-10 { + width: 10px !important; } + +.img-20 { + width: 20px !important; } + +.img-30 { + width: 30px !important; } + +.img-40 { + width: 40px !important; } + +.img-50 { + width: 50px !important; } + +.img-60 { + width: 60px !important; } + +.img-70 { + width: 70px !important; } + +.img-80 { + width: 80px !important; } + +.img-90 { + width: 90px !important; } + +.img-100 { + width: 100px !important; } + +/*====== Image-sizes css ends ======*/ +/*======= Text css starts ===========*/ +.font-primary { + color: #24695c !important; } + +.font-secondary { + color: #ba895d !important; } + +.font-success { + color: #1b4c43 !important; } + +.font-danger { + color: #d22d3d !important; } + +.font-info { + color: #717171 !important; } + +.font-light { + color: #e6edef !important; } + +.font-dark { + color: #2c323f !important; } + +.font-warning { + color: #e2c636 !important; } + +/*======= Text css ends ===========*/ +/*======= Font bold start ===========*/ +.fontbold-100 { + font-weight: 100; } + +.fontbold-200 { + font-weight: 200; } + +.fontbold-300 { + font-weight: 300; } + +.fontbold-400 { + font-weight: 400; } + +.fontbold-500 { + font-weight: 500; } + +.fontbold-600 { + font-weight: 600; } + +.fontbold-700 { + font-weight: 700; } + +.fontbold-800 { + font-weight: 800; } + +.fontbold-900 { + font-weight: 900; } + +/*======= Font bold end ===========*/ +/*======= Label-color css starts ======= */ +.label { + border-radius: 2px; + color: #fff; + font-size: 12px; + line-height: 1; + margin-bottom: 0; + text-transform: capitalize; } + +.label-theme { + background-color: #24695c; } + +.label-primary { + background-color: #24695c; } + +.label-secondary { + background-color: #ba895d; } + +.label-success { + background-color: #1b4c43; } + +.label-danger { + background-color: #d22d3d; } + +.label-info { + background-color: #717171; } + +.label-light { + background-color: #e6edef; } + +.label-dark { + background-color: #2c323f; } + +.label-warning { + background-color: #e2c636; } + +/*======= Label-color css ends ======= */ +/*======= Badge-color css starts ======= */ +.badge-primary { + background-color: #24695c; } + +.badge-secondary { + background-color: #ba895d; } + +.badge-success { + background-color: #1b4c43; } + +.badge-danger { + background-color: #d22d3d; } + +.badge-info { + background-color: #717171; } + +.badge-light { + background-color: #e6edef; } + +.badge-dark { + background-color: #2c323f; } + +.badge-warning { + background-color: #e2c636; } + +/*======= Badge-color css end ======= */ +/*======= Background-color css starts ======= */ +.bg-primary { + background-color: #24695c !important; + color: #fff; } + +.bg-secondary { + background-color: #ba895d !important; + color: #fff; } + +.bg-success { + background-color: #1b4c43 !important; + color: #fff; } + +.bg-danger { + background-color: #d22d3d !important; + color: #fff; } + +.bg-info { + background-color: #717171 !important; + color: #fff; } + +.bg-light { + background-color: #e6edef !important; + color: #fff; } + +.bg-dark { + background-color: #2c323f !important; + color: #fff; } + +.bg-warning { + background-color: #e2c636 !important; + color: #fff; } + +/*======= Background-color css end ======= */ +/*======= Font-color css starts ======= */ +.txt-primary { + color: #24695c !important; } + +.txt-secondary { + color: #ba895d !important; } + +.txt-success { + color: #1b4c43 !important; } + +.txt-danger { + color: #d22d3d !important; } + +.txt-info { + color: #717171 !important; } + +.txt-light { + color: #e6edef !important; } + +.txt-dark { + color: #2c323f !important; } + +.txt-warning { + color: #e2c636 !important; } + +.txt-google-plus { + color: #c64e40 !important; } + +.txt-twitter { + color: #6fa2d8 !important; } + +.txt-linkedin { + color: #0077B5 !important; } + +.txt-fb { + color: #50598e !important; } + +.txt-white { + color: #fff !important; } + +/*======= Font-color css end ======= */ +/*======= Button-color css starts ======= */ +.btn-primary { + background-color: #24695c !important; + border-color: #24695c !important; } + .btn-primary.disabled, .btn-primary:disabled { + background-color: #24695c !important; + border-color: #24695c !important; } + .btn-primary:focus { + -webkit-box-shadow: 0 0 0 0.2rem #5ec8b4; + box-shadow: 0 0 0 0.2rem #5ec8b4; } + +.btn-secondary { + background-color: #ba895d !important; + border-color: #ba895d !important; } + .btn-secondary.disabled, .btn-secondary:disabled { + background-color: #ba895d !important; + border-color: #ba895d !important; } + .btn-secondary:focus { + -webkit-box-shadow: 0 0 0 0.2rem #e8d7c8; + box-shadow: 0 0 0 0.2rem #e8d7c8; } + +.btn-success { + background-color: #1b4c43 !important; + border-color: #1b4c43 !important; } + .btn-success.disabled, .btn-success:disabled { + background-color: #1b4c43 !important; + border-color: #1b4c43 !important; } + .btn-success:focus { + -webkit-box-shadow: 0 0 0 0.2rem #44bca6; + box-shadow: 0 0 0 0.2rem #44bca6; } + +.btn-danger { + background-color: #d22d3d !important; + border-color: #d22d3d !important; } + .btn-danger.disabled, .btn-danger:disabled { + background-color: #d22d3d !important; + border-color: #d22d3d !important; } + .btn-danger:focus { + -webkit-box-shadow: 0 0 0 0.2rem #edabb1; + box-shadow: 0 0 0 0.2rem #edabb1; } + +.btn-info { + background-color: #717171 !important; + border-color: #717171 !important; } + .btn-info.disabled, .btn-info:disabled { + background-color: #717171 !important; + border-color: #717171 !important; } + .btn-info:focus { + -webkit-box-shadow: 0 0 0 0.2rem #bebebe; + box-shadow: 0 0 0 0.2rem #bebebe; } + +.btn-light { + background-color: #e6edef !important; + border-color: #e6edef !important; } + .btn-light.disabled, .btn-light:disabled { + background-color: #e6edef !important; + border-color: #e6edef !important; } + .btn-light:focus { + -webkit-box-shadow: 0 0 0 0.2rem white; + box-shadow: 0 0 0 0.2rem white; } + +.btn-dark { + background-color: #2c323f !important; + border-color: #2c323f !important; } + .btn-dark.disabled, .btn-dark:disabled { + background-color: #2c323f !important; + border-color: #2c323f !important; } + .btn-dark:focus { + -webkit-box-shadow: 0 0 0 0.2rem #6c7a98; + box-shadow: 0 0 0 0.2rem #6c7a98; } + +.btn-warning { + background-color: #e2c636 !important; + border-color: #e2c636 !important; } + .btn-warning.disabled, .btn-warning:disabled { + background-color: #e2c636 !important; + border-color: #e2c636 !important; } + .btn-warning:focus { + -webkit-box-shadow: 0 0 0 0.2rem #f5ecbc; + box-shadow: 0 0 0 0.2rem #f5ecbc; } + +.btn-primary-light { + background-color: rgba(36, 105, 92, 0.1) !important; + border: none !important; + color: #24695c; + -webkit-transition: 0.5s; + transition: 0.5s; } + .btn-primary-light:focus, .btn-primary-light:hover { + background-color: rgba(36, 105, 92, 0.5) !important; + color: #fff; + -webkit-transition: 0.5s; + transition: 0.5s; } + +/*======= Button-color css ends ======= */ +.btn-outline-primary-2x { + border-width: 2px; + border-color: #24695c; + color: #24695c; + background-color: transparent; } + .btn-outline-primary-2x:hover, .btn-outline-primary-2x:focus, .btn-outline-primary-2x:active, .btn-outline-primary-2x.active { + color: white; + background-color: #17433b !important; + border-color: #17433b !important; + -webkit-box-shadow: none; + box-shadow: none; } + +.btn-outline-secondary-2x { + border-width: 2px; + border-color: #ba895d; + color: #ba895d; + background-color: transparent; } + .btn-outline-secondary-2x:hover, .btn-outline-secondary-2x:focus, .btn-outline-secondary-2x:active, .btn-outline-secondary-2x.active { + color: white; + background-color: #a07044 !important; + border-color: #a07044 !important; + -webkit-box-shadow: none; + box-shadow: none; } + +.btn-outline-success-2x { + border-width: 2px; + border-color: #1b4c43; + color: #1b4c43; + background-color: transparent; } + .btn-outline-success-2x:hover, .btn-outline-success-2x:focus, .btn-outline-success-2x:active, .btn-outline-success-2x.active { + color: white; + background-color: #0e2622 !important; + border-color: #0e2622 !important; + -webkit-box-shadow: none; + box-shadow: none; } + +.btn-outline-danger-2x { + border-width: 2px; + border-color: #d22d3d; + color: #d22d3d; + background-color: transparent; } + .btn-outline-danger-2x:hover, .btn-outline-danger-2x:focus, .btn-outline-danger-2x:active, .btn-outline-danger-2x.active { + color: white; + background-color: #a82431 !important; + border-color: #a82431 !important; + -webkit-box-shadow: none; + box-shadow: none; } + +.btn-outline-info-2x { + border-width: 2px; + border-color: #717171; + color: #717171; + background-color: transparent; } + .btn-outline-info-2x:hover, .btn-outline-info-2x:focus, .btn-outline-info-2x:active, .btn-outline-info-2x.active { + color: white; + background-color: #585858 !important; + border-color: #585858 !important; + -webkit-box-shadow: none; + box-shadow: none; } + +.btn-outline-light-2x { + border-width: 2px; + border-color: #e6edef; + color: #e6edef; + background-color: transparent; } + .btn-outline-light-2x:hover, .btn-outline-light-2x:focus, .btn-outline-light-2x:active, .btn-outline-light-2x.active { + color: white; + background-color: #c7d7db !important; + border-color: #c7d7db !important; + -webkit-box-shadow: none; + box-shadow: none; } + +.btn-outline-dark-2x { + border-width: 2px; + border-color: #2c323f; + color: #2c323f; + background-color: transparent; } + .btn-outline-dark-2x:hover, .btn-outline-dark-2x:focus, .btn-outline-dark-2x:active, .btn-outline-dark-2x.active { + color: white; + background-color: #171a21 !important; + border-color: #171a21 !important; + -webkit-box-shadow: none; + box-shadow: none; } + +.btn-outline-warning-2x { + border-width: 2px; + border-color: #e2c636; + color: #e2c636; + background-color: transparent; } + .btn-outline-warning-2x:hover, .btn-outline-warning-2x:focus, .btn-outline-warning-2x:active, .btn-outline-warning-2x.active { + color: white; + background-color: #c8ac1d !important; + border-color: #c8ac1d !important; + -webkit-box-shadow: none; + box-shadow: none; } + +.btn-outline-primary { + border-color: #24695c; + color: #24695c; + background-color: transparent; } + .btn-outline-primary.disabled { + color: #24695c; } + .btn-outline-primary:hover, .btn-outline-primary:focus, .btn-outline-primary:active, .btn-outline-primary.active { + color: white; + background-color: #17433b !important; + border-color: #17433b !important; } + +.btn-outline-secondary { + border-color: #ba895d; + color: #ba895d; + background-color: transparent; } + .btn-outline-secondary.disabled { + color: #ba895d; } + .btn-outline-secondary:hover, .btn-outline-secondary:focus, .btn-outline-secondary:active, .btn-outline-secondary.active { + color: white; + background-color: #a07044 !important; + border-color: #a07044 !important; } + +.btn-outline-success { + border-color: #1b4c43; + color: #1b4c43; + background-color: transparent; } + .btn-outline-success.disabled { + color: #1b4c43; } + .btn-outline-success:hover, .btn-outline-success:focus, .btn-outline-success:active, .btn-outline-success.active { + color: white; + background-color: #0e2622 !important; + border-color: #0e2622 !important; } + +.btn-outline-danger { + border-color: #d22d3d; + color: #d22d3d; + background-color: transparent; } + .btn-outline-danger.disabled { + color: #d22d3d; } + .btn-outline-danger:hover, .btn-outline-danger:focus, .btn-outline-danger:active, .btn-outline-danger.active { + color: white; + background-color: #a82431 !important; + border-color: #a82431 !important; } + +.btn-outline-info { + border-color: #717171; + color: #717171; + background-color: transparent; } + .btn-outline-info.disabled { + color: #717171; } + .btn-outline-info:hover, .btn-outline-info:focus, .btn-outline-info:active, .btn-outline-info.active { + color: white; + background-color: #585858 !important; + border-color: #585858 !important; } + +.btn-outline-light { + border-color: #e6edef; + color: #e6edef; + background-color: transparent; + color: #242934; } + .btn-outline-light.disabled { + color: #e6edef; } + .btn-outline-light:hover, .btn-outline-light:focus, .btn-outline-light:active, .btn-outline-light.active { + color: white; + background-color: #c7d7db !important; + border-color: #c7d7db !important; } + +.btn-outline-dark { + border-color: #2c323f; + color: #2c323f; + background-color: transparent; } + .btn-outline-dark.disabled { + color: #2c323f; } + .btn-outline-dark:hover, .btn-outline-dark:focus, .btn-outline-dark:active, .btn-outline-dark.active { + color: white; + background-color: #171a21 !important; + border-color: #171a21 !important; } + +.btn-outline-warning { + border-color: #e2c636; + color: #e2c636; + background-color: transparent; } + .btn-outline-warning.disabled { + color: #e2c636; } + .btn-outline-warning:hover, .btn-outline-warning:focus, .btn-outline-warning:active, .btn-outline-warning.active { + color: white; + background-color: #c8ac1d !important; + border-color: #c8ac1d !important; } + +.btn-primary:not([disabled]):not(.disabled).active { + background-color: #17433b; + border-color: #17433b; + -webkit-box-shadow: none !important; + box-shadow: none !important; } + .btn-primary:not([disabled]):not(.disabled).active:hover, .btn-primary:not([disabled]):not(.disabled).active:focus, .btn-primary:not([disabled]):not(.disabled).active:active, .btn-primary:not([disabled]):not(.disabled).active.active { + color: white; + background-color: #17433b; + border-color: #17433b; } + +.btn-secondary:not([disabled]):not(.disabled).active { + background-color: #a07044; + border-color: #a07044; + -webkit-box-shadow: none !important; + box-shadow: none !important; } + .btn-secondary:not([disabled]):not(.disabled).active:hover, .btn-secondary:not([disabled]):not(.disabled).active:focus, .btn-secondary:not([disabled]):not(.disabled).active:active, .btn-secondary:not([disabled]):not(.disabled).active.active { + color: white; + background-color: #a07044; + border-color: #a07044; } + +.btn-success:not([disabled]):not(.disabled).active { + background-color: #0e2622; + border-color: #0e2622; + -webkit-box-shadow: none !important; + box-shadow: none !important; } + .btn-success:not([disabled]):not(.disabled).active:hover, .btn-success:not([disabled]):not(.disabled).active:focus, .btn-success:not([disabled]):not(.disabled).active:active, .btn-success:not([disabled]):not(.disabled).active.active { + color: white; + background-color: #0e2622; + border-color: #0e2622; } + +.btn-danger:not([disabled]):not(.disabled).active { + background-color: #a82431; + border-color: #a82431; + -webkit-box-shadow: none !important; + box-shadow: none !important; } + .btn-danger:not([disabled]):not(.disabled).active:hover, .btn-danger:not([disabled]):not(.disabled).active:focus, .btn-danger:not([disabled]):not(.disabled).active:active, .btn-danger:not([disabled]):not(.disabled).active.active { + color: white; + background-color: #a82431; + border-color: #a82431; } + +.btn-info:not([disabled]):not(.disabled).active { + background-color: #585858; + border-color: #585858; + -webkit-box-shadow: none !important; + box-shadow: none !important; } + .btn-info:not([disabled]):not(.disabled).active:hover, .btn-info:not([disabled]):not(.disabled).active:focus, .btn-info:not([disabled]):not(.disabled).active:active, .btn-info:not([disabled]):not(.disabled).active.active { + color: white; + background-color: #585858; + border-color: #585858; } + +.btn-light:not([disabled]):not(.disabled).active { + background-color: #c7d7db; + border-color: #c7d7db; + -webkit-box-shadow: none !important; + box-shadow: none !important; } + .btn-light:not([disabled]):not(.disabled).active:hover, .btn-light:not([disabled]):not(.disabled).active:focus, .btn-light:not([disabled]):not(.disabled).active:active, .btn-light:not([disabled]):not(.disabled).active.active { + color: white; + background-color: #c7d7db; + border-color: #c7d7db; } + +.btn-dark:not([disabled]):not(.disabled).active { + background-color: #171a21; + border-color: #171a21; + -webkit-box-shadow: none !important; + box-shadow: none !important; } + .btn-dark:not([disabled]):not(.disabled).active:hover, .btn-dark:not([disabled]):not(.disabled).active:focus, .btn-dark:not([disabled]):not(.disabled).active:active, .btn-dark:not([disabled]):not(.disabled).active.active { + color: white; + background-color: #171a21; + border-color: #171a21; } + +.btn-warning:not([disabled]):not(.disabled).active { + background-color: #c8ac1d; + border-color: #c8ac1d; + -webkit-box-shadow: none !important; + box-shadow: none !important; } + .btn-warning:not([disabled]):not(.disabled).active:hover, .btn-warning:not([disabled]):not(.disabled).active:focus, .btn-warning:not([disabled]):not(.disabled).active:active, .btn-warning:not([disabled]):not(.disabled).active.active { + color: white; + background-color: #c8ac1d; + border-color: #c8ac1d; } + +.btn-outline-primary-2x:not([disabled]):not(.disabled).active { + background-color: #24695c; + border-color: #24695c; + -webkit-box-shadow: none !important; + box-shadow: none !important; + color: white; } + .btn-outline-primary-2x:not([disabled]):not(.disabled).active:hover, .btn-outline-primary-2x:not([disabled]):not(.disabled).active:focus, .btn-outline-primary-2x:not([disabled]):not(.disabled).active:active, .btn-outline-primary-2x:not([disabled]):not(.disabled).active.active { + color: white; + -webkit-box-shadow: none !important; + box-shadow: none !important; + background-color: #17433b !important; + border-color: #17433b !important; } + +.btn-outline-secondary-2x:not([disabled]):not(.disabled).active { + background-color: #ba895d; + border-color: #ba895d; + -webkit-box-shadow: none !important; + box-shadow: none !important; + color: white; } + .btn-outline-secondary-2x:not([disabled]):not(.disabled).active:hover, .btn-outline-secondary-2x:not([disabled]):not(.disabled).active:focus, .btn-outline-secondary-2x:not([disabled]):not(.disabled).active:active, .btn-outline-secondary-2x:not([disabled]):not(.disabled).active.active { + color: white; + -webkit-box-shadow: none !important; + box-shadow: none !important; + background-color: #a07044 !important; + border-color: #a07044 !important; } + +.btn-outline-success-2x:not([disabled]):not(.disabled).active { + background-color: #1b4c43; + border-color: #1b4c43; + -webkit-box-shadow: none !important; + box-shadow: none !important; + color: white; } + .btn-outline-success-2x:not([disabled]):not(.disabled).active:hover, .btn-outline-success-2x:not([disabled]):not(.disabled).active:focus, .btn-outline-success-2x:not([disabled]):not(.disabled).active:active, .btn-outline-success-2x:not([disabled]):not(.disabled).active.active { + color: white; + -webkit-box-shadow: none !important; + box-shadow: none !important; + background-color: #0e2622 !important; + border-color: #0e2622 !important; } + +.btn-outline-danger-2x:not([disabled]):not(.disabled).active { + background-color: #d22d3d; + border-color: #d22d3d; + -webkit-box-shadow: none !important; + box-shadow: none !important; + color: white; } + .btn-outline-danger-2x:not([disabled]):not(.disabled).active:hover, .btn-outline-danger-2x:not([disabled]):not(.disabled).active:focus, .btn-outline-danger-2x:not([disabled]):not(.disabled).active:active, .btn-outline-danger-2x:not([disabled]):not(.disabled).active.active { + color: white; + -webkit-box-shadow: none !important; + box-shadow: none !important; + background-color: #a82431 !important; + border-color: #a82431 !important; } + +.btn-outline-info-2x:not([disabled]):not(.disabled).active { + background-color: #717171; + border-color: #717171; + -webkit-box-shadow: none !important; + box-shadow: none !important; + color: white; } + .btn-outline-info-2x:not([disabled]):not(.disabled).active:hover, .btn-outline-info-2x:not([disabled]):not(.disabled).active:focus, .btn-outline-info-2x:not([disabled]):not(.disabled).active:active, .btn-outline-info-2x:not([disabled]):not(.disabled).active.active { + color: white; + -webkit-box-shadow: none !important; + box-shadow: none !important; + background-color: #585858 !important; + border-color: #585858 !important; } + +.btn-outline-light-2x:not([disabled]):not(.disabled).active { + background-color: #e6edef; + border-color: #e6edef; + -webkit-box-shadow: none !important; + box-shadow: none !important; + color: white; } + .btn-outline-light-2x:not([disabled]):not(.disabled).active:hover, .btn-outline-light-2x:not([disabled]):not(.disabled).active:focus, .btn-outline-light-2x:not([disabled]):not(.disabled).active:active, .btn-outline-light-2x:not([disabled]):not(.disabled).active.active { + color: white; + -webkit-box-shadow: none !important; + box-shadow: none !important; + background-color: #c7d7db !important; + border-color: #c7d7db !important; } + +.btn-outline-dark-2x:not([disabled]):not(.disabled).active { + background-color: #2c323f; + border-color: #2c323f; + -webkit-box-shadow: none !important; + box-shadow: none !important; + color: white; } + .btn-outline-dark-2x:not([disabled]):not(.disabled).active:hover, .btn-outline-dark-2x:not([disabled]):not(.disabled).active:focus, .btn-outline-dark-2x:not([disabled]):not(.disabled).active:active, .btn-outline-dark-2x:not([disabled]):not(.disabled).active.active { + color: white; + -webkit-box-shadow: none !important; + box-shadow: none !important; + background-color: #171a21 !important; + border-color: #171a21 !important; } + +.btn-outline-warning-2x:not([disabled]):not(.disabled).active { + background-color: #e2c636; + border-color: #e2c636; + -webkit-box-shadow: none !important; + box-shadow: none !important; + color: white; } + .btn-outline-warning-2x:not([disabled]):not(.disabled).active:hover, .btn-outline-warning-2x:not([disabled]):not(.disabled).active:focus, .btn-outline-warning-2x:not([disabled]):not(.disabled).active:active, .btn-outline-warning-2x:not([disabled]):not(.disabled).active.active { + color: white; + -webkit-box-shadow: none !important; + box-shadow: none !important; + background-color: #c8ac1d !important; + border-color: #c8ac1d !important; } + +/*======= Table-Border-Bottom-color css starts ======= */ +table thead .border-bottom-primary th, +table tbody .border-bottom-primary th, +table tbody .border-bottom-primary td { + border-bottom: 1px solid #24695c; } + +table thead .border-bottom-secondary th, +table tbody .border-bottom-secondary th, +table tbody .border-bottom-secondary td { + border-bottom: 1px solid #ba895d; } + +table thead .border-bottom-success th, +table tbody .border-bottom-success th, +table tbody .border-bottom-success td { + border-bottom: 1px solid #1b4c43; } + +table thead .border-bottom-danger th, +table tbody .border-bottom-danger th, +table tbody .border-bottom-danger td { + border-bottom: 1px solid #d22d3d; } + +table thead .border-bottom-info th, +table tbody .border-bottom-info th, +table tbody .border-bottom-info td { + border-bottom: 1px solid #717171; } + +table thead .border-bottom-light th, +table tbody .border-bottom-light th, +table tbody .border-bottom-light td { + border-bottom: 1px solid #e6edef; } + +table thead .border-bottom-dark th, +table tbody .border-bottom-dark th, +table tbody .border-bottom-dark td { + border-bottom: 1px solid #2c323f; } + +table thead .border-bottom-warning th, +table tbody .border-bottom-warning th, +table tbody .border-bottom-warning td { + border-bottom: 1px solid #e2c636; } + +/*======= Table-Border-Bottom-color css ends ======= */ +/*======= Table styling css starts ======= */ +.table-styling .table-primary, +.table-styling.table-primary { + background-color: #24695c; + color: #fff !important; + border: 3px solid #24695c; } + .table-styling .table-primary thead, + .table-styling.table-primary thead { + background-color: #17433b; + border: 3px solid #17433b; } + .table-styling .table-primary tr th, .table-styling .table-primary tr td, + .table-styling.table-primary tr th, + .table-styling.table-primary tr td { + color: #fff; } + .table-styling .table-primary th, + .table-styling .table-primary td, + .table-styling.table-primary th, + .table-styling.table-primary td { + background-color: transparent; } + +.table-styling .table-secondary, +.table-styling.table-secondary { + background-color: #ba895d; + color: #fff !important; + border: 3px solid #ba895d; } + .table-styling .table-secondary thead, + .table-styling.table-secondary thead { + background-color: #a07044; + border: 3px solid #a07044; } + .table-styling .table-secondary tr th, .table-styling .table-secondary tr td, + .table-styling.table-secondary tr th, + .table-styling.table-secondary tr td { + color: #fff; } + .table-styling .table-secondary th, + .table-styling .table-secondary td, + .table-styling.table-secondary th, + .table-styling.table-secondary td { + background-color: transparent; } + +.table-styling .table-success, +.table-styling.table-success { + background-color: #1b4c43; + color: #fff !important; + border: 3px solid #1b4c43; } + .table-styling .table-success thead, + .table-styling.table-success thead { + background-color: #0e2622; + border: 3px solid #0e2622; } + .table-styling .table-success tr th, .table-styling .table-success tr td, + .table-styling.table-success tr th, + .table-styling.table-success tr td { + color: #fff; } + .table-styling .table-success th, + .table-styling .table-success td, + .table-styling.table-success th, + .table-styling.table-success td { + background-color: transparent; } + +.table-styling .table-danger, +.table-styling.table-danger { + background-color: #d22d3d; + color: #fff !important; + border: 3px solid #d22d3d; } + .table-styling .table-danger thead, + .table-styling.table-danger thead { + background-color: #a82431; + border: 3px solid #a82431; } + .table-styling .table-danger tr th, .table-styling .table-danger tr td, + .table-styling.table-danger tr th, + .table-styling.table-danger tr td { + color: #fff; } + .table-styling .table-danger th, + .table-styling .table-danger td, + .table-styling.table-danger th, + .table-styling.table-danger td { + background-color: transparent; } + +.table-styling .table-info, +.table-styling.table-info { + background-color: #717171; + color: #fff !important; + border: 3px solid #717171; } + .table-styling .table-info thead, + .table-styling.table-info thead { + background-color: #585858; + border: 3px solid #585858; } + .table-styling .table-info tr th, .table-styling .table-info tr td, + .table-styling.table-info tr th, + .table-styling.table-info tr td { + color: #fff; } + .table-styling .table-info th, + .table-styling .table-info td, + .table-styling.table-info th, + .table-styling.table-info td { + background-color: transparent; } + +.table-styling .table-light, +.table-styling.table-light { + background-color: #e6edef; + color: #fff !important; + border: 3px solid #e6edef; } + .table-styling .table-light thead, + .table-styling.table-light thead { + background-color: #c7d7db; + border: 3px solid #c7d7db; } + .table-styling .table-light tr th, .table-styling .table-light tr td, + .table-styling.table-light tr th, + .table-styling.table-light tr td { + color: #fff; } + .table-styling .table-light th, + .table-styling .table-light td, + .table-styling.table-light th, + .table-styling.table-light td { + background-color: transparent; } + +.table-styling .table-dark, +.table-styling.table-dark { + background-color: #2c323f; + color: #fff !important; + border: 3px solid #2c323f; } + .table-styling .table-dark thead, + .table-styling.table-dark thead { + background-color: #171a21; + border: 3px solid #171a21; } + .table-styling .table-dark tr th, .table-styling .table-dark tr td, + .table-styling.table-dark tr th, + .table-styling.table-dark tr td { + color: #fff; } + .table-styling .table-dark th, + .table-styling .table-dark td, + .table-styling.table-dark th, + .table-styling.table-dark td { + background-color: transparent; } + +.table-styling .table-warning, +.table-styling.table-warning { + background-color: #e2c636; + color: #fff !important; + border: 3px solid #e2c636; } + .table-styling .table-warning thead, + .table-styling.table-warning thead { + background-color: #c8ac1d; + border: 3px solid #c8ac1d; } + .table-styling .table-warning tr th, .table-styling .table-warning tr td, + .table-styling.table-warning tr th, + .table-styling.table-warning tr td { + color: #fff; } + .table-styling .table-warning th, + .table-styling .table-warning td, + .table-styling.table-warning th, + .table-styling.table-warning td { + background-color: transparent; } + +/*======= Table styling css ends ======= */ +/*======= All-Borders-color css starts ======= */ +.b-primary { + border: 1px solid #24695c !important; } + +.b-t-primary { + border-top: 1px solid #24695c !important; } + +.b-b-primary { + border-bottom: 1px solid #24695c !important; } + +.b-l-primary { + border-left: 1px solid #24695c !important; } + +.b-r-primary { + border-right: 1px solid #24695c !important; } + +.b-secondary { + border: 1px solid #ba895d !important; } + +.b-t-secondary { + border-top: 1px solid #ba895d !important; } + +.b-b-secondary { + border-bottom: 1px solid #ba895d !important; } + +.b-l-secondary { + border-left: 1px solid #ba895d !important; } + +.b-r-secondary { + border-right: 1px solid #ba895d !important; } + +.b-success { + border: 1px solid #1b4c43 !important; } + +.b-t-success { + border-top: 1px solid #1b4c43 !important; } + +.b-b-success { + border-bottom: 1px solid #1b4c43 !important; } + +.b-l-success { + border-left: 1px solid #1b4c43 !important; } + +.b-r-success { + border-right: 1px solid #1b4c43 !important; } + +.b-danger { + border: 1px solid #d22d3d !important; } + +.b-t-danger { + border-top: 1px solid #d22d3d !important; } + +.b-b-danger { + border-bottom: 1px solid #d22d3d !important; } + +.b-l-danger { + border-left: 1px solid #d22d3d !important; } + +.b-r-danger { + border-right: 1px solid #d22d3d !important; } + +.b-info { + border: 1px solid #717171 !important; } + +.b-t-info { + border-top: 1px solid #717171 !important; } + +.b-b-info { + border-bottom: 1px solid #717171 !important; } + +.b-l-info { + border-left: 1px solid #717171 !important; } + +.b-r-info { + border-right: 1px solid #717171 !important; } + +.b-light { + border: 1px solid #e6edef !important; } + +.b-t-light { + border-top: 1px solid #e6edef !important; } + +.b-b-light { + border-bottom: 1px solid #e6edef !important; } + +.b-l-light { + border-left: 1px solid #e6edef !important; } + +.b-r-light { + border-right: 1px solid #e6edef !important; } + +.b-dark { + border: 1px solid #2c323f !important; } + +.b-t-dark { + border-top: 1px solid #2c323f !important; } + +.b-b-dark { + border-bottom: 1px solid #2c323f !important; } + +.b-l-dark { + border-left: 1px solid #2c323f !important; } + +.b-r-dark { + border-right: 1px solid #2c323f !important; } + +.b-warning { + border: 1px solid #e2c636 !important; } + +.b-t-warning { + border-top: 1px solid #e2c636 !important; } + +.b-b-warning { + border-bottom: 1px solid #e2c636 !important; } + +.b-l-warning { + border-left: 1px solid #e2c636 !important; } + +.b-r-warning { + border-right: 1px solid #e2c636 !important; } + +/*======= All-Borders-color css ends ======= */ +/*====== Border width css starts ======*/ +.border-1 { + border-width: 1px !important; } + +.border-2 { + border-width: 2px !important; } + +.border-3 { + border-width: 3px !important; } + +.border-4 { + border-width: 4px !important; } + +.border-5 { + border-width: 5px !important; } + +.border-6 { + border-width: 6px !important; } + +.border-7 { + border-width: 7px !important; } + +.border-8 { + border-width: 8px !important; } + +.border-9 { + border-width: 9px !important; } + +.border-10 { + border-width: 10px !important; } + +/*====== Border width css ends ======*/ +.opacity-0 { + opacity: 0; } + +.shadow-0 { + -webkit-box-shadow: none; + box-shadow: none; } + +.map-block { + height: 350px; + width: 100%; } + +.map-js-height { + height: 500px; } + +/**====== custom scrollbar css start ======**/ +.custom-scrollbar::-webkit-scrollbar-track { + -webkit-box-shadow: inset 0 0 6px #e6edef; } + +.custom-scrollbar::-webkit-scrollbar { + width: 6px; } + +.custom-scrollbar::-webkit-scrollbar-thumb { + background-color: rgba(68, 102, 242, 0.15); } + +/**====== Custom scrollbar css end ======**/ +/**====== Animation css Start ======**/ +.comment { + color: #9f9ba5; + font-style: italic; } + +.line { + color: #2c323f; } + +.line pre { + font-size: 100%; } + +/**====== Animation css end ======**/ +/**====== list style css Start ======**/ +.list-circle { + list-style: circle; } + +/**====== list style css end ======**/ +/**====== Modal style css Start ======**/ +.theme-close { + opacity: 1; + height: 40px; + width: 40px; + position: absolute; + z-index: 1; + right: 0; + background-color: #fff !important; + border-radius: 5px; } + +/**====== Modal style css end ======**/ +/**====== Animation css start ======**/ +.options > div { + color: #cccccc; + display: inline-block; + padding: 2px 10px; + border: 1px solid; + margin: 0 8px 8px 0; + -webkit-transition: all 0.3s ease; + transition: all 0.3s ease; } + .options > div:hover { + background-color: #24695c; + color: #fff; + -webkit-transition: all 0.3s ease; + transition: all 0.3s ease; } + +/**====== Animation css Ends ======**/ +.modal-footer { + -ms-flex-wrap: wrap; + flex-wrap: wrap; } + +.img-cropper #putData { + margin-bottom: 0; } + +.img-cropper .img-container { + min-height: auto; + margin-bottom: 0; } + +.img-cropper .docs-data > .input-group:last-child { + margin-bottom: 0; } + +.img-cropper .docs-preview { + margin-top: 20px; + margin-bottom: 10px; } + +.dropzone .dz-preview .dz-error-message { + background: #fff !important; + color: #24695c !important; + border: 1px solid #24695c; } + .dropzone .dz-preview .dz-error-message:after { + border-bottom: 6px solid #24695c !important; } + +.typeahead .theme-form .form-group { + margin-bottom: 0; } + +.editor-statusbar { + border-bottom: 1px solid #e6edef; } + +.page-builder .ge-canvas.ge-editing .row { + padding: 30px; + margin-bottom: 0; } + +.page-builder .ge-canvas.ge-layout-desktop [class*="col-"] { + width: inherit !important; } + +.page-builder .btn-screen { + padding: 0 18px 0 0; } + +.datepicker { + z-index: 99; } + +/**===================== + 02. Generic CSS Ends +==========================**/ +/**===================== + 03. Card CSS Start +==========================**/ +.card { + margin-bottom: 30px; + border: 1px solid #e6edef; + -webkit-transition: all 0.3s ease; + transition: all 0.3s ease; + letter-spacing: 0.5px; + border-radius: 0; + background-color: #fff; } + .card .card-header { + padding: 30px; + border-bottom: none; + border-top-left-radius: 0; + border-top-right-radius: 0; + position: relative; + background-color: #fff; } + .card .card-header.card-no-border { + border-bottom: none !important; } + .card .card-header h4 { + font-size: 24px; + font-weight: 500; } + .card .card-header h5 { + font-size: 22px; + font-weight: 500; } + .card .card-header h5:not(.mb-0) { + margin-bottom: 0; + text-transform: capitalize; + font-weight: 600; + line-height: 1.3; + color: #2c323f; } + .card .card-header > span { + font-size: 12px; + color: rgba(36, 41, 52, 0.7); + margin-top: 5px; + display: block; + letter-spacing: 1px; } + .card .card-header.bg-primary h4, .card .card-header.bg-secondary h4, .card .card-header.bg-success h4, .card .card-header.bg-danger h4, .card .card-header.bg-warning h4 { + color: #fff; } + .card .card-header.bg-primary h5, .card .card-header.bg-secondary h5, .card .card-header.bg-success h5, .card .card-header.bg-danger h5, .card .card-header.bg-warning h5 { + color: #fff; } + .card .card-header.bg-primary > span, .card .card-header.bg-secondary > span, .card .card-header.bg-success > span, .card .card-header.bg-danger > span, .card .card-header.bg-warning > span { + color: #fff; } + .card .card-body { + padding: 30px; + background-color: transparent; } + .card .card-body p:last-child { + margin-bottom: 0; } + .card .card-body.bg-primary p, .card .card-body.bg-secondary p, .card .card-body.bg-success p, .card .card-body.bg-danger p, .card .card-body.bg-warning p { + color: #fff; } + .card .sub-title { + border-bottom: 1px solid rgba(36, 105, 92, 0.2); + padding-bottom: 5px; + margin-bottom: 8px; + font-size: 18px; } + .card .card-footer { + background-color: transparent; + border-top: 1px solid #e6edef; + padding: 30px; + border-bottom-left-radius: 0; + border-bottom-right-radius: 0; } + .card .card-footer.bg-primary, .card .card-footer.bg-secondary, .card .card-footer.bg-success, .card .card-footer.bg-danger, .card .card-footer.bg-warning { + color: #fff; } + +.setting-list { + border-radius: 0 0 0 7px; + position: absolute; + right: 20px; + top: 22px; + display: inline-block; + float: right; + z-index: 1; + background-color: #fff; } + .setting-list .setting-option { + text-align: right; + width: 35px; + height: 35px; + overflow: hidden; + -webkit-transition: 0.3s ease-in-out; + transition: 0.3s ease-in-out; } + .setting-list .setting-option li { + display: inline-block; } + .setting-list .setting-option li:first-child i.icon-angle-double-right { + font-size: 14px; } + .setting-list .setting-option.open-setting { + width: 190px; } + .setting-list .setting-option.setting-vertical { + text-align: center; + height: 40px; } + .setting-list .setting-option.setting-vertical li { + display: block; + margin: 5px 0; } + .setting-list .setting-option.setting-vertical li:first-child i.icon-angle-double-right { + -webkit-transform: rotate(90deg); + transform: rotate(90deg); } + .setting-list .setting-option.setting-vertical.open-setting { + height: 170px; + width: 35px; } + .setting-list i { + margin: 0 5px; + cursor: pointer; + line-height: 20px; } + .setting-list i.icofont-refresh { + font-size: 13px; } + +.card.card-load .card-loader { + position: absolute; + top: 0; + left: 0; + width: 100%; + height: 100%; + display: -webkit-box; + display: -ms-flexbox; + display: flex; + background-color: rgba(255, 255, 255, 0.7); + z-index: 8; + -webkit-box-align: center; + -ms-flex-align: center; + align-items: center; + -webkit-box-pack: center; + -ms-flex-pack: center; + justify-content: center; } + .card.card-load .card-loader i { + margin: 0 auto; + color: #24695c; + font-size: 20px; } + +.card.full-card { + position: fixed; + top: 0; + z-index: 99999; + -webkit-box-shadow: none; + box-shadow: none; + right: 0; + border-radius: 0; + border: 1px solid #efefef; + width: calc(100vw - 12px); + height: calc(100vh); } + .card.full-card .card-body { + overflow: auto; } + +.card-absolute { + margin-top: 20px; } + .card-absolute .card-header { + position: absolute; + top: -20px; + margin-bottom: 30px; + left: 15px; + border-radius: 0.25rem; + padding: 10px 15px; } + .card-absolute .card-header h5 { + font-size: 17px; } + .card-absolute .card-header h5.text-white { + -webkit-text-fill-color: #fff; } + .card-absolute .card-body { + margin-top: 10px; } + +.card-header .border-tab { + margin-bottom: -13px; } + +.custom-card { + overflow: hidden; + padding: 30px; } + .custom-card .card-header { + padding: 0; } + .custom-card .card-header img { + -webkit-transform: scale(1.5); + transform: scale(1.5); } + .custom-card .card-profile { + text-align: center; } + .custom-card .card-profile img { + height: 110px; + padding: 7px; + background-color: #f5f7fb; + z-index: 1; + position: relative; } + .custom-card .card-social { + text-align: center; + padding-top: 15px; + padding-bottom: 15px; } + .custom-card .card-social li { + display: inline-block; } + .custom-card .card-social li:nth-child(n+2) { + margin-left: 10px; } + .custom-card .card-social li a { + width: 35px; + height: 35px; + border-radius: 5px; + background-color: rgba(36, 105, 92, 0.1); + -webkit-transition: all 0.3s ease; + transition: all 0.3s ease; + color: #24695c; + 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; } + .custom-card .card-social li:hover a { + background-color: #24695c; + color: #fff; } + .custom-card .profile-details h4 { + font-weight: 600; + color: #242934; } + .custom-card .profile-details h6 { + margin-bottom: 30px; + margin-top: 10px; + color: #999; + font-size: 14px; } + .custom-card .card-footer { + padding: 0; } + .custom-card .card-footer > div { + padding: 15px; + text-align: center; } + .custom-card .card-footer > div + div { + border-left: 1px solid #efefef; } + .custom-card .card-footer > div h3 { + margin-bottom: 0; + font-size: 20px; + font-weight: 600; } + .custom-card .card-footer > div h6 { + font-size: 13px; + color: #999; } + .custom-card .card-footer > div i { + font-size: 24px; + display: inline-block; + margin-bottom: 15px; } + .custom-card .card-footer > div .m-b-card { + margin-bottom: 10px; } + +/**===================== + 03. Card CSS End +==========================**/ +/**===================== + 04. Loader CSS Start +==========================**/ +.loader-wrapper { + position: fixed; + z-index: 999999; + background: #fff; + width: 100%; + height: 100%; + top: 0; + left: 0; } + .loader-wrapper .theme-loader { + height: 100px; + width: 100px; + position: relative; } + .loader-wrapper .theme-loader .loader-p { + border: 0 solid transparent; + border-radius: 50%; + width: 150px; + height: 150px; + position: absolute; + top: calc(50vh - 75px); + left: calc(50vw - 75px); } + .loader-wrapper .theme-loader .loader-p:before { + content: ''; + border: 1em solid #24695c; + border-radius: 50%; + width: inherit; + height: inherit; + position: absolute; + top: 0; + left: 0; + -webkit-animation: loader 2s linear infinite; + animation: loader 2s linear infinite; + opacity: 0; + -webkit-animation-delay: 0.5s; + animation-delay: 0.5s; } + .loader-wrapper .theme-loader .loader-p:after { + content: ''; + border: 1em solid #24695c; + border-radius: 50%; + width: inherit; + height: inherit; + position: absolute; + top: 0; + left: 0; + -webkit-animation: loader 2s linear infinite; + animation: loader 2s linear infinite; + opacity: 0; } + +@-webkit-keyframes loader { + 0% { + -webkit-transform: scale(0); + transform: scale(0); + opacity: 0; } + 50% { + opacity: 1; } + 100% { + -webkit-transform: scale(1); + transform: scale(1); + opacity: 0; } } + +@keyframes loader { + 0% { + -webkit-transform: scale(0); + transform: scale(0); + opacity: 0; } + 50% { + opacity: 1; } + 100% { + -webkit-transform: scale(1); + transform: scale(1); + opacity: 0; } } + +.loader-box { + height: 150px; + text-align: center; + display: -webkit-box; + display: -ms-flexbox; + display: flex; + -webkit-box-align: center; + -ms-flex-align: center; + align-items: center; + vertical-align: middle; + -webkit-box-pack: center; + -ms-flex-pack: center; + justify-content: center; + -webkit-transition: .3s color, .3s border, .3s transform, .3s opacity; + transition: .3s color, .3s border, .3s transform, .3s opacity; } + .loader-box [class*="loader-"] { + display: inline-block; + width: 50px; + height: 50px; + color: inherit; + vertical-align: middle; } + .loader-box .loader-1 { + border: 0.2em dotted #24695c; + border-radius: 50%; + -webkit-animation: 1s loader-01 linear infinite; + animation: 1s loader-01 linear infinite; } + +@-webkit-keyframes loader-01 { + 0% { + -webkit-transform: rotate(0deg); + transform: rotate(0deg); } + 100% { + -webkit-transform: rotate(360deg); + transform: rotate(360deg); } } + +@keyframes loader-01 { + 0% { + -webkit-transform: rotate(0deg); + transform: rotate(0deg); } + 100% { + -webkit-transform: rotate(360deg); + transform: rotate(360deg); } } + .loader-box .loader-2 { + border: .2em solid transparent; + border-left-color: #ba895d; + border-right-color: #ba895d; + border-radius: 50%; + -webkit-animation: 1s loader-02 linear infinite; + animation: 1s loader-02 linear infinite; } + +@-webkit-keyframes loader-02 { + 0% { + -webkit-transform: rotate(0deg); + transform: rotate(0deg); } + 100% { + -webkit-transform: rotate(360deg); + transform: rotate(360deg); } } + +@keyframes loader-02 { + 0% { + -webkit-transform: rotate(0deg); + transform: rotate(0deg); } + 100% { + -webkit-transform: rotate(360deg); + transform: rotate(360deg); } } + .loader-box .loader-3 { + border: 0.2em solid #1b4c43; + border-bottom-color: transparent; + border-radius: 50%; + -webkit-animation: 1s loader-03 linear infinite; + animation: 1s loader-03 linear infinite; + position: relative; } + +@-webkit-keyframes loader-03 { + 0% { + -webkit-transform: rotate(0deg); + transform: rotate(0deg); } + 100% { + -webkit-transform: rotate(360deg); + transform: rotate(360deg); } } + +@keyframes loader-03 { + 0% { + -webkit-transform: rotate(0deg); + transform: rotate(0deg); } + 100% { + -webkit-transform: rotate(360deg); + transform: rotate(360deg); } } + .loader-box .loader-4 { + border: 1px solid #717171; + border-radius: 50%; + -webkit-animation: 1s loader-04 linear infinite; + animation: 1s loader-04 linear infinite; + position: relative; } + .loader-box .loader-4:before { + content: ''; + display: block; + width: 0; + height: 0; + position: absolute; + top: -.2em; + left: 50%; + border: 0.2em solid #717171; + border-radius: 50%; } + +@-webkit-keyframes loader-04 { + 0% { + -webkit-transform: rotate(0deg); + transform: rotate(0deg); } + 100% { + -webkit-transform: rotate(360deg); + transform: rotate(360deg); } } + +@keyframes loader-04 { + 0% { + -webkit-transform: rotate(0deg); + transform: rotate(0deg); } + 100% { + -webkit-transform: rotate(360deg); + transform: rotate(360deg); } } + .loader-box .loader-5 { + border: .2em solid transparent; + border-top-color: #e2c636; + border-radius: 50%; + -webkit-animation: 1s loader-05 linear infinite; + animation: 1s loader-05 linear infinite; + position: relative; } + .loader-box .loader-5:before { + content: ''; + display: block; + width: inherit; + height: inherit; + position: absolute; + top: -.2em; + left: -.2em; + border: 0.2em solid #e2c636; + border-radius: 50%; + opacity: .5; } + +@-webkit-keyframes loader-05 { + 0% { + -webkit-transform: rotate(0deg); + transform: rotate(0deg); } + 100% { + -webkit-transform: rotate(360deg); + transform: rotate(360deg); } } + +@keyframes loader-05 { + 0% { + -webkit-transform: rotate(0deg); + transform: rotate(0deg); } + 100% { + -webkit-transform: rotate(360deg); + transform: rotate(360deg); } } + .loader-box .loader-6 { + border: 0.2em solid #d22d3d; + border-radius: 50%; + -webkit-animation: loader-06 1s ease-out infinite; + animation: loader-06 1s ease-out infinite; } + +@-webkit-keyframes loader-06 { + 0% { + -webkit-transform: scale(0); + transform: scale(0); + opacity: 0; } + 50% { + opacity: 1; } + 100% { + -webkit-transform: scale(1); + transform: scale(1); + opacity: 0; } } + +@keyframes loader-06 { + 0% { + -webkit-transform: scale(0); + transform: scale(0); + opacity: 0; } + 50% { + opacity: 1; } + 100% { + -webkit-transform: scale(1); + transform: scale(1); + opacity: 0; } } + .loader-box .loader-7 { + border: 0 solid transparent; + border-radius: 50%; + position: relative; } + .loader-box .loader-7:before, .loader-box .loader-7:after { + content: ''; + border: 0.2em solid #24695c; + border-radius: 50%; + width: inherit; + height: inherit; + position: absolute; + top: 0; + left: 0; + -webkit-animation: loader-07 1s linear infinite; + animation: loader-07 1s linear infinite; + opacity: 0; } + .loader-box .loader-7:before { + -webkit-animation-delay: 1s; + animation-delay: 1s; } + .loader-box .loader-7:after { + -webkit-animation-delay: .5s; + animation-delay: .5s; } + +@-webkit-keyframes loader-07 { + 0% { + -webkit-transform: scale(0); + transform: scale(0); + opacity: 0; } + 50% { + opacity: 1; } + 100% { + -webkit-transform: scale(1); + transform: scale(1); + opacity: 0; } } + +@keyframes loader-07 { + 0% { + -webkit-transform: scale(0); + transform: scale(0); + opacity: 0; } + 50% { + opacity: 1; } + 100% { + -webkit-transform: scale(1); + transform: scale(1); + opacity: 0; } } + .loader-box .loader-8 { + position: relative; } + .loader-box .loader-8:before, .loader-box .loader-8:after { + content: ''; + width: inherit; + height: inherit; + border-radius: 50%; + background-color: #ba895d; + opacity: 0.6; + position: absolute; + top: 0; + left: 0; + -webkit-animation: loader-08 2.0s infinite ease-in-out; + animation: loader-08 2.0s infinite ease-in-out; } + .loader-box .loader-8:after { + -webkit-animation-delay: -1.0s; + animation-delay: -1.0s; } + +@-webkit-keyframes loader-08 { + 0%, + 100% { + -webkit-transform: scale(0); + transform: scale(0); } + 50% { + -webkit-transform: scale(1); + transform: scale(1); } } + +@keyframes loader-08 { + 0%, + 100% { + -webkit-transform: scale(0); + transform: scale(0); } + 50% { + -webkit-transform: scale(1); + transform: scale(1); } } + .loader-box .loader-9 { + background-color: #1b4c43; + border-radius: 50%; + -webkit-animation: loader-09 1.0s infinite ease-in-out; + animation: loader-09 1.0s infinite ease-in-out; } + +@-webkit-keyframes loader-09 { + 0% { + -webkit-transform: scale(0); + transform: scale(0); } + 100% { + -webkit-transform: scale(1); + transform: scale(1); + opacity: 0; } } + +@keyframes loader-09 { + 0% { + -webkit-transform: scale(0); + transform: scale(0); } + 100% { + -webkit-transform: scale(1); + transform: scale(1); + opacity: 0; } } + .loader-box .loader-10 { + position: relative; + -webkit-animation: loader-10-1 2.0s infinite linear; + animation: loader-10-1 2.0s infinite linear; } + .loader-box .loader-10:before, .loader-box .loader-10:after { + content: ''; + width: 0; + height: 0; + border: 0.5em solid #717171; + display: block; + position: absolute; + border-radius: 100%; + -webkit-animation: loader-10-2 2s infinite ease-in-out; + animation: loader-10-2 2s infinite ease-in-out; } + .loader-box .loader-10:before { + top: 0; + left: 50%; } + .loader-box .loader-10:after { + bottom: 0; + right: 50%; + -webkit-animation-delay: -1s; + animation-delay: -1s; } + +@-webkit-keyframes loader-10-1 { + 100% { + -webkit-transform: rotate(360deg); + transform: rotate(360deg); } } + +@keyframes loader-10-1 { + 100% { + -webkit-transform: rotate(360deg); + transform: rotate(360deg); } } + +@-webkit-keyframes loader-10-2 { + 0%, + 100% { + -webkit-transform: scale(0); + transform: scale(0); } + 50% { + -webkit-transform: scale(1); + transform: scale(1); } } + +@keyframes loader-10-2 { + 0%, + 100% { + -webkit-transform: scale(0); + transform: scale(0); } + 50% { + -webkit-transform: scale(1); + transform: scale(1); } } + .loader-box .loader-11 { + background-color: #e2c636; + -webkit-animation: loader-11 1.2s infinite ease-in-out; + animation: loader-11 1.2s infinite ease-in-out; } + +@-webkit-keyframes loader-11 { + 0% { + -webkit-transform: perspective(120px) rotateX(0deg) rotateY(0deg); + transform: perspective(120px) rotateX(0deg) rotateY(0deg); } + 50% { + -webkit-transform: perspective(120px) rotateX(-180.1deg) rotateY(0deg); + transform: perspective(120px) rotateX(-180.1deg) rotateY(0deg); } + 100% { + -webkit-transform: perspective(120px) rotateX(-180deg) rotateY(-179.9deg); + transform: perspective(120px) rotateX(-180deg) rotateY(-179.9deg); } } + +@keyframes loader-11 { + 0% { + -webkit-transform: perspective(120px) rotateX(0deg) rotateY(0deg); + transform: perspective(120px) rotateX(0deg) rotateY(0deg); } + 50% { + -webkit-transform: perspective(120px) rotateX(-180.1deg) rotateY(0deg); + transform: perspective(120px) rotateX(-180.1deg) rotateY(0deg); } + 100% { + -webkit-transform: perspective(120px) rotateX(-180deg) rotateY(-179.9deg); + transform: perspective(120px) rotateX(-180deg) rotateY(-179.9deg); } } + .loader-box .loader-12 { + position: relative; } + .loader-box .loader-12:before, .loader-box .loader-12:after { + content: ''; + display: block; + position: absolute; + background-color: #d22d3d; + left: 50%; + right: 0; + top: 0; + bottom: 50%; + -webkit-box-shadow: -0.5em 0 0 #d22d3d; + box-shadow: -0.5em 0 0 #d22d3d; + -webkit-animation: loader-12 1s linear infinite; + animation: loader-12 1s linear infinite; } + .loader-box .loader-12:after { + top: 50%; + bottom: 0; + -webkit-animation-delay: .25s; + animation-delay: .25s; } + +@-webkit-keyframes loader-12 { + 0%, + 100% { + -webkit-box-shadow: -.5em 0 0 transparent; + box-shadow: -.5em 0 0 transparent; + background-color: #d22d3d; } + 50% { + -webkit-box-shadow: -0.5em 0 0 #d22d3d; + box-shadow: -0.5em 0 0 #d22d3d; + background-color: transparent; } } + +@keyframes loader-12 { + 0%, + 100% { + -webkit-box-shadow: -.5em 0 0 transparent; + box-shadow: -.5em 0 0 transparent; + background-color: #d22d3d; } + 50% { + -webkit-box-shadow: -0.5em 0 0 #d22d3d; + box-shadow: -0.5em 0 0 #d22d3d; + background-color: transparent; } } + .loader-box .loader-13:before, + .loader-box .loader-13:after, + .loader-box .loader-13 { + border-radius: 50%; + -webkit-animation-fill-mode: both; + animation-fill-mode: both; + -webkit-animation: loader-13 1.8s infinite ease-in-out; + animation: loader-13 1.8s infinite ease-in-out; } + .loader-box .loader-13 { + color: #24695c; + position: relative; + -webkit-transform: translateZ(0); + transform: translateZ(0); + -webkit-animation-delay: -0.16s; + animation-delay: -0.16s; + top: -1em; } + .loader-box .loader-13:before { + right: 100%; + -webkit-animation-delay: -0.32s; + animation-delay: -0.32s; } + .loader-box .loader-13:after { + left: 100%; } + .loader-box .loader-13:before, .loader-box .loader-13:after { + content: ''; + display: block; + position: absolute; + top: 0; + width: inherit; + height: inherit; } + +@-webkit-keyframes loader-13 { + 0%, + 80%, + 100% { + -webkit-box-shadow: 0 1em 0 -1em; + box-shadow: 0 1em 0 -1em; } + 40% { + -webkit-box-shadow: 0 1em 0 -.2em; + box-shadow: 0 1em 0 -.2em; } } + +@keyframes loader-13 { + 0%, + 80%, + 100% { + -webkit-box-shadow: 0 1em 0 -1em; + box-shadow: 0 1em 0 -1em; } + 40% { + -webkit-box-shadow: 0 1em 0 -.2em; + box-shadow: 0 1em 0 -.2em; } } + .loader-box .loader-14 { + border-radius: 50%; + -webkit-box-shadow: 0 1em 0 -0.2em #ba895d; + box-shadow: 0 1em 0 -0.2em #ba895d; + position: relative; + -webkit-animation: loader-14 0.8s ease-in-out alternate infinite; + animation: loader-14 0.8s ease-in-out alternate infinite; + -webkit-animation-delay: 0.32s; + animation-delay: 0.32s; + top: -1em; } + .loader-box .loader-14:after, .loader-box .loader-14:before { + content: ''; + position: absolute; + width: inherit; + height: inherit; + border-radius: inherit; + -webkit-box-shadow: inherit; + box-shadow: inherit; + -webkit-animation: inherit; + animation: inherit; } + .loader-box .loader-14:before { + left: -1em; + -webkit-animation-delay: 0.48s; + animation-delay: 0.48s; } + .loader-box .loader-14:after { + right: -1em; + -webkit-animation-delay: 0.16s; + animation-delay: 0.16s; } + +@-webkit-keyframes loader-14 { + 0% { + -webkit-box-shadow: 0 2em 0 -0.2em #ba895d; + box-shadow: 0 2em 0 -0.2em #ba895d; } + 100% { + -webkit-box-shadow: 0 1em 0 -0.2em #ba895d; + box-shadow: 0 1em 0 -0.2em #ba895d; } } + +@keyframes loader-14 { + 0% { + -webkit-box-shadow: 0 2em 0 -0.2em #ba895d; + box-shadow: 0 2em 0 -0.2em #ba895d; } + 100% { + -webkit-box-shadow: 0 1em 0 -0.2em #ba895d; + box-shadow: 0 1em 0 -0.2em #ba895d; } } + .loader-box .loader-15 { + background: #1b4c43; + position: relative; + -webkit-animation: loader-15 1s ease-in-out infinite; + animation: loader-15 1s ease-in-out infinite; + -webkit-animation-delay: 0.4s; + animation-delay: 0.4s; + width: .25em; + height: .5em; + margin: 0 .5em; } + .loader-box .loader-15:after, .loader-box .loader-15:before { + content: ''; + position: absolute; + width: inherit; + height: inherit; + background: inherit; + -webkit-animation: inherit; + animation: inherit; } + .loader-box .loader-15:before { + right: .5em; + -webkit-animation-delay: 0.2s; + animation-delay: 0.2s; } + .loader-box .loader-15:after { + left: .5em; + -webkit-animation-delay: 0.6s; + animation-delay: 0.6s; } + +@-webkit-keyframes loader-15 { + 0%, + 100% { + -webkit-box-shadow: 0 0 0 #1b4c43, 0 0 0 #1b4c43; + box-shadow: 0 0 0 #1b4c43, 0 0 0 #1b4c43; } + 50% { + -webkit-box-shadow: 0 -0.25em 0 #1b4c43, 0 0.25em 0 #1b4c43; + box-shadow: 0 -0.25em 0 #1b4c43, 0 0.25em 0 #1b4c43; } } + +@keyframes loader-15 { + 0%, + 100% { + -webkit-box-shadow: 0 0 0 #1b4c43, 0 0 0 #1b4c43; + box-shadow: 0 0 0 #1b4c43, 0 0 0 #1b4c43; } + 50% { + -webkit-box-shadow: 0 -0.25em 0 #1b4c43, 0 0.25em 0 #1b4c43; + box-shadow: 0 -0.25em 0 #1b4c43, 0 0.25em 0 #1b4c43; } } + .loader-box .loader-16 { + -webkit-transform: rotateZ(45deg); + transform: rotateZ(45deg); + -webkit-perspective: 1000px; + perspective: 1000px; + border-radius: 50%; } + .loader-box .loader-16:before, .loader-box .loader-16:after { + content: ''; + display: block; + position: absolute; + top: 0; + left: 0; + width: inherit; + height: inherit; + border-radius: 50%; + -webkit-animation: 1s spin linear infinite; + animation: 1s spin linear infinite; } + .loader-box .loader-16:before { + -webkit-transform: rotateX(70deg); + transform: rotateX(70deg); } + .loader-box .loader-16:after { + -webkit-transform: rotateY(70deg); + transform: rotateY(70deg); + -webkit-animation-delay: .4s; + animation-delay: .4s; } + +@-webkit-keyframes rotate { + 0% { + -webkit-transform: translate(-50%, -50%) rotateZ(0deg); + transform: translate(-50%, -50%) rotateZ(0deg); } + 100% { + -webkit-transform: translate(-50%, -50%) rotateZ(360deg); + transform: translate(-50%, -50%) rotateZ(360deg); } } + +@keyframes rotate { + 0% { + -webkit-transform: translate(-50%, -50%) rotateZ(0deg); + transform: translate(-50%, -50%) rotateZ(0deg); } + 100% { + -webkit-transform: translate(-50%, -50%) rotateZ(360deg); + transform: translate(-50%, -50%) rotateZ(360deg); } } + +@-webkit-keyframes rotateccw { + 0% { + -webkit-transform: translate(-50%, -50%) rotate(0deg); + transform: translate(-50%, -50%) rotate(0deg); } + 100% { + -webkit-transform: translate(-50%, -50%) rotate(-360deg); + transform: translate(-50%, -50%) rotate(-360deg); } } + +@keyframes rotateccw { + 0% { + -webkit-transform: translate(-50%, -50%) rotate(0deg); + transform: translate(-50%, -50%) rotate(0deg); } + 100% { + -webkit-transform: translate(-50%, -50%) rotate(-360deg); + transform: translate(-50%, -50%) rotate(-360deg); } } + +@-webkit-keyframes spin { + 0%, + 100% { + -webkit-box-shadow: 0.2em 0px 0 0px #717171; + box-shadow: 0.2em 0px 0 0px #717171; } + 12% { + -webkit-box-shadow: 0.2em 0.2em 0 0 #717171; + box-shadow: 0.2em 0.2em 0 0 #717171; } + 25% { + -webkit-box-shadow: 0 0.2em 0 0px #717171; + box-shadow: 0 0.2em 0 0px #717171; } + 37% { + -webkit-box-shadow: -0.2em 0.2em 0 0 #717171; + box-shadow: -0.2em 0.2em 0 0 #717171; } + 50% { + -webkit-box-shadow: -0.2em 0 0 0 #717171; + box-shadow: -0.2em 0 0 0 #717171; } + 62% { + -webkit-box-shadow: -0.2em -0.2em 0 0 #717171; + box-shadow: -0.2em -0.2em 0 0 #717171; } + 75% { + -webkit-box-shadow: 0px -0.2em 0 0 #717171; + box-shadow: 0px -0.2em 0 0 #717171; } + 87% { + -webkit-box-shadow: 0.2em -0.2em 0 0 #717171; + box-shadow: 0.2em -0.2em 0 0 #717171; } } + +@keyframes spin { + 0%, + 100% { + -webkit-box-shadow: 0.2em 0px 0 0px #717171; + box-shadow: 0.2em 0px 0 0px #717171; } + 12% { + -webkit-box-shadow: 0.2em 0.2em 0 0 #717171; + box-shadow: 0.2em 0.2em 0 0 #717171; } + 25% { + -webkit-box-shadow: 0 0.2em 0 0px #717171; + box-shadow: 0 0.2em 0 0px #717171; } + 37% { + -webkit-box-shadow: -0.2em 0.2em 0 0 #717171; + box-shadow: -0.2em 0.2em 0 0 #717171; } + 50% { + -webkit-box-shadow: -0.2em 0 0 0 #717171; + box-shadow: -0.2em 0 0 0 #717171; } + 62% { + -webkit-box-shadow: -0.2em -0.2em 0 0 #717171; + box-shadow: -0.2em -0.2em 0 0 #717171; } + 75% { + -webkit-box-shadow: 0px -0.2em 0 0 #717171; + box-shadow: 0px -0.2em 0 0 #717171; } + 87% { + -webkit-box-shadow: 0.2em -0.2em 0 0 #717171; + box-shadow: 0.2em -0.2em 0 0 #717171; } } + .loader-box .loader-17 { + position: relative; + background-color: #e2c636; + border-radius: 50%; } + .loader-box .loader-17:after, .loader-box .loader-17:before { + content: ""; + position: absolute; + width: 10px; + height: 10px; + border-radius: 50%; + opacity: .8; } + .loader-box .loader-17:after { + left: -.5em; + top: -.25em; + background-color: #e2c636; + -webkit-transform-origin: 30px 35px; + transform-origin: 30px 35px; + -webkit-animation: loader-17 1s linear infinite; + animation: loader-17 1s linear infinite; + opacity: .6; } + .loader-box .loader-17:before { + left: -1.25em; + top: -.75em; + background-color: #e2c636; + -webkit-transform-origin: 40px 40px; + transform-origin: 40px 40px; + -webkit-animation: loader-17 2s linear infinite; + animation: loader-17 2s linear infinite; } + +@-webkit-keyframes loader-17 { + 0% { + -webkit-transform: rotateZ(0deg) translate3d(0, 0, 0); + transform: rotateZ(0deg) translate3d(0, 0, 0); } + 100% { + -webkit-transform: rotateZ(360deg) translate3d(0, 0, 0); + transform: rotateZ(360deg) translate3d(0, 0, 0); } } + +@keyframes loader-17 { + 0% { + -webkit-transform: rotateZ(0deg) translate3d(0, 0, 0); + transform: rotateZ(0deg) translate3d(0, 0, 0); } + 100% { + -webkit-transform: rotateZ(360deg) translate3d(0, 0, 0); + transform: rotateZ(360deg) translate3d(0, 0, 0); } } + .loader-box .loader-18 { + position: relative; } + .loader-box .loader-18:before, .loader-box .loader-18:after { + content: ''; + display: block; + position: absolute; + border-radius: 50%; + border: .1em solid transparent; + border-bottom-color: #d22d3d; + top: 0; + left: 0; + -webkit-animation: 1s loader-18 linear infinite; + animation: 1s loader-18 linear infinite; } + .loader-box .loader-18:before { + width: 40px; + height: 40px; } + .loader-box .loader-18:after { + width: 30px; + height: 30px; + top: .1em; + left: .1em; + animation-direction: reverse; } + +@-webkit-keyframes loader-18 { + 0% { + -webkit-transform: rotate(0deg); + transform: rotate(0deg); } + 100% { + -webkit-transform: rotate(360deg); + transform: rotate(360deg); } } + +@keyframes loader-18 { + 0% { + -webkit-transform: rotate(0deg); + transform: rotate(0deg); } + 100% { + -webkit-transform: rotate(360deg); + transform: rotate(360deg); } } + .loader-box .loader-19 { + border-top: 0.2em solid #24695c; + border-right: .2em solid transparent; + -webkit-animation: loader-19 1s linear infinite; + animation: loader-19 1s linear infinite; + border-radius: 100%; + position: relative; } + +@-webkit-keyframes loader-19 { + to { + -webkit-transform: rotate(360deg); + transform: rotate(360deg); } } + +@keyframes loader-19 { + to { + -webkit-transform: rotate(360deg); + transform: rotate(360deg); } } + .loader-box .loader-20 { + background-color: transparent; + -webkit-box-shadow: inset 0px 0px 0px 0.1em #ba895d; + box-shadow: inset 0px 0px 0px 0.1em #ba895d; + border-radius: 50%; + position: relative; } + .loader-box .loader-20:after, .loader-box .loader-20:before { + position: absolute; + content: ""; + background-color: #ba895d; + top: 24px; + left: 24px; + height: .1em; + -webkit-transform-origin: left center; + transform-origin: left center; } + .loader-box .loader-20:after { + width: .4em; + -webkit-animation: loader-20 2s linear infinite; + animation: loader-20 2s linear infinite; } + .loader-box .loader-20:before { + width: 20px; + -webkit-animation: loader-20 8s linear infinite; + animation: loader-20 8s linear infinite; } + +@-webkit-keyframes loader-20 { + 0% { + -webkit-transform: rotate(0deg); + transform: rotate(0deg); } + 100% { + -webkit-transform: rotate(360deg); + transform: rotate(360deg); } } + +@keyframes loader-20 { + 0% { + -webkit-transform: rotate(0deg); + transform: rotate(0deg); } + 100% { + -webkit-transform: rotate(360deg); + transform: rotate(360deg); } } + .loader-box .loader-21 { + position: relative; } + .loader-box .loader-21:before, .loader-box .loader-21:after { + position: absolute; + content: ""; } + .loader-box .loader-21:before { + width: 80%; + height: 80%; + left: 10%; + bottom: 10%; + border-radius: 100% 100% 100% 0; + -webkit-box-shadow: 0px 0px 0px 0.1em #1b4c43; + box-shadow: 0px 0px 0px 0.1em #1b4c43; + -webkit-animation: loader-21 1s linear infinite; + animation: loader-21 1s linear infinite; + -webkit-transform: rotate(-46deg); + transform: rotate(-46deg); } + .loader-box .loader-21:after { + width: 1em; + height: .3em; + border-radius: 100%; + left: 0; + background-color: rgba(255, 255, 255, 0.2); + bottom: -.2em; + z-index: -1; } + +@-webkit-keyframes loader-21 { + 0% { + top: 0; } + 50% { + top: -5px; } + 100% { + top: 0; } } + +@keyframes loader-21 { + 0% { + top: 0; } + 50% { + top: -5px; } + 100% { + top: 0; } } + .loader-box .loader-22 { + border: 0.1em #717171 solid; + border-radius: 100%; + position: relative; + overflow: hidden; + z-index: 1; } + .loader-box .loader-22:after, .loader-box .loader-22:before { + position: absolute; + content: ""; + background-color: #717171; } + .loader-box .loader-22:after { + width: 50%; + height: .1em; + left: 50%; + top: 50%; + -webkit-transform-origin: left center; + transform-origin: left center; + -webkit-animation: loader-22 2s linear infinite alternate; + animation: loader-22 2s linear infinite alternate; } + .loader-box .loader-22:before { + width: 100%; + height: 40%; + left: 0; + bottom: 0; } + +@-webkit-keyframes loader-22 { + 0% { + -webkit-transform: rotate(-160deg); + transform: rotate(-160deg); } + 100% { + -webkit-transform: rotate(-20deg); + transform: rotate(-20deg); } } + +@keyframes loader-22 { + 0% { + -webkit-transform: rotate(-160deg); + transform: rotate(-160deg); } + 100% { + -webkit-transform: rotate(-20deg); + transform: rotate(-20deg); } } + .loader-box .loader-23 { + height: .5em; + border: 0.1em #e2c636 solid; + border-radius: .1em; + position: relative; + -webkit-animation: loader-23 5s linear infinite; + animation: loader-23 5s linear infinite; } + .loader-box .loader-23:after { + width: .07em; + height: 100%; + background-color: #e2c636; + border-radius: 0px .5em .5em 0px; + position: absolute; + content: ""; + top: 0; + left: calc(100% + .1em); } + +@-webkit-keyframes loader-23 { + 0% { + -webkit-box-shadow: inset 0px 0px 0px #e2c636; + box-shadow: inset 0px 0px 0px #e2c636; } + 100% { + -webkit-box-shadow: inset 1em 0px 0px #e2c636; + box-shadow: inset 1em 0px 0px #e2c636; } } + +@keyframes loader-23 { + 0% { + -webkit-box-shadow: inset 0px 0px 0px #e2c636; + box-shadow: inset 0px 0px 0px #e2c636; } + 100% { + -webkit-box-shadow: inset 1em 0px 0px #e2c636; + box-shadow: inset 1em 0px 0px #e2c636; } } + .loader-box .loader-24 { + width: .8em; + height: 1em; + border: 0.1em #d22d3d solid; + border-radius: 0px 0px .2em .2em; + position: relative; } + .loader-box .loader-24:after, .loader-box .loader-24:before { + position: absolute; + content: ""; } + .loader-box .loader-24:after { + width: .2em; + height: 50%; + border: 0.1em #d22d3d solid; + border-left: none; + border-radius: 0px .5em .5em 0px; + left: calc(100% + .1em); + top: .1em; } + .loader-box .loader-24:before { + width: .1em; + height: .3em; + background-color: #d22d3d; + top: -.3em; + left: .05em; + -webkit-box-shadow: 0.2em 0px 0px 0px #d22d3d, 0.2em -0.2em 0px 0px #d22d3d, 0.4em 0px 0px 0px #d22d3d; + box-shadow: 0.2em 0px 0px 0px #d22d3d, 0.2em -0.2em 0px 0px #d22d3d, 0.4em 0px 0px 0px #d22d3d; + -webkit-animation: loader-24 1s linear infinite alternate; + animation: loader-24 1s linear infinite alternate; } + +@-webkit-keyframes loader-24 { + 0% { + height: 0px; } + 100% { + height: 6px; } } + +@keyframes loader-24 { + 0% { + height: 0px; } + 100% { + height: 6px; } } + .loader-box .loader-25 { + border: 0.1em #24695c solid; + position: relative; + -webkit-animation: loader-25-1 5s linear infinite; + animation: loader-25-1 5s linear infinite; } + .loader-box .loader-25:after { + width: .2em; + height: .2em; + position: absolute; + content: ""; + background-color: #24695c; + bottom: calc(100% + .2em); + left: -.4em; + -webkit-animation: loader-25-2 1s ease-in-out infinite; + animation: loader-25-2 1s ease-in-out infinite; } + +@-webkit-keyframes loader-25-1 { + 0% { + -webkit-box-shadow: inset 0 0 0 0 #24695c; + box-shadow: inset 0 0 0 0 #24695c; } + 100% { + -webkit-box-shadow: inset 0 -1em 0 0 #24695c; + box-shadow: inset 0 -1em 0 0 #24695c; } } + +@keyframes loader-25-1 { + 0% { + -webkit-box-shadow: inset 0 0 0 0 #24695c; + box-shadow: inset 0 0 0 0 #24695c; } + 100% { + -webkit-box-shadow: inset 0 -1em 0 0 #24695c; + box-shadow: inset 0 -1em 0 0 #24695c; } } + +@-webkit-keyframes loader-25-2 { + 25% { + left: calc(100% + .2em); + bottom: calc(100% + .2em); } + 50% { + left: calc(100% + .2em); + bottom: -.4em; } + 75% { + left: -.4em; + bottom: -.4em; } + 100% { + left: -.4em; + bottom: calc(100% + .2em); } } + +@keyframes loader-25-2 { + 25% { + left: calc(100% + .2em); + bottom: calc(100% + .2em); } + 50% { + left: calc(100% + .2em); + bottom: -.4em; } + 75% { + left: -.4em; + bottom: -.4em; } + 100% { + left: -.4em; + bottom: calc(100% + .2em); } } + .loader-box .loader-26 { + width: .5em; + height: .5em; + background-color: #ba895d; + -webkit-box-shadow: 1em 0px 0px #ba895d; + box-shadow: 1em 0px 0px #ba895d; + border-radius: 50%; + -webkit-animation: loader-26 1s ease-in-out infinite alternate; + animation: loader-26 1s ease-in-out infinite alternate; } + +@-webkit-keyframes loader-26 { + 0% { + opacity: 0.1; + -webkit-transform: rotate(0deg) scale(0.5); + transform: rotate(0deg) scale(0.5); } + 100% { + opacity: 1; + -webkit-transform: rotate(360deg) scale(1.2); + transform: rotate(360deg) scale(1.2); } } + +@keyframes loader-26 { + 0% { + opacity: 0.1; + -webkit-transform: rotate(0deg) scale(0.5); + transform: rotate(0deg) scale(0.5); } + 100% { + opacity: 1; + -webkit-transform: rotate(360deg) scale(1.2); + transform: rotate(360deg) scale(1.2); } } + .loader-box .loader-29 { + border-radius: 50%; + -webkit-box-shadow: inset 0 0 0 0.1em #1b4c43, -0.5em -0.5em 0 -0.4em #1b4c43, 0 -0.7em 0 -0.4em #1b4c43, 0.5em -0.5em 0 -0.4em #1b4c43, -0.5em 0.5em 0 -0.4em #1b4c43, 0 0.7em 0 -0.4em #1b4c43, 0.5em 0.5em 0 -0.4em #1b4c43, -0.7em 0 0 -0.4em #1b4c43, 0.7em 0 0 -0.4em #1b4c43; + box-shadow: inset 0 0 0 0.1em #1b4c43, -0.5em -0.5em 0 -0.4em #1b4c43, 0 -0.7em 0 -0.4em #1b4c43, 0.5em -0.5em 0 -0.4em #1b4c43, -0.5em 0.5em 0 -0.4em #1b4c43, 0 0.7em 0 -0.4em #1b4c43, 0.5em 0.5em 0 -0.4em #1b4c43, -0.7em 0 0 -0.4em #1b4c43, 0.7em 0 0 -0.4em #1b4c43; + -webkit-animation: 5s loader-29 linear infinite; + animation: 5s loader-29 linear infinite; } + +@-webkit-keyframes loader-29 { + 0% { + -webkit-transform: rotate(0deg); + transform: rotate(0deg); } + 100% { + -webkit-transform: rotate(360deg); + transform: rotate(360deg); } } + +@keyframes loader-29 { + 0% { + -webkit-transform: rotate(0deg); + transform: rotate(0deg); } + 100% { + -webkit-transform: rotate(360deg); + transform: rotate(360deg); } } + .loader-box .loader-30 { + border: .2em solid transparent; + border-top-color: #717171; + border-bottom-color: #717171; + border-radius: 50%; + position: relative; + -webkit-animation: 1s loader-30 linear infinite; + animation: 1s loader-30 linear infinite; } + .loader-box .loader-30:before, .loader-box .loader-30:after { + content: ''; + display: block; + width: 0; + height: 0; + position: absolute; + border: .2em solid transparent; + border-bottom-color: #717171; } + .loader-box .loader-30:before { + -webkit-transform: rotate(135deg); + transform: rotate(135deg); + right: -.3em; + top: -.05em; } + .loader-box .loader-30:after { + -webkit-transform: rotate(-45deg); + transform: rotate(-45deg); + left: -.3em; + bottom: -.05em; } + +@-webkit-keyframes loader-30 { + 0% { + -webkit-transform: rotate(0deg); + transform: rotate(0deg); } + 100% { + -webkit-transform: rotate(360deg); + transform: rotate(360deg); } } + +@keyframes loader-30 { + 0% { + -webkit-transform: rotate(0deg); + transform: rotate(0deg); } + 100% { + -webkit-transform: rotate(360deg); + transform: rotate(360deg); } } + .loader-box .loader-31 { + -webkit-box-shadow: 0 0 2em #e2c636; + box-shadow: 0 0 2em #e2c636; + background-color: #e2c636; + position: relative; + border-radius: 50%; + -webkit-transform: rotateX(-60deg) perspective(1000px); + transform: rotateX(-60deg) perspective(1000px); } + .loader-box .loader-31:before, .loader-box .loader-31:after { + content: ''; + display: block; + position: absolute; + top: 0; + left: 0; + width: inherit; + height: inherit; + border-radius: inherit; + -webkit-animation: 1s loader-31 ease-out infinite; + animation: 1s loader-31 ease-out infinite; } + .loader-box .loader-31:after { + -webkit-animation-delay: .4s; + animation-delay: .4s; } + +@-webkit-keyframes loader-31 { + 0% { + opacity: 1; + -webkit-transform: rotate(0deg); + transform: rotate(0deg); + -webkit-box-shadow: 0 0 0 -0.5em #e2c636, 0 0 0 -0.5em #e2c636, 0 0 0 -0.5em #e2c636, 0 0 0 -0.5em #e2c636, 0 0 0 -0.5em #e2c636, 0 0 0 -0.5em #e2c636, 0 0 0 -0.5em #e2c636, 0 0 0 -0.5em #e2c636; + box-shadow: 0 0 0 -0.5em #e2c636, 0 0 0 -0.5em #e2c636, 0 0 0 -0.5em #e2c636, 0 0 0 -0.5em #e2c636, 0 0 0 -0.5em #e2c636, 0 0 0 -0.5em #e2c636, 0 0 0 -0.5em #e2c636, 0 0 0 -0.5em #e2c636; } + 100% { + opacity: 0; + -webkit-transform: rotate(180deg); + transform: rotate(180deg); + -webkit-box-shadow: -1em -1em 0 -0.35em #e2c636, 0 -1.5em 0 -0.35em #e2c636, 1em -1em 0 -0.35em #e2c636, -1.5em 0 0 -0.35em #e2c636, 1.5em 0 0 -0.35em #e2c636, -1em 1em 0 -0.35em #e2c636, 0 1.5em 0 -0.35em #e2c636, 1em 1em 0 -0.35em #e2c636; + box-shadow: -1em -1em 0 -0.35em #e2c636, 0 -1.5em 0 -0.35em #e2c636, 1em -1em 0 -0.35em #e2c636, -1.5em 0 0 -0.35em #e2c636, 1.5em 0 0 -0.35em #e2c636, -1em 1em 0 -0.35em #e2c636, 0 1.5em 0 -0.35em #e2c636, 1em 1em 0 -0.35em #e2c636; } } + +@keyframes loader-31 { + 0% { + opacity: 1; + -webkit-transform: rotate(0deg); + transform: rotate(0deg); + -webkit-box-shadow: 0 0 0 -0.5em #e2c636, 0 0 0 -0.5em #e2c636, 0 0 0 -0.5em #e2c636, 0 0 0 -0.5em #e2c636, 0 0 0 -0.5em #e2c636, 0 0 0 -0.5em #e2c636, 0 0 0 -0.5em #e2c636, 0 0 0 -0.5em #e2c636; + box-shadow: 0 0 0 -0.5em #e2c636, 0 0 0 -0.5em #e2c636, 0 0 0 -0.5em #e2c636, 0 0 0 -0.5em #e2c636, 0 0 0 -0.5em #e2c636, 0 0 0 -0.5em #e2c636, 0 0 0 -0.5em #e2c636, 0 0 0 -0.5em #e2c636; } + 100% { + opacity: 0; + -webkit-transform: rotate(180deg); + transform: rotate(180deg); + -webkit-box-shadow: -1em -1em 0 -0.35em #e2c636, 0 -1.5em 0 -0.35em #e2c636, 1em -1em 0 -0.35em #e2c636, -1.5em 0 0 -0.35em #e2c636, 1.5em 0 0 -0.35em #e2c636, -1em 1em 0 -0.35em #e2c636, 0 1.5em 0 -0.35em #e2c636, 1em 1em 0 -0.35em #e2c636; + box-shadow: -1em -1em 0 -0.35em #e2c636, 0 -1.5em 0 -0.35em #e2c636, 1em -1em 0 -0.35em #e2c636, -1.5em 0 0 -0.35em #e2c636, 1.5em 0 0 -0.35em #e2c636, -1em 1em 0 -0.35em #e2c636, 0 1.5em 0 -0.35em #e2c636, 1em 1em 0 -0.35em #e2c636; } } + .loader-box .loader-32 { + position: relative; + border-radius: 50%; + -webkit-box-shadow: 0 0 1em 0 #d22d3d, inset 0 0 1em 0 #d22d3d; + box-shadow: 0 0 1em 0 #d22d3d, inset 0 0 1em 0 #d22d3d; + -webkit-animation: 1s loader-32 linear infinite; + animation: 1s loader-32 linear infinite; } + .loader-box .loader-32:before, .loader-box .loader-32:after { + content: ''; + display: block; + width: inherit; + height: inherit; + position: absolute; + border-radius: 50%; } + .loader-box .loader-32:before { + border-top: 0.2em solid #d22d3d; + border-right: .2em solid transparent; + top: .28em; + right: calc(50% - .22em); } + .loader-box .loader-32:after { + border-bottom: 0.2em solid #d22d3d; + border-left: .2em solid transparent; + bottom: .28em; + left: calc(50% - .22em); } + +@-webkit-keyframes loader-32 { + 0% { + -webkit-transform: rotateX(-60deg) rotateZ(0deg); + transform: rotateX(-60deg) rotateZ(0deg); } + 100% { + -webkit-transform: rotateX(-60deg) rotateZ(360deg); + transform: rotateX(-60deg) rotateZ(360deg); } } + +@keyframes loader-32 { + 0% { + -webkit-transform: rotateX(-60deg) rotateZ(0deg); + transform: rotateX(-60deg) rotateZ(0deg); } + 100% { + -webkit-transform: rotateX(-60deg) rotateZ(360deg); + transform: rotateX(-60deg) rotateZ(360deg); } } + .loader-box .loader-34 { + position: relative; + width: 1em; + height: .5em; } + .loader-box .loader-34:after, .loader-box .loader-34:before { + position: absolute; + content: ""; + height: .4em; + width: .4em; + top: 0; + background-color: #24695c; + border-radius: 50%; } + .loader-box .loader-34:after { + right: 0; + -webkit-animation: loader-34-2 0.5s ease-in-out infinite; + animation: loader-34-2 0.5s ease-in-out infinite; + -webkit-animation-direction: alternate; + animation-direction: alternate; } + .loader-box .loader-34:before { + left: 0; + -webkit-animation: loader-34-1 0.5s ease-in-out infinite; + animation: loader-34-1 0.5s ease-in-out infinite; + -webkit-animation-direction: alternate; + animation-direction: alternate; } + +@-webkit-keyframes loader-34-1 { + 0% { + -webkit-transform: translatex(0px); + transform: translatex(0px); } + 65% { + height: .4em; + width: .4em; } + 100% { + height: .5em; + width: .3em; + -webkit-transform: translatex(0.2em); + transform: translatex(0.2em); } } + +@keyframes loader-34-1 { + 0% { + -webkit-transform: translatex(0px); + transform: translatex(0px); } + 65% { + height: .4em; + width: .4em; } + 100% { + height: .5em; + width: .3em; + -webkit-transform: translatex(0.2em); + transform: translatex(0.2em); } } + +@-webkit-keyframes loader-34-2 { + 0% { + -webkit-transform: translatex(0px); + transform: translatex(0px); } + 65% { + height: .4em; + width: .4em; } + 100% { + height: .5em; + width: .3em; + -webkit-transform: translatex(-0.2em); + transform: translatex(-0.2em); } } + +@keyframes loader-34-2 { + 0% { + -webkit-transform: translatex(0px); + transform: translatex(0px); } + 65% { + height: .4em; + width: .4em; } + 100% { + height: .5em; + width: .3em; + -webkit-transform: translatex(-0.2em); + transform: translatex(-0.2em); } } + .loader-box .loader-35 { + margin: 0 .5em; + position: relative; } + .loader-box .loader-35:before { + border-radius: 50%; + background-color: #ba895d; + -webkit-animation: loader-35 3s cubic-bezier(0.77, 0, 0.175, 1) infinite; + animation: loader-35 3s cubic-bezier(0.77, 0, 0.175, 1) infinite; + content: ''; + width: inherit; + height: inherit; + top: 0; + left: 0; + position: absolute; } + +@-webkit-keyframes loader-35 { + 0% { + -webkit-transform: translateX(0) scale(1); + transform: translateX(0) scale(1); } + 25% { + -webkit-transform: translateX(-100%) scale(0.3); + transform: translateX(-100%) scale(0.3); } + 50% { + -webkit-transform: translateX(0) scale(1); + transform: translateX(0) scale(1); } + 75% { + -webkit-transform: translateX(100%) scale(0.3); + transform: translateX(100%) scale(0.3); } + 100% { + -webkit-transform: translateX(0) scale(1); + transform: translateX(0) scale(1); } } + +@keyframes loader-35 { + 0% { + -webkit-transform: translateX(0) scale(1); + transform: translateX(0) scale(1); } + 25% { + -webkit-transform: translateX(-100%) scale(0.3); + transform: translateX(-100%) scale(0.3); } + 50% { + -webkit-transform: translateX(0) scale(1); + transform: translateX(0) scale(1); } + 75% { + -webkit-transform: translateX(100%) scale(0.3); + transform: translateX(100%) scale(0.3); } + 100% { + -webkit-transform: translateX(0) scale(1); + transform: translateX(0) scale(1); } } + .loader-box .loader-37 { + border-right: 0.1em solid #1b4c43; + border-radius: 100%; + -webkit-animation: loader-37 800ms linear infinite; + animation: loader-37 800ms linear infinite; } + .loader-box .loader-37:before, .loader-box .loader-37:after { + content: ''; + width: .8em; + height: .8em; + display: block; + position: absolute; + top: calc(50% - .4em); + left: calc(50% - .4em); + border-left: 0.08em solid #1b4c43; + border-radius: 100%; + animation: loader-37 400ms linear infinite reverse; } + .loader-box .loader-37:after { + width: .6em; + height: .6em; + top: calc(50% - .3em); + left: calc(50% - .3em); + border: 0; + border-right: 0.05em solid #1b4c43; + -webkit-animation: none; + animation: none; } + +@-webkit-keyframes loader-37 { + from { + -webkit-transform: rotate(360deg); + transform: rotate(360deg); } + to { + -webkit-transform: rotate(0deg); + transform: rotate(0deg); } } + +@keyframes loader-37 { + from { + -webkit-transform: rotate(360deg); + transform: rotate(360deg); } + to { + -webkit-transform: rotate(0deg); + transform: rotate(0deg); } } + .loader-box .loader-38 { + height: 0.1em; + width: 0.1em; + -webkit-box-shadow: -0.2em -0.2em 0 0.1em #717171, -0.2em -0.2em 0 0.1em #717171, -0.2em -0.2em 0 0.1em #717171, -0.2em -0.2em 0 0.1em #717171; + box-shadow: -0.2em -0.2em 0 0.1em #717171, -0.2em -0.2em 0 0.1em #717171, -0.2em -0.2em 0 0.1em #717171, -0.2em -0.2em 0 0.1em #717171; + -webkit-animation: loader-38 6s infinite; + animation: loader-38 6s infinite; } + +@-webkit-keyframes loader-38 { + 0% { + -webkit-box-shadow: -0.2em -0.2em 0 0.1em #717171, -0.2em -0.2em 0 0.1em #717171, -0.2em -0.2em 0 0.1em #717171, -0.2em -0.2em 0 0.1em #717171; + box-shadow: -0.2em -0.2em 0 0.1em #717171, -0.2em -0.2em 0 0.1em #717171, -0.2em -0.2em 0 0.1em #717171, -0.2em -0.2em 0 0.1em #717171; } + 8.33% { + -webkit-box-shadow: -0.2em -0.2em 0 0.1em #717171, 0.2em -0.2em 0 0.1em #717171, 0.2em -0.2em 0 0.1em #717171, 0.2em -0.2em 0 0.1em #717171; + box-shadow: -0.2em -0.2em 0 0.1em #717171, 0.2em -0.2em 0 0.1em #717171, 0.2em -0.2em 0 0.1em #717171, 0.2em -0.2em 0 0.1em #717171; } + 16.66% { + -webkit-box-shadow: -0.2em -0.2em 0 0.1em #717171, 0.2em -0.2em 0 0.1em #717171, 0.2em 0.2em 0 0.1em #717171, 0.2em 0.2em 0 0.1em #717171; + box-shadow: -0.2em -0.2em 0 0.1em #717171, 0.2em -0.2em 0 0.1em #717171, 0.2em 0.2em 0 0.1em #717171, 0.2em 0.2em 0 0.1em #717171; } + 24.99% { + -webkit-box-shadow: -0.2em -0.2em 0 0.1em #717171, 0.2em -0.2em 0 0.1em #717171, 0.2em 0.2em 0 0.1em #717171, -0.2em 0.2em 0 0.1em #717171; + box-shadow: -0.2em -0.2em 0 0.1em #717171, 0.2em -0.2em 0 0.1em #717171, 0.2em 0.2em 0 0.1em #717171, -0.2em 0.2em 0 0.1em #717171; } + 33.32% { + -webkit-box-shadow: -0.2em -0.2em 0 0.1em #717171, 0.2em -0.2em 0 0.1em #717171, 0.2em 0.2em 0 0.1em #717171, -0.2em -0.2em 0 0.1em #717171; + box-shadow: -0.2em -0.2em 0 0.1em #717171, 0.2em -0.2em 0 0.1em #717171, 0.2em 0.2em 0 0.1em #717171, -0.2em -0.2em 0 0.1em #717171; } + 41.65% { + -webkit-box-shadow: 0.2em -0.2em 0 0.1em #717171, 0.2em -0.2em 0 0.1em #717171, 0.2em 0.2em 0 0.1em #717171, 0.2em -0.2em 0 0.1em #717171; + box-shadow: 0.2em -0.2em 0 0.1em #717171, 0.2em -0.2em 0 0.1em #717171, 0.2em 0.2em 0 0.1em #717171, 0.2em -0.2em 0 0.1em #717171; } + 49.98% { + -webkit-box-shadow: 0.2em 0.2em 0 0.1em #717171, 0.2em 0.2em 0 0.1em #717171, 0.2em 0.2em 0 0.1em #717171, 0.2em 0.2em 0 0.1em #717171; + box-shadow: 0.2em 0.2em 0 0.1em #717171, 0.2em 0.2em 0 0.1em #717171, 0.2em 0.2em 0 0.1em #717171, 0.2em 0.2em 0 0.1em #717171; } + 58.31% { + -webkit-box-shadow: -0.2em 0.2em 0 0.1em #717171, -0.2em 0.2em 0 0.1em #717171, 0.2em 0.2em 0 0.1em #717171, -0.2em 0.2em 0 0.1em #717171; + box-shadow: -0.2em 0.2em 0 0.1em #717171, -0.2em 0.2em 0 0.1em #717171, 0.2em 0.2em 0 0.1em #717171, -0.2em 0.2em 0 0.1em #717171; } + 66.64% { + -webkit-box-shadow: -0.2em -0.2em 0 0.1em #717171, -0.2em -0.2em 0 0.1em #717171, 0.2em 0.2em 0 0.1em #717171, -0.2em 0.2em 0 0.1em #717171; + box-shadow: -0.2em -0.2em 0 0.1em #717171, -0.2em -0.2em 0 0.1em #717171, 0.2em 0.2em 0 0.1em #717171, -0.2em 0.2em 0 0.1em #717171; } + 74.97% { + -webkit-box-shadow: -0.2em -0.2em 0 0.1em #717171, 0.2em -0.2em 0 0.1em #717171, 0.2em 0.2em 0 0.1em #717171, -0.2em 0.2em 0 0.1em #717171; + box-shadow: -0.2em -0.2em 0 0.1em #717171, 0.2em -0.2em 0 0.1em #717171, 0.2em 0.2em 0 0.1em #717171, -0.2em 0.2em 0 0.1em #717171; } + 83.3% { + -webkit-box-shadow: -0.2em -0.2em 0 0.1em #717171, 0.2em 0.2em 0 0.1em #717171, 0.2em 0.2em 0 0.1em #717171, -0.2em 0.2em 0 0.1em #717171; + box-shadow: -0.2em -0.2em 0 0.1em #717171, 0.2em 0.2em 0 0.1em #717171, 0.2em 0.2em 0 0.1em #717171, -0.2em 0.2em 0 0.1em #717171; } + 91.63% { + -webkit-box-shadow: -0.2em -0.2em 0 0.1em #717171, -0.2em 0.2em 0 0.1em #717171, -0.2em 0.2em 0 0.1em #717171, -0.2em 0.2em 0 0.1em #717171; + box-shadow: -0.2em -0.2em 0 0.1em #717171, -0.2em 0.2em 0 0.1em #717171, -0.2em 0.2em 0 0.1em #717171, -0.2em 0.2em 0 0.1em #717171; } + 100% { + -webkit-box-shadow: -0.2em -0.2em 0 0.1em #717171, -0.2em -0.2em 0 0.1em #717171, -0.2em -0.2em 0 0.1em #717171, -0.2em -0.2em 0 0.1em #717171; + box-shadow: -0.2em -0.2em 0 0.1em #717171, -0.2em -0.2em 0 0.1em #717171, -0.2em -0.2em 0 0.1em #717171, -0.2em -0.2em 0 0.1em #717171; } } + +@keyframes loader-38 { + 0% { + -webkit-box-shadow: -0.2em -0.2em 0 0.1em #717171, -0.2em -0.2em 0 0.1em #717171, -0.2em -0.2em 0 0.1em #717171, -0.2em -0.2em 0 0.1em #717171; + box-shadow: -0.2em -0.2em 0 0.1em #717171, -0.2em -0.2em 0 0.1em #717171, -0.2em -0.2em 0 0.1em #717171, -0.2em -0.2em 0 0.1em #717171; } + 8.33% { + -webkit-box-shadow: -0.2em -0.2em 0 0.1em #717171, 0.2em -0.2em 0 0.1em #717171, 0.2em -0.2em 0 0.1em #717171, 0.2em -0.2em 0 0.1em #717171; + box-shadow: -0.2em -0.2em 0 0.1em #717171, 0.2em -0.2em 0 0.1em #717171, 0.2em -0.2em 0 0.1em #717171, 0.2em -0.2em 0 0.1em #717171; } + 16.66% { + -webkit-box-shadow: -0.2em -0.2em 0 0.1em #717171, 0.2em -0.2em 0 0.1em #717171, 0.2em 0.2em 0 0.1em #717171, 0.2em 0.2em 0 0.1em #717171; + box-shadow: -0.2em -0.2em 0 0.1em #717171, 0.2em -0.2em 0 0.1em #717171, 0.2em 0.2em 0 0.1em #717171, 0.2em 0.2em 0 0.1em #717171; } + 24.99% { + -webkit-box-shadow: -0.2em -0.2em 0 0.1em #717171, 0.2em -0.2em 0 0.1em #717171, 0.2em 0.2em 0 0.1em #717171, -0.2em 0.2em 0 0.1em #717171; + box-shadow: -0.2em -0.2em 0 0.1em #717171, 0.2em -0.2em 0 0.1em #717171, 0.2em 0.2em 0 0.1em #717171, -0.2em 0.2em 0 0.1em #717171; } + 33.32% { + -webkit-box-shadow: -0.2em -0.2em 0 0.1em #717171, 0.2em -0.2em 0 0.1em #717171, 0.2em 0.2em 0 0.1em #717171, -0.2em -0.2em 0 0.1em #717171; + box-shadow: -0.2em -0.2em 0 0.1em #717171, 0.2em -0.2em 0 0.1em #717171, 0.2em 0.2em 0 0.1em #717171, -0.2em -0.2em 0 0.1em #717171; } + 41.65% { + -webkit-box-shadow: 0.2em -0.2em 0 0.1em #717171, 0.2em -0.2em 0 0.1em #717171, 0.2em 0.2em 0 0.1em #717171, 0.2em -0.2em 0 0.1em #717171; + box-shadow: 0.2em -0.2em 0 0.1em #717171, 0.2em -0.2em 0 0.1em #717171, 0.2em 0.2em 0 0.1em #717171, 0.2em -0.2em 0 0.1em #717171; } + 49.98% { + -webkit-box-shadow: 0.2em 0.2em 0 0.1em #717171, 0.2em 0.2em 0 0.1em #717171, 0.2em 0.2em 0 0.1em #717171, 0.2em 0.2em 0 0.1em #717171; + box-shadow: 0.2em 0.2em 0 0.1em #717171, 0.2em 0.2em 0 0.1em #717171, 0.2em 0.2em 0 0.1em #717171, 0.2em 0.2em 0 0.1em #717171; } + 58.31% { + -webkit-box-shadow: -0.2em 0.2em 0 0.1em #717171, -0.2em 0.2em 0 0.1em #717171, 0.2em 0.2em 0 0.1em #717171, -0.2em 0.2em 0 0.1em #717171; + box-shadow: -0.2em 0.2em 0 0.1em #717171, -0.2em 0.2em 0 0.1em #717171, 0.2em 0.2em 0 0.1em #717171, -0.2em 0.2em 0 0.1em #717171; } + 66.64% { + -webkit-box-shadow: -0.2em -0.2em 0 0.1em #717171, -0.2em -0.2em 0 0.1em #717171, 0.2em 0.2em 0 0.1em #717171, -0.2em 0.2em 0 0.1em #717171; + box-shadow: -0.2em -0.2em 0 0.1em #717171, -0.2em -0.2em 0 0.1em #717171, 0.2em 0.2em 0 0.1em #717171, -0.2em 0.2em 0 0.1em #717171; } + 74.97% { + -webkit-box-shadow: -0.2em -0.2em 0 0.1em #717171, 0.2em -0.2em 0 0.1em #717171, 0.2em 0.2em 0 0.1em #717171, -0.2em 0.2em 0 0.1em #717171; + box-shadow: -0.2em -0.2em 0 0.1em #717171, 0.2em -0.2em 0 0.1em #717171, 0.2em 0.2em 0 0.1em #717171, -0.2em 0.2em 0 0.1em #717171; } + 83.3% { + -webkit-box-shadow: -0.2em -0.2em 0 0.1em #717171, 0.2em 0.2em 0 0.1em #717171, 0.2em 0.2em 0 0.1em #717171, -0.2em 0.2em 0 0.1em #717171; + box-shadow: -0.2em -0.2em 0 0.1em #717171, 0.2em 0.2em 0 0.1em #717171, 0.2em 0.2em 0 0.1em #717171, -0.2em 0.2em 0 0.1em #717171; } + 91.63% { + -webkit-box-shadow: -0.2em -0.2em 0 0.1em #717171, -0.2em 0.2em 0 0.1em #717171, -0.2em 0.2em 0 0.1em #717171, -0.2em 0.2em 0 0.1em #717171; + box-shadow: -0.2em -0.2em 0 0.1em #717171, -0.2em 0.2em 0 0.1em #717171, -0.2em 0.2em 0 0.1em #717171, -0.2em 0.2em 0 0.1em #717171; } + 100% { + -webkit-box-shadow: -0.2em -0.2em 0 0.1em #717171, -0.2em -0.2em 0 0.1em #717171, -0.2em -0.2em 0 0.1em #717171, -0.2em -0.2em 0 0.1em #717171; + box-shadow: -0.2em -0.2em 0 0.1em #717171, -0.2em -0.2em 0 0.1em #717171, -0.2em -0.2em 0 0.1em #717171, -0.2em -0.2em 0 0.1em #717171; } } + .loader-box .loader-39 { + position: relative; + width: .15em; + height: .15em; + background-color: #e2c636; + border-radius: 100%; + -webkit-animation: loader-39-1 30s infinite linear; + animation: loader-39-1 30s infinite linear; } + .loader-box .loader-39:before, .loader-box .loader-39:after { + content: ''; + border-radius: 100%; + position: absolute; + top: 50%; + left: 50%; + -webkit-transform: translate(-50%, -50%); + transform: translate(-50%, -50%); } + .loader-box .loader-39:before { + width: 20px; + height: 60px; + -webkit-animation: loader-39-2 .8s linear infinite; + animation: loader-39-2 .8s linear infinite; } + .loader-box .loader-39:after { + width: 60px; + height: 20px; + -webkit-animation: loader-39-2 1.2s linear infinite; + animation: loader-39-2 1.2s linear infinite; } + +@-webkit-keyframes loader-39-1 { + 0% { + -webkit-transform: rotate(0deg); + transform: rotate(0deg); } + 100% { + -webkit-transform: rotate(360deg); + transform: rotate(360deg); } } + +@keyframes loader-39-1 { + 0% { + -webkit-transform: rotate(0deg); + transform: rotate(0deg); } + 100% { + -webkit-transform: rotate(360deg); + transform: rotate(360deg); } } + +@-webkit-keyframes loader-39-2 { + 0% { + -webkit-box-shadow: 0.04em -0.04em 0 0.02em #e2c636; + box-shadow: 0.04em -0.04em 0 0.02em #e2c636; } + 25% { + -webkit-box-shadow: 0.04em 0.04em 0 0.02em #e2c636; + box-shadow: 0.04em 0.04em 0 0.02em #e2c636; } + 50% { + -webkit-box-shadow: -0.04em 0.04em 0 0.02em #e2c636; + box-shadow: -0.04em 0.04em 0 0.02em #e2c636; } + 75% { + -webkit-box-shadow: -0.04em -0.04em 0 0.02em #e2c636; + box-shadow: -0.04em -0.04em 0 0.02em #e2c636; } + 100% { + -webkit-box-shadow: 0.04em -0.04em 0 0.02em #e2c636; + box-shadow: 0.04em -0.04em 0 0.02em #e2c636; } } + +@keyframes loader-39-2 { + 0% { + -webkit-box-shadow: 0.04em -0.04em 0 0.02em #e2c636; + box-shadow: 0.04em -0.04em 0 0.02em #e2c636; } + 25% { + -webkit-box-shadow: 0.04em 0.04em 0 0.02em #e2c636; + box-shadow: 0.04em 0.04em 0 0.02em #e2c636; } + 50% { + -webkit-box-shadow: -0.04em 0.04em 0 0.02em #e2c636; + box-shadow: -0.04em 0.04em 0 0.02em #e2c636; } + 75% { + -webkit-box-shadow: -0.04em -0.04em 0 0.02em #e2c636; + box-shadow: -0.04em -0.04em 0 0.02em #e2c636; } + 100% { + -webkit-box-shadow: 0.04em -0.04em 0 0.02em #e2c636; + box-shadow: 0.04em -0.04em 0 0.02em #e2c636; } } + .loader-box .loader-40 { + border: 0.05em #d22d3d solid; + border-radius: .2em; + overflow: hidden; + position: relative; } + .loader-box .loader-40:after, .loader-box .loader-40:before { + content: ''; + border-radius: 50%; + position: absolute; + width: inherit; + height: inherit; + -webkit-animation: loader-40 2s infinite linear; + animation: loader-40 2s infinite linear; } + .loader-box .loader-40:before { + border-top: 0.2em #d22d3d solid; + top: -.15em; + left: calc( -50% - .15em); + -webkit-transform-origin: right center; + transform-origin: right center; } + .loader-box .loader-40:after { + border-bottom: 0.2em #d22d3d solid; + top: .15em; + right: calc( -50% - .15em); + -webkit-transform-origin: left center; + transform-origin: left center; } + +@-webkit-keyframes loader-40 { + from { + -webkit-transform: rotate(0deg); + transform: rotate(0deg); } + to { + -webkit-transform: rotate(359deg); + transform: rotate(359deg); } } + +@keyframes loader-40 { + from { + -webkit-transform: rotate(0deg); + transform: rotate(0deg); } + to { + -webkit-transform: rotate(359deg); + transform: rotate(359deg); } } + .loader-box .loader-41 { + border: 0.05em #24695c solid; + border-radius: .2em; + position: relative; + background: linear-gradient(45deg, transparent 48%, #24695c 50%, #24695c 50%, transparent 52%, transparent), linear-gradient(-45deg, transparent 48%, #24695c 50%, #24695c 50%, transparent 52%, transparent); + background-size: .5em .5em; + background-position: 0% 0%; + -webkit-animation: loader-41 1s infinite linear; + animation: loader-41 1s infinite linear; } + +@-webkit-keyframes loader-41 { + from { + background-position: 0 0; } + to { + background-position: -1em 0; } } + +@keyframes loader-41 { + from { + background-position: 0 0; } + to { + background-position: -1em 0; } } + .loader-box .loader-42 { + width: 2em; + height: .66em; + border: 0.05em #ba895d solid; + border-radius: .1em; + background: linear-gradient(-60deg, transparent 0%, transparent 50%, #ba895d 50%, #ba895d 75%, transparent 75%, transparent); + background-size: 1em 2em; + background-position: 0 0; + -webkit-animation: loader-42 0.8s infinite linear; + animation: loader-42 0.8s infinite linear; } + +@-webkit-keyframes loader-42 { + from { + background-position: 0 0; } + to { + background-position: -2em 0; } } + +@keyframes loader-42 { + from { + background-position: 0 0; } + to { + background-position: -2em 0; } } + +/**===================== + 04. Loader CSS Ends +==========================**/ +/**===================== + 05. Header CSS Start +==========================**/ +.onhover-show-div { + -webkit-box-shadow: 0 0 12px 3px rgba(25, 124, 207, 0.05); + box-shadow: 0 0 12px 3px rgba(25, 124, 207, 0.05); + -webkit-transform: translateY(30px); + transform: translateY(30px); + opacity: 0; + visibility: hidden; + left: 0; } + +.onhover-dropdown:hover .onhover-show-div { + opacity: 1; + -webkit-transform: translateY(0px); + transform: translateY(0px); + visibility: visible; } + .onhover-dropdown:hover .onhover-show-div:before { + width: 0; + height: 0; + border-left: 7px solid transparent; + border-right: 7px solid transparent; + border-bottom: 7px solid #fff; + content: ""; + top: -7px; + position: absolute; + left: 10px; + z-index: 2; } + .onhover-dropdown:hover .onhover-show-div:after { + width: 0; + height: 0; + border-left: 7px solid transparent; + border-right: 7px solid transparent; + border-bottom: 7px solid #f5f7fb; + content: ""; + top: -7px; + position: absolute; + left: 10px; + z-index: 1; } + +/*======= Page Header css Start ======= */ +.page-wrapper .page-main-header { + position: fixed; + top: 0; + z-index: 9; + width: 100%; + display: -webkit-box; + display: -ms-flexbox; + display: flex; + -webkit-box-align: center; + -ms-flex-align: center; + align-items: center; + -webkit-transition: 0.5s; + transition: 0.5s; + background-color: #fff; + -webkit-box-shadow: 0 0 20px rgba(25, 124, 207, 0.08); + box-shadow: 0 0 20px rgba(25, 124, 207, 0.08); } + .page-wrapper .page-main-header.open { + margin-left: 0; + width: 100%; + -webkit-transition: 0.5s; + transition: 0.5s; } + +.page-wrapper .page-body-wrapper { + background-color: #f5f7fb; } + .page-wrapper .page-body-wrapper .page-body { + min-height: calc(100vh - 76px); + margin-top: 76px; + padding: 0 15px 0 15px; + position: relative; + -webkit-transition: 0.5s; + transition: 0.5s; + background-color: #f5f7fb; } + .page-wrapper .page-body-wrapper .page-header { + padding-bottom: 30px; } + .page-wrapper .page-body-wrapper .page-header .row { + -webkit-box-align: center; + -ms-flex-align: center; + align-items: center; } + .page-wrapper .page-body-wrapper .page-header .row h3 { + font-size: 24px; + margin-bottom: 0; + font-weight: 600; + text-transform: capitalize; } + .page-wrapper .page-body-wrapper .page-header .row h3 small { + display: block; + font-size: 12px; + margin-bottom: 5px; + text-transform: capitalize; + color: rgba(36, 41, 52, 0.7); } + .page-wrapper .page-body-wrapper .page-header .breadcrumb { + background-color: transparent; + padding: 0; + margin-top: 5px; + margin-bottom: 0; } + .page-wrapper .page-body-wrapper .page-header .breadcrumb li { + color: #717171; + font-size: 13px; + letter-spacing: 1px; + font-weight: 500; } + .page-wrapper .page-body-wrapper .page-header .breadcrumb .breadcrumb-item + .breadcrumb-item:before { + content: "/"; } + .page-wrapper .page-body-wrapper .page-header .breadcrumb .breadcrumb-item a { + color: #24695c; } + +/*======= Page Header css ends ======= */ +/**======Main Header css Start ======**/ +.page-main-header { + max-width: 100vw; } + .page-main-header .main-header-right { + width: 100%; + display: -webkit-box; + display: -ms-flexbox; + display: flex; + -webkit-box-align: center; + -ms-flex-align: center; + align-items: center; + position: relative; } + .page-main-header .main-header-right .main-header-left { + display: -webkit-box; + display: -ms-flexbox; + display: flex; + width: 290px; + -webkit-box-pack: justify; + -ms-flex-pack: justify; + justify-content: space-between; + -webkit-box-align: center; + -ms-flex-align: center; + align-items: center; + padding: 24px 40px; + border-right: 1px solid #e6edef; } + .page-main-header .main-header-right .main-header-left .dark-logo-wrapper { + display: none; } + .page-main-header .main-header-right .left-menu-header { + padding: 24px 40px; } + .page-main-header .main-header-right .left-menu-header ul li .search-form .search-bg { + display: -webkit-box; + display: -ms-flexbox; + display: flex; + -webkit-box-align: center; + -ms-flex-align: center; + align-items: center; + width: 100%; } + .page-main-header .main-header-right .left-menu-header ul li .search-form .search-bg i { + text-align: center; } + .page-main-header .main-header-right .nav-right .nav-menus { + padding: 20px 40px; } + .page-main-header .main-header-right .nav-right .profile-dropdown { + width: 160px; + top: 57px; + right: -12px; + padding: 10px; } + .page-main-header .main-header-right .nav-right .profile-dropdown li { + padding: 10px !important; } + .page-main-header .main-header-right .nav-right .profile-dropdown li svg { + width: 16px; + vertical-align: bottom; + margin-right: 10px; } + .page-main-header .main-header-right .toggle-sidebar { + cursor: pointer; + padding: 5px 8px; + border-radius: 5px; + -webkit-transition: all 0.3s ease; + transition: all 0.3s ease; } + .page-main-header .main-header-right .toggle-sidebar svg { + width: 20px; + color: #24695c; } + .page-main-header .main-header-right .toggle-sidebar:hover { + background-color: rgba(36, 105, 92, 0.1); } + .page-main-header .main-header-right .vertical-mobile-sidebar { + display: none; } + .page-main-header .main-header-right .nav-left i { + margin-right: 20px; } + .page-main-header .main-header-right .nav-left input:focus { + outline: 0 !important; } + .page-main-header .main-header-right .left-menu-header ul li i { + color: #24695c; } + .page-main-header .main-header-right .left-menu-header ul li .search-form { + font-family: "Roboto", sans-serif; } + .page-main-header .main-header-right .left-menu-header ul li .search-form input { + padding: 0 20px; + border: none; + background: transparent; + color: rgba(36, 41, 52, 0.7); + font-weight: 500; } + .page-main-header .main-header-right .left-menu-header ul li .search-form input::-webkit-input-placeholder { + color: rgba(36, 41, 52, 0.7); + font-weight: 500; } + .page-main-header .main-header-right .left-menu-header ul li .search-form input::-moz-placeholder { + color: rgba(36, 41, 52, 0.7); + font-weight: 500; } + .page-main-header .main-header-right .left-menu-header ul li .search-form input:-ms-input-placeholder { + color: rgba(36, 41, 52, 0.7); + font-weight: 500; } + .page-main-header .main-header-right .left-menu-header ul li .search-form input::-ms-input-placeholder { + color: rgba(36, 41, 52, 0.7); + font-weight: 500; } + .page-main-header .main-header-right .left-menu-header ul li .search-form input::placeholder { + color: rgba(36, 41, 52, 0.7); + font-weight: 500; } + .page-main-header .main-header-right .nav-right { + text-align: left; } + .page-main-header .main-header-right .nav-right ul li svg { + vertical-align: middle; + width: 18px; + height: 18px; } + .page-main-header .main-header-right .nav-right ul li svg path { + color: #2b2b2b; } + .page-main-header .main-header-right .nav-right ul li:last-child { + margin-right: 0; } + .page-main-header .main-header-right .nav-right ul li .mode .mode-moon, .page-main-header .main-header-right .nav-right ul li .mode .mode-sun { + position: absolute; + top: 0; + left: 0; } + .page-main-header .main-header-right .nav-right ul li .mode .mode-sun { + opacity: 0; + visibility: hidden; + z-index: 1; } + .page-main-header .main-header-right .nav-right ul li .mode .mode-sun.show { + opacity: 1; + visibility: visible; } + .page-main-header .main-header-right .nav-right ul li .mode i { + vertical-align: middle; + font-size: 18px; } + .page-main-header .main-header-right .nav-right .onhover-show-div li { + display: block; } + .page-main-header .main-header-right .nav-right > ul { + padding: 0 0; } + .page-main-header .main-header-right .nav-right .btn-primary-light { + padding: 6px 20px; + font-weight: 600; } + .page-main-header .main-header-right .nav-right .btn-primary-light svg { + margin-right: 10px; } + .page-main-header .main-header-right .nav-right .btn-primary-light svg path { + color: #24695c; + -webkit-transition: 0.5s; + transition: 0.5s; } + .page-main-header .main-header-right .nav-right .btn-primary-light:focus, .page-main-header .main-header-right .nav-right .btn-primary-light:hover { + background-color: #24695c !important; + color: #fff; } + .page-main-header .main-header-right .nav-right .btn-primary-light:focus a, .page-main-header .main-header-right .nav-right .btn-primary-light:hover a { + color: #fff; } + .page-main-header .main-header-right .nav-right .btn-primary-light:focus svg path, .page-main-header .main-header-right .nav-right .btn-primary-light:hover svg path { + color: #fff; + -webkit-transition: 0.5s; + transition: 0.5s; } + .page-main-header .main-header-right .nav-right.right-menu ul { + -webkit-box-pack: end; + -ms-flex-pack: end; + justify-content: flex-end; } + .page-main-header .main-header-right .nav-right.right-menu ul li { + position: relative; } + .page-main-header .main-header-right .nav-right.right-menu ul li .notification { + position: absolute; + top: -2px; + right: -9px; + padding: 5px 7px; } + .page-main-header .main-header-right .nav-right.right-menu ul li .profile-media .media-body { + margin-left: 15px; } + .page-main-header .main-header-right .nav-right.right-menu ul li .profile-media .media-body span { + font-weight: 500; } + .page-main-header .main-header-right .nav-right.right-menu ul li .profile-media .media-body p { + font-size: 12px; + line-height: 1; + color: rgba(36, 41, 52, 0.7); + font-weight: 500; } + .page-main-header .main-header-right .nav-right.right-menu ul li:hover { + background-color: rgba(36, 105, 92, 0.1); } + .page-main-header .main-header-right .nav-right.right-menu ul li:hover .media .media-body > span { + color: #323846; } + .page-main-header .main-header-right .nav-right.right-menu ul li:hover .media .media-body p { + color: #24695c; } + .page-main-header .main-header-right .nav-right.right-menu ul li:hover .media p { + color: #24695c; } + .page-main-header .main-header-right .nav-right.right-menu ul li:hover .btn svg { + stroke: #fff; } + .page-main-header .main-header-right .nav-right .icon-user { + font-size: 16px; } + .page-main-header .main-header-right .nav-right > ul { + display: -webkit-box; + display: -ms-flexbox; + display: flex; + -webkit-box-align: center; + -ms-flex-align: center; + align-items: center; } + .page-main-header .main-header-right .nav-right > ul > li { + position: relative; + padding: 6px 10px; + border-radius: 4px; + margin-right: 20px; } + .page-main-header .main-header-right .nav-right > ul > li .badge { + padding: 4px 8px; } + .page-main-header .main-header-right .nav-right > ul > li span { + letter-spacing: 0.9px; } + .page-main-header .main-header-right .nav-right > ul > li span .fa { + color: #cccccc; } + .page-main-header .main-header-right .nav-right > ul > li span ul { + left: inherit; + right: -10px; + width: 130px; } + .page-main-header .main-header-right .nav-right > ul > li span ul:before, .page-main-header .main-header-right .nav-right > ul > li span ul:after { + left: inherit; + right: 10px; } + .page-main-header .main-header-right .nav-right > ul > li span ul li { + display: block; } + .page-main-header .main-header-right .nav-right > ul > li span ul li a { + font-size: 14px; + color: #2c323f; } + .page-main-header .main-header-right .nav-right > ul > li span ul li a i { + margin-left: 10px; + font-size: 13px; + color: #2c323f; } + .page-main-header .main-header-right .nav-right > ul .flag-icon { + font-size: 16px; } + .page-main-header .main-header-right .nav-right .chat-dropdown { + width: 330px; + top: 49px; + right: 0; + left: unset; } + .page-main-header .main-header-right .nav-right .chat-dropdown li { + padding: 15px; } + .page-main-header .main-header-right .nav-right .chat-dropdown li + li { + border-top: 1px solid #e6edef; } + .page-main-header .main-header-right .nav-right .chat-dropdown li .media img { + width: 40px; + position: relative; } + .page-main-header .main-header-right .nav-right .chat-dropdown li .media .media-body > span { + font-weight: 600; + color: #24695c !important; } + .page-main-header .main-header-right .nav-right .chat-dropdown li .media .media-body p { + margin-bottom: 0; + color: #2c323f !important; } + .page-main-header .main-header-right .nav-right .chat-dropdown li .media > p { + color: #cccccc; } + .page-main-header .main-header-right .nav-right .chat-dropdown:before, .page-main-header .main-header-right .nav-right .chat-dropdown:after { + right: 10px !important; + left: unset !important; } + .page-main-header .main-header-right .nav-right .bookmark-dropdown { + width: 300px; + top: 50px; + left: unset; + right: 0; + border-radius: 8px; + padding: 15px; } + .page-main-header .main-header-right .nav-right .bookmark-dropdown::before, .page-main-header .main-header-right .nav-right .bookmark-dropdown::after { + display: none; } + .page-main-header .main-header-right .nav-right .bookmark-dropdown .form-group .input-group .input-group-prepend .input-group-text { + background-color: transparent; + height: 100%; } + .page-main-header .main-header-right .nav-right .bookmark-dropdown .form-group .input-group .form-control { + border-left: none; + font-size: 13px; } + .page-main-header .main-header-right .nav-right .bookmark-dropdown .form-group .input-group .form-control::-webkit-input-placeholder { + color: #cccccc; + font-size: 13px; } + .page-main-header .main-header-right .nav-right .bookmark-dropdown .form-group .input-group .form-control::-moz-placeholder { + color: #cccccc; + font-size: 13px; } + .page-main-header .main-header-right .nav-right .bookmark-dropdown .form-group .input-group .form-control:-ms-input-placeholder { + color: #cccccc; + font-size: 13px; } + .page-main-header .main-header-right .nav-right .bookmark-dropdown .form-group .input-group .form-control::-ms-input-placeholder { + color: #cccccc; + font-size: 13px; } + .page-main-header .main-header-right .nav-right .bookmark-dropdown .form-group .input-group .form-control::placeholder { + color: #cccccc; + font-size: 13px; } + .page-main-header .main-header-right .nav-right .bookmark-dropdown ul li { + padding-top: 10px; + padding-bottom: 10px; } + .page-main-header .main-header-right .nav-right .bookmark-dropdown ul li:hover { + background-color: #f5f7fb; } + .page-main-header .main-header-right .nav-right .bookmark-dropdown ul li:hover .bookmark-icon { + color: #24695c; } + .page-main-header .main-header-right .nav-right .bookmark-dropdown ul li .bookmark-icon { + margin-right: 15px; + vertical-align: bottom; } + .page-main-header .main-header-right .nav-right .bookmark-dropdown ul li.add-to-bookmark { + font-weight: 500; + -webkit-transition: all 0.5s ease; + transition: all 0.5s ease; } + .page-main-header .main-header-right .nav-right .bookmark-dropdown ul li.add-to-bookmark .pull-right svg { + color: #fa9f44; + -webkit-transition: all 0.5s ease; + transition: all 0.5s ease; } + .page-main-header .main-header-right .nav-right .bookmark-dropdown ul li.add-to-bookmark:hover { + color: #24695c; } + .page-main-header .main-header-right .nav-right .bookmark-dropdown ul li.add-to-bookmark:hover .bookmark-icon { + stroke: #24695c; } + .page-main-header .main-header-right .nav-right .bookmark-dropdown ul li.add-to-bookmark:hover .pull-right svg { + color: #fa9f44; + fill: #fa9f44; } + .page-main-header .main-header-right .nav-right .notification-box { + position: relative; } + .page-main-header .main-header-right .nav-right .notification-box svg { + -webkit-animation: tada 1.5s ease infinite; + animation: tada 1.5s ease infinite; } + .page-main-header .main-header-right .nav-right .notification-box .dot-animated { + position: absolute; + right: -5px; + top: -6px; + width: 6px; + height: 6px; + border-radius: 100%; + content: ''; + background-color: #d22d3d; + -webkit-animation: fadeIn 2s ease infinite; + animation: fadeIn 2s ease infinite; } + .page-main-header .main-header-right .nav-right .notification-dropdown { + top: 52px; + width: 300px; + right: -20px !important; + left: unset; } + .page-main-header .main-header-right .nav-right .notification-dropdown li { + padding: 15px !important; } + .page-main-header .main-header-right .nav-right .notification-dropdown li .badge-primary { + background-color: rgba(36, 105, 92, 0.1); + color: #24695c; } + .page-main-header .main-header-right .nav-right .notification-dropdown li .media .notification-bg { + width: 40px; + height: 40px; + border-radius: 100%; + margin-right: 15px; + 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; } + .page-main-header .main-header-right .nav-right .notification-dropdown li .media .notification-bg.bg-light-primary { + background-color: rgba(36, 105, 92, 0.1); + color: #24695c; } + .page-main-header .main-header-right .nav-right .notification-dropdown li .media .notification-bg.bg-light-secondary { + background-color: rgba(186, 137, 93, 0.1); + color: #ba895d; } + .page-main-header .main-header-right .nav-right .notification-dropdown li .media .notification-bg.bg-light-secondary svg path { + color: #ba895d; } + .page-main-header .main-header-right .nav-right .notification-dropdown li .media .notification-bg.bg-light-success { + background-color: rgba(27, 76, 67, 0.1); + color: #1b4c43; } + .page-main-header .main-header-right .nav-right .notification-dropdown li .media .notification-bg.bg-light-danger { + background-color: rgba(210, 45, 61, 0.1); + color: #d22d3d; } + .page-main-header .main-header-right .nav-right .notification-dropdown li .media .notification-bg.bg-light-danger path { + color: #d22d3d; } + .page-main-header .main-header-right .nav-right .notification-dropdown li .media .media-body p { + font-weight: 700; + margin-bottom: 0; } + .page-main-header .main-header-right .nav-right .notification-dropdown li .media .media-body span { + font-size: 12px; + color: #cccccc; + font-weight: 500; } + .page-main-header .main-header-right .nav-right .notification-dropdown li + li { + border-top: 1px solid #e6edef; } + .page-main-header .main-header-right .nav-right .notification-dropdown li.noti-primary:hover { + background-color: rgba(36, 105, 92, 0.1); } + .page-main-header .main-header-right .nav-right .notification-dropdown li.noti-secondary:hover { + background-color: rgba(186, 137, 93, 0.1); } + .page-main-header .main-header-right .nav-right .notification-dropdown li.noti-secondary:hover .media .media-body p { + color: #ba895d; } + .page-main-header .main-header-right .nav-right .notification-dropdown li.noti-secondary:hover .media .media-body span { + color: #ba895d; } + .page-main-header .main-header-right .nav-right .notification-dropdown li.noti-success:hover { + background-color: rgba(27, 76, 67, 0.1); } + .page-main-header .main-header-right .nav-right .notification-dropdown li.noti-success:hover .media .media-body p { + color: #1b4c43; } + .page-main-header .main-header-right .nav-right .notification-dropdown li.noti-success:hover .media .media-body span { + color: #1b4c43; } + .page-main-header .main-header-right .nav-right .notification-dropdown li.noti-danger:hover { + background-color: rgba(210, 45, 61, 0.1); } + .page-main-header .main-header-right .nav-right .notification-dropdown li.noti-danger:hover .media .media-body p { + color: #d22d3d; } + .page-main-header .main-header-right .nav-right .notification-dropdown li.noti-danger:hover .media .media-body span { + color: #d22d3d; } + .page-main-header .main-header-right .nav-right .notification-dropdown li:hover .notification-bg.bg-light-primary { + background-color: #24695c; + color: #fff; } + .page-main-header .main-header-right .nav-right .notification-dropdown li:hover .notification-bg.bg-light-secondary { + background-color: #ba895d; + color: #fff; } + .page-main-header .main-header-right .nav-right .notification-dropdown li:hover .notification-bg.bg-light-secondary svg path { + color: #fff; } + .page-main-header .main-header-right .nav-right .notification-dropdown li:hover .notification-bg.bg-light-success { + background-color: #1b4c43; + color: #fff; } + .page-main-header .main-header-right .nav-right .notification-dropdown li:hover .notification-bg.bg-light-success svg { + color: #fff; } + .page-main-header .main-header-right .nav-right .notification-dropdown li:hover .notification-bg.bg-light-success svg path { + color: #fff; } + .page-main-header .main-header-right .nav-right .notification-dropdown li:hover .notification-bg.bg-light-danger { + background-color: #d22d3d; + color: #fff; } + .page-main-header .main-header-right .nav-right .notification-dropdown li:hover .notification-bg.bg-light-danger path { + color: #fff; } + .page-main-header .main-header-right .nav-right .notification-dropdown:before, .page-main-header .main-header-right .nav-right .notification-dropdown:after { + right: 28px !important; + left: unset !important; } + .page-main-header .main-header-right li { + display: inline-block; + position: relative; } + +.onhover-dropdown { + cursor: pointer; + position: relative; } + +.onhover-show-div { + top: 80px; + position: absolute; + z-index: 8; + background-color: #fff; + border: 1px solid #f5f7fb; + -webkit-transition: all linear 0.3s; + transition: all linear 0.3s; } + .onhover-show-div li a svg { + margin-top: 0 !important; } + .onhover-show-div li a svg path, .onhover-show-div li a svg line { + color: #242934 !important; } + +/**======Main Header css Ends ======**/ +/** ===== Vertical Menu css Start=====**/ +.vertical-menu-main { + background: white; + position: fixed; + top: 88px; + z-index: 1; + width: 100%; } + +.vertical-menu-mt { + margin-top: 148px !important; + margin-left: 0 !important; } + .vertical-menu-mt .custom-card .card-header img { + margin-top: -146px !important; } + +.vertical-menu-main #main-nav #main-menu li a svg { + width: 15px; + height: 15px; + margin-right: 8px; + stroke-width: 2.5; } + +.vertical-menu-main .mega-menu { + width: 1500px !important; + max-width: 1500px !important; + padding: 0; + left: -120px !important; + top: 65px !important; } + +/** ===== Vertical Menu css Ends=====**/ +/*=======Mega menu css start=======*/ +.mega-menu { + -webkit-perspective: inherit; + perspective: inherit; + position: static !important; + padding-top: 5px; } + .mega-menu .default-according .card .btn-link { + font-weight: 500; + color: gray; } + .mega-menu .default-according .card .card-body { + font-size: 12px; } + .mega-menu .onhover-show-div { + width: 1500px; } + .mega-menu .card-body { + padding: 20px; } + .mega-menu .title { + color: #242934; + font-weight: 600; + border-bottom: 1px solid #efefef; + padding-bottom: 15px; + margin-bottom: 15px; + text-transform: uppercase; } + .mega-menu div > div a { + margin-bottom: 0px; + display: inline-block; + color: rgba(36, 41, 52, 0.7); } + .mega-menu .custom-nav-img { + position: static; } + .mega-menu .custom-nav-img .desk { + line-height: 25px; + font-size: 14px; + color: rgba(36, 41, 52, 0.7); } + .mega-menu .list-unstyled div a { + padding: 8px 35px 8px 0; + -webkit-transition: 0.5s; + transition: 0.5s; } + .mega-menu .list-unstyled div a:hover { + padding: 8px 35px 8px 10px; + -webkit-transition: 0.5s; + transition: 0.5s; } + .mega-menu .galleria div { + margin-bottom: 5px; } + .mega-menu .galleria div:hover { + -webkit-transform: translateY(4px) scale(1.04); + transform: translateY(4px) scale(1.04); } + .mega-menu .galleria-list .galleria > div { + width: 25%; + font-size: 12px; + float: left; + color: #000; + -webkit-transition: ease-in 0.3s; + transition: ease-in 0.3s; } + .mega-menu .galleria-list .galleria > div > a { + display: block; + margin: 5px 0 10px; + padding: 0 0 !important; } + .mega-menu .galleria-list .galleria > div img { + border-radius: 3px; + max-width: 100%; } + .mega-menu .galleria-list .galleria > div .username { + font-size: 12px; + color: #242934; + margin-bottom: 5px; } + .mega-menu .galleria-list .galleria > div .username small { + display: block; + font-size: 11px; + color: rgba(36, 41, 52, 0.7); + margin-top: 3px; } + .mega-menu .drilldown { + overflow: hidden; + width: 100%; + padding: 0; + -webkit-transform: translate3d(0, 0, 0); + transform: translate3d(0, 0, 0); } + .mega-menu .drilldown a { + width: 100%; } + .mega-menu .drilldown a:hover { + background-color: transparent; + color: #24695c; } + .mega-menu .drilldown-sub { + display: none; } + .mega-menu .drilldown-back { + font-weight: bold; } + +/*=======Mega menu css end=======*/ +@media only screen and (max-width: 1366px) { + .profile-dropdown.onhover-show-div { + left: 0; + right: unset !important; } + .profile-dropdown.onhover-show-div:before, .profile-dropdown.onhover-show-div:after { + right: 10px !important; + left: unset !important; } } + +@media only screen and (max-width: 1199px) { + .page-main-header .main-header-right .nav-right > ul > li { + padding: 6px; + margin-right: 15px; } } + +@media only screen and (max-width: 991px) { + .page-main-header .main-header-right .nav-right .notification-dropdown { + top: 46px; } } + +/**===================== + 05. Header CSS Ends +==========================**/ +/**===================== + 78. Sidebar CSS Start +==========================**/ +.page-wrapper.compact-wrapper .page-body-wrapper header.main-nav .main-navbar .nav-menu > li .nav-submenu li a:after, .page-wrapper.compact-wrapper .page-body-wrapper header.main-nav .main-navbar .nav-menu > li .mega-menu-container .mega-box .link-section .submenu-title h5:after { + position: absolute; + content: ""; + top: 30%; + font-family: FontAwesome; + font-size: 11px; + color: #cccccc; } + +.page-wrapper.horizontal-wrapper .page-body-wrapper.horizontal-menu header.main-nav .main-navbar .nav-menu > li .nav-submenu li a:after { + position: absolute; + content: ""; + top: 49%; + width: 5px; + height: 1px; + border-radius: 100%; + background-color: #59667a; } + +.page-wrapper { + position: relative; } + .page-wrapper.horizontal-wrapper .page-body-wrapper.horizontal-menu header.main-nav { + z-index: 3; + height: 54px; + line-height: inherit; + position: fixed; + width: 100%; + top: 77px; + background: #fff; + border-top: 1px solid #e6edef; + border-bottom: 1px solid #e6edef; } + .page-wrapper.horizontal-wrapper .page-body-wrapper.horizontal-menu header.main-nav .sidebar-user { + display: none; } + .page-wrapper.horizontal-wrapper .page-body-wrapper.horizontal-menu header.main-nav .logo-wrapper, .page-wrapper.horizontal-wrapper .page-body-wrapper.horizontal-menu header.main-nav .logo-icon-wrapper { + display: none; } + .page-wrapper.horizontal-wrapper .page-body-wrapper.horizontal-menu header.main-nav .main-navbar { + text-align: left; + position: relative; } + .page-wrapper.horizontal-wrapper .page-body-wrapper.horizontal-menu header.main-nav .main-navbar #mainnav { + width: 1920px; + position: fixed; + left: 0; } + .page-wrapper.horizontal-wrapper .page-body-wrapper.horizontal-menu header.main-nav .main-navbar .left-arrow, .page-wrapper.horizontal-wrapper .page-body-wrapper.horizontal-menu header.main-nav .main-navbar .right-arrow { + position: absolute; + top: 0px; + padding: 14px; + background-color: #fff; + 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; + z-index: 1; } + .page-wrapper.horizontal-wrapper .page-body-wrapper.horizontal-menu header.main-nav .main-navbar .left-arrow.disabled, .page-wrapper.horizontal-wrapper .page-body-wrapper.horizontal-menu header.main-nav .main-navbar .right-arrow.disabled { + display: none; } + .page-wrapper.horizontal-wrapper .page-body-wrapper.horizontal-menu header.main-nav .main-navbar .left-arrow { + left: 0; } + .page-wrapper.horizontal-wrapper .page-body-wrapper.horizontal-menu header.main-nav .main-navbar .right-arrow { + right: 0; } + .page-wrapper.horizontal-wrapper .page-body-wrapper.horizontal-menu header.main-nav .main-navbar .nav-menu { + list-style: none; + margin: 0; + padding: 0; + line-height: normal; + direction: ltr; + text-align: left; + display: -webkit-box !important; + padding: 0 5px; + -webkit-transition: all .5s ease; + transition: all .5s ease; + white-space: nowrap; } + .page-wrapper.horizontal-wrapper .page-body-wrapper.horizontal-menu header.main-nav .main-navbar .nav-menu li.dropdown a.active .according-menu i:before { + content: '-'; } + .page-wrapper.horizontal-wrapper .page-body-wrapper.horizontal-menu header.main-nav .main-navbar .nav-menu li.dropdown a.link-nav .according-menu { + display: none; } + .page-wrapper.horizontal-wrapper .page-body-wrapper.horizontal-menu header.main-nav .main-navbar .nav-menu li.dropdown ul.nav-submenu li a.active { + color: #24695c; } + .page-wrapper.horizontal-wrapper .page-body-wrapper.horizontal-menu header.main-nav .main-navbar .nav-menu li.dropdown ul.nav-submenu li a.active:after { + background-color: #24695c; } + .page-wrapper.horizontal-wrapper .page-body-wrapper.horizontal-menu header.main-nav .main-navbar .nav-menu .sidebar-main-title { + display: none; } + .page-wrapper.horizontal-wrapper .page-body-wrapper.horizontal-menu header.main-nav .main-navbar .nav-menu > li { + position: relative; + float: left; + display: block; + padding-top: 15px; + padding-bottom: 15px; } + .page-wrapper.horizontal-wrapper .page-body-wrapper.horizontal-menu header.main-nav .main-navbar .nav-menu > li + li { + border-left: 1px solid #e6edef; } + .page-wrapper.horizontal-wrapper .page-body-wrapper.horizontal-menu header.main-nav .main-navbar .nav-menu > li:first-child { + display: none !important; } + .page-wrapper.horizontal-wrapper .page-body-wrapper.horizontal-menu header.main-nav .main-navbar .nav-menu > li > a { + display: block; + color: #242934; + line-height: 23px; + text-decoration: none; + text-transform: capitalize; + padding: 0 18px; + letter-spacing: 0.04em; + position: relative; + border-radius: 4px; + font-weight: 500; } + .page-wrapper.horizontal-wrapper .page-body-wrapper.horizontal-menu header.main-nav .main-navbar .nav-menu > li > a svg { + width: 16px; + vertical-align: bottom; + margin-right: 15px; } + .page-wrapper.horizontal-wrapper .page-body-wrapper.horizontal-menu header.main-nav .main-navbar .nav-menu > li > a .according-menu { + display: none; } + .page-wrapper.horizontal-wrapper .page-body-wrapper.horizontal-menu header.main-nav .main-navbar .nav-menu > li .nav-submenu { + position: absolute; + left: 0; + z-index: 4; + -webkit-box-shadow: 0 0 1px 0 #898989; + box-shadow: 0 0 1px 0 #898989; + padding: 15px 0px 15px 0px; + background: white; } + .page-wrapper.horizontal-wrapper .page-body-wrapper.horizontal-menu header.main-nav .main-navbar .nav-menu > li .nav-submenu li { + border: 0; + float: none; + position: relative; + display: block; } + .page-wrapper.horizontal-wrapper .page-body-wrapper.horizontal-menu header.main-nav .main-navbar .nav-menu > li .nav-submenu li a { + border: 0 !important; + background: transparent; + color: #717171; + border-radius: 0 !important; + text-transform: capitalize; + font-size: 13px; + padding: 6px 25px; + display: block; + letter-spacing: 0.07em; + -webkit-transition: all 0.5s ease; + transition: all 0.5s ease; + position: relative; } + .page-wrapper.horizontal-wrapper .page-body-wrapper.horizontal-menu header.main-nav .main-navbar .nav-menu > li .nav-submenu li a:after { + left: 12px; } + .page-wrapper.horizontal-wrapper .page-body-wrapper.horizontal-menu header.main-nav .main-navbar .nav-menu > li .nav-submenu li .nav-sub-childmenu { + position: absolute; + width: 200px; + right: -200px; + top: 0; + background: #fff; + border: none; + padding: 15px 0px 15px 0px; + -webkit-box-shadow: 0 0 1px 0 #898989; + box-shadow: 0 0 1px 0 #898989; } + .page-wrapper.horizontal-wrapper .page-body-wrapper.horizontal-menu header.main-nav .main-navbar .nav-menu > li .mega-menu-container { + position: absolute; + right: -180%; + z-index: 4; + -webkit-box-shadow: 0 0 1px 0 #898989; + box-shadow: 0 0 1px 0 #898989; + padding: 30px; + background: white; + width: 95%; + border-radius: 4px; } + .page-wrapper.horizontal-wrapper .page-body-wrapper.horizontal-menu header.main-nav .main-navbar .nav-menu > li .mega-menu-container .mega-box { + width: 20%; } + .page-wrapper.horizontal-wrapper .page-body-wrapper.horizontal-menu header.main-nav .main-navbar .nav-menu > li .mega-menu-container .mega-box .link-section .submenu-title h5 { + text-transform: uppercase; + font-size: 14px; + margin-left: -13px; + font-weight: 600; } + .page-wrapper.horizontal-wrapper .page-body-wrapper.horizontal-menu header.main-nav .main-navbar .nav-menu > li .mega-menu-container .mega-box .link-section .submenu-content { + -webkit-box-shadow: none; + box-shadow: none; + background-color: transparent; + position: relative; + display: block; + padding: 0; } + .page-wrapper.horizontal-wrapper .page-body-wrapper.horizontal-menu header.main-nav .main-navbar .nav-menu > li .mega-menu-container .mega-box .link-section .submenu-content ul li { + border: 0; + float: none; + position: relative; + display: block; } + .page-wrapper.horizontal-wrapper .page-body-wrapper.horizontal-menu header.main-nav .main-navbar .nav-menu > li .mega-menu-container .mega-box .link-section .submenu-content ul li a { + border: 0 !important; + background: transparent; + color: #717171; + border-radius: 0 !important; + text-transform: capitalize; + padding: 3px 0; + font-size: 13px; + display: block; + letter-spacing: 0.07em; + line-height: 1.9; + position: relative; } + .page-wrapper.horizontal-wrapper .page-body-wrapper.horizontal-menu header.main-nav .main-navbar .nav-menu > li .mega-menu-container .mega-box .link-section .submenu-content ul li a:after { + position: absolute; + content: ""; + left: -12px; + top: 50%; + width: 5px; + height: 1px; + background-color: #59667a; } + .page-wrapper.horizontal-wrapper .page-body-wrapper.horizontal-menu header.main-nav .main-navbar .nav-menu > li:hover > a:after { + left: 0; + right: 0; + opacity: 1; } + .page-wrapper.horizontal-wrapper .page-body-wrapper.horizontal-menu header.main-nav .main-navbar .nav-menu > li.mega-menu { + position: unset; } + .page-wrapper.horizontal-wrapper .page-body-wrapper.horizontal-menu header.main-nav.white-active .main-navbar .nav-menu > li .nav-link.active { + background-color: white; + color: #ba895d; } + .page-wrapper.horizontal-wrapper .page-body-wrapper.horizontal-menu header.main-nav.overlay-white { + background-color: rgba(255, 255, 255, 0.08); } + .page-wrapper.horizontal-wrapper .page-body-wrapper.horizontal-menu .toggle-nav { + position: relative; + display: -webkit-box; + display: -ms-flexbox; + display: flex; + -webkit-box-align: center; + -ms-flex-align: center; + align-items: center; + cursor: pointer; } + .page-wrapper.horizontal-wrapper .page-body-wrapper.horizontal-menu .toggle-nav i { + font-size: 24px; } + .page-wrapper.horizontal-wrapper .page-body-wrapper.horizontal-menu .mega-box .link-section .demo ul li a { + position: relative; } + .page-wrapper.horizontal-wrapper .page-body-wrapper.horizontal-menu .mega-box .link-section .demo ul li a:hover, .page-wrapper.horizontal-wrapper .page-body-wrapper.horizontal-menu .mega-box .link-section .demo ul li a:focus { + padding-top: 3px; + padding-bottom: 3px; } + .page-wrapper.horizontal-wrapper .page-body-wrapper.horizontal-menu .mega-box .link-section .demo .new { + position: absolute; + top: -8px; + right: 0px; + color: white; + background-color: #24695c; + padding: 2px 7px; + text-transform: uppercase; + font-size: 9px; + line-height: 1.3; } + .page-wrapper.horizontal-wrapper .page-body-wrapper.horizontal-menu .mega-box .link-section .demo .title { + border-bottom: 2px solid red !important; } + .page-wrapper.horizontal-wrapper .page-body-wrapper .page-body { + min-height: calc(100vh - 130px); + margin-top: 130px; + padding-top: 30px; } + .page-wrapper.horizontal-wrapper .page-main-header { + -webkit-box-shadow: none; + box-shadow: none; } + .page-wrapper.horizontal-wrapper .page-main-header .main-header-right .form-control-plaintext { + width: auto !important; } + .page-wrapper.horizontal-wrapper .page-main-header .main-header-right .toggle-sidebar { + display: none; } + .page-wrapper.compact-wrapper .page-main-header.close_icon { + margin-left: 0; + width: calc(100% - 0px); } + .page-wrapper.compact-wrapper .page-body-wrapper header.main-nav { + position: fixed; + border-bottom: none; + top: 83px; + z-index: 8; + height: 100%; + line-height: inherit; + background: #fff; + border-right: 1px solid #e6edef; + width: 290px; + text-align: left; + -webkit-transition: 0.3s ease; + transition: 0.3s ease; } + .page-wrapper.compact-wrapper .page-body-wrapper header.main-nav .sidebar-main-title > div { + white-space: nowrap; + overflow: hidden; + text-overflow: ellipsis; + padding-bottom: 10px; + margin-top: 15px; + margin-bottom: 15px; + border-bottom: 1px solid #e6edef; } + .page-wrapper.compact-wrapper .page-body-wrapper header.main-nav .sidebar-main-title > div h6 { + color: #24695c; + font-size: 18px; + margin-bottom: 0; } + .page-wrapper.compact-wrapper .page-body-wrapper header.main-nav .sidebar-main-title > div p { + color: #242934; + margin-bottom: 0; } + .page-wrapper.compact-wrapper .page-body-wrapper header.main-nav .sidebar-user { + padding: 30px; + position: relative; + border-bottom: 1px solid #e6edef; + margin-bottom: 20px; } + .page-wrapper.compact-wrapper .page-body-wrapper header.main-nav .sidebar-user img { + border: 10px solid rgba(36, 105, 92, 0.2); } + .page-wrapper.compact-wrapper .page-body-wrapper header.main-nav .sidebar-user .setting-primary { + position: absolute; + top: 30px; + right: 35px; } + .page-wrapper.compact-wrapper .page-body-wrapper header.main-nav .sidebar-user h6 { + margin-bottom: 0; } + .page-wrapper.compact-wrapper .page-body-wrapper header.main-nav .sidebar-user p { + color: #999; + font-family: "Roboto", sans-serif; + font-size: 13px; } + .page-wrapper.compact-wrapper .page-body-wrapper header.main-nav .sidebar-user .badge-bottom { + position: absolute; + left: 0; + right: 0; + margin: 0 auto; + top: 95px; } + .page-wrapper.compact-wrapper .page-body-wrapper header.main-nav .sidebar-user .badge-bottom .badge { + padding: 4px 6px 3px; + -webkit-box-shadow: 0px 7px 10px rgba(36, 105, 92, 0.3); + box-shadow: 0px 7px 10px rgba(36, 105, 92, 0.3); + font-family: "Roboto", sans-serif; } + .page-wrapper.compact-wrapper .page-body-wrapper header.main-nav .sidebar-user ul { + display: -webkit-box; + display: -ms-flexbox; + display: flex; + -ms-flex-pack: distribute; + justify-content: space-around; + margin-top: 20px; } + .page-wrapper.compact-wrapper .page-body-wrapper header.main-nav .sidebar-user ul li { + position: relative; } + .page-wrapper.compact-wrapper .page-body-wrapper header.main-nav .sidebar-user ul li + li::before { + position: absolute; + content: ''; + left: -14px; + top: 15px; + width: 2px; + height: 15px; + background-color: #e6edef; } + .page-wrapper.compact-wrapper .page-body-wrapper header.main-nav .sidebar-user ul li span { + font-weight: 600; } + .page-wrapper.compact-wrapper .page-body-wrapper header.main-nav .sidebar-user ul li p { + font-size: 12px; + margin-bottom: -5px; } + .page-wrapper.compact-wrapper .page-body-wrapper header.main-nav.close_icon { + margin-left: 0; + opacity: 0; + visibility: hidden; } + .page-wrapper.compact-wrapper .page-body-wrapper header.main-nav.close_icon ~ .page-body { + margin-left: 0px; + -webkit-transition: 0.5s; + transition: 0.5s; } + .page-wrapper.compact-wrapper .page-body-wrapper header.main-nav.close_icon ~ footer { + margin-left: 78px; + -webkit-transition: 0.5s; + transition: 0.5s; } + .page-wrapper.compact-wrapper .page-body-wrapper header.main-nav .main-navbar .left-arrow, .page-wrapper.compact-wrapper .page-body-wrapper header.main-nav .main-navbar .right-arrow { + display: none; } + .page-wrapper.compact-wrapper .page-body-wrapper header.main-nav .main-navbar .nav-menu { + border-radius: 0; + height: calc(100vh - 355px); + left: -300px; + z-index: 99; + -webkit-transition: color 1s ease; + transition: color 1s ease; + overflow: hidden; + overflow-y: auto; + color: rgba(0, 0, 0, 0); + padding-bottom: 15px; } + .page-wrapper.compact-wrapper .page-body-wrapper header.main-nav .main-navbar .nav-menu.custom-scrollbar::-webkit-scrollbar-track { + -webkit-box-shadow: inset 0 0 6px transparent; } + .page-wrapper.compact-wrapper .page-body-wrapper header.main-nav .main-navbar .nav-menu.custom-scrollbar::-webkit-scrollbar-thumb, .page-wrapper.compact-wrapper .page-body-wrapper header.main-nav .main-navbar .nav-menu.custom-scrollbar::-webkit-scrollbar { + width: 6px; + border-radius: 13px; } + .page-wrapper.compact-wrapper .page-body-wrapper header.main-nav .main-navbar .nav-menu.custom-scrollbar::-webkit-scrollbar-thumb { + -webkit-box-shadow: inset 0 0 0 10px; + box-shadow: inset 0 0 0 10px; + background-color: #f5f7fb; } + .page-wrapper.compact-wrapper .page-body-wrapper header.main-nav .main-navbar .nav-menu:hover.custom-scrollbar { + color: rgba(36, 105, 92, 0.2); } + .page-wrapper.compact-wrapper .page-body-wrapper header.main-nav .main-navbar .nav-menu .dropdown ul.nav-submenu li a.active { + color: #24695c; } + .page-wrapper.compact-wrapper .page-body-wrapper header.main-nav .main-navbar .nav-menu .dropdown ul.nav-submenu li a.active:after { + color: #24695c; } + .page-wrapper.compact-wrapper .page-body-wrapper header.main-nav .main-navbar .nav-menu .dropdown ul.nav-submenu li:hover a { + color: #24695c; } + .page-wrapper.compact-wrapper .page-body-wrapper header.main-nav .main-navbar .nav-menu li a { + font-weight: 600; } + .page-wrapper.compact-wrapper .page-body-wrapper header.main-nav .main-navbar .nav-menu li a.link-nav .according-menu { + display: none; } + .page-wrapper.compact-wrapper .page-body-wrapper header.main-nav .main-navbar .nav-menu li:last-child { + border-bottom: none; } + .page-wrapper.compact-wrapper .page-body-wrapper header.main-nav .main-navbar .nav-menu.opennav { + left: 0; } + .page-wrapper.compact-wrapper .page-body-wrapper header.main-nav .main-navbar .nav-menu .back-btn { + display: block; + width: 100%; + padding: 0; } + .page-wrapper.compact-wrapper .page-body-wrapper header.main-nav .main-navbar .nav-menu .back-btn .mobile-back { + padding: 20px; + color: #2b2b2b; + font-weight: 700; + text-transform: uppercase; + border-bottom: 1px solid #efefef; + cursor: pointer; + display: -webkit-box; + display: -ms-flexbox; + display: flex; + -webkit-box-pack: end; + -ms-flex-pack: end; + justify-content: flex-end; + -webkit-box-align: center; + -ms-flex-align: center; + align-items: center; } + .page-wrapper.compact-wrapper .page-body-wrapper header.main-nav .main-navbar .nav-menu > li { + display: block; + float: none; + width: 100%; + padding: 0 20px; } + .page-wrapper.compact-wrapper .page-body-wrapper header.main-nav .main-navbar .nav-menu > li span { + font-weight: 600; } + .page-wrapper.compact-wrapper .page-body-wrapper header.main-nav .main-navbar .nav-menu > li a { + padding: 10px 15px; + position: relative; + color: #222222; } + .page-wrapper.compact-wrapper .page-body-wrapper header.main-nav .main-navbar .nav-menu > li a svg { + width: 16px; + margin-right: 15px; + vertical-align: bottom; + float: none; + stroke-width: 2.5px; } + .page-wrapper.compact-wrapper .page-body-wrapper header.main-nav .main-navbar .nav-menu > li a .sub-arrow { + right: 20px; + position: absolute; + top: 10px; } + .page-wrapper.compact-wrapper .page-body-wrapper header.main-nav .main-navbar .nav-menu > li a .sub-arrow i { + display: none; } + .page-wrapper.compact-wrapper .page-body-wrapper header.main-nav .main-navbar .nav-menu > li a .sub-arrow:before { + display: none; } + .page-wrapper.compact-wrapper .page-body-wrapper header.main-nav .main-navbar .nav-menu > li:first-child { + display: none !important; } + .page-wrapper.compact-wrapper .page-body-wrapper header.main-nav .main-navbar .nav-menu > li .nav-submenu { + width: 100%; + padding: 0; + position: relative !important; + display: none; } + .page-wrapper.compact-wrapper .page-body-wrapper header.main-nav .main-navbar .nav-menu > li .nav-submenu > li a { + padding-left: 45px !important; + font-weight: 400; } + .page-wrapper.compact-wrapper .page-body-wrapper header.main-nav .main-navbar .nav-menu > li .nav-submenu .submenu-title .according-menu { + top: 8px; } + .page-wrapper.compact-wrapper .page-body-wrapper header.main-nav .main-navbar .nav-menu > li .nav-submenu.opensubmenu { + display: block; } + .page-wrapper.compact-wrapper .page-body-wrapper header.main-nav .main-navbar .nav-menu > li .nav-submenu li .nav-sub-childmenu { + display: none; + position: relative !important; + right: 0; + width: 100%; + padding: 0; } + .page-wrapper.compact-wrapper .page-body-wrapper header.main-nav .main-navbar .nav-menu > li .nav-submenu li .nav-sub-childmenu.opensubchild { + display: block; } + .page-wrapper.compact-wrapper .page-body-wrapper header.main-nav .main-navbar .nav-menu > li .nav-submenu li .nav-sub-childmenu li a { + padding: 6px 45px; + padding-left: 56px !important; } + .page-wrapper.compact-wrapper .page-body-wrapper header.main-nav .main-navbar .nav-menu > li .nav-submenu li .nav-sub-childmenu li a:after { + display: none; } + .page-wrapper.compact-wrapper .page-body-wrapper header.main-nav .main-navbar .nav-menu > li .nav-submenu li a { + padding: 8px 25px; + font-size: 13px; + color: #717171; + display: block; + position: relative; + letter-spacing: 0.07em; } + .page-wrapper.compact-wrapper .page-body-wrapper header.main-nav .main-navbar .nav-menu > li .nav-submenu li a:after { + left: 26px; } + .page-wrapper.compact-wrapper .page-body-wrapper header.main-nav .main-navbar .nav-menu > li .nav-submenu li a:hover { + margin-left: 0; } + .page-wrapper.compact-wrapper .page-body-wrapper header.main-nav .main-navbar .nav-menu > li .mega-menu-container { + display: none; + padding: 0; + position: relative; } + .page-wrapper.compact-wrapper .page-body-wrapper header.main-nav .main-navbar .nav-menu > li .mega-menu-container.opensubmenu { + display: block; } + .page-wrapper.compact-wrapper .page-body-wrapper header.main-nav .main-navbar .nav-menu > li .mega-menu-container .mega-box { + width: 100%; + padding: 0; } + .page-wrapper.compact-wrapper .page-body-wrapper header.main-nav .main-navbar .nav-menu > li .mega-menu-container .mega-box .link-section .submenu-title { + position: relative; } + .page-wrapper.compact-wrapper .page-body-wrapper header.main-nav .main-navbar .nav-menu > li .mega-menu-container .mega-box .link-section .submenu-title h5 { + margin-bottom: 0; + line-height: 1.9; + padding: 6px 25px 6px 45px; + font-size: 13px; + font-weight: 400; + color: #242934; + position: relative; + cursor: pointer; } + .page-wrapper.compact-wrapper .page-body-wrapper header.main-nav .main-navbar .nav-menu > li .mega-menu-container .mega-box .link-section .submenu-title h5:after { + left: 26px; } + .page-wrapper.compact-wrapper .page-body-wrapper header.main-nav .main-navbar .nav-menu > li .mega-menu-container .mega-box .link-section .submenu-title .according-menu { + top: 8px; } + .page-wrapper.compact-wrapper .page-body-wrapper header.main-nav .main-navbar .nav-menu > li .mega-menu-container .mega-box .link-section .submenu-content { + display: none; } + .page-wrapper.compact-wrapper .page-body-wrapper header.main-nav .main-navbar .nav-menu > li .mega-menu-container .mega-box .link-section .submenu-content.opensubmegamenu { + display: block; } + .page-wrapper.compact-wrapper .page-body-wrapper header.main-nav .main-navbar .nav-menu > li .mega-menu-container .mega-box .link-section .submenu-content.opensubmegamenu ul li a { + padding: 6px 25px 6px 50px; + font-size: 13px; + font-weight: 400; + color: #242934; + display: block; } + .page-wrapper.compact-wrapper .page-body-wrapper header.main-nav .main-navbar .nav-menu > li .mega-menu-container .mega-box .link-section .submenu-content.opensubmegamenu ul li a:after { + display: none; } + .page-wrapper.compact-wrapper .page-body-wrapper header.main-nav .main-navbar .nav-menu > li .mega-menu-container .mega-box .link-section .submenu-content ul li a { + line-height: 1.9; } + .page-wrapper.compact-wrapper .page-body-wrapper header.main-nav .main-navbar .nav-menu > li .mega-menu-container .mega-box .link-section .submenu-content ul li a:hover { + margin-left: 0; } + .page-wrapper.compact-wrapper .page-body-wrapper header.main-nav .main-navbar .nav-menu > li .nav-link { + border-radius: 10px; + -webkit-transition: all 0.5s ease; + transition: all 0.5s ease; } + .page-wrapper.compact-wrapper .page-body-wrapper header.main-nav .main-navbar .nav-menu > li .nav-link.active, .page-wrapper.compact-wrapper .page-body-wrapper header.main-nav .main-navbar .nav-menu > li .nav-link:hover { + background-color: #24695c; + color: #d0efe9; + -webkit-transition: all 0.5s ease; + transition: all 0.5s ease; + position: relative; } + .page-wrapper.compact-wrapper .page-body-wrapper header.main-nav .main-navbar .nav-menu > li .nav-link.active .according-menu i, .page-wrapper.compact-wrapper .page-body-wrapper header.main-nav .main-navbar .nav-menu > li .nav-link:hover .according-menu i { + color: #d0efe9; } + .page-wrapper.compact-wrapper .page-body-wrapper header.main-nav .main-navbar .nav-menu > li .nav-link.active svg, .page-wrapper.compact-wrapper .page-body-wrapper header.main-nav .main-navbar .nav-menu > li .nav-link:hover svg { + color: #d0efe9 !important; } + .page-wrapper.compact-wrapper .page-body-wrapper header .menu nav { + margin-left: auto; + margin-right: 30px; } + .page-wrapper.compact-wrapper .page-body-wrapper .mega-box .link-section .demo ul li a span img { + top: 30px; + right: -60px; } + .page-wrapper.compact-wrapper .page-body-wrapper .mega-box.col { + -ms-flex-preferred-size: unset; + flex-basis: unset; } + .page-wrapper.compact-wrapper .page-body-wrapper .according-menu { + position: absolute; + right: 15px; + top: 12px; + display: block; } + .page-wrapper.compact-wrapper .page-body-wrapper .according-menu i { + vertical-align: middle; + color: #000; } + .page-wrapper.compact-wrapper .page-body-wrapper .main-menu.border-section { + border: none; } + .page-wrapper.compact-wrapper .page-body-wrapper .main-menu .menu-left .main-menu-right .toggle-nav { + position: absolute; + z-index: 2; + right: 145px; + top: 6px; } + .page-wrapper.compact-wrapper .page-body-wrapper .main-menu .menu-left .main-menu-right .toggle-nav .sidebar-name { + font-size: 18px; + padding-left: 5px; + text-transform: uppercase; } + .page-wrapper.compact-wrapper .page-body-wrapper .page-body { + padding-top: 30px; + margin-left: 290px; } + .page-wrapper.compact-sidebar.compact-wrapper .page-body-wrapper .according-menu { + display: none !important; } + .page-wrapper.compact-sidebar.compact-wrapper .page-body-wrapper header.main-nav { + width: 150px; } + .page-wrapper.compact-sidebar.compact-wrapper .page-body-wrapper header.main-nav .sidebar-user { + display: none; } + .page-wrapper.compact-sidebar.compact-wrapper .page-body-wrapper header.main-nav .main-navbar .nav-menu { + height: calc(100vh - 80px); + padding-top: 40px; + padding-bottom: 40px; } + .page-wrapper.compact-sidebar.compact-wrapper .page-body-wrapper header.main-nav .main-navbar .nav-menu > li .sidebar-main-title { + display: none; } + .page-wrapper.compact-sidebar.compact-wrapper .page-body-wrapper header.main-nav .main-navbar .nav-menu > li .nav-link { + text-align: center; + padding-left: unset; + padding-right: unset; } + .page-wrapper.compact-sidebar.compact-wrapper .page-body-wrapper header.main-nav .main-navbar .nav-menu > li .nav-link.active { + background-color: transparent; } + .page-wrapper.compact-sidebar.compact-wrapper .page-body-wrapper header.main-nav .main-navbar .nav-menu > li .nav-link.active svg { + color: #24695c !important; } + .page-wrapper.compact-sidebar.compact-wrapper .page-body-wrapper header.main-nav .main-navbar .nav-menu > li .nav-link.active span { + color: #24695c !important; } + .page-wrapper.compact-sidebar.compact-wrapper .page-body-wrapper header.main-nav .main-navbar .nav-menu > li .nav-link svg { + display: block; + width: auto; + height: 50px; + margin-left: auto; + margin-right: auto; + padding: 15px; + border-radius: 5px; } + .page-wrapper.compact-sidebar.compact-wrapper .page-body-wrapper header.main-nav .main-navbar .nav-menu > li .nav-link span { + display: block; + word-wrap: break-word; + margin-top: -5px; } + .page-wrapper.compact-sidebar.compact-wrapper .page-body-wrapper header.main-nav .main-navbar .nav-menu .dropdown .menu-title.active ~ .menu-content { + background-color: #fff; + -webkit-transition: all 0.5s ease-in-out; + transition: all 0.5s ease-in-out; + display: none; + padding-top: 20px; + -webkit-box-shadow: 0 0 20px rgba(25, 124, 207, 0.08); + box-shadow: 0 0 20px rgba(25, 124, 207, 0.08); } + .page-wrapper.compact-sidebar.compact-wrapper .page-body-wrapper header.main-nav .main-navbar .nav-menu .dropdown .menu-content { + position: fixed !important; + top: 75px; + height: calc(100vh - 0px); + overflow: auto; + left: 150px; + width: 230px; + -webkit-transition: all 0.5s ease-in-out; + transition: all 0.5s ease-in-out; } + .page-wrapper.compact-sidebar.compact-wrapper .page-body-wrapper header.main-nav .sidebar-main-title { + display: none !important; } + .page-wrapper.compact-sidebar.compact-wrapper .page-body-wrapper .page-body { + margin-left: 150px; } + .page-wrapper.modern-sidebar { + padding: 30px; + background-color: rgba(36, 105, 92, 0.15); + height: 100vh; + overflow: hidden; } + .page-wrapper.modern-sidebar .page-main-header { + top: 30px; + width: calc(100% - 60px); + border-top-left-radius: 20px; + border-top-right-radius: 20px; + z-index: 2; } + .page-wrapper.modern-sidebar .page-main-header.close_icon { + width: calc(100% - 60px); } + .page-wrapper.modern-sidebar.compact-wrapper .page-body-wrapper { + margin-bottom: auto; + margin-top: auto; + border-top-left-radius: 20px; + border-top-right-radius: 20px; + border-radius: 20px; + padding-top: 75px; } + .page-wrapper.modern-sidebar.compact-wrapper .page-body-wrapper header.main-nav { + top: 113px; + height: calc(100vh - 145px); + overflow: hidden; + border-bottom-left-radius: 20px; + border-bottom-right-radius: 20px; + -webkit-transition: all 0.3s ease; + transition: all 0.3s ease; } + .page-wrapper.modern-sidebar.compact-wrapper .page-body-wrapper header.main-nav.close_icon { + opacity: 0; + visibility: hidden; + -webkit-transform: translate(0); + transform: translate(0); } + .page-wrapper.modern-sidebar.compact-wrapper .page-body-wrapper header.main-nav.close_icon ~ footer { + margin-left: 30px; } + .page-wrapper.modern-sidebar.compact-wrapper .page-body-wrapper header.main-nav .main-navbar .nav-menu { + height: calc(100vh - 430px); } + .page-wrapper.modern-sidebar.compact-wrapper .page-body-wrapper .page-body { + margin-left: 290px; + overflow-y: scroll !important; + min-height: calc(100vh - 185px); + max-height: calc(100vh - 185px); + margin-bottom: auto; + margin-top: auto; + border-top-right-radius: 20px; } + .page-wrapper.modern-sidebar.compact-wrapper .page-body-wrapper .page-body::-webkit-scrollbar { + width: 6px; } + .page-wrapper.modern-sidebar.compact-wrapper .page-body-wrapper .page-body::-webkit-scrollbar-track { + border-top-right-radius: 20px; + border-top-left-radius: 20px; } + .page-wrapper.modern-sidebar.compact-wrapper .page-body-wrapper .page-body::-webkit-scrollbar-thumb { + background-color: rgba(36, 105, 92, 0.2); + border-radius: 13px; + border-top-right-radius: 20px; + border-top-left-radius: 20px; } + .page-wrapper.modern-sidebar.compact-wrapper footer { + position: fixed; + left: 0; + width: calc(100% - 60px); + z-index: 10; + margin-left: 30px; + margin-bottom: 30px; + border-bottom-left-radius: 20px; + border-bottom-right-radius: 20px; } + +.main-navbar ul.nav-pills { + display: -webkit-box !important; + display: -ms-flexbox !important; + display: flex !important; + border-top: 1px solid #e6edef; + border-bottom: 1px solid #e6edef; } + .main-navbar ul.nav-pills .nav-item { + width: 50%; } + .main-navbar ul.nav-pills .nav-item:last-child { + border-left: 1px solid #e6edef; } + .main-navbar ul.nav-pills .nav-item .nav-link { + font-size: 14px; + color: #2b2b2b; + font-weight: 600; + text-align: center; + padding: 15px 0; + cursor: pointer; } + .main-navbar ul.nav-pills .nav-item .nav-link.active { + border-radius: unset; + background-color: rgba(36, 105, 92, 0.1); + color: #24695c; } + +.main-navbar .tab-content { + padding-left: 20px; + padding-right: 20px; } + +.rtl .link-section { + float: right; } + +.rtl .mega-box .link-section .demo ul li a span img { + right: unset; + left: -120px; } + +@media (min-width: 992px) { + .responsive-btn { + display: none; } + .page-wrapper.horizontal-wrapper .page-body-wrapper.horizontal-menu header .main-navbar .nav-menu > li .nav-submenu { + width: 200px; + opacity: 0; + visibility: hidden; + border-radius: 5px; + -webkit-transition: all 0.5s ease; + transition: all 0.5s ease; } + .page-wrapper.horizontal-wrapper .page-body-wrapper.horizontal-menu header .main-navbar .nav-menu > li .nav-submenu a .sub-arrow { + position: absolute; + right: 20px; + top: 5px; + color: #59667a; + font-size: 10px; + -webkit-transition: all 0.5s ease; + transition: all 0.5s ease; } + .page-wrapper.horizontal-wrapper .page-body-wrapper.horizontal-menu header .main-navbar .nav-menu > li .nav-submenu li .nav-sub-childmenu { + display: none; + border-radius: 4px; } + .page-wrapper.horizontal-wrapper .page-body-wrapper.horizontal-menu header .main-navbar .nav-menu > li .nav-submenu li:hover .nav-sub-childmenu { + display: block; } + .page-wrapper.horizontal-wrapper .page-body-wrapper.horizontal-menu header .main-navbar .nav-menu > li .nav-submenu li a:hover .sub-arrow { + right: 16px; + color: #222222; + -webkit-transition: all 0.5s ease; + transition: all 0.5s ease; } + .page-wrapper.horizontal-wrapper .page-body-wrapper.horizontal-menu header .main-navbar .nav-menu > li .mega-menu-container { + opacity: 0; + visibility: hidden; + -webkit-transition: all 0.5s ease; + transition: all 0.5s ease; } + .page-wrapper.horizontal-wrapper .page-body-wrapper.horizontal-menu header .main-navbar .nav-menu > li:hover .nav-submenu { + opacity: 1; + visibility: visible; + margin-top: 20px; + -webkit-transition: all 0.5s ease; + transition: all 0.5s ease; } + .page-wrapper.horizontal-wrapper .page-body-wrapper.horizontal-menu header .main-navbar .nav-menu > li:hover .mega-menu-container { + opacity: 1; + visibility: visible; + margin-top: 20px; + -webkit-transition: all 0.5s ease; + transition: all 0.5s ease; } + .page-wrapper.horizontal-wrapper .page-body-wrapper .toggle-nav { + display: none; } + .page-wrapper.horizontal-wrapper .page-body-wrapper .mobile-back { + display: none !important; } + .rtl .mega .full-mega-menu { + float: left !important; + left: 50% !important; + right: auto !important; } + .rtl .mega .full-mega-menu.center-mega-menu { + margin-right: 0 !important; + margin-left: 0 !important; + left: unset !important; + right: 50% !important; } } + +@media screen and (min-width: 1200px) and (max-width: 1280px) { + .page-wrapper.modern-sidebar .page-main-header .main-header-right .nav-right.right-menu ul { + padding-left: 20px; + padding-right: 20px; } } + +@media screen and (min-width: 1200px) and (max-width: 1660px) { + .page-wrapper.horizontal-wrapper .page-body-wrapper.horizontal-menu header.main-nav .main-navbar .nav-menu > li a svg { + margin-right: 6px; } + .page-wrapper.horizontal-wrapper .page-body-wrapper.horizontal-menu header.main-nav .main-navbar .nav-menu .nav-submenu.submenu-right-xl li .nav-sub-childmenu { + left: -200px; + right: unset; } } + +@media (max-width: 1460px) { + .rtl .pixelstrap .mega .full-mega-menu { + margin-left: 0 !important; + margin-right: 162px !important; } + header .main-navbar .nav-menu > li { + margin-right: 8px; } } + +@media (max-width: 1199px) { + .page-wrapper.compact-wrapper .page-body-wrapper.sidebar-icon header.main-nav.close_icon ~ footer { + margin-left: unset; } + .page-wrapper.modern-sidebar { + padding: unset; + height: auto; } + .page-wrapper.modern-sidebar .page-main-header { + top: 0; + border-radius: unset; + width: 100%; } + .page-wrapper.modern-sidebar .page-main-header.close_icon { + width: 100%; } + .page-wrapper.modern-sidebar.compact-wrapper .page-body-wrapper { + border-radius: unset; + margin-top: unset; + margin-bottom: unset; + padding-top: unset; } + .page-wrapper.modern-sidebar.compact-wrapper .page-body-wrapper header.main-nav { + top: 85px; + height: auto; } + .page-wrapper.modern-sidebar.compact-wrapper .page-body-wrapper header.main-nav .main-navbar .nav-menu { + height: calc(100vh - 355px); } + .page-wrapper.modern-sidebar.compact-wrapper .page-body-wrapper header.main-nav.close_icon ~ footer { + width: 100%; + margin-left: unset; } + .page-wrapper.modern-sidebar.compact-wrapper .page-body-wrapper .page-body { + max-height: unset; + max-height: unset; + min-height: calc(100vh - 76px); + margin-top: 76px; } + .page-wrapper.modern-sidebar.compact-wrapper .page-body-wrapper .page-body::-webkit-scrollbar { + display: none; } + .page-wrapper.modern-sidebar.compact-wrapper .page-body-wrapper .page-body::-webkit-scrollbar-track { + display: none; } + .page-wrapper.modern-sidebar.compact-wrapper .page-body-wrapper .page-body::-webkit-scrollbar-thumb { + display: none; } + .page-wrapper.modern-sidebar.compact-wrapper footer { + position: unset; + width: auto; + border-radius: unset; + margin-left: 275px; + margin-bottom: unset; } } + +@media (max-width: 991px) { + .page-wrapper.modern-sidebar.compact-wrapper .page-body-wrapper .page-body { + margin-top: 65px; } } + +@media (max-width: 767px) { + header .menu .brand-logo img { + width: 120px; } } + +@media (max-width: 576px) { + header .menu nav { + margin-right: 20px; } + .toggle-nav i { + font-size: 20px; } } + +/**===================== + 78. Sidebar CSS Ends +==========================**/ +/**===================== + 06. Button CSS start +==========================**/ +.btn { + font-size: 14px; + padding: 0.375rem 1.75rem; + font-weight: 600; } + +.btn-lg { + font-size: 18px; } + +.btn-sm { + font-size: 12px; } + +.btn-xs { + padding: 0.2rem 0.7rem; + font-size: 10px; } + +.large-btn { + margin-bottom: -20px; } + .large-btn .btn { + margin-right: 5px; + margin-bottom: 15px; } + +.btn-air-primary { + -webkit-box-shadow: 0 5px 10px 2px rgba(36, 105, 92, 0.19) !important; + box-shadow: 0 5px 10px 2px rgba(36, 105, 92, 0.19) !important; } + .btn-air-primary:hover, .btn-air-primary:active, .btn-air-primary:not([disabled]):not(.disabled):active { + background-color: #17433b; + border-color: #17433b; } + +.btn-air-secondary { + -webkit-box-shadow: 0 5px 10px 2px rgba(36, 105, 92, 0.19) !important; + box-shadow: 0 5px 10px 2px rgba(36, 105, 92, 0.19) !important; } + .btn-air-secondary:hover, .btn-air-secondary:active, .btn-air-secondary:not([disabled]):not(.disabled):active { + background-color: #a07044; + border-color: #a07044; } + +.btn-air-success { + -webkit-box-shadow: 0 5px 10px 2px rgba(36, 105, 92, 0.19) !important; + box-shadow: 0 5px 10px 2px rgba(36, 105, 92, 0.19) !important; } + .btn-air-success:hover, .btn-air-success:active, .btn-air-success:not([disabled]):not(.disabled):active { + background-color: #0e2622; + border-color: #0e2622; } + +.btn-air-danger { + -webkit-box-shadow: 0 5px 10px 2px rgba(36, 105, 92, 0.19) !important; + box-shadow: 0 5px 10px 2px rgba(36, 105, 92, 0.19) !important; } + .btn-air-danger:hover, .btn-air-danger:active, .btn-air-danger:not([disabled]):not(.disabled):active { + background-color: #a82431; + border-color: #a82431; } + +.btn-air-info { + -webkit-box-shadow: 0 5px 10px 2px rgba(36, 105, 92, 0.19) !important; + box-shadow: 0 5px 10px 2px rgba(36, 105, 92, 0.19) !important; } + .btn-air-info:hover, .btn-air-info:active, .btn-air-info:not([disabled]):not(.disabled):active { + background-color: #585858; + border-color: #585858; } + +.btn-air-light { + -webkit-box-shadow: 0 5px 10px 2px rgba(36, 105, 92, 0.19) !important; + box-shadow: 0 5px 10px 2px rgba(36, 105, 92, 0.19) !important; } + .btn-air-light:hover, .btn-air-light:active, .btn-air-light:not([disabled]):not(.disabled):active { + background-color: #c7d7db; + border-color: #c7d7db; } + +.btn-air-dark { + -webkit-box-shadow: 0 5px 10px 2px rgba(36, 105, 92, 0.19) !important; + box-shadow: 0 5px 10px 2px rgba(36, 105, 92, 0.19) !important; } + .btn-air-dark:hover, .btn-air-dark:active, .btn-air-dark:not([disabled]):not(.disabled):active { + background-color: #171a21; + border-color: #171a21; } + +.btn-air-warning { + -webkit-box-shadow: 0 5px 10px 2px rgba(36, 105, 92, 0.19) !important; + box-shadow: 0 5px 10px 2px rgba(36, 105, 92, 0.19) !important; } + .btn-air-warning:hover, .btn-air-warning:active, .btn-air-warning:not([disabled]):not(.disabled):active { + background-color: #c8ac1d; + border-color: #c8ac1d; } + +.btn-info { + color: #fff; } + +.input-air-primary { + -webkit-box-shadow: 0 3px 5px 1px rgba(88, 103, 221, 0.15) !important; + box-shadow: 0 3px 5px 1px rgba(88, 103, 221, 0.15) !important; } + .input-air-primary:focus { + border-color: #24695c; } + +.input-air-secondary { + -webkit-box-shadow: 0 3px 5px 1px rgba(88, 103, 221, 0.15) !important; + box-shadow: 0 3px 5px 1px rgba(88, 103, 221, 0.15) !important; } + .input-air-secondary:focus { + border-color: #ba895d; } + +.input-air-success { + -webkit-box-shadow: 0 3px 5px 1px rgba(88, 103, 221, 0.15) !important; + box-shadow: 0 3px 5px 1px rgba(88, 103, 221, 0.15) !important; } + .input-air-success:focus { + border-color: #1b4c43; } + +.input-air-danger { + -webkit-box-shadow: 0 3px 5px 1px rgba(88, 103, 221, 0.15) !important; + box-shadow: 0 3px 5px 1px rgba(88, 103, 221, 0.15) !important; } + .input-air-danger:focus { + border-color: #d22d3d; } + +.input-air-info { + -webkit-box-shadow: 0 3px 5px 1px rgba(88, 103, 221, 0.15) !important; + box-shadow: 0 3px 5px 1px rgba(88, 103, 221, 0.15) !important; } + .input-air-info:focus { + border-color: #717171; } + +.input-air-light { + -webkit-box-shadow: 0 3px 5px 1px rgba(88, 103, 221, 0.15) !important; + box-shadow: 0 3px 5px 1px rgba(88, 103, 221, 0.15) !important; } + .input-air-light:focus { + border-color: #e6edef; } + +.input-air-dark { + -webkit-box-shadow: 0 3px 5px 1px rgba(88, 103, 221, 0.15) !important; + box-shadow: 0 3px 5px 1px rgba(88, 103, 221, 0.15) !important; } + .input-air-dark:focus { + border-color: #2c323f; } + +.input-air-warning { + -webkit-box-shadow: 0 3px 5px 1px rgba(88, 103, 221, 0.15) !important; + box-shadow: 0 3px 5px 1px rgba(88, 103, 221, 0.15) !important; } + .input-air-warning:focus { + border-color: #e2c636; } + +.form-bg-primary { + background: #24695c; + border-color: #24695c; + color: #fff; } + .form-bg-primary:focus { + border-color: #24695c; + background: #24695c; + color: #fff; } + .form-bg-primary:focus:active { + border-color: #24695c; + background: #24695c; + color: #fff; } + +.form-bg-secondary { + background: #ba895d; + border-color: #ba895d; + color: #fff; } + .form-bg-secondary:focus { + border-color: #ba895d; + background: #ba895d; + color: #fff; } + .form-bg-secondary:focus:active { + border-color: #ba895d; + background: #ba895d; + color: #fff; } + +.form-bg-success { + background: #1b4c43; + border-color: #1b4c43; + color: #fff; } + .form-bg-success:focus { + border-color: #1b4c43; + background: #1b4c43; + color: #fff; } + .form-bg-success:focus:active { + border-color: #1b4c43; + background: #1b4c43; + color: #fff; } + +.form-bg-danger { + background: #d22d3d; + border-color: #d22d3d; + color: #fff; } + .form-bg-danger:focus { + border-color: #d22d3d; + background: #d22d3d; + color: #fff; } + .form-bg-danger:focus:active { + border-color: #d22d3d; + background: #d22d3d; + color: #fff; } + +.form-bg-info { + background: #717171; + border-color: #717171; + color: #fff; } + .form-bg-info:focus { + border-color: #717171; + background: #717171; + color: #fff; } + .form-bg-info:focus:active { + border-color: #717171; + background: #717171; + color: #fff; } + +.form-bg-light { + background: #e6edef; + border-color: #e6edef; + color: #2c323f; } + .form-bg-light:focus { + border-color: #e6edef; + background: #e6edef; + color: #2c323f; } + .form-bg-light:focus:active { + border-color: #e6edef; + background: #e6edef; + color: #2c323f; } + +.form-bg-dark { + background: #2c323f; + border-color: #2c323f; + color: #fff; } + .form-bg-dark:focus { + border-color: #2c323f; + background: #2c323f; + color: #fff; } + .form-bg-dark:focus:active { + border-color: #2c323f; + background: #2c323f; + color: #fff; } + +.form-bg-warning { + background: #e2c636; + border-color: #e2c636; + color: #fff; } + .form-bg-warning:focus { + border-color: #e2c636; + background: #e2c636; + color: #fff; } + .form-bg-warning:focus:active { + border-color: #e2c636; + background: #e2c636; + color: #fff; } + +.btn-warning { + color: #fff; } + .btn-warning:hover, .btn-warning.disabled { + color: #fff; } + +.btn-primary-gradien { + background-image: -webkit-gradient(linear, left top, right top, from(#2e8777), color-stop(51%, #1a4b41), to(#2e8777)); + background-image: linear-gradient(to right, #2e8777 0%, #1a4b41 51%, #2e8777 100%); + border: none; + color: #fff; + background-size: auto 200%; + -webkit-transition: all 0.3s ease; + transition: all 0.3s ease; } + .btn-primary-gradien:hover { + color: #242934 !important; } + .btn-primary-gradien:focus, .btn-primary-gradien:active, .btn-primary-gradien.active { + -webkit-transition: 1.5s; + transition: 1.5s; + background-position: right center; + background-image: -webkit-gradient(linear, left top, right top, from(#2e8777), color-stop(0%), color-stop(#1a4b41), color-stop(100%), to(#fff)) !important; + background-image: linear-gradient(to right, #2e8777, 0%, #1a4b41, 100%, #fff) !important; } + +.btn-secondary-gradien { + background-image: -webkit-gradient(linear, left top, right top, from(#c69e7a), color-stop(51%, #a77547), to(#c69e7a)); + background-image: linear-gradient(to right, #c69e7a 0%, #a77547 51%, #c69e7a 100%); + border: none; + color: #fff; + background-size: auto 200%; + -webkit-transition: all 0.3s ease; + transition: all 0.3s ease; } + .btn-secondary-gradien:hover, .btn-secondary-gradien:focus, .btn-secondary-gradien:active, .btn-secondary-gradien.active, .btn-secondary-gradien.hover { + -webkit-transition: 1.5s; + transition: 1.5s; + background-position: right center; + background-image: -webkit-gradient(linear, left top, right top, from(#c69e7a), color-stop(0%), color-stop(#a77547), color-stop(100%), to(#fff)) !important; + background-image: linear-gradient(to right, #c69e7a, 0%, #a77547, 100%, #fff) !important; } + +.btn-success-gradien { + background-image: -webkit-gradient(linear, left top, right top, from(#266a5e), color-stop(51%, #102e28), to(#266a5e)); + background-image: linear-gradient(to right, #266a5e 0%, #102e28 51%, #266a5e 100%); + border: none; + color: #fff; + background-size: auto 200%; + -webkit-transition: all 0.3s ease; + transition: all 0.3s ease; } + .btn-success-gradien:hover, .btn-success-gradien:focus, .btn-success-gradien:active, .btn-success-gradien.active, .btn-success-gradien.hover { + -webkit-transition: 1.5s; + transition: 1.5s; + background-position: right center; + background-image: -webkit-gradient(linear, left top, right top, from(#266a5e), color-stop(0%), color-stop(#102e28), color-stop(100%), to(#fff)) !important; + background-image: linear-gradient(to right, #266a5e, 0%, #102e28, 100%, #fff) !important; } + +.btn-danger-gradien { + background-image: -webkit-gradient(linear, left top, right top, from(#d94f5c), color-stop(51%, #b02633), to(#d94f5c)); + background-image: linear-gradient(to right, #d94f5c 0%, #b02633 51%, #d94f5c 100%); + border: none; + color: #fff; + background-size: auto 200%; + -webkit-transition: all 0.3s ease; + transition: all 0.3s ease; } + .btn-danger-gradien:hover, .btn-danger-gradien:focus, .btn-danger-gradien:active, .btn-danger-gradien.active, .btn-danger-gradien.hover { + -webkit-transition: 1.5s; + transition: 1.5s; + background-position: right center; + background-image: -webkit-gradient(linear, left top, right top, from(#d94f5c), color-stop(0%), color-stop(#b02633), color-stop(100%), to(#fff)) !important; + background-image: linear-gradient(to right, #d94f5c, 0%, #b02633, 100%, #fff) !important; } + +.btn-warning-gradien { + background-image: -webkit-gradient(linear, left top, right top, from(#e7d05a), color-stop(51%, #d1b41e), to(#e7d05a)); + background-image: linear-gradient(to right, #e7d05a 0%, #d1b41e 51%, #e7d05a 100%); + border: none; + color: #fff; + background-size: auto 200%; + -webkit-transition: all 0.3s ease; + transition: all 0.3s ease; } + .btn-warning-gradien:hover, .btn-warning-gradien:focus, .btn-warning-gradien:active, .btn-warning-gradien.active, .btn-warning-gradien.hover { + -webkit-transition: 1.5s; + transition: 1.5s; + background-position: right center; + background-image: -webkit-gradient(linear, left top, right top, from(#e7d05a), color-stop(0%), color-stop(#d1b41e), color-stop(100%), to(#fff)) !important; + background-image: linear-gradient(to right, #e7d05a, 0%, #d1b41e, 100%, #fff) !important; } + +.btn-info-gradien { + background-image: -webkit-gradient(linear, left top, right top, from(#858585), color-stop(51%, #5d5d5d), to(#858585)); + background-image: linear-gradient(to right, #858585 0%, #5d5d5d 51%, #858585 100%); + border: none; + color: #fff; + background-size: auto 200%; + -webkit-transition: all 0.3s ease; + transition: all 0.3s ease; } + .btn-info-gradien:hover, .btn-info-gradien:focus, .btn-info-gradien:active, .btn-info-gradien.active, .btn-info-gradien.hover { + -webkit-transition: 1.5s; + transition: 1.5s; + background-position: right center; + background-image: -webkit-gradient(linear, left top, right top, from(#858585), color-stop(0%), color-stop(#5d5d5d), color-stop(100%), to(#fff)) !important; + background-image: linear-gradient(to right, #858585, 0%, #5d5d5d, 100%, #fff) !important; } + +.btn-light-gradien { + background-image: -webkit-gradient(linear, left top, right top, from(white), color-stop(51%, #cddbdf), to(white)); + background-image: linear-gradient(to right, white 0%, #cddbdf 51%, white 100%); + border: none; + color: #fff; + background-size: auto 200%; + -webkit-transition: all 0.3s ease; + transition: all 0.3s ease; } + .btn-light-gradien:hover, .btn-light-gradien:focus, .btn-light-gradien:active, .btn-light-gradien.active, .btn-light-gradien.hover { + -webkit-transition: 1.5s; + transition: 1.5s; + background-position: right center; + background-image: -webkit-gradient(linear, left top, right top, from(white), color-stop(0%), color-stop(#cddbdf), color-stop(100%), to(#fff)) !important; + background-image: linear-gradient(to right, white, 0%, #cddbdf, 100%, #fff) !important; } + +.btn-dark-gradien { + background-image: -webkit-gradient(linear, left top, right top, from(#3d4557), color-stop(51%, #1b1f27), to(#3d4557)); + background-image: linear-gradient(to right, #3d4557 0%, #1b1f27 51%, #3d4557 100%); + border: none; + color: #fff; + background-size: auto 200%; + -webkit-transition: all 0.3s ease; + transition: all 0.3s ease; } + .btn-dark-gradien:hover, .btn-dark-gradien:focus, .btn-dark-gradien:active, .btn-dark-gradien.active, .btn-dark-gradien.hover { + -webkit-transition: 1.5s; + transition: 1.5s; + background-position: right center; + background-image: -webkit-gradient(linear, left top, right top, from(#3d4557), color-stop(0%), color-stop(#1b1f27), color-stop(100%), to(#fff)) !important; + background-image: linear-gradient(to right, #3d4557, 0%, #1b1f27, 100%, #fff) !important; } + +[class*='-gradien']:hover { + background-size: 50% 100%; + -webkit-transition: all 0.3s ease; + transition: all 0.3s ease; + color: #fff; } + +.btn-square { + border-radius: 0px; } + +.btn-pill { + border-radius: 60px; } + +.btn-group-pill .btn:first-child { + border-radius: 60px 0 0 60px; } + +.btn-group-pill .btn:last-child { + border-radius: 0 60px 60px 0; } + +.btn-group-square .btn:first-child { + border-radius: 0px 0 0 0px; } + +.btn-group-square .btn:last-child { + border-radius: 0 0px 0px 0; } + +.btn-showcase { + margin-bottom: -10px; } + .btn-showcase .btn { + margin-bottom: 10px; + margin-right: 18px; } + +.btn-dropdown-showcase { + margin-bottom: -10px; } + .btn-dropdown-showcase .dropdown { + margin-bottom: 10px; + margin-right: 18px; } + .btn-dropdown-showcase .btn-group { + margin-bottom: 10px; + margin-right: 18px; } + +.btn-group .radio label::before { + top: 2px; } + +.btn-group .radio label::after { + top: 7px; } + +.btn-group .checkbox label { + margin-top: 3px; } + +.btn-group-showcase > div { + margin-bottom: -20px; } + .btn-group-showcase > div label { + margin-bottom: 0; } + +.btn-group-showcase .btn-group { + margin-right: 20px; + margin-bottom: 20px; } + +.btn-group-showcase .checkbox input[type="checkbox"] { + display: none; } + +.tooltiptext { + visibility: visible; + width: 120px; + background-color: #555; + color: #fff; + text-align: center; + border-radius: 6px; + padding: 5px 0; + position: absolute; + z-index: 1; + bottom: 125%; + left: 50%; + margin-left: -60px; + opacity: 1; + -webkit-transition: opacity 0.3s; + transition: opacity 0.3s; } + .tooltiptext::after { + content: ""; + position: absolute; + top: 100%; + left: 50%; + margin-left: -5px; + border-width: 5px; + border-style: solid; + border-color: #555 transparent transparent transparent; } + +.topright-general, .toprightarrow-primary, .toprightarrow-secondary { + width: 20px; + height: 20px; + border-radius: 50%; + display: inline-grid; + -webkit-box-align: center; + -ms-flex-align: center; + align-items: center; + -webkit-box-pack: center; + -ms-flex-pack: center; + justify-content: center; } + .topright-general:before, .toprightarrow-primary:before, .toprightarrow-secondary:before { + -webkit-transform: rotate(45deg); + transform: rotate(45deg); } + +.toprightarrow-primary { + color: #24695c; + background-color: rgba(36, 105, 92, 0.1); } + +.toprightarrow-secondary { + color: #ba895d; + background-color: rgba(186, 137, 93, 0.1); } + +.btn-arrow { + font-size: 12px; + font-weight: 700; + display: -webkit-box; + display: -ms-flexbox; + display: flex; + -webkit-box-align: center; + -ms-flex-align: center; + align-items: center; + margin-left: auto; + margin-right: auto; + width: -webkit-fit-content; + width: -moz-fit-content; + width: fit-content; + margin-left: auto; + margin-right: auto; } + .btn-arrow.arrow-primary { + color: #24695c; } + .btn-arrow.arrow-secondary { + color: #ba895d; } + +.btn-iconsolid { + border-radius: 5px; + background-color: #24695c; + padding: 8px 12px; } + .btn-iconsolid i { + color: #fff; + font-weight: 700; } + +/**===================== + 06. Button CSS end +==========================**/ +/**===================== + 07. Color CSS Start +==========================**/ +.color-box { + margin-bottom: -10px; } + .color-box button { + margin-bottom: 10px; } + .color-box button + button { + margin-left: 5px; } + +.primary-color ul li:nth-child(13) { + background-color: #266f61; + padding: 10px 15px; + margin-bottom: 10px; } + .primary-color ul li:nth-child(13) span:before { + content: "#266f61"; + display: block; + color: #fff; + text-align: center; } + +.primary-color ul li:last-child { + margin-bottom: 0; } + +.primary-color ul li:nth-child(12) { + background-color: #287466; + padding: 10px 15px; + margin-bottom: 10px; } + .primary-color ul li:nth-child(12) span:before { + content: "#287466"; + display: block; + color: #fff; + text-align: center; } + +.primary-color ul li:last-child { + margin-bottom: 0; } + +.primary-color ul li:nth-child(11) { + background-color: #2a7a6b; + padding: 10px 15px; + margin-bottom: 10px; } + .primary-color ul li:nth-child(11) span:before { + content: "#2a7a6b"; + display: block; + color: #fff; + text-align: center; } + +.primary-color ul li:last-child { + margin-bottom: 0; } + +.primary-color ul li:nth-child(10) { + background-color: #2c8070; + padding: 10px 15px; + margin-bottom: 10px; } + .primary-color ul li:nth-child(10) span:before { + content: "#2c8070"; + display: block; + color: #fff; + text-align: center; } + +.primary-color ul li:last-child { + margin-bottom: 0; } + +.primary-color ul li:nth-child(9) { + background-color: #2e8575; + padding: 10px 15px; + margin-bottom: 10px; } + .primary-color ul li:nth-child(9) span:before { + content: "#2e8575"; + display: block; + color: #fff; + text-align: center; } + +.primary-color ul li:last-child { + margin-bottom: 0; } + +.primary-color ul li:nth-child(8) { + background-color: #308b7a; + padding: 10px 15px; + margin-bottom: 10px; } + .primary-color ul li:nth-child(8) span:before { + content: "#308b7a"; + display: block; + color: #fff; + text-align: center; } + +.primary-color ul li:last-child { + margin-bottom: 0; } + +.primary-color ul li:nth-child(7) { + background-color: #32917f; + padding: 10px 15px; + margin-bottom: 10px; } + .primary-color ul li:nth-child(7) span:before { + content: "#32917f"; + display: block; + color: #fff; + text-align: center; } + +.primary-color ul li:last-child { + margin-bottom: 0; } + +.primary-color ul li:nth-child(6) { + background-color: #349784; + padding: 10px 15px; + margin-bottom: 10px; } + .primary-color ul li:nth-child(6) span:before { + content: "#349784"; + display: block; + color: #fff; + text-align: center; } + +.primary-color ul li:last-child { + margin-bottom: 0; } + +.primary-color ul li:nth-child(5) { + background-color: #369c89; + padding: 10px 15px; + margin-bottom: 10px; } + .primary-color ul li:nth-child(5) span:before { + content: "#369c89"; + display: block; + color: #fff; + text-align: center; } + +.primary-color ul li:last-child { + margin-bottom: 0; } + +.primary-color ul li:nth-child(4) { + background-color: #38a28e; + padding: 10px 15px; + margin-bottom: 10px; } + .primary-color ul li:nth-child(4) span:before { + content: "#38a28e"; + display: block; + color: #fff; + text-align: center; } + +.primary-color ul li:last-child { + margin-bottom: 0; } + +.primary-color ul li:nth-child(3) { + background-color: #39a893; + padding: 10px 15px; + margin-bottom: 10px; } + .primary-color ul li:nth-child(3) span:before { + content: "#39a893"; + display: block; + color: #fff; + text-align: center; } + +.primary-color ul li:last-child { + margin-bottom: 0; } + +.primary-color ul li:nth-child(2) { + background-color: #3bad98; + padding: 10px 15px; + margin-bottom: 10px; } + .primary-color ul li:nth-child(2) span:before { + content: "#3bad98"; + display: block; + color: #fff; + text-align: center; } + +.primary-color ul li:last-child { + margin-bottom: 0; } + +.primary-color ul li:nth-child(1) { + background-color: #3db39d; + padding: 10px 15px; + margin-bottom: 10px; } + .primary-color ul li:nth-child(1) span:before { + content: "#3db39d"; + display: block; + color: #fff; + text-align: center; } + +.primary-color ul li:last-child { + margin-bottom: 0; } + +.secondary-color ul li:nth-child(13) { + background-color: #bf9168; + padding: 10px 15px; + margin-bottom: 10px; } + .secondary-color ul li:nth-child(13) span:before { + content: "#bf9168"; + display: block; + color: #fff; + text-align: center; } + +.secondary-color ul li:last-child { + margin-bottom: 0; } + +.secondary-color ul li:nth-child(12) { + background-color: #c39972; + padding: 10px 15px; + margin-bottom: 10px; } + .secondary-color ul li:nth-child(12) span:before { + content: "#c39972"; + display: block; + color: #fff; + text-align: center; } + +.secondary-color ul li:last-child { + margin-bottom: 0; } + +.secondary-color ul li:nth-child(11) { + background-color: #c8a07d; + padding: 10px 15px; + margin-bottom: 10px; } + .secondary-color ul li:nth-child(11) span:before { + content: "#c8a07d"; + display: block; + color: #fff; + text-align: center; } + +.secondary-color ul li:last-child { + margin-bottom: 0; } + +.secondary-color ul li:nth-child(10) { + background-color: #cca888; + padding: 10px 15px; + margin-bottom: 10px; } + .secondary-color ul li:nth-child(10) span:before { + content: "#cca888"; + display: block; + color: #fff; + text-align: center; } + +.secondary-color ul li:last-child { + margin-bottom: 0; } + +.secondary-color ul li:nth-child(9) { + background-color: #d1b093; + padding: 10px 15px; + margin-bottom: 10px; } + .secondary-color ul li:nth-child(9) span:before { + content: "#d1b093"; + display: block; + color: #fff; + text-align: center; } + +.secondary-color ul li:last-child { + margin-bottom: 0; } + +.secondary-color ul li:nth-child(8) { + background-color: #d5b89d; + padding: 10px 15px; + margin-bottom: 10px; } + .secondary-color ul li:nth-child(8) span:before { + content: "#d5b89d"; + display: block; + color: #fff; + text-align: center; } + +.secondary-color ul li:last-child { + margin-bottom: 0; } + +.secondary-color ul li:nth-child(7) { + background-color: #dac0a8; + padding: 10px 15px; + margin-bottom: 10px; } + .secondary-color ul li:nth-child(7) span:before { + content: "#dac0a8"; + display: block; + color: #fff; + text-align: center; } + +.secondary-color ul li:last-child { + margin-bottom: 0; } + +.secondary-color ul li:nth-child(6) { + background-color: #dfc8b3; + padding: 10px 15px; + margin-bottom: 10px; } + .secondary-color ul li:nth-child(6) span:before { + content: "#dfc8b3"; + display: block; + color: #fff; + text-align: center; } + +.secondary-color ul li:last-child { + margin-bottom: 0; } + +.secondary-color ul li:nth-child(5) { + background-color: #e3cfbe; + padding: 10px 15px; + margin-bottom: 10px; } + .secondary-color ul li:nth-child(5) span:before { + content: "#e3cfbe"; + display: block; + color: #fff; + text-align: center; } + +.secondary-color ul li:last-child { + margin-bottom: 0; } + +.secondary-color ul li:nth-child(4) { + background-color: #e8d7c8; + padding: 10px 15px; + margin-bottom: 10px; } + .secondary-color ul li:nth-child(4) span:before { + content: "#e8d7c8"; + display: block; + color: #fff; + text-align: center; } + +.secondary-color ul li:last-child { + margin-bottom: 0; } + +.secondary-color ul li:nth-child(3) { + background-color: #ecdfd3; + padding: 10px 15px; + margin-bottom: 10px; } + .secondary-color ul li:nth-child(3) span:before { + content: "#ecdfd3"; + display: block; + color: #fff; + text-align: center; } + +.secondary-color ul li:last-child { + margin-bottom: 0; } + +.secondary-color ul li:nth-child(2) { + background-color: #f1e7de; + padding: 10px 15px; + margin-bottom: 10px; } + .secondary-color ul li:nth-child(2) span:before { + content: "#f1e7de"; + display: block; + color: #fff; + text-align: center; } + +.secondary-color ul li:last-child { + margin-bottom: 0; } + +.secondary-color ul li:nth-child(1) { + background-color: #f5efe8; + padding: 10px 15px; + margin-bottom: 10px; } + .secondary-color ul li:nth-child(1) span:before { + content: "#f5efe8"; + display: block; + color: #fff; + text-align: center; } + +.secondary-color ul li:last-child { + margin-bottom: 0; } + +.success-color ul li:nth-child(13) { + background-color: #1c4f46; + padding: 10px 15px; + margin-bottom: 10px; } + .success-color ul li:nth-child(13) span:before { + content: "#1c4f46"; + display: block; + color: #fff; + text-align: center; } + +.success-color ul li:last-child { + margin-bottom: 0; } + +.success-color ul li:nth-child(12) { + background-color: #1d5349; + padding: 10px 15px; + margin-bottom: 10px; } + .success-color ul li:nth-child(12) span:before { + content: "#1d5349"; + display: block; + color: #fff; + text-align: center; } + +.success-color ul li:last-child { + margin-bottom: 0; } + +.success-color ul li:nth-child(11) { + background-color: #1f564c; + padding: 10px 15px; + margin-bottom: 10px; } + .success-color ul li:nth-child(11) span:before { + content: "#1f564c"; + display: block; + color: #fff; + text-align: center; } + +.success-color ul li:last-child { + margin-bottom: 0; } + +.success-color ul li:nth-child(10) { + background-color: #205a4f; + padding: 10px 15px; + margin-bottom: 10px; } + .success-color ul li:nth-child(10) span:before { + content: "#205a4f"; + display: block; + color: #fff; + text-align: center; } + +.success-color ul li:last-child { + margin-bottom: 0; } + +.success-color ul li:nth-child(9) { + background-color: #215d52; + padding: 10px 15px; + margin-bottom: 10px; } + .success-color ul li:nth-child(9) span:before { + content: "#215d52"; + display: block; + color: #fff; + text-align: center; } + +.success-color ul li:last-child { + margin-bottom: 0; } + +.success-color ul li:nth-child(8) { + background-color: #226055; + padding: 10px 15px; + margin-bottom: 10px; } + .success-color ul li:nth-child(8) span:before { + content: "#226055"; + display: block; + color: #fff; + text-align: center; } + +.success-color ul li:last-child { + margin-bottom: 0; } + +.success-color ul li:nth-child(7) { + background-color: #236458; + padding: 10px 15px; + margin-bottom: 10px; } + .success-color ul li:nth-child(7) span:before { + content: "#236458"; + display: block; + color: #fff; + text-align: center; } + +.success-color ul li:last-child { + margin-bottom: 0; } + +.success-color ul li:nth-child(6) { + background-color: #25675b; + padding: 10px 15px; + margin-bottom: 10px; } + .success-color ul li:nth-child(6) span:before { + content: "#25675b"; + display: block; + color: #fff; + text-align: center; } + +.success-color ul li:last-child { + margin-bottom: 0; } + +.success-color ul li:nth-child(5) { + background-color: #266a5e; + padding: 10px 15px; + margin-bottom: 10px; } + .success-color ul li:nth-child(5) span:before { + content: "#266a5e"; + display: block; + color: #fff; + text-align: center; } + +.success-color ul li:last-child { + margin-bottom: 0; } + +.success-color ul li:nth-child(4) { + background-color: #276e61; + padding: 10px 15px; + margin-bottom: 10px; } + .success-color ul li:nth-child(4) span:before { + content: "#276e61"; + display: block; + color: #fff; + text-align: center; } + +.success-color ul li:last-child { + margin-bottom: 0; } + +.success-color ul li:nth-child(3) { + background-color: #287164; + padding: 10px 15px; + margin-bottom: 10px; } + .success-color ul li:nth-child(3) span:before { + content: "#287164"; + display: block; + color: #fff; + text-align: center; } + +.success-color ul li:last-child { + margin-bottom: 0; } + +.success-color ul li:nth-child(2) { + background-color: #297567; + padding: 10px 15px; + margin-bottom: 10px; } + .success-color ul li:nth-child(2) span:before { + content: "#297567"; + display: block; + color: #fff; + text-align: center; } + +.success-color ul li:last-child { + margin-bottom: 0; } + +.success-color ul li:nth-child(1) { + background-color: #2b786a; + padding: 10px 15px; + margin-bottom: 10px; } + .success-color ul li:nth-child(1) span:before { + content: "#2b786a"; + display: block; + color: #fff; + text-align: center; } + +.success-color ul li:last-child { + margin-bottom: 0; } + +.info-color ul li:nth-child(13) { + background-color: #777777; + padding: 10px 15px; + margin-bottom: 10px; } + .info-color ul li:nth-child(13) span:before { + content: "#777777"; + display: block; + color: #fff; + text-align: center; } + +.info-color ul li:last-child { + margin-bottom: 0; } + +.info-color ul li:nth-child(12) { + background-color: #7e7e7e; + padding: 10px 15px; + margin-bottom: 10px; } + .info-color ul li:nth-child(12) span:before { + content: "#7e7e7e"; + display: block; + color: #fff; + text-align: center; } + +.info-color ul li:last-child { + margin-bottom: 0; } + +.info-color ul li:nth-child(11) { + background-color: #848484; + padding: 10px 15px; + margin-bottom: 10px; } + .info-color ul li:nth-child(11) span:before { + content: "#848484"; + display: block; + color: #fff; + text-align: center; } + +.info-color ul li:last-child { + margin-bottom: 0; } + +.info-color ul li:nth-child(10) { + background-color: #8b8b8b; + padding: 10px 15px; + margin-bottom: 10px; } + .info-color ul li:nth-child(10) span:before { + content: "#8b8b8b"; + display: block; + color: #fff; + text-align: center; } + +.info-color ul li:last-child { + margin-bottom: 0; } + +.info-color ul li:nth-child(9) { + background-color: #919191; + padding: 10px 15px; + margin-bottom: 10px; } + .info-color ul li:nth-child(9) span:before { + content: "#919191"; + display: block; + color: #fff; + text-align: center; } + +.info-color ul li:last-child { + margin-bottom: 0; } + +.info-color ul li:nth-child(8) { + background-color: #979797; + padding: 10px 15px; + margin-bottom: 10px; } + .info-color ul li:nth-child(8) span:before { + content: "#979797"; + display: block; + color: #fff; + text-align: center; } + +.info-color ul li:last-child { + margin-bottom: 0; } + +.info-color ul li:nth-child(7) { + background-color: #9e9e9e; + padding: 10px 15px; + margin-bottom: 10px; } + .info-color ul li:nth-child(7) span:before { + content: "#9e9e9e"; + display: block; + color: #fff; + text-align: center; } + +.info-color ul li:last-child { + margin-bottom: 0; } + +.info-color ul li:nth-child(6) { + background-color: #a4a4a4; + padding: 10px 15px; + margin-bottom: 10px; } + .info-color ul li:nth-child(6) span:before { + content: "#a4a4a4"; + display: block; + color: #fff; + text-align: center; } + +.info-color ul li:last-child { + margin-bottom: 0; } + +.info-color ul li:nth-child(5) { + background-color: #aaaaaa; + padding: 10px 15px; + margin-bottom: 10px; } + .info-color ul li:nth-child(5) span:before { + content: "#aaaaaa"; + display: block; + color: #fff; + text-align: center; } + +.info-color ul li:last-child { + margin-bottom: 0; } + +.info-color ul li:nth-child(4) { + background-color: #b1b1b1; + padding: 10px 15px; + margin-bottom: 10px; } + .info-color ul li:nth-child(4) span:before { + content: "#b1b1b1"; + display: block; + color: #fff; + text-align: center; } + +.info-color ul li:last-child { + margin-bottom: 0; } + +.info-color ul li:nth-child(3) { + background-color: #b7b7b7; + padding: 10px 15px; + margin-bottom: 10px; } + .info-color ul li:nth-child(3) span:before { + content: "#b7b7b7"; + display: block; + color: #fff; + text-align: center; } + +.info-color ul li:last-child { + margin-bottom: 0; } + +.info-color ul li:nth-child(2) { + background-color: #bebebe; + padding: 10px 15px; + margin-bottom: 10px; } + .info-color ul li:nth-child(2) span:before { + content: "#bebebe"; + display: block; + color: #fff; + text-align: center; } + +.info-color ul li:last-child { + margin-bottom: 0; } + +.info-color ul li:nth-child(1) { + background-color: #c4c4c4; + padding: 10px 15px; + margin-bottom: 10px; } + .info-color ul li:nth-child(1) span:before { + content: "#c4c4c4"; + display: block; + color: #fff; + text-align: center; } + +.info-color ul li:last-child { + margin-bottom: 0; } + +.yellow-color ul li:nth-child(13) { + background-color: #e4ca43; + padding: 10px 15px; + margin-bottom: 10px; } + .yellow-color ul li:nth-child(13) span:before { + content: "#e4ca43"; + display: block; + color: #fff; + text-align: center; } + +.yellow-color ul li:last-child { + margin-bottom: 0; } + +.yellow-color ul li:nth-child(12) { + background-color: #e6ce51; + padding: 10px 15px; + margin-bottom: 10px; } + .yellow-color ul li:nth-child(12) span:before { + content: "#e6ce51"; + display: block; + color: #fff; + text-align: center; } + +.yellow-color ul li:last-child { + margin-bottom: 0; } + +.yellow-color ul li:nth-child(11) { + background-color: #e8d15e; + padding: 10px 15px; + margin-bottom: 10px; } + .yellow-color ul li:nth-child(11) span:before { + content: "#e8d15e"; + display: block; + color: #fff; + text-align: center; } + +.yellow-color ul li:last-child { + margin-bottom: 0; } + +.yellow-color ul li:nth-child(10) { + background-color: #ead56b; + padding: 10px 15px; + margin-bottom: 10px; } + .yellow-color ul li:nth-child(10) span:before { + content: "#ead56b"; + display: block; + color: #fff; + text-align: center; } + +.yellow-color ul li:last-child { + margin-bottom: 0; } + +.yellow-color ul li:nth-child(9) { + background-color: #ecd979; + padding: 10px 15px; + margin-bottom: 10px; } + .yellow-color ul li:nth-child(9) span:before { + content: "#ecd979"; + display: block; + color: #fff; + text-align: center; } + +.yellow-color ul li:last-child { + margin-bottom: 0; } + +.yellow-color ul li:nth-child(8) { + background-color: #eedd86; + padding: 10px 15px; + margin-bottom: 10px; } + .yellow-color ul li:nth-child(8) span:before { + content: "#eedd86"; + display: block; + color: #fff; + text-align: center; } + +.yellow-color ul li:last-child { + margin-bottom: 0; } + +.yellow-color ul li:nth-child(7) { + background-color: #f0e194; + padding: 10px 15px; + margin-bottom: 10px; } + .yellow-color ul li:nth-child(7) span:before { + content: "#f0e194"; + display: block; + color: #fff; + text-align: center; } + +.yellow-color ul li:last-child { + margin-bottom: 0; } + +.yellow-color ul li:nth-child(6) { + background-color: #f1e4a1; + padding: 10px 15px; + margin-bottom: 10px; } + .yellow-color ul li:nth-child(6) span:before { + content: "#f1e4a1"; + display: block; + color: #fff; + text-align: center; } + +.yellow-color ul li:last-child { + margin-bottom: 0; } + +.yellow-color ul li:nth-child(5) { + background-color: #f3e8ae; + padding: 10px 15px; + margin-bottom: 10px; } + .yellow-color ul li:nth-child(5) span:before { + content: "#f3e8ae"; + display: block; + color: #fff; + text-align: center; } + +.yellow-color ul li:last-child { + margin-bottom: 0; } + +.yellow-color ul li:nth-child(4) { + background-color: #f5ecbc; + padding: 10px 15px; + margin-bottom: 10px; } + .yellow-color ul li:nth-child(4) span:before { + content: "#f5ecbc"; + display: block; + color: #fff; + text-align: center; } + +.yellow-color ul li:last-child { + margin-bottom: 0; } + +.yellow-color ul li:nth-child(3) { + background-color: #f7f0c9; + padding: 10px 15px; + margin-bottom: 10px; } + .yellow-color ul li:nth-child(3) span:before { + content: "#f7f0c9"; + display: block; + color: #fff; + text-align: center; } + +.yellow-color ul li:last-child { + margin-bottom: 0; } + +.yellow-color ul li:nth-child(2) { + background-color: #f9f4d6; + padding: 10px 15px; + margin-bottom: 10px; } + .yellow-color ul li:nth-child(2) span:before { + content: "#f9f4d6"; + display: block; + color: #fff; + text-align: center; } + +.yellow-color ul li:last-child { + margin-bottom: 0; } + +.yellow-color ul li:nth-child(1) { + background-color: #fbf7e4; + padding: 10px 15px; + margin-bottom: 10px; } + .yellow-color ul li:nth-child(1) span:before { + content: "#fbf7e4"; + display: block; + color: #fff; + text-align: center; } + +.yellow-color ul li:last-child { + margin-bottom: 0; } + +.red-color ul li:nth-child(13) { + background-color: #d43545; + padding: 10px 15px; + margin-bottom: 10px; } + .red-color ul li:nth-child(13) span:before { + content: "#d43545"; + display: block; + color: #fff; + text-align: center; } + +.red-color ul li:last-child { + margin-bottom: 0; } + +.red-color ul li:nth-child(12) { + background-color: #d63e4d; + padding: 10px 15px; + margin-bottom: 10px; } + .red-color ul li:nth-child(12) span:before { + content: "#d63e4d"; + display: block; + color: #fff; + text-align: center; } + +.red-color ul li:last-child { + margin-bottom: 0; } + +.red-color ul li:nth-child(11) { + background-color: #d74654; + padding: 10px 15px; + margin-bottom: 10px; } + .red-color ul li:nth-child(11) span:before { + content: "#d74654"; + display: block; + color: #fff; + text-align: center; } + +.red-color ul li:last-child { + margin-bottom: 0; } + +.red-color ul li:nth-child(10) { + background-color: #d94f5c; + padding: 10px 15px; + margin-bottom: 10px; } + .red-color ul li:nth-child(10) span:before { + content: "#d94f5c"; + display: block; + color: #fff; + text-align: center; } + +.red-color ul li:last-child { + margin-bottom: 0; } + +.red-color ul li:nth-child(9) { + background-color: #db5764; + padding: 10px 15px; + margin-bottom: 10px; } + .red-color ul li:nth-child(9) span:before { + content: "#db5764"; + display: block; + color: #fff; + text-align: center; } + +.red-color ul li:last-child { + margin-bottom: 0; } + +.red-color ul li:nth-child(8) { + background-color: #dd5f6c; + padding: 10px 15px; + margin-bottom: 10px; } + .red-color ul li:nth-child(8) span:before { + content: "#dd5f6c"; + display: block; + color: #fff; + text-align: center; } + +.red-color ul li:last-child { + margin-bottom: 0; } + +.red-color ul li:nth-child(7) { + background-color: #df6873; + padding: 10px 15px; + margin-bottom: 10px; } + .red-color ul li:nth-child(7) span:before { + content: "#df6873"; + display: block; + color: #fff; + text-align: center; } + +.red-color ul li:last-child { + margin-bottom: 0; } + +.red-color ul li:nth-child(6) { + background-color: #e0707b; + padding: 10px 15px; + margin-bottom: 10px; } + .red-color ul li:nth-child(6) span:before { + content: "#e0707b"; + display: block; + color: #fff; + text-align: center; } + +.red-color ul li:last-child { + margin-bottom: 0; } + +.red-color ul li:nth-child(5) { + background-color: #e27983; + padding: 10px 15px; + margin-bottom: 10px; } + .red-color ul li:nth-child(5) span:before { + content: "#e27983"; + display: block; + color: #fff; + text-align: center; } + +.red-color ul li:last-child { + margin-bottom: 0; } + +.red-color ul li:nth-child(4) { + background-color: #e4818b; + padding: 10px 15px; + margin-bottom: 10px; } + .red-color ul li:nth-child(4) span:before { + content: "#e4818b"; + display: block; + color: #fff; + text-align: center; } + +.red-color ul li:last-child { + margin-bottom: 0; } + +.red-color ul li:nth-child(3) { + background-color: #e68992; + padding: 10px 15px; + margin-bottom: 10px; } + .red-color ul li:nth-child(3) span:before { + content: "#e68992"; + display: block; + color: #fff; + text-align: center; } + +.red-color ul li:last-child { + margin-bottom: 0; } + +.red-color ul li:nth-child(2) { + background-color: #e8929a; + padding: 10px 15px; + margin-bottom: 10px; } + .red-color ul li:nth-child(2) span:before { + content: "#e8929a"; + display: block; + color: #fff; + text-align: center; } + +.red-color ul li:last-child { + margin-bottom: 0; } + +.red-color ul li:nth-child(1) { + background-color: #e99aa2; + padding: 10px 15px; + margin-bottom: 10px; } + .red-color ul li:nth-child(1) span:before { + content: "#e99aa2"; + display: block; + color: #fff; + text-align: center; } + +.red-color ul li:last-child { + margin-bottom: 0; } + +.pink-color ul li:nth-child(13) { + background-color: #eb2067; + padding: 10px 15px; + margin-bottom: 10px; } + .pink-color ul li:nth-child(13) span:before { + content: "#eb2067"; + display: block; + color: #fff; + text-align: center; } + +.pink-color ul li:last-child { + margin-bottom: 0; } + +.pink-color ul li:nth-child(12) { + background-color: #ec2e70; + padding: 10px 15px; + margin-bottom: 10px; } + .pink-color ul li:nth-child(12) span:before { + content: "#ec2e70"; + display: block; + color: #fff; + text-align: center; } + +.pink-color ul li:last-child { + margin-bottom: 0; } + +.pink-color ul li:nth-child(11) { + background-color: #ed3c7a; + padding: 10px 15px; + margin-bottom: 10px; } + .pink-color ul li:nth-child(11) span:before { + content: "#ed3c7a"; + display: block; + color: #fff; + text-align: center; } + +.pink-color ul li:last-child { + margin-bottom: 0; } + +.pink-color ul li:nth-child(10) { + background-color: #ee4a83; + padding: 10px 15px; + margin-bottom: 10px; } + .pink-color ul li:nth-child(10) span:before { + content: "#ee4a83"; + display: block; + color: #fff; + text-align: center; } + +.pink-color ul li:last-child { + margin-bottom: 0; } + +.pink-color ul li:nth-child(9) { + background-color: #f0588d; + padding: 10px 15px; + margin-bottom: 10px; } + .pink-color ul li:nth-child(9) span:before { + content: "#f0588d"; + display: block; + color: #fff; + text-align: center; } + +.pink-color ul li:last-child { + margin-bottom: 0; } + +.pink-color ul li:nth-child(8) { + background-color: #f16696; + padding: 10px 15px; + margin-bottom: 10px; } + .pink-color ul li:nth-child(8) span:before { + content: "#f16696"; + display: block; + color: #fff; + text-align: center; } + +.pink-color ul li:last-child { + margin-bottom: 0; } + +.pink-color ul li:nth-child(7) { + background-color: #f274a0; + padding: 10px 15px; + margin-bottom: 10px; } + .pink-color ul li:nth-child(7) span:before { + content: "#f274a0"; + display: block; + color: #fff; + text-align: center; } + +.pink-color ul li:last-child { + margin-bottom: 0; } + +.pink-color ul li:nth-child(6) { + background-color: #f482aa; + padding: 10px 15px; + margin-bottom: 10px; } + .pink-color ul li:nth-child(6) span:before { + content: "#f482aa"; + display: block; + color: #fff; + text-align: center; } + +.pink-color ul li:last-child { + margin-bottom: 0; } + +.pink-color ul li:nth-child(5) { + background-color: #f590b3; + padding: 10px 15px; + margin-bottom: 10px; } + .pink-color ul li:nth-child(5) span:before { + content: "#f590b3"; + display: block; + color: #fff; + text-align: center; } + +.pink-color ul li:last-child { + margin-bottom: 0; } + +.pink-color ul li:nth-child(4) { + background-color: #f69ebd; + padding: 10px 15px; + margin-bottom: 10px; } + .pink-color ul li:nth-child(4) span:before { + content: "#f69ebd"; + display: block; + color: #fff; + text-align: center; } + +.pink-color ul li:last-child { + margin-bottom: 0; } + +.pink-color ul li:nth-child(3) { + background-color: #f7acc6; + padding: 10px 15px; + margin-bottom: 10px; } + .pink-color ul li:nth-child(3) span:before { + content: "#f7acc6"; + display: block; + color: #fff; + text-align: center; } + +.pink-color ul li:last-child { + margin-bottom: 0; } + +.pink-color ul li:nth-child(2) { + background-color: #f9bad0; + padding: 10px 15px; + margin-bottom: 10px; } + .pink-color ul li:nth-child(2) span:before { + content: "#f9bad0"; + display: block; + color: #fff; + text-align: center; } + +.pink-color ul li:last-child { + margin-bottom: 0; } + +.pink-color ul li:nth-child(1) { + background-color: #fac8d9; + padding: 10px 15px; + margin-bottom: 10px; } + .pink-color ul li:nth-child(1) span:before { + content: "#fac8d9"; + display: block; + color: #fff; + text-align: center; } + +.pink-color ul li:last-child { + margin-bottom: 0; } + +.gray-color ul li:nth-child(13) { + background-color: #919191; + padding: 10px 15px; + margin-bottom: 10px; } + .gray-color ul li:nth-child(13) span:before { + content: "#919191"; + display: block; + color: #fff; + text-align: center; } + +.gray-color ul li:last-child { + margin-bottom: 0; } + +.gray-color ul li:nth-child(12) { + background-color: #989898; + padding: 10px 15px; + margin-bottom: 10px; } + .gray-color ul li:nth-child(12) span:before { + content: "#989898"; + display: block; + color: #fff; + text-align: center; } + +.gray-color ul li:last-child { + margin-bottom: 0; } + +.gray-color ul li:nth-child(11) { + background-color: #a0a0a0; + padding: 10px 15px; + margin-bottom: 10px; } + .gray-color ul li:nth-child(11) span:before { + content: "#a0a0a0"; + display: block; + color: #fff; + text-align: center; } + +.gray-color ul li:last-child { + margin-bottom: 0; } + +.gray-color ul li:nth-child(10) { + background-color: #a8a8a8; + padding: 10px 15px; + margin-bottom: 10px; } + .gray-color ul li:nth-child(10) span:before { + content: "#a8a8a8"; + display: block; + color: #fff; + text-align: center; } + +.gray-color ul li:last-child { + margin-bottom: 0; } + +.gray-color ul li:nth-child(9) { + background-color: #afafaf; + padding: 10px 15px; + margin-bottom: 10px; } + .gray-color ul li:nth-child(9) span:before { + content: "#afafaf"; + display: block; + color: #fff; + text-align: center; } + +.gray-color ul li:last-child { + margin-bottom: 0; } + +.gray-color ul li:nth-child(8) { + background-color: #b7b7b7; + padding: 10px 15px; + margin-bottom: 10px; } + .gray-color ul li:nth-child(8) span:before { + content: "#b7b7b7"; + display: block; + color: #fff; + text-align: center; } + +.gray-color ul li:last-child { + margin-bottom: 0; } + +.gray-color ul li:nth-child(7) { + background-color: #bfbfbf; + padding: 10px 15px; + margin-bottom: 10px; } + .gray-color ul li:nth-child(7) span:before { + content: "#bfbfbf"; + display: block; + color: #fff; + text-align: center; } + +.gray-color ul li:last-child { + margin-bottom: 0; } + +.gray-color ul li:nth-child(6) { + background-color: #c6c6c6; + padding: 10px 15px; + margin-bottom: 10px; } + .gray-color ul li:nth-child(6) span:before { + content: "#c6c6c6"; + display: block; + color: #fff; + text-align: center; } + +.gray-color ul li:last-child { + margin-bottom: 0; } + +.gray-color ul li:nth-child(5) { + background-color: #cecece; + padding: 10px 15px; + margin-bottom: 10px; } + .gray-color ul li:nth-child(5) span:before { + content: "#cecece"; + display: block; + color: #fff; + text-align: center; } + +.gray-color ul li:last-child { + margin-bottom: 0; } + +.gray-color ul li:nth-child(4) { + background-color: #d6d6d6; + padding: 10px 15px; + margin-bottom: 10px; } + .gray-color ul li:nth-child(4) span:before { + content: "#d6d6d6"; + display: block; + color: #fff; + text-align: center; } + +.gray-color ul li:last-child { + margin-bottom: 0; } + +.gray-color ul li:nth-child(3) { + background-color: #dddddd; + padding: 10px 15px; + margin-bottom: 10px; } + .gray-color ul li:nth-child(3) span:before { + content: "#dddddd"; + display: block; + color: #fff; + text-align: center; } + +.gray-color ul li:last-child { + margin-bottom: 0; } + +.gray-color ul li:nth-child(2) { + background-color: #e5e5e5; + padding: 10px 15px; + margin-bottom: 10px; } + .gray-color ul li:nth-child(2) span:before { + content: "#e5e5e5"; + display: block; + color: #fff; + text-align: center; } + +.gray-color ul li:last-child { + margin-bottom: 0; } + +.gray-color ul li:nth-child(1) { + background-color: #ececec; + padding: 10px 15px; + margin-bottom: 10px; } + .gray-color ul li:nth-child(1) span:before { + content: "#ececec"; + display: block; + color: #fff; + text-align: center; } + +.gray-color ul li:last-child { + margin-bottom: 0; } + +.light-font { + color: rgba(36, 41, 52, 0.7); } + +/**===================== + 07. Color CSS Ends +==========================**/ +/**===================== + 08. GRID CSS Start +==========================**/ +.grid-showcase { + margin-bottom: -10px; } + .grid-showcase span { + display: block; + border: 1px solid #e6edef; + padding: 10px; + margin-bottom: 10px; + text-align: center; + background-color: rgba(36, 105, 92, 0.1); + color: #24695c; + font-weight: 600; } + +.grid-align { + margin-bottom: -30px; } + .grid-align .row { + padding: 15px 0; + min-height: 10rem; + border: 1px solid rgba(36, 105, 92, 0.03); + margin-bottom: 30px; + background-color: rgba(36, 105, 92, 0.03); } + +.grid-wrrapper .table-striped tbody tr:nth-of-type(odd) { + --bs-table-accent-bg:unset; + background-color: rgba(36, 105, 92, 0.1); + color: #24695c; } + .grid-wrrapper .table-striped tbody tr:nth-of-type(odd) th, .grid-wrrapper .table-striped tbody tr:nth-of-type(odd) td { + color: #24695c; } + +/**===================== + 08. GRID CSS Ends +==========================**/ +/**===================== + 09. Error-page CSS Start +==========================**/ +.error-wrapper { + 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; + min-height: 100vh; + text-align: center; } + .error-wrapper.maintenance-bg { + background-image: url(../images/other-images/maintenance-bg.jpg); + background-blend-mode: overlay; } + .error-wrapper .maintenance-icons li i { + color: rgba(36, 105, 92, 0.5); + font-size: 50px; + animation: rotate-effect 40s infinite linear reverse; } + .error-wrapper .maintenance-icons li:nth-child(2) i { + font-size: 100px; + margin-left: 110px; + margin-top: -25px; + animation: rotate-effect 40s linear infinite reverse; } + .error-wrapper .maintenance-icons li:nth-child(3) i { + -webkit-animation: rotate-effect 30s infinite linear; + animation: rotate-effect 30s infinite linear; + font-size: 150px; + margin-top: -85px; + margin-right: 120px; } + .error-wrapper .maintenance-heading { + margin-top: 70px; } + .error-wrapper .maintenance-heading .headline { + font-size: 99px; + font-weight: 900; + letter-spacing: 10px; + color: #ba895d; + z-index: 2; + position: relative; + margin-top: -70px; } + .error-wrapper .error-heading { + margin-top: 115px; } + .error-wrapper .error-heading .headline { + font-size: 285px; + font-weight: 700; + letter-spacing: 1px; + margin-top: -130px; } + .error-wrapper .sub-content { + font-size: 18px; + color: #999; + letter-spacing: 1px; + font-weight: normal; + line-height: 35px; + z-index: 3; + position: relative; + margin-top: 30px; + margin-bottom: 0; + font-weight: 600; } + .error-wrapper .btn { + margin-top: 40px; } + +.error { + margin: 70px 0 100px; + color: #000; } + .error .error-title { + font-size: 9.5rem; + color: #fff; + text-shadow: 6px 6px 7px rgba(0, 0, 0, 0.32); } + .error .line-bottom { + width: 10%; + height: 5px; + background-color: #e2c636; + border: none; } + .error .c-white { + color: #fff; } + .error .error-btn { + text-align: center; } + .error .padd { + padding: 10px 30px 10px 30px; } + .error .btn-back-home { + background-color: #e6edef; + color: #000; } + .error .btn-back-home:hover { + background-color: #e2c636; + color: #fff; + -webkit-box-shadow: 0 20px 35px 0 rgba(0, 0, 0, 0.21); + box-shadow: 0 20px 35px 0 rgba(0, 0, 0, 0.21); } + .error .btn-adnc-serc { + background-color: #2c323f; + color: #fff; } + .error .btn-adnc-serc:hover { + background-color: #e2c636; + color: #fff; + -webkit-box-shadow: 0 20px 35px 0 rgba(0, 0, 0, 0.21); + box-shadow: 0 20px 35px 0 rgba(0, 0, 0, 0.21); } + +.maintenance-sec .error-wrapper .maintenance-heading .headline { + margin-bottom: 0; } + +.maintenance-sec .error-wrapper .sub-content { + margin-top: 15px; } + +/**===================== + 09. Error-page CSS Ends +==========================**/ +@-webkit-keyframes wheel-rotate { + 50% { + -webkit-transform: rotate(360deg); + transform: rotate(360deg); + -webkit-animation-timing-function: cubic-bezier(0.55, 0.085, 0.68, 0.53); + animation-timing-function: cubic-bezier(0.55, 0.085, 0.68, 0.53); } + 100% { + -webkit-transform: rotate(960deg); + transform: rotate(960deg); } } +@keyframes wheel-rotate { + 50% { + -webkit-transform: rotate(360deg); + transform: rotate(360deg); + -webkit-animation-timing-function: cubic-bezier(0.55, 0.085, 0.68, 0.53); + animation-timing-function: cubic-bezier(0.55, 0.085, 0.68, 0.53); } + 100% { + -webkit-transform: rotate(960deg); + transform: rotate(960deg); } } + +@-webkit-keyframes bicycle-run { + 0% { + -webkit-transform: translateX(-1300px); + transform: translateX(-1300px); } + 50% { + -webkit-transform: translateX(0); + transform: translateX(0); + -webkit-animation-timing-function: cubic-bezier(0.47, 0, 0.745, 0.715); + animation-timing-function: cubic-bezier(0.47, 0, 0.745, 0.715); } + 100% { + -webkit-transform: translateX(1300px); + transform: translateX(1300px); } } + +@keyframes bicycle-run { + 0% { + -webkit-transform: translateX(-1300px); + transform: translateX(-1300px); } + 50% { + -webkit-transform: translateX(0); + transform: translateX(0); + -webkit-animation-timing-function: cubic-bezier(0.47, 0, 0.745, 0.715); + animation-timing-function: cubic-bezier(0.47, 0, 0.745, 0.715); } + 100% { + -webkit-transform: translateX(1300px); + transform: translateX(1300px); } } + +@-webkit-keyframes move-1 { + 0% { + -webkit-transform: translateY(-10px); + transform: translateY(-10px); } + 50% { + -webkit-transform: translateX(0); + transform: translateX(0); } + 100% { + -webkit-transform: translateY(-10px); + transform: translateY(-10px); } } + +@keyframes move-1 { + 0% { + -webkit-transform: translateY(-10px); + transform: translateY(-10px); } + 50% { + -webkit-transform: translateX(0); + transform: translateX(0); } + 100% { + -webkit-transform: translateY(-10px); + transform: translateY(-10px); } } + +.error-page1 .danger-color { + fill: #d22d3d; } + +.error-page1 .warning-color { + fill: #e2c636; } + +.error-page1 .primary-color { + fill: #24695c; } + .error-page1 .primary-color.opacity-05 { + fill: rgba(36, 105, 92, 0.5); } + +.error-page1 .secondary-color { + fill: #ba895d; } + .error-page1 .secondary-color.opacity-o6 { + opacity: 0.6; } + .error-page1 .secondary-color.opacity-o4 { + opacity: 0.4; } + .error-page1 .secondary-color.lighten-5 { + fill: #b27c4c; } + +.error-page1 .svg-wrraper { + margin-bottom: 35px; } + .error-page1 .svg-wrraper svg.svg-45 { + width: 45%; } + .error-page1 .svg-wrraper svg.svg-60 { + width: 60%; } + .error-page1 .svg-wrraper svg.svg-40 { + width: 40%; } + +.error-page1 .wheel { + -webkit-animation: wheel-rotate 6s ease infinite; + animation: wheel-rotate 6s ease infinite; + -webkit-transform-origin: center; + transform-origin: center; + transform-box: fill-box; } + +.error-page1 .bicycle { + -webkit-animation: bicycle-run 15s ease infinite; + animation: bicycle-run 15s ease infinite; } + +.error-page1 .circle { + -webkit-animation: circle-anim ease infinite; + animation: circle-anim ease infinite; + -webkit-transform-origin: center; + transform-origin: center; + transform-box: fill-box; + -webkit-perspective: 0; + perspective: 0; } + +.error-page1 .rocket, .error-page1 .jacket-man { + -webkit-animation: move-1 6s linear infinite; + animation: move-1 6s linear infinite; } + +.error-page1 h3 { + font-weight: 700; + text-transform: capitalize; } + +.error-page1 .btn-primary-gradien { + color: #fff; + font-weight: 700; } + +@media (max-width: 767px) { + .error-page1 h3 { + font-size: 22px; } } + +@media (max-width: 575px) { + .error-page1 .svg-wrraper { + margin-bottom: 10px; } + .error-page1 .svg-wrraper svg.svg-40 { + width: 50%; } } + +/**===================== + 10. ICON CSS Start +==========================**/ +.icon-lists h6 { + color: #898989; + font-weight: 400; } + +.icon-lists > div:hover { + background-color: rgba(36, 105, 92, 0.1); + color: #24695c; } + .icon-lists > div:hover i { + color: #24695c; } + +.icon-lists div { + cursor: pointer; + line-height: 60px; + white-space: nowrap; + border-radius: 4px; + display: -webkit-box; + display: -ms-flexbox; + display: flex; + -webkit-box-align: center; + -ms-flex-align: center; + align-items: center; } + .icon-lists div i { + margin: 0 15px 0 10px; + font-size: 24px; } + +.icon-lists.whether-icon svg { + height: 50px; + width: 50px; } + +.icon-lists.feather-icons .media svg { + margin: 0 15px 0 10px; } + +.icon-lists .feather-icon .icon-first h6 { + display: none; } + +.flag-icons, .feather-icons { + margin-bottom: -15px; + margin-top: -15px; } + .flag-icons div, .feather-icons div { + line-height: 1; + word-wrap: break-word; + overflow: auto; } + .flag-icons div .flag-icon, .feather-icons div .flag-icon { + height: 50px; + width: 50px; } + .flag-icons div .media, .feather-icons div .media { + padding-top: 15px; + padding-bottom: 15px; + width: 100%; } + .flag-icons div .media-body h6, .feather-icons div .media-body h6 { + margin-bottom: 0; + font-size: 14px; + max-width: 100%; + text-overflow: ellipsis; + white-space: nowrap; + overflow: hidden; } + .flag-icons div .media-body h5, .feather-icons div .media-body h5 { + background-color: #24695c; + display: inline-block; + padding: 3px 5px; + font-size: 11px; + border-radius: 3px; + margin-right: 5px; + margin-bottom: 5px; + color: #fff; } + +.icon-hover-bottom { + background-color: #fdfeff; + width: 100%; + bottom: 0; + left: 0; + -webkit-box-shadow: 0px 0px 1px 1px #e6edef; + box-shadow: 0px 0px 1px 1px #e6edef; + z-index: 999; } + .icon-hover-bottom .icon-popup { + 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: 100%; + padding: 20px; } + .icon-hover-bottom .icon-popup .close-icon { + position: absolute; + right: 10px; + top: 10px; + font-size: 20px; + color: #cccccc; + cursor: pointer; } + .icon-hover-bottom .icon-popup > div { + display: inline-block; } + .icon-hover-bottom .icon-popup > div .flag-icon { + width: 60px; + height: 60px; } + .icon-hover-bottom .icon-popup .icon-class { + margin: 0 20px; + cursor: pointer; } + .icon-hover-bottom .icon-title { + display: block; + color: #2c323f; + text-transform: uppercase; + font-weight: 500; } + .icon-hover-bottom .form-group input { + min-width: 300px; + background-color: #fff; } + +.fa-fa-icon-show-div, .icons-show-div { + display: none; } + +.icon-first i { + color: #898989; } + +.icon-first h6 { + display: none; } + +@media only screen and (max-width: 480px) { + .flag-icons div .media, .feather-icons div .media { + padding-top: 10px; + padding-bottom: 10px; } } + +/**===================== + 10. ICON CSS Ends +==========================**/ +/**===================== + 11. Form Builder 1 CSS Start +==========================**/ +.form-builder .drag-box { + -webkit-user-select: none; + -moz-user-select: none; + -ms-user-select: none; + user-select: none; } + .form-builder .drag-box fieldset { + border: 1px dotted #e6edef; + min-height: 655px; + padding: 30px; + width: 100%; + overflow: hidden; + margin-top: 30px; + border-radius: 4px; } + +.form-builder .component { + cursor: pointer; } + .form-builder .component label { + padding-top: 8px; } + .form-builder .component .form-group input, .form-builder .component .form-group textarea, .form-builder .component .form-group select { + border-radius: 4px; } + .form-builder .component .form-group .input-group #prependedcheckbox, .form-builder .component .form-group .input-group #prependedtext { + border-top-left-radius: 0; + border-bottom-left-radius: 0; } + .form-builder .component .form-group .input-group #appendedcheckbox { + border-top-right-radius: 0; + border-bottom-right-radius: 0; + border-right-color: transparent; } + .form-builder .component .form-group .input-group #appendedtext, .form-builder .component .form-group .input-group #buttondropdown { + border-top-right-radius: 0; + border-bottom-right-radius: 0; } + .form-builder .component .form-group .input-group #buttondropdown { + margin-right: -1px; } + .form-builder .component .form-group .input-group .input-group-btn button { + border-radius: 4px; + border-top-left-radius: 0; + border-bottom-left-radius: 0; } + .form-builder .component .form-group .input-group .input-group-prepend .btn-right, .form-builder .component .form-group .input-group .input-group-prepend .checkbox-radius { + border-radius: 4px; + border-top-left-radius: 0; + border-bottom-left-radius: 0; } + .form-builder .component .form-group .pl-md-radios { + padding-left: 37px; } + +.form-builder input { + cursor: pointer; } + +.form-builder textarea { + resize: vertical; } + +.form-builder .popover { + z-index: 8; + opacity: 1; + left: -290px !important; + top: 95px !important; } + .form-builder .popover .control-group { + cursor: default; } + .form-builder .popover input { + cursor: pointer; } + +.form-builder .render { + min-height: 500px; + width: 100%; + border-radius: 4px; + background-color: #f5f7fb; + border-color: #e6edef; } + +.form-builder .popover .controls { + margin-left: 0; } + +.form-builder .popover .control-label { + text-align: left; } + +.form-builder .popover form { + width: 100%; } + +.form-builder .popover .fade.left.in { + left: -215px; } + +.form-builder .target:after { + float: left; + content: " "; + height: 77px; + margin-top: 3px; + background: #e6edef; + width: 100%; + border: 1px dashed #e6edef; } + +.drag form { + padding: 10px 5px; + border: 1px dotted #e6edef; + position: absolute; + background: #fff; + -webkit-box-shadow: 0 0 30px #e6edef; + box-shadow: 0 0 30px #e6edef; + overflow: hidden; } + .drag form input { + border-radius: 5px; } + +.form-builder-header-1 { + background-color: #e6edef; + padding: 15px; + border-radius: 5px; + min-height: 67px; } + .form-builder-header-1 h6 { + margin-bottom: 0; + margin-top: 10px; + line-height: 2.2; } + +.form-builder .help-block { + font-size: 12px; } + +.form-builder input { + border-radius: 4px !important; } + +.form-builder .form-group .col-md-12 { + padding: 0; } + +.form-builder .popover { + width: 300px; } + +.form-builder .popover-header { + background-color: #24695c; + padding: 15px; } + +.form-builder .popover-body { + padding: 15px; } + .form-builder .popover-body .form-group.row { + padding: 0 15px; } + .form-builder .popover-body .form-group.row .col-lg-12 { + padding: 0; } + +.dropdown-menu { + background-color: #f5f7fb; } + +/**===================== + 11. Form Builder 1 CSS Ends +==========================**/ +/**===================== + 12. Form Builder 2 CSS Start +==========================**/ +.form-builder-column #pills-tabContent .theme-form .form-group, .form-builder-column #pills-tabContent .theme-form .ui-draggable { + margin-bottom: 0 !important; } + .form-builder-column #pills-tabContent .theme-form .form-group .checkbox label, .form-builder-column #pills-tabContent .theme-form .ui-draggable .checkbox label { + margin-top: 0; } + .form-builder-column #pills-tabContent .theme-form .form-group input, .form-builder-column #pills-tabContent .theme-form .ui-draggable input { + border-radius: 4px; } + .form-builder-column #pills-tabContent .theme-form .form-group .input-group #prependedcheckbox, .form-builder-column #pills-tabContent .theme-form .ui-draggable .input-group #prependedcheckbox { + margin-right: 0; + border-top-left-radius: 0; + border-bottom-left-radius: 0; } + .form-builder-column #pills-tabContent .theme-form .form-group .input-group input, .form-builder-column #pills-tabContent .theme-form .ui-draggable .input-group input { + margin-right: 15px; } + .form-builder-column #pills-tabContent .theme-form .form-group .input-group .input-group-prepend .input-group-text input, .form-builder-column #pills-tabContent .theme-form .ui-draggable .input-group .input-group-prepend .input-group-text input { + margin-right: 0; } + .form-builder-column #pills-tabContent .theme-form .form-group .input-group .input-group-btn button, .form-builder-column #pills-tabContent .theme-form .ui-draggable .input-group .input-group-btn button { + border-radius: 4px; } + .form-builder-column #pills-tabContent .theme-form .form-group select, .form-builder-column #pills-tabContent .theme-form .ui-draggable select { + border-radius: 4px; } + .form-builder-column #pills-tabContent .theme-form .form-group .m-t-help-block, .form-builder-column #pills-tabContent .theme-form .ui-draggable .m-t-help-block { + margin-top: -3px; } + +.form-builder-column #pills-tabContent #pills-button .theme-form button { + margin-bottom: 6px; } + +.form-builder-column .droppable-active { + background-color: #24695c !important; + opacity: 0.1; } + +.form-builder-column .form-body { + min-height: 540px; } + +.form-builder-column .draggable { + cursor: move; } + +.form-builder-column .drag-bx { + border: 1px dotted #e6edef; + border-radius: 4px; } + +.form-builder-column .help-block { + color: #e6edef; } + +.form-builder-column .tools a { + cursor: pointer; + font-size: 80%; } + +.form-builder-2 .form-group { + margin-bottom: 0 !important; } + .form-builder-2 .form-group .checkbox label { + margin-top: 0; } + .form-builder-2 .form-group input { + border-radius: 4px; } + .form-builder-2 .form-group .input-group #prependedcheckbox { + margin-right: 0; + border-top-left-radius: 0; + border-bottom-left-radius: 0; } + .form-builder-2 .form-group .input-group input { + margin-right: 15px; } + .form-builder-2 .form-group .input-group .input-group-prepend .input-group-text input { + margin-right: 0; } + .form-builder-2 .form-group .input-group .input-group-btn button { + border-radius: 4px; } + .form-builder-2 .form-group select { + border-radius: 4px; } + .form-builder-2 .form-group .m-t-help-block { + margin-top: -3px; } + +.form-builder-2-header { + background-color: #e6edef; + padding: 15px; + border-radius: 5px; + display: -webkit-box; + display: -ms-flexbox; + display: flex; + margin-bottom: 30px; } + .form-builder-2-header > div { + display: inline-block; + width: 49%; } + .form-builder-2-header > div nav { + text-align: right; + float: right; } + +.draggable input { + border-radius: 5px; } + +.draggable select { + border-radius: 4px; } + +/**===================== + 12. Form Builder 2 CSS Ends +==========================**/ +/**==================================== + 13. Email Application CSS Start +========================================**/ +.email-wrap .email-app-sidebar .media img { + border: 2px solid #e6edef; } + +.email-wrap .email-app-sidebar .main-menu > li { + width: 100%; + text-align: left; } + .email-wrap .email-app-sidebar .main-menu > li a { + color: #898989; + line-height: 39px; + text-transform: uppercase; + border-radius: 3px; + font-weight: 500; } + .email-wrap .email-app-sidebar .main-menu > li a i { + margin-right: 10px; } + .email-wrap .email-app-sidebar .main-menu > li a.active > a { + color: #000; } + .email-wrap .email-app-sidebar .main-menu > li a:hover { + background-color: rgba(36, 105, 92, 0.1); + text-decoration: none; } + .email-wrap .email-app-sidebar .main-menu > li a:hover > .title { + color: #24695c; } + .email-wrap .email-app-sidebar .main-menu > li a:hover > .badge { + color: #24695c; } + +.email-wrap .email-app-sidebar ul li a { + display: -webkit-box; + display: -ms-flexbox; + display: flex; + padding-left: 20px; + -webkit-box-align: center; + -ms-flex-align: center; + align-items: center; } + .email-wrap .email-app-sidebar ul li a > .title { + width: 100%; } + .email-wrap .email-app-sidebar ul li a > .badge { + -ms-flex-item-align: center; + align-self: center; + color: #898989; } + +.email-wrap .email-left-aside .card-body { + padding: 20px; } + +.email-wrap .email-right-aside .email-body .modal-content .btn-close { + top: 30px; + right: 25px; } + +.email-wrap .email-right-aside .email-body .inbox { + overflow: auto; + overflow-x: hidden; } + .email-wrap .email-right-aside .email-body .inbox .media { + position: relative; } + .email-wrap .email-right-aside .email-body .inbox .media .media-body span { + position: absolute; + right: 20px; } + .email-wrap .email-right-aside .email-body .inbox svg { + width: 18px; + margin-right: 10px; + stroke: #898989; + cursor: pointer; } + .email-wrap .email-right-aside .email-body .inbox svg.like { + fill: #e2c636; + stroke: #e2c636; } + .email-wrap .email-right-aside .email-body .inbox .media-size-email { + 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; } + .email-wrap .email-right-aside .email-body .inbox .media-body { + display: -webkit-box; + display: -ms-flexbox; + display: flex; } + .email-wrap .email-right-aside .email-body .inbox img { + height: 20px; } + .email-wrap .email-right-aside .email-body .inbox .media { + padding: 12px 20px; + -webkit-transform: translateY(0) scale(1); + transform: translateY(0) scale(1); + -webkit-transition: all 0.3s ease; + transition: all 0.3s ease; } + .email-wrap .email-right-aside .email-body .inbox .media:hover { + background-color: #f2f6f7; + -webkit-transform: translateY(-1px) scale(1.01); + transform: translateY(-1px) scale(1.01); + -webkit-transition: -webkit-transform 0.3s ease; + transition: -webkit-transform 0.3s ease; + transition: transform 0.3s ease; + transition: transform 0.3s ease, -webkit-transform 0.3s ease; } + +.email-wrap .email-right-aside .email-body .attachment { + margin-top: 10px; } + .email-wrap .email-right-aside .email-body .attachment ul li { + display: inline-block; } + .email-wrap .email-right-aside .email-body .attachment ul li img { + width: 90px; + height: 90px; } + +.email-wrap .email-right-aside .email-profile .inbox p { + color: #999; + font-weight: 500; + display: inline-block; + width: calc(100% - 200px); + text-overflow: ellipsis; + white-space: nowrap; + overflow: hidden; + padding-left: 15px; + max-width: 600px; } + +.email-wrap .email-right-aside .email-profile > div:first-child .email-top { + padding: 20px; } + .email-wrap .email-right-aside .email-profile > div:first-child .email-top .email-chek { + margin-right: 20px; } + .email-wrap .email-right-aside .email-profile > div:first-child .email-top .checkbox_animated:after { + width: 2.1rem; + height: 2.1rem; + border-radius: 4px; } + .email-wrap .email-right-aside .email-profile > div:first-child .email-top .checkbox_animated:before { + left: 0.4rem; + top: 0.55rem; + width: 1.1rem; + height: 0.5rem; } + +.email-wrap .btn-mail { + border-radius: 2px; + text-align: left; + padding: 13px 15px; + margin: 20px 0 20px; + letter-spacing: 1px; + line-height: 12px !important; + color: #fff !important; } + +.email-wrap .dropdown-menu { + background-color: #fff; + border-color: #e6edef; } + +.email-wrap .cke_chrome { + background-color: #f5f7fb; } + .email-wrap .cke_chrome .cke_top { + background-color: transparent; } + +.email-wrap .cke_top { + background-color: transparent; } + +.email-wrap p { + margin-bottom: 0; + color: #999; } + +.email-wrap .media-body h6 { + margin-bottom: 2px; + color: #24695c; + margin-top: 3px; + font-weight: 600; + display: inline-block; + font-size: 14px; } + .email-wrap .media-body h6 span { + font-weight: 600; } + .email-wrap .media-body h6 small span { + color: #717171; } + +.email-wrap .email-top { + padding: 20px; + border-bottom: 1px solid #e6edef; } + .email-wrap .email-top h5 { + margin-bottom: 0; + display: -webkit-box; + display: -ms-flexbox; + display: flex; + -webkit-box-align: center; + -ms-flex-align: center; + align-items: center; } + .email-wrap .email-top .email-right { + padding: 13px 0; + display: -webkit-box; + display: -ms-flexbox; + display: flex; + -webkit-box-pack: end; + -ms-flex-pack: end; + justify-content: flex-end; } + +.email-wrap .email-wrapper { + padding: 20px; } + .email-wrap .email-wrapper h5 { + margin-bottom: 20px; } + .email-wrap .email-wrapper .emailread-group:nth-child(n+2) { + border-top: 1px solid #e6edef; + padding-top: 20px; + margin-top: 20px; } + .email-wrap .email-wrapper .emailread-group h5 { + margin-bottom: 10px; } + .email-wrap .email-wrapper .emailread-group h6 { + font-size: 14px; } + .email-wrap .email-wrapper .emailread-group .read-group:nth-child(n+2) { + margin-top: 15px; } + .email-wrap .email-wrapper .emailread-group textarea { + text-transform: capitalize; + padding: 15px; } + .email-wrap .email-wrapper .emailread-group .action-wrapper { + margin-top: 15px; } + .email-wrap .email-wrapper h6 { + margin-bottom: 10px; + float: left; } + .email-wrap .email-wrapper .right-download { + float: right; } + +.email-wrap .email-content .email-top .user-emailid:after { + content: ""; + position: relative; + height: 20px; + width: 1px; + right: 0; + top: 3px; + z-index: 2; + border: 1px solid #efefef; + float: right; + padding: 0; + margin: 0 20px; } + +.email-wrap .email-body .attachment ul li img { + width: 80px; + height: 80px; } + +.email-wrap .email-body .attachment ul li:nth-child(n+2) { + margin-left: 10px; } + +.email-wrap .email-body .attachment .list-inline .list-inline-item { + padding-right: 13px; + margin-right: unset; } + +.email-wrap .email-body .email-compose .cke_contents.cke_reset { + max-height: 100px; + width: 100%; + border: 1px solid #e6edef; + margin-bottom: 20px; } + +.email-wrap .email-body .email-compose .cke_inner { + background-color: transparent; } + +.email-wrap .email-body .email-compose .email-top h4 { + margin-bottom: 0; } + +.email-wrap .email-body .email-compose .compose-border { + margin: -1px; } + .email-wrap .email-body .email-compose .compose-border .btn-middle { + padding-top: 5px; } + +.email-wrap .email-body .email-compose .compose-header { + display: -webkit-box; + display: -ms-flexbox; + display: flex; + -webkit-box-align: center; + -ms-flex-align: center; + align-items: center; + -webkit-box-pack: justify; + -ms-flex-pack: justify; + justify-content: space-between; } + +.email-wrap .email-body .email-compose .dropzone i { + display: block; + margin-bottom: 10px; } + +.email-wrap .email-body .email-compose .dropzone h6 { + float: unset; } + +.email-wrap .email-body .email-compose .dropzone .needsclick { + display: block; + margin: 0; } + +.email-wrap .actions { + text-align: right; } + .email-wrap .actions li { + display: inline-block; } + .email-wrap .actions li:nth-child(n+2) { + margin-left: 15px; } + +.email-wrap .email-aside-toggle { + text-transform: capitalize; + display: none; } + +.cke_top { + border-bottom: 1px solid #e6edef !important; } + +@media (max-width: 575px) { + .email-wrap .email-app-sidebar .main-menu > li a { + line-height: 30px; } + .email-wrap .email-right-aside .tab-content .email-wrapper h6 { + font-size: 12px; } + .email-wrap .email-right-aside .tab-content .email-wrapper .right-download { + font-size: 12px; } } + +/**================================= + 13. Email Application CSS Ends +====================================**/ +/**===================== + 14. Chat CSS Start +==========================**/ +.chat-box .chat-menu { + max-width: 340px; } + +.chat-box .people-list .search { + position: relative; } + .chat-box .people-list .search .form-control { + border: 1px solid #e6edef; } + .chat-box .people-list .search .form-control::-webkit-input-placeholder { + color: #59667a; } + .chat-box .people-list .search .form-control::-moz-placeholder { + color: #59667a; } + .chat-box .people-list .search .form-control:-ms-input-placeholder { + color: #59667a; } + .chat-box .people-list .search .form-control::-ms-input-placeholder { + color: #59667a; } + .chat-box .people-list .search .form-control::placeholder { + color: #59667a; } + .chat-box .people-list .search i { + position: absolute; + right: 10px; + top: 10px; + font-size: 14px; + color: #e6edef; } + +.chat-box .people-list ul { + padding: 0; } + .chat-box .people-list ul li { + padding-bottom: 20px; } + .chat-box .people-list ul li:last-child { + padding-bottom: 0; } + +.chat-box .user-image { + float: left; + width: 52px; + height: 52px; + margin-right: 5px; } + +.chat-box .about { + float: left; + margin-top: 5px; + padding-left: 10px; } + .chat-box .about .name { + color: #2c323f; + letter-spacing: 1px; + font-weight: 600; } + +.chat-box .status { + color: #999; + letter-spacing: 1px; + font-size: 12px; + margin-top: 5px; } + .chat-box .status .chat-status { + font-weight: 600; + color: #242934; } + .chat-box .status p { + font-size: 14px; } + +.chat-box .chat-right-aside .chat .chat-header { + padding: 15px; + border-bottom: 1px solid #e6edef; } + .chat-box .chat-right-aside .chat .chat-header img { + float: left; + width: 50px; + -webkit-box-shadow: 1px 1px 4px 1px #e6edef; + box-shadow: 1px 1px 4px 1px #e6edef; } + .chat-box .chat-right-aside .chat .chat-header .chat-menu-icons { + margin-top: 15px; + margin-left: auto; + display: -webkit-box; + display: -ms-flexbox; + display: flex; + -webkit-box-pack: end; + -ms-flex-pack: end; + justify-content: flex-end; } + .chat-box .chat-right-aside .chat .chat-header .chat-menu-icons li { + margin-right: unset; } + .chat-box .chat-right-aside .chat .chat-header .chat-menu-icons li a i { + color: rgba(36, 41, 52, 0.7); + font-size: 25px; + cursor: pointer; } + .chat-box .chat-right-aside .chat .chat-header .chat-menu-icons li:nth-child(n+2) { + margin-left: 24px; } + +.chat-box .chat-right-aside .chat .chat-msg-box { + padding: 20px; + overflow-y: auto; + height: 560px; + margin-bottom: 90px; } + .chat-box .chat-right-aside .chat .chat-msg-box .chat-user-img { + margin-top: -35px; } + .chat-box .chat-right-aside .chat .chat-msg-box .message-data { + margin-bottom: 10px; } + .chat-box .chat-right-aside .chat .chat-msg-box .message-data-time { + letter-spacing: 1px; + font-size: 12px; + color: #59667a; + font-weight: 600; } + .chat-box .chat-right-aside .chat .chat-msg-box .message { + color: #999; + padding: 20px; + line-height: 1.9; + letter-spacing: 1px; + font-size: 14px; + margin-bottom: 30px; + width: 50%; + position: relative; } + .chat-box .chat-right-aside .chat .chat-msg-box .my-message { + border: 1px solid #e6edef; + border-radius: 10px; + border-top-left-radius: 0; } + .chat-box .chat-right-aside .chat .chat-msg-box .other-message { + border: 1px solid #e6edef; + border-radius: 10px; + border-top-right-radius: 0; } + +.chat-box .chat-right-aside .chat .chat-message { + padding: 20px; + border-top: 1px solid #fafdff; + position: absolute; + width: calc(100% - 15px); + bottom: 0; } + .chat-box .chat-right-aside .chat .chat-message .smiley-box { + background: #efefef; + padding: 10px; + display: block; + border-radius: 4px; + margin-right: 0.5rem; } + .chat-box .chat-right-aside .chat .chat-message .text-box { + position: relative; } + .chat-box .chat-right-aside .chat .chat-message .text-box .input-txt-bx { + height: 50px; + border: 2px solid #24695c; + padding-left: 18px; + font-size: 12px; + letter-spacing: 1px; } + .chat-box .chat-right-aside .chat .chat-message .text-box i { + position: absolute; + right: 20px; + top: 20px; + font-size: 20px; + color: #e6edef; + cursor: pointer; } + .chat-box .chat-right-aside .chat .chat-message .text-box .btn { + font-size: 16px; + font-weight: 500; } + +.chat-box .chat-menu { + right: 10px; + opacity: 0; + -webkit-transform: translateY(-30px); + transform: translateY(-30px); + visibility: hidden; + top: 95px; + position: absolute; + z-index: 9; + background-color: #fff; + border: 1px solid #e6edef; + -webkit-transition: all linear 0.3s; + transition: all linear 0.3s; + padding-right: unset; } + .chat-box .chat-menu .tab-pane { + padding: 0 15px; } + .chat-box .chat-menu ul li .about .status i { + font-size: 10px; } + .chat-box .chat-menu .user-profile { + margin-top: 30px; } + .chat-box .chat-menu .user-profile .user-content h5 { + margin: 15px 0; + font-weight: 600; } + .chat-box .chat-menu .user-profile .user-content p { + font-size: 14px; } + .chat-box .chat-menu .user-profile .user-content .social-list li { + display: inline-block; } + .chat-box .chat-menu .user-profile .user-content .social-list li a { + width: 30px; + height: 30px; + border-radius: 5px; + background-color: rgba(36, 105, 92, 0.08); + color: #24695c; + 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; } + .chat-box .chat-menu .user-profile .user-content .social-list li:hover a { + background-color: #24695c; + color: #fff; } + .chat-box .chat-menu .user-profile .user-content .social-list li:nth-child(n+2) { + margin-left: 5px; } + .chat-box .chat-menu .user-profile .image { + position: relative; } + .chat-box .chat-menu .user-profile .image .icon-wrapper { + position: absolute; + bottom: 0; + left: 55%; + display: -webkit-box; + display: -ms-flexbox; + display: flex; + -webkit-box-pack: center; + -ms-flex-pack: center; + justify-content: center; + -webkit-box-align: center; + -ms-flex-align: center; + align-items: center; + height: 30px; + width: 30px; + border-radius: 50%; + background-color: #fff; + cursor: pointer; + overflow: hidden; + margin: 0 auto; + font-size: 14px; + -webkit-box-shadow: 1px 1px 3px 1px #e6edef; + box-shadow: 1px 1px 3px 1px #e6edef; } + .chat-box .chat-menu .user-profile .image .icon-wrapper i { + color: #24695c; } + .chat-box .chat-menu .user-profile .image .avatar { + width: 80px; + height: 80px; + border-radius: 50%; + overflow: hidden; + margin-left: auto; + margin-right: auto; } + .chat-box .chat-menu .user-profile .image .avatar img { + width: 100%; + height: 100%; + border-radius: 50%; + border: 5px solid #e6edef; } + .chat-box .chat-menu .user-profile .border-right { + border-right: 1px solid #e6edef; } + .chat-box .chat-menu .user-profile .follow { + margin-top: 15px; + padding-top: 15px; + border-top: 1px solid #e6edef; } + .chat-box .chat-menu .user-profile .follow .follow-num { + font-size: 20px; + color: #000; + font-weight: 600; + line-height: 1; } + .chat-box .chat-menu .user-profile .follow span { + color: #999; + font-size: 14px; + letter-spacing: 1px; + font-weight: 600; } + .chat-box .chat-menu .user-profile .digits { + border-top: 1px solid #e6edef; + margin-top: 15px; + padding-top: 15px; } + .chat-box .chat-menu .user-profile .digits p { + margin-bottom: unset; } + .chat-box .chat-menu .user-profile .social-media a { + color: #59667a; + font-size: 15px; + padding: 0 7px; } + .chat-box .chat-menu .user-profile .chat-profile-contact p { + font-size: 14px; + color: #999; } + .chat-box .chat-menu .nav { + margin-bottom: 20px; } + .chat-box .chat-menu .nav-tabs .nav-item { + width: 33.33%; } + .chat-box .chat-menu .nav-tabs .nav-item a { + padding: 15px !important; + color: #59667a !important; + letter-spacing: 1px; + font-size: 14px; + font-weight: 600; + 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; } + .chat-box .chat-menu .nav-tabs .nav-item .material-border { + border-width: 1px; + border-color: #24695c; } + .chat-box .chat-menu .nav-tabs .nav-item .nav-link.active { + color: #24695c !important; } + .chat-box .chat-menu.show { + opacity: 1; + visibility: visible; + -webkit-transform: translateY(0px); + transform: translateY(0px); + -webkit-transition: all linear 0.3s; + transition: all linear 0.3s; + padding-bottom: 25px; + position: absolute; + top: 60px; } + +.chat-box .chat-history .call-content { + 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; + min-width: 300px; + min-height: 650px; + height: 100%; } + .chat-box .chat-history .call-content > div { + width: 100%; + height: 100%; + padding: 30px; } + +.chat-box .chat-history .total-time h2 { + font-size: 50px; + font-weight: 700; + margin-bottom: 30px; + color: #999; } + +.chat-box .chat-history .receiver-img { + margin-top: 55px; } + .chat-box .chat-history .receiver-img img { + border-radius: 5px; } + +.chat-box .chat-history .call-icons { + margin-bottom: 35px; } + .chat-box .chat-history .call-icons ul { + 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; } + .chat-box .chat-history .call-icons ul li { + width: 55px; + height: 55px; + border: 1px solid #e6edef; + border-radius: 50%; + 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; } + .chat-box .chat-history .call-icons ul li + li { + margin-left: 10px; } + .chat-box .chat-history .call-icons ul li a { + color: #999; + font-size: 22px; } + +.chat-box .chat-history .caller-img { + height: 100%; } + +.chat-left-aside > .media { + margin-bottom: 15px; } + +.chat-left-aside .people-list { + height: 625px; } + +.chat-left-aside ul li { + position: relative; } + +.status-circle { + width: 12px; + height: 12px; + position: absolute; + top: 4px; + left: 44px; + border-radius: 50%; + border: 2px solid #fff; } + +.away { + background-color: #e2c636; } + +.online { + background-color: #1b4c43; } + +.offline { + background-color: #d22d3d; } + +.chat-container .aside-chat-left { + width: 320px; } + +.chat-container .chat-right-aside { + width: 320px; } + +.call-chat-sidebar { + max-width: 320px; } + +.call-chat-sidebar .card .card-body, .chat-body .card .card-body { + padding: 15px; + margin-bottom: 15px; } + +.chart-widget .chart-widget-top h4 { + font-weight: 600; } + +.chart-widget .chart-widget-top .num i { + margin-left: 5px; } + +.apexcharts-menu { + border-color: #e6edef !important; } + +@media (max-width: 1366px) { + .chat-box .chat-right-aside .chat .chat-message { + bottom: 0; } } + +@media (max-width: 360px) { + .chat-box .chat-menu { + width: 220px; } } + +/**===================== + 14. Chat CSS Ends +==========================**/ +/**===================== + 15. Alert CSS start +==========================**/ +.notify-alert .close { + background: unset; + border: none; + font-size: 25px; } + +.alert { + border-radius: 0.15rem; + padding: 15px; } + .alert svg { + vertical-align: middle; } + .alert .progress { + margin-top: 15px; } + .alert [data-notify='icon'] { + margin-right: 10px; + line-height: 20px; + position: absolute; } + .alert [data-notify='message'] { + display: inline-block; + width: 100%; } + .alert i { + margin-right: 5px; + font-size: 16px; } + .alert p { + margin-bottom: 0; } + .alert .close { + opacity: 1; } + .alert .close span { + font-size: 24px; + font-weight: 400; + display: inline-block; + border-radius: 3px; + text-shadow: none; + padding: 0 5px; + padding-right: 0; } + +.alert-dismissible .close { + padding: 10px 1.25rem; + top: 4px; + padding-right: 13px; + opacity: 0.5; + -webkit-transition: all 0.3s ease; + transition: all 0.3s ease; } + .alert-dismissible .close:hover { + -webkit-transition: all 0.3s ease; + transition: all 0.3s ease; + opacity: 1; + color: inherit; } + +.card-body button:focus { + outline: none; } + +.card-body .alert:last-child { + margin-bottom: 0; } + +.card-body .alert svg { + width: 14px; + height: 14px; + margin-right: 4px; + position: absolute; + top: 18px; } + .card-body .alert svg ~ p { + padding-left: 20px; } + +strong { + display: inline-block; } + strong ~ p { + display: inline-block; } + +.alert-primary { + background-color: rgba(36, 105, 92, 0.8); + border-color: rgba(36, 105, 92, 0.9); + color: #fff; } + .alert-primary .progress { + height: 5px; + background-color: #236559; + border-radius: 0; } + .alert-primary .progress-bar { + background-color: #aae2d7; } + .alert-primary .btn-close { + -webkit-filter: brightness(1) invert(1); + filter: brightness(1) invert(1); } + .alert-primary .alert-link { + color: #24695c; } + .alert-primary hr { + border-top-color: #24695c; } + +.alert-primary.dark { + background-color: #24695c; + border-color: #24695c; + color: #fafafa; } + .alert-primary.dark .alert-link { + color: #fff; } + +.alert-primary.outline, .alert-primary.outline-2x { + background-color: transparent; + border-color: #24695c; + color: #24695c; } + .alert-primary.outline .btn-close, .alert-primary.outline-2x .btn-close { + -webkit-filter: unset; + filter: unset; } + +.alert-primary.inverse { + background-color: transparent; + padding: 13px 20px 13px 65px; + border-color: #24695c; + color: #242934; } + .alert-primary.inverse:before { + top: 16px; + content: ""; + position: absolute; + left: 54px; + width: 0; + height: 0; + border-left: 7px solid #24695c; + border-top: 7px solid transparent; + border-bottom: 7px solid transparent; } + .alert-primary.inverse i { + padding: 17px 20px; + display: inline-block; + background-color: #24695c; + color: #fff; + border-radius: 3px 0 0 3px; + position: absolute; + left: 0; + top: 0; + height: 100%; } + .alert-primary.inverse .btn-close { + -webkit-filter: unset; + filter: unset; + top: -3px; } + +.alert-secondary { + background-color: rgba(186, 137, 93, 0.8); + border-color: rgba(186, 137, 93, 0.9); + color: #fff; } + .alert-secondary .progress { + height: 5px; + background-color: #b88659; + border-radius: 0; } + .alert-secondary .progress-bar { + background-color: white; } + .alert-secondary .btn-close { + -webkit-filter: brightness(1) invert(1); + filter: brightness(1) invert(1); } + .alert-secondary .alert-link { + color: #ba895d; } + .alert-secondary hr { + border-top-color: #ba895d; } + +.alert-secondary.dark { + background-color: #ba895d; + border-color: #ba895d; + color: #fafafa; } + .alert-secondary.dark .alert-link { + color: #fff; } + +.alert-secondary.outline, .alert-secondary.outline-2x { + background-color: transparent; + border-color: #ba895d; + color: #ba895d; } + .alert-secondary.outline .btn-close, .alert-secondary.outline-2x .btn-close { + -webkit-filter: unset; + filter: unset; } + +.alert-secondary.inverse { + background-color: transparent; + padding: 13px 20px 13px 65px; + border-color: #ba895d; + color: #242934; } + .alert-secondary.inverse:before { + top: 16px; + content: ""; + position: absolute; + left: 54px; + width: 0; + height: 0; + border-left: 7px solid #ba895d; + border-top: 7px solid transparent; + border-bottom: 7px solid transparent; } + .alert-secondary.inverse i { + padding: 17px 20px; + display: inline-block; + background-color: #ba895d; + color: #fff; + border-radius: 3px 0 0 3px; + position: absolute; + left: 0; + top: 0; + height: 100%; } + .alert-secondary.inverse .btn-close { + -webkit-filter: unset; + filter: unset; + top: -3px; } + +.alert-success { + background-color: rgba(27, 76, 67, 0.8); + border-color: rgba(27, 76, 67, 0.9); + color: #fff; } + .alert-success .progress { + height: 5px; + background-color: #1a4840; + border-radius: 0; } + .alert-success .progress-bar { + background-color: #8fd7ca; } + .alert-success .btn-close { + -webkit-filter: brightness(1) invert(1); + filter: brightness(1) invert(1); } + .alert-success .alert-link { + color: #1b4c43; } + .alert-success hr { + border-top-color: #1b4c43; } + +.alert-success.dark { + background-color: #1b4c43; + border-color: #1b4c43; + color: #fafafa; } + .alert-success.dark .alert-link { + color: #fff; } + +.alert-success.outline, .alert-success.outline-2x { + background-color: transparent; + border-color: #1b4c43; + color: #1b4c43; } + .alert-success.outline .btn-close, .alert-success.outline-2x .btn-close { + -webkit-filter: unset; + filter: unset; } + +.alert-success.inverse { + background-color: transparent; + padding: 13px 20px 13px 65px; + border-color: #1b4c43; + color: #242934; } + .alert-success.inverse:before { + top: 16px; + content: ""; + position: absolute; + left: 54px; + width: 0; + height: 0; + border-left: 7px solid #1b4c43; + border-top: 7px solid transparent; + border-bottom: 7px solid transparent; } + .alert-success.inverse i { + padding: 17px 20px; + display: inline-block; + background-color: #1b4c43; + color: #fff; + border-radius: 3px 0 0 3px; + position: absolute; + left: 0; + top: 0; + height: 100%; } + .alert-success.inverse .btn-close { + -webkit-filter: unset; + filter: unset; + top: -3px; } + +.alert-danger { + background-color: rgba(210, 45, 61, 0.8); + border-color: rgba(210, 45, 61, 0.9); + color: #fff; } + .alert-danger .progress { + height: 5px; + background-color: #ce2c3c; + border-radius: 0; } + .alert-danger .progress-bar { + background-color: white; } + .alert-danger .btn-close { + -webkit-filter: brightness(1) invert(1); + filter: brightness(1) invert(1); } + .alert-danger .alert-link { + color: #d22d3d; } + .alert-danger hr { + border-top-color: #d22d3d; } + +.alert-danger.dark { + background-color: #d22d3d; + border-color: #d22d3d; + color: #fafafa; } + .alert-danger.dark .alert-link { + color: #fff; } + +.alert-danger.outline, .alert-danger.outline-2x { + background-color: transparent; + border-color: #d22d3d; + color: #d22d3d; } + .alert-danger.outline .btn-close, .alert-danger.outline-2x .btn-close { + -webkit-filter: unset; + filter: unset; } + +.alert-danger.inverse { + background-color: transparent; + padding: 13px 20px 13px 65px; + border-color: #d22d3d; + color: #242934; } + .alert-danger.inverse:before { + top: 16px; + content: ""; + position: absolute; + left: 54px; + width: 0; + height: 0; + border-left: 7px solid #d22d3d; + border-top: 7px solid transparent; + border-bottom: 7px solid transparent; } + .alert-danger.inverse i { + padding: 17px 20px; + display: inline-block; + background-color: #d22d3d; + color: #fff; + border-radius: 3px 0 0 3px; + position: absolute; + left: 0; + top: 0; + height: 100%; } + .alert-danger.inverse .btn-close { + -webkit-filter: unset; + filter: unset; + top: -3px; } + +.alert-warning { + background-color: rgba(226, 198, 54, 0.8); + border-color: rgba(226, 198, 54, 0.9); + color: #fff; } + .alert-warning .progress { + height: 5px; + background-color: #e1c532; + border-radius: 0; } + .alert-warning .progress-bar { + background-color: white; } + .alert-warning .btn-close { + -webkit-filter: brightness(1) invert(1); + filter: brightness(1) invert(1); } + .alert-warning .alert-link { + color: #e2c636; } + .alert-warning hr { + border-top-color: #e2c636; } + +.alert-warning.dark { + background-color: #e2c636; + border-color: #e2c636; + color: #fafafa; } + .alert-warning.dark .alert-link { + color: #fff; } + +.alert-warning.outline, .alert-warning.outline-2x { + background-color: transparent; + border-color: #e2c636; + color: #e2c636; } + .alert-warning.outline .btn-close, .alert-warning.outline-2x .btn-close { + -webkit-filter: unset; + filter: unset; } + +.alert-warning.inverse { + background-color: transparent; + padding: 13px 20px 13px 65px; + border-color: #e2c636; + color: #242934; } + .alert-warning.inverse:before { + top: 16px; + content: ""; + position: absolute; + left: 54px; + width: 0; + height: 0; + border-left: 7px solid #e2c636; + border-top: 7px solid transparent; + border-bottom: 7px solid transparent; } + .alert-warning.inverse i { + padding: 17px 20px; + display: inline-block; + background-color: #e2c636; + color: #fff; + border-radius: 3px 0 0 3px; + position: absolute; + left: 0; + top: 0; + height: 100%; } + .alert-warning.inverse .btn-close { + -webkit-filter: unset; + filter: unset; + top: -3px; } + +.alert-info { + background-color: rgba(113, 113, 113, 0.8); + border-color: rgba(113, 113, 113, 0.9); + color: #fff; } + .alert-info .progress { + height: 5px; + background-color: #6e6e6e; + border-radius: 0; } + .alert-info .progress-bar { + background-color: #f1f1f1; } + .alert-info .btn-close { + -webkit-filter: brightness(1) invert(1); + filter: brightness(1) invert(1); } + .alert-info .alert-link { + color: #717171; } + .alert-info hr { + border-top-color: #717171; } + +.alert-info.dark { + background-color: #717171; + border-color: #717171; + color: #fafafa; } + .alert-info.dark .alert-link { + color: #fff; } + +.alert-info.outline, .alert-info.outline-2x { + background-color: transparent; + border-color: #717171; + color: #717171; } + .alert-info.outline .btn-close, .alert-info.outline-2x .btn-close { + -webkit-filter: unset; + filter: unset; } + +.alert-info.inverse { + background-color: transparent; + padding: 13px 20px 13px 65px; + border-color: #717171; + color: #242934; } + .alert-info.inverse:before { + top: 16px; + content: ""; + position: absolute; + left: 54px; + width: 0; + height: 0; + border-left: 7px solid #717171; + border-top: 7px solid transparent; + border-bottom: 7px solid transparent; } + .alert-info.inverse i { + padding: 17px 20px; + display: inline-block; + background-color: #717171; + color: #fff; + border-radius: 3px 0 0 3px; + position: absolute; + left: 0; + top: 0; + height: 100%; } + .alert-info.inverse .btn-close { + -webkit-filter: unset; + filter: unset; + top: -3px; } + +.alert-light { + background-color: rgba(230, 237, 239, 0.8); + border-color: rgba(230, 237, 239, 0.9); + color: #fff; + color: #2c323f; + background-color: #f4f4f4; } + .alert-light .progress { + height: 5px; + background-color: #e3ebed; + border-radius: 0; } + .alert-light .progress-bar { + background-color: white; } + .alert-light .btn-close { + -webkit-filter: brightness(1) invert(1); + filter: brightness(1) invert(1); } + .alert-light .alert-link { + color: #e6edef; + color: #2c323f; } + .alert-light .btn-close { + -webkit-filter: unset; + filter: unset; } + .alert-light hr { + border-top-color: #e6edef; } + +.alert-light.dark { + background-color: #e6edef; + border-color: #e6edef; + color: #fafafa; + color: #2c323f; } + .alert-light.dark .alert-link { + color: #fff; + color: #2c323f; } + +.alert-light.outline, .alert-light.outline-2x { + background-color: transparent; + border-color: #e6edef; + color: #e6edef; + color: #2c323f; } + .alert-light.outline .btn-close, .alert-light.outline-2x .btn-close { + -webkit-filter: unset; + filter: unset; } + +.alert-light.inverse { + background-color: transparent; + padding: 13px 20px 13px 65px; + border-color: #e6edef; + color: #242934; } + .alert-light.inverse:before { + top: 16px; + content: ""; + position: absolute; + left: 54px; + width: 0; + height: 0; + border-left: 7px solid #e6edef; + border-top: 7px solid transparent; + border-bottom: 7px solid transparent; } + .alert-light.inverse i { + padding: 17px 20px; + display: inline-block; + background-color: #e6edef; + color: #fff; + border-radius: 3px 0 0 3px; + position: absolute; + left: 0; + top: 0; + height: 100%; } + .alert-light.inverse .btn-close { + -webkit-filter: unset; + filter: unset; + top: -3px; } + +.alert-dark { + background-color: rgba(44, 50, 63, 0.8); + border-color: rgba(44, 50, 63, 0.9); + color: #fff; } + .alert-dark .progress { + height: 5px; + background-color: #2a303c; + border-radius: 0; } + .alert-dark .progress-bar { + background-color: #a8b0c2; } + .alert-dark .btn-close { + -webkit-filter: brightness(1) invert(1); + filter: brightness(1) invert(1); } + .alert-dark .alert-link { + color: #2c323f; } + .alert-dark hr { + border-top-color: #2c323f; } + +.alert-dark.dark { + background-color: #2c323f; + border-color: #2c323f; + color: #fafafa; } + .alert-dark.dark .alert-link { + color: #fff; } + +.alert-dark.outline, .alert-dark.outline-2x { + background-color: transparent; + border-color: #2c323f; + color: #2c323f; } + .alert-dark.outline .btn-close, .alert-dark.outline-2x .btn-close { + -webkit-filter: unset; + filter: unset; } + +.alert-dark.inverse { + background-color: transparent; + padding: 13px 20px 13px 65px; + border-color: #2c323f; + color: #242934; } + .alert-dark.inverse:before { + top: 16px; + content: ""; + position: absolute; + left: 54px; + width: 0; + height: 0; + border-left: 7px solid #2c323f; + border-top: 7px solid transparent; + border-bottom: 7px solid transparent; } + .alert-dark.inverse i { + padding: 17px 20px; + display: inline-block; + background-color: #2c323f; + color: #fff; + border-radius: 3px 0 0 3px; + position: absolute; + left: 0; + top: 0; + height: 100%; } + .alert-dark.inverse .btn-close { + -webkit-filter: unset; + filter: unset; + top: -3px; } + +.dismiss-text .alert .btn-close { + background: unset; + opacity: 1; + top: -6px; + right: 40px; } + .dismiss-text .alert .btn-close span { + display: inline-block; + border-radius: 3px; + text-shadow: none; + padding: 0 5px; } + +.outline-2x { + border-width: 2px; + padding: 11px 1.25rem; } + +/**===================== + 15. Alert CSS end +==========================**/ +/**===================== + 16. Popover CSS Start +==========================**/ +.popover { + border: 1px solid #e6edef; + -webkit-box-shadow: none; + box-shadow: none; } + +.popover-header { + background-color: rgba(36, 105, 92, 0.1); + border-color: #e6edef; + color: #24695c; } + +.popover-body { + border-color: #e6edef; + background-color: #fff; } + +.popover-main .btn-showcase a { + color: #fff; } + +.popover-main .btn-showcase button:last-child { + margin-right: 0; } + +/**===================== + 16. Popover CSS Ends +==========================**/ +/**===================== + 17. List CSS Start +==========================**/ +.list-group-item.active { + background-color: #24695c; + border-color: #24695c; } + +.list-group i { + margin-right: 10px; } + +.list-group img { + height: 40px; + width: 40px; + margin-right: 10px; } + +/**===================== + 17. List CSS Ends +==========================**/ +/**===================== + 18. Switch CSS Start +==========================**/ +.switch { + position: relative; + display: inline-block; + width: 60px; + height: 34px; } + .switch input { + display: none; } + .switch input:checked + .switch-state { + background-color: #24695c; } + .switch input:checked + .switch-state:before { + -webkit-transform: translateX(26px); + transform: translateX(26px); } + .switch input:focus + .switch-state { + -webkit-box-shadow: 0 0 1px #24695c; + box-shadow: 0 0 1px #24695c; } + +.switch-state { + border-radius: 20px; + position: absolute; + cursor: pointer; + top: 0; + left: 0; + right: 0; + bottom: 0; + background-color: #e6edef; + -webkit-transition: .4s; + transition: .4s; } + .switch-state:before { + position: absolute; + content: ""; + height: 26px; + width: 26px; + left: 4px; + bottom: 4px; + background-color: #fff; + -webkit-transition: .4s; + transition: .4s; + border-radius: 20px; } + +.icon-state .switch-state:after { + content: "\efb8"; + font-family: IcoFont; + left: 10px; + position: absolute; + top: 10px; + color: #2c323f; + -webkit-transition: .4s; + transition: .4s; + opacity: 0.3; } + +.icon-state input:checked + .switch-state:after { + content: "\efad"; + left: 36px; + opacity: 1; + -webkit-transition: .4s; + transition: .4s; } + +.switch-lg .switch { + width: 75px; + height: 40px; } + .switch-lg .switch .switch-state:before { + height: 30px; + width: 30px; + left: 7px; + bottom: 5px; + top: 4px; } + +.switch-sm .switch { + width: 25px; + height: 16px; + margin-top: 10px; + margin-bottom: 0px; } + .switch-sm .switch .switch-state:before { + height: 8px; + width: 8px; + left: 4px; + bottom: 4px; } + +.switch-sm input:checked + .switch-state:before { + left: -13px; } + +.switch-lg.icon-state .switch .switch-state:after { + left: 12px; + font-size: 18px; } + +.switch-lg.icon-state .switch input:checked + .switch-state:after { + left: 47px; } + +.switch-lg.icon-state .switch input:checked + .switch-state:before { + -webkit-transform: translateX(32px); + transform: translateX(32px); } + +.switch-sm.icon-state .switch .switch-state:after { + top: 4px; + left: 4px; + font-size: 8px; } + +.switch-sm.icon-state .switch input:checked + .switch-state:after { + left: 13px; + top: 4px; } + +.switch-outline .switch-state { + background-color: #fff; + border: 1px solid #24695c; + -webkit-transition: .4s; + transition: .4s; } + .switch-outline .switch-state:before { + background-color: #e6edef; + bottom: 3px; + color: #fff; } + +.switch-outline .switch input { + display: none; } + .switch-outline .switch input:checked + .switch-state { + background-color: transparent; + border: 1px solid #24695c; } + .switch-outline .switch input:checked + .switch-state:before { + background-color: #24695c; + bottom: 3px; + -webkit-transform: translateX(26px); + transform: translateX(26px); } + .switch-outline .switch input:checked + .switch-state:after { + color: #fff; } + +.switch-outline .switch-state.bg-primary { + border: 1px solid #24695c; + background-color: transparent !important; } + +.switch-outline .switch input:checked + .switch-state.bg-primary { + background-color: transparent !important; + border: 1px solid #24695c; } + .switch-outline .switch input:checked + .switch-state.bg-primary:before { + background-color: #24695c; } + +.switch-outline .switch-state.bg-dark { + border: 1px solid #2c323f; + background-color: transparent !important; } + +.switch-outline .switch input:checked + .switch-state.bg-dark { + background-color: transparent !important; + border: 1px solid #2c323f; } + .switch-outline .switch input:checked + .switch-state.bg-dark:before { + background-color: #2c323f; } + +.switch-outline .switch-state.bg-warning { + border: 1px solid #e2c636; + background-color: transparent !important; } + +.switch-outline .switch input:checked + .switch-state.bg-warning { + background-color: transparent !important; + border: 1px solid #e2c636; } + .switch-outline .switch input:checked + .switch-state.bg-warning:before { + background-color: #e2c636; } + +.switch-outline .switch-state.bg-success { + border: 1px solid #1b4c43; + background-color: transparent !important; } + +.switch-outline .switch input:checked + .switch-state.bg-success { + background-color: transparent !important; + border: 1px solid #1b4c43; } + .switch-outline .switch input:checked + .switch-state.bg-success:before { + background-color: #1b4c43; } + +.switch-outline .switch-state.bg-info { + border: 1px solid #717171; + background-color: transparent !important; } + +.switch-outline .switch input:checked + .switch-state.bg-info { + background-color: transparent !important; + border: 1px solid #717171; } + .switch-outline .switch input:checked + .switch-state.bg-info:before { + background-color: #717171; } + +.switch-outline .switch-state.bg-danger { + border: 1px solid #d22d3d; + background-color: transparent !important; } + +.switch-outline .switch input:checked + .switch-state.bg-danger { + background-color: transparent !important; + border: 1px solid #d22d3d; } + .switch-outline .switch input:checked + .switch-state.bg-danger:before { + background-color: #d22d3d; } + +.switch-outline .switch-state.bg-primary { + border: 1px solid #24695c; + background-color: transparent !important; } + +.switch-outline .switch input:checked + .switch-state.bg-primary { + background-color: transparent !important; + border: 1px solid #24695c; } + .switch-outline .switch input:checked + .switch-state.bg-primary:before { + background-color: #24695c; } + +.switch-outline .switch-state.bg-secondary { + border: 1px solid #ba895d; + background-color: transparent !important; } + +.switch-outline .switch input:checked + .switch-state.bg-secondary { + background-color: transparent !important; + border: 1px solid #ba895d; } + .switch-outline .switch input:checked + .switch-state.bg-secondary:before { + background-color: #ba895d; } + +.switch-showcase { + margin-bottom: -8px; } + .switch-showcase .media { + line-height: 1; } + +/**===================== + 18. Switch CSS Ends +==========================**/ +/**===================== + 19. Mega option CSS Start +==========================**/ +.mega-inline { + margin-bottom: -30px; + display: -webkit-box; + display: -ms-flexbox; + display: flex; } + .mega-inline .card { + border: 1px solid #e6edef; + -webkit-box-shadow: 0 0 11px 5px #e6edef; + box-shadow: 0 0 11px 5px #e6edef; } + .mega-inline .mega-title-badge { + display: table; + width: 100%; + font-size: 14px; + font-weight: 600; + text-transform: uppercase; } + .mega-inline .media .radio { + margin-left: 3px; } + +.mega-vertical { + display: -webkit-box; + display: -ms-flexbox; + display: flex; + -ms-flex-wrap: wrap; + flex-wrap: wrap; } + .mega-vertical .card { + -webkit-box-shadow: 0 0 11px 5px rgba(113, 113, 113, 0.08); + box-shadow: 0 0 11px 5px rgba(113, 113, 113, 0.08); } + .mega-vertical .mega-title-badge { + display: table; + width: 100%; + font-size: 14px; + font-weight: 600; + text-transform: uppercase; } + .mega-vertical .media .radio { + margin-left: 3px; } + +.mega-title { + font-weight: 600; } + +.mega-horizontal { + display: -webkit-box; + display: -ms-flexbox; + display: flex; + -ms-flex-wrap: wrap; + flex-wrap: wrap; } + .mega-horizontal .card { + border: 1px solid #f3f3f3; + -webkit-box-shadow: 0 0 11px 5px rgba(113, 113, 113, 0.08); + box-shadow: 0 0 11px 5px rgba(113, 113, 113, 0.08); } + .mega-horizontal .mega-title-badge { + display: table; + width: 100%; + font-size: 14px; + font-weight: 600; + text-transform: uppercase; } + .mega-horizontal .media .radio { + margin-left: 3px; } + +.plain-style .card { + -webkit-box-shadow: none; + box-shadow: none; } + +.border-style .card { + -webkit-box-shadow: none; + box-shadow: none; + border: 1px solid #e6edef; } + +.offer-style .card { + -webkit-box-shadow: none; + box-shadow: none; + border: 1px dashed #e6edef; } + +.rating-star-wrapper { + color: #797979; } + +/**===================== + 19. Mega option CSS Ends +==========================**/ +/**===================== + 20. Touchspin CSS Start +==========================**/ +.bootstrap-touchspin input.touchspin { + padding: 0 12px; } + +.bootstrap-touchspin .input-group .btn { + padding: 10px 20px; } + +.bootstrap-touchspin .touchspin-vertical-tab .input-group .input-group-btn-vertical { + position: relative; + white-space: nowrap; + width: 1%; + vertical-align: middle; + display: table-cell; } + .bootstrap-touchspin .touchspin-vertical-tab .input-group .input-group-btn-vertical .bootstrap-touchspin-down { + margin-top: -2px; } + .bootstrap-touchspin .touchspin-vertical-tab .input-group .input-group-btn-vertical i { + position: absolute; + top: 4px; + left: 7px; + font-size: 10px; + font-weight: normal; } + .bootstrap-touchspin .touchspin-vertical-tab .input-group .input-group-btn-vertical > .btn { + display: block; + float: none; + width: 100%; + max-width: 100%; + padding: 9px; + margin-left: -1px; + position: relative; } + +.bootstrap-touchspin .input-group { + font-family: "Rubik", sans-serif, sans-serif; } + .bootstrap-touchspin .input-group .btn { + border-radius: 0 !important; } + +.bootstrap-touchspin .dropdown-basic .dropdown .dropbtn { + padding: 9px 30px; } + +.bootstrap-touchspin .dropdown-basic .dropdown .dropdown-content { + z-index: 9999; } + +/**===================== + 20. Touchspin CSS Ends +==========================**/ +/**===================== + 21. Select 2 CSS Start +==========================**/ +.select2 { + max-width: 100%; } + +.add-post #cke_text-box { + border: 1px solid #efefef; } + +.add-post form .m-checkbox-inline label { + margin-bottom: 0; } + +.add-post form .form-group { + margin-bottom: 30px; } + .add-post form .form-group .form-control { + border: 1px solid #efefef; } + .add-post form .form-group .col-form-label { + padding-bottom: 0; + padding-top: 0; } + .add-post form .form-group .col-form-label .select2-container--default { + margin-top: 10px; + max-width: 100%; } + .add-post form .form-group .col-form-label .select2-container--default .selection .select2-selection .select2-search__field { + padding: 2px; } + .add-post form .form-group .col-form-label .select2-container--default .select2-selection--multiple { + border: 1px solid #efefef; + max-width: 100%; } + .add-post form .form-group .col-form-label .select2-container--default .select2-selection--multiple .select2-selection__rendered li { + margin-top: 6px !important; } + +.add-post .dropzone { + margin-bottom: 30px; } + +.select2-drpdwn .select2-selection { + border-radius: 0 !important; + border-color: #e6edef !important; + height: 40px !important; + padding: 5px; } + +.select2-drpdwn .form-control { + border-radius: 5px; } + +.select2-drpdwn .form-control-primary { + border-color: #24695c; + color: #24695c; } + +.select2-drpdwn .form-control-secondary { + border-color: #ba895d; + color: #ba895d; } + +.select2-drpdwn .form-control-success { + border-color: #1b4c43; + color: #1b4c43; } + +.select2-drpdwn .form-control-info { + border-color: #717171; + color: #717171; } + +.select2-drpdwn .form-control-warning { + border-color: #e2c636; + color: #e2c636; } + +.select2-drpdwn .form-control-danger { + border-color: #d22d3d; + color: #d22d3d; } + +.select2-drpdwn .form-control-inverse { + border-color: #2c323f; + color: #2c323f; } + +.select2-drpdwn .form-control-primary-fill { + background-color: #24695c; + color: #fff; } + .select2-drpdwn .form-control-primary-fill:focus { + background-color: #24695c; } + +.select2-drpdwn .form-control-secondary-fill { + background-color: #ba895d; + color: white; } + .select2-drpdwn .form-control-secondary-fill:focus { + background-color: #ba895d; } + +.select2-drpdwn .form-control-success-fill { + background-color: #1b4c43; + color: #fff; } + .select2-drpdwn .form-control-success-fill:focus { + background-color: #1b4c43; } + +.select2-drpdwn .form-control-info-fill { + background-color: #717171; + color: #fff; } + .select2-drpdwn .form-control-info-fill:focus { + background-color: #717171; } + +.select2-drpdwn .form-control-warning-fill { + background-color: #e2c636; + color: #fff; } + .select2-drpdwn .form-control-warning-fill:focus { + background-color: #e2c636; } + +.select2-drpdwn .form-control-danger-fill { + background-color: #d22d3d; + color: #fff; } + .select2-drpdwn .form-control-danger-fill:focus { + background-color: #d22d3d; } + +.select2-drpdwn .form-control-inverse-fill { + background-color: #2c323f; + color: #fff; } + .select2-drpdwn .form-control-inverse-fill:focus { + background-color: #2c323f; } + +.selection .select2-selection { + font-family: "Rubik", sans-serif, sans-serif; + border-radius: 5px !important; } + .selection .select2-selection .select2-search__field { + margin-top: 0; + padding: 0px 0 0 15px; } + +.select2-container--classic .select2-selection--multiple .select2-selection__choice { + padding: 2px 6px !important; + margin-top: 0 !important; + background-color: #24695c !important; + border-color: #17433b !important; + color: #fff; + margin-right: 8px !important; } + +.select2-container--classic .select2-selection--multiple .select2-selection__choice__remove { + color: #fff !important; + float: right; + margin-left: 0.5rem; } + +.select2-container--classic .select2-results__option--highlighted[aria-selected] { + background-color: #e0e0e0 !important; + color: #424242 !important; } + +.select2-container--classic .select2-results__options .select2-results__option[aria-selected=true] { + color: #fff !important; } + +.select2-container--default .select2-selection--single .select2-selection__arrow { + top: 7px !important; + right: 10px !important; } + +.select2-container--default .select2-selection--multiple .select2-selection__choice { + padding: 2px 6px !important; + margin-top: 0 !important; + background-color: #24695c !important; + border-color: #17433b !important; + color: #fff; + margin-right: 8px !important; } + +.select2-container--default .select2-selection--multiple .select2-selection__choice__remove { + color: #fff !important; + float: right; + margin-left: 0.5rem; } + +.select2-container--default .select2-results__option--highlighted[aria-selected] { + background-color: #e0e0e0 !important; + color: #424242 !important; } + +.select2-container--default .select2-results__options .select2-results__option[aria-selected=true] { + background-color: #24695c !important; + color: #fff !important; } + +.select2-results > .select2-results__options { + border: 1px solid #e6edef; } + +/**===================== + 21. Select 2 CSS Ends +==========================**/ +/**===================== + 22. User profile css start +==========================**/ +.user-profile .follow .follow-num { + font-size: 18px; + color: #2b2b2b; + font-family: "Rubik", sans-serif, sans-serif; + font-weight: 600; } + +.user-profile .follow span { + color: #59667a; } + +.user-profile .follow ul.follow-list { + border-top: 1px solid #e6edef; } + .user-profile .follow ul.follow-list li { + display: inline-block; + padding-top: 15px; } + .user-profile .follow ul.follow-list li:nth-child(n+2) { + margin-left: 15px; + padding-left: 15px; + border-left: 1px solid #e6edef; } + +.user-profile .profile-img-style { + padding: 30px; } + .user-profile .profile-img-style .img-container { + margin-top: 30px; } + .user-profile .profile-img-style .user-name { + font-size: 18px; + color: #2b2b2b; + margin: 0; + font-weight: 600; } + .user-profile .profile-img-style p { + line-height: 30px; + font-size: 14px; + color: #898989; + margin-bottom: 0; } + .user-profile .profile-img-style .media img { + width: 50px; } + +.user-profile .like-comment a { + color: #898989; } + .user-profile .like-comment a:hover { + color: #d22d3d; } + +.user-profile .like-comment span { + font-family: "Rubik", sans-serif, sans-serif; } + +.user-profile .social-media ul.user-list-social { + display: -webkit-box; + display: -ms-flexbox; + display: flex; + -webkit-box-pack: center; + -ms-flex-pack: center; + justify-content: center; + -webkit-box-align: center; + -ms-flex-align: center; + align-items: center; + width: -webkit-fit-content; + width: -moz-fit-content; + width: fit-content; + margin-right: auto; + margin-left: auto; + padding-bottom: 20px; } + .user-profile .social-media ul.user-list-social li:nth-child(n+2) { + margin-left: 5px; } + .user-profile .social-media ul.user-list-social li a { + padding: 0; + width: 32px; + height: 32px; + border-radius: 5px; + 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; + background-color: rgba(36, 105, 92, 0.08); } + .user-profile .social-media ul.user-list-social li a i { + font-size: 14px; + color: #24695c; } + .user-profile .social-media ul.user-list-social li:hover a { + background-color: #24695c; } + .user-profile .social-media ul.user-list-social li:hover a i { + color: #fff; } + +.user-profile .profile-header { + height: 420px; + padding: 30px; + display: -webkit-box !important; + display: -ms-flexbox !important; + display: flex !important; } + .user-profile .profile-header .profile-img-wrrap { + display: none; } + .user-profile .profile-header .userpro-box { + background-color: #fff; + padding: 30px; + max-width: 380px; + margin-top: auto; + margin-bottom: auto; + text-align: center; } + .user-profile .profile-header .userpro-box .img-wrraper { + position: relative; + width: -webkit-fit-content; + width: -moz-fit-content; + width: fit-content; + margin: auto; } + .user-profile .profile-header .userpro-box .avatar { + width: 100px; + height: 100px; + max-width: 155px; + max-height: 155px; + border-radius: 50%; + overflow: hidden; + margin-left: auto; + margin-right: auto; + border: 7px solid rgba(36, 105, 92, 0.08); + margin-bottom: 15px; } + .user-profile .profile-header .userpro-box .avatar img { + width: 100%; + height: 100%; } + .user-profile .profile-header .userpro-box .icon-wrapper { + position: absolute; + right: 0; + bottom: 0; + display: -webkit-box; + display: -ms-flexbox; + display: flex; + -webkit-box-pack: center; + -ms-flex-pack: center; + justify-content: center; + -webkit-box-align: center; + -ms-flex-align: center; + align-items: center; + height: 35px; + width: 35px; + border-radius: 50%; + background-color: #fff; + cursor: pointer; + overflow: hidden; + margin: 0 auto; + font-size: 17px; + -webkit-box-shadow: 0 0 6px 3px rgba(68, 102, 242, 0.1); + box-shadow: 0 0 6px 3px rgba(68, 102, 242, 0.1); } + .user-profile .profile-header .userpro-box .icon-wrapper i { + color: #24695c; } + .user-profile .profile-header .userpro-box h4 { + color: #2b2b2b; + font-weight: 600; + font-size: 20px; } + .user-profile .profile-header .userpro-box h6 { + font-size: 14px; + text-transform: uppercase; + color: #999; + margin-bottom: 15px; } + +.user-profile .profile-post { + padding: 30px; } + .user-profile .profile-post .post-header { + display: -webkit-box; + display: -ms-flexbox; + display: flex; + -webkit-box-align: center; + -ms-flex-align: center; + align-items: center; + -webkit-box-pack: justify; + -ms-flex-pack: justify; + justify-content: space-between; + margin-bottom: 20px; } + .user-profile .profile-post .post-header .media { + -webkit-box-align: center; + -ms-flex-align: center; + align-items: center; } + .user-profile .profile-post .post-header .media img { + width: 60px; } + .user-profile .profile-post .post-header .media h5 { + color: #2b2b2b; + font-size: 18px; + font-weight: 600; + margin-bottom: 3px; } + .user-profile .profile-post .post-header .media h6 { + color: #999; + font-size: 14px; + margin-bottom: 0; } + .user-profile .profile-post .post-header .post-setting i { + color: #999; + font-size: 22px; } + .user-profile .profile-post .post-body p { + color: #999; } + .user-profile .profile-post .post-body .post-react { + display: -webkit-box; + display: -ms-flexbox; + display: flex; + -webkit-box-align: center; + -ms-flex-align: center; + align-items: center; + margin-bottom: 20px; } + .user-profile .profile-post .post-body .post-react ul li { + display: inline-block; } + .user-profile .profile-post .post-body .post-react ul li:nth-child(n+2) { + margin-left: -20px; } + .user-profile .profile-post .post-body .post-react ul li img { + width: 30px; + height: 30px; } + .user-profile .profile-post .post-body .post-react h6 { + font-size: 14px; + color: #717171; + margin-bottom: 0; + margin-left: 15px; } + .user-profile .profile-post .post-body .post-comment li { + display: inline-block; + color: #717171; } + .user-profile .profile-post .post-body .post-comment li label { + margin-bottom: 0; + font-weight: 500; } + .user-profile .profile-post .post-body .post-comment li label a { + color: #717171; + display: -webkit-box; + display: -ms-flexbox; + display: flex; + -webkit-box-align: center; + -ms-flex-align: center; + align-items: center; + line-height: 1; } + .user-profile .profile-post .post-body .post-comment li label a svg { + width: 14px; + height: 14px; } + .user-profile .profile-post .post-body .post-comment li label a span { + margin-left: 10px; } + .user-profile .profile-post .post-body .post-comment li:nth-child(n+2) { + margin-left: 15px; } + +.user-profile .post-about ul { + margin-bottom: 20px; } + .user-profile .post-about ul li { + display: -webkit-box; + display: -ms-flexbox; + display: flex; + -webkit-box-align: center; + -ms-flex-align: center; + align-items: center; } + .user-profile .post-about ul li .icon { + width: 35px; + height: 35px; + border-radius: 5px; + background-color: rgba(36, 105, 92, 0.08); + 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-right: 15px; } + .user-profile .post-about ul li .icon svg { + width: 18px; + height: 18px; + color: #24695c; } + .user-profile .post-about ul li h5 { + color: #2b2b2b; + text-transform: capitalize; } + .user-profile .post-about ul li p { + font-size: 12px; + line-height: 1; + text-transform: capitalize; } + .user-profile .post-about ul li:nth-child(n+2) { + margin-top: 20px; } + +.edit-profile .profile-title { + border-bottom: 1px solid #e6edef; + margin-bottom: 15px; + padding-bottom: 20px; } + .edit-profile .profile-title .media { + -webkit-box-align: center; + -ms-flex-align: center; + align-items: center; } + .edit-profile .profile-title .media .media-body { + margin-left: 25px; } + +.edit-profile .card .card-header h4 { + font-weight: 600; } + +.edit-profile .card .card-body h3 { + font-weight: 600; } + +.edit-profile .table > :not(:last-child) > :last-child > * { + border: 1px solid #e6edef; } + +/**============================ + 22. User profile css Ends +==============================**/ +/**===================== + 23. Progress CSS Start +==========================**/ +.progress-showcase .progress { + margin-bottom: 10px; } + .progress-showcase .progress:last-child { + margin-bottom: 0; } + +.sm-progress-bar { + height: 5px; } + +.lg-progress-bar { + height: 20px; } + +.progress-animate { + overflow: inherit; + background-color: transparent; + margin-bottom: 2px; } + .progress-animate span { + position: absolute; + bottom: 15px; + right: -10px; + font-weight: 600; + font-size: 15px; } + +@-webkit-keyframes heartbit { + 0% { + -webkit-transform: scale(0); + transform: scale(0); + opacity: 0; } + 25% { + -webkit-transform: scale(0.1); + transform: scale(0.1); + opacity: .1; } + 50% { + -webkit-transform: scale(0.5); + transform: scale(0.5); + opacity: .3; } + 75% { + -webkit-transform: scale(0.8); + transform: scale(0.8); + opacity: .5; } + 100% { + -webkit-transform: scale(1); + transform: scale(1); + opacity: 0; } } + +@keyframes heartbit { + 0% { + -webkit-transform: scale(0); + transform: scale(0); + opacity: 0; } + 25% { + -webkit-transform: scale(0.1); + transform: scale(0.1); + opacity: .1; } + 50% { + -webkit-transform: scale(0.5); + transform: scale(0.5); + opacity: .3; } + 75% { + -webkit-transform: scale(0.8); + transform: scale(0.8); + opacity: .5; } + 100% { + -webkit-transform: scale(1); + transform: scale(1); + opacity: 0; } } + +.progress-gradient-primary { + background-image: -webkit-gradient(linear, left top, right top, from(transparent), to(#24695c)); + background-image: linear-gradient(to right, transparent, #24695c); + position: relative; } + .progress-gradient-primary:hover { + background-size: 100%; } + .progress-gradient-primary::after { + position: absolute; + content: ''; + top: -3px; + right: -1px; + background-color: #24695c; + width: 10px; + height: 10px; + border-radius: 100%; + -webkit-box-shadow: 0 0 17px 4px rgba(36, 105, 92, 0.36); + box-shadow: 0 0 17px 4px rgba(36, 105, 92, 0.36); } + .progress-gradient-primary .animate-circle { + position: absolute; + top: -11px; + right: -8px; + height: 25px; + width: 25px; + border: 5px solid #24695c; + border-radius: 70px; + -webkit-animation: heartbit 1s ease-out; + animation: heartbit 1s ease-out; + -webkit-animation-iteration-count: infinite; + animation-iteration-count: infinite; } + +.progress-gradient-secondary { + background-image: -webkit-gradient(linear, left top, right top, from(transparent), to(#ba895d)); + background-image: linear-gradient(to right, transparent, #ba895d); + position: relative; } + .progress-gradient-secondary:hover { + background-size: 100%; } + .progress-gradient-secondary::after { + position: absolute; + content: ''; + top: -3px; + right: -1px; + background-color: #ba895d; + width: 10px; + height: 10px; + border-radius: 100%; + -webkit-box-shadow: 0 0 17px 4px rgba(186, 137, 93, 0.36); + box-shadow: 0 0 17px 4px rgba(186, 137, 93, 0.36); } + .progress-gradient-secondary .animate-circle { + position: absolute; + top: -11px; + right: -8px; + height: 25px; + width: 25px; + border: 5px solid #ba895d; + border-radius: 70px; + -webkit-animation: heartbit 1s ease-out; + animation: heartbit 1s ease-out; + -webkit-animation-iteration-count: infinite; + animation-iteration-count: infinite; } + +.progress-gradient-success { + background-image: -webkit-gradient(linear, left top, right top, from(transparent), to(#1b4c43)); + background-image: linear-gradient(to right, transparent, #1b4c43); + position: relative; } + .progress-gradient-success:hover { + background-size: 100%; } + .progress-gradient-success::after { + position: absolute; + content: ''; + top: -3px; + right: -1px; + background-color: #1b4c43; + width: 10px; + height: 10px; + border-radius: 100%; + -webkit-box-shadow: 0 0 17px 4px rgba(27, 76, 67, 0.36); + box-shadow: 0 0 17px 4px rgba(27, 76, 67, 0.36); } + .progress-gradient-success .animate-circle { + position: absolute; + top: -11px; + right: -8px; + height: 25px; + width: 25px; + border: 5px solid #1b4c43; + border-radius: 70px; + -webkit-animation: heartbit 1s ease-out; + animation: heartbit 1s ease-out; + -webkit-animation-iteration-count: infinite; + animation-iteration-count: infinite; } + +.progress-gradient-danger { + background-image: -webkit-gradient(linear, left top, right top, from(transparent), to(#d22d3d)); + background-image: linear-gradient(to right, transparent, #d22d3d); + position: relative; } + .progress-gradient-danger:hover { + background-size: 100%; } + .progress-gradient-danger::after { + position: absolute; + content: ''; + top: -3px; + right: -1px; + background-color: #d22d3d; + width: 10px; + height: 10px; + border-radius: 100%; + -webkit-box-shadow: 0 0 17px 4px rgba(210, 45, 61, 0.36); + box-shadow: 0 0 17px 4px rgba(210, 45, 61, 0.36); } + .progress-gradient-danger .animate-circle { + position: absolute; + top: -11px; + right: -8px; + height: 25px; + width: 25px; + border: 5px solid #d22d3d; + border-radius: 70px; + -webkit-animation: heartbit 1s ease-out; + animation: heartbit 1s ease-out; + -webkit-animation-iteration-count: infinite; + animation-iteration-count: infinite; } + +.progress-gradient-info { + background-image: -webkit-gradient(linear, left top, right top, from(transparent), to(#717171)); + background-image: linear-gradient(to right, transparent, #717171); + position: relative; } + .progress-gradient-info:hover { + background-size: 100%; } + .progress-gradient-info::after { + position: absolute; + content: ''; + top: -3px; + right: -1px; + background-color: #717171; + width: 10px; + height: 10px; + border-radius: 100%; + -webkit-box-shadow: 0 0 17px 4px rgba(113, 113, 113, 0.36); + box-shadow: 0 0 17px 4px rgba(113, 113, 113, 0.36); } + .progress-gradient-info .animate-circle { + position: absolute; + top: -11px; + right: -8px; + height: 25px; + width: 25px; + border: 5px solid #717171; + border-radius: 70px; + -webkit-animation: heartbit 1s ease-out; + animation: heartbit 1s ease-out; + -webkit-animation-iteration-count: infinite; + animation-iteration-count: infinite; } + +.progress-gradient-light { + background-image: -webkit-gradient(linear, left top, right top, from(transparent), to(#e6edef)); + background-image: linear-gradient(to right, transparent, #e6edef); + position: relative; } + .progress-gradient-light:hover { + background-size: 100%; } + .progress-gradient-light::after { + position: absolute; + content: ''; + top: -3px; + right: -1px; + background-color: #e6edef; + width: 10px; + height: 10px; + border-radius: 100%; + -webkit-box-shadow: 0 0 17px 4px rgba(230, 237, 239, 0.36); + box-shadow: 0 0 17px 4px rgba(230, 237, 239, 0.36); } + .progress-gradient-light .animate-circle { + position: absolute; + top: -11px; + right: -8px; + height: 25px; + width: 25px; + border: 5px solid #e6edef; + border-radius: 70px; + -webkit-animation: heartbit 1s ease-out; + animation: heartbit 1s ease-out; + -webkit-animation-iteration-count: infinite; + animation-iteration-count: infinite; } + +.progress-gradient-dark { + background-image: -webkit-gradient(linear, left top, right top, from(transparent), to(#2c323f)); + background-image: linear-gradient(to right, transparent, #2c323f); + position: relative; } + .progress-gradient-dark:hover { + background-size: 100%; } + .progress-gradient-dark::after { + position: absolute; + content: ''; + top: -3px; + right: -1px; + background-color: #2c323f; + width: 10px; + height: 10px; + border-radius: 100%; + -webkit-box-shadow: 0 0 17px 4px rgba(44, 50, 63, 0.36); + box-shadow: 0 0 17px 4px rgba(44, 50, 63, 0.36); } + .progress-gradient-dark .animate-circle { + position: absolute; + top: -11px; + right: -8px; + height: 25px; + width: 25px; + border: 5px solid #2c323f; + border-radius: 70px; + -webkit-animation: heartbit 1s ease-out; + animation: heartbit 1s ease-out; + -webkit-animation-iteration-count: infinite; + animation-iteration-count: infinite; } + +.progress-gradient-warning { + background-image: -webkit-gradient(linear, left top, right top, from(transparent), to(#e2c636)); + background-image: linear-gradient(to right, transparent, #e2c636); + position: relative; } + .progress-gradient-warning:hover { + background-size: 100%; } + .progress-gradient-warning::after { + position: absolute; + content: ''; + top: -3px; + right: -1px; + background-color: #e2c636; + width: 10px; + height: 10px; + border-radius: 100%; + -webkit-box-shadow: 0 0 17px 4px rgba(226, 198, 54, 0.36); + box-shadow: 0 0 17px 4px rgba(226, 198, 54, 0.36); } + .progress-gradient-warning .animate-circle { + position: absolute; + top: -11px; + right: -8px; + height: 25px; + width: 25px; + border: 5px solid #e2c636; + border-radius: 70px; + -webkit-animation: heartbit 1s ease-out; + animation: heartbit 1s ease-out; + -webkit-animation-iteration-count: infinite; + animation-iteration-count: infinite; } + +/**===================== + 23. Progress CSS Ends +==========================**/ +/**===================== + 24. According CSS start +==========================**/ +.default-according .card { + margin-bottom: 0; + -webkit-box-shadow: none !important; + box-shadow: none !important; } + .default-according .card + .card { + margin-top: 10px; } + .default-according .card .btn-link { + font-weight: 500; + color: #242934; + font-size: 16px; } + .default-according .card .btn-link:focus, .default-according .card .btn-link:hover { + text-decoration: none; } + .default-according .card .card-header { + padding: 1rem 1.25rem; + border-bottom: 1px solid #e6edef; } + .default-according .card .card-header i { + position: initial; + font-size: 20px; + display: inline-block; + vertical-align: text-bottom; + margin-right: 5px; } + .default-according .card .card-header h5 { + margin-top: 2px; } + .default-according .card .card-body { + border-top: none !important; + padding: 20px; } + .default-according .card .card-body h5 { + font-size: 14px; + margin-bottom: 5px; } + .default-according .card .card-body h6 { + color: #999; + font-size: 12px; + margin-bottom: 5px; } + .default-according .card .card-body ul.rating li { + display: inline-block; } + +.default-according.style-1 button { + width: 100%; + text-align: left; } + .default-according.style-1 button:before { + right: 20px; + position: absolute; + -webkit-transition: 0.4s; + transition: 0.4s; } + .default-according.style-1 button[aria-expanded="true"]:before { + content: ""; + font-family: IcoFont; } + .default-according.style-1 button[aria-expanded="false"]:before { + content: ""; + font-family: IcoFont; } + +@media (max-width: 480px) { + .default-according .card .card-header { + padding-right: 32px; } + .default-according .card .card-header h5 { + font-size: 16px; } + .default-according.style-1 button:before { + right: 10px; } } + +/**===================== + 24. According CSS Ends +==========================**/ +/**===================== + 25. Authentication CSS Start +==========================**/ +.show-hide { + position: absolute; + top: 18px; + right: 30px; + -webkit-transform: translateY(-50%); + transform: translateY(-50%); + text-transform: capitalize; + z-index: 2; } + .show-hide span { + cursor: pointer; + font-size: 13px; + color: #24695c; } + .show-hide span .show-hide span:before { + content: "hide"; } + .show-hide span.show:before { + content: "show"; } + +.needs-validation label { + opacity: 0.7; + margin-bottom: 10px; } + +.needs-validation .invalid-tooltip { + top: -35px; + right: 10px; } + +.login-card { + background-color: rgba(36, 105, 92, 0.1); + height: 100vh; + 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; + min-height: 100vh; + margin: 0 auto; + padding: 30px 12px; } + +.login-form { + padding: 30px; + width: 450px; + background-color: #fff; + -webkit-box-pack: center; + -ms-flex-pack: center; + justify-content: center; + margin-left: auto; + margin-right: auto; } + .login-form h4 { + text-transform: capitalize; + font-weight: 600; + margin-bottom: 5px; + font-size: 22px; } + .login-form h6 { + font-size: 14px; + margin-bottom: 25px; + color: #999; } + .login-form .btn { + text-transform: uppercase; + font-weight: 700; + margin-left: auto; + display: block; } + .login-form p { + font-weight: 600; + text-align: center; + margin-bottom: unset; } + .login-form .form-group { + position: relative; } + .login-form .form-group label { + font-weight: 600; + text-transform: capitalize; + margin-bottom: 5px; } + .login-form .form-group .input-group-text { + background-color: rgba(36, 105, 92, 0.1); + border: none; + color: #24695c; } + .login-form .form-group input { + -webkit-transition: all 0.3s ease; + transition: all 0.3s ease; } + .login-form .form-group .form-control::-webkit-input-placeholder { + font-weight: 400; } + .login-form .form-group .form-control::-moz-placeholder { + font-weight: 400; } + .login-form .form-group .form-control:-ms-input-placeholder { + font-weight: 400; } + .login-form .form-group .form-control::-ms-input-placeholder { + font-weight: 400; } + .login-form .form-group .form-control::placeholder { + font-weight: 400; } + .login-form .form-group .form-control:focus { + -webkit-box-shadow: none; + box-shadow: none; } + .login-form .form-group .checkbox { + display: inline-block; } + .login-form .form-group .checkbox label { + padding-top: 0; + margin-top: 0; + color: #999; } + .login-form .form-group .checkbox label span { + color: rgba(36, 105, 92, 0.5); } + .login-form .form-group .link { + float: right; + font-weight: 500; } + .login-form .form-group .small-group { + display: -webkit-box; + display: -ms-flexbox; + display: flex; + -webkit-box-align: center; + -ms-flex-align: center; + align-items: center; } + .login-form .form-group .small-group .input-group:nth-child(n+2) { + margin-left: 10px; } + .login-form ul.login-social { + 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; } + .login-form ul.login-social li { + display: inline-block; + width: 35px; + height: 35px; + background-color: rgba(36, 105, 92, 0.08); + display: -webkit-box; + display: -ms-flexbox; + display: flex; + -webkit-box-pack: center; + -ms-flex-pack: center; + justify-content: center; + -webkit-box-align: center; + -ms-flex-align: center; + align-items: center; + border-radius: 5px; } + .login-form ul.login-social li a { + line-height: 1; } + .login-form ul.login-social li a svg { + width: 16px; + height: auto; } + .login-form ul.login-social li:nth-child(n+2) { + margin-left: 10px; } + .login-form .login-social-title { + position: relative; + margin-bottom: 20px; + z-index: 2; } + .login-form .login-social-title::before { + content: ''; + position: absolute; + top: 10px; + left: 0; + width: 100%; + height: 1px; + background-color: #999; + z-index: -1; } + .login-form .login-social-title h5 { + font-weight: 600; + font-size: 16px; + color: #999; + width: -webkit-fit-content; + width: -moz-fit-content; + width: fit-content; + margin-left: auto; + margin-right: auto; + padding-left: 10px; + padding-right: 10px; + background-color: #fff; } + +@media (max-width: 575px) { + .login-form .form-group .link { + float: unset; } + .login-form .btn { + margin-left: unset; } } + +@media (max-width: 480px) { + .login-form { + width: 100%; } } + +/**========================== + 25. Authentication CSS Ends +==========================**/ +/**===================== + 26. Form CSS Start +==========================**/ +.height-35 { + height: 35px !important; } + +label { + margin-bottom: 5px; + font-weight: 600; } + +.form-group { + margin-bottom: 20px; } + +.form-control, .form-select { + background-color: #fff; + font-size: 14px; + border-color: #e6edef; + color: #717171; } + .form-control:focus, .form-select:focus { + border-color: #e6edef; + background-color: #fff; + -webkit-box-shadow: 0 0 0 0.2rem rgba(171, 140, 228, 0.05); + box-shadow: 0 0 0 0.2rem rgba(171, 140, 228, 0.05); } + +.theme-form .form-control :focus { + -webkit-box-shadow: 0 0 0 0.2rem rgba(171, 140, 228, 0.05); + box-shadow: 0 0 0 0.2rem rgba(171, 140, 228, 0.05); } + +.theme-form.sm-form .form-group { + margin-bottom: 14px; } + +.theme-form .form-group { + margin-bottom: 20px; } + .theme-form .form-group textarea { + border-color: #efefef; } + .theme-form .form-group textarea::-webkit-input-placeholder { + color: #898989; + font-size: 14px; + letter-spacing: 1px; + font-weight: 100; } + .theme-form .form-group input[type=text], .theme-form .form-group input[type=email], .theme-form .form-group input[type=search], + .theme-form .form-group input[type=password], .theme-form .form-group input[type=number], .theme-form .form-group input[type=tel], .theme-form .form-group input[type=date], .theme-form .form-group input[type=datetime-local], .theme-form .form-group input[type=time], .theme-form .form-group input[type=datetime-local], .theme-form .form-group input[type=month], .theme-form .form-group input[type=week], + .theme-form .form-group input[type=url], .theme-form .form-group input[type=file], .theme-form .form-group select { + border-color: #e6edef; + font-size: 14px; + color: #898989; } + .theme-form .form-group input[type=text]::-webkit-input-placeholder, .theme-form .form-group input[type=email]::-webkit-input-placeholder, .theme-form .form-group input[type=search]::-webkit-input-placeholder, + .theme-form .form-group input[type=password]::-webkit-input-placeholder, .theme-form .form-group input[type=number]::-webkit-input-placeholder, .theme-form .form-group input[type=tel]::-webkit-input-placeholder, .theme-form .form-group input[type=date]::-webkit-input-placeholder, .theme-form .form-group input[type=datetime-local]::-webkit-input-placeholder, .theme-form .form-group input[type=time]::-webkit-input-placeholder, .theme-form .form-group input[type=datetime-local]::-webkit-input-placeholder, .theme-form .form-group input[type=month]::-webkit-input-placeholder, .theme-form .form-group input[type=week]::-webkit-input-placeholder, + .theme-form .form-group input[type=url]::-webkit-input-placeholder, .theme-form .form-group input[type=file]::-webkit-input-placeholder, .theme-form .form-group select::-webkit-input-placeholder { + color: #898989; + font-size: 14px; + letter-spacing: 1px; + font-weight: 100; } + .theme-form .form-group select.form-control:not([size]):not([multiple]) { + border-color: #efefef; + font-size: 14px; } + +.theme-form .checkbox label { + padding-left: 10px; } + +.theme-form .form-divider { + position: relative; + clear: both; + height: 0; + margin: 30px 0; + border-top: 1px solid #efefef; } + .theme-form .form-divider:before { + position: absolute; + top: -11px; + left: 40%; + margin-left: -10px; + padding: 0 5px; + content: "Or Signup With"; + color: #2b2b2b; + background: #fff; } + +.theme-form .login-divider { + position: relative; + clear: both; + height: 0; + margin: 30px 0; + border-top: 1px solid #efefef; } + .theme-form .login-divider:before { + position: absolute; + top: -11px; + left: 40%; + margin-left: -10px; + padding: 0 5px; + color: #2b2b2b; + background: #fff; + content: "Or Login With"; } + +.theme-form .btn-fb { + background-color: #50598e; + color: #fff; + width: 100%; } + +.theme-form .btn-twitter { + background-color: #6fa2d8; + color: #fff; + width: 100%; } + +.theme-form .btn-google { + background-color: #c64e40; + color: #fff; + width: 100%; } + +.form-inline { + display: -webkit-inline-box; } + .form-inline .form-group { + margin-right: 15px; } + .form-inline .form-group .col-form-label { + margin-right: 5px; } + +.search-form .form-group:before { + position: absolute; + content: ""; + width: 1px; + height: 25px; + background: #e8ebf2; + left: 82px; + top: 50px; } + +.search-form .form-group:after { + position: absolute; + content: "\f002"; + font-family: FontAwesome; + top: 50px; + left: 53px; + color: #8e8e8e; } + +.search-form input { + border: 1px solid #e6edef; + padding: 10px 10px 10px 70px; + border-radius: 50px; } + +.form-label-align-right label { + text-align: right; + padding-top: 17px; + font-weight: 500; } + +.custom-file-label { + line-height: 1.8; } + .custom-file-label::after { + line-height: 1.8; } + +.input-group-text { + border-color: #e6edef; + font-weight: 500; } + +.dropdown-menu { + border: 1px solid #e6edef; } + +.animated-modal .form-select { + display: inline-block; + width: auto; + vertical-align: middle; } + +/**===================== + 26. Form CSS Ends +==========================**/ +/**===================== + 27. Coming Soon CSS Start +==========================**/ +.comingsoon-bgimg { + background: url(../images/other-images/coming-soon-bg.jpg); + background-position: bottom; + background-size: cover; } + +.comingsoon { + 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; + min-height: 100vh; + padding: 50px 0; + background-color: rgba(36, 105, 92, 0.1); } + .comingsoon .comingsoon-inner h5 { + font-size: 22px; + letter-spacing: 1px; + color: #999; + font-weight: 600; + margin-bottom: 30px; + margin-top: 30px; } + .comingsoon .comingsoon-inner .countdown { + padding: 30px 0; + border-top: 1px solid rgba(36, 105, 92, 0.1); + border-bottom: 1px solid rgba(36, 105, 92, 0.1); } + .comingsoon .comingsoon-inner .countdown .time { + display: -webkit-box; + display: -ms-flexbox; + display: flex; + -webkit-box-pack: center; + -ms-flex-pack: center; + justify-content: center; + -webkit-box-align: center; + -ms-flex-align: center; + align-items: center; + border-radius: 20px; + color: #fff; + font-weight: 500; + width: 100px; + height: 100px; + font-size: 36px; + background: #24695c; } + .comingsoon .comingsoon-inner .countdown .title { + padding-top: 13px; + font-size: 14px; + font-weight: 600; + color: rgba(36, 41, 52, 0.7); + text-transform: uppercase; + letter-spacing: 1px; } + .comingsoon .comingsoon-inner .countdown ul li { + display: inline-block; + text-transform: uppercase; + margin: 0 20px; } + .comingsoon .comingsoon-inner .countdown ul li span { + display: block; } + .comingsoon video { + position: fixed; + top: 50%; + left: 50%; + min-width: 100%; + min-height: 100%; + width: auto; + height: auto; + z-index: -100; + -webkit-transform: translateX(-50%) translateY(-50%); + transform: translateX(-50%) translateY(-50%); + -webkit-transition: 1s opacity; + transition: 1s opacity; } + +/**===================== + 27. Coming Soon CSS Ends +==========================**/ +/**===================== + 28. Radio CSS Start +==========================**/ +.animate-chk label { + line-height: 1.6; + cursor: pointer; } + .animate-chk label:last-child { + margin-bottom: 0; } + +.checkbox_animated { + cursor: pointer; + position: relative; + margin: 0 1rem 0 0; } + .checkbox_animated:before { + -webkit-transition: -webkit-transform 0.4s cubic-bezier(0.45, 1.8, 0.5, 0.75); + transition: -webkit-transform 0.4s cubic-bezier(0.45, 1.8, 0.5, 0.75); + transition: transform 0.4s cubic-bezier(0.45, 1.8, 0.5, 0.75); + transition: transform 0.4s cubic-bezier(0.45, 1.8, 0.5, 0.75), -webkit-transform 0.4s cubic-bezier(0.45, 1.8, 0.5, 0.75); + -webkit-transform: rotate(-45deg) scale(0, 0); + transform: rotate(-45deg) scale(0, 0); + content: ""; + position: absolute; + left: 0.25rem; + top: 0.225rem; + z-index: 1; + width: 0.75rem; + height: 0.375rem; + border: 2px solid #24695c; + border-top-style: none; + border-right-style: none; } + .checkbox_animated:after { + content: ""; + position: absolute; + top: -0.125rem; + left: 0; + width: 1.3rem; + height: 1.3rem; + background: #fff; + border: 2px solid #e6edef; + cursor: pointer; } + .checkbox_animated:checked:before { + -webkit-transform: rotate(-45deg) scale(1, 1); + transform: rotate(-45deg) scale(1, 1); } + +.radio_animated { + position: relative; + margin: 0 1rem 0 0; + cursor: pointer; } + .radio_animated:before { + -webkit-transition: -webkit-transform 0.4s cubic-bezier(0.45, 1.8, 0.5, 0.75); + transition: -webkit-transform 0.4s cubic-bezier(0.45, 1.8, 0.5, 0.75); + transition: transform 0.4s cubic-bezier(0.45, 1.8, 0.5, 0.75); + transition: transform 0.4s cubic-bezier(0.45, 1.8, 0.5, 0.75), -webkit-transform 0.4s cubic-bezier(0.45, 1.8, 0.5, 0.75); + -webkit-transform: scale(0, 0); + transform: scale(0, 0); + content: ""; + position: absolute; + top: 0; + left: 0.125rem; + z-index: 1; + width: 0.75rem; + height: 0.75rem; + background: #24695c; + border-radius: 50%; } + .radio_animated:after { + content: ""; + position: absolute; + top: -0.25rem; + left: -0.125rem; + width: 1.25rem; + height: 1.25rem; + background: #fff; + border: 2px solid #e6edef; + border-radius: 50%; } + .radio_animated:checked:before { + -webkit-transform: scale(1, 1); + transform: scale(1, 1); } + +.checkbox label { + display: inline-block; + position: relative; + padding-left: 16px; + cursor: pointer; + margin-top: 10px; + margin-bottom: 10px; } + .checkbox label::before { + content: ""; + display: inline-block; + position: absolute; + width: 19px; + height: 19px; + left: 0; + margin-left: -16px; + border: 1px solid #e6edef; + border-radius: 3px; + background-color: #fff; + -webkit-transition: border 0.15s ease-in-out, color 0.15s ease-in-out; + transition: border 0.15s ease-in-out, color 0.15s ease-in-out; } + .checkbox label::after { + display: inline-block; + position: absolute; + width: 16px; + height: 16px; + left: 0; + top: 0; + margin-left: -20px; + padding-left: 3px; + padding-top: 1px; + font-size: 11px; + color: #2b2b2b; } + +.checkbox input[type="checkbox"] { + opacity: 0; } + .checkbox input[type="checkbox"]:focus { + outline-offset: -2px; } + .checkbox input[type="checkbox"]:focus + label::before { + outline-offset: -2px; } + +.checkbox input[type="checkbox"]:checked + label::before { + font-family: themify; + content: "\e64c"; + text-align: center; + line-height: 1.2; } + +.checkbox input[type="checkbox"]:disabled + label { + opacity: 0.65; } + .checkbox input[type="checkbox"]:disabled + label::before { + background-color: #e6edef; + cursor: not-allowed; } + +.checkbox .checkbox-circle label::before { + border-radius: 50%; } + +.checkbox .checkbox-inline { + margin-top: 0; } + +.m-squar label::before { + border-radius: 0; } + +.m-squar .checkbox-circle label::before { + border-radius: 50%; } + +.m-squar .checkbox-inline { + margin-top: 0; } + +.checkbox-primary input[type="checkbox"]:checked + label::before { + border-color: #24695c; + color: #24695c; } + +.checkbox-primary input[type="checkbox"]:checked + label::after { + color: #fff; } + +.checkbox-secondary input[type="checkbox"]:checked + label::before { + border-color: #ba895d; + color: #ba895d; } + +.checkbox-secondary input[type="checkbox"]:checked + label::after { + color: #fff; } + +.checkbox-success input[type="checkbox"]:checked + label::before { + border-color: #1b4c43; + color: #1b4c43; } + +.checkbox-success input[type="checkbox"]:checked + label::after { + color: #fff; } + +.checkbox-danger input[type="checkbox"]:checked + label::before { + border-color: #d22d3d; + color: #d22d3d; } + +.checkbox-danger input[type="checkbox"]:checked + label::after { + color: #fff; } + +.checkbox-info input[type="checkbox"]:checked + label::before { + border-color: #717171; + color: #717171; } + +.checkbox-info input[type="checkbox"]:checked + label::after { + color: #fff; } + +.checkbox-light input[type="checkbox"]:checked + label::before { + border-color: #e6edef; + color: #e6edef; } + +.checkbox-light input[type="checkbox"]:checked + label::after { + color: #fff; } + +.checkbox-dark input[type="checkbox"]:checked + label::before { + border-color: #2c323f; + color: #2c323f; } + +.checkbox-dark input[type="checkbox"]:checked + label::after { + color: #fff; } + +.checkbox-warning input[type="checkbox"]:checked + label::before { + border-color: #e2c636; + color: #e2c636; } + +.checkbox-warning input[type="checkbox"]:checked + label::after { + color: #fff; } + +.checkbox-solid-primary label:before { + background-color: #24695c; + border-color: #24695c; + color: #fff; } + +.checkbox-solid-primary input[type="checkbox"]:checked + label::before { + background-color: #24695c; + border-color: #24695c; + color: #fff; } + +.checkbox-solid-primary input[type="checkbox"]:checked + label::after { + color: #fff; } + +.checkbox-solid-secondary label:before { + background-color: #ba895d; + border-color: #ba895d; + color: #fff; } + +.checkbox-solid-secondary input[type="checkbox"]:checked + label::before { + background-color: #ba895d; + border-color: #ba895d; + color: #fff; } + +.checkbox-solid-secondary input[type="checkbox"]:checked + label::after { + color: #fff; } + +.checkbox-solid-success label:before { + background-color: #1b4c43; + border-color: #1b4c43; + color: #fff; } + +.checkbox-solid-success input[type="checkbox"]:checked + label::before { + background-color: #1b4c43; + border-color: #1b4c43; + color: #fff; } + +.checkbox-solid-success input[type="checkbox"]:checked + label::after { + color: #fff; } + +.checkbox-solid-danger label:before { + background-color: #d22d3d; + border-color: #d22d3d; + color: #fff; } + +.checkbox-solid-danger input[type="checkbox"]:checked + label::before { + background-color: #d22d3d; + border-color: #d22d3d; + color: #fff; } + +.checkbox-solid-danger input[type="checkbox"]:checked + label::after { + color: #fff; } + +.checkbox-solid-info label:before { + background-color: #717171; + border-color: #717171; + color: #fff; } + +.checkbox-solid-info input[type="checkbox"]:checked + label::before { + background-color: #717171; + border-color: #717171; + color: #fff; } + +.checkbox-solid-info input[type="checkbox"]:checked + label::after { + color: #fff; } + +.checkbox-solid-light label:before { + background-color: #e6edef; + border-color: #e6edef; + color: #fff; } + +.checkbox-solid-light input[type="checkbox"]:checked + label::before { + background-color: #e6edef; + border-color: #e6edef; + color: #fff; } + +.checkbox-solid-light input[type="checkbox"]:checked + label::after { + color: #fff; } + +.checkbox-solid-dark label:before { + background-color: #2c323f; + border-color: #2c323f; + color: #fff; } + +.checkbox-solid-dark input[type="checkbox"]:checked + label::before { + background-color: #2c323f; + border-color: #2c323f; + color: #fff; } + +.checkbox-solid-dark input[type="checkbox"]:checked + label::after { + color: #fff; } + +.checkbox-solid-warning label:before { + background-color: #e2c636; + border-color: #e2c636; + color: #fff; } + +.checkbox-solid-warning input[type="checkbox"]:checked + label::before { + background-color: #e2c636; + border-color: #e2c636; + color: #fff; } + +.checkbox-solid-warning input[type="checkbox"]:checked + label::after { + color: #fff; } + +.checkbox-primary label::before { + border-color: #24695c; } + +.checkbox-secondary label::before { + border-color: #ba895d; } + +.checkbox-success label::before { + border-color: #1b4c43; } + +.checkbox-danger label::before { + border-color: #d22d3d; } + +.checkbox-info label::before { + border-color: #717171; } + +.checkbox-light label::before { + border-color: #e6edef; } + +.checkbox-dark label::before { + border-color: #2c323f; } + +.checkbox-warning label::before { + border-color: #e2c636; } + +.m-checkbox-inline .checkbox { + display: inline-block; } + +.m-checkbox-inline .radio { + display: inline-block; } + +.m-checkbox-inline label { + margin-right: 20px; } + +.radio label { + display: inline-block; + position: relative; + padding-left: 5px; + cursor: pointer; } + .radio label::before { + content: ""; + display: inline-block; + position: absolute; + width: 19px; + height: 19px; + left: 0; + margin-left: -20px; + border: 1px solid #e6edef; + border-radius: 50%; + background-color: #fff; + -webkit-transition: border 0.15s ease-in-out; + transition: border 0.15s ease-in-out; } + .radio label::after { + display: inline-block; + position: absolute; + content: " "; + width: 9px; + height: 9px; + left: 5px; + top: 5px; + margin-left: -20px; + border-radius: 50%; + background-color: #898989; + -webkit-transform: scale(0, 0); + transform: scale(0, 0); + -webkit-transition: -webkit-transform 0.1s cubic-bezier(0.8, -0.33, 0.2, 1.33); + transition: -webkit-transform 0.1s cubic-bezier(0.8, -0.33, 0.2, 1.33); + transition: transform 0.1s cubic-bezier(0.8, -0.33, 0.2, 1.33); + transition: transform 0.1s cubic-bezier(0.8, -0.33, 0.2, 1.33), -webkit-transform 0.1s cubic-bezier(0.8, -0.33, 0.2, 1.33); } + +.radio input[type="radio"] { + opacity: 0; } + .radio input[type="radio"]:focus + label::before { + outline-offset: -2px; } + .radio input[type="radio"]:checked + label::after { + -webkit-transform: scale(1, 1); + transform: scale(1, 1); } + .radio input[type="radio"]:disabled + label { + opacity: 0.65; } + .radio input[type="radio"]:disabled + label::before { + cursor: not-allowed; } + +.radio .radio-inline { + margin-top: 0; } + +.radio-primary input[type="radio"] + label::before { + border-color: #24695c; } + +.radio-primary input[type="radio"] + label::after { + background-color: #24695c; } + +.radio-primary input[type="radio"]:checked + label::before { + border-color: #24695c; } + +.radio-primary input[type="radio"]:checked + label::after { + background-color: #24695c; } + +.radio-secondary input[type="radio"] + label::before { + border-color: #ba895d; } + +.radio-secondary input[type="radio"] + label::after { + background-color: #ba895d; } + +.radio-secondary input[type="radio"]:checked + label::before { + border-color: #ba895d; } + +.radio-secondary input[type="radio"]:checked + label::after { + background-color: #ba895d; } + +.radio-success input[type="radio"] + label::before { + border-color: #1b4c43; } + +.radio-success input[type="radio"] + label::after { + background-color: #1b4c43; } + +.radio-success input[type="radio"]:checked + label::before { + border-color: #1b4c43; } + +.radio-success input[type="radio"]:checked + label::after { + background-color: #1b4c43; } + +.radio-danger input[type="radio"] + label::before { + border-color: #d22d3d; } + +.radio-danger input[type="radio"] + label::after { + background-color: #d22d3d; } + +.radio-danger input[type="radio"]:checked + label::before { + border-color: #d22d3d; } + +.radio-danger input[type="radio"]:checked + label::after { + background-color: #d22d3d; } + +.radio-info input[type="radio"] + label::before { + border-color: #717171; } + +.radio-info input[type="radio"] + label::after { + background-color: #717171; } + +.radio-info input[type="radio"]:checked + label::before { + border-color: #717171; } + +.radio-info input[type="radio"]:checked + label::after { + background-color: #717171; } + +.radio-light input[type="radio"] + label::before { + border-color: #e6edef; } + +.radio-light input[type="radio"] + label::after { + background-color: #e6edef; } + +.radio-light input[type="radio"]:checked + label::before { + border-color: #e6edef; } + +.radio-light input[type="radio"]:checked + label::after { + background-color: #e6edef; } + +.radio-dark input[type="radio"] + label::before { + border-color: #2c323f; } + +.radio-dark input[type="radio"] + label::after { + background-color: #2c323f; } + +.radio-dark input[type="radio"]:checked + label::before { + border-color: #2c323f; } + +.radio-dark input[type="radio"]:checked + label::after { + background-color: #2c323f; } + +.radio-warning input[type="radio"] + label::before { + border-color: #e2c636; } + +.radio-warning input[type="radio"] + label::after { + background-color: #e2c636; } + +.radio-warning input[type="radio"]:checked + label::before { + border-color: #e2c636; } + +.radio-warning input[type="radio"]:checked + label::after { + background-color: #e2c636; } + +/**===================== + 28. Radio CSS Ends +==========================**/ +/**===================== + 29. Form Input CSS Start +==========================**/ +.icon-addon .addon-md .glyphicon, .icon-addon .addon-md .fa { + position: absolute; + z-index: 2; + left: 10px; + font-size: 14px; + width: 20px; + margin-left: -2.5px; + text-align: center; + padding: 10px 0; + top: 1px; } + +.icon-addon .glyphicon, .icon-addon .fa { + position: absolute; + z-index: 2; + left: 10px; + font-size: 14px; + width: 20px; + margin-left: -2.5px; + text-align: center; + padding: 10px 0; + top: 1px; } + +.input-group-square .input-group-text, .input-group-square .form-control { + border-radius: 0; } + +.input-group-solid .input-group-text, .input-group-solid .form-control { + background: #e6edef; } + +.input-group-air { + -webkit-box-shadow: 0 3px 20px 0 #efefef; + box-shadow: 0 3px 20px 0 #efefef; } + +.icon-addon { + position: relative; + color: #4c5667; + display: block; } + .icon-addon:after { + display: table; + content: ""; + clear: both; } + .icon-addon:before { + display: table; + content: ""; } + .icon-addon .addon-md .form-control { + padding-left: 30px; + float: left; + font-weight: normal; } + .icon-addon .form-control { + padding-left: 30px; + float: left; + font-weight: normal; } + +.pill-input-group div:last-child span { + border-top-right-radius: 1.3rem; + border-bottom-right-radius: 1.3rem; } + +.pill-input-group div:first-child span { + border-top-left-radius: 1.3rem; + border-bottom-left-radius: 1.3rem; } + +/**===================== + 29. Form Input CSS Ends +==========================**/ +/**===================== + 30. Data-table CSS Start +==========================**/ +div.dt-button-background { + display: none !important; } + +div.DTS div.dataTables_scrollBody table { + z-index: 1; } + +.dataTables_wrapper { + padding: 0; + width: 100%; } + .dataTables_wrapper.no-footer .dataTables_scrollBody { + border-bottom: 1px solid #e6edef; } + .dataTables_wrapper .dt-buttons .btn { + border-radius: 0.25rem !important; } + .dataTables_wrapper .btn-group button { + margin-right: 5px; } + .dataTables_wrapper button { + font-weight: 400; + padding: 0.375rem 0.75rem; + font-size: 1rem; + border-radius: 0.25rem; + color: #fff; + background-color: #24695c; + border: 1px solid #fff; } + .dataTables_wrapper + .dataTables_wrapper { + margin-top: 20px; } + .dataTables_wrapper .dataTables_paginate { + margin-left: 15px !important; + border: 1px solid #e6edef; + border-radius: 0.25rem; + padding-top: 0; } + .dataTables_wrapper .dataTables_paginate .paginate_button { + margin: 0; } + .dataTables_wrapper .dataTables_paginate .paginate_button.current, .dataTables_wrapper .dataTables_paginate .paginate_button:active { + background: #24695c; + color: #fff !important; + -webkit-box-shadow: none; + box-shadow: none; } + .dataTables_wrapper .dataTables_paginate .paginate_button:hover { + border: 1px solid #24695c; + color: #2c323f !important; + background: transparent !important; } + .dataTables_wrapper .dataTables_length { + margin-bottom: 30px; } + .dataTables_wrapper .dataTables_length select { + background-color: #fff; + border-color: #e6edef; + color: #2c323f; + padding: 0 10px; + margin: 0 10px; + height: 2.7142em; } + .dataTables_wrapper table.dataTable { + border: 1px solid #efefef; } + .dataTables_wrapper table.dataTable tbody td, .dataTables_wrapper table.dataTable tbody th { + background-color: #fff; + border: 1px solid #e6edef; } + .dataTables_wrapper table.dataTable tbody td.select-checkbox, .dataTables_wrapper table.dataTable tbody th.select-checkbox { + padding-right: 40px !important; } + .dataTables_wrapper table.dataTable tbody td.select-checkbox:before, .dataTables_wrapper table.dataTable tbody th.select-checkbox:before { + right: 20px; + top: 22px; + left: unset; } + .dataTables_wrapper table.dataTable thead th, .dataTables_wrapper table.dataTable thead td { + border-bottom: 2px solid #e6edef; } + .dataTables_wrapper table.dataTable th, .dataTables_wrapper table.dataTable td { + padding: 0.75rem; + border-color: #e6edef; } + .dataTables_wrapper .dataTables_filter { + margin-bottom: 25px; + margin-left: 15px; } + .dataTables_wrapper .dataTables_filter input[type="search"] { + border: 1px solid #efefef; + padding: 0 10px; + margin-left: 10px; + height: 37px; + border-radius: 0; } + +.dataTables_scrollHeadInner { + width: 100% !important; } + +table .fixedHeader-floating { + position: fixed !important; + background-color: #fff; } + +table .box > div { + padding: 5px 15px; + background-color: #24695c; + display: inline-block; + color: #fff; + border-radius: 5px; + margin-bottom: 15px; + margin-right: 15px; } + +table.dataTable.fixedHeader-locked, table.dataTable.fixedHeader-floating { + width: calc(100vw - 250px) !important; + max-width: calc(100vw - 250px) !important; + overflow: hidden !important; + right: 0 !important; + z-index: 99; + left: 260px !important; } + +table.dataTable:not(.fixedHeader-locked):not(.fixedHeader-floating) { + width: 100% !important; } + +table.dataTable { + border-collapse: collapse !important; + margin-top: 0 !important; } + table.dataTable thead .sorting:before, table.dataTable thead .sorting:after, table.dataTable thead .sorting_asc:before, table.dataTable thead .sorting_asc:after, table.dataTable thead .sorting_desc:before, table.dataTable thead .sorting_desc:after, table.dataTable thead .sorting_asc_disabled:before, table.dataTable thead .sorting_asc_disabled:after, table.dataTable thead .sorting_desc_disabled:before, table.dataTable thead .sorting_desc_disabled:after { + bottom: 12px !important; } + table.dataTable input, table.dataTable select { + border: 1px solid #efefef; + height: 37px; } + +.toolbar { + padding: 5px 15px; + background-color: #24695c; + display: inline-block; + color: #fff; + border-radius: 5px; + margin-bottom: 15px; + margin-right: 15px; } + +code.option { + color: #d22d3d !important; } + +code.api { + color: #1b4c43 !important; } + +.dt-ext .dataTables_wrapper .page-item.active .page-link { + background-color: #24695c; + border-color: #24695c; + color: #fff; } + +.dt-ext .dataTables_wrapper .dataTables_paginate { + border: none; } + .dt-ext .dataTables_wrapper .dataTables_paginate .paginate_button { + padding: 0; + border: none; } + .dt-ext .dataTables_wrapper .dataTables_paginate .paginate_button.disabled, .dt-ext .dataTables_wrapper .dataTables_paginate .paginate_button.hover, .dt-ext .dataTables_wrapper .dataTables_paginate .paginate_button.active { + border: none !important; } + .dt-ext .dataTables_wrapper .dataTables_paginate .page-link { + margin-left: 0px; + color: #24695c; } + +.dt-ext .dataTables_wrapper button.dt-button, .dt-ext .dataTables_wrapper div.dt-button, .dt-ext .dataTables_wrapper a.dt-button, .dt-ext .dataTables_wrapper button.dt-button:focus:not(.disabled), .dt-ext .dataTables_wrapper div.dt-button:focus:not(.disabled), .dt-ext .dataTables_wrapper a.dt-button:focus:not(.disabled), .dt-ext .dataTables_wrapper button.dt-button:active:not(.disabled), .dt-ext .dataTables_wrapper button.dt-button.active:not(.disabled), .dt-ext .dataTables_wrapper div.dt-button:active:not(.disabled), .dt-ext .dataTables_wrapper div.dt-button.active:not(.disabled), .dt-ext .dataTables_wrapper a.dt-button:active:not(.disabled), .dt-ext .dataTables_wrapper a.dt-button.active:not(.disabled) { + background-color: #24695c; + border-color: #24695c; + border-radius: 2px; + color: #fff; + background-image: none; + font-size: 14px; } + +.dt-ext .dataTables_wrapper button.dt-button.btn-success, .dt-ext .dataTables_wrapper div.dt-button.btn-success, .dt-ext .dataTables_wrapper a.dt-button.btn-success { + background-color: #1b4c43; + border-color: #1b4c43; } + +.dt-ext .dataTables_wrapper button.dt-button.btn-primary, .dt-ext .dataTables_wrapper div.dt-button.btn-primary, .dt-ext .dataTables_wrapper a.dt-button.btn-primary { + background-color: #24695c; + border-color: #24695c; } + +.dt-ext .dataTables_wrapper button.dt-button.btn-danger, .dt-ext .dataTables_wrapper div.dt-button.btn-danger, .dt-ext .dataTables_wrapper a.dt-button.btn-danger { + background-color: #d22d3d; + border-color: #d22d3d; } + +.dt-ext .dataTables_wrapper table.dataTable th.focus, .dt-ext .dataTables_wrapper table.dataTable td.focus { + outline: 3px solid #24695c; } + +.dt-ext .dataTables_wrapper table.dataTable.display tbody > tr.odd.selected > .sorting_1, .dt-ext .dataTables_wrapper table.dataTable.order-column.stripe tbody > tr.odd.selected > .sorting_1 { + background-color: #3eb59f; } + +.dt-ext .dataTables_wrapper table.dataTable.stripe tbody > tr.odd.selected, .dt-ext .dataTables_wrapper table.dataTable.stripe tbody > tr.odd > .selected, .dt-ext .dataTables_wrapper table.dataTable.display tbody > tr.odd.selected, .dt-ext .dataTables_wrapper table.dataTable.display tbody > tr.odd > .selected { + background-color: #3eb59f; } + +.dt-ext .dataTables_wrapper table.dataTable.display tbody > tr.even.selected > .sorting_1, .dt-ext .dataTables_wrapper table.dataTable.order-column.stripe tbody > tr.even.selected > .sorting_1 { + background-color: #3eb59f; } + +.dt-ext .dataTables_wrapper table.dataTable tbody > tr.selected, .dt-ext .dataTables_wrapper table.dataTable tbody > tr > .selected { + background-color: #3eb59f; } + +td.highlight { + background-color: #e6edef !important; } + +td.details-control { + background: url("../images/details_open.png") no-repeat center center; + cursor: pointer; } + +tr.shown td.details-control { + background: url("../images/details_close.png") no-repeat center center; } + +.dataTables_scroll ~ .dataTables_paginate { + margin-top: 20px !important; } + +.product-table th:last-child { + min-width: 120px; } + +.product-table h6 { + font-weight: 600; + color: #2c323f; } + +table.dataTable.display tbody tr { + border: 1px solid #e6edef; } + +/**===================== + 30. Data-table CSS Ends +==========================**/ +/**===================== + 31. JS datagrid CSS Start +==========================**/ +.jsgrid .jsgrid-grid-body .jsgrid-cell { + padding: 0.75rem; } + +.jsgrid .jsgrid-pager-container { + text-align: right; } + +.jsgrid .jsgrid-pager { + padding: 0; + margin-top: 20px; } + .jsgrid .jsgrid-pager .jsgrid-pager-nav-inactive-button { + margin-right: -5px; } + .jsgrid .jsgrid-pager .jsgrid-pager-nav-inactive-button:first-child { + border-radius: 5px 0 0 5px; } + .jsgrid .jsgrid-pager .jsgrid-pager-page ~ .jsgrid-pager-nav-button { + margin-left: -5px; } + .jsgrid .jsgrid-pager .jsgrid-pager-page ~ .jsgrid-pager-nav-button:last-child { + border-radius: 0 5px 5px 0; } + .jsgrid .jsgrid-pager [class*="jsgrid-pager"] { + display: inline-block; + min-width: 1.5em; + padding: 0.5em 1em; + border: 1px solid #e6edef; } + .jsgrid .jsgrid-pager .jsgrid-pager-page a { + color: #2c323f; } + .jsgrid .jsgrid-pager .jsgrid-pager-current-page { + color: #2c323f; } + +.jsgrid .jsgrid-selected-row > .jsgrid-cell { + background: #e6edef; + border-color: #fafafa; } + +.jsgrid .jsgrid-header-row > .jsgrid-header-cell { + padding: 0.75rem; } + +/**===================== + 31. JS datagrid CSS Ends +==========================**/ +/**===================== + 32. pagination CSS Start +==========================**/ +/*test Nav bar color */ +.pagination-theme .page-item .page-link { + color: #24695c !important; } + .pagination-theme .page-item .page-link:focus { + -webkit-box-shadow: none; + box-shadow: none; } + +.pagination-theme .page-item.active .page-link { + color: #fff !important; + background-color: #24695c !important; + border-color: #24695c; } + +.pagination-primary .page-item .page-link { + color: #24695c !important; } + .pagination-primary .page-item .page-link:focus { + -webkit-box-shadow: none; + box-shadow: none; } + +.pagination-primary .page-item.active .page-link { + color: #fff !important; + background-color: #24695c !important; + border-color: #24695c; } + +.pagination-secondary .page-item .page-link { + color: #ba895d !important; } + .pagination-secondary .page-item .page-link:focus { + -webkit-box-shadow: none; + box-shadow: none; } + +.pagination-secondary .page-item.active .page-link { + color: #fff !important; + background-color: #ba895d !important; + border-color: #ba895d; } + +.pagination-success .page-item .page-link { + color: #1b4c43 !important; } + .pagination-success .page-item .page-link:focus { + -webkit-box-shadow: none; + box-shadow: none; } + +.pagination-success .page-item.active .page-link { + color: #fff !important; + background-color: #1b4c43 !important; + border-color: #1b4c43; } + +.pagination-danger .page-item .page-link { + color: #d22d3d !important; } + .pagination-danger .page-item .page-link:focus { + -webkit-box-shadow: none; + box-shadow: none; } + +.pagination-danger .page-item.active .page-link { + color: #fff !important; + background-color: #d22d3d !important; + border-color: #d22d3d; } + +.pagination-info .page-item .page-link { + color: #717171 !important; } + .pagination-info .page-item .page-link:focus { + -webkit-box-shadow: none; + box-shadow: none; } + +.pagination-info .page-item.active .page-link { + color: #fff !important; + background-color: #717171 !important; + border-color: #717171; } + +.pagination-dark .page-item .page-link { + color: #2c323f !important; } + .pagination-dark .page-item .page-link:focus { + -webkit-box-shadow: none; + box-shadow: none; } + +.pagination-dark .page-item.active .page-link { + color: #fff !important; + background-color: #2c323f !important; + border-color: #2c323f; } + +.pagination-warning .page-item .page-link { + color: #e2c636 !important; } + .pagination-warning .page-item .page-link:focus { + -webkit-box-shadow: none; + box-shadow: none; } + +.pagination-warning .page-item.active .page-link { + color: #fff !important; + background-color: #e2c636 !important; + border-color: #e2c636; } + +/**===================== + 32. pagination CSS Ends +==========================**/ +/**===================== + 33. Ecommerce CSS Start +==========================**/ +/**====== Product Start ======**/ +.toggle-data { + cursor: pointer; } + +.product-sidebar .filter-section .card .card-header { + padding: 16px 30px; + border-radius: 5px; } + .product-sidebar .filter-section .card .card-header h6 { + position: relative; } + .product-sidebar .filter-section .card .card-header h6 .pull-right i { + position: absolute; + top: 4px; + left: 0; + font-size: 10px; + width: 100%; + height: 10px; + text-align: right; + cursor: pointer; } + +.product-wrapper .product-sidebar .filter-section .card .left-filter { + z-index: 0; + opacity: 0; + visibility: hidden; + height: 0; + -webkit-transition: 0.3s; + transition: 0.3s; } + .product-wrapper .product-sidebar .filter-section .card .left-filter .product-filter .irs-with-grid { + margin-bottom: 15px; } + .product-wrapper .product-sidebar .filter-section .card .left-filter .card-body { + padding: 20px; } + +.product-wrapper .product-grid .product-wrapper-grid { + margin-left: 0; + -webkit-transition: 0.3s; + transition: 0.3s; } + +.product-wrapper.sidebaron .product-sidebar .filter-section .card .left-filter { + z-index: 3; + opacity: 1; + visibility: visible; + position: absolute; + width: 100%; + top: 53px; + height: auto; + border: 1px solid #e6edef; + background-color: #fff; } + +.product-filter .checkbox-animated label { + color: #999; } + +.product-table img { + height: 40px; } + +.product-table span, .product-table p { + color: #59667a; } + +.product-table tbody tr td:first-child { + text-align: center; } + +.product-table .dataTables_wrapper button { + padding: 2px 12px; + font-size: 14px; } + +.d-none-productlist { + display: none; } + .d-none-productlist svg { + vertical-align: middle; + cursor: pointer; } + +.product-wrapper-grid.list-view .product-box { + display: -webkit-box; + display: -ms-flexbox; + display: flex; + -webkit-box-align: center; + -ms-flex-align: center; + align-items: center; } + .product-wrapper-grid.list-view .product-box .product-img { + width: 20%; } + .product-wrapper-grid.list-view .product-box .product-details { + text-align: left; } + +.product-wrapper-grid.list-view [class*="col-"] { + width: 100%; } + +.slider-product { + padding: 15px 0; + border-top: 1px solid #e6edef; + border-bottom: 1px solid #e6edef; + margin-bottom: 15px; } + +.products-total { + display: -webkit-box; + display: -ms-flexbox; + display: flex; + -webkit-box-align: center; + -ms-flex-align: center; + align-items: center; } + +.grid-options { + height: 33px; + margin-left: 10px; } + .grid-options ul li a { + position: relative; } + .grid-options ul li a .line-grid { + position: absolute; + width: 4px; + height: 15px; + top: 9px; } + .grid-options ul li a .line-grid-1 { + left: 12px; } + .grid-options ul li a .line-grid-2 { + left: 18px; } + .grid-options ul li a .line-grid-3 { + left: 36px; } + .grid-options ul li a .line-grid-4 { + left: 42px; } + .grid-options ul li a .line-grid-5 { + left: 48px; } + .grid-options ul li a .line-grid-6 { + left: 66px; } + .grid-options ul li a .line-grid-7 { + left: 72px; } + .grid-options ul li a .line-grid-8 { + left: 78px; } + .grid-options ul li a .line-grid-9 { + left: 84px; } + .grid-options ul li a .line-grid-10 { + left: 103px; } + .grid-options ul li a .line-grid-11 { + left: 109px; } + .grid-options ul li a .line-grid-12 { + left: 115px; } + .grid-options ul li a .line-grid-13 { + left: 121px; } + .grid-options ul li a .line-grid-14 { + left: 127px; } + .grid-options ul li a .line-grid-15 { + left: 133px; } + +.square-product-setting { + height: 36px; + vertical-align: middle; } + .square-product-setting a { + color: #242934; } + .square-product-setting .icon-grid { + padding: 7px; + background-color: rgba(36, 105, 92, 0.05); + display: -webkit-box; + display: -ms-flexbox; + display: flex; + -webkit-box-align: center; + -ms-flex-align: center; + align-items: center; + margin: 0 10px; } + .square-product-setting .icon-grid svg { + width: 20px; + height: 20px; + color: #24695c; } + +.product-filter .banner-product { + margin-top: 15px; } + +.product-filter h6 { + margin-bottom: 15px; + font-size: 18px; } + +.product-filter .checkbox-animated label { + font-weight: 500; } + +.product-filter .color-selector { + line-height: 0.9; } + .product-filter .color-selector ul li { + display: inline-block; + width: 20px; + height: 20px; + border: 1px solid #444; + border-radius: 100%; + cursor: pointer; } + .product-filter .color-selector ul li.white { + background-color: #fff; } + .product-filter .color-selector ul li.gray { + background-color: rgba(36, 41, 52, 0.7); } + .product-filter .color-selector ul li.black { + background-color: #000; } + .product-filter .color-selector ul li.orange { + background-color: #ffb17a; } + .product-filter .color-selector ul li.green { + background-color: #6fb866; } + .product-filter .color-selector ul li.pink { + background-color: pink; } + .product-filter .color-selector ul li.yellow { + background-color: #f2f896; } + .product-filter .color-selector ul li.blue { + background-color: #63b4f2; } + .product-filter .color-selector ul li.red { + background-color: #ff647f; } + +.product-filter.new-products { + margin-top: 20px; } + .product-filter.new-products button { + width: auto; } + .product-filter.new-products .owl-theme .owl-nav { + margin-top: 0; + position: absolute; + top: -46px; + right: 0; } + .product-filter.new-products .owl-theme .owl-nav button:focus { + outline: transparent; } + .product-filter.new-products .owl-theme .owl-nav button span { + font-size: 20px; } + .product-filter.new-products .owl-theme .owl-nav button span:focus { + outline-color: transparent; } + .product-filter.new-products .owl-theme .owl-nav [class*='owl-']:hover { + background-color: transparent; + color: inherit; } + .product-filter.new-products .owl-theme .owl-item .item .product-box .media { + display: -webkit-box; + display: -ms-flexbox; + display: flex; + -webkit-box-align: center; + -ms-flex-align: center; + align-items: center; } + .product-filter.new-products .owl-theme .owl-item .item .product-box .product-img { + width: 40%; } + .product-filter.new-products .owl-theme .owl-item .item .product-box .product-details { + padding: 25px 0; + display: -webkit-box; + display: -ms-flexbox; + display: flex; + -webkit-box-align: center; + -ms-flex-align: center; + align-items: center; } + .product-filter.new-products .owl-theme .owl-item .item .product-box .product-details ul li { + display: inline-block; } + .product-filter.new-products .owl-theme .owl-item .item .product-box + .product-box { + margin-top: 15px; } + +.select2-drpdwn-product .form-control { + margin-bottom: 10px; + height: 36px; + background-color: rgba(36, 105, 92, 0.05); + color: #24695c; + font-weight: 600; } + +.feature-products form .form-group { + position: relative; } + .feature-products form .form-group input { + margin-bottom: 15px; + height: 50px; + padding-left: 30px; } + .feature-products form .form-group i { + position: absolute; + top: 17px; + right: 30px; + color: #898989; } + +.product-box { + background-color: #fff; } + .product-box .product-details { + padding: 25px; } + .product-box .product-details h4 { + font-weight: 600; + color: #242934; + font-size: 20px; + line-height: 1; + margin-bottom: 5px; + text-transform: capitalize; } + .product-box .product-details p { + margin-bottom: 5px; + color: #999; + font-weight: 500; } + .product-box .product-details h6 { + color: #242934; + text-transform: uppercase; + margin-bottom: 10px; } + .product-box .product-details span { + color: #898989; } + .product-box .modal .modal-header { + background-color: #fff; } + .product-box .modal .modal-header .product-box .product-details { + padding: 25px 0; } + .product-box .modal .modal-header .product-box .product-details h6 { + text-transform: capitalize; } + .product-box .modal .modal-header .product-box .product-details .product-price { + margin-bottom: 10px; } + .product-box .modal .modal-header .product-box .product-details .product-view { + padding: 20px 0; + border-top: 1px solid rgba(36, 105, 92, 0.2); + border-bottom: 1px solid rgba(36, 105, 92, 0.2); } + .product-box .modal .modal-header .product-box .product-details .product-size { + margin: 20px 0; } + .product-box .modal .modal-header .product-box .product-details .product-size ul li { + display: inline-block; + background-color: rgba(36, 105, 92, 0.1); } + .product-box .modal .modal-header .product-box .product-details .product-size ul li button { + color: #24695c; + width: 35px; + height: 35px; + font-size: 16px; + padding: 0; + font-weight: 500; } + .product-box .modal .modal-header .product-box .product-details .product-size ul li:nth-child(n+2) { + margin-left: 15px; } + .product-box .modal .modal-header .product-box .product-details .product-size ul li.active button { + background-color: #24695c !important; + color: #fff; } + .product-box .modal .modal-header .product-box .product-details .product-qnty fieldset { + margin-bottom: 20px; } + .product-box .modal .modal-header .product-box .product-details .product-qnty fieldset .input-group { + width: 35%; } + .product-box .modal .modal-header .product-box .product-details .product-qnty fieldset .input-group .btn { + padding: 5px 12px; } + .product-box .modal .modal-header .product-box .product-details .product-qnty .addcart-btn .btn { + font-weight: 600; } + .product-box .product-img { + position: relative; } + .product-box .product-img .product-hover { + position: absolute; + height: 100%; + width: 100%; + top: 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; + background-color: rgba(0, 0, 0, 0.2); + opacity: 0; + border-radius: 100%; + -webkit-transform: scale(0); + transform: scale(0); + -webkit-transition: all 0.3s ease; + transition: all 0.3s ease; } + .product-box .product-img .product-hover ul { + display: -webkit-box; + display: -ms-flexbox; + display: flex; + -webkit-box-align: center; + -ms-flex-align: center; + align-items: center; } + .product-box .product-img .product-hover ul i { + font-size: 14px; } + .product-box .product-img .product-hover ul li { + -webkit-box-shadow: 1px 1px 2px 1px rgba(0, 0, 0, 0.08); + box-shadow: 1px 1px 2px 1px rgba(0, 0, 0, 0.08); + background-color: #fff; + font-size: 18px; + border-radius: 100%; + line-height: 1.6; + height: 45px; + width: 45px; + margin: 0 3px; + display: -webkit-box; + display: -ms-flexbox; + display: flex; + -webkit-box-align: center; + -ms-flex-align: center; + align-items: center; + align-items: center; + -webkit-box-pack: center; + -ms-flex-pack: center; + justify-content: center; + cursor: pointer; } + .product-box .product-img .product-hover ul li a { + color: #24695c; } + .product-box .product-img .product-hover ul li .btn { + padding: 0; } + .product-box .product-img .product-hover ul li:hover { + background-color: #24695c; + -webkit-transition: all 0.3s ease; + transition: all 0.3s ease; } + .product-box .product-img .product-hover ul li:hover .btn, .product-box .product-img .product-hover ul li:hover i { + color: #fff; } + .product-box:hover .product-hover { + opacity: 1; + border-radius: 0%; + -webkit-transform: scale(1); + transform: scale(1); + -webkit-transition: all 0.3s ease; + transition: all 0.3s ease; } + +.pro-filter-sec { + display: -webkit-box; + display: -ms-flexbox; + display: flex; + -webkit-box-pack: justify; + -ms-flex-pack: justify; + justify-content: space-between; } + .pro-filter-sec .product-sidebar { + width: 375px; + min-width: 375px; + margin-right: 30px; } + .pro-filter-sec .product-search { + width: 100%; } + +.product-page-main { + padding: 30px; } + .product-page-main .owl-item .item { + border: 1px solid #e6edef; + border-radius: 5px; } + .product-page-main .owl-item.current .item { + border: 1px solid #24695c; } + .product-page-main .product-slider { + margin-bottom: 20px; } + .product-page-main .product-color { + margin-top: 10px; + margin-bottom: 10px; } + .product-page-main .pro-group { + padding-top: 15px; + padding-bottom: 15px; } + .product-page-main .pro-group tr { + line-height: 2; } + .product-page-main .pro-group:nth-child(n+2) { + border-top: 1px solid #e6edef; } + .product-page-main .pro-group .btn { + font-weight: 600; } + .product-page-main .pro-slide-right { + margin-bottom: -20px; } + .product-page-main .pro-slide-right img { + width: auto; + height: 140px; } + .product-page-main .pro-slide-right .slick-slide { + margin-bottom: 20px; } + +.product-page-details { + display: -webkit-box; + display: -ms-flexbox; + display: flex; + -webkit-box-pack: justify; + -ms-flex-pack: justify; + justify-content: space-between; } + .product-page-details h4 { + color: #242934; + text-transform: uppercase; + font-size: 18px; } + .product-page-details span { + padding-left: 15px; } + .product-page-details h3 { + font-weight: 700; + font-size: 24px; } + +.br-theme-fontawesome-stars .br-widget a, .br-theme-fontawesome-stars .br-widget a.br-selected:after, .br-theme-fontawesome-stars .br-widget a.br-active:after { + color: #ffa800 !important; + font: normal normal normal 14px/1 FontAwesome; } + +.product-price { + font-size: 16px; + font-weight: 700; + color: #24695c; } + .product-price del { + color: #717171; + margin-left: 15px; + font-weight: 600; + font-size: 14px; } + +.product-color { + line-height: 1; } + .product-color li { + display: inline-block; + border-radius: 100%; + height: 20px; + width: 20px; } + +.product-page-main p { + font-size: 15px; + font-weight: 500; + color: #717171; } + +.product-page-main .nav-link { + text-transform: uppercase; + font-weight: 600; } + +.product-page-main .pro-group h6 { + text-transform: capitalize; } + +.product-social li a { + font-size: 15px; + border: 1px solid #e6edef; + border-radius: 100%; + height: 35px; + width: 35px; + display: inline-block; + text-align: center; + line-height: 2.3; + -webkit-transition: all 0.3s ease; + transition: all 0.3s ease; } + .product-social li a:hover { + background-color: #24695c; } + .product-social li a:hover i { + color: #fff; } + +.product-social li:nth-child(n+2) { + margin-left: 10px; } + +.filter-block h4 { + margin-bottom: 20px; + font-weight: 700; } + +.filter-block ul li { + color: #999; } + .filter-block ul li .form-check { + margin-bottom: 0; } + .filter-block ul li .form-check label { + margin-bottom: 0; + vertical-align: middle; } + .filter-block ul li .form-check .form-check-input:checked { + background-color: #24695c; } + .filter-block ul li:nth-child(n+2) { + margin-top: 15px; } + +ul.pro-services li svg { + color: #24695c; + margin-right: 15px; } + +ul.pro-services li h5 { + font-weight: 600; + font-size: 16px; + margin-bottom: 5px; } + +ul.pro-services li p { + font-size: 14px; } + +ul.pro-services li:nth-child(n+2) { + margin-top: 20px; } + +.support-ticket .pro-gress .total-num { + margin-bottom: 0; + font-weight: 600; } + +.support-ticket .pro-gress .progress-showcase { + margin-top: 30px; } + +.support-ticket .pro-gress span { + font-weight: 500; + color: #717171; } + +.support-ticket .pro-gress ul li { + font-weight: 600; + color: #717171; + font-size: 12px; } + .support-ticket .pro-gress ul li span i { + margin-left: 10px; } + +.list-products .product-table table th { + min-width: 150px; } + +/**====== Product Ends ======**/ +.payment-opt li { + display: inline-block; } + .payment-opt li img { + height: 20px; + margin: 15px 15px 0 0; } + +@media (max-width: 1500px) { + .product-page-main .pro-slide-right img { + height: 130px; } } + +@media (max-width: 1470px) { + .pro-filter-sec .product-sidebar { + width: 320px; + min-width: 320px; } } + +@media (max-width: 1366px) { + .support-ticket .pro-gress .card-body { + padding: 20px; } + .pro-filter-sec .product-sidebar { + width: 250px; + min-width: 250px; } } + +@media (max-width: 1280px) and (min-width: 1200px) { + .product-page-main .xl-50 { + max-width: 50% !important; + -webkit-box-flex: 0 !important; + -ms-flex: 0 0 50% !important; + flex: 0 0 50% !important; } + .product-page-main .pro-slide-right img { + height: 120px; } } + +@media (max-width: 1280px) { + .filter-block ul li:nth-child(n+2) { + margin-top: 10px; } + ul.pro-services li:nth-child(n+2) { + margin-top: 10px; } } + +@media (max-width: 1199px) { + .product-page-main .pro-slide-right .slick-slide { + margin-top: 20px; } + .product-page-main .pro-slide-right .slide-box { + margin-right: 5px; + margin-left: 5px; } + .product-page-main .pro-slide-right img { + width: 100%; + height: auto; } } + +@media (max-width: 575px) { + .payment-details .theme-form .p-r-0 { + padding-right: 12px; } + .product-sidebar .filter-section .card { + overflow: unset !important; + -webkit-box-shadow: none !important; + box-shadow: none !important; } } + +@media (max-width: 767px) { + .support-ticket-font .total-num { + font-size: 12px; } + .support-ticket .card .card-body { + padding: 15px; } + .support-ticket .pro-gress span { + font-size: 12px; } + .support-ticket .pro-gress .card-body { + padding: 15px; } + .support-ticket .pro-gress ul li { + font-size: 10px; } + .support-ticket .pro-gress ul li span i { + margin-left: 5px; } + .support-ticket .pro-gress .progress-showcase { + margin-top: 15px; } } + +@media (max-width: 1199px) { + .xl-cs-35 { + -webkit-box-ordinal-group: 0; + -ms-flex-order: -1; + order: -1; } + .product-page-main .card .card-body { + padding: 20px; } } + +@media (max-width: 991px) { + .product-box .modal .modal-header .product-box .product-details { + padding-left: 15px; + padding-right: 15px; + padding-top: 25px; + padding-bottom: 0; } + .product-box .modal .modal-header .product-box .product-details .product-view { + padding-top: 15px; + padding-bottom: 15px; } + .product-box .modal .modal-header .product-box .product-details .product-size { + margin-top: 15px; + margin-bottom: 15px; } + .product-box .modal .modal-header .product-box .product-details .product-size ul li button { + width: 30px; + height: 30px; + font-size: 14px; } + .product-box .modal .modal-header .product-box .product-details .product-size ul li:nth-child(n+2) { + margin-left: 10px; } } + +@media (max-width: 767px) { + .product-page-main .singale-pro-slide img { + width: 50%; + height: auto; + margin-right: auto; + margin-left: auto; } + .product-page-main .pro-group .btn { + padding: 7px 14px; } } + +@media (max-width: 480px) { + .learning-box .details-main { + margin: 15px; } + .learning-box .details-main p { + font-size: 13px; } + .blog-box.blog-list .blog-details hr { + margin-top: 5px; + margin-bottom: 5px; } + .product-page-main .pro-group .btn { + padding: 7px 8px; + font-size: 12px; } } + +@media (max-width: 420px) { + ul.pro-services li h5 { + margin-bottom: 0; } + .product-page-main .singale-pro-slide img { + width: 100%; } + .product-box .modal .modal-header .product-box .product-details .product-qnty fieldset .input-group { + width: 50%; } + .product-box .modal .modal-header .product-box .product-details .product-qnty .addcart-btn .btn { + padding: 5px 10px; } + .product-page-details { + display: block; } + .product-page-details h3 { + margin-bottom: 5px; } + .product-page-main .pro-slide-right .slick-slide { + margin-top: 15px; } + .product-page-main .pro-group .btn:nth-child(n+2) { + margin-top: 5px; } } + +/**===================== + 33. Ecommerce CSS End +==========================**/ +/**===================== + 34. Pricing CSS Start +==========================**/ +.pricing-content div .pricing-simple, .pricing-content div .pricing-block { + margin-bottom: 0; } + +.pricing-content div .pricing-simple .btn-block { + border-top-left-radius: 0; + border-top-right-radius: 0; } + +.pricing-content-ribbons div .pricing-block { + margin-bottom: 30px; } + +.pricing-content-ribbons div:last-child .pricing-block, .pricing-content-ribbons div:nth-child(7) .pricing-block, .pricing-content-ribbons div:nth-child(8) .pricing-block { + margin-bottom: 0; } + +.pricing-card-design-2 .pricing-block .pricing-inner ul { + margin-bottom: 30px; } + .pricing-card-design-2 .pricing-block .pricing-inner ul li { + border-bottom: 1px solid #fafdff; } + +.pricing-block { + overflow: hidden; } + .pricing-block .pricing-header { + position: relative; + height: 170px; } + .pricing-block .pricing-header:before { + content: ''; + position: absolute; + top: 0; + left: 0; + width: 100%; + height: 100%; + border-radius: 0% 0% 50% 50%; + background-color: rgba(36, 105, 92, 0.05); } + .pricing-block .pricing-header h2 { + color: #24695c; + font-weight: 600; + font-size: 30px; + text-transform: uppercase; + margin-top: 30px; } + .pricing-block .pricing-header h2 span { + font-size: 50%; } + .pricing-block .pricing-header .price-box { + background-color: #24695c; + border-radius: 5px; + width: 90px; + height: 90px; + margin-left: auto; + margin-right: auto; + -webkit-transform: rotate(45deg); + transform: rotate(45deg); + 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; + position: absolute; + bottom: -40px; + left: 0; + right: 0; } + .pricing-block .pricing-header .price-box > div { + -webkit-transform: rotate(-45deg); + transform: rotate(-45deg); } + .pricing-block .pricing-header .price-box h3 { + color: #fff; + font-weight: 600; + margin-bottom: 5px; + line-height: 1; + font-size: 24px; } + .pricing-block .pricing-header .price-box p { + color: #fff; + text-transform: capitalize; + line-height: 1; + font-weight: 600; } + .pricing-block svg { + border-top-left-radius: 8px; + border-top-right-radius: 8px; + margin-left: -1px; } + .pricing-block .pricing-list { + padding-top: 90px; + padding-bottom: 30px; } + .pricing-block .pricing-list ul { + padding: 0; } + .pricing-block .pricing-list ul li { + margin-bottom: 20px; } + .pricing-block .pricing-list ul li h6 { + font-weight: 700; + margin-bottom: 0; } + .pricing-block .pricing-list ul li h6 span { + color: #999; + margin-left: 5px; + display: inline-block; } + .pricing-block .pricing-list .pricing-inner { + margin-bottom: 30px; } + +.pricing-simple .card-body { + border-bottom: none; } + .pricing-simple .card-body h3 { + position: relative; + margin-bottom: 38px; + font-weight: 600; } + .pricing-simple .card-body h3:before { + position: absolute; + content: ''; + width: 80px; + height: 1px; + margin: 0 auto; + left: 0; + right: 0; + bottom: -10px; + background-color: #999; } + .pricing-simple .card-body h1 { + font-size: 80px; + line-height: 0.9; + margin-bottom: 30px; + font-weight: 600; + color: #24695c; } + .pricing-simple .card-body h6 { + color: #999; } + +@media only screen and (max-width: 1550px) { + .pricing-block .pricing-header { + height: 150px; } + .pricing-block .pricing-header h2 { + font-size: 22px; } } + +@media only screen and (max-width: 1470px) { + .pricing-col { + margin-bottom: -30px; } + .pricing-col > div { + width: 50%; + margin-bottom: 30px; } + .pricing-block .pricing-header h2 { + font-size: 30px; } } + +@media only screen and (max-width: 1366px) { + .pricing-content div:nth-child(2) .pricing-simple, .pricing-content div:first-child .pricing-simple { + margin-bottom: 30px; } } + +@media screen and (min-width: 768px) and (max-width: 1199px) { + .pricing-block .ribbon-vertical-left { + left: 3px; + top: 0px; } + .pricing-block .ribbon-bookmark { + top: 0; + left: -1px; } + .pricing-block .ribbon-clip-right { + top: 0; } } + +@media only screen and (max-width: 1199px) { + .pricing-block .pricing-inner h3 { + font-size: 20px; } + .pricing-block .pricing-inner ul li h6 { + font-size: 14px; } } + +@media only screen and (max-width: 991px) { + .pricing-content div:nth-child(2) .pricing-simple, .pricing-content div:first-child .pricing-simple { + margin-bottom: 20px; } + .pricing-block .pricing-inner { + padding: 20px 0 20px; } + .pricing-block .pricing-inner ul, .pricing-block .pricing-inner h3 { + margin-bottom: 1px; } + .pricing-simple .card-body h1 { + margin-bottom: 20px; } + .pricing-simple .card-body h3 { + margin-bottom: 28px; } + .pricing-card-design-2 .pricing-block .pricing-inner ul { + margin-bottom: 20px; } } + +@media only screen and (max-width: 767px) { + .pricing-content-ribbons div .pricing-block { + margin-bottom: 20px !important; } + .pricing-content-ribbons div:last-child .pricing-block { + margin-bottom: 0 !important; } + .pricing-content div:last-child .pricing-block { + margin-bottom: 0; } + .pricing-block .pricing-inner { + padding: 15px 0 15px; } + .pricing-block .pricing-inner h3 { + font-size: 28px; } + .pricing-block .pricing-inner ul li h6 { + font-size: 16px; } + .pricing-block .pricing-header h2 { + font-size: 24px; } + .pricing-simple .card-body h1 { + font-size: 60px; } + .pricing-simple .card-body h3 { + font-size: 20px; } } + +@media only screen and (max-width: 575px) { + .pricing-content div .pricing-simple { + margin-bottom: 15px; } + .pricing-content div:last-child .pricing-simple { + margin-bottom: 0; } + .pricing-simple .card-body h1 { + margin-bottom: 15px; + font-size: 45px; } + .pricing-block { + -webkit-box-shadow: none !important; + box-shadow: none !important; } + .pricing-block .pricing-inner { + padding: 15px 0 15px; } + .pricing-card-design-2 .pricing-block .pricing-inner ul { + margin-bottom: 15px; } + .pricing-col > div { + width: 100%; } + .pricing-block .pricing-list .btn { + padding: 5px 15px; + font-size: 16px; } } + +@media only screen and (max-width: 480px) { + .pricing-block .pricing-list { + padding-top: 80px; } + .pricing-block .pricing-list ul li { + margin-bottom: 15px; } + .pricing-block .pricing-list ul li h6 { + font-size: 14px; } + .pricing-block .pricing-list .pricing-inner { + margin-bottom: 25px; } } + +@media only screen and (max-width: 420px) { + .pricing-block .pricing-header { + height: 140px; } + .pricing-block .pricing-header .price-box { + width: 80px; + height: 80px; } + .pricing-block .pricing-header .price-box h3 { + font-size: 20px; } + .pricing-block .pricing-header .price-box p { + font-size: 12px; } } + +/**===================== + 34. Pricing CSS Ends +==========================**/ +/**===================== + 35. Form builder css start +==========================**/ +.form-builder .help-block { + margin-bottom: 0; + color: #cccccc; + text-transform: capitalize; } + +.form-builder .btn-light { + color: #cccccc; } + +.form-builder .copy-btn { + padding: 8px; } + +.form-builder .nav-primary .nav-link.active, .form-builder .nav-primary .nav-primary .show > .nav-link, .form-builder .nav-primary .nav-pills.nav-primary .nav-link.active, .form-builder .nav-primary .nav-pills.nav-primary .show > .nav-link { + border-radius: 4px; } + +.form-builder .nav-primary .nav-link, .form-builder .nav-primary .nav-pills.nav-primary .nav-link { + color: #000; + font-weight: 500; } + +.form-builder #components { + margin-top: 30px; } + .form-builder #components #viewhtml { + height: 526px; } + +/**===================== + 35. Form builder css Ends +==========================**/ +/**===================== + 36. NAV CSS Start +==========================**/ +.nav-list { + padding: 30px; } + .nav-list .nav-list-disc { + text-align: left; + color: #898989; } + .nav-list .nav-list-disc li { + padding: 9px 0; } + .nav-list .nav-list-disc li:first-child { + padding-top: 0; } + .nav-list .nav-list-disc li:last-child { + padding-bottom: 0; } + .nav-list .nav-list-disc li a { + color: #242934; } + .nav-list .nav-list-disc li a .fa { + width: 14px; + font-size: 16px; } + .nav-list .nav-list-disc li:hover { + color: #24695c; } + .nav-list .nav-list-disc li:hover a { + color: #24695c; } + +.navs-icon { + padding: 30px; } + .navs-icon svg { + width: 21px; + height: 21px; + margin-right: 10px; } + .navs-icon .fa { + font-size: 16px; + margin-right: 10px; } + .navs-icon li { + padding: 9px 0; } + .navs-icon li:first-child { + padding-top: 0; } + .navs-icon li:last-child { + padding-bottom: 0; } + .navs-icon li .text-muted { + color: #242934 !important; } + .navs-icon li a { + display: -webkit-box; + display: -ms-flexbox; + display: flex; + -webkit-box-align: center; + -ms-flex-align: center; + align-items: center; } + .navs-icon li ul { + padding-top: 9px; } + .navs-icon li ul li { + line-height: 1; } + .navs-icon li ul li:first-child { + padding-top: 9px; } + .navs-icon li ul li:hover { + color: #24695c; } + .navs-icon li ul li:hover a { + color: #24695c; } + .navs-icon li a { + color: #242934; } + .navs-icon li a:hover { + color: #24695c; } + .navs-icon li a.active { + color: #24695c; } + .navs-icon li a span { + font-family: "Rubik", sans-serif, sans-serif; } + .navs-icon li button:hover a { + color: #fff; } + .navs-icon .main-section { + padding-top: 30px; } + .navs-icon .separator { + border-bottom: 1px solid #e6edef; + margin: 30px 0; + padding: 0; } + .navs-icon .btn-link { + text-decoration: none; + line-height: 1; + padding: 0; + padding-bottom: 6px; } + .navs-icon .btn-link:hover { + text-decoration: none; } + +#accordionoc #collapseicon, #accordionoc #collapseicon1 { + padding-top: 0px; } + +#accordionoc li button { + display: -webkit-box; + display: -ms-flexbox; + display: flex; + -webkit-box-align: center; + -ms-flex-align: center; + align-items: center; } + +.navs-icon.default-according.style-1 li button { + position: relative; } + .navs-icon.default-according.style-1 li button:hover { + color: #24695c !important; } + +.navs-icon.default-according.style-1 li button[aria-expanded="true"]:before { + right: 2px; + top: 6px; } + +.navs-icon.default-according.style-1 li button[aria-expanded="false"]:before { + right: 2px; + top: 6px; } + +.navs-dropdown button { + margin-top: 30px; } + +.navs-dropdown .onhover-show-div { + width: 250px; + border-radius: 4px; + -webkit-box-shadow: 0 0 2px 2px #e6edef; + box-shadow: 0 0 2px 2px #e6edef; } + .navs-dropdown .onhover-show-div button { + margin-top: 0px; } + .navs-dropdown .onhover-show-div .navs-icon li { + text-align: left; } + .navs-dropdown .onhover-show-div .navs-icon li a:hover svg path, .navs-dropdown .onhover-show-div .navs-icon li a:hover svg line, .navs-dropdown .onhover-show-div .navs-icon li a:hover svg polyline, .navs-dropdown .onhover-show-div .navs-icon li a.active svg path, .navs-dropdown .onhover-show-div .navs-icon li a.active svg line, .navs-dropdown .onhover-show-div .navs-icon li a.active svg polyline { + color: #24695c !important; } + +.onhover-dropdown.navs-dropdown:hover .onhover-show-div:before { + right: 77px; + left: unset; } + +.onhover-dropdown.navs-dropdown:hover .onhover-show-div:after { + right: 77px; + left: unset; } + +.icon-lists { + font-family: "Rubik", sans-serif, sans-serif; } + +.pl-navs-inline { + padding-left: 30px !important; } + +.inline-nav li { + line-height: 1.3; } + +.nav-tabs { + border-color: #e6edef; } + .nav-tabs .nav-link.active { + background-color: rgba(36, 105, 92, 0.1); + border-color: #e6edef; + color: #24695c; } + .nav-tabs .nav-item.show .nav-link { + background-color: rgba(36, 105, 92, 0.1); } + +/**===================== + 36. NAV CSS Ends +==========================**/ +/**===================== + 37. Dropdown CSS Start +==========================**/ +.dropdown-basic { + margin-bottom: -10px; } + .dropdown-basic .btn-group { + margin-right: 18px; } + .dropdown-basic .btn-group .btn-round { + border-radius: 50px; } + .dropdown-basic .separated-btn { + margin-left: -6px; } + .dropdown-basic .separated-btn .btn { + border-top-left-radius: 0; + border-bottom-left-radius: 0; + padding: 10px; } + .dropdown-basic button { + max-height: 43px; } + .dropdown-basic .dropdown { + position: relative; + display: inline-block; + margin-bottom: 10px; } + .dropdown-basic .dropdown .dropbtn { + color: #fff; + padding: 12px 35px; + border: none; + cursor: pointer; } + .dropdown-basic .dropdown .dropdown-content { + display: none; + position: absolute; + right: 0; + background-color: #fff; + border: 1px solid #e6edef; + min-width: 175px; + z-index: 1; + left: 0; + top: 45px; } + .dropdown-basic .dropdown .dropdown-content a { + color: #999; + padding: 10px 16px; + text-decoration: none; + display: block; + border-top: 1px solid #e6edef; } + .dropdown-basic .dropdown .dropdown-content .dropdown-header { + padding: 12px 16px; } + .dropdown-basic .dropdown-content a:hover { + background-color: rgba(36, 105, 92, 0.1); + color: #24695c; } + .dropdown-basic .dropdown:hover .dropdown-content { + display: block; } + +.dropup-basic .dropup { + position: relative; + display: inline-block; } + .dropup-basic .dropup .dropbtn { + color: white; + padding: 12px; + border: none; } + .dropup-basic .dropup .dropup-content { + display: none; + position: absolute; + background-color: #f9f9f9; + min-width: 170px; + bottom: 45px; + z-index: 999; + left: 0; } + .dropup-basic .dropup .dropup-content a { + color: black; + padding: 12px 16px; + text-decoration: none; + display: block; } + +.dropup-basic .dropup .dropup-content a:hover { + background-color: #f1f1f1; } + +.dropup-basic .dropup:hover .dropup-content { + display: block; } + .dropup-basic .dropup:hover .dropup-content a.active { + background-color: #f1f1f1; } + +/**===================== + 37. Dropdown CSS Ends +==========================**/ +/**===================== + 38. Landing CSS Start +==========================**/ +body { + background-color: #fff; } + +.landing-wrraper .section-py-space { + padding-top: 70px; + padding-bottom: 70px; } + +.landing-wrraper .section-pt-space { + padding-top: 70px; } + +.landing-wrraper .section-pb-space { + padding-bottom: 70px; } + +.landing-wrraper .title { + margin-bottom: 40px; + width: -webkit-fit-content; + width: -moz-fit-content; + width: fit-content; + margin-left: auto; + margin-right: auto; } + .landing-wrraper .title h2 { + font-size: 30px; + text-transform: uppercase; + font-weight: 700; + color: #24695c; + margin-bottom: 0; + line-height: 0.8; } + +.landing-wrraper .light-bg { + background-color: rgba(36, 105, 92, 0.05); } + +.landing-wrraper .tap-top { + text-align: center; + cursor: pointer; + display: none; + width: 40px; + height: 40px; + border-radius: 100%; + position: fixed; + bottom: 30px; + right: 30px; + z-index: 5; + color: #fff; + background-color: #24695c; + border: none; + padding: 7px; + -webkit-box-shadow: 0 0 10px #24695c; + box-shadow: 0 0 10px #24695c; + opacity: 0.5; + -webkit-transition: all 0.3s ease; + transition: all 0.3s ease; } + .landing-wrraper .tap-top:hover { + -webkit-transition: all 0.3s ease; + transition: all 0.3s ease; + opacity: 1; } + .landing-wrraper .tap-top svg { + width: 20px; } + +.landing-wrraper .custom-container { + max-width: 1600px; + padding-right: var(--bs-gutter-x, 0.75rem); + padding-left: var(--bs-gutter-x, 0.75rem); + margin-right: auto; + margin-left: auto; } + +.landing-wrraper .navbar-nav { + -webkit-box-align: center; + -ms-flex-align: center; + align-items: center; } + .landing-wrraper .navbar-nav .nav-item { + position: relative; } + .landing-wrraper .navbar-nav .nav-item .nav-link { + color: #000; + font-size: 15px; + font-weight: 500; + letter-spacing: 1px; + padding: 12px; + -webkit-transition: all 0.3s ease; + transition: all 0.3s ease; + border: 1px solid; + opacity: 0.7; } + .landing-wrraper .navbar-nav .nav-item .nav-link:hover, .landing-wrraper .navbar-nav .nav-item .nav-link.active { + opacity: 1; + text-shadow: 0 0 0 #24695c; + -webkit-transition: all 0.3s ease; + transition: all 0.3s ease; + color: #24695c; } + +.landing-wrraper .btn-landing { + border-radius: 20px; + color: #fff; + background-color: #24695c; + padding: 12px 30px; + line-height: 1; + font-weight: 600; + display: block; + width: -webkit-fit-content; + width: -moz-fit-content; + width: fit-content; } + +.landing-wrraper .landing-header { + -webkit-filter: drop-shadow(0px 5px 17.5px rgba(36, 105, 92, 0.06)); + filter: drop-shadow(0px 5px 17.5px rgba(36, 105, 92, 0.06)); + background-color: #fff; + padding-top: 18px; + padding-bottom: 18px; + position: fixed; + top: 0; + left: 0; + width: 100%; + z-index: 3; } + .landing-wrraper .landing-header ul.landing-menu li.nav-item .form-inline .nav-link { + font-size: 16px; + padding: 10px 20px; + border: none; + background-color: transparent; } + .landing-wrraper .landing-header ul.landing-menu li.nav-item .form-inline .nav-link:focus { + outline: none; } + .landing-wrraper .landing-header ul.landing-menu li.nav-item.menu-back { + border-bottom: 1px solid #e6edef; + padding: 22px 20px; + text-align: right; + text-transform: uppercase; + font-weight: 700; + font-size: 16px; + display: none; + cursor: pointer; + margin-bottom: 15px; } + .landing-wrraper .landing-header ul.landing-menu li.nav-item.menu-back i { + font-size: 16px; + margin-left: 10px; } + .landing-wrraper .landing-header ul.landing-menu li.nav-item a.nav-link { + font-size: 16px; + font-weight: 600; + font-family: "Montserrat", sans-serif; + color: #2b2b2b; + padding: 10px 20px; } + .landing-wrraper .landing-header ul.landing-menu li.nav-item:hover a.nav-link { + color: #24695c; } + .landing-wrraper .landing-header ul.landing-menu li.nav-item:hover .nav-link { + color: #24695c; } + .landing-wrraper .landing-header .buy-block { + display: -webkit-box; + display: -ms-flexbox; + display: flex; + -webkit-box-align: center; + -ms-flex-align: center; + align-items: center; } + .landing-wrraper .landing-header .buy-block .toggle-menu { + margin-left: 20px; + display: none; + cursor: pointer; } + .landing-wrraper .landing-header .buy-block .toggle-menu i { + font-size: 24px; + color: #24695c; } + +@-webkit-keyframes move1 { + 0% { + -webkit-transform: rotate(0deg) translateX(10px) rotate(0deg); + transform: rotate(0deg) translateX(10px) rotate(0deg); } + 100% { + -webkit-transform: rotate(360deg) translateX(10px) rotate(-360deg); + transform: rotate(360deg) translateX(10px) rotate(-360deg); } } + +@keyframes move1 { + 0% { + -webkit-transform: rotate(0deg) translateX(10px) rotate(0deg); + transform: rotate(0deg) translateX(10px) rotate(0deg); } + 100% { + -webkit-transform: rotate(360deg) translateX(10px) rotate(-360deg); + transform: rotate(360deg) translateX(10px) rotate(-360deg); } } + +@-webkit-keyframes move2 { + 0% { + -webkit-transform: translateY(0); + transform: translateY(0); } + 100% { + -webkit-transform: translateY(-5px); + transform: translateY(-5px); } } + +@keyframes move2 { + 0% { + -webkit-transform: translateY(0); + transform: translateY(0); } + 100% { + -webkit-transform: translateY(-5px); + transform: translateY(-5px); } } + +@-webkit-keyframes star { + 0% { + -webkit-transform: scale(1) rotate(0deg); + transform: scale(1) rotate(0deg); } + 50% { + -webkit-transform: scale(0.5) rotate(45deg); + transform: scale(0.5) rotate(45deg); } + 100% { + -webkit-transform: scale(1) rotate(0deg); + transform: scale(1) rotate(0deg); } } + +@keyframes star { + 0% { + -webkit-transform: scale(1) rotate(0deg); + transform: scale(1) rotate(0deg); } + 50% { + -webkit-transform: scale(0.5) rotate(45deg); + transform: scale(0.5) rotate(45deg); } + 100% { + -webkit-transform: scale(1) rotate(0deg); + transform: scale(1) rotate(0deg); } } + +.landing-wrraper .landing-home { + height: 100vh; + position: relative; + border-bottom: 1px solid #edeef3; } + .landing-wrraper .landing-home .landing-home-contain { + height: calc(100vh - 80px); + margin-top: 80px; + display: -webkit-box; + display: -ms-flexbox; + display: flex; + -webkit-box-align: center; + -ms-flex-align: center; + align-items: center; + width: 37%; + z-index: 2; + position: relative; } + .landing-wrraper .landing-home .landing-home-contain .landing-logo { + margin-bottom: 25px; } + .landing-wrraper .landing-home .landing-home-contain h6 { + font-size: 16px; + letter-spacing: 8px; + color: #2b2b2b; + font-weight: 500; + font-family: "Rubik", sans-serif; + text-transform: uppercase; + margin-bottom: 15px; } + .landing-wrraper .landing-home .landing-home-contain h2 { + font-size: calc(22px + (35 - 22) * ((100vw - 300px) / (1920 - 300))); + color: #24695c; + font-weight: 500; + margin-bottom: 15px; } + .landing-wrraper .landing-home .landing-home-contain h2 span { + color: #2b2b2b; + font-weight: 700; } + .landing-wrraper .landing-home .landing-home-contain p { + font-size: 16px; + font-weight: 400; + font-family: "Rubik", sans-serif; + margin-bottom: 30px; + color: #999; } + .landing-wrraper .landing-home .position-block .circle1, .landing-wrraper .landing-home .position-block .star, .landing-wrraper .landing-home .position-block .cross, .landing-wrraper .landing-home .position-block .img-parten, .landing-wrraper .landing-home .position-block .img1, .landing-wrraper .landing-home .position-block .img2, .landing-wrraper .landing-home .position-block .img3, .landing-wrraper .landing-home .position-block .img4, .landing-wrraper .landing-home .position-block .img5, .landing-wrraper .landing-home .position-block .img6, .landing-wrraper .landing-home .position-block .img7, .landing-wrraper .landing-home .position-block .img8, .landing-wrraper .landing-home .position-block .img9 { + position: absolute; } + .landing-wrraper .landing-home .position-block .circle1.opicity3, .landing-wrraper .landing-home .position-block .star.opicity3, .landing-wrraper .landing-home .position-block .cross.opicity3, .landing-wrraper .landing-home .position-block .img-parten.opicity3, .landing-wrraper .landing-home .position-block .img1.opicity3, .landing-wrraper .landing-home .position-block .img2.opicity3, .landing-wrraper .landing-home .position-block .img3.opicity3, .landing-wrraper .landing-home .position-block .img4.opicity3, .landing-wrraper .landing-home .position-block .img5.opicity3, .landing-wrraper .landing-home .position-block .img6.opicity3, .landing-wrraper .landing-home .position-block .img7.opicity3, .landing-wrraper .landing-home .position-block .img8.opicity3, .landing-wrraper .landing-home .position-block .img9.opicity3 { + opacity: 0.3; } + .landing-wrraper .landing-home .position-block .circle1 { + width: 13px; + height: 13px; + border-radius: 6px; + border: 3px solid #24695c; + bottom: 7%; + left: 10%; + -webkit-animation: move1 9s linear infinite; + animation: move1 9s linear infinite; } + .landing-wrraper .landing-home .position-block .star { + top: 48%; + left: 33%; + font-size: 14px; + font-weight: 700; + color: #24695c; + line-height: 1; + -webkit-animation: star 7s linear infinite; + animation: star 7s linear infinite; } + .landing-wrraper .landing-home .position-block .star.star1 { + top: 79%; + left: 39%; + -webkit-animation: star 5s linear infinite; + animation: star 5s linear infinite; } + .landing-wrraper .landing-home .position-block .star.star2 { + top: 23%; + left: 20%; + -webkit-animation: star 8s linear infinite; + animation: star 8s linear infinite; } + .landing-wrraper .landing-home .position-block .star.star3, .landing-wrraper .landing-home .position-block .star.star4, .landing-wrraper .landing-home .position-block .star.star5 { + top: 18%; + left: 47%; + -webkit-transform: rotate(-35deg); + transform: rotate(-35deg); + -webkit-animation: star 9s linear infinite; + animation: star 9s linear infinite; } + .landing-wrraper .landing-home .position-block .star.star4 { + top: 44%; + left: 47%; + -webkit-animation: star 4s linear infinite; + animation: star 4s linear infinite; } + .landing-wrraper .landing-home .position-block .star.star5 { + top: 50%; + left: 3%; + -webkit-animation: star 6s linear infinite; + animation: star 6s linear infinite; } + .landing-wrraper .landing-home .position-block .img1, .landing-wrraper .landing-home .position-block .img2, .landing-wrraper .landing-home .position-block .img3, .landing-wrraper .landing-home .position-block .img4, .landing-wrraper .landing-home .position-block .img5, .landing-wrraper .landing-home .position-block .img6, .landing-wrraper .landing-home .position-block .img7, .landing-wrraper .landing-home .position-block .img8, .landing-wrraper .landing-home .position-block .img9 { + border: 1px solid #e6edef; + position: unset; } + .landing-wrraper .landing-home .position-block .img1 { + -webkit-animation: move2 1.2s infinite alternate; + animation: move2 1.2s infinite alternate; } + .landing-wrraper .landing-home .position-block .img2 { + -webkit-animation: move2 1.3s infinite alternate; + animation: move2 1.3s infinite alternate; } + .landing-wrraper .landing-home .position-block .img3 { + -webkit-animation: move2 1.4s infinite alternate; + animation: move2 1.4s infinite alternate; } + .landing-wrraper .landing-home .position-block .img4 { + -webkit-animation: move2 1.5s infinite alternate; + animation: move2 1.5s infinite alternate; } + .landing-wrraper .landing-home .position-block .img5 { + -webkit-animation: move2 1.6s infinite alternate; + animation: move2 1.6s infinite alternate; } + .landing-wrraper .landing-home .position-block .img6 { + -webkit-animation: move2 1.2s infinite alternate; + animation: move2 1.2s infinite alternate; } + .landing-wrraper .landing-home .position-block .img7 { + -webkit-animation: move2 1.3s infinite alternate; + animation: move2 1.3s infinite alternate; } + .landing-wrraper .landing-home .position-block .img8 { + -webkit-animation: move2 1.4s infinite alternate; + animation: move2 1.4s infinite alternate; } + .landing-wrraper .landing-home .position-block .img9 { + -webkit-animation: move2 1.5s infinite alternate; + animation: move2 1.5s infinite alternate; } + .landing-wrraper .landing-home .position-block ul { + position: absolute; + top: 80px; + bottom: 0; + right: 30px; + height: -webkit-fit-content; + height: -moz-fit-content; + height: fit-content; + margin-top: auto; + margin-bottom: auto; + text-align: right; } + .landing-wrraper .landing-home .position-block ul .v-align-b { + vertical-align: bottom; } + .landing-wrraper .landing-home .position-block ul .v-align-t { + vertical-align: top; } + .landing-wrraper .landing-home .position-block ul .v-align-c { + vertical-align: middle; } + .landing-wrraper .landing-home .position-block ul .img-parten.top-parten { + top: 15px; + left: -20px; + -webkit-animation: move2 1.2s infinite alternate; + animation: move2 1.2s infinite alternate; } + .landing-wrraper .landing-home .position-block ul .img-parten.bottom-parten { + top: 100px; + left: 0; + -webkit-animation: move2 1.3s infinite alternate; + animation: move2 1.3s infinite alternate; } + .landing-wrraper .landing-home .position-block ul li { + position: relative; + margin-left: auto; } + .landing-wrraper .landing-home .position-block ul li img { + margin-left: 45px; + -webkit-filter: drop-shadow(0px 13px 17.5px #e6edef); + filter: drop-shadow(0px 13px 17.5px #e6edef); } + .landing-wrraper .landing-home .position-block ul li:nth-child(n+2) { + margin-top: 30px; } + +.landing-wrraper .demo-section .demo-block { + margin-bottom: -30px; } + .landing-wrraper .demo-section .demo-block > div { + margin-bottom: 30px; } + +.landing-wrraper .demo-section .demo-box .img-wrraper { + position: relative; + border: 5px solid #e6edef; + border-radius: 15px; + overflow: hidden; + -webkit-transition: all 0.5s ease; + transition: all 0.5s ease; } + .landing-wrraper .demo-section .demo-box .img-wrraper img { + -webkit-transition: all 0.5s ease; + transition: all 0.5s ease; } + .landing-wrraper .demo-section .demo-box .img-wrraper .overlay { + position: absolute; + top: 0; + left: 0; + width: 100%; + height: 100%; + display: -webkit-box; + display: -ms-flexbox; + display: flex; + -webkit-box-align: end; + -ms-flex-align: end; + align-items: flex-end; + opacity: 0; + visibility: hidden; + -webkit-transition: all 0.5s ease; + transition: all 0.5s ease; } + .landing-wrraper .demo-section .demo-box .img-wrraper .overlay ul.demo-link { + width: -webkit-fit-content; + width: -moz-fit-content; + width: fit-content; + margin-left: auto; + margin-right: auto; + margin-bottom: 20px; } + .landing-wrraper .demo-section .demo-box .img-wrraper .overlay ul.demo-link li { + display: inline-block; } + .landing-wrraper .demo-section .demo-box .img-wrraper .overlay ul.demo-link li:nth-child(n+2) { + margin-left: 10px; } + .landing-wrraper .demo-section .demo-box .img-wrraper .overlay ul.demo-link li a { + 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; + text-align: center; + width: 45px; + height: 45px; + border-radius: 100%; + background-color: #fff; + border: 1px solid #24695c; } + .landing-wrraper .demo-section .demo-box .img-wrraper .overlay ul.demo-link li a img { + width: auto; + height: 50%; } + +.landing-wrraper .demo-section .demo-box .demo-detail { + padding-top: 15px; } + .landing-wrraper .demo-section .demo-box .demo-detail .demo-title { + text-align: center; } + .landing-wrraper .demo-section .demo-box .demo-detail .demo-title h3 { + font-size: 20px; + text-transform: capitalize; + font-weight: 700; + margin-bottom: 0; + color: #2b2b2b; } + +.landing-wrraper .demo-section .demo-box:hover .img-wrraper { + border-color: rgba(36, 105, 92, 0.3); } + .landing-wrraper .demo-section .demo-box:hover .img-wrraper img { + -webkit-transform: scale(1.01); + transform: scale(1.01); } + .landing-wrraper .demo-section .demo-box:hover .img-wrraper .overlay { + visibility: visible; + opacity: 1; } + +.landing-wrraper .demo-section .demo-box:hover .demo-detail .demo-title h3 { + color: #24695c; } + +.landing-wrraper .framework .nav { + margin-bottom: 50px; } + .landing-wrraper .framework .nav .nav-item:nth-child(n+2) { + margin-left: 10px; } + .landing-wrraper .framework .nav .nav-link { + border: 2px solid rgba(36, 105, 92, 0.2); + padding: 10px 15px; + -webkit-box-align: center; + -ms-flex-align: center; + align-items: center; } + .landing-wrraper .framework .nav .nav-link h5 { + font-weight: 700; } + .landing-wrraper .framework .nav .nav-link p { + color: #999; } + .landing-wrraper .framework .nav .nav-link.active, .landing-wrraper .framework .nav .nav-link.show { + background-color: transparent; + color: #24695c; + border: 2px solid #24695c; + border-radius: 0; } + .landing-wrraper .framework .nav .nav-link img { + height: 35px; + margin-right: 10px; } + +.landing-wrraper .framework ul.framworks-list { + text-align: center; + margin-bottom: -9px; } + .landing-wrraper .framework ul.framworks-list li { + display: inline-block; + background-color: rgba(36, 105, 92, 0.05); + padding: 40px 10px; + margin-bottom: 30px; + border-radius: 10px; + border: 1px solid #e6edef; + margin: 10px; + height: 185px; + width: 185px; + -webkit-transition: all 0.3s ease; + transition: all 0.3s ease; + text-align: center; } + .landing-wrraper .framework ul.framworks-list li img { + -webkit-transition: all 0.3s ease; + transition: all 0.3s ease; } + .landing-wrraper .framework ul.framworks-list li h6 { + margin-top: 10px; + margin-bottom: unset; } + .landing-wrraper .framework ul.framworks-list li:hover { + background-color: rgba(36, 105, 92, 0.1); } + .landing-wrraper .framework ul.framworks-list li:hover img { + -webkit-transform: scale(0.9); + transform: scale(0.9); } + +.landing-wrraper .unique-cards .unique-block { + margin-bottom: -30px; } + +.landing-wrraper .unique-cards .card .img-wrraper { + -webkit-box-shadow: 0 0 37px rgba(36, 105, 92, 0.05); + box-shadow: 0 0 37px rgba(36, 105, 92, 0.05); } + .landing-wrraper .unique-cards .card .img-wrraper img { + -webkit-transition: all 0.5s ease; + transition: all 0.5s ease; } + .landing-wrraper .unique-cards .card .img-wrraper:hover { + -webkit-box-shadow: 0 0 37px rgba(36, 105, 92, 0.15); + box-shadow: 0 0 37px rgba(36, 105, 92, 0.15); } + .landing-wrraper .unique-cards .card .img-wrraper:hover img { + -webkit-transform: rotate3d(1, 1, 1, -3deg); + transform: rotate3d(1, 1, 1, -3deg); } + +.landing-wrraper .ecommerce-pages .pages-box .page-detail { + margin-top: 25px; + text-align: center; } + .landing-wrraper .ecommerce-pages .pages-box .page-detail h3 { + font-size: 20px; + text-transform: capitalize; + font-weight: 700; + margin-bottom: 0; + color: #2b2b2b; + -webkit-transition: all 0.5s ease; + transition: all 0.5s ease; } + +.landing-wrraper .ecommerce-pages .pages-box:hover .page-detail h3 { + color: #24695c; } + +.landing-wrraper .core-feature .feature-block { + margin-bottom: -24px; } + .landing-wrraper .core-feature .feature-block > div { + margin-bottom: 25px; } + +.landing-wrraper .core-feature .feature-box { + border: 1px solid #e6edef; + padding: 45px 16px; + text-align: center; + border-radius: 15px; } + .landing-wrraper .core-feature .feature-box .icon-wrraper { + width: 60px; + height: 60px; + border-radius: 5px; + background-color: rgba(36, 105, 92, 0.1); + 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-left: auto; + margin-right: auto; + -webkit-transition: all 0.5s ease; + transition: all 0.5s ease; } + .landing-wrraper .core-feature .feature-box .icon-wrraper svg { + width: 50%; + height: auto; + color: #24695c; + -webkit-transition: all 0.5s ease; + transition: all 0.5s ease; } + .landing-wrraper .core-feature .feature-box h6 { + margin-bottom: 0; + margin-top: 10px; + font-weight: 700; + text-transform: capitalize; } + .landing-wrraper .core-feature .feature-box:hover .icon-wrraper { + background-color: #24695c; } + .landing-wrraper .core-feature .feature-box:hover .icon-wrraper svg { + color: #fff; } + +.landing-wrraper .landing-footer .footer-contain { + text-align: center; } + .landing-wrraper .landing-footer .footer-contain .rating-wrraper { + margin-bottom: 10px; } + .landing-wrraper .landing-footer .footer-contain .rating-wrraper svg { + width: auto; + height: calc(95px + (120 - 95) * ((100vw - 320px) / (1920 - 320))); } + .landing-wrraper .landing-footer .footer-contain h2 { + font-size: calc(18px + (28 - 18) * ((100vw - 320px) / (1920 - 320))); + font-weight: 700; + margin-bottom: 10px; + line-height: 1.4; + width: 50%; + margin-left: auto; + margin-right: auto; } + .landing-wrraper .landing-footer .footer-contain p { + font-size: calc(16px + (20 - 16) * ((100vw - 320px) / (1920 - 320))); + color: #999; + font-weight: 600; } + .landing-wrraper .landing-footer .footer-contain .star-rate { + margin-bottom: 50px; } + .landing-wrraper .landing-footer .footer-contain .star-rate li { + display: inline-block; } + .landing-wrraper .landing-footer .footer-contain .star-rate li i { + font-size: calc(20px + (35 - 20) * ((100vw - 320px) / (1920 - 320))); } + .landing-wrraper .landing-footer .footer-contain .btn-footer a:nth-child(n+2) { + margin-left: 10px; } + +.landing-wrraper .sub-footer { + padding-top: 15px; + padding-bottom: 15px; } + .landing-wrraper .sub-footer .footer-contain { + display: -webkit-box; + display: -ms-flexbox; + display: flex; + -webkit-box-align: center; + -ms-flex-align: center; + align-items: center; } + .landing-wrraper .sub-footer .footer-contain p { + font-weight: 600; + margin-left: auto; + color: #999; } + +/**===================== + 38. Landing CSS Ends +==========================**/ +/**======================== + 38. Landing CSS Start +===========================**/ +@media (max-width: 1880px) { + .landing-wrraper .landing-home .position-block .img1, .landing-wrraper .landing-home .position-block .img2, .landing-wrraper .landing-home .position-block .img3, .landing-wrraper .landing-home .position-block .img4, .landing-wrraper .landing-home .position-block .img5, .landing-wrraper .landing-home .position-block .img6, .landing-wrraper .landing-home .position-block .img7, .landing-wrraper .landing-home .position-block .img8, .landing-wrraper .landing-home .position-block .img9 { + width: auto; } + .landing-wrraper .landing-home .position-block .img1 { + height: 80px; } + .landing-wrraper .landing-home .position-block .img2 { + height: 130px; } + .landing-wrraper .landing-home .position-block .img3 { + height: 100px; } + .landing-wrraper .landing-home .position-block .img4 { + height: 160px; } + .landing-wrraper .landing-home .position-block .img5 { + height: 230px; } + .landing-wrraper .landing-home .position-block .img6 { + height: 180px; } + .landing-wrraper .landing-home .position-block .img7 { + height: 120px; } + .landing-wrraper .landing-home .position-block .img8 { + height: 140px; } + .landing-wrraper .landing-home .position-block .img9 { + height: 210px; } + .landing-wrraper .landing-home .position-block ul li img { + margin-left: 35px; } + .landing-wrraper .landing-home .position-block ul .img-parten.bottom-parten { + top: 70px; } } + +@media (max-width: 1660px) { + .landing-wrraper .custom-container { + max-width: 1440px; } } + +@media (max-width: 1470px) { + .landing-wrraper .custom-container { + max-width: 100%; + padding-left: 50px; + padding-right: 50px; } } + +@media (max-width: 1367px) { + .landing-wrraper .landing-home .position-block .img1 { + height: 70px; } + .landing-wrraper .landing-home .position-block .img2 { + height: 110px; } + .landing-wrraper .landing-home .position-block .img3 { + height: 75px; } + .landing-wrraper .landing-home .position-block .img4 { + height: 140px; } + .landing-wrraper .landing-home .position-block .img5 { + height: 200px; } + .landing-wrraper .landing-home .position-block .img6 { + height: 140px; } + .landing-wrraper .landing-home .position-block .img7 { + height: 100px; } + .landing-wrraper .landing-home .position-block .img8 { + height: 115px; } + .landing-wrraper .landing-home .position-block .img9 { + height: 160px; } + .landing-wrraper .landing-home .position-block ul .img-parten { + width: auto; + height: 50px; } + .landing-wrraper .landing-home .position-block ul .img-parten.bottom-parten { + left: 20px; } + .landing-wrraper .landing-home .position-block ul li img { + margin-left: 25px; } + .landing-wrraper .landing-home .position-block ul li:nth-child(n+2) { + margin-top: 20px; } + .landing-wrraper .demo-section .demo-box .img-wrraper .overlay ul.demo-link li a { + width: 40px; + height: 40px; } + .landing-wrraper .demo-section .demo-box .img-wrraper .overlay ul.demo-link li a img { + height: 45%; } + .landing-wrraper .framework .nav { + margin-bottom: 40px; } + .landing-wrraper .framework .nav .nav-link h5 { + font-size: 18px; } + .landing-wrraper .framework .nav .nav-link p { + font-size: 12px; } + .landing-wrraper .framework ul.framworks-list li { + height: 175px; + width: 175px; } + .landing-wrraper .framework ul.framworks-list li img { + width: auto; + height: 60px; } } + +@media (max-width: 1199px) { + .landing-wrraper .landing-header ul.landing-menu li.nav-item .form-inline .nav-link { + padding: 5px 20px; } + .landing-wrraper .custom-container { + padding-left: 40px; + padding-right: 40px; } + .landing-wrraper .title { + margin-bottom: 35px; } + .landing-wrraper .title h2 { + font-size: 28px; } + .landing-wrraper .section-py-space { + padding-top: 60px; + padding-bottom: 60px; } + .landing-wrraper .section-pt-space { + padding-top: 60px; } + .landing-wrraper .section-pb-space { + padding-bottom: 60px; } + .landing-wrraper .landing-header ul.landing-menu li.nav-item a.nav-link { + padding: 5px 15px; } + .landing-wrraper .landing-home .position-block .img5 { + height: 180px; } + .landing-wrraper .demo-section .demo-box .img-wrraper .overlay ul.demo-link li a { + width: 35px; + height: 35px; } + .landing-wrraper .demo-section .demo-box .img-wrraper .overlay ul.demo-link li:nth-child(n+2) { + margin-left: 5px; } + .landing-wrraper .landing-footer .footer-contain h2 { + width: 65%; + margin-bottom: 5px; } + .landing-wrraper .landing-footer .footer-contain p { + margin-bottom: 8px; } + .landing-wrraper .landing-footer .footer-contain .star-rate { + margin-bottom: 40px; } } + +@media (max-width: 991px) { + .landing-wrraper .landing-home .landing-home-contain { + background-color: rgba(255, 255, 255, 0.57); + padding: 30px 0; + border-radius: 20px; } + .landing-wrraper .btn-landing { + padding: 10px 25px; } + .landing-wrraper .landing-header { + padding-top: 15px; + padding-bottom: 15px; } + .landing-wrraper .landing-header ul.landing-menu { + position: fixed; + top: 0; + right: -320px; + width: 300px; + height: 100vh; + background-color: #fff; + display: block; + -webkit-transition: all 0.5s ease; + transition: all 0.5s ease; } + .landing-wrraper .landing-header ul.landing-menu.open { + right: 0; } + .landing-wrraper .landing-header ul.landing-menu li.nav-item { + display: block; + background-color: #fff; + text-align: left; } + .landing-wrraper .landing-header ul.landing-menu li.nav-item.menu-back { + display: block; } + .landing-wrraper .landing-header ul.landing-menu li.nav-item .form-inline .nav-link { + padding: 5px 15px; } + .landing-wrraper .landing-header .buy-block .toggle-menu { + display: block; } + .landing-wrraper .landing-home { + height: 78vh; + overflow: hidden; } + .landing-wrraper .landing-home .landing-home-contain { + height: 58vh; + -webkit-box-pack: center; + -ms-flex-pack: center; + justify-content: center; + display: -webkit-box; + display: -ms-flexbox; + display: flex; + width: 100%; + text-align: center; } + .landing-wrraper .landing-home .landing-home-contain h2 { + font-size: 24px; } + .landing-wrraper .landing-home .landing-home-contain p { + width: 80%; + margin-left: auto; + margin-right: auto; + font-size: 14px; + margin-bottom: 25px; } + .landing-wrraper .landing-home .landing-home-contain .btn-landing { + margin-left: auto; + margin-right: auto; } + .landing-wrraper .landing-home .position-block ul { + width: 100%; + text-align: center; + padding: 30px; + top: 0; + height: 100%; } + .landing-wrraper .landing-home .position-block ul .img-parten { + display: none; } + .landing-wrraper .landing-home .position-block ul li { + position: absolute; + width: 100%; } + .landing-wrraper .landing-home .position-block ul li img { + margin-left: unset; } + .landing-wrraper .landing-home .position-block ul li > div { + display: -webkit-box; + display: -ms-flexbox; + display: flex; + -webkit-box-pack: justify; + -ms-flex-pack: justify; + justify-content: space-between; + -webkit-box-align: end; + -ms-flex-align: end; + align-items: flex-end; } + .landing-wrraper .landing-home .position-block ul li:first-child { + top: 13%; } + .landing-wrraper .landing-home .position-block ul li:nth-child(2) { + top: 33%; } + .landing-wrraper .landing-home .position-block ul li:last-child { + bottom: 20px; } + .landing-wrraper .landing-home .position-block .img1, .landing-wrraper .landing-home .position-block .img2, .landing-wrraper .landing-home .position-block .img3, .landing-wrraper .landing-home .position-block .img4, .landing-wrraper .landing-home .position-block .img5, .landing-wrraper .landing-home .position-block .img6, .landing-wrraper .landing-home .position-block .img7, .landing-wrraper .landing-home .position-block .img8, .landing-wrraper .landing-home .position-block .img9 { + position: absolute; } + .landing-wrraper .landing-home .position-block .img1 { + top: 0; + left: 3%; } + .landing-wrraper .landing-home .position-block .img2 { + top: 0; + left: 20%; } + .landing-wrraper .landing-home .position-block .img3 { + top: 0; + right: 40%; } + .landing-wrraper .landing-home .position-block .img4 { + top: 0; + right: 10%; } + .landing-wrraper .landing-home .position-block .img5 { + height: 120px; + top: -12px; + left: -20px; } + .landing-wrraper .landing-home .position-block .img6 { + top: 45%; + right: -20px; + height: 108px; } + .landing-wrraper .landing-home .position-block .img7 { + bottom: 0; + left: 5%; } + .landing-wrraper .landing-home .position-block .img8 { + bottom: 0; + right: 45%; } + .landing-wrraper .landing-home .position-block .img9 { + bottom: 0; + right: 10%; } + .landing-wrraper .framework .nav { + margin-bottom: 30px; } + .landing-wrraper .framework ul.framworks-list li { + width: 150px; + height: 150px; } + .landing-wrraper .framework ul.framworks-list li img { + height: 40px; } } + +@media (max-width: 767px) { + .landing-wrraper .custom-container { + padding-left: 25px; + padding-right: 25px; } + .landing-wrraper .title { + margin-bottom: 25px; } + .landing-wrraper .title h2 { + font-size: 24px; } + .landing-wrraper .section-py-space { + padding-top: 50px; + padding-bottom: 50px; } + .landing-wrraper .section-pt-space { + padding-top: 50px; } + .landing-wrraper .section-pb-space { + padding-bottom: 50px; } + .landing-wrraper .landing-header { + padding-top: 10px; + padding-bottom: 10px; } + .landing-wrraper .landing-header ul.landing-menu li.nav-item.menu-back { + padding: 18px 15px; } + .landing-wrraper .landing-home { + height: auto; } + .landing-wrraper .landing-home .position-block ul { + display: none; } + .landing-wrraper .landing-home .landing-home-contain { + margin-top: 60px; + background-color: transparent; + padding: 60px 0 0 0; + height: auto; } + .landing-wrraper .landing-home .landing-home-contain .landing-logo { + margin-bottom: 20px; } + .landing-wrraper .landing-home .landing-home-contain .landing-logo img { + width: auto; + height: 50px; } + .landing-wrraper .landing-home .landing-home-contain h6 { + margin-bottom: 10px; } + .landing-wrraper .landing-home .landing-home-contain h2 { + margin-bottom: 10px; } + .landing-wrraper .landing-home .landing-home-contain p { + margin-bottom: 20px; } + .landing-wrraper .demo-section .demo-block > div { + margin-bottom: 20px; + padding-left: 8px; + padding-right: 8px; } + .landing-wrraper .framework .nav .nav-link img { + height: 35px; } + .landing-wrraper .framework .nav .nav-link h5 { + font-size: 16px; } + .landing-wrraper .framework ul.framworks-list li { + width: 145px; + height: 145px; } + .landing-wrraper .framework ul.framworks-list li img { + height: 40px; } + .landing-wrraper .landing-footer .footer-contain h2 { + width: auto; + padding-left: 50px; + padding-right: 50px; } + .landing-wrraper .landing-footer .footer-contain .star-rate { + margin-bottom: 30px; } + .landing-wrraper .landing-footer .footer-contain .btn-footer a { + padding: 5px 15px; + font-size: 16px; } } + +@media (max-width: 575px) { + .landing-wrraper .custom-container { + padding-left: 20px; + padding-right: 20px; } + .landing-wrraper .title h2 { + font-size: 22px; } + .landing-wrraper .section-py-space { + padding-top: 40px; + padding-bottom: 40px; } + .landing-wrraper .section-pt-space { + padding-top: 40px; } + .landing-wrraper .section-pb-space { + padding-bottom: 40px; } + .landing-wrraper .landing-home .landing-home-contain p { + width: auto; } + .landing-wrraper .demo-section .demo-box .img-wrraper img { + width: 100%; } + .landing-wrraper .framework .nav { + display: -webkit-box; + display: -ms-flexbox; + display: flex; } + .landing-wrraper .core-feature .feature-box { + padding: 30px 10px; } + .landing-wrraper .core-feature .feature-box .icon-wrraper { + width: 50px; + height: 50px; } + .landing-wrraper .core-feature .feature-block { + margin-bottom: -15px; } + .landing-wrraper .core-feature .feature-block > div { + padding-left: 5px; + padding-right: 5px; + margin-bottom: 15px; } + .landing-wrraper .unique-cards .unique-block { + margin-bottom: -15px; } + .landing-wrraper .landing-footer .footer-contain { + text-align: center; } + .landing-wrraper .landing-footer .footer-contain h2 { + padding-left: unset; + padding-right: unset; } + .landing-wrraper .sub-footer .footer-contain { + -webkit-box-pack: center; + -ms-flex-pack: center; + justify-content: center; + text-align: center; } + .landing-wrraper .sub-footer .footer-contain p { + margin-right: auto; + margin-top: 10px; } } + +@media (max-width: 480px) { + .landing-wrraper .btn-footer { + margin-bottom: -10px; } + .landing-wrraper .btn-footer .btn { + margin-bottom: 10px; } + .landing-wrraper .landing-home .landing-home-contain { + padding: 50px 0 0 0; } + .landing-wrraper .landing-home .landing-home-contain .landing-logo { + margin-bottom: 15px; } + .landing-wrraper .landing-home .landing-home-contain .landing-logo img { + height: 40px; } + .landing-wrraper .landing-home .landing-home-contain h6 { + font-size: 14px; + letter-spacing: 0.05em; } + .landing-wrraper .landing-home .landing-home-contain h2 { + font-size: 20px; } + .landing-wrraper .demo-section .demo-box .demo-detail .demo-title h3 { + font-size: 18px; } + .landing-wrraper .framework .nav .nav-item { + width: auto; } + .landing-wrraper .framework .nav .nav-link { + padding-bottom: 10px; + display: block !important; } + .landing-wrraper .framework .nav .nav-link img { + height: 25px; + margin-right: unset; } + .landing-wrraper .framework .nav .nav-link .text-start { + display: none; } + .landing-wrraper .framework .nav .nav-link.active, .landing-wrraper .framework .nav .nav-link.show { + border-bottom: 2px solid #24695c; } + .landing-wrraper .framework ul.framworks-list li { + width: 110px; + height: 110px; + padding: 25px 0; + margin: 5px; } + .landing-wrraper .framework ul.framworks-list li img { + height: 30px; } + .landing-wrraper .core-feature .feature-box .icon-wrraper { + width: 45px; + height: 45px; } + .landing-wrraper .ecommerce-pages .pages-box .page-detail { + margin-top: 15px; } + .landing-wrraper .ecommerce-pages .pages-box .page-detail h3 { + font-size: 18px; } + .landing-wrraper .landing-footer .footer-contain .star-rate { + margin-bottom: 20px; } + .landing-wrraper .landing-footer .footer-contain .btn-footer a { + font-size: 14px; + padding: 3px 12px; } } + +/**======================= + 38. Landing CSS end +==========================**/ +/**===================== + 39. Table CSS Start +==========================**/ +.table-bordered td, .table-bordered th { + border-color: #e6edef !important; } + +.pills-component { + width: 20%; } + +.product-page-width { + width: 80%; } + +.table { + margin-bottom: 0px; } + .table th, .table td { + padding: 0.75rem; } + .table th { + color: #242934; } + .table td { + color: #242934; } + .table [class*='bg-'] { + color: #fff; } + .table .bg-light { + color: #242934; } + .table tfoot { + font-weight: bold; } + .table thead.bg-primary tr th { + color: #fff; } + .table thead.table-primary { + background-color: rgba(36, 105, 92, 0.1); + --bs-table-bg:rgba($primary-color,0.1); + color: #24695c; } + .table thead.table-primary tr th { + color: #24695c; } + +.table-inverse th, .table-inverse td { + color: #fff; } + +.table[class*='bg-'] th, .table[class*='bg-'] td { + color: #fff; } + +.table-hover tbody tr:hover { + background-color: rgba(36, 105, 92, 0.1); + --bs-table-accent-bg:unset; } + .table-hover tbody tr:hover th, .table-hover tbody tr:hover td { + color: #24695c; } + +.table-xl td, .table-xl th { + padding: 1.25rem 2rem; + font-size: 120%; } + +.table-lg td, .table-lg th { + padding: 0.9rem 2rem; + font-size: 110%; } + +.table-de td, .table-de th { + padding: 0.75rem 2rem; } + +.table-sm th, .table-sm td { + padding: 0.5rem 2rem; + font-size: 90%; } + +.table-xs th, .table-xs td { + padding: 0.2rem 2rem; + font-size: 80%; } + +.table-border-horizontal tr, .table-border-horizontal th, .table-border-horizontal td { + border-top: 1px solid #f2f4ff; + padding: 0.75rem 2rem; } + +.table-border-vertical tr, .table-border-vertical th, .table-border-vertical td { + border-top: 0; + border-right: 1px solid #f2f4ff; } + +.table-border-vertical tr td:last-child { + border-right: none; } + +.table-bordernone td { + border: 0; } + +.table-bordernone .bd-t-none { + border-top: none; } + +.table-bordernone .u-s-tb { + padding: 11px; } + +.table-inverse { + color: #fff; + background-color: #292b2c; } + .table-inverse th, .table-inverse td { + border-color: #fff; } + .table-inverse.table-bordered { + border: 0; } + +.table-striped tbody tr:nth-of-type(odd) { + background-color: rgba(245, 247, 250, 0.5); } + +.table-bordered td, .table-bordered th { + border-color: #fdfeff; } + +.table > :not(:last-child) > :last-child > * { + border-color: #e6edef; } + +thead, tbody, tfoot, tr, td, th { + border-color: #e6edef; } + +.table-styling.table-primary.table-striped tbody tr:nth-of-type(odd) { + --bs-table-accent-bg:unset; } + .table-styling.table-primary.table-striped tbody tr:nth-of-type(odd):hover { + color: #24695c; } + +.table-styling.table-primary.table-striped tbody tr:nth-of-type(even):hover th, .table-styling.table-primary.table-striped tbody tr:nth-of-type(even):hover td { + color: #fff; } + +.table-success { + background-color: rgba(27, 76, 67, 0.1); + --bs-table-bg:rgba($success-color,0.1); + color: #1b4c43; } + .table-success tr th { + color: #1b4c43; } + +/**===================== + 39.Table CSS Ends +==========================**/ +/**===================== + 41. Chart CSS Start +==========================**/ +.radial-bar.radial-bar-lg:after, .radial-bar.radial-bar-lg > img { + width: 70px; + height: 70px; + margin-left: 15px; + margin-top: 15px; + line-height: 70px; } + +.radial-bar.radial-bar-sm:after, .radial-bar.radial-bar-sm > img { + width: 35px; + height: 35px; + margin-left: 7.5px; + margin-top: 7.5px; + line-height: 35px; } + +.radial-bar.radial-bar-xs:after, .radial-bar.radial-bar-xs > img { + width: 20px; + height: 20px; + margin-left: 5.5px; + margin-top: 4.5px; + line-height: 21px; } + +.cke_wysiwyg_frame, .cke_wysiwyg_div { + background-color: #fff; } + +.chart-block canvas { + width: 100% !important; } + +.chart-block #pie-sparkline-chart { + width: auto !important; } + +.chart-block .chart-overflow { + overflow: hidden; + text-align: center; } + +.candidcahrt { + width: 100%; + height: 470px; } + +.amcharts-export-canvas { + position: absolute; + display: none; + z-index: 1; + top: 0; + right: 0; + bottom: 0; + left: 0; + background-color: #fff; } + .amcharts-export-canvas .canvas-container { + -webkit-transition: opacity .5s ease-out; + transition: opacity .5s ease-out; } + .amcharts-export-canvas.active { + display: block; } + .amcharts-export-canvas.dropbox .canvas-container { + opacity: .5; } + +.flot-chart-container { + -webkit-box-sizing: border-box; + box-sizing: border-box; + width: 100%; + height: 400px; } + .flot-chart-container #toggling-series-flot { + width: 79% !important; } + +.all-chart .flot-chart-container { + height: 350px; } + +.flot-chart-placeholder { + width: 100%; + height: 100%; + font-size: 14px; + line-height: 1.2em; + text-align: center; } + .flot-chart-placeholder .legend table { + border-spacing: 5px; } + +.morris-hover { + position: absolute; + z-index: 8; } + .morris-hover.morris-default-style { + border-radius: 10px; + padding: 6px; + color: #898989; + background: #fff; + border: solid 1px #e6edef; + font-family: sans-serif; + font-size: 12px; + text-align: center; } + .morris-hover.morris-default-style .morris-hover-row-label { + font-weight: bold; + margin: 0.25em 0; } + .morris-hover.morris-default-style .morris-hover-point { + white-space: nowrap; + margin: 0.1em 0; } + +.chart-sparkline { + position: absolute; + left: 0; + top: 0; + visibility: hidden; + background: rgba(49, 49, 49, 0.7); + filter: progid:DXImageTransform.Microsoft.gradient(startColorstr=#99000000, endColorstr=#99000000); + color: #fff; + font: 10px "Rubik", sans-serif, sans-serif; + text-align: left; + white-space: nowrap; + padding: 5px; + border: 1px solid rgba(49, 49, 49, 0.75); + -webkit-box-sizing: content-box; + box-sizing: content-box; + z-index: 10000; + border-radius: 5px; } + .chart-sparkline .jqsfield { + color: #fff; + font: 10px "Rubik", sans-serif, sans-serif; + text-align: left; } + +.radial-bar { + position: relative; + display: inline-block; + border-radius: 50%; + background-color: transparent; + -webkit-box-sizing: content-box; + box-sizing: content-box; + width: 80px; + height: 80px; + font-size: 18px; + background-clip: content-box; } + .radial-bar:after { + display: inline-block; + position: absolute; + top: 0; + left: 0; + border-radius: 50%; + text-align: center; + font-weight: 500; + color: #455a64; + content: attr(data-label); + background-color: #fff; + z-index: 1; + width: 56px; + height: 56px; + margin-left: 12px; + margin-top: 12px; + line-height: 56px; } + .radial-bar > img { + display: inline-block; + position: absolute; + top: 0; + left: 0; + border-radius: 50%; + text-align: center; + font-weight: 500; + color: #455a64; + z-index: 3; + width: 56px; + height: 56px; + margin-left: 12px; + margin-top: 12px; + line-height: 56px; } + +.radial-bar-danger.radial-bar-20 { + background-image: linear-gradient(90deg, #efefef 50%, transparent 50%, transparent), linear-gradient(162deg, #d22d3d 50%, #efefef 50%, #efefef); } + +.radial-bar.radial-bar-lg { + width: 100px; + height: 100px; + font-size: 20px; } + +.radial-bar.radial-bar-sm { + width: 50px; + height: 50px; + font-size: 12px; } + +.radial-bar.radial-bar-xs { + width: 30px; + height: 30px; + font-size: 8px; } + +.pieLabel div { + color: #fff !important; } + .pieLabel div input[type=checkbox] { + margin: 7px; } + +.knob-chart { + min-height: 255px; } + .knob-chart .chart-clock-main { + position: relative; + width: 200px; + margin: 45px auto; } + .knob-chart .chart-clock-main .clock-large { + position: absolute; + left: -48px; + top: -45px; } + .knob-chart .chart-clock-main .clock-medium { + position: absolute; + left: 2px; + top: 5px; } + .knob-chart .chart-clock-main .clock-small { + position: absolute; + left: 15px; + top: 55px; } + +.peity-charts svg { + width: 100%; + height: 250px; } + +.peity-charts.peity-chart-primary svg polygon { + fill: rgba(36, 105, 92, 0.5); } + +.peity-charts.peity-chart-primary svg polyline { + stroke: #24695c; } + +p.data-attributes svg { + margin-right: 10px; } + +.knob-block { + position: relative; } + .knob-block input { + display: -webkit-box !important; + display: -ms-flexbox !important; + display: flex !important; + -webkit-box-align: center !important; + -ms-flex-align: center !important; + align-items: center !important; + -webkit-box-pack: center !important; + -ms-flex-pack: center !important; + justify-content: center !important; + height: 100% !important; + width: 100% !important; + left: 0 !important; + top: 0 !important; + margin-left: 0 !important; + margin-top: -3px !important; } + +.apex-chart { + margin: 0 auto; } + +.apexcharts-menu-item { + width: 110px; } + +.word-tree { + height: 400px; } + +/**===================== + 41. Chart CSS End +==========================**/ +/**===================== + 42. Timeline CSS Start +==========================**/ +.activity .media { + margin-bottom: 30px; } + .activity .media:last-child { + margin-bottom: 0; } + .activity .media .gradient-round { + position: relative; + width: 53px; + height: 53px; + background-image: -webkit-gradient(linear, left top, left bottom, from(#1693f8), to(#0d67e9)); + background-image: linear-gradient(#1693f8, #0d67e9); + border-radius: 100%; + top: -18px; } + .activity .media .gradient-round svg { + position: absolute; + width: 18px; + height: 18px; + 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; + left: 0; + top: 18px; + right: 0; + margin: 0 auto; } + .activity .media .gradient-round svg path, .activity .media .gradient-round svg line, .activity .media .gradient-round svg circle { + color: #fff; } + .activity .media .gradient-round.gradient-line-1:after { + position: absolute; + content: ''; + background-color: #e9e9e9; + width: 2px; + height: 62px; + bottom: -77px; + left: 0; + right: 0; + margin: 0 auto; } + .activity .media .gradient-round.small-line:after { + position: absolute; + content: ''; + background-color: #e9e9e9; + width: 2px; + height: 19px; + bottom: -34px; + left: 0; + right: 0; + margin: 0 auto; } + .activity .media .gradient-round.medium-line:after { + position: absolute; + content: ''; + background-color: #e9e9e9; + width: 2px; + height: 53px; + bottom: -68px; + left: 0; + right: 0; + margin: 0 auto; } + .activity .media .media-body h6 { + font-weight: 600; + margin-bottom: 30px; } + .activity .media .media-body h6 span { + font-weight: normal; + color: #999; } + .activity .media .media-body p { + width: 80%; } + +.timeline-small .media { + margin-bottom: 30px; } + .timeline-small .media:last-child { + margin-bottom: 0; } + .timeline-small .media .timeline-round { + position: relative; + width: 53px; + height: 53px; + border-radius: 100%; + top: -18px; } + .timeline-small .media .timeline-round svg { + position: absolute; + width: 18px; + height: 18px; + 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; + left: 0; + top: 18px; + right: 0; + margin: 0 auto; } + .timeline-small .media .timeline-round svg path, .timeline-small .media .timeline-round svg line, .timeline-small .media .timeline-round svg circle { + color: #fff; } + .timeline-small .media .timeline-round.timeline-line-1:after { + position: absolute; + content: ''; + background-color: #e9e9e9; + width: 2px; + height: 62px; + bottom: -77px; + left: 0; + right: 0; + margin: 0 auto; } + .timeline-small .media .timeline-round.small-line:after { + position: absolute; + content: ''; + background-color: #e9e9e9; + width: 2px; + height: 19px; + bottom: -34px; + left: 0; + right: 0; + margin: 0 auto; } + .timeline-small .media .timeline-round.medium-line:after { + position: absolute; + content: ''; + background-color: #e9e9e9; + width: 2px; + height: 53px; + bottom: -68px; + left: 0; + right: 0; + margin: 0 auto; } + .timeline-small .media .media-body h6 { + font-weight: 600; + margin-bottom: 30px; } + .timeline-small .media .media-body h6 span { + font-weight: normal; + color: #999; } + .timeline-small .media .media-body p { + width: 80%; } + +.cd-container { + width: 90%; + max-width: 1170px; + margin: 0 auto; + z-index: 1; } + +.cd-container::after { + content: ''; + display: table; + clear: both; } + +@media only screen and (min-width: 1170px) { + #cd-timeline::before { + left: 50% !important; + margin-left: -2px; } + .cd-timeline-block { + margin: 4em 0; } + .cd-timeline-block:first-child { + margin-top: 0; } + .cd-timeline-block:last-child { + margin-bottom: 0; } + .cd-timeline-block:nth-child(even) .cd-timeline-content { + float: right; } + .cd-timeline-block:nth-child(even) .cd-timeline-content .cd-date { + left: auto; + right: 122%; + text-align: right; + padding-right: 15px; } + .cd-timeline-block:nth-child(even) .cd-timeline-content::before { + top: 24px; + left: auto; + right: 100%; + border-color: transparent; + border-right-color: #e6edef; } + .cd-timeline-block:nth-child(odd) .cd-timeline-content .cd-date { + padding-left: 15px; } + .cd-timeline-img { + width: 50px; + height: 50px; + left: 50%; + margin-left: -30px; } + .cd-timeline-img > i { + font-size: 18px; + top: 50%; + left: 50%; + padding: 3px; } + .cssanimations .cd-timeline-img.is-hidden { + visibility: hidden; } + .cssanimations .cd-timeline-img.bounce-in { + visibility: visible; + -webkit-animation: cd-bounce-1 0.6s; + animation: cd-bounce-1 0.6s; } + .cssanimations .cd-timeline-content.is-hidden { + visibility: hidden; } + .cssanimations .cd-timeline-content.bounce-in { + visibility: visible; + -webkit-animation: cd-bounce-2 0.6s; + animation: cd-bounce-2 0.6s; } + .cssanimations .cd-timeline-block:nth-child(even) .cd-timeline-content.bounce-in { + -webkit-animation: cd-bounce-2-inverse 0.6s; + animation: cd-bounce-2-inverse 0.6s; } + .cd-timeline-content { + margin-left: 0; + padding: 1.6em; + width: 45%; } + .cd-timeline-content .cd-date { + position: absolute; + width: 100%; + left: 122%; + top: 6px; + font-size: 16px; } + .cd-timeline-content::before { + top: 24px; + left: 100%; + border-color: transparent; + border-left-color: #e6edef; } } + +#cd-timeline { + position: relative; + padding: 2em 0; } + +#cd-timeline::before { + content: ''; + position: absolute; + top: 0; + font-size: 1.5rem; + height: 100%; + width: 2px; + background: #e6edef; + left: -15px; } + +.cd-timeline-block { + position: relative; + margin: 30px 0; } + .cd-timeline-block:after { + content: ""; + display: table; + clear: both; } + .cd-timeline-block:first-child { + margin-top: 0; } + .cd-timeline-block:last-child { + margin-bottom: 0; } + +.cd-timeline-img { + width: 60px; + height: 60px; + left: 50%; + margin-left: -30px; + -webkit-transform: translateZ(0); + -webkit-backface-visibility: hidden; + position: absolute; + top: 0; + border-radius: 4px; } + .cd-timeline-img i { + display: block; + position: relative; + left: 45%; + top: 44%; + margin-left: -12px; + margin-top: -12px; + font-size: 27px; + color: #fff; } + +@-webkit-keyframes cd-bounce-1 { + 0% { + opacity: 0; } + 60% { + opacity: 1; } } + +@keyframes cd-bounce-1 { + 0% { + opacity: 0; + -webkit-transform: scale(0.5); + transform: scale(0.5); } + 60% { + opacity: 1; + -webkit-transform: scale(1.2); + transform: scale(1.2); } + 100% { + -webkit-transform: scale(1); + transform: scale(1); } } + +.cd-timeline-content { + position: relative; + background-color: #f5f7fb; + border-radius: 4px; + padding: 30px; + border: 1px solid #e6edef; } + .cd-timeline-content p { + padding-top: 9px; } + .cd-timeline-content h4 { + margin-bottom: 0; + font-weight: 700; } + .cd-timeline-content:after { + content: ""; + display: table; + clear: both; } + .cd-timeline-content audio { + width: 100%; } + .cd-timeline-content .cd-date { + font-weight: 700; + font-size: 13px; + display: inline-block; + float: left; + padding: .8em 0 0; + opacity: .7; } + +.cd-timeline-content::before { + content: ''; + position: absolute; + top: 16px; + right: 100%; + height: 0; + width: 0; + border: 7px solid transparent; + border-left: 7px solid #e6edef; } + +@media only screen and (min-width: 768px) { + .cd-timeline-content .cd-date { + font-size: 14px; + padding-bottom: 0; } } + +@-webkit-keyframes cd-bounce-2 { + 0% { + opacity: 0; } + 60% { + opacity: 1; } } + +@keyframes cd-bounce-2 { + 0% { + opacity: 0; + -webkit-transform: translateX(-100px); + transform: translateX(-100px); } + 60% { + opacity: 1; + -webkit-transform: translateX(20px); + transform: translateX(20px); } + 100% { + -webkit-transform: translateX(0); + transform: translateX(0); } } + +@-webkit-keyframes cd-bounce-2-inverse { + 0% { + opacity: 0; } + 60% { + opacity: 1; } } + +@keyframes cd-bounce-2-inverse { + 0% { + opacity: 0; + -webkit-transform: translateX(100px); + transform: translateX(100px); } + 60% { + opacity: 1; + -webkit-transform: translateX(-20px); + transform: translateX(-20px); } + 100% { + -webkit-transform: translateX(0); + transform: translateX(0); } } + +@media only screen and (max-width: 1169px) { + .cd-timeline-block .cd-timeline-img { + left: -2px; + height: 30px; + width: 30px; + margin-left: -30px; + top: 14px; + z-index: 8; } + .cd-timeline-block .cd-timeline-img > i { + font-size: 15px; + top: 16px; + left: 17px; + padding: 3px; } + .landing-main #cd-timeline::before { + left: -39px; } + .landing-main .cd-timeline-block .cd-timeline-img { + left: -34px; + height: 50px; + width: 50px; + top: 1px; + z-index: 8; } + .landing-main .cd-timeline-block .cd-timeline-img > i { + font-size: 23px; + top: 21px; + left: 7px; + padding: 3px; } } + +@media only screen and (max-width: 576px) { + .cd-timeline-content { + padding: 15px; } + .cd-timeline-content h4 { + font-size: 18px; } } + +/**===================== + 42. Timeline CSS Ends +==========================**/ +/**===================== + 43. Timeline 2 CSS Start +==========================**/ +.timeliny { + position: relative; + display: block; + padding: 10rem 0; + width: 100%; + border-top: 1px solid #eff4f5; + border-bottom: 1px solid #eff4f5; + text-rendering: optimizeLegibility; + color: #e6edef; + opacity: 0; + overflow: hidden; + cursor: move; } + .timeliny.loaded { + opacity: 1; } + .timeliny::before { + content: ''; + position: absolute; + background-color: rgba(36, 105, 92, 0.08); + width: 100%; + height: 1px; + top: 50%; + left: 0; } + .timeliny .timeliny-wrapper { + display: block; + margin: auto; + width: 100%; + max-width: 1024px; } + .timeliny .timeliny-dot { + -webkit-transition: all 0.35s ease-in-out; + transition: all 0.35s ease-in-out; + display: block; + position: absolute; + top: 50%; + left: 0; + margin-top: -0.6rem; + width: 1.2rem; + height: 1.2rem; + border-radius: 50%; + border: 1px solid #898989; + background-color: #fff; } + .timeliny .timeliny-dot::before { + -webkit-transition: all 0.35s ease-in-out; + transition: all 0.35s ease-in-out; + content: attr(data-year); + display: block; + position: absolute; + top: -5rem; + left: 1.25rem; + color: #2c323f; + font-family: "Rubik", sans-serif, sans-serif; + font-size: 22px; } + .timeliny .timeliny-dot::after { + -webkit-transition: all 0.35s ease-in-out; + transition: all 0.35s ease-in-out; + -webkit-transform: translateY(-50%); + transform: translateY(-50%); + content: attr(data-text); + display: block; + position: absolute; + width: 256px; + top: 5.6rem; + left: 1.25rem; + color: #e6edef; + opacity: 0; + font-size: 0.9em; } + @media (min-width: 768px) { + .timeliny .timeliny-dot::after { + width: 341.33333px; } } + .timeliny .timeliny-timeline { + position: absolute; + top: 50%; + left: 0; + display: table; + width: 100%; + z-index: 5; } + .timeliny .timeliny-timeline .timeliny-timeblock { + display: table-cell; + position: relative; } + .timeliny .timeliny-timeline .timeliny-timeblock.active .timeliny-dot { + border-color: #24695c; + background-color: #24695c; + -webkit-box-shadow: 1px 1px 4px 0px rgba(0, 0, 0, 0.33); + box-shadow: 1px 1px 4px 0px rgba(0, 0, 0, 0.33); } + .timeliny .timeliny-timeline .timeliny-timeblock.active .timeliny-dot::before { + color: #2c323f; } + .timeliny .timeliny-timeline .timeliny-timeblock.active .timeliny-dot::after { + color: #2c323f; + opacity: 1; + background-color: #f5f7fb; + border: 1px solid #e6edef; + padding: 10px; + border-radius: 5px; } + .timeliny .timeliny-timeline .timeliny-timeblock.inactive .timeliny-dot { + cursor: move; } + .timeliny .timeliny-timeline .timeliny-timeblock.inactive .timeliny-dot::before { + color: #e6edef; } + .timeliny .timeliny-timeline .timeliny-timeblock:not(.inactive):not(.active) .timeliny-dot:hover { + border-color: #e6edef; + background-color: #24695c; } + .timeliny .timeliny-timeline .timeliny-timeblock:not(.inactive):not(.active) .timeliny-dot:hover::before { + color: #2c323f; } + .timeliny .timeliny-timeline .timeliny-timeblock .timeliny-dot:hover::after { + color: #2c323f; + opacity: 1; + background-color: #fff; + border: 1px solid #efefef; + padding: 10px; + border-radius: 5px; } + .timeliny .timeliny-vertical-line { + position: absolute; + display: block; + z-index: 1; + left: 16%; + top: 0; + width: 1px; + height: 100%; + background-color: #24695c; } + @media (min-width: 768px) { + .timeliny .timeliny-vertical-line { + left: 32%; } } + .timeliny .timeliny-vertical-line::before { + content: ''; + position: absolute; + top: 0; + left: -7px; + width: 0; + height: 0; + border-left: 8px solid transparent; + border-right: 8px solid transparent; + border-top: 8px solid #24695c; } + .timeliny .timeliny-vertical-line::after { + content: ''; + position: absolute; + bottom: 0; + left: -7px; + width: 0; + height: 0; + border-left: 8px solid transparent; + border-right: 8px solid transparent; + border-bottom: 8px solid #24695c; } + +/**===================== + 43. Timeline 2 CSS Ends +==========================**/ +/**===================== + 44. Tabs CSS Start +==========================**/ +.nav-pills .nav-link.active, .nav-pills .show > .nav-link { + background-color: #24695c; } + +.nav-pills .nav-link { + font-weight: 600; } + +.nav i { + margin-right: 10px; } + +.nav-theme .nav-link, .nav-pills.nav-theme .nav-link { + color: #24695c; } + +.nav-theme .nav-link.active, .nav-theme .show > .nav-link, .nav-pills.nav-theme .nav-link.active, .nav-pills.nav-theme .show > .nav-link { + background-color: #24695c; + color: #fff; } + +.nav-primary .nav-link, .nav-pills.nav-primary .nav-link { + color: #24695c; } + +.nav-primary .nav-link.active, .nav-primary .show > .nav-link, .nav-pills.nav-primary .nav-link.active, .nav-pills.nav-primary .show > .nav-link { + background-color: #24695c; + color: #fff; } + +.nav-secondary .nav-link, .nav-pills.nav-secondary .nav-link { + color: #ba895d; } + +.nav-secondary .nav-link.active, .nav-secondary .show > .nav-link, .nav-pills.nav-secondary .nav-link.active, .nav-pills.nav-secondary .show > .nav-link { + background-color: #ba895d; + color: #fff; } + +.nav-success .nav-link, .nav-pills.nav-success .nav-link { + color: #1b4c43; } + +.nav-success .nav-link.active, .nav-success .show > .nav-link, .nav-pills.nav-success .nav-link.active, .nav-pills.nav-success .show > .nav-link { + background-color: #1b4c43; + color: #fff; } + +.nav-danger .nav-link, .nav-pills.nav-danger .nav-link { + color: #d22d3d; } + +.nav-danger .nav-link.active, .nav-danger .show > .nav-link, .nav-pills.nav-danger .nav-link.active, .nav-pills.nav-danger .show > .nav-link { + background-color: #d22d3d; + color: #fff; } + +.nav-info .nav-link, .nav-pills.nav-info .nav-link { + color: #717171; } + +.nav-info .nav-link.active, .nav-info .show > .nav-link, .nav-pills.nav-info .nav-link.active, .nav-pills.nav-info .show > .nav-link { + background-color: #717171; + color: #fff; } + +.nav-light .nav-link, .nav-pills.nav-light .nav-link { + color: #e6edef; } + +.nav-light .nav-link.active, .nav-light .show > .nav-link, .nav-pills.nav-light .nav-link.active, .nav-pills.nav-light .show > .nav-link { + background-color: #e6edef; + color: #fff; } + +.nav-dark .nav-link, .nav-pills.nav-dark .nav-link { + color: #2c323f; } + +.nav-dark .nav-link.active, .nav-dark .show > .nav-link, .nav-pills.nav-dark .nav-link.active, .nav-pills.nav-dark .show > .nav-link { + background-color: #2c323f; + color: #fff; } + +.nav-warning .nav-link, .nav-pills.nav-warning .nav-link { + color: #e2c636; } + +.nav-warning .nav-link.active, .nav-warning .show > .nav-link, .nav-pills.nav-warning .nav-link.active, .nav-pills.nav-warning .show > .nav-link { + background-color: #e2c636; + color: #fff; } + +.nav-right { + -webkit-box-pack: end; + -ms-flex-pack: end; + justify-content: flex-end; } + +.nav-tabs.nav-bottom .nav-item .nav-link.active, .nav-tabs.nav-bottom .nav-item .nav-link.focus, .nav-tabs.nav-bottom .nav-item .nav-link.hover { + border-color: #fff #dee2e6 #dee2e6; } + +.tab-content ~ .nav-tabs.border-tab { + margin-bottom: 0; + margin-top: 30px; } + +.border-tab.nav-tabs { + display: -webkit-box; + display: -ms-flexbox; + display: flex; + -webkit-box-align: center; + -ms-flex-align: center; + align-items: center; + -ms-flex-wrap: nowrap; + flex-wrap: nowrap; + margin-bottom: 30px; } + .border-tab.nav-tabs .nav-item .nav-link { + font-size: 16px; + color: #2c323f; + text-align: center; + padding: 10px 25px; + border: none; + border-bottom: 2px solid #e6edef; + -webkit-transition: 0.3s; + transition: 0.3s; + background-color: transparent; } + .border-tab.nav-tabs .nav-item .nav-link.active, .border-tab.nav-tabs .nav-item .nav-link.show, .border-tab.nav-tabs .nav-item .nav-link:focus, .border-tab.nav-tabs .nav-item .nav-link:hover { + color: #24695c; } + .border-tab.nav-tabs .nav-item .nav-link.active, .border-tab.nav-tabs .nav-item .nav-link.show, .border-tab.nav-tabs .nav-item .nav-link:focus { + border-bottom: 2px solid #24695c; } + +.border-tab.nav-left .nav-link { + border-left: 2px solid transparent; + -webkit-transition: all 0.3s ease; + transition: all 0.3s ease; + color: #2c323f; } + +.border-tab.nav-left .nav-link.active, .border-tab.nav-left .show > .nav-link { + background-color: transparent; + border-left-color: #24695c; + color: #24695c; + border-radius: 0; + -webkit-transition: all 0.3s ease; + transition: all 0.3s ease; } + +.border-tab.nav-right .nav-link { + border-right: 2px solid transparent; + -webkit-transition: all 0.3s ease; + transition: all 0.3s ease; + color: #2c323f; + text-align: right; } + +.border-tab.nav-right .nav-link.active, .border-tab.nav-right .show > .nav-link { + background-color: transparent; + border-right-color: #24695c; + color: #24695c; + border-radius: 0; + -webkit-transition: all 0.3s ease; + transition: all 0.3s ease; } + +.border-tab.nav-theme .nav-link.active, .border-tab.nav-theme .nav-item.show, .border-tab.nav-theme .nav-link:focus, .border-tab.nav-theme .nav-link:hover { + color: #24695c; + background-color: transparent; } + +.border-tab.nav-theme .nav-item .nav-link { + -webkit-transition: 0.3s; + transition: 0.3s; } + .border-tab.nav-theme .nav-item .nav-link.active, .border-tab.nav-theme .nav-item .nav-link.show, .border-tab.nav-theme .nav-item .nav-link:focus { + border-bottom: 2px solid #24695c; } + .border-tab.nav-theme .nav-item .nav-link.active, .border-tab.nav-theme .nav-item .nav-link.show, .border-tab.nav-theme .nav-item .nav-link:focus, .border-tab.nav-theme .nav-item .nav-link:hover { + color: #24695c; } + +.border-tab.nav-left.nav-theme .nav-link.active, .border-tab.nav-left.nav-theme .show > .nav-link { + border-left-color: #24695c; + color: #24695c; } + +.border-tab.nav-right.nav-theme .nav-link.active, .border-tab.nav-right.nav-theme .show > .nav-link { + border-right-color: #24695c; + color: #24695c; } + +.border-tab.nav-primary .nav-link.active, .border-tab.nav-primary .nav-item.show, .border-tab.nav-primary .nav-link:focus, .border-tab.nav-primary .nav-link:hover { + color: #24695c; + background-color: transparent; } + +.border-tab.nav-primary .nav-item .nav-link { + -webkit-transition: 0.3s; + transition: 0.3s; } + .border-tab.nav-primary .nav-item .nav-link.active, .border-tab.nav-primary .nav-item .nav-link.show, .border-tab.nav-primary .nav-item .nav-link:focus { + border-bottom: 2px solid #24695c; } + .border-tab.nav-primary .nav-item .nav-link.active, .border-tab.nav-primary .nav-item .nav-link.show, .border-tab.nav-primary .nav-item .nav-link:focus, .border-tab.nav-primary .nav-item .nav-link:hover { + color: #24695c; } + +.border-tab.nav-left.nav-primary .nav-link.active, .border-tab.nav-left.nav-primary .show > .nav-link { + border-left-color: #24695c; + color: #24695c; } + +.border-tab.nav-right.nav-primary .nav-link.active, .border-tab.nav-right.nav-primary .show > .nav-link { + border-right-color: #24695c; + color: #24695c; } + +.border-tab.nav-secondary .nav-link.active, .border-tab.nav-secondary .nav-item.show, .border-tab.nav-secondary .nav-link:focus, .border-tab.nav-secondary .nav-link:hover { + color: #ba895d; + background-color: transparent; } + +.border-tab.nav-secondary .nav-item .nav-link { + -webkit-transition: 0.3s; + transition: 0.3s; } + .border-tab.nav-secondary .nav-item .nav-link.active, .border-tab.nav-secondary .nav-item .nav-link.show, .border-tab.nav-secondary .nav-item .nav-link:focus { + border-bottom: 2px solid #ba895d; } + .border-tab.nav-secondary .nav-item .nav-link.active, .border-tab.nav-secondary .nav-item .nav-link.show, .border-tab.nav-secondary .nav-item .nav-link:focus, .border-tab.nav-secondary .nav-item .nav-link:hover { + color: #ba895d; } + +.border-tab.nav-left.nav-secondary .nav-link.active, .border-tab.nav-left.nav-secondary .show > .nav-link { + border-left-color: #ba895d; + color: #ba895d; } + +.border-tab.nav-right.nav-secondary .nav-link.active, .border-tab.nav-right.nav-secondary .show > .nav-link { + border-right-color: #ba895d; + color: #ba895d; } + +.border-tab.nav-success .nav-link.active, .border-tab.nav-success .nav-item.show, .border-tab.nav-success .nav-link:focus, .border-tab.nav-success .nav-link:hover { + color: #1b4c43; + background-color: transparent; } + +.border-tab.nav-success .nav-item .nav-link { + -webkit-transition: 0.3s; + transition: 0.3s; } + .border-tab.nav-success .nav-item .nav-link.active, .border-tab.nav-success .nav-item .nav-link.show, .border-tab.nav-success .nav-item .nav-link:focus { + border-bottom: 2px solid #1b4c43; } + .border-tab.nav-success .nav-item .nav-link.active, .border-tab.nav-success .nav-item .nav-link.show, .border-tab.nav-success .nav-item .nav-link:focus, .border-tab.nav-success .nav-item .nav-link:hover { + color: #1b4c43; } + +.border-tab.nav-left.nav-success .nav-link.active, .border-tab.nav-left.nav-success .show > .nav-link { + border-left-color: #1b4c43; + color: #1b4c43; } + +.border-tab.nav-right.nav-success .nav-link.active, .border-tab.nav-right.nav-success .show > .nav-link { + border-right-color: #1b4c43; + color: #1b4c43; } + +.border-tab.nav-danger .nav-link.active, .border-tab.nav-danger .nav-item.show, .border-tab.nav-danger .nav-link:focus, .border-tab.nav-danger .nav-link:hover { + color: #d22d3d; + background-color: transparent; } + +.border-tab.nav-danger .nav-item .nav-link { + -webkit-transition: 0.3s; + transition: 0.3s; } + .border-tab.nav-danger .nav-item .nav-link.active, .border-tab.nav-danger .nav-item .nav-link.show, .border-tab.nav-danger .nav-item .nav-link:focus { + border-bottom: 2px solid #d22d3d; } + .border-tab.nav-danger .nav-item .nav-link.active, .border-tab.nav-danger .nav-item .nav-link.show, .border-tab.nav-danger .nav-item .nav-link:focus, .border-tab.nav-danger .nav-item .nav-link:hover { + color: #d22d3d; } + +.border-tab.nav-left.nav-danger .nav-link.active, .border-tab.nav-left.nav-danger .show > .nav-link { + border-left-color: #d22d3d; + color: #d22d3d; } + +.border-tab.nav-right.nav-danger .nav-link.active, .border-tab.nav-right.nav-danger .show > .nav-link { + border-right-color: #d22d3d; + color: #d22d3d; } + +.border-tab.nav-info .nav-link.active, .border-tab.nav-info .nav-item.show, .border-tab.nav-info .nav-link:focus, .border-tab.nav-info .nav-link:hover { + color: #717171; + background-color: transparent; } + +.border-tab.nav-info .nav-item .nav-link { + -webkit-transition: 0.3s; + transition: 0.3s; } + .border-tab.nav-info .nav-item .nav-link.active, .border-tab.nav-info .nav-item .nav-link.show, .border-tab.nav-info .nav-item .nav-link:focus { + border-bottom: 2px solid #717171; } + .border-tab.nav-info .nav-item .nav-link.active, .border-tab.nav-info .nav-item .nav-link.show, .border-tab.nav-info .nav-item .nav-link:focus, .border-tab.nav-info .nav-item .nav-link:hover { + color: #717171; } + +.border-tab.nav-left.nav-info .nav-link.active, .border-tab.nav-left.nav-info .show > .nav-link { + border-left-color: #717171; + color: #717171; } + +.border-tab.nav-right.nav-info .nav-link.active, .border-tab.nav-right.nav-info .show > .nav-link { + border-right-color: #717171; + color: #717171; } + +.border-tab.nav-light .nav-link.active, .border-tab.nav-light .nav-item.show, .border-tab.nav-light .nav-link:focus, .border-tab.nav-light .nav-link:hover { + color: #e6edef; + background-color: transparent; } + +.border-tab.nav-light .nav-item .nav-link { + -webkit-transition: 0.3s; + transition: 0.3s; } + .border-tab.nav-light .nav-item .nav-link.active, .border-tab.nav-light .nav-item .nav-link.show, .border-tab.nav-light .nav-item .nav-link:focus { + border-bottom: 2px solid #e6edef; } + .border-tab.nav-light .nav-item .nav-link.active, .border-tab.nav-light .nav-item .nav-link.show, .border-tab.nav-light .nav-item .nav-link:focus, .border-tab.nav-light .nav-item .nav-link:hover { + color: #e6edef; } + +.border-tab.nav-left.nav-light .nav-link.active, .border-tab.nav-left.nav-light .show > .nav-link { + border-left-color: #e6edef; + color: #e6edef; } + +.border-tab.nav-right.nav-light .nav-link.active, .border-tab.nav-right.nav-light .show > .nav-link { + border-right-color: #e6edef; + color: #e6edef; } + +.border-tab.nav-dark .nav-link.active, .border-tab.nav-dark .nav-item.show, .border-tab.nav-dark .nav-link:focus, .border-tab.nav-dark .nav-link:hover { + color: #2c323f; + background-color: transparent; } + +.border-tab.nav-dark .nav-item .nav-link { + -webkit-transition: 0.3s; + transition: 0.3s; } + .border-tab.nav-dark .nav-item .nav-link.active, .border-tab.nav-dark .nav-item .nav-link.show, .border-tab.nav-dark .nav-item .nav-link:focus { + border-bottom: 2px solid #2c323f; } + .border-tab.nav-dark .nav-item .nav-link.active, .border-tab.nav-dark .nav-item .nav-link.show, .border-tab.nav-dark .nav-item .nav-link:focus, .border-tab.nav-dark .nav-item .nav-link:hover { + color: #2c323f; } + +.border-tab.nav-left.nav-dark .nav-link.active, .border-tab.nav-left.nav-dark .show > .nav-link { + border-left-color: #2c323f; + color: #2c323f; } + +.border-tab.nav-right.nav-dark .nav-link.active, .border-tab.nav-right.nav-dark .show > .nav-link { + border-right-color: #2c323f; + color: #2c323f; } + +.border-tab.nav-warning .nav-link.active, .border-tab.nav-warning .nav-item.show, .border-tab.nav-warning .nav-link:focus, .border-tab.nav-warning .nav-link:hover { + color: #e2c636; + background-color: transparent; } + +.border-tab.nav-warning .nav-item .nav-link { + -webkit-transition: 0.3s; + transition: 0.3s; } + .border-tab.nav-warning .nav-item .nav-link.active, .border-tab.nav-warning .nav-item .nav-link.show, .border-tab.nav-warning .nav-item .nav-link:focus { + border-bottom: 2px solid #e2c636; } + .border-tab.nav-warning .nav-item .nav-link.active, .border-tab.nav-warning .nav-item .nav-link.show, .border-tab.nav-warning .nav-item .nav-link:focus, .border-tab.nav-warning .nav-item .nav-link:hover { + color: #e2c636; } + +.border-tab.nav-left.nav-warning .nav-link.active, .border-tab.nav-left.nav-warning .show > .nav-link { + border-left-color: #e2c636; + color: #e2c636; } + +.border-tab.nav-right.nav-warning .nav-link.active, .border-tab.nav-right.nav-warning .show > .nav-link { + border-right-color: #e2c636; + color: #e2c636; } + +.tabbed-card ul { + position: absolute; + right: 15px; + top: 22px; } + .tabbed-card ul.border-tab.nav-tabs { + top: 0; } + .tabbed-card ul.border-tab.nav-tabs .nav-item { + float: right; } + .tabbed-card ul.border-tab.nav-tabs .nav-item .nav-link { + padding: 28px 15px; } + +/**===================== + 44. Tabs CSS Ends +==========================**/ +/**===================== + 45. Gallery CSS Start +==========================**/ +.profile-img-style img, .scroll-bar-wrap img { + width: 100%; } + +.gallery { + margin-bottom: -30px; } + .gallery > a { + margin-bottom: 30px; } + .gallery > a:before { + content: "\edee"; + font-family: IcoFont; + position: absolute; + height: calc(100% - 10px); + left: 20px; + width: calc(100% - 40px); + background-color: rgba(255, 255, 255, 0.27); + top: 5px; + -webkit-transform: scale(0); + transform: scale(0); + -webkit-transition: all 0.3s ease; + transition: all 0.3s ease; + 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; + font-size: 30px; + color: #000; } + .gallery > a:hover:before { + -webkit-transform: scale(1); + transform: scale(1); + -webkit-transition: all 0.3s ease; + transition: all 0.3s ease; } + .gallery > a .img-thumbnail { + border-radius: 0; } + +.gallery-with-description { + margin-bottom: -30px; } + .gallery-with-description a > div { + padding: 10px; + border: 1px solid #e4e6ec; + margin-bottom: 30px; } + .gallery-with-description a:hover { + text-decoration: none !important; } + .gallery-with-description h4 { + color: #2c323f; + margin-top: 15px; + font-size: 18px; + font-weight: 600; } + .gallery-with-description p { + color: #999; } + +.lg-backdrop { + background-color: #fff; } + +.lg-outer .lg-actions .lg-next, .lg-outer .lg-actions .lg-prev { + background-color: white; + border: 1px solid #efefef; } + .lg-outer .lg-actions .lg-next:hover, .lg-outer .lg-actions .lg-prev:hover { + color: #2c323f; } + +.lg-outer .lg-toolbar { + background-color: rgba(255, 255, 255, 0.45); + border-bottom: 1px solid #2c323f; } + .lg-outer .lg-toolbar .lg-icon:hover { + color: #2c323f; } + +.lg-outer #lg-counter { + color: #2c323f; } + +.lg-outer .lg-sub-html { + background-color: rgba(255, 255, 255, 0.45); } + .lg-outer .lg-sub-html h4 { + font-size: inherit; + color: #2c323f; } + .lg-outer .lg-sub-html p { + color: #2c323f; } + +.lg-outer .lg-thumb-outer { + background-color: #e6edef; } + +.lg-outer .lg-thumb-item { + padding: 4px; + border: 1px solid #efefef; + border-radius: 0; } + .lg-outer .lg-thumb-item .active, .lg-outer .lg-thumb-item:hover { + border-color: #000; } + +.gallery a:before, .gallery a:after { + content: none; } + +.gallery .img-hover > div { + overflow: hidden; } + +.gallery .hover-1 img { + -webkit-transform: scale(1); + transform: scale(1); + -webkit-transition: .3s ease-in-out; + transition: .3s ease-in-out; } + .gallery .hover-1 img:hover { + -webkit-transform: scale(1.2); + transform: scale(1.2); } + +.gallery .hover-2 img { + width: 100%; + height: auto; + -webkit-transition: .3s ease-in-out; + transition: .3s ease-in-out; + -webkit-transform: translateX(0px); + transform: translateX(0px); } + +.gallery .hover-2:hover img { + -webkit-transform: translateX(40px) scale(1.2); + transform: translateX(40px) scale(1.2); } + +.gallery .hover-3 img { + -webkit-transform: scale(1.2); + transform: scale(1.2); + -webkit-transition: .3s ease-in-out; + transition: .3s ease-in-out; } + +.gallery .hover-3:hover img { + -webkit-transform: scale(1); + transform: scale(1); } + +.gallery .hover-4 img { + -webkit-transform: scale(1.5); + transform: scale(1.5); + -webkit-transition: .3s ease-in-out; + transition: .3s ease-in-out; } + +.gallery .hover-4:hover img { + -webkit-transform: scale(1); + transform: scale(1); } + +.gallery .hover-5 img { + margin-left: 30px; + -webkit-transform: scale(1.3); + transform: scale(1.3); + -webkit-transition: .3s ease-in-out; + transition: .3s ease-in-out; } + +.gallery .hover-5:hover img { + margin-left: 0; } + +.gallery .hover-6 img { + -webkit-transform: rotate(15deg) scale(1.4); + transform: rotate(15deg) scale(1.4); + -webkit-transition: .3s ease-in-out; + transition: .3s ease-in-out; } + +.gallery .hover-6:hover img { + -webkit-transform: rotate(0) scale(1); + transform: rotate(0) scale(1); } + +.gallery .hover-7 img { + -webkit-filter: blur(3px); + filter: blur(3px); + -webkit-transition: .3s ease-in-out; + transition: .3s ease-in-out; } + +.gallery .hover-7:hover img { + -webkit-filter: blur(0); + filter: blur(0); } + +.gallery .hover-8 img { + -webkit-filter: grayscale(100%); + filter: grayscale(100%); + -webkit-transition: .3s ease-in-out; + transition: .3s ease-in-out; } + +.gallery .hover-8:hover img { + -webkit-filter: grayscale(0); + filter: grayscale(0); } + +.gallery .hover-9 img { + -webkit-filter: sepia(100%); + filter: sepia(100%); + -webkit-transition: .3s ease-in-out; + transition: .3s ease-in-out; } + +.gallery .hover-9:hover img { + -webkit-filter: sepia(0); + filter: sepia(0); } + +.gallery .hover-10 img { + -webkit-filter: grayscale(0) blur(0); + filter: grayscale(0) blur(0); + -webkit-transition: .3s ease-in-out; + transition: .3s ease-in-out; } + +.gallery .hover-10:hover img { + -webkit-filter: grayscale(100%) blur(3px); + filter: grayscale(100%) blur(3px); } + +.gallery .hover-11 img { + opacity: 1; + -webkit-transition: .3s ease-in-out; + transition: .3s ease-in-out; } + +.gallery .hover-11:hover img { + opacity: .5; } + +@-webkit-keyframes flash { + 0% { + opacity: .4; } + 100% { + opacity: 1; } } + +@keyframes flash { + 0% { + opacity: .4; } + 100% { + opacity: 1; } } + +.gallery .hover-13:hover img { + opacity: 1; + -webkit-animation: flash 1.5s; + animation: flash 1.5s; } + +@-webkit-keyframes shine { + 100% { + left: 125%; } } + +@keyframes shine { + 100% { + left: 125%; } } + +.gallery .hover-14 div { + position: relative; } + .gallery .hover-14 div:before { + position: absolute; + top: 0; + left: -75%; + z-index: 2; + display: block; + content: ''; + width: 50%; + height: 100%; + background: -webkit-gradient(linear, left top, right top, from(rgba(255, 255, 255, 0)), to(rgba(255, 255, 255, 0.3))); + background: linear-gradient(to right, rgba(255, 255, 255, 0) 0%, rgba(255, 255, 255, 0.3) 100%); + -webkit-transform: skewX(-25deg); + transform: skewX(-25deg); } + .gallery .hover-14 div:hover:before { + -webkit-animation: shine .75s; + animation: shine .75s; } + +.gallery .hover-15 div { + position: relative; } + .gallery .hover-15 div:before { + position: absolute; + top: 50%; + left: 50%; + z-index: 2; + display: block; + content: ''; + width: 0; + height: 0; + background: rgba(255, 255, 255, 0.2); + border-radius: 100%; + -webkit-transform: translate(-50%, -50%); + transform: translate(-50%, -50%); + opacity: 0; } + .gallery .hover-15 div:hover:before { + -webkit-animation: circle .75s; + animation: circle .75s; } + +@-webkit-keyframes circle { + 0% { + opacity: 1; } + 40% { + opacity: 1; } + 100% { + width: 200%; + height: 200%; + opacity: 0; } } + +@keyframes circle { + 0% { + opacity: 1; } + 40% { + opacity: 1; } + 100% { + width: 200%; + height: 200%; + opacity: 0; } } + +* { + -webkit-box-sizing: border-box; + box-sizing: border-box; } + *:after, *:before { + -webkit-box-sizing: border-box; + box-sizing: border-box; } + +.grid { + position: relative; } + +/* clear fix */ +.grid:after { + content: ''; + display: block; + clear: both; } + +/* ---- .grid-item ---- */ +.grid-item img { + max-width: 100%; + padding: 0.25rem; + background-color: #fff; + border: 1px solid #dee2e6; } + +.gallery-with-description .grid-item img { + border: 0; + padding: 0; } + +/**===================== + 45. Gallery CSS Ends +==========================**/ +/**===================== + 46. Blog CSS start +==========================**/ +.blog-box .blog-wrraper { + overflow: hidden; } + +.blog-box img { + border-radius: 0.25rem; + -webkit-transition: all 0.5s ease; + transition: all 0.5s ease; } + +.blog-box .top-radius-blog { + border-bottom-left-radius: 0; + border-bottom-right-radius: 0; } + +.blog-box h6 { + font-weight: 600; + margin: 15px 0; + color: #242934; } + +.blog-box .blog-details { + padding-right: 20px; } + .blog-box .blog-details .blog-social li { + display: inline-block; + font-size: 14px; + color: #999; + font-weight: 500; } + .blog-box .blog-details .blog-social li i { + padding-right: 5px; } + .blog-box .blog-details .blog-social li:nth-child(n+2) { + border-left: 1px solid #e6edef; + padding-left: 20px; + margin-left: 20px; } + +.blog-box .blog-details-main .blog-social { + margin: 15px 0; } + .blog-box .blog-details-main .blog-social li { + display: inline-block; + color: rgba(36, 41, 52, 0.7); + font-size: 12px; + padding: 0 15px; + font-weight: 500; + border-right: 1px solid #e6edef; } + .blog-box .blog-details-main .blog-social li:last-child { + border-right: 0; } + .blog-box .blog-details-main .blog-social li i { + padding-right: 5px; } + +.blog-box .blog-details-main .blog-bottom-details { + margin: 20px; + font-size: 14px; + line-height: 1.6; + font-weight: 700; } + +.blog-box .blog-date { + color: rgba(36, 41, 52, 0.7); + margin-bottom: 5px; } + .blog-box .blog-date span { + font-size: 36px; + font-weight: 600; + padding-right: 5px; + color: #24695c; + line-height: 1; } + +.blog-box .media { + -webkit-box-align: center; + -ms-flex-align: center; + align-items: center; } + +.blog-box .blog-details-second { + padding: 20px; } + .blog-box .blog-details-second .blog-post-date { + margin-top: -48px; + z-index: 2; + position: relative; } + .blog-box .blog-details-second .blog-post-date .blg-month, .blog-box .blog-details-second .blog-post-date .blg-date { + padding: 5px; + display: block; + width: 50px; + font-size: 12px; + text-align: center; + text-transform: capitalize; + color: #fff; + font-weight: 600; } + .blog-box .blog-details-second .blog-post-date .blg-month { + background-color: #24695c; } + .blog-box .blog-details-second .blog-post-date .blg-date { + background-color: #ba895d; } + .blog-box .blog-details-second h6 { + font-size: 18px; + margin-top: 25px; + margin-bottom: 10px; } + .blog-box .blog-details-second p { + color: #999; + margin-bottom: 15px; } + .blog-box .blog-details-second .detail-footer { + padding: 15px 20px; + margin-left: -20px; + margin-right: -20px; + margin-bottom: -20px; + border-top: 1px solid #e6edef; } + .blog-box .blog-details-second .detail-footer ul.sociyal-list li { + display: inline-block; + color: #999; + text-transform: capitalize; + font-weight: 600; } + .blog-box .blog-details-second .detail-footer ul.sociyal-list li i { + font-size: 12px; + margin-right: 5px; + font-weight: 600; } + .blog-box .blog-details-second .detail-footer ul.sociyal-list li:nth-child(n+2) { + margin-left: 15px; + padding-left: 15px; + border-left: 1px solid #e6edef; } + +.blog-box:hover .blog-wrraper img { + -webkit-transform: scale(1.05); + transform: scale(1.05); } + +.blog-box.blog-shadow { + height: 560px; } + .blog-box.blog-shadow:before { + -webkit-box-shadow: inset 0px -200px 100px -13px rgba(0, 0, 0, 0.6); + box-shadow: inset 0px -200px 100px -13px rgba(0, 0, 0, 0.6); + -webkit-transition: all 0.3s ease; + transition: all 0.3s ease; + border-radius: 5px; + content: ""; + position: absolute; + height: 100%; + top: 0; + width: 100%; + bottom: 0; } + .blog-box.blog-shadow:hover:before { + -webkit-box-shadow: inset 0px -200px 100px -13px rgba(0, 0, 0, 0.65); + box-shadow: inset 0px -200px 100px -13px rgba(0, 0, 0, 0.65); + -webkit-transition: all 0.3s ease; + transition: all 0.3s ease; } + .blog-box.blog-shadow .blog-details { + position: absolute; + bottom: 0; + width: 100%; + padding: 40px; } + .blog-box.blog-shadow .blog-details h4 { + color: #fff; + margin-top: 15px; + margin-bottom: 15px; } + .blog-box.blog-shadow .blog-details p { + font-size: 14px; + color: #fff; + padding-top: unset; + margin-top: 0; } + .blog-box.blog-shadow .blog-details .blog-social li { + color: #fff; } + +.blog-list .blog-details hr { + margin-top: 15px; + margin-bottom: 15px; } + +.blog-list .blog-details .blog-social { + margin-top: 0; } + +.blog-list .blog-details h6 { + margin-top: 0; + margin-bottom: 10px; + line-height: 1.6; + font-weight: 600; + color: #242934; } + +.blog-list img { + width: 100%; + padding: 17px; } + +.blog-grid img { + width: 100%; } + +.blog-grid .blog-details { + padding: 20px; } + .blog-grid .blog-details h6 { + font-size: 14px; + margin-bottom: 0; + line-height: 1.8; } + +.blog-box { + position: relative; + max-height: 100%; + -webkit-box-align: center; + -ms-flex-align: center; + align-items: center; } + .blog-box .blog-details p { + font-size: 14px; + line-height: 1.6; + letter-spacing: 0.7px; + margin-top: 10px; + margin-bottom: 0; + color: #999; } + .blog-box .blog-details h4 { + font-size: 18px; + font-weight: 600; + line-height: 1.5; + margin-top: 20px; + margin-bottom: 0; } + .blog-box .blog-details .single-blog-content-top { + border-top: 1px solid #e6edef; } + .blog-box .blog-details .blog-social li, .blog-box .blog-details .comment-social li { + font-size: 14px; + color: #999; + font-weight: 600; } + +.comment-box { + margin-top: 30px; } + .comment-box h4 { + font-weight: 700; + margin-bottom: 30px; + padding-bottom: 20px; + border-bottom: 1px solid #e6edef; } + .comment-box li { + margin-bottom: 30px; + clear: both; } + .comment-box li:last-child { + margin-bottom: 0; } + .comment-box ul ul { + margin-left: 135px; + text-align: right; } + .comment-box p { + font-size: 14px; + line-height: 1.8; + text-align: justify; + margin-bottom: 0; + color: #999; } + .comment-box .media img { + margin-right: 45px; + border-radius: 50%; + height: 90px; + padding: 7px; + width: 90px; + border: 1px solid #efefef; } + .comment-box .media h6 { + font-size: 16px; + font-weight: 600; + margin-bottom: 10px; + text-align: left; } + .comment-box .media h6 span { + padding-left: 10px; + font-size: 13px; + color: #999; + font-weight: 400; } + .comment-box .comment-social { + margin-left: 0; } + .comment-box .comment-social li { + display: inline-block; + color: #cccccc; + margin-bottom: 0; + font-weight: 500; + text-transform: uppercase; } + .comment-box .comment-social li:nth-child(n+2) { + margin-left: 20px; + padding-left: 20px; + border-left: 1px solid #e6edef; } + .comment-box .comment-social li i { + padding-right: 10px; } + +.blog-single .blog-box .banner-wrraper { + height: 400px; } + +.blog-single .blog-box .blog-details p { + margin-top: 15px; } + +.blog-single .single-blog-content-top { + margin-top: 15px; } + +.blog-single .comment-social { + margin-left: unset; } + +@media (max-width: 1500px) { + .blog-box.blog-shadow { + height: 480px; } } + +@media screen and (min-width: 1366px) and (max-width: 1530px) { + .blog-box .blog-details-second { + padding: 15px; } + .blog-box .blog-details-second p { + font-size: 13px; } + .blog-box .blog-details-second h6 { + font-size: 16px; + margin-top: 20px; + margin-bottom: 5px; } + .blog-box .blog-details-second .blog-post-date { + margin-top: -35px; } + .blog-box .blog-details-second .blog-post-date .blg-month, .blog-box .blog-details-second .blog-post-date .blg-date { + font-size: 10px; + padding: 3px; } + .blog-box .blog-details-second .detail-footer { + margin-bottom: -15px; + margin-left: -15px; + margin-right: -15px; + padding: 10px 15px; } + .blog-box .blog-details-second .detail-footer ul.sociyal-list li { + font-size: 12px; } + .blog-box .blog-details-second .detail-footer ul.sociyal-list li:nth-child(n+2) { + margin-left: 10px; + padding-left: 10px; } } + +@media (max-width: 1400px) { + .blog-box.blog-shadow { + height: 440px; } } + +@media (max-width: 1365px) { + .blog-box.blog-shadow { + height: 440px; } } + +@media (max-width: 1280px) { + .blog-box.blog-shadow { + height: 365px; } } + +@media (max-width: 1199px) { + .comment-box .blog-details h4 { + margin-top: 50px; } + .blog-box.blog-shadow { + height: 380px; } + .blog-box .media { + display: block; } + .blog-box .blog-details { + padding: 20px; } + .blog-list img { + width: 100%; + padding: 0; } + .blog-single .blog-box .blog-details { + padding: unset; } } + +@media (max-width: 991px) { + .blog-box .blog-details p { + margin-top: 10px; } + .blog-box .blog-details .single-blog-content-top { + margin-top: 20px; } } + +@media (max-width: 767px) { + .comment-box ul ul { + text-align: left; } + .blog-single .blog-box .blog-details h4 { + margin-top: 10px; } + .blog-single .blog-box .blog-details .single-blog-content-top { + margin-top: 10px; } + .blog-single .blog-box .blog-details p { + margin-top: 10px; } + .blog-box .blog-details-second { + padding: 15px; } + .blog-box .blog-details-second h6 { + margin-top: 20px; } + .blog-box .blog-details-second .detail-footer { + padding: 15px 15px; + margin-left: -15px; + margin-right: -15px; + margin-bottom: -15px; } + .blog-box .blog-details-second .detail-footer ul.sociyal-list li { + font-size: 12px; } + .blog-box .blog-details-second .detail-footer ul.sociyal-list li:nth-child(n+2) { + margin-left: 10px; + padding-left: 10px; } + .blog-box .blog-details-second .blog-post-date { + margin-top: -35px; } + .blog-box .blog-details-second .blog-post-date .blg-month, .blog-box .blog-details-second .blog-post-date .blg-date { + padding: 3px; + font-size: 10px; } + .blog-box .blog-details .blog-social li:nth-child(n+2) { + padding-left: 10px; + margin-left: 10px; } + .blog-box .blog-details .blog-social li, .blog-box .blog-details .comment-social li { + font-size: 13px; } } + +@media (max-width: 575px) { + .blog-single .comment-box .comment-social li { + font-size: 12px; } } + +@media (max-width: 480px) { + .blog-box .blog-details-second h6 { + margin-top: 15px; + margin-bottom: 5px; } + .blog-box .blog-details-second p { + margin-bottom: 10px; } } + +/**===================== + 46. Blog CSS ends +==========================**/ +/**===================== + 47. Footer CSS Start +==========================**/ +.footer-links { + text-align: right; } + .footer-links li { + display: inline-block; + padding-right: 15px; } + .footer-links li a { + font-size: 12px; } + +footer { + background-color: #fff; + -webkit-box-shadow: 0 0 20px 16px rgba(4, 122, 251, 0.04); + box-shadow: 0 0 20px 16px rgba(4, 122, 251, 0.04); + padding: 15px; + bottom: 0; + left: 0; + margin-left: 275px; } + footer a { + font-weight: 600; } + footer.footer-starter-kit { + bottom: -52px; } + footer p { + font-size: 14px; + font-weight: 500; + color: #999; } + +.page-wrapper .page-body-wrapper .footer-dark { + background-color: #2b2b2b; } + .page-wrapper .page-body-wrapper .footer-dark p { + color: #fff !important; } + .page-wrapper .page-body-wrapper .footer-dark li a { + color: #fff; } + +.footer-fix { + width: calc(100% - 255px); + position: fixed; } + +.page-wrapper.horizontal-wrapper .page-body-wrapper footer { + -webkit-transition: all 0.3s ease; + transition: all 0.3s ease; + bottom: 0; + z-index: 8; + margin-left: 0; } + .page-wrapper.horizontal-wrapper .page-body-wrapper footer p { + color: #242934; } + .page-wrapper.horizontal-wrapper .page-body-wrapper footer p i { + color: #ba895d; + margin-left: 5px; } + +/**===================== + 47. Footer CSS Ends +==========================**/ +/**=========================== + 48. Form Wizard CSS Start +=============================**/ +/*Form Wizard One Start*/ +.form-wizard .tab { + display: none; } + +.form-wizard .btn-mb { + margin-bottom: 30px; } + +.form-wizard .step { + height: 10px; + width: 10px; + margin: 0 2px; + background-color: #24695c; + border: none; + border-radius: 50%; + display: inline-block; + opacity: 0.5; } + .form-wizard .step.active { + opacity: 1; } + .form-wizard .step.finish { + background-color: #ba895d; } + +/*Form Wizard One ends*/ +/*Form Wizard Two Start*/ +.stepwizard { + display: table; + width: 100%; + position: relative; + margin-bottom: 30px; } + .stepwizard .stepwizard-row { + display: table-row; } + .stepwizard .stepwizard-row:before { + top: 16px; + bottom: 0; + position: absolute; + content: " "; + width: 100%; + height: 1px; + background-color: #e6edef; } + .stepwizard .stepwizard-row .stepwizard-step { + display: table-cell; + text-align: center; + position: relative; } + .stepwizard .stepwizard-row .stepwizard-step p { + margin-top: 10px; } + .stepwizard .stepwizard-row .stepwizard-step button[disabled] { + opacity: 1 !important; + filter: alpha(opacity=100) !important; } + .stepwizard .stepwizard-row .stepwizard-step .btn { + font-weight: 600; } + +/*Form Wizard Two Ends*/ +/*Form Wizard Three Start*/ +.f1 fieldset { + display: none; } + +.f1 .input-error { + border-color: #d22d3d; } + +.f1 .f1-steps { + overflow: hidden; + position: relative; + margin-top: 30px; + margin-bottom: 30px; } + .f1 .f1-steps .f1-progress { + position: absolute; + top: 24px; + width: 100%; + height: 1px; + background-color: #e6edef; } + .f1 .f1-steps .f1-progress .f1-progress-line { + height: 1px; + background-color: #24695c; + width: 16%; } + .f1 .f1-steps .f1-step { + position: relative; + float: left; + width: 33.333333%; + text-align: center; } + .f1 .f1-steps .f1-step.activated .f1-step-icon { + border: 1px solid #24695c; + color: #24695c; + line-height: 38px; } + .f1 .f1-steps .f1-step.activated p { + color: #24695c; } + .f1 .f1-steps .f1-step.active .f1-step-icon { + background-color: #24695c; + color: #fff; } + .f1 .f1-steps .f1-step.active p { + color: #24695c; } + .f1 .f1-steps .f1-step p { + color: #898989; + font-weight: 600; } + .f1 .f1-steps .f1-step .f1-step-icon { + display: inline-block; + width: 40px; + height: 40px; + background-color: #e6edef; + font-size: 16px; + color: #24695c; + line-height: 40px; + border-radius: 50%; } + +.f1 .f1-buttons { + text-align: right; } + +/*Form Wizard Three ends*/ +/*Form Wizard Four Start*/ +.wizard-4 .buttonDisabled { + color: #2c323f; + background-color: #e6edef; + border: 1px solid #e6edef; + cursor: text; } + +.wizard-4 .action-bar .btn { + float: right; + margin: 0 5px; } + +.wizard-4 .step-container { + position: relative; + margin: 0; + padding: 0; + border: 0 solid #e6edef; + overflow: hidden; + clear: right; + width: 70%; + -webkit-box-sizing: border-box; + box-sizing: border-box; } + .wizard-4 .step-container div.content { + display: block; + position: absolute; + float: left; + height: 295px; + text-align: left; + overflow: auto; + z-index: 1; + width: 100%; + -webkit-box-sizing: border-box; + box-sizing: border-box; + clear: both; } + +.wizard-4 .loader { + display: none; } + +.wizard-4 .msg-box { + position: absolute; + display: none; + padding: 5px 10px; + background-color: #24695c; + left: 32%; + bottom: 30px; + border-radius: 2px; } + .wizard-4 .msg-box .content { + padding: 0; + float: left; + padding-top: 3px; + color: #fff; } + .wizard-4 .msg-box .close { + text-shadow: none; + color: #fff; + margin-left: 10px; + opacity: 1; } + +.wizard-4 ul.anchor { + position: relative; + display: block; + float: left; + list-style: none; + margin: 0; + padding: 0; + border: 0 solid #e6edef; + background: transparent; + width: 30%; + -webkit-box-sizing: border-box; + box-sizing: border-box; + padding-right: 30px; } + .wizard-4 ul.anchor li { + position: relative; + display: block; + margin: 0; + padding: 0; + padding-bottom: 19px; + float: left; + clear: both; + width: 100%; + -webkit-box-sizing: border-box; + box-sizing: border-box; + z-index: 0; } + .wizard-4 ul.anchor li a { + display: block; + position: relative; + float: left; + margin: 0; + padding: 10px 20px; + width: 100%; + -webkit-box-sizing: border-box; + box-sizing: border-box; + text-decoration: none; + outline-style: none; + z-index: 1; + font-size: 18px; } + .wizard-4 ul.anchor li a small { + display: block; + font-size: 14px; } + .wizard-4 ul.anchor li a .stepNumber { + position: relative; + float: left; + width: 30px; + text-align: center; + padding: 5px; + padding-top: 0; } + .wizard-4 ul.anchor li a.selected { + color: #fff; + background: #24695c; + cursor: text; + border-radius: 5px; } + .wizard-4 ul.anchor li a.done { + position: relative; + color: #fff; + background: #ba895d; + z-index: 99; + border-radius: 5px; } + .wizard-4 ul.anchor li a.disabled { + color: #898989; + background: #e6edef; + cursor: text; + border-radius: 5px; } + .wizard-4 ul.anchor li a.error { + color: #898989; + background: #fe8a7d; + border: 1px solid #d22d3d; } + .wizard-4 ul.anchor li a.error:hover { + color: #000; } + +@media (max-width: 575px) { + .f1 .f1-steps .f1-step .f1-step-icon { + width: 35px; + height: 35px; + font-size: 14px; } + .f1 .f1-steps .f1-progress { + top: 20px; } } + +/*Form Wizard Four Ends*/ +/**===================== + 48. Form Wizard CSS Ends +==========================**/ +/**===================== + 49. Badge CSS start +==========================**/ +.badge { + padding: 0.44em 0.7em; } + .badge + .badge { + margin-left: 5px; } + .badge svg { + width: 10px; + height: 10px; } + +.pill-badge-primary { + background-color: #24695c; + -webkit-box-shadow: -0.5px 4.33px 16px 0px rgba(36, 105, 92, 0.25); + box-shadow: -0.5px 4.33px 16px 0px rgba(36, 105, 92, 0.25); + color: #fff; + font-size: 9px; + text-transform: capitalize; + border-radius: 5px; + font-weight: 600; + padding: 5px 9px; } + +.pill-badge-secondary { + background-color: #ba895d; + -webkit-box-shadow: -0.5px 4.33px 16px 0px rgba(186, 137, 93, 0.25); + box-shadow: -0.5px 4.33px 16px 0px rgba(186, 137, 93, 0.25); + color: #fff; + font-size: 9px; + text-transform: capitalize; + border-radius: 5px; + font-weight: 600; + padding: 5px 9px; } + +.pill-badge-success { + background-color: #1b4c43; + -webkit-box-shadow: -0.5px 4.33px 16px 0px rgba(27, 76, 67, 0.25); + box-shadow: -0.5px 4.33px 16px 0px rgba(27, 76, 67, 0.25); + color: #fff; + font-size: 9px; + text-transform: capitalize; + border-radius: 5px; + font-weight: 600; + padding: 5px 9px; } + +.pill-badge-danger { + background-color: #d22d3d; + -webkit-box-shadow: -0.5px 4.33px 16px 0px rgba(210, 45, 61, 0.25); + box-shadow: -0.5px 4.33px 16px 0px rgba(210, 45, 61, 0.25); + color: #fff; + font-size: 9px; + text-transform: capitalize; + border-radius: 5px; + font-weight: 600; + padding: 5px 9px; } + +.pill-badge-info { + background-color: #717171; + -webkit-box-shadow: -0.5px 4.33px 16px 0px rgba(113, 113, 113, 0.25); + box-shadow: -0.5px 4.33px 16px 0px rgba(113, 113, 113, 0.25); + color: #fff; + font-size: 9px; + text-transform: capitalize; + border-radius: 5px; + font-weight: 600; + padding: 5px 9px; } + +.pill-badge-light { + background-color: #e6edef; + -webkit-box-shadow: -0.5px 4.33px 16px 0px rgba(230, 237, 239, 0.25); + box-shadow: -0.5px 4.33px 16px 0px rgba(230, 237, 239, 0.25); + color: #fff; + font-size: 9px; + text-transform: capitalize; + border-radius: 5px; + font-weight: 600; + padding: 5px 9px; } + +.pill-badge-dark { + background-color: #2c323f; + -webkit-box-shadow: -0.5px 4.33px 16px 0px rgba(44, 50, 63, 0.25); + box-shadow: -0.5px 4.33px 16px 0px rgba(44, 50, 63, 0.25); + color: #fff; + font-size: 9px; + text-transform: capitalize; + border-radius: 5px; + font-weight: 600; + padding: 5px 9px; } + +.pill-badge-warning { + background-color: #e2c636; + -webkit-box-shadow: -0.5px 4.33px 16px 0px rgba(226, 198, 54, 0.25); + box-shadow: -0.5px 4.33px 16px 0px rgba(226, 198, 54, 0.25); + color: #fff; + font-size: 9px; + text-transform: capitalize; + border-radius: 5px; + font-weight: 600; + padding: 5px 9px; } + +.round-badge-primary { + border-radius: 6px; + background-color: #24695c; + -webkit-box-shadow: -0.5px -6.67px 14px 0px rgba(36, 105, 92, 0.18); + box-shadow: -0.5px -6.67px 14px 0px rgba(36, 105, 92, 0.18); + color: #fff !important; } + +.round-badge-secondary { + border-radius: 6px; + background-color: #ba895d; + -webkit-box-shadow: -0.5px -6.67px 14px 0px rgba(186, 137, 93, 0.18); + box-shadow: -0.5px -6.67px 14px 0px rgba(186, 137, 93, 0.18); + color: #fff !important; } + +.round-badge-success { + border-radius: 6px; + background-color: #1b4c43; + -webkit-box-shadow: -0.5px -6.67px 14px 0px rgba(27, 76, 67, 0.18); + box-shadow: -0.5px -6.67px 14px 0px rgba(27, 76, 67, 0.18); + color: #fff !important; } + +.round-badge-danger { + border-radius: 6px; + background-color: #d22d3d; + -webkit-box-shadow: -0.5px -6.67px 14px 0px rgba(210, 45, 61, 0.18); + box-shadow: -0.5px -6.67px 14px 0px rgba(210, 45, 61, 0.18); + color: #fff !important; } + +.round-badge-info { + border-radius: 6px; + background-color: #717171; + -webkit-box-shadow: -0.5px -6.67px 14px 0px rgba(113, 113, 113, 0.18); + box-shadow: -0.5px -6.67px 14px 0px rgba(113, 113, 113, 0.18); + color: #fff !important; } + +.round-badge-light { + border-radius: 6px; + background-color: #e6edef; + -webkit-box-shadow: -0.5px -6.67px 14px 0px rgba(230, 237, 239, 0.18); + box-shadow: -0.5px -6.67px 14px 0px rgba(230, 237, 239, 0.18); + color: #fff !important; } + +.round-badge-dark { + border-radius: 6px; + background-color: #2c323f; + -webkit-box-shadow: -0.5px -6.67px 14px 0px rgba(44, 50, 63, 0.18); + box-shadow: -0.5px -6.67px 14px 0px rgba(44, 50, 63, 0.18); + color: #fff !important; } + +.round-badge-warning { + border-radius: 6px; + background-color: #e2c636; + -webkit-box-shadow: -0.5px -6.67px 14px 0px rgba(226, 198, 54, 0.18); + box-shadow: -0.5px -6.67px 14px 0px rgba(226, 198, 54, 0.18); + color: #fff !important; } + +/**===================== + 49. Badge CSS Ends +==========================**/ +/**===================== + 50. Tree CSS Start +==========================**/ +.jstree-default .jstree-clicked { + background-color: rgba(36, 105, 92, 0.2); + -webkit-box-shadow: none; + box-shadow: none; + color: #24695c; } + +.vakata-context, .vakata-context ul { + background-color: #fff; + border: none; + -webkit-box-shadow: 0 0 2px 2px #efefef; + box-shadow: 0 0 2px 2px #efefef; } + .vakata-context li a .vakata-contextmenu-sep, .vakata-context ul li a .vakata-contextmenu-sep { + display: none; } + .vakata-context li a:hover, .vakata-context ul li a:hover { + background-color: #97dbcf; + -webkit-box-shadow: None; + box-shadow: None; } + .vakata-context .vakata-context-separator, .vakata-context ul .vakata-context-separator { + display: none; } + +.jstree-default .jstree-anchor { + font-weight: 500; } + +/**===================== + 50. Tree CSS Ends +==========================**/ +/**===================== + 51. Search CSS Start +==========================**/ +.search-page .search-form input:focus { + outline: none; } + +.search-page .search-form .form-group { + position: relative; + border-radius: 50px; + overflow: hidden; } + .search-page .search-form .form-group .input-group-text { + position: absolute; + top: 0; + left: 0; + height: 100%; + border-radius: 20px; + border-color: #24695c; + background-color: #24695c; + padding: 0 20px; } + .search-page .search-form .form-group .input-group-text i { + color: #fff; + font-weight: 600; } + +.search-page .info-block + .info-block { + padding-top: 30px; + border-top: 1px solid #e6edef; + margin-top: 30px; } + +.search-page .border-tab.nav-tabs { + -webkit-box-align: left; + -ms-flex-align: left; + align-items: left; + -webkit-box-pack: end; + -ms-flex-pack: end; + justify-content: end; } + .search-page .border-tab.nav-tabs .nav-item { + width: auto; } + +.search-page .search-links h6 { + margin-bottom: 0; + font-size: 18px; + line-height: 1.6; } + +.search-page p { + margin-bottom: 0; + color: #999; } + +.search-page ul.search-info > li { + display: inline-block; + font-size: 12px; + line-height: 1; + color: #586082; } + .search-page ul.search-info > li + li { + border-left: 1px solid #a8b0c2; + padding-left: 8px; + margin-left: 8px; } + .search-page ul.search-info > li i { + color: #e2c636; } + +.search-page ul.search-info .rating li { + display: inline-block; } + +.search-page #video-links .embed-responsive + .embed-responsive { + margin-top: 30px; } + +.search-page .search-vid-block > div:nth-child(n+2) { + margin-top: 30px; } + +.search-list { + margin-bottom: 30px; + width: auto; + display: -webkit-box; + display: -ms-flexbox; + display: flex; + border-radius: 10px; + overflow: hidden; + border: 1px solid #24695c; + border: none; + margin-left: auto; + margin-right: auto; + -webkit-box-pack: center; + -ms-flex-pack: center; + justify-content: center; } + .search-list .nav-item { + background-color: rgba(36, 105, 92, 0.1); } + .search-list .nav-item .nav-link { + border: none; + padding: 0.7rem 1.5rem; + opacity: 0.5; } + .search-list .nav-item .nav-link.active { + background-color: rgba(36, 105, 92, 0.1); + opacity: 1; } + .search-list .nav-item.show, .search-list .nav-item.active { + background-color: rgba(36, 105, 92, 0.1); } + +@media (max-width: 1199px) { + .search-page .search-banner { + margin-top: 30px; } + .search-page .search-banner .card { + margin-bottom: unset; } } + +@media (max-width: 767px) { + .search-page .search-links h6 { + font-size: 16px; } } + +@media (max-width: 575px) { + .search-page .search-form .form-group input { + padding: 8px 8px 8px 60px; } + .search-page .search-form .form-group .input-group-text { + padding: 0 15px; } + .search-page .info-block + .info-block { + margin-top: 15px; + padding-top: 15px; } + .search-list { + display: -webkit-inline-box; + display: -ms-inline-flexbox; + display: inline-flex; + margin-bottom: 15px; } + .search-list .nav-item { + display: inline-block; + margin-bottom: 5px; } + .search-list .nav-item .nav-link { + padding: 8px 20px; } } + +/**===================== + 51. Search CSS Ends +==========================**/ +/**===================== + 52. Datepicker CSS Start +==========================**/ +.clockpicker-canvas line { + stroke: #24695c; } + +.clockpicker-canvas-fg, .clockpicker-canvas-bearing { + fill: #24695c; } + +.daterangepicker td.available:hover, .daterangepicker th.available:hover { + background-color: #24695c; } + +.datepicker--day-name { + color: #000; + font-weight: bold; } + +.datepicker--cell.-current- { + color: #000; + border-radius: 5px; + font-weight: bold; + border: 2px solid #24695c; } + +.datepicker--cell.-focus- { + background: #24695c; + color: #fff; } + +.datepicker--cell.-selected- { + background: #24695c; } + +.daterangepicker.ltr { + color: #898989; + z-index: 8; } + .daterangepicker.ltr tr { + font-size: 13px; } + .daterangepicker.ltr tr td { + height: 34px; + width: 34px; } + .daterangepicker.ltr tr td.in-range { + background-color: #fafafa; } + .daterangepicker.ltr tr td.active { + background-color: #24695c; } + .daterangepicker.ltr .ranges { + float: none; } + .daterangepicker.ltr .ranges li { + color: #24695c; } + .daterangepicker.ltr .ranges li:hover { + background-color: #24695c; + border: 1px solid #24695c; + color: #fff; } + .daterangepicker.ltr .ranges li.active { + background-color: #24695c; + border: 1px solid #24695c; + color: #fff; } + .daterangepicker.ltr .calendar-time select { + color: #898989; } + +.datetime-picker .bootstrap-datetimepicker-widget.dropdown-menu { + width: auto; } + +.date-range-picker > div:last-child .theme-form { + margin-bottom: 0px; } + +.daterangepicker:before { + border-bottom: 7px solid #efefef; } + +.daterangepicker .daterangepicker_input i { + font-size: 14px; + color: #59667a; } + +.daterangepicker .input-mini { + border-color: #efefef !important; + font-size: 14px; + color: #59667a; } + +.daterangepicker th, .daterangepicker td { + height: 34px; + width: 34px; } + .daterangepicker th:hover, .daterangepicker td:hover { + color: #2c323f; } + .daterangepicker th.prev, .daterangepicker th.next, .daterangepicker td.prev, .daterangepicker td.next { + color: #fff; + height: 34px; + width: 34px; + background-color: #24695c; } + .daterangepicker th.month, .daterangepicker td.month { + color: #24695c; + letter-spacing: 1px; + text-transform: uppercase; } + +/**===================== + 52. Datepicker CSS End +==========================**/ +/**===================== + 54. Tour CSS Start +==========================**/ +.introjs-helperLayer { + background-color: rgba(255, 255, 255, 0.9); + border: 1px solid rgba(0, 0, 0, 0.5); + -webkit-box-shadow: 0 2px 15px rgba(0, 0, 0, 0.4); + box-shadow: 0 2px 15px rgba(0, 0, 0, 0.4); } + +.introjs-tooltipReferenceLayer { + background-color: transparent; } + +.introjs-helperNumberLayer { + color: #fff; + text-shadow: 1px 1px 1px rgba(0, 0, 0, 0.3); + background: #d22d3d; + background: -webkit-gradient(linear, left top, left bottom, from(#24695c), to(#24695c)); + background: linear-gradient(to bottom, #24695c 0%, #24695c 100%); + border: 3px solid #fff; + -webkit-box-shadow: 0 2px 5px rgba(0, 0, 0, 0.4); + box-shadow: 0 2px 5px rgba(0, 0, 0, 0.4); } + +.introjs-arrow { + border: 12px solid #fff; } + .introjs-arrow.top { + border-top-color: transparent; + border-right-color: transparent; + border-bottom-color: #24695c; + border-left-color: transparent; } + .introjs-arrow.top-right { + border-top-color: transparent; + border-right-color: transparent; + border-bottom-color: #24695c; + border-left-color: transparent; } + .introjs-arrow.top-middle { + border-top-color: transparent; + border-right-color: transparent; + border-bottom-color: #24695c; + border-left-color: transparent; } + .introjs-arrow.right { + border-top-color: transparent; + border-right-color: transparent; + border-bottom-color: transparent; + border-left-color: #24695c; } + .introjs-arrow.right-bottom { + border-top-color: transparent; + border-right-color: transparent; + border-bottom-color: transparent; + border-left-color: #24695c; } + .introjs-arrow.bottom { + border-top-color: #24695c; + border-right-color: transparent; + border-bottom-color: transparent; + border-left-color: transparent; } + .introjs-arrow.left { + border-top-color: transparent; + border-right-color: #24695c; + border-bottom-color: transparent; + border-left-color: transparent; } + .introjs-arrow.left-bottom { + border-top-color: transparent; + border-right-color: #24695c; + border-bottom-color: transparent; + border-left-color: transparent; } + +.introjs-tooltip { + background-color: #24695c; + -webkit-box-shadow: 0 1px 10px rgba(0, 0, 0, 0.4); + box-shadow: 0 1px 10px rgba(0, 0, 0, 0.4); + color: #fff; + border-color: #24695c; } + +.introjs-button { + border: 1px solid #efefef; + text-shadow: 1px 1px 0 #fff; + color: #242934 !important; + background-color: #fff; + background-image: -webkit-gradient(linear, left top, left bottom, from(#fff), to(#fff)); + background-image: linear-gradient(#fff, #fff); } + .introjs-button:hover { + border-color: #efefef; } + .introjs-button:focus, .introjs-button:active { + background-image: -webkit-gradient(linear, left top, left bottom, from(#e6edef), to(#efefef)); + background-image: linear-gradient(#e6edef, #efefef); } + +.introjs-skipbutton { + color: #24695c; } + +.introjs-prevbutton.introjs-fullbutton { + border: 1px solid #efefef; } + +.introjs-disabled { + color: #24695c; + border-color: #efefef; } + .introjs-disabled:hover, .introjs-disabled:focus { + color: #24695c; + border-color: #efefef; } + +.introjs-bullets ul li a { + background: #e6edef; } + .introjs-bullets ul li a:hover { + background: #fff; } + .introjs-bullets ul li a.active { + background: #fff; } + +.introjs-progress { + background-color: #e6edef; } + +.introjs-progressbar { + background-color: #24695c; } + +.introjs-hint:hover > .introjs-hint-pulse { + border: 5px solid rgba(60, 60, 60, 0.57); } + +.introjs-hint-pulse { + border: 5px solid rgba(60, 60, 60, 0.27); + background-color: rgba(136, 136, 136, 0.24); } + +.introjs-hint-dot { + border: 10px solid rgba(146, 146, 146, 0.36); } + +/**===================== + 54. Tour CSS Ends +==========================**/ +/**===================== + 55. theme layout CSS Start +==========================**/ +.bg-color1 { + background-color: #405365; } + +.bg-color2 { + background-color: #1C1D1E; } + +.bg-color3 { + background-color: #0c0c3c; } + +.bg-color4 { + background-color: #0747a6; } + +.bg-color5 { + background-color: #4d3096; } + +.bg-light { + background-color: #e6edef; } + +.bg-dark { + background-color: #2f3c4e; } + +.bg-pattern1 { + background-image: url(../images/sidebar-pattern/1.html); + background-color: #2f3c4e; } + +.bg-img1 { + background-image: url(../images/sidebar-image/1.html); } + +.bg-pattern2 { + background-image: url(../images/sidebar-pattern/2.html); + background-color: #2f3c4e; } + +.bg-img2 { + background-image: url(../images/sidebar-image/2.html); } + +.bg-pattern3 { + background-image: url(../images/sidebar-pattern/3.html); + background-color: #2f3c4e; } + +.bg-img3 { + background-image: url(../images/sidebar-image/3.html); } + +.bg-pattern4 { + background-image: url(../images/sidebar-pattern/4.html); + background-color: #2f3c4e; } + +.bg-img4 { + background-image: url(../images/sidebar-image/4.html); } + +.bg-pattern5 { + background-image: url(../images/sidebar-pattern/5.html); + background-color: #2f3c4e; } + +.bg-img5 { + background-image: url(../images/sidebar-image/5.html); } + +.bg-pattern6 { + background-image: url(../images/sidebar-pattern/6.html); + background-color: #2f3c4e; } + +.bg-img6 { + background-image: url(../images/sidebar-image/6.html); } + +.page-wrapper.horizontal-wrapper .page-body-wrapper .page-sidebar[sidebar-layout="border-sidebar"] .sidebar-header { + border-bottom: 1px solid rgba(124, 124, 124, 0.15); + -webkit-transition: all 0.3s ease; + transition: all 0.3s ease; } + +.page-wrapper.horizontal-wrapper .page-body-wrapper .page-sidebar[sidebar-layout="iconcolor-sidebar"] .sidebar-menu li:nth-child(7n+1) svg { + color: #d1b093; } + +.page-wrapper.horizontal-wrapper .page-body-wrapper .page-sidebar[sidebar-layout="iconcolor-sidebar"] .sidebar-menu li:nth-child(7n+1) a:hover > span { + color: #38a28e; } + +.page-wrapper.horizontal-wrapper .page-body-wrapper .page-sidebar[sidebar-layout="iconcolor-sidebar"] .sidebar-menu li:nth-child(7n+2) svg { + color: #d1b093; } + +.page-wrapper.horizontal-wrapper .page-body-wrapper .page-sidebar[sidebar-layout="iconcolor-sidebar"] .sidebar-menu li:nth-child(7n+2) a:hover > span { + color: #2f8475; } + +.page-wrapper.horizontal-wrapper .page-body-wrapper .page-sidebar[sidebar-layout="iconcolor-sidebar"] .sidebar-menu li:nth-child(7n+3) svg { + color: #38a28e; } + +.page-wrapper.horizontal-wrapper .page-body-wrapper .page-sidebar[sidebar-layout="iconcolor-sidebar"] .sidebar-menu li:nth-child(7n+3) a:hover > span { + color: #979797; } + +.page-wrapper.horizontal-wrapper .page-body-wrapper .page-sidebar[sidebar-layout="iconcolor-sidebar"] .sidebar-menu li:nth-child(7n+4) svg { + color: white; } + +.page-wrapper.horizontal-wrapper .page-body-wrapper .page-sidebar[sidebar-layout="iconcolor-sidebar"] .sidebar-menu li:nth-child(7n+4) a:hover > span { + color: #979797; } + +.page-wrapper.horizontal-wrapper .page-body-wrapper .page-sidebar[sidebar-layout="iconcolor-sidebar"] .sidebar-menu li:nth-child(7n+5) svg { + color: white; } + +.page-wrapper.horizontal-wrapper .page-body-wrapper .page-sidebar[sidebar-layout="iconcolor-sidebar"] .sidebar-menu li:nth-child(7n+5) a:hover > span { + color: #ecd979; } + +.page-wrapper.horizontal-wrapper .page-body-wrapper .page-sidebar[sidebar-layout="iconcolor-sidebar"] .sidebar-menu li:nth-child(7n+6) svg { + color: #e06c77; } + +.page-wrapper.horizontal-wrapper .page-body-wrapper .page-sidebar[sidebar-layout="iconcolor-sidebar"] .sidebar-menu li:nth-child(7n+6) a:hover > span { + color: #e06c77; } + +.page-wrapper.horizontal-wrapper .page-body-wrapper .page-sidebar[sidebar-layout="iconcolor-sidebar"] .sidebar-menu li:nth-child(7n+7) svg { + color: #ecd979; } + +.page-wrapper.horizontal-wrapper .page-body-wrapper .page-sidebar[sidebar-layout="iconcolor-sidebar"] .sidebar-menu li:nth-child(7n+7) a:hover > span { + color: #38a28e; } + +.page-wrapper.horizontal-wrapper .page-body-wrapper .page-sidebar[sidebar-layout="iconcolor-sidebar"] .sidebar-menu li:nth-child(7n+8) svg { + color: #979797; } + +.page-wrapper.horizontal-wrapper .page-body-wrapper .page-sidebar[sidebar-layout="iconcolor-sidebar"] .sidebar-menu li:nth-child(7n+8) a:hover > span { + color: #ecd979; } + +.page-wrapper.horizontal-wrapper .page-body-wrapper .page-sidebar[sidebar-layout="iconcolor-sidebar"] .sidebar-menu li:nth-child(7n+9) svg { + color: #979797; } + +.page-wrapper.horizontal-wrapper .page-body-wrapper .page-sidebar[sidebar-layout="iconcolor-sidebar"] .sidebar-menu li:nth-child(7n+9) a:hover > span { + color: #e06c77; } + +.page-wrapper.horizontal-wrapper .page-body-wrapper .page-sidebar[sidebar-layout="iconcolor-sidebar"] .sidebar-menu li:nth-child(7n+10) svg { + color: #38a28e; } + +.page-wrapper.horizontal-wrapper .page-body-wrapper .page-sidebar[sidebar-layout="iconcolor-sidebar"] .sidebar-menu li:nth-child(7n+10) a:hover > span { + color: #e06c77; } + +.page-wrapper.horizontal-wrapper .page-body-wrapper .page-sidebar[sidebar-layout="iconcolor-sidebar"] .sidebar-menu li:nth-child(7n+11) svg { + color: #2f8475; } + +.page-wrapper.horizontal-wrapper .page-body-wrapper .page-sidebar[sidebar-layout="iconcolor-sidebar"] .sidebar-menu li:nth-child(7n+11) a:hover > span { + color: white; } + +.page-wrapper.horizontal-wrapper .page-body-wrapper .page-sidebar[sidebar-layout="iconcolor-sidebar"] .sidebar-menu li:nth-child(7n+12) svg { + color: #2f8475; } + +.page-wrapper.horizontal-wrapper .page-body-wrapper .page-sidebar[sidebar-layout="iconcolor-sidebar"] .sidebar-menu li:nth-child(7n+12) a:hover > span { + color: #979797; } + +.page-wrapper.horizontal-wrapper .page-body-wrapper .page-sidebar[sidebar-layout="iconcolor-sidebar"] .sidebar-menu li:nth-child(7n+13) svg { + color: #979797; } + +.page-wrapper.horizontal-wrapper .page-body-wrapper .page-sidebar[sidebar-layout="iconcolor-sidebar"] .sidebar-menu li:nth-child(7n+13) a:hover > span { + color: #d1b093; } + +.page-wrapper.horizontal-wrapper .page-body-wrapper .page-sidebar[sidebar-layout="iconcolor-sidebar"] .sidebar-menu li:nth-child(7n+14) svg { + color: #2f8475; } + +.page-wrapper.horizontal-wrapper .page-body-wrapper .page-sidebar[sidebar-layout="iconcolor-sidebar"] .sidebar-menu li:nth-child(7n+14) a:hover > span { + color: #d1b093; } + +.page-wrapper.horizontal-wrapper .page-body-wrapper .page-sidebar[sidebar-layout="iconcolor-sidebar"] .sidebar-menu li:nth-child(7n+15) svg { + color: #e06c77; } + +.page-wrapper.horizontal-wrapper .page-body-wrapper .page-sidebar[sidebar-layout="iconcolor-sidebar"] .sidebar-menu li:nth-child(7n+15) a:hover > span { + color: white; } + +.page-wrapper.horizontal-wrapper .page-body-wrapper .page-sidebar[sidebar-layout="iconcolor-sidebar"] .sidebar-menu li:nth-child(7n+16) svg { + color: #38a28e; } + +.page-wrapper.horizontal-wrapper .page-body-wrapper .page-sidebar[sidebar-layout="iconcolor-sidebar"] .sidebar-menu li:nth-child(7n+16) a:hover > span { + color: #979797; } + +.page-wrapper.horizontal-wrapper .page-body-wrapper .page-sidebar[sidebar-layout="iconcolor-sidebar"] .sidebar-menu li:nth-child(7n+17) svg { + color: #d1b093; } + +.page-wrapper.horizontal-wrapper .page-body-wrapper .page-sidebar[sidebar-layout="iconcolor-sidebar"] .sidebar-menu li:nth-child(7n+17) a:hover > span { + color: #e06c77; } + +.page-wrapper.horizontal-wrapper .page-body-wrapper .page-sidebar[sidebar-layout="iconcolor-sidebar"] .sidebar-menu li:nth-child(7n+18) svg { + color: #2f8475; } + +.page-wrapper.horizontal-wrapper .page-body-wrapper .page-sidebar[sidebar-layout="iconcolor-sidebar"] .sidebar-menu li:nth-child(7n+18) a:hover > span { + color: #979797; } + +.page-wrapper.horizontal-wrapper .page-body-wrapper .page-sidebar[sidebar-layout="iconcolor-sidebar"] .sidebar-menu li:nth-child(7n+19) svg { + color: #ecd979; } + +.page-wrapper.horizontal-wrapper .page-body-wrapper .page-sidebar[sidebar-layout="iconcolor-sidebar"] .sidebar-menu li:nth-child(7n+19) a:hover > span { + color: #979797; } + +.page-wrapper.horizontal-wrapper .page-body-wrapper .page-sidebar[sidebar-layout="iconcolor-sidebar"] .sidebar-menu li:nth-child(7n+20) svg { + color: #e06c77; } + +.page-wrapper.horizontal-wrapper .page-body-wrapper .page-sidebar[sidebar-layout="iconcolor-sidebar"] .sidebar-menu li:nth-child(7n+20) a:hover > span { + color: #38a28e; } + +.page-wrapper.horizontal-wrapper .page-body-wrapper .page-sidebar[sidebar-layout="iconcolor-sidebar"] .sidebar-menu li:nth-child(7n+21) svg { + color: #2f8475; } + +.page-wrapper.horizontal-wrapper .page-body-wrapper .page-sidebar[sidebar-layout="iconcolor-sidebar"] .sidebar-menu li:nth-child(7n+21) a:hover > span { + color: #d1b093; } + +.page-wrapper.horizontal-wrapper .page-body-wrapper .page-sidebar[sidebar-layout="iconcolor-sidebar"] .sidebar-menu li:nth-child(7n+22) svg { + color: #d1b093; } + +.page-wrapper.horizontal-wrapper .page-body-wrapper .page-sidebar[sidebar-layout="iconcolor-sidebar"] .sidebar-menu li:nth-child(7n+22) a:hover > span { + color: #d1b093; } + +.page-wrapper.horizontal-wrapper .page-body-wrapper .page-sidebar[sidebar-layout="iconcolor-sidebar"] .sidebar-menu li:nth-child(7n+23) svg { + color: #2f8475; } + +.page-wrapper.horizontal-wrapper .page-body-wrapper .page-sidebar[sidebar-layout="iconcolor-sidebar"] .sidebar-menu li:nth-child(7n+23) a:hover > span { + color: white; } + +.page-wrapper.horizontal-wrapper .page-body-wrapper .page-sidebar[sidebar-layout="iconcolor-sidebar"] .sidebar-menu li:nth-child(7n+24) svg { + color: white; } + +.page-wrapper.horizontal-wrapper .page-body-wrapper .page-sidebar[sidebar-layout="iconcolor-sidebar"] .sidebar-menu li:nth-child(7n+24) a:hover > span { + color: white; } + +.page-wrapper.horizontal-wrapper .page-body-wrapper .page-sidebar[sidebar-layout="iconcolor-sidebar"] .sidebar-menu li:nth-child(7n+25) svg { + color: #e06c77; } + +.page-wrapper.horizontal-wrapper .page-body-wrapper .page-sidebar[sidebar-layout="iconcolor-sidebar"] .sidebar-menu li:nth-child(7n+25) a:hover > span { + color: #e06c77; } + +.page-wrapper.horizontal-wrapper .page-body-wrapper .page-sidebar[sidebar-layout="iconcolor-sidebar"] .sidebar-menu li:nth-child(7n+26) svg { + color: #979797; } + +.page-wrapper.horizontal-wrapper .page-body-wrapper .page-sidebar[sidebar-layout="iconcolor-sidebar"] .sidebar-menu li:nth-child(7n+26) a:hover > span { + color: #2f8475; } + +.page-wrapper.horizontal-wrapper .page-body-wrapper .page-sidebar[sidebar-layout="iconcolor-sidebar"] .sidebar-menu li:nth-child(7n+27) svg { + color: #d1b093; } + +.page-wrapper.horizontal-wrapper .page-body-wrapper .page-sidebar[sidebar-layout="iconcolor-sidebar"] .sidebar-menu li:nth-child(7n+27) a:hover > span { + color: #38a28e; } + +.page-wrapper.horizontal-wrapper .page-body-wrapper .page-sidebar[sidebar-layout="iconcolor-sidebar"] .sidebar-menu li:nth-child(7n+28) svg { + color: #ecd979; } + +.page-wrapper.horizontal-wrapper .page-body-wrapper .page-sidebar[sidebar-layout="iconcolor-sidebar"] .sidebar-menu li:nth-child(7n+28) a:hover > span { + color: #2f8475; } + +.page-wrapper.horizontal-wrapper .page-body-wrapper .page-sidebar[sidebar-layout="iconcolor-sidebar"] .sidebar-menu li:nth-child(7n+29) svg { + color: #2f8475; } + +.page-wrapper.horizontal-wrapper .page-body-wrapper .page-sidebar[sidebar-layout="iconcolor-sidebar"] .sidebar-menu li:nth-child(7n+29) a:hover > span { + color: #2f8475; } + +.page-wrapper.horizontal-wrapper .page-body-wrapper .page-sidebar[sidebar-layout="iconcolor-sidebar"] .sidebar-menu li:nth-child(7n+30) svg { + color: white; } + +.page-wrapper.horizontal-wrapper .page-body-wrapper .page-sidebar[sidebar-layout="iconcolor-sidebar"] .sidebar-menu li:nth-child(7n+30) a:hover > span { + color: #979797; } + +.page-wrapper.horizontal-wrapper .page-body-wrapper .page-sidebar[sidebar-layout="iconcolor-sidebar"] .sidebar-menu li:nth-child(7n+31) svg { + color: #ecd979; } + +.page-wrapper.horizontal-wrapper .page-body-wrapper .page-sidebar[sidebar-layout="iconcolor-sidebar"] .sidebar-menu li:nth-child(7n+31) a:hover > span { + color: #e06c77; } + +.page-wrapper.horizontal-wrapper .page-body-wrapper .page-sidebar[sidebar-layout="iconcolor-sidebar"] .sidebar-menu li:nth-child(7n+32) svg { + color: #d1b093; } + +.page-wrapper.horizontal-wrapper .page-body-wrapper .page-sidebar[sidebar-layout="iconcolor-sidebar"] .sidebar-menu li:nth-child(7n+32) a:hover > span { + color: #ecd979; } + +.page-wrapper.horizontal-wrapper .page-body-wrapper .page-sidebar[sidebar-layout="iconcolor-sidebar"] .sidebar-menu li:nth-child(7n+33) svg { + color: #e06c77; } + +.page-wrapper.horizontal-wrapper .page-body-wrapper .page-sidebar[sidebar-layout="iconcolor-sidebar"] .sidebar-menu li:nth-child(7n+33) a:hover > span { + color: #2f8475; } + +.page-wrapper.horizontal-wrapper .page-body-wrapper .page-sidebar[sidebar-layout="iconcolor-sidebar"] .sidebar-menu li:nth-child(7n+34) svg { + color: #2f8475; } + +.page-wrapper.horizontal-wrapper .page-body-wrapper .page-sidebar[sidebar-layout="iconcolor-sidebar"] .sidebar-menu li:nth-child(7n+34) a:hover > span { + color: #979797; } + +.page-wrapper.horizontal-wrapper .page-body-wrapper .page-sidebar[sidebar-layout="iconcolor-sidebar"] .sidebar-menu li:nth-child(7n+35) svg { + color: #38a28e; } + +.page-wrapper.horizontal-wrapper .page-body-wrapper .page-sidebar[sidebar-layout="iconcolor-sidebar"] .sidebar-menu li:nth-child(7n+35) a:hover > span { + color: #ecd979; } + +.page-wrapper.horizontal-wrapper .page-body-wrapper .page-sidebar[sidebar-layout="iconcolor-sidebar"] .sidebar-menu li:nth-child(7n+36) svg { + color: white; } + +.page-wrapper.horizontal-wrapper .page-body-wrapper .page-sidebar[sidebar-layout="iconcolor-sidebar"] .sidebar-menu li:nth-child(7n+36) a:hover > span { + color: #d1b093; } + +.page-wrapper.horizontal-wrapper .page-body-wrapper .page-sidebar[sidebar-layout="iconcolor-sidebar"] .sidebar-menu li:nth-child(7n+37) svg { + color: white; } + +.page-wrapper.horizontal-wrapper .page-body-wrapper .page-sidebar[sidebar-layout="iconcolor-sidebar"] .sidebar-menu li:nth-child(7n+37) a:hover > span { + color: #d1b093; } + +.page-wrapper.horizontal-wrapper .page-body-wrapper .page-sidebar[sidebar-layout="iconcolor-sidebar"] .sidebar-menu li:nth-child(7n+38) svg { + color: #ecd979; } + +.page-wrapper.horizontal-wrapper .page-body-wrapper .page-sidebar[sidebar-layout="iconcolor-sidebar"] .sidebar-menu li:nth-child(7n+38) a:hover > span { + color: #979797; } + +.page-wrapper.horizontal-wrapper .page-body-wrapper .page-sidebar[sidebar-layout="iconcolor-sidebar"] .sidebar-menu li:nth-child(7n+39) svg { + color: #38a28e; } + +.page-wrapper.horizontal-wrapper .page-body-wrapper .page-sidebar[sidebar-layout="iconcolor-sidebar"] .sidebar-menu li:nth-child(7n+39) a:hover > span { + color: #e06c77; } + +.page-wrapper.horizontal-wrapper .page-body-wrapper .page-sidebar[sidebar-layout="iconcolor-sidebar"] .sidebar-menu li:nth-child(7n+40) svg { + color: #979797; } + +.page-wrapper.horizontal-wrapper .page-body-wrapper .page-sidebar[sidebar-layout="iconcolor-sidebar"] .sidebar-menu li:nth-child(7n+40) a:hover > span { + color: white; } + +.page-wrapper.horizontal-wrapper .page-body-wrapper .page-sidebar[sidebar-layout="iconcolor-sidebar"] .sidebar-menu li:nth-child(7n+41) svg { + color: #38a28e; } + +.page-wrapper.horizontal-wrapper .page-body-wrapper .page-sidebar[sidebar-layout="iconcolor-sidebar"] .sidebar-menu li:nth-child(7n+41) a:hover > span { + color: #d1b093; } + +.page-wrapper.horizontal-wrapper .page-body-wrapper .page-sidebar[sidebar-layout="iconcolor-sidebar"] .sidebar-menu li:nth-child(7n+42) svg { + color: #ecd979; } + +.page-wrapper.horizontal-wrapper .page-body-wrapper .page-sidebar[sidebar-layout="iconcolor-sidebar"] .sidebar-menu li:nth-child(7n+42) a:hover > span { + color: #e06c77; } + +.page-wrapper.horizontal-wrapper .page-body-wrapper .page-sidebar[sidebar-layout="iconcolor-sidebar"] .sidebar-menu li:nth-child(7n+43) svg { + color: white; } + +.page-wrapper.horizontal-wrapper .page-body-wrapper .page-sidebar[sidebar-layout="iconcolor-sidebar"] .sidebar-menu li:nth-child(7n+43) a:hover > span { + color: #38a28e; } + +.page-wrapper.horizontal-wrapper .page-body-wrapper .page-sidebar[sidebar-layout="iconcolor-sidebar"] .sidebar-menu li:nth-child(7n+44) svg { + color: white; } + +.page-wrapper.horizontal-wrapper .page-body-wrapper .page-sidebar[sidebar-layout="iconcolor-sidebar"] .sidebar-menu li:nth-child(7n+44) a:hover > span { + color: #ecd979; } + +.page-wrapper.horizontal-wrapper .page-body-wrapper .page-sidebar[sidebar-layout="iconcolor-sidebar"] .sidebar-menu li:nth-child(7n+45) svg { + color: #d1b093; } + +.page-wrapper.horizontal-wrapper .page-body-wrapper .page-sidebar[sidebar-layout="iconcolor-sidebar"] .sidebar-menu li:nth-child(7n+45) a:hover > span { + color: #e06c77; } + +.page-wrapper.horizontal-wrapper .page-body-wrapper .page-sidebar[sidebar-layout="iconcolor-sidebar"] .sidebar-menu li:nth-child(7n+46) svg { + color: #38a28e; } + +.page-wrapper.horizontal-wrapper .page-body-wrapper .page-sidebar[sidebar-layout="iconcolor-sidebar"] .sidebar-menu li:nth-child(7n+46) a:hover > span { + color: white; } + +.page-wrapper.horizontal-wrapper .page-body-wrapper .page-sidebar[sidebar-layout="iconcolor-sidebar"] .sidebar-menu li:nth-child(7n+47) svg { + color: #d1b093; } + +.page-wrapper.horizontal-wrapper .page-body-wrapper .page-sidebar[sidebar-layout="iconcolor-sidebar"] .sidebar-menu li:nth-child(7n+47) a:hover > span { + color: #979797; } + +.page-wrapper.horizontal-wrapper .page-body-wrapper .page-sidebar[sidebar-layout="iconcolor-sidebar"] .sidebar-menu li:nth-child(7n+48) svg { + color: #ecd979; } + +.page-wrapper.horizontal-wrapper .page-body-wrapper .page-sidebar[sidebar-layout="iconcolor-sidebar"] .sidebar-menu li:nth-child(7n+48) a:hover > span { + color: #2f8475; } + +.page-wrapper.horizontal-wrapper .page-body-wrapper .page-sidebar[sidebar-layout="iconcolor-sidebar"] .sidebar-menu li:nth-child(7n+49) svg { + color: white; } + +.page-wrapper.horizontal-wrapper .page-body-wrapper .page-sidebar[sidebar-layout="iconcolor-sidebar"] .sidebar-menu li:nth-child(7n+49) a:hover > span { + color: #d1b093; } + +.page-wrapper.horizontal-wrapper .page-body-wrapper .page-sidebar[sidebar-layout="iconcolor-sidebar"] .sidebar-menu li:nth-child(7n+50) svg { + color: #e06c77; } + +.page-wrapper.horizontal-wrapper .page-body-wrapper .page-sidebar[sidebar-layout="iconcolor-sidebar"] .sidebar-menu li:nth-child(7n+50) a:hover > span { + color: #d1b093; } + +.page-wrapper.horizontal-wrapper .page-body-wrapper .page-sidebar[sidebar-layout="iconcolor-sidebar"] .sidebar-menu li:nth-child(7n+51) svg { + color: #2f8475; } + +.page-wrapper.horizontal-wrapper .page-body-wrapper .page-sidebar[sidebar-layout="iconcolor-sidebar"] .sidebar-menu li:nth-child(7n+51) a:hover > span { + color: #d1b093; } + +.page-wrapper.horizontal-wrapper .page-body-wrapper .page-sidebar[sidebar-layout="iconcolor-sidebar"] .sidebar-menu li:nth-child(7n+52) svg { + color: #d1b093; } + +.page-wrapper.horizontal-wrapper .page-body-wrapper .page-sidebar[sidebar-layout="iconcolor-sidebar"] .sidebar-menu li:nth-child(7n+52) a:hover > span { + color: white; } + +.page-wrapper.horizontal-wrapper .page-body-wrapper .page-sidebar[sidebar-layout="iconcolor-sidebar"] .sidebar-menu li:nth-child(7n+53) svg { + color: #2f8475; } + +.page-wrapper.horizontal-wrapper .page-body-wrapper .page-sidebar[sidebar-layout="iconcolor-sidebar"] .sidebar-menu li:nth-child(7n+53) a:hover > span { + color: #38a28e; } + +.page-wrapper.horizontal-wrapper .page-body-wrapper .page-sidebar[sidebar-layout="iconcolor-sidebar"] .sidebar-menu li:nth-child(7n+54) svg { + color: #979797; } + +.page-wrapper.horizontal-wrapper .page-body-wrapper .page-sidebar[sidebar-layout="iconcolor-sidebar"] .sidebar-menu li:nth-child(7n+54) a:hover > span { + color: #38a28e; } + +.page-wrapper.horizontal-wrapper .page-body-wrapper .page-sidebar[sidebar-layout="iconcolor-sidebar"] .sidebar-menu li:nth-child(7n+55) svg { + color: white; } + +.page-wrapper.horizontal-wrapper .page-body-wrapper .page-sidebar[sidebar-layout="iconcolor-sidebar"] .sidebar-menu li:nth-child(7n+55) a:hover > span { + color: #979797; } + +.page-wrapper.horizontal-wrapper .page-body-wrapper .page-sidebar[sidebar-layout="iconcolor-sidebar"] .sidebar-menu li:nth-child(7n+56) svg { + color: white; } + +.page-wrapper.horizontal-wrapper .page-body-wrapper .page-sidebar[sidebar-layout="iconcolor-sidebar"] .sidebar-menu li:nth-child(7n+56) a:hover > span { + color: #d1b093; } + +.page-wrapper.horizontal-wrapper .page-body-wrapper .page-sidebar[sidebar-layout="iconcolor-sidebar"] .sidebar-menu li:nth-child(7n+57) svg { + color: white; } + +.page-wrapper.horizontal-wrapper .page-body-wrapper .page-sidebar[sidebar-layout="iconcolor-sidebar"] .sidebar-menu li:nth-child(7n+57) a:hover > span { + color: #d1b093; } + +.page-wrapper.horizontal-wrapper .page-body-wrapper .page-sidebar[sidebar-layout="iconcolor-sidebar"] .sidebar-menu li:nth-child(7n+58) svg { + color: #38a28e; } + +.page-wrapper.horizontal-wrapper .page-body-wrapper .page-sidebar[sidebar-layout="iconcolor-sidebar"] .sidebar-menu li:nth-child(7n+58) a:hover > span { + color: #979797; } + +.page-wrapper.horizontal-wrapper .page-body-wrapper .page-sidebar[sidebar-layout="iconcolor-sidebar"] .sidebar-menu li:nth-child(7n+59) svg { + color: #2f8475; } + +.page-wrapper.horizontal-wrapper .page-body-wrapper .page-sidebar[sidebar-layout="iconcolor-sidebar"] .sidebar-menu li:nth-child(7n+59) a:hover > span { + color: #38a28e; } + +.page-wrapper.horizontal-wrapper .page-body-wrapper .page-sidebar[sidebar-layout="iconcolor-sidebar"] .sidebar-menu li:nth-child(7n+60) svg { + color: #38a28e; } + +.page-wrapper.horizontal-wrapper .page-body-wrapper .page-sidebar[sidebar-layout="iconcolor-sidebar"] .sidebar-menu li:nth-child(7n+60) a:hover > span { + color: #38a28e; } + +.page-wrapper.horizontal-wrapper .page-body-wrapper .page-sidebar[sidebar-layout="iconcolor-sidebar"] .sidebar-menu li:nth-child(7n+61) svg { + color: #d1b093; } + +.page-wrapper.horizontal-wrapper .page-body-wrapper .page-sidebar[sidebar-layout="iconcolor-sidebar"] .sidebar-menu li:nth-child(7n+61) a:hover > span { + color: white; } + +.page-wrapper.horizontal-wrapper .page-body-wrapper .page-sidebar[sidebar-layout="iconcolor-sidebar"] .sidebar-menu li:nth-child(7n+62) svg { + color: #2f8475; } + +.page-wrapper.horizontal-wrapper .page-body-wrapper .page-sidebar[sidebar-layout="iconcolor-sidebar"] .sidebar-menu li:nth-child(7n+62) a:hover > span { + color: #38a28e; } + +.page-wrapper.horizontal-wrapper .page-body-wrapper .page-sidebar[sidebar-layout="iconcolor-sidebar"] .sidebar-menu li:nth-child(7n+63) svg { + color: #979797; } + +.page-wrapper.horizontal-wrapper .page-body-wrapper .page-sidebar[sidebar-layout="iconcolor-sidebar"] .sidebar-menu li:nth-child(7n+63) a:hover > span { + color: #979797; } + +.page-wrapper.horizontal-wrapper .page-body-wrapper .page-sidebar[sidebar-layout="iconcolor-sidebar"] .sidebar-menu li:nth-child(7n+64) svg { + color: white; } + +.page-wrapper.horizontal-wrapper .page-body-wrapper .page-sidebar[sidebar-layout="iconcolor-sidebar"] .sidebar-menu li:nth-child(7n+64) a:hover > span { + color: #979797; } + +.page-wrapper.horizontal-wrapper .page-body-wrapper .page-sidebar[sidebar-layout="iconcolor-sidebar"] .sidebar-menu li:nth-child(7n+65) svg { + color: #e06c77; } + +.page-wrapper.horizontal-wrapper .page-body-wrapper .page-sidebar[sidebar-layout="iconcolor-sidebar"] .sidebar-menu li:nth-child(7n+65) a:hover > span { + color: #979797; } + +.page-wrapper.horizontal-wrapper .page-body-wrapper .page-sidebar[sidebar-layout="iconcolor-sidebar"] .sidebar-menu li:nth-child(7n+66) svg { + color: #ecd979; } + +.page-wrapper.horizontal-wrapper .page-body-wrapper .page-sidebar[sidebar-layout="iconcolor-sidebar"] .sidebar-menu li:nth-child(7n+66) a:hover > span { + color: #e06c77; } + +.page-wrapper.horizontal-wrapper .page-body-wrapper .page-sidebar[sidebar-layout="iconcolor-sidebar"] .sidebar-menu li:nth-child(7n+67) svg { + color: #ecd979; } + +.page-wrapper.horizontal-wrapper .page-body-wrapper .page-sidebar[sidebar-layout="iconcolor-sidebar"] .sidebar-menu li:nth-child(7n+67) a:hover > span { + color: #979797; } + +.page-wrapper.horizontal-wrapper .page-body-wrapper .page-sidebar[sidebar-layout="iconcolor-sidebar"] .sidebar-menu li:nth-child(7n+68) svg { + color: #ecd979; } + +.page-wrapper.horizontal-wrapper .page-body-wrapper .page-sidebar[sidebar-layout="iconcolor-sidebar"] .sidebar-menu li:nth-child(7n+68) a:hover > span { + color: #979797; } + +.page-wrapper.horizontal-wrapper .page-body-wrapper .page-sidebar[sidebar-layout="iconcolor-sidebar"] .sidebar-menu li:nth-child(7n+69) svg { + color: #d1b093; } + +.page-wrapper.horizontal-wrapper .page-body-wrapper .page-sidebar[sidebar-layout="iconcolor-sidebar"] .sidebar-menu li:nth-child(7n+69) a:hover > span { + color: #38a28e; } + +.page-wrapper.horizontal-wrapper .page-body-wrapper .page-sidebar[sidebar-layout="iconcolor-sidebar"] .sidebar-menu li:nth-child(7n+70) svg { + color: #979797; } + +.page-wrapper.horizontal-wrapper .page-body-wrapper .page-sidebar[sidebar-layout="iconcolor-sidebar"] .sidebar-menu li:nth-child(7n+70) a:hover > span { + color: #ecd979; } + +.page-wrapper.horizontal-wrapper .page-body-wrapper .page-sidebar[sidebar-layout="iconcolor-sidebar"] .sidebar-menu li:nth-child(7n+71) svg { + color: #ecd979; } + +.page-wrapper.horizontal-wrapper .page-body-wrapper .page-sidebar[sidebar-layout="iconcolor-sidebar"] .sidebar-menu li:nth-child(7n+71) a:hover > span { + color: #979797; } + +.page-wrapper.horizontal-wrapper .page-body-wrapper .page-sidebar[sidebar-layout="iconcolor-sidebar"] .sidebar-menu li:nth-child(7n+72) svg { + color: #e06c77; } + +.page-wrapper.horizontal-wrapper .page-body-wrapper .page-sidebar[sidebar-layout="iconcolor-sidebar"] .sidebar-menu li:nth-child(7n+72) a:hover > span { + color: #e06c77; } + +.page-wrapper.horizontal-wrapper .page-body-wrapper .page-sidebar[sidebar-layout="iconcolor-sidebar"] .sidebar-menu li:nth-child(7n+73) svg { + color: #e06c77; } + +.page-wrapper.horizontal-wrapper .page-body-wrapper .page-sidebar[sidebar-layout="iconcolor-sidebar"] .sidebar-menu li:nth-child(7n+73) a:hover > span { + color: #d1b093; } + +.page-wrapper.horizontal-wrapper .page-body-wrapper .page-sidebar[sidebar-layout="iconcolor-sidebar"] .sidebar-menu li:nth-child(7n+74) svg { + color: #d1b093; } + +.page-wrapper.horizontal-wrapper .page-body-wrapper .page-sidebar[sidebar-layout="iconcolor-sidebar"] .sidebar-menu li:nth-child(7n+74) a:hover > span { + color: #e06c77; } + +.page-wrapper.horizontal-wrapper .page-body-wrapper .page-sidebar[sidebar-layout="iconcolor-sidebar"] .sidebar-menu li:nth-child(7n+75) svg { + color: #e06c77; } + +.page-wrapper.horizontal-wrapper .page-body-wrapper .page-sidebar[sidebar-layout="iconcolor-sidebar"] .sidebar-menu li:nth-child(7n+75) a:hover > span { + color: #979797; } + +.page-wrapper.horizontal-wrapper .page-body-wrapper .page-sidebar[sidebar-layout="iconcolor-sidebar"] .sidebar-menu li:nth-child(7n+76) svg { + color: #e06c77; } + +.page-wrapper.horizontal-wrapper .page-body-wrapper .page-sidebar[sidebar-layout="iconcolor-sidebar"] .sidebar-menu li:nth-child(7n+76) a:hover > span { + color: #ecd979; } + +.page-wrapper.horizontal-wrapper .page-body-wrapper .page-sidebar[sidebar-layout="iconcolor-sidebar"] .sidebar-menu li:nth-child(7n+77) svg { + color: #2f8475; } + +.page-wrapper.horizontal-wrapper .page-body-wrapper .page-sidebar[sidebar-layout="iconcolor-sidebar"] .sidebar-menu li:nth-child(7n+77) a:hover > span { + color: #ecd979; } + +.page-wrapper.horizontal-wrapper .page-body-wrapper .page-sidebar[sidebar-layout="iconcolor-sidebar"] .sidebar-menu li:nth-child(7n+78) svg { + color: #979797; } + +.page-wrapper.horizontal-wrapper .page-body-wrapper .page-sidebar[sidebar-layout="iconcolor-sidebar"] .sidebar-menu li:nth-child(7n+78) a:hover > span { + color: #d1b093; } + +.page-wrapper.horizontal-wrapper .page-body-wrapper .page-sidebar[sidebar-layout="iconcolor-sidebar"] .sidebar-menu li:nth-child(7n+79) svg { + color: #d1b093; } + +.page-wrapper.horizontal-wrapper .page-body-wrapper .page-sidebar[sidebar-layout="iconcolor-sidebar"] .sidebar-menu li:nth-child(7n+79) a:hover > span { + color: #979797; } + +.page-wrapper.horizontal-wrapper .page-body-wrapper .page-sidebar[sidebar-layout="iconcolor-sidebar"] .sidebar-menu li:nth-child(7n+80) svg { + color: #979797; } + +.page-wrapper.horizontal-wrapper .page-body-wrapper .page-sidebar[sidebar-layout="iconcolor-sidebar"] .sidebar-menu li:nth-child(7n+80) a:hover > span { + color: white; } + +.page-wrapper.horizontal-wrapper .page-body-wrapper .page-sidebar[sidebar-layout="iconcolor-sidebar"] .sidebar-menu li:nth-child(7n+81) svg { + color: #d1b093; } + +.page-wrapper.horizontal-wrapper .page-body-wrapper .page-sidebar[sidebar-layout="iconcolor-sidebar"] .sidebar-menu li:nth-child(7n+81) a:hover > span { + color: #2f8475; } + +.page-wrapper.horizontal-wrapper .page-body-wrapper .page-sidebar[sidebar-layout="iconcolor-sidebar"] .sidebar-menu li:nth-child(7n+82) svg { + color: #979797; } + +.page-wrapper.horizontal-wrapper .page-body-wrapper .page-sidebar[sidebar-layout="iconcolor-sidebar"] .sidebar-menu li:nth-child(7n+82) a:hover > span { + color: #ecd979; } + +.page-wrapper.horizontal-wrapper .page-body-wrapper .page-sidebar[sidebar-layout="iconcolor-sidebar"] .sidebar-menu li:nth-child(7n+83) svg { + color: #38a28e; } + +.page-wrapper.horizontal-wrapper .page-body-wrapper .page-sidebar[sidebar-layout="iconcolor-sidebar"] .sidebar-menu li:nth-child(7n+83) a:hover > span { + color: #979797; } + +.page-wrapper.horizontal-wrapper .page-body-wrapper .page-sidebar[sidebar-layout="iconcolor-sidebar"] .sidebar-menu li:nth-child(7n+84) svg { + color: #e06c77; } + +.page-wrapper.horizontal-wrapper .page-body-wrapper .page-sidebar[sidebar-layout="iconcolor-sidebar"] .sidebar-menu li:nth-child(7n+84) a:hover > span { + color: white; } + +.page-wrapper.horizontal-wrapper .page-body-wrapper .page-sidebar[sidebar-layout="iconcolor-sidebar"] .sidebar-menu li:nth-child(7n+85) svg { + color: #d1b093; } + +.page-wrapper.horizontal-wrapper .page-body-wrapper .page-sidebar[sidebar-layout="iconcolor-sidebar"] .sidebar-menu li:nth-child(7n+85) a:hover > span { + color: #d1b093; } + +.page-wrapper.horizontal-wrapper .page-body-wrapper .page-sidebar[sidebar-layout="iconcolor-sidebar"] .sidebar-menu li:nth-child(7n+86) svg { + color: #d1b093; } + +.page-wrapper.horizontal-wrapper .page-body-wrapper .page-sidebar[sidebar-layout="iconcolor-sidebar"] .sidebar-menu li:nth-child(7n+86) a:hover > span { + color: #2f8475; } + +.page-wrapper.horizontal-wrapper .page-body-wrapper .page-sidebar[sidebar-layout="iconcolor-sidebar"] .sidebar-menu li:nth-child(7n+87) svg { + color: #979797; } + +.page-wrapper.horizontal-wrapper .page-body-wrapper .page-sidebar[sidebar-layout="iconcolor-sidebar"] .sidebar-menu li:nth-child(7n+87) a:hover > span { + color: #2f8475; } + +.page-wrapper.horizontal-wrapper .page-body-wrapper .page-sidebar[sidebar-layout="iconcolor-sidebar"] .sidebar-menu li:nth-child(7n+88) svg { + color: #2f8475; } + +.page-wrapper.horizontal-wrapper .page-body-wrapper .page-sidebar[sidebar-layout="iconcolor-sidebar"] .sidebar-menu li:nth-child(7n+88) a:hover > span { + color: white; } + +.page-wrapper.horizontal-wrapper .page-body-wrapper .page-sidebar[sidebar-layout="iconcolor-sidebar"] .sidebar-menu li:nth-child(7n+89) svg { + color: #979797; } + +.page-wrapper.horizontal-wrapper .page-body-wrapper .page-sidebar[sidebar-layout="iconcolor-sidebar"] .sidebar-menu li:nth-child(7n+89) a:hover > span { + color: #38a28e; } + +.page-wrapper.horizontal-wrapper .page-body-wrapper .page-sidebar[sidebar-layout="iconcolor-sidebar"] .sidebar-menu li:nth-child(7n+90) svg { + color: #2f8475; } + +.page-wrapper.horizontal-wrapper .page-body-wrapper .page-sidebar[sidebar-layout="iconcolor-sidebar"] .sidebar-menu li:nth-child(7n+90) a:hover > span { + color: #e06c77; } + +.page-wrapper.horizontal-wrapper .page-body-wrapper .page-sidebar[sidebar-layout="iconcolor-sidebar"] .sidebar-menu li:nth-child(7n+91) svg { + color: #2f8475; } + +.page-wrapper.horizontal-wrapper .page-body-wrapper .page-sidebar[sidebar-layout="iconcolor-sidebar"] .sidebar-menu li:nth-child(7n+91) a:hover > span { + color: #ecd979; } + +.page-wrapper.horizontal-wrapper .page-body-wrapper .page-sidebar[sidebar-layout="iconcolor-sidebar"] .sidebar-menu li:nth-child(7n+92) svg { + color: #2f8475; } + +.page-wrapper.horizontal-wrapper .page-body-wrapper .page-sidebar[sidebar-layout="iconcolor-sidebar"] .sidebar-menu li:nth-child(7n+92) a:hover > span { + color: #e06c77; } + +.page-wrapper.horizontal-wrapper .page-body-wrapper .page-sidebar[sidebar-layout="iconcolor-sidebar"] .sidebar-menu li:nth-child(7n+93) svg { + color: #979797; } + +.page-wrapper.horizontal-wrapper .page-body-wrapper .page-sidebar[sidebar-layout="iconcolor-sidebar"] .sidebar-menu li:nth-child(7n+93) a:hover > span { + color: #ecd979; } + +.page-wrapper.horizontal-wrapper .page-body-wrapper .page-sidebar[sidebar-layout="iconcolor-sidebar"] .sidebar-menu li:nth-child(7n+94) svg { + color: #d1b093; } + +.page-wrapper.horizontal-wrapper .page-body-wrapper .page-sidebar[sidebar-layout="iconcolor-sidebar"] .sidebar-menu li:nth-child(7n+94) a:hover > span { + color: #e06c77; } + +.page-wrapper.horizontal-wrapper .page-body-wrapper .page-sidebar[sidebar-layout="iconcolor-sidebar"] .sidebar-menu li:nth-child(7n+95) svg { + color: #38a28e; } + +.page-wrapper.horizontal-wrapper .page-body-wrapper .page-sidebar[sidebar-layout="iconcolor-sidebar"] .sidebar-menu li:nth-child(7n+95) a:hover > span { + color: #38a28e; } + +.page-wrapper.horizontal-wrapper .page-body-wrapper .page-sidebar[sidebar-layout="iconcolor-sidebar"] .sidebar-menu li:nth-child(7n+96) svg { + color: #ecd979; } + +.page-wrapper.horizontal-wrapper .page-body-wrapper .page-sidebar[sidebar-layout="iconcolor-sidebar"] .sidebar-menu li:nth-child(7n+96) a:hover > span { + color: #e06c77; } + +.page-wrapper.horizontal-wrapper .page-body-wrapper .page-sidebar[sidebar-layout="iconcolor-sidebar"] .sidebar-menu li:nth-child(7n+97) svg { + color: #e06c77; } + +.page-wrapper.horizontal-wrapper .page-body-wrapper .page-sidebar[sidebar-layout="iconcolor-sidebar"] .sidebar-menu li:nth-child(7n+97) a:hover > span { + color: #38a28e; } + +.page-wrapper.horizontal-wrapper .page-body-wrapper .page-sidebar[sidebar-layout="iconcolor-sidebar"] .sidebar-menu li:nth-child(7n+98) svg { + color: #38a28e; } + +.page-wrapper.horizontal-wrapper .page-body-wrapper .page-sidebar[sidebar-layout="iconcolor-sidebar"] .sidebar-menu li:nth-child(7n+98) a:hover > span { + color: white; } + +.page-wrapper.horizontal-wrapper .page-body-wrapper .page-sidebar[sidebar-layout="iconcolor-sidebar"] .sidebar-menu li:nth-child(7n+99) svg { + color: white; } + +.page-wrapper.horizontal-wrapper .page-body-wrapper .page-sidebar[sidebar-layout="iconcolor-sidebar"] .sidebar-menu li:nth-child(7n+99) a:hover > span { + color: #38a28e; } + +.page-wrapper.horizontal-wrapper .page-body-wrapper .page-sidebar[sidebar-layout="iconcolor-sidebar"] .sidebar-menu li:nth-child(7n+100) svg { + color: #979797; } + +.page-wrapper.horizontal-wrapper .page-body-wrapper .page-sidebar[sidebar-layout="iconcolor-sidebar"] .sidebar-menu li:nth-child(7n+100) a:hover > span { + color: #d1b093; } + +.page-wrapper.horizontal-wrapper .page-body-wrapper .page-sidebar[sidebar-layout="iconcolor-sidebar"].light-sidebar .sidebar-menu li:nth-child(7n+1) svg { + color: #b2991a; } + +.page-wrapper.horizontal-wrapper .page-body-wrapper .page-sidebar[sidebar-layout="iconcolor-sidebar"].light-sidebar .sidebar-menu li:nth-child(7n+1) a:hover span { + color: #93202b; } + +.page-wrapper.horizontal-wrapper .page-body-wrapper .page-sidebar[sidebar-layout="iconcolor-sidebar"].light-sidebar .sidebar-menu li:nth-child(7n+2) svg { + color: #93202b; } + +.page-wrapper.horizontal-wrapper .page-body-wrapper .page-sidebar[sidebar-layout="iconcolor-sidebar"].light-sidebar .sidebar-menu li:nth-child(7n+2) a:hover span { + color: #b2991a; } + +.page-wrapper.horizontal-wrapper .page-body-wrapper .page-sidebar[sidebar-layout="iconcolor-sidebar"].light-sidebar .sidebar-menu li:nth-child(7n+3) svg { + color: #071411; } + +.page-wrapper.horizontal-wrapper .page-body-wrapper .page-sidebar[sidebar-layout="iconcolor-sidebar"].light-sidebar .sidebar-menu li:nth-child(7n+3) a:hover span { + color: #071411; } + +.page-wrapper.horizontal-wrapper .page-body-wrapper .page-sidebar[sidebar-layout="iconcolor-sidebar"].light-sidebar .sidebar-menu li:nth-child(7n+4) svg { + color: #0d0e12; } + +.page-wrapper.horizontal-wrapper .page-body-wrapper .page-sidebar[sidebar-layout="iconcolor-sidebar"].light-sidebar .sidebar-menu li:nth-child(7n+4) a:hover span { + color: #0d0e12; } + +.page-wrapper.horizontal-wrapper .page-body-wrapper .page-sidebar[sidebar-layout="iconcolor-sidebar"].light-sidebar .sidebar-menu li:nth-child(7n+5) svg { + color: #8e633c; } + +.page-wrapper.horizontal-wrapper .page-body-wrapper .page-sidebar[sidebar-layout="iconcolor-sidebar"].light-sidebar .sidebar-menu li:nth-child(7n+5) a:hover span { + color: #b2991a; } + +.page-wrapper.horizontal-wrapper .page-body-wrapper .page-sidebar[sidebar-layout="iconcolor-sidebar"].light-sidebar .sidebar-menu li:nth-child(7n+6) svg { + color: #10302a; } + +.page-wrapper.horizontal-wrapper .page-body-wrapper .page-sidebar[sidebar-layout="iconcolor-sidebar"].light-sidebar .sidebar-menu li:nth-child(7n+6) a:hover span { + color: #0d0e12; } + +.page-wrapper.horizontal-wrapper .page-body-wrapper .page-sidebar[sidebar-layout="iconcolor-sidebar"].light-sidebar .sidebar-menu li:nth-child(7n+7) svg { + color: #b2991a; } + +.page-wrapper.horizontal-wrapper .page-body-wrapper .page-sidebar[sidebar-layout="iconcolor-sidebar"].light-sidebar .sidebar-menu li:nth-child(7n+7) a:hover span { + color: #93202b; } + +.page-wrapper.horizontal-wrapper .page-body-wrapper .page-sidebar[sidebar-layout="iconcolor-sidebar"].light-sidebar .sidebar-menu li:nth-child(7n+8) svg { + color: #10302a; } + +.page-wrapper.horizontal-wrapper .page-body-wrapper .page-sidebar[sidebar-layout="iconcolor-sidebar"].light-sidebar .sidebar-menu li:nth-child(7n+8) a:hover span { + color: #10302a; } + +.page-wrapper.horizontal-wrapper .page-body-wrapper .page-sidebar[sidebar-layout="iconcolor-sidebar"].light-sidebar .sidebar-menu li:nth-child(7n+9) svg { + color: #071411; } + +.page-wrapper.horizontal-wrapper .page-body-wrapper .page-sidebar[sidebar-layout="iconcolor-sidebar"].light-sidebar .sidebar-menu li:nth-child(7n+9) a:hover span { + color: #0d0e12; } + +.page-wrapper.horizontal-wrapper .page-body-wrapper .page-sidebar[sidebar-layout="iconcolor-sidebar"].light-sidebar .sidebar-menu li:nth-child(7n+10) svg { + color: #b2991a; } + +.page-wrapper.horizontal-wrapper .page-body-wrapper .page-sidebar[sidebar-layout="iconcolor-sidebar"].light-sidebar .sidebar-menu li:nth-child(7n+10) a:hover span { + color: #4b4b4b; } + +.page-wrapper.horizontal-wrapper .page-body-wrapper .page-sidebar[sidebar-layout="iconcolor-sidebar"].light-sidebar .sidebar-menu li:nth-child(7n+11) svg { + color: #4b4b4b; } + +.page-wrapper.horizontal-wrapper .page-body-wrapper .page-sidebar[sidebar-layout="iconcolor-sidebar"].light-sidebar .sidebar-menu li:nth-child(7n+11) a:hover span { + color: #93202b; } + +.page-wrapper.horizontal-wrapper .page-body-wrapper .page-sidebar[sidebar-layout="iconcolor-sidebar"].light-sidebar .sidebar-menu li:nth-child(7n+12) svg { + color: #10302a; } + +.page-wrapper.horizontal-wrapper .page-body-wrapper .page-sidebar[sidebar-layout="iconcolor-sidebar"].light-sidebar .sidebar-menu li:nth-child(7n+12) a:hover span { + color: #10302a; } + +.page-wrapper.horizontal-wrapper .page-body-wrapper .page-sidebar[sidebar-layout="iconcolor-sidebar"].light-sidebar .sidebar-menu li:nth-child(7n+13) svg { + color: #93202b; } + +.page-wrapper.horizontal-wrapper .page-body-wrapper .page-sidebar[sidebar-layout="iconcolor-sidebar"].light-sidebar .sidebar-menu li:nth-child(7n+13) a:hover span { + color: #93202b; } + +.page-wrapper.horizontal-wrapper .page-body-wrapper .page-sidebar[sidebar-layout="iconcolor-sidebar"].light-sidebar .sidebar-menu li:nth-child(7n+14) svg { + color: #93202b; } + +.page-wrapper.horizontal-wrapper .page-body-wrapper .page-sidebar[sidebar-layout="iconcolor-sidebar"].light-sidebar .sidebar-menu li:nth-child(7n+14) a:hover span { + color: #0d0e12; } + +.page-wrapper.horizontal-wrapper .page-body-wrapper .page-sidebar[sidebar-layout="iconcolor-sidebar"].light-sidebar .sidebar-menu li:nth-child(7n+15) svg { + color: #10302a; } + +.page-wrapper.horizontal-wrapper .page-body-wrapper .page-sidebar[sidebar-layout="iconcolor-sidebar"].light-sidebar .sidebar-menu li:nth-child(7n+15) a:hover span { + color: #8e633c; } + +.page-wrapper.horizontal-wrapper .page-body-wrapper .page-sidebar[sidebar-layout="iconcolor-sidebar"].light-sidebar .sidebar-menu li:nth-child(7n+16) svg { + color: #4b4b4b; } + +.page-wrapper.horizontal-wrapper .page-body-wrapper .page-sidebar[sidebar-layout="iconcolor-sidebar"].light-sidebar .sidebar-menu li:nth-child(7n+16) a:hover span { + color: #10302a; } + +.page-wrapper.horizontal-wrapper .page-body-wrapper .page-sidebar[sidebar-layout="iconcolor-sidebar"].light-sidebar .sidebar-menu li:nth-child(7n+17) svg { + color: #4b4b4b; } + +.page-wrapper.horizontal-wrapper .page-body-wrapper .page-sidebar[sidebar-layout="iconcolor-sidebar"].light-sidebar .sidebar-menu li:nth-child(7n+17) a:hover span { + color: #0d0e12; } + +.page-wrapper.horizontal-wrapper .page-body-wrapper .page-sidebar[sidebar-layout="iconcolor-sidebar"].light-sidebar .sidebar-menu li:nth-child(7n+18) svg { + color: #4b4b4b; } + +.page-wrapper.horizontal-wrapper .page-body-wrapper .page-sidebar[sidebar-layout="iconcolor-sidebar"].light-sidebar .sidebar-menu li:nth-child(7n+18) a:hover span { + color: #10302a; } + +.page-wrapper.horizontal-wrapper .page-body-wrapper .page-sidebar[sidebar-layout="iconcolor-sidebar"].light-sidebar .sidebar-menu li:nth-child(7n+19) svg { + color: #4b4b4b; } + +.page-wrapper.horizontal-wrapper .page-body-wrapper .page-sidebar[sidebar-layout="iconcolor-sidebar"].light-sidebar .sidebar-menu li:nth-child(7n+19) a:hover span { + color: #93202b; } + +.page-wrapper.horizontal-wrapper .page-body-wrapper .page-sidebar[sidebar-layout="iconcolor-sidebar"].light-sidebar .sidebar-menu li:nth-child(7n+20) svg { + color: #93202b; } + +.page-wrapper.horizontal-wrapper .page-body-wrapper .page-sidebar[sidebar-layout="iconcolor-sidebar"].light-sidebar .sidebar-menu li:nth-child(7n+20) a:hover span { + color: #4b4b4b; } + +.page-wrapper.horizontal-wrapper .page-body-wrapper .page-sidebar[sidebar-layout="iconcolor-sidebar"].light-sidebar .sidebar-menu li:nth-child(7n+21) svg { + color: #10302a; } + +.page-wrapper.horizontal-wrapper .page-body-wrapper .page-sidebar[sidebar-layout="iconcolor-sidebar"].light-sidebar .sidebar-menu li:nth-child(7n+21) a:hover span { + color: #8e633c; } + +.page-wrapper.horizontal-wrapper .page-body-wrapper .page-sidebar[sidebar-layout="iconcolor-sidebar"].light-sidebar .sidebar-menu li:nth-child(7n+22) svg { + color: #93202b; } + +.page-wrapper.horizontal-wrapper .page-body-wrapper .page-sidebar[sidebar-layout="iconcolor-sidebar"].light-sidebar .sidebar-menu li:nth-child(7n+22) a:hover span { + color: #10302a; } + +.page-wrapper.horizontal-wrapper .page-body-wrapper .page-sidebar[sidebar-layout="iconcolor-sidebar"].light-sidebar .sidebar-menu li:nth-child(7n+23) svg { + color: #0d0e12; } + +.page-wrapper.horizontal-wrapper .page-body-wrapper .page-sidebar[sidebar-layout="iconcolor-sidebar"].light-sidebar .sidebar-menu li:nth-child(7n+23) a:hover span { + color: #10302a; } + +.page-wrapper.horizontal-wrapper .page-body-wrapper .page-sidebar[sidebar-layout="iconcolor-sidebar"].light-sidebar .sidebar-menu li:nth-child(7n+24) svg { + color: #93202b; } + +.page-wrapper.horizontal-wrapper .page-body-wrapper .page-sidebar[sidebar-layout="iconcolor-sidebar"].light-sidebar .sidebar-menu li:nth-child(7n+24) a:hover span { + color: #8e633c; } + +.page-wrapper.horizontal-wrapper .page-body-wrapper .page-sidebar[sidebar-layout="iconcolor-sidebar"].light-sidebar .sidebar-menu li:nth-child(7n+25) svg { + color: #071411; } + +.page-wrapper.horizontal-wrapper .page-body-wrapper .page-sidebar[sidebar-layout="iconcolor-sidebar"].light-sidebar .sidebar-menu li:nth-child(7n+25) a:hover span { + color: #93202b; } + +.page-wrapper.horizontal-wrapper .page-body-wrapper .page-sidebar[sidebar-layout="iconcolor-sidebar"].light-sidebar .sidebar-menu li:nth-child(7n+26) svg { + color: #4b4b4b; } + +.page-wrapper.horizontal-wrapper .page-body-wrapper .page-sidebar[sidebar-layout="iconcolor-sidebar"].light-sidebar .sidebar-menu li:nth-child(7n+26) a:hover span { + color: #4b4b4b; } + +.page-wrapper.horizontal-wrapper .page-body-wrapper .page-sidebar[sidebar-layout="iconcolor-sidebar"].light-sidebar .sidebar-menu li:nth-child(7n+27) svg { + color: #0d0e12; } + +.page-wrapper.horizontal-wrapper .page-body-wrapper .page-sidebar[sidebar-layout="iconcolor-sidebar"].light-sidebar .sidebar-menu li:nth-child(7n+27) a:hover span { + color: #071411; } + +.page-wrapper.horizontal-wrapper .page-body-wrapper .page-sidebar[sidebar-layout="iconcolor-sidebar"].light-sidebar .sidebar-menu li:nth-child(7n+28) svg { + color: #0d0e12; } + +.page-wrapper.horizontal-wrapper .page-body-wrapper .page-sidebar[sidebar-layout="iconcolor-sidebar"].light-sidebar .sidebar-menu li:nth-child(7n+28) a:hover span { + color: #10302a; } + +.page-wrapper.horizontal-wrapper .page-body-wrapper .page-sidebar[sidebar-layout="iconcolor-sidebar"].light-sidebar .sidebar-menu li:nth-child(7n+29) svg { + color: #b2991a; } + +.page-wrapper.horizontal-wrapper .page-body-wrapper .page-sidebar[sidebar-layout="iconcolor-sidebar"].light-sidebar .sidebar-menu li:nth-child(7n+29) a:hover span { + color: #071411; } + +.page-wrapper.horizontal-wrapper .page-body-wrapper .page-sidebar[sidebar-layout="iconcolor-sidebar"].light-sidebar .sidebar-menu li:nth-child(7n+30) svg { + color: #071411; } + +.page-wrapper.horizontal-wrapper .page-body-wrapper .page-sidebar[sidebar-layout="iconcolor-sidebar"].light-sidebar .sidebar-menu li:nth-child(7n+30) a:hover span { + color: #071411; } + +.page-wrapper.horizontal-wrapper .page-body-wrapper .page-sidebar[sidebar-layout="iconcolor-sidebar"].light-sidebar .sidebar-menu li:nth-child(7n+31) svg { + color: #4b4b4b; } + +.page-wrapper.horizontal-wrapper .page-body-wrapper .page-sidebar[sidebar-layout="iconcolor-sidebar"].light-sidebar .sidebar-menu li:nth-child(7n+31) a:hover span { + color: #0d0e12; } + +.page-wrapper.horizontal-wrapper .page-body-wrapper .page-sidebar[sidebar-layout="iconcolor-sidebar"].light-sidebar .sidebar-menu li:nth-child(7n+32) svg { + color: #8e633c; } + +.page-wrapper.horizontal-wrapper .page-body-wrapper .page-sidebar[sidebar-layout="iconcolor-sidebar"].light-sidebar .sidebar-menu li:nth-child(7n+32) a:hover span { + color: #0d0e12; } + +.page-wrapper.horizontal-wrapper .page-body-wrapper .page-sidebar[sidebar-layout="iconcolor-sidebar"].light-sidebar .sidebar-menu li:nth-child(7n+33) svg { + color: #10302a; } + +.page-wrapper.horizontal-wrapper .page-body-wrapper .page-sidebar[sidebar-layout="iconcolor-sidebar"].light-sidebar .sidebar-menu li:nth-child(7n+33) a:hover span { + color: #4b4b4b; } + +.page-wrapper.horizontal-wrapper .page-body-wrapper .page-sidebar[sidebar-layout="iconcolor-sidebar"].light-sidebar .sidebar-menu li:nth-child(7n+34) svg { + color: #4b4b4b; } + +.page-wrapper.horizontal-wrapper .page-body-wrapper .page-sidebar[sidebar-layout="iconcolor-sidebar"].light-sidebar .sidebar-menu li:nth-child(7n+34) a:hover span { + color: #0d0e12; } + +.page-wrapper.horizontal-wrapper .page-body-wrapper .page-sidebar[sidebar-layout="iconcolor-sidebar"].light-sidebar .sidebar-menu li:nth-child(7n+35) svg { + color: #8e633c; } + +.page-wrapper.horizontal-wrapper .page-body-wrapper .page-sidebar[sidebar-layout="iconcolor-sidebar"].light-sidebar .sidebar-menu li:nth-child(7n+35) a:hover span { + color: #0d0e12; } + +.page-wrapper.horizontal-wrapper .page-body-wrapper .page-sidebar[sidebar-layout="iconcolor-sidebar"].light-sidebar .sidebar-menu li:nth-child(7n+36) svg { + color: #0d0e12; } + +.page-wrapper.horizontal-wrapper .page-body-wrapper .page-sidebar[sidebar-layout="iconcolor-sidebar"].light-sidebar .sidebar-menu li:nth-child(7n+36) a:hover span { + color: #0d0e12; } + +.page-wrapper.horizontal-wrapper .page-body-wrapper .page-sidebar[sidebar-layout="iconcolor-sidebar"].light-sidebar .sidebar-menu li:nth-child(7n+37) svg { + color: #93202b; } + +.page-wrapper.horizontal-wrapper .page-body-wrapper .page-sidebar[sidebar-layout="iconcolor-sidebar"].light-sidebar .sidebar-menu li:nth-child(7n+37) a:hover span { + color: #071411; } + +.page-wrapper.horizontal-wrapper .page-body-wrapper .page-sidebar[sidebar-layout="iconcolor-sidebar"].light-sidebar .sidebar-menu li:nth-child(7n+38) svg { + color: #93202b; } + +.page-wrapper.horizontal-wrapper .page-body-wrapper .page-sidebar[sidebar-layout="iconcolor-sidebar"].light-sidebar .sidebar-menu li:nth-child(7n+38) a:hover span { + color: #071411; } + +.page-wrapper.horizontal-wrapper .page-body-wrapper .page-sidebar[sidebar-layout="iconcolor-sidebar"].light-sidebar .sidebar-menu li:nth-child(7n+39) svg { + color: #4b4b4b; } + +.page-wrapper.horizontal-wrapper .page-body-wrapper .page-sidebar[sidebar-layout="iconcolor-sidebar"].light-sidebar .sidebar-menu li:nth-child(7n+39) a:hover span { + color: #0d0e12; } + +.page-wrapper.horizontal-wrapper .page-body-wrapper .page-sidebar[sidebar-layout="iconcolor-sidebar"].light-sidebar .sidebar-menu li:nth-child(7n+40) svg { + color: #0d0e12; } + +.page-wrapper.horizontal-wrapper .page-body-wrapper .page-sidebar[sidebar-layout="iconcolor-sidebar"].light-sidebar .sidebar-menu li:nth-child(7n+40) a:hover span { + color: #071411; } + +.page-wrapper.horizontal-wrapper .page-body-wrapper .page-sidebar[sidebar-layout="iconcolor-sidebar"].light-sidebar .sidebar-menu li:nth-child(7n+41) svg { + color: #4b4b4b; } + +.page-wrapper.horizontal-wrapper .page-body-wrapper .page-sidebar[sidebar-layout="iconcolor-sidebar"].light-sidebar .sidebar-menu li:nth-child(7n+41) a:hover span { + color: #4b4b4b; } + +.page-wrapper.horizontal-wrapper .page-body-wrapper .page-sidebar[sidebar-layout="iconcolor-sidebar"].light-sidebar .sidebar-menu li:nth-child(7n+42) svg { + color: #10302a; } + +.page-wrapper.horizontal-wrapper .page-body-wrapper .page-sidebar[sidebar-layout="iconcolor-sidebar"].light-sidebar .sidebar-menu li:nth-child(7n+42) a:hover span { + color: #93202b; } + +.page-wrapper.horizontal-wrapper .page-body-wrapper .page-sidebar[sidebar-layout="iconcolor-sidebar"].light-sidebar .sidebar-menu li:nth-child(7n+43) svg { + color: #4b4b4b; } + +.page-wrapper.horizontal-wrapper .page-body-wrapper .page-sidebar[sidebar-layout="iconcolor-sidebar"].light-sidebar .sidebar-menu li:nth-child(7n+43) a:hover span { + color: #93202b; } + +.page-wrapper.horizontal-wrapper .page-body-wrapper .page-sidebar[sidebar-layout="iconcolor-sidebar"].light-sidebar .sidebar-menu li:nth-child(7n+44) svg { + color: #b2991a; } + +.page-wrapper.horizontal-wrapper .page-body-wrapper .page-sidebar[sidebar-layout="iconcolor-sidebar"].light-sidebar .sidebar-menu li:nth-child(7n+44) a:hover span { + color: #10302a; } + +.page-wrapper.horizontal-wrapper .page-body-wrapper .page-sidebar[sidebar-layout="iconcolor-sidebar"].light-sidebar .sidebar-menu li:nth-child(7n+45) svg { + color: #10302a; } + +.page-wrapper.horizontal-wrapper .page-body-wrapper .page-sidebar[sidebar-layout="iconcolor-sidebar"].light-sidebar .sidebar-menu li:nth-child(7n+45) a:hover span { + color: #10302a; } + +.page-wrapper.horizontal-wrapper .page-body-wrapper .page-sidebar[sidebar-layout="iconcolor-sidebar"].light-sidebar .sidebar-menu li:nth-child(7n+46) svg { + color: #93202b; } + +.page-wrapper.horizontal-wrapper .page-body-wrapper .page-sidebar[sidebar-layout="iconcolor-sidebar"].light-sidebar .sidebar-menu li:nth-child(7n+46) a:hover span { + color: #b2991a; } + +.page-wrapper.horizontal-wrapper .page-body-wrapper .page-sidebar[sidebar-layout="iconcolor-sidebar"].light-sidebar .sidebar-menu li:nth-child(7n+47) svg { + color: #0d0e12; } + +.page-wrapper.horizontal-wrapper .page-body-wrapper .page-sidebar[sidebar-layout="iconcolor-sidebar"].light-sidebar .sidebar-menu li:nth-child(7n+47) a:hover span { + color: #10302a; } + +.page-wrapper.horizontal-wrapper .page-body-wrapper .page-sidebar[sidebar-layout="iconcolor-sidebar"].light-sidebar .sidebar-menu li:nth-child(7n+48) svg { + color: #93202b; } + +.page-wrapper.horizontal-wrapper .page-body-wrapper .page-sidebar[sidebar-layout="iconcolor-sidebar"].light-sidebar .sidebar-menu li:nth-child(7n+48) a:hover span { + color: #93202b; } + +.page-wrapper.horizontal-wrapper .page-body-wrapper .page-sidebar[sidebar-layout="iconcolor-sidebar"].light-sidebar .sidebar-menu li:nth-child(7n+49) svg { + color: #071411; } + +.page-wrapper.horizontal-wrapper .page-body-wrapper .page-sidebar[sidebar-layout="iconcolor-sidebar"].light-sidebar .sidebar-menu li:nth-child(7n+49) a:hover span { + color: #10302a; } + +.page-wrapper.horizontal-wrapper .page-body-wrapper .page-sidebar[sidebar-layout="iconcolor-sidebar"].light-sidebar .sidebar-menu li:nth-child(7n+50) svg { + color: #10302a; } + +.page-wrapper.horizontal-wrapper .page-body-wrapper .page-sidebar[sidebar-layout="iconcolor-sidebar"].light-sidebar .sidebar-menu li:nth-child(7n+50) a:hover span { + color: #10302a; } + +.page-wrapper.horizontal-wrapper .page-body-wrapper .page-sidebar[sidebar-layout="iconcolor-sidebar"].light-sidebar .sidebar-menu li:nth-child(7n+51) svg { + color: #071411; } + +.page-wrapper.horizontal-wrapper .page-body-wrapper .page-sidebar[sidebar-layout="iconcolor-sidebar"].light-sidebar .sidebar-menu li:nth-child(7n+51) a:hover span { + color: #10302a; } + +.page-wrapper.horizontal-wrapper .page-body-wrapper .page-sidebar[sidebar-layout="iconcolor-sidebar"].light-sidebar .sidebar-menu li:nth-child(7n+52) svg { + color: #b2991a; } + +.page-wrapper.horizontal-wrapper .page-body-wrapper .page-sidebar[sidebar-layout="iconcolor-sidebar"].light-sidebar .sidebar-menu li:nth-child(7n+52) a:hover span { + color: #071411; } + +.page-wrapper.horizontal-wrapper .page-body-wrapper .page-sidebar[sidebar-layout="iconcolor-sidebar"].light-sidebar .sidebar-menu li:nth-child(7n+53) svg { + color: #10302a; } + +.page-wrapper.horizontal-wrapper .page-body-wrapper .page-sidebar[sidebar-layout="iconcolor-sidebar"].light-sidebar .sidebar-menu li:nth-child(7n+53) a:hover span { + color: #0d0e12; } + +.page-wrapper.horizontal-wrapper .page-body-wrapper .page-sidebar[sidebar-layout="iconcolor-sidebar"].light-sidebar .sidebar-menu li:nth-child(7n+54) svg { + color: #93202b; } + +.page-wrapper.horizontal-wrapper .page-body-wrapper .page-sidebar[sidebar-layout="iconcolor-sidebar"].light-sidebar .sidebar-menu li:nth-child(7n+54) a:hover span { + color: #0d0e12; } + +.page-wrapper.horizontal-wrapper .page-body-wrapper .page-sidebar[sidebar-layout="iconcolor-sidebar"].light-sidebar .sidebar-menu li:nth-child(7n+55) svg { + color: #10302a; } + +.page-wrapper.horizontal-wrapper .page-body-wrapper .page-sidebar[sidebar-layout="iconcolor-sidebar"].light-sidebar .sidebar-menu li:nth-child(7n+55) a:hover span { + color: #8e633c; } + +.page-wrapper.horizontal-wrapper .page-body-wrapper .page-sidebar[sidebar-layout="iconcolor-sidebar"].light-sidebar .sidebar-menu li:nth-child(7n+56) svg { + color: #0d0e12; } + +.page-wrapper.horizontal-wrapper .page-body-wrapper .page-sidebar[sidebar-layout="iconcolor-sidebar"].light-sidebar .sidebar-menu li:nth-child(7n+56) a:hover span { + color: #8e633c; } + +.page-wrapper.horizontal-wrapper .page-body-wrapper .page-sidebar[sidebar-layout="iconcolor-sidebar"].light-sidebar .sidebar-menu li:nth-child(7n+57) svg { + color: #071411; } + +.page-wrapper.horizontal-wrapper .page-body-wrapper .page-sidebar[sidebar-layout="iconcolor-sidebar"].light-sidebar .sidebar-menu li:nth-child(7n+57) a:hover span { + color: #10302a; } + +.page-wrapper.horizontal-wrapper .page-body-wrapper .page-sidebar[sidebar-layout="iconcolor-sidebar"].light-sidebar .sidebar-menu li:nth-child(7n+58) svg { + color: #071411; } + +.page-wrapper.horizontal-wrapper .page-body-wrapper .page-sidebar[sidebar-layout="iconcolor-sidebar"].light-sidebar .sidebar-menu li:nth-child(7n+58) a:hover span { + color: #4b4b4b; } + +.page-wrapper.horizontal-wrapper .page-body-wrapper .page-sidebar[sidebar-layout="iconcolor-sidebar"].light-sidebar .sidebar-menu li:nth-child(7n+59) svg { + color: #071411; } + +.page-wrapper.horizontal-wrapper .page-body-wrapper .page-sidebar[sidebar-layout="iconcolor-sidebar"].light-sidebar .sidebar-menu li:nth-child(7n+59) a:hover span { + color: #071411; } + +.page-wrapper.horizontal-wrapper .page-body-wrapper .page-sidebar[sidebar-layout="iconcolor-sidebar"].light-sidebar .sidebar-menu li:nth-child(7n+60) svg { + color: #b2991a; } + +.page-wrapper.horizontal-wrapper .page-body-wrapper .page-sidebar[sidebar-layout="iconcolor-sidebar"].light-sidebar .sidebar-menu li:nth-child(7n+60) a:hover span { + color: #071411; } + +.page-wrapper.horizontal-wrapper .page-body-wrapper .page-sidebar[sidebar-layout="iconcolor-sidebar"].light-sidebar .sidebar-menu li:nth-child(7n+61) svg { + color: #b2991a; } + +.page-wrapper.horizontal-wrapper .page-body-wrapper .page-sidebar[sidebar-layout="iconcolor-sidebar"].light-sidebar .sidebar-menu li:nth-child(7n+61) a:hover span { + color: #4b4b4b; } + +.page-wrapper.horizontal-wrapper .page-body-wrapper .page-sidebar[sidebar-layout="iconcolor-sidebar"].light-sidebar .sidebar-menu li:nth-child(7n+62) svg { + color: #4b4b4b; } + +.page-wrapper.horizontal-wrapper .page-body-wrapper .page-sidebar[sidebar-layout="iconcolor-sidebar"].light-sidebar .sidebar-menu li:nth-child(7n+62) a:hover span { + color: #0d0e12; } + +.page-wrapper.horizontal-wrapper .page-body-wrapper .page-sidebar[sidebar-layout="iconcolor-sidebar"].light-sidebar .sidebar-menu li:nth-child(7n+63) svg { + color: #0d0e12; } + +.page-wrapper.horizontal-wrapper .page-body-wrapper .page-sidebar[sidebar-layout="iconcolor-sidebar"].light-sidebar .sidebar-menu li:nth-child(7n+63) a:hover span { + color: #0d0e12; } + +.page-wrapper.horizontal-wrapper .page-body-wrapper .page-sidebar[sidebar-layout="iconcolor-sidebar"].light-sidebar .sidebar-menu li:nth-child(7n+64) svg { + color: #93202b; } + +.page-wrapper.horizontal-wrapper .page-body-wrapper .page-sidebar[sidebar-layout="iconcolor-sidebar"].light-sidebar .sidebar-menu li:nth-child(7n+64) a:hover span { + color: #93202b; } + +.page-wrapper.horizontal-wrapper .page-body-wrapper .page-sidebar[sidebar-layout="iconcolor-sidebar"].light-sidebar .sidebar-menu li:nth-child(7n+65) svg { + color: #0d0e12; } + +.page-wrapper.horizontal-wrapper .page-body-wrapper .page-sidebar[sidebar-layout="iconcolor-sidebar"].light-sidebar .sidebar-menu li:nth-child(7n+65) a:hover span { + color: #8e633c; } + +.page-wrapper.horizontal-wrapper .page-body-wrapper .page-sidebar[sidebar-layout="iconcolor-sidebar"].light-sidebar .sidebar-menu li:nth-child(7n+66) svg { + color: #8e633c; } + +.page-wrapper.horizontal-wrapper .page-body-wrapper .page-sidebar[sidebar-layout="iconcolor-sidebar"].light-sidebar .sidebar-menu li:nth-child(7n+66) a:hover span { + color: #10302a; } + +.page-wrapper.horizontal-wrapper .page-body-wrapper .page-sidebar[sidebar-layout="iconcolor-sidebar"].light-sidebar .sidebar-menu li:nth-child(7n+67) svg { + color: #10302a; } + +.page-wrapper.horizontal-wrapper .page-body-wrapper .page-sidebar[sidebar-layout="iconcolor-sidebar"].light-sidebar .sidebar-menu li:nth-child(7n+67) a:hover span { + color: #b2991a; } + +.page-wrapper.horizontal-wrapper .page-body-wrapper .page-sidebar[sidebar-layout="iconcolor-sidebar"].light-sidebar .sidebar-menu li:nth-child(7n+68) svg { + color: #4b4b4b; } + +.page-wrapper.horizontal-wrapper .page-body-wrapper .page-sidebar[sidebar-layout="iconcolor-sidebar"].light-sidebar .sidebar-menu li:nth-child(7n+68) a:hover span { + color: #4b4b4b; } + +.page-wrapper.horizontal-wrapper .page-body-wrapper .page-sidebar[sidebar-layout="iconcolor-sidebar"].light-sidebar .sidebar-menu li:nth-child(7n+69) svg { + color: #4b4b4b; } + +.page-wrapper.horizontal-wrapper .page-body-wrapper .page-sidebar[sidebar-layout="iconcolor-sidebar"].light-sidebar .sidebar-menu li:nth-child(7n+69) a:hover span { + color: #93202b; } + +.page-wrapper.horizontal-wrapper .page-body-wrapper .page-sidebar[sidebar-layout="iconcolor-sidebar"].light-sidebar .sidebar-menu li:nth-child(7n+70) svg { + color: #10302a; } + +.page-wrapper.horizontal-wrapper .page-body-wrapper .page-sidebar[sidebar-layout="iconcolor-sidebar"].light-sidebar .sidebar-menu li:nth-child(7n+70) a:hover span { + color: #b2991a; } + +.page-wrapper.horizontal-wrapper .page-body-wrapper .page-sidebar[sidebar-layout="iconcolor-sidebar"].light-sidebar .sidebar-menu li:nth-child(7n+71) svg { + color: #4b4b4b; } + +.page-wrapper.horizontal-wrapper .page-body-wrapper .page-sidebar[sidebar-layout="iconcolor-sidebar"].light-sidebar .sidebar-menu li:nth-child(7n+71) a:hover span { + color: #b2991a; } + +.page-wrapper.horizontal-wrapper .page-body-wrapper .page-sidebar[sidebar-layout="iconcolor-sidebar"].light-sidebar .sidebar-menu li:nth-child(7n+72) svg { + color: #071411; } + +.page-wrapper.horizontal-wrapper .page-body-wrapper .page-sidebar[sidebar-layout="iconcolor-sidebar"].light-sidebar .sidebar-menu li:nth-child(7n+72) a:hover span { + color: #b2991a; } + +.page-wrapper.horizontal-wrapper .page-body-wrapper .page-sidebar[sidebar-layout="iconcolor-sidebar"].light-sidebar .sidebar-menu li:nth-child(7n+73) svg { + color: #4b4b4b; } + +.page-wrapper.horizontal-wrapper .page-body-wrapper .page-sidebar[sidebar-layout="iconcolor-sidebar"].light-sidebar .sidebar-menu li:nth-child(7n+73) a:hover span { + color: #8e633c; } + +.page-wrapper.horizontal-wrapper .page-body-wrapper .page-sidebar[sidebar-layout="iconcolor-sidebar"].light-sidebar .sidebar-menu li:nth-child(7n+74) svg { + color: #10302a; } + +.page-wrapper.horizontal-wrapper .page-body-wrapper .page-sidebar[sidebar-layout="iconcolor-sidebar"].light-sidebar .sidebar-menu li:nth-child(7n+74) a:hover span { + color: #93202b; } + +.page-wrapper.horizontal-wrapper .page-body-wrapper .page-sidebar[sidebar-layout="iconcolor-sidebar"].light-sidebar .sidebar-menu li:nth-child(7n+75) svg { + color: #071411; } + +.page-wrapper.horizontal-wrapper .page-body-wrapper .page-sidebar[sidebar-layout="iconcolor-sidebar"].light-sidebar .sidebar-menu li:nth-child(7n+75) a:hover span { + color: #8e633c; } + +.page-wrapper.horizontal-wrapper .page-body-wrapper .page-sidebar[sidebar-layout="iconcolor-sidebar"].light-sidebar .sidebar-menu li:nth-child(7n+76) svg { + color: #93202b; } + +.page-wrapper.horizontal-wrapper .page-body-wrapper .page-sidebar[sidebar-layout="iconcolor-sidebar"].light-sidebar .sidebar-menu li:nth-child(7n+76) a:hover span { + color: #0d0e12; } + +.page-wrapper.horizontal-wrapper .page-body-wrapper .page-sidebar[sidebar-layout="iconcolor-sidebar"].light-sidebar .sidebar-menu li:nth-child(7n+77) svg { + color: #071411; } + +.page-wrapper.horizontal-wrapper .page-body-wrapper .page-sidebar[sidebar-layout="iconcolor-sidebar"].light-sidebar .sidebar-menu li:nth-child(7n+77) a:hover span { + color: #b2991a; } + +.page-wrapper.horizontal-wrapper .page-body-wrapper .page-sidebar[sidebar-layout="iconcolor-sidebar"].light-sidebar .sidebar-menu li:nth-child(7n+78) svg { + color: #0d0e12; } + +.page-wrapper.horizontal-wrapper .page-body-wrapper .page-sidebar[sidebar-layout="iconcolor-sidebar"].light-sidebar .sidebar-menu li:nth-child(7n+78) a:hover span { + color: #10302a; } + +.page-wrapper.horizontal-wrapper .page-body-wrapper .page-sidebar[sidebar-layout="iconcolor-sidebar"].light-sidebar .sidebar-menu li:nth-child(7n+79) svg { + color: #0d0e12; } + +.page-wrapper.horizontal-wrapper .page-body-wrapper .page-sidebar[sidebar-layout="iconcolor-sidebar"].light-sidebar .sidebar-menu li:nth-child(7n+79) a:hover span { + color: #0d0e12; } + +.page-wrapper.horizontal-wrapper .page-body-wrapper .page-sidebar[sidebar-layout="iconcolor-sidebar"].light-sidebar .sidebar-menu li:nth-child(7n+80) svg { + color: #071411; } + +.page-wrapper.horizontal-wrapper .page-body-wrapper .page-sidebar[sidebar-layout="iconcolor-sidebar"].light-sidebar .sidebar-menu li:nth-child(7n+80) a:hover span { + color: #4b4b4b; } + +.page-wrapper.horizontal-wrapper .page-body-wrapper .page-sidebar[sidebar-layout="iconcolor-sidebar"].light-sidebar .sidebar-menu li:nth-child(7n+81) svg { + color: #8e633c; } + +.page-wrapper.horizontal-wrapper .page-body-wrapper .page-sidebar[sidebar-layout="iconcolor-sidebar"].light-sidebar .sidebar-menu li:nth-child(7n+81) a:hover span { + color: #4b4b4b; } + +.page-wrapper.horizontal-wrapper .page-body-wrapper .page-sidebar[sidebar-layout="iconcolor-sidebar"].light-sidebar .sidebar-menu li:nth-child(7n+82) svg { + color: #071411; } + +.page-wrapper.horizontal-wrapper .page-body-wrapper .page-sidebar[sidebar-layout="iconcolor-sidebar"].light-sidebar .sidebar-menu li:nth-child(7n+82) a:hover span { + color: #0d0e12; } + +.page-wrapper.horizontal-wrapper .page-body-wrapper .page-sidebar[sidebar-layout="iconcolor-sidebar"].light-sidebar .sidebar-menu li:nth-child(7n+83) svg { + color: #10302a; } + +.page-wrapper.horizontal-wrapper .page-body-wrapper .page-sidebar[sidebar-layout="iconcolor-sidebar"].light-sidebar .sidebar-menu li:nth-child(7n+83) a:hover span { + color: #071411; } + +.page-wrapper.horizontal-wrapper .page-body-wrapper .page-sidebar[sidebar-layout="iconcolor-sidebar"].light-sidebar .sidebar-menu li:nth-child(7n+84) svg { + color: #4b4b4b; } + +.page-wrapper.horizontal-wrapper .page-body-wrapper .page-sidebar[sidebar-layout="iconcolor-sidebar"].light-sidebar .sidebar-menu li:nth-child(7n+84) a:hover span { + color: #10302a; } + +.page-wrapper.horizontal-wrapper .page-body-wrapper .page-sidebar[sidebar-layout="iconcolor-sidebar"].light-sidebar .sidebar-menu li:nth-child(7n+85) svg { + color: #071411; } + +.page-wrapper.horizontal-wrapper .page-body-wrapper .page-sidebar[sidebar-layout="iconcolor-sidebar"].light-sidebar .sidebar-menu li:nth-child(7n+85) a:hover span { + color: #b2991a; } + +.page-wrapper.horizontal-wrapper .page-body-wrapper .page-sidebar[sidebar-layout="iconcolor-sidebar"].light-sidebar .sidebar-menu li:nth-child(7n+86) svg { + color: #0d0e12; } + +.page-wrapper.horizontal-wrapper .page-body-wrapper .page-sidebar[sidebar-layout="iconcolor-sidebar"].light-sidebar .sidebar-menu li:nth-child(7n+86) a:hover span { + color: #071411; } + +.page-wrapper.horizontal-wrapper .page-body-wrapper .page-sidebar[sidebar-layout="iconcolor-sidebar"].light-sidebar .sidebar-menu li:nth-child(7n+87) svg { + color: #8e633c; } + +.page-wrapper.horizontal-wrapper .page-body-wrapper .page-sidebar[sidebar-layout="iconcolor-sidebar"].light-sidebar .sidebar-menu li:nth-child(7n+87) a:hover span { + color: #0d0e12; } + +.page-wrapper.horizontal-wrapper .page-body-wrapper .page-sidebar[sidebar-layout="iconcolor-sidebar"].light-sidebar .sidebar-menu li:nth-child(7n+88) svg { + color: #0d0e12; } + +.page-wrapper.horizontal-wrapper .page-body-wrapper .page-sidebar[sidebar-layout="iconcolor-sidebar"].light-sidebar .sidebar-menu li:nth-child(7n+88) a:hover span { + color: #8e633c; } + +.page-wrapper.horizontal-wrapper .page-body-wrapper .page-sidebar[sidebar-layout="iconcolor-sidebar"].light-sidebar .sidebar-menu li:nth-child(7n+89) svg { + color: #071411; } + +.page-wrapper.horizontal-wrapper .page-body-wrapper .page-sidebar[sidebar-layout="iconcolor-sidebar"].light-sidebar .sidebar-menu li:nth-child(7n+89) a:hover span { + color: #071411; } + +.page-wrapper.horizontal-wrapper .page-body-wrapper .page-sidebar[sidebar-layout="iconcolor-sidebar"].light-sidebar .sidebar-menu li:nth-child(7n+90) svg { + color: #071411; } + +.page-wrapper.horizontal-wrapper .page-body-wrapper .page-sidebar[sidebar-layout="iconcolor-sidebar"].light-sidebar .sidebar-menu li:nth-child(7n+90) a:hover span { + color: #0d0e12; } + +.page-wrapper.horizontal-wrapper .page-body-wrapper .page-sidebar[sidebar-layout="iconcolor-sidebar"].light-sidebar .sidebar-menu li:nth-child(7n+91) svg { + color: #0d0e12; } + +.page-wrapper.horizontal-wrapper .page-body-wrapper .page-sidebar[sidebar-layout="iconcolor-sidebar"].light-sidebar .sidebar-menu li:nth-child(7n+91) a:hover span { + color: #8e633c; } + +.page-wrapper.horizontal-wrapper .page-body-wrapper .page-sidebar[sidebar-layout="iconcolor-sidebar"].light-sidebar .sidebar-menu li:nth-child(7n+92) svg { + color: #93202b; } + +.page-wrapper.horizontal-wrapper .page-body-wrapper .page-sidebar[sidebar-layout="iconcolor-sidebar"].light-sidebar .sidebar-menu li:nth-child(7n+92) a:hover span { + color: #4b4b4b; } + +.page-wrapper.horizontal-wrapper .page-body-wrapper .page-sidebar[sidebar-layout="iconcolor-sidebar"].light-sidebar .sidebar-menu li:nth-child(7n+93) svg { + color: #4b4b4b; } + +.page-wrapper.horizontal-wrapper .page-body-wrapper .page-sidebar[sidebar-layout="iconcolor-sidebar"].light-sidebar .sidebar-menu li:nth-child(7n+93) a:hover span { + color: #8e633c; } + +.page-wrapper.horizontal-wrapper .page-body-wrapper .page-sidebar[sidebar-layout="iconcolor-sidebar"].light-sidebar .sidebar-menu li:nth-child(7n+94) svg { + color: #0d0e12; } + +.page-wrapper.horizontal-wrapper .page-body-wrapper .page-sidebar[sidebar-layout="iconcolor-sidebar"].light-sidebar .sidebar-menu li:nth-child(7n+94) a:hover span { + color: #b2991a; } + +.page-wrapper.horizontal-wrapper .page-body-wrapper .page-sidebar[sidebar-layout="iconcolor-sidebar"].light-sidebar .sidebar-menu li:nth-child(7n+95) svg { + color: #b2991a; } + +.page-wrapper.horizontal-wrapper .page-body-wrapper .page-sidebar[sidebar-layout="iconcolor-sidebar"].light-sidebar .sidebar-menu li:nth-child(7n+95) a:hover span { + color: #8e633c; } + +.page-wrapper.horizontal-wrapper .page-body-wrapper .page-sidebar[sidebar-layout="iconcolor-sidebar"].light-sidebar .sidebar-menu li:nth-child(7n+96) svg { + color: #b2991a; } + +.page-wrapper.horizontal-wrapper .page-body-wrapper .page-sidebar[sidebar-layout="iconcolor-sidebar"].light-sidebar .sidebar-menu li:nth-child(7n+96) a:hover span { + color: #10302a; } + +.page-wrapper.horizontal-wrapper .page-body-wrapper .page-sidebar[sidebar-layout="iconcolor-sidebar"].light-sidebar .sidebar-menu li:nth-child(7n+97) svg { + color: #b2991a; } + +.page-wrapper.horizontal-wrapper .page-body-wrapper .page-sidebar[sidebar-layout="iconcolor-sidebar"].light-sidebar .sidebar-menu li:nth-child(7n+97) a:hover span { + color: #0d0e12; } + +.page-wrapper.horizontal-wrapper .page-body-wrapper .page-sidebar[sidebar-layout="iconcolor-sidebar"].light-sidebar .sidebar-menu li:nth-child(7n+98) svg { + color: #10302a; } + +.page-wrapper.horizontal-wrapper .page-body-wrapper .page-sidebar[sidebar-layout="iconcolor-sidebar"].light-sidebar .sidebar-menu li:nth-child(7n+98) a:hover span { + color: #0d0e12; } + +.page-wrapper.horizontal-wrapper .page-body-wrapper .page-sidebar[sidebar-layout="iconcolor-sidebar"].light-sidebar .sidebar-menu li:nth-child(7n+99) svg { + color: #0d0e12; } + +.page-wrapper.horizontal-wrapper .page-body-wrapper .page-sidebar[sidebar-layout="iconcolor-sidebar"].light-sidebar .sidebar-menu li:nth-child(7n+99) a:hover span { + color: #071411; } + +.page-wrapper.horizontal-wrapper .page-body-wrapper .page-sidebar[sidebar-layout="iconcolor-sidebar"].light-sidebar .sidebar-menu li:nth-child(7n+100) svg { + color: #071411; } + +.page-wrapper.horizontal-wrapper .page-body-wrapper .page-sidebar[sidebar-layout="iconcolor-sidebar"].light-sidebar .sidebar-menu li:nth-child(7n+100) a:hover span { + color: #0d0e12; } + +.page-wrapper.horizontal-wrapper .page-body-wrapper .page-sidebar .sidebar-header { + -webkit-transition: all 0.3s ease; + transition: all 0.3s ease; } + +.page-wrapper.horizontal-wrapper .page-body-wrapper.sidebar-icon .page-sidebar.light-sidebar .sidebar-menu li:hover .single-header { + background-color: #e6edef !important; } + +.page-wrapper.horizontal-wrapper .page-body-wrapper.sidebar-icon .page-sidebar.light-sidebar .sidebar-menu li:hover .sidebar-submenu { + background-color: #e6edef !important; } + +.page-wrapper.horizontal-wrapper .page-body-wrapper.sidebar-icon .page-sidebar.light-sidebar .sidebar-menu li a:hover + ul { + background-color: #e6edef !important; } + +.page-wrapper.horizontal-wrapper .page-body-wrapper.sidebar-icon .page-sidebar.light-sidebar .sidebar-menu li ul li:hover .sidebar-submenu { + background-color: #e6edef !important; } + +.page-wrapper.horizontal-wrapper .page-body-wrapper.sidebar-icon .page-sidebar.color1-sidebar .sidebar-menu li:hover .single-header { + background-color: #405365 !important; } + +.page-wrapper.horizontal-wrapper .page-body-wrapper.sidebar-icon .page-sidebar.color1-sidebar .sidebar-menu li:hover .sidebar-submenu { + background-color: #405365 !important; } + +.page-wrapper.horizontal-wrapper .page-body-wrapper.sidebar-icon .page-sidebar.color1-sidebar .sidebar-menu li a:hover + ul { + background-color: #405365 !important; } + +.page-wrapper.horizontal-wrapper .page-body-wrapper.sidebar-icon .page-sidebar.color1-sidebar .sidebar-menu li ul li:hover .sidebar-submenu { + background-color: #405365 !important; } + +.page-wrapper.horizontal-wrapper .page-body-wrapper.sidebar-icon .page-sidebar.color2-sidebar .sidebar-menu li:hover .single-header { + background-color: #1C1D1E !important; } + +.page-wrapper.horizontal-wrapper .page-body-wrapper.sidebar-icon .page-sidebar.color2-sidebar .sidebar-menu li:hover .sidebar-submenu { + background-color: #1C1D1E !important; } + +.page-wrapper.horizontal-wrapper .page-body-wrapper.sidebar-icon .page-sidebar.color2-sidebar .sidebar-menu li a:hover + ul { + background-color: #1C1D1E !important; } + +.page-wrapper.horizontal-wrapper .page-body-wrapper.sidebar-icon .page-sidebar.color2-sidebar .sidebar-menu li ul li:hover .sidebar-submenu { + background-color: #1C1D1E !important; } + +.page-wrapper.horizontal-wrapper .page-body-wrapper.sidebar-icon .page-sidebar.color3-sidebar .sidebar-menu li:hover .single-header { + background-color: #0c0c3c !important; } + +.page-wrapper.horizontal-wrapper .page-body-wrapper.sidebar-icon .page-sidebar.color3-sidebar .sidebar-menu li:hover .sidebar-submenu { + background-color: #0c0c3c !important; } + +.page-wrapper.horizontal-wrapper .page-body-wrapper.sidebar-icon .page-sidebar.color3-sidebar .sidebar-menu li a:hover + ul { + background-color: #0c0c3c !important; } + +.page-wrapper.horizontal-wrapper .page-body-wrapper.sidebar-icon .page-sidebar.color3-sidebar .sidebar-menu li ul li:hover .sidebar-submenu { + background-color: #0c0c3c !important; } + +.page-wrapper.horizontal-wrapper .page-body-wrapper.sidebar-icon .page-sidebar.color4-sidebar .sidebar-menu li:hover .single-header { + background-color: #0747a6 !important; } + +.page-wrapper.horizontal-wrapper .page-body-wrapper.sidebar-icon .page-sidebar.color4-sidebar .sidebar-menu li:hover .sidebar-submenu { + background-color: #0747a6 !important; } + +.page-wrapper.horizontal-wrapper .page-body-wrapper.sidebar-icon .page-sidebar.color4-sidebar .sidebar-menu li a:hover + ul { + background-color: #0747a6 !important; } + +.page-wrapper.horizontal-wrapper .page-body-wrapper.sidebar-icon .page-sidebar.color4-sidebar .sidebar-menu li ul li:hover .sidebar-submenu { + background-color: #0747a6 !important; } + +.page-wrapper.horizontal-wrapper .page-body-wrapper.sidebar-icon .page-sidebar.color5-sidebar .sidebar-menu li:hover .single-header { + background-color: #4d3096 !important; } + +.page-wrapper.horizontal-wrapper .page-body-wrapper.sidebar-icon .page-sidebar.color5-sidebar .sidebar-menu li:hover .sidebar-submenu { + background-color: #4d3096 !important; } + +.page-wrapper.horizontal-wrapper .page-body-wrapper.sidebar-icon .page-sidebar.color5-sidebar .sidebar-menu li a:hover + ul { + background-color: #4d3096 !important; } + +.page-wrapper.horizontal-wrapper .page-body-wrapper.sidebar-icon .page-sidebar.color5-sidebar .sidebar-menu li ul li:hover .sidebar-submenu { + background-color: #4d3096 !important; } + +body.light-only .page-wrapper.horizontal-wrapper .page-body-wrapper .page-body { + background-color: #fdfeff; } + body.light-only .page-wrapper.horizontal-wrapper .page-body-wrapper .page-body ul.the-icons li { + color: #000; + display: inline-block; + padding: 10px; } + body.light-only .page-wrapper.horizontal-wrapper .page-body-wrapper .page-body ul.the-icons li:hover { + background: #000; + -webkit-box-shadow: 0 0 3px #111727; + box-shadow: 0 0 3px #111727; + color: #fff; } + body.light-only .page-wrapper.horizontal-wrapper .page-body-wrapper .page-body ul.the-icons li em { + display: none; } + +body.dark-only { + color: rgba(255, 255, 255, 0.7); + background-color: #202938; } + body.dark-only .blog-box h6 { + color: #fff; } + body.dark-only .blog-box .blog-details-second .detail-footer { + border-top: 1px solid #202938; } + body.dark-only .blog-box .blog-details-second .detail-footer ul.sociyal-list li:nth-child(n+2) { + border-left: 1px solid #202938; } + body.dark-only a.cke_button { + -webkit-filter: brightness(0) invert(1); + filter: brightness(0) invert(1); } + body.dark-only .cke_combo_text { + color: #fff; } + body.dark-only .job-search .job-description { + border-top: 1px solid #202938; } + body.dark-only .job-sidebar .job-left-aside { + background-color: #111727; + border-color: rgba(36, 105, 92, 0.2); } + body.dark-only .job-search .job-description .theme-form { + border-bottom: 1px solid #202938; } + body.dark-only .categories ul li:hover { + background-color: #202938; } + body.dark-only .blog-list .blog-details h6 { + color: #fff; } + body.dark-only .default-according .card-header { + background-color: #111727 !important; } + body.dark-only .login-form { + background-color: #202938; } + body.dark-only .login-form .login-social-title h5 { + background-color: #202938; } + body.dark-only .calendar-basic .tui-full-calendar-month-dayname span { + color: #fff !important; } + body.dark-only .tui-full-calendar-weekday-schedule.tui-full-calendar-weekday-schedule-time .tui-full-calendar-weekday-schedule-title, + body.dark-only .tui-full-calendar-weekday-grid-line .tui-full-calendar-weekday-grid-date { + color: rgba(255, 255, 255, 0.8) !important; } + body.dark-only .tui-full-calendar-dropdown-menu-item .tui-full-calendar-content { + color: #000; } + body.dark-only .tui-full-calendar-weekday-border { + border-top: 1px solid #98a6ad !important; } + body.dark-only .tui-full-calendar-month-dayname { + border-top-color: #98a6ad !important; } + body.dark-only .tui-full-calendar-layout { + background-color: #202938 !important; } + body.dark-only .calendar-basic #menu-navi { + border-bottom: 1px solid #202938; } + body.dark-only .social-app-profile .card .socialprofile span .badge { + background-color: #202938; + color: #fff; } + body.dark-only .social-list .media .media-body span { + color: inherit; } + body.dark-only .edit-profile .profile-title { + border-bottom: 1px solid #202938; } + body.dark-only .search-list .nav-item .nav-link { + color: #fff; + opacity: 1; } + body.dark-only .search-list .nav-item .nav-link.active { + text-shadow: 0px 0px #fff; } + body.dark-only .datepicker--pointer { + background: #111727; + border-top: 1px solid #202938; + border-right: 1px solid #202938; } + body.dark-only .form-label { + color: inherit; } + body.dark-only .txt-success { + color: rgba(255, 255, 255, 0.7) !important; } + body.dark-only .project-box .details div { + opacity: 1; } + body.dark-only .project-box p { + color: rgba(255, 255, 255, 0.7); } + body.dark-only .checkout label { + color: inherit; } + body.dark-only .prooduct-details-box .product-name h6 { + color: rgba(255, 255, 255, 0.7); } + body.dark-only .product-box .product-img .product-hover ul li a { + color: #fff; } + body.dark-only .border-tab.nav-left .nav-link { + color: #fff; } + body.dark-only .order-history table .qty-box { + background-color: #111727; } + body.dark-only .product-box { + background-color: #111727; } + body.dark-only .product-box .product-details h4 { + color: #efefef; } + body.dark-only .flot-chart-placeholder .legend table { + color: #fff !important; } + body.dark-only .compact-wrapper tbody { + background-color: #202938; } + body.dark-only .dashboard-default-sec .card .card-header p, body.dark-only .dashboard-2-main .card .card-header p { + color: rgba(255, 255, 255, 0.7); } + body.dark-only .dashboard-default-sec .card .card-header ul.week-date li, body.dark-only .dashboard-2-main .card .card-header ul.week-date li { + color: rgba(255, 255, 255, 0.7); } + body.dark-only .dashboard-default-sec .card .card-header ul.week-date li:nth-child(n+2), body.dark-only .dashboard-2-main .card .card-header ul.week-date li:nth-child(n+2) { + border-color: rgba(36, 105, 92, 0.2); } + body.dark-only .dashboard-default-sec .card.income-card .card-body .knob-block input, body.dark-only .dashboard-2-main .card.income-card .card-body .knob-block input { + color: rgba(255, 255, 255, 0.7) !important; } + body.dark-only .dashboard-default-sec .latest-update-sec table tbody tr td img, body.dark-only .dashboard-2-main .latest-update-sec table tbody tr td img { + -webkit-filter: brightness(0) invert(1); + filter: brightness(0) invert(1); } + body.dark-only .dashboard-default-sec span, body.dark-only .dashboard-default-sec p, body.dark-only .dashboard-default-sec h5, body.dark-only .dashboard-default-sec h4, body.dark-only .dashboard-default-sec h5, body.dark-only .dashboard-default-sec h6, body.dark-only .dashboard-default-sec th, body.dark-only .dashboard-default-sec h3, body.dark-only .dashboard-default-sec a, body.dark-only .dashboard-2-main span, body.dark-only .dashboard-2-main p, body.dark-only .dashboard-2-main h5, body.dark-only .dashboard-2-main h4, body.dark-only .dashboard-2-main h5, body.dark-only .dashboard-2-main h6, body.dark-only .dashboard-2-main th, body.dark-only .dashboard-2-main h3, body.dark-only .dashboard-2-main a { + color: rgba(255, 255, 255, 0.7); } + body.dark-only .dashboard-default-sec .recent-order-sec table tr td p, body.dark-only .dashboard-2-main .recent-order-sec table tr td p { + color: rgba(255, 255, 255, 0.7); } + body.dark-only .setting-list { + background-color: #111727; } + body.dark-only .latest-update-sec .media img, body.dark-only .latest-update-sec .media svg { + fill: #98a6ad; } + body.dark-only .dashboard-default-sec .card .card-header ul.week-date li:nth-child(n+2) { + border-color: rgba(36, 105, 92, 0.2); } + body.dark-only .top-dealer-sec .card .top-dealerbox:hover { + background-color: #202938; } + body.dark-only .activity-sec .activity-timeline .media .activity-line { + background-color: #374558; } + body.dark-only .activity-sec .activity-timeline .media .media-body p { + color: rgba(255, 255, 255, 0.7); } + body.dark-only .activity-sec .activity-timeline.update-line .media .media-body .tomorrow-sec p { + color: rgba(255, 255, 255, 0.7); + background-color: #111727; } + body.dark-only .activity-sec .activity-timeline.update-line .media .media-body .tomorrow-sec:before { + background-color: rgba(36, 105, 92, 0.2); } + body.dark-only .activity-dot-primary { + background-color: #111727; } + body.dark-only .user-profile .profile-header .userpro-box { + background-color: #111727; } + body.dark-only .user-profile .profile-header .userpro-box h4 { + color: rgba(255, 255, 255, 0.7); } + body.dark-only .user-profile .profile-header .userpro-box .icon-wrapper { + background-color: #202938; } + body.dark-only .user-profile .follow .follow-num { + color: rgba(255, 255, 255, 0.7); } + body.dark-only .user-profile .follow ul.follow-list { + border-color: rgba(36, 105, 92, 0.2); } + body.dark-only .user-profile .follow ul.follow-list li:nth-child(n+2) { + border-color: rgba(36, 105, 92, 0.2); } + body.dark-only .user-profile .post-about ul li h5 { + color: rgba(255, 255, 255, 0.7); } + body.dark-only .user-profile .profile-post .post-header .media h5 { + color: rgba(255, 255, 255, 0.7); } + body.dark-only .user-profile .profile-post .post-body .post-react h6 { + color: rgba(255, 255, 255, 0.7); } + body.dark-only .user-profile .profile-post .post-body .post-react p { + color: #98a6ad; } + body.dark-only .social-tab .input-group .form-control { + border-color: rgba(36, 105, 92, 0.2); } + body.dark-only .cal-date-widget .datepicker { + background-color: rgba(36, 105, 92, 0.2); + border: none; } + body.dark-only .cal-date-widget .datepicker .datepicker--cell-day { + color: #fff; } + body.dark-only .datepicker--day-name { + color: #24695c; } + body.dark-only .product-social li a { + border-color: rgba(36, 105, 92, 0.2); } + body.dark-only .page-wrapper .page-body-wrapper .page-body .widget-joins:before, body.dark-only .page-wrapper .page-body-wrapper .page-body .widget-joins:after, body.dark-only .compact-wrapper .page-body-wrapper .page-body .widget-joins:before, body.dark-only .compact-wrapper .page-body-wrapper .page-body .widget-joins:after { + background-color: rgba(36, 105, 92, 0.2) !important; } + body.dark-only .page-wrapper.compact-wrapper .page-body-wrapper header.main-nav .sidebar-main-title > div, body.dark-only .compact-wrapper.compact-wrapper .page-body-wrapper header.main-nav .sidebar-main-title > div { + border-color: rgba(36, 105, 92, 0.2); } + body.dark-only .page-wrapper.compact-wrapper .page-body-wrapper header.main-nav .sidebar-main-title > div p, body.dark-only .compact-wrapper.compact-wrapper .page-body-wrapper header.main-nav .sidebar-main-title > div p { + color: rgba(255, 255, 255, 0.7); } + body.dark-only .page-wrapper.compact-wrapper .page-body-wrapper header.main-nav .main-navbar .nav-menu > li .nav-link svg, body.dark-only .compact-wrapper.compact-wrapper .page-body-wrapper header.main-nav .main-navbar .nav-menu > li .nav-link svg { + color: rgba(255, 255, 255, 0.7) !important; } + body.dark-only .page-wrapper .product-page-main thead, body.dark-only .page-wrapper .product-page-main tbody, body.dark-only .page-wrapper .product-page-main tfoot, body.dark-only .page-wrapper .product-page-main tr, body.dark-only .page-wrapper .product-page-main td, body.dark-only .page-wrapper .product-page-main th, body.dark-only .compact-wrapper .product-page-main thead, body.dark-only .compact-wrapper .product-page-main tbody, body.dark-only .compact-wrapper .product-page-main tfoot, body.dark-only .compact-wrapper .product-page-main tr, body.dark-only .compact-wrapper .product-page-main td, body.dark-only .compact-wrapper .product-page-main th { + border-color: transparent; + background-color: transparent; } + body.dark-only .page-wrapper .product-page-main p, body.dark-only .compact-wrapper .product-page-main p { + color: #98a6ad; } + body.dark-only .page-wrapper thead, body.dark-only .page-wrapper tbody, body.dark-only .page-wrapper tfoot, body.dark-only .page-wrapper tr, body.dark-only .page-wrapper td, body.dark-only .page-wrapper th, body.dark-only .compact-wrapper thead, body.dark-only .compact-wrapper tbody, body.dark-only .compact-wrapper tfoot, body.dark-only .compact-wrapper tr, body.dark-only .compact-wrapper td, body.dark-only .compact-wrapper th { + border-color: rgba(36, 105, 92, 0.2); } + body.dark-only .testimonial i { + color: #24695c !important; } + body.dark-only .blockquote { + border-color: rgba(36, 105, 92, 0.2); } + body.dark-only .datepicker, body.dark-only .daterangepicker { + background-color: #111727; + border-color: rgba(36, 105, 92, 0.2); } + body.dark-only .daterangepicker:after { + border-bottom-color: rgba(36, 105, 92, 0.2); } + body.dark-only .daterangepicker .input-mini.active { + border: 1px solid #202938; } + body.dark-only .daterangepicker .calendar-table { + background-color: #111727; + border: none; } + body.dark-only .daterangepicker.dropdown-menu { + background-color: #111727; } + body.dark-only .datepicker--nav { + border-color: rgba(36, 105, 92, 0.2); } + body.dark-only .datepicker--cell-day { + color: rgba(255, 255, 255, 0.7); } + body.dark-only .datepicker--cell-day.-other-month-, body.dark-only .datepicker--cell-day .-other-decade-, body.dark-only .datepicker--cell-year.-other-month-, body.dark-only .datepicker--cell-year .-other-decade- { + color: #98a6ad; } + body.dark-only .date-range-picker .daterange-card { + border-color: rgba(36, 105, 92, 0.2); } + body.dark-only .daterangepicker td.off, body.dark-only .daterangepicker td.in-range, body.dark-only .daterangepicker td.start-date, body.dark-only .daterangepicker td.end-date { + background-color: #202938; + color: rgba(255, 255, 255, 0.7); } + body.dark-only .daterangepicker .input-mini { + border-color: rgba(36, 105, 92, 0.2) !important; + background-color: #111727; } + body.dark-only .daterangepicker.ltr .calendar-time select { + background-color: #111727; + border-color: rgba(36, 105, 92, 0.2); } + body.dark-only .ranges li { + background-color: #111727; + border-color: rgba(36, 105, 92, 0.2); } + body.dark-only .f1 .f1-steps .f1-progress { + background-color: #202938; } + body.dark-only .f1 .f1-steps .f1-step .f1-step-icon { + background-color: #202938; } + body.dark-only .f1 .f1-steps .f1-step.active .f1-step-icon { + background-color: #24695c; } + body.dark-only .b-b-info { + border-color: rgba(36, 105, 92, 0.2) !important; } + body.dark-only .main-navbar ul.nav-pills { + border-color: rgba(36, 105, 92, 0.2); } + body.dark-only .main-navbar ul.nav-pills .nav-item:last-child { + border-color: rgba(36, 105, 92, 0.2); } + body.dark-only .main-navbar ul.nav-pills .nav-item .nav-link { + color: rgba(255, 255, 255, 0.7); } + body.dark-only .messanger-chat .chat .message-main p { + color: rgba(36, 105, 92, 0.2); } + body.dark-only .project-list .border-tab { + border: none !important; } + body.dark-only .project-list .border-tab.nav-tabs .nav-item .nav-link { + border: none; } + body.dark-only .project-box { + background-color: #202938; + border-color: rgba(36, 105, 92, 0.2); } + body.dark-only .file-content .form-control-plaintext { + color: rgba(255, 255, 255, 0.7); } + body.dark-only .file-content .form-control-plaintext:focus { + color: rgba(255, 255, 255, 0.7); } + body.dark-only .file-content .form-inline { + border-color: rgba(36, 105, 92, 0.2); } + body.dark-only .file-content .files .file-box { + border-color: rgba(36, 105, 92, 0.2); } + body.dark-only .file-content .files .file-box .file-top { + background-color: #202938; + border-color: #202938; } + body.dark-only .file-content .folder .folder-box { + border-color: rgba(36, 105, 92, 0.2); } + body.dark-only .file-manager > h6 { + color: rgba(255, 255, 255, 0.7); } + body.dark-only .file-sidebar .pricing-plan { + border-color: rgba(36, 105, 92, 0.2); } + body.dark-only .file-sidebar .pricing-plan h6 { + color: rgba(255, 255, 255, 0.7); } + body.dark-only .file-sidebar .pricing-plan p { + color: #98a6ad; } + body.dark-only .kanban-board { + background-color: #202938; } + body.dark-only .kanban-item .kanban-box { + border-color: rgba(36, 105, 92, 0.2); + background-color: #202938; } + body.dark-only .kanban-container footer { + border: none !important; } + body.dark-only .apexcharts-gridline { + stroke: rgba(36, 105, 92, 0.2); } + body.dark-only .apexcharts-tooltip-title, body.dark-only .apexcharts-tooltip-series-group, body.dark-only .apexcharts-tooltip.light, body.dark-only .apexcharts-menu-item { + background-color: #202938 !important; } + body.dark-only .activity-sec .activity-timeline.update-line .media .media-body h5 { + color: rgba(255, 255, 255, 0.8); } + body.dark-only .page-main-header .main-header-right { + -webkit-box-shadow: 0 0 18px 3px #111727; + box-shadow: 0 0 18px 3px #111727; } + body.dark-only .page-main-header .main-header-right .nav-right.right-menu ul li:nth-child(2) { + border-left: 1px solid #202938; + border-right: 1px solid #202938; } + body.dark-only .page-main-header .main-header-right .nav-right .bookmark-dropdown ul li:hover { + background-color: #202938; } + body.dark-only .page-main-header .main-header-right .main-header-left { + border-right: 1px solid rgba(36, 105, 92, 0.2); + border-color: rgba(36, 105, 92, 0.2); } + body.dark-only .page-main-header .main-header-right .main-header-left .logo-wrapper { + display: none; } + body.dark-only .page-main-header .main-header-right .main-header-left .dark-logo-wrapper { + display: block; } + body.dark-only .page-main-header .main-header-right .left-menu-header ul li .search-form input::-webkit-input-placeholder { + color: rgba(255, 255, 255, 0.7); } + body.dark-only .page-main-header .main-header-right .left-menu-header ul li .search-form input::-moz-placeholder { + color: rgba(255, 255, 255, 0.7); } + body.dark-only .page-main-header .main-header-right .left-menu-header ul li .search-form input:-ms-input-placeholder { + color: rgba(255, 255, 255, 0.7); } + body.dark-only .page-main-header .main-header-right .left-menu-header ul li .search-form input::-ms-input-placeholder { + color: rgba(255, 255, 255, 0.7); } + body.dark-only .page-main-header .main-header-right .left-menu-header ul li .search-form input::placeholder { + color: rgba(255, 255, 255, 0.7); } + body.dark-only .page-wrapper .page-body-wrapper { + background-color: #111727; } + body.dark-only .page-wrapper.horizontal-wrapper .page-body-wrapper.horizontal-menu header.main-nav { + background-color: #111727; + border-color: rgba(36, 105, 92, 0.2); } + body.dark-only .page-wrapper.horizontal-wrapper .page-body-wrapper.horizontal-menu header.main-nav .main-navbar .nav-menu > li + li { + border-color: rgba(36, 105, 92, 0.2); } + body.dark-only .page-wrapper.horizontal-wrapper .page-body-wrapper.horizontal-menu header.main-nav .main-navbar .nav-menu > li > a { + color: rgba(255, 255, 255, 0.7); } + body.dark-only .page-wrapper.horizontal-wrapper .page-body-wrapper.horizontal-menu header.main-nav .main-navbar .left-arrow, body.dark-only .page-wrapper.horizontal-wrapper .page-body-wrapper.horizontal-menu header.main-nav .main-navbar .right-arrow { + background-color: #111727; + border-color: rgba(36, 105, 92, 0.2); } + body.dark-only .page-wrapper.horizontal-wrapper .page-body-wrapper .sidebar { + -webkit-box-shadow: 0 0 11px #111727; + box-shadow: 0 0 11px #111727; } + body.dark-only .alert-primary { + background-color: rgba(36, 105, 92, 0.8) !important; + border-color: rgba(36, 105, 92, 0.9) !important; + color: #fff; } + body.dark-only .alert-primary .progress { + height: 5px; + background-color: #236559; + border-radius: 0; } + body.dark-only .alert-primary .progress-bar { + background-color: #aae2d7; } + body.dark-only .alert-primary.inverse { + background-color: transparent !important; } + body.dark-only .alert-secondary { + background-color: rgba(186, 137, 93, 0.8) !important; + border-color: rgba(186, 137, 93, 0.9) !important; + color: #fff; } + body.dark-only .alert-secondary .progress { + height: 5px; + background-color: #b88659; + border-radius: 0; } + body.dark-only .alert-secondary .progress-bar { + background-color: white; } + body.dark-only .alert-secondary.inverse { + background-color: transparent !important; } + body.dark-only .alert-success { + background-color: rgba(27, 76, 67, 0.8) !important; + border-color: rgba(27, 76, 67, 0.9) !important; + color: #fff; } + body.dark-only .alert-success .progress { + height: 5px; + background-color: #1a4840; + border-radius: 0; } + body.dark-only .alert-success .progress-bar { + background-color: #8fd7ca; } + body.dark-only .alert-success.inverse { + background-color: transparent !important; } + body.dark-only .alert-danger { + background-color: rgba(210, 45, 61, 0.8) !important; + border-color: rgba(210, 45, 61, 0.9) !important; + color: #fff; } + body.dark-only .alert-danger .progress { + height: 5px; + background-color: #ce2c3c; + border-radius: 0; } + body.dark-only .alert-danger .progress-bar { + background-color: white; } + body.dark-only .alert-danger.inverse { + background-color: transparent !important; } + body.dark-only .alert-warning { + background-color: rgba(226, 198, 54, 0.8) !important; + border-color: rgba(226, 198, 54, 0.9) !important; + color: #fff; } + body.dark-only .alert-warning .progress { + height: 5px; + background-color: #e1c532; + border-radius: 0; } + body.dark-only .alert-warning .progress-bar { + background-color: white; } + body.dark-only .alert-warning.inverse { + background-color: transparent !important; } + body.dark-only .alert-info { + background-color: rgba(113, 113, 113, 0.8) !important; + border-color: rgba(113, 113, 113, 0.9) !important; + color: #fff; } + body.dark-only .alert-info .progress { + height: 5px; + background-color: #6e6e6e; + border-radius: 0; } + body.dark-only .alert-info .progress-bar { + background-color: #f1f1f1; } + body.dark-only .alert-info.inverse { + background-color: transparent !important; } + body.dark-only .alert-light { + background-color: rgba(230, 237, 239, 0.8) !important; + border-color: rgba(230, 237, 239, 0.9) !important; + color: #fff; } + body.dark-only .alert-light .progress { + height: 5px; + background-color: #e3ebed; + border-radius: 0; } + body.dark-only .alert-light .progress-bar { + background-color: white; } + body.dark-only .alert-light.inverse { + background-color: transparent !important; } + body.dark-only .alert-dark { + background-color: rgba(44, 50, 63, 0.8) !important; + border-color: rgba(44, 50, 63, 0.9) !important; + color: #fff; } + body.dark-only .alert-dark .progress { + height: 5px; + background-color: #2a303c; + border-radius: 0; } + body.dark-only .alert-dark .progress-bar { + background-color: #a8b0c2; } + body.dark-only .alert-dark.inverse { + background-color: transparent !important; } + body.dark-only .default-according .card .card-body { + border: 1px solid rgba(36, 105, 92, 0.2); } + body.dark-only .options > div { + border: 1px solid #202938; } + body.dark-only .pricing-simple { + -webkit-box-shadow: 1px 1px 2px 1px #202938 !important; + box-shadow: 1px 1px 2px 1px #202938 !important; } + body.dark-only .pricing-block { + -webkit-box-shadow: 0 0 10px 5px rgba(36, 105, 92, 0.05) !important; + box-shadow: 0 0 10px 5px rgba(36, 105, 92, 0.05) !important; } + body.dark-only .search-page ul.search-info li + li { + border-left: 1px solid rgba(36, 105, 92, 0.2); } + body.dark-only .search-form input { + border: 1px solid rgba(36, 105, 92, 0.2); + background-color: #202938; } + body.dark-only .form-control { + background-color: #202938; + border: 1px solid rgba(36, 105, 92, 0.2); } + body.dark-only .input-group-text { + color: rgba(255, 255, 255, 0.7); } + body.dark-only .input-group-text { + border: 1px solid rgba(36, 105, 92, 0.2); + background-color: #111727; } + body.dark-only .status-circle { + border: 2px solid rgba(36, 105, 92, 0.2); } + body.dark-only .browse .browse-articles h6 { + border-bottom: 1px solid rgba(36, 105, 92, 0.2); } + body.dark-only .job-search .job-description .theme-form .row div[class^="col-"] .input-group .datepicker-here { + border: 1px solid rgba(36, 105, 92, 0.2); } + body.dark-only .calendar-wrap .fc-unthemed td, body.dark-only .calendar-wrap .fc-unthemed th { + border-color: rgba(36, 105, 92, 0.2); } + body.dark-only .mega-inline .card, body.dark-only .mega-horizontal .card { + border: 1px solid rgba(36, 105, 92, 0.2); } + body.dark-only .setting-dot .setting-bg { + background-color: #ba895d; } + body.dark-only .bookmark.pull-right { + border: none; } + body.dark-only .card .card-header h5 { + background: unset; + -webkit-text-fill-color: #fff; } + body.dark-only .timeline-circle .media .timeline-background .timeline-dot-success { + background: #202938; } + body.dark-only .timeline-circle .media .timeline-background .timeline-dot-primary { + background: #202938; } + body.dark-only .timeline-circle .media .timeline-background .timeline-dot-warning { + background: #202938; } + body.dark-only .timeline-circle .media .timeline-background .timeline-dot-secondary { + background: #202938; } + body.dark-only .timeline-circle .media .timeline-background .timeline-dot-info { + background: #202938; } + body.dark-only .timeline-circle .media p, body.dark-only .timeline-circle .media span { + color: rgba(255, 255, 255, 0.7); } + body.dark-only .apex-chart-container .apexcharts-legend .apexcharts-legend-series span { + color: rgba(255, 255, 255, 0.7) !important; } + body.dark-only .apexcharts-canvas svg .apexcharts-title-text { + fill: #fff; } + body.dark-only .apexcharts-canvas svg .apexcharts-subtitle-text { + fill: #fff; } + body.dark-only .apexcharts-canvas svg .apexcharts-yaxis .apexcharts-yaxis-texts-g .apexcharts-yaxis-label { + fill: #fff; } + body.dark-only .apexcharts-canvas svg .apexcharts-xaxis .apexcharts-xaxis-texts-g .apexcharts-xaxis-label { + fill: #fff; } + body.dark-only .apexcharts-canvas svg .apexcharts-legend-series span { + color: rgba(255, 255, 255, 0.7) !important; } + body.dark-only .apexcharts-canvas svg .apexcharts-datalabels-group .apexcharts-datalabel-label { + fill: #fff; } + body.dark-only .apexcharts-canvas svg .apexcharts-datalabels-group .apexcharts-datalabel-value { + fill: #fff; } + body.dark-only .Typeahead-menu { + background-color: #202938; } + body.dark-only .ecommerce-widget { + border: 1px solid rgba(36, 105, 92, 0.2) !important; } + body.dark-only .contact-form .theme-form { + border-color: rgba(36, 105, 92, 0.2) !important; } + body.dark-only .bookmark ul li { + border: 1px solid rgba(36, 105, 92, 0.2); + background-color: #111727; } + body.dark-only .bookmark ul li .search-form .form-control-search input { + background-color: #202938; + border: 1px solid rgba(36, 105, 92, 0.2); + color: rgba(255, 255, 255, 0.7); } + body.dark-only .bookmark ul li .search-form .form-control-search:before { + background: rgba(36, 105, 92, 0.2); } + body.dark-only .cart .qty-box .input-group .btn { + background-color: #2e3648 !important; + border-color: rgba(36, 105, 92, 0.2) !important; } + body.dark-only .checkout .checkout-details { + background-color: #202938; + border: 1px solid rgba(36, 105, 92, 0.2); + padding: 40px; } + body.dark-only .checkout .checkout-details .animate-chk .radio_animated:after { + border: 2px solid #111727; } + body.dark-only .order-box .title-box { + color: #bfc2c6; + border-bottom: 1px solid rgba(36, 105, 92, 0.2); } + body.dark-only .order-box .qty { + border-bottom: 1px solid rgba(36, 105, 92, 0.2); } + body.dark-only .order-box .qty li { + color: #bfc2c6; } + body.dark-only .order-box .qty li span { + color: #bfc2c6; } + body.dark-only .order-box .sub-total li { + color: #bfc2c6; } + body.dark-only .order-box .sub-total .shipping-class { + border-color: rgba(36, 105, 92, 0.2); } + body.dark-only .order-box .total li { + color: #bfc2c6; } + body.dark-only .shopping-checkout-option .checkbox_animated:after { + border: 2px solid #111727; } + body.dark-only .animate-chk .radio_animated:after { + border: 2px solid rgba(36, 105, 92, 0.2); } + body.dark-only .custom-scrollbar::-webkit-scrollbar-thumb { + background-color: rgba(41, 50, 64, 0.52); } + body.dark-only .product-box .product-img .product-hover ul li .btn { + color: #98a6ad; } + body.dark-only .product-box .product-img .product-hover ul li:hover .btn { + color: #fff; } + body.dark-only .radio_animated:after, body.dark-only .checkbox_animated:after { + background: #202938; + border: 2px solid #202938; } + body.dark-only .slider-product { + border-top: 1px solid rgba(36, 105, 92, 0.2); + border-bottom: 1px solid rgba(36, 105, 92, 0.2); } + body.dark-only .square-product-setting .icon-grid { + background-color: #111727; } + body.dark-only .square-product-setting .icon-grid svg { + color: rgba(255, 255, 255, 0.7); } + body.dark-only .active-order-table table thead tr th, body.dark-only .market-table table thead tr th { + border-top: none !important; } + body.dark-only .active-order-table table tbody tr td, body.dark-only .market-table table tbody tr td { + border-bottom: 1px solid rgba(36, 105, 92, 0.2); } + body.dark-only .active-order-table table tbody tr:last-child td, body.dark-only .market-table table tbody tr:last-child td { + border-bottom: none; } + body.dark-only .pricing-card-design-2 .pricing-block .pricing-inner ul li { + border-bottom: 1px solid rgba(36, 105, 92, 0.2); } + body.dark-only .flot-chart-container .legend .table tbody { + background-color: #111727; + color: #fff; } + body.dark-only .flot-chart-container .legend .table tbody .legendLabel { + padding-left: 5px; } + body.dark-only .google-visualization-tooltip text { + fill: rgba(0, 0, 0, 0.7) !important; } + body.dark-only .nav-dark .nav-link, body.dark-only .nav-pills.nav-dark .nav-link { + color: #fff; } + body.dark-only .loader-wrapper { + background-color: #202938; } + body.dark-only .loader-wrapper .loader { + background-color: #202938 !important; } + body.dark-only .page-wrapper.compact-wrapper .page-body-wrapper header.main-nav { + background-color: #111727; + border-right: 1px solid rgba(36, 105, 92, 0.2); + border-color: rgba(36, 105, 92, 0.2); } + body.dark-only .page-wrapper.compact-wrapper .page-body-wrapper header.main-nav .nav-menu > li > a { + color: rgba(255, 255, 255, 0.7); } + body.dark-only .page-wrapper.compact-wrapper .page-body-wrapper header.main-nav .nav-menu .dropdown ul.nav-submenu li:hover a { + color: #fff !important; } + body.dark-only .page-wrapper.compact-wrapper .page-body-wrapper header.main-nav .nav-menu .dropdown ul.nav-submenu li a { + color: rgba(255, 255, 255, 0.8) !important; } + body.dark-only .page-wrapper.compact-wrapper .page-body-wrapper header.main-nav .nav-menu .dropdown ul.nav-submenu li a.active { + color: #fff !important; + text-shadow: 0px 0px #fff; } + body.dark-only .page-wrapper.compact-wrapper .page-body-wrapper header.main-nav .sidebar-user { + border-color: rgba(36, 105, 92, 0.2); } + body.dark-only .page-wrapper.compact-wrapper .page-body-wrapper header.main-nav .sidebar-user ul li + li:before { + background-color: rgba(36, 105, 92, 0.2); } + body.dark-only .page-wrapper.compact-wrapper .page-body-wrapper header.main-nav .sidebar-user p { + color: rgba(255, 255, 255, 0.7); } + body.dark-only .page-wrapper.compact-wrapper .page-body-wrapper header.main-nav .main-navbar .nav-menu > li .mega-menu-container .mega-box .link-section .submenu-title h5 { + color: rgba(255, 255, 255, 0.7); } + body.dark-only .page-wrapper.compact-wrapper .page-body-wrapper header.main-nav .main-navbar .nav-menu > li .mega-menu-container .mega-box .link-section .submenu-content.opensubmegamenu ul li a { + color: rgba(255, 255, 255, 0.7); } + body.dark-only .page-wrapper.compact-wrapper .page-body-wrapper .according-menu i { + color: rgba(255, 255, 255, 0.7); } + body.dark-only .page-wrapper.compact-wrapper .page-main-header { + border-bottom: 1px solid rgba(36, 105, 92, 0.2); } + body.dark-only .page-wrapper.compact-sidebar.compact-wrapper .page-body-wrapper header.main-nav .main-navbar .nav-menu .dropdown .menu-title.active ~ .menu-content { + background-color: #111727; } + body.dark-only .btn-primary-light { + color: rgba(255, 255, 255, 0.7); } + body.dark-only .popover { + border-color: rgba(36, 105, 92, 0.2); } + body.dark-only .popover-header { + background-color: #111727; + border-color: rgba(36, 105, 92, 0.2); } + body.dark-only .popover-body { + background-color: #111727; + color: rgba(255, 255, 255, 0.7); } + body.dark-only .bs-popover-end > .popover-arrow:after, body.dark-only .bs-popover-auto[data-popper-placement^="right"] > .popover-arrow:after { + border-right-color: #202938; } + body.dark-only .bs-popover-bottom > .popover-arrow:after, body.dark-only .bs-popover-auto[data-popper-placement^="bottom"] > .popover-arrow:after { + border-right-color: #202938; } + body.dark-only .bs-popover-top > .popover-arrow:after, body.dark-only .bs-popover-auto[data-popper-placement^="top"] > .popover-arrow:after { + border-top-color: #202938; } + body.dark-only .bs-popover-start > .popover-arrow:after, body.dark-only .bs-popover-auto[data-popper-placement^="left"] > .popover-arrow:after { + border-left-color: #202938; } + body.dark-only .default-according .card .card-header { + border-color: rgba(36, 105, 92, 0.2); } + body.dark-only .border-tab.nav-tabs .nav-item .nav-link { + border-bottom: 2px solid rgba(36, 105, 92, 0.2); } + body.dark-only .border-tab.nav-tabs .nav-item .nav-link.active, body.dark-only .border-tab.nav-tabs .nav-item .nav-link.show, body.dark-only .border-tab.nav-tabs .nav-item .nav-link:focus { + border-color: #24695c; } + body.dark-only .border-tab.nav-left.nav-success .nav-link.active { + border-left: #717171; } + body.dark-only .border-tab.nav-left.nav-success .show > .nav-link { + border-left: #717171; } + body.dark-only .border-tab.nav-success .nav-item .nav-link.active, body.dark-only .border-tab.nav-success .nav-item .nav-link.show, body.dark-only .border-tab.nav-success .nav-item .nav-link:focus, body.dark-only .border-tab.nav-success .nav-item .nav-link:hover { + color: rgba(255, 255, 255, 0.7) !important; } + body.dark-only .form-control, body.dark-only .form-select { + background-color: rgba(36, 105, 92, 0.2); + border-color: rgba(36, 105, 92, 0.2); + color: rgba(255, 255, 255, 0.7); } + body.dark-only .was-validated .form-check-input:invalid, body.dark-only .form-check-input .form-check-input:invalid { + background-color: #111727; } + body.dark-only .was-validated .is-invalid, body.dark-only .form-check-input .is-invalid { + background-color: #111727; } + body.dark-only .u-pearl.error .u-pearl-icon, body.dark-only .u-pearl.error .u-pearl-number { + background-color: #111727; } + body.dark-only .docs-data .input-group-text { + color: #e6edef; } + body.dark-only .options > div { + border-color: rgba(36, 105, 92, 0.2); } + body.dark-only .progress { + background-color: #202938; } + body.dark-only .dataTables_wrapper table.dataTable tbody td, body.dark-only .dataTables_wrapper table.dataTable tbody th { + background-color: #111727; + border-color: rgba(36, 105, 92, 0.2); } + body.dark-only .dataTables_wrapper.no-footer .dataTables_scrollBody { + border-color: rgba(36, 105, 92, 0.2); } + body.dark-only .cd-timeline-content { + background-color: #111727; } + body.dark-only .calendar-wrap .fc-toolbar .fc-left .fc-prev-button .fc-icon-left-single-arrow:after, body.dark-only .calendar-wrap .fc-toolbar .fc-left .fc-prev-button .fc-icon-right-single-arrow:after, body.dark-only .calendar-wrap .fc-toolbar .fc-left .fc-next-button .fc-icon-left-single-arrow:after, body.dark-only .calendar-wrap .fc-toolbar .fc-left .fc-next-button .fc-icon-right-single-arrow:after, body.dark-only .calendar-wrap .fc-toolbar .fc-right .fc-prev-button .fc-icon-left-single-arrow:after, body.dark-only .calendar-wrap .fc-toolbar .fc-right .fc-prev-button .fc-icon-right-single-arrow:after, body.dark-only .calendar-wrap .fc-toolbar .fc-right .fc-next-button .fc-icon-left-single-arrow:after, body.dark-only .calendar-wrap .fc-toolbar .fc-right .fc-next-button .fc-icon-right-single-arrow:after { + color: rgba(255, 255, 255, 0.7); } + body.dark-only .pagination-primary .page-item .page-link { + background-color: #111727; + border-color: #202938; + color: rgba(255, 255, 255, 0.7) !important; } + body.dark-only .support-ticket .pro-gress ul li { + color: #98a6ad; } + body.dark-only .bookmark-tabcontent .tab-content .card .card-header { + border-color: rgba(36, 105, 92, 0.2); } + body.dark-only .bookmark-wrap .left-bookmark ul li a > .title { + color: rgba(255, 255, 255, 0.7); } + body.dark-only .bookmark-wrap .left-bookmark ul li button.badge-light { + background-color: rgba(36, 105, 92, 0.2); + color: #24695c; } + body.dark-only .chat-box .chat-right-aside .chat .chat-msg-box .other-message { + background-color: #111727; + border-color: rgba(36, 105, 92, 0.2); } + body.dark-only .chat-box .chat-menu { + background-color: #111727; + border-color: rgba(36, 105, 92, 0.2); } + body.dark-only .chat-box .chat-menu .user-profile .follow { + border-color: rgba(36, 105, 92, 0.2); } + body.dark-only .chat-box .chat-menu .user-profile .follow .follow-num { + color: rgba(255, 255, 255, 0.7); } + body.dark-only .chat-box .chat-menu .user-profile .image .icon-wrapper { + background-color: #202938; + -webkit-box-shadow: none; + box-shadow: none; } + body.dark-only .chat-box .chat-menu .user-profile .digits { + border-color: #202938; } + body.dark-only .social-status form .form-group .form-control-social { + background-color: #111727; + border-color: rgba(36, 105, 92, 0.2); } + body.dark-only .search-page .search-form .form-group .input-group-text { + background-color: #202938; } + body.dark-only .product-wrapper.sidebaron .product-sidebar .filter-section .card .filter-cards-view { + background-color: #111727; + border: none; } + body.dark-only .product-wrapper.sidebaron .product-sidebar .filter-section .card .left-filter { + border: none; } + body.dark-only .product-page-main .pro-group:nth-child(n+2) { + border-color: rgba(36, 105, 92, 0.2); } + body.dark-only .prooduct-details-box .media { + border-color: rgba(36, 105, 92, 0.2); } + body.dark-only .invoice .invo-header { + border-color: rgba(36, 105, 92, 0.2); } + body.dark-only .order-history table .qty-box .input-group { + border-color: rgba(36, 105, 92, 0.2); } + @media only screen and (max-width: 1199px) { + body.dark-only .sm { + background-color: #111727; + border: 1px solid rgba(36, 105, 92, 0.2); } + body.dark-only .pixelstrap .mobile-back { + border-bottom: 1px solid rgba(36, 105, 92, 0.2); } + body.dark-only .pixelstrap ul li { + border-top: 1px solid rgba(36, 105, 92, 0.2); } + body.dark-only .pixelstrap ul a { + background: #111727; } + body.dark-only .pixelstrap ul a:hover, body.dark-only .pixelstrap ul a:focus, body.dark-only .pixelstrap ul a:active { + background: #111727; } + body.dark-only .chat-menu { + border-top: 1px solid rgba(36, 105, 92, 0.2); + background-color: #111727; } + body.dark-only .error-wrapper .maintenance-icons li i { + color: #2c323f; } + body.dark-only .widget-joins .border-after-xs:after { + background-color: rgba(36, 105, 92, 0.2); } } + @media only screen and (max-width: 991px) { + body.dark-only .page-wrapper .page-main-header .main-header-right .nav-right > ul { + border-top: 1px solid rgba(36, 105, 92, 0.2); } } + body.dark-only .page-wrapper.horizontal-wrapper, body.dark-only .compact-wrapper { + /* Main Header start */ + /* Main Header ends */ } + body.dark-only .page-wrapper.horizontal-wrapper .page-main-header, body.dark-only .compact-wrapper .page-main-header { + background-color: #202938; } + body.dark-only .page-wrapper.horizontal-wrapper .page-main-header .main-header-right, body.dark-only .compact-wrapper .page-main-header .main-header-right { + background-color: #111727; + -webkit-box-shadow: 0 0 18px 3px #2a323d; + box-shadow: 0 0 18px 3px #2a323d; } + body.dark-only .page-wrapper.horizontal-wrapper .page-main-header .main-header-right li i, body.dark-only .compact-wrapper .page-main-header .main-header-right li i { + color: #e6edef; } + body.dark-only .page-wrapper.horizontal-wrapper .page-main-header .main-header-right .nav-right > ul.click-menu > li ul.submenu, body.dark-only .compact-wrapper .page-main-header .main-header-right .nav-right > ul.click-menu > li ul.submenu { + background-color: #111727; + -webkit-box-shadow: none; + box-shadow: none; } + body.dark-only .page-wrapper.horizontal-wrapper .page-main-header .main-header-right .nav-right > ul.click-menu > li ul.submenu li a, body.dark-only .compact-wrapper .page-main-header .main-header-right .nav-right > ul.click-menu > li ul.submenu li a { + color: #fff; } + body.dark-only .page-wrapper.horizontal-wrapper .page-main-header .main-header-right .nav-right > ul > li:before, body.dark-only .compact-wrapper .page-main-header .main-header-right .nav-right > ul > li:before { + background-color: #202938; } + body.dark-only .page-wrapper.horizontal-wrapper .page-main-header .main-header-right .nav-right > ul > li svg, body.dark-only .compact-wrapper .page-main-header .main-header-right .nav-right > ul > li svg { + stroke: #fff; } + body.dark-only .page-wrapper.horizontal-wrapper .page-main-header .main-header-right .nav-right > ul > li:last-child, body.dark-only .compact-wrapper .page-main-header .main-header-right .nav-right > ul > li:last-child { + border: none; } + body.dark-only .page-wrapper.horizontal-wrapper .page-main-header .main-header-right .nav-right > ul > li:first-child, body.dark-only .compact-wrapper .page-main-header .main-header-right .nav-right > ul > li:first-child { + border: none; } + body.dark-only .page-wrapper.horizontal-wrapper .page-main-header .main-header-right .nav-right .nav-menus li .media .media-body .txt-dark, body.dark-only .compact-wrapper .page-main-header .main-header-right .nav-right .nav-menus li .media .media-body .txt-dark { + color: rgba(255, 255, 255, 0.7) !important; } + body.dark-only .page-wrapper.horizontal-wrapper .page-main-header .main-header-right .nav-right .nav-menus li .onhover-show-div, body.dark-only .compact-wrapper .page-main-header .main-header-right .nav-right .nav-menus li .onhover-show-div { + background-color: #202938; + -webkit-box-shadow: 0 0 2px 2px #111727; + box-shadow: 0 0 2px 2px #111727; + border-color: rgba(36, 105, 92, 0.2); } + body.dark-only .page-wrapper.horizontal-wrapper .page-main-header .main-header-right .nav-right .nav-menus li .onhover-show-div p, body.dark-only .compact-wrapper .page-main-header .main-header-right .nav-right .nav-menus li .onhover-show-div p { + color: #fff !important; } + body.dark-only .page-wrapper.horizontal-wrapper .page-main-header .main-header-right .nav-right .nav-menus li .onhover-show-div:before, body.dark-only .compact-wrapper .page-main-header .main-header-right .nav-right .nav-menus li .onhover-show-div:before { + border-bottom: 7px solid #202938; } + body.dark-only .page-wrapper.horizontal-wrapper .page-main-header .main-header-right .nav-right .nav-menus li .onhover-show-div:after, body.dark-only .compact-wrapper .page-main-header .main-header-right .nav-right .nav-menus li .onhover-show-div:after { + border-bottom: 7px solid #202938; } + body.dark-only .page-wrapper.horizontal-wrapper .page-main-header .main-header-right .nav-right .nav-menus li .notification-dropdown.onhover-show-div li, body.dark-only .compact-wrapper .page-main-header .main-header-right .nav-right .nav-menus li .notification-dropdown.onhover-show-div li { + border-bottom: 1px solid rgba(36, 105, 92, 0.2); } + body.dark-only .page-wrapper.horizontal-wrapper .page-main-header .main-header-right .nav-right .nav-menus li .notification-dropdown.onhover-show-div li span, body.dark-only .compact-wrapper .page-main-header .main-header-right .nav-right .nav-menus li .notification-dropdown.onhover-show-div li span { + color: #98a6ad; } + body.dark-only .page-wrapper.horizontal-wrapper .page-main-header .main-header-right .nav-right .nav-menus li .notification-dropdown.onhover-show-div li:hover, body.dark-only .compact-wrapper .page-main-header .main-header-right .nav-right .nav-menus li .notification-dropdown.onhover-show-div li:hover { + background-color: #282e38; } + body.dark-only .page-wrapper.horizontal-wrapper .page-main-header .main-header-right .nav-right .nav-menus li .notification-dropdown.onhover-show-div .bg-light, body.dark-only .compact-wrapper .page-main-header .main-header-right .nav-right .nav-menus li .notification-dropdown.onhover-show-div .bg-light { + background-color: #282e38 !important; + color: rgba(255, 255, 255, 0.7) !important; } + body.dark-only .page-wrapper.horizontal-wrapper .page-main-header .main-header-right .nav-right .nav-menus li .language-dropdown li a, body.dark-only .compact-wrapper .page-main-header .main-header-right .nav-right .nav-menus li .language-dropdown li a { + color: rgba(255, 255, 255, 0.7); } + body.dark-only .page-wrapper.horizontal-wrapper .page-main-header .main-header-right .nav-right .profile-dropdown li a, body.dark-only .compact-wrapper .page-main-header .main-header-right .nav-right .profile-dropdown li a { + color: rgba(255, 255, 255, 0.7); } + body.dark-only .page-wrapper.horizontal-wrapper .page-main-header .main-header-right .nav-right .profile-dropdown li a svg path, body.dark-only .page-wrapper.horizontal-wrapper .page-main-header .main-header-right .nav-right .profile-dropdown li a svg line, body.dark-only .page-wrapper.horizontal-wrapper .page-main-header .main-header-right .nav-right .profile-dropdown li a svg circle, body.dark-only .compact-wrapper .page-main-header .main-header-right .nav-right .profile-dropdown li a svg path, body.dark-only .compact-wrapper .page-main-header .main-header-right .nav-right .profile-dropdown li a svg line, body.dark-only .compact-wrapper .page-main-header .main-header-right .nav-right .profile-dropdown li a svg circle { + color: rgba(255, 255, 255, 0.7) !important; } + body.dark-only .page-wrapper.horizontal-wrapper .page-main-header .main-header-right .nav-right .profile-dropdown li a:hover, body.dark-only .compact-wrapper .page-main-header .main-header-right .nav-right .profile-dropdown li a:hover { + color: #24695c; } + body.dark-only .page-wrapper.horizontal-wrapper .page-main-header .main-header-right .nav-right .profile-dropdown li a:hover svg line, body.dark-only .page-wrapper.horizontal-wrapper .page-main-header .main-header-right .nav-right .profile-dropdown li a:hover svg path, body.dark-only .page-wrapper.horizontal-wrapper .page-main-header .main-header-right .nav-right .profile-dropdown li a:hover svg circle, body.dark-only .compact-wrapper .page-main-header .main-header-right .nav-right .profile-dropdown li a:hover svg line, body.dark-only .compact-wrapper .page-main-header .main-header-right .nav-right .profile-dropdown li a:hover svg path, body.dark-only .compact-wrapper .page-main-header .main-header-right .nav-right .profile-dropdown li a:hover svg circle { + color: #24695c !important; } + body.dark-only .page-wrapper.horizontal-wrapper .page-main-header .main-header-right .nav-right > ul > li .media .media-body .txt-dark, body.dark-only .compact-wrapper .page-main-header .main-header-right .nav-right > ul > li .media .media-body .txt-dark { + color: rgba(255, 255, 255, 0.7) !important; } + body.dark-only .page-wrapper.horizontal-wrapper .page-main-header .main-header-right .nav-right > ul > li .onhover-show-div, body.dark-only .compact-wrapper .page-main-header .main-header-right .nav-right > ul > li .onhover-show-div { + background-color: #202938; + -webkit-box-shadow: 0 0 2px 2px #111727; + box-shadow: 0 0 2px 2px #111727; } + body.dark-only .page-wrapper.horizontal-wrapper .page-main-header .main-header-right .nav-right > ul > li .onhover-show-div:before, body.dark-only .compact-wrapper .page-main-header .main-header-right .nav-right > ul > li .onhover-show-div:before { + border-bottom: 7px solid #202938; } + body.dark-only .page-wrapper.horizontal-wrapper .page-main-header .main-header-right .nav-right > ul > li .onhover-show-div:after, body.dark-only .compact-wrapper .page-main-header .main-header-right .nav-right > ul > li .onhover-show-div:after { + border-bottom: 7px solid #202938; } + body.dark-only .page-wrapper.horizontal-wrapper .page-main-header .main-header-right .nav-right > ul > li .notification-dropdown.onhover-show-div li, body.dark-only .compact-wrapper .page-main-header .main-header-right .nav-right > ul > li .notification-dropdown.onhover-show-div li { + border-bottom: 1px solid rgba(36, 105, 92, 0.2); } + body.dark-only .page-wrapper.horizontal-wrapper .page-main-header .main-header-right .nav-right > ul > li .notification-dropdown.onhover-show-div li span, body.dark-only .compact-wrapper .page-main-header .main-header-right .nav-right > ul > li .notification-dropdown.onhover-show-div li span { + color: #98a6ad; } + body.dark-only .page-wrapper.horizontal-wrapper .page-main-header .main-header-right .nav-right > ul > li .language-dropdown li a, body.dark-only .compact-wrapper .page-main-header .main-header-right .nav-right > ul > li .language-dropdown li a { + color: rgba(255, 255, 255, 0.7); } + body.dark-only .page-wrapper.horizontal-wrapper .page-main-header .main-header-right .nav-right .chat-dropdown li, body.dark-only .page-wrapper.horizontal-wrapper .page-main-header .main-header-right .nav-right .notification-dropdown li, body.dark-only .compact-wrapper .page-main-header .main-header-right .nav-right .chat-dropdown li, body.dark-only .compact-wrapper .page-main-header .main-header-right .nav-right .notification-dropdown li { + color: #fff; } + body.dark-only .page-wrapper.horizontal-wrapper .page-main-header .main-header-right .nav-right .chat-dropdown li + li, body.dark-only .page-wrapper.horizontal-wrapper .page-main-header .main-header-right .nav-right .notification-dropdown li + li, body.dark-only .compact-wrapper .page-main-header .main-header-right .nav-right .chat-dropdown li + li, body.dark-only .compact-wrapper .page-main-header .main-header-right .nav-right .notification-dropdown li + li { + border-top: 1px solid rgba(36, 105, 92, 0.2); } + body.dark-only .page-wrapper.horizontal-wrapper .page-main-header .main-header-right .mega-menu-header .vertical-menu-main .main-nav .main-menu li, body.dark-only .compact-wrapper .page-main-header .main-header-right .mega-menu-header .vertical-menu-main .main-nav .main-menu li { + background-color: #111727; } + body.dark-only .page-wrapper.horizontal-wrapper .page-main-header .main-header-right .left-menu-header ul li .search-form input, body.dark-only .compact-wrapper .page-main-header .main-header-right .left-menu-header ul li .search-form input { + color: rgba(255, 255, 255, 0.7); } + body.dark-only .page-wrapper.horizontal-wrapper .page-main-header .main-header-left, body.dark-only .compact-wrapper .page-main-header .main-header-left { + background-color: #111727; } + body.dark-only .page-wrapper.horizontal-wrapper .page-main-header .main-header-left .logo-wrapper a .image-dark, body.dark-only .compact-wrapper .page-main-header .main-header-left .logo-wrapper a .image-dark { + display: none; } + body.dark-only .page-wrapper.horizontal-wrapper .page-main-header .main-header-left .logo-wrapper a .image-light, body.dark-only .compact-wrapper .page-main-header .main-header-left .logo-wrapper a .image-light { + display: block; } + @media only screen and (max-width: 991px) { + body.dark-only .page-wrapper.horizontal-wrapper .page-main-header .main-header-right .nav-right > ul, body.dark-only .compact-wrapper .page-main-header .main-header-right .nav-right > ul { + background-color: #111727; + -webkit-box-shadow: 0 2px 2px 2px rgba(36, 105, 92, 0.2); + box-shadow: 0 2px 2px 2px rgba(36, 105, 92, 0.2); } } + body.dark-only .page-wrapper.horizontal-wrapper .page-body-wrapper, body.dark-only .compact-wrapper .page-body-wrapper { + /* body start*/ } + body.dark-only .page-wrapper.horizontal-wrapper .page-body-wrapper .page-body .topper-lists table tbody tr td p, body.dark-only .compact-wrapper .page-body-wrapper .page-body .topper-lists table tbody tr td p { + color: #98a6ad; } + body.dark-only .page-wrapper.horizontal-wrapper .page-body-wrapper .page-body .header-small, body.dark-only .compact-wrapper .page-body-wrapper .page-body .header-small { + color: #98a6ad; } + body.dark-only .page-wrapper.horizontal-wrapper .page-body-wrapper .page-body .statistics p, body.dark-only .compact-wrapper .page-body-wrapper .page-body .statistics p { + color: #98a6ad; } + body.dark-only .page-wrapper.horizontal-wrapper .page-body-wrapper .page-body .feather-main .media-body p, body.dark-only .page-wrapper.horizontal-wrapper .page-body-wrapper .page-body .feather-main .professor-block p, body.dark-only .page-wrapper.horizontal-wrapper .page-body-wrapper .page-body .professor-table .media-body p, body.dark-only .page-wrapper.horizontal-wrapper .page-body-wrapper .page-body .professor-table .professor-block p, body.dark-only .compact-wrapper .page-body-wrapper .page-body .feather-main .media-body p, body.dark-only .compact-wrapper .page-body-wrapper .page-body .feather-main .professor-block p, body.dark-only .compact-wrapper .page-body-wrapper .page-body .professor-table .media-body p, body.dark-only .compact-wrapper .page-body-wrapper .page-body .professor-table .professor-block p { + color: #98a6ad; } + body.dark-only .page-wrapper.horizontal-wrapper .page-body-wrapper .page-body .logs-element span + span, body.dark-only .compact-wrapper .page-body-wrapper .page-body .logs-element span + span { + color: #98a6ad; } + body.dark-only .page-wrapper.horizontal-wrapper .page-body-wrapper .page-body .progress-block .progress-title span + span, body.dark-only .compact-wrapper .page-body-wrapper .page-body .progress-block .progress-title span + span { + color: #98a6ad; } + body.dark-only .page-wrapper.horizontal-wrapper .page-body-wrapper .page-body .ecommerce-icons div span, body.dark-only .compact-wrapper .page-body-wrapper .page-body .ecommerce-icons div span { + color: #98a6ad; } + body.dark-only .page-wrapper.horizontal-wrapper .page-body-wrapper .page-body .new-users .media .media-body p, body.dark-only .page-wrapper.horizontal-wrapper .page-body-wrapper .page-body .recent-notification .media .media-body p, body.dark-only .compact-wrapper .page-body-wrapper .page-body .new-users .media .media-body p, body.dark-only .compact-wrapper .page-body-wrapper .page-body .recent-notification .media .media-body p { + color: #98a6ad; } + body.dark-only .page-wrapper.horizontal-wrapper .page-body-wrapper .page-body .progress-media .media .media-body span, body.dark-only .compact-wrapper .page-body-wrapper .page-body .progress-media .media .media-body span { + color: #98a6ad; } + body.dark-only .page-wrapper.horizontal-wrapper .page-body-wrapper .page-body .progress-media .progress-change span, body.dark-only .compact-wrapper .page-body-wrapper .page-body .progress-media .progress-change span { + color: #98a6ad; } + body.dark-only .page-wrapper.horizontal-wrapper .page-body-wrapper .page-body .topper-lists table tbody tr td, body.dark-only .compact-wrapper .page-body-wrapper .page-body .topper-lists table tbody tr td { + border-top: none !important; } + body.dark-only .page-wrapper.horizontal-wrapper .page-body-wrapper .page-body .topper-lists table tbody tr:last-child td, body.dark-only .compact-wrapper .page-body-wrapper .page-body .topper-lists table tbody tr:last-child td { + border-bottom: none; } + body.dark-only .page-wrapper.horizontal-wrapper .page-body-wrapper .page-body .notifiaction-media .media .media-body .circle-left, body.dark-only .compact-wrapper .page-body-wrapper .page-body .notifiaction-media .media .media-body .circle-left { + border: 5px solid #334154; } + body.dark-only .page-wrapper.horizontal-wrapper .page-body-wrapper .page-body .upcoming-event .upcoming-innner, body.dark-only .compact-wrapper .page-body-wrapper .page-body .upcoming-event .upcoming-innner { + border-bottom: 1px solid rgba(36, 105, 92, 0.2); } + body.dark-only .page-wrapper.horizontal-wrapper .page-body-wrapper .page-body .upcoming-event .upcoming-innner:last-child, body.dark-only .compact-wrapper .page-body-wrapper .page-body .upcoming-event .upcoming-innner:last-child { + border-bottom: none; } + body.dark-only .page-wrapper.horizontal-wrapper .page-body-wrapper .page-body .professor-table table tbody tr td, body.dark-only .compact-wrapper .page-body-wrapper .page-body .professor-table table tbody tr td { + border-top: none !important; } + body.dark-only .page-wrapper.horizontal-wrapper .page-body-wrapper .page-body .number-widgets .media .media-body h6, body.dark-only .compact-wrapper .page-body-wrapper .page-body .number-widgets .media .media-body h6 { + color: rgba(255, 255, 255, 0.7); } + body.dark-only .page-wrapper.horizontal-wrapper .page-body-wrapper .page-body .activity .media .gradient-round.gradient-line-1:after, body.dark-only .page-wrapper.horizontal-wrapper .page-body-wrapper .page-body .activity .media .gradient-round.small-line:after, body.dark-only .page-wrapper.horizontal-wrapper .page-body-wrapper .page-body .activity .media .gradient-round.medium-line:after, body.dark-only .compact-wrapper .page-body-wrapper .page-body .activity .media .gradient-round.gradient-line-1:after, body.dark-only .compact-wrapper .page-body-wrapper .page-body .activity .media .gradient-round.small-line:after, body.dark-only .compact-wrapper .page-body-wrapper .page-body .activity .media .gradient-round.medium-line:after { + background-color: rgba(36, 105, 92, 0.2); } + body.dark-only .page-wrapper.horizontal-wrapper .page-body-wrapper .page-body .activity .media .media-body h6 span, body.dark-only .compact-wrapper .page-body-wrapper .page-body .activity .media .media-body h6 span { + color: #98a6ad; } + body.dark-only .page-wrapper.horizontal-wrapper .page-body-wrapper .page-body .card.custom-card .card-header, body.dark-only .compact-wrapper .page-body-wrapper .page-body .card.custom-card .card-header { + border-bottom: none !important; } + body.dark-only .page-wrapper.horizontal-wrapper .page-body-wrapper .custom-card .card-header img, body.dark-only .compact-wrapper .page-body-wrapper .custom-card .card-header img { + background-color: #000; + opacity: 0.8; } + body.dark-only .page-wrapper.horizontal-wrapper .page-body-wrapper .custom-card .profile-details h4, body.dark-only .compact-wrapper .page-body-wrapper .custom-card .profile-details h4 { + color: rgba(255, 255, 255, 0.7); } + body.dark-only .page-wrapper.horizontal-wrapper .page-body-wrapper .page-header .row h3 small, body.dark-only .compact-wrapper .page-body-wrapper .page-header .row h3 small { + color: #98a6ad; } + body.dark-only .page-wrapper.horizontal-wrapper .page-body-wrapper .page-header .breadcrumb li, body.dark-only .compact-wrapper .page-body-wrapper .page-header .breadcrumb li { + color: rgba(255, 255, 255, 0.7); } + body.dark-only .page-wrapper.horizontal-wrapper .page-body-wrapper .page-header .breadcrumb-item a, body.dark-only .compact-wrapper .page-body-wrapper .page-header .breadcrumb-item a { + color: rgba(255, 255, 255, 0.7); } + body.dark-only .page-wrapper.horizontal-wrapper .page-body-wrapper .page-header .breadcrumb-item.active, body.dark-only .compact-wrapper .page-body-wrapper .page-header .breadcrumb-item.active { + color: #98a6ad; } + body.dark-only .page-wrapper.horizontal-wrapper .page-body-wrapper .page-body, body.dark-only .compact-wrapper .page-body-wrapper .page-body { + background-color: #202938; + /* body end*/ } + body.dark-only .page-wrapper.horizontal-wrapper .page-body-wrapper .page-body .card, body.dark-only .compact-wrapper .page-body-wrapper .page-body .card { + background-color: #111727; + -webkit-box-shadow: 1px 1px 2px 1px rgba(29, 28, 28, 0.08); + box-shadow: 1px 1px 2px 1px rgba(29, 28, 28, 0.08); + border: 1px solid rgba(36, 105, 92, 0.2); } + body.dark-only .page-wrapper.horizontal-wrapper .page-body-wrapper .page-body .card .chart-block #bar-chart2 svg > rect, body.dark-only .compact-wrapper .page-body-wrapper .page-body .card .chart-block #bar-chart2 svg > rect { + fill: #111727; } + body.dark-only .page-wrapper.horizontal-wrapper .page-body-wrapper .page-body .card .chart-block #bar-chart2 svg > g text, body.dark-only .compact-wrapper .page-body-wrapper .page-body .card .chart-block #bar-chart2 svg > g text { + fill: rgba(255, 255, 255, 0.7); } + body.dark-only .page-wrapper.horizontal-wrapper .page-body-wrapper .page-body .card .chart-block .word-tree svg > g > rect, body.dark-only .compact-wrapper .page-body-wrapper .page-body .card .chart-block .word-tree svg > g > rect { + fill: #111727; } + body.dark-only .page-wrapper.horizontal-wrapper .page-body-wrapper .page-body .card .chart-block .word-tree svg > g > text, body.dark-only .compact-wrapper .page-body-wrapper .page-body .card .chart-block .word-tree svg > g > text { + fill: rgba(255, 255, 255, 0.7); } + body.dark-only .page-wrapper.horizontal-wrapper .page-body-wrapper .page-body .card .card-header, body.dark-only .compact-wrapper .page-body-wrapper .page-body .card .card-header { + background-color: transparent; } + body.dark-only .page-wrapper.horizontal-wrapper .page-body-wrapper .page-body .card .card-header > span, body.dark-only .compact-wrapper .page-body-wrapper .page-body .card .card-header > span { + color: rgba(255, 255, 255, 0.7); } + body.dark-only .page-wrapper.horizontal-wrapper .page-body-wrapper .page-body .card .card-header h1, body.dark-only .page-wrapper.horizontal-wrapper .page-body-wrapper .page-body .card .card-header h2, body.dark-only .page-wrapper.horizontal-wrapper .page-body-wrapper .page-body .card .card-header h3, body.dark-only .page-wrapper.horizontal-wrapper .page-body-wrapper .page-body .card .card-header h4, body.dark-only .page-wrapper.horizontal-wrapper .page-body-wrapper .page-body .card .card-header h5, body.dark-only .page-wrapper.horizontal-wrapper .page-body-wrapper .page-body .card .card-header h6, body.dark-only .compact-wrapper .page-body-wrapper .page-body .card .card-header h1, body.dark-only .compact-wrapper .page-body-wrapper .page-body .card .card-header h2, body.dark-only .compact-wrapper .page-body-wrapper .page-body .card .card-header h3, body.dark-only .compact-wrapper .page-body-wrapper .page-body .card .card-header h4, body.dark-only .compact-wrapper .page-body-wrapper .page-body .card .card-header h5, body.dark-only .compact-wrapper .page-body-wrapper .page-body .card .card-header h6 { + color: rgba(255, 255, 255, 0.7); } + body.dark-only .page-wrapper.horizontal-wrapper .page-body-wrapper .page-body .card .card-header .card-header-right, body.dark-only .compact-wrapper .page-body-wrapper .page-body .card .card-header .card-header-right { + background-color: #111727; } + body.dark-only .page-wrapper.horizontal-wrapper .page-body-wrapper .page-body .card .card-header .card-header-right i, body.dark-only .compact-wrapper .page-body-wrapper .page-body .card .card-header .card-header-right i { + color: rgba(255, 255, 255, 0.7); } + body.dark-only .page-wrapper.horizontal-wrapper .page-body-wrapper .page-body .card .alert-dark, body.dark-only .compact-wrapper .page-body-wrapper .page-body .card .alert-dark { + color: #98a6ad; } + body.dark-only .page-wrapper.horizontal-wrapper .page-body-wrapper .page-body .card .alert-dark a, body.dark-only .compact-wrapper .page-body-wrapper .page-body .card .alert-dark a { + color: #98a6ad; } + body.dark-only .page-wrapper.horizontal-wrapper .page-body-wrapper .page-body .card .alert-light.outline, body.dark-only .page-wrapper.horizontal-wrapper .page-body-wrapper .page-body .card .alert-light.outline-2x, body.dark-only .page-wrapper.horizontal-wrapper .page-body-wrapper .page-body .card .alert-light.inverse, body.dark-only .compact-wrapper .page-body-wrapper .page-body .card .alert-light.outline, body.dark-only .compact-wrapper .page-body-wrapper .page-body .card .alert-light.outline-2x, body.dark-only .compact-wrapper .page-body-wrapper .page-body .card .alert-light.inverse { + color: rgba(255, 255, 255, 0.7); } + body.dark-only .page-wrapper.horizontal-wrapper .page-body-wrapper .page-body .card #animation-box .animate-widget p, body.dark-only .compact-wrapper .page-body-wrapper .page-body .card #animation-box .animate-widget p { + color: #98a6ad !important; } + body.dark-only .page-wrapper.horizontal-wrapper .page-body-wrapper .page-body .card .grid-item img, body.dark-only .compact-wrapper .page-body-wrapper .page-body .card .grid-item img { + background-color: #111727; + border: 1px solid rgba(36, 105, 92, 0.2); } + body.dark-only .page-wrapper.horizontal-wrapper .page-body-wrapper .page-body .card .line, body.dark-only .compact-wrapper .page-body-wrapper .page-body .card .line { + color: rgba(255, 255, 255, 0.7); } + body.dark-only .page-wrapper.horizontal-wrapper .page-body-wrapper .page-body .card .table th, body.dark-only .page-wrapper.horizontal-wrapper .page-body-wrapper .page-body .card .table td, body.dark-only .compact-wrapper .page-body-wrapper .page-body .card .table th, body.dark-only .compact-wrapper .page-body-wrapper .page-body .card .table td { + color: rgba(255, 255, 255, 0.7); } + body.dark-only .page-wrapper.horizontal-wrapper .page-body-wrapper .page-body .card .table thead th, body.dark-only .compact-wrapper .page-body-wrapper .page-body .card .table thead th { + border-bottom: 1px solid rgba(36, 105, 92, 0.2); + border-top: none; + background-color: #111727; } + body.dark-only .page-wrapper.horizontal-wrapper .page-body-wrapper .page-body .card .table thead .border-bottom-primary th, body.dark-only .compact-wrapper .page-body-wrapper .page-body .card .table thead .border-bottom-primary th { + border-bottom: 1px solid #24695c; } + body.dark-only .page-wrapper.horizontal-wrapper .page-body-wrapper .page-body .card .table .table-primary th, body.dark-only .page-wrapper.horizontal-wrapper .page-body-wrapper .page-body .card .table .table-primary td, body.dark-only .page-wrapper.horizontal-wrapper .page-body-wrapper .page-body .card .table .table-secondary th, body.dark-only .page-wrapper.horizontal-wrapper .page-body-wrapper .page-body .card .table .table-secondary td, body.dark-only .page-wrapper.horizontal-wrapper .page-body-wrapper .page-body .card .table .table-success th, body.dark-only .page-wrapper.horizontal-wrapper .page-body-wrapper .page-body .card .table .table-success td, body.dark-only .page-wrapper.horizontal-wrapper .page-body-wrapper .page-body .card .table .table-info th, body.dark-only .page-wrapper.horizontal-wrapper .page-body-wrapper .page-body .card .table .table-info td, body.dark-only .page-wrapper.horizontal-wrapper .page-body-wrapper .page-body .card .table .table-warning th, body.dark-only .page-wrapper.horizontal-wrapper .page-body-wrapper .page-body .card .table .table-warning td, body.dark-only .page-wrapper.horizontal-wrapper .page-body-wrapper .page-body .card .table .table-light th, body.dark-only .page-wrapper.horizontal-wrapper .page-body-wrapper .page-body .card .table .table-light td, body.dark-only .page-wrapper.horizontal-wrapper .page-body-wrapper .page-body .card .table .table-danger th, body.dark-only .page-wrapper.horizontal-wrapper .page-body-wrapper .page-body .card .table .table-danger td, body.dark-only .compact-wrapper .page-body-wrapper .page-body .card .table .table-primary th, body.dark-only .compact-wrapper .page-body-wrapper .page-body .card .table .table-primary td, body.dark-only .compact-wrapper .page-body-wrapper .page-body .card .table .table-secondary th, body.dark-only .compact-wrapper .page-body-wrapper .page-body .card .table .table-secondary td, body.dark-only .compact-wrapper .page-body-wrapper .page-body .card .table .table-success th, body.dark-only .compact-wrapper .page-body-wrapper .page-body .card .table .table-success td, body.dark-only .compact-wrapper .page-body-wrapper .page-body .card .table .table-info th, body.dark-only .compact-wrapper .page-body-wrapper .page-body .card .table .table-info td, body.dark-only .compact-wrapper .page-body-wrapper .page-body .card .table .table-warning th, body.dark-only .compact-wrapper .page-body-wrapper .page-body .card .table .table-warning td, body.dark-only .compact-wrapper .page-body-wrapper .page-body .card .table .table-light th, body.dark-only .compact-wrapper .page-body-wrapper .page-body .card .table .table-light td, body.dark-only .compact-wrapper .page-body-wrapper .page-body .card .table .table-danger th, body.dark-only .compact-wrapper .page-body-wrapper .page-body .card .table .table-danger td { + color: #111727; } + body.dark-only .page-wrapper.horizontal-wrapper .page-body-wrapper .page-body .card .table .bg-primary, body.dark-only .page-wrapper.horizontal-wrapper .page-body-wrapper .page-body .card .table .bg-secondary, body.dark-only .page-wrapper.horizontal-wrapper .page-body-wrapper .page-body .card .table .bg-success, body.dark-only .page-wrapper.horizontal-wrapper .page-body-wrapper .page-body .card .table .bg-info, body.dark-only .page-wrapper.horizontal-wrapper .page-body-wrapper .page-body .card .table .bg-warning, body.dark-only .page-wrapper.horizontal-wrapper .page-body-wrapper .page-body .card .table .bg-danger, body.dark-only .compact-wrapper .page-body-wrapper .page-body .card .table .bg-primary, body.dark-only .compact-wrapper .page-body-wrapper .page-body .card .table .bg-secondary, body.dark-only .compact-wrapper .page-body-wrapper .page-body .card .table .bg-success, body.dark-only .compact-wrapper .page-body-wrapper .page-body .card .table .bg-info, body.dark-only .compact-wrapper .page-body-wrapper .page-body .card .table .bg-warning, body.dark-only .compact-wrapper .page-body-wrapper .page-body .card .table .bg-danger { + color: #fff; } + body.dark-only .page-wrapper.horizontal-wrapper .page-body-wrapper .page-body .card .table .bg-light, body.dark-only .compact-wrapper .page-body-wrapper .page-body .card .table .bg-light { + color: #000; } + body.dark-only .page-wrapper.horizontal-wrapper .page-body-wrapper .page-body .card .table .thead-light th, body.dark-only .compact-wrapper .page-body-wrapper .page-body .card .table .thead-light th { + color: #000; } + body.dark-only .page-wrapper.horizontal-wrapper .page-body-wrapper .page-body .card .table .double, body.dark-only .page-wrapper.horizontal-wrapper .page-body-wrapper .page-body .card .table .dotted, body.dark-only .page-wrapper.horizontal-wrapper .page-body-wrapper .page-body .card .table .dashed, body.dark-only .compact-wrapper .page-body-wrapper .page-body .card .table .double, body.dark-only .compact-wrapper .page-body-wrapper .page-body .card .table .dotted, body.dark-only .compact-wrapper .page-body-wrapper .page-body .card .table .dashed { + border-color: rgba(36, 105, 92, 0.2); } + body.dark-only .page-wrapper.horizontal-wrapper .page-body-wrapper .page-body .card .table tbody .border-bottom-primary th, body.dark-only .page-wrapper.horizontal-wrapper .page-body-wrapper .page-body .card .table tbody .border-bottom-primary td, body.dark-only .compact-wrapper .page-body-wrapper .page-body .card .table tbody .border-bottom-primary th, body.dark-only .compact-wrapper .page-body-wrapper .page-body .card .table tbody .border-bottom-primary td { + border-bottom: 1px solid #24695c; } + body.dark-only .page-wrapper.horizontal-wrapper .page-body-wrapper .page-body .card .table > :not(:last-child) > :last-child > *, body.dark-only .compact-wrapper .page-body-wrapper .page-body .card .table > :not(:last-child) > :last-child > * { + border-color: rgba(36, 105, 92, 0.2); } + body.dark-only .page-wrapper.horizontal-wrapper .page-body-wrapper .page-body .card .table[class*='bg-'] th, body.dark-only .page-wrapper.horizontal-wrapper .page-body-wrapper .page-body .card .table[class*='bg-'] td, body.dark-only .compact-wrapper .page-body-wrapper .page-body .card .table[class*='bg-'] th, body.dark-only .compact-wrapper .page-body-wrapper .page-body .card .table[class*='bg-'] td { + color: #fff; } + body.dark-only .page-wrapper.horizontal-wrapper .page-body-wrapper .page-body .card .table-striped tbody tr:nth-of-type(odd), body.dark-only .compact-wrapper .page-body-wrapper .page-body .card .table-striped tbody tr:nth-of-type(odd) { + background-color: rgba(0, 0, 0, 0.05); } + body.dark-only .page-wrapper.horizontal-wrapper .page-body-wrapper .page-body .card .table-striped tbody tr:nth-of-type(odd):hover th, body.dark-only .page-wrapper.horizontal-wrapper .page-body-wrapper .page-body .card .table-striped tbody tr:nth-of-type(odd):hover td, body.dark-only .compact-wrapper .page-body-wrapper .page-body .card .table-striped tbody tr:nth-of-type(odd):hover th, body.dark-only .compact-wrapper .page-body-wrapper .page-body .card .table-striped tbody tr:nth-of-type(odd):hover td { + color: #fff; } + body.dark-only .page-wrapper.horizontal-wrapper .page-body-wrapper .page-body .card .table-bordered td, body.dark-only .page-wrapper.horizontal-wrapper .page-body-wrapper .page-body .card .table-bordered th, body.dark-only .compact-wrapper .page-body-wrapper .page-body .card .table-bordered td, body.dark-only .compact-wrapper .page-body-wrapper .page-body .card .table-bordered th { + border-color: rgba(36, 105, 92, 0.2) !important; } + body.dark-only .page-wrapper.horizontal-wrapper .page-body-wrapper .page-body .card .table-inverse tbody tr:nth-of-type(odd):hover td, body.dark-only .compact-wrapper .page-body-wrapper .page-body .card .table-inverse tbody tr:nth-of-type(odd):hover td { + color: rgba(255, 255, 255, 0.7); } + body.dark-only .page-wrapper.horizontal-wrapper .page-body-wrapper .page-body .card .table-border-vertical tr, body.dark-only .page-wrapper.horizontal-wrapper .page-body-wrapper .page-body .card .table-border-vertical th, body.dark-only .page-wrapper.horizontal-wrapper .page-body-wrapper .page-body .card .table-border-vertical td, body.dark-only .compact-wrapper .page-body-wrapper .page-body .card .table-border-vertical tr, body.dark-only .compact-wrapper .page-body-wrapper .page-body .card .table-border-vertical th, body.dark-only .compact-wrapper .page-body-wrapper .page-body .card .table-border-vertical td { + border-right: 1px solid rgba(36, 105, 92, 0.2); } + body.dark-only .page-wrapper.horizontal-wrapper .page-body-wrapper .page-body .card .table-styling thead th, body.dark-only .page-wrapper.horizontal-wrapper .page-body-wrapper .page-body .card .table-styling thead td, body.dark-only .page-wrapper.horizontal-wrapper .page-body-wrapper .page-body .card .table-styling tbody th, body.dark-only .page-wrapper.horizontal-wrapper .page-body-wrapper .page-body .card .table-styling tbody td, body.dark-only .compact-wrapper .page-body-wrapper .page-body .card .table-styling thead th, body.dark-only .compact-wrapper .page-body-wrapper .page-body .card .table-styling thead td, body.dark-only .compact-wrapper .page-body-wrapper .page-body .card .table-styling tbody th, body.dark-only .compact-wrapper .page-body-wrapper .page-body .card .table-styling tbody td { + color: #fff; } + body.dark-only .page-wrapper.horizontal-wrapper .page-body-wrapper .page-body .card .card-footer, body.dark-only .compact-wrapper .page-body-wrapper .page-body .card .card-footer { + background-color: #111727; + border-top: 1px solid rgba(36, 105, 92, 0.2); } + body.dark-only .page-wrapper.horizontal-wrapper .page-body-wrapper .page-body .card .switch .switch-state, body.dark-only .compact-wrapper .page-body-wrapper .page-body .card .switch .switch-state { + background-color: #202938; } + body.dark-only .page-wrapper.horizontal-wrapper .page-body-wrapper .page-body .card .switch input:checked + .switch-state, body.dark-only .compact-wrapper .page-body-wrapper .page-body .card .switch input:checked + .switch-state { + background-color: #24695c; } + body.dark-only .page-wrapper.horizontal-wrapper .page-body-wrapper .page-body .card .bg-white, body.dark-only .compact-wrapper .page-body-wrapper .page-body .card .bg-white { + background-color: #fff !important; } + body.dark-only .page-wrapper.horizontal-wrapper .page-body-wrapper .page-body .card .b-l-light, body.dark-only .compact-wrapper .page-body-wrapper .page-body .card .b-l-light { + border-left: 1px solid rgba(36, 105, 92, 0.2) !important; } + body.dark-only .page-wrapper.horizontal-wrapper .page-body-wrapper .page-body .card .ct-grid, body.dark-only .compact-wrapper .page-body-wrapper .page-body .card .ct-grid { + stroke: rgba(36, 105, 92, 0.2); } + body.dark-only .page-wrapper.horizontal-wrapper .page-body-wrapper .page-body .card .ct-label, body.dark-only .compact-wrapper .page-body-wrapper .page-body .card .ct-label { + color: #98a6ad; } + body.dark-only .page-wrapper.horizontal-wrapper .page-body-wrapper .page-body .card hr, body.dark-only .compact-wrapper .page-body-wrapper .page-body .card hr { + background-color: rgba(36, 105, 92, 0.2); } + body.dark-only .page-wrapper.horizontal-wrapper .page-body-wrapper .page-body .card .text-muted, body.dark-only .compact-wrapper .page-body-wrapper .page-body .card .text-muted { + color: rgba(255, 255, 255, 0.7) !important; } + body.dark-only .page-wrapper.horizontal-wrapper .page-body-wrapper .page-body .card .calender-widget .cal-date, body.dark-only .compact-wrapper .page-body-wrapper .page-body .card .calender-widget .cal-date { + background-color: #111727; + border: 1px solid rgba(36, 105, 92, 0.2); } + body.dark-only .page-wrapper.horizontal-wrapper .page-body-wrapper .page-body .card .contact-form .theme-form, body.dark-only .compact-wrapper .page-body-wrapper .page-body .card .contact-form .theme-form { + border: 1px solid rgba(36, 105, 92, 0.2); } + body.dark-only .page-wrapper.horizontal-wrapper .page-body-wrapper .page-body .card .contact-form .theme-form .form-icon, body.dark-only .compact-wrapper .page-body-wrapper .page-body .card .contact-form .theme-form .form-icon { + background-color: #111727; + border: 1px solid rgba(36, 105, 92, 0.2); + color: rgba(255, 255, 255, 0.7); } + body.dark-only .page-wrapper.horizontal-wrapper .page-body-wrapper .page-body .card .btn-outline-light, body.dark-only .page-wrapper.horizontal-wrapper .page-body-wrapper .page-body .card .btn-outline-dark, body.dark-only .compact-wrapper .page-body-wrapper .page-body .card .btn-outline-light, body.dark-only .compact-wrapper .page-body-wrapper .page-body .card .btn-outline-dark { + color: #fff !important; + border: 1px solid rgba(36, 105, 92, 0.2); } + body.dark-only .page-wrapper.horizontal-wrapper .page-body-wrapper .page-body .card .btn-outline-light:hover, body.dark-only .compact-wrapper .page-body-wrapper .page-body .card .btn-outline-light:hover { + color: #000 !important; } + body.dark-only .page-wrapper.horizontal-wrapper .page-body-wrapper .page-body .card .border-right, body.dark-only .compact-wrapper .page-body-wrapper .page-body .card .border-right { + border-right: 1px solid rgba(36, 105, 92, 0.2) !important; } + body.dark-only .page-wrapper.horizontal-wrapper .page-body-wrapper .page-body .card .flot-chart-placeholder .flot-text, body.dark-only .compact-wrapper .page-body-wrapper .page-body .card .flot-chart-placeholder .flot-text { + color: rgba(255, 255, 255, 0.7) !important; } + body.dark-only .page-wrapper.horizontal-wrapper .page-body-wrapper .page-body .card .flot-chart-placeholder svg text, body.dark-only .compact-wrapper .page-body-wrapper .page-body .card .flot-chart-placeholder svg text { + fill: rgba(255, 255, 255, 0.7); } + body.dark-only .page-wrapper.horizontal-wrapper .page-body-wrapper .page-body .card .chart-overflow#gantt_chart svg g rect:first-child, body.dark-only .compact-wrapper .page-body-wrapper .page-body .card .chart-overflow#gantt_chart svg g rect:first-child { + fill: #202938; } + body.dark-only .page-wrapper.horizontal-wrapper .page-body-wrapper .page-body .card .chart-overflow#gantt_chart rect:nth-child(6), body.dark-only .compact-wrapper .page-body-wrapper .page-body .card .chart-overflow#gantt_chart rect:nth-child(6) { + fill: #202938; } + body.dark-only .page-wrapper.horizontal-wrapper .page-body-wrapper .page-body .card .chart-overflow#line-chart rect, body.dark-only .page-wrapper.horizontal-wrapper .page-body-wrapper .page-body .card .chart-overflow#column-chart1 rect, body.dark-only .page-wrapper.horizontal-wrapper .page-body-wrapper .page-body .card .chart-overflow#column-chart2 rect, body.dark-only .compact-wrapper .page-body-wrapper .page-body .card .chart-overflow#line-chart rect, body.dark-only .compact-wrapper .page-body-wrapper .page-body .card .chart-overflow#column-chart1 rect, body.dark-only .compact-wrapper .page-body-wrapper .page-body .card .chart-overflow#column-chart2 rect { + fill: #111727; } + body.dark-only .page-wrapper.horizontal-wrapper .page-body-wrapper .page-body .card .chart-overflow svg > rect, body.dark-only .compact-wrapper .page-body-wrapper .page-body .card .chart-overflow svg > rect { + fill: #111727; } + body.dark-only .page-wrapper.horizontal-wrapper .page-body-wrapper .page-body .card .chart-overflow svg > g > g > g text, body.dark-only .compact-wrapper .page-body-wrapper .page-body .card .chart-overflow svg > g > g > g text { + fill: #b1b1b2; } + body.dark-only .page-wrapper.horizontal-wrapper .page-body-wrapper .page-body .card .chart-overflow svg > g > text, body.dark-only .compact-wrapper .page-body-wrapper .page-body .card .chart-overflow svg > g > text { + fill: rgba(255, 255, 255, 0.7); } + body.dark-only .page-wrapper.horizontal-wrapper .page-body-wrapper .page-body .card .radial-bar:after, body.dark-only .compact-wrapper .page-body-wrapper .page-body .card .radial-bar:after { + background-color: #111727; + color: rgba(255, 255, 255, 0.7); } + body.dark-only .page-wrapper.horizontal-wrapper .page-body-wrapper .page-body .card .bar-chart-widget .bottom-content .num, body.dark-only .compact-wrapper .page-body-wrapper .page-body .card .bar-chart-widget .bottom-content .num { + color: rgba(255, 255, 255, 0.7); } + body.dark-only .page-wrapper.horizontal-wrapper .page-body-wrapper .page-body .card .bar-chart-widget .bottom-content .num .color-bottom, body.dark-only .compact-wrapper .page-body-wrapper .page-body .card .bar-chart-widget .bottom-content .num .color-bottom { + color: rgba(255, 255, 255, 0.7); } + body.dark-only .page-wrapper.horizontal-wrapper .page-body-wrapper .page-body .card .b-r-light, body.dark-only .compact-wrapper .page-body-wrapper .page-body .card .b-r-light { + border-right: 1px solid rgba(36, 105, 92, 0.2) !important; } + body.dark-only .page-wrapper.horizontal-wrapper .page-body-wrapper .page-body .card .chart-container .live-products .ct-labels .ct-label, body.dark-only .page-wrapper.horizontal-wrapper .page-body-wrapper .page-body .card .chart-container .turnover .ct-labels .ct-label, body.dark-only .page-wrapper.horizontal-wrapper .page-body-wrapper .page-body .card .chart-container .monthly .ct-labels .ct-label, body.dark-only .page-wrapper.horizontal-wrapper .page-body-wrapper .page-body .card .chart-container .uses .ct-labels .ct-label, body.dark-only .compact-wrapper .page-body-wrapper .page-body .card .chart-container .live-products .ct-labels .ct-label, body.dark-only .compact-wrapper .page-body-wrapper .page-body .card .chart-container .turnover .ct-labels .ct-label, body.dark-only .compact-wrapper .page-body-wrapper .page-body .card .chart-container .monthly .ct-labels .ct-label, body.dark-only .compact-wrapper .page-body-wrapper .page-body .card .chart-container .uses .ct-labels .ct-label { + color: #fff; } + body.dark-only .page-wrapper.horizontal-wrapper .page-body-wrapper .page-body .card .chart-container .live-products .ct-grid, body.dark-only .page-wrapper.horizontal-wrapper .page-body-wrapper .page-body .card .chart-container .turnover .ct-grid, body.dark-only .page-wrapper.horizontal-wrapper .page-body-wrapper .page-body .card .chart-container .monthly .ct-grid, body.dark-only .page-wrapper.horizontal-wrapper .page-body-wrapper .page-body .card .chart-container .uses .ct-grid, body.dark-only .compact-wrapper .page-body-wrapper .page-body .card .chart-container .live-products .ct-grid, body.dark-only .compact-wrapper .page-body-wrapper .page-body .card .chart-container .turnover .ct-grid, body.dark-only .compact-wrapper .page-body-wrapper .page-body .card .chart-container .monthly .ct-grid, body.dark-only .compact-wrapper .page-body-wrapper .page-body .card .chart-container .uses .ct-grid { + stroke: #fff; } + body.dark-only .page-wrapper.horizontal-wrapper .page-body-wrapper .page-body .card .chart-container #browser-uses-chart svg text, body.dark-only .page-wrapper.horizontal-wrapper .page-body-wrapper .page-body .card .chart-container #website-visiter-chart svg text, body.dark-only .compact-wrapper .page-body-wrapper .page-body .card .chart-container #browser-uses-chart svg text, body.dark-only .compact-wrapper .page-body-wrapper .page-body .card .chart-container #website-visiter-chart svg text { + fill: rgba(255, 255, 255, 0.7); } + body.dark-only .page-wrapper.horizontal-wrapper .page-body-wrapper .page-body .card .status-details h4, body.dark-only .compact-wrapper .page-body-wrapper .page-body .card .status-details h4 { + color: rgba(255, 255, 255, 0.7); } + body.dark-only .page-wrapper.horizontal-wrapper .page-body-wrapper .page-body .card .status-details h4 span, body.dark-only .compact-wrapper .page-body-wrapper .page-body .card .status-details h4 span { + color: rgba(255, 255, 255, 0.7); } + body.dark-only .page-wrapper.horizontal-wrapper .page-body-wrapper .page-body .card .status-details span, body.dark-only .compact-wrapper .page-body-wrapper .page-body .card .status-details span { + color: #98a6ad; } + body.dark-only .page-wrapper.horizontal-wrapper .page-body-wrapper .page-body .card .clipboaard-container .form-control, body.dark-only .compact-wrapper .page-body-wrapper .page-body .card .clipboaard-container .form-control { + background-color: #202938; + color: #98a6ad; + border: 1px solid rgba(36, 105, 92, 0.2); } + body.dark-only .page-wrapper.horizontal-wrapper .page-body-wrapper .page-body .card .img-thumbnail, body.dark-only .compact-wrapper .page-body-wrapper .page-body .card .img-thumbnail { + background-color: rgba(36, 105, 92, 0.2); + border: 1px solid rgba(36, 105, 92, 0.2); } + body.dark-only .page-wrapper.horizontal-wrapper .page-body-wrapper .page-body .card .dataTables_wrapper button, body.dark-only .compact-wrapper .page-body-wrapper .page-body .card .dataTables_wrapper button { + color: #000; } + body.dark-only .page-wrapper.horizontal-wrapper .page-body-wrapper .page-body .card .dataTables_wrapper .btn-danger, body.dark-only .page-wrapper.horizontal-wrapper .page-body-wrapper .page-body .card .dataTables_wrapper .btn-success, body.dark-only .compact-wrapper .page-body-wrapper .page-body .card .dataTables_wrapper .btn-danger, body.dark-only .compact-wrapper .page-body-wrapper .page-body .card .dataTables_wrapper .btn-success { + color: #fff; } + body.dark-only .page-wrapper.horizontal-wrapper .page-body-wrapper .page-body .card .dataTables_wrapper .dataTables_length select, body.dark-only .compact-wrapper .page-body-wrapper .page-body .card .dataTables_wrapper .dataTables_length select { + background-color: #202938; + color: rgba(255, 255, 255, 0.7); + border: 1px solid rgba(36, 105, 92, 0.2); } + body.dark-only .page-wrapper.horizontal-wrapper .page-body-wrapper .page-body .card .dataTables_wrapper .dataTables_length, + body.dark-only .page-wrapper.horizontal-wrapper .page-body-wrapper .page-body .card .dataTables_wrapper .dataTables_filter, + body.dark-only .page-wrapper.horizontal-wrapper .page-body-wrapper .page-body .card .dataTables_wrapper .dataTables_info, + body.dark-only .page-wrapper.horizontal-wrapper .page-body-wrapper .page-body .card .dataTables_wrapper .dataTables_processing, + body.dark-only .page-wrapper.horizontal-wrapper .page-body-wrapper .page-body .card .dataTables_wrapper .dataTables_paginate, body.dark-only .compact-wrapper .page-body-wrapper .page-body .card .dataTables_wrapper .dataTables_length, + body.dark-only .compact-wrapper .page-body-wrapper .page-body .card .dataTables_wrapper .dataTables_filter, + body.dark-only .compact-wrapper .page-body-wrapper .page-body .card .dataTables_wrapper .dataTables_info, + body.dark-only .compact-wrapper .page-body-wrapper .page-body .card .dataTables_wrapper .dataTables_processing, + body.dark-only .compact-wrapper .page-body-wrapper .page-body .card .dataTables_wrapper .dataTables_paginate { + color: rgba(255, 255, 255, 0.7); } + body.dark-only .page-wrapper.horizontal-wrapper .page-body-wrapper .page-body .card .dataTables_wrapper .dataTables_paginate, body.dark-only .compact-wrapper .page-body-wrapper .page-body .card .dataTables_wrapper .dataTables_paginate { + border: 1px solid rgba(36, 105, 92, 0.2); } + body.dark-only .page-wrapper.horizontal-wrapper .page-body-wrapper .page-body .card .dataTables_wrapper .dataTables_filter input[type="search"], body.dark-only .compact-wrapper .page-body-wrapper .page-body .card .dataTables_wrapper .dataTables_filter input[type="search"] { + background-color: #202938; + border: 1px solid rgba(36, 105, 92, 0.2); + color: rgba(255, 255, 255, 0.7); } + body.dark-only .page-wrapper.horizontal-wrapper .page-body-wrapper .page-body .card .dataTables_wrapper table.dataTable.display tbody tr, body.dark-only .page-wrapper.horizontal-wrapper .page-body-wrapper .page-body .card .dataTables_wrapper table.dataTable.order-column.stripe tbody tr, body.dark-only .compact-wrapper .page-body-wrapper .page-body .card .dataTables_wrapper table.dataTable.display tbody tr, body.dark-only .compact-wrapper .page-body-wrapper .page-body .card .dataTables_wrapper table.dataTable.order-column.stripe tbody tr { + background-color: #111727; } + body.dark-only .page-wrapper.horizontal-wrapper .page-body-wrapper .page-body .card .dataTables_wrapper table.dataTable.display tbody tr:hover > .sorting_1, body.dark-only .page-wrapper.horizontal-wrapper .page-body-wrapper .page-body .card .dataTables_wrapper table.dataTable.order-column.stripe tbody tr:hover > .sorting_1, body.dark-only .compact-wrapper .page-body-wrapper .page-body .card .dataTables_wrapper table.dataTable.display tbody tr:hover > .sorting_1, body.dark-only .compact-wrapper .page-body-wrapper .page-body .card .dataTables_wrapper table.dataTable.order-column.stripe tbody tr:hover > .sorting_1 { + background-color: #1c212b; } + body.dark-only .page-wrapper.horizontal-wrapper .page-body-wrapper .page-body .card .dataTables_wrapper table.dataTable.display tbody tr.odd, body.dark-only .page-wrapper.horizontal-wrapper .page-body-wrapper .page-body .card .dataTables_wrapper table.dataTable.order-column.stripe tbody tr.odd, body.dark-only .compact-wrapper .page-body-wrapper .page-body .card .dataTables_wrapper table.dataTable.display tbody tr.odd, body.dark-only .compact-wrapper .page-body-wrapper .page-body .card .dataTables_wrapper table.dataTable.order-column.stripe tbody tr.odd { + background-color: #1f232b; } + body.dark-only .page-wrapper.horizontal-wrapper .page-body-wrapper .page-body .card .dataTables_wrapper table.dataTable.display tbody tr.odd > .sorting_1, body.dark-only .page-wrapper.horizontal-wrapper .page-body-wrapper .page-body .card .dataTables_wrapper table.dataTable.order-column.stripe tbody tr.odd > .sorting_1, body.dark-only .compact-wrapper .page-body-wrapper .page-body .card .dataTables_wrapper table.dataTable.display tbody tr.odd > .sorting_1, body.dark-only .compact-wrapper .page-body-wrapper .page-body .card .dataTables_wrapper table.dataTable.order-column.stripe tbody tr.odd > .sorting_1 { + background-color: #1c212b; } + body.dark-only .page-wrapper.horizontal-wrapper .page-body-wrapper .page-body .card .dataTables_wrapper table.dataTable.display tbody tr.even > .sorting_1, body.dark-only .page-wrapper.horizontal-wrapper .page-body-wrapper .page-body .card .dataTables_wrapper table.dataTable.order-column.stripe tbody tr.even > .sorting_1, body.dark-only .compact-wrapper .page-body-wrapper .page-body .card .dataTables_wrapper table.dataTable.display tbody tr.even > .sorting_1, body.dark-only .compact-wrapper .page-body-wrapper .page-body .card .dataTables_wrapper table.dataTable.order-column.stripe tbody tr.even > .sorting_1 { + background-color: #22262f; } + body.dark-only .page-wrapper.horizontal-wrapper .page-body-wrapper .page-body .card .dataTables_wrapper table.dataTable, body.dark-only .compact-wrapper .page-body-wrapper .page-body .card .dataTables_wrapper table.dataTable { + border: 1px solid rgba(36, 105, 92, 0.2); } + body.dark-only .page-wrapper.horizontal-wrapper .page-body-wrapper .page-body .card .dataTables_wrapper table.dataTable thead th, body.dark-only .page-wrapper.horizontal-wrapper .page-body-wrapper .page-body .card .dataTables_wrapper table.dataTable thead td, body.dark-only .compact-wrapper .page-body-wrapper .page-body .card .dataTables_wrapper table.dataTable thead th, body.dark-only .compact-wrapper .page-body-wrapper .page-body .card .dataTables_wrapper table.dataTable thead td { + border-bottom: 2px solid rgba(36, 105, 92, 0.2); } + body.dark-only .page-wrapper.horizontal-wrapper .page-body-wrapper .page-body .card .dataTables_wrapper table.dataTable input, body.dark-only .page-wrapper.horizontal-wrapper .page-body-wrapper .page-body .card .dataTables_wrapper table.dataTable select, body.dark-only .compact-wrapper .page-body-wrapper .page-body .card .dataTables_wrapper table.dataTable input, body.dark-only .compact-wrapper .page-body-wrapper .page-body .card .dataTables_wrapper table.dataTable select { + background-color: #202938; + color: rgba(255, 255, 255, 0.7); + border: 1px solid rgba(36, 105, 92, 0.2); } + body.dark-only .page-wrapper.horizontal-wrapper .page-body-wrapper .page-body .card .dataTables_wrapper table.dataTable tbody tr, body.dark-only .compact-wrapper .page-body-wrapper .page-body .card .dataTables_wrapper table.dataTable tbody tr { + background-color: #111727; } + body.dark-only .page-wrapper.horizontal-wrapper .page-body-wrapper .page-body .card .dataTables_wrapper table.dataTable tbody td.select-checkbox:before, body.dark-only .page-wrapper.horizontal-wrapper .page-body-wrapper .page-body .card .dataTables_wrapper table.dataTable tbody th.select-checkbox:before, body.dark-only .compact-wrapper .page-body-wrapper .page-body .card .dataTables_wrapper table.dataTable tbody td.select-checkbox:before, body.dark-only .compact-wrapper .page-body-wrapper .page-body .card .dataTables_wrapper table.dataTable tbody th.select-checkbox:before { + border: 1px solid #98a6ad; } + body.dark-only .page-wrapper.horizontal-wrapper .page-body-wrapper .page-body .card .dataTables_wrapper .table-striped tbody tr:nth-of-type(odd), body.dark-only .compact-wrapper .page-body-wrapper .page-body .card .dataTables_wrapper .table-striped tbody tr:nth-of-type(odd) { + background-color: #202938; } + body.dark-only .page-wrapper.horizontal-wrapper .page-body-wrapper .page-body .card .dataTables_wrapper .dataTables_paginate .paginate_button, body.dark-only .compact-wrapper .page-body-wrapper .page-body .card .dataTables_wrapper .dataTables_paginate .paginate_button { + color: rgba(255, 255, 255, 0.7) !important; } + body.dark-only .page-wrapper.horizontal-wrapper .page-body-wrapper .page-body .card .dataTables_wrapper .dataTables_paginate .paginate_button.current, body.dark-only .page-wrapper.horizontal-wrapper .page-body-wrapper .page-body .card .dataTables_wrapper .dataTables_paginate .paginate_button:active, body.dark-only .compact-wrapper .page-body-wrapper .page-body .card .dataTables_wrapper .dataTables_paginate .paginate_button.current, body.dark-only .compact-wrapper .page-body-wrapper .page-body .card .dataTables_wrapper .dataTables_paginate .paginate_button:active { + border-color: #24695c; } + body.dark-only .page-wrapper.horizontal-wrapper .page-body-wrapper .page-body .card .dataTables_wrapper .dataTables_paginate .paginate_button.disabled, body.dark-only .compact-wrapper .page-body-wrapper .page-body .card .dataTables_wrapper .dataTables_paginate .paginate_button.disabled { + color: #98a6ad !important; } + body.dark-only .page-wrapper.horizontal-wrapper .page-body-wrapper .page-body .card .dataTables_wrapper .dataTables_paginate .paginate_button.disabled:hover, body.dark-only .page-wrapper.horizontal-wrapper .page-body-wrapper .page-body .card .dataTables_wrapper .dataTables_paginate .paginate_button.disabled :active, body.dark-only .compact-wrapper .page-body-wrapper .page-body .card .dataTables_wrapper .dataTables_paginate .paginate_button.disabled:hover, body.dark-only .compact-wrapper .page-body-wrapper .page-body .card .dataTables_wrapper .dataTables_paginate .paginate_button.disabled :active { + color: #98a6ad !important; } + body.dark-only .page-wrapper.horizontal-wrapper .page-body-wrapper .page-body .card .dataTables_wrapper table.dataTable.row-border tbody th, body.dark-only .page-wrapper.horizontal-wrapper .page-body-wrapper .page-body .card .dataTables_wrapper table.dataTable.row-border tbody td, body.dark-only .page-wrapper.horizontal-wrapper .page-body-wrapper .page-body .card .dataTables_wrapper table.dataTable.display tbody th, body.dark-only .page-wrapper.horizontal-wrapper .page-body-wrapper .page-body .card .dataTables_wrapper table.dataTable.display tbody td, body.dark-only .compact-wrapper .page-body-wrapper .page-body .card .dataTables_wrapper table.dataTable.row-border tbody th, body.dark-only .compact-wrapper .page-body-wrapper .page-body .card .dataTables_wrapper table.dataTable.row-border tbody td, body.dark-only .compact-wrapper .page-body-wrapper .page-body .card .dataTables_wrapper table.dataTable.display tbody th, body.dark-only .compact-wrapper .page-body-wrapper .page-body .card .dataTables_wrapper table.dataTable.display tbody td { + border-top: 1px solid rgba(36, 105, 92, 0.2); } + body.dark-only .page-wrapper.horizontal-wrapper .page-body-wrapper .page-body .card .dataTables_wrapper table.dataTable.display tbody tr.even:hover > .sorting_1, body.dark-only .page-wrapper.horizontal-wrapper .page-body-wrapper .page-body .card .dataTables_wrapper table.dataTable.order-column.hover tbody tr.even:hover > .sorting_1, body.dark-only .compact-wrapper .page-body-wrapper .page-body .card .dataTables_wrapper table.dataTable.display tbody tr.even:hover > .sorting_1, body.dark-only .compact-wrapper .page-body-wrapper .page-body .card .dataTables_wrapper table.dataTable.order-column.hover tbody tr.even:hover > .sorting_1 { + background-color: #191e27; } + body.dark-only .page-wrapper.horizontal-wrapper .page-body-wrapper .page-body .card .dataTables_wrapper table.dataTable.hover tbody tr:hover, body.dark-only .page-wrapper.horizontal-wrapper .page-body-wrapper .page-body .card .dataTables_wrapper table.dataTable.display tbody tr:hover, body.dark-only .compact-wrapper .page-body-wrapper .page-body .card .dataTables_wrapper table.dataTable.hover tbody tr:hover, body.dark-only .compact-wrapper .page-body-wrapper .page-body .card .dataTables_wrapper table.dataTable.display tbody tr:hover { + background-color: #1c212b; } + body.dark-only .page-wrapper.horizontal-wrapper .page-body-wrapper .page-body .card .dataTables_wrapper table.dataTable.cell-border th, body.dark-only .page-wrapper.horizontal-wrapper .page-body-wrapper .page-body .card .dataTables_wrapper table.dataTable.cell-border td, body.dark-only .compact-wrapper .page-body-wrapper .page-body .card .dataTables_wrapper table.dataTable.cell-border th, body.dark-only .compact-wrapper .page-body-wrapper .page-body .card .dataTables_wrapper table.dataTable.cell-border td { + border-top: 1px solid rgba(36, 105, 92, 0.2); + border-right: 1px solid rgba(36, 105, 92, 0.2); } + body.dark-only .page-wrapper.horizontal-wrapper .page-body-wrapper .page-body .card .dataTables_wrapper table.dataTable.cell-border th:first-child, body.dark-only .page-wrapper.horizontal-wrapper .page-body-wrapper .page-body .card .dataTables_wrapper table.dataTable.cell-border td:first-child, body.dark-only .compact-wrapper .page-body-wrapper .page-body .card .dataTables_wrapper table.dataTable.cell-border th:first-child, body.dark-only .compact-wrapper .page-body-wrapper .page-body .card .dataTables_wrapper table.dataTable.cell-border td:first-child { + border-left: 1px solid rgba(36, 105, 92, 0.2); } + body.dark-only .page-wrapper.horizontal-wrapper .page-body-wrapper .page-body .card .dataTables_wrapper table.dataTable.order-column tbody tr > .sorting_1, + body.dark-only .page-wrapper.horizontal-wrapper .page-body-wrapper .page-body .card .dataTables_wrapper table.dataTable.order-column tbody tr > .sorting_2, + body.dark-only .page-wrapper.horizontal-wrapper .page-body-wrapper .page-body .card .dataTables_wrapper table.dataTable.order-column tbody tr > .sorting_3, body.dark-only .page-wrapper.horizontal-wrapper .page-body-wrapper .page-body .card .dataTables_wrapper table.dataTable.display tbody tr > .sorting_1, + body.dark-only .page-wrapper.horizontal-wrapper .page-body-wrapper .page-body .card .dataTables_wrapper table.dataTable.display tbody tr > .sorting_2, + body.dark-only .page-wrapper.horizontal-wrapper .page-body-wrapper .page-body .card .dataTables_wrapper table.dataTable.display tbody tr > .sorting_3, body.dark-only .compact-wrapper .page-body-wrapper .page-body .card .dataTables_wrapper table.dataTable.order-column tbody tr > .sorting_1, + body.dark-only .compact-wrapper .page-body-wrapper .page-body .card .dataTables_wrapper table.dataTable.order-column tbody tr > .sorting_2, + body.dark-only .compact-wrapper .page-body-wrapper .page-body .card .dataTables_wrapper table.dataTable.order-column tbody tr > .sorting_3, body.dark-only .compact-wrapper .page-body-wrapper .page-body .card .dataTables_wrapper table.dataTable.display tbody tr > .sorting_1, + body.dark-only .compact-wrapper .page-body-wrapper .page-body .card .dataTables_wrapper table.dataTable.display tbody tr > .sorting_2, + body.dark-only .compact-wrapper .page-body-wrapper .page-body .card .dataTables_wrapper table.dataTable.display tbody tr > .sorting_3 { + background-color: #202938; } + body.dark-only .page-wrapper.horizontal-wrapper .page-body-wrapper .page-body .card #example-style-3_wrapper #example-style-3 tfoot, body.dark-only .compact-wrapper .page-body-wrapper .page-body .card #example-style-3_wrapper #example-style-3 tfoot { + border-top: 2px solid rgba(36, 105, 92, 0.2); } + body.dark-only .page-wrapper.horizontal-wrapper .page-body-wrapper .page-body .card .page-link, body.dark-only .compact-wrapper .page-body-wrapper .page-body .card .page-link { + border: 1px solid rgba(36, 105, 92, 0.2); } + body.dark-only .page-wrapper.horizontal-wrapper .page-body-wrapper .page-body .card .page-item.disabled .page-link, body.dark-only .compact-wrapper .page-body-wrapper .page-body .card .page-item.disabled .page-link { + background-color: #111727; + border-color: rgba(36, 105, 92, 0.2); } + body.dark-only .page-wrapper.horizontal-wrapper .page-body-wrapper .page-body .card .page-link, body.dark-only .compact-wrapper .page-body-wrapper .page-body .card .page-link { + color: rgba(255, 255, 255, 0.7); + background-color: #111727; } + body.dark-only .page-wrapper.horizontal-wrapper .page-body-wrapper .page-body .card .page-item:hover .page-link, body.dark-only .compact-wrapper .page-body-wrapper .page-body .card .page-item:hover .page-link { + background-color: #202938; } + body.dark-only .page-wrapper.horizontal-wrapper .page-body-wrapper .page-body .card .page-item.active .page-link, body.dark-only .compact-wrapper .page-body-wrapper .page-body .card .page-item.active .page-link { + background-color: #202938; } + body.dark-only .page-wrapper.horizontal-wrapper .page-body-wrapper .page-body .card .ecommerce-widget .icon, body.dark-only .compact-wrapper .page-body-wrapper .page-body .card .ecommerce-widget .icon { + color: #202938; } + body.dark-only .page-wrapper.horizontal-wrapper .page-body-wrapper .page-body .card .ecommerce-widget .total-num, body.dark-only .compact-wrapper .page-body-wrapper .page-body .card .ecommerce-widget .total-num { + color: rgba(255, 255, 255, 0.7); } + body.dark-only .page-wrapper.horizontal-wrapper .page-body-wrapper .page-body .card .ecommerce-widget .total-num span, body.dark-only .compact-wrapper .page-body-wrapper .page-body .card .ecommerce-widget .total-num span { + color: rgba(255, 255, 255, 0.7); } + body.dark-only .page-wrapper.horizontal-wrapper .page-body-wrapper .page-body .card .ecommerce-widget span, body.dark-only .compact-wrapper .page-body-wrapper .page-body .card .ecommerce-widget span { + color: #98a6ad; } + body.dark-only .page-wrapper.horizontal-wrapper .page-body-wrapper .page-body .card .flot-chart-container-small, body.dark-only .compact-wrapper .page-body-wrapper .page-body .card .flot-chart-container-small { + background-color: #111727; + border-top: 1px solid rgba(36, 105, 92, 0.2); } + body.dark-only .page-wrapper.horizontal-wrapper .page-body-wrapper .page-body .card .product-table #API-2_wrapper #API-2 tbody td span, body.dark-only .page-wrapper.horizontal-wrapper .page-body-wrapper .page-body .card .product-table #API-2_wrapper #API-2 tbody td p, body.dark-only .compact-wrapper .page-body-wrapper .page-body .card .product-table #API-2_wrapper #API-2 tbody td span, body.dark-only .compact-wrapper .page-body-wrapper .page-body .card .product-table #API-2_wrapper #API-2 tbody td p { + color: #98a6ad; } + body.dark-only .page-wrapper.horizontal-wrapper .page-body-wrapper .page-body .card .product-table h6, body.dark-only .compact-wrapper .page-body-wrapper .page-body .card .product-table h6 { + color: #98a6ad; } + body.dark-only .page-wrapper.horizontal-wrapper .page-body-wrapper .page-body .card .border-tab.nav-tabs, body.dark-only .compact-wrapper .page-body-wrapper .page-body .card .border-tab.nav-tabs { + border-bottom: 1px solid rgba(36, 105, 92, 0.2); } + body.dark-only .page-wrapper.horizontal-wrapper .page-body-wrapper .page-body .card .border-tab.nav-tabs .nav-item .nav-link, body.dark-only .compact-wrapper .page-body-wrapper .page-body .card .border-tab.nav-tabs .nav-item .nav-link { + color: rgba(255, 255, 255, 0.7); } + body.dark-only .page-wrapper.horizontal-wrapper .page-body-wrapper .page-body .card .border-tab.nav-tabs .nav-link.active, body.dark-only .page-wrapper.horizontal-wrapper .page-body-wrapper .page-body .card .border-tab.nav-tabs .nav-link:focus, body.dark-only .page-wrapper.horizontal-wrapper .page-body-wrapper .page-body .card .border-tab.nav-tabs .nav-link:hover, body.dark-only .compact-wrapper .page-body-wrapper .page-body .card .border-tab.nav-tabs .nav-link.active, body.dark-only .compact-wrapper .page-body-wrapper .page-body .card .border-tab.nav-tabs .nav-link:focus, body.dark-only .compact-wrapper .page-body-wrapper .page-body .card .border-tab.nav-tabs .nav-link:hover { + color: #24695c; } + body.dark-only .page-wrapper.horizontal-wrapper .page-body-wrapper .page-body .card .br-theme-bars-1to10 .br-widget a, body.dark-only .page-wrapper.horizontal-wrapper .page-body-wrapper .page-body .card .br-theme-bars-movie .br-widget a, body.dark-only .page-wrapper.horizontal-wrapper .page-body-wrapper .page-body .card .br-theme-bars-pill .br-widget a, body.dark-only .page-wrapper.horizontal-wrapper .page-body-wrapper .page-body .card .br-theme-bars-reversed .br-widget a, body.dark-only .page-wrapper.horizontal-wrapper .page-body-wrapper .page-body .card .br-theme-bars-horizontal .br-widget a, body.dark-only .compact-wrapper .page-body-wrapper .page-body .card .br-theme-bars-1to10 .br-widget a, body.dark-only .compact-wrapper .page-body-wrapper .page-body .card .br-theme-bars-movie .br-widget a, body.dark-only .compact-wrapper .page-body-wrapper .page-body .card .br-theme-bars-pill .br-widget a, body.dark-only .compact-wrapper .page-body-wrapper .page-body .card .br-theme-bars-reversed .br-widget a, body.dark-only .compact-wrapper .page-body-wrapper .page-body .card .br-theme-bars-horizontal .br-widget a { + background-color: rgba(36, 105, 92, 0.2); } + body.dark-only .page-wrapper.horizontal-wrapper .page-body-wrapper .page-body .card .br-theme-bars-1to10 .br-widget a.br-active, body.dark-only .page-wrapper.horizontal-wrapper .page-body-wrapper .page-body .card .br-theme-bars-1to10 .br-widget a.br-selected, body.dark-only .page-wrapper.horizontal-wrapper .page-body-wrapper .page-body .card .br-theme-bars-movie .br-widget a.br-active, body.dark-only .page-wrapper.horizontal-wrapper .page-body-wrapper .page-body .card .br-theme-bars-movie .br-widget a.br-selected, body.dark-only .page-wrapper.horizontal-wrapper .page-body-wrapper .page-body .card .br-theme-bars-pill .br-widget a.br-active, body.dark-only .page-wrapper.horizontal-wrapper .page-body-wrapper .page-body .card .br-theme-bars-pill .br-widget a.br-selected, body.dark-only .page-wrapper.horizontal-wrapper .page-body-wrapper .page-body .card .br-theme-bars-reversed .br-widget a.br-active, body.dark-only .page-wrapper.horizontal-wrapper .page-body-wrapper .page-body .card .br-theme-bars-reversed .br-widget a.br-selected, body.dark-only .page-wrapper.horizontal-wrapper .page-body-wrapper .page-body .card .br-theme-bars-horizontal .br-widget a.br-active, body.dark-only .page-wrapper.horizontal-wrapper .page-body-wrapper .page-body .card .br-theme-bars-horizontal .br-widget a.br-selected, body.dark-only .compact-wrapper .page-body-wrapper .page-body .card .br-theme-bars-1to10 .br-widget a.br-active, body.dark-only .compact-wrapper .page-body-wrapper .page-body .card .br-theme-bars-1to10 .br-widget a.br-selected, body.dark-only .compact-wrapper .page-body-wrapper .page-body .card .br-theme-bars-movie .br-widget a.br-active, body.dark-only .compact-wrapper .page-body-wrapper .page-body .card .br-theme-bars-movie .br-widget a.br-selected, body.dark-only .compact-wrapper .page-body-wrapper .page-body .card .br-theme-bars-pill .br-widget a.br-active, body.dark-only .compact-wrapper .page-body-wrapper .page-body .card .br-theme-bars-pill .br-widget a.br-selected, body.dark-only .compact-wrapper .page-body-wrapper .page-body .card .br-theme-bars-reversed .br-widget a.br-active, body.dark-only .compact-wrapper .page-body-wrapper .page-body .card .br-theme-bars-reversed .br-widget a.br-selected, body.dark-only .compact-wrapper .page-body-wrapper .page-body .card .br-theme-bars-horizontal .br-widget a.br-active, body.dark-only .compact-wrapper .page-body-wrapper .page-body .card .br-theme-bars-horizontal .br-widget a.br-selected { + background-color: #24695c; } + body.dark-only .page-wrapper.horizontal-wrapper .page-body-wrapper .page-body .card .br-theme-bars-square .br-widget a, body.dark-only .compact-wrapper .page-body-wrapper .page-body .card .br-theme-bars-square .br-widget a { + border: 2px solid rgba(36, 105, 92, 0.2); + background-color: #111727; + color: rgba(255, 255, 255, 0.7); } + body.dark-only .page-wrapper.horizontal-wrapper .page-body-wrapper .page-body .card .br-theme-bars-square .br-widget a.br-active, body.dark-only .page-wrapper.horizontal-wrapper .page-body-wrapper .page-body .card .br-theme-bars-square .br-widget a.br-selected, body.dark-only .compact-wrapper .page-body-wrapper .page-body .card .br-theme-bars-square .br-widget a.br-active, body.dark-only .compact-wrapper .page-body-wrapper .page-body .card .br-theme-bars-square .br-widget a.br-selected { + border: 2px solid #24695c; + color: #24695c; } + body.dark-only .page-wrapper.horizontal-wrapper .page-body-wrapper .page-body .card .br-theme-fontawesome-stars .br-widget a:after, body.dark-only .page-wrapper.horizontal-wrapper .page-body-wrapper .page-body .card .br-theme-fontawesome-stars-o .br-widget a:after, body.dark-only .compact-wrapper .page-body-wrapper .page-body .card .br-theme-fontawesome-stars .br-widget a:after, body.dark-only .compact-wrapper .page-body-wrapper .page-body .card .br-theme-fontawesome-stars-o .br-widget a:after { + color: rgba(36, 105, 92, 0.2); } + body.dark-only .page-wrapper.horizontal-wrapper .page-body-wrapper .page-body .card .br-theme-fontawesome-stars .br-widget a.br-selected:after, body.dark-only .page-wrapper.horizontal-wrapper .page-body-wrapper .page-body .card .br-theme-fontawesome-stars .br-widget a.br-active:after, body.dark-only .page-wrapper.horizontal-wrapper .page-body-wrapper .page-body .card .br-theme-fontawesome-stars-o .br-widget a.br-selected:after, body.dark-only .page-wrapper.horizontal-wrapper .page-body-wrapper .page-body .card .br-theme-fontawesome-stars-o .br-widget a.br-active:after, body.dark-only .compact-wrapper .page-body-wrapper .page-body .card .br-theme-fontawesome-stars .br-widget a.br-selected:after, body.dark-only .compact-wrapper .page-body-wrapper .page-body .card .br-theme-fontawesome-stars .br-widget a.br-active:after, body.dark-only .compact-wrapper .page-body-wrapper .page-body .card .br-theme-fontawesome-stars-o .br-widget a.br-selected:after, body.dark-only .compact-wrapper .page-body-wrapper .page-body .card .br-theme-fontawesome-stars-o .br-widget a.br-active:after { + color: #24695c; } + body.dark-only .page-wrapper.horizontal-wrapper .page-body-wrapper .page-body .card .scroll-demo, body.dark-only .compact-wrapper .page-body-wrapper .page-body .card .scroll-demo { + border: 1px solid rgba(36, 105, 92, 0.2); } + body.dark-only .page-wrapper.horizontal-wrapper .page-body-wrapper .page-body .card .search-form input, body.dark-only .compact-wrapper .page-body-wrapper .page-body .card .search-form input { + border: 1px solid rgba(36, 105, 92, 0.2); + color: rgba(255, 255, 255, 0.7); + background-color: #202938; } + body.dark-only .page-wrapper.horizontal-wrapper .page-body-wrapper .page-body .card .search-form .form-group:before, body.dark-only .compact-wrapper .page-body-wrapper .page-body .card .search-form .form-group:before { + background: #111727; } + body.dark-only .page-wrapper.horizontal-wrapper .page-body-wrapper .page-body .card .cd-timeline-content, body.dark-only .compact-wrapper .page-body-wrapper .page-body .card .cd-timeline-content { + background-color: #111727; + border-color: rgba(36, 105, 92, 0.2); } + body.dark-only .page-wrapper.horizontal-wrapper .page-body-wrapper .page-body .card .cd-timeline-content::before, body.dark-only .compact-wrapper .page-body-wrapper .page-body .card .cd-timeline-content::before { + border-left: 7px solid rgba(36, 105, 92, 0.2); } + body.dark-only .page-wrapper.horizontal-wrapper .page-body-wrapper .page-body .card .cd-timeline-block:nth-child(even) .cd-timeline-content::before, body.dark-only .compact-wrapper .page-body-wrapper .page-body .card .cd-timeline-block:nth-child(even) .cd-timeline-content::before { + border-right-color: rgba(36, 105, 92, 0.2); + border-left: transparent; } + body.dark-only .page-wrapper.horizontal-wrapper .page-body-wrapper .page-body .card .breadcrumb.bg-white, body.dark-only .compact-wrapper .page-body-wrapper .page-body .card .breadcrumb.bg-white { + background-color: #111727 !important; } + body.dark-only .page-wrapper.horizontal-wrapper .page-body-wrapper .page-body .card .user-status table td, body.dark-only .page-wrapper.horizontal-wrapper .page-body-wrapper .page-body .card .user-status table th, body.dark-only .compact-wrapper .page-body-wrapper .page-body .card .user-status table td, body.dark-only .compact-wrapper .page-body-wrapper .page-body .card .user-status table th { + border-top: none !important; } + body.dark-only .page-wrapper.horizontal-wrapper .page-body-wrapper .page-body .card #donut-color-chart-morris-daily svg, body.dark-only .page-wrapper.horizontal-wrapper .page-body-wrapper .page-body .card #donut-color-chart-morris svg, body.dark-only .page-wrapper.horizontal-wrapper .page-body-wrapper .page-body .card #browser-uses-chart svg, body.dark-only .page-wrapper.horizontal-wrapper .page-body-wrapper .page-body .card #website-visiter-chart svg, body.dark-only .compact-wrapper .page-body-wrapper .page-body .card #donut-color-chart-morris-daily svg, body.dark-only .compact-wrapper .page-body-wrapper .page-body .card #donut-color-chart-morris svg, body.dark-only .compact-wrapper .page-body-wrapper .page-body .card #browser-uses-chart svg, body.dark-only .compact-wrapper .page-body-wrapper .page-body .card #website-visiter-chart svg { + opacity: 0.5; } + body.dark-only .page-wrapper.horizontal-wrapper .page-body-wrapper .page-body .form-builder-header-1, body.dark-only .page-wrapper.horizontal-wrapper .page-body-wrapper .page-body .form-builder-2-header, body.dark-only .compact-wrapper .page-body-wrapper .page-body .form-builder-header-1, body.dark-only .compact-wrapper .page-body-wrapper .page-body .form-builder-2-header { + background-color: #202938; } + body.dark-only .page-wrapper.horizontal-wrapper .page-body-wrapper .page-body .form-builder .nav-primary .show > .nav-link, body.dark-only .compact-wrapper .page-body-wrapper .page-body .form-builder .nav-primary .show > .nav-link { + color: #fff; } + body.dark-only .page-wrapper.horizontal-wrapper .page-body-wrapper .page-body .form-builder .nav-primary .nav-link, body.dark-only .compact-wrapper .page-body-wrapper .page-body .form-builder .nav-primary .nav-link { + color: rgba(255, 255, 255, 0.7); } + body.dark-only .page-wrapper.horizontal-wrapper .page-body-wrapper .page-body .form-builder .nav-primary .nav-link.active, body.dark-only .compact-wrapper .page-body-wrapper .page-body .form-builder .nav-primary .nav-link.active { + color: #fff; } + body.dark-only .page-wrapper.horizontal-wrapper .page-body-wrapper .page-body .form-builder .nav-primary .nav-pills.nav-primary .show > .nav-link, body.dark-only .compact-wrapper .page-body-wrapper .page-body .form-builder .nav-primary .nav-pills.nav-primary .show > .nav-link { + color: #fff; } + body.dark-only .page-wrapper.horizontal-wrapper .page-body-wrapper .page-body .form-builder .nav-primary .nav-pills.nav-primary .nav-link, body.dark-only .compact-wrapper .page-body-wrapper .page-body .form-builder .nav-primary .nav-pills.nav-primary .nav-link { + color: rgba(255, 255, 255, 0.7); } + body.dark-only .page-wrapper.horizontal-wrapper .page-body-wrapper .page-body .form-builder .nav-primary .nav-pills.nav-primary .nav-link.active, body.dark-only .compact-wrapper .page-body-wrapper .page-body .form-builder .nav-primary .nav-pills.nav-primary .nav-link.active { + color: #fff; } + body.dark-only .page-wrapper.horizontal-wrapper .page-body-wrapper .page-body .form-builder .drag-box fieldset, body.dark-only .compact-wrapper .page-body-wrapper .page-body .form-builder .drag-box fieldset { + border: 1px solid rgba(36, 105, 92, 0.2); } + body.dark-only .page-wrapper.horizontal-wrapper .page-body-wrapper .page-body .form-builder .help-block, body.dark-only .compact-wrapper .page-body-wrapper .page-body .form-builder .help-block { + color: #98a6ad; } + body.dark-only .page-wrapper.horizontal-wrapper .page-body-wrapper .page-body #viewhtml .render, body.dark-only .compact-wrapper .page-body-wrapper .page-body #viewhtml .render { + background-color: #111727; + color: rgba(255, 255, 255, 0.7); + border-color: rgba(36, 105, 92, 0.2); } + body.dark-only .page-wrapper.horizontal-wrapper .page-body-wrapper .page-body .form-builder-column .drag-bx, body.dark-only .compact-wrapper .page-body-wrapper .page-body .form-builder-column .drag-bx { + border: 1px dotted rgba(36, 105, 92, 0.2); } + body.dark-only .page-wrapper.horizontal-wrapper .page-body-wrapper .page-body .wizard-4 ul.anchor li a.disabled, body.dark-only .compact-wrapper .page-body-wrapper .page-body .wizard-4 ul.anchor li a.disabled { + color: #202938; } + body.dark-only .page-wrapper.horizontal-wrapper .page-body-wrapper .page-body .gallery-with-description h4, body.dark-only .compact-wrapper .page-body-wrapper .page-body .gallery-with-description h4 { + color: rgba(255, 255, 255, 0.7); } + body.dark-only .page-wrapper.horizontal-wrapper .page-body-wrapper .page-body .gallery-with-description a > div, body.dark-only .compact-wrapper .page-body-wrapper .page-body .gallery-with-description a > div { + border: 1px solid rgba(36, 105, 92, 0.2); } + body.dark-only .page-wrapper.horizontal-wrapper .page-body-wrapper .page-body .gallery-with-description p, body.dark-only .compact-wrapper .page-body-wrapper .page-body .gallery-with-description p { + color: #98a6ad; } + body.dark-only .page-wrapper.horizontal-wrapper .page-body-wrapper .page-body .jsgrid-grid-header, body.dark-only .compact-wrapper .page-body-wrapper .page-body .jsgrid-grid-header { + background-color: #111727; + border: 1px solid rgba(36, 105, 92, 0.2); } + body.dark-only .page-wrapper.horizontal-wrapper .page-body-wrapper .page-body .jsgrid-header-row > .jsgrid-header-cell, + body.dark-only .page-wrapper.horizontal-wrapper .page-body-wrapper .page-body .jsgrid-header-row > .jsgrid-cell, body.dark-only .page-wrapper.horizontal-wrapper .page-body-wrapper .page-body .jsgrid-filter-row > .jsgrid-header-cell, + body.dark-only .page-wrapper.horizontal-wrapper .page-body-wrapper .page-body .jsgrid-filter-row > .jsgrid-cell, body.dark-only .compact-wrapper .page-body-wrapper .page-body .jsgrid-header-row > .jsgrid-header-cell, + body.dark-only .compact-wrapper .page-body-wrapper .page-body .jsgrid-header-row > .jsgrid-cell, body.dark-only .compact-wrapper .page-body-wrapper .page-body .jsgrid-filter-row > .jsgrid-header-cell, + body.dark-only .compact-wrapper .page-body-wrapper .page-body .jsgrid-filter-row > .jsgrid-cell { + background: #111727; + border: 1px solid rgba(36, 105, 92, 0.2); } + body.dark-only .page-wrapper.horizontal-wrapper .page-body-wrapper .page-body .jsgrid-header-row > .jsgrid-header-cell input, + body.dark-only .page-wrapper.horizontal-wrapper .page-body-wrapper .page-body .jsgrid-header-row > .jsgrid-cell input, body.dark-only .page-wrapper.horizontal-wrapper .page-body-wrapper .page-body .jsgrid-filter-row > .jsgrid-header-cell input, + body.dark-only .page-wrapper.horizontal-wrapper .page-body-wrapper .page-body .jsgrid-filter-row > .jsgrid-cell input, body.dark-only .compact-wrapper .page-body-wrapper .page-body .jsgrid-header-row > .jsgrid-header-cell input, + body.dark-only .compact-wrapper .page-body-wrapper .page-body .jsgrid-header-row > .jsgrid-cell input, body.dark-only .compact-wrapper .page-body-wrapper .page-body .jsgrid-filter-row > .jsgrid-header-cell input, + body.dark-only .compact-wrapper .page-body-wrapper .page-body .jsgrid-filter-row > .jsgrid-cell input { + background-color: #202938; + border-color: rgba(36, 105, 92, 0.2); + color: rgba(255, 255, 255, 0.7); } + body.dark-only .page-wrapper.horizontal-wrapper .page-body-wrapper .page-body .jsgrid-header-row select, body.dark-only .page-wrapper.horizontal-wrapper .page-body-wrapper .page-body .jsgrid-filter-row select, body.dark-only .compact-wrapper .page-body-wrapper .page-body .jsgrid-header-row select, body.dark-only .compact-wrapper .page-body-wrapper .page-body .jsgrid-filter-row select { + background-color: #202938; + border-color: rgba(36, 105, 92, 0.2); + color: rgba(255, 255, 255, 0.7); } + body.dark-only .page-wrapper.horizontal-wrapper .page-body-wrapper .page-body .jsgrid-row > .jsgrid-cell, body.dark-only .compact-wrapper .page-body-wrapper .page-body .jsgrid-row > .jsgrid-cell { + background-color: #111727; } + body.dark-only .page-wrapper.horizontal-wrapper .page-body-wrapper .page-body .jsgrid-alt-row > .jsgrid-cell, body.dark-only .compact-wrapper .page-body-wrapper .page-body .jsgrid-alt-row > .jsgrid-cell { + background-color: #202938; } + body.dark-only .page-wrapper.horizontal-wrapper .page-body-wrapper .page-body .jsgrid-cell, body.dark-only .page-wrapper.horizontal-wrapper .page-body-wrapper .page-body .jsgrid-grid-body, body.dark-only .compact-wrapper .page-body-wrapper .page-body .jsgrid-cell, body.dark-only .compact-wrapper .page-body-wrapper .page-body .jsgrid-grid-body { + border: 1px solid rgba(36, 105, 92, 0.2); } + body.dark-only .page-wrapper.horizontal-wrapper .page-body-wrapper .page-body .jsgrid-selected-row > .jsgrid-cell, body.dark-only .compact-wrapper .page-body-wrapper .page-body .jsgrid-selected-row > .jsgrid-cell { + background-color: #1c212b; } + body.dark-only .page-wrapper.horizontal-wrapper .page-body-wrapper .page-body .jsgrid .jsgrid-pager [class*="jsgrid-pager"], body.dark-only .compact-wrapper .page-body-wrapper .page-body .jsgrid .jsgrid-pager [class*="jsgrid-pager"] { + border: 1px solid rgba(36, 105, 92, 0.2); } + body.dark-only .page-wrapper.horizontal-wrapper .page-body-wrapper .page-body .jsgrid .jsgrid-pager .jsgrid-pager-page a, body.dark-only .compact-wrapper .page-body-wrapper .page-body .jsgrid .jsgrid-pager .jsgrid-pager-page a { + color: rgba(255, 255, 255, 0.7); } + body.dark-only .page-wrapper.horizontal-wrapper .page-body-wrapper .page-body .jsgrid-pager-current-page, body.dark-only .compact-wrapper .page-body-wrapper .page-body .jsgrid-pager-current-page { + color: rgba(255, 255, 255, 0.7); + font-weight: 700; } + body.dark-only .page-wrapper.horizontal-wrapper .page-body-wrapper .page-body .sub-title, body.dark-only .compact-wrapper .page-body-wrapper .page-body .sub-title { + border-bottom: 1px solid rgba(255, 255, 255, 0.1); } + body.dark-only .page-wrapper.horizontal-wrapper .page-body-wrapper .page-body .navs-icon li a, body.dark-only .compact-wrapper .page-body-wrapper .page-body .navs-icon li a { + color: rgba(255, 255, 255, 0.7); } + body.dark-only .page-wrapper.horizontal-wrapper .page-body-wrapper .page-body .navs-icon li a:hover, body.dark-only .compact-wrapper .page-body-wrapper .page-body .navs-icon li a:hover { + color: #24695c; } + body.dark-only .page-wrapper.horizontal-wrapper .page-body-wrapper .page-body .navs-icon .separator, body.dark-only .compact-wrapper .page-body-wrapper .page-body .navs-icon .separator { + border-color: rgba(36, 105, 92, 0.2); } + body.dark-only .page-wrapper.horizontal-wrapper .page-body-wrapper .page-body .default-according li .text-muted, body.dark-only .compact-wrapper .page-body-wrapper .page-body .default-according li .text-muted { + color: rgba(255, 255, 255, 0.7) !important; } + body.dark-only .page-wrapper.horizontal-wrapper .page-body-wrapper .page-body .navs-icon.default-according.style-1 li button:hover, body.dark-only .compact-wrapper .page-body-wrapper .page-body .navs-icon.default-according.style-1 li button:hover { + color: #24695c !important; } + body.dark-only .page-wrapper.horizontal-wrapper .page-body-wrapper .page-body .nav-list .nav-list-disc li a, body.dark-only .compact-wrapper .page-body-wrapper .page-body .nav-list .nav-list-disc li a { + color: rgba(255, 255, 255, 0.7); } + body.dark-only .page-wrapper.horizontal-wrapper .page-body-wrapper .page-body .nav-list .nav-list-disc li:hover, body.dark-only .compact-wrapper .page-body-wrapper .page-body .nav-list .nav-list-disc li:hover { + color: #24695c; } + body.dark-only .page-wrapper.horizontal-wrapper .page-body-wrapper .page-body .nav-list .nav-list-disc li:hover a, body.dark-only .compact-wrapper .page-body-wrapper .page-body .nav-list .nav-list-disc li:hover a { + color: #24695c; } + body.dark-only .page-wrapper.horizontal-wrapper .page-body-wrapper .page-body .navs-dropdown .onhover-show-div, body.dark-only .compact-wrapper .page-body-wrapper .page-body .navs-dropdown .onhover-show-div { + background-color: #202938; + -webkit-box-shadow: 0 0 2px 2px rgba(36, 105, 92, 0.2); + box-shadow: 0 0 2px 2px rgba(36, 105, 92, 0.2); } + body.dark-only .page-wrapper.horizontal-wrapper .page-body-wrapper .page-body .navs-dropdown .onhover-show-div .navs-icon li p, body.dark-only .compact-wrapper .page-body-wrapper .page-body .navs-dropdown .onhover-show-div .navs-icon li p { + color: #fff; } + body.dark-only .page-wrapper.horizontal-wrapper .page-body-wrapper .page-body .navs-dropdown .onhover-show-div .navs-icon li a svg path, body.dark-only .page-wrapper.horizontal-wrapper .page-body-wrapper .page-body .navs-dropdown .onhover-show-div .navs-icon li a svg line, body.dark-only .page-wrapper.horizontal-wrapper .page-body-wrapper .page-body .navs-dropdown .onhover-show-div .navs-icon li a svg polyline, body.dark-only .page-wrapper.horizontal-wrapper .page-body-wrapper .page-body .navs-dropdown .onhover-show-div .navs-icon li a svg polygon, body.dark-only .page-wrapper.horizontal-wrapper .page-body-wrapper .page-body .navs-dropdown .onhover-show-div .navs-icon li a svg rect, body.dark-only .compact-wrapper .page-body-wrapper .page-body .navs-dropdown .onhover-show-div .navs-icon li a svg path, body.dark-only .compact-wrapper .page-body-wrapper .page-body .navs-dropdown .onhover-show-div .navs-icon li a svg line, body.dark-only .compact-wrapper .page-body-wrapper .page-body .navs-dropdown .onhover-show-div .navs-icon li a svg polyline, body.dark-only .compact-wrapper .page-body-wrapper .page-body .navs-dropdown .onhover-show-div .navs-icon li a svg polygon, body.dark-only .compact-wrapper .page-body-wrapper .page-body .navs-dropdown .onhover-show-div .navs-icon li a svg rect { + color: rgba(255, 255, 255, 0.7) !important; } + body.dark-only .page-wrapper.horizontal-wrapper .page-body-wrapper .page-body .navs-dropdown .onhover-show-div .navs-icon li a:hover svg path, body.dark-only .page-wrapper.horizontal-wrapper .page-body-wrapper .page-body .navs-dropdown .onhover-show-div .navs-icon li a:hover svg line, body.dark-only .page-wrapper.horizontal-wrapper .page-body-wrapper .page-body .navs-dropdown .onhover-show-div .navs-icon li a:hover svg polyline, body.dark-only .page-wrapper.horizontal-wrapper .page-body-wrapper .page-body .navs-dropdown .onhover-show-div .navs-icon li a:hover svg polygon, body.dark-only .page-wrapper.horizontal-wrapper .page-body-wrapper .page-body .navs-dropdown .onhover-show-div .navs-icon li a:hover svg rect, body.dark-only .compact-wrapper .page-body-wrapper .page-body .navs-dropdown .onhover-show-div .navs-icon li a:hover svg path, body.dark-only .compact-wrapper .page-body-wrapper .page-body .navs-dropdown .onhover-show-div .navs-icon li a:hover svg line, body.dark-only .compact-wrapper .page-body-wrapper .page-body .navs-dropdown .onhover-show-div .navs-icon li a:hover svg polyline, body.dark-only .compact-wrapper .page-body-wrapper .page-body .navs-dropdown .onhover-show-div .navs-icon li a:hover svg polygon, body.dark-only .compact-wrapper .page-body-wrapper .page-body .navs-dropdown .onhover-show-div .navs-icon li a:hover svg rect { + color: #24695c !important; } + body.dark-only .page-wrapper.horizontal-wrapper .page-body-wrapper .page-body .onhover-show-div, body.dark-only .compact-wrapper .page-body-wrapper .page-body .onhover-show-div { + border-color: rgba(36, 105, 92, 0.2); } + body.dark-only .page-wrapper.horizontal-wrapper .page-body-wrapper .page-body .onhover-dropdown:hover .onhover-show-div:before, body.dark-only .compact-wrapper .page-body-wrapper .page-body .onhover-dropdown:hover .onhover-show-div:before { + border-bottom: 7px solid rgba(36, 105, 92, 0.2); } + body.dark-only .page-wrapper.horizontal-wrapper .page-body-wrapper .page-body .default-according .card, body.dark-only .compact-wrapper .page-body-wrapper .page-body .default-according .card { + -webkit-box-shadow: 0 0 1px 1px #374252 !important; + box-shadow: 0 0 1px 1px #374252 !important; + border: none !important; + background-color: #111727 !important; } + body.dark-only .page-wrapper.horizontal-wrapper .page-body-wrapper .page-body .default-according .card .btn-link, body.dark-only .compact-wrapper .page-body-wrapper .page-body .default-according .card .btn-link { + color: rgba(255, 255, 255, 0.7); + border: none; } + body.dark-only .page-wrapper.horizontal-wrapper .page-body-wrapper .page-body .default-according .card .card-body, body.dark-only .compact-wrapper .page-body-wrapper .page-body .default-according .card .card-body { + color: #98a6ad; + border: 1px solid rgba(36, 105, 92, 0.2); } + body.dark-only .page-wrapper.horizontal-wrapper .page-body-wrapper .page-body .border, body.dark-only .compact-wrapper .page-body-wrapper .page-body .border { + border: 1px solid rgba(36, 105, 92, 0.2) !important; } + body.dark-only .page-wrapper.horizontal-wrapper .page-body-wrapper .page-body .blog-box .blog-date, body.dark-only .compact-wrapper .page-body-wrapper .page-body .blog-box .blog-date { + color: rgba(255, 255, 255, 0.7); } + body.dark-only .page-wrapper.horizontal-wrapper .page-body-wrapper .page-body .blog-box .blog-details .blog-social li, body.dark-only .page-wrapper.horizontal-wrapper .page-body-wrapper .page-body .blog-box .blog-details-main .blog-social li, body.dark-only .compact-wrapper .page-body-wrapper .page-body .blog-box .blog-details .blog-social li, body.dark-only .compact-wrapper .page-body-wrapper .page-body .blog-box .blog-details-main .blog-social li { + color: #98a6ad; + border-right: 1px solid rgba(36, 105, 92, 0.2); } + body.dark-only .page-wrapper.horizontal-wrapper .page-body-wrapper .page-body .blog-box .blog-details .blog-social li:first-child, body.dark-only .page-wrapper.horizontal-wrapper .page-body-wrapper .page-body .blog-box .blog-details-main .blog-social li:first-child, body.dark-only .compact-wrapper .page-body-wrapper .page-body .blog-box .blog-details .blog-social li:first-child, body.dark-only .compact-wrapper .page-body-wrapper .page-body .blog-box .blog-details-main .blog-social li:first-child { + border-right: 1px solid rgba(36, 105, 92, 0.2); } + body.dark-only .page-wrapper.horizontal-wrapper .page-body-wrapper .page-body .blog-box .blog-details .blog-social li:last-child, body.dark-only .page-wrapper.horizontal-wrapper .page-body-wrapper .page-body .blog-box .blog-details-main .blog-social li:last-child, body.dark-only .compact-wrapper .page-body-wrapper .page-body .blog-box .blog-details .blog-social li:last-child, body.dark-only .compact-wrapper .page-body-wrapper .page-body .blog-box .blog-details-main .blog-social li:last-child { + border-right: none; } + body.dark-only .page-wrapper.horizontal-wrapper .page-body-wrapper .page-body .blog-box .blog-details p, body.dark-only .page-wrapper.horizontal-wrapper .page-body-wrapper .page-body .blog-box .blog-details-main p, body.dark-only .compact-wrapper .page-body-wrapper .page-body .blog-box .blog-details p, body.dark-only .compact-wrapper .page-body-wrapper .page-body .blog-box .blog-details-main p { + color: rgba(255, 255, 255, 0.7); } + body.dark-only .page-wrapper.horizontal-wrapper .page-body-wrapper .page-body .blog-box .blog-details .single-blog-content-top, body.dark-only .page-wrapper.horizontal-wrapper .page-body-wrapper .page-body .blog-box .blog-details-main .single-blog-content-top, body.dark-only .compact-wrapper .page-body-wrapper .page-body .blog-box .blog-details .single-blog-content-top, body.dark-only .compact-wrapper .page-body-wrapper .page-body .blog-box .blog-details-main .single-blog-content-top { + border-top: 1px solid rgba(36, 105, 92, 0.2); } + body.dark-only .page-wrapper.horizontal-wrapper .page-body-wrapper .page-body .blog-box .blog-details .single-blog-content-top p, body.dark-only .page-wrapper.horizontal-wrapper .page-body-wrapper .page-body .blog-box .blog-details-main .single-blog-content-top p, body.dark-only .compact-wrapper .page-body-wrapper .page-body .blog-box .blog-details .single-blog-content-top p, body.dark-only .compact-wrapper .page-body-wrapper .page-body .blog-box .blog-details-main .single-blog-content-top p { + color: #98a6ad; } + body.dark-only .page-wrapper.horizontal-wrapper .page-body-wrapper .page-body .blog-list .blog-details h6, body.dark-only .compact-wrapper .page-body-wrapper .page-body .blog-list .blog-details h6 { + border-color: rgba(36, 105, 92, 0.2); } + body.dark-only .page-wrapper.horizontal-wrapper .page-body-wrapper .page-body .cke_wysiwyg_frame, body.dark-only .page-wrapper.horizontal-wrapper .page-body-wrapper .page-body .cke_wysiwyg_div, body.dark-only .compact-wrapper .page-body-wrapper .page-body .cke_wysiwyg_frame, body.dark-only .compact-wrapper .page-body-wrapper .page-body .cke_wysiwyg_div { + background-color: #111727; } + body.dark-only .page-wrapper.horizontal-wrapper .page-body-wrapper .page-body .add-post form .form-group .form-control, body.dark-only .compact-wrapper .page-body-wrapper .page-body .add-post form .form-group .form-control { + border-color: rgba(36, 105, 92, 0.2); } + body.dark-only .page-wrapper.horizontal-wrapper .page-body-wrapper .page-body .add-post .cke_top, body.dark-only .compact-wrapper .page-body-wrapper .page-body .add-post .cke_top { + background-color: #111727; } + body.dark-only .page-wrapper.horizontal-wrapper .page-body-wrapper .page-body .add-post #cke_text-box, body.dark-only .compact-wrapper .page-body-wrapper .page-body .add-post #cke_text-box { + border-color: rgba(36, 105, 92, 0.2); } + body.dark-only .page-wrapper.horizontal-wrapper .page-body-wrapper .page-body .comment-box h4, body.dark-only .compact-wrapper .page-body-wrapper .page-body .comment-box h4 { + border-color: rgba(36, 105, 92, 0.2); } + body.dark-only .page-wrapper.horizontal-wrapper .page-body-wrapper .page-body .comment-box .media h6 span, body.dark-only .compact-wrapper .page-body-wrapper .page-body .comment-box .media h6 span { + color: #98a6ad; } + body.dark-only .page-wrapper.horizontal-wrapper .page-body-wrapper .page-body .comment-box .media img, body.dark-only .compact-wrapper .page-body-wrapper .page-body .comment-box .media img { + border: 1px solid rgba(36, 105, 92, 0.2); } + body.dark-only .page-wrapper.horizontal-wrapper .page-body-wrapper .page-body .comment-box p, body.dark-only .compact-wrapper .page-body-wrapper .page-body .comment-box p { + color: #98a6ad; } + body.dark-only .page-wrapper.horizontal-wrapper .page-body-wrapper .page-body .comment-box .comment-social li, body.dark-only .compact-wrapper .page-body-wrapper .page-body .comment-box .comment-social li { + color: #98a6ad; } + body.dark-only .page-wrapper.horizontal-wrapper .page-body-wrapper .page-body .comment-box .comment-social li:first-child, body.dark-only .compact-wrapper .page-body-wrapper .page-body .comment-box .comment-social li:first-child { + border-right: 1px solid rgba(36, 105, 92, 0.2); } + body.dark-only .page-wrapper.horizontal-wrapper .page-body-wrapper .page-body .comment-box hr, body.dark-only .compact-wrapper .page-body-wrapper .page-body .comment-box hr { + border-top: 1px solid rgba(36, 105, 92, 0.2); + background-color: rgba(36, 105, 92, 0.2); } + body.dark-only .page-wrapper.horizontal-wrapper .page-body-wrapper .page-body .table-hover tbody tr:hover, body.dark-only .compact-wrapper .page-body-wrapper .page-body .table-hover tbody tr:hover { + background-color: #202938; } + body.dark-only .page-wrapper.horizontal-wrapper .page-body-wrapper .page-body .table-hover tbody tr:hover td, body.dark-only .page-wrapper.horizontal-wrapper .page-body-wrapper .page-body .table-hover tbody tr:hover th, body.dark-only .compact-wrapper .page-body-wrapper .page-body .table-hover tbody tr:hover td, body.dark-only .compact-wrapper .page-body-wrapper .page-body .table-hover tbody tr:hover th { + color: #fff; } + body.dark-only .page-wrapper.horizontal-wrapper .page-body-wrapper .page-body ul.the-icons li, body.dark-only .compact-wrapper .page-body-wrapper .page-body ul.the-icons li { + border: 1px dotted rgba(36, 105, 92, 0.2); + color: rgba(255, 255, 255, 0.7); + display: inline-block; + padding: 10px; } + body.dark-only .page-wrapper.horizontal-wrapper .page-body-wrapper .page-body ul.the-icons li:hover, body.dark-only .compact-wrapper .page-body-wrapper .page-body ul.the-icons li:hover { + background: #000; + -webkit-box-shadow: 0 0 3px #111727; + box-shadow: 0 0 3px #111727; } + body.dark-only .page-wrapper.horizontal-wrapper .page-body-wrapper .page-body ul.the-icons li em, body.dark-only .compact-wrapper .page-body-wrapper .page-body ul.the-icons li em { + display: none; } + body.dark-only .page-wrapper.horizontal-wrapper .page-body-wrapper .page-body .button-builder-wrap .box, body.dark-only .compact-wrapper .page-body-wrapper .page-body .button-builder-wrap .box { + background-color: #111727; + border: 1px solid rgba(36, 105, 92, 0.2); } + body.dark-only .page-wrapper.horizontal-wrapper .page-body-wrapper .page-body .button-builder-wrap .button-preview h2, body.dark-only .compact-wrapper .page-body-wrapper .page-body .button-builder-wrap .button-preview h2 { + color: rgba(255, 255, 255, 0.7); } + body.dark-only .page-wrapper.horizontal-wrapper .page-body-wrapper .page-body .button-builder-wrap pre.well, body.dark-only .compact-wrapper .page-body-wrapper .page-body .button-builder-wrap pre.well { + background-color: #111727 !important; } + body.dark-only .page-wrapper.horizontal-wrapper .page-body-wrapper .page-body .crm-activity > li + li, body.dark-only .compact-wrapper .page-body-wrapper .page-body .crm-activity > li + li { + border-top: 1px solid rgba(36, 105, 92, 0.2); } + body.dark-only .page-wrapper.horizontal-wrapper .page-body-wrapper .page-body .crm-activity > li h6, body.dark-only .compact-wrapper .page-body-wrapper .page-body .crm-activity > li h6 { + color: rgba(255, 255, 255, 0.7); } + body.dark-only .page-wrapper.horizontal-wrapper .page-body-wrapper .page-body .crm-activity ul.dates li, body.dark-only .compact-wrapper .page-body-wrapper .page-body .crm-activity ul.dates li { + color: #98a6ad; } + body.dark-only .page-wrapper.horizontal-wrapper .page-body-wrapper .page-body #donut-color-chart-morris svg text, body.dark-only .page-wrapper.horizontal-wrapper .page-body-wrapper .page-body #donut-color-chart-morris-daily svg text, body.dark-only .compact-wrapper .page-body-wrapper .page-body #donut-color-chart-morris svg text, body.dark-only .compact-wrapper .page-body-wrapper .page-body #donut-color-chart-morris-daily svg text { + fill: rgba(255, 255, 255, 0.7); } + body.dark-only .page-wrapper.horizontal-wrapper .page-body-wrapper .page-body .custom-card .card-profile img, body.dark-only .compact-wrapper .page-body-wrapper .page-body .custom-card .card-profile img { + background-color: #111727; } + body.dark-only .page-wrapper.horizontal-wrapper .page-body-wrapper .page-body .custom-card .profile-details h6, body.dark-only .compact-wrapper .page-body-wrapper .page-body .custom-card .profile-details h6 { + color: #98a6ad; } + body.dark-only .page-wrapper.horizontal-wrapper .page-body-wrapper .page-body .custom-card .card-social li a, body.dark-only .compact-wrapper .page-body-wrapper .page-body .custom-card .card-social li a { + color: #98a6ad; } + body.dark-only .page-wrapper.horizontal-wrapper .page-body-wrapper .page-body .custom-card .card-footer > div h6, body.dark-only .compact-wrapper .page-body-wrapper .page-body .custom-card .card-footer > div h6 { + color: #98a6ad; } + body.dark-only .page-wrapper.horizontal-wrapper .page-body-wrapper .page-body .custom-card .card-footer > div + div, body.dark-only .compact-wrapper .page-body-wrapper .page-body .custom-card .card-footer > div + div { + border-left: 1px solid rgba(36, 105, 92, 0.2); } + body.dark-only .page-wrapper.horizontal-wrapper .page-body-wrapper .page-body .form-control, body.dark-only .page-wrapper.horizontal-wrapper .page-body-wrapper .page-body select, body.dark-only .compact-wrapper .page-body-wrapper .page-body .form-control, body.dark-only .compact-wrapper .page-body-wrapper .page-body select { + background-color: #111727; + color: rgba(255, 255, 255, 0.7); } + body.dark-only .page-wrapper.horizontal-wrapper .page-body-wrapper .page-body .checkbox label::before, body.dark-only .page-wrapper.horizontal-wrapper .page-body-wrapper .page-body .radio label::before, body.dark-only .compact-wrapper .page-body-wrapper .page-body .checkbox label::before, body.dark-only .compact-wrapper .page-body-wrapper .page-body .radio label::before { + background-color: #202938; + border: 1px solid rgba(36, 105, 92, 0.2); + color: rgba(255, 255, 255, 0.7); } + body.dark-only .page-wrapper.horizontal-wrapper .page-body-wrapper .page-body .dropdown-basic .dropdown .dropdown-content, body.dark-only .compact-wrapper .page-body-wrapper .page-body .dropdown-basic .dropdown .dropdown-content { + background-color: #202938; + border-color: rgba(36, 105, 92, 0.2); } + body.dark-only .page-wrapper.horizontal-wrapper .page-body-wrapper .page-body .dropdown-basic .dropdown .dropdown-content a, body.dark-only .compact-wrapper .page-body-wrapper .page-body .dropdown-basic .dropdown .dropdown-content a { + color: rgba(255, 255, 255, 0.7); } + body.dark-only .page-wrapper.horizontal-wrapper .page-body-wrapper .page-body .dropdown-basic .dropdown .dropdown-content a:hover, body.dark-only .compact-wrapper .page-body-wrapper .page-body .dropdown-basic .dropdown .dropdown-content a:hover { + background-color: #111727; } + body.dark-only .page-wrapper.horizontal-wrapper .page-body-wrapper .page-body .dropdown-basic .dropdown .dropdown-content .dropdown-divider, body.dark-only .compact-wrapper .page-body-wrapper .page-body .dropdown-basic .dropdown .dropdown-content .dropdown-divider { + border: 1px solid rgba(36, 105, 92, 0.2); } + body.dark-only .page-wrapper.horizontal-wrapper .page-body-wrapper .page-body .dropup-basic .dropup .dropup-content, body.dark-only .compact-wrapper .page-body-wrapper .page-body .dropup-basic .dropup .dropup-content { + background-color: #202938; } + body.dark-only .page-wrapper.horizontal-wrapper .page-body-wrapper .page-body .dropup-basic .dropup .dropup-content a, body.dark-only .compact-wrapper .page-body-wrapper .page-body .dropup-basic .dropup .dropup-content a { + color: rgba(255, 255, 255, 0.7); } + body.dark-only .page-wrapper.horizontal-wrapper .page-body-wrapper .page-body .dropup-basic .dropup .dropup-content a:hover, body.dark-only .page-wrapper.horizontal-wrapper .page-body-wrapper .page-body .dropup-basic .dropup .dropup-content a.active, body.dark-only .compact-wrapper .page-body-wrapper .page-body .dropup-basic .dropup .dropup-content a:hover, body.dark-only .compact-wrapper .page-body-wrapper .page-body .dropup-basic .dropup .dropup-content a.active { + background-color: #111727; } + body.dark-only .page-wrapper.horizontal-wrapper .page-body-wrapper .page-body .dropzone.dz-clickable .dz-message h6, body.dark-only .compact-wrapper .page-body-wrapper .page-body .dropzone.dz-clickable .dz-message h6 { + color: rgba(255, 255, 255, 0.7); } + body.dark-only .page-wrapper.horizontal-wrapper .page-body-wrapper .page-body .dropzone.dz-clickable .dz-message span, body.dark-only .compact-wrapper .page-body-wrapper .page-body .dropzone.dz-clickable .dz-message span { + color: #98a6ad; } + body.dark-only .page-wrapper.horizontal-wrapper .page-body-wrapper .page-body .dropzone .dz-preview, body.dark-only .compact-wrapper .page-body-wrapper .page-body .dropzone .dz-preview { + background-color: #202938; } + body.dark-only .page-wrapper.horizontal-wrapper .page-body-wrapper .page-body .dropzone .dz-preview .dz-details, body.dark-only .compact-wrapper .page-body-wrapper .page-body .dropzone .dz-preview .dz-details { + background-color: #111727; } + body.dark-only .page-wrapper.horizontal-wrapper .page-body-wrapper .page-body .browser-widget .media-body, body.dark-only .compact-wrapper .page-body-wrapper .page-body .browser-widget .media-body { + -webkit-column-rule: 1px solid rgba(36, 105, 92, 0.2); + -moz-column-rule: 1px solid rgba(36, 105, 92, 0.2); + column-rule: 1px solid rgba(36, 105, 92, 0.2); } + body.dark-only .page-wrapper.horizontal-wrapper .page-body-wrapper .page-body .browser-widget .media-body h4, body.dark-only .compact-wrapper .page-body-wrapper .page-body .browser-widget .media-body h4 { + color: rgba(255, 255, 255, 0.7); } + body.dark-only .page-wrapper.horizontal-wrapper .page-body-wrapper .page-body .browser-widget .media-body h4 span, body.dark-only .compact-wrapper .page-body-wrapper .page-body .browser-widget .media-body h4 span { + color: rgba(255, 255, 255, 0.7); } + body.dark-only .page-wrapper.horizontal-wrapper .page-body-wrapper .page-body .browser-widget .media-body span, body.dark-only .compact-wrapper .page-body-wrapper .page-body .browser-widget .media-body span { + color: #98a6ad; } + body.dark-only .page-wrapper.horizontal-wrapper .page-body-wrapper .page-body .email-wrap .cke_top, body.dark-only .compact-wrapper .page-body-wrapper .page-body .email-wrap .cke_top { + border-color: rgba(36, 105, 92, 0.2) !important; } + body.dark-only .page-wrapper.horizontal-wrapper .page-body-wrapper .page-body .email-wrap .cke_chrome, body.dark-only .compact-wrapper .page-body-wrapper .page-body .email-wrap .cke_chrome { + border-color: rgba(36, 105, 92, 0.2) !important; + background-color: #111727; + color: rgba(255, 255, 255, 0.7); } + body.dark-only .page-wrapper.horizontal-wrapper .page-body-wrapper .page-body .email-wrap .email-app-sidebar .media img, body.dark-only .compact-wrapper .page-body-wrapper .page-body .email-wrap .email-app-sidebar .media img { + border: 2px solid rgba(36, 105, 92, 0.2); } + body.dark-only .page-wrapper.horizontal-wrapper .page-body-wrapper .page-body .email-wrap .email-app-sidebar .main-menu > li a, body.dark-only .compact-wrapper .page-body-wrapper .page-body .email-wrap .email-app-sidebar .main-menu > li a { + color: rgba(255, 255, 255, 0.7); } + body.dark-only .page-wrapper.horizontal-wrapper .page-body-wrapper .page-body .email-wrap .email-app-sidebar .main-menu > li a:hover, body.dark-only .compact-wrapper .page-body-wrapper .page-body .email-wrap .email-app-sidebar .main-menu > li a:hover { + background-color: #202938; } + body.dark-only .page-wrapper.horizontal-wrapper .page-body-wrapper .page-body .email-wrap .email-right-aside .email-body .inbox .media.active, body.dark-only .compact-wrapper .page-body-wrapper .page-body .email-wrap .email-right-aside .email-body .inbox .media.active { + background-color: #202938; } + body.dark-only .page-wrapper.horizontal-wrapper .page-body-wrapper .page-body .email-wrap .email-right-aside .email-body .inbox .media:hover, body.dark-only .compact-wrapper .page-body-wrapper .page-body .email-wrap .email-right-aside .email-body .inbox .media:hover { + background-color: #202938; } + body.dark-only .page-wrapper.horizontal-wrapper .page-body-wrapper .page-body .email-wrap .media-body h6, body.dark-only .compact-wrapper .page-body-wrapper .page-body .email-wrap .media-body h6 { + color: rgba(255, 255, 255, 0.7); } + body.dark-only .page-wrapper.horizontal-wrapper .page-body-wrapper .page-body .email-wrap .media-body h6 small, body.dark-only .compact-wrapper .page-body-wrapper .page-body .email-wrap .media-body h6 small { + color: #98a6ad; } + body.dark-only .page-wrapper.horizontal-wrapper .page-body-wrapper .page-body .email-wrap .media-body h6 small span, body.dark-only .compact-wrapper .page-body-wrapper .page-body .email-wrap .media-body h6 small span { + color: #98a6ad; } + body.dark-only .page-wrapper.horizontal-wrapper .page-body-wrapper .page-body .email-wrap .media-body p, body.dark-only .compact-wrapper .page-body-wrapper .page-body .email-wrap .media-body p { + color: #98a6ad; } + body.dark-only .page-wrapper.horizontal-wrapper .page-body-wrapper .page-body .email-wrap .email-top, body.dark-only .compact-wrapper .page-body-wrapper .page-body .email-wrap .email-top { + border-bottom: 1px solid rgba(36, 105, 92, 0.2); } + body.dark-only .page-wrapper.horizontal-wrapper .page-body-wrapper .page-body .email-wrap p, body.dark-only .compact-wrapper .page-body-wrapper .page-body .email-wrap p { + color: #98a6ad; } + body.dark-only .page-wrapper.horizontal-wrapper .page-body-wrapper .page-body .email-wrap .email-content .email-top .user-emailid:after, body.dark-only .compact-wrapper .page-body-wrapper .page-body .email-wrap .email-content .email-top .user-emailid:after { + border: 1px solid rgba(36, 105, 92, 0.2); } + body.dark-only .page-wrapper.horizontal-wrapper .page-body-wrapper .page-body .email-wrap .email-wrapper .emailread-group:nth-child(n+2), body.dark-only .compact-wrapper .page-body-wrapper .page-body .email-wrap .email-wrapper .emailread-group:nth-child(n+2) { + border-color: rgba(36, 105, 92, 0.2); } + body.dark-only .page-wrapper.horizontal-wrapper .page-body-wrapper .page-body .dropdown-menu, body.dark-only .compact-wrapper .page-body-wrapper .page-body .dropdown-menu { + background-color: #202938; + border: 1px solid rgba(36, 105, 92, 0.2); } + body.dark-only .page-wrapper.horizontal-wrapper .page-body-wrapper .page-body .dropdown-menu a, body.dark-only .compact-wrapper .page-body-wrapper .page-body .dropdown-menu a { + color: rgba(255, 255, 255, 0.7); } + body.dark-only .page-wrapper.horizontal-wrapper .page-body-wrapper .page-body .dropdown-menu a:hover, body.dark-only .compact-wrapper .page-body-wrapper .page-body .dropdown-menu a:hover { + background-color: #111727; } + body.dark-only .page-wrapper.horizontal-wrapper .page-body-wrapper .page-body .icon-lists div i, body.dark-only .compact-wrapper .page-body-wrapper .page-body .icon-lists div i { + color: #98a6ad; } + body.dark-only .page-wrapper.horizontal-wrapper .page-body-wrapper .page-body .icon-lists div:hover, body.dark-only .compact-wrapper .page-body-wrapper .page-body .icon-lists div:hover { + background-color: #202938; } + body.dark-only .page-wrapper.horizontal-wrapper .page-body-wrapper .page-body .widget-joins .media .media-body > span, body.dark-only .compact-wrapper .page-body-wrapper .page-body .widget-joins .media .media-body > span { + color: #98a6ad; } + body.dark-only .page-wrapper.horizontal-wrapper .page-body-wrapper .page-body .widget-joins .media .details, body.dark-only .compact-wrapper .page-body-wrapper .page-body .widget-joins .media .details { + border-left: 1px solid rgba(36, 105, 92, 0.2); } + body.dark-only .page-wrapper.horizontal-wrapper .page-body-wrapper .page-body .widget-joins:before, body.dark-only .page-wrapper.horizontal-wrapper .page-body-wrapper .page-body .widget-joins:after, body.dark-only .compact-wrapper .page-body-wrapper .page-body .widget-joins:before, body.dark-only .compact-wrapper .page-body-wrapper .page-body .widget-joins:after { + background-color: rgba(36, 105, 92, 0.2); } + body.dark-only .page-wrapper.horizontal-wrapper .page-body-wrapper .page-body .redial-social-widget i, body.dark-only .compact-wrapper .page-body-wrapper .page-body .redial-social-widget i { + background-color: #111727; } + body.dark-only .page-wrapper.horizontal-wrapper .page-body-wrapper .page-body .social-widget-card h5, body.dark-only .page-wrapper.horizontal-wrapper .page-body-wrapper .page-body .social-widget-card h4, body.dark-only .compact-wrapper .page-body-wrapper .page-body .social-widget-card h5, body.dark-only .compact-wrapper .page-body-wrapper .page-body .social-widget-card h4 { + color: rgba(255, 255, 255, 0.7); } + body.dark-only .page-wrapper.horizontal-wrapper .page-body-wrapper .page-body .social-widget-card span, body.dark-only .compact-wrapper .page-body-wrapper .page-body .social-widget-card span { + color: #98a6ad; } + body.dark-only .page-wrapper.horizontal-wrapper .page-body-wrapper .page-body .b-b-light, body.dark-only .compact-wrapper .page-body-wrapper .page-body .b-b-light { + border-bottom: 1px solid rgba(36, 105, 92, 0.2) !important; } + body.dark-only .page-wrapper.horizontal-wrapper .page-body-wrapper .page-body .b-r-dark, body.dark-only .compact-wrapper .page-body-wrapper .page-body .b-r-dark { + border-right: 1px solid #fff !important; } + body.dark-only .page-wrapper.horizontal-wrapper .page-body-wrapper .page-body .testimonial i, body.dark-only .compact-wrapper .page-body-wrapper .page-body .testimonial i { + color: rgba(36, 105, 92, 0.2); } + body.dark-only .page-wrapper.horizontal-wrapper .page-body-wrapper .page-body .testimonial p, body.dark-only .compact-wrapper .page-body-wrapper .page-body .testimonial p { + color: rgba(255, 255, 255, 0.7); } + body.dark-only .page-wrapper.horizontal-wrapper .page-body-wrapper .page-body .testimonial h5, body.dark-only .compact-wrapper .page-body-wrapper .page-body .testimonial h5 { + color: rgba(255, 255, 255, 0.7); } + body.dark-only .page-wrapper.horizontal-wrapper .page-body-wrapper .page-body .testimonial span, body.dark-only .compact-wrapper .page-body-wrapper .page-body .testimonial span { + color: #98a6ad; } + body.dark-only .page-wrapper.horizontal-wrapper .page-body-wrapper .page-body .grid-showcase span, body.dark-only .compact-wrapper .page-body-wrapper .page-body .grid-showcase span { + background-color: #111727; + border: 1px solid rgba(36, 105, 92, 0.2); } + body.dark-only .page-wrapper.horizontal-wrapper .page-body-wrapper .page-body .grid-align .row, body.dark-only .compact-wrapper .page-body-wrapper .page-body .grid-align .row { + background-color: rgba(36, 105, 92, 0.2); + border: 1px solid rgba(36, 105, 92, 0.2); } + body.dark-only .page-wrapper.horizontal-wrapper .page-body-wrapper .page-body .border-style .card, body.dark-only .compact-wrapper .page-body-wrapper .page-body .border-style .card { + border: 1px solid rgba(36, 105, 92, 0.2); } + body.dark-only .page-wrapper.horizontal-wrapper .page-body-wrapper .page-body .offer-style .card, body.dark-only .compact-wrapper .page-body-wrapper .page-body .offer-style .card { + border: 1px dashed rgba(36, 105, 92, 0.2); } + body.dark-only .page-wrapper.horizontal-wrapper .page-body-wrapper .page-body .page-builder .btn-grid, body.dark-only .compact-wrapper .page-body-wrapper .page-body .page-builder .btn-grid { + background-color: #111727; + color: #98a6ad !important; + border-right: 1px solid rgba(36, 105, 92, 0.2); } + body.dark-only .page-wrapper.horizontal-wrapper .page-body-wrapper .page-body .page-builder .ge-mainControls .ge-addRowGroup .ge-row-icon .column, body.dark-only .compact-wrapper .page-body-wrapper .page-body .page-builder .ge-mainControls .ge-addRowGroup .ge-row-icon .column { + border-left: 3px solid #111727; } + body.dark-only .page-wrapper.horizontal-wrapper .page-body-wrapper .page-body .page-builder .btn-code, body.dark-only .page-wrapper.horizontal-wrapper .page-body-wrapper .page-body .page-builder .btn-screen, body.dark-only .compact-wrapper .page-body-wrapper .page-body .page-builder .btn-code, body.dark-only .compact-wrapper .page-body-wrapper .page-body .page-builder .btn-screen { + color: #98a6ad; + border-right: 1px solid rgba(36, 105, 92, 0.2); } + body.dark-only .page-wrapper.horizontal-wrapper .page-body-wrapper .page-body .page-builder .ge-canvas.ge-editing .row, body.dark-only .compact-wrapper .page-body-wrapper .page-body .page-builder .ge-canvas.ge-editing .row { + background-color: #202938; } + body.dark-only .page-wrapper.horizontal-wrapper .page-body-wrapper .page-body .page-builder .ge-canvas.ge-editing .column, body.dark-only .compact-wrapper .page-body-wrapper .page-body .page-builder .ge-canvas.ge-editing .column { + border: 1px solid rgba(36, 105, 92, 0.2); + background-color: #111727; } + body.dark-only .page-wrapper.horizontal-wrapper .page-body-wrapper .page-body .page-builder .ge-canvas.ge-editing .ge-tools-drawer .ge-details input, body.dark-only .compact-wrapper .page-body-wrapper .page-body .page-builder .ge-canvas.ge-editing .ge-tools-drawer .ge-details input { + background-color: #202938; + border-color: rgba(36, 105, 92, 0.2); + color: #98a6ad; } + body.dark-only .page-wrapper.horizontal-wrapper .page-body-wrapper .page-body .page-builder .ge-canvas.ge-editing .ge-tools-drawer .ge-details .btn-group a, body.dark-only .compact-wrapper .page-body-wrapper .page-body .page-builder .ge-canvas.ge-editing .ge-tools-drawer .ge-details .btn-group a { + color: #98a6ad; } + body.dark-only .page-wrapper.horizontal-wrapper .page-body-wrapper .page-body .page-builder .ge-content-type-ckeditor, body.dark-only .compact-wrapper .page-body-wrapper .page-body .page-builder .ge-content-type-ckeditor { + color: rgba(255, 255, 255, 0.7); } + body.dark-only .page-wrapper.horizontal-wrapper .page-body-wrapper .page-body .search-page .info-block + .info-block, body.dark-only .compact-wrapper .page-body-wrapper .page-body .search-page .info-block + .info-block { + border-top: 1px solid rgba(36, 105, 92, 0.2); } + body.dark-only .page-wrapper.horizontal-wrapper .page-body-wrapper .page-body .card-absolute .bg-primary h5, body.dark-only .page-wrapper.horizontal-wrapper .page-body-wrapper .page-body .card-absolute .bg-secondary h5, body.dark-only .compact-wrapper .page-body-wrapper .page-body .card-absolute .bg-primary h5, body.dark-only .compact-wrapper .page-body-wrapper .page-body .card-absolute .bg-secondary h5 { + color: #fff; } + body.dark-only .page-wrapper.horizontal-wrapper .page-body-wrapper .page-body .timeline-small .media .timeline-round.timeline-line-1:after, body.dark-only .page-wrapper.horizontal-wrapper .page-body-wrapper .page-body .timeline-small .media .timeline-round.small-line:after, body.dark-only .page-wrapper.horizontal-wrapper .page-body-wrapper .page-body .timeline-small .media .timeline-round.medium-line:after, body.dark-only .compact-wrapper .page-body-wrapper .page-body .timeline-small .media .timeline-round.timeline-line-1:after, body.dark-only .compact-wrapper .page-body-wrapper .page-body .timeline-small .media .timeline-round.small-line:after, body.dark-only .compact-wrapper .page-body-wrapper .page-body .timeline-small .media .timeline-round.medium-line:after { + background-color: rgba(36, 105, 92, 0.2); } + body.dark-only .page-wrapper.horizontal-wrapper .page-body-wrapper footer, body.dark-only .compact-wrapper .page-body-wrapper footer { + border-top: 1px solid rgba(36, 105, 92, 0.2); + background-color: #111727; } + body.dark-only .page-wrapper.horizontal-wrapper .page-body-wrapper footer p, body.dark-only .compact-wrapper .page-body-wrapper footer p { + color: rgba(255, 255, 255, 0.7); } + body.dark-only .page-wrapper.horizontal-wrapper .page-body-wrapper .custom-select, body.dark-only .page-wrapper.horizontal-wrapper .page-body-wrapper .custom-file-label, body.dark-only .compact-wrapper .page-body-wrapper .custom-select, body.dark-only .compact-wrapper .page-body-wrapper .custom-file-label { + background: #202938; + color: rgba(255, 255, 255, 0.7); } + body.dark-only .page-wrapper.horizontal-wrapper .page-body-wrapper .footer-fix, body.dark-only .compact-wrapper .page-body-wrapper .footer-fix { + background-color: #111727; + border-top: 1px solid rgba(36, 105, 92, 0.2); } + body.dark-only .page-wrapper.horizontal-wrapper .dt-button-info, body.dark-only .compact-wrapper .dt-button-info { + background-color: #111727; + border: 1px solid #98a6ad; } + body.dark-only .page-wrapper.horizontal-wrapper .dt-button-info h2, body.dark-only .compact-wrapper .dt-button-info h2 { + background-color: #111727; } + body.dark-only .page-wrapper.horizontal-wrapper .chat-box .about .name, body.dark-only .compact-wrapper .chat-box .about .name { + color: rgba(255, 255, 255, 0.7); } + body.dark-only .page-wrapper.horizontal-wrapper .chat-box .chat-menu, body.dark-only .compact-wrapper .chat-box .chat-menu { + border-left: 1px solid rgba(36, 105, 92, 0.2); } + body.dark-only .page-wrapper.horizontal-wrapper .chat-box .chat-menu .nav-tabs, body.dark-only .compact-wrapper .chat-box .chat-menu .nav-tabs { + border-bottom: 1px solid rgba(36, 105, 92, 0.2); } + body.dark-only .page-wrapper.horizontal-wrapper .chat-box .chat-menu .nav-tabs .nav-item .nav-link.active, body.dark-only .compact-wrapper .chat-box .chat-menu .nav-tabs .nav-item .nav-link.active { + color: rgba(255, 255, 255, 0.7) !important; } + body.dark-only .page-wrapper.horizontal-wrapper .chat-box .status, body.dark-only .compact-wrapper .chat-box .status { + color: #98a6ad; } + body.dark-only .page-wrapper.horizontal-wrapper .chat-box .status p, body.dark-only .compact-wrapper .chat-box .status p { + color: rgba(255, 255, 255, 0.7) !important; } + body.dark-only .page-wrapper.horizontal-wrapper .chat-box .chat-right-aside .chat .chat-header, body.dark-only .compact-wrapper .chat-box .chat-right-aside .chat .chat-header { + border-bottom: 1px solid rgba(36, 105, 92, 0.2); } + body.dark-only .page-wrapper.horizontal-wrapper .chat-box .chat-right-aside .chat .chat-header .chat-menu-icons li a i, body.dark-only .compact-wrapper .chat-box .chat-right-aside .chat .chat-header .chat-menu-icons li a i { + color: #98a6ad; } + body.dark-only .page-wrapper.horizontal-wrapper .chat-box .chat-right-aside .chat .chat-header img, body.dark-only .compact-wrapper .chat-box .chat-right-aside .chat .chat-header img { + -webkit-box-shadow: 1px 1px 4px 1px #202938; + box-shadow: 1px 1px 4px 1px #202938; } + body.dark-only .page-wrapper.horizontal-wrapper .chat-box .chat-right-aside .chat .chat-msg-box .my-message, body.dark-only .compact-wrapper .chat-box .chat-right-aside .chat .chat-msg-box .my-message { + border: 1px solid rgba(36, 105, 92, 0.2); } + body.dark-only .page-wrapper.horizontal-wrapper .chat-box .chat-right-aside .chat .chat-msg-box .message, body.dark-only .compact-wrapper .chat-box .chat-right-aside .chat .chat-msg-box .message { + color: rgba(255, 255, 255, 0.7); } + body.dark-only .page-wrapper.horizontal-wrapper .chat-box .chat-right-aside .chat .chat-msg-box .other-message, body.dark-only .compact-wrapper .chat-box .chat-right-aside .chat .chat-msg-box .other-message { + background-color: #202938; } + body.dark-only .page-wrapper.horizontal-wrapper .chat-box .chat-right-aside .chat .chat-message, body.dark-only .compact-wrapper .chat-box .chat-right-aside .chat .chat-message { + background-color: #111727; + border-top: 1px solid rgba(36, 105, 92, 0.2); } + body.dark-only .page-wrapper.horizontal-wrapper .chat-box .chat-right-aside .chat .chat-message .input-group .form-control, body.dark-only .compact-wrapper .chat-box .chat-right-aside .chat .chat-message .input-group .form-control { + background-color: #111727; } + body.dark-only .page-wrapper.horizontal-wrapper .chat-box .chat-history .call-icons ul li, body.dark-only .compact-wrapper .chat-box .chat-history .call-icons ul li { + border: 1px solid rgba(36, 105, 92, 0.2); } + body.dark-only .page-wrapper.horizontal-wrapper .chat-box .chat-history .call-icons ul li a, body.dark-only .compact-wrapper .chat-box .chat-history .call-icons ul li a { + color: #98a6ad; } + body.dark-only .page-wrapper.horizontal-wrapper .chat-box .bitcoin-chat .chat .chat-msg-box .message.my-message, body.dark-only .compact-wrapper .chat-box .bitcoin-chat .chat .chat-msg-box .message.my-message { + background-color: #1c222b; } + body.dark-only .page-wrapper.horizontal-wrapper .chat-box .bitcoin-chat .chat .chat-msg-box .message.my-message .chat-user-img, body.dark-only .compact-wrapper .chat-box .bitcoin-chat .chat .chat-msg-box .message.my-message .chat-user-img { + border: 2px solid rgba(36, 105, 92, 0.2); } + body.dark-only .page-wrapper.horizontal-wrapper .chat-box .bitcoin-chat .chat .chat-msg-box .message.other-message .chat-user-img, body.dark-only .compact-wrapper .chat-box .bitcoin-chat .chat .chat-msg-box .message.other-message .chat-user-img { + border: 2px solid rgba(36, 105, 92, 0.2); } + body.dark-only .page-wrapper.horizontal-wrapper pre, body.dark-only .compact-wrapper pre { + background-color: rgba(36, 105, 92, 0.2); + color: rgba(255, 255, 255, 0.7); } + body.dark-only .page-wrapper.horizontal-wrapper .scorlled, body.dark-only .compact-wrapper .scorlled { + background-color: #202938; } + body.dark-only .page-wrapper.horizontal-wrapper .input-group-air, body.dark-only .compact-wrapper .input-group-air { + -webkit-box-shadow: 0 3px 20px 0 rgba(36, 105, 92, 0.2); + box-shadow: 0 3px 20px 0 rgba(36, 105, 92, 0.2); } + body.dark-only .page-wrapper.horizontal-wrapper .input-group-solid .input-group-text, body.dark-only .page-wrapper.horizontal-wrapper .input-group-solid .form-control, body.dark-only .compact-wrapper .input-group-solid .input-group-text, body.dark-only .compact-wrapper .input-group-solid .form-control { + background: #202938; + border: 1px solid rgba(36, 105, 92, 0.2); + color: rgba(255, 255, 255, 0.7); } + body.dark-only .page-wrapper.horizontal-wrapper .semilight-bg-color, body.dark-only .page-wrapper.horizontal-wrapper .header-bg-color, body.dark-only .compact-wrapper .semilight-bg-color, body.dark-only .compact-wrapper .header-bg-color { + background-color: #fff; } + body.dark-only .page-wrapper.horizontal-wrapper .list-group-item, body.dark-only .compact-wrapper .list-group-item { + background-color: #111727; + border: 1px solid rgba(36, 105, 92, 0.2); + color: rgba(255, 255, 255, 0.7); } + body.dark-only .page-wrapper.horizontal-wrapper .list-group-item.active, body.dark-only .compact-wrapper .list-group-item.active { + background-color: #24695c !important; + border-color: #24695c; + color: #fff; } + body.dark-only .page-wrapper.horizontal-wrapper .list-group-item:hover, body.dark-only .page-wrapper.horizontal-wrapper .list-group-item:focus, body.dark-only .compact-wrapper .list-group-item:hover, body.dark-only .compact-wrapper .list-group-item:focus { + z-index: 1; + text-decoration: none; } + body.dark-only .page-wrapper.horizontal-wrapper .list-group-item-action:hover:not(.active), body.dark-only .page-wrapper.horizontal-wrapper .list-group-item-action:focus, body.dark-only .compact-wrapper .list-group-item-action:hover:not(.active), body.dark-only .compact-wrapper .list-group-item-action:focus { + background-color: #202938; } + body.dark-only .page-wrapper.horizontal-wrapper .list-group-flush .list-group-item, body.dark-only .compact-wrapper .list-group-flush .list-group-item { + border-left: 0; + border-right: 0; + border-radius: 0; } + body.dark-only .page-wrapper.horizontal-wrapper .list-group-item-primary, body.dark-only .compact-wrapper .list-group-item-primary { + color: #004085; + background-color: #b8daff; } + body.dark-only .page-wrapper.horizontal-wrapper .list-group-item-secondary, body.dark-only .compact-wrapper .list-group-item-secondary { + color: #383d41; + background-color: #d6d8db; } + body.dark-only .page-wrapper.horizontal-wrapper .list-group-item-success, body.dark-only .compact-wrapper .list-group-item-success { + color: #155724; + background-color: #c3e6cb; } + body.dark-only .page-wrapper.horizontal-wrapper .list-group-item-danger, body.dark-only .compact-wrapper .list-group-item-danger { + color: #721c24; + background-color: #f5c6cb; } + body.dark-only .page-wrapper.horizontal-wrapper .list-group-item-warning, body.dark-only .compact-wrapper .list-group-item-warning { + color: #856404; + background-color: #ffeeba; } + body.dark-only .page-wrapper.horizontal-wrapper .list-group-item-info, body.dark-only .compact-wrapper .list-group-item-info { + color: #0c5460; + background-color: #bee5eb; } + body.dark-only .page-wrapper.horizontal-wrapper .list-group-item-light, body.dark-only .compact-wrapper .list-group-item-light { + color: #818182; + background-color: #fdfdfe; } + body.dark-only .page-wrapper.horizontal-wrapper .list-group-item-dark, body.dark-only .compact-wrapper .list-group-item-dark { + color: #1b1e21; + background-color: #c6c8ca; } + body.dark-only .page-wrapper.horizontal-wrapper .auth-bg, body.dark-only .compact-wrapper .auth-bg { + background-blend-mode: overlay; + background-color: rgba(54, 64, 74, 0.9); } + body.dark-only .page-wrapper.horizontal-wrapper .auth-bg .authentication-box .card, body.dark-only .compact-wrapper .auth-bg .authentication-box .card { + background-color: #111727; } + body.dark-only .page-wrapper.horizontal-wrapper .auth-bg .authentication-box .card .theme-form .form-group input, body.dark-only .compact-wrapper .auth-bg .authentication-box .card .theme-form .form-group input { + color: rgba(255, 255, 255, 0.7); + background-color: #202938; + border: 1px solid rgba(36, 105, 92, 0.2); } + body.dark-only .page-wrapper.horizontal-wrapper .auth-bg .authentication-box .card .theme-form .form-group label, body.dark-only .compact-wrapper .auth-bg .authentication-box .card .theme-form .form-group label { + color: rgba(255, 255, 255, 0.7); } + body.dark-only .page-wrapper.horizontal-wrapper .auth-bg .authentication-box .card .theme-form .checkbox label, body.dark-only .compact-wrapper .auth-bg .authentication-box .card .theme-form .checkbox label { + color: rgba(255, 255, 255, 0.7); } + body.dark-only .page-wrapper.horizontal-wrapper .auth-bg .authentication-box .card .theme-form .checkbox label::before, body.dark-only .compact-wrapper .auth-bg .authentication-box .card .theme-form .checkbox label::before { + background-color: #202938; + border: 1px solid rgba(36, 105, 92, 0.2); } + body.dark-only .page-wrapper.horizontal-wrapper .auth-bg .authentication-box h3, body.dark-only .page-wrapper.horizontal-wrapper .auth-bg .authentication-box h4, body.dark-only .page-wrapper.horizontal-wrapper .auth-bg .authentication-box h6, body.dark-only .compact-wrapper .auth-bg .authentication-box h3, body.dark-only .compact-wrapper .auth-bg .authentication-box h4, body.dark-only .compact-wrapper .auth-bg .authentication-box h6 { + color: #fff; } + body.dark-only .page-wrapper.horizontal-wrapper .auth-bg-video, body.dark-only .compact-wrapper .auth-bg-video { + background-blend-mode: overlay; + background-color: rgba(54, 64, 74, 0.7); } + body.dark-only .page-wrapper.horizontal-wrapper .auth-bg-video .authentication-box h4, body.dark-only .page-wrapper.horizontal-wrapper .auth-bg-video .authentication-box h3, body.dark-only .compact-wrapper .auth-bg-video .authentication-box h4, body.dark-only .compact-wrapper .auth-bg-video .authentication-box h3 { + color: #fff; } + body.dark-only .page-wrapper.horizontal-wrapper .auth-bg-video .authentication-box h6, body.dark-only .compact-wrapper .auth-bg-video .authentication-box h6 { + color: #98a6ad; } + body.dark-only .page-wrapper.horizontal-wrapper .auth-bg-video .authentication-box .card, body.dark-only .compact-wrapper .auth-bg-video .authentication-box .card { + background-color: #111727; } + body.dark-only .page-wrapper.horizontal-wrapper .auth-bg-video .authentication-box .card .theme-form .form-group input[type=text], + body.dark-only .page-wrapper.horizontal-wrapper .auth-bg-video .authentication-box .card .theme-form .form-group input[type=password], body.dark-only .compact-wrapper .auth-bg-video .authentication-box .card .theme-form .form-group input[type=text], + body.dark-only .compact-wrapper .auth-bg-video .authentication-box .card .theme-form .form-group input[type=password] { + background-color: #202938; + border: 1px solid rgba(36, 105, 92, 0.2); + color: rgba(255, 255, 255, 0.7); } + body.dark-only .page-wrapper.horizontal-wrapper .auth-bg-video .authentication-box .card .theme-form .checkbox label::before, body.dark-only .compact-wrapper .auth-bg-video .authentication-box .card .theme-form .checkbox label::before { + background-color: #202938; + border: 1px solid rgba(36, 105, 92, 0.2); } + body.dark-only .page-wrapper.horizontal-wrapper .error-wrapper .maintenance-icons li i, body.dark-only .compact-wrapper .error-wrapper .maintenance-icons li i { + color: rgba(36, 105, 92, 0.2); } + body.dark-only .page-wrapper.horizontal-wrapper .error-wrapper .maintenance-icons li:nth-child(3) i, body.dark-only .compact-wrapper .error-wrapper .maintenance-icons li:nth-child(3) i { + color: rgba(36, 105, 92, 0.2); } + body.dark-only .page-wrapper.horizontal-wrapper .modal-content, body.dark-only .compact-wrapper .modal-content { + background-color: #111727; + border-color: rgba(36, 105, 92, 0.2); } + body.dark-only .page-wrapper.horizontal-wrapper .modal-content .modal-header, body.dark-only .compact-wrapper .modal-content .modal-header { + border-bottom: 1px solid rgba(36, 105, 92, 0.2); + background-color: #111727; + border-color: rgba(36, 105, 92, 0.2); } + body.dark-only .page-wrapper.horizontal-wrapper .modal-content .modal-header .close, body.dark-only .compact-wrapper .modal-content .modal-header .close { + color: #98a6ad; } + body.dark-only .page-wrapper.horizontal-wrapper .modal-content .modal-footer, body.dark-only .compact-wrapper .modal-content .modal-footer { + background-color: #111727; + border-color: rgba(36, 105, 92, 0.2); } + body.dark-only .page-wrapper.horizontal-wrapper .btn-close, body.dark-only .compact-wrapper .btn-close { + -webkit-filter: invert(1); + filter: invert(1); } + body.dark-only .page-wrapper.horizontal-wrapper .comingsoon, body.dark-only .compact-wrapper .comingsoon { + background-blend-mode: overlay; + background-color: rgba(54, 64, 74, 0.9); } + body.dark-only .page-wrapper.horizontal-wrapper .comingsoon .comingsoon-inner h5, body.dark-only .compact-wrapper .comingsoon .comingsoon-inner h5 { + color: rgba(255, 255, 255, 0.7); } + body.dark-only .page-wrapper.horizontal-wrapper .comingsoon .comingsoon-inner .countdown, body.dark-only .compact-wrapper .comingsoon .comingsoon-inner .countdown { + border-top: 1px solid rgba(36, 105, 92, 0.2); + border-bottom: 1px solid rgba(36, 105, 92, 0.2); } + body.dark-only .page-wrapper.horizontal-wrapper .comingsoon .comingsoon-inner .countdown .title, body.dark-only .compact-wrapper .comingsoon .comingsoon-inner .countdown .title { + color: rgba(255, 255, 255, 0.7); } + body.dark-only .page-wrapper.horizontal-wrapper .comingsoon .comingsoon-inner .coming-soon-bottom-link a, body.dark-only .compact-wrapper .comingsoon .comingsoon-inner .coming-soon-bottom-link a { + color: rgba(255, 255, 255, 0.7); } + body.dark-only .page-wrapper.horizontal-wrapper .theme-form .login-divider, body.dark-only .compact-wrapper .theme-form .login-divider { + border-top: 1px solid rgba(36, 105, 92, 0.2); } + body.dark-only .page-wrapper.horizontal-wrapper .theme-form .login-divider:before, body.dark-only .compact-wrapper .theme-form .login-divider:before { + background: rgba(36, 105, 92, 0.2); + color: rgba(255, 255, 255, 0.7); } + body.dark-only .page-wrapper.horizontal-wrapper .authentication-main, body.dark-only .compact-wrapper .authentication-main { + background-color: rgba(36, 105, 92, 0.2); } + body.dark-only .page-wrapper.horizontal-wrapper .authentication-main .auth-innerright .reset-password-box .card, body.dark-only .compact-wrapper .authentication-main .auth-innerright .reset-password-box .card { + background-color: #111727; } + body.dark-only .page-wrapper.horizontal-wrapper .authentication-main .auth-innerright .reset-password-box .reset-password-link, body.dark-only .compact-wrapper .authentication-main .auth-innerright .reset-password-box .reset-password-link { + color: #98a6ad; } + body.dark-only .page-wrapper.horizontal-wrapper .authentication-main .auth-innerright .reset-password-box .theme-form .form-group label, body.dark-only .compact-wrapper .authentication-main .auth-innerright .reset-password-box .theme-form .form-group label { + color: #98a6ad; } + body.dark-only .page-wrapper.horizontal-wrapper .authentication-main .auth-innerright .reset-password-box .theme-form .form-group .form-control, body.dark-only .compact-wrapper .authentication-main .auth-innerright .reset-password-box .theme-form .form-group .form-control { + background-color: #202938; + color: rgba(255, 255, 255, 0.7); + border-color: rgba(36, 105, 92, 0.2); } + body.dark-only .page-wrapper.horizontal-wrapper .authentication-main .auth-innerright .reset-password-box .theme-form .opt-box, body.dark-only .compact-wrapper .authentication-main .auth-innerright .reset-password-box .theme-form .opt-box { + background-color: rgba(36, 105, 92, 0.2); } + body.dark-only .page-wrapper.horizontal-wrapper .authentication-main .auth-innerright .authentication-box h4, body.dark-only .compact-wrapper .authentication-main .auth-innerright .authentication-box h4 { + color: rgba(255, 255, 255, 0.7); } + body.dark-only .page-wrapper.horizontal-wrapper .authentication-main .auth-innerright .authentication-box h6, body.dark-only .compact-wrapper .authentication-main .auth-innerright .authentication-box h6 { + color: #98a6ad; } + body.dark-only .page-wrapper.horizontal-wrapper .authentication-main .auth-innerright .authentication-box h3, body.dark-only .compact-wrapper .authentication-main .auth-innerright .authentication-box h3 { + color: rgba(255, 255, 255, 0.7); } + body.dark-only .page-wrapper.horizontal-wrapper .authentication-main .auth-innerright .authentication-box .card, body.dark-only .compact-wrapper .authentication-main .auth-innerright .authentication-box .card { + background-color: #111727; } + body.dark-only .page-wrapper.horizontal-wrapper .authentication-main .auth-innerright .authentication-box .card .theme-form .form-group input[type=text], + body.dark-only .page-wrapper.horizontal-wrapper .authentication-main .auth-innerright .authentication-box .card .theme-form .form-group input[type=password], body.dark-only .compact-wrapper .authentication-main .auth-innerright .authentication-box .card .theme-form .form-group input[type=text], + body.dark-only .compact-wrapper .authentication-main .auth-innerright .authentication-box .card .theme-form .form-group input[type=password] { + background-color: #202938; + border: 1px solid rgba(36, 105, 92, 0.2); + color: rgba(255, 255, 255, 0.7); } + body.dark-only .page-wrapper.horizontal-wrapper .authentication-main .auth-innerright .authentication-box .card .theme-form .checkbox label::before, body.dark-only .compact-wrapper .authentication-main .auth-innerright .authentication-box .card .theme-form .checkbox label::before { + background-color: #202938; + border: 1px solid rgba(36, 105, 92, 0.2); } + body.dark-only .page-wrapper.horizontal-wrapper .vertical-menu-main, body.dark-only .compact-wrapper .vertical-menu-main { + background-color: #111727; } + body.dark-only .page-wrapper.horizontal-wrapper .pixelstrap a, body.dark-only .compact-wrapper .pixelstrap a { + color: rgba(255, 255, 255, 0.7); } + body.dark-only .page-wrapper.horizontal-wrapper .pixelstrap a:focus, body.dark-only .page-wrapper.horizontal-wrapper .pixelstrap a:active, body.dark-only .page-wrapper.horizontal-wrapper .pixelstrap a:hover, body.dark-only .compact-wrapper .pixelstrap a:focus, body.dark-only .compact-wrapper .pixelstrap a:active, body.dark-only .compact-wrapper .pixelstrap a:hover { + color: rgba(255, 255, 255, 0.7); } + body.dark-only .page-wrapper.horizontal-wrapper .pixelstrap > li > a.highlighted:before, body.dark-only .compact-wrapper .pixelstrap > li > a.highlighted:before { + background-color: #111727; } + body.dark-only .page-wrapper.horizontal-wrapper .pixelstrap > li > a.highlighted:after, body.dark-only .compact-wrapper .pixelstrap > li > a.highlighted:after { + background-color: rgba(36, 105, 92, 0.2); } + body.dark-only .page-wrapper.horizontal-wrapper .border-top, body.dark-only .compact-wrapper .border-top { + border-top: 1px solid rgba(36, 105, 92, 0.2) !important; } + body.dark-only .page-wrapper.horizontal-wrapper .table td, body.dark-only .page-wrapper.horizontal-wrapper .table th, body.dark-only .compact-wrapper .table td, body.dark-only .compact-wrapper .table th { + border-top: 1px solid rgba(36, 105, 92, 0.2); } + body.dark-only .page-wrapper.horizontal-wrapper .breadcrumb, body.dark-only .compact-wrapper .breadcrumb { + background-color: #202938; } + body.dark-only .page-wrapper.horizontal-wrapper .table-bordered, body.dark-only .compact-wrapper .table-bordered { + border: 1px solid rgba(36, 105, 92, 0.2); } + body.dark-only .page-wrapper.horizontal-wrapper .table-border-horizontal tr, body.dark-only .page-wrapper.horizontal-wrapper .table-border-horizontal th, body.dark-only .page-wrapper.horizontal-wrapper .table-border-horizontal td, body.dark-only .compact-wrapper .table-border-horizontal tr, body.dark-only .compact-wrapper .table-border-horizontal th, body.dark-only .compact-wrapper .table-border-horizontal td { + border-top: 1px solid rgba(36, 105, 92, 0.2); } + body.dark-only .page-wrapper.horizontal-wrapper thead, body.dark-only .page-wrapper.horizontal-wrapper tbody, body.dark-only .page-wrapper.horizontal-wrapper tfoot, body.dark-only .page-wrapper.horizontal-wrapper tr, body.dark-only .page-wrapper.horizontal-wrapper td, body.dark-only .page-wrapper.horizontal-wrapper th, body.dark-only .compact-wrapper thead, body.dark-only .compact-wrapper tbody, body.dark-only .compact-wrapper tfoot, body.dark-only .compact-wrapper tr, body.dark-only .compact-wrapper td, body.dark-only .compact-wrapper th { + border: 1px solid rgba(36, 105, 92, 0.2); } + body.dark-only .page-wrapper.horizontal-wrapper .btn-light, body.dark-only .compact-wrapper .btn-light { + background-color: #202938 !important; + border-color: rgba(36, 105, 92, 0.2) !important; + color: rgba(255, 255, 255, 0.7); } + body.dark-only .page-wrapper.horizontal-wrapper .profile-greeting .btn-light, body.dark-only .compact-wrapper .profile-greeting .btn-light { + background-color: #e6edef !important; + border-color: #e6edef !important; + color: #24695c !important; } + body.dark-only .page-wrapper.horizontal-wrapper .note-editor.note-frame .note-statusbar, body.dark-only .compact-wrapper .note-editor.note-frame .note-statusbar { + background-color: #202938; + border-top: 1px solid rgba(36, 105, 92, 0.2); } + body.dark-only .page-wrapper.horizontal-wrapper .note-editor.note-frame .note-status-output, body.dark-only .compact-wrapper .note-editor.note-frame .note-status-output { + border-color: rgba(36, 105, 92, 0.2); } + body.dark-only .page-wrapper.horizontal-wrapper .contacts-tabs .nav-pills, body.dark-only .compact-wrapper .contacts-tabs .nav-pills { + border-right: 1px solid rgba(36, 105, 92, 0.2); } + body.dark-only .page-wrapper.horizontal-wrapper .contacts-tabs .nav-pills .nav-link + .nav-link, body.dark-only .compact-wrapper .contacts-tabs .nav-pills .nav-link + .nav-link { + border-top: 1px solid rgba(36, 105, 92, 0.2); } + body.dark-only .page-wrapper.horizontal-wrapper .list-persons .profile-mail .media .media-body ul li + li, body.dark-only .compact-wrapper .list-persons .profile-mail .media .media-body ul li + li { + border-left: 2px solid rgba(36, 105, 92, 0.2); } + body.dark-only .page-wrapper.horizontal-wrapper .blog-box.blog-shadow .blog-details h4, body.dark-only .compact-wrapper .blog-box.blog-shadow .blog-details h4 { + color: rgba(255, 255, 255, 0.7); } + @media screen and (max-width: 1366px) { + body.dark-only .page-wrapper.horizontal-wrapper .earning-card .card-body > .row .border-right, body.dark-only .compact-wrapper .earning-card .card-body > .row .border-right { + border-bottom: 1px solid rgba(36, 105, 92, 0.2) !important; } + body.dark-only .page-wrapper.horizontal-wrapper .chart_data_left .card-body .chart-main .media, body.dark-only .page-wrapper.horizontal-wrapper .chart_data_right .card-body .chart-main .media, body.dark-only .compact-wrapper .chart_data_left .card-body .chart-main .media, body.dark-only .compact-wrapper .chart_data_right .card-body .chart-main .media { + border-right: 1px solid rgba(36, 105, 92, 0.2); } } + @media (min-width: 1200px) { + body.dark-only .page-wrapper.horizontal-wrapper .pixelstrap ul, body.dark-only .compact-wrapper .pixelstrap ul { + background: #202938; + border: 1px solid rgba(36, 105, 92, 0.2); } + body.dark-only .page-wrapper.horizontal-wrapper .pixelstrap ul a:hover, body.dark-only .page-wrapper.horizontal-wrapper .pixelstrap ul a:focus, body.dark-only .page-wrapper.horizontal-wrapper .pixelstrap ul a:active, body.dark-only .page-wrapper.horizontal-wrapper .pixelstrap ul a.highlighted, body.dark-only .compact-wrapper .pixelstrap ul a:hover, body.dark-only .compact-wrapper .pixelstrap ul a:focus, body.dark-only .compact-wrapper .pixelstrap ul a:active, body.dark-only .compact-wrapper .pixelstrap ul a.highlighted { + color: #24695c; } + body.dark-only .page-wrapper.horizontal-wrapper .pixelstrap ul a.current, body.dark-only .compact-wrapper .pixelstrap ul a.current { + background-color: #202938; + color: #24695c; } } + body.dark-only .page-wrapper.horizontal-wrapper .mega-menu .title, body.dark-only .compact-wrapper .mega-menu .title { + color: rgba(255, 255, 255, 0.7); + border-bottom: 1px solid rgba(36, 105, 92, 0.2); } + body.dark-only .page-wrapper.horizontal-wrapper .mega-menu .galleria-list .galleria > div .username, body.dark-only .compact-wrapper .mega-menu .galleria-list .galleria > div .username { + color: rgba(255, 255, 255, 0.7); } + body.dark-only .page-wrapper.horizontal-wrapper .mega-menu .galleria-list .galleria > div .username small, body.dark-only .compact-wrapper .mega-menu .galleria-list .galleria > div .username small { + color: #98a6ad; } + body.dark-only .page-wrapper.horizontal-wrapper .mega-menu .list-unstyled div a:hover, body.dark-only .compact-wrapper .mega-menu .list-unstyled div a:hover { + color: #24695c; } + body.dark-only .page-wrapper.horizontal-wrapper .default-according .card, body.dark-only .compact-wrapper .default-according .card { + background-color: #111727; } + body.dark-only .page-wrapper.horizontal-wrapper .default-according .card .btn-link, body.dark-only .compact-wrapper .default-according .card .btn-link { + background-color: #111727; + border: 1px solid rgba(36, 105, 92, 0.2); + color: #fff; } + body.dark-only .page-wrapper.horizontal-wrapper .default-according .card .text-muted, body.dark-only .compact-wrapper .default-according .card .text-muted { + color: #98a6ad !important; } + body.dark-only .page-wrapper.horizontal-wrapper .default-according .bg-primary .btn-link, body.dark-only .compact-wrapper .default-according .bg-primary .btn-link { + background-color: #24695c; + border: 1px solid #24695c; } + body.dark-only .page-wrapper.horizontal-wrapper .default-according .bg-secondary .btn-link, body.dark-only .compact-wrapper .default-according .bg-secondary .btn-link { + background-color: #ba895d; + border: 1px solid #ba895d; } + body.dark-only .page-wrapper.horizontal-wrapper .collapse .card-body, body.dark-only .compact-wrapper .collapse .card-body { + background-color: #111727; } + @media screen and (max-width: 1660px) { + body.dark-only .page-wrapper.horizontal-wrapper .chat-box .chat-history .call-icons ul li, body.dark-only .compact-wrapper .chat-box .chat-history .call-icons ul li { + border: 1px solid rgba(36, 105, 92, 0.2); } + body.dark-only .page-wrapper.horizontal-wrapper .chat-box .chat-history .total-time h2, body.dark-only .compact-wrapper .chat-box .chat-history .total-time h2 { + color: rgba(255, 255, 255, 0.7); } + body.dark-only .page-wrapper.horizontal-wrapper .caller-img img, body.dark-only .compact-wrapper .caller-img img { + opacity: 0.7; } + body.dark-only .page-wrapper.horizontal-wrapper .chat-box .chat-history .call-content > div, body.dark-only .compact-wrapper .chat-box .chat-history .call-content > div { + background-color: #111727; + background-blend-mode: overlay; } } + body.dark-only .page-wrapper.horizontal-wrapper .pixelstrap ul, body.dark-only .compact-wrapper .pixelstrap ul { + background: #111727; } + @media only screen and (max-width: 575px) { + body.dark-only .page-wrapper.horizontal-wrapper .widget-joins .border-after-xs:after, body.dark-only .compact-wrapper .widget-joins .border-after-xs:after { + background-color: rgba(36, 105, 92, 0.2); } } + body.dark-only .lg-backdrop { + background-color: #202938; } + body.dark-only .lg-outer .lg-thumb-outer { + background-color: #111727; } + body.dark-only .drag { + background-color: #111727; } + body.dark-only .drag form { + background: #111727; + -webkit-box-shadow: 0 0 30px rgba(36, 105, 92, 0.2); + box-shadow: 0 0 30px rgba(36, 105, 92, 0.2); + border: 1px dotted rgba(36, 105, 92, 0.2); } + body.dark-only .drag form input { + background-color: #202938; + border: 1px solid rgba(36, 105, 92, 0.2); + color: rgba(255, 255, 255, 0.7); } + body.dark-only .drag form .help-block { + text-transform: capitalize; + color: #98a6ad; } + body.dark-only .draggable input { + background-color: #202938; + color: rgba(255, 255, 255, 0.7); + border: 1px solid rgba(36, 105, 92, 0.2); } + body.dark-only .draggable p { + color: #98a6ad; } + body.dark-only .draggable select { + background-color: #202938; + color: rgba(255, 255, 255, 0.7); + border: 1px solid rgba(36, 105, 92, 0.2); } + body.dark-only .draggable .radio label::before, body.dark-only .draggable .checkbox label::before { + background-color: #202938; + border: 1px solid rgba(36, 105, 92, 0.2); } + body.dark-only .select2-container--default .select2-selection--multiple, body.dark-only .select2-container--default .select2-selection--single { + background-color: #202938; + border: 1px solid rgba(36, 105, 92, 0.2) !important; } + body.dark-only .select2-container--default .select2-search--inline .select2-search__field { + color: rgba(255, 255, 255, 0.7); } + body.dark-only .select2-container--default .select2-selection--single .select2-selection__rendered { + color: rgba(255, 255, 255, 0.7); } + body.dark-only .select2-container--default .select2-search--dropdown .select2-search__field { + background-color: #202938; + border: 1px solid rgba(36, 105, 92, 0.2); + color: rgba(255, 255, 255, 0.7); } + body.dark-only .form-bookmark .form-group .select2-container .select2-selection--single { + border-color: rgba(255, 255, 255, 0.7); } + body.dark-only .select2-dropdown { + background-color: #202938; + border: 1px solid rgba(36, 105, 92, 0.2); } + body.dark-only .select2-drpdwn .form-control-primary { + border-color: #24695c !important; + color: #24695c !important; } + body.dark-only .select2-drpdwn .form-control-secondary { + border-color: #ba895d !important; + color: #ba895d !important; } + body.dark-only .select2-drpdwn .form-control-success { + border-color: #1b4c43 !important; + color: #1b4c43 !important; } + body.dark-only .select2-drpdwn .form-control-info { + border-color: #717171 !important; + color: #717171 !important; } + body.dark-only .select2-drpdwn .form-control-warning { + border-color: #e2c636 !important; + color: #e2c636 !important; } + body.dark-only .select2-drpdwn .form-control-danger { + border-color: #d22d3d !important; + color: #d22d3d !important; } + body.dark-only .select2-drpdwn .form-control-inverse { + border-color: #fff !important; + color: #fff !important; } + body.dark-only .select2-drpdwn .form-control-primary-fill { + background-color: #24695c !important; + color: #fff !important; } + body.dark-only .select2-drpdwn .form-control-secondary-fill { + background-color: #ba895d !important; + color: #fff !important; } + body.dark-only .select2-drpdwn .form-control-success-fill { + background-color: #1b4c43 !important; + color: #fff !important; } + body.dark-only .select2-drpdwn .form-control-info-fill { + background-color: #717171 !important; + color: #fff !important; } + body.dark-only .select2-drpdwn .form-control-warning-fill { + background-color: #e2c636 !important; + color: #fff !important; } + body.dark-only .select2-drpdwn .form-control-danger-fill { + background-color: #d22d3d !important; + color: #fff !important; } + body.dark-only .select2-drpdwn .form-control-inverse-fill { + background-color: #fff !important; + color: #000 !important; } + body.dark-only .select2-container--default.select2-container--disabled .select2-selection--single { + background-color: rgba(36, 105, 92, 0.2); } + body.dark-only .theme-form .form-group select.form-control:not([size]):not([multiple]) { + background-color: #202938; + color: rgba(255, 255, 255, 0.7); + border-color: rgba(36, 105, 92, 0.2); } + body.dark-only .theme-form .form-group input[type=text], body.dark-only .theme-form .form-group input[type=email], body.dark-only .theme-form .form-group input[type=search], + body.dark-only .theme-form .form-group input[type=password], body.dark-only .theme-form .form-group input[type=number], body.dark-only .theme-form .form-group input[type=tel], body.dark-only .theme-form .form-group input[type=date], body.dark-only .theme-form .form-group input[type=datetime-local], body.dark-only .theme-form .form-group input[type=time], body.dark-only .theme-form .form-group input[type=datetime-local], body.dark-only .theme-form .form-group input[type=month], body.dark-only .theme-form .form-group input[type=week], + body.dark-only .theme-form .form-group input[type=url], body.dark-only .theme-form .form-group input[type=file], body.dark-only .theme-form .form-group select { + border-color: rgba(36, 105, 92, 0.2); + background-color: #202938; + color: rgba(255, 255, 255, 0.7); } + body.dark-only .theme-form .form-group input[type=text]::-webkit-input-placeholder, body.dark-only .theme-form .form-group input[type=email]::-webkit-input-placeholder, body.dark-only .theme-form .form-group input[type=search]::-webkit-input-placeholder, + body.dark-only .theme-form .form-group input[type=password]::-webkit-input-placeholder, body.dark-only .theme-form .form-group input[type=number]::-webkit-input-placeholder, body.dark-only .theme-form .form-group input[type=tel]::-webkit-input-placeholder, body.dark-only .theme-form .form-group input[type=date]::-webkit-input-placeholder, body.dark-only .theme-form .form-group input[type=datetime-local]::-webkit-input-placeholder, body.dark-only .theme-form .form-group input[type=time]::-webkit-input-placeholder, body.dark-only .theme-form .form-group input[type=datetime-local]::-webkit-input-placeholder, body.dark-only .theme-form .form-group input[type=month]::-webkit-input-placeholder, body.dark-only .theme-form .form-group input[type=week]::-webkit-input-placeholder, + body.dark-only .theme-form .form-group input[type=url]::-webkit-input-placeholder, body.dark-only .theme-form .form-group input[type=file]::-webkit-input-placeholder, body.dark-only .theme-form .form-group select::-webkit-input-placeholder { + color: #98a6ad; } + body.dark-only .theme-form .form-group .form-control { + background-color: #202938; + color: rgba(255, 255, 255, 0.7); } + body.dark-only .theme-form .form-group textarea { + border-color: rgba(36, 105, 92, 0.2); } + body.dark-only .theme-form .form-divider { + border-top: 1px solid rgba(36, 105, 92, 0.2); } + body.dark-only .theme-form .form-divider::before { + background: #111727; + color: rgba(255, 255, 255, 0.7); } + body.dark-only .CodeMirror { + background: #111727; + border: 1px solid rgba(36, 105, 92, 0.2); + color: rgba(255, 255, 255, 0.7); } + body.dark-only .CodeMirror .CodeMirror-code pre { + background: #111727; } + body.dark-only .editor-statusbar { + border-color: rgba(36, 105, 92, 0.2); } + body.dark-only .editor-toolbar { + border-top: 1px solid rgba(36, 105, 92, 0.2); + border-left: 1px solid rgba(36, 105, 92, 0.2); + border-right: 1px solid rgba(36, 105, 92, 0.2); } + body.dark-only .editor-toolbar a { + color: rgba(255, 255, 255, 0.7) !important; } + body.dark-only .editor-toolbar a:hover, body.dark-only .editor-toolbar a.active { + background: rgba(36, 105, 92, 0.2); } + body.dark-only .editor-toolbar i.separator { + border-left: 1px solid #98a6ad; + border-right: 1px solid #98a6ad; } + body.dark-only .editor-toolbar.disabled-for-preview a:not(.no-disable) { + background: rgba(36, 105, 92, 0.2); } + body.dark-only .editor-preview { + background-color: #111727; } + body.dark-only .editor-toolbar.fullscreen, body.dark-only .editor-preview-side { + background: #111727; + border: 1px solid #98a6ad; } + body.dark-only .u-step { + background: rgba(36, 105, 92, 0.2); } + body.dark-only .u-step.active, body.dark-only .u-step.current { + background: #24695c; + color: #fff; } + body.dark-only .u-step-title, body.dark-only .u-pearl-title { + color: rgba(255, 255, 255, 0.7); } + body.dark-only .u-step-number { + background-color: #111727; } + body.dark-only .u-pearl:before { + background-color: rgba(36, 105, 92, 0.2); } + body.dark-only .u-pearl-number, body.dark-only .u-pearl-icon { + background: #202938; + border: 2px solid rgba(36, 105, 92, 0.2); } + body.dark-only .u-pearl.disabled .u-pearl-icon, body.dark-only .u-pearl.disabled .u-pearl-number { + background: rgba(36, 105, 92, 0.2); + border: 2px solid rgba(36, 105, 92, 0.2); } + body.dark-only .u-pearl.disabled:after { + background-color: #334053; } + body.dark-only .u-pearl.error:after { + background-color: #202938; } + body.dark-only .note-editor.note-frame { + border-color: rgba(36, 105, 92, 0.2); } + body.dark-only .note-editor.note-frame .note-editing-area .note-editable { + background-color: #111727; + color: rgba(255, 255, 255, 0.7); } + body.dark-only .swal-modal { + background-color: #111727; } + body.dark-only .swal-modal .swal-title { + color: rgba(255, 255, 255, 0.7); } + body.dark-only .swal-modal .swal-text { + color: #98a6ad; } + body.dark-only .swal-modal .swal-content__input { + background-color: #202938; + color: rgba(255, 255, 255, 0.7); } + body.dark-only .nav-tabs { + border-bottom: 1px solid rgba(36, 105, 92, 0.2); } + body.dark-only .nav-tabs .nav-link.active { + color: rgba(255, 255, 255, 0.7); + border-color: rgba(36, 105, 92, 0.2); } + body.dark-only .nav-tabs .nav-link:hover, body.dark-only .nav-tabs .nav-link:focus { + border-color: rgba(36, 105, 92, 0.2); } + body.dark-only .nav-tabs .nav-item.show .nav-link { + background-color: #111727; + color: rgba(255, 255, 255, 0.7); + border-color: rgba(36, 105, 92, 0.2); } + body.dark-only .nav-tabs.nav-bottom .nav-item .nav-link.active, body.dark-only .nav-tabs.nav-bottom .nav-item .nav-link.focus, body.dark-only .nav-tabs.nav-bottom .nav-item .nav-link.hover { + border-color: #111727 rgba(36, 105, 92, 0.2) rgba(36, 105, 92, 0.2); } + body.dark-only .nav-success .nav-link, body.dark-only .nav-pills.nav-success .nav-link { + color: rgba(255, 255, 255, 0.7); } + body.dark-only .nav-pills.nav-success .nav-link .border-tab.nav-left .nav-link, body.dark-only .border-tab.nav-right .nav-link { + color: rgba(255, 255, 255, 0.7); } + body.dark-only .nav-pills.nav-success .nav-link .border-tab.nav-left .nav-link.active, body.dark-only .border-tab.nav-right .nav-link.active { + color: #24695c; } + body.dark-only .nav-pills.nav-success .nav-link .border-tab.nav-left .show > .nav-link, body.dark-only .border-tab.nav-right .show > .nav-link { + color: #24695c; } + body.dark-only .border-tab.nav-left.nav-secondary .nav-link.active, body.dark-only .border-tab.nav-left.nav-secondary .nav-link:focus, body.dark-only .border-tab.nav-left.nav-secondary .nav-link:hover { + border-left-color: #ba895d; + color: #ba895d !important; } + body.dark-only .border-tab.nav-left.nav-secondary .show > .nav-link { + border-left-color: #ba895d; + color: #ba895d !important; } + body.dark-only .border-tab.nav-left.nav-secondary .nav-item.show { + color: #ba895d !important; + border-left-color: #ba895d; } + body.dark-only .border-tab.nav-left.nav-success .nav-link.active, body.dark-only .border-tab.nav-left.nav-success .nav-link:focus, body.dark-only .border-tab.nav-left.nav-success .nav-link:hover { + color: #1b4c43 !important; } + body.dark-only .border-tab.nav-left.nav-success .show > .nav-link { + border-left-color: #1b4c43; + color: #1b4c43 !important; } + body.dark-only .border-tab.nav-left.nav-success .nav-item.show { + color: #1b4c43 !important; + border-left-color: #1b4c43; } + body.dark-only .border-tab.nav-right.nav-info .nav-link.active, body.dark-only .border-tab.nav-right.nav-info .nav-link:focus, body.dark-only .border-tab.nav-right.nav-info .nav-link:hover { + color: #717171 !important; } + body.dark-only .border-tab.nav-right.nav-info .show > .nav-link { + border-left-color: #717171; + color: #717171 !important; } + body.dark-only .border-tab.nav-right.nav-info .nav-item.show { + color: #717171 !important; + border-left-color: #717171; } + body.dark-only .border-tab.nav-secondary .nav-link.active, body.dark-only .border-tab.nav-secondary .nav-link:focus, body.dark-only .border-tab.nav-secondary .nav-link:hover { + color: #ba895d !important; } + body.dark-only .border-tab.nav-secondary .nav-item.show { + color: #ba895d !important; } + body.dark-only .border-tab.nav-success .nav-link.active, body.dark-only .border-tab.nav-success .nav-link:focus, body.dark-only .border-tab.nav-success .nav-link:hover { + color: #1b4c43 !important; } + body.dark-only .border-tab.nav-success .nav-item.show { + color: #1b4c43 !important; } + body.dark-only .dropdown-divider { + border-top: 1px solid rgba(36, 105, 92, 0.2); } + body.dark-only .icon-hover-bottom { + background-color: #111727; + -webkit-box-shadow: 0px 0px 1px 1px rgba(36, 105, 92, 0.2); + box-shadow: 0px 0px 1px 1px rgba(36, 105, 92, 0.2); } + body.dark-only .icon-hover-bottom .icon-title { + color: rgba(255, 255, 255, 0.7); } + body.dark-only .icon-hover-bottom span { + color: #98a6ad; } + body.dark-only .icon-hover-bottom .form-group input { + background-color: #202938; + color: rgba(255, 255, 255, 0.7); + border: 1px solid rgba(36, 105, 92, 0.2); } + body.dark-only .icon-hover-bottom .icon-first i { + color: #98a6ad; } + body.dark-only code { + background-color: #202938; + border-radius: 2px; } + body.dark-only #cd-timeline::before { + background: rgba(36, 105, 92, 0.2); } + body.dark-only .timeliny { + border-top: 1px solid rgba(36, 105, 92, 0.2); + border-bottom: 1px solid rgba(36, 105, 92, 0.2); } + body.dark-only .timeliny::before { + background-color: rgba(36, 105, 92, 0.2); } + body.dark-only .timeliny .timeliny-dot { + background-color: #111727; + border: 1px solid rgba(36, 105, 92, 0.2); } + body.dark-only .timeliny .timeliny-dot::before { + color: rgba(255, 255, 255, 0.7); } + body.dark-only .timeliny .timeliny-timeline .timeliny-timeblock.active .timeliny-dot::before { + color: rgba(255, 255, 255, 0.7); } + body.dark-only .timeliny .timeliny-timeline .timeliny-timeblock.active .timeliny-dot:after { + background-color: #202938; + border-color: rgba(36, 105, 92, 0.2); + color: rgba(255, 255, 255, 0.7); } + body.dark-only .timeliny .timeliny-timeline .timeliny-timeblock:not(.inactive):not(.active) .timeliny-dot:hover { + background-color: #24695c; } + body.dark-only .timeliny .timeliny-timeline .timeliny-timeblock:not(.inactive):not(.active) .timeliny-dot:hover::before { + color: rgba(255, 255, 255, 0.7); } + body.dark-only .timeliny .timeliny-timeline .timeliny-timeblock .timeliny-dot:hover::after { + background-color: #111727; + border: 1px solid rgba(36, 105, 92, 0.2); + color: rgba(255, 255, 255, 0.7); } + body.dark-only .todo .todo-list-wrapper #todo-list li .task-container { + background: #111727; + border-bottom: 1px solid rgba(36, 105, 92, 0.2); } + body.dark-only .todo .todo-list-wrapper #todo-list li .task-container .task-label { + color: rgba(255, 255, 255, 0.7); } + body.dark-only .todo .todo-list-wrapper #todo-list li .task-container:hover h4 { + color: #fff; } + body.dark-only .todo .todo-list-wrapper #todo-list li .task-container .task-action-btn .action-box:hover:not(.active) { + background: #111727; + border: 1px solid rgba(36, 105, 92, 0.2); } + body.dark-only .todo .todo-list-wrapper #todo-list li.completed .task-container .task-label { + color: #24695c; } + body.dark-only .todo .todo-list-wrapper #todo-list li.completed .task-container .complete-btn:hover { + border: 1px solid #1b4c43 !important; } + body.dark-only .todo .todo-list-wrapper .todo-list-footer .new-task-wrapper textarea { + background-color: #111727; + border: 1px solid rgba(36, 105, 92, 0.2); + color: rgba(255, 255, 255, 0.7); } + body.dark-only .introjs-helperLayer { + background-color: rgba(54, 64, 74, 0.9); + border: rgba(255, 255, 255, 0.5); } + body.dark-only .jstree-default .jstree-node, body.dark-only .jstree-default .jstree-icon { + color: #455869 !important; } + body.dark-only .jstree-default .jstree-anchor { + color: #98a6ad; } + body.dark-only .jstree-default .jstree-clicked { + color: #fff; + background-color: transparent; } + body.dark-only .jstree-default .jstree-hovered { + background-color: #202938; + border: 1px solid rgba(36, 105, 92, 0.2); } + body.dark-only span.twitter-typeahead .tt-menu { + background-color: #202938; + color: rgba(255, 255, 255, 0.7); } + body.dark-only span.twitter-typeahead .tt-suggestion { + color: rgba(255, 255, 255, 0.7); } + body.dark-only span.twitter-typeahead .tt-suggestion:hover, body.dark-only span.twitter-typeahead .tt-suggestion:focus { + background-color: #111727; } + body.dark-only .typography small { + color: rgba(255, 255, 255, 0.7); } + body.dark-only .blockquote-footer { + color: #98a6ad; } + body.dark-only .code-box-copy pre { + background-color: #202938; } + body.dark-only .code-box-copy pre code { + background-color: #202938; } + body.dark-only .code-box-copy pre[class*="language-"] { + border: 1px solid rgba(36, 105, 92, 0.2); } + body.dark-only .code-box-copy .code-box-copy__btn { + background-color: #202938; + border: 1px solid rgba(36, 105, 92, 0.2); + color: #fff; } + body.dark-only .code-box-copy code[class*=language-], body.dark-only .code-box-copy pre[class*=language-] { + text-shadow: 0px 1px #000; } + body.dark-only .code-box-copy code[class*=language-] ::-moz-selection, body.dark-only .code-box-copy pre[class*=language-] ::-moz-selection { + text-shadow: none; + background: #111727; } + body.dark-only .code-box-copy code[class*=language-] ::selection, body.dark-only .code-box-copy pre[class*=language-] ::selection { + text-shadow: none; + background: #111727; } + body.dark-only table.fixedHeader-floating { + background-color: #202938; } + body.dark-only .dt-button-info { + background-color: #111727; + border: 1px solid rgba(36, 105, 92, 0.2); } + body.dark-only .dt-button-info h2 { + background-color: #111727; + border-bottom: 1px solid rgba(36, 105, 92, 0.2); } + body.dark-only #keytable_wrapper .dataTables_paginate, body.dark-only #column-selector_wrapper .dataTables_paginate, body.dark-only #auto-fill_wrapper .dataTables_paginate, body.dark-only #custom-button_wrapper .dataTables_paginate, body.dark-only #class-button_wrapper .dataTables_paginate, body.dark-only #keyboard-btn_wrapper .dataTables_paginate, body.dark-only #multilevel-btn_wrapper .dataTables_paginate, body.dark-only #pagelength-btn_wrapper .dataTables_paginate, body.dark-only #basic-colreorder_wrapper .dataTables_paginate, body.dark-only #state-saving_wrapper .dataTables_paginate, body.dark-only #real-time_wrapper .dataTables_paginate, body.dark-only #basic-fixed-header_wrapper .dataTables_paginate, body.dark-only #fixed-header-footer_wrapper .dataTables_paginate, body.dark-only #export-button_wrapper .dataTables_paginate, body.dark-only #excel-cust-bolder_wrapper .dataTables_paginate, body.dark-only #cust-json_wrapper .dataTables_paginate, body.dark-only #basic-key-table_wrapper .dataTables_paginate, body.dark-only #focus-cell_wrapper .dataTables_paginate, body.dark-only #responsive_wrapper .dataTables_paginate, body.dark-only #new-cons_wrapper .dataTables_paginate, body.dark-only #show-hidden-row_wrapper .dataTables_paginate, body.dark-only #basic-row-reorder_wrapper .dataTables_paginate, body.dark-only #full-row_wrapper .dataTables_paginate, body.dark-only #rest-column_wrapper .dataTables_paginate { + border: none; } + body.dark-only #example-style-8_wrapper table.dataTable.stripe tbody tr.odd, body.dark-only #example-style-8_wrapper table.dataTable.display tbody tr.odd { + background-color: rgba(36, 105, 92, 0.2); } + body.dark-only .error-wrapper { + background-color: rgba(54, 64, 74, 0.8); } + body.dark-only .error-wrapper .sub-content { + color: rgba(255, 255, 255, 0.7); } + body.dark-only .b-light { + border: 1px solid rgba(36, 105, 92, 0.2) !important; } + body.dark-only .modal-content { + background-color: #111727; } + body.dark-only .modal-content .modal-header { + border-bottom: 1px solid rgba(36, 105, 92, 0.2); } + body.dark-only .modal-content .ui-front .form-control { + background-color: #111727; + color: rgba(255, 255, 255, 0.7); + border: 1px solid rgba(36, 105, 92, 0.2); } + body.dark-only .stepwizard .stepwizard-row:before { + background-color: #98a6ad; } + body.dark-only .modal .theme-close { + background-color: #111727 !important; + -webkit-filter: invert(0); + filter: invert(0); } + body.dark-only .token.atrule, body.dark-only .token.attr-value, body.dark-only .token.keyword { + color: #717171; } + body.dark-only .token.boolean, body.dark-only .token.constant, body.dark-only .token.deleted, body.dark-only .token.number, body.dark-only .token.property, body.dark-only .token.symbol, body.dark-only .token.tag { + color: #d22d3d; } + body.dark-only .loader-box.card-loader { + background-color: #111727; } + body.dark-only .my-gallery.gallery-with-description img { + border: 1px solid rgba(36, 105, 92, 0.2) !important; + border-bottom: none !important; } + body.dark-only .alert-primary.inverse { + color: rgba(255, 255, 255, 0.7); } + body.dark-only .alert-secondary.inverse { + color: rgba(255, 255, 255, 0.7); } + body.dark-only .alert-success.inverse { + color: rgba(255, 255, 255, 0.7); } + body.dark-only .alert-danger.inverse { + color: rgba(255, 255, 255, 0.7); } + body.dark-only .alert-warning.inverse { + color: rgba(255, 255, 255, 0.7); } + body.dark-only .alert-info.inverse { + color: rgba(255, 255, 255, 0.7); } + body.dark-only .alert-light.inverse { + color: rgba(255, 255, 255, 0.7); } + body.dark-only .alert-dark.inverse { + color: rgba(255, 255, 255, 0.7); } + body.dark-only .alert-theme span + span + span { + border-left: 5px solid #24695c; + background-color: #202938; + border-radius: 4px; } + body.dark-only .alert-theme i { + color: #fff; + padding: 20px; + margin-right: 20px !important; } + body.dark-only .user-card .user-deatils h6 { + color: #98a6ad; } + body.dark-only .user-card .card-footer > div:first-child { + border-right: 1px solid rgba(36, 105, 92, 0.2); } + body.dark-only .user-card .card-footer .user-footer h6 { + color: #98a6ad; } + body.dark-only .user-card .card-footer .user-footer svg path, body.dark-only .user-card .card-footer .user-footer svg rect { + color: #98a6ad; } + body.dark-only .dashboard-chat .chat .media .media-body .message-main p { + background-color: #202938; } + body.dark-only .dashboard-chat .chat .media .media-body .message-main.smiley-bg { + background-color: #202938; } + body.dark-only .dashboard-chat .chat .right-side-chat .media-body p:before { + border-left: 7px solid rgba(36, 105, 92, 0.2); } + body.dark-only .dashboard-chat .chat .left-side-chat .media-body p:before { + border-right: 7px solid rgba(36, 105, 92, 0.2); } + body.dark-only .selling-update { + border: 2px solid rgba(36, 105, 92, 0.2); } + body.dark-only .bitcoin-accordion .card .media-accordion .media:nth-child(2) { + background-color: #1c222b; } + body.dark-only .bitcoin-accordion .card .media-accordion .media .media-body p { + color: #98a6ad; } + body.dark-only .bitcoin-accordion .card .media-accordion .media + .media { + border-top: 1px solid rgba(36, 105, 92, 0.2); } + body.dark-only .server-card-bg { + background-color: #181f27 !important; } + body.dark-only .server-widgets .bottom-server h5 .second-color { + color: rgba(255, 255, 255, 0.7); } + body.dark-only .select2-drpdwn-project .form-control { + background-color: #111727 !important; + border-top: none !important; + border-left: none !important; + border-right: none !important; } + body.dark-only .tabs-project .nav-item .nav-link { + color: rgba(255, 255, 255, 0.7); } + body.dark-only .current-progress table tr td, body.dark-only .current-progress table tr th, body.dark-only .order-history table tr td, body.dark-only .order-history table tr th { + border-top: none !important; } + body.dark-only .current-progress .title-orders, body.dark-only .order-history .title-orders { + background-color: #202938; } + body.dark-only .navigation-option ul li a { + color: rgba(255, 255, 255, 0.7); } + body.dark-only .navigation-option ul li:hover { + background-color: #202938; } + body.dark-only .product-box .product-details h6 { + color: rgba(255, 255, 255, 0.7); } + body.dark-only .product-box .product-details span { + color: #98a6ad; } + body.dark-only .product-box .product-img .product-hover ul li { + background-color: #111727; } + body.dark-only .product-box .product-img .product-hover ul li:hover { + background-color: #000; + color: #fff; } + body.dark-only .browse .browse-articles ul li a { + color: rgba(255, 255, 255, 0.7); } + body.dark-only .browse .browse-articles ul li:hover { + background-color: #202938; } + body.dark-only .radio-primary input[type="radio"] + label::before { + border-color: #24695c !important; } + body.dark-only .radio-primary input[type="radio"] + label::after { + background-color: #24695c; } + body.dark-only .radio-primary input[type="radio"]:checked + label::before { + border-color: #24695c !important; } + body.dark-only .radio-primary input[type="radio"]:checked + label::after { + background-color: #24695c; } + body.dark-only .radio-secondary input[type="radio"] + label::before { + border-color: #ba895d !important; } + body.dark-only .radio-secondary input[type="radio"] + label::after { + background-color: #ba895d; } + body.dark-only .radio-secondary input[type="radio"]:checked + label::before { + border-color: #ba895d !important; } + body.dark-only .radio-secondary input[type="radio"]:checked + label::after { + background-color: #ba895d; } + body.dark-only .radio-success input[type="radio"] + label::before { + border-color: #1b4c43 !important; } + body.dark-only .radio-success input[type="radio"] + label::after { + background-color: #1b4c43; } + body.dark-only .radio-success input[type="radio"]:checked + label::before { + border-color: #1b4c43 !important; } + body.dark-only .radio-success input[type="radio"]:checked + label::after { + background-color: #1b4c43; } + body.dark-only .radio-danger input[type="radio"] + label::before { + border-color: #d22d3d !important; } + body.dark-only .radio-danger input[type="radio"] + label::after { + background-color: #d22d3d; } + body.dark-only .radio-danger input[type="radio"]:checked + label::before { + border-color: #d22d3d !important; } + body.dark-only .radio-danger input[type="radio"]:checked + label::after { + background-color: #d22d3d; } + body.dark-only .radio-info input[type="radio"] + label::before { + border-color: #717171 !important; } + body.dark-only .radio-info input[type="radio"] + label::after { + background-color: #717171; } + body.dark-only .radio-info input[type="radio"]:checked + label::before { + border-color: #717171 !important; } + body.dark-only .radio-info input[type="radio"]:checked + label::after { + background-color: #717171; } + body.dark-only .radio-light input[type="radio"] + label::before { + border-color: #e6edef !important; } + body.dark-only .radio-light input[type="radio"] + label::after { + background-color: #e6edef; } + body.dark-only .radio-light input[type="radio"]:checked + label::before { + border-color: #e6edef !important; } + body.dark-only .radio-light input[type="radio"]:checked + label::after { + background-color: #e6edef; } + body.dark-only .radio-dark input[type="radio"] + label::before { + border-color: #2c323f !important; } + body.dark-only .radio-dark input[type="radio"] + label::after { + background-color: #2c323f; } + body.dark-only .radio-dark input[type="radio"]:checked + label::before { + border-color: #2c323f !important; } + body.dark-only .radio-dark input[type="radio"]:checked + label::after { + background-color: #2c323f; } + body.dark-only .radio-warning input[type="radio"] + label::before { + border-color: #e2c636 !important; } + body.dark-only .radio-warning input[type="radio"] + label::after { + background-color: #e2c636; } + body.dark-only .radio-warning input[type="radio"]:checked + label::before { + border-color: #e2c636 !important; } + body.dark-only .radio-warning input[type="radio"]:checked + label::after { + background-color: #e2c636; } + body.dark-only .checkbox-primary label::before { + border-color: #24695c !important; } + body.dark-only .checkbox-secondary label::before { + border-color: #ba895d !important; } + body.dark-only .checkbox-success label::before { + border-color: #1b4c43 !important; } + body.dark-only .checkbox-danger label::before { + border-color: #d22d3d !important; } + body.dark-only .checkbox-info label::before { + border-color: #717171 !important; } + body.dark-only .checkbox-light label::before { + border-color: #e6edef !important; } + body.dark-only .checkbox-dark label::before { + border-color: #2c323f !important; } + body.dark-only .checkbox-warning label::before { + border-color: #e2c636 !important; } + body.dark-only .checkbox-solid-primary label:before { + background-color: #24695c !important; + border-color: #24695c !important; + color: #fff !important; } + body.dark-only .checkbox-solid-primary input[type="checkbox"]:checked + label::before { + background-color: #24695c !important; + border-color: #24695c !important; + color: #fff !important; } + body.dark-only .checkbox-solid-primary input[type="checkbox"]:checked + label::after { + color: #fff !important; } + body.dark-only .checkbox-solid-secondary label:before { + background-color: #ba895d !important; + border-color: #ba895d !important; + color: #fff !important; } + body.dark-only .checkbox-solid-secondary input[type="checkbox"]:checked + label::before { + background-color: #ba895d !important; + border-color: #ba895d !important; + color: #fff !important; } + body.dark-only .checkbox-solid-secondary input[type="checkbox"]:checked + label::after { + color: #fff !important; } + body.dark-only .checkbox-solid-success label:before { + background-color: #1b4c43 !important; + border-color: #1b4c43 !important; + color: #fff !important; } + body.dark-only .checkbox-solid-success input[type="checkbox"]:checked + label::before { + background-color: #1b4c43 !important; + border-color: #1b4c43 !important; + color: #fff !important; } + body.dark-only .checkbox-solid-success input[type="checkbox"]:checked + label::after { + color: #fff !important; } + body.dark-only .checkbox-solid-danger label:before { + background-color: #d22d3d !important; + border-color: #d22d3d !important; + color: #fff !important; } + body.dark-only .checkbox-solid-danger input[type="checkbox"]:checked + label::before { + background-color: #d22d3d !important; + border-color: #d22d3d !important; + color: #fff !important; } + body.dark-only .checkbox-solid-danger input[type="checkbox"]:checked + label::after { + color: #fff !important; } + body.dark-only .checkbox-solid-info label:before { + background-color: #717171 !important; + border-color: #717171 !important; + color: #fff !important; } + body.dark-only .checkbox-solid-info input[type="checkbox"]:checked + label::before { + background-color: #717171 !important; + border-color: #717171 !important; + color: #fff !important; } + body.dark-only .checkbox-solid-info input[type="checkbox"]:checked + label::after { + color: #fff !important; } + body.dark-only .checkbox-solid-light label:before { + background-color: #e6edef !important; + border-color: #e6edef !important; + color: #fff !important; } + body.dark-only .checkbox-solid-light input[type="checkbox"]:checked + label::before { + background-color: #e6edef !important; + border-color: #e6edef !important; + color: #fff !important; } + body.dark-only .checkbox-solid-light input[type="checkbox"]:checked + label::after { + color: #fff !important; } + body.dark-only .checkbox-solid-dark label:before { + background-color: #2c323f !important; + border-color: #2c323f !important; + color: #fff !important; } + body.dark-only .checkbox-solid-dark input[type="checkbox"]:checked + label::before { + background-color: #2c323f !important; + border-color: #2c323f !important; + color: #fff !important; } + body.dark-only .checkbox-solid-dark input[type="checkbox"]:checked + label::after { + color: #fff !important; } + body.dark-only .checkbox-solid-warning label:before { + background-color: #e2c636 !important; + border-color: #e2c636 !important; + color: #fff !important; } + body.dark-only .checkbox-solid-warning input[type="checkbox"]:checked + label::before { + background-color: #e2c636 !important; + border-color: #e2c636 !important; + color: #fff !important; } + body.dark-only .checkbox-solid-warning input[type="checkbox"]:checked + label::after { + color: #fff !important; } + body.dark-only .bootstrap-datetimepicker-widget ul li { + color: rgba(255, 255, 255, 0.7); + border-bottom: 1px solid rgba(36, 105, 92, 0.2); } + body.dark-only .bootstrap-datetimepicker-widget tr th:hover, body.dark-only .bootstrap-datetimepicker-widget tr td:hover { + background-color: #111727; } + body.dark-only .bootstrap-datetimepicker-widget tr th span:hover, body.dark-only .bootstrap-datetimepicker-widget tr td span:hover { + background-color: #111727; } + body.dark-only .bootstrap-datetimepicker-widget tr th.prev:hover, body.dark-only .bootstrap-datetimepicker-widget tr th.next:hover, body.dark-only .bootstrap-datetimepicker-widget tr td.prev:hover, body.dark-only .bootstrap-datetimepicker-widget tr td.next:hover { + background-color: #111727; } + body.dark-only .bootstrap-datetimepicker-widget tr:first-child th:hover { + background-color: #111727; } + body.dark-only .btn-transparent { + color: rgba(255, 255, 255, 0.7); } + body.dark-only #cal-basic .fc-toolbar .fc-left .fc-next-button .fc-icon-right-single-arrow:after, body.dark-only #cal-basic .fc-toolbar .fc-right .fc-next-button .fc-icon-right-single-arrow:after { + color: #98a6ad; } + body.dark-only #cal-basic .fc-toolbar .fc-left .fc-prev-button .fc-icon-left-single-arrow:after, body.dark-only #cal-basic .fc-toolbar .fc-right .fc-prev-button .fc-icon-left-single-arrow:after { + color: #98a6ad; } + body.dark-only #cal-basic .fc-toolbar .fc-left .fc-button-group .fc-month-button { + color: #fff !important; } + body.dark-only .fc-button-group .fc-basicWeek-button, body.dark-only .fc-button-group .fc-basicDay-button, body.dark-only .fc-button-group .fc-agendaWeek-button, body.dark-only .fc-button-group .fc-agendaDay-button { + color: #000 !important; } + body.dark-only .fc-button-group .fc-month-button { + color: #fff !important; } + body.dark-only #cal-agenda-view .fc-toolbar .fc-right .fc-button-group .fc-month-button, body.dark-only #cal-agenda-view .fc-toolbar .fc-right .fc-button-group .btn-light { + color: #000 !important; } + body.dark-only #cal-agenda-view .fc-toolbar .fc-right .fc-button-group .fc-agendaWeek-button { + color: #fff !important; } + body.dark-only #cal-agenda-view .fc-toolbar .fc-right .fc-button-group .fc-agendaWeek-button:hover { + color: #000 !important; } + body.dark-only .basic-calendar .fc-toolbar .fc-right .fc-button-group .fc-basicWeek-button, body.dark-only .basic-calendar .fc-toolbar .fc-right .fc-button-group .btn-light, body.dark-only #cal-bg-events .fc-toolbar .fc-right .fc-button-group .fc-basicWeek-button, body.dark-only #cal-bg-events .fc-toolbar .fc-right .fc-button-group .btn-light, body.dark-only #cal-event-colors .fc-toolbar .fc-right .fc-button-group .fc-basicWeek-button, body.dark-only #cal-event-colors .fc-toolbar .fc-right .fc-button-group .btn-light { + color: #000 !important; } + body.dark-only .basic-calendar .fc-toolbar .fc-right .fc-button-group .fc-month-button, body.dark-only #cal-bg-events .fc-toolbar .fc-right .fc-button-group .fc-month-button, body.dark-only #cal-event-colors .fc-toolbar .fc-right .fc-button-group .fc-month-button { + color: #fff !important; } + body.dark-only .basic-calendar .fc-toolbar .fc-right .fc-button-group .fc-month-button:hover, body.dark-only #cal-bg-events .fc-toolbar .fc-right .fc-button-group .fc-month-button:hover, body.dark-only #cal-event-colors .fc-toolbar .fc-right .fc-button-group .fc-month-button:hover { + color: #000 !important; } + body.dark-only .categories ul li a { + color: #98a6ad; } + body.dark-only .main .langChoice { + background: #202938; + color: #fff; + border: 1px solid rgba(36, 105, 92, 0.2); } + body.dark-only .socialprofile .likes-profile h5 span { + color: rgba(255, 255, 255, 0.7); } + body.dark-only .socialprofile span { + color: #98a6ad; } + body.dark-only .social-status .media .media-body span + span { + color: #98a6ad; } + body.dark-only .social-status .media .media-body p, body.dark-only .social-status .media .media-body .light-span { + color: #98a6ad; } + body.dark-only .filter-cards-view p, body.dark-only .timeline-content p { + color: #98a6ad; } + body.dark-only .filter-cards-view .comment-number i, body.dark-only .timeline-content .comment-number i { + color: #98a6ad; } + body.dark-only .filter-cards-view .comments-box .input-group .form-control, body.dark-only .timeline-content .comments-box .input-group .form-control { + border: none !important; } + body.dark-only .filter-cards-view .comments-box .input-group .input-group-append, body.dark-only .timeline-content .comments-box .input-group .input-group-append { + background-color: #202938; } + body.dark-only .social-chat .media-body { + border: 1px solid rgba(36, 105, 92, 0.2); } + body.dark-only .social-chat .media-body:after { + border-right: 7px solid #111727; } + body.dark-only .social-chat span span { + color: #98a6ad; } + body.dark-only .details-about .your-details p { + color: #98a6ad; } + body.dark-only .activity-log .my-activity p { + color: #98a6ad; } + body.dark-only.rtl .page-main-header .main-header-right .nav-right > ul > li { + border-right: none; } + body.dark-only.rtl .page-main-header .main-header-right .nav-right > ul > li:nth-child(2) { + border-right: 1px solid rgba(36, 105, 92, 0.2); } + body.dark-only.rtl .page-main-header .main-header-right .nav-right > ul > li:nth-child(5) { + border-right: none; + border-left: 1px solid rgba(36, 105, 92, 0.2); } + body.dark-only.rtl .page-main-header .main-header-right .nav-right > ul > li:nth-child(4) { + border-left: none; } + body.dark-only .bookmark ul li a { + color: rgba(255, 255, 255, 0.7); } + +body.dark-sidebar .page-main-header .main-header-right .main-header-left .dark-logo-wrapper { + display: block; } + +body.dark-sidebar .page-main-header .main-header-right .main-header-left .logo-wrapper { + display: none; } + +body.dark-sidebar .page-wrapper.compact-wrapper .page-body-wrapper header.main-nav { + background-color: #111727; + border-right: 1px solid rgba(36, 105, 92, 0.2); } + body.dark-sidebar .page-wrapper.compact-wrapper .page-body-wrapper header.main-nav .nav-menu h6 { + color: rgba(255, 255, 255, 0.7); } + body.dark-sidebar .page-wrapper.compact-wrapper .page-body-wrapper header.main-nav .nav-menu > li .nav-link.active { + color: rgba(255, 255, 255, 0.7); } + body.dark-sidebar .page-wrapper.compact-wrapper .page-body-wrapper header.main-nav .nav-menu > li .nav-submenu li:first-child { + border-top: 1px solid rgba(36, 105, 92, 0.2); } + body.dark-sidebar .page-wrapper.compact-wrapper .page-body-wrapper header.main-nav .nav-menu > li:last-child { + border-bottom: 1px solid rgba(36, 105, 92, 0.2); } + body.dark-sidebar .page-wrapper.compact-wrapper .page-body-wrapper header.main-nav .nav-menu > li > a { + color: rgba(255, 255, 255, 0.7); } + body.dark-sidebar .page-wrapper.compact-wrapper .page-body-wrapper header.main-nav .nav-menu .dropdown ul.nav-submenu li:hover a { + color: #fff !important; } + body.dark-sidebar .page-wrapper.compact-wrapper .page-body-wrapper header.main-nav .nav-menu .dropdown ul.nav-submenu li a { + color: rgba(255, 255, 255, 0.8) !important; } + body.dark-sidebar .page-wrapper.compact-wrapper .page-body-wrapper header.main-nav .nav-menu .dropdown ul.nav-submenu li a.active { + color: #fff !important; + text-shadow: 0px 0px #fff; } + body.dark-sidebar .page-wrapper.compact-wrapper .page-body-wrapper header.main-nav .sidebar-user { + border-color: rgba(36, 105, 92, 0.2); } + body.dark-sidebar .page-wrapper.compact-wrapper .page-body-wrapper header.main-nav .sidebar-user ul li span { + color: rgba(255, 255, 255, 0.7); } + body.dark-sidebar .page-wrapper.compact-wrapper .page-body-wrapper header.main-nav .sidebar-user ul li + li:before { + background-color: rgba(36, 105, 92, 0.2); } + body.dark-sidebar .page-wrapper.compact-wrapper .page-body-wrapper header.main-nav .sidebar-user h6 { + color: rgba(255, 255, 255, 0.7); } + body.dark-sidebar .page-wrapper.compact-wrapper .page-body-wrapper header.main-nav .sidebar-user p { + color: rgba(255, 255, 255, 0.7); } + body.dark-sidebar .page-wrapper.compact-wrapper .page-body-wrapper header.main-nav .main-navbar .nav-menu > li .mega-menu-container .mega-box .link-section .submenu-title h5 { + color: rgba(255, 255, 255, 0.7); } + body.dark-sidebar .page-wrapper.compact-wrapper .page-body-wrapper header.main-nav .main-navbar .nav-menu > li .mega-menu-container .mega-box .link-section .submenu-content.opensubmegamenu ul li a { + color: rgba(255, 255, 255, 0.7); } + body.dark-sidebar .page-wrapper.compact-wrapper .page-body-wrapper header.main-nav .sidebar-main-title > div { + border-color: rgba(36, 105, 92, 0.2); } + body.dark-sidebar .page-wrapper.compact-wrapper .page-body-wrapper header.main-nav .sidebar-main-title > div h6 { + color: #24695c; } + +body.dark-sidebar .page-wrapper.compact-wrapper .page-body-wrapper .according-menu i { + color: rgba(255, 255, 255, 0.7); } + +body.dark-sidebar .page-wrapper.compact-wrapper .page-main-header { + border-bottom: 1px solid rgba(36, 105, 92, 0.2); } + body.dark-sidebar .page-wrapper.compact-wrapper .page-main-header .main-header-left { + background-color: #111727; } + +body.dark-sidebar .main-navbar ul.nav-pills { + border-color: rgba(36, 105, 92, 0.2); } + body.dark-sidebar .main-navbar ul.nav-pills .nav-item:last-child { + border-color: rgba(36, 105, 92, 0.2); } + body.dark-sidebar .main-navbar ul.nav-pills .nav-item .nav-link { + color: rgba(255, 255, 255, 0.7); } + +@media (max-width: 767px) { + body.dark-only .chat-box .people-list ul li { + border-color: rgba(36, 105, 92, 0.2); } } + +/**===================== + 55. theme layout CSS ends +==========================**/ +/**===================== + 56. Ribbon CSS Start +==========================**/ +.ribbon-wrapper, .ribbon-wrapper-right, .ribbon-wrapper-bottom, .ribbon-wrapper-right-bottom { + position: relative; + padding-top: 40px; } + +.ribbon-vertical-left-wrapper { + padding-left: 40px; + position: relative; } + +.ribbon-overflow { + overflow: hidden; } + +.ribbon-vertical-right-wrapper { + padding-right: 40px; } + +.ribbon-wrapper-bottom { + padding-bottom: 40px; + padding-top: 0; } + +.ribbon-wrapper-right-bottom { + padding-right: 40px; } + +.ribbon-content { + margin-bottom: 0; } + +.ribbon { + padding: 0 20px; + height: 30px; + line-height: 30px; + clear: left; + position: absolute; + top: 12px; + left: 0px; + color: #fff; + z-index: 2; } + +.ribbon-space-bottom { + top: 0px; } + +.ribbon-clip { + left: -14px; } + .ribbon-clip:before { + position: absolute; + top: 30px; + left: 0; + width: 0; + height: 0; + content: ""; + border: 7px solid transparent; + border-top-color: #2c323f; + border-right-color: #2c323f; } + +.ribbon-bookmark:before { + position: absolute; + top: 0; + left: 100%; + display: block; + width: 0; + height: 0; + content: ''; + border: 15px solid #2c323f; + border-right: 10px solid transparent; } + +.ribbon-right { + left: auto; + right: -2px; } + +.ribbon-clip-right { + right: -14px; } + .ribbon-clip-right:before { + position: absolute; + top: 30px; + right: 0; + width: 0; + height: 0; + content: ""; + border: 7px solid transparent; + border-top-color: #2c323f; + border-right-color: #2c323f; } + +.ribbon-clip-bottom { + left: -14px; + bottom: 12px; + top: auto; } + .ribbon-clip-bottom:before { + position: absolute; + bottom: 30px; + left: 0; + width: 0; + height: 0; + content: ""; + border: 7px solid transparent; + border-top-color: #2c323f; + border-right-color: #2c323f; } + +.ribbon-clip-bottom-right { + right: -14px; + left: auto; + bottom: 12px; + top: auto; } + .ribbon-clip-bottom-right:before { + position: absolute; + bottom: 30px; + right: 0; + width: 0; + height: 0; + content: ""; + border: 7px solid transparent; + border-top-color: #2c323f; + border-right-color: #2c323f; } + +.ribbon-bookmark.ribbon-right:before { + right: 100%; + left: auto; + border-right: 15px solid #2c323f; + border-left: 10px solid transparent; } + +.ribbon-vertical-left { + clear: none; + padding: 0 5px; + height: 70px; + width: 30px; + line-height: 70px; + text-align: center; + left: 12px; + top: -2px; } + +.ribbon-vertical-right { + clear: none; + padding: 0 5px; + height: 70px; + width: 30px; + line-height: 70px; + text-align: center; + top: -2px; + left: auto; + right: 12px; } + +.ribbon-bookmark.ribbon-vertical-left:before, .ribbon-bookmark.ribbon-vertical-right:before { + top: 100%; + left: 0; + margin-top: -14px; + border-right: 15px solid #2c323f; + border-bottom: 10px solid transparent; } + +.ribbon-primary { + background: #24695c; } + +.ribbon-primary { + background: #24695c; } + +.ribbon-bookmark.ribbon-primary:before { + border-color: #24695c; + border-right-color: transparent; } + +.ribbon-bookmark.ribbon-right.ribbon-primary:before { + border-right-color: #24695c; + border-left-color: transparent; } + +.ribbon-bookmark.ribbon-vertical-left.ribbon-primary:before, .ribbon-bookmark.ribbon-vertical-right.ribbon-primary:before { + border-right-color: #24695c; + border-bottom-color: transparent; } + +.ribbon-primary.ribbon-corner:before { + border-top-color: #24695c; + border-left-color: #24695c; } + +.ribbon-primary.ribbon-corner.ribbon-right:before { + border-right-color: #24695c; + border-left-color: transparent; } + +.ribbon-primary.ribbon-corner.ribbon-bottom:before { + border-top-color: transparent; + border-bottom-color: #24695c; } + +.ribbon-primary.ribbon-clip:before { + border-color: transparent; + border-top-color: #17433b; + border-right-color: #17433b; } + +.ribbon-primary.ribbon-clip-right:before { + border-right-color: transparent; + border-top-color: #17433b; + border-left-color: #17433b; } + +.ribbon-primary.ribbon-clip-bottom:before { + border-top-color: transparent; + border-bottom-color: #17433b; + border-right-color: #17433b; } + +.ribbon-primary.ribbon-clip-bottom-right:before { + border-top-color: transparent; + border-bottom-color: #17433b; + border-right-color: transparent; + border-left-color: #17433b; } + +.ribbon-secondary { + background: #ba895d; } + +.ribbon-secondary { + background: #ba895d; } + +.ribbon-bookmark.ribbon-secondary:before { + border-color: #ba895d; + border-right-color: transparent; } + +.ribbon-bookmark.ribbon-right.ribbon-secondary:before { + border-right-color: #ba895d; + border-left-color: transparent; } + +.ribbon-bookmark.ribbon-vertical-left.ribbon-secondary:before, .ribbon-bookmark.ribbon-vertical-right.ribbon-secondary:before { + border-right-color: #ba895d; + border-bottom-color: transparent; } + +.ribbon-secondary.ribbon-corner:before { + border-top-color: #ba895d; + border-left-color: #ba895d; } + +.ribbon-secondary.ribbon-corner.ribbon-right:before { + border-right-color: #ba895d; + border-left-color: transparent; } + +.ribbon-secondary.ribbon-corner.ribbon-bottom:before { + border-top-color: transparent; + border-bottom-color: #ba895d; } + +.ribbon-secondary.ribbon-clip:before { + border-color: transparent; + border-top-color: #a07044; + border-right-color: #a07044; } + +.ribbon-secondary.ribbon-clip-right:before { + border-right-color: transparent; + border-top-color: #a07044; + border-left-color: #a07044; } + +.ribbon-secondary.ribbon-clip-bottom:before { + border-top-color: transparent; + border-bottom-color: #a07044; + border-right-color: #a07044; } + +.ribbon-secondary.ribbon-clip-bottom-right:before { + border-top-color: transparent; + border-bottom-color: #a07044; + border-right-color: transparent; + border-left-color: #a07044; } + +.ribbon-success { + background: #1b4c43; } + +.ribbon-success { + background: #1b4c43; } + +.ribbon-bookmark.ribbon-success:before { + border-color: #1b4c43; + border-right-color: transparent; } + +.ribbon-bookmark.ribbon-right.ribbon-success:before { + border-right-color: #1b4c43; + border-left-color: transparent; } + +.ribbon-bookmark.ribbon-vertical-left.ribbon-success:before, .ribbon-bookmark.ribbon-vertical-right.ribbon-success:before { + border-right-color: #1b4c43; + border-bottom-color: transparent; } + +.ribbon-success.ribbon-corner:before { + border-top-color: #1b4c43; + border-left-color: #1b4c43; } + +.ribbon-success.ribbon-corner.ribbon-right:before { + border-right-color: #1b4c43; + border-left-color: transparent; } + +.ribbon-success.ribbon-corner.ribbon-bottom:before { + border-top-color: transparent; + border-bottom-color: #1b4c43; } + +.ribbon-success.ribbon-clip:before { + border-color: transparent; + border-top-color: #0e2622; + border-right-color: #0e2622; } + +.ribbon-success.ribbon-clip-right:before { + border-right-color: transparent; + border-top-color: #0e2622; + border-left-color: #0e2622; } + +.ribbon-success.ribbon-clip-bottom:before { + border-top-color: transparent; + border-bottom-color: #0e2622; + border-right-color: #0e2622; } + +.ribbon-success.ribbon-clip-bottom-right:before { + border-top-color: transparent; + border-bottom-color: #0e2622; + border-right-color: transparent; + border-left-color: #0e2622; } + +.ribbon-danger { + background: #d22d3d; } + +.ribbon-danger { + background: #d22d3d; } + +.ribbon-bookmark.ribbon-danger:before { + border-color: #d22d3d; + border-right-color: transparent; } + +.ribbon-bookmark.ribbon-right.ribbon-danger:before { + border-right-color: #d22d3d; + border-left-color: transparent; } + +.ribbon-bookmark.ribbon-vertical-left.ribbon-danger:before, .ribbon-bookmark.ribbon-vertical-right.ribbon-danger:before { + border-right-color: #d22d3d; + border-bottom-color: transparent; } + +.ribbon-danger.ribbon-corner:before { + border-top-color: #d22d3d; + border-left-color: #d22d3d; } + +.ribbon-danger.ribbon-corner.ribbon-right:before { + border-right-color: #d22d3d; + border-left-color: transparent; } + +.ribbon-danger.ribbon-corner.ribbon-bottom:before { + border-top-color: transparent; + border-bottom-color: #d22d3d; } + +.ribbon-danger.ribbon-clip:before { + border-color: transparent; + border-top-color: #a82431; + border-right-color: #a82431; } + +.ribbon-danger.ribbon-clip-right:before { + border-right-color: transparent; + border-top-color: #a82431; + border-left-color: #a82431; } + +.ribbon-danger.ribbon-clip-bottom:before { + border-top-color: transparent; + border-bottom-color: #a82431; + border-right-color: #a82431; } + +.ribbon-danger.ribbon-clip-bottom-right:before { + border-top-color: transparent; + border-bottom-color: #a82431; + border-right-color: transparent; + border-left-color: #a82431; } + +.ribbon-info { + background: #717171; } + +.ribbon-info { + background: #717171; } + +.ribbon-bookmark.ribbon-info:before { + border-color: #717171; + border-right-color: transparent; } + +.ribbon-bookmark.ribbon-right.ribbon-info:before { + border-right-color: #717171; + border-left-color: transparent; } + +.ribbon-bookmark.ribbon-vertical-left.ribbon-info:before, .ribbon-bookmark.ribbon-vertical-right.ribbon-info:before { + border-right-color: #717171; + border-bottom-color: transparent; } + +.ribbon-info.ribbon-corner:before { + border-top-color: #717171; + border-left-color: #717171; } + +.ribbon-info.ribbon-corner.ribbon-right:before { + border-right-color: #717171; + border-left-color: transparent; } + +.ribbon-info.ribbon-corner.ribbon-bottom:before { + border-top-color: transparent; + border-bottom-color: #717171; } + +.ribbon-info.ribbon-clip:before { + border-color: transparent; + border-top-color: #585858; + border-right-color: #585858; } + +.ribbon-info.ribbon-clip-right:before { + border-right-color: transparent; + border-top-color: #585858; + border-left-color: #585858; } + +.ribbon-info.ribbon-clip-bottom:before { + border-top-color: transparent; + border-bottom-color: #585858; + border-right-color: #585858; } + +.ribbon-info.ribbon-clip-bottom-right:before { + border-top-color: transparent; + border-bottom-color: #585858; + border-right-color: transparent; + border-left-color: #585858; } + +.ribbon-light { + background: #e6edef; } + +.ribbon-light { + background: #e6edef; } + +.ribbon-bookmark.ribbon-light:before { + border-color: #e6edef; + border-right-color: transparent; } + +.ribbon-bookmark.ribbon-right.ribbon-light:before { + border-right-color: #e6edef; + border-left-color: transparent; } + +.ribbon-bookmark.ribbon-vertical-left.ribbon-light:before, .ribbon-bookmark.ribbon-vertical-right.ribbon-light:before { + border-right-color: #e6edef; + border-bottom-color: transparent; } + +.ribbon-light.ribbon-corner:before { + border-top-color: #e6edef; + border-left-color: #e6edef; } + +.ribbon-light.ribbon-corner.ribbon-right:before { + border-right-color: #e6edef; + border-left-color: transparent; } + +.ribbon-light.ribbon-corner.ribbon-bottom:before { + border-top-color: transparent; + border-bottom-color: #e6edef; } + +.ribbon-light.ribbon-clip:before { + border-color: transparent; + border-top-color: #c7d7db; + border-right-color: #c7d7db; } + +.ribbon-light.ribbon-clip-right:before { + border-right-color: transparent; + border-top-color: #c7d7db; + border-left-color: #c7d7db; } + +.ribbon-light.ribbon-clip-bottom:before { + border-top-color: transparent; + border-bottom-color: #c7d7db; + border-right-color: #c7d7db; } + +.ribbon-light.ribbon-clip-bottom-right:before { + border-top-color: transparent; + border-bottom-color: #c7d7db; + border-right-color: transparent; + border-left-color: #c7d7db; } + +.ribbon-dark { + background: #2c323f; } + +.ribbon-dark { + background: #2c323f; } + +.ribbon-bookmark.ribbon-dark:before { + border-color: #2c323f; + border-right-color: transparent; } + +.ribbon-bookmark.ribbon-right.ribbon-dark:before { + border-right-color: #2c323f; + border-left-color: transparent; } + +.ribbon-bookmark.ribbon-vertical-left.ribbon-dark:before, .ribbon-bookmark.ribbon-vertical-right.ribbon-dark:before { + border-right-color: #2c323f; + border-bottom-color: transparent; } + +.ribbon-dark.ribbon-corner:before { + border-top-color: #2c323f; + border-left-color: #2c323f; } + +.ribbon-dark.ribbon-corner.ribbon-right:before { + border-right-color: #2c323f; + border-left-color: transparent; } + +.ribbon-dark.ribbon-corner.ribbon-bottom:before { + border-top-color: transparent; + border-bottom-color: #2c323f; } + +.ribbon-dark.ribbon-clip:before { + border-color: transparent; + border-top-color: #171a21; + border-right-color: #171a21; } + +.ribbon-dark.ribbon-clip-right:before { + border-right-color: transparent; + border-top-color: #171a21; + border-left-color: #171a21; } + +.ribbon-dark.ribbon-clip-bottom:before { + border-top-color: transparent; + border-bottom-color: #171a21; + border-right-color: #171a21; } + +.ribbon-dark.ribbon-clip-bottom-right:before { + border-top-color: transparent; + border-bottom-color: #171a21; + border-right-color: transparent; + border-left-color: #171a21; } + +.ribbon-warning { + background: #e2c636; } + +.ribbon-warning { + background: #e2c636; } + +.ribbon-bookmark.ribbon-warning:before { + border-color: #e2c636; + border-right-color: transparent; } + +.ribbon-bookmark.ribbon-right.ribbon-warning:before { + border-right-color: #e2c636; + border-left-color: transparent; } + +.ribbon-bookmark.ribbon-vertical-left.ribbon-warning:before, .ribbon-bookmark.ribbon-vertical-right.ribbon-warning:before { + border-right-color: #e2c636; + border-bottom-color: transparent; } + +.ribbon-warning.ribbon-corner:before { + border-top-color: #e2c636; + border-left-color: #e2c636; } + +.ribbon-warning.ribbon-corner.ribbon-right:before { + border-right-color: #e2c636; + border-left-color: transparent; } + +.ribbon-warning.ribbon-corner.ribbon-bottom:before { + border-top-color: transparent; + border-bottom-color: #e2c636; } + +.ribbon-warning.ribbon-clip:before { + border-color: transparent; + border-top-color: #c8ac1d; + border-right-color: #c8ac1d; } + +.ribbon-warning.ribbon-clip-right:before { + border-right-color: transparent; + border-top-color: #c8ac1d; + border-left-color: #c8ac1d; } + +.ribbon-warning.ribbon-clip-bottom:before { + border-top-color: transparent; + border-bottom-color: #c8ac1d; + border-right-color: #c8ac1d; } + +.ribbon-warning.ribbon-clip-bottom-right:before { + border-top-color: transparent; + border-bottom-color: #c8ac1d; + border-right-color: transparent; + border-left-color: #c8ac1d; } + +/**===================== + 56. Ribbon CSS Ends +==========================**/ +/**===================== + 57. breadcrumb CSS Start +==========================**/ +.breadcrumb-colored { + padding: 12px 16px; + border-radius: 4px; } + .breadcrumb-colored li a { + color: #fff; } + .breadcrumb-colored li.active { + color: #fff; + opacity: 0.7; } + .breadcrumb-colored .breadcrumb-item:before { + color: #fff; } + .breadcrumb-colored .breadcrumb-item.txt-dark:before { + color: #000; } + +.breadcrumb-icon { + --bs-breadcrumb-divider: '>'; } + .breadcrumb-icon li { + display: inline-block; } + +.breadcrumb-no-divider { + --bs-breadcrumb-divider: ''; } + +.breadcrumb-item.active { + text-transform: capitalize; } + +/**===================== + 57. breadcrumb CSS ends +==========================**/ +/**===================== + 58. Steps CSS Start +==========================**/ +.u-steps { + margin: 0; } + +.u-step { + position: relative; + padding: 12px 20px; + margin: 0; + font-size: inherit; + color: #a3afb7; + vertical-align: top; + background-color: #e6edef; + border-radius: 0; } + +.u-step-icon { + float: left; + margin-right: .5em; + font-size: 20px; + line-height: 1.4; } + +.u-step-number { + position: absolute; + top: 50%; + left: 20px; + width: 40px; + height: 40px; + font-size: 24px; + line-height: 40px; + color: #fff; + text-align: center; + background: #24695c; + border-radius: 50%; + -webkit-transform: translateY(-50%); + transform: translateY(-50%); } + .u-step-number ~ .u-step-desc { + min-height: 40px; + margin-left: 50px; } + +.u-step-title { + margin-bottom: 0; + font-size: 20px; + color: #526069; + font-weight: 600; } + +.u-step-desc { + text-align: left; } + .u-step-desc p { + margin-bottom: 0; } + +.u-steps-vertical { + -webkit-box-orient: vertical; + -webkit-box-direction: normal; + -ms-flex-direction: column; + flex-direction: column; } + +.u-step.active, .u-step.current { + color: #fff; + background-color: #24695c; } + .u-step.active p, .u-step.current p { + color: #fff; } + +.u-step.active .u-step-title, .u-step.current .u-step-title { + color: #fff; } + +.u-step.active .u-step-number, .u-step.current .u-step-number { + color: #24695c; + background-color: #fff; } + +.u-step.disabled { + color: #e6edef; + pointer-events: none; + cursor: auto; } + .u-step.disabled .u-step-title, .u-step.disabled p { + color: #59667a; } + .u-step.disabled .u-step-number { + background-color: rgba(36, 105, 92, 0.5); } + +.u-step.error { + color: #fff; + background-color: #d22d3d; } + .u-step.error .u-step-title { + color: #fff; } + .u-step.error .u-step-number { + color: #d22d3d; + background-color: #fff; } + +.u-step.done { + color: #fff; + background-color: #1b4c43; } + .u-step.done .u-step-title { + color: #fff; } + .u-step.done .u-step-number { + color: #1b4c43; + background-color: #fff; } + +.u-steps-lg .u-step { + font-size: 16px; } + +.u-steps-lg .u-step-icon, .u-steps-lg .u-step-title { + font-size: 22px; } + +.u-steps-lg .u-step-number { + width: 46px; + height: 46px; + font-size: 28px; + line-height: 46px; } + .u-steps-lg .u-step-number ~ .u-step-desc { + min-height: 46px; + margin-left: 56px; } + +.u-steps-sm .u-step { + font-size: 12px; } + +.u-steps-sm .u-step-icon, .u-steps-sm .u-step-title { + font-size: 18px; } + +.u-steps-sm .u-step-number { + width: 30px; + height: 30px; + font-size: 24px; + line-height: 30px; } + .u-steps-sm .u-step-number ~ .u-step-desc { + min-height: 30px; + margin-left: 40px; } + +.u-steps-xs .u-step { + font-size: 10px; } + +.u-steps-xs .u-step-icon, .u-steps-xs .u-step-title { + font-size: 16px; } + +.u-steps-xs .u-step-number { + width: 24px; + height: 24px; + font-size: 20px; + line-height: 24px; } + .u-steps-xs .u-step-number ~ .u-step-desc { + min-height: 24px; + margin-left: 34px; } + +.u-pearl { + position: relative; + padding: 0; + margin: 0; + text-align: center; } + .u-pearl:after { + position: absolute; + top: 18px; + z-index: 0; + width: 50%; + height: 4px; + content: ""; + background-color: #e6edef; } + .u-pearl:before { + position: absolute; + top: 18px; + z-index: 0; + width: 50%; + height: 4px; + content: ""; + background-color: #e6edef; + left: 0; } + .u-pearl:after { + right: 0; } + .u-pearl:first-child:before, .u-pearl:last-child:after { + display: none !important; } + +.u-pearl-icon { + position: relative; + z-index: 1; + display: inline-block; + width: 36px; + height: 36px; + line-height: 32px; + color: #fff; + text-align: center; + background: #e6edef; + border: 2px solid #e6edef; + border-radius: 50%; } + .u-pearl-icon i { + position: absolute; + top: 7px; + left: 8px; } + .u-pearl-icon .icon-check { + left: 7px; } + +.u-pearl-number { + position: relative; + z-index: 1; + display: inline-block; + width: 36px; + height: 36px; + line-height: 32px; + color: #24695c; + text-align: center; + background: #e6edef; + border: 2px solid #e6edef; + border-radius: 50%; + font-size: 18px; } + +.u-pearl-icon { + font-size: 18px; } + +.u-pearl-title { + overflow: hidden; + text-overflow: ellipsis; + white-space: nowrap; + display: block; + margin-top: .5em; + margin-bottom: 0; + font-size: 16px; + color: #526069; + font-weight: 600; } + +.u-pearl.active:after, .u-pearl.active:before { + background-color: #24695c; } + +.u-pearl.current:after, .u-pearl.current:before { + background-color: #24695c !important; } + +.u-pearl.active .u-pearl-icon, .u-pearl.active .u-pearl-number { + color: #24695c; + border-color: #24695c; + -webkit-transform: scale(1.3); + transform: scale(1.3); } + +.u-pearl.current .u-pearl-icon, .u-pearl.current .u-pearl-number { + color: #24695c; + border-color: #24695c; + -webkit-transform: scale(1.3); + transform: scale(1.3); } + +.u-pearl.disabled { + pointer-events: none; + cursor: auto; } + .u-pearl.disabled:after, .u-pearl.disabled:before { + background-color: #e6edef; } + .u-pearl.disabled .u-pearl-icon, .u-pearl.disabled .u-pearl-number { + color: #fff; + background-color: #e6edef; + border-color: #e6edef; } + +.u-pearl.error:before { + background-color: #24695c; } + +.u-pearl.error:after { + background-color: #e6edef; } + +.u-pearl.error .u-pearl-icon, .u-pearl.error .u-pearl-number { + color: #d22d3d; + background-color: #fff; + border-color: #d22d3d; } + +.u-pearl.done:after, .u-pearl.done:before { + background-color: #24695c !important; } + +.u-pearl.done .u-pearl-icon, .u-pearl.done .u-pearl-number { + color: #fff; + background-color: #24695c; + border-color: #24695c; } + +.u-pearls-lg .u-pearl:after, .u-pearls-lg .u-pearl:before { + top: 20px; } + +.u-pearls-lg .u-pearl-title { + font-size: 18px; } + +.u-pearls-lg .u-pearl-icon, .u-pearls-lg .u-pearl-number { + width: 40px; + height: 40px; + line-height: 36px; } + +.u-pearls-lg .u-pearl-icon, .u-pearls-lg .u-pearl-number { + font-size: 20px; } + +.u-pearls-sm .u-pearl:after, .u-pearls-sm .u-pearl:before { + top: 16px; } + +.u-pearls-sm .u-pearl-title { + font-size: 14px; } + +.u-pearls-sm .u-pearl-icon { + width: 32px; + height: 32px; + line-height: 28px; } + +.u-pearls-sm .u-pearl-number { + width: 32px; + height: 32px; + line-height: 28px; + font-size: 16px; } + +.u-pearls-sm .u-pearl-icon { + font-size: 14px; } + +.u-pearls-xs .u-pearl:after, .u-pearls-xs .u-pearl:before { + top: 12px; + height: 2px; } + +.u-pearls-xs .u-pearl-title { + font-size: 12px; } + +.u-pearls-xs .u-pearl-icon { + width: 24px; + height: 24px; + line-height: 20px; } + +.u-pearls-xs .u-pearl-number { + width: 24px; + height: 24px; + line-height: 20px; + font-size: 12px; } + +.u-pearls-xs .u-pearl-icon { + font-size: 12px; } + +.u-pearl.current .u-pearl-icon i { + left: 6px; } + +/**===================== + 58. Steps CSS ends +==========================**/ +/**===================== + 59. Customizer CSS Start +==========================**/ +.customizer-links { + position: fixed; + right: 00px; + top: 40%; + background-color: #fff; + border-radius: 8px; + z-index: 3; + -webkit-box-shadow: 0 0 15px 3px rgba(176, 185, 189, 0.3); + box-shadow: 0 0 15px 3px rgba(176, 185, 189, 0.3); + -webkit-transition: all 0.3s ease; + transition: all 0.3s ease; } + .customizer-links.open { + right: 330px; + border-radius: 8px 0 0 8px; + -webkit-transition: all 0.3s ease; + transition: all 0.3s ease; } + .customizer-links .nav-link { + padding: 0; + border-radius: 0; + position: relative; } + .customizer-links .nav-link .settings i { + color: #24695c; + font-size: 24px; + padding: 15px 17px; + display: inline-block; + cursor: pointer; + margin: 0; } + .customizer-links .nav-link.active .settings i { + color: #fff; + background-color: #24695c; } + .customizer-links .nav-link + .nav-link { + border-top: 1px solid rgba(36, 105, 92, 0.1); } + .customizer-links .nav-link span { + position: absolute; + right: -80px; + width: -webkit-max-content; + width: -moz-max-content; + width: max-content; + text-align: right; + padding: 7px 10px; + display: block; + top: 8px; + border-radius: 5px; + -webkit-transform: scale(0); + transform: scale(0); + -webkit-transition: all 0.3s ease; + transition: all 0.3s ease; + opacity: 0; + color: #fff; + background-color: #24695c; } + .customizer-links .nav-link:after { + content: ""; + position: absolute; + top: 17px; + left: -10px; + width: 0; + height: 0; } + .customizer-links .nav-link:hover span { + opacity: 1; + right: 68px; + -webkit-transform: scale(1); + transform: scale(1); + -webkit-transition: all 0.3s ease; + transition: all 0.3s ease; } + .customizer-links .nav-link:hover:after { + opacity: 1; + -webkit-transform: scale(1); + transform: scale(1); + border-top: 8px solid transparent; + border-left: 10px solid #24695c; + border-bottom: 8px solid transparent; + -webkit-transition: all 0.3s ease; + transition: all 0.3s ease; } + +.customizer-contain { + direction: ltr; + position: fixed; + height: calc(100vh); + top: 80px; + width: 333px; + right: -335px; + background-color: #fff; + z-index: 99; + -webkit-transition: all 0.3s ease; + transition: all 0.3s ease; } + .customizer-contain.open { + right: 0px; + -webkit-transition: all 0.3s ease; + transition: all 0.3s ease; + -webkit-box-shadow: 0 0 10px 1px rgba(68, 102, 242, 0.05); + box-shadow: 0 0 10px 1px rgba(68, 102, 242, 0.05); } + .customizer-contain li { + position: relative; } + .customizer-contain li.active:before { + content: ""; + position: absolute; + height: 100%; + width: 100%; + z-index: 2; + left: 0; + top: 0; + font-size: 30px; + 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; + color: #2c323f; + -webkit-box-shadow: 0 0 11px 5px #e2e2e2; + box-shadow: 0 0 11px 5px #e2e2e2; } + .customizer-contain h6 { + text-transform: uppercase; + font-weight: 700; + letter-spacing: 0.5px; + color: #212529; } + .customizer-contain .customizer-header { + padding: 15px 25px; + border-bottom: 1px solid #e6edef; } + .customizer-contain .customizer-header .icon-close { + position: absolute; + font-size: 18px; + cursor: pointer; + font-weight: 900; + right: 30px; + color: #24695c; } + .customizer-contain .customizer-header h5 { + font-weight: 700; + text-transform: uppercase; + color: #313131; } + .customizer-contain .customizer-header p { + color: #313131; } + .customizer-contain .customizer-body { + padding: 15px 25px; + max-height: calc(100vh - 170px); + overflow-y: scroll; } + .customizer-contain .customizer-body .layout-grid.customizer-mix .color-layout { + height: 70px; + width: 80px; + border: 1px solid #f6f7fb; + border-radius: 5px; + display: inline-block; + margin-bottom: 7px; + margin-right: 3px; } + .customizer-contain .customizer-body .tab-pane > h6 { + position: relative; + margin-top: 25px; + padding-top: 25px; + margin-bottom: 20px; + border-top: 1px solid #f3f3f3; + font-size: 15px; } + .customizer-contain .customizer-body .tab-pane > h6:before { + content: ""; + position: absolute; + height: 3px; + width: 14px; + border-bottom: 2px dotted #2c323f; + bottom: -4px; } + .customizer-contain .customizer-body .tab-pane > h6:first-child { + border-top: 0; + padding-top: 0; + margin-top: 0; } + .customizer-contain .customizer-body .tab-pane .unlimited-color-layout { + display: -webkit-box; + display: -ms-flexbox; + display: flex; + -webkit-box-align: center; + -ms-flex-align: center; + align-items: center; } + .customizer-contain .customizer-body .tab-pane .unlimited-color-layout input { + height: 40px; + width: 40px; + border-radius: 5px; + display: inline-block; + margin-right: 3px; + border: 1px solid #b8b8b8; + padding: 3px; + background-color: #f5f7fb; } + .customizer-contain .customizer-body .nac-pills { + border: 1px solid #f1f1f1; + margin-bottom: 10px; + border-radius: 5px; + padding: 5px; + 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; } + .customizer-contain .customizer-body .nac-pills .nav-item { + width: 33.33%; + text-align: center; } + .customizer-contain .customizer-body .nac-pills .nav-item .nav-link { + border-radius: 5px; } + .customizer-contain .customizer-body .nac-pills .nav-item .nav-link.active { + background-color: #24695c; + color: #fff; } + .customizer-contain .customizer-body .nac-pills .nav-link { + padding: 0.2rem 1rem; } + .customizer-contain .customizer-body li { + cursor: pointer; + opacity: 0.9; } + .customizer-contain .customizer-body li.active { + opacity: 1; } + .customizer-contain .customizer-body .fade:not(.show) { + display: none; } + .customizer-contain .customizer-body .color-layout { + height: 40px; + width: 40px; + border-radius: 5px; + display: inline-block; + margin-bottom: 7px; + margin-right: 3px; + border: 1px solid #b8b8b8; + padding: 3px; } + .customizer-contain .customizer-body .color-layout > div { + background-color: #24695c; + height: 100%; + width: 100%; + border-radius: 3px; } + .customizer-contain .customizer-body .color-layout .body .contain { + position: absolute; + height: auto; + width: 100%; } + .customizer-contain .customizer-body .color-layout .body .contain li { + height: 1px; + width: 65%; + background-color: #24695c; + border-radius: 5px; + padding: 0; + margin-left: 10px; + margin-bottom: 4px; } + .customizer-contain .customizer-body .color-layout .body .contain li:before { + content: ""; + position: absolute; + height: 1px; + width: 3px; + background-color: #24695c; + left: -6px; + border-radius: 5px; } + .customizer-contain .customizer-body .color-layout[data-attr="color-2"] div { + background-color: #d97f3d; } + .customizer-contain .customizer-body .color-layout[data-attr="color-3"] div { + background-color: #168eea; } + .customizer-contain .customizer-body .color-layout[data-attr="color-4"] div { + background-color: #665ed5; } + .customizer-contain .customizer-body .color-layout[data-attr="color-5"] div { + background-color: #3a9aa8; } + .customizer-contain .customizer-body .color-layout[data-attr="color-6"] div { + background-color: #7951aa; } + .customizer-contain .customizer-body > li .body .body ul { + background-color: #f6f7fb; } + .customizer-contain .customizer-body .dark > li { + background-color: #2f3c4e; } + .customizer-contain .customizer-body .dark > li .body ul { + background-color: #2f3c4e; } + .customizer-contain .customizer-body .main-layout > li { + height: 70px; + width: 86px; + border: 1px solid #e6edef; + border-radius: 5px; + display: inline-block; } + .customizer-contain .customizer-body .main-layout .box-layout { + padding-left: 20px; + padding-right: 20px; + margin-top: 16px; } + .customizer-contain .customizer-body .main-layout .box-layout .body .badge { + left: -14px; } + .customizer-contain .customizer-body .sidebar-type > li, .customizer-contain .customizer-body .sidebar-setting > li { + height: 70px; + width: 86px; + border: 1px solid #e6edef; + border-radius: 5px; + display: inline-block; } + .customizer-contain .customizer-body .sidebar-type li:first-child .body ul li.bg-dark, .customizer-contain .customizer-body .sidebar-type li:first-child .body ul li.sidebar { + width: 100%; + height: 10px; + display: block; } + .customizer-contain .customizer-body .sidebar-type li:first-child .body ul li.bg-light, .customizer-contain .customizer-body .sidebar-type li:first-child .body ul li.body { + height: calc(100% - 10px); } + .customizer-contain .customizer-body .sidebar-bg-settings { + display: -webkit-box; + display: -ms-flexbox; + display: flex; + -webkit-box-align: center; + -ms-flex-align: center; + align-items: center; + -webkit-box-pack: justify; + -ms-flex-pack: justify; + justify-content: space-between; } + .customizer-contain .customizer-body .sidebar-bg-settings li { + height: 100px; + width: 100%; + border: 1px solid #e6edef; + border-radius: 5px; + display: inline-block; + margin-right: 9px; + -webkit-box-shadow: 0 0 11px -2px rgba(128, 128, 128, 0.4); + box-shadow: 0 0 11px -2px rgba(128, 128, 128, 0.4); } + .customizer-contain .customizer-body ul.layout-types { + margin-bottom: -20px; } + .customizer-contain .customizer-body ul.layout-types li { + display: block; + width: 100%; + height: auto; + text-align: center; + margin-bottom: 20px; } + .customizer-contain .customizer-body ul.layout-types li h6 { + margin-top: 10px; } + .customizer-contain .customizer-body ul.layout-types li + li { + margin-left: unset; } + .customizer-contain .customizer-footer { + position: absolute; + bottom: 0; + padding: 25px; + width: 100%; + border-top: 1px solid #e6edef; + background-color: #fff; } + +.layout-grid:not(.customizer-color) li { + padding: 5px; } + .layout-grid:not(.customizer-color) li > .header { + height: 9px; + border-radius: 3px; + position: relative; } + .layout-grid:not(.customizer-color) li > .header ul { + position: absolute; + top: -8px; + left: 5px; } + .layout-grid:not(.customizer-color) li > .header ul > li { + display: inline-block; + width: 4px; + height: 4px; + border-radius: 5px; + top: -2px; + background-color: #d22d3d; + margin-right: 1px; + padding: 0; } + .layout-grid:not(.customizer-color) li > .header ul > li:nth-child(2) { + background-color: #e2c636; } + .layout-grid:not(.customizer-color) li > .header ul > li:nth-child(3) { + background-color: #1b4c43; } + .layout-grid:not(.customizer-color) li > .body { + background-color: #e6edef; + height: calc(100% - 16px); + border-radius: 3px; + position: relative; + margin-top: 5px; + text-align: center; + line-height: 3.1; } + .layout-grid:not(.customizer-color) li > .body ul { + height: 100%; + background-color: #fff; } + .layout-grid:not(.customizer-color) li > .body ul .sidebar { + width: 18px; + height: 100%; + border-radius: 3px; + display: inline-block; + margin-right: 3px; + padding: 0; } + .layout-grid:not(.customizer-color) li > .body ul .sidebar.compact { + width: 12px; } + .layout-grid:not(.customizer-color) li > .body ul .sidebar.compact ~ .body { + width: calc(100% - 19px); } + .layout-grid:not(.customizer-color) li > .body ul .sidebar.compact-icon { + width: 7px; } + .layout-grid:not(.customizer-color) li > .body ul .sidebar.compact-icon ~ .body { + width: calc(100% - 14px); } + .layout-grid:not(.customizer-color) li > .body ul .body { + width: calc(100% - 25px); + padding: 0; + margin: 0; + height: 100%; + display: -webkit-inline-box; + display: -ms-inline-flexbox; + display: inline-flex; + -webkit-box-align: center; + -ms-flex-align: center; + align-items: center; + -webkit-box-pack: center; + -ms-flex-pack: center; + justify-content: center; + border-radius: 3px; } + .layout-grid:not(.customizer-color) li > .body ul .body .badge { + position: absolute; } + +/**===================== + 59.Customizer CSS Ends +==========================**/ +/**===================== + 71. Faq CSS start +==========================**/ +.faq-widgets { + -webkit-box-align: center; + -ms-flex-align: center; + align-items: center; } + .faq-widgets .media-body h5 { + font-weight: 600; + color: #fff; } + .faq-widgets .media-body p { + font-size: 14px; + padding-right: 20px; + color: rgba(255, 255, 255, 0.7); } + .faq-widgets svg { + width: 50px; + height: 50px; + opacity: 0.5; } + +.header-faq { + margin-bottom: 30px; } + .header-faq h5 { + font-weight: 600; } + +.faq-articles h6 { + font-size: 16px; } + +.faq-articles p { + color: #999; } + +.features-faq .faq-image img { + border-top-left-radius: 8px; + border-top-right-radius: 8px; + width: 100%; } + +.features-faq .card-body, .features-faq .card-footer { + padding: 20px; } + +.features-faq .card-body h6 { + font-weight: 600; + font-size: 18px; } + +.features-faq .card-body p { + font-size: 14px; + color: #999; } + +.features-faq ul li { + display: inline-block; } + +.faq-accordion { + margin-bottom: 30px; } + .faq-accordion p { + color: #999; } + .faq-accordion .card .btn-link { + display: -webkit-box; + display: -ms-flexbox; + display: flex; } + .faq-accordion .card .btn-link svg { + width: 20px; + height: 20px; + margin-right: 10px; + position: absolute; + left: 20px; } + .faq-accordion .faq-header { + position: relative; } + .faq-accordion .faq-header svg { + position: absolute; + right: 20px; + top: 20px; } + .faq-accordion .faq-header span { + margin-top: 3px; } + .faq-accordion .faq-body { + padding: 20px !important; } + .faq-accordion .card-mb-faq { + margin-bottom: 30px; } + .faq-accordion label { + font-weight: 500; + font-size: 14px; + margin-bottom: 10px; } + +.latest-articles p { + color: #999; } + +.faq-title { + margin: 30px 0; } + .faq-title h6 { + font-size: 18px; + font-weight: 600; + margin-bottom: unset; } + +.faq-form { + position: relative; } + .faq-form .search-icon { + position: absolute; + right: 12px; + top: 9px; + width: 16px; + height: 16px; } + +.navigation-btn { + margin-bottom: 20px; } + .navigation-btn a { + 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; + font-weight: 600; } + .navigation-btn a svg { + width: 15px; + height: 15px; } + +.navigation-option ul li { + position: relative; + padding: 10px 10px 10px 0; } + .navigation-option ul li:hover { + background-color: rgba(36, 105, 92, 0.05); } + .navigation-option ul li:hover a { + color: #24695c; } + .navigation-option ul li a { + padding-left: 40px; + color: #999; + font-weight: 500; } + .navigation-option ul li a svg { + position: absolute; + width: 15px; + height: 15px; + top: 12px; + left: 15px; } + +.updates-faq { + width: 40px; + height: 40px; + border: 1px solid #24695c; + border-radius: 100%; + 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-right: 20px; } + .updates-faq svg { + width: 18px; + height: 18px; } + +.updates-bottom-time p { + margin-bottom: 2px; + font-weight: 600; } + .updates-bottom-time p + p { + color: #999; } + +.updates-faq-main { + margin-bottom: 20px; } + .updates-faq-main:last-child { + margin-bottom: 0; } + +.default-according .card .card-header h5 { + padding-left: 25px; } + +.default-according .card .card-header .btn-link { + padding: 0; } + +@media only screen and (max-width: 1199px) { + .faq-accordion { + margin-bottom: 30px; } } + +@media only screen and (max-width: 991px) { + .faq-accordion .faq-header { + padding: 20px !important; } + .faq-accordion .faq-header h5 { + font-size: 20px; } + .faq-accordion .faq-header svg { + right: 20px; + top: 20px; + width: 20px; + height: auto; } + .navigation-option ul li { + padding: 10px 10px 10px 0; } + .navigation-option ul li a svg { + top: 12px; } + .navigation-btn, .updates-faq-main { + margin-bottom: 20px; } + .updates-faq { + width: 35px; + height: 35px; + margin-right: 20px; } + .updates-faq svg { + width: 16px; + height: 16px; } } + +@media only screen and (max-width: 767px) { + .xs-mt-search { + margin-top: 30px; } + .featured-tutorial .card-body, .featured-tutorial .card-footer { + padding: 20px; } + .updates-faq { + width: 30px; + height: 30px; } } + +@media only screen and (max-width: 575px) { + .xs-mt-search { + margin-top: 0px; } + .faq-widgets svg { + width: 100px; + height: 100px; + position: absolute; + opacity: 0.1; + top: 10px; + right: 20px; } + .faq-title { + margin: 15px 0; } + .faq-title h6 { + font-size: 16px; } + .header-faq { + margin-bottom: 15px; } + .faq-accordion { + margin-bottom: 0px; } + .faq-accordion .faq-header { + padding: 15px !important; } + .faq-accordion .faq-header .pull-right { + float: right; } + .faq-accordion .faq-header svg { + right: 15px; + top: 15px; } + .navigation-btn, .updates-faq-main { + margin-bottom: 15px; } } + +/**===================== + 71. Faq CSS end +==========================**/ +/**===================== + 73. knowledgebase CSS start +==========================**/ +.knowledgebase-bg { + height: 500px; + margin-bottom: 30px; } + +.knowledgebase-search { + 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; + left: 5%; } + .knowledgebase-search h3 { + font-weight: 600; } + .knowledgebase-search .form-inline { + background-color: #fff; + width: 500px; + padding: 12px 50px; + border-radius: 10px; + border: 1px solid #e6edef; + margin-top: 10px; + position: relative; } + .knowledgebase-search .form-inline ::-webkit-input-placeholder { + color: #cccccc; } + .knowledgebase-search .form-inline ::-moz-placeholder { + color: #cccccc; } + .knowledgebase-search .form-inline :-ms-input-placeholder { + color: #cccccc; } + .knowledgebase-search .form-inline ::-ms-input-placeholder { + color: #cccccc; } + .knowledgebase-search .form-inline ::placeholder { + color: #cccccc; } + .knowledgebase-search .form-inline svg { + position: absolute; + left: 20px; + width: 20px; + top: 17px; + stroke: #cccccc; } + +.browse { + margin-bottom: -20px; } + .browse > div { + margin-bottom: 20px; } + .browse .browse-articles h6 { + font-weight: 600; + padding-bottom: 15px; + margin-bottom: 15px; + border-bottom: 1px solid #e6edef; + color: #59667a; + padding-left: 25px; + position: relative; + line-height: 1.5; } + .browse .browse-articles h6 span svg { + width: 16px; + height: 16px; + margin-right: 10px; + vertical-align: text-top; + position: absolute; + left: 0; + top: 4px; } + .browse .browse-articles ul li { + border-radius: 8px; + position: relative; + padding-top: 8px; + padding-bottom: 8px; } + .browse .browse-articles ul li:last-child { + padding-bottom: 0; } + .browse .browse-articles ul li h5 { + vertical-align: text-top; + font-size: 14px; + margin-bottom: unset; + color: #999; + width: 100%; + padding-left: 20px; + line-height: 1.6; + font-weight: 500; + position: relative; } + .browse .browse-articles ul li h5 span.badge { + margin-left: auto; } + .browse .browse-articles ul li h5 svg { + width: 14px; + height: 14px; + margin-right: 10px; + vertical-align: text-top; + position: absolute; + left: 0; + top: 4px; } + .browse .browse-articles ul li a { + color: #242934; + display: -webkit-inline-box; + display: -ms-inline-flexbox; + display: inline-flex; + -webkit-box-align: center; + -ms-flex-align: center; + align-items: center; + width: 100%; } + .browse .browse-articles ul li:hover h5 { + color: #24695c; } + +@media only screen and (max-width: 1199px) { + .knowledgebase-bg { + height: 400px; } + .knowledgebase-search .form-inline { + width: 400px; + padding: 7px 45px; } + .knowledgebase-search .form-inline svg { + top: 14px; } } + +@media only screen and (max-width: 767px) { + .browse .browse-articles h6 { + margin-bottom: 10px; } } + +@media only screen and (max-width: 575px) { + .browse .browse-articles h6 { + margin-bottom: 10px; } + .knowledgebase-bg { + height: 250px; } + .knowledgebase-search { + width: calc(100% - 30px); + left: 15px; + height: calc(100% - 30px); + background-color: rgba(255, 255, 255, 0.7); } + .knowledgebase-search .form-inline { + width: 90%; + padding: 3px 45px; } + .knowledgebase-search .form-inline svg { + top: 8px; } + .knowledgebase-search > div { + width: 100%; + text-align: center; + padding: 15px; + border-right: 10px; } + .knowledgebase-search > div h3 { + font-size: 20px; + margin-bottom: 0; } + .knowledgebase-search > div .form-group { + margin-bottom: 0; } } + +@media only screen and (max-width: 360px) { + .browse .browse-articles ul li h5 { + width: 100%; + white-space: nowrap; + overflow: hidden; + text-overflow: ellipsis; } + .browse .browse-articles ul li h5 span.badge { + display: none; } } + +/**===================== + 73. knowledgebase CSS end +==========================**/ +/**===================== + 70. Document CSS Start +==========================**/ +.document.close .page-sidebar { + left: -290px; } + +.document.close .page-wrapper.compact-wrapper .page-body-wrapper.sidebar-icon .page-body { + margin-left: unset; } + +.document .page-main-header { + background-color: #fff; } + .document .page-main-header.document-header { + height: 80px; + width: calc(100% - 290px); + margin-left: 290px; + padding-left: 30px; + padding-right: 30px; } + .document .page-main-header.document-header.open { + margin-left: 0; + width: 100%; } + .document .page-main-header .main-header-right { + padding: 0 0; } + .document .page-main-header .navbar-collapse .navbar-nav { + display: -webkit-box; + display: -ms-flexbox; + display: flex; + -webkit-box-pack: end; + -ms-flex-pack: end; + justify-content: flex-end; + padding-right: 0; + width: 100%; } + .document .page-main-header .navbar-collapse .navbar-nav .nav-item { + padding-right: 15px; } + .document .page-main-header .navbar-collapse .navbar-nav .nav-item:last-child { + padding-right: 0; } + .document .page-main-header .document-right-nav .navbar .navbar-collapse .navbar-nav .nav-item .nav-link { + font-weight: 600; + text-transform: uppercase; } + +.document .page-sidebar { + position: fixed; + top: 0; + left: 0; + width: 290px; + height: 100%; + overflow-y: auto; + background-color: #fff; + z-index: 9; + -webkit-transition: all 0.5s ease; + transition: all 0.5s ease; } + .document .page-sidebar .logo-wrapper { + border-bottom: 1px solid #efefef; } + .document .page-sidebar .logo-wrapper img { + vertical-align: middle; + border-style: none; + padding: 23px -7px; + padding-top: 25px; + padding-bottom: 25px; + padding-left: 30px; } + .document .page-sidebar ul.document-menu { + padding-right: 20px; + padding-left: 20px; + padding-top: 15px; + padding-bottom: 15px; } + .document .page-sidebar ul.document-menu h4 { + font-size: 22px; + font-weight: 600; + border-bottom: 1px solid #efefef; } + .document .page-sidebar ul.document-menu li a { + color: #242934; + font-size: 16px; + padding-left: unset; + padding-right: unset; + -webkit-transition: all 0.5s ease; + transition: all 0.5s ease; } + .document .page-sidebar ul.document-menu li a.menu-title { + font-weight: 600; + line-height: 1; } + .document .page-sidebar ul.document-menu li a.menu-title:hover { + color: #24695c; } + .document .page-sidebar ul.document-menu li .nav-submenu { + padding-top: 5px; + padding-bottom: 5px; + padding-left: 15px; } + .document .page-sidebar ul.document-menu li .nav-submenu li { + padding-left: 15px; + position: relative; + -webkit-transition: all 0.5s ease; + transition: all 0.5s ease; } + .document .page-sidebar ul.document-menu li .nav-submenu li a { + color: #999; + font-weight: 500; + font-size: 14px; + line-height: 1; } + .document .page-sidebar ul.document-menu li .nav-submenu li a i { + position: absolute; + top: 7px; + left: 0; + -webkit-transition: all 0.5s ease; + transition: all 0.5s ease; } + .document .page-sidebar ul.document-menu li .nav-submenu li a:hover { + color: #24695c; } + .document .page-sidebar ul.document-menu li .nav-submenu li:hover { + -webkit-transform: translateX(5px); + transform: translateX(5px); } + +.document .fa-star { + color: #f4c705; } + +.document .card .card-header h5 { + font-size: 20px; + margin-bottom: 5px; } + +.document .reviews { + margin-bottom: 20px; } + .document .reviews h2 { + font-weight: 600; + font-size: calc(20px + (28 - 20) * ((100vw - 320px) / (1920 - 320))); } + .document .reviews h5 { + font-size: calc(14px + (18 - 14) * ((100vw - 320px) / (1920 - 320))); } + +.document-content .page-sidebar.open { + -webkit-transform: translate(-260px) !important; + transform: translate(-260px) !important; } + .document-content .page-sidebar.open ~ .page-body, .document-content .page-sidebar.open ~ footer { + margin-left: 0 !important; } + +.document-content ul.nav-pills { + overflow-y: scroll; + max-height: calc(100vh - 180px); + display: block; } + .document-content ul.nav-pills li { + line-height: 25px; } + .document-content ul.nav-pills li h4 { + color: #fff; + padding: 0 15px; } + .document-content ul.nav-pills li .nav-link { + border-radius: .25rem; + font-size: 14px; + display: block; + text-decoration: none; + color: #d4d4d4; + font-weight: 500; + padding: 3px 15px; + letter-spacing: 1px; } + .document-content ul.nav-pills li .nav-link i { + margin-top: 5px; + text-decoration: none; + color: #fff; + margin-right: 20px; } + .document-content ul.nav-pills li .nav-link.active { + background-color: unset !important; + color: #24695c; } + .document-content ul.nav-pills li .nav-link p { + font-size: 16px; + margin-bottom: 0; + padding-top: 7px; + font-weight: 600; } + .document-content ul.nav-pills li .show > .nav-link { + background-color: unset !important; + color: #24695c; } + +.document-content .table thead th { + width: 50%; } + +.document-content .set-flex { + display: -webkit-box; + display: -ms-flexbox; + display: flex; } + +.document-content i.fa-star { + color: #ffd042; } + +.document-content .col-9 { + padding-left: 40px; } + .document-content .col-9 .set-height { + overflow: scroll; + overflow-x: hidden; } + .document-content .col-9 .tab-content { + overflow: auto; + overflow-x: hidden; + max-height: calc(100% - 200px); + position: fixed; + width: 976px; + margin-left: 30px; + -webkit-box-shadow: 0 0 15px 0 rgba(220, 220, 220, 0.4); + -o-box-shadow: 0 0 15px 0 rgba(220, 220, 220, 0.4); + box-shadow: 0 0 15px 0 rgba(220, 220, 220, 0.4); } + .document-content .col-9 .tab-content .section-head { + font-weight: 600; + font-size: 32px; + margin-bottom: 40px; + padding: 0; } + +.document-content .card-body.tree-color { + padding: 0; } + +.document-content .jstree-default { + padding: 30px; + background-color: #111727; + -webkit-box-shadow: 1px 1px 2px 1px rgba(255, 255, 255, 0.08); + box-shadow: 1px 1px 2px 1px rgba(255, 255, 255, 0.08); } + .document-content .jstree-default .jstree-anchor { + color: #a6aaaf; } + .document-content .jstree-default .jstree-hovered { + background-color: #202938; + border: 1px solid #202938; } + .document-content .jstree-default .jstree-clicked { + color: white !important; + background: transparent !important; } + .document-content .jstree-default .jstree-icon { + color: #656b78 !important; } + +.document-content hr { + margin-top: 1rem; + margin-bottom: 1rem; + border: 0; + border-top: 1px solid rgba(0, 0, 0, 0.1); } + +.document-content .html-editor { + color: rgba(255, 255, 255, 0.7); + background-color: #2b2b2b; } + .document-content .html-editor pre { + color: rgba(255, 255, 255, 0.7); + background-color: #000; } + +.document-content .progress { + margin-bottom: 10px; } + +.document-content ul.list-ticked li { + margin-bottom: 10px; + padding-left: 1rem; } + +.document-content.faq { + font-size: 18px; } + .document-content.faq .btn { + font-size: 18px; + font-weight: 600; + color: #24695c; } + .document-content.faq .btn.btn-link { + color: #000; } + .document-content.faq .btn.btn-link.collapsed { + color: #24695c; } + .document-content.faq ul { + border: unset; } + .document-content.faq ul.nav { + display: block; } + .document-content.faq ul.nav li .nav-link { + border-radius: .25rem; + font-size: 18px; + display: block; + padding: 3px 20px 3px 30px; + text-decoration: none; + line-height: 30px; + color: #4c5667; + font-weight: 500; + border: unset; } + .document-content.faq ul.nav li .nav-link i { + margin-top: 3px; + text-decoration: none; + line-height: 25px; + color: #24695c; + margin-right: 20px; } + .document-content.faq ul.nav li .nav-link.active { + color: #24695c; + background-color: unset; + border: unset; } + .document-content.faq ul.nav li .nav-link:hover { + border: unset; } + +.document-content .reviews { + background-color: #fff; + padding: 30px 0; + margin-bottom: 30px; + -webkit-box-shadow: 1px 1px 2px 1px rgba(0, 0, 0, 0.08); + box-shadow: 1px 1px 2px 1px rgba(0, 0, 0, 0.08); } + .document-content .reviews h1 { + text-transform: uppercase; + font-weight: 600; } + .document-content .reviews h5 { + text-transform: capitalize; } + +@media (max-width: 991px) { + .document.close .page-sidebar { + left: 0; } + .document.close .page-wrapper.compact-wrapper .page-body-wrapper.sidebar-icon .page-body { + margin-left: unset; } + .document .navbar { + padding-top: 0; + padding-bottom: 0; } + .document .page-sidebar { + left: -290px; + z-index: 1; } + .document .navbar-toggler { + padding: 0; } + .document .navbar-toggler:focus { + -webkit-box-shadow: none; + box-shadow: none; } } + +@media (max-width: 575px) { + .document .page-main-header.document-header { + height: 60px; } } + +/**===================== + 70. Document CSS Ends +==========================**/ +/**===================== + 72. Job CSS start +==========================**/ +.filter-cards-view .job-filter:first-child { + margin-bottom: 30px; } + +.filter-cards-view .checkbox-animated { + margin-top: 30px; + margin-bottom: 30px; } + +.filter-cards-view p { + color: #999; + line-height: 1.6; + letter-spacing: 0.02em; + font-size: 13px; } + +.filter-cards-view .filter-view-group { + margin-bottom: 10px; } + +.location-checkbox span { + color: #999; + padding-left: 33px; } + +.job-accordion .card { + margin-bottom: 30px; } + +.job-accordion .btn-block { + border-top-left-radius: 0; + border-top-right-radius: 0; } + +.job-sidebar .job-toggle { + display: none; + width: -webkit-fit-content; + width: -moz-fit-content; + width: fit-content; } + +.job-search p { + margin-top: 20px; + color: #999; } + +.job-search .media .media-body h6 { + margin-bottom: 3px; } + .job-search .media .media-body h6 span { + font-size: 13px; + font-weight: normal; } + .job-search .media .media-body h6 span.badge { + color: #fff; + font-weight: 600; } + .job-search .media .media-body h6 .btn { + font-weight: 600; } + +.job-search .media .media-body p { + margin-top: 0; + margin-bottom: 0; + font-weight: 500; + display: inline-block; } + +.job-search .media .media-body ul.rating { + margin-left: 10px; + display: inline-block; } + .job-search .media .media-body ul.rating li { + display: inline-block; + letter-spacing: -2px; } + +.job-search .media .media-body .job-apply-btn { + position: absolute; + top: 30px; + right: 30px; } + +.job-search .job-description { + margin-top: 20px; + border-top: 1px solid #ececec; + padding-top: 20px; } + .job-search .job-description h6 { + font-weight: 600; } + .job-search .job-description p { + margin-top: 0; + margin-bottom: 6px; + letter-spacing: 0.04em; } + .job-search .job-description ul { + list-style-type: disc; + list-style-position: inside; } + .job-search .job-description ul li { + margin-bottom: 10px; + cursor: pointer; + color: #999; } + .job-search .job-description ul li:last-child { + margin-bottom: 0; } + .job-search .job-description ul li:hover { + color: #24695c; } + .job-search .job-description .theme-form { + margin-top: 20px; + margin-bottom: 30px; + border-bottom: 1px solid #efefef; } + .job-search .job-description .theme-form .row div[class^="col-"] + div[class^="col-"] .select2-container { + margin-top: 14px; + max-width: 100%; } + .job-search .job-description .theme-form .row div[class^="col-"] .job-select2 ~ .select2-container { + margin-top: 0 !important; } + .job-search .job-description .theme-form .row div[class^="col-"] .input-group .datepicker-here { + font-size: 14px; + border: 1px solid #e6edef; + padding-top: 7px; + padding-bottom: 7px; } + +.select2-container .select2-selection--single { + border-radius: 0.25rem !important; + border-color: #e6edef !important; + height: 40px !important; + padding: 5px; } + +.job-pagination { + margin-bottom: 30px; } + .job-pagination nav ul { + -webkit-box-pack: center; + -ms-flex-pack: center; + justify-content: center; } + +@media only screen and (max-width: 1366px) { + .xl-mt-job { + margin-bottom: 20px; } } + +@media only screen and (max-width: 1400px) and (min-width: 1200px) { + .job-search .media .media-body .job-apply-btn { + position: unset; + width: -webkit-fit-content; + width: -moz-fit-content; + width: fit-content; + margin-top: 5px; + display: block; } } + +@media only screen and (max-width: 991px) { + .filter-cards-view { + padding: 20px !important; } + .filter-cards-view .job-filter:first-child { + margin-bottom: 20px; } + .filter-cards-view .checkbox-animated { + margin-top: 20px; + margin-bottom: 20px; } + .job-accordion .animate-chk { + padding: 20px !important; } + .job-search p { + margin-top: 15px; } } + +@media only screen and (max-width: 767px) { + .job-search .media .media-body .job-apply-btn { + position: unset; + display: block; + width: -webkit-fit-content; + width: -moz-fit-content; + width: fit-content; + margin-top: 5px; } } + +@media only screen and (max-width: 575px) { + .filter-cards-view { + padding: 15px !important; } + .filter-cards-view .job-filter:first-child { + margin-bottom: 15px; } + .filter-cards-view .checkbox-animated { + margin-top: 15px; + margin-bottom: 15px; } + .job-accordion .animate-chk { + padding: 15px !important; } + .job-search p { + margin-top: 10px; + text-align: center; + font-size: 13px; } + .job-search .media { + display: block; + text-align: center; } + .job-search .media .media-body { + text-align: center; } + .job-search .media .media-body .job-apply-btn { + margin-left: auto; + margin-right: auto; } + .job-search .media .media-body h6 { + margin-bottom: unset; } + .job-search .media .media-body h6 .pull-right { + float: none; + display: inline-block; + margin-left: 15px; } + .job-search .media .media-body h6 span.badge { + font-size: 10px; + padding: 5px; } + .job-search .media .media-body h6 a { + margin-bottom: 10px; } + .job-search .media .media-body p span + span { + display: block; } + .job-search .media img { + margin-bottom: 15px; } + .job-search .media .m-r-20 { + margin-right: 0; } + .job-search .job-description { + margin-top: 15px; + padding-top: 15px; } + .job-search .job-description label { + display: block; + text-align: left !important; } + .job-search .job-description .select2-container { + width: 100% !important; } + .job-search .job-description .theme-form { + margin-top: 15px; + margin-bottom: 15px; } + .job-search .job-description .theme-form .row div[class^="col-"] + div[class^="col-"] .select2-container { + margin-top: 2px; } + .job-search .job-description .theme-form .xs-mt-period { + margin-top: 15px; } + .job-search .card-footer { + padding: 20px; } + .job-pagination { + margin-bottom: 15px; } + .xl-mt-job { + margin-bottom: 15px; } } + +@media only screen and (max-width: 420px) { + .job-search .media .media-body h6 span.badge { + display: none; } } + +@media only screen and (max-width: 360px) { + .job-search .job-description .btn { + padding: 6px 12px; } } + +/**===================== + 72. Job CSS end +==========================**/ +/**===================== + 75. Learning CSS start +==========================**/ +.learning-box .details-main { + margin: 30px; } + .learning-box .details-main h6 { + font-size: 20px; } + .learning-box .details-main p { + color: #59667a; + margin-bottom: 0; } + +.learning-header { + margin-bottom: 5px; } + +.categories { + padding: 20px 0; } + .categories .learning-header { + padding-left: 30px; + font-size: 16px; } + .categories ul li { + padding: 5px 30px; } + .categories ul li a { + color: #999; + font-weight: 500; } + .categories ul li:hover { + background-color: #e6edef; } + .categories ul li:hover a { + color: #24695c; } + +.upcoming-course .media + .media { + margin-top: 30px; } + +.job-accordion { + margin-bottom: 0; } + +.learning-section .categories ul li a { + font-size: 13px; } + +@media screen and (min-width: 1200px) and (max-width: 1366px) { + .learning-comment { + float: left !important; } + .blog-box .blog-details .blog-social li:nth-child(n+2) { + padding-left: 15px; + margin-left: 15px; } } + +@media only screen and (max-width: 991px) { + .categories { + padding: 20px 0; } + .categories .learning-header { + padding-left: 20px; } + .categories ul li { + padding: 5px 20px; } + .upcoming-course .media + .media { + margin-top: 20px; } } + +@media only screen and (max-width: 767px) { + .categories ul li a { + font-size: 13px; } + .comment-box h4 { + margin-bottom: 20px; + padding-bottom: 15px; } + .comment-box li { + margin-bottom: 20px; } } + +@media only screen and (max-width: 575px) { + .categories { + padding: 15px 0; } + .categories .learning-header { + padding-left: 15px; } + .upcoming-course .media + .media { + margin-top: 10px; } } + +/**===================== + 75. Learning CSS end +==========================**/ +/**===================== + 76. Order History CSS start +==========================**/ +.prooduct-details-box { + margin-bottom: 30px; } + .prooduct-details-box .close { + position: absolute; + top: 10px; + right: 10px; + height: 16px; + cursor: pointer; } + .prooduct-details-box .media { + border: 1px solid #e6edef; + width: 100%; + position: relative; + display: block; } + .prooduct-details-box .media .media-body { + padding: 15px; } + .prooduct-details-box .rating { + color: #ffaf45; } + .prooduct-details-box .price { + font-size: 14px; + font-weight: 600; } + .prooduct-details-box .price span { + margin-left: 5px; + color: #717171; } + .prooduct-details-box ul.rating li { + display: inline-block; } + .prooduct-details-box .product-name h6 { + color: #242934; + font-size: 15px; } + .prooduct-details-box .btn { + position: absolute; + right: 15px; + bottom: 15px; + font-size: 9px; + padding: 2px 5px; } + +.order-history .input-group { + text-align: right; + max-width: 300px; } + +.order-history table th { + min-width: 170px; } + +.order-history table th, +.order-history table td { + text-align: center; } + +.order-history table thead tr th { + vertical-align: middle; + border-top: none; + background-color: rgba(36, 105, 92, 0.05); + border: 1px solid #24695c; + padding: 15px; + font-size: 16px; + color: #24695c; + font-weight: 600; } + +.order-history table .qty-box { + width: 120px; + margin: 0 auto; + border-radius: 5px; + overflow: hidden; } + .order-history table .qty-box input { + padding: 0; + border: none; + background-color: transparent; } + .order-history table .qty-box input:focus { + -webkit-box-shadow: none; + box-shadow: none; + border: none; } + .order-history table .qty-box .input-group { + -webkit-box-pack: justify; + -ms-flex-pack: justify; + justify-content: space-between; + -webkit-box-align: center; + -ms-flex-align: center; + align-items: center; + background-color: transparent; + border-radius: 5px; + border: 1px solid #e6edef; + overflow: hidden; } + .order-history table .qty-box .btn { + background-color: transparent; + padding: 8px 13px; + font-size: 10px; } + +.order-history table tbody tr td { + vertical-align: middle; + color: #999; + font-weight: 600; } + .order-history table tbody tr td .product-name a { + font-size: 15px; + color: #898989; } + .order-history table tbody tr td .product-name .order-process { + font-size: 13px; + padding-left: 15px; } + .order-history table tbody tr td .product-name .order-process .order-process-circle { + position: relative; } + .order-history table tbody tr td .product-name .order-process .order-process-circle:before { + position: absolute; + content: ''; + width: 4px; + height: 4px; + border-radius: 100%; + background-color: #898989; + left: -15px; + top: 4px; } + .order-history table tbody tr td .product-name .order-process .order-process-circle.shipped-order:before { + background-color: #1b4c43; } + .order-history table tbody tr td .product-name .order-process .order-process-circle.cancel-order:before { + background-color: #d22d3d; } + .order-history table tbody tr td.total-amount { + color: #242934; } + +.order-history .product-name h6 { + color: #242934; + margin-bottom: unset; + font-size: 14px; } + +.whishlist-main > div { + margin-bottom: -30px; } + +@media only screen and (max-width: 1199px) { + .order-history table { + width: 900px; + overflow: auto; } } + +@media only screen and (max-width: 767px) { + .order-history table tbody tr td .product-name a { + font-size: 14px; } } + +@media only screen and (max-width: 575px) { + .wishlist .text-end { + text-align: left !important; } } + +/**===================== + 76. Order History CSS end +==========================**/ +/**===================== + 74. internationalization css start +==========================**/ +.hdg_main { + position: relative; } + +.main .langChoice { + position: absolute; + right: 30px; + top: 20px; + padding: 10px 12px; + background-color: rgba(36, 105, 92, 0.05); + border-color: #e6edef; + color: #24695c; } + +/**===================== + 74. internationalization CSS end +==========================**/ +/**===================== + 79. social app css start +==========================**/ +.social-tab { + display: -webkit-box; + display: -ms-flexbox; + display: flex; + -webkit-box-align: center; + -ms-flex-align: center; + align-items: center; + -webkit-box-pack: justify; + -ms-flex-pack: justify; + justify-content: space-between; + padding: 30px; } + .social-tab ul { + border-bottom: none !important; } + .social-tab ul li a { + font-weight: 600; + display: -webkit-box; + display: -ms-flexbox; + display: flex; + -webkit-box-align: center; + -ms-flex-align: center; + align-items: center; + background-color: rgba(36, 105, 92, 0.05); } + .social-tab ul li a svg { + width: 15px; + height: 15px; + margin-right: 5px; + color: #24695c; } + .social-tab ul li a:hover { + border-color: transparent !important; } + .social-tab ul li a.active { + background-color: #24695c !important; + color: #fff !important; } + .social-tab ul li a.active svg { + color: #fff; } + .social-tab ul li:nth-child(n+2) { + margin-left: 20px; } + .social-tab .input-group { + width: 280px; } + .social-tab .input-group .form-control { + background-color: rgba(36, 105, 92, 0.08); + border-color: #e6edef; + height: 40px; + padding-left: 13px; + font-size: 14px; } + .social-tab .input-group .input-group-text { + background-color: #24695c; } + .social-tab .input-group .input-group-text i { + color: #fff; } + +.social-network span { + margin-bottom: 10px; + display: block; } + +.social-list .media { + margin-bottom: 20px; + display: -webkit-box; + display: -ms-flexbox; + display: flex; + -webkit-box-pack: center; + -ms-flex-pack: center; + justify-content: center; + -webkit-box-align: center; + -ms-flex-align: center; + align-items: center; } + .social-list .media:last-child { + margin-bottom: 0; } + .social-list .media .media-body a { + color: #999; } + .social-list .media .media-body span { + font-weight: 600; + color: #242934; } + .social-list .media .media-body:hover a { + color: #24695c; } + +.photos { + margin-bottom: -10px; } + .photos ul li { + display: inline-block; + margin-right: 10px; + margin-bottom: 10px; + width: 65px; } + .photos ul li img { + width: 100%; } + +.new-users-social { + margin-bottom: 30px; } + .new-users-social .media img { + width: 58px; } + .new-users-social .media .media-body { + margin-top: 10px; } + .new-users-social svg circle { + color: #999; } + +.like-content span i { + font-size: 14px; } + +.timeline-content p { + margin-top: 30px; + color: #999; } + +.timeline-content .comment-number i { + color: #999; + margin-right: 20px; } + +.timeline-content .comments-box { + margin-top: 30px; } + .timeline-content .comments-box .input-group { + margin-top: 6px; } + .timeline-content .comments-box .input-group .input-txt-bx::-webkit-input-placeholder { + color: #999; } + .timeline-content .comments-box .input-group .input-txt-bx::-moz-placeholder { + color: #999; } + .timeline-content .comments-box .input-group .input-txt-bx:-ms-input-placeholder { + color: #999; } + .timeline-content .comments-box .input-group .input-txt-bx::-ms-input-placeholder { + color: #999; } + .timeline-content .comments-box .input-group .input-txt-bx::placeholder { + color: #999; } + .timeline-content .comments-box .input-group .input-group-append .btn i { + font-size: 20px; + display: -webkit-box; + display: -ms-flexbox; + display: flex; + color: #999; } + .timeline-content .comments-box .input-group .input-group-text { + background-color: #24695c; + padding: 10px; } + .timeline-content .comments-box .input-group .input-group-text img { + width: 22px; + height: 22px; } + +.social-chat { + margin-top: 30px; } + .social-chat span span { + font-weight: normal; + color: #999; + font-size: 12px; } + .social-chat .media-body { + padding: 30px; + border: 1px solid #e6edef; + position: relative; } + .social-chat .media-body p { + margin-top: 5px; } + .social-chat .media-body:before { + content: ''; + position: absolute; + top: 19px; + right: 100%; + border: 7px solid transparent; + border-right: 7px solid #59667a; } + .social-chat .media-body:after { + content: ''; + position: absolute; + top: 19px; + right: 100%; + border: 7px solid transparent; + border-right: 7px solid #fff; } + .social-chat .your-msg, .social-chat .other-msg { + margin-bottom: 30px; } + .social-chat .other-msg { + margin-left: 40px; } + +.socialprofile span { + color: #999; } + +.socialprofile h5 { + margin-bottom: 10px; } + +.socialprofile .social-btngroup { + margin: 15px 0; } + +.socialprofile .likes-profile h5 span { + color: #242934; } + +.socialprofile .social-group { + margin-top: 15px; } + .socialprofile .social-group ul li:nth-child(4) { + margin-left: -22px; } + +.social-status form .form-group .form-control-social { + border: 1px solid #e6edef; + padding-left: 15px; + margin-bottom: 30px; + width: 100%; + height: 40px; + border-radius: 5px; } + +.social-status .media { + position: relative; + margin-bottom: 30px; } + .social-status .media:last-child { + margin-bottom: 0; } + .social-status .media .social-status { + content: ''; + position: absolute; + width: 12px; + height: 12px; + background-color: #fff; + bottom: 0; + left: 35px; + border-radius: 100%; } + .social-status .media .social-online { + border: 3px solid #1b4c43; } + .social-status .media .social-busy { + border: 3px solid #e2c636; } + .social-status .media .social-offline { + border: 3px solid #59667a; } + .social-status .media .media-body p { + color: #999; + font-size: 13px; + margin-bottom: 5px; } + .social-status .media .media-body span + span { + color: #999; } + .social-status .media .media-body .light-span { + color: #999; } + +.social-header h5 span:first-child { + line-height: 1.48; } + +.social-header h5 span svg circle { + color: #999; } + +.details-about + .details-about { + margin-top: 15px; } + +.details-about .your-details p { + color: #999; + line-height: 1.6; } + +.avatar-showcase .friend-pic { + margin-right: 8px; + margin-bottom: 10px; } + +.avatar-showcase .pepole-knows ul li { + display: inline-block; + margin-right: 21px; + margin-bottom: 10px; } + .avatar-showcase .pepole-knows ul li:last-child { + margin-right: 0; } + .avatar-showcase .pepole-knows ul li .add-friend h6 { + margin-top: 3px; } + .avatar-showcase .pepole-knows ul li .add-friend span { + margin-bottom: 5px; + margin-top: 5px; } + +.activity-log .my-activity + .my-activity { + margin-top: 15px; } + +.activity-log .my-activity h6 { + margin-bottom: 15px; } + +.activity-log .my-activity p { + margin-bottom: 5px; + color: #999; } + .activity-log .my-activity p span svg { + width: 15px; + height: 15px; } + +.social-app-profile .card .socialprofile h5 { + margin-bottom: 5px; + font-weight: 600; + font-size: 16px; } + +.social-app-profile .card .socialprofile h4 { + font-size: 20px; } + +.social-app-profile .card .socialprofile h6 { + margin-bottom: unset; } + +.social-app-profile .card .socialprofile span { + font-size: 12px; } + .social-app-profile .card .socialprofile span .badge { + font-size: 10px; + padding: 2px 3px; + font-weight: 400; } + +@media (max-width: 480px) { + .social-app-profile .card .socialprofile h4 { + font-size: 18px; } + .customers ul li img { + width: 25px !important; } + .socialprofile .social-group { + margin-top: 10px; } + .photos ul li { + width: 49px; } + .new-users-social .media img { + width: 50px; } } + +/**===================== + 79. social app CSS end +==========================**/ +/**===================== + 80. avatars CSS start +==========================**/ +.avatars .avatar { + display: inline-block; + margin-right: 10px; + position: relative; } + .avatars .avatar:last-child { + margin-right: 0; } + .avatars .avatar .b-r-30 { + border-radius: 30px; } + .avatars .avatar .b-r-35 { + border-radius: 35px; } + .avatars .avatar .b-r-25 { + border-radius: 25px; } + .avatars .avatar .b-r-15 { + border-radius: 15px; } + .avatars .avatar.ratio img { + width: auto; } + .avatars .avatar .height-100 { + height: 100px; } + .avatars .avatar .height-90 { + height: 90px; } + .avatars .avatar .height-80 { + height: 80px; } + .avatars .avatar .height-70 { + height: 70px; } + .avatars .avatar .height-60 { + height: 60px; } + .avatars .avatar .height-50 { + height: 50px; } + .avatars .avatar .status { + position: absolute; + background-color: #999; + bottom: 0; + right: 4px; + border-radius: 100%; + border: 1px solid #fff; } + .avatars .avatar .status-100 { + width: 25px; + height: 25px; } + .avatars .avatar .status-90 { + width: 20px; + height: 20px; } + .avatars .avatar .status-80 { + width: 15px; + height: 15px; } + .avatars .avatar .status-70 { + width: 12px; + height: 12px; } + .avatars .avatar .status-60 { + width: 10px; + height: 10px; } + .avatars .avatar .status-50 { + width: 9px; + height: 9px; } + .avatars .avatar .status-40 { + width: 8px; + height: 8px; } + .avatars .avatar .status-30 { + width: 7px; + height: 7px; } + +.customers ul li img { + border: 2px solid #fff; + -webkit-box-shadow: -2px 2px 4px 0px rgba(0, 0, 0, 0.2); + box-shadow: -2px 2px 4px 0px rgba(0, 0, 0, 0.2); + -webkit-transition: 0.5s; + transition: 0.5s; } + .customers ul li img:hover { + -webkit-transform: translateY(-4px) scale(1.02); + transform: translateY(-4px) scale(1.02); + -webkit-transition: 0.5s; + transition: 0.5s; } + +.customers ul li + li { + margin-left: -22px; } + +.customers ul li:nth-child(4) { + margin-left: -4px; } + +.customers.avatar-group { + margin-right: 30px; } + .customers.avatar-group:last-child { + margin-right: 0; } + +.avatar-showcase { + margin-bottom: -10px; } + .avatar-showcase .avatars .avatar { + margin-bottom: 10px; } + .avatar-showcase .avatar-group { + margin-bottom: 10px; } + +/**===================== + 80. avatars CSS Ends +==========================**/ +/**===================== + 81. Bookmark CSS start +==========================**/ +.bookmark { + text-align: right; } + .bookmark ul li { + border: 1px solid #e6edef; + background-color: #fff; + display: inline-block; + border-radius: 8px; + -webkit-transition: all 0.5s ease; + transition: all 0.5s ease; } + .bookmark ul li svg { + -webkit-transition: all 0.5s ease; + transition: all 0.5s ease; } + .bookmark ul li:hover { + background-color: #24695c; } + .bookmark ul li:hover a svg { + color: #fff; + stroke: #fff; } + .bookmark ul li .search-form { + position: absolute; + bottom: 53px; } + .bookmark ul li .search-form .form-control-search { + top: 60px; + position: absolute; + -webkit-transition: all linear 0.3s; + transition: all linear 0.3s; + right: -20px; + -webkit-transform: translateY(-35px) scaleY(0); + transform: translateY(-35px) scaleY(0); + opacity: 0; + visibility: hidden; } + .bookmark ul li .search-form .form-control-search input { + width: 285px; + background-color: #fff; + border: 1px solid #e6edef; } + .bookmark ul li .search-form .form-control-search.open { + -webkit-transform: translateY(0px) scaleY(1); + transform: translateY(0px) scaleY(1); + opacity: 1; + visibility: visible; + -webkit-transition: all linear 0.3s; + transition: all linear 0.3s; + z-index: 100; } + .bookmark ul li .search-form .form-control-search:after { + top: 12px; + left: 20px; + z-index: 1; } + .bookmark ul li .search-form .form-control-search:before { + left: 50px; + top: 9px; + z-index: 2; } + .bookmark ul li a { + position: relative; + color: #242934; } + .bookmark ul li a svg { + vertical-align: middle; + height: 18px; + width: 18px; + margin: 12px; } + .bookmark ul li:nth-child(n+2) { + margin-left: 8px; } + .bookmark ul li:last-child { + padding-right: 0; + color: #24695c; } + .bookmark ul li:last-child a { + border-radius: 5px; } + .bookmark ul li:last-child a svg { + color: #24695c; } + +.offcanvas-bookmark.page-wrapper.horizontal-wrapper .page-body-wrapper .page-body .bookmark ul li a { + z-index: 99999; + color: rgba(255, 255, 255, 0.5); } + +.offcanvas-bookmark:before { + position: fixed; + content: ''; + background-color: rgba(0, 0, 0, 0.5); + height: 100%; + width: 100%; + z-index: 99; + right: 0; + left: 0; } + +/**===================== + 81. Bookmark CSS Ends +==========================**/ +/**===================== + 82. cart CSS start +==========================**/ +.cart .total-amount { + text-align: right !important; + margin-top: 30px; } + +.cart .amount-space { + margin-left: 40px; } + +.cart .cart-btn-transform { + text-transform: capitalize; } + +.cart .qty-box { + width: 25%; + margin: 0 auto; } + .cart .qty-box .input-group .btn { + background-color: #ddd !important; + border-color: #ddd !important; + padding: 5px 12px; } + +.cart-buttons { + margin-top: 30px; } + .cart-buttons .cart-btn { + float: right; + padding-right: 85px; } + +/**===================== + 82. cart CSS Ends +==========================**/ +/**===================== + 83. Wishlist CSS start +==========================**/ +.wishlist table tr td svg { + color: #d22d3d; } + +/**===================== + 83. Wishlist CSS Ends +==========================**/ +/**===================== + 84. Checkout CSS start +==========================**/ +.checkout label { + color: #2c323f; } + +.checkout .checkout-details { + border: 1px solid #e6edef; + padding: 40px; } + .checkout .checkout-details .order-place { + margin-top: 20px; } + +.order-box .title-box { + padding-bottom: 20px; + font-size: 22px; + border-bottom: 1px solid #e6edef; } + .order-box .title-box span { + width: 35%; + float: right; + font-weight: 600; + text-align: right; } + .order-box .title-box h4 { + font-weight: 600; } + .order-box .title-box .checkbox-title { + display: -webkit-box; + display: -ms-flexbox; + display: flex; + -webkit-box-pack: justify; + -ms-flex-pack: justify; + justify-content: space-between; } + +.order-box .sub-total li { + position: relative; + display: inline-block; + font-size: 16px; + font-weight: 600; + width: 100%; } + .order-box .sub-total li:nth-child(n+2) { + margin-top: 15px; } + .order-box .sub-total li .count { + position: relative; + font-size: 18px; + line-height: 20px; + width: 35%; + float: right; + text-align: right; } + +.order-box .sub-total .shipping-class { + margin-bottom: 12px; + padding-bottom: 15px; + border-bottom: 1px solid #e6edef; } + .order-box .sub-total .shipping-class .shopping-checkout-option { + margin-top: -4px; + position: relative; + font-size: 18px; + line-height: 20px; + color: #24695c; + font-weight: 400; + width: 35%; + float: right; } + .order-box .sub-total .shipping-class .shopping-checkout-option label { + font-weight: 500; + font-size: 14px; + text-align: right; } + +.order-box .total { + position: relative; + margin-bottom: 30px; } + .order-box .total li { + position: relative; + display: block; + line-height: 20px; + font-size: 18px; } + +.order-box .qty { + position: relative; + border-bottom: 1px solid #e6edef; + margin-bottom: 20px; + padding-bottom: 20px; + padding-top: 20px; } + .order-box .qty li { + position: relative; + display: block; + font-size: 14px; + font-weight: 500; } + .order-box .qty li:nth-child(n+2) { + margin-top: 15px; } + .order-box .qty li span { + float: right; + font-size: 18px; + line-height: 20px; + font-weight: 500; + width: 35%; + text-align: right; } + +.radio-option { + position: relative; } + +.img-paypal { + width: 50%; + margin-left: 15px; } + +/**===================== + 86. Checkout CSS Ends +==========================**/ +/**===================== + Responsive CSS Start +==========================**/ +@media screen and (max-width: 1199px) { + .checkout .checkout-details { + padding: 25px; } + .order-box .title-box span { + width: 30%; } + .order-box .sub-total li .count { + width: 30%; } + .order-box .sub-total .shipping-class .shopping-checkout-option { + width: 32%; } + .order-box .qty li span { + width: 30%; } + .order-box .total li .count { + width: 30%; } } + +@media screen and (max-width: 991px) { + .order-box .title-box h4 { + font-size: 18px; } + .order-box .title-box span { + font-size: 18px; } + .order-box .qty li { + font-size: 14px; } + .order-box .qty li span { + font-size: 16px; } + .order-box .sub-total li { + font-size: 14px; } + .order-box .sub-total li .count { + font-size: 16px; } + .order-box .sub-total .shipping-class .shopping-checkout-option { + width: 30%; } + .order-box .animate-chk label { + font-size: 14px; } } + +@media screen and (max-width: 575px) { + .order-box .title-box { + padding-bottom: 15px; } + .order-box .sub-total .shipping-class .shopping-checkout-option { + width: 50%; } + .order-box .sub-total li .count { + width: 50%; } + .order-box .animate-chk label { + font-size: 12px; + margin-bottom: 10px; } + .checkout .checkout-details { + padding: 20px; } } + +@media screen and (max-width: 420px) { + .order-box .qty li { + font-size: 13px; } + .order-box .qty li span { + font-size: 14px; } + .order-box .sub-total li .count { + font-size: 14px; } } + +/**===================== + 84. Checkout CSS ends +==========================**/ +/**===================== + 85. bookmark app CSS Start +==========================**/ +.email-wrap .email-app-sidebar .main-menu > li a[aria-selected="true"] span { + color: #24695c !important; } + +.modal-bookmark .modal-body, .modal-bookmark .modal-header { + padding: 25px; } + .modal-bookmark .modal-body h5, .modal-bookmark .modal-header h5 { + font-weight: 600; } + +.bookmark-wrap .btn-mail { + color: #24695c !important; + width: 100%; + font-weight: 600; } + +.bookmark-wrap .row .col-xl-3 + .col-xl-3 { + padding-right: 15px; } + +.bookmark-wrap .left-bookmark ul li button { + border: none; + cursor: pointer; } + .bookmark-wrap .left-bookmark ul li button:focus { + outline: none; } + +.bookmark-wrap .left-bookmark ul li svg { + width: 18px; + height: 18px; + vertical-align: middle; } + +.bookmark-wrap .left-bookmark ul li > .main-title { + color: #24695c; + font-weight: 600; + margin-bottom: 5px; + display: block; + font-size: 16px; } + .bookmark-wrap .left-bookmark ul li > .main-title span a:hover { + background-color: transparent; } + .bookmark-wrap .left-bookmark ul li > .main-title svg { + color: #898989; + stroke-width: 1px; } + +.bookmark-wrap .left-bookmark ul li a > .title { + text-transform: capitalize; + color: #2b2b2b; } + +.form-bookmark a { + text-transform: capitalize !important; + color: #24695c !important; + line-height: 1 !important; + font-weight: 500; } + .form-bookmark a:hover { + background-color: transparent !important; } + +.form-bookmark input#index_var { + display: none; } + +.form-bookmark .form-group label { + font-weight: 600; + margin-bottom: 5px; } + +.form-bookmark .form-group input, .form-bookmark .form-group select { + font-size: 14px; } + +.form-bookmark .form-group .select2-container .select2-selection--single { + border-color: #ced4da !important; } + +.form-bookmark .form-group .select2 { + width: 100% !important; } + +.form-bookmark .form-group .error { + margin: 0 !important; + font-size: 11px; + color: red !important; } + +.form-bookmark .form-group .fill-color { + width: 35px; + height: 30px; + padding: 3px; } + +.form-bookmark button { + margin-top: 30px; } + +@-webkit-keyframes displayTransition { + from { + opacity: 0; } + to { + opacity: 1; } } + +@keyframes displayTransition { + from { + opacity: 0; } + to { + opacity: 1; } } + +.bookmark-tabcontent .details-bookmark { + height: auto; + min-height: 359px; } + .bookmark-tabcontent .details-bookmark .bookmark-card { + position: relative; } + .bookmark-tabcontent .details-bookmark .bookmark-card.card .favourite-icon { + padding: 3px; + border-radius: 4px; + background-color: rgba(0, 0, 0, 0.2); + width: 30px; + position: absolute; + right: 15px; + top: 15px; + opacity: 0; } + .bookmark-tabcontent .details-bookmark .bookmark-card.card .favourite-icon i { + color: #fff; + font-size: 16px; + vertical-align: text-bottom; } + .bookmark-tabcontent .details-bookmark .bookmark-card.card .favourite-icon.favourite i { + color: #fed112; } + .bookmark-tabcontent .details-bookmark .bookmark-card.card .desciption-data { + width: 100%; } + .bookmark-tabcontent .details-bookmark .bookmark-card.card .desciption-data .content-general { + display: none; } + .bookmark-tabcontent .details-bookmark .bookmark-card.card .favourite-icon { + -webkit-transition: 0.5s; + transition: 0.5s; } + .bookmark-tabcontent .details-bookmark .bookmark-card.card .title-bookmark { + text-align: left; + padding: 15px; + border-top: 1px solid #e6edef; + position: relative; } + .bookmark-tabcontent .details-bookmark .bookmark-card.card .title-bookmark p { + -webkit-animation: displayTransition 1s; + animation: displayTransition 1s; + font-size: 13px; + opacity: 1; } + .bookmark-tabcontent .details-bookmark .bookmark-card.card .title-bookmark .hover-block { + display: none; + margin-top: 15px; } + .bookmark-tabcontent .details-bookmark .bookmark-card.card .title-bookmark .hover-block ul li { + display: inline-block; } + .bookmark-tabcontent .details-bookmark .bookmark-card.card .title-bookmark .hover-block ul li + li { + margin-left: 5px; } + .bookmark-tabcontent .details-bookmark .bookmark-card.card .title-bookmark .hover-block ul li svg { + width: 16px; + height: 16px; + color: #898989; } + .bookmark-tabcontent .details-bookmark .bookmark-card.card:hover { + -webkit-box-shadow: 1px 4px 16px 3px rgba(0, 0, 0, 0.04); + box-shadow: 1px 4px 16px 3px rgba(0, 0, 0, 0.04); + -webkit-transition: 0.5s; + transition: 0.5s; } + .bookmark-tabcontent .details-bookmark .bookmark-card.card:hover .title-bookmark p { + opacity: 0; } + .bookmark-tabcontent .details-bookmark .bookmark-card.card:hover .title-bookmark .hover-block { + display: block; + -webkit-animation: displayTransition 2s; + animation: displayTransition 2s; + position: absolute; + width: 100%; + padding: 15px; + top: 15px; + left: 0; } + .bookmark-tabcontent .details-bookmark .bookmark-card.card:hover .favourite-icon { + opacity: 1; } + .bookmark-tabcontent .details-bookmark.list-bookmark .row .col-xl-3 { + -webkit-box-flex: 0; + -ms-flex: 0 0 100%; + flex: 0 0 100%; + max-width: 100%; } + .bookmark-tabcontent .details-bookmark.list-bookmark .bookmark-card .desciption-data .content-general { + display: block; } + .bookmark-tabcontent .details-bookmark.list-bookmark .bookmark-card .details-website { + display: -webkit-box; + display: -ms-flexbox; + display: flex; + -webkit-box-align: center; + -ms-flex-align: center; + align-items: center; } + .bookmark-tabcontent .details-bookmark.list-bookmark .bookmark-card .details-website .title-bookmark p { + display: block; + opacity: 1; } + .bookmark-tabcontent .details-bookmark.list-bookmark .bookmark-card .details-website .title-bookmark .hover-block { + position: absolute; + right: 15px; + display: block; + text-align: right; } + .bookmark-tabcontent .details-bookmark.list-bookmark .bookmark-card .details-website:hover .title-bookmark .hover-block { + display: block; + -webkit-animation: displayTransition 0s; + animation: displayTransition 0s; } + .bookmark-tabcontent .details-bookmark.list-bookmark .bookmark-card.card .title-bookmark { + border-top: none; } + .bookmark-tabcontent .details-bookmark.list-bookmark .bookmark-card.card .title-bookmark p, .bookmark-tabcontent .details-bookmark.list-bookmark .bookmark-card.card .title-bookmark h6 { + margin-top: 0; + display: inline-block; } + .bookmark-tabcontent .details-bookmark.list-bookmark .bookmark-card.card .title-bookmark h6 { + position: relative; + padding-right: 15px; } + .bookmark-tabcontent .details-bookmark.list-bookmark .bookmark-card.card .title-bookmark h6::after { + position: absolute; + content: '-'; + right: 0; + color: #898989; } + .bookmark-tabcontent .details-bookmark.list-bookmark .bookmark-card.card .title-bookmark .content-general { + margin-top: 5px; } + .bookmark-tabcontent .details-bookmark.list-bookmark .bookmark-card.card .title-bookmark .content-general p { + width: 68%; + margin-right: 20px; + opacity: 1; } + .bookmark-tabcontent .details-bookmark.list-bookmark .bookmark-card img { + width: 20%; } + +.bookmark-tabcontent .tab-content .card .card-header { + -webkit-box-pack: justify; + -ms-flex-pack: justify; + justify-content: space-between; + display: -webkit-box; + display: -ms-flexbox; + display: flex; + border-bottom: 1px solid #e6edef; } + .bookmark-tabcontent .tab-content .card .card-header h5 { + font-weight: 600; + font-size: 22px; } + .bookmark-tabcontent .tab-content .card .card-header svg { + width: 18px; + height: 18px; + vertical-align: middle; } + .bookmark-tabcontent .tab-content .card .card-header ul li { + display: inline-block; } + .bookmark-tabcontent .tab-content .card .card-header ul li + li { + margin-left: 5px; } + +@media only screen and (max-width: 1660px) { + .bookmark-tabcontent .details-bookmark.list-bookmark .bookmark-card.card .title-bookmark .content-general p { + display: none; } + .bookmark-tabcontent .details-bookmark.list-bookmark .bookmark-card.card .title-bookmark .hover-block { + margin-top: 6px; } } + +@media screen and (min-width: 1200px) and (max-width: 1366px) { + .bookmark-wrap .left-bookmark ul li .btn-block svg { + display: none; } } + +@media only screen and (max-width: 1366px) { + .bookmark-tabcontent .details-bookmark.list-bookmark .bookmark-card img { + width: 40%; } + .bookmark-tabcontent .details-bookmark.list-bookmark .bookmark-card.card .title-bookmark .hover-block { + top: 80px; } + .bookmark ul li a svg { + width: 15px; + height: 15px; + margin: 10px; } } + +@media only screen and (max-width: 1199px) { + .bookmark-wrap .left-bookmark { + height: auto; } + .bookmark-tabcontent .details-bookmark { + min-height: auto; } } + +@media only screen and (max-width: 991px) { + .modal-bookmark .modal-body, .modal-bookmark .modal-header { + padding: 20px; } + .form-bookmark button { + margin-top: 20px; } + .bookmark-tabcontent .tab-content .card .card-header, .bookmark-tabcontent .tab-content .card .card-body { + padding: 20px; } + .bookmark-tabcontent .tab-content .card .card-header h5, .bookmark-tabcontent .tab-content .card .card-body h5 { + font-size: 18px; } } + +@media only screen and (max-width: 767px) { + .bookmark-tabcontent .details-bookmark.list-bookmark .bookmark-card .details-website .title-bookmark p { + overflow: hidden; + text-overflow: ellipsis; + white-space: nowrap; + max-width: 172px; } + .bookmark-tabcontent .details-bookmark.list-bookmark .bookmark-card .details-website:hover .title-bookmark .hover-block p { + display: none; } + .bookmark-tabcontent .details-bookmark.list-bookmark .bookmark-card .details-website:hover .title-bookmark .hover-block ul { + position: relative; + right: unset; + top: unset; } + .bookmark-tabcontent .details-bookmark.list-bookmark .bookmark-card img { + width: 45%; } } + +@media only screen and (max-width: 575px) { + .bookmark-tabcontent .details-bookmark.list-bookmark .bookmark-card img { + width: 46%; } + .bookmark-tabcontent .details-bookmark.list-bookmark .bookmark-card .details-website { + display: block; } + .bookmark-tabcontent .details-bookmark.list-bookmark .bookmark-card .details-website img { + width: 100%; } + .bookmark-tabcontent .details-bookmark.list-bookmark .bookmark-card .details-website .title-bookmark h6, .bookmark-tabcontent .details-bookmark.list-bookmark .bookmark-card .details-website .title-bookmark p { + display: block; } + .bookmark-tabcontent .details-bookmark.list-bookmark .bookmark-card .details-website .title-bookmark .content-general { + display: none; } + .bookmark-tabcontent .details-bookmark.list-bookmark .bookmark-card .details-website .title-bookmark .hover-block { + position: relative; + right: unset; + text-align: left; + top: unset; + padding: 0; } + .modal-bookmark .modal-body, .modal-bookmark .modal-header { + padding: 15px; } + .form-bookmark button { + margin-top: 15px; } } + +@media only screen and (max-width: 360px) { + .bookmark-tabcontent .details-bookmark.list-bookmark .bookmark-card img { + width: 28%; } } + +/**===================== + 85. bookmark app CSS Ends +==========================**/ +/**===================== + 86. contacts CSS Start +==========================**/ +.alert-contactadd { + background-color: #fff; + border: 1px solid var(--theme-deafult); + width: 12%; + padding: 10px; } + +.updateimg { + position: absolute; + left: 15px; + width: 100px; + top: 32px; + line-height: 93px; + opacity: 0; } + +#right-history { + top: 81px; + right: -320px; + height: 100%; + position: fixed; + width: 320px; + z-index: 9; + background-color: #fff; + -webkit-transition: .5s; + transition: .5s; + -webkit-box-shadow: 0 0 9px rgba(191, 191, 191, 0.36); + box-shadow: 0 0 9px rgba(191, 191, 191, 0.36); } + #right-history h6 span a { + color: #242934; } + #right-history.show { + right: 0; + -webkit-transition: .3s; + transition: .3s; } + +.history-details > div { + padding: 30px 0; } + +.history-details .media { + padding: 30px 15px; + border-top: 1px solid #f4f4f4; } + .history-details .media i { + padding: 5px; + background: #fed112; + color: #fff; + border-radius: 100%; } + .history-details .media h6 { + margin-bottom: 5px; } + +.delete-contact { + display: none; } + +.more-data { + -webkit-animation: displayTransition 1s; + animation: displayTransition 1s; } + +.contact-editform { + padding: 30px; + padding-left: unset; + -webkit-animation: displayTransition 1s; + animation: displayTransition 1s; } + .contact-editform a { + display: block; } + .contact-editform button { + margin-top: 30px; } + .contact-editform .select2-container .select2-selection--single { + height: 39px !important; + border-color: #e6edef !important; + background-color: #f5f7fb; } + +#deletemodal .modal-header { + border-bottom: none; } + #deletemodal .modal-header .delete-data span svg { + vertical-align: middle; + margin-right: 15px; } + +.contact-options li .btn-category { + line-height: 39px; + border-radius: 3px; + padding-left: 40px !important; + padding: 0; + color: #24695c; + font-weight: 500; } + +.list-persons p { + font-family: "Roboto", sans-serif, sans-serif; } + +.list-persons .profile-mail { + padding: 30px 0; } + .list-persons .profile-mail .media { + -webkit-box-align: center; + -ms-flex-align: center; + align-items: center; } + .list-persons .profile-mail .media img { + width: auto; + height: 100px; } + .list-persons .profile-mail .media .media-body h5 { + margin-bottom: 5px; + font-weight: 700; } + .list-persons .profile-mail .media .media-body ul { + margin-top: 5px; } + .list-persons .profile-mail .media .media-body ul li { + display: inline-block; } + .list-persons .profile-mail .media .media-body ul li a { + font-size: 13px; + font-weight: 500; } + .list-persons .profile-mail .media .media-body ul li + li { + padding-left: 10px; + margin-left: 5px; + border-left: 2px solid #f4f4f4; } + .list-persons .profile-mail .email-general { + padding-top: 20px; + margin-top: 20px; + border-top: 1px solid #ddd; } + .list-persons .profile-mail .email-general ul { + padding-right: 20px; } + .list-persons .profile-mail .email-general ul li { + color: #898989; + padding-bottom: 10px; + margin-bottom: 10px; + font-weight: 500; } + .list-persons .profile-mail .email-general ul li:last-child { + padding-bottom: 0; + margin-bottom: 0; } + .list-persons .profile-mail .email-general ul li > span { + float: right; } + .list-persons .profile-mail .email-general p span { + margin-left: 30px; } + .list-persons .profile-mail .email-general .gender { + margin-top: 30px; } + +.contacts-tabs .nav-pills { + border-right: 1px solid #e6edef; + height: 100%; } + .contacts-tabs .nav-pills .nav-link.active, + .contacts-tabs .nav-pills .nav-link > .nav-link, + .contacts-tabs .nav-pills .show.active, + .contacts-tabs .nav-pills .show > .nav-link { + background-color: rgba(36, 105, 92, 0.1); + color: #242934; } + .contacts-tabs .nav-pills .nav-link.active h6, + .contacts-tabs .nav-pills .nav-link > .nav-link h6, + .contacts-tabs .nav-pills .show.active h6, + .contacts-tabs .nav-pills .show > .nav-link h6 { + color: #24695c; } + .contacts-tabs .nav-pills .nav-link { + color: #242934; + padding: 0; } + .contacts-tabs .nav-pills .nav-link .media .img-50 { + height: 50px; } + .contacts-tabs .nav-pills .nav-link + .nav-link { + border-top: 1px solid #e6edef; } + .contacts-tabs .nav-pills .media { + padding: 20px; } + +.contacts-tabs .tab-content .tab-content-child { + -webkit-animation: displayTransition 1s; + animation: displayTransition 1s; } + +@media only screen and (max-width: 991px) { + #right-history { + top: 60px; } + .updateimg { + top: 21px; } + .list-persons .profile-mail { + padding: 20px; } + .list-persons .profile-mail .email-general .gender { + margin-top: 20px; } + .contact-editform button { + margin-top: 20px; } } + +@media only screen and (max-width: 767px) { + .contact-editform { + padding: 20px; } + .contact-editform.pl-0 { + padding-left: 20px !important; } + .contacts-tabs .nav-pills { + border-right: none; + border-bottom: 1px solid #e6edef; } } + +@media only screen and (max-width: 575px) { + #right-history { + width: 270px; } + .updateimg { + top: 16px; + left: 29px; } + .contacts-tabs .media img.m-r-20 { + margin-right: 15px; } + .contacts-tabs .nav-pills .media { + padding: 15px; } + .list-persons .profile-mail { + padding: 15px; } + .list-persons .profile-mail .media img { + height: 80px; + width: 80px !important; } + .list-persons .profile-mail .email-general .gender { + margin-top: 15px; } + .list-persons .profile-mail .email-general ul { + padding-right: unset; } + .list-persons .profile-mail .email-general ul li { + font-size: 12px; } + .list-persons .nav-pills .nav-link .media .media-body { + text-align: left; } + .contact-editform { + padding: 15px; } + .contact-editform button { + margin-top: 15px; } + .contact-editform.pl-0 { + padding-left: 15px !important; } + .contact-editform form .row > div .row > div > div, + .contact-options form .row > div .row > div > div { + margin-bottom: 0; } + .contact-editform form .row > div .row > div + div, + .contact-options form .row > div .row > div + div { + margin-top: 15px; } + .list-persons .profile-mail .media .media-body h5 { + font-size: 16px; } + .bookmark-tabcontent .tab-content .card .card-header h5 { + font-size: 16px; } } + +@media only screen and (max-width: 360px) { + .updateimg { + line-height: 73px; + width: 80px; } + .list-persons .profile-mail .email-general p span { + margin-left: 10px; } + .list-persons .profile-mail .media { + display: block; } + .list-persons .profile-mail .media img { + height: 80px; + width: 80px !important; + margin-bottom: 15px; } } + +/**===================== + 86. contacts CSS Ends +==========================**/ +/**===================== + 87. task app CSS Start +==========================**/ +.modal-open .datepickers-container { + z-index: 1075; } + +.date-details { + -webkit-box-align: center; + -ms-flex-align: center; + align-items: center; } + .date-details > div + div { + margin-left: 10px; } + +.taskadd table tr td { + border-top: none; } + .taskadd table tr td:first-child { + padding-left: 30px; } + .taskadd table tr td:last-child { + padding-right: 30px; } + .taskadd table tr td svg { + width: 18px; + height: 18px; + color: #59667a; } + +.taskadd table tr:first-child td { + padding-top: 30px; } + +.taskadd table tr:last-child td { + padding-bottom: 30px; } + +@media only screen and (max-width: 1660px) { + .taskadd table tr td:first-child { + min-width: 160px; } + .taskadd table tr td:nth-child(3) { + min-width: 70px; } } + +@media only screen and (max-width: 991px) { + .date-details { + display: block !important; + margin-bottom: -10px; } + .date-details .d-inline-block { + margin-bottom: 10px; } + .taskadd table tr td:first-child { + padding-left: 20px; } + .taskadd table tr:first-child td { + padding-top: 20px; } + .taskadd table tr:last-child td { + padding-bottom: 20px; } } + +@media only screen and (max-width: 767px) { + .taskadd table tr td:nth-child(2) { + min-width: 745px; } } + +@media only screen and (max-width: 575px) { + .taskadd table tr td:first-child { + padding-left: 15px; } + .taskadd table tr:first-child td { + padding-top: 15px; } + .taskadd table tr:last-child td { + padding-bottom: 15px; } } + +/**===================== + 87. task app CSS Ends +==========================**/ +/**======================== + 88. Invoice CSS Start +=============================**/ +.invoice p { + color: #999; } + +.invoice .invo-header { + padding-bottom: 15px; + margin-bottom: 15px; + border-bottom: 1px solid #e6edef; } + +.invoice .table-striped tbody tr:nth-of-type(odd) { + background-color: rgba(36, 105, 92, 0.05); + --bs-table-accent-bg:unset; } + +.invoice .table-striped tbody tr h6 { + text-transform: capitalize; + color: #24695c; } + +.invoice .invo-profile { + margin-bottom: 15px; } + +@media only screen and (max-width: 1199px) { + .invoice h4 { + margin-bottom: 0px; } + .invoice h3 { + margin-bottom: 0px; } + .invoice .invo-header .media-left img { + width: 55% !important; } + .invoice .invo-profile .media { + margin-bottom: 15px; + padding-bottom: 15px; + border-bottom: 1px solid #e6edef; } } + +@media only screen and (max-width: 991px) { + .invoice .card .card-body { + padding: 20px; } + .invoice h4 { + font-size: 20px; } + .invoice h3 { + font-size: 20px; } + .invoice table td { + min-width: 150px; } + .invoice table td:first-child { + min-width: 280px; } } + +@media only screen and (max-width: 767px) { + .invoice .invo-pal { + margin-top: 15px; + text-align: left !important; } } + +@media only screen and (max-width: 575px) { + .invoice h4 { + font-size: 18px; } + .invoice h3 { + font-size: 14px; } + .invoice p { + font-size: 13px; } + .invoice .invo-header .media-body { + text-align: right; } + .invoice .text-xs-center { + margin-top: 20px; + text-align: center !important; } + .invoice .text-md-end { + text-align: left; } } + +@media only screen and (max-width: 420px) { + .invoice .invo-header .media-left img { + width: 50% !important; } + .invoice .invo-profile .media { + display: block; } + .invoice .invo-profile .media .media-body { + margin-left: 0 !important; + margin-top: 10px; } } + +/**======================== + 88. Invoice CSS endp +==========================**/ +/**======================== + 89. Formwidgets CSS Start +=============================**/ +.clockpicker-popover .popover-title { + border-color: #e6edef; } + +.clockpicker-popover .popover-content { + background-color: rgba(36, 105, 92, 0.05); } + +.date-range-picker { + margin-bottom: -25px; } + .date-range-picker .daterange-card { + border: 1px solid #e6edef; + padding: 30px; + height: 100%; } + .date-range-picker .daterange-card .form-group { + margin-bottom: unset; } + .date-range-picker > div { + margin-bottom: 25px; } + +@media screen and (max-width: 1199px) { + .card .card-header h5 { + font-size: 20px; } } + +@media screen and (max-width: 1199px) { + .date-range-picker .daterange-card { + padding: 20px; } } + +@media screen and (max-width: 575px) { + .date-range-picker .daterange-card { + padding: 15px; } } + +/**======================== + 89. Formwidgets CSS end +=============================**/ +/**===================== + 90. base_inputs CSS start +==========================**/ +.jkanban-container .note a { + display: contents; } + +.jkanban-container p { + color: #999; } + +.kanban-board-header { + height: auto; + width: auto; + line-height: unset; + background-color: rgba(36, 105, 92, 0.05); } + .kanban-board-header.bg-primary ~ .kanban-drag { + background-color: rgba(36, 105, 92, 0.3); } + .kanban-board-header.bg-secondary ~ .kanban-drag { + background-color: rgba(186, 137, 93, 0.3); } + .kanban-board-header.bg-warning ~ .kanban-drag { + background-color: rgba(226, 198, 54, 0.3); } + .kanban-board-header.bg-success ~ .kanban-drag { + background-color: rgba(27, 76, 67, 0.3); } + +.kanban-container { + display: contents; } + .kanban-container footer { + padding: 0; + margin: 0; } + +.kanban-board { + margin-bottom: 30px; + -webkit-transition: all 0.3s ease; + transition: all 0.3s ease; + letter-spacing: 0.5px; + border-radius: 8px; + -webkit-box-shadow: 1px 5px 24px 0 rgba(68, 102, 242, 0.05); + box-shadow: 1px 5px 24px 0 rgba(68, 102, 242, 0.05); + overflow: hidden; + width: calc(100% / 3 - 30px) !important; } + .kanban-board .kanban-drag { + background: rgba(36, 105, 92, 0.05); } + +.kanban-board header { + padding: 20px 20px 0; } + +.kanban-item { + background: #fff; + padding: 0; + margin-bottom: 20px; } + .kanban-item p { + font-size: 13px; } + .kanban-item:last-child { + margin-bottom: 0; } + .kanban-item .list { + display: inline-block; + opacity: 0.4; } + .kanban-item .list li { + display: inline-block; + font-size: 12px; } + .kanban-item .list li i { + margin-right: 10px; } + .kanban-item .list li:nth-child(n+2) { + margin-left: 5px; } + .kanban-item .kanban-box { + border: 1px solid #e6edef; + border-radius: 5px; + padding: 20px; + position: relative; + display: block; + color: inherit; } + .kanban-item .kanban-box:hover { + color: inherit; } + .kanban-item .kanban-box + .kanban-box { + margin-top: 20px; } + .kanban-item .kanban-box .badge { + font-weight: 400; } + .kanban-item .kanban-box h6 { + font-size: 15px; + margin-top: 5px; + font-weight: 600; } + .kanban-item .kanban-box .dropdown { + display: inline-block; + right: 10px; + position: absolute; + top: 20px; } + .kanban-item .kanban-box .dropdown .dropdown-item { + font-size: 13px; + font-weight: 500; + padding: 5px 10px; + text-align: left; } + .kanban-item .kanban-box .dropdown svg { + height: 14px; } + .kanban-item .kanban-box .d-flex { + -webkit-box-pack: justify; + -ms-flex-pack: justify; + justify-content: space-between; } + .kanban-item .kanban-box .dropdown-toggle:after { + content: none; } + .kanban-item .kanban-box .customers ul li + li { + margin-left: -10px; } + .kanban-item .kanban-box .date { + font-size: 11px; + opacity: 0.5; } + +.colorfull-kanban .kanban-board-header { + padding-bottom: 20px; } + +.kanban-block { + margin-bottom: -30px; } + +@media only screen and (max-width: 1300px) { + .kanban-board { + width: calc(100% / 2 - 30px) !important; } } + +@media only screen and (max-width: 1199px) { + .jkanban-container .btn { + margin-bottom: 10px; + margin-left: 20px; } } + +@media only screen and (max-width: 991px) { + .kanban-block { + margin-bottom: -20px; } } + +@media only screen and (max-width: 700px) { + .kanban-container .kanban-board { + width: 100% !important; + margin-left: 0 !important; + margin-right: 0 !important; } + .jkanban-container .btn { + margin-left: unset; + padding: 10px 15px; } } + +@media only screen and (max-width: 480px) { + .kanban-board .kanban-drag { + padding: 10px; } + .kanban-board header { + padding: 10px 10px 0; } + .kanban-board header .kanban-title-board { + font-size: 14px; } + .jkanban-container .card .card-body { + padding: 15px; } + .jkanban-container .btn { + padding: 7px 12px; } + .kanban-item { + margin-bottom: 10px; } + .kanban-item .kanban-box { + padding: 15px; } + .colorfull-kanban .kanban-board-header { + padding-bottom: 10px; } } + +/**===================== + 90. base_inputs CSS ends +==========================**/ +/**========================== + 91. Project list css start +=============================**/ +.project-list .row { + margin: 15px; } + +.project-list button:focus { + outline: none !important; } + +.project-list .theme-form .form-group { + margin-bottom: 15px; } + +.project-list .border-tab.nav-tabs .nav-item .nav-link { + border: 1px solid transparent; + padding: 5px 30px 5px 0; + border-radius: 5px; + display: -webkit-box; + display: -ms-flexbox; + display: flex; + -webkit-box-align: center; + -ms-flex-align: center; + align-items: center; + font-weight: 600; } + +.project-list .btn { + vertical-align: -12px; + float: right; } + .project-list .btn svg { + vertical-align: middle; + height: 16px; } + +.project-list ul { + margin-bottom: 0 !important; + border-bottom: 0; } + .project-list ul li svg { + height: 18px; + vertical-align: middle; + margin-right: 5px; } + +.tab-content .row > div.col-xl-4:nth-child(1) { + -webkit-animation-fill-mode: both; + animation-fill-mode: both; + -webkit-animation: fadeIncustom 0.5s linear 10ms; + animation: fadeIncustom 0.5s linear 10ms; } + +.tab-content .row > div.col-xl-4:nth-child(2) { + -webkit-animation-fill-mode: both; + animation-fill-mode: both; + -webkit-animation: fadeIncustom 0.5s linear 20ms; + animation: fadeIncustom 0.5s linear 20ms; } + +.tab-content .row > div.col-xl-4:nth-child(3) { + -webkit-animation-fill-mode: both; + animation-fill-mode: both; + -webkit-animation: fadeIncustom 0.5s linear 30ms; + animation: fadeIncustom 0.5s linear 30ms; } + +.tab-content .row > div.col-xl-4:nth-child(4) { + -webkit-animation-fill-mode: both; + animation-fill-mode: both; + -webkit-animation: fadeIncustom 0.5s linear 40ms; + animation: fadeIncustom 0.5s linear 40ms; } + +.tab-content .row > div.col-xl-4:nth-child(5) { + -webkit-animation-fill-mode: both; + animation-fill-mode: both; + -webkit-animation: fadeIncustom 0.5s linear 50ms; + animation: fadeIncustom 0.5s linear 50ms; } + +.tab-content .row > div.col-xl-4:nth-child(6) { + -webkit-animation-fill-mode: both; + animation-fill-mode: both; + -webkit-animation: fadeIncustom 0.5s linear 60ms; + animation: fadeIncustom 0.5s linear 60ms; } + +.tab-content .row > div.col-xl-4:nth-child(7) { + -webkit-animation-fill-mode: both; + animation-fill-mode: both; + -webkit-animation: fadeIncustom 0.5s linear 70ms; + animation: fadeIncustom 0.5s linear 70ms; } + +.tab-content .row > div.col-xl-4:nth-child(8) { + -webkit-animation-fill-mode: both; + animation-fill-mode: both; + -webkit-animation: fadeIncustom 0.5s linear 80ms; + animation: fadeIncustom 0.5s linear 80ms; } + +.tab-content .row > div.col-xl-4:nth-child(9) { + -webkit-animation-fill-mode: both; + animation-fill-mode: both; + -webkit-animation: fadeIncustom 0.5s linear 90ms; + animation: fadeIncustom 0.5s linear 90ms; } + +.tab-content .row > div.col-xl-4:nth-child(10) { + -webkit-animation-fill-mode: both; + animation-fill-mode: both; + -webkit-animation: fadeIncustom 0.5s linear 100ms; + animation: fadeIncustom 0.5s linear 100ms; } + +.tab-content .row > div.col-xl-4:nth-child(11) { + -webkit-animation-fill-mode: both; + animation-fill-mode: both; + -webkit-animation: fadeIncustom 0.5s linear 110ms; + animation: fadeIncustom 0.5s linear 110ms; } + +.tab-content .row > div.col-xl-4:nth-child(12) { + -webkit-animation-fill-mode: both; + animation-fill-mode: both; + -webkit-animation: fadeIncustom 0.5s linear 120ms; + animation: fadeIncustom 0.5s linear 120ms; } + +.tab-content .row > div.col-xl-4:nth-child(13) { + -webkit-animation-fill-mode: both; + animation-fill-mode: both; + -webkit-animation: fadeIncustom 0.5s linear 130ms; + animation: fadeIncustom 0.5s linear 130ms; } + +.tab-content .row > div.col-xl-4:nth-child(14) { + -webkit-animation-fill-mode: both; + animation-fill-mode: both; + -webkit-animation: fadeIncustom 0.5s linear 140ms; + animation: fadeIncustom 0.5s linear 140ms; } + +.tab-content .row > div.col-xl-4:nth-child(15) { + -webkit-animation-fill-mode: both; + animation-fill-mode: both; + -webkit-animation: fadeIncustom 0.5s linear 150ms; + animation: fadeIncustom 0.5s linear 150ms; } + +.project-cards .tab-content { + margin-bottom: -30px; } + +.project-box { + border: 1px solid #e6edef; + border-radius: 5px; + padding: 30px; + margin-bottom: 30px; + position: relative; } + .project-box h6 { + font-weight: 600; } + .project-box p { + color: #999; } + .project-box .badge { + position: absolute; + right: 15px; + top: 15px; } + .project-box .project-status p { + margin-bottom: 5px; + font-weight: 800; } + .project-box .media { + margin-bottom: 15px; } + .project-box .details { + margin-bottom: 10px; } + +.projectdetails .card .card-body { + padding: 20px; } + +.projectdetails .card .card-footer { + padding: 20px; } + +.projectdetails .card select { + width: 90px; + height: 28px; + font-size: 11px; + right: 20px; + top: 20px; } + +.projectmore .details .col-4 { + margin-bottom: 5px; } + .projectmore .details .col-4:nth-child(even) { + opacity: 0.5; } + +.projectmore h5 { + font-size: 20px; + font-weight: 600; } + +.projectmore .task-list { + position: relative; } + .projectmore .task-list ul li { + margin-bottom: 5px; } + .projectmore .task-list ul + ul { + position: absolute; + left: 50%; + top: 0; } + +.new-users.activity .gradient-round { + padding: 13px; + font-size: 20px; + line-height: 1.4; + text-align: center; + top: unset !important; } + .new-users.activity .gradient-round::after { + display: none; } + +@media (max-width: 767px) { + .project-list .btn { + float: left; + margin-top: 5px; } + .project-box { + padding: 20px; } } + +@media (max-width: 420px) { + .project-box { + padding: 15px; } + .project-box .badge { + font-size: 8px; + top: 10px; + right: 10px; } + .project-list .border-tab.nav-tabs { + display: -webkit-box; + display: -ms-flexbox; + display: flex; } + .project-list .border-tab.nav-tabs .nav-item { + width: auto !important; } + .project-list .border-tab.nav-tabs .nav-item .nav-link { + padding: 5px 15px 5px 0; + font-size: 14px; } } + +/**========================== + 91. Project list css end +=============================**/ +/**===================== + File Manager +==========================**/ +.file-sidebar .card .card-body, +.file-sidebar .card .card-header, .file-content .card .card-body, +.file-content .card .card-header { + padding: 20px !important; } + +.file-sidebar .card .file-manager, .file-content .card .file-manager { + padding-top: unset !important; } + +.file-sidebar ul li + li { + margin-top: 8px; } + +.file-sidebar .btn { + display: -webkit-box; + display: -ms-flexbox; + display: flex; + -webkit-box-align: center; + -ms-flex-align: center; + align-items: center; } + .file-sidebar .btn.btn-light:hover { + color: #24695c !important; } + .file-sidebar .btn.btn-light:hover svg { + stroke: #24695c; } + .file-sidebar .btn svg { + width: 15px; + vertical-align: middle; + margin-right: 8px; } + +.file-sidebar .pricing-plan { + border: 1px solid #e6edef; + border-radius: 5px; + margin-top: 10px; + padding: 15px; + position: relative; + overflow: hidden; } + .file-sidebar .pricing-plan h6 { + font-weight: 500; + font-size: 14px; + margin-bottom: 5px; + color: #898989; } + .file-sidebar .pricing-plan h5 { + font-weight: 600; } + .file-sidebar .pricing-plan p { + margin-bottom: 10px; + color: #999; } + .file-sidebar .pricing-plan .btn { + display: inline-block; } + .file-sidebar .pricing-plan .bg-img { + position: absolute; + top: 40px; + opacity: 0.1; + -webkit-transform: rotate(-45deg); + transform: rotate(-45deg); + right: -40px; } + +.file-sidebar h6 { + font-size: 14px; } + +.file-manager h5 { + font-size: 18px; + font-weight: 600; } + +.file-manager > h6 { + opacity: 0.6; + font-weight: 400 !important; + font-size: 15px; + margin-bottom: 20px; + color: #999; } + +.file-manager .files .file-box:nth-child(1) { + -webkit-animation-fill-mode: both; + animation-fill-mode: both; + -webkit-animation: fadeIncustom 0.5s linear 10ms; + animation: fadeIncustom 0.5s linear 10ms; } + +.file-manager .files .file-box:nth-child(2) { + -webkit-animation-fill-mode: both; + animation-fill-mode: both; + -webkit-animation: fadeIncustom 0.5s linear 20ms; + animation: fadeIncustom 0.5s linear 20ms; } + +.file-manager .files .file-box:nth-child(3) { + -webkit-animation-fill-mode: both; + animation-fill-mode: both; + -webkit-animation: fadeIncustom 0.5s linear 30ms; + animation: fadeIncustom 0.5s linear 30ms; } + +.file-manager .files .file-box:nth-child(4) { + -webkit-animation-fill-mode: both; + animation-fill-mode: both; + -webkit-animation: fadeIncustom 0.5s linear 40ms; + animation: fadeIncustom 0.5s linear 40ms; } + +.file-manager .files .file-box:nth-child(5) { + -webkit-animation-fill-mode: both; + animation-fill-mode: both; + -webkit-animation: fadeIncustom 0.5s linear 50ms; + animation: fadeIncustom 0.5s linear 50ms; } + +.file-manager .files .file-box:nth-child(6) { + -webkit-animation-fill-mode: both; + animation-fill-mode: both; + -webkit-animation: fadeIncustom 0.5s linear 60ms; + animation: fadeIncustom 0.5s linear 60ms; } + +.file-manager .files .file-box:nth-child(7) { + -webkit-animation-fill-mode: both; + animation-fill-mode: both; + -webkit-animation: fadeIncustom 0.5s linear 70ms; + animation: fadeIncustom 0.5s linear 70ms; } + +.file-manager .files .file-box:nth-child(8) { + -webkit-animation-fill-mode: both; + animation-fill-mode: both; + -webkit-animation: fadeIncustom 0.5s linear 80ms; + animation: fadeIncustom 0.5s linear 80ms; } + +.file-manager .files .file-box:nth-child(9) { + -webkit-animation-fill-mode: both; + animation-fill-mode: both; + -webkit-animation: fadeIncustom 0.5s linear 90ms; + animation: fadeIncustom 0.5s linear 90ms; } + +.file-manager .files .file-box:nth-child(10) { + -webkit-animation-fill-mode: both; + animation-fill-mode: both; + -webkit-animation: fadeIncustom 0.5s linear 100ms; + animation: fadeIncustom 0.5s linear 100ms; } + +.file-manager .files .file-box:nth-child(11) { + -webkit-animation-fill-mode: both; + animation-fill-mode: both; + -webkit-animation: fadeIncustom 0.5s linear 110ms; + animation: fadeIncustom 0.5s linear 110ms; } + +.file-manager .files .file-box:nth-child(12) { + -webkit-animation-fill-mode: both; + animation-fill-mode: both; + -webkit-animation: fadeIncustom 0.5s linear 120ms; + animation: fadeIncustom 0.5s linear 120ms; } + +.file-manager .files .file-box:nth-child(13) { + -webkit-animation-fill-mode: both; + animation-fill-mode: both; + -webkit-animation: fadeIncustom 0.5s linear 130ms; + animation: fadeIncustom 0.5s linear 130ms; } + +.file-manager .files .file-box:nth-child(14) { + -webkit-animation-fill-mode: both; + animation-fill-mode: both; + -webkit-animation: fadeIncustom 0.5s linear 140ms; + animation: fadeIncustom 0.5s linear 140ms; } + +.file-manager .files .file-box:nth-child(15) { + -webkit-animation-fill-mode: both; + animation-fill-mode: both; + -webkit-animation: fadeIncustom 0.5s linear 150ms; + animation: fadeIncustom 0.5s linear 150ms; } + +.file-manager .files h6 { + margin-top: 10px; + margin-bottom: 0; + text-transform: capitalize; } + +.file-manager p { + opacity: 0.9; + font-size: 12px; + color: #999; } + +.files h6, .folder h6 { + font-size: 14px; } + +.file-content .ellips { + position: absolute; + top: 30px; + right: 30px; + opacity: 0.7; } + +.file-content .form-inline { + border: 1px solid #e6edef; + border-radius: 5px; + padding: 0 20px; } + .file-content .form-inline i { + padding-right: 10px; + color: #898989; + line-height: 3; } + .file-content .form-inline input::-webkit-input-placeholder { + color: #898989; } + .file-content .form-inline input:focus { + outline: none !important; } + +.file-content .search-form input { + padding: 5px 10px 5px 70px; + border-radius: 5px; } + +.file-content .search-form .form-group:before { + left: 82px; + top: 37px; } + +.file-content .search-form .form-group:after { + top: 39px; + left: 53px; } + +.file-content .btn svg { + height: 15px; + margin-right: 2px; + vertical-align: middle; } + +.file-content h4 { + font-weight: 600; } + +.file-content .folder .folder-box { + border: 1px solid #e6edef; + border-radius: 5px; + padding: 15px; + background-color: rgba(36, 105, 92, 0.05); + width: calc(25% - 15px); + display: inline-block; } + .file-content .folder .folder-box:nth-child(1) { + -webkit-animation-fill-mode: both; + animation-fill-mode: both; + -webkit-animation: fadeIncustom 0.5s linear 10ms; + animation: fadeIncustom 0.5s linear 10ms; } + .file-content .folder .folder-box:nth-child(2) { + -webkit-animation-fill-mode: both; + animation-fill-mode: both; + -webkit-animation: fadeIncustom 0.5s linear 20ms; + animation: fadeIncustom 0.5s linear 20ms; } + .file-content .folder .folder-box:nth-child(3) { + -webkit-animation-fill-mode: both; + animation-fill-mode: both; + -webkit-animation: fadeIncustom 0.5s linear 30ms; + animation: fadeIncustom 0.5s linear 30ms; } + .file-content .folder .folder-box:nth-child(4) { + -webkit-animation-fill-mode: both; + animation-fill-mode: both; + -webkit-animation: fadeIncustom 0.5s linear 40ms; + animation: fadeIncustom 0.5s linear 40ms; } + .file-content .folder .folder-box:nth-child(5) { + -webkit-animation-fill-mode: both; + animation-fill-mode: both; + -webkit-animation: fadeIncustom 0.5s linear 50ms; + animation: fadeIncustom 0.5s linear 50ms; } + .file-content .folder .folder-box:nth-child(6) { + -webkit-animation-fill-mode: both; + animation-fill-mode: both; + -webkit-animation: fadeIncustom 0.5s linear 60ms; + animation: fadeIncustom 0.5s linear 60ms; } + .file-content .folder .folder-box:nth-child(7) { + -webkit-animation-fill-mode: both; + animation-fill-mode: both; + -webkit-animation: fadeIncustom 0.5s linear 70ms; + animation: fadeIncustom 0.5s linear 70ms; } + .file-content .folder .folder-box:nth-child(8) { + -webkit-animation-fill-mode: both; + animation-fill-mode: both; + -webkit-animation: fadeIncustom 0.5s linear 80ms; + animation: fadeIncustom 0.5s linear 80ms; } + .file-content .folder .folder-box:nth-child(9) { + -webkit-animation-fill-mode: both; + animation-fill-mode: both; + -webkit-animation: fadeIncustom 0.5s linear 90ms; + animation: fadeIncustom 0.5s linear 90ms; } + .file-content .folder .folder-box:nth-child(10) { + -webkit-animation-fill-mode: both; + animation-fill-mode: both; + -webkit-animation: fadeIncustom 0.5s linear 100ms; + animation: fadeIncustom 0.5s linear 100ms; } + .file-content .folder .folder-box:nth-child(11) { + -webkit-animation-fill-mode: both; + animation-fill-mode: both; + -webkit-animation: fadeIncustom 0.5s linear 110ms; + animation: fadeIncustom 0.5s linear 110ms; } + .file-content .folder .folder-box:nth-child(12) { + -webkit-animation-fill-mode: both; + animation-fill-mode: both; + -webkit-animation: fadeIncustom 0.5s linear 120ms; + animation: fadeIncustom 0.5s linear 120ms; } + .file-content .folder .folder-box:nth-child(13) { + -webkit-animation-fill-mode: both; + animation-fill-mode: both; + -webkit-animation: fadeIncustom 0.5s linear 130ms; + animation: fadeIncustom 0.5s linear 130ms; } + .file-content .folder .folder-box:nth-child(14) { + -webkit-animation-fill-mode: both; + animation-fill-mode: both; + -webkit-animation: fadeIncustom 0.5s linear 140ms; + animation: fadeIncustom 0.5s linear 140ms; } + .file-content .folder .folder-box:nth-child(15) { + -webkit-animation-fill-mode: both; + animation-fill-mode: both; + -webkit-animation: fadeIncustom 0.5s linear 150ms; + animation: fadeIncustom 0.5s linear 150ms; } + +.file-content .files .file-box { + border: 1px solid #e6edef; + border-radius: 5px; + padding: 15px; + background-color: rgba(36, 105, 92, 0.05); + width: calc(25% - 15px); + display: inline-block; + position: relative; } + .file-content .files .file-box .file-top { + height: 100px; + background-color: #fff; + border: 1px solid #e6edef; + border-radius: 5px; + font-size: 36px; + 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; } + +@media screen and (max-width: 1440px) { + .file-content .folder .folder-box .media { + display: block; + text-align: center; } + .file-content .folder .folder-box .media .media-body { + margin-left: 0 !important; + margin-top: 5px; } } + +@media screen and (max-width: 1366px) { + .file-content .files { + margin-bottom: -10px; } + .file-content .files .file-box { + width: calc(50% - 15px); + margin-bottom: 10px; + margin-right: 8px; } + .file-content .card-header .btn { + padding: 8px 15px; } + .file-content .folder .folder-box { + padding: 13px; + width: calc(50% - 15px); + margin-bottom: 10px; } + .file-content .folder .folder-box .media i { + font-size: 30px; } + .file-sidebar .btn { + padding: 8px 15px; } } + +@media screen and (max-width: 768px) { + .file-content .folder { + margin-bottom: -10px; } + .file-content .folder .folder-box { + width: calc(50% - 15px); + margin-bottom: 10px; + margin-right: 8px; } + .file-content .media { + display: block; + text-align: center; } + .file-content .media .media-body { + margin-top: 10px; + text-align: center !important; } } + +@media screen and (max-width: 420px) { + .file-content .folder .folder-box, .file-content .files .file-box { + width: calc(100%); + margin-right: unset; } + .file-content h4 { + font-size: 20px; } + .file-content .card-header .btn { + padding: 7px 10px; + font-size: 12px; } + .file-manager > h6 { + font-size: 14px; } } + +/**===================== + File Manager +==========================**/ +/**===================== + 53. Dashboard CSS Start +==========================**/ +.trasaction-sec.card .card-body { + margin-bottom: -35px; } + +.trasaction-sec .transaction-totalbal { + padding-left: 30px; } + .trasaction-sec .transaction-totalbal h2 { + display: -webkit-box; + display: -ms-flexbox; + display: flex; + -webkit-box-align: center; + -ms-flex-align: center; + align-items: center; + font-size: 22px; + font-weight: 700; } + +.trasaction-sec #chart-3dash { + margin-left: -15px; + margin-right: -15px; } + +.helper-classes { + padding: 30px; + margin-bottom: 0; + white-space: pre-line; } + +.box-shadow-title .sub-title { + margin: 30px 0; } + +.list-group-item { + background-color: #f5f7fb; + border-color: #e6edef; } + .list-group-item.active { + background-color: #24695c; } + .list-group-item.active:hover { + background-color: #24695c; + color: #fff; } + +.list-group-item-action:hover, .list-group-item-action:focus { + background-color: rgba(36, 105, 92, 0.1); + color: #24695c; } + +.list-group-item-action.active { + background-color: #24695c; + color: #fff; } + .list-group-item-action.active:hover { + background-color: #24695c; + color: #fff; } + +.general-widget .custom-card .card-header img { + margin-top: -95px; } + +.dashboard-default-sec .card .card-header i, .dashboard-2-main .card .card-header i { + font-size: 14px; } + +.dashboard-default-sec .card .card-header p, .dashboard-2-main .card .card-header p { + font-weight: 500; + color: #999; + margin-bottom: unset; + font-size: 12px; } + +.dashboard-default-sec .card .card-header h5, .dashboard-2-main .card .card-header h5 { + font-size: 18px; + font-weight: 700; } + +.dashboard-default-sec .card .card-header ul.week-date li, .dashboard-2-main .card .card-header ul.week-date li { + display: inline-block; + font-size: 12px; + color: #717171; + font-weight: 500; } + .dashboard-default-sec .card .card-header ul.week-date li:nth-child(n+2), .dashboard-2-main .card .card-header ul.week-date li:nth-child(n+2) { + margin-left: 10px; + padding-left: 15px; + border-left: 1px solid #e6edef; } + +.dashboard-default-sec .card.income-card, .dashboard-2-main .card.income-card { + overflow: hidden; } + .dashboard-default-sec .card.income-card .card-header, .dashboard-2-main .card.income-card .card-header { + padding-bottom: 0; } + .dashboard-default-sec .card.income-card .card-body .round-box, .dashboard-2-main .card.income-card .card-body .round-box { + width: 55px; + height: 55px; + border-radius: 27px; + 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-left: auto; + margin-right: auto; + margin-bottom: 20px; + -webkit-transition: all 0.5s ease; + transition: all 0.5s ease; } + .dashboard-default-sec .card.income-card .card-body .round-box svg, .dashboard-2-main .card.income-card .card-body .round-box svg { + width: auto; + height: 25px; + -webkit-transition: all 0.5s ease; + transition: all 0.5s ease; } + .dashboard-default-sec .card.income-card .card-body .knob-block, .dashboard-2-main .card.income-card .card-body .knob-block { + position: relative; } + .dashboard-default-sec .card.income-card .card-body .knob-block input, .dashboard-2-main .card.income-card .card-body .knob-block input { + color: #2b2b2b !important; } + .dashboard-default-sec .card.income-card .card-body .knob-block canvas, .dashboard-2-main .card.income-card .card-body .knob-block canvas { + height: 56%; + width: 56%; + margin-bottom: 12px; } + .dashboard-default-sec .card.income-card .card-body .round-progress .progress-circle, .dashboard-2-main .card.income-card .card-body .round-progress .progress-circle { + position: relative; } + .dashboard-default-sec .card.income-card .card-body .parrten, .dashboard-2-main .card.income-card .card-body .parrten { + position: absolute; + top: -25px; + right: -25px; } + .dashboard-default-sec .card.income-card .card-body .parrten svg, .dashboard-2-main .card.income-card .card-body .parrten svg { + fill: rgba(36, 105, 92, 0.03); + width: 100px; + height: 100px; + -webkit-transform: rotate(-135deg); + transform: rotate(-135deg); } + .dashboard-default-sec .card.income-card.card-primary .round-box, .dashboard-2-main .card.income-card.card-primary .round-box { + background-color: rgba(36, 105, 92, 0.1); } + .dashboard-default-sec .card.income-card.card-primary .round-box svg, .dashboard-2-main .card.income-card.card-primary .round-box svg { + fill: #24695c; } + .dashboard-default-sec .card.income-card.card-primary:hover .round-box, .dashboard-2-main .card.income-card.card-primary:hover .round-box { + background-color: #24695c; } + .dashboard-default-sec .card.income-card.card-primary:hover .round-box svg, .dashboard-2-main .card.income-card.card-primary:hover .round-box svg { + fill: #fff; } + .dashboard-default-sec .card.income-card.card-secondary, .dashboard-2-main .card.income-card.card-secondary { + border-color: #ede7e4; } + .dashboard-default-sec .card.income-card.card-secondary .round-box, .dashboard-2-main .card.income-card.card-secondary .round-box { + background-color: rgba(186, 137, 93, 0.1); } + .dashboard-default-sec .card.income-card.card-secondary .round-box svg, .dashboard-2-main .card.income-card.card-secondary .round-box svg { + fill: #ba895d; } + .dashboard-default-sec .card.income-card.card-secondary:hover .round-box, .dashboard-2-main .card.income-card.card-secondary:hover .round-box { + background-color: #ba895d; } + .dashboard-default-sec .card.income-card.card-secondary:hover .round-box svg, .dashboard-2-main .card.income-card.card-secondary:hover .round-box svg { + fill: #fff; } + .dashboard-default-sec .card.income-card .card-body h3, .dashboard-2-main .card.income-card .card-body h3 { + font-weight: 700; } + .dashboard-default-sec .card.income-card .card-body h5, .dashboard-2-main .card.income-card .card-body h5 { + font-size: 22px; + font-weight: 700; } + .dashboard-default-sec .card.income-card .card-body p, .dashboard-2-main .card.income-card .card-body p { + font-size: 12px; + color: #999; + font-weight: 500; + text-transform: capitalize; } + .dashboard-default-sec .card.income-card .card-body p:last-child, .dashboard-2-main .card.income-card .card-body p:last-child { + font-weight: 700; } + +.center-content { + margin: auto; + padding-right: 50px; } + +.dashboard-default-sec #chart-dashbord .apexcharts-legend.position-right, .dashboard-default-sec #chart-dashbord .apexcharts-legend.position-left { + left: 0 !important; + right: 0; + width: -webkit-fit-content; + width: -moz-fit-content; + width: fit-content; + margin-left: auto; + margin-right: 52%; } + +.position-unset { + position: unset; } + +.profile-greeting { + border: none; } + .profile-greeting .card-header { + padding-bottom: 0 !important; + background-color: transparent; } + .profile-greeting .card-header .setting-list { + border-radius: 50%; } + .profile-greeting h3 { + color: #fff; + font-weight: 700; + margin-bottom: 10px; } + .profile-greeting p { + font-size: 14px; + line-height: 25px; + color: rgba(255, 255, 255, 0.7); + font-weight: 400; + text-align: center; + font-family: "Roboto", sans-serif; + padding: 0 15px; + margin-bottom: 15px; } + .profile-greeting .btn { + color: #24695c; + font-weight: 700; } + .profile-greeting .btn:hover { + background-color: #fff !important; + border-color: #fff !important; } + .profile-greeting .card-body { + z-index: 2; } + .profile-greeting .confetti { + position: absolute; + top: 0; + left: 0; + width: 100%; + height: 100%; + overflow: hidden; + z-index: 1; } + .profile-greeting .confetti-piece { + position: absolute; + width: 15px; + height: 15px; + top: 100%; + opacity: 0; + border-radius: 10px 50px 35px 20px; + -webkit-animation: makeItRain 5s infinite ease-out; + animation: makeItRain 5s infinite ease-out; } + .profile-greeting .confetti-piece:nth-child(1) { + left: 7%; + -webkit-transform: rotate(-40deg); + transform: rotate(-40deg); + -webkit-animation: makeItRain 6s infinite ease-out; + animation: makeItRain 6s infinite ease-out; } + .profile-greeting .confetti-piece:nth-child(2) { + left: 14%; + -webkit-transform: rotate(4deg); + transform: rotate(4deg); + -webkit-animation: makeItRain 7s infinite ease-out; + animation: makeItRain 7s infinite ease-out; } + .profile-greeting .confetti-piece:nth-child(3) { + left: 21%; + -webkit-transform: rotate(-51deg); + transform: rotate(-51deg); + -webkit-animation: makeItRain 5s infinite ease-out; + animation: makeItRain 5s infinite ease-out; } + .profile-greeting .confetti-piece:nth-child(4) { + left: 28%; + -webkit-transform: rotate(61deg); + transform: rotate(61deg); + -webkit-animation: makeItRain 6s infinite ease-out; + animation: makeItRain 6s infinite ease-out; } + .profile-greeting .confetti-piece:nth-child(5) { + left: 35%; + -webkit-transform: rotate(-52deg); + transform: rotate(-52deg); + -webkit-animation: makeItRain 5s infinite ease-out; + animation: makeItRain 5s infinite ease-out; } + .profile-greeting .confetti-piece:nth-child(6) { + left: 42%; + -webkit-transform: rotate(38deg); + transform: rotate(38deg); + -webkit-animation: makeItRain 4s infinite ease-out; + animation: makeItRain 4s infinite ease-out; } + .profile-greeting .confetti-piece:nth-child(7) { + left: 49%; + -webkit-transform: rotate(11deg); + transform: rotate(11deg); + -webkit-animation: makeItRain 8s infinite ease-out; + animation: makeItRain 8s infinite ease-out; } + .profile-greeting .confetti-piece:nth-child(8) { + left: 56%; + -webkit-transform: rotate(49deg); + transform: rotate(49deg); + -webkit-animation: makeItRain 7s infinite ease-out; + animation: makeItRain 7s infinite ease-out; } + .profile-greeting .confetti-piece:nth-child(9) { + left: 63%; + -webkit-transform: rotate(-72deg); + transform: rotate(-72deg); + -webkit-animation: makeItRain 6s infinite ease-out; + animation: makeItRain 6s infinite ease-out; } + .profile-greeting .confetti-piece:nth-child(10) { + left: 70%; + -webkit-transform: rotate(10deg); + transform: rotate(10deg); + -webkit-animation: makeItRain 5s infinite ease-out; + animation: makeItRain 5s infinite ease-out; } + .profile-greeting .confetti-piece:nth-child(11) { + left: 77%; + -webkit-transform: rotate(4deg); + transform: rotate(4deg); + -webkit-animation: makeItRain 8s infinite ease-out; + animation: makeItRain 8s infinite ease-out; } + .profile-greeting .confetti-piece:nth-child(12) { + left: 84%; + -webkit-transform: rotate(42deg); + transform: rotate(42deg); + -webkit-animation: makeItRain 4s infinite ease-out; + animation: makeItRain 4s infinite ease-out; } + .profile-greeting .confetti-piece:nth-child(13) { + left: 91%; + -webkit-transform: rotate(-72deg); + transform: rotate(-72deg); + -webkit-animation: makeItRain 6s infinite ease-out; + animation: makeItRain 6s infinite ease-out; } + .profile-greeting .confetti-piece:nth-child(odd) { + background-color: #418578; } + .profile-greeting .confetti-piece:nth-child(even) { + z-index: 1; } + .profile-greeting .confetti-piece:nth-child(4n) { + width: 5px; + height: 12px; } + .profile-greeting .confetti-piece:nth-child(3n) { + width: 3px; + height: 10px; } + .profile-greeting .confetti-piece:nth-child(4n-7) { + background-color: #418578; } + +@-webkit-keyframes makeItRain { + from { + opacity: 0; } + 50% { + opacity: 1; } + to { + -webkit-transform: translateY(-350px); } } + +.latest-update-sec .media .media-body, .recent-order-sec .media .media-body { + margin-left: 20px; } + +.latest-update-sec table tbody h6, .recent-order-sec table tbody h6 { + font-size: 14px; + font-weight: 600; } + +.latest-update-sec table tbody tr td a, .recent-order-sec table tbody tr td a { + font-size: 12px; + letter-spacing: 0px; + line-height: 35px; + font-weight: 500; } + .latest-update-sec table tbody tr td a .btn, .recent-order-sec table tbody tr td a .btn { + font-size: 12px; } + .latest-update-sec table tbody tr td a img, .recent-order-sec table tbody tr td a img { + width: 30px !important; + margin-right: 1rem !important; } + +.latest-update-sec h3, .recent-order-sec h3 { + font-size: 24px; + line-height: 25px; + font-weight: 700; + text-align: center; } + +.latest-update-sec span, .recent-order-sec span { + font-size: 14px; + line-height: 18px; + font-weight: 600; } + +.latest-update-sec .btn, .recent-order-sec .btn { + font-size: 12px; + line-height: 25px; + color: #24695c; + font-weight: 700; + text-align: center; } + +.latest-update-sec h5, .recent-order-sec h5 { + font-size: 18px; + font-weight: 700; } + +.latest-update-sec h4, .recent-order-sec h4 { + font-size: 22px; + line-height: 30px; + font-weight: 700; } + +.latest-update-sec p, .recent-order-sec p { + font-size: 12px; + font-weight: 500; + color: #717171; + margin-bottom: 0; } + +.latest-update-sec .recent-order-sec h5, .recent-order-sec .recent-order-sec h5 { + margin-bottom: 0; } + +.latest-update-sec .recent-order-sec table th, .recent-order-sec .recent-order-sec table th { + font-size: 14px; + line-height: 36px; + font-weight: 700; } + +.latest-update-sec .recent-order-sec table tr td p, .recent-order-sec .recent-order-sec table tr td p { + font-size: 13px; + line-height: 18px; + color: #717171; + font-family: "Roboto"; + font-weight: 400; } + +.latest-update-sec .recent-order-sec table th, .recent-order-sec .recent-order-sec table th { + font-size: 14px; + line-height: 36px; + font-weight: 700; } + +.latest-update-sec .recent-order-sec table tr td p, .recent-order-sec .recent-order-sec table tr td p { + font-size: 13px; + line-height: 18px; + color: #717171; + font-family: "Roboto", sans-serif; + font-weight: 400; } + +.latest-update-sec .rate-sec .card .card-header, .recent-order-sec .rate-sec .card .card-header { + padding: 10px; } + .latest-update-sec .rate-sec .card .card-header .header-top, .recent-order-sec .rate-sec .card .card-header .header-top { + -webkit-box-pack: end; + -ms-flex-pack: end; + justify-content: flex-end; } + +.latest-update-sec .rate-sec .card .card-body, .recent-order-sec .rate-sec .card .card-body { + padding: 15px; } + +.latest-update-sec .recent-order-sec .card .card-body, .recent-order-sec .recent-order-sec .card .card-body { + padding: 15px; } + +.latest-update-sec .media { + -webkit-box-align: center; + -ms-flex-align: center; + align-items: center; } + .latest-update-sec .media img, .latest-update-sec .media svg { + width: auto; + height: 20px; } + +.latest-update-sec .card-body { + padding-top: 0; } + +.latest-update-sec table tbody tr { + -webkit-transition: all 0.5s ease; + transition: all 0.5s ease; } + .latest-update-sec table tbody tr:hover { + background-color: rgba(186, 137, 93, 0.1); } + .latest-update-sec table tbody tr:hover td a { + color: #ba895d; } + .latest-update-sec table tbody tr:hover td .media svg { + fill: #ba895d; } + .latest-update-sec table tbody tr:hover td .media .media-body span { + color: #ba895d; } + .latest-update-sec table tbody tr td a { + color: #2b2b2b; } + +.recent-order-sec .table th { + border-bottom: none; } + +.recent-order-sec .table td { + padding-top: 15px; + padding-bottom: 15px; } + +.recent-order-sec .table tr .media { + -webkit-box-align: center; + -ms-flex-align: center; + align-items: center; } + +.recent-order-sec .table tr:hover { + background-color: rgba(36, 105, 92, 0.1); } + .recent-order-sec .table tr:hover td { + color: #24695c; } + .recent-order-sec .table tr:hover p { + color: #24695c; } + +#chart-dashbord .apexcharts-legend-series { + text-align: right; } + #chart-dashbord .apexcharts-legend-series .apexcharts-legend-marker { + display: none; + text-align: right; + font-family: "Roboto", sans-serif; } + +#yearly-overview-chart { + max-width: 650px; + margin: 35px auto; } + +.profile-greeting { + background-image: url(../images/dashboard/bg.jpg); + background-size: cover !important; + background-repeat: no-repeat; + background-position: center center; + position: relative; } + +.chart_data_left .card-body .chart-main .media .hospital-small-chart, .chart_data_right .card-body .chart-main .media .hospital-small-chart { + -webkit-box-align: center; + -ms-flex-align: center; + align-items: center; + background-color: rgba(36, 105, 92, 0.05); } + .chart_data_left .card-body .chart-main .media .hospital-small-chart .small-bar, .chart_data_right .card-body .chart-main .media .hospital-small-chart .small-bar { + position: relative; } + .chart_data_left .card-body .chart-main .media .hospital-small-chart .small-bar .flot-chart-container, .chart_data_right .card-body .chart-main .media .hospital-small-chart .small-bar .flot-chart-container { + height: 74px; + width: 75px; } + .chart_data_left .card-body .chart-main .media .hospital-small-chart .small-bar .flot-chart-container .chartist-tooltip, .chart_data_right .card-body .chart-main .media .hospital-small-chart .small-bar .flot-chart-container .chartist-tooltip { + position: absolute; + opacity: 0; } + .chart_data_left .card-body .chart-main .media .hospital-small-chart .small-bar .flot-chart-container .chartist-tooltip .chartist-tooltip-value, .chart_data_right .card-body .chart-main .media .hospital-small-chart .small-bar .flot-chart-container .chartist-tooltip .chartist-tooltip-value { + font-size: 10px; + padding: 5px; + color: #fff; + background-color: rgba(0, 0, 0, 0.5); + border-radius: 4px; } + .chart_data_left .card-body .chart-main .media .hospital-small-chart .small-bar .flot-chart-container .chartist-tooltip.tooltip-show, .chart_data_right .card-body .chart-main .media .hospital-small-chart .small-bar .flot-chart-container .chartist-tooltip.tooltip-show { + opacity: 1; } + .chart_data_left .card-body .chart-main .media .hospital-small-chart .small-bar .flot-chart-container svg, .chart_data_right .card-body .chart-main .media .hospital-small-chart .small-bar .flot-chart-container svg { + position: absolute; + bottom: 23px; + width: 100%; + height: 95%; } + .chart_data_left .card-body .chart-main .media .hospital-small-chart .small-bar .small-chart svg .ct-series-a .ct-point, .chart_data_left .card-body .chart-main .media .hospital-small-chart .small-bar .small-chart svg .ct-series-a .ct-line, .chart_data_left .card-body .chart-main .media .hospital-small-chart .small-bar .small-chart svg .ct-series-a .ct-bar, .chart_data_left .card-body .chart-main .media .hospital-small-chart .small-bar .small-chart svg .ct-series-a .ct-slice-donut, .chart_data_right .card-body .chart-main .media .hospital-small-chart .small-bar .small-chart svg .ct-series-a .ct-point, .chart_data_right .card-body .chart-main .media .hospital-small-chart .small-bar .small-chart svg .ct-series-a .ct-line, .chart_data_right .card-body .chart-main .media .hospital-small-chart .small-bar .small-chart svg .ct-series-a .ct-bar, .chart_data_right .card-body .chart-main .media .hospital-small-chart .small-bar .small-chart svg .ct-series-a .ct-slice-donut { + stroke: #24695c; } + .chart_data_left .card-body .chart-main .media .hospital-small-chart .small-bar .small-chart svg .ct-series-b .ct-point, .chart_data_left .card-body .chart-main .media .hospital-small-chart .small-bar .small-chart svg .ct-series-b .ct-line, .chart_data_left .card-body .chart-main .media .hospital-small-chart .small-bar .small-chart svg .ct-series-b .ct-bar, .chart_data_left .card-body .chart-main .media .hospital-small-chart .small-bar .small-chart svg .ct-series-b .ct-slice-donut, .chart_data_right .card-body .chart-main .media .hospital-small-chart .small-bar .small-chart svg .ct-series-b .ct-point, .chart_data_right .card-body .chart-main .media .hospital-small-chart .small-bar .small-chart svg .ct-series-b .ct-line, .chart_data_right .card-body .chart-main .media .hospital-small-chart .small-bar .small-chart svg .ct-series-b .ct-bar, .chart_data_right .card-body .chart-main .media .hospital-small-chart .small-bar .small-chart svg .ct-series-b .ct-slice-donut { + stroke: rgba(36, 105, 92, 0.2); } + .chart_data_left .card-body .chart-main .media .hospital-small-chart .small-bar .small-chart .chartist-tooltip .chartist-tooltip-value, .chart_data_right .card-body .chart-main .media .hospital-small-chart .small-bar .small-chart .chartist-tooltip .chartist-tooltip-value { + background-color: #24695c; + -webkit-box-shadow: 1px 1.732px 8px 0px rgba(36, 105, 92, 0.5); + box-shadow: 1px 1.732px 8px 0px rgba(36, 105, 92, 0.5); } + .chart_data_left .card-body .chart-main .media .hospital-small-chart .small-bar .small-chart1 .chartist-tooltip .chartist-tooltip-value, .chart_data_right .card-body .chart-main .media .hospital-small-chart .small-bar .small-chart1 .chartist-tooltip .chartist-tooltip-value { + background-color: #d22d3d; + -webkit-box-shadow: 1px 1.732px 8px 0px rgba(210, 45, 61, 0.5); + box-shadow: 1px 1.732px 8px 0px rgba(210, 45, 61, 0.5); } + .chart_data_left .card-body .chart-main .media .hospital-small-chart .small-bar .small-chart1 svg .ct-series-a .ct-point, .chart_data_left .card-body .chart-main .media .hospital-small-chart .small-bar .small-chart1 svg .ct-series-a .ct-line, .chart_data_left .card-body .chart-main .media .hospital-small-chart .small-bar .small-chart1 svg .ct-series-a .ct-bar, .chart_data_left .card-body .chart-main .media .hospital-small-chart .small-bar .small-chart1 svg .ct-series-a .ct-slice-donut, .chart_data_right .card-body .chart-main .media .hospital-small-chart .small-bar .small-chart1 svg .ct-series-a .ct-point, .chart_data_right .card-body .chart-main .media .hospital-small-chart .small-bar .small-chart1 svg .ct-series-a .ct-line, .chart_data_right .card-body .chart-main .media .hospital-small-chart .small-bar .small-chart1 svg .ct-series-a .ct-bar, .chart_data_right .card-body .chart-main .media .hospital-small-chart .small-bar .small-chart1 svg .ct-series-a .ct-slice-donut { + stroke: #d22d3d; } + .chart_data_left .card-body .chart-main .media .hospital-small-chart .small-bar .small-chart1 svg .ct-series-b .ct-point, .chart_data_left .card-body .chart-main .media .hospital-small-chart .small-bar .small-chart1 svg .ct-series-b .ct-line, .chart_data_left .card-body .chart-main .media .hospital-small-chart .small-bar .small-chart1 svg .ct-series-b .ct-bar, .chart_data_left .card-body .chart-main .media .hospital-small-chart .small-bar .small-chart1 svg .ct-series-b .ct-slice-donut, .chart_data_right .card-body .chart-main .media .hospital-small-chart .small-bar .small-chart1 svg .ct-series-b .ct-point, .chart_data_right .card-body .chart-main .media .hospital-small-chart .small-bar .small-chart1 svg .ct-series-b .ct-line, .chart_data_right .card-body .chart-main .media .hospital-small-chart .small-bar .small-chart1 svg .ct-series-b .ct-bar, .chart_data_right .card-body .chart-main .media .hospital-small-chart .small-bar .small-chart1 svg .ct-series-b .ct-slice-donut { + stroke: rgba(210, 45, 61, 0.2); } + .chart_data_left .card-body .chart-main .media .hospital-small-chart .small-bar .small-chart2 .chartist-tooltip .chartist-tooltip-value, .chart_data_right .card-body .chart-main .media .hospital-small-chart .small-bar .small-chart2 .chartist-tooltip .chartist-tooltip-value { + background-color: #24695c; + -webkit-box-shadow: 1px 1.732px 8px 0px rgba(36, 105, 92, 0.5); + box-shadow: 1px 1.732px 8px 0px rgba(36, 105, 92, 0.5); } + .chart_data_left .card-body .chart-main .media .hospital-small-chart .small-bar .small-chart2 svg .ct-series-a .ct-point, .chart_data_left .card-body .chart-main .media .hospital-small-chart .small-bar .small-chart2 svg .ct-series-a .ct-line, .chart_data_left .card-body .chart-main .media .hospital-small-chart .small-bar .small-chart2 svg .ct-series-a .ct-bar, .chart_data_left .card-body .chart-main .media .hospital-small-chart .small-bar .small-chart2 svg .ct-series-a .ct-slice-donut, .chart_data_right .card-body .chart-main .media .hospital-small-chart .small-bar .small-chart2 svg .ct-series-a .ct-point, .chart_data_right .card-body .chart-main .media .hospital-small-chart .small-bar .small-chart2 svg .ct-series-a .ct-line, .chart_data_right .card-body .chart-main .media .hospital-small-chart .small-bar .small-chart2 svg .ct-series-a .ct-bar, .chart_data_right .card-body .chart-main .media .hospital-small-chart .small-bar .small-chart2 svg .ct-series-a .ct-slice-donut { + stroke: #24695c; } + .chart_data_left .card-body .chart-main .media .hospital-small-chart .small-bar .small-chart2 svg .ct-series-b .ct-point, .chart_data_left .card-body .chart-main .media .hospital-small-chart .small-bar .small-chart2 svg .ct-series-b .ct-line, .chart_data_left .card-body .chart-main .media .hospital-small-chart .small-bar .small-chart2 svg .ct-series-b .ct-bar, .chart_data_left .card-body .chart-main .media .hospital-small-chart .small-bar .small-chart2 svg .ct-series-b .ct-slice-donut, .chart_data_right .card-body .chart-main .media .hospital-small-chart .small-bar .small-chart2 svg .ct-series-b .ct-point, .chart_data_right .card-body .chart-main .media .hospital-small-chart .small-bar .small-chart2 svg .ct-series-b .ct-line, .chart_data_right .card-body .chart-main .media .hospital-small-chart .small-bar .small-chart2 svg .ct-series-b .ct-bar, .chart_data_right .card-body .chart-main .media .hospital-small-chart .small-bar .small-chart2 svg .ct-series-b .ct-slice-donut { + stroke: rgba(36, 105, 92, 0.2); } + .chart_data_left .card-body .chart-main .media .hospital-small-chart .small-bar .small-chart3 svg .ct-series-a .ct-point, .chart_data_left .card-body .chart-main .media .hospital-small-chart .small-bar .small-chart3 svg .ct-series-a .ct-line, .chart_data_left .card-body .chart-main .media .hospital-small-chart .small-bar .small-chart3 svg .ct-series-a .ct-bar, .chart_data_left .card-body .chart-main .media .hospital-small-chart .small-bar .small-chart3 svg .ct-series-a .ct-slice-donut, .chart_data_right .card-body .chart-main .media .hospital-small-chart .small-bar .small-chart3 svg .ct-series-a .ct-point, .chart_data_right .card-body .chart-main .media .hospital-small-chart .small-bar .small-chart3 svg .ct-series-a .ct-line, .chart_data_right .card-body .chart-main .media .hospital-small-chart .small-bar .small-chart3 svg .ct-series-a .ct-bar, .chart_data_right .card-body .chart-main .media .hospital-small-chart .small-bar .small-chart3 svg .ct-series-a .ct-slice-donut { + stroke: #d22d3d; } + .chart_data_left .card-body .chart-main .media .hospital-small-chart .small-bar .small-chart3 svg .ct-series-b .ct-point, .chart_data_left .card-body .chart-main .media .hospital-small-chart .small-bar .small-chart3 svg .ct-series-b .ct-line, .chart_data_left .card-body .chart-main .media .hospital-small-chart .small-bar .small-chart3 svg .ct-series-b .ct-bar, .chart_data_left .card-body .chart-main .media .hospital-small-chart .small-bar .small-chart3 svg .ct-series-b .ct-slice-donut, .chart_data_right .card-body .chart-main .media .hospital-small-chart .small-bar .small-chart3 svg .ct-series-b .ct-point, .chart_data_right .card-body .chart-main .media .hospital-small-chart .small-bar .small-chart3 svg .ct-series-b .ct-line, .chart_data_right .card-body .chart-main .media .hospital-small-chart .small-bar .small-chart3 svg .ct-series-b .ct-bar, .chart_data_right .card-body .chart-main .media .hospital-small-chart .small-bar .small-chart3 svg .ct-series-b .ct-slice-donut { + stroke: rgba(210, 45, 61, 0.2); } + .chart_data_left .card-body .chart-main .media .hospital-small-chart .small-bar .small-chart3 .chartist-tooltip .chartist-tooltip-value, .chart_data_right .card-body .chart-main .media .hospital-small-chart .small-bar .small-chart3 .chartist-tooltip .chartist-tooltip-value { + background-color: #d22d3d; + -webkit-box-shadow: 1px 1.732px 8px 0px rgba(210, 45, 61, 0.5); + box-shadow: 1px 1.732px 8px 0px rgba(210, 45, 61, 0.5); } + +.chart_data_left .card-body .chart-main .media .media-body .right-chart-content, .chart_data_right .card-body .chart-main .media .media-body .right-chart-content { + margin-left: 30px; } + .chart_data_left .card-body .chart-main .media .media-body .right-chart-content h4, .chart_data_right .card-body .chart-main .media .media-body .right-chart-content h4 { + line-height: 1; + color: #2b2b2b !important; + font-weight: 500; } + .chart_data_left .card-body .chart-main .media .media-body .right-chart-content span, .chart_data_right .card-body .chart-main .media .media-body .right-chart-content span { + color: rgba(43, 43, 43, 0.7); + font-weight: 500; } + +.chart_data_left .card-body .chart-main .media.border-none, .chart_data_right .card-body .chart-main .media.border-none { + border-right: none !important; } + +.activity-timeline .media { + -webkit-box-align: center; + -ms-flex-align: center; + align-items: center; } + .activity-timeline .media .activity-line { + top: 150px; + height: 57%; + position: absolute; + width: 2px; + background-color: #e6edef; + margin: 0 auto; + left: 36px; + z-index: 1; } + .activity-timeline .media .circle-dot-primary { + background-color: rgba(36, 105, 92, 0.25); + border-radius: 100%; + padding: 4px; + font-size: 5px; + color: #24695c; } + .activity-timeline .media .circle-dot-secondary { + background-color: rgba(186, 137, 93, 0.25); + border-radius: 100%; + padding: 4px; + font-size: 5px; + color: #ba895d; } + .activity-timeline .media .circle-dot-success { + background-color: rgba(27, 76, 67, 0.25); + border-radius: 100%; + padding: 4px; + font-size: 5px; + color: #1b4c43; } + .activity-timeline .media .circle-dot-danger { + background-color: rgba(210, 45, 61, 0.25); + border-radius: 100%; + padding: 4px; + font-size: 5px; + color: #d22d3d; } + .activity-timeline .media .circle-dot-info { + background-color: rgba(113, 113, 113, 0.25); + border-radius: 100%; + padding: 4px; + font-size: 5px; + color: #717171; } + .activity-timeline .media .circle-dot-light { + background-color: rgba(230, 237, 239, 0.25); + border-radius: 100%; + padding: 4px; + font-size: 5px; + color: #e6edef; } + .activity-timeline .media .circle-dot-dark { + background-color: rgba(44, 50, 63, 0.25); + border-radius: 100%; + padding: 4px; + font-size: 5px; + color: #2c323f; } + .activity-timeline .media .circle-dot-warning { + background-color: rgba(226, 198, 54, 0.25); + border-radius: 100%; + padding: 4px; + font-size: 5px; + color: #e2c636; } + .activity-timeline .media + .media { + margin-top: 30px; } + .activity-timeline .media .media-body { + margin-left: 20px; } + +.twitter-typeahead { + display: block !important; } + +span.twitter-typeahead .league-name { + font-size: 16px; + padding: 6px 10px 0; } + +span.twitter-typeahead .tt-menu { + float: left; + width: 100%; + min-width: 10rem; + margin: 0.125rem 0 0; + font-size: 1rem; + color: #212529; + text-align: left; + list-style: none; + background-color: #fff; + background-clip: padding-box; + border-radius: 0.25rem; + -webkit-box-shadow: 0 0 20px rgba(89, 102, 122, 0.1); + box-shadow: 0 0 20px rgba(89, 102, 122, 0.1); + border: none; + padding: 0; } + +span.twitter-typeahead .tt-suggestion { + color: #2b2b2b; + opacity: 0.6; + font-size: 13px; + padding: 6px 12px; + border-top: 1px solid #efefef; + background-color: #f5f7fb; + cursor: pointer; } + span.twitter-typeahead .tt-suggestion:hover, span.twitter-typeahead .tt-suggestion:focus { + background-color: #24695c; + color: #fff; + opacity: 1; } + span.twitter-typeahead .tt-suggestion.active, span.twitter-typeahead .tt-suggestion:active { + color: #fff; + background-color: var(--theme-deafult); } + +#draggableMultiple .ui-sortable-handle .card { + cursor: move; } + +.crm-activity > li { + font-weight: 600; } + .crm-activity > li + li { + border-top: 1px solid #efefef; + margin-top: 12px; + padding-top: 12px; } + .crm-activity > li + li h6 { + font-size: 14px; + line-height: 1.5; + margin-bottom: 5px; } + .crm-activity > li h6 { + font-size: 14px; } + +.crm-activity span { + font-size: 40px; } + +.crm-activity ul.dates h6 { + color: #242934; } + +.crm-activity ul.dates li { + color: #999; + font-size: 12px; + display: inline-block; + line-height: 1; } + .crm-activity ul.dates li + li { + border-left: 1px solid #efefef; + padding-left: 10px; + margin-left: 5px; } + +.ecommerce-widget { + -webkit-box-shadow: none; + box-shadow: none; + border: 1px solid #e6edef !important; + border-radius: 5px; } + .ecommerce-widget h6 { + color: #717171; } + .ecommerce-widget .total-num { + color: #242934; + margin: 0; + letter-spacing: 1px; + font-weight: 600; + font-size: 24px; } + .ecommerce-widget .total-num span { + color: #000; } + .ecommerce-widget .row { + -webkit-box-align: center; + -ms-flex-align: center; + align-items: center; } + .ecommerce-widget .progress-showcase { + margin-top: 43px; } + .ecommerce-widget .progress-showcase .progress { + height: 20px; } + .ecommerce-widget span { + color: #999; + margin: 0; + cursor: pointer; + font-weight: 600; } + .ecommerce-widget .icon { + color: #efefef; + font-size: 40px; } + .ecommerce-widget .flot-chart-container { + height: 100px; + padding: 0; + margin: 0; + border: transparent; } + .ecommerce-widget .morris-default-style { + display: none !important; } + .ecommerce-widget svg { + -webkit-filter: drop-shadow(12px 12px 7px rgba(0, 0, 0, 0.3)); + filter: drop-shadow(12px 12px 7px rgba(0, 0, 0, 0.3)); } + .ecommerce-widget ul li { + color: #999; + font-weight: 600; } + +.static-top-widget:hover .icon-bg { + -webkit-transform: rotate(-5deg) scale(1.1); + transform: rotate(-5deg) scale(1.1); + -webkit-transition: all 0.3s ease; + transition: all 0.3s ease; } + +.static-top-widget div.align-self-center svg { + width: 30px; + height: 30px; } + +.static-top-widget .media-body { + -ms-flex-item-align: center !important; + align-self: center !important; + padding-left: 30px; } + .static-top-widget .media-body .icon-bg { + position: absolute; + right: -14px; + top: 6px; + opacity: 0.2; + -webkit-transition: all 0.3s ease; + transition: all 0.3s ease; + width: 100px; + height: 100px; } + +.static-top-widget span { + font-weight: 500; } + +.static-top-widget h4 { + font-weight: 600; } + +.bg-danger .media.static-top-widget .align-self-center { + background-color: #d22d3d; } + +.widget-joins:before { + content: ""; + position: absolute; + height: 100%; + width: 1px; + background-color: #efefef; + left: calc(50% - 1px); } + +.widget-joins:after { + content: ""; + position: absolute; + height: 1px; + width: 100%; + background-color: #efefef; + left: 0; + top: 50%; } + +.widget-joins .media { + padding: 30px; + text-align: center; + -webkit-box-align: center; + -ms-flex-align: center; + align-items: center; } + .widget-joins .media span { + font-weight: 500; } + .widget-joins .media span.widget-t { + color: #999; } + .widget-joins .media h5 { + font-weight: 600; + font-size: 18px; } + .widget-joins .media .details { + border-left: 1px solid #e6edef; + padding: 1px 0; } + .widget-joins .media .media-body { + text-align: left; } + .widget-joins .media .media-body > span { + color: #999; } + .widget-joins .media .media-body svg { + width: 40px; + height: 40px; } + .widget-joins .media .media-body h5 span { + font-weight: 600; } + .widget-joins .media .media-body h6 { + font-weight: 600; } + .widget-joins .media .media-body h6 span { + color: #000; } + +.redial-social-widget { + border-radius: 100%; + width: 100px; + height: 100px; + 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; + font-size: 25px; + margin: 0 auto; + background-image: -webkit-gradient(linear, left top, right top, color-stop(50%, #f4f4f4), color-stop(50%, transparent), to(transparent)), -webkit-gradient(linear, left top, right top, color-stop(50%, #e6edef), color-stop(50%, #f4f4f4), to(#f4f4f4)); + background-image: linear-gradient(90deg, #f4f4f4 50%, transparent 50%, transparent), linear-gradient(90deg, #e6edef 50%, #f4f4f4 50%, #f4f4f4); } + .redial-social-widget i { + background-color: #fff; + height: 80px; + width: 80px; + border-radius: 100%; + text-align: center; + 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; } + .redial-social-widget.radial-bar-70 { + background-image: linear-gradient(342deg, #24695c 50%, transparent 50%, transparent), linear-gradient(270deg, #24695c 50%, rgba(36, 105, 92, 0.1) 50%, rgba(36, 105, 92, 0.1)); } + +.social-widget-card span { + color: #999; + text-transform: uppercase; + margin-bottom: 4px; + display: inline-block; + font-size: 12px; + font-weight: 600; } + +.social-widget-card h5 { + color: #999; + text-transform: uppercase; + text-align: center; + padding: 20px 0; + margin-bottom: 30px; + font-size: 16px; + font-weight: 700; } + +.social-widget-card h4 { + font-size: 18px; + font-weight: 600; } + +.browser-widget:hover img { + -webkit-filter: grayscale(0%); + filter: grayscale(0%); + -webkit-transition: all 0.3s ease; + transition: all 0.3s ease; + -webkit-transform: scale(1.1) rotate(5deg); + transform: scale(1.1) rotate(5deg); } + +.browser-widget img { + height: 80px; + -webkit-filter: grayscale(100%); + filter: grayscale(100%); + -webkit-transform: scale(1) rotate(0deg); + transform: scale(1) rotate(0deg); + -webkit-transition: all 0.3s ease; + transition: all 0.3s ease; } + +.browser-widget .media-body { + text-align: center; + -webkit-column-count: 3; + -moz-column-count: 3; + column-count: 3; + -webkit-column-rule: 1px solid #f4f4f4; + -moz-column-rule: 1px solid #f4f4f4; + column-rule: 1px solid #f4f4f4; } + .browser-widget .media-body p { + margin-bottom: 5px; + font-weight: 600; + color: #999; } + .browser-widget .media-body span { + margin-bottom: 0; + color: rgba(36, 41, 52, 0.7); } + .browser-widget .media-body h4 { + color: #242934; + margin-bottom: 0; + font-size: 18px; + font-weight: 600; } + .browser-widget .media-body h4 span { + color: #333333; + font-weight: 600; } + +.testimonial #owl-carousel-testimonial .owl-stage-outer .owl-stage .owl-item .item img, +.testimonial #owl-carousel-testimonial-rtl .owl-stage-outer .owl-stage .owl-item .item img { + border-radius: 100%; } + +.testimonial i { + font-size: 60px; + color: rgba(43, 43, 43, 0.7); + position: absolute; + left: 0; + top: 0; + opacity: 0.1; + z-index: -1; } + +.testimonial p { + color: #999; + font-style: italic; + margin-bottom: 30px; + margin-top: 30px; + margin-top: 15px; } + +.testimonial h5 { + color: #242934; + padding-top: 10px; + margin-bottom: 0; + font-weight: 600; } + +.testimonial span { + color: #999; } + +.testimonial img { + margin: 0 auto; } + +.mobile-clock-widget .sec, .min, .hour { + position: absolute; + width: 24px; + height: 234px; + top: 0; + left: 102px; + margin-top: -30px; + margin-left: -25px; } + +.cal-date-widget .datepicker { + padding: 20px; + border-radius: unset; } + .cal-date-widget .datepicker .datepicker--nav { + border-bottom: none; + direction: ltr; } + .cal-date-widget .datepicker .datepicker--cell-day.-other-month-, + .cal-date-widget .datepicker .datepicker--cell-year.-other-decade- { + opacity: 0.5; } + +.cal-date-widget span { + font-weight: 600; } + +.cal-date-widget p { + font-weight: 500; } + +.cal-date-widget .cal-info { + display: -webkit-box; + display: -ms-flexbox; + display: flex; + -webkit-box-align: center; + -ms-flex-align: center; + align-items: center; + height: 100%; } + .cal-date-widget .cal-info h2 { + font-size: 100px; + color: #24695c; + font-weight: 700; + margin-bottom: 20px; + line-height: 0.7; } + .cal-date-widget .cal-info span { + font-size: 18px; } + .cal-date-widget .cal-info p { + color: #999; + margin-top: 15px; } + +.datepicker--nav-action { + background-color: #24695c; } + .datepicker--nav-action:hover { + background-color: #24695c; } + +.datepicker--nav-title { + color: #24695c; } + .datepicker--nav-title i { + color: #24695c; } + +.datepicker--cell.-selected-.-current- { + background-color: #24695c; + color: #fff; } + +.weather-widget-two { + position: relative; + background-color: #24695c; + height: 350px; + overflow: hidden; } + .weather-widget-two p { + color: #fff; } + .weather-widget-two .card-body .media { + margin-bottom: 10px; } + .weather-widget-two svg path.climacon_component-stroke { + fill: #fff; } + .weather-widget-two .top-bg-whether { + position: absolute; + top: -50px; + right: -28px; + opacity: 0.1; } + .weather-widget-two .top-bg-whether svg { + width: 200px; + height: 200px; } + .weather-widget-two .num { + font-weight: 600; } + .weather-widget-two .climacon_component-stroke { + stroke: #fff; } + .weather-widget-two .bottom-whetherinfo svg { + width: 150px; + height: 150px; + opacity: 0.1; + color: #fff; + position: relative; + top: 0; + left: -35px; } + .weather-widget-two .bottom-whetherinfo .whether-content { + text-align: right; + position: relative; + top: -15px; + color: #fff; } + +.mobile-clock-widget { + background: url(../images/other-images/mobile-clock-wallpaper.jpg); + background-repeat: no-repeat; + background-size: cover; + height: 350px; + color: #fff; + text-align: center; + 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; + background-blend-mode: overlay; + background-color: #17433b; + position: relative; } + .mobile-clock-widget .bg-svg { + position: absolute; + top: -4px; + left: -25px; } + .mobile-clock-widget .bg-svg svg { + width: 150px; + height: 150px; + opacity: 0.08; } + .mobile-clock-widget .clock { + padding: 0; + position: relative; + list-style: none; + margin: 0 auto; + height: 175px; + width: 175px; + display: block; + background: url(../images/other-images/clock-face.png) 5% center no-repeat; } + .mobile-clock-widget .sec { + background: url(../images/sec.svg); + z-index: 3; } + .mobile-clock-widget .min { + background: url(../images/min.svg); + z-index: 2; } + .mobile-clock-widget .hour { + background: url(../images/hour.svg); + z-index: 1; } + +.mobile-clock-widget #date { + margin-top: 30px; + font-weight: 700; } + +.mobile-clock-widget p { + font-weight: 600; } + +.flot-chart-container { + height: 250px; } + +.calender-widget .cal-img { + background: url(../images/other-images/calender-bg.png); + background-size: cover; + border-top-left-radius: 4px; + border-top-right-radius: 4px; + height: 270px; } + +.calender-widget .cal-date { + width: 100px; + height: 100px; + margin: 0 auto; + text-align: center; + background-color: #fff; + border-radius: 50%; + margin-top: -45px; + border: 1px solid #e6edef; + 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; } + .calender-widget .cal-date h5 { + margin-bottom: 0; + line-height: 1.5; + padding: 17px; + font-weight: 700; + font-size: 18px; } + +.calender-widget .cal-desc h6 { + font-size: 20px; + line-height: 1.5; + margin-bottom: 10px; } + +.calender-widget .cal-desc p { + color: #999; + font-size: 15px; } + +.calender-widget .cal-desc span { + line-height: 1.6; } + +.contact-form .theme-form { + border: 1px solid #e6edef; + padding: 30px; + border-radius: 4px; } + .contact-form .theme-form .form-icon { + width: 53px; + height: 53px; + 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; + text-align: center; + border: 1px solid #e6edef; + border-radius: 100%; + font-size: 28px; + background-color: #fff; + color: #24695c; + margin-top: -55px; + margin-bottom: 15px; } + .contact-form .theme-form label { + font-weight: 600; } + +.contact-form .btn { + padding: 10px 30px; } + +.chart-widget-top #chart-widget1, +.chart-widget-top #chart-widget2, +.chart-widget-top #chart-widget3 { + margin-bottom: -14px; } + .chart-widget-top #chart-widget1 .apexcharts-xaxistooltip, + .chart-widget-top #chart-widget2 .apexcharts-xaxistooltip, + .chart-widget-top #chart-widget3 .apexcharts-xaxistooltip { + display: none; } + +.bar-chart-widget .top-content { + border-top-left-radius: 4px; + border-top-right-radius: 4px; } + +.bar-chart-widget .earning-details { + height: 100%; + -webkit-box-align: center; + -ms-flex-align: center; + align-items: center; + -webkit-box-pack: center; + -ms-flex-pack: center; + justify-content: center; + text-align: center; + display: -webkit-box; + display: -ms-flexbox; + display: flex; + letter-spacing: 1px; } + .bar-chart-widget .earning-details i { + font-size: 230px; + position: absolute; + opacity: 0.1; + right: -30px; + top: 0; } + .bar-chart-widget .earning-details i:hover { + -webkit-transform: rotate(-5deg) scale(1.1); + transform: rotate(-5deg) scale(1.1); + -webkit-transition: all 0.3s ease; + transition: all 0.3s ease; } + +.bar-chart-widget .num { + font-weight: 600; } + .bar-chart-widget .num .color-bottom { + color: #000; } + +.bottom-content span { + color: rgba(36, 41, 52, 0.7); } + +.bottom-content .block-bottom { + display: block; } + +.user-status table tbody tr td { + vertical-align: middle; + font-weight: 500; } + .user-status table tbody tr td .d-inline-block { + margin-top: 11px; } + .user-status table tbody tr td .image-sm-size img { + width: 41px; } + +.user-status table tbody tr:last-child td { + padding-bottom: 0; } + +.user-status table thead tr th { + border-top: 0; + font-size: 16px; + color: #2c323f; + font-weight: 600; + padding-top: 0; } + +@-webkit-keyframes am-moving-dashes { + 100% { + stroke-dashoffset: -30px; } } + +@keyframes am-moving-dashes { + 100% { + stroke-dashoffset: -30px; } } + +@-webkit-keyframes am-pulsating { + 0% { + stroke-opacity: 1; + stroke-width: 0; } + 100% { + stroke-opacity: 0; + stroke-width: 50px; } } + +@keyframes am-pulsating { + 0% { + stroke-opacity: 1; + stroke-width: 0; } + 100% { + stroke-opacity: 0; + stroke-width: 50px; } } + +@-webkit-keyframes am-draw { + 0% { + stroke-dashoffset: 500%; } + 100% { + stroke-dashoffset: 0; } } + +@keyframes am-draw { + 0% { + stroke-dashoffset: 500%; } + 100% { + stroke-dashoffset: 0; } } + +.serial-chart .chart-container { + width: 100%; + height: 500px; } + .serial-chart .chart-container .lastBullet { + -webkit-animation: am-pulsating 1s ease-out infinite; + animation: am-pulsating 1s ease-out infinite; } + .serial-chart .chart-container .amcharts-graph-column-front { + -webkit-transition: all .3s .3s ease-out; + transition: all .3s .3s ease-out; } + .serial-chart .chart-container .amcharts-graph-column-front:hover { + fill: var(--theme-secondary); + stroke: var(--theme-secondary); + -webkit-transition: all .3s ease-out; + transition: all .3s ease-out; } + .serial-chart .chart-container .amcharts-graph-g3 { + stroke-linejoin: round; + stroke-linecap: round; + stroke-dasharray: 0; + stroke-dashoffset: 0; + -webkit-animation: am-draw 40s; + animation: am-draw 40s; } + .serial-chart .chart-container .amcharts-graph-g2 .amcharts-graph-stroke { + stroke-dasharray: 3px 3px; + stroke-linejoin: round; + stroke-linecap: round; + -webkit-animation: am-moving-dashes 1s linear infinite; + animation: am-moving-dashes 1s linear infinite; } + +.speed-chart .chart-container { + width: 100%; + height: 530px; } + +.speed-chart .content { + margin-top: -200px; + margin-bottom: 20px; } + .speed-chart .content h4 { + font-weight: 600; + padding-top: 2px; } + +.status-widget svg { + width: 20px; + height: 20px; + vertical-align: text-top; } + +.status-widget .card .card-header h5 { + line-height: 1.38; } + +.status-widget .status-chart { + border-bottom-left-radius: 8px; + border-bottom-right-radius: 8px; + overflow: hidden; } + +.small-chart-widget .chart-container { + height: 311px; + padding: 0; + margin: 0; + border: none; } + +.small-chart-widget .card .card-body { + border-bottom-left-radius: 8px; + border-bottom-right-radius: 8px; } + +.donut-chart-widget .chart-container { + height: 300px; + border: 0; + margin: 0; + padding: 0; } + +.status-details h4 { + font-weight: 600; } + .status-details h4 span { + color: inherit; } + +.status-details span { + color: rgba(36, 41, 52, 0.7); } + +.status-chart .chart-container { + height: 200px; + border: 0; + padding: 0; + margin: 0; } + +.map-chart .chart-container { + width: 100%; + height: 500px; } + +.serial-chart { + width: 100%; } + +.live-products, +.turnover, +.uses, +.monthly { + height: 300px; } + +.live-products .ct-series-a .ct-area, +.live-products .ct-series-a .ct-point, +.live-products .ct-series-a .ct-line, +.live-products .ct-series-a .ct-bar, +.live-products .ct-series-a .ct-slice-donut { + stroke: rgba(255, 255, 255, 0.77); } + +.live-products .ct-label { + fill: #fff; + color: #fff; } + +.live-products .ct-grid { + stroke: rgba(255, 255, 255, 0.7); } + +.turnover .ct-series-a .ct-area, +.turnover .ct-series-a .ct-point, +.turnover .ct-series-a .ct-line, +.turnover .ct-series-a .ct-bar, +.turnover .ct-series-a .ct-slice-donut, +.uses .ct-series-a .ct-area, +.uses .ct-series-a .ct-point, +.uses .ct-series-a .ct-line, +.uses .ct-series-a .ct-bar, +.uses .ct-series-a .ct-slice-donut, +.monthly .ct-series-a .ct-area, +.monthly .ct-series-a .ct-point, +.monthly .ct-series-a .ct-line, +.monthly .ct-series-a .ct-bar, +.monthly .ct-series-a .ct-slice-donut { + stroke: white; + fill: transparent; } + +.turnover .ct-series-b .ct-area, +.turnover .ct-series-b .ct-point, +.turnover .ct-series-b .ct-line, +.turnover .ct-series-b .ct-bar, +.turnover .ct-series-b .ct-slice-donut, +.uses .ct-series-b .ct-area, +.uses .ct-series-b .ct-point, +.uses .ct-series-b .ct-line, +.uses .ct-series-b .ct-bar, +.uses .ct-series-b .ct-slice-donut, +.monthly .ct-series-b .ct-area, +.monthly .ct-series-b .ct-point, +.monthly .ct-series-b .ct-line, +.monthly .ct-series-b .ct-bar, +.monthly .ct-series-b .ct-slice-donut { + stroke: rgba(255, 255, 255, 0.7); + fill: transparent; } + +.turnover .ct-series-c .ct-area, +.turnover .ct-series-c .ct-point, +.turnover .ct-series-c .ct-line, +.turnover .ct-series-c .ct-bar, +.turnover .ct-series-c .ct-slice-donut, +.uses .ct-series-c .ct-area, +.uses .ct-series-c .ct-point, +.uses .ct-series-c .ct-line, +.uses .ct-series-c .ct-bar, +.uses .ct-series-c .ct-slice-donut, +.monthly .ct-series-c .ct-area, +.monthly .ct-series-c .ct-point, +.monthly .ct-series-c .ct-line, +.monthly .ct-series-c .ct-bar, +.monthly .ct-series-c .ct-slice-donut { + stroke: rgba(255, 255, 255, 0.4); + fill: transparent; } + +.turnover .ct-label, +.uses .ct-label, +.monthly .ct-label { + fill: #fff; + color: #fff; } + +.turnover .ct-grid, +.uses .ct-grid, +.monthly .ct-grid { + stroke: rgba(255, 255, 255, 0.7); } + +.activity-dot-primary { + width: 16px; + height: 16px; + background-color: #f5f7fb; + border-radius: 100%; + border: 3px solid #24695c; + -webkit-box-shadow: -2.5px -6.67px 15px 0px rgba(36, 105, 92, 0.25); + box-shadow: -2.5px -6.67px 15px 0px rgba(36, 105, 92, 0.25); + position: relative; + z-index: 2; } + .activity-dot-primary:hover { + background-color: rgba(36, 105, 92, 0.5); } + +.activity-dot-secondary { + width: 16px; + height: 16px; + background-color: #f5f7fb; + border-radius: 100%; + border: 3px solid #ba895d; + -webkit-box-shadow: -2.5px -6.67px 15px 0px rgba(186, 137, 93, 0.25); + box-shadow: -2.5px -6.67px 15px 0px rgba(186, 137, 93, 0.25); + position: relative; + z-index: 2; } + .activity-dot-secondary:hover { + background-color: rgba(36, 105, 92, 0.5); } + +.activity-dot-success { + width: 16px; + height: 16px; + background-color: #f5f7fb; + border-radius: 100%; + border: 3px solid #1b4c43; + -webkit-box-shadow: -2.5px -6.67px 15px 0px rgba(27, 76, 67, 0.25); + box-shadow: -2.5px -6.67px 15px 0px rgba(27, 76, 67, 0.25); + position: relative; + z-index: 2; } + .activity-dot-success:hover { + background-color: rgba(36, 105, 92, 0.5); } + +.activity-dot-danger { + width: 16px; + height: 16px; + background-color: #f5f7fb; + border-radius: 100%; + border: 3px solid #d22d3d; + -webkit-box-shadow: -2.5px -6.67px 15px 0px rgba(210, 45, 61, 0.25); + box-shadow: -2.5px -6.67px 15px 0px rgba(210, 45, 61, 0.25); + position: relative; + z-index: 2; } + .activity-dot-danger:hover { + background-color: rgba(36, 105, 92, 0.5); } + +.activity-dot-info { + width: 16px; + height: 16px; + background-color: #f5f7fb; + border-radius: 100%; + border: 3px solid #717171; + -webkit-box-shadow: -2.5px -6.67px 15px 0px rgba(113, 113, 113, 0.25); + box-shadow: -2.5px -6.67px 15px 0px rgba(113, 113, 113, 0.25); + position: relative; + z-index: 2; } + .activity-dot-info:hover { + background-color: rgba(36, 105, 92, 0.5); } + +.activity-dot-light { + width: 16px; + height: 16px; + background-color: #f5f7fb; + border-radius: 100%; + border: 3px solid #e6edef; + -webkit-box-shadow: -2.5px -6.67px 15px 0px rgba(230, 237, 239, 0.25); + box-shadow: -2.5px -6.67px 15px 0px rgba(230, 237, 239, 0.25); + position: relative; + z-index: 2; } + .activity-dot-light:hover { + background-color: rgba(36, 105, 92, 0.5); } + +.activity-dot-dark { + width: 16px; + height: 16px; + background-color: #f5f7fb; + border-radius: 100%; + border: 3px solid #2c323f; + -webkit-box-shadow: -2.5px -6.67px 15px 0px rgba(44, 50, 63, 0.25); + box-shadow: -2.5px -6.67px 15px 0px rgba(44, 50, 63, 0.25); + position: relative; + z-index: 2; } + .activity-dot-dark:hover { + background-color: rgba(36, 105, 92, 0.5); } + +.activity-dot-warning { + width: 16px; + height: 16px; + background-color: #f5f7fb; + border-radius: 100%; + border: 3px solid #e2c636; + -webkit-box-shadow: -2.5px -6.67px 15px 0px rgba(226, 198, 54, 0.25); + box-shadow: -2.5px -6.67px 15px 0px rgba(226, 198, 54, 0.25); + position: relative; + z-index: 2; } + .activity-dot-warning:hover { + background-color: rgba(36, 105, 92, 0.5); } + +.chart-vertical-center #myDoughnutGraph, .chart-vertical-center #myPolarGraph { + width: auto !important; } + +@media only screen and (max-width: 1800px) { + .latest-update-sec table tbody tr td:first-child { + min-width: 320px; } + .recent-order-sec .table td { + min-width: 110px; } + .recent-order-sec .table td:first-child { + min-width: 320px; } + .user-status table thead tr th:nth-child(3) { + min-width: 150px; } + .user-status table tbody tr td:first-child { + min-width: 300px; } } + +@media screen and (min-width: 1200px) and (max-width: 1680px) { + .dashboard-default-sec .card-header .header-top, .dashboard-2-main .card-header .header-top { + display: block !important; } + .dashboard-default-sec .card-header .header-top .center-content, .dashboard-2-main .card-header .header-top .center-content { + margin-top: 5px; } } + +@media screen and (min-width: 1200px) and (max-width: 1365px) { + .des-xl-25 { + max-width: 25%; + -webkit-box-flex: 0; + -ms-flex: 0 0 25%; + flex: 0 0 25%; } + .des-xl-33 { + max-width: 33.33333%; + -webkit-box-flex: 33.33333%; + -ms-flex: 33.33333%; + flex: 33.33333%; } + .des-xl-50 { + max-width: 50%; + -webkit-box-flex: 0; + -ms-flex: 0 0 50%; + flex: 0 0 50%; } + .des-xl-100 { + max-width: 100%; + -webkit-box-flex: 0; + -ms-flex: 0 0 100%; + flex: 0 0 100%; } + .dashboard-default-sec .card .card-header, .dashboard-default-sec .card .card-body, .dashboard-default-sec .card .card-footer { + padding: 20px; } + .dashboard-default-sec .card .card-header h5 { + font-size: 16px; } + .dashboard-default-sec .card .card-header p { + font-size: 10px; } + .dashboard-default-sec .card .card-header i { + font-size: 12px; } + .dashboard-default-sec .card.income-card .card-body .round-box { + width: 45px; + height: 45px; } + .dashboard-default-sec .card.income-card .card-body .round-box svg { + height: 16px; } + .dashboard-default-sec .card.income-card .card-body h5 { + font-size: 18px; } + .dashboard-default-sec .setting-list { + top: 15px; + right: 15px; } + .dashboard-default-sec .setting-list .setting-option { + width: 25px; + height: 25px; } + .dashboard-default-sec .setting-list .setting-option li:first-child i.icon-angle-double-right { + font-size: 12px; } + .dashboard-default-sec .setting-list .setting-primary, .dashboard-default-sec .setting-list .setting-secondary, .dashboard-default-sec .setting-list .setting-white { + width: 25px; + height: 25px; } + .dashboard-default-sec .profile-greeting h3 { + font-size: 22px; } + .dashboard-default-sec .profile-greeting p { + line-height: 20px; } + .dashboard-default-sec .profile-greeting .card-header { + padding-bottom: 5px !important; } + #chart-dashbord .apexcharts-legend.position-right, #chart-dashbord .apexcharts-legend.position-left { + display: none !important; } + .trasaction-sec .transaction-totalbal { + padding-left: 20px; } + .trasaction-sec .transaction-totalbal h2 { + font-size: 18px; } } + +@media only screen and (max-width: 1470px) { + .bar-chart-widget .num { + font-size: 20px; } } + +@media only screen and (max-width: 1199px) { + .apexcharts-legend.position-right { + left: 20px !important; } + .dashboard-default-sec .card .card-header, .dashboard-default-sec .card .card-body, .dashboard-default-sec .card .card-footer { + padding: 20px; } + .profile-greeting h3 { + font-size: 22px; + margin-top: 5px; } } + +/**===================== + 53. Dashboard CSS Ends +==========================**/ +/**===================== + 67. Dashboard 2 CSS Start +==========================**/ +.dashboard-2-main .card .card-header span { + font-size: 14px !important; + color: #24695c; + font-weight: 600 !important; + display: inline-block; } + +.dashboard-2-main .card .card-body .media img { + margin-right: 5px; } + +.yearly-growth-sec #myChart { + height: 350px !important; } + +.top-dealer-sec .card { + margin-bottom: 20px; } + .top-dealer-sec .card .card-img-top { + height: 50px; + width: 50px; + border-radius: 50%; + margin: 0 auto; + margin-bottom: 15px; } + .top-dealer-sec .card .top-dealerbox { + padding: 20px; } + .top-dealer-sec .card .top-dealerbox h6 { + font-size: 13px; + font-weight: 600; } + .top-dealer-sec .card .top-dealerbox p { + font-size: 11px; + font-family: "Roboto", sans-serif; + margin-bottom: 12px; + color: #999; } + .top-dealer-sec .card .top-dealerbox .btn { + padding: 8px 10px; + background-color: rgba(36, 105, 92, 0.1); + color: #24695c; + font-size: 11px; + font-weight: 400; + border-radius: 15px; + font-family: "Roboto", sans-serif; + line-height: 1; } + .top-dealer-sec .card .top-dealerbox:hover { + background-color: #fff; } + .top-dealer-sec .card .top-dealerbox:hover .btn { + background-color: #24695c; + color: #fff; } + +.top-dealer-sec .owl-theme .owl-nav.disabled + .owl-dots { + margin-top: 0; } + +.top-sell-sec .card-body .fa-shopping-bag { + background-color: #24695c; + padding: 8px; + border-radius: 2px; + color: #fff; } + +.top-sell-sec .card-body .media { + background-color: rgba(36, 105, 92, 0.05); + padding: 25px 30px; + border-radius: 5px; } + .top-sell-sec .card-body .media img { + -webkit-transition: all 3s ease; + transition: all 3s ease; } + .top-sell-sec .card-body .media .btn:hover i:before { + -webkit-animation: bounceIn 0.5s ease-in-out; + animation: bounceIn 0.5s ease-in-out; } + .top-sell-sec .card-body .media .media-body { + margin-left: 20px; } + .top-sell-sec .card-body .media .media-body h6 { + font-size: 16px; + font-weight: 700; + margin-bottom: 5px; } + .top-sell-sec .card-body .media .media-body p { + margin-bottom: 5px; } + .top-sell-sec .card-body .media:hover img { + -webkit-transform: rotate(-26deg); + transform: rotate(-26deg); } + +.top-sell-sec .media .media-body .fa-star { + color: #f5c304; } + +.target-sec { + background-color: #fff; + border: none; } + .target-sec .card-header ul.target-list { + display: -webkit-box; + display: -ms-flexbox; + display: flex; + -webkit-box-align: center; + -ms-flex-align: center; + align-items: center; + -webkit-box-pack: justify; + -ms-flex-pack: justify; + justify-content: space-between; } + .target-sec .card-header ul.target-list li { + border-radius: 10px; + text-align: center; + padding-top: 25px; + padding-bottom: 25px; + padding-left: 0px; + padding-right: 0px; + width: 50%; + -webkit-transition: all 0.5s ease; + transition: all 0.5s ease; } + .target-sec .card-header ul.target-list li:hover h6 { + color: #fff; } + .target-sec .card-header ul.target-list li:hover p { + color: #fff; } + .target-sec .card-header ul.target-list li:hover span { + color: #fff; } + .target-sec .card-header ul.target-list li:first-child { + background-color: rgba(36, 105, 92, 0.05); } + .target-sec .card-header ul.target-list li:first-child:hover { + background-color: #24695c; } + .target-sec .card-header ul.target-list li:nth-child(n+2) { + background-color: #24695c; + margin-left: 20px; } + .target-sec .card-header ul.target-list li:nth-child(n+2) h6 { + color: #fff; } + .target-sec .card-header ul.target-list li:nth-child(n+2) p { + color: #fff; } + .target-sec .card-header ul.target-list li:nth-child(n+2) span { + color: #fff; } + .target-sec .card-header ul.target-list li h6 { + font-size: 16px; + font-weight: 700; + margin-bottom: 10px; } + .target-sec .card-header ul.target-list li p { + font-size: 12px; + margin-bottom: 10px; + line-height: 1.4; } + .target-sec .card-header ul.target-list li span { + color: #24695c; } + .target-sec .card-body .traget-img-sec { + width: 100%; + background-image: url("../images/dashboard-2/target1.png"); + height: 415px; + background-position: center; + background-size: cover; + background-repeat: no-repeat; } + .target-sec .animat-block i { + color: #24695c; + position: absolute; } + .target-sec .animat-block .close1 { + bottom: 29%; + left: 75px; + position: absolute; + -webkit-animation: star 5s linear infinite; + animation: star 5s linear infinite; } + .target-sec .animat-block .close2 { + bottom: 31%; + right: 8%; + -webkit-animation: star 7s linear infinite; + animation: star 7s linear infinite; } + .target-sec .animat-block .close3 { + bottom: 65%; + left: 30%; + opacity: 0.2; + -webkit-animation: star 10s linear infinite; + animation: star 10s linear infinite; } + .target-sec .animat-block > div { + width: 5px; + height: 5px; + border-radius: 50%; + background-color: #24695c; + position: absolute; } + .target-sec .animat-block .circle1 { + bottom: 50%; + left: 5%; + -webkit-animation: move2 1.2s infinite alternate; + animation: move2 1.2s infinite alternate; } + .target-sec .animat-block .circle2 { + bottom: 45%; + right: 30%; + -webkit-animation: move2 1.4s infinite alternate; + animation: move2 1.4s infinite alternate; } + .target-sec .animat-block .circle3 { + bottom: 65%; + right: 18%; + opacity: 0.2; + -webkit-animation: move2 1.6s infinite alternate; + animation: move2 1.6s infinite alternate; } + +.activity-sec .activity-timeline .media { + -webkit-box-align: start !important; + -ms-flex-align: start !important; + align-items: start !important; } + .activity-sec .activity-timeline .media .activity-line { + left: 37px; } + +.activity-sec .activity-timeline.update-line .media .activity-line { + height: 80% !important; } + +.activity-sec .activity-timeline.update-line .media .media-body h6 { + font-size: 12px; + margin-bottom: 25px; } + .activity-sec .activity-timeline.update-line .media .media-body h6 span { + margin-right: 5px; + font-weight: 600; } + .activity-sec .activity-timeline.update-line .media .media-body h6 .dot-notification { + float: right; + width: 15px; + height: 15px; + background-color: #24695c; + border: 5px solid #b2b6b6; + border-radius: 50%; + -webkit-animation: round 1.3s ease-in-out infinite; + animation: round 1.3s ease-in-out infinite; } + +.activity-sec .activity-timeline.update-line .media .media-body h5 { + font-size: 14px; + color: #242934; + font-weight: 600; + margin-bottom: 5px; } + +.activity-sec .activity-timeline.update-line .media .media-body p { + font-size: 14px; + font-weight: 400; + font-family: "Roboto", sans-serif; + color: #717171; } + +.activity-sec .activity-timeline.update-line .media .media-body ul.timeline-pro { + display: -webkit-box; + display: -ms-flexbox; + display: flex; + -webkit-box-align: center; + -ms-flex-align: center; + align-items: center; + margin-top: 15px; } + .activity-sec .activity-timeline.update-line .media .media-body ul.timeline-pro li { + width: 100px; + height: 65px; + border-radius: 5px; + background-color: rgba(36, 105, 92, 0.05); + display: -webkit-box; + display: -ms-flexbox; + display: flex; } + .activity-sec .activity-timeline.update-line .media .media-body ul.timeline-pro li img { + margin: auto; + -webkit-transition: all 0.5s ease; + transition: all 0.5s ease; } + .activity-sec .activity-timeline.update-line .media .media-body ul.timeline-pro li:nth-child(n+2) { + margin-left: 20px; } + .activity-sec .activity-timeline.update-line .media .media-body ul.timeline-pro li:hover img { + -webkit-animation: tada 1s ease-out infinite; + animation: tada 1s ease-out infinite; } + +.activity-sec .activity-timeline.update-line .media .media-body .tomorrow-sec { + margin: auto; + font-weight: 500; + font-family: "Montserrat", sans-serif; + position: relative; + z-index: 1; } + .activity-sec .activity-timeline.update-line .media .media-body .tomorrow-sec:before { + content: ''; + position: absolute; + top: 45%; + left: 0; + right: 0; + margin: auto; + background-color: #e6edef; + height: 1px; + width: 90%; + z-index: -1; } + .activity-sec .activity-timeline.update-line .media .media-body .tomorrow-sec p { + width: -webkit-fit-content; + width: -moz-fit-content; + width: fit-content; + padding-left: 20px; + padding-right: 20px; + margin-left: auto; + margin-right: auto; + background-color: #f5f7fb; } + +.activity-sec .media .tomorrow-sec p { + display: -webkit-box; + display: -ms-flexbox; + display: flex; + -webkit-box-pack: center; + -ms-flex-pack: center; + justify-content: center; } + +.yearly-growth-sec #myChart { + height: 350px !important; } + +#graph_rounded svg { + -webkit-filter: drop-shadow(-1px 5px 9px rgba(233, 233, 255, 0.3)); + filter: drop-shadow(-1px 5px 9px rgba(233, 233, 255, 0.3)); } + +@media only screen and (max-width: 1800px) { + .activity-sec .activity-timeline.update-line .media .activity-line { + left: 27px; } } + +@media screen and (min-width: 1200px) and (max-width: 1500px) { + .dashboard-2-main .setting-primary, .dashboard-2-main .setting-secondary, .dashboard-2-main .setting-white { + width: 25px; + height: 25px; } + .dashboard-2-main .setting-list .setting-option { + width: 25px; + height: 25px; } + .dashboard-2-main .setting-list .setting-option .setting-option { + width: 25px; + height: 25px; } + .dashboard-2-main .setting-list .setting-option li:first-child i.icon-angle-double-right { + font-size: 12px; } + .dashboard-2-main .card .card-header, .dashboard-2-main .card .card-body, .dashboard-2-main .card .card-footer { + padding: 20px; } + .dashboard-2-main .card .card-header h5 { + font-size: 16px; } + .dashboard-2-main .card.income-card .card-body h5 { + font-size: 18px; } + .top-dealer-sec .card .top-dealerbox { + padding: 15px; } + .top-sell-sec .card-body .media { + padding: 15px; } + .top-sell-sec .card-body .media .btn-iconsolid { + padding: 5px 10px; } + .top-sell-sec .card-body .media .btn-iconsolid i { + font-size: 12px; } + .top-sell-sec .card-body .media .media-body h6 { + font-size: 15px; } + .top-sell-sec .card-body .media .media-body p { + font-size: 12px; } + .target-sec .card-header ul.target-list li h6 { + font-size: 14px; } + .target-sec .card-body .traget-img-sec { + height: 410px; } + .activity-sec .activity-timeline.update-line .media .media-body h6 { + margin-bottom: 10px; } + .activity-sec .activity-timeline.update-line .media .media-body p { + font-size: 12px; } + .activity-sec .activity-timeline.update-line .media .activity-line { + left: 26px; + top: 105px; } + .activity-dot-primary { + width: 14px; + height: 14px; + border-width: 2px; } } + +@media screen and (min-width: 1366px) and (max-width: 1500px) { + .top-sell-sec .card-body .media .media-body p { + display: none; } + .activity-sec .activity-timeline.update-line .media .media-body p { + display: none; } + .target-sec .card-body .traget-img-sec { + height: 328px; } + .target-sec .card-header ul.target-list li { + padding-top: 15px; + padding-bottom: 15px; } + .target-sec .card-header ul.target-list li p { + display: none; } } + +@media screen and (min-width: 1200px) and (max-width: 1365px) { + .dashboard-2-main .des-xl-50 { + max-width: 50%; + -webkit-box-flex: 0; + -ms-flex: 0 0 50%; + flex: 0 0 50%; } + .dashboard-2-main .des-xl-100 { + max-width: 100%; + width: 100%; + -webkit-box-flex: 0; + -ms-flex: 0 0 100%; + flex: 0 0 100%; } + .target-sec .card-body .traget-img-sec { + margin-top: 20px; + background-position: top; + height: 247px; } } + +@media only screen and (max-width: 1200px) { + .traget-img-sec { + display: -webkit-box; + display: -ms-flexbox; + display: flex; + -webkit-box-pack: center; + -ms-flex-pack: center; + justify-content: center; } } + +@media only screen and (max-width: 1199px) { + .activity-sec .activity-timeline.update-line .media .activity-line { + left: 37px; } + .target-sec .card-body .traget-img-sec { + background-position: top; } } + +@media only screen and (max-width: 991px) { + .activity-sec .activity-timeline.update-line .media .activity-line { + left: 28px; } + .top-dealer-sec .card .top-dealerbox { + padding: 12px; } + .target-sec .card-body .traget-img-sec { + height: 360px; } } + +@media only screen and (max-width: 767px) { + .activity-timeline .media .activity-line { + top: 100px; } + .top-sell-sec .card .card-body .media img { + margin-right: 25px; } } + +@media only screen and (max-width: 991px) { + .activity-sec .activity-timeline .media .activity-line { + left: 26px; } + .top-dealer-sec .owl-theme .owl-nav.disabled + .owl-dots { + margin-top: -15px; } } + +@media only screen and (max-width: 575px) { + .update-line .media .activity-line { + top: 95px !important; } + .top-dealer-sec .card { + -webkit-box-shadow: none !important; + box-shadow: none !important; } + .top-dealer-sec .owl-theme .owl-nav.disabled + .owl-dots { + margin-top: 0; } } + +@media only screen and (max-width: 480px) { + .top-sell-sec .card-body .media { + display: block; + position: relative; + padding: 20px; } + .top-sell-sec .card-body .media .btn { + position: absolute; + top: 20px; + right: 20px; + padding: 5px 10px; + font-size: 12px; } + .top-sell-sec .card-body .media .media-body { + margin-left: unset; + margin-top: 15px; } + .target-sec .card-header ul.target-list { + display: block; } + .target-sec .card-header ul.target-list li { + width: auto; } + .target-sec .card-header ul.target-list li:nth-child(n+2) { + margin-left: unset; + margin-top: 15px; } } + +@media only screen and (max-width: 359px) { + .update-line .media .activity-line { + top: 125px !important; } + .activity-sec .media .activity-dot-primary { + width: 10px; + height: 10px; + border: 1px solid #24695c; } + .activity-sec .activity-timeline .media .activity-line { + left: 23px; } + .activity-timeline .media .media-body { + margin-left: 10px; } } + +/**===================== + 67. Dashboard 2 CSS End +==========================**/ +/**===================== + 68. Dashboard 3 CSS Start +==========================**/ +.order-chart-container .history { + height: 294px; } + .order-chart-container .history .chartist-tooltip { + -webkit-box-shadow: -1.5px 1.33px 15px 0px rgba(186, 137, 93, 0.1); + box-shadow: -1.5px 1.33px 15px 0px rgba(186, 137, 93, 0.1); } + .order-chart-container .history .chartist-tooltip .chartist-tooltip-value { + color: #ba895d; } + .order-chart-container .history svg .ct-grids .ct-horizontal { + stroke: transparent; } + .order-chart-container .history svg .ct-grids .ct-horizontal:nth-child(4) { + stroke: rgba(0, 0, 0, 0.2); } + .order-chart-container .history svg .ct-point { + stroke-width: 3px; + fill: #fff; } + .order-chart-container .history svg .ct-point.circle-trans { + display: none; } + .order-chart-container .history svg .ct-series-a .ct-point, .order-chart-container .history svg .ct-series-a .ct-line, .order-chart-container .history svg .ct-series-a .ct-bar, .order-chart-container .history svg .ct-series-a .ct-slice-donut { + stroke: #e8d7c8; } + .order-chart-container .history svg .ct-series-b .ct-slice-pie, .order-chart-container .history svg .ct-series-b .ct-slice-donut-solid, .order-chart-container .history svg .ct-series-b .ct-area { + fill: url(#gradient) !important; + fill-opacity: 0.2; } + +.task-progress { + margin-top: 30px; } + .task-progress .progress { + margin-top: 10px; } + +.task-table table tr th, .project-table table tr th { + border-top: none; + border-bottom: none; + color: rgba(36, 41, 52, 0.5); + font-weight: 500; } + +.task-table table tr td + td, .project-table table tr td + td { + color: rgba(36, 41, 52, 0.5); } + +.task-table table tr:last-child, .project-table table tr:last-child { + padding-bottom: 0; } + +.report-status #project-status { + margin-top: -15px; } + +.report-status ul { + display: -webkit-box; + display: -ms-flexbox; + display: flex; + border-top: 1px solid #e6edef; } + .report-status ul li { + display: inline-block; + width: 100%; + padding: 15px; } + .report-status ul li h5 { + margin-bottom: 0; } + .report-status ul li + li { + border-left: 1px solid #e6edef; } + +.update-line .media .activity-line { + height: 249px; } + +.project-table table thead tr th { + color: #242934; + font-weight: 600; } + +.project-table table tr th, .project-table table tr td { + vertical-align: middle; } + .project-table table tr th span, .project-table table tr td span { + font-size: 12px; } + .project-table table tr th:last-child, .project-table table tr td:last-child { + min-width: 150px; } + +.jvector-map-project { + height: 304px; } + +.map-progress li h6 { + font-weight: 400; } + .map-progress li h6 span { + color: rgba(36, 41, 52, 0.5); } + +.map-progress li + li { + margin-top: 30px; } + +@media screen and (min-width: 1200px) and (max-width: 1291px) { + .update-line .media .activity-line { + height: 287px; } + .order-chart-container .history { + height: 321px; } + #project-status { + min-height: 320px !important; } + #project-status .apexcharts-canvas, #project-status svg { + height: 320px !important; } } + +@media only screen and (max-width: 991px) { + .update-line .media .activity-line { + height: 211px; } + .map-progress li + li { + margin-top: 20px; } } + +@media only screen and (max-width: 767px) { + .map-progress { + margin-top: 20px; } + .project-table table tr td, .project-table table tr th { + min-width: 130px; } + .project-table table tr td:nth-child(2), .project-table table tr th:nth-child(2) { + min-width: 169px; } } + +@media only screen and (max-width: 575px) { + .task-table table tr th:first-child, .task-table table tr td:first-child { + min-width: 280px; } + .task-table table tr th:last-child, .task-table table tr td:last-child { + min-width: 60px; } + .map-progress { + margin-top: 15px; } + .map-progress li + li { + margin-top: 15px; } + .order-chart-container .history { + height: 245px; } + .update-line .media .activity-line { + height: 178px; + top: 139px; } } + +@media only screen and (max-width: 468px) { + .update-line .media .activity-line { + height: 215px; } } + +@media only screen and (max-width: 333px) { + .update-line .media .activity-line { + height: 228px; } } + +/**===================== + 68. Dashboard 3 CSS End +==========================**/ +/**===================== + 63. Box-layout CSS start +==========================**/ +@media only screen and (min-width: 1280px) { + .box-layout .page-wrapper.horizontal-wrapper .page-body-wrapper { + margin-top: 40px !important; + overflow: hidden; } + .box-layout .page-wrapper.horizontal-wrapper .page-body-wrapper .page-body { + min-height: calc(100vh - 165px); + margin-top: 0; + top: 80px; + overflow-y: scroll !important; + max-height: calc(100vh - 220px); + padding-bottom: 80px; } + .box-layout .page-wrapper.horizontal-wrapper .page-main-header { + margin-top: 40px; } + .box-layout .page-wrapper.horizontal-wrapper .page-main-header.close_icon { + margin-left: auto; } + .box-layout .page-wrapper.horizontal-wrapper .page-body-wrapper { + width: 1280px; } + .box-layout .page-wrapper.horizontal-wrapper .page-body-wrapper.horizontal-menu header.main-nav { + width: 1280px; + top: 80px; + margin: 0; + overflow-x: unset; + position: relative; } + .box-layout .page-wrapper.horizontal-wrapper .page-body-wrapper.horizontal-menu header.main-nav .main-navbar #mainnav { + width: 1280px; + margin-left: auto; + margin-right: auto; + position: unset; } + .box-layout .page-wrapper.compact-sidebar.compact-wrapper .page-body-wrapper header.main-nav { + height: calc(100vh - 206px); + width: 155px; } + .box-layout .page-wrapper.compact-sidebar.compact-wrapper .page-body-wrapper header.main-nav .main-navbar .nav-menu { + height: calc(100vh - 240px); + padding-top: 0; + padding-bottom: 0; } + .box-layout .page-wrapper.compact-sidebar.compact-wrapper .page-body-wrapper header.main-nav .main-navbar .nav-menu .dropdown .menu-title.active ~ .menu-content { + left: 24.7%; + top: 118px; } + .box-layout .page-wrapper.compact-wrapper .page-body-wrapper { + margin-top: 40px !important; } + .box-layout .page-wrapper.compact-wrapper .page-main-header { + margin-top: 40px; } + .box-layout .page-wrapper.compact-wrapper .page-main-header.close_icon { + margin-left: auto; } + .box-layout .page-wrapper.compact-wrapper .page-body-wrapper .page-body { + margin-left: 255px; + min-height: calc(100vh - 165px); + margin-top: 0; + top: 80px; + overflow-y: scroll !important; + max-height: calc(100vh - 130px); + padding-bottom: 80px; } + .box-layout .page-wrapper.compact-wrapper .page-body-wrapper .page-body::-webkit-scrollbar-track { + -webkit-box-shadow: inset 0 0 6px rgba(36, 105, 92, 0.2); } + .box-layout .page-wrapper.compact-wrapper .page-body-wrapper .page-body::-webkit-scrollbar-thumb, .box-layout .page-wrapper.compact-wrapper .page-body-wrapper .page-body::-webkit-scrollbar { + width: 6px; + border-radius: 13px; } + .box-layout .page-wrapper.compact-wrapper .page-body-wrapper .page-body::-webkit-scrollbar-thumb { + background-color: rgba(36, 105, 92, 0.1); } + .box-layout .page-wrapper.compact-wrapper .page-body-wrapper header.main-nav { + position: fixed; + border-bottom: none; + top: 100px; + z-index: 3; + height: auto; + line-height: inherit; + width: 255px; + height: 100%; + text-align: left; + -webkit-transition: 0.5s; + transition: 0.5s; + padding-top: 25px; + margin-top: 10px; + margin-bottom: 20px; + margin-left: 7px; + height: calc(100vh - 201px); } + .box-layout .page-wrapper.compact-wrapper .page-body-wrapper header.main-nav.close_icon { + opacity: 0; + visibility: hidden; } + .box-layout .page-wrapper.compact-wrapper .page-body-wrapper header.main-nav.close_icon ~ footer { + margin-left: 0; + width: 1280px; + -webkit-transition: 0.5s; + transition: 0.5s; } + .box-layout .page-wrapper.compact-wrapper .page-body-wrapper header.main-nav .main-navbar .nav-menu { + height: calc(100vh - 510px); } + .box-layout .page-wrapper.compact-wrapper .page-body-wrapper header.main-nav.main-nav .main-navbar .nav-menu > li { + padding: 0 10px; } + .box-layout .page-wrapper.modern-sidebar.compact-wrapper .page-main-header { + margin: 0 auto; } + .box-layout .page-wrapper.modern-sidebar.compact-wrapper .page-body-wrapper { + padding-top: 40px; } + .box-layout .page-wrapper.modern-sidebar.compact-wrapper .page-body-wrapper header.main-nav { + top: 103px; + height: calc(100vh - 190px); + margin-left: unset; } + .box-layout .page-wrapper.modern-sidebar.compact-wrapper .page-body-wrapper .page-body { + max-height: calc(100vh - 170px); + min-height: calc(100vh - 170px); + top: 0; + margin: 0 auto; + margin-left: 255px; + padding-bottom: 30px; } + .box-layout .page-wrapper.modern-sidebar.compact-wrapper .page-body-wrapper footer { + z-index: 3; } + .box-layout .page-wrapper .main-navbar .tab-content { + padding-left: 10px; + padding-right: 10px; } + .box-layout .page-wrapper .page-main-header .main-header-right .main-header-left { + width: 255px; } + .box-layout .page-wrapper .page-main-header .main-header-right .nav-right .nav-menus { + padding: 20px 25px; } + .box-layout .page-wrapper ul.close_icon > li label { + padding: 0; } + .box-layout .page-wrapper ul.close_icon > li label:after { + display: none; } + .box-layout .page-wrapper .bookmark ul { + margin-right: -1px; } + .box-layout .page-wrapper #batchDelete .jsgrid-grid-header .jsgrid-table tr th .btn { + padding-left: 20px; + padding-right: 20px; } + .box-layout .page-wrapper .btn-group-showcase .btn-radio .btn-group .radio input[type="radio"] { + display: none; } + .box-layout .page-wrapper .media.bitcoin-graph { + display: block; } + .box-layout .page-wrapper .media.bitcoin-graph .top-bitcoin { + display: inline-block; + vertical-align: middle; } + .box-layout .page-wrapper .media.bitcoin-graph .media-body { + margin-top: 30px; } + .box-layout .page-wrapper .media.bitcoin-graph .media-body .bitcoin-content .bitcoin-numbers h6 { + font-size: 14PX; } + .box-layout .page-wrapper .media.bitcoin-graph .media-body .bitcoin-content.text-end { + text-align: center !important; } + .box-layout .page-wrapper .alert.inverse p { + max-width: 238px; + display: block; + white-space: nowrap; + overflow: hidden; + text-overflow: ellipsis; } + .box-layout .page-wrapper .page-main-header .main-header-right { + margin: 0; } + .box-layout .page-wrapper .page-main-header .vertical-menu-main .mega-menu { + width: 1050px !important; + max-width: 1050px !important; + left: -80px !important; } + .box-layout .page-wrapper .page-body-wrapper { + width: 1280px; + -webkit-box-shadow: 1px 3px 25px rgba(0, 0, 0, 0.07); + box-shadow: 1px 3px 25px rgba(0, 0, 0, 0.07); + margin: 0 auto; } + .box-layout .page-wrapper .page-body-wrapper .learning-comment { + margin-left: -14px !important; + float: left !important; } + .box-layout .page-wrapper .page-body-wrapper .todo .todo-list-wrapper #todo-list li .task-responsive { + min-width: 1087px; + overflow: auto; } + .box-layout .page-wrapper .page-body-wrapper .browse div[class^="col-"]:nth-child(3) { + margin-top: 30px; } + .box-layout .page-wrapper .page-body-wrapper .current-progress table tbody tr td:last-child { + width: 147px; } + .box-layout .page-wrapper .page-body-wrapper .server-chart #latency-chart { + width: 497px; } + .box-layout .page-wrapper .page-body-wrapper .active-order-table { + max-width: 443px; + overflow: auto; } + .box-layout .page-wrapper .page-body-wrapper .active-order-table table tbody tr td p { + width: 100px; } + .box-layout .page-wrapper .page-body-wrapper .activity .media .gradient-round.gradient-line-1:after { + height: 57px; + bottom: -64px; } + .box-layout .page-wrapper .page-body-wrapper .activity .media .gradient-round.small-line:after { + height: 36px; + bottom: -43px; } + .box-layout .page-wrapper .page-body-wrapper .activity .media .gradient-round.medium-line:after { + height: 40px; + bottom: -48px; } + .box-layout .page-wrapper .page-body-wrapper footer { + width: 1025px; + margin: 0 auto; + right: 0; + padding-right: 15px; + margin-left: 255px; + width: 1280px; + margin: 0 auto; + padding-left: 15px; + margin-bottom: 40px !important; + position: fixed; + left: 50%; + -webkit-transform: translate(-50%, 0); + transform: translate(-50%, 0); + z-index: 3; } + .box-layout .page-wrapper .page-body-wrapper .footer-fix { + margin-left: 567px; } + .box-layout .page-wrapper .page-body-wrapper .chat-box .chat-history .call-content { + 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; + min-width: 300px; } + .box-layout .page-wrapper .page-body-wrapper .chat-box .chat-history .call-content > div { + z-index: 8; + background-color: rgba(255, 255, 255, 0.75); + background-blend-mode: overlay; + width: 100%; + padding: 30px; + left: 15px; } + .box-layout .page-wrapper .page-body-wrapper .chat-box .chat-history .call-content button { + width: 40%; + font-size: 14px; + margin: 0 auto; } + .box-layout .page-wrapper .page-body-wrapper .chat-box .chat-history .call-icons { + margin-top: 20px; + margin-bottom: 20px; } + .box-layout .page-wrapper .page-body-wrapper .chat-box .chat-history .call-icons ul li { + border: 1px solid #717171; + width: 50px; + height: 50px; + padding: 8px; } + .box-layout .page-wrapper .page-body-wrapper .chat-box .chat-history .receiver-img { + margin-top: 30px; + margin-bottom: 30px; } + .box-layout .page-wrapper .page-body-wrapper .chat-box .chat-history .receiver-img img { + width: 38%; } + .box-layout .page-wrapper .page-body-wrapper .chat-box .chat-history .total-time h2 { + font-size: 28px; + color: #717171; } + .box-layout .page-wrapper .page-body-wrapper canvas#myLineCharts { + width: 100%; } + .box-layout .page-wrapper .page-body-wrapper .chat-right-aside { + -webkit-box-flex: 0; + -ms-flex: 0 0 60%; + flex: 0 0 60%; + max-width: 60%; + overflow: hidden; } + .box-layout .page-wrapper .page-body-wrapper .caller-img { + position: absolute; + width: 100%; + max-width: 100%; + left: 15px; } + .box-layout .page-wrapper .page-body-wrapper .caller-img img { + opacity: 0.7; } + .box-layout .page-wrapper .page-body-wrapper .browser-widget img { + height: 65px; } + .box-layout .page-wrapper .page-body-wrapper .weather-widget-two .bottom-whetherinfo .whether-content { + top: 39px; } + .box-layout .page-wrapper .page-body-wrapper .custom-card .card-header img { + margin-top: -73px; } + .box-layout .page-wrapper .page-body-wrapper .custom-card .card-profile img { + height: 130px; + top: -17px; } + .box-layout .page-wrapper .page-body-wrapper .select2 { + width: 901.781px; } + .box-layout .page-wrapper .page-main-header { + max-width: 1280px; + margin: 0 auto; + left: 0; + right: 0; + -webkit-transition: 0.5s; + transition: 0.5s; } + .box-layout .page-wrapper .page-main-header.open { + padding-left: 0; + -webkit-transition: 0.5s; + transition: 0.5s; } + .box-layout .page-wrapper .page-builder .ge-canvas.ge-layout-desktop { + margin-top: 50px; } + .box-layout .page-wrapper .page-builder .ge-addRowGroup { + margin-bottom: 10px; } + .box-layout .page-wrapper .pricing-wrapper-card { + padding: 50px 20px; } + .box-layout .page-wrapper .card .blog-box.blog-grid.set-min-height { + min-height: 400px; } + .box-layout .page-wrapper .flot-chart-placeholder#donut-color-chart-morris-daily { + min-height: 430px; } + .box-layout .page-wrapper .flot-chart-placeholder#donut-color-chart-morris { + min-height: 430px; } + .box-layout .page-wrapper .box-col-12 { + -webkit-box-flex: 0; + -ms-flex: 0 0 100%; + flex: 0 0 100%; + max-width: 100%; } + .box-layout .page-wrapper .box-col-6 { + -webkit-box-flex: 0; + -ms-flex: 0 0 50%; + flex: 0 0 50%; + max-width: 50%; } + .box-layout .page-wrapper .box-col-3 { + -webkit-box-flex: 0; + -ms-flex: 0 0 25%; + flex: 0 0 25%; + max-width: 25%; } + .box-layout .page-wrapper .box-col-7 { + -webkit-box-flex: 0; + -ms-flex: 0 0 60%; + flex: 0 0 60%; + max-width: 60%; } + .box-layout .page-wrapper .box-col-5 { + -webkit-box-flex: 0; + -ms-flex: 0 0 40%; + flex: 0 0 40%; + max-width: 40%; } + .box-layout .page-wrapper .box-col-8 { + -webkit-box-flex: 0; + -ms-flex: 0 0 66.66667%; + flex: 0 0 66.66667%; + max-width: 66.66667%; } + .box-layout .page-wrapper .box-col-4 { + -webkit-box-flex: 0; + -ms-flex: 0 0 33.33%; + flex: 0 0 33.33%; + max-width: 33%; } + .box-layout .page-wrapper .chat-box .chat-right-aside { + -webkit-box-flex: 0; + -ms-flex: 0 0 100%; + flex: 0 0 100%; + max-width: calc(100% - 15px); + overflow: hidden; } + .box-layout .page-wrapper .chat-box .chat-right-aside .chat .chat-header .chat-menu-icons li a i { + font-size: 19px; } + .box-layout .page-wrapper .chat-box .chat-right-aside.bitcoin-chat { + max-width: 100%; } + .box-layout .page-wrapper .chat-box .toogle-bar { + display: inline-block; + margin-right: 0 !important; } + .box-layout .page-wrapper .chat-menu { + right: 0; + border-top: 1px solid #e6edef; + opacity: 0; + -webkit-transform: translateY(-30px); + transform: translateY(-30px); + visibility: hidden; + top: 81px; + position: absolute; + z-index: 9; + background-color: #f5f7fb; + -webkit-transition: all linear 0.3s; + transition: all linear 0.3s; } + .box-layout .page-wrapper .chat-menu.show { + opacity: 1; + visibility: visible; + -webkit-transform: translateY(0px); + transform: translateY(0px); + -webkit-transition: all linear 0.3s; + transition: all linear 0.3s; + padding-bottom: 25px; } + .box-layout .page-wrapper .ct-10.total-chart .ct-chart-bar .ct-series .ct-bar { + stroke-width: 23px !important; } + .box-layout .page-wrapper .email-wrap .email-body .email-compose .cke_contents.cke_reset { + max-height: 165px; } + .box-layout .page-wrapper .email-wrap .email-right-aside .email-body .inbox { + height: 644px; } + .box-layout .page-wrapper .email-wrap .email-content .email-top .user-emailid:after { + right: -10px; } + .box-layout .page-wrapper .todo .notification-popup { + right: 320px; } + .box-layout .page-wrapper .touchspin { + padding: 0 10px; } + .box-layout .page-wrapper .vertical-menu-main { + width: 1280px; + margin: 0 auto; + left: 0; + right: 0; } + .box-layout .page-wrapper .vertical-menu-main .mega-menu { + width: 1050px !important; + max-width: 1050px !important; + left: -320px !important; } + .box-layout .page-wrapper .comingsoon video { + min-width: 67%; + width: 67%; } + .box-layout .page-wrapper .auth-bg-effect .second-effect { + left: 55%; } + .box-layout .page-wrapper .auth-bg-video video { + min-width: 67%; + width: 67%; } + .box-layout .page-wrapper .search-page .search-vid-block > div { + margin-top: 30px; } } + +/**===================== + 63. Box-layout CSS ends +==========================**/ +/**===================== + 60. RTL CSS Start +==========================**/ +.rtl .page-wrapper.compact-wrapper .page-body-wrapper header.main-nav { + text-align: right; + -webkit-transition: 0.5s; + transition: 0.5s; + border-left: 1px solid #e6edef; + border-right: unset; } + .rtl .page-wrapper.compact-wrapper .page-body-wrapper header.main-nav.close_icon { + margin-right: 0; + margin-left: unset; + -webkit-transform: translate(290px); + transform: translate(290px); } + .rtl .page-wrapper.compact-wrapper .page-body-wrapper header.main-nav.close_icon ~ .page-body { + margin-right: 0; + margin-left: unset; + -webkit-transition: 0.5s; + transition: 0.5s; } + .rtl .page-wrapper.compact-wrapper .page-body-wrapper header.main-nav.close_icon ~ footer { + margin-left: 0; + -webkit-transition: 0.5s; + transition: 0.5s; } + .rtl .page-wrapper.compact-wrapper .page-body-wrapper header.main-nav.close_icon .main-navbar .nav-menu > li a svg { + float: left; + margin-right: 10px; } + .rtl .page-wrapper.compact-wrapper .page-body-wrapper header.main-nav.close_icon .main-navbar .nav-menu .dropdown .menu-title.active ~ .menu-content { + display: none !important; } + .rtl .page-wrapper.compact-wrapper .page-body-wrapper header.main-nav.close_icon .according-menu { + display: none !important; } + .rtl .page-wrapper.compact-wrapper .page-body-wrapper header.main-nav:hover { + -webkit-transform: translate(0px); + transform: translate(0px); } + .rtl .page-wrapper.compact-wrapper .page-body-wrapper header.main-nav:hover .main-navbar .nav-menu .dropdown .menu-title.active ~ .menu-content { + display: block !important; } + .rtl .page-wrapper.compact-wrapper .page-body-wrapper header.main-nav:hover .main-navbar .nav-menu > li a svg { + float: none; } + .rtl .page-wrapper.compact-wrapper .page-body-wrapper header.main-nav:hover .according-menu { + display: block; } + .rtl .page-wrapper.compact-wrapper .page-body-wrapper header.main-nav .main-navbar .nav-menu > li a .sub-arrow { + left: 20px; + right: unset; } + .rtl .page-wrapper.compact-wrapper .page-body-wrapper header.main-nav .sidebar-user ul li + li::before { + right: -14px; + left: unset; } + .rtl .page-wrapper.compact-wrapper .page-body-wrapper header.main-nav .sidebar-user .setting-primary { + right: unset; + left: 35px; } + +.rtl .page-wrapper.compact-wrapper .page-body-wrapper .page-body { + margin-left: unset; + margin-right: 290px; } + +.rtl .page-wrapper.compact-wrapper .page-body-wrapper .main-nav { + text-align: right; } + .rtl .page-wrapper.compact-wrapper .page-body-wrapper .main-nav .main-navbar .nav-menu > li a svg { + margin-right: unset; + margin-left: 15px; } + +.rtl .page-wrapper.compact-wrapper .page-body-wrapper .according-menu { + right: unset; + left: 15px; } + +.rtl .page-wrapper.compact-sidebar.compact-wrapper .page-body-wrapper header.main-nav .main-navbar .nav-menu .dropdown .menu-title.active ~ .menu-content { + left: unset; + right: 150px; } + +.rtl .page-wrapper.compact-sidebar.compact-wrapper .page-body-wrapper .page-body { + margin-right: 150px; + margin-left: unset; } + +.rtl .page-wrapper.modern-sidebar.compact-wrapper footer { + margin-left: 30px; } + +.rtl .page-wrapper.modern-sidebar.compact-wrapper header.main-nav.close_icon ~ footer { + margin-left: 30px; } + +.rtl .main-navbar ul.nav-pills .nav-item:last-child { + border-right: 1px solid #e6edef; + border-left: unset; } + +.rtl .product-social li:nth-child(n+2) { + margin-left: unset; + margin-right: 10px; } + +.rtl ul.pro-services li svg { + margin-left: 15px; + margin-right: unset; } + +.rtl .filter-block ul li .form-check { + padding-right: unset; } + .rtl .filter-block ul li .form-check .form-check-input { + float: right; + margin-left: 15px; } + +.rtl .ms-1 { + margin-left: unset; + margin-right: 0.25rem !important; } + +.rtl .f-right { + float: left; } + +.rtl .file-content .form-inline i { + padding-right: unset; + padding-left: 10px; } + +.rtl .file-sidebar .btn svg { + margin-right: unset; + margin-left: 8px; } + +.rtl .form-select { + background-position: left 0.75rem center; + padding: 0.375rem 0.75rem 0.375rem 1.75rem; } + +.rtl .customers ul li + li { + margin-left: unset; + margin-right: -10%; } + +.rtl .project-list .border-tab.nav-tabs .nav-item .nav-link { + padding: 5px 0 5px 30px; } + +.rtl .project-list .btn { + float: left; } + +.rtl .project-list ul li svg { + margin-right: unset; + margin-left: 5px; } + +.rtl .project-box .badge { + right: unset; + left: 15px; } + +.rtl .kanban-board { + float: right; } + +.rtl .kanban-item .kanban-box .customers ul li + li { + margin-left: unset; + margin-right: -10px; } + +.rtl .kanban-item .list li i { + margin-right: unset; + margin-left: 10px; } + +.rtl .user-profile .social-media ul.user-list-social li:nth-child(n+2) { + margin-right: 5px; + margin-left: unset; } + +.rtl .user-profile .follow ul.follow-list li:nth-child(n+2) { + margin-right: 15px; + padding-right: 15px; + padding-left: 0; + margin-left: 0; + border-right: 1px solid #e6edef; + border-left: none; } + +.rtl .user-profile .post-about ul li .icon { + margin-right: 0; + margin-left: 15px; } + +.rtl .user-profile .profile-post .post-body .post-react ul li:nth-child(n+2) { + margin-left: unset; + margin-right: -20px; } + +.rtl .user-profile .profile-post .post-body .post-react h6 { + margin-right: 15px; + margin-left: unset; } + +.rtl .user-profile .profile-post .post-body .post-comment li:nth-child(n+2) { + margin-left: 0; + margin-right: 15px; } + +.rtl .social-tab ul li:nth-child(n+2) { + margin-left: unset; + margin-right: 15px; } + +.rtl .social-tab ul li a svg { + margin-right: unset; + margin-left: 5px; } + +.rtl .social-tab .input-group .form-control { + border-top-left-radius: 0 !important; + border-bottom-left-radius: 0 !important; + border-top-right-radius: 5px !important; + border-bottom-right-radius: 5px !important; } + +.rtl .social-tab .input-group .input-group-text { + border-top-left-radius: 5px !important; + border-bottom-left-radius: 5px !important; + border-top-right-radius: 0 !important; + border-bottom-right-radius: 0 !important; } + +.rtl .invo-profile .text-xl-end { + text-align: left !important; } + +.rtl .page-wrapper.horizontal-wrapper .page-body-wrapper .page-body { + margin-right: 0; } + +.rtl .page-wrapper.horizontal-wrapper .page-body-wrapper footer { + margin-right: 0; } + +.rtl .page-wrapper .page-main-header .main-header-right .nav-right > ul > li:last-child { + margin-left: unset; } + +.rtl .page-wrapper .page-main-header .main-header-right .nav-right .notification-dropdown li .media .notification-bg { + margin-right: unset; + margin-left: 15px; } + +.rtl .page-main-header .main-header-right .nav-right { + text-align: right; } + .rtl .page-main-header .main-header-right .nav-right > ul > li { + margin-left: 20px; + margin-right: unset !important; } + .rtl .page-main-header .main-header-right .nav-right .btn-primary-light svg { + margin-left: 10px; + margin-right: unset; + -webkit-transform: scale(-1); + transform: scale(-1); } + .rtl .page-main-header .main-header-right .nav-right .bookmark-dropdown ul li .bookmark-icon { + margin-left: 15px; + margin-right: unset; } + +.rtl .page-main-header .main-header-right .main-header-left { + margin-right: unset; + border-right: unset; + border-left: 1px solid #e6edef; } + +.rtl .ps-2, .rtl .px-2 { + padding-right: .5rem !important; + padding-left: unset !important; } + +.rtl .page-main-header .main-header-right .nav-right .bookmark-dropdown { + right: -55px; } + .rtl .page-main-header .main-header-right .nav-right .bookmark-dropdown ul li { + text-align: right; } + .rtl .page-main-header .main-header-right .nav-right .bookmark-dropdown ul li .bookmark-icon { + margin-right: unset; + margin-left: 15px; } + +.rtl .page-main-header .main-header-right .nav-right.right-menu ul li { + text-align: right; } + +.rtl .page-main-header .main-header-right .nav-right .form-group .input-group .form-control { + border-left: 1px solid #e6edef; } + +.rtl .flag-icons div .media-body h5, .rtl .feather-icons div .media-body h5 { + margin-right: unset; + margin-left: 5px; } + +.rtl .apexcharts-canvas { + direction: ltr; } + +.rtl .cal-date-widget .cal-info .pe-3 { + padding-right: 1rem !important; } + +.rtl .me-4, .rtl .mx-4 { + margin-left: 1.5rem !important; + margin-right: unset !important; } + +.rtl .pe-4, .rtl .px-4 { + padding-left: 1.5rem !important; + padding-right: unset !important; } + +.rtl .me-1, .rtl .mx-1 { + margin-left: 0.25rem !important; + margin-right: unset !important; } + +.rtl .navs-dropdown .onhover-show-div { + right: 0; } + +.rtl .bitcoin-accordion button[aria-expanded="true"]:before, .rtl .bitcoin-accordion button[aria-expanded="false"]:before { + left: 31px !important; + right: unset !important; } + +.rtl .default-according.style-1 button { + text-align: right; } + .rtl .default-according.style-1 button:before { + left: 20px; + right: unset; } + .rtl .default-according.style-1 button i { + right: 18px; + left: unset; } + +.rtl .default-according .card .card-header i { + right: 18px; + left: unset; } + +.rtl .setting-list { + right: unset; + left: 20px; + float: left; } + .rtl .setting-list .setting-option { + text-align: left; } + +.rtl .dashboard-default-sec .card .card-header ul.week-date li:nth-child(n+2), .rtl .dashboard-2-main .card .card-header ul.week-date li:nth-child(n+2) { + margin-right: 10px; + margin-left: unset; + padding-right: 15px; + padding-left: unset; + border-right: 1px solid #e6edef; + border-left: unset; } + +.rtl .dashboard-default-sec .card .card-header .header-top, .rtl .dashboard-2-main .card .card-header .header-top { + direction: rtl; } + +.rtl .top-sell-sec .card-body .media .media-body { + margin-left: unset; + margin-right: 20px; } + +.rtl .target-sec .card-header ul.target-list li:nth-child(n+2) { + margin-right: 20px; + margin-left: unset; } + +.rtl .activity-sec .activity-timeline .media .activity-line { + right: 37px; + left: unset; } + +.rtl .activity-sec .activity-timeline.update-line .media .media-body ul.timeline-pro li:nth-child(n+2) { + margin-left: unset; + margin-right: 20px; } + +.rtl .activity-timeline .media .media-body { + margin-right: 20px; + margin-left: unset; } + +.rtl .center-content { + padding-left: 50px; + padding-right: unset; } + +.rtl .latest-update-sec .media .media-body, .rtl .recent-order-sec .media .media-body { + margin-right: 20px; + margin-left: unset; } + +.rtl .latest-update-sec table tbody tr td:last-child { + padding-left: 30px; + padding-right: unset; } + +.rtl .latest-update-sec table tbody tr td:first-child { + padding-right: 30px; + padding-left: unset; } + +.rtl .trasaction-sec .transaction-totalbal { + padding-left: unset; + padding-right: 30px; } + +.rtl .ProfileCard-details { + padding-right: 30px; + padding-left: unset; + float: right; } + +.rtl .starter-main .card-body ul { + padding-right: 30px; + padding-left: unset; } + +.rtl .theme-tab .tab-title li a svg { + margin-left: 5px; + margin-right: unset; } + +.rtl .spent .spent-graph .project-budget { + margin-left: 30px; + margin-right: unset; } + +.rtl .support-table table tbody tr td:first-child { + padding-right: 0; + padding-left: unset; } + +.rtl .widget-joins .row .pe-0 { + padding-right: 15px !important; } + +.rtl .widget-joins .row .ps-0 { + padding-left: 15px !important; } + +.rtl .order-box .sub-total .shipping-class .shopping-checkout-option, .rtl .order-box .sub-total .shipping-class span, .rtl .order-box .sub-total li .shopping-checkout-option, .rtl .order-box .sub-total li span, .rtl .order-box .total .shipping-class .shopping-checkout-option, .rtl .order-box .total .shipping-class span, .rtl .order-box .total li .shopping-checkout-option, .rtl .order-box .total li span, .rtl .order-box .qty .shipping-class .shopping-checkout-option, .rtl .order-box .qty .shipping-class span, .rtl .order-box .qty li .shopping-checkout-option, .rtl .order-box .qty li span { + float: left; } + +.rtl .order-box .sub-total li .count, .rtl .order-box .total li .count, .rtl .order-box .qty li .count { + float: left; } + +.rtl .img-paypal { + margin-right: 15px; + margin-left: unset; } + +.rtl .cart .qty-box .input-group .btn { + border-radius: 0 !important; } + +.rtl .todo .action-box { + text-align: left; } + +.rtl .product-qnty fieldset .input-group .input-group-prepend .btn { + border-top-right-radius: 0; + border-bottom-right-radius: 0; } + +.rtl .grid-options { + margin-right: 10px; + margin-left: unset; } + .rtl .grid-options ul li a .line-grid-1 { + right: 12px; + left: unset; } + .rtl .grid-options ul li a .line-grid-2 { + right: 18px; + left: unset; } + .rtl .grid-options ul li a .line-grid-3 { + right: 36px; + left: unset; } + .rtl .grid-options ul li a .line-grid-4 { + right: 42px; + left: unset; } + .rtl .grid-options ul li a .line-grid-5 { + right: 48px; + left: unset; } + .rtl .grid-options ul li a .line-grid-6 { + right: 66px; + left: unset; } + .rtl .grid-options ul li a .line-grid-7 { + right: 72px; + left: unset; } + .rtl .grid-options ul li a .line-grid-8 { + right: 78px; + left: unset; } + .rtl .grid-options ul li a .line-grid-9 { + right: 84px; + left: unset; } + .rtl .grid-options ul li a .line-grid-10 { + right: 103px; + left: unset; } + .rtl .grid-options ul li a .line-grid-11 { + right: 109px; + left: unset; } + .rtl .grid-options ul li a .line-grid-12 { + right: 115px; + left: unset; } + .rtl .grid-options ul li a .line-grid-13 { + right: 121px; + left: unset; } + .rtl .grid-options ul li a .line-grid-14 { + right: 127px; + left: unset; } + .rtl .grid-options ul li a .line-grid-15 { + right: 133px; + left: unset; } + +.rtl .product-filter.new-products .owl-theme .owl-nav { + left: 0; + right: unset; } + +.rtl .product-filter.new-products .owl-theme .owl-item .item .product-box .product-details.text-start { + text-align: left !important; } + +.rtl .pro-filter-sec .product-sidebar { + margin-right: unset; + margin-left: 30px; } + +.rtl .product-sidebar .filter-section .card .card-header h6 .pull-right i { + left: auto; + right: unset; } + +.rtl .feature-products form .form-group i { + left: 30px; + right: unset; } + +.rtl .product-wrapper-grid.list-view .product-box .product-details { + text-align: right; } + +.rtl .page-wrapper .page-body-wrapper .page-header .bookmark { + margin-right: auto; + text-align: left; } + +.rtl .prooduct-details-box .btn { + left: 15px; + right: unset; } + +.rtl .bookmark ul li .search-form .form-control-search { + left: -50px; + right: unset; } + .rtl .bookmark ul li .search-form .form-control-search:before { + right: 50px; + left: unset; } + .rtl .bookmark ul li .search-form .form-control-search:after { + right: 20px; + left: unset; } + +.rtl .bookmark ul li:first-child { + padding-right: 0; + padding-left: 5px; } + +.rtl .bookmark ul li:nth-child(n+2) { + margin-left: unset; + margin-right: 8px; } + +.rtl .order-box .title-box span { + text-align: left; } + +.rtl .order-box .qty li span { + text-align: left; } + +.rtl .order-box .sub-total li .count { + text-align: left; } + +.rtl .order-box .sub-total .shipping-class .shopping-checkout-option label { + text-align: left; } + +.rtl .checkout .form-check { + padding-right: unset; } + .rtl .checkout .form-check .form-check-input { + float: right; + margin-left: 10px; } + +.rtl .checkout .checkbox_animated, .rtl .checkout .radio_animated { + margin: 0; + margin-left: 10px; } + +.rtl .me-0, .rtl .mx-0 { + margin-left: 0 !important; + margin-right: unset !important; } + +.rtl .footer .pull-right { + float: left; } + +.rtl .checkbox_animated, .rtl .radio_animated { + margin: 0 8px 0 16px; } + +.rtl .button.remove { + left: -10px; + right: unset; } + +.rtl .code-box-copy__btn { + left: 11px; + right: unset; } + +.rtl ul.nav-menus { + border-bottom: none; } + +.rtl ul.notification-dropdown.onhover-show-div li { + text-align: right; } + +.rtl .badge + .badge { + margin-right: 5px; + margin-left: unset; } + +.rtl .offset-xl-3 { + margin-right: 25%; + margin-left: unset; } + +.rtl .m-l-10 { + margin-right: 10px !important; + margin-left: unset !important; } + +.rtl .m-r-20 { + margin-left: 20px; + margin-right: unset; } + +.rtl .m-r-30 { + margin-left: 30px; + margin-right: unset; } + +.rtl .m-r-5 { + margin-left: 5px; + margin-right: unset; } + +.rtl .text-start { + text-align: right !important; } + +.rtl .m-r-10 { + margin-left: 10px; + margin-right: unset; } + +.rtl .pe-3, .rtl .px-3 { + padding-left: 1rem !important; + padding-right: unset !important; } + +.rtl .p-r-0 { + padding-left: 0; + padding-right: 15px; } + +.rtl .m-l-20 { + margin-right: 20px !important; + margin-left: unset !important; } + +.rtl .ps-3, .rtl .px-3 { + padding-right: 1rem !important; } + +.rtl .b-r-light { + border-left: 1px solid #e6edef !important; + border-right: unset !important; } + +.rtl .float-end { + float: left !important; } + +.rtl .float-start { + float: right !important; } + +.rtl .text-end { + text-align: left !important; } + +.rtl .border-right { + border-left: 1px solid #dee2e6 !important; + border-right: unset !important; } + +.rtl .pe-0, .rtl .px-0 { + padding-left: 0 !important; + padding-right: unset !important; } + +.rtl .ps-0, .rtl .px-0 { + padding-right: 0 !important; + padding-left: unset !important; } + +.rtl .ms-0 { + margin-left: unset !important; + margin-right: 0.25rem !important; } + +.rtl .owl-carousel { + direction: ltr; } + +.rtl .btn-group > .btn:not(:last-child):not(.dropdown-toggle), .rtl .btn-group > :not(:last-child) > .btn { + border-top-left-radius: 0; + border-bottom-left-radius: 0; + border-top-right-radius: 0.25rem; + border-bottom-right-radius: 0.25rem; } + +.rtl .btn-group > .btn:not(:first-child) { + border-top-left-radius: 0.25rem; + border-bottom-left-radius: 0.25rem; + border-top-right-radius: 0; + border-bottom-right-radius: 0; } + +.rtl .btn-group > .btn:nth-child(2) { + border-radius: 0 !important; } + +.rtl .btn-group .btn-group > :not(:first-child) > .btn { + border-top-left-radius: 0.25rem; + border-bottom-left-radius: 0.25rem; + border-top-right-radius: 0; + border-bottom-right-radius: 0; } + +.rtl .btn-group .btn + .btn, .rtl .btn-group .btn + .btn-group { + margin-right: -1px; } + +.rtl .btn-group .btn-group + .btn, .rtl .btn-group .btn-group + .btn-group { + margin-right: -1px; } + +.rtl .btn-group .btn-group-vertical .btn + .btn, .rtl .btn-group .btn-group-vertical .btn + .btn-group { + margin-right: -1px; } + +.rtl .btn-group .btn-group-vertical .btn-group + .btn, .rtl .btn-group .btn-group-vertical .btn-group + .btn-group { + margin-right: -1px; } + +.rtl .me-3, .rtl .mx-3 { + margin-right: unset !important; + margin-left: 1rem !important; } + +.rtl .me-5, .rtl .mx-5 { + margin-left: 3rem !important; + margin-right: unset !important; } + +.rtl .ms-3, .rtl .mx-3 { + margin-right: 1rem !important; + margin-left: unset !important; } + +.rtl .m-r-15 { + margin-left: 15px; + margin-right: unset; } + +.rtl .b-l-light { + border-right: 1px solid #e6edef !important; + border-left: unset !important; } + +.rtl .p-l-0 { + padding-left: unset; + padding-right: 0px; } + +.rtl .ps-4 { + padding-right: 1.5rem !important; + padding-left: unset !important; } + +.rtl .me-2 { + margin-left: 0.5rem !important; + margin-right: unset !important; } + +.rtl .ms-2 { + margin-right: 0.5rem !important; + margin-left: unset !important; } + +.rtl .pe-2 { + padding-right: unset !important; + padding-left: 0.5rem !important; } + +.rtl .alert { + text-align: right; } + +.rtl .pull-right { + float: left; } + +.rtl .form-inline .form-group { + margin-left: 15px; + margin-right: 0; } + +.rtl .form-select { + background-position: left 0.75rem center; } + +.rtl .card { + text-align: right; } + .rtl .card .card-header h5:not(.mb-0) { + float: right; } + .rtl .card .card-header span { + clear: both; } + .rtl .card .card-header .card-header-right { + left: 20px; + right: unset; } + .rtl .card .card-header .card-header-right .card-option { + text-align: left; } + .rtl .card .card-header .card-header-right .card-option.list-unstyled { + padding-right: 0; + padding-left: unset; } + .rtl .card .card-header .pull-left { + float: right; } + .rtl .card.full-card { + left: 0; + right: unset; } + .rtl .card .card-body .alert svg { + margin-left: 4px; + margin-right: unset; } + .rtl .card .card-body .value-left { + margin-left: 30px; + margin-right: unset; } + .rtl .card .card-body .square { + margin-left: 5px; + margin-right: unset; } + +.rtl .modal-header .btn-close { + margin-left: 0; } + +.rtl .modal-footer > :not(:first-child) { + margin-right: .50rem; + margin-left: 0; } + +.rtl .theme-close { + right: unset; + left: 0; } + +.rtl .form-inline .form-group .col-form-label { + margin-left: 5px; + margin-right: 0; } + +.rtl .modal-header .btn-close, .rtl .modal-footer .btn-close, .rtl .modal-content .btn-close { + left: 25px; + right: unset; } + +.rtl .alert-dismissible .btn-close { + right: unset; + left: 0; } + +.rtl .dismiss-text .alert .btn-close { + left: 50px; } + +.rtl .card-body .alert svg ~ p { + padding-right: 20px; + padding-left: unset; } + +.rtl .default-according .card .card-header i { + margin-left: 5px; + margin-right: unset; } + +.rtl .was-validated .form-select:invalid, .rtl .form-select.is-invalid { + padding-right: calc(1.5em + 0.75rem); + background-position: top calc(0.375em + 0.1875rem) left calc(0.375em + 0.1875rem); } + +.rtl .was-validated .form-check { + padding-left: 1.25rem; } + +.rtl .was-validated .form-control:invalid, .rtl .form-control.is-invalid, .rtl .was-validated .form-control:valid, .rtl .form-control.is-valid { + background-position: left calc(0.375em + 0.1875rem) center; + padding-left: calc(1.5em + 0.75rem); } + +.rtl .was-validated .form-control:invalid { + padding-right: 10px; } + +.rtl .breadcrumb-item + .breadcrumb-item { + padding-right: 0.5rem; + padding-left: unset; } + .rtl .breadcrumb-item + .breadcrumb-item::before { + padding-left: 0.5rem; + padding-right: unset; + float: right; } + +.rtl code[class*=language-], .rtl pre[class*=language-] { + text-align: right; } + +.rtl .input-group-prepend { + margin-left: -1px; + margin-right: unset; } + +.rtl .input-group > .form-control:not(:last-child), .rtl .rtl .input-group > .custom-select:not(:last-child) { + border-top-left-radius: 0; + border-bottom-left-radius: 0; + border-top-right-radius: 0; + border-bottom-right-radius: 0; } + +.rtl .input-group > .input-group-prepend > .btn, .rtl .input-group > .input-group-prepend > .input-group-text, .rtl .input-group > .input-group-append:not(:last-child) > .btn, .rtl .input-group > .input-group-append:not(:last-child) > .input-group-text, .rtl .input-group > .input-group-append:last-child > .btn:not(:last-child):not(.dropdown-toggle), .rtl .input-group > .input-group-append:last-child > .input-group-text:not(:last-child) { + border-top-left-radius: 0; + border-bottom-left-radius: 0; + border-top-right-radius: 0.25rem; + border-bottom-right-radius: 0.25rem; } + +.rtl .input-group > .input-group-append > .btn, .rtl .input-group > .input-group-append > .input-group-text, .rtl .input-group > .input-group-prepend:not(:first-child) > .btn, .rtl .input-group > .input-group-prepend:not(:first-child) > .input-group-text, .rtl .input-group > .input-group-prepend:first-child > .btn:not(:first-child), .rtl .input-group > .input-group-prepend:first-child > .input-group-text:not(:first-child) { + border-top-left-radius: 0; + border-bottom-left-radius: 0; + border-top-right-radius: 0; + border-bottom-right-radius: 0; } + +.rtl .border-tab.nav-left .nav-link { + text-align: left; } + +.rtl .socialprofile .social-group ul li:nth-child(4) { + margin-right: -22px; } + +.rtl .social-status form .form-group .form-control-social { + padding-right: 15px; + padding-left: unset; } + +.rtl .social-status .media .social-status { + right: 35px; + left: unset; } + +.rtl .social-chat .other-msg { + margin-right: 40px; + margin-left: unset; } + +.rtl .social-chat .media-body:before { + left: 100%; + right: unset; + border-left: 7px solid var(-semi-dark); + border-right: unset; } + +.rtl .social-chat .media-body:after { + left: 100%; + right: unset; + border-left: 7px solid #fff; + border-right: unset; } + +.rtl .timeline-content .comment-number i { + margin-left: 20px; + margin-right: unset; } + +.rtl .photos ul li { + margin-left: 10px; + margin-right: unset; } + +.rtl .avatar-showcase .friend-pic { + margin-left: 8px; + margin-right: unset; } + +.rtl .avatar-showcase .pepole-knows ul li { + margin-left: 21px; + margin-right: unset; } + .rtl .avatar-showcase .pepole-knows ul li:last-child { + margin-left: 0; } + +.rtl .edit-profile .profile-title .media .media-body { + margin-right: 25px; + margin-left: unset; } + +.rtl .list-persons .profile-mail .email-general ul { + padding-right: unset; + padding-left: 20px; } + .rtl .list-persons .profile-mail .email-general ul li span { + float: left; } + +.rtl .contacts-tabs .nav-pills { + border-left: 1px solid #e6edef; + border-right: unset; } + +.rtl .calendar-basic #menu-navi .menu-navi-right .move-btn { + margin-right: 15px; + margin-left: unset; + direction: ltr; } + +.rtl .calendar-basic #dropdownMenu-calendarType i:last-child { + margin-right: 15px; + margin-left: unset; } + +.rtl .calendar-basic #dropdownMenu-calendarType i:first-child { + margin-right: unset; + margin-left: 15px; } + +.rtl .calendar-basic .lnb-calendars { + float: left; } + +.rtl .calendar-basic input[type='checkbox'].tui-full-calendar-checkbox-round + span { + margin-left: 8px; + margin-right: unset; } + +.rtl .calendar-basic input[type='checkbox'].tui-full-calendar-checkbox-square + span { + margin-left: 5px; } + +.rtl .faq-form .search-icon { + left: 12px; + right: unset; } + +.rtl .faq-widgets .media-body p { + padding-left: 20px; + padding-right: unset; } + +.rtl .header-faq, .rtl .faq-title { + text-align: right; } + +.rtl .faq-accordion .faq-header svg { + left: 20px; + right: unset; } + +.rtl .faq-accordion .card .card-header h5 { + padding-right: 25px; + padding-left: unset; } + +.rtl .faq-accordion .card .btn-link svg { + margin-left: 10px; + margin-right: unset; + right: 20px; + left: unset; } + +.rtl .navigation-option ul li { + padding: 15px 0 15px 15px; } + .rtl .navigation-option ul li a { + padding-right: 40px; + padding-left: unset; } + .rtl .navigation-option ul li a svg { + right: 15px; + left: unset; } + +.rtl .updates-faq { + margin-right: unset; + margin-left: 30px; } + +.rtl .browse .browse-articles span svg { + margin-left: 10px; + margin-right: unset; } + +.rtl .browse .browse-articles ul li h5 { + padding-left: unset; + padding-right: 20px; } + .rtl .browse .browse-articles ul li h5 svg { + left: unset; + right: 0; + margin-right: unset; + margin-left: 10px; } + +.rtl .categories .learning-header { + padding-right: 30px; + padding-left: unset; } + +.rtl .main .langChoice { + left: 30px; + right: unset; } + +.rtl .pricing-block svg { + direction: ltr; } + +.rtl .pricing-block .pricing-list ul li h6 span { + margin-right: 5px; + margin-left: unset; } + +.rtl p.data-attributes svg { + margin-left: 10px; + margin-right: unset; } + +.rtl .avatars .avatar { + margin-left: 10px; + margin-right: unset; } + .rtl .avatars .avatar:last-child { + margin-left: 0; } + .rtl .avatars .avatar .status { + left: 4px; + right: unset; } + +.rtl .customers.avatar-group { + margin-left: 30px; + margin-right: unset; } + +.rtl .customers ul li + li { + margin-left: unset; + margin-right: -22px; } + +.rtl .card .card-header h5 { + float: none !important; } + +.rtl .dashboard-default-sec .latest-update-sec table tbody tr td img, .rtl .dashboard-default-sec .recent-order-sec table tbody tr td img { + margin-left: 1rem !important; + margin-right: unset !important; } + +.rtl .dashboard-2-main .card .card-body .media img { + margin-left: 5px; + margin-right: unset; } + +.rtl .joined-status { + position: absolute; + top: 23px; + right: unset; + left: 85px; } + +.rtl .likes-page { + padding-right: 30px; } + +.rtl .activity-social .border-recent-success { + border-right: 3px solid #1b4c43; + border-left: None; } + +.rtl .activity-social .border-recent-warning { + border-right: 3px solid #e2c636; + border-left: None; } + +.rtl .activity-social .border-recent-info { + border-right: 3px solid #717171; + border-left: None; } + +.rtl .activity-social .border-recent-danger { + border-right: 3px solid #d22d3d; + border-left: None; } + +.rtl .activity-social .border-recent-secondary { + border-right: 3px solid #ba895d; + border-left: None; } + +.rtl .activity-social ul li { + padding-right: 15px; } + +.rtl .social-user-card .social-user-top-content .customers ul li:last-child { + margin-right: 30px; } + +.rtl .knob-chart .chart-clock-main .clock-small { + right: 10px; + left: unset; } + +.rtl .weather-widget-two .top-bg-whether { + left: -28px; + right: unset; } + +.rtl .weather-widget-two .bottom-whetherinfo svg { + left: unset; + right: -35px; } + +.rtl .mobile-clock-widget .bg-svg { + left: unset; + right: -25px; } + +.rtl .todo .todo-list-wrapper .mark-all-tasks { + left: 30px; + right: unset; } + .rtl .todo .todo-list-wrapper .mark-all-tasks .btn-label { + margin-left: 5px; + margin-right: unset; } + +.rtl .todo .todo-list-wrapper #todo-list li .task-container .task-action-btn { + text-align: left; } + +.rtl .todo .notification-popup { + left: 10px; + right: unset; } + +.rtl .todo-options .badges-todo h6 { + margin-left: 10px; + margin-right: unset; } + .rtl .todo-options .badges-todo h6:last-child { + margin-left: 0; } + +.rtl .todo-list-btns .dropdown-basic .btn-group .form-group .checkbox { + padding-right: 14px; + border-top-right-radius: 25px; + border-bottom-right-radius: 25px; + padding-left: unset; + border-top-left-radius: unset; + border-bottom-left-radius: unset; } + +.rtl .todo-list-btns .dropdown-basic .separated-btn { + margin-right: -6px; + margin-left: unset; } + .rtl .todo-list-btns .dropdown-basic .separated-btn .btn { + border-top-left-radius: 25px; + border-bottom-left-radius: 25px; } + +.rtl .search-todo .dropdown-basic .btn-group { + margin-left: 18px; + margin-right: unset; } + +.rtl .sticky-note .note { + float: right; } + +.rtl .mega-menu .list-unstyled div a { + padding: 8px 0 8px 35px; } + .rtl .mega-menu .list-unstyled div a:hover { + padding: 8px 10px 8px 35px; } + +.rtl #testimonial .owl-stage-outer .owl-stage .owl-item .slide--item .media .me-3, .rtl #testimonial .owl-stage-outer .owl-stage .owl-item .slide--item .media .mx-3 { + margin-right: 1rem !important; + margin-left: unset !important; } + +.rtl .needs-validation .input-group > .form-control:not(:last-child), .rtl .needs-validation .input-group > .custom-select:not(:last-child), .rtl .form-row .input-group > .form-control:not(:last-child), .rtl .form-row .input-group > .custom-select:not(:last-child) { + border-top-left-radius: 0.25rem; + border-bottom-left-radius: 0.25rem; + border-top-right-radius: 0; + border-bottom-right-radius: 0; } + +.rtl .form-check { + padding-right: 1.25rem; + padding-left: unset; } + +.rtl .mega-menu .default-according .card .btn-link { + text-align: right; } + +.rtl .mega-menu .default-according.style-1 button[aria-expanded="true"]:before, .rtl .mega-menu .default-according.style-1 button[aria-expanded="false"]:before { + right: unset; + left: 20px; } + +.rtl .email-wrap .email-app-sidebar .main-menu > li { + text-align: right; } + .rtl .email-wrap .email-app-sidebar .main-menu > li a i { + margin-right: unset; + margin-left: 10px; } + +.rtl .email-wrap .email-app-sidebar ul { + padding-right: 0; } + +.rtl .email-wrap .email-content .email-top .user-emailid:after { + float: left; } + +.rtl .email-wrap .email-body .attachment ul li:nth-child(n+2) { + margin-left: unset; + margin-right: 10px; } + +.rtl .email-wrap .actions { + text-align: left; } + .rtl .email-wrap .actions li:nth-child(n+2) { + margin-right: 15px; + margin-left: unset; } + +.rtl .email-wrap .email-right-aside .email-body .media .media-body .inbox svg { + margin-right: unset; + margin-left: 10px; } + +.rtl .email-wrap .email-right-aside .email-body .inbox svg { + margin-right: unset; + margin-left: 10px; } + +.rtl .email-wrap .email-right-aside .email-body .inbox .media .media-body span { + left: 20px; + right: unset; } + +.rtl .email-wrap .email-right-aside .email-profile .inbox p { + margin-right: 15px; + margin-left: unset; } + +.rtl .calendar-wrap .fc { + direction: rtl; + text-align: right; } + .rtl .calendar-wrap .fc .fc-toolbar .fc-left { + float: right; } + .rtl .calendar-wrap .fc .fc-toolbar .fc-right { + float: left; } + .rtl .calendar-wrap .fc .fc-toolbar > * > * { + margin-left: 0; } + +.rtl .calendar-wrap .fc-events-container { + text-align: right; } + +.rtl .calendar-wrap .fc-scroller { + margin-right: unset; + margin-left: -17px; } + +.rtl .fc-agenda-view .fc-day-grid .fc-row { + margin-right: 0 !important; } + +.rtl .fc-unthemed .fc-row { + margin-right: 0 !important; } + +.rtl .btn-group-showcase .btn-group { + margin-left: 20px; + margin-right: unset; } + +.rtl .btn-showcase .btn { + margin-right: unset; + margin-left: 18px; } + +.rtl .btn-square.dropdown-toggle { + border-top-left-radius: 0.25rem !important; + border-bottom-left-radius: 0.25rem !important; + border-top-right-radius: 0 !important; + border-bottom-right-radius: 0 !important; } + +.rtl.button-builder ul.the-icons li { + float: right; } + +.rtl.button-builder .color-slelector { + float: right; } + +.rtl.button-builder .custom-button-color .form-control { + border-radius: 0 5px 5px 0; } + .rtl.button-builder .custom-button-color .form-control.pull-left { + float: right; } + +.rtl.button-builder .hint-label { + float: right; + padding: 4px 020px 0 0; } + +.rtl #customer-review .owl-item img { + -webkit-box-ordinal-group: 3; + -ms-flex-order: 2; + order: 2; } + +.rtl .options > div { + margin: 0 0 8px 8px; } + +.rtl .modal-dialog .modal-content .modal-body p a { + margin-left: 0; } + +.rtl .drag-box fieldset .component .form-group .text-lg-start { + text-align: right !important; } + +.rtl .drag-box fieldset .component .form-group .input-group .input-group-prepend .btn, +.rtl .drag-box fieldset .component .form-group .input-group .input-group-prepend .input-group-text { + border-top-left-radius: 0; + border-bottom-left-radius: 0; + border-top-right-radius: 0.25rem; + border-bottom-right-radius: 0.25rem; } + +.rtl .drag-box fieldset .component .form-group .input-group .input-group-prepend .btn-right, +.rtl .drag-box fieldset .component .form-group .input-group .input-group-prepend .checkbox-radius { + border-top-left-radius: 0.25rem; + border-bottom-left-radius: 0.25rem; + border-top-right-radius: 0; + border-bottom-right-radius: 0; } + +.rtl .drag-box fieldset .component .form-group .input-group #prependedcheckbox { + border-top-right-radius: 0 !important; + border-bottom-right-radius: 0 !important; } + +.rtl .drag-box fieldset .component .form-group .input-group #appendedcheckbox { + border-right-color: #efefef; } + +.rtl .drag-box fieldset .component .form-group .input-group #buttondropdown { + margin-right: unset; + margin-left: -1px; } + +.rtl .drag form { + text-align: right; } + .rtl .drag form input { + text-align: right; } + .rtl .drag form label { + text-align: right !important; } + .rtl .drag form .form-group .input-group .input-group-prepend .btn, + .rtl .drag form .form-group .input-group .input-group-prepend .input-group-text { + border-top-left-radius: 0; + border-bottom-left-radius: 0; + border-top-right-radius: 0.25rem; + border-bottom-right-radius: 0.25rem; } + .rtl .drag form .form-group .input-group .input-group-prepend .btn-right, + .rtl .drag form .form-group .input-group .input-group-prepend .checkbox-radius { + border-top-left-radius: 0.25rem; + border-bottom-left-radius: 0.25rem; + border-top-right-radius: 0; + border-bottom-right-radius: 0; } + .rtl .drag form .form-group .input-group #buttondropdown { + margin-right: unset; + margin-left: -1px; } + +.rtl .draggable label { + text-align: right; } + +.rtl .form-builder-column .tab-content .tab-pane .theme-form .ui-draggable .input-group > .input-group-prepend > .input-group-text { + border-top-left-radius: 0; + border-bottom-left-radius: 0; + border-top-right-radius: 0.25rem; + border-bottom-right-radius: 0.25rem; } + +.rtl .form-builder-column #pills-tabContent .theme-form .form-group .input-group #buttondropdown, .rtl .form-builder-column #pills-tabContent .theme-form .ui-draggable .input-group #buttondropdown { + margin-right: unset; + margin-left: 15px; } + +.rtl .form-builder-column #pills-tabContent .theme-form .form-group .input-group .input-group-btn button, .rtl .form-builder-column #pills-tabContent .theme-form .ui-draggable .input-group .input-group-btn button { + border-radius: 4px !important; } + +.rtl .form-horizontal.theme-form fieldset .tab-content .tab-pane .component .form-group .text-lg-start { + text-align: right !important; } + +.rtl .form-horizontal.theme-form fieldset .tab-content .tab-pane .component .form-group .input-group .input-group-prepend .btn, +.rtl .form-horizontal.theme-form fieldset .tab-content .tab-pane .component .form-group .input-group .input-group-prepend .input-group-text { + border-top-left-radius: 0; + border-bottom-left-radius: 0; + border-top-right-radius: 0.25rem; + border-bottom-right-radius: 0.25rem; } + +.rtl .form-horizontal.theme-form fieldset .tab-content .tab-pane .component .form-group .input-group .input-group-prepend .btn-right, +.rtl .form-horizontal.theme-form fieldset .tab-content .tab-pane .component .form-group .input-group .input-group-prepend .checkbox-radius { + border-top-left-radius: 0.25rem; + border-bottom-left-radius: 0.25rem; + border-top-right-radius: 0; + border-bottom-right-radius: 0; } + +.rtl .form-horizontal.theme-form fieldset .tab-content .tab-pane .component .form-group .input-group #prependedcheckbox { + border-top-right-radius: 0 !important; + border-bottom-right-radius: 0 !important; } + +.rtl .form-horizontal.theme-form fieldset .tab-content .tab-pane .component .form-group .input-group #appendedcheckbox { + border-right-color: #efefef; } + +.rtl .form-builder .component .form-group .input-group #buttondropdown { + margin-right: unset; + margin-left: -1px; } + +.rtl .form-builder .component .form-group .pl-md-radios { + padding-right: 37px; + padding-left: unset; } + +.rtl .page-wrapper .page-main-header.open { + margin-right: 0; } + +.rtl .page-wrapper .page-body-wrapper .logo-wrapper a { + -webkit-transform: translate(-64px); + transform: translate(-64px); } + +.rtl .vertical .page-main-header { + margin-right: 0 !important; + margin-left: unset !important; } + +.rtl .vertical-menu-mt .page-header div .pull-right { + float: left; } + +.rtl .sm li { + direction: rtl; + text-align: right; } + +.rtl .vertical-menu-main #main-nav #main-menu li a svg { + margin-left: 8px; + margin-right: unset; } + +.rtl .pixelstrap a .sub-arrow { + right: auto; + left: 5px; } + +.rtl .pixelstrap a:hover, .rtl .pixelstrap a:focus, .rtl .pixelstrap a:active { + padding-left: 25px; + padding-right: unset; } + +.rtl .pixelstrap ul a .sub-arrow { + left: 15px; + right: unset; } + +@media (max-width: 1470px) { + .rtl .edit-profile .profile-title .media .media-body { + margin-right: unset; } } + +@media (min-width: 1200px) { + .rtl .pixelstrap ul:not(.mega-menu) li a:before { + left: unset; + right: 20px; } + .rtl .pixelstrap a .sub-arrow { + right: unset; + left: -6px; } + .rtl .pixelstrap li { + float: right; } + .rtl .page-wrapper .mega-menu-header .vertical-menu-main { + left: 390px; + right: unset; } } + +.rtl .search-page .nav i { + margin-left: 10px; + margin-right: unset; } + +.rtl .product-stts { + display: inline-block; } + .rtl .product-stts .ms-0 { + margin-right: 0.25rem !important; + margin-left: unset !important; } + +.rtl .search-form input { + padding: 10px 70px 10px 10px; + text-align: right; } + +.rtl .icon-hover-bottom .icon-title { + text-align: right; } + +.rtl .icon-hover-bottom .icon-popup .icon-last .form-inline .form-group .btn { + margin-right: 15px; + margin-left: unset; } + +.rtl .icon-lists div i { + margin: 0 10px 0 15px; } + +.rtl .icon-lists ul { + padding-right: 0; } + +.rtl ul.icon-lists { + padding-right: 30px; } + +.rtl .floated-customizer-btn.third-floated-btn { + left: 35px; + right: unset; } + +.rtl .floated-customizer-btn > span { + margin-right: 10px; } + +.rtl .floated-customizer-panel { + text-align: right; + left: -85px; + right: unset; } + .rtl .floated-customizer-panel.active { + left: 35px; + right: unset; } + .rtl .floated-customizer-panel .close-customizer-btn { + left: 30px; + right: unset; } + .rtl .floated-customizer-panel ul { + padding-right: 0; } + +.rtl .form-builder-2-header > div nav { + float: left; } + +.rtl .radio label { + padding-left: 0; + padding-right: 15px; } + .rtl .radio label::before { + right: 0; + margin-right: -20px; + left: unset; } + +.rtl .page-wrapper .page-body-wrapper .page-header .row h3 { + text-align: right; } + +.rtl .page-main-header { + margin-right: 0; + margin-left: unset; } + .rtl .page-main-header .main-header-right .nav-right { + text-align: left; } + .rtl .page-main-header .main-header-right .nav-right .profile-dropdown li svg { + margin-right: unset; + margin-left: 10px; } + .rtl .page-main-header .main-header-right .nav-right > ul > li:before { + right: 0; + left: unset; } + .rtl .page-main-header .main-header-right .nav-right > ul > li .dot { + left: 17px; + right: unset; } + .rtl .page-main-header .main-header-right .nav-right > ul > li.onhover-dropdown:hover .onhover-show-div:before { + right: 10px; + left: unset; } + .rtl .page-main-header .main-header-right .nav-right > ul > li.onhover-dropdown:hover .onhover-show-div:after { + right: 10px; + left: unset; } + .rtl .page-main-header .main-header-right .nav-right > ul > li i.ms-2 { + margin-right: 0.5rem !important; + margin-left: unset !important; } + .rtl .page-main-header .main-header-right .nav-right .language-dropdown { + text-align: right; } + .rtl .page-main-header .main-header-right .nav-right .language-dropdown li a i { + margin-left: 10px; } + .rtl .page-main-header .main-header-right .nav-right .profile-dropdown li a svg { + margin-right: unset; + margin-left: 10px; } + .rtl .page-main-header .main-header-right .nav-right .chat-dropdown { + left: 0; + right: unset; } + .rtl .page-main-header .main-header-right .nav-right .notification-dropdown { + left: -20px !important; + right: unset !important; } + .rtl .page-main-header .main-header-right .nav-right ul li:last-child { + margin-left: 0; + margin-right: unset; } + .rtl .page-main-header .main-header-right .mobile-sidebar { + padding-left: 20px; + padding-right: unset; } + .rtl .page-main-header.open { + margin-right: 0; } + +.rtl ul.notification-dropdown.onhover-show-div { + right: initial; + left: -30px; + padding: 0; } + .rtl ul.notification-dropdown.onhover-show-div:before { + right: inherit !important; + left: 35px !important; } + .rtl ul.notification-dropdown.onhover-show-div:after { + right: inherit !important; + left: 35px !important; } + .rtl ul.notification-dropdown.onhover-show-div li { + margin-right: 0 !important; } + .rtl ul.notification-dropdown.onhover-show-div li span.badge { + margin-left: unset !important; } + .rtl ul.notification-dropdown.onhover-show-div li span svg { + margin-right: unset; } + .rtl ul.notification-dropdown.onhover-show-div li .notification-icon { + margin-left: 20px; + margin-right: unset; } + +.rtl .alert i { + margin-left: 5px; + margin-right: 0; } + +.rtl .inverse { + padding: 13px 65px 13px 20px; } + .rtl .inverse i { + left: unset; + right: 0; } + +.rtl .alert-primary.inverse:before { + border-right: 7px solid #24695c; + right: 54px; + left: unset; + border-left: unset; } + +.rtl .alert-secondary.inverse:before { + border-right: 7px solid #ba895d; + right: 54px; + left: unset; + border-left: unset; } + +.rtl .alert-success.inverse:before { + border-right: 7px solid #1b4c43; + right: 54px; + left: unset; + border-left: unset; } + +.rtl .alert-danger.inverse:before { + border-right: 7px solid #d22d3d; + right: 54px; + left: unset; + border-left: unset; } + +.rtl .alert-warning.inverse:before { + border-right: 7px solid #e2c636; + right: 54px; + left: unset; + border-left: unset; } + +.rtl .alert-info.inverse:before { + border-right: 7px solid #717171; + right: 54px; + left: unset; + border-left: unset; } + +.rtl .alert-light.inverse:before { + border-right: 7px solid #e6edef; + right: 54px; + left: unset; + border-left: unset; } + +.rtl .alert-dark.inverse:before { + border-right: 7px solid #2c323f; + right: 54px; + left: unset; + border-left: unset; } + +.rtl .alert-dismissible .close { + left: 0; + right: unset; } + .rtl .alert-dismissible .close span { + padding-left: 0; + padding-right: unset; } + +.rtl .icofont.icofont-truck { + display: inline-block; } + +.rtl .job-search .media .media-body .job-apply-btn { + left: 30px; + right: unset; } + +.rtl .job-search .media ul.rating { + margin-right: 10px; + margin-left: unset; } + +.rtl .blog-box .blog-details { + padding-left: 20px; + padding-right: unset; + text-align: right; } + .rtl .blog-box .blog-details .blog-social { + padding-right: 0; } + .rtl .blog-box .blog-details .blog-social li:nth-child(n+2) { + margin-right: 20px; + padding-right: 20px; + border-right: 1px solid #e6edef; + border-left: none; + padding-left: unset; + margin-left: unset; } + +.rtl .blog-box .blog-details-main .blog-social li { + border-left: 1px solid #e6edef; + border-right: unset; } + .rtl .blog-box .blog-details-main .blog-social li:last-child { + border-left: none; } + +.rtl .blog-box .blog-date span { + font-size: 36px; + font-weight: 500; + padding-left: 5px; + padding-right: unset; } + +.rtl .blog-box.blog-shadow .blog-details { + padding-right: 40px; } + +.rtl .blog-box .blog-details-second .detail-footer ul.sociyal-list li i { + margin-left: 5px; + margin-right: unset; } + +.rtl .blog-box .blog-details-second .detail-footer ul.sociyal-list li:nth-child(n+2) { + margin-right: 15px; + padding-right: 15px; + border-right: 1px solid #e6edef; + margin-left: unset; + padding-left: unset; + border-left: unset; } + +.rtl .comment-box .media img { + margin-left: 45px; + margin-right: unset !important; } + +.rtl .comment-box .media h6 { + text-align: right; } + +.rtl .comment-box ul ul { + margin-right: 135px; + margin-left: unset; + padding-right: 0; } + +.rtl .comment-box .comment-social { + text-align: left; + margin-right: unset; } + .rtl .comment-box .comment-social li:nth-child(n+2) { + margin-right: 20px; + padding-right: 20px; + border-right: 1px solid #e6edef; + margin-left: unset; + padding-left: unset; + border-left: unset; } + +.rtl .location-checkbox span { + padding-right: 33px; + padding-left: unset; } + +.rtl .support-ticket .pro-gress ul li span i { + margin-right: 10px; + margin-left: unset; } + +.rtl .bookmark-wrap .left-bookmark ul li button { + text-align: right; } + +.rtl .bookmark-tabcontent .tab-content .card .card-header ul li + li { + margin-right: 5px; + margin-left: unset; } + +.rtl .bookmark-tabcontent .details-bookmark .bookmark-card.card .title-bookmark { + text-align: right; } + +.rtl .bookmark-tabcontent .details-bookmark.list-bookmark .bookmark-card .details-website .title-bookmark .hover-block { + left: 30px; + right: unset; } + +.rtl .email-wrap .email-app-sidebar ul li a { + padding-right: 20px; + padding-left: unset; } + +.rtl .button-builder-wrap .form-group .btn { + margin-left: 15px; + margin-right: 0; + padding: 9px; } + +.rtl .button-builder ul.the-icons { + padding-right: 0 !important; } + +.rtl .call-chat-body .chat-box .chat-right-aside .chat .chat-history .caller-img.ps-0 { + padding-left: 15px !important; } + +.rtl .chat-box .user-image { + float: right; + margin-left: 5px; + margin-right: 0; } + +.rtl .chat-box .people-list .search i { + left: 10px; + right: unset; } + +.rtl .chat-box .about { + float: right; + padding-right: 10px; + padding-left: unset; + text-align: right; } + +.rtl .chat-box .chat-menu { + left: 10px; + right: unset; } + .rtl .chat-box .chat-menu .nav { + padding-right: 0; } + .rtl .chat-box .chat-menu.ps-0 { + padding-left: 15px !important; } + +.rtl .chat-box .chat-right-aside .chat .chat-message .smiley-box { + margin-left: 0.5rem; + margin-right: unset; } + +.rtl .chat-box .chat-right-aside .chat .chat-header .chat-menu-icons { + margin-left: unset; + margin-right: 15px; } + .rtl .chat-box .chat-right-aside .chat .chat-header .chat-menu-icons li { + margin-right: unset; + margin-left: 24px; } + +.rtl .chat-box .chat-right-aside.pe-0 { + padding-right: 15px !important; } + +.rtl .chat-box .chat .chat-message .text-box .input-group-append { + margin-right: -2px; } + +.rtl .chat-box .chat .chat-message .text-box .btn { + border-top-left-radius: 5px !important; + border-bottom-left-radius: 5px !important; + border-top-right-radius: 0 !important; + border-bottom-right-radius: 0 !important; } + +.rtl .chat-msg-box ul { + padding-right: 0; } + +.rtl .chat-left-aside .status-circle { + left: unset; + right: 40px; } + +.rtl .chat-right-aside .chat .chat-header .chat-menu-icons { + padding-left: 0; + padding-right: unset; } + .rtl .chat-right-aside .chat .chat-header .chat-menu-icons.float-sm-right { + float: left !important; } + +.rtl .chat-right-aside .chat .chat-header img { + float: right; } + +.rtl .cke_toolbar, .rtl .cke_toolgroup, .rtl a.cke_button, .rtl .cke_combo_text { + float: right; } + +.rtl .cke_reset_all, .rtl .cke_reset_all *, .rtl .cke_reset_all a, .rtl .cke_reset_all textarea { + text-align: right; } + +.rtl .cke_combo_text { + padding-left: unset; + padding-right: 10px; } + +.rtl #editor1 #cke_editor1 #cke_1_contents iframe html { + direction: rtl !important; } + +.rtl #clockdiv ul { + padding-right: 0; } + +.rtl .custom-card .card-footer > div + div { + border-right: 1px solid #efefef; + border-left: unset; } + +.rtl .custom-card .card-social li:nth-child(n+2) { + margin-left: unset; + margin-right: 10px; } + +.rtl .card-social { + padding-right: 0; } + +.rtl .card-absolute .card-header { + right: 15px; + left: unset; } + +.rtl .dataTables_wrapper .dataTables_filter input[type="search"] { + margin-right: 10px; + margin-left: 0; } + +.rtl .dataTables_wrapper .dataTables_length { + float: right; } + +.rtl .dataTables_wrapper .dataTables_filter { + margin-left: unset; + margin-right: 15px; + float: left; } + +.rtl .dataTables_wrapper .dataTables_info { + float: right; } + +.rtl .dataTables_wrapper .advance-5_filter { + margin-left: 0; } + +.rtl .dataTables_wrapper .btn-group button { + margin-left: 5px; + margin-right: unset; } + .rtl .dataTables_wrapper .btn-group button:last-child { + margin-left: 0; } + +.rtl div.dataTables_wrapper div.dataTables_paginate { + margin-right: 15px !important; + margin-left: 0 !important; + float: left; } + +.rtl table.dataTable thead > tr > th { + padding-left: 30px; + padding-right: 12px; } + .rtl table.dataTable thead > tr > th:before { + left: 1em !important; + right: unset; } + .rtl table.dataTable thead > tr > th:after { + left: 0.5em !important; + right: unset; } + +.rtl table.dataTable thead .sorting:before, .rtl table.dataTable thead .sorting_asc:before, .rtl table.dataTable thead .sorting_desc:before, .rtl table.dataTable thead .sorting_asc_disabled:before, .rtl table.dataTable thead .sorting_desc_disabled:before { + left: 1em !important; + right: unset; } + +.rtl .dataTables_scrollHeadInner { + padding-right: unset !important; + padding-left: 0 !important; } + +.rtl div.table-responsive > div.dataTables_wrapper > div.row > div[class^="col-"]:first-child { + padding-right: 0; + padding-left: 0; } + +.rtl div.table-responsive > div.dataTables_wrapper > div.row > div[class^="col-"]:last-child { + padding-right: 0; + padding-left: 0; } + +.rtl .dt-plugin-buttons button.m-r-10 { + margin-left: 10px; + margin-right: 0; } + +.rtl .datetime-picker .theme-form .form-group label { + text-align: left !important; } + +.rtl .datetime-picker .theme-form .form-group .input-group-text { + border-top-right-radius: 0; + border-bottom-right-radius: 0; } + +.rtl .datetime-picker .theme-form .form-group .input-group .form-control { + border-radius: 0.25rem; + border-top-left-radius: 0; + border-bottom-left-radius: 0; } + +.rtl .dropdown-basic .btn { + border-top-left-radius: 0; + border-bottom-left-radius: 0; + border-top-right-radius: 0.25rem !important; + border-bottom-right-radius: 0.25rem !important; } + +.rtl .dropdown-basic .separated-btn .btn { + border-radius: 0.25rem; + border-top-right-radius: 0 !important; + border-bottom-right-radius: 0 !important; } + +.rtl .error-wrapper .col-md-8.offset-md-2 { + margin: 0 auto !important; } + +.rtl .product-price del { + margin-right: 20px; + margin-left: unset; } + +.rtl .product-box .ribbon-bookmark.ribbon-vertical-left.ribbon-info:before, .rtl .product-box .ribbon-bookmark.ribbon-vertical-right.ribbon-info:before { + border-left-color: #007bff; } + +.rtl .product-box .ribbon-bookmark.ribbon-vertical-left:before, .rtl .product-box .ribbon-bookmark.ribbon-vertical-right:before { + right: 0; + left: unset; + border-left: 15px solid #2a3142; } + +.rtl .product-box .ribbon-bookmark.ribbon-info:before { + border-left-color: transparent; } + +.rtl .product-box .ribbon-warning.ribbon-clip:before { + border-left-color: #ff850d; + border-right-color: unset; } + +.rtl .product-box .ribbon-clip { + right: -14px; + left: unset; } + .rtl .product-box .ribbon-clip:before { + right: 0; + left: unset; } + +.rtl .product-hover ul { + padding-right: 0; } + +.rtl .customer-review .media img { + margin-left: 25px; + margin-right: 0; } + +.rtl .nav { + padding-right: 0; } + +.rtl .custom-file-label::after { + left: 0; + right: unset; } + +.rtl .wizard-4 ul.anchor { + float: right; + padding-right: 0; + padding-left: 30px; } + +.rtl .wizard-4 .step-container { + clear: unset; } + +.rtl .wizard-4 .form-group { + text-align: right; } + +.rtl .wizard-4 .action-bar .btn { + float: left; } + +.rtl .f1 .f1-buttons { + text-align: left; } + +.rtl .f1 .f1-steps .f1-step { + float: right; } + +.rtl .static-top-widget .media-body { + padding-right: 30px; + padding-left: unset; } + .rtl .static-top-widget .media-body .icon-bg { + left: -20px; + right: unset; } + +.rtl .widget-joins .media .details { + border-right: 1px solid #e6edef; + border-left: unset; } + +.rtl .widget-joins .media .media-body { + text-align: right; } + +.rtl .weather-widget-two .bottom-whetherinfo .whether-content { + text-align: left; } + +.rtl .jstree-default .jstree-node { + margin-left: unset; + margin-right: 24px; + background-position: -292px -4px; + background-repeat: repeat-y; } + +.rtl .img-cropper .btn-group { + margin-right: 0; + margin-left: 10px; } + .rtl .img-cropper .btn-group button:last-child { + border-top-right-radius: 0; + border-bottom-right-radius: 0; + border-top-left-radius: 0.25rem; + border-bottom-left-radius: 0.25rem; } + .rtl .img-cropper .btn-group button:first-child { + border-top-right-radius: .25rem; + border-bottom-right-radius: .25rem; + border-top-left-radius: 0; + border-bottom-left-radius: 0; } + +.rtl .docs-toggles .btn-group .btn { + border-radius: 0; } + .rtl .docs-toggles .btn-group .btn:last-child { + border-top-left-radius: 0.25rem; + border-bottom-left-radius: 0.25rem; } + .rtl .docs-toggles .btn-group .btn:first-child { + border-top-right-radius: 0.25rem; + border-bottom-right-radius: 0.25rem; } + +.rtl .btn-group > .btn:not(:last-child):not(.dropdown-toggle) > .btn-group:not(:last-child) > .btn { + border-top-right-radius: 0; + border-bottom-right-radius: 0; } + +.rtl .jsgrid-button + .jsgrid-button { + margin-right: 5px; + margin-left: unset; } + +.rtl .list-group { + padding-right: 0; } + .rtl .list-group i, .rtl .list-group img { + margin-left: 10px; + margin-right: 0; } + +.rtl .authentication-box { + text-align: right; } + +.rtl .mega-horizontal .offset-sm-3 { + margin-right: 25%; + margin-left: unset; } + +.rtl .navs-icon svg { + margin-left: 10px; + margin-right: unset; } + +.rtl .navs-icon .fa { + margin-left: 10px; + margin-right: unset; } + +.rtl .nav-list .nav-list-disc { + text-align: right; + padding-right: 0; } + +.rtl .pl-navs-inline { + padding-right: 30px !important; + padding-left: 0 !important; } + +.rtl .onhover-dropdown.navs-dropdown:hover .onhover-show-div:before { + left: 77px; + right: unset; } + +.rtl .onhover-dropdown.navs-dropdown:hover .onhover-show-div:after { + left: 77px; + right: unset; } + +.rtl .navs-dropdown .onhover-show-div .navs-icon li { + text-align: right; } + +.rtl .navs-icon.default-according.style-1 li button[aria-expanded="true"]:before { + left: 2px; + right: unset; } + +.rtl .navs-icon.default-according.style-1 li button[aria-expanded="false"]:before { + left: 2px; + right: unset; } + +.rtl .search-form .form-group:after { + right: 53px; + left: unset; } + +.rtl .search-form .form-group:before { + right: 82px; + left: unset; } + +.rtl .order-history table tbody tr td .product-name .order-process .order-process-circle:before { + right: -15px; + left: unset; } + +.rtl .order-history table th:first-child, .rtl .order-history table td:first-child { + text-align: right; } + +.rtl .product-page-details span { + padding-right: 15px; + padding-left: 0; } + +.rtl .m-checkbox-inline label { + margin-left: 20px; + margin-right: 0; } + +.rtl .form-label-align-right label { + text-align: left; } + +.rtl .br-theme-bars-reversed .br-widget .br-current-rating, .rtl .br-theme-bars-movie .br-widget .br-current-rating, .rtl .br-theme-bars-1to10 .br-widget .br-current-rating, .rtl .br-theme-bars-square .br-widget .br-current-rating { + float: right; } + +.rtl .br-theme-bars-reversed .br-widget a, .rtl .br-theme-bars-movie .br-widget a, .rtl .br-theme-bars-1to10 .br-widget a, .rtl .br-theme-bars-square .br-widget a { + float: right; } + +.rtl .ribbon-left { + right: auto; + left: -2px; } + +.rtl .ribbon-vertical-left { + right: auto; + left: 12px; } + +.rtl .ribbon-vertical-right { + right: auto; + left: 12px; } + +.rtl .search-page ul.search-info > li + li { + padding-right: 8px; + margin-right: 8px; + border-right: 1px solid #e6edef; + padding-left: unset; + margin-left: unset; + border-left: unset; } + +.rtl .select2-container--default .select2-selection--single .select2-selection__arrow { + left: 10px !important; + right: unset !important; } + +.rtl .editor-statusbar { + text-align: left; } + .rtl .editor-statusbar span { + margin-right: 1em; + margin-left: unset; } + +.rtl .CodeMirror-scroll { + margin-left: -30px; + margin-right: unset; } + +.rtl .primary-color ul, .rtl .yellow-color ul { + padding-right: 0; } + +.rtl .u-step-desc { + text-align: right; } + +.rtl .u-step-number { + right: 20px; + left: unset; } + .rtl .u-step-number ~ .u-step-desc { + margin-right: 50px; } + +.rtl .u-pearl:after { + left: 0; + right: unset; } + +.rtl .u-pearl:before { + right: 0; + left: unset; } + +.rtl .u-step-icon { + float: right; + margin-left: .5em; + margin-right: unset; } + +.rtl .list-icons { + padding-right: 0; } + +.rtl .card-header.note-toolbar .note-color .dropdown-toggle { + padding-right: 5px; } + +.rtl .card-header.note-toolbar .form-group.draggable { + text-align: right; } + +.rtl .card-header.note-toolbar .form-check { + padding-right: 24px; + padding-left: unset; } + +.rtl .card-header.note-toolbar form .custom-control { + padding-right: 24px; + padding-left: unset; } + .rtl .card-header.note-toolbar form .custom-control .custom-control-label::after { + right: 0; + left: unset; } + .rtl .card-header.note-toolbar form .custom-control .custom-control-label::before { + right: 0; + left: unset; } + +.rtl .dropdown-toggle::after { + margin-right: 0.255em; + margin-left: unset; } + +.rtl .tabbed-card ul { + left: 15px; + right: unset; } + +.rtl .checkbox label { + padding-right: 16px; + padding-left: unset; } + .rtl .checkbox label::before { + right: 0; + left: unset; + margin-right: -16px; + margin-left: unset; } + +.rtl .radio label::after { + right: 5px; + left: unset; + margin-right: -20px; + margin-left: unset; } + +.rtl .cd-timeline-content::before { + border-right: 7px solid #e6edef; + border-left-color: transparent; } + +.rtl .cd-timeline-img i { + right: 40%; + left: unset; + margin-right: -12px; + margin-left: unset; } + +.rtl .cd-timeline-block:nth-child(even) .cd-timeline-content { + float: left; + border-left: 7px solid #eeeeee; + border-right: unset; } + .rtl .cd-timeline-block:nth-child(even) .cd-timeline-content .cd-date { + right: auto; + left: 122%; + text-align: left; } + .rtl .cd-timeline-block:nth-child(even) .cd-timeline-content::before { + right: auto; + left: 100%; + border-left-color: #eeeeee; + border-right-color: transparent; } + +.rtl .cd-timeline-content .cd-date { + right: 122%; + left: unset; } + +.rtl .introjs-tooltip { + right: 0; + left: unset; } + +.rtl .introjs-helperNumberLayer { + right: -16px; + left: unset; } + +.rtl .introjs-tooltipReferenceLayer .introjs-tooltip .introjs-tooltiptext { + text-align: right; } + +.rtl .introjs-tooltipReferenceLayer .introjs-tooltip .introjs-tooltipbuttons { + text-align: left; } + .rtl .introjs-tooltipReferenceLayer .introjs-tooltip .introjs-tooltipbuttons .introjs-skipbutton { + margin-left: 5px; + margin-right: unset; } + .rtl .introjs-tooltipReferenceLayer .introjs-tooltip .introjs-tooltipbuttons .introjs-nextbutton { + border-radius: 0.2em 0 0 0.2em; } + +.rtl .list-inline-item:not(:last-child) { + margin-left: 0.5rem; + margin-right: unset; } + +.rtl .like-comment ul.list-inline { + padding-right: 0; } + +.rtl .typeahead { + text-align: right; } + +.rtl .listing ul { + padding-right: 0; } + .rtl .listing ul .icofont { + float: right; } + +.rtl .gallery .hover-5 img { + margin-right: 30px; } + +.rtl .gallery .hover-5:hover img { + margin-right: 0; } + +.rtl .lg-outer { + text-align: right; } + +.rtl .lg-toolbar .lg-icon { + float: left; } + +.rtl #lg-counter { + padding-right: 20px; + padding-left: unset; + float: right; } + +.rtl .chart-widget-top .text-end { + text-align: left !important; } + +.rtl .chart-widget-top .num .ms-0 { + margin-right: 0.25rem !important; } + +.rtl .bar-chart-widget .earning-details i { + left: -240px; } + +.rtl .bar-chart-widget .bottom-content .b-r-light { + border-left: 1px solid #eeeeee !important; + border-right: unset !important; } + +.rtl .bar-chart-widget .bottom-content .num .ms-0 { + margin-right: 0.25rem !important; } + +.rtl .chart-widget .chart-widget-top .num i { + margin-left: unset; + margin-right: 5px; } + +.rtl .chart-vertical-center #myDoughnutGraph, .rtl .chart-vertical-center #myPolarGraph { + width: auto !important; } + +.rtl .crm-activity ul.dates li + li { + border-right: 1px solid #ddd; + padding-right: 10px; + margin-right: 5px; + border-left: unset; + padding-left: unset; + margin-left: unset; } + +.rtl div.dt-buttons { + float: right; } + +.rtl .dt-button-collection { + left: -39px !important; } + +.rtl .dropzone .dz-preview .dz-error-mark, +.rtl .dropzone .dz-preview .dz-success-mark { + right: 50%; + margin-right: -27px; + margin-left: unset; + left: unset; } + +.rtl .page-wrapper .page-body-wrapper footer { + margin-right: 275px; + margin-left: unset; } + .rtl .page-wrapper .page-body-wrapper footer p i { + margin-right: 5px; + margin-left: unset; } + +.rtl .footer-copyright { + text-align: right; } + +.rtl .footer-links { + text-align: left; } + +.rtl .page-item:first-child .page-link { + margin-right: 0; + border-top-right-radius: 0.25rem; + border-bottom-right-radius: 0.25rem; + border-top-left-radius: 0; + border-bottom-left-radius: 0; } + +.rtl .page-item:last-child .page-link { + border-top-left-radius: 0.25rem; + border-bottom-left-radius: 0.25rem; + border-top-right-radius: 0; + border-bottom-right-radius: 0; } + +.rtl .popover.top > .arrow:after, .rtl .popover.bottom > .arrow:after { + margin-right: -10px; + margin-left: unset; } + +.rtl .bootstrap-touchspin > .input-group-append > .btn, +.rtl .bootstrap-touchspin > .input-group-append > .input-group-text { + border-top-right-radius: 0 !important; + border-bottom-right-radius: 0 !important; + border-top-left-radius: 0 !important; + border-bottom-left-radius: 0 !important; } + +.rtl .bootstrap-touchspin > .form-control:not(:last-child), .rtl .bootstrap-touchspin > .custom-select:not(:last-child) { + border-top-left-radius: 0; + border-bottom-left-radius: 0; + border-top-right-radius: 0; + border-bottom-right-radius: 0; } + +.rtl .typeahead span.twitter-typeahead .tt-suggestion { + text-align: right; } + +.rtl .typeahead .league-name { + text-align: right; + margin-right: 5px; } + +.rtl .follow .text-md-end { + text-align: left !important; } + +.rtl .jvectormap-zoomin, +.rtl .jvectormap-zoomout, +.rtl .jvectormap-goback { + right: 10px; + left: unset; } + +.rtl .customizer-links { + right: unset; + left: 0; } + .rtl .customizer-links.open { + right: unset; + left: 330px; + border-radius: 0 8px 8px 0; } + +.rtl .customizer-contain { + width: 330px; + right: unset; + left: -330px; } + .rtl .customizer-contain.open { + right: unset; + left: 0px; } + .rtl .customizer-contain .customizer-header .icon-close { + left: unset; + right: 30px; } + +.rtl.dark-only .page-main-header .main-header-right .nav-right > ul > li { + border-right: 1px solid #202938; + border-left: unset !important; } + .rtl.dark-only .page-main-header .main-header-right .nav-right > ul > li:first-child, .rtl.dark-only .page-main-header .main-header-right .nav-right > ul > li:nth-child(5) { + border-right: none !important; } + .rtl.dark-only .page-main-header .main-header-right .nav-right > ul > li:nth-child(5) { + border-left: 1px solid #202938 !important; } + +.rtl .box-layout.page-wrapper.horizontal-wrapper .page-main-header { + padding-right: 250px; + padding-left: unset; } + .rtl .box-layout.page-wrapper.horizontal-wrapper .page-main-header.open { + padding-right: 0; } + +@media screen and (max-width: 1660px) { + .rtl .chat-box .chat-right-aside .chat .chat-header .chat-menu-icons li { + margin-left: 10px; } } + +@media screen and (min-width: 1200px) and (max-width: 1660px) { + .rtl .latest-articles .card-body .media .m-r-30 { + margin-right: unset; + margin-left: 10px; } } + +@media screen and (min-width: 1200px) and (max-width: 1500px) { + .rtl .activity-sec .activity-timeline.update-line .media .activity-line { + right: 26px; } + .rtl .blog-box.blog-shadow .blog-details { + padding-right: 15px; } + .rtl .blog-box .blog-details .blog-social li:nth-child(n+2) { + margin-right: 15px; + padding-right: 15px; } } + +@media screen and (min-width: 1200px) and (max-width: 1366px) { + .rtl .learning-comment { + float: right !important; } + .rtl .comment-box .media img { + margin-left: 25px; } + .rtl .comment-box ul ul { + margin-right: 50px; } } + +@media only screen and (max-width: 1366px) { + .rtl .product-wrapper .product-grid .feature-products { + margin-right: 0; } + .rtl .product-grid { + margin-right: 0; } + .rtl .d-none-productlist { + margin-left: 10px; + margin-right: unset; } + .rtl .chat-left-aside .status-circle { + left: unset; + right: 40px; } + .rtl .status-circle { + right: 37px; + left: unset; } + .rtl .file-content .files .file-box { + margin-left: 10px; + margin-right: unset; } + .rtl .lnb-calendars { + text-align: left; } } + +@media (max-width: 1280px) { + .rtl .page-main-header .main-header-right .nav-right > ul > li { + margin-left: 15px; } + .rtl .user-profile .social-tab ul li:nth-child(n+2) { + margin-right: 10px; + margin-left: 0; } + .rtl .email-wrap .actions li:nth-child(n+2) { + margin-right: 10px; } } + +@media (min-width: 1200px) { + .rtl .pixelstrap ul a:hover .sub-arrow, .rtl .pixelstrap ul a:focus .sub-arrow, .rtl .pixelstrap ul a:active .sub-arrow, .rtl .pixelstrap ul a.highlighted .sub-arrow { + left: 3px; + right: unset; } } + +@media only screen and (max-width: 1199px) { + .rtl .page-wrapper .page-main-header .main-header-right .nav-right > ul li .submenu li:first-child { + padding-right: 15px !important; + padding-left: 15px !important; } + .rtl .page-wrapper .page-main-header .main-header-right .nav-right > ul > li { + margin-left: 15px; } + .rtl .page-wrapper.modern-sidebar.compact-wrapper footer { + margin-left: unset; + margin-right: 280px; } + .rtl .page-wrapper.modern-sidebar.compact-wrapper header.main-nav.close_icon ~ footer { + margin-right: unset; } + .rtl .email-wrap .email-app-sidebar .main-menu > li { + text-align: right; } + .rtl .email-wrap .email-app-sidebar .main-menu > li a i { + margin-right: unset; + margin-left: 10px; } + .rtl .email-wrap .email-app-sidebar ul { + padding-right: 0; } + .rtl .email-wrap .email-content .email-top .user-emailid:after { + float: left; } + .rtl .email-wrap .email-sidebar .email-left-aside { + right: 0; + left: unset; } + .rtl .chat-menu-icons { + text-align: left; } + .rtl .chat-box .chat-history .row .col-sm-7 { + padding-left: 0 !important; + padding-right: unset !important; } + .rtl .chat-menu { + left: 0; + right: unset; } + .rtl .invo-profile .text-xl-end { + text-align: right !important; } + .rtl .blog-box .blog-details { + padding: 20px; } + .rtl .blog-box.blog-shadow .blog-details { + padding-right: 20px; } + .rtl .blog-single .comment-box ul .comment-social { + margin-right: unset; } + .rtl .job-sidebar .job-left-aside { + right: 0; + left: unset; } } + +@media only screen and (max-width: 991px) { + .rtl .faq-accordion .faq-header svg { + left: 20px; } + .rtl .categories .learning-header { + padding-right: 20px; } + .rtl .page-wrapper .page-main-header .main-header-left .logo-wrapper img { + margin-left: 15px; + margin-right: unset; } + .rtl .page-wrapper .page-main-header .main-header-right > .mobile-toggle { + padding-left: 20px; + padding-right: unset; } + .rtl .main .langChoice { + left: 20px; } + .rtl .cd-timeline-img i { + right: 50% !important; } + .rtl .page-wrapper .page-body-wrapper .page-header .breadcrumb { + float: right; + margin-right: 0; } + .rtl .page-wrapper .page-body-wrapper .page-body { + min-height: calc(100vh - 60px); } + .rtl .page-wrapper .page-main-header { + margin-right: 0; } + .rtl .page-wrapper .page-main-header .main-header-right > .mobile-toggle { + padding-left: 15px; } + .rtl .card-body .value-left { + margin-left: 20px; } + .rtl .activity-sec .activity-timeline .media .activity-line { + right: 26px; } + .rtl .comment-box .comment-social li:nth-child(n+2) { + margin-right: 15px; + padding-right: 15px; } + .rtl .page-body-wrapper .page-body, .rtl .page-body-wrapper footer { + margin-right: 0 !important; + margin-left: unset !important; } + .rtl .page-wrapper.compact-wrapper .page-body-wrapper.sidebar-icon header.main-nav.close_icon { + -webkit-transform: translate(290px); + transform: translate(290px); } + .rtl .updates-faq { + margin-left: 20px; } } + +@media (min-width: 768px) { + .rtl .offset-md-2 { + margin-right: 16.66667%; } + .rtl .float-md-right { + float: left !important; } + .rtl .text-md-end { + text-align: left !important; } + .rtl .offset-md-3 { + margin-right: 25%; + margin-left: unset; } + .rtl .text-md-start { + text-align: right !important; } + .rtl .ecommerce-widget .text-md-end { + text-align: left !important; } + .rtl .ecommerce-widget .text-md-end ul { + text-align: left; } } + +@media only screen and (max-width: 767px) { + .rtl .ecommerce-widget .text-md-end { + text-align: left !important; } + .rtl .bar-chart-widget .earning-details i { + left: -147px !important; } + .rtl .footer .pull-right { + float: unset; } + .rtl .page-wrapper .page-main-header .main-header-right .main-header-left .toggle-sidebar { + margin-left: unset; + margin-right: 20px; } + .rtl .comment-box ul ul { + text-align: right; + float: revert; + margin-right: 0; } + .rtl .blog-single .comment-box ul .comment-social { + text-align: right; } + .rtl .project-list .btn { + float: right; } + .rtl .follow .text-md-end { + text-align: center !important; } + .rtl .calendar-basic #menu-navi .menu-navi-center { + left: 20px; + right: unset; } + .rtl .calendar-basic #menu-navi .menu-navi-right .move-btn { + float: left; } + .rtl .feature-products span.f-w-600 { + margin-right: 5px; + margin-left: unset; } } + +@media (min-width: 576px) { + .rtl .offset-sm-3 { + margin-right: 25%; + margin-left: unset; } + .rtl .text-sm-end { + text-align: left !important; } + .rtl .float-sm-right { + float: left !important; } + .rtl .mr-sm-2, .rtl .mx-sm-2 { + margin-left: 0.5rem !important; + margin-right: unset !important; } } + +@media only screen and (max-width: 575px) { + .rtl .page-main-header .main-header-right .nav-right > ul > li:last-child { + padding-right: 10px; } + .rtl .page-main-header .main-header-right .nav-right .notification-dropdown { + right: -150px !important; + left: unset !important; } + .rtl .page-main-header .main-header-right .nav-right .profile-dropdown { + right: -50px !important; + left: unset !important; } + .rtl .faq-accordion .faq-header svg { + left: 15px; } + .rtl .categories .learning-header { + padding-right: 15px; } + .rtl .main .langChoice { + left: 15px; } + .rtl .page-wrapper .search-form .form-group { + margin-left: 0; } + .rtl .card-body .value-left { + margin-left: 15px; } + .rtl .job-search .media .media-body h6 .pull-right { + margin-right: 15px; + margin-left: unset; } + .rtl .invoice .invo-header .media-body { + text-align: left; } + .rtl .blog-box .blog-details .blog-social li:nth-child(n+2) { + margin-right: 15px; + padding-right: unset; + border-right: none; } + .rtl .feature-products .select-options { + float: right; } } + +@media only screen and (max-width: 575px) { + .rtl .page-wrapper .page-body-wrapper .page-header .bookmark { + text-align: right; } + .rtl .feature-products .text-end { + text-align: right !important; } + .rtl .list-persons .nav-pills .nav-link .media .media-body { + text-align: right; } + .rtl .list-persons .profile-mail .email-general ul { + padding-left: unset; } + .rtl .contacts-tabs .media img.m-r-20 { + margin-right: unset; + margin-left: 20px; } + .rtl .faq-widgets svg { + left: 20px; + right: unset; } + .rtl .m-r-30 { + margin-left: 15px; } + .rtl .job-search .job-description label { + text-align: right !important; } + .rtl .user-profile .profile-post .post-body .post-react ul li:nth-child(n+2) { + margin-right: -15px; } + .rtl .user-profile .profile-post .post-body .post-react h6 { + margin-right: 10px; } } + +@media only screen and (max-width: 420px) { + .rtl .project-box .badge { + left: 10px; } + .rtl .file-content .files .file-box { + margin-left: unset; } + .rtl .project-list .border-tab.nav-tabs .nav-item .nav-link { + padding: 5px 0 5px 15px; } } + +@media only screen and (max-width: 360px) { + .rtl .social-app-profile .hovercard .user-image .avatar { + margin-top: -47px; } + .rtl .social-app-profile .hovercard .user-image .avatar img { + width: 85px; + height: 85px; } + .rtl .social-chat .other-msg { + margin-right: 15px; } } + +@media only screen and (max-width: 480px) { + .rtl .page-wrapper .page-main-header .main-header-right .nav-right > ul li { + margin-left: 5px; } } + +@media only screen and (max-width: 360px) { + .rtl .footer { + padding-left: 0; + padding-right: 0 !important; } } + +/**===================== + 60. RTL CSS Ends +==========================**/ diff --git a/public/admin/assets/css/summernote.css b/public/admin/assets/css/summernote.css new file mode 100644 index 0000000..f2ea9ed --- /dev/null +++ b/public/admin/assets/css/summernote.css @@ -0,0 +1,622 @@ +.note-icon-align-center:before, .note-icon-align-indent:before, .note-icon-align-justify:before, .note-icon-align-left:before, .note-icon-align-outdent:before, .note-icon-align-right:before, .note-icon-align:before, .note-icon-arrow-circle-down:before, .note-icon-arrow-circle-left:before, .note-icon-arrow-circle-right:before, .note-icon-arrow-circle-up:before, .note-icon-arrows-alt:before, .note-icon-arrows-h:before, .note-icon-arrows-v:before, .note-icon-bold:before, .note-icon-caret:before, .note-icon-chain-broken:before, .note-icon-circle:before, .note-icon-close:before, .note-icon-code:before, .note-icon-col-after:before, .note-icon-col-before:before, .note-icon-col-remove:before, .note-icon-eraser:before, .note-icon-font:before, .note-icon-frame:before, .note-icon-italic:before, .note-icon-link:before, .note-icon-magic:before, .note-icon-menu-check:before, .note-icon-minus:before, .note-icon-orderedlist:before, .note-icon-pencil:before, .note-icon-picture:before, .note-icon-question:before, .note-icon-redo:before, .note-icon-row-above:before, .note-icon-row-below:before, .note-icon-row-remove:before, .note-icon-special-character:before, .note-icon-square:before, .note-icon-strikethrough:before, .note-icon-subscript:before, .note-icon-summernote:before, .note-icon-superscript:before, .note-icon-table:before, .note-icon-text-height:before, .note-icon-trash:before, .note-icon-underline:before, .note-icon-undo:before, .note-icon-unorderedlist:before, .note-icon-video:before { + display: inline-block; + font-family: summernote; + font-style: normal; + font-weight: normal; + text-decoration: inherit; } + +.note-popover .popover-content > .btn-group, .card-header.note-toolbar > .btn-group { + margin-top: 5px; + margin-right: 5px; + margin-left: 0; } + +.note-popover .popover-content .btn-group .note-table .note-dimension-picker .note-dimension-picker-mousecatcher, .card-header.note-toolbar .btn-group .note-table .note-dimension-picker .note-dimension-picker-mousecatcher { + position: absolute !important; + z-index: 3; + width: 10em; + height: 10em; + cursor: pointer; } + +.note-popover .popover-content .btn-group .note-table .note-dimension-picker .note-dimension-picker-unhighlighted, .note-popover .popover-content .btn-group .note-table .note-dimension-picker .note-dimension-picker-highlighted, .card-header.note-toolbar .btn-group .note-table .note-dimension-picker .note-dimension-picker-unhighlighted, .card-header.note-toolbar .btn-group .note-table .note-dimension-picker .note-dimension-picker-highlighted { + position: relative !important; + z-index: 1; + width: 5em; + height: 5em; + background: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABIAAAASAgMAAAAroGbEAAAACVBMVEUAAIj4+Pjp6ekKlAqjAAAAAXRSTlMAQObYZgAAAAFiS0dEAIgFHUgAAAAJcEhZcwAACxMAAAsTAQCanBgAAAAHdElNRQfYAR0BKhmnaJzPAAAAG0lEQVQI12NgAAOtVatWMTCohoaGUY+EmIkEAEruEzK2J7tvAAAAAElFTkSuQmCC") repeat; } + +.note-popover .popover-content .note-color .dropdown-menu .note-palette, .card-header.note-toolbar .note-color .dropdown-menu .note-palette { + display: inline-block; + width: 160px; + margin: 0; } + +.note-popover .popover-content .note-color .dropdown-menu .note-palette .note-palette-title, .note-popover .popover-content .note-color .dropdown-menu .note-palette .note-color-reset, .card-header.note-toolbar .note-color .dropdown-menu .note-palette .note-palette-title, .card-header.note-toolbar .note-color .dropdown-menu .note-palette .note-color-reset { + margin: 2px 7px; + font-size: 12px; + text-align: center; + border-bottom: 1px solid #eee; } + +.note-popover .popover-content .note-color-palette div .note-color-btn, .card-header.note-toolbar .note-color-palette div .note-color-btn { + width: 20px; + height: 20px; + padding: 0; + margin: 0; + border: 1px solid #fff; } + +.note-hint-popover .popover-content .note-hint-group .note-hint-item.active, .note-hint-popover .popover-content .note-hint-group .note-hint-item:hover { + display: block; + clear: both; + font-weight: 400; + line-height: 1.4; + color: #fff; + text-decoration: none; + white-space: nowrap; + cursor: pointer; + background-color: #428bca; + outline: 0; } + +@font-face { + font-family: summernote; + font-style: normal; + font-weight: normal; + src: url(../fonts/summernote/summernote9d3d.eot?dbafe969167589eda84514394d126413); + src: url(../fonts/summernote/summernoted41d.eot?#iefix) format("embedded-opentype"), url(../fonts/summernote/summernote9d3d.woff?dbafe969167589eda84514394d126413) format("woff"), url(../fonts/summernote/summernote9d3d.ttf?dbafe969167589eda84514394d126413) format("truetype"); } + +.note-editor { + position: relative; } + .note-editor .note-dropzone { + position: absolute; + z-index: 100; + display: none; + color: #87cefa; + background-color: #fff; + opacity: .95; } + .note-editor .note-dropzone .note-dropzone-message { + display: table-cell; + font-size: 28px; + font-weight: 700; + text-align: center; + vertical-align: middle; } + .note-editor .note-dropzone.hover { + color: #098ddf; } + .note-editor .note-editing-area .note-editable { + outline: 0; } + .note-editor .note-editing-area .note-editable sup { + vertical-align: super; } + .note-editor .note-editing-area .note-editable sub { + vertical-align: sub; } + .note-editor .note-editing-area img.note-float-start { + margin-right: 10px; } + .note-editor .note-editing-area img.note-float-end { + margin-left: 10px; } + .note-editor.note-frame { + border: 1px solid #a9a9a9; + margin-bottom: 0; } + .note-editor.note-frame .note-editing-area { + overflow: hidden; } + .note-editor.note-frame .note-editing-area .note-editable { + padding: 10px; + overflow: auto; + color: #000; + word-wrap: break-word; + min-height: 50px; } + .note-editor.note-frame .note-editing-area .note-editable p { + color: #999; } + .note-editor.note-frame .note-editing-area .note-editable[contenteditable="false"] { + background-color: #e5e5e5; } + .note-editor.note-frame .note-editing-area .note-codable { + display: none; + width: 100%; + padding: 10px; + margin-bottom: 0; + font-family: Menlo, Monaco, monospace, sans-serif; + font-size: 14px; + color: #ccc; + background-color: #222; + border: 0; + border-radius: 0; + -webkit-box-shadow: none; + box-shadow: none; + -webkit-box-sizing: border-box; + box-sizing: border-box; + resize: none; } + .note-editor.note-frame.fullscreen { + position: fixed; + top: 0; + left: 0; + z-index: 1050; + width: 100% !important; } + .note-editor.note-frame.fullscreen .note-editable { + background-color: #fff; + border-color: #e6edef; } + .note-editor.note-frame.fullscreen .note-resizebar { + display: none; } + .note-editor.note-frame .note-status-output { + display: block; + width: 100%; + height: 20px; + margin-bottom: 0; + font-size: 14px; + line-height: 1.42857143; + color: #000; + border: 0; + border-top: 1px solid #e6edef; } + .note-editor.note-frame .note-status-output:empty { + height: 0; + border-top: 0 solid transparent; } + .note-editor.note-frame .note-status-output .pull-right { + float: right !important; } + .note-editor.note-frame .note-status-output .text-muted { + color: #777; } + .note-editor.note-frame .note-status-output .text-primary { + color: #286090; } + .note-editor.note-frame .note-status-output .text-success { + color: #3c763d; } + .note-editor.note-frame .note-status-output .text-info { + color: #31708f; } + .note-editor.note-frame .note-status-output .text-warning { + color: #8a6d3b; } + .note-editor.note-frame .note-status-output .text-danger { + color: #a94442; } + .note-editor.note-frame .note-status-output .alert { + padding: 7px 10px 2px; + margin: -7px 0 0; + color: #000; + background-color: #f5f5f5; + border-radius: 0; } + .note-editor.note-frame .note-status-output .alert .note-icon { + margin-right: 5px; } + .note-editor.note-frame .note-status-output .alert-success { + color: #3c763d !important; + background-color: #dff0d8 !important; } + .note-editor.note-frame .note-status-output .alert-info { + color: #31708f !important; + background-color: #d9edf7 !important; } + .note-editor.note-frame .note-status-output .alert-warning { + color: #8a6d3b !important; + background-color: #fcf8e3 !important; } + .note-editor.note-frame .note-status-output .alert-danger { + color: #a94442 !important; + background-color: #f2dede !important; } + .note-editor.note-frame .note-statusbar { + background-color: #f5f5f5; + border-top: 1px solid #ddd; + border-bottom-right-radius: 4px; + border-bottom-left-radius: 4px; } + .note-editor.note-frame .note-statusbar .note-resizebar { + width: 100%; + height: 9px; + padding-top: 1px; + cursor: ns-resize; } + .note-editor.note-frame .note-statusbar .note-resizebar .note-icon-bar { + width: 20px; + margin: 1px auto; + border-top: 1px solid #a9a9a9; } + .note-editor.note-frame .note-statusbar.locked .note-resizebar { + cursor: default; } + .note-editor.note-frame .note-statusbar.locked .note-resizebar .note-icon-bar { + display: none; } + .note-editor.note-frame .note-placeholder { + padding: 10px; } + .note-editor.note-frame.codeview .note-editing-area .note-editable { + display: none; } + .note-editor.note-frame.codeview .note-editing-area .note-codable { + display: block; } + .note-editor.dragover .note-dropzone { + display: table; } + +.note-popover.popover { + display: none; + max-width: none; } + .note-popover.popover .arrow { + left: 20px !important; } + .note-popover.popover .popover-content a { + display: inline-block; + max-width: 200px; + overflow: hidden; + text-overflow: ellipsis; + white-space: nowrap; + vertical-align: middle; } + +.note-popover .popover-content { + padding: 0 0 5px 5px; + margin: 0; } + .note-popover .popover-content .note-color .dropdown-toggle { + width: 20px; + padding-left: 5px; } + .note-popover .popover-content .note-color .dropdown-menu { + min-width: 337px; } + .note-popover .popover-content .note-color .dropdown-menu .note-palette:first-child { + margin: 0 5px; } + .note-popover .popover-content .note-color .dropdown-menu .note-palette .note-color-reset:hover { + background: #eee; } + .note-popover .popover-content .note-color .dropdown-menu .note-palette .note-color-row { + height: 20px; } + .note-popover .popover-content .dropdown-menu { + min-width: 90px; } + .note-popover .popover-content .dropdown-menu.right { + right: 0; + left: auto; } + .note-popover .popover-content .dropdown-menu.right::before { + right: 9px; + left: auto !important; } + .note-popover .popover-content .dropdown-menu.right::after { + right: 10px; + left: auto !important; } + .note-popover .popover-content .dropdown-menu.note-check a i { + color: #098ddf; + visibility: hidden; } + .note-popover .popover-content .dropdown-menu.note-check a.checked i { + visibility: visible; } + .note-popover .popover-content .note-fontsize-10 { + font-size: 10px; } + .note-popover .popover-content .note-color-palette { + line-height: 1; } + .note-popover .popover-content .note-color-palette div .note-color-btn:hover { + border: 1px solid #000; } + .note-popover .popover-content .btn-group .note-table { + min-width: 0; + padding: 5px; } + .note-popover .popover-content .btn-group .note-table .note-dimension-picker { + font-size: 18px; } + .note-popover .popover-content .note-style .dropdown-style blockquote { + padding: 5px 10px; + margin: 0; } + .note-popover .popover-content .note-style .dropdown-style pre { + padding: 5px 10px; + margin: 0; } + .note-popover .popover-content .note-style .dropdown-style h1 { + padding: 0; + margin: 0; } + .note-popover .popover-content .note-style .dropdown-style h2 { + padding: 0; + margin: 0; } + .note-popover .popover-content .note-style .dropdown-style h3 { + padding: 0; + margin: 0; } + .note-popover .popover-content .note-style .dropdown-style h4 { + padding: 0; + margin: 0; } + .note-popover .popover-content .note-style .dropdown-style h5 { + padding: 0; + margin: 0; } + .note-popover .popover-content .note-style .dropdown-style h6 { + padding: 0; + margin: 0; } + .note-popover .popover-content .note-style .dropdown-style p { + padding: 0; + margin: 0; } + .note-popover .popover-content .note-para .dropdown-menu { + min-width: 216px; + padding: 5px; } + .note-popover .popover-content .note-para .dropdown-menu > div:first-child { + margin-right: 5px; } + +.note-toolbar { + position: relative; + z-index: 500; } + +.note-dialog > div { + display: none; } + +.note-dialog .form-group { + margin-right: 0; + margin-left: 0; } + +.note-dialog .note-modal-form { + margin: 0; } + +.note-dialog .note-image-dialog .note-dropzone { + min-height: 100px; + margin-bottom: 10px; + font-size: 30px; + line-height: 4; + color: lightgray; + text-align: center; + border: 4px dashed lightgray; } + +.note-placeholder { + position: absolute; + display: none; + color: gray; } + +.note-hint-popover { + min-width: 100px; + padding: 2px; } + .note-hint-popover .popover-content { + max-height: 150px; + padding: 3px; + overflow: auto; } + .note-hint-popover .popover-content .note-hint-group .note-hint-item { + display: block !important; + padding: 3px; } + +.note-icon-align-center:before { + content: "\f101"; } + +.note-icon-align-indent:before { + content: "\f102"; } + +.note-icon-align-justify:before { + content: "\f103"; } + +.note-icon-align-left:before { + content: "\f104"; } + +.note-icon-align-outdent:before { + content: "\f105"; } + +.note-icon-align-right:before { + content: "\f106"; } + +.note-icon-align:before { + content: "\f107"; } + +.note-icon-arrow-circle-down:before { + content: "\f108"; } + +.note-icon-arrow-circle-left:before { + content: "\f109"; } + +.note-icon-arrow-circle-right:before { + content: "\f10a"; } + +.note-icon-arrow-circle-up:before { + content: "\f10b"; } + +.note-icon-arrows-alt:before { + content: "\f10c"; } + +.note-icon-arrows-h:before { + content: "\f10d"; } + +.note-icon-arrows-v:before { + content: "\f10e"; } + +.note-icon-bold:before { + content: "\f10f"; } + +.note-icon-caret:before { + content: "\f110"; } + +.note-icon-chain-broken:before { + content: "\f111"; } + +.note-icon-circle:before { + content: "\f112"; } + +.note-icon-close:before { + content: "\f113"; } + +.note-icon-code:before { + content: "\f114"; } + +.note-icon-col-after:before { + content: "\f115"; } + +.note-icon-col-before:before { + content: "\f116"; } + +.note-icon-col-remove:before { + content: "\f117"; } + +.note-icon-eraser:before { + content: "\f118"; } + +.note-icon-font:before { + content: "\f119"; } + +.note-icon-frame:before { + content: "\f11a"; } + +.note-icon-italic:before { + content: "\f11b"; } + +.note-icon-link:before { + content: "\f11c"; } + +.note-icon-magic:before { + content: "\f11d"; } + +.note-icon-menu-check:before { + content: "\f11e"; } + +.note-icon-minus:before { + content: "\f11f"; } + +.note-icon-orderedlist:before { + content: "\f120"; } + +.note-icon-pencil:before { + content: "\f121"; } + +.note-icon-picture:before { + content: "\f122"; } + +.note-icon-question:before { + content: "\f123"; } + +.note-icon-redo:before { + content: "\f124"; } + +.note-icon-row-above:before { + content: "\f125"; } + +.note-icon-row-below:before { + content: "\f126"; } + +.note-icon-row-remove:before { + content: "\f127"; } + +.note-icon-special-character:before { + content: "\f128"; } + +.note-icon-square:before { + content: "\f129"; } + +.note-icon-strikethrough:before { + content: "\f12a"; } + +.note-icon-subscript:before { + content: "\f12b"; } + +.note-icon-summernote:before { + content: "\f12c"; } + +.note-icon-superscript:before { + content: "\f12d"; } + +.note-icon-table:before { + content: "\f12e"; } + +.note-icon-text-height:before { + content: "\f12f"; } + +.note-icon-trash:before { + content: "\f130"; } + +.note-icon-underline:before { + content: "\f131"; } + +.note-icon-undo:before { + content: "\f132"; } + +.note-icon-unorderedlist:before { + content: "\f133"; } + +.note-icon-video:before { + content: "\f134"; } + +.card-header.note-toolbar { + padding: 0 0 5px 5px !important; + margin: 0; + z-index: 0; } + .card-header.note-toolbar .note-color .dropdown-toggle { + width: 20px; + padding-left: 5px; } + .card-header.note-toolbar .note-color .dropdown-menu { + min-width: 337px; } + .card-header.note-toolbar .note-color .dropdown-menu .note-palette:first-child { + margin: 0 5px; } + .card-header.note-toolbar .note-color .dropdown-menu .note-palette .note-color-reset:hover { + background: #eee; } + .card-header.note-toolbar .note-color .dropdown-menu .note-palette .note-color-row { + height: 20px; } + .card-header.note-toolbar .dropdown-menu { + min-width: 90px; } + .card-header.note-toolbar .dropdown-menu.right { + right: 0; + left: auto; } + .card-header.note-toolbar .dropdown-menu.right::before { + right: 9px; + left: auto !important; } + .card-header.note-toolbar .dropdown-menu.right::after { + right: 10px; + left: auto !important; } + .card-header.note-toolbar .dropdown-menu.note-check a i { + color: #098ddf; + visibility: hidden; } + .card-header.note-toolbar .dropdown-menu.note-check a.checked i { + visibility: visible; } + .card-header.note-toolbar .note-fontsize-10 { + font-size: 10px; } + .card-header.note-toolbar .note-color-palette { + line-height: 1; } + .card-header.note-toolbar .note-color-palette div .note-color-btn:hover { + border: 1px solid #000; } + .card-header.note-toolbar .btn-group .note-table { + min-width: 0; + padding: 5px; } + .card-header.note-toolbar .btn-group .note-table .note-dimension-picker { + font-size: 18px; } + .card-header.note-toolbar .note-style .dropdown-style blockquote { + padding: 5px 10px; + margin: 0; } + .card-header.note-toolbar .note-style .dropdown-style pre { + padding: 5px 10px; + margin: 0; } + .card-header.note-toolbar .note-style .dropdown-style h1 { + padding: 0; + margin: 0; } + .card-header.note-toolbar .note-style .dropdown-style h2 { + padding: 0; + margin: 0; } + .card-header.note-toolbar .note-style .dropdown-style h3 { + padding: 0; + margin: 0; } + .card-header.note-toolbar .note-style .dropdown-style h4 { + padding: 0; + margin: 0; } + .card-header.note-toolbar .note-style .dropdown-style h5 { + padding: 0; + margin: 0; } + .card-header.note-toolbar .note-style .dropdown-style h6 { + padding: 0; + margin: 0; } + .card-header.note-toolbar .note-style .dropdown-style p { + padding: 0; + margin: 0; } + .card-header.note-toolbar .note-para .dropdown-menu { + min-width: 216px; + padding: 5px; } + .card-header.note-toolbar .note-para .dropdown-menu > div:first-child { + margin-right: 5px; } + +.note-handle .note-control-selection { + position: absolute; + display: none; + border: 1px solid #000; } + .note-handle .note-control-selection > div { + position: absolute; } + .note-handle .note-control-selection .note-control-selection-bg { + width: 100%; + height: 100%; + background-color: #000; + opacity: .3; + filter: alpha(opacity=30); } + .note-handle .note-control-selection .note-control-handle { + width: 7px; + height: 7px; + border: 1px solid #000; } + .note-handle .note-control-selection .note-control-holder { + width: 7px; + height: 7px; + border: 1px solid #000; } + .note-handle .note-control-selection .note-control-sizing { + width: 7px; + height: 7px; + background-color: #fff; + border: 1px solid #000; } + .note-handle .note-control-selection .note-control-nw { + top: -5px; + left: -5px; + border-right: 0; + border-bottom: 0; } + .note-handle .note-control-selection .note-control-ne { + top: -5px; + right: -5px; + border-bottom: 0; + border-left: none; } + .note-handle .note-control-selection .note-control-sw { + bottom: -5px; + left: -5px; + border-top: 0; + border-right: 0; } + .note-handle .note-control-selection .note-control-se { + right: -5px; + bottom: -5px; + cursor: se-resize; } + .note-handle .note-control-selection .note-control-se.note-control-holder { + cursor: default; + border-top: 0; + border-left: none; } + .note-handle .note-control-selection .note-control-selection-info { + right: 0; + bottom: 0; + padding: 5px; + margin: 5px; + font-size: 12px; + color: #fff; + background-color: #000; + border-radius: 5px; + opacity: .7; + filter: alpha(opacity=70); } diff --git a/public/admin/assets/css/sweetalert2.css b/public/admin/assets/css/sweetalert2.css new file mode 100644 index 0000000..1b6ea15 --- /dev/null +++ b/public/admin/assets/css/sweetalert2.css @@ -0,0 +1,1304 @@ +@-webkit-keyframes swal2-show { + 0% { + -webkit-transform: scale(0.7); + transform: scale(0.7); } + 45% { + -webkit-transform: scale(1.05); + transform: scale(1.05); } + 80% { + -webkit-transform: scale(0.95); + transform: scale(0.95); } + 100% { + -webkit-transform: scale(1); + transform: scale(1); } } + +@keyframes swal2-show { + 0% { + -webkit-transform: scale(0.7); + transform: scale(0.7); } + 45% { + -webkit-transform: scale(1.05); + transform: scale(1.05); } + 80% { + -webkit-transform: scale(0.95); + transform: scale(0.95); } + 100% { + -webkit-transform: scale(1); + transform: scale(1); } } + +@-webkit-keyframes swal2-hide { + 0% { + -webkit-transform: scale(1); + transform: scale(1); + opacity: 1; } + 100% { + -webkit-transform: scale(0.5); + transform: scale(0.5); + opacity: 0; } } + +@keyframes swal2-hide { + 0% { + -webkit-transform: scale(1); + transform: scale(1); + opacity: 1; } + 100% { + -webkit-transform: scale(0.5); + transform: scale(0.5); + opacity: 0; } } + +@-webkit-keyframes swal2-animate-success-line-tip { + 0% { + top: 1.1875em; + left: .0625em; + width: 0; } + 54% { + top: 1.0625em; + left: .125em; + width: 0; } + 70% { + top: 2.1875em; + left: -.375em; + width: 3.125em; } + 84% { + top: 3em; + left: 1.3125em; + width: 1.0625em; } + 100% { + top: 2.8125em; + left: .875em; + width: 1.5625em; } } + +@keyframes swal2-animate-success-line-tip { + 0% { + top: 1.1875em; + left: .0625em; + width: 0; } + 54% { + top: 1.0625em; + left: .125em; + width: 0; } + 70% { + top: 2.1875em; + left: -.375em; + width: 3.125em; } + 84% { + top: 3em; + left: 1.3125em; + width: 1.0625em; } + 100% { + top: 2.8125em; + left: .875em; + width: 1.5625em; } } + +@-webkit-keyframes swal2-animate-success-line-long { + 0% { + top: 3.375em; + right: 2.875em; + width: 0; } + 65% { + top: 3.375em; + right: 2.875em; + width: 0; } + 84% { + top: 2.1875em; + right: 0; + width: 3.4375em; } + 100% { + top: 2.375em; + right: .5em; + width: 2.9375em; } } + +@keyframes swal2-animate-success-line-long { + 0% { + top: 3.375em; + right: 2.875em; + width: 0; } + 65% { + top: 3.375em; + right: 2.875em; + width: 0; } + 84% { + top: 2.1875em; + right: 0; + width: 3.4375em; } + 100% { + top: 2.375em; + right: .5em; + width: 2.9375em; } } + +@-webkit-keyframes swal2-rotate-success-circular-line { + 0% { + -webkit-transform: rotate(-45deg); + transform: rotate(-45deg); } + 5% { + -webkit-transform: rotate(-45deg); + transform: rotate(-45deg); } + 12% { + -webkit-transform: rotate(-405deg); + transform: rotate(-405deg); } + 100% { + -webkit-transform: rotate(-405deg); + transform: rotate(-405deg); } } + +@keyframes swal2-rotate-success-circular-line { + 0% { + -webkit-transform: rotate(-45deg); + transform: rotate(-45deg); } + 5% { + -webkit-transform: rotate(-45deg); + transform: rotate(-45deg); } + 12% { + -webkit-transform: rotate(-405deg); + transform: rotate(-405deg); } + 100% { + -webkit-transform: rotate(-405deg); + transform: rotate(-405deg); } } + +@-webkit-keyframes swal2-animate-error-x-mark { + 0% { + margin-top: 1.625em; + -webkit-transform: scale(0.4); + transform: scale(0.4); + opacity: 0; } + 50% { + margin-top: 1.625em; + -webkit-transform: scale(0.4); + transform: scale(0.4); + opacity: 0; } + 80% { + margin-top: -.375em; + -webkit-transform: scale(1.15); + transform: scale(1.15); } + 100% { + margin-top: 0; + -webkit-transform: scale(1); + transform: scale(1); + opacity: 1; } } + +@keyframes swal2-animate-error-x-mark { + 0% { + margin-top: 1.625em; + -webkit-transform: scale(0.4); + transform: scale(0.4); + opacity: 0; } + 50% { + margin-top: 1.625em; + -webkit-transform: scale(0.4); + transform: scale(0.4); + opacity: 0; } + 80% { + margin-top: -.375em; + -webkit-transform: scale(1.15); + transform: scale(1.15); } + 100% { + margin-top: 0; + -webkit-transform: scale(1); + transform: scale(1); + opacity: 1; } } + +@-webkit-keyframes swal2-animate-error-icon { + 0% { + -webkit-transform: rotateX(100deg); + transform: rotateX(100deg); + opacity: 0; } + 100% { + -webkit-transform: rotateX(0deg); + transform: rotateX(0deg); + opacity: 1; } } + +@keyframes swal2-animate-error-icon { + 0% { + -webkit-transform: rotateX(100deg); + transform: rotateX(100deg); + opacity: 0; } + 100% { + -webkit-transform: rotateX(0deg); + transform: rotateX(0deg); + opacity: 1; } } + +body.swal2-toast-shown .swal2-container { + position: fixed; + background-color: transparent; } + body.swal2-toast-shown .swal2-container.swal2-shown { + background-color: transparent; } + body.swal2-toast-shown .swal2-container.swal2-top { + top: 0; + right: auto; + bottom: auto; + left: 50%; + -webkit-transform: translateX(-50%); + transform: translateX(-50%); } + body.swal2-toast-shown .swal2-container.swal2-top-end, body.swal2-toast-shown .swal2-container.swal2-top-right { + top: 0; + right: 0; + bottom: auto; + left: auto; } + body.swal2-toast-shown .swal2-container.swal2-top-start, body.swal2-toast-shown .swal2-container.swal2-top-left { + top: 0; + right: auto; + bottom: auto; + left: 0; } + body.swal2-toast-shown .swal2-container.swal2-center-start, body.swal2-toast-shown .swal2-container.swal2-center-left { + top: 50%; + right: auto; + bottom: auto; + left: 0; + -webkit-transform: translateY(-50%); + transform: translateY(-50%); } + body.swal2-toast-shown .swal2-container.swal2-center { + top: 50%; + right: auto; + bottom: auto; + left: 50%; + -webkit-transform: translate(-50%, -50%); + transform: translate(-50%, -50%); } + body.swal2-toast-shown .swal2-container.swal2-center-end, body.swal2-toast-shown .swal2-container.swal2-center-right { + top: 50%; + right: 0; + bottom: auto; + left: auto; + -webkit-transform: translateY(-50%); + transform: translateY(-50%); } + body.swal2-toast-shown .swal2-container.swal2-bottom-start, body.swal2-toast-shown .swal2-container.swal2-bottom-left { + top: auto; + right: auto; + bottom: 0; + left: 0; } + body.swal2-toast-shown .swal2-container.swal2-bottom { + top: auto; + right: auto; + bottom: 0; + left: 50%; + -webkit-transform: translateX(-50%); + transform: translateX(-50%); } + body.swal2-toast-shown .swal2-container.swal2-bottom-end, body.swal2-toast-shown .swal2-container.swal2-bottom-right { + top: auto; + right: 0; + bottom: 0; + left: auto; } + +body.swal2-toast-column .swal2-toast { + -webkit-box-orient: vertical; + -webkit-box-direction: normal; + -ms-flex-direction: column; + flex-direction: column; + -webkit-box-align: stretch; + -ms-flex-align: stretch; + align-items: stretch; } + body.swal2-toast-column .swal2-toast .swal2-actions { + -webkit-box-flex: 1; + -ms-flex: 1; + flex: 1; + -ms-flex-item-align: stretch; + align-self: stretch; + height: 2.2em; + margin-top: .3125em; } + body.swal2-toast-column .swal2-toast .swal2-loading { + -webkit-box-pack: center; + -ms-flex-pack: center; + justify-content: center; } + body.swal2-toast-column .swal2-toast .swal2-input { + height: 2em; + margin: .3125em auto; + font-size: 1em; } + body.swal2-toast-column .swal2-toast .swal2-validation-message { + font-size: 1em; } + +.swal2-popup.swal2-toast { + -webkit-box-orient: horizontal; + -webkit-box-direction: normal; + -ms-flex-direction: row; + flex-direction: row; + -webkit-box-align: center; + -ms-flex-align: center; + align-items: center; + width: auto; + padding: 0.625em; + -webkit-box-shadow: 0 0 0.625em #d9d9d9; + box-shadow: 0 0 0.625em #d9d9d9; + overflow-y: hidden; } + .swal2-popup.swal2-toast .swal2-header { + -webkit-box-orient: horizontal; + -webkit-box-direction: normal; + -ms-flex-direction: row; + flex-direction: row; } + .swal2-popup.swal2-toast .swal2-title { + -webkit-box-flex: 1; + -ms-flex-positive: 1; + flex-grow: 1; + -webkit-box-pack: start; + -ms-flex-pack: start; + justify-content: flex-start; + margin: 0 .6em; + font-size: 1em; } + .swal2-popup.swal2-toast .swal2-footer { + margin: 0.5em 0 0; + padding: 0.5em 0 0; + font-size: 0.8em; } + .swal2-popup.swal2-toast .swal2-close { + position: initial; + width: 0.8em; + height: 0.8em; + line-height: 0.8; } + .swal2-popup.swal2-toast .swal2-content { + -webkit-box-pack: start; + -ms-flex-pack: start; + justify-content: flex-start; + font-size: 1em; } + .swal2-popup.swal2-toast .swal2-icon { + width: 2em; + min-width: 2em; + height: 2em; + margin: 0; } + .swal2-popup.swal2-toast .swal2-icon-text { + font-size: 2em; + font-weight: bold; + line-height: 1em; } + .swal2-popup.swal2-toast .swal2-icon.swal2-success .swal2-success-ring { + width: 2em; + height: 2em; } + .swal2-popup.swal2-toast .swal2-icon.swal2-error [class^='swal2-x-mark-line'] { + top: .875em; + width: 1.375em; } + .swal2-popup.swal2-toast .swal2-icon.swal2-error [class^='swal2-x-mark-line'][class$='left'] { + left: .3125em; } + .swal2-popup.swal2-toast .swal2-icon.swal2-error [class^='swal2-x-mark-line'][class$='right'] { + right: .3125em; } + .swal2-popup.swal2-toast .swal2-actions { + height: auto; + margin: 0 .3125em; } + .swal2-popup.swal2-toast .swal2-styled { + margin: 0 .3125em; + padding: .3125em .625em; + font-size: 1em; } + .swal2-popup.swal2-toast .swal2-styled:focus { + -webkit-box-shadow: 0 0 0 0.0625em #fff, 0 0 0 0.125em rgba(50, 100, 150, 0.4); + box-shadow: 0 0 0 0.0625em #fff, 0 0 0 0.125em rgba(50, 100, 150, 0.4); } + .swal2-popup.swal2-toast .swal2-success { + border-color: #a5dc86; } + .swal2-popup.swal2-toast .swal2-success [class^='swal2-success-circular-line'] { + position: absolute; + width: 2em; + height: 2.8125em; + -webkit-transform: rotate(45deg); + transform: rotate(45deg); + border-radius: 50%; } + .swal2-popup.swal2-toast .swal2-success [class^='swal2-success-circular-line'][class$='left'] { + top: -.25em; + left: -.9375em; + -webkit-transform: rotate(-45deg); + transform: rotate(-45deg); + -webkit-transform-origin: 2em 2em; + transform-origin: 2em 2em; + border-radius: 4em 0 0 4em; } + .swal2-popup.swal2-toast .swal2-success [class^='swal2-success-circular-line'][class$='right'] { + top: -.25em; + left: .9375em; + -webkit-transform-origin: 0 2em; + transform-origin: 0 2em; + border-radius: 0 4em 4em 0; } + .swal2-popup.swal2-toast .swal2-success .swal2-success-ring { + width: 2em; + height: 2em; } + .swal2-popup.swal2-toast .swal2-success .swal2-success-fix { + top: 0; + left: .4375em; + width: .4375em; + height: 2.6875em; } + .swal2-popup.swal2-toast .swal2-success [class^='swal2-success-line'] { + height: .3125em; } + .swal2-popup.swal2-toast .swal2-success [class^='swal2-success-line'][class$='tip'] { + top: 1.125em; + left: .1875em; + width: .75em; } + .swal2-popup.swal2-toast .swal2-success [class^='swal2-success-line'][class$='long'] { + top: .9375em; + right: .1875em; + width: 1.375em; } + .swal2-popup.swal2-toast.swal2-show { + -webkit-animation: showSweetToast .5s; + animation: showSweetToast .5s; } + .swal2-popup.swal2-toast.swal2-hide { + -webkit-animation: hideSweetToast .2s forwards; + animation: hideSweetToast .2s forwards; } + .swal2-popup.swal2-toast .swal2-animate-success-icon .swal2-success-line-tip { + -webkit-animation: animate-toast-success-tip .75s; + animation: animate-toast-success-tip .75s; } + .swal2-popup.swal2-toast .swal2-animate-success-icon .swal2-success-line-long { + -webkit-animation: animate-toast-success-long .75s; + animation: animate-toast-success-long .75s; } + +@-webkit-keyframes showSweetToast { + 0% { + -webkit-transform: translateY(-0.625em) rotateZ(2deg); + transform: translateY(-0.625em) rotateZ(2deg); + opacity: 0; } + 33% { + -webkit-transform: translateY(0) rotateZ(-2deg); + transform: translateY(0) rotateZ(-2deg); + opacity: .5; } + 66% { + -webkit-transform: translateY(0.3125em) rotateZ(2deg); + transform: translateY(0.3125em) rotateZ(2deg); + opacity: .7; } + 100% { + -webkit-transform: translateY(0) rotateZ(0); + transform: translateY(0) rotateZ(0); + opacity: 1; } } + +@keyframes showSweetToast { + 0% { + -webkit-transform: translateY(-0.625em) rotateZ(2deg); + transform: translateY(-0.625em) rotateZ(2deg); + opacity: 0; } + 33% { + -webkit-transform: translateY(0) rotateZ(-2deg); + transform: translateY(0) rotateZ(-2deg); + opacity: .5; } + 66% { + -webkit-transform: translateY(0.3125em) rotateZ(2deg); + transform: translateY(0.3125em) rotateZ(2deg); + opacity: .7; } + 100% { + -webkit-transform: translateY(0) rotateZ(0); + transform: translateY(0) rotateZ(0); + opacity: 1; } } + +@-webkit-keyframes hideSweetToast { + 0% { + opacity: 1; } + 33% { + opacity: .5; } + 100% { + -webkit-transform: rotateZ(1deg); + transform: rotateZ(1deg); + opacity: 0; } } + +@keyframes hideSweetToast { + 0% { + opacity: 1; } + 33% { + opacity: .5; } + 100% { + -webkit-transform: rotateZ(1deg); + transform: rotateZ(1deg); + opacity: 0; } } + +@-webkit-keyframes animate-toast-success-tip { + 0% { + top: .5625em; + left: .0625em; + width: 0; } + 54% { + top: .125em; + left: .125em; + width: 0; } + 70% { + top: .625em; + left: -.25em; + width: 1.625em; } + 84% { + top: 1.0625em; + left: .75em; + width: .5em; } + 100% { + top: 1.125em; + left: .1875em; + width: .75em; } } + +@keyframes animate-toast-success-tip { + 0% { + top: .5625em; + left: .0625em; + width: 0; } + 54% { + top: .125em; + left: .125em; + width: 0; } + 70% { + top: .625em; + left: -.25em; + width: 1.625em; } + 84% { + top: 1.0625em; + left: .75em; + width: .5em; } + 100% { + top: 1.125em; + left: .1875em; + width: .75em; } } + +@-webkit-keyframes animate-toast-success-long { + 0% { + top: 1.625em; + right: 1.375em; + width: 0; } + 65% { + top: 1.25em; + right: .9375em; + width: 0; } + 84% { + top: .9375em; + right: 0; + width: 1.125em; } + 100% { + top: .9375em; + right: .1875em; + width: 1.375em; } } + +@keyframes animate-toast-success-long { + 0% { + top: 1.625em; + right: 1.375em; + width: 0; } + 65% { + top: 1.25em; + right: .9375em; + width: 0; } + 84% { + top: .9375em; + right: 0; + width: 1.125em; } + 100% { + top: .9375em; + right: .1875em; + width: 1.375em; } } + +body.swal2-shown:not(.swal2-no-backdrop):not(.swal2-toast-shown) { + overflow: hidden; } + +body.swal2-height-auto { + height: auto !important; } + +body.swal2-no-backdrop .swal2-shown { + top: auto; + right: auto; + bottom: auto; + left: auto; + background-color: transparent; } + body.swal2-no-backdrop .swal2-shown > .swal2-modal { + -webkit-box-shadow: 0 0 10px rgba(0, 0, 0, 0.4); + box-shadow: 0 0 10px rgba(0, 0, 0, 0.4); } + body.swal2-no-backdrop .swal2-shown.swal2-top { + top: 0; + left: 50%; + -webkit-transform: translateX(-50%); + transform: translateX(-50%); } + body.swal2-no-backdrop .swal2-shown.swal2-top-start, body.swal2-no-backdrop .swal2-shown.swal2-top-left { + top: 0; + left: 0; } + body.swal2-no-backdrop .swal2-shown.swal2-top-end, body.swal2-no-backdrop .swal2-shown.swal2-top-right { + top: 0; + right: 0; } + body.swal2-no-backdrop .swal2-shown.swal2-center { + top: 50%; + left: 50%; + -webkit-transform: translate(-50%, -50%); + transform: translate(-50%, -50%); } + body.swal2-no-backdrop .swal2-shown.swal2-center-start, body.swal2-no-backdrop .swal2-shown.swal2-center-left { + top: 50%; + left: 0; + -webkit-transform: translateY(-50%); + transform: translateY(-50%); } + body.swal2-no-backdrop .swal2-shown.swal2-center-end, body.swal2-no-backdrop .swal2-shown.swal2-center-right { + top: 50%; + right: 0; + -webkit-transform: translateY(-50%); + transform: translateY(-50%); } + body.swal2-no-backdrop .swal2-shown.swal2-bottom { + bottom: 0; + left: 50%; + -webkit-transform: translateX(-50%); + transform: translateX(-50%); } + body.swal2-no-backdrop .swal2-shown.swal2-bottom-start, body.swal2-no-backdrop .swal2-shown.swal2-bottom-left { + bottom: 0; + left: 0; } + body.swal2-no-backdrop .swal2-shown.swal2-bottom-end, body.swal2-no-backdrop .swal2-shown.swal2-bottom-right { + right: 0; + bottom: 0; } + +.swal2-container { + display: -webkit-box; + display: -ms-flexbox; + display: flex; + position: fixed; + top: 0; + right: 0; + bottom: 0; + left: 0; + -webkit-box-orient: horizontal; + -webkit-box-direction: normal; + -ms-flex-direction: row; + flex-direction: row; + -webkit-box-align: center; + -ms-flex-align: center; + align-items: center; + -webkit-box-pack: center; + -ms-flex-pack: center; + justify-content: center; + padding: 10px; + background-color: transparent; + z-index: 1060; + overflow-x: hidden; + -webkit-overflow-scrolling: touch; } + .swal2-container.swal2-top { + -webkit-box-align: start; + -ms-flex-align: start; + align-items: flex-start; } + .swal2-container.swal2-top-start, .swal2-container.swal2-top-left { + -webkit-box-align: start; + -ms-flex-align: start; + align-items: flex-start; + -webkit-box-pack: start; + -ms-flex-pack: start; + justify-content: flex-start; } + .swal2-container.swal2-top-end, .swal2-container.swal2-top-right { + -webkit-box-align: start; + -ms-flex-align: start; + align-items: flex-start; + -webkit-box-pack: end; + -ms-flex-pack: end; + justify-content: flex-end; } + .swal2-container.swal2-center { + -webkit-box-align: center; + -ms-flex-align: center; + align-items: center; } + .swal2-container.swal2-center-start, .swal2-container.swal2-center-left { + -webkit-box-align: center; + -ms-flex-align: center; + align-items: center; + -webkit-box-pack: start; + -ms-flex-pack: start; + justify-content: flex-start; } + .swal2-container.swal2-center-end, .swal2-container.swal2-center-right { + -webkit-box-align: center; + -ms-flex-align: center; + align-items: center; + -webkit-box-pack: end; + -ms-flex-pack: end; + justify-content: flex-end; } + .swal2-container.swal2-bottom { + -webkit-box-align: end; + -ms-flex-align: end; + align-items: flex-end; } + .swal2-container.swal2-bottom-start, .swal2-container.swal2-bottom-left { + -webkit-box-align: end; + -ms-flex-align: end; + align-items: flex-end; + -webkit-box-pack: start; + -ms-flex-pack: start; + justify-content: flex-start; } + .swal2-container.swal2-bottom-end, .swal2-container.swal2-bottom-right { + -webkit-box-align: end; + -ms-flex-align: end; + align-items: flex-end; + -webkit-box-pack: end; + -ms-flex-pack: end; + justify-content: flex-end; } + .swal2-container.swal2-grow-fullscreen > .swal2-modal { + display: -webkit-box !important; + display: -ms-flexbox !important; + display: flex !important; + -webkit-box-flex: 1; + -ms-flex: 1; + flex: 1; + -ms-flex-item-align: stretch; + align-self: stretch; + -webkit-box-pack: center; + -ms-flex-pack: center; + justify-content: center; } + .swal2-container.swal2-grow-row > .swal2-modal { + display: -webkit-box !important; + display: -ms-flexbox !important; + display: flex !important; + -webkit-box-flex: 1; + -ms-flex: 1; + flex: 1; + -ms-flex-line-pack: center; + align-content: center; + -webkit-box-pack: center; + -ms-flex-pack: center; + justify-content: center; } + .swal2-container.swal2-grow-column { + -webkit-box-flex: 1; + -ms-flex: 1; + flex: 1; + -webkit-box-orient: vertical; + -webkit-box-direction: normal; + -ms-flex-direction: column; + flex-direction: column; } + .swal2-container.swal2-grow-column.swal2-top, .swal2-container.swal2-grow-column.swal2-center, .swal2-container.swal2-grow-column.swal2-bottom { + -webkit-box-align: center; + -ms-flex-align: center; + align-items: center; } + .swal2-container.swal2-grow-column.swal2-top-start, .swal2-container.swal2-grow-column.swal2-center-start, .swal2-container.swal2-grow-column.swal2-bottom-start, .swal2-container.swal2-grow-column.swal2-top-left, .swal2-container.swal2-grow-column.swal2-center-left, .swal2-container.swal2-grow-column.swal2-bottom-left { + -webkit-box-align: start; + -ms-flex-align: start; + align-items: flex-start; } + .swal2-container.swal2-grow-column.swal2-top-end, .swal2-container.swal2-grow-column.swal2-center-end, .swal2-container.swal2-grow-column.swal2-bottom-end, .swal2-container.swal2-grow-column.swal2-top-right, .swal2-container.swal2-grow-column.swal2-center-right, .swal2-container.swal2-grow-column.swal2-bottom-right { + -webkit-box-align: end; + -ms-flex-align: end; + align-items: flex-end; } + .swal2-container.swal2-grow-column > .swal2-modal { + display: -webkit-box !important; + display: -ms-flexbox !important; + display: flex !important; + -webkit-box-flex: 1; + -ms-flex: 1; + flex: 1; + -ms-flex-line-pack: center; + align-content: center; + -webkit-box-pack: center; + -ms-flex-pack: center; + justify-content: center; } + .swal2-container:not(.swal2-top):not(.swal2-top-start):not(.swal2-top-end):not(.swal2-top-left):not(.swal2-top-right):not(.swal2-center-start):not(.swal2-center-end):not(.swal2-center-left):not(.swal2-center-right):not(.swal2-bottom):not(.swal2-bottom-start):not(.swal2-bottom-end):not(.swal2-bottom-left):not(.swal2-bottom-right):not(.swal2-grow-fullscreen) > .swal2-modal { + margin: auto; } + @media all and (-ms-high-contrast: none), (-ms-high-contrast: active) { + .swal2-container .swal2-modal { + margin: 0 !important; } } + .swal2-container.swal2-fade { + -webkit-transition: background-color .1s; + transition: background-color .1s; } + .swal2-container.swal2-shown { + background-color: rgba(0, 0, 0, 0.4); } + +.swal2-popup { + display: none; + position: relative; + -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; + width: 32em; + max-width: 100%; + padding: 1.25em; + border-radius: 0.3125em; + background: #fff; + font-family: inherit; + font-size: 1rem; + -webkit-box-sizing: border-box; + box-sizing: border-box; } + .swal2-popup:focus { + outline: none; } + .swal2-popup.swal2-loading { + overflow-y: hidden; } + .swal2-popup .swal2-header { + 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-align: center; + -ms-flex-align: center; + align-items: center; } + .swal2-popup .swal2-title { + display: block; + position: relative; + max-width: 100%; + margin: 0 0 0.4em; + padding: 0; + color: #595959; + font-size: 1.875em; + font-weight: 600; + text-align: center; + text-transform: none; + word-wrap: break-word; } + .swal2-popup .swal2-actions { + -ms-flex-wrap: wrap; + flex-wrap: wrap; + -webkit-box-align: center; + -ms-flex-align: center; + align-items: center; + -webkit-box-pack: center; + -ms-flex-pack: center; + justify-content: center; + margin: 1.25em auto 0; + z-index: 1; } + .swal2-popup .swal2-actions:not(.swal2-loading) .swal2-styled[disabled] { + opacity: .4; } + .swal2-popup .swal2-actions:not(.swal2-loading) .swal2-styled:hover { + background-image: -webkit-gradient(linear, left top, left bottom, from(rgba(0, 0, 0, 0.1)), to(rgba(0, 0, 0, 0.1))); + background-image: linear-gradient(rgba(0, 0, 0, 0.1), rgba(0, 0, 0, 0.1)); } + .swal2-popup .swal2-actions:not(.swal2-loading) .swal2-styled:active { + background-image: -webkit-gradient(linear, left top, left bottom, from(rgba(0, 0, 0, 0.2)), to(rgba(0, 0, 0, 0.2))); + background-image: linear-gradient(rgba(0, 0, 0, 0.2), rgba(0, 0, 0, 0.2)); } + .swal2-popup .swal2-actions.swal2-loading .swal2-styled.swal2-confirm { + width: 2.5em; + height: 2.5em; + margin: .46875em; + padding: 0; + border: .25em solid transparent; + border-radius: 100%; + border-color: transparent; + background-color: transparent !important; + color: transparent; + cursor: default; + -webkit-box-sizing: border-box; + box-sizing: border-box; + -webkit-animation: swal2-rotate-loading 1.5s linear 0s infinite normal; + animation: swal2-rotate-loading 1.5s linear 0s infinite normal; + -webkit-user-select: none; + -moz-user-select: none; + -ms-user-select: none; + user-select: none; } + .swal2-popup .swal2-actions.swal2-loading .swal2-styled.swal2-cancel { + margin-right: 30px; + margin-left: 30px; } + .swal2-popup .swal2-actions.swal2-loading :not(.swal2-styled).swal2-confirm::after { + display: inline-block; + width: 15px; + height: 15px; + margin-left: 5px; + border: 3px solid #999999; + border-radius: 50%; + border-right-color: transparent; + -webkit-box-shadow: 1px 1px 1px #fff; + box-shadow: 1px 1px 1px #fff; + content: ''; + -webkit-animation: swal2-rotate-loading 1.5s linear 0s infinite normal; + animation: swal2-rotate-loading 1.5s linear 0s infinite normal; } + .swal2-popup .swal2-styled { + margin: .3125em; + padding: .625em 2em; + font-weight: 500; + -webkit-box-shadow: none; + box-shadow: none; } + .swal2-popup .swal2-styled:not([disabled]) { + cursor: pointer; } + .swal2-popup .swal2-styled.swal2-confirm { + border: 0; + border-radius: 0.25em; + background: initial; + background-color: #3085d6; + color: #fff; + font-size: 1.0625em; } + .swal2-popup .swal2-styled.swal2-cancel { + border: 0; + border-radius: 0.25em; + background: initial; + background-color: #aaa; + color: #fff; + font-size: 1.0625em; } + .swal2-popup .swal2-styled:focus { + outline: none; + -webkit-box-shadow: 0 0 0 2px #fff, 0 0 0 4px rgba(50, 100, 150, 0.4); + box-shadow: 0 0 0 2px #fff, 0 0 0 4px rgba(50, 100, 150, 0.4); } + .swal2-popup .swal2-styled::-moz-focus-inner { + border: 0; } + .swal2-popup .swal2-footer { + -webkit-box-pack: center; + -ms-flex-pack: center; + justify-content: center; + margin: 1.25em 0 0; + padding: 1em 0 0; + border-top: 1px solid #eee; + color: #545454; + font-size: 1em; } + .swal2-popup .swal2-image { + max-width: 100%; + margin: 1.25em auto; } + .swal2-popup .swal2-close { + position: absolute; + top: 0; + right: 0; + -webkit-box-pack: center; + -ms-flex-pack: center; + justify-content: center; + width: 1.2em; + height: 1.2em; + padding: 0; + -webkit-transition: color 0.1s ease-out; + transition: color 0.1s ease-out; + border: none; + border-radius: 0; + outline: initial; + background: transparent; + color: #cccccc; + font-family: serif; + font-size: 2.5em; + line-height: 1.2; + cursor: pointer; + overflow: hidden; } + .swal2-popup .swal2-close:hover { + -webkit-transform: none; + transform: none; + color: #f27474; } + .swal2-popup > .swal2-input, + .swal2-popup > .swal2-file, + .swal2-popup > .swal2-textarea, + .swal2-popup > .swal2-select, + .swal2-popup > .swal2-radio, + .swal2-popup > .swal2-checkbox { + display: none; } + .swal2-popup .swal2-content { + -webkit-box-pack: center; + -ms-flex-pack: center; + justify-content: center; + margin: 0; + padding: 0; + color: #545454; + font-size: 1.125em; + font-weight: 300; + line-height: normal; + z-index: 1; + word-wrap: break-word; } + .swal2-popup #swal2-content { + text-align: center; } + .swal2-popup .swal2-input, + .swal2-popup .swal2-file, + .swal2-popup .swal2-textarea, + .swal2-popup .swal2-select, + .swal2-popup .swal2-radio, + .swal2-popup .swal2-checkbox { + margin: 1em auto; } + .swal2-popup .swal2-input, + .swal2-popup .swal2-file, + .swal2-popup .swal2-textarea { + width: 100%; + -webkit-transition: border-color .3s, -webkit-box-shadow .3s; + transition: border-color .3s, -webkit-box-shadow .3s; + transition: border-color .3s, box-shadow .3s; + transition: border-color .3s, box-shadow .3s, -webkit-box-shadow .3s; + border: 1px solid #d9d9d9; + border-radius: 0.1875em; + font-size: 1.125em; + -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.06); + box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.06); + -webkit-box-sizing: border-box; + box-sizing: border-box; } + .swal2-popup .swal2-input.swal2-inputerror, + .swal2-popup .swal2-file.swal2-inputerror, + .swal2-popup .swal2-textarea.swal2-inputerror { + border-color: #f27474 !important; + -webkit-box-shadow: 0 0 2px #f27474 !important; + box-shadow: 0 0 2px #f27474 !important; } + .swal2-popup .swal2-input:focus, + .swal2-popup .swal2-file:focus, + .swal2-popup .swal2-textarea:focus { + border: 1px solid #b4dbed; + outline: none; + -webkit-box-shadow: 0 0 3px #c4e6f5; + box-shadow: 0 0 3px #c4e6f5; } + .swal2-popup .swal2-input::-webkit-input-placeholder, .swal2-popup .swal2-file::-webkit-input-placeholder, .swal2-popup .swal2-textarea::-webkit-input-placeholder { + color: #cccccc; } + .swal2-popup .swal2-input::-moz-placeholder, .swal2-popup .swal2-file::-moz-placeholder, .swal2-popup .swal2-textarea::-moz-placeholder { + color: #cccccc; } + .swal2-popup .swal2-input:-ms-input-placeholder, .swal2-popup .swal2-file:-ms-input-placeholder, .swal2-popup .swal2-textarea:-ms-input-placeholder { + color: #cccccc; } + .swal2-popup .swal2-input::-ms-input-placeholder, .swal2-popup .swal2-file::-ms-input-placeholder, .swal2-popup .swal2-textarea::-ms-input-placeholder { + color: #cccccc; } + .swal2-popup .swal2-input::placeholder, + .swal2-popup .swal2-file::placeholder, + .swal2-popup .swal2-textarea::placeholder { + color: #cccccc; } + .swal2-popup .swal2-range input { + width: 80%; } + .swal2-popup .swal2-range output { + width: 20%; + font-weight: 600; + text-align: center; } + .swal2-popup .swal2-range input, + .swal2-popup .swal2-range output { + height: 2.625em; + margin: 1em auto; + padding: 0; + font-size: 1.125em; + line-height: 2.625em; } + .swal2-popup .swal2-input { + height: 2.625em; + padding: 0 0.75em; } + .swal2-popup .swal2-input[type='number'] { + max-width: 10em; } + .swal2-popup .swal2-file { + font-size: 1.125em; } + .swal2-popup .swal2-textarea { + height: 6.75em; + padding: 0.75em; } + .swal2-popup .swal2-select { + min-width: 50%; + max-width: 100%; + padding: .375em .625em; + color: #545454; + font-size: 1.125em; } + .swal2-popup .swal2-radio, + .swal2-popup .swal2-checkbox { + -webkit-box-align: center; + -ms-flex-align: center; + align-items: center; + -webkit-box-pack: center; + -ms-flex-pack: center; + justify-content: center; } + .swal2-popup .swal2-radio label, + .swal2-popup .swal2-checkbox label { + margin: 0 .6em; + font-size: 1.125em; } + .swal2-popup .swal2-radio input, + .swal2-popup .swal2-checkbox input { + margin: 0 .4em; } + .swal2-popup .swal2-validation-message { + display: none; + -webkit-box-align: center; + -ms-flex-align: center; + align-items: center; + -webkit-box-pack: center; + -ms-flex-pack: center; + justify-content: center; + padding: 0.625em; + background: #f0f0f0; + color: #666666; + font-size: 1em; + font-weight: 300; + overflow: hidden; } + .swal2-popup .swal2-validation-message::before { + display: inline-block; + width: 1.5em; + min-width: 1.5em; + height: 1.5em; + margin: 0 .625em; + border-radius: 50%; + background-color: #f27474; + color: #fff; + font-weight: 600; + line-height: 1.5em; + text-align: center; + content: '!'; + zoom: normal; } + +@supports (-ms-accelerator: true) { + .swal2-range input { + width: 100% !important; } + .swal2-range output { + display: none; } } + +@media all and (-ms-high-contrast: none), (-ms-high-contrast: active) { + .swal2-range input { + width: 100% !important; } + .swal2-range output { + display: none; } } + +@-moz-document url-prefix() { + .swal2-close:focus { + outline: 2px solid rgba(50, 100, 150, 0.4); } } + +.swal2-icon { + position: relative; + -webkit-box-pack: center; + -ms-flex-pack: center; + justify-content: center; + width: 5em; + height: 5em; + margin: 1.25em auto 1.875em; + border: .25em solid transparent; + border-radius: 50%; + line-height: 5em; + cursor: default; + -webkit-box-sizing: content-box; + box-sizing: content-box; + -webkit-user-select: none; + -moz-user-select: none; + -ms-user-select: none; + user-select: none; + zoom: normal; } + .swal2-icon-text { + font-size: 3.75em; } + .swal2-icon.swal2-error { + border-color: #f27474; } + .swal2-icon.swal2-error .swal2-x-mark { + position: relative; + -webkit-box-flex: 1; + -ms-flex-positive: 1; + flex-grow: 1; } + .swal2-icon.swal2-error [class^='swal2-x-mark-line'] { + display: block; + position: absolute; + top: 2.3125em; + width: 2.9375em; + height: .3125em; + border-radius: .125em; + background-color: #f27474; } + .swal2-icon.swal2-error [class^='swal2-x-mark-line'][class$='left'] { + left: 1.0625em; + -webkit-transform: rotate(45deg); + transform: rotate(45deg); } + .swal2-icon.swal2-error [class^='swal2-x-mark-line'][class$='right'] { + right: 1em; + -webkit-transform: rotate(-45deg); + transform: rotate(-45deg); } + .swal2-icon.swal2-warning { + border-color: #facea8; + color: #f8bb86; } + .swal2-icon.swal2-info { + border-color: #9de0f6; + color: #3fc3ee; } + .swal2-icon.swal2-question { + border-color: #c9dae1; + color: #87adbd; } + .swal2-icon.swal2-success { + border-color: #a5dc86; } + .swal2-icon.swal2-success [class^='swal2-success-circular-line'] { + position: absolute; + width: 3.75em; + height: 7.5em; + -webkit-transform: rotate(45deg); + transform: rotate(45deg); + border-radius: 50%; } + .swal2-icon.swal2-success [class^='swal2-success-circular-line'][class$='left'] { + top: -.4375em; + left: -2.0635em; + -webkit-transform: rotate(-45deg); + transform: rotate(-45deg); + -webkit-transform-origin: 3.75em 3.75em; + transform-origin: 3.75em 3.75em; + border-radius: 7.5em 0 0 7.5em; } + .swal2-icon.swal2-success [class^='swal2-success-circular-line'][class$='right'] { + top: -.6875em; + left: 1.875em; + -webkit-transform: rotate(-45deg); + transform: rotate(-45deg); + -webkit-transform-origin: 0 3.75em; + transform-origin: 0 3.75em; + border-radius: 0 7.5em 7.5em 0; } + .swal2-icon.swal2-success .swal2-success-ring { + position: absolute; + top: -.25em; + left: -.25em; + width: 100%; + height: 100%; + border: 0.25em solid rgba(165, 220, 134, 0.3); + border-radius: 50%; + z-index: 2; + -webkit-box-sizing: content-box; + box-sizing: content-box; } + .swal2-icon.swal2-success .swal2-success-fix { + position: absolute; + top: .5em; + left: 1.625em; + width: .4375em; + height: 5.625em; + -webkit-transform: rotate(-45deg); + transform: rotate(-45deg); + z-index: 1; } + .swal2-icon.swal2-success [class^='swal2-success-line'] { + display: block; + position: absolute; + height: .3125em; + border-radius: .125em; + background-color: #a5dc86; + z-index: 2; } + .swal2-icon.swal2-success [class^='swal2-success-line'][class$='tip'] { + top: 2.875em; + left: .875em; + width: 1.5625em; + -webkit-transform: rotate(45deg); + transform: rotate(45deg); } + .swal2-icon.swal2-success [class^='swal2-success-line'][class$='long'] { + top: 2.375em; + right: .5em; + width: 2.9375em; + -webkit-transform: rotate(-45deg); + transform: rotate(-45deg); } + +.swal2-progresssteps { + -webkit-box-align: center; + -ms-flex-align: center; + align-items: center; + margin: 0 0 1.25em; + padding: 0; + font-weight: 600; } + .swal2-progresssteps li { + display: inline-block; + position: relative; } + .swal2-progresssteps .swal2-progresscircle { + width: 2em; + height: 2em; + border-radius: 2em; + background: #3085d6; + color: #fff; + line-height: 2em; + text-align: center; + z-index: 20; } + .swal2-progresssteps .swal2-progresscircle:first-child { + margin-left: 0; } + .swal2-progresssteps .swal2-progresscircle:last-child { + margin-right: 0; } + .swal2-progresssteps .swal2-progresscircle.swal2-activeprogressstep { + background: #3085d6; } + .swal2-progresssteps .swal2-progresscircle.swal2-activeprogressstep ~ .swal2-progresscircle { + background: #add8e6; } + .swal2-progresssteps .swal2-progresscircle.swal2-activeprogressstep ~ .swal2-progressline { + background: #add8e6; } + .swal2-progresssteps .swal2-progressline { + width: 2.5em; + height: .4em; + margin: 0 -1px; + background: #3085d6; + z-index: 10; } + +[class^='swal2'] { + -webkit-tap-highlight-color: transparent; } + +.swal2-show { + -webkit-animation: swal2-show 0.3s; + animation: swal2-show 0.3s; } + .swal2-show.swal2-noanimation { + -webkit-animation: none; + animation: none; } + +.swal2-hide { + -webkit-animation: swal2-hide 0.15s forwards; + animation: swal2-hide 0.15s forwards; } + .swal2-hide.swal2-noanimation { + -webkit-animation: none; + animation: none; } + +.swal2-rtl .swal2-close { + right: auto; + left: 0; } + +.swal2-animate-success-icon .swal2-success-line-tip { + -webkit-animation: swal2-animate-success-line-tip 0.75s; + animation: swal2-animate-success-line-tip 0.75s; } + +.swal2-animate-success-icon .swal2-success-line-long { + -webkit-animation: swal2-animate-success-line-long 0.75s; + animation: swal2-animate-success-line-long 0.75s; } + +.swal2-animate-success-icon .swal2-success-circular-line-right { + -webkit-animation: swal2-rotate-success-circular-line 4.25s ease-in; + animation: swal2-rotate-success-circular-line 4.25s ease-in; } + +.swal2-animate-error-icon { + -webkit-animation: swal2-animate-error-icon 0.5s; + animation: swal2-animate-error-icon 0.5s; } + .swal2-animate-error-icon .swal2-x-mark { + -webkit-animation: swal2-animate-error-x-mark 0.5s; + animation: swal2-animate-error-x-mark 0.5s; } + +@-webkit-keyframes swal2-rotate-loading { + 0% { + -webkit-transform: rotate(0deg); + transform: rotate(0deg); } + 100% { + -webkit-transform: rotate(360deg); + transform: rotate(360deg); } } + +@keyframes swal2-rotate-loading { + 0% { + -webkit-transform: rotate(0deg); + transform: rotate(0deg); } + 100% { + -webkit-transform: rotate(360deg); + transform: rotate(360deg); } } + +@media print { + body.swal2-shown:not(.swal2-no-backdrop):not(.swal2-toast-shown) { + overflow-y: scroll !important; } + body.swal2-shown:not(.swal2-no-backdrop):not(.swal2-toast-shown) > [aria-hidden='true'] { + display: none; } + body.swal2-shown:not(.swal2-no-backdrop):not(.swal2-toast-shown) .swal2-container { + position: initial !important; } } diff --git a/public/admin/assets/css/themify.css b/public/admin/assets/css/themify.css new file mode 100644 index 0000000..f23b028 --- /dev/null +++ b/public/admin/assets/css/themify.css @@ -0,0 +1,1250 @@ +/* FONT PATH + * -------------------------- */ +@font-face { + font-family: 'themify'; + src: url("../fonts/themify/themify9f24.eot?-fvbane"); + src: url("../fonts/themify/themifyd41d.eot?#iefix-fvbane") format("embedded-opentype"), url("../fonts/themify/themify9f24.woff?-fvbane") format("woff"), url("../fonts/themify/themify9f24.ttf?-fvbane") format("truetype"), url("../fonts/themify/themify9f24.svg?-fvbane#themify") format("svg"); + font-weight: normal; + font-style: normal; } + +[class^="icon-"], +[class*=" icon-"] { + font-family: 'themify'; + speak: none; + font-style: normal; + font-weight: normal; + font-variant: normal; + text-transform: none; + line-height: 1; + -webkit-font-smoothing: antialiased; + -moz-osx-font-smoothing: grayscale; + *margin-right: .3em; } + +[class^="icon-"]:before, +[class*=" icon-"]:before { + text-decoration: inherit; + display: inline-block; + speak: none; } + +/* makes the font 33% larger relative to the icon container */ +.icon-large:before { + vertical-align: -10%; + font-size: 1.33333em; } + +/* makes sure icons active on rollover in links */ +a [class^="icon-"], +a [class*=" icon-"] { + display: inline; } + +/* increased font size for icon-large */ +[class^="icon-"].icon-fixed-width, +[class*=" icon-"].icon-fixed-width { + display: inline-block; + width: 1.14286em; + text-align: right; + padding-right: 0.28571em; } + [class^="icon-"].icon-fixed-width.icon-large, + [class*=" icon-"].icon-fixed-width.icon-large { + width: 1.42857em; } + +.icons-ul { + margin-left: 2.14286em; + list-style-type: none; } + .icons-ul > li { + position: relative; } + .icons-ul .icon-li { + position: absolute; + left: -2.14286em; + width: 2.14286em; + text-align: center; + line-height: inherit; } + +[class^="icon-"].hide, +[class*=" icon-"].hide { + display: none; } + +.icon-muted { + color: #eeeeee; } + +.icon-light { + color: white; } + +.icon-dark { + color: #333333; } + +.icon-border { + border: solid 1px #eeeeee; + padding: .2em .25em .15em; + border-radius: 3px; } + +.icon-2x { + font-size: 2em; } + .icon-2x.icon-border { + border-width: 2px; + border-radius: 4px; } + +.icon-3x { + font-size: 3em; } + .icon-3x.icon-border { + border-width: 3px; + border-radius: 5px; } + +.icon-4x { + font-size: 4em; } + .icon-4x.icon-border { + border-width: 4px; + border-radius: 6px; } + +.icon-5x { + font-size: 5em; } + .icon-5x.icon-border { + border-width: 5px; + border-radius: 7px; } + +.pull-right { + float: right; } + +.pull-left { + float: left; } + +[class^="icon-"].pull-left, +[class*=" icon-"].pull-left { + margin-right: .3em; } + +[class^="icon-"].pull-right, +[class*=" icon-"].pull-right { + margin-left: .3em; } + +/* EXTRAS + * -------------------------- */ +/* Stacked and layered icon */ +.icon-stack { + position: relative; + display: inline-block; + width: 2em; + height: 2em; + line-height: 2em; + vertical-align: -35%; } + .icon-stack [class^="icon-"], + .icon-stack [class*=" icon-"] { + display: block; + text-align: center; + position: absolute; + width: 100%; + height: 100%; + font-size: 1em; + line-height: inherit; + *line-height: 2em; } + .icon-stack .icon-stack-base { + font-size: 2em; + *line-height: 1em; } + +/* Animated rotating icon */ +.icon-spin { + display: inline-block; + -webkit-animation: spin 2s infinite linear; + animation: spin 2s infinite linear; } + +/* Prevent stack and spinners from being taken inline when inside a link */ +a .icon-stack, +a .icon-spin { + display: inline-block; + text-decoration: none; } + +@-webkit-keyframes spin { + 0% { + -webkit-transform: rotate(0deg); } + 100% { + -webkit-transform: rotate(359deg); } } + +@keyframes spin { + 0% { + -webkit-transform: rotate(0deg); + transform: rotate(0deg); } + 100% { + -webkit-transform: rotate(359deg); + transform: rotate(359deg); } } + +/* Icon rotations and mirroring */ +.icon-rotate-90:before { + -webkit-transform: rotate(90deg); + transform: rotate(90deg); + filter: progid:DXImageTransform.Microsoft.BasicImage(rotation=1); } + +.icon-rotate-180:before { + -webkit-transform: rotate(180deg); + transform: rotate(180deg); + filter: progid:DXImageTransform.Microsoft.BasicImage(rotation=2); } + +.icon-rotate-270:before { + -webkit-transform: rotate(270deg); + transform: rotate(270deg); + filter: progid:DXImageTransform.Microsoft.BasicImage(rotation=3); } + +.icon-flip-horizontal:before { + -webkit-transform: scale(-1, 1); + transform: scale(-1, 1); } + +.icon-flip-vertical:before { + -webkit-transform: scale(1, -1); + transform: scale(1, -1); } + +/* ensure rotation occurs inside anchor tags */ +a .icon-rotate-90:before, a .icon-rotate-180:before, a .icon-rotate-270:before, a .icon-flip-horizontal:before, a .icon-flip-vertical:before { + display: inline-block; } + +.icon-wand:before { + content: "\e600"; } + +.icon-volume:before { + content: "\e601"; } + +.icon-user:before { + content: "\e602"; } + +.icon-unlock:before { + content: "\e603"; } + +.icon-unlink:before { + content: "\e604"; } + +.icon-trash:before { + content: "\e605"; } + +.icon-thought:before { + content: "\e606"; } + +.icon-target:before { + content: "\e607"; } + +.icon-tag:before { + content: "\e608"; } + +.icon-tablet:before { + content: "\e609"; } + +.icon-star:before { + content: "\e60a"; } + +.icon-spray:before { + content: "\e60b"; } + +.icon-signal:before { + content: "\e60c"; } + +.icon-shopping-cart:before { + content: "\e60d"; } + +.icon-shopping-cart-full:before { + content: "\e60e"; } + +.icon-settings:before { + content: "\e60f"; } + +.icon-search:before { + content: "\e610"; } + +.icon-zoom-in:before { + content: "\e611"; } + +.icon-zoom-out:before { + content: "\e612"; } + +.icon-cut:before { + content: "\e613"; } + +.icon-ruler:before { + content: "\e614"; } + +.icon-ruler-pencil:before { + content: "\e615"; } + +.icon-ruler-alt:before { + content: "\e616"; } + +.icon-bookmark:before { + content: "\e617"; } + +.icon-bookmark-alt:before { + content: "\e618"; } + +.icon-reload:before { + content: "\e619"; } + +.icon-plus:before { + content: "\e61a"; } + +.icon-pin:before { + content: "\e61b"; } + +.icon-pencil:before { + content: "\e61c"; } + +.icon-pencil-alt:before { + content: "\e61d"; } + +.icon-paint-roller:before { + content: "\e61e"; } + +.icon-paint-bucket:before { + content: "\e61f"; } + +.icon-na:before { + content: "\e620"; } + +.icon-mobile:before { + content: "\e621"; } + +.icon-minus:before { + content: "\e622"; } + +.icon-medall:before { + content: "\e623"; } + +.icon-medall-alt:before { + content: "\e624"; } + +.icon-marker:before { + content: "\e625"; } + +.icon-marker-alt:before { + content: "\e626"; } + +.icon-arrow-up:before { + content: "\e627"; } + +.icon-arrow-right:before { + content: "\e628"; } + +.icon-arrow-left:before { + content: "\e629"; } + +.icon-arrow-down:before { + content: "\e62a"; } + +.icon-lock:before { + content: "\e62b"; } + +.icon-location-arrow:before { + content: "\e62c"; } + +.icon-link:before { + content: "\e62d"; } + +.icon-layout:before { + content: "\e62e"; } + +.icon-layers:before { + content: "\e62f"; } + +.icon-layers-alt:before { + content: "\e630"; } + +.icon-key:before { + content: "\e631"; } + +.icon-import:before { + content: "\e632"; } + +.icon-image:before { + content: "\e633"; } + +.icon-heart:before { + content: "\e634"; } + +.icon-heart-broken:before { + content: "\e635"; } + +.icon-hand-stop:before { + content: "\e636"; } + +.icon-hand-open:before { + content: "\e637"; } + +.icon-hand-drag:before { + content: "\e638"; } + +.icon-folder:before { + content: "\e639"; } + +.icon-flag:before { + content: "\e63a"; } + +.icon-flag-alt:before { + content: "\e63b"; } + +.icon-flag-alt-2:before { + content: "\e63c"; } + +.icon-eye:before { + content: "\e63d"; } + +.icon-export:before { + content: "\e63e"; } + +.icon-exchange-vertical:before { + content: "\e63f"; } + +.icon-desktop:before { + content: "\e640"; } + +.icon-cup:before { + content: "\e641"; } + +.icon-crown:before { + content: "\e642"; } + +.icon-comments:before { + content: "\e643"; } + +.icon-comment:before { + content: "\e644"; } + +.icon-comment-alt:before { + content: "\e645"; } + +.icon-close:before { + content: "\e646"; } + +.icon-clip:before { + content: "\e647"; } + +.icon-angle-up:before { + content: "\e648"; } + +.icon-angle-right:before { + content: "\e649"; } + +.icon-angle-left:before { + content: "\e64a"; } + +.icon-angle-down:before { + content: "\e64b"; } + +.icon-check:before { + content: "\e64c"; } + +.icon-check-box:before { + content: "\e64d"; } + +.icon-camera:before { + content: "\e64e"; } + +.icon-announcement:before { + content: "\e64f"; } + +.icon-brush:before { + content: "\e650"; } + +.icon-briefcase:before { + content: "\e651"; } + +.icon-bolt:before { + content: "\e652"; } + +.icon-bolt-alt:before { + content: "\e653"; } + +.icon-blackboard:before { + content: "\e654"; } + +.icon-bag:before { + content: "\e655"; } + +.icon-move:before { + content: "\e656"; } + +.icon-arrows-vertical:before { + content: "\e657"; } + +.icon-arrows-horizontal:before { + content: "\e658"; } + +.icon-fullscreen:before { + content: "\e659"; } + +.icon-arrow-top-right:before { + content: "\e65a"; } + +.icon-arrow-top-left:before { + content: "\e65b"; } + +.icon-arrow-circle-up:before { + content: "\e65c"; } + +.icon-arrow-circle-right:before { + content: "\e65d"; } + +.icon-arrow-circle-left:before { + content: "\e65e"; } + +.icon-arrow-circle-down:before { + content: "\e65f"; } + +.icon-angle-double-up:before { + content: "\e660"; } + +.icon-angle-double-right:before { + content: "\e661"; } + +.icon-angle-double-left:before { + content: "\e662"; } + +.icon-angle-double-down:before { + content: "\e663"; } + +.icon-zip:before { + content: "\e664"; } + +.icon-world:before { + content: "\e665"; } + +.icon-wheelchair:before { + content: "\e666"; } + +.icon-view-list:before { + content: "\e667"; } + +.icon-view-list-alt:before { + content: "\e668"; } + +.icon-view-grid:before { + content: "\e669"; } + +.icon-uppercase:before { + content: "\e66a"; } + +.icon-upload:before { + content: "\e66b"; } + +.icon-underline:before { + content: "\e66c"; } + +.icon-truck:before { + content: "\e66d"; } + +.icon-timer:before { + content: "\e66e"; } + +.icon-ticket:before { + content: "\e66f"; } + +.icon-thumb-up:before { + content: "\e670"; } + +.icon-thumb-down:before { + content: "\e671"; } + +.icon-text:before { + content: "\e672"; } + +.icon-stats-up:before { + content: "\e673"; } + +.icon-stats-down:before { + content: "\e674"; } + +.icon-split-v:before { + content: "\e675"; } + +.icon-split-h:before { + content: "\e676"; } + +.icon-smallcap:before { + content: "\e677"; } + +.icon-shine:before { + content: "\e678"; } + +.icon-shift-right:before { + content: "\e679"; } + +.icon-shift-left:before { + content: "\e67a"; } + +.icon-shield:before { + content: "\e67b"; } + +.icon-notepad:before { + content: "\e67c"; } + +.icon-server:before { + content: "\e67d"; } + +.icon-quote-right:before { + content: "\e67e"; } + +.icon-quote-left:before { + content: "\e67f"; } + +.icon-pulse:before { + content: "\e680"; } + +.icon-printer:before { + content: "\e681"; } + +.icon-power-off:before { + content: "\e682"; } + +.icon-plug:before { + content: "\e683"; } + +.icon-pie-chart:before { + content: "\e684"; } + +.icon-paragraph:before { + content: "\e685"; } + +.icon-panel:before { + content: "\e686"; } + +.icon-package:before { + content: "\e687"; } + +.icon-music:before { + content: "\e688"; } + +.icon-music-alt:before { + content: "\e689"; } + +.icon-mouse:before { + content: "\e68a"; } + +.icon-mouse-alt:before { + content: "\e68b"; } + +.icon-money:before { + content: "\e68c"; } + +.icon-microphone:before { + content: "\e68d"; } + +.icon-menu:before { + content: "\e68e"; } + +.icon-menu-alt:before { + content: "\e68f"; } + +.icon-map:before { + content: "\e690"; } + +.icon-map-alt:before { + content: "\e691"; } + +.icon-loop:before { + content: "\e692"; } + +.icon-location-pin:before { + content: "\e693"; } + +.icon-list:before { + content: "\e694"; } + +.icon-light-bulb:before { + content: "\e695"; } + +.icon-Italic:before { + content: "\e696"; } + +.icon-info:before { + content: "\e697"; } + +.icon-infinite:before { + content: "\e698"; } + +.icon-id-badge:before { + content: "\e699"; } + +.icon-hummer:before { + content: "\e69a"; } + +.icon-home:before { + content: "\e69b"; } + +.icon-help:before { + content: "\e69c"; } + +.icon-headphone:before { + content: "\e69d"; } + +.icon-harddrives:before { + content: "\e69e"; } + +.icon-harddrive:before { + content: "\e69f"; } + +.icon-gift:before { + content: "\e6a0"; } + +.icon-game:before { + content: "\e6a1"; } + +.icon-filter:before { + content: "\e6a2"; } + +.icon-files:before { + content: "\e6a3"; } + +.icon-file:before { + content: "\e6a4"; } + +.icon-eraser:before { + content: "\e6a5"; } + +.icon-envelope:before { + content: "\e6a6"; } + +.icon-download:before { + content: "\e6a7"; } + +.icon-direction:before { + content: "\e6a8"; } + +.icon-direction-alt:before { + content: "\e6a9"; } + +.icon-dashboard:before { + content: "\e6aa"; } + +.icon-control-stop:before { + content: "\e6ab"; } + +.icon-control-shuffle:before { + content: "\e6ac"; } + +.icon-control-play:before { + content: "\e6ad"; } + +.icon-control-pause:before { + content: "\e6ae"; } + +.icon-control-forward:before { + content: "\e6af"; } + +.icon-control-backward:before { + content: "\e6b0"; } + +.icon-cloud:before { + content: "\e6b1"; } + +.icon-cloud-up:before { + content: "\e6b2"; } + +.icon-cloud-down:before { + content: "\e6b3"; } + +.icon-clipboard:before { + content: "\e6b4"; } + +.icon-car:before { + content: "\e6b5"; } + +.icon-calendar:before { + content: "\e6b6"; } + +.icon-book:before { + content: "\e6b7"; } + +.icon-bell:before { + content: "\e6b8"; } + +.icon-basketball:before { + content: "\e6b9"; } + +.icon-bar-chart:before { + content: "\e6ba"; } + +.icon-bar-chart-alt:before { + content: "\e6bb"; } + +.icon-back-right:before { + content: "\e6bc"; } + +.icon-back-left:before { + content: "\e6bd"; } + +.icon-arrows-corner:before { + content: "\e6be"; } + +.icon-archive:before { + content: "\e6bf"; } + +.icon-anchor:before { + content: "\e6c0"; } + +.icon-align-right:before { + content: "\e6c1"; } + +.icon-align-left:before { + content: "\e6c2"; } + +.icon-align-justify:before { + content: "\e6c3"; } + +.icon-align-center:before { + content: "\e6c4"; } + +.icon-alert:before { + content: "\e6c5"; } + +.icon-alarm-clock:before { + content: "\e6c6"; } + +.icon-agenda:before { + content: "\e6c7"; } + +.icon-write:before { + content: "\e6c8"; } + +.icon-window:before { + content: "\e6c9"; } + +.icon-widgetized:before { + content: "\e6ca"; } + +.icon-widget:before { + content: "\e6cb"; } + +.icon-widget-alt:before { + content: "\e6cc"; } + +.icon-wallet:before { + content: "\e6cd"; } + +.icon-video-clapper:before { + content: "\e6ce"; } + +.icon-video-camera:before { + content: "\e6cf"; } + +.icon-vector:before { + content: "\e6d0"; } + +.icon-themify-logo:before { + content: "\e6d1"; } + +.icon-themify-favicon:before { + content: "\e6d2"; } + +.icon-themify-favicon-alt:before { + content: "\e6d3"; } + +.icon-support:before { + content: "\e6d4"; } + +.icon-stamp:before { + content: "\e6d5"; } + +.icon-split-v-alt:before { + content: "\e6d6"; } + +.icon-slice:before { + content: "\e6d7"; } + +.icon-shortcode:before { + content: "\e6d8"; } + +.icon-shift-right-alt:before { + content: "\e6d9"; } + +.icon-shift-left-alt:before { + content: "\e6da"; } + +.icon-ruler-alt-2:before { + content: "\e6db"; } + +.icon-receipt:before { + content: "\e6dc"; } + +.icon-pin2:before { + content: "\e6dd"; } + +.icon-pin-alt:before { + content: "\e6de"; } + +.icon-pencil-alt2:before { + content: "\e6df"; } + +.icon-palette:before { + content: "\e6e0"; } + +.icon-more:before { + content: "\e6e1"; } + +.icon-more-alt:before { + content: "\e6e2"; } + +.icon-microphone-alt:before { + content: "\e6e3"; } + +.icon-magnet:before { + content: "\e6e4"; } + +.icon-line-double:before { + content: "\e6e5"; } + +.icon-line-dotted:before { + content: "\e6e6"; } + +.icon-line-dashed:before { + content: "\e6e7"; } + +.icon-layout-width-full:before { + content: "\e6e8"; } + +.icon-layout-width-default:before { + content: "\e6e9"; } + +.icon-layout-width-default-alt:before { + content: "\e6ea"; } + +.icon-layout-tab:before { + content: "\e6eb"; } + +.icon-layout-tab-window:before { + content: "\e6ec"; } + +.icon-layout-tab-v:before { + content: "\e6ed"; } + +.icon-layout-tab-min:before { + content: "\e6ee"; } + +.icon-layout-slider:before { + content: "\e6ef"; } + +.icon-layout-slider-alt:before { + content: "\e6f0"; } + +.icon-layout-sidebar-right:before { + content: "\e6f1"; } + +.icon-layout-sidebar-none:before { + content: "\e6f2"; } + +.icon-layout-sidebar-left:before { + content: "\e6f3"; } + +.icon-layout-placeholder:before { + content: "\e6f4"; } + +.icon-layout-menu:before { + content: "\e6f5"; } + +.icon-layout-menu-v:before { + content: "\e6f6"; } + +.icon-layout-menu-separated:before { + content: "\e6f7"; } + +.icon-layout-menu-full:before { + content: "\e6f8"; } + +.icon-layout-media-right-alt:before { + content: "\e6f9"; } + +.icon-layout-media-right:before { + content: "\e6fa"; } + +.icon-layout-media-overlay:before { + content: "\e6fb"; } + +.icon-layout-media-overlay-alt:before { + content: "\e6fc"; } + +.icon-layout-media-overlay-alt-2:before { + content: "\e6fd"; } + +.icon-layout-media-left-alt:before { + content: "\e6fe"; } + +.icon-layout-media-left:before { + content: "\e6ff"; } + +.icon-layout-media-center-alt:before { + content: "\e700"; } + +.icon-layout-media-center:before { + content: "\e701"; } + +.icon-layout-list-thumb:before { + content: "\e702"; } + +.icon-layout-list-thumb-alt:before { + content: "\e703"; } + +.icon-layout-list-post:before { + content: "\e704"; } + +.icon-layout-list-large-image:before { + content: "\e705"; } + +.icon-layout-line-solid:before { + content: "\e706"; } + +.icon-layout-grid4:before { + content: "\e707"; } + +.icon-layout-grid3:before { + content: "\e708"; } + +.icon-layout-grid2:before { + content: "\e709"; } + +.icon-layout-grid2-thumb:before { + content: "\e70a"; } + +.icon-layout-cta-right:before { + content: "\e70b"; } + +.icon-layout-cta-left:before { + content: "\e70c"; } + +.icon-layout-cta-center:before { + content: "\e70d"; } + +.icon-layout-cta-btn-right:before { + content: "\e70e"; } + +.icon-layout-cta-btn-left:before { + content: "\e70f"; } + +.icon-layout-column4:before { + content: "\e710"; } + +.icon-layout-column3:before { + content: "\e711"; } + +.icon-layout-column2:before { + content: "\e712"; } + +.icon-layout-accordion-separated:before { + content: "\e713"; } + +.icon-layout-accordion-merged:before { + content: "\e714"; } + +.icon-layout-accordion-list:before { + content: "\e715"; } + +.icon-ink-pen:before { + content: "\e716"; } + +.icon-info-alt:before { + content: "\e717"; } + +.icon-help-alt:before { + content: "\e718"; } + +.icon-headphone-alt:before { + content: "\e719"; } + +.icon-hand-point-up:before { + content: "\e71a"; } + +.icon-hand-point-right:before { + content: "\e71b"; } + +.icon-hand-point-left:before { + content: "\e71c"; } + +.icon-hand-point-down:before { + content: "\e71d"; } + +.icon-gallery:before { + content: "\e71e"; } + +.icon-face-smile:before { + content: "\e71f"; } + +.icon-face-sad:before { + content: "\e720"; } + +.icon-credit-card:before { + content: "\e721"; } + +.icon-control-skip-forward:before { + content: "\e722"; } + +.icon-control-skip-backward:before { + content: "\e723"; } + +.icon-control-record:before { + content: "\e724"; } + +.icon-control-eject:before { + content: "\e725"; } + +.icon-comments-smiley:before { + content: "\e726"; } + +.icon-brush-alt:before { + content: "\e727"; } + +.icon-youtube:before { + content: "\e728"; } + +.icon-vimeo:before { + content: "\e729"; } + +.icon-twitter:before { + content: "\e72a"; } + +.icon-time:before { + content: "\e72b"; } + +.icon-tumblr:before { + content: "\e72c"; } + +.icon-skype:before { + content: "\e72d"; } + +.icon-share:before { + content: "\e72e"; } + +.icon-share-alt:before { + content: "\e72f"; } + +.icon-rocket:before { + content: "\e730"; } + +.icon-pinterest:before { + content: "\e731"; } + +.icon-new-window:before { + content: "\e732"; } + +.icon-microsoft:before { + content: "\e733"; } + +.icon-list-ol:before { + content: "\e734"; } + +.icon-linkedin:before { + content: "\e735"; } + +.icon-layout-sidebar-2:before { + content: "\e736"; } + +.icon-layout-grid4-alt:before { + content: "\e737"; } + +.icon-layout-grid3-alt:before { + content: "\e738"; } + +.icon-layout-grid2-alt:before { + content: "\e739"; } + +.icon-layout-column4-alt:before { + content: "\e73a"; } + +.icon-layout-column3-alt:before { + content: "\e73b"; } + +.icon-layout-column2-alt:before { + content: "\e73c"; } + +.icon-instagram:before { + content: "\e73d"; } + +.icon-google:before { + content: "\e73e"; } + +.icon-github:before { + content: "\e73f"; } + +.icon-flickr:before { + content: "\e740"; } + +.icon-facebook:before { + content: "\e741"; } + +.icon-dropbox:before { + content: "\e742"; } + +.icon-dribbble:before { + content: "\e743"; } + +.icon-apple:before { + content: "\e744"; } + +.icon-android:before { + content: "\e745"; } + +.icon-save:before { + content: "\e746"; } + +.icon-save-alt:before { + content: "\e747"; } + +.icon-yahoo:before { + content: "\e748"; } + +.icon-wordpress:before { + content: "\e749"; } + +.icon-vimeo-alt:before { + content: "\e74a"; } + +.icon-twitter-alt:before { + content: "\e74b"; } + +.icon-tumblr-alt:before { + content: "\e74c"; } + +.icon-trello:before { + content: "\e74d"; } + +.icon-stack-overflow:before { + content: "\e74e"; } + +.icon-soundcloud:before { + content: "\e74f"; } + +.icon-sharethis:before { + content: "\e750"; } + +.icon-sharethis-alt:before { + content: "\e751"; } + +.icon-reddit:before { + content: "\e752"; } + +.icon-pinterest-alt:before { + content: "\e753"; } + +.icon-microsoft-alt:before { + content: "\e754"; } + +.icon-linux:before { + content: "\e755"; } + +.icon-jsfiddle:before { + content: "\e756"; } + +.icon-joomla:before { + content: "\e757"; } + +.icon-html5:before { + content: "\e758"; } + +.icon-flickr-alt:before { + content: "\e759"; } + +.icon-email:before { + content: "\e75a"; } + +.icon-drupal:before { + content: "\e75b"; } + +.icon-dropbox-alt:before { + content: "\e75c"; } + +.icon-css3:before { + content: "\e75d"; } + +.icon-rss:before { + content: "\e75e"; } + +.icon-rss-alt:before { + content: "\e75f"; } diff --git a/public/admin/assets/css/timepicker.css b/public/admin/assets/css/timepicker.css new file mode 100644 index 0000000..83df205 --- /dev/null +++ b/public/admin/assets/css/timepicker.css @@ -0,0 +1,300 @@ +.popover > .arrow, .popover > .arrow:after { + position: absolute; + display: block; + width: 0; + height: 0; + border-color: transparent; + border-style: solid; + overflow: visible; + margin: 0; + padding: 0; + z-index: auto; + background-color: transparent; + -webkit-box-shadow: none; + box-shadow: none; + bottom: auto; + left: auto; + right: auto; + top: auto; + -webkit-transform: none; + transform: none; } + +.btn.active, .btn:active { + background-image: none; + outline: 0; + -webkit-box-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125); + box-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125); } + +.btn-default.active, .btn-default:active, .btn-default:focus, .btn-default:hover, .open .dropdown-toggle.btn-default { + color: #333; + background-color: #ebebeb; + border-color: #adadad; } + +.clockpicker-canvas, .clockpicker-dial { + width: 200px; + height: 200px; + position: absolute; + left: -1px; + top: -1px; } + +.popover { + position: absolute; + top: 0; + left: 0; + z-index: 1010; + display: none; + max-width: 276px; + text-align: left; + white-space: normal; + background-color: #ffffff; + background-clip: padding-box; + border-radius: 6px; + -webkit-box-shadow: 1px 1px 2px 1px #e2e2e2; + box-shadow: 1px 1px 2px 1px #e2e2e2; + border: 0px solid transparent; } + .popover.top { + margin-top: -10px; } + .popover.top > .arrow { + bottom: -11px; + left: 50%; + margin-left: -11px; + border-top-color: #e6e6e6; + border-bottom-width: 0; } + .popover.top > .arrow:after { + bottom: 1px; + margin-left: -10px; + content: " "; + border-top-color: #ffffff; + border-bottom-width: 0; } + .popover.right { + margin-left: 10px; } + .popover.right > .arrow { + top: 50%; + left: -11px; + margin-top: -11px; + border-right-color: rgba(0, 0, 0, 0.25); + border-left-width: 0; } + .popover.right > .arrow:after { + bottom: -10px; + left: 1px; + content: " "; + border-right-color: #ffffff; + border-left-width: 0; } + .popover.bottom { + margin-top: 10px; } + .popover.bottom > .arrow { + top: -11px; + left: 50%; + margin-left: -11px; + border-top-width: 0; + border-bottom-color: #e6e6e6; } + .popover.bottom > .arrow:after { + top: 1px; + margin-left: -10px; + content: " "; + border-top-width: 0; + border-bottom-color: #ffffff; } + .popover.left { + margin-left: -10px; } + .popover.left > .arrow { + top: 50%; + right: -22px; + margin-top: -11px; + border-right-width: 0; + border-left-color: #e6e6e6; } + .popover.left > .arrow:after { + right: 7px; + bottom: -10px; + content: " "; + border-right-width: 0; + border-left-color: #ffffff; } + .popover > .arrow { + border-width: 11px; } + .popover > .arrow:after { + content: ""; + border-width: 10px; } + +.popover-title { + padding: 8px 14px; + margin: 0; + font-size: 14px; + font-weight: 400; + line-height: 18px; + background-color: #f7f7f7; + border-bottom: 1px solid #ebebeb; + border-radius: 5px 5px 0 0; } + +.popover-content { + padding: 9px 14px; } + .popover-content:last-child { + border-bottom-left-radius: 5px; + border-bottom-right-radius: 5px; } + +.btn { + cursor: pointer; + -webkit-user-select: none; + -moz-user-select: none; + -ms-user-select: none; + user-select: none; + background-image: none; + border: 1px solid transparent; } + .btn.active:focus { + outline: dotted thin; + outline-offset: -2px; } + .btn:active:focus { + outline: dotted thin; + outline-offset: -2px; } + .btn:focus { + outline: dotted thin; + outline-offset: -2px; + color: #333; + text-decoration: none; } + .btn:hover { + color: #333; + text-decoration: none; } + +.btn-default { + color: #333; + background-color: #ffffff; + border-color: #ccc; } + .btn-default.active { + background-image: none; } + .btn-default:active { + background-image: none; } + +.btn-block { + display: block; + width: 100%; } + +.clockpicker-moving { + cursor: move; } + +.clockpicker-popover .popover-title { + background-color: #fff; + color: #999; + font-size: 24px; + font-weight: 700; + line-height: 30px; + text-align: center; } + .clockpicker-popover .popover-title span { + cursor: pointer; } + +.clockpicker-popover .popover-content { + padding: 12px; } + +.clockpicker-plate { + background-color: #ffffff; + border-radius: 50%; + width: 200px; + height: 200px; + overflow: visible; + position: relative; + -webkit-user-select: none; + -moz-user-select: none; + -ms-user-select: none; + user-select: none; } + +.clockpicker-canvas { + -webkit-transition: opacity 175ms; + transition: opacity 175ms; } + .clockpicker-canvas line { + stroke: #4466f2; + stroke-width: 1; + stroke-linecap: round; } + +.clockpicker-dial { + -webkit-transition: opacity 350ms,-webkit-transform 350ms; + transition: opacity 350ms,-webkit-transform 350ms; + transition: transform 350ms,opacity 350ms; + transition: transform 350ms,opacity 350ms,-webkit-transform 350ms; } + +.clockpicker-minutes { + visibility: hidden; } + .clockpicker-minutes.clockpicker-dial-out { + -webkit-transform: scale(0.8, 0.8); + transform: scale(0.8, 0.8); } + +.clockpicker-tick { + border-radius: 50%; + color: #666; + line-height: 26px; + text-align: center; + width: 26px; + height: 26px; + position: absolute; + cursor: pointer; } + .clockpicker-tick.active { + background-color: #e1e7fd; + color: #fff; } + .clockpicker-tick:hover { + color: #fff; + background-color: #e1e7fd; } + +.clockpicker-button { + background-image: none; + background-color: #ffffff; + border-width: 1px 0 0; + border-top-left-radius: 0; + border-top-right-radius: 0; + margin: 0; + padding: 10px 0; } + .clockpicker-button:hover { + background-image: none; + background-color: #ebebeb; } + .clockpicker-button:focus { + outline: 0 !important; } + .clockpicker-button.am-button { + margin: 1px; + padding: 5px; + border: 1px solid rgba(0, 0, 0, 0.2); + border-radius: 4px; } + .clockpicker-button.pm-button { + margin: 1px 1px 1px 136px; + padding: 5px; + border: 1px solid rgba(0, 0, 0, 0.2); + border-radius: 4px; } + +.clockpicker-dial-out { + opacity: 0; } + +.clockpicker-canvas-out { + opacity: .25; } + +.clockpicker-canvas-bearing { + stroke: none; + fill: #4466f2; } + +.clockpicker-canvas-fg { + stroke: none; + fill: #4466f2; } + +.clockpicker-canvas-bg { + stroke: none; + fill: #e1e7fd; } + +.clockpicker-canvas-bg-trans { + fill: #ebeffe; } + +.open .dropdown-toggle.btn-default { + background-image: none; } + +.clockpicker .input-group-addon { + cursor: pointer; } + +.clockpicker-align-left.popover > .arrow { + left: 25px; } + +.clockpicker-align-top.popover > .arrow { + top: 17px; } + +.clockpicker-align-right.popover > .arrow { + left: auto; + right: 25px; } + +.clockpicker-align-bottom.popover > .arrow { + top: auto; + bottom: 6px; } + +.clockpicker-hours.clockpicker-dial-out { + -webkit-transform: scale(1.2, 1.2); + transform: scale(1.2, 1.2); } diff --git a/public/admin/assets/css/todo.css b/public/admin/assets/css/todo.css new file mode 100644 index 0000000..bfd88a9 --- /dev/null +++ b/public/admin/assets/css/todo.css @@ -0,0 +1,238 @@ +/*====todo css start====*/ +.todo .action-box { + background: transparent; + height: 20px; + width: 20px; + display: inline-block; + text-align: center; + cursor: pointer; + -webkit-transition: all 300ms ease; + transition: all 300ms ease; } + .todo .action-box .icon { + vertical-align: 0; } + .todo .action-box.completed { + background: #d22d3d; + border: 1px solid #d22d3d; + border-radius: 4px; } + .todo .action-box.completed .icon { + color: #fff; + font-size: 14px; } + .todo .action-box.large { + height: 30px; + width: 30px; } + .todo .action-box.large .icon { + font-size: 20px; + vertical-align: -5px; } + .todo .action-box.large .icon .icon-trash { + color: #24695c; } + .todo .action-box.large .icon .icon-check { + color: #24695c; } + +.todo .todo-list-wrapper { + width: 100%; + margin: 0 auto; + -webkit-box-sizing: border-box; + box-sizing: border-box; } + .todo .todo-list-wrapper .mark-all-tasks { + position: absolute; + top: 30px; + right: 30px; } + .todo .todo-list-wrapper .mark-all-tasks .mark-all-tasks-container { + overflow: hidden; + position: relative; } + .todo .todo-list-wrapper .mark-all-tasks .mark-all-btn { + cursor: pointer; + display: inline-block; + -webkit-transition: all 200ms ease; + transition: all 200ms ease; } + .todo .todo-list-wrapper .mark-all-tasks .mark-all-btn#mark-all-finished { + color: #d22d3d; } + .todo .todo-list-wrapper .mark-all-tasks .mark-all-btn#mark-all-incomplete { + color: #1b4c43; } + .todo .todo-list-wrapper .mark-all-tasks .mark-all-btn#mark-all-incomplete .action-box { + border: 2px solid #1b4c43; + border-radius: 4px; } + .todo .todo-list-wrapper .mark-all-tasks .mark-all-btn#mark-all-incomplete .action-box .icon { + color: #1b4c43; } + .todo .todo-list-wrapper .mark-all-tasks .mark-all-btn.move-up { + -webkit-transform: translateY(-30px); + transform: translateY(-30px); + position: absolute; + right: 0; } + .todo .todo-list-wrapper .mark-all-tasks .mark-all-btn.move-down { + -webkit-transform: translateY(30px); + transform: translateY(30px); + position: absolute; + right: 0; } + .todo .todo-list-wrapper .mark-all-tasks .btn-label { + margin-right: 5px; + font-weight: 600; } + .todo .todo-list-wrapper .todo-list-footer { + position: relative; } + .todo .todo-list-wrapper .todo-list-footer h5 { + text-align: center; + color: #efefef; } + .todo .todo-list-wrapper .todo-list-footer .add-task-btn-wrapper { + padding-top: 30px; } + .todo .todo-list-wrapper .todo-list-footer .add-task-btn.hide { + opacity: 0; + display: none; } + .todo .todo-list-wrapper .todo-list-footer .add-task-btn:hover { + background: #24695c; } + .todo .todo-list-wrapper .todo-list-footer .add-task-btn:hover .icon { + color: #e6edef; } + .todo .todo-list-wrapper .todo-list-footer .add-task-btn .icon { + color: #24695c; + font-size: 20px; } + .todo .todo-list-wrapper .todo-list-footer .new-task-wrapper { + -webkit-transition: all 300ms ease; + transition: all 300ms ease; + max-height: 0; + overflow: hidden; } + .todo .todo-list-wrapper .todo-list-footer .new-task-wrapper textarea { + -webkit-box-sizing: border-box; + box-sizing: border-box; + width: 100%; + border: 1px solid #e6edef; + height: 90px; + padding: 10px 15px; + margin-bottom: 24px; + border-radius: 4px; + -webkit-transition: all 300ms ease; + transition: all 300ms ease; } + .todo .todo-list-wrapper .todo-list-footer .new-task-wrapper textarea:focus { + border: 1px solid #efefef; + outline: none; } + .todo .todo-list-wrapper .todo-list-footer .new-task-wrapper textarea.error { + border: 1px solid #d22d3d; + outline: none; } + .todo .todo-list-wrapper .todo-list-footer .new-task-wrapper .error-message { + color: #d22d3d; + font-style: italic; } + .todo .todo-list-wrapper .todo-list-footer .new-task-wrapper.visible { + max-height: 300px; + overflow: auto; } + .todo .todo-list-wrapper .todo-list-footer .new-task-wrapper::after { + content: ""; + display: block; + clear: both; } + .todo .todo-list-wrapper .todo-list-body { + max-height: 500px; + overflow: auto; } + .todo .todo-list-wrapper #todo-list { + list-style: none; + margin: 0; + padding: 0; } + .todo .todo-list-wrapper #todo-list .task:first-child .task-container { + padding-top: 0; } + .todo .todo-list-wrapper #todo-list .task:first-child .task-container h4 { + padding-top: 0; } + .todo .todo-list-wrapper #todo-list li { + margin: 0; + padding: 0; } + .todo .todo-list-wrapper #todo-list li .task-container { + display: table; + padding: 10px 0; + width: 100%; + border-bottom: 1px solid #e6edef; + -webkit-box-sizing: border-box; + box-sizing: border-box; + position: relative; + -webkit-transition: background 200ms ease; + transition: background 200ms ease; } + .todo .todo-list-wrapper #todo-list li .task-container .task-label { + display: block; + font-size: 17px; + vertical-align: middle; + color: #999; + word-break: break-all; + padding-top: 5px; } + .todo .todo-list-wrapper #todo-list li .task-container .task-action-btn { + display: table-cell; + vertical-align: middle; + text-align: right; + min-width: 65px; } + .todo .todo-list-wrapper #todo-list li .task-container .task-action-btn .action-box { + margin-left: 5px; + margin-top: 2px; + border: 1px solid transparent; + margin-bottom: 2px; } + .todo .todo-list-wrapper #todo-list li .task-container .task-action-btn .action-box:hover { + border: 1px solid #59667a; + background: #fff; + border-radius: 4px; } + .todo .todo-list-wrapper #todo-list li .task-container .task-action-btn .action-box:hover .icon { + color: #59667a; } + .todo .todo-list-wrapper #todo-list li .task-container:hover h4 { + color: #2c323f; + -webkit-transition: all 0.3s ease; + transition: all 0.3s ease; } + .todo .todo-list-wrapper #todo-list li.completed .task-container .complete-btn { + border: 1px solid #1b4c43; + border-radius: 4px; } + .todo .todo-list-wrapper #todo-list li.completed .task-container .complete-btn .icon { + font-weight: bold; } + .todo .todo-list-wrapper #todo-list li.completed .task-container .complete-btn:hover { + background: #fff; + border: 1px solid #1b4c43; } + .todo .todo-list-wrapper #todo-list li.completed .task-container .complete-btn:hover .icon { + color: #fff; } + .todo .todo-list-wrapper #todo-list li.completed .task-container .task-label { + text-decoration: line-through; + color: #24695c; } + .todo .todo-list-wrapper #todo-list li.new .task-container { + -webkit-animation: taskHighlighter 2000ms linear 1; + animation: taskHighlighter 2000ms linear 1; } + .todo .todo-list-wrapper .todo-list-header h5 { + text-align: center; + color: #efefef; } + +.todo .notification-popup { + position: fixed; + top: 85px; + right: 10px; + width: 300px; + display: inline-block; + background: #1b4c43; + border: 1px solid #1b4c43; + color: #fff; + padding: 20px; + opacity: 0.9; + border-radius: 2px; + -webkit-box-sizing: border-box; + box-sizing: border-box; + -webkit-transition: all 300ms ease; + transition: all 300ms ease; } + .todo .notification-popup.success { + background: #1b4c43; + border: 1px solid #1b4c43; } + .todo .notification-popup p { + margin-top: 0; + margin-bottom: 0; } + .todo .notification-popup .task { + overflow: hidden; + white-space: nowrap; + text-overflow: ellipsis; + max-width: 100%; + display: inline-block; } + .todo .notification-popup .notification-text { + font-size: 14px; + display: inline-block; + overflow: hidden; } + .todo .notification-popup.hide { + opacity: 0; + visibility: hidden; } + +@-webkit-keyframes taskHighlighter { + 0% { + background: rgba(68, 102, 242, 0.5); } + 100% { + background: #fff; } } + +@keyframes taskHighlighter { + 0% { + background: rgba(68, 102, 242, 0.5); } + 100% { + background: #fff; } } + +/*====todo css end====*/ diff --git a/public/admin/assets/css/tour.css b/public/admin/assets/css/tour.css new file mode 100644 index 0000000..7469b89 --- /dev/null +++ b/public/admin/assets/css/tour.css @@ -0,0 +1,409 @@ +.introjs-overlay { + position: absolute; + -webkit-box-sizing: content-box; + box-sizing: content-box; + z-index: 999999; + background-color: #000; + opacity: 0; + filter: alpha(opacity=50); + -webkit-transition: all 0.3s ease-out; + transition: all 0.3s ease-out; } + +.introjs-fixParent { + z-index: auto !important; + opacity: 1.0 !important; + -webkit-transform: none !important; + transform: none !important; } + +.introjs-showElement { + z-index: 9999999 !important; } + +tr.introjs-showElement > td, tr.introjs-showElement > th { + z-index: 9999999 !important; } + +.introjs-disableInteraction { + z-index: 99999999 !important; + position: absolute; + background-color: white; + opacity: 0; + filter: alpha(opacity=0); } + +.introjs-relativePosition { + position: relative; } + +tr.introjs-showElement > td, tr.introjs-showElement > th { + position: relative; } + +.introjs-helperLayer { + -webkit-box-sizing: content-box; + box-sizing: content-box; + position: absolute; + z-index: 9999998; + background-color: #FFF; + background-color: rgba(255, 255, 255, 0.9); + border: 1px solid rgba(0, 0, 0, 0.5); + border-radius: 4px; + -webkit-box-shadow: 0 2px 15px rgba(0, 0, 0, 0.4); + box-shadow: 0 2px 15px rgba(0, 0, 0, 0.4); + -webkit-transition: all 0.3s ease-out; + transition: all 0.3s ease-out; } + +.introjs-tooltipReferenceLayer { + -webkit-box-sizing: content-box; + box-sizing: content-box; + position: absolute; + visibility: hidden; + z-index: 100000000; + background-color: transparent; + -webkit-transition: all 0.3s ease-out; + transition: all 0.3s ease-out; } + +.introjs-helperLayer * { + -webkit-box-sizing: content-box; + box-sizing: content-box; } + .introjs-helperLayer *:before, .introjs-helperLayer *:after { + -webkit-box-sizing: content-box; + box-sizing: content-box; } + +.introjs-helperNumberLayer { + -webkit-box-sizing: content-box; + box-sizing: content-box; + position: absolute; + visibility: visible; + top: -16px; + left: -16px; + z-index: 9999999999 !important; + padding: 2px; + font-size: 13px; + font-weight: bold; + color: white; + text-align: center; + text-shadow: 1px 1px 1px rgba(0, 0, 0, 0.3); + background: -webkit-gradient(linear, left top, left bottom, from(#4466f2), to(#4466f2)); + background: linear-gradient(to bottom, #4466f2 0%, #4466f2 100%); + width: 20px; + height: 20px; + line-height: 20px; + border: 3px solid white; + border-radius: 50%; + -webkit-box-shadow: 0 2px 5px rgba(0, 0, 0, 0.4); + box-shadow: 0 2px 5px rgba(0, 0, 0, 0.4); } + +.introjs-arrow { + border: 15px solid white; + content: ''; + position: absolute; } + .introjs-arrow.top { + top: -30px; + border-top-color: transparent; + border-right-color: transparent; + border-bottom-color: #4466f2; + border-left-color: transparent; } + .introjs-arrow.top-right { + top: -10px; + right: 10px; + border-top-color: transparent; + border-right-color: transparent; + border-bottom-color: #4466f2; + border-left-color: transparent; } + .introjs-arrow.top-middle { + top: -10px; + left: 50%; + margin-left: -5px; + border-top-color: transparent; + border-right-color: transparent; + border-bottom-color: #4466f2; + border-left-color: transparent; } + .introjs-arrow.right { + right: -30px; + top: 10px; + border-top-color: transparent; + border-right-color: transparent; + border-bottom-color: transparent; + border-left-color: #4466f2; } + .introjs-arrow.right-bottom { + bottom: 10px; + right: -30px; + border-top-color: transparent; + border-right-color: transparent; + border-bottom-color: transparent; + border-left-color: #4466f2; } + .introjs-arrow.bottom { + bottom: -30px; + border-top-color: #4466f2; + border-right-color: transparent; + border-bottom-color: transparent; + border-left-color: transparent; } + .introjs-arrow.left { + left: -30px; + top: 10px; + border-top-color: transparent; + border-right-color: #4466f2; + border-bottom-color: transparent; + border-left-color: transparent; } + .introjs-arrow.left-bottom { + left: -30px; + bottom: 10px; + border-top-color: transparent; + border-right-color: #4466f2; + border-bottom-color: transparent; + border-left-color: transparent; } + +.introjs-tooltip { + -webkit-box-sizing: content-box; + box-sizing: content-box; + position: absolute; + visibility: visible; + padding: 15px; + background-color: #4466f2; + min-width: 250px; + max-width: 300px; + border-radius: 3px; + -webkit-box-shadow: 0 1px 10px rgba(0, 0, 0, 0.4); + box-shadow: 0 1px 10px rgba(0, 0, 0, 0.4); + -webkit-transition: opacity 0.1s ease-out; + transition: opacity 0.1s ease-out; + color: white; + border: 6px solid #4466f2; } + +.introjs-tooltipbuttons { + text-align: right; + white-space: nowrap; } + +.introjs-button { + -webkit-box-sizing: content-box; + box-sizing: content-box; + position: relative; + overflow: visible; + display: inline-block; + padding: 0.3em 0.8em; + border: 1px solid #d4d4d4; + margin: 0; + text-decoration: none; + text-shadow: 1px 1px 0 #fff; + font-size: 11px; + color: #333 !important; + white-space: nowrap; + cursor: pointer; + outline: none; + background-color: #fff; + background-image: -webkit-gradient(linear, left top, left bottom, from(#fff), to(#fff)); + background-image: linear-gradient(#fff, #fff); + border-radius: 0.2em; + zoom: 1; + *display: inline; + margin-top: 10px; } + .introjs-button:hover { + border-color: #bcbcbc; + text-decoration: none; + -webkit-box-shadow: 0px 1px 1px #e3e3e3; + box-shadow: 0px 1px 1px #e3e3e3; } + .introjs-button:focus, .introjs-button:active { + background-image: -webkit-gradient(linear, left top, left bottom, from(#ececec), to(#f4f4f4)); + background-image: linear-gradient(#ececec, #f4f4f4); } + .introjs-button::-moz-focus-inner { + padding: 0; + border: 0; } + +/* overrides extra padding on button elements in Firefox */ +.introjs-skipbutton { + -webkit-box-sizing: content-box; + box-sizing: content-box; + margin-right: 5px; + color: #4466f2; } + +.introjs-prevbutton { + border-radius: 0.2em 0 0 0.2em; + border-right: none; } + .introjs-prevbutton.introjs-fullbutton { + border: 1px solid #d4d4d4; + border-radius: 0.2em; } + +.introjs-nextbutton { + border-radius: 0 0.2em 0.2em 0; } + .introjs-nextbutton.introjs-fullbutton { + border-radius: 0.2em; } + +.introjs-disabled { + color: #4466f2; + border-color: #d4d4d4; + -webkit-box-shadow: none; + box-shadow: none; + cursor: default; + background-image: none; + text-decoration: none; + background: #d4d4d4; + opacity: 0.5; } + .introjs-disabled:hover, .introjs-disabled:focus { + color: #4466f2; + border-color: #d4d4d4; + -webkit-box-shadow: none; + box-shadow: none; + cursor: default; + background-image: none; + text-decoration: none; } + +.introjs-hidden { + display: none; } + +.introjs-bullets { + text-align: center; } + .introjs-bullets ul { + -webkit-box-sizing: content-box; + box-sizing: content-box; + clear: both; + margin: 15px auto 0; + padding: 0; + display: inline-block !important; } + .introjs-bullets ul li { + -webkit-box-sizing: content-box; + box-sizing: content-box; + list-style: none; + float: left; + margin: 0 2px; } + .introjs-bullets ul li a { + -webkit-box-sizing: content-box; + box-sizing: content-box; + display: block; + width: 6px; + height: 6px; + background: #ccc; + border-radius: 10px; + -moz-border-radius: 10px; + -webkit-border-radius: 10px; + text-decoration: none; + cursor: pointer; } + .introjs-bullets ul li a:hover { + background: #999; } + .introjs-bullets ul li a.active { + background: #fff; } + +.introjs-progress { + -webkit-box-sizing: content-box; + box-sizing: content-box; + overflow: hidden; + height: 10px; + margin: 10px 0 5px 0; + border-radius: 4px; + background-color: #ecf0f1; } + +.introjs-progressbar { + -webkit-box-sizing: content-box; + box-sizing: content-box; + float: left; + width: 0%; + height: 100%; + font-size: 10px; + line-height: 10px; + text-align: center; + background-color: #08c; } + +.introjsFloatingElement { + position: absolute; + height: 0; + width: 0; + left: 50%; + top: 50%; } + +.introjs-fixedTooltip { + position: fixed; } + +.introjs-hint { + -webkit-box-sizing: content-box; + box-sizing: content-box; + position: absolute; + background: transparent; + width: 20px; + height: 15px; + cursor: pointer; } + .introjs-hint:focus { + border: 0; + outline: 0; } + +.introjs-hidehint { + display: none; } + +.introjs-fixedhint { + position: fixed; } + +.introjs-hint:hover > .introjs-hint-pulse { + border: 5px solid rgba(60, 60, 60, 0.57); } + +.introjs-hint-pulse { + -webkit-box-sizing: content-box; + box-sizing: content-box; + width: 10px; + height: 10px; + border: 5px solid rgba(60, 60, 60, 0.27); + border-radius: 30px; + background-color: rgba(136, 136, 136, 0.24); + z-index: 10; + position: absolute; + -webkit-transition: all 0.2s ease-out; + transition: all 0.2s ease-out; } + +.introjs-hint-no-anim .introjs-hint-dot { + -webkit-animation: none; + animation: none; } + +.introjs-hint-dot { + -webkit-box-sizing: content-box; + box-sizing: content-box; + border: 10px solid rgba(146, 146, 146, 0.36); + background: transparent; + border-radius: 60px; + height: 50px; + width: 50px; + -webkit-animation: introjspulse 3s ease-out; + animation: introjspulse 3s ease-out; + -webkit-animation-iteration-count: infinite; + animation-iteration-count: infinite; + position: absolute; + top: -25px; + left: -25px; + z-index: 1; + opacity: 0; } + +@-webkit-keyframes introjspulse { + 0% { + -webkit-transform: scale(0); + transform: scale(0); + opacity: 0.0; } + 25% { + -webkit-transform: scale(0); + transform: scale(0); + opacity: 0.1; } + 50% { + -webkit-transform: scale(0.1); + transform: scale(0.1); + opacity: 0.3; } + 75% { + -webkit-transform: scale(0.5); + transform: scale(0.5); + opacity: 0.5; } + 100% { + -webkit-transform: scale(1); + transform: scale(1); + opacity: 0.0; } } + +@keyframes introjspulse { + 0% { + -webkit-transform: scale(0); + transform: scale(0); + opacity: 0.0; } + 25% { + -webkit-transform: scale(0); + transform: scale(0); + opacity: 0.1; } + 50% { + -webkit-transform: scale(0.1); + transform: scale(0.1); + opacity: 0.3; } + 75% { + -webkit-transform: scale(0.5); + transform: scale(0.5); + opacity: 0.5; } + 100% { + -webkit-transform: scale(1); + transform: scale(1); + opacity: 0.0; } } diff --git a/public/admin/assets/css/tree.css b/public/admin/assets/css/tree.css new file mode 100644 index 0000000..67a14fb --- /dev/null +++ b/public/admin/assets/css/tree.css @@ -0,0 +1,1896 @@ +.jstree-node, .jstree-children, .jstree-container-ul { + display: block; + margin: 0; + padding: 0; + list-style-type: none; + list-style-image: none; } + +.vakata-context, .vakata-context ul { + margin: 0; + padding: 2px; + position: absolute; + background: #f5f5f5; + border: 1px solid #979797; + -webkit-box-shadow: 2px 2px 2px #979797; + box-shadow: 2px 2px 2px #979797; } + +.vakata-context .vakata-context-separator > a, .vakata-context .vakata-context-separator > a:hover { + background: white; + border: 0; + border-top: 1px solid #e2e3e3; + height: 1px; + min-height: 1px; + max-height: 1px; + padding: 0; + margin: 0 0 0 2.4em; + border-left: 1px solid #e0e0e0; + text-shadow: 0 0 0 transparent; + -webkit-box-shadow: 0 0 0 transparent; + box-shadow: 0 0 0 transparent; + border-radius: 0; } + +.vakata-context .vakata-contextmenu-disabled a, .vakata-context .vakata-contextmenu-disabled a:hover { + color: silver; + background-color: transparent; + border: 0; + -webkit-box-shadow: 0 0 0; + box-shadow: 0 0 0; } + +#jstree-dnd .jstree-icon, #jstree-dnd .jstree-copy { + display: inline-block; + text-decoration: none; + margin: 0 2px 0 0; + padding: 0; + width: 16px; + height: 16px; } + +.jstree-default .jstree-node, .jstree-default .jstree-icon { + background-repeat: no-repeat; + background-color: transparent; + color: #333; + background-image: url(../images/tree/32px.png); + color: #777; } + +.jstree-default > .jstree-wholerow-ul .jstree-hovered, .jstree-default > .jstree-wholerow-ul .jstree-clicked { + background: transparent; + -webkit-box-shadow: none; + box-shadow: none; + border-radius: 0; } + +#jstree-dnd.jstree-default .jstree-ok, #jstree-dnd.jstree-default .jstree-er { + background-image: url(../images/tree/32px.png); + background-repeat: no-repeat; + background-color: transparent; } + +#jstree-dnd.jstree-default-small .jstree-ok, #jstree-dnd.jstree-default-small .jstree-er { + background-image: url(../images/tree/32px.png); + background-repeat: no-repeat; + background-color: transparent; } + +#jstree-dnd.jstree-default-large .jstree-ok, #jstree-dnd.jstree-default-large .jstree-er { + background-image: url(../images/tree/32px.png); + background-repeat: no-repeat; + background-color: transparent; } + +.jstree-node { + white-space: nowrap; } + .jstree-node.jstree-hidden { + display: none; } + +.jstree-anchor { + display: inline-block; + color: black; + white-space: nowrap; + padding: 0 10px 0 1px; + margin: 0; + vertical-align: top; + text-decoration: none; + color: inherit; } + .jstree-anchor:focus { + outline: 0; } + .jstree-anchor:link { + text-decoration: none; + color: inherit; } + .jstree-anchor:visited { + text-decoration: none; + color: inherit; } + .jstree-anchor:hover { + text-decoration: none; + color: inherit; } + .jstree-anchor:active { + text-decoration: none; + color: inherit; } + .jstree-anchor > .jstree-themeicon { + margin-right: 2px; } + .jstree-anchor > .jstree-themeicon-hidden { + display: none; } + +.jstree-icon { + display: inline-block; + text-decoration: none; + margin: 0; + padding: 0; + vertical-align: top; + text-align: center; } + .jstree-icon:empty { + display: inline-block; + text-decoration: none; + margin: 0; + padding: 0; + vertical-align: top; + text-align: center; } + +.jstree-ocl { + cursor: pointer; } + +.jstree .jstree-open > .jstree-children { + display: block; } + +.jstree .jstree-closed > .jstree-children { + display: none; } + +.jstree .jstree-leaf > .jstree-children { + display: none; } + +.jstree-hidden { + display: none; } + +.jstree-rtl .jstree-anchor { + padding: 0 1px 0 4px; } + .jstree-rtl .jstree-anchor > .jstree-themeicon { + margin-left: 2px; + margin-right: 0; } + +.jstree-rtl .jstree-node { + margin-left: 0; } + +.jstree-rtl .jstree-container-ul > .jstree-node { + margin-right: 0; } + +.jstree-wholerow-ul { + position: relative; + display: inline-block; + min-width: 100%; } + .jstree-wholerow-ul .jstree-anchor { + position: relative; } + .jstree-wholerow-ul .jstree-icon { + position: relative; } + .jstree-wholerow-ul .jstree-wholerow { + width: 100%; + cursor: pointer; + position: absolute; + left: 0; + -webkit-user-select: none; + -moz-user-select: none; + -ms-user-select: none; + user-select: none; } + .jstree-wholerow-ul .jstree-leaf > .jstree-ocl { + cursor: pointer; } + +.vakata-context { + display: none; } + .vakata-context ul { + list-style: none; + left: 100%; + margin-top: -2.7em; + margin-left: -4px; } + .vakata-context li { + list-style: none; } + .vakata-context li > a { + display: block; + padding: 0 2em; + text-decoration: none; + width: auto; + color: black; + white-space: nowrap; + line-height: 2.4em; + text-shadow: 1px 1px 0 white; + border-radius: 1px; } + .vakata-context li > a:hover { + position: relative; + background-color: #e8eff7; + -webkit-box-shadow: 0 0 2px #0a6aa1; + box-shadow: 0 0 2px #0a6aa1; } + .vakata-context li > a.vakata-context-parent { + background-image: url("data:image/gif"); + background-position: right center; + background-repeat: no-repeat; } + .vakata-context li > a:focus { + outline: 0; } + .vakata-context li > a > i { + text-decoration: none; + display: inline-block; + width: 2.4em; + height: 2.4em; + background: transparent; + margin: 0 0 0 -2em; + vertical-align: top; + text-align: center; + line-height: 2.4em; } + .vakata-context li > a > i:empty { + width: 2.4em; + line-height: 2.4em; } + .vakata-context li > a .vakata-contextmenu-sep { + display: inline-block; + width: 1px; + height: 2.4em; + background: white; + margin: 0 0.5em 0 0; + border-left: 1px solid #e2e3e3; } + .vakata-context .vakata-contextmenu-shortcut { + font-size: 0.8em; + color: silver; + opacity: 0.5; + display: none; } + .vakata-context .vakata-context-end ul { + left: auto; + right: 100%; + margin-left: auto; + margin-right: -4px; } + .vakata-context .vakata-context-hover > a { + position: relative; + background-color: #e8eff7; + -webkit-box-shadow: 0 0 2px #0a6aa1; + box-shadow: 0 0 2px #0a6aa1; } + +.vakata-context-rtl ul { + left: auto; + right: 100%; + margin-left: auto; + margin-right: -4px; } + +.vakata-context-rtl li > a.vakata-context-parent { + background-image: url("data:image/gif"); + background-position: left center; + background-repeat: no-repeat; } + +.vakata-context-rtl li > a > i { + margin: 0 -2em 0 0; } + +.vakata-context-rtl li > a .vakata-contextmenu-sep { + margin: 0 0 0 0.5em; + border-left-color: white; + background: #e2e3e3; } + +.vakata-context-rtl .vakata-context-separator > a { + margin: 0 2.4em 0 0; + border-left: 0; + border-right: 1px solid #e2e3e3; } + +.vakata-context-rtl .vakata-context-start ul { + right: auto; + left: 100%; + margin-left: -4px; + margin-right: auto; } + +#jstree-marker { + position: absolute; + top: 0; + left: 0; + margin: -5px 0 0; + padding: 0; + border-right: 0; + border-top: 5px solid transparent; + border-bottom: 5px solid transparent; + border-left: 5px solid; + width: 0; + height: 0; + font-size: 0; + line-height: 0; } + +#jstree-dnd { + line-height: 16px; + margin: 0; + padding: 4px; } + #jstree-dnd .jstree-copy { + margin: 0 2px; } + #jstree-dnd .jstree-ok { + background: green; } + #jstree-dnd .jstree-er { + background: red; } + #jstree-dnd.jstree-default { + line-height: 24px; + padding: 0 4px; } + #jstree-dnd.jstree-default .jstree-ok { + background-position: -4px -68px; } + #jstree-dnd.jstree-default .jstree-er { + background-position: -36px -68px; } + #jstree-dnd.jstree-default i { + background: transparent; + width: 24px; + height: 24px; + line-height: 24px; } + #jstree-dnd.jstree-default-small { + line-height: 18px; + padding: 0 4px; } + #jstree-dnd.jstree-default-small .jstree-ok { + background-position: -7px -71px; } + #jstree-dnd.jstree-default-small .jstree-er { + background-position: -39px -71px; } + #jstree-dnd.jstree-default-small i { + background: transparent; + width: 18px; + height: 18px; + line-height: 18px; } + #jstree-dnd.jstree-default-large { + line-height: 32px; + padding: 0 4px; } + #jstree-dnd.jstree-default-large .jstree-ok { + background-position: 0 -64px; } + #jstree-dnd.jstree-default-large .jstree-er { + background-position: -32px -64px; } + #jstree-dnd.jstree-default-large i { + background: transparent; + width: 32px; + height: 32px; + line-height: 32px; } + +.jstree-default .jstree-node { + min-height: 24px; + line-height: 24px; + margin-left: 24px; + min-width: 24px; + background-position: -292px -4px; + background-repeat: repeat-y; } + +.jstree-default .jstree-icon { + width: 24px; + height: 24px; + line-height: 24px; } + .jstree-default .jstree-icon:empty { + width: 24px; + height: 24px; + line-height: 24px; } + +.jstree-default .jstree-anchor { + -webkit-transition: background-color 0.15s, -webkit-box-shadow 0.15s; + transition: background-color 0.15s, -webkit-box-shadow 0.15s; + transition: background-color 0.15s, box-shadow 0.15s; + transition: background-color 0.15s, box-shadow 0.15s, -webkit-box-shadow 0.15s; + line-height: 24px; + height: 24px; } + .jstree-default .jstree-anchor > .jstree-undetermined { + background-position: -196px -4px; } + .jstree-default .jstree-anchor > .jstree-undetermined:hover { + background-position: -196px -36px; } + +.jstree-default .jstree-wholerow { + -webkit-transition: background-color 0.15s, -webkit-box-shadow 0.15s; + transition: background-color 0.15s, -webkit-box-shadow 0.15s; + transition: background-color 0.15s, box-shadow 0.15s; + transition: background-color 0.15s, box-shadow 0.15s, -webkit-box-shadow 0.15s; + -webkit-box-sizing: border-box; + box-sizing: border-box; + height: 24px; } + +.jstree-default .jstree-hovered { + background: #e7f4f9; + border-radius: 2px; + -webkit-box-shadow: inset 0 0 1px #cccccc; + box-shadow: inset 0 0 1px #cccccc; } + +.jstree-default .jstree-context { + background: #e7f4f9; + border-radius: 2px; + -webkit-box-shadow: inset 0 0 1px #cccccc; + box-shadow: inset 0 0 1px #cccccc; } + +.jstree-default .jstree-clicked { + background: #d8d8d8; + border-radius: 2px; + -webkit-box-shadow: inset 0 0 1px #979797; + box-shadow: inset 0 0 1px #979797; + color: black; } + +.jstree-default .jstree-disabled { + color: #666666; + background: transparent; } + .jstree-default .jstree-disabled.jstree-hovered { + -webkit-box-shadow: none; + box-shadow: none; + background: transparent; } + .jstree-default .jstree-disabled.jstree-clicked { + background: #efefef; } + .jstree-default .jstree-disabled > .jstree-icon { + opacity: 0.8; + -webkit-filter: url("data:image/svg"); + filter: url("data:image/svg"); + -webkit-filter: gray; + filter: gray; } + +.jstree-default .jstree-search { + font-style: italic; + color: #8b0000; + font-weight: bold; } + +.jstree-default.jstree-checkbox-no-clicked .jstree-clicked { + background: transparent; + -webkit-box-shadow: none; + box-shadow: none; } + .jstree-default.jstree-checkbox-no-clicked .jstree-clicked.jstree-hovered { + background: #e7f4f9; } + +.jstree-default.jstree-checkbox-no-clicked > .jstree-wholerow-ul .jstree-wholerow-clicked { + background: transparent; } + .jstree-default.jstree-checkbox-no-clicked > .jstree-wholerow-ul .jstree-wholerow-clicked.jstree-wholerow-hovered { + background: #e7f4f9; } + +.jstree-default > .jstree-striped { + min-width: 100%; + display: inline-block; + background: url("data:image/png") left top repeat; + background-size: auto 48px; } + +.jstree-default > .jstree-no-dots .jstree-node { + background: transparent; } + +.jstree-default > .jstree-no-dots .jstree-leaf > .jstree-ocl { + background: transparent; } + +.jstree-default > .jstree-no-dots .jstree-open > .jstree-ocl { + background-position: -36px -4px; } + +.jstree-default > .jstree-no-dots .jstree-closed > .jstree-ocl { + background-position: -4px -4px; } + +.jstree-default > .jstree-container-ul .jstree-loading > .jstree-ocl { + background: url(../images/tree/throbber.gif) center center no-repeat; } + +.jstree-default > .jstree-container-ul > .jstree-node { + margin-left: 0; + margin-right: 0; } + +.jstree-default .jstree-wholerow-hovered { + background: #e7f4f9; } + +.jstree-default .jstree-wholerow-clicked { + background: #beebff; + background: -webkit-gradient(linear, left top, left bottom, color-stop(0, #beebff), to(#a8e4ff)); + background: linear-gradient(to bottom, #beebff 0, #a8e4ff 100%); } + +.jstree-default.jstree-rtl .jstree-node { + margin-right: 24px; + background-position: 100% 1px; + background-repeat: repeat-y; + background-image: url("data:image/png"); } + +.jstree-default.jstree-rtl .jstree-last { + background: transparent; } + +.jstree-default.jstree-rtl .jstree-open > .jstree-ocl { + background-position: -132px -36px; } + +.jstree-default.jstree-rtl .jstree-closed > .jstree-ocl { + background-position: -100px -36px; } + +.jstree-default.jstree-rtl .jstree-leaf > .jstree-ocl { + background-position: -68px -36px; } + +.jstree-default.jstree-rtl > .jstree-no-dots .jstree-node { + background: transparent; } + +.jstree-default.jstree-rtl > .jstree-no-dots .jstree-leaf > .jstree-ocl { + background: transparent; } + +.jstree-default.jstree-rtl > .jstree-no-dots .jstree-open > .jstree-ocl { + background-position: -36px -36px; } + +.jstree-default.jstree-rtl > .jstree-no-dots .jstree-closed > .jstree-ocl { + background-position: -4px -36px; } + +.jstree-default .jstree-last { + background: transparent; } + +.jstree-default .jstree-themeicon { + background-position: -260px -4px; } + +.jstree-default .jstree-checkbox { + background-position: -164px -4px; } + .jstree-default .jstree-checkbox:hover { + background-position: -164px -36px; } + +.jstree-default .jstree-checkbox-disabled { + opacity: 0.8; + -webkit-filter: url("data:image/svg"); + filter: url("data:image/svg"); + -webkit-filter: gray; + filter: gray; } + +.jstree-default .jstree-themeicon-custom { + background-color: transparent; + background-image: none; + background-position: 0 0; } + +.jstree-default .jstree-file { + background: url(../images/tree/32px.png) -100px -68px no-repeat; } + +.jstree-default .jstree-folder { + background: url(../images/tree/32px.png) -260px -4px no-repeat; } + +.jstree-default .jstree-no-icons .jstree-anchor > .jstree-themeicon { + display: none; } + +.jstree-default .jstree-no-checkboxes .jstree-checkbox { + display: none !important; } + +.jstree-default .jstree-open > .jstree-ocl { + background-position: -132px -4px; } + +.jstree-default .jstree-closed > .jstree-ocl { + background-position: -100px -4px; } + +.jstree-default .jstree-leaf > .jstree-ocl { + background-position: -68px -4px; } + +.jstree-default.jstree-checkbox-selection .jstree-clicked > .jstree-checkbox { + background-position: -228px -4px; } + .jstree-default.jstree-checkbox-selection .jstree-clicked > .jstree-checkbox:hover { + background-position: -228px -36px; } + +.jstree-default .jstree-checked > .jstree-checkbox { + background-position: -228px -4px; } + .jstree-default .jstree-checked > .jstree-checkbox:hover { + background-position: -228px -36px; } + +.jstree-default-small .jstree-node { + min-height: 18px; + line-height: 18px; + margin-left: 18px; + min-width: 18px; + background-position: -295px -7px; + background-repeat: repeat-y; + background-image: url(../images/tree/32px.png); } + +.jstree-default-small .jstree-anchor { + line-height: 18px; + height: 18px; } + .jstree-default-small .jstree-anchor > .jstree-undetermined { + background-position: -199px -7px; } + .jstree-default-small .jstree-anchor > .jstree-undetermined:hover { + background-position: -199px -39px; } + +.jstree-default-small .jstree-icon { + width: 18px; + height: 18px; + line-height: 18px; + background-image: url(../images/tree/32px.png); } + .jstree-default-small .jstree-icon:empty { + width: 18px; + height: 18px; + line-height: 18px; } + +.jstree-default-small.jstree-rtl .jstree-node { + margin-right: 18px; + background-image: url("data:image/png"); + background-position: 100% 1px; + background-repeat: repeat-y; + background-image: url("data:image/png"); } + +.jstree-default-small.jstree-rtl .jstree-last { + background: transparent; } + +.jstree-default-small.jstree-rtl .jstree-open > .jstree-ocl { + background-position: -135px -39px; } + +.jstree-default-small.jstree-rtl .jstree-closed > .jstree-ocl { + background-position: -103px -39px; } + +.jstree-default-small.jstree-rtl .jstree-leaf > .jstree-ocl { + background-position: -71px -39px; } + +.jstree-default-small.jstree-rtl > .jstree-no-dots .jstree-node { + background: transparent; } + +.jstree-default-small.jstree-rtl > .jstree-no-dots .jstree-leaf > .jstree-ocl { + background: transparent; } + +.jstree-default-small.jstree-rtl > .jstree-no-dots .jstree-open > .jstree-ocl { + background-position: -39px -39px; } + +.jstree-default-small.jstree-rtl > .jstree-no-dots .jstree-closed > .jstree-ocl { + background-position: -7px -39px; } + +.jstree-default-small .jstree-wholerow { + height: 18px; } + +.jstree-default-small .jstree-last { + background: transparent; } + +.jstree-default-small .jstree-themeicon { + background-position: -263px -7px; } + +.jstree-default-small > .jstree-no-dots .jstree-node { + background: transparent; } + +.jstree-default-small > .jstree-no-dots .jstree-leaf > .jstree-ocl { + background: transparent; } + +.jstree-default-small > .jstree-no-dots .jstree-open > .jstree-ocl { + background-position: -39px -7px; } + +.jstree-default-small > .jstree-no-dots .jstree-closed > .jstree-ocl { + background-position: -7px -7px; } + +.jstree-default-small > .jstree-striped { + background-size: auto 36px; } + +.jstree-default-small > .jstree-container-ul .jstree-loading > .jstree-ocl { + background: url(../images/tree/throbber.gif) center center no-repeat; } + +.jstree-default-small > .jstree-container-ul > .jstree-node { + margin-left: 0; + margin-right: 0; } + +.jstree-default-small .jstree-disabled { + background: transparent; } + .jstree-default-small .jstree-disabled.jstree-hovered { + background: transparent; } + .jstree-default-small .jstree-disabled.jstree-clicked { + background: #efefef; } + +.jstree-default-small .jstree-checkbox { + background-position: -167px -7px; } + .jstree-default-small .jstree-checkbox:hover { + background-position: -167px -39px; } + +.jstree-default-small .jstree-checkbox-disabled { + opacity: 0.8; + -webkit-filter: url("data:image/svg"); + filter: url("data:image/svg"); + -webkit-filter: gray; + filter: gray; } + +.jstree-default-small .jstree-themeicon-custom { + background-color: transparent; + background-image: none; + background-position: 0 0; } + +.jstree-default-small .jstree-file { + background: url(../images/tree/32px.png) -103px -71px no-repeat; } + +.jstree-default-small .jstree-folder { + background: url(../images/tree/32px.png) -263px -7px no-repeat; } + +.jstree-default-small .jstree-open > .jstree-ocl { + background-position: -135px -7px; } + +.jstree-default-small .jstree-closed > .jstree-ocl { + background-position: -103px -7px; } + +.jstree-default-small .jstree-leaf > .jstree-ocl { + background-position: -71px -7px; } + +.jstree-default-small.jstree-checkbox-selection .jstree-clicked > .jstree-checkbox { + background-position: -231px -7px; } + .jstree-default-small.jstree-checkbox-selection .jstree-clicked > .jstree-checkbox:hover { + background-position: -231px -39px; } + +.jstree-default-small .jstree-checked > .jstree-checkbox { + background-position: -231px -7px; } + .jstree-default-small .jstree-checked > .jstree-checkbox:hover { + background-position: -231px -39px; } + +.jstree-default-large .jstree-node { + min-height: 32px; + line-height: 32px; + margin-left: 32px; + min-width: 32px; + background-position: -288px 0; + background-repeat: repeat-y; + background-image: url(../images/tree/32px.png); } + +.jstree-default-large .jstree-anchor { + line-height: 32px; + height: 32px; } + .jstree-default-large .jstree-anchor > .jstree-undetermined { + background-position: -192px 0; } + .jstree-default-large .jstree-anchor > .jstree-undetermined:hover { + background-position: -192px -32px; } + +.jstree-default-large .jstree-icon { + width: 32px; + height: 32px; + line-height: 32px; + background-image: url(../images/tree/32px.png); } + .jstree-default-large .jstree-icon:empty { + width: 32px; + height: 32px; + line-height: 32px; } + +.jstree-default-large.jstree-rtl .jstree-node { + margin-right: 32px; + background-image: url("data:image/png"); + background-position: 100% 1px; + background-repeat: repeat-y; + background-image: url("data:image/png"); } + +.jstree-default-large.jstree-rtl .jstree-last { + background: transparent; } + +.jstree-default-large.jstree-rtl .jstree-open > .jstree-ocl { + background-position: -128px -32px; } + +.jstree-default-large.jstree-rtl .jstree-closed > .jstree-ocl { + background-position: -96px -32px; } + +.jstree-default-large.jstree-rtl .jstree-leaf > .jstree-ocl { + background-position: -64px -32px; } + +.jstree-default-large.jstree-rtl > .jstree-no-dots .jstree-node { + background: transparent; } + +.jstree-default-large.jstree-rtl > .jstree-no-dots .jstree-leaf > .jstree-ocl { + background: transparent; } + +.jstree-default-large.jstree-rtl > .jstree-no-dots .jstree-open > .jstree-ocl { + background-position: -32px -32px; } + +.jstree-default-large.jstree-rtl > .jstree-no-dots .jstree-closed > .jstree-ocl { + background-position: 0 -32px; } + +.jstree-default-large .jstree-wholerow { + height: 32px; } + +.jstree-default-large .jstree-last { + background: transparent; } + +.jstree-default-large .jstree-themeicon { + background-position: -256px 0; } + +.jstree-default-large > .jstree-no-dots .jstree-node { + background: transparent; } + +.jstree-default-large > .jstree-no-dots .jstree-leaf > .jstree-ocl { + background: transparent; } + +.jstree-default-large > .jstree-no-dots .jstree-open > .jstree-ocl { + background-position: -32px 0; } + +.jstree-default-large > .jstree-no-dots .jstree-closed > .jstree-ocl { + background-position: 0 0; } + +.jstree-default-large > .jstree-striped { + background-size: auto 64px; } + +.jstree-default-large > .jstree-container-ul .jstree-loading > .jstree-ocl { + background: url(../images/tree/throbber.gif) center center no-repeat; } + +.jstree-default-large > .jstree-container-ul > .jstree-node { + margin-left: 0; + margin-right: 0; } + +.jstree-default-large .jstree-disabled { + background: transparent; } + .jstree-default-large .jstree-disabled.jstree-hovered { + background: transparent; } + .jstree-default-large .jstree-disabled.jstree-clicked { + background: #efefef; } + +.jstree-default-large .jstree-checkbox { + background-position: -160px 0; } + .jstree-default-large .jstree-checkbox:hover { + background-position: -160px -32px; } + +.jstree-default-large .jstree-checkbox-disabled { + opacity: 0.8; + -webkit-filter: url("data:image/svg"); + filter: url("data:image/svg"); + -webkit-filter: gray; + filter: gray; } + +.jstree-default-large .jstree-themeicon-custom { + background-color: transparent; + background-image: none; + background-position: 0 0; } + +.jstree-default-large .jstree-file { + background: url(../images/tree/32px.png) -96px -64px no-repeat; } + +.jstree-default-large .jstree-folder { + background: url(../images/tree/32px.png) -256px 0 no-repeat; } + +.jstree-default-large .jstree-open > .jstree-ocl { + background-position: -128px 0; } + +.jstree-default-large .jstree-closed > .jstree-ocl { + background-position: -96px 0; } + +.jstree-default-large .jstree-leaf > .jstree-ocl { + background-position: -64px 0; } + +.jstree-default-large.jstree-checkbox-selection .jstree-clicked > .jstree-checkbox { + background-position: -224px 0; } + .jstree-default-large.jstree-checkbox-selection .jstree-clicked > .jstree-checkbox:hover { + background-position: -224px -32px; } + +.jstree-default-large .jstree-checked > .jstree-checkbox { + background-position: -224px 0; } + .jstree-default-large .jstree-checked > .jstree-checkbox:hover { + background-position: -224px -32px; } + +@media (max-width: 768px) { + .jstree-default-responsive .jstree-icon { + background-image: url(../images/tree/40px.png); + width: 40px; + height: 40px; + line-height: 40px; + background-image: url(../images/tree/40px.png); + background-size: 120px 240px; } + .jstree-default-responsive .jstree-icon:empty { + width: 40px; + height: 40px; + line-height: 40px; } + .jstree-default-responsive .jstree-node { + background: transparent; + min-height: 40px; + line-height: 40px; + margin-left: 40px; + min-width: 40px; + white-space: nowrap; + background-position: -80px 0; + background-repeat: repeat-y; + background-image: url(../images/tree/40px.png); + background-size: 120px 240px; } + .jstree-default-responsive .jstree-node > .jstree-ocl { + background-image: url(../images/tree/40px.png); + background-size: 120px 240px; } + .jstree-default-responsive .jstree-anchor { + line-height: 40px; + height: 40px; + font-weight: bold; + font-size: 1.1em; + text-shadow: 1px 1px white; } + .jstree-default-responsive .jstree-anchor > .jstree-undetermined { + background-position: 0 -120px; } + .jstree-default-responsive .jstree-anchor > .jstree-undetermined:hover { + background-position: 0 -120px; } + .jstree-default-responsive > .jstree-striped { + background: transparent; } + .jstree-default-responsive > .jstree-container-ul > .jstree-node { + margin-left: 0; + margin-right: 0; } + .jstree-default-responsive.jstree-rtl .jstree-node { + margin-left: 0; + margin-right: 40px; } + .jstree-default-responsive.jstree-rtl .jstree-container-ul > .jstree-node { + margin-right: 0; } + .jstree-default-responsive.jstree-rtl .jstree-closed > .jstree-ocl { + background-position: -40px 0 !important; } + .jstree-default-responsive .jstree-ocl { + background-size: 120px 240px; } + .jstree-default-responsive .jstree-themeicon { + background-size: 120px 240px; + background-position: -40px -40px; + background-image: url(../images/tree/40px.png); + background-size: 120px 240px; } + .jstree-default-responsive .jstree-checkbox { + background-size: 120px 240px; + background-position: -40px -80px; + background-image: url(../images/tree/40px.png); + background-size: 120px 240px; } + .jstree-default-responsive .jstree-checkbox:hover { + background-position: -40px -80px; } + .jstree-default-responsive .jstree-wholerow { + border-top: 1px solid rgba(255, 255, 255, 0.7); + border-bottom: 1px solid rgba(64, 64, 64, 0.2); + background: #ebebeb; + height: 40px; } + .jstree-default-responsive .jstree-wholerow-hovered { + background: #e7f4f9; } + .jstree-default-responsive .jstree-wholerow-clicked { + background: #beebff; } + .jstree-default-responsive .jstree-children .jstree-open > .jstree-wholerow { + -webkit-box-shadow: inset 0 6px 3px -5px #666666; + box-shadow: inset 0 6px 3px -5px #666666; + border-top: 0; } + .jstree-default-responsive .jstree-children .jstree-open + .jstree-open { + -webkit-box-shadow: none; + box-shadow: none; } + .jstree-default-responsive .jstree-children .jstree-last > .jstree-wholerow { + -webkit-box-shadow: inset 0 -6px 3px -5px #666666; + box-shadow: inset 0 -6px 3px -5px #666666; } + .jstree-default-responsive .jstree-last { + background: transparent; } + .jstree-default-responsive .jstree-last > .jstree-ocl { + background-position: -40px -160px; } + .jstree-default-responsive .jstree-themeicon-custom { + background-color: transparent; + background-image: none; + background-position: 0 0; } + .jstree-default-responsive .jstree-file { + background: url(../images/tree/40px.png) 0 -160px no-repeat; + background-size: 120px 240px; } + .jstree-default-responsive .jstree-folder { + background: url(../images/tree/40px.png) -40px -40px no-repeat; + background-size: 120px 240px; } + .jstree-default-responsive .jstree-leaf > .jstree-ocl { + background: transparent; + background: transparent; + background-position: -40px -120px; } + .jstree-default-responsive .jstree-open > .jstree-ocl { + background-position: 0 0 !important; } + .jstree-default-responsive .jstree-closed > .jstree-ocl { + background-position: 0 -40px !important; } + .jstree-default-responsive.jstree-checkbox-selection .jstree-clicked > .jstree-checkbox { + background-position: 0 -80px; } + .jstree-default-responsive.jstree-checkbox-selection .jstree-clicked > .jstree-checkbox:hover { + background-position: 0 -80px; } + .jstree-default-responsive .jstree-checked > .jstree-checkbox { + background-position: 0 -80px; } + .jstree-default-responsive .jstree-checked > .jstree-checkbox:hover { + background-position: 0 -80px; } + #jstree-dnd.jstree-dnd-responsive { + line-height: 40px; + font-weight: bold; + font-size: 1.1em; + text-shadow: 1px 1px white; } + #jstree-dnd.jstree-dnd-responsive > i { + background: transparent; + width: 40px; + height: 40px; } + #jstree-dnd.jstree-dnd-responsive > .jstree-ok { + background-image: url(../images/tree/40px.png); + background-position: 0 -200px; + background-size: 120px 240px; } + #jstree-dnd.jstree-dnd-responsive > .jstree-er { + background-image: url(../images/tree/40px.png); + background-position: -40px -200px; + background-size: 120px 240px; } + #jstree-marker.jstree-dnd-responsive { + border-left-width: 10px; + border-top-width: 10px; + border-bottom-width: 10px; + margin-top: -10px; } } + +.jstree-leaf > .jstree-ocl { + cursor: default; } + +.jstree-no-icons .jstree-themeicon { + display: none; } + +.jstree-node, .jstree-children, .jstree-container-ul { + display: block; + margin: 0; + padding: 0; + list-style-type: none; + list-style-image: none; } + +.vakata-context, .vakata-context ul { + margin: 0; + padding: 2px; + position: absolute; + background: #f5f5f5; + border: 1px solid #979797; + -webkit-box-shadow: 2px 2px 2px #979797; + box-shadow: 2px 2px 2px #979797; } + +.vakata-context .vakata-context-separator > a, .vakata-context .vakata-context-separator > a:hover { + background: white; + border: 0; + border-top: 1px solid #e2e3e3; + height: 1px; + min-height: 1px; + max-height: 1px; + padding: 0; + margin: 0 0 0 2.4em; + border-left: 1px solid #e0e0e0; + text-shadow: 0 0 0 transparent; + -webkit-box-shadow: 0 0 0 transparent; + box-shadow: 0 0 0 transparent; + border-radius: 0; } + +.vakata-context .vakata-contextmenu-disabled a, .vakata-context .vakata-contextmenu-disabled a:hover { + color: silver; + background-color: transparent; + border: 0; + -webkit-box-shadow: 0 0 0; + box-shadow: 0 0 0; } + +#jstree-dnd .jstree-icon, #jstree-dnd .jstree-copy { + display: inline-block; + text-decoration: none; + margin: 0 2px 0 0; + padding: 0; + width: 16px; + height: 16px; } + +.jstree-default .jstree-node, .jstree-default .jstree-icon { + background-repeat: no-repeat; + background-color: transparent; + color: #333; + background-image: url(../images/tree/32px.png); + color: #777; } + +.jstree-default > .jstree-wholerow-ul .jstree-hovered, .jstree-default > .jstree-wholerow-ul .jstree-clicked { + background: transparent; + -webkit-box-shadow: none; + box-shadow: none; + border-radius: 0; } + +#jstree-dnd.jstree-default .jstree-ok, #jstree-dnd.jstree-default .jstree-er { + background-image: url(../images/icon-tree.html); + background-repeat: no-repeat; + background-color: transparent; } + +#jstree-dnd.jstree-default-small .jstree-ok, #jstree-dnd.jstree-default-small .jstree-er { + background-image: url(../images/icon-tree.html); + background-repeat: no-repeat; + background-color: transparent; } + +#jstree-dnd.jstree-default-large .jstree-ok, #jstree-dnd.jstree-default-large .jstree-er { + background-image: url(../images/icon-tree.html); + background-repeat: no-repeat; + background-color: transparent; } + +.jstree-node { + white-space: nowrap; } + .jstree-node.jstree-hidden { + display: none; } + +.jstree-anchor { + display: inline-block; + color: black; + white-space: nowrap; + padding: 0 10px 0 1px; + margin: 0; + vertical-align: top; + text-decoration: none; + color: inherit; } + .jstree-anchor:focus { + outline: 0; } + .jstree-anchor:link { + text-decoration: none; + color: inherit; } + .jstree-anchor:visited { + text-decoration: none; + color: inherit; } + .jstree-anchor:hover { + text-decoration: none; + color: inherit; } + .jstree-anchor:active { + text-decoration: none; + color: inherit; } + .jstree-anchor > .jstree-themeicon { + margin-right: 2px; } + .jstree-anchor > .jstree-themeicon-hidden { + display: none; } + +.jstree-icon { + display: inline-block; + text-decoration: none; + margin: 0; + padding: 0; + vertical-align: top; + text-align: center; } + .jstree-icon:empty { + display: inline-block; + text-decoration: none; + margin: 0; + padding: 0; + vertical-align: top; + text-align: center; } + +.jstree-ocl { + cursor: pointer; } + +.jstree .jstree-open > .jstree-children { + display: block; } + +.jstree .jstree-closed > .jstree-children { + display: none; } + +.jstree .jstree-leaf > .jstree-children { + display: none; } + +.jstree-hidden { + display: none; } + +.jstree-rtl .jstree-anchor { + padding: 0 1px 0 4px; } + .jstree-rtl .jstree-anchor > .jstree-themeicon { + margin-left: 2px; + margin-right: 0; } + +.jstree-rtl .jstree-node { + margin-left: 0; } + +.jstree-rtl .jstree-container-ul > .jstree-node { + margin-right: 0; } + +.jstree-wholerow-ul { + position: relative; + display: inline-block; + min-width: 100%; } + .jstree-wholerow-ul .jstree-anchor { + position: relative; } + .jstree-wholerow-ul .jstree-icon { + position: relative; } + .jstree-wholerow-ul .jstree-wholerow { + width: 100%; + cursor: pointer; + position: absolute; + left: 0; + -webkit-user-select: none; + -moz-user-select: none; + -ms-user-select: none; + user-select: none; } + .jstree-wholerow-ul .jstree-leaf > .jstree-ocl { + cursor: pointer; } + +.vakata-context { + display: none; } + .vakata-context ul { + list-style: none; + left: 100%; + margin-top: -2.7em; + margin-left: -4px; } + .vakata-context li { + list-style: none; } + .vakata-context li > a { + display: block; + padding: 0 2em; + text-decoration: none; + width: auto; + color: black; + white-space: nowrap; + line-height: 2.4em; + text-shadow: 1px 1px 0 white; + border-radius: 1px; } + .vakata-context li > a:hover { + position: relative; + background-color: #e8eff7; + -webkit-box-shadow: 0 0 2px #0a6aa1; + box-shadow: 0 0 2px #0a6aa1; } + .vakata-context li > a.vakata-context-parent { + background-image: url("data:image/gif"); + background-position: right center; + background-repeat: no-repeat; } + .vakata-context li > a:focus { + outline: 0; } + .vakata-context li > a > i { + text-decoration: none; + display: inline-block; + width: 2.4em; + height: 2.4em; + background: transparent; + margin: 0 0 0 -2em; + vertical-align: top; + text-align: center; + line-height: 2.4em; } + .vakata-context li > a > i:empty { + width: 2.4em; + line-height: 2.4em; } + .vakata-context li > a .vakata-contextmenu-sep { + display: inline-block; + width: 1px; + height: 2.4em; + background: white; + margin: 0 0.5em 0 0; + border-left: 1px solid #e2e3e3; } + .vakata-context .vakata-contextmenu-shortcut { + font-size: 0.8em; + color: silver; + opacity: 0.5; + display: none; } + .vakata-context .vakata-context-end ul { + left: auto; + right: 100%; + margin-left: auto; + margin-right: -4px; } + .vakata-context .vakata-context-hover > a { + position: relative; + background-color: #e8eff7; + -webkit-box-shadow: 0 0 2px #0a6aa1; + box-shadow: 0 0 2px #0a6aa1; } + +.vakata-context-rtl ul { + left: auto; + right: 100%; + margin-left: auto; + margin-right: -4px; } + +.vakata-context-rtl li > a.vakata-context-parent { + background-image: url("data:image/gif"); + background-position: left center; + background-repeat: no-repeat; } + +.vakata-context-rtl li > a > i { + margin: 0 -2em 0 0; } + +.vakata-context-rtl li > a .vakata-contextmenu-sep { + margin: 0 0 0 0.5em; + border-left-color: white; + background: #e2e3e3; } + +.vakata-context-rtl .vakata-context-separator > a { + margin: 0 2.4em 0 0; + border-left: 0; + border-right: 1px solid #e2e3e3; } + +.vakata-context-rtl .vakata-context-start ul { + right: auto; + left: 100%; + margin-left: -4px; + margin-right: auto; } + +#jstree-marker { + position: absolute; + top: 0; + left: 0; + margin: -5px 0 0; + padding: 0; + border-right: 0; + border-top: 5px solid transparent; + border-bottom: 5px solid transparent; + border-left: 5px solid; + width: 0; + height: 0; + font-size: 0; + line-height: 0; } + +#jstree-dnd { + line-height: 16px; + margin: 0; + padding: 4px; } + #jstree-dnd .jstree-copy { + margin: 0 2px; } + #jstree-dnd .jstree-ok { + background: green; } + #jstree-dnd .jstree-er { + background: red; } + #jstree-dnd.jstree-default { + line-height: 24px; + padding: 0 4px; } + #jstree-dnd.jstree-default .jstree-ok { + background-position: -4px -68px; } + #jstree-dnd.jstree-default .jstree-er { + background-position: -36px -68px; } + #jstree-dnd.jstree-default i { + background: transparent; + width: 24px; + height: 24px; + line-height: 24px; } + #jstree-dnd.jstree-default-small { + line-height: 18px; + padding: 0 4px; } + #jstree-dnd.jstree-default-small .jstree-ok { + background-position: -7px -71px; } + #jstree-dnd.jstree-default-small .jstree-er { + background-position: -39px -71px; } + #jstree-dnd.jstree-default-small i { + background: transparent; + width: 18px; + height: 18px; + line-height: 18px; } + #jstree-dnd.jstree-default-large { + line-height: 32px; + padding: 0 4px; } + #jstree-dnd.jstree-default-large .jstree-ok { + background-position: 0 -64px; } + #jstree-dnd.jstree-default-large .jstree-er { + background-position: -32px -64px; } + #jstree-dnd.jstree-default-large i { + background: transparent; + width: 32px; + height: 32px; + line-height: 32px; } + +.jstree-default .jstree-node { + min-height: 24px; + line-height: 24px; + margin-left: 24px; + min-width: 24px; + background-position: -292px -4px; + background-repeat: repeat-y; } + +.jstree-default .jstree-icon { + width: 24px; + height: 24px; + line-height: 24px; } + .jstree-default .jstree-icon:empty { + width: 24px; + height: 24px; + line-height: 24px; } + +.jstree-default .jstree-anchor { + -webkit-transition: background-color 0.15s, -webkit-box-shadow 0.15s; + transition: background-color 0.15s, -webkit-box-shadow 0.15s; + transition: background-color 0.15s, box-shadow 0.15s; + transition: background-color 0.15s, box-shadow 0.15s, -webkit-box-shadow 0.15s; + line-height: 24px; + height: 24px; } + .jstree-default .jstree-anchor > .jstree-undetermined { + background-position: -196px -4px; } + .jstree-default .jstree-anchor > .jstree-undetermined:hover { + background-position: -196px -36px; } + +.jstree-default .jstree-wholerow { + -webkit-transition: background-color 0.15s, -webkit-box-shadow 0.15s; + transition: background-color 0.15s, -webkit-box-shadow 0.15s; + transition: background-color 0.15s, box-shadow 0.15s; + transition: background-color 0.15s, box-shadow 0.15s, -webkit-box-shadow 0.15s; + -webkit-box-sizing: border-box; + box-sizing: border-box; + height: 24px; } + +.jstree-default .jstree-hovered { + background: #e7f4f9; + border-radius: 2px; + -webkit-box-shadow: inset 0 0 1px #cccccc; + box-shadow: inset 0 0 1px #cccccc; } + +.jstree-default .jstree-context { + background: #e7f4f9; + border-radius: 2px; + -webkit-box-shadow: inset 0 0 1px #cccccc; + box-shadow: inset 0 0 1px #cccccc; } + +.jstree-default .jstree-clicked { + background: #d8d8d8; + border-radius: 2px; + -webkit-box-shadow: inset 0 0 1px #979797; + box-shadow: inset 0 0 1px #979797; + color: black; } + +.jstree-default .jstree-disabled { + color: #666666; + background: transparent; } + .jstree-default .jstree-disabled.jstree-hovered { + -webkit-box-shadow: none; + box-shadow: none; + background: transparent; } + .jstree-default .jstree-disabled.jstree-clicked { + background: #efefef; } + .jstree-default .jstree-disabled > .jstree-icon { + opacity: 0.8; + -webkit-filter: url("data:image/svg"); + filter: url("data:image/svg"); + -webkit-filter: gray; + filter: gray; } + +.jstree-default .jstree-search { + font-style: italic; + color: #8b0000; + font-weight: bold; } + +.jstree-default.jstree-checkbox-no-clicked .jstree-clicked { + background: transparent; + -webkit-box-shadow: none; + box-shadow: none; } + .jstree-default.jstree-checkbox-no-clicked .jstree-clicked.jstree-hovered { + background: #e7f4f9; } + +.jstree-default.jstree-checkbox-no-clicked > .jstree-wholerow-ul .jstree-wholerow-clicked { + background: transparent; } + .jstree-default.jstree-checkbox-no-clicked > .jstree-wholerow-ul .jstree-wholerow-clicked.jstree-wholerow-hovered { + background: #e7f4f9; } + +.jstree-default > .jstree-striped { + min-width: 100%; + display: inline-block; + background: url("data:image/png") left top repeat; + background-size: auto 48px; } + +.jstree-default > .jstree-no-dots .jstree-node { + background: transparent; } + +.jstree-default > .jstree-no-dots .jstree-leaf > .jstree-ocl { + background: transparent; } + +.jstree-default > .jstree-no-dots .jstree-open > .jstree-ocl { + background-position: -36px -4px; } + +.jstree-default > .jstree-no-dots .jstree-closed > .jstree-ocl { + background-position: -4px -4px; } + +.jstree-default > .jstree-container-ul > .jstree-node { + margin-left: 0; + margin-right: 0; } + +.jstree-default .jstree-wholerow-hovered { + background: #e7f4f9; } + +.jstree-default .jstree-wholerow-clicked { + background: #beebff; + background: -webkit-gradient(linear, left top, left bottom, color-stop(0, #beebff), to(#a8e4ff)); + background: linear-gradient(to bottom, #beebff 0, #a8e4ff 100%); } + +.jstree-default.jstree-rtl .jstree-node { + margin-right: 24px; + background-position: 100% 1px; + background-repeat: repeat-y; + background-image: url("data:image/png"); } + +.jstree-default.jstree-rtl .jstree-last { + background: transparent; } + +.jstree-default.jstree-rtl .jstree-open > .jstree-ocl { + background-position: -132px -36px; } + +.jstree-default.jstree-rtl .jstree-closed > .jstree-ocl { + background-position: -100px -36px; } + +.jstree-default.jstree-rtl .jstree-leaf > .jstree-ocl { + background-position: -68px -36px; } + +.jstree-default.jstree-rtl > .jstree-no-dots .jstree-node { + background: transparent; } + +.jstree-default.jstree-rtl > .jstree-no-dots .jstree-leaf > .jstree-ocl { + background: transparent; } + +.jstree-default.jstree-rtl > .jstree-no-dots .jstree-open > .jstree-ocl { + background-position: -36px -36px; } + +.jstree-default.jstree-rtl > .jstree-no-dots .jstree-closed > .jstree-ocl { + background-position: -4px -36px; } + +.jstree-default .jstree-last { + background: transparent; } + +.jstree-default .jstree-themeicon { + background-position: -260px -4px; } + +.jstree-default .jstree-checkbox { + background-position: -164px -4px; } + .jstree-default .jstree-checkbox:hover { + background-position: -164px -36px; } + +.jstree-default .jstree-checkbox-disabled { + opacity: 0.8; + -webkit-filter: url("data:image/svg"); + filter: url("data:image/svg"); + -webkit-filter: gray; + filter: gray; } + +.jstree-default .jstree-themeicon-custom { + background-color: transparent; + background-image: none; + background-position: 0 0; } + +.jstree-default .jstree-file { + background: url(../images/icon-tree.html) -100px -68px no-repeat; } + +.jstree-default .jstree-folder { + background: url(../images/icon-tree.html) -260px -4px no-repeat; } + +.jstree-default .jstree-no-icons .jstree-anchor > .jstree-themeicon { + display: none; } + +.jstree-default .jstree-no-checkboxes .jstree-checkbox { + display: none !important; } + +.jstree-default .jstree-open > .jstree-ocl { + background-position: -132px -4px; } + +.jstree-default .jstree-closed > .jstree-ocl { + background-position: -100px -4px; } + +.jstree-default .jstree-leaf > .jstree-ocl { + background-position: -68px -4px; } + +.jstree-default.jstree-checkbox-selection .jstree-clicked > .jstree-checkbox { + background-position: -228px -4px; } + .jstree-default.jstree-checkbox-selection .jstree-clicked > .jstree-checkbox:hover { + background-position: -228px -36px; } + +.jstree-default .jstree-checked > .jstree-checkbox { + background-position: -228px -4px; } + .jstree-default .jstree-checked > .jstree-checkbox:hover { + background-position: -228px -36px; } + +.jstree-default-small .jstree-node { + min-height: 18px; + line-height: 18px; + margin-left: 18px; + min-width: 18px; + background-position: -295px -7px; + background-repeat: repeat-y; + background-image: url(../images/icon-tree.html); } + +.jstree-default-small .jstree-anchor { + line-height: 18px; + height: 18px; } + .jstree-default-small .jstree-anchor > .jstree-undetermined { + background-position: -199px -7px; } + .jstree-default-small .jstree-anchor > .jstree-undetermined:hover { + background-position: -199px -39px; } + +.jstree-default-small .jstree-icon { + width: 18px; + height: 18px; + line-height: 18px; + background-image: url(../images/icon-tree.html); } + .jstree-default-small .jstree-icon:empty { + width: 18px; + height: 18px; + line-height: 18px; } + +.jstree-default-small.jstree-rtl .jstree-node { + margin-right: 18px; + background-image: url("data:image/png"); + background-position: 100% 1px; + background-repeat: repeat-y; + background-image: url("data:image/png"); } + +.jstree-default-small.jstree-rtl .jstree-last { + background: transparent; } + +.jstree-default-small.jstree-rtl .jstree-open > .jstree-ocl { + background-position: -135px -39px; } + +.jstree-default-small.jstree-rtl .jstree-closed > .jstree-ocl { + background-position: -103px -39px; } + +.jstree-default-small.jstree-rtl .jstree-leaf > .jstree-ocl { + background-position: -71px -39px; } + +.jstree-default-small.jstree-rtl > .jstree-no-dots .jstree-node { + background: transparent; } + +.jstree-default-small.jstree-rtl > .jstree-no-dots .jstree-leaf > .jstree-ocl { + background: transparent; } + +.jstree-default-small.jstree-rtl > .jstree-no-dots .jstree-open > .jstree-ocl { + background-position: -39px -39px; } + +.jstree-default-small.jstree-rtl > .jstree-no-dots .jstree-closed > .jstree-ocl { + background-position: -7px -39px; } + +.jstree-default-small .jstree-wholerow { + height: 18px; } + +.jstree-default-small .jstree-last { + background: transparent; } + +.jstree-default-small .jstree-themeicon { + background-position: -263px -7px; } + +.jstree-default-small > .jstree-no-dots .jstree-node { + background: transparent; } + +.jstree-default-small > .jstree-no-dots .jstree-leaf > .jstree-ocl { + background: transparent; } + +.jstree-default-small > .jstree-no-dots .jstree-open > .jstree-ocl { + background-position: -39px -7px; } + +.jstree-default-small > .jstree-no-dots .jstree-closed > .jstree-ocl { + background-position: -7px -7px; } + +.jstree-default-small > .jstree-striped { + background-size: auto 36px; } + +.jstree-default-small > .jstree-container-ul .jstree-loading > .jstree-ocl { + background: url(../images/throbber.html) center center no-repeat; } + +.jstree-default-small > .jstree-container-ul > .jstree-node { + margin-left: 0; + margin-right: 0; } + +.jstree-default-small .jstree-disabled { + background: transparent; } + .jstree-default-small .jstree-disabled.jstree-hovered { + background: transparent; } + .jstree-default-small .jstree-disabled.jstree-clicked { + background: #efefef; } + +.jstree-default-small .jstree-checkbox { + background-position: -167px -7px; } + .jstree-default-small .jstree-checkbox:hover { + background-position: -167px -39px; } + +.jstree-default-small .jstree-checkbox-disabled { + opacity: 0.8; + -webkit-filter: url("data:image/svg"); + filter: url("data:image/svg"); + -webkit-filter: gray; + filter: gray; } + +.jstree-default-small .jstree-themeicon-custom { + background-color: transparent; + background-image: none; + background-position: 0 0; } + +.jstree-default-small .jstree-file { + background: url(../images/icon-tree.html) -103px -71px no-repeat; } + +.jstree-default-small .jstree-folder { + background: url(../images/icon-tree.html) -263px -7px no-repeat; } + +.jstree-default-small .jstree-open > .jstree-ocl { + background-position: -135px -7px; } + +.jstree-default-small .jstree-closed > .jstree-ocl { + background-position: -103px -7px; } + +.jstree-default-small .jstree-leaf > .jstree-ocl { + background-position: -71px -7px; } + +.jstree-default-small.jstree-checkbox-selection .jstree-clicked > .jstree-checkbox { + background-position: -231px -7px; } + .jstree-default-small.jstree-checkbox-selection .jstree-clicked > .jstree-checkbox:hover { + background-position: -231px -39px; } + +.jstree-default-small .jstree-checked > .jstree-checkbox { + background-position: -231px -7px; } + .jstree-default-small .jstree-checked > .jstree-checkbox:hover { + background-position: -231px -39px; } + +.jstree-default-large .jstree-node { + min-height: 32px; + line-height: 32px; + margin-left: 32px; + min-width: 32px; + background-position: -288px 0; + background-repeat: repeat-y; + background-image: url(../images/icon-tree.html); } + +.jstree-default-large .jstree-anchor { + line-height: 32px; + height: 32px; } + .jstree-default-large .jstree-anchor > .jstree-undetermined { + background-position: -192px 0; } + .jstree-default-large .jstree-anchor > .jstree-undetermined:hover { + background-position: -192px -32px; } + +.jstree-default-large .jstree-icon { + width: 32px; + height: 32px; + line-height: 32px; + background-image: url(../images/icon-tree.html); } + .jstree-default-large .jstree-icon:empty { + width: 32px; + height: 32px; + line-height: 32px; } + +.jstree-default-large.jstree-rtl .jstree-node { + margin-right: 32px; + background-image: url("data:image/png"); + background-position: 100% 1px; + background-repeat: repeat-y; + background-image: url("data:image/png"); } + +.jstree-default-large.jstree-rtl .jstree-last { + background: transparent; } + +.jstree-default-large.jstree-rtl .jstree-open > .jstree-ocl { + background-position: -128px -32px; } + +.jstree-default-large.jstree-rtl .jstree-closed > .jstree-ocl { + background-position: -96px -32px; } + +.jstree-default-large.jstree-rtl .jstree-leaf > .jstree-ocl { + background-position: -64px -32px; } + +.jstree-default-large.jstree-rtl > .jstree-no-dots .jstree-node { + background: transparent; } + +.jstree-default-large.jstree-rtl > .jstree-no-dots .jstree-leaf > .jstree-ocl { + background: transparent; } + +.jstree-default-large.jstree-rtl > .jstree-no-dots .jstree-open > .jstree-ocl { + background-position: -32px -32px; } + +.jstree-default-large.jstree-rtl > .jstree-no-dots .jstree-closed > .jstree-ocl { + background-position: 0 -32px; } + +.jstree-default-large .jstree-wholerow { + height: 32px; } + +.jstree-default-large .jstree-last { + background: transparent; } + +.jstree-default-large .jstree-themeicon { + background-position: -256px 0; } + +.jstree-default-large > .jstree-no-dots .jstree-node { + background: transparent; } + +.jstree-default-large > .jstree-no-dots .jstree-leaf > .jstree-ocl { + background: transparent; } + +.jstree-default-large > .jstree-no-dots .jstree-open > .jstree-ocl { + background-position: -32px 0; } + +.jstree-default-large > .jstree-no-dots .jstree-closed > .jstree-ocl { + background-position: 0 0; } + +.jstree-default-large > .jstree-striped { + background-size: auto 64px; } + +.jstree-default-large > .jstree-container-ul .jstree-loading > .jstree-ocl { + background: url(../images/throbber.html) center center no-repeat; } + +.jstree-default-large > .jstree-container-ul > .jstree-node { + margin-left: 0; + margin-right: 0; } + +.jstree-default-large .jstree-disabled { + background: transparent; } + .jstree-default-large .jstree-disabled.jstree-hovered { + background: transparent; } + .jstree-default-large .jstree-disabled.jstree-clicked { + background: #efefef; } + +.jstree-default-large .jstree-checkbox { + background-position: -160px 0; } + .jstree-default-large .jstree-checkbox:hover { + background-position: -160px -32px; } + +.jstree-default-large .jstree-checkbox-disabled { + opacity: 0.8; + -webkit-filter: url("data:image/svg"); + filter: url("data:image/svg"); + -webkit-filter: gray; + filter: gray; } + +.jstree-default-large .jstree-themeicon-custom { + background-color: transparent; + background-image: none; + background-position: 0 0; } + +.jstree-default-large .jstree-file { + background: url(../images/icon-tree.html) -96px -64px no-repeat; } + +.jstree-default-large .jstree-folder { + background: url(../images/icon-tree.html) -256px 0 no-repeat; } + +.jstree-default-large .jstree-open > .jstree-ocl { + background-position: -128px 0; } + +.jstree-default-large .jstree-closed > .jstree-ocl { + background-position: -96px 0; } + +.jstree-default-large .jstree-leaf > .jstree-ocl { + background-position: -64px 0; } + +.jstree-default-large.jstree-checkbox-selection .jstree-clicked > .jstree-checkbox { + background-position: -224px 0; } + .jstree-default-large.jstree-checkbox-selection .jstree-clicked > .jstree-checkbox:hover { + background-position: -224px -32px; } + +.jstree-default-large .jstree-checked > .jstree-checkbox { + background-position: -224px 0; } + .jstree-default-large .jstree-checked > .jstree-checkbox:hover { + background-position: -224px -32px; } + +@media (max-width: 768px) { + .jstree-default-responsive .jstree-icon { + background-image: url(../images/tree-1.html); + width: 40px; + height: 40px; + line-height: 40px; + background-image: url(../images/tree-1.html); + background-size: 120px 240px; } + .jstree-default-responsive .jstree-icon:empty { + width: 40px; + height: 40px; + line-height: 40px; } + .jstree-default-responsive .jstree-node { + background: transparent; + min-height: 40px; + line-height: 40px; + margin-left: 40px; + min-width: 40px; + white-space: nowrap; + background-position: -80px 0; + background-repeat: repeat-y; + background-image: url(../images/tree-1.html); + background-size: 120px 240px; } + .jstree-default-responsive .jstree-node > .jstree-ocl { + background-image: url(../images/tree-1.html); + background-size: 120px 240px; } + .jstree-default-responsive .jstree-anchor { + line-height: 40px; + height: 40px; + font-weight: bold; + font-size: 1.1em; + text-shadow: 1px 1px white; } + .jstree-default-responsive .jstree-anchor > .jstree-undetermined { + background-position: 0 -120px; } + .jstree-default-responsive .jstree-anchor > .jstree-undetermined:hover { + background-position: 0 -120px; } + .jstree-default-responsive > .jstree-striped { + background: transparent; } + .jstree-default-responsive > .jstree-container-ul > .jstree-node { + margin-left: 0; + margin-right: 0; } + .jstree-default-responsive.jstree-rtl .jstree-node { + margin-left: 0; + margin-right: 40px; } + .jstree-default-responsive.jstree-rtl .jstree-container-ul > .jstree-node { + margin-right: 0; } + .jstree-default-responsive.jstree-rtl .jstree-closed > .jstree-ocl { + background-position: -40px 0 !important; } + .jstree-default-responsive .jstree-ocl { + background-size: 120px 240px; } + .jstree-default-responsive .jstree-themeicon { + background-size: 120px 240px; + background-position: -40px -40px; + background-image: url(../images/tree-1.html); + background-size: 120px 240px; } + .jstree-default-responsive .jstree-checkbox { + background-size: 120px 240px; + background-position: -40px -80px; + background-image: url(../images/tree-1.html); + background-size: 120px 240px; } + .jstree-default-responsive .jstree-checkbox:hover { + background-position: -40px -80px; } + .jstree-default-responsive .jstree-wholerow { + border-top: 1px solid rgba(255, 255, 255, 0.7); + border-bottom: 1px solid rgba(64, 64, 64, 0.2); + background: #ebebeb; + height: 40px; } + .jstree-default-responsive .jstree-wholerow-hovered { + background: #e7f4f9; } + .jstree-default-responsive .jstree-wholerow-clicked { + background: #beebff; } + .jstree-default-responsive .jstree-children .jstree-open > .jstree-wholerow { + -webkit-box-shadow: inset 0 6px 3px -5px #666666; + box-shadow: inset 0 6px 3px -5px #666666; + border-top: 0; } + .jstree-default-responsive .jstree-children .jstree-open + .jstree-open { + -webkit-box-shadow: none; + box-shadow: none; } + .jstree-default-responsive .jstree-children .jstree-last > .jstree-wholerow { + -webkit-box-shadow: inset 0 -6px 3px -5px #666666; + box-shadow: inset 0 -6px 3px -5px #666666; } + .jstree-default-responsive .jstree-last { + background: transparent; } + .jstree-default-responsive .jstree-last > .jstree-ocl { + background-position: -40px -160px; } + .jstree-default-responsive .jstree-themeicon-custom { + background-color: transparent; + background-image: none; + background-position: 0 0; } + .jstree-default-responsive .jstree-file { + background: url(../images/tree-1.html) 0 -160px no-repeat; + background-size: 120px 240px; } + .jstree-default-responsive .jstree-folder { + background: url(../images/tree-1.html) -40px -40px no-repeat; + background-size: 120px 240px; } + .jstree-default-responsive .jstree-leaf > .jstree-ocl { + background: transparent; + background: transparent; + background-position: -40px -120px; } + .jstree-default-responsive .jstree-open > .jstree-ocl { + background-position: 0 0 !important; } + .jstree-default-responsive .jstree-closed > .jstree-ocl { + background-position: 0 -40px !important; } + .jstree-default-responsive.jstree-checkbox-selection .jstree-clicked > .jstree-checkbox { + background-position: 0 -80px; } + .jstree-default-responsive.jstree-checkbox-selection .jstree-clicked > .jstree-checkbox:hover { + background-position: 0 -80px; } + .jstree-default-responsive .jstree-checked > .jstree-checkbox { + background-position: 0 -80px; } + .jstree-default-responsive .jstree-checked > .jstree-checkbox:hover { + background-position: 0 -80px; } + #jstree-dnd.jstree-dnd-responsive { + line-height: 40px; + font-weight: bold; + font-size: 1.1em; + text-shadow: 1px 1px white; } + #jstree-dnd.jstree-dnd-responsive > i { + background: transparent; + width: 40px; + height: 40px; } + #jstree-dnd.jstree-dnd-responsive > .jstree-ok { + background-image: url(../images/tree-1.html); + background-position: 0 -200px; + background-size: 120px 240px; } + #jstree-dnd.jstree-dnd-responsive > .jstree-er { + background-image: url(../images/tree-1.html); + background-position: -40px -200px; + background-size: 120px 240px; } + #jstree-marker.jstree-dnd-responsive { + border-left-width: 10px; + border-top-width: 10px; + border-bottom-width: 10px; + margin-top: -10px; } } + +.jstree-leaf > .jstree-ocl { + cursor: default; } + +.jstree-no-icons .jstree-themeicon { + display: none; } diff --git a/public/admin/assets/css/vector-map.css b/public/admin/assets/css/vector-map.css new file mode 100644 index 0000000..8638da1 --- /dev/null +++ b/public/admin/assets/css/vector-map.css @@ -0,0 +1,107 @@ +.jvectormap-zoomin, .jvectormap-zoomout, .jvectormap-goback { + position: absolute; + left: 10px; + border-radius: 3px; + background: #292929; + padding: 5px; + color: #fff; + cursor: pointer; + line-height: 20px; + text-align: center; + -webkit-box-sizing: content-box; + box-sizing: content-box; } + +.jvectormap-container { + width: 100%; + height: 100%; + position: relative; + overflow: hidden; } + +.jvector-map-height { + height: 389px; } + +.jvectormap-tip { + position: absolute; + display: none; + border: solid 1px #cdcdcd; + border-radius: 3px; + background: #292929; + color: #fff; + font-family: sans-serif, Verdana; + font-size: smaller; + padding: 3px; } + +.jvectormap-zoomin { + width: 20px; + height: 20px; + bottom: 10px; } + +.jvectormap-zoomout { + width: 20px; + height: 20px; + bottom: 50px; } + +.jvectormap-goback { + bottom: 10px; + z-index: 1000; + padding: 6px; } + +.jvectormap-spinner { + position: absolute; + left: 0; + top: 0; + right: 0; + bottom: 0; + background: center no-repeat url(data:image/gif;base64,R0lGODlhIAAgAPMAAP///wAAAMbGxoSEhLa2tpqamjY2NlZWVtjY2OTk5Ly8vB4eHgQEBAAAAAAAAAAAACH/C05FVFNDQVBFMi4wAwEAAAAh/hpDcmVhdGVkIHdpdGggYWpheGxvYWQuaW5mbwAh+QQJCgAAACwAAAAAIAAgAAAE5xDISWlhperN52JLhSSdRgwVo1ICQZRUsiwHpTJT4iowNS8vyW2icCF6k8HMMBkCEDskxTBDAZwuAkkqIfxIQyhBQBFvAQSDITM5VDW6XNE4KagNh6Bgwe60smQUB3d4Rz1ZBApnFASDd0hihh12BkE9kjAJVlycXIg7CQIFA6SlnJ87paqbSKiKoqusnbMdmDC2tXQlkUhziYtyWTxIfy6BE8WJt5YJvpJivxNaGmLHT0VnOgSYf0dZXS7APdpB309RnHOG5gDqXGLDaC457D1zZ/V/nmOM82XiHRLYKhKP1oZmADdEAAAh+QQJCgAAACwAAAAAIAAgAAAE6hDISWlZpOrNp1lGNRSdRpDUolIGw5RUYhhHukqFu8DsrEyqnWThGvAmhVlteBvojpTDDBUEIFwMFBRAmBkSgOrBFZogCASwBDEY/CZSg7GSE0gSCjQBMVG023xWBhklAnoEdhQEfyNqMIcKjhRsjEdnezB+A4k8gTwJhFuiW4dokXiloUepBAp5qaKpp6+Ho7aWW54wl7obvEe0kRuoplCGepwSx2jJvqHEmGt6whJpGpfJCHmOoNHKaHx61WiSR92E4lbFoq+B6QDtuetcaBPnW6+O7wDHpIiK9SaVK5GgV543tzjgGcghAgAh+QQJCgAAACwAAAAAIAAgAAAE7hDISSkxpOrN5zFHNWRdhSiVoVLHspRUMoyUakyEe8PTPCATW9A14E0UvuAKMNAZKYUZCiBMuBakSQKG8G2FzUWox2AUtAQFcBKlVQoLgQReZhQlCIJesQXI5B0CBnUMOxMCenoCfTCEWBsJColTMANldx15BGs8B5wlCZ9Po6OJkwmRpnqkqnuSrayqfKmqpLajoiW5HJq7FL1Gr2mMMcKUMIiJgIemy7xZtJsTmsM4xHiKv5KMCXqfyUCJEonXPN2rAOIAmsfB3uPoAK++G+w48edZPK+M6hLJpQg484enXIdQFSS1u6UhksENEQAAIfkECQoAAAAsAAAAACAAIAAABOcQyEmpGKLqzWcZRVUQnZYg1aBSh2GUVEIQ2aQOE+G+cD4ntpWkZQj1JIiZIogDFFyHI0UxQwFugMSOFIPJftfVAEoZLBbcLEFhlQiqGp1Vd140AUklUN3eCA51C1EWMzMCezCBBmkxVIVHBWd3HHl9JQOIJSdSnJ0TDKChCwUJjoWMPaGqDKannasMo6WnM562R5YluZRwur0wpgqZE7NKUm+FNRPIhjBJxKZteWuIBMN4zRMIVIhffcgojwCF117i4nlLnY5ztRLsnOk+aV+oJY7V7m76PdkS4trKcdg0Zc0tTcKkRAAAIfkECQoAAAAsAAAAACAAIAAABO4QyEkpKqjqzScpRaVkXZWQEximw1BSCUEIlDohrft6cpKCk5xid5MNJTaAIkekKGQkWyKHkvhKsR7ARmitkAYDYRIbUQRQjWBwJRzChi9CRlBcY1UN4g0/VNB0AlcvcAYHRyZPdEQFYV8ccwR5HWxEJ02YmRMLnJ1xCYp0Y5idpQuhopmmC2KgojKasUQDk5BNAwwMOh2RtRq5uQuPZKGIJQIGwAwGf6I0JXMpC8C7kXWDBINFMxS4DKMAWVWAGYsAdNqW5uaRxkSKJOZKaU3tPOBZ4DuK2LATgJhkPJMgTwKCdFjyPHEnKxFCDhEAACH5BAkKAAAALAAAAAAgACAAAATzEMhJaVKp6s2nIkolIJ2WkBShpkVRWqqQrhLSEu9MZJKK9y1ZrqYK9WiClmvoUaF8gIQSNeF1Er4MNFn4SRSDARWroAIETg1iVwuHjYB1kYc1mwruwXKC9gmsJXliGxc+XiUCby9ydh1sOSdMkpMTBpaXBzsfhoc5l58Gm5yToAaZhaOUqjkDgCWNHAULCwOLaTmzswadEqggQwgHuQsHIoZCHQMMQgQGubVEcxOPFAcMDAYUA85eWARmfSRQCdcMe0zeP1AAygwLlJtPNAAL19DARdPzBOWSm1brJBi45soRAWQAAkrQIykShQ9wVhHCwCQCACH5BAkKAAAALAAAAAAgACAAAATrEMhJaVKp6s2nIkqFZF2VIBWhUsJaTokqUCoBq+E71SRQeyqUToLA7VxF0JDyIQh/MVVPMt1ECZlfcjZJ9mIKoaTl1MRIl5o4CUKXOwmyrCInCKqcWtvadL2SYhyASyNDJ0uIiRMDjI0Fd30/iI2UA5GSS5UDj2l6NoqgOgN4gksEBgYFf0FDqKgHnyZ9OX8HrgYHdHpcHQULXAS2qKpENRg7eAMLC7kTBaixUYFkKAzWAAnLC7FLVxLWDBLKCwaKTULgEwbLA4hJtOkSBNqITT3xEgfLpBtzE/jiuL04RGEBgwWhShRgQExHBAAh+QQJCgAAACwAAAAAIAAgAAAE7xDISWlSqerNpyJKhWRdlSAVoVLCWk6JKlAqAavhO9UkUHsqlE6CwO1cRdCQ8iEIfzFVTzLdRAmZX3I2SfZiCqGk5dTESJeaOAlClzsJsqwiJwiqnFrb2nS9kmIcgEsjQydLiIlHehhpejaIjzh9eomSjZR+ipslWIRLAgMDOR2DOqKogTB9pCUJBagDBXR6XB0EBkIIsaRsGGMMAxoDBgYHTKJiUYEGDAzHC9EACcUGkIgFzgwZ0QsSBcXHiQvOwgDdEwfFs0sDzt4S6BK4xYjkDOzn0unFeBzOBijIm1Dgmg5YFQwsCMjp1oJ8LyIAACH5BAkKAAAALAAAAAAgACAAAATwEMhJaVKp6s2nIkqFZF2VIBWhUsJaTokqUCoBq+E71SRQeyqUToLA7VxF0JDyIQh/MVVPMt1ECZlfcjZJ9mIKoaTl1MRIl5o4CUKXOwmyrCInCKqcWtvadL2SYhyASyNDJ0uIiUd6GGl6NoiPOH16iZKNlH6KmyWFOggHhEEvAwwMA0N9GBsEC6amhnVcEwavDAazGwIDaH1ipaYLBUTCGgQDA8NdHz0FpqgTBwsLqAbWAAnIA4FWKdMLGdYGEgraigbT0OITBcg5QwPT4xLrROZL6AuQAPUS7bxLpoWidY0JtxLHKhwwMJBTHgPKdEQAACH5BAkKAAAALAAAAAAgACAAAATrEMhJaVKp6s2nIkqFZF2VIBWhUsJaTokqUCoBq+E71SRQeyqUToLA7VxF0JDyIQh/MVVPMt1ECZlfcjZJ9mIKoaTl1MRIl5o4CUKXOwmyrCInCKqcWtvadL2SYhyASyNDJ0uIiUd6GAULDJCRiXo1CpGXDJOUjY+Yip9DhToJA4RBLwMLCwVDfRgbBAaqqoZ1XBMHswsHtxtFaH1iqaoGNgAIxRpbFAgfPQSqpbgGBqUD1wBXeCYp1AYZ19JJOYgH1KwA4UBvQwXUBxPqVD9L3sbp2BNk2xvvFPJd+MFCN6HAAIKgNggY0KtEBAAh+QQJCgAAACwAAAAAIAAgAAAE6BDISWlSqerNpyJKhWRdlSAVoVLCWk6JKlAqAavhO9UkUHsqlE6CwO1cRdCQ8iEIfzFVTzLdRAmZX3I2SfYIDMaAFdTESJeaEDAIMxYFqrOUaNW4E4ObYcCXaiBVEgULe0NJaxxtYksjh2NLkZISgDgJhHthkpU4mW6blRiYmZOlh4JWkDqILwUGBnE6TYEbCgevr0N1gH4At7gHiRpFaLNrrq8HNgAJA70AWxQIH1+vsYMDAzZQPC9VCNkDWUhGkuE5PxJNwiUK4UfLzOlD4WvzAHaoG9nxPi5d+jYUqfAhhykOFwJWiAAAIfkECQoAAAAsAAAAACAAIAAABPAQyElpUqnqzaciSoVkXVUMFaFSwlpOCcMYlErAavhOMnNLNo8KsZsMZItJEIDIFSkLGQoQTNhIsFehRww2CQLKF0tYGKYSg+ygsZIuNqJksKgbfgIGepNo2cIUB3V1B3IvNiBYNQaDSTtfhhx0CwVPI0UJe0+bm4g5VgcGoqOcnjmjqDSdnhgEoamcsZuXO1aWQy8KAwOAuTYYGwi7w5h+Kr0SJ8MFihpNbx+4Erq7BYBuzsdiH1jCAzoSfl0rVirNbRXlBBlLX+BP0XJLAPGzTkAuAOqb0WT5AH7OcdCm5B8TgRwSRKIHQtaLCwg1RAAAOwAAAAAAAAAAAA==); } + +.jvectormap-legend-title { + font-weight: 700; + font-size: 14px; + text-align: center; } + +.jvectormap-legend-cnt { + position: absolute; } + +.jvectormap-legend-cnt-h { + bottom: 0; + right: 0; } + .jvectormap-legend-cnt-h .jvectormap-legend { + float: left; + margin: 0 10px 10px 0; + padding: 3px 3px 1px; } + .jvectormap-legend-cnt-h .jvectormap-legend .jvectormap-legend-tick { + float: left; } + .jvectormap-legend-cnt-h .jvectormap-legend-tick { + width: 40px; } + .jvectormap-legend-cnt-h .jvectormap-legend-tick-sample { + height: 15px; } + .jvectormap-legend-cnt-h .jvectormap-legend-tick-text { + text-align: center; } + +.jvectormap-legend-cnt-v { + top: 0; + right: 0; } + .jvectormap-legend-cnt-v .jvectormap-legend { + margin: 10px 10px 0 0; + padding: 3px; } + .jvectormap-legend-cnt-v .jvectormap-legend-tick-sample { + height: 20px; + width: 20px; + display: inline-block; + vertical-align: middle; } + .jvectormap-legend-cnt-v .jvectormap-legend-tick-text { + display: inline-block; + vertical-align: middle; + line-height: 20px; + padding-left: 3px; } + +.jvectormap-legend { + background: #000; + color: #fff; + border-radius: 3px; } + +.jvectormap-legend-tick-text { + font-size: 12px; } + +.jvectormap-legend .jvectormap-legend-tick-sample { + height: 26px; } diff --git a/public/admin/assets/css/whether-icon.css b/public/admin/assets/css/whether-icon.css new file mode 100644 index 0000000..80e13da --- /dev/null +++ b/public/admin/assets/css/whether-icon.css @@ -0,0 +1,2302 @@ +/* VARIABLES */ +/* Applies a stroke to the icons. Can use percentage for responsive */ +.climacon_component-stroke { + fill: #dcdada; + stroke-width: 1px; + stroke: #717171; } + +.climacon_component-fill { + fill: #71717140; + stroke-width: 0; + stroke: #ddd; } + +/* SVG GLOBAL */ +svg.climacon { + display: inline-block; + width: 80px; + height: 80px; + shape-rendering: geometricPrecision; } + +g, path, circle, rect { + -webkit-animation-iteration-count: infinite; + animation-iteration-count: infinite; + -webkit-animation-timing-function: linear; + animation-timing-function: linear; + -webkit-transform-origin: 50% 50%; + transform-origin: 50% 50%; + -webkit-animation-duration: 18s; + animation-duration: 18s; + -webkit-animation-direction: normal; + animation-direction: normal; } + +/* SUN */ +.climacon_componentWrap-sun { + -webkit-animation-name: rotate; + animation-name: rotate; } + +.climacon_componentWrap_sunSpoke .climacon_component-stroke_sunSpoke { + -webkit-animation-name: scale; + animation-name: scale; + -webkit-animation-direction: alternate; + animation-direction: alternate; + -webkit-animation-duration: 4.5s; + animation-duration: 4.5s; } + +.climacon_componentWrap_sunSpoke .climacon_component-stroke_sunSpoke:nth-child(even) { + -webkit-animation-delay: 4.5s; + animation-delay: 4.5s; } + +/* MOON */ +.climacon_componentWrap-moon { + -webkit-animation-name: partialRotate; + animation-name: partialRotate; + -webkit-animation-duration: 18s; + animation-duration: 18s; + -webkit-animation-direction: alternate; + animation-direction: alternate; } + +/* WIND */ +.climacon_componentWrap-wind { + -webkit-animation-name: translateWind; + animation-name: translateWind; + -webkit-animation-duration: 6s; + animation-duration: 6s; + -webkit-animation-direction: alternate; + animation-direction: alternate; + -webkit-animation-timing-function: ease-in-out; + animation-timing-function: ease-in-out; } + +/* SNOWFLAKE */ +.climacon_componentWrap-snowflake { + -webkit-animation-name: rotate; + animation-name: rotate; + -webkit-animation-duration: 54s; + animation-duration: 54s; + -webkit-animation-direction: normal; + animation-direction: normal; } + +/* CLOUD SUN */ +.climacon_componentWrap-sun_cloud { + -webkit-animation-name: behindCloudMove, rotate; + animation-name: behindCloudMove, rotate; + -webkit-animation-iteration-count: 1, infinite; + animation-iteration-count: 1, infinite; + -webkit-animation-timing-function: ease-out, linear; + animation-timing-function: ease-out, linear; + -webkit-animation-delay: 0, 4.5s; + animation-delay: 0, 4.5s; + -webkit-animation-duration: 4.5s, 18s; + animation-duration: 4.5s, 18s; } + +.climacon_componentWrap-sun_cloud .climacon_componentWrap_sunSpoke .climacon_component-stroke_sunSpoke { + fill-opacity: 0; + -webkit-animation-name: fillOpacity, scale; + animation-name: fillOpacity, scale; + -webkit-animation-iteration-count: 1, infinite; + animation-iteration-count: 1, infinite; + -webkit-animation-delay: 4.5s, 0; + animation-delay: 4.5s, 0; + -webkit-animation-fill-mode: both; + animation-fill-mode: both; } + +.climacon_componentWrap-sun_cloud .climacon_componentWrap_sunSpoke .climacon_component-stroke_sunSpoke:nth-child(even) { + -webkit-animation-delay: 4.5s; + animation-delay: 4.5s; } + +/* CLOUD MOON */ +.climacon_componentWrap-moon_cloud { + -webkit-animation-name: behindCloudMove, partialRotate; + animation-name: behindCloudMove, partialRotate; + -webkit-animation-iteration-count: 1, infinite; + animation-iteration-count: 1, infinite; + -webkit-animation-timing-function: ease-out, linear; + animation-timing-function: ease-out, linear; + -webkit-animation-delay: 0, 4.5s; + animation-delay: 0, 4.5s; + -webkit-animation-duration: 4.5s, 18s; + animation-duration: 4.5s, 18s; } + +/* DRIZZLE */ +.climacon_component-stroke_drizzle { + fill-opacity: 0; + -webkit-animation-name: drizzleFall, fillOpacity2; + animation-name: drizzleFall, fillOpacity2; + -webkit-animation-timing-function: ease-in; + animation-timing-function: ease-in; + -webkit-animation-duration: 1.5s; + animation-duration: 1.5s; } + +.climacon_component-stroke_drizzle:nth-child(1) { + -webkit-animation-delay: 0s; + animation-delay: 0s; } + +.climacon_component-stroke_drizzle:nth-child(2) { + -webkit-animation-delay: 0.9s; + animation-delay: 0.9s; } + +.climacon_component-stroke_drizzle:nth-child(3) { + -webkit-animation-delay: 1.8s; + animation-delay: 1.8s; } + +/* RAIN */ +.climacon_component-stroke_rain { + fill-opacity: 0; + -webkit-animation-name: rainFall, fillOpacity2; + animation-name: rainFall, fillOpacity2; + -webkit-animation-timing-function: ease-in; + animation-timing-function: ease-in; + -webkit-animation-duration: 3s; + animation-duration: 3s; } + +.climacon_component-stroke_rain:nth-child(n+4) { + -webkit-animation-delay: 1.5s; + animation-delay: 1.5s; } + +.climacon_component-stroke_rain_alt:nth-child(2) { + -webkit-animation-delay: 1.5s; + animation-delay: 1.5s; } + +/* HAIL */ +/* HAIL ALT */ +.climacon_component-stroke_hailAlt { + fill-opacity: 1; + -webkit-animation-timing-function: ease-in; + animation-timing-function: ease-in; + -webkit-animation-duration: 1s; + animation-duration: 1s; } + +.climacon_component-stroke_hailAlt-left { + -webkit-animation-name: hailLeft, fillOpacity2; + animation-name: hailLeft, fillOpacity2; } + +.climacon_component-stroke_hailAlt-middle { + -webkit-animation-name: hailMiddle, fillOpacity2; + animation-name: hailMiddle, fillOpacity2; } + +.climacon_component-stroke_hailAlt-middle:nth-child(2) { + -webkit-animation-name: hailMiddle2, fillOpacity2; + animation-name: hailMiddle2, fillOpacity2; } + +.climacon_component-stroke_hailAlt-right { + -webkit-animation-name: hailRight, fillOpacity2; + animation-name: hailRight, fillOpacity2; } + +.climacon_component-stroke_hailAlt:nth-child(1) { + -webkit-animation-delay: 0s; + animation-delay: 0s; } + +.climacon_component-stroke_hailAlt:nth-child(2) { + -webkit-animation-delay: 0.16667s; + animation-delay: 0.16667s; } + +.climacon_component-stroke_hailAlt:nth-child(3) { + -webkit-animation-delay: 0.33333s; + animation-delay: 0.33333s; } + +.climacon_component-stroke_hailAlt:nth-child(4) { + -webkit-animation-delay: 0.5s; + animation-delay: 0.5s; } + +.climacon_component-stroke_hailAlt:nth-child(5) { + -webkit-animation-delay: 0.66667s; + animation-delay: 0.66667s; } + +.climacon_component-stroke_hailAlt:nth-child(6) { + -webkit-animation-delay: 0.83333s; + animation-delay: 0.83333s; } + +/* SNOW */ +.climacon_component-stroke_snow { + fill-opacity: 0; + -webkit-animation-name: snowFall, fillOpacity2; + animation-name: snowFall, fillOpacity2; + -webkit-animation-timing-function: ease-in-out; + animation-timing-function: ease-in-out; + -webkit-animation-duration: 9s; + animation-duration: 9s; } + +.climacon_component-stroke_snow:nth-child(3) { + -webkit-animation-name: snowFall2, fillOpacity2; + animation-name: snowFall2, fillOpacity2; } + +.climacon_component-stroke_snow:nth-child(1) { + -webkit-animation-delay: 0s; + animation-delay: 0s; } + +.climacon_component-stroke_snow:nth-child(2) { + -webkit-animation-delay: 3s; + animation-delay: 3s; } + +.climacon_component-stroke_snow:nth-child(3) { + -webkit-animation-delay: 6s; + animation-delay: 6s; } + +/* SNOW ALT */ +.climacon_wrapperComponent-snowAlt { + fill-opacity: 0; + -webkit-animation-name: snowFall, fillOpacity2; + animation-name: snowFall, fillOpacity2; + -webkit-animation-timing-function: ease-in-out; + animation-timing-function: ease-in-out; + -webkit-animation-duration: 9s; + animation-duration: 9s; } + +/* FOG */ +.climacon_component-stroke_fogLine { + fill-opacity: 0.5; + -webkit-animation-name: translateFog, fillOpacityFog; + animation-name: translateFog, fillOpacityFog; + -webkit-animation-iteration-count: infinite; + animation-iteration-count: infinite; + -webkit-animation-direction: normal; + animation-direction: normal; + -webkit-animation-timing-function: ease-in; + animation-timing-function: ease-in; + -webkit-animation-duration: 18s; + animation-duration: 18s; } + +.climacon_component-stroke_fogLine:nth-child(even) { + -webkit-animation-delay: 9s; + animation-delay: 9s; } + +/* LIGHTNING */ +.climacon_component-stroke_lightning { + fill-opacity: 0; + -webkit-animation-name: fillOpacityLightning; + animation-name: fillOpacityLightning; + -webkit-animation-iteration-count: infinite; + animation-iteration-count: infinite; + -webkit-animation-direction: normal; + animation-direction: normal; + -webkit-animation-timing-function: ease-out; + animation-timing-function: ease-out; + -webkit-animation-duration: 18s; + animation-duration: 18s; } + +/* TORNADO */ +.climacon_component-stroke_tornadoLine { + -webkit-animation-name: translateTornado1; + animation-name: translateTornado1; + -webkit-animation-iteration-count: infinite; + animation-iteration-count: infinite; + -webkit-animation-direction: alternate; + animation-direction: alternate; + -webkit-animation-timing-function: ease-in-out; + animation-timing-function: ease-in-out; + -webkit-animation-duration: 18s; + animation-duration: 18s; } + +.climacon_component-stroke_tornadoLine:nth-child(1) { + -webkit-animation-name: translateTornado1; + animation-name: translateTornado1; } + +.climacon_component-stroke_tornadoLine:nth-child(2) { + -webkit-animation-name: translateTornado2; + animation-name: translateTornado2; } + +.climacon_component-stroke_tornadoLine:nth-child(3) { + -webkit-animation-name: translateTornado3; + animation-name: translateTornado3; } + +.climacon_component-stroke_tornadoLine:nth-child(4) { + -webkit-animation-name: translateTornado4; + animation-name: translateTornado4; } + +.climacon_component-stroke_tornadoLine:nth-child(5) { + -webkit-animation-name: translateTornado5; + animation-name: translateTornado5; } + +.climacon_component-stroke_tornadoLine:nth-child(6) { + -webkit-animation-name: translateTornado6; + animation-name: translateTornado6; } + +.climacon_componentWrap-sunsetAlt { + -webkit-animation-name: translateSunset; + animation-name: translateSunset; + -webkit-animation-duration: 4.5s; + animation-duration: 4.5s; + -webkit-animation-iteration-count: 1; + animation-iteration-count: 1; + -webkit-animation-timing-function: ease-out; + animation-timing-function: ease-out; } + +.climacon_componentWrap-sunsetAlt { + -webkit-animation-name: translateSunset; + animation-name: translateSunset; + -webkit-animation-iteration-count: 1; + animation-iteration-count: 1; } + +.climacon_iconWrap-sun .climacon_component-stroke_sunSpoke, .climacon_iconWrap-sunFill .climacon_component-stroke_sunSpoke { + fill-opacity: 1; + -webkit-animation-name: scale; + animation-name: scale; + -webkit-animation-duration: 3s; + animation-duration: 3s; + -webkit-animation-iteration-count: infinite; + animation-iteration-count: infinite; + -webkit-animation-delay: 0s; + animation-delay: 0s; + -webkit-animation-fill-mode: both; + animation-fill-mode: both; + -webkit-animation-direction: alternate; + animation-direction: alternate; } + +.climacon_iconWrap-sun .climacon_component-stroke_sunSpoke:nth-child(even), .climacon_iconWrap-sunFill .climacon_component-stroke_sunSpoke:nth-child(even) { + -webkit-animation-delay: 4.5s; + animation-delay: 4.5s; } + +.climacon-iconWrap_sunFill .climacon_component-stroke_sunSpoke { + fill-opacity: 1; + -webkit-animation-name: scale; + animation-name: scale; + -webkit-animation-iteration-count: infinite; + animation-iteration-count: infinite; + -webkit-animation-delay: 0s; + animation-delay: 0s; + -webkit-animation-fill-mode: both; + animation-fill-mode: both; + -webkit-animation-direction: alternate; + animation-direction: alternate; } + +.climacon-iconWrap_sunFill .climacon_component-stroke_sunSpoke:nth-child(even) { + -webkit-animation-delay: 4.5s; + animation-delay: 4.5s; } + +.climacon_component-stroke_arrow-up { + fill-opacity: 0; + -webkit-animation-name: fillOpacity2, translateArrowUp; + animation-name: fillOpacity2, translateArrowUp; + -webkit-animation-duration: 4.5s; + animation-duration: 4.5s; } + +.climacon_component-stroke_arrow-down { + fill-opacity: 0; + -webkit-animation-name: fillOpacity2, translateArrowDown; + animation-name: fillOpacity2, translateArrowDown; + -webkit-animation-duration: 4.5s; + animation-duration: 4.5s; } + +.climacon_componentWrap-sunrise .climacon_component-stroke_sunSpoke, .climacon_componentWrap-sunset .climacon_component-stroke_sunSpoke { + -webkit-animation-name: scale; + animation-name: scale; + -webkit-animation-direction: alternate; + animation-direction: alternate; + -webkit-animation-iteration-count: infinite; + animation-iteration-count: infinite; + -webkit-animation-duration: 4.5s; + animation-duration: 4.5s; + -webkit-animation-delay: 0s; + animation-delay: 0s; + -webkit-animation-fill-mode: both; + animation-fill-mode: both; } + +.climacon_componentWrap-sunrise .climacon_component-stroke_sunSpoke:nth-child(even), .climacon_componentWrap-sunset .climacon_component-stroke_sunSpoke:nth-child(even) { + -webkit-animation-delay: 4.5s; + animation-delay: 4.5s; } + +.climacon_componentWrap-sunriseAlt { + -webkit-animation-name: translateSunrise, fillOpacity; + animation-name: translateSunrise, fillOpacity; + -webkit-animation-duration: 18s, 9s; + animation-duration: 18s, 9s; + -webkit-animation-direction: normal; + animation-direction: normal; + -webkit-animation-iteration-count: 1; + animation-iteration-count: 1; + -webkit-animation-fill-mode: forwards; + animation-fill-mode: forwards; } + +.climacon_componentWrap-sunriseAlt .climacon_component-stroke_sunSpoke { + fill-opacity: 0; + -webkit-animation-name: fillOpacity, scale; + animation-name: fillOpacity, scale; + -webkit-animation-direction: normal, alternate; + animation-direction: normal, alternate; + -webkit-animation-iteration-count: 1, infinite; + animation-iteration-count: 1, infinite; + -webkit-animation-duration: 4.5s; + animation-duration: 4.5s; + -webkit-animation-delay: 4.5s, 0; + animation-delay: 4.5s, 0; + -webkit-animation-fill-mode: both; + animation-fill-mode: both; } + +.climacon_componentWrap-sunriseAlt .climacon_component-stroke_sunSpoke:nth-child(even) { + -webkit-animation-delay: 4.5s, 4.5s; + animation-delay: 4.5s, 4.5s; } + +.climacon_componentWrap-sunsetAlt { + -webkit-animation-name: translateSunset; + animation-name: translateSunset; + -webkit-animation-delay: 0s; + animation-delay: 0s; + -webkit-animation-duration: 18s; + animation-duration: 18s; + -webkit-animation-direction: normal; + animation-direction: normal; + -webkit-animation-iteration-count: 1; + animation-iteration-count: 1; + -webkit-animation-fill-mode: forwards; + animation-fill-mode: forwards; } + +/* ANIMATIONS */ +@-webkit-keyframes rotate { + 0% { + -webkit-transform: rotate(0deg); + transform: rotate(0deg); } + 100% { + -webkit-transform: rotate(360deg); + transform: rotate(360deg); } } +@keyframes rotate { + 0% { + -webkit-transform: rotate(0deg); + transform: rotate(0deg); } + 100% { + -webkit-transform: rotate(360deg); + transform: rotate(360deg); } } + +@-webkit-keyframes partialRotate { + 0% { + -webkit-transform: rotate(0deg); + transform: rotate(0deg); } + 25% { + -webkit-transform: rotate(-15deg); + transform: rotate(-15deg); } + 50% { + -webkit-transform: rotate(0deg); + transform: rotate(0deg); } + 75% { + -webkit-transform: rotate(15deg); + transform: rotate(15deg); } + 100% { + -webkit-transform: rotate(0deg); + transform: rotate(0deg); } } + +@keyframes partialRotate { + 0% { + -webkit-transform: rotate(0deg); + transform: rotate(0deg); } + 25% { + -webkit-transform: rotate(-15deg); + transform: rotate(-15deg); } + 50% { + -webkit-transform: rotate(0deg); + transform: rotate(0deg); } + 75% { + -webkit-transform: rotate(15deg); + transform: rotate(15deg); } + 100% { + -webkit-transform: rotate(0deg); + transform: rotate(0deg); } } + +@-webkit-keyframes scale { + 0% { + -webkit-transform: scale(1, 1); + transform: scale(1, 1); } + 100% { + -webkit-transform: scale(0.5, 0.5); + transform: scale(0.5, 0.5); } } + +@keyframes scale { + 0% { + -webkit-transform: scale(1, 1); + transform: scale(1, 1); } + 100% { + -webkit-transform: scale(0.5, 0.5); + transform: scale(0.5, 0.5); } } + +@-webkit-keyframes behindCloudMove { + 0% { + -webkit-transform: translateX(-1.75px) translateY(1.75px); + transform: translateX(-1.75px) translateY(1.75px); } + 100% { + -webkit-transform: translateX(0) translateY(0); + transform: translateX(0) translateY(0); } } + +@keyframes behindCloudMove { + 0% { + -webkit-transform: translateX(-1.75px) translateY(1.75px); + transform: translateX(-1.75px) translateY(1.75px); } + 100% { + -webkit-transform: translateX(0) translateY(0); + transform: translateX(0) translateY(0); } } + +@-webkit-keyframes drizzleFall { + 0% { + -webkit-transform: translateY(0); + transform: translateY(0); } + 100% { + -webkit-transform: translateY(21px); + transform: translateY(21px); } } + +@keyframes drizzleFall { + 0% { + -webkit-transform: translateY(0); + transform: translateY(0); } + 100% { + -webkit-transform: translateY(21px); + transform: translateY(21px); } } + +@-webkit-keyframes rainFall { + 0% { + -webkit-transform: translateY(0); + transform: translateY(0); } + 100% { + -webkit-transform: translateY(14px); + transform: translateY(14px); } } + +@keyframes rainFall { + 0% { + -webkit-transform: translateY(0); + transform: translateY(0); } + 100% { + -webkit-transform: translateY(14px); + transform: translateY(14px); } } + +@-webkit-keyframes rainFall2 { + 0% { + -webkit-transform: translateY(0); + transform: translateY(0); } + 50% { + -webkit-transform: translateY(14px); + transform: translateY(14px); } + 100% { + -webkit-transform: translateX(14px) translateY(14px); + transform: translateX(14px) translateY(14px); } } + +@keyframes rainFall2 { + 0% { + -webkit-transform: translateY(0); + transform: translateY(0); } + 50% { + -webkit-transform: translateY(14px); + transform: translateY(14px); } + 100% { + -webkit-transform: translateX(14px) translateY(14px); + transform: translateX(14px) translateY(14px); } } + +@-webkit-keyframes hailLeft { + 0% { } + 50% { + -webkit-transform: translateY(17.5px); + transform: translateY(17.5px); } + 51% { + -webkit-transform: translateY(17.5px) translateX(-0.3px); + transform: translateY(17.5px) translateX(-0.3px); } + 53% { + -webkit-transform: translateY(16.40333px) translateX(-0.9px); + transform: translateY(16.40333px) translateX(-0.9px); } + 55% { + -webkit-transform: translateY(15.32396px) translateX(-1.5px); + transform: translateY(15.32396px) translateX(-1.5px); } + 57% { + -webkit-transform: translateY(14.27891px) translateX(-2.1px); + transform: translateY(14.27891px) translateX(-2.1px); } + 59% { + -webkit-transform: translateY(13.28466px) translateX(-2.7px); + transform: translateY(13.28466px) translateX(-2.7px); } + 61% { + -webkit-transform: translateY(12.35688px) translateX(-3.3px); + transform: translateY(12.35688px) translateX(-3.3px); } + 63% { + -webkit-transform: translateY(11.51021px) translateX(-3.9px); + transform: translateY(11.51021px) translateX(-3.9px); } + 65% { + -webkit-transform: translateY(10.75801px) translateX(-4.5px); + transform: translateY(10.75801px) translateX(-4.5px); } + 67% { + -webkit-transform: translateY(10.11213px) translateX(-5.1px); + transform: translateY(10.11213px) translateX(-5.1px); } + 69% { + -webkit-transform: translateY(9.58276px) translateX(-5.7px); + transform: translateY(9.58276px) translateX(-5.7px); } + 71% { + -webkit-transform: translateY(9.17826px) translateX(-6.3px); + transform: translateY(9.17826px) translateX(-6.3px); } + 73% { + -webkit-transform: translateY(8.90499px) translateX(-6.9px); + transform: translateY(8.90499px) translateX(-6.9px); } + 75% { + -webkit-transform: translateY(8.76727px) translateX(-7.5px); + transform: translateY(8.76727px) translateX(-7.5px); } + 77% { + -webkit-transform: translateY(8.76727px) translateX(-8.1px); + transform: translateY(8.76727px) translateX(-8.1px); } + 79% { + -webkit-transform: translateY(8.90499px) translateX(-8.7px); + transform: translateY(8.90499px) translateX(-8.7px); } + 81% { + -webkit-transform: translateY(9.17826px) translateX(-9.3px); + transform: translateY(9.17826px) translateX(-9.3px); } + 83% { + -webkit-transform: translateY(9.58276px) translateX(-9.9px); + transform: translateY(9.58276px) translateX(-9.9px); } + 85% { + -webkit-transform: translateY(10.11213px) translateX(-10.5px); + transform: translateY(10.11213px) translateX(-10.5px); } + 87% { + -webkit-transform: translateY(10.75801px) translateX(-11.1px); + transform: translateY(10.75801px) translateX(-11.1px); } + 89% { + -webkit-transform: translateY(11.51021px) translateX(-11.7px); + transform: translateY(11.51021px) translateX(-11.7px); } + 91% { + -webkit-transform: translateY(12.35688px) translateX(-12.3px); + transform: translateY(12.35688px) translateX(-12.3px); } + 93% { + -webkit-transform: translateY(13.28466px) translateX(-12.9px); + transform: translateY(13.28466px) translateX(-12.9px); } + 95% { + -webkit-transform: translateY(14.27891px) translateX(-13.5px); + transform: translateY(14.27891px) translateX(-13.5px); } + 97% { + -webkit-transform: translateY(15.32396px) translateX(-14.1px); + transform: translateY(15.32396px) translateX(-14.1px); } + 99% { + -webkit-transform: translateY(16.40333px) translateX(-14.7px); + transform: translateY(16.40333px) translateX(-14.7px); } } + +@keyframes hailLeft { + 0% { } + 50% { + -webkit-transform: translateY(17.5px); + transform: translateY(17.5px); } + 51% { + -webkit-transform: translateY(17.5px) translateX(-0.3px); + transform: translateY(17.5px) translateX(-0.3px); } + 53% { + -webkit-transform: translateY(16.40333px) translateX(-0.9px); + transform: translateY(16.40333px) translateX(-0.9px); } + 55% { + -webkit-transform: translateY(15.32396px) translateX(-1.5px); + transform: translateY(15.32396px) translateX(-1.5px); } + 57% { + -webkit-transform: translateY(14.27891px) translateX(-2.1px); + transform: translateY(14.27891px) translateX(-2.1px); } + 59% { + -webkit-transform: translateY(13.28466px) translateX(-2.7px); + transform: translateY(13.28466px) translateX(-2.7px); } + 61% { + -webkit-transform: translateY(12.35688px) translateX(-3.3px); + transform: translateY(12.35688px) translateX(-3.3px); } + 63% { + -webkit-transform: translateY(11.51021px) translateX(-3.9px); + transform: translateY(11.51021px) translateX(-3.9px); } + 65% { + -webkit-transform: translateY(10.75801px) translateX(-4.5px); + transform: translateY(10.75801px) translateX(-4.5px); } + 67% { + -webkit-transform: translateY(10.11213px) translateX(-5.1px); + transform: translateY(10.11213px) translateX(-5.1px); } + 69% { + -webkit-transform: translateY(9.58276px) translateX(-5.7px); + transform: translateY(9.58276px) translateX(-5.7px); } + 71% { + -webkit-transform: translateY(9.17826px) translateX(-6.3px); + transform: translateY(9.17826px) translateX(-6.3px); } + 73% { + -webkit-transform: translateY(8.90499px) translateX(-6.9px); + transform: translateY(8.90499px) translateX(-6.9px); } + 75% { + -webkit-transform: translateY(8.76727px) translateX(-7.5px); + transform: translateY(8.76727px) translateX(-7.5px); } + 77% { + -webkit-transform: translateY(8.76727px) translateX(-8.1px); + transform: translateY(8.76727px) translateX(-8.1px); } + 79% { + -webkit-transform: translateY(8.90499px) translateX(-8.7px); + transform: translateY(8.90499px) translateX(-8.7px); } + 81% { + -webkit-transform: translateY(9.17826px) translateX(-9.3px); + transform: translateY(9.17826px) translateX(-9.3px); } + 83% { + -webkit-transform: translateY(9.58276px) translateX(-9.9px); + transform: translateY(9.58276px) translateX(-9.9px); } + 85% { + -webkit-transform: translateY(10.11213px) translateX(-10.5px); + transform: translateY(10.11213px) translateX(-10.5px); } + 87% { + -webkit-transform: translateY(10.75801px) translateX(-11.1px); + transform: translateY(10.75801px) translateX(-11.1px); } + 89% { + -webkit-transform: translateY(11.51021px) translateX(-11.7px); + transform: translateY(11.51021px) translateX(-11.7px); } + 91% { + -webkit-transform: translateY(12.35688px) translateX(-12.3px); + transform: translateY(12.35688px) translateX(-12.3px); } + 93% { + -webkit-transform: translateY(13.28466px) translateX(-12.9px); + transform: translateY(13.28466px) translateX(-12.9px); } + 95% { + -webkit-transform: translateY(14.27891px) translateX(-13.5px); + transform: translateY(14.27891px) translateX(-13.5px); } + 97% { + -webkit-transform: translateY(15.32396px) translateX(-14.1px); + transform: translateY(15.32396px) translateX(-14.1px); } + 99% { + -webkit-transform: translateY(16.40333px) translateX(-14.7px); + transform: translateY(16.40333px) translateX(-14.7px); } } + +@-webkit-keyframes hailMiddle { + 0% { } + 50% { + -webkit-transform: translateY(17.5px); + transform: translateY(17.5px); } + 51% { + -webkit-transform: translateY(17.5px) translateX(-0.15px); + transform: translateY(17.5px) translateX(-0.15px); } + 53% { + -webkit-transform: translateY(16.40333px) translateX(-0.45px); + transform: translateY(16.40333px) translateX(-0.45px); } + 55% { + -webkit-transform: translateY(15.32396px) translateX(-0.75px); + transform: translateY(15.32396px) translateX(-0.75px); } + 57% { + -webkit-transform: translateY(14.27891px) translateX(-1.05px); + transform: translateY(14.27891px) translateX(-1.05px); } + 59% { + -webkit-transform: translateY(13.28466px) translateX(-1.35px); + transform: translateY(13.28466px) translateX(-1.35px); } + 61% { + -webkit-transform: translateY(12.35688px) translateX(-1.65px); + transform: translateY(12.35688px) translateX(-1.65px); } + 63% { + -webkit-transform: translateY(11.51021px) translateX(-1.95px); + transform: translateY(11.51021px) translateX(-1.95px); } + 65% { + -webkit-transform: translateY(10.75801px) translateX(-2.25px); + transform: translateY(10.75801px) translateX(-2.25px); } + 67% { + -webkit-transform: translateY(10.11213px) translateX(-2.55px); + transform: translateY(10.11213px) translateX(-2.55px); } + 69% { + -webkit-transform: translateY(9.58276px) translateX(-2.85px); + transform: translateY(9.58276px) translateX(-2.85px); } + 71% { + -webkit-transform: translateY(9.17826px) translateX(-3.15px); + transform: translateY(9.17826px) translateX(-3.15px); } + 73% { + -webkit-transform: translateY(8.90499px) translateX(-3.45px); + transform: translateY(8.90499px) translateX(-3.45px); } + 75% { + -webkit-transform: translateY(8.76727px) translateX(-3.75px); + transform: translateY(8.76727px) translateX(-3.75px); } + 77% { + -webkit-transform: translateY(8.76727px) translateX(-4.05px); + transform: translateY(8.76727px) translateX(-4.05px); } + 79% { + -webkit-transform: translateY(8.90499px) translateX(-4.35px); + transform: translateY(8.90499px) translateX(-4.35px); } + 81% { + -webkit-transform: translateY(9.17826px) translateX(-4.65px); + transform: translateY(9.17826px) translateX(-4.65px); } + 83% { + -webkit-transform: translateY(9.58276px) translateX(-4.95px); + transform: translateY(9.58276px) translateX(-4.95px); } + 85% { + -webkit-transform: translateY(10.11213px) translateX(-5.25px); + transform: translateY(10.11213px) translateX(-5.25px); } + 87% { + -webkit-transform: translateY(10.75801px) translateX(-5.55px); + transform: translateY(10.75801px) translateX(-5.55px); } + 89% { + -webkit-transform: translateY(11.51021px) translateX(-5.85px); + transform: translateY(11.51021px) translateX(-5.85px); } + 91% { + -webkit-transform: translateY(12.35688px) translateX(-6.15px); + transform: translateY(12.35688px) translateX(-6.15px); } + 93% { + -webkit-transform: translateY(13.28466px) translateX(-6.45px); + transform: translateY(13.28466px) translateX(-6.45px); } + 95% { + -webkit-transform: translateY(14.27891px) translateX(-6.75px); + transform: translateY(14.27891px) translateX(-6.75px); } + 97% { + -webkit-transform: translateY(15.32396px) translateX(-7.05px); + transform: translateY(15.32396px) translateX(-7.05px); } + 99% { + -webkit-transform: translateY(16.40333px) translateX(-7.35px); + transform: translateY(16.40333px) translateX(-7.35px); } } + +@keyframes hailMiddle { + 0% { } + 50% { + -webkit-transform: translateY(17.5px); + transform: translateY(17.5px); } + 51% { + -webkit-transform: translateY(17.5px) translateX(-0.15px); + transform: translateY(17.5px) translateX(-0.15px); } + 53% { + -webkit-transform: translateY(16.40333px) translateX(-0.45px); + transform: translateY(16.40333px) translateX(-0.45px); } + 55% { + -webkit-transform: translateY(15.32396px) translateX(-0.75px); + transform: translateY(15.32396px) translateX(-0.75px); } + 57% { + -webkit-transform: translateY(14.27891px) translateX(-1.05px); + transform: translateY(14.27891px) translateX(-1.05px); } + 59% { + -webkit-transform: translateY(13.28466px) translateX(-1.35px); + transform: translateY(13.28466px) translateX(-1.35px); } + 61% { + -webkit-transform: translateY(12.35688px) translateX(-1.65px); + transform: translateY(12.35688px) translateX(-1.65px); } + 63% { + -webkit-transform: translateY(11.51021px) translateX(-1.95px); + transform: translateY(11.51021px) translateX(-1.95px); } + 65% { + -webkit-transform: translateY(10.75801px) translateX(-2.25px); + transform: translateY(10.75801px) translateX(-2.25px); } + 67% { + -webkit-transform: translateY(10.11213px) translateX(-2.55px); + transform: translateY(10.11213px) translateX(-2.55px); } + 69% { + -webkit-transform: translateY(9.58276px) translateX(-2.85px); + transform: translateY(9.58276px) translateX(-2.85px); } + 71% { + -webkit-transform: translateY(9.17826px) translateX(-3.15px); + transform: translateY(9.17826px) translateX(-3.15px); } + 73% { + -webkit-transform: translateY(8.90499px) translateX(-3.45px); + transform: translateY(8.90499px) translateX(-3.45px); } + 75% { + -webkit-transform: translateY(8.76727px) translateX(-3.75px); + transform: translateY(8.76727px) translateX(-3.75px); } + 77% { + -webkit-transform: translateY(8.76727px) translateX(-4.05px); + transform: translateY(8.76727px) translateX(-4.05px); } + 79% { + -webkit-transform: translateY(8.90499px) translateX(-4.35px); + transform: translateY(8.90499px) translateX(-4.35px); } + 81% { + -webkit-transform: translateY(9.17826px) translateX(-4.65px); + transform: translateY(9.17826px) translateX(-4.65px); } + 83% { + -webkit-transform: translateY(9.58276px) translateX(-4.95px); + transform: translateY(9.58276px) translateX(-4.95px); } + 85% { + -webkit-transform: translateY(10.11213px) translateX(-5.25px); + transform: translateY(10.11213px) translateX(-5.25px); } + 87% { + -webkit-transform: translateY(10.75801px) translateX(-5.55px); + transform: translateY(10.75801px) translateX(-5.55px); } + 89% { + -webkit-transform: translateY(11.51021px) translateX(-5.85px); + transform: translateY(11.51021px) translateX(-5.85px); } + 91% { + -webkit-transform: translateY(12.35688px) translateX(-6.15px); + transform: translateY(12.35688px) translateX(-6.15px); } + 93% { + -webkit-transform: translateY(13.28466px) translateX(-6.45px); + transform: translateY(13.28466px) translateX(-6.45px); } + 95% { + -webkit-transform: translateY(14.27891px) translateX(-6.75px); + transform: translateY(14.27891px) translateX(-6.75px); } + 97% { + -webkit-transform: translateY(15.32396px) translateX(-7.05px); + transform: translateY(15.32396px) translateX(-7.05px); } + 99% { + -webkit-transform: translateY(16.40333px) translateX(-7.35px); + transform: translateY(16.40333px) translateX(-7.35px); } } + +@-webkit-keyframes hailMiddle2 { + 0% { } + 50% { + -webkit-transform: translateY(17.5px); + transform: translateY(17.5px); } + 51% { + -webkit-transform: translateY(17.5px) translateX(0.15px); + transform: translateY(17.5px) translateX(0.15px); } + 53% { + -webkit-transform: translateY(16.40333px) translateX(0.45px); + transform: translateY(16.40333px) translateX(0.45px); } + 55% { + -webkit-transform: translateY(15.32396px) translateX(0.75px); + transform: translateY(15.32396px) translateX(0.75px); } + 57% { + -webkit-transform: translateY(14.27891px) translateX(1.05px); + transform: translateY(14.27891px) translateX(1.05px); } + 59% { + -webkit-transform: translateY(13.28466px) translateX(1.35px); + transform: translateY(13.28466px) translateX(1.35px); } + 61% { + -webkit-transform: translateY(12.35688px) translateX(1.65px); + transform: translateY(12.35688px) translateX(1.65px); } + 63% { + -webkit-transform: translateY(11.51021px) translateX(1.95px); + transform: translateY(11.51021px) translateX(1.95px); } + 65% { + -webkit-transform: translateY(10.75801px) translateX(2.25px); + transform: translateY(10.75801px) translateX(2.25px); } + 67% { + -webkit-transform: translateY(10.11213px) translateX(2.55px); + transform: translateY(10.11213px) translateX(2.55px); } + 69% { + -webkit-transform: translateY(9.58276px) translateX(2.85px); + transform: translateY(9.58276px) translateX(2.85px); } + 71% { + -webkit-transform: translateY(9.17826px) translateX(3.15px); + transform: translateY(9.17826px) translateX(3.15px); } + 73% { + -webkit-transform: translateY(8.90499px) translateX(3.45px); + transform: translateY(8.90499px) translateX(3.45px); } + 75% { + -webkit-transform: translateY(8.76727px) translateX(3.75px); + transform: translateY(8.76727px) translateX(3.75px); } + 77% { + -webkit-transform: translateY(8.76727px) translateX(4.05px); + transform: translateY(8.76727px) translateX(4.05px); } + 79% { + -webkit-transform: translateY(8.90499px) translateX(4.35px); + transform: translateY(8.90499px) translateX(4.35px); } + 81% { + -webkit-transform: translateY(9.17826px) translateX(4.65px); + transform: translateY(9.17826px) translateX(4.65px); } + 83% { + -webkit-transform: translateY(9.58276px) translateX(4.95px); + transform: translateY(9.58276px) translateX(4.95px); } + 85% { + -webkit-transform: translateY(10.11213px) translateX(5.25px); + transform: translateY(10.11213px) translateX(5.25px); } + 87% { + -webkit-transform: translateY(10.75801px) translateX(5.55px); + transform: translateY(10.75801px) translateX(5.55px); } + 89% { + -webkit-transform: translateY(11.51021px) translateX(5.85px); + transform: translateY(11.51021px) translateX(5.85px); } + 91% { + -webkit-transform: translateY(12.35688px) translateX(6.15px); + transform: translateY(12.35688px) translateX(6.15px); } + 93% { + -webkit-transform: translateY(13.28466px) translateX(6.45px); + transform: translateY(13.28466px) translateX(6.45px); } + 95% { + -webkit-transform: translateY(14.27891px) translateX(6.75px); + transform: translateY(14.27891px) translateX(6.75px); } + 97% { + -webkit-transform: translateY(15.32396px) translateX(7.05px); + transform: translateY(15.32396px) translateX(7.05px); } + 99% { + -webkit-transform: translateY(16.40333px) translateX(7.35px); + transform: translateY(16.40333px) translateX(7.35px); } } + +@keyframes hailMiddle2 { + 0% { } + 50% { + -webkit-transform: translateY(17.5px); + transform: translateY(17.5px); } + 51% { + -webkit-transform: translateY(17.5px) translateX(0.15px); + transform: translateY(17.5px) translateX(0.15px); } + 53% { + -webkit-transform: translateY(16.40333px) translateX(0.45px); + transform: translateY(16.40333px) translateX(0.45px); } + 55% { + -webkit-transform: translateY(15.32396px) translateX(0.75px); + transform: translateY(15.32396px) translateX(0.75px); } + 57% { + -webkit-transform: translateY(14.27891px) translateX(1.05px); + transform: translateY(14.27891px) translateX(1.05px); } + 59% { + -webkit-transform: translateY(13.28466px) translateX(1.35px); + transform: translateY(13.28466px) translateX(1.35px); } + 61% { + -webkit-transform: translateY(12.35688px) translateX(1.65px); + transform: translateY(12.35688px) translateX(1.65px); } + 63% { + -webkit-transform: translateY(11.51021px) translateX(1.95px); + transform: translateY(11.51021px) translateX(1.95px); } + 65% { + -webkit-transform: translateY(10.75801px) translateX(2.25px); + transform: translateY(10.75801px) translateX(2.25px); } + 67% { + -webkit-transform: translateY(10.11213px) translateX(2.55px); + transform: translateY(10.11213px) translateX(2.55px); } + 69% { + -webkit-transform: translateY(9.58276px) translateX(2.85px); + transform: translateY(9.58276px) translateX(2.85px); } + 71% { + -webkit-transform: translateY(9.17826px) translateX(3.15px); + transform: translateY(9.17826px) translateX(3.15px); } + 73% { + -webkit-transform: translateY(8.90499px) translateX(3.45px); + transform: translateY(8.90499px) translateX(3.45px); } + 75% { + -webkit-transform: translateY(8.76727px) translateX(3.75px); + transform: translateY(8.76727px) translateX(3.75px); } + 77% { + -webkit-transform: translateY(8.76727px) translateX(4.05px); + transform: translateY(8.76727px) translateX(4.05px); } + 79% { + -webkit-transform: translateY(8.90499px) translateX(4.35px); + transform: translateY(8.90499px) translateX(4.35px); } + 81% { + -webkit-transform: translateY(9.17826px) translateX(4.65px); + transform: translateY(9.17826px) translateX(4.65px); } + 83% { + -webkit-transform: translateY(9.58276px) translateX(4.95px); + transform: translateY(9.58276px) translateX(4.95px); } + 85% { + -webkit-transform: translateY(10.11213px) translateX(5.25px); + transform: translateY(10.11213px) translateX(5.25px); } + 87% { + -webkit-transform: translateY(10.75801px) translateX(5.55px); + transform: translateY(10.75801px) translateX(5.55px); } + 89% { + -webkit-transform: translateY(11.51021px) translateX(5.85px); + transform: translateY(11.51021px) translateX(5.85px); } + 91% { + -webkit-transform: translateY(12.35688px) translateX(6.15px); + transform: translateY(12.35688px) translateX(6.15px); } + 93% { + -webkit-transform: translateY(13.28466px) translateX(6.45px); + transform: translateY(13.28466px) translateX(6.45px); } + 95% { + -webkit-transform: translateY(14.27891px) translateX(6.75px); + transform: translateY(14.27891px) translateX(6.75px); } + 97% { + -webkit-transform: translateY(15.32396px) translateX(7.05px); + transform: translateY(15.32396px) translateX(7.05px); } + 99% { + -webkit-transform: translateY(16.40333px) translateX(7.35px); + transform: translateY(16.40333px) translateX(7.35px); } } + +@-webkit-keyframes hailRight { + 0% { } + 50% { + -webkit-transform: translateY(17.5px); + transform: translateY(17.5px); } + 51% { + -webkit-transform: translateY(17.5px) translateX(0.3px); + transform: translateY(17.5px) translateX(0.3px); } + 53% { + -webkit-transform: translateY(16.40333px) translateX(0.9px); + transform: translateY(16.40333px) translateX(0.9px); } + 55% { + -webkit-transform: translateY(15.32396px) translateX(1.5px); + transform: translateY(15.32396px) translateX(1.5px); } + 57% { + -webkit-transform: translateY(14.27891px) translateX(2.1px); + transform: translateY(14.27891px) translateX(2.1px); } + 59% { + -webkit-transform: translateY(13.28466px) translateX(2.7px); + transform: translateY(13.28466px) translateX(2.7px); } + 61% { + -webkit-transform: translateY(12.35688px) translateX(3.3px); + transform: translateY(12.35688px) translateX(3.3px); } + 63% { + -webkit-transform: translateY(11.51021px) translateX(3.9px); + transform: translateY(11.51021px) translateX(3.9px); } + 65% { + -webkit-transform: translateY(10.75801px) translateX(4.5px); + transform: translateY(10.75801px) translateX(4.5px); } + 67% { + -webkit-transform: translateY(10.11213px) translateX(5.1px); + transform: translateY(10.11213px) translateX(5.1px); } + 69% { + -webkit-transform: translateY(9.58276px) translateX(5.7px); + transform: translateY(9.58276px) translateX(5.7px); } + 71% { + -webkit-transform: translateY(9.17826px) translateX(6.3px); + transform: translateY(9.17826px) translateX(6.3px); } + 73% { + -webkit-transform: translateY(8.90499px) translateX(6.9px); + transform: translateY(8.90499px) translateX(6.9px); } + 75% { + -webkit-transform: translateY(8.76727px) translateX(7.5px); + transform: translateY(8.76727px) translateX(7.5px); } + 77% { + -webkit-transform: translateY(8.76727px) translateX(8.1px); + transform: translateY(8.76727px) translateX(8.1px); } + 79% { + -webkit-transform: translateY(8.90499px) translateX(8.7px); + transform: translateY(8.90499px) translateX(8.7px); } + 81% { + -webkit-transform: translateY(9.17826px) translateX(9.3px); + transform: translateY(9.17826px) translateX(9.3px); } + 83% { + -webkit-transform: translateY(9.58276px) translateX(9.9px); + transform: translateY(9.58276px) translateX(9.9px); } + 85% { + -webkit-transform: translateY(10.11213px) translateX(10.5px); + transform: translateY(10.11213px) translateX(10.5px); } + 87% { + -webkit-transform: translateY(10.75801px) translateX(11.1px); + transform: translateY(10.75801px) translateX(11.1px); } + 89% { + -webkit-transform: translateY(11.51021px) translateX(11.7px); + transform: translateY(11.51021px) translateX(11.7px); } + 91% { + -webkit-transform: translateY(12.35688px) translateX(12.3px); + transform: translateY(12.35688px) translateX(12.3px); } + 93% { + -webkit-transform: translateY(13.28466px) translateX(12.9px); + transform: translateY(13.28466px) translateX(12.9px); } + 95% { + -webkit-transform: translateY(14.27891px) translateX(13.5px); + transform: translateY(14.27891px) translateX(13.5px); } + 97% { + -webkit-transform: translateY(15.32396px) translateX(14.1px); + transform: translateY(15.32396px) translateX(14.1px); } + 99% { + -webkit-transform: translateY(16.40333px) translateX(14.7px); + transform: translateY(16.40333px) translateX(14.7px); } } + +@keyframes hailRight { + 0% { } + 50% { + -webkit-transform: translateY(17.5px); + transform: translateY(17.5px); } + 51% { + -webkit-transform: translateY(17.5px) translateX(0.3px); + transform: translateY(17.5px) translateX(0.3px); } + 53% { + -webkit-transform: translateY(16.40333px) translateX(0.9px); + transform: translateY(16.40333px) translateX(0.9px); } + 55% { + -webkit-transform: translateY(15.32396px) translateX(1.5px); + transform: translateY(15.32396px) translateX(1.5px); } + 57% { + -webkit-transform: translateY(14.27891px) translateX(2.1px); + transform: translateY(14.27891px) translateX(2.1px); } + 59% { + -webkit-transform: translateY(13.28466px) translateX(2.7px); + transform: translateY(13.28466px) translateX(2.7px); } + 61% { + -webkit-transform: translateY(12.35688px) translateX(3.3px); + transform: translateY(12.35688px) translateX(3.3px); } + 63% { + -webkit-transform: translateY(11.51021px) translateX(3.9px); + transform: translateY(11.51021px) translateX(3.9px); } + 65% { + -webkit-transform: translateY(10.75801px) translateX(4.5px); + transform: translateY(10.75801px) translateX(4.5px); } + 67% { + -webkit-transform: translateY(10.11213px) translateX(5.1px); + transform: translateY(10.11213px) translateX(5.1px); } + 69% { + -webkit-transform: translateY(9.58276px) translateX(5.7px); + transform: translateY(9.58276px) translateX(5.7px); } + 71% { + -webkit-transform: translateY(9.17826px) translateX(6.3px); + transform: translateY(9.17826px) translateX(6.3px); } + 73% { + -webkit-transform: translateY(8.90499px) translateX(6.9px); + transform: translateY(8.90499px) translateX(6.9px); } + 75% { + -webkit-transform: translateY(8.76727px) translateX(7.5px); + transform: translateY(8.76727px) translateX(7.5px); } + 77% { + -webkit-transform: translateY(8.76727px) translateX(8.1px); + transform: translateY(8.76727px) translateX(8.1px); } + 79% { + -webkit-transform: translateY(8.90499px) translateX(8.7px); + transform: translateY(8.90499px) translateX(8.7px); } + 81% { + -webkit-transform: translateY(9.17826px) translateX(9.3px); + transform: translateY(9.17826px) translateX(9.3px); } + 83% { + -webkit-transform: translateY(9.58276px) translateX(9.9px); + transform: translateY(9.58276px) translateX(9.9px); } + 85% { + -webkit-transform: translateY(10.11213px) translateX(10.5px); + transform: translateY(10.11213px) translateX(10.5px); } + 87% { + -webkit-transform: translateY(10.75801px) translateX(11.1px); + transform: translateY(10.75801px) translateX(11.1px); } + 89% { + -webkit-transform: translateY(11.51021px) translateX(11.7px); + transform: translateY(11.51021px) translateX(11.7px); } + 91% { + -webkit-transform: translateY(12.35688px) translateX(12.3px); + transform: translateY(12.35688px) translateX(12.3px); } + 93% { + -webkit-transform: translateY(13.28466px) translateX(12.9px); + transform: translateY(13.28466px) translateX(12.9px); } + 95% { + -webkit-transform: translateY(14.27891px) translateX(13.5px); + transform: translateY(14.27891px) translateX(13.5px); } + 97% { + -webkit-transform: translateY(15.32396px) translateX(14.1px); + transform: translateY(15.32396px) translateX(14.1px); } + 99% { + -webkit-transform: translateY(16.40333px) translateX(14.7px); + transform: translateY(16.40333px) translateX(14.7px); } } + +@-webkit-keyframes fillOpacity { + 0% { + fill-opacity: 0; + stroke-opacity: 0; } + 100% { + fill-opacity: 1; + stroke-opacity: 1; } } + +@keyframes fillOpacity { + 0% { + fill-opacity: 0; + stroke-opacity: 0; } + 100% { + fill-opacity: 1; + stroke-opacity: 1; } } + +@-webkit-keyframes fillOpacity2 { + 0% { + fill-opacity: 0; + stroke-opacity: 0; } + 50% { + fill-opacity: 1; + stroke-opacity: 1; } + 100% { + fill-opacity: 0; + stroke-opacity: 0; } } + +@keyframes fillOpacity2 { + 0% { + fill-opacity: 0; + stroke-opacity: 0; } + 50% { + fill-opacity: 1; + stroke-opacity: 1; } + 100% { + fill-opacity: 0; + stroke-opacity: 0; } } + +@-webkit-keyframes lightningFlash { + 0% { + fill-opacity: 0; } + 1% { + fill-opacity: 1; } + 2% { + fill-opacity: 0; } + 50% { + fill-opacity: 0; } + 51% { + fill-opacity: 1; } + 52% { + fill-opacity: 0; } + 53% { + fill-opacity: 1; } + 54% { + fill-opacity: 0; } + 100% { + fill-opacity: 0; } } + +@keyframes lightningFlash { + 0% { + fill-opacity: 0; } + 1% { + fill-opacity: 1; } + 2% { + fill-opacity: 0; } + 50% { + fill-opacity: 0; } + 51% { + fill-opacity: 1; } + 52% { + fill-opacity: 0; } + 53% { + fill-opacity: 1; } + 54% { + fill-opacity: 0; } + 100% { + fill-opacity: 0; } } + +@-webkit-keyframes snowFall { + 0% { + -webkit-transform: translateY(0px) translateX(0px); + transform: translateY(0px) translateX(0px); } + 2% { + -webkit-transform: translateY(0.35px) translateX(0.75349px); + transform: translateY(0.35px) translateX(0.75349px); } + 4% { + -webkit-transform: translateY(0.7px) translateX(1.44133px); + transform: translateY(0.7px) translateX(1.44133px); } + 6% { + -webkit-transform: translateY(1.05px) translateX(2.06119px); + transform: translateY(1.05px) translateX(2.06119px); } + 8% { + -webkit-transform: translateY(1.4px) translateX(2.61124px); + transform: translateY(1.4px) translateX(2.61124px); } + 10% { + -webkit-transform: translateY(1.75px) translateX(3.09017px); + transform: translateY(1.75px) translateX(3.09017px); } + 12% { + -webkit-transform: translateY(2.1px) translateX(3.49718px); + transform: translateY(2.1px) translateX(3.49718px); } + 14% { + -webkit-transform: translateY(2.45px) translateX(3.83201px); + transform: translateY(2.45px) translateX(3.83201px); } + 16% { + -webkit-transform: translateY(2.8px) translateX(4.09491px); + transform: translateY(2.8px) translateX(4.09491px); } + 18% { + -webkit-transform: translateY(3.15px) translateX(4.28661px); + transform: translateY(3.15px) translateX(4.28661px); } + 20% { + -webkit-transform: translateY(3.5px) translateX(4.40839px); + transform: translateY(3.5px) translateX(4.40839px); } + 22% { + -webkit-transform: translateY(3.85px) translateX(4.46197px); + transform: translateY(3.85px) translateX(4.46197px); } + 24% { + -webkit-transform: translateY(4.2px) translateX(4.44956px); + transform: translateY(4.2px) translateX(4.44956px); } + 26% { + -webkit-transform: translateY(4.55px) translateX(4.37381px); + transform: translateY(4.55px) translateX(4.37381px); } + 28% { + -webkit-transform: translateY(4.9px) translateX(4.23782px); + transform: translateY(4.9px) translateX(4.23782px); } + 30% { + -webkit-transform: translateY(5.25px) translateX(4.04508px); + transform: translateY(5.25px) translateX(4.04508px); } + 32% { + -webkit-transform: translateY(5.6px) translateX(3.79948px); + transform: translateY(5.6px) translateX(3.79948px); } + 34% { + -webkit-transform: translateY(5.95px) translateX(3.50523px); + transform: translateY(5.95px) translateX(3.50523px); } + 36% { + -webkit-transform: translateY(6.3px) translateX(3.16689px); + transform: translateY(6.3px) translateX(3.16689px); } + 38% { + -webkit-transform: translateY(6.65px) translateX(2.78933px); + transform: translateY(6.65px) translateX(2.78933px); } + 40% { + -webkit-transform: translateY(7px) translateX(2.37764px); + transform: translateY(7px) translateX(2.37764px); } + 42% { + -webkit-transform: translateY(7.35px) translateX(1.93717px); + transform: translateY(7.35px) translateX(1.93717px); } + 44% { + -webkit-transform: translateY(7.7px) translateX(1.47343px); + transform: translateY(7.7px) translateX(1.47343px); } + 46% { + -webkit-transform: translateY(8.05px) translateX(0.99211px); + transform: translateY(8.05px) translateX(0.99211px); } + 48% { + -webkit-transform: translateY(8.4px) translateX(0.49901px); + transform: translateY(8.4px) translateX(0.49901px); } + 50% { + -webkit-transform: translateY(8.75px) translateX(0px); + transform: translateY(8.75px) translateX(0px); } + 52% { + -webkit-transform: translateY(9.1px) translateX(-0.49901px); + transform: translateY(9.1px) translateX(-0.49901px); } + 54% { + -webkit-transform: translateY(9.45px) translateX(-0.99211px); + transform: translateY(9.45px) translateX(-0.99211px); } + 56% { + -webkit-transform: translateY(9.8px) translateX(-1.47343px); + transform: translateY(9.8px) translateX(-1.47343px); } + 58% { + -webkit-transform: translateY(10.15px) translateX(-1.93717px); + transform: translateY(10.15px) translateX(-1.93717px); } + 60% { + -webkit-transform: translateY(10.5px) translateX(-2.37764px); + transform: translateY(10.5px) translateX(-2.37764px); } + 62% { + -webkit-transform: translateY(10.85px) translateX(-2.78933px); + transform: translateY(10.85px) translateX(-2.78933px); } + 64% { + -webkit-transform: translateY(11.2px) translateX(-3.16689px); + transform: translateY(11.2px) translateX(-3.16689px); } + 66% { + -webkit-transform: translateY(11.55px) translateX(-3.50523px); + transform: translateY(11.55px) translateX(-3.50523px); } + 68% { + -webkit-transform: translateY(11.9px) translateX(-3.79948px); + transform: translateY(11.9px) translateX(-3.79948px); } + 70% { + -webkit-transform: translateY(12.25px) translateX(-4.04508px); + transform: translateY(12.25px) translateX(-4.04508px); } + 72% { + -webkit-transform: translateY(12.6px) translateX(-4.23782px); + transform: translateY(12.6px) translateX(-4.23782px); } + 74% { + -webkit-transform: translateY(12.95px) translateX(-4.37381px); + transform: translateY(12.95px) translateX(-4.37381px); } + 76% { + -webkit-transform: translateY(13.3px) translateX(-4.44956px); + transform: translateY(13.3px) translateX(-4.44956px); } + 78% { + -webkit-transform: translateY(13.65px) translateX(-4.46197px); + transform: translateY(13.65px) translateX(-4.46197px); } + 80% { + -webkit-transform: translateY(14px) translateX(-4.40839px); + transform: translateY(14px) translateX(-4.40839px); } + 82% { + -webkit-transform: translateY(14.35px) translateX(-4.28661px); + transform: translateY(14.35px) translateX(-4.28661px); } + 84% { + -webkit-transform: translateY(14.7px) translateX(-4.09491px); + transform: translateY(14.7px) translateX(-4.09491px); } + 86% { + -webkit-transform: translateY(15.05px) translateX(-3.83201px); + transform: translateY(15.05px) translateX(-3.83201px); } + 88% { + -webkit-transform: translateY(15.4px) translateX(-3.49718px); + transform: translateY(15.4px) translateX(-3.49718px); } + 90% { + -webkit-transform: translateY(15.75px) translateX(-3.09017px); + transform: translateY(15.75px) translateX(-3.09017px); } + 92% { + -webkit-transform: translateY(16.1px) translateX(-2.61124px); + transform: translateY(16.1px) translateX(-2.61124px); } + 94% { + -webkit-transform: translateY(16.45px) translateX(-2.06119px); + transform: translateY(16.45px) translateX(-2.06119px); } + 96% { + -webkit-transform: translateY(16.8px) translateX(-1.44133px); + transform: translateY(16.8px) translateX(-1.44133px); } + 98% { + -webkit-transform: translateY(17.15px) translateX(-0.75349px); + transform: translateY(17.15px) translateX(-0.75349px); } + 100% { + -webkit-transform: translateY(17.5px) translateX(0px); + transform: translateY(17.5px) translateX(0px); } } + +@keyframes snowFall { + 0% { + -webkit-transform: translateY(0px) translateX(0px); + transform: translateY(0px) translateX(0px); } + 2% { + -webkit-transform: translateY(0.35px) translateX(0.75349px); + transform: translateY(0.35px) translateX(0.75349px); } + 4% { + -webkit-transform: translateY(0.7px) translateX(1.44133px); + transform: translateY(0.7px) translateX(1.44133px); } + 6% { + -webkit-transform: translateY(1.05px) translateX(2.06119px); + transform: translateY(1.05px) translateX(2.06119px); } + 8% { + -webkit-transform: translateY(1.4px) translateX(2.61124px); + transform: translateY(1.4px) translateX(2.61124px); } + 10% { + -webkit-transform: translateY(1.75px) translateX(3.09017px); + transform: translateY(1.75px) translateX(3.09017px); } + 12% { + -webkit-transform: translateY(2.1px) translateX(3.49718px); + transform: translateY(2.1px) translateX(3.49718px); } + 14% { + -webkit-transform: translateY(2.45px) translateX(3.83201px); + transform: translateY(2.45px) translateX(3.83201px); } + 16% { + -webkit-transform: translateY(2.8px) translateX(4.09491px); + transform: translateY(2.8px) translateX(4.09491px); } + 18% { + -webkit-transform: translateY(3.15px) translateX(4.28661px); + transform: translateY(3.15px) translateX(4.28661px); } + 20% { + -webkit-transform: translateY(3.5px) translateX(4.40839px); + transform: translateY(3.5px) translateX(4.40839px); } + 22% { + -webkit-transform: translateY(3.85px) translateX(4.46197px); + transform: translateY(3.85px) translateX(4.46197px); } + 24% { + -webkit-transform: translateY(4.2px) translateX(4.44956px); + transform: translateY(4.2px) translateX(4.44956px); } + 26% { + -webkit-transform: translateY(4.55px) translateX(4.37381px); + transform: translateY(4.55px) translateX(4.37381px); } + 28% { + -webkit-transform: translateY(4.9px) translateX(4.23782px); + transform: translateY(4.9px) translateX(4.23782px); } + 30% { + -webkit-transform: translateY(5.25px) translateX(4.04508px); + transform: translateY(5.25px) translateX(4.04508px); } + 32% { + -webkit-transform: translateY(5.6px) translateX(3.79948px); + transform: translateY(5.6px) translateX(3.79948px); } + 34% { + -webkit-transform: translateY(5.95px) translateX(3.50523px); + transform: translateY(5.95px) translateX(3.50523px); } + 36% { + -webkit-transform: translateY(6.3px) translateX(3.16689px); + transform: translateY(6.3px) translateX(3.16689px); } + 38% { + -webkit-transform: translateY(6.65px) translateX(2.78933px); + transform: translateY(6.65px) translateX(2.78933px); } + 40% { + -webkit-transform: translateY(7px) translateX(2.37764px); + transform: translateY(7px) translateX(2.37764px); } + 42% { + -webkit-transform: translateY(7.35px) translateX(1.93717px); + transform: translateY(7.35px) translateX(1.93717px); } + 44% { + -webkit-transform: translateY(7.7px) translateX(1.47343px); + transform: translateY(7.7px) translateX(1.47343px); } + 46% { + -webkit-transform: translateY(8.05px) translateX(0.99211px); + transform: translateY(8.05px) translateX(0.99211px); } + 48% { + -webkit-transform: translateY(8.4px) translateX(0.49901px); + transform: translateY(8.4px) translateX(0.49901px); } + 50% { + -webkit-transform: translateY(8.75px) translateX(0px); + transform: translateY(8.75px) translateX(0px); } + 52% { + -webkit-transform: translateY(9.1px) translateX(-0.49901px); + transform: translateY(9.1px) translateX(-0.49901px); } + 54% { + -webkit-transform: translateY(9.45px) translateX(-0.99211px); + transform: translateY(9.45px) translateX(-0.99211px); } + 56% { + -webkit-transform: translateY(9.8px) translateX(-1.47343px); + transform: translateY(9.8px) translateX(-1.47343px); } + 58% { + -webkit-transform: translateY(10.15px) translateX(-1.93717px); + transform: translateY(10.15px) translateX(-1.93717px); } + 60% { + -webkit-transform: translateY(10.5px) translateX(-2.37764px); + transform: translateY(10.5px) translateX(-2.37764px); } + 62% { + -webkit-transform: translateY(10.85px) translateX(-2.78933px); + transform: translateY(10.85px) translateX(-2.78933px); } + 64% { + -webkit-transform: translateY(11.2px) translateX(-3.16689px); + transform: translateY(11.2px) translateX(-3.16689px); } + 66% { + -webkit-transform: translateY(11.55px) translateX(-3.50523px); + transform: translateY(11.55px) translateX(-3.50523px); } + 68% { + -webkit-transform: translateY(11.9px) translateX(-3.79948px); + transform: translateY(11.9px) translateX(-3.79948px); } + 70% { + -webkit-transform: translateY(12.25px) translateX(-4.04508px); + transform: translateY(12.25px) translateX(-4.04508px); } + 72% { + -webkit-transform: translateY(12.6px) translateX(-4.23782px); + transform: translateY(12.6px) translateX(-4.23782px); } + 74% { + -webkit-transform: translateY(12.95px) translateX(-4.37381px); + transform: translateY(12.95px) translateX(-4.37381px); } + 76% { + -webkit-transform: translateY(13.3px) translateX(-4.44956px); + transform: translateY(13.3px) translateX(-4.44956px); } + 78% { + -webkit-transform: translateY(13.65px) translateX(-4.46197px); + transform: translateY(13.65px) translateX(-4.46197px); } + 80% { + -webkit-transform: translateY(14px) translateX(-4.40839px); + transform: translateY(14px) translateX(-4.40839px); } + 82% { + -webkit-transform: translateY(14.35px) translateX(-4.28661px); + transform: translateY(14.35px) translateX(-4.28661px); } + 84% { + -webkit-transform: translateY(14.7px) translateX(-4.09491px); + transform: translateY(14.7px) translateX(-4.09491px); } + 86% { + -webkit-transform: translateY(15.05px) translateX(-3.83201px); + transform: translateY(15.05px) translateX(-3.83201px); } + 88% { + -webkit-transform: translateY(15.4px) translateX(-3.49718px); + transform: translateY(15.4px) translateX(-3.49718px); } + 90% { + -webkit-transform: translateY(15.75px) translateX(-3.09017px); + transform: translateY(15.75px) translateX(-3.09017px); } + 92% { + -webkit-transform: translateY(16.1px) translateX(-2.61124px); + transform: translateY(16.1px) translateX(-2.61124px); } + 94% { + -webkit-transform: translateY(16.45px) translateX(-2.06119px); + transform: translateY(16.45px) translateX(-2.06119px); } + 96% { + -webkit-transform: translateY(16.8px) translateX(-1.44133px); + transform: translateY(16.8px) translateX(-1.44133px); } + 98% { + -webkit-transform: translateY(17.15px) translateX(-0.75349px); + transform: translateY(17.15px) translateX(-0.75349px); } + 100% { + -webkit-transform: translateY(17.5px) translateX(0px); + transform: translateY(17.5px) translateX(0px); } } + +@-webkit-keyframes snowFall2 { + 0% { + -webkit-transform: translateY(0px) translateX(0px); + transform: translateY(0px) translateX(0px); } + 2% { + -webkit-transform: translateY(0.35px) translateX(-0.75349px); + transform: translateY(0.35px) translateX(-0.75349px); } + 4% { + -webkit-transform: translateY(0.7px) translateX(-1.44133px); + transform: translateY(0.7px) translateX(-1.44133px); } + 6% { + -webkit-transform: translateY(1.05px) translateX(-2.06119px); + transform: translateY(1.05px) translateX(-2.06119px); } + 8% { + -webkit-transform: translateY(1.4px) translateX(-2.61124px); + transform: translateY(1.4px) translateX(-2.61124px); } + 10% { + -webkit-transform: translateY(1.75px) translateX(-3.09017px); + transform: translateY(1.75px) translateX(-3.09017px); } + 12% { + -webkit-transform: translateY(2.1px) translateX(-3.49718px); + transform: translateY(2.1px) translateX(-3.49718px); } + 14% { + -webkit-transform: translateY(2.45px) translateX(-3.83201px); + transform: translateY(2.45px) translateX(-3.83201px); } + 16% { + -webkit-transform: translateY(2.8px) translateX(-4.09491px); + transform: translateY(2.8px) translateX(-4.09491px); } + 18% { + -webkit-transform: translateY(3.15px) translateX(-4.28661px); + transform: translateY(3.15px) translateX(-4.28661px); } + 20% { + -webkit-transform: translateY(3.5px) translateX(-4.40839px); + transform: translateY(3.5px) translateX(-4.40839px); } + 22% { + -webkit-transform: translateY(3.85px) translateX(-4.46197px); + transform: translateY(3.85px) translateX(-4.46197px); } + 24% { + -webkit-transform: translateY(4.2px) translateX(-4.44956px); + transform: translateY(4.2px) translateX(-4.44956px); } + 26% { + -webkit-transform: translateY(4.55px) translateX(-4.37381px); + transform: translateY(4.55px) translateX(-4.37381px); } + 28% { + -webkit-transform: translateY(4.9px) translateX(-4.23782px); + transform: translateY(4.9px) translateX(-4.23782px); } + 30% { + -webkit-transform: translateY(5.25px) translateX(-4.04508px); + transform: translateY(5.25px) translateX(-4.04508px); } + 32% { + -webkit-transform: translateY(5.6px) translateX(-3.79948px); + transform: translateY(5.6px) translateX(-3.79948px); } + 34% { + -webkit-transform: translateY(5.95px) translateX(-3.50523px); + transform: translateY(5.95px) translateX(-3.50523px); } + 36% { + -webkit-transform: translateY(6.3px) translateX(-3.16689px); + transform: translateY(6.3px) translateX(-3.16689px); } + 38% { + -webkit-transform: translateY(6.65px) translateX(-2.78933px); + transform: translateY(6.65px) translateX(-2.78933px); } + 40% { + -webkit-transform: translateY(7px) translateX(-2.37764px); + transform: translateY(7px) translateX(-2.37764px); } + 42% { + -webkit-transform: translateY(7.35px) translateX(-1.93717px); + transform: translateY(7.35px) translateX(-1.93717px); } + 44% { + -webkit-transform: translateY(7.7px) translateX(-1.47343px); + transform: translateY(7.7px) translateX(-1.47343px); } + 46% { + -webkit-transform: translateY(8.05px) translateX(-0.99211px); + transform: translateY(8.05px) translateX(-0.99211px); } + 48% { + -webkit-transform: translateY(8.4px) translateX(-0.49901px); + transform: translateY(8.4px) translateX(-0.49901px); } + 50% { + -webkit-transform: translateY(8.75px) translateX(0px); + transform: translateY(8.75px) translateX(0px); } + 52% { + -webkit-transform: translateY(9.1px) translateX(0.49901px); + transform: translateY(9.1px) translateX(0.49901px); } + 54% { + -webkit-transform: translateY(9.45px) translateX(0.99211px); + transform: translateY(9.45px) translateX(0.99211px); } + 56% { + -webkit-transform: translateY(9.8px) translateX(1.47343px); + transform: translateY(9.8px) translateX(1.47343px); } + 58% { + -webkit-transform: translateY(10.15px) translateX(1.93717px); + transform: translateY(10.15px) translateX(1.93717px); } + 60% { + -webkit-transform: translateY(10.5px) translateX(2.37764px); + transform: translateY(10.5px) translateX(2.37764px); } + 62% { + -webkit-transform: translateY(10.85px) translateX(2.78933px); + transform: translateY(10.85px) translateX(2.78933px); } + 64% { + -webkit-transform: translateY(11.2px) translateX(3.16689px); + transform: translateY(11.2px) translateX(3.16689px); } + 66% { + -webkit-transform: translateY(11.55px) translateX(3.50523px); + transform: translateY(11.55px) translateX(3.50523px); } + 68% { + -webkit-transform: translateY(11.9px) translateX(3.79948px); + transform: translateY(11.9px) translateX(3.79948px); } + 70% { + -webkit-transform: translateY(12.25px) translateX(4.04508px); + transform: translateY(12.25px) translateX(4.04508px); } + 72% { + -webkit-transform: translateY(12.6px) translateX(4.23782px); + transform: translateY(12.6px) translateX(4.23782px); } + 74% { + -webkit-transform: translateY(12.95px) translateX(4.37381px); + transform: translateY(12.95px) translateX(4.37381px); } + 76% { + -webkit-transform: translateY(13.3px) translateX(4.44956px); + transform: translateY(13.3px) translateX(4.44956px); } + 78% { + -webkit-transform: translateY(13.65px) translateX(4.46197px); + transform: translateY(13.65px) translateX(4.46197px); } + 80% { + -webkit-transform: translateY(14px) translateX(4.40839px); + transform: translateY(14px) translateX(4.40839px); } + 82% { + -webkit-transform: translateY(14.35px) translateX(4.28661px); + transform: translateY(14.35px) translateX(4.28661px); } + 84% { + -webkit-transform: translateY(14.7px) translateX(4.09491px); + transform: translateY(14.7px) translateX(4.09491px); } + 86% { + -webkit-transform: translateY(15.05px) translateX(3.83201px); + transform: translateY(15.05px) translateX(3.83201px); } + 88% { + -webkit-transform: translateY(15.4px) translateX(3.49718px); + transform: translateY(15.4px) translateX(3.49718px); } + 90% { + -webkit-transform: translateY(15.75px) translateX(3.09017px); + transform: translateY(15.75px) translateX(3.09017px); } + 92% { + -webkit-transform: translateY(16.1px) translateX(2.61124px); + transform: translateY(16.1px) translateX(2.61124px); } + 94% { + -webkit-transform: translateY(16.45px) translateX(2.06119px); + transform: translateY(16.45px) translateX(2.06119px); } + 96% { + -webkit-transform: translateY(16.8px) translateX(1.44133px); + transform: translateY(16.8px) translateX(1.44133px); } + 98% { + -webkit-transform: translateY(17.15px) translateX(0.75349px); + transform: translateY(17.15px) translateX(0.75349px); } + 100% { + -webkit-transform: translateY(17.5px) translateX(0px); + transform: translateY(17.5px) translateX(0px); } } + +@keyframes snowFall2 { + 0% { + -webkit-transform: translateY(0px) translateX(0px); + transform: translateY(0px) translateX(0px); } + 2% { + -webkit-transform: translateY(0.35px) translateX(-0.75349px); + transform: translateY(0.35px) translateX(-0.75349px); } + 4% { + -webkit-transform: translateY(0.7px) translateX(-1.44133px); + transform: translateY(0.7px) translateX(-1.44133px); } + 6% { + -webkit-transform: translateY(1.05px) translateX(-2.06119px); + transform: translateY(1.05px) translateX(-2.06119px); } + 8% { + -webkit-transform: translateY(1.4px) translateX(-2.61124px); + transform: translateY(1.4px) translateX(-2.61124px); } + 10% { + -webkit-transform: translateY(1.75px) translateX(-3.09017px); + transform: translateY(1.75px) translateX(-3.09017px); } + 12% { + -webkit-transform: translateY(2.1px) translateX(-3.49718px); + transform: translateY(2.1px) translateX(-3.49718px); } + 14% { + -webkit-transform: translateY(2.45px) translateX(-3.83201px); + transform: translateY(2.45px) translateX(-3.83201px); } + 16% { + -webkit-transform: translateY(2.8px) translateX(-4.09491px); + transform: translateY(2.8px) translateX(-4.09491px); } + 18% { + -webkit-transform: translateY(3.15px) translateX(-4.28661px); + transform: translateY(3.15px) translateX(-4.28661px); } + 20% { + -webkit-transform: translateY(3.5px) translateX(-4.40839px); + transform: translateY(3.5px) translateX(-4.40839px); } + 22% { + -webkit-transform: translateY(3.85px) translateX(-4.46197px); + transform: translateY(3.85px) translateX(-4.46197px); } + 24% { + -webkit-transform: translateY(4.2px) translateX(-4.44956px); + transform: translateY(4.2px) translateX(-4.44956px); } + 26% { + -webkit-transform: translateY(4.55px) translateX(-4.37381px); + transform: translateY(4.55px) translateX(-4.37381px); } + 28% { + -webkit-transform: translateY(4.9px) translateX(-4.23782px); + transform: translateY(4.9px) translateX(-4.23782px); } + 30% { + -webkit-transform: translateY(5.25px) translateX(-4.04508px); + transform: translateY(5.25px) translateX(-4.04508px); } + 32% { + -webkit-transform: translateY(5.6px) translateX(-3.79948px); + transform: translateY(5.6px) translateX(-3.79948px); } + 34% { + -webkit-transform: translateY(5.95px) translateX(-3.50523px); + transform: translateY(5.95px) translateX(-3.50523px); } + 36% { + -webkit-transform: translateY(6.3px) translateX(-3.16689px); + transform: translateY(6.3px) translateX(-3.16689px); } + 38% { + -webkit-transform: translateY(6.65px) translateX(-2.78933px); + transform: translateY(6.65px) translateX(-2.78933px); } + 40% { + -webkit-transform: translateY(7px) translateX(-2.37764px); + transform: translateY(7px) translateX(-2.37764px); } + 42% { + -webkit-transform: translateY(7.35px) translateX(-1.93717px); + transform: translateY(7.35px) translateX(-1.93717px); } + 44% { + -webkit-transform: translateY(7.7px) translateX(-1.47343px); + transform: translateY(7.7px) translateX(-1.47343px); } + 46% { + -webkit-transform: translateY(8.05px) translateX(-0.99211px); + transform: translateY(8.05px) translateX(-0.99211px); } + 48% { + -webkit-transform: translateY(8.4px) translateX(-0.49901px); + transform: translateY(8.4px) translateX(-0.49901px); } + 50% { + -webkit-transform: translateY(8.75px) translateX(0px); + transform: translateY(8.75px) translateX(0px); } + 52% { + -webkit-transform: translateY(9.1px) translateX(0.49901px); + transform: translateY(9.1px) translateX(0.49901px); } + 54% { + -webkit-transform: translateY(9.45px) translateX(0.99211px); + transform: translateY(9.45px) translateX(0.99211px); } + 56% { + -webkit-transform: translateY(9.8px) translateX(1.47343px); + transform: translateY(9.8px) translateX(1.47343px); } + 58% { + -webkit-transform: translateY(10.15px) translateX(1.93717px); + transform: translateY(10.15px) translateX(1.93717px); } + 60% { + -webkit-transform: translateY(10.5px) translateX(2.37764px); + transform: translateY(10.5px) translateX(2.37764px); } + 62% { + -webkit-transform: translateY(10.85px) translateX(2.78933px); + transform: translateY(10.85px) translateX(2.78933px); } + 64% { + -webkit-transform: translateY(11.2px) translateX(3.16689px); + transform: translateY(11.2px) translateX(3.16689px); } + 66% { + -webkit-transform: translateY(11.55px) translateX(3.50523px); + transform: translateY(11.55px) translateX(3.50523px); } + 68% { + -webkit-transform: translateY(11.9px) translateX(3.79948px); + transform: translateY(11.9px) translateX(3.79948px); } + 70% { + -webkit-transform: translateY(12.25px) translateX(4.04508px); + transform: translateY(12.25px) translateX(4.04508px); } + 72% { + -webkit-transform: translateY(12.6px) translateX(4.23782px); + transform: translateY(12.6px) translateX(4.23782px); } + 74% { + -webkit-transform: translateY(12.95px) translateX(4.37381px); + transform: translateY(12.95px) translateX(4.37381px); } + 76% { + -webkit-transform: translateY(13.3px) translateX(4.44956px); + transform: translateY(13.3px) translateX(4.44956px); } + 78% { + -webkit-transform: translateY(13.65px) translateX(4.46197px); + transform: translateY(13.65px) translateX(4.46197px); } + 80% { + -webkit-transform: translateY(14px) translateX(4.40839px); + transform: translateY(14px) translateX(4.40839px); } + 82% { + -webkit-transform: translateY(14.35px) translateX(4.28661px); + transform: translateY(14.35px) translateX(4.28661px); } + 84% { + -webkit-transform: translateY(14.7px) translateX(4.09491px); + transform: translateY(14.7px) translateX(4.09491px); } + 86% { + -webkit-transform: translateY(15.05px) translateX(3.83201px); + transform: translateY(15.05px) translateX(3.83201px); } + 88% { + -webkit-transform: translateY(15.4px) translateX(3.49718px); + transform: translateY(15.4px) translateX(3.49718px); } + 90% { + -webkit-transform: translateY(15.75px) translateX(3.09017px); + transform: translateY(15.75px) translateX(3.09017px); } + 92% { + -webkit-transform: translateY(16.1px) translateX(2.61124px); + transform: translateY(16.1px) translateX(2.61124px); } + 94% { + -webkit-transform: translateY(16.45px) translateX(2.06119px); + transform: translateY(16.45px) translateX(2.06119px); } + 96% { + -webkit-transform: translateY(16.8px) translateX(1.44133px); + transform: translateY(16.8px) translateX(1.44133px); } + 98% { + -webkit-transform: translateY(17.15px) translateX(0.75349px); + transform: translateY(17.15px) translateX(0.75349px); } + 100% { + -webkit-transform: translateY(17.5px) translateX(0px); + transform: translateY(17.5px) translateX(0px); } } + +/* Tornado */ +@-webkit-keyframes translateTornado1 { + 0% { + -webkit-transform: translateY(0); + transform: translateY(0); } + 25% { + -webkit-transform: translateX(3.997px); + transform: translateX(3.997px); } + 75% { + -webkit-transform: translateX(-3.997px); + transform: translateX(-3.997px); } + 100% { + -webkit-transform: translateX(0); + transform: translateX(0); } } +@keyframes translateTornado1 { + 0% { + -webkit-transform: translateY(0); + transform: translateY(0); } + 25% { + -webkit-transform: translateX(3.997px); + transform: translateX(3.997px); } + 75% { + -webkit-transform: translateX(-3.997px); + transform: translateX(-3.997px); } + 100% { + -webkit-transform: translateX(0); + transform: translateX(0); } } + +@-webkit-keyframes translateTornado2 { + 0% { + -webkit-transform: translateY(0); + transform: translateY(0); } + 25% { + -webkit-transform: translateX(2.002px); + transform: translateX(2.002px); } + 75% { + -webkit-transform: translateX(-2.002px); + transform: translateX(-2.002px); } + 100% { + -webkit-transform: translateX(0); + transform: translateX(0); } } + +@keyframes translateTornado2 { + 0% { + -webkit-transform: translateY(0); + transform: translateY(0); } + 25% { + -webkit-transform: translateX(2.002px); + transform: translateX(2.002px); } + 75% { + -webkit-transform: translateX(-2.002px); + transform: translateX(-2.002px); } + 100% { + -webkit-transform: translateX(0); + transform: translateX(0); } } + +@-webkit-keyframes translateTornado3 { + 0% { + -webkit-transform: translateY(0); + transform: translateY(0); } + 25% { + -webkit-transform: translateX(8.001px); + transform: translateX(8.001px); } + 75% { + -webkit-transform: translateX(-8.001px); + transform: translateX(-8.001px); } + 100% { + -webkit-transform: translateX(0); + transform: translateX(0); } } + +@keyframes translateTornado3 { + 0% { + -webkit-transform: translateY(0); + transform: translateY(0); } + 25% { + -webkit-transform: translateX(8.001px); + transform: translateX(8.001px); } + 75% { + -webkit-transform: translateX(-8.001px); + transform: translateX(-8.001px); } + 100% { + -webkit-transform: translateX(0); + transform: translateX(0); } } + +@-webkit-keyframes translateTornado4 { + 0% { + -webkit-transform: translateY(0); + transform: translateY(0); } + 25% { + -webkit-transform: translateX(5.999px); + transform: translateX(5.999px); } + 75% { + -webkit-transform: translateX(-5.999px); + transform: translateX(-5.999px); } + 100% { + -webkit-transform: translateX(0); + transform: translateX(0); } } + +@keyframes translateTornado4 { + 0% { + -webkit-transform: translateY(0); + transform: translateY(0); } + 25% { + -webkit-transform: translateX(5.999px); + transform: translateX(5.999px); } + 75% { + -webkit-transform: translateX(-5.999px); + transform: translateX(-5.999px); } + 100% { + -webkit-transform: translateX(0); + transform: translateX(0); } } + +@-webkit-keyframes translateTornado5 { + 0% { + -webkit-transform: translateY(0); + transform: translateY(0); } + 25% { + -webkit-transform: translateX(10.003px); + transform: translateX(10.003px); } + 75% { + -webkit-transform: translateX(-10.003px); + transform: translateX(-10.003px); } + 100% { + -webkit-transform: translateX(0); + transform: translateX(0); } } + +@keyframes translateTornado5 { + 0% { + -webkit-transform: translateY(0); + transform: translateY(0); } + 25% { + -webkit-transform: translateX(10.003px); + transform: translateX(10.003px); } + 75% { + -webkit-transform: translateX(-10.003px); + transform: translateX(-10.003px); } + 100% { + -webkit-transform: translateX(0); + transform: translateX(0); } } + +@-webkit-keyframes translateTornado6 { + 0% { + -webkit-transform: translateY(0); + transform: translateY(0); } + 25% { + -webkit-transform: translateX(5.999px); + transform: translateX(5.999px); } + 75% { + -webkit-transform: translateX(-5.999px); + transform: translateX(-5.999px); } + 100% { + -webkit-transform: translateX(0); + transform: translateX(0); } } + +@keyframes translateTornado6 { + 0% { + -webkit-transform: translateY(0); + transform: translateY(0); } + 25% { + -webkit-transform: translateX(5.999px); + transform: translateX(5.999px); } + 75% { + -webkit-transform: translateX(-5.999px); + transform: translateX(-5.999px); } + 100% { + -webkit-transform: translateX(0); + transform: translateX(0); } } + +@-webkit-keyframes fillOpacityLightning { + 0% { + fill-opacity: 0; + stroke-opacity: 0; } + 1% { + fill-opacity: 1; + stroke-opacity: 1; } + 7% { + fill-opacity: 0; + stroke-opacity: 0; } + 50% { + fill-opacity: 0; + stroke-opacity: 0; } + 51% { + fill-opacity: 1; + stroke-opacity: 1; } + 53% { + fill-opacity: 0; + stroke-opacity: 0; } + 54% { + fill-opacity: 1; + stroke-opacity: 1; } + 60% { + fill-opacity: 0; + stroke-opacity: 0; } + 100% { + fill-opacity: 0; + stroke-opacity: 0; } } + +@keyframes fillOpacityLightning { + 0% { + fill-opacity: 0; + stroke-opacity: 0; } + 1% { + fill-opacity: 1; + stroke-opacity: 1; } + 7% { + fill-opacity: 0; + stroke-opacity: 0; } + 50% { + fill-opacity: 0; + stroke-opacity: 0; } + 51% { + fill-opacity: 1; + stroke-opacity: 1; } + 53% { + fill-opacity: 0; + stroke-opacity: 0; } + 54% { + fill-opacity: 1; + stroke-opacity: 1; } + 60% { + fill-opacity: 0; + stroke-opacity: 0; } + 100% { + fill-opacity: 0; + stroke-opacity: 0; } } + +@-webkit-keyframes translateFog { + 0% { + -webkit-transform: translateY(0); + transform: translateY(0); } + 25% { + -webkit-transform: translateX(2.499px); + transform: translateX(2.499px); } + 75% { + -webkit-transform: translateX(-2.499px); + transform: translateX(-2.499px); } + 100% { + -webkit-transform: translateX(0); + transform: translateX(0); } } + +@keyframes translateFog { + 0% { + -webkit-transform: translateY(0); + transform: translateY(0); } + 25% { + -webkit-transform: translateX(2.499px); + transform: translateX(2.499px); } + 75% { + -webkit-transform: translateX(-2.499px); + transform: translateX(-2.499px); } + 100% { + -webkit-transform: translateX(0); + transform: translateX(0); } } + +@-webkit-keyframes fillOpacityFog { + 0% { + fill-opacity: 0.5; + stroke-opacity: 0.5; } + 50% { + fill-opacity: 1; + stroke-opacity: 1; } + 100% { + fill-opacity: 0.5; + stroke-opacity: 0.5; } } + +@keyframes fillOpacityFog { + 0% { + fill-opacity: 0.5; + stroke-opacity: 0.5; } + 50% { + fill-opacity: 1; + stroke-opacity: 1; } + 100% { + fill-opacity: 0.5; + stroke-opacity: 0.5; } } + +@-webkit-keyframes translateSunrise { + 0% { + -webkit-transform: translateY(0); + transform: translateY(0); } + 25% { + -webkit-transform: translateY(-16.002px); + transform: translateY(-16.002px); } + 100% { + -webkit-transform: translateY(-16.002px); + transform: translateY(-16.002px); } } + +@keyframes translateSunrise { + 0% { + -webkit-transform: translateY(0); + transform: translateY(0); } + 25% { + -webkit-transform: translateY(-16.002px); + transform: translateY(-16.002px); } + 100% { + -webkit-transform: translateY(-16.002px); + transform: translateY(-16.002px); } } + +@-webkit-keyframes translateSunset { + 0% { + -webkit-transform: translateY(-16.002px); + transform: translateY(-16.002px); } + 25% { + -webkit-transform: translateY(-3.997px); + transform: translateY(-3.997px); } + 100% { + -webkit-transform: translateY(-3.997px); + transform: translateY(-3.997px); } } + +@keyframes translateSunset { + 0% { + -webkit-transform: translateY(-16.002px); + transform: translateY(-16.002px); } + 25% { + -webkit-transform: translateY(-3.997px); + transform: translateY(-3.997px); } + 100% { + -webkit-transform: translateY(-3.997px); + transform: translateY(-3.997px); } } + +@-webkit-keyframes translateArrowDown { + 0% { + -webkit-transform: translateY(2.002px); + transform: translateY(2.002px); } + 100% { + -webkit-transform: translateY(4.998px); + transform: translateY(4.998px); } } + +@keyframes translateArrowDown { + 0% { + -webkit-transform: translateY(2.002px); + transform: translateY(2.002px); } + 100% { + -webkit-transform: translateY(4.998px); + transform: translateY(4.998px); } } + +@-webkit-keyframes translateArrowUp { + 0% { + -webkit-transform: translateY(-2.002px); + transform: translateY(-2.002px); } + 100% { + -webkit-transform: translateY(-4.998px); + transform: translateY(-4.998px); } } + +@keyframes translateArrowUp { + 0% { + -webkit-transform: translateY(-2.002px); + transform: translateY(-2.002px); } + 100% { + -webkit-transform: translateY(-4.998px); + transform: translateY(-4.998px); } } + +@-webkit-keyframes translateWind { + 0% { + -webkit-transform: translateY(0); + transform: translateY(0); } + 25% { + -webkit-transform: translateX(4.998px); + transform: translateX(4.998px); } + 75% { + -webkit-transform: translateX(-4.998px); + transform: translateX(-4.998px); } + 100% { + -webkit-transform: translateX(0); + transform: translateX(0); } } + +@keyframes translateWind { + 0% { + -webkit-transform: translateY(0); + transform: translateY(0); } + 25% { + -webkit-transform: translateX(4.998px); + transform: translateX(4.998px); } + 75% { + -webkit-transform: translateX(-4.998px); + transform: translateX(-4.998px); } + 100% { + -webkit-transform: translateX(0); + transform: translateX(0); } } diff --git a/public/admin/assets/fonts/calendar/icon.eot b/public/admin/assets/fonts/calendar/icon.eot new file mode 100644 index 0000000..c95eee1 Binary files /dev/null and b/public/admin/assets/fonts/calendar/icon.eot differ diff --git a/public/admin/assets/fonts/calendar/icon.svg b/public/admin/assets/fonts/calendar/icon.svg new file mode 100644 index 0000000..42996ea --- /dev/null +++ b/public/admin/assets/fonts/calendar/icon.svg @@ -0,0 +1,17 @@ + + + +Generated by IcoMoon + + + + + + + + + + + + + \ No newline at end of file diff --git a/public/admin/assets/fonts/calendar/icon.ttf b/public/admin/assets/fonts/calendar/icon.ttf new file mode 100644 index 0000000..0a764d7 Binary files /dev/null and b/public/admin/assets/fonts/calendar/icon.ttf differ diff --git a/public/admin/assets/fonts/calendar/icon.woff b/public/admin/assets/fonts/calendar/icon.woff new file mode 100644 index 0000000..ac5b8ba Binary files /dev/null and b/public/admin/assets/fonts/calendar/icon.woff differ diff --git a/public/admin/assets/fonts/flag-icon/ad.svg b/public/admin/assets/fonts/flag-icon/ad.svg new file mode 100644 index 0000000..4a9b47b --- /dev/null +++ b/public/admin/assets/fonts/flag-icon/ad.svg @@ -0,0 +1,151 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/public/admin/assets/fonts/flag-icon/ae.svg b/public/admin/assets/fonts/flag-icon/ae.svg new file mode 100644 index 0000000..4ee8cc4 --- /dev/null +++ b/public/admin/assets/fonts/flag-icon/ae.svg @@ -0,0 +1,6 @@ + + + + + + diff --git a/public/admin/assets/fonts/flag-icon/af.svg b/public/admin/assets/fonts/flag-icon/af.svg new file mode 100644 index 0000000..bebf186 --- /dev/null +++ b/public/admin/assets/fonts/flag-icon/af.svg @@ -0,0 +1,83 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/public/admin/assets/fonts/flag-icon/ag.svg b/public/admin/assets/fonts/flag-icon/ag.svg new file mode 100644 index 0000000..125d4c4 --- /dev/null +++ b/public/admin/assets/fonts/flag-icon/ag.svg @@ -0,0 +1,15 @@ + + + + + + + + + + + + + + + diff --git a/public/admin/assets/fonts/flag-icon/ai.svg b/public/admin/assets/fonts/flag-icon/ai.svg new file mode 100644 index 0000000..b7ce7f2 --- /dev/null +++ b/public/admin/assets/fonts/flag-icon/ai.svg @@ -0,0 +1,767 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/public/admin/assets/fonts/flag-icon/al.svg b/public/admin/assets/fonts/flag-icon/al.svg new file mode 100644 index 0000000..06e281b --- /dev/null +++ b/public/admin/assets/fonts/flag-icon/al.svg @@ -0,0 +1,5 @@ + + + + + diff --git a/public/admin/assets/fonts/flag-icon/am.svg b/public/admin/assets/fonts/flag-icon/am.svg new file mode 100644 index 0000000..1f8886d --- /dev/null +++ b/public/admin/assets/fonts/flag-icon/am.svg @@ -0,0 +1,5 @@ + + + + + diff --git a/public/admin/assets/fonts/flag-icon/ao.svg b/public/admin/assets/fonts/flag-icon/ao.svg new file mode 100644 index 0000000..aa45e98 --- /dev/null +++ b/public/admin/assets/fonts/flag-icon/ao.svg @@ -0,0 +1,13 @@ + + + + + + + + + + + + + diff --git a/public/admin/assets/fonts/flag-icon/aq.svg b/public/admin/assets/fonts/flag-icon/aq.svg new file mode 100644 index 0000000..a300ad2 --- /dev/null +++ b/public/admin/assets/fonts/flag-icon/aq.svg @@ -0,0 +1,6 @@ + + + + + + diff --git a/public/admin/assets/fonts/flag-icon/ar.svg b/public/admin/assets/fonts/flag-icon/ar.svg new file mode 100644 index 0000000..1d12c2a --- /dev/null +++ b/public/admin/assets/fonts/flag-icon/ar.svg @@ -0,0 +1,32 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/public/admin/assets/fonts/flag-icon/as.svg b/public/admin/assets/fonts/flag-icon/as.svg new file mode 100644 index 0000000..9a153cc --- /dev/null +++ b/public/admin/assets/fonts/flag-icon/as.svg @@ -0,0 +1,33 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/public/admin/assets/fonts/flag-icon/at.svg b/public/admin/assets/fonts/flag-icon/at.svg new file mode 100644 index 0000000..49da185 --- /dev/null +++ b/public/admin/assets/fonts/flag-icon/at.svg @@ -0,0 +1,6 @@ + + + + + + diff --git a/public/admin/assets/fonts/flag-icon/au.svg b/public/admin/assets/fonts/flag-icon/au.svg new file mode 100644 index 0000000..de98a62 --- /dev/null +++ b/public/admin/assets/fonts/flag-icon/au.svg @@ -0,0 +1,9 @@ + + + + + + + + + diff --git a/public/admin/assets/fonts/flag-icon/aw.svg b/public/admin/assets/fonts/flag-icon/aw.svg new file mode 100644 index 0000000..c2949bc --- /dev/null +++ b/public/admin/assets/fonts/flag-icon/aw.svg @@ -0,0 +1,186 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/public/admin/assets/fonts/flag-icon/ax.svg b/public/admin/assets/fonts/flag-icon/ax.svg new file mode 100644 index 0000000..6bf6226 --- /dev/null +++ b/public/admin/assets/fonts/flag-icon/ax.svg @@ -0,0 +1,18 @@ + + + + + + + + + + + + + + + + + + diff --git a/public/admin/assets/fonts/flag-icon/az.svg b/public/admin/assets/fonts/flag-icon/az.svg new file mode 100644 index 0000000..699f99d --- /dev/null +++ b/public/admin/assets/fonts/flag-icon/az.svg @@ -0,0 +1,8 @@ + + + + + + + + diff --git a/public/admin/assets/fonts/flag-icon/ba.svg b/public/admin/assets/fonts/flag-icon/ba.svg new file mode 100644 index 0000000..24a3925 --- /dev/null +++ b/public/admin/assets/fonts/flag-icon/ba.svg @@ -0,0 +1,12 @@ + + + + + + + + + + + + diff --git a/public/admin/assets/fonts/flag-icon/bb.svg b/public/admin/assets/fonts/flag-icon/bb.svg new file mode 100644 index 0000000..5bf30b5 --- /dev/null +++ b/public/admin/assets/fonts/flag-icon/bb.svg @@ -0,0 +1,6 @@ + + + + + + diff --git a/public/admin/assets/fonts/flag-icon/bd.svg b/public/admin/assets/fonts/flag-icon/bd.svg new file mode 100644 index 0000000..3ecd16a --- /dev/null +++ b/public/admin/assets/fonts/flag-icon/bd.svg @@ -0,0 +1,4 @@ + + + + diff --git a/public/admin/assets/fonts/flag-icon/be.svg b/public/admin/assets/fonts/flag-icon/be.svg new file mode 100644 index 0000000..a323a16 --- /dev/null +++ b/public/admin/assets/fonts/flag-icon/be.svg @@ -0,0 +1,7 @@ + + + + + + + diff --git a/public/admin/assets/fonts/flag-icon/bf.svg b/public/admin/assets/fonts/flag-icon/bf.svg new file mode 100644 index 0000000..2ae0d72 --- /dev/null +++ b/public/admin/assets/fonts/flag-icon/bf.svg @@ -0,0 +1,7 @@ + + + + + + + diff --git a/public/admin/assets/fonts/flag-icon/bg.svg b/public/admin/assets/fonts/flag-icon/bg.svg new file mode 100644 index 0000000..ed8b104 --- /dev/null +++ b/public/admin/assets/fonts/flag-icon/bg.svg @@ -0,0 +1,7 @@ + + + + + + + diff --git a/public/admin/assets/fonts/flag-icon/bh.svg b/public/admin/assets/fonts/flag-icon/bh.svg new file mode 100644 index 0000000..7df45b9 --- /dev/null +++ b/public/admin/assets/fonts/flag-icon/bh.svg @@ -0,0 +1,11 @@ + + + + + + + + + + + diff --git a/public/admin/assets/fonts/flag-icon/bi.svg b/public/admin/assets/fonts/flag-icon/bi.svg new file mode 100644 index 0000000..4ce425b --- /dev/null +++ b/public/admin/assets/fonts/flag-icon/bi.svg @@ -0,0 +1,15 @@ + + + + + + + + + + + + + + + diff --git a/public/admin/assets/fonts/flag-icon/bj.svg b/public/admin/assets/fonts/flag-icon/bj.svg new file mode 100644 index 0000000..f687689 --- /dev/null +++ b/public/admin/assets/fonts/flag-icon/bj.svg @@ -0,0 +1,14 @@ + + + + + + + + + + + + + + diff --git a/public/admin/assets/fonts/flag-icon/bl.svg b/public/admin/assets/fonts/flag-icon/bl.svg new file mode 100644 index 0000000..b0b4259 --- /dev/null +++ b/public/admin/assets/fonts/flag-icon/bl.svg @@ -0,0 +1,7 @@ + + + + + + + diff --git a/public/admin/assets/fonts/flag-icon/bm.svg b/public/admin/assets/fonts/flag-icon/bm.svg new file mode 100644 index 0000000..6a80e96 --- /dev/null +++ b/public/admin/assets/fonts/flag-icon/bm.svg @@ -0,0 +1,99 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/public/admin/assets/fonts/flag-icon/bn.svg b/public/admin/assets/fonts/flag-icon/bn.svg new file mode 100644 index 0000000..7bb1dcc --- /dev/null +++ b/public/admin/assets/fonts/flag-icon/bn.svg @@ -0,0 +1,36 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/public/admin/assets/fonts/flag-icon/bo.svg b/public/admin/assets/fonts/flag-icon/bo.svg new file mode 100644 index 0000000..1d72181 --- /dev/null +++ b/public/admin/assets/fonts/flag-icon/bo.svg @@ -0,0 +1,686 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/public/admin/assets/fonts/flag-icon/bq.svg b/public/admin/assets/fonts/flag-icon/bq.svg new file mode 100644 index 0000000..1326714 --- /dev/null +++ b/public/admin/assets/fonts/flag-icon/bq.svg @@ -0,0 +1,5 @@ + + + + + diff --git a/public/admin/assets/fonts/flag-icon/br.svg b/public/admin/assets/fonts/flag-icon/br.svg new file mode 100644 index 0000000..a2ac372 --- /dev/null +++ b/public/admin/assets/fonts/flag-icon/br.svg @@ -0,0 +1,45 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/public/admin/assets/fonts/flag-icon/bs.svg b/public/admin/assets/fonts/flag-icon/bs.svg new file mode 100644 index 0000000..93578ca --- /dev/null +++ b/public/admin/assets/fonts/flag-icon/bs.svg @@ -0,0 +1,13 @@ + + + + + + + + + + + + + diff --git a/public/admin/assets/fonts/flag-icon/bt.svg b/public/admin/assets/fonts/flag-icon/bt.svg new file mode 100644 index 0000000..220754f --- /dev/null +++ b/public/admin/assets/fonts/flag-icon/bt.svg @@ -0,0 +1,89 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/public/admin/assets/fonts/flag-icon/bv.svg b/public/admin/assets/fonts/flag-icon/bv.svg new file mode 100644 index 0000000..96145bb --- /dev/null +++ b/public/admin/assets/fonts/flag-icon/bv.svg @@ -0,0 +1,13 @@ + + + + + + + + + + + + + diff --git a/public/admin/assets/fonts/flag-icon/bw.svg b/public/admin/assets/fonts/flag-icon/bw.svg new file mode 100644 index 0000000..3d34d00 --- /dev/null +++ b/public/admin/assets/fonts/flag-icon/bw.svg @@ -0,0 +1,7 @@ + + + + + + + diff --git a/public/admin/assets/fonts/flag-icon/by.svg b/public/admin/assets/fonts/flag-icon/by.svg new file mode 100644 index 0000000..1049e4f --- /dev/null +++ b/public/admin/assets/fonts/flag-icon/by.svg @@ -0,0 +1,61 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/public/admin/assets/fonts/flag-icon/bz.svg b/public/admin/assets/fonts/flag-icon/bz.svg new file mode 100644 index 0000000..94bdaea --- /dev/null +++ b/public/admin/assets/fonts/flag-icon/bz.svg @@ -0,0 +1,146 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/public/admin/assets/fonts/flag-icon/ca.svg b/public/admin/assets/fonts/flag-icon/ca.svg new file mode 100644 index 0000000..e589923 --- /dev/null +++ b/public/admin/assets/fonts/flag-icon/ca.svg @@ -0,0 +1,4 @@ + + + + diff --git a/public/admin/assets/fonts/flag-icon/cc.svg b/public/admin/assets/fonts/flag-icon/cc.svg new file mode 100644 index 0000000..5b21d16 --- /dev/null +++ b/public/admin/assets/fonts/flag-icon/cc.svg @@ -0,0 +1,19 @@ + + + + + + + + + + + + + + + + + + + diff --git a/public/admin/assets/fonts/flag-icon/cd.svg b/public/admin/assets/fonts/flag-icon/cd.svg new file mode 100644 index 0000000..674627c --- /dev/null +++ b/public/admin/assets/fonts/flag-icon/cd.svg @@ -0,0 +1,5 @@ + + + + + diff --git a/public/admin/assets/fonts/flag-icon/cf.svg b/public/admin/assets/fonts/flag-icon/cf.svg new file mode 100644 index 0000000..31ae4fb --- /dev/null +++ b/public/admin/assets/fonts/flag-icon/cf.svg @@ -0,0 +1,15 @@ + + + + + + + + + + + + + + + diff --git a/public/admin/assets/fonts/flag-icon/cg.svg b/public/admin/assets/fonts/flag-icon/cg.svg new file mode 100644 index 0000000..701fad5 --- /dev/null +++ b/public/admin/assets/fonts/flag-icon/cg.svg @@ -0,0 +1,12 @@ + + + + + + + + + + + + diff --git a/public/admin/assets/fonts/flag-icon/ch.svg b/public/admin/assets/fonts/flag-icon/ch.svg new file mode 100644 index 0000000..ed3f65d --- /dev/null +++ b/public/admin/assets/fonts/flag-icon/ch.svg @@ -0,0 +1,9 @@ + + + + + + + + + diff --git a/public/admin/assets/fonts/flag-icon/ci.svg b/public/admin/assets/fonts/flag-icon/ci.svg new file mode 100644 index 0000000..8ef7def --- /dev/null +++ b/public/admin/assets/fonts/flag-icon/ci.svg @@ -0,0 +1,7 @@ + + + + + + + diff --git a/public/admin/assets/fonts/flag-icon/ck.svg b/public/admin/assets/fonts/flag-icon/ck.svg new file mode 100644 index 0000000..9041d6f --- /dev/null +++ b/public/admin/assets/fonts/flag-icon/ck.svg @@ -0,0 +1,9 @@ + + + + + + + + + diff --git a/public/admin/assets/fonts/flag-icon/cl.svg b/public/admin/assets/fonts/flag-icon/cl.svg new file mode 100644 index 0000000..f34a84e --- /dev/null +++ b/public/admin/assets/fonts/flag-icon/cl.svg @@ -0,0 +1,13 @@ + + + + + + + + + + + + + diff --git a/public/admin/assets/fonts/flag-icon/cm.svg b/public/admin/assets/fonts/flag-icon/cm.svg new file mode 100644 index 0000000..a56a84d --- /dev/null +++ b/public/admin/assets/fonts/flag-icon/cm.svg @@ -0,0 +1,15 @@ + + + + + + + + + + + + + + + diff --git a/public/admin/assets/fonts/flag-icon/cn.svg b/public/admin/assets/fonts/flag-icon/cn.svg new file mode 100644 index 0000000..a0b5a9f --- /dev/null +++ b/public/admin/assets/fonts/flag-icon/cn.svg @@ -0,0 +1,11 @@ + + + + + + + + + + + diff --git a/public/admin/assets/fonts/flag-icon/co.svg b/public/admin/assets/fonts/flag-icon/co.svg new file mode 100644 index 0000000..cf8d10d --- /dev/null +++ b/public/admin/assets/fonts/flag-icon/co.svg @@ -0,0 +1,7 @@ + + + + + + + diff --git a/public/admin/assets/fonts/flag-icon/cr.svg b/public/admin/assets/fonts/flag-icon/cr.svg new file mode 100644 index 0000000..577bb3a --- /dev/null +++ b/public/admin/assets/fonts/flag-icon/cr.svg @@ -0,0 +1,7 @@ + + + + + + + diff --git a/public/admin/assets/fonts/flag-icon/cu.svg b/public/admin/assets/fonts/flag-icon/cu.svg new file mode 100644 index 0000000..7a5bef6 --- /dev/null +++ b/public/admin/assets/fonts/flag-icon/cu.svg @@ -0,0 +1,13 @@ + + + + + + + + + + + + + diff --git a/public/admin/assets/fonts/flag-icon/cv.svg b/public/admin/assets/fonts/flag-icon/cv.svg new file mode 100644 index 0000000..3da4ec6 --- /dev/null +++ b/public/admin/assets/fonts/flag-icon/cv.svg @@ -0,0 +1,13 @@ + + + + + + + + + + + + + diff --git a/public/admin/assets/fonts/flag-icon/cw.svg b/public/admin/assets/fonts/flag-icon/cw.svg new file mode 100644 index 0000000..8e0e3a9 --- /dev/null +++ b/public/admin/assets/fonts/flag-icon/cw.svg @@ -0,0 +1,14 @@ + + + + + + + + + + + + + + diff --git a/public/admin/assets/fonts/flag-icon/cx.svg b/public/admin/assets/fonts/flag-icon/cx.svg new file mode 100644 index 0000000..fa75dbc --- /dev/null +++ b/public/admin/assets/fonts/flag-icon/cx.svg @@ -0,0 +1,15 @@ + + + + + + + + + + + + + + + diff --git a/public/admin/assets/fonts/flag-icon/cy.svg b/public/admin/assets/fonts/flag-icon/cy.svg new file mode 100644 index 0000000..550f772 --- /dev/null +++ b/public/admin/assets/fonts/flag-icon/cy.svg @@ -0,0 +1,6 @@ + + + + + + diff --git a/public/admin/assets/fonts/flag-icon/cz.svg b/public/admin/assets/fonts/flag-icon/cz.svg new file mode 100644 index 0000000..38c771a --- /dev/null +++ b/public/admin/assets/fonts/flag-icon/cz.svg @@ -0,0 +1,12 @@ + + + + + + + + + + + + diff --git a/public/admin/assets/fonts/flag-icon/de.svg b/public/admin/assets/fonts/flag-icon/de.svg new file mode 100644 index 0000000..8ad697b --- /dev/null +++ b/public/admin/assets/fonts/flag-icon/de.svg @@ -0,0 +1,5 @@ + + + + + diff --git a/public/admin/assets/fonts/flag-icon/dj.svg b/public/admin/assets/fonts/flag-icon/dj.svg new file mode 100644 index 0000000..df7982e --- /dev/null +++ b/public/admin/assets/fonts/flag-icon/dj.svg @@ -0,0 +1,13 @@ + + + + + + + + + + + + + diff --git a/public/admin/assets/fonts/flag-icon/dk.svg b/public/admin/assets/fonts/flag-icon/dk.svg new file mode 100644 index 0000000..f87e51c --- /dev/null +++ b/public/admin/assets/fonts/flag-icon/dk.svg @@ -0,0 +1,5 @@ + + + + + diff --git a/public/admin/assets/fonts/flag-icon/dm.svg b/public/admin/assets/fonts/flag-icon/dm.svg new file mode 100644 index 0000000..e711547 --- /dev/null +++ b/public/admin/assets/fonts/flag-icon/dm.svg @@ -0,0 +1,152 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/public/admin/assets/fonts/flag-icon/do.svg b/public/admin/assets/fonts/flag-icon/do.svg new file mode 100644 index 0000000..e6dae47 --- /dev/null +++ b/public/admin/assets/fonts/flag-icon/do.svg @@ -0,0 +1,6745 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/public/admin/assets/fonts/flag-icon/dz.svg b/public/admin/assets/fonts/flag-icon/dz.svg new file mode 100644 index 0000000..46c3f1b --- /dev/null +++ b/public/admin/assets/fonts/flag-icon/dz.svg @@ -0,0 +1,5 @@ + + + + + diff --git a/public/admin/assets/fonts/flag-icon/ec.svg b/public/admin/assets/fonts/flag-icon/ec.svg new file mode 100644 index 0000000..bdcb01c --- /dev/null +++ b/public/admin/assets/fonts/flag-icon/ec.svg @@ -0,0 +1,141 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/public/admin/assets/fonts/flag-icon/ee.svg b/public/admin/assets/fonts/flag-icon/ee.svg new file mode 100644 index 0000000..acf8973 --- /dev/null +++ b/public/admin/assets/fonts/flag-icon/ee.svg @@ -0,0 +1,7 @@ + + + + + + + diff --git a/public/admin/assets/fonts/flag-icon/eg.svg b/public/admin/assets/fonts/flag-icon/eg.svg new file mode 100644 index 0000000..c16152c --- /dev/null +++ b/public/admin/assets/fonts/flag-icon/eg.svg @@ -0,0 +1,38 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/public/admin/assets/fonts/flag-icon/eh.svg b/public/admin/assets/fonts/flag-icon/eh.svg new file mode 100644 index 0000000..f7f8c72 --- /dev/null +++ b/public/admin/assets/fonts/flag-icon/eh.svg @@ -0,0 +1,15 @@ + + + + + + + + + + + + + + + diff --git a/public/admin/assets/fonts/flag-icon/er.svg b/public/admin/assets/fonts/flag-icon/er.svg new file mode 100644 index 0000000..59b5892 --- /dev/null +++ b/public/admin/assets/fonts/flag-icon/er.svg @@ -0,0 +1,8 @@ + + + + + + + + diff --git a/public/admin/assets/fonts/flag-icon/es-ct.svg b/public/admin/assets/fonts/flag-icon/es-ct.svg new file mode 100644 index 0000000..c4d3988 --- /dev/null +++ b/public/admin/assets/fonts/flag-icon/es-ct.svg @@ -0,0 +1,4 @@ + + + + diff --git a/public/admin/assets/fonts/flag-icon/es.svg b/public/admin/assets/fonts/flag-icon/es.svg new file mode 100644 index 0000000..1daebba --- /dev/null +++ b/public/admin/assets/fonts/flag-icon/es.svg @@ -0,0 +1,581 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/public/admin/assets/fonts/flag-icon/et.svg b/public/admin/assets/fonts/flag-icon/et.svg new file mode 100644 index 0000000..757461b --- /dev/null +++ b/public/admin/assets/fonts/flag-icon/et.svg @@ -0,0 +1,14 @@ + + + + + + + + + + + + + + diff --git a/public/admin/assets/fonts/flag-icon/eu.svg b/public/admin/assets/fonts/flag-icon/eu.svg new file mode 100644 index 0000000..34366c3 --- /dev/null +++ b/public/admin/assets/fonts/flag-icon/eu.svg @@ -0,0 +1,28 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/public/admin/assets/fonts/flag-icon/fi.svg b/public/admin/assets/fonts/flag-icon/fi.svg new file mode 100644 index 0000000..2181976 --- /dev/null +++ b/public/admin/assets/fonts/flag-icon/fi.svg @@ -0,0 +1,5 @@ + + + + + diff --git a/public/admin/assets/fonts/flag-icon/fj.svg b/public/admin/assets/fonts/flag-icon/fj.svg new file mode 100644 index 0000000..a1447d4 --- /dev/null +++ b/public/admin/assets/fonts/flag-icon/fj.svg @@ -0,0 +1,124 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/public/admin/assets/fonts/flag-icon/fk.svg b/public/admin/assets/fonts/flag-icon/fk.svg new file mode 100644 index 0000000..575c1f0 --- /dev/null +++ b/public/admin/assets/fonts/flag-icon/fk.svg @@ -0,0 +1,90 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/public/admin/assets/fonts/flag-icon/fm.svg b/public/admin/assets/fonts/flag-icon/fm.svg new file mode 100644 index 0000000..60e2cdb --- /dev/null +++ b/public/admin/assets/fonts/flag-icon/fm.svg @@ -0,0 +1,11 @@ + + + + + + + + + + + diff --git a/public/admin/assets/fonts/flag-icon/fo.svg b/public/admin/assets/fonts/flag-icon/fo.svg new file mode 100644 index 0000000..3ae340d --- /dev/null +++ b/public/admin/assets/fonts/flag-icon/fo.svg @@ -0,0 +1,12 @@ + + + + + + + + + + + + diff --git a/public/admin/assets/fonts/flag-icon/fr.svg b/public/admin/assets/fonts/flag-icon/fr.svg new file mode 100644 index 0000000..067ccf1 --- /dev/null +++ b/public/admin/assets/fonts/flag-icon/fr.svg @@ -0,0 +1,7 @@ + + + + + + + diff --git a/public/admin/assets/fonts/flag-icon/ga.svg b/public/admin/assets/fonts/flag-icon/ga.svg new file mode 100644 index 0000000..4bee0f7 --- /dev/null +++ b/public/admin/assets/fonts/flag-icon/ga.svg @@ -0,0 +1,7 @@ + + + + + + + diff --git a/public/admin/assets/fonts/flag-icon/gb-eng.svg b/public/admin/assets/fonts/flag-icon/gb-eng.svg new file mode 100644 index 0000000..3b7acad --- /dev/null +++ b/public/admin/assets/fonts/flag-icon/gb-eng.svg @@ -0,0 +1,5 @@ + + + + + diff --git a/public/admin/assets/fonts/flag-icon/gb-nir.svg b/public/admin/assets/fonts/flag-icon/gb-nir.svg new file mode 100644 index 0000000..d70b53a --- /dev/null +++ b/public/admin/assets/fonts/flag-icon/gb-nir.svg @@ -0,0 +1,137 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/public/admin/assets/fonts/flag-icon/gb-sct.svg b/public/admin/assets/fonts/flag-icon/gb-sct.svg new file mode 100644 index 0000000..f6ff5ab --- /dev/null +++ b/public/admin/assets/fonts/flag-icon/gb-sct.svg @@ -0,0 +1,4 @@ + + + + diff --git a/public/admin/assets/fonts/flag-icon/gb-wls.svg b/public/admin/assets/fonts/flag-icon/gb-wls.svg new file mode 100644 index 0000000..f6a2155 --- /dev/null +++ b/public/admin/assets/fonts/flag-icon/gb-wls.svg @@ -0,0 +1,9 @@ + + + + + + + + + diff --git a/public/admin/assets/fonts/flag-icon/gb.svg b/public/admin/assets/fonts/flag-icon/gb.svg new file mode 100644 index 0000000..1631bd1 --- /dev/null +++ b/public/admin/assets/fonts/flag-icon/gb.svg @@ -0,0 +1,15 @@ + + + + + + + + + + + + + + + diff --git a/public/admin/assets/fonts/flag-icon/gd.svg b/public/admin/assets/fonts/flag-icon/gd.svg new file mode 100644 index 0000000..1e7c14f --- /dev/null +++ b/public/admin/assets/fonts/flag-icon/gd.svg @@ -0,0 +1,27 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/public/admin/assets/fonts/flag-icon/ge.svg b/public/admin/assets/fonts/flag-icon/ge.svg new file mode 100644 index 0000000..a3777f4 --- /dev/null +++ b/public/admin/assets/fonts/flag-icon/ge.svg @@ -0,0 +1,6 @@ + + + + + + diff --git a/public/admin/assets/fonts/flag-icon/gf.svg b/public/admin/assets/fonts/flag-icon/gf.svg new file mode 100644 index 0000000..0f2307c --- /dev/null +++ b/public/admin/assets/fonts/flag-icon/gf.svg @@ -0,0 +1,5 @@ + + + + + diff --git a/public/admin/assets/fonts/flag-icon/gg.svg b/public/admin/assets/fonts/flag-icon/gg.svg new file mode 100644 index 0000000..9a2efb8 --- /dev/null +++ b/public/admin/assets/fonts/flag-icon/gg.svg @@ -0,0 +1,9 @@ + + + + + + + + + diff --git a/public/admin/assets/fonts/flag-icon/gh.svg b/public/admin/assets/fonts/flag-icon/gh.svg new file mode 100644 index 0000000..e3fc096 --- /dev/null +++ b/public/admin/assets/fonts/flag-icon/gh.svg @@ -0,0 +1,6 @@ + + + + + + diff --git a/public/admin/assets/fonts/flag-icon/gi.svg b/public/admin/assets/fonts/flag-icon/gi.svg new file mode 100644 index 0000000..b4f138f --- /dev/null +++ b/public/admin/assets/fonts/flag-icon/gi.svg @@ -0,0 +1,33 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/public/admin/assets/fonts/flag-icon/gl.svg b/public/admin/assets/fonts/flag-icon/gl.svg new file mode 100644 index 0000000..62187a7 --- /dev/null +++ b/public/admin/assets/fonts/flag-icon/gl.svg @@ -0,0 +1,4 @@ + + + + diff --git a/public/admin/assets/fonts/flag-icon/gm.svg b/public/admin/assets/fonts/flag-icon/gm.svg new file mode 100644 index 0000000..3643bce --- /dev/null +++ b/public/admin/assets/fonts/flag-icon/gm.svg @@ -0,0 +1,14 @@ + + + + + + + + + + + + + + diff --git a/public/admin/assets/fonts/flag-icon/gn.svg b/public/admin/assets/fonts/flag-icon/gn.svg new file mode 100644 index 0000000..d5d920c --- /dev/null +++ b/public/admin/assets/fonts/flag-icon/gn.svg @@ -0,0 +1,7 @@ + + + + + + + diff --git a/public/admin/assets/fonts/flag-icon/gp.svg b/public/admin/assets/fonts/flag-icon/gp.svg new file mode 100644 index 0000000..d2edf7f --- /dev/null +++ b/public/admin/assets/fonts/flag-icon/gp.svg @@ -0,0 +1,7 @@ + + + + + + + diff --git a/public/admin/assets/fonts/flag-icon/gq.svg b/public/admin/assets/fonts/flag-icon/gq.svg new file mode 100644 index 0000000..5afacc0 --- /dev/null +++ b/public/admin/assets/fonts/flag-icon/gq.svg @@ -0,0 +1,23 @@ + + + + + + + + + + + + + + + + + + + + + + + diff --git a/public/admin/assets/fonts/flag-icon/gr.svg b/public/admin/assets/fonts/flag-icon/gr.svg new file mode 100644 index 0000000..341c148 --- /dev/null +++ b/public/admin/assets/fonts/flag-icon/gr.svg @@ -0,0 +1,22 @@ + + + + + + + + + + + + + + + + + + + + + + diff --git a/public/admin/assets/fonts/flag-icon/gs.svg b/public/admin/assets/fonts/flag-icon/gs.svg new file mode 100644 index 0000000..b061300 --- /dev/null +++ b/public/admin/assets/fonts/flag-icon/gs.svg @@ -0,0 +1,205 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + L + + + E + + + O + + + T + + + E + + + R + + + R + + + R + + + R + + + R + + + E + + + O + + + O + + + A + + + A + + + A + + + M + + + P + + + P + + + P + + + I + + + T + + + T + + + M + + + G + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/public/admin/assets/fonts/flag-icon/gt.svg b/public/admin/assets/fonts/flag-icon/gt.svg new file mode 100644 index 0000000..180fb18 --- /dev/null +++ b/public/admin/assets/fonts/flag-icon/gt.svg @@ -0,0 +1,204 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/public/admin/assets/fonts/flag-icon/gu.svg b/public/admin/assets/fonts/flag-icon/gu.svg new file mode 100644 index 0000000..a755adf --- /dev/null +++ b/public/admin/assets/fonts/flag-icon/gu.svg @@ -0,0 +1,39 @@ + + + + + + + + + + + G + + + U + + + A + + + M + + + + + + + + G + + + U + + + A + + + M + + diff --git a/public/admin/assets/fonts/flag-icon/gw.svg b/public/admin/assets/fonts/flag-icon/gw.svg new file mode 100644 index 0000000..f1d296d --- /dev/null +++ b/public/admin/assets/fonts/flag-icon/gw.svg @@ -0,0 +1,13 @@ + + + + + + + + + + + + + diff --git a/public/admin/assets/fonts/flag-icon/gy.svg b/public/admin/assets/fonts/flag-icon/gy.svg new file mode 100644 index 0000000..ed87454 --- /dev/null +++ b/public/admin/assets/fonts/flag-icon/gy.svg @@ -0,0 +1,9 @@ + + + + + + + + + diff --git a/public/admin/assets/fonts/flag-icon/hk.svg b/public/admin/assets/fonts/flag-icon/hk.svg new file mode 100644 index 0000000..d971134 --- /dev/null +++ b/public/admin/assets/fonts/flag-icon/hk.svg @@ -0,0 +1,32 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/public/admin/assets/fonts/flag-icon/hm.svg b/public/admin/assets/fonts/flag-icon/hm.svg new file mode 100644 index 0000000..6198750 --- /dev/null +++ b/public/admin/assets/fonts/flag-icon/hm.svg @@ -0,0 +1,9 @@ + + + + + + + + + diff --git a/public/admin/assets/fonts/flag-icon/hn.svg b/public/admin/assets/fonts/flag-icon/hn.svg new file mode 100644 index 0000000..7e13fc9 --- /dev/null +++ b/public/admin/assets/fonts/flag-icon/hn.svg @@ -0,0 +1,18 @@ + + + + + + + + + + + + + + + + + + diff --git a/public/admin/assets/fonts/flag-icon/hr.svg b/public/admin/assets/fonts/flag-icon/hr.svg new file mode 100644 index 0000000..d389962 --- /dev/null +++ b/public/admin/assets/fonts/flag-icon/hr.svg @@ -0,0 +1,59 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/public/admin/assets/fonts/flag-icon/ht.svg b/public/admin/assets/fonts/flag-icon/ht.svg new file mode 100644 index 0000000..466c169 --- /dev/null +++ b/public/admin/assets/fonts/flag-icon/ht.svg @@ -0,0 +1,122 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/public/admin/assets/fonts/flag-icon/hu.svg b/public/admin/assets/fonts/flag-icon/hu.svg new file mode 100644 index 0000000..08bac4a --- /dev/null +++ b/public/admin/assets/fonts/flag-icon/hu.svg @@ -0,0 +1,7 @@ + + + + + + + diff --git a/public/admin/assets/fonts/flag-icon/id.svg b/public/admin/assets/fonts/flag-icon/id.svg new file mode 100644 index 0000000..4c2dd7c --- /dev/null +++ b/public/admin/assets/fonts/flag-icon/id.svg @@ -0,0 +1,6 @@ + + + + + + diff --git a/public/admin/assets/fonts/flag-icon/ie.svg b/public/admin/assets/fonts/flag-icon/ie.svg new file mode 100644 index 0000000..c4350ac --- /dev/null +++ b/public/admin/assets/fonts/flag-icon/ie.svg @@ -0,0 +1,7 @@ + + + + + + + diff --git a/public/admin/assets/fonts/flag-icon/il.svg b/public/admin/assets/fonts/flag-icon/il.svg new file mode 100644 index 0000000..b710608 --- /dev/null +++ b/public/admin/assets/fonts/flag-icon/il.svg @@ -0,0 +1,14 @@ + + + + + + + + + + + + + + diff --git a/public/admin/assets/fonts/flag-icon/im.svg b/public/admin/assets/fonts/flag-icon/im.svg new file mode 100644 index 0000000..1248bf5 --- /dev/null +++ b/public/admin/assets/fonts/flag-icon/im.svg @@ -0,0 +1,36 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/public/admin/assets/fonts/flag-icon/in.svg b/public/admin/assets/fonts/flag-icon/in.svg new file mode 100644 index 0000000..26b977e --- /dev/null +++ b/public/admin/assets/fonts/flag-icon/in.svg @@ -0,0 +1,25 @@ + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/public/admin/assets/fonts/flag-icon/io.svg b/public/admin/assets/fonts/flag-icon/io.svg new file mode 100644 index 0000000..24df1e5 --- /dev/null +++ b/public/admin/assets/fonts/flag-icon/io.svg @@ -0,0 +1,148 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/public/admin/assets/fonts/flag-icon/iq.svg b/public/admin/assets/fonts/flag-icon/iq.svg new file mode 100644 index 0000000..572965e --- /dev/null +++ b/public/admin/assets/fonts/flag-icon/iq.svg @@ -0,0 +1,10 @@ + + + + + + + + + + diff --git a/public/admin/assets/fonts/flag-icon/ir.svg b/public/admin/assets/fonts/flag-icon/ir.svg new file mode 100644 index 0000000..a692edd --- /dev/null +++ b/public/admin/assets/fonts/flag-icon/ir.svg @@ -0,0 +1,219 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/public/admin/assets/fonts/flag-icon/is.svg b/public/admin/assets/fonts/flag-icon/is.svg new file mode 100644 index 0000000..30768f3 --- /dev/null +++ b/public/admin/assets/fonts/flag-icon/is.svg @@ -0,0 +1,12 @@ + + + + + + + + + + + + diff --git a/public/admin/assets/fonts/flag-icon/it.svg b/public/admin/assets/fonts/flag-icon/it.svg new file mode 100644 index 0000000..16f9990 --- /dev/null +++ b/public/admin/assets/fonts/flag-icon/it.svg @@ -0,0 +1,7 @@ + + + + + + + diff --git a/public/admin/assets/fonts/flag-icon/je.svg b/public/admin/assets/fonts/flag-icon/je.svg new file mode 100644 index 0000000..3c73e6a --- /dev/null +++ b/public/admin/assets/fonts/flag-icon/je.svg @@ -0,0 +1,32 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/public/admin/assets/fonts/flag-icon/jm.svg b/public/admin/assets/fonts/flag-icon/jm.svg new file mode 100644 index 0000000..d8e71eb --- /dev/null +++ b/public/admin/assets/fonts/flag-icon/jm.svg @@ -0,0 +1,8 @@ + + + + + + + + diff --git a/public/admin/assets/fonts/flag-icon/jo.svg b/public/admin/assets/fonts/flag-icon/jo.svg new file mode 100644 index 0000000..2dbf831 --- /dev/null +++ b/public/admin/assets/fonts/flag-icon/jo.svg @@ -0,0 +1,16 @@ + + + + + + + + + + + + + + + + diff --git a/public/admin/assets/fonts/flag-icon/jp.svg b/public/admin/assets/fonts/flag-icon/jp.svg new file mode 100644 index 0000000..a941b5f --- /dev/null +++ b/public/admin/assets/fonts/flag-icon/jp.svg @@ -0,0 +1,11 @@ + + + + + + + + + + + diff --git a/public/admin/assets/fonts/flag-icon/ke.svg b/public/admin/assets/fonts/flag-icon/ke.svg new file mode 100644 index 0000000..7cb4b97 --- /dev/null +++ b/public/admin/assets/fonts/flag-icon/ke.svg @@ -0,0 +1,23 @@ + + + + + + + + + + + + + + + + + + + + + + + diff --git a/public/admin/assets/fonts/flag-icon/kg.svg b/public/admin/assets/fonts/flag-icon/kg.svg new file mode 100644 index 0000000..124f609 --- /dev/null +++ b/public/admin/assets/fonts/flag-icon/kg.svg @@ -0,0 +1,15 @@ + + + + + + + + + + + + + + + diff --git a/public/admin/assets/fonts/flag-icon/kh.svg b/public/admin/assets/fonts/flag-icon/kh.svg new file mode 100644 index 0000000..4ff9683 --- /dev/null +++ b/public/admin/assets/fonts/flag-icon/kh.svg @@ -0,0 +1,69 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/public/admin/assets/fonts/flag-icon/ki.svg b/public/admin/assets/fonts/flag-icon/ki.svg new file mode 100644 index 0000000..7a4e04f --- /dev/null +++ b/public/admin/assets/fonts/flag-icon/ki.svg @@ -0,0 +1,36 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/public/admin/assets/fonts/flag-icon/km.svg b/public/admin/assets/fonts/flag-icon/km.svg new file mode 100644 index 0000000..ba66ae5 --- /dev/null +++ b/public/admin/assets/fonts/flag-icon/km.svg @@ -0,0 +1,16 @@ + + + + + + + + + + + + + + + + diff --git a/public/admin/assets/fonts/flag-icon/kn.svg b/public/admin/assets/fonts/flag-icon/kn.svg new file mode 100644 index 0000000..57aa904 --- /dev/null +++ b/public/admin/assets/fonts/flag-icon/kn.svg @@ -0,0 +1,14 @@ + + + + + + + + + + + + + + diff --git a/public/admin/assets/fonts/flag-icon/kp.svg b/public/admin/assets/fonts/flag-icon/kp.svg new file mode 100644 index 0000000..69fdf83 --- /dev/null +++ b/public/admin/assets/fonts/flag-icon/kp.svg @@ -0,0 +1,15 @@ + + + + + + + + + + + + + + + diff --git a/public/admin/assets/fonts/flag-icon/kr.svg b/public/admin/assets/fonts/flag-icon/kr.svg new file mode 100644 index 0000000..4092ca5 --- /dev/null +++ b/public/admin/assets/fonts/flag-icon/kr.svg @@ -0,0 +1,24 @@ + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/public/admin/assets/fonts/flag-icon/kw.svg b/public/admin/assets/fonts/flag-icon/kw.svg new file mode 100644 index 0000000..1e3525f --- /dev/null +++ b/public/admin/assets/fonts/flag-icon/kw.svg @@ -0,0 +1,13 @@ + + + + + + + + + + + + + diff --git a/public/admin/assets/fonts/flag-icon/ky.svg b/public/admin/assets/fonts/flag-icon/ky.svg new file mode 100644 index 0000000..4fff27b --- /dev/null +++ b/public/admin/assets/fonts/flag-icon/ky.svg @@ -0,0 +1,63 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/public/admin/assets/fonts/flag-icon/kz.svg b/public/admin/assets/fonts/flag-icon/kz.svg new file mode 100644 index 0000000..c89c084 --- /dev/null +++ b/public/admin/assets/fonts/flag-icon/kz.svg @@ -0,0 +1,23 @@ + + + + + + + + + + + + + + + + + + + + + + + diff --git a/public/admin/assets/fonts/flag-icon/la.svg b/public/admin/assets/fonts/flag-icon/la.svg new file mode 100644 index 0000000..b36a9f6 --- /dev/null +++ b/public/admin/assets/fonts/flag-icon/la.svg @@ -0,0 +1,12 @@ + + + + + + + + + + + + diff --git a/public/admin/assets/fonts/flag-icon/lb.svg b/public/admin/assets/fonts/flag-icon/lb.svg new file mode 100644 index 0000000..f9d1432 --- /dev/null +++ b/public/admin/assets/fonts/flag-icon/lb.svg @@ -0,0 +1,15 @@ + + + + + + + + + + + + + + + diff --git a/public/admin/assets/fonts/flag-icon/lc.svg b/public/admin/assets/fonts/flag-icon/lc.svg new file mode 100644 index 0000000..2e4ea2c --- /dev/null +++ b/public/admin/assets/fonts/flag-icon/lc.svg @@ -0,0 +1,8 @@ + + + + + + + + diff --git a/public/admin/assets/fonts/flag-icon/li.svg b/public/admin/assets/fonts/flag-icon/li.svg new file mode 100644 index 0000000..1e50250 --- /dev/null +++ b/public/admin/assets/fonts/flag-icon/li.svg @@ -0,0 +1,43 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/public/admin/assets/fonts/flag-icon/lk.svg b/public/admin/assets/fonts/flag-icon/lk.svg new file mode 100644 index 0000000..431a473 --- /dev/null +++ b/public/admin/assets/fonts/flag-icon/lk.svg @@ -0,0 +1,22 @@ + + + + + + + + + + + + + + + + + + + + + + diff --git a/public/admin/assets/fonts/flag-icon/lr.svg b/public/admin/assets/fonts/flag-icon/lr.svg new file mode 100644 index 0000000..9f86be1 --- /dev/null +++ b/public/admin/assets/fonts/flag-icon/lr.svg @@ -0,0 +1,14 @@ + + + + + + + + + + + + + + diff --git a/public/admin/assets/fonts/flag-icon/ls.svg b/public/admin/assets/fonts/flag-icon/ls.svg new file mode 100644 index 0000000..26bfda4 --- /dev/null +++ b/public/admin/assets/fonts/flag-icon/ls.svg @@ -0,0 +1,8 @@ + + + + + + + + diff --git a/public/admin/assets/fonts/flag-icon/lt.svg b/public/admin/assets/fonts/flag-icon/lt.svg new file mode 100644 index 0000000..a55b622 --- /dev/null +++ b/public/admin/assets/fonts/flag-icon/lt.svg @@ -0,0 +1,7 @@ + + + + + + + diff --git a/public/admin/assets/fonts/flag-icon/lu.svg b/public/admin/assets/fonts/flag-icon/lu.svg new file mode 100644 index 0000000..d33baed --- /dev/null +++ b/public/admin/assets/fonts/flag-icon/lu.svg @@ -0,0 +1,5 @@ + + + + + diff --git a/public/admin/assets/fonts/flag-icon/lv.svg b/public/admin/assets/fonts/flag-icon/lv.svg new file mode 100644 index 0000000..31e8897 --- /dev/null +++ b/public/admin/assets/fonts/flag-icon/lv.svg @@ -0,0 +1,6 @@ + + + + + + diff --git a/public/admin/assets/fonts/flag-icon/ly.svg b/public/admin/assets/fonts/flag-icon/ly.svg new file mode 100644 index 0000000..5eda3bf --- /dev/null +++ b/public/admin/assets/fonts/flag-icon/ly.svg @@ -0,0 +1,13 @@ + + + + + + + + + + + + + diff --git a/public/admin/assets/fonts/flag-icon/ma.svg b/public/admin/assets/fonts/flag-icon/ma.svg new file mode 100644 index 0000000..4f462c0 --- /dev/null +++ b/public/admin/assets/fonts/flag-icon/ma.svg @@ -0,0 +1,4 @@ + + + + diff --git a/public/admin/assets/fonts/flag-icon/mc.svg b/public/admin/assets/fonts/flag-icon/mc.svg new file mode 100644 index 0000000..041f83b --- /dev/null +++ b/public/admin/assets/fonts/flag-icon/mc.svg @@ -0,0 +1,6 @@ + + + + + + diff --git a/public/admin/assets/fonts/flag-icon/md.svg b/public/admin/assets/fonts/flag-icon/md.svg new file mode 100644 index 0000000..d532fe9 --- /dev/null +++ b/public/admin/assets/fonts/flag-icon/md.svg @@ -0,0 +1,72 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/public/admin/assets/fonts/flag-icon/me.svg b/public/admin/assets/fonts/flag-icon/me.svg new file mode 100644 index 0000000..d3b80ef --- /dev/null +++ b/public/admin/assets/fonts/flag-icon/me.svg @@ -0,0 +1,118 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/public/admin/assets/fonts/flag-icon/mf.svg b/public/admin/assets/fonts/flag-icon/mf.svg new file mode 100644 index 0000000..0a0f8f7 --- /dev/null +++ b/public/admin/assets/fonts/flag-icon/mf.svg @@ -0,0 +1,7 @@ + + + + + + + diff --git a/public/admin/assets/fonts/flag-icon/mg.svg b/public/admin/assets/fonts/flag-icon/mg.svg new file mode 100644 index 0000000..dfdb3a3 --- /dev/null +++ b/public/admin/assets/fonts/flag-icon/mg.svg @@ -0,0 +1,7 @@ + + + + + + + diff --git a/public/admin/assets/fonts/flag-icon/mh.svg b/public/admin/assets/fonts/flag-icon/mh.svg new file mode 100644 index 0000000..b417ea7 --- /dev/null +++ b/public/admin/assets/fonts/flag-icon/mh.svg @@ -0,0 +1,7 @@ + + + + + + + diff --git a/public/admin/assets/fonts/flag-icon/mk.svg b/public/admin/assets/fonts/flag-icon/mk.svg new file mode 100644 index 0000000..98f1e0f --- /dev/null +++ b/public/admin/assets/fonts/flag-icon/mk.svg @@ -0,0 +1,5 @@ + + + + + diff --git a/public/admin/assets/fonts/flag-icon/ml.svg b/public/admin/assets/fonts/flag-icon/ml.svg new file mode 100644 index 0000000..25c3d7d --- /dev/null +++ b/public/admin/assets/fonts/flag-icon/ml.svg @@ -0,0 +1,7 @@ + + + + + + + diff --git a/public/admin/assets/fonts/flag-icon/mm.svg b/public/admin/assets/fonts/flag-icon/mm.svg new file mode 100644 index 0000000..95929db --- /dev/null +++ b/public/admin/assets/fonts/flag-icon/mm.svg @@ -0,0 +1,16 @@ + + + + + + + + + + + + + + + + diff --git a/public/admin/assets/fonts/flag-icon/mn.svg b/public/admin/assets/fonts/flag-icon/mn.svg new file mode 100644 index 0000000..21562cc --- /dev/null +++ b/public/admin/assets/fonts/flag-icon/mn.svg @@ -0,0 +1,13 @@ + + + + + + + + + + + + + diff --git a/public/admin/assets/fonts/flag-icon/mo.svg b/public/admin/assets/fonts/flag-icon/mo.svg new file mode 100644 index 0000000..f59193d --- /dev/null +++ b/public/admin/assets/fonts/flag-icon/mo.svg @@ -0,0 +1,9 @@ + + + + + + + + + diff --git a/public/admin/assets/fonts/flag-icon/mp.svg b/public/admin/assets/fonts/flag-icon/mp.svg new file mode 100644 index 0000000..64a2f99 --- /dev/null +++ b/public/admin/assets/fonts/flag-icon/mp.svg @@ -0,0 +1,86 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/public/admin/assets/fonts/flag-icon/mq.svg b/public/admin/assets/fonts/flag-icon/mq.svg new file mode 100644 index 0000000..6672fef --- /dev/null +++ b/public/admin/assets/fonts/flag-icon/mq.svg @@ -0,0 +1,7 @@ + + + + + + + diff --git a/public/admin/assets/fonts/flag-icon/mr.svg b/public/admin/assets/fonts/flag-icon/mr.svg new file mode 100644 index 0000000..71b5a53 --- /dev/null +++ b/public/admin/assets/fonts/flag-icon/mr.svg @@ -0,0 +1,6 @@ + + + + + + diff --git a/public/admin/assets/fonts/flag-icon/ms.svg b/public/admin/assets/fonts/flag-icon/ms.svg new file mode 100644 index 0000000..8d71cea --- /dev/null +++ b/public/admin/assets/fonts/flag-icon/ms.svg @@ -0,0 +1,39 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/public/admin/assets/fonts/flag-icon/mt.svg b/public/admin/assets/fonts/flag-icon/mt.svg new file mode 100644 index 0000000..6a3b9f7 --- /dev/null +++ b/public/admin/assets/fonts/flag-icon/mt.svg @@ -0,0 +1,49 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/public/admin/assets/fonts/flag-icon/mu.svg b/public/admin/assets/fonts/flag-icon/mu.svg new file mode 100644 index 0000000..1c3f77a --- /dev/null +++ b/public/admin/assets/fonts/flag-icon/mu.svg @@ -0,0 +1,8 @@ + + + + + + + + diff --git a/public/admin/assets/fonts/flag-icon/mv.svg b/public/admin/assets/fonts/flag-icon/mv.svg new file mode 100644 index 0000000..013e11b --- /dev/null +++ b/public/admin/assets/fonts/flag-icon/mv.svg @@ -0,0 +1,6 @@ + + + + + + diff --git a/public/admin/assets/fonts/flag-icon/mw.svg b/public/admin/assets/fonts/flag-icon/mw.svg new file mode 100644 index 0000000..a3abb80 --- /dev/null +++ b/public/admin/assets/fonts/flag-icon/mw.svg @@ -0,0 +1,10 @@ + + + + + + + + + + diff --git a/public/admin/assets/fonts/flag-icon/mx.svg b/public/admin/assets/fonts/flag-icon/mx.svg new file mode 100644 index 0000000..a89a08b --- /dev/null +++ b/public/admin/assets/fonts/flag-icon/mx.svg @@ -0,0 +1,385 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/public/admin/assets/fonts/flag-icon/my.svg b/public/admin/assets/fonts/flag-icon/my.svg new file mode 100644 index 0000000..35979ce --- /dev/null +++ b/public/admin/assets/fonts/flag-icon/my.svg @@ -0,0 +1,15 @@ + + + + + + + + + + + + + + + diff --git a/public/admin/assets/fonts/flag-icon/mz.svg b/public/admin/assets/fonts/flag-icon/mz.svg new file mode 100644 index 0000000..c618ea4 --- /dev/null +++ b/public/admin/assets/fonts/flag-icon/mz.svg @@ -0,0 +1,21 @@ + + + + + + + + + + + + + + + + + + + + + diff --git a/public/admin/assets/fonts/flag-icon/na.svg b/public/admin/assets/fonts/flag-icon/na.svg new file mode 100644 index 0000000..896b0f8 --- /dev/null +++ b/public/admin/assets/fonts/flag-icon/na.svg @@ -0,0 +1,16 @@ + + + + + + + + + + + + + + + + diff --git a/public/admin/assets/fonts/flag-icon/nc.svg b/public/admin/assets/fonts/flag-icon/nc.svg new file mode 100644 index 0000000..3c2c077 --- /dev/null +++ b/public/admin/assets/fonts/flag-icon/nc.svg @@ -0,0 +1,7 @@ + + + + + + + diff --git a/public/admin/assets/fonts/flag-icon/ne.svg b/public/admin/assets/fonts/flag-icon/ne.svg new file mode 100644 index 0000000..84b6617 --- /dev/null +++ b/public/admin/assets/fonts/flag-icon/ne.svg @@ -0,0 +1,6 @@ + + + + + + diff --git a/public/admin/assets/fonts/flag-icon/nf.svg b/public/admin/assets/fonts/flag-icon/nf.svg new file mode 100644 index 0000000..42a9f33 --- /dev/null +++ b/public/admin/assets/fonts/flag-icon/nf.svg @@ -0,0 +1,9 @@ + + + + + + + + + diff --git a/public/admin/assets/fonts/flag-icon/ng.svg b/public/admin/assets/fonts/flag-icon/ng.svg new file mode 100644 index 0000000..f9edc2f --- /dev/null +++ b/public/admin/assets/fonts/flag-icon/ng.svg @@ -0,0 +1,6 @@ + + + + + + diff --git a/public/admin/assets/fonts/flag-icon/ni.svg b/public/admin/assets/fonts/flag-icon/ni.svg new file mode 100644 index 0000000..f1b5775 --- /dev/null +++ b/public/admin/assets/fonts/flag-icon/ni.svg @@ -0,0 +1,131 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/public/admin/assets/fonts/flag-icon/nl.svg b/public/admin/assets/fonts/flag-icon/nl.svg new file mode 100644 index 0000000..a92d2f6 --- /dev/null +++ b/public/admin/assets/fonts/flag-icon/nl.svg @@ -0,0 +1,7 @@ + + + + + + + diff --git a/public/admin/assets/fonts/flag-icon/no.svg b/public/admin/assets/fonts/flag-icon/no.svg new file mode 100644 index 0000000..82c1881 --- /dev/null +++ b/public/admin/assets/fonts/flag-icon/no.svg @@ -0,0 +1,7 @@ + + + + + + + diff --git a/public/admin/assets/fonts/flag-icon/np.svg b/public/admin/assets/fonts/flag-icon/np.svg new file mode 100644 index 0000000..4397e3c --- /dev/null +++ b/public/admin/assets/fonts/flag-icon/np.svg @@ -0,0 +1,14 @@ + + + + + + + + + + + + + + diff --git a/public/admin/assets/fonts/flag-icon/nr.svg b/public/admin/assets/fonts/flag-icon/nr.svg new file mode 100644 index 0000000..8c20fd1 --- /dev/null +++ b/public/admin/assets/fonts/flag-icon/nr.svg @@ -0,0 +1,12 @@ + + + + + + + + + + + + diff --git a/public/admin/assets/fonts/flag-icon/nu.svg b/public/admin/assets/fonts/flag-icon/nu.svg new file mode 100644 index 0000000..794f6e8 --- /dev/null +++ b/public/admin/assets/fonts/flag-icon/nu.svg @@ -0,0 +1,26 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/public/admin/assets/fonts/flag-icon/nz.svg b/public/admin/assets/fonts/flag-icon/nz.svg new file mode 100644 index 0000000..18051a4 --- /dev/null +++ b/public/admin/assets/fonts/flag-icon/nz.svg @@ -0,0 +1,41 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/public/admin/assets/fonts/flag-icon/om.svg b/public/admin/assets/fonts/flag-icon/om.svg new file mode 100644 index 0000000..8554825 --- /dev/null +++ b/public/admin/assets/fonts/flag-icon/om.svg @@ -0,0 +1,116 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/public/admin/assets/fonts/flag-icon/pa.svg b/public/admin/assets/fonts/flag-icon/pa.svg new file mode 100644 index 0000000..677a15c --- /dev/null +++ b/public/admin/assets/fonts/flag-icon/pa.svg @@ -0,0 +1,14 @@ + + + + + + + + + + + + + + diff --git a/public/admin/assets/fonts/flag-icon/pe.svg b/public/admin/assets/fonts/flag-icon/pe.svg new file mode 100644 index 0000000..cc3e3ba --- /dev/null +++ b/public/admin/assets/fonts/flag-icon/pe.svg @@ -0,0 +1,279 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/public/admin/assets/fonts/flag-icon/pf.svg b/public/admin/assets/fonts/flag-icon/pf.svg new file mode 100644 index 0000000..e05c3c2 --- /dev/null +++ b/public/admin/assets/fonts/flag-icon/pf.svg @@ -0,0 +1,19 @@ + + + + + + + + + + + + + + + + + + + diff --git a/public/admin/assets/fonts/flag-icon/pg.svg b/public/admin/assets/fonts/flag-icon/pg.svg new file mode 100644 index 0000000..4991d50 --- /dev/null +++ b/public/admin/assets/fonts/flag-icon/pg.svg @@ -0,0 +1,9 @@ + + + + + + + + + diff --git a/public/admin/assets/fonts/flag-icon/ph.svg b/public/admin/assets/fonts/flag-icon/ph.svg new file mode 100644 index 0000000..5d593a2 --- /dev/null +++ b/public/admin/assets/fonts/flag-icon/ph.svg @@ -0,0 +1,28 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/public/admin/assets/fonts/flag-icon/pk.svg b/public/admin/assets/fonts/flag-icon/pk.svg new file mode 100644 index 0000000..0fac8ab --- /dev/null +++ b/public/admin/assets/fonts/flag-icon/pk.svg @@ -0,0 +1,15 @@ + + + + + + + + + + + + + + + diff --git a/public/admin/assets/fonts/flag-icon/pl.svg b/public/admin/assets/fonts/flag-icon/pl.svg new file mode 100644 index 0000000..8befa5f --- /dev/null +++ b/public/admin/assets/fonts/flag-icon/pl.svg @@ -0,0 +1,6 @@ + + + + + + diff --git a/public/admin/assets/fonts/flag-icon/pm.svg b/public/admin/assets/fonts/flag-icon/pm.svg new file mode 100644 index 0000000..ad549a5 --- /dev/null +++ b/public/admin/assets/fonts/flag-icon/pm.svg @@ -0,0 +1,7 @@ + + + + + + + diff --git a/public/admin/assets/fonts/flag-icon/pn.svg b/public/admin/assets/fonts/flag-icon/pn.svg new file mode 100644 index 0000000..46a3caa --- /dev/null +++ b/public/admin/assets/fonts/flag-icon/pn.svg @@ -0,0 +1,62 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/public/admin/assets/fonts/flag-icon/pr.svg b/public/admin/assets/fonts/flag-icon/pr.svg new file mode 100644 index 0000000..2a2f7e0 --- /dev/null +++ b/public/admin/assets/fonts/flag-icon/pr.svg @@ -0,0 +1,13 @@ + + + + + + + + + + + + + diff --git a/public/admin/assets/fonts/flag-icon/ps.svg b/public/admin/assets/fonts/flag-icon/ps.svg new file mode 100644 index 0000000..3367d16 --- /dev/null +++ b/public/admin/assets/fonts/flag-icon/ps.svg @@ -0,0 +1,15 @@ + + + + + + + + + + + + + + + diff --git a/public/admin/assets/fonts/flag-icon/pt.svg b/public/admin/assets/fonts/flag-icon/pt.svg new file mode 100644 index 0000000..8abcd3d --- /dev/null +++ b/public/admin/assets/fonts/flag-icon/pt.svg @@ -0,0 +1,57 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/public/admin/assets/fonts/flag-icon/pw.svg b/public/admin/assets/fonts/flag-icon/pw.svg new file mode 100644 index 0000000..ec9b8ed --- /dev/null +++ b/public/admin/assets/fonts/flag-icon/pw.svg @@ -0,0 +1,11 @@ + + + + + + + + + + + diff --git a/public/admin/assets/fonts/flag-icon/py.svg b/public/admin/assets/fonts/flag-icon/py.svg new file mode 100644 index 0000000..3c2d99d --- /dev/null +++ b/public/admin/assets/fonts/flag-icon/py.svg @@ -0,0 +1,157 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/public/admin/assets/fonts/flag-icon/qa.svg b/public/admin/assets/fonts/flag-icon/qa.svg new file mode 100644 index 0000000..279a232 --- /dev/null +++ b/public/admin/assets/fonts/flag-icon/qa.svg @@ -0,0 +1,4 @@ + + + + diff --git a/public/admin/assets/fonts/flag-icon/re.svg b/public/admin/assets/fonts/flag-icon/re.svg new file mode 100644 index 0000000..adceb6d --- /dev/null +++ b/public/admin/assets/fonts/flag-icon/re.svg @@ -0,0 +1,7 @@ + + + + + + + diff --git a/public/admin/assets/fonts/flag-icon/ro.svg b/public/admin/assets/fonts/flag-icon/ro.svg new file mode 100644 index 0000000..94ea358 --- /dev/null +++ b/public/admin/assets/fonts/flag-icon/ro.svg @@ -0,0 +1,7 @@ + + + + + + + diff --git a/public/admin/assets/fonts/flag-icon/rs.svg b/public/admin/assets/fonts/flag-icon/rs.svg new file mode 100644 index 0000000..441f1f7 --- /dev/null +++ b/public/admin/assets/fonts/flag-icon/rs.svg @@ -0,0 +1,292 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/public/admin/assets/fonts/flag-icon/ru.svg b/public/admin/assets/fonts/flag-icon/ru.svg new file mode 100644 index 0000000..74a1e98 --- /dev/null +++ b/public/admin/assets/fonts/flag-icon/ru.svg @@ -0,0 +1,7 @@ + + + + + + + diff --git a/public/admin/assets/fonts/flag-icon/rw.svg b/public/admin/assets/fonts/flag-icon/rw.svg new file mode 100644 index 0000000..aa267c9 --- /dev/null +++ b/public/admin/assets/fonts/flag-icon/rw.svg @@ -0,0 +1,13 @@ + + + + + + + + + + + + + diff --git a/public/admin/assets/fonts/flag-icon/sa.svg b/public/admin/assets/fonts/flag-icon/sa.svg new file mode 100644 index 0000000..3b144ab --- /dev/null +++ b/public/admin/assets/fonts/flag-icon/sa.svg @@ -0,0 +1,26 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/public/admin/assets/fonts/flag-icon/sb.svg b/public/admin/assets/fonts/flag-icon/sb.svg new file mode 100644 index 0000000..ad8559f --- /dev/null +++ b/public/admin/assets/fonts/flag-icon/sb.svg @@ -0,0 +1,13 @@ + + + + + + + + + + + + + diff --git a/public/admin/assets/fonts/flag-icon/sc.svg b/public/admin/assets/fonts/flag-icon/sc.svg new file mode 100644 index 0000000..3c35a79 --- /dev/null +++ b/public/admin/assets/fonts/flag-icon/sc.svg @@ -0,0 +1,14 @@ + + + + + + + + + + + + + + diff --git a/public/admin/assets/fonts/flag-icon/sd.svg b/public/admin/assets/fonts/flag-icon/sd.svg new file mode 100644 index 0000000..26a1612 --- /dev/null +++ b/public/admin/assets/fonts/flag-icon/sd.svg @@ -0,0 +1,13 @@ + + + + + + + + + + + + + diff --git a/public/admin/assets/fonts/flag-icon/se.svg b/public/admin/assets/fonts/flag-icon/se.svg new file mode 100644 index 0000000..1f166c2 --- /dev/null +++ b/public/admin/assets/fonts/flag-icon/se.svg @@ -0,0 +1,16 @@ + + + + + + + + + + + + + + + + diff --git a/public/admin/assets/fonts/flag-icon/sg.svg b/public/admin/assets/fonts/flag-icon/sg.svg new file mode 100644 index 0000000..267b694 --- /dev/null +++ b/public/admin/assets/fonts/flag-icon/sg.svg @@ -0,0 +1,13 @@ + + + + + + + + + + + + + diff --git a/public/admin/assets/fonts/flag-icon/sh.svg b/public/admin/assets/fonts/flag-icon/sh.svg new file mode 100644 index 0000000..f0bf35d --- /dev/null +++ b/public/admin/assets/fonts/flag-icon/sh.svg @@ -0,0 +1,74 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/public/admin/assets/fonts/flag-icon/si.svg b/public/admin/assets/fonts/flag-icon/si.svg new file mode 100644 index 0000000..ba3c869 --- /dev/null +++ b/public/admin/assets/fonts/flag-icon/si.svg @@ -0,0 +1,18 @@ + + + + + + + + + + + + + + + + + + diff --git a/public/admin/assets/fonts/flag-icon/sj.svg b/public/admin/assets/fonts/flag-icon/sj.svg new file mode 100644 index 0000000..a416687 --- /dev/null +++ b/public/admin/assets/fonts/flag-icon/sj.svg @@ -0,0 +1,7 @@ + + + + + + + diff --git a/public/admin/assets/fonts/flag-icon/sk.svg b/public/admin/assets/fonts/flag-icon/sk.svg new file mode 100644 index 0000000..57f54e6 --- /dev/null +++ b/public/admin/assets/fonts/flag-icon/sk.svg @@ -0,0 +1,9 @@ + + + + + + + + + diff --git a/public/admin/assets/fonts/flag-icon/sl.svg b/public/admin/assets/fonts/flag-icon/sl.svg new file mode 100644 index 0000000..dc76d7d --- /dev/null +++ b/public/admin/assets/fonts/flag-icon/sl.svg @@ -0,0 +1,7 @@ + + + + + + + diff --git a/public/admin/assets/fonts/flag-icon/sm.svg b/public/admin/assets/fonts/flag-icon/sm.svg new file mode 100644 index 0000000..699c197 --- /dev/null +++ b/public/admin/assets/fonts/flag-icon/sm.svg @@ -0,0 +1,91 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + L + + + I + + + B + + + E + + + R + + + T + + + A + + + S + + + + diff --git a/public/admin/assets/fonts/flag-icon/sn.svg b/public/admin/assets/fonts/flag-icon/sn.svg new file mode 100644 index 0000000..4fac770 --- /dev/null +++ b/public/admin/assets/fonts/flag-icon/sn.svg @@ -0,0 +1,8 @@ + + + + + + + + diff --git a/public/admin/assets/fonts/flag-icon/so.svg b/public/admin/assets/fonts/flag-icon/so.svg new file mode 100644 index 0000000..8f633a4 --- /dev/null +++ b/public/admin/assets/fonts/flag-icon/so.svg @@ -0,0 +1,11 @@ + + + + + + + + + + + diff --git a/public/admin/assets/fonts/flag-icon/sr.svg b/public/admin/assets/fonts/flag-icon/sr.svg new file mode 100644 index 0000000..7b0e787 --- /dev/null +++ b/public/admin/assets/fonts/flag-icon/sr.svg @@ -0,0 +1,6 @@ + + + + + + diff --git a/public/admin/assets/fonts/flag-icon/ss.svg b/public/admin/assets/fonts/flag-icon/ss.svg new file mode 100644 index 0000000..61543f6 --- /dev/null +++ b/public/admin/assets/fonts/flag-icon/ss.svg @@ -0,0 +1,8 @@ + + + + + + + + diff --git a/public/admin/assets/fonts/flag-icon/st.svg b/public/admin/assets/fonts/flag-icon/st.svg new file mode 100644 index 0000000..6740e25 --- /dev/null +++ b/public/admin/assets/fonts/flag-icon/st.svg @@ -0,0 +1,16 @@ + + + + + + + + + + + + + + + + diff --git a/public/admin/assets/fonts/flag-icon/sv.svg b/public/admin/assets/fonts/flag-icon/sv.svg new file mode 100644 index 0000000..422ed47 --- /dev/null +++ b/public/admin/assets/fonts/flag-icon/sv.svg @@ -0,0 +1,618 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/public/admin/assets/fonts/flag-icon/sx.svg b/public/admin/assets/fonts/flag-icon/sx.svg new file mode 100644 index 0000000..a91334c --- /dev/null +++ b/public/admin/assets/fonts/flag-icon/sx.svg @@ -0,0 +1,56 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/public/admin/assets/fonts/flag-icon/sy.svg b/public/admin/assets/fonts/flag-icon/sy.svg new file mode 100644 index 0000000..56f0d5c --- /dev/null +++ b/public/admin/assets/fonts/flag-icon/sy.svg @@ -0,0 +1,6 @@ + + + + + + diff --git a/public/admin/assets/fonts/flag-icon/sz.svg b/public/admin/assets/fonts/flag-icon/sz.svg new file mode 100644 index 0000000..b33393a --- /dev/null +++ b/public/admin/assets/fonts/flag-icon/sz.svg @@ -0,0 +1,45 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/public/admin/assets/fonts/flag-icon/tc.svg b/public/admin/assets/fonts/flag-icon/tc.svg new file mode 100644 index 0000000..db15b3f --- /dev/null +++ b/public/admin/assets/fonts/flag-icon/tc.svg @@ -0,0 +1,67 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/public/admin/assets/fonts/flag-icon/td.svg b/public/admin/assets/fonts/flag-icon/td.svg new file mode 100644 index 0000000..5a7de24 --- /dev/null +++ b/public/admin/assets/fonts/flag-icon/td.svg @@ -0,0 +1,7 @@ + + + + + + + diff --git a/public/admin/assets/fonts/flag-icon/tf.svg b/public/admin/assets/fonts/flag-icon/tf.svg new file mode 100644 index 0000000..858b900 --- /dev/null +++ b/public/admin/assets/fonts/flag-icon/tf.svg @@ -0,0 +1,15 @@ + + + + + + + + + + + + + + + diff --git a/public/admin/assets/fonts/flag-icon/tg.svg b/public/admin/assets/fonts/flag-icon/tg.svg new file mode 100644 index 0000000..c3d387e --- /dev/null +++ b/public/admin/assets/fonts/flag-icon/tg.svg @@ -0,0 +1,14 @@ + + + + + + + + + + + + + + diff --git a/public/admin/assets/fonts/flag-icon/th.svg b/public/admin/assets/fonts/flag-icon/th.svg new file mode 100644 index 0000000..46e0d85 --- /dev/null +++ b/public/admin/assets/fonts/flag-icon/th.svg @@ -0,0 +1,7 @@ + + + + + + + diff --git a/public/admin/assets/fonts/flag-icon/tj.svg b/public/admin/assets/fonts/flag-icon/tj.svg new file mode 100644 index 0000000..3aded0e --- /dev/null +++ b/public/admin/assets/fonts/flag-icon/tj.svg @@ -0,0 +1,22 @@ + + + + + + + + + + + + + + + + + + + + + + diff --git a/public/admin/assets/fonts/flag-icon/tk.svg b/public/admin/assets/fonts/flag-icon/tk.svg new file mode 100644 index 0000000..e4bcc15 --- /dev/null +++ b/public/admin/assets/fonts/flag-icon/tk.svg @@ -0,0 +1,5 @@ + + + + + diff --git a/public/admin/assets/fonts/flag-icon/tl.svg b/public/admin/assets/fonts/flag-icon/tl.svg new file mode 100644 index 0000000..a4f4a94 --- /dev/null +++ b/public/admin/assets/fonts/flag-icon/tl.svg @@ -0,0 +1,13 @@ + + + + + + + + + + + + + diff --git a/public/admin/assets/fonts/flag-icon/tm.svg b/public/admin/assets/fonts/flag-icon/tm.svg new file mode 100644 index 0000000..ce32067 --- /dev/null +++ b/public/admin/assets/fonts/flag-icon/tm.svg @@ -0,0 +1,213 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/public/admin/assets/fonts/flag-icon/tn.svg b/public/admin/assets/fonts/flag-icon/tn.svg new file mode 100644 index 0000000..7433f95 --- /dev/null +++ b/public/admin/assets/fonts/flag-icon/tn.svg @@ -0,0 +1,13 @@ + + + + + + + + + + + + + diff --git a/public/admin/assets/fonts/flag-icon/to.svg b/public/admin/assets/fonts/flag-icon/to.svg new file mode 100644 index 0000000..3ed7193 --- /dev/null +++ b/public/admin/assets/fonts/flag-icon/to.svg @@ -0,0 +1,10 @@ + + + + + + + + + + diff --git a/public/admin/assets/fonts/flag-icon/tr.svg b/public/admin/assets/fonts/flag-icon/tr.svg new file mode 100644 index 0000000..7acfb1f --- /dev/null +++ b/public/admin/assets/fonts/flag-icon/tr.svg @@ -0,0 +1,8 @@ + + + + + + + + diff --git a/public/admin/assets/fonts/flag-icon/tt.svg b/public/admin/assets/fonts/flag-icon/tt.svg new file mode 100644 index 0000000..456fd2f --- /dev/null +++ b/public/admin/assets/fonts/flag-icon/tt.svg @@ -0,0 +1,5 @@ + + + + + diff --git a/public/admin/assets/fonts/flag-icon/tv.svg b/public/admin/assets/fonts/flag-icon/tv.svg new file mode 100644 index 0000000..2976bc2 --- /dev/null +++ b/public/admin/assets/fonts/flag-icon/tv.svg @@ -0,0 +1,27 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/public/admin/assets/fonts/flag-icon/tw.svg b/public/admin/assets/fonts/flag-icon/tw.svg new file mode 100644 index 0000000..da24938 --- /dev/null +++ b/public/admin/assets/fonts/flag-icon/tw.svg @@ -0,0 +1,14 @@ + + + + + + + + + + + + + + diff --git a/public/admin/assets/fonts/flag-icon/tz.svg b/public/admin/assets/fonts/flag-icon/tz.svg new file mode 100644 index 0000000..14ea0c0 --- /dev/null +++ b/public/admin/assets/fonts/flag-icon/tz.svg @@ -0,0 +1,13 @@ + + + + + + + + + + + + + diff --git a/public/admin/assets/fonts/flag-icon/ua.svg b/public/admin/assets/fonts/flag-icon/ua.svg new file mode 100644 index 0000000..0bf66d5 --- /dev/null +++ b/public/admin/assets/fonts/flag-icon/ua.svg @@ -0,0 +1,6 @@ + + + + + + diff --git a/public/admin/assets/fonts/flag-icon/ug.svg b/public/admin/assets/fonts/flag-icon/ug.svg new file mode 100644 index 0000000..72be917 --- /dev/null +++ b/public/admin/assets/fonts/flag-icon/ug.svg @@ -0,0 +1,30 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/public/admin/assets/fonts/flag-icon/um.svg b/public/admin/assets/fonts/flag-icon/um.svg new file mode 100644 index 0000000..2d00aad --- /dev/null +++ b/public/admin/assets/fonts/flag-icon/um.svg @@ -0,0 +1,23 @@ + + + + + + + + + + + + + + + + + + + + + + + diff --git a/public/admin/assets/fonts/flag-icon/un.svg b/public/admin/assets/fonts/flag-icon/un.svg new file mode 100644 index 0000000..0faec22 --- /dev/null +++ b/public/admin/assets/fonts/flag-icon/un.svg @@ -0,0 +1,16 @@ + + + + + + + + + + + + + + + + diff --git a/public/admin/assets/fonts/flag-icon/us.svg b/public/admin/assets/fonts/flag-icon/us.svg new file mode 100644 index 0000000..b863dba --- /dev/null +++ b/public/admin/assets/fonts/flag-icon/us.svg @@ -0,0 +1,12 @@ + + + + + + + + + + + + diff --git a/public/admin/assets/fonts/flag-icon/uy.svg b/public/admin/assets/fonts/flag-icon/uy.svg new file mode 100644 index 0000000..b111b23 --- /dev/null +++ b/public/admin/assets/fonts/flag-icon/uy.svg @@ -0,0 +1,28 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/public/admin/assets/fonts/flag-icon/uz.svg b/public/admin/assets/fonts/flag-icon/uz.svg new file mode 100644 index 0000000..065c494 --- /dev/null +++ b/public/admin/assets/fonts/flag-icon/uz.svg @@ -0,0 +1,30 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/public/admin/assets/fonts/flag-icon/va.svg b/public/admin/assets/fonts/flag-icon/va.svg new file mode 100644 index 0000000..b80de25 --- /dev/null +++ b/public/admin/assets/fonts/flag-icon/va.svg @@ -0,0 +1,483 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/public/admin/assets/fonts/flag-icon/vc.svg b/public/admin/assets/fonts/flag-icon/vc.svg new file mode 100644 index 0000000..e88b846 --- /dev/null +++ b/public/admin/assets/fonts/flag-icon/vc.svg @@ -0,0 +1,8 @@ + + + + + + + + diff --git a/public/admin/assets/fonts/flag-icon/ve.svg b/public/admin/assets/fonts/flag-icon/ve.svg new file mode 100644 index 0000000..840b7ff --- /dev/null +++ b/public/admin/assets/fonts/flag-icon/ve.svg @@ -0,0 +1,26 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/public/admin/assets/fonts/flag-icon/vg.svg b/public/admin/assets/fonts/flag-icon/vg.svg new file mode 100644 index 0000000..e3ac3e2 --- /dev/null +++ b/public/admin/assets/fonts/flag-icon/vg.svg @@ -0,0 +1,133 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/public/admin/assets/fonts/flag-icon/vi.svg b/public/admin/assets/fonts/flag-icon/vi.svg new file mode 100644 index 0000000..6631d2f --- /dev/null +++ b/public/admin/assets/fonts/flag-icon/vi.svg @@ -0,0 +1,31 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/public/admin/assets/fonts/flag-icon/vn.svg b/public/admin/assets/fonts/flag-icon/vn.svg new file mode 100644 index 0000000..2836b98 --- /dev/null +++ b/public/admin/assets/fonts/flag-icon/vn.svg @@ -0,0 +1,11 @@ + + + + + + + + + + + diff --git a/public/admin/assets/fonts/flag-icon/vu.svg b/public/admin/assets/fonts/flag-icon/vu.svg new file mode 100644 index 0000000..8b552ce --- /dev/null +++ b/public/admin/assets/fonts/flag-icon/vu.svg @@ -0,0 +1,18 @@ + + + + + + + + + + + + + + + + + + diff --git a/public/admin/assets/fonts/flag-icon/wf.svg b/public/admin/assets/fonts/flag-icon/wf.svg new file mode 100644 index 0000000..5c69c5c --- /dev/null +++ b/public/admin/assets/fonts/flag-icon/wf.svg @@ -0,0 +1,7 @@ + + + + + + + diff --git a/public/admin/assets/fonts/flag-icon/ws.svg b/public/admin/assets/fonts/flag-icon/ws.svg new file mode 100644 index 0000000..9bd1ec9 --- /dev/null +++ b/public/admin/assets/fonts/flag-icon/ws.svg @@ -0,0 +1,7 @@ + + + + + + + diff --git a/public/admin/assets/fonts/flag-icon/ye.svg b/public/admin/assets/fonts/flag-icon/ye.svg new file mode 100644 index 0000000..5446357 --- /dev/null +++ b/public/admin/assets/fonts/flag-icon/ye.svg @@ -0,0 +1,7 @@ + + + + + + + diff --git a/public/admin/assets/fonts/flag-icon/yt.svg b/public/admin/assets/fonts/flag-icon/yt.svg new file mode 100644 index 0000000..e68b27d --- /dev/null +++ b/public/admin/assets/fonts/flag-icon/yt.svg @@ -0,0 +1,7 @@ + + + + + + + diff --git a/public/admin/assets/fonts/flag-icon/za.svg b/public/admin/assets/fonts/flag-icon/za.svg new file mode 100644 index 0000000..6acfae7 --- /dev/null +++ b/public/admin/assets/fonts/flag-icon/za.svg @@ -0,0 +1,17 @@ + + + + + + + + + + + + + + + + + diff --git a/public/admin/assets/fonts/flag-icon/zm.svg b/public/admin/assets/fonts/flag-icon/zm.svg new file mode 100644 index 0000000..167408a --- /dev/null +++ b/public/admin/assets/fonts/flag-icon/zm.svg @@ -0,0 +1,27 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/public/admin/assets/fonts/flag-icon/zw.svg b/public/admin/assets/fonts/flag-icon/zw.svg new file mode 100644 index 0000000..3adb272 --- /dev/null +++ b/public/admin/assets/fonts/flag-icon/zw.svg @@ -0,0 +1,21 @@ + + + + + + + + + + + + + + + + + + + + + diff --git a/public/admin/assets/fonts/font-awesome/fontawesome-webfont3e6e.eot b/public/admin/assets/fonts/font-awesome/fontawesome-webfont3e6e.eot new file mode 100644 index 0000000..e9f60ca Binary files /dev/null and b/public/admin/assets/fonts/font-awesome/fontawesome-webfont3e6e.eot differ diff --git a/public/admin/assets/fonts/font-awesome/fontawesome-webfont3e6e.svg b/public/admin/assets/fonts/font-awesome/fontawesome-webfont3e6e.svg new file mode 100644 index 0000000..855c845 --- /dev/null +++ b/public/admin/assets/fonts/font-awesome/fontawesome-webfont3e6e.svg @@ -0,0 +1,2671 @@ + + + + +Created by FontForge 20120731 at Mon Oct 24 17:37:40 2016 + By ,,, +Copyright Dave Gandy 2016. All rights reserved. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/public/admin/assets/fonts/font-awesome/fontawesome-webfont3e6e.ttf b/public/admin/assets/fonts/font-awesome/fontawesome-webfont3e6e.ttf new file mode 100644 index 0000000..35acda2 Binary files /dev/null and b/public/admin/assets/fonts/font-awesome/fontawesome-webfont3e6e.ttf differ diff --git a/public/admin/assets/fonts/font-awesome/fontawesome-webfont3e6e.woff b/public/admin/assets/fonts/font-awesome/fontawesome-webfont3e6e.woff new file mode 100644 index 0000000..400014a Binary files /dev/null and b/public/admin/assets/fonts/font-awesome/fontawesome-webfont3e6e.woff differ diff --git a/public/admin/assets/fonts/font-awesome/fontawesome-webfont3e6e.woff2 b/public/admin/assets/fonts/font-awesome/fontawesome-webfont3e6e.woff2 new file mode 100644 index 0000000..4d13fc6 Binary files /dev/null and b/public/admin/assets/fonts/font-awesome/fontawesome-webfont3e6e.woff2 differ diff --git a/public/admin/assets/fonts/font-awesome/fontawesome-webfontd41d.eot b/public/admin/assets/fonts/font-awesome/fontawesome-webfontd41d.eot new file mode 100644 index 0000000..e9f60ca Binary files /dev/null and b/public/admin/assets/fonts/font-awesome/fontawesome-webfontd41d.eot differ diff --git a/public/admin/assets/fonts/ico/icofont7858.eot b/public/admin/assets/fonts/ico/icofont7858.eot new file mode 100644 index 0000000..2850a6e Binary files /dev/null and b/public/admin/assets/fonts/ico/icofont7858.eot differ diff --git a/public/admin/assets/fonts/ico/icofont7858.svg b/public/admin/assets/fonts/ico/icofont7858.svg new file mode 100644 index 0000000..1749acb --- /dev/null +++ b/public/admin/assets/fonts/ico/icofont7858.svg @@ -0,0 +1,2116 @@ + + + +Copyright (C) 2016 by IcoFont Project + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/public/admin/assets/fonts/ico/icofont7858.ttf b/public/admin/assets/fonts/ico/icofont7858.ttf new file mode 100644 index 0000000..d194bff Binary files /dev/null and b/public/admin/assets/fonts/ico/icofont7858.ttf differ diff --git a/public/admin/assets/fonts/ico/icofont7858.woff b/public/admin/assets/fonts/ico/icofont7858.woff new file mode 100644 index 0000000..d24bb0f Binary files /dev/null and b/public/admin/assets/fonts/ico/icofont7858.woff differ diff --git a/public/admin/assets/fonts/slick/slick.eot b/public/admin/assets/fonts/slick/slick.eot new file mode 100644 index 0000000..2cbab9c Binary files /dev/null and b/public/admin/assets/fonts/slick/slick.eot differ diff --git a/public/admin/assets/fonts/slick/slick.svg b/public/admin/assets/fonts/slick/slick.svg new file mode 100644 index 0000000..b36a66a --- /dev/null +++ b/public/admin/assets/fonts/slick/slick.svg @@ -0,0 +1,14 @@ + + + +Generated by Fontastic.me + + + + + + + + + + diff --git a/public/admin/assets/fonts/slick/slick.ttf b/public/admin/assets/fonts/slick/slick.ttf new file mode 100644 index 0000000..9d03461 Binary files /dev/null and b/public/admin/assets/fonts/slick/slick.ttf differ diff --git a/public/admin/assets/fonts/slick/slick.woff b/public/admin/assets/fonts/slick/slick.woff new file mode 100644 index 0000000..8ee9972 Binary files /dev/null and b/public/admin/assets/fonts/slick/slick.woff differ diff --git a/public/admin/assets/fonts/slick/slickd41d.eot b/public/admin/assets/fonts/slick/slickd41d.eot new file mode 100644 index 0000000..2cbab9c Binary files /dev/null and b/public/admin/assets/fonts/slick/slickd41d.eot differ diff --git a/public/admin/assets/fonts/summernote/summernote9d3d.eot b/public/admin/assets/fonts/summernote/summernote9d3d.eot new file mode 100644 index 0000000..4f5d02c Binary files /dev/null and b/public/admin/assets/fonts/summernote/summernote9d3d.eot differ diff --git a/public/admin/assets/fonts/summernote/summernote9d3d.ttf b/public/admin/assets/fonts/summernote/summernote9d3d.ttf new file mode 100644 index 0000000..a5976db Binary files /dev/null and b/public/admin/assets/fonts/summernote/summernote9d3d.ttf differ diff --git a/public/admin/assets/fonts/summernote/summernote9d3d.woff b/public/admin/assets/fonts/summernote/summernote9d3d.woff new file mode 100644 index 0000000..6c6dfaa Binary files /dev/null and b/public/admin/assets/fonts/summernote/summernote9d3d.woff differ diff --git a/public/admin/assets/fonts/summernote/summernoted41d.eot b/public/admin/assets/fonts/summernote/summernoted41d.eot new file mode 100644 index 0000000..4f5d02c Binary files /dev/null and b/public/admin/assets/fonts/summernote/summernoted41d.eot differ diff --git a/public/admin/assets/fonts/themify/themify9f24.eot b/public/admin/assets/fonts/themify/themify9f24.eot new file mode 100644 index 0000000..9ec298b Binary files /dev/null and b/public/admin/assets/fonts/themify/themify9f24.eot differ diff --git a/public/admin/assets/fonts/themify/themify9f24.svg b/public/admin/assets/fonts/themify/themify9f24.svg new file mode 100644 index 0000000..3d53854 --- /dev/null +++ b/public/admin/assets/fonts/themify/themify9f24.svg @@ -0,0 +1,362 @@ + + + +Generated by IcoMoon + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/public/admin/assets/fonts/themify/themify9f24.ttf b/public/admin/assets/fonts/themify/themify9f24.ttf new file mode 100644 index 0000000..5d627e7 Binary files /dev/null and b/public/admin/assets/fonts/themify/themify9f24.ttf differ diff --git a/public/admin/assets/fonts/themify/themify9f24.woff b/public/admin/assets/fonts/themify/themify9f24.woff new file mode 100644 index 0000000..847ebd1 Binary files /dev/null and b/public/admin/assets/fonts/themify/themify9f24.woff differ diff --git a/public/admin/assets/fonts/themify/themifyd41d.eot b/public/admin/assets/fonts/themify/themifyd41d.eot new file mode 100644 index 0000000..9ec298b Binary files /dev/null and b/public/admin/assets/fonts/themify/themifyd41d.eot differ diff --git a/public/admin/assets/images/ajax-loader.gif b/public/admin/assets/images/ajax-loader.gif new file mode 100644 index 0000000..e0e6e97 Binary files /dev/null and b/public/admin/assets/images/ajax-loader.gif differ diff --git a/public/admin/assets/images/avtar/11.jpg b/public/admin/assets/images/avtar/11.jpg new file mode 100644 index 0000000..3b806b8 Binary files /dev/null and b/public/admin/assets/images/avtar/11.jpg differ diff --git a/public/admin/assets/images/avtar/16.jpg b/public/admin/assets/images/avtar/16.jpg new file mode 100644 index 0000000..cf5ea6b Binary files /dev/null and b/public/admin/assets/images/avtar/16.jpg differ diff --git a/public/admin/assets/images/avtar/3.jpg b/public/admin/assets/images/avtar/3.jpg new file mode 100644 index 0000000..4a440b9 Binary files /dev/null and b/public/admin/assets/images/avtar/3.jpg differ diff --git a/public/admin/assets/images/banner/1.jpg b/public/admin/assets/images/banner/1.jpg new file mode 100644 index 0000000..449879d Binary files /dev/null and b/public/admin/assets/images/banner/1.jpg differ diff --git a/public/admin/assets/images/banner/2.jpg b/public/admin/assets/images/banner/2.jpg new file mode 100644 index 0000000..449879d Binary files /dev/null and b/public/admin/assets/images/banner/2.jpg differ diff --git a/public/admin/assets/images/banner/3.jpg b/public/admin/assets/images/banner/3.jpg new file mode 100644 index 0000000..449879d Binary files /dev/null and b/public/admin/assets/images/banner/3.jpg differ diff --git a/public/admin/assets/images/big-lightgallry/01.jpg b/public/admin/assets/images/big-lightgallry/01.jpg new file mode 100644 index 0000000..eb134ec Binary files /dev/null and b/public/admin/assets/images/big-lightgallry/01.jpg differ diff --git a/public/admin/assets/images/big-lightgallry/010.jpg b/public/admin/assets/images/big-lightgallry/010.jpg new file mode 100644 index 0000000..eb134ec Binary files /dev/null and b/public/admin/assets/images/big-lightgallry/010.jpg differ diff --git a/public/admin/assets/images/big-lightgallry/011.jpg b/public/admin/assets/images/big-lightgallry/011.jpg new file mode 100644 index 0000000..eb134ec Binary files /dev/null and b/public/admin/assets/images/big-lightgallry/011.jpg differ diff --git a/public/admin/assets/images/big-lightgallry/012.jpg b/public/admin/assets/images/big-lightgallry/012.jpg new file mode 100644 index 0000000..eb134ec Binary files /dev/null and b/public/admin/assets/images/big-lightgallry/012.jpg differ diff --git a/public/admin/assets/images/big-lightgallry/013.jpg b/public/admin/assets/images/big-lightgallry/013.jpg new file mode 100644 index 0000000..eb134ec Binary files /dev/null and b/public/admin/assets/images/big-lightgallry/013.jpg differ diff --git a/public/admin/assets/images/big-lightgallry/014.jpg b/public/admin/assets/images/big-lightgallry/014.jpg new file mode 100644 index 0000000..eb134ec Binary files /dev/null and b/public/admin/assets/images/big-lightgallry/014.jpg differ diff --git a/public/admin/assets/images/big-lightgallry/015.jpg b/public/admin/assets/images/big-lightgallry/015.jpg new file mode 100644 index 0000000..eb134ec Binary files /dev/null and b/public/admin/assets/images/big-lightgallry/015.jpg differ diff --git a/public/admin/assets/images/big-lightgallry/016.jpg b/public/admin/assets/images/big-lightgallry/016.jpg new file mode 100644 index 0000000..eb134ec Binary files /dev/null and b/public/admin/assets/images/big-lightgallry/016.jpg differ diff --git a/public/admin/assets/images/big-lightgallry/02.jpg b/public/admin/assets/images/big-lightgallry/02.jpg new file mode 100644 index 0000000..eb134ec Binary files /dev/null and b/public/admin/assets/images/big-lightgallry/02.jpg differ diff --git a/public/admin/assets/images/big-lightgallry/03.jpg b/public/admin/assets/images/big-lightgallry/03.jpg new file mode 100644 index 0000000..eb134ec Binary files /dev/null and b/public/admin/assets/images/big-lightgallry/03.jpg differ diff --git a/public/admin/assets/images/big-lightgallry/04.jpg b/public/admin/assets/images/big-lightgallry/04.jpg new file mode 100644 index 0000000..eb134ec Binary files /dev/null and b/public/admin/assets/images/big-lightgallry/04.jpg differ diff --git a/public/admin/assets/images/big-lightgallry/05.jpg b/public/admin/assets/images/big-lightgallry/05.jpg new file mode 100644 index 0000000..eb134ec Binary files /dev/null and b/public/admin/assets/images/big-lightgallry/05.jpg differ diff --git a/public/admin/assets/images/big-lightgallry/06.jpg b/public/admin/assets/images/big-lightgallry/06.jpg new file mode 100644 index 0000000..eb134ec Binary files /dev/null and b/public/admin/assets/images/big-lightgallry/06.jpg differ diff --git a/public/admin/assets/images/big-lightgallry/07.jpg b/public/admin/assets/images/big-lightgallry/07.jpg new file mode 100644 index 0000000..eb134ec Binary files /dev/null and b/public/admin/assets/images/big-lightgallry/07.jpg differ diff --git a/public/admin/assets/images/big-lightgallry/08.jpg b/public/admin/assets/images/big-lightgallry/08.jpg new file mode 100644 index 0000000..eb134ec Binary files /dev/null and b/public/admin/assets/images/big-lightgallry/08.jpg differ diff --git a/public/admin/assets/images/big-lightgallry/09.jpg b/public/admin/assets/images/big-lightgallry/09.jpg new file mode 100644 index 0000000..eb134ec Binary files /dev/null and b/public/admin/assets/images/big-lightgallry/09.jpg differ diff --git a/public/admin/assets/images/big-masonry/1.jpg b/public/admin/assets/images/big-masonry/1.jpg new file mode 100644 index 0000000..3c7bfa4 Binary files /dev/null and b/public/admin/assets/images/big-masonry/1.jpg differ diff --git a/public/admin/assets/images/big-masonry/10.jpg b/public/admin/assets/images/big-masonry/10.jpg new file mode 100644 index 0000000..3c7bfa4 Binary files /dev/null and b/public/admin/assets/images/big-masonry/10.jpg differ diff --git a/public/admin/assets/images/big-masonry/11.jpg b/public/admin/assets/images/big-masonry/11.jpg new file mode 100644 index 0000000..3c7bfa4 Binary files /dev/null and b/public/admin/assets/images/big-masonry/11.jpg differ diff --git a/public/admin/assets/images/big-masonry/12.jpg b/public/admin/assets/images/big-masonry/12.jpg new file mode 100644 index 0000000..3c7bfa4 Binary files /dev/null and b/public/admin/assets/images/big-masonry/12.jpg differ diff --git a/public/admin/assets/images/big-masonry/13.jpg b/public/admin/assets/images/big-masonry/13.jpg new file mode 100644 index 0000000..3c7bfa4 Binary files /dev/null and b/public/admin/assets/images/big-masonry/13.jpg differ diff --git a/public/admin/assets/images/big-masonry/14.jpg b/public/admin/assets/images/big-masonry/14.jpg new file mode 100644 index 0000000..3c7bfa4 Binary files /dev/null and b/public/admin/assets/images/big-masonry/14.jpg differ diff --git a/public/admin/assets/images/big-masonry/15.jpg b/public/admin/assets/images/big-masonry/15.jpg new file mode 100644 index 0000000..3c7bfa4 Binary files /dev/null and b/public/admin/assets/images/big-masonry/15.jpg differ diff --git a/public/admin/assets/images/big-masonry/2.jpg b/public/admin/assets/images/big-masonry/2.jpg new file mode 100644 index 0000000..3c7bfa4 Binary files /dev/null and b/public/admin/assets/images/big-masonry/2.jpg differ diff --git a/public/admin/assets/images/big-masonry/3.jpg b/public/admin/assets/images/big-masonry/3.jpg new file mode 100644 index 0000000..3c7bfa4 Binary files /dev/null and b/public/admin/assets/images/big-masonry/3.jpg differ diff --git a/public/admin/assets/images/big-masonry/4.jpg b/public/admin/assets/images/big-masonry/4.jpg new file mode 100644 index 0000000..3c7bfa4 Binary files /dev/null and b/public/admin/assets/images/big-masonry/4.jpg differ diff --git a/public/admin/assets/images/big-masonry/5.jpg b/public/admin/assets/images/big-masonry/5.jpg new file mode 100644 index 0000000..3c7bfa4 Binary files /dev/null and b/public/admin/assets/images/big-masonry/5.jpg differ diff --git a/public/admin/assets/images/big-masonry/6.jpg b/public/admin/assets/images/big-masonry/6.jpg new file mode 100644 index 0000000..3c7bfa4 Binary files /dev/null and b/public/admin/assets/images/big-masonry/6.jpg differ diff --git a/public/admin/assets/images/big-masonry/7.jpg b/public/admin/assets/images/big-masonry/7.jpg new file mode 100644 index 0000000..3c7bfa4 Binary files /dev/null and b/public/admin/assets/images/big-masonry/7.jpg differ diff --git a/public/admin/assets/images/big-masonry/8.jpg b/public/admin/assets/images/big-masonry/8.jpg new file mode 100644 index 0000000..3c7bfa4 Binary files /dev/null and b/public/admin/assets/images/big-masonry/8.jpg differ diff --git a/public/admin/assets/images/big-masonry/9.jpg b/public/admin/assets/images/big-masonry/9.jpg new file mode 100644 index 0000000..3c7bfa4 Binary files /dev/null and b/public/admin/assets/images/big-masonry/9.jpg differ diff --git a/public/admin/assets/images/blog/12.png b/public/admin/assets/images/blog/12.png new file mode 100644 index 0000000..641769c Binary files /dev/null and b/public/admin/assets/images/blog/12.png differ diff --git a/public/admin/assets/images/blog/14.png b/public/admin/assets/images/blog/14.png new file mode 100644 index 0000000..641769c Binary files /dev/null and b/public/admin/assets/images/blog/14.png differ diff --git a/public/admin/assets/images/blog/4.jpg b/public/admin/assets/images/blog/4.jpg new file mode 100644 index 0000000..641769c Binary files /dev/null and b/public/admin/assets/images/blog/4.jpg differ diff --git a/public/admin/assets/images/blog/9.jpg b/public/admin/assets/images/blog/9.jpg new file mode 100644 index 0000000..641769c Binary files /dev/null and b/public/admin/assets/images/blog/9.jpg differ diff --git a/public/admin/assets/images/blog/blog-2.jpg b/public/admin/assets/images/blog/blog-2.jpg new file mode 100644 index 0000000..50349f1 Binary files /dev/null and b/public/admin/assets/images/blog/blog-2.jpg differ diff --git a/public/admin/assets/images/blog/blog-3.jpg b/public/admin/assets/images/blog/blog-3.jpg new file mode 100644 index 0000000..50349f1 Binary files /dev/null and b/public/admin/assets/images/blog/blog-3.jpg differ diff --git a/public/admin/assets/images/blog/blog-5.jpg b/public/admin/assets/images/blog/blog-5.jpg new file mode 100644 index 0000000..87a7bc4 Binary files /dev/null and b/public/admin/assets/images/blog/blog-5.jpg differ diff --git a/public/admin/assets/images/blog/blog-6.jpg b/public/admin/assets/images/blog/blog-6.jpg new file mode 100644 index 0000000..87a7bc4 Binary files /dev/null and b/public/admin/assets/images/blog/blog-6.jpg differ diff --git a/public/admin/assets/images/blog/blog-single.jpg b/public/admin/assets/images/blog/blog-single.jpg new file mode 100644 index 0000000..5380807 Binary files /dev/null and b/public/admin/assets/images/blog/blog-single.jpg differ diff --git a/public/admin/assets/images/blog/blog.jpg b/public/admin/assets/images/blog/blog.jpg new file mode 100644 index 0000000..367e664 Binary files /dev/null and b/public/admin/assets/images/blog/blog.jpg differ diff --git a/public/admin/assets/images/blog/comment.jpg b/public/admin/assets/images/blog/comment.jpg new file mode 100644 index 0000000..3fa60d1 Binary files /dev/null and b/public/admin/assets/images/blog/comment.jpg differ diff --git a/public/admin/assets/images/blog/img.png b/public/admin/assets/images/blog/img.png new file mode 100644 index 0000000..d404130 Binary files /dev/null and b/public/admin/assets/images/blog/img.png differ diff --git a/public/admin/assets/images/button_builder/checkbox-sprite.png b/public/admin/assets/images/button_builder/checkbox-sprite.png new file mode 100644 index 0000000..663f87a Binary files /dev/null and b/public/admin/assets/images/button_builder/checkbox-sprite.png differ diff --git a/public/admin/assets/images/button_builder/colorpicker_overlay.png b/public/admin/assets/images/button_builder/colorpicker_overlay.png new file mode 100644 index 0000000..1a007b5 Binary files /dev/null and b/public/admin/assets/images/button_builder/colorpicker_overlay.png differ diff --git a/public/admin/assets/images/button_builder/colorpicker_select.gif b/public/admin/assets/images/button_builder/colorpicker_select.gif new file mode 100644 index 0000000..10d3ca7 Binary files /dev/null and b/public/admin/assets/images/button_builder/colorpicker_select.gif differ diff --git a/public/admin/assets/images/button_builder/hex_bg.gif b/public/admin/assets/images/button_builder/hex_bg.gif new file mode 100644 index 0000000..dc20f8b Binary files /dev/null and b/public/admin/assets/images/button_builder/hex_bg.gif differ diff --git a/public/admin/assets/images/button_builder/rainbow.png b/public/admin/assets/images/button_builder/rainbow.png new file mode 100644 index 0000000..c047b68 Binary files /dev/null and b/public/admin/assets/images/button_builder/rainbow.png differ diff --git a/public/admin/assets/images/button_builder/scroll.png b/public/admin/assets/images/button_builder/scroll.png new file mode 100644 index 0000000..725bc1b Binary files /dev/null and b/public/admin/assets/images/button_builder/scroll.png differ diff --git a/public/admin/assets/images/button_builder/select.png b/public/admin/assets/images/button_builder/select.png new file mode 100644 index 0000000..8ff91b5 Binary files /dev/null and b/public/admin/assets/images/button_builder/select.png differ diff --git a/public/admin/assets/images/calender/ic-arrow-line-left.png b/public/admin/assets/images/calender/ic-arrow-line-left.png new file mode 100644 index 0000000..0becf5e Binary files /dev/null and b/public/admin/assets/images/calender/ic-arrow-line-left.png differ diff --git a/public/admin/assets/images/calender/ic-arrow-line-right.png b/public/admin/assets/images/calender/ic-arrow-line-right.png new file mode 100644 index 0000000..fd941f8 Binary files /dev/null and b/public/admin/assets/images/calender/ic-arrow-line-right.png differ diff --git a/public/admin/assets/images/calender/ic-traveltime-w.png b/public/admin/assets/images/calender/ic-traveltime-w.png new file mode 100644 index 0000000..db72916 Binary files /dev/null and b/public/admin/assets/images/calender/ic-traveltime-w.png differ diff --git a/public/admin/assets/images/calender/ic-view-day.png b/public/admin/assets/images/calender/ic-view-day.png new file mode 100644 index 0000000..b9450f5 Binary files /dev/null and b/public/admin/assets/images/calender/ic-view-day.png differ diff --git a/public/admin/assets/images/calender/ic-view-month.png b/public/admin/assets/images/calender/ic-view-month.png new file mode 100644 index 0000000..f848b5a Binary files /dev/null and b/public/admin/assets/images/calender/ic-view-month.png differ diff --git a/public/admin/assets/images/calender/ic-view-week.png b/public/admin/assets/images/calender/ic-view-week.png new file mode 100644 index 0000000..b2a18f2 Binary files /dev/null and b/public/admin/assets/images/calender/ic-view-week.png differ diff --git a/public/admin/assets/images/calender/img-bi.png b/public/admin/assets/images/calender/img-bi.png new file mode 100644 index 0000000..afe00c4 Binary files /dev/null and b/public/admin/assets/images/calender/img-bi.png differ diff --git a/public/admin/assets/images/checkout/paypal.png b/public/admin/assets/images/checkout/paypal.png new file mode 100644 index 0000000..e68fe74 Binary files /dev/null and b/public/admin/assets/images/checkout/paypal.png differ diff --git a/public/admin/assets/images/dashboard-2/1.png b/public/admin/assets/images/dashboard-2/1.png new file mode 100644 index 0000000..7b0ffac Binary files /dev/null and b/public/admin/assets/images/dashboard-2/1.png differ diff --git a/public/admin/assets/images/dashboard-2/10.png b/public/admin/assets/images/dashboard-2/10.png new file mode 100644 index 0000000..dce206c Binary files /dev/null and b/public/admin/assets/images/dashboard-2/10.png differ diff --git a/public/admin/assets/images/dashboard-2/11.png b/public/admin/assets/images/dashboard-2/11.png new file mode 100644 index 0000000..fd9a9fd Binary files /dev/null and b/public/admin/assets/images/dashboard-2/11.png differ diff --git a/public/admin/assets/images/dashboard-2/3.png b/public/admin/assets/images/dashboard-2/3.png new file mode 100644 index 0000000..b45b9fa Binary files /dev/null and b/public/admin/assets/images/dashboard-2/3.png differ diff --git a/public/admin/assets/images/dashboard-2/4.png b/public/admin/assets/images/dashboard-2/4.png new file mode 100644 index 0000000..d885f09 Binary files /dev/null and b/public/admin/assets/images/dashboard-2/4.png differ diff --git a/public/admin/assets/images/dashboard-2/5.png b/public/admin/assets/images/dashboard-2/5.png new file mode 100644 index 0000000..e4ad726 Binary files /dev/null and b/public/admin/assets/images/dashboard-2/5.png differ diff --git a/public/admin/assets/images/dashboard-2/6.png b/public/admin/assets/images/dashboard-2/6.png new file mode 100644 index 0000000..a80e9e2 Binary files /dev/null and b/public/admin/assets/images/dashboard-2/6.png differ diff --git a/public/admin/assets/images/dashboard-2/7.png b/public/admin/assets/images/dashboard-2/7.png new file mode 100644 index 0000000..b2a9dac Binary files /dev/null and b/public/admin/assets/images/dashboard-2/7.png differ diff --git a/public/admin/assets/images/dashboard-2/8.png b/public/admin/assets/images/dashboard-2/8.png new file mode 100644 index 0000000..0d95dbc Binary files /dev/null and b/public/admin/assets/images/dashboard-2/8.png differ diff --git a/public/admin/assets/images/dashboard-2/9.png b/public/admin/assets/images/dashboard-2/9.png new file mode 100644 index 0000000..4aceb63 Binary files /dev/null and b/public/admin/assets/images/dashboard-2/9.png differ diff --git a/public/admin/assets/images/dashboard-2/target1.png b/public/admin/assets/images/dashboard-2/target1.png new file mode 100644 index 0000000..1e13bff Binary files /dev/null and b/public/admin/assets/images/dashboard-2/target1.png differ diff --git a/public/admin/assets/images/dashboard/1.png b/public/admin/assets/images/dashboard/1.png new file mode 100644 index 0000000..7faf374 Binary files /dev/null and b/public/admin/assets/images/dashboard/1.png differ diff --git a/public/admin/assets/images/dashboard/bg.jpg b/public/admin/assets/images/dashboard/bg.jpg new file mode 100644 index 0000000..9d0eef8 Binary files /dev/null and b/public/admin/assets/images/dashboard/bg.jpg differ diff --git a/public/admin/assets/images/dashboard/boy-2.png b/public/admin/assets/images/dashboard/boy-2.png new file mode 100644 index 0000000..ccb51df Binary files /dev/null and b/public/admin/assets/images/dashboard/boy-2.png differ diff --git a/public/admin/assets/images/dashboard/chrome.png b/public/admin/assets/images/dashboard/chrome.png new file mode 100644 index 0000000..f2b7006 Binary files /dev/null and b/public/admin/assets/images/dashboard/chrome.png differ diff --git a/public/admin/assets/images/dashboard/firefox.png b/public/admin/assets/images/dashboard/firefox.png new file mode 100644 index 0000000..1036bd1 Binary files /dev/null and b/public/admin/assets/images/dashboard/firefox.png differ diff --git a/public/admin/assets/images/dashboard/folder.png b/public/admin/assets/images/dashboard/folder.png new file mode 100644 index 0000000..9e2e0d9 Binary files /dev/null and b/public/admin/assets/images/dashboard/folder.png differ diff --git a/public/admin/assets/images/dashboard/folder1.png b/public/admin/assets/images/dashboard/folder1.png new file mode 100644 index 0000000..463a8bd Binary files /dev/null and b/public/admin/assets/images/dashboard/folder1.png differ diff --git a/public/admin/assets/images/dashboard/graph-1.png b/public/admin/assets/images/dashboard/graph-1.png new file mode 100644 index 0000000..bcd727d Binary files /dev/null and b/public/admin/assets/images/dashboard/graph-1.png differ diff --git a/public/admin/assets/images/dashboard/graph-2.png b/public/admin/assets/images/dashboard/graph-2.png new file mode 100644 index 0000000..35bc9d6 Binary files /dev/null and b/public/admin/assets/images/dashboard/graph-2.png differ diff --git a/public/admin/assets/images/dashboard/graph-3.png b/public/admin/assets/images/dashboard/graph-3.png new file mode 100644 index 0000000..d5dbe4e Binary files /dev/null and b/public/admin/assets/images/dashboard/graph-3.png differ diff --git a/public/admin/assets/images/dashboard/graph-4.png b/public/admin/assets/images/dashboard/graph-4.png new file mode 100644 index 0000000..ae9b499 Binary files /dev/null and b/public/admin/assets/images/dashboard/graph-4.png differ diff --git a/public/admin/assets/images/dashboard/graph-5.png b/public/admin/assets/images/dashboard/graph-5.png new file mode 100644 index 0000000..61eddaa Binary files /dev/null and b/public/admin/assets/images/dashboard/graph-5.png differ diff --git a/public/admin/assets/images/dashboard/product-1.png b/public/admin/assets/images/dashboard/product-1.png new file mode 100644 index 0000000..7a71960 Binary files /dev/null and b/public/admin/assets/images/dashboard/product-1.png differ diff --git a/public/admin/assets/images/dashboard/product-2.png b/public/admin/assets/images/dashboard/product-2.png new file mode 100644 index 0000000..77b18c4 Binary files /dev/null and b/public/admin/assets/images/dashboard/product-2.png differ diff --git a/public/admin/assets/images/dashboard/product-3.png b/public/admin/assets/images/dashboard/product-3.png new file mode 100644 index 0000000..67d7e33 Binary files /dev/null and b/public/admin/assets/images/dashboard/product-3.png differ diff --git a/public/admin/assets/images/dashboard/product-4.png b/public/admin/assets/images/dashboard/product-4.png new file mode 100644 index 0000000..84d5a6f Binary files /dev/null and b/public/admin/assets/images/dashboard/product-4.png differ diff --git a/public/admin/assets/images/dashboard/product-5.png b/public/admin/assets/images/dashboard/product-5.png new file mode 100644 index 0000000..ed75569 Binary files /dev/null and b/public/admin/assets/images/dashboard/product-5.png differ diff --git a/public/admin/assets/images/dashboard/safari.png b/public/admin/assets/images/dashboard/safari.png new file mode 100644 index 0000000..22ae63e Binary files /dev/null and b/public/admin/assets/images/dashboard/safari.png differ diff --git a/public/admin/assets/images/details_close.png b/public/admin/assets/images/details_close.png new file mode 100644 index 0000000..4ee8728 Binary files /dev/null and b/public/admin/assets/images/details_close.png differ diff --git a/public/admin/assets/images/details_open.png b/public/admin/assets/images/details_open.png new file mode 100644 index 0000000..5284cbb Binary files /dev/null and b/public/admin/assets/images/details_open.png differ diff --git a/public/admin/assets/images/ecommerce/01.jpg b/public/admin/assets/images/ecommerce/01.jpg new file mode 100644 index 0000000..c2b5599 Binary files /dev/null and b/public/admin/assets/images/ecommerce/01.jpg differ diff --git a/public/admin/assets/images/ecommerce/02.jpg b/public/admin/assets/images/ecommerce/02.jpg new file mode 100644 index 0000000..c2b5599 Binary files /dev/null and b/public/admin/assets/images/ecommerce/02.jpg differ diff --git a/public/admin/assets/images/ecommerce/03.jpg b/public/admin/assets/images/ecommerce/03.jpg new file mode 100644 index 0000000..c2b5599 Binary files /dev/null and b/public/admin/assets/images/ecommerce/03.jpg differ diff --git a/public/admin/assets/images/ecommerce/04.jpg b/public/admin/assets/images/ecommerce/04.jpg new file mode 100644 index 0000000..c2b5599 Binary files /dev/null and b/public/admin/assets/images/ecommerce/04.jpg differ diff --git a/public/admin/assets/images/ecommerce/05.jpg b/public/admin/assets/images/ecommerce/05.jpg new file mode 100644 index 0000000..c2b5599 Binary files /dev/null and b/public/admin/assets/images/ecommerce/05.jpg differ diff --git a/public/admin/assets/images/ecommerce/06.jpg b/public/admin/assets/images/ecommerce/06.jpg new file mode 100644 index 0000000..c2b5599 Binary files /dev/null and b/public/admin/assets/images/ecommerce/06.jpg differ diff --git a/public/admin/assets/images/ecommerce/07.jpg b/public/admin/assets/images/ecommerce/07.jpg new file mode 100644 index 0000000..c2b5599 Binary files /dev/null and b/public/admin/assets/images/ecommerce/07.jpg differ diff --git a/public/admin/assets/images/ecommerce/08.jpg b/public/admin/assets/images/ecommerce/08.jpg new file mode 100644 index 0000000..c2b5599 Binary files /dev/null and b/public/admin/assets/images/ecommerce/08.jpg differ diff --git a/public/admin/assets/images/ecommerce/banner.jpg b/public/admin/assets/images/ecommerce/banner.jpg new file mode 100644 index 0000000..238f553 Binary files /dev/null and b/public/admin/assets/images/ecommerce/banner.jpg differ diff --git a/public/admin/assets/images/ecommerce/card.png b/public/admin/assets/images/ecommerce/card.png new file mode 100644 index 0000000..31cbe70 Binary files /dev/null and b/public/admin/assets/images/ecommerce/card.png differ diff --git a/public/admin/assets/images/ecommerce/mastercard.png b/public/admin/assets/images/ecommerce/mastercard.png new file mode 100644 index 0000000..0da23c1 Binary files /dev/null and b/public/admin/assets/images/ecommerce/mastercard.png differ diff --git a/public/admin/assets/images/ecommerce/paypal.png b/public/admin/assets/images/ecommerce/paypal.png new file mode 100644 index 0000000..5baa20c Binary files /dev/null and b/public/admin/assets/images/ecommerce/paypal.png differ diff --git a/public/admin/assets/images/ecommerce/product-table-1.png b/public/admin/assets/images/ecommerce/product-table-1.png new file mode 100644 index 0000000..21c5364 Binary files /dev/null and b/public/admin/assets/images/ecommerce/product-table-1.png differ diff --git a/public/admin/assets/images/ecommerce/product-table-2.png b/public/admin/assets/images/ecommerce/product-table-2.png new file mode 100644 index 0000000..21c5364 Binary files /dev/null and b/public/admin/assets/images/ecommerce/product-table-2.png differ diff --git a/public/admin/assets/images/ecommerce/product-table-3.png b/public/admin/assets/images/ecommerce/product-table-3.png new file mode 100644 index 0000000..21c5364 Binary files /dev/null and b/public/admin/assets/images/ecommerce/product-table-3.png differ diff --git a/public/admin/assets/images/ecommerce/product-table-4.png b/public/admin/assets/images/ecommerce/product-table-4.png new file mode 100644 index 0000000..21c5364 Binary files /dev/null and b/public/admin/assets/images/ecommerce/product-table-4.png differ diff --git a/public/admin/assets/images/ecommerce/product-table-5.png b/public/admin/assets/images/ecommerce/product-table-5.png new file mode 100644 index 0000000..21c5364 Binary files /dev/null and b/public/admin/assets/images/ecommerce/product-table-5.png differ diff --git a/public/admin/assets/images/ecommerce/product-table-6.png b/public/admin/assets/images/ecommerce/product-table-6.png new file mode 100644 index 0000000..21c5364 Binary files /dev/null and b/public/admin/assets/images/ecommerce/product-table-6.png differ diff --git a/public/admin/assets/images/ecommerce/visa.png b/public/admin/assets/images/ecommerce/visa.png new file mode 100644 index 0000000..30b2fd6 Binary files /dev/null and b/public/admin/assets/images/ecommerce/visa.png differ diff --git a/public/admin/assets/images/email-template/1.jpg b/public/admin/assets/images/email-template/1.jpg new file mode 100644 index 0000000..57e9b63 Binary files /dev/null and b/public/admin/assets/images/email-template/1.jpg differ diff --git a/public/admin/assets/images/email-template/1.png b/public/admin/assets/images/email-template/1.png new file mode 100644 index 0000000..aaec7f7 Binary files /dev/null and b/public/admin/assets/images/email-template/1.png differ diff --git a/public/admin/assets/images/email-template/10.jpg b/public/admin/assets/images/email-template/10.jpg new file mode 100644 index 0000000..4d147bb Binary files /dev/null and b/public/admin/assets/images/email-template/10.jpg differ diff --git a/public/admin/assets/images/email-template/11.jpg b/public/admin/assets/images/email-template/11.jpg new file mode 100644 index 0000000..4d147bb Binary files /dev/null and b/public/admin/assets/images/email-template/11.jpg differ diff --git a/public/admin/assets/images/email-template/12.jpg b/public/admin/assets/images/email-template/12.jpg new file mode 100644 index 0000000..4d147bb Binary files /dev/null and b/public/admin/assets/images/email-template/12.jpg differ diff --git a/public/admin/assets/images/email-template/2.png b/public/admin/assets/images/email-template/2.png new file mode 100644 index 0000000..aaec7f7 Binary files /dev/null and b/public/admin/assets/images/email-template/2.png differ diff --git a/public/admin/assets/images/email-template/3.png b/public/admin/assets/images/email-template/3.png new file mode 100644 index 0000000..a24e1d4 Binary files /dev/null and b/public/admin/assets/images/email-template/3.png differ diff --git a/public/admin/assets/images/email-template/4.png b/public/admin/assets/images/email-template/4.png new file mode 100644 index 0000000..3066362 Binary files /dev/null and b/public/admin/assets/images/email-template/4.png differ diff --git a/public/admin/assets/images/email-template/5.png b/public/admin/assets/images/email-template/5.png new file mode 100644 index 0000000..5524384 Binary files /dev/null and b/public/admin/assets/images/email-template/5.png differ diff --git a/public/admin/assets/images/email-template/6.png b/public/admin/assets/images/email-template/6.png new file mode 100644 index 0000000..5524384 Binary files /dev/null and b/public/admin/assets/images/email-template/6.png differ diff --git a/public/admin/assets/images/email-template/7.jpg b/public/admin/assets/images/email-template/7.jpg new file mode 100644 index 0000000..0287e47 Binary files /dev/null and b/public/admin/assets/images/email-template/7.jpg differ diff --git a/public/admin/assets/images/email-template/7.png b/public/admin/assets/images/email-template/7.png new file mode 100644 index 0000000..aaec7f7 Binary files /dev/null and b/public/admin/assets/images/email-template/7.png differ diff --git a/public/admin/assets/images/email-template/8.jpg b/public/admin/assets/images/email-template/8.jpg new file mode 100644 index 0000000..0287e47 Binary files /dev/null and b/public/admin/assets/images/email-template/8.jpg differ diff --git a/public/admin/assets/images/email-template/8.png b/public/admin/assets/images/email-template/8.png new file mode 100644 index 0000000..aaec7f7 Binary files /dev/null and b/public/admin/assets/images/email-template/8.png differ diff --git a/public/admin/assets/images/email-template/banner-2.jpg b/public/admin/assets/images/email-template/banner-2.jpg new file mode 100644 index 0000000..afaa8c3 Binary files /dev/null and b/public/admin/assets/images/email-template/banner-2.jpg differ diff --git a/public/admin/assets/images/email-template/banner.jpg b/public/admin/assets/images/email-template/banner.jpg new file mode 100644 index 0000000..afaa8c3 Binary files /dev/null and b/public/admin/assets/images/email-template/banner.jpg differ diff --git a/public/admin/assets/images/email-template/cosmetic.jpg b/public/admin/assets/images/email-template/cosmetic.jpg new file mode 100644 index 0000000..0678ca1 Binary files /dev/null and b/public/admin/assets/images/email-template/cosmetic.jpg differ diff --git a/public/admin/assets/images/email-template/delivery.png b/public/admin/assets/images/email-template/delivery.png new file mode 100644 index 0000000..938b932 Binary files /dev/null and b/public/admin/assets/images/email-template/delivery.png differ diff --git a/public/admin/assets/images/email-template/slider.jpg b/public/admin/assets/images/email-template/slider.jpg new file mode 100644 index 0000000..5524384 Binary files /dev/null and b/public/admin/assets/images/email-template/slider.jpg differ diff --git a/public/admin/assets/images/email-template/space.jpg b/public/admin/assets/images/email-template/space.jpg new file mode 100644 index 0000000..de38509 Binary files /dev/null and b/public/admin/assets/images/email-template/space.jpg differ diff --git a/public/admin/assets/images/email/1.jpg b/public/admin/assets/images/email/1.jpg new file mode 100644 index 0000000..2177aa5 Binary files /dev/null and b/public/admin/assets/images/email/1.jpg differ diff --git a/public/admin/assets/images/email/2.jpg b/public/admin/assets/images/email/2.jpg new file mode 100644 index 0000000..2177aa5 Binary files /dev/null and b/public/admin/assets/images/email/2.jpg differ diff --git a/public/admin/assets/images/email/3.jpg b/public/admin/assets/images/email/3.jpg new file mode 100644 index 0000000..2177aa5 Binary files /dev/null and b/public/admin/assets/images/email/3.jpg differ diff --git a/public/admin/assets/images/faq/1.jpg b/public/admin/assets/images/faq/1.jpg new file mode 100644 index 0000000..15920bc Binary files /dev/null and b/public/admin/assets/images/faq/1.jpg differ diff --git a/public/admin/assets/images/faq/2.jpg b/public/admin/assets/images/faq/2.jpg new file mode 100644 index 0000000..15920bc Binary files /dev/null and b/public/admin/assets/images/faq/2.jpg differ diff --git a/public/admin/assets/images/faq/3.jpg b/public/admin/assets/images/faq/3.jpg new file mode 100644 index 0000000..15920bc Binary files /dev/null and b/public/admin/assets/images/faq/3.jpg differ diff --git a/public/admin/assets/images/faq/4.jpg b/public/admin/assets/images/faq/4.jpg new file mode 100644 index 0000000..15920bc Binary files /dev/null and b/public/admin/assets/images/faq/4.jpg differ diff --git a/public/admin/assets/images/faq/learning-1.jpg b/public/admin/assets/images/faq/learning-1.jpg new file mode 100644 index 0000000..1b6e49c Binary files /dev/null and b/public/admin/assets/images/faq/learning-1.jpg differ diff --git a/public/admin/assets/images/favicon.png b/public/admin/assets/images/favicon.png new file mode 100644 index 0000000..da4d09c Binary files /dev/null and b/public/admin/assets/images/favicon.png differ diff --git a/public/admin/assets/images/hour.svg b/public/admin/assets/images/hour.svg new file mode 100644 index 0000000..20ac397 --- /dev/null +++ b/public/admin/assets/images/hour.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/public/admin/assets/images/icon-tree.html b/public/admin/assets/images/icon-tree.html new file mode 100644 index 0000000..464fa5f --- /dev/null +++ b/public/admin/assets/images/icon-tree.html @@ -0,0 +1,32 @@ + + + + + + + Not Found + + + + + + +
+
+
+
+ 404
+ +
+ Not Found
+
+
+
+ + diff --git a/public/admin/assets/images/job-search/1.jpg b/public/admin/assets/images/job-search/1.jpg new file mode 100644 index 0000000..e7a6318 Binary files /dev/null and b/public/admin/assets/images/job-search/1.jpg differ diff --git a/public/admin/assets/images/job-search/2.jpg b/public/admin/assets/images/job-search/2.jpg new file mode 100644 index 0000000..f75e311 Binary files /dev/null and b/public/admin/assets/images/job-search/2.jpg differ diff --git a/public/admin/assets/images/job-search/3.jpg b/public/admin/assets/images/job-search/3.jpg new file mode 100644 index 0000000..76afece Binary files /dev/null and b/public/admin/assets/images/job-search/3.jpg differ diff --git a/public/admin/assets/images/job-search/4.jpg b/public/admin/assets/images/job-search/4.jpg new file mode 100644 index 0000000..b86b117 Binary files /dev/null and b/public/admin/assets/images/job-search/4.jpg differ diff --git a/public/admin/assets/images/job-search/5.jpg b/public/admin/assets/images/job-search/5.jpg new file mode 100644 index 0000000..2ab542f Binary files /dev/null and b/public/admin/assets/images/job-search/5.jpg differ diff --git a/public/admin/assets/images/job-search/6.jpg b/public/admin/assets/images/job-search/6.jpg new file mode 100644 index 0000000..e7a6318 Binary files /dev/null and b/public/admin/assets/images/job-search/6.jpg differ diff --git a/public/admin/assets/images/js-grid.png b/public/admin/assets/images/js-grid.png new file mode 100644 index 0000000..bf243ef Binary files /dev/null and b/public/admin/assets/images/js-grid.png differ diff --git a/public/admin/assets/images/knowledgebase/1.jpg b/public/admin/assets/images/knowledgebase/1.jpg new file mode 100644 index 0000000..3dd94bc Binary files /dev/null and b/public/admin/assets/images/knowledgebase/1.jpg differ diff --git a/public/admin/assets/images/knowledgebase/bg_1.jpg b/public/admin/assets/images/knowledgebase/bg_1.jpg new file mode 100644 index 0000000..10dda61 Binary files /dev/null and b/public/admin/assets/images/knowledgebase/bg_1.jpg differ diff --git a/public/admin/assets/images/lightgallry/01.jpg b/public/admin/assets/images/lightgallry/01.jpg new file mode 100644 index 0000000..b366621 Binary files /dev/null and b/public/admin/assets/images/lightgallry/01.jpg differ diff --git a/public/admin/assets/images/lightgallry/010.jpg b/public/admin/assets/images/lightgallry/010.jpg new file mode 100644 index 0000000..b366621 Binary files /dev/null and b/public/admin/assets/images/lightgallry/010.jpg differ diff --git a/public/admin/assets/images/lightgallry/011.jpg b/public/admin/assets/images/lightgallry/011.jpg new file mode 100644 index 0000000..b366621 Binary files /dev/null and b/public/admin/assets/images/lightgallry/011.jpg differ diff --git a/public/admin/assets/images/lightgallry/012.jpg b/public/admin/assets/images/lightgallry/012.jpg new file mode 100644 index 0000000..b366621 Binary files /dev/null and b/public/admin/assets/images/lightgallry/012.jpg differ diff --git a/public/admin/assets/images/lightgallry/013.jpg b/public/admin/assets/images/lightgallry/013.jpg new file mode 100644 index 0000000..b366621 Binary files /dev/null and b/public/admin/assets/images/lightgallry/013.jpg differ diff --git a/public/admin/assets/images/lightgallry/014.jpg b/public/admin/assets/images/lightgallry/014.jpg new file mode 100644 index 0000000..b366621 Binary files /dev/null and b/public/admin/assets/images/lightgallry/014.jpg differ diff --git a/public/admin/assets/images/lightgallry/015.jpg b/public/admin/assets/images/lightgallry/015.jpg new file mode 100644 index 0000000..b366621 Binary files /dev/null and b/public/admin/assets/images/lightgallry/015.jpg differ diff --git a/public/admin/assets/images/lightgallry/016.jpg b/public/admin/assets/images/lightgallry/016.jpg new file mode 100644 index 0000000..b366621 Binary files /dev/null and b/public/admin/assets/images/lightgallry/016.jpg differ diff --git a/public/admin/assets/images/lightgallry/02.jpg b/public/admin/assets/images/lightgallry/02.jpg new file mode 100644 index 0000000..b366621 Binary files /dev/null and b/public/admin/assets/images/lightgallry/02.jpg differ diff --git a/public/admin/assets/images/lightgallry/03.jpg b/public/admin/assets/images/lightgallry/03.jpg new file mode 100644 index 0000000..b366621 Binary files /dev/null and b/public/admin/assets/images/lightgallry/03.jpg differ diff --git a/public/admin/assets/images/lightgallry/04.jpg b/public/admin/assets/images/lightgallry/04.jpg new file mode 100644 index 0000000..b366621 Binary files /dev/null and b/public/admin/assets/images/lightgallry/04.jpg differ diff --git a/public/admin/assets/images/lightgallry/05.jpg b/public/admin/assets/images/lightgallry/05.jpg new file mode 100644 index 0000000..b366621 Binary files /dev/null and b/public/admin/assets/images/lightgallry/05.jpg differ diff --git a/public/admin/assets/images/lightgallry/06.jpg b/public/admin/assets/images/lightgallry/06.jpg new file mode 100644 index 0000000..b366621 Binary files /dev/null and b/public/admin/assets/images/lightgallry/06.jpg differ diff --git a/public/admin/assets/images/lightgallry/07.jpg b/public/admin/assets/images/lightgallry/07.jpg new file mode 100644 index 0000000..b366621 Binary files /dev/null and b/public/admin/assets/images/lightgallry/07.jpg differ diff --git a/public/admin/assets/images/lightgallry/08.jpg b/public/admin/assets/images/lightgallry/08.jpg new file mode 100644 index 0000000..b366621 Binary files /dev/null and b/public/admin/assets/images/lightgallry/08.jpg differ diff --git a/public/admin/assets/images/lightgallry/09.jpg b/public/admin/assets/images/lightgallry/09.jpg new file mode 100644 index 0000000..b366621 Binary files /dev/null and b/public/admin/assets/images/lightgallry/09.jpg differ diff --git a/public/admin/assets/images/lightgallry/default-skin.png b/public/admin/assets/images/lightgallry/default-skin.png new file mode 100644 index 0000000..441c502 Binary files /dev/null and b/public/admin/assets/images/lightgallry/default-skin.png differ diff --git a/public/admin/assets/images/lightgallry/default-skin.svg b/public/admin/assets/images/lightgallry/default-skin.svg new file mode 100644 index 0000000..dee26f6 --- /dev/null +++ b/public/admin/assets/images/lightgallry/default-skin.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/public/admin/assets/images/login/1.jpg b/public/admin/assets/images/login/1.jpg new file mode 100644 index 0000000..ab90fb5 Binary files /dev/null and b/public/admin/assets/images/login/1.jpg differ diff --git a/public/admin/assets/images/login/2.jpg b/public/admin/assets/images/login/2.jpg new file mode 100644 index 0000000..c2822dc Binary files /dev/null and b/public/admin/assets/images/login/2.jpg differ diff --git a/public/admin/assets/images/login/3.jpg b/public/admin/assets/images/login/3.jpg new file mode 100644 index 0000000..7619db3 Binary files /dev/null and b/public/admin/assets/images/login/3.jpg differ diff --git a/public/admin/assets/images/logo/dark-logo.png b/public/admin/assets/images/logo/dark-logo.png new file mode 100644 index 0000000..de38ff8 Binary files /dev/null and b/public/admin/assets/images/logo/dark-logo.png differ diff --git a/public/admin/assets/images/logo/logo-1.png b/public/admin/assets/images/logo/logo-1.png new file mode 100644 index 0000000..f3e31ee Binary files /dev/null and b/public/admin/assets/images/logo/logo-1.png differ diff --git a/public/admin/assets/images/logo/logo.png b/public/admin/assets/images/logo/logo.png new file mode 100644 index 0000000..c1140a2 Binary files /dev/null and b/public/admin/assets/images/logo/logo.png differ diff --git a/public/admin/assets/images/masonry/1.jpg b/public/admin/assets/images/masonry/1.jpg new file mode 100644 index 0000000..ec41a6f Binary files /dev/null and b/public/admin/assets/images/masonry/1.jpg differ diff --git a/public/admin/assets/images/masonry/10.jpg b/public/admin/assets/images/masonry/10.jpg new file mode 100644 index 0000000..db9278a Binary files /dev/null and b/public/admin/assets/images/masonry/10.jpg differ diff --git a/public/admin/assets/images/masonry/11.jpg b/public/admin/assets/images/masonry/11.jpg new file mode 100644 index 0000000..3b83936 Binary files /dev/null and b/public/admin/assets/images/masonry/11.jpg differ diff --git a/public/admin/assets/images/masonry/12.jpg b/public/admin/assets/images/masonry/12.jpg new file mode 100644 index 0000000..2c43efa Binary files /dev/null and b/public/admin/assets/images/masonry/12.jpg differ diff --git a/public/admin/assets/images/masonry/13.jpg b/public/admin/assets/images/masonry/13.jpg new file mode 100644 index 0000000..3b83936 Binary files /dev/null and b/public/admin/assets/images/masonry/13.jpg differ diff --git a/public/admin/assets/images/masonry/14.jpg b/public/admin/assets/images/masonry/14.jpg new file mode 100644 index 0000000..2c43efa Binary files /dev/null and b/public/admin/assets/images/masonry/14.jpg differ diff --git a/public/admin/assets/images/masonry/15.jpg b/public/admin/assets/images/masonry/15.jpg new file mode 100644 index 0000000..50bb156 Binary files /dev/null and b/public/admin/assets/images/masonry/15.jpg differ diff --git a/public/admin/assets/images/masonry/2.jpg b/public/admin/assets/images/masonry/2.jpg new file mode 100644 index 0000000..2c43efa Binary files /dev/null and b/public/admin/assets/images/masonry/2.jpg differ diff --git a/public/admin/assets/images/masonry/3.jpg b/public/admin/assets/images/masonry/3.jpg new file mode 100644 index 0000000..0d9f02f Binary files /dev/null and b/public/admin/assets/images/masonry/3.jpg differ diff --git a/public/admin/assets/images/masonry/4.jpg b/public/admin/assets/images/masonry/4.jpg new file mode 100644 index 0000000..2c43efa Binary files /dev/null and b/public/admin/assets/images/masonry/4.jpg differ diff --git a/public/admin/assets/images/masonry/5.jpg b/public/admin/assets/images/masonry/5.jpg new file mode 100644 index 0000000..03c2ae8 Binary files /dev/null and b/public/admin/assets/images/masonry/5.jpg differ diff --git a/public/admin/assets/images/masonry/6.jpg b/public/admin/assets/images/masonry/6.jpg new file mode 100644 index 0000000..e67811f Binary files /dev/null and b/public/admin/assets/images/masonry/6.jpg differ diff --git a/public/admin/assets/images/masonry/7.jpg b/public/admin/assets/images/masonry/7.jpg new file mode 100644 index 0000000..26bd651 Binary files /dev/null and b/public/admin/assets/images/masonry/7.jpg differ diff --git a/public/admin/assets/images/masonry/8.jpg b/public/admin/assets/images/masonry/8.jpg new file mode 100644 index 0000000..2c43efa Binary files /dev/null and b/public/admin/assets/images/masonry/8.jpg differ diff --git a/public/admin/assets/images/masonry/9.jpg b/public/admin/assets/images/masonry/9.jpg new file mode 100644 index 0000000..176e881 Binary files /dev/null and b/public/admin/assets/images/masonry/9.jpg differ diff --git a/public/admin/assets/images/min.svg b/public/admin/assets/images/min.svg new file mode 100644 index 0000000..e6527ee --- /dev/null +++ b/public/admin/assets/images/min.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/public/admin/assets/images/other-images/calender-bg.png b/public/admin/assets/images/other-images/calender-bg.png new file mode 100644 index 0000000..11e7115 Binary files /dev/null and b/public/admin/assets/images/other-images/calender-bg.png differ diff --git a/public/admin/assets/images/other-images/caller.jpg b/public/admin/assets/images/other-images/caller.jpg new file mode 100644 index 0000000..cc5b81f Binary files /dev/null and b/public/admin/assets/images/other-images/caller.jpg differ diff --git a/public/admin/assets/images/other-images/clock-face.png b/public/admin/assets/images/other-images/clock-face.png new file mode 100644 index 0000000..2801f1a Binary files /dev/null and b/public/admin/assets/images/other-images/clock-face.png differ diff --git a/public/admin/assets/images/other-images/coming-soon-bg.jpg b/public/admin/assets/images/other-images/coming-soon-bg.jpg new file mode 100644 index 0000000..940cfb6 Binary files /dev/null and b/public/admin/assets/images/other-images/coming-soon-bg.jpg differ diff --git a/public/admin/assets/images/other-images/img-cropper.jpg b/public/admin/assets/images/other-images/img-cropper.jpg new file mode 100644 index 0000000..b742148 Binary files /dev/null and b/public/admin/assets/images/other-images/img-cropper.jpg differ diff --git a/public/admin/assets/images/other-images/maintenance-bg.jpg b/public/admin/assets/images/other-images/maintenance-bg.jpg new file mode 100644 index 0000000..940cfb6 Binary files /dev/null and b/public/admin/assets/images/other-images/maintenance-bg.jpg differ diff --git a/public/admin/assets/images/other-images/mobile-clock-wallpaper.jpg b/public/admin/assets/images/other-images/mobile-clock-wallpaper.jpg new file mode 100644 index 0000000..d6c7519 Binary files /dev/null and b/public/admin/assets/images/other-images/mobile-clock-wallpaper.jpg differ diff --git a/public/admin/assets/images/other-images/paypal.png b/public/admin/assets/images/other-images/paypal.png new file mode 100644 index 0000000..1ead380 Binary files /dev/null and b/public/admin/assets/images/other-images/paypal.png differ diff --git a/public/admin/assets/images/other-images/profile-style-img.png b/public/admin/assets/images/other-images/profile-style-img.png new file mode 100644 index 0000000..80772f9 Binary files /dev/null and b/public/admin/assets/images/other-images/profile-style-img.png differ diff --git a/public/admin/assets/images/other-images/profile-style-img3.png b/public/admin/assets/images/other-images/profile-style-img3.png new file mode 100644 index 0000000..da8827d Binary files /dev/null and b/public/admin/assets/images/other-images/profile-style-img3.png differ diff --git a/public/admin/assets/images/other-images/receiver-img.jpg b/public/admin/assets/images/other-images/receiver-img.jpg new file mode 100644 index 0000000..5b15726 Binary files /dev/null and b/public/admin/assets/images/other-images/receiver-img.jpg differ diff --git a/public/admin/assets/images/product/1.png b/public/admin/assets/images/product/1.png new file mode 100644 index 0000000..2c1c469 Binary files /dev/null and b/public/admin/assets/images/product/1.png differ diff --git a/public/admin/assets/images/product/10.png b/public/admin/assets/images/product/10.png new file mode 100644 index 0000000..e5a0134 Binary files /dev/null and b/public/admin/assets/images/product/10.png differ diff --git a/public/admin/assets/images/product/11.png b/public/admin/assets/images/product/11.png new file mode 100644 index 0000000..8688d8b Binary files /dev/null and b/public/admin/assets/images/product/11.png differ diff --git a/public/admin/assets/images/product/12.png b/public/admin/assets/images/product/12.png new file mode 100644 index 0000000..c36fe90 Binary files /dev/null and b/public/admin/assets/images/product/12.png differ diff --git a/public/admin/assets/images/product/13.png b/public/admin/assets/images/product/13.png new file mode 100644 index 0000000..3f9a0fd Binary files /dev/null and b/public/admin/assets/images/product/13.png differ diff --git a/public/admin/assets/images/product/14.png b/public/admin/assets/images/product/14.png new file mode 100644 index 0000000..b547eeb Binary files /dev/null and b/public/admin/assets/images/product/14.png differ diff --git a/public/admin/assets/images/product/15.png b/public/admin/assets/images/product/15.png new file mode 100644 index 0000000..9f61adf Binary files /dev/null and b/public/admin/assets/images/product/15.png differ diff --git a/public/admin/assets/images/product/2.png b/public/admin/assets/images/product/2.png new file mode 100644 index 0000000..ecc626b Binary files /dev/null and b/public/admin/assets/images/product/2.png differ diff --git a/public/admin/assets/images/product/3.png b/public/admin/assets/images/product/3.png new file mode 100644 index 0000000..80def20 Binary files /dev/null and b/public/admin/assets/images/product/3.png differ diff --git a/public/admin/assets/images/product/4.png b/public/admin/assets/images/product/4.png new file mode 100644 index 0000000..2c1c469 Binary files /dev/null and b/public/admin/assets/images/product/4.png differ diff --git a/public/admin/assets/images/range-slider/sprite-skin-modern-1.png b/public/admin/assets/images/range-slider/sprite-skin-modern-1.png new file mode 100644 index 0000000..5918a30 Binary files /dev/null and b/public/admin/assets/images/range-slider/sprite-skin-modern-1.png differ diff --git a/public/admin/assets/images/sec.svg b/public/admin/assets/images/sec.svg new file mode 100644 index 0000000..8f9b507 --- /dev/null +++ b/public/admin/assets/images/sec.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/public/admin/assets/images/sidebar-image/1.html b/public/admin/assets/images/sidebar-image/1.html new file mode 100644 index 0000000..464fa5f --- /dev/null +++ b/public/admin/assets/images/sidebar-image/1.html @@ -0,0 +1,32 @@ + + + + + + + Not Found + + + + + + +
+
+
+
+ 404
+ +
+ Not Found
+
+
+
+ + diff --git a/public/admin/assets/images/sidebar-image/2.html b/public/admin/assets/images/sidebar-image/2.html new file mode 100644 index 0000000..464fa5f --- /dev/null +++ b/public/admin/assets/images/sidebar-image/2.html @@ -0,0 +1,32 @@ + + + + + + + Not Found + + + + + + +
+
+
+
+ 404
+ +
+ Not Found
+
+
+
+ + diff --git a/public/admin/assets/images/sidebar-image/3.html b/public/admin/assets/images/sidebar-image/3.html new file mode 100644 index 0000000..464fa5f --- /dev/null +++ b/public/admin/assets/images/sidebar-image/3.html @@ -0,0 +1,32 @@ + + + + + + + Not Found + + + + + + +
+
+
+
+ 404
+ +
+ Not Found
+
+
+
+ + diff --git a/public/admin/assets/images/sidebar-image/4.html b/public/admin/assets/images/sidebar-image/4.html new file mode 100644 index 0000000..464fa5f --- /dev/null +++ b/public/admin/assets/images/sidebar-image/4.html @@ -0,0 +1,32 @@ + + + + + + + Not Found + + + + + + +
+
+
+
+ 404
+ +
+ Not Found
+
+
+
+ + diff --git a/public/admin/assets/images/sidebar-image/5.html b/public/admin/assets/images/sidebar-image/5.html new file mode 100644 index 0000000..464fa5f --- /dev/null +++ b/public/admin/assets/images/sidebar-image/5.html @@ -0,0 +1,32 @@ + + + + + + + Not Found + + + + + + +
+
+
+
+ 404
+ +
+ Not Found
+
+
+
+ + diff --git a/public/admin/assets/images/sidebar-image/6.html b/public/admin/assets/images/sidebar-image/6.html new file mode 100644 index 0000000..464fa5f --- /dev/null +++ b/public/admin/assets/images/sidebar-image/6.html @@ -0,0 +1,32 @@ + + + + + + + Not Found + + + + + + +
+
+
+
+ 404
+ +
+ Not Found
+
+
+
+ + diff --git a/public/admin/assets/images/sidebar-pattern/1.html b/public/admin/assets/images/sidebar-pattern/1.html new file mode 100644 index 0000000..464fa5f --- /dev/null +++ b/public/admin/assets/images/sidebar-pattern/1.html @@ -0,0 +1,32 @@ + + + + + + + Not Found + + + + + + +
+
+
+
+ 404
+ +
+ Not Found
+
+
+
+ + diff --git a/public/admin/assets/images/sidebar-pattern/2.html b/public/admin/assets/images/sidebar-pattern/2.html new file mode 100644 index 0000000..464fa5f --- /dev/null +++ b/public/admin/assets/images/sidebar-pattern/2.html @@ -0,0 +1,32 @@ + + + + + + + Not Found + + + + + + +
+
+
+
+ 404
+ +
+ Not Found
+
+
+
+ + diff --git a/public/admin/assets/images/sidebar-pattern/3.html b/public/admin/assets/images/sidebar-pattern/3.html new file mode 100644 index 0000000..464fa5f --- /dev/null +++ b/public/admin/assets/images/sidebar-pattern/3.html @@ -0,0 +1,32 @@ + + + + + + + Not Found + + + + + + +
+
+
+
+ 404
+ +
+ Not Found
+
+
+
+ + diff --git a/public/admin/assets/images/sidebar-pattern/4.html b/public/admin/assets/images/sidebar-pattern/4.html new file mode 100644 index 0000000..464fa5f --- /dev/null +++ b/public/admin/assets/images/sidebar-pattern/4.html @@ -0,0 +1,32 @@ + + + + + + + Not Found + + + + + + +
+
+
+
+ 404
+ +
+ Not Found
+
+
+
+ + diff --git a/public/admin/assets/images/sidebar-pattern/5.html b/public/admin/assets/images/sidebar-pattern/5.html new file mode 100644 index 0000000..464fa5f --- /dev/null +++ b/public/admin/assets/images/sidebar-pattern/5.html @@ -0,0 +1,32 @@ + + + + + + + Not Found + + + + + + +
+
+
+
+ 404
+ +
+ Not Found
+
+
+
+ + diff --git a/public/admin/assets/images/sidebar-pattern/6.html b/public/admin/assets/images/sidebar-pattern/6.html new file mode 100644 index 0000000..464fa5f --- /dev/null +++ b/public/admin/assets/images/sidebar-pattern/6.html @@ -0,0 +1,32 @@ + + + + + + + Not Found + + + + + + +
+
+
+
+ 404
+ +
+ Not Found
+
+
+
+ + diff --git a/public/admin/assets/images/slider-auto-width/11.jpg b/public/admin/assets/images/slider-auto-width/11.jpg new file mode 100644 index 0000000..40fb28e Binary files /dev/null and b/public/admin/assets/images/slider-auto-width/11.jpg differ diff --git a/public/admin/assets/images/slider-auto-width/12.jpg b/public/admin/assets/images/slider-auto-width/12.jpg new file mode 100644 index 0000000..40fb28e Binary files /dev/null and b/public/admin/assets/images/slider-auto-width/12.jpg differ diff --git a/public/admin/assets/images/slider-auto-width/13.jpg b/public/admin/assets/images/slider-auto-width/13.jpg new file mode 100644 index 0000000..40fb28e Binary files /dev/null and b/public/admin/assets/images/slider-auto-width/13.jpg differ diff --git a/public/admin/assets/images/slider-auto-width/14.jpg b/public/admin/assets/images/slider-auto-width/14.jpg new file mode 100644 index 0000000..40fb28e Binary files /dev/null and b/public/admin/assets/images/slider-auto-width/14.jpg differ diff --git a/public/admin/assets/images/slider-auto-width/15.jpg b/public/admin/assets/images/slider-auto-width/15.jpg new file mode 100644 index 0000000..40fb28e Binary files /dev/null and b/public/admin/assets/images/slider-auto-width/15.jpg differ diff --git a/public/admin/assets/images/slider/1.jpg b/public/admin/assets/images/slider/1.jpg new file mode 100644 index 0000000..40fb28e Binary files /dev/null and b/public/admin/assets/images/slider/1.jpg differ diff --git a/public/admin/assets/images/slider/10.jpg b/public/admin/assets/images/slider/10.jpg new file mode 100644 index 0000000..40fb28e Binary files /dev/null and b/public/admin/assets/images/slider/10.jpg differ diff --git a/public/admin/assets/images/slider/11.jpg b/public/admin/assets/images/slider/11.jpg new file mode 100644 index 0000000..40fb28e Binary files /dev/null and b/public/admin/assets/images/slider/11.jpg differ diff --git a/public/admin/assets/images/slider/2.jpg b/public/admin/assets/images/slider/2.jpg new file mode 100644 index 0000000..40fb28e Binary files /dev/null and b/public/admin/assets/images/slider/2.jpg differ diff --git a/public/admin/assets/images/slider/3.jpg b/public/admin/assets/images/slider/3.jpg new file mode 100644 index 0000000..40fb28e Binary files /dev/null and b/public/admin/assets/images/slider/3.jpg differ diff --git a/public/admin/assets/images/slider/4.jpg b/public/admin/assets/images/slider/4.jpg new file mode 100644 index 0000000..40fb28e Binary files /dev/null and b/public/admin/assets/images/slider/4.jpg differ diff --git a/public/admin/assets/images/slider/5.jpg b/public/admin/assets/images/slider/5.jpg new file mode 100644 index 0000000..40fb28e Binary files /dev/null and b/public/admin/assets/images/slider/5.jpg differ diff --git a/public/admin/assets/images/slider/6.jpg b/public/admin/assets/images/slider/6.jpg new file mode 100644 index 0000000..40fb28e Binary files /dev/null and b/public/admin/assets/images/slider/6.jpg differ diff --git a/public/admin/assets/images/slider/7.jpg b/public/admin/assets/images/slider/7.jpg new file mode 100644 index 0000000..40fb28e Binary files /dev/null and b/public/admin/assets/images/slider/7.jpg differ diff --git a/public/admin/assets/images/slider/8.jpg b/public/admin/assets/images/slider/8.jpg new file mode 100644 index 0000000..40fb28e Binary files /dev/null and b/public/admin/assets/images/slider/8.jpg differ diff --git a/public/admin/assets/images/slider/9.jpg b/public/admin/assets/images/slider/9.jpg new file mode 100644 index 0000000..40fb28e Binary files /dev/null and b/public/admin/assets/images/slider/9.jpg differ diff --git a/public/admin/assets/images/smiley.png b/public/admin/assets/images/smiley.png new file mode 100644 index 0000000..ccdaafe Binary files /dev/null and b/public/admin/assets/images/smiley.png differ diff --git a/public/admin/assets/images/social-app/post-1.png b/public/admin/assets/images/social-app/post-1.png new file mode 100644 index 0000000..156de5d Binary files /dev/null and b/public/admin/assets/images/social-app/post-1.png differ diff --git a/public/admin/assets/images/social-app/post-2.png b/public/admin/assets/images/social-app/post-2.png new file mode 100644 index 0000000..156de5d Binary files /dev/null and b/public/admin/assets/images/social-app/post-2.png differ diff --git a/public/admin/assets/images/social-app/post-3.png b/public/admin/assets/images/social-app/post-3.png new file mode 100644 index 0000000..156de5d Binary files /dev/null and b/public/admin/assets/images/social-app/post-3.png differ diff --git a/public/admin/assets/images/social-app/post-4.png b/public/admin/assets/images/social-app/post-4.png new file mode 100644 index 0000000..156de5d Binary files /dev/null and b/public/admin/assets/images/social-app/post-4.png differ diff --git a/public/admin/assets/images/social-app/post-5.png b/public/admin/assets/images/social-app/post-5.png new file mode 100644 index 0000000..156de5d Binary files /dev/null and b/public/admin/assets/images/social-app/post-5.png differ diff --git a/public/admin/assets/images/social-app/post-6.png b/public/admin/assets/images/social-app/post-6.png new file mode 100644 index 0000000..156de5d Binary files /dev/null and b/public/admin/assets/images/social-app/post-6.png differ diff --git a/public/admin/assets/images/social-app/post-7.png b/public/admin/assets/images/social-app/post-7.png new file mode 100644 index 0000000..156de5d Binary files /dev/null and b/public/admin/assets/images/social-app/post-7.png differ diff --git a/public/admin/assets/images/social-app/post-8.png b/public/admin/assets/images/social-app/post-8.png new file mode 100644 index 0000000..156de5d Binary files /dev/null and b/public/admin/assets/images/social-app/post-8.png differ diff --git a/public/admin/assets/images/social-app/timeline-1.png b/public/admin/assets/images/social-app/timeline-1.png new file mode 100644 index 0000000..5523e19 Binary files /dev/null and b/public/admin/assets/images/social-app/timeline-1.png differ diff --git a/public/admin/assets/images/social-app/timeline-2.png b/public/admin/assets/images/social-app/timeline-2.png new file mode 100644 index 0000000..6483d3a Binary files /dev/null and b/public/admin/assets/images/social-app/timeline-2.png differ diff --git a/public/admin/assets/images/social-app/timeline-3.png b/public/admin/assets/images/social-app/timeline-3.png new file mode 100644 index 0000000..6483d3a Binary files /dev/null and b/public/admin/assets/images/social-app/timeline-3.png differ diff --git a/public/admin/assets/images/social-app/timeline-4.png b/public/admin/assets/images/social-app/timeline-4.png new file mode 100644 index 0000000..6483d3a Binary files /dev/null and b/public/admin/assets/images/social-app/timeline-4.png differ diff --git a/public/admin/assets/images/sort_asc.png b/public/admin/assets/images/sort_asc.png new file mode 100644 index 0000000..6da58ae Binary files /dev/null and b/public/admin/assets/images/sort_asc.png differ diff --git a/public/admin/assets/images/sort_asc_disabled.png b/public/admin/assets/images/sort_asc_disabled.png new file mode 100644 index 0000000..6da58ae Binary files /dev/null and b/public/admin/assets/images/sort_asc_disabled.png differ diff --git a/public/admin/assets/images/sort_both.png b/public/admin/assets/images/sort_both.png new file mode 100644 index 0000000..6da58ae Binary files /dev/null and b/public/admin/assets/images/sort_both.png differ diff --git a/public/admin/assets/images/sort_desc.png b/public/admin/assets/images/sort_desc.png new file mode 100644 index 0000000..6da58ae Binary files /dev/null and b/public/admin/assets/images/sort_desc.png differ diff --git a/public/admin/assets/images/sort_desc_disabled.png b/public/admin/assets/images/sort_desc_disabled.png new file mode 100644 index 0000000..6da58ae Binary files /dev/null and b/public/admin/assets/images/sort_desc_disabled.png differ diff --git a/public/admin/assets/images/throbber.html b/public/admin/assets/images/throbber.html new file mode 100644 index 0000000..464fa5f --- /dev/null +++ b/public/admin/assets/images/throbber.html @@ -0,0 +1,32 @@ + + + + + + + Not Found + + + + + + +
+
+
+
+ 404
+ +
+ Not Found
+
+
+
+ + diff --git a/public/admin/assets/images/tree-1.html b/public/admin/assets/images/tree-1.html new file mode 100644 index 0000000..464fa5f --- /dev/null +++ b/public/admin/assets/images/tree-1.html @@ -0,0 +1,32 @@ + + + + + + + Not Found + + + + + + +
+
+
+
+ 404
+ +
+ Not Found
+
+
+
+ + diff --git a/public/admin/assets/images/tree/32px.png b/public/admin/assets/images/tree/32px.png new file mode 100644 index 0000000..a9cbd36 Binary files /dev/null and b/public/admin/assets/images/tree/32px.png differ diff --git a/public/admin/assets/images/tree/40px.png b/public/admin/assets/images/tree/40px.png new file mode 100644 index 0000000..1959347 Binary files /dev/null and b/public/admin/assets/images/tree/40px.png differ diff --git a/public/admin/assets/images/tree/throbber.gif b/public/admin/assets/images/tree/throbber.gif new file mode 100644 index 0000000..1b5b2fd Binary files /dev/null and b/public/admin/assets/images/tree/throbber.gif differ diff --git a/public/admin/assets/images/user-card/1.jpg b/public/admin/assets/images/user-card/1.jpg new file mode 100644 index 0000000..ecfafee Binary files /dev/null and b/public/admin/assets/images/user-card/1.jpg differ diff --git a/public/admin/assets/images/user-card/2.jpg b/public/admin/assets/images/user-card/2.jpg new file mode 100644 index 0000000..ecfafee Binary files /dev/null and b/public/admin/assets/images/user-card/2.jpg differ diff --git a/public/admin/assets/images/user-card/3.jpg b/public/admin/assets/images/user-card/3.jpg new file mode 100644 index 0000000..ecfafee Binary files /dev/null and b/public/admin/assets/images/user-card/3.jpg differ diff --git a/public/admin/assets/images/user-card/5.jpg b/public/admin/assets/images/user-card/5.jpg new file mode 100644 index 0000000..ecfafee Binary files /dev/null and b/public/admin/assets/images/user-card/5.jpg differ diff --git a/public/admin/assets/images/user-card/6.jpg b/public/admin/assets/images/user-card/6.jpg new file mode 100644 index 0000000..ecfafee Binary files /dev/null and b/public/admin/assets/images/user-card/6.jpg differ diff --git a/public/admin/assets/images/user-card/7.jpg b/public/admin/assets/images/user-card/7.jpg new file mode 100644 index 0000000..ecfafee Binary files /dev/null and b/public/admin/assets/images/user-card/7.jpg differ diff --git a/public/admin/assets/images/user-profile/bg-profile.jpg b/public/admin/assets/images/user-profile/bg-profile.jpg new file mode 100644 index 0000000..db14534 Binary files /dev/null and b/public/admin/assets/images/user-profile/bg-profile.jpg differ diff --git a/public/admin/assets/images/user-profile/post1.jpg b/public/admin/assets/images/user-profile/post1.jpg new file mode 100644 index 0000000..45ceb80 Binary files /dev/null and b/public/admin/assets/images/user-profile/post1.jpg differ diff --git a/public/admin/assets/images/user-profile/post2.jpg b/public/admin/assets/images/user-profile/post2.jpg new file mode 100644 index 0000000..50d065a Binary files /dev/null and b/public/admin/assets/images/user-profile/post2.jpg differ diff --git a/public/admin/assets/images/user-profile/post3.jpg b/public/admin/assets/images/user-profile/post3.jpg new file mode 100644 index 0000000..1e27d47 Binary files /dev/null and b/public/admin/assets/images/user-profile/post3.jpg differ diff --git a/public/admin/assets/images/user-profile/post4.jpg b/public/admin/assets/images/user-profile/post4.jpg new file mode 100644 index 0000000..b260c45 Binary files /dev/null and b/public/admin/assets/images/user-profile/post4.jpg differ diff --git a/public/admin/assets/images/user/1.jpg b/public/admin/assets/images/user/1.jpg new file mode 100644 index 0000000..67ecfb4 Binary files /dev/null and b/public/admin/assets/images/user/1.jpg differ diff --git a/public/admin/assets/images/user/10.jpg b/public/admin/assets/images/user/10.jpg new file mode 100644 index 0000000..9662660 Binary files /dev/null and b/public/admin/assets/images/user/10.jpg differ diff --git a/public/admin/assets/images/user/11.png b/public/admin/assets/images/user/11.png new file mode 100644 index 0000000..fae61a8 Binary files /dev/null and b/public/admin/assets/images/user/11.png differ diff --git a/public/admin/assets/images/user/12.png b/public/admin/assets/images/user/12.png new file mode 100644 index 0000000..c02aeec Binary files /dev/null and b/public/admin/assets/images/user/12.png differ diff --git a/public/admin/assets/images/user/14.png b/public/admin/assets/images/user/14.png new file mode 100644 index 0000000..52033c4 Binary files /dev/null and b/public/admin/assets/images/user/14.png differ diff --git a/public/admin/assets/images/user/16.png b/public/admin/assets/images/user/16.png new file mode 100644 index 0000000..912bcd2 Binary files /dev/null and b/public/admin/assets/images/user/16.png differ diff --git a/public/admin/assets/images/user/2.jpg b/public/admin/assets/images/user/2.jpg new file mode 100644 index 0000000..cbd7cff Binary files /dev/null and b/public/admin/assets/images/user/2.jpg differ diff --git a/public/admin/assets/images/user/2.png b/public/admin/assets/images/user/2.png new file mode 100644 index 0000000..1270df4 Binary files /dev/null and b/public/admin/assets/images/user/2.png differ diff --git a/public/admin/assets/images/user/3.jpg b/public/admin/assets/images/user/3.jpg new file mode 100644 index 0000000..4c0fd0f Binary files /dev/null and b/public/admin/assets/images/user/3.jpg differ diff --git a/public/admin/assets/images/user/3.png b/public/admin/assets/images/user/3.png new file mode 100644 index 0000000..08335d0 Binary files /dev/null and b/public/admin/assets/images/user/3.png differ diff --git a/public/admin/assets/images/user/4.jpg b/public/admin/assets/images/user/4.jpg new file mode 100644 index 0000000..0f6d4b7 Binary files /dev/null and b/public/admin/assets/images/user/4.jpg differ diff --git a/public/admin/assets/images/user/5.jpg b/public/admin/assets/images/user/5.jpg new file mode 100644 index 0000000..88936b0 Binary files /dev/null and b/public/admin/assets/images/user/5.jpg differ diff --git a/public/admin/assets/images/user/6.jpg b/public/admin/assets/images/user/6.jpg new file mode 100644 index 0000000..3b8d2f6 Binary files /dev/null and b/public/admin/assets/images/user/6.jpg differ diff --git a/public/admin/assets/images/user/7.jpg b/public/admin/assets/images/user/7.jpg new file mode 100644 index 0000000..791f9d0 Binary files /dev/null and b/public/admin/assets/images/user/7.jpg differ diff --git a/public/admin/assets/images/user/8.jpg b/public/admin/assets/images/user/8.jpg new file mode 100644 index 0000000..667e1d3 Binary files /dev/null and b/public/admin/assets/images/user/8.jpg differ diff --git a/public/admin/assets/images/user/user.png b/public/admin/assets/images/user/user.png new file mode 100644 index 0000000..cbc2967 Binary files /dev/null and b/public/admin/assets/images/user/user.png differ diff --git a/public/admin/assets/js/animation/animate-custom.js b/public/admin/assets/js/animation/animate-custom.js new file mode 100644 index 0000000..c8695e5 --- /dev/null +++ b/public/admin/assets/js/animation/animate-custom.js @@ -0,0 +1,23 @@ +"use strict"; +function testAnim(x) { + $('#animation-box').removeClass().addClass(x + ' animated').one('webkitAnimationEnd mozAnimationEnd MSAnimationEnd oanimationend animationend', function(){ + $(this).removeClass(); + }); +}; +var animate_custom = { + init: function() { + $('.js-triggeraNimation').click(function(e){ + e.preventDefault(); + var anim = $('.js-animations').val(); + testAnim(anim); + }); + $('.js-animations').change(function(){ + var anim = $(this).val(); + testAnim(anim); + }); + } +}; +(function($) { + "use strict"; + animate_custom.init() +})(jQuery); \ No newline at end of file diff --git a/public/admin/assets/js/animation/aos/aos-init.js b/public/admin/assets/js/animation/aos/aos-init.js new file mode 100644 index 0000000..c4bcc0e --- /dev/null +++ b/public/admin/assets/js/animation/aos/aos-init.js @@ -0,0 +1,7 @@ +(function($) { +"use strict"; + $('.grid').isotope({ + itemSelector: '.grid-item' + }); + AOS.init(); +})(jQuery); \ No newline at end of file diff --git a/public/admin/assets/js/animation/aos/aos.js b/public/admin/assets/js/animation/aos/aos.js new file mode 100644 index 0000000..2d37d78 --- /dev/null +++ b/public/admin/assets/js/animation/aos/aos.js @@ -0,0 +1,2 @@ +!function(e,t){"object"==typeof exports&&"object"==typeof module?module.exports=t():"function"==typeof define&&define.amd?define([],t):"object"==typeof exports?exports.AOS=t():e.AOS=t()}(this,function(){return function(e){function t(o){if(n[o])return n[o].exports;var i=n[o]={exports:{},id:o,loaded:!1};return e[o].call(i.exports,i,i.exports,t),i.loaded=!0,i.exports}var n={};return t.m=e,t.c=n,t.p="dist/",t(0)}([function(e,t,n){"use strict";function o(e){return e&&e.__esModule?e:{default:e}}var i=Object.assign||function(e){for(var t=1;t0&&void 0!==arguments[0]&&arguments[0];if(e&&(k=!0),k)return w=(0,y.default)(w,j),(0,b.default)(w,j.once),w},S=function(){w=(0,h.default)(),O()},_=function(){w.forEach(function(e,t){e.node.removeAttribute("data-aos"),e.node.removeAttribute("data-aos-easing"),e.node.removeAttribute("data-aos-duration"),e.node.removeAttribute("data-aos-delay")})},E=function(e){return e===!0||"mobile"===e&&p.default.mobile()||"phone"===e&&p.default.phone()||"tablet"===e&&p.default.tablet()||"function"==typeof e&&e()===!0},z=function(e){return j=i(j,e),w=(0,h.default)(),E(j.disable)||x?_():(document.querySelector("body").setAttribute("data-aos-easing",j.easing),document.querySelector("body").setAttribute("data-aos-duration",j.duration),document.querySelector("body").setAttribute("data-aos-delay",j.delay),"DOMContentLoaded"===j.startEvent&&["complete","interactive"].indexOf(document.readyState)>-1?O(!0):"load"===j.startEvent?window.addEventListener(j.startEvent,function(){O(!0)}):document.addEventListener(j.startEvent,function(){O(!0)}),window.addEventListener("resize",(0,f.default)(O,50,!0)),window.addEventListener("orientationchange",(0,f.default)(O,50,!0)),window.addEventListener("scroll",(0,u.default)(function(){(0,b.default)(w,j.once)},99)),document.addEventListener("DOMNodeRemoved",function(e){var t=e.target;t&&1===t.nodeType&&t.hasAttribute&&t.hasAttribute("data-aos")&&(0,f.default)(S,50,!0)}),(0,d.default)("[data-aos]",S),w)};e.exports={init:z,refresh:O,refreshHard:S}},function(e,t){},,,,,function(e,t){(function(t){"use strict";function n(e,t,n){function o(t){var n=b,o=v;return b=v=void 0,k=t,g=e.apply(o,n)}function r(e){return k=e,h=setTimeout(s,t),S?o(e):g}function a(e){var n=e-w,o=e-k,i=t-n;return _?j(i,y-o):i}function c(e){var n=e-w,o=e-k;return void 0===w||n>=t||n<0||_&&o>=y}function s(){var e=O();return c(e)?d(e):void(h=setTimeout(s,a(e)))}function d(e){return h=void 0,E&&b?o(e):(b=v=void 0,g)}function l(){void 0!==h&&clearTimeout(h),k=0,b=w=v=h=void 0}function p(){return void 0===h?g:d(O())}function m(){var e=O(),n=c(e);if(b=arguments,v=this,w=e,n){if(void 0===h)return r(w);if(_)return h=setTimeout(s,t),o(w)}return void 0===h&&(h=setTimeout(s,t)),g}var b,v,y,g,h,w,k=0,S=!1,_=!1,E=!0;if("function"!=typeof e)throw new TypeError(f);return t=u(t)||0,i(n)&&(S=!!n.leading,_="maxWait"in n,y=_?x(u(n.maxWait)||0,t):y,E="trailing"in n?!!n.trailing:E),m.cancel=l,m.flush=p,m}function o(e,t,o){var r=!0,a=!0;if("function"!=typeof e)throw new TypeError(f);return i(o)&&(r="leading"in o?!!o.leading:r,a="trailing"in o?!!o.trailing:a),n(e,t,{leading:r,maxWait:t,trailing:a})}function i(e){var t="undefined"==typeof e?"undefined":c(e);return!!e&&("object"==t||"function"==t)}function r(e){return!!e&&"object"==("undefined"==typeof e?"undefined":c(e))}function a(e){return"symbol"==("undefined"==typeof e?"undefined":c(e))||r(e)&&k.call(e)==d}function u(e){if("number"==typeof e)return e;if(a(e))return s;if(i(e)){var t="function"==typeof e.valueOf?e.valueOf():e;e=i(t)?t+"":t}if("string"!=typeof e)return 0===e?e:+e;e=e.replace(l,"");var n=m.test(e);return n||b.test(e)?v(e.slice(2),n?2:8):p.test(e)?s:+e}var c="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},f="Expected a function",s=NaN,d="[object Symbol]",l=/^\s+|\s+$/g,p=/^[-+]0x[0-9a-f]+$/i,m=/^0b[01]+$/i,b=/^0o[0-7]+$/i,v=parseInt,y="object"==("undefined"==typeof t?"undefined":c(t))&&t&&t.Object===Object&&t,g="object"==("undefined"==typeof self?"undefined":c(self))&&self&&self.Object===Object&&self,h=y||g||Function("return this")(),w=Object.prototype,k=w.toString,x=Math.max,j=Math.min,O=function(){return h.Date.now()};e.exports=o}).call(t,function(){return this}())},function(e,t){(function(t){"use strict";function n(e,t,n){function i(t){var n=b,o=v;return b=v=void 0,O=t,g=e.apply(o,n)}function r(e){return O=e,h=setTimeout(s,t),S?i(e):g}function u(e){var n=e-w,o=e-O,i=t-n;return _?x(i,y-o):i}function f(e){var n=e-w,o=e-O;return void 0===w||n>=t||n<0||_&&o>=y}function s(){var e=j();return f(e)?d(e):void(h=setTimeout(s,u(e)))}function d(e){return h=void 0,E&&b?i(e):(b=v=void 0,g)}function l(){void 0!==h&&clearTimeout(h),O=0,b=w=v=h=void 0}function p(){return void 0===h?g:d(j())}function m(){var e=j(),n=f(e);if(b=arguments,v=this,w=e,n){if(void 0===h)return r(w);if(_)return h=setTimeout(s,t),i(w)}return void 0===h&&(h=setTimeout(s,t)),g}var b,v,y,g,h,w,O=0,S=!1,_=!1,E=!0;if("function"!=typeof e)throw new TypeError(c);return t=a(t)||0,o(n)&&(S=!!n.leading,_="maxWait"in n,y=_?k(a(n.maxWait)||0,t):y,E="trailing"in n?!!n.trailing:E),m.cancel=l,m.flush=p,m}function o(e){var t="undefined"==typeof e?"undefined":u(e);return!!e&&("object"==t||"function"==t)}function i(e){return!!e&&"object"==("undefined"==typeof e?"undefined":u(e))}function r(e){return"symbol"==("undefined"==typeof e?"undefined":u(e))||i(e)&&w.call(e)==s}function a(e){if("number"==typeof e)return e;if(r(e))return f;if(o(e)){var t="function"==typeof e.valueOf?e.valueOf():e;e=o(t)?t+"":t}if("string"!=typeof e)return 0===e?e:+e;e=e.replace(d,"");var n=p.test(e);return n||m.test(e)?b(e.slice(2),n?2:8):l.test(e)?f:+e}var u="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},c="Expected a function",f=NaN,s="[object Symbol]",d=/^\s+|\s+$/g,l=/^[-+]0x[0-9a-f]+$/i,p=/^0b[01]+$/i,m=/^0o[0-7]+$/i,b=parseInt,v="object"==("undefined"==typeof t?"undefined":u(t))&&t&&t.Object===Object&&t,y="object"==("undefined"==typeof self?"undefined":u(self))&&self&&self.Object===Object&&self,g=v||y||Function("return this")(),h=Object.prototype,w=h.toString,k=Math.max,x=Math.min,j=function(){return g.Date.now()};e.exports=n}).call(t,function(){return this}())},function(e,t){"use strict";function n(e,t){a.push({selector:e,fn:t}),!u&&r&&(u=new r(o),u.observe(i.documentElement,{childList:!0,subtree:!0,removedNodes:!0})),o()}function o(){for(var e,t,n=0,o=a.length;ne.position?e.node.classList.add("aos-animate"):"undefined"!=typeof o&&("false"===o||!n&&"true"!==o)&&e.node.classList.remove("aos-animate")},o=function(e,t){var o=window.pageYOffset,i=window.innerHeight;e.forEach(function(e,r){n(e,i+o,t)})};t.default=o},function(e,t,n){"use strict";function o(e){return e&&e.__esModule?e:{default:e}}Object.defineProperty(t,"__esModule",{value:!0});var i=n(12),r=o(i),a=function(e,t){return e.forEach(function(e,n){e.node.classList.add("aos-init"),e.position=(0,r.default)(e.node,t.offset)}),e};t.default=a},function(e,t,n){"use strict";function o(e){return e&&e.__esModule?e:{default:e}}Object.defineProperty(t,"__esModule",{value:!0});var i=n(13),r=o(i),a=function(e,t){var n=0,o=0,i=window.innerHeight,a={offset:e.getAttribute("data-aos-offset"),anchor:e.getAttribute("data-aos-anchor"),anchorPlacement:e.getAttribute("data-aos-anchor-placement")};switch(a.offset&&!isNaN(a.offset)&&(o=parseInt(a.offset)),a.anchor&&document.querySelectorAll(a.anchor)&&(e=document.querySelectorAll(a.anchor)[0]),n=(0,r.default)(e).top,a.anchorPlacement){case"top-bottom":break;case"center-bottom":n+=e.offsetHeight/2;break;case"bottom-bottom":n+=e.offsetHeight;break;case"top-center":n+=i/2;break;case"bottom-center":n+=i/2+e.offsetHeight;break;case"center-center":n+=i/2+e.offsetHeight/2;break;case"top-top":n+=i;break;case"bottom-top":n+=e.offsetHeight+i;break;case"center-top":n+=e.offsetHeight/2+i}return a.anchorPlacement||a.offset||isNaN(t)||(o=t),n+o};t.default=a},function(e,t){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var n=function(e){for(var t=0,n=0;e&&!isNaN(e.offsetLeft)&&!isNaN(e.offsetTop);)t+=e.offsetLeft-("BODY"!=e.tagName?e.scrollLeft:0),n+=e.offsetTop-("BODY"!=e.tagName?e.scrollTop:0),e=e.offsetParent;return{top:n,left:t}};t.default=n},function(e,t){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var n=function(e){e=e||document.querySelectorAll("[data-aos]");var t=[];return[].forEach.call(e,function(e,n){t.push({node:e})}),t};t.default=n}])}); +//# sourceMappingURL=aos.js.map \ No newline at end of file diff --git a/public/admin/assets/js/animation/scroll-reveal/reveal-custom.js b/public/admin/assets/js/animation/scroll-reveal/reveal-custom.js new file mode 100644 index 0000000..2233ecc --- /dev/null +++ b/public/admin/assets/js/animation/scroll-reveal/reveal-custom.js @@ -0,0 +1,17 @@ + +/*---------------------------------------------------- + Scroll reveal animation + ----------------------------------------------------*/ +(function($) { +"use strict"; + if (Modernizr.csstransforms3d) { + window.sr = ScrollReveal(); + sr.reveal('.reveal', { + duration: 800, + delay: 400, + reset: true, + easing: 'linear', + scale: 1 + }); + } +})(jQuery); \ No newline at end of file diff --git a/public/admin/assets/js/animation/scroll-reveal/scrollreveal.min.js b/public/admin/assets/js/animation/scroll-reveal/scrollreveal.min.js new file mode 100644 index 0000000..733e682 --- /dev/null +++ b/public/admin/assets/js/animation/scroll-reveal/scrollreveal.min.js @@ -0,0 +1 @@ +!function(){"use strict";function e(n){return"undefined"==typeof this||Object.getPrototypeOf(this)!==e.prototype?new e(n):(O=this,O.version="3.4.0",O.tools=new E,O.isSupported()?(O.tools.extend(O.defaults,n||{}),O.defaults.container=t(O.defaults),O.store={elements:{},containers:[]},O.sequences={},O.history=[],O.uid=0,O.initialized=!1):"undefined"!=typeof console&&null!==console,O)}function t(e){if(e&&e.container){if("string"==typeof e.container)return window.document.documentElement.querySelector(e.container);if(O.tools.isNode(e.container))return e.container}return O.defaults.container}function n(e,t){return"string"==typeof e?Array.prototype.slice.call(t.querySelectorAll(e)):O.tools.isNode(e)?[e]:O.tools.isNodeList(e)?Array.prototype.slice.call(e):Array.isArray(e)?e.filter(O.tools.isNode):[]}function i(){return++O.uid}function o(e,t,n){t.container&&(t.container=n),e.config?e.config=O.tools.extendClone(e.config,t):e.config=O.tools.extendClone(O.defaults,t),"top"===e.config.origin||"bottom"===e.config.origin?e.config.axis="Y":e.config.axis="X"}function r(e){var t=window.getComputedStyle(e.domEl);e.styles||(e.styles={transition:{},transform:{},computed:{}},e.styles.inline=e.domEl.getAttribute("style")||"",e.styles.inline+="; visibility: visible; ",e.styles.computed.opacity=t.opacity,t.transition&&"all 0s ease 0s"!==t.transition?e.styles.computed.transition=t.transition+", ":e.styles.computed.transition=""),e.styles.transition.instant=s(e,0),e.styles.transition.delayed=s(e,e.config.delay),e.styles.transform.initial=" -webkit-transform:",e.styles.transform.target=" -webkit-transform:",a(e),e.styles.transform.initial+="transform:",e.styles.transform.target+="transform:",a(e)}function s(e,t){var n=e.config;return"-webkit-transition: "+e.styles.computed.transition+"-webkit-transform "+n.duration/1e3+"s "+n.easing+" "+t/1e3+"s, opacity "+n.duration/1e3+"s "+n.easing+" "+t/1e3+"s; transition: "+e.styles.computed.transition+"transform "+n.duration/1e3+"s "+n.easing+" "+t/1e3+"s, opacity "+n.duration/1e3+"s "+n.easing+" "+t/1e3+"s; "}function a(e){var t,n=e.config,i=e.styles.transform;t="top"===n.origin||"left"===n.origin?/^-/.test(n.distance)?n.distance.substr(1):"-"+n.distance:n.distance,parseInt(n.distance)&&(i.initial+=" translate"+n.axis+"("+t+")",i.target+=" translate"+n.axis+"(0)"),n.scale&&(i.initial+=" scale("+n.scale+")",i.target+=" scale(1)"),n.rotate.x&&(i.initial+=" rotateX("+n.rotate.x+"deg)",i.target+=" rotateX(0)"),n.rotate.y&&(i.initial+=" rotateY("+n.rotate.y+"deg)",i.target+=" rotateY(0)"),n.rotate.z&&(i.initial+=" rotateZ("+n.rotate.z+"deg)",i.target+=" rotateZ(0)"),i.initial+="; opacity: "+n.opacity+";",i.target+="; opacity: "+e.styles.computed.opacity+";"}function l(e){var t=e.config.container;t&&O.store.containers.indexOf(t)===-1&&O.store.containers.push(e.config.container),O.store.elements[e.id]=e}function c(e,t,n){var i={target:e,config:t,interval:n};O.history.push(i)}function f(){if(O.isSupported()){y();for(var e=0;em&&np}function n(){return"fixed"===window.getComputedStyle(e.domEl).position}var i=x(e.domEl),o=b(e.config.container),r=h(e.config.container),s=e.config.viewFactor,a=i.height,l=i.width,c=i.top,f=i.left,d=c+a,u=f+l;return t()||n()}function E(){}var O,A;e.prototype.defaults={origin:"bottom",distance:"20px",duration:500,delay:0,rotate:{x:0,y:0,z:0},opacity:0,scale:.9,easing:"cubic-bezier(0.6, 0.2, 0.1, 1)",container:window.document.documentElement,mobile:!0,reset:!1,useDelay:"always",viewFactor:.2,viewOffset:{top:0,right:0,bottom:0,left:0},beforeReveal:function(e){},beforeReset:function(e){},afterReveal:function(e){},afterReset:function(e){}},e.prototype.isSupported=function(){var e=document.documentElement.style;return"WebkitTransition"in e&&"WebkitTransform"in e||"transition"in e&&"transform"in e},e.prototype.reveal=function(e,s,a,d){var u,y,m,p,g,w;if(void 0!==s&&"number"==typeof s?(a=s,s={}):void 0!==s&&null!==s||(s={}),u=t(s),y=n(e,u),!y.length)return O;a&&"number"==typeof a&&(w=i(),g=O.sequences[w]={id:w,interval:a,elemIds:[],active:!1});for(var v=0;v
'); + this.glareElementWrapper = $(this).find(".js-tilt-glare"); + this.glareElement = $(this).find(".js-tilt-glare-inner"); + if (glarePrerender) return; + var stretch = { + 'position': 'absolute', + 'top': '0', + 'left': '0', + 'width': '100%', + 'height': '100%' + }; + this.glareElementWrapper.css(stretch).css({ + 'overflow': 'hidden', + 'pointer-events': 'none' + }); + this.glareElement.css({ + 'position': 'absolute', + 'top': '50%', + 'left': '50%', + 'background-image': 'linear-gradient(0deg, rgba(255,255,255,0) 0%, rgba(255,255,255,1) 100%)', + 'width': '' + $(this).outerWidth() * 2, + 'height': '' + $(this).outerWidth() * 2, + 'transform': 'rotate(180deg) translate(-50%, -50%)', + 'transform-origin': '0% 0%', + 'opacity': '0' + }); + }; + var updateGlareSize = function updateGlareSize() { + this.glareElement.css({ + 'width': '' + $(this).outerWidth() * 2, + 'height': '' + $(this).outerWidth() * 2 + }); + }; + $.fn.tilt.destroy = function () { + $(this).each(function () { + $(this).find('.js-tilt-glare').remove(); + $(this).css({ 'will-change': '', 'transform': '' }); + $(this).off('mousemove mouseenter mouseleave'); + }); + }; + $.fn.tilt.getValues = function () { + var results = []; + $(this).each(function () { + this.mousePositions = getMousePositions.call(this); + results.push(getValues.call(this)); + }); + return results; + }; + $.fn.tilt.reset = function () { + $(this).each(function () { + var _this3 = this; + + this.mousePositions = getMousePositions.call(this); + this.settings = $(this).data('settings'); + mouseLeave.call(this); + setTimeout(function () { + _this3.reset = false; + }, this.settings.transition); + }); + }; + return this.each(function () { + var _this4 = this; + this.settings = $.extend({ + maxTilt: $(this).is('[data-tilt-max]') ? $(this).data('tilt-max') : 20, + perspective: $(this).is('[data-tilt-perspective]') ? $(this).data('tilt-perspective') : 300, + easing: $(this).is('[data-tilt-easing]') ? $(this).data('tilt-easing') : 'cubic-bezier(.03,.98,.52,.99)', + scale: $(this).is('[data-tilt-scale]') ? $(this).data('tilt-scale') : '1', + speed: $(this).is('[data-tilt-speed]') ? $(this).data('tilt-speed') : '400', + transition: $(this).is('[data-tilt-transition]') ? $(this).data('tilt-transition') : true, + disableAxis: $(this).is('[data-tilt-disable-axis]') ? $(this).data('tilt-disable-axis') : null, + axis: $(this).is('[data-tilt-axis]') ? $(this).data('tilt-axis') : null, + reset: $(this).is('[data-tilt-reset]') ? $(this).data('tilt-reset') : true, + glare: $(this).is('[data-tilt-glare]') ? $(this).data('tilt-glare') : false, + maxGlare: $(this).is('[data-tilt-maxglare]') ? $(this).data('tilt-maxglare') : 1 + }, options); + if (this.settings.axis !== null) { + this.settings.disableAxis = this.settings.axis; + } + this.init = function () { + $(_this4).data('settings', _this4.settings); + if (_this4.settings.glare) prepareGlare.call(_this4); + bindEvents.call(_this4); + }; + this.init(); + }); + }; + $('[data-tilt]').tilt(); + return true; +}); \ No newline at end of file diff --git a/public/admin/assets/js/animation/wow/wow-init.js b/public/admin/assets/js/animation/wow/wow-init.js new file mode 100644 index 0000000..2a9c0f2 --- /dev/null +++ b/public/admin/assets/js/animation/wow/wow-init.js @@ -0,0 +1,12 @@ +(function($) { +"use strict"; + var wow_init = { + init: function() { + $('.grid').isotope({ + itemSelector: '.grid-item' + }); + new WOW().init(); + } + }; + wow_init.init() +})(jQuery); \ No newline at end of file diff --git a/public/admin/assets/js/animation/wow/wow.min.js b/public/admin/assets/js/animation/wow/wow.min.js new file mode 100644 index 0000000..a123b5e --- /dev/null +++ b/public/admin/assets/js/animation/wow/wow.min.js @@ -0,0 +1,3 @@ +/*! WOW wow.js - v1.3.0 - 2016-10-04 +* https://wowjs.uk +* Copyright (c) 2016 Thomas Grainger; Licensed MIT */!function(a,b){if("function"==typeof define&&define.amd)define(["module","exports"],b);else if("undefined"!=typeof exports)b(module,exports);else{var c={exports:{}};b(c,c.exports),a.WOW=c.exports}}(this,function(a,b){"use strict";function c(a,b){if(!(a instanceof b))throw new TypeError("Cannot call a class as a function")}function d(a,b){return b.indexOf(a)>=0}function e(a,b){for(var c in b)if(null==a[c]){var d=b[c];a[c]=d}return a}function f(a){return/Android|webOS|iPhone|iPad|iPod|BlackBerry|IEMobile|Opera Mini/i.test(a)}function g(a){var b=arguments.length<=1||void 0===arguments[1]?!1:arguments[1],c=arguments.length<=2||void 0===arguments[2]?!1:arguments[2],d=arguments.length<=3||void 0===arguments[3]?null:arguments[3],e=void 0;return null!=document.createEvent?(e=document.createEvent("CustomEvent"),e.initCustomEvent(a,b,c,d)):null!=document.createEventObject?(e=document.createEventObject(),e.eventType=a):e.eventName=a,e}function h(a,b){null!=a.dispatchEvent?a.dispatchEvent(b):b in(null!=a)?a[b]():"on"+b in(null!=a)&&a["on"+b]()}function i(a,b,c){null!=a.addEventListener?a.addEventListener(b,c,!1):null!=a.attachEvent?a.attachEvent("on"+b,c):a[b]=c}function j(a,b,c){null!=a.removeEventListener?a.removeEventListener(b,c,!1):null!=a.detachEvent?a.detachEvent("on"+b,c):delete a[b]}function k(){return"innerHeight"in window?window.innerHeight:document.documentElement.clientHeight}Object.defineProperty(b,"__esModule",{value:!0});var l,m,n=function(){function a(a,b){for(var c=0;c=0){var b=a.target||a.srcElement;b.className=b.className.replace(this.config.animateClass,"").trim()}}},{key:"customStyle",value:function(a,b,c,d,e){return b&&this.cacheAnimationName(a),a.style.visibility=b?"hidden":"visible",c&&this.vendorSet(a.style,{animationDuration:c}),d&&this.vendorSet(a.style,{animationDelay:d}),e&&this.vendorSet(a.style,{animationIterationCount:e}),this.vendorSet(a.style,{animationName:b?"none":this.cachedAnimationName(a)}),a}},{key:"vendorSet",value:function(a,b){for(var c in b)if(b.hasOwnProperty(c)){var d=b[c];a[""+c]=d;for(var e=0;e=e&&f>=c}},{key:"disabled",value:function(){return!this.config.mobile&&f(navigator.userAgent)}}]),a}();b["default"]=r,a.exports=b["default"]}); \ No newline at end of file diff --git a/public/admin/assets/js/bookmark/custom.js b/public/admin/assets/js/bookmark/custom.js new file mode 100644 index 0000000..4d81b8b --- /dev/null +++ b/public/admin/assets/js/bookmark/custom.js @@ -0,0 +1,163 @@ + +function submitBookMark() { + if ($(".form-bookmark").valid()) { + var index_var = $('#index_var').val(); + var weburl = $('#bm-weburl').val(); + var title = $('#bm-title').val(); + var desc = $('#bm-desc').val(); + var group = $('#bm-group').val(); + var collection = $('#bm-collection').val(); + $('#index_var').val(parseInt(index_var)+6); + + var bmColData = '
\ +
\ +
\ +
\ +
\ +
'+title+'
\ +

'+weburl+'

\ +
\ + \ +
\ +
\ +

'+desc+'

\ + '+collection+'\ +
\ +
\ +
\ +
\ +
'; + + $('#bookmarkData').append(bmColData); + $('#bookmarkData1').append(bmColData); + $('#exampleModal').modal('toggle'); + $('#bookmark-form').find('input[type="text"],textarea').val(''); + } +} + +// edit contact + +function editBookmark(index_var){ + + var title = $(".title_"+index_var).html(); + var weburl = $(".weburl_"+index_var).html(); + var desc = $(".desc_"+index_var).html(); + $("#edittitle").val(title); + $("#editurl").val(weburl); + $("#editdesc").val(desc); +} + + +// favourites bookmark + +var fav_arr = []; +function setFavourite(index_var){ + $(".favourite_"+index_var).toggleClass("favourite"); + var title = $(".title_"+index_var).html(); + var weburl=$(".weburl_"+index_var).html(); + var desc = $(".desc_"+index_var).html(); + var collection = $(".collection_"+index_var).html(); + var n = fav_arr.includes(index_var); + + console.log(fav_arr); + console.log(n); + if(n){ + for( var i = 0; i < fav_arr.length; i++){ + if ( fav_arr[i] === index_var) { + fav_arr.splice(i, 1); + } + } + $(".favourite_card_"+index_var).hide(); + } + else { + fav_arr.push(index_var); + + var bmColData = '
\ +
\ +
\ +
\ +
\ +
'+title+'
\ +

'+weburl+'

\ +
\ + \ +
\ +
\ +

'+desc+'

\ + '+collection+'\ +
\ +
\ +
\ +
\ +
'; + $('#favouriteData').append(bmColData); + } + if (fav_arr.length == 0) { + $(".no-favourite").show(); + } else { + $(".no-favourite").hide(); + } +} + + +// list-view +$('.grid-bookmark-view').on('click', function(e) { + $('.details-bookmark').removeClass("list-bookmark"); + +}); +$('.list-layout-view').on('click', function(e) { + $(".details-bookmark").css("opacity","0.2"); + $('.details-bookmark').addClass("list-bookmark"); + setTimeout(function(){ + $(".details-bookmark").css("opacity","1"); + }, 500); +}); + diff --git a/public/admin/assets/js/bookmark/jquery.validate.min.js b/public/admin/assets/js/bookmark/jquery.validate.min.js new file mode 100644 index 0000000..49bd55c --- /dev/null +++ b/public/admin/assets/js/bookmark/jquery.validate.min.js @@ -0,0 +1,4 @@ +/*! jQuery Validation Plugin - v1.16.0 - 12/2/2016 + * http://jqueryvalidation.org/ + * Copyright (c) 2016 Jörn Zaefferer; Licensed MIT */ +!function(a){"function"==typeof define&&define.amd?define(["jquery"],a):"object"==typeof module&&module.exports?module.exports=a(require("jquery")):a(jQuery)}(function(a){a.extend(a.fn,{validate:function(b){if(!this.length)return void(b&&b.debug&&window.console&&console.warn("Nothing selected, can't validate, returning nothing."));var c=a.data(this[0],"validator");return c?c:(this.attr("novalidate","novalidate"),c=new a.validator(b,this[0]),a.data(this[0],"validator",c),c.settings.onsubmit&&(this.on("click.validate",":submit",function(b){c.settings.submitHandler&&(c.submitButton=b.target),a(this).hasClass("cancel")&&(c.cancelSubmit=!0),void 0!==a(this).attr("formnovalidate")&&(c.cancelSubmit=!0)}),this.on("submit.validate",function(b){function d(){var d,e;return!c.settings.submitHandler||(c.submitButton&&(d=a("").attr("name",c.submitButton.name).val(a(c.submitButton).val()).appendTo(c.currentForm)),e=c.settings.submitHandler.call(c,c.currentForm,b),c.submitButton&&d.remove(),void 0!==e&&e)}return c.settings.debug&&b.preventDefault(),c.cancelSubmit?(c.cancelSubmit=!1,d()):c.form()?c.pendingRequest?(c.formSubmitted=!0,!1):d():(c.focusInvalid(),!1)})),c)},valid:function(){var b,c,d;return a(this[0]).is("form")?b=this.validate().form():(d=[],b=!0,c=a(this[0].form).validate(),this.each(function(){b=c.element(this)&&b,b||(d=d.concat(c.errorList))}),c.errorList=d),b},rules:function(b,c){var d,e,f,g,h,i,j=this[0];if(null!=j&&null!=j.form){if(b)switch(d=a.data(j.form,"validator").settings,e=d.rules,f=a.validator.staticRules(j),b){case"add":a.extend(f,a.validator.normalizeRule(c)),delete f.messages,e[j.name]=f,c.messages&&(d.messages[j.name]=a.extend(d.messages[j.name],c.messages));break;case"remove":return c?(i={},a.each(c.split(/\s/),function(b,c){i[c]=f[c],delete f[c],"required"===c&&a(j).removeAttr("aria-required")}),i):(delete e[j.name],f)}return g=a.validator.normalizeRules(a.extend({},a.validator.classRules(j),a.validator.attributeRules(j),a.validator.dataRules(j),a.validator.staticRules(j)),j),g.required&&(h=g.required,delete g.required,g=a.extend({required:h},g),a(j).attr("aria-required","true")),g.remote&&(h=g.remote,delete g.remote,g=a.extend(g,{remote:h})),g}}}),a.extend(a.expr.pseudos||a.expr[":"],{blank:function(b){return!a.trim(""+a(b).val())},filled:function(b){var c=a(b).val();return null!==c&&!!a.trim(""+c)},unchecked:function(b){return!a(b).prop("checked")}}),a.validator=function(b,c){this.settings=a.extend(!0,{},a.validator.defaults,b),this.currentForm=c,this.init()},a.validator.format=function(b,c){return 1===arguments.length?function(){var c=a.makeArray(arguments);return c.unshift(b),a.validator.format.apply(this,c)}:void 0===c?b:(arguments.length>2&&c.constructor!==Array&&(c=a.makeArray(arguments).slice(1)),c.constructor!==Array&&(c=[c]),a.each(c,function(a,c){b=b.replace(new RegExp("\\{"+a+"\\}","g"),function(){return c})}),b)},a.extend(a.validator,{defaults:{messages:{},groups:{},rules:{},errorClass:"error",pendingClass:"pending",validClass:"valid",errorElement:"label",focusCleanup:!1,focusInvalid:!0,errorContainer:a([]),errorLabelContainer:a([]),onsubmit:!0,ignore:":hidden",ignoreTitle:!1,onfocusin:function(a){this.lastActive=a,this.settings.focusCleanup&&(this.settings.unhighlight&&this.settings.unhighlight.call(this,a,this.settings.errorClass,this.settings.validClass),this.hideThese(this.errorsFor(a)))},onfocusout:function(a){this.checkable(a)||!(a.name in this.submitted)&&this.optional(a)||this.element(a)},onkeyup:function(b,c){var d=[16,17,18,20,35,36,37,38,39,40,45,144,225];9===c.which&&""===this.elementValue(b)||a.inArray(c.keyCode,d)!==-1||(b.name in this.submitted||b.name in this.invalid)&&this.element(b)},onclick:function(a){a.name in this.submitted?this.element(a):a.parentNode.name in this.submitted&&this.element(a.parentNode)},highlight:function(b,c,d){"radio"===b.type?this.findByName(b.name).addClass(c).removeClass(d):a(b).addClass(c).removeClass(d)},unhighlight:function(b,c,d){"radio"===b.type?this.findByName(b.name).removeClass(c).addClass(d):a(b).removeClass(c).addClass(d)}},setDefaults:function(b){a.extend(a.validator.defaults,b)},messages:{required:"This field is required.",remote:"Please fix this field.",email:"Please enter a valid email address.",url:"Please enter a valid URL.",date:"Please enter a valid date.",dateISO:"Please enter a valid date (ISO).",number:"Please enter a valid number.",digits:"Please enter only digits.",equalTo:"Please enter the same value again.",maxlength:a.validator.format("Please enter no more than {0} characters."),minlength:a.validator.format("Please enter at least {0} characters."),rangelength:a.validator.format("Please enter a value between {0} and {1} characters long."),range:a.validator.format("Please enter a value between {0} and {1}."),max:a.validator.format("Please enter a value less than or equal to {0}."),min:a.validator.format("Please enter a value greater than or equal to {0}."),step:a.validator.format("Please enter a multiple of {0}.")},autoCreateRanges:!1,prototype:{init:function(){function b(b){!this.form&&this.hasAttribute("contenteditable")&&(this.form=a(this).closest("form")[0]);var c=a.data(this.form,"validator"),d="on"+b.type.replace(/^validate/,""),e=c.settings;e[d]&&!a(this).is(e.ignore)&&e[d].call(c,this,b)}this.labelContainer=a(this.settings.errorLabelContainer),this.errorContext=this.labelContainer.length&&this.labelContainer||a(this.currentForm),this.containers=a(this.settings.errorContainer).add(this.settings.errorLabelContainer),this.submitted={},this.valueCache={},this.pendingRequest=0,this.pending={},this.invalid={},this.reset();var c,d=this.groups={};a.each(this.settings.groups,function(b,c){"string"==typeof c&&(c=c.split(/\s/)),a.each(c,function(a,c){d[c]=b})}),c=this.settings.rules,a.each(c,function(b,d){c[b]=a.validator.normalizeRule(d)}),a(this.currentForm).on("focusin.validate focusout.validate keyup.validate",":text, [type='password'], [type='file'], select, textarea, [type='number'], [type='search'], [type='tel'], [type='url'], [type='email'], [type='datetime'], [type='date'], [type='month'], [type='week'], [type='time'], [type='datetime-local'], [type='range'], [type='color'], [type='radio'], [type='checkbox'], [contenteditable], [type='button']",b).on("click.validate","select, option, [type='radio'], [type='checkbox']",b),this.settings.invalidHandler&&a(this.currentForm).on("invalid-form.validate",this.settings.invalidHandler),a(this.currentForm).find("[required], [data-rule-required], .required").attr("aria-required","true")},form:function(){return this.checkForm(),a.extend(this.submitted,this.errorMap),this.invalid=a.extend({},this.errorMap),this.valid()||a(this.currentForm).triggerHandler("invalid-form",[this]),this.showErrors(),this.valid()},checkForm:function(){this.prepareForm();for(var a=0,b=this.currentElements=this.elements();b[a];a++)this.check(b[a]);return this.valid()},element:function(b){var c,d,e=this.clean(b),f=this.validationTargetFor(e),g=this,h=!0;return void 0===f?delete this.invalid[e.name]:(this.prepareElement(f),this.currentElements=a(f),d=this.groups[f.name],d&&a.each(this.groups,function(a,b){b===d&&a!==f.name&&(e=g.validationTargetFor(g.clean(g.findByName(a))),e&&e.name in g.invalid&&(g.currentElements.push(e),h=g.check(e)&&h))}),c=this.check(f)!==!1,h=h&&c,c?this.invalid[f.name]=!1:this.invalid[f.name]=!0,this.numberOfInvalids()||(this.toHide=this.toHide.add(this.containers)),this.showErrors(),a(b).attr("aria-invalid",!c)),h},showErrors:function(b){if(b){var c=this;a.extend(this.errorMap,b),this.errorList=a.map(this.errorMap,function(a,b){return{message:a,element:c.findByName(b)[0]}}),this.successList=a.grep(this.successList,function(a){return!(a.name in b)})}this.settings.showErrors?this.settings.showErrors.call(this,this.errorMap,this.errorList):this.defaultShowErrors()},resetForm:function(){a.fn.resetForm&&a(this.currentForm).resetForm(),this.invalid={},this.submitted={},this.prepareForm(),this.hideErrors();var b=this.elements().removeData("previousValue").removeAttr("aria-invalid");this.resetElements(b)},resetElements:function(a){var b;if(this.settings.unhighlight)for(b=0;a[b];b++)this.settings.unhighlight.call(this,a[b],this.settings.errorClass,""),this.findByName(a[b].name).removeClass(this.settings.validClass);else a.removeClass(this.settings.errorClass).removeClass(this.settings.validClass)},numberOfInvalids:function(){return this.objectLength(this.invalid)},objectLength:function(a){var b,c=0;for(b in a)a[b]&&c++;return c},hideErrors:function(){this.hideThese(this.toHide)},hideThese:function(a){a.not(this.containers).text(""),this.addWrapper(a).hide()},valid:function(){return 0===this.size()},size:function(){return this.errorList.length},focusInvalid:function(){if(this.settings.focusInvalid)try{a(this.findLastActive()||this.errorList.length&&this.errorList[0].element||[]).filter(":visible").focus().trigger("focusin")}catch(b){}},findLastActive:function(){var b=this.lastActive;return b&&1===a.grep(this.errorList,function(a){return a.element.name===b.name}).length&&b},elements:function(){var b=this,c={};return a(this.currentForm).find("input, select, textarea, [contenteditable]").not(":submit, :reset, :image, :disabled").not(this.settings.ignore).filter(function(){var d=this.name||a(this).attr("name");return!d&&b.settings.debug&&window.console&&console.error("%o has no name assigned",this),this.hasAttribute("contenteditable")&&(this.form=a(this).closest("form")[0]),!(d in c||!b.objectLength(a(this).rules()))&&(c[d]=!0,!0)})},clean:function(b){return a(b)[0]},errors:function(){var b=this.settings.errorClass.split(" ").join(".");return a(this.settings.errorElement+"."+b,this.errorContext)},resetInternals:function(){this.successList=[],this.errorList=[],this.errorMap={},this.toShow=a([]),this.toHide=a([])},reset:function(){this.resetInternals(),this.currentElements=a([])},prepareForm:function(){this.reset(),this.toHide=this.errors().add(this.containers)},prepareElement:function(a){this.reset(),this.toHide=this.errorsFor(a)},elementValue:function(b){var c,d,e=a(b),f=b.type;return"radio"===f||"checkbox"===f?this.findByName(b.name).filter(":checked").val():"number"===f&&"undefined"!=typeof b.validity?b.validity.badInput?"NaN":e.val():(c=b.hasAttribute("contenteditable")?e.text():e.val(),"file"===f?"C:\\fakepath\\"===c.substr(0,12)?c.substr(12):(d=c.lastIndexOf("/"),d>=0?c.substr(d+1):(d=c.lastIndexOf("\\"),d>=0?c.substr(d+1):c)):"string"==typeof c?c.replace(/\r/g,""):c)},check:function(b){b=this.validationTargetFor(this.clean(b));var c,d,e,f=a(b).rules(),g=a.map(f,function(a,b){return b}).length,h=!1,i=this.elementValue(b);if("function"==typeof f.normalizer){if(i=f.normalizer.call(b,i),"string"!=typeof i)throw new TypeError("The normalizer should return a string value.");delete f.normalizer}for(d in f){e={method:d,parameters:f[d]};try{if(c=a.validator.methods[d].call(this,i,b,e.parameters),"dependency-mismatch"===c&&1===g){h=!0;continue}if(h=!1,"pending"===c)return void(this.toHide=this.toHide.not(this.errorsFor(b)));if(!c)return this.formatAndAdd(b,e),!1}catch(j){throw this.settings.debug&&window.console&&console.log("Exception occurred when checking element "+b.id+", check the '"+e.method+"' method.",j),j instanceof TypeError&&(j.message+=". Exception occurred when checking element "+b.id+", check the '"+e.method+"' method."),j}}if(!h)return this.objectLength(f)&&this.successList.push(b),!0},customDataMessage:function(b,c){return a(b).data("msg"+c.charAt(0).toUpperCase()+c.substring(1).toLowerCase())||a(b).data("msg")},customMessage:function(a,b){var c=this.settings.messages[a];return c&&(c.constructor===String?c:c[b])},findDefined:function(){for(var a=0;aWarning: No message defined for "+b.name+""),e=/\$?\{(\d+)\}/g;return"function"==typeof d?d=d.call(this,c.parameters,b):e.test(d)&&(d=a.validator.format(d.replace(e,"{$1}"),c.parameters)),d},formatAndAdd:function(a,b){var c=this.defaultMessage(a,b);this.errorList.push({message:c,element:a,method:b.method}),this.errorMap[a.name]=c,this.submitted[a.name]=c},addWrapper:function(a){return this.settings.wrapper&&(a=a.add(a.parent(this.settings.wrapper))),a},defaultShowErrors:function(){var a,b,c;for(a=0;this.errorList[a];a++)c=this.errorList[a],this.settings.highlight&&this.settings.highlight.call(this,c.element,this.settings.errorClass,this.settings.validClass),this.showLabel(c.element,c.message);if(this.errorList.length&&(this.toShow=this.toShow.add(this.containers)),this.settings.success)for(a=0;this.successList[a];a++)this.showLabel(this.successList[a]);if(this.settings.unhighlight)for(a=0,b=this.validElements();b[a];a++)this.settings.unhighlight.call(this,b[a],this.settings.errorClass,this.settings.validClass);this.toHide=this.toHide.not(this.toShow),this.hideErrors(),this.addWrapper(this.toShow).show()},validElements:function(){return this.currentElements.not(this.invalidElements())},invalidElements:function(){return a(this.errorList).map(function(){return this.element})},showLabel:function(b,c){var d,e,f,g,h=this.errorsFor(b),i=this.idOrName(b),j=a(b).attr("aria-describedby");h.length?(h.removeClass(this.settings.validClass).addClass(this.settings.errorClass),h.html(c)):(h=a("<"+this.settings.errorElement+">").attr("id",i+"-error").addClass(this.settings.errorClass).html(c||""),d=h,this.settings.wrapper&&(d=h.hide().show().wrap("<"+this.settings.wrapper+"/>").parent()),this.labelContainer.length?this.labelContainer.append(d):this.settings.errorPlacement?this.settings.errorPlacement.call(this,d,a(b)):d.insertAfter(b),h.is("label")?h.attr("for",i):0===h.parents("label[for='"+this.escapeCssMeta(i)+"']").length&&(f=h.attr("id"),j?j.match(new RegExp("\\b"+this.escapeCssMeta(f)+"\\b"))||(j+=" "+f):j=f,a(b).attr("aria-describedby",j),e=this.groups[b.name],e&&(g=this,a.each(g.groups,function(b,c){c===e&&a("[name='"+g.escapeCssMeta(b)+"']",g.currentForm).attr("aria-describedby",h.attr("id"))})))),!c&&this.settings.success&&(h.text(""),"string"==typeof this.settings.success?h.addClass(this.settings.success):this.settings.success(h,b)),this.toShow=this.toShow.add(h)},errorsFor:function(b){var c=this.escapeCssMeta(this.idOrName(b)),d=a(b).attr("aria-describedby"),e="label[for='"+c+"'], label[for='"+c+"'] *";return d&&(e=e+", #"+this.escapeCssMeta(d).replace(/\s+/g,", #")),this.errors().filter(e)},escapeCssMeta:function(a){return a.replace(/([\\!"#$%&'()*+,./:;<=>?@\[\]^`{|}~])/g,"\\$1")},idOrName:function(a){return this.groups[a.name]||(this.checkable(a)?a.name:a.id||a.name)},validationTargetFor:function(b){return this.checkable(b)&&(b=this.findByName(b.name)),a(b).not(this.settings.ignore)[0]},checkable:function(a){return/radio|checkbox/i.test(a.type)},findByName:function(b){return a(this.currentForm).find("[name='"+this.escapeCssMeta(b)+"']")},getLength:function(b,c){switch(c.nodeName.toLowerCase()){case"select":return a("option:selected",c).length;case"input":if(this.checkable(c))return this.findByName(c.name).filter(":checked").length}return b.length},depend:function(a,b){return!this.dependTypes[typeof a]||this.dependTypes[typeof a](a,b)},dependTypes:{"boolean":function(a){return a},string:function(b,c){return!!a(b,c.form).length},"function":function(a,b){return a(b)}},optional:function(b){var c=this.elementValue(b);return!a.validator.methods.required.call(this,c,b)&&"dependency-mismatch"},startRequest:function(b){this.pending[b.name]||(this.pendingRequest++,a(b).addClass(this.settings.pendingClass),this.pending[b.name]=!0)},stopRequest:function(b,c){this.pendingRequest--,this.pendingRequest<0&&(this.pendingRequest=0),delete this.pending[b.name],a(b).removeClass(this.settings.pendingClass),c&&0===this.pendingRequest&&this.formSubmitted&&this.form()?(a(this.currentForm).submit(),this.formSubmitted=!1):!c&&0===this.pendingRequest&&this.formSubmitted&&(a(this.currentForm).triggerHandler("invalid-form",[this]),this.formSubmitted=!1)},previousValue:function(b,c){return c="string"==typeof c&&c||"remote",a.data(b,"previousValue")||a.data(b,"previousValue",{old:null,valid:!0,message:this.defaultMessage(b,{method:c})})},destroy:function(){this.resetForm(),a(this.currentForm).off(".validate").removeData("validator").find(".validate-equalTo-blur").off(".validate-equalTo").removeClass("validate-equalTo-blur")}},classRuleSettings:{required:{required:!0},email:{email:!0},url:{url:!0},date:{date:!0},dateISO:{dateISO:!0},number:{number:!0},digits:{digits:!0},creditcard:{creditcard:!0}},addClassRules:function(b,c){b.constructor===String?this.classRuleSettings[b]=c:a.extend(this.classRuleSettings,b)},classRules:function(b){var c={},d=a(b).attr("class");return d&&a.each(d.split(" "),function(){this in a.validator.classRuleSettings&&a.extend(c,a.validator.classRuleSettings[this])}),c},normalizeAttributeRule:function(a,b,c,d){/min|max|step/.test(c)&&(null===b||/number|range|text/.test(b))&&(d=Number(d),isNaN(d)&&(d=void 0)),d||0===d?a[c]=d:b===c&&"range"!==b&&(a[c]=!0)},attributeRules:function(b){var c,d,e={},f=a(b),g=b.getAttribute("type");for(c in a.validator.methods)"required"===c?(d=b.getAttribute(c),""===d&&(d=!0),d=!!d):d=f.attr(c),this.normalizeAttributeRule(e,g,c,d);return e.maxlength&&/-1|2147483647|524288/.test(e.maxlength)&&delete e.maxlength,e},dataRules:function(b){var c,d,e={},f=a(b),g=b.getAttribute("type");for(c in a.validator.methods)d=f.data("rule"+c.charAt(0).toUpperCase()+c.substring(1).toLowerCase()),this.normalizeAttributeRule(e,g,c,d);return e},staticRules:function(b){var c={},d=a.data(b.form,"validator");return d.settings.rules&&(c=a.validator.normalizeRule(d.settings.rules[b.name])||{}),c},normalizeRules:function(b,c){return a.each(b,function(d,e){if(e===!1)return void delete b[d];if(e.param||e.depends){var f=!0;switch(typeof e.depends){case"string":f=!!a(e.depends,c.form).length;break;case"function":f=e.depends.call(c,c)}f?b[d]=void 0===e.param||e.param:(a.data(c.form,"validator").resetElements(a(c)),delete b[d])}}),a.each(b,function(d,e){b[d]=a.isFunction(e)&&"normalizer"!==d?e(c):e}),a.each(["minlength","maxlength"],function(){b[this]&&(b[this]=Number(b[this]))}),a.each(["rangelength","range"],function(){var c;b[this]&&(a.isArray(b[this])?b[this]=[Number(b[this][0]),Number(b[this][1])]:"string"==typeof b[this]&&(c=b[this].replace(/[\[\]]/g,"").split(/[\s,]+/),b[this]=[Number(c[0]),Number(c[1])]))}),a.validator.autoCreateRanges&&(null!=b.min&&null!=b.max&&(b.range=[b.min,b.max],delete b.min,delete b.max),null!=b.minlength&&null!=b.maxlength&&(b.rangelength=[b.minlength,b.maxlength],delete b.minlength,delete b.maxlength)),b},normalizeRule:function(b){if("string"==typeof b){var c={};a.each(b.split(/\s/),function(){c[this]=!0}),b=c}return b},addMethod:function(b,c,d){a.validator.methods[b]=c,a.validator.messages[b]=void 0!==d?d:a.validator.messages[b],c.length<3&&a.validator.addClassRules(b,a.validator.normalizeRule(b))},methods:{required:function(b,c,d){if(!this.depend(d,c))return"dependency-mismatch";if("select"===c.nodeName.toLowerCase()){var e=a(c).val();return e&&e.length>0}return this.checkable(c)?this.getLength(b,c)>0:b.length>0},email:function(a,b){return this.optional(b)||/^[a-zA-Z0-9.!#$%&'*+\/=?^_`{|}~-]+@[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?(?:\.[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?)*$/.test(a)},url:function(a,b){return this.optional(b)||/^(?:(?:(?:https?|ftp):)?\/\/)(?:\S+(?::\S*)?@)?(?:(?!(?:10|127)(?:\.\d{1,3}){3})(?!(?:169\.254|192\.168)(?:\.\d{1,3}){2})(?!172\.(?:1[6-9]|2\d|3[0-1])(?:\.\d{1,3}){2})(?:[1-9]\d?|1\d\d|2[01]\d|22[0-3])(?:\.(?:1?\d{1,2}|2[0-4]\d|25[0-5])){2}(?:\.(?:[1-9]\d?|1\d\d|2[0-4]\d|25[0-4]))|(?:(?:[a-z\u00a1-\uffff0-9]-*)*[a-z\u00a1-\uffff0-9]+)(?:\.(?:[a-z\u00a1-\uffff0-9]-*)*[a-z\u00a1-\uffff0-9]+)*(?:\.(?:[a-z\u00a1-\uffff]{2,})).?)(?::\d{2,5})?(?:[/?#]\S*)?$/i.test(a)},date:function(a,b){return this.optional(b)||!/Invalid|NaN/.test(new Date(a).toString())},dateISO:function(a,b){return this.optional(b)||/^\d{4}[\/\-](0?[1-9]|1[012])[\/\-](0?[1-9]|[12][0-9]|3[01])$/.test(a)},number:function(a,b){return this.optional(b)||/^(?:-?\d+|-?\d{1,3}(?:,\d{3})+)?(?:\.\d+)?$/.test(a)},digits:function(a,b){return this.optional(b)||/^\d+$/.test(a)},minlength:function(b,c,d){var e=a.isArray(b)?b.length:this.getLength(b,c);return this.optional(c)||e>=d},maxlength:function(b,c,d){var e=a.isArray(b)?b.length:this.getLength(b,c);return this.optional(c)||e<=d},rangelength:function(b,c,d){var e=a.isArray(b)?b.length:this.getLength(b,c);return this.optional(c)||e>=d[0]&&e<=d[1]},min:function(a,b,c){return this.optional(b)||a>=c},max:function(a,b,c){return this.optional(b)||a<=c},range:function(a,b,c){return this.optional(b)||a>=c[0]&&a<=c[1]},step:function(b,c,d){var e,f=a(c).attr("type"),g="Step attribute on input type "+f+" is not supported.",h=["text","number","range"],i=new RegExp("\\b"+f+"\\b"),j=f&&!i.test(h.join()),k=function(a){var b=(""+a).match(/(?:\.(\d+))?$/);return b&&b[1]?b[1].length:0},l=function(a){return Math.round(a*Math.pow(10,e))},m=!0;if(j)throw new Error(g);return e=k(d),(k(b)>e||l(b)%l(d)!==0)&&(m=!1),this.optional(c)||m},equalTo:function(b,c,d){var e=a(d);return this.settings.onfocusout&&e.not(".validate-equalTo-blur").length&&e.addClass("validate-equalTo-blur").on("blur.validate-equalTo",function(){a(c).valid()}),b===e.val()},remote:function(b,c,d,e){if(this.optional(c))return"dependency-mismatch";e="string"==typeof e&&e||"remote";var f,g,h,i=this.previousValue(c,e);return this.settings.messages[c.name]||(this.settings.messages[c.name]={}),i.originalMessage=i.originalMessage||this.settings.messages[c.name][e],this.settings.messages[c.name][e]=i.message,d="string"==typeof d&&{url:d}||d,h=a.param(a.extend({data:b},d.data)),i.old===h?i.valid:(i.old=h,f=this,this.startRequest(c),g={},g[c.name]=b,a.ajax(a.extend(!0,{mode:"abort",port:"validate"+c.name,dataType:"json",data:g,context:f.currentForm,success:function(a){var d,g,h,j=a===!0||"true"===a;f.settings.messages[c.name][e]=i.originalMessage,j?(h=f.formSubmitted,f.resetInternals(),f.toHide=f.errorsFor(c),f.formSubmitted=h,f.successList.push(c),f.invalid[c.name]=!1,f.showErrors()):(d={},g=a||f.defaultMessage(c,{method:e,parameters:b}),d[c.name]=i.message=g,f.invalid[c.name]=!0,f.showErrors(d)),i.valid=j,f.stopRequest(c,j)}},d)),"pending")}}});var b,c={};return a.ajaxPrefilter?a.ajaxPrefilter(function(a,b,d){var e=a.port;"abort"===a.mode&&(c[e]&&c[e].abort(),c[e]=d)}):(b=a.ajax,a.ajax=function(d){var e=("mode"in d?d:a.ajaxSettings).mode,f=("port"in d?d:a.ajaxSettings).port;return"abort"===e?(c[f]&&c[f].abort(),c[f]=b.apply(this,arguments),c[f]):b.apply(this,arguments)}),a}); \ No newline at end of file diff --git a/public/admin/assets/js/bootstrap/bootstrap.min.js b/public/admin/assets/js/bootstrap/bootstrap.min.js new file mode 100644 index 0000000..e9aefb9 --- /dev/null +++ b/public/admin/assets/js/bootstrap/bootstrap.min.js @@ -0,0 +1,7 @@ +/*! + * Bootstrap v5.0.0-beta2 (https://getbootstrap.com/) + * Copyright 2011-2021 The Bootstrap Authors (https://github.com/twbs/bootstrap/graphs/contributors) + * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE) + */ +!function(t,e){"object"==typeof exports&&"undefined"!=typeof module?module.exports=e(require("@popperjs/core")):"function"==typeof define&&define.amd?define(["@popperjs/core"],e):(t="undefined"!=typeof globalThis?globalThis:t||self).bootstrap=e(t.Popper)}(this,(function(t){"use strict";function e(t){if(t&&t.__esModule)return t;var e=Object.create(null);return t&&Object.keys(t).forEach((function(n){if("default"!==n){var i=Object.getOwnPropertyDescriptor(t,n);Object.defineProperty(e,n,i.get?i:{enumerable:!0,get:function(){return t[n]}})}})),e.default=t,Object.freeze(e)}var n=e(t);function i(t,e){for(var n=0;n0,i._pointerEvent=Boolean(window.PointerEvent),i._addEventListeners(),i}r(e,t);var n=e.prototype;return n.next=function(){this._isSliding||this._slide("next")},n.nextWhenVisible=function(){!document.hidden&&v(this._element)&&this.next()},n.prev=function(){this._isSliding||this._slide("prev")},n.pause=function(t){t||(this._isPaused=!0),Q(".carousel-item-next, .carousel-item-prev",this._element)&&(p(this._element),this.cycle(!0)),clearInterval(this._interval),this._interval=null},n.cycle=function(t){t||(this._isPaused=!1),this._interval&&(clearInterval(this._interval),this._interval=null),this._config&&this._config.interval&&!this._isPaused&&(this._updateInterval(),this._interval=setInterval((document.visibilityState?this.nextWhenVisible:this.next).bind(this),this._config.interval))},n.to=function(t){var e=this;this._activeElement=Q(".active.carousel-item",this._element);var n=this._getItemIndex(this._activeElement);if(!(t>this._items.length-1||t<0))if(this._isSliding)K.one(this._element,"slid.bs.carousel",(function(){return e.to(t)}));else{if(n===t)return this.pause(),void this.cycle();var i=t>n?"next":"prev";this._slide(i,this._items[t])}},n.dispose=function(){t.prototype.dispose.call(this),K.off(this._element,".bs.carousel"),this._items=null,this._config=null,this._interval=null,this._isPaused=null,this._isSliding=null,this._activeElement=null,this._indicatorsElement=null},n._getConfig=function(t){return t=s({},G,t),_("carousel",t,Z),t},n._handleSwipe=function(){var t=Math.abs(this.touchDeltaX);if(!(t<=40)){var e=t/this.touchDeltaX;this.touchDeltaX=0,e>0&&(E?this.next():this.prev()),e<0&&(E?this.prev():this.next())}},n._addEventListeners=function(){var t=this;this._config.keyboard&&K.on(this._element,"keydown.bs.carousel",(function(e){return t._keydown(e)})),"hover"===this._config.pause&&(K.on(this._element,"mouseenter.bs.carousel",(function(e){return t.pause(e)})),K.on(this._element,"mouseleave.bs.carousel",(function(e){return t.cycle(e)}))),this._config.touch&&this._touchSupported&&this._addTouchEventListeners()},n._addTouchEventListeners=function(){var t=this,e=function(e){!t._pointerEvent||"pen"!==e.pointerType&&"touch"!==e.pointerType?t._pointerEvent||(t.touchStartX=e.touches[0].clientX):t.touchStartX=e.clientX},n=function(e){!t._pointerEvent||"pen"!==e.pointerType&&"touch"!==e.pointerType||(t.touchDeltaX=e.clientX-t.touchStartX),t._handleSwipe(),"hover"===t._config.pause&&(t.pause(),t.touchTimeout&&clearTimeout(t.touchTimeout),t.touchTimeout=setTimeout((function(e){return t.cycle(e)}),500+t._config.interval))};q(".carousel-item img",this._element).forEach((function(t){K.on(t,"dragstart.bs.carousel",(function(t){return t.preventDefault()}))})),this._pointerEvent?(K.on(this._element,"pointerdown.bs.carousel",(function(t){return e(t)})),K.on(this._element,"pointerup.bs.carousel",(function(t){return n(t)})),this._element.classList.add("pointer-event")):(K.on(this._element,"touchstart.bs.carousel",(function(t){return e(t)})),K.on(this._element,"touchmove.bs.carousel",(function(e){return function(e){e.touches&&e.touches.length>1?t.touchDeltaX=0:t.touchDeltaX=e.touches[0].clientX-t.touchStartX}(e)})),K.on(this._element,"touchend.bs.carousel",(function(t){return n(t)})))},n._keydown=function(t){/input|textarea/i.test(t.target.tagName)||("ArrowLeft"===t.key?(t.preventDefault(),E?this.next():this.prev()):"ArrowRight"===t.key&&(t.preventDefault(),E?this.prev():this.next()))},n._getItemIndex=function(t){return this._items=t&&t.parentNode?q(".carousel-item",t.parentNode):[],this._items.indexOf(t)},n._getItemByDirection=function(t,e){var n="next"===t,i="prev"===t,o=this._getItemIndex(e),s=this._items.length-1;if((i&&0===o||n&&o===s)&&!this._config.wrap)return e;var r=(o+("prev"===t?-1:1))%this._items.length;return-1===r?this._items[this._items.length-1]:this._items[r]},n._triggerSlideEvent=function(t,e){var n=this._getItemIndex(t),i=this._getItemIndex(Q(".active.carousel-item",this._element));return K.trigger(this._element,"slide.bs.carousel",{relatedTarget:t,direction:e,from:i,to:n})},n._setActiveIndicatorElement=function(t){if(this._indicatorsElement){var e=Q(".active",this._indicatorsElement);e.classList.remove("active"),e.removeAttribute("aria-current");for(var n=q("[data-bs-target]",this._indicatorsElement),i=0;i0)for(var i=0;i0&&s--,"ArrowDown"===t.key&&sdocument.documentElement.clientHeight;e||(this._element.style.overflowY="hidden"),this._element.classList.add("modal-static");var n=f(this._dialog);K.off(this._element,"transitionend"),K.one(this._element,"transitionend",(function(){t._element.classList.remove("modal-static"),e||(K.one(t._element,"transitionend",(function(){t._element.style.overflowY=""})),m(t._element,n))})),m(this._element,n),this._element.focus()}},n._adjustDialog=function(){var t=this._element.scrollHeight>document.documentElement.clientHeight;(!this._isBodyOverflowing&&t&&!E||this._isBodyOverflowing&&!t&&E)&&(this._element.style.paddingLeft=this._scrollbarWidth+"px"),(this._isBodyOverflowing&&!t&&!E||!this._isBodyOverflowing&&t&&E)&&(this._element.style.paddingRight=this._scrollbarWidth+"px")},n._resetAdjustments=function(){this._element.style.paddingLeft="",this._element.style.paddingRight=""},n._checkScrollbar=function(){var t=document.body.getBoundingClientRect();this._isBodyOverflowing=Math.round(t.left+t.right)
',trigger:"hover focus",title:"",delay:0,html:!1,selector:!1,placement:"top",offset:[0,0],container:!1,fallbackPlacements:["top","right","bottom","left"],boundary:"clippingParents",customClass:"",sanitize:!0,sanitizeFn:null,allowList:{"*":["class","dir","id","lang","role",/^aria-[\w-]*$/i],a:["target","href","title","rel"],area:[],b:[],br:[],col:[],code:[],div:[],em:[],hr:[],h1:[],h2:[],h3:[],h4:[],h5:[],h6:[],i:[],img:["src","srcset","alt","title","width","height"],li:[],ol:[],p:[],pre:[],s:[],small:[],span:[],sub:[],sup:[],strong:[],u:[],ul:[]},popperConfig:null},kt={HIDE:"hide.bs.tooltip",HIDDEN:"hidden.bs.tooltip",SHOW:"show.bs.tooltip",SHOWN:"shown.bs.tooltip",INSERTED:"inserted.bs.tooltip",CLICK:"click.bs.tooltip",FOCUSIN:"focusin.bs.tooltip",FOCUSOUT:"focusout.bs.tooltip",MOUSEENTER:"mouseenter.bs.tooltip",MOUSELEAVE:"mouseleave.bs.tooltip"},Lt=function(e){function i(t,i){var o;if(void 0===n)throw new TypeError("Bootstrap's tooltips require Popper (https://popper.js.org)");return(o=e.call(this,t)||this)._isEnabled=!0,o._timeout=0,o._hoverState="",o._activeTrigger={},o._popper=null,o.config=o._getConfig(i),o.tip=null,o._setListeners(),o}r(i,e);var a=i.prototype;return a.enable=function(){this._isEnabled=!0},a.disable=function(){this._isEnabled=!1},a.toggleEnabled=function(){this._isEnabled=!this._isEnabled},a.toggle=function(t){if(this._isEnabled)if(t){var e=this._initializeOnDelegatedTarget(t);e._activeTrigger.click=!e._activeTrigger.click,e._isWithActiveTrigger()?e._enter(null,e):e._leave(null,e)}else{if(this.getTipElement().classList.contains("show"))return void this._leave(null,this);this._enter(null,this)}},a.dispose=function(){clearTimeout(this._timeout),K.off(this._element,this.constructor.EVENT_KEY),K.off(this._element.closest(".modal"),"hide.bs.modal",this._hideModalHandler),this.tip&&this.tip.parentNode&&this.tip.parentNode.removeChild(this.tip),this._isEnabled=null,this._timeout=null,this._hoverState=null,this._activeTrigger=null,this._popper&&this._popper.destroy(),this._popper=null,this.config=null,this.tip=null,e.prototype.dispose.call(this)},a.show=function(){var e=this;if("none"===this._element.style.display)throw new Error("Please use show on visible elements");if(this.isWithContent()&&this._isEnabled){var n=K.trigger(this._element,this.constructor.Event.SHOW),i=function t(e){if(!document.documentElement.attachShadow)return null;if("function"==typeof e.getRootNode){var n=e.getRootNode();return n instanceof ShadowRoot?n:null}return e instanceof ShadowRoot?e:e.parentNode?t(e.parentNode):null}(this._element),o=null===i?this._element.ownerDocument.documentElement.contains(this._element):i.contains(this._element);if(!n.defaultPrevented&&o){var s=this.getTipElement(),r=c(this.constructor.NAME);s.setAttribute("id",r),this._element.setAttribute("aria-describedby",r),this.setContent(),this.config.animation&&s.classList.add("fade");var a="function"==typeof this.config.placement?this.config.placement.call(this,s,this._element):this.config.placement,l=this._getAttachment(a);this._addAttachmentClass(l);var u=this._getContainer();k(s,this.constructor.DATA_KEY,this),this._element.ownerDocument.documentElement.contains(this.tip)||u.appendChild(s),K.trigger(this._element,this.constructor.Event.INSERTED),this._popper=t.createPopper(this._element,s,this._getPopperConfig(l)),s.classList.add("show");var h,d,p="function"==typeof this.config.customClass?this.config.customClass():this.config.customClass;p&&(h=s.classList).add.apply(h,p.split(" ")),"ontouchstart"in document.documentElement&&(d=[]).concat.apply(d,document.body.children).forEach((function(t){K.on(t,"mouseover",(function(){}))}));var g=function(){var t=e._hoverState;e._hoverState=null,K.trigger(e._element,e.constructor.Event.SHOWN),"out"===t&&e._leave(null,e)};if(this.tip.classList.contains("fade")){var _=f(this.tip);K.one(this.tip,"transitionend",g),m(this.tip,_)}else g()}}},a.hide=function(){var t=this;if(this._popper){var e=this.getTipElement(),n=function(){"show"!==t._hoverState&&e.parentNode&&e.parentNode.removeChild(e),t._cleanTipClass(),t._element.removeAttribute("aria-describedby"),K.trigger(t._element,t.constructor.Event.HIDDEN),t._popper&&(t._popper.destroy(),t._popper=null)};if(!K.trigger(this._element,this.constructor.Event.HIDE).defaultPrevented){var i;if(e.classList.remove("show"),"ontouchstart"in document.documentElement&&(i=[]).concat.apply(i,document.body.children).forEach((function(t){return K.off(t,"mouseover",b)})),this._activeTrigger.click=!1,this._activeTrigger.focus=!1,this._activeTrigger.hover=!1,this.tip.classList.contains("fade")){var o=f(e);K.one(e,"transitionend",n),m(e,o)}else n();this._hoverState=""}}},a.update=function(){null!==this._popper&&this._popper.update()},a.isWithContent=function(){return Boolean(this.getTitle())},a.getTipElement=function(){if(this.tip)return this.tip;var t=document.createElement("div");return t.innerHTML=this.config.template,this.tip=t.children[0],this.tip},a.setContent=function(){var t=this.getTipElement();this.setElementContent(Q(".tooltip-inner",t),this.getTitle()),t.classList.remove("fade","show")},a.setElementContent=function(t,e){if(null!==t)return"object"==typeof e&&g(e)?(e.jquery&&(e=e[0]),void(this.config.html?e.parentNode!==t&&(t.innerHTML="",t.appendChild(e)):t.textContent=e.textContent)):void(this.config.html?(this.config.sanitize&&(e=bt(e,this.config.allowList,this.config.sanitizeFn)),t.innerHTML=e):t.textContent=e)},a.getTitle=function(){var t=this._element.getAttribute("data-bs-original-title");return t||(t="function"==typeof this.config.title?this.config.title.call(this._element):this.config.title),t},a.updateAttachment=function(t){return"right"===t?"end":"left"===t?"start":t},a._initializeOnDelegatedTarget=function(t,e){var n=this.constructor.DATA_KEY;return(e=e||L(t.delegateTarget,n))||(e=new this.constructor(t.delegateTarget,this._getDelegateConfig()),k(t.delegateTarget,n,e)),e},a._getOffset=function(){var t=this,e=this.config.offset;return"string"==typeof e?e.split(",").map((function(t){return Number.parseInt(t,10)})):"function"==typeof e?function(n){return e(n,t._element)}:e},a._getPopperConfig=function(t){var e=this,n={placement:t,modifiers:[{name:"flip",options:{altBoundary:!0,fallbackPlacements:this.config.fallbackPlacements}},{name:"offset",options:{offset:this._getOffset()}},{name:"preventOverflow",options:{boundary:this.config.boundary}},{name:"arrow",options:{element:"."+this.constructor.NAME+"-arrow"}},{name:"onChange",enabled:!0,phase:"afterWrite",fn:function(t){return e._handlePopperPlacementChange(t)}}],onFirstUpdate:function(t){t.options.placement!==t.placement&&e._handlePopperPlacementChange(t)}};return s({},n,"function"==typeof this.config.popperConfig?this.config.popperConfig(n):this.config.popperConfig)},a._addAttachmentClass=function(t){this.getTipElement().classList.add("bs-tooltip-"+this.updateAttachment(t))},a._getContainer=function(){return!1===this.config.container?document.body:g(this.config.container)?this.config.container:Q(this.config.container)},a._getAttachment=function(t){return Tt[t.toUpperCase()]},a._setListeners=function(){var t=this;this.config.trigger.split(" ").forEach((function(e){if("click"===e)K.on(t._element,t.constructor.Event.CLICK,t.config.selector,(function(e){return t.toggle(e)}));else if("manual"!==e){var n="hover"===e?t.constructor.Event.MOUSEENTER:t.constructor.Event.FOCUSIN,i="hover"===e?t.constructor.Event.MOUSELEAVE:t.constructor.Event.FOCUSOUT;K.on(t._element,n,t.config.selector,(function(e){return t._enter(e)})),K.on(t._element,i,t.config.selector,(function(e){return t._leave(e)}))}})),this._hideModalHandler=function(){t._element&&t.hide()},K.on(this._element.closest(".modal"),"hide.bs.modal",this._hideModalHandler),this.config.selector?this.config=s({},this.config,{trigger:"manual",selector:""}):this._fixTitle()},a._fixTitle=function(){var t=this._element.getAttribute("title"),e=typeof this._element.getAttribute("data-bs-original-title");(t||"string"!==e)&&(this._element.setAttribute("data-bs-original-title",t||""),!t||this._element.getAttribute("aria-label")||this._element.textContent||this._element.setAttribute("aria-label",t),this._element.setAttribute("title",""))},a._enter=function(t,e){e=this._initializeOnDelegatedTarget(t,e),t&&(e._activeTrigger["focusin"===t.type?"focus":"hover"]=!0),e.getTipElement().classList.contains("show")||"show"===e._hoverState?e._hoverState="show":(clearTimeout(e._timeout),e._hoverState="show",e.config.delay&&e.config.delay.show?e._timeout=setTimeout((function(){"show"===e._hoverState&&e.show()}),e.config.delay.show):e.show())},a._leave=function(t,e){e=this._initializeOnDelegatedTarget(t,e),t&&(e._activeTrigger["focusout"===t.type?"focus":"hover"]=!1),e._isWithActiveTrigger()||(clearTimeout(e._timeout),e._hoverState="out",e.config.delay&&e.config.delay.hide?e._timeout=setTimeout((function(){"out"===e._hoverState&&e.hide()}),e.config.delay.hide):e.hide())},a._isWithActiveTrigger=function(){for(var t in this._activeTrigger)if(this._activeTrigger[t])return!0;return!1},a._getConfig=function(t){var e=X.getDataAttributes(this._element);return Object.keys(e).forEach((function(t){wt.has(t)&&delete e[t]})),t&&"object"==typeof t.container&&t.container.jquery&&(t.container=t.container[0]),"number"==typeof(t=s({},this.constructor.Default,e,"object"==typeof t&&t?t:{})).delay&&(t.delay={show:t.delay,hide:t.delay}),"number"==typeof t.title&&(t.title=t.title.toString()),"number"==typeof t.content&&(t.content=t.content.toString()),_("tooltip",t,this.constructor.DefaultType),t.sanitize&&(t.template=bt(t.template,t.allowList,t.sanitizeFn)),t},a._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},a._cleanTipClass=function(){var t=this.getTipElement(),e=t.getAttribute("class").match(yt);null!==e&&e.length>0&&e.map((function(t){return t.trim()})).forEach((function(e){return t.classList.remove(e)}))},a._handlePopperPlacementChange=function(t){var e=t.state;e&&(this.tip=e.elements.popper,this._cleanTipClass(),this._addAttachmentClass(this._getAttachment(e.placement)))},i.jQueryInterface=function(t){return this.each((function(){var e=L(this,"bs.tooltip"),n="object"==typeof t&&t;if((e||!/dispose|hide/.test(t))&&(e||(e=new i(this,n)),"string"==typeof t)){if(void 0===e[t])throw new TypeError('No method named "'+t+'"');e[t]()}}))},o(i,null,[{key:"Default",get:function(){return At}},{key:"NAME",get:function(){return"tooltip"}},{key:"DATA_KEY",get:function(){return"bs.tooltip"}},{key:"Event",get:function(){return kt}},{key:"EVENT_KEY",get:function(){return".bs.tooltip"}},{key:"DefaultType",get:function(){return Et}}]),i}(W);T("tooltip",Lt);var Ct=new RegExp("(^|\\s)bs-popover\\S+","g"),Dt=s({},Lt.Default,{placement:"right",offset:[0,8],trigger:"click",content:"",template:''}),St=s({},Lt.DefaultType,{content:"(string|element|function)"}),Nt={HIDE:"hide.bs.popover",HIDDEN:"hidden.bs.popover",SHOW:"show.bs.popover",SHOWN:"shown.bs.popover",INSERTED:"inserted.bs.popover",CLICK:"click.bs.popover",FOCUSIN:"focusin.bs.popover",FOCUSOUT:"focusout.bs.popover",MOUSEENTER:"mouseenter.bs.popover",MOUSELEAVE:"mouseleave.bs.popover"},Ot=function(t){function e(){return t.apply(this,arguments)||this}r(e,t);var n=e.prototype;return n.isWithContent=function(){return this.getTitle()||this._getContent()},n.setContent=function(){var t=this.getTipElement();this.setElementContent(Q(".popover-header",t),this.getTitle());var e=this._getContent();"function"==typeof e&&(e=e.call(this._element)),this.setElementContent(Q(".popover-body",t),e),t.classList.remove("fade","show")},n._addAttachmentClass=function(t){this.getTipElement().classList.add("bs-popover-"+this.updateAttachment(t))},n._getContent=function(){return this._element.getAttribute("data-bs-content")||this.config.content},n._cleanTipClass=function(){var t=this.getTipElement(),e=t.getAttribute("class").match(Ct);null!==e&&e.length>0&&e.map((function(t){return t.trim()})).forEach((function(e){return t.classList.remove(e)}))},e.jQueryInterface=function(t){return this.each((function(){var n=L(this,"bs.popover"),i="object"==typeof t?t:null;if((n||!/dispose|hide/.test(t))&&(n||(n=new e(this,i),k(this,"bs.popover",n)),"string"==typeof t)){if(void 0===n[t])throw new TypeError('No method named "'+t+'"');n[t]()}}))},o(e,null,[{key:"Default",get:function(){return Dt}},{key:"NAME",get:function(){return"popover"}},{key:"DATA_KEY",get:function(){return"bs.popover"}},{key:"Event",get:function(){return Nt}},{key:"EVENT_KEY",get:function(){return".bs.popover"}},{key:"DefaultType",get:function(){return St}}]),e}(Lt);T("popover",Ot);var It={offset:10,method:"auto",target:""},jt={offset:"number",method:"string",target:"(string|element)"},Pt=function(t){function e(e,n){var i;return(i=t.call(this,e)||this)._scrollElement="BODY"===e.tagName?window:e,i._config=i._getConfig(n),i._selector=i._config.target+" .nav-link, "+i._config.target+" .list-group-item, "+i._config.target+" .dropdown-item",i._offsets=[],i._targets=[],i._activeTarget=null,i._scrollHeight=0,K.on(i._scrollElement,"scroll.bs.scrollspy",(function(){return i._process()})),i.refresh(),i._process(),i}r(e,t);var n=e.prototype;return n.refresh=function(){var t=this,e=this._scrollElement===this._scrollElement.window?"offset":"position",n="auto"===this._config.method?e:this._config.method,i="position"===n?this._getScrollTop():0;this._offsets=[],this._targets=[],this._scrollHeight=this._getScrollHeight(),q(this._selector).map((function(t){var e=h(t),o=e?Q(e):null;if(o){var s=o.getBoundingClientRect();if(s.width||s.height)return[X[n](o).top+i,e]}return null})).filter((function(t){return t})).sort((function(t,e){return t[0]-e[0]})).forEach((function(e){t._offsets.push(e[0]),t._targets.push(e[1])}))},n.dispose=function(){t.prototype.dispose.call(this),K.off(this._scrollElement,".bs.scrollspy"),this._scrollElement=null,this._config=null,this._selector=null,this._offsets=null,this._targets=null,this._activeTarget=null,this._scrollHeight=null},n._getConfig=function(t){if("string"!=typeof(t=s({},It,"object"==typeof t&&t?t:{})).target&&g(t.target)){var e=t.target.id;e||(e=c("scrollspy"),t.target.id=e),t.target="#"+e}return _("scrollspy",t,jt),t},n._getScrollTop=function(){return this._scrollElement===window?this._scrollElement.pageYOffset:this._scrollElement.scrollTop},n._getScrollHeight=function(){return this._scrollElement.scrollHeight||Math.max(document.body.scrollHeight,document.documentElement.scrollHeight)},n._getOffsetHeight=function(){return this._scrollElement===window?window.innerHeight:this._scrollElement.getBoundingClientRect().height},n._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 o=this._offsets.length;o--;)this._activeTarget!==this._targets[o]&&t>=this._offsets[o]&&(void 0===this._offsets[o+1]||t li > .active":".active";e=(e=q(o,i))[e.length-1]}var s=e?K.trigger(e,"hide.bs.tab",{relatedTarget:this._element}):null;if(!(K.trigger(this._element,"show.bs.tab",{relatedTarget:e}).defaultPrevented||null!==s&&s.defaultPrevented)){this._activate(this._element,i);var r=function(){K.trigger(e,"hidden.bs.tab",{relatedTarget:t._element}),K.trigger(t._element,"shown.bs.tab",{relatedTarget:e})};n?this._activate(n,n.parentNode,r):r()}}},n._activate=function(t,e,n){var i=this,o=(!e||"UL"!==e.nodeName&&"OL"!==e.nodeName?V(e,".active"):q(":scope > li > .active",e))[0],s=n&&o&&o.classList.contains("fade"),r=function(){return i._transitionComplete(t,o,n)};if(o&&s){var a=f(o);o.classList.remove("show"),K.one(o,"transitionend",r),m(o,a)}else r()},n._transitionComplete=function(t,e,n){if(e){e.classList.remove("active");var i=Q(":scope > .dropdown-menu .active",e.parentNode);i&&i.classList.remove("active"),"tab"===e.getAttribute("role")&&e.setAttribute("aria-selected",!1)}t.classList.add("active"),"tab"===t.getAttribute("role")&&t.setAttribute("aria-selected",!0),y(t),t.classList.contains("fade")&&t.classList.add("show"),t.parentNode&&t.parentNode.classList.contains("dropdown-menu")&&(t.closest(".dropdown")&&q(".dropdown-toggle").forEach((function(t){return t.classList.add("active")})),t.setAttribute("aria-expanded",!0)),n&&n()},e.jQueryInterface=function(t){return this.each((function(){var n=L(this,"bs.tab")||new e(this);if("string"==typeof t){if(void 0===n[t])throw new TypeError('No method named "'+t+'"');n[t]()}}))},o(e,null,[{key:"DATA_KEY",get:function(){return"bs.tab"}}]),e}(W);K.on(document,"click.bs.tab.data-api",'[data-bs-toggle="tab"], [data-bs-toggle="pill"], [data-bs-toggle="list"]',(function(t){t.preventDefault(),(L(this,"bs.tab")||new xt(this)).show()})),T("tab",xt);var Ht={animation:"boolean",autohide:"boolean",delay:"number"},Bt={animation:!0,autohide:!0,delay:5e3},Mt=function(t){function e(e,n){var i;return(i=t.call(this,e)||this)._config=i._getConfig(n),i._timeout=null,i._setListeners(),i}r(e,t);var n=e.prototype;return n.show=function(){var t=this;if(!K.trigger(this._element,"show.bs.toast").defaultPrevented){this._clearTimeout(),this._config.animation&&this._element.classList.add("fade");var e=function(){t._element.classList.remove("showing"),t._element.classList.add("show"),K.trigger(t._element,"shown.bs.toast"),t._config.autohide&&(t._timeout=setTimeout((function(){t.hide()}),t._config.delay))};if(this._element.classList.remove("hide"),y(this._element),this._element.classList.add("showing"),this._config.animation){var n=f(this._element);K.one(this._element,"transitionend",e),m(this._element,n)}else e()}},n.hide=function(){var t=this;if(this._element.classList.contains("show")&&!K.trigger(this._element,"hide.bs.toast").defaultPrevented){var e=function(){t._element.classList.add("hide"),K.trigger(t._element,"hidden.bs.toast")};if(this._element.classList.remove("show"),this._config.animation){var n=f(this._element);K.one(this._element,"transitionend",e),m(this._element,n)}else e()}},n.dispose=function(){this._clearTimeout(),this._element.classList.contains("show")&&this._element.classList.remove("show"),K.off(this._element,"click.dismiss.bs.toast"),t.prototype.dispose.call(this),this._config=null},n._getConfig=function(t){return t=s({},Bt,X.getDataAttributes(this._element),"object"==typeof t&&t?t:{}),_("toast",t,this.constructor.DefaultType),t},n._setListeners=function(){var t=this;K.on(this._element,"click.dismiss.bs.toast",'[data-bs-dismiss="toast"]',(function(){return t.hide()}))},n._clearTimeout=function(){clearTimeout(this._timeout),this._timeout=null},e.jQueryInterface=function(t){return this.each((function(){var n=L(this,"bs.toast");if(n||(n=new e(this,"object"==typeof t&&t)),"string"==typeof t){if(void 0===n[t])throw new TypeError('No method named "'+t+'"');n[t](this)}}))},o(e,null,[{key:"DefaultType",get:function(){return Ht}},{key:"Default",get:function(){return Bt}},{key:"DATA_KEY",get:function(){return"bs.toast"}}]),e}(W);return T("toast",Mt),{Alert:U,Button:F,Carousel:J,Collapse:nt,Dropdown:dt,Modal:gt,Popover:Ot,ScrollSpy:Pt,Tab:xt,Toast:Mt,Tooltip:Lt}})); +//# sourceMappingURL=bootstrap.min.js.map \ No newline at end of file diff --git a/public/admin/assets/js/bootstrap/popper.min.js b/public/admin/assets/js/bootstrap/popper.min.js new file mode 100644 index 0000000..6597294 --- /dev/null +++ b/public/admin/assets/js/bootstrap/popper.min.js @@ -0,0 +1,6 @@ +/** + * @popperjs/core v2.6.0 - MIT License + */ + +"use strict";!function(e,t){"object"==typeof exports&&"undefined"!=typeof module?t(exports):"function"==typeof define&&define.amd?define(["exports"],t):t((e=e||self).Popper={})}(this,(function(e){function t(e){return{width:(e=e.getBoundingClientRect()).width,height:e.height,top:e.top,right:e.right,bottom:e.bottom,left:e.left,x:e.left,y:e.top}}function n(e){return"[object Window]"!==e.toString()?(e=e.ownerDocument)&&e.defaultView||window:e}function r(e){return{scrollLeft:(e=n(e)).pageXOffset,scrollTop:e.pageYOffset}}function o(e){return e instanceof n(e).Element||e instanceof Element}function i(e){return e instanceof n(e).HTMLElement||e instanceof HTMLElement}function a(e){return e?(e.nodeName||"").toLowerCase():null}function s(e){return((o(e)?e.ownerDocument:e.document)||window.document).documentElement}function f(e){return t(s(e)).left+r(e).scrollLeft}function c(e){return n(e).getComputedStyle(e)}function p(e){return e=c(e),/auto|scroll|overlay|hidden/.test(e.overflow+e.overflowY+e.overflowX)}function l(e,o,c){void 0===c&&(c=!1);var l=s(o);e=t(e);var u=i(o),d={scrollLeft:0,scrollTop:0},m={x:0,y:0};return(u||!u&&!c)&&(("body"!==a(o)||p(l))&&(d=o!==n(o)&&i(o)?{scrollLeft:o.scrollLeft,scrollTop:o.scrollTop}:r(o)),i(o)?((m=t(o)).x+=o.clientLeft,m.y+=o.clientTop):l&&(m.x=f(l))),{x:e.left+d.scrollLeft-m.x,y:e.top+d.scrollTop-m.y,width:e.width,height:e.height}}function u(e){return{x:e.offsetLeft,y:e.offsetTop,width:e.offsetWidth,height:e.offsetHeight}}function d(e){return"html"===a(e)?e:e.assignedSlot||e.parentNode||e.host||s(e)}function m(e,t){void 0===t&&(t=[]);var r=function e(t){return 0<=["html","body","#document"].indexOf(a(t))?t.ownerDocument.body:i(t)&&p(t)?t:e(d(t))}(e);e="body"===a(r);var o=n(r);return r=e?[o].concat(o.visualViewport||[],p(r)?r:[]):r,t=t.concat(r),e?t:t.concat(m(d(r)))}function h(e){if(!i(e)||"fixed"===c(e).position)return null;if(e=e.offsetParent){var t=s(e);if("body"===a(e)&&"static"===c(e).position&&"static"!==c(t).position)return t}return e}function g(e){for(var t=n(e),r=h(e);r&&0<=["table","td","th"].indexOf(a(r))&&"static"===c(r).position;)r=h(r);if(r&&"body"===a(r)&&"static"===c(r).position)return t;if(!r)e:{for(e=d(e);i(e)&&0>["html","body"].indexOf(a(e));){if("none"!==(r=c(e)).transform||"none"!==r.perspective||r.willChange&&"auto"!==r.willChange){r=e;break e}e=e.parentNode}r=null}return r||t}function v(e){var t=new Map,n=new Set,r=[];return e.forEach((function(e){t.set(e.name,e)})),e.forEach((function(e){n.has(e.name)||function e(o){n.add(o.name),[].concat(o.requires||[],o.requiresIfExists||[]).forEach((function(r){n.has(r)||(r=t.get(r))&&e(r)})),r.push(o)}(e)})),r}function b(e){var t;return function(){return t||(t=new Promise((function(n){Promise.resolve().then((function(){t=void 0,n(e())}))}))),t}}function y(e){return e.split("-")[0]}function O(e,t){var r,o=t.getRootNode&&t.getRootNode();if(e.contains(t))return!0;if((r=o)&&(r=o instanceof(r=n(o).ShadowRoot)||o instanceof ShadowRoot),r)do{if(t&&e.isSameNode(t))return!0;t=t.parentNode||t.host}while(t);return!1}function w(e){return Object.assign(Object.assign({},e),{},{left:e.x,top:e.y,right:e.x+e.width,bottom:e.y+e.height})}function x(e,o){if("viewport"===o){o=n(e);var a=s(e);o=o.visualViewport;var p=a.clientWidth;a=a.clientHeight;var l=0,u=0;o&&(p=o.width,a=o.height,/^((?!chrome|android).)*safari/i.test(navigator.userAgent)||(l=o.offsetLeft,u=o.offsetTop)),e=w(e={width:p,height:a,x:l+f(e),y:u})}else i(o)?((e=t(o)).top+=o.clientTop,e.left+=o.clientLeft,e.bottom=e.top+o.clientHeight,e.right=e.left+o.clientWidth,e.width=o.clientWidth,e.height=o.clientHeight,e.x=e.left,e.y=e.top):(u=s(e),e=s(u),l=r(u),o=u.ownerDocument.body,p=Math.max(e.scrollWidth,e.clientWidth,o?o.scrollWidth:0,o?o.clientWidth:0),a=Math.max(e.scrollHeight,e.clientHeight,o?o.scrollHeight:0,o?o.clientHeight:0),u=-l.scrollLeft+f(u),l=-l.scrollTop,"rtl"===c(o||e).direction&&(u+=Math.max(e.clientWidth,o?o.clientWidth:0)-p),e=w({width:p,height:a,x:u,y:l}));return e}function j(e,t,n){return t="clippingParents"===t?function(e){var t=m(d(e)),n=0<=["absolute","fixed"].indexOf(c(e).position)&&i(e)?g(e):e;return o(n)?t.filter((function(e){return o(e)&&O(e,n)&&"body"!==a(e)})):[]}(e):[].concat(t),(n=(n=[].concat(t,[n])).reduce((function(t,n){return n=x(e,n),t.top=Math.max(n.top,t.top),t.right=Math.min(n.right,t.right),t.bottom=Math.min(n.bottom,t.bottom),t.left=Math.max(n.left,t.left),t}),x(e,n[0]))).width=n.right-n.left,n.height=n.bottom-n.top,n.x=n.left,n.y=n.top,n}function M(e){return 0<=["top","bottom"].indexOf(e)?"x":"y"}function E(e){var t=e.reference,n=e.element,r=(e=e.placement)?y(e):null;e=e?e.split("-")[1]:null;var o=t.x+t.width/2-n.width/2,i=t.y+t.height/2-n.height/2;switch(r){case"top":o={x:o,y:t.y-n.height};break;case"bottom":o={x:o,y:t.y+t.height};break;case"right":o={x:t.x+t.width,y:i};break;case"left":o={x:t.x-n.width,y:i};break;default:o={x:t.x,y:t.y}}if(null!=(r=r?M(r):null))switch(i="y"===r?"height":"width",e){case"start":o[r]-=t[i]/2-n[i]/2;break;case"end":o[r]+=t[i]/2-n[i]/2}return o}function D(e){return Object.assign(Object.assign({},{top:0,right:0,bottom:0,left:0}),e)}function P(e,t){return t.reduce((function(t,n){return t[n]=e,t}),{})}function L(e,n){void 0===n&&(n={});var r=n;n=void 0===(n=r.placement)?e.placement:n;var i=r.boundary,a=void 0===i?"clippingParents":i,f=void 0===(i=r.rootBoundary)?"viewport":i;i=void 0===(i=r.elementContext)?"popper":i;var c=r.altBoundary,p=void 0!==c&&c;r=D("number"!=typeof(r=void 0===(r=r.padding)?0:r)?r:P(r,T));var l=e.elements.reference;c=e.rects.popper,a=j(o(p=e.elements[p?"popper"===i?"reference":"popper":i])?p:p.contextElement||s(e.elements.popper),a,f),p=E({reference:f=t(l),element:c,strategy:"absolute",placement:n}),c=w(Object.assign(Object.assign({},c),p)),f="popper"===i?c:f;var u={top:a.top-f.top+r.top,bottom:f.bottom-a.bottom+r.bottom,left:a.left-f.left+r.left,right:f.right-a.right+r.right};if(e=e.modifiersData.offset,"popper"===i&&e){var d=e[n];Object.keys(u).forEach((function(e){var t=0<=["right","bottom"].indexOf(e)?1:-1,n=0<=["top","bottom"].indexOf(e)?"y":"x";u[e]+=d[n]*t}))}return u}function k(){for(var e=arguments.length,t=Array(e),n=0;n(v.devicePixelRatio||1)?"translate("+e+"px, "+l+"px)":"translate3d("+e+"px, "+l+"px, 0)",d)):Object.assign(Object.assign({},r),{},((t={})[h]=a?l+"px":"",t[m]=u?e+"px":"",t.transform="",t))}function A(e){return e.replace(/left|right|bottom|top/g,(function(e){return G[e]}))}function H(e){return e.replace(/start|end/g,(function(e){return J[e]}))}function R(e,t,n){return void 0===n&&(n={x:0,y:0}),{top:e.top-t.height-n.y,right:e.right-t.width+n.x,bottom:e.bottom-t.height+n.y,left:e.left-t.width-n.x}}function S(e){return["top","right","bottom","left"].some((function(t){return 0<=e[t]}))}var T=["top","bottom","right","left"],q=T.reduce((function(e,t){return e.concat([t+"-start",t+"-end"])}),[]),C=[].concat(T,["auto"]).reduce((function(e,t){return e.concat([t,t+"-start",t+"-end"])}),[]),N="beforeRead read afterRead beforeMain main afterMain beforeWrite write afterWrite".split(" "),V={placement:"bottom",modifiers:[],strategy:"absolute"},I={passive:!0},_={name:"eventListeners",enabled:!0,phase:"write",fn:function(){},effect:function(e){var t=e.state,r=e.instance,o=(e=e.options).scroll,i=void 0===o||o,a=void 0===(e=e.resize)||e,s=n(t.elements.popper),f=[].concat(t.scrollParents.reference,t.scrollParents.popper);return i&&f.forEach((function(e){e.addEventListener("scroll",r.update,I)})),a&&s.addEventListener("resize",r.update,I),function(){i&&f.forEach((function(e){e.removeEventListener("scroll",r.update,I)})),a&&s.removeEventListener("resize",r.update,I)}},data:{}},U={name:"popperOffsets",enabled:!0,phase:"read",fn:function(e){var t=e.state;t.modifiersData[e.name]=E({reference:t.rects.reference,element:t.rects.popper,strategy:"absolute",placement:t.placement})},data:{}},z={top:"auto",right:"auto",bottom:"auto",left:"auto"},F={name:"computeStyles",enabled:!0,phase:"beforeWrite",fn:function(e){var t=e.state,n=e.options;e=void 0===(e=n.gpuAcceleration)||e;var r=n.adaptive;r=void 0===r||r,n=void 0===(n=n.roundOffsets)||n,e={placement:y(t.placement),popper:t.elements.popper,popperRect:t.rects.popper,gpuAcceleration:e},null!=t.modifiersData.popperOffsets&&(t.styles.popper=Object.assign(Object.assign({},t.styles.popper),W(Object.assign(Object.assign({},e),{},{offsets:t.modifiersData.popperOffsets,position:t.options.strategy,adaptive:r,roundOffsets:n})))),null!=t.modifiersData.arrow&&(t.styles.arrow=Object.assign(Object.assign({},t.styles.arrow),W(Object.assign(Object.assign({},e),{},{offsets:t.modifiersData.arrow,position:"absolute",adaptive:!1,roundOffsets:n})))),t.attributes.popper=Object.assign(Object.assign({},t.attributes.popper),{},{"data-popper-placement":t.placement})},data:{}},X={name:"applyStyles",enabled:!0,phase:"write",fn:function(e){var t=e.state;Object.keys(t.elements).forEach((function(e){var n=t.styles[e]||{},r=t.attributes[e]||{},o=t.elements[e];i(o)&&a(o)&&(Object.assign(o.style,n),Object.keys(r).forEach((function(e){var t=r[e];!1===t?o.removeAttribute(e):o.setAttribute(e,!0===t?"":t)})))}))},effect:function(e){var t=e.state,n={popper:{position:t.options.strategy,left:"0",top:"0",margin:"0"},arrow:{position:"absolute"},reference:{}};return Object.assign(t.elements.popper.style,n.popper),t.elements.arrow&&Object.assign(t.elements.arrow.style,n.arrow),function(){Object.keys(t.elements).forEach((function(e){var r=t.elements[e],o=t.attributes[e]||{};e=Object.keys(t.styles.hasOwnProperty(e)?t.styles[e]:n[e]).reduce((function(e,t){return e[t]="",e}),{}),i(r)&&a(r)&&(Object.assign(r.style,e),Object.keys(o).forEach((function(e){r.removeAttribute(e)})))}))}},requires:["computeStyles"]},Y={name:"offset",enabled:!0,phase:"main",requires:["popperOffsets"],fn:function(e){var t=e.state,n=e.name,r=void 0===(e=e.options.offset)?[0,0]:e,o=(e=C.reduce((function(e,n){var o=t.rects,i=y(n),a=0<=["left","top"].indexOf(i)?-1:1,s="function"==typeof r?r(Object.assign(Object.assign({},o),{},{placement:n})):r;return o=(o=s[0])||0,s=((s=s[1])||0)*a,i=0<=["left","right"].indexOf(i)?{x:s,y:o}:{x:o,y:s},e[n]=i,e}),{}))[t.placement],i=o.x;o=o.y,null!=t.modifiersData.popperOffsets&&(t.modifiersData.popperOffsets.x+=i,t.modifiersData.popperOffsets.y+=o),t.modifiersData[n]=e}},G={left:"right",right:"left",bottom:"top",top:"bottom"},J={start:"end",end:"start"},K={name:"flip",enabled:!0,phase:"main",fn:function(e){var t=e.state,n=e.options;if(e=e.name,!t.modifiersData[e]._skip){var r=n.mainAxis;r=void 0===r||r;var o=n.altAxis;o=void 0===o||o;var i=n.fallbackPlacements,a=n.padding,s=n.boundary,f=n.rootBoundary,c=n.altBoundary,p=n.flipVariations,l=void 0===p||p,u=n.allowedAutoPlacements;p=y(n=t.options.placement),i=i||(p!==n&&l?function(e){if("auto"===y(e))return[];var t=A(e);return[H(e),t,H(t)]}(n):[A(n)]);var d=[n].concat(i).reduce((function(e,n){return e.concat("auto"===y(n)?function(e,t){void 0===t&&(t={});var n=t.boundary,r=t.rootBoundary,o=t.padding,i=t.flipVariations,a=t.allowedAutoPlacements,s=void 0===a?C:a,f=t.placement.split("-")[1];0===(i=(t=f?i?q:q.filter((function(e){return e.split("-")[1]===f})):T).filter((function(e){return 0<=s.indexOf(e)}))).length&&(i=t);var c=i.reduce((function(t,i){return t[i]=L(e,{placement:i,boundary:n,rootBoundary:r,padding:o})[y(i)],t}),{});return Object.keys(c).sort((function(e,t){return c[e]-c[t]}))}(t,{placement:n,boundary:s,rootBoundary:f,padding:a,flipVariations:l,allowedAutoPlacements:u}):n)}),[]);n=t.rects.reference,i=t.rects.popper;var m=new Map;p=!0;for(var h=d[0],g=0;gi[x]&&(O=A(O)),x=A(O),w=[],r&&w.push(0>=j[b]),o&&w.push(0>=j[O],0>=j[x]),w.every((function(e){return e}))){h=v,p=!1;break}m.set(v,w)}if(p)for(r=function(e){var t=d.find((function(t){if(t=m.get(t))return t.slice(0,e).every((function(e){return e}))}));if(t)return h=t,"break"},o=l?3:1;00&&void 0!==arguments[0]?arguments[0]:{};this.action=e.action,this.container=e.container,this.emitter=e.emitter,this.target=e.target,this.text=e.text,this.trigger=e.trigger,this.selectedText=""}},{key:"initSelection",value:function t(){this.text?this.selectFake():this.target&&this.selectTarget()}},{key:"selectFake",value:function t(){var e=this,n="rtl"==document.documentElement.getAttribute("dir");this.removeFake(),this.fakeHandlerCallback=function(){return e.removeFake()},this.fakeHandler=this.container.addEventListener("click",this.fakeHandlerCallback)||!0,this.fakeElem=document.createElement("textarea"),this.fakeElem.style.fontSize="12pt",this.fakeElem.style.border="0",this.fakeElem.style.padding="0",this.fakeElem.style.margin="0",this.fakeElem.style.position="absolute",this.fakeElem.style[n?"right":"left"]="-9999px";var o=window.pageYOffset||document.documentElement.scrollTop;this.fakeElem.style.top=o+"px",this.fakeElem.setAttribute("readonly",""),this.fakeElem.value=this.text,this.container.appendChild(this.fakeElem),this.selectedText=(0,i.default)(this.fakeElem),this.copyText()}},{key:"removeFake",value:function t(){this.fakeHandler&&(this.container.removeEventListener("click",this.fakeHandlerCallback),this.fakeHandler=null,this.fakeHandlerCallback=null),this.fakeElem&&(this.container.removeChild(this.fakeElem),this.fakeElem=null)}},{key:"selectTarget",value:function t(){this.selectedText=(0,i.default)(this.target),this.copyText()}},{key:"copyText",value:function t(){var e=void 0;try{e=document.execCommand(this.action)}catch(t){e=!1}this.handleResult(e)}},{key:"handleResult",value:function t(e){this.emitter.emit(e?"success":"error",{action:this.action,text:this.selectedText,trigger:this.trigger,clearSelection:this.clearSelection.bind(this)})}},{key:"clearSelection",value:function t(){this.trigger&&this.trigger.focus(),window.getSelection().removeAllRanges()}},{key:"destroy",value:function t(){this.removeFake()}},{key:"action",set:function t(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"copy";if(this._action=e,"copy"!==this._action&&"cut"!==this._action)throw new Error('Invalid "action" value, use either "copy" or "cut"')},get:function t(){return this._action}},{key:"target",set:function t(e){if(void 0!==e){if(!e||"object"!==(void 0===e?"undefined":r(e))||1!==e.nodeType)throw new Error('Invalid "target" value, use a valid Element');if("copy"===this.action&&e.hasAttribute("disabled"))throw new Error('Invalid "target" attribute. Please use "readonly" instead of "disabled" attribute');if("cut"===this.action&&(e.hasAttribute("readonly")||e.hasAttribute("disabled")))throw new Error('Invalid "target" attribute. You can\'t cut text from elements with "readonly" or "disabled" attributes');this._target=e}},get:function t(){return this._target}}]),t}();t.exports=c})},{select:5}],8:[function(e,n,o){!function(i,r){if("function"==typeof t&&t.amd)t(["module","./clipboard-action","tiny-emitter","good-listener"],r);else if(void 0!==o)r(n,e("./clipboard-action"),e("tiny-emitter"),e("good-listener"));else{var a={exports:{}};r(a,i.clipboardAction,i.tinyEmitter,i.goodListener),i.clipboard=a.exports}}(this,function(t,e,n,o){"use strict";function i(t){return t&&t.__esModule?t:{default:t}}function r(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}function a(t,e){if(!t)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!e||"object"!=typeof e&&"function"!=typeof e?t:e}function c(t,e){if("function"!=typeof e&&null!==e)throw new TypeError("Super expression must either be null or a function, not "+typeof e);t.prototype=Object.create(e&&e.prototype,{constructor:{value:t,enumerable:!1,writable:!0,configurable:!0}}),e&&(Object.setPrototypeOf?Object.setPrototypeOf(t,e):t.__proto__=e)}function l(t,e){var n="data-clipboard-"+t;if(e.hasAttribute(n))return e.getAttribute(n)}var s=i(e),u=i(n),f=i(o),d="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},h=function(){function t(t,e){for(var n=0;n0&&void 0!==arguments[0]?arguments[0]:{};this.action="function"==typeof e.action?e.action:this.defaultAction,this.target="function"==typeof e.target?e.target:this.defaultTarget,this.text="function"==typeof e.text?e.text:this.defaultText,this.container="object"===d(e.container)?e.container:document.body}},{key:"listenClick",value:function t(e){var n=this;this.listener=(0,f.default)(e,"click",function(t){return n.onClick(t)})}},{key:"onClick",value:function t(e){var n=e.delegateTarget||e.currentTarget;this.clipboardAction&&(this.clipboardAction=null),this.clipboardAction=new s.default({action:this.action(n),target:this.target(n),text:this.text(n),container:this.container,trigger:n,emitter:this})}},{key:"defaultAction",value:function t(e){return l("action",e)}},{key:"defaultTarget",value:function t(e){var n=l("target",e);if(n)return document.querySelector(n)}},{key:"defaultText",value:function t(e){return l("text",e)}},{key:"destroy",value:function t(){this.listener.destroy(),this.clipboardAction&&(this.clipboardAction.destroy(),this.clipboardAction=null)}}],[{key:"isSupported",value:function t(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:["copy","cut"],n="string"==typeof e?[e]:e,o=!!document.queryCommandSupported;return n.forEach(function(t){o=o&&!!document.queryCommandSupported(t)}),o}}]),e}(u.default);t.exports=p})},{"./clipboard-action":7,"good-listener":4,"tiny-emitter":6}]},{},[8])(8)}); \ No newline at end of file diff --git a/public/admin/assets/js/button-builder/colorpicker.js b/public/admin/assets/js/button-builder/colorpicker.js new file mode 100644 index 0000000..479d971 --- /dev/null +++ b/public/admin/assets/js/button-builder/colorpicker.js @@ -0,0 +1,480 @@ + +(function ($) { + "use strict"; + var ColorPicker = function () { + var + ids = {}, + inAction, + charMin = 65, + visible, + tpl = '
', + defaults = { + eventName: 'click', + onShow: function () {}, + onBeforeShow: function(){}, + onHide: function () {}, + onChange: function () {}, + onSubmit: function () {}, + color: 'ff0000', + livePreview: true, + flat: false + }, + fillRGBFields = function (hsb, cal) { + var rgb = HSBToRGB(hsb); + $(cal).data('colorpicker').fields + .eq(1).val(rgb.r).end() + .eq(2).val(rgb.g).end() + .eq(3).val(rgb.b).end(); + }, + fillHSBFields = function (hsb, cal) { + $(cal).data('colorpicker').fields + .eq(4).val(hsb.h).end() + .eq(5).val(hsb.s).end() + .eq(6).val(hsb.b).end(); + }, + fillHexFields = function (hsb, cal) { + $(cal).data('colorpicker').fields + .eq(0).val(HSBToHex(hsb)).end(); + }, + setSelector = function (hsb, cal) { + $(cal).data('colorpicker').selector.css('backgroundColor', '#' + HSBToHex({h: hsb.h, s: 100, b: 100})); + $(cal).data('colorpicker').selectorIndic.css({ + left: parseInt(150 * hsb.s/100, 10), + top: parseInt(150 * (100-hsb.b)/100, 10) + }); + }, + setHue = function (hsb, cal) { + $(cal).data('colorpicker').hue.css('top', parseInt(150 - 150 * hsb.h/360, 10)); + }, + setCurrentColor = function (hsb, cal) { + $(cal).data('colorpicker').currentColor.css('backgroundColor', '#' + HSBToHex(hsb)); + }, + setNewColor = function (hsb, cal) { + $(cal).data('colorpicker').newColor.css('backgroundColor', '#' + HSBToHex(hsb)); + }, + keyDown = function (ev) { + var pressedKey = ev.charCode || ev.keyCode || -1; + if ((pressedKey > charMin && pressedKey <= 90) || pressedKey == 32) { + return false; + } + var cal = $(this).parent().parent(); + if (cal.data('colorpicker').livePreview === true) { + change.apply(this); + } + }, + change = function (ev) { + var cal = $(this).parent().parent(), col; + if (this.parentNode.className.indexOf('_hex') > 0) { + cal.data('colorpicker').color = col = HexToHSB(fixHex(this.value)); + } else if (this.parentNode.className.indexOf('_hsb') > 0) { + cal.data('colorpicker').color = col = fixHSB({ + h: parseInt(cal.data('colorpicker').fields.eq(4).val(), 10), + s: parseInt(cal.data('colorpicker').fields.eq(5).val(), 10), + b: parseInt(cal.data('colorpicker').fields.eq(6).val(), 10) + }); + } else { + cal.data('colorpicker').color = col = RGBToHSB(fixRGB({ + r: parseInt(cal.data('colorpicker').fields.eq(1).val(), 10), + g: parseInt(cal.data('colorpicker').fields.eq(2).val(), 10), + b: parseInt(cal.data('colorpicker').fields.eq(3).val(), 10) + })); + } + if (ev) { + fillRGBFields(col, cal.get(0)); + fillHexFields(col, cal.get(0)); + fillHSBFields(col, cal.get(0)); + } + setSelector(col, cal.get(0)); + setHue(col, cal.get(0)); + setNewColor(col, cal.get(0)); + cal.data('colorpicker').onChange.apply(cal, [col, HSBToHex(col), HSBToRGB(col)]); + }, + blur = function (ev) { + var cal = $(this).parent().parent(); + cal.data('colorpicker').fields.parent().removeClass('colorpicker-focus'); + }, + focus = function () { + charMin = this.parentNode.className.indexOf('_hex') > 0 ? 70 : 65; + $(this).parent().parent().data('colorpicker').fields.parent().removeClass('colorpicker-focus'); + $(this).parent().addClass('colorpicker-focus'); + }, + downIncrement = function (ev) { + var field = $(this).parent().find('input').focus(); + var current = { + el: $(this).parent().addClass('colorpicker-slider'), + max: this.parentNode.className.indexOf('_hsb_h') > 0 ? 360 : (this.parentNode.className.indexOf('_hsb') > 0 ? 100 : 255), + y: ev.pageY, + field: field, + val: parseInt(field.val(), 10), + preview: $(this).parent().parent().data('colorpicker').livePreview + }; + $(document).bind('mouseup', current, upIncrement); + $(document).bind('mousemove', current, moveIncrement); + }, + moveIncrement = function (ev) { + ev.data.field.val(Math.max(0, Math.min(ev.data.max, parseInt(ev.data.val + ev.pageY - ev.data.y, 10)))); + if (ev.data.preview) { + change.apply(ev.data.field.get(0), [true]); + } + return false; + }, + upIncrement = function (ev) { + change.apply(ev.data.field.get(0), [true]); + ev.data.el.removeClass('colorpicker-slider').find('input').focus(); + $(document).unbind('mouseup', upIncrement); + $(document).unbind('mousemove', moveIncrement); + return false; + }, + downHue = function (ev) { + var current = { + cal: $(this).parent(), + y: $(this).offset().top + }; + current.preview = current.cal.data('colorpicker').livePreview; + $(document).bind('mouseup', current, upHue); + $(document).bind('mousemove', current, moveHue); + }, + moveHue = function (ev) { + change.apply( + ev.data.cal.data('colorpicker') + .fields + .eq(4) + .val(parseInt(360*(150 - Math.max(0,Math.min(150,(ev.pageY - ev.data.y))))/150, 10)) + .get(0), + [ev.data.preview] + ); + return false; + }, + upHue = function (ev) { + fillRGBFields(ev.data.cal.data('colorpicker').color, ev.data.cal.get(0)); + fillHexFields(ev.data.cal.data('colorpicker').color, ev.data.cal.get(0)); + $(document).unbind('mouseup', upHue); + $(document).unbind('mousemove', moveHue); + moveHue(ev); + return false; + }, + downSelector = function (ev) { + var current = { + cal: $(this).parent(), + pos: $(this).offset() + }; + current.preview = current.cal.data('colorpicker').livePreview; + $(document).bind('mouseup', current, upSelector); + $(document).bind('mousemove', current, moveSelector); + }, + moveSelector = function (ev) { + change.apply( + ev.data.cal.data('colorpicker') + .fields + .eq(6) + .val(parseInt(100*(150 - Math.max(0,Math.min(150,(ev.pageY - ev.data.pos.top))))/150, 10)) + .end() + .eq(5) + .val(parseInt(100*(Math.max(0,Math.min(150,(ev.pageX - ev.data.pos.left))))/150, 10)) + .get(0), + [ev.data.preview] + ); + return false; + }, + upSelector = function (ev) { + fillRGBFields(ev.data.cal.data('colorpicker').color, ev.data.cal.get(0)); + fillHexFields(ev.data.cal.data('colorpicker').color, ev.data.cal.get(0)); + $(document).unbind('mouseup', upSelector); + $(document).unbind('mousemove', moveSelector); + moveSelector(ev); + return false; + }, + enterSubmit = function (ev) { + $(this).addClass('colorpicker-focus'); + }, + leaveSubmit = function (ev) { + $(this).removeClass('colorpicker-focus'); + }, + clickSubmit = function (ev) { + var cal = $(this).parent(); + var col = cal.data('colorpicker').color; + cal.data('colorpicker').origColor = col; + setCurrentColor(col, cal.get(0)); + cal.data('colorpicker').onSubmit(col, HSBToHex(col), HSBToRGB(col), cal.data('colorpicker').el); + }, + show = function (ev) { + var cal = $('#' + $(this).data('colorpickerId')); + cal.data('colorpicker').onBeforeShow.apply(this, [cal.get(0)]); + var pos = $(this).offset(); + var viewPort = getViewport(); + var top = pos.top + this.offsetHeight; + var left = pos.left; + if (top + 176 > viewPort.t + viewPort.h) { + top -= this.offsetHeight + 176; + } + if (left + 356 > viewPort.l + viewPort.w) { + left -= 356; + } + cal.css({left: left + 'px', top: top + 'px'}); + if (cal.data('colorpicker').onShow.apply(this, [cal.get(0)]) != false) { + cal.show(); + } + $(document).bind('mousedown', {cal: cal}, hide); + return false; + }, + hide = function (ev) { + if (!isChildOf(ev.data.cal.get(0), ev.target, ev.data.cal.get(0))) { + if (ev.data.cal.data('colorpicker').onHide.apply(this, [ev.data.cal.get(0)]) != false) { + ev.data.cal.hide(); + } + $(document).unbind('mousedown', hide); + } + }, + isChildOf = function(parentEl, el, container) { + if (parentEl == el) { + return true; + } + if (parentEl.contains) { + return parentEl.contains(el); + } + if ( parentEl.compareDocumentPosition ) { + return !!(parentEl.compareDocumentPosition(el) & 16); + } + var prEl = el.parentNode; + while(prEl && prEl != container) { + if (prEl == parentEl) + return true; + prEl = prEl.parentNode; + } + return false; + }, + getViewport = function () { + var m = document.compatMode == 'CSS1Compat'; + return { + l : window.pageXOffset || (m ? document.documentElement.scrollLeft : document.body.scrollLeft), + t : window.pageYOffset || (m ? document.documentElement.scrollTop : document.body.scrollTop), + w : window.innerWidth || (m ? document.documentElement.clientWidth : document.body.clientWidth), + h : window.innerHeight || (m ? document.documentElement.clientHeight : document.body.clientHeight) + }; + }, + fixHSB = function (hsb) { + return { + h: Math.min(360, Math.max(0, hsb.h)), + s: Math.min(100, Math.max(0, hsb.s)), + b: Math.min(100, Math.max(0, hsb.b)) + }; + }, + fixRGB = function (rgb) { + return { + r: Math.min(255, Math.max(0, rgb.r)), + g: Math.min(255, Math.max(0, rgb.g)), + b: Math.min(255, Math.max(0, rgb.b)) + }; + }, + fixHex = function (hex) { + var len = 6 - hex.length; + if (len > 0) { + var o = []; + for (var i=0; i -1) ? hex.substring(1) : hex), 16); + return {r: hex >> 16, g: (hex & 0x00FF00) >> 8, b: (hex & 0x0000FF)}; + }, + HexToHSB = function (hex) { + return RGBToHSB(HexToRGB(hex)); + }, + RGBToHSB = function (rgb) { + var hsb = { + h: 0, + s: 0, + b: 0 + }; + var min = Math.min(rgb.r, rgb.g, rgb.b); + var max = Math.max(rgb.r, rgb.g, rgb.b); + var delta = max - min; + hsb.b = max; + if (max != 0) { + + } + hsb.s = max != 0 ? 255 * delta / max : 0; + if (hsb.s != 0) { + if (rgb.r == max) { + hsb.h = (rgb.g - rgb.b) / delta; + } else if (rgb.g == max) { + hsb.h = 2 + (rgb.b - rgb.r) / delta; + } else { + hsb.h = 4 + (rgb.r - rgb.g) / delta; + } + } else { + hsb.h = -1; + } + hsb.h *= 60; + if (hsb.h < 0) { + hsb.h += 360; + } + hsb.s *= 100/255; + hsb.b *= 100/255; + return hsb; + }, + HSBToRGB = function (hsb) { + var rgb = {}; + var h = Math.round(hsb.h); + var s = Math.round(hsb.s*255/100); + var v = Math.round(hsb.b*255/100); + if(s == 0) { + rgb.r = rgb.g = rgb.b = v; + } else { + var t1 = v; + var t2 = (255-s)*v/255; + var t3 = (t1-t2)*(h%60)/60; + if(h==360) h = 0; + if(h<60) {rgb.r=t1; rgb.b=t2; rgb.g=t2+t3} + else if(h<120) {rgb.g=t1; rgb.b=t2; rgb.r=t1-t3} + else if(h<180) {rgb.g=t1; rgb.r=t2; rgb.b=t2+t3} + else if(h<240) {rgb.b=t1; rgb.r=t2; rgb.g=t1-t3} + else if(h<300) {rgb.b=t1; rgb.g=t2; rgb.r=t2+t3} + else if(h<360) {rgb.r=t1; rgb.g=t2; rgb.b=t1-t3} + else {rgb.r=0; rgb.g=0; rgb.b=0} + } + return {r:Math.round(rgb.r), g:Math.round(rgb.g), b:Math.round(rgb.b)}; + }, + RGBToHex = function (rgb) { + var hex = [ + rgb.r.toString(16), + rgb.g.toString(16), + rgb.b.toString(16) + ]; + $.each(hex, function (nr, val) { + if (val.length == 1) { + hex[nr] = '0' + val; + } + }); + return hex.join(''); + }, + HSBToHex = function (hsb) { + return RGBToHex(HSBToRGB(hsb)); + }, + restoreOriginal = function () { + var cal = $(this).parent(); + var col = cal.data('colorpicker').origColor; + cal.data('colorpicker').color = col; + fillRGBFields(col, cal.get(0)); + fillHexFields(col, cal.get(0)); + fillHSBFields(col, cal.get(0)); + setSelector(col, cal.get(0)); + setHue(col, cal.get(0)); + setNewColor(col, cal.get(0)); + }; + return { + init: function (opt) { + opt = $.extend({}, defaults, opt||{}); + if (typeof opt.color == 'string') { + opt.color = HexToHSB(opt.color); + } else if (opt.color.r != undefined && opt.color.g != undefined && opt.color.b != undefined) { + opt.color = RGBToHSB(opt.color); + } else if (opt.color.h != undefined && opt.color.s != undefined && opt.color.b != undefined) { + opt.color = fixHSB(opt.color); + } else { + return this; + } + return this.each(function () { + if (!$(this).data('colorpickerId')) { + var options = $.extend({}, opt); + options.origColor = opt.color; + var id = 'collorpicker_' + parseInt(Math.random() * 1000); + $(this).data('colorpickerId', id); + var cal = $(tpl).attr('id', id); + if (options.flat) { + cal.appendTo(this).show(); + } else { + cal.appendTo(document.body); + } + options.fields = cal + .find('input') + .bind('keyup', keyDown) + .bind('change', change) + .bind('blur', blur) + .bind('focus', focus); + cal + .find('span').bind('mousedown', downIncrement).end() + .find('>div.colorpicker-current-color').bind('click', restoreOriginal); + options.selector = cal.find('div.colorpicker-color').bind('mousedown', downSelector); + options.selectorIndic = options.selector.find('div div'); + options.el = this; + options.hue = cal.find('div.colorpicker-hue div'); + cal.find('div.colorpicker-hue').bind('mousedown', downHue); + options.newColor = cal.find('div.colorpicker-new-color'); + options.currentColor = cal.find('div.colorpicker-current-color'); + cal.data('colorpicker', options); + cal.find('div.colorpicker-submit') + .bind('mouseenter', enterSubmit) + .bind('mouseleave', leaveSubmit) + .bind('click', clickSubmit); + fillRGBFields(options.color, cal.get(0)); + fillHSBFields(options.color, cal.get(0)); + fillHexFields(options.color, cal.get(0)); + setHue(options.color, cal.get(0)); + setSelector(options.color, cal.get(0)); + setCurrentColor(options.color, cal.get(0)); + setNewColor(options.color, cal.get(0)); + if (options.flat) { + cal.css({ + position: 'relative', + display: 'block' + }); + } else { + $(this).bind(options.eventName, show); + } + } + }); + }, + showPicker: function() { + return this.each( function () { + if ($(this).data('colorpickerId')) { + show.apply(this); + } + }); + }, + hidePicker: function() { + return this.each( function () { + if ($(this).data('colorpickerId')) { + $('#' + $(this).data('colorpickerId')).hide(); + } + }); + }, + setColor: function(col) { + if (typeof col == 'string') { + col = HexToHSB(col); + } else if (col.r != undefined && col.g != undefined && col.b != undefined) { + col = RGBToHSB(col); + } else if (col.h != undefined && col.s != undefined && col.b != undefined) { + col = fixHSB(col); + } else { + return this; + } + return this.each(function(){ + if ($(this).data('colorpickerId')) { + var cal = $('#' + $(this).data('colorpickerId')); + cal.data('colorpicker').color = col; + cal.data('colorpicker').origColor = col; + fillRGBFields(col, cal.get(0)); + fillHSBFields(col, cal.get(0)); + fillHexFields(col, cal.get(0)); + setHue(col, cal.get(0)); + setSelector(col, cal.get(0)); + setCurrentColor(col, cal.get(0)); + setNewColor(col, cal.get(0)); + } + }); + } + }; + }(); + $.fn.extend({ + ColorPicker: ColorPicker.init, + ColorPickerHide: ColorPicker.hidePicker, + ColorPickerShow: ColorPicker.showPicker, + ColorPickerSetColor: ColorPicker.setColor + }); +})(jQuery); diff --git a/public/admin/assets/js/button-builder/extend-1.0.js b/public/admin/assets/js/button-builder/extend-1.0.js new file mode 100644 index 0000000..94875ad --- /dev/null +++ b/public/admin/assets/js/button-builder/extend-1.0.js @@ -0,0 +1,475 @@ +"use strict"; +function customRadio(radioName){ + var radioButton = $('input[name="'+ radioName +'"]'); + $(radioButton).each(function(){ + $(this).wrap( "" ); + if($(this).is(':checked')){ + $(this).parent().addClass("selected"); + } + }); + $(radioButton).click(function(){ + if($(this).is(':checked')){ + $(this).parent().addClass("selected"); + } + $(radioButton).not(this).each(function(){ + $(this).parent().removeClass("selected"); + }); + }); +} +function customCheckbox(checkboxName){ + var checkBox = $('input[name="'+ checkboxName +'"]'); + $(checkBox).each(function(){ + $(this).wrap( "" ); + if($(this).is(':checked')){ + $(this).parent().addClass("selected"); + } + }); + $(checkBox).click(function(){ + $(this).parent().toggleClass("selected"); + }); +} +function setColor(){ + // Getting current color values + var btnSelector = ""; + var resultButton = $("#result").children("a, input, button"); + var btnClass = resultButton.attr("class"); + var btnClass = btnClass.replace(" "," "); + var strTrim = $.trim(btnClass); + var btnSelector = "." + strTrim.split(" ").join('.'); + + //alert(btnClass); + if(resultButton.hasClass("btn-xs")){ + var classStr = btnClass.replace(" btn-xs",""); + var strTrim = $.trim(classStr); + var btnSelector = "." + strTrim.split(" ").join('.'); + } + if(resultButton.hasClass("btn-sm")){ + var classStr = btnClass.replace(" btn-sm",""); + var strTrim = $.trim(classStr); + var btnSelector = "." + strTrim.split(" ").join('.'); + } + if(resultButton.hasClass("btn-lg")){ + var classStr = btnClass.replace(" btn-lg",""); + var strTrim = $.trim(classStr); + var btnSelector = "." + strTrim.split(" ").join('.'); + } + if(resultButton.hasClass("btn-block")){ + var btnSelector = btnSelector.replace(".btn-block",""); + } + + //alert(btnSelector); + + // Default button style + if(btnSelector == ".btn.btn-default" || btnSelector == ".btn.btn-default.disabled"){ + $("#textColor").val("333333"); + $("#bgColor").val("FFFFFF"); + $("#topColor").val("FFFFFF"); + $("#bottomColor").val("E0E0E0"); + $("#borderTopColor").val("CCCCCC"); + $("#borderHrColor").val("CCCCCC"); + $("#borderBottomColor").val("CCCCCC"); + } + if(btnSelector == ".btn.btn-default.active"){ + $("#textColor").val("333333"); + $("#bgColor").val("E0E0E0"); + $("#topColor").val("E0E0E0"); + $("#bottomColor").val("E0E0E0"); + $("#borderTopColor").val("DBDBDB"); + $("#borderHrColor").val("DBDBDB"); + $("#borderBottomColor").val("DBDBDB"); + } + + // Primary button style + if(btnSelector == ".btn.btn-primary" || btnSelector == ".btn.btn-primary.disabled"){ + $("#textColor").val("ffffff"); + $("#bgColor").val("428BCA"); + $("#topColor").val("428BCA"); + $("#bottomColor").val("2D6CA2"); + $("#borderTopColor").val("2B669A"); + $("#borderHrColor").val("2B669A"); + $("#borderBottomColor").val("2B669A"); + } + if(btnSelector == ".btn.btn-primary.active"){ + $("#textColor").val("ffffff"); + $("#bgColor").val("2D6CA2"); + $("#topColor").val("2D6CA2"); + $("#bottomColor").val("2D6CA2"); + $("#borderTopColor").val("2B669A"); + $("#borderHrColor").val("2B669A"); + $("#borderBottomColor").val("2B669A"); + } + + // Info button style + if(btnSelector == ".btn.btn-info" || btnSelector == ".btn.btn-info.disabled"){ + $("#textColor").val("ffffff"); + $("#bgColor").val("5BC0DE"); + $("#topColor").val("5BC0DE"); + $("#bottomColor").val("2AABD2"); + $("#borderTopColor").val("28A4C9"); + $("#borderHrColor").val("28A4C9"); + $("#borderBottomColor").val("28A4C9"); + } + if(btnSelector == ".btn.btn-info.active"){ + $("#textColor").val("ffffff"); + $("#bgColor").val("2AABD2"); + $("#topColor").val("2AABD2"); + $("#bottomColor").val("2AABD2"); + $("#borderTopColor").val("28A4C9"); + $("#borderHrColor").val("28A4C9"); + $("#borderBottomColor").val("28A4C9"); + } + + // Success button style + if(btnSelector == ".btn.btn-success" || btnSelector == ".btn.btn-success.disabled"){ + $("#textColor").val("ffffff"); + $("#bgColor").val("00c292"); + $("#topColor").val("00c292"); + $("#bottomColor").val("00ebb1"); + $("#borderTopColor").val("00c292"); + $("#borderHrColor").val("00c292"); + $("#borderBottomColor").val("00c292"); + } + if(btnSelector == ".btn.btn-success.active"){ + $("#textColor").val("ffffff"); + $("#bgColor").val("00ebb1"); + $("#topColor").val("00ebb1"); + $("#bottomColor").val("00ebb1"); + $("#borderTopColor").val("00c292"); + $("#borderHrColor").val("00c292"); + $("#borderBottomColor").val("00c292"); + } + + // Warning button style + if(btnSelector == ".btn.btn-warning" || btnSelector == ".btn.btn-warning.disabled"){ + $("#textColor").val("ffffff"); + $("#bgColor").val("F0AD4E"); + $("#topColor").val("F0AD4E"); + $("#bottomColor").val("EB9316"); + $("#borderTopColor").val("E38D13"); + $("#borderHrColor").val("E38D13"); + $("#borderBottomColor").val("E38D13"); + } + if(btnSelector == ".btn.btn-warning.active"){ + $("#textColor").val("ffffff"); + $("#bgColor").val("EB9316"); + $("#topColor").val("EB9316"); + $("#bottomColor").val("EB9316"); + $("#borderTopColor").val("E38D13"); + $("#borderHrColor").val("E38D13"); + $("#borderBottomColor").val("E38D13"); + } + + // Danger button style + if(btnSelector == ".btn.btn-danger" || btnSelector == ".btn.btn-danger.disabled"){ + $("#textColor").val("ffffff"); + $("#bgColor").val("D9534F"); + $("#topColor").val("D9534F"); + $("#bottomColor").val("C12E2A"); + $("#borderTopColor").val("B92C28"); + $("#borderHrColor").val("B92C28"); + $("#borderBottomColor").val("B92C28"); + } + if(btnSelector == ".btn.btn-danger.active"){ + $("#textColor").val("ffffff"); + $("#bgColor").val("C12E2A"); + $("#topColor").val("C12E2A"); + $("#bottomColor").val("C12E2A"); + $("#borderTopColor").val("B92C28"); + $("#borderHrColor").val("B92C28"); + $("#borderBottomColor").val("B92C28"); + } + + // Setting background of color selector + $(".custom-button-color input").each(function(){ + var colorValue = $(this).val(); + //alert(colorValue); + $(this).next(".color-slelector").css("background", "#"+colorValue); + }); + + var txtColor = $("#textColor").val(); + var bgColor = $("#bgColor").val(); + var topColor = $("#topColor").val(); + var bottomColor = $("#bottomColor").val(); + var borderTopColor = $("#borderTopColor").val(); + var borderHrColor = $("#borderHrColor").val(); + var borderBottomColor = $("#borderBottomColor").val(); + + var btnBg = "background-color: " + "#" + bgColor + ";"; + var btnGradient = "background-image: linear-gradient(to bottom, " + "#" + topColor + "," + " " + "#" + bottomColor + ");"; + var btnBgPosition = "background-position: 0 0;"; + var btnText = "color: " + "#" + txtColor + ";"; + var btnBorder = "border-color: " + "#" + borderTopColor + " " + "#" + borderHrColor + " " + "#" + borderBottomColor +";"; + + var btnBgHover = "background-color: " + "#" + bottomColor + ";"; + var btnGradientHover = "background-image: linear-gradient(to bottom, " + "#" + bottomColor + "," + " " + "#" + bottomColor + ");"; + + // Setting CSS + var resultButton = $("#result").find("a, input, button"); + + if(resultButton.hasClass("active") || resultButton.hasClass("disabled")){ + //alert(btnSelector); + var btnStyle = ""; + + var btnCSS = btnSelector + "," + " " + "\n" + btnSelector + ":hover {\n" + "    "+ btnText + "\n" + "    "+ btnBg + "\n" + "    "+ btnGradient + "\n" + "    "+btnBgPosition + "\n" + "    "+ btnBorder + "\n}"; + + $("style").remove(); + $(btnStyle).appendTo("head"); + $(".button-css").empty(); + $(".button-css").html(btnCSS); + } + else{ + //alert(btnSelector); + var btnStyle = ""; + + var btnCSS = btnSelector + " {\n" + "    "+ btnText + "\n" + "    "+ btnBg + "\n" + "    "+ btnGradient + "\n" + "    "+ btnBorder + "\n}\n" + btnSelector + ":hover {\n" + "    "+ btnText + "\n" + "    "+ btnBgHover + "\n" + "    "+ btnGradientHover + "\n" + "    "+ btnBorder + "\n}"; + + $("style").remove(); + $(btnStyle).appendTo("head"); + $(".button-css").empty(); + $(".button-css").html(btnCSS); + } +} +(function($) { + "use strict"; + customRadio("color-option"); + customCheckbox("border-all"); + setColor(); + + // Show hide border options + $('.border-all input[type="checkbox"]').each(function(){ + if($(this).prop('checked') == true){ + var borderTopColor = $("#borderTopColor").val(); + $("#borderHrColor").val(borderTopColor); + $("#borderBottomColor").val(borderTopColor); + $("#borderHrColor, #borderBottomColor").next(".color-slelector").css("background", "#"+borderTopColor); + $(".border-color-separate").hide(); + $(this).parents(".controls").prev().text("Border Color"); + } + if($(this).prop('checked') == false){ + $(".border-color-separate").show(); + $(this).parents(".controls").prev().text("Border Top Color"); + } + }); + $('.border-all, .border-all input[type="checkbox"]').click(function(){ + if($(this).prop('checked') == true){ + var borderTopColor = $("#borderTopColor").val(); + $("#borderHrColor").val(borderTopColor); + $("#borderBottomColor").val(borderTopColor); + $("#borderHrColor, #borderBottomColor").next(".color-slelector").css("background", "#"+borderTopColor); + $(".border-color-separate").hide(); + $(this).parents(".controls").prev().text("Border Color"); + } + if($(this).prop('checked') == false){ + $(".border-color-separate").show(); + $(this).parents(".controls").prev().text("Border Top Color"); + } + }); + + // HTML copy to clipboard + var copyHTML = new Clipboard("#copyHTML"); + + copyHTML.on("success", function(e) { + $("#htmlAlert").fadeIn("fast").delay(500).queue(function() { + $(this).fadeOut("fast"); + $(this).dequeue(); + }); + }); + + // HTML copy to clipboard + var copyCSS = new Clipboard("#copyCSS"); + + copyCSS.on("success", function(e) { + $("#cssAlert").fadeIn("fast").delay(500).queue(function() { + $(this).fadeOut("fast"); + $(this).dequeue(); + }); + }); + + // Show hide icon option + $('.element-type button[value="a"]').click(function(){ + $("#iconOption").show(); + $(".include-icon button").each(function(){ + if($('button[value="1"]').hasClass("active")){ + $(".toggle").show(); + } + if($('button[value="0"]').hasClass("active")){ + $(".toggle").hide(); + } + }); + }); + $('.element-type button[value="button"]').click(function(){ + $("#iconOption").show(); + $(".include-icon button").each(function(){ + if($('button[value="1"]').hasClass("active")){ + $(".toggle").show(); + } + if($('button[value="0"]').hasClass("active")){ + $(".toggle").hide(); + } + }); + }); + $('.element-type button[value="input"]').click(function(){ + $("#iconOption, .toggle").hide(); + }); + + // Show hide color option + $('.button-color-option input[type="radio"]').each(function(){ + if($(this).is(':checked')){ + if($(this).attr("value")=="bootstrap"){ + $(".custom-button-color").hide(); + $(".bootstrap-inbuilt-style").show(); + $(".wrapper").removeClass("adjust"); + $("#cssBox").hide(); + $("style").remove(); + } + if($(this).attr("value")=="custom"){ + $(".bootstrap-inbuilt-style").hide(); + $(".custom-button-color").show(); + $(".wrapper").addClass("adjust"); + $("#cssBox").show(); + setColor(); + } + } + }); + $('.button-color-option input[type="radio"]').click(function(){ + if($(this).attr("value")=="bootstrap"){ + $(".custom-button-color").hide(); + $(".bootstrap-inbuilt-style").show(); + $(".wrapper").removeClass("adjust"); + $("#cssBox").hide(); + $("style").remove(); + } + if($(this).attr("value")=="custom"){ + $(".bootstrap-inbuilt-style").hide(); + $(".custom-button-color").show(); + $(".wrapper").addClass("adjust"); + $("#cssBox").show(); + setColor(); + } + }); + + var colorInput = $('#textColor, #topColor, #bottomColor, #bgColor, #borderTopColor, #borderHrColor, #borderBottomColor'); + $(colorInput).each(function(){ + var defautColor = $(this).val(); + //alert(defautColor); + $(this).ColorPicker({ + color: defautColor, + onSubmit: function(hsb, hex, rgb, el) { + $(el).val(hex); + $(el).ColorPickerHide(); + } + }) + .bind('keyup', function(){ + $(this).ColorPickerSetColor(this.value); + }); + }); + + $(".colorpicker-submit").click(function(){ + $(".custom-button-color input").each(function(){ + var colorValue = $(this).val(); + //alert(colorValue); + $(this).next(".color-slelector").css("background", "#"+colorValue); + $(this).attr("value", colorValue); + }); + }); + var colorSelector = $('#colorSelector1, #colorSelector2, #colorSelector3, #colorSelector4, #colorSelector5, #colorSelector6, #colorSelector7'); + $(colorSelector).each(function(){ + var selectorColor = $(this).prev().val(); + $(this).ColorPicker({ + color: selectorColor, + onSubmit: function(hsb, hex, rgb, el) { + $(el).val(hex); + $(el).ColorPickerHide(); + $(el).css("background", "#"+hex); + $(el).prev().val(hex); + } + }).bind('click', function(){ + var selectorColor = $(this).prev().val(); + $(this).ColorPickerSetColor(selectorColor); + }); + }); + + // Inserting CSS + $('.colorpicker-submit, .button-state button, .border-all input[type="checkbox"]').click(function(){ + if($('.button-color-option input[value="custom"]').is(':checked')){ + + // Getting current color values + var btnSelector = ""; + var resultButton = $("#result").children("a, input, button"); + var btnClass = resultButton.attr("class"); + var strTrim = $.trim(btnClass); + var btnSelector = "." + strTrim.split(" ").join('.'); + + //alert(btnClass); + if(resultButton.hasClass("btn-xs")){ + var classStr = btnClass.replace(" btn-xs",""); + var strTrim = $.trim(classStr); + var btnSelector = "." + strTrim.split(" ").join('.'); + } + if(resultButton.hasClass("btn-sm")){ + var classStr = btnClass.replace(" btn-sm",""); + var strTrim = $.trim(classStr); + var btnSelector = "." + strTrim.split(" ").join('.'); + } + if(resultButton.hasClass("btn-lg")){ + var classStr = btnClass.replace(" btn-lg",""); + var strTrim = $.trim(classStr); + var btnSelector = "." + strTrim.split(" ").join('.'); + } + + //alert(btnSelector); + + $('.border-all input[type="checkbox"]').each(function(){ + if($(this).is(':checked')){ + var borderTopColor = $("#borderTopColor").val(); + $("#borderHrColor").val(borderTopColor); + $("#borderBottomColor").val(borderTopColor); + $("#borderHrColor, #borderBottomColor").next(".color-slelector").css("background", "#"+borderTopColor); + } + }); + + var txtColor = $("#textColor").val(); + var bgColor = $("#bgColor").val(); + var topColor = $("#topColor").val(); + var bottomColor = $("#bottomColor").val(); + var borderTopColor = $("#borderTopColor").val(); + var borderHrColor = $("#borderHrColor").val(); + var borderBottomColor = $("#borderBottomColor").val(); + + var btnBg = "background-color: " + "#" + bgColor + ";"; + var btnGradient = "background-image: linear-gradient(to bottom, " + "#" + topColor + "," + " " + "#" + bottomColor + ");"; + var btnBgPosition = "background-position: 0 0;"; + var btnText = "color: " + "#" + txtColor + ";"; + var btnBorder = "border-color: " + "#" + borderTopColor + " " + "#" + borderHrColor + " " + "#" + borderBottomColor +";"; + + var btnBgHover = "background-color: " + "#" + bottomColor + ";"; + var btnGradientHover = "background-image: linear-gradient(to bottom, " + "#" + bottomColor + "," + " " + "#" + bottomColor + ");"; + + // Setting CSS + var resultButton = $("#result").find("a, input, button"); + + if(resultButton.hasClass("active") || resultButton.hasClass("disabled")){ + //alert(btnSelector); + var btnStyle = ""; + + var btnCSS = btnSelector + "," + " " + "\n" + btnSelector + ":hover {\n" + "    "+ btnText + "\n" + "    "+ btnBg + "\n" + "    "+ btnGradient + "\n" + "    "+btnBgPosition + "\n" + "    "+ btnBorder + "\n}"; + + $("style").remove(); + $(btnStyle).appendTo("head"); + $(".button-css").empty(); + $(".button-css").html(btnCSS); + } + else{ + //alert(btnSelector); + var btnStyle = ""; + + var btnCSS = btnSelector + " {\n" + "    "+ btnText + "\n" + "    "+ btnBg + "\n" + "    "+ btnGradient + "\n" + "    "+ btnBorder + "\n}\n" + btnSelector + ":hover {\n" + "    "+ btnText + "\n" + "    "+ btnBgHover + "\n" + "    "+ btnGradientHover + "\n" + "    "+ btnBorder + "\n}"; + + $("style").remove(); + $(btnStyle).appendTo("head"); + $(".button-css").empty(); + $(".button-css").html(btnCSS); + } + } + }); +})(jQuery); \ No newline at end of file diff --git a/public/admin/assets/js/button-builder/generator.js b/public/admin/assets/js/button-builder/generator.js new file mode 100644 index 0000000..d1e538e --- /dev/null +++ b/public/admin/assets/js/button-builder/generator.js @@ -0,0 +1,368 @@ +function filterHTML(strInput){ + strInput = strInput.replace(new RegExp(['<'],"g"), "<"); + strInput = strInput.replace(new RegExp(['>'],"g"), ">"); + return strInput; +} +$(function(){ + $(".button-text").keyup(function(){ + var btnText = $(this).val(); + if($("#result a.btn, #result button.btn").length){ + if($("#result a.btn span, #result button.btn span").length){ + var iconCode = $("#result a.btn span, #result button.btn span").clone(); + innerCode = btnText; + $("#result .btn").html(filterHTML(btnText)); + $("#result .btn").prepend(" "); + $("#result .btn").prepend(iconCode); + var btnHTML = $("#result").html(); + $(".button-html").html(filterHTML(btnHTML)); + } + else{ + $("#result .btn").html(filterHTML(btnText)); + var btnHTML = $("#result").html(); + $(".button-html").html(filterHTML(btnHTML)); + } + } + else if($("#result input.btn").length){ + $("#result .btn").attr("value", filterHTML(btnText)); + var btnHTML = $("#result").html(); + $(".button-html").html(filterHTML(btnHTML)); + } + }); + $(".button-color label").click(function(){ + var btnColor = $(this).children("input").attr("value"); + var btnSize = $(".button-size label.active").children("input").attr("value"); + var btnState = $(".button-state label.active").children("input").attr("value"); + var btnWidth = $(".button-width label.active").children("input").attr("value"); + if(btnState == "active" || btnState == "disabled"){ + var className = btnColor + " " + btnSize + " " + btnState; + if(btnWidth.length){ + var className = btnColor + " " + btnSize + " " + btnState + " " + btnWidth; + } + $("#result .btn").attr("class", className); + var btnHTML = $("#result").html(); + $(".button-html").html(filterHTML(btnHTML)); + } + if(btnState == "normal"){ + var className = btnColor + " " + btnSize; + if(btnWidth.length){ + var className = btnColor + " " + btnSize + " " + btnWidth; + } + $("#result .btn").attr("class", className); + var btnHTML = $("#result").html(); + $(".button-html").html(filterHTML(btnHTML)); + } + }); + $(".button-size label").click(function(){ + var btnSize = $(this).children("input").attr("value"); + var btnColor = $(".button-color label.active").children("input").attr("value"); + var btnState = $(".button-state label.active").children("input").attr("value"); + var btnWidth = $(".button-width label.active").children("input").attr("value"); + if(btnSize.length){ + if(btnState == "active" || btnState == "disabled"){ + var className = btnColor + " " + btnSize + " " + btnState; + if(btnWidth.length){ + var className = btnColor + " " + btnSize + " " + btnState + " " + btnWidth; + } + $("#result .btn").attr("class", className); + var btnHTML = $("#result").html(); + $(".button-html").html(filterHTML(btnHTML)); + } + if(btnState == "normal"){ + var className = btnColor + " " + btnSize; + if(btnWidth.length){ + var className = btnColor + " " + btnSize + " " + btnWidth; + } + $("#result .btn").attr("class", className); + var btnHTML = $("#result").html(); + $(".button-html").html(filterHTML(btnHTML)); + } + } + else{ + if(btnState == "active" || btnState == "disabled"){ + var className = btnColor + " " + btnState; + if(btnWidth.length){ + var className = btnColor + " " + btnState + " " + btnWidth; + } + $("#result .btn").attr("class", className); + var btnHTML = $("#result").html(); + $(".button-html").html(filterHTML(btnHTML)); + } + if(btnState == "normal"){ + var className = btnColor; + if(btnWidth.length){ + var className = btnColor + " " + btnWidth; + } + $("#result .btn").attr("class", className); + var btnHTML = $("#result").html(); + $(".button-html").html(filterHTML(btnHTML)); + } + } + $("#result .btn").attr("class", className); + var btnHTML = $("#result").html(); + $(".button-html").html(filterHTML(btnHTML)); + }); + $(".element-type label").click(function(){ + var iconCode = ""; + var currentClass = $("#result .btn").attr("class"); + if($("#result a.btn span").length){ + var iconCode = $("#result a.btn span, #result button.btn span").clone(); + } + if($("#result a.btn span").length === 0 && $('.include-icon label.active input').val() == 1){ + var iconName = $(".the-icons li.active span").attr("class"); + iconCode = ''; + } + if($("#result a.btn, #result button.btn").length){ + var btnStr = $("#result .btn").text(); + var btnText = $.trim(btnStr); + } + else if($("#result input.btn").length){ + var btnStr = $("#result .btn").attr("value"); + var btnText = $.trim(btnStr); + } + if($(this).children("input").attr("value")=="a"){ + $("#result").empty(); + var btnCode = '' + btnText + ''; + $("#result a").remove(); + $("#result").append(btnCode); + if(iconCode.length){ + if($('.fa-position label.active input').val() == "left"){ + $("#result .btn").prepend(" "); + $("#result .btn").prepend(iconCode); + } + if($('.fa-position label.active input').val() == "right"){ + $("#result .btn").append(" "); + $("#result .btn").append(iconCode); + } + } + var btnHTML = $("#result").html(); + $(".button-html").html(filterHTML(btnHTML)); + if($(".include-icon label.active").children("input").attr("value")=="1"){ + $(".toggle").add("#iconOption").show(); + } + if($(".include-icon label.active").children("input").attr("value")=="0"){ + $("#iconOption").show(); + } + } + else if($(this).children("input").attr("value")=="button"){ + $("#result").empty(); + var btnCode = ''; + $("#result button").remove(); + $("#result").append(btnCode); + if(iconCode.length){ + if($('.fa-position label.active input').val() == "left"){ + $("#result .btn").prepend(" "); + $("#result .btn").prepend(iconCode); + } + if($('.fa-position label.active input').val() == "right"){ + $("#result .btn").append(" "); + $("#result .btn").append(iconCode); + } + } + var btnHTML = $("#result").html(); + $(".button-html").html(filterHTML(btnHTML)); + if($(".include-icon label.active").children("input").attr("value")=="1"){ + $(".toggle").add("#iconOption").show(); + } + if($(".include-icon label.active").children("input").attr("value")=="0"){ + $("#iconOption").show(); + } + } + else if($(this).children("input").attr("value")=="input"){ + $("#result").empty(); + var btnCode = ''; + $("#result button").remove(); + $("#result").append(btnCode); + // Only applicable for input case + $(".button-html").html(filterHTML(btnCode)); + $(".toggle").add("#iconOption").hide(); + } + else if($(this).children("input").attr("value")=="submit"){ + $("#result").empty(); + var btnCode = ''; + $("#result button").remove(); + $("#result").append(btnCode); + var btnHTML = $("#result").html(); + $(".button-html").html(filterHTML(btnHTML)); + } + }); + $(".button-state label").click(function(){ + if($(this).children("input").attr("value")=="active"){ + if($("#result a.btn").length){ + if($("#result a.disabled").length){ + $("#result a.btn").removeClass("disabled"); + $("#result a.btn").addClass("active"); + var btnHTML = $("#result").html(); + $(".button-html").html(filterHTML(btnHTML)); + } + else{ + $("#result a.btn").addClass("active"); + var btnHTML = $("#result").html(); + $(".button-html").html(filterHTML(btnHTML)); + } + } + if($("#result button.btn, #result input.btn").length){ + if($("#result button.disabled, #result input.disabled").length){ + $("#result button.btn, #result input.btn").removeClass("disabled"); + //$("#result button.btn, #result input.btn").removeAttr("disabled"); + $("#result button.btn, #result input.btn").addClass("active"); + var btnHTML = $("#result").html(); + $(".button-html").html(filterHTML(btnHTML)); + } + else{ + $("#result button.btn, #result input.btn").addClass("active"); + var btnHTML = $("#result").html(); + $(".button-html").html(filterHTML(btnHTML)); + } + } + } + if($(this).children("input").attr("value")=="disabled"){ + if($("#result a.btn").length){ + if($("#result a.active").length){ + $("#result a.btn").removeClass("active"); + $("#result a.btn").addClass("disabled"); + var btnHTML = $("#result").html(); + $(".button-html").html(filterHTML(btnHTML)); + } + else{ + $("#result a.btn").addClass("disabled"); + var btnHTML = $("#result").html(); + $(".button-html").html(filterHTML(btnHTML)); + } + } + if($("#result button.btn, #result input.btn")){ + if($("#result button.active, #result input.active").length){ + $("#result button.btn, #result input.btn").removeClass("active"); + $("#result button.btn, #result input.btn").addClass("disabled"); + //$("#result button.btn, #result input.btn").attr("disabled","disabled"); + var btnHTML = $("#result").html(); + $(".button-html").html(filterHTML(btnHTML)); + } + else{ + $("#result button.btn, #result input.btn").addClass("disabled"); + //$("#result button.btn, #result input.btn").attr("disabled","disabled"); + var btnHTML = $("#result").html(); + $(".button-html").html(filterHTML(btnHTML)); + } + } + } + if($(this).children("input").attr("value")=="normal"){ + if($("#result .btn.active").length){ + $("#result .btn").removeClass("active"); + var btnHTML = $("#result").html(); + $(".button-html").html(filterHTML(btnHTML)); + } + if($("#result .btn.disabled").length){ + $("#result .btn").removeClass("disabled"); + //$("#result .btn").removeAttr("disabled"); + var btnHTML = $("#result").html(); + $(".button-html").html(filterHTML(btnHTML)); + } + } + }); + $(".button-width label").click(function(){ + if($(this).children("input").attr("value")==""){ + if($("#result .btn").hasClass("btn-block")){ + $("#result .btn").removeClass("btn-block"); + var btnHTML = $("#result").html(); + $(".button-html").html(filterHTML(btnHTML)); + } + } + if($(this).children("input").attr("value")=="btn-block"){ + if(!$("#result .btn").hasClass("btn-block")){ + $("#result .btn").addClass("btn-block"); + var btnHTML = $("#result").html(); + $(".button-html").html(filterHTML(btnHTML)); + } + } + }); + $(".the-icons li").click(function(){ + $(".the-icons li").removeClass("active"); + $(this).addClass("active"); + if($('.include-icon label.active input').val() == 1){ + if($("#result .btn span").length){ + var iconClass = $(this).children("span").attr("class"); + iconCode = ' '; + //alert(iconCode); + $("#result .btn span").remove(); + if($('.fa-position label.active input').val() == "left"){ + $("#result .btn").prepend(iconCode); + } + if($('.fa-position label.active input').val() == "right"){ + $("#result .btn").append(iconCode); + } + var btnHTML = $("#result").html(); + $(".button-html").html(filterHTML(btnHTML)); + } + } + }); + $('.include-icon label').click(function(){ + if($(this).children("input").attr("value") == 0){ + if($("#result .btn span").length){ + var btnStr = $("#result .btn").text(); + var btnText = $.trim(btnStr); + $("#result .btn").html(btnText); + var btnHTML = $("#result").html(); + $(".button-html").html(filterHTML(btnHTML)); + } + $(".toggle").hide(); + } + if($(this).children("input").attr("value") == 1){ + $(".toggle").show(); + var iconName = $(".the-icons li.active span").attr("class"); + iconCode = ''; + if(iconCode.length){ + if($('.fa-position label.active input').val() == "left"){ + $("#result .btn").prepend(" "); + $("#result .btn").prepend(iconCode); + } + if($('.fa-position label.active input').val() == "right"){ + $("#result .btn").append(" "); + $("#result .btn").append(iconCode); + } + var btnHTML = $("#result").html(); + $(".button-html").html(filterHTML(btnHTML)); + } + } + + }); + $(".fa-position label").click(function(){ + if($(this).children("input").attr("value") == "left"){ + if($("#result .btn span").length){ + var iconCode = $("#result .btn span").clone(); + var btnStr = $("#result .btn").text(); + var btnText = $.trim(btnStr); + $("#result .btn").html(iconCode); + $("#result .btn").append(" "); + $("#result .btn").append(btnText); + var btnHTML = $("#result").html(); + $(".button-html").html(filterHTML(btnHTML)); + } + + } + if($(this).children("input").attr("value") == "right"){ + if($("#result .btn span").length){ + var iconCode = $("#result .btn span").clone(); + var btnStr = $("#result .btn").text(); + var btnText = $.trim(btnStr); + $("#result .btn").html(iconCode); + $("#result .btn").prepend(" "); + $("#result .btn").prepend(btnText); + var btnHTML = $("#result").html(); + $(".button-html").html(filterHTML(btnHTML)); + } + } + + }); + $(".the-icons li").each(function(){ + var iconName = $(this).text().trim(); + $(this).attr("title",iconName); + }); + $(".the-icons li").tooltip(); + + //Print Button HTML + $(".print-html").click(function(){ + var btnHTML = $("#result").html(); + alert(filterHTML(btnHTML)); + $(".button-html").html(filterHTML(btnHTML)); + }); +}); \ No newline at end of file diff --git a/public/admin/assets/js/calendar/app.js b/public/admin/assets/js/calendar/app.js new file mode 100644 index 0000000..a978215 --- /dev/null +++ b/public/admin/assets/js/calendar/app.js @@ -0,0 +1,447 @@ +'use strict'; + +/* eslint-disable */ +/* eslint-env jquery */ +/* global moment, tui, chance */ +/* global findCalendar, CalendarList, ScheduleList, generateSchedule */ + +(function(window, Calendar) { + var cal, resizeThrottled; + var useCreationPopup = true; + var useDetailPopup = true; + var datePicker, selectedCalendar; + + cal = new Calendar('#calendar', { + defaultView: 'month', + useCreationPopup: useCreationPopup, + useDetailPopup: useDetailPopup, + calendars: CalendarList, + template: { + milestone: function(model) { + return ' ' + model.title + ''; + }, + allday: function(schedule) { + return getTimeTemplate(schedule, true); + }, + time: function(schedule) { + return getTimeTemplate(schedule, false); + } + } + }); + + // event handlers + cal.on({ + 'clickMore': function(e) { + console.log('clickMore', e); + }, + 'clickSchedule': function(e) { + console.log('clickSchedule', e); + }, + 'clickDayname': function(date) { + console.log('clickDayname', date); + }, + 'beforeCreateSchedule': function(e) { + console.log('beforeCreateSchedule', e); + saveNewSchedule(e); + }, + 'beforeUpdateSchedule': function(e) { + var schedule = e.schedule; + var changes = e.changes; + + console.log('beforeUpdateSchedule', e); + + if (changes && !changes.isAllDay && schedule.category === 'allday') { + changes.category = 'time'; + } + + cal.updateSchedule(schedule.id, schedule.calendarId, changes); + refreshScheduleVisibility(); + }, + 'beforeDeleteSchedule': function(e) { + console.log('beforeDeleteSchedule', e); + cal.deleteSchedule(e.schedule.id, e.schedule.calendarId); + }, + 'afterRenderSchedule': function(e) { + var schedule = e.schedule; + // var element = cal.getElement(schedule.id, schedule.calendarId); + // console.log('afterRenderSchedule', element); + }, + 'clickTimezonesCollapseBtn': function(timezonesCollapsed) { + console.log('timezonesCollapsed', timezonesCollapsed); + + if (timezonesCollapsed) { + cal.setTheme({ + 'week.daygridLeft.width': '77px', + 'week.timegridLeft.width': '77px' + }); + } else { + cal.setTheme({ + 'week.daygridLeft.width': '60px', + 'week.timegridLeft.width': '60px' + }); + } + + return true; + } + }); + + /** + * Get time template for time and all-day + * @param {Schedule} schedule - schedule + * @param {boolean} isAllDay - isAllDay or hasMultiDates + * @returns {string} + */ + function getTimeTemplate(schedule, isAllDay) { + var html = []; + var start = moment(schedule.start.toUTCString()); + if (!isAllDay) { + html.push('' + start.format('HH:mm') + ' '); + } + if (schedule.isPrivate) { + html.push(''); + html.push(' Private'); + } else { + if (schedule.isReadOnly) { + html.push(''); + } else if (schedule.recurrenceRule) { + html.push(''); + } else if (schedule.attendees.length) { + html.push(''); + } else if (schedule.location) { + html.push(''); + } + html.push(' ' + schedule.title); + } + + return html.join(''); + } + + /** + * A listener for click the menu + * @param {Event} e - click event + */ + function onClickMenu(e) { + var target = $(e.target).closest('a[role="menuitem"]')[0]; + var action = getDataAction(target); + var options = cal.getOptions(); + var viewName = ''; + + console.log(target); + console.log(action); + switch (action) { + case 'toggle-daily': + viewName = 'day'; + break; + case 'toggle-weekly': + viewName = 'week'; + break; + case 'toggle-monthly': + options.month.visibleWeeksCount = 0; + viewName = 'month'; + break; + case 'toggle-weeks2': + options.month.visibleWeeksCount = 2; + viewName = 'month'; + break; + case 'toggle-weeks3': + options.month.visibleWeeksCount = 3; + viewName = 'month'; + break; + case 'toggle-narrow-weekend': + options.month.narrowWeekend = !options.month.narrowWeekend; + options.week.narrowWeekend = !options.week.narrowWeekend; + viewName = cal.getViewName(); + + target.querySelector('input').checked = options.month.narrowWeekend; + break; + case 'toggle-start-day-1': + options.month.startDayOfWeek = options.month.startDayOfWeek ? 0 : 1; + options.week.startDayOfWeek = options.week.startDayOfWeek ? 0 : 1; + viewName = cal.getViewName(); + + target.querySelector('input').checked = options.month.startDayOfWeek; + break; + case 'toggle-workweek': + options.month.workweek = !options.month.workweek; + options.week.workweek = !options.week.workweek; + viewName = cal.getViewName(); + + target.querySelector('input').checked = !options.month.workweek; + break; + default: + break; + } + + cal.setOptions(options, true); + cal.changeView(viewName, true); + + setDropdownCalendarType(); + setRenderRangeText(); + setSchedules(); + } + + function onClickNavi(e) { + var action = getDataAction(e.target); + + switch (action) { + case 'move-prev': + cal.prev(); + break; + case 'move-next': + cal.next(); + break; + case 'move-today': + cal.today(); + break; + default: + return; + } + + setRenderRangeText(); + setSchedules(); + } + + function onNewSchedule() { + var title = $('#new-schedule-title').val(); + var location = $('#new-schedule-location').val(); + var isAllDay = document.getElementById('new-schedule-allday').checked; + var start = datePicker.getStartDate(); + var end = datePicker.getEndDate(); + var calendar = selectedCalendar ? selectedCalendar : CalendarList[0]; + + if (!title) { + return; + } + + cal.createSchedules([{ + id: String(chance.guid()), + calendarId: calendar.id, + title: title, + isAllDay: isAllDay, + start: start, + end: end, + category: isAllDay ? 'allday' : 'time', + dueDateClass: '', + color: calendar.color, + bgColor: calendar.bgColor, + dragBgColor: calendar.bgColor, + borderColor: calendar.borderColor, + raw: { + location: location + }, + state: 'Busy' + }]); + + $('#modal-new-schedule').modal('hide'); + } + + function onChangeNewScheduleCalendar(e) { + var target = $(e.target).closest('a[role="menuitem"]')[0]; + var calendarId = getDataAction(target); + changeNewScheduleCalendar(calendarId); + } + + function changeNewScheduleCalendar(calendarId) { + var calendarNameElement = document.getElementById('calendarName'); + var calendar = findCalendar(calendarId); + var html = []; + + html.push(''); + html.push('' + calendar.name + ''); + + calendarNameElement.innerHTML = html.join(''); + + selectedCalendar = calendar; + } + + function createNewSchedule(event) { + var start = event.start ? new Date(event.start.getTime()) : new Date(); + var end = event.end ? new Date(event.end.getTime()) : moment().add(1, 'hours').toDate(); + + if (useCreationPopup) { + cal.openCreationPopup({ + start: start, + end: end + }); + } + } + function saveNewSchedule(scheduleData) { + var calendar = scheduleData.calendar || findCalendar(scheduleData.calendarId); + var schedule = { + id: String(chance.guid()), + title: scheduleData.title, + isAllDay: scheduleData.isAllDay, + start: scheduleData.start, + end: scheduleData.end, + category: scheduleData.isAllDay ? 'allday' : 'time', + dueDateClass: '', + color: calendar.color, + bgColor: calendar.bgColor, + dragBgColor: calendar.bgColor, + borderColor: calendar.borderColor, + location: scheduleData.location, + raw: { + class: scheduleData.raw['class'] + }, + state: scheduleData.state + }; + if (calendar) { + schedule.calendarId = calendar.id; + schedule.color = calendar.color; + schedule.bgColor = calendar.bgColor; + schedule.borderColor = calendar.borderColor; + } + + cal.createSchedules([schedule]); + + refreshScheduleVisibility(); + } + + function onChangeCalendars(e) { + var calendarId = e.target.value; + var checked = e.target.checked; + var viewAll = document.querySelector('.lnb-calendars-item input'); + var calendarElements = Array.prototype.slice.call(document.querySelectorAll('#calendarList input')); + var allCheckedCalendars = true; + + if (calendarId === 'all') { + allCheckedCalendars = checked; + + calendarElements.forEach(function(input) { + var span = input.parentNode; + input.checked = checked; + span.style.backgroundColor = checked ? span.style.borderColor : 'transparent'; + }); + + CalendarList.forEach(function(calendar) { + calendar.checked = checked; + }); + } else { + findCalendar(calendarId).checked = checked; + + allCheckedCalendars = calendarElements.every(function(input) { + return input.checked; + }); + + if (allCheckedCalendars) { + viewAll.checked = true; + } else { + viewAll.checked = false; + } + } + refreshScheduleVisibility(); + } + function refreshScheduleVisibility() { + var calendarElements = Array.prototype.slice.call(document.querySelectorAll('#calendarList input')); + CalendarList.forEach(function(calendar) { + cal.toggleSchedules(calendar.id, !calendar.checked, false); + }); + cal.render(true); + calendarElements.forEach(function(input) { + var span = input.nextElementSibling; + span.style.backgroundColor = input.checked ? span.style.borderColor : 'transparent'; + }); + } + function setDropdownCalendarType() { + var calendarTypeName = document.getElementById('calendarTypeName'); + var calendarTypeIcon = document.getElementById('calendarTypeIcon'); + var options = cal.getOptions(); + var type = cal.getViewName(); + var iconClassName; + if (type === 'month') { + type = 'Monthly'; + iconClassName = 'calendar-icon fa fa-th'; + } else if (type === 'week') { + type = 'Weekly'; + iconClassName = 'calendar-icon fa fa-th-large'; + } else if (options.month.visibleWeeksCount === 2) { + type = '2 weeks'; + iconClassName = 'calendar-icon fa fa-th-large'; + } else if (options.month.visibleWeeksCount === 3) { + type = '3 weeks'; + iconClassName = 'calendar-icon fa fa-th-large'; + } else{ + type = 'Daily'; + iconClassName = 'calendar-icon fa fa-bars'; + } + + calendarTypeName.innerHTML = type; + calendarTypeIcon.className = iconClassName; + } + + function currentCalendarDate(format) { + var currentDate = moment([cal.getDate().getFullYear(), cal.getDate().getMonth(), cal.getDate().getDate()]); + + return currentDate.format(format); + } + + function setRenderRangeText() { + var renderRange = document.getElementById('renderRange'); + var options = cal.getOptions(); + var viewName = cal.getViewName(); + + var html = []; + if (viewName === 'day') { + html.push(currentCalendarDate('YYYY.MM.DD')); + } else if (viewName === 'month' && + (!options.month.visibleWeeksCount || options.month.visibleWeeksCount > 4)) { + html.push(currentCalendarDate('YYYY.MM')); + } else { + html.push(moment(cal.getDateRangeStart().getTime()).format('YYYY.MM.DD')); + html.push(' ~ '); + html.push(moment(cal.getDateRangeEnd().getTime()).format(' MM.DD')); + } + renderRange.innerHTML = html.join(''); + } + + function setSchedules() { + cal.clear(); + generateSchedule(cal.getViewName(), cal.getDateRangeStart(), cal.getDateRangeEnd()); + cal.createSchedules(ScheduleList); + + refreshScheduleVisibility(); + } + + function setEventListener() { + $('#menu-navi').on('click', onClickNavi); + $('.dropdown-menu a[role="menuitem"]').on('click', onClickMenu); + $('#lnb-calendars').on('change', onChangeCalendars); + + $('#btn-save-schedule').on('click', onNewSchedule); + $('#btn-new-schedule').on('click', createNewSchedule); + + $('#dropdownMenu-calendars-list').on('click', onChangeNewScheduleCalendar); + + window.addEventListener('resize', resizeThrottled); + } + + function getDataAction(target) { + return target.dataset ? target.dataset.action : target.getAttribute('data-action'); + } + + resizeThrottled = tui.util.throttle(function() { + cal.render(); + }, 50); + + window.cal = cal; + + setDropdownCalendarType(); + setRenderRangeText(); + setSchedules(); + setEventListener(); +})(window, tui.Calendar); + +// set calendars +(function() { + var calendarList = document.getElementById('calendarList'); + var html = []; + CalendarList.forEach(function(calendar) { + html.push('
' + ); + }); + calendarList.innerHTML = html.join('\n'); +})(); \ No newline at end of file diff --git a/public/admin/assets/js/calendar/calendars.js b/public/admin/assets/js/calendar/calendars.js new file mode 100644 index 0000000..8988ac0 --- /dev/null +++ b/public/admin/assets/js/calendar/calendars.js @@ -0,0 +1,127 @@ +'use strict'; + +/* eslint-disable require-jsdoc, no-unused-vars */ + +var CalendarList = []; + +function CalendarInfo() { + this.id = null; + this.name = null; + this.checked = true; + this.color = null; + this.bgColor = null; + this.borderColor = null; + this.dragBgColor = null; +} + +function addCalendar(calendar) { + CalendarList.push(calendar); +} + +function findCalendar(id) { + var found; + + CalendarList.forEach(function(calendar) { + if (calendar.id === id) { + found = calendar; + } + }); + + return found || CalendarList[0]; +} + +function hexToRGBA(hex) { + var radix = 16; + var r = parseInt(hex.slice(1, 3), radix), + g = parseInt(hex.slice(3, 5), radix), + b = parseInt(hex.slice(5, 7), radix), + a = parseInt(hex.slice(7, 9), radix) / 255 || 1; + var rgba = 'rgba(' + r + ', ' + g + ', ' + b + ', ' + a + ')'; + + return rgba; +} + +(function() { + var calendar; + var id = 0; + + calendar = new CalendarInfo(); + id += 1; + calendar.id = String(id); + calendar.name = 'My Calendar'; + calendar.color = '#ffffff'; + calendar.bgColor = '#24695c'; + calendar.dragBgColor = '#24695c'; + calendar.borderColor = '#24695c'; + addCalendar(calendar); + + calendar = new CalendarInfo(); + id += 1; + calendar.id = String(id); + calendar.name = 'Company'; + calendar.color = '#ffffff'; + calendar.bgColor = '#ba895d'; + calendar.dragBgColor = '#ba895d'; + calendar.borderColor = '#ba895d'; + addCalendar(calendar); + + calendar = new CalendarInfo(); + id += 1; + calendar.id = String(id); + calendar.name = 'Family'; + calendar.color = '#ffffff'; + calendar.bgColor = '#ff5583'; + calendar.dragBgColor = '#ff5583'; + calendar.borderColor = '#ff5583'; + addCalendar(calendar); + + calendar = new CalendarInfo(); + id += 1; + calendar.id = String(id); + calendar.name = 'Friend'; + calendar.color = '#ffffff'; + calendar.bgColor = '#03bd9e'; + calendar.dragBgColor = '#03bd9e'; + calendar.borderColor = '#03bd9e'; + addCalendar(calendar); + + calendar = new CalendarInfo(); + id += 1; + calendar.id = String(id); + calendar.name = 'Travel'; + calendar.color = '#ffffff'; + calendar.bgColor = '#1b4c43'; + calendar.dragBgColor = '#1b4c43'; + calendar.borderColor = '#1b4c43'; + addCalendar(calendar); + + calendar = new CalendarInfo(); + id += 1; + calendar.id = String(id); + calendar.name = 'etc'; + calendar.color = '#ffffff'; + calendar.bgColor = '#9d9d9d'; + calendar.dragBgColor = '#9d9d9d'; + calendar.borderColor = '#9d9d9d'; + addCalendar(calendar); + + calendar = new CalendarInfo(); + id += 1; + calendar.id = String(id); + calendar.name = 'Birthdays'; + calendar.color = '#ffffff'; + calendar.bgColor = '#e2c636'; + calendar.dragBgColor = '#e2c636'; + calendar.borderColor = '#e2c636'; + addCalendar(calendar); + + calendar = new CalendarInfo(); + id += 1; + calendar.id = String(id); + calendar.name = 'National Holidays'; + calendar.color = '#ffffff'; + calendar.bgColor = '#d22d3d'; + calendar.dragBgColor = '#d22d3d'; + calendar.borderColor = '#d22d3d'; + addCalendar(calendar); +})(); \ No newline at end of file diff --git a/public/admin/assets/js/calendar/chance.min.js b/public/admin/assets/js/calendar/chance.min.js new file mode 100644 index 0000000..9187f0d --- /dev/null +++ b/public/admin/assets/js/calendar/chance.min.js @@ -0,0 +1,2 @@ +!function(){function a(e){if(!(this instanceof a))return e||(e=null),null===e?new a:new a(e);if("function"==typeof e)return this.random=e,this;arguments.length&&(this.seed=0);for(var n=0;n100,"Chance: Likelihood accepts values from 0 to 100."),100*this.random()o,"Chance: Max specified is out of range with fixed. Max should be, at most, "+o),a=e(a,{min:t,max:o});var l=((i=this.integer({min:a.min*r,max:a.max*r}))/r).toFixed(a.fixed);return parseFloat(l)},a.prototype.integer=function(a){return a=e(a,{min:-9007199254740992,max:s}),n(a.min>a.max,"Chance: Min cannot be greater than Max."),Math.floor(this.random()*(a.max-a.min+1)+a.min)},a.prototype.natural=function(a){return"number"==typeof(a=e(a,{min:0,max:s})).numerals&&(n(a.numerals<1,"Chance: Numerals cannot be less than one."),a.min=Math.pow(10,a.numerals-1),a.max=Math.pow(10,a.numerals)-1),n(a.min<0,"Chance: Min cannot be less than zero."),this.integer(a)},a.prototype.hex=function(a){n((a=e(a,{min:0,max:s,casing:"lower"})).min<0,"Chance: Min cannot be less than zero.");var i=this.natural({min:a.min,max:a.max});return"upper"===a.casing?i.toString(16).toUpperCase():i.toString(16)},a.prototype.letter=function(a){a=e(a,{casing:"lower"});var n=this.character({pool:"abcdefghijklmnopqrstuvwxyz"});return"upper"===a.casing&&(n=n.toUpperCase()),n},a.prototype.string=function(a){n((a=e(a,{length:this.natural({min:5,max:20})})).length<0,"Chance: Length cannot be less than zero.");var i=a.length;return this.n(this.character,i,a).join("")},a.prototype.capitalize=function(a){return a.charAt(0).toUpperCase()+a.substr(1)},a.prototype.mixin=function(e){for(var n in e)a.prototype[n]=e[n];return this},a.prototype.unique=function(a,e,i){n("function"!=typeof a,"Chance: The first argument must be a function.");var r=function(a,e){return-1!==a.indexOf(e)};i&&(r=i.comparator||r);for(var o,t=[],s=0,l=50*e,c=u.call(arguments,2);t.lengthl)throw new RangeError("Chance: num is likely too large for sample set")}return t},a.prototype.n=function(a,e){n("function"!=typeof a,"Chance: The first argument must be a function."),void 0===e&&(e=1);var i=e,r=[],o=u.call(arguments,2);for(i=Math.max(0,i),null;i--;null)r.push(a.apply(this,o));return r},a.prototype.pad=function(a,e,n){return n=n||"0",(a+="").length>=e?a:new Array(e-a.length+1).join(n)+a},a.prototype.pick=function(a,e){if(0===a.length)throw new RangeError("Chance: Cannot pick() from an empty array");return e&&1!==e?this.shuffle(a).slice(0,e):a[this.natural({max:a.length-1})]},a.prototype.pickone=function(a){if(0===a.length)throw new RangeError("Chance: Cannot pickone() from an empty array");return a[this.natural({max:a.length-1})]},a.prototype.pickset=function(a,e){if(0===e)return[];if(0===a.length)throw new RangeError("Chance: Cannot pickset() from an empty array");if(e<0)throw new RangeError("Chance: Count must be a positive number");return e&&1!==e?this.shuffle(a).slice(0,e):[this.pickone(a)]},a.prototype.shuffle=function(a){for(var e=a.slice(0),n=[],i=0,r=Number(e.length),o=0;o0&&(r+=i)}if(0===r)throw new RangeError("Chance: No valid entries in array weights");var t,s=this.random()*r,l=0,c=-1;for(o=0;o0){if(s<=l){t=o;break}c=o}o===e.length-1&&(t=c)}var m=a[t];return(n=void 0!==n&&n)&&(a.splice(t,1),e.splice(t,1)),m},a.prototype.paragraph=function(a){var n=(a=e(a)).sentences||this.natural({min:3,max:7});return this.n(this.sentence,n).join(" ")},a.prototype.sentence=function(a){var n,i=(a=e(a)).words||this.natural({min:12,max:18}),r=a.punctuation;return n=this.n(this.word,i).join(" "),n=this.capitalize(n),!1===r||/^[\.\?;!:]$/.test(r)||(r="."),r&&(n+=r),n},a.prototype.syllable=function(a){for(var n,i=(a=e(a)).length||this.natural({min:2,max:3}),r="",o=0;o=10&&(i=0);var r=2*i+3*n[8]+4*n[7]+5*n[6]+6*n[5]+7*n[4]+8*n[3]+9*n[2]+10*n[1]+11*n[0];(r=11-r%11)>=10&&(r=0);var o=""+n[0]+n[1]+n[2]+"."+n[3]+n[4]+n[5]+"."+n[6]+n[7]+n[8]+"-"+i+r;return a.formatted?o:o.replace(/\D/g,"")},a.prototype.cnpj=function(a){a=e(a,{formatted:!0});var n=this.n(this.natural,12,{max:12}),i=2*n[11]+3*n[10]+4*n[9]+5*n[8]+6*n[7]+7*n[6]+8*n[5]+9*n[4]+2*n[3]+3*n[2]+4*n[1]+5*n[0];(i=11-i%11)<2&&(i=0);var r=2*i+3*n[11]+4*n[10]+5*n[9]+6*n[8]+7*n[7]+8*n[6]+9*n[5]+2*n[4]+3*n[3]+4*n[2]+5*n[1]+6*n[0];(r=11-r%11)<2&&(r=0);var o=""+n[0]+n[1]+"."+n[2]+n[3]+n[4]+"."+n[5]+n[6]+n[7]+"/"+n[8]+n[9]+n[10]+n[11]+"-"+i+r;return a.formatted?o:o.replace(/\D/g,"")},a.prototype.first=function(a){return a=e(a,{gender:this.gender(),nationality:"en"}),this.pick(this.get("firstNames")[a.gender.toLowerCase()][a.nationality.toLowerCase()])},a.prototype.profession=function(a){return(a=e(a)).rank?this.pick(["Apprentice ","Junior ","Senior ","Lead "])+this.pick(this.get("profession")):this.pick(this.get("profession"))},a.prototype.company=function(){return this.pick(this.get("company"))},a.prototype.gender=function(a){return a=e(a,{extraGenders:[]}),this.pick(["Male","Female"].concat(a.extraGenders))},a.prototype.last=function(a){return a=e(a,{nationality:"en"}),this.pick(this.get("lastNames")[a.nationality.toLowerCase()])},a.prototype.israelId=function(){for(var a=this.string({pool:"0123456789",length:8}),e=0,n=0;n","<=",">=","="]);a.range&&(n=a.range);var i="";return a.include_prerelease&&(i=this.weighted(["","-dev","-beta","-alpha"],[50,10,5,1])),n+this.rpg("3d10").join(".")+i},a.prototype.tlds=function(){return["com","org","edu","gov","co.uk","net","io","ac","ad","ae","af","ag","ai","al","am","an","ao","aq","ar","as","at","au","aw","ax","az","ba","bb","bd","be","bf","bg","bh","bi","bj","bm","bn","bo","bq","br","bs","bt","bv","bw","by","bz","ca","cc","cd","cf","cg","ch","ci","ck","cl","cm","cn","co","cr","cu","cv","cw","cx","cy","cz","de","dj","dk","dm","do","dz","ec","ee","eg","eh","er","es","et","eu","fi","fj","fk","fm","fo","fr","ga","gb","gd","ge","gf","gg","gh","gi","gl","gm","gn","gp","gq","gr","gs","gt","gu","gw","gy","hk","hm","hn","hr","ht","hu","id","ie","il","im","in","io","iq","ir","is","it","je","jm","jo","jp","ke","kg","kh","ki","km","kn","kp","kr","kw","ky","kz","la","lb","lc","li","lk","lr","ls","lt","lu","lv","ly","ma","mc","md","me","mg","mh","mk","ml","mm","mn","mo","mp","mq","mr","ms","mt","mu","mv","mw","mx","my","mz","na","nc","ne","nf","ng","ni","nl","no","np","nr","nu","nz","om","pa","pe","pf","pg","ph","pk","pl","pm","pn","pr","ps","pt","pw","py","qa","re","ro","rs","ru","rw","sa","sb","sc","sd","se","sg","sh","si","sj","sk","sl","sm","sn","so","sr","ss","st","su","sv","sx","sy","sz","tc","td","tf","tg","th","tj","tk","tl","tm","tn","to","tp","tr","tt","tv","tw","tz","ua","ug","uk","us","uy","uz","va","vc","ve","vg","vi","vn","vu","wf","ws","ye","yt","za","zm","zw"]},a.prototype.tld=function(){return this.pick(this.tlds())},a.prototype.twitter=function(){return"@"+this.word()},a.prototype.url=function(a){var n=(a=e(a,{protocol:"http",domain:this.domain(a),domain_prefix:"",path:this.word(),extensions:[]})).extensions.length>0?"."+this.pick(a.extensions):"",i=a.domain_prefix?a.domain_prefix+"."+a.domain:a.domain;return a.protocol+"://"+i+"/"+a.path+n},a.prototype.port=function(){return this.integer({min:0,max:65535})},a.prototype.locale=function(a){return(a=e(a)).region?this.pick(this.get("locale_regions")):this.pick(this.get("locale_languages"))},a.prototype.locales=function(a){return(a=e(a)).region?this.get("locale_regions"):this.get("locale_languages")},a.prototype.address=function(a){return a=e(a),this.natural({min:5,max:2e3})+" "+this.street(a)},a.prototype.altitude=function(a){return a=e(a,{fixed:5,min:0,max:8848}),this.floating({min:a.min,max:a.max,fixed:a.fixed})},a.prototype.areacode=function(a){a=e(a,{parens:!0});var n=this.natural({min:2,max:9}).toString()+this.natural({min:0,max:8}).toString()+this.natural({min:0,max:9}).toString();return a.parens?"("+n+")":n},a.prototype.city=function(){return this.capitalize(this.word({syllables:3}))},a.prototype.coordinates=function(a){return this.latitude(a)+", "+this.longitude(a)},a.prototype.countries=function(){return this.get("countries")},a.prototype.country=function(a){a=e(a);var n=this.pick(this.countries());return a.full?n.name:n.abbreviation},a.prototype.depth=function(a){return a=e(a,{fixed:5,min:-10994,max:0}),this.floating({min:a.min,max:a.max,fixed:a.fixed})},a.prototype.geohash=function(a){return a=e(a,{length:7}),this.string({length:a.length,pool:"0123456789bcdefghjkmnpqrstuvwxyz"})},a.prototype.geojson=function(a){return this.latitude(a)+", "+this.longitude(a)+", "+this.altitude(a)},a.prototype.latitude=function(a){return a=e(a,{fixed:5,min:-90,max:90}),this.floating({min:a.min,max:a.max,fixed:a.fixed})},a.prototype.longitude=function(a){return a=e(a,{fixed:5,min:-180,max:180}),this.floating({min:a.min,max:a.max,fixed:a.fixed})},a.prototype.phone=function(a){var n,i=this,r=function(a){var e=[];return a.sections.forEach(function(a){e.push(i.string({pool:"0123456789",length:a}))}),a.area+e.join(" ")};(a=e(a,{formatted:!0,country:"us",mobile:!1})).formatted||(a.parens=!1);var o;switch(a.country){case"fr":a.mobile?(n=this.pick(["06","07"])+i.string({pool:"0123456789",length:8}),o=a.formatted?n.match(/../g).join(" "):n):(n=this.pick(["01"+this.pick(["30","34","39","40","41","42","43","44","45","46","47","48","49","53","55","56","58","60","64","69","70","72","73","74","75","76","77","78","79","80","81","82","83"])+i.string({pool:"0123456789",length:6}),"02"+this.pick(["14","18","22","23","28","29","30","31","32","33","34","35","36","37","38","40","41","43","44","45","46","47","48","49","50","51","52","53","54","56","57","61","62","69","72","76","77","78","85","90","96","97","98","99"])+i.string({pool:"0123456789",length:6}),"03"+this.pick(["10","20","21","22","23","24","25","26","27","28","29","39","44","45","51","52","54","55","57","58","59","60","61","62","63","64","65","66","67","68","69","70","71","72","73","80","81","82","83","84","85","86","87","88","89","90"])+i.string({pool:"0123456789",length:6}),"04"+this.pick(["11","13","15","20","22","26","27","30","32","34","37","42","43","44","50","56","57","63","66","67","68","69","70","71","72","73","74","75","76","77","78","79","80","81","82","83","84","85","86","88","89","90","91","92","93","94","95","97","98"])+i.string({pool:"0123456789",length:6}),"05"+this.pick(["08","16","17","19","24","31","32","33","34","35","40","45","46","47","49","53","55","56","57","58","59","61","62","63","64","65","67","79","81","82","86","87","90","94"])+i.string({pool:"0123456789",length:6}),"09"+i.string({pool:"0123456789",length:8})]),o=a.formatted?n.match(/../g).join(" "):n);break;case"uk":a.mobile?(n=this.pick([{area:"07"+this.pick(["4","5","7","8","9"]),sections:[2,6]},{area:"07624 ",sections:[6]}]),o=a.formatted?r(n):r(n).replace(" ","")):(n=this.pick([{area:"01"+this.character({pool:"234569"})+"1 ",sections:[3,4]},{area:"020 "+this.character({pool:"378"}),sections:[3,4]},{area:"023 "+this.character({pool:"89"}),sections:[3,4]},{area:"024 7",sections:[3,4]},{area:"028 "+this.pick(["25","28","37","71","82","90","92","95"]),sections:[2,4]},{area:"012"+this.pick(["04","08","54","76","97","98"])+" ",sections:[6]},{area:"013"+this.pick(["63","64","84","86"])+" ",sections:[6]},{area:"014"+this.pick(["04","20","60","61","80","88"])+" ",sections:[6]},{area:"015"+this.pick(["24","27","62","66"])+" ",sections:[6]},{area:"016"+this.pick(["06","29","35","47","59","95"])+" ",sections:[6]},{area:"017"+this.pick(["26","44","50","68"])+" ",sections:[6]},{area:"018"+this.pick(["27","37","84","97"])+" ",sections:[6]},{area:"019"+this.pick(["00","05","35","46","49","63","95"])+" ",sections:[6]}]),o=a.formatted?r(n):r(n).replace(" ","","g"));break;case"za":a.mobile?(n=this.pick(["060"+this.pick(["3","4","5","6","7","8","9"])+i.string({pool:"0123456789",length:6}),"061"+this.pick(["0","1","2","3","4","5","8"])+i.string({pool:"0123456789",length:6}),"06"+i.string({pool:"0123456789",length:7}),"071"+this.pick(["0","1","2","3","4","5","6","7","8","9"])+i.string({pool:"0123456789",length:6}),"07"+this.pick(["2","3","4","6","7","8","9"])+i.string({pool:"0123456789",length:7}),"08"+this.pick(["0","1","2","3","4","5"])+i.string({pool:"0123456789",length:7})]),o=a.formatted||n):(n=this.pick(["01"+this.pick(["0","1","2","3","4","5","6","7","8"])+i.string({pool:"0123456789",length:7}),"02"+this.pick(["1","2","3","4","7","8"])+i.string({pool:"0123456789",length:7}),"03"+this.pick(["1","2","3","5","6","9"])+i.string({pool:"0123456789",length:7}),"04"+this.pick(["1","2","3","4","5","6","7","8","9"])+i.string({pool:"0123456789",length:7}),"05"+this.pick(["1","3","4","6","7","8"])+i.string({pool:"0123456789",length:7})]),o=a.formatted||n);break;case"us":var t=this.areacode(a).toString(),s=this.natural({min:2,max:9}).toString()+this.natural({min:0,max:9}).toString()+this.natural({min:0,max:9}).toString(),l=this.natural({min:1e3,max:9999}).toString();o=a.formatted?t+" "+s+"-"+l:t+s+l}return o},a.prototype.postal=function(){return this.character({pool:"XVTSRPNKLMHJGECBA"})+this.natural({max:9})+this.character({alpha:!0,casing:"upper"})+" "+(this.natural({max:9})+this.character({alpha:!0,casing:"upper"})+this.natural({max:9}))},a.prototype.counties=function(a){return a=e(a,{country:"uk"}),this.get("counties")[a.country.toLowerCase()]},a.prototype.county=function(a){return this.pick(this.counties(a)).name},a.prototype.provinces=function(a){return a=e(a,{country:"ca"}),this.get("provinces")[a.country.toLowerCase()]},a.prototype.province=function(a){return a&&a.full?this.pick(this.provinces(a)).name:this.pick(this.provinces(a)).abbreviation},a.prototype.state=function(a){return a&&a.full?this.pick(this.states(a)).name:this.pick(this.states(a)).abbreviation},a.prototype.states=function(a){var n;switch((a=e(a,{country:"us",us_states_and_dc:!0})).country.toLowerCase()){case"us":var i=this.get("us_states_and_dc"),r=this.get("territories"),o=this.get("armed_forces");n=[],a.us_states_and_dc&&(n=n.concat(i)),a.territories&&(n=n.concat(r)),a.armed_forces&&(n=n.concat(o));break;case"it":n=this.get("country_regions")[a.country.toLowerCase()];break;case"uk":n=this.get("counties")[a.country.toLowerCase()]}return n},a.prototype.street=function(a){var n;switch((a=e(a,{country:"us",syllables:2})).country.toLowerCase()){case"us":n=this.word({syllables:a.syllables}),n=this.capitalize(n),n+=" ",n+=a.short_suffix?this.street_suffix(a).abbreviation:this.street_suffix(a).name;break;case"it":n=this.word({syllables:a.syllables}),n=this.capitalize(n),n=(a.short_suffix?this.street_suffix(a).abbreviation:this.street_suffix(a).name)+" "+n}return n},a.prototype.street_suffix=function(a){return a=e(a,{country:"us"}),this.pick(this.street_suffixes(a))},a.prototype.street_suffixes=function(a){return a=e(a,{country:"us"}),this.get("street_suffixes")[a.country.toLowerCase()]},a.prototype.zip=function(a){var e=this.n(this.natural,5,{max:9});return a&&!0===a.plusfour&&(e.push("-"),e=e.concat(this.n(this.natural,4,{max:9}))),e.join("")},a.prototype.ampm=function(){return this.bool()?"am":"pm"},a.prototype.date=function(a){var n,i;if(a&&(a.min||a.max)){var r=void 0!==(a=e(a,{american:!0,string:!1})).min?a.min.getTime():1,o=void 0!==a.max?a.max.getTime():864e13;i=new Date(this.integer({min:r,max:o}))}else{var t=this.month({raw:!0}),s=t.days;a&&a.month&&(s=this.get("months")[(a.month%12+12)%12].days),a=e(a,{year:parseInt(this.year(),10),month:t.numeric-1,day:this.natural({min:1,max:s}),hour:this.hour({twentyfour:!0}),minute:this.minute(),second:this.second(),millisecond:this.millisecond(),american:!0,string:!1}),i=new Date(a.year,a.month,a.day,a.hour,a.minute,a.second,a.millisecond)}return n=a.american?i.getMonth()+1+"/"+i.getDate()+"/"+i.getFullYear():i.getDate()+"/"+(i.getMonth()+1)+"/"+i.getFullYear(),a.string?n:i},a.prototype.hammertime=function(a){return this.date(a).getTime()},a.prototype.hour=function(a){return a=e(a,{min:a&&a.twentyfour?0:1,max:a&&a.twentyfour?23:12}),n(a.min<0,"Chance: Min cannot be less than 0."),n(a.twentyfour&&a.max>23,"Chance: Max cannot be greater than 23 for twentyfour option."),n(!a.twentyfour&&a.max>12,"Chance: Max cannot be greater than 12."),n(a.min>a.max,"Chance: Min cannot be greater than Max."),this.natural({min:a.min,max:a.max})},a.prototype.millisecond=function(){return this.natural({max:999})},a.prototype.minute=a.prototype.second=function(a){return a=e(a,{min:0,max:59}),n(a.min<0,"Chance: Min cannot be less than 0."),n(a.max>59,"Chance: Max cannot be greater than 59."),n(a.min>a.max,"Chance: Min cannot be greater than Max."),this.natural({min:a.min,max:a.max})},a.prototype.month=function(a){n((a=e(a,{min:1,max:12})).min<1,"Chance: Min cannot be less than 1."),n(a.max>12,"Chance: Max cannot be greater than 12."),n(a.min>a.max,"Chance: Min cannot be greater than Max.");var i=this.pick(this.months().slice(a.min-1,a.max));return a.raw?i:i.name},a.prototype.months=function(){return this.get("months")},a.prototype.second=function(){return this.natural({max:59})},a.prototype.timestamp=function(){return this.natural({min:1,max:parseInt((new Date).getTime()/1e3,10)})},a.prototype.weekday=function(a){var n=["Monday","Tuesday","Wednesday","Thursday","Friday"];return(a=e(a,{weekday_only:!1})).weekday_only||(n.push("Saturday"),n.push("Sunday")),this.pickone(n)},a.prototype.year=function(a){return a=e(a,{min:(new Date).getFullYear()}),a.max=void 0!==a.max?a.max:a.min+100,this.natural(a).toString()},a.prototype.cc=function(a){var n,i,r;return n=(a=e(a)).type?this.cc_type({name:a.type,raw:!0}):this.cc_type({raw:!0}),i=n.prefix.split(""),r=n.length-n.prefix.length-1,(i=i.concat(this.n(this.integer,r,{min:0,max:9}))).push(this.luhn_calculate(i.join(""))),i.join("")},a.prototype.cc_types=function(){return this.get("cc_types")},a.prototype.cc_type=function(a){a=e(a);var n=this.cc_types(),i=null;if(a.name){for(var r=0;r3&&(n=e?n.substr(0,3):n[0]+n.substr(2,2)),n.length<3&&(i=n,n=a.toUpperCase().split("").map(function(a){return-1!=="AEIOU".indexOf(a)?a:void 0}).join("").substr(0,3-i.length)),i+=n),i};return t=t.concat(s(i,!0),s(n),function(a,e,n){return a.getFullYear().toString().substr(2)+["A","B","C","D","E","H","L","M","P","R","S","T"][a.getMonth()]+n.pad(a.getDate()+("female"===e.toLowerCase()?40:0),2)}(r,e,this),o.toUpperCase().split("")).join(""),(t+=function(a){for(var e="0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ",n="ABCDEFGHIJABCDEFGHIJKLMNOPQRSTUVWXYZ",i="ABCDEFGHIJKLMNOPQRSTUVWXYZ",r=0,o=0;o<15;o++)r+=o%2!=0?i.indexOf(n[e.indexOf(a[o])]):"BAKPLCQDREVOSFTGUHMINJWZYX".indexOf(n[e.indexOf(a[o])]);return i[r%26]}(t.toUpperCase())).toUpperCase()},a.prototype.pl_pesel=function(){for(var a=this.natural({min:1,max:9999999999}),e=this.pad(a,10).split(""),n=0;n0;o--)r[o-1]=this.natural({min:1,max:i[1]});return void 0!==n.sum&&n.sum?r.reduce(function(a,e){return a+e}):r}throw new RangeError("Chance: A type of die roll must be included")},a.prototype.guid=function(a){a=e(a,{version:5});var n="abcdef1234567890";return this.string({pool:n,length:8})+"-"+this.string({pool:n,length:4})+"-"+a.version+this.string({pool:n,length:3})+"-"+this.string({pool:"ab89",length:1})+this.string({pool:n,length:3})+"-"+this.string({pool:n,length:12})},a.prototype.hash=function(a){var n="upper"===(a=e(a,{length:40,casing:"lower"})).casing?m.toUpperCase():m;return this.string({pool:n,length:a.length})},a.prototype.luhn_check=function(a){var e=a.toString();return+e.substring(e.length-1)===this.luhn_calculate(+e.substring(0,e.length-1))},a.prototype.luhn_calculate=function(a){for(var e,n=a.toString().split("").reverse(),i=0,r=0,o=n.length;o>r;++r)e=+n[r],r%2==0&&(e*=2)>9&&(e-=9),i+=e;return 9*i%10},a.prototype.md5=function(a){var n={str:"",key:null,raw:!1};if(a)if("string"==typeof a)n.str=a,a={};else{if("object"!=typeof a)return null;if("Array"===a.constructor)return null}else n.str=this.string(),a={};if(!(n=e(a,n)).str)throw new Error("A parameter is required to return an md5 hash.");return this.bimd5.md5(n.str,n.key,n.raw)},a.prototype.file=function(a){var e,n,i=a||{},r=Object.keys(this.get("fileExtension"));if(e=this.word({length:i.length}),i.extension)return n=i.extension,e+"."+n;if(i.extensions){if(Array.isArray(i.extensions))return n=this.pickone(i.extensions),e+"."+n;if(i.extensions.constructor===Object){var o=i.extensions,t=Object.keys(o);return n=this.pickone(o[this.pickone(t)]),e+"."+n}throw new Error("Chance: Extensions must be an Array or Object")}if(i.fileType){var s=i.fileType;if(-1!==r.indexOf(s))return n=this.pickone(this.get("fileExtension")[s]),e+"."+n;throw new RangeError("Chance: Expect file type value to be 'raster', 'vector', '3d' or 'document'")}return n=this.pickone(this.get("fileExtension")[this.pickone(r)]),e+"."+n};var h={firstNames:{male:{en:["James","John","Robert","Michael","William","David","Richard","Joseph","Charles","Thomas","Christopher","Daniel","Matthew","George","Donald","Anthony","Paul","Mark","Edward","Steven","Kenneth","Andrew","Brian","Joshua","Kevin","Ronald","Timothy","Jason","Jeffrey","Frank","Gary","Ryan","Nicholas","Eric","Stephen","Jacob","Larry","Jonathan","Scott","Raymond","Justin","Brandon","Gregory","Samuel","Benjamin","Patrick","Jack","Henry","Walter","Dennis","Jerry","Alexander","Peter","Tyler","Douglas","Harold","Aaron","Jose","Adam","Arthur","Zachary","Carl","Nathan","Albert","Kyle","Lawrence","Joe","Willie","Gerald","Roger","Keith","Jeremy","Terry","Harry","Ralph","Sean","Jesse","Roy","Louis","Billy","Austin","Bruce","Eugene","Christian","Bryan","Wayne","Russell","Howard","Fred","Ethan","Jordan","Philip","Alan","Juan","Randy","Vincent","Bobby","Dylan","Johnny","Phillip","Victor","Clarence","Ernest","Martin","Craig","Stanley","Shawn","Travis","Bradley","Leonard","Earl","Gabriel","Jimmy","Francis","Todd","Noah","Danny","Dale","Cody","Carlos","Allen","Frederick","Logan","Curtis","Alex","Joel","Luis","Norman","Marvin","Glenn","Tony","Nathaniel","Rodney","Melvin","Alfred","Steve","Cameron","Chad","Edwin","Caleb","Evan","Antonio","Lee","Herbert","Jeffery","Isaac","Derek","Ricky","Marcus","Theodore","Elijah","Luke","Jesus","Eddie","Troy","Mike","Dustin","Ray","Adrian","Bernard","Leroy","Angel","Randall","Wesley","Ian","Jared","Mason","Hunter","Calvin","Oscar","Clifford","Jay","Shane","Ronnie","Barry","Lucas","Corey","Manuel","Leo","Tommy","Warren","Jackson","Isaiah","Connor","Don","Dean","Jon","Julian","Miguel","Bill","Lloyd","Charlie","Mitchell","Leon","Jerome","Darrell","Jeremiah","Alvin","Brett","Seth","Floyd","Jim","Blake","Micheal","Gordon","Trevor","Lewis","Erik","Edgar","Vernon","Devin","Gavin","Jayden","Chris","Clyde","Tom","Derrick","Mario","Brent","Marc","Herman","Chase","Dominic","Ricardo","Franklin","Maurice","Max","Aiden","Owen","Lester","Gilbert","Elmer","Gene","Francisco","Glen","Cory","Garrett","Clayton","Sam","Jorge","Chester","Alejandro","Jeff","Harvey","Milton","Cole","Ivan","Andre","Duane","Landon"],it:["Adolfo","Alberto","Aldo","Alessandro","Alessio","Alfredo","Alvaro","Andrea","Angelo","Angiolo","Antonino","Antonio","Attilio","Benito","Bernardo","Bruno","Carlo","Cesare","Christian","Claudio","Corrado","Cosimo","Cristian","Cristiano","Daniele","Dario","David","Davide","Diego","Dino","Domenico","Duccio","Edoardo","Elia","Elio","Emanuele","Emiliano","Emilio","Enrico","Enzo","Ettore","Fabio","Fabrizio","Federico","Ferdinando","Fernando","Filippo","Francesco","Franco","Gabriele","Giacomo","Giampaolo","Giampiero","Giancarlo","Gianfranco","Gianluca","Gianmarco","Gianni","Gino","Giorgio","Giovanni","Giuliano","Giulio","Giuseppe","Graziano","Gregorio","Guido","Iacopo","Jacopo","Lapo","Leonardo","Lorenzo","Luca","Luciano","Luigi","Manuel","Marcello","Marco","Marino","Mario","Massimiliano","Massimo","Matteo","Mattia","Maurizio","Mauro","Michele","Mirko","Mohamed","Nello","Neri","Niccolò","Nicola","Osvaldo","Otello","Paolo","Pier Luigi","Piero","Pietro","Raffaele","Remo","Renato","Renzo","Riccardo","Roberto","Rolando","Romano","Salvatore","Samuele","Sandro","Sergio","Silvano","Simone","Stefano","Thomas","Tommaso","Ubaldo","Ugo","Umberto","Valerio","Valter","Vasco","Vincenzo","Vittorio"],nl:["Aaron","Abel","Adam","Adriaan","Albert","Alexander","Ali","Arjen","Arno","Bart","Bas","Bastiaan","Benjamin","Bob","Boris","Bram","Brent","Cas","Casper","Chris","Christiaan","Cornelis","Daan","Daley","Damian","Dani","Daniel","Daniël","David","Dean","Dirk","Dylan","Egbert","Elijah","Erik","Erwin","Evert","Ezra","Fabian","Fedde","Finn","Florian","Floris","Frank","Frans","Frederik","Freek","Geert","Gerard","Gerben","Gerrit","Gijs","Guus","Hans","Hendrik","Henk","Herman","Hidde","Hugo","Jaap","Jan Jaap","Jan-Willem","Jack","Jacob","Jan","Jason","Jasper","Jayden","Jelle","Jelte","Jens","Jeroen","Jesse","Jim","Job","Joep","Johannes","John","Jonathan","Joris","Joshua","Joël","Julian","Kees","Kevin","Koen","Lars","Laurens","Leendert","Lennard","Lodewijk","Luc","Luca","Lucas","Lukas","Luuk","Maarten","Marcus","Martijn","Martin","Matthijs","Maurits","Max","Mees","Melle","Mick","Mika","Milan","Mohamed","Mohammed","Morris","Muhammed","Nathan","Nick","Nico","Niek","Niels","Noah","Noud","Olivier","Oscar","Owen","Paul","Pepijn","Peter","Pieter","Pim","Quinten","Reinier","Rens","Robin","Ruben","Sam","Samuel","Sander","Sebastiaan","Sem","Sep","Sepp","Siem","Simon","Stan","Stef","Steven","Stijn","Sven","Teun","Thijmen","Thijs","Thomas","Tijn","Tim","Timo","Tobias","Tom","Victor","Vince","Willem","Wim","Wouter","Yusuf"]},female:{en:["Mary","Emma","Elizabeth","Minnie","Margaret","Ida","Alice","Bertha","Sarah","Annie","Clara","Ella","Florence","Cora","Martha","Laura","Nellie","Grace","Carrie","Maude","Mabel","Bessie","Jennie","Gertrude","Julia","Hattie","Edith","Mattie","Rose","Catherine","Lillian","Ada","Lillie","Helen","Jessie","Louise","Ethel","Lula","Myrtle","Eva","Frances","Lena","Lucy","Edna","Maggie","Pearl","Daisy","Fannie","Josephine","Dora","Rosa","Katherine","Agnes","Marie","Nora","May","Mamie","Blanche","Stella","Ellen","Nancy","Effie","Sallie","Nettie","Della","Lizzie","Flora","Susie","Maud","Mae","Etta","Harriet","Sadie","Caroline","Katie","Lydia","Elsie","Kate","Susan","Mollie","Alma","Addie","Georgia","Eliza","Lulu","Nannie","Lottie","Amanda","Belle","Charlotte","Rebecca","Ruth","Viola","Olive","Amelia","Hannah","Jane","Virginia","Emily","Matilda","Irene","Kathryn","Esther","Willie","Henrietta","Ollie","Amy","Rachel","Sara","Estella","Theresa","Augusta","Ora","Pauline","Josie","Lola","Sophia","Leona","Anne","Mildred","Ann","Beulah","Callie","Lou","Delia","Eleanor","Barbara","Iva","Louisa","Maria","Mayme","Evelyn","Estelle","Nina","Betty","Marion","Bettie","Dorothy","Luella","Inez","Lela","Rosie","Allie","Millie","Janie","Cornelia","Victoria","Ruby","Winifred","Alta","Celia","Christine","Beatrice","Birdie","Harriett","Mable","Myra","Sophie","Tillie","Isabel","Sylvia","Carolyn","Isabelle","Leila","Sally","Ina","Essie","Bertie","Nell","Alberta","Katharine","Lora","Rena","Mina","Rhoda","Mathilda","Abbie","Eula","Dollie","Hettie","Eunice","Fanny","Ola","Lenora","Adelaide","Christina","Lelia","Nelle","Sue","Johanna","Lilly","Lucinda","Minerva","Lettie","Roxie","Cynthia","Helena","Hilda","Hulda","Bernice","Genevieve","Jean","Cordelia","Marian","Francis","Jeanette","Adeline","Gussie","Leah","Lois","Lura","Mittie","Hallie","Isabella","Olga","Phoebe","Teresa","Hester","Lida","Lina","Winnie","Claudia","Marguerite","Vera","Cecelia","Bess","Emilie","Rosetta","Verna","Myrtie","Cecilia","Elva","Olivia","Ophelia","Georgie","Elnora","Violet","Adele","Lily","Linnie","Loretta","Madge","Polly","Virgie","Eugenia","Lucile","Lucille","Mabelle","Rosalie"],it:["Ada","Adriana","Alessandra","Alessia","Alice","Angela","Anna","Anna Maria","Annalisa","Annita","Annunziata","Antonella","Arianna","Asia","Assunta","Aurora","Barbara","Beatrice","Benedetta","Bianca","Bruna","Camilla","Carla","Carlotta","Carmela","Carolina","Caterina","Catia","Cecilia","Chiara","Cinzia","Clara","Claudia","Costanza","Cristina","Daniela","Debora","Diletta","Dina","Donatella","Elena","Eleonora","Elisa","Elisabetta","Emanuela","Emma","Eva","Federica","Fernanda","Fiorella","Fiorenza","Flora","Franca","Francesca","Gabriella","Gaia","Gemma","Giada","Gianna","Gina","Ginevra","Giorgia","Giovanna","Giulia","Giuliana","Giuseppa","Giuseppina","Grazia","Graziella","Greta","Ida","Ilaria","Ines","Iolanda","Irene","Irma","Isabella","Jessica","Laura","Lea","Letizia","Licia","Lidia","Liliana","Lina","Linda","Lisa","Livia","Loretta","Luana","Lucia","Luciana","Lucrezia","Luisa","Manuela","Mara","Marcella","Margherita","Maria","Maria Cristina","Maria Grazia","Maria Luisa","Maria Pia","Maria Teresa","Marina","Marisa","Marta","Martina","Marzia","Matilde","Melissa","Michela","Milena","Mirella","Monica","Natalina","Nella","Nicoletta","Noemi","Olga","Paola","Patrizia","Piera","Pierina","Raffaella","Rebecca","Renata","Rina","Rita","Roberta","Rosa","Rosanna","Rossana","Rossella","Sabrina","Sandra","Sara","Serena","Silvana","Silvia","Simona","Simonetta","Sofia","Sonia","Stefania","Susanna","Teresa","Tina","Tiziana","Tosca","Valentina","Valeria","Vanda","Vanessa","Vanna","Vera","Veronica","Vilma","Viola","Virginia","Vittoria"],nl:["Ada","Arianne","Afke","Amanda","Amber","Amy","Aniek","Anita","Anja","Anna","Anne","Annelies","Annemarie","Annette","Anouk","Astrid","Aukje","Barbara","Bianca","Carla","Carlijn","Carolien","Chantal","Charlotte","Claudia","Daniëlle","Debora","Diane","Dora","Eline","Elise","Ella","Ellen","Emma","Esmee","Evelien","Esther","Erica","Eva","Femke","Fleur","Floor","Froukje","Gea","Gerda","Hanna","Hanneke","Heleen","Hilde","Ilona","Ina","Inge","Ingrid","Iris","Isabel","Isabelle","Janneke","Jasmijn","Jeanine","Jennifer","Jessica","Johanna","Joke","Julia","Julie","Karen","Karin","Katja","Kim","Lara","Laura","Lena","Lianne","Lieke","Lilian","Linda","Lisa","Lisanne","Lotte","Louise","Maaike","Manon","Marga","Maria","Marissa","Marit","Marjolein","Martine","Marleen","Melissa","Merel","Miranda","Michelle","Mirjam","Mirthe","Naomi","Natalie","Nienke","Nina","Noortje","Olivia","Patricia","Paula","Paulien","Ramona","Ria","Rianne","Roos","Rosanne","Ruth","Sabrina","Sandra","Sanne","Sara","Saskia","Silvia","Sofia","Sophie","Sonja","Suzanne","Tamara","Tess","Tessa","Tineke","Valerie","Vanessa","Veerle","Vera","Victoria","Wendy","Willeke","Yvonne","Zoë"]}},lastNames:{en:["Smith","Johnson","Williams","Jones","Brown","Davis","Miller","Wilson","Moore","Taylor","Anderson","Thomas","Jackson","White","Harris","Martin","Thompson","Garcia","Martinez","Robinson","Clark","Rodriguez","Lewis","Lee","Walker","Hall","Allen","Young","Hernandez","King","Wright","Lopez","Hill","Scott","Green","Adams","Baker","Gonzalez","Nelson","Carter","Mitchell","Perez","Roberts","Turner","Phillips","Campbell","Parker","Evans","Edwards","Collins","Stewart","Sanchez","Morris","Rogers","Reed","Cook","Morgan","Bell","Murphy","Bailey","Rivera","Cooper","Richardson","Cox","Howard","Ward","Torres","Peterson","Gray","Ramirez","James","Watson","Brooks","Kelly","Sanders","Price","Bennett","Wood","Barnes","Ross","Henderson","Coleman","Jenkins","Perry","Powell","Long","Patterson","Hughes","Flores","Washington","Butler","Simmons","Foster","Gonzales","Bryant","Alexander","Russell","Griffin","Diaz","Hayes","Myers","Ford","Hamilton","Graham","Sullivan","Wallace","Woods","Cole","West","Jordan","Owens","Reynolds","Fisher","Ellis","Harrison","Gibson","McDonald","Cruz","Marshall","Ortiz","Gomez","Murray","Freeman","Wells","Webb","Simpson","Stevens","Tucker","Porter","Hunter","Hicks","Crawford","Henry","Boyd","Mason","Morales","Kennedy","Warren","Dixon","Ramos","Reyes","Burns","Gordon","Shaw","Holmes","Rice","Robertson","Hunt","Black","Daniels","Palmer","Mills","Nichols","Grant","Knight","Ferguson","Rose","Stone","Hawkins","Dunn","Perkins","Hudson","Spencer","Gardner","Stephens","Payne","Pierce","Berry","Matthews","Arnold","Wagner","Willis","Ray","Watkins","Olson","Carroll","Duncan","Snyder","Hart","Cunningham","Bradley","Lane","Andrews","Ruiz","Harper","Fox","Riley","Armstrong","Carpenter","Weaver","Greene","Lawrence","Elliott","Chavez","Sims","Austin","Peters","Kelley","Franklin","Lawson","Fields","Gutierrez","Ryan","Schmidt","Carr","Vasquez","Castillo","Wheeler","Chapman","Oliver","Montgomery","Richards","Williamson","Johnston","Banks","Meyer","Bishop","McCoy","Howell","Alvarez","Morrison","Hansen","Fernandez","Garza","Harvey","Little","Burton","Stanley","Nguyen","George","Jacobs","Reid","Kim","Fuller","Lynch","Dean","Gilbert","Garrett","Romero","Welch","Larson","Frazier","Burke","Hanson","Day","Mendoza","Moreno","Bowman","Medina","Fowler","Brewer","Hoffman","Carlson","Silva","Pearson","Holland","Douglas","Fleming","Jensen","Vargas","Byrd","Davidson","Hopkins","May","Terry","Herrera","Wade","Soto","Walters","Curtis","Neal","Caldwell","Lowe","Jennings","Barnett","Graves","Jimenez","Horton","Shelton","Barrett","Obrien","Castro","Sutton","Gregory","McKinney","Lucas","Miles","Craig","Rodriquez","Chambers","Holt","Lambert","Fletcher","Watts","Bates","Hale","Rhodes","Pena","Beck","Newman","Haynes","McDaniel","Mendez","Bush","Vaughn","Parks","Dawson","Santiago","Norris","Hardy","Love","Steele","Curry","Powers","Schultz","Barker","Guzman","Page","Munoz","Ball","Keller","Chandler","Weber","Leonard","Walsh","Lyons","Ramsey","Wolfe","Schneider","Mullins","Benson","Sharp","Bowen","Daniel","Barber","Cummings","Hines","Baldwin","Griffith","Valdez","Hubbard","Salazar","Reeves","Warner","Stevenson","Burgess","Santos","Tate","Cross","Garner","Mann","Mack","Moss","Thornton","Dennis","McGee","Farmer","Delgado","Aguilar","Vega","Glover","Manning","Cohen","Harmon","Rodgers","Robbins","Newton","Todd","Blair","Higgins","Ingram","Reese","Cannon","Strickland","Townsend","Potter","Goodwin","Walton","Rowe","Hampton","Ortega","Patton","Swanson","Joseph","Francis","Goodman","Maldonado","Yates","Becker","Erickson","Hodges","Rios","Conner","Adkins","Webster","Norman","Malone","Hammond","Flowers","Cobb","Moody","Quinn","Blake","Maxwell","Pope","Floyd","Osborne","Paul","McCarthy","Guerrero","Lindsey","Estrada","Sandoval","Gibbs","Tyler","Gross","Fitzgerald","Stokes","Doyle","Sherman","Saunders","Wise","Colon","Gill","Alvarado","Greer","Padilla","Simon","Waters","Nunez","Ballard","Schwartz","McBride","Houston","Christensen","Klein","Pratt","Briggs","Parsons","McLaughlin","Zimmerman","French","Buchanan","Moran","Copeland","Roy","Pittman","Brady","McCormick","Holloway","Brock","Poole","Frank","Logan","Owen","Bass","Marsh","Drake","Wong","Jefferson","Park","Morton","Abbott","Sparks","Patrick","Norton","Huff","Clayton","Massey","Lloyd","Figueroa","Carson","Bowers","Roberson","Barton","Tran","Lamb","Harrington","Casey","Boone","Cortez","Clarke","Mathis","Singleton","Wilkins","Cain","Bryan","Underwood","Hogan","McKenzie","Collier","Luna","Phelps","McGuire","Allison","Bridges","Wilkerson","Nash","Summers","Atkins"],it:["Acciai","Aglietti","Agostini","Agresti","Ahmed","Aiazzi","Albanese","Alberti","Alessi","Alfani","Alinari","Alterini","Amato","Ammannati","Ancillotti","Andrei","Andreini","Andreoni","Angeli","Anichini","Antonelli","Antonini","Arena","Ariani","Arnetoli","Arrighi","Baccani","Baccetti","Bacci","Bacherini","Badii","Baggiani","Baglioni","Bagni","Bagnoli","Baldassini","Baldi","Baldini","Ballerini","Balli","Ballini","Balloni","Bambi","Banchi","Bandinelli","Bandini","Bani","Barbetti","Barbieri","Barchielli","Bardazzi","Bardelli","Bardi","Barducci","Bargellini","Bargiacchi","Barni","Baroncelli","Baroncini","Barone","Baroni","Baronti","Bartalesi","Bartoletti","Bartoli","Bartolini","Bartoloni","Bartolozzi","Basagni","Basile","Bassi","Batacchi","Battaglia","Battaglini","Bausi","Becagli","Becattini","Becchi","Becucci","Bellandi","Bellesi","Belli","Bellini","Bellucci","Bencini","Benedetti","Benelli","Beni","Benini","Bensi","Benucci","Benvenuti","Berlincioni","Bernacchioni","Bernardi","Bernardini","Berni","Bernini","Bertelli","Berti","Bertini","Bessi","Betti","Bettini","Biagi","Biagini","Biagioni","Biagiotti","Biancalani","Bianchi","Bianchini","Bianco","Biffoli","Bigazzi","Bigi","Biliotti","Billi","Binazzi","Bindi","Bini","Biondi","Bizzarri","Bocci","Bogani","Bolognesi","Bonaiuti","Bonanni","Bonciani","Boncinelli","Bondi","Bonechi","Bongini","Boni","Bonini","Borchi","Boretti","Borghi","Borghini","Borgioli","Borri","Borselli","Boschi","Bottai","Bracci","Braccini","Brandi","Braschi","Bravi","Brazzini","Breschi","Brilli","Brizzi","Brogelli","Brogi","Brogioni","Brunelli","Brunetti","Bruni","Bruno","Brunori","Bruschi","Bucci","Bucciarelli","Buccioni","Bucelli","Bulli","Burberi","Burchi","Burgassi","Burroni","Bussotti","Buti","Caciolli","Caiani","Calabrese","Calamai","Calamandrei","Caldini","Calo'","Calonaci","Calosi","Calvelli","Cambi","Camiciottoli","Cammelli","Cammilli","Campolmi","Cantini","Capanni","Capecchi","Caponi","Cappelletti","Cappelli","Cappellini","Cappugi","Capretti","Caputo","Carbone","Carboni","Cardini","Carlesi","Carletti","Carli","Caroti","Carotti","Carrai","Carraresi","Carta","Caruso","Casalini","Casati","Caselli","Casini","Castagnoli","Castellani","Castelli","Castellucci","Catalano","Catarzi","Catelani","Cavaciocchi","Cavallaro","Cavallini","Cavicchi","Cavini","Ceccarelli","Ceccatelli","Ceccherelli","Ceccherini","Cecchi","Cecchini","Cecconi","Cei","Cellai","Celli","Cellini","Cencetti","Ceni","Cenni","Cerbai","Cesari","Ceseri","Checcacci","Checchi","Checcucci","Cheli","Chellini","Chen","Cheng","Cherici","Cherubini","Chiaramonti","Chiarantini","Chiarelli","Chiari","Chiarini","Chiarugi","Chiavacci","Chiesi","Chimenti","Chini","Chirici","Chiti","Ciabatti","Ciampi","Cianchi","Cianfanelli","Cianferoni","Ciani","Ciapetti","Ciappi","Ciardi","Ciatti","Cicali","Ciccone","Cinelli","Cini","Ciobanu","Ciolli","Cioni","Cipriani","Cirillo","Cirri","Ciucchi","Ciuffi","Ciulli","Ciullini","Clemente","Cocchi","Cognome","Coli","Collini","Colombo","Colzi","Comparini","Conforti","Consigli","Conte","Conti","Contini","Coppini","Coppola","Corsi","Corsini","Corti","Cortini","Cosi","Costa","Costantini","Costantino","Cozzi","Cresci","Crescioli","Cresti","Crini","Curradi","D'Agostino","D'Alessandro","D'Amico","D'Angelo","Daddi","Dainelli","Dallai","Danti","Davitti","De Angelis","De Luca","De Marco","De Rosa","De Santis","De Simone","De Vita","Degl'Innocenti","Degli Innocenti","Dei","Del Lungo","Del Re","Di Marco","Di Stefano","Dini","Diop","Dobre","Dolfi","Donati","Dondoli","Dong","Donnini","Ducci","Dumitru","Ermini","Esposito","Evangelisti","Fabbri","Fabbrini","Fabbrizzi","Fabbroni","Fabbrucci","Fabiani","Facchini","Faggi","Fagioli","Failli","Faini","Falciani","Falcini","Falcone","Fallani","Falorni","Falsini","Falugiani","Fancelli","Fanelli","Fanetti","Fanfani","Fani","Fantappie'","Fantechi","Fanti","Fantini","Fantoni","Farina","Fattori","Favilli","Fedi","Fei","Ferrante","Ferrara","Ferrari","Ferraro","Ferretti","Ferri","Ferrini","Ferroni","Fiaschi","Fibbi","Fiesoli","Filippi","Filippini","Fini","Fioravanti","Fiore","Fiorentini","Fiorini","Fissi","Focardi","Foggi","Fontana","Fontanelli","Fontani","Forconi","Formigli","Forte","Forti","Fortini","Fossati","Fossi","Francalanci","Franceschi","Franceschini","Franchi","Franchini","Franci","Francini","Francioni","Franco","Frassineti","Frati","Fratini","Frilli","Frizzi","Frosali","Frosini","Frullini","Fusco","Fusi","Gabbrielli","Gabellini","Gagliardi","Galanti","Galardi","Galeotti","Galletti","Galli","Gallo","Gallori","Gambacciani","Gargani","Garofalo","Garuglieri","Gashi","Gasperini","Gatti","Gelli","Gensini","Gentile","Gentili","Geri","Gerini","Gheri","Ghini","Giachetti","Giachi","Giacomelli","Gianassi","Giani","Giannelli","Giannetti","Gianni","Giannini","Giannoni","Giannotti","Giannozzi","Gigli","Giordano","Giorgetti","Giorgi","Giovacchini","Giovannelli","Giovannetti","Giovannini","Giovannoni","Giuliani","Giunti","Giuntini","Giusti","Gonnelli","Goretti","Gori","Gradi","Gramigni","Grassi","Grasso","Graziani","Grazzini","Greco","Grifoni","Grillo","Grimaldi","Grossi","Gualtieri","Guarducci","Guarino","Guarnieri","Guasti","Guerra","Guerri","Guerrini","Guidi","Guidotti","He","Hoxha","Hu","Huang","Iandelli","Ignesti","Innocenti","Jin","La Rosa","Lai","Landi","Landini","Lanini","Lapi","Lapini","Lari","Lascialfari","Lastrucci","Latini","Lazzeri","Lazzerini","Lelli","Lenzi","Leonardi","Leoncini","Leone","Leoni","Lepri","Li","Liao","Lin","Linari","Lippi","Lisi","Livi","Lombardi","Lombardini","Lombardo","Longo","Lopez","Lorenzi","Lorenzini","Lorini","Lotti","Lu","Lucchesi","Lucherini","Lunghi","Lupi","Madiai","Maestrini","Maffei","Maggi","Maggini","Magherini","Magini","Magnani","Magnelli","Magni","Magnolfi","Magrini","Malavolti","Malevolti","Manca","Mancini","Manetti","Manfredi","Mangani","Mannelli","Manni","Mannini","Mannucci","Manuelli","Manzini","Marcelli","Marchese","Marchetti","Marchi","Marchiani","Marchionni","Marconi","Marcucci","Margheri","Mari","Mariani","Marilli","Marinai","Marinari","Marinelli","Marini","Marino","Mariotti","Marsili","Martelli","Martinelli","Martini","Martino","Marzi","Masi","Masini","Masoni","Massai","Materassi","Mattei","Matteini","Matteucci","Matteuzzi","Mattioli","Mattolini","Matucci","Mauro","Mazzanti","Mazzei","Mazzetti","Mazzi","Mazzini","Mazzocchi","Mazzoli","Mazzoni","Mazzuoli","Meacci","Mecocci","Meini","Melani","Mele","Meli","Mengoni","Menichetti","Meoni","Merlini","Messeri","Messina","Meucci","Miccinesi","Miceli","Micheli","Michelini","Michelozzi","Migliori","Migliorini","Milani","Miniati","Misuri","Monaco","Montagnani","Montagni","Montanari","Montelatici","Monti","Montigiani","Montini","Morandi","Morandini","Morelli","Moretti","Morganti","Mori","Morini","Moroni","Morozzi","Mugnai","Mugnaini","Mustafa","Naldi","Naldini","Nannelli","Nanni","Nannini","Nannucci","Nardi","Nardini","Nardoni","Natali","Ndiaye","Nencetti","Nencini","Nencioni","Neri","Nesi","Nesti","Niccolai","Niccoli","Niccolini","Nigi","Nistri","Nocentini","Noferini","Novelli","Nucci","Nuti","Nutini","Oliva","Olivieri","Olmi","Orlandi","Orlandini","Orlando","Orsini","Ortolani","Ottanelli","Pacciani","Pace","Paci","Pacini","Pagani","Pagano","Paggetti","Pagliai","Pagni","Pagnini","Paladini","Palagi","Palchetti","Palloni","Palmieri","Palumbo","Pampaloni","Pancani","Pandolfi","Pandolfini","Panerai","Panichi","Paoletti","Paoli","Paolini","Papi","Papini","Papucci","Parenti","Parigi","Parisi","Parri","Parrini","Pasquini","Passeri","Pecchioli","Pecorini","Pellegrini","Pepi","Perini","Perrone","Peruzzi","Pesci","Pestelli","Petri","Petrini","Petrucci","Pettini","Pezzati","Pezzatini","Piani","Piazza","Piazzesi","Piazzini","Piccardi","Picchi","Piccini","Piccioli","Pieraccini","Pieraccioni","Pieralli","Pierattini","Pieri","Pierini","Pieroni","Pietrini","Pini","Pinna","Pinto","Pinzani","Pinzauti","Piras","Pisani","Pistolesi","Poggesi","Poggi","Poggiali","Poggiolini","Poli","Pollastri","Porciani","Pozzi","Pratellesi","Pratesi","Prosperi","Pruneti","Pucci","Puccini","Puccioni","Pugi","Pugliese","Puliti","Querci","Quercioli","Raddi","Radu","Raffaelli","Ragazzini","Ranfagni","Ranieri","Rastrelli","Raugei","Raveggi","Renai","Renzi","Rettori","Ricci","Ricciardi","Ridi","Ridolfi","Rigacci","Righi","Righini","Rinaldi","Risaliti","Ristori","Rizzo","Rocchi","Rocchini","Rogai","Romagnoli","Romanelli","Romani","Romano","Romei","Romeo","Romiti","Romoli","Romolini","Rontini","Rosati","Roselli","Rosi","Rossetti","Rossi","Rossini","Rovai","Ruggeri","Ruggiero","Russo","Sabatini","Saccardi","Sacchetti","Sacchi","Sacco","Salerno","Salimbeni","Salucci","Salvadori","Salvestrini","Salvi","Salvini","Sanesi","Sani","Sanna","Santi","Santini","Santoni","Santoro","Santucci","Sardi","Sarri","Sarti","Sassi","Sbolci","Scali","Scarpelli","Scarselli","Scopetani","Secci","Selvi","Senatori","Senesi","Serafini","Sereni","Serra","Sestini","Sguanci","Sieni","Signorini","Silvestri","Simoncini","Simonetti","Simoni","Singh","Sodi","Soldi","Somigli","Sorbi","Sorelli","Sorrentino","Sottili","Spina","Spinelli","Staccioli","Staderini","Stefanelli","Stefani","Stefanini","Stella","Susini","Tacchi","Tacconi","Taddei","Tagliaferri","Tamburini","Tanganelli","Tani","Tanini","Tapinassi","Tarchi","Tarchiani","Targioni","Tassi","Tassini","Tempesti","Terzani","Tesi","Testa","Testi","Tilli","Tinti","Tirinnanzi","Toccafondi","Tofanari","Tofani","Tognaccini","Tonelli","Tonini","Torelli","Torrini","Tosi","Toti","Tozzi","Trambusti","Trapani","Tucci","Turchi","Ugolini","Ulivi","Valente","Valenti","Valentini","Vangelisti","Vanni","Vannini","Vannoni","Vannozzi","Vannucchi","Vannucci","Ventura","Venturi","Venturini","Vestri","Vettori","Vichi","Viciani","Vieri","Vigiani","Vignoli","Vignolini","Vignozzi","Villani","Vinci","Visani","Vitale","Vitali","Viti","Viviani","Vivoli","Volpe","Volpi","Wang","Wu","Xu","Yang","Ye","Zagli","Zani","Zanieri","Zanobini","Zecchi","Zetti","Zhang","Zheng","Zhou","Zhu","Zingoni","Zini","Zoppi"],nl:["Albers","Alblas","Appelman","Baars","Baas","Bakker","Blank","Bleeker","Blok","Blom","Boer","Boers","Boldewijn","Boon","Boot","Bos","Bosch","Bosma","Bosman","Bouma","Bouman","Bouwman","Brands","Brouwer","Burger","Buijs","Buitenhuis","Ceder","Cohen","Dekker","Dekkers","Dijkman","Dijkstra","Driessen","Drost","Engel","Evers","Faber","Franke","Gerritsen","Goedhart","Goossens","Groen","Groenenberg","Groot","Haan","Hart","Heemskerk","Hendriks","Hermans","Hoekstra","Hofman","Hopman","Huisman","Jacobs","Jansen","Janssen","Jonker","Jaspers","Keijzer","Klaassen","Klein","Koek","Koenders","Kok","Kool","Koopman","Koopmans","Koning","Koster","Kramer","Kroon","Kuijpers","Kuiper","Kuipers","Kurt","Koster","Kwakman","Los","Lubbers","Maas","Markus","Martens","Meijer","Mol","Molenaar","Mulder","Nieuwenhuis","Peeters","Peters","Pengel","Pieters","Pool","Post","Postma","Prins","Pronk","Reijnders","Rietveld","Roest","Roos","Sanders","Schaap","Scheffer","Schenk","Schilder","Schipper","Schmidt","Scholten","Schouten","Schut","Schutte","Schuurman","Simons","Smeets","Smit","Smits","Snel","Swinkels","Tas","Terpstra","Timmermans","Tol","Tromp","Troost","Valk","Veenstra","Veldkamp","Verbeek","Verheul","Verhoeven","Vermeer","Vermeulen","Verweij","Vink","Visser","Voorn","Vos","Wagenaar","Wiersema","Willems","Willemsen","Witteveen","Wolff","Wolters","Zijlstra","Zwart","de Beer","de Boer","de Bruijn","de Bruin","de Graaf","de Groot","de Haan","de Haas","de Jager","de Jong","de Jonge","de Koning","de Lange","de Leeuw","de Ridder","de Rooij","de Ruiter","de Vos","de Vries","de Waal","de Wit","de Zwart","van Beek","van Boven","van Dam","van Dijk","van Dongen","van Doorn","van Egmond","van Eijk","van Es","van Gelder","van Gelderen","van Houten","van Hulst","van Kempen","van Kesteren","van Leeuwen","van Loon","van Mill","van Noord","van Ommen","van Ommeren","van Oosten","van Oostveen","van Rijn","van Schaik","van Veen","van Vliet","van Wijk","van Wijngaarden","van den Poel","van de Pol","van den Ploeg","van de Ven","van den Berg","van den Bosch","van den Brink","van den Broek","van den Heuvel","van der Heijden","van der Horst","van der Hulst","van der Kroon","van der Laan","van der Linden","van der Meer","van der Meij","van der Meulen","van der Molen","van der Sluis","van der Spek","van der Veen","van der Velde","van der Velden","van der Vliet","van der Wal"]},countries:[{name:"Afghanistan",abbreviation:"AF"},{name:"Åland Islands",abbreviation:"AX"},{name:"Albania",abbreviation:"AL"},{name:"Algeria",abbreviation:"DZ"},{name:"American Samoa",abbreviation:"AS"},{name:"Andorra",abbreviation:"AD"},{name:"Angola",abbreviation:"AO"},{name:"Anguilla",abbreviation:"AI"},{name:"Antarctica",abbreviation:"AQ"},{name:"Antigua & Barbuda",abbreviation:"AG"},{name:"Argentina",abbreviation:"AR"},{name:"Armenia",abbreviation:"AM"},{name:"Aruba",abbreviation:"AW"},{name:"Ascension Island",abbreviation:"AC"},{name:"Australia",abbreviation:"AU"},{name:"Austria",abbreviation:"AT"},{name:"Azerbaijan",abbreviation:"AZ"},{name:"Bahamas",abbreviation:"BS"},{name:"Bahrain",abbreviation:"BH"},{name:"Bangladesh",abbreviation:"BD"},{name:"Barbados",abbreviation:"BB"},{name:"Belarus",abbreviation:"BY"},{name:"Belgium",abbreviation:"BE"},{name:"Belize",abbreviation:"BZ"},{name:"Benin",abbreviation:"BJ"},{name:"Bermuda",abbreviation:"BM"},{name:"Bhutan",abbreviation:"BT"},{name:"Bolivia",abbreviation:"BO"},{name:"Bosnia & Herzegovina",abbreviation:"BA"},{name:"Botswana",abbreviation:"BW"},{name:"Brazil",abbreviation:"BR"},{name:"British Indian Ocean Territory",abbreviation:"IO"},{name:"British Virgin Islands",abbreviation:"VG"},{name:"Brunei",abbreviation:"BN"},{name:"Bulgaria",abbreviation:"BG"},{name:"Burkina Faso",abbreviation:"BF"},{name:"Burundi",abbreviation:"BI"},{name:"Cambodia",abbreviation:"KH"},{name:"Cameroon",abbreviation:"CM"},{name:"Canada",abbreviation:"CA"},{name:"Canary Islands",abbreviation:"IC"},{name:"Cape Verde",abbreviation:"CV"},{name:"Caribbean Netherlands",abbreviation:"BQ"},{name:"Cayman Islands",abbreviation:"KY"},{name:"Central African Republic",abbreviation:"CF"},{name:"Ceuta & Melilla",abbreviation:"EA"},{name:"Chad",abbreviation:"TD"},{name:"Chile",abbreviation:"CL"},{name:"China",abbreviation:"CN"},{name:"Christmas Island",abbreviation:"CX"},{name:"Cocos (Keeling) Islands",abbreviation:"CC"},{name:"Colombia",abbreviation:"CO"},{name:"Comoros",abbreviation:"KM"},{name:"Congo - Brazzaville",abbreviation:"CG"},{name:"Congo - Kinshasa",abbreviation:"CD"},{name:"Cook Islands",abbreviation:"CK"},{name:"Costa Rica",abbreviation:"CR"},{name:"Côte d'Ivoire",abbreviation:"CI"},{name:"Croatia",abbreviation:"HR"},{name:"Cuba",abbreviation:"CU"},{name:"Curaçao",abbreviation:"CW"},{name:"Cyprus",abbreviation:"CY"},{name:"Czech Republic",abbreviation:"CZ"},{name:"Denmark",abbreviation:"DK"},{name:"Diego Garcia",abbreviation:"DG"},{name:"Djibouti",abbreviation:"DJ"},{name:"Dominica",abbreviation:"DM"},{name:"Dominican Republic",abbreviation:"DO"},{name:"Ecuador",abbreviation:"EC"},{name:"Egypt",abbreviation:"EG"},{name:"El Salvador",abbreviation:"SV"},{name:"Equatorial Guinea",abbreviation:"GQ"},{name:"Eritrea",abbreviation:"ER"},{name:"Estonia",abbreviation:"EE"},{name:"Ethiopia",abbreviation:"ET"},{name:"Falkland Islands",abbreviation:"FK"},{name:"Faroe Islands",abbreviation:"FO"},{name:"Fiji",abbreviation:"FJ"},{name:"Finland",abbreviation:"FI"},{name:"France",abbreviation:"FR"},{name:"French Guiana",abbreviation:"GF"},{name:"French Polynesia",abbreviation:"PF"},{name:"French Southern Territories",abbreviation:"TF"},{name:"Gabon",abbreviation:"GA"},{name:"Gambia",abbreviation:"GM"},{name:"Georgia",abbreviation:"GE"},{name:"Germany",abbreviation:"DE"},{name:"Ghana",abbreviation:"GH"},{name:"Gibraltar",abbreviation:"GI"},{name:"Greece",abbreviation:"GR"},{name:"Greenland",abbreviation:"GL"},{name:"Grenada",abbreviation:"GD"},{name:"Guadeloupe",abbreviation:"GP"},{name:"Guam",abbreviation:"GU"},{name:"Guatemala",abbreviation:"GT"},{name:"Guernsey",abbreviation:"GG"},{name:"Guinea",abbreviation:"GN"},{name:"Guinea-Bissau",abbreviation:"GW"},{name:"Guyana",abbreviation:"GY"},{name:"Haiti",abbreviation:"HT"},{name:"Honduras",abbreviation:"HN"},{name:"Hong Kong SAR China",abbreviation:"HK"},{name:"Hungary",abbreviation:"HU"},{name:"Iceland",abbreviation:"IS"},{name:"India",abbreviation:"IN"},{name:"Indonesia",abbreviation:"ID"},{name:"Iran",abbreviation:"IR"},{name:"Iraq",abbreviation:"IQ"},{name:"Ireland",abbreviation:"IE"},{name:"Isle of Man",abbreviation:"IM"},{name:"Israel",abbreviation:"IL"},{name:"Italy",abbreviation:"IT"},{name:"Jamaica",abbreviation:"JM"},{name:"Japan",abbreviation:"JP"},{name:"Jersey",abbreviation:"JE"},{name:"Jordan",abbreviation:"JO"},{name:"Kazakhstan",abbreviation:"KZ"},{name:"Kenya",abbreviation:"KE"},{name:"Kiribati",abbreviation:"KI"},{name:"Kosovo",abbreviation:"XK"},{name:"Kuwait",abbreviation:"KW"},{name:"Kyrgyzstan",abbreviation:"KG"},{name:"Laos",abbreviation:"LA"},{name:"Latvia",abbreviation:"LV"},{name:"Lebanon",abbreviation:"LB"},{name:"Lesotho",abbreviation:"LS"},{name:"Liberia",abbreviation:"LR"},{name:"Libya",abbreviation:"LY"},{name:"Liechtenstein",abbreviation:"LI"},{name:"Lithuania",abbreviation:"LT"},{name:"Luxembourg",abbreviation:"LU"},{name:"Macau SAR China",abbreviation:"MO"},{name:"Macedonia",abbreviation:"MK"},{name:"Madagascar",abbreviation:"MG"},{name:"Malawi",abbreviation:"MW"},{name:"Malaysia",abbreviation:"MY"},{name:"Maldives",abbreviation:"MV"},{name:"Mali",abbreviation:"ML"},{name:"Malta",abbreviation:"MT"},{name:"Marshall Islands",abbreviation:"MH"},{name:"Martinique",abbreviation:"MQ"},{name:"Mauritania",abbreviation:"MR"},{name:"Mauritius",abbreviation:"MU"},{name:"Mayotte",abbreviation:"YT"},{name:"Mexico",abbreviation:"MX"},{name:"Micronesia",abbreviation:"FM"},{name:"Moldova",abbreviation:"MD"},{name:"Monaco",abbreviation:"MC"},{name:"Mongolia",abbreviation:"MN"},{name:"Montenegro",abbreviation:"ME"},{name:"Montserrat",abbreviation:"MS"},{name:"Morocco",abbreviation:"MA"},{name:"Mozambique",abbreviation:"MZ"},{name:"Myanmar (Burma)",abbreviation:"MM"},{name:"Namibia",abbreviation:"NA"},{name:"Nauru",abbreviation:"NR"},{name:"Nepal",abbreviation:"NP"},{name:"Netherlands",abbreviation:"NL"},{name:"New Caledonia",abbreviation:"NC"},{name:"New Zealand",abbreviation:"NZ"},{name:"Nicaragua",abbreviation:"NI"},{name:"Niger",abbreviation:"NE"},{name:"Nigeria",abbreviation:"NG"},{name:"Niue",abbreviation:"NU"},{name:"Norfolk Island",abbreviation:"NF"},{name:"North Korea",abbreviation:"KP"},{name:"Northern Mariana Islands",abbreviation:"MP"},{name:"Norway",abbreviation:"NO"},{name:"Oman",abbreviation:"OM"},{name:"Pakistan",abbreviation:"PK"},{name:"Palau",abbreviation:"PW"},{name:"Palestinian Territories",abbreviation:"PS"},{name:"Panama",abbreviation:"PA"},{name:"Papua New Guinea",abbreviation:"PG"},{name:"Paraguay",abbreviation:"PY"},{name:"Peru",abbreviation:"PE"},{name:"Philippines",abbreviation:"PH"},{name:"Pitcairn Islands",abbreviation:"PN"},{name:"Poland",abbreviation:"PL"},{name:"Portugal",abbreviation:"PT"},{name:"Puerto Rico",abbreviation:"PR"},{name:"Qatar",abbreviation:"QA"},{name:"Réunion",abbreviation:"RE"},{name:"Romania",abbreviation:"RO"},{name:"Russia",abbreviation:"RU"},{name:"Rwanda",abbreviation:"RW"},{name:"Samoa",abbreviation:"WS"},{name:"San Marino",abbreviation:"SM"},{name:"São Tomé and Príncipe",abbreviation:"ST"},{name:"Saudi Arabia",abbreviation:"SA"},{name:"Senegal",abbreviation:"SN"},{name:"Serbia",abbreviation:"RS"},{name:"Seychelles",abbreviation:"SC"},{name:"Sierra Leone",abbreviation:"SL"},{name:"Singapore",abbreviation:"SG"},{name:"Sint Maarten",abbreviation:"SX"},{name:"Slovakia",abbreviation:"SK"},{name:"Slovenia",abbreviation:"SI"},{name:"Solomon Islands",abbreviation:"SB"},{name:"Somalia",abbreviation:"SO"},{name:"South Africa",abbreviation:"ZA"},{name:"South Georgia & South Sandwich Islands",abbreviation:"GS"},{name:"South Korea",abbreviation:"KR"},{name:"South Sudan",abbreviation:"SS"},{name:"Spain",abbreviation:"ES"},{name:"Sri Lanka",abbreviation:"LK"},{name:"St. Barthélemy",abbreviation:"BL"},{name:"St. Helena",abbreviation:"SH"},{name:"St. Kitts & Nevis",abbreviation:"KN"},{name:"St. Lucia",abbreviation:"LC"},{name:"St. Martin",abbreviation:"MF"},{name:"St. Pierre & Miquelon",abbreviation:"PM"},{name:"St. Vincent & Grenadines",abbreviation:"VC"},{name:"Sudan",abbreviation:"SD"},{name:"Suriname",abbreviation:"SR"},{name:"Svalbard & Jan Mayen",abbreviation:"SJ"},{name:"Swaziland",abbreviation:"SZ"},{name:"Sweden",abbreviation:"SE"},{name:"Switzerland",abbreviation:"CH"},{name:"Syria",abbreviation:"SY"},{name:"Taiwan",abbreviation:"TW"},{name:"Tajikistan",abbreviation:"TJ"},{name:"Tanzania",abbreviation:"TZ"},{name:"Thailand",abbreviation:"TH"},{name:"Timor-Leste",abbreviation:"TL"},{name:"Togo",abbreviation:"TG"},{name:"Tokelau",abbreviation:"TK"},{name:"Tonga",abbreviation:"TO"},{name:"Trinidad & Tobago",abbreviation:"TT"},{name:"Tristan da Cunha",abbreviation:"TA"},{name:"Tunisia",abbreviation:"TN"},{name:"Turkey",abbreviation:"TR"},{name:"Turkmenistan",abbreviation:"TM"},{name:"Turks & Caicos Islands",abbreviation:"TC"},{name:"Tuvalu",abbreviation:"TV"},{name:"U.S. Outlying Islands",abbreviation:"UM"},{name:"U.S. Virgin Islands",abbreviation:"VI"},{name:"Uganda",abbreviation:"UG"},{name:"Ukraine",abbreviation:"UA"},{name:"United Arab Emirates",abbreviation:"AE"},{name:"United Kingdom",abbreviation:"GB"},{name:"United States",abbreviation:"US"},{name:"Uruguay",abbreviation:"UY"},{name:"Uzbekistan",abbreviation:"UZ"},{name:"Vanuatu",abbreviation:"VU"},{name:"Vatican City",abbreviation:"VA"},{name:"Venezuela",abbreviation:"VE"},{name:"Vietnam",abbreviation:"VN"},{name:"Wallis & Futuna",abbreviation:"WF"},{name:"Western Sahara",abbreviation:"EH"},{name:"Yemen",abbreviation:"YE"},{name:"Zambia",abbreviation:"ZM"},{name:"Zimbabwe",abbreviation:"ZW"}],counties:{uk:[{name:"Bath and North East Somerset"},{name:"Aberdeenshire"},{name:"Anglesey"},{name:"Angus"},{name:"Bedford"},{name:"Blackburn with Darwen"},{name:"Blackpool"},{name:"Bournemouth"},{name:"Bracknell Forest"},{name:"Brighton & Hove"},{name:"Bristol"},{name:"Buckinghamshire"},{name:"Cambridgeshire"},{name:"Carmarthenshire"},{name:"Central Bedfordshire"},{name:"Ceredigion"},{name:"Cheshire East"},{name:"Cheshire West and Chester"},{name:"Clackmannanshire"},{name:"Conwy"},{name:"Cornwall"},{name:"County Antrim"},{name:"County Armagh"},{name:"County Down"},{name:"County Durham"},{name:"County Fermanagh"},{name:"County Londonderry"},{name:"County Tyrone"},{name:"Cumbria"},{name:"Darlington"},{name:"Denbighshire"},{name:"Derby"},{name:"Derbyshire"},{name:"Devon"},{name:"Dorset"},{name:"Dumfries and Galloway"},{name:"Dundee"},{name:"East Lothian"},{name:"East Riding of Yorkshire"},{name:"East Sussex"},{name:"Edinburgh?"},{name:"Essex"},{name:"Falkirk"},{name:"Fife"},{name:"Flintshire"},{name:"Gloucestershire"},{name:"Greater London"},{name:"Greater Manchester"},{name:"Gwent"},{name:"Gwynedd"},{name:"Halton"},{name:"Hampshire"},{name:"Hartlepool"},{name:"Herefordshire"},{name:"Hertfordshire"},{name:"Highlands"},{name:"Hull"},{name:"Isle of Wight"},{name:"Isles of Scilly"},{name:"Kent"},{name:"Lancashire"},{name:"Leicester"},{name:"Leicestershire"},{name:"Lincolnshire"},{name:"Lothian"},{name:"Luton"},{name:"Medway"},{name:"Merseyside"},{name:"Mid Glamorgan"},{name:"Middlesbrough"},{name:"Milton Keynes"},{name:"Monmouthshire"},{name:"Moray"},{name:"Norfolk"},{name:"North East Lincolnshire"},{name:"North Lincolnshire"},{name:"North Somerset"},{name:"North Yorkshire"},{name:"Northamptonshire"},{name:"Northumberland"},{name:"Nottingham"},{name:"Nottinghamshire"},{name:"Oxfordshire"},{name:"Pembrokeshire"},{name:"Perth and Kinross"},{name:"Peterborough"},{name:"Plymouth"},{name:"Poole"},{name:"Portsmouth"},{name:"Powys"},{name:"Reading"},{name:"Redcar and Cleveland"},{name:"Rutland"},{name:"Scottish Borders"},{name:"Shropshire"},{name:"Slough"},{name:"Somerset"},{name:"South Glamorgan"},{name:"South Gloucestershire"},{name:"South Yorkshire"},{name:"Southampton"},{name:"Southend-on-Sea"},{name:"Staffordshire"},{name:"Stirlingshire"},{name:"Stockton-on-Tees"},{name:"Stoke-on-Trent"},{name:"Strathclyde"},{name:"Suffolk"},{name:"Surrey"},{name:"Swindon"},{name:"Telford and Wrekin"},{name:"Thurrock"},{name:"Torbay"},{name:"Tyne and Wear"},{name:"Warrington"},{name:"Warwickshire"},{name:"West Berkshire"},{name:"West Glamorgan"},{name:"West Lothian"},{name:"West Midlands"},{name:"West Sussex"},{name:"West Yorkshire"},{name:"Western Isles"},{name:"Wiltshire"},{name:"Windsor and Maidenhead"},{name:"Wokingham"},{name:"Worcestershire"},{name:"Wrexham"},{name:"York"}]},provinces:{ca:[{name:"Alberta",abbreviation:"AB"},{name:"British Columbia",abbreviation:"BC"},{name:"Manitoba",abbreviation:"MB"},{name:"New Brunswick",abbreviation:"NB"},{name:"Newfoundland and Labrador",abbreviation:"NL"},{name:"Nova Scotia",abbreviation:"NS"},{name:"Ontario",abbreviation:"ON"},{name:"Prince Edward Island",abbreviation:"PE"},{name:"Quebec",abbreviation:"QC"},{name:"Saskatchewan",abbreviation:"SK"},{name:"Northwest Territories",abbreviation:"NT"},{name:"Nunavut",abbreviation:"NU"},{name:"Yukon",abbreviation:"YT"}],it:[{name:"Agrigento",abbreviation:"AG",code:84},{name:"Alessandria",abbreviation:"AL",code:6},{name:"Ancona",abbreviation:"AN",code:42},{name:"Aosta",abbreviation:"AO",code:7},{name:"L'Aquila",abbreviation:"AQ",code:66},{name:"Arezzo",abbreviation:"AR",code:51},{name:"Ascoli-Piceno",abbreviation:"AP",code:44},{name:"Asti",abbreviation:"AT",code:5},{name:"Avellino",abbreviation:"AV",code:64},{name:"Bari",abbreviation:"BA",code:72},{name:"Barletta-Andria-Trani",abbreviation:"BT",code:72},{name:"Belluno",abbreviation:"BL",code:25},{name:"Benevento",abbreviation:"BN",code:62},{name:"Bergamo",abbreviation:"BG",code:16},{name:"Biella",abbreviation:"BI",code:96},{name:"Bologna",abbreviation:"BO",code:37},{name:"Bolzano",abbreviation:"BZ",code:21},{name:"Brescia",abbreviation:"BS",code:17},{name:"Brindisi",abbreviation:"BR",code:74},{name:"Cagliari",abbreviation:"CA",code:92},{name:"Caltanissetta",abbreviation:"CL",code:85},{name:"Campobasso",abbreviation:"CB",code:70},{name:"Carbonia Iglesias",abbreviation:"CI",code:70},{name:"Caserta",abbreviation:"CE",code:61},{name:"Catania",abbreviation:"CT",code:87},{name:"Catanzaro",abbreviation:"CZ",code:79},{name:"Chieti",abbreviation:"CH",code:69},{name:"Como",abbreviation:"CO",code:13},{name:"Cosenza",abbreviation:"CS",code:78},{name:"Cremona",abbreviation:"CR",code:19},{name:"Crotone",abbreviation:"KR",code:101},{name:"Cuneo",abbreviation:"CN",code:4},{name:"Enna",abbreviation:"EN",code:86},{name:"Fermo",abbreviation:"FM",code:86},{name:"Ferrara",abbreviation:"FE",code:38},{name:"Firenze",abbreviation:"FI",code:48},{name:"Foggia",abbreviation:"FG",code:71},{name:"Forli-Cesena",abbreviation:"FC",code:71},{name:"Frosinone",abbreviation:"FR",code:60},{name:"Genova",abbreviation:"GE",code:10},{name:"Gorizia",abbreviation:"GO",code:31},{name:"Grosseto",abbreviation:"GR",code:53},{name:"Imperia",abbreviation:"IM",code:8},{name:"Isernia",abbreviation:"IS",code:94},{name:"La-Spezia",abbreviation:"SP",code:66},{name:"Latina",abbreviation:"LT",code:59},{name:"Lecce",abbreviation:"LE",code:75},{name:"Lecco",abbreviation:"LC",code:97},{name:"Livorno",abbreviation:"LI",code:49},{name:"Lodi",abbreviation:"LO",code:98},{name:"Lucca",abbreviation:"LU",code:46},{name:"Macerata",abbreviation:"MC",code:43},{name:"Mantova",abbreviation:"MN",code:20},{name:"Massa-Carrara",abbreviation:"MS",code:45},{name:"Matera",abbreviation:"MT",code:77},{name:"Medio Campidano",abbreviation:"VS",code:77},{name:"Messina",abbreviation:"ME",code:83},{name:"Milano",abbreviation:"MI",code:15},{name:"Modena",abbreviation:"MO",code:36},{name:"Monza-Brianza",abbreviation:"MB",code:36},{name:"Napoli",abbreviation:"NA",code:63},{name:"Novara",abbreviation:"NO",code:3},{name:"Nuoro",abbreviation:"NU",code:91},{name:"Ogliastra",abbreviation:"OG",code:91},{name:"Olbia Tempio",abbreviation:"OT",code:91},{name:"Oristano",abbreviation:"OR",code:95},{name:"Padova",abbreviation:"PD",code:28},{name:"Palermo",abbreviation:"PA",code:82},{name:"Parma",abbreviation:"PR",code:34},{name:"Pavia",abbreviation:"PV",code:18},{name:"Perugia",abbreviation:"PG",code:54},{name:"Pesaro-Urbino",abbreviation:"PU",code:41},{name:"Pescara",abbreviation:"PE",code:68},{name:"Piacenza",abbreviation:"PC",code:33},{name:"Pisa",abbreviation:"PI",code:50},{name:"Pistoia",abbreviation:"PT",code:47},{name:"Pordenone",abbreviation:"PN",code:93},{name:"Potenza",abbreviation:"PZ",code:76},{name:"Prato",abbreviation:"PO",code:100},{name:"Ragusa",abbreviation:"RG",code:88},{name:"Ravenna",abbreviation:"RA",code:39},{name:"Reggio-Calabria",abbreviation:"RC",code:35},{name:"Reggio-Emilia",abbreviation:"RE",code:35},{name:"Rieti",abbreviation:"RI",code:57},{name:"Rimini",abbreviation:"RN",code:99},{name:"Roma",abbreviation:"Roma",code:58},{name:"Rovigo",abbreviation:"RO",code:29},{name:"Salerno",abbreviation:"SA",code:65},{name:"Sassari",abbreviation:"SS",code:90},{name:"Savona",abbreviation:"SV",code:9},{name:"Siena",abbreviation:"SI",code:52},{name:"Siracusa",abbreviation:"SR",code:89},{name:"Sondrio",abbreviation:"SO",code:14},{name:"Taranto",abbreviation:"TA",code:73},{name:"Teramo",abbreviation:"TE",code:67},{name:"Terni",abbreviation:"TR",code:55},{name:"Torino",abbreviation:"TO",code:1},{name:"Trapani",abbreviation:"TP",code:81},{name:"Trento",abbreviation:"TN",code:22},{name:"Treviso",abbreviation:"TV",code:26},{name:"Trieste",abbreviation:"TS",code:32},{name:"Udine",abbreviation:"UD",code:30},{name:"Varese",abbreviation:"VA",code:12},{name:"Venezia",abbreviation:"VE",code:27},{name:"Verbania",abbreviation:"VB",code:27},{name:"Vercelli",abbreviation:"VC",code:2},{name:"Verona",abbreviation:"VR",code:23},{name:"Vibo-Valentia",abbreviation:"VV",code:102},{name:"Vicenza",abbreviation:"VI",code:24},{name:"Viterbo",abbreviation:"VT",code:56}]},nationalities:[{name:"Afghan"},{name:"Albanian"},{name:"Algerian"},{name:"American"},{name:"Andorran"},{name:"Angolan"},{name:"Antiguans"},{name:"Argentinean"},{name:"Armenian"},{name:"Australian"},{name:"Austrian"},{name:"Azerbaijani"},{name:"Bahami"},{name:"Bahraini"},{name:"Bangladeshi"},{name:"Barbadian"},{name:"Barbudans"},{name:"Batswana"},{name:"Belarusian"},{name:"Belgian"},{name:"Belizean"},{name:"Beninese"},{name:"Bhutanese"},{name:"Bolivian"},{name:"Bosnian"},{name:"Brazilian"},{name:"British"},{name:"Bruneian"},{name:"Bulgarian"},{name:"Burkinabe"},{name:"Burmese"},{name:"Burundian"},{name:"Cambodian"},{name:"Cameroonian"},{name:"Canadian"},{name:"Cape Verdean"},{name:"Central African"},{name:"Chadian"},{name:"Chilean"},{name:"Chinese"},{name:"Colombian"},{name:"Comoran"},{name:"Congolese"},{name:"Costa Rican"},{name:"Croatian"},{name:"Cuban"},{name:"Cypriot"},{name:"Czech"},{name:"Danish"},{name:"Djibouti"},{name:"Dominican"},{name:"Dutch"},{name:"East Timorese"},{name:"Ecuadorean"},{name:"Egyptian"},{name:"Emirian"},{name:"Equatorial Guinean"},{name:"Eritrean"},{name:"Estonian"},{name:"Ethiopian"},{name:"Fijian"},{name:"Filipino"},{name:"Finnish"},{name:"French"},{name:"Gabonese"},{name:"Gambian"},{name:"Georgian"},{name:"German"},{name:"Ghanaian"},{name:"Greek"},{name:"Grenadian"},{name:"Guatemalan"},{name:"Guinea-Bissauan"},{name:"Guinean"},{name:"Guyanese"},{name:"Haitian"},{name:"Herzegovinian"},{name:"Honduran"},{name:"Hungarian"},{name:"I-Kiribati"},{name:"Icelander"},{name:"Indian"},{name:"Indonesian"},{name:"Iranian"},{name:"Iraqi"},{name:"Irish"},{name:"Israeli"},{name:"Italian"},{name:"Ivorian"},{name:"Jamaican"},{name:"Japanese"},{name:"Jordanian"},{name:"Kazakhstani"},{name:"Kenyan"},{name:"Kittian and Nevisian"},{name:"Kuwaiti"},{name:"Kyrgyz"},{name:"Laotian"},{name:"Latvian"},{name:"Lebanese"},{name:"Liberian"},{name:"Libyan"},{name:"Liechtensteiner"},{name:"Lithuanian"},{name:"Luxembourger"},{name:"Macedonian"},{name:"Malagasy"},{name:"Malawian"},{name:"Malaysian"},{name:"Maldivan"},{name:"Malian"},{name:"Maltese"},{name:"Marshallese"},{name:"Mauritanian"},{name:"Mauritian"},{name:"Mexican"},{name:"Micronesian"},{name:"Moldovan"},{name:"Monacan"},{name:"Mongolian"},{name:"Moroccan"},{name:"Mosotho"},{name:"Motswana"},{name:"Mozambican"},{name:"Namibian"},{name:"Nauruan"},{name:"Nepalese"},{name:"New Zealander"},{name:"Nicaraguan"},{name:"Nigerian"},{name:"Nigerien"},{name:"North Korean"},{name:"Northern Irish"},{name:"Norwegian"},{name:"Omani"},{name:"Pakistani"},{name:"Palauan"},{name:"Panamanian"},{name:"Papua New Guinean"},{name:"Paraguayan"},{name:"Peruvian"},{name:"Polish"},{name:"Portuguese"},{name:"Qatari"},{name:"Romani"},{name:"Russian"},{name:"Rwandan"},{name:"Saint Lucian"},{name:"Salvadoran"},{name:"Samoan"},{name:"San Marinese"},{name:"Sao Tomean"},{name:"Saudi"},{name:"Scottish"},{name:"Senegalese"},{name:"Serbian"},{name:"Seychellois"},{name:"Sierra Leonean"},{name:"Singaporean"},{name:"Slovakian"},{name:"Slovenian"},{name:"Solomon Islander"},{name:"Somali"},{name:"South African"},{name:"South Korean"},{name:"Spanish"},{name:"Sri Lankan"},{name:"Sudanese"},{name:"Surinamer"},{name:"Swazi"},{name:"Swedish"},{name:"Swiss"},{name:"Syrian"},{name:"Taiwanese"},{name:"Tajik"},{name:"Tanzanian"},{name:"Thai"},{name:"Togolese"},{name:"Tongan"},{name:"Trinidadian or Tobagonian"},{name:"Tunisian"},{name:"Turkish"},{name:"Tuvaluan"},{name:"Ugandan"},{name:"Ukrainian"},{name:"Uruguaya"},{name:"Uzbekistani"},{name:"Venezuela"},{name:"Vietnamese"},{name:"Wels"},{name:"Yemenit"},{name:"Zambia"},{name:"Zimbabwe"}],locale_languages:["aa","ab","ae","af","ak","am","an","ar","as","av","ay","az","ba","be","bg","bh","bi","bm","bn","bo","br","bs","ca","ce","ch","co","cr","cs","cu","cv","cy","da","de","dv","dz","ee","el","en","eo","es","et","eu","fa","ff","fi","fj","fo","fr","fy","ga","gd","gl","gn","gu","gv","ha","he","hi","ho","hr","ht","hu","hy","hz","ia","id","ie","ig","ii","ik","io","is","it","iu","ja","jv","ka","kg","ki","kj","kk","kl","km","kn","ko","kr","ks","ku","kv","kw","ky","la","lb","lg","li","ln","lo","lt","lu","lv","mg","mh","mi","mk","ml","mn","mr","ms","mt","my","na","nb","nd","ne","ng","nl","nn","no","nr","nv","ny","oc","oj","om","or","os","pa","pi","pl","ps","pt","qu","rm","rn","ro","ru","rw","sa","sc","sd","se","sg","si","sk","sl","sm","sn","so","sq","sr","ss","st","su","sv","sw","ta","te","tg","th","ti","tk","tl","tn","to","tr","ts","tt","tw","ty","ug","uk","ur","uz","ve","vi","vo","wa","wo","xh","yi","yo","za","zh","zu"],locale_regions:["agq-CM","asa-TZ","ast-ES","bas-CM","bem-ZM","bez-TZ","brx-IN","cgg-UG","chr-US","dav-KE","dje-NE","dsb-DE","dua-CM","dyo-SN","ebu-KE","ewo-CM","fil-PH","fur-IT","gsw-CH","gsw-FR","gsw-LI","guz-KE","haw-US","hsb-DE","jgo-CM","jmc-TZ","kab-DZ","kam-KE","kde-TZ","kea-CV","khq-ML","kkj-CM","kln-KE","kok-IN","ksb-TZ","ksf-CM","ksh-DE","lag-TZ","lkt-US","luo-KE","luy-KE","mas-KE","mas-TZ","mer-KE","mfe-MU","mgh-MZ","mgo-CM","mua-CM","naq-NA","nmg-CM","nnh-CM","nus-SD","nyn-UG","rof-TZ","rwk-TZ","sah-RU","saq-KE","sbp-TZ","seh-MZ","ses-ML","shi-Latn","shi-Latn-MA","shi-Tfng","shi-Tfng-MA","smn-FI","teo-KE","teo-UG","twq-NE","tzm-Latn","tzm-Latn-MA","vai-Latn","vai-Latn-LR","vai-Vaii","vai-Vaii-LR","vun-TZ","wae-CH","xog-UG","yav-CM","zgh-MA","af-NA","af-ZA","ak-GH","am-ET","ar-001","ar-AE","ar-BH","ar-DJ","ar-DZ","ar-EG","ar-EH","ar-ER","ar-IL","ar-IQ","ar-JO","ar-KM","ar-KW","ar-LB","ar-LY","ar-MA","ar-MR","ar-OM","ar-PS","ar-QA","ar-SA","ar-SD","ar-SO","ar-SS","ar-SY","ar-TD","ar-TN","ar-YE","as-IN","az-Cyrl","az-Cyrl-AZ","az-Latn","az-Latn-AZ","be-BY","bg-BG","bm-Latn","bm-Latn-ML","bn-BD","bn-IN","bo-CN","bo-IN","br-FR","bs-Cyrl","bs-Cyrl-BA","bs-Latn","bs-Latn-BA","ca-AD","ca-ES","ca-ES-VALENCIA","ca-FR","ca-IT","cs-CZ","cy-GB","da-DK","da-GL","de-AT","de-BE","de-CH","de-DE","de-LI","de-LU","dz-BT","ee-GH","ee-TG","el-CY","el-GR","en-001","en-150","en-AG","en-AI","en-AS","en-AU","en-BB","en-BE","en-BM","en-BS","en-BW","en-BZ","en-CA","en-CC","en-CK","en-CM","en-CX","en-DG","en-DM","en-ER","en-FJ","en-FK","en-FM","en-GB","en-GD","en-GG","en-GH","en-GI","en-GM","en-GU","en-GY","en-HK","en-IE","en-IM","en-IN","en-IO","en-JE","en-JM","en-KE","en-KI","en-KN","en-KY","en-LC","en-LR","en-LS","en-MG","en-MH","en-MO","en-MP","en-MS","en-MT","en-MU","en-MW","en-MY","en-NA","en-NF","en-NG","en-NR","en-NU","en-NZ","en-PG","en-PH","en-PK","en-PN","en-PR","en-PW","en-RW","en-SB","en-SC","en-SD","en-SG","en-SH","en-SL","en-SS","en-SX","en-SZ","en-TC","en-TK","en-TO","en-TT","en-TV","en-TZ","en-UG","en-UM","en-US","en-US-POSIX","en-VC","en-VG","en-VI","en-VU","en-WS","en-ZA","en-ZM","en-ZW","eo-001","es-419","es-AR","es-BO","es-CL","es-CO","es-CR","es-CU","es-DO","es-EA","es-EC","es-ES","es-GQ","es-GT","es-HN","es-IC","es-MX","es-NI","es-PA","es-PE","es-PH","es-PR","es-PY","es-SV","es-US","es-UY","es-VE","et-EE","eu-ES","fa-AF","fa-IR","ff-CM","ff-GN","ff-MR","ff-SN","fi-FI","fo-FO","fr-BE","fr-BF","fr-BI","fr-BJ","fr-BL","fr-CA","fr-CD","fr-CF","fr-CG","fr-CH","fr-CI","fr-CM","fr-DJ","fr-DZ","fr-FR","fr-GA","fr-GF","fr-GN","fr-GP","fr-GQ","fr-HT","fr-KM","fr-LU","fr-MA","fr-MC","fr-MF","fr-MG","fr-ML","fr-MQ","fr-MR","fr-MU","fr-NC","fr-NE","fr-PF","fr-PM","fr-RE","fr-RW","fr-SC","fr-SN","fr-SY","fr-TD","fr-TG","fr-TN","fr-VU","fr-WF","fr-YT","fy-NL","ga-IE","gd-GB","gl-ES","gu-IN","gv-IM","ha-Latn","ha-Latn-GH","ha-Latn-NE","ha-Latn-NG","he-IL","hi-IN","hr-BA","hr-HR","hu-HU","hy-AM","id-ID","ig-NG","ii-CN","is-IS","it-CH","it-IT","it-SM","ja-JP","ka-GE","ki-KE","kk-Cyrl","kk-Cyrl-KZ","kl-GL","km-KH","kn-IN","ko-KP","ko-KR","ks-Arab","ks-Arab-IN","kw-GB","ky-Cyrl","ky-Cyrl-KG","lb-LU","lg-UG","ln-AO","ln-CD","ln-CF","ln-CG","lo-LA","lt-LT","lu-CD","lv-LV","mg-MG","mk-MK","ml-IN","mn-Cyrl","mn-Cyrl-MN","mr-IN","ms-Latn","ms-Latn-BN","ms-Latn-MY","ms-Latn-SG","mt-MT","my-MM","nb-NO","nb-SJ","nd-ZW","ne-IN","ne-NP","nl-AW","nl-BE","nl-BQ","nl-CW","nl-NL","nl-SR","nl-SX","nn-NO","om-ET","om-KE","or-IN","os-GE","os-RU","pa-Arab","pa-Arab-PK","pa-Guru","pa-Guru-IN","pl-PL","ps-AF","pt-AO","pt-BR","pt-CV","pt-GW","pt-MO","pt-MZ","pt-PT","pt-ST","pt-TL","qu-BO","qu-EC","qu-PE","rm-CH","rn-BI","ro-MD","ro-RO","ru-BY","ru-KG","ru-KZ","ru-MD","ru-RU","ru-UA","rw-RW","se-FI","se-NO","se-SE","sg-CF","si-LK","sk-SK","sl-SI","sn-ZW","so-DJ","so-ET","so-KE","so-SO","sq-AL","sq-MK","sq-XK","sr-Cyrl","sr-Cyrl-BA","sr-Cyrl-ME","sr-Cyrl-RS","sr-Cyrl-XK","sr-Latn","sr-Latn-BA","sr-Latn-ME","sr-Latn-RS","sr-Latn-XK","sv-AX","sv-FI","sv-SE","sw-CD","sw-KE","sw-TZ","sw-UG","ta-IN","ta-LK","ta-MY","ta-SG","te-IN","th-TH","ti-ER","ti-ET","to-TO","tr-CY","tr-TR","ug-Arab","ug-Arab-CN","uk-UA","ur-IN","ur-PK","uz-Arab","uz-Arab-AF","uz-Cyrl","uz-Cyrl-UZ","uz-Latn","uz-Latn-UZ","vi-VN","yi-001","yo-BJ","yo-NG","zh-Hans","zh-Hans-CN","zh-Hans-HK","zh-Hans-MO","zh-Hans-SG","zh-Hant","zh-Hant-HK","zh-Hant-MO","zh-Hant-TW","zu-ZA"],us_states_and_dc:[{name:"Alabama",abbreviation:"AL"},{name:"Alaska",abbreviation:"AK"},{name:"Arizona",abbreviation:"AZ"},{name:"Arkansas",abbreviation:"AR"},{name:"California",abbreviation:"CA"},{name:"Colorado",abbreviation:"CO"},{name:"Connecticut",abbreviation:"CT"},{name:"Delaware",abbreviation:"DE"},{name:"District of Columbia",abbreviation:"DC"},{name:"Florida",abbreviation:"FL"},{name:"Georgia",abbreviation:"GA"},{name:"Hawaii",abbreviation:"HI"},{name:"Idaho",abbreviation:"ID"},{name:"Illinois",abbreviation:"IL"},{name:"Indiana",abbreviation:"IN"},{name:"Iowa",abbreviation:"IA"},{name:"Kansas",abbreviation:"KS"},{name:"Kentucky",abbreviation:"KY"},{name:"Louisiana",abbreviation:"LA"},{name:"Maine",abbreviation:"ME"},{name:"Maryland",abbreviation:"MD"},{name:"Massachusetts",abbreviation:"MA"},{name:"Michigan",abbreviation:"MI"},{name:"Minnesota",abbreviation:"MN"},{name:"Mississippi",abbreviation:"MS"},{name:"Missouri",abbreviation:"MO"},{name:"Montana",abbreviation:"MT"},{name:"Nebraska",abbreviation:"NE"},{name:"Nevada",abbreviation:"NV"},{name:"New Hampshire",abbreviation:"NH"},{name:"New Jersey",abbreviation:"NJ"},{name:"New Mexico",abbreviation:"NM"},{name:"New York",abbreviation:"NY"},{name:"North Carolina",abbreviation:"NC"},{name:"North Dakota",abbreviation:"ND"},{name:"Ohio",abbreviation:"OH"},{name:"Oklahoma",abbreviation:"OK"},{name:"Oregon",abbreviation:"OR"},{name:"Pennsylvania",abbreviation:"PA"},{name:"Rhode Island",abbreviation:"RI"},{name:"South Carolina",abbreviation:"SC"},{name:"South Dakota",abbreviation:"SD"},{name:"Tennessee",abbreviation:"TN"},{name:"Texas",abbreviation:"TX"},{name:"Utah",abbreviation:"UT"},{name:"Vermont",abbreviation:"VT"},{name:"Virginia",abbreviation:"VA"},{name:"Washington",abbreviation:"WA"},{name:"West Virginia",abbreviation:"WV"},{name:"Wisconsin",abbreviation:"WI"},{name:"Wyoming",abbreviation:"WY"}],territories:[{name:"American Samoa",abbreviation:"AS"},{name:"Federated States of Micronesia",abbreviation:"FM"},{name:"Guam",abbreviation:"GU"},{name:"Marshall Islands",abbreviation:"MH"},{name:"Northern Mariana Islands",abbreviation:"MP"},{name:"Puerto Rico",abbreviation:"PR"},{name:"Virgin Islands, U.S.",abbreviation:"VI"}],armed_forces:[{name:"Armed Forces Europe",abbreviation:"AE"},{name:"Armed Forces Pacific",abbreviation:"AP"},{name:"Armed Forces the Americas",abbreviation:"AA"}],country_regions:{it:[{name:"Valle d'Aosta",abbreviation:"VDA"},{name:"Piemonte",abbreviation:"PIE"},{name:"Lombardia",abbreviation:"LOM"},{name:"Veneto",abbreviation:"VEN"},{name:"Trentino Alto Adige",abbreviation:"TAA"},{name:"Friuli Venezia Giulia",abbreviation:"FVG"},{name:"Liguria",abbreviation:"LIG"},{name:"Emilia Romagna",abbreviation:"EMR"},{name:"Toscana",abbreviation:"TOS"},{name:"Umbria",abbreviation:"UMB"},{name:"Marche",abbreviation:"MAR"},{name:"Abruzzo",abbreviation:"ABR"},{name:"Lazio",abbreviation:"LAZ"},{name:"Campania",abbreviation:"CAM"},{name:"Puglia",abbreviation:"PUG"},{name:"Basilicata",abbreviation:"BAS"},{name:"Molise",abbreviation:"MOL"},{name:"Calabria",abbreviation:"CAL"},{name:"Sicilia",abbreviation:"SIC"},{name:"Sardegna",abbreviation:"SAR"}]},street_suffixes:{us:[{name:"Avenue",abbreviation:"Ave"},{name:"Boulevard",abbreviation:"Blvd"},{name:"Center",abbreviation:"Ctr"},{name:"Circle",abbreviation:"Cir"},{name:"Court",abbreviation:"Ct"},{name:"Drive",abbreviation:"Dr"},{name:"Extension",abbreviation:"Ext"},{name:"Glen",abbreviation:"Gln"},{name:"Grove",abbreviation:"Grv"},{name:"Heights",abbreviation:"Hts"},{name:"Highway",abbreviation:"Hwy"},{name:"Junction",abbreviation:"Jct"},{name:"Key",abbreviation:"Key"},{name:"Lane",abbreviation:"Ln"},{name:"Loop",abbreviation:"Loop"},{name:"Manor",abbreviation:"Mnr"},{name:"Mill",abbreviation:"Mill"},{name:"Park",abbreviation:"Park"},{name:"Parkway",abbreviation:"Pkwy"},{name:"Pass",abbreviation:"Pass"},{name:"Path",abbreviation:"Path"},{name:"Pike",abbreviation:"Pike"},{name:"Place",abbreviation:"Pl"},{name:"Plaza",abbreviation:"Plz"},{name:"Point",abbreviation:"Pt"},{name:"Ridge",abbreviation:"Rdg"},{name:"River",abbreviation:"Riv"},{name:"Road",abbreviation:"Rd"},{name:"Square",abbreviation:"Sq"},{name:"Street",abbreviation:"St"},{name:"Terrace",abbreviation:"Ter"},{name:"Trail",abbreviation:"Trl"},{name:"Turnpike",abbreviation:"Tpke"},{name:"View",abbreviation:"Vw"},{name:"Way",abbreviation:"Way"}],it:[{name:"Accesso",abbreviation:"Acc."},{name:"Alzaia",abbreviation:"Alz."},{name:"Arco",abbreviation:"Arco"},{name:"Archivolto",abbreviation:"Acv."},{name:"Arena",abbreviation:"Arena"},{name:"Argine",abbreviation:"Argine"},{name:"Bacino",abbreviation:"Bacino"},{name:"Banchi",abbreviation:"Banchi"},{name:"Banchina",abbreviation:"Ban."},{name:"Bastioni",abbreviation:"Bas."},{name:"Belvedere",abbreviation:"Belv."},{name:"Borgata",abbreviation:"B.ta"},{name:"Borgo",abbreviation:"B.go"},{name:"Calata",abbreviation:"Cal."},{name:"Calle",abbreviation:"Calle"},{name:"Campiello",abbreviation:"Cam."},{name:"Campo",abbreviation:"Cam."},{name:"Canale",abbreviation:"Can."},{name:"Carraia",abbreviation:"Carr."},{name:"Cascina",abbreviation:"Cascina"},{name:"Case sparse",abbreviation:"c.s."},{name:"Cavalcavia",abbreviation:"Cv."},{name:"Circonvallazione",abbreviation:"Cv."},{name:"Complanare",abbreviation:"C.re"},{name:"Contrada",abbreviation:"C.da"},{name:"Corso",abbreviation:"C.so"},{name:"Corte",abbreviation:"C.te"},{name:"Cortile",abbreviation:"C.le"},{name:"Diramazione",abbreviation:"Dir."},{name:"Fondaco",abbreviation:"F.co"},{name:"Fondamenta",abbreviation:"F.ta"},{name:"Fondo",abbreviation:"F.do"},{name:"Frazione",abbreviation:"Fr."},{name:"Isola",abbreviation:"Is."},{name:"Largo",abbreviation:"L.go"},{name:"Litoranea",abbreviation:"Lit."},{name:"Lungolago",abbreviation:"L.go lago"},{name:"Lungo Po",abbreviation:"l.go Po"},{name:"Molo",abbreviation:"Molo"},{name:"Mura",abbreviation:"Mura"},{name:"Passaggio privato",abbreviation:"pass. priv."},{name:"Passeggiata",abbreviation:"Pass."},{name:"Piazza",abbreviation:"P.zza"},{name:"Piazzale",abbreviation:"P.le"},{name:"Ponte",abbreviation:"P.te"},{name:"Portico",abbreviation:"P.co"},{name:"Rampa",abbreviation:"Rampa"},{name:"Regione",abbreviation:"Reg."},{name:"Rione",abbreviation:"R.ne"},{name:"Rio",abbreviation:"Rio"},{name:"Ripa",abbreviation:"Ripa"},{name:"Riva",abbreviation:"Riva"},{name:"Rondò",abbreviation:"Rondò"},{name:"Rotonda",abbreviation:"Rot."},{name:"Sagrato",abbreviation:"Sagr."},{name:"Salita",abbreviation:"Sal."},{name:"Scalinata",abbreviation:"Scal."},{name:"Scalone",abbreviation:"Scal."},{name:"Slargo",abbreviation:"Sl."},{name:"Sottoportico",abbreviation:"Sott."},{name:"Strada",abbreviation:"Str."},{name:"Stradale",abbreviation:"Str.le"},{name:"Strettoia",abbreviation:"Strett."},{name:"Traversa",abbreviation:"Trav."},{name:"Via",abbreviation:"V."},{name:"Viale",abbreviation:"V.le"},{name:"Vicinale",abbreviation:"Vic.le"},{name:"Vicolo",abbreviation:"Vic."}],uk:[{name:"Avenue",abbreviation:"Ave"},{name:"Close",abbreviation:"Cl"},{name:"Court",abbreviation:"Ct"},{name:"Crescent",abbreviation:"Cr"},{name:"Drive",abbreviation:"Dr"},{name:"Garden",abbreviation:"Gdn"},{name:"Gardens",abbreviation:"Gdns"},{name:"Green",abbreviation:"Gn"},{name:"Grove",abbreviation:"Gr"},{name:"Lane",abbreviation:"Ln"},{name:"Mount",abbreviation:"Mt"},{name:"Place",abbreviation:"Pl"},{name:"Park",abbreviation:"Pk"},{name:"Ridge",abbreviation:"Rdg"},{name:"Road",abbreviation:"Rd"},{name:"Square",abbreviation:"Sq"},{name:"Street",abbreviation:"St"},{name:"Terrace",abbreviation:"Ter"},{name:"Valley",abbreviation:"Val"}]},months:[{name:"January",short_name:"Jan",numeric:"01",days:31},{name:"February",short_name:"Feb",numeric:"02",days:28},{name:"March",short_name:"Mar",numeric:"03",days:31},{name:"April",short_name:"Apr",numeric:"04",days:30},{name:"May",short_name:"May",numeric:"05",days:31},{name:"June",short_name:"Jun",numeric:"06",days:30},{name:"July",short_name:"Jul",numeric:"07",days:31},{name:"August",short_name:"Aug",numeric:"08",days:31},{name:"September",short_name:"Sep",numeric:"09",days:30},{name:"October",short_name:"Oct",numeric:"10",days:31},{name:"November",short_name:"Nov",numeric:"11",days:30},{name:"December",short_name:"Dec",numeric:"12",days:31}],cc_types:[{name:"American Express",short_name:"amex",prefix:"34",length:15},{name:"Bankcard",short_name:"bankcard",prefix:"5610",length:16},{name:"China UnionPay",short_name:"chinaunion",prefix:"62",length:16},{name:"Diners Club Carte Blanche",short_name:"dccarte",prefix:"300",length:14},{name:"Diners Club enRoute",short_name:"dcenroute",prefix:"2014",length:15},{name:"Diners Club International",short_name:"dcintl",prefix:"36",length:14},{name:"Diners Club United States & Canada",short_name:"dcusc",prefix:"54",length:16},{name:"Discover Card",short_name:"discover",prefix:"6011",length:16},{name:"InstaPayment",short_name:"instapay",prefix:"637",length:16},{name:"JCB",short_name:"jcb",prefix:"3528",length:16},{name:"Laser",short_name:"laser",prefix:"6304",length:16},{name:"Maestro",short_name:"maestro",prefix:"5018",length:16},{name:"Mastercard",short_name:"mc",prefix:"51",length:16},{name:"Solo",short_name:"solo",prefix:"6334",length:16},{name:"Switch",short_name:"switch",prefix:"4903",length:16},{name:"Visa",short_name:"visa",prefix:"4",length:16},{name:"Visa Electron",short_name:"electron",prefix:"4026",length:16}],currency_types:[{code:"AED",name:"United Arab Emirates Dirham"},{code:"AFN",name:"Afghanistan Afghani"},{code:"ALL",name:"Albania Lek"},{code:"AMD",name:"Armenia Dram"},{code:"ANG",name:"Netherlands Antilles Guilder"},{code:"AOA",name:"Angola Kwanza"},{code:"ARS",name:"Argentina Peso"},{code:"AUD",name:"Australia Dollar"},{code:"AWG",name:"Aruba Guilder"},{code:"AZN",name:"Azerbaijan New Manat"},{code:"BAM",name:"Bosnia and Herzegovina Convertible Marka"},{code:"BBD",name:"Barbados Dollar"},{code:"BDT",name:"Bangladesh Taka"},{code:"BGN",name:"Bulgaria Lev"},{code:"BHD",name:"Bahrain Dinar"},{code:"BIF",name:"Burundi Franc"},{code:"BMD",name:"Bermuda Dollar"},{code:"BND",name:"Brunei Darussalam Dollar"},{code:"BOB",name:"Bolivia Boliviano"},{code:"BRL",name:"Brazil Real"},{code:"BSD",name:"Bahamas Dollar"},{code:"BTN",name:"Bhutan Ngultrum"},{code:"BWP",name:"Botswana Pula"},{code:"BYR",name:"Belarus Ruble"},{code:"BZD",name:"Belize Dollar"},{code:"CAD",name:"Canada Dollar"},{code:"CDF",name:"Congo/Kinshasa Franc"},{code:"CHF",name:"Switzerland Franc"},{code:"CLP",name:"Chile Peso"},{code:"CNY",name:"China Yuan Renminbi"},{code:"COP",name:"Colombia Peso"},{code:"CRC",name:"Costa Rica Colon"},{code:"CUC",name:"Cuba Convertible Peso"},{code:"CUP",name:"Cuba Peso"},{code:"CVE",name:"Cape Verde Escudo"},{code:"CZK",name:"Czech Republic Koruna"},{code:"DJF",name:"Djibouti Franc"},{code:"DKK",name:"Denmark Krone"},{code:"DOP",name:"Dominican Republic Peso"},{code:"DZD",name:"Algeria Dinar"},{code:"EGP",name:"Egypt Pound"},{code:"ERN",name:"Eritrea Nakfa"},{code:"ETB",name:"Ethiopia Birr"},{code:"EUR",name:"Euro Member Countries"},{code:"FJD",name:"Fiji Dollar"},{code:"FKP",name:"Falkland Islands (Malvinas) Pound"},{code:"GBP",name:"United Kingdom Pound"},{code:"GEL",name:"Georgia Lari"},{code:"GGP",name:"Guernsey Pound"},{code:"GHS",name:"Ghana Cedi"},{code:"GIP",name:"Gibraltar Pound"},{code:"GMD",name:"Gambia Dalasi"},{code:"GNF",name:"Guinea Franc"},{code:"GTQ",name:"Guatemala Quetzal"},{code:"GYD",name:"Guyana Dollar"},{code:"HKD",name:"Hong Kong Dollar"},{code:"HNL",name:"Honduras Lempira"},{code:"HRK",name:"Croatia Kuna"},{code:"HTG",name:"Haiti Gourde"},{code:"HUF",name:"Hungary Forint"},{code:"IDR",name:"Indonesia Rupiah"},{code:"ILS",name:"Israel Shekel"},{code:"IMP",name:"Isle of Man Pound"},{code:"INR",name:"India Rupee"},{code:"IQD",name:"Iraq Dinar"},{code:"IRR",name:"Iran Rial"},{code:"ISK",name:"Iceland Krona"},{code:"JEP",name:"Jersey Pound"},{code:"JMD",name:"Jamaica Dollar"},{code:"JOD",name:"Jordan Dinar"},{code:"JPY",name:"Japan Yen"},{code:"KES",name:"Kenya Shilling"},{code:"KGS",name:"Kyrgyzstan Som"},{code:"KHR",name:"Cambodia Riel"},{code:"KMF",name:"Comoros Franc"},{code:"KPW",name:"Korea (North) Won"},{code:"KRW",name:"Korea (South) Won"},{code:"KWD",name:"Kuwait Dinar"},{code:"KYD",name:"Cayman Islands Dollar"},{code:"KZT",name:"Kazakhstan Tenge"},{code:"LAK",name:"Laos Kip"},{code:"LBP",name:"Lebanon Pound"},{code:"LKR",name:"Sri Lanka Rupee"},{code:"LRD",name:"Liberia Dollar"},{code:"LSL",name:"Lesotho Loti"},{code:"LTL",name:"Lithuania Litas"},{code:"LYD",name:"Libya Dinar"},{code:"MAD",name:"Morocco Dirham"},{code:"MDL",name:"Moldova Leu"},{code:"MGA",name:"Madagascar Ariary"},{code:"MKD",name:"Macedonia Denar"},{code:"MMK",name:"Myanmar (Burma) Kyat"},{code:"MNT",name:"Mongolia Tughrik"},{code:"MOP",name:"Macau Pataca"},{code:"MRO",name:"Mauritania Ouguiya"},{code:"MUR",name:"Mauritius Rupee"},{code:"MVR",name:"Maldives (Maldive Islands) Rufiyaa"},{code:"MWK",name:"Malawi Kwacha"},{code:"MXN",name:"Mexico Peso"},{code:"MYR",name:"Malaysia Ringgit"},{code:"MZN",name:"Mozambique Metical"},{code:"NAD",name:"Namibia Dollar"},{code:"NGN",name:"Nigeria Naira"},{code:"NIO",name:"Nicaragua Cordoba"},{code:"NOK",name:"Norway Krone"},{code:"NPR",name:"Nepal Rupee"},{code:"NZD",name:"New Zealand Dollar"},{code:"OMR",name:"Oman Rial"},{code:"PAB",name:"Panama Balboa"},{code:"PEN",name:"Peru Nuevo Sol"},{code:"PGK",name:"Papua New Guinea Kina"},{code:"PHP",name:"Philippines Peso"},{code:"PKR",name:"Pakistan Rupee"},{code:"PLN",name:"Poland Zloty"},{code:"PYG",name:"Paraguay Guarani"},{code:"QAR",name:"Qatar Riyal"},{code:"RON",name:"Romania New Leu"},{code:"RSD",name:"Serbia Dinar"},{code:"RUB",name:"Russia Ruble"},{code:"RWF",name:"Rwanda Franc"},{code:"SAR",name:"Saudi Arabia Riyal"},{code:"SBD",name:"Solomon Islands Dollar"},{code:"SCR",name:"Seychelles Rupee"},{code:"SDG",name:"Sudan Pound"},{code:"SEK",name:"Sweden Krona"},{code:"SGD",name:"Singapore Dollar"},{code:"SHP",name:"Saint Helena Pound"},{code:"SLL",name:"Sierra Leone Leone"},{code:"SOS",name:"Somalia Shilling"},{code:"SPL",name:"Seborga Luigino"},{code:"SRD",name:"Suriname Dollar"},{code:"STD",name:"São Tomé and Príncipe Dobra"},{code:"SVC",name:"El Salvador Colon"},{code:"SYP",name:"Syria Pound"},{code:"SZL",name:"Swaziland Lilangeni"},{code:"THB",name:"Thailand Baht"},{code:"TJS",name:"Tajikistan Somoni"},{code:"TMT",name:"Turkmenistan Manat"},{code:"TND",name:"Tunisia Dinar"},{code:"TOP",name:"Tonga Pa'anga"},{code:"TRY",name:"Turkey Lira"},{code:"TTD",name:"Trinidad and Tobago Dollar"},{code:"TVD",name:"Tuvalu Dollar"},{code:"TWD",name:"Taiwan New Dollar"},{code:"TZS",name:"Tanzania Shilling"},{code:"UAH",name:"Ukraine Hryvnia"},{code:"UGX",name:"Uganda Shilling"},{code:"USD",name:"United States Dollar"},{code:"UYU",name:"Uruguay Peso"},{code:"UZS",name:"Uzbekistan Som"},{code:"VEF",name:"Venezuela Bolivar"},{code:"VND",name:"Viet Nam Dong"},{code:"VUV",name:"Vanuatu Vatu"},{code:"WST",name:"Samoa Tala"},{code:"XAF",name:"Communauté Financière Africaine (BEAC) CFA Franc BEAC"},{code:"XCD",name:"East Caribbean Dollar"},{code:"XDR",name:"International Monetary Fund (IMF) Special Drawing Rights"},{code:"XOF",name:"Communauté Financière Africaine (BCEAO) Franc"},{code:"XPF",name:"Comptoirs Français du Pacifique (CFP) Franc"},{code:"YER",name:"Yemen Rial"},{code:"ZAR",name:"South Africa Rand"},{code:"ZMW",name:"Zambia Kwacha"},{code:"ZWD",name:"Zimbabwe Dollar"}],colorNames:["AliceBlue","Black","Navy","DarkBlue","MediumBlue","Blue","DarkGreen","Green","Teal","DarkCyan","DeepSkyBlue","DarkTurquoise","MediumSpringGreen","Lime","SpringGreen","Aqua","Cyan","MidnightBlue","DodgerBlue","LightSeaGreen","ForestGreen","SeaGreen","DarkSlateGray","LimeGreen","MediumSeaGreen","Turquoise","RoyalBlue","SteelBlue","DarkSlateBlue","MediumTurquoise","Indigo","DarkOliveGreen","CadetBlue","CornflowerBlue","RebeccaPurple","MediumAquaMarine","DimGray","SlateBlue","OliveDrab","SlateGray","LightSlateGray","MediumSlateBlue","LawnGreen","Chartreuse","Aquamarine","Maroon","Purple","Olive","Gray","SkyBlue","LightSkyBlue","BlueViolet","DarkRed","DarkMagenta","SaddleBrown","Ivory","White","DarkSeaGreen","LightGreen","MediumPurple","DarkViolet","PaleGreen","DarkOrchid","YellowGreen","Sienna","Brown","DarkGray","LightBlue","GreenYellow","PaleTurquoise","LightSteelBlue","PowderBlue","FireBrick","DarkGoldenRod","MediumOrchid","RosyBrown","DarkKhaki","Silver","MediumVioletRed","IndianRed","Peru","Chocolate","Tan","LightGray","Thistle","Orchid","GoldenRod","PaleVioletRed","Crimson","Gainsboro","Plum","BurlyWood","LightCyan","Lavender","DarkSalmon","Violet","PaleGoldenRod","LightCoral","Khaki","AliceBlue","HoneyDew","Azure","SandyBrown","Wheat","Beige","WhiteSmoke","MintCream","GhostWhite","Salmon","AntiqueWhite","Linen","LightGoldenRodYellow","OldLace","Red","Fuchsia","Magenta","DeepPink","OrangeRed","Tomato","HotPink","Coral","DarkOrange","LightSalmon","Orange","LightPink","Pink","Gold","PeachPuff","NavajoWhite","Moccasin","Bisque","MistyRose","BlanchedAlmond","PapayaWhip","LavenderBlush","SeaShell","Cornsilk","LemonChiffon","FloralWhite","Snow","Yellow","LightYellow"],company:["3Com Corp","3M Company","A.G. Edwards Inc.","Abbott Laboratories","Abercrombie & Fitch Co.","ABM Industries Incorporated","Ace Hardware Corporation","ACT Manufacturing Inc.","Acterna Corp.","Adams Resources & Energy, Inc.","ADC Telecommunications, Inc.","Adelphia Communications Corporation","Administaff, Inc.","Adobe Systems Incorporated","Adolph Coors Company","Advance Auto Parts, Inc.","Advanced Micro Devices, Inc.","AdvancePCS, Inc.","Advantica Restaurant Group, Inc.","The AES Corporation","Aetna Inc.","Affiliated Computer Services, Inc.","AFLAC Incorporated","AGCO Corporation","Agilent Technologies, Inc.","Agway Inc.","Apartment Investment and Management Company","Air Products and Chemicals, Inc.","Airborne, Inc.","Airgas, Inc.","AK Steel Holding Corporation","Alaska Air Group, Inc.","Alberto-Culver Company","Albertson's, Inc.","Alcoa Inc.","Alleghany Corporation","Allegheny Energy, Inc.","Allegheny Technologies Incorporated","Allergan, Inc.","ALLETE, Inc.","Alliant Energy Corporation","Allied Waste Industries, Inc.","Allmerica Financial Corporation","The Allstate Corporation","ALLTEL Corporation","The Alpine Group, Inc.","Amazon.com, Inc.","AMC Entertainment Inc.","American Power Conversion Corporation","Amerada Hess Corporation","AMERCO","Ameren Corporation","America West Holdings Corporation","American Axle & Manufacturing Holdings, Inc.","American Eagle Outfitters, Inc.","American Electric Power Company, Inc.","American Express Company","American Financial Group, Inc.","American Greetings Corporation","American International Group, Inc.","American Standard Companies Inc.","American Water Works Company, Inc.","AmerisourceBergen Corporation","Ames Department Stores, Inc.","Amgen Inc.","Amkor Technology, Inc.","AMR Corporation","AmSouth Bancorp.","Amtran, Inc.","Anadarko Petroleum Corporation","Analog Devices, Inc.","Anheuser-Busch Companies, Inc.","Anixter International Inc.","AnnTaylor Inc.","Anthem, Inc.","AOL Time Warner Inc.","Aon Corporation","Apache Corporation","Apple Computer, Inc.","Applera Corporation","Applied Industrial Technologies, Inc.","Applied Materials, Inc.","Aquila, Inc.","ARAMARK Corporation","Arch Coal, Inc.","Archer Daniels Midland Company","Arkansas Best Corporation","Armstrong Holdings, Inc.","Arrow Electronics, Inc.","ArvinMeritor, Inc.","Ashland Inc.","Astoria Financial Corporation","AT&T Corp.","Atmel Corporation","Atmos Energy Corporation","Audiovox Corporation","Autoliv, Inc.","Automatic Data Processing, Inc.","AutoNation, Inc.","AutoZone, Inc.","Avaya Inc.","Avery Dennison Corporation","Avista Corporation","Avnet, Inc.","Avon Products, Inc.","Baker Hughes Incorporated","Ball Corporation","Bank of America Corporation","The Bank of New York Company, Inc.","Bank One Corporation","Banknorth Group, Inc.","Banta Corporation","Barnes & Noble, Inc.","Bausch & Lomb Incorporated","Baxter International Inc.","BB&T Corporation","The Bear Stearns Companies Inc.","Beazer Homes USA, Inc.","Beckman Coulter, Inc.","Becton, Dickinson and Company","Bed Bath & Beyond Inc.","Belk, Inc.","Bell Microproducts Inc.","BellSouth Corporation","Belo Corp.","Bemis Company, Inc.","Benchmark Electronics, Inc.","Berkshire Hathaway Inc.","Best Buy Co., Inc.","Bethlehem Steel Corporation","Beverly Enterprises, Inc.","Big Lots, Inc.","BJ Services Company","BJ's Wholesale Club, Inc.","The Black & Decker Corporation","Black Hills Corporation","BMC Software, Inc.","The Boeing Company","Boise Cascade Corporation","Borders Group, Inc.","BorgWarner Inc.","Boston Scientific Corporation","Bowater Incorporated","Briggs & Stratton Corporation","Brightpoint, Inc.","Brinker International, Inc.","Bristol-Myers Squibb Company","Broadwing, Inc.","Brown Shoe Company, Inc.","Brown-Forman Corporation","Brunswick Corporation","Budget Group, Inc.","Burlington Coat Factory Warehouse Corporation","Burlington Industries, Inc.","Burlington Northern Santa Fe Corporation","Burlington Resources Inc.","C. H. Robinson Worldwide Inc.","Cablevision Systems Corp","Cabot Corp","Cadence Design Systems, Inc.","Calpine Corp.","Campbell Soup Co.","Capital One Financial Corp.","Cardinal Health Inc.","Caremark Rx Inc.","Carlisle Cos. Inc.","Carpenter Technology Corp.","Casey's General Stores Inc.","Caterpillar Inc.","CBRL Group Inc.","CDI Corp.","CDW Computer Centers Inc.","CellStar Corp.","Cendant Corp","Cenex Harvest States Cooperatives","Centex Corp.","CenturyTel Inc.","Ceridian Corp.","CH2M Hill Cos. Ltd.","Champion Enterprises Inc.","Charles Schwab Corp.","Charming Shoppes Inc.","Charter Communications Inc.","Charter One Financial Inc.","ChevronTexaco Corp.","Chiquita Brands International Inc.","Chubb Corp","Ciena Corp.","Cigna Corp","Cincinnati Financial Corp.","Cinergy Corp.","Cintas Corp.","Circuit City Stores Inc.","Cisco Systems Inc.","Citigroup, Inc","Citizens Communications Co.","CKE Restaurants Inc.","Clear Channel Communications Inc.","The Clorox Co.","CMGI Inc.","CMS Energy Corp.","CNF Inc.","Coca-Cola Co.","Coca-Cola Enterprises Inc.","Colgate-Palmolive Co.","Collins & Aikman Corp.","Comcast Corp.","Comdisco Inc.","Comerica Inc.","Comfort Systems USA Inc.","Commercial Metals Co.","Community Health Systems Inc.","Compass Bancshares Inc","Computer Associates International Inc.","Computer Sciences Corp.","Compuware Corp.","Comverse Technology Inc.","ConAgra Foods Inc.","Concord EFS Inc.","Conectiv, Inc","Conoco Inc","Conseco Inc.","Consolidated Freightways Corp.","Consolidated Edison Inc.","Constellation Brands Inc.","Constellation Emergy Group Inc.","Continental Airlines Inc.","Convergys Corp.","Cooper Cameron Corp.","Cooper Industries Ltd.","Cooper Tire & Rubber Co.","Corn Products International Inc.","Corning Inc.","Costco Wholesale Corp.","Countrywide Credit Industries Inc.","Coventry Health Care Inc.","Cox Communications Inc.","Crane Co.","Crompton Corp.","Crown Cork & Seal Co. Inc.","CSK Auto Corp.","CSX Corp.","Cummins Inc.","CVS Corp.","Cytec Industries Inc.","D&K Healthcare Resources, Inc.","D.R. Horton Inc.","Dana Corporation","Danaher Corporation","Darden Restaurants Inc.","DaVita Inc.","Dean Foods Company","Deere & Company","Del Monte Foods Co","Dell Computer Corporation","Delphi Corp.","Delta Air Lines Inc.","Deluxe Corporation","Devon Energy Corporation","Di Giorgio Corporation","Dial Corporation","Diebold Incorporated","Dillard's Inc.","DIMON Incorporated","Dole Food Company, Inc.","Dollar General Corporation","Dollar Tree Stores, Inc.","Dominion Resources, Inc.","Domino's Pizza LLC","Dover Corporation, Inc.","Dow Chemical Company","Dow Jones & Company, Inc.","DPL Inc.","DQE Inc.","Dreyer's Grand Ice Cream, Inc.","DST Systems, Inc.","DTE Energy Co.","E.I. Du Pont de Nemours and Company","Duke Energy Corp","Dun & Bradstreet Inc.","DURA Automotive Systems Inc.","DynCorp","Dynegy Inc.","E*Trade Group, Inc.","E.W. Scripps Company","Earthlink, Inc.","Eastman Chemical Company","Eastman Kodak Company","Eaton Corporation","Echostar Communications Corporation","Ecolab Inc.","Edison International","EGL Inc.","El Paso Corporation","Electronic Arts Inc.","Electronic Data Systems Corp.","Eli Lilly and Company","EMC Corporation","Emcor Group Inc.","Emerson Electric Co.","Encompass Services Corporation","Energizer Holdings Inc.","Energy East Corporation","Engelhard Corporation","Enron Corp.","Entergy Corporation","Enterprise Products Partners L.P.","EOG Resources, Inc.","Equifax Inc.","Equitable Resources Inc.","Equity Office Properties Trust","Equity Residential Properties Trust","Estee Lauder Companies Inc.","Exelon Corporation","Exide Technologies","Expeditors International of Washington Inc.","Express Scripts Inc.","ExxonMobil Corporation","Fairchild Semiconductor International Inc.","Family Dollar Stores Inc.","Farmland Industries Inc.","Federal Mogul Corp.","Federated Department Stores Inc.","Federal Express Corp.","Felcor Lodging Trust Inc.","Ferro Corp.","Fidelity National Financial Inc.","Fifth Third Bancorp","First American Financial Corp.","First Data Corp.","First National of Nebraska Inc.","First Tennessee National Corp.","FirstEnergy Corp.","Fiserv Inc.","Fisher Scientific International Inc.","FleetBoston Financial Co.","Fleetwood Enterprises Inc.","Fleming Companies Inc.","Flowers Foods Inc.","Flowserv Corp","Fluor Corp","FMC Corp","Foamex International Inc","Foot Locker Inc","Footstar Inc.","Ford Motor Co","Forest Laboratories Inc.","Fortune Brands Inc.","Foster Wheeler Ltd.","FPL Group Inc.","Franklin Resources Inc.","Freeport McMoran Copper & Gold Inc.","Frontier Oil Corp","Furniture Brands International Inc.","Gannett Co., Inc.","Gap Inc.","Gateway Inc.","GATX Corporation","Gemstar-TV Guide International Inc.","GenCorp Inc.","General Cable Corporation","General Dynamics Corporation","General Electric Company","General Mills Inc","General Motors Corporation","Genesis Health Ventures Inc.","Gentek Inc.","Gentiva Health Services Inc.","Genuine Parts Company","Genuity Inc.","Genzyme Corporation","Georgia Gulf Corporation","Georgia-Pacific Corporation","Gillette Company","Gold Kist Inc.","Golden State Bancorp Inc.","Golden West Financial Corporation","Goldman Sachs Group Inc.","Goodrich Corporation","The Goodyear Tire & Rubber Company","Granite Construction Incorporated","Graybar Electric Company Inc.","Great Lakes Chemical Corporation","Great Plains Energy Inc.","GreenPoint Financial Corp.","Greif Bros. Corporation","Grey Global Group Inc.","Group 1 Automotive Inc.","Guidant Corporation","H&R Block Inc.","H.B. Fuller Company","H.J. Heinz Company","Halliburton Co.","Harley-Davidson Inc.","Harman International Industries Inc.","Harrah's Entertainment Inc.","Harris Corp.","Harsco Corp.","Hartford Financial Services Group Inc.","Hasbro Inc.","Hawaiian Electric Industries Inc.","HCA Inc.","Health Management Associates Inc.","Health Net Inc.","Healthsouth Corp","Henry Schein Inc.","Hercules Inc.","Herman Miller Inc.","Hershey Foods Corp.","Hewlett-Packard Company","Hibernia Corp.","Hillenbrand Industries Inc.","Hilton Hotels Corp.","Hollywood Entertainment Corp.","Home Depot Inc.","Hon Industries Inc.","Honeywell International Inc.","Hormel Foods Corp.","Host Marriott Corp.","Household International Corp.","Hovnanian Enterprises Inc.","Hub Group Inc.","Hubbell Inc.","Hughes Supply Inc.","Humana Inc.","Huntington Bancshares Inc.","Idacorp Inc.","IDT Corporation","IKON Office Solutions Inc.","Illinois Tool Works Inc.","IMC Global Inc.","Imperial Sugar Company","IMS Health Inc.","Ingles Market Inc","Ingram Micro Inc.","Insight Enterprises Inc.","Integrated Electrical Services Inc.","Intel Corporation","International Paper Co.","Interpublic Group of Companies Inc.","Interstate Bakeries Corporation","International Business Machines Corp.","International Flavors & Fragrances Inc.","International Multifoods Corporation","Intuit Inc.","IT Group Inc.","ITT Industries Inc.","Ivax Corp.","J.B. Hunt Transport Services Inc.","J.C. Penny Co.","J.P. Morgan Chase & Co.","Jabil Circuit Inc.","Jack In The Box Inc.","Jacobs Engineering Group Inc.","JDS Uniphase Corp.","Jefferson-Pilot Co.","John Hancock Financial Services Inc.","Johnson & Johnson","Johnson Controls Inc.","Jones Apparel Group Inc.","KB Home","Kellogg Company","Kellwood Company","Kelly Services Inc.","Kemet Corp.","Kennametal Inc.","Kerr-McGee Corporation","KeyCorp","KeySpan Corp.","Kimball International Inc.","Kimberly-Clark Corporation","Kindred Healthcare Inc.","KLA-Tencor Corporation","K-Mart Corp.","Knight-Ridder Inc.","Kohl's Corp.","KPMG Consulting Inc.","Kroger Co.","L-3 Communications Holdings Inc.","Laboratory Corporation of America Holdings","Lam Research Corporation","LandAmerica Financial Group Inc.","Lands' End Inc.","Landstar System Inc.","La-Z-Boy Inc.","Lear Corporation","Legg Mason Inc.","Leggett & Platt Inc.","Lehman Brothers Holdings Inc.","Lennar Corporation","Lennox International Inc.","Level 3 Communications Inc.","Levi Strauss & Co.","Lexmark International Inc.","Limited Inc.","Lincoln National Corporation","Linens 'n Things Inc.","Lithia Motors Inc.","Liz Claiborne Inc.","Lockheed Martin Corporation","Loews Corporation","Longs Drug Stores Corporation","Louisiana-Pacific Corporation","Lowe's Companies Inc.","LSI Logic Corporation","The LTV Corporation","The Lubrizol Corporation","Lucent Technologies Inc.","Lyondell Chemical Company","M & T Bank Corporation","Magellan Health Services Inc.","Mail-Well Inc.","Mandalay Resort Group","Manor Care Inc.","Manpower Inc.","Marathon Oil Corporation","Mariner Health Care Inc.","Markel Corporation","Marriott International Inc.","Marsh & McLennan Companies Inc.","Marsh Supermarkets Inc.","Marshall & Ilsley Corporation","Martin Marietta Materials Inc.","Masco Corporation","Massey Energy Company","MasTec Inc.","Mattel Inc.","Maxim Integrated Products Inc.","Maxtor Corporation","Maxxam Inc.","The May Department Stores Company","Maytag Corporation","MBNA Corporation","McCormick & Company Incorporated","McDonald's Corporation","The McGraw-Hill Companies Inc.","McKesson Corporation","McLeodUSA Incorporated","M.D.C. Holdings Inc.","MDU Resources Group Inc.","MeadWestvaco Corporation","Medtronic Inc.","Mellon Financial Corporation","The Men's Wearhouse Inc.","Merck & Co., Inc.","Mercury General Corporation","Merrill Lynch & Co. Inc.","Metaldyne Corporation","Metals USA Inc.","MetLife Inc.","Metris Companies Inc","MGIC Investment Corporation","MGM Mirage","Michaels Stores Inc.","Micron Technology Inc.","Microsoft Corporation","Milacron Inc.","Millennium Chemicals Inc.","Mirant Corporation","Mohawk Industries Inc.","Molex Incorporated","The MONY Group Inc.","Morgan Stanley Dean Witter & Co.","Motorola Inc.","MPS Group Inc.","Murphy Oil Corporation","Nabors Industries Inc","Nacco Industries Inc","Nash Finch Company","National City Corp.","National Commerce Financial Corporation","National Fuel Gas Company","National Oilwell Inc","National Rural Utilities Cooperative Finance Corporation","National Semiconductor Corporation","National Service Industries Inc","Navistar International Corporation","NCR Corporation","The Neiman Marcus Group Inc.","New Jersey Resources Corporation","New York Times Company","Newell Rubbermaid Inc","Newmont Mining Corporation","Nextel Communications Inc","Nicor Inc","Nike Inc","NiSource Inc","Noble Energy Inc","Nordstrom Inc","Norfolk Southern Corporation","Nortek Inc","North Fork Bancorporation Inc","Northeast Utilities System","Northern Trust Corporation","Northrop Grumman Corporation","NorthWestern Corporation","Novellus Systems Inc","NSTAR","NTL Incorporated","Nucor Corp","Nvidia Corp","NVR Inc","Northwest Airlines Corp","Occidental Petroleum Corp","Ocean Energy Inc","Office Depot Inc.","OfficeMax Inc","OGE Energy Corp","Oglethorpe Power Corp.","Ohio Casualty Corp.","Old Republic International Corp.","Olin Corp.","OM Group Inc","Omnicare Inc","Omnicom Group","On Semiconductor Corp","ONEOK Inc","Oracle Corp","Oshkosh Truck Corp","Outback Steakhouse Inc.","Owens & Minor Inc.","Owens Corning","Owens-Illinois Inc","Oxford Health Plans Inc","Paccar Inc","PacifiCare Health Systems Inc","Packaging Corp. of America","Pactiv Corp","Pall Corp","Pantry Inc","Park Place Entertainment Corp","Parker Hannifin Corp.","Pathmark Stores Inc.","Paychex Inc","Payless Shoesource Inc","Penn Traffic Co.","Pennzoil-Quaker State Company","Pentair Inc","Peoples Energy Corp.","PeopleSoft Inc","Pep Boys Manny, Moe & Jack","Potomac Electric Power Co.","Pepsi Bottling Group Inc.","PepsiAmericas Inc.","PepsiCo Inc.","Performance Food Group Co.","Perini Corp","PerkinElmer Inc","Perot Systems Corp","Petco Animal Supplies Inc.","Peter Kiewit Sons', Inc.","PETsMART Inc","Pfizer Inc","Pacific Gas & Electric Corp.","Pharmacia Corp","Phar Mor Inc.","Phelps Dodge Corp.","Philip Morris Companies Inc.","Phillips Petroleum Co","Phillips Van Heusen Corp.","Phoenix Companies Inc","Pier 1 Imports Inc.","Pilgrim's Pride Corporation","Pinnacle West Capital Corp","Pioneer-Standard Electronics Inc.","Pitney Bowes Inc.","Pittston Brinks Group","Plains All American Pipeline LP","PNC Financial Services Group Inc.","PNM Resources Inc","Polaris Industries Inc.","Polo Ralph Lauren Corp","PolyOne Corp","Popular Inc","Potlatch Corp","PPG Industries Inc","PPL Corp","Praxair Inc","Precision Castparts Corp","Premcor Inc.","Pride International Inc","Primedia Inc","Principal Financial Group Inc.","Procter & Gamble Co.","Pro-Fac Cooperative Inc.","Progress Energy Inc","Progressive Corporation","Protective Life Corp","Provident Financial Group","Providian Financial Corp.","Prudential Financial Inc.","PSS World Medical Inc","Public Service Enterprise Group Inc.","Publix Super Markets Inc.","Puget Energy Inc.","Pulte Homes Inc","Qualcomm Inc","Quanta Services Inc.","Quantum Corp","Quest Diagnostics Inc.","Questar Corp","Quintiles Transnational","Qwest Communications Intl Inc","R.J. Reynolds Tobacco Company","R.R. Donnelley & Sons Company","Radio Shack Corporation","Raymond James Financial Inc.","Raytheon Company","Reader's Digest Association Inc.","Reebok International Ltd.","Regions Financial Corp.","Regis Corporation","Reliance Steel & Aluminum Co.","Reliant Energy Inc.","Rent A Center Inc","Republic Services Inc","Revlon Inc","RGS Energy Group Inc","Rite Aid Corp","Riverwood Holding Inc.","RoadwayCorp","Robert Half International Inc.","Rock-Tenn Co","Rockwell Automation Inc","Rockwell Collins Inc","Rohm & Haas Co.","Ross Stores Inc","RPM Inc.","Ruddick Corp","Ryder System Inc","Ryerson Tull Inc","Ryland Group Inc.","Sabre Holdings Corp","Safeco Corp","Safeguard Scientifics Inc.","Safeway Inc","Saks Inc","Sanmina-SCI Inc","Sara Lee Corp","SBC Communications Inc","Scana Corp.","Schering-Plough Corp","Scholastic Corp","SCI Systems Onc.","Science Applications Intl. Inc.","Scientific-Atlanta Inc","Scotts Company","Seaboard Corp","Sealed Air Corp","Sears Roebuck & Co","Sempra Energy","Sequa Corp","Service Corp. International","ServiceMaster Co","Shaw Group Inc","Sherwin-Williams Company","Shopko Stores Inc","Siebel Systems Inc","Sierra Health Services Inc","Sierra Pacific Resources","Silgan Holdings Inc.","Silicon Graphics Inc","Simon Property Group Inc","SLM Corporation","Smith International Inc","Smithfield Foods Inc","Smurfit-Stone Container Corp","Snap-On Inc","Solectron Corp","Solutia Inc","Sonic Automotive Inc.","Sonoco Products Co.","Southern Company","Southern Union Company","SouthTrust Corp.","Southwest Airlines Co","Southwest Gas Corp","Sovereign Bancorp Inc.","Spartan Stores Inc","Spherion Corp","Sports Authority Inc","Sprint Corp.","SPX Corp","St. Jude Medical Inc","St. Paul Cos.","Staff Leasing Inc.","StanCorp Financial Group Inc","Standard Pacific Corp.","Stanley Works","Staples Inc","Starbucks Corp","Starwood Hotels & Resorts Worldwide Inc","State Street Corp.","Stater Bros. Holdings Inc.","Steelcase Inc","Stein Mart Inc","Stewart & Stevenson Services Inc","Stewart Information Services Corp","Stilwell Financial Inc","Storage Technology Corporation","Stryker Corp","Sun Healthcare Group Inc.","Sun Microsystems Inc.","SunGard Data Systems Inc.","Sunoco Inc.","SunTrust Banks Inc","Supervalu Inc","Swift Transportation, Co., Inc","Symbol Technologies Inc","Synovus Financial Corp.","Sysco Corp","Systemax Inc.","Target Corp.","Tech Data Corporation","TECO Energy Inc","Tecumseh Products Company","Tektronix Inc","Teleflex Incorporated","Telephone & Data Systems Inc","Tellabs Inc.","Temple-Inland Inc","Tenet Healthcare Corporation","Tenneco Automotive Inc.","Teradyne Inc","Terex Corp","Tesoro Petroleum Corp.","Texas Industries Inc.","Texas Instruments Incorporated","Textron Inc","Thermo Electron Corporation","Thomas & Betts Corporation","Tiffany & Co","Timken Company","TJX Companies Inc","TMP Worldwide Inc","Toll Brothers Inc","Torchmark Corporation","Toro Company","Tower Automotive Inc.","Toys 'R' Us Inc","Trans World Entertainment Corp.","TransMontaigne Inc","Transocean Inc","TravelCenters of America Inc.","Triad Hospitals Inc","Tribune Company","Trigon Healthcare Inc.","Trinity Industries Inc","Trump Hotels & Casino Resorts Inc.","TruServ Corporation","TRW Inc","TXU Corp","Tyson Foods Inc","U.S. Bancorp","U.S. Industries Inc.","UAL Corporation","UGI Corporation","Unified Western Grocers Inc","Union Pacific Corporation","Union Planters Corp","Unisource Energy Corp","Unisys Corporation","United Auto Group Inc","United Defense Industries Inc.","United Parcel Service Inc","United Rentals Inc","United Stationers Inc","United Technologies Corporation","UnitedHealth Group Incorporated","Unitrin Inc","Universal Corporation","Universal Forest Products Inc","Universal Health Services Inc","Unocal Corporation","Unova Inc","UnumProvident Corporation","URS Corporation","US Airways Group Inc","US Oncology Inc","USA Interactive","USFreighways Corporation","USG Corporation","UST Inc","Valero Energy Corporation","Valspar Corporation","Value City Department Stores Inc","Varco International Inc","Vectren Corporation","Veritas Software Corporation","Verizon Communications Inc","VF Corporation","Viacom Inc","Viad Corp","Viasystems Group Inc","Vishay Intertechnology Inc","Visteon Corporation","Volt Information Sciences Inc","Vulcan Materials Company","W.R. Berkley Corporation","W.R. Grace & Co","W.W. Grainger Inc","Wachovia Corporation","Wakenhut Corporation","Walgreen Co","Wallace Computer Services Inc","Wal-Mart Stores Inc","Walt Disney Co","Walter Industries Inc","Washington Mutual Inc","Washington Post Co.","Waste Management Inc","Watsco Inc","Weatherford International Inc","Weis Markets Inc.","Wellpoint Health Networks Inc","Wells Fargo & Company","Wendy's International Inc","Werner Enterprises Inc","WESCO International Inc","Western Digital Inc","Western Gas Resources Inc","WestPoint Stevens Inc","Weyerhauser Company","WGL Holdings Inc","Whirlpool Corporation","Whole Foods Market Inc","Willamette Industries Inc.","Williams Companies Inc","Williams Sonoma Inc","Winn Dixie Stores Inc","Wisconsin Energy Corporation","Wm Wrigley Jr Company","World Fuel Services Corporation","WorldCom Inc","Worthington Industries Inc","WPS Resources Corporation","Wyeth","Wyndham International Inc","Xcel Energy Inc","Xerox Corp","Xilinx Inc","XO Communications Inc","Yellow Corporation","York International Corp","Yum Brands Inc.","Zale Corporation","Zions Bancorporation"],fileExtension:{raster:["bmp","gif","gpl","ico","jpeg","psd","png","psp","raw","tiff"],vector:["3dv","amf","awg","ai","cgm","cdr","cmx","dxf","e2d","egt","eps","fs","odg","svg","xar"],"3d":["3dmf","3dm","3mf","3ds","an8","aoi","blend","cal3d","cob","ctm","iob","jas","max","mb","mdx","obj","x","x3d"],document:["doc","docx","dot","html","xml","odt","odm","ott","csv","rtf","tex","xhtml","xps"]},timezones:[{name:"Dateline Standard Time",abbr:"DST",offset:-12,isdst:!1,text:"(UTC-12:00) International Date Line West",utc:["Etc/GMT+12"]},{name:"UTC-11",abbr:"U",offset:-11,isdst:!1,text:"(UTC-11:00) Coordinated Universal Time-11",utc:["Etc/GMT+11","Pacific/Midway","Pacific/Niue","Pacific/Pago_Pago"]},{name:"Hawaiian Standard Time",abbr:"HST",offset:-10,isdst:!1,text:"(UTC-10:00) Hawaii",utc:["Etc/GMT+10","Pacific/Honolulu","Pacific/Johnston","Pacific/Rarotonga","Pacific/Tahiti"]},{name:"Alaskan Standard Time",abbr:"AKDT",offset:-8,isdst:!0,text:"(UTC-09:00) Alaska",utc:["America/Anchorage","America/Juneau","America/Nome","America/Sitka","America/Yakutat"]},{name:"Pacific Standard Time (Mexico)",abbr:"PDT",offset:-7,isdst:!0,text:"(UTC-08:00) Baja California",utc:["America/Santa_Isabel"]},{name:"Pacific Standard Time",abbr:"PDT",offset:-7,isdst:!0,text:"(UTC-08:00) Pacific Time (US & Canada)",utc:["America/Dawson","America/Los_Angeles","America/Tijuana","America/Vancouver","America/Whitehorse","PST8PDT"]},{name:"US Mountain Standard Time",abbr:"UMST",offset:-7,isdst:!1,text:"(UTC-07:00) Arizona",utc:["America/Creston","America/Dawson_Creek","America/Hermosillo","America/Phoenix","Etc/GMT+7"]},{name:"Mountain Standard Time (Mexico)",abbr:"MDT",offset:-6,isdst:!0,text:"(UTC-07:00) Chihuahua, La Paz, Mazatlan",utc:["America/Chihuahua","America/Mazatlan"]},{name:"Mountain Standard Time",abbr:"MDT",offset:-6,isdst:!0,text:"(UTC-07:00) Mountain Time (US & Canada)",utc:["America/Boise","America/Cambridge_Bay","America/Denver","America/Edmonton","America/Inuvik","America/Ojinaga","America/Yellowknife","MST7MDT"]},{name:"Central America Standard Time",abbr:"CAST",offset:-6,isdst:!1,text:"(UTC-06:00) Central America",utc:["America/Belize","America/Costa_Rica","America/El_Salvador","America/Guatemala","America/Managua","America/Tegucigalpa","Etc/GMT+6","Pacific/Galapagos"]},{name:"Central Standard Time",abbr:"CDT",offset:-5,isdst:!0,text:"(UTC-06:00) Central Time (US & Canada)",utc:["America/Chicago","America/Indiana/Knox","America/Indiana/Tell_City","America/Matamoros","America/Menominee","America/North_Dakota/Beulah","America/North_Dakota/Center","America/North_Dakota/New_Salem","America/Rainy_River","America/Rankin_Inlet","America/Resolute","America/Winnipeg","CST6CDT"]},{name:"Central Standard Time (Mexico)",abbr:"CDT",offset:-5,isdst:!0,text:"(UTC-06:00) Guadalajara, Mexico City, Monterrey",utc:["America/Bahia_Banderas","America/Cancun","America/Merida","America/Mexico_City","America/Monterrey"]},{name:"Canada Central Standard Time",abbr:"CCST",offset:-6,isdst:!1,text:"(UTC-06:00) Saskatchewan",utc:["America/Regina","America/Swift_Current"]},{name:"SA Pacific Standard Time",abbr:"SPST",offset:-5,isdst:!1,text:"(UTC-05:00) Bogota, Lima, Quito",utc:["America/Bogota","America/Cayman","America/Coral_Harbour","America/Eirunepe","America/Guayaquil","America/Jamaica","America/Lima","America/Panama","America/Rio_Branco","Etc/GMT+5"]},{name:"Eastern Standard Time",abbr:"EDT",offset:-4,isdst:!0,text:"(UTC-05:00) Eastern Time (US & Canada)",utc:["America/Detroit","America/Havana","America/Indiana/Petersburg","America/Indiana/Vincennes","America/Indiana/Winamac","America/Iqaluit","America/Kentucky/Monticello","America/Louisville","America/Montreal","America/Nassau","America/New_York","America/Nipigon","America/Pangnirtung","America/Port-au-Prince","America/Thunder_Bay","America/Toronto","EST5EDT"]},{name:"US Eastern Standard Time",abbr:"UEDT",offset:-4,isdst:!0,text:"(UTC-05:00) Indiana (East)",utc:["America/Indiana/Marengo","America/Indiana/Vevay","America/Indianapolis"]},{name:"Venezuela Standard Time",abbr:"VST",offset:-4.5,isdst:!1,text:"(UTC-04:30) Caracas",utc:["America/Caracas"]},{name:"Paraguay Standard Time",abbr:"PST",offset:-4,isdst:!1,text:"(UTC-04:00) Asuncion",utc:["America/Asuncion"]},{name:"Atlantic Standard Time",abbr:"ADT",offset:-3,isdst:!0,text:"(UTC-04:00) Atlantic Time (Canada)",utc:["America/Glace_Bay","America/Goose_Bay","America/Halifax","America/Moncton","America/Thule","Atlantic/Bermuda"]},{name:"Central Brazilian Standard Time",abbr:"CBST",offset:-4,isdst:!1,text:"(UTC-04:00) Cuiaba",utc:["America/Campo_Grande","America/Cuiaba"]},{name:"SA Western Standard Time",abbr:"SWST",offset:-4,isdst:!1,text:"(UTC-04:00) Georgetown, La Paz, Manaus, San Juan",utc:["America/Anguilla","America/Antigua","America/Aruba","America/Barbados","America/Blanc-Sablon","America/Boa_Vista","America/Curacao","America/Dominica","America/Grand_Turk","America/Grenada","America/Guadeloupe","America/Guyana","America/Kralendijk","America/La_Paz","America/Lower_Princes","America/Manaus","America/Marigot","America/Martinique","America/Montserrat","America/Port_of_Spain","America/Porto_Velho","America/Puerto_Rico","America/Santo_Domingo","America/St_Barthelemy","America/St_Kitts","America/St_Lucia","America/St_Thomas","America/St_Vincent","America/Tortola","Etc/GMT+4"]},{name:"Pacific SA Standard Time",abbr:"PSST",offset:-4,isdst:!1,text:"(UTC-04:00) Santiago",utc:["America/Santiago","Antarctica/Palmer"]},{name:"Newfoundland Standard Time",abbr:"NDT",offset:-2.5,isdst:!0,text:"(UTC-03:30) Newfoundland",utc:["America/St_Johns"]},{name:"E. South America Standard Time",abbr:"ESAST",offset:-3,isdst:!1,text:"(UTC-03:00) Brasilia",utc:["America/Sao_Paulo"]},{name:"Argentina Standard Time",abbr:"AST",offset:-3,isdst:!1,text:"(UTC-03:00) Buenos Aires",utc:["America/Argentina/La_Rioja","America/Argentina/Rio_Gallegos","America/Argentina/Salta","America/Argentina/San_Juan","America/Argentina/San_Luis","America/Argentina/Tucuman","America/Argentina/Ushuaia","America/Buenos_Aires","America/Catamarca","America/Cordoba","America/Jujuy","America/Mendoza"]},{name:"SA Eastern Standard Time",abbr:"SEST",offset:-3,isdst:!1,text:"(UTC-03:00) Cayenne, Fortaleza",utc:["America/Araguaina","America/Belem","America/Cayenne","America/Fortaleza","America/Maceio","America/Paramaribo","America/Recife","America/Santarem","Antarctica/Rothera","Atlantic/Stanley","Etc/GMT+3"]},{name:"Greenland Standard Time",abbr:"GDT",offset:-2,isdst:!0,text:"(UTC-03:00) Greenland",utc:["America/Godthab"]},{name:"Montevideo Standard Time",abbr:"MST",offset:-3,isdst:!1,text:"(UTC-03:00) Montevideo",utc:["America/Montevideo"]},{name:"Bahia Standard Time",abbr:"BST",offset:-3,isdst:!1,text:"(UTC-03:00) Salvador",utc:["America/Bahia"]},{name:"UTC-02",abbr:"U",offset:-2,isdst:!1,text:"(UTC-02:00) Coordinated Universal Time-02",utc:["America/Noronha","Atlantic/South_Georgia","Etc/GMT+2"]},{name:"Mid-Atlantic Standard Time",abbr:"MDT",offset:-1,isdst:!0,text:"(UTC-02:00) Mid-Atlantic - Old"},{name:"Azores Standard Time",abbr:"ADT",offset:0,isdst:!0,text:"(UTC-01:00) Azores",utc:["America/Scoresbysund","Atlantic/Azores"]},{name:"Cape Verde Standard Time",abbr:"CVST",offset:-1,isdst:!1,text:"(UTC-01:00) Cape Verde Is.",utc:["Atlantic/Cape_Verde","Etc/GMT+1"]},{name:"Morocco Standard Time",abbr:"MDT",offset:1,isdst:!0,text:"(UTC) Casablanca",utc:["Africa/Casablanca","Africa/El_Aaiun"]},{name:"UTC",abbr:"CUT",offset:0,isdst:!1,text:"(UTC) Coordinated Universal Time",utc:["America/Danmarkshavn","Etc/GMT"]},{name:"GMT Standard Time",abbr:"GDT",offset:1,isdst:!0,text:"(UTC) Dublin, Edinburgh, Lisbon, London",utc:["Atlantic/Canary","Atlantic/Faeroe","Atlantic/Madeira","Europe/Dublin","Europe/Guernsey","Europe/Isle_of_Man","Europe/Jersey","Europe/Lisbon","Europe/London"]},{name:"Greenwich Standard Time",abbr:"GST",offset:0,isdst:!1,text:"(UTC) Monrovia, Reykjavik",utc:["Africa/Abidjan","Africa/Accra","Africa/Bamako","Africa/Banjul","Africa/Bissau","Africa/Conakry","Africa/Dakar","Africa/Freetown","Africa/Lome","Africa/Monrovia","Africa/Nouakchott","Africa/Ouagadougou","Africa/Sao_Tome","Atlantic/Reykjavik","Atlantic/St_Helena"]},{name:"W. Europe Standard Time",abbr:"WEDT",offset:2,isdst:!0,text:"(UTC+01:00) Amsterdam, Berlin, Bern, Rome, Stockholm, Vienna",utc:["Arctic/Longyearbyen","Europe/Amsterdam","Europe/Andorra","Europe/Berlin","Europe/Busingen","Europe/Gibraltar","Europe/Luxembourg","Europe/Malta","Europe/Monaco","Europe/Oslo","Europe/Rome","Europe/San_Marino","Europe/Stockholm","Europe/Vaduz","Europe/Vatican","Europe/Vienna","Europe/Zurich"]},{name:"Central Europe Standard Time",abbr:"CEDT",offset:2,isdst:!0,text:"(UTC+01:00) Belgrade, Bratislava, Budapest, Ljubljana, Prague",utc:["Europe/Belgrade","Europe/Bratislava","Europe/Budapest","Europe/Ljubljana","Europe/Podgorica","Europe/Prague","Europe/Tirane"]},{name:"Romance Standard Time",abbr:"RDT",offset:2,isdst:!0,text:"(UTC+01:00) Brussels, Copenhagen, Madrid, Paris",utc:["Africa/Ceuta","Europe/Brussels","Europe/Copenhagen","Europe/Madrid","Europe/Paris"]},{name:"Central European Standard Time",abbr:"CEDT",offset:2,isdst:!0,text:"(UTC+01:00) Sarajevo, Skopje, Warsaw, Zagreb",utc:["Europe/Sarajevo","Europe/Skopje","Europe/Warsaw","Europe/Zagreb"]},{name:"W. Central Africa Standard Time",abbr:"WCAST",offset:1,isdst:!1,text:"(UTC+01:00) West Central Africa",utc:["Africa/Algiers","Africa/Bangui","Africa/Brazzaville","Africa/Douala","Africa/Kinshasa","Africa/Lagos","Africa/Libreville","Africa/Luanda","Africa/Malabo","Africa/Ndjamena","Africa/Niamey","Africa/Porto-Novo","Africa/Tunis","Etc/GMT-1"]},{name:"Namibia Standard Time",abbr:"NST",offset:1,isdst:!1,text:"(UTC+01:00) Windhoek",utc:["Africa/Windhoek"]},{name:"GTB Standard Time",abbr:"GDT",offset:3,isdst:!0,text:"(UTC+02:00) Athens, Bucharest",utc:["Asia/Nicosia","Europe/Athens","Europe/Bucharest","Europe/Chisinau"]},{name:"Middle East Standard Time",abbr:"MEDT",offset:3,isdst:!0,text:"(UTC+02:00) Beirut",utc:["Asia/Beirut"]},{name:"Egypt Standard Time",abbr:"EST",offset:2,isdst:!1,text:"(UTC+02:00) Cairo",utc:["Africa/Cairo"]},{name:"Syria Standard Time",abbr:"SDT",offset:3,isdst:!0,text:"(UTC+02:00) Damascus",utc:["Asia/Damascus"]},{name:"E. Europe Standard Time",abbr:"EEDT",offset:3,isdst:!0,text:"(UTC+02:00) E. Europe"},{name:"South Africa Standard Time",abbr:"SAST",offset:2,isdst:!1,text:"(UTC+02:00) Harare, Pretoria",utc:["Africa/Blantyre","Africa/Bujumbura","Africa/Gaborone","Africa/Harare","Africa/Johannesburg","Africa/Kigali","Africa/Lubumbashi","Africa/Lusaka","Africa/Maputo","Africa/Maseru","Africa/Mbabane","Etc/GMT-2"]},{name:"FLE Standard Time",abbr:"FDT",offset:3,isdst:!0,text:"(UTC+02:00) Helsinki, Kyiv, Riga, Sofia, Tallinn, Vilnius",utc:["Europe/Helsinki","Europe/Kiev","Europe/Mariehamn","Europe/Riga","Europe/Sofia","Europe/Tallinn","Europe/Uzhgorod","Europe/Vilnius","Europe/Zaporozhye"]},{name:"Turkey Standard Time",abbr:"TDT",offset:3,isdst:!0,text:"(UTC+02:00) Istanbul",utc:["Europe/Istanbul"]},{name:"Israel Standard Time",abbr:"JDT",offset:3,isdst:!0,text:"(UTC+02:00) Jerusalem",utc:["Asia/Jerusalem"]},{name:"Libya Standard Time",abbr:"LST",offset:2,isdst:!1,text:"(UTC+02:00) Tripoli",utc:["Africa/Tripoli"]},{name:"Jordan Standard Time",abbr:"JST",offset:3,isdst:!1,text:"(UTC+03:00) Amman",utc:["Asia/Amman"]},{name:"Arabic Standard Time",abbr:"AST",offset:3,isdst:!1,text:"(UTC+03:00) Baghdad",utc:["Asia/Baghdad"]},{name:"Kaliningrad Standard Time",abbr:"KST",offset:3,isdst:!1,text:"(UTC+03:00) Kaliningrad, Minsk",utc:["Europe/Kaliningrad","Europe/Minsk"]},{name:"Arab Standard Time",abbr:"AST",offset:3,isdst:!1,text:"(UTC+03:00) Kuwait, Riyadh",utc:["Asia/Aden","Asia/Bahrain","Asia/Kuwait","Asia/Qatar","Asia/Riyadh"]},{name:"E. Africa Standard Time",abbr:"EAST",offset:3,isdst:!1,text:"(UTC+03:00) Nairobi",utc:["Africa/Addis_Ababa","Africa/Asmera","Africa/Dar_es_Salaam","Africa/Djibouti","Africa/Juba","Africa/Kampala","Africa/Khartoum","Africa/Mogadishu","Africa/Nairobi","Antarctica/Syowa","Etc/GMT-3","Indian/Antananarivo","Indian/Comoro","Indian/Mayotte"]},{name:"Iran Standard Time",abbr:"IDT",offset:4.5,isdst:!0,text:"(UTC+03:30) Tehran",utc:["Asia/Tehran"]},{name:"Arabian Standard Time",abbr:"AST",offset:4,isdst:!1,text:"(UTC+04:00) Abu Dhabi, Muscat",utc:["Asia/Dubai","Asia/Muscat","Etc/GMT-4"]},{name:"Azerbaijan Standard Time",abbr:"ADT",offset:5,isdst:!0,text:"(UTC+04:00) Baku",utc:["Asia/Baku"]},{name:"Russian Standard Time",abbr:"RST",offset:4,isdst:!1,text:"(UTC+04:00) Moscow, St. Petersburg, Volgograd",utc:["Europe/Moscow","Europe/Samara","Europe/Simferopol","Europe/Volgograd"]},{name:"Mauritius Standard Time",abbr:"MST",offset:4,isdst:!1,text:"(UTC+04:00) Port Louis",utc:["Indian/Mahe","Indian/Mauritius","Indian/Reunion"]},{name:"Georgian Standard Time",abbr:"GST",offset:4,isdst:!1,text:"(UTC+04:00) Tbilisi",utc:["Asia/Tbilisi"]},{name:"Caucasus Standard Time",abbr:"CST",offset:4,isdst:!1,text:"(UTC+04:00) Yerevan",utc:["Asia/Yerevan"]},{name:"Afghanistan Standard Time",abbr:"AST",offset:4.5,isdst:!1,text:"(UTC+04:30) Kabul",utc:["Asia/Kabul"]},{name:"West Asia Standard Time",abbr:"WAST",offset:5,isdst:!1,text:"(UTC+05:00) Ashgabat, Tashkent",utc:["Antarctica/Mawson","Asia/Aqtau","Asia/Aqtobe","Asia/Ashgabat","Asia/Dushanbe","Asia/Oral","Asia/Samarkand","Asia/Tashkent","Etc/GMT-5","Indian/Kerguelen","Indian/Maldives"]},{name:"Pakistan Standard Time",abbr:"PST",offset:5,isdst:!1,text:"(UTC+05:00) Islamabad, Karachi",utc:["Asia/Karachi"]},{name:"India Standard Time",abbr:"IST",offset:5.5,isdst:!1,text:"(UTC+05:30) Chennai, Kolkata, Mumbai, New Delhi",utc:["Asia/Calcutta"]},{name:"Sri Lanka Standard Time",abbr:"SLST",offset:5.5,isdst:!1,text:"(UTC+05:30) Sri Jayawardenepura",utc:["Asia/Colombo"]},{name:"Nepal Standard Time",abbr:"NST",offset:5.75,isdst:!1,text:"(UTC+05:45) Kathmandu",utc:["Asia/Katmandu"]},{name:"Central Asia Standard Time",abbr:"CAST",offset:6,isdst:!1,text:"(UTC+06:00) Astana",utc:["Antarctica/Vostok","Asia/Almaty","Asia/Bishkek","Asia/Qyzylorda","Asia/Urumqi","Etc/GMT-6","Indian/Chagos"]},{name:"Bangladesh Standard Time",abbr:"BST",offset:6,isdst:!1,text:"(UTC+06:00) Dhaka",utc:["Asia/Dhaka","Asia/Thimphu"]},{name:"Ekaterinburg Standard Time",abbr:"EST",offset:6,isdst:!1,text:"(UTC+06:00) Ekaterinburg",utc:["Asia/Yekaterinburg"]},{name:"Myanmar Standard Time",abbr:"MST",offset:6.5,isdst:!1,text:"(UTC+06:30) Yangon (Rangoon)",utc:["Asia/Rangoon","Indian/Cocos"]},{name:"SE Asia Standard Time",abbr:"SAST",offset:7,isdst:!1,text:"(UTC+07:00) Bangkok, Hanoi, Jakarta",utc:["Antarctica/Davis","Asia/Bangkok","Asia/Hovd","Asia/Jakarta","Asia/Phnom_Penh","Asia/Pontianak","Asia/Saigon","Asia/Vientiane","Etc/GMT-7","Indian/Christmas"]},{name:"N. Central Asia Standard Time",abbr:"NCAST",offset:7,isdst:!1,text:"(UTC+07:00) Novosibirsk",utc:["Asia/Novokuznetsk","Asia/Novosibirsk","Asia/Omsk"]},{name:"China Standard Time",abbr:"CST",offset:8,isdst:!1,text:"(UTC+08:00) Beijing, Chongqing, Hong Kong, Urumqi",utc:["Asia/Hong_Kong","Asia/Macau","Asia/Shanghai"]},{name:"North Asia Standard Time",abbr:"NAST",offset:8,isdst:!1,text:"(UTC+08:00) Krasnoyarsk",utc:["Asia/Krasnoyarsk"]},{name:"Singapore Standard Time",abbr:"MPST",offset:8,isdst:!1,text:"(UTC+08:00) Kuala Lumpur, Singapore",utc:["Asia/Brunei","Asia/Kuala_Lumpur","Asia/Kuching","Asia/Makassar","Asia/Manila","Asia/Singapore","Etc/GMT-8"]},{name:"W. Australia Standard Time",abbr:"WAST",offset:8,isdst:!1,text:"(UTC+08:00) Perth",utc:["Antarctica/Casey","Australia/Perth"]},{name:"Taipei Standard Time",abbr:"TST",offset:8,isdst:!1,text:"(UTC+08:00) Taipei",utc:["Asia/Taipei"]},{name:"Ulaanbaatar Standard Time",abbr:"UST",offset:8,isdst:!1,text:"(UTC+08:00) Ulaanbaatar",utc:["Asia/Choibalsan","Asia/Ulaanbaatar"]},{name:"North Asia East Standard Time",abbr:"NAEST",offset:9,isdst:!1,text:"(UTC+09:00) Irkutsk",utc:["Asia/Irkutsk"]},{name:"Tokyo Standard Time",abbr:"TST",offset:9,isdst:!1,text:"(UTC+09:00) Osaka, Sapporo, Tokyo",utc:["Asia/Dili","Asia/Jayapura","Asia/Tokyo","Etc/GMT-9","Pacific/Palau"]},{name:"Korea Standard Time",abbr:"KST",offset:9,isdst:!1,text:"(UTC+09:00) Seoul",utc:["Asia/Pyongyang","Asia/Seoul"]},{name:"Cen. Australia Standard Time",abbr:"CAST",offset:9.5,isdst:!1,text:"(UTC+09:30) Adelaide",utc:["Australia/Adelaide","Australia/Broken_Hill"]},{name:"AUS Central Standard Time",abbr:"ACST",offset:9.5,isdst:!1,text:"(UTC+09:30) Darwin",utc:["Australia/Darwin"]},{name:"E. Australia Standard Time",abbr:"EAST",offset:10,isdst:!1,text:"(UTC+10:00) Brisbane",utc:["Australia/Brisbane","Australia/Lindeman"]},{name:"AUS Eastern Standard Time",abbr:"AEST",offset:10,isdst:!1,text:"(UTC+10:00) Canberra, Melbourne, Sydney",utc:["Australia/Melbourne","Australia/Sydney"]},{name:"West Pacific Standard Time",abbr:"WPST",offset:10,isdst:!1,text:"(UTC+10:00) Guam, Port Moresby",utc:["Antarctica/DumontDUrville","Etc/GMT-10","Pacific/Guam","Pacific/Port_Moresby","Pacific/Saipan","Pacific/Truk"]},{name:"Tasmania Standard Time",abbr:"TST",offset:10,isdst:!1,text:"(UTC+10:00) Hobart",utc:["Australia/Currie","Australia/Hobart"]},{name:"Yakutsk Standard Time",abbr:"YST",offset:10,isdst:!1,text:"(UTC+10:00) Yakutsk",utc:["Asia/Chita","Asia/Khandyga","Asia/Yakutsk"]},{name:"Central Pacific Standard Time",abbr:"CPST",offset:11,isdst:!1,text:"(UTC+11:00) Solomon Is., New Caledonia",utc:["Antarctica/Macquarie","Etc/GMT-11","Pacific/Efate","Pacific/Guadalcanal","Pacific/Kosrae","Pacific/Noumea","Pacific/Ponape"]},{name:"Vladivostok Standard Time",abbr:"VST",offset:11,isdst:!1,text:"(UTC+11:00) Vladivostok",utc:["Asia/Sakhalin","Asia/Ust-Nera","Asia/Vladivostok"]},{name:"New Zealand Standard Time",abbr:"NZST",offset:12,isdst:!1,text:"(UTC+12:00) Auckland, Wellington",utc:["Antarctica/McMurdo","Pacific/Auckland"]},{name:"UTC+12",abbr:"U",offset:12,isdst:!1,text:"(UTC+12:00) Coordinated Universal Time+12",utc:["Etc/GMT-12","Pacific/Funafuti","Pacific/Kwajalein","Pacific/Majuro","Pacific/Nauru","Pacific/Tarawa","Pacific/Wake","Pacific/Wallis"]},{name:"Fiji Standard Time",abbr:"FST",offset:12,isdst:!1,text:"(UTC+12:00) Fiji",utc:["Pacific/Fiji"]},{name:"Magadan Standard Time",abbr:"MST",offset:12,isdst:!1,text:"(UTC+12:00) Magadan",utc:["Asia/Anadyr","Asia/Kamchatka","Asia/Magadan","Asia/Srednekolymsk"]},{name:"Kamchatka Standard Time",abbr:"KDT",offset:13,isdst:!0,text:"(UTC+12:00) Petropavlovsk-Kamchatsky - Old"},{name:"Tonga Standard Time",abbr:"TST",offset:13,isdst:!1,text:"(UTC+13:00) Nuku'alofa",utc:["Etc/GMT-13","Pacific/Enderbury","Pacific/Fakaofo","Pacific/Tongatapu"]},{name:"Samoa Standard Time",abbr:"SST",offset:13,isdst:!1,text:"(UTC+13:00) Samoa",utc:["Pacific/Apia"]}],profession:["Airline Pilot","Academic Team","Accountant","Account Executive","Actor","Actuary","Acquisition Analyst","Administrative Asst.","Administrative Analyst","Administrator","Advertising Director","Aerospace Engineer","Agent","Agricultural Inspector","Agricultural Scientist","Air Traffic Controller","Animal Trainer","Anthropologist","Appraiser","Architect","Art Director","Artist","Astronomer","Athletic Coach","Auditor","Author","Baker","Banker","Bankruptcy Attorney","Benefits Manager","Biologist","Bio-feedback Specialist","Biomedical Engineer","Biotechnical Researcher","Broadcaster","Broker","Building Manager","Building Contractor","Building Inspector","Business Analyst","Business Planner","Business Manager","Buyer","Call Center Manager","Career Counselor","Cash Manager","Ceramic Engineer","Chief Executive Officer","Chief Operation Officer","Chef","Chemical Engineer","Chemist","Child Care Manager","Chief Medical Officer","Chiropractor","Cinematographer","City Housing Manager","City Manager","Civil Engineer","Claims Manager","Clinical Research Assistant","Collections Manager.","Compliance Manager","Comptroller","Computer Manager","Commercial Artist","Communications Affairs Director","Communications Director","Communications Engineer","Compensation Analyst","Computer Programmer","Computer Ops. Manager","Computer Engineer","Computer Operator","Computer Graphics Specialist","Construction Engineer","Construction Manager","Consultant","Consumer Relations Manager","Contract Administrator","Copyright Attorney","Copywriter","Corporate Planner","Corrections Officer","Cosmetologist","Credit Analyst","Cruise Director","Chief Information Officer","Chief Technology Officer","Customer Service Manager","Cryptologist","Dancer","Data Security Manager","Database Manager","Day Care Instructor","Dentist","Designer","Design Engineer","Desktop Publisher","Developer","Development Officer","Diamond Merchant","Dietitian","Direct Marketer","Director","Distribution Manager","Diversity Manager","Economist","EEO Compliance Manager","Editor","Education Adminator","Electrical Engineer","Electro Optical Engineer","Electronics Engineer","Embassy Management","Employment Agent","Engineer Technician","Entrepreneur","Environmental Analyst","Environmental Attorney","Environmental Engineer","Environmental Specialist","Escrow Officer","Estimator","Executive Assistant","Executive Director","Executive Recruiter","Facilities Manager","Family Counselor","Fashion Events Manager","Fashion Merchandiser","Fast Food Manager","Film Producer","Film Production Assistant","Financial Analyst","Financial Planner","Financier","Fine Artist","Wildlife Specialist","Fitness Consultant","Flight Attendant","Flight Engineer","Floral Designer","Food & Beverage Director","Food Service Manager","Forestry Technician","Franchise Management","Franchise Sales","Fraud Investigator","Freelance Writer","Fund Raiser","General Manager","Geologist","General Counsel","Geriatric Specialist","Gerontologist","Glamour Photographer","Golf Club Manager","Gourmet Chef","Graphic Designer","Grounds Keeper","Hazardous Waste Manager","Health Care Manager","Health Therapist","Health Service Administrator","Hearing Officer","Home Economist","Horticulturist","Hospital Administrator","Hotel Manager","Human Resources Manager","Importer","Industrial Designer","Industrial Engineer","Information Director","Inside Sales","Insurance Adjuster","Interior Decorator","Internal Controls Director","International Acct.","International Courier","International Lawyer","Interpreter","Investigator","Investment Banker","Investment Manager","IT Architect","IT Project Manager","IT Systems Analyst","Jeweler","Joint Venture Manager","Journalist","Labor Negotiator","Labor Organizer","Labor Relations Manager","Lab Services Director","Lab Technician","Land Developer","Landscape Architect","Law Enforcement Officer","Lawyer","Lead Software Engineer","Lead Software Test Engineer","Leasing Manager","Legal Secretary","Library Manager","Litigation Attorney","Loan Officer","Lobbyist","Logistics Manager","Maintenance Manager","Management Consultant","Managed Care Director","Managing Partner","Manufacturing Director","Manpower Planner","Marine Biologist","Market Res. Analyst","Marketing Director","Materials Manager","Mathematician","Membership Chairman","Mechanic","Mechanical Engineer","Media Buyer","Medical Investor","Medical Secretary","Medical Technician","Mental Health Counselor","Merchandiser","Metallurgical Engineering","Meteorologist","Microbiologist","MIS Manager","Motion Picture Director","Multimedia Director","Musician","Network Administrator","Network Specialist","Network Operator","New Product Manager","Novelist","Nuclear Engineer","Nuclear Specialist","Nutritionist","Nursing Administrator","Occupational Therapist","Oceanographer","Office Manager","Operations Manager","Operations Research Director","Optical Technician","Optometrist","Organizational Development Manager","Outplacement Specialist","Paralegal","Park Ranger","Patent Attorney","Payroll Specialist","Personnel Specialist","Petroleum Engineer","Pharmacist","Photographer","Physical Therapist","Physician","Physician Assistant","Physicist","Planning Director","Podiatrist","Political Analyst","Political Scientist","Politician","Portfolio Manager","Preschool Management","Preschool Teacher","Principal","Private Banker","Private Investigator","Probation Officer","Process Engineer","Producer","Product Manager","Product Engineer","Production Engineer","Production Planner","Professional Athlete","Professional Coach","Professor","Project Engineer","Project Manager","Program Manager","Property Manager","Public Administrator","Public Safety Director","PR Specialist","Publisher","Purchasing Agent","Publishing Director","Quality Assurance Specialist","Quality Control Engineer","Quality Control Inspector","Radiology Manager","Railroad Engineer","Real Estate Broker","Recreational Director","Recruiter","Redevelopment Specialist","Regulatory Affairs Manager","Registered Nurse","Rehabilitation Counselor","Relocation Manager","Reporter","Research Specialist","Restaurant Manager","Retail Store Manager","Risk Analyst","Safety Engineer","Sales Engineer","Sales Trainer","Sales Promotion Manager","Sales Representative","Sales Manager","Service Manager","Sanitation Engineer","Scientific Programmer","Scientific Writer","Securities Analyst","Security Consultant","Security Director","Seminar Presenter","Ship's Officer","Singer","Social Director","Social Program Planner","Social Research","Social Scientist","Social Worker","Sociologist","Software Developer","Software Engineer","Software Test Engineer","Soil Scientist","Special Events Manager","Special Education Teacher","Special Projects Director","Speech Pathologist","Speech Writer","Sports Event Manager","Statistician","Store Manager","Strategic Alliance Director","Strategic Planning Director","Stress Reduction Specialist","Stockbroker","Surveyor","Structural Engineer","Superintendent","Supply Chain Director","System Engineer","Systems Analyst","Systems Programmer","System Administrator","Tax Specialist","Teacher","Technical Support Specialist","Technical Illustrator","Technical Writer","Technology Director","Telecom Analyst","Telemarketer","Theatrical Director","Title Examiner","Tour Escort","Tour Guide Director","Traffic Manager","Trainer Translator","Transportation Manager","Travel Agent","Treasurer","TV Programmer","Underwriter","Union Representative","University Administrator","University Dean","Urban Planner","Veterinarian","Vendor Relations Director","Viticulturist","Warehouse Manager"],animals:{ocean:["Acantharea","Anemone","Angelfish King","Ahi Tuna","Albacore","American Oyster","Anchovy","Armored Snail","Arctic Char","Atlantic Bluefin Tuna","Atlantic Cod","Atlantic Goliath Grouper","Atlantic Trumpetfish","Atlantic Wolffish","Baleen Whale","Banded Butterflyfish","Banded Coral Shrimp","Banded Sea Krait","Barnacle","Barndoor Skate","Barracuda","Basking Shark","Bass","Beluga Whale","Bluebanded Goby","Bluehead Wrasse","Bluefish","Bluestreak Cleaner-Wrasse","Blue Marlin","Blue Shark","Blue Spiny Lobster","Blue Tang","Blue Whale","Broadclub Cuttlefish","Bull Shark","Chambered Nautilus","Chilean Basket Star","Chilean Jack Mackerel","Chinook Salmon","Christmas Tree Worm","Clam","Clown Anemonefish","Clown Triggerfish","Cod","Coelacanth","Cockscomb Cup Coral","Common Fangtooth","Conch","Cookiecutter Shark","Copepod","Coral","Corydoras","Cownose Ray","Crab","Crown-of-Thorns Starfish","Cushion Star","Cuttlefish","California Sea Otters","Dolphin","Dolphinfish","Dory","Devil Fish","Dugong","Dumbo Octopus","Dungeness Crab","Eccentric Sand Dollar","Edible Sea Cucumber","Eel","Elephant Seal","Elkhorn Coral","Emperor Shrimp","Estuarine Crocodile","Fathead Sculpin","Fiddler Crab","Fin Whale","Flameback","Flamingo Tongue Snail","Flashlight Fish","Flatback Turtle","Flatfish","Flying Fish","Flounder","Fluke","French Angelfish","Frilled Shark","Fugu (also called Pufferfish)","Gar","Geoduck","Giant Barrel Sponge","Giant Caribbean Sea Anemone","Giant Clam","Giant Isopod","Giant Kingfish","Giant Oarfish","Giant Pacific Octopus","Giant Pyrosome","Giant Sea Star","Giant Squid","Glowing Sucker Octopus","Giant Tube Worm","Goblin Shark","Goosefish","Great White Shark","Greenland Shark","Grey Atlantic Seal","Grouper","Grunion","Guineafowl Puffer","Haddock","Hake","Halibut","Hammerhead Shark","Hapuka","Harbor Porpoise","Harbor Seal","Hatchetfish","Hawaiian Monk Seal","Hawksbill Turtle","Hector's Dolphin","Hermit Crab","Herring","Hoki","Horn Shark","Horseshoe Crab","Humpback Anglerfish","Humpback Whale","Icefish","Imperator Angelfish","Irukandji Jellyfish","Isopod","Ivory Bush Coral","Japanese Spider Crab","Jellyfish","John Dory","Juan Fernandez Fur Seal","Killer Whale","Kiwa Hirsuta","Krill","Lagoon Triggerfish","Lamprey","Leafy Seadragon","Leopard Seal","Limpet","Ling","Lionfish","Lions Mane Jellyfish","Lobe Coral","Lobster","Loggerhead Turtle","Longnose Sawshark","Longsnout Seahorse","Lophelia Coral","Marrus Orthocanna","Manatee","Manta Ray","Marlin","Megamouth Shark","Mexican Lookdown","Mimic Octopus","Moon Jelly","Mollusk","Monkfish","Moray Eel","Mullet","Mussel","Megaladon","Napoleon Wrasse","Nassau Grouper","Narwhal","Nautilus","Needlefish","Northern Seahorse","North Atlantic Right Whale","Northern Red Snapper","Norway Lobster","Nudibranch","Nurse Shark","Oarfish","Ocean Sunfish","Oceanic Whitetip Shark","Octopus","Olive Sea Snake","Orange Roughy","Ostracod","Otter","Oyster","Pacific Angelshark","Pacific Blackdragon","Pacific Halibut","Pacific Sardine","Pacific Sea Nettle Jellyfish","Pacific White Sided Dolphin","Pantropical Spotted Dolphin","Patagonian Toothfish","Peacock Mantis Shrimp","Pelagic Thresher Shark","Penguin","Peruvian Anchoveta","Pilchard","Pink Salmon","Pinniped","Plankton","Porpoise","Polar Bear","Portuguese Man o' War","Pycnogonid Sea Spider","Quahog","Queen Angelfish","Queen Conch","Queen Parrotfish","Queensland Grouper","Ragfish","Ratfish","Rattail Fish","Ray","Red Drum","Red King Crab","Ringed Seal","Risso's Dolphin","Ross Seals","Sablefish","Salmon","Sand Dollar","Sandbar Shark","Sawfish","Sarcastic Fringehead","Scalloped Hammerhead Shark","Seahorse","Sea Cucumber","Sea Lion","Sea Urchin","Seal","Shark","Shortfin Mako Shark","Shovelnose Guitarfish","Shrimp","Silverside Fish","Skipjack Tuna","Slender Snipe Eel","Smalltooth Sawfish","Smelts","Sockeye Salmon","Southern Stingray","Sponge","Spotted Porcupinefish","Spotted Dolphin","Spotted Eagle Ray","Spotted Moray","Squid","Squidworm","Starfish","Stickleback","Stonefish","Stoplight Loosejaw","Sturgeon","Swordfish","Tan Bristlemouth","Tasseled Wobbegong","Terrible Claw Lobster","Threespot Damselfish","Tiger Prawn","Tiger Shark","Tilefish","Toadfish","Tropical Two-Wing Flyfish","Tuna","Umbrella Squid","Velvet Crab","Venus Flytrap Sea Anemone","Vigtorniella Worm","Viperfish","Vampire Squid","Vaquita","Wahoo","Walrus","West Indian Manatee","Whale","Whale Shark","Whiptail Gulper","White-Beaked Dolphin","White-Ring Garden Eel","White Shrimp","Wobbegong","Wrasse","Wreckfish","Xiphosura","Yellowtail Damselfish","Yelloweye Rockfish","Yellow Cup Black Coral","Yellow Tube Sponge","Yellowfin Tuna","Zebrashark","Zooplankton"],desert:["Aardwolf","Addax","African Wild Ass","Ant","Antelope","Armadillo","Baboon","Badger","Bat","Bearded Dragon","Beetle","Bird","Black-footed Cat","Boa","Brown Bear","Bustard","Butterfly","Camel","Caracal","Caracara","Caterpillar","Centipede","Cheetah","Chipmunk","Chuckwalla","Climbing Mouse","Coati","Cobra","Cotton Rat","Cougar","Courser","Crane Fly","Crow","Dassie Rat","Dove","Dunnart","Eagle","Echidna","Elephant","Emu","Falcon","Fly","Fox","Frogmouth","Gecko","Geoffroy's Cat","Gerbil","Grasshopper","Guanaco","Gundi","Hamster","Hawk","Hedgehog","Hyena","Hyrax","Jackal","Kangaroo","Kangaroo Rat","Kestrel","Kowari","Kultarr","Leopard","Lion","Macaw","Meerkat","Mouse","Oryx","Ostrich","Owl","Pronghorn","Python","Rabbit","Raccoon","Rattlesnake","Rhinoceros","Sand Cat","Spectacled Bear","Spiny Mouse","Starling","Stick Bug","Tarantula","Tit","Toad","Tortoise","Tyrant Flycatcher","Viper","Vulture","Waxwing","Xerus","Zebra"],grassland:["Aardvark","Aardwolf","Accentor","African Buffalo","African Wild Dog","Alpaca","Anaconda","Ant","Anteater","Antelope","Armadillo","Baboon","Badger","Bandicoot","Barbet","Bat","Bee","Bee-eater","Beetle","Bird","Bison","Black-footed Cat","Black-footed Ferret","Bluebird","Boa","Bowerbird","Brown Bear","Bush Dog","Bushshrike","Bustard","Butterfly","Buzzard","Caracal","Caracara","Cardinal","Caterpillar","Cheetah","Chipmunk","Civet","Climbing Mouse","Clouded Leopard","Coati","Cobra","Cockatoo","Cockroach","Common Genet","Cotton Rat","Cougar","Courser","Coyote","Crane","Crane Fly","Cricket","Crow","Culpeo","Death Adder","Deer","Deer Mouse","Dingo","Dinosaur","Dove","Drongo","Duck","Duiker","Dunnart","Eagle","Echidna","Elephant","Elk","Emu","Falcon","Finch","Flea","Fly","Flying Frog","Fox","Frog","Frogmouth","Garter Snake","Gazelle","Gecko","Geoffroy's Cat","Gerbil","Giant Tortoise","Giraffe","Grasshopper","Grison","Groundhog","Grouse","Guanaco","Guinea Pig","Hamster","Harrier","Hartebeest","Hawk","Hedgehog","Helmetshrike","Hippopotamus","Hornbill","Hyena","Hyrax","Impala","Jackal","Jaguar","Jaguarundi","Kangaroo","Kangaroo Rat","Kestrel","Kultarr","Ladybug","Leopard","Lion","Macaw","Meerkat","Mouse","Newt","Oryx","Ostrich","Owl","Pangolin","Pheasant","Prairie Dog","Pronghorn","Przewalski's Horse","Python","Quoll","Rabbit","Raven","Rhinoceros","Shelduck","Sloth Bear","Spectacled Bear","Squirrel","Starling","Stick Bug","Tamandua","Tasmanian Devil","Thornbill","Thrush","Toad","Tortoise"],forest:["Agouti","Anaconda","Anoa","Ant","Anteater","Antelope","Armadillo","Asian Black Bear","Aye-aye","Babirusa","Baboon","Badger","Bandicoot","Banteng","Barbet","Basilisk","Bat","Bearded Dragon","Bee","Bee-eater","Beetle","Bettong","Binturong","Bird-of-paradise","Bongo","Bowerbird","Bulbul","Bush Dog","Bushbaby","Bushshrike","Butterfly","Buzzard","Caecilian","Cardinal","Cassowary","Caterpillar","Centipede","Chameleon","Chimpanzee","Cicada","Civet","Clouded Leopard","Coati","Cobra","Cockatoo","Cockroach","Colugo","Cotinga","Cotton Rat","Cougar","Crane Fly","Cricket","Crocodile","Crow","Cuckoo","Cuscus","Death Adder","Deer","Dhole","Dingo","Dinosaur","Drongo","Duck","Duiker","Eagle","Echidna","Elephant","Finch","Flat-headed Cat","Flea","Flowerpecker","Fly","Flying Frog","Fossa","Frog","Frogmouth","Gaur","Gecko","Gorilla","Grison","Hawaiian Honeycreeper","Hawk","Hedgehog","Helmetshrike","Hornbill","Hyrax","Iguana","Jackal","Jaguar","Jaguarundi","Kestrel","Ladybug","Lemur","Leopard","Lion","Macaw","Mandrill","Margay","Monkey","Mouse","Mouse Deer","Newt","Okapi","Old World Flycatcher","Orangutan","Owl","Pangolin","Peafowl","Pheasant","Possum","Python","Quokka","Rabbit","Raccoon","Red Panda","Red River Hog","Rhinoceros","Sloth Bear","Spectacled Bear","Squirrel","Starling","Stick Bug","Sun Bear","Tamandua","Tamarin","Tapir","Tarantula","Thrush","Tiger","Tit","Toad","Tortoise","Toucan","Trogon","Trumpeter","Turaco","Turtle","Tyrant Flycatcher","Viper","Vulture","Wallaby","Warbler","Wasp","Waxwing","Weaver","Weaver-finch","Whistler","White-eye","Whydah","Woodswallow","Worm","Wren","Xenops","Yellowjacket","Accentor","African Buffalo","American Black Bear","Anole","Bird","Bison","Boa","Brown Bear","Chipmunk","Common Genet","Copperhead","Coyote","Deer Mouse","Dormouse","Elk","Emu","Fisher","Fox","Garter Snake","Giant Panda","Giant Tortoise","Groundhog","Grouse","Guanaco","Himalayan Tahr","Kangaroo","Koala","Numbat","Quoll","Raccoon dog","Tasmanian Devil","Thornbill","Turkey","Vole","Weasel","Wildcat","Wolf","Wombat","Woodchuck","Woodpecker"],farm:["Alpaca","Buffalo","Banteng","Cow","Cat","Chicken","Carp","Camel","Donkey","Dog","Duck","Emu","Goat","Gayal","Guinea","Goose","Horse","Honey","Llama","Pig","Pigeon","Rhea","Rabbit","Sheep","Silkworm","Turkey","Yak","Zebu"],pet:["Bearded Dragon","Birds","Burro","Cats","Chameleons","Chickens","Chinchillas","Chinese Water Dragon","Cows","Dogs","Donkey","Ducks","Ferrets","Fish","Geckos","Geese","Gerbils","Goats","Guinea Fowl","Guinea Pigs","Hamsters","Hedgehogs","Horses","Iguanas","Llamas","Lizards","Mice","Mule","Peafowl","Pigs and Hogs","Pigeons","Ponies","Pot Bellied Pig","Rabbits","Rats","Sheep","Skinks","Snakes","Stick Insects","Sugar Gliders","Tarantula","Turkeys","Turtles"],zoo:["Aardvark","African Wild Dog","Aldabra Tortoise","American Alligator","American Bison","Amur Tiger","Anaconda","Andean Condor","Asian Elephant","Baby Doll Sheep","Bald Eagle","Barred Owl","Blue Iguana","Boer Goat","California Sea Lion","Caribbean Flamingo","Chinchilla","Collared Lemur","Coquerel's Sifaka","Cuban Amazon Parrot","Ebony Langur","Fennec Fox","Fossa","Gelada","Giant Anteater","Giraffe","Gorilla","Grizzly Bear","Henkel's Leaf-tailed Gecko","Indian Gharial","Indian Rhinoceros","King Cobra","King Vulture","Komodo Dragon","Linne's Two-toed Sloth","Lion","Little Penguin","Madagascar Tree Boa","Magellanic Penguin","Malayan Tapir","Malayan Tiger","Matschies Tree Kangaroo","Mini Donkey","Monarch Butterfly","Nile crocodile","North American Porcupine","Nubian Ibex","Okapi","Poison Dart Frog","Polar Bear","Pygmy Marmoset","Radiated Tortoise","Red Panda","Red Ruffed Lemur","Ring-tailed Lemur","Ring-tailed Mongoose","Rock Hyrax","Small Clawed Asian Otter","Snow Leopard","Snowy Owl","Southern White-faced Owl","Southern White Rhinocerous","Squirrel Monkey","Tufted Puffin","White Cheeked Gibbon","White-throated Bee Eater","Zebra"]}},b=Object.prototype.hasOwnProperty,p=Object.keys||function(a){var e=[];for(var n in a)b.call(a,n)&&e.push(n);return e};a.prototype.get=function(a){return t(h[a])},a.prototype.mac_address=function(a){(a=e(a)).separator||(a.separator=a.networkVersion?".":":");return a.networkVersion?this.n(this.string,3,{pool:"ABCDEF1234567890",length:4}).join(a.separator):this.n(this.string,6,{pool:"ABCDEF1234567890",length:2}).join(a.separator)},a.prototype.normal=function(a){if(a=e(a,{mean:0,dev:1,pool:[]}),n(a.pool.constructor!==Array,"Chance: The pool option must be a valid array."),n("number"!=typeof a.mean,"Chance: Mean (mean) must be a number"),n("number"!=typeof a.dev,"Chance: Standard deviation (dev) must be a number"),a.pool.length>0)return this.normal_pool(a);var i,r,o,t,s=a.mean,l=a.dev;do{i=(r=2*this.random()-1)*r+(o=2*this.random()-1)*o}while(i>=1);return t=r*Math.sqrt(-2*Math.log(i)/i),l*t+s},a.prototype.normal_pool=function(a){var e=0;do{var n=Math.round(this.normal({mean:a.mean,dev:a.dev}));if(n=0)return a.pool[n];e++}while(e<100);throw new RangeError("Chance: Your pool is too small for the given mean and standard deviation. Please adjust.")},a.prototype.radio=function(a){var n="";switch((a=e(a,{side:"?"})).side.toLowerCase()){case"east":case"e":n="W";break;case"west":case"w":n="K";break;default:n=this.character({pool:"KW"})}return n+this.character({alpha:!0,casing:"upper"})+this.character({alpha:!0,casing:"upper"})+this.character({alpha:!0,casing:"upper"})},a.prototype.set=function(a,e){"string"==typeof a?h[a]=e:h=t(a,h)},a.prototype.tv=function(a){return this.radio(a)},a.prototype.cnpj=function(){var a=this.n(this.natural,8,{max:9}),e=2+6*a[7]+7*a[6]+8*a[5]+9*a[4]+2*a[3]+3*a[2]+4*a[1]+5*a[0];(e=11-e%11)>=10&&(e=0);var n=2*e+3+7*a[7]+8*a[6]+9*a[5]+2*a[4]+3*a[3]+4*a[2]+5*a[1]+6*a[0];return(n=11-n%11)>=10&&(n=0),""+a[0]+a[1]+"."+a[2]+a[3]+a[4]+"."+a[5]+a[6]+a[7]+"/0001-"+e+n},a.prototype.mersenne_twister=function(a){return new C(a)},a.prototype.blueimp_md5=function(){return new g};var C=function(a){void 0===a&&(a=Math.floor(Math.random()*Math.pow(10,13))),this.N=624,this.M=397,this.MATRIX_A=2567483615,this.UPPER_MASK=2147483648,this.LOWER_MASK=2147483647,this.mt=new Array(this.N),this.mti=this.N+1,this.init_genrand(a)};C.prototype.init_genrand=function(a){for(this.mt[0]=a>>>0,this.mti=1;this.mti>>30,this.mt[this.mti]=(1812433253*((4294901760&a)>>>16)<<16)+1812433253*(65535&a)+this.mti,this.mt[this.mti]>>>=0},C.prototype.init_by_array=function(a,e){var n,i,r=1,o=0;for(this.init_genrand(19650218),n=this.N>e?this.N:e;n;n--)i=this.mt[r-1]^this.mt[r-1]>>>30,this.mt[r]=(this.mt[r]^(1664525*((4294901760&i)>>>16)<<16)+1664525*(65535&i))+a[o]+o,this.mt[r]>>>=0,o++,++r>=this.N&&(this.mt[0]=this.mt[this.N-1],r=1),o>=e&&(o=0);for(n=this.N-1;n;n--)i=this.mt[r-1]^this.mt[r-1]>>>30,this.mt[r]=(this.mt[r]^(1566083941*((4294901760&i)>>>16)<<16)+1566083941*(65535&i))-r,this.mt[r]>>>=0,++r>=this.N&&(this.mt[0]=this.mt[this.N-1],r=1);this.mt[0]=2147483648},C.prototype.genrand_int32=function(){var a,e=new Array(0,this.MATRIX_A);if(this.mti>=this.N){var n;for(this.mti===this.N+1&&this.init_genrand(5489),n=0;n>>1^e[1&a];for(;n>>1^e[1&a];a=this.mt[this.N-1]&this.UPPER_MASK|this.mt[0]&this.LOWER_MASK,this.mt[this.N-1]=this.mt[this.M-1]^a>>>1^e[1&a],this.mti=0}return a=this.mt[this.mti++],a^=a>>>11,a^=a<<7&2636928640,a^=a<<15&4022730752,(a^=a>>>18)>>>0},C.prototype.genrand_int31=function(){return this.genrand_int32()>>>1},C.prototype.genrand_real1=function(){return this.genrand_int32()*(1/4294967295)},C.prototype.random=function(){return this.genrand_int32()*(1/4294967296)},C.prototype.genrand_real3=function(){return(this.genrand_int32()+.5)*(1/4294967296)},C.prototype.genrand_res53=function(){return(67108864*(this.genrand_int32()>>>5)+(this.genrand_int32()>>>6))*(1/9007199254740992)};var g=function(){};g.prototype.VERSION="1.0.1",g.prototype.safe_add=function(a,e){var n=(65535&a)+(65535&e);return(a>>16)+(e>>16)+(n>>16)<<16|65535&n},g.prototype.bit_roll=function(a,e){return a<>>32-e},g.prototype.md5_cmn=function(a,e,n,i,r,o){return this.safe_add(this.bit_roll(this.safe_add(this.safe_add(e,a),this.safe_add(i,o)),r),n)},g.prototype.md5_ff=function(a,e,n,i,r,o,t){return this.md5_cmn(e&n|~e&i,a,e,r,o,t)},g.prototype.md5_gg=function(a,e,n,i,r,o,t){return this.md5_cmn(e&i|n&~i,a,e,r,o,t)},g.prototype.md5_hh=function(a,e,n,i,r,o,t){return this.md5_cmn(e^n^i,a,e,r,o,t)},g.prototype.md5_ii=function(a,e,n,i,r,o,t){return this.md5_cmn(n^(e|~i),a,e,r,o,t)},g.prototype.binl_md5=function(a,e){a[e>>5]|=128<>>9<<4)]=e;var n,i,r,o,t,s=1732584193,l=-271733879,c=-1732584194,m=271733878;for(n=0;n>5]>>>e%32&255);return n},g.prototype.rstr2binl=function(a){var e,n=[];for(n[(a.length>>2)-1]=void 0,e=0;e>5]|=(255&a.charCodeAt(e/8))<16&&(r=this.binl_md5(r,8*a.length)),n=0;n<16;n+=1)o[n]=909522486^r[n],t[n]=1549556828^r[n];return i=this.binl_md5(o.concat(this.rstr2binl(e)),512+8*e.length),this.binl2rstr(this.binl_md5(t.concat(i),640))},g.prototype.rstr2hex=function(a){var e,n,i="";for(n=0;n>>4&15)+"0123456789abcdef".charAt(15&e);return i},g.prototype.str2rstr_utf8=function(a){return unescape(encodeURIComponent(a))},g.prototype.raw_md5=function(a){return this.rstr_md5(this.str2rstr_utf8(a))},g.prototype.hex_md5=function(a){return this.rstr2hex(this.raw_md5(a))},g.prototype.raw_hmac_md5=function(a,e){return this.rstr_hmac_md5(this.str2rstr_utf8(a),this.str2rstr_utf8(e))},g.prototype.hex_hmac_md5=function(a,e){return this.rstr2hex(this.raw_hmac_md5(a,e))},g.prototype.md5=function(a,e,n){return e?n?this.raw_hmac_md5(e,a):this.hex_hmac_md5(e,a):n?this.raw_md5(a):this.hex_md5(a)},"undefined"!=typeof exports&&("undefined"!=typeof module&&module.exports&&(exports=module.exports=a),exports.Chance=a),"function"==typeof define&&define.amd&&define([],function(){return a}),"undefined"!=typeof importScripts&&(chance=new a,self.Chance=a),"object"==typeof window&&"object"==typeof window.document&&(window.Chance=a,window.chance=new a)}(); +//# sourceMappingURL=chance.min.js.map \ No newline at end of file diff --git a/public/admin/assets/js/calendar/moment.min.js b/public/admin/assets/js/calendar/moment.min.js new file mode 100644 index 0000000..1f7c4ac --- /dev/null +++ b/public/admin/assets/js/calendar/moment.min.js @@ -0,0 +1 @@ +!function(e,t){"object"==typeof exports&&"undefined"!=typeof module?module.exports=t():"function"==typeof define&&define.amd?define(t):e.moment=t()}(this,function(){"use strict";function e(){return Qe.apply(null,arguments)}function t(e){return e instanceof Array||"[object Array]"===Object.prototype.toString.call(e)}function n(e){return null!=e&&"[object Object]"===Object.prototype.toString.call(e)}function s(e){return void 0===e}function i(e){return"number"==typeof e||"[object Number]"===Object.prototype.toString.call(e)}function r(e){return e instanceof Date||"[object Date]"===Object.prototype.toString.call(e)}function a(e,t){var n,s=[];for(n=0;n0)for(n=0;n=0?n?"+":"":"-")+Math.pow(10,Math.max(0,i)).toString().substr(1)+s}function P(e,t,n,s){var i=s;"string"==typeof s&&(i=function(){return this[s]()}),e&&(ut[e]=i),t&&(ut[t[0]]=function(){return b(i.apply(this,arguments),t[1],t[2])}),n&&(ut[n]=function(){return this.localeData().ordinal(i.apply(this,arguments),e)})}function W(e){return e.match(/\[[\s\S]/)?e.replace(/^\[|\]$/g,""):e.replace(/\\/g,"")}function H(e,t){return e.isValid()?(t=R(t,e.localeData()),ot[t]=ot[t]||function(e){var t,n,s=e.match(rt);for(t=0,n=s.length;t=0&&at.test(e);)e=e.replace(at,n),at.lastIndex=0,s-=1;return e}function C(e,t,n){Yt[e]=S(t)?t:function(e,s){return e&&n?n:t}}function F(e,t){return o(Yt,e)?Yt[e](t._strict,t._locale):new RegExp(function(e){return U(e.replace("\\","").replace(/\\(\[)|\\(\])|\[([^\]\[]*)\]|\\(.)/g,function(e,t,n,s,i){return t||n||s||i}))}(e))}function U(e){return e.replace(/[-\/\\^$*+?.()|[\]{}]/g,"\\$&")}function L(e,t){var n,s=t;for("string"==typeof e&&(e=[e]),i(t)&&(s=function(e,n){n[t]=g(e)}),n=0;n=0&&isFinite(t.getUTCFullYear())&&t.setUTCFullYear(e),t}function B(e,t,n){var s=7+t-n;return-((7+J(e,0,s).getUTCDay()-t)%7)+s-1}function Q(e,t,n,s,i){var r,a,o=1+7*(t-1)+(7+n-s)%7+B(e,s,i);return o<=0?a=V(r=e-1)+o:o>V(e)?(r=e+1,a=o-V(e)):(r=e,a=o),{year:r,dayOfYear:a}}function X(e,t,n){var s,i,r=B(e.year(),t,n),a=Math.floor((e.dayOfYear()-r-1)/7)+1;return a<1?s=a+K(i=e.year()-1,t,n):a>K(e.year(),t,n)?(s=a-K(e.year(),t,n),i=e.year()+1):(i=e.year(),s=a),{week:s,year:i}}function K(e,t,n){var s=B(e,t,n),i=B(e+1,t,n);return(V(e)-s+i)/7}function ee(){function e(e,t){return t.length-e.length}var t,n,s,i,r,a=[],o=[],u=[],d=[];for(t=0;t<7;t++)n=l([2e3,1]).day(t),s=this.weekdaysMin(n,""),i=this.weekdaysShort(n,""),r=this.weekdays(n,""),a.push(s),o.push(i),u.push(r),d.push(s),d.push(i),d.push(r);for(a.sort(e),o.sort(e),u.sort(e),d.sort(e),t=0;t<7;t++)o[t]=U(o[t]),u[t]=U(u[t]),d[t]=U(d[t]);this._weekdaysRegex=new RegExp("^("+d.join("|")+")","i"),this._weekdaysShortRegex=this._weekdaysRegex,this._weekdaysMinRegex=this._weekdaysRegex,this._weekdaysStrictRegex=new RegExp("^("+u.join("|")+")","i"),this._weekdaysShortStrictRegex=new RegExp("^("+o.join("|")+")","i"),this._weekdaysMinStrictRegex=new RegExp("^("+a.join("|")+")","i")}function te(){return this.hours()%12||12}function ne(e,t){P(e,0,0,function(){return this.localeData().meridiem(this.hours(),this.minutes(),t)})}function se(e,t){return t._meridiemParse}function ie(e){return e?e.toLowerCase().replace("_","-"):e}function re(e){var t=null;if(!Xt[e]&&"undefined"!=typeof module&&module&&module.exports)try{t=Jt._abbr;require("./locale/"+e),ae(t)}catch(e){}return Xt[e]}function ae(e,t){var n;return e&&(n=s(t)?ue(e):oe(e,t))&&(Jt=n),Jt._abbr}function oe(e,t){if(null!==t){var n=Qt;if(t.abbr=e,null!=Xt[e])M("defineLocaleOverride","use moment.updateLocale(localeName, config) to change an existing locale. moment.defineLocale(localeName, config) should only be used for creating a new locale See http://momentjs.com/guides/#/warnings/define-locale/ for more info."),n=Xt[e]._config;else if(null!=t.parentLocale){if(null==Xt[t.parentLocale])return Kt[t.parentLocale]||(Kt[t.parentLocale]=[]),Kt[t.parentLocale].push({name:e,config:t}),null;n=Xt[t.parentLocale]._config}return Xt[e]=new k(D(n,t)),Kt[e]&&Kt[e].forEach(function(e){oe(e.name,e.config)}),ae(e),Xt[e]}return delete Xt[e],null}function ue(e){var n;if(e&&e._locale&&e._locale._abbr&&(e=e._locale._abbr),!e)return Jt;if(!t(e)){if(n=re(e))return n;e=[e]}return function(e){for(var t,n,s,i,r=0;r0;){if(s=re(i.slice(0,t).join("-")))return s;if(n&&n.length>=t&&p(i,n,!0)>=t-1)break;t--}r++}return null}(e)}function le(e){var t,n=e._a;return n&&-2===d(e).overflow&&(t=n[xt]<0||n[xt]>11?xt:n[bt]<1||n[bt]>Z(n[Tt],n[xt])?bt:n[Pt]<0||n[Pt]>24||24===n[Pt]&&(0!==n[Wt]||0!==n[Ht]||0!==n[Rt])?Pt:n[Wt]<0||n[Wt]>59?Wt:n[Ht]<0||n[Ht]>59?Ht:n[Rt]<0||n[Rt]>999?Rt:-1,d(e)._overflowDayOfYear&&(tbt)&&(t=bt),d(e)._overflowWeeks&&-1===t&&(t=Ct),d(e)._overflowWeekday&&-1===t&&(t=Ft),d(e).overflow=t),e}function de(e,t,n){return null!=e?e:null!=t?t:n}function he(t){var n,s,i,r,a,o=[];if(!t._d){for(i=function(t){var n=new Date(e.now());return t._useUTC?[n.getUTCFullYear(),n.getUTCMonth(),n.getUTCDate()]:[n.getFullYear(),n.getMonth(),n.getDate()]}(t),t._w&&null==t._a[bt]&&null==t._a[xt]&&function(e){var t,n,s,i,r,a,o,u;if(null!=(t=e._w).GG||null!=t.W||null!=t.E)r=1,a=4,n=de(t.GG,e._a[Tt],X(pe(),1,4).year),s=de(t.W,1),((i=de(t.E,1))<1||i>7)&&(u=!0);else{r=e._locale._week.dow,a=e._locale._week.doy;var l=X(pe(),r,a);n=de(t.gg,e._a[Tt],l.year),s=de(t.w,l.week),null!=t.d?((i=t.d)<0||i>6)&&(u=!0):null!=t.e?(i=t.e+r,(t.e<0||t.e>6)&&(u=!0)):i=r}s<1||s>K(n,r,a)?d(e)._overflowWeeks=!0:null!=u?d(e)._overflowWeekday=!0:(o=Q(n,s,i,r,a),e._a[Tt]=o.year,e._dayOfYear=o.dayOfYear)}(t),null!=t._dayOfYear&&(a=de(t._a[Tt],i[Tt]),(t._dayOfYear>V(a)||0===t._dayOfYear)&&(d(t)._overflowDayOfYear=!0),s=J(a,0,t._dayOfYear),t._a[xt]=s.getUTCMonth(),t._a[bt]=s.getUTCDate()),n=0;n<3&&null==t._a[n];++n)t._a[n]=o[n]=i[n];for(;n<7;n++)t._a[n]=o[n]=null==t._a[n]?2===n?1:0:t._a[n];24===t._a[Pt]&&0===t._a[Wt]&&0===t._a[Ht]&&0===t._a[Rt]&&(t._nextDay=!0,t._a[Pt]=0),t._d=(t._useUTC?J:function(e,t,n,s,i,r,a){var o=new Date(e,t,n,s,i,r,a);return e<100&&e>=0&&isFinite(o.getFullYear())&&o.setFullYear(e),o}).apply(null,o),r=t._useUTC?t._d.getUTCDay():t._d.getDay(),null!=t._tzm&&t._d.setUTCMinutes(t._d.getUTCMinutes()-t._tzm),t._nextDay&&(t._a[Pt]=24),t._w&&void 0!==t._w.d&&t._w.d!==r&&(d(t).weekdayMismatch=!0)}}function ce(e){var t,n,s,i,r,a,o=e._i,u=en.exec(o)||tn.exec(o);if(u){for(d(e).iso=!0,t=0,n=sn.length;t0&&d(t).unusedInput.push(a),o=o.slice(o.indexOf(s)+s.length),l+=s.length),ut[r]?(s?d(t).empty=!1:d(t).unusedTokens.push(r),G(r,s,t)):t._strict&&!s&&d(t).unusedTokens.push(r);d(t).charsLeftOver=u-l,o.length>0&&d(t).unusedInput.push(o),t._a[Pt]<=12&&!0===d(t).bigHour&&t._a[Pt]>0&&(d(t).bigHour=void 0),d(t).parsedDateParts=t._a.slice(0),d(t).meridiem=t._meridiem,t._a[Pt]=function(e,t,n){var s;if(null==n)return t;return null!=e.meridiemHour?e.meridiemHour(t,n):null!=e.isPM?((s=e.isPM(n))&&t<12&&(t+=12),s||12!==t||(t=0),t):t}(t._locale,t._a[Pt],t._meridiem),he(t),le(t)}else me(t);else ce(t)}function ye(o){var l=o._i,y=o._f;return o._locale=o._locale||ue(o._l),null===l||void 0===y&&""===l?c({nullInput:!0}):("string"==typeof l&&(o._i=l=o._locale.preparse(l)),_(l)?new m(le(l)):(r(l)?o._d=l:t(y)?function(e){var t,n,s,i,r;if(0===e._f.length)return d(e).invalidFormat=!0,void(e._d=new Date(NaN));for(i=0;ir&&(t=r),function(e,t,n,s,i){var r=Q(e,t,n,s,i),a=J(r.year,0,r.dayOfYear);return this.year(a.getUTCFullYear()),this.month(a.getUTCMonth()),this.date(a.getUTCDate()),this}.call(this,e,t,n,s,i))}function Ne(e,t){t[Rt]=g(1e3*("0."+e))}function Ge(e){return e}function Ve(e,t,n,s){var i=ue(),r=l().set(s,t);return i[n](r,e)}function Ee(e,t,n){if(i(e)&&(t=e,e=void 0),e=e||"",null!=t)return Ve(e,t,n,"month");var s,r=[];for(s=0;s<12;s++)r[s]=Ve(e,s,n,"month");return r}function Ie(e,t,n,s){"boolean"==typeof e?(i(t)&&(n=t,t=void 0),t=t||""):(n=t=e,e=!1,i(t)&&(n=t,t=void 0),t=t||"");var r=ue(),a=e?r._week.dow:0;if(null!=n)return Ve(t,(n+a)%7,s,"day");var o,u=[];for(o=0;o<7;o++)u[o]=Ve(t,(o+a)%7,s,"day");return u}function Ae(e,t,n,s){var i=xe(t,n);return e._milliseconds+=s*i._milliseconds,e._days+=s*i._days,e._months+=s*i._months,e._bubble()}function je(e){return e<0?Math.floor(e):Math.ceil(e)}function Ze(e){return 4800*e/146097}function ze(e){return 146097*e/4800}function $e(e){return function(){return this.as(e)}}function qe(e){return function(){return this.isValid()?this._data[e]:NaN}}function Je(e){return(e>0)-(e<0)||+e}function Be(){if(!this.isValid())return this.localeData().invalidDate();var e,t,n=An(this._milliseconds)/1e3,s=An(this._days),i=An(this._months);t=y((e=y(n/60))/60),n%=60,e%=60;var r=y(i/12),a=i%=12,o=s,u=t,l=e,d=n?n.toFixed(3).replace(/\.?0+$/,""):"",h=this.asSeconds();if(!h)return"P0D";var c=h<0?"-":"",f=Je(this._months)!==Je(h)?"-":"",m=Je(this._days)!==Je(h)?"-":"",_=Je(this._milliseconds)!==Je(h)?"-":"";return c+"P"+(r?f+r+"Y":"")+(a?f+a+"M":"")+(o?m+o+"D":"")+(u||l||d?"T":"")+(u?_+u+"H":"")+(l?_+l+"M":"")+(d?_+d+"S":"")}var Qe,Xe;Xe=Array.prototype.some?Array.prototype.some:function(e){for(var t=Object(this),n=t.length>>>0,s=0;s68?1900:2e3)};var Ut,Lt=I("FullYear",!0);Ut=Array.prototype.indexOf?Array.prototype.indexOf:function(e){var t;for(t=0;tthis?this:e:c()}),hn=["year","quarter","month","week","day","hour","minute","second","millisecond"];De("Z",":"),De("ZZ",""),C("Z",Dt),C("ZZ",Dt),L(["Z","ZZ"],function(e,t,n){n._useUTC=!0,n._tzm=ke(Dt,e)});var cn=/([\+\-]|\d\d)/gi;e.updateOffset=function(){};var fn=/^(\-|\+)?(?:(\d*)[. ])?(\d+)\:(\d+)(?:\:(\d+)(\.\d*)?)?$/,mn=/^(-|\+)?P(?:([-+]?[0-9,.]*)Y)?(?:([-+]?[0-9,.]*)M)?(?:([-+]?[0-9,.]*)W)?(?:([-+]?[0-9,.]*)D)?(?:T(?:([-+]?[0-9,.]*)H)?(?:([-+]?[0-9,.]*)M)?(?:([-+]?[0-9,.]*)S)?)?$/;xe.fn=ve.prototype,xe.invalid=function(){return xe(NaN)};var _n=We(1,"add"),yn=We(-1,"subtract");e.defaultFormat="YYYY-MM-DDTHH:mm:ssZ",e.defaultFormatUtc="YYYY-MM-DDTHH:mm:ss[Z]";var gn=v("moment().lang() is deprecated. Instead, use moment().localeData() to get the language configuration. Use moment().locale() to change languages.",function(e){return void 0===e?this.localeData():this.locale(e)});P(0,["gg",2],0,function(){return this.weekYear()%100}),P(0,["GG",2],0,function(){return this.isoWeekYear()%100}),Ue("gggg","weekYear"),Ue("ggggg","weekYear"),Ue("GGGG","isoWeekYear"),Ue("GGGGG","isoWeekYear"),Y("weekYear","gg"),Y("isoWeekYear","GG"),x("weekYear",1),x("isoWeekYear",1),C("G",Mt),C("g",Mt),C("GG",mt,dt),C("gg",mt,dt),C("GGGG",pt,ct),C("gggg",pt,ct),C("GGGGG",wt,ft),C("ggggg",wt,ft),N(["gggg","ggggg","GGGG","GGGGG"],function(e,t,n,s){t[s.substr(0,2)]=g(e)}),N(["gg","GG"],function(t,n,s,i){n[i]=e.parseTwoDigitYear(t)}),P("Q",0,"Qo","quarter"),Y("quarter","Q"),x("quarter",7),C("Q",lt),L("Q",function(e,t){t[xt]=3*(g(e)-1)}),P("D",["DD",2],"Do","date"),Y("date","D"),x("date",9),C("D",mt),C("DD",mt,dt),C("Do",function(e,t){return e?t._dayOfMonthOrdinalParse||t._ordinalParse:t._dayOfMonthOrdinalParseLenient}),L(["D","DD"],bt),L("Do",function(e,t){t[bt]=g(e.match(mt)[0])});var pn=I("Date",!0);P("DDD",["DDDD",3],"DDDo","dayOfYear"),Y("dayOfYear","DDD"),x("dayOfYear",4),C("DDD",gt),C("DDDD",ht),L(["DDD","DDDD"],function(e,t,n){n._dayOfYear=g(e)}),P("m",["mm",2],0,"minute"),Y("minute","m"),x("minute",14),C("m",mt),C("mm",mt,dt),L(["m","mm"],Wt);var wn=I("Minutes",!1);P("s",["ss",2],0,"second"),Y("second","s"),x("second",15),C("s",mt),C("ss",mt,dt),L(["s","ss"],Ht);var vn=I("Seconds",!1);P("S",0,0,function(){return~~(this.millisecond()/100)}),P(0,["SS",2],0,function(){return~~(this.millisecond()/10)}),P(0,["SSS",3],0,"millisecond"),P(0,["SSSS",4],0,function(){return 10*this.millisecond()}),P(0,["SSSSS",5],0,function(){return 100*this.millisecond()}),P(0,["SSSSSS",6],0,function(){return 1e3*this.millisecond()}),P(0,["SSSSSSS",7],0,function(){return 1e4*this.millisecond()}),P(0,["SSSSSSSS",8],0,function(){return 1e5*this.millisecond()}),P(0,["SSSSSSSSS",9],0,function(){return 1e6*this.millisecond()}),Y("millisecond","ms"),x("millisecond",16),C("S",gt,lt),C("SS",gt,dt),C("SSS",gt,ht);var Mn;for(Mn="SSSS";Mn.length<=9;Mn+="S")C(Mn,vt);for(Mn="S";Mn.length<=9;Mn+="S")L(Mn,Ne);var Sn=I("Milliseconds",!1);P("z",0,0,"zoneAbbr"),P("zz",0,0,"zoneName");var Dn=m.prototype;Dn.add=_n,Dn.calendar=function(t,n){var s=t||pe(),i=Ye(s,this).startOf("day"),r=e.calendarFormat(this,i)||"sameElse",a=n&&(S(n[r])?n[r].call(this,s):n[r]);return this.format(a||this.localeData().calendar(r,this,pe(s)))},Dn.clone=function(){return new m(this)},Dn.diff=function(e,t,n){var s,i,r;if(!this.isValid())return NaN;if(!(s=Ye(e,this)).isValid())return NaN;switch(i=6e4*(s.utcOffset()-this.utcOffset()),t=O(t)){case"year":r=Re(this,s)/12;break;case"month":r=Re(this,s);break;case"quarter":r=Re(this,s)/3;break;case"second":r=(this-s)/1e3;break;case"minute":r=(this-s)/6e4;break;case"hour":r=(this-s)/36e5;break;case"day":r=(this-s-i)/864e5;break;case"week":r=(this-s-i)/6048e5;break;default:r=this-s}return n?r:y(r)},Dn.endOf=function(e){return void 0===(e=O(e))||"millisecond"===e?this:("date"===e&&(e="day"),this.startOf(e).add(1,"isoWeek"===e?"week":e).subtract(1,"ms"))},Dn.format=function(t){t||(t=this.isUtc()?e.defaultFormatUtc:e.defaultFormat);var n=H(this,t);return this.localeData().postformat(n)},Dn.from=function(e,t){return this.isValid()&&(_(e)&&e.isValid()||pe(e).isValid())?xe({to:this,from:e}).locale(this.locale()).humanize(!t):this.localeData().invalidDate()},Dn.fromNow=function(e){return this.from(pe(),e)},Dn.to=function(e,t){return this.isValid()&&(_(e)&&e.isValid()||pe(e).isValid())?xe({from:this,to:e}).locale(this.locale()).humanize(!t):this.localeData().invalidDate()},Dn.toNow=function(e){return this.to(pe(),e)},Dn.get=function(e){return e=O(e),S(this[e])?this[e]():this},Dn.invalidAt=function(){return d(this).overflow},Dn.isAfter=function(e,t){var n=_(e)?e:pe(e);return!(!this.isValid()||!n.isValid())&&("millisecond"===(t=O(s(t)?"millisecond":t))?this.valueOf()>n.valueOf():n.valueOf()9999?H(n,t?"YYYYYY-MM-DD[T]HH:mm:ss.SSS[Z]":"YYYYYY-MM-DD[T]HH:mm:ss.SSSZ"):S(Date.prototype.toISOString)?t?this.toDate().toISOString():new Date(this._d.valueOf()).toISOString().replace("Z",H(n,"Z")):H(n,t?"YYYY-MM-DD[T]HH:mm:ss.SSS[Z]":"YYYY-MM-DD[T]HH:mm:ss.SSSZ")},Dn.inspect=function(){if(!this.isValid())return"moment.invalid(/* "+this._i+" */)";var e="moment",t="";this.isLocal()||(e=0===this.utcOffset()?"moment.utc":"moment.parseZone",t="Z");var n="["+e+'("]',s=0<=this.year()&&this.year()<=9999?"YYYY":"YYYYYY",i=t+'[")]';return this.format(n+s+"-MM-DD[T]HH:mm:ss.SSS"+i)},Dn.toJSON=function(){return this.isValid()?this.toISOString():null},Dn.toString=function(){return this.clone().locale("en").format("ddd MMM DD YYYY HH:mm:ss [GMT]ZZ")},Dn.unix=function(){return Math.floor(this.valueOf()/1e3)},Dn.valueOf=function(){return this._d.valueOf()-6e4*(this._offset||0)},Dn.creationData=function(){return{input:this._i,format:this._f,locale:this._locale,isUTC:this._isUTC,strict:this._strict}},Dn.year=Lt,Dn.isLeapYear=function(){return E(this.year())},Dn.weekYear=function(e){return Le.call(this,e,this.week(),this.weekday(),this.localeData()._week.dow,this.localeData()._week.doy)},Dn.isoWeekYear=function(e){return Le.call(this,e,this.isoWeek(),this.isoWeekday(),1,4)},Dn.quarter=Dn.quarters=function(e){return null==e?Math.ceil((this.month()+1)/3):this.month(3*(e-1)+this.month()%3)},Dn.month=$,Dn.daysInMonth=function(){return Z(this.year(),this.month())},Dn.week=Dn.weeks=function(e){var t=this.localeData().week(this);return null==e?t:this.add(7*(e-t),"d")},Dn.isoWeek=Dn.isoWeeks=function(e){var t=X(this,1,4).week;return null==e?t:this.add(7*(e-t),"d")},Dn.weeksInYear=function(){var e=this.localeData()._week;return K(this.year(),e.dow,e.doy)},Dn.isoWeeksInYear=function(){return K(this.year(),1,4)},Dn.date=pn,Dn.day=Dn.days=function(e){if(!this.isValid())return null!=e?this:NaN;var t=this._isUTC?this._d.getUTCDay():this._d.getDay();return null!=e?(e=function(e,t){return"string"!=typeof e?e:isNaN(e)?"number"==typeof(e=t.weekdaysParse(e))?e:null:parseInt(e,10)}(e,this.localeData()),this.add(e-t,"d")):t},Dn.weekday=function(e){if(!this.isValid())return null!=e?this:NaN;var t=(this.day()+7-this.localeData()._week.dow)%7;return null==e?t:this.add(e-t,"d")},Dn.isoWeekday=function(e){if(!this.isValid())return null!=e?this:NaN;if(null!=e){var t=function(e,t){return"string"==typeof e?t.weekdaysParse(e)%7||7:isNaN(e)?null:e}(e,this.localeData());return this.day(this.day()%7?t:t-7)}return this.day()||7},Dn.dayOfYear=function(e){var t=Math.round((this.clone().startOf("day")-this.clone().startOf("year"))/864e5)+1;return null==e?t:this.add(e-t,"d")},Dn.hour=Dn.hours=Bt,Dn.minute=Dn.minutes=wn,Dn.second=Dn.seconds=vn,Dn.millisecond=Dn.milliseconds=Sn,Dn.utcOffset=function(t,n,s){var i,r=this._offset||0;if(!this.isValid())return null!=t?this:NaN;if(null!=t){if("string"==typeof t){if(null===(t=ke(Dt,t)))return this}else Math.abs(t)<16&&!s&&(t*=60);return!this._isUTC&&n&&(i=Oe(this)),this._offset=t,this._isUTC=!0,null!=i&&this.add(i,"m"),r!==t&&(!n||this._changeInProgress?He(this,xe(t-r,"m"),1,!1):this._changeInProgress||(this._changeInProgress=!0,e.updateOffset(this,!0),this._changeInProgress=null)),this}return this._isUTC?r:Oe(this)},Dn.utc=function(e){return this.utcOffset(0,e)},Dn.local=function(e){return this._isUTC&&(this.utcOffset(0,e),this._isUTC=!1,e&&this.subtract(Oe(this),"m")),this},Dn.parseZone=function(){if(null!=this._tzm)this.utcOffset(this._tzm,!1,!0);else if("string"==typeof this._i){var e=ke(St,this._i);null!=e?this.utcOffset(e):this.utcOffset(0,!0)}return this},Dn.hasAlignedHourOffset=function(e){return!!this.isValid()&&(e=e?pe(e).utcOffset():0,(this.utcOffset()-e)%60==0)},Dn.isDST=function(){return this.utcOffset()>this.clone().month(0).utcOffset()||this.utcOffset()>this.clone().month(5).utcOffset()},Dn.isLocal=function(){return!!this.isValid()&&!this._isUTC},Dn.isUtcOffset=function(){return!!this.isValid()&&this._isUTC},Dn.isUtc=Te,Dn.isUTC=Te,Dn.zoneAbbr=function(){return this._isUTC?"UTC":""},Dn.zoneName=function(){return this._isUTC?"Coordinated Universal Time":""},Dn.dates=v("dates accessor is deprecated. Use date instead.",pn),Dn.months=v("months accessor is deprecated. Use month instead",$),Dn.years=v("years accessor is deprecated. Use year instead",Lt),Dn.zone=v("moment().zone is deprecated, use moment().utcOffset instead. http://momentjs.com/guides/#/warnings/zone/",function(e,t){return null!=e?("string"!=typeof e&&(e=-e),this.utcOffset(e,t),this):-this.utcOffset()}),Dn.isDSTShifted=v("isDSTShifted is deprecated. See http://momentjs.com/guides/#/warnings/dst-shifted/ for more information",function(){if(!s(this._isDSTShifted))return this._isDSTShifted;var e={};if(f(e,this),(e=ye(e))._a){var t=e._isUTC?l(e._a):pe(e._a);this._isDSTShifted=this.isValid()&&p(e._a,t.toArray())>0}else this._isDSTShifted=!1;return this._isDSTShifted});var kn=k.prototype;kn.calendar=function(e,t,n){var s=this._calendar[e]||this._calendar.sameElse;return S(s)?s.call(t,n):s},kn.longDateFormat=function(e){var t=this._longDateFormat[e],n=this._longDateFormat[e.toUpperCase()];return t||!n?t:(this._longDateFormat[e]=n.replace(/MMMM|MM|DD|dddd/g,function(e){return e.slice(1)}),this._longDateFormat[e])},kn.invalidDate=function(){return this._invalidDate},kn.ordinal=function(e){return this._ordinal.replace("%d",e)},kn.preparse=Ge,kn.postformat=Ge,kn.relativeTime=function(e,t,n,s){var i=this._relativeTime[n];return S(i)?i(e,t,n,s):i.replace(/%d/i,e)},kn.pastFuture=function(e,t){var n=this._relativeTime[e>0?"future":"past"];return S(n)?n(t):n.replace(/%s/i,t)},kn.set=function(e){var t,n;for(n in e)S(t=e[n])?this[n]=t:this["_"+n]=t;this._config=e,this._dayOfMonthOrdinalParseLenient=new RegExp((this._dayOfMonthOrdinalParse.source||this._ordinalParse.source)+"|"+/\d{1,2}/.source)},kn.months=function(e,n){return e?t(this._months)?this._months[e.month()]:this._months[(this._months.isFormat||Nt).test(n)?"format":"standalone"][e.month()]:t(this._months)?this._months:this._months.standalone},kn.monthsShort=function(e,n){return e?t(this._monthsShort)?this._monthsShort[e.month()]:this._monthsShort[Nt.test(n)?"format":"standalone"][e.month()]:t(this._monthsShort)?this._monthsShort:this._monthsShort.standalone},kn.monthsParse=function(e,t,n){var s,i,r;if(this._monthsParseExact)return function(e,t,n){var s,i,r,a=e.toLocaleLowerCase();if(!this._monthsParse)for(this._monthsParse=[],this._longMonthsParse=[],this._shortMonthsParse=[],s=0;s<12;++s)r=l([2e3,s]),this._shortMonthsParse[s]=this.monthsShort(r,"").toLocaleLowerCase(),this._longMonthsParse[s]=this.months(r,"").toLocaleLowerCase();return n?"MMM"===t?-1!==(i=Ut.call(this._shortMonthsParse,a))?i:null:-1!==(i=Ut.call(this._longMonthsParse,a))?i:null:"MMM"===t?-1!==(i=Ut.call(this._shortMonthsParse,a))?i:-1!==(i=Ut.call(this._longMonthsParse,a))?i:null:-1!==(i=Ut.call(this._longMonthsParse,a))?i:-1!==(i=Ut.call(this._shortMonthsParse,a))?i:null}.call(this,e,t,n);for(this._monthsParse||(this._monthsParse=[],this._longMonthsParse=[],this._shortMonthsParse=[]),s=0;s<12;s++){if(i=l([2e3,s]),n&&!this._longMonthsParse[s]&&(this._longMonthsParse[s]=new RegExp("^"+this.months(i,"").replace(".","")+"$","i"),this._shortMonthsParse[s]=new RegExp("^"+this.monthsShort(i,"").replace(".","")+"$","i")),n||this._monthsParse[s]||(r="^"+this.months(i,"")+"|^"+this.monthsShort(i,""),this._monthsParse[s]=new RegExp(r.replace(".",""),"i")),n&&"MMMM"===t&&this._longMonthsParse[s].test(e))return s;if(n&&"MMM"===t&&this._shortMonthsParse[s].test(e))return s;if(!n&&this._monthsParse[s].test(e))return s}},kn.monthsRegex=function(e){return this._monthsParseExact?(o(this,"_monthsRegex")||q.call(this),e?this._monthsStrictRegex:this._monthsRegex):(o(this,"_monthsRegex")||(this._monthsRegex=It),this._monthsStrictRegex&&e?this._monthsStrictRegex:this._monthsRegex)},kn.monthsShortRegex=function(e){return this._monthsParseExact?(o(this,"_monthsRegex")||q.call(this),e?this._monthsShortStrictRegex:this._monthsShortRegex):(o(this,"_monthsShortRegex")||(this._monthsShortRegex=Et),this._monthsShortStrictRegex&&e?this._monthsShortStrictRegex:this._monthsShortRegex)},kn.week=function(e){return X(e,this._week.dow,this._week.doy).week},kn.firstDayOfYear=function(){return this._week.doy},kn.firstDayOfWeek=function(){return this._week.dow},kn.weekdays=function(e,n){return e?t(this._weekdays)?this._weekdays[e.day()]:this._weekdays[this._weekdays.isFormat.test(n)?"format":"standalone"][e.day()]:t(this._weekdays)?this._weekdays:this._weekdays.standalone},kn.weekdaysMin=function(e){return e?this._weekdaysMin[e.day()]:this._weekdaysMin},kn.weekdaysShort=function(e){return e?this._weekdaysShort[e.day()]:this._weekdaysShort},kn.weekdaysParse=function(e,t,n){var s,i,r;if(this._weekdaysParseExact)return function(e,t,n){var s,i,r,a=e.toLocaleLowerCase();if(!this._weekdaysParse)for(this._weekdaysParse=[],this._shortWeekdaysParse=[],this._minWeekdaysParse=[],s=0;s<7;++s)r=l([2e3,1]).day(s),this._minWeekdaysParse[s]=this.weekdaysMin(r,"").toLocaleLowerCase(),this._shortWeekdaysParse[s]=this.weekdaysShort(r,"").toLocaleLowerCase(),this._weekdaysParse[s]=this.weekdays(r,"").toLocaleLowerCase();return n?"dddd"===t?-1!==(i=Ut.call(this._weekdaysParse,a))?i:null:"ddd"===t?-1!==(i=Ut.call(this._shortWeekdaysParse,a))?i:null:-1!==(i=Ut.call(this._minWeekdaysParse,a))?i:null:"dddd"===t?-1!==(i=Ut.call(this._weekdaysParse,a))?i:-1!==(i=Ut.call(this._shortWeekdaysParse,a))?i:-1!==(i=Ut.call(this._minWeekdaysParse,a))?i:null:"ddd"===t?-1!==(i=Ut.call(this._shortWeekdaysParse,a))?i:-1!==(i=Ut.call(this._weekdaysParse,a))?i:-1!==(i=Ut.call(this._minWeekdaysParse,a))?i:null:-1!==(i=Ut.call(this._minWeekdaysParse,a))?i:-1!==(i=Ut.call(this._weekdaysParse,a))?i:-1!==(i=Ut.call(this._shortWeekdaysParse,a))?i:null}.call(this,e,t,n);for(this._weekdaysParse||(this._weekdaysParse=[],this._minWeekdaysParse=[],this._shortWeekdaysParse=[],this._fullWeekdaysParse=[]),s=0;s<7;s++){if(i=l([2e3,1]).day(s),n&&!this._fullWeekdaysParse[s]&&(this._fullWeekdaysParse[s]=new RegExp("^"+this.weekdays(i,"").replace(".",".?")+"$","i"),this._shortWeekdaysParse[s]=new RegExp("^"+this.weekdaysShort(i,"").replace(".",".?")+"$","i"),this._minWeekdaysParse[s]=new RegExp("^"+this.weekdaysMin(i,"").replace(".",".?")+"$","i")),this._weekdaysParse[s]||(r="^"+this.weekdays(i,"")+"|^"+this.weekdaysShort(i,"")+"|^"+this.weekdaysMin(i,""),this._weekdaysParse[s]=new RegExp(r.replace(".",""),"i")),n&&"dddd"===t&&this._fullWeekdaysParse[s].test(e))return s;if(n&&"ddd"===t&&this._shortWeekdaysParse[s].test(e))return s;if(n&&"dd"===t&&this._minWeekdaysParse[s].test(e))return s;if(!n&&this._weekdaysParse[s].test(e))return s}},kn.weekdaysRegex=function(e){return this._weekdaysParseExact?(o(this,"_weekdaysRegex")||ee.call(this),e?this._weekdaysStrictRegex:this._weekdaysRegex):(o(this,"_weekdaysRegex")||(this._weekdaysRegex=zt),this._weekdaysStrictRegex&&e?this._weekdaysStrictRegex:this._weekdaysRegex)},kn.weekdaysShortRegex=function(e){return this._weekdaysParseExact?(o(this,"_weekdaysRegex")||ee.call(this),e?this._weekdaysShortStrictRegex:this._weekdaysShortRegex):(o(this,"_weekdaysShortRegex")||(this._weekdaysShortRegex=$t),this._weekdaysShortStrictRegex&&e?this._weekdaysShortStrictRegex:this._weekdaysShortRegex)},kn.weekdaysMinRegex=function(e){return this._weekdaysParseExact?(o(this,"_weekdaysRegex")||ee.call(this),e?this._weekdaysMinStrictRegex:this._weekdaysMinRegex):(o(this,"_weekdaysMinRegex")||(this._weekdaysMinRegex=qt),this._weekdaysMinStrictRegex&&e?this._weekdaysMinStrictRegex:this._weekdaysMinRegex)},kn.isPM=function(e){return"p"===(e+"").toLowerCase().charAt(0)},kn.meridiem=function(e,t,n){return e>11?n?"pm":"PM":n?"am":"AM"},ae("en",{dayOfMonthOrdinalParse:/\d{1,2}(th|st|nd|rd)/,ordinal:function(e){var t=e%10;return e+(1===g(e%100/10)?"th":1===t?"st":2===t?"nd":3===t?"rd":"th")}}),e.lang=v("moment.lang is deprecated. Use moment.locale instead.",ae),e.langData=v("moment.langData is deprecated. Use moment.localeData instead.",ue);var Yn=Math.abs,On=$e("ms"),Tn=$e("s"),xn=$e("m"),bn=$e("h"),Pn=$e("d"),Wn=$e("w"),Hn=$e("M"),Rn=$e("y"),Cn=qe("milliseconds"),Fn=qe("seconds"),Un=qe("minutes"),Ln=qe("hours"),Nn=qe("days"),Gn=qe("months"),Vn=qe("years"),En=Math.round,In={ss:44,s:45,m:45,h:22,d:26,M:11},An=Math.abs,jn=ve.prototype;return jn.isValid=function(){return this._isValid},jn.abs=function(){var e=this._data;return this._milliseconds=Yn(this._milliseconds),this._days=Yn(this._days),this._months=Yn(this._months),e.milliseconds=Yn(e.milliseconds),e.seconds=Yn(e.seconds),e.minutes=Yn(e.minutes),e.hours=Yn(e.hours),e.months=Yn(e.months),e.years=Yn(e.years),this},jn.add=function(e,t){return Ae(this,e,t,1)},jn.subtract=function(e,t){return Ae(this,e,t,-1)},jn.as=function(e){if(!this.isValid())return NaN;var t,n,s=this._milliseconds;if("month"===(e=O(e))||"year"===e)return t=this._days+s/864e5,n=this._months+Ze(t),"month"===e?n:n/12;switch(t=this._days+Math.round(ze(this._months)),e){case"week":return t/7+s/6048e5;case"day":return t+s/864e5;case"hour":return 24*t+s/36e5;case"minute":return 1440*t+s/6e4;case"second":return 86400*t+s/1e3;case"millisecond":return Math.floor(864e5*t)+s;default:throw new Error("Unknown unit "+e)}},jn.asMilliseconds=On,jn.asSeconds=Tn,jn.asMinutes=xn,jn.asHours=bn,jn.asDays=Pn,jn.asWeeks=Wn,jn.asMonths=Hn,jn.asYears=Rn,jn.valueOf=function(){return this.isValid()?this._milliseconds+864e5*this._days+this._months%12*2592e6+31536e6*g(this._months/12):NaN},jn._bubble=function(){var e,t,n,s,i,r=this._milliseconds,a=this._days,o=this._months,u=this._data;return r>=0&&a>=0&&o>=0||r<=0&&a<=0&&o<=0||(r+=864e5*je(ze(o)+a),a=0,o=0),u.milliseconds=r%1e3,e=y(r/1e3),u.seconds=e%60,t=y(e/60),u.minutes=t%60,n=y(t/60),u.hours=n%24,a+=y(n/24),i=y(Ze(a)),o+=i,a-=je(ze(i)),s=y(o/12),o%=12,u.days=a,u.months=o,u.years=s,this},jn.clone=function(){return xe(this)},jn.get=function(e){return e=O(e),this.isValid()?this[e+"s"]():NaN},jn.milliseconds=Cn,jn.seconds=Fn,jn.minutes=Un,jn.hours=Ln,jn.days=Nn,jn.weeks=function(){return y(this.days()/7)},jn.months=Gn,jn.years=Vn,jn.humanize=function(e){if(!this.isValid())return this.localeData().invalidDate();var t=this.localeData(),n=function(e,t,n){var s=xe(e).abs(),i=En(s.as("s")),r=En(s.as("m")),a=En(s.as("h")),o=En(s.as("d")),u=En(s.as("M")),l=En(s.as("y")),d=i<=In.ss&&["s",i]||i0,d[4]=n,function(e,t,n,s,i){return i.relativeTime(t||1,!!n,e,s)}.apply(null,d)}(this,!e,t);return e&&(n=t.pastFuture(+this,n)),t.postformat(n)},jn.toISOString=Be,jn.toString=Be,jn.toJSON=Be,jn.locale=Ce,jn.localeData=Fe,jn.toIsoString=v("toIsoString() is deprecated. Please use toISOString() instead (notice the capitals)",Be),jn.lang=gn,P("X",0,0,"unix"),P("x",0,0,"valueOf"),C("x",Mt),C("X",/[+-]?\d+(\.\d{1,3})?/),L("X",function(e,t,n){n._d=new Date(1e3*parseFloat(e,10))}),L("x",function(e,t,n){n._d=new Date(g(e))}),e.version="2.20.1",function(e){Qe=e}(pe),e.fn=Dn,e.min=function(){return we("isBefore",[].slice.call(arguments,0))},e.max=function(){return we("isAfter",[].slice.call(arguments,0))},e.now=function(){return Date.now?Date.now():+new Date},e.utc=l,e.unix=function(e){return pe(1e3*e)},e.months=function(e,t){return Ee(e,t,"months")},e.isDate=r,e.locale=ae,e.invalid=c,e.duration=xe,e.isMoment=_,e.weekdays=function(e,t,n){return Ie(e,t,n,"weekdays")},e.parseZone=function(){return pe.apply(null,arguments).parseZone()},e.localeData=ue,e.isDuration=Me,e.monthsShort=function(e,t){return Ee(e,t,"monthsShort")},e.weekdaysMin=function(e,t,n){return Ie(e,t,n,"weekdaysMin")},e.defineLocale=oe,e.updateLocale=function(e,t){if(null!=t){var n,s,i=Qt;null!=(s=re(e))&&(i=s._config),(n=new k(t=D(i,t))).parentLocale=Xt[e],Xt[e]=n,ae(e)}else null!=Xt[e]&&(null!=Xt[e].parentLocale?Xt[e]=Xt[e].parentLocale:null!=Xt[e]&&delete Xt[e]);return Xt[e]},e.locales=function(){return nt(Xt)},e.weekdaysShort=function(e,t,n){return Ie(e,t,n,"weekdaysShort")},e.normalizeUnits=O,e.relativeTimeRounding=function(e){return void 0===e?En:"function"==typeof e&&(En=e,!0)},e.relativeTimeThreshold=function(e,t){return void 0!==In[e]&&(void 0===t?In[e]:(In[e]=t,"s"===e&&(In.ss=t-1),!0))},e.calendarFormat=function(e,t){var n=e.diff(t,"days",!0);return n<-6?"sameElse":n<-1?"lastWeek":n<0?"lastDay":n<1?"sameDay":n<2?"nextDay":n<7?"nextWeek":"sameElse"},e.prototype=Dn,e.HTML5_FMT={DATETIME_LOCAL:"YYYY-MM-DDTHH:mm",DATETIME_LOCAL_SECONDS:"YYYY-MM-DDTHH:mm:ss",DATETIME_LOCAL_MS:"YYYY-MM-DDTHH:mm:ss.SSS",DATE:"YYYY-MM-DD",TIME:"HH:mm",TIME_SECONDS:"HH:mm:ss",TIME_MS:"HH:mm:ss.SSS",WEEK:"YYYY-[W]WW",MONTH:"YYYY-MM"},e}); \ No newline at end of file diff --git a/public/admin/assets/js/calendar/schedules.js b/public/admin/assets/js/calendar/schedules.js new file mode 100644 index 0000000..de91b34 --- /dev/null +++ b/public/admin/assets/js/calendar/schedules.js @@ -0,0 +1,165 @@ +'use strict'; + +/*eslint-disable*/ + +var ScheduleList = []; + +var SCHEDULE_CATEGORY = [ + 'milestone', + 'task' +]; + +function ScheduleInfo() { + this.id = null; + this.calendarId = null; + + this.title = null; + this.body = null; + this.isAllday = false; + this.start = null; + this.end = null; + this.category = ''; + this.dueDateClass = ''; + + this.color = null; + this.bgColor = null; + this.dragBgColor = null; + this.borderColor = null; + this.customStyle = ''; + + this.isFocused = false; + this.isPending = false; + this.isVisible = true; + this.isReadOnly = false; + this.goingDuration = 0; + this.comingDuration = 0; + this.recurrenceRule = ''; + this.state = ''; + + this.raw = { + memo: '', + hasToOrCc: false, + hasRecurrenceRule: false, + location: null, + class: 'public', // or 'private' + creator: { + name: '', + avatar: '', + company: '', + email: '', + phone: '' + } + }; +} + +function generateTime(schedule, renderStart, renderEnd) { + var startDate = moment(renderStart.getTime()) + var endDate = moment(renderEnd.getTime()); + var diffDate = endDate.diff(startDate, 'days'); + + schedule.isAllday = chance.bool({likelihood: 30}); + if (schedule.isAllday) { + schedule.category = 'allday'; + } else if (chance.bool({likelihood: 30})) { + schedule.category = SCHEDULE_CATEGORY[chance.integer({min: 0, max: 1})]; + if (schedule.category === SCHEDULE_CATEGORY[1]) { + schedule.dueDateClass = 'morning'; + } + } else { + schedule.category = 'time'; + } + + startDate.add(chance.integer({min: 0, max: diffDate}), 'days'); + startDate.hours(chance.integer({min: 0, max: 23})) + startDate.minutes(chance.bool() ? 0 : 30); + schedule.start = startDate.toDate(); + + endDate = moment(startDate); + if (schedule.isAllday) { + endDate.add(chance.integer({min: 0, max: 3}), 'days'); + } + + schedule.end = endDate + .add(chance.integer({min: 1, max: 4}), 'hour') + .toDate(); + + if (!schedule.isAllday && chance.bool({likelihood: 20})) { + schedule.goingDuration = chance.integer({min: 30, max: 120}); + schedule.comingDuration = chance.integer({min: 30, max: 120});; + + if (chance.bool({likelihood: 50})) { + schedule.end = schedule.start; + } + } +} + +function generateNames() { + var names = []; + var i = 0; + var length = chance.integer({min: 1, max: 10}); + + for (; i < length; i += 1) { + names.push(chance.name()); + } + + return names; +} + +function generateRandomSchedule(calendar, renderStart, renderEnd) { + var schedule = new ScheduleInfo(); + + schedule.id = chance.guid(); + schedule.calendarId = calendar.id; + + schedule.title = chance.sentence({words: 3}); + schedule.body = chance.bool({likelihood: 20}) ? chance.sentence({words: 10}) : ''; + schedule.isReadOnly = chance.bool({likelihood: 20}); + generateTime(schedule, renderStart, renderEnd); + + schedule.isPrivate = chance.bool({likelihood: 10}); + schedule.location = chance.address(); + schedule.attendees = chance.bool({likelihood: 70}) ? generateNames() : []; + schedule.recurrenceRule = chance.bool({likelihood: 20}) ? 'repeated events' : ''; + schedule.state = chance.bool({likelihood: 20}) ? 'Free' : 'Busy'; + schedule.color = calendar.color; + schedule.bgColor = calendar.bgColor; + schedule.dragBgColor = calendar.dragBgColor; + schedule.borderColor = calendar.borderColor; + + if (schedule.category === 'milestone') { + schedule.color = schedule.bgColor; + schedule.bgColor = 'transparent'; + schedule.dragBgColor = 'transparent'; + schedule.borderColor = 'transparent'; + } + + schedule.raw.memo = chance.sentence(); + schedule.raw.creator.name = chance.name(); + schedule.raw.creator.avatar = chance.avatar(); + schedule.raw.creator.company = chance.company(); + schedule.raw.creator.email = chance.email(); + schedule.raw.creator.phone = chance.phone(); + + if (chance.bool({ likelihood: 20 })) { + var travelTime = chance.minute(); + schedule.goingDuration = travelTime; + schedule.comingDuration = travelTime; + } + + ScheduleList.push(schedule); +} + +function generateSchedule(viewName, renderStart, renderEnd) { + ScheduleList = []; + CalendarList.forEach(function(calendar) { + var i = 0, length = 10; + if (viewName === 'month') { + length = 3; + } else if (viewName === 'day') { + length = 4; + } + for (; i < length; i += 1) { + generateRandomSchedule(calendar, renderStart, renderEnd); + } + }); +} \ No newline at end of file diff --git a/public/admin/assets/js/calendar/tui-calendar.js b/public/admin/assets/js/calendar/tui-calendar.js new file mode 100644 index 0000000..2a88c59 --- /dev/null +++ b/public/admin/assets/js/calendar/tui-calendar.js @@ -0,0 +1,27039 @@ +/*! + * TOAST UI Calendar + * @version 1.13.1 | Tue Jul 06 2021 + * @author NHN FE Development Lab + * @license MIT + */ +(function webpackUniversalModuleDefinition(root, factory) { + if(typeof exports === 'object' && typeof module === 'object') + module.exports = factory(require("tui-code-snippet"), require("tui-date-picker")); + else if(typeof define === 'function' && define.amd) + define(["tui-code-snippet", "tui-date-picker"], factory); + else if(typeof exports === 'object') + exports["Calendar"] = factory(require("tui-code-snippet"), require("tui-date-picker")); + else + root["tui"] = root["tui"] || {}, root["tui"]["Calendar"] = factory((root["tui"] && root["tui"]["util"]), (root["tui"] && root["tui"]["DatePicker"])); +})(window, function(__WEBPACK_EXTERNAL_MODULE_tui_code_snippet__, __WEBPACK_EXTERNAL_MODULE_tui_date_picker__) { +return /******/ (function(modules) { // webpackBootstrap +/******/ // The module cache +/******/ var installedModules = {}; +/******/ +/******/ // The require function +/******/ function __webpack_require__(moduleId) { +/******/ +/******/ // Check if module is in cache +/******/ if(installedModules[moduleId]) { +/******/ return installedModules[moduleId].exports; +/******/ } +/******/ // Create a new module (and put it into the cache) +/******/ var module = installedModules[moduleId] = { +/******/ i: moduleId, +/******/ l: false, +/******/ exports: {} +/******/ }; +/******/ +/******/ // Execute the module function +/******/ modules[moduleId].call(module.exports, module, module.exports, __webpack_require__); +/******/ +/******/ // Flag the module as loaded +/******/ module.l = true; +/******/ +/******/ // Return the exports of the module +/******/ return module.exports; +/******/ } +/******/ +/******/ +/******/ // expose the modules object (__webpack_modules__) +/******/ __webpack_require__.m = modules; +/******/ +/******/ // expose the module cache +/******/ __webpack_require__.c = installedModules; +/******/ +/******/ // define getter function for harmony exports +/******/ __webpack_require__.d = function(exports, name, getter) { +/******/ if(!__webpack_require__.o(exports, name)) { +/******/ Object.defineProperty(exports, name, { enumerable: true, get: getter }); +/******/ } +/******/ }; +/******/ +/******/ // define __esModule on exports +/******/ __webpack_require__.r = function(exports) { +/******/ if(typeof Symbol !== 'undefined' && Symbol.toStringTag) { +/******/ Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' }); +/******/ } +/******/ Object.defineProperty(exports, '__esModule', { value: true }); +/******/ }; +/******/ +/******/ // create a fake namespace object +/******/ // mode & 1: value is a module id, require it +/******/ // mode & 2: merge all properties of value into the ns +/******/ // mode & 4: return value when already ns object +/******/ // mode & 8|1: behave like require +/******/ __webpack_require__.t = function(value, mode) { +/******/ if(mode & 1) value = __webpack_require__(value); +/******/ if(mode & 8) return value; +/******/ if((mode & 4) && typeof value === 'object' && value && value.__esModule) return value; +/******/ var ns = Object.create(null); +/******/ __webpack_require__.r(ns); +/******/ Object.defineProperty(ns, 'default', { enumerable: true, value: value }); +/******/ if(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key)); +/******/ return ns; +/******/ }; +/******/ +/******/ // getDefaultExport function for compatibility with non-harmony modules +/******/ __webpack_require__.n = function(module) { +/******/ var getter = module && module.__esModule ? +/******/ function getDefault() { return module['default']; } : +/******/ function getModuleExports() { return module; }; +/******/ __webpack_require__.d(getter, 'a', getter); +/******/ return getter; +/******/ }; +/******/ +/******/ // Object.prototype.hasOwnProperty.call +/******/ __webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); }; +/******/ +/******/ // __webpack_public_path__ +/******/ __webpack_require__.p = "/dist"; +/******/ +/******/ +/******/ // Load entry module and return exports +/******/ return __webpack_require__(__webpack_require__.s = "./src/index.js"); +/******/ }) +/************************************************************************/ +/******/ ({ + +/***/ "./node_modules/handlebars-template-loader/runtime/index.js": +/*!******************************************************************!*\ + !*** ./node_modules/handlebars-template-loader/runtime/index.js ***! + \******************************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +module.exports = __webpack_require__(/*! handlebars/runtime */ "./node_modules/handlebars/dist/cjs/handlebars.runtime.js"); + +/***/ }), + +/***/ "./node_modules/handlebars/dist/cjs/handlebars.runtime.js": +/*!****************************************************************!*\ + !*** ./node_modules/handlebars/dist/cjs/handlebars.runtime.js ***! + \****************************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + + +exports.__esModule = true; +// istanbul ignore next + +function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; } + +// istanbul ignore next + +function _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } else { var newObj = {}; if (obj != null) { for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) newObj[key] = obj[key]; } } newObj['default'] = obj; return newObj; } } + +var _handlebarsBase = __webpack_require__(/*! ./handlebars/base */ "./node_modules/handlebars/dist/cjs/handlebars/base.js"); + +var base = _interopRequireWildcard(_handlebarsBase); + +// Each of these augment the Handlebars object. No need to setup here. +// (This is done to easily share code between commonjs and browse envs) + +var _handlebarsSafeString = __webpack_require__(/*! ./handlebars/safe-string */ "./node_modules/handlebars/dist/cjs/handlebars/safe-string.js"); + +var _handlebarsSafeString2 = _interopRequireDefault(_handlebarsSafeString); + +var _handlebarsException = __webpack_require__(/*! ./handlebars/exception */ "./node_modules/handlebars/dist/cjs/handlebars/exception.js"); + +var _handlebarsException2 = _interopRequireDefault(_handlebarsException); + +var _handlebarsUtils = __webpack_require__(/*! ./handlebars/utils */ "./node_modules/handlebars/dist/cjs/handlebars/utils.js"); + +var Utils = _interopRequireWildcard(_handlebarsUtils); + +var _handlebarsRuntime = __webpack_require__(/*! ./handlebars/runtime */ "./node_modules/handlebars/dist/cjs/handlebars/runtime.js"); + +var runtime = _interopRequireWildcard(_handlebarsRuntime); + +var _handlebarsNoConflict = __webpack_require__(/*! ./handlebars/no-conflict */ "./node_modules/handlebars/dist/cjs/handlebars/no-conflict.js"); + +var _handlebarsNoConflict2 = _interopRequireDefault(_handlebarsNoConflict); + +// For compatibility and usage outside of module systems, make the Handlebars object a namespace +function create() { + var hb = new base.HandlebarsEnvironment(); + + Utils.extend(hb, base); + hb.SafeString = _handlebarsSafeString2['default']; + hb.Exception = _handlebarsException2['default']; + hb.Utils = Utils; + hb.escapeExpression = Utils.escapeExpression; + + hb.VM = runtime; + hb.template = function (spec) { + return runtime.template(spec, hb); + }; + + return hb; +} + +var inst = create(); +inst.create = create; + +_handlebarsNoConflict2['default'](inst); + +inst['default'] = inst; + +exports['default'] = inst; +module.exports = exports['default']; +//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL2xpYi9oYW5kbGViYXJzLnJ1bnRpbWUuanMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7OEJBQXNCLG1CQUFtQjs7SUFBN0IsSUFBSTs7Ozs7b0NBSU8sMEJBQTBCOzs7O21DQUMzQix3QkFBd0I7Ozs7K0JBQ3ZCLG9CQUFvQjs7SUFBL0IsS0FBSzs7aUNBQ1Esc0JBQXNCOztJQUFuQyxPQUFPOztvQ0FFSSwwQkFBMEI7Ozs7O0FBR2pELFNBQVMsTUFBTSxHQUFHO0FBQ2hCLE1BQUksRUFBRSxHQUFHLElBQUksSUFBSSxDQUFDLHFCQUFxQixFQUFFLENBQUM7O0FBRTFDLE9BQUssQ0FBQyxNQUFNLENBQUMsRUFBRSxFQUFFLElBQUksQ0FBQyxDQUFDO0FBQ3ZCLElBQUUsQ0FBQyxVQUFVLG9DQUFhLENBQUM7QUFDM0IsSUFBRSxDQUFDLFNBQVMsbUNBQVksQ0FBQztBQUN6QixJQUFFLENBQUMsS0FBSyxHQUFHLEtBQUssQ0FBQztBQUNqQixJQUFFLENBQUMsZ0JBQWdCLEdBQUcsS0FBSyxDQUFDLGdCQUFnQixDQUFDOztBQUU3QyxJQUFFLENBQUMsRUFBRSxHQUFHLE9BQU8sQ0FBQztBQUNoQixJQUFFLENBQUMsUUFBUSxHQUFHLFVBQVMsSUFBSSxFQUFFO0FBQzNCLFdBQU8sT0FBTyxDQUFDLFFBQVEsQ0FBQyxJQUFJLEVBQUUsRUFBRSxDQUFDLENBQUM7R0FDbkMsQ0FBQzs7QUFFRixTQUFPLEVBQUUsQ0FBQztDQUNYOztBQUVELElBQUksSUFBSSxHQUFHLE1BQU0sRUFBRSxDQUFDO0FBQ3BCLElBQUksQ0FBQyxNQUFNLEdBQUcsTUFBTSxDQUFDOztBQUVyQixrQ0FBVyxJQUFJLENBQUMsQ0FBQzs7QUFFakIsSUFBSSxDQUFDLFNBQVMsQ0FBQyxHQUFHLElBQUksQ0FBQzs7cUJBRVIsSUFBSSIsImZpbGUiOiJoYW5kbGViYXJzLnJ1bnRpbWUuanMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgKiBhcyBiYXNlIGZyb20gJy4vaGFuZGxlYmFycy9iYXNlJztcblxuLy8gRWFjaCBvZiB0aGVzZSBhdWdtZW50IHRoZSBIYW5kbGViYXJzIG9iamVjdC4gTm8gbmVlZCB0byBzZXR1cCBoZXJlLlxuLy8gKFRoaXMgaXMgZG9uZSB0byBlYXNpbHkgc2hhcmUgY29kZSBiZXR3ZWVuIGNvbW1vbmpzIGFuZCBicm93c2UgZW52cylcbmltcG9ydCBTYWZlU3RyaW5nIGZyb20gJy4vaGFuZGxlYmFycy9zYWZlLXN0cmluZyc7XG5pbXBvcnQgRXhjZXB0aW9uIGZyb20gJy4vaGFuZGxlYmFycy9leGNlcHRpb24nO1xuaW1wb3J0ICogYXMgVXRpbHMgZnJvbSAnLi9oYW5kbGViYXJzL3V0aWxzJztcbmltcG9ydCAqIGFzIHJ1bnRpbWUgZnJvbSAnLi9oYW5kbGViYXJzL3J1bnRpbWUnO1xuXG5pbXBvcnQgbm9Db25mbGljdCBmcm9tICcuL2hhbmRsZWJhcnMvbm8tY29uZmxpY3QnO1xuXG4vLyBGb3IgY29tcGF0aWJpbGl0eSBhbmQgdXNhZ2Ugb3V0c2lkZSBvZiBtb2R1bGUgc3lzdGVtcywgbWFrZSB0aGUgSGFuZGxlYmFycyBvYmplY3QgYSBuYW1lc3BhY2VcbmZ1bmN0aW9uIGNyZWF0ZSgpIHtcbiAgbGV0IGhiID0gbmV3IGJhc2UuSGFuZGxlYmFyc0Vudmlyb25tZW50KCk7XG5cbiAgVXRpbHMuZXh0ZW5kKGhiLCBiYXNlKTtcbiAgaGIuU2FmZVN0cmluZyA9IFNhZmVTdHJpbmc7XG4gIGhiLkV4Y2VwdGlvbiA9IEV4Y2VwdGlvbjtcbiAgaGIuVXRpbHMgPSBVdGlscztcbiAgaGIuZXNjYXBlRXhwcmVzc2lvbiA9IFV0aWxzLmVzY2FwZUV4cHJlc3Npb247XG5cbiAgaGIuVk0gPSBydW50aW1lO1xuICBoYi50ZW1wbGF0ZSA9IGZ1bmN0aW9uKHNwZWMpIHtcbiAgICByZXR1cm4gcnVudGltZS50ZW1wbGF0ZShzcGVjLCBoYik7XG4gIH07XG5cbiAgcmV0dXJuIGhiO1xufVxuXG5sZXQgaW5zdCA9IGNyZWF0ZSgpO1xuaW5zdC5jcmVhdGUgPSBjcmVhdGU7XG5cbm5vQ29uZmxpY3QoaW5zdCk7XG5cbmluc3RbJ2RlZmF1bHQnXSA9IGluc3Q7XG5cbmV4cG9ydCBkZWZhdWx0IGluc3Q7XG4iXX0= + + +/***/ }), + +/***/ "./node_modules/handlebars/dist/cjs/handlebars/base.js": +/*!*************************************************************!*\ + !*** ./node_modules/handlebars/dist/cjs/handlebars/base.js ***! + \*************************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + + +exports.__esModule = true; +exports.HandlebarsEnvironment = HandlebarsEnvironment; +// istanbul ignore next + +function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; } + +var _utils = __webpack_require__(/*! ./utils */ "./node_modules/handlebars/dist/cjs/handlebars/utils.js"); + +var _exception = __webpack_require__(/*! ./exception */ "./node_modules/handlebars/dist/cjs/handlebars/exception.js"); + +var _exception2 = _interopRequireDefault(_exception); + +var _helpers = __webpack_require__(/*! ./helpers */ "./node_modules/handlebars/dist/cjs/handlebars/helpers.js"); + +var _decorators = __webpack_require__(/*! ./decorators */ "./node_modules/handlebars/dist/cjs/handlebars/decorators.js"); + +var _logger = __webpack_require__(/*! ./logger */ "./node_modules/handlebars/dist/cjs/handlebars/logger.js"); + +var _logger2 = _interopRequireDefault(_logger); + +var _internalProtoAccess = __webpack_require__(/*! ./internal/proto-access */ "./node_modules/handlebars/dist/cjs/handlebars/internal/proto-access.js"); + +var VERSION = '4.7.7'; +exports.VERSION = VERSION; +var COMPILER_REVISION = 8; +exports.COMPILER_REVISION = COMPILER_REVISION; +var LAST_COMPATIBLE_COMPILER_REVISION = 7; + +exports.LAST_COMPATIBLE_COMPILER_REVISION = LAST_COMPATIBLE_COMPILER_REVISION; +var REVISION_CHANGES = { + 1: '<= 1.0.rc.2', // 1.0.rc.2 is actually rev2 but doesn't report it + 2: '== 1.0.0-rc.3', + 3: '== 1.0.0-rc.4', + 4: '== 1.x.x', + 5: '== 2.0.0-alpha.x', + 6: '>= 2.0.0-beta.1', + 7: '>= 4.0.0 <4.3.0', + 8: '>= 4.3.0' +}; + +exports.REVISION_CHANGES = REVISION_CHANGES; +var objectType = '[object Object]'; + +function HandlebarsEnvironment(helpers, partials, decorators) { + this.helpers = helpers || {}; + this.partials = partials || {}; + this.decorators = decorators || {}; + + _helpers.registerDefaultHelpers(this); + _decorators.registerDefaultDecorators(this); +} + +HandlebarsEnvironment.prototype = { + constructor: HandlebarsEnvironment, + + logger: _logger2['default'], + log: _logger2['default'].log, + + registerHelper: function registerHelper(name, fn) { + if (_utils.toString.call(name) === objectType) { + if (fn) { + throw new _exception2['default']('Arg not supported with multiple helpers'); + } + _utils.extend(this.helpers, name); + } else { + this.helpers[name] = fn; + } + }, + unregisterHelper: function unregisterHelper(name) { + delete this.helpers[name]; + }, + + registerPartial: function registerPartial(name, partial) { + if (_utils.toString.call(name) === objectType) { + _utils.extend(this.partials, name); + } else { + if (typeof partial === 'undefined') { + throw new _exception2['default']('Attempting to register a partial called "' + name + '" as undefined'); + } + this.partials[name] = partial; + } + }, + unregisterPartial: function unregisterPartial(name) { + delete this.partials[name]; + }, + + registerDecorator: function registerDecorator(name, fn) { + if (_utils.toString.call(name) === objectType) { + if (fn) { + throw new _exception2['default']('Arg not supported with multiple decorators'); + } + _utils.extend(this.decorators, name); + } else { + this.decorators[name] = fn; + } + }, + unregisterDecorator: function unregisterDecorator(name) { + delete this.decorators[name]; + }, + /** + * Reset the memory of illegal property accesses that have already been logged. + * @deprecated should only be used in handlebars test-cases + */ + resetLoggedPropertyAccesses: function resetLoggedPropertyAccesses() { + _internalProtoAccess.resetLoggedProperties(); + } +}; + +var log = _logger2['default'].log; + +exports.log = log; +exports.createFrame = _utils.createFrame; +exports.logger = _logger2['default']; +//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL2xpYi9oYW5kbGViYXJzL2Jhc2UuanMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7cUJBQThDLFNBQVM7O3lCQUNqQyxhQUFhOzs7O3VCQUNJLFdBQVc7OzBCQUNSLGNBQWM7O3NCQUNyQyxVQUFVOzs7O21DQUNTLHlCQUF5Qjs7QUFFeEQsSUFBTSxPQUFPLEdBQUcsT0FBTyxDQUFDOztBQUN4QixJQUFNLGlCQUFpQixHQUFHLENBQUMsQ0FBQzs7QUFDNUIsSUFBTSxpQ0FBaUMsR0FBRyxDQUFDLENBQUM7OztBQUU1QyxJQUFNLGdCQUFnQixHQUFHO0FBQzlCLEdBQUMsRUFBRSxhQUFhO0FBQ2hCLEdBQUMsRUFBRSxlQUFlO0FBQ2xCLEdBQUMsRUFBRSxlQUFlO0FBQ2xCLEdBQUMsRUFBRSxVQUFVO0FBQ2IsR0FBQyxFQUFFLGtCQUFrQjtBQUNyQixHQUFDLEVBQUUsaUJBQWlCO0FBQ3BCLEdBQUMsRUFBRSxpQkFBaUI7QUFDcEIsR0FBQyxFQUFFLFVBQVU7Q0FDZCxDQUFDOzs7QUFFRixJQUFNLFVBQVUsR0FBRyxpQkFBaUIsQ0FBQzs7QUFFOUIsU0FBUyxxQkFBcUIsQ0FBQyxPQUFPLEVBQUUsUUFBUSxFQUFFLFVBQVUsRUFBRTtBQUNuRSxNQUFJLENBQUMsT0FBTyxHQUFHLE9BQU8sSUFBSSxFQUFFLENBQUM7QUFDN0IsTUFBSSxDQUFDLFFBQVEsR0FBRyxRQUFRLElBQUksRUFBRSxDQUFDO0FBQy9CLE1BQUksQ0FBQyxVQUFVLEdBQUcsVUFBVSxJQUFJLEVBQUUsQ0FBQzs7QUFFbkMsa0NBQXVCLElBQUksQ0FBQyxDQUFDO0FBQzdCLHdDQUEwQixJQUFJLENBQUMsQ0FBQztDQUNqQzs7QUFFRCxxQkFBcUIsQ0FBQyxTQUFTLEdBQUc7QUFDaEMsYUFBVyxFQUFFLHFCQUFxQjs7QUFFbEMsUUFBTSxxQkFBUTtBQUNkLEtBQUcsRUFBRSxvQkFBTyxHQUFHOztBQUVmLGdCQUFjLEVBQUUsd0JBQVMsSUFBSSxFQUFFLEVBQUUsRUFBRTtBQUNqQyxRQUFJLGdCQUFTLElBQUksQ0FBQyxJQUFJLENBQUMsS0FBSyxVQUFVLEVBQUU7QUFDdEMsVUFBSSxFQUFFLEVBQUU7QUFDTixjQUFNLDJCQUFjLHlDQUF5QyxDQUFDLENBQUM7T0FDaEU7QUFDRCxvQkFBTyxJQUFJLENBQUMsT0FBTyxFQUFFLElBQUksQ0FBQyxDQUFDO0tBQzVCLE1BQU07QUFDTCxVQUFJLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxHQUFHLEVBQUUsQ0FBQztLQUN6QjtHQUNGO0FBQ0Qsa0JBQWdCLEVBQUUsMEJBQVMsSUFBSSxFQUFFO0FBQy9CLFdBQU8sSUFBSSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0FBQztHQUMzQjs7QUFFRCxpQkFBZSxFQUFFLHlCQUFTLElBQUksRUFBRSxPQUFPLEVBQUU7QUFDdkMsUUFBSSxnQkFBUyxJQUFJLENBQUMsSUFBSSxDQUFDLEtBQUssVUFBVSxFQUFFO0FBQ3RDLG9CQUFPLElBQUksQ0FBQyxRQUFRLEVBQUUsSUFBSSxDQUFDLENBQUM7S0FDN0IsTUFBTTtBQUNMLFVBQUksT0FBTyxPQUFPLEtBQUssV0FBVyxFQUFFO0FBQ2xDLGNBQU0seUVBQ3dDLElBQUksb0JBQ2pELENBQUM7T0FDSDtBQUNELFVBQUksQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLEdBQUcsT0FBTyxDQUFDO0tBQy9CO0dBQ0Y7QUFDRCxtQkFBaUIsRUFBRSwyQkFBUyxJQUFJLEVBQUU7QUFDaEMsV0FBTyxJQUFJLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxDQUFDO0dBQzVCOztBQUVELG1CQUFpQixFQUFFLDJCQUFTLElBQUksRUFBRSxFQUFFLEVBQUU7QUFDcEMsUUFBSSxnQkFBUyxJQUFJLENBQUMsSUFBSSxDQUFDLEtBQUssVUFBVSxFQUFFO0FBQ3RDLFVBQUksRUFBRSxFQUFFO0FBQ04sY0FBTSwyQkFBYyw0Q0FBNEMsQ0FBQyxDQUFDO09BQ25FO0FBQ0Qsb0JBQU8sSUFBSSxDQUFDLFVBQVUsRUFBRSxJQUFJLENBQUMsQ0FBQztLQUMvQixNQUFNO0FBQ0wsVUFBSSxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsR0FBRyxFQUFFLENBQUM7S0FDNUI7R0FDRjtBQUNELHFCQUFtQixFQUFFLDZCQUFTLElBQUksRUFBRTtBQUNsQyxXQUFPLElBQUksQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLENBQUM7R0FDOUI7Ozs7O0FBS0QsNkJBQTJCLEVBQUEsdUNBQUc7QUFDNUIsZ0RBQXVCLENBQUM7R0FDekI7Q0FDRixDQUFDOztBQUVLLElBQUksR0FBRyxHQUFHLG9CQUFPLEdBQUcsQ0FBQzs7O1FBRW5CLFdBQVc7UUFBRSxNQUFNIiwiZmlsZSI6ImJhc2UuanMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBjcmVhdGVGcmFtZSwgZXh0ZW5kLCB0b1N0cmluZyB9IGZyb20gJy4vdXRpbHMnO1xuaW1wb3J0IEV4Y2VwdGlvbiBmcm9tICcuL2V4Y2VwdGlvbic7XG5pbXBvcnQgeyByZWdpc3RlckRlZmF1bHRIZWxwZXJzIH0gZnJvbSAnLi9oZWxwZXJzJztcbmltcG9ydCB7IHJlZ2lzdGVyRGVmYXVsdERlY29yYXRvcnMgfSBmcm9tICcuL2RlY29yYXRvcnMnO1xuaW1wb3J0IGxvZ2dlciBmcm9tICcuL2xvZ2dlcic7XG5pbXBvcnQgeyByZXNldExvZ2dlZFByb3BlcnRpZXMgfSBmcm9tICcuL2ludGVybmFsL3Byb3RvLWFjY2Vzcyc7XG5cbmV4cG9ydCBjb25zdCBWRVJTSU9OID0gJzQuNy43JztcbmV4cG9ydCBjb25zdCBDT01QSUxFUl9SRVZJU0lPTiA9IDg7XG5leHBvcnQgY29uc3QgTEFTVF9DT01QQVRJQkxFX0NPTVBJTEVSX1JFVklTSU9OID0gNztcblxuZXhwb3J0IGNvbnN0IFJFVklTSU9OX0NIQU5HRVMgPSB7XG4gIDE6ICc8PSAxLjAucmMuMicsIC8vIDEuMC5yYy4yIGlzIGFjdHVhbGx5IHJldjIgYnV0IGRvZXNuJ3QgcmVwb3J0IGl0XG4gIDI6ICc9PSAxLjAuMC1yYy4zJyxcbiAgMzogJz09IDEuMC4wLXJjLjQnLFxuICA0OiAnPT0gMS54LngnLFxuICA1OiAnPT0gMi4wLjAtYWxwaGEueCcsXG4gIDY6ICc+PSAyLjAuMC1iZXRhLjEnLFxuICA3OiAnPj0gNC4wLjAgPDQuMy4wJyxcbiAgODogJz49IDQuMy4wJ1xufTtcblxuY29uc3Qgb2JqZWN0VHlwZSA9ICdbb2JqZWN0IE9iamVjdF0nO1xuXG5leHBvcnQgZnVuY3Rpb24gSGFuZGxlYmFyc0Vudmlyb25tZW50KGhlbHBlcnMsIHBhcnRpYWxzLCBkZWNvcmF0b3JzKSB7XG4gIHRoaXMuaGVscGVycyA9IGhlbHBlcnMgfHwge307XG4gIHRoaXMucGFydGlhbHMgPSBwYXJ0aWFscyB8fCB7fTtcbiAgdGhpcy5kZWNvcmF0b3JzID0gZGVjb3JhdG9ycyB8fCB7fTtcblxuICByZWdpc3RlckRlZmF1bHRIZWxwZXJzKHRoaXMpO1xuICByZWdpc3RlckRlZmF1bHREZWNvcmF0b3JzKHRoaXMpO1xufVxuXG5IYW5kbGViYXJzRW52aXJvbm1lbnQucHJvdG90eXBlID0ge1xuICBjb25zdHJ1Y3RvcjogSGFuZGxlYmFyc0Vudmlyb25tZW50LFxuXG4gIGxvZ2dlcjogbG9nZ2VyLFxuICBsb2c6IGxvZ2dlci5sb2csXG5cbiAgcmVnaXN0ZXJIZWxwZXI6IGZ1bmN0aW9uKG5hbWUsIGZuKSB7XG4gICAgaWYgKHRvU3RyaW5nLmNhbGwobmFtZSkgPT09IG9iamVjdFR5cGUpIHtcbiAgICAgIGlmIChmbikge1xuICAgICAgICB0aHJvdyBuZXcgRXhjZXB0aW9uKCdBcmcgbm90IHN1cHBvcnRlZCB3aXRoIG11bHRpcGxlIGhlbHBlcnMnKTtcbiAgICAgIH1cbiAgICAgIGV4dGVuZCh0aGlzLmhlbHBlcnMsIG5hbWUpO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLmhlbHBlcnNbbmFtZV0gPSBmbjtcbiAgICB9XG4gIH0sXG4gIHVucmVnaXN0ZXJIZWxwZXI6IGZ1bmN0aW9uKG5hbWUpIHtcbiAgICBkZWxldGUgdGhpcy5oZWxwZXJzW25hbWVdO1xuICB9LFxuXG4gIHJlZ2lzdGVyUGFydGlhbDogZnVuY3Rpb24obmFtZSwgcGFydGlhbCkge1xuICAgIGlmICh0b1N0cmluZy5jYWxsKG5hbWUpID09PSBvYmplY3RUeXBlKSB7XG4gICAgICBleHRlbmQodGhpcy5wYXJ0aWFscywgbmFtZSk7XG4gICAgfSBlbHNlIHtcbiAgICAgIGlmICh0eXBlb2YgcGFydGlhbCA9PT0gJ3VuZGVmaW5lZCcpIHtcbiAgICAgICAgdGhyb3cgbmV3IEV4Y2VwdGlvbihcbiAgICAgICAgICBgQXR0ZW1wdGluZyB0byByZWdpc3RlciBhIHBhcnRpYWwgY2FsbGVkIFwiJHtuYW1lfVwiIGFzIHVuZGVmaW5lZGBcbiAgICAgICAgKTtcbiAgICAgIH1cbiAgICAgIHRoaXMucGFydGlhbHNbbmFtZV0gPSBwYXJ0aWFsO1xuICAgIH1cbiAgfSxcbiAgdW5yZWdpc3RlclBhcnRpYWw6IGZ1bmN0aW9uKG5hbWUpIHtcbiAgICBkZWxldGUgdGhpcy5wYXJ0aWFsc1tuYW1lXTtcbiAgfSxcblxuICByZWdpc3RlckRlY29yYXRvcjogZnVuY3Rpb24obmFtZSwgZm4pIHtcbiAgICBpZiAodG9TdHJpbmcuY2FsbChuYW1lKSA9PT0gb2JqZWN0VHlwZSkge1xuICAgICAgaWYgKGZuKSB7XG4gICAgICAgIHRocm93IG5ldyBFeGNlcHRpb24oJ0FyZyBub3Qgc3VwcG9ydGVkIHdpdGggbXVsdGlwbGUgZGVjb3JhdG9ycycpO1xuICAgICAgfVxuICAgICAgZXh0ZW5kKHRoaXMuZGVjb3JhdG9ycywgbmFtZSk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMuZGVjb3JhdG9yc1tuYW1lXSA9IGZuO1xuICAgIH1cbiAgfSxcbiAgdW5yZWdpc3RlckRlY29yYXRvcjogZnVuY3Rpb24obmFtZSkge1xuICAgIGRlbGV0ZSB0aGlzLmRlY29yYXRvcnNbbmFtZV07XG4gIH0sXG4gIC8qKlxuICAgKiBSZXNldCB0aGUgbWVtb3J5IG9mIGlsbGVnYWwgcHJvcGVydHkgYWNjZXNzZXMgdGhhdCBoYXZlIGFscmVhZHkgYmVlbiBsb2dnZWQuXG4gICAqIEBkZXByZWNhdGVkIHNob3VsZCBvbmx5IGJlIHVzZWQgaW4gaGFuZGxlYmFycyB0ZXN0LWNhc2VzXG4gICAqL1xuICByZXNldExvZ2dlZFByb3BlcnR5QWNjZXNzZXMoKSB7XG4gICAgcmVzZXRMb2dnZWRQcm9wZXJ0aWVzKCk7XG4gIH1cbn07XG5cbmV4cG9ydCBsZXQgbG9nID0gbG9nZ2VyLmxvZztcblxuZXhwb3J0IHsgY3JlYXRlRnJhbWUsIGxvZ2dlciB9O1xuIl19 + + +/***/ }), + +/***/ "./node_modules/handlebars/dist/cjs/handlebars/decorators.js": +/*!*******************************************************************!*\ + !*** ./node_modules/handlebars/dist/cjs/handlebars/decorators.js ***! + \*******************************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + + +exports.__esModule = true; +exports.registerDefaultDecorators = registerDefaultDecorators; +// istanbul ignore next + +function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; } + +var _decoratorsInline = __webpack_require__(/*! ./decorators/inline */ "./node_modules/handlebars/dist/cjs/handlebars/decorators/inline.js"); + +var _decoratorsInline2 = _interopRequireDefault(_decoratorsInline); + +function registerDefaultDecorators(instance) { + _decoratorsInline2['default'](instance); +} +//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL2xpYi9oYW5kbGViYXJzL2RlY29yYXRvcnMuanMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Z0NBQTJCLHFCQUFxQjs7OztBQUV6QyxTQUFTLHlCQUF5QixDQUFDLFFBQVEsRUFBRTtBQUNsRCxnQ0FBZSxRQUFRLENBQUMsQ0FBQztDQUMxQiIsImZpbGUiOiJkZWNvcmF0b3JzLmpzIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHJlZ2lzdGVySW5saW5lIGZyb20gJy4vZGVjb3JhdG9ycy9pbmxpbmUnO1xuXG5leHBvcnQgZnVuY3Rpb24gcmVnaXN0ZXJEZWZhdWx0RGVjb3JhdG9ycyhpbnN0YW5jZSkge1xuICByZWdpc3RlcklubGluZShpbnN0YW5jZSk7XG59XG4iXX0= + + +/***/ }), + +/***/ "./node_modules/handlebars/dist/cjs/handlebars/decorators/inline.js": +/*!**************************************************************************!*\ + !*** ./node_modules/handlebars/dist/cjs/handlebars/decorators/inline.js ***! + \**************************************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + + +exports.__esModule = true; + +var _utils = __webpack_require__(/*! ../utils */ "./node_modules/handlebars/dist/cjs/handlebars/utils.js"); + +exports['default'] = function (instance) { + instance.registerDecorator('inline', function (fn, props, container, options) { + var ret = fn; + if (!props.partials) { + props.partials = {}; + ret = function (context, options) { + // Create a new partials stack frame prior to exec. + var original = container.partials; + container.partials = _utils.extend({}, original, props.partials); + var ret = fn(context, options); + container.partials = original; + return ret; + }; + } + + props.partials[options.args[0]] = options.fn; + + return ret; + }); +}; + +module.exports = exports['default']; +//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL2xpYi9oYW5kbGViYXJzL2RlY29yYXRvcnMvaW5saW5lLmpzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7cUJBQXVCLFVBQVU7O3FCQUVsQixVQUFTLFFBQVEsRUFBRTtBQUNoQyxVQUFRLENBQUMsaUJBQWlCLENBQUMsUUFBUSxFQUFFLFVBQVMsRUFBRSxFQUFFLEtBQUssRUFBRSxTQUFTLEVBQUUsT0FBTyxFQUFFO0FBQzNFLFFBQUksR0FBRyxHQUFHLEVBQUUsQ0FBQztBQUNiLFFBQUksQ0FBQyxLQUFLLENBQUMsUUFBUSxFQUFFO0FBQ25CLFdBQUssQ0FBQyxRQUFRLEdBQUcsRUFBRSxDQUFDO0FBQ3BCLFNBQUcsR0FBRyxVQUFTLE9BQU8sRUFBRSxPQUFPLEVBQUU7O0FBRS9CLFlBQUksUUFBUSxHQUFHLFNBQVMsQ0FBQyxRQUFRLENBQUM7QUFDbEMsaUJBQVMsQ0FBQyxRQUFRLEdBQUcsY0FBTyxFQUFFLEVBQUUsUUFBUSxFQUFFLEtBQUssQ0FBQyxRQUFRLENBQUMsQ0FBQztBQUMxRCxZQUFJLEdBQUcsR0FBRyxFQUFFLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDO0FBQy9CLGlCQUFTLENBQUMsUUFBUSxHQUFHLFFBQVEsQ0FBQztBQUM5QixlQUFPLEdBQUcsQ0FBQztPQUNaLENBQUM7S0FDSDs7QUFFRCxTQUFLLENBQUMsUUFBUSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxPQUFPLENBQUMsRUFBRSxDQUFDOztBQUU3QyxXQUFPLEdBQUcsQ0FBQztHQUNaLENBQUMsQ0FBQztDQUNKIiwiZmlsZSI6ImlubGluZS5qcyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGV4dGVuZCB9IGZyb20gJy4uL3V0aWxzJztcblxuZXhwb3J0IGRlZmF1bHQgZnVuY3Rpb24oaW5zdGFuY2UpIHtcbiAgaW5zdGFuY2UucmVnaXN0ZXJEZWNvcmF0b3IoJ2lubGluZScsIGZ1bmN0aW9uKGZuLCBwcm9wcywgY29udGFpbmVyLCBvcHRpb25zKSB7XG4gICAgbGV0IHJldCA9IGZuO1xuICAgIGlmICghcHJvcHMucGFydGlhbHMpIHtcbiAgICAgIHByb3BzLnBhcnRpYWxzID0ge307XG4gICAgICByZXQgPSBmdW5jdGlvbihjb250ZXh0LCBvcHRpb25zKSB7XG4gICAgICAgIC8vIENyZWF0ZSBhIG5ldyBwYXJ0aWFscyBzdGFjayBmcmFtZSBwcmlvciB0byBleGVjLlxuICAgICAgICBsZXQgb3JpZ2luYWwgPSBjb250YWluZXIucGFydGlhbHM7XG4gICAgICAgIGNvbnRhaW5lci5wYXJ0aWFscyA9IGV4dGVuZCh7fSwgb3JpZ2luYWwsIHByb3BzLnBhcnRpYWxzKTtcbiAgICAgICAgbGV0IHJldCA9IGZuKGNvbnRleHQsIG9wdGlvbnMpO1xuICAgICAgICBjb250YWluZXIucGFydGlhbHMgPSBvcmlnaW5hbDtcbiAgICAgICAgcmV0dXJuIHJldDtcbiAgICAgIH07XG4gICAgfVxuXG4gICAgcHJvcHMucGFydGlhbHNbb3B0aW9ucy5hcmdzWzBdXSA9IG9wdGlvbnMuZm47XG5cbiAgICByZXR1cm4gcmV0O1xuICB9KTtcbn1cbiJdfQ== + + +/***/ }), + +/***/ "./node_modules/handlebars/dist/cjs/handlebars/exception.js": +/*!******************************************************************!*\ + !*** ./node_modules/handlebars/dist/cjs/handlebars/exception.js ***! + \******************************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + + +exports.__esModule = true; +var errorProps = ['description', 'fileName', 'lineNumber', 'endLineNumber', 'message', 'name', 'number', 'stack']; + +function Exception(message, node) { + var loc = node && node.loc, + line = undefined, + endLineNumber = undefined, + column = undefined, + endColumn = undefined; + + if (loc) { + line = loc.start.line; + endLineNumber = loc.end.line; + column = loc.start.column; + endColumn = loc.end.column; + + message += ' - ' + line + ':' + column; + } + + var tmp = Error.prototype.constructor.call(this, message); + + // Unfortunately errors are not enumerable in Chrome (at least), so `for prop in tmp` doesn't work. + for (var idx = 0; idx < errorProps.length; idx++) { + this[errorProps[idx]] = tmp[errorProps[idx]]; + } + + /* istanbul ignore else */ + if (Error.captureStackTrace) { + Error.captureStackTrace(this, Exception); + } + + try { + if (loc) { + this.lineNumber = line; + this.endLineNumber = endLineNumber; + + // Work around issue under safari where we can't directly set the column value + /* istanbul ignore next */ + if (Object.defineProperty) { + Object.defineProperty(this, 'column', { + value: column, + enumerable: true + }); + Object.defineProperty(this, 'endColumn', { + value: endColumn, + enumerable: true + }); + } else { + this.column = column; + this.endColumn = endColumn; + } + } + } catch (nop) { + /* Ignore if the browser is very particular */ + } +} + +Exception.prototype = new Error(); + +exports['default'] = Exception; +module.exports = exports['default']; +//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL2xpYi9oYW5kbGViYXJzL2V4Y2VwdGlvbi5qcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFBQSxJQUFNLFVBQVUsR0FBRyxDQUNqQixhQUFhLEVBQ2IsVUFBVSxFQUNWLFlBQVksRUFDWixlQUFlLEVBQ2YsU0FBUyxFQUNULE1BQU0sRUFDTixRQUFRLEVBQ1IsT0FBTyxDQUNSLENBQUM7O0FBRUYsU0FBUyxTQUFTLENBQUMsT0FBTyxFQUFFLElBQUksRUFBRTtBQUNoQyxNQUFJLEdBQUcsR0FBRyxJQUFJLElBQUksSUFBSSxDQUFDLEdBQUc7TUFDeEIsSUFBSSxZQUFBO01BQ0osYUFBYSxZQUFBO01BQ2IsTUFBTSxZQUFBO01BQ04sU0FBUyxZQUFBLENBQUM7O0FBRVosTUFBSSxHQUFHLEVBQUU7QUFDUCxRQUFJLEdBQUcsR0FBRyxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUM7QUFDdEIsaUJBQWEsR0FBRyxHQUFHLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQztBQUM3QixVQUFNLEdBQUcsR0FBRyxDQUFDLEtBQUssQ0FBQyxNQUFNLENBQUM7QUFDMUIsYUFBUyxHQUFHLEdBQUcsQ0FBQyxHQUFHLENBQUMsTUFBTSxDQUFDOztBQUUzQixXQUFPLElBQUksS0FBSyxHQUFHLElBQUksR0FBRyxHQUFHLEdBQUcsTUFBTSxDQUFDO0dBQ3hDOztBQUVELE1BQUksR0FBRyxHQUFHLEtBQUssQ0FBQyxTQUFTLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxJQUFJLEVBQUUsT0FBTyxDQUFDLENBQUM7OztBQUcxRCxPQUFLLElBQUksR0FBRyxHQUFHLENBQUMsRUFBRSxHQUFHLEdBQUcsVUFBVSxDQUFDLE1BQU0sRUFBRSxHQUFHLEVBQUUsRUFBRTtBQUNoRCxRQUFJLENBQUMsVUFBVSxDQUFDLEdBQUcsQ0FBQyxDQUFDLEdBQUcsR0FBRyxDQUFDLFVBQVUsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDO0dBQzlDOzs7QUFHRCxNQUFJLEtBQUssQ0FBQyxpQkFBaUIsRUFBRTtBQUMzQixTQUFLLENBQUMsaUJBQWlCLENBQUMsSUFBSSxFQUFFLFNBQVMsQ0FBQyxDQUFDO0dBQzFDOztBQUVELE1BQUk7QUFDRixRQUFJLEdBQUcsRUFBRTtBQUNQLFVBQUksQ0FBQyxVQUFVLEdBQUcsSUFBSSxDQUFDO0FBQ3ZCLFVBQUksQ0FBQyxhQUFhLEdBQUcsYUFBYSxDQUFDOzs7O0FBSW5DLFVBQUksTUFBTSxDQUFDLGNBQWMsRUFBRTtBQUN6QixjQUFNLENBQUMsY0FBYyxDQUFDLElBQUksRUFBRSxRQUFRLEVBQUU7QUFDcEMsZUFBSyxFQUFFLE1BQU07QUFDYixvQkFBVSxFQUFFLElBQUk7U0FDakIsQ0FBQyxDQUFDO0FBQ0gsY0FBTSxDQUFDLGNBQWMsQ0FBQyxJQUFJLEVBQUUsV0FBVyxFQUFFO0FBQ3ZDLGVBQUssRUFBRSxTQUFTO0FBQ2hCLG9CQUFVLEVBQUUsSUFBSTtTQUNqQixDQUFDLENBQUM7T0FDSixNQUFNO0FBQ0wsWUFBSSxDQUFDLE1BQU0sR0FBRyxNQUFNLENBQUM7QUFDckIsWUFBSSxDQUFDLFNBQVMsR0FBRyxTQUFTLENBQUM7T0FDNUI7S0FDRjtHQUNGLENBQUMsT0FBTyxHQUFHLEVBQUU7O0dBRWI7Q0FDRjs7QUFFRCxTQUFTLENBQUMsU0FBUyxHQUFHLElBQUksS0FBSyxFQUFFLENBQUM7O3FCQUVuQixTQUFTIiwiZmlsZSI6ImV4Y2VwdGlvbi5qcyIsInNvdXJjZXNDb250ZW50IjpbImNvbnN0IGVycm9yUHJvcHMgPSBbXG4gICdkZXNjcmlwdGlvbicsXG4gICdmaWxlTmFtZScsXG4gICdsaW5lTnVtYmVyJyxcbiAgJ2VuZExpbmVOdW1iZXInLFxuICAnbWVzc2FnZScsXG4gICduYW1lJyxcbiAgJ251bWJlcicsXG4gICdzdGFjaydcbl07XG5cbmZ1bmN0aW9uIEV4Y2VwdGlvbihtZXNzYWdlLCBub2RlKSB7XG4gIGxldCBsb2MgPSBub2RlICYmIG5vZGUubG9jLFxuICAgIGxpbmUsXG4gICAgZW5kTGluZU51bWJlcixcbiAgICBjb2x1bW4sXG4gICAgZW5kQ29sdW1uO1xuXG4gIGlmIChsb2MpIHtcbiAgICBsaW5lID0gbG9jLnN0YXJ0LmxpbmU7XG4gICAgZW5kTGluZU51bWJlciA9IGxvYy5lbmQubGluZTtcbiAgICBjb2x1bW4gPSBsb2Muc3RhcnQuY29sdW1uO1xuICAgIGVuZENvbHVtbiA9IGxvYy5lbmQuY29sdW1uO1xuXG4gICAgbWVzc2FnZSArPSAnIC0gJyArIGxpbmUgKyAnOicgKyBjb2x1bW47XG4gIH1cblxuICBsZXQgdG1wID0gRXJyb3IucHJvdG90eXBlLmNvbnN0cnVjdG9yLmNhbGwodGhpcywgbWVzc2FnZSk7XG5cbiAgLy8gVW5mb3J0dW5hdGVseSBlcnJvcnMgYXJlIG5vdCBlbnVtZXJhYmxlIGluIENocm9tZSAoYXQgbGVhc3QpLCBzbyBgZm9yIHByb3AgaW4gdG1wYCBkb2Vzbid0IHdvcmsuXG4gIGZvciAobGV0IGlkeCA9IDA7IGlkeCA8IGVycm9yUHJvcHMubGVuZ3RoOyBpZHgrKykge1xuICAgIHRoaXNbZXJyb3JQcm9wc1tpZHhdXSA9IHRtcFtlcnJvclByb3BzW2lkeF1dO1xuICB9XG5cbiAgLyogaXN0YW5idWwgaWdub3JlIGVsc2UgKi9cbiAgaWYgKEVycm9yLmNhcHR1cmVTdGFja1RyYWNlKSB7XG4gICAgRXJyb3IuY2FwdHVyZVN0YWNrVHJhY2UodGhpcywgRXhjZXB0aW9uKTtcbiAgfVxuXG4gIHRyeSB7XG4gICAgaWYgKGxvYykge1xuICAgICAgdGhpcy5saW5lTnVtYmVyID0gbGluZTtcbiAgICAgIHRoaXMuZW5kTGluZU51bWJlciA9IGVuZExpbmVOdW1iZXI7XG5cbiAgICAgIC8vIFdvcmsgYXJvdW5kIGlzc3VlIHVuZGVyIHNhZmFyaSB3aGVyZSB3ZSBjYW4ndCBkaXJlY3RseSBzZXQgdGhlIGNvbHVtbiB2YWx1ZVxuICAgICAgLyogaXN0YW5idWwgaWdub3JlIG5leHQgKi9cbiAgICAgIGlmIChPYmplY3QuZGVmaW5lUHJvcGVydHkpIHtcbiAgICAgICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KHRoaXMsICdjb2x1bW4nLCB7XG4gICAgICAgICAgdmFsdWU6IGNvbHVtbixcbiAgICAgICAgICBlbnVtZXJhYmxlOiB0cnVlXG4gICAgICAgIH0pO1xuICAgICAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkodGhpcywgJ2VuZENvbHVtbicsIHtcbiAgICAgICAgICB2YWx1ZTogZW5kQ29sdW1uLFxuICAgICAgICAgIGVudW1lcmFibGU6IHRydWVcbiAgICAgICAgfSk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICB0aGlzLmNvbHVtbiA9IGNvbHVtbjtcbiAgICAgICAgdGhpcy5lbmRDb2x1bW4gPSBlbmRDb2x1bW47XG4gICAgICB9XG4gICAgfVxuICB9IGNhdGNoIChub3ApIHtcbiAgICAvKiBJZ25vcmUgaWYgdGhlIGJyb3dzZXIgaXMgdmVyeSBwYXJ0aWN1bGFyICovXG4gIH1cbn1cblxuRXhjZXB0aW9uLnByb3RvdHlwZSA9IG5ldyBFcnJvcigpO1xuXG5leHBvcnQgZGVmYXVsdCBFeGNlcHRpb247XG4iXX0= + + +/***/ }), + +/***/ "./node_modules/handlebars/dist/cjs/handlebars/helpers.js": +/*!****************************************************************!*\ + !*** ./node_modules/handlebars/dist/cjs/handlebars/helpers.js ***! + \****************************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + + +exports.__esModule = true; +exports.registerDefaultHelpers = registerDefaultHelpers; +exports.moveHelperToHooks = moveHelperToHooks; +// istanbul ignore next + +function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; } + +var _helpersBlockHelperMissing = __webpack_require__(/*! ./helpers/block-helper-missing */ "./node_modules/handlebars/dist/cjs/handlebars/helpers/block-helper-missing.js"); + +var _helpersBlockHelperMissing2 = _interopRequireDefault(_helpersBlockHelperMissing); + +var _helpersEach = __webpack_require__(/*! ./helpers/each */ "./node_modules/handlebars/dist/cjs/handlebars/helpers/each.js"); + +var _helpersEach2 = _interopRequireDefault(_helpersEach); + +var _helpersHelperMissing = __webpack_require__(/*! ./helpers/helper-missing */ "./node_modules/handlebars/dist/cjs/handlebars/helpers/helper-missing.js"); + +var _helpersHelperMissing2 = _interopRequireDefault(_helpersHelperMissing); + +var _helpersIf = __webpack_require__(/*! ./helpers/if */ "./node_modules/handlebars/dist/cjs/handlebars/helpers/if.js"); + +var _helpersIf2 = _interopRequireDefault(_helpersIf); + +var _helpersLog = __webpack_require__(/*! ./helpers/log */ "./node_modules/handlebars/dist/cjs/handlebars/helpers/log.js"); + +var _helpersLog2 = _interopRequireDefault(_helpersLog); + +var _helpersLookup = __webpack_require__(/*! ./helpers/lookup */ "./node_modules/handlebars/dist/cjs/handlebars/helpers/lookup.js"); + +var _helpersLookup2 = _interopRequireDefault(_helpersLookup); + +var _helpersWith = __webpack_require__(/*! ./helpers/with */ "./node_modules/handlebars/dist/cjs/handlebars/helpers/with.js"); + +var _helpersWith2 = _interopRequireDefault(_helpersWith); + +function registerDefaultHelpers(instance) { + _helpersBlockHelperMissing2['default'](instance); + _helpersEach2['default'](instance); + _helpersHelperMissing2['default'](instance); + _helpersIf2['default'](instance); + _helpersLog2['default'](instance); + _helpersLookup2['default'](instance); + _helpersWith2['default'](instance); +} + +function moveHelperToHooks(instance, helperName, keepHelper) { + if (instance.helpers[helperName]) { + instance.hooks[helperName] = instance.helpers[helperName]; + if (!keepHelper) { + delete instance.helpers[helperName]; + } + } +} +//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL2xpYi9oYW5kbGViYXJzL2hlbHBlcnMuanMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7O3lDQUF1QyxnQ0FBZ0M7Ozs7MkJBQzlDLGdCQUFnQjs7OztvQ0FDUCwwQkFBMEI7Ozs7eUJBQ3JDLGNBQWM7Ozs7MEJBQ2IsZUFBZTs7Ozs2QkFDWixrQkFBa0I7Ozs7MkJBQ3BCLGdCQUFnQjs7OztBQUVsQyxTQUFTLHNCQUFzQixDQUFDLFFBQVEsRUFBRTtBQUMvQyx5Q0FBMkIsUUFBUSxDQUFDLENBQUM7QUFDckMsMkJBQWEsUUFBUSxDQUFDLENBQUM7QUFDdkIsb0NBQXNCLFFBQVEsQ0FBQyxDQUFDO0FBQ2hDLHlCQUFXLFFBQVEsQ0FBQyxDQUFDO0FBQ3JCLDBCQUFZLFFBQVEsQ0FBQyxDQUFDO0FBQ3RCLDZCQUFlLFFBQVEsQ0FBQyxDQUFDO0FBQ3pCLDJCQUFhLFFBQVEsQ0FBQyxDQUFDO0NBQ3hCOztBQUVNLFNBQVMsaUJBQWlCLENBQUMsUUFBUSxFQUFFLFVBQVUsRUFBRSxVQUFVLEVBQUU7QUFDbEUsTUFBSSxRQUFRLENBQUMsT0FBTyxDQUFDLFVBQVUsQ0FBQyxFQUFFO0FBQ2hDLFlBQVEsQ0FBQyxLQUFLLENBQUMsVUFBVSxDQUFDLEdBQUcsUUFBUSxDQUFDLE9BQU8sQ0FBQyxVQUFVLENBQUMsQ0FBQztBQUMxRCxRQUFJLENBQUMsVUFBVSxFQUFFO0FBQ2YsYUFBTyxRQUFRLENBQUMsT0FBTyxDQUFDLFVBQVUsQ0FBQyxDQUFDO0tBQ3JDO0dBQ0Y7Q0FDRiIsImZpbGUiOiJoZWxwZXJzLmpzIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHJlZ2lzdGVyQmxvY2tIZWxwZXJNaXNzaW5nIGZyb20gJy4vaGVscGVycy9ibG9jay1oZWxwZXItbWlzc2luZyc7XG5pbXBvcnQgcmVnaXN0ZXJFYWNoIGZyb20gJy4vaGVscGVycy9lYWNoJztcbmltcG9ydCByZWdpc3RlckhlbHBlck1pc3NpbmcgZnJvbSAnLi9oZWxwZXJzL2hlbHBlci1taXNzaW5nJztcbmltcG9ydCByZWdpc3RlcklmIGZyb20gJy4vaGVscGVycy9pZic7XG5pbXBvcnQgcmVnaXN0ZXJMb2cgZnJvbSAnLi9oZWxwZXJzL2xvZyc7XG5pbXBvcnQgcmVnaXN0ZXJMb29rdXAgZnJvbSAnLi9oZWxwZXJzL2xvb2t1cCc7XG5pbXBvcnQgcmVnaXN0ZXJXaXRoIGZyb20gJy4vaGVscGVycy93aXRoJztcblxuZXhwb3J0IGZ1bmN0aW9uIHJlZ2lzdGVyRGVmYXVsdEhlbHBlcnMoaW5zdGFuY2UpIHtcbiAgcmVnaXN0ZXJCbG9ja0hlbHBlck1pc3NpbmcoaW5zdGFuY2UpO1xuICByZWdpc3RlckVhY2goaW5zdGFuY2UpO1xuICByZWdpc3RlckhlbHBlck1pc3NpbmcoaW5zdGFuY2UpO1xuICByZWdpc3RlcklmKGluc3RhbmNlKTtcbiAgcmVnaXN0ZXJMb2coaW5zdGFuY2UpO1xuICByZWdpc3Rlckxvb2t1cChpbnN0YW5jZSk7XG4gIHJlZ2lzdGVyV2l0aChpbnN0YW5jZSk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBtb3ZlSGVscGVyVG9Ib29rcyhpbnN0YW5jZSwgaGVscGVyTmFtZSwga2VlcEhlbHBlcikge1xuICBpZiAoaW5zdGFuY2UuaGVscGVyc1toZWxwZXJOYW1lXSkge1xuICAgIGluc3RhbmNlLmhvb2tzW2hlbHBlck5hbWVdID0gaW5zdGFuY2UuaGVscGVyc1toZWxwZXJOYW1lXTtcbiAgICBpZiAoIWtlZXBIZWxwZXIpIHtcbiAgICAgIGRlbGV0ZSBpbnN0YW5jZS5oZWxwZXJzW2hlbHBlck5hbWVdO1xuICAgIH1cbiAgfVxufVxuIl19 + + +/***/ }), + +/***/ "./node_modules/handlebars/dist/cjs/handlebars/helpers/block-helper-missing.js": +/*!*************************************************************************************!*\ + !*** ./node_modules/handlebars/dist/cjs/handlebars/helpers/block-helper-missing.js ***! + \*************************************************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + + +exports.__esModule = true; + +var _utils = __webpack_require__(/*! ../utils */ "./node_modules/handlebars/dist/cjs/handlebars/utils.js"); + +exports['default'] = function (instance) { + instance.registerHelper('blockHelperMissing', function (context, options) { + var inverse = options.inverse, + fn = options.fn; + + if (context === true) { + return fn(this); + } else if (context === false || context == null) { + return inverse(this); + } else if (_utils.isArray(context)) { + if (context.length > 0) { + if (options.ids) { + options.ids = [options.name]; + } + + return instance.helpers.each(context, options); + } else { + return inverse(this); + } + } else { + if (options.data && options.ids) { + var data = _utils.createFrame(options.data); + data.contextPath = _utils.appendContextPath(options.data.contextPath, options.name); + options = { data: data }; + } + + return fn(context, options); + } + }); +}; + +module.exports = exports['default']; +//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL2xpYi9oYW5kbGViYXJzL2hlbHBlcnMvYmxvY2staGVscGVyLW1pc3NpbmcuanMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7OztxQkFBd0QsVUFBVTs7cUJBRW5ELFVBQVMsUUFBUSxFQUFFO0FBQ2hDLFVBQVEsQ0FBQyxjQUFjLENBQUMsb0JBQW9CLEVBQUUsVUFBUyxPQUFPLEVBQUUsT0FBTyxFQUFFO0FBQ3ZFLFFBQUksT0FBTyxHQUFHLE9BQU8sQ0FBQyxPQUFPO1FBQzNCLEVBQUUsR0FBRyxPQUFPLENBQUMsRUFBRSxDQUFDOztBQUVsQixRQUFJLE9BQU8sS0FBSyxJQUFJLEVBQUU7QUFDcEIsYUFBTyxFQUFFLENBQUMsSUFBSSxDQUFDLENBQUM7S0FDakIsTUFBTSxJQUFJLE9BQU8sS0FBSyxLQUFLLElBQUksT0FBTyxJQUFJLElBQUksRUFBRTtBQUMvQyxhQUFPLE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0FBQztLQUN0QixNQUFNLElBQUksZUFBUSxPQUFPLENBQUMsRUFBRTtBQUMzQixVQUFJLE9BQU8sQ0FBQyxNQUFNLEdBQUcsQ0FBQyxFQUFFO0FBQ3RCLFlBQUksT0FBTyxDQUFDLEdBQUcsRUFBRTtBQUNmLGlCQUFPLENBQUMsR0FBRyxHQUFHLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxDQUFDO1NBQzlCOztBQUVELGVBQU8sUUFBUSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDO09BQ2hELE1BQU07QUFDTCxlQUFPLE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0FBQztPQUN0QjtLQUNGLE1BQU07QUFDTCxVQUFJLE9BQU8sQ0FBQyxJQUFJLElBQUksT0FBTyxDQUFDLEdBQUcsRUFBRTtBQUMvQixZQUFJLElBQUksR0FBRyxtQkFBWSxPQUFPLENBQUMsSUFBSSxDQUFDLENBQUM7QUFDckMsWUFBSSxDQUFDLFdBQVcsR0FBRyx5QkFDakIsT0FBTyxDQUFDLElBQUksQ0FBQyxXQUFXLEVBQ3hCLE9BQU8sQ0FBQyxJQUFJLENBQ2IsQ0FBQztBQUNGLGVBQU8sR0FBRyxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsQ0FBQztPQUMxQjs7QUFFRCxhQUFPLEVBQUUsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUM7S0FDN0I7R0FDRixDQUFDLENBQUM7Q0FDSiIsImZpbGUiOiJibG9jay1oZWxwZXItbWlzc2luZy5qcyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGFwcGVuZENvbnRleHRQYXRoLCBjcmVhdGVGcmFtZSwgaXNBcnJheSB9IGZyb20gJy4uL3V0aWxzJztcblxuZXhwb3J0IGRlZmF1bHQgZnVuY3Rpb24oaW5zdGFuY2UpIHtcbiAgaW5zdGFuY2UucmVnaXN0ZXJIZWxwZXIoJ2Jsb2NrSGVscGVyTWlzc2luZycsIGZ1bmN0aW9uKGNvbnRleHQsIG9wdGlvbnMpIHtcbiAgICBsZXQgaW52ZXJzZSA9IG9wdGlvbnMuaW52ZXJzZSxcbiAgICAgIGZuID0gb3B0aW9ucy5mbjtcblxuICAgIGlmIChjb250ZXh0ID09PSB0cnVlKSB7XG4gICAgICByZXR1cm4gZm4odGhpcyk7XG4gICAgfSBlbHNlIGlmIChjb250ZXh0ID09PSBmYWxzZSB8fCBjb250ZXh0ID09IG51bGwpIHtcbiAgICAgIHJldHVybiBpbnZlcnNlKHRoaXMpO1xuICAgIH0gZWxzZSBpZiAoaXNBcnJheShjb250ZXh0KSkge1xuICAgICAgaWYgKGNvbnRleHQubGVuZ3RoID4gMCkge1xuICAgICAgICBpZiAob3B0aW9ucy5pZHMpIHtcbiAgICAgICAgICBvcHRpb25zLmlkcyA9IFtvcHRpb25zLm5hbWVdO1xuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIGluc3RhbmNlLmhlbHBlcnMuZWFjaChjb250ZXh0LCBvcHRpb25zKTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHJldHVybiBpbnZlcnNlKHRoaXMpO1xuICAgICAgfVxuICAgIH0gZWxzZSB7XG4gICAgICBpZiAob3B0aW9ucy5kYXRhICYmIG9wdGlvbnMuaWRzKSB7XG4gICAgICAgIGxldCBkYXRhID0gY3JlYXRlRnJhbWUob3B0aW9ucy5kYXRhKTtcbiAgICAgICAgZGF0YS5jb250ZXh0UGF0aCA9IGFwcGVuZENvbnRleHRQYXRoKFxuICAgICAgICAgIG9wdGlvbnMuZGF0YS5jb250ZXh0UGF0aCxcbiAgICAgICAgICBvcHRpb25zLm5hbWVcbiAgICAgICAgKTtcbiAgICAgICAgb3B0aW9ucyA9IHsgZGF0YTogZGF0YSB9O1xuICAgICAgfVxuXG4gICAgICByZXR1cm4gZm4oY29udGV4dCwgb3B0aW9ucyk7XG4gICAgfVxuICB9KTtcbn1cbiJdfQ== + + +/***/ }), + +/***/ "./node_modules/handlebars/dist/cjs/handlebars/helpers/each.js": +/*!*********************************************************************!*\ + !*** ./node_modules/handlebars/dist/cjs/handlebars/helpers/each.js ***! + \*********************************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; +/* WEBPACK VAR INJECTION */(function(global) { + +exports.__esModule = true; +// istanbul ignore next + +function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; } + +var _utils = __webpack_require__(/*! ../utils */ "./node_modules/handlebars/dist/cjs/handlebars/utils.js"); + +var _exception = __webpack_require__(/*! ../exception */ "./node_modules/handlebars/dist/cjs/handlebars/exception.js"); + +var _exception2 = _interopRequireDefault(_exception); + +exports['default'] = function (instance) { + instance.registerHelper('each', function (context, options) { + if (!options) { + throw new _exception2['default']('Must pass iterator to #each'); + } + + var fn = options.fn, + inverse = options.inverse, + i = 0, + ret = '', + data = undefined, + contextPath = undefined; + + if (options.data && options.ids) { + contextPath = _utils.appendContextPath(options.data.contextPath, options.ids[0]) + '.'; + } + + if (_utils.isFunction(context)) { + context = context.call(this); + } + + if (options.data) { + data = _utils.createFrame(options.data); + } + + function execIteration(field, index, last) { + if (data) { + data.key = field; + data.index = index; + data.first = index === 0; + data.last = !!last; + + if (contextPath) { + data.contextPath = contextPath + field; + } + } + + ret = ret + fn(context[field], { + data: data, + blockParams: _utils.blockParams([context[field], field], [contextPath + field, null]) + }); + } + + if (context && typeof context === 'object') { + if (_utils.isArray(context)) { + for (var j = context.length; i < j; i++) { + if (i in context) { + execIteration(i, i, i === context.length - 1); + } + } + } else if (global.Symbol && context[global.Symbol.iterator]) { + var newContext = []; + var iterator = context[global.Symbol.iterator](); + for (var it = iterator.next(); !it.done; it = iterator.next()) { + newContext.push(it.value); + } + context = newContext; + for (var j = context.length; i < j; i++) { + execIteration(i, i, i === context.length - 1); + } + } else { + (function () { + var priorKey = undefined; + + Object.keys(context).forEach(function (key) { + // We're running the iterations one step out of sync so we can detect + // the last iteration without have to scan the object twice and create + // an itermediate keys array. + if (priorKey !== undefined) { + execIteration(priorKey, i - 1); + } + priorKey = key; + i++; + }); + if (priorKey !== undefined) { + execIteration(priorKey, i - 1, true); + } + })(); + } + } + + if (i === 0) { + ret = inverse(this); + } + + return ret; + }); +}; + +module.exports = exports['default']; +//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL2xpYi9oYW5kbGViYXJzL2hlbHBlcnMvZWFjaC5qcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7O3FCQU1PLFVBQVU7O3lCQUNLLGNBQWM7Ozs7cUJBRXJCLFVBQVMsUUFBUSxFQUFFO0FBQ2hDLFVBQVEsQ0FBQyxjQUFjLENBQUMsTUFBTSxFQUFFLFVBQVMsT0FBTyxFQUFFLE9BQU8sRUFBRTtBQUN6RCxRQUFJLENBQUMsT0FBTyxFQUFFO0FBQ1osWUFBTSwyQkFBYyw2QkFBNkIsQ0FBQyxDQUFDO0tBQ3BEOztBQUVELFFBQUksRUFBRSxHQUFHLE9BQU8sQ0FBQyxFQUFFO1FBQ2pCLE9BQU8sR0FBRyxPQUFPLENBQUMsT0FBTztRQUN6QixDQUFDLEdBQUcsQ0FBQztRQUNMLEdBQUcsR0FBRyxFQUFFO1FBQ1IsSUFBSSxZQUFBO1FBQ0osV0FBVyxZQUFBLENBQUM7O0FBRWQsUUFBSSxPQUFPLENBQUMsSUFBSSxJQUFJLE9BQU8sQ0FBQyxHQUFHLEVBQUU7QUFDL0IsaUJBQVcsR0FDVCx5QkFBa0IsT0FBTyxDQUFDLElBQUksQ0FBQyxXQUFXLEVBQUUsT0FBTyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLEdBQUcsQ0FBQztLQUNyRTs7QUFFRCxRQUFJLGtCQUFXLE9BQU8sQ0FBQyxFQUFFO0FBQ3ZCLGFBQU8sR0FBRyxPQUFPLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO0tBQzlCOztBQUVELFFBQUksT0FBTyxDQUFDLElBQUksRUFBRTtBQUNoQixVQUFJLEdBQUcsbUJBQVksT0FBTyxDQUFDLElBQUksQ0FBQyxDQUFDO0tBQ2xDOztBQUVELGFBQVMsYUFBYSxDQUFDLEtBQUssRUFBRSxLQUFLLEVBQUUsSUFBSSxFQUFFO0FBQ3pDLFVBQUksSUFBSSxFQUFFO0FBQ1IsWUFBSSxDQUFDLEdBQUcsR0FBRyxLQUFLLENBQUM7QUFDakIsWUFBSSxDQUFDLEtBQUssR0FBRyxLQUFLLENBQUM7QUFDbkIsWUFBSSxDQUFDLEtBQUssR0FBRyxLQUFLLEtBQUssQ0FBQyxDQUFDO0FBQ3pCLFlBQUksQ0FBQyxJQUFJLEdBQUcsQ0FBQyxDQUFDLElBQUksQ0FBQzs7QUFFbkIsWUFBSSxXQUFXLEVBQUU7QUFDZixjQUFJLENBQUMsV0FBVyxHQUFHLFdBQVcsR0FBRyxLQUFLLENBQUM7U0FDeEM7T0FDRjs7QUFFRCxTQUFHLEdBQ0QsR0FBRyxHQUNILEVBQUUsQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDLEVBQUU7QUFDakIsWUFBSSxFQUFFLElBQUk7QUFDVixtQkFBVyxFQUFFLG1CQUNYLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQyxFQUFFLEtBQUssQ0FBQyxFQUN2QixDQUFDLFdBQVcsR0FBRyxLQUFLLEVBQUUsSUFBSSxDQUFDLENBQzVCO09BQ0YsQ0FBQyxDQUFDO0tBQ047O0FBRUQsUUFBSSxPQUFPLElBQUksT0FBTyxPQUFPLEtBQUssUUFBUSxFQUFFO0FBQzFDLFVBQUksZUFBUSxPQUFPLENBQUMsRUFBRTtBQUNwQixhQUFLLElBQUksQ0FBQyxHQUFHLE9BQU8sQ0FBQyxNQUFNLEVBQUUsQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLEVBQUUsRUFBRTtBQUN2QyxjQUFJLENBQUMsSUFBSSxPQUFPLEVBQUU7QUFDaEIseUJBQWEsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsS0FBSyxPQUFPLENBQUMsTUFBTSxHQUFHLENBQUMsQ0FBQyxDQUFDO1dBQy9DO1NBQ0Y7T0FDRixNQUFNLElBQUksTUFBTSxDQUFDLE1BQU0sSUFBSSxPQUFPLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxRQUFRLENBQUMsRUFBRTtBQUMzRCxZQUFNLFVBQVUsR0FBRyxFQUFFLENBQUM7QUFDdEIsWUFBTSxRQUFRLEdBQUcsT0FBTyxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUMsUUFBUSxDQUFDLEVBQUUsQ0FBQztBQUNuRCxhQUFLLElBQUksRUFBRSxHQUFHLFFBQVEsQ0FBQyxJQUFJLEVBQUUsRUFBRSxDQUFDLEVBQUUsQ0FBQyxJQUFJLEVBQUUsRUFBRSxHQUFHLFFBQVEsQ0FBQyxJQUFJLEVBQUUsRUFBRTtBQUM3RCxvQkFBVSxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsS0FBSyxDQUFDLENBQUM7U0FDM0I7QUFDRCxlQUFPLEdBQUcsVUFBVSxDQUFDO0FBQ3JCLGFBQUssSUFBSSxDQUFDLEdBQUcsT0FBTyxDQUFDLE1BQU0sRUFBRSxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsRUFBRSxFQUFFO0FBQ3ZDLHVCQUFhLENBQUMsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLEtBQUssT0FBTyxDQUFDLE1BQU0sR0FBRyxDQUFDLENBQUMsQ0FBQztTQUMvQztPQUNGLE1BQU07O0FBQ0wsY0FBSSxRQUFRLFlBQUEsQ0FBQzs7QUFFYixnQkFBTSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQyxPQUFPLENBQUMsVUFBQSxHQUFHLEVBQUk7Ozs7QUFJbEMsZ0JBQUksUUFBUSxLQUFLLFNBQVMsRUFBRTtBQUMxQiwyQkFBYSxDQUFDLFFBQVEsRUFBRSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUM7YUFDaEM7QUFDRCxvQkFBUSxHQUFHLEdBQUcsQ0FBQztBQUNmLGFBQUMsRUFBRSxDQUFDO1dBQ0wsQ0FBQyxDQUFDO0FBQ0gsY0FBSSxRQUFRLEtBQUssU0FBUyxFQUFFO0FBQzFCLHlCQUFhLENBQUMsUUFBUSxFQUFFLENBQUMsR0FBRyxDQUFDLEVBQUUsSUFBSSxDQUFDLENBQUM7V0FDdEM7O09BQ0Y7S0FDRjs7QUFFRCxRQUFJLENBQUMsS0FBSyxDQUFDLEVBQUU7QUFDWCxTQUFHLEdBQUcsT0FBTyxDQUFDLElBQUksQ0FBQyxDQUFDO0tBQ3JCOztBQUVELFdBQU8sR0FBRyxDQUFDO0dBQ1osQ0FBQyxDQUFDO0NBQ0oiLCJmaWxlIjoiZWFjaC5qcyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIGFwcGVuZENvbnRleHRQYXRoLFxuICBibG9ja1BhcmFtcyxcbiAgY3JlYXRlRnJhbWUsXG4gIGlzQXJyYXksXG4gIGlzRnVuY3Rpb25cbn0gZnJvbSAnLi4vdXRpbHMnO1xuaW1wb3J0IEV4Y2VwdGlvbiBmcm9tICcuLi9leGNlcHRpb24nO1xuXG5leHBvcnQgZGVmYXVsdCBmdW5jdGlvbihpbnN0YW5jZSkge1xuICBpbnN0YW5jZS5yZWdpc3RlckhlbHBlcignZWFjaCcsIGZ1bmN0aW9uKGNvbnRleHQsIG9wdGlvbnMpIHtcbiAgICBpZiAoIW9wdGlvbnMpIHtcbiAgICAgIHRocm93IG5ldyBFeGNlcHRpb24oJ011c3QgcGFzcyBpdGVyYXRvciB0byAjZWFjaCcpO1xuICAgIH1cblxuICAgIGxldCBmbiA9IG9wdGlvbnMuZm4sXG4gICAgICBpbnZlcnNlID0gb3B0aW9ucy5pbnZlcnNlLFxuICAgICAgaSA9IDAsXG4gICAgICByZXQgPSAnJyxcbiAgICAgIGRhdGEsXG4gICAgICBjb250ZXh0UGF0aDtcblxuICAgIGlmIChvcHRpb25zLmRhdGEgJiYgb3B0aW9ucy5pZHMpIHtcbiAgICAgIGNvbnRleHRQYXRoID1cbiAgICAgICAgYXBwZW5kQ29udGV4dFBhdGgob3B0aW9ucy5kYXRhLmNvbnRleHRQYXRoLCBvcHRpb25zLmlkc1swXSkgKyAnLic7XG4gICAgfVxuXG4gICAgaWYgKGlzRnVuY3Rpb24oY29udGV4dCkpIHtcbiAgICAgIGNvbnRleHQgPSBjb250ZXh0LmNhbGwodGhpcyk7XG4gICAgfVxuXG4gICAgaWYgKG9wdGlvbnMuZGF0YSkge1xuICAgICAgZGF0YSA9IGNyZWF0ZUZyYW1lKG9wdGlvbnMuZGF0YSk7XG4gICAgfVxuXG4gICAgZnVuY3Rpb24gZXhlY0l0ZXJhdGlvbihmaWVsZCwgaW5kZXgsIGxhc3QpIHtcbiAgICAgIGlmIChkYXRhKSB7XG4gICAgICAgIGRhdGEua2V5ID0gZmllbGQ7XG4gICAgICAgIGRhdGEuaW5kZXggPSBpbmRleDtcbiAgICAgICAgZGF0YS5maXJzdCA9IGluZGV4ID09PSAwO1xuICAgICAgICBkYXRhLmxhc3QgPSAhIWxhc3Q7XG5cbiAgICAgICAgaWYgKGNvbnRleHRQYXRoKSB7XG4gICAgICAgICAgZGF0YS5jb250ZXh0UGF0aCA9IGNvbnRleHRQYXRoICsgZmllbGQ7XG4gICAgICAgIH1cbiAgICAgIH1cblxuICAgICAgcmV0ID1cbiAgICAgICAgcmV0ICtcbiAgICAgICAgZm4oY29udGV4dFtmaWVsZF0sIHtcbiAgICAgICAgICBkYXRhOiBkYXRhLFxuICAgICAgICAgIGJsb2NrUGFyYW1zOiBibG9ja1BhcmFtcyhcbiAgICAgICAgICAgIFtjb250ZXh0W2ZpZWxkXSwgZmllbGRdLFxuICAgICAgICAgICAgW2NvbnRleHRQYXRoICsgZmllbGQsIG51bGxdXG4gICAgICAgICAgKVxuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICBpZiAoY29udGV4dCAmJiB0eXBlb2YgY29udGV4dCA9PT0gJ29iamVjdCcpIHtcbiAgICAgIGlmIChpc0FycmF5KGNvbnRleHQpKSB7XG4gICAgICAgIGZvciAobGV0IGogPSBjb250ZXh0Lmxlbmd0aDsgaSA8IGo7IGkrKykge1xuICAgICAgICAgIGlmIChpIGluIGNvbnRleHQpIHtcbiAgICAgICAgICAgIGV4ZWNJdGVyYXRpb24oaSwgaSwgaSA9PT0gY29udGV4dC5sZW5ndGggLSAxKTtcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH0gZWxzZSBpZiAoZ2xvYmFsLlN5bWJvbCAmJiBjb250ZXh0W2dsb2JhbC5TeW1ib2wuaXRlcmF0b3JdKSB7XG4gICAgICAgIGNvbnN0IG5ld0NvbnRleHQgPSBbXTtcbiAgICAgICAgY29uc3QgaXRlcmF0b3IgPSBjb250ZXh0W2dsb2JhbC5TeW1ib2wuaXRlcmF0b3JdKCk7XG4gICAgICAgIGZvciAobGV0IGl0ID0gaXRlcmF0b3IubmV4dCgpOyAhaXQuZG9uZTsgaXQgPSBpdGVyYXRvci5uZXh0KCkpIHtcbiAgICAgICAgICBuZXdDb250ZXh0LnB1c2goaXQudmFsdWUpO1xuICAgICAgICB9XG4gICAgICAgIGNvbnRleHQgPSBuZXdDb250ZXh0O1xuICAgICAgICBmb3IgKGxldCBqID0gY29udGV4dC5sZW5ndGg7IGkgPCBqOyBpKyspIHtcbiAgICAgICAgICBleGVjSXRlcmF0aW9uKGksIGksIGkgPT09IGNvbnRleHQubGVuZ3RoIC0gMSk7XG4gICAgICAgIH1cbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIGxldCBwcmlvcktleTtcblxuICAgICAgICBPYmplY3Qua2V5cyhjb250ZXh0KS5mb3JFYWNoKGtleSA9PiB7XG4gICAgICAgICAgLy8gV2UncmUgcnVubmluZyB0aGUgaXRlcmF0aW9ucyBvbmUgc3RlcCBvdXQgb2Ygc3luYyBzbyB3ZSBjYW4gZGV0ZWN0XG4gICAgICAgICAgLy8gdGhlIGxhc3QgaXRlcmF0aW9uIHdpdGhvdXQgaGF2ZSB0byBzY2FuIHRoZSBvYmplY3QgdHdpY2UgYW5kIGNyZWF0ZVxuICAgICAgICAgIC8vIGFuIGl0ZXJtZWRpYXRlIGtleXMgYXJyYXkuXG4gICAgICAgICAgaWYgKHByaW9yS2V5ICE9PSB1bmRlZmluZWQpIHtcbiAgICAgICAgICAgIGV4ZWNJdGVyYXRpb24ocHJpb3JLZXksIGkgLSAxKTtcbiAgICAgICAgICB9XG4gICAgICAgICAgcHJpb3JLZXkgPSBrZXk7XG4gICAgICAgICAgaSsrO1xuICAgICAgICB9KTtcbiAgICAgICAgaWYgKHByaW9yS2V5ICE9PSB1bmRlZmluZWQpIHtcbiAgICAgICAgICBleGVjSXRlcmF0aW9uKHByaW9yS2V5LCBpIC0gMSwgdHJ1ZSk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG5cbiAgICBpZiAoaSA9PT0gMCkge1xuICAgICAgcmV0ID0gaW52ZXJzZSh0aGlzKTtcbiAgICB9XG5cbiAgICByZXR1cm4gcmV0O1xuICB9KTtcbn1cbiJdfQ== + +/* WEBPACK VAR INJECTION */}.call(this, __webpack_require__(/*! ./../../../../../webpack/buildin/global.js */ "./node_modules/webpack/buildin/global.js"))) + +/***/ }), + +/***/ "./node_modules/handlebars/dist/cjs/handlebars/helpers/helper-missing.js": +/*!*******************************************************************************!*\ + !*** ./node_modules/handlebars/dist/cjs/handlebars/helpers/helper-missing.js ***! + \*******************************************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + + +exports.__esModule = true; +// istanbul ignore next + +function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; } + +var _exception = __webpack_require__(/*! ../exception */ "./node_modules/handlebars/dist/cjs/handlebars/exception.js"); + +var _exception2 = _interopRequireDefault(_exception); + +exports['default'] = function (instance) { + instance.registerHelper('helperMissing', function () /* [args, ]options */{ + if (arguments.length === 1) { + // A missing field in a {{foo}} construct. + return undefined; + } else { + // Someone is actually trying to call something, blow up. + throw new _exception2['default']('Missing helper: "' + arguments[arguments.length - 1].name + '"'); + } + }); +}; + +module.exports = exports['default']; +//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL2xpYi9oYW5kbGViYXJzL2hlbHBlcnMvaGVscGVyLW1pc3NpbmcuanMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozt5QkFBc0IsY0FBYzs7OztxQkFFckIsVUFBUyxRQUFRLEVBQUU7QUFDaEMsVUFBUSxDQUFDLGNBQWMsQ0FBQyxlQUFlLEVBQUUsaUNBQWdDO0FBQ3ZFLFFBQUksU0FBUyxDQUFDLE1BQU0sS0FBSyxDQUFDLEVBQUU7O0FBRTFCLGFBQU8sU0FBUyxDQUFDO0tBQ2xCLE1BQU07O0FBRUwsWUFBTSwyQkFDSixtQkFBbUIsR0FBRyxTQUFTLENBQUMsU0FBUyxDQUFDLE1BQU0sR0FBRyxDQUFDLENBQUMsQ0FBQyxJQUFJLEdBQUcsR0FBRyxDQUNqRSxDQUFDO0tBQ0g7R0FDRixDQUFDLENBQUM7Q0FDSiIsImZpbGUiOiJoZWxwZXItbWlzc2luZy5qcyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBFeGNlcHRpb24gZnJvbSAnLi4vZXhjZXB0aW9uJztcblxuZXhwb3J0IGRlZmF1bHQgZnVuY3Rpb24oaW5zdGFuY2UpIHtcbiAgaW5zdGFuY2UucmVnaXN0ZXJIZWxwZXIoJ2hlbHBlck1pc3NpbmcnLCBmdW5jdGlvbigvKiBbYXJncywgXW9wdGlvbnMgKi8pIHtcbiAgICBpZiAoYXJndW1lbnRzLmxlbmd0aCA9PT0gMSkge1xuICAgICAgLy8gQSBtaXNzaW5nIGZpZWxkIGluIGEge3tmb299fSBjb25zdHJ1Y3QuXG4gICAgICByZXR1cm4gdW5kZWZpbmVkO1xuICAgIH0gZWxzZSB7XG4gICAgICAvLyBTb21lb25lIGlzIGFjdHVhbGx5IHRyeWluZyB0byBjYWxsIHNvbWV0aGluZywgYmxvdyB1cC5cbiAgICAgIHRocm93IG5ldyBFeGNlcHRpb24oXG4gICAgICAgICdNaXNzaW5nIGhlbHBlcjogXCInICsgYXJndW1lbnRzW2FyZ3VtZW50cy5sZW5ndGggLSAxXS5uYW1lICsgJ1wiJ1xuICAgICAgKTtcbiAgICB9XG4gIH0pO1xufVxuIl19 + + +/***/ }), + +/***/ "./node_modules/handlebars/dist/cjs/handlebars/helpers/if.js": +/*!*******************************************************************!*\ + !*** ./node_modules/handlebars/dist/cjs/handlebars/helpers/if.js ***! + \*******************************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + + +exports.__esModule = true; +// istanbul ignore next + +function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; } + +var _utils = __webpack_require__(/*! ../utils */ "./node_modules/handlebars/dist/cjs/handlebars/utils.js"); + +var _exception = __webpack_require__(/*! ../exception */ "./node_modules/handlebars/dist/cjs/handlebars/exception.js"); + +var _exception2 = _interopRequireDefault(_exception); + +exports['default'] = function (instance) { + instance.registerHelper('if', function (conditional, options) { + if (arguments.length != 2) { + throw new _exception2['default']('#if requires exactly one argument'); + } + if (_utils.isFunction(conditional)) { + conditional = conditional.call(this); + } + + // Default behavior is to render the positive path if the value is truthy and not empty. + // The `includeZero` option may be set to treat the condtional as purely not empty based on the + // behavior of isEmpty. Effectively this determines if 0 is handled by the positive path or negative. + if (!options.hash.includeZero && !conditional || _utils.isEmpty(conditional)) { + return options.inverse(this); + } else { + return options.fn(this); + } + }); + + instance.registerHelper('unless', function (conditional, options) { + if (arguments.length != 2) { + throw new _exception2['default']('#unless requires exactly one argument'); + } + return instance.helpers['if'].call(this, conditional, { + fn: options.inverse, + inverse: options.fn, + hash: options.hash + }); + }); +}; + +module.exports = exports['default']; +//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL2xpYi9oYW5kbGViYXJzL2hlbHBlcnMvaWYuanMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7OztxQkFBb0MsVUFBVTs7eUJBQ3hCLGNBQWM7Ozs7cUJBRXJCLFVBQVMsUUFBUSxFQUFFO0FBQ2hDLFVBQVEsQ0FBQyxjQUFjLENBQUMsSUFBSSxFQUFFLFVBQVMsV0FBVyxFQUFFLE9BQU8sRUFBRTtBQUMzRCxRQUFJLFNBQVMsQ0FBQyxNQUFNLElBQUksQ0FBQyxFQUFFO0FBQ3pCLFlBQU0sMkJBQWMsbUNBQW1DLENBQUMsQ0FBQztLQUMxRDtBQUNELFFBQUksa0JBQVcsV0FBVyxDQUFDLEVBQUU7QUFDM0IsaUJBQVcsR0FBRyxXQUFXLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO0tBQ3RDOzs7OztBQUtELFFBQUksQUFBQyxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsV0FBVyxJQUFJLENBQUMsV0FBVyxJQUFLLGVBQVEsV0FBVyxDQUFDLEVBQUU7QUFDdkUsYUFBTyxPQUFPLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxDQUFDO0tBQzlCLE1BQU07QUFDTCxhQUFPLE9BQU8sQ0FBQyxFQUFFLENBQUMsSUFBSSxDQUFDLENBQUM7S0FDekI7R0FDRixDQUFDLENBQUM7O0FBRUgsVUFBUSxDQUFDLGNBQWMsQ0FBQyxRQUFRLEVBQUUsVUFBUyxXQUFXLEVBQUUsT0FBTyxFQUFFO0FBQy9ELFFBQUksU0FBUyxDQUFDLE1BQU0sSUFBSSxDQUFDLEVBQUU7QUFDekIsWUFBTSwyQkFBYyx1Q0FBdUMsQ0FBQyxDQUFDO0tBQzlEO0FBQ0QsV0FBTyxRQUFRLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxDQUFDLElBQUksQ0FBQyxJQUFJLEVBQUUsV0FBVyxFQUFFO0FBQ3BELFFBQUUsRUFBRSxPQUFPLENBQUMsT0FBTztBQUNuQixhQUFPLEVBQUUsT0FBTyxDQUFDLEVBQUU7QUFDbkIsVUFBSSxFQUFFLE9BQU8sQ0FBQyxJQUFJO0tBQ25CLENBQUMsQ0FBQztHQUNKLENBQUMsQ0FBQztDQUNKIiwiZmlsZSI6ImlmLmpzIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgaXNFbXB0eSwgaXNGdW5jdGlvbiB9IGZyb20gJy4uL3V0aWxzJztcbmltcG9ydCBFeGNlcHRpb24gZnJvbSAnLi4vZXhjZXB0aW9uJztcblxuZXhwb3J0IGRlZmF1bHQgZnVuY3Rpb24oaW5zdGFuY2UpIHtcbiAgaW5zdGFuY2UucmVnaXN0ZXJIZWxwZXIoJ2lmJywgZnVuY3Rpb24oY29uZGl0aW9uYWwsIG9wdGlvbnMpIHtcbiAgICBpZiAoYXJndW1lbnRzLmxlbmd0aCAhPSAyKSB7XG4gICAgICB0aHJvdyBuZXcgRXhjZXB0aW9uKCcjaWYgcmVxdWlyZXMgZXhhY3RseSBvbmUgYXJndW1lbnQnKTtcbiAgICB9XG4gICAgaWYgKGlzRnVuY3Rpb24oY29uZGl0aW9uYWwpKSB7XG4gICAgICBjb25kaXRpb25hbCA9IGNvbmRpdGlvbmFsLmNhbGwodGhpcyk7XG4gICAgfVxuXG4gICAgLy8gRGVmYXVsdCBiZWhhdmlvciBpcyB0byByZW5kZXIgdGhlIHBvc2l0aXZlIHBhdGggaWYgdGhlIHZhbHVlIGlzIHRydXRoeSBhbmQgbm90IGVtcHR5LlxuICAgIC8vIFRoZSBgaW5jbHVkZVplcm9gIG9wdGlvbiBtYXkgYmUgc2V0IHRvIHRyZWF0IHRoZSBjb25kdGlvbmFsIGFzIHB1cmVseSBub3QgZW1wdHkgYmFzZWQgb24gdGhlXG4gICAgLy8gYmVoYXZpb3Igb2YgaXNFbXB0eS4gRWZmZWN0aXZlbHkgdGhpcyBkZXRlcm1pbmVzIGlmIDAgaXMgaGFuZGxlZCBieSB0aGUgcG9zaXRpdmUgcGF0aCBvciBuZWdhdGl2ZS5cbiAgICBpZiAoKCFvcHRpb25zLmhhc2guaW5jbHVkZVplcm8gJiYgIWNvbmRpdGlvbmFsKSB8fCBpc0VtcHR5KGNvbmRpdGlvbmFsKSkge1xuICAgICAgcmV0dXJuIG9wdGlvbnMuaW52ZXJzZSh0aGlzKTtcbiAgICB9IGVsc2Uge1xuICAgICAgcmV0dXJuIG9wdGlvbnMuZm4odGhpcyk7XG4gICAgfVxuICB9KTtcblxuICBpbnN0YW5jZS5yZWdpc3RlckhlbHBlcigndW5sZXNzJywgZnVuY3Rpb24oY29uZGl0aW9uYWwsIG9wdGlvbnMpIHtcbiAgICBpZiAoYXJndW1lbnRzLmxlbmd0aCAhPSAyKSB7XG4gICAgICB0aHJvdyBuZXcgRXhjZXB0aW9uKCcjdW5sZXNzIHJlcXVpcmVzIGV4YWN0bHkgb25lIGFyZ3VtZW50Jyk7XG4gICAgfVxuICAgIHJldHVybiBpbnN0YW5jZS5oZWxwZXJzWydpZiddLmNhbGwodGhpcywgY29uZGl0aW9uYWwsIHtcbiAgICAgIGZuOiBvcHRpb25zLmludmVyc2UsXG4gICAgICBpbnZlcnNlOiBvcHRpb25zLmZuLFxuICAgICAgaGFzaDogb3B0aW9ucy5oYXNoXG4gICAgfSk7XG4gIH0pO1xufVxuIl19 + + +/***/ }), + +/***/ "./node_modules/handlebars/dist/cjs/handlebars/helpers/log.js": +/*!********************************************************************!*\ + !*** ./node_modules/handlebars/dist/cjs/handlebars/helpers/log.js ***! + \********************************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + + +exports.__esModule = true; + +exports['default'] = function (instance) { + instance.registerHelper('log', function () /* message, options */{ + var args = [undefined], + options = arguments[arguments.length - 1]; + for (var i = 0; i < arguments.length - 1; i++) { + args.push(arguments[i]); + } + + var level = 1; + if (options.hash.level != null) { + level = options.hash.level; + } else if (options.data && options.data.level != null) { + level = options.data.level; + } + args[0] = level; + + instance.log.apply(instance, args); + }); +}; + +module.exports = exports['default']; +//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL2xpYi9oYW5kbGViYXJzL2hlbHBlcnMvbG9nLmpzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7cUJBQWUsVUFBUyxRQUFRLEVBQUU7QUFDaEMsVUFBUSxDQUFDLGNBQWMsQ0FBQyxLQUFLLEVBQUUsa0NBQWlDO0FBQzlELFFBQUksSUFBSSxHQUFHLENBQUMsU0FBUyxDQUFDO1FBQ3BCLE9BQU8sR0FBRyxTQUFTLENBQUMsU0FBUyxDQUFDLE1BQU0sR0FBRyxDQUFDLENBQUMsQ0FBQztBQUM1QyxTQUFLLElBQUksQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLEdBQUcsU0FBUyxDQUFDLE1BQU0sR0FBRyxDQUFDLEVBQUUsQ0FBQyxFQUFFLEVBQUU7QUFDN0MsVUFBSSxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztLQUN6Qjs7QUFFRCxRQUFJLEtBQUssR0FBRyxDQUFDLENBQUM7QUFDZCxRQUFJLE9BQU8sQ0FBQyxJQUFJLENBQUMsS0FBSyxJQUFJLElBQUksRUFBRTtBQUM5QixXQUFLLEdBQUcsT0FBTyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUM7S0FDNUIsTUFBTSxJQUFJLE9BQU8sQ0FBQyxJQUFJLElBQUksT0FBTyxDQUFDLElBQUksQ0FBQyxLQUFLLElBQUksSUFBSSxFQUFFO0FBQ3JELFdBQUssR0FBRyxPQUFPLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQztLQUM1QjtBQUNELFFBQUksQ0FBQyxDQUFDLENBQUMsR0FBRyxLQUFLLENBQUM7O0FBRWhCLFlBQVEsQ0FBQyxHQUFHLE1BQUEsQ0FBWixRQUFRLEVBQVEsSUFBSSxDQUFDLENBQUM7R0FDdkIsQ0FBQyxDQUFDO0NBQ0oiLCJmaWxlIjoibG9nLmpzIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IGRlZmF1bHQgZnVuY3Rpb24oaW5zdGFuY2UpIHtcbiAgaW5zdGFuY2UucmVnaXN0ZXJIZWxwZXIoJ2xvZycsIGZ1bmN0aW9uKC8qIG1lc3NhZ2UsIG9wdGlvbnMgKi8pIHtcbiAgICBsZXQgYXJncyA9IFt1bmRlZmluZWRdLFxuICAgICAgb3B0aW9ucyA9IGFyZ3VtZW50c1thcmd1bWVudHMubGVuZ3RoIC0gMV07XG4gICAgZm9yIChsZXQgaSA9IDA7IGkgPCBhcmd1bWVudHMubGVuZ3RoIC0gMTsgaSsrKSB7XG4gICAgICBhcmdzLnB1c2goYXJndW1lbnRzW2ldKTtcbiAgICB9XG5cbiAgICBsZXQgbGV2ZWwgPSAxO1xuICAgIGlmIChvcHRpb25zLmhhc2gubGV2ZWwgIT0gbnVsbCkge1xuICAgICAgbGV2ZWwgPSBvcHRpb25zLmhhc2gubGV2ZWw7XG4gICAgfSBlbHNlIGlmIChvcHRpb25zLmRhdGEgJiYgb3B0aW9ucy5kYXRhLmxldmVsICE9IG51bGwpIHtcbiAgICAgIGxldmVsID0gb3B0aW9ucy5kYXRhLmxldmVsO1xuICAgIH1cbiAgICBhcmdzWzBdID0gbGV2ZWw7XG5cbiAgICBpbnN0YW5jZS5sb2coLi4uYXJncyk7XG4gIH0pO1xufVxuIl19 + + +/***/ }), + +/***/ "./node_modules/handlebars/dist/cjs/handlebars/helpers/lookup.js": +/*!***********************************************************************!*\ + !*** ./node_modules/handlebars/dist/cjs/handlebars/helpers/lookup.js ***! + \***********************************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + + +exports.__esModule = true; + +exports['default'] = function (instance) { + instance.registerHelper('lookup', function (obj, field, options) { + if (!obj) { + // Note for 5.0: Change to "obj == null" in 5.0 + return obj; + } + return options.lookupProperty(obj, field); + }); +}; + +module.exports = exports['default']; +//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL2xpYi9oYW5kbGViYXJzL2hlbHBlcnMvbG9va3VwLmpzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7cUJBQWUsVUFBUyxRQUFRLEVBQUU7QUFDaEMsVUFBUSxDQUFDLGNBQWMsQ0FBQyxRQUFRLEVBQUUsVUFBUyxHQUFHLEVBQUUsS0FBSyxFQUFFLE9BQU8sRUFBRTtBQUM5RCxRQUFJLENBQUMsR0FBRyxFQUFFOztBQUVSLGFBQU8sR0FBRyxDQUFDO0tBQ1o7QUFDRCxXQUFPLE9BQU8sQ0FBQyxjQUFjLENBQUMsR0FBRyxFQUFFLEtBQUssQ0FBQyxDQUFDO0dBQzNDLENBQUMsQ0FBQztDQUNKIiwiZmlsZSI6Imxvb2t1cC5qcyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCBkZWZhdWx0IGZ1bmN0aW9uKGluc3RhbmNlKSB7XG4gIGluc3RhbmNlLnJlZ2lzdGVySGVscGVyKCdsb29rdXAnLCBmdW5jdGlvbihvYmosIGZpZWxkLCBvcHRpb25zKSB7XG4gICAgaWYgKCFvYmopIHtcbiAgICAgIC8vIE5vdGUgZm9yIDUuMDogQ2hhbmdlIHRvIFwib2JqID09IG51bGxcIiBpbiA1LjBcbiAgICAgIHJldHVybiBvYmo7XG4gICAgfVxuICAgIHJldHVybiBvcHRpb25zLmxvb2t1cFByb3BlcnR5KG9iaiwgZmllbGQpO1xuICB9KTtcbn1cbiJdfQ== + + +/***/ }), + +/***/ "./node_modules/handlebars/dist/cjs/handlebars/helpers/with.js": +/*!*********************************************************************!*\ + !*** ./node_modules/handlebars/dist/cjs/handlebars/helpers/with.js ***! + \*********************************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + + +exports.__esModule = true; +// istanbul ignore next + +function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; } + +var _utils = __webpack_require__(/*! ../utils */ "./node_modules/handlebars/dist/cjs/handlebars/utils.js"); + +var _exception = __webpack_require__(/*! ../exception */ "./node_modules/handlebars/dist/cjs/handlebars/exception.js"); + +var _exception2 = _interopRequireDefault(_exception); + +exports['default'] = function (instance) { + instance.registerHelper('with', function (context, options) { + if (arguments.length != 2) { + throw new _exception2['default']('#with requires exactly one argument'); + } + if (_utils.isFunction(context)) { + context = context.call(this); + } + + var fn = options.fn; + + if (!_utils.isEmpty(context)) { + var data = options.data; + if (options.data && options.ids) { + data = _utils.createFrame(options.data); + data.contextPath = _utils.appendContextPath(options.data.contextPath, options.ids[0]); + } + + return fn(context, { + data: data, + blockParams: _utils.blockParams([context], [data && data.contextPath]) + }); + } else { + return options.inverse(this); + } + }); +}; + +module.exports = exports['default']; +//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL2xpYi9oYW5kbGViYXJzL2hlbHBlcnMvd2l0aC5qcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7O3FCQU1PLFVBQVU7O3lCQUNLLGNBQWM7Ozs7cUJBRXJCLFVBQVMsUUFBUSxFQUFFO0FBQ2hDLFVBQVEsQ0FBQyxjQUFjLENBQUMsTUFBTSxFQUFFLFVBQVMsT0FBTyxFQUFFLE9BQU8sRUFBRTtBQUN6RCxRQUFJLFNBQVMsQ0FBQyxNQUFNLElBQUksQ0FBQyxFQUFFO0FBQ3pCLFlBQU0sMkJBQWMscUNBQXFDLENBQUMsQ0FBQztLQUM1RDtBQUNELFFBQUksa0JBQVcsT0FBTyxDQUFDLEVBQUU7QUFDdkIsYUFBTyxHQUFHLE9BQU8sQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7S0FDOUI7O0FBRUQsUUFBSSxFQUFFLEdBQUcsT0FBTyxDQUFDLEVBQUUsQ0FBQzs7QUFFcEIsUUFBSSxDQUFDLGVBQVEsT0FBTyxDQUFDLEVBQUU7QUFDckIsVUFBSSxJQUFJLEdBQUcsT0FBTyxDQUFDLElBQUksQ0FBQztBQUN4QixVQUFJLE9BQU8sQ0FBQyxJQUFJLElBQUksT0FBTyxDQUFDLEdBQUcsRUFBRTtBQUMvQixZQUFJLEdBQUcsbUJBQVksT0FBTyxDQUFDLElBQUksQ0FBQyxDQUFDO0FBQ2pDLFlBQUksQ0FBQyxXQUFXLEdBQUcseUJBQ2pCLE9BQU8sQ0FBQyxJQUFJLENBQUMsV0FBVyxFQUN4QixPQUFPLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUNmLENBQUM7T0FDSDs7QUFFRCxhQUFPLEVBQUUsQ0FBQyxPQUFPLEVBQUU7QUFDakIsWUFBSSxFQUFFLElBQUk7QUFDVixtQkFBVyxFQUFFLG1CQUFZLENBQUMsT0FBTyxDQUFDLEVBQUUsQ0FBQyxJQUFJLElBQUksSUFBSSxDQUFDLFdBQVcsQ0FBQyxDQUFDO09BQ2hFLENBQUMsQ0FBQztLQUNKLE1BQU07QUFDTCxhQUFPLE9BQU8sQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLENBQUM7S0FDOUI7R0FDRixDQUFDLENBQUM7Q0FDSiIsImZpbGUiOiJ3aXRoLmpzIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgYXBwZW5kQ29udGV4dFBhdGgsXG4gIGJsb2NrUGFyYW1zLFxuICBjcmVhdGVGcmFtZSxcbiAgaXNFbXB0eSxcbiAgaXNGdW5jdGlvblxufSBmcm9tICcuLi91dGlscyc7XG5pbXBvcnQgRXhjZXB0aW9uIGZyb20gJy4uL2V4Y2VwdGlvbic7XG5cbmV4cG9ydCBkZWZhdWx0IGZ1bmN0aW9uKGluc3RhbmNlKSB7XG4gIGluc3RhbmNlLnJlZ2lzdGVySGVscGVyKCd3aXRoJywgZnVuY3Rpb24oY29udGV4dCwgb3B0aW9ucykge1xuICAgIGlmIChhcmd1bWVudHMubGVuZ3RoICE9IDIpIHtcbiAgICAgIHRocm93IG5ldyBFeGNlcHRpb24oJyN3aXRoIHJlcXVpcmVzIGV4YWN0bHkgb25lIGFyZ3VtZW50Jyk7XG4gICAgfVxuICAgIGlmIChpc0Z1bmN0aW9uKGNvbnRleHQpKSB7XG4gICAgICBjb250ZXh0ID0gY29udGV4dC5jYWxsKHRoaXMpO1xuICAgIH1cblxuICAgIGxldCBmbiA9IG9wdGlvbnMuZm47XG5cbiAgICBpZiAoIWlzRW1wdHkoY29udGV4dCkpIHtcbiAgICAgIGxldCBkYXRhID0gb3B0aW9ucy5kYXRhO1xuICAgICAgaWYgKG9wdGlvbnMuZGF0YSAmJiBvcHRpb25zLmlkcykge1xuICAgICAgICBkYXRhID0gY3JlYXRlRnJhbWUob3B0aW9ucy5kYXRhKTtcbiAgICAgICAgZGF0YS5jb250ZXh0UGF0aCA9IGFwcGVuZENvbnRleHRQYXRoKFxuICAgICAgICAgIG9wdGlvbnMuZGF0YS5jb250ZXh0UGF0aCxcbiAgICAgICAgICBvcHRpb25zLmlkc1swXVxuICAgICAgICApO1xuICAgICAgfVxuXG4gICAgICByZXR1cm4gZm4oY29udGV4dCwge1xuICAgICAgICBkYXRhOiBkYXRhLFxuICAgICAgICBibG9ja1BhcmFtczogYmxvY2tQYXJhbXMoW2NvbnRleHRdLCBbZGF0YSAmJiBkYXRhLmNvbnRleHRQYXRoXSlcbiAgICAgIH0pO1xuICAgIH0gZWxzZSB7XG4gICAgICByZXR1cm4gb3B0aW9ucy5pbnZlcnNlKHRoaXMpO1xuICAgIH1cbiAgfSk7XG59XG4iXX0= + + +/***/ }), + +/***/ "./node_modules/handlebars/dist/cjs/handlebars/internal/create-new-lookup-object.js": +/*!******************************************************************************************!*\ + !*** ./node_modules/handlebars/dist/cjs/handlebars/internal/create-new-lookup-object.js ***! + \******************************************************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + + +exports.__esModule = true; +exports.createNewLookupObject = createNewLookupObject; + +var _utils = __webpack_require__(/*! ../utils */ "./node_modules/handlebars/dist/cjs/handlebars/utils.js"); + +/** + * Create a new object with "null"-prototype to avoid truthy results on prototype properties. + * The resulting object can be used with "object[property]" to check if a property exists + * @param {...object} sources a varargs parameter of source objects that will be merged + * @returns {object} + */ + +function createNewLookupObject() { + for (var _len = arguments.length, sources = Array(_len), _key = 0; _key < _len; _key++) { + sources[_key] = arguments[_key]; + } + + return _utils.extend.apply(undefined, [Object.create(null)].concat(sources)); +} +//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL2xpYi9oYW5kbGViYXJzL2ludGVybmFsL2NyZWF0ZS1uZXctbG9va3VwLW9iamVjdC5qcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7OztxQkFBdUIsVUFBVTs7Ozs7Ozs7O0FBUTFCLFNBQVMscUJBQXFCLEdBQWE7b0NBQVQsT0FBTztBQUFQLFdBQU87OztBQUM5QyxTQUFPLGdDQUFPLE1BQU0sQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLFNBQUssT0FBTyxFQUFDLENBQUM7Q0FDaEQiLCJmaWxlIjoiY3JlYXRlLW5ldy1sb29rdXAtb2JqZWN0LmpzIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgZXh0ZW5kIH0gZnJvbSAnLi4vdXRpbHMnO1xuXG4vKipcbiAqIENyZWF0ZSBhIG5ldyBvYmplY3Qgd2l0aCBcIm51bGxcIi1wcm90b3R5cGUgdG8gYXZvaWQgdHJ1dGh5IHJlc3VsdHMgb24gcHJvdG90eXBlIHByb3BlcnRpZXMuXG4gKiBUaGUgcmVzdWx0aW5nIG9iamVjdCBjYW4gYmUgdXNlZCB3aXRoIFwib2JqZWN0W3Byb3BlcnR5XVwiIHRvIGNoZWNrIGlmIGEgcHJvcGVydHkgZXhpc3RzXG4gKiBAcGFyYW0gey4uLm9iamVjdH0gc291cmNlcyBhIHZhcmFyZ3MgcGFyYW1ldGVyIG9mIHNvdXJjZSBvYmplY3RzIHRoYXQgd2lsbCBiZSBtZXJnZWRcbiAqIEByZXR1cm5zIHtvYmplY3R9XG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBjcmVhdGVOZXdMb29rdXBPYmplY3QoLi4uc291cmNlcykge1xuICByZXR1cm4gZXh0ZW5kKE9iamVjdC5jcmVhdGUobnVsbCksIC4uLnNvdXJjZXMpO1xufVxuIl19 + + +/***/ }), + +/***/ "./node_modules/handlebars/dist/cjs/handlebars/internal/proto-access.js": +/*!******************************************************************************!*\ + !*** ./node_modules/handlebars/dist/cjs/handlebars/internal/proto-access.js ***! + \******************************************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + + +exports.__esModule = true; +exports.createProtoAccessControl = createProtoAccessControl; +exports.resultIsAllowed = resultIsAllowed; +exports.resetLoggedProperties = resetLoggedProperties; +// istanbul ignore next + +function _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } else { var newObj = {}; if (obj != null) { for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) newObj[key] = obj[key]; } } newObj['default'] = obj; return newObj; } } + +var _createNewLookupObject = __webpack_require__(/*! ./create-new-lookup-object */ "./node_modules/handlebars/dist/cjs/handlebars/internal/create-new-lookup-object.js"); + +var _logger = __webpack_require__(/*! ../logger */ "./node_modules/handlebars/dist/cjs/handlebars/logger.js"); + +var logger = _interopRequireWildcard(_logger); + +var loggedProperties = Object.create(null); + +function createProtoAccessControl(runtimeOptions) { + var defaultMethodWhiteList = Object.create(null); + defaultMethodWhiteList['constructor'] = false; + defaultMethodWhiteList['__defineGetter__'] = false; + defaultMethodWhiteList['__defineSetter__'] = false; + defaultMethodWhiteList['__lookupGetter__'] = false; + + var defaultPropertyWhiteList = Object.create(null); + // eslint-disable-next-line no-proto + defaultPropertyWhiteList['__proto__'] = false; + + return { + properties: { + whitelist: _createNewLookupObject.createNewLookupObject(defaultPropertyWhiteList, runtimeOptions.allowedProtoProperties), + defaultValue: runtimeOptions.allowProtoPropertiesByDefault + }, + methods: { + whitelist: _createNewLookupObject.createNewLookupObject(defaultMethodWhiteList, runtimeOptions.allowedProtoMethods), + defaultValue: runtimeOptions.allowProtoMethodsByDefault + } + }; +} + +function resultIsAllowed(result, protoAccessControl, propertyName) { + if (typeof result === 'function') { + return checkWhiteList(protoAccessControl.methods, propertyName); + } else { + return checkWhiteList(protoAccessControl.properties, propertyName); + } +} + +function checkWhiteList(protoAccessControlForType, propertyName) { + if (protoAccessControlForType.whitelist[propertyName] !== undefined) { + return protoAccessControlForType.whitelist[propertyName] === true; + } + if (protoAccessControlForType.defaultValue !== undefined) { + return protoAccessControlForType.defaultValue; + } + logUnexpecedPropertyAccessOnce(propertyName); + return false; +} + +function logUnexpecedPropertyAccessOnce(propertyName) { + if (loggedProperties[propertyName] !== true) { + loggedProperties[propertyName] = true; + logger.log('error', 'Handlebars: Access has been denied to resolve the property "' + propertyName + '" because it is not an "own property" of its parent.\n' + 'You can add a runtime option to disable the check or this warning:\n' + 'See https://handlebarsjs.com/api-reference/runtime-options.html#options-to-control-prototype-access for details'); + } +} + +function resetLoggedProperties() { + Object.keys(loggedProperties).forEach(function (propertyName) { + delete loggedProperties[propertyName]; + }); +} +//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL2xpYi9oYW5kbGViYXJzL2ludGVybmFsL3Byb3RvLWFjY2Vzcy5qcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7O3FDQUFzQyw0QkFBNEI7O3NCQUMxQyxXQUFXOztJQUF2QixNQUFNOztBQUVsQixJQUFNLGdCQUFnQixHQUFHLE1BQU0sQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLENBQUM7O0FBRXRDLFNBQVMsd0JBQXdCLENBQUMsY0FBYyxFQUFFO0FBQ3ZELE1BQUksc0JBQXNCLEdBQUcsTUFBTSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsQ0FBQztBQUNqRCx3QkFBc0IsQ0FBQyxhQUFhLENBQUMsR0FBRyxLQUFLLENBQUM7QUFDOUMsd0JBQXNCLENBQUMsa0JBQWtCLENBQUMsR0FBRyxLQUFLLENBQUM7QUFDbkQsd0JBQXNCLENBQUMsa0JBQWtCLENBQUMsR0FBRyxLQUFLLENBQUM7QUFDbkQsd0JBQXNCLENBQUMsa0JBQWtCLENBQUMsR0FBRyxLQUFLLENBQUM7O0FBRW5ELE1BQUksd0JBQXdCLEdBQUcsTUFBTSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsQ0FBQzs7QUFFbkQsMEJBQXdCLENBQUMsV0FBVyxDQUFDLEdBQUcsS0FBSyxDQUFDOztBQUU5QyxTQUFPO0FBQ0wsY0FBVSxFQUFFO0FBQ1YsZUFBUyxFQUFFLDZDQUNULHdCQUF3QixFQUN4QixjQUFjLENBQUMsc0JBQXNCLENBQ3RDO0FBQ0Qsa0JBQVksRUFBRSxjQUFjLENBQUMsNkJBQTZCO0tBQzNEO0FBQ0QsV0FBTyxFQUFFO0FBQ1AsZUFBUyxFQUFFLDZDQUNULHNCQUFzQixFQUN0QixjQUFjLENBQUMsbUJBQW1CLENBQ25DO0FBQ0Qsa0JBQVksRUFBRSxjQUFjLENBQUMsMEJBQTBCO0tBQ3hEO0dBQ0YsQ0FBQztDQUNIOztBQUVNLFNBQVMsZUFBZSxDQUFDLE1BQU0sRUFBRSxrQkFBa0IsRUFBRSxZQUFZLEVBQUU7QUFDeEUsTUFBSSxPQUFPLE1BQU0sS0FBSyxVQUFVLEVBQUU7QUFDaEMsV0FBTyxjQUFjLENBQUMsa0JBQWtCLENBQUMsT0FBTyxFQUFFLFlBQVksQ0FBQyxDQUFDO0dBQ2pFLE1BQU07QUFDTCxXQUFPLGNBQWMsQ0FBQyxrQkFBa0IsQ0FBQyxVQUFVLEVBQUUsWUFBWSxDQUFDLENBQUM7R0FDcEU7Q0FDRjs7QUFFRCxTQUFTLGNBQWMsQ0FBQyx5QkFBeUIsRUFBRSxZQUFZLEVBQUU7QUFDL0QsTUFBSSx5QkFBeUIsQ0FBQyxTQUFTLENBQUMsWUFBWSxDQUFDLEtBQUssU0FBUyxFQUFFO0FBQ25FLFdBQU8seUJBQXlCLENBQUMsU0FBUyxDQUFDLFlBQVksQ0FBQyxLQUFLLElBQUksQ0FBQztHQUNuRTtBQUNELE1BQUkseUJBQXlCLENBQUMsWUFBWSxLQUFLLFNBQVMsRUFBRTtBQUN4RCxXQUFPLHlCQUF5QixDQUFDLFlBQVksQ0FBQztHQUMvQztBQUNELGdDQUE4QixDQUFDLFlBQVksQ0FBQyxDQUFDO0FBQzdDLFNBQU8sS0FBSyxDQUFDO0NBQ2Q7O0FBRUQsU0FBUyw4QkFBOEIsQ0FBQyxZQUFZLEVBQUU7QUFDcEQsTUFBSSxnQkFBZ0IsQ0FBQyxZQUFZLENBQUMsS0FBSyxJQUFJLEVBQUU7QUFDM0Msb0JBQWdCLENBQUMsWUFBWSxDQUFDLEdBQUcsSUFBSSxDQUFDO0FBQ3RDLFVBQU0sQ0FBQyxHQUFHLENBQ1IsT0FBTyxFQUNQLGlFQUErRCxZQUFZLG9JQUNILG9IQUMyQyxDQUNwSCxDQUFDO0dBQ0g7Q0FDRjs7QUFFTSxTQUFTLHFCQUFxQixHQUFHO0FBQ3RDLFFBQU0sQ0FBQyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsQ0FBQyxPQUFPLENBQUMsVUFBQSxZQUFZLEVBQUk7QUFDcEQsV0FBTyxnQkFBZ0IsQ0FBQyxZQUFZLENBQUMsQ0FBQztHQUN2QyxDQUFDLENBQUM7Q0FDSiIsImZpbGUiOiJwcm90by1hY2Nlc3MuanMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBjcmVhdGVOZXdMb29rdXBPYmplY3QgfSBmcm9tICcuL2NyZWF0ZS1uZXctbG9va3VwLW9iamVjdCc7XG5pbXBvcnQgKiBhcyBsb2dnZXIgZnJvbSAnLi4vbG9nZ2VyJztcblxuY29uc3QgbG9nZ2VkUHJvcGVydGllcyA9IE9iamVjdC5jcmVhdGUobnVsbCk7XG5cbmV4cG9ydCBmdW5jdGlvbiBjcmVhdGVQcm90b0FjY2Vzc0NvbnRyb2wocnVudGltZU9wdGlvbnMpIHtcbiAgbGV0IGRlZmF1bHRNZXRob2RXaGl0ZUxpc3QgPSBPYmplY3QuY3JlYXRlKG51bGwpO1xuICBkZWZhdWx0TWV0aG9kV2hpdGVMaXN0Wydjb25zdHJ1Y3RvciddID0gZmFsc2U7XG4gIGRlZmF1bHRNZXRob2RXaGl0ZUxpc3RbJ19fZGVmaW5lR2V0dGVyX18nXSA9IGZhbHNlO1xuICBkZWZhdWx0TWV0aG9kV2hpdGVMaXN0WydfX2RlZmluZVNldHRlcl9fJ10gPSBmYWxzZTtcbiAgZGVmYXVsdE1ldGhvZFdoaXRlTGlzdFsnX19sb29rdXBHZXR0ZXJfXyddID0gZmFsc2U7XG5cbiAgbGV0IGRlZmF1bHRQcm9wZXJ0eVdoaXRlTGlzdCA9IE9iamVjdC5jcmVhdGUobnVsbCk7XG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBuby1wcm90b1xuICBkZWZhdWx0UHJvcGVydHlXaGl0ZUxpc3RbJ19fcHJvdG9fXyddID0gZmFsc2U7XG5cbiAgcmV0dXJuIHtcbiAgICBwcm9wZXJ0aWVzOiB7XG4gICAgICB3aGl0ZWxpc3Q6IGNyZWF0ZU5ld0xvb2t1cE9iamVjdChcbiAgICAgICAgZGVmYXVsdFByb3BlcnR5V2hpdGVMaXN0LFxuICAgICAgICBydW50aW1lT3B0aW9ucy5hbGxvd2VkUHJvdG9Qcm9wZXJ0aWVzXG4gICAgICApLFxuICAgICAgZGVmYXVsdFZhbHVlOiBydW50aW1lT3B0aW9ucy5hbGxvd1Byb3RvUHJvcGVydGllc0J5RGVmYXVsdFxuICAgIH0sXG4gICAgbWV0aG9kczoge1xuICAgICAgd2hpdGVsaXN0OiBjcmVhdGVOZXdMb29rdXBPYmplY3QoXG4gICAgICAgIGRlZmF1bHRNZXRob2RXaGl0ZUxpc3QsXG4gICAgICAgIHJ1bnRpbWVPcHRpb25zLmFsbG93ZWRQcm90b01ldGhvZHNcbiAgICAgICksXG4gICAgICBkZWZhdWx0VmFsdWU6IHJ1bnRpbWVPcHRpb25zLmFsbG93UHJvdG9NZXRob2RzQnlEZWZhdWx0XG4gICAgfVxuICB9O1xufVxuXG5leHBvcnQgZnVuY3Rpb24gcmVzdWx0SXNBbGxvd2VkKHJlc3VsdCwgcHJvdG9BY2Nlc3NDb250cm9sLCBwcm9wZXJ0eU5hbWUpIHtcbiAgaWYgKHR5cGVvZiByZXN1bHQgPT09ICdmdW5jdGlvbicpIHtcbiAgICByZXR1cm4gY2hlY2tXaGl0ZUxpc3QocHJvdG9BY2Nlc3NDb250cm9sLm1ldGhvZHMsIHByb3BlcnR5TmFtZSk7XG4gIH0gZWxzZSB7XG4gICAgcmV0dXJuIGNoZWNrV2hpdGVMaXN0KHByb3RvQWNjZXNzQ29udHJvbC5wcm9wZXJ0aWVzLCBwcm9wZXJ0eU5hbWUpO1xuICB9XG59XG5cbmZ1bmN0aW9uIGNoZWNrV2hpdGVMaXN0KHByb3RvQWNjZXNzQ29udHJvbEZvclR5cGUsIHByb3BlcnR5TmFtZSkge1xuICBpZiAocHJvdG9BY2Nlc3NDb250cm9sRm9yVHlwZS53aGl0ZWxpc3RbcHJvcGVydHlOYW1lXSAhPT0gdW5kZWZpbmVkKSB7XG4gICAgcmV0dXJuIHByb3RvQWNjZXNzQ29udHJvbEZvclR5cGUud2hpdGVsaXN0W3Byb3BlcnR5TmFtZV0gPT09IHRydWU7XG4gIH1cbiAgaWYgKHByb3RvQWNjZXNzQ29udHJvbEZvclR5cGUuZGVmYXVsdFZhbHVlICE9PSB1bmRlZmluZWQpIHtcbiAgICByZXR1cm4gcHJvdG9BY2Nlc3NDb250cm9sRm9yVHlwZS5kZWZhdWx0VmFsdWU7XG4gIH1cbiAgbG9nVW5leHBlY2VkUHJvcGVydHlBY2Nlc3NPbmNlKHByb3BlcnR5TmFtZSk7XG4gIHJldHVybiBmYWxzZTtcbn1cblxuZnVuY3Rpb24gbG9nVW5leHBlY2VkUHJvcGVydHlBY2Nlc3NPbmNlKHByb3BlcnR5TmFtZSkge1xuICBpZiAobG9nZ2VkUHJvcGVydGllc1twcm9wZXJ0eU5hbWVdICE9PSB0cnVlKSB7XG4gICAgbG9nZ2VkUHJvcGVydGllc1twcm9wZXJ0eU5hbWVdID0gdHJ1ZTtcbiAgICBsb2dnZXIubG9nKFxuICAgICAgJ2Vycm9yJyxcbiAgICAgIGBIYW5kbGViYXJzOiBBY2Nlc3MgaGFzIGJlZW4gZGVuaWVkIHRvIHJlc29sdmUgdGhlIHByb3BlcnR5IFwiJHtwcm9wZXJ0eU5hbWV9XCIgYmVjYXVzZSBpdCBpcyBub3QgYW4gXCJvd24gcHJvcGVydHlcIiBvZiBpdHMgcGFyZW50LlxcbmAgK1xuICAgICAgICBgWW91IGNhbiBhZGQgYSBydW50aW1lIG9wdGlvbiB0byBkaXNhYmxlIHRoZSBjaGVjayBvciB0aGlzIHdhcm5pbmc6XFxuYCArXG4gICAgICAgIGBTZWUgaHR0cHM6Ly9oYW5kbGViYXJzanMuY29tL2FwaS1yZWZlcmVuY2UvcnVudGltZS1vcHRpb25zLmh0bWwjb3B0aW9ucy10by1jb250cm9sLXByb3RvdHlwZS1hY2Nlc3MgZm9yIGRldGFpbHNgXG4gICAgKTtcbiAgfVxufVxuXG5leHBvcnQgZnVuY3Rpb24gcmVzZXRMb2dnZWRQcm9wZXJ0aWVzKCkge1xuICBPYmplY3Qua2V5cyhsb2dnZWRQcm9wZXJ0aWVzKS5mb3JFYWNoKHByb3BlcnR5TmFtZSA9PiB7XG4gICAgZGVsZXRlIGxvZ2dlZFByb3BlcnRpZXNbcHJvcGVydHlOYW1lXTtcbiAgfSk7XG59XG4iXX0= + + +/***/ }), + +/***/ "./node_modules/handlebars/dist/cjs/handlebars/internal/wrapHelper.js": +/*!****************************************************************************!*\ + !*** ./node_modules/handlebars/dist/cjs/handlebars/internal/wrapHelper.js ***! + \****************************************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + + +exports.__esModule = true; +exports.wrapHelper = wrapHelper; + +function wrapHelper(helper, transformOptionsFn) { + if (typeof helper !== 'function') { + // This should not happen, but apparently it does in https://github.com/wycats/handlebars.js/issues/1639 + // We try to make the wrapper least-invasive by not wrapping it, if the helper is not a function. + return helper; + } + var wrapper = function wrapper() /* dynamic arguments */{ + var options = arguments[arguments.length - 1]; + arguments[arguments.length - 1] = transformOptionsFn(options); + return helper.apply(this, arguments); + }; + return wrapper; +} +//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL2xpYi9oYW5kbGViYXJzL2ludGVybmFsL3dyYXBIZWxwZXIuanMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7QUFBTyxTQUFTLFVBQVUsQ0FBQyxNQUFNLEVBQUUsa0JBQWtCLEVBQUU7QUFDckQsTUFBSSxPQUFPLE1BQU0sS0FBSyxVQUFVLEVBQUU7OztBQUdoQyxXQUFPLE1BQU0sQ0FBQztHQUNmO0FBQ0QsTUFBSSxPQUFPLEdBQUcsU0FBVixPQUFPLDBCQUFxQztBQUM5QyxRQUFNLE9BQU8sR0FBRyxTQUFTLENBQUMsU0FBUyxDQUFDLE1BQU0sR0FBRyxDQUFDLENBQUMsQ0FBQztBQUNoRCxhQUFTLENBQUMsU0FBUyxDQUFDLE1BQU0sR0FBRyxDQUFDLENBQUMsR0FBRyxrQkFBa0IsQ0FBQyxPQUFPLENBQUMsQ0FBQztBQUM5RCxXQUFPLE1BQU0sQ0FBQyxLQUFLLENBQUMsSUFBSSxFQUFFLFNBQVMsQ0FBQyxDQUFDO0dBQ3RDLENBQUM7QUFDRixTQUFPLE9BQU8sQ0FBQztDQUNoQiIsImZpbGUiOiJ3cmFwSGVscGVyLmpzIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IGZ1bmN0aW9uIHdyYXBIZWxwZXIoaGVscGVyLCB0cmFuc2Zvcm1PcHRpb25zRm4pIHtcbiAgaWYgKHR5cGVvZiBoZWxwZXIgIT09ICdmdW5jdGlvbicpIHtcbiAgICAvLyBUaGlzIHNob3VsZCBub3QgaGFwcGVuLCBidXQgYXBwYXJlbnRseSBpdCBkb2VzIGluIGh0dHBzOi8vZ2l0aHViLmNvbS93eWNhdHMvaGFuZGxlYmFycy5qcy9pc3N1ZXMvMTYzOVxuICAgIC8vIFdlIHRyeSB0byBtYWtlIHRoZSB3cmFwcGVyIGxlYXN0LWludmFzaXZlIGJ5IG5vdCB3cmFwcGluZyBpdCwgaWYgdGhlIGhlbHBlciBpcyBub3QgYSBmdW5jdGlvbi5cbiAgICByZXR1cm4gaGVscGVyO1xuICB9XG4gIGxldCB3cmFwcGVyID0gZnVuY3Rpb24oLyogZHluYW1pYyBhcmd1bWVudHMgKi8pIHtcbiAgICBjb25zdCBvcHRpb25zID0gYXJndW1lbnRzW2FyZ3VtZW50cy5sZW5ndGggLSAxXTtcbiAgICBhcmd1bWVudHNbYXJndW1lbnRzLmxlbmd0aCAtIDFdID0gdHJhbnNmb3JtT3B0aW9uc0ZuKG9wdGlvbnMpO1xuICAgIHJldHVybiBoZWxwZXIuYXBwbHkodGhpcywgYXJndW1lbnRzKTtcbiAgfTtcbiAgcmV0dXJuIHdyYXBwZXI7XG59XG4iXX0= + + +/***/ }), + +/***/ "./node_modules/handlebars/dist/cjs/handlebars/logger.js": +/*!***************************************************************!*\ + !*** ./node_modules/handlebars/dist/cjs/handlebars/logger.js ***! + \***************************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + + +exports.__esModule = true; + +var _utils = __webpack_require__(/*! ./utils */ "./node_modules/handlebars/dist/cjs/handlebars/utils.js"); + +var logger = { + methodMap: ['debug', 'info', 'warn', 'error'], + level: 'info', + + // Maps a given level value to the `methodMap` indexes above. + lookupLevel: function lookupLevel(level) { + if (typeof level === 'string') { + var levelMap = _utils.indexOf(logger.methodMap, level.toLowerCase()); + if (levelMap >= 0) { + level = levelMap; + } else { + level = parseInt(level, 10); + } + } + + return level; + }, + + // Can be overridden in the host environment + log: function log(level) { + level = logger.lookupLevel(level); + + if (typeof console !== 'undefined' && logger.lookupLevel(logger.level) <= level) { + var method = logger.methodMap[level]; + // eslint-disable-next-line no-console + if (!console[method]) { + method = 'log'; + } + + for (var _len = arguments.length, message = Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) { + message[_key - 1] = arguments[_key]; + } + + console[method].apply(console, message); // eslint-disable-line no-console + } + } +}; + +exports['default'] = logger; +module.exports = exports['default']; +//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL2xpYi9oYW5kbGViYXJzL2xvZ2dlci5qcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7O3FCQUF3QixTQUFTOztBQUVqQyxJQUFJLE1BQU0sR0FBRztBQUNYLFdBQVMsRUFBRSxDQUFDLE9BQU8sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE9BQU8sQ0FBQztBQUM3QyxPQUFLLEVBQUUsTUFBTTs7O0FBR2IsYUFBVyxFQUFFLHFCQUFTLEtBQUssRUFBRTtBQUMzQixRQUFJLE9BQU8sS0FBSyxLQUFLLFFBQVEsRUFBRTtBQUM3QixVQUFJLFFBQVEsR0FBRyxlQUFRLE1BQU0sQ0FBQyxTQUFTLEVBQUUsS0FBSyxDQUFDLFdBQVcsRUFBRSxDQUFDLENBQUM7QUFDOUQsVUFBSSxRQUFRLElBQUksQ0FBQyxFQUFFO0FBQ2pCLGFBQUssR0FBRyxRQUFRLENBQUM7T0FDbEIsTUFBTTtBQUNMLGFBQUssR0FBRyxRQUFRLENBQUMsS0FBSyxFQUFFLEVBQUUsQ0FBQyxDQUFDO09BQzdCO0tBQ0Y7O0FBRUQsV0FBTyxLQUFLLENBQUM7R0FDZDs7O0FBR0QsS0FBRyxFQUFFLGFBQVMsS0FBSyxFQUFjO0FBQy9CLFNBQUssR0FBRyxNQUFNLENBQUMsV0FBVyxDQUFDLEtBQUssQ0FBQyxDQUFDOztBQUVsQyxRQUNFLE9BQU8sT0FBTyxLQUFLLFdBQVcsSUFDOUIsTUFBTSxDQUFDLFdBQVcsQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLElBQUksS0FBSyxFQUN6QztBQUNBLFVBQUksTUFBTSxHQUFHLE1BQU0sQ0FBQyxTQUFTLENBQUMsS0FBSyxDQUFDLENBQUM7O0FBRXJDLFVBQUksQ0FBQyxPQUFPLENBQUMsTUFBTSxDQUFDLEVBQUU7QUFDcEIsY0FBTSxHQUFHLEtBQUssQ0FBQztPQUNoQjs7d0NBWG1CLE9BQU87QUFBUCxlQUFPOzs7QUFZM0IsYUFBTyxDQUFDLE1BQU0sT0FBQyxDQUFmLE9BQU8sRUFBWSxPQUFPLENBQUMsQ0FBQztLQUM3QjtHQUNGO0NBQ0YsQ0FBQzs7cUJBRWEsTUFBTSIsImZpbGUiOiJsb2dnZXIuanMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBpbmRleE9mIH0gZnJvbSAnLi91dGlscyc7XG5cbmxldCBsb2dnZXIgPSB7XG4gIG1ldGhvZE1hcDogWydkZWJ1ZycsICdpbmZvJywgJ3dhcm4nLCAnZXJyb3InXSxcbiAgbGV2ZWw6ICdpbmZvJyxcblxuICAvLyBNYXBzIGEgZ2l2ZW4gbGV2ZWwgdmFsdWUgdG8gdGhlIGBtZXRob2RNYXBgIGluZGV4ZXMgYWJvdmUuXG4gIGxvb2t1cExldmVsOiBmdW5jdGlvbihsZXZlbCkge1xuICAgIGlmICh0eXBlb2YgbGV2ZWwgPT09ICdzdHJpbmcnKSB7XG4gICAgICBsZXQgbGV2ZWxNYXAgPSBpbmRleE9mKGxvZ2dlci5tZXRob2RNYXAsIGxldmVsLnRvTG93ZXJDYXNlKCkpO1xuICAgICAgaWYgKGxldmVsTWFwID49IDApIHtcbiAgICAgICAgbGV2ZWwgPSBsZXZlbE1hcDtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIGxldmVsID0gcGFyc2VJbnQobGV2ZWwsIDEwKTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICByZXR1cm4gbGV2ZWw7XG4gIH0sXG5cbiAgLy8gQ2FuIGJlIG92ZXJyaWRkZW4gaW4gdGhlIGhvc3QgZW52aXJvbm1lbnRcbiAgbG9nOiBmdW5jdGlvbihsZXZlbCwgLi4ubWVzc2FnZSkge1xuICAgIGxldmVsID0gbG9nZ2VyLmxvb2t1cExldmVsKGxldmVsKTtcblxuICAgIGlmIChcbiAgICAgIHR5cGVvZiBjb25zb2xlICE9PSAndW5kZWZpbmVkJyAmJlxuICAgICAgbG9nZ2VyLmxvb2t1cExldmVsKGxvZ2dlci5sZXZlbCkgPD0gbGV2ZWxcbiAgICApIHtcbiAgICAgIGxldCBtZXRob2QgPSBsb2dnZXIubWV0aG9kTWFwW2xldmVsXTtcbiAgICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBuby1jb25zb2xlXG4gICAgICBpZiAoIWNvbnNvbGVbbWV0aG9kXSkge1xuICAgICAgICBtZXRob2QgPSAnbG9nJztcbiAgICAgIH1cbiAgICAgIGNvbnNvbGVbbWV0aG9kXSguLi5tZXNzYWdlKTsgLy8gZXNsaW50LWRpc2FibGUtbGluZSBuby1jb25zb2xlXG4gICAgfVxuICB9XG59O1xuXG5leHBvcnQgZGVmYXVsdCBsb2dnZXI7XG4iXX0= + + +/***/ }), + +/***/ "./node_modules/handlebars/dist/cjs/handlebars/no-conflict.js": +/*!********************************************************************!*\ + !*** ./node_modules/handlebars/dist/cjs/handlebars/no-conflict.js ***! + \********************************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; +/* WEBPACK VAR INJECTION */(function(global) { + +exports.__esModule = true; + +exports['default'] = function (Handlebars) { + /* istanbul ignore next */ + var root = typeof global !== 'undefined' ? global : window, + $Handlebars = root.Handlebars; + /* istanbul ignore next */ + Handlebars.noConflict = function () { + if (root.Handlebars === Handlebars) { + root.Handlebars = $Handlebars; + } + return Handlebars; + }; +}; + +module.exports = exports['default']; +//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL2xpYi9oYW5kbGViYXJzL25vLWNvbmZsaWN0LmpzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7cUJBQWUsVUFBUyxVQUFVLEVBQUU7O0FBRWxDLE1BQUksSUFBSSxHQUFHLE9BQU8sTUFBTSxLQUFLLFdBQVcsR0FBRyxNQUFNLEdBQUcsTUFBTTtNQUN4RCxXQUFXLEdBQUcsSUFBSSxDQUFDLFVBQVUsQ0FBQzs7QUFFaEMsWUFBVSxDQUFDLFVBQVUsR0FBRyxZQUFXO0FBQ2pDLFFBQUksSUFBSSxDQUFDLFVBQVUsS0FBSyxVQUFVLEVBQUU7QUFDbEMsVUFBSSxDQUFDLFVBQVUsR0FBRyxXQUFXLENBQUM7S0FDL0I7QUFDRCxXQUFPLFVBQVUsQ0FBQztHQUNuQixDQUFDO0NBQ0giLCJmaWxlIjoibm8tY29uZmxpY3QuanMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgZGVmYXVsdCBmdW5jdGlvbihIYW5kbGViYXJzKSB7XG4gIC8qIGlzdGFuYnVsIGlnbm9yZSBuZXh0ICovXG4gIGxldCByb290ID0gdHlwZW9mIGdsb2JhbCAhPT0gJ3VuZGVmaW5lZCcgPyBnbG9iYWwgOiB3aW5kb3csXG4gICAgJEhhbmRsZWJhcnMgPSByb290LkhhbmRsZWJhcnM7XG4gIC8qIGlzdGFuYnVsIGlnbm9yZSBuZXh0ICovXG4gIEhhbmRsZWJhcnMubm9Db25mbGljdCA9IGZ1bmN0aW9uKCkge1xuICAgIGlmIChyb290LkhhbmRsZWJhcnMgPT09IEhhbmRsZWJhcnMpIHtcbiAgICAgIHJvb3QuSGFuZGxlYmFycyA9ICRIYW5kbGViYXJzO1xuICAgIH1cbiAgICByZXR1cm4gSGFuZGxlYmFycztcbiAgfTtcbn1cbiJdfQ== + +/* WEBPACK VAR INJECTION */}.call(this, __webpack_require__(/*! ./../../../../webpack/buildin/global.js */ "./node_modules/webpack/buildin/global.js"))) + +/***/ }), + +/***/ "./node_modules/handlebars/dist/cjs/handlebars/runtime.js": +/*!****************************************************************!*\ + !*** ./node_modules/handlebars/dist/cjs/handlebars/runtime.js ***! + \****************************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + + +exports.__esModule = true; +exports.checkRevision = checkRevision; +exports.template = template; +exports.wrapProgram = wrapProgram; +exports.resolvePartial = resolvePartial; +exports.invokePartial = invokePartial; +exports.noop = noop; +// istanbul ignore next + +function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; } + +// istanbul ignore next + +function _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } else { var newObj = {}; if (obj != null) { for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) newObj[key] = obj[key]; } } newObj['default'] = obj; return newObj; } } + +var _utils = __webpack_require__(/*! ./utils */ "./node_modules/handlebars/dist/cjs/handlebars/utils.js"); + +var Utils = _interopRequireWildcard(_utils); + +var _exception = __webpack_require__(/*! ./exception */ "./node_modules/handlebars/dist/cjs/handlebars/exception.js"); + +var _exception2 = _interopRequireDefault(_exception); + +var _base = __webpack_require__(/*! ./base */ "./node_modules/handlebars/dist/cjs/handlebars/base.js"); + +var _helpers = __webpack_require__(/*! ./helpers */ "./node_modules/handlebars/dist/cjs/handlebars/helpers.js"); + +var _internalWrapHelper = __webpack_require__(/*! ./internal/wrapHelper */ "./node_modules/handlebars/dist/cjs/handlebars/internal/wrapHelper.js"); + +var _internalProtoAccess = __webpack_require__(/*! ./internal/proto-access */ "./node_modules/handlebars/dist/cjs/handlebars/internal/proto-access.js"); + +function checkRevision(compilerInfo) { + var compilerRevision = compilerInfo && compilerInfo[0] || 1, + currentRevision = _base.COMPILER_REVISION; + + if (compilerRevision >= _base.LAST_COMPATIBLE_COMPILER_REVISION && compilerRevision <= _base.COMPILER_REVISION) { + return; + } + + if (compilerRevision < _base.LAST_COMPATIBLE_COMPILER_REVISION) { + var runtimeVersions = _base.REVISION_CHANGES[currentRevision], + compilerVersions = _base.REVISION_CHANGES[compilerRevision]; + throw new _exception2['default']('Template was precompiled with an older version of Handlebars than the current runtime. ' + 'Please update your precompiler to a newer version (' + runtimeVersions + ') or downgrade your runtime to an older version (' + compilerVersions + ').'); + } else { + // Use the embedded version info since the runtime doesn't know about this revision yet + throw new _exception2['default']('Template was precompiled with a newer version of Handlebars than the current runtime. ' + 'Please update your runtime to a newer version (' + compilerInfo[1] + ').'); + } +} + +function template(templateSpec, env) { + /* istanbul ignore next */ + if (!env) { + throw new _exception2['default']('No environment passed to template'); + } + if (!templateSpec || !templateSpec.main) { + throw new _exception2['default']('Unknown template object: ' + typeof templateSpec); + } + + templateSpec.main.decorator = templateSpec.main_d; + + // Note: Using env.VM references rather than local var references throughout this section to allow + // for external users to override these as pseudo-supported APIs. + env.VM.checkRevision(templateSpec.compiler); + + // backwards compatibility for precompiled templates with compiler-version 7 (<4.3.0) + var templateWasPrecompiledWithCompilerV7 = templateSpec.compiler && templateSpec.compiler[0] === 7; + + function invokePartialWrapper(partial, context, options) { + if (options.hash) { + context = Utils.extend({}, context, options.hash); + if (options.ids) { + options.ids[0] = true; + } + } + partial = env.VM.resolvePartial.call(this, partial, context, options); + + var extendedOptions = Utils.extend({}, options, { + hooks: this.hooks, + protoAccessControl: this.protoAccessControl + }); + + var result = env.VM.invokePartial.call(this, partial, context, extendedOptions); + + if (result == null && env.compile) { + options.partials[options.name] = env.compile(partial, templateSpec.compilerOptions, env); + result = options.partials[options.name](context, extendedOptions); + } + if (result != null) { + if (options.indent) { + var lines = result.split('\n'); + for (var i = 0, l = lines.length; i < l; i++) { + if (!lines[i] && i + 1 === l) { + break; + } + + lines[i] = options.indent + lines[i]; + } + result = lines.join('\n'); + } + return result; + } else { + throw new _exception2['default']('The partial ' + options.name + ' could not be compiled when running in runtime-only mode'); + } + } + + // Just add water + var container = { + strict: function strict(obj, name, loc) { + if (!obj || !(name in obj)) { + throw new _exception2['default']('"' + name + '" not defined in ' + obj, { + loc: loc + }); + } + return container.lookupProperty(obj, name); + }, + lookupProperty: function lookupProperty(parent, propertyName) { + var result = parent[propertyName]; + if (result == null) { + return result; + } + if (Object.prototype.hasOwnProperty.call(parent, propertyName)) { + return result; + } + + if (_internalProtoAccess.resultIsAllowed(result, container.protoAccessControl, propertyName)) { + return result; + } + return undefined; + }, + lookup: function lookup(depths, name) { + var len = depths.length; + for (var i = 0; i < len; i++) { + var result = depths[i] && container.lookupProperty(depths[i], name); + if (result != null) { + return depths[i][name]; + } + } + }, + lambda: function lambda(current, context) { + return typeof current === 'function' ? current.call(context) : current; + }, + + escapeExpression: Utils.escapeExpression, + invokePartial: invokePartialWrapper, + + fn: function fn(i) { + var ret = templateSpec[i]; + ret.decorator = templateSpec[i + '_d']; + return ret; + }, + + programs: [], + program: function program(i, data, declaredBlockParams, blockParams, depths) { + var programWrapper = this.programs[i], + fn = this.fn(i); + if (data || depths || blockParams || declaredBlockParams) { + programWrapper = wrapProgram(this, i, fn, data, declaredBlockParams, blockParams, depths); + } else if (!programWrapper) { + programWrapper = this.programs[i] = wrapProgram(this, i, fn); + } + return programWrapper; + }, + + data: function data(value, depth) { + while (value && depth--) { + value = value._parent; + } + return value; + }, + mergeIfNeeded: function mergeIfNeeded(param, common) { + var obj = param || common; + + if (param && common && param !== common) { + obj = Utils.extend({}, common, param); + } + + return obj; + }, + // An empty object to use as replacement for null-contexts + nullContext: Object.seal({}), + + noop: env.VM.noop, + compilerInfo: templateSpec.compiler + }; + + function ret(context) { + var options = arguments.length <= 1 || arguments[1] === undefined ? {} : arguments[1]; + + var data = options.data; + + ret._setup(options); + if (!options.partial && templateSpec.useData) { + data = initData(context, data); + } + var depths = undefined, + blockParams = templateSpec.useBlockParams ? [] : undefined; + if (templateSpec.useDepths) { + if (options.depths) { + depths = context != options.depths[0] ? [context].concat(options.depths) : options.depths; + } else { + depths = [context]; + } + } + + function main(context /*, options*/) { + return '' + templateSpec.main(container, context, container.helpers, container.partials, data, blockParams, depths); + } + + main = executeDecorators(templateSpec.main, main, container, options.depths || [], data, blockParams); + return main(context, options); + } + + ret.isTop = true; + + ret._setup = function (options) { + if (!options.partial) { + var mergedHelpers = Utils.extend({}, env.helpers, options.helpers); + wrapHelpersToPassLookupProperty(mergedHelpers, container); + container.helpers = mergedHelpers; + + if (templateSpec.usePartial) { + // Use mergeIfNeeded here to prevent compiling global partials multiple times + container.partials = container.mergeIfNeeded(options.partials, env.partials); + } + if (templateSpec.usePartial || templateSpec.useDecorators) { + container.decorators = Utils.extend({}, env.decorators, options.decorators); + } + + container.hooks = {}; + container.protoAccessControl = _internalProtoAccess.createProtoAccessControl(options); + + var keepHelperInHelpers = options.allowCallsToHelperMissing || templateWasPrecompiledWithCompilerV7; + _helpers.moveHelperToHooks(container, 'helperMissing', keepHelperInHelpers); + _helpers.moveHelperToHooks(container, 'blockHelperMissing', keepHelperInHelpers); + } else { + container.protoAccessControl = options.protoAccessControl; // internal option + container.helpers = options.helpers; + container.partials = options.partials; + container.decorators = options.decorators; + container.hooks = options.hooks; + } + }; + + ret._child = function (i, data, blockParams, depths) { + if (templateSpec.useBlockParams && !blockParams) { + throw new _exception2['default']('must pass block params'); + } + if (templateSpec.useDepths && !depths) { + throw new _exception2['default']('must pass parent depths'); + } + + return wrapProgram(container, i, templateSpec[i], data, 0, blockParams, depths); + }; + return ret; +} + +function wrapProgram(container, i, fn, data, declaredBlockParams, blockParams, depths) { + function prog(context) { + var options = arguments.length <= 1 || arguments[1] === undefined ? {} : arguments[1]; + + var currentDepths = depths; + if (depths && context != depths[0] && !(context === container.nullContext && depths[0] === null)) { + currentDepths = [context].concat(depths); + } + + return fn(container, context, container.helpers, container.partials, options.data || data, blockParams && [options.blockParams].concat(blockParams), currentDepths); + } + + prog = executeDecorators(fn, prog, container, depths, data, blockParams); + + prog.program = i; + prog.depth = depths ? depths.length : 0; + prog.blockParams = declaredBlockParams || 0; + return prog; +} + +/** + * This is currently part of the official API, therefore implementation details should not be changed. + */ + +function resolvePartial(partial, context, options) { + if (!partial) { + if (options.name === '@partial-block') { + partial = options.data['partial-block']; + } else { + partial = options.partials[options.name]; + } + } else if (!partial.call && !options.name) { + // This is a dynamic partial that returned a string + options.name = partial; + partial = options.partials[partial]; + } + return partial; +} + +function invokePartial(partial, context, options) { + // Use the current closure context to save the partial-block if this partial + var currentPartialBlock = options.data && options.data['partial-block']; + options.partial = true; + if (options.ids) { + options.data.contextPath = options.ids[0] || options.data.contextPath; + } + + var partialBlock = undefined; + if (options.fn && options.fn !== noop) { + (function () { + options.data = _base.createFrame(options.data); + // Wrapper function to get access to currentPartialBlock from the closure + var fn = options.fn; + partialBlock = options.data['partial-block'] = function partialBlockWrapper(context) { + var options = arguments.length <= 1 || arguments[1] === undefined ? {} : arguments[1]; + + // Restore the partial-block from the closure for the execution of the block + // i.e. the part inside the block of the partial call. + options.data = _base.createFrame(options.data); + options.data['partial-block'] = currentPartialBlock; + return fn(context, options); + }; + if (fn.partials) { + options.partials = Utils.extend({}, options.partials, fn.partials); + } + })(); + } + + if (partial === undefined && partialBlock) { + partial = partialBlock; + } + + if (partial === undefined) { + throw new _exception2['default']('The partial ' + options.name + ' could not be found'); + } else if (partial instanceof Function) { + return partial(context, options); + } +} + +function noop() { + return ''; +} + +function initData(context, data) { + if (!data || !('root' in data)) { + data = data ? _base.createFrame(data) : {}; + data.root = context; + } + return data; +} + +function executeDecorators(fn, prog, container, depths, data, blockParams) { + if (fn.decorator) { + var props = {}; + prog = fn.decorator(prog, props, container, depths && depths[0], data, blockParams, depths); + Utils.extend(prog, props); + } + return prog; +} + +function wrapHelpersToPassLookupProperty(mergedHelpers, container) { + Object.keys(mergedHelpers).forEach(function (helperName) { + var helper = mergedHelpers[helperName]; + mergedHelpers[helperName] = passLookupPropertyOption(helper, container); + }); +} + +function passLookupPropertyOption(helper, container) { + var lookupProperty = container.lookupProperty; + return _internalWrapHelper.wrapHelper(helper, function (options) { + return Utils.extend({ lookupProperty: lookupProperty }, options); + }); +} +//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL2xpYi9oYW5kbGViYXJzL3J1bnRpbWUuanMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7cUJBQXVCLFNBQVM7O0lBQXBCLEtBQUs7O3lCQUNLLGFBQWE7Ozs7b0JBTTVCLFFBQVE7O3VCQUNtQixXQUFXOztrQ0FDbEIsdUJBQXVCOzttQ0FJM0MseUJBQXlCOztBQUV6QixTQUFTLGFBQWEsQ0FBQyxZQUFZLEVBQUU7QUFDMUMsTUFBTSxnQkFBZ0IsR0FBRyxBQUFDLFlBQVksSUFBSSxZQUFZLENBQUMsQ0FBQyxDQUFDLElBQUssQ0FBQztNQUM3RCxlQUFlLDBCQUFvQixDQUFDOztBQUV0QyxNQUNFLGdCQUFnQiwyQ0FBcUMsSUFDckQsZ0JBQWdCLDJCQUFxQixFQUNyQztBQUNBLFdBQU87R0FDUjs7QUFFRCxNQUFJLGdCQUFnQiwwQ0FBb0MsRUFBRTtBQUN4RCxRQUFNLGVBQWUsR0FBRyx1QkFBaUIsZUFBZSxDQUFDO1FBQ3ZELGdCQUFnQixHQUFHLHVCQUFpQixnQkFBZ0IsQ0FBQyxDQUFDO0FBQ3hELFVBQU0sMkJBQ0oseUZBQXlGLEdBQ3ZGLHFEQUFxRCxHQUNyRCxlQUFlLEdBQ2YsbURBQW1ELEdBQ25ELGdCQUFnQixHQUNoQixJQUFJLENBQ1AsQ0FBQztHQUNILE1BQU07O0FBRUwsVUFBTSwyQkFDSix3RkFBd0YsR0FDdEYsaURBQWlELEdBQ2pELFlBQVksQ0FBQyxDQUFDLENBQUMsR0FDZixJQUFJLENBQ1AsQ0FBQztHQUNIO0NBQ0Y7O0FBRU0sU0FBUyxRQUFRLENBQUMsWUFBWSxFQUFFLEdBQUcsRUFBRTs7QUFFMUMsTUFBSSxDQUFDLEdBQUcsRUFBRTtBQUNSLFVBQU0sMkJBQWMsbUNBQW1DLENBQUMsQ0FBQztHQUMxRDtBQUNELE1BQUksQ0FBQyxZQUFZLElBQUksQ0FBQyxZQUFZLENBQUMsSUFBSSxFQUFFO0FBQ3ZDLFVBQU0sMkJBQWMsMkJBQTJCLEdBQUcsT0FBTyxZQUFZLENBQUMsQ0FBQztHQUN4RTs7QUFFRCxjQUFZLENBQUMsSUFBSSxDQUFDLFNBQVMsR0FBRyxZQUFZLENBQUMsTUFBTSxDQUFDOzs7O0FBSWxELEtBQUcsQ0FBQyxFQUFFLENBQUMsYUFBYSxDQUFDLFlBQVksQ0FBQyxRQUFRLENBQUMsQ0FBQzs7O0FBRzVDLE1BQU0sb0NBQW9DLEdBQ3hDLFlBQVksQ0FBQyxRQUFRLElBQUksWUFBWSxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUM7O0FBRTFELFdBQVMsb0JBQW9CLENBQUMsT0FBTyxFQUFFLE9BQU8sRUFBRSxPQUFPLEVBQUU7QUFDdkQsUUFBSSxPQUFPLENBQUMsSUFBSSxFQUFFO0FBQ2hCLGFBQU8sR0FBRyxLQUFLLENBQUMsTUFBTSxDQUFDLEVBQUUsRUFBRSxPQUFPLEVBQUUsT0FBTyxDQUFDLElBQUksQ0FBQyxDQUFDO0FBQ2xELFVBQUksT0FBTyxDQUFDLEdBQUcsRUFBRTtBQUNmLGVBQU8sQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEdBQUcsSUFBSSxDQUFDO09BQ3ZCO0tBQ0Y7QUFDRCxXQUFPLEdBQUcsR0FBRyxDQUFDLEVBQUUsQ0FBQyxjQUFjLENBQUMsSUFBSSxDQUFDLElBQUksRUFBRSxPQUFPLEVBQUUsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDOztBQUV0RSxRQUFJLGVBQWUsR0FBRyxLQUFLLENBQUMsTUFBTSxDQUFDLEVBQUUsRUFBRSxPQUFPLEVBQUU7QUFDOUMsV0FBSyxFQUFFLElBQUksQ0FBQyxLQUFLO0FBQ2pCLHdCQUFrQixFQUFFLElBQUksQ0FBQyxrQkFBa0I7S0FDNUMsQ0FBQyxDQUFDOztBQUVILFFBQUksTUFBTSxHQUFHLEdBQUcsQ0FBQyxFQUFFLENBQUMsYUFBYSxDQUFDLElBQUksQ0FDcEMsSUFBSSxFQUNKLE9BQU8sRUFDUCxPQUFPLEVBQ1AsZUFBZSxDQUNoQixDQUFDOztBQUVGLFFBQUksTUFBTSxJQUFJLElBQUksSUFBSSxHQUFHLENBQUMsT0FBTyxFQUFFO0FBQ2pDLGFBQU8sQ0FBQyxRQUFRLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxHQUFHLEdBQUcsQ0FBQyxPQUFPLENBQzFDLE9BQU8sRUFDUCxZQUFZLENBQUMsZUFBZSxFQUM1QixHQUFHLENBQ0osQ0FBQztBQUNGLFlBQU0sR0FBRyxPQUFPLENBQUMsUUFBUSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0FBQyxPQUFPLEVBQUUsZUFBZSxDQUFDLENBQUM7S0FDbkU7QUFDRCxRQUFJLE1BQU0sSUFBSSxJQUFJLEVBQUU7QUFDbEIsVUFBSSxPQUFPLENBQUMsTUFBTSxFQUFFO0FBQ2xCLFlBQUksS0FBSyxHQUFHLE1BQU0sQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLENBQUM7QUFDL0IsYUFBSyxJQUFJLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxHQUFHLEtBQUssQ0FBQyxNQUFNLEVBQUUsQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLEVBQUUsRUFBRTtBQUM1QyxjQUFJLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLEtBQUssQ0FBQyxFQUFFO0FBQzVCLGtCQUFNO1dBQ1A7O0FBRUQsZUFBSyxDQUFDLENBQUMsQ0FBQyxHQUFHLE9BQU8sQ0FBQyxNQUFNLEdBQUcsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDO1NBQ3RDO0FBQ0QsY0FBTSxHQUFHLEtBQUssQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7T0FDM0I7QUFDRCxhQUFPLE1BQU0sQ0FBQztLQUNmLE1BQU07QUFDTCxZQUFNLDJCQUNKLGNBQWMsR0FDWixPQUFPLENBQUMsSUFBSSxHQUNaLDBEQUEwRCxDQUM3RCxDQUFDO0tBQ0g7R0FDRjs7O0FBR0QsTUFBSSxTQUFTLEdBQUc7QUFDZCxVQUFNLEVBQUUsZ0JBQVMsR0FBRyxFQUFFLElBQUksRUFBRSxHQUFHLEVBQUU7QUFDL0IsVUFBSSxDQUFDLEdBQUcsSUFBSSxFQUFFLElBQUksSUFBSSxHQUFHLENBQUEsQUFBQyxFQUFFO0FBQzFCLGNBQU0sMkJBQWMsR0FBRyxHQUFHLElBQUksR0FBRyxtQkFBbUIsR0FBRyxHQUFHLEVBQUU7QUFDMUQsYUFBRyxFQUFFLEdBQUc7U0FDVCxDQUFDLENBQUM7T0FDSjtBQUNELGFBQU8sU0FBUyxDQUFDLGNBQWMsQ0FBQyxHQUFHLEVBQUUsSUFBSSxDQUFDLENBQUM7S0FDNUM7QUFDRCxrQkFBYyxFQUFFLHdCQUFTLE1BQU0sRUFBRSxZQUFZLEVBQUU7QUFDN0MsVUFBSSxNQUFNLEdBQUcsTUFBTSxDQUFDLFlBQVksQ0FBQyxDQUFDO0FBQ2xDLFVBQUksTUFBTSxJQUFJLElBQUksRUFBRTtBQUNsQixlQUFPLE1BQU0sQ0FBQztPQUNmO0FBQ0QsVUFBSSxNQUFNLENBQUMsU0FBUyxDQUFDLGNBQWMsQ0FBQyxJQUFJLENBQUMsTUFBTSxFQUFFLFlBQVksQ0FBQyxFQUFFO0FBQzlELGVBQU8sTUFBTSxDQUFDO09BQ2Y7O0FBRUQsVUFBSSxxQ0FBZ0IsTUFBTSxFQUFFLFNBQVMsQ0FBQyxrQkFBa0IsRUFBRSxZQUFZLENBQUMsRUFBRTtBQUN2RSxlQUFPLE1BQU0sQ0FBQztPQUNmO0FBQ0QsYUFBTyxTQUFTLENBQUM7S0FDbEI7QUFDRCxVQUFNLEVBQUUsZ0JBQVMsTUFBTSxFQUFFLElBQUksRUFBRTtBQUM3QixVQUFNLEdBQUcsR0FBRyxNQUFNLENBQUMsTUFBTSxDQUFDO0FBQzFCLFdBQUssSUFBSSxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsR0FBRyxHQUFHLEVBQUUsQ0FBQyxFQUFFLEVBQUU7QUFDNUIsWUFBSSxNQUFNLEdBQUcsTUFBTSxDQUFDLENBQUMsQ0FBQyxJQUFJLFNBQVMsQ0FBQyxjQUFjLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxFQUFFLElBQUksQ0FBQyxDQUFDO0FBQ3BFLFlBQUksTUFBTSxJQUFJLElBQUksRUFBRTtBQUNsQixpQkFBTyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUM7U0FDeEI7T0FDRjtLQUNGO0FBQ0QsVUFBTSxFQUFFLGdCQUFTLE9BQU8sRUFBRSxPQUFPLEVBQUU7QUFDakMsYUFBTyxPQUFPLE9BQU8sS0FBSyxVQUFVLEdBQUcsT0FBTyxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsR0FBRyxPQUFPLENBQUM7S0FDeEU7O0FBRUQsb0JBQWdCLEVBQUUsS0FBSyxDQUFDLGdCQUFnQjtBQUN4QyxpQkFBYSxFQUFFLG9CQUFvQjs7QUFFbkMsTUFBRSxFQUFFLFlBQVMsQ0FBQyxFQUFFO0FBQ2QsVUFBSSxHQUFHLEdBQUcsWUFBWSxDQUFDLENBQUMsQ0FBQyxDQUFDO0FBQzFCLFNBQUcsQ0FBQyxTQUFTLEdBQUcsWUFBWSxDQUFDLENBQUMsR0FBRyxJQUFJLENBQUMsQ0FBQztBQUN2QyxhQUFPLEdBQUcsQ0FBQztLQUNaOztBQUVELFlBQVEsRUFBRSxFQUFFO0FBQ1osV0FBTyxFQUFFLGlCQUFTLENBQUMsRUFBRSxJQUFJLEVBQUUsbUJBQW1CLEVBQUUsV0FBVyxFQUFFLE1BQU0sRUFBRTtBQUNuRSxVQUFJLGNBQWMsR0FBRyxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQztVQUNuQyxFQUFFLEdBQUcsSUFBSSxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQztBQUNsQixVQUFJLElBQUksSUFBSSxNQUFNLElBQUksV0FBVyxJQUFJLG1CQUFtQixFQUFFO0FBQ3hELHNCQUFjLEdBQUcsV0FBVyxDQUMxQixJQUFJLEVBQ0osQ0FBQyxFQUNELEVBQUUsRUFDRixJQUFJLEVBQ0osbUJBQW1CLEVBQ25CLFdBQVcsRUFDWCxNQUFNLENBQ1AsQ0FBQztPQUNILE1BQU0sSUFBSSxDQUFDLGNBQWMsRUFBRTtBQUMxQixzQkFBYyxHQUFHLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLEdBQUcsV0FBVyxDQUFDLElBQUksRUFBRSxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUM7T0FDOUQ7QUFDRCxhQUFPLGNBQWMsQ0FBQztLQUN2Qjs7QUFFRCxRQUFJLEVBQUUsY0FBUyxLQUFLLEVBQUUsS0FBSyxFQUFFO0FBQzNCLGFBQU8sS0FBSyxJQUFJLEtBQUssRUFBRSxFQUFFO0FBQ3ZCLGFBQUssR0FBRyxLQUFLLENBQUMsT0FBTyxDQUFDO09BQ3ZCO0FBQ0QsYUFBTyxLQUFLLENBQUM7S0FDZDtBQUNELGlCQUFhLEVBQUUsdUJBQVMsS0FBSyxFQUFFLE1BQU0sRUFBRTtBQUNyQyxVQUFJLEdBQUcsR0FBRyxLQUFLLElBQUksTUFBTSxDQUFDOztBQUUxQixVQUFJLEtBQUssSUFBSSxNQUFNLElBQUksS0FBSyxLQUFLLE1BQU0sRUFBRTtBQUN2QyxXQUFHLEdBQUcsS0FBSyxDQUFDLE1BQU0sQ0FBQyxFQUFFLEVBQUUsTUFBTSxFQUFFLEtBQUssQ0FBQyxDQUFDO09BQ3ZDOztBQUVELGFBQU8sR0FBRyxDQUFDO0tBQ1o7O0FBRUQsZUFBVyxFQUFFLE1BQU0sQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDOztBQUU1QixRQUFJLEVBQUUsR0FBRyxDQUFDLEVBQUUsQ0FBQyxJQUFJO0FBQ2pCLGdCQUFZLEVBQUUsWUFBWSxDQUFDLFFBQVE7R0FDcEMsQ0FBQzs7QUFFRixXQUFTLEdBQUcsQ0FBQyxPQUFPLEVBQWdCO1FBQWQsT0FBTyx5REFBRyxFQUFFOztBQUNoQyxRQUFJLElBQUksR0FBRyxPQUFPLENBQUMsSUFBSSxDQUFDOztBQUV4QixPQUFHLENBQUMsTUFBTSxDQUFDLE9BQU8sQ0FBQyxDQUFDO0FBQ3BCLFFBQUksQ0FBQyxPQUFPLENBQUMsT0FBTyxJQUFJLFlBQVksQ0FBQyxPQUFPLEVBQUU7QUFDNUMsVUFBSSxHQUFHLFFBQVEsQ0FBQyxPQUFPLEVBQUUsSUFBSSxDQUFDLENBQUM7S0FDaEM7QUFDRCxRQUFJLE1BQU0sWUFBQTtRQUNSLFdBQVcsR0FBRyxZQUFZLENBQUMsY0FBYyxHQUFHLEVBQUUsR0FBRyxTQUFTLENBQUM7QUFDN0QsUUFBSSxZQUFZLENBQUMsU0FBUyxFQUFFO0FBQzFCLFVBQUksT0FBTyxDQUFDLE1BQU0sRUFBRTtBQUNsQixjQUFNLEdBQ0osT0FBTyxJQUFJLE9BQU8sQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLEdBQ3hCLENBQUMsT0FBTyxDQUFDLENBQUMsTUFBTSxDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQUMsR0FDaEMsT0FBTyxDQUFDLE1BQU0sQ0FBQztPQUN0QixNQUFNO0FBQ0wsY0FBTSxHQUFHLENBQUMsT0FBTyxDQUFDLENBQUM7T0FDcEI7S0FDRjs7QUFFRCxhQUFTLElBQUksQ0FBQyxPQUFPLGdCQUFnQjtBQUNuQyxhQUNFLEVBQUUsR0FDRixZQUFZLENBQUMsSUFBSSxDQUNmLFNBQVMsRUFDVCxPQUFPLEVBQ1AsU0FBUyxDQUFDLE9BQU8sRUFDakIsU0FBUyxDQUFDLFFBQVEsRUFDbEIsSUFBSSxFQUNKLFdBQVcsRUFDWCxNQUFNLENBQ1AsQ0FDRDtLQUNIOztBQUVELFFBQUksR0FBRyxpQkFBaUIsQ0FDdEIsWUFBWSxDQUFDLElBQUksRUFDakIsSUFBSSxFQUNKLFNBQVMsRUFDVCxPQUFPLENBQUMsTUFBTSxJQUFJLEVBQUUsRUFDcEIsSUFBSSxFQUNKLFdBQVcsQ0FDWixDQUFDO0FBQ0YsV0FBTyxJQUFJLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDO0dBQy9COztBQUVELEtBQUcsQ0FBQyxLQUFLLEdBQUcsSUFBSSxDQUFDOztBQUVqQixLQUFHLENBQUMsTUFBTSxHQUFHLFVBQVMsT0FBTyxFQUFFO0FBQzdCLFFBQUksQ0FBQyxPQUFPLENBQUMsT0FBTyxFQUFFO0FBQ3BCLFVBQUksYUFBYSxHQUFHLEtBQUssQ0FBQyxNQUFNLENBQUMsRUFBRSxFQUFFLEdBQUcsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLE9BQU8sQ0FBQyxDQUFDO0FBQ25FLHFDQUErQixDQUFDLGFBQWEsRUFBRSxTQUFTLENBQUMsQ0FBQztBQUMxRCxlQUFTLENBQUMsT0FBTyxHQUFHLGFBQWEsQ0FBQzs7QUFFbEMsVUFBSSxZQUFZLENBQUMsVUFBVSxFQUFFOztBQUUzQixpQkFBUyxDQUFDLFFBQVEsR0FBRyxTQUFTLENBQUMsYUFBYSxDQUMxQyxPQUFPLENBQUMsUUFBUSxFQUNoQixHQUFHLENBQUMsUUFBUSxDQUNiLENBQUM7T0FDSDtBQUNELFVBQUksWUFBWSxDQUFDLFVBQVUsSUFBSSxZQUFZLENBQUMsYUFBYSxFQUFFO0FBQ3pELGlCQUFTLENBQUMsVUFBVSxHQUFHLEtBQUssQ0FBQyxNQUFNLENBQ2pDLEVBQUUsRUFDRixHQUFHLENBQUMsVUFBVSxFQUNkLE9BQU8sQ0FBQyxVQUFVLENBQ25CLENBQUM7T0FDSDs7QUFFRCxlQUFTLENBQUMsS0FBSyxHQUFHLEVBQUUsQ0FBQztBQUNyQixlQUFTLENBQUMsa0JBQWtCLEdBQUcsOENBQXlCLE9BQU8sQ0FBQyxDQUFDOztBQUVqRSxVQUFJLG1CQUFtQixHQUNyQixPQUFPLENBQUMseUJBQXlCLElBQ2pDLG9DQUFvQyxDQUFDO0FBQ3ZDLGlDQUFrQixTQUFTLEVBQUUsZUFBZSxFQUFFLG1CQUFtQixDQUFDLENBQUM7QUFDbkUsaUNBQWtCLFNBQVMsRUFBRSxvQkFBb0IsRUFBRSxtQkFBbUIsQ0FBQyxDQUFDO0tBQ3pFLE1BQU07QUFDTCxlQUFTLENBQUMsa0JBQWtCLEdBQUcsT0FBTyxDQUFDLGtCQUFrQixDQUFDO0FBQzFELGVBQVMsQ0FBQyxPQUFPLEdBQUcsT0FBTyxDQUFDLE9BQU8sQ0FBQztBQUNwQyxlQUFTLENBQUMsUUFBUSxHQUFHLE9BQU8sQ0FBQyxRQUFRLENBQUM7QUFDdEMsZUFBUyxDQUFDLFVBQVUsR0FBRyxPQUFPLENBQUMsVUFBVSxDQUFDO0FBQzFDLGVBQVMsQ0FBQyxLQUFLLEdBQUcsT0FBTyxDQUFDLEtBQUssQ0FBQztLQUNqQztHQUNGLENBQUM7O0FBRUYsS0FBRyxDQUFDLE1BQU0sR0FBRyxVQUFTLENBQUMsRUFBRSxJQUFJLEVBQUUsV0FBVyxFQUFFLE1BQU0sRUFBRTtBQUNsRCxRQUFJLFlBQVksQ0FBQyxjQUFjLElBQUksQ0FBQyxXQUFXLEVBQUU7QUFDL0MsWUFBTSwyQkFBYyx3QkFBd0IsQ0FBQyxDQUFDO0tBQy9DO0FBQ0QsUUFBSSxZQUFZLENBQUMsU0FBUyxJQUFJLENBQUMsTUFBTSxFQUFFO0FBQ3JDLFlBQU0sMkJBQWMseUJBQXlCLENBQUMsQ0FBQztLQUNoRDs7QUFFRCxXQUFPLFdBQVcsQ0FDaEIsU0FBUyxFQUNULENBQUMsRUFDRCxZQUFZLENBQUMsQ0FBQyxDQUFDLEVBQ2YsSUFBSSxFQUNKLENBQUMsRUFDRCxXQUFXLEVBQ1gsTUFBTSxDQUNQLENBQUM7R0FDSCxDQUFDO0FBQ0YsU0FBTyxHQUFHLENBQUM7Q0FDWjs7QUFFTSxTQUFTLFdBQVcsQ0FDekIsU0FBUyxFQUNULENBQUMsRUFDRCxFQUFFLEVBQ0YsSUFBSSxFQUNKLG1CQUFtQixFQUNuQixXQUFXLEVBQ1gsTUFBTSxFQUNOO0FBQ0EsV0FBUyxJQUFJLENBQUMsT0FBTyxFQUFnQjtRQUFkLE9BQU8seURBQUcsRUFBRTs7QUFDakMsUUFBSSxhQUFhLEdBQUcsTUFBTSxDQUFDO0FBQzNCLFFBQ0UsTUFBTSxJQUNOLE9BQU8sSUFBSSxNQUFNLENBQUMsQ0FBQyxDQUFDLElBQ3BCLEVBQUUsT0FBTyxLQUFLLFNBQVMsQ0FBQyxXQUFXLElBQUksTUFBTSxDQUFDLENBQUMsQ0FBQyxLQUFLLElBQUksQ0FBQSxBQUFDLEVBQzFEO0FBQ0EsbUJBQWEsR0FBRyxDQUFDLE9BQU8sQ0FBQyxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUMsQ0FBQztLQUMxQzs7QUFFRCxXQUFPLEVBQUUsQ0FDUCxTQUFTLEVBQ1QsT0FBTyxFQUNQLFNBQVMsQ0FBQyxPQUFPLEVBQ2pCLFNBQVMsQ0FBQyxRQUFRLEVBQ2xCLE9BQU8sQ0FBQyxJQUFJLElBQUksSUFBSSxFQUNwQixXQUFXLElBQUksQ0FBQyxPQUFPLENBQUMsV0FBVyxDQUFDLENBQUMsTUFBTSxDQUFDLFdBQVcsQ0FBQyxFQUN4RCxhQUFhLENBQ2QsQ0FBQztHQUNIOztBQUVELE1BQUksR0FBRyxpQkFBaUIsQ0FBQyxFQUFFLEVBQUUsSUFBSSxFQUFFLFNBQVMsRUFBRSxNQUFNLEVBQUUsSUFBSSxFQUFFLFdBQVcsQ0FBQyxDQUFDOztBQUV6RSxNQUFJLENBQUMsT0FBTyxHQUFHLENBQUMsQ0FBQztBQUNqQixNQUFJLENBQUMsS0FBSyxHQUFHLE1BQU0sR0FBRyxNQUFNLENBQUMsTUFBTSxHQUFHLENBQUMsQ0FBQztBQUN4QyxNQUFJLENBQUMsV0FBVyxHQUFHLG1CQUFtQixJQUFJLENBQUMsQ0FBQztBQUM1QyxTQUFPLElBQUksQ0FBQztDQUNiOzs7Ozs7QUFLTSxTQUFTLGNBQWMsQ0FBQyxPQUFPLEVBQUUsT0FBTyxFQUFFLE9BQU8sRUFBRTtBQUN4RCxNQUFJLENBQUMsT0FBTyxFQUFFO0FBQ1osUUFBSSxPQUFPLENBQUMsSUFBSSxLQUFLLGdCQUFnQixFQUFFO0FBQ3JDLGFBQU8sR0FBRyxPQUFPLENBQUMsSUFBSSxDQUFDLGVBQWUsQ0FBQyxDQUFDO0tBQ3pDLE1BQU07QUFDTCxhQUFPLEdBQUcsT0FBTyxDQUFDLFFBQVEsQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLENBQUM7S0FDMUM7R0FDRixNQUFNLElBQUksQ0FBQyxPQUFPLENBQUMsSUFBSSxJQUFJLENBQUMsT0FBTyxDQUFDLElBQUksRUFBRTs7QUFFekMsV0FBTyxDQUFDLElBQUksR0FBRyxPQUFPLENBQUM7QUFDdkIsV0FBTyxHQUFHLE9BQU8sQ0FBQyxRQUFRLENBQUMsT0FBTyxDQUFDLENBQUM7R0FDckM7QUFDRCxTQUFPLE9BQU8sQ0FBQztDQUNoQjs7QUFFTSxTQUFTLGFBQWEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxFQUFFLE9BQU8sRUFBRTs7QUFFdkQsTUFBTSxtQkFBbUIsR0FBRyxPQUFPLENBQUMsSUFBSSxJQUFJLE9BQU8sQ0FBQyxJQUFJLENBQUMsZUFBZSxDQUFDLENBQUM7QUFDMUUsU0FBTyxDQUFDLE9BQU8sR0FBRyxJQUFJLENBQUM7QUFDdkIsTUFBSSxPQUFPLENBQUMsR0FBRyxFQUFFO0FBQ2YsV0FBTyxDQUFDLElBQUksQ0FBQyxXQUFXLEdBQUcsT0FBTyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsSUFBSSxPQUFPLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQztHQUN2RTs7QUFFRCxNQUFJLFlBQVksWUFBQSxDQUFDO0FBQ2pCLE1BQUksT0FBTyxDQUFDLEVBQUUsSUFBSSxPQUFPLENBQUMsRUFBRSxLQUFLLElBQUksRUFBRTs7QUFDckMsYUFBTyxDQUFDLElBQUksR0FBRyxrQkFBWSxPQUFPLENBQUMsSUFBSSxDQUFDLENBQUM7O0FBRXpDLFVBQUksRUFBRSxHQUFHLE9BQU8sQ0FBQyxFQUFFLENBQUM7QUFDcEIsa0JBQVksR0FBRyxPQUFPLENBQUMsSUFBSSxDQUFDLGVBQWUsQ0FBQyxHQUFHLFNBQVMsbUJBQW1CLENBQ3pFLE9BQU8sRUFFUDtZQURBLE9BQU8seURBQUcsRUFBRTs7OztBQUlaLGVBQU8sQ0FBQyxJQUFJLEdBQUcsa0JBQVksT0FBTyxDQUFDLElBQUksQ0FBQyxDQUFDO0FBQ3pDLGVBQU8sQ0FBQyxJQUFJLENBQUMsZUFBZSxDQUFDLEdBQUcsbUJBQW1CLENBQUM7QUFDcEQsZUFBTyxFQUFFLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDO09BQzdCLENBQUM7QUFDRixVQUFJLEVBQUUsQ0FBQyxRQUFRLEVBQUU7QUFDZixlQUFPLENBQUMsUUFBUSxHQUFHLEtBQUssQ0FBQyxNQUFNLENBQUMsRUFBRSxFQUFFLE9BQU8sQ0FBQyxRQUFRLEVBQUUsRUFBRSxDQUFDLFFBQVEsQ0FBQyxDQUFDO09BQ3BFOztHQUNGOztBQUVELE1BQUksT0FBTyxLQUFLLFNBQVMsSUFBSSxZQUFZLEVBQUU7QUFDekMsV0FBTyxHQUFHLFlBQVksQ0FBQztHQUN4Qjs7QUFFRCxNQUFJLE9BQU8sS0FBSyxTQUFTLEVBQUU7QUFDekIsVUFBTSwyQkFBYyxjQUFjLEdBQUcsT0FBTyxDQUFDLElBQUksR0FBRyxxQkFBcUIsQ0FBQyxDQUFDO0dBQzVFLE1BQU0sSUFBSSxPQUFPLFlBQVksUUFBUSxFQUFFO0FBQ3RDLFdBQU8sT0FBTyxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQztHQUNsQztDQUNGOztBQUVNLFNBQVMsSUFBSSxHQUFHO0FBQ3JCLFNBQU8sRUFBRSxDQUFDO0NBQ1g7O0FBRUQsU0FBUyxRQUFRLENBQUMsT0FBTyxFQUFFLElBQUksRUFBRTtBQUMvQixNQUFJLENBQUMsSUFBSSxJQUFJLEVBQUUsTUFBTSxJQUFJLElBQUksQ0FBQSxBQUFDLEVBQUU7QUFDOUIsUUFBSSxHQUFHLElBQUksR0FBRyxrQkFBWSxJQUFJLENBQUMsR0FBRyxFQUFFLENBQUM7QUFDckMsUUFBSSxDQUFDLElBQUksR0FBRyxPQUFPLENBQUM7R0FDckI7QUFDRCxTQUFPLElBQUksQ0FBQztDQUNiOztBQUVELFNBQVMsaUJBQWlCLENBQUMsRUFBRSxFQUFFLElBQUksRUFBRSxTQUFTLEVBQUUsTUFBTSxFQUFFLElBQUksRUFBRSxXQUFXLEVBQUU7QUFDekUsTUFBSSxFQUFFLENBQUMsU0FBUyxFQUFFO0FBQ2hCLFFBQUksS0FBSyxHQUFHLEVBQUUsQ0FBQztBQUNmLFFBQUksR0FBRyxFQUFFLENBQUMsU0FBUyxDQUNqQixJQUFJLEVBQ0osS0FBSyxFQUNMLFNBQVMsRUFDVCxNQUFNLElBQUksTUFBTSxDQUFDLENBQUMsQ0FBQyxFQUNuQixJQUFJLEVBQ0osV0FBVyxFQUNYLE1BQU0sQ0FDUCxDQUFDO0FBQ0YsU0FBSyxDQUFDLE1BQU0sQ0FBQyxJQUFJLEVBQUUsS0FBSyxDQUFDLENBQUM7R0FDM0I7QUFDRCxTQUFPLElBQUksQ0FBQztDQUNiOztBQUVELFNBQVMsK0JBQStCLENBQUMsYUFBYSxFQUFFLFNBQVMsRUFBRTtBQUNqRSxRQUFNLENBQUMsSUFBSSxDQUFDLGFBQWEsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxVQUFBLFVBQVUsRUFBSTtBQUMvQyxRQUFJLE1BQU0sR0FBRyxhQUFhLENBQUMsVUFBVSxDQUFDLENBQUM7QUFDdkMsaUJBQWEsQ0FBQyxVQUFVLENBQUMsR0FBRyx3QkFBd0IsQ0FBQyxNQUFNLEVBQUUsU0FBUyxDQUFDLENBQUM7R0FDekUsQ0FBQyxDQUFDO0NBQ0o7O0FBRUQsU0FBUyx3QkFBd0IsQ0FBQyxNQUFNLEVBQUUsU0FBUyxFQUFFO0FBQ25ELE1BQU0sY0FBYyxHQUFHLFNBQVMsQ0FBQyxjQUFjLENBQUM7QUFDaEQsU0FBTywrQkFBVyxNQUFNLEVBQUUsVUFBQSxPQUFPLEVBQUk7QUFDbkMsV0FBTyxLQUFLLENBQUMsTUFBTSxDQUFDLEVBQUUsY0FBYyxFQUFkLGNBQWMsRUFBRSxFQUFFLE9BQU8sQ0FBQyxDQUFDO0dBQ2xELENBQUMsQ0FBQztDQUNKIiwiZmlsZSI6InJ1bnRpbWUuanMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgKiBhcyBVdGlscyBmcm9tICcuL3V0aWxzJztcbmltcG9ydCBFeGNlcHRpb24gZnJvbSAnLi9leGNlcHRpb24nO1xuaW1wb3J0IHtcbiAgQ09NUElMRVJfUkVWSVNJT04sXG4gIGNyZWF0ZUZyYW1lLFxuICBMQVNUX0NPTVBBVElCTEVfQ09NUElMRVJfUkVWSVNJT04sXG4gIFJFVklTSU9OX0NIQU5HRVNcbn0gZnJvbSAnLi9iYXNlJztcbmltcG9ydCB7IG1vdmVIZWxwZXJUb0hvb2tzIH0gZnJvbSAnLi9oZWxwZXJzJztcbmltcG9ydCB7IHdyYXBIZWxwZXIgfSBmcm9tICcuL2ludGVybmFsL3dyYXBIZWxwZXInO1xuaW1wb3J0IHtcbiAgY3JlYXRlUHJvdG9BY2Nlc3NDb250cm9sLFxuICByZXN1bHRJc0FsbG93ZWRcbn0gZnJvbSAnLi9pbnRlcm5hbC9wcm90by1hY2Nlc3MnO1xuXG5leHBvcnQgZnVuY3Rpb24gY2hlY2tSZXZpc2lvbihjb21waWxlckluZm8pIHtcbiAgY29uc3QgY29tcGlsZXJSZXZpc2lvbiA9IChjb21waWxlckluZm8gJiYgY29tcGlsZXJJbmZvWzBdKSB8fCAxLFxuICAgIGN1cnJlbnRSZXZpc2lvbiA9IENPTVBJTEVSX1JFVklTSU9OO1xuXG4gIGlmIChcbiAgICBjb21waWxlclJldmlzaW9uID49IExBU1RfQ09NUEFUSUJMRV9DT01QSUxFUl9SRVZJU0lPTiAmJlxuICAgIGNvbXBpbGVyUmV2aXNpb24gPD0gQ09NUElMRVJfUkVWSVNJT05cbiAgKSB7XG4gICAgcmV0dXJuO1xuICB9XG5cbiAgaWYgKGNvbXBpbGVyUmV2aXNpb24gPCBMQVNUX0NPTVBBVElCTEVfQ09NUElMRVJfUkVWSVNJT04pIHtcbiAgICBjb25zdCBydW50aW1lVmVyc2lvbnMgPSBSRVZJU0lPTl9DSEFOR0VTW2N1cnJlbnRSZXZpc2lvbl0sXG4gICAgICBjb21waWxlclZlcnNpb25zID0gUkVWSVNJT05fQ0hBTkdFU1tjb21waWxlclJldmlzaW9uXTtcbiAgICB0aHJvdyBuZXcgRXhjZXB0aW9uKFxuICAgICAgJ1RlbXBsYXRlIHdhcyBwcmVjb21waWxlZCB3aXRoIGFuIG9sZGVyIHZlcnNpb24gb2YgSGFuZGxlYmFycyB0aGFuIHRoZSBjdXJyZW50IHJ1bnRpbWUuICcgK1xuICAgICAgICAnUGxlYXNlIHVwZGF0ZSB5b3VyIHByZWNvbXBpbGVyIHRvIGEgbmV3ZXIgdmVyc2lvbiAoJyArXG4gICAgICAgIHJ1bnRpbWVWZXJzaW9ucyArXG4gICAgICAgICcpIG9yIGRvd25ncmFkZSB5b3VyIHJ1bnRpbWUgdG8gYW4gb2xkZXIgdmVyc2lvbiAoJyArXG4gICAgICAgIGNvbXBpbGVyVmVyc2lvbnMgK1xuICAgICAgICAnKS4nXG4gICAgKTtcbiAgfSBlbHNlIHtcbiAgICAvLyBVc2UgdGhlIGVtYmVkZGVkIHZlcnNpb24gaW5mbyBzaW5jZSB0aGUgcnVudGltZSBkb2Vzbid0IGtub3cgYWJvdXQgdGhpcyByZXZpc2lvbiB5ZXRcbiAgICB0aHJvdyBuZXcgRXhjZXB0aW9uKFxuICAgICAgJ1RlbXBsYXRlIHdhcyBwcmVjb21waWxlZCB3aXRoIGEgbmV3ZXIgdmVyc2lvbiBvZiBIYW5kbGViYXJzIHRoYW4gdGhlIGN1cnJlbnQgcnVudGltZS4gJyArXG4gICAgICAgICdQbGVhc2UgdXBkYXRlIHlvdXIgcnVudGltZSB0byBhIG5ld2VyIHZlcnNpb24gKCcgK1xuICAgICAgICBjb21waWxlckluZm9bMV0gK1xuICAgICAgICAnKS4nXG4gICAgKTtcbiAgfVxufVxuXG5leHBvcnQgZnVuY3Rpb24gdGVtcGxhdGUodGVtcGxhdGVTcGVjLCBlbnYpIHtcbiAgLyogaXN0YW5idWwgaWdub3JlIG5leHQgKi9cbiAgaWYgKCFlbnYpIHtcbiAgICB0aHJvdyBuZXcgRXhjZXB0aW9uKCdObyBlbnZpcm9ubWVudCBwYXNzZWQgdG8gdGVtcGxhdGUnKTtcbiAgfVxuICBpZiAoIXRlbXBsYXRlU3BlYyB8fCAhdGVtcGxhdGVTcGVjLm1haW4pIHtcbiAgICB0aHJvdyBuZXcgRXhjZXB0aW9uKCdVbmtub3duIHRlbXBsYXRlIG9iamVjdDogJyArIHR5cGVvZiB0ZW1wbGF0ZVNwZWMpO1xuICB9XG5cbiAgdGVtcGxhdGVTcGVjLm1haW4uZGVjb3JhdG9yID0gdGVtcGxhdGVTcGVjLm1haW5fZDtcblxuICAvLyBOb3RlOiBVc2luZyBlbnYuVk0gcmVmZXJlbmNlcyByYXRoZXIgdGhhbiBsb2NhbCB2YXIgcmVmZXJlbmNlcyB0aHJvdWdob3V0IHRoaXMgc2VjdGlvbiB0byBhbGxvd1xuICAvLyBmb3IgZXh0ZXJuYWwgdXNlcnMgdG8gb3ZlcnJpZGUgdGhlc2UgYXMgcHNldWRvLXN1cHBvcnRlZCBBUElzLlxuICBlbnYuVk0uY2hlY2tSZXZpc2lvbih0ZW1wbGF0ZVNwZWMuY29tcGlsZXIpO1xuXG4gIC8vIGJhY2t3YXJkcyBjb21wYXRpYmlsaXR5IGZvciBwcmVjb21waWxlZCB0ZW1wbGF0ZXMgd2l0aCBjb21waWxlci12ZXJzaW9uIDcgKDw0LjMuMClcbiAgY29uc3QgdGVtcGxhdGVXYXNQcmVjb21waWxlZFdpdGhDb21waWxlclY3ID1cbiAgICB0ZW1wbGF0ZVNwZWMuY29tcGlsZXIgJiYgdGVtcGxhdGVTcGVjLmNvbXBpbGVyWzBdID09PSA3O1xuXG4gIGZ1bmN0aW9uIGludm9rZVBhcnRpYWxXcmFwcGVyKHBhcnRpYWwsIGNvbnRleHQsIG9wdGlvbnMpIHtcbiAgICBpZiAob3B0aW9ucy5oYXNoKSB7XG4gICAgICBjb250ZXh0ID0gVXRpbHMuZXh0ZW5kKHt9LCBjb250ZXh0LCBvcHRpb25zLmhhc2gpO1xuICAgICAgaWYgKG9wdGlvbnMuaWRzKSB7XG4gICAgICAgIG9wdGlvbnMuaWRzWzBdID0gdHJ1ZTtcbiAgICAgIH1cbiAgICB9XG4gICAgcGFydGlhbCA9IGVudi5WTS5yZXNvbHZlUGFydGlhbC5jYWxsKHRoaXMsIHBhcnRpYWwsIGNvbnRleHQsIG9wdGlvbnMpO1xuXG4gICAgbGV0IGV4dGVuZGVkT3B0aW9ucyA9IFV0aWxzLmV4dGVuZCh7fSwgb3B0aW9ucywge1xuICAgICAgaG9va3M6IHRoaXMuaG9va3MsXG4gICAgICBwcm90b0FjY2Vzc0NvbnRyb2w6IHRoaXMucHJvdG9BY2Nlc3NDb250cm9sXG4gICAgfSk7XG5cbiAgICBsZXQgcmVzdWx0ID0gZW52LlZNLmludm9rZVBhcnRpYWwuY2FsbChcbiAgICAgIHRoaXMsXG4gICAgICBwYXJ0aWFsLFxuICAgICAgY29udGV4dCxcbiAgICAgIGV4dGVuZGVkT3B0aW9uc1xuICAgICk7XG5cbiAgICBpZiAocmVzdWx0ID09IG51bGwgJiYgZW52LmNvbXBpbGUpIHtcbiAgICAgIG9wdGlvbnMucGFydGlhbHNbb3B0aW9ucy5uYW1lXSA9IGVudi5jb21waWxlKFxuICAgICAgICBwYXJ0aWFsLFxuICAgICAgICB0ZW1wbGF0ZVNwZWMuY29tcGlsZXJPcHRpb25zLFxuICAgICAgICBlbnZcbiAgICAgICk7XG4gICAgICByZXN1bHQgPSBvcHRpb25zLnBhcnRpYWxzW29wdGlvbnMubmFtZV0oY29udGV4dCwgZXh0ZW5kZWRPcHRpb25zKTtcbiAgICB9XG4gICAgaWYgKHJlc3VsdCAhPSBudWxsKSB7XG4gICAgICBpZiAob3B0aW9ucy5pbmRlbnQpIHtcbiAgICAgICAgbGV0IGxpbmVzID0gcmVzdWx0LnNwbGl0KCdcXG4nKTtcbiAgICAgICAgZm9yIChsZXQgaSA9IDAsIGwgPSBsaW5lcy5sZW5ndGg7IGkgPCBsOyBpKyspIHtcbiAgICAgICAgICBpZiAoIWxpbmVzW2ldICYmIGkgKyAxID09PSBsKSB7XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgICB9XG5cbiAgICAgICAgICBsaW5lc1tpXSA9IG9wdGlvbnMuaW5kZW50ICsgbGluZXNbaV07XG4gICAgICAgIH1cbiAgICAgICAgcmVzdWx0ID0gbGluZXMuam9pbignXFxuJyk7XG4gICAgICB9XG4gICAgICByZXR1cm4gcmVzdWx0O1xuICAgIH0gZWxzZSB7XG4gICAgICB0aHJvdyBuZXcgRXhjZXB0aW9uKFxuICAgICAgICAnVGhlIHBhcnRpYWwgJyArXG4gICAgICAgICAgb3B0aW9ucy5uYW1lICtcbiAgICAgICAgICAnIGNvdWxkIG5vdCBiZSBjb21waWxlZCB3aGVuIHJ1bm5pbmcgaW4gcnVudGltZS1vbmx5IG1vZGUnXG4gICAgICApO1xuICAgIH1cbiAgfVxuXG4gIC8vIEp1c3QgYWRkIHdhdGVyXG4gIGxldCBjb250YWluZXIgPSB7XG4gICAgc3RyaWN0OiBmdW5jdGlvbihvYmosIG5hbWUsIGxvYykge1xuICAgICAgaWYgKCFvYmogfHwgIShuYW1lIGluIG9iaikpIHtcbiAgICAgICAgdGhyb3cgbmV3IEV4Y2VwdGlvbignXCInICsgbmFtZSArICdcIiBub3QgZGVmaW5lZCBpbiAnICsgb2JqLCB7XG4gICAgICAgICAgbG9jOiBsb2NcbiAgICAgICAgfSk7XG4gICAgICB9XG4gICAgICByZXR1cm4gY29udGFpbmVyLmxvb2t1cFByb3BlcnR5KG9iaiwgbmFtZSk7XG4gICAgfSxcbiAgICBsb29rdXBQcm9wZXJ0eTogZnVuY3Rpb24ocGFyZW50LCBwcm9wZXJ0eU5hbWUpIHtcbiAgICAgIGxldCByZXN1bHQgPSBwYXJlbnRbcHJvcGVydHlOYW1lXTtcbiAgICAgIGlmIChyZXN1bHQgPT0gbnVsbCkge1xuICAgICAgICByZXR1cm4gcmVzdWx0O1xuICAgICAgfVxuICAgICAgaWYgKE9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChwYXJlbnQsIHByb3BlcnR5TmFtZSkpIHtcbiAgICAgICAgcmV0dXJuIHJlc3VsdDtcbiAgICAgIH1cblxuICAgICAgaWYgKHJlc3VsdElzQWxsb3dlZChyZXN1bHQsIGNvbnRhaW5lci5wcm90b0FjY2Vzc0NvbnRyb2wsIHByb3BlcnR5TmFtZSkpIHtcbiAgICAgICAgcmV0dXJuIHJlc3VsdDtcbiAgICAgIH1cbiAgICAgIHJldHVybiB1bmRlZmluZWQ7XG4gICAgfSxcbiAgICBsb29rdXA6IGZ1bmN0aW9uKGRlcHRocywgbmFtZSkge1xuICAgICAgY29uc3QgbGVuID0gZGVwdGhzLmxlbmd0aDtcbiAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgbGVuOyBpKyspIHtcbiAgICAgICAgbGV0IHJlc3VsdCA9IGRlcHRoc1tpXSAmJiBjb250YWluZXIubG9va3VwUHJvcGVydHkoZGVwdGhzW2ldLCBuYW1lKTtcbiAgICAgICAgaWYgKHJlc3VsdCAhPSBudWxsKSB7XG4gICAgICAgICAgcmV0dXJuIGRlcHRoc1tpXVtuYW1lXTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgbGFtYmRhOiBmdW5jdGlvbihjdXJyZW50LCBjb250ZXh0KSB7XG4gICAgICByZXR1cm4gdHlwZW9mIGN1cnJlbnQgPT09ICdmdW5jdGlvbicgPyBjdXJyZW50LmNhbGwoY29udGV4dCkgOiBjdXJyZW50O1xuICAgIH0sXG5cbiAgICBlc2NhcGVFeHByZXNzaW9uOiBVdGlscy5lc2NhcGVFeHByZXNzaW9uLFxuICAgIGludm9rZVBhcnRpYWw6IGludm9rZVBhcnRpYWxXcmFwcGVyLFxuXG4gICAgZm46IGZ1bmN0aW9uKGkpIHtcbiAgICAgIGxldCByZXQgPSB0ZW1wbGF0ZVNwZWNbaV07XG4gICAgICByZXQuZGVjb3JhdG9yID0gdGVtcGxhdGVTcGVjW2kgKyAnX2QnXTtcbiAgICAgIHJldHVybiByZXQ7XG4gICAgfSxcblxuICAgIHByb2dyYW1zOiBbXSxcbiAgICBwcm9ncmFtOiBmdW5jdGlvbihpLCBkYXRhLCBkZWNsYXJlZEJsb2NrUGFyYW1zLCBibG9ja1BhcmFtcywgZGVwdGhzKSB7XG4gICAgICBsZXQgcHJvZ3JhbVdyYXBwZXIgPSB0aGlzLnByb2dyYW1zW2ldLFxuICAgICAgICBmbiA9IHRoaXMuZm4oaSk7XG4gICAgICBpZiAoZGF0YSB8fCBkZXB0aHMgfHwgYmxvY2tQYXJhbXMgfHwgZGVjbGFyZWRCbG9ja1BhcmFtcykge1xuICAgICAgICBwcm9ncmFtV3JhcHBlciA9IHdyYXBQcm9ncmFtKFxuICAgICAgICAgIHRoaXMsXG4gICAgICAgICAgaSxcbiAgICAgICAgICBmbixcbiAgICAgICAgICBkYXRhLFxuICAgICAgICAgIGRlY2xhcmVkQmxvY2tQYXJhbXMsXG4gICAgICAgICAgYmxvY2tQYXJhbXMsXG4gICAgICAgICAgZGVwdGhzXG4gICAgICAgICk7XG4gICAgICB9IGVsc2UgaWYgKCFwcm9ncmFtV3JhcHBlcikge1xuICAgICAgICBwcm9ncmFtV3JhcHBlciA9IHRoaXMucHJvZ3JhbXNbaV0gPSB3cmFwUHJvZ3JhbSh0aGlzLCBpLCBmbik7XG4gICAgICB9XG4gICAgICByZXR1cm4gcHJvZ3JhbVdyYXBwZXI7XG4gICAgfSxcblxuICAgIGRhdGE6IGZ1bmN0aW9uKHZhbHVlLCBkZXB0aCkge1xuICAgICAgd2hpbGUgKHZhbHVlICYmIGRlcHRoLS0pIHtcbiAgICAgICAgdmFsdWUgPSB2YWx1ZS5fcGFyZW50O1xuICAgICAgfVxuICAgICAgcmV0dXJuIHZhbHVlO1xuICAgIH0sXG4gICAgbWVyZ2VJZk5lZWRlZDogZnVuY3Rpb24ocGFyYW0sIGNvbW1vbikge1xuICAgICAgbGV0IG9iaiA9IHBhcmFtIHx8IGNvbW1vbjtcblxuICAgICAgaWYgKHBhcmFtICYmIGNvbW1vbiAmJiBwYXJhbSAhPT0gY29tbW9uKSB7XG4gICAgICAgIG9iaiA9IFV0aWxzLmV4dGVuZCh7fSwgY29tbW9uLCBwYXJhbSk7XG4gICAgICB9XG5cbiAgICAgIHJldHVybiBvYmo7XG4gICAgfSxcbiAgICAvLyBBbiBlbXB0eSBvYmplY3QgdG8gdXNlIGFzIHJlcGxhY2VtZW50IGZvciBudWxsLWNvbnRleHRzXG4gICAgbnVsbENvbnRleHQ6IE9iamVjdC5zZWFsKHt9KSxcblxuICAgIG5vb3A6IGVudi5WTS5ub29wLFxuICAgIGNvbXBpbGVySW5mbzogdGVtcGxhdGVTcGVjLmNvbXBpbGVyXG4gIH07XG5cbiAgZnVuY3Rpb24gcmV0KGNvbnRleHQsIG9wdGlvbnMgPSB7fSkge1xuICAgIGxldCBkYXRhID0gb3B0aW9ucy5kYXRhO1xuXG4gICAgcmV0Ll9zZXR1cChvcHRpb25zKTtcbiAgICBpZiAoIW9wdGlvbnMucGFydGlhbCAmJiB0ZW1wbGF0ZVNwZWMudXNlRGF0YSkge1xuICAgICAgZGF0YSA9IGluaXREYXRhKGNvbnRleHQsIGRhdGEpO1xuICAgIH1cbiAgICBsZXQgZGVwdGhzLFxuICAgICAgYmxvY2tQYXJhbXMgPSB0ZW1wbGF0ZVNwZWMudXNlQmxvY2tQYXJhbXMgPyBbXSA6IHVuZGVmaW5lZDtcbiAgICBpZiAodGVtcGxhdGVTcGVjLnVzZURlcHRocykge1xuICAgICAgaWYgKG9wdGlvbnMuZGVwdGhzKSB7XG4gICAgICAgIGRlcHRocyA9XG4gICAgICAgICAgY29udGV4dCAhPSBvcHRpb25zLmRlcHRoc1swXVxuICAgICAgICAgICAgPyBbY29udGV4dF0uY29uY2F0KG9wdGlvbnMuZGVwdGhzKVxuICAgICAgICAgICAgOiBvcHRpb25zLmRlcHRocztcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIGRlcHRocyA9IFtjb250ZXh0XTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICBmdW5jdGlvbiBtYWluKGNvbnRleHQgLyosIG9wdGlvbnMqLykge1xuICAgICAgcmV0dXJuIChcbiAgICAgICAgJycgK1xuICAgICAgICB0ZW1wbGF0ZVNwZWMubWFpbihcbiAgICAgICAgICBjb250YWluZXIsXG4gICAgICAgICAgY29udGV4dCxcbiAgICAgICAgICBjb250YWluZXIuaGVscGVycyxcbiAgICAgICAgICBjb250YWluZXIucGFydGlhbHMsXG4gICAgICAgICAgZGF0YSxcbiAgICAgICAgICBibG9ja1BhcmFtcyxcbiAgICAgICAgICBkZXB0aHNcbiAgICAgICAgKVxuICAgICAgKTtcbiAgICB9XG5cbiAgICBtYWluID0gZXhlY3V0ZURlY29yYXRvcnMoXG4gICAgICB0ZW1wbGF0ZVNwZWMubWFpbixcbiAgICAgIG1haW4sXG4gICAgICBjb250YWluZXIsXG4gICAgICBvcHRpb25zLmRlcHRocyB8fCBbXSxcbiAgICAgIGRhdGEsXG4gICAgICBibG9ja1BhcmFtc1xuICAgICk7XG4gICAgcmV0dXJuIG1haW4oY29udGV4dCwgb3B0aW9ucyk7XG4gIH1cblxuICByZXQuaXNUb3AgPSB0cnVlO1xuXG4gIHJldC5fc2V0dXAgPSBmdW5jdGlvbihvcHRpb25zKSB7XG4gICAgaWYgKCFvcHRpb25zLnBhcnRpYWwpIHtcbiAgICAgIGxldCBtZXJnZWRIZWxwZXJzID0gVXRpbHMuZXh0ZW5kKHt9LCBlbnYuaGVscGVycywgb3B0aW9ucy5oZWxwZXJzKTtcbiAgICAgIHdyYXBIZWxwZXJzVG9QYXNzTG9va3VwUHJvcGVydHkobWVyZ2VkSGVscGVycywgY29udGFpbmVyKTtcbiAgICAgIGNvbnRhaW5lci5oZWxwZXJzID0gbWVyZ2VkSGVscGVycztcblxuICAgICAgaWYgKHRlbXBsYXRlU3BlYy51c2VQYXJ0aWFsKSB7XG4gICAgICAgIC8vIFVzZSBtZXJnZUlmTmVlZGVkIGhlcmUgdG8gcHJldmVudCBjb21waWxpbmcgZ2xvYmFsIHBhcnRpYWxzIG11bHRpcGxlIHRpbWVzXG4gICAgICAgIGNvbnRhaW5lci5wYXJ0aWFscyA9IGNvbnRhaW5lci5tZXJnZUlmTmVlZGVkKFxuICAgICAgICAgIG9wdGlvbnMucGFydGlhbHMsXG4gICAgICAgICAgZW52LnBhcnRpYWxzXG4gICAgICAgICk7XG4gICAgICB9XG4gICAgICBpZiAodGVtcGxhdGVTcGVjLnVzZVBhcnRpYWwgfHwgdGVtcGxhdGVTcGVjLnVzZURlY29yYXRvcnMpIHtcbiAgICAgICAgY29udGFpbmVyLmRlY29yYXRvcnMgPSBVdGlscy5leHRlbmQoXG4gICAgICAgICAge30sXG4gICAgICAgICAgZW52LmRlY29yYXRvcnMsXG4gICAgICAgICAgb3B0aW9ucy5kZWNvcmF0b3JzXG4gICAgICAgICk7XG4gICAgICB9XG5cbiAgICAgIGNvbnRhaW5lci5ob29rcyA9IHt9O1xuICAgICAgY29udGFpbmVyLnByb3RvQWNjZXNzQ29udHJvbCA9IGNyZWF0ZVByb3RvQWNjZXNzQ29udHJvbChvcHRpb25zKTtcblxuICAgICAgbGV0IGtlZXBIZWxwZXJJbkhlbHBlcnMgPVxuICAgICAgICBvcHRpb25zLmFsbG93Q2FsbHNUb0hlbHBlck1pc3NpbmcgfHxcbiAgICAgICAgdGVtcGxhdGVXYXNQcmVjb21waWxlZFdpdGhDb21waWxlclY3O1xuICAgICAgbW92ZUhlbHBlclRvSG9va3MoY29udGFpbmVyLCAnaGVscGVyTWlzc2luZycsIGtlZXBIZWxwZXJJbkhlbHBlcnMpO1xuICAgICAgbW92ZUhlbHBlclRvSG9va3MoY29udGFpbmVyLCAnYmxvY2tIZWxwZXJNaXNzaW5nJywga2VlcEhlbHBlckluSGVscGVycyk7XG4gICAgfSBlbHNlIHtcbiAgICAgIGNvbnRhaW5lci5wcm90b0FjY2Vzc0NvbnRyb2wgPSBvcHRpb25zLnByb3RvQWNjZXNzQ29udHJvbDsgLy8gaW50ZXJuYWwgb3B0aW9uXG4gICAgICBjb250YWluZXIuaGVscGVycyA9IG9wdGlvbnMuaGVscGVycztcbiAgICAgIGNvbnRhaW5lci5wYXJ0aWFscyA9IG9wdGlvbnMucGFydGlhbHM7XG4gICAgICBjb250YWluZXIuZGVjb3JhdG9ycyA9IG9wdGlvbnMuZGVjb3JhdG9ycztcbiAgICAgIGNvbnRhaW5lci5ob29rcyA9IG9wdGlvbnMuaG9va3M7XG4gICAgfVxuICB9O1xuXG4gIHJldC5fY2hpbGQgPSBmdW5jdGlvbihpLCBkYXRhLCBibG9ja1BhcmFtcywgZGVwdGhzKSB7XG4gICAgaWYgKHRlbXBsYXRlU3BlYy51c2VCbG9ja1BhcmFtcyAmJiAhYmxvY2tQYXJhbXMpIHtcbiAgICAgIHRocm93IG5ldyBFeGNlcHRpb24oJ211c3QgcGFzcyBibG9jayBwYXJhbXMnKTtcbiAgICB9XG4gICAgaWYgKHRlbXBsYXRlU3BlYy51c2VEZXB0aHMgJiYgIWRlcHRocykge1xuICAgICAgdGhyb3cgbmV3IEV4Y2VwdGlvbignbXVzdCBwYXNzIHBhcmVudCBkZXB0aHMnKTtcbiAgICB9XG5cbiAgICByZXR1cm4gd3JhcFByb2dyYW0oXG4gICAgICBjb250YWluZXIsXG4gICAgICBpLFxuICAgICAgdGVtcGxhdGVTcGVjW2ldLFxuICAgICAgZGF0YSxcbiAgICAgIDAsXG4gICAgICBibG9ja1BhcmFtcyxcbiAgICAgIGRlcHRoc1xuICAgICk7XG4gIH07XG4gIHJldHVybiByZXQ7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiB3cmFwUHJvZ3JhbShcbiAgY29udGFpbmVyLFxuICBpLFxuICBmbixcbiAgZGF0YSxcbiAgZGVjbGFyZWRCbG9ja1BhcmFtcyxcbiAgYmxvY2tQYXJhbXMsXG4gIGRlcHRoc1xuKSB7XG4gIGZ1bmN0aW9uIHByb2coY29udGV4dCwgb3B0aW9ucyA9IHt9KSB7XG4gICAgbGV0IGN1cnJlbnREZXB0aHMgPSBkZXB0aHM7XG4gICAgaWYgKFxuICAgICAgZGVwdGhzICYmXG4gICAgICBjb250ZXh0ICE9IGRlcHRoc1swXSAmJlxuICAgICAgIShjb250ZXh0ID09PSBjb250YWluZXIubnVsbENvbnRleHQgJiYgZGVwdGhzWzBdID09PSBudWxsKVxuICAgICkge1xuICAgICAgY3VycmVudERlcHRocyA9IFtjb250ZXh0XS5jb25jYXQoZGVwdGhzKTtcbiAgICB9XG5cbiAgICByZXR1cm4gZm4oXG4gICAgICBjb250YWluZXIsXG4gICAgICBjb250ZXh0LFxuICAgICAgY29udGFpbmVyLmhlbHBlcnMsXG4gICAgICBjb250YWluZXIucGFydGlhbHMsXG4gICAgICBvcHRpb25zLmRhdGEgfHwgZGF0YSxcbiAgICAgIGJsb2NrUGFyYW1zICYmIFtvcHRpb25zLmJsb2NrUGFyYW1zXS5jb25jYXQoYmxvY2tQYXJhbXMpLFxuICAgICAgY3VycmVudERlcHRoc1xuICAgICk7XG4gIH1cblxuICBwcm9nID0gZXhlY3V0ZURlY29yYXRvcnMoZm4sIHByb2csIGNvbnRhaW5lciwgZGVwdGhzLCBkYXRhLCBibG9ja1BhcmFtcyk7XG5cbiAgcHJvZy5wcm9ncmFtID0gaTtcbiAgcHJvZy5kZXB0aCA9IGRlcHRocyA/IGRlcHRocy5sZW5ndGggOiAwO1xuICBwcm9nLmJsb2NrUGFyYW1zID0gZGVjbGFyZWRCbG9ja1BhcmFtcyB8fCAwO1xuICByZXR1cm4gcHJvZztcbn1cblxuLyoqXG4gKiBUaGlzIGlzIGN1cnJlbnRseSBwYXJ0IG9mIHRoZSBvZmZpY2lhbCBBUEksIHRoZXJlZm9yZSBpbXBsZW1lbnRhdGlvbiBkZXRhaWxzIHNob3VsZCBub3QgYmUgY2hhbmdlZC5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHJlc29sdmVQYXJ0aWFsKHBhcnRpYWwsIGNvbnRleHQsIG9wdGlvbnMpIHtcbiAgaWYgKCFwYXJ0aWFsKSB7XG4gICAgaWYgKG9wdGlvbnMubmFtZSA9PT0gJ0BwYXJ0aWFsLWJsb2NrJykge1xuICAgICAgcGFydGlhbCA9IG9wdGlvbnMuZGF0YVsncGFydGlhbC1ibG9jayddO1xuICAgIH0gZWxzZSB7XG4gICAgICBwYXJ0aWFsID0gb3B0aW9ucy5wYXJ0aWFsc1tvcHRpb25zLm5hbWVdO1xuICAgIH1cbiAgfSBlbHNlIGlmICghcGFydGlhbC5jYWxsICYmICFvcHRpb25zLm5hbWUpIHtcbiAgICAvLyBUaGlzIGlzIGEgZHluYW1pYyBwYXJ0aWFsIHRoYXQgcmV0dXJuZWQgYSBzdHJpbmdcbiAgICBvcHRpb25zLm5hbWUgPSBwYXJ0aWFsO1xuICAgIHBhcnRpYWwgPSBvcHRpb25zLnBhcnRpYWxzW3BhcnRpYWxdO1xuICB9XG4gIHJldHVybiBwYXJ0aWFsO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gaW52b2tlUGFydGlhbChwYXJ0aWFsLCBjb250ZXh0LCBvcHRpb25zKSB7XG4gIC8vIFVzZSB0aGUgY3VycmVudCBjbG9zdXJlIGNvbnRleHQgdG8gc2F2ZSB0aGUgcGFydGlhbC1ibG9jayBpZiB0aGlzIHBhcnRpYWxcbiAgY29uc3QgY3VycmVudFBhcnRpYWxCbG9jayA9IG9wdGlvbnMuZGF0YSAmJiBvcHRpb25zLmRhdGFbJ3BhcnRpYWwtYmxvY2snXTtcbiAgb3B0aW9ucy5wYXJ0aWFsID0gdHJ1ZTtcbiAgaWYgKG9wdGlvbnMuaWRzKSB7XG4gICAgb3B0aW9ucy5kYXRhLmNvbnRleHRQYXRoID0gb3B0aW9ucy5pZHNbMF0gfHwgb3B0aW9ucy5kYXRhLmNvbnRleHRQYXRoO1xuICB9XG5cbiAgbGV0IHBhcnRpYWxCbG9jaztcbiAgaWYgKG9wdGlvbnMuZm4gJiYgb3B0aW9ucy5mbiAhPT0gbm9vcCkge1xuICAgIG9wdGlvbnMuZGF0YSA9IGNyZWF0ZUZyYW1lKG9wdGlvbnMuZGF0YSk7XG4gICAgLy8gV3JhcHBlciBmdW5jdGlvbiB0byBnZXQgYWNjZXNzIHRvIGN1cnJlbnRQYXJ0aWFsQmxvY2sgZnJvbSB0aGUgY2xvc3VyZVxuICAgIGxldCBmbiA9IG9wdGlvbnMuZm47XG4gICAgcGFydGlhbEJsb2NrID0gb3B0aW9ucy5kYXRhWydwYXJ0aWFsLWJsb2NrJ10gPSBmdW5jdGlvbiBwYXJ0aWFsQmxvY2tXcmFwcGVyKFxuICAgICAgY29udGV4dCxcbiAgICAgIG9wdGlvbnMgPSB7fVxuICAgICkge1xuICAgICAgLy8gUmVzdG9yZSB0aGUgcGFydGlhbC1ibG9jayBmcm9tIHRoZSBjbG9zdXJlIGZvciB0aGUgZXhlY3V0aW9uIG9mIHRoZSBibG9ja1xuICAgICAgLy8gaS5lLiB0aGUgcGFydCBpbnNpZGUgdGhlIGJsb2NrIG9mIHRoZSBwYXJ0aWFsIGNhbGwuXG4gICAgICBvcHRpb25zLmRhdGEgPSBjcmVhdGVGcmFtZShvcHRpb25zLmRhdGEpO1xuICAgICAgb3B0aW9ucy5kYXRhWydwYXJ0aWFsLWJsb2NrJ10gPSBjdXJyZW50UGFydGlhbEJsb2NrO1xuICAgICAgcmV0dXJuIGZuKGNvbnRleHQsIG9wdGlvbnMpO1xuICAgIH07XG4gICAgaWYgKGZuLnBhcnRpYWxzKSB7XG4gICAgICBvcHRpb25zLnBhcnRpYWxzID0gVXRpbHMuZXh0ZW5kKHt9LCBvcHRpb25zLnBhcnRpYWxzLCBmbi5wYXJ0aWFscyk7XG4gICAgfVxuICB9XG5cbiAgaWYgKHBhcnRpYWwgPT09IHVuZGVmaW5lZCAmJiBwYXJ0aWFsQmxvY2spIHtcbiAgICBwYXJ0aWFsID0gcGFydGlhbEJsb2NrO1xuICB9XG5cbiAgaWYgKHBhcnRpYWwgPT09IHVuZGVmaW5lZCkge1xuICAgIHRocm93IG5ldyBFeGNlcHRpb24oJ1RoZSBwYXJ0aWFsICcgKyBvcHRpb25zLm5hbWUgKyAnIGNvdWxkIG5vdCBiZSBmb3VuZCcpO1xuICB9IGVsc2UgaWYgKHBhcnRpYWwgaW5zdGFuY2VvZiBGdW5jdGlvbikge1xuICAgIHJldHVybiBwYXJ0aWFsKGNvbnRleHQsIG9wdGlvbnMpO1xuICB9XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBub29wKCkge1xuICByZXR1cm4gJyc7XG59XG5cbmZ1bmN0aW9uIGluaXREYXRhKGNvbnRleHQsIGRhdGEpIHtcbiAgaWYgKCFkYXRhIHx8ICEoJ3Jvb3QnIGluIGRhdGEpKSB7XG4gICAgZGF0YSA9IGRhdGEgPyBjcmVhdGVGcmFtZShkYXRhKSA6IHt9O1xuICAgIGRhdGEucm9vdCA9IGNvbnRleHQ7XG4gIH1cbiAgcmV0dXJuIGRhdGE7XG59XG5cbmZ1bmN0aW9uIGV4ZWN1dGVEZWNvcmF0b3JzKGZuLCBwcm9nLCBjb250YWluZXIsIGRlcHRocywgZGF0YSwgYmxvY2tQYXJhbXMpIHtcbiAgaWYgKGZuLmRlY29yYXRvcikge1xuICAgIGxldCBwcm9wcyA9IHt9O1xuICAgIHByb2cgPSBmbi5kZWNvcmF0b3IoXG4gICAgICBwcm9nLFxuICAgICAgcHJvcHMsXG4gICAgICBjb250YWluZXIsXG4gICAgICBkZXB0aHMgJiYgZGVwdGhzWzBdLFxuICAgICAgZGF0YSxcbiAgICAgIGJsb2NrUGFyYW1zLFxuICAgICAgZGVwdGhzXG4gICAgKTtcbiAgICBVdGlscy5leHRlbmQocHJvZywgcHJvcHMpO1xuICB9XG4gIHJldHVybiBwcm9nO1xufVxuXG5mdW5jdGlvbiB3cmFwSGVscGVyc1RvUGFzc0xvb2t1cFByb3BlcnR5KG1lcmdlZEhlbHBlcnMsIGNvbnRhaW5lcikge1xuICBPYmplY3Qua2V5cyhtZXJnZWRIZWxwZXJzKS5mb3JFYWNoKGhlbHBlck5hbWUgPT4ge1xuICAgIGxldCBoZWxwZXIgPSBtZXJnZWRIZWxwZXJzW2hlbHBlck5hbWVdO1xuICAgIG1lcmdlZEhlbHBlcnNbaGVscGVyTmFtZV0gPSBwYXNzTG9va3VwUHJvcGVydHlPcHRpb24oaGVscGVyLCBjb250YWluZXIpO1xuICB9KTtcbn1cblxuZnVuY3Rpb24gcGFzc0xvb2t1cFByb3BlcnR5T3B0aW9uKGhlbHBlciwgY29udGFpbmVyKSB7XG4gIGNvbnN0IGxvb2t1cFByb3BlcnR5ID0gY29udGFpbmVyLmxvb2t1cFByb3BlcnR5O1xuICByZXR1cm4gd3JhcEhlbHBlcihoZWxwZXIsIG9wdGlvbnMgPT4ge1xuICAgIHJldHVybiBVdGlscy5leHRlbmQoeyBsb29rdXBQcm9wZXJ0eSB9LCBvcHRpb25zKTtcbiAgfSk7XG59XG4iXX0= + + +/***/ }), + +/***/ "./node_modules/handlebars/dist/cjs/handlebars/safe-string.js": +/*!********************************************************************!*\ + !*** ./node_modules/handlebars/dist/cjs/handlebars/safe-string.js ***! + \********************************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; +// Build out our basic SafeString type + + +exports.__esModule = true; +function SafeString(string) { + this.string = string; +} + +SafeString.prototype.toString = SafeString.prototype.toHTML = function () { + return '' + this.string; +}; + +exports['default'] = SafeString; +module.exports = exports['default']; +//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL2xpYi9oYW5kbGViYXJzL3NhZmUtc3RyaW5nLmpzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7QUFDQSxTQUFTLFVBQVUsQ0FBQyxNQUFNLEVBQUU7QUFDMUIsTUFBSSxDQUFDLE1BQU0sR0FBRyxNQUFNLENBQUM7Q0FDdEI7O0FBRUQsVUFBVSxDQUFDLFNBQVMsQ0FBQyxRQUFRLEdBQUcsVUFBVSxDQUFDLFNBQVMsQ0FBQyxNQUFNLEdBQUcsWUFBVztBQUN2RSxTQUFPLEVBQUUsR0FBRyxJQUFJLENBQUMsTUFBTSxDQUFDO0NBQ3pCLENBQUM7O3FCQUVhLFVBQVUiLCJmaWxlIjoic2FmZS1zdHJpbmcuanMiLCJzb3VyY2VzQ29udGVudCI6WyIvLyBCdWlsZCBvdXQgb3VyIGJhc2ljIFNhZmVTdHJpbmcgdHlwZVxuZnVuY3Rpb24gU2FmZVN0cmluZyhzdHJpbmcpIHtcbiAgdGhpcy5zdHJpbmcgPSBzdHJpbmc7XG59XG5cblNhZmVTdHJpbmcucHJvdG90eXBlLnRvU3RyaW5nID0gU2FmZVN0cmluZy5wcm90b3R5cGUudG9IVE1MID0gZnVuY3Rpb24oKSB7XG4gIHJldHVybiAnJyArIHRoaXMuc3RyaW5nO1xufTtcblxuZXhwb3J0IGRlZmF1bHQgU2FmZVN0cmluZztcbiJdfQ== + + +/***/ }), + +/***/ "./node_modules/handlebars/dist/cjs/handlebars/utils.js": +/*!**************************************************************!*\ + !*** ./node_modules/handlebars/dist/cjs/handlebars/utils.js ***! + \**************************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + + +exports.__esModule = true; +exports.extend = extend; +exports.indexOf = indexOf; +exports.escapeExpression = escapeExpression; +exports.isEmpty = isEmpty; +exports.createFrame = createFrame; +exports.blockParams = blockParams; +exports.appendContextPath = appendContextPath; +var escape = { + '&': '&', + '<': '<', + '>': '>', + '"': '"', + "'": ''', + '`': '`', + '=': '=' +}; + +var badChars = /[&<>"'`=]/g, + possible = /[&<>"'`=]/; + +function escapeChar(chr) { + return escape[chr]; +} + +function extend(obj /* , ...source */) { + for (var i = 1; i < arguments.length; i++) { + for (var key in arguments[i]) { + if (Object.prototype.hasOwnProperty.call(arguments[i], key)) { + obj[key] = arguments[i][key]; + } + } + } + + return obj; +} + +var toString = Object.prototype.toString; + +exports.toString = toString; +// Sourced from lodash +// https://github.com/bestiejs/lodash/blob/master/LICENSE.txt +/* eslint-disable func-style */ +var isFunction = function isFunction(value) { + return typeof value === 'function'; +}; +// fallback for older versions of Chrome and Safari +/* istanbul ignore next */ +if (isFunction(/x/)) { + exports.isFunction = isFunction = function (value) { + return typeof value === 'function' && toString.call(value) === '[object Function]'; + }; +} +exports.isFunction = isFunction; + +/* eslint-enable func-style */ + +/* istanbul ignore next */ +var isArray = Array.isArray || function (value) { + return value && typeof value === 'object' ? toString.call(value) === '[object Array]' : false; +}; + +exports.isArray = isArray; +// Older IE versions do not directly support indexOf so we must implement our own, sadly. + +function indexOf(array, value) { + for (var i = 0, len = array.length; i < len; i++) { + if (array[i] === value) { + return i; + } + } + return -1; +} + +function escapeExpression(string) { + if (typeof string !== 'string') { + // don't escape SafeStrings, since they're already safe + if (string && string.toHTML) { + return string.toHTML(); + } else if (string == null) { + return ''; + } else if (!string) { + return string + ''; + } + + // Force a string conversion as this will be done by the append regardless and + // the regex test will do this transparently behind the scenes, causing issues if + // an object's to string has escaped characters in it. + string = '' + string; + } + + if (!possible.test(string)) { + return string; + } + return string.replace(badChars, escapeChar); +} + +function isEmpty(value) { + if (!value && value !== 0) { + return true; + } else if (isArray(value) && value.length === 0) { + return true; + } else { + return false; + } +} + +function createFrame(object) { + var frame = extend({}, object); + frame._parent = object; + return frame; +} + +function blockParams(params, ids) { + params.path = ids; + return params; +} + +function appendContextPath(contextPath, id) { + return (contextPath ? contextPath + '.' : '') + id; +} +//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL2xpYi9oYW5kbGViYXJzL3V0aWxzLmpzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7QUFBQSxJQUFNLE1BQU0sR0FBRztBQUNiLEtBQUcsRUFBRSxPQUFPO0FBQ1osS0FBRyxFQUFFLE1BQU07QUFDWCxLQUFHLEVBQUUsTUFBTTtBQUNYLEtBQUcsRUFBRSxRQUFRO0FBQ2IsS0FBRyxFQUFFLFFBQVE7QUFDYixLQUFHLEVBQUUsUUFBUTtBQUNiLEtBQUcsRUFBRSxRQUFRO0NBQ2QsQ0FBQzs7QUFFRixJQUFNLFFBQVEsR0FBRyxZQUFZO0lBQzNCLFFBQVEsR0FBRyxXQUFXLENBQUM7O0FBRXpCLFNBQVMsVUFBVSxDQUFDLEdBQUcsRUFBRTtBQUN2QixTQUFPLE1BQU0sQ0FBQyxHQUFHLENBQUMsQ0FBQztDQUNwQjs7QUFFTSxTQUFTLE1BQU0sQ0FBQyxHQUFHLG9CQUFvQjtBQUM1QyxPQUFLLElBQUksQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLEdBQUcsU0FBUyxDQUFDLE1BQU0sRUFBRSxDQUFDLEVBQUUsRUFBRTtBQUN6QyxTQUFLLElBQUksR0FBRyxJQUFJLFNBQVMsQ0FBQyxDQUFDLENBQUMsRUFBRTtBQUM1QixVQUFJLE1BQU0sQ0FBQyxTQUFTLENBQUMsY0FBYyxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLEVBQUUsR0FBRyxDQUFDLEVBQUU7QUFDM0QsV0FBRyxDQUFDLEdBQUcsQ0FBQyxHQUFHLFNBQVMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQztPQUM5QjtLQUNGO0dBQ0Y7O0FBRUQsU0FBTyxHQUFHLENBQUM7Q0FDWjs7QUFFTSxJQUFJLFFBQVEsR0FBRyxNQUFNLENBQUMsU0FBUyxDQUFDLFFBQVEsQ0FBQzs7Ozs7O0FBS2hELElBQUksVUFBVSxHQUFHLG9CQUFTLEtBQUssRUFBRTtBQUMvQixTQUFPLE9BQU8sS0FBSyxLQUFLLFVBQVUsQ0FBQztDQUNwQyxDQUFDOzs7QUFHRixJQUFJLFVBQVUsQ0FBQyxHQUFHLENBQUMsRUFBRTtBQUNuQixVQU9PLFVBQVUsR0FQakIsVUFBVSxHQUFHLFVBQVMsS0FBSyxFQUFFO0FBQzNCLFdBQ0UsT0FBTyxLQUFLLEtBQUssVUFBVSxJQUMzQixRQUFRLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxLQUFLLG1CQUFtQixDQUM1QztHQUNILENBQUM7Q0FDSDtRQUNRLFVBQVUsR0FBVixVQUFVOzs7OztBQUlaLElBQU0sT0FBTyxHQUNsQixLQUFLLENBQUMsT0FBTyxJQUNiLFVBQVMsS0FBSyxFQUFFO0FBQ2QsU0FBTyxLQUFLLElBQUksT0FBTyxLQUFLLEtBQUssUUFBUSxHQUNyQyxRQUFRLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxLQUFLLGdCQUFnQixHQUN6QyxLQUFLLENBQUM7Q0FDWCxDQUFDOzs7OztBQUdHLFNBQVMsT0FBTyxDQUFDLEtBQUssRUFBRSxLQUFLLEVBQUU7QUFDcEMsT0FBSyxJQUFJLENBQUMsR0FBRyxDQUFDLEVBQUUsR0FBRyxHQUFHLEtBQUssQ0FBQyxNQUFNLEVBQUUsQ0FBQyxHQUFHLEdBQUcsRUFBRSxDQUFDLEVBQUUsRUFBRTtBQUNoRCxRQUFJLEtBQUssQ0FBQyxDQUFDLENBQUMsS0FBSyxLQUFLLEVBQUU7QUFDdEIsYUFBTyxDQUFDLENBQUM7S0FDVjtHQUNGO0FBQ0QsU0FBTyxDQUFDLENBQUMsQ0FBQztDQUNYOztBQUVNLFNBQVMsZ0JBQWdCLENBQUMsTUFBTSxFQUFFO0FBQ3ZDLE1BQUksT0FBTyxNQUFNLEtBQUssUUFBUSxFQUFFOztBQUU5QixRQUFJLE1BQU0sSUFBSSxNQUFNLENBQUMsTUFBTSxFQUFFO0FBQzNCLGFBQU8sTUFBTSxDQUFDLE1BQU0sRUFBRSxDQUFDO0tBQ3hCLE1BQU0sSUFBSSxNQUFNLElBQUksSUFBSSxFQUFFO0FBQ3pCLGFBQU8sRUFBRSxDQUFDO0tBQ1gsTUFBTSxJQUFJLENBQUMsTUFBTSxFQUFFO0FBQ2xCLGFBQU8sTUFBTSxHQUFHLEVBQUUsQ0FBQztLQUNwQjs7Ozs7QUFLRCxVQUFNLEdBQUcsRUFBRSxHQUFHLE1BQU0sQ0FBQztHQUN0Qjs7QUFFRCxNQUFJLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsRUFBRTtBQUMxQixXQUFPLE1BQU0sQ0FBQztHQUNmO0FBQ0QsU0FBTyxNQUFNLENBQUMsT0FBTyxDQUFDLFFBQVEsRUFBRSxVQUFVLENBQUMsQ0FBQztDQUM3Qzs7QUFFTSxTQUFTLE9BQU8sQ0FBQyxLQUFLLEVBQUU7QUFDN0IsTUFBSSxDQUFDLEtBQUssSUFBSSxLQUFLLEtBQUssQ0FBQyxFQUFFO0FBQ3pCLFdBQU8sSUFBSSxDQUFDO0dBQ2IsTUFBTSxJQUFJLE9BQU8sQ0FBQyxLQUFLLENBQUMsSUFBSSxLQUFLLENBQUMsTUFBTSxLQUFLLENBQUMsRUFBRTtBQUMvQyxXQUFPLElBQUksQ0FBQztHQUNiLE1BQU07QUFDTCxXQUFPLEtBQUssQ0FBQztHQUNkO0NBQ0Y7O0FBRU0sU0FBUyxXQUFXLENBQUMsTUFBTSxFQUFFO0FBQ2xDLE1BQUksS0FBSyxHQUFHLE1BQU0sQ0FBQyxFQUFFLEVBQUUsTUFBTSxDQUFDLENBQUM7QUFDL0IsT0FBSyxDQUFDLE9BQU8sR0FBRyxNQUFNLENBQUM7QUFDdkIsU0FBTyxLQUFLLENBQUM7Q0FDZDs7QUFFTSxTQUFTLFdBQVcsQ0FBQyxNQUFNLEVBQUUsR0FBRyxFQUFFO0FBQ3ZDLFFBQU0sQ0FBQyxJQUFJLEdBQUcsR0FBRyxDQUFDO0FBQ2xCLFNBQU8sTUFBTSxDQUFDO0NBQ2Y7O0FBRU0sU0FBUyxpQkFBaUIsQ0FBQyxXQUFXLEVBQUUsRUFBRSxFQUFFO0FBQ2pELFNBQU8sQ0FBQyxXQUFXLEdBQUcsV0FBVyxHQUFHLEdBQUcsR0FBRyxFQUFFLENBQUEsR0FBSSxFQUFFLENBQUM7Q0FDcEQiLCJmaWxlIjoidXRpbHMuanMiLCJzb3VyY2VzQ29udGVudCI6WyJjb25zdCBlc2NhcGUgPSB7XG4gICcmJzogJyZhbXA7JyxcbiAgJzwnOiAnJmx0OycsXG4gICc+JzogJyZndDsnLFxuICAnXCInOiAnJnF1b3Q7JyxcbiAgXCInXCI6ICcmI3gyNzsnLFxuICAnYCc6ICcmI3g2MDsnLFxuICAnPSc6ICcmI3gzRDsnXG59O1xuXG5jb25zdCBiYWRDaGFycyA9IC9bJjw+XCInYD1dL2csXG4gIHBvc3NpYmxlID0gL1smPD5cIidgPV0vO1xuXG5mdW5jdGlvbiBlc2NhcGVDaGFyKGNocikge1xuICByZXR1cm4gZXNjYXBlW2Nocl07XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBleHRlbmQob2JqIC8qICwgLi4uc291cmNlICovKSB7XG4gIGZvciAobGV0IGkgPSAxOyBpIDwgYXJndW1lbnRzLmxlbmd0aDsgaSsrKSB7XG4gICAgZm9yIChsZXQga2V5IGluIGFyZ3VtZW50c1tpXSkge1xuICAgICAgaWYgKE9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChhcmd1bWVudHNbaV0sIGtleSkpIHtcbiAgICAgICAgb2JqW2tleV0gPSBhcmd1bWVudHNbaV1ba2V5XTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICByZXR1cm4gb2JqO1xufVxuXG5leHBvcnQgbGV0IHRvU3RyaW5nID0gT2JqZWN0LnByb3RvdHlwZS50b1N0cmluZztcblxuLy8gU291cmNlZCBmcm9tIGxvZGFzaFxuLy8gaHR0cHM6Ly9naXRodWIuY29tL2Jlc3RpZWpzL2xvZGFzaC9ibG9iL21hc3Rlci9MSUNFTlNFLnR4dFxuLyogZXNsaW50LWRpc2FibGUgZnVuYy1zdHlsZSAqL1xubGV0IGlzRnVuY3Rpb24gPSBmdW5jdGlvbih2YWx1ZSkge1xuICByZXR1cm4gdHlwZW9mIHZhbHVlID09PSAnZnVuY3Rpb24nO1xufTtcbi8vIGZhbGxiYWNrIGZvciBvbGRlciB2ZXJzaW9ucyBvZiBDaHJvbWUgYW5kIFNhZmFyaVxuLyogaXN0YW5idWwgaWdub3JlIG5leHQgKi9cbmlmIChpc0Z1bmN0aW9uKC94LykpIHtcbiAgaXNGdW5jdGlvbiA9IGZ1bmN0aW9uKHZhbHVlKSB7XG4gICAgcmV0dXJuIChcbiAgICAgIHR5cGVvZiB2YWx1ZSA9PT0gJ2Z1bmN0aW9uJyAmJlxuICAgICAgdG9TdHJpbmcuY2FsbCh2YWx1ZSkgPT09ICdbb2JqZWN0IEZ1bmN0aW9uXSdcbiAgICApO1xuICB9O1xufVxuZXhwb3J0IHsgaXNGdW5jdGlvbiB9O1xuLyogZXNsaW50LWVuYWJsZSBmdW5jLXN0eWxlICovXG5cbi8qIGlzdGFuYnVsIGlnbm9yZSBuZXh0ICovXG5leHBvcnQgY29uc3QgaXNBcnJheSA9XG4gIEFycmF5LmlzQXJyYXkgfHxcbiAgZnVuY3Rpb24odmFsdWUpIHtcbiAgICByZXR1cm4gdmFsdWUgJiYgdHlwZW9mIHZhbHVlID09PSAnb2JqZWN0J1xuICAgICAgPyB0b1N0cmluZy5jYWxsKHZhbHVlKSA9PT0gJ1tvYmplY3QgQXJyYXldJ1xuICAgICAgOiBmYWxzZTtcbiAgfTtcblxuLy8gT2xkZXIgSUUgdmVyc2lvbnMgZG8gbm90IGRpcmVjdGx5IHN1cHBvcnQgaW5kZXhPZiBzbyB3ZSBtdXN0IGltcGxlbWVudCBvdXIgb3duLCBzYWRseS5cbmV4cG9ydCBmdW5jdGlvbiBpbmRleE9mKGFycmF5LCB2YWx1ZSkge1xuICBmb3IgKGxldCBpID0gMCwgbGVuID0gYXJyYXkubGVuZ3RoOyBpIDwgbGVuOyBpKyspIHtcbiAgICBpZiAoYXJyYXlbaV0gPT09IHZhbHVlKSB7XG4gICAgICByZXR1cm4gaTtcbiAgICB9XG4gIH1cbiAgcmV0dXJuIC0xO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gZXNjYXBlRXhwcmVzc2lvbihzdHJpbmcpIHtcbiAgaWYgKHR5cGVvZiBzdHJpbmcgIT09ICdzdHJpbmcnKSB7XG4gICAgLy8gZG9uJ3QgZXNjYXBlIFNhZmVTdHJpbmdzLCBzaW5jZSB0aGV5J3JlIGFscmVhZHkgc2FmZVxuICAgIGlmIChzdHJpbmcgJiYgc3RyaW5nLnRvSFRNTCkge1xuICAgICAgcmV0dXJuIHN0cmluZy50b0hUTUwoKTtcbiAgICB9IGVsc2UgaWYgKHN0cmluZyA9PSBudWxsKSB7XG4gICAgICByZXR1cm4gJyc7XG4gICAgfSBlbHNlIGlmICghc3RyaW5nKSB7XG4gICAgICByZXR1cm4gc3RyaW5nICsgJyc7XG4gICAgfVxuXG4gICAgLy8gRm9yY2UgYSBzdHJpbmcgY29udmVyc2lvbiBhcyB0aGlzIHdpbGwgYmUgZG9uZSBieSB0aGUgYXBwZW5kIHJlZ2FyZGxlc3MgYW5kXG4gICAgLy8gdGhlIHJlZ2V4IHRlc3Qgd2lsbCBkbyB0aGlzIHRyYW5zcGFyZW50bHkgYmVoaW5kIHRoZSBzY2VuZXMsIGNhdXNpbmcgaXNzdWVzIGlmXG4gICAgLy8gYW4gb2JqZWN0J3MgdG8gc3RyaW5nIGhhcyBlc2NhcGVkIGNoYXJhY3RlcnMgaW4gaXQuXG4gICAgc3RyaW5nID0gJycgKyBzdHJpbmc7XG4gIH1cblxuICBpZiAoIXBvc3NpYmxlLnRlc3Qoc3RyaW5nKSkge1xuICAgIHJldHVybiBzdHJpbmc7XG4gIH1cbiAgcmV0dXJuIHN0cmluZy5yZXBsYWNlKGJhZENoYXJzLCBlc2NhcGVDaGFyKTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGlzRW1wdHkodmFsdWUpIHtcbiAgaWYgKCF2YWx1ZSAmJiB2YWx1ZSAhPT0gMCkge1xuICAgIHJldHVybiB0cnVlO1xuICB9IGVsc2UgaWYgKGlzQXJyYXkodmFsdWUpICYmIHZhbHVlLmxlbmd0aCA9PT0gMCkge1xuICAgIHJldHVybiB0cnVlO1xuICB9IGVsc2Uge1xuICAgIHJldHVybiBmYWxzZTtcbiAgfVxufVxuXG5leHBvcnQgZnVuY3Rpb24gY3JlYXRlRnJhbWUob2JqZWN0KSB7XG4gIGxldCBmcmFtZSA9IGV4dGVuZCh7fSwgb2JqZWN0KTtcbiAgZnJhbWUuX3BhcmVudCA9IG9iamVjdDtcbiAgcmV0dXJuIGZyYW1lO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gYmxvY2tQYXJhbXMocGFyYW1zLCBpZHMpIHtcbiAgcGFyYW1zLnBhdGggPSBpZHM7XG4gIHJldHVybiBwYXJhbXM7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBhcHBlbmRDb250ZXh0UGF0aChjb250ZXh0UGF0aCwgaWQpIHtcbiAgcmV0dXJuIChjb250ZXh0UGF0aCA/IGNvbnRleHRQYXRoICsgJy4nIDogJycpICsgaWQ7XG59XG4iXX0= + + +/***/ }), + +/***/ "./node_modules/handlebars/runtime.js": +/*!********************************************!*\ + !*** ./node_modules/handlebars/runtime.js ***! + \********************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +// Create a simple path alias to allow browserify to resolve +// the runtime on a supported path. +module.exports = __webpack_require__(/*! ./dist/cjs/handlebars.runtime */ "./node_modules/handlebars/dist/cjs/handlebars.runtime.js")['default']; + + +/***/ }), + +/***/ "./node_modules/webpack/buildin/global.js": +/*!***********************************!*\ + !*** (webpack)/buildin/global.js ***! + \***********************************/ +/*! no static exports found */ +/***/ (function(module, exports) { + +var g; + +// This works in non-strict mode +g = (function() { + return this; +})(); + +try { + // This works if eval is allowed (see CSP) + g = g || new Function("return this")(); +} catch (e) { + // This works if the window reference is available + if (typeof window === "object") g = window; +} + +// g can still be undefined, but nothing to do about it... +// We return undefined, instead of nothing here, so it's +// easier to handle this case. if(!global) { ...} + +module.exports = g; + + +/***/ }), + +/***/ "./src/css/main.styl": +/*!***************************!*\ + !*** ./src/css/main.styl ***! + \***************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +// extracted by mini-css-extract-plugin + +/***/ }), + +/***/ "./src/index.js": +/*!**********************!*\ + !*** ./src/index.js ***! + \**********************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; +/* WEBPACK VAR INJECTION */(function(global) {/** + * @fileoverview The entry file of fullcalendar + * @author NHN FE Development Lab + */ + + + +var util = __webpack_require__(/*! tui-code-snippet */ "tui-code-snippet"); +var Calendar = __webpack_require__(/*! ./js/factory/calendar */ "./src/js/factory/calendar.js"); + +__webpack_require__(/*! ./css/main.styl */ "./src/css/main.styl"); +__webpack_require__(/*! ./js/view/template/helper */ "./src/js/view/template/helper.js"); + +// for jquery +if (global.jQuery) { + global.jQuery.fn.tuiCalendar = function() { + var options, instance; + + var el = this.get(0); + var args = Array.prototype.slice.apply(arguments); + + if (el) { + options = util.pick(args, 0) || {}; + + instance = global.jQuery.data(el, 'tuiCalendar'); + + if (instance) { + if (typeof options === 'string' && instance[options]) { + return instance[options].apply(instance, args.slice(1)); + } + } else { + instance = new Calendar(el, options); + global.jQuery.data(el, 'tuiCalendar', instance); + } + } + + return this; + }; +} + +module.exports = Calendar; + +/* WEBPACK VAR INJECTION */}.call(this, __webpack_require__(/*! ./../node_modules/webpack/buildin/global.js */ "./node_modules/webpack/buildin/global.js"))) + +/***/ }), + +/***/ "./src/js/common/array.js": +/*!********************************!*\ + !*** ./src/js/common/array.js ***! + \********************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; +/** + * @fileoverview Utility module for array sort, binary search. + * @author NHN FE Development Lab + */ + + +var util = __webpack_require__(/*! tui-code-snippet */ "tui-code-snippet"); +var datetime = __webpack_require__(/*! ../common/datetime */ "./src/js/common/datetime.js"); + +/** + * A module for sorting array. + * @module array + */ + +/********** + * Search + **********/ + +/** + * search item index using binary search algorithm. + * + * the array must be sorted. + * @param {array} arr array to search. + * @param {(string|number|boolean)} search value to search. + * @param {function} [fn] iteratee for retrieve each element's value to search. + * @param {function} [compare] compare function for specific sort status. default is string ascending. + * @returns {number} The number of item index searched. return negative number when no exist that item. + * It can use insert index after Math.abs() + * @example + * + * var arr = [1, 3, 7, 11, 15, 23]; + * + * function sortNumber(a, b) { + * return a - b; + * } + * + * bsearch(arr, 15, null, sortNumber); // 4 + * bsearch(arr, 21, null, sortNumber); // -5 + * + * arr.splice(Math.abs(bsearch(arr, 21, null, sortNumber)), 0, 21); + * // [1, 2, 7, 11, 15, 21, 23] + */ +function bsearch(arr, search, fn, compare) { + var minIndex = 0, + maxIndex = arr.length - 1, + currentIndex, + value, + comp; + + compare = compare || stringASC; + + while (minIndex <= maxIndex) { + currentIndex = (minIndex + maxIndex) / 2 | 0; // Math.floor + value = fn ? fn(arr[currentIndex]) : arr[currentIndex]; + comp = compare(value, search); + + if (comp < 0) { + minIndex = currentIndex + 1; + } else if (comp > 0) { + maxIndex = currentIndex - 1; + } else { + return currentIndex; + } + } + + return ~maxIndex; +} + +/********** + * Compare Functions + **********/ + +/** + * compare function for array sort. + * + * sort array by ascending. + * @param {boolean} a The boolean to compare + * @param {boolean} b The boolean to compare. + * @returns {number} Result of comparison. + */ +function booleanASC(a, b) { + if (a !== b) { + return a ? -1 : 1; + } + + return 0; +} + +/** + * compare function for array sort. + * + * sort array by descending. + * @param {boolean} a The boolean to compare + * @param {boolean} b The boolean to compare. + * @returns {number} Result of comparison. + */ +function booleanDESC(a, b) { + if (a !== b) { + return a ? 1 : -1; + } + + return 0; +} + +/** + * compare function for array sort. + * + * sort array by number ascending. + * @param {number} _a The number to compare. + * @param {number} _b The number to compare. + * @returns {number} Result of comparison. + */ +function numberASC(_a, _b) { + var a = Number(_a), + b = Number(_b); + + return a - b; +} + +/** + * compare function for array sort. + * + * sort array by number descending. + * @param {number} _a The number to compare. + * @param {number} _b The number to compare. + * @returns {number} Result of comparison. + */ +function numberDESC(_a, _b) { + var a = Number(_a), + b = Number(_b); + + return b - a; +} + +/** + * compare function for array sort. + * + * sort array by string ascending + * @param {string} _a The string to compare. + * @param {string} _b The string to compare. + * @returns {number} Result of comparison. + */ +function stringASC(_a, _b) { + var a = String(_a), + b = String(_b); + + if (a > b) { + return 1; + } + if (a < b) { + return -1; + } + + return 0; +} + +/** + * compare function for array sort. + * + * sort array by string descending + * @param {string} _a The string to compare. + * @param {string} _b The string to compare. + * @returns {number} Result of comparison. + */ +function stringDESC(_a, _b) { + var a = String(_a), + b = String(_b); + + if (a > b) { + return -1; + } + if (a < b) { + return 1; + } + + return 0; +} + +/** + * compare function for array sort. + * + * sort array by string ascending with ignore case. + * @param {string} _a The string to compare. + * @param {string} _b The string to compare. + * @returns {number} Result of comparison. + */ +function stringASCIgnoreCase(_a, _b) { + var a = String(_a).toLowerCase(), + b = String(_b).toLowerCase(); + + if (a > b) { + return 1; + } + if (a < b) { + return -1; + } + + return 0; +} + +/** + * compare function for array sort. + * + * sort array by string descending with ignore case. + * @param {string} _a The string to compare. + * @param {string} _b The string to compare. + * @returns {number} Result of comparison. + */ +function stringDESCIgnoreCase(_a, _b) { + var a = String(_a).toLowerCase(), + b = String(_b).toLowerCase(); + + if (a > b) { + return -1; + } + if (a < b) { + return 1; + } + + return 0; +} + +/** + * Compare schedule models for sort. + * + * 1. all day schedule first. + * 2. early start. + * 3. longest duration. + * 4. early created. + * @param {Schedule|ScheduleViewModel} a The object schedule instance. + * @param {Schedule|ScheduleViewModel} b The object schedule instance. + * @returns {number} Result of comparison. + */ +function scheduleASC(a, b) { + var durationA, durationB; + var allDayCompare, startsCompare; + var modelA = a.valueOf(); + var modelB = b.valueOf(); + + allDayCompare = booleanASC(modelA.isAllDay || a.hasMultiDates, modelB.isAllDay || b.hasMultiDates); + + if (allDayCompare) { + return allDayCompare; + } + + startsCompare = datetime.compare(a.getStarts(), b.getStarts()); + + if (startsCompare) { + return startsCompare; + } + + durationA = a.duration(); + durationB = b.duration(); + + if (durationA < durationB) { + return 1; + } + if (durationA > durationB) { + return -1; + } + + return util.stamp(modelA) - util.stamp(modelB); +} + +module.exports = { + bsearch: bsearch, + compare: { + schedule: { + asc: scheduleASC + }, + bool: { + asc: booleanASC, + desc: booleanDESC + }, + num: { + asc: numberASC, + desc: numberDESC + }, + str: { + asc: stringASC, + desc: stringDESC, + ascIgnoreCase: stringASCIgnoreCase, + descIgnoreCase: stringDESCIgnoreCase + } + } +}; + + +/***/ }), + +/***/ "./src/js/common/autoScroll.js": +/*!*************************************!*\ + !*** ./src/js/common/autoScroll.js ***! + \*************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; +/* WEBPACK VAR INJECTION */(function(global) {/** + * @fileoverview Add autoscroll feature to elements that prevented text selection. + * @author NHN FE Development Lab + */ + + +var util = __webpack_require__(/*! tui-code-snippet */ "tui-code-snippet"); +var domevent = __webpack_require__(/*! ../common/domevent */ "./src/js/common/domevent.js"); +var domutil = __webpack_require__(/*! ../common/domutil */ "./src/js/common/domutil.js"); +var Point = __webpack_require__(/*! ../common/point */ "./src/js/common/point.js"); + +var SCROLL_INTERVAL = 30; +var SCROLL_MAX = 15; +var SCROLL_CLICK_INCREASED = 2; // In IE, the offset of the actual UI pixel when the scroll bar is clicked is offset. + +/** + * Add autoscroll feature to elements that prevented text selection. + * @constructor + * @param {HTMLElement} container - HTMLElement to add autoscroll features. + */ +function AutoScroll(container) { + /** + * @type {HTMLElement} + */ + this.container = container; + + /** + * @type {AutoScroll.DIRECTION} + */ + this._direction = AutoScroll.DIRECTION.INSIDE; + + /** + * @type {number} + */ + this._offset = 0; + + /** + * interval to scrolling + * @type {number} + */ + this._intervalID = 0; + + domevent.on(container, { + 'mousedown': this._onMouseDown + }, this); +} + +/** + * @enum + */ +AutoScroll.DIRECTION = { + INSIDE: 0, + TOP: 1, + RIGHT: 2, + BOTTOM: 3, + LEFT: 4 +}; + +/** + * Instance destroy method. + */ +AutoScroll.prototype.destroy = function() { + domevent.off(this.container, { + 'mousedown': this._onMouseDown, + 'mousemove': this._onMouseMove, + 'mouseup': this._onMouseUp + }, this); + + window.clearInterval(this._intervalID); + this._intervalID = this._direction = this.container = null; +}; + +/** + * Normalize ClientRect and calculate each position of edges. + * @param {ClientRect} clientRect - ClientRect object of element. + * @returns {object} edges. + */ +AutoScroll.prototype._getEdgePositions = function(clientRect) { + return { + top: clientRect.top, + right: clientRect.left + clientRect.width, + bottom: clientRect.bottom, + left: clientRect.left + }; +}; + +/** + * Get element real size ("real size" -> size without scrollbar) + * @param {HTMLElement} el - element want to know real size ("real size" -> size without scrollbar) + * @returns {number[]} real size [width, height] + */ +AutoScroll.prototype.getRealSize = function(el) { + var computed = domutil.getComputedStyle(el), + border, + padding; + + border = parseFloat(computed.getPropertyValue('border-top-width')) + + parseFloat(computed.getPropertyValue('border-bottom-width')); + padding = parseFloat(computed.getPropertyValue('padding-top')) + + parseFloat(computed.getPropertyValue('padding-bottom')); + + return [el.clientWidth + border + padding, el.clientHeight + border + padding]; +}; + +/** + * Check supplied element has scrollbar. + * @param {HTMLElement} el - element want to know has scrollbar. + * @returns {boolean[]} has scrollbar? [horizontal, vertical] + */ +AutoScroll.prototype.hasScrollbar = function(el) { + var realSize = this.getRealSize(el); + + return [ + el.offsetWidth > Math.ceil(realSize[0]), + el.offsetHeight > Math.ceil(realSize[1]) + ]; +}; + +/** + * @param {HTMLElement} el - element want to know. + * @param {MouseEvent} mouseEvent - mouse event object. + * @returns {boolean} mouse pointer is on the scrollbar? + */ +AutoScroll.prototype.isOnScrollbar = function(el, mouseEvent) { + var realSize = this.getRealSize(el), + pos = domevent.getMousePosition(mouseEvent, el), + mouseInScrollbar = false; + + mouseInScrollbar = (realSize[0] - SCROLL_CLICK_INCREASED < pos[0] || + realSize[1] - SCROLL_CLICK_INCREASED < pos[1]); + + return mouseInScrollbar; +}; + +/** + * MouseDown event handler + * @param {MouseEvent} mouseDownEvent - mouse down event + */ +AutoScroll.prototype._onMouseDown = function(mouseDownEvent) { + // only primary button can start drag. + if (domevent.getMouseButton(mouseDownEvent) !== 0) { + return; + } + + // deactivate autoscroll feature when mouse is on the scrollbar. (IE) + if (util.browser.msie && this.isOnScrollbar(this.container, mouseDownEvent)) { + return; + } + + window.clearInterval(this._intervalID); + this._intervalID = window.setInterval(this._onTick.bind(this), SCROLL_INTERVAL); + + domevent.on(global, { + 'mousemove': this._onMouseMove, + 'mouseup': this._onMouseUp + }, this); +}; + +/** + * MouseMove event handler + * @param {MouseEvent} mouseEvent - mouse move event object. + */ +AutoScroll.prototype._onMouseMove = function(mouseEvent) { + var edge = this._getEdgePositions(this.container.getBoundingClientRect()), + pos = Point.n(domevent.getMousePosition(mouseEvent)); + + if (pos.y >= edge.top && pos.y <= edge.bottom && + pos.x >= edge.left && pos.x <= edge.right) { + this._direction = AutoScroll.DIRECTION.INSIDE; + + return; + } + + if (pos.y < edge.top) { + this._direction = AutoScroll.DIRECTION.TOP; + this._offset = edge.top - pos.y; + + return; + } + + if (pos.y > edge.bottom) { + this._direction = AutoScroll.DIRECTION.BOTTOM; + this._offset = pos.y - edge.bottom; + + return; + } + + if (pos.x < edge.left) { + this._direction = AutoScroll.DIRECTION.LEFT; + this._offset = edge.left - pos.x; + + return; + } + + this._direction = AutoScroll.DIRECTION.RIGHT; + this._offset = pos.x - edge.right; +}; + +/** + * MouseUp event handler. + */ +AutoScroll.prototype._onMouseUp = function() { + window.clearInterval(this._intervalID); + this._intervalID = 0; + this._direction = AutoScroll.DIRECTION.INSIDE; + this._offset = 0; + + domevent.off(global, { + 'mousemove': this._onMouseMove, + 'mouseup': this._onMouseUp + }, this); +}; + +/** + * Interval tick event handler + */ +AutoScroll.prototype._onTick = function() { + var direction = this._direction, + container, + factor; + + if (!direction) { + return; + } + + container = this.container; + factor = Math.min(this._offset, SCROLL_MAX); + + switch (direction) { + case AutoScroll.DIRECTION.TOP: + container.scrollTop -= factor; + break; + case AutoScroll.DIRECTION.RIGHT: + container.scrollLeft += factor; + break; + case AutoScroll.DIRECTION.BOTTOM: + container.scrollTop += factor; + break; + default: + container.scrollLeft -= factor; + break; + } +}; + +module.exports = AutoScroll; + +/* WEBPACK VAR INJECTION */}.call(this, __webpack_require__(/*! ./../../../node_modules/webpack/buildin/global.js */ "./node_modules/webpack/buildin/global.js"))) + +/***/ }), + +/***/ "./src/js/common/collection.js": +/*!*************************************!*\ + !*** ./src/js/common/collection.js ***! + \*************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; +/** + * @fileoverview Common collections. + * @author NHN FE Development Lab + */ + + +var util = __webpack_require__(/*! tui-code-snippet */ "tui-code-snippet"); +var forEachProp = util.forEachOwnProperties, + forEachArr = util.forEachArray, + isFunc = util.isFunction, + isObj = util.isObject; + +var aps = Array.prototype.slice; + +/** + * Common collection. + * + * It need function for get model's unique id. + * + * if the function is not supplied then it use default function {@link Collection#getItemID} + * @constructor + * @param {function} [getItemIDFn] function for get model's id. + */ +function Collection(getItemIDFn) { + /** + * @type {object.} + */ + this.items = {}; + + /** + * @type {number} + */ + this.length = 0; + + if (isFunc(getItemIDFn)) { + /** + * @type {function} + */ + this.getItemID = getItemIDFn; + } +} + +/********** + * static props + **********/ + +/** + * Combind supplied function filters and condition. + * @param {...function} filters - function filters + * @returns {function} combined filter + */ +Collection.and = function(filters) { + var cnt; + + filters = aps.call(arguments); + cnt = filters.length; + + return function(item) { + var i = 0; + + for (; i < cnt; i += 1) { + if (!filters[i].call(null, item)) { + return false; + } + } + + return true; + }; +}; + +/********** + * prototype props + **********/ + +/** + * get model's unique id. + * @param {object} item model instance. + * @returns {number} model unique id. + */ +Collection.prototype.getItemID = function(item) { + return String(item._id); +}; + +/** + * add models. + * @param {...*} item models to add this collection. + */ +Collection.prototype.add = function(item) { + var self = this, + id, + ownItems; + + if (arguments.length > 1) { + forEachArr(aps.call(arguments), function(o) { + self.add(o); + }); + + return; + } + + id = this.getItemID(item); + ownItems = this.items; + + if (!ownItems[id]) { + this.length += 1; + } + ownItems[id] = item; +}; + +/** + * remove models. + * @param {...(object|string|number)} id model instance or unique id to delete. + * @returns {array} deleted model list. + */ +Collection.prototype.remove = function(id) { + var self = this, + removed = [], + ownItems, + itemToRemove; + + if (!this.length) { + return removed; + } + + if (arguments.length > 1) { + removed = util.map(aps.call(arguments), function(_id) { + return self.remove(_id); + }); + + return removed; + } + + ownItems = this.items; + + if (isObj(id)) { + id = this.getItemID(id); + } + + if (!ownItems[id]) { + return removed; + } + + this.length -= 1; + itemToRemove = ownItems[id]; + delete ownItems[id]; + + return itemToRemove; +}; + +/** + * remove all models in collection. + */ +Collection.prototype.clear = function() { + this.items = {}; + this.length = 0; +}; + +/** + * check collection has specific model. + * @param {(object|string|number|function)} id model instance or id or filter function to check + * @returns {boolean} is has model? + */ +Collection.prototype.has = function(id) { + var isFilter, + has; + + if (!this.length) { + return false; + } + + isFilter = isFunc(id); + has = false; + + if (isFilter) { + this.each(function(item) { + if (id(item) === true) { + has = true; + + return false; // returning false can stop this loop + } + + return true; + }); + } else { + id = isObj(id) ? this.getItemID(id) : id; + has = util.isExisty(this.items[id]); + } + + return has; +}; + +/** + * invoke callback when model exist in collection. + * @param {(string|number)} id model unique id. + * @param {function} fn the callback. + * @param {*} [context] callback context. + */ +Collection.prototype.doWhenHas = function(id, fn, context) { + var item = this.items[id]; + + if (!util.isExisty(item)) { + return; + } + + fn.call(context || this, item); +}; + +/** + * Search model. and return new collection. + * @param {function} filter filter function. + * @returns {Collection} new collection with filtered models. + * @example + * collection.find(function(item) { + * return item.edited === true; + * }); + * + * function filter1(item) { + * return item.edited === false; + * } + * + * function filter2(item) { + * return item.disabled === false; + * } + * + * collection.find(Collection.and(filter1, filter2)); + */ +Collection.prototype.find = function(filter) { + var result = new Collection(); + + if (this.hasOwnProperty('getItemID')) { + result.getItemID = this.getItemID; + } + + this.each(function(item) { + if (filter(item) === true) { + result.add(item); + } + }); + + return result; +}; + +/** + * Group element by specific key values. + * + * if key parameter is function then invoke it and use returned value. + * @param {(string|number|function|array)} key key property or getter function. + * if string[] supplied, create each collection before grouping. + * @param {function} [groupFunc] - function that return each group's key + * @returns {object.} grouped object + * @example + * + * // pass `string`, `number`, `boolean` type value then group by property value. + * collection.groupBy('gender'); // group by 'gender' property value. + * collection.groupBy(50); // group by '50' property value. + * + * // pass `function` then group by return value. each invocation `function` is called with `(item)`. + * collection.groupBy(function(item) { + * if (item.score > 60) { + * return 'pass'; + * } + * return 'fail'; + * }); + * + * // pass `array` with first arguments then create each collection before grouping. + * collection.groupBy(['go', 'ruby', 'javascript']); + * // result: { 'go': empty Collection, 'ruby': empty Collection, 'javascript': empty Collection } + * + * // can pass `function` with `array` then group each elements. + * collection.groupBy(['go', 'ruby', 'javascript'], function(item) { + * if (item.isFast) { + * return 'go'; + * } + * + * return item.name; + * }); + */ +Collection.prototype.groupBy = function(key, groupFunc) { + var result = {}, + collection, + baseValue, + keyIsFunc = isFunc(key), + getItemIDFn = this.getItemID; + + if (util.isArray(key)) { + util.forEachArray(key, function(k) { + result[String(k)] = new Collection(getItemIDFn); + }); + + if (!groupFunc) { + return result; + } + + key = groupFunc; + keyIsFunc = true; + } + + this.each(function(item) { + if (keyIsFunc) { + baseValue = key(item); + } else { + baseValue = item[key]; + + if (isFunc(baseValue)) { + baseValue = baseValue.apply(item); + } + } + + collection = result[baseValue]; + + if (!collection) { + collection = result[baseValue] = new Collection(getItemIDFn); + } + + collection.add(item); + }); + + return result; +}; + +/** + * Return single item in collection. + * + * Returned item is inserted in this collection firstly. + * @param {function} [filter] - function filter + * @returns {object} item. + */ +Collection.prototype.single = function(filter) { + var result, + useFilter = util.isFunction(filter); + + this.each(function(item) { + if (!useFilter) { + result = item; + + return false; // returning false can stop this loop + } + if (filter(item)) { + result = item; + + return false; // returning false can stop this loop + } + + return true; + }, this); + + return result; +}; + +/** + * sort a basis of supplied compare function. + * @param {function} compareFunction compareFunction + * @returns {array} sorted array. + */ +Collection.prototype.sort = function(compareFunction) { + var arr = []; + + this.each(function(item) { + arr.push(item); + }); + + if (isFunc(compareFunction)) { + arr = arr.sort(compareFunction); + } + + return arr; +}; + +/** + * iterate each model element. + * + * when iteratee return false then break the loop. + * @param {function} iteratee iteratee(item, index, items) + * @param {*} [context] context + */ +Collection.prototype.each = function(iteratee, context) { + forEachProp(this.items, iteratee, context || this); +}; + +/** + * return new array with collection items. + * @returns {array} new array. + */ +Collection.prototype.toArray = function() { + if (!this.length) { + return []; + } + + return util.map(this.items, function(item) { + return item; + }); +}; + +module.exports = Collection; + + +/***/ }), + +/***/ "./src/js/common/common.js": +/*!*********************************!*\ + !*** ./src/js/common/common.js ***! + \*********************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; +/** + * @fileoverview common/general utilities. + * @author NHN FE Development Lab + */ + + +var util = __webpack_require__(/*! tui-code-snippet */ "tui-code-snippet"); + +var domutil = __webpack_require__(/*! ../common/domutil */ "./src/js/common/domutil.js"), + Collection = __webpack_require__(/*! ../common/collection */ "./src/js/common/collection.js"); +var datetime = __webpack_require__(/*! ../common/datetime */ "./src/js/common/datetime.js"); + +/** + * Default schedule id getter for collection + * @param {Schedule} schedule - schedule instance + * @returns {string} schedule id + */ +function scheduleIDGetter(schedule) { + return schedule.cid(); +} + +module.exports = { + /** + * @returns {Collection} new collection for schedule models. + */ + createScheduleCollection: function() { + return new Collection(scheduleIDGetter); + }, + + /** + * Get ratio value. + * + * a : b = y : X; + * + * = + * + * X = (b * y) / a; + * @param {number} a - a + * @param {number} b - b + * @param {number} y - y + * @returns {number} ratio value + */ + ratio: function(a, b, y) { + // a : b = y : x; + return (b * y) / a; + }, + + /** + * Find nearest value from supplied params. + * @param {number} value - value to find. + * @param {array} nearest - nearest array. + * @returns {number} nearest value + */ + nearest: function(value, nearest) { + var diff = util.map(nearest, function(v) { + return Math.abs(value - v); + }), + nearestIndex = util.inArray(Math.min.apply(null, diff), diff); + + return nearest[nearestIndex]; + }, + + /** + * Mixin method. + * + * (extend methods except property name 'mixin') + * @param {object} from - mixin object. + * @param {object} to - object to mixin. + */ + mixin: function(from, to) { + util.extend(to.prototype, from); + }, + + /** + * Limit supplied value base on `minArr`, `maxArr` + * @param {number} value - value + * @param {array} minArr - min + * @param {array} maxArr - max + * @returns {number} limited value + */ + limit: function(value, minArr, maxArr) { + var v = Math.max.apply(null, [value].concat(minArr)); + v = Math.min.apply(null, [v].concat(maxArr)); + + return v; + }, + + /** + * Limit supplied date base on `min`, `max` + * @param {TZDate} date - date + * @param {TZDate} min - min + * @param {TZDate} max - max + * @returns {TZDate} limited value + */ + limitDate: function(date, min, max) { + if (date < min) { + return min; + } + if (date > max) { + return max; + } + + return date; + }, + + /** + * Max value with TZDate type for timezone calculation + * @param {TZDate} d1 - date 1 + * @param {TZDate} d2 - date 2 + * @returns {TZDate} + */ + maxDate: function(d1, d2) { + if (d1 > d2) { + return d1; + } + + return d2; + }, + + stripTags: function(str) { + return str.replace(/<([^>]+)>/ig, ''); + }, + + /** + * Get first value in 2-dimentional array. + * @param {Array.} arr2d - 2-dimentional array + * @returns {*} first value in 2d array + */ + firstIn2dArray: function(arr2d) { + return util.pick(arr2d, '0', '0'); + }, + + /** + * Get last value in 2-dimentional array. + * @param {Array.} arr2d - 2-dimentional array + * @returns {*} last value in 2d array + */ + lastIn2dArray: function(arr2d) { + var lastRow = arr2d.length - 1, + lastCol = arr2d[lastRow].length - 1; + + return util.pick(arr2d, lastRow, lastCol); + }, + + /** + * Set 'title' attribute for all elements that have exceeded content in + * container + * @param {string} selector - CSS selector {@see domutil#find} + * @param {HTMLElement} container - container element + * @param {boolean} force - force to apply + */ + setAutoEllipsis: function(selector, container, force) { + util.forEach(domutil.find(selector, container, true), function(el) { + if (force || el.offsetWidth < el.scrollWidth) { + el.setAttribute('title', domutil.getData(el, 'title')); + } + }); + }, + + /** + * Set the value at path of object. + * @param {object} object - the object to modify + * @param {string} path -the path of property to set + * @param {*} value - the value to set + */ + set: function(object, path, value) { + var names = path.split('.'); + var store = object; + + util.forEach(names, function(name, index) { + store[name] = store[name] || {}; + + if (index === names.length - 1) { + store[name] = value; + } else { + store = store[name]; + } + }); + }, + + /** + * shift a array + * @param {Array.} array - array + * @param {number} shift - positive or negative integer to shift + * @returns {Array.} shifted array + */ + shiftArray: function(array, shift) { + var length = Math.abs(shift); + var i; + + if (shift > 0) { + for (i = 0; i < length; i += 1) { + array.push(array.shift()); + } + } else if (shift < 0) { + for (i = 0; i < length; i += 1) { + array.unshift(array.pop()); + } + } + + return array; + }, + + /** + * take elements from array between start and end. + * @param {Array.} array - array + * @param {number} start - start index + * @param {number} end - end index + * @returns {Array.} + */ + takeArray: function(array, start, end) { + var length = array.length; + var rightCount = length - end; + var leftCount = start; + + // remove right + array.splice(end, rightCount); + // remove left + array.splice(0, leftCount); + + return array; + }, + + /** + * shift hours + * @param {number} hours - hours + * @param {number} shift - positive or negative integer to shift + * @returns {number} shifted hours + */ + shiftHours: function(hours, shift) { + if (shift > 0) { + hours = (hours + shift) % 24; + } else if (shift < 0) { + hours += shift; + hours = hours > 0 ? hours : 24 + hours; + } + + return hours; + }, + + /** + * Parse css value into number and units + * @param {string} cssValue - css value like '72px' + * @returns {Array} [number, unit] + */ + parseUnit: function(cssValue) { + var number = parseFloat(cssValue, 10); + var unit = cssValue.match(/[\d.\-+]*\s*(.*)/)[1] || ''; + + return [number, unit]; + }, + + find: function(array, iteratee, contextopt) { + var found; + + util.forEach(array, function(item) { + if (iteratee) { + found = iteratee(item); + } + + if (found) { + found = item; + + return false; + } + + return true; + }, contextopt); + + return found; + }, + + getScheduleChanges: function(schedule, propNames, data) { + var changes = {}; + var dateProps = ['start', 'end']; + + util.forEach(propNames, function(propName) { + if (dateProps.indexOf(propName) > -1) { + if (datetime.compare(schedule[propName], data[propName])) { + changes[propName] = data[propName]; + } + } else if (!util.isUndefined(data[propName]) && schedule[propName] !== data[propName]) { + changes[propName] = data[propName]; + } + }); + + return util.isEmpty(changes) ? null : changes; + } +}; + + +/***/ }), + +/***/ "./src/js/common/datetime.js": +/*!***********************************!*\ + !*** ./src/js/common/datetime.js ***! + \***********************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; +/* WEBPACK VAR INJECTION */(function(global) {/** + * @fileoverview datetime utility module + * @author NHN FE Development Lab + */ + + +var TZDate = __webpack_require__(/*! ./timezone */ "./src/js/common/timezone.js").Date, + dw = __webpack_require__(/*! ../common/dw */ "./src/js/common/dw.js"); +var util = __webpack_require__(/*! tui-code-snippet */ "tui-code-snippet"); +/* eslint-disable no-useless-escape */ +var dateFormatRx = /^(\d{4}[-|\/]*\d{2}[-|\/]*\d{2})\s?(\d{2}:\d{2}:\d{2})?$/; +var datetime, tokenFunc; + +var memo = { + millisecondsTo: {}, + millisecondsFrom: {} +}; + +tokenFunc = { + /** + * @param {TZDate} date date object. + * @returns {string} YYYYMMDD + */ + 'YYYYMMDD': function(date) { + return [ + date.getFullYear(), + datetime.leadingZero(date.getMonth() + 1, 2), + datetime.leadingZero(date.getDate(), 2) + ].join(''); + }, + /** + * @param {TZDate} date date object + * @returns {string} four digit year number + */ + 'YYYY': function(date) { + return String(date.getFullYear()); + }, + + /** + * @param {TZDate} date date object + * @returns {string} two digit month number + */ + 'MM': function(date) { + return datetime.leadingZero(date.getMonth() + 1, 2); + }, + + /** + * @param {TZDate} date date object + * @returns {string} two digit date number + */ + 'DD': function(date) { + return datetime.leadingZero(date.getDate(), 2); + }, + + /** + * @param {TZDate} date date object + * @returns {string} HH:mm + */ + 'HH:mm': function(date) { + var hour = date.getHours(), + minutes = date.getMinutes(); + + return datetime.leadingZero(hour, 2) + ':' + + datetime.leadingZero(minutes, 2); + }, + + /** + * @param {TZDate} date date object + * @returns {string} hh:mm + */ + 'hh:mm': function(date) { + var hour = date.getHours(); + var minutes = date.getMinutes(); + + if (hour > 12) { + hour = hour % 12; + } + + return datetime.leadingZero(hour, 2) + ':' + + datetime.leadingZero(minutes, 2); + }, + + /** + * @param {TZDate} date date object + * @returns {string} tt + */ + 'tt': function(date) { + var hour = date.getHours(); + + return hour < 12 ? 'am' : 'pm'; + } +}; + +datetime = { + /** + * The number of milliseconds one day. + * @type {number} + */ + MILLISECONDS_PER_DAY: 86400000, + + /** + * The number of milliseconds one hour. + * @type {number} + */ + MILLISECONDS_PER_HOUR: 3600000, + + /** + * The number of milliseconds one minutes. + * @type {number} + */ + MILLISECONDS_PER_MINUTES: 60000, + + /** + * The number of milliseconds 20 minutes for schedule min duration + * @type {number} + */ + MILLISECONDS_SCHEDULE_MIN_DURATION: 20 * 60000, + + /** + * convert milliseconds + * @param {string} type - type of value. + * @param {number} value - value to convert. + * @param {function} iteratee - iteratee function to use reduce. + * @returns {number} converted value. + */ + _convMilliseconds: function(type, value, iteratee) { + var conv = [24, 60, 60, 1000], + index = { + day: 0, + hour: 1, + minutes: 2, + seconds: 3 + }; + + if (!(type in index) || global.isNaN(value)) { + return false; + } + + return util.reduce([value].concat(conv.slice(index[type])), iteratee); + }, + + /** + * Convert milliseconds value to other type + * @param {type} type convert to type want to. support "day", "hour", + * "minutes", "seconds" only. + * @param {value} value - value to convert. + * @returns {number} converted value. + */ + millisecondsTo: function(type, value) { + var cache = memo.millisecondsTo, + key = type + value; + + if (cache[key]) { + return cache[key]; + } + + cache[key] = datetime._convMilliseconds(type, value, function(m, v) { + return m / v; + }); + + return cache[key]; + }, + + /** + * Convert value to milliseconds + * @param {type} type - type of supplied value. support "hour", "minutes", "seconds" only. + * @param {value} value - value to convert. + * @returns {number} converted value. + */ + millisecondsFrom: function(type, value) { + var cache = memo.millisecondsFrom, + key = type + value; + + if (cache[key]) { + return cache[key]; + } + + cache[key] = datetime._convMilliseconds(type, value, function(m, v) { + return m * v; + }); + + return cache[key]; + }, + + /** + * Convert hours to minutes + * @param {number} hours - hours + * @returns {number} minutes + */ + minutesFromHours: function(hours) { + return hours * 60; + }, + + /** + * Make date array from supplied paramters. + * @param {TZDate} start Start date. + * @param {TZDate} end End date. + * @param {number} step The number of milliseconds to use increment. + * @returns {TZDate[]} TZDate array. + */ + range: function(start, end, step) { + var startTime = start.getTime(); + var endTime = end.getTime(); + var cursor = startTime; + var date = dw(new TZDate(start)); + var result = []; + + while (cursor <= endTime && endTime >= date.d.getTime()) { + result.push(datetime.start(date.d)); + cursor = cursor + step; + date.addDate(1); + } + + return result; + }, + + /** + * Clone supplied date. + * @param {TZDate} date date object to clone. + * @returns {TZDate} Cloned date object + */ + clone: function(date) { + return new TZDate(date); + }, + + /** + * Compare two dates. + * + * when first date is latest then seconds then return -1. + * + * return +1 reverse, and return 0 is same. + * @param {TZDate} d1 Date object to compare. + * @param {TZDate} d2 Date object to compare. + * @returns {number} result of compare + */ + compare: function(d1, d2) { + var _d1 = d1.getTime(), + _d2 = d2.getTime(); + + if (_d1 < _d2) { + return -1; + } + if (_d1 > _d2) { + return 1; + } + + return 0; + }, + + /** + * @param {TZDate} d1 - date one + * @param {TZDate} d2 - date two + * @returns {boolean} is two date are same year, month? + */ + isSameMonth: function(d1, d2) { + return (d1.getFullYear() === d2.getFullYear() && + d1.getMonth() === d2.getMonth()); + }, + + /** + * @param {TZDate} d1 - date one + * @param {TZDate} d2 - date two + * @returns {boolean} is two date are same year, month, date? + */ + isSameDate: function(d1, d2) { + var sameMonth = datetime.isSameMonth(d1, d2); + + return sameMonth && (d1.getDate() === d2.getDate()); + }, + + /** + * Check supplied parameter is valid date object. + * @param {*} d Object to validate. + * @returns {boolean} return true when parameter is valid date object. + */ + isValid: function(d) { + if (d instanceof TZDate) { + return !window.isNaN(d.getTime()); + } + + return false; + }, + + /** + * convert non local date to UTC date. + * @param {TZDate} d Date to convert UTC. + * @returns {TZDate} The UTC Date. + */ + toUTC: function(d) { + var l = d.getTime(), + offset = datetime.millisecondsFrom('minutes', new Date().getTimezoneOffset()); + + return new TZDate(l + offset); + }, + + /** + * pad left zero characters. + * @param {number} number number value to pad zero. + * @param {number} length pad length to want. + * @returns {string} padded string. + */ + leadingZero: function(number, length) { + var zero = '', + i = 0; + + if (String(number).length > length) { + return String(number); + } + + for (; i < (length - 1); i += 1) { + zero += '0'; + } + + return (zero + number).slice(length * -1); + }, + + /** + * Convert date string to date object. + * + * Only listed below formats avaliable. + * + * - YYYYMMDD + * - YYYY/MM/DD + * - YYYY-MM-DD + * - YYYY/MM/DD HH:mm:SS + * - YYYY-MM-DD HH:mm:SS + * + * @param {string} str Formatted string. + * @param {number} [fixMonth=-1] - number for fix month calculating. + * @returns {(TZDate|boolean)} Converted Date object. when supplied str is not available then return false. + */ + parse: function(str, fixMonth) { + var separator, + matches = str.match(dateFormatRx), + ymd, + hms; + + if (util.isUndefined(fixMonth)) { + fixMonth = -1; + } + + if (!matches) { + return false; + } + + if (str.length > 8) { + // YYYY/MM/DD + // YYYY-MM-DD + // YYYY/MM/DD HH:mm:SS + // YYYY-MM-DD HH:mm:SS + separator = ~str.indexOf('/') ? '/' : '-'; + matches = matches.splice(1); + + ymd = matches[0].split(separator); + hms = matches[1] ? matches[1].split(':') : [0, 0, 0]; + } else { + // YYYYMMDD + matches = matches[0]; + ymd = [matches.substr(0, 4), matches.substr(4, 2), matches.substr(6, 2)]; + hms = [0, 0, 0]; + } + + return new TZDate().setWithRaw( + Number(ymd[0]), + Number(ymd[1]) + fixMonth, + Number(ymd[2]), + Number(hms[0]), + Number(hms[1]), + Number(hms[2]), + 0 + ); + }, + + /** + * Return date object from Date. + * @param {TZDate} date date + * @returns {object} Date object. + */ + raw: function(date) { + return { + y: date.getFullYear(), + M: date.getMonth(), + d: date.getDate(), + h: date.getHours(), + m: date.getMinutes(), + s: date.getSeconds(), + ms: date.getMilliseconds() + }; + }, + + /** + * Return 00:00:00 supplied date. + * @param {TZDate} date date. if undefined, use now. + * @returns {TZDate} start date. + */ + start: function(date) { + var d = date ? new TZDate(date) : new TZDate(); + d.setHours(0, 0, 0, 0); + + return d; + }, + + /** + * Return 23:59:59 supplied date. + * @param {TZDate} date date. if undefined, use now. + * @returns {TZDate} end date. + */ + end: function(date) { + var d = date ? new TZDate(date) : new TZDate(); + d.setHours(23, 59, 59, 0); + + return d; + }, + + /** + * Return formatted string as basis of supplied string. + * + * Supported Token Lists. + * + * - YYYY => 1988 + * - MM => 01 ~ 12 + * - DD => 01 ~ 31 + * - YYYYMMDD => 19880925 + * @param {TZDate} date String want to formatted. + * @param {string} format format str. + * @returns {string} Formatted date string. + */ + format: function(date, format) { + var result = format; + util.forEachOwnProperties(tokenFunc, function(converter, token) { + result = result.replace(token, converter(date)); + }); + + return result; + }, + + /** + * Get start date of specific month + * @param {TZDate} date - date to get start date + * @returns {TZDate} start date of supplied month + */ + startDateOfMonth: function(date) { + var startDate = new TZDate(date); + + startDate.setDate(1); + startDate.setHours(0, 0, 0, 0); + + return startDate; + }, + + /** + * Get end date of specific month + * @param {TZDate} date - date to get end date + * @returns {TZDate} end date of supplied month + */ + endDateOfMonth: function(date) { + var endDate = datetime.startDateOfMonth(date); + + endDate.setMonth(endDate.getMonth() + 1); + endDate.setDate(endDate.getDate() - 1); + endDate.setHours(23, 59, 59); + + return endDate; + }, + + /** + * Return 2-dimensional array month calendar + * + * dates that different month with given date are negative values + * @param {TZDate} month - date want to calculate month calendar + * @param {object} options - options + * @param {number} [options.startDayOfWeek=0] - start day of week + * @param {boolean} options.isAlways6Week - whether the number of weeks are always 6 + * @param {number} options.visibleWeeksCount visible weeks count + * @param {boolean} options.workweek - only show work week + * @param {function} [iteratee] - iteratee for customizing calendar object + * @returns {Array.} calendar 2d array + */ + arr2dCalendar: function(month, options, iteratee) { + var weekArr, + start, end, + startIndex, endIndex, + totalDate, afterDates, + cursor, week, + calendar = [], + startDayOfWeek = options.startDayOfWeek, + isAlways6Week = util.isUndefined(options.isAlways6Week) || options.isAlways6Week, + visibleWeeksCount = options.visibleWeeksCount, + workweek = options.workweek; + + if (visibleWeeksCount) { + start = new TZDate(month); + end = dw(new TZDate(month)); + end.addDate(7 * (visibleWeeksCount - 1)); + end = end.d; + } else { + start = datetime.startDateOfMonth(month); + end = datetime.endDateOfMonth(month); + } + + // create day number array by startDayOfWeek number + // 4 -> [4, 5, 6, 0, 1, 2, 3] + // 2 -> [2, 3, 4, 5, 6, 0, 1] + weekArr = util.range(startDayOfWeek, 7).concat(util.range(7)).slice(0, 7); + startIndex = util.inArray(start.getDay(), weekArr); + endIndex = util.inArray(end.getDay(), weekArr); + // free dates after last date of this month + afterDates = 7 - (endIndex + 1); + + if (visibleWeeksCount) { + totalDate = 7 * visibleWeeksCount; + } else { + totalDate = isAlways6Week ? (7 * 6) : (startIndex + end.getDate() + afterDates); + } + cursor = datetime.start(start).addDate(-startIndex); + // iteratee all dates to render + util.forEachArray(util.range(totalDate), function(i) { + var date; + + if (!(i % 7)) { + // group each date by week + week = calendar[i / 7] = []; + } + + date = datetime.start(cursor); + date = iteratee ? iteratee(date) : date; + if (!workweek || !datetime.isWeekend(date.getDay())) { + week.push(date); + } + + // add date + cursor.setDate(cursor.getDate() + 1); + }); + + return calendar; + }, + + /** + * Calculate grid left(%), width(%) by narrowWeekend, startDayOfWeek, workweek + * + * @param {number} days - day length of week + * @param {boolean} narrowWeekend - narrow weekend + * @param {number} startDayOfWeek - start day of week + * @param {boolean} workweek - only show work week + * @returns {Array} day, left, width + */ + getGridLeftAndWidth: function(days, narrowWeekend, startDayOfWeek, workweek) { + var limitDaysToApplyNarrowWeekend = 5; + var uniformWidth = 100 / days; + var wideWidth = days > limitDaysToApplyNarrowWeekend ? 100 / (days - 1) : uniformWidth; + var accumulatedWidth = 0; + var dates = util.range(startDayOfWeek, 7).concat(util.range(days)).slice(0, 7); + + if (workweek) { + dates = util.filter(dates, function(day) { + return !datetime.isWeekend(day); + }); + } + + narrowWeekend = workweek ? false : narrowWeekend; + + return util.map(dates, function(day) { + var model; + var width = narrowWeekend ? wideWidth : uniformWidth; + if (days > limitDaysToApplyNarrowWeekend && narrowWeekend && datetime.isWeekend(day)) { + width = wideWidth / 2; + } + + model = { + day: day, + width: width, + left: accumulatedWidth + }; + + accumulatedWidth += width; + + return model; + }); + }, + + /** + * Get that day is weekend + * @param {number} day number + * @returns {boolean} true if weekend or false + */ + isWeekend: function(day) { + return day === 0 || day === 6; + }, + + /** + * Whether date is between supplied dates with date value? + * @param {TZDate} d - target date + * @param {TZDate} d1 - from date + * @param {TZDate} d2 - to date + * @returns {boolean} is between? + */ + isBetweenWithDate: function(d, d1, d2) { + var format = 'YYYYMMDD'; + d = parseInt(datetime.format(d, format), 10); + d1 = parseInt(datetime.format(d1, format), 10); + d2 = parseInt(datetime.format(d2, format), 10); + + return d1 <= d && d <= d2; + }, + + isStartOfDay: function(d) { + return !datetime.compare(datetime.start(d), d); + }, + + convertStartDayToLastDay: function(d) { + var date = new TZDate(d); + if (datetime.isStartOfDay(d)) { + date.setDate(date.getDate() - 1); + date.setHours(23, 59, 59); + } + + return date; + }, + + getStartOfNextDay: function(d) { + var date = datetime.start(d); + date.setHours(24); + + return date; + }, + + getDateDifference: function(d1, d2) { + var time1 = new TZDate(d1.getFullYear(), d1.getMonth(), d1.getDate()).getTime(); + var time2 = new TZDate(d2.getFullYear(), d2.getMonth(), d2.getDate()).getTime(); + + return Math.round((time1 - time2) / datetime.MILLISECONDS_PER_DAY); + }, + + getHourDifference: function(d1, d2) { + var time1 = new TZDate(d1).getTime(); + var time2 = new TZDate(d2).getTime(); + + return Math.round((time1 - time2) / datetime.MILLISECONDS_PER_HOUR); + }, + + hasMultiDates: function(start, end) { + var diffDays = datetime.getDateDifference(start, end); + var diffHours = Math.abs(datetime.getHourDifference(start, end)); + var withinDay = Math.abs(diffDays) === 1 && diffHours < 24 && datetime.isStartOfDay(end); + + return !datetime.isSameDate(start, end) && !withinDay; + }, + + renderEnd: function(start, end) { + var diffDays = datetime.getDateDifference(start, end); + + return Math.abs(diffDays) >= 1 && datetime.isStartOfDay(end) ? + datetime.convertStartDayToLastDay(end) : + datetime.end(end); + } +}; + +module.exports = datetime; + +/* WEBPACK VAR INJECTION */}.call(this, __webpack_require__(/*! ./../../../node_modules/webpack/buildin/global.js */ "./node_modules/webpack/buildin/global.js"))) + +/***/ }), + +/***/ "./src/js/common/dirty.js": +/*!********************************!*\ + !*** ./src/js/common/dirty.js ***! + \********************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; +/** + * @fileoverview Dirty flagging module for objects. + * @author NHN FE Development Lab + */ + + +var common = __webpack_require__(/*! tui-code-snippet */ "tui-code-snippet"); +var existy = common.isExisty, + pick = common.pick, + isFunc = common.isFunction; + +/** + * Mixin module for dirty flagging on specific objects. + * @mixin + * @example + * var obj = { hello: 'good', test: '123' }; + * dirty.mixin(obj); + * + * obj.set('hello', 'world'); + * obj.isDirty(); // true + * obj.isPropChanged('hello'); // true + * obj.isPropChanged('test'); // false + * obj.dirty(false); + * + * obj.isDirty(); // false + * obj.isPropChanged('hello'); // false + */ +var dirty = { + /** + * Set property value with dirty flagging. + * @param {string} propName Property name. + * @param {*} value Proprty value. + */ + set: function(propName, value) { + var originValue = this[propName]; + + if (originValue === value) { + return; + } + + this[propName] = value; + + if (!this._changed) { + /** + * Save changed properties. + * @memberof dirty + * @name _changed + * @type {Object} + */ + this._changed = {}; + } + + this._changed[propName] = true; + + /** + * Dirty flag + * @type {Boolean} + * @name _dirty + * @memberof dirty + */ + this._dirty = true; + }, + + /** + * Check dirty flag. + * @returns {boolean} Property is changed. + */ + isDirty: function() { + return !!this._dirty; + }, + + /** + * Set dirty flag manually. + * @param {Boolean} [toDirty=true] This will set dirty flag directly. + */ + dirty: function(toDirty) { + toDirty = existy(toDirty) ? toDirty : true; + + /* istanbul ignore else */ + if (!toDirty) { + this._changed = {}; + } + + this._dirty = toDirty; + }, + + /** + * Delete property safety. + * @param {String} propName The name of property. + */ + deleteProp: function(propName) { + delete this[propName]; + + if (this._changed) { + delete this._changed[propName]; + } + }, + + /** + * Check the changes with specific property. + * @param {String} propName The name of property you want. + * @returns {boolean} Is property changed? + */ + isPropChanged: function(propName) { + if (!this._changed) { + return false; + } + + return this._changed[propName] === true; + }, + + /** + * Mixin to specific objects. + * @param {Object} target The object to mix this module. + * @memberof module:util/dirty + * @example + * function Animal() {} + * dirty.mixin(Animal.prototype); + */ + mixin: function(target) { + var methodFilterR = /(^_|mixin|wrap)/; + + common.forEachOwnProperties(dirty, function(o, k) { + if (!methodFilterR.test(k)) { + target[k] = dirty[k]; + } + }); + }, + + /** + * Wrapper method for dirty flagging. + * + * This method invoke after invoked specific method that added by you. + * + * The method want to add are must exist before add. + * @param {object} target Target object to method wrap. + * @param {(string|object)} methodName + * Method name to wrap or methodName: flag objects. + * @param {boolean} [flag=true] + * this will used to flagging by dirty flagger after invoke the methods added by you. + * @memberof module:util/dirty + * @example + * function Animal(name) { + * this.name = name; + * } + * Animal.prototype.growl = jasmine.createSpy('growl'); + * Animal.prototype.test = function() { + * return this.name; + * }; + * + * dirty.mixin(Animal.prototype); + * // single + * dirty.wrap(Animal.prototype, 'growl', true); + * // multiple + * dirty.wrap(Animap.prototype, { + * growl: true, + * test: false + * }); + * + */ + wrap: function(target, methodName, flag) { + var wrap = dirty.wrap, + fn; + + if (common.isObject(methodName)) { + common.forEachOwnProperties(methodName, function(_flag, _name) { + wrap(target, _name, _flag); + }); + + return; + } + + flag = existy(flag) ? flag : true; + + if (!target._wrapper) { + /** + * @param {function} _fn Original method to wrap. + * @param {boolean} flagToSet The boolean value to using dirty flagging. + * @returns {*} The result value of original method. + * @name _wrapper + * @memberof dirty + */ + target._wrapper = function(_fn, flagToSet) { + return function() { + var args = Array.prototype.slice.call(arguments); + var result = _fn.apply(this, args); // eslint-disable-line + this._dirty = flagToSet; // eslint-disable-line + + return result; + }; + }; + } + + if (existy(pick(target, methodName)) && + isFunc(target[methodName]) && + !existy(pick(target, methodName, '_wrapped'))) { + fn = target[methodName]; + target[methodName] = target._wrapper(fn, flag); + target[methodName]._wrapped = true; + } + } +}; + +module.exports = dirty; + + +/***/ }), + +/***/ "./src/js/common/domevent.js": +/*!***********************************!*\ + !*** ./src/js/common/domevent.js ***! + \***********************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; +/* eslint complexity: 0 */ +/** + * @fileoverview Utility module for handling DOM events. + * @author NHN FE Development Lab + */ + + +var util = __webpack_require__(/*! tui-code-snippet */ "tui-code-snippet"); +var eventKey = '_evt', + DRAG_START = ['touchstart', 'mousedown']; + +var domevent = { + /** + * Bind dom events. + * @param {HTMLElement} obj HTMLElement to bind events. + * @param {(string|object)} types Space splitted events names or eventName:handler object. + * @param {*} fn handler function or context for handler method. + * @param {*} [context] context object for handler method. + */ + on: function(obj, types, fn, context) { + if (util.isString(types)) { + util.forEach(types.split(' '), function(type) { + domevent._on(obj, type, fn, context); + }); + + return; + } + + util.forEachOwnProperties(types, function(handler, type) { + domevent._on(obj, type, handler, fn); + }); + }, + + /** + * DOM event binding. + * @param {HTMLElement} obj HTMLElement to bind events. + * @param {String} type The name of events. + * @param {*} fn handler function + * @param {*} [context] context object for handler method. + * @private + */ + _on: function(obj, type, fn, context) { + var id, + handler, + originHandler; + + id = type + util.stamp(fn) + (context ? '_' + util.stamp(context) : ''); + + if (obj[eventKey] && obj[eventKey][id]) { + return; + } + + handler = function(e) { + fn.call(context || obj, e || window.event); + }; + + originHandler = handler; + + if ('addEventListener' in obj) { + if (type === 'mouseenter' || type === 'mouseleave') { + handler = function(e) { + e = e || window.event; + if (!domevent._checkMouse(obj, e)) { + return; + } + originHandler(e); + }; + obj.addEventListener((type === 'mouseenter') ? + 'mouseover' : 'mouseout', handler, false); + } else { + if (type === 'mousewheel') { + obj.addEventListener('DOMMouseScroll', handler, false); + } + + obj.addEventListener(type, handler, false); + } + } else if ('attachEvent' in obj) { + obj.attachEvent('on' + type, handler); + } + + obj[eventKey] = obj[eventKey] || {}; + obj[eventKey][id] = handler; + }, + + /** + * Unbind DOM Event handler. + * @param {HTMLElement} obj HTMLElement to unbind. + * @param {(string|object)} types Space splitted events names or eventName:handler object. + * @param {*} fn handler function or context for handler method. + * @param {*} [context] context object for handler method. + */ + off: function(obj, types, fn, context) { + if (util.isString(types)) { + util.forEach(types.split(' '), function(type) { + domevent._off(obj, type, fn, context); + }); + + return; + } + + util.forEachOwnProperties(types, function(handler, type) { + domevent._off(obj, type, handler, fn); + }); + }, + + /** + * Unbind DOM event handler. + * @param {HTMLElement} obj HTMLElement to unbind. + * @param {String} type The name of event to unbind. + * @param {function()} fn Event handler that supplied when binding. + * @param {*} context context object that supplied when binding. + * @private + */ + _off: function(obj, type, fn, context) { + var id = type + util.stamp(fn) + (context ? '_' + util.stamp(context) : ''), + handler = obj[eventKey] && obj[eventKey][id]; + + if (!handler) { + return; + } + + if ('removeEventListener' in obj) { + if (type === 'mouseenter' || type === 'mouseleave') { + obj.removeEventListener((type === 'mouseenter') ? + 'mouseover' : 'mouseout', handler, false); + } else { + if (type === 'mousewheel') { + obj.removeEventListener('DOMMouseScroll', handler, false); + } + + obj.removeEventListener(type, handler, false); + } + } else if ('detachEvent' in obj) { + try { + obj.detachEvent('on' + type, handler); + } catch (e) {} //eslint-disable-line + } + + delete obj[eventKey][id]; + + if (util.keys(obj[eventKey]).length) { + return; + } + + delete obj[eventKey]; + }, + + /** + * Bind DOM event. this event will unbind after invokes. + * @param {HTMLElement} obj HTMLElement to bind events. + * @param {(string|object)} types Space splitted events names or eventName:handler object. + * @param {*} fn handler function or context for handler method. + * @param {*} [context] context object for handler method. + */ + once: function(obj, types, fn, context) { + var self = this; + + if (util.isObject(types)) { + util.forEachOwnProperties(types, function(handler, type) { + domevent.once(obj, type, handler, fn); + }); + + return; + } + + /** + * Handler for temporary usage for once implementation + */ + function onceHandler() { + fn.apply(context || obj, arguments); + self._off(obj, types, onceHandler, context); + } + + domevent.on(obj, types, onceHandler, context); + }, + + /** + * Cancel event bubbling. + * @param {Event} e Event object. + */ + stopPropagation: function(e) { + if (e.stopPropagation) { + e.stopPropagation(); + } else { + e.cancelBubble = true; + } + }, + + /** + * Cancel browser default actions. + * @param {Event} e Event object. + */ + preventDefault: function(e) { + if (e.preventDefault) { + e.preventDefault(); + } else { + e.returnValue = false; + } + }, + + /** + * Syntatic sugar of stopPropagation and preventDefault + * @param {Event} e Event object. + */ + stop: function(e) { + domevent.preventDefault(e); + domevent.stopPropagation(e); + }, + + /** + * Stop scroll events. + * @param {HTMLElement} el HTML element to prevent scroll. + */ + disableScrollPropagation: function(el) { + domevent.on(el, 'mousewheel MozMousePixelScroll', domevent.stopPropagation); + }, + + /** + * Stop all events related with click. + * @param {HTMLElement} el HTML element to prevent all event related with click. + */ + disableClickPropagation: function(el) { + domevent.on(el, DRAG_START.join(' ') + ' click dblclick', domevent.stopPropagation); + }, + + /** + * Get mouse position from mouse event. + * + * If supplied relatveElement parameter then return relative position based on element. + * @param {Event} mouseEvent Mouse event object + * @param {HTMLElement} relativeElement HTML element that calculate relative position. + * @returns {number[]} mouse position. + */ + getMousePosition: function(mouseEvent, relativeElement) { + var rect; + + if (!relativeElement) { + return [mouseEvent.clientX, mouseEvent.clientY]; + } + + rect = relativeElement.getBoundingClientRect(); + + return [ + mouseEvent.clientX - rect.left - relativeElement.clientLeft, + mouseEvent.clientY - rect.top - relativeElement.clientTop + ]; + }, + + /** + * Normalize mouse wheel event that different each browsers. + * @param {MouseEvent} e Mouse wheel event. + * @returns {Number} delta + */ + getWheelDelta: function(e) { + var delta = 0; + + if (e.wheelDelta) { + delta = e.wheelDelta / 120; + } + + if (e.detail) { + delta = -e.detail / 3; + } + + return delta; + }, + + /** + * prevent firing mouseleave event when mouse entered child elements. + * @param {HTMLElement} el HTML element + * @param {MouseEvent} e Mouse event + * @returns {Boolean} leave? + * @private + */ + _checkMouse: function(el, e) { + var related = e.relatedTarget; + + if (!related) { + return true; + } + + try { + while (related && (related !== el)) { + related = related.parentNode; + } + } catch (err) { + return false; + } + + return (related !== el); + }, + + /** + * Trigger specific events to html element. + * @param {HTMLElement} obj HTMLElement + * @param {string} type Event type name + * @param {object} [eventData] Event data + */ + trigger: function(obj, type, eventData) { + var rMouseEvent = /(mouse|click)/; + if (util.isUndefined(eventData) && rMouseEvent.exec(type)) { + eventData = domevent.mouseEvent(type); + } + + if (obj.dispatchEvent) { + obj.dispatchEvent(eventData); + } else if (obj.fireEvent) { + obj.fireEvent('on' + type, eventData); + } + }, + + /** + * Create virtual mouse event. + * + * Tested at + * + * - IE7 ~ IE11 + * - Chrome + * - Firefox + * - Safari + * @param {string} type Event type + * @param {object} [eventObj] Event data + * @returns {MouseEvent} Virtual mouse event. + */ + mouseEvent: function(type, eventObj) { + var evt, + e; + + e = util.extend({ + bubbles: true, + cancelable: (type !== 'mousemove'), + view: window, + wheelDelta: 0, + detail: 0, + screenX: 0, + screenY: 0, + clientX: 0, + clientY: 0, + ctrlKey: false, + altKey: false, + shiftKey: false, + metaKey: false, + button: 0, + relatedTarget: undefined // eslint-disable-line + }, eventObj); + + if (typeof document.createEvent === 'function') { + evt = document.createEvent('MouseEvents'); + evt.initMouseEvent(type, + e.bubbles, e.cancelable, e.view, e.detail, + e.screenX, e.screenY, e.clientX, e.clientY, + e.ctrlKey, e.altKey, e.shiftKey, e.metaKey, + e.button, document.body.parentNode + ); + } else if (document.createEventObject) { + evt = document.createEventObject(); + + util.forEach(e, function(value, propName) { + evt[propName] = value; + }, this); + evt.button = {0: 1, + 1: 4, + 2: 2}[evt.button] || evt.button; + } + + return evt; + }, + + /** + * Normalize mouse event's button attributes. + * + * Can detect which button is clicked by this method. + * + * Meaning of return numbers + * + * - 0: primary mouse button + * - 1: wheel button or center button + * - 2: secondary mouse button + * @param {MouseEvent} mouseEvent - The mouse event object want to know. + * @returns {number} - The value of meaning which button is clicked? + */ + getMouseButton: function(mouseEvent) { + var button, + primary = '0,1,3,5,7', + secondary = '2,6', + wheel = '4'; + + /* istanbul ignore else */ + if (document.implementation.hasFeature('MouseEvents', '2.0')) { + return mouseEvent.button; + } + + button = String(mouseEvent.button); + if (primary.indexOf(button) > -1) { + return 0; + } + if (secondary.indexOf(button) > -1) { + return 2; + } + if (~wheel.indexOf(button)) { + return 1; + } + + return -1; + }, + + /** + * Get target from event object + * + * @param {Event} event - The event object + * @returns {object} - The event target object + */ + getEventTarget: function(event) { + return event.target || event.srcElement; + } +}; + +module.exports = domevent; + + +/***/ }), + +/***/ "./src/js/common/domutil.js": +/*!**********************************!*\ + !*** ./src/js/common/domutil.js ***! + \**********************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; +/* eslint complexity: 0, no-shadow: 0, max-nested-callbacks: 0 */ +/** + * @fileoverview Utility modules for manipulate DOM elements. + * @author NHN FE Development Lab + */ + + +var domevent = __webpack_require__(/*! ./domevent */ "./src/js/common/domevent.js"); +var Collection = __webpack_require__(/*! ./collection */ "./src/js/common/collection.js"); +var util = __webpack_require__(/*! tui-code-snippet */ "tui-code-snippet"); + +var posKey = '_pos', + domutil; + +var CSS_AUTO_REGEX = /^auto$|^$|%/; + +/** + * Trim leading, trailing whitespace + * @param {string} str - string to trim + * @returns {string} trimmed string + */ +function trim(str) { + return str.replace(/^\s\s*/, '').replace(/\s\s*$/, ''); +} + +domutil = { + /** + * Create DOM element and return it. + * @param {string} tagName Tag name to append. + * @param {HTMLElement} [container] HTML element will be parent to created element. + * if not supplied, will use **document.body** + * @param {string} [className] Design class names to appling created element. + * @returns {HTMLElement} HTML element created. + */ + appendHTMLElement: function(tagName, container, className) { + var el; + + className = className || ''; + + el = document.createElement(tagName); + el.className = className; + + if (container) { + container.appendChild(el); + } else { + document.body.appendChild(el); + } + + return el; + }, + + /** + * Remove element from parent node. + * @param {HTMLElement} el - element to remove. + */ + remove: function(el) { + if (el && el.parentNode) { + el.parentNode.removeChild(el); + } + }, + + /** + * Get element by id + * @param {string} id element id attribute + * @returns {HTMLElement} element + */ + get: function(id) { + return document.getElementById(id); + }, + + /** + * Check supplied element is matched selector. + * @param {HTMLElement} el - element to check + * @param {string} selector - selector string to check + * @returns {boolean} match? + */ + _matcher: function(el, selector) { + var cssClassSelector = /^\./, + idSelector = /^#/; + + if (cssClassSelector.test(selector)) { + return domutil.hasClass(el, selector.replace('.', '')); + } + if (idSelector.test(selector)) { + return el.id === selector.replace('#', ''); + } + + return el.nodeName.toLowerCase() === selector.toLowerCase(); + }, + + /** + * Find DOM element by specific selectors. + * below three selector only supported. + * + * 1. css selector + * 2. id selector + * 3. nodeName selector + * @param {string} selector selector + * @param {(HTMLElement|string)} [root] You can assign root element to find + * if not supplied, document.body will use. + * @param {boolean|function} [multiple=false] - set true then return all + * elements that meet condition, if set function then use it filter function. + * @returns {HTMLElement} HTML element finded. + */ + find: function(selector, root, multiple) { + var result = [], + found = false, + isFirst = util.isUndefined(multiple) || multiple === false, + isFilter = util.isFunction(multiple); + + if (util.isString(root)) { + root = domutil.get(root); + } + + root = root || window.document.body; + + /** + * Function for recursive find specific node + * @param {HTMLElement} el - element to search + * @param {string} selector - selector + */ + function recurse(el, selector) { + var childNodes = el.childNodes, + i = 0, + len = childNodes.length, + cursor; + + for (; i < len; i += 1) { + cursor = childNodes[i]; + + if (cursor.nodeName === '#text') { + continue; + } + + if (domutil._matcher(cursor, selector)) { + if ((isFilter && multiple(cursor)) || !isFilter) { + result.push(cursor); + } + + if (isFirst) { + found = true; + break; + } + } else if (cursor.childNodes.length > 0) { + recurse(cursor, selector); + if (found) { + break; + } + } + } + } + + recurse(root, selector); + + return isFirst ? (result[0] || null) : result; + }, + + /** + * Find parent element recursively. + * @param {HTMLElement} el - base element to start find. + * @param {string} selector - selector string for find + * @param {boolean} excludeEl - exclude the base element to find + * @returns {HTMLElement} - element finded or null. + */ + closest: function(el, selector, excludeEl) { + var parent; + + if (!el) { + return null; + } + + parent = el.parentNode; + + if (!excludeEl && domutil._matcher(el, selector)) { + return el; + } + + while (parent && parent !== window.document.body) { + if (domutil._matcher(parent, selector)) { + return parent; + } + + parent = parent.parentNode; + } + + return null; + }, + + /** + * Return texts inside element. + * @param {HTMLElement} el target element + * @returns {string} text inside node + */ + text: function(el) { + var ret = '', + i = 0, + nodeType = el.nodeType; + + if (nodeType) { + if (nodeType === 1 || nodeType === 9 || nodeType === 11) { + // nodes that available contain other nodes + if (typeof el.textContent === 'string') { + return el.textContent; + } + + for (el = el.firstChild; el; el = el.nextSibling) { + ret += domutil.text(el); + } + } else if (nodeType === 3 || nodeType === 4) { + // TEXT, CDATA SECTION + return el.nodeValue; + } + } else { + for (; el[i]; i += 1) { + ret += domutil.text(el[i]); + } + } + + return ret; + }, + + /** + * Set data attribute to target element + * @param {HTMLElement} el - element to set data attribute + * @param {string} key - key + * @param {string|number} data - data value + */ + setData: function(el, key, data) { + if ('dataset' in el) { + el.dataset[key] = data; + + return; + } + + el.setAttribute('data-' + key, data); + }, + + /** + * Get data value from data-attribute + * @param {HTMLElement} el - target element + * @param {string} key - key + * @returns {string} value + */ + getData: function(el, key) { + if ('dataset' in el) { + return el.dataset[key]; + } + + return el.getAttribute('data-' + key); + }, + + /** + * Check element has specific design class name. + * @param {HTMLElement} el target element + * @param {string} name css class + * @returns {boolean} return true when element has that css class name + */ + hasClass: function(el, name) { + var className; + + if (!util.isUndefined(el.classList)) { + return el.classList.contains(name); + } + + className = domutil.getClass(el); + + return className.length > 0 && new RegExp('(^|\\s)' + name + '(\\s|$)').test(className); + }, + + /** + * Add design class to HTML element. + * @param {HTMLElement} el target element + * @param {string} name css class name + */ + addClass: function(el, name) { + var className; + + if (!util.isUndefined(el.classList)) { + util.forEachArray(name.split(' '), function(value) { + el.classList.add(value); + }); + } else if (!domutil.hasClass(el, name)) { + className = domutil.getClass(el); + domutil.setClass(el, (className ? className + ' ' : '') + name); + } + }, + + /** + * + * Overwrite design class to HTML element. + * @param {HTMLElement} el target element + * @param {string} name css class name + */ + setClass: function(el, name) { + if (util.isUndefined(el.className.baseVal)) { + el.className = name; + } else { + el.className.baseVal = name; + } + }, + + /** + * Element에 cssClass속성을 ì œê±°í•˜ëŠ” 메서드 + * Remove specific design class from HTML element. + * @param {HTMLElement} el target element + * @param {string} name class name to remove + */ + removeClass: function(el, name) { + var removed = ''; + + if (!util.isUndefined(el.classList)) { + el.classList.remove(name); + } else { + removed = (' ' + domutil.getClass(el) + ' ').replace(' ' + name + ' ', ' '); + domutil.setClass(el, trim(removed)); + } + }, + + /** + * Get HTML element's design classes. + * @param {HTMLElement} el target element + * @returns {string} element css class name + */ + getClass: function(el) { + if (!el || !el.className) { + return ''; + } + + return util.isUndefined(el.className.baseVal) ? el.className : el.className.baseVal; + }, + + /** + * Get specific CSS style value from HTML element. + * @param {HTMLElement} el target element + * @param {string} style css attribute name + * @returns {(string|null)} css style value + */ + getStyle: function(el, style) { + var value = el.style[style] || (el.currentStyle && el.currentStyle[style]), + css; + + if ((!value || value === 'auto') && document.defaultView) { + css = document.defaultView.getComputedStyle(el, null); + value = css ? css[style] : null; + } + + return value === 'auto' ? null : value; + }, + + /** + * get element's computed style values. + * + * in lower IE8. use polyfill function that return object. it has only one function 'getPropertyValue' + * @param {HTMLElement} el - element want to get style. + * @returns {object} virtual CSSStyleDeclaration object. + */ + getComputedStyle: function(el) { + var defaultView = document.defaultView; + + if (!defaultView || !defaultView.getComputedStyle) { + return { + getPropertyValue: function(prop) { + /* eslint-disable no-useless-escape */ + var re = /(\-([a-z]){1})/g; + if (prop === 'float') { + prop = 'styleFloat'; + } + + if (re.test(prop)) { + prop = prop.replace(re, function() { + return arguments[2].toUpperCase(); + }); + } + + return el.currentStyle[prop] || null; + } + }; + } + + return document.defaultView.getComputedStyle(el); + }, + + /** + * Set position CSS style. + * @param {HTMLElement} el target element + * @param {number} [x=0] left pixel value. + * @param {number} [y=0] top pixel value. + */ + setPosition: function(el, x, y) { + x = util.isUndefined(x) ? 0 : x; + y = util.isUndefined(y) ? 0 : y; + + el[posKey] = [x, y]; + + el.style.left = util.isNumber(x) ? (x + 'px') : x; + el.style.top = util.isNumber(y) ? (y + 'px') : y; + }, + + /** + * Set position CSS style with left, top, right, bottom + * @param {HTMLElement} el target element + * @param {object} ltrb object of left, top, right, bottom + * @param {number} [ltrb.left] left pixel value. + * @param {number} [ltrb.top] top pixel value. + * @param {number} [ltrb.right] right pixel value. + * @param {number} [ltrb.bottom] bottom pixel value. + */ + setLTRB: function(el, ltrb) { + var props = ['left', 'top', 'right', 'bottom']; + var value; + props.forEach(function(prop) { + value = util.isUndefined(ltrb[prop]) ? '' : ltrb[prop]; + el.style[prop] = util.isNumber(value) ? (value + 'px') : value; + }); + }, + + /** + * Get position from HTML element. + * @param {HTMLElement} el target element + * @param {boolean} [clear=false] clear cache before calculating position. + * @returns {number[]} point + */ + getPosition: function(el, clear) { + var left, + top, + bound; + + if (clear) { + el[posKey] = null; + } + + if (el[posKey]) { + return el[posKey]; + } + + left = 0; + top = 0; + + if ((CSS_AUTO_REGEX.test(el.style.left) || CSS_AUTO_REGEX.test(el.style.top)) && + 'getBoundingClientRect' in el) { + // When the element's left or top is 'auto' + bound = el.getBoundingClientRect(); + + left = bound.left; + top = bound.top; + } else { + left = parseFloat(el.style.left || 0); + top = parseFloat(el.style.top || 0); + } + + return [left, top]; + }, + + /** + * Return element's size + * @param {HTMLElement} el target element + * @returns {number[]} width, height + */ + getSize: function(el) { + var bound, + width = domutil.getStyle(el, 'width'), + height = domutil.getStyle(el, 'height'); + + if ((CSS_AUTO_REGEX.test(width) || CSS_AUTO_REGEX.test(height) || + util.isNull(width) || util.isNull(height)) && + 'getBoundingClientRect' in el) { + bound = el.getBoundingClientRect(); + width = bound.width || el.offsetWidth; + height = bound.height || el.offsetHeight; + } else { + width = parseFloat(width || 0); + height = parseFloat(height || 0); + } + + return [width, height]; + }, + + /** + * Fallback of getBoundingClientRect + * @param {HTMLElement} el - element + * @returns {object} rect + */ + getBCRect: function(el) { + var rect = el.getBoundingClientRect(); + + rect = util.extend({ + width: el.offsetWidth, + height: el.offsetHeight + }, rect); + + return rect; + }, + + /** + * Check specific CSS style is available. + * @param {array} props property name to testing + * @returns {(string|boolean)} return true when property is available + * @example + * var props = ['transform', '-webkit-transform']; + * domutil.testProp(props); // 'transform' + */ + testProp: function(props) { + var style = document.documentElement.style, + i = 0, + len = props.length; + + for (; i < len; i += 1) { + if (props[i] in style) { + return props[i]; + } + } + + return false; + }, + + /** + * Get form data + * @param {HTMLFormElement} formElement - form element to extract data + * @returns {object} form data + */ + getFormData: function(formElement) { + var groupedByName = new Collection(function() { + return this.length; + }), + noDisabledFilter = function(el) { + return !el.disabled; + }, + output = {}; + + groupedByName.add.apply( + groupedByName, + domutil.find('input', formElement, noDisabledFilter) + .concat(domutil.find('select', formElement, noDisabledFilter)) + .concat(domutil.find('textarea', formElement, noDisabledFilter)) + ); + + groupedByName = groupedByName.groupBy(function(el) { + return (el && el.getAttribute('name')) || '_other'; + }); + + util.forEach(groupedByName, function(elements, name) { + if (name === '_other') { + return; + } + + elements.each(function(el) { + var nodeName = el.nodeName.toLowerCase(), + type = el.type, + result = []; + + if (type === 'radio') { + result = [elements.find(function(el) { + return el.checked; + }).toArray().pop()]; + } else if (type === 'checkbox') { + result = elements.find(function(el) { + return el.checked; + }).toArray(); + } else if (nodeName === 'select') { + elements.find(function(el) { + return !!el.childNodes.length; + }).each(function(el) { + result = result.concat( + domutil.find('option', el, function(opt) { + return opt.selected; + }) + ); + }); + } else { + result = elements.find(function(el) { + return el.value !== ''; + }).toArray(); + } + + result = util.map(result, function(el) { + return el.value; + }); + + if (!result.length) { + result = ''; + } else if (result.length === 1) { + result = result[0]; + } + + output[name] = result; + }); + }); + + return output; + } +}; + +/* eslint-disable */ +var userSelectProperty = domutil.testProp([ + 'userSelect', + 'WebkitUserSelect', + 'OUserSelect', + 'MozUserSelect', + 'msUserSelect' +]); +var supportSelectStart = 'onselectstart' in document; +var prevSelectStyle = ''; + +/* eslint-enable */ + +/** + * Disable browser's text selection behaviors. + * @method + */ +domutil.disableTextSelection = (function() { + if (supportSelectStart) { + return function(dom, onSelectstartHandler) { + domevent.on(dom, 'selectstart', onSelectstartHandler || domevent.preventDefault); + }; + } + + return function(dom) { + var style = dom.style; + prevSelectStyle = style[userSelectProperty]; + style[userSelectProperty] = 'none'; + }; +})(); + +/** + * Enable browser's text selection behaviors. + * @method + */ +domutil.enableTextSelection = (function() { + if (supportSelectStart) { + return function(dom, onSelectstartHandler) { + domevent.off(window, 'selectstart', onSelectstartHandler || domevent.preventDefault); + }; + } + + return function() { + document.documentElement.style[userSelectProperty] = prevSelectStyle; + }; +})(); + +/** + * Disable browser's image drag behaviors. + */ +domutil.disableImageDrag = function() { + domevent.on(window, 'dragstart', domevent.preventDefault); +}; + +/** + * Enable browser's image drag behaviors. + */ +domutil.enableImageDrag = function() { + domevent.off(window, 'dragstart', domevent.preventDefault); +}; + +module.exports = domutil; + + +/***/ }), + +/***/ "./src/js/common/dw.js": +/*!*****************************!*\ + !*** ./src/js/common/dw.js ***! + \*****************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; +/** + * @fileoverview Wrapper module for easy calc date object + * @author NHN FE Development Lab + */ + + +var TZDate = __webpack_require__(/*! ./timezone */ "./src/js/common/timezone.js").Date; + +/** + * @constructor + * @param {TZDate} date to wrapping DW class + */ +function DW(date) { + if (!(this instanceof DW)) { + return new DW(date); + } + + if (!(date instanceof TZDate)) { + date = new TZDate(date); + } + + /** + * @type {TZDate} + */ + this.d = date; +} + +/** + * Return d property when supplied object is DW. else return itself + * @param {*} obj - object + * @returns {TZDate} date + */ +DW.prototype.safe = function(obj) { + if (obj.constructor === DW) { + return obj.d; + } + + return obj; +}; + +/** + * Clone DW object + * @returns {DW} cloned dwrap object + */ +DW.prototype.clone = function() { + return new DW(new TZDate(this.d)); +}; + +/** + * Add days + * @param {number} day - day to add + * @returns {DW} wrapper object + */ +DW.prototype.addDate = function(day) { + this.d.setDate(this.d.getDate() + day); + + return this; +}; + +/** + * Add month. + * @param {number} m - month to add + * @returns {DW} wrapper object + */ +DW.prototype.addMonth = function(m) { + var currentMonth = this.d.getMonth(); + var currentDay = this.d.getDate(); + var leapYear = this._isLeapYear(); + var targetMonth = currentMonth + m; + var clone = this.clone(); + var targetDaysOfMonth = currentDay; + + if (m) { + if (targetMonth === 1) { + targetDaysOfMonth = leapYear ? 29 : 28; + } else { + if (m > 0) { + clone.d.setMonth(targetMonth + 1, 0); + } else { + clone.d.setMonth(currentMonth, 0); + } + targetDaysOfMonth = clone.d.getDate(); + } + } + + this.d.setMonth(targetMonth, Math.min(currentDay, targetDaysOfMonth)); + + return this; +}; + +/** + * Is leap year or not + * @returns {boolean} + */ +DW.prototype._isLeapYear = function() { + var year = this.d.getFullYear(); + + return ((year % 4 === 0) && (year % 100 !== 0)) || !(year % 400); +}; + +/** + * Set hour, minutes, seconds, milliseconds + * @param {number} h - hours + * @param {number} m - minutes + * @param {number} s - seconds + * @param {number} ms - milliseconds + * @returns {DW} wrapper object + */ +DW.prototype.setHours = function(h, m, s, ms) { + this.d.setHours(h, m, s, ms); + + return this; +}; + +/** + * Whether date is between supplied dates? + * @param {TZDate|DW} d1 - from date + * @param {TZDate|DW} d2 - to date + * @returns {boolean} is between? + */ +DW.prototype.isBetween = function(d1, d2) { + var safe = this.safe; + + return safe(d1) <= this.d && this.d <= safe(d2); +}; + +module.exports = DW; + + +/***/ }), + +/***/ "./src/js/common/floatingLayer.js": +/*!****************************************!*\ + !*** ./src/js/common/floatingLayer.js ***! + \****************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; +/** + * @fileoverview Floating layer module + * @author NHN FE Development Lab + */ + + +var util = __webpack_require__(/*! tui-code-snippet */ "tui-code-snippet"); +var config = __webpack_require__(/*! ../config */ "./src/js/config.js"), + domutil = __webpack_require__(/*! ../common/domutil */ "./src/js/common/domutil.js"), + View = __webpack_require__(/*! ../view/view */ "./src/js/view/view.js"); + +/** + * @constructor + * @extends {View} + * @param {object} options - options for floating layer module + * @param {HTMLElement} container - parent continer for floating layer + */ +function FloatingLayer(options, container) { + var sibling = container[FloatingLayer.PROP_KEY], + layerContainer; + + if (!sibling) { + sibling = container[FloatingLayer.PROP_KEY] = []; + } + + sibling.push(this); + + /** + * @type {Collection} + */ + this.sibling = sibling; + + /** + * @type {number} + */ + this.zIndex = this.getLargestZIndex() || FloatingLayer.INIT_ZINDEX; + + layerContainer = document.createElement('div'); + layerContainer.style.display = 'none'; + layerContainer.style.position = 'absolute'; + domutil.addClass(layerContainer, config.classname('floating-layer')); + container.appendChild(layerContainer); + + View.call(this, layerContainer); + + /** + * @type {HTMLElement} + */ + this.parent = container; +} + +util.inherit(FloatingLayer, View); + +/** + * @const + */ +FloatingLayer.PROP_KEY = '__fe_floating_layer'; + +/** + * @const + */ +FloatingLayer.INIT_ZINDEX = 999; + +/** + * Destroy floating layer instance. if there no instnace in parent container + * + * remove instance cache property in container element + */ +FloatingLayer.prototype.destroy = function() { + var parent = this.parent, + sibling = this.sibling, + i = 0, cnt = sibling.length; + + for (; i < cnt; i += 1) { + if (sibling[i] === this) { + sibling.splice(i, 1); + break; + } + } + + if (!sibling.length) { + try { + delete parent[FloatingLayer.PROP_KEY]; + } catch (e) { + parent[FloatingLayer.PROP_KEY] = null; + } + + parent.style.position = ''; + } + + domutil.remove(this.container); + + this.sibling = null; + + View.prototype.destroy.call(this); +}; + +/** + * @returns {boolean} whether layer is visible? + */ +FloatingLayer.prototype.isVisible = function() { + return this.container.style.display !== 'none'; +}; + +/** + * Set layer position + * @param {number} x - x coordinate of layer + * @param {number} y - y coordinate of layer + */ +FloatingLayer.prototype.setPosition = function(x, y) { + domutil.setPosition(this.container, x, y); +}; + +/** + * Set layer left, top, right, bottom position + * @param {object} ltrb object of left, top, right, bottom + * @param {number} [ltrb.left] left pixel value. + * @param {number} [ltrb.top] top pixel value. + * @param {number} [ltrb.right] right pixel value. + * @param {number} [ltrb.bottom] bottom pixel value. + */ +FloatingLayer.prototype.setLTRB = function(ltrb) { + domutil.setLTRB(this.container, ltrb); +}; + +/** + * Set layer size + * @param {number|string} w - layer width + * @param {number|string} h - layer height + */ +FloatingLayer.prototype.setSize = function(w, h) { + var container = this.container; + + w = util.isNumber(w) ? w + 'px' : w; + h = util.isNumber(h) ? h + 'px' : h; + + container.style.width = w; + container.style.height = h; +}; + +/** + * Set layer content + * @param {string} html - html string + */ +FloatingLayer.prototype.setContent = function(html) { + this.container.innerHTML = html; +}; + +/** + * Get largest z-index from sibling layers + * @returns {number} largest z-index value + */ +FloatingLayer.prototype.getLargestZIndex = function() { + var zIndexes = util.map(this.sibling, function(layer) { + return layer.zIndex; + }); + + return Math.max.apply(null, zIndexes); +}; + +/** + * Set focus to layer + */ +FloatingLayer.prototype.focus = function() { + var zIndexForShow = this.getLargestZIndex() + 1; + this.container.style.zIndex = this.zIndex = zIndexForShow; +}; + +/** + * Show layer + */ +FloatingLayer.prototype.show = function() { + this.focus(); + this.container.style.display = 'block'; +}; + +/** + * Hide layer + */ +FloatingLayer.prototype.hide = function() { + this.container.style.display = 'none'; +}; + +module.exports = FloatingLayer; + + +/***/ }), + +/***/ "./src/js/common/intlUtil.js": +/*!***********************************!*\ + !*** ./src/js/common/intlUtil.js ***! + \***********************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; +/* WEBPACK VAR INJECTION */(function(global) { + +var util = __webpack_require__(/*! tui-code-snippet */ "tui-code-snippet"); +var intlFormatter = {}; +var intlUtil; + +var typeToPos = { + year: 0, + month: 1, + day: 2, + hour: 3, + minute: 4, + second: 5 +}; + +/** + * Extract date tokens (y, M, d, h, m, s) using the formatToParts() method. + * @param {Intl.DateTimeFormat} dtf - Intl.DateTimeFormat instance + * @param {Date} date - date object + * @returns {Array.} An array of objects only containing the formatted date + */ +function parseOffset(dtf, date) { + var formatted = dtf.formatToParts(date); + var filled = []; + var formattedLength = formatted.length; + var i, pos; + + for (i = 0; i < formattedLength; i += 1) { + pos = typeToPos[formatted[i].type]; + + if (!util.isUndefined(pos)) { + filled[pos] = parseInt(formatted[i].value, 10); + } + } + + return filled; +} + +/** + * The time zone offset is calculated from the difference between the current time and the time in a specific time zone. + * @param {Array.} parts - An array of objects only containing the formatted date (e.g. [2020, 12, 14, 10, 15, 19]) + * @param {Date} date - date object + * @returns {number} offset + */ +function calculateOffset(parts, date) { + var y = parts[0]; + var M = parts[1]; + var d = parts[2]; + var h = parts[3]; + var m = parts[4]; + var s = parts[5]; + + var utc = new Date(Date.UTC(y, M - 1, d, h, m, s)); + var offset = (utc - date) / 60 / 1000; + + return Math.round(offset); +} + +/** + * Check if browser supports Intl.DateTimeFormat.prototype.formatToParts API + * @returns {boolean} supported + */ +function supportIntl() { + /** + * IE9 and IE10 do not support Intl.DateTimeFormat + * IE11 does not support IANA timezone names + * http://kangax.github.io/compat-table/esintl/#test-DateTimeFormat_accepts_IANA_timezone_names + */ + return global.Intl && global.Intl.DateTimeFormat && + util.isFunction(Intl.DateTimeFormat.prototype.formatToParts); +} + +/** + * Return DateTimeFormat instance by timezone + * @param {string} timezoneName - timezone + * @returns {DateTimeFormat} Intl.DateTimeFormat instance + */ +function getIntlFormatter(timezoneName) { + if (!intlFormatter[timezoneName]) { + intlFormatter[timezoneName] = new Intl.DateTimeFormat('en-US', { + hourCycle: 'h23', + year: 'numeric', + month: 'numeric', + day: 'numeric', + hour: 'numeric', + minute: 'numeric', + second: 'numeric', + timeZone: timezoneName + }); + } + + return intlFormatter[timezoneName]; +} + +/** + * Get offset of the time by timezone + * @param {string} timezoneName - recognize the time zone names of the IANA time zone database, such as 'Asia/Seoul', 'America/New_York' + * @param {number} timestamp - timestamp + * @returns {number} offset + */ +function offsetCalculator(timezoneName, timestamp) { + var formatter = getIntlFormatter(timezoneName); + var date = new Date(timestamp); + + return -calculateOffset(parseOffset(formatter, date), date); +} + +intlUtil = { + supportIntl: supportIntl, + offsetCalculator: offsetCalculator +}; + +module.exports = intlUtil; + +/* WEBPACK VAR INJECTION */}.call(this, __webpack_require__(/*! ./../../../node_modules/webpack/buildin/global.js */ "./node_modules/webpack/buildin/global.js"))) + +/***/ }), + +/***/ "./src/js/common/model.js": +/*!********************************!*\ + !*** ./src/js/common/model.js ***! + \********************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; +/** + * @fileoverview Mixin module for models. + * @author NHN FE Development Lab + */ + + +var TZDate = __webpack_require__(/*! ../common/timezone */ "./src/js/common/timezone.js").Date; +var util = __webpack_require__(/*! tui-code-snippet */ "tui-code-snippet"); +var spaceRx = /^\s*|\s*$/g, + model; + +var datetime = __webpack_require__(/*! ../common/datetime */ "./src/js/common/datetime.js"); + +/** + * Mixin module for models. + * @mixin + */ +model = { + /** + * string trim + * @param {string} str string to trim + * @returns {string} trimed string + */ + trim: function(str) { + return str.replace(spaceRx, ''); + }, + /** + * The collections of validator functions. + */ + validators: { + /** + * check all of supplied fields(property) is not undefined or empty string. + * @param {object} instance model instance. + * @param {string[]} fields property names to check. + * @returns {boolean} return true when supplied fields are not undefined or empty string. + */ + required: function(instance, fields) { + var valid = true, + isValid = function(obj) { + return !util.isUndefined(obj) && model.trim(obj) !== ''; + }; + + util.forEach(fields, function(fieldName) { + valid = isValid(instance[fieldName]); + + return valid; + }); + + return valid; + }, + + /** + * check supplied fields are valid dates and valid date ranges. + * @param {object} instance model instance. + * @param {Date[]} fields array of date range (start, end) + * @returns {boolean} is valid date range? + */ + dateRange: function(instance, fields) { + var start, end; + + if (!util.isExisty(instance) || fields.length !== 2) { + return true; + } + + start = new TZDate(instance[fields[0]]); + end = new TZDate(instance[fields[1]]); + + if (!datetime.isValid(start) || !datetime.isValid(end)) { + return false; + } + + if (datetime.compare(start, end) === 1) { + return false; + } + + return true; + } + }, + + /** + * Check validate for model instance. + * + * The validate are works on a basis of constructor's "schema" property. + * + * You can customize validators add some method to model#validators. + * @returns {Boolean} model is valid? + */ + isValid: function() { + var self = this, + schema = this.constructor.schema, + validators = model.validators, + validator, + valid = true; + + if (!schema) { + return true; + } + + util.forEach(schema, function(values, validatorName) { + validator = validators[validatorName]; + + if (validator) { + valid = validator(self, values); + + return valid; // returning false can stop this loop + } + + return true; + }); + + return valid; + }, + + /** + * Make data object form instance. + * + * It return object fill with all owned properties but exclude functions. + * @returns {object} Data object + */ + parameterize: function() { + var param = {}, + isFunc = util.isFunction; + + util.forEach(this, function(value, propName) { + if (!isFunc(value)) { + param[propName] = value; + } + }); + + return param; + }, + + /** + * Mixin model module to supplied target. + * @param {Object} target The object of want to mixed. + * @example + * function Man() { + * this.name = 'john'; + * } + * model.mixin(Man.prototype); + */ + mixin: function(target) { + util.forEach(model, function(method, name) { + if (name !== 'mixin') { + target[name] = method; + } + }); + } +}; + +module.exports = model; + + +/***/ }), + +/***/ "./src/js/common/point.js": +/*!********************************!*\ + !*** ./src/js/common/point.js ***! + \********************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; +/** + * @fileoverview + * Class for represent two dimensional x, y coordinates. + * + * It suppliy a group of functions for manipulate coordinates. + * @author NHN FE Development Lab + * @example + * var p = point(10, 10); + * var r1 = p.add(Point(5, 5)); + * console.log(p.toString()) // "Point(10, 10)" + * console.log(r1.toString()) // "Point(15, 15)" + * + * var p2 = new Point(10, 10); + * p2._add(point(5, 5)); + * console.log(p2.toString()) // "Point(15, 15)" + */ + + +var util = __webpack_require__(/*! tui-code-snippet */ "tui-code-snippet"); + +/** + * Class for represent two dimentional x, y coordinates. + * @constructor + * @param {number} x The number of X coordinates. + * @param {number} y The number of Y coordinates. + * @param {boolean} [useRound=false] set true when each coordinates are rounded before initialize. + * @example + * var t = new Point(13, 5); + */ +function Point(x, y, useRound) { + /** + * @type {number} + */ + this.x = (useRound ? Math.round(x) : x); + + /** + * @type {number} + */ + this.y = (useRound ? Math.round(y) : y); +} + +/********** + * static props + **********/ + +/** + * Calculate point ratio. + * @param {Point} point The instance of point. + * @param {number} factor From factor + * @param {number} toFactor To factor + * @returns {Point} Point instance calculated. + */ +Point.getRatio = function(point, factor, toFactor) { + if (factor === toFactor) { + return point.clone(); + } + + return point.multiplyBy(toFactor)._divideBy(factor); +}; + +/** + * Syntatic sugar of new Point() + * @param {(Point|number|number[])} x X coordinate value. + * @param {(number|boolean)} [y] Y coordinate value or boolean value for coordinates round. + * @param {boolean} [useRound] Set true then round initial coordinate values. + * @returns {Point} The instance of point. + * @example + * var p1 = point(10, 15); + * var p2 = point([10, 15]); + */ +Point.n = function(x, y, useRound) { + if (x instanceof Point) { + return x; + } + + if (util.isArray(x)) { + return new Point(x[0], x[1], y); + } + + return new Point(x, y, useRound); +}; + +/********** + * prototype props + **********/ + +/** + * Clone points + * @returns {Point} The point instance cloned. + */ +Point.prototype.clone = function() { + return new Point(this.x, this.y); +}; + +/** + * Add points. + * @param {Point} point The point instance to add. + * @returns {Point} Point calculated. + */ +Point.prototype.add = function(point) { + return this.clone()._add(Point.n(point)); +}; + +/** + * Add self points. + * @param {Point} point The point instance to add. + * @returns {Point} Point calculated. + */ +Point.prototype._add = function(point) { + this.x += point.x; + this.y += point.y; + + return this; +}; + +/** + * Subtract points. + * @param {Point} point The point instance to subtract. + * @returns {Point} Point calculated. + */ +Point.prototype.subtract = function(point) { + return this.clone()._subtract(Point.n(point)); +}; + +/** + * Subtract points. (manipulate self) + * @param {Point} point The point instance to subtract. + * @returns {Point} Point calculated. + */ +Point.prototype._subtract = function(point) { + this.x -= point.x; + this.y -= point.y; + + return this; +}; + +/** + * Divide points. + * @param {number} num The number to divide. + * @returns {Point} Point calculated. + */ +Point.prototype.divideBy = function(num) { + return this.clone()._divideBy(num); +}; + +/** + * Divide points. (manipulate self) + * @param {number} num The number to divide. + * @returns {Point} Point calculated. + */ +Point.prototype._divideBy = function(num) { + this.x /= num; + this.y /= num; + + return this; +}; + +/** + * Multiply coordinates. + * @param {number} num Thyen number to multiply + * @returns {Point} Point calculated. + */ +Point.prototype.multiplyBy = function(num) { + return this.clone()._multiplyBy(num); +}; + +/** + * Multiply self coordinates. + * @param {number} num The number to multiply. + * @returns {Point} Point calculated. + */ +Point.prototype._multiplyBy = function(num) { + this.x *= num; + this.y *= num; + + return this; +}; + +/** + * Round coordinates. + * @returns {Point} Point calculated. + */ +Point.prototype.round = function() { + return this.clone()._round(); +}; + +/** + * Round self coordinates. + * @returns {Point} Point calculated. + */ +Point.prototype._round = function() { + this.x = Math.round(this.x); + this.y = Math.round(this.y); + + return this; +}; + +/** + * Reverse values between positive and negative. + * @returns {Point} Point calculated. + */ +Point.prototype.reverse = function() { + return this.clone()._reverse(); +}; + +/** + * Reverse self values between positive and negative. + * @returns {Point} Point calculated. + */ +Point.prototype._reverse = function() { + this.x *= -1; + this.y *= -1; + + return this; +}; + +/** + * Floor coordinates. + * @returns {Point} Point calculated. + */ +Point.prototype.floor = function() { + return this.clone()._floor(); +}; + +/** + * Floor self coordinates. + * @returns {Point} Point calculated. + */ +Point.prototype._floor = function() { + this.x = Math.floor(this.x); + this.y = Math.floor(this.y); + + return this; +}; + +/** + * Ceil coordinates. + * @returns {Point} Point calculated. + */ +Point.prototype.ceil = function() { + return this.clone()._ceil(); +}; + +/** + * Ceil self coodinates. + * @returns {Point} Point calculated. + */ +Point.prototype._ceil = function() { + this.x = Math.ceil(this.x); + this.y = Math.ceil(this.y); + + return this; +}; + +/** + * Rotate point. + * @param {number} deg The number of rotate degree. + * @param {Point} [center=this] Center point instance to use rotate center. use own when not supplied. + * @param {number} [cos] Cosine values for rotate. it useful when multi point rotate. + * @param {number} [sin] Sine values for rotate. it useful when multi point rotate. + * @returns {Point} The point instance rotated. + */ +Point.prototype.rotate = function(deg, center, cos, sin) { + return this.clone()._rotate(deg, center, cos, sin); +}; + +/** + * Rotate self. + * @param {number} deg The number of rotate degree. + * @param {Point} [center=this] Center point instance to use rotate center. use own when not supplied. + * @param {number} [cos] Cosine values for rotate. it useful when multi point rotate. + * @param {number} [sin] Sine values for rotate. it useful when multi point rotate. + * @returns {Point} The point instance rotated. + */ +Point.prototype._rotate = function(deg, center, cos, sin) { + var rad = deg * (Math.PI / 180), + x, + y; + + cos = cos || parseFloat(Math.cos(rad).toFixed(8)); + sin = sin || parseFloat(Math.sin(rad).toFixed(8)); + + this._subtract(center); + + x = this.x; + y = this.y; + + this.x = (x * cos) - (y * sin); + this.y = (x * sin) + (y * cos); + + this._add(center); + + return this; +}; + +/** + * Calculate distance between two points. + * @param {Point} point Point instance. + * @returns {number} The number of distance between two points. + */ +Point.prototype.distanceTo = function(point) { + var x, + y; + + point = Point.n(point); + + x = point.x - this.x; + y = point.y - this.y; + + return Math.sqrt((x * x) + (y * y)); +}; + +/** + * Check point equals. + * @param {Point} point Point instance to compare + * @returns {boolean} equality + */ +Point.prototype.equals = function(point) { + point = Point.n(point); + + return point.x === this.x && point.y === this.y; +}; + +/** + * Return formatted string. 'Point(x, y)' + * @returns {string} string + */ +Point.prototype.toString = function() { + return 'Point(' + this.x + ', ' + this.y + ')'; +}; + +/** + * Return coodinates to array. [x, y] + * @returns {number[]} coordinate array. + */ +Point.prototype.toArray = function() { + return [this.x, this.y]; +}; + +module.exports = Point; + + +/***/ }), + +/***/ "./src/js/common/reqAnimFrame.js": +/*!***************************************!*\ + !*** ./src/js/common/reqAnimFrame.js ***! + \***************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; +/* WEBPACK VAR INJECTION */(function(global) {/** + * @fileoverview RequestAnimFrame + * @author NHN FE Development Lab + */ + + +var requestFn, + cancelFn; + +/** + * Get name with vendor prefix + * @param {string} name - name to prepend prefix + * @returns {string} vendor prefixed name + */ +function getPrefixed(name) { + return global['webkit' + name] || global['moz' + name] || global['ms' + name]; +} + +requestFn = global.requestAnimationFrame || + getPrefixed('RequestAnimationFrame') || + function(fn, context) { + fn.call(context); + }; + +cancelFn = global.cancelAnimationFrame || + getPrefixed('CancelAnimationFrame') || + getPrefixed('CancelRequestAnimationFrame') || + function() {}; + +/** + * @module module:reqAnimFrame + */ + +module.exports = { + /** + * Shim of requestAnimationFrame + * @param {function} fn callback function + * @param {*} context context for callback + * @returns {number} Unique id + */ + requestAnimFrame: function(fn, context) { + return requestFn.call(global, fn.bind(context)); + }, + + /** + * Shim of cancelAnimationFrame + * @param {number} id requestAnimationFrame id + */ + cancelAnimFrame: function(id) { + if (!id) { + return; + } + + cancelFn.call(global, id); + } +}; + +/* WEBPACK VAR INJECTION */}.call(this, __webpack_require__(/*! ./../../../node_modules/webpack/buildin/global.js */ "./node_modules/webpack/buildin/global.js"))) + +/***/ }), + +/***/ "./src/js/common/timezone.js": +/*!***********************************!*\ + !*** ./src/js/common/timezone.js ***! + \***********************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; +/** + * @fileoverview timezone + * @author NHN FE Development Lab + */ + + +var util = __webpack_require__(/*! tui-code-snippet */ "tui-code-snippet"); +var intlUtil = __webpack_require__(/*! ./intlUtil */ "./src/js/common/intlUtil.js"); + +var MIN_TO_MS = 60 * 1000; +var nativeOffsetMs = getTimezoneOffset(); +var customOffsetMs = nativeOffsetMs; +var timezoneOffsetCallback = null; +var setByTimezoneOption = false; +var offsetCalculator = null; +var primaryOffset, primaryTimezoneName; + +var getterMethods = [ + 'getDate', + 'getDay', + 'getFullYear', + 'getHours', + 'getMilliseconds', + 'getMinutes', + 'getMonth', + 'getSeconds' +]; + +var setterMethods = [ + 'setDate', + 'setFullYear', + 'setHours', + 'setMilliseconds', + 'setMinutes', + 'setMonth', + 'setSeconds' +]; + +var STANDARD_TO_DST = 1; +var DST_TO_STANDARD = -1; + +/** + * Get the timezone offset by timestampe + * @param {number} timestamp - timestamp + * @returns {number} timezone offset + * @private + */ +function getTimezoneOffset(timestamp) { + timestamp = !util.isUndefined(timestamp) ? timestamp : Date.now(); + + return new Date(timestamp).getTimezoneOffset() * MIN_TO_MS; +} + +/** + * Get the custome timezone offset by timestampe + * @param {number} timestamp - timestamp + * @returns {number} timezone offset + * @private + */ +function getCustomTimezoneOffset(timestamp) { + if (!setByTimezoneOption && timezoneOffsetCallback) { + return timezoneOffsetCallback(timestamp) * MIN_TO_MS; + } + + return customOffsetMs; +} + +/** + * Convert to local time + * @param {number} time - time + * @returns {number} local time + */ +function getLocalTime(time) { + var customTimezoneOffset, localTime; + + if (!setByTimezoneOption) { + return time; + } + + customTimezoneOffset = getCustomTimezoneOffset(time); + localTime = time - customTimezoneOffset + nativeOffsetMs; + + return localTime; +} + +/** + * Create a Date instance with multiple arguments + * @param {Array} args - arguments + * @returns {Date} + * @private + */ +function createDateWithMultipleArgs(args) { + var utc = Date.UTC.apply(null, args); + + return new Date(utc + getTimezoneOffset(utc)); +} + +/** + * To convert a Date to TZDate as it is. + * @param {TZDate|number|null} arg - date + * @returns {Date} + */ +function createDateWithUTCTime(arg) { + var time; + + if (arg instanceof TZDate) { + time = arg.getUTCTime(); + } else if (typeof arg === 'number') { + time = arg; + } else if (arg === null) { + time = 0; + } else { + throw new Error('Invalid Type'); + } + + return new Date(time); +} + +/** + * Convert time to local time. Those times are only from API and not from inner source code. + * @param {Date|string} arg - date + * @returns {Date} + */ +function createDateAsLocalTime(arg) { + var time; + + if (arg instanceof Date) { + time = arg.getTime(); + } else if (typeof arg === 'string') { + time = Date.parse(arg); + } else { + throw new Error('Invalid Type'); + } + + time = getLocalTime(time); + + return new Date(time); +} + +/** + * is it for local time? These type can be used from Calendar API. + * @param {Date|string} arg - date + * @returns {boolean} + */ +function useLocalTimeConverter(arg) { + return arg instanceof Date || typeof arg === 'string'; +} + +/** + * Timezone Date Class + * @param {number|TZDate|Date|string} date - date to be converted + * @constructor + */ +function TZDate(date) { + var nativeDate; + + if (util.isUndefined(date)) { + date = Date.now(); + } + + if (arguments.length > 1) { + nativeDate = createDateWithMultipleArgs(arguments); + } else if (useLocalTimeConverter(date)) { + nativeDate = createDateAsLocalTime(date); + } else { + nativeDate = createDateWithUTCTime(date); + } + + this._date = nativeDate; +} + +/** + * Get milliseconds which is converted by timezone + * @returns {number} milliseconds + */ +TZDate.prototype.getTime = function() { + var time = this._date.getTime(); + + return time + getCustomTimezoneOffset(time) - getTimezoneOffset(time); +}; + +/** + * Get UTC milliseconds + * @returns {number} milliseconds + */ +TZDate.prototype.getUTCTime = function() { + return this._date.getTime(); +}; + +/** + * toUTCString + * @returns {string} + */ +TZDate.prototype.toUTCString = function() { + return this._date.toUTCString(); +}; + +/** + * to Date + * @returns {Date} + */ +TZDate.prototype.toDate = function() { + return this._date; +}; + +TZDate.prototype.valueOf = function() { + return this.getTime(); +}; + +TZDate.prototype.addDate = function(day) { + this.setDate(this.getDate() + day); + + return this; +}; + +TZDate.prototype.addMinutes = function(minutes) { + this.setMinutes(this.getMinutes() + minutes); + + return this; +}; + +TZDate.prototype.addMilliseconds = function(milliseconds) { + this.setMilliseconds(this.getMilliseconds() + milliseconds); + + return this; +}; + +/* eslint-disable max-params*/ +TZDate.prototype.setWithRaw = function(y, M, d, h, m, s, ms) { + this.setFullYear(y, M, d); + this.setHours(h, m, s, ms); + + return this; +}; + +/** + * @returns {TZDate} local time + */ +TZDate.prototype.toLocalTime = function() { + var time = this.getTime(); + var utcTime = this.getUTCTime(); + var diff = time - utcTime; + + return new TZDate(utcTime - diff); +}; + +getterMethods.forEach(function(methodName) { + TZDate.prototype[methodName] = function() { + return this._date[methodName].apply(this._date, arguments); + }; +}); + +setterMethods.forEach(function(methodName) { + TZDate.prototype[methodName] = function() { + this._date[methodName].apply(this._date, arguments); + + return this.getTime(); + }; +}); + +/** + * Set offset + * @param {number} offset - timezone offset based on minutes + */ +function setOffset(offset) { + customOffsetMs = offset * MIN_TO_MS; +} + +/** + * Set primary offset + * @param {number} offset - offset + */ +function setPrimaryOffset(offset) { + primaryOffset = offset; + setOffset(offset); +} + +/** + * Return primary offset + * @returns {number} offset + */ +function getPrimaryOffset() { + return util.isNumber(primaryOffset) ? primaryOffset : new Date().getTimezoneOffset(); +} + +/** + * Set primary timezone name + * @param {string} timezoneName - timezone name (time zone names of the IANA time zone database, such as 'Asia/Seoul', 'America/New_York') + */ +function setPrimaryTimezoneCode(timezoneName) { + primaryTimezoneName = timezoneName; +} + +/** + * Get offset by timezoneName + * @param {string} timezoneName - timezone name (time zone names of the IANA time zone database, such as 'Asia/Seoul', 'America/New_York') + * @param {number} timestamp - timestamp + * @returns {number} timezone offset + */ +function getOffsetByTimezoneName(timezoneName, timestamp) { + var offset = getPrimaryOffset(); + var calculator; + + if (!timezoneName) { + return offset; + } + + calculator = getOffsetCalculator(timezoneName); + + return calculator ? calculator(timezoneName, timestamp) : offset; +} + +/** + * Set a calculator function to get timezone offset by timestamp + * @param {function} calculator - offset calculator + */ +function setOffsetCalculator(calculator) { + offsetCalculator = calculator; +} + +/** + * Return a function to calculate timezone offset by timestamp + * @param {string} timezoneName - timezone name + * @returns {function | null} offset calculator + */ +function getOffsetCalculator(timezoneName) { + if (util.isFunction(offsetCalculator)) { + return offsetCalculator; + } + + if (intlUtil.supportIntl(timezoneName)) { + return intlUtil.offsetCalculator; + } + + return null; +} + +/** + * Set timezone and offset by timezone option + * @param {Timezone} timezoneObj - {@link Timezone} + */ +function setPrimaryTimezoneByOption(timezoneObj) { + var timezoneName, offset; + + if (!(timezoneObj && timezoneObj.timezoneName)) { + return; + } + + timezoneName = timezoneObj.timezoneName; + setByTimezoneOption = true; + setPrimaryTimezoneCode(timezoneName); + + offset = getOffsetByTimezoneName(timezoneName, Date.now()); + + if (offset === nativeOffsetMs / MIN_TO_MS) { + setByTimezoneOption = false; + } + + setPrimaryOffset(offset); +} + +/** + * Get primary timezone name + * @returns {string} primary timezone name (time zone names of the IANA time zone database, such as 'Asia/Seoul', 'America/New_York') + */ +function getPrimaryTimezoneName() { + return primaryTimezoneName; +} + +/** + * Compare the start and end times to see if the time zone is changing. + * @param {number} startTime - start timestamp + * @param {number} endTime - end timestamp + * @returns {object} whether to change the offset and offset difference value + */ +function isDifferentOffsetStartAndEndTime(startTime, endTime) { + var offset1 = getOffsetByTimezoneName(primaryTimezoneName, startTime); + var offset2 = getOffsetByTimezoneName(primaryTimezoneName, endTime); + var result = 0; + + if (offset1 > offset2) { + result = STANDARD_TO_DST; + } else if (offset1 < offset2) { + result = DST_TO_STANDARD; + } + + return { + isOffsetChanged: result, + offsetDiff: offset1 - offset2 + }; +} + +module.exports = { + Date: TZDate, + + setOffset: setOffset, + + /** + * Set offset + * @param {number} offset - timezone offset based on minutes + */ + setOffsetByTimezoneOption: function(offset) { + this.setOffset(-offset); + primaryOffset = -offset; + setByTimezoneOption = true; + }, + + /** + * Get offset in case of `setByTimezoneOption`. Or return 0. + * @returns {number} timezone offset offset minutes + */ + getOffset: function() { + if (setByTimezoneOption) { + return customOffsetMs / MIN_TO_MS; + } + + return 0; + }, + + /** + * Set a callback function to get timezone offset by timestamp + * @param {function} callback - callback function + */ + setOffsetCallback: function(callback) { + timezoneOffsetCallback = callback; + }, + + /** + * (Use this method only for testing) + * Reset system timezone and custom timezone + */ + restoreOffset: function() { + customOffsetMs = getTimezoneOffset(); + }, + + getNativeOffsetMs: function() { + return nativeOffsetMs; + }, + + /** + * Check to use custom timezone option + * @returns {boolean} use custom timezone option + */ + hasPrimaryTimezoneCustomSetting: function() { + return setByTimezoneOption; + }, + + resetCustomSetting: function() { + setByTimezoneOption = false; + }, + + setOffsetCalculator: setOffsetCalculator, + + setPrimaryTimezoneByOption: setPrimaryTimezoneByOption, + + getPrimaryOffset: getPrimaryOffset, + + getOffsetByTimezoneName: getOffsetByTimezoneName, + + getPrimaryTimezoneName: getPrimaryTimezoneName, + + isNativeOsUsingDSTTimezone: function() { + var year = new Date().getFullYear(); + var jan = new Date(year, 0, 1).getTimezoneOffset(); + var jul = new Date(year, 6, 1).getTimezoneOffset(); + + return jan !== jul; + }, + + isPrimaryUsingDSTTimezone: function() { + var year = new Date().getFullYear(); + var jan = new Date(year, 0, 1); + var jul = new Date(year, 6, 1); + + return ( + getOffsetByTimezoneName(primaryTimezoneName, jan) !== + getOffsetByTimezoneName(primaryTimezoneName, jul) + ); + }, + + isDifferentOffsetStartAndEndTime: isDifferentOffsetStartAndEndTime, + setPrimaryTimezoneCode: setPrimaryTimezoneCode +}; + + +/***/ }), + +/***/ "./src/js/common/vlayout.js": +/*!**********************************!*\ + !*** ./src/js/common/vlayout.js ***! + \**********************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; +/** + * @fileoverview Layout module that supplied split height, resize height features. + * @author NHN FE Development Lab + */ + + +var util = __webpack_require__(/*! tui-code-snippet */ "tui-code-snippet"); +var config = __webpack_require__(/*! ../config */ "./src/js/config.js"), + common = __webpack_require__(/*! ./common */ "./src/js/common/common.js"), + domutil = __webpack_require__(/*! ./domutil */ "./src/js/common/domutil.js"), + domevent = __webpack_require__(/*! ./domevent */ "./src/js/common/domevent.js"), + View = __webpack_require__(/*! ../view/view */ "./src/js/view/view.js"), + VPanel = __webpack_require__(/*! ./vpanel */ "./src/js/common/vpanel.js"), + Drag = __webpack_require__(/*! ../handler/drag */ "./src/js/handler/drag.js"); + +var mAbs = Math.abs; + +/** + * @typedef PanelOptions + * @type {object} + * @property {number} [minHeight=0] - minimum height of panel + * @property {number} [height=0] - current panel height + * @property {boolean} [splitter=false] - is this panel uses splitter? + * @property {boolean} [autoHeight=false] - is this panel uses remain height of container? + * @property {string} [className=''] - className string for add created element + */ + +/** + * @constructor + * @extends {View} + * @param {object} options - options for VLayout module + * @param {PanelOptions[]} [options.panels] - panels to add layout when initialize + * @param {number[]} [options.panelHeights] - panel height list + * @param {HTMLElement} container - container element + * @param {Theme} theme - theme instance + */ +function VLayout(options, container, theme) { + var opt, tempHeights; + + if (!(this instanceof VLayout)) { + return new VLayout(options, container); + } + + View.call(this, container); + + domutil.addClass(container, config.classname('vlayout-container')); + + /** + * @type {object} + */ + opt = this.options = util.extend({ + panels: [], + panelHeights: [] + }, options); + + /** + * @type {VPanel[]} + */ + this.panels = []; + + /** + * @type {Drag} + */ + this._drag = new Drag({ + distance: 10, + exclude: function(target) { + return !domutil.hasClass(target, config.classname('splitter')); + } + }, container); + + this._drag.on({ + dragStart: this._onDragStart, + drag: this._onDrag, + dragEnd: this._onDragEnd + }, this); + + /** + * @type {object} + */ + this._dragData = null; + + /** + * @type {Theme} + */ + this.theme = theme; + + if (opt.panels.length) { + if (opt.panelHeights.length) { + tempHeights = opt.panelHeights.slice(); + util.forEach(opt.panels, function(panelOpt) { + if (!panelOpt.isSplitter && !panelOpt.autoHeight) { + panelOpt.height = tempHeights.shift(); + } + }); + } + + this.addPanels(opt.panels, this.container); + } + + this.refresh(); +} + +util.inherit(VLayout, View); + +/** + * Get current panels height in layout + * @returns {number[]} height of panels with `autoHeight` false + */ +VLayout.prototype.getLayoutData = function() { + var heightList = []; + + util.forEach(this.panels, function(panel) { + if (panel.isSplitter() || panel.options.autoHeight) { + return; + } + + heightList.push(panel.getHeight()); + }); + + return heightList; +}; + +/** + * Set panels height in layout + * @param {number[]} heightList of panels with `autoHeight` false + */ +VLayout.prototype.setLayoutData = function(heightList) { + if (!heightList.length) { + return; + } + + util.forEach(this.panels, function(panel) { + if (panel.isSplitter() || panel.options.autoHeight) { + return; + } + + panel.setHeight(null, heightList.shift()); + }); + + this.refresh(); +}; + +/** + * Get next panel instance by specific panel + * @param {VPanel} panel - panel instance + * @returns {VPanel} next panel + */ +VLayout.prototype.nextPanel = function(panel) { + return this.panels[panel.index + 1]; +}; + +/** + * Get previous panel instance by specific panel + * @param {VPanel} panel - panel instance + * @returns {VPanel} previous panel + */ +VLayout.prototype.prevPanel = function(panel) { + return this.panels[panel.index - 1]; +}; + +/** + * Initialize resizing guide element + * @param {HTMLElement} element - element to use guide element after cloned + * @param {number} top - top pixel value for guide element + * @returns {HTMLElement} cloned element == guide element + */ +VLayout.prototype._initializeGuideElement = function(element, top) { + var cloned = element.cloneNode(true); + + domutil.addClass(cloned, config.classname('splitter-guide')); + this._refreshGuideElement(cloned, top); + this.container.appendChild(cloned); + + return cloned; +}; + +/** + * Refresh guide element position + * @param {HTMLElement} element - guide element + * @param {number} top - top pixel value for guide element + */ +VLayout.prototype._refreshGuideElement = function(element, top) { + element.style.top = top + 'px'; +}; + +/** + * Clear guide element position + * @param {HTMLElement} element - guide element + */ +VLayout.prototype._clearGuideElement = function(element) { + domutil.remove(element); +}; + +/** + * Resize overall panels size + * @param {VPanel} splPanel - splitter panel instance + * @param {number} startY - dragstart Y position + * @param {number} mouseY - dragend Y position + */ +VLayout.prototype._resize = function(splPanel, startY, mouseY) { + var diffY = startY - mouseY, + resizedHeight = mAbs(diffY), + resizeMap = [], + toDown = mouseY > startY, + backwardMethod = toDown ? 'prevPanel' : 'nextPanel', + forwardMethod = toDown ? 'nextPanel' : 'prevPanel', + cursor, resizeInfo; + + cursor = this[backwardMethod](splPanel); + resizeInfo = cursor.getResizeInfoByGrowth(resizedHeight); + resizeMap.push([cursor, resizeInfo[0]]); + + for (cursor = this[forwardMethod](cursor); + util.isExisty(cursor); + cursor = this[forwardMethod](cursor)) { + if (cursor.isSplitter()) { + continue; + } + + resizeInfo = cursor.getResizeInfoByGrowth(-resizedHeight); + resizeMap.push([cursor, resizeInfo[0]]); + resizedHeight -= resizeInfo[1]; + } + + util.forEach(resizeMap, function(pair) { + pair[0].setHeight(null, pair[1], true); + pair[0].fire('resize'); + }); +}; + +/** + * Get summation of splitter and panel's minimum height upper and below of supplied splitter + * @param {VPanel} splPanel - splitter panel instance + * @returns {number[]} upper and below splitter's height and panel minimum height summation. + */ +VLayout.prototype._getMouseYAdditionalLimit = function(splPanel) { + var upper = 0, + below = 0, + cursor, + func = function(panel) { + if (panel.isSplitter()) { + return panel.getHeight(); + } + + return panel.options.minHeight; + }; + + for (cursor = this.prevPanel(splPanel); + util.isExisty(cursor); + cursor = this.prevPanel(cursor)) { + upper += func(cursor); + } + + for (cursor = this.nextPanel(splPanel); + util.isExisty(cursor); + cursor = this.nextPanel(cursor)) { + below += func(cursor); + } + + return [upper, below]; +}; + +/********** + * Drag Handlers + **********/ + +/** + * Drag start schedule handler + * @param {object} e - drag start schedule data + */ +VLayout.prototype._onDragStart = function(e) { + var oEvent = e.originEvent, + target = e.target, + splIndex = domutil.getData(target, 'panelIndex'), + splPanel = this.panels[splIndex], + splHeight = splPanel.getHeight(), + splOffsetY = domevent.getMousePosition(oEvent, target)[1], + mouseY = domevent.getMousePosition(oEvent, this.container)[1], + guideElement = this._initializeGuideElement(target, mouseY); + + splPanel.addClass(config.classname('splitter-focused')); + + this._dragData = { + splPanel: splPanel, + splOffsetY: splOffsetY, + guideElement: guideElement, + startY: mouseY - splOffsetY, + minY: 0, + maxY: this.getViewBound().height - splHeight + }; + + if (!util.browser.msie) { + domutil.addClass(document.body, config.classname('resizing')); + } +}; + +/** + * Drag schedule handler + * @param {object} e - drag schedule data + */ +VLayout.prototype._onDrag = function(e) { + var dragData = this._dragData, + mouseY = domevent.getMousePosition(e.originEvent, this.container)[1]; + + mouseY = common.limit(mouseY - dragData.splOffsetY, [dragData.minY], [dragData.maxY]); + + this._refreshGuideElement(dragData.guideElement, mouseY); +}; + +/** + * Drag end schedule handler + * @fires VLayout#resize + * @param {object} e - dragend schedule data + */ +VLayout.prototype._onDragEnd = function(e) { + var dragData = this._dragData, + asideMinMax = this._getMouseYAdditionalLimit(dragData.splPanel), + mouseY = domevent.getMousePosition(e.originEvent, this.container)[1]; + + // mouseY value can't exceed summation of splitter height and panel's minimum height based on target splitter. + mouseY = common.limit( + mouseY - dragData.splOffsetY, + [dragData.minY + asideMinMax[0]], + [dragData.maxY - asideMinMax[1]] + ); + + this._resize(dragData.splPanel, dragData.startY, mouseY); + + /** + * @event VLayout#resize + * @type {object} + * @property {number[]} layoutData - layout data after resized + */ + this.fire('resize', { + layoutData: this.getLayoutData() + }); + + this._dragData = null; + this._clearGuideElement(dragData.guideElement); + dragData.splPanel.removeClass(config.classname('splitter-focused')); + domutil.removeClass(document.body, config.classname('resizing')); +}; + +/********** + * Methods + **********/ + +/** + * refresh each panels + */ +VLayout.prototype.refresh = function() { + var panelToFillHeight = []; + var layoutHeight = this.getViewBound().height; + var usedHeight = 0; + var remainHeight; + + if (!layoutHeight) { + return; + } + + util.forEach(this.panels, function(panel) { + if (panel.options.autoHeight) { + panelToFillHeight.push(panel); + } else { + usedHeight += panel.getHeight(); + } + }); + + remainHeight = (layoutHeight - usedHeight) / panelToFillHeight.length; + + util.forEach(panelToFillHeight, function(panel) { + panel.setHeight(null, remainHeight); + }); +}; + +/** + * add panel + * @param {PanelOptions} options - options for panel + * @param {container} [container] - container element + */ +VLayout.prototype.addPanel = function(options, container) { + var element = document.createElement('div'), + panels = this.panels, + index = panels.length; + + options = util.extend({ + index: index + }, options); + + panels.push(new VPanel(options, element, this.theme)); + + container.appendChild(element); +}; + +/** + * Add multiple panel + * @param {PanelOptions[]} options - panel options list + * @param {HTMLElement} container - container element + */ +VLayout.prototype.addPanels = function(options, container) { + var self = this, + frag = document.createDocumentFragment(); + + util.forEach(options, function(option) { + self.addPanel(option, frag); + }); + + container.appendChild(frag); +}; + +/** + * Get a panel by name + * @param {string} name - panel's name + * @returns {VPanel} + */ +VLayout.prototype.getPanelByName = function(name) { + var found; + util.forEach(this.panels, function(panel) { + if (panel.name === name) { + found = panel; + } + }); + + return found; +}; + +module.exports = VLayout; + + +/***/ }), + +/***/ "./src/js/common/vpanel.js": +/*!*********************************!*\ + !*** ./src/js/common/vpanel.js ***! + \*********************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; +/** + * @fileoverview Panel class for VLayout module + * @author NHN FE Development Lab + */ + + +var util = __webpack_require__(/*! tui-code-snippet */ "tui-code-snippet"); +var config = __webpack_require__(/*! ../config */ "./src/js/config.js"), + common = __webpack_require__(/*! ./common */ "./src/js/common/common.js"), + domutil = __webpack_require__(/*! ./domutil */ "./src/js/common/domutil.js"), + View = __webpack_require__(/*! ../view/view */ "./src/js/view/view.js"); + +/** + * @constructor + * @extends {View} + * @param {object} options - options for VPanel + * @param {number} options.index - index of panel in vlayout + * @param {number} [options.minHeight=0] - minimum height of panel + * @param {number} [options.height] - initial height of panel + * @param {boolean} [options.isSplitter=false] - set true then this panel works splitter + * @param {boolean} [options.autoHeight=false] - set true then this panel use remain height after other panel resized. + * @param {string} [options.className] - additional class name to add element + * @param {HTMLElement} container - container element + * @param {Theme} theme - theme instance + */ +function VPanel(options, container, theme) { + View.call(this, container); + + /** + * @type {object} + */ + this.options = util.extend({ + index: 0, + name: '0', + minHeight: 0, + maxHeight: null, + height: null, + isSplitter: false, + autoHeight: false, + className: '' + }, options); + + /** + * @type {number} + */ + this.index = this.options.index; + + /** + * @type {string} + */ + this.name = this.options.name || String(this.index); + + this.isHeightForcedSet = false; + + /** + * @type {Theme} + */ + this.theme = theme; + + this._initPanel(this.options, container); +} + +util.inherit(VPanel, View); + +/** + * whether this panel is splitter? + * @returns {boolean} panel is splitter? + */ +VPanel.prototype.isSplitter = function() { + return this.options.isSplitter; +}; + +/** + * set max height of panel + * @param {number} maxHeight - maxHeight + */ +VPanel.prototype.setMaxHeight = function(maxHeight) { + if (!this.options.autoHeight) { + this.options.maxHeight = maxHeight; + } +}; + +/** + * set forced height flag + * @param {boolean} set - enable or not + */ +VPanel.prototype.setHeightForcedSet = function(set) { + this.isHeightForcedSet = set; +}; + +/** + * get forced height flag + * @returns {boolean} set - enable or not + */ +VPanel.prototype.getHeightForcedSet = function() { + return this.isHeightForcedSet; +}; + +/** + * set height of html element + * @param {HTMLElement} [container] - container element + * @param {number} newHeight - height + * @param {boolean} force - whether ignore max-length + */ +VPanel.prototype.setHeight = function(container, newHeight, force) { + var maxHeight = this.options.maxHeight; + var minHeight = this.options.minHeight; + var autoHeight = this.options.autoHeight; + container = container || this.container; + + // 한번 force 호출이 일어난 이후에는 force 호출만 허용한다 + if (!force && this.isHeightForcedSet && !autoHeight) { + return; + } + + if (force) { + this.isHeightForcedSet = true; + } else if (maxHeight) { + newHeight = Math.min(newHeight, maxHeight); + } + newHeight = Math.max(minHeight, newHeight); + + container.style.height = newHeight + 'px'; +}; + +/** + * Calculate new height of panel and remains by supplied height growth + * @param {number} growth - growth value + * @returns {number[]} newHeight, remainHeight + */ +VPanel.prototype.getResizeInfoByGrowth = function(growth) { + var height = this.getHeight(), + newHeight = height + growth, + resizeTo = Math.max(0, newHeight, this.options.minHeight); + + return [resizeTo, height - resizeTo]; +}; + +/** + * get outer height of panel element + * @returns {number} outer height of panel element + */ +VPanel.prototype.getHeight = function() { + return domutil.getSize(this.container)[1]; +}; + +/** + * add design class to panel element + * @param {string} className - classname string + */ +VPanel.prototype.addClass = function(className) { + domutil.addClass(this.container, className); +}; + +/** + * remove design class to panel element + * @param {string} className - classname string + */ +VPanel.prototype.removeClass = function(className) { + domutil.removeClass(this.container, className); +}; + +/** + * initialize panel element + * @param {PanelOptions} options - options for panel + * @param {HTMLDivElement} container - panel element + */ +VPanel.prototype._initPanel = function(options, container) { + var height; + + domutil.setData(container, 'panelIndex', options.index); + + if (options.isSplitter) { + domutil.addClass(container, config.classname('splitter')); + this.applyTheme(); + + return; + } + + if (options.className) { + domutil.addClass(container, options.className); + } + + if (options.autoHeight) { + domutil.setData(container, 'autoHeight', true); + } else { + height = common.limit(options.height || 0, + [options.minHeight], + [options.maxHeight || options.height] + ); + + options.height = height; + this.setHeight(container, height); + } +}; + +VPanel.prototype.applyTheme = function() { + var style = this.container.style; + var theme = this.theme; + + if (!theme) { + return; + } + + style.borderTop = theme.week.vpanelSplitter.border || theme.common.border; + style.borderBottom = theme.week.vpanelSplitter.border || theme.common.border; + style.height = theme.week.vpanelSplitter.height; +}; + +module.exports = VPanel; + + +/***/ }), + +/***/ "./src/js/config.js": +/*!**************************!*\ + !*** ./src/js/config.js ***! + \**************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; +/** + * @fileoverview Global configuration object module. This @echo syntax will change preprocess context. See gulpfile.js + * @author NHN FE Development Lab + */ + + +var cssPrefix = 'tui-full-calendar-', + alldayGetViewID = new RegExp('^' + cssPrefix + 'weekday[\\s]tui-view-(\\d+)'), + alldayCheckPermission = new RegExp('^' + cssPrefix + 'schedule(-title)?$'), + timeGetViewID = new RegExp('^' + cssPrefix + 'time-date[\\s]tui-view-(\\d+)'); + +var config = { + throwError: function(msg) { + throw new Error(msg); + }, + + cssPrefix: cssPrefix, + + classname: function(str) { + str = str || ''; + + if (str.charAt(0) === '.') { + return '.' + config.cssPrefix + str.slice(1); + } + + return config.cssPrefix + str; + }, + + allday: { + getViewIDRegExp: alldayGetViewID, + checkCondRegExp: alldayCheckPermission + }, + + daygrid: { + getViewIDRegExp: alldayGetViewID, + checkCondRegExp: alldayCheckPermission + }, + + time: { + getViewIDRegExp: timeGetViewID + } +}; + +module.exports = config; + + +/***/ }), + +/***/ "./src/js/controller/base.js": +/*!***********************************!*\ + !*** ./src/js/controller/base.js ***! + \***********************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; +/** + * @fileoverview Base calendar controller + * @author NHN FE Development Lab + */ + + +var util = __webpack_require__(/*! tui-code-snippet */ "tui-code-snippet"); +var Schedule = __webpack_require__(/*! ../model/schedule */ "./src/js/model/schedule.js"); +var ScheduleViewModel = __webpack_require__(/*! ../model/viewModel/scheduleViewModel */ "./src/js/model/viewModel/scheduleViewModel.js"); +var datetime = __webpack_require__(/*! ../common/datetime */ "./src/js/common/datetime.js"); +var common = __webpack_require__(/*! ../common/common */ "./src/js/common/common.js"); +var Theme = __webpack_require__(/*! ../theme/theme */ "./src/js/theme/theme.js"); +var tz = __webpack_require__(/*! ../common/timezone */ "./src/js/common/timezone.js"); +var TZDate = tz.Date; + +/** + * Get range date by custom timezone or native timezone + * @param {Schedule} schedule The instance of schedule. + * @returns {RangeDate} start and end date + */ +function getRangeDateByOffset(schedule) { + var scheduleStart = schedule.getStarts(); + var scheduleEnd = schedule.getEnds(); + var start = datetime.start(scheduleStart); + var equalStartEnd = datetime.compare(scheduleStart, scheduleEnd) === 0; + var endDate = equalStartEnd ? scheduleEnd : datetime.convertStartDayToLastDay(scheduleEnd); + var end = datetime.end(endDate); + + var nativeOffsetMs = tz.getNativeOffsetMs(); + var startOffset = scheduleStart.toDate().getTimezoneOffset(); + var MIN_TO_MS = 60 * 1000; + var offsetDiffMs = 0; + + var primaryTimezoneName = tz.getPrimaryTimezoneName(); + var primaryOffset = tz.getPrimaryOffset(); + var timezoneOffset = tz.getOffsetByTimezoneName(primaryTimezoneName, scheduleStart.getTime()); + + if (tz.isNativeOsUsingDSTTimezone() && nativeOffsetMs !== startOffset) { + // When using a custom time zone, the native time zone offset is fixed and rendered. + // So, The fixed and rendered time should be recalculated as the original time zone offset. + offsetDiffMs = (startOffset * MIN_TO_MS) - nativeOffsetMs; + } + + if (tz.isPrimaryUsingDSTTimezone() && primaryOffset !== timezoneOffset) { + // The custom time zone is a time zone where two offsets including DST are applied. + // The first rendered schedule is calculated and drawn with the offset calculated at the access time(system OS local time). + // It should be recalculated with the original time zone offset. + offsetDiffMs = (primaryOffset - timezoneOffset) * MIN_TO_MS; + } + + start = datetime.start(scheduleStart.getUTCTime() + offsetDiffMs); + end = datetime.end( + datetime.convertStartDayToLastDay(new TZDate(scheduleEnd.getUTCTime() + offsetDiffMs)) + ); + + return { + start: start, + end: end + }; +} + +/** + * @constructor + * @param {object} options - options for base controller + * @param {function} [options.groupFunc] - function for group each models {@see Collection#groupBy} + * @param {themeConfig} [options.theme] - theme object + * @mixes util.CustomEvents + */ +function Base(options) { + options = options || {}; + + /** + * function for group each schedule models. + * @type {function} + * @param {ScheduleViewModel} viewModel - view model instance + * @returns {string} group key + */ + this.groupFunc = + options.groupFunc || + function(viewModel) { + var model = viewModel.model; + + if (viewModel.model.isAllDay) { + return 'allday'; + } + + if ( + model.category === 'time' && + model.end - model.start > datetime.MILLISECONDS_PER_DAY + ) { + return 'allday'; + } + + return model.category; + }; + + /** + * schedules collection. + * @type {Collection} + */ + this.schedules = common.createScheduleCollection(); + + /** + * Matrix for multidate schedules. + * @type {object.} + */ + this.dateMatrix = {}; + + /** + * Theme + * @type {Theme} + */ + this.theme = new Theme(options.theme); + + /** + * Calendar list + * @type {Array.} + */ + this.calendars = []; +} + +/** + * Calculate contain dates in schedule. + * @private + * @param {Schedule} schedule The instance of schedule. + * @returns {array} contain dates. + */ +Base.prototype._getContainDatesInSchedule = function(schedule) { + var scheduleStart = schedule.getStarts(); + var scheduleEnd = schedule.getEnds(); + var start = datetime.start(scheduleStart); + var equalStartEnd = datetime.compare(scheduleStart, scheduleEnd) === 0; + var endDate = equalStartEnd ? scheduleEnd : datetime.convertStartDayToLastDay(scheduleEnd); + var end = datetime.end(endDate); + var rangeDateByOffset; + + if (tz.hasPrimaryTimezoneCustomSetting()) { + rangeDateByOffset = getRangeDateByOffset(schedule); + start = rangeDateByOffset.start; + end = rangeDateByOffset.end; + } + + return datetime.range(start, end, datetime.MILLISECONDS_PER_DAY); +}; + +/**************** + * CRUD Schedule + ****************/ + +/** + * Create a schedule instance from raw data. + * @emits Base#beforeCreateSchedule + * @emits Base#createdSchedule + * @param {object} options Data object to create schedule. + * @param {boolean} silent - set true then don't fire events. + * @returns {Schedule} The instance of Schedule that created. + */ +Base.prototype.createSchedule = function(options, silent) { + var schedule, + scheduleData = { + data: options + }; + + /** + * @event Base#beforeCreateSchedule + * @type {Calendar~Schedule[]} + */ + if (!this.invoke('beforeCreateSchedule', scheduleData)) { + return null; + } + + schedule = this.addSchedule(Schedule.create(options)); + + if (!silent) { + /** + * @event Base#createdSchedule + * @type {Schedule} + */ + this.fire('createdSchedule', schedule); + } + + return schedule; +}; + +/** + * @emits Base#beforeCreateSchedule + * @emits Base#createdSchedule + * @param {Calendar~Schedule[]} dataList - dataObject list to create schedule. + * @param {boolean} [silent=false] - set true then don't fire events. + * @returns {Schedule[]} The instance list of Schedule that created. + */ +Base.prototype.createSchedules = function(dataList, silent) { + var self = this; + + return util.map(dataList, function(data) { + return self.createSchedule(data, silent); + }); +}; + +/** + * Update a schedule. + * @emits Base#updateSchedule + * @param {Schedule} schedule - schedule instance to update + * @param {object} options updated object data. + * @returns {Schedule} updated schedule instance + */ +// eslint-disable-next-line complexity +Base.prototype.updateSchedule = function(schedule, options) { + var start = options.start || schedule.start; + var end = options.end || schedule.end; + + options = options || {}; + + if (['milestone', 'task', 'allday', 'time'].indexOf(options.category) > -1) { + schedule.set('category', options.category); + } + + if (options.category === 'allday') { + options.isAllDay = true; + } + + if (!util.isUndefined(options.isAllDay)) { + schedule.set('isAllDay', options.isAllDay); + } + + if (!util.isUndefined(options.calendarId)) { + schedule.set('calendarId', options.calendarId); + } + + if (options.title) { + schedule.set('title', options.title); + } + + if (options.body) { + schedule.set('body', options.body); + } + + if (options.start || options.end) { + if (schedule.isAllDay) { + schedule.setAllDayPeriod(start, end); + } else { + schedule.setTimePeriod(start, end); + } + } + + if (options.color) { + schedule.set('color', options.color); + } + + if (options.bgColor) { + schedule.set('bgColor', options.bgColor); + } + + if (options.borderColor) { + schedule.set('borderColor', options.borderColor); + } + + if (options.origin) { + schedule.set('origin', options.origin); + } + + if (!util.isUndefined(options.isPending)) { + schedule.set('isPending', options.isPending); + } + + if (!util.isUndefined(options.isFocused)) { + schedule.set('isFocused', options.isFocused); + } + + if (!util.isUndefined(options.isReadOnly)) { + schedule.set('isReadOnly', options.isReadOnly); + } + + if (options.location) { + schedule.set('location', options.location); + } + + if (options.state) { + schedule.set('state', options.state); + } + + if (options.raw) { + schedule.set('raw', options.raw); + } + + if (options.attendees) { + schedule.set('attendees', options.attendees); + } + + this._removeFromMatrix(schedule); + this._addToMatrix(schedule); + + /** + * @event Base#updateSchedule + */ + this.fire('updateSchedule'); + + return schedule; +}; + +/** + * Delete schedule instance from controller. + * @param {Schedule} schedule - schedule instance to delete + * @returns {Schedule} deleted model instance. + */ +Base.prototype.deleteSchedule = function(schedule) { + this._removeFromMatrix(schedule); + this.schedules.remove(schedule); + + return schedule; +}; + +/** + * Set date matrix to supplied schedule instance. + * @param {Schedule} schedule - instance of schedule. + */ +Base.prototype._addToMatrix = function(schedule) { + var ownMatrix = this.dateMatrix; + var containDates = this._getContainDatesInSchedule(schedule); + + util.forEach(containDates, function(date) { + var ymd = datetime.format(date, 'YYYYMMDD'), + matrix = (ownMatrix[ymd] = ownMatrix[ymd] || []); + + matrix.push(util.stamp(schedule)); + }); +}; + +/** + * Remove schedule's id from matrix. + * @param {Schedule} schedule - instance of schedule + */ +Base.prototype._removeFromMatrix = function(schedule) { + var modelID = util.stamp(schedule); + + util.forEach( + this.dateMatrix, + function(matrix) { + var index = util.inArray(modelID, matrix); + + if (~index) { + matrix.splice(index, 1); + } + }, + this + ); +}; + +/** + * Add a schedule instance. + * @emits Base#addedSchedule + * @param {Schedule} schedule The instance of Schedule. + * @param {boolean} silent - set true then don't fire events. + * @returns {Schedule} The instance of Schedule that added. + */ +Base.prototype.addSchedule = function(schedule, silent) { + this.schedules.add(schedule); + this._addToMatrix(schedule); + + if (!silent) { + /** + * @event Base#addedSchedule + * @type {object} + */ + this.fire('addedSchedule', schedule); + } + + return schedule; +}; + +/** + * split schedule model by ymd. + * @param {Date} start - start date + * @param {Date} end - end date + * @param {Collection} scheduleCollection - collection of schedule model. + * @returns {object.} splitted schedule model collections. + */ +Base.prototype.splitScheduleByDateRange = function(start, end, scheduleCollection) { + var range = datetime.range( + datetime.start(start), + datetime.end(end), + datetime.MILLISECONDS_PER_DAY + ), + ownMatrix = this.dateMatrix, + result = {}; + + util.forEachArray(range, function(date) { + var ymd = datetime.format(date, 'YYYYMMDD'), + matrix = ownMatrix[ymd], + collection; + + collection = result[ymd] = common.createScheduleCollection(); + + if (matrix && matrix.length) { + util.forEachArray(matrix, function(id) { + scheduleCollection.doWhenHas(id, function(schedule) { + collection.add(schedule); + }); + }); + } + }); + + return result; +}; + +/** + * Return schedules in supplied date range. + * + * available only YMD. + * @param {TZDate} start start date. + * @param {TZDate} end end date. + * @returns {object.} schedule collection grouped by dates. + */ +Base.prototype.findByDateRange = function(start, end) { + var range = datetime.range( + datetime.start(start), + datetime.end(end), + datetime.MILLISECONDS_PER_DAY + ), + ownSchedules = this.schedules.items, + ownMatrix = this.dateMatrix, + dformat = datetime.format, + result = {}, + matrix, + ymd, + viewModels; + + util.forEachArray(range, function(date) { + ymd = dformat(date, 'YYYYMMDD'); + matrix = ownMatrix[ymd]; + viewModels = result[ymd] = common.createScheduleCollection(); + + if (matrix && matrix.length) { + viewModels.add.apply( + viewModels, + util.map(matrix, function(id) { + return ScheduleViewModel.create(ownSchedules[id]); + }) + ); + } + }); + + return result; +}; + +Base.prototype.clearSchedules = function() { + this.dateMatrix = {}; + this.schedules.clear(); + /** + * for inner view when clear schedules + * @event Base#clearSchedules + * @type {Schedule} + */ + this.fire('clearSchedules'); +}; + +/** + * Set a theme. + * @param {themeConfig} theme - theme keys, styles + * @returns {Array.} keys - error keys not predefined. + */ +Base.prototype.setTheme = function(theme) { + return this.theme.setStyles(theme); +}; + +/** + * Set calendar list + * @param {Array.} calendars - calendar list + */ +Base.prototype.setCalendars = function(calendars) { + this.calendars = calendars; +}; + +// mixin +util.CustomEvents.mixin(Base); + +module.exports = Base; + + +/***/ }), + +/***/ "./src/js/controller/viewMixin/core.js": +/*!*********************************************!*\ + !*** ./src/js/controller/viewMixin/core.js ***! + \*********************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; +/** + * @fileoverview Core methods for schedule block placing + * @author NHN FE Development Lab + */ + + +var util = __webpack_require__(/*! tui-code-snippet */ "tui-code-snippet"); +var forEachArr = util.forEachArray, + aps = Array.prototype.slice; + +var datetime = __webpack_require__(/*! ../../common/datetime */ "./src/js/common/datetime.js"); +var tz = __webpack_require__(/*! ../../common/timezone */ "./src/js/common/timezone.js"); +var TZDate = tz.Date; +var Collection = __webpack_require__(/*! ../../common/collection */ "./src/js/common/collection.js"); +var ScheduleViewModel = __webpack_require__(/*! ../../model/viewModel/scheduleViewModel */ "./src/js/model/viewModel/scheduleViewModel.js"); + +var Core = { + /** + * Calculate collision group. + * @param {array} viewModels List of viewmodels. + * @returns {array} Collision Group. + */ + getCollisionGroup: function(viewModels) { + var collisionGroups = [], + foundPrevCollisionSchedule = false, + previousScheduleList; + + if (!viewModels.length) { + return collisionGroups; + } + + collisionGroups[0] = [util.stamp(viewModels[0].valueOf())]; + forEachArr(viewModels.slice(1), function(schedule, index) { + foundPrevCollisionSchedule = false; + previousScheduleList = aps.apply(viewModels, [0, index + 1]).reverse(); + + forEachArr(previousScheduleList, function(previous) { + if (schedule.collidesWith(previous)) { + // If overlapping previous schedules, find a Collision Group of overlapping schedules and add this schedules + foundPrevCollisionSchedule = true; + + forEachArr(collisionGroups.slice(0).reverse(), function(group) { + if (~util.inArray(util.stamp(previous.valueOf()), group)) { + // If you find a previous schedule that overlaps, include it in the Collision Group to which it belongs. + group.push(util.stamp(schedule.valueOf())); + + return false; // returning false can stop this loop + } + + return true; + }); + + return false; // returning false can stop this loop + } + + return true; + }); + + if (!foundPrevCollisionSchedule) { + // This schedule is a schedule that does not overlap with the previous schedule, so a new Collision Group is constructed. + collisionGroups.push([util.stamp(schedule.valueOf())]); + } + }); + + return collisionGroups; + }, + + /** + * Get row length by column index in 2d matrix. + * @param {array[]} arr2d Matrix + * @param {number} col Column index. + * @returns {number} Last row number in column. + */ + getLastRowInColumn: function(arr2d, col) { + var row = arr2d.length; + + while (row > 0) { + row -= 1; + if (!util.isUndefined(arr2d[row][col])) { + return row; + } + } + + return false; + }, + + /** + * Calculate matrix for appointment block element placing. + * @param {Collection} collection model collection. + * @param {array[]} collisionGroups Collision groups for schedule set. + * @returns {array} matrices + */ + getMatrices: function(collection, collisionGroups) { + var result = [], + getLastRowInColumn = Core.getLastRowInColumn; + + forEachArr(collisionGroups, function(group) { + var matrix = [[]]; + + forEachArr(group, function(scheduleID) { + var schedule = collection.items[scheduleID], + col = 0, + found = false, + nextRow, + lastRowInColumn; + + while (!found) { + lastRowInColumn = getLastRowInColumn(matrix, col); + + if (lastRowInColumn === false) { + matrix[0].push(schedule); + found = true; + } else if (!schedule.collidesWith(matrix[lastRowInColumn][col])) { + nextRow = lastRowInColumn + 1; + if (util.isUndefined(matrix[nextRow])) { + matrix[nextRow] = []; + } + matrix[nextRow][col] = schedule; + found = true; + } + + col += 1; + } + }); + + result.push(matrix); + }); + + return result; + }, + + /** + * Filter that get schedule model in supplied date ranges. + * @param {Date} start - start date + * @param {Date} end - end date + * @returns {function} schedule filter function + */ + getScheduleInDateRangeFilter: function(start, end) { + return function(model) { + var ownStarts = model.getStarts(), + ownEnds = model.getEnds(); + var dateByOffset; + + if (tz.hasPrimaryTimezoneCustomSetting()) { + dateByOffset = recalculateDateByOffset(ownStarts, ownEnds); + ownStarts = dateByOffset.start; + ownEnds = dateByOffset.end; + } + + // shorthand condition of + // + // (ownStarts >= start && ownEnds <= end) || + // (ownStarts < start && ownEnds >= start) || + // (ownEnds > end && ownStarts <= end) + return !(ownEnds < start || ownStarts > end); + }; + }, + + /** + * Position each view model for placing into container + * @param {Date} start - start date to render + * @param {Date} end - end date to render + * @param {array} matrices - matrices from controller + * @param {function} [iteratee] - iteratee function invoke each view models + */ + positionViewModels: function(start, end, matrices, iteratee) { + var ymdListToRender; + + ymdListToRender = util.map( + datetime.range(start, end, datetime.MILLISECONDS_PER_DAY), + function(date) { + return datetime.format(date, 'YYYYMMDD'); + } + ); + + forEachArr(matrices, function(matrix) { + forEachArr(matrix, function(column) { + forEachArr(column, function(viewModel, index) { + var ymd, dateLength, startDate, endDate; + + if (!viewModel) { + return; + } + + startDate = viewModel.getStarts(); + endDate = viewModel.getEnds(); + dateLength = datetime.range( + datetime.start(startDate), + datetime.renderEnd(startDate, endDate), + datetime.MILLISECONDS_PER_DAY + ).length; + + ymd = datetime.format(startDate, 'YYYYMMDD'); + viewModel.top = index; + viewModel.left = util.inArray(ymd, ymdListToRender); + viewModel.width = dateLength; + + if (iteratee) { + iteratee(viewModel); + } + }); + }); + }); + }, + + /** + * Limit start, end date each view model for render properly + * @param {TZDate} start - start date to render + * @param {TZDate} end - end date to render + * @param {Collection|ScheduleViewModel} viewModelColl - schedule view + * model collection or ScheduleViewModel + * @returns {ScheduleViewModel} return view model when third parameter is + * view model + */ + limitRenderRange: function(start, end, viewModelColl) { + /** + * Limit render range for view models + * @param {ScheduleViewModel} viewModel - view model instance + * @returns {ScheduleViewModel} view model that limited render range + */ + function limit(viewModel) { + if (viewModel.getStarts() < start) { + viewModel.exceedLeft = true; + viewModel.renderStarts = new TZDate(start); + } + + if (viewModel.getEnds() > end) { + viewModel.exceedRight = true; + viewModel.renderEnds = new TZDate(end); + } + + return viewModel; + } + + if (viewModelColl.constructor === Collection) { + viewModelColl.each(limit); + + return null; + } + + return limit(viewModelColl); + }, + + /** + * Convert schedule model collection to view model collection. + * @param {Collection} modelColl - collection of schedule model + * @returns {Collection} collection of schedule view model + */ + convertToViewModel: function(modelColl) { + var viewModelColl; + + viewModelColl = new Collection(function(viewModel) { + return viewModel.cid(); + }); + + modelColl.each(function(model) { + viewModelColl.add(ScheduleViewModel.create(model)); + }); + + return viewModelColl; + } +}; + +/** + * Get range date by custom timezone or native timezone + * @param {TZDate} ownStarts start date. + * @param {TZDate} ownEnds end date. + * @returns {RangeDate} recalculated start and end date + */ +function recalculateDateByOffset(ownStarts, ownEnds) { + var nativeOffsetMs = tz.getNativeOffsetMs(); + var startOffset = ownStarts.toDate().getTimezoneOffset(); + var MIN_TO_MS = 60 * 1000; + var offsetDiffMs = 0; + + var primaryTimezoneName = tz.getPrimaryTimezoneName(); + var primaryOffset = tz.getPrimaryOffset(); + var timezoneOffset = tz.getOffsetByTimezoneName(primaryTimezoneName, ownStarts.getTime()); + + if (tz.isNativeOsUsingDSTTimezone() && nativeOffsetMs !== startOffset) { + // When using a custom time zone, the native time zone offset is fixed and rendered. + // So, The fixed and rendered time should be recalculated as the original time zone offset. + offsetDiffMs = (startOffset * MIN_TO_MS) - nativeOffsetMs; + } + + if (tz.isPrimaryUsingDSTTimezone() && primaryOffset !== timezoneOffset) { + // The custom time zone is a time zone where two offsets including DST are applied. + // The first rendered schedule is calculated and drawn with the offset calculated at the access time(system OS local time). + // It should be recalculated with the original time zone offset. + offsetDiffMs = (primaryOffset - timezoneOffset) * MIN_TO_MS; + } + + return { + start: new TZDate(ownStarts.getUTCTime() + offsetDiffMs), + end: new TZDate(ownEnds.getUTCTime() + offsetDiffMs) + }; +} + +module.exports = Core; + + +/***/ }), + +/***/ "./src/js/controller/viewMixin/month.js": +/*!**********************************************!*\ + !*** ./src/js/controller/viewMixin/month.js ***! + \**********************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; +/** + * @fileoverview Controller mixin for Month View + * @author NHN FE Development Lab + */ + + +var util = __webpack_require__(/*! tui-code-snippet */ "tui-code-snippet"); +var array = __webpack_require__(/*! ../../common/array */ "./src/js/common/array.js"), + datetime = __webpack_require__(/*! ../../common/datetime */ "./src/js/common/datetime.js"), + Collection = __webpack_require__(/*! ../../common/collection */ "./src/js/common/collection.js"); +var mmax = Math.max; + +var Month = { + /** + * Filter function for find time schedule + * @param {ScheduleViewModel} viewModel - schedule view model + * @returns {boolean} whether model is time schedule? + */ + _onlyTimeFilter: function(viewModel) { + return !viewModel.model.isAllDay && !viewModel.hasMultiDates; + }, + + /** + * Filter function for find allday schedule + * @param {ScheduleViewModel} viewModel - schedule view model + * @returns {boolean} whether model is allday schedule? + */ + _onlyAlldayFilter: function(viewModel) { + return viewModel.model.isAllDay || viewModel.hasMultiDates; + }, + + /** + * Weight top value +1 for month view render + * @param {ScheduleViewModel} viewModel - schedule view model + */ + _weightTopValue: function(viewModel) { + viewModel.top = viewModel.top || 0; + viewModel.top += 1; + }, + + /** + * Adjust render range to render properly. + * + * Limit start, end for each allday schedules and expand start, end for + * each time schedules + * @this Base + * @param {TZDate} start - render start date + * @param {TZDate} end - render end date + * @param {Collection} vColl - view model collection + * property. + */ + _adjustRenderRange: function(start, end, vColl) { + var ctrlCore = this.Core; + + vColl.each(function(viewModel) { + if (viewModel.model.isAllDay || viewModel.hasMultiDates) { + ctrlCore.limitRenderRange(start, end, viewModel); + } + }); + }, + + /** + * Get max top index value for allday schedules in specific date (YMD) + * @this Base + * @param {string} ymd - yyyymmdd formatted value + * @param {Collection} vAlldayColl - collection of allday schedules + * @returns {number} max top index value in date + */ + _getAlldayMaxTopIndexAtYMD: function(ymd, vAlldayColl) { + var dateMatrix = this.dateMatrix, + topIndexesInDate = []; + util.forEach(dateMatrix[ymd], function(cid) { + vAlldayColl.doWhenHas(cid, function(viewModel) { + topIndexesInDate.push(viewModel.top); + }); + }); + + if (topIndexesInDate.length > 0) { + return mmax.apply(null, topIndexesInDate); + } + + return 0; + }, + + /** + * Adjust time view model's top index value + * @this Base + * @param {Collection} vColl - collection of schedules + */ + _adjustTimeTopIndex: function(vColl) { + var ctrlMonth = this.Month; + var getAlldayMaxTopIndexAtYMD = ctrlMonth._getAlldayMaxTopIndexAtYMD; + var vAlldayColl = vColl.find(ctrlMonth._onlyAlldayFilter); + var sortedTimeSchedules = vColl.find(ctrlMonth._onlyTimeFilter).sort(array.compare.schedule.asc); + var maxIndexInYMD = {}; + + sortedTimeSchedules.forEach(function(timeViewModel) { + var scheduleYMD = datetime.format(timeViewModel.getStarts(), 'YYYYMMDD'); + var alldayMaxTopInYMD = maxIndexInYMD[scheduleYMD]; + + if (util.isUndefined(alldayMaxTopInYMD)) { + alldayMaxTopInYMD = maxIndexInYMD[scheduleYMD] = + getAlldayMaxTopIndexAtYMD(scheduleYMD, vAlldayColl); + } + maxIndexInYMD[scheduleYMD] = timeViewModel.top = + (alldayMaxTopInYMD + 1); + }); + }, + + /** + * Adjust time view model's top index value + * @this Base + * @param {Collection} vColl - collection of schedules + */ + _stackTimeFromTop: function(vColl) { + var ctrlMonth = this.Month; + var vAlldayColl = vColl.find(ctrlMonth._onlyAlldayFilter); + var sortedTimeSchedules = vColl.find(ctrlMonth._onlyTimeFilter).sort(array.compare.schedule.asc); + var indiceInYMD = {}; + var dateMatrix = this.dateMatrix; + + sortedTimeSchedules.forEach(function(timeViewModel) { + var scheduleYMD = datetime.format(timeViewModel.getStarts(), 'YYYYMMDD'); + var topArrayInYMD = indiceInYMD[scheduleYMD]; + var maxTopInYMD; + var i; + + if (util.isUndefined(topArrayInYMD)) { + topArrayInYMD = indiceInYMD[scheduleYMD] = []; + util.forEach(dateMatrix[scheduleYMD], function(cid) { + vAlldayColl.doWhenHas(cid, function(viewModel) { + topArrayInYMD.push(viewModel.top); + }); + }); + } + + if (util.inArray(timeViewModel.top, topArrayInYMD) >= 0) { + maxTopInYMD = mmax.apply(null, topArrayInYMD) + 1; + for (i = 1; i <= maxTopInYMD; i += 1) { + timeViewModel.top = i; + if (util.inArray(timeViewModel.top, topArrayInYMD) < 0) { + break; + } + } + } + topArrayInYMD.push(timeViewModel.top); + }); + }, + + /** + * Convert multi-date time schedule to all-day schedule + * @this Base + * @param {Collection} vColl - view model collection + * property. + */ + _addMultiDatesInfo: function(vColl) { + vColl.each(function(viewModel) { + var model = viewModel.model; + var start = model.getStarts(); + var end = model.getEnds(); + + viewModel.hasMultiDates = datetime.hasMultiDates(start, end); + + if (!model.isAllDay && viewModel.hasMultiDates) { + viewModel.renderStarts = datetime.start(start); + viewModel.renderEnds = datetime.renderEnd(start, end); + } + }); + }, + + /** + * Find schedule and get view model for specific month + * @this Base + * @param {TZDate} start - start date to find schedules + * @param {TZDate} end - end date to find schedules + * @param {function[]} [andFilters] - optional filters to applying search query + * @param {boolean} [alldayFirstMode=false] if true, time schedule is lower than all-day schedule. Or stack schedules from the top. + * @returns {object} view model data + */ + findByDateRange: function(start, end, andFilters, alldayFirstMode) { + var ctrlCore = this.Core, + ctrlMonth = this.Month, + filter = ctrlCore.getScheduleInDateRangeFilter(start, end), + coll, vColl, vList, + collisionGroup, + matrices; + + alldayFirstMode = alldayFirstMode || false; + andFilters = andFilters || []; + filter = Collection.and.apply(null, [filter].concat(andFilters)); + + coll = this.schedules.find(filter); + vColl = ctrlCore.convertToViewModel(coll); + ctrlMonth._addMultiDatesInfo(vColl); + ctrlMonth._adjustRenderRange(start, end, vColl); + vList = vColl.sort(array.compare.schedule.asc); + + collisionGroup = ctrlCore.getCollisionGroup(vList); + matrices = ctrlCore.getMatrices(vColl, collisionGroup); + ctrlCore.positionViewModels(start, end, matrices, ctrlMonth._weightTopValue); + if (alldayFirstMode) { + ctrlMonth._adjustTimeTopIndex(vColl); + } else { + ctrlMonth._stackTimeFromTop(vColl); + } + + return matrices; + } +}; + +module.exports = Month; + + +/***/ }), + +/***/ "./src/js/controller/viewMixin/week.js": +/*!*********************************************!*\ + !*** ./src/js/controller/viewMixin/week.js ***! + \*********************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; +/* eslint no-shadow: 0 */ +/** + * @fileoverview Controller mixin modules for day views. + * @author NHN FE Development Lab + */ + + +var util = __webpack_require__(/*! tui-code-snippet */ "tui-code-snippet"); + +var Collection = __webpack_require__(/*! ../../common/collection */ "./src/js/common/collection.js"); +var array = __webpack_require__(/*! ../../common/array */ "./src/js/common/array.js"); +var datetime = __webpack_require__(/*! ../../common/datetime */ "./src/js/common/datetime.js"); +var TZDate = __webpack_require__(/*! ../../common/timezone */ "./src/js/common/timezone.js").Date; + +var SCHEDULE_MIN_DURATION = datetime.MILLISECONDS_SCHEDULE_MIN_DURATION; + +/** + * @mixin Base.Week + */ +var Week = { + /********** + * TIME GRID VIEW + **********/ + + /** + * Make array with start and end times on schedules. + * @this Base.Week + * @param {array[]} matrix - matrix from controller. + * @returns {array[]} starttime, endtime array (exclude first row's schedules) + */ + generateTimeArrayInRow: function(matrix) { + var row, + col, + schedule, + start, + end, + map = [], + cursor = [], + maxColLen = Math.max.apply(null, util.map(matrix, function(col) { + return col.length; + })); + + for (col = 1; col < maxColLen; col += 1) { + row = 0; + schedule = util.pick(matrix, row, col); + + while (schedule) { + start = schedule.getStarts().getTime() - datetime.millisecondsFrom('minutes', schedule.valueOf().goingDuration); + end = schedule.getEnds().getTime() + datetime.millisecondsFrom('minutes', schedule.valueOf().comingDuration); + + if (Math.abs(end - start) < SCHEDULE_MIN_DURATION) { + end += SCHEDULE_MIN_DURATION; + } + + cursor.push([start, end]); + + row += 1; + schedule = util.pick(matrix, row, col); + } + + map.push(cursor); + cursor = []; + } + + return map; + }, + + /** + * Get collision information from list + * @this Base + * @param {array.} arr - list to detecting collision. [[start, end], [start, end]] + * @param {number} start - schedule start time that want to detect collisions. + * @param {number} end - schedule end time that want to detect collisions. + * @returns {boolean} target has collide in supplied array? + */ + hasCollide: function(arr, start, end) { + var startStart, + startEnd, + endStart, + endEnd, + getFunc = function(index) { + return function(block) { + return block[index]; + }; + }, + abs = Math.abs, + compare = array.compare.num.asc, + hasCollide; + + if (!arr.length) { + return false; + } + + startStart = abs(array.bsearch(arr, start, getFunc(0), compare)); + startEnd = abs(array.bsearch(arr, start, getFunc(1), compare)); + endStart = abs(array.bsearch(arr, end, getFunc(0), compare)); + endEnd = abs(array.bsearch(arr, end, getFunc(1), compare)); + hasCollide = !(startStart === startEnd && startEnd === endStart && endStart === endEnd); + + return hasCollide; + }, + + /** + * Initialize values to viewmodels for detect real collision at rendering phase. + * @this Base + * @param {array[]} matrices - Matrix data. + */ + getCollides: function(matrices) { + util.forEachArray(matrices, function(matrix) { + var binaryMap, + maxRowLength; + + binaryMap = Week.generateTimeArrayInRow(matrix); + maxRowLength = Math.max.apply(null, util.map(matrix, function(row) { + return row.length; + })); + + util.forEachArray(matrix, function(row) { + util.forEachArray(row, function(viewModel, col) { + var startTime, + endTime, + hasCollide, + i; + + if (!viewModel) { + return; + } + + startTime = viewModel.getStarts().getTime(); + endTime = viewModel.getEnds().getTime(); + + if (Math.abs(endTime - startTime) < SCHEDULE_MIN_DURATION) { + endTime += SCHEDULE_MIN_DURATION; + } + + startTime -= datetime.millisecondsFrom('minutes', viewModel.valueOf().goingDuration); + endTime += datetime.millisecondsFrom('minutes', viewModel.valueOf().comingDuration); + + endTime -= 1; + + for (i = (col + 1); i < maxRowLength; i += 1) { + hasCollide = Week.hasCollide(binaryMap[i - 1], startTime, endTime); + + if (hasCollide) { + viewModel.hasCollide = true; + break; + } + + viewModel.extraSpace += 1; + } + }); + }); + }); + }, + + /** + * create view model for time view part + * @this Base + * @param {Date} start - start date. + * @param {Date} end - end date. + * @param {Collection} time - view model collection. + * @param {number} hourStart - start hour to be shown + * @param {number} hourEnd - end hour to be shown + * @returns {object} view model for time part. + */ + getViewModelForTimeView: function(start, end, time, hourStart, hourEnd) { + var self = this, + ymdSplitted = this.splitScheduleByDateRange(start, end, time), + result = {}; + + var _getViewModel = Week._makeGetViewModelFuncForTimeView(hourStart, hourEnd); + + util.forEach(ymdSplitted, function(collection, ymd) { + var viewModels = _getViewModel(collection); + var collisionGroups, matrices; + + collisionGroups = self.Core.getCollisionGroup(viewModels); + matrices = self.Core.getMatrices(collection, collisionGroups); + self.Week.getCollides(matrices); + + result[ymd] = matrices; + }); + + return result; + }, + + /** + * make view model function depending on start and end hour + * if time view option has start or end hour condition + * it add filter + * @param {number} hourStart - start hour to be shown + * @param {number} hourEnd - end hour to be shown + * @returns {function} function + */ + _makeGetViewModelFuncForTimeView: function(hourStart, hourEnd) { + if (hourStart === 0 && hourEnd === 24) { + return function(collection) { + return collection.sort(array.compare.schedule.asc); + }; + } + + return function(collection) { + return collection.find(Week._makeHourRangeFilter(hourStart, hourEnd)) + .sort(array.compare.schedule.asc); + }; + }, + + /** + * make a filter function that is not included range of start, end hour + * @param {number} hStart - hour start + * @param {number} hEnd - hour end + * @returns {function} - filtering function + */ + _makeHourRangeFilter: function(hStart, hEnd) { + // eslint-disable-next-line complexity + return function(schedule) { + var ownHourStart = schedule.model.start; + var ownHourEnd = schedule.model.end; + var yyyy = ownHourStart.getFullYear(); + var mm = ownHourStart.getMonth(); + var dd = ownHourStart.getDate(); + + var hourStart = new TZDate(yyyy, mm, dd).setHours(hStart); + var hourEnd = new TZDate(yyyy, mm, dd).setHours(hEnd); + + return (ownHourStart >= hourStart && ownHourStart < hourEnd) || + (ownHourEnd > hourStart && ownHourEnd <= hourEnd) || + (ownHourStart < hourStart && ownHourEnd > hourStart) || + (ownHourEnd > hourEnd && ownHourStart < hourEnd); + }; + }, + + /********** + * ALLDAY VIEW + **********/ + + /** + * Set hasMultiDates flag to true and set date ranges for rendering + * @this Base + * @param {Collection} vColl - view model collection + */ + _addMultiDatesInfo: function(vColl) { + vColl.each(function(viewModel) { + var model = viewModel.model; + var start = model.getStarts(); + var end = model.getEnds(); + + viewModel.hasMultiDates = true; + viewModel.renderStarts = datetime.start(start); + viewModel.renderEnds = datetime.renderEnd(start, end); + }); + }, + + /** + * create view model for allday view part + * @this Base + * @param {Date} start start date. + * @param {Date} end end date. + * @param {Collection} viewModelColl - allday schedule viewModel viewModels. + * @returns {object} allday viewModel. + */ + getViewModelForAlldayView: function(start, end, viewModelColl) { + var ctrlCore = this.Core, + ctrlWeek = this.Week, + viewModels, + collisionGroups, + matrices; + + if (!viewModelColl || !viewModelColl.length) { + return []; + } + + ctrlWeek._addMultiDatesInfo(viewModelColl); + ctrlCore.limitRenderRange(start, end, viewModelColl); + + viewModels = viewModelColl.sort(array.compare.schedule.asc); + collisionGroups = ctrlCore.getCollisionGroup(viewModels); + + matrices = ctrlCore.getMatrices(viewModelColl, collisionGroups); + ctrlCore.positionViewModels(start, end, matrices); + + return matrices; + }, + + /********** + * READ + **********/ + + /** + * Populate schedules in date range. + * @this Base + * @param {Date} start start date. + * @param {Date} end end date. + * @param {Array.} panels - schedule panels like 'milestone', 'task', 'allday', 'time' + * @param {function[]} [andFilters] - optional filters to applying search query + * @param {Object} options - week view options + * @returns {object} schedules grouped by dates. + */ + findByDateRange: function(start, end, panels, andFilters, options) { + var ctrlCore = this.Core, + ctrlWeek = this.Week, + filter = ctrlCore.getScheduleInDateRangeFilter(start, end), + scheduleTypes = util.pluck(panels, 'name'), + hourStart = util.pick(options, 'hourStart'), + hourEnd = util.pick(options, 'hourEnd'), + modelColl, + group; + + andFilters = andFilters || []; + filter = Collection.and.apply(null, [filter].concat(andFilters)); + + modelColl = this.schedules.find(filter); + modelColl = ctrlCore.convertToViewModel(modelColl); + + group = modelColl.groupBy(scheduleTypes, this.groupFunc); + util.forEach(panels, function(panel) { + var name = panel.name; + if (panel.type === 'daygrid') { + group[name] = ctrlWeek.getViewModelForAlldayView(start, end, group[name]); + } else if (panel.type === 'timegrid') { + group[name] = ctrlWeek.getViewModelForTimeView(start, end, group[name], hourStart, hourEnd); + } + }); + + return group; + }, + + /* eslint max-nested-callbacks: 0 */ + /** + * Make exceed date information + * @param {number} maxCount - exceed schedule count + * @param {Array} eventsInDateRange - matrix of ScheduleViewModel + * @param {Array.} range - date range of one week + * @returns {object} exceedDate + */ + getExceedDate: function(maxCount, eventsInDateRange, range) { + var exceedDate = {}; + + util.forEach(range, function(date) { + var ymd = datetime.format(date, 'YYYYMMDD'); + exceedDate[ymd] = 0; + }); + + util.forEach(eventsInDateRange, function(matrix) { + util.forEach(matrix, function(column) { + util.forEach(column, function(viewModel) { + var period; + if (!viewModel || viewModel.top < maxCount) { + return; + } + + period = datetime.range( + viewModel.getStarts(), + viewModel.getEnds(), + datetime.MILLISECONDS_PER_DAY + ); + + util.forEach(period, function(date) { + var ymd = datetime.format(date, 'YYYYMMDD'); + exceedDate[ymd] += 1; + }); + }); + }); + }); + + return exceedDate; + }, + + /** + * Exclude overflow schedules from matrices + * @param {array} matrices - The matrices for schedule placing. + * @param {number} visibleScheduleCount - maximum visible count on panel + * @returns {array} - The matrices for schedule placing except overflowed schedules. + */ + excludeExceedSchedules: function(matrices, visibleScheduleCount) { + return matrices.map(function(matrix) { + return matrix.map(function(row) { + if (row.length > visibleScheduleCount) { + return row.filter(function(item) { + return item.top < visibleScheduleCount; + }, this); + } + + return row; + }, this); + }, this); + } +}; + +module.exports = Week; + + +/***/ }), + +/***/ "./src/js/factory/calendar.js": +/*!************************************!*\ + !*** ./src/js/factory/calendar.js ***! + \************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; +/** + * @fileoverview Factory module for control all other factory. + * @author NHN FE Development Lab + */ + + +var GA_TRACKING_ID = 'UA-129951699-1'; + +var util = __webpack_require__(/*! tui-code-snippet */ "tui-code-snippet"), + Handlebars = __webpack_require__(/*! handlebars-template-loader/runtime */ "./node_modules/handlebars-template-loader/runtime/index.js"); +var dw = __webpack_require__(/*! ../common/dw */ "./src/js/common/dw.js"); +var datetime = __webpack_require__(/*! ../common/datetime */ "./src/js/common/datetime.js"); +var Layout = __webpack_require__(/*! ../view/layout */ "./src/js/view/layout.js"); +var Drag = __webpack_require__(/*! ../handler/drag */ "./src/js/handler/drag.js"); +var controllerFactory = __webpack_require__(/*! ./controller */ "./src/js/factory/controller.js"); +var weekViewFactory = __webpack_require__(/*! ./weekView */ "./src/js/factory/weekView.js"); +var monthViewFactory = __webpack_require__(/*! ./monthView */ "./src/js/factory/monthView.js"); +var tz = __webpack_require__(/*! ../common/timezone */ "./src/js/common/timezone.js"); +var TZDate = tz.Date; +var config = __webpack_require__(/*! ../config */ "./src/js/config.js"); +var reqAnimFrame = __webpack_require__(/*! ../common/reqAnimFrame */ "./src/js/common/reqAnimFrame.js"); + +var mmin = Math.min; + +/** + * Schedule information + * @typedef {object} Schedule + * @property {string} [id] - The unique schedule id depends on calendar id + * @property {string} calendarId - The unique calendar id + * @property {string} [title] - The schedule title + * @property {string} [body] - The schedule body text which is text/plain + * @property {string|TZDate} [start] - The start time. It's 'string' for input. It's 'TZDate' for output like event handler. + * @property {string|TZDate} [end] - The end time. It's 'string' for input. It's 'TZDate' for output like event handler. + * @property {number} [goingDuration] - The travel time: Going duration minutes + * @property {number} [comingDuration] - The travel time: Coming duration minutes + * @property {boolean} [isAllDay] - The all day schedule + * @property {string} [category] - The schedule type('milestone', 'task', allday', 'time') + * @property {string} [dueDateClass] - The task schedule type string + * (any string value is ok and mandatory if category is 'task') + * @property {string} [location] - The location + * @property {Array.} [attendees] - The attendees + * @property {string} [recurrenceRule] - The recurrence rule + * @property {boolean} [isPending] - The in progress flag to do something like network job(The schedule will be transparent.) + * @property {boolean} [isFocused] - The focused schedule flag + * @property {boolean} [isVisible] - The schedule visibility flag + * @property {boolean} [isReadOnly] - The schedule read-only flag + * @property {boolean} [isPrivate] - The private schedule + * @property {string} [color] - The schedule text color + * @property {string} [bgColor] - The schedule background color + * @property {string} [dragBgColor] - The schedule background color when dragging it + * @property {string} [borderColor] - The schedule left border color + * @property {string} [customStyle] - The schedule's custom css class + * @property {any} [raw] - The user data + * @property {string} [state] - The schedule's state ('busy', 'free') + */ + +/** + * Template functions to support customer renderer + * @typedef {object} Template + * @property {function} [milestoneTitle] - The milestone title(at left column) template function + * @property {function} [milestone] - The milestone template function + * @property {function} [taskTitle] - The task title(at left column) template function + * @property {function} [task] - The task template function + * @property {function} [alldayTitle] - The allday title(at left column) template function + * @property {function} [allday] - The allday template function + * @property {function} [time] - The time template function + * @property {function} [goingDuration] - The travel time(going duration) template function + * @property {function} [comingDuration] - The travel time(coming duration) template function + * @property {function} [monthMoreTitleDate] - The month more layer title template function + * @property {function} [monthMoreClose] - The month more layer close button template function + * @property {function} [monthGridHeader] - The month grid header(date, decorator, title) template function + * @property {function} [monthGridHeaderExceed] - The month grid header(exceed schedule count) template function + * @property {function} [monthGridFooter] - The month grid footer(date, decorator, title) template function + * @property {function} [monthGridFooterExceed] - The month grid footer(exceed schedule count) template function + * @property {function} [monthDayname] - The monthly dayname template function + * @property {function} [weekDayname] - The weekly dayname template function + * @property {function} [weekGridFooterExceed] - The week/day grid footer(exceed schedule count) template function + * @property {function} [dayGridTitle] - The week/day grid title template function(e.g. milestone, task, allday) + * @property {function} [schedule] - The week/day schedule template function(When the schedule category attribute is milestone, task, or all day) + * @property {function} [collapseBtnTitle] - The week/day (exceed schedule more view) collapse button title template function + * @property {function} [timezoneDisplayLabel] - The timezone display label template function in time grid + * @property {function} [timegridDisplayPrimayTime] - Deprecated: use 'timegridDisplayPrimaryTime' + * @property {function} [timegridDisplayPrimaryTime] - The display label template function of primary timezone in time grid + * @property {function} [timegridDisplayTime] - The display time template function in time grid + * @property {function} [timegridCurrentTime] - The current time template function in time grid + * @property {function} [popupIsAllDay] - The all day checkbox label text template function in the default creation popup + * @property {function} [popupStateFree] - The free option template function in the state select box of the default creation popup + * @property {function} [popupStateBusy] - The busy option template function in the state select box of the default creation popup + * @property {function} [titlePlaceholder] - The title input placeholder text template function in the default creation popup + * @property {function} [locationPlaceholder] - The location input placeholder text template function in the default creation popup + * @property {function} [startDatePlaceholder] - The start date input placeholder text template function in the default creation popup + * @property {function} [endDatePlaceholder] - The end date input placeholder text template function in the default creation popup + * @property {function} [popupSave] - The 'Save' button text template function in the default creation popup + * @property {function} [popupUpdate] - The 'Update' button text template function in the default creation popup when in edit mode + * @property {function} [popupDetailDate] - The schedule date information's template function on the default detail popup + * @property {function} [popupDetailLocation] - The schedule location text information's template function on the default detail popup + * @property {function} [popupDetailUser] - The schedule user text information's template function on the default detail popup + * @property {function} [popupDetailState] - The schedule state(busy or free) text information's template function on the default detail popup + * @property {function} [popupDetailRepeat] - The schedule repeat information's template function on the default detail popup + * @property {function} [popupDetailBody] - The schedule body text information's template function on the default detail popup + * @property {function} [popupEdit] - The 'Edit' button text template function on the default detail popup + * @property {function} [popupDelete] - The 'Delete' button text template function on the default detail popup + * @example + * var calendar = new tui.Calendar(document.getElementById('calendar'), { + * ... + * template: { + * milestone: function(schedule) { + * return ' ' + schedule.title + ''; + * }, + * milestoneTitle: function() { + * return 'MILESTONE'; + * }, + * task: function(schedule) { + * return '#' + schedule.title; + * }, + * taskTitle: function() { + * return 'TASK'; + * }, + * allday: function(schedule) { + * return getTimeTemplate(schedule, true); + * }, + * alldayTitle: function() { + * return 'ALL DAY'; + * }, + * time: function(schedule) { + * return '' + moment(schedule.start.getTime()).format('HH:mm') + ' ' + schedule.title; + * }, + * goingDuration: function(schedule) { + * return '' + schedule.goingDuration + 'min.'; + * }, + * comingDuration: function(schedule) { + * return '' + schedule.comingDuration + 'min.'; + * }, + * monthMoreTitleDate: function(date, dayname) { + * var day = date.split('.')[2]; + * + * return '' + day + ' ' + dayname + ''; + * }, + * monthMoreClose: function() { + * return ''; + * }, + * monthGridHeader: function(dayModel) { + * var date = parseInt(dayModel.date.split('-')[2], 10); + * var classNames = ['tui-full-calendar-weekday-grid-date ']; + * + * if (dayModel.isToday) { + * classNames.push('tui-full-calendar-weekday-grid-date-decorator'); + * } + * + * return '' + date + ''; + * }, + * monthGridHeaderExceed: function(hiddenSchedules) { + * return '+' + hiddenSchedules + ''; + * }, + * monthGridFooter: function() { + * return ''; + * }, + * monthGridFooterExceed: function(hiddenSchedules) { + * return ''; + * }, + * monthDayname: function(model) { + * return (model.label).toString().toLocaleUpperCase(); + * }, + * weekDayname: function(model) { + * return '' + model.date + '  ' + model.dayName + ''; + * }, + * weekGridFooterExceed: function(hiddenSchedules) { + * return '+' + hiddenSchedules; + * }, + * dayGridTitle: function(viewName) { + * + * // use another functions instead of 'dayGridTitle' + * // milestoneTitle: function() {...} + * // taskTitle: function() {...} + * // alldayTitle: function() {...} + * + * var title = ''; + * switch(viewName) { + * case 'milestone': + * title = 'MILESTONE'; + * break; + * case 'task': + * title = 'TASK'; + * break; + * case 'allday': + * title = 'ALL DAY'; + * break; + * } + * + * return title; + * }, + * schedule: function(schedule) { + * + * // use another functions instead of 'schedule' + * // milestone: function() {...} + * // task: function() {...} + * // allday: function() {...} + * + * var tpl; + * + * switch(category) { + * case 'milestone': + * tpl = ' ' + schedule.title + ''; + * break; + * case 'task': + * tpl = '#' + schedule.title; + * break; + * case 'allday': + * tpl = getTimeTemplate(schedule, true); + * break; + * } + * + * return tpl; + * }, + * collapseBtnTitle: function() { + * return ''; + * }, + * timezoneDisplayLabel: function(timezoneOffset, displayLabel) { + * var gmt, hour, minutes; + * + * if (!displayLabel) { + * gmt = timezoneOffset < 0 ? '-' : '+'; + * hour = Math.abs(parseInt(timezoneOffset / 60, 10)); + * minutes = Math.abs(timezoneOffset % 60); + * displayLabel = gmt + getPadStart(hour) + ':' + getPadStart(minutes); + * } + * + * return displayLabel; + * }, + * timegridDisplayPrimayTime: function(time) { + * // will be deprecated. use 'timegridDisplayPrimaryTime' + * var meridiem = 'am'; + * var hour = time.hour; + * + * if (time.hour > 12) { + * meridiem = 'pm'; + * hour = time.hour - 12; + * } + * + * return hour + ' ' + meridiem; + * }, + * timegridDisplayPrimaryTime: function(time) { + * var meridiem = 'am'; + * var hour = time.hour; + * + * if (time.hour > 12) { + * meridiem = 'pm'; + * hour = time.hour - 12; + * } + * + * return hour + ' ' + meridiem; + * }, + * timegridDisplayTime: function(time) { + * return getPadStart(time.hour) + ':' + getPadStart(time.hour); + * }, + * timegridCurrentTime: function(timezone) { + * var templates = []; + * + * if (timezone.dateDifference) { + * templates.push('[' + timezone.dateDifferenceSign + timezone.dateDifference + ']
'); + * } + * + * templates.push(moment(timezone.hourmarker).format('HH:mm a')); + * + * return templates.join(''); + * }, + * popupIsAllDay: function() { + * return 'All Day'; + * }, + * popupStateFree: function() { + * return 'Free'; + * }, + * popupStateBusy: function() { + * return 'Busy'; + * }, + * titlePlaceholder: function() { + * return 'Subject'; + * }, + * locationPlaceholder: function() { + * return 'Location'; + * }, + * startDatePlaceholder: function() { + * return 'Start date'; + * }, + * endDatePlaceholder: function() { + * return 'End date'; + * }, + * popupSave: function() { + * return 'Save'; + * }, + * popupUpdate: function() { + * return 'Update'; + * }, + * popupDetailDate: function(isAllDay, start, end) { + * var isSameDate = moment(start).isSame(end); + * var endFormat = (isSameDate ? '' : 'YYYY.MM.DD ') + 'hh:mm a'; + * + * if (isAllDay) { + * return moment(start).format('YYYY.MM.DD') + (isSameDate ? '' : ' - ' + moment(end).format('YYYY.MM.DD')); + * } + * + * return (moment(start).format('YYYY.MM.DD hh:mm a') + ' - ' + moment(end).format(endFormat)); + * }, + * popupDetailLocation: function(schedule) { + * return 'Location : ' + schedule.location; + * }, + * popupDetailUser: function(schedule) { + * return 'User : ' + (schedule.attendees || []).join(', '); + * }, + * popupDetailState: function(schedule) { + * return 'State : ' + schedule.state || 'Busy'; + * }, + * popupDetailRepeat: function(schedule) { + * return 'Repeat : ' + schedule.recurrenceRule; + * }, + * popupDetailBody: function(schedule) { + * return 'Body : ' + schedule.body; + * }, + * popupEdit: function() { + * return 'Edit'; + * }, + * popupDelete: function() { + * return 'Delete'; + * } + * } + * } + */ + +/** + * Options for daily, weekly view. + * @typedef {object} WeekOptions + * @property {number} [startDayOfWeek=0] - The start day of week, + * @property {Array.} [daynames] - The day names in weekly and daily. Default values are ['Sun', 'Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat'] + * @property {boolean} [narrowWeekend=false] - Make weekend column narrow(1/2 width) + * @property {boolean} [workweek=false] - Show only 5 days except for weekend + * @property {boolean} [showTimezoneCollapseButton=false] - Show a collapse button to close multiple timezones + * @property {boolean} [timezonesCollapsed=false] - An initial multiple timezones collapsed state + * @property {number} [hourStart=0] - Can limit of render hour start. + * @property {number} [hourEnd=24] - Can limit of render hour end. + */ + +/** + * Options for monthly view. + * @typedef {object} MonthOptions + * @property {Array.} [daynames] - The day names in monthly. Default values are ['Sun', 'Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat'] + * @property {number} [startDayOfWeek=0] - The start day of week + * @property {boolean} [narrowWeekend=false] - Make weekend column narrow(1/2 width) + * @property {number} [visibleWeeksCount=6] - The visible week count in monthly(0 or null are same with 6) + * @property {boolean} [isAlways6Week=true] - Always show 6 weeks. If false, show 5 weeks or 6 weeks based on the month. + * @property {boolean} [workweek=false] - Show only 5 days except for weekend + * @property {number} [visibleScheduleCount] - The visible schedule count in monthly grid + * @property {object} [moreLayerSize] - The more layer size + * @property {object} [moreLayerSize.width=null] - The css width value(px, 'auto'). + * The default value 'null' is to fit a grid cell. + * @property {object} [moreLayerSize.height=null] - The css height value(px, 'auto'). + * The default value 'null' is to fit a grid cell. + * @property {object} [grid] - The grid's header and footer information + * @property {object} [grid.header] - The grid's header informatioin + * @property {number} [grid.header.height=34] - The grid's header height + * @property {object} [grid.footer] - The grid's footer informatioin + * @property {number} [grid.footer.height=34] - The grid's footer height + * @property {function} [scheduleFilter=null] - The filter schedules on month view. A parameter is {Schedule} object. + */ + +/** + * @typedef {object} CalendarColor + * @property {string} [color] - The calendar color + * @property {string} [bgColor] - The calendar background color + * @property {string} [borderColor] - The calendar left border color + * @property {string} [dragBgColor] - The Background color displayed when you drag a calendar's schedule + */ + +/** + * @typedef {object} Timezone + * @property {Array.} [zones] - {@link Zone} array. Set the list of time zones. + * The first zone element is primary + * The rest zone elements are shown in left timegrid of weekly/daily view + * @property {function} [offsetCalculator = null] - If you define the 'offsetCalculator' property, the offset calculation is done with this function. + * The offsetCalculator option allows you to set up a function that returns the timezone offset for that time using date libraries like ['js-joda'](https://js-joda.github.io/js-joda/) and ['moment-timezone'](https://momentjs.com/timezone/). + * The 'offsetCalculator' option is useful when your browser does not support 'Intl.DateTimeFormat' and 'formatToPart', or you want to use the date library you are familiar with. + * + * @example + * var cal = new Calendar('#calendar', { + * timezone: { + * zones: [ + * { + * timezoneName: 'Asia/Seoul', + * displayLabel: 'GMT+09:00', + * tooltip: 'Seoul' + * }, + * { + * timezoneName: 'America/New_York', + * displayLabel: 'GMT-05:00', + * tooltip: 'New York', + * } + * ], + * offsetCalculator: function(timezoneName, timestamp){ + * // matches 'getTimezoneOffset()' of Date API + * // e.g. +09:00 => -540, -04:00 => 240 + * return moment.tz.zone(timezoneName).utcOffset(timestamp); + * }, + * } + * }); + */ + +/** + * @typedef {object} Zone + * @property {string} [timezoneName] - timezone name (time zone names of the IANA time zone database, such as 'Asia/Seoul', 'America/New_York'). + * Basically, it will calculate the offset using 'Intl.DateTimeFormat' with the value of the this property entered. + * This property is required. + * @property {string} [displayLabel] - The display label of your timezone at weekly/daily view(e.g. 'GMT+09:00') + * @property {string} [tooltip] - The tooltip(e.g. 'Seoul') + * @property {number} [timezoneOffset] - The minutes for your timezone offset. If null, use the browser's timezone. Refer to Date.prototype.getTimezoneOffset(). + * This property will be deprecated. (since version 1.13) + * + * @example + * var cal = new Calendar('#calendar', { + * timezone: { + * zones: [ + * { + * timezoneName: 'Asia/Seoul', + * displayLabel: 'GMT+09:00', + * tooltip: 'Seoul' + * }, + * { + * timezoneName: 'America/New_York', + * displayLabel: 'GMT-05:00', + * tooltip: 'New York', + * } + * ], + * } + * }); + */ + +/** + * @typedef {object} CalendarProps + * @property {string|number} id - The calendar id + * @property {string} name - The calendar name + * @property {string} color - The text color when schedule is displayed + * @property {string} bgColor - The background color schedule is displayed + * @property {string} borderColor - The color of left border or bullet point when schedule is displayed + * @property {string} dragBgColor - The background color when schedule dragging + * @example + * var cal = new Calendar('#calendar', { + * ... + * calendars: [ + * { + * id: '1', + * name: 'My Calendar', + * color: '#ffffff', + * bgColor: '#24695c', + * dragBgColor: '#24695c', + * borderColor: '#24695c' + * }, + * { + * id: '2', + * name: 'Company', + * color: '#00a9ff', + * bgColor: '#00a9ff', + * dragBgColor: '#00a9ff', + * borderColor: '#00a9ff' + * }, + * ] + * }); + */ + +/** + * @typedef {object} Options - Calendar option object + * @property {string} [defaultView='week'] - Default view of calendar. The default value is 'week'. + * @property {boolean|Array.} [taskView=true] - Show the milestone and task in weekly, daily view. The default value is true. If the value is array, it can be ['milestone', 'task']. + * @property {boolean|Array.} [scheduleView=true] - Show the all day and time grid in weekly, daily view. The default value is false. If the value is array, it can be ['allday', 'time']. + * @property {themeConfig} [theme=themeConfig] - {@link themeConfig} for custom style. + * @property {Template} [template={}] - {@link Template} for further information + * @property {WeekOptions} [week={}] - {@link WeekOptions} for week view + * @property {MonthOptions} [month={}] - {@link MonthOptions} for month view + * @property {Array.} [calendars=[]] - {@link CalendarProps} List that can be used to add new schedule. The default value is []. + * @property {boolean} [useCreationPopup=false] - Whether use default creation popup or not. The default value is false. + * @property {boolean} [useDetailPopup=false] - Whether use default detail popup or not. The default value is false. + * @property {Timezone} [timezone] - {@link Timezone} - Set a custom time zone. You can add secondary timezone in the weekly/daily view. + * @property {boolean} [disableDblClick=false] - Disable double click to create a schedule. The default value is false. + * @property {boolean} [disableClick=false] - Disable click to create a schedule. The default value is false. + * @property {boolean} [isReadOnly=false] - {@link Calendar} is read-only mode and a user can't create and modify any schedule. The default value is false. + * @property {boolean} [usageStatistics=true] - Let us know the hostname. If you don't want to send the hostname, please set to false. + * @property {Array.} [timezones] - This property will be deprecated. (since version 1.13) Please use timezone property. + */ + +/** + * {@link https://nhn.github.io/tui.code-snippet/latest/CustomEvents CustomEvents} document at {@link https://github.com/nhn/tui.code-snippet tui-code-snippet} + * @typedef {class} CustomEvents + */ + +/** + * @typedef {object} TimeCreationGuide - Time creation guide instance to present selected time period + * @property {HTMLElement} guideElement - Guide element + * @property {Object.} guideElements - Map by key. It can be used in monthly view + * @property {function} clearGuideElement - Hide the creation guide + * @example + * calendar.on('beforeCreateSchedule', function(event) { + * var guide = event.guide; + * // Use guideEl$'s left, top to locate your schedule creation popup + * var guideEl$ = guide.guideElement ? + * guide.guideElement : guide.guideElements[Object.keys(guide.guideElements)[0]]; + * + * // After that call this to hide the creation guide + * guide.clearGuideElement(); + * }); + */ + +/** + * Calendar class + * @constructor + * @mixes CustomEvents + * @param {HTMLElement|string} container - The container element or selector id + * @param {Options} options - The calendar {@link Options} object + * @example + * var calendar = new tui.Calendar(document.getElementById('calendar'), { + * defaultView: 'week', + * taskView: true, // Can be also ['milestone', 'task'] + * scheduleView: true, // Can be also ['allday', 'time'] + * template: { + * milestone: function(schedule) { + * return ' ' + schedule.title + ''; + * }, + * milestoneTitle: function() { + * return 'Milestone'; + * }, + * task: function(schedule) { + * return '  #' + schedule.title; + * }, + * taskTitle: function() { + * return ''; + * }, + * allday: function(schedule) { + * return schedule.title + ' '; + * }, + * alldayTitle: function() { + * return 'All Day'; + * }, + * time: function(schedule) { + * return schedule.title + ' ' + schedule.start; + * } + * }, + * month: { + * daynames: ['Sun', 'Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat'], + * startDayOfWeek: 0, + * narrowWeekend: true + * }, + * week: { + * daynames: ['Sun', 'Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat'], + * startDayOfWeek: 0, + * narrowWeekend: true + * } + * }); + */ +function Calendar(container, options) { + options = util.extend( + { + usageStatistics: true + }, + options + ); + + if (options.usageStatistics === true && util.sendHostname) { + util.sendHostname('calendar', GA_TRACKING_ID); + } + + if (util.isString(container)) { + container = document.querySelector(container); + } + + /** + * Calendar color map + * @type {object} + * @private + */ + this._calendarColor = {}; + + /** + * Current rendered date + * @type {TZDate} + * @private + */ + this._renderDate = datetime.start(); + + /** + * start and end date of weekly, monthly + * @type {object} + * @private + */ + this._renderRange = { + start: null, + end: null + }; + + /** + * base controller + * @type {Base} + * @private + */ + this._controller = _createController(options); + this._controller.setCalendars(options.calendars); + + /** + * layout view (layout manager) + * @type {Layout} + * @private + */ + this._layout = new Layout(container, this._controller.theme); + + /** + * global drag handler + * @type {Drag} + * @private + */ + this._dragHandler = new Drag({distance: 10}, this._layout.container); + + /** + * current rendered view name. ('day', 'week', 'month') + * @type {string} + * @default 'week' + * @private + */ + this._viewName = options.defaultView || 'week'; + + /** + * Refresh method. it can be ref different functions for each view modes. + * @type {function} + * @private + */ + this._refreshMethod = null; + + /** + * Scroll to now. It can be called for 'week', 'day' view modes. + * @type {function} + * @private + */ + this._scrollToNowMethod = null; + + /** + * It's true if Calendar.prototype.scrollToNow() is called. + * @type {boolean} + * @private + */ + this._requestScrollToNow = false; + + /** + * Open schedule creation popup + * @type {function} + * @private + */ + this._openCreationPopup = null; + + /** + * Hide the more view + * @type {function} + * @private + */ + this._hideMoreView = null; + + /** + * Unique id for requestAnimFrame() + * @type {number} + * @private + */ + this._requestRender = 0; + + /** + * calendar options + * @type {Options} + * @private + */ + this._options = {}; + + this._initialize(options); +} + +/** + * destroy calendar instance. + */ +Calendar.prototype.destroy = function() { + this._dragHandler.destroy(); + this._controller.off(); + this._layout.clear(); + this._layout.destroy(); + + util.forEach(this._options.template, function(func, name) { + if (func) { + Handlebars.unregisterHelper(name + '-tmpl'); + } + }); + + this._options = this._renderDate = this._controller + = this._layout = this._dragHandler = this._viewName = this._refreshMethod + = this._scrollToNowMethod = null; +}; + +/** + * Initialize calendar + * @param {Options} options - calendar options + * @private + */ +// eslint-disable-next-line complexity +Calendar.prototype._initialize = function(options) { + var controller = this._controller, + viewName = this._viewName; + + this._options = util.extend( + { + defaultView: viewName, + taskView: true, + scheduleView: true, + template: util.extend( + { + allday: null, + time: null + }, + util.pick(options, 'template') || {} + ), + week: util.extend({}, util.pick(options, 'week') || {}), + month: util.extend({}, util.pick(options, 'month') || {}), + calendars: [], + useCreationPopup: false, + useDetailPopup: false, + timezones: options.timezone && options.timezone.zones ? options.timezone.zones : [], + disableDblClick: false, + disableClick: false, + isReadOnly: false + }, + options + ); + + this._options.week = util.extend( + { + startDayOfWeek: 0, + workweek: false + }, + util.pick(this._options, 'week') || {} + ); + + this._options.timezone = util.extend({zones: []}, util.pick(options, 'timezone') || {}); + + this._options.month = util.extend( + { + startDayOfWeek: 0, + workweek: false, + scheduleFilter: function(schedule) { + return ( + Boolean(schedule.isVisible) && + (schedule.category === 'allday' || schedule.category === 'time') + ); + } + }, + util.pick(options, 'month') || {} + ); + + if (this._options.isReadOnly) { + this._options.useCreationPopup = false; + } + + this._layout.controller = controller; + + this._setAdditionalInternalOptions(this._options); + + this.changeView(viewName, true); +}; + +/** + * Set additional internal options + * 1. Register to the template handlebar + * 2. Update the calendar list and set the color of the calendar. + * 3. Change the primary timezone offset of the timezones. + * @param {Options} options - calendar options + * @private + */ +Calendar.prototype._setAdditionalInternalOptions = function(options) { + var timezone = options.timezone; + var zones, offsetCalculator; + + util.forEach(options.template, function(func, name) { + if (func) { + Handlebars.registerHelper(name + '-tmpl', func); + } + }); + + util.forEach( + options.calendars || [], + function(calendar) { + this.setCalendarColor(calendar.id, calendar, true); + }, + this + ); + + if (timezone) { + offsetCalculator = timezone.offsetCalculator; + + if (util.isFunction(offsetCalculator)) { + tz.setOffsetCalculator(offsetCalculator); + } + + zones = timezone.zones; + + if (zones.length) { + tz.setPrimaryTimezoneByOption(zones[0]); + + if (util.isNumber(zones[0].timezoneOffset)) { + // @deprecated timezoneOffset property will be deprecated. use timezone property + tz.setOffsetByTimezoneOption(zones[0].timezoneOffset); + } + } + } +}; + +/********** + * CRUD Methods + **********/ + +/** + * Create schedules and render calendar. + * @param {Array.} schedules - {@link Schedule} data list + * @param {boolean} [silent=false] - no auto render after creation when set true + * @example + * calendar.createSchedules([ + * { + * id: '1', + * calendarId: '1', + * title: 'my schedule', + * category: 'time', + * dueDateClass: '', + * start: '2018-01-18T22:30:00+09:00', + * end: '2018-01-19T02:30:00+09:00' + * }, + * { + * id: '2', + * calendarId: '1', + * title: 'second schedule', + * category: 'time', + * dueDateClass: '', + * start: '2018-01-18T17:30:00+09:00', + * end: '2018-01-19T17:31:00+09:00' + * } + * ]); + */ +Calendar.prototype.createSchedules = function(schedules, silent) { + util.forEach( + schedules, + function(obj) { + this._setScheduleColor(obj.calendarId, obj); + }, + this + ); + + this._controller.createSchedules(schedules, silent); + + if (!silent) { + this.render(); + } +}; + +/** + * Get a {@link Schedule} object by schedule id and calendar id. + * @param {string} scheduleId - ID of schedule + * @param {string} calendarId - calendarId of the schedule + * @returns {Schedule} schedule object + * @example + * var schedule = calendar.getSchedule(scheduleId, calendarId); + * console.log(schedule.title); + */ +Calendar.prototype.getSchedule = function(scheduleId, calendarId) { + return this._controller.schedules.single(function(model) { + return model.id === scheduleId && model.calendarId === calendarId; + }); +}; + +/** + * Update the schedule + * @param {string} scheduleId - ID of the original schedule to update + * @param {string} calendarId - The calendarId of the original schedule to update + * @param {object} changes - The {@link Schedule} properties and values with changes to update + * @param {boolean} [silent=false] - No auto render after creation when set true + * @example + * calendar.updateSchedule(schedule.id, schedule.calendarId, { + * title: 'Changed schedule', + * start: new Date('2019-11-05T09:00:00'), + * end: new Date('2019-11-05T10:00:00'), + * category: 'time' + * }); + */ +Calendar.prototype.updateSchedule = function(scheduleId, calendarId, changes, silent) { + var ctrl = this._controller, + ownSchedules = ctrl.schedules, + schedule = ownSchedules.single(function(model) { + return model.id === scheduleId && model.calendarId === calendarId; + }); + var hasChangedCalendar = false; + + if (!changes || !schedule) { + return; + } + + hasChangedCalendar = this._hasChangedCalendar(schedule, changes); + changes = hasChangedCalendar ? this._setScheduleColor(changes.calendarId, changes) : changes; + + ctrl.updateSchedule(schedule, changes); + + if (!silent) { + this.render(); + } +}; + +Calendar.prototype._hasChangedCalendar = function(schedule, changes) { + return schedule && changes.calendarId && schedule.calendarId !== changes.calendarId; +}; + +Calendar.prototype._setScheduleColor = function(calendarId, schedule) { + var calColor = this._calendarColor; + var color = calColor[calendarId]; + + if (color) { + schedule.color = schedule.color || color.color; + schedule.bgColor = schedule.bgColor || color.bgColor; + schedule.borderColor = schedule.borderColor || color.borderColor; + schedule.dragBgColor = schedule.dragBgColor || color.dragBgColor; + } + + return schedule; +}; + +/** + * Delete a schedule. + * @param {string} scheduleId - ID of schedule to delete + * @param {string} calendarId - The CalendarId of the schedule to delete + * @param {boolean} [silent=false] - No auto render after creation when set true + */ +Calendar.prototype.deleteSchedule = function(scheduleId, calendarId, silent) { + var ctrl = this._controller, + ownSchedules = ctrl.schedules, + schedule = ownSchedules.single(function(model) { + return model.id === scheduleId && model.calendarId === calendarId; + }); + + if (!schedule) { + return; + } + + ctrl.deleteSchedule(schedule); + if (!silent) { + this.render(); + } +}; + +/********** + * Private Methods + **********/ + +/** + * @param {string|Date} date - The Date to show in calendar + * @param {number} [startDayOfWeek=0] - The Start day of week + * @param {boolean} [workweek=false] - The only show work week + * @returns {array} render range + * @private + */ +Calendar.prototype._getWeekDayRange = function(date, startDayOfWeek, workweek) { + var day; + var start; + var end; + var range; + + startDayOfWeek = (startDayOfWeek || 0); // eslint-disable-line + date = util.isDate(date) ? date : new TZDate(date); + day = date.getDay(); + + // calculate default render range first. + start = new TZDate(date).addDate(-day + startDayOfWeek); + + end = new TZDate(start).addDate(6); + + if (day < startDayOfWeek) { + start = new TZDate(start).addDate(-7); + end = new TZDate(end).addDate(-7); + } + + if (workweek) { + range = datetime.range( + datetime.start(start), + datetime.end(end), + datetime.MILLISECONDS_PER_DAY + ); + + range = util.filter(range, function(weekday) { + return !datetime.isWeekend(weekday.getDay()); + }); + + start = range[0]; + end = range[range.length - 1]; + } + + start = datetime.start(start); + end = datetime.start(end); + + return [start, end]; +}; + +/** + * Toggle schedules' visibility by calendar ID + * @param {string} calendarId - The calendar id value + * @param {boolean} toHide - Set true to hide schedules + * @param {boolean} [render=true] - set true then render after change visible property each models + */ +Calendar.prototype.toggleSchedules = function(calendarId, toHide, render) { + var ownSchedules = this._controller.schedules; + + render = util.isExisty(render) ? render : true; + calendarId = util.isArray(calendarId) ? calendarId : [calendarId]; + + ownSchedules.each(function(schedule) { + if (~util.inArray(schedule.calendarId, calendarId)) { + schedule.set('isVisible', !toHide); + } + }); + + if (render) { + this.render(); + } +}; + +/********** + * General Methods + **********/ + +/** + * Render the calendar. The real rendering occurs after requestAnimationFrame. + * If you have to render immediately, use the 'immediately' parameter as true. + * @param {boolean} [immediately=false] - Render it immediately + * @example + * var silent = true; + * calendar.clear(); + * calendar.createSchedules(schedules, silent); + * calendar.render(); + * @example + * // Render a calendar when resizing a window. + * window.addEventListener('resize', function() { + * calendar.render(); + * }); + */ +Calendar.prototype.render = function(immediately) { + if (this._requestRender) { + reqAnimFrame.cancelAnimFrame(this._requestRender); + } + + if (immediately) { + this._renderFunc(); + } else { + this._requestRender = reqAnimFrame.requestAnimFrame(this._renderFunc, this); + } +}; + +/** + * Render and refresh all layout and process requests. + * @private + */ +Calendar.prototype._renderFunc = function() { + if (this._refreshMethod) { + this._refreshMethod(); + } + if (this._layout) { + this._layout.render(); + } + if (this._scrollToNowMethod && this._requestScrollToNow) { + this._scrollToNowMethod(); + } + + this._requestScrollToNow = false; + this._requestRender = null; +}; + +/** + * Delete all schedules and clear view. The real rendering occurs after requestAnimationFrame. + * If you have to render immediately, use the 'immediately' parameter as true. + * @param {boolean} [immediately=false] - Render it immediately + * @example + * calendar.clear(); + * calendar.createSchedules(schedules, true); + * calendar.render(); + */ +Calendar.prototype.clear = function(immediately) { + this._controller.clearSchedules(); + this.render(immediately); +}; + +/** + * Scroll to current time on today in case of daily, weekly view + * @example + * function onNewSchedules(schedules) { + * calendar.createSchedules(schedules); + * if (calendar.getViewName() !== 'month') { + * calendar.scrollToNow(); + * } + * } + */ +Calendar.prototype.scrollToNow = function() { + if (this._scrollToNowMethod) { + this._requestScrollToNow = true; + // this._scrollToNowMethod() will be called at next frame rendering. + } +}; + +/** + * Move to today. + * @example + * function onClickTodayBtn() { + * calendar.today(); + * } + */ +Calendar.prototype.today = function() { + this._renderDate = datetime.start(); + + this._setViewName(this._viewName); + this.move(); + this.render(); +}; + +/** + * Move the calendar amount of offset value + * @param {number} offset - The offset value. + * @private + * @example + * // move previous week when "week" view. + * // move previous month when "month" view. + * calendar.move(-1); + */ +// eslint-disable-next-line complexity +Calendar.prototype.move = function(offset) { + var renderDate = dw(datetime.start(this._renderDate)), + viewName = this._viewName, + view = this._getCurrentView(), + recursiveSet = _setOptionRecurseively, + startDate, + endDate, + tempDate, + startDayOfWeek, + visibleWeeksCount, + workweek, + isAlways6Week, + datetimeOptions; + + offset = util.isExisty(offset) ? offset : 0; + + if (viewName === 'month') { + startDayOfWeek = util.pick(this._options, 'month', 'startDayOfWeek') || 0; + visibleWeeksCount = mmin(util.pick(this._options, 'month', 'visibleWeeksCount') || 0, 6); + workweek = util.pick(this._options, 'month', 'workweek') || false; + isAlways6Week = util.pick(this._options, 'month', 'isAlways6Week'); + + if (visibleWeeksCount) { + datetimeOptions = { + startDayOfWeek: startDayOfWeek, + isAlways6Week: false, + visibleWeeksCount: visibleWeeksCount, + workweek: workweek + }; + + renderDate.addDate(offset * 7 * datetimeOptions.visibleWeeksCount); + tempDate = datetime.arr2dCalendar(renderDate.d, datetimeOptions); + + recursiveSet(view, function(childView, opt) { + opt.renderMonth = new TZDate(renderDate.d); + }); + } else { + datetimeOptions = { + startDayOfWeek: startDayOfWeek, + isAlways6Week: isAlways6Week, + workweek: workweek + }; + + renderDate.addMonth(offset); + tempDate = datetime.arr2dCalendar(renderDate.d, datetimeOptions); + + recursiveSet(view, function(childView, opt) { + opt.renderMonth = new TZDate(renderDate.d); + }); + } + + startDate = tempDate[0][0]; + endDate = tempDate[tempDate.length - 1][tempDate[tempDate.length - 1].length - 1]; + } else if (viewName === 'week') { + renderDate.addDate(offset * 7); + startDayOfWeek = util.pick(this._options, 'week', 'startDayOfWeek') || 0; + workweek = util.pick(this._options, 'week', 'workweek') || false; + tempDate = this._getWeekDayRange(renderDate.d, startDayOfWeek, workweek); + + startDate = tempDate[0]; + endDate = tempDate[1]; + + recursiveSet(view, function(childView, opt) { + opt.renderStartDate = new TZDate(startDate); + opt.renderEndDate = new TZDate(endDate); + + childView.setState({ + collapsed: true + }); + }); + } else if (viewName === 'day') { + renderDate.addDate(offset); + startDate = datetime.start(renderDate.d); + endDate = datetime.end(renderDate.d); + + recursiveSet(view, function(childView, opt) { + opt.renderStartDate = new TZDate(startDate); + opt.renderEndDate = new TZDate(endDate); + + childView.setState({ + collapsed: true + }); + }); + } + + this._renderDate = renderDate.d; + this._renderRange = { + start: startDate, + end: endDate + }; +}; + +/** + * Move to specific date + * @param {(Date|string)} date - The date to move + * @example + * calendar.on('clickDayname', function(event) { + * if (calendar.getViewName() === 'week') { + * calendar.setDate(new Date(event.date)); + * calendar.changeView('day', true); + * } + * }); + */ +Calendar.prototype.setDate = function(date) { + if (util.isString(date)) { + date = datetime.parse(date); + } + + this._renderDate = new TZDate(date); + this._setViewName(this._viewName); + this.move(0); + this.render(); +}; + +/** + * Move the calendar forward a day, a week, a month, 2 weeks, 3 weeks. + * @example + * function moveToNextOrPrevRange(val) { + if (val === -1) { + calendar.prev(); + } else if (val === 1) { + calendar.next(); + } +} + */ +Calendar.prototype.next = function() { + this.move(1); + this.render(); +}; + +/** + * Move the calendar backward a day, a week, a month, 2 weeks, 3 weeks. + * @example + * function moveToNextOrPrevRange(val) { + if (val === -1) { + calendar.prev(); + } else if (val === 1) { + calendar.next(); + } +} + */ +Calendar.prototype.prev = function() { + this.move(-1); + this.render(); +}; + +/** + * Return current rendered view. + * @returns {View} current view instance + * @private + */ +Calendar.prototype._getCurrentView = function() { + var viewName = this._viewName; + + if (viewName === 'day') { + viewName = 'week'; + } + + return util.pick(this._layout.children.items, viewName); +}; + +/** + * Change calendar's schedule color with option + * @param {string} calendarId - The calendar ID + * @param {CalendarColor} option - The {@link CalendarColor} object + * @param {boolean} [silent=false] - No auto render after creation when set true + * @example + * calendar.setCalendarColor('1', { + * color: '#e8e8e8', + * bgColor: '#585858', + * borderColor: '#a1b56c' + * dragBgColor: '#585858', + * }); + * calendar.setCalendarColor('2', { + * color: '#282828', + * bgColor: '#dc9656', + * borderColor: '#a1b56c', + * dragBgColor: '#dc9656', + * }); + * calendar.setCalendarColor('3', { + * color: '#a16946', + * bgColor: '#ab4642', + * borderColor: '#a1b56c', + * dragBgColor: '#ab4642', + * }); + */ +Calendar.prototype.setCalendarColor = function(calendarId, option, silent) { + var calColor = this._calendarColor, + ownSchedules = this._controller.schedules, + ownColor = calColor[calendarId]; + + if (!util.isObject(option)) { + config.throwError( + "Calendar#changeCalendarColor(): color 는 {color: '', bgColor: ''} 형태여야 합니다." + ); + } + + ownColor = calColor[calendarId] = util.extend( + { + color: '#000', + bgColor: '#a1b56c', + borderColor: '#a1b56c', + dragBgColor: '#a1b56c' + }, + option + ); + + ownSchedules.each(function(model) { + if (model.calendarId !== calendarId) { + return; + } + + model.color = ownColor.color; + model.bgColor = ownColor.bgColor; + model.borderColor = ownColor.borderColor; + model.dragBgColor = ownColor.dragBgColor; + }); + + if (!silent) { + this.render(); + } +}; + +/********** + * Custom Events + **********/ + +/** + * A bridge-based event handler for connecting a click handler to a user click event handler for each view + * @fires Calendar#clickSchedule + * @param {object} clickScheduleData - The event data of 'clickSchedule' handler + * @private + */ +Calendar.prototype._onClick = function(clickScheduleData) { + /** + * Fire this event when click a schedule. + * @event Calendar#clickSchedule + * @type {object} + * @property {Schedule} schedule - The {@link Schedule} instance + * @property {MouseEvent} event - MouseEvent + * @example + * calendar.on('clickSchedule', function(event) { + * var schedule = event.schedule; + * + * if (lastClickSchedule) { + * calendar.updateSchedule(lastClickSchedule.id, lastClickSchedule.calendarId, { + * isFocused: false + * }); + * } + * calendar.updateSchedule(schedule.id, schedule.calendarId, { + * isFocused: true + * }); + * + * lastClickSchedule = schedule; + * // open detail view + * }); + */ + this.fire('clickSchedule', clickScheduleData); +}; + +/** + * A bridge-based event handler for connecting a click handler to a user click event handler for each view + * @fires Calendar#clickMore + * @param {object} clickMoreSchedule - The event data of 'clickMore' handler + * @private + */ +Calendar.prototype._onClickMore = function(clickMoreSchedule) { + /** + * Fire this event when click a schedule. + * @event Calendar#clickMore + * @type {object} + * @property {Date} date - The Clicked date + * @property {HTMLElement} target - The more element + * @example + * calendar.on('clickMore', function(event) { + * console.log('clickMore', event.date, event.target); + * }); + */ + this.fire('clickMore', clickMoreSchedule); +}; + +/** + * dayname click event handler + * @fires Calendar#clickDayname + * @param {object} clickScheduleData - The event data of 'clickDayname' handler + * @private + */ +Calendar.prototype._onClickDayname = function(clickScheduleData) { + /** + * Fire this event when click a day name in weekly. + * @event Calendar#clickDayname + * @type {object} + * @property {string} date - The date string by format 'YYYY-MM-DD' + * @example + * calendar.on('clickDayname', function(event) { + * if (calendar.getViewName() === 'week') { + * calendar.setDate(new Date(event.date)); + * calendar.changeView('day', true); + * } + * }); + */ + this.fire('clickDayname', clickScheduleData); +}; + +/** + * @fires {Calendar#n('beforeCreateSchedule', function} + * @param {object} createScheduleData - select schedule data from allday, time + * @private + */ +Calendar.prototype._onBeforeCreate = function(createScheduleData) { + if (this._options.useCreationPopup && !createScheduleData.useCreationPopup) { + if (this._showCreationPopup) { + this._showCreationPopup(createScheduleData); + + return; + } + } + /** + * Fire this event when select time period in daily, weekly, monthly. + * @event Calendar#beforeCreateSchedule + * @type {object} + * @property {boolean} isAllDay - The allday schedule + * @property {Date} start - The selected start time + * @property {Date} end - The selected end time + * @property {TimeCreationGuide} guide - {@link TimeCreationGuide} instance + * @property {string} triggerEventName - The event name like 'click', 'dblclick' + * @example + * calendar.on('beforeCreateSchedule', function(event) { + * var startTime = event.start; + * var endTime = event.end; + * var isAllDay = event.isAllDay; + * var guide = event.guide; + * var triggerEventName = event.triggerEventName; + * var schedule; + * + * if (triggerEventName === 'click') { + * // open writing simple schedule popup + * schedule = {...}; + * } else if (triggerEventName === 'dblclick') { + * // open writing detail schedule popup + * schedule = {...}; + * } + * + * calendar.createSchedules([schedule]); + * }); + */ + this.fire('beforeCreateSchedule', createScheduleData); +}; + +/** + * @fires Calendar#beforeUpdateSchedule + * @param {object} updateScheduleData - update {@link Schedule} data + * @private + */ +Calendar.prototype._onBeforeUpdate = function(updateScheduleData) { + /** + * Fire this event when drag a schedule to change time in daily, weekly, monthly. + * @event Calendar#beforeUpdateSchedule + * @type {object} + * @property {Schedule} schedule - The original {@link Schedule} instance + * @property {object} changes - The {@link Schedule} properties and values with changes to update + * @property {Date} start - Deprecated: start time to update + * @property {Date} end - Deprecated: end time to update + * @example + * calendar.on('beforeUpdateSchedule', function(event) { + * var schedule = event.schedule; + * var changes = event.changes; + * + * calendar.updateSchedule(schedule.id, schedule.calendarId, changes); + * }); + */ + this.fire('beforeUpdateSchedule', updateScheduleData); +}; + +/** + * @fires Calendar#beforeDeleteSchedule + * @param {object} deleteScheduleData - delete schedule data + * @private + */ +Calendar.prototype._onBeforeDelete = function(deleteScheduleData) { + /** + * Fire this event when delete a schedule. + * @event Calendar#beforeDeleteSchedule + * @type {object} + * @property {Schedule} schedule - The {@link Schedule} instance to delete + * @example + * calendar.on('beforeDeleteSchedule', function(event) { + * var schedule = event.schedule; + * alert('The schedule is removed.', schedule); + * }); + */ + this.fire('beforeDeleteSchedule', deleteScheduleData); +}; + +/** + * @fires Calendar#afterRenderSchedule + * @param {Schedule} scheduleData - The schedule data + * @private + */ +Calendar.prototype._onAfterRenderSchedule = function(scheduleData) { + /** + * Fire this event by every single schedule after rendering whole calendar. + * @event Calendar#afterRenderSchedule + * @type {object} + * @property {Schedule} schedule - A rendered {@link Schedule} instance + * @example + * calendar.on('afterRenderSchedule', function(event) { + * var schedule = event.schedule; + * var element = calendar.getElement(schedule.id, schedule.calendarId); + * // use the element + * console.log(element); + * }); + */ + this.fire('afterRenderSchedule', scheduleData); +}; + +/** + * @fires Calendar#clickTimezonesCollapseBtn + * @param {boolean} timezonesCollapsed - timezones collapsed flag + * @private + */ +Calendar.prototype._onClickTimezonesCollapseBtn = function(timezonesCollapsed) { + /** + * Fire this event by clicking timezones collapse button + * @event Calendar#clickTimezonesCollapseBtn + * @type {object} + * @property {boolean} timezonesCollapsed - The timezones collapes flag + * @example + * calendar.on('clickTimezonesCollapseBtn', function(timezonesCollapsed) { + * console.log(timezonesCollapsed); + * }); + */ + this.fire('clickTimezonesCollapseBtn', timezonesCollapsed); +}; + +/** + * Toggle calendar factory class, main view, wallview event connection + * @param {boolean} isAttach - attach events if true. + * @param {Week|Month} view - Weekly view or Monthly view + * @private + */ +Calendar.prototype._toggleViewSchedule = function(isAttach, view) { + var self = this, + handler = view.handler, + method = isAttach ? 'on' : 'off'; + + util.forEach(handler.click, function(clickHandler) { + clickHandler[method]('clickSchedule', self._onClick, self); + }); + + util.forEach(handler.dayname, function(clickHandler) { + clickHandler[method]('clickDayname', self._onClickDayname, self); + }); + + util.forEach(handler.creation, function(creationHandler) { + creationHandler[method]('beforeCreateSchedule', self._onBeforeCreate, self); + creationHandler[method]('beforeDeleteSchedule', self._onBeforeDelete, self); + }); + + util.forEach(handler.move, function(moveHandler) { + moveHandler[method]('beforeUpdateSchedule', self._onBeforeUpdate, self); + }); + + util.forEach(handler.resize, function(resizeHandler) { + resizeHandler[method]('beforeUpdateSchedule', self._onBeforeUpdate, self); + }); + + // bypass events from view + view[method]('afterRenderSchedule', self._onAfterRenderSchedule, self); + view[method]('clickTimezonesCollapseBtn', self._onClickTimezonesCollapseBtn, self); + view[method]('clickMore', self._onClickMore, self); +}; + +/** + * Change current view with view name('day', 'week', 'month') + * @param {string} newViewName - The New view name to render + * @param {boolean} force - Force render despite of current view and new view are equal + * @example + * // daily view + * calendar.changeView('day', true); + * + * // weekly view + * calendar.changeView('week', true); + * + * // monthly view(default 6 weeks view) + * calendar.setOptions({month: {visibleWeeksCount: 6}}, true); // or null + * calendar.changeView('month', true); + * + * // 2 weeks monthly view + * calendar.setOptions({month: {visibleWeeksCount: 2}}, true); + * calendar.changeView('month', true); + * + * // 3 weeks monthly view + * calendar.setOptions({month: {visibleWeeksCount: 3}}, true); + * calendar.changeView('month', true); + * + * // narrow weekend + * calendar.setOptions({month: {narrowWeekend: true}}, true); + * calendar.setOptions({week: {narrowWeekend: true}}, true); + * calendar.changeView(calendar.getViewName(), true); + * + * // change start day of week(from monday) + * calendar.setOptions({week: {startDayOfWeek: 1}}, true); + * calendar.setOptions({month: {startDayOfWeek: 1}}, true); + * calendar.changeView(calendar.getViewName(), true); + * + * // work week + * calendar.setOptions({week: {workweek: true}}, true); + * calendar.setOptions({month: {workweek: true}}, true); + * calendar.changeView(calendar.getViewName(), true); + */ +// eslint-disable-next-line complexity +Calendar.prototype.changeView = function(newViewName, force) { + var self = this, + layout = this._layout, + controller = this._controller, + dragHandler = this._dragHandler, + options = this._options, + viewName = this._viewName, + created; + + if (!force && viewName === newViewName) { + return; + } + + this._setViewName(newViewName); + + // convert day to week + if (viewName === 'day') { + viewName = 'week'; + } + + if (newViewName === 'day') { + newViewName = 'week'; + } + layout.children.doWhenHas(viewName, function(view) { + self._toggleViewSchedule(false, view); + }); + + layout.clear(); + + if (newViewName === 'month') { + created = _createMonthView(controller, layout.container, dragHandler, options); + } else if (newViewName === 'week') { + created = _createWeekView( + controller, + layout.container, + dragHandler, + options, + this.getViewName() + ); + } + + layout.addChild(created.view); + + layout.children.doWhenHas(newViewName, function(view) { + self._toggleViewSchedule(true, view); + }); + + this._refreshMethod = created.refresh; + this._scrollToNowMethod = created.scrollToNow; + this._openCreationPopup = created.openCreationPopup; + this._showCreationPopup = created.showCreationPopup; + this._hideMoreView = created.hideMoreView; + + this.move(); + this.render(); +}; + +/** + * @deprecated + * Toggle task view('Milestone', 'Task') panel + * @param {boolean} enabled - use task view + * @example + * // There is no milestone, task, so hide those view panel + * calendar.toggleTaskView(false); + * + * // There are some milestone, task, so show those view panel. + * calendar.toggleTaskView(true); + */ +Calendar.prototype.toggleTaskView = function(enabled) { + var viewName = this._viewName, + options = this._options; + + options.taskView = enabled; + + this.changeView(viewName, true); +}; + +/** + * @deprecated + * Toggle schedule view('AllDay', TimeGrid') panel + * @param {boolean} enabled - use task view + * @example + * // hide those view panel to show only 'Milestone', 'Task' + * calendar.toggleScheduleView(false); + * + * // show those view panel. + * calendar.toggleScheduleView(true); + */ +Calendar.prototype.toggleScheduleView = function(enabled) { + var viewName = this._viewName, + options = this._options; + + options.scheduleView = enabled; + + this.changeView(viewName, true); +}; + +/** + * Set current view name + * @param {string} viewName - new view name to render + * @private + */ +Calendar.prototype._setViewName = function(viewName) { + this._viewName = viewName; +}; + +/** + * Get a schedule element by schedule id and calendar id. + * @param {string} scheduleId - ID of schedule + * @param {string} calendarId - calendarId of schedule + * @returns {HTMLElement} schedule element if found or null + * @example + * var element = calendar.getElement(scheduleId, calendarId); + * console.log(element); + */ +Calendar.prototype.getElement = function(scheduleId, calendarId) { + var schedule = this.getSchedule(scheduleId, calendarId); + if (schedule) { + return document.querySelector( + '[data-schedule-id="' + scheduleId + '"][data-calendar-id="' + calendarId + '"]' + ); + } + + return null; +}; + +/** + * Set a theme. If some keys are not defined in the preset, will be return. + * @param {object} theme - multiple styles map + * @returns {Array.} keys - error keys not predefined. + * @example + * cal.setTheme({ + 'month.dayname.height': '31px', + 'common.dayname.color': '#333', + 'month.dayname.borderBottom': '1px solid #e5e5e5' // Not valid key will be return. + * }); + */ +Calendar.prototype.setTheme = function(theme) { + var result = this._controller.setTheme(theme); + this.render(true); + + return result; +}; + +/** + * Set options of calendar + * @param {Options} options - set {@link Options} + * @param {boolean} [silent=false] - no auto render after creation when set true + */ +Calendar.prototype.setOptions = function(options, silent) { + util.forEach( + options, + function(value, name) { + if (util.isObject(value) && !util.isArray(value)) { + util.forEach( + value, + function(innerValue, innerName) { + this._options[name][innerName] = innerValue; + }, + this + ); + } else { + this._options[name] = value; + } + }, + this + ); + + this._setAdditionalInternalOptions(options); + + if (!silent) { + this.changeView(this._viewName, true); + } +}; + +/** + * Get current {@link Options}. + * @returns {Options} options + */ +Calendar.prototype.getOptions = function() { + return this._options; +}; + +/** + * Current rendered date ({@link TZDate} for further information) + * @returns {TZDate} + */ +Calendar.prototype.getDate = function() { + return this._renderDate; +}; + +/** + * Start time of rendered date range ({@link TZDate} for further information) + * @returns {TZDate} + */ +Calendar.prototype.getDateRangeStart = function() { + return this._renderRange.start; +}; + +/** + * End time of rendered date range ({@link TZDate} for further information) + * @returns {TZDate} + */ +Calendar.prototype.getDateRangeEnd = function() { + return this._renderRange.end; +}; + +/** + * Get current view name('day', 'week', 'month') + * @returns {string} view name + */ +Calendar.prototype.getViewName = function() { + return this._viewName; +}; + +/** + * Set calendar list + * @param {Array.} calendars - {@link CalendarProps} List + */ +Calendar.prototype.setCalendars = function(calendars) { + util.forEach( + calendars || [], + function(calendar) { + this.setCalendarColor(calendar.id, calendar, true); + }, + this + ); + + this._controller.setCalendars(calendars); + + this.render(); +}; + +/** + * Open schedule creation popup + * @param {Schedule} schedule - The preset {@link Schedule} data + */ +Calendar.prototype.openCreationPopup = function(schedule) { + if (this._openCreationPopup) { + this._openCreationPopup(schedule); + } +}; + +/** + * Hide the more view + */ +Calendar.prototype.hideMoreView = function() { + if (this._hideMoreView) { + this._hideMoreView(); + } +}; + +/** + * Set timezone offset + * @param {number} offset - The offset (min) + * @static + * @deprecated + * @example + * var timezoneName = moment.tz.guess(); + * tui.Calendar.setTimezoneOffset(moment.tz.zone(timezoneName).utcOffset(moment())); + */ +Calendar.setTimezoneOffset = function(offset) { + tz.setOffset(offset); +}; + +/** + * Set a callback function to get timezone offset by timestamp + * @param {function} callback - The callback function + * @static + * @deprecated + * @example + * var timezoneName = moment.tz.guess(); + * tui.Calendar.setTimezoneOffsetCallback(function(timestamp) { + * return moment.tz.zone(timezoneName).utcOffset(timestamp)); + * }); + */ +Calendar.setTimezoneOffsetCallback = function(callback) { + tz.setOffsetCallback(callback); +}; + +/** + * Create controller instance + * @returns {Base} controller instance + * @param {Options} options - calendar options + * @private + */ +function _createController(options) { + return controllerFactory(options); +} + +/** + * Create week view instance by dependent module instances + * @param {Base} controller - controller + * @param {HTMLElement} container - container element + * @param {Drag} dragHandler - global drag handler + * @param {object} options - options for week view + * @param {string} viewName - 'week', 'day' + * @returns {Week} week view instance + * @private + */ +function _createWeekView(controller, container, dragHandler, options, viewName) { + return weekViewFactory(controller, container, dragHandler, options, viewName); +} + +/** + * Create week view instance by dependent module instances + * @param {Base} controller - controller + * @param {HTMLElement} container - container element + * @param {Drag} dragHandler - global drag handler + * @param {object} options - options for week view + * @returns {Month} month view instance + * @private + */ +function _createMonthView(controller, container, dragHandler, options) { + return monthViewFactory(controller, container, dragHandler, options); +} + +/** + * Set child view's options recursively + * @param {View} view - parent view + * @param {function} func - option manipulate function + * @private + */ +function _setOptionRecurseively(view, func) { + view.recursive(function(childView) { + var opt = childView.options; + + if (!opt) { + return; + } + + func(childView, opt); + }); +} + +util.CustomEvents.mixin(Calendar); + +module.exports = Calendar; + + +/***/ }), + +/***/ "./src/js/factory/controller.js": +/*!**************************************!*\ + !*** ./src/js/factory/controller.js ***! + \**************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; +/** + * @fileoverview Controller factory module. + * @author NHN FE Development Lab + */ + + +var util = __webpack_require__(/*! tui-code-snippet */ "tui-code-snippet"); +var Base = __webpack_require__(/*! ../controller/base */ "./src/js/controller/base.js"), + Core = __webpack_require__(/*! ../controller/viewMixin/core */ "./src/js/controller/viewMixin/core.js"), + Week = __webpack_require__(/*! ../controller/viewMixin/week */ "./src/js/controller/viewMixin/week.js"), + Month = __webpack_require__(/*! ../controller/viewMixin/month */ "./src/js/controller/viewMixin/month.js"); + +/** + * Mixin object. create object property to target and mix to that + * @param {object} from - source object + * @param {object} to - target object + * @param {string} propertyName - property name + */ +function mixin(from, to, propertyName) { + var obj = to[propertyName] = {}; + + util.forEach(from, function(method, methodName) { + obj[methodName] = method.bind(to); + }); +} + +/** + * @param {object} options - options for base controller + * @param {function} [options.groupFunc] - function for group each models {@see Collection#groupBy} + * @returns {Base} The controller instance. + */ +module.exports = function(options) { + var controller = new Base(options); + + mixin(Core, controller, 'Core'); + mixin(Week, controller, 'Week'); + mixin(Month, controller, 'Month'); + + // for Theme + controller.Core.theme = controller.theme; + controller.Week.theme = controller.theme; + controller.Month.theme = controller.theme; + + return controller; +}; + + +/***/ }), + +/***/ "./src/js/factory/monthView.js": +/*!*************************************!*\ + !*** ./src/js/factory/monthView.js ***! + \*************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; +/** + * @fileoverview Month view factory module + * @author NHN FE Development Lab + */ + + +var util = __webpack_require__(/*! tui-code-snippet */ "tui-code-snippet"); +var config = __webpack_require__(/*! ../config */ "./src/js/config.js"), + array = __webpack_require__(/*! ../common/array */ "./src/js/common/array.js"), + datetime = __webpack_require__(/*! ../common/datetime */ "./src/js/common/datetime.js"), + domutil = __webpack_require__(/*! ../common/domutil */ "./src/js/common/domutil.js"), + common = __webpack_require__(/*! ../common/common */ "./src/js/common/common.js"), + Month = __webpack_require__(/*! ../view/month/month */ "./src/js/view/month/month.js"), + MonthClick = __webpack_require__(/*! ../handler/month/click */ "./src/js/handler/month/click.js"), + MonthCreation = __webpack_require__(/*! ../handler/month/creation */ "./src/js/handler/month/creation.js"), + MonthResize = __webpack_require__(/*! ../handler/month/resize */ "./src/js/handler/month/resize.js"), + MonthMove = __webpack_require__(/*! ../handler/month/move */ "./src/js/handler/month/move.js"), + More = __webpack_require__(/*! ../view/month/more */ "./src/js/view/month/more.js"), + ScheduleCreationPopup = __webpack_require__(/*! ../view/popup/scheduleCreationPopup */ "./src/js/view/popup/scheduleCreationPopup.js"), + ScheduleDetailPopup = __webpack_require__(/*! ../view/popup/scheduleDetailPopup */ "./src/js/view/popup/scheduleDetailPopup.js"), + Schedule = __webpack_require__(/*! ../model/schedule */ "./src/js/model/schedule.js"); + +/** + * Get the view model for more layer + * @param {TZDate} date - date has more schedules + * @param {HTMLElement} target - target element + * @param {Collection} schedules - schedule collection + * @param {string[]} daynames - daynames to use upside of month more view + * @returns {object} view model + */ +function getViewModelForMoreLayer(date, target, schedules, daynames) { + schedules.each(function(schedule) { + var model = schedule.model; + schedule.hasMultiDates = datetime.hasMultiDates(model.start, model.end); + }); + + return { + target: target, + date: datetime.format(date, 'YYYY.MM.DD'), + dayname: daynames[date.getDay()], + schedules: schedules.sort(array.compare.schedule.asc) + }; +} + +/** + * @param {Base} baseController - controller instance + * @param {HTMLElement} layoutContainer - container element for month view + * @param {Drag} dragHandler - drag handler instance + * @param {object} options - options + * @returns {object} view instance and refresh method + */ +function createMonthView(baseController, layoutContainer, dragHandler, options) { + var monthViewContainer, monthView, moreView, createView; + var clickHandler, creationHandler, resizeHandler, moveHandler, clearSchedulesHandler, onUpdateSchedule; + var onShowCreationPopup, onSaveNewSchedule, onShowEditPopup; + var detailView, onShowDetailPopup, onDeleteSchedule, onEditSchedule; + + monthViewContainer = domutil.appendHTMLElement( + 'div', layoutContainer, config.classname('month')); + + monthView = new Month(options, monthViewContainer, baseController.Month); + moreView = new More(options.month, layoutContainer, baseController.theme); + + // handlers + clickHandler = new MonthClick(dragHandler, monthView, baseController); + if (!options.isReadOnly) { + creationHandler = new MonthCreation(dragHandler, monthView, baseController, options); + resizeHandler = new MonthResize(dragHandler, monthView, baseController); + moveHandler = new MonthMove(dragHandler, monthView, baseController); + } + + clearSchedulesHandler = function() { + if (moreView) { + moreView.hide(); + } + }; + + onUpdateSchedule = function() { + if (moreView) { + moreView.refresh(); + } + }; + + // binding +n click schedule + clickHandler.on('clickMore', function(clickMoreSchedule) { + var date = clickMoreSchedule.date, + target = clickMoreSchedule.target, + schedules = util.pick(baseController.findByDateRange( + datetime.start(date), + datetime.end(date) + ), clickMoreSchedule.ymd); + + schedules.items = util.filter(schedules.items, function(item) { + return options.month.scheduleFilter(item.model); + }); + + if (schedules && schedules.length) { + moreView.render(getViewModelForMoreLayer(date, target, schedules, monthView.options.daynames)); + + schedules.each(function(scheduleViewModel) { + if (scheduleViewModel) { + /** + * @event More#afterRenderSchedule + */ + monthView.fire('afterRenderSchedule', {schedule: scheduleViewModel.model}); + } + }); + + monthView.fire('clickMore', { + date: clickMoreSchedule.date, + target: moreView.getMoreViewElement() + }); + } + }); + + // binding popup for schedules creation + if (options.useCreationPopup) { + createView = new ScheduleCreationPopup(layoutContainer, baseController.calendars, options.usageStatistics); + + onSaveNewSchedule = function(scheduleData) { + creationHandler.fire('beforeCreateSchedule', util.extend(scheduleData, { + useCreationPopup: true + })); + }; + createView.on('beforeCreateSchedule', onSaveNewSchedule); + } + + // binding popup for schedule detail + if (options.useDetailPopup) { + detailView = new ScheduleDetailPopup(layoutContainer, baseController.calendars); + onShowDetailPopup = function(eventData) { + var scheduleId = eventData.schedule.calendarId; + eventData.calendar = common.find(baseController.calendars, function(calendar) { + return calendar.id === scheduleId; + }); + + if (options.isReadOnly) { + eventData.schedule = util.extend({}, eventData.schedule, {isReadOnly: true}); + } + + detailView.render(eventData); + }; + onDeleteSchedule = function(eventData) { + if (creationHandler) { + creationHandler.fire('beforeDeleteSchedule', eventData); + } + }; + onEditSchedule = function(eventData) { + moveHandler.fire('beforeUpdateSchedule', eventData); + }; + + clickHandler.on('clickSchedule', onShowDetailPopup); + + detailView.on('beforeDeleteSchedule', onDeleteSchedule); + + if (options.useCreationPopup) { + onShowEditPopup = function(eventData) { + createView.setCalendars(baseController.calendars); + createView.render(eventData); + }; + createView.on('beforeUpdateSchedule', onEditSchedule); + detailView.on('beforeUpdateSchedule', onShowEditPopup); + } else { + detailView.on('beforeUpdateSchedule', onEditSchedule); + } + } + + // binding clear schedules + baseController.on('clearSchedules', clearSchedulesHandler); + + // bind update schedule event + baseController.on('updateSchedule', onUpdateSchedule); + + if (moveHandler) { + moveHandler.on('monthMoveStart_from_morelayer', function() { + moreView.hide(); + }); + } + + monthView.handler = { + click: { + 'default': clickHandler + } + }; + + if (!options.isReadOnly) { + monthView.handler = util.extend(monthView.handler, { + creation: { + 'default': creationHandler + }, + resize: { + 'default': resizeHandler + }, + move: { + 'default': moveHandler + } + }); + } + + monthView._beforeDestroy = function() { + moreView.destroy(); + baseController.off('clearSchedules', clearSchedulesHandler); + baseController.off('updateSchedule', onUpdateSchedule); + + util.forEach(monthView.handler, function(type) { + util.forEach(type, function(handler) { + handler.off(); + handler.destroy(); + }); + }); + + if (options.useCreationPopup && options.useDetailPopup) { + createView.off('beforeUpdateSchedule', onUpdateSchedule); + } + + if (options.useCreationPopup) { + if (creationHandler) { + creationHandler.off('beforeCreateSchedule', onShowCreationPopup); + } + createView.off('saveSchedule', onSaveNewSchedule); + createView.destroy(); + } + + if (options.useDetailPopup) { + clickHandler.off('clickSchedule', onShowDetailPopup); + detailView.off('beforeUpdateSchedule', onUpdateSchedule); + detailView.off('beforeDeleteSchedule', onDeleteSchedule); + detailView.destroy(); + } + }; + + // add controller + monthView.controller = baseController.Month; + + return { + view: monthView, + refresh: function() { + monthView.vLayout.refresh(); + }, + openCreationPopup: function(schedule) { + if (createView && creationHandler) { + creationHandler.invokeCreationClick(Schedule.create(schedule)); + } + }, + showCreationPopup: function(eventData) { + if (createView) { + createView.setCalendars(baseController.calendars); + createView.render(eventData); + } + }, + hideMoreView: function() { + if (moreView) { + moreView.hide(); + } + } + }; +} + +module.exports = createMonthView; + + +/***/ }), + +/***/ "./src/js/factory/weekView.js": +/*!************************************!*\ + !*** ./src/js/factory/weekView.js ***! + \************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; +/** + * @fileoverview Factory module for WeekView + * @author NHN FE Development Lab + */ + + +var util = __webpack_require__(/*! tui-code-snippet */ "tui-code-snippet"); +var config = __webpack_require__(/*! ../config */ "./src/js/config.js"); +var domutil = __webpack_require__(/*! ../common/domutil */ "./src/js/common/domutil.js"); +var common = __webpack_require__(/*! ../common/common */ "./src/js/common/common.js"); +var VLayout = __webpack_require__(/*! ../common/vlayout */ "./src/js/common/vlayout.js"); +var reqAnimFrame = __webpack_require__(/*! ../common/reqAnimFrame */ "./src/js/common/reqAnimFrame.js"); +var Schedule = __webpack_require__(/*! ../model/schedule */ "./src/js/model/schedule.js"); +// Parent views +var Week = __webpack_require__(/*! ../view/week/week */ "./src/js/view/week/week.js"); + +// Sub views +var DayName = __webpack_require__(/*! ../view/week/dayname */ "./src/js/view/week/dayname.js"); +var DayGrid = __webpack_require__(/*! ../view/week/dayGrid */ "./src/js/view/week/dayGrid.js"); +var TimeGrid = __webpack_require__(/*! ../view/week/timeGrid */ "./src/js/view/week/timeGrid.js"); +var ScheduleCreationPopup = __webpack_require__(/*! ../view/popup/scheduleCreationPopup */ "./src/js/view/popup/scheduleCreationPopup.js"); +var ScheduleDetailPopup = __webpack_require__(/*! ../view/popup/scheduleDetailPopup */ "./src/js/view/popup/scheduleDetailPopup.js"); + +// Handlers +var DayNameClick = __webpack_require__(/*! ../handler/time/clickDayname */ "./src/js/handler/time/clickDayname.js"); +var DayGridClick = __webpack_require__(/*! ../handler/daygrid/click */ "./src/js/handler/daygrid/click.js"); +var DayGridCreation = __webpack_require__(/*! ../handler/daygrid/creation */ "./src/js/handler/daygrid/creation.js"); +var DayGridMove = __webpack_require__(/*! ../handler/daygrid/move */ "./src/js/handler/daygrid/move.js"); +var DayGridResize = __webpack_require__(/*! ../handler/daygrid/resize */ "./src/js/handler/daygrid/resize.js"); +var TimeClick = __webpack_require__(/*! ../handler/time/click */ "./src/js/handler/time/click.js"); +var TimeCreation = __webpack_require__(/*! ../handler/time/creation */ "./src/js/handler/time/creation.js"); +var TimeMove = __webpack_require__(/*! ../handler/time/move */ "./src/js/handler/time/move.js"); +var TimeResize = __webpack_require__(/*! ../handler/time/resize */ "./src/js/handler/time/resize.js"); + +var DAYGRID_HANDLDERS = { + 'click': DayGridClick, + 'creation': DayGridCreation, + 'move': DayGridMove, + 'resize': DayGridResize +}; +var TIMEGRID_HANDLERS = { + 'click': TimeClick, + 'creation': TimeCreation, + 'move': TimeMove, + 'resize': TimeResize +}; +var DEFAULT_PANELS = [ + { + name: 'milestone', + type: 'daygrid', + minHeight: 20, + maxHeight: 80, + showExpandableButton: true, + maxExpandableHeight: 210, + handlers: ['click'], + show: true + }, + { + name: 'task', + type: 'daygrid', + minHeight: 40, + maxHeight: 120, + showExpandableButton: true, + maxExpandableHeight: 210, + handlers: ['click', 'move'], + show: true + }, + { + name: 'allday', + type: 'daygrid', + minHeight: 30, + maxHeight: 80, + showExpandableButton: true, + maxExpandableHeight: 210, + handlers: ['click', 'creation', 'move', 'resize'], + show: true + }, + { + name: 'time', + type: 'timegrid', + autoHeight: true, + handlers: ['click', 'creation', 'move', 'resize'], + show: true + } +]; + +/* eslint-disable complexity*/ +module.exports = function(baseController, layoutContainer, dragHandler, options, viewName) { + var panels = [], + vpanels = []; + var weekView, dayNameContainer, dayNameView, vLayoutContainer, vLayout; + var createView, onSaveNewSchedule, onSetCalendars, lastVPanel; + var detailView, onShowDetailPopup, onDeleteSchedule, onShowEditPopup, onEditSchedule; + var taskView = options.taskView; + var scheduleView = options.scheduleView; + var viewVisibilities = { + 'milestone': util.isArray(taskView) ? util.inArray('milestone', taskView) >= 0 : taskView, + 'task': util.isArray(taskView) ? util.inArray('task', taskView) >= 0 : taskView, + 'allday': util.isArray(scheduleView) ? util.inArray('allday', scheduleView) >= 0 : scheduleView, + 'time': util.isArray(scheduleView) ? util.inArray('time', scheduleView) >= 0 : scheduleView + }; + + // Make panels by view sequence and visibilities + util.forEach(DEFAULT_PANELS, function(panel) { + var name = panel.name; + + panel = util.extend({}, panel); + panels.push(panel); + + // Change visibilities + panel.show = viewVisibilities[name]; + + if (panel.show) { + if (vpanels.length) { + vpanels.push({ + isSplitter: true + }); + } + vpanels.push(util.extend({}, panel)); + } + }); + + if (vpanels.length) { + lastVPanel = vpanels[vpanels.length - 1]; + lastVPanel.autoHeight = true; + lastVPanel.maxHeight = null; + lastVPanel.showExpandableButton = false; + + util.forEach(panels, function(panel) { + if (panel.name === lastVPanel.name) { + panel.showExpandableButton = false; + + return false; + } + + return true; + }); + } + + util.extend(options.week, {panels: panels}); + + weekView = new Week(null, options.week, layoutContainer, panels, viewName); + weekView.handler = { + click: {}, + dayname: {}, + creation: {}, + move: {}, + resize: {} + }; + + dayNameContainer = domutil.appendHTMLElement('div', weekView.container, config.classname('dayname-layout')); + + /********** + * Day name (top row(Mon, Tue, Wed...)) + **********/ + dayNameView = new DayName(options, dayNameContainer, baseController.theme); + weekView.handler.dayname.date = new DayNameClick(dragHandler, dayNameView, baseController); + weekView.addChild(dayNameView); + + /********** + * Initialize vertical layout module + **********/ + vLayoutContainer = domutil.appendHTMLElement('div', weekView.container, config.classname('vlayout-area')); + vLayoutContainer.style.height = (domutil.getSize(weekView.container)[1] - dayNameView.container.offsetHeight) + 'px'; + + vLayout = new VLayout({ + panels: vpanels, + panelHeights: options.week.panelHeights || [] + }, vLayoutContainer, baseController.theme); + + weekView.vLayout = vLayout; + + util.forEach(panels, function(panel) { + var name = panel.name; + var handlers = panel.handlers; + var view; + + if (!panel.show) { + return; + } + + if (panel.type === 'daygrid') { + /********** + * Schedule panel by Grid + **********/ + view = new DayGrid(name, options, vLayout.getPanelByName(panel.name).container, baseController.theme); + view.on('afterRender', function(viewModel) { + vLayout.getPanelByName(name).setHeight(null, viewModel.height); + }); + + weekView.addChild(view); + + util.forEach(handlers, function(type) { + if (!options.isReadOnly || type === 'click') { + weekView.handler[type][name] = + new DAYGRID_HANDLDERS[type](dragHandler, view, baseController, options); + view.addHandler(type, weekView.handler[type][name], vLayout.getPanelByName(name)); + } + }); + } else if (panel.type === 'timegrid') { + /********** + * Schedule panel by TimeGrid + **********/ + view = new TimeGrid(name, options, vLayout.getPanelByName(name).container); + weekView.addChild(view); + util.forEach(handlers, function(type) { + if (!options.isReadOnly || type === 'click') { + weekView.handler[type][name] = + new TIMEGRID_HANDLERS[type](dragHandler, view, baseController, options); + } + }); + + view.on('clickTimezonesCollapsedBtn', function() { + var timezonesCollapsed = !weekView.state.timezonesCollapsed; + + weekView.setState({ + timezonesCollapsed: timezonesCollapsed + }); + reqAnimFrame.requestAnimFrame(function() { + if (!weekView.invoke('clickTimezonesCollapseBtn', timezonesCollapsed)) { + weekView.render(); + } + }); + }); + } + }); + + vLayout.on('resize', function() { + reqAnimFrame.requestAnimFrame(function() { + weekView.render(); + }); + }); + + // binding create schedules event + if (options.useCreationPopup) { + createView = new ScheduleCreationPopup(layoutContainer, baseController.calendars, options.usageStatistics); + + onSaveNewSchedule = function(scheduleData) { + util.extend(scheduleData, { + useCreationPopup: true + }); + if (scheduleData.isAllDay) { + weekView.handler.creation.allday.fire('beforeCreateSchedule', scheduleData); + } else { + weekView.handler.creation.time.fire('beforeCreateSchedule', scheduleData); + } + }; + createView.on('beforeCreateSchedule', onSaveNewSchedule); + } + + onSetCalendars = function(calendars) { + if (createView) { + createView.setCalendars(calendars); + } + }; + + baseController.on('setCalendars', onSetCalendars); + + // binding popup for schedule detail + if (options.useDetailPopup) { + detailView = new ScheduleDetailPopup(layoutContainer, baseController.calendars); + onShowDetailPopup = function(eventData) { + var scheduleId = eventData.schedule.calendarId; + eventData.calendar = common.find(baseController.calendars, function(calendar) { + return calendar.id === scheduleId; + }); + + if (options.isReadOnly) { + eventData.schedule = util.extend({}, eventData.schedule, {isReadOnly: true}); + } + + detailView.render(eventData); + }; + onDeleteSchedule = function(eventData) { + if (eventData.isAllDay) { + weekView.handler.creation.allday.fire('beforeDeleteSchedule', eventData); + } else { + weekView.handler.creation.time.fire('beforeDeleteSchedule', eventData); + } + }; + onEditSchedule = function(eventData) { + if (eventData.isAllDay) { + weekView.handler.move.allday.fire('beforeUpdateSchedule', eventData); + } else { + weekView.handler.move.time.fire('beforeUpdateSchedule', eventData); + } + }; + + util.forEach(weekView.handler.click, function(panel) { + panel.on('clickSchedule', onShowDetailPopup); + }); + if (options.useCreationPopup) { + onShowEditPopup = function(eventData) { + var calendars = baseController.calendars; + eventData.isEditMode = true; + createView.setCalendars(calendars); + createView.render(eventData); + }; + createView.on('beforeUpdateSchedule', onEditSchedule); + detailView.on('beforeUpdateSchedule', onShowEditPopup); + } else { + detailView.on('beforeUpdateSchedule', onEditSchedule); + } + detailView.on('beforeDeleteSchedule', onDeleteSchedule); + } + + weekView.on('afterRender', function() { + vLayout.refresh(); + }); + + // add controller + weekView.controller = baseController.Week; + + // add destroy + weekView._beforeDestroy = function() { + util.forEach(weekView.handler, function(type) { + util.forEach(type, function(handler) { + handler.off(); + handler.destroy(); + }); + }); + + if (options.useCreationPopup) { + createView.off('beforeCreateSchedule', onSaveNewSchedule); + createView.destroy(); + } + + if (options.useDetailPopup) { + detailView.off('beforeDeleteSchedule', onDeleteSchedule); + detailView.destroy(); + } + + weekView.off(); + }; + + return { + view: weekView, + refresh: function() { + var weekViewHeight = weekView.getViewBound().height, + daynameViewHeight = domutil.getBCRect( + dayNameView.container + ).height; + + vLayout.container.style.height = + weekViewHeight - daynameViewHeight + 'px'; + vLayout.refresh(); + }, + scrollToNow: function() { + weekView.children.each(function(childView) { + if (childView.scrollToNow) { + childView.scrollToNow(); + } + }); + }, + openCreationPopup: function(schedule) { + if (createView) { + if (schedule.isAllDay) { + weekView.handler.creation.allday.invokeCreationClick(Schedule.create(schedule)); + } else { + weekView.handler.creation.time.invokeCreationClick(Schedule.create(schedule)); + } + } + }, + showCreationPopup: function(eventData) { + if (createView) { + createView.setCalendars(baseController.calendars); + createView.render(eventData); + } + } + }; +}; + + +/***/ }), + +/***/ "./src/js/handler/daygrid/click.js": +/*!*****************************************!*\ + !*** ./src/js/handler/daygrid/click.js ***! + \*****************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; +/** + * @fileoverview Click handle module for daygrid schedules + * @author NHN FE Development Lab + */ + + +var util = __webpack_require__(/*! tui-code-snippet */ "tui-code-snippet"); +var config = __webpack_require__(/*! ../../config */ "./src/js/config.js"); +var domutil = __webpack_require__(/*! ../../common/domutil */ "./src/js/common/domutil.js"); +var DayGridMove = __webpack_require__(/*! ./move */ "./src/js/handler/daygrid/move.js"); + +/** + * @constructor + * @implements {Handler} + * @mixes CustomEvents + * @param {Drag} [dragHandler] - Drag handler instance. + * @param {DayGrid} [view] - daygrid view instance. + * @param {Base} [controller] - Base controller instance. + */ +function DayGridClick(dragHandler, view, controller) { + /** + * @type {Drag} + */ + this.dragHandler = dragHandler; + + /** + * @type {DayGrid} + */ + this.view = view; + + /** + * @type {Base} + */ + this.controller = controller; + + dragHandler.on({ + 'click': this._onClick + }, this); +} + +/** + * Destroy handler module + */ +DayGridClick.prototype.destroy = function() { + this.dragHandler.off(this); + this.view = this.controller = this.dragHandler = null; +}; + +/** + * Check target element is expected condition for activate this plugins. + * @param {HTMLElement} target - The element to check + * @returns {string} - model id + */ +DayGridClick.prototype.checkExpectCondition = DayGridMove.prototype.checkExpectedCondition; + +/** + * Click event handler + * @param {object} clickEvent - click event data + * @emits DayGridClick#clickSchedule + * @emits DayGridClick#collapse + * @emits DayGridClick#expand + */ +DayGridClick.prototype._onClick = function(clickEvent) { + var self = this, + target = clickEvent.target, + dayGridScheduleView = this.checkExpectCondition(target), + scheduleCollection = this.controller.schedules, + collapseBtnElement = domutil.closest( + target, + config.classname('.weekday-collapse-btn') + ), + expandBtnElement = domutil.closest( + target, + config.classname('.weekday-exceed-in-week') + ), + containsTarget = this.view.container.contains(target); + var blockElement, scheduleElement; + + if (!containsTarget) { + return; + } + + if (collapseBtnElement) { + /** + * click collpase btn event + * @events DayGridClick#collapse + */ + self.fire('collapse'); + + return; + } + + if (expandBtnElement) { + this.view.setState({ + clickedExpandBtnIndex: parseInt(domutil.getData(expandBtnElement, 'index'), 10) + }); + + /** + * click expand btn event + * @events DayGridClick#expand + */ + self.fire('expand'); + + return; + } + + if (!dayGridScheduleView) { + return; + } + + scheduleElement = domutil.closest(target, config.classname('.weekday-schedule')); + if (scheduleElement) { + blockElement = domutil.closest(target, config.classname('.weekday-schedule-block')); + scheduleCollection.doWhenHas(domutil.getData(blockElement, 'id'), function(schedule) { + /** + * @events DayGridClick#clickSchedule + * @type {object} + * @property {Schedule} schedule - schedule instance + * @property {MouseEvent} event - MouseEvent object + */ + self.fire('clickSchedule', { + schedule: schedule, + event: clickEvent.originEvent + }); + }); + } +}; + +util.CustomEvents.mixin(DayGridClick); + +module.exports = DayGridClick; + + +/***/ }), + +/***/ "./src/js/handler/daygrid/core.js": +/*!****************************************!*\ + !*** ./src/js/handler/daygrid/core.js ***! + \****************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; +/* eslint no-shadow: 0 */ +/** + * @fileoverview Base mixin object for handler/daygrid + * @author NHN FE Development Lab + */ + + +var util = __webpack_require__(/*! tui-code-snippet */ "tui-code-snippet"); +var domutil = __webpack_require__(/*! ../../common/domutil */ "./src/js/common/domutil.js"); +var domevent = __webpack_require__(/*! ../../common/domevent */ "./src/js/common/domevent.js"); +var common = __webpack_require__(/*! ../../common/common */ "./src/js/common/common.js"); +var datetime = __webpack_require__(/*! ../../common/datetime */ "./src/js/common/datetime.js"); + +var mmax = Math.max, + mmin = Math.min; + +/** + * @mixin dayGridCore + */ +var dayGridCore = { + /** + * @param {view} view - view instance. + * @param {MouseEvent} mouseEvent - mouse schedule object. + * @returns {function|boolean} function that return schedule data by mouse events. + */ + _retriveScheduleData: function(view, mouseEvent) { + var weekdayView = view.children.single(), + container, + datesInRange, + containerWidth, + mousePos, + dragStartXIndex, + grids, + range; + + if (!weekdayView) { + return false; + } + + container = weekdayView.container; + range = weekdayView.getRenderDateRange(); + datesInRange = range.length; + grids = weekdayView.getRenderDateGrids(); + + containerWidth = domutil.getSize(container)[0]; + mousePos = domevent.getMousePosition(mouseEvent, container); + dragStartXIndex = getX(grids, common.ratio(containerWidth, 100, mousePos[0])); + + /** + * @param {MouseEvent} mouseEvent - mouse schedule in drag actions. + * @returns {object} schedule data. + */ + return function(mouseEvent) { + var pos = domevent.getMousePosition(mouseEvent, container), + mouseX = pos[0], + xIndex = getX(grids, common.ratio(containerWidth, 100, mouseX)); + + // apply limitation of creation schedule X index. + xIndex = mmax(xIndex, 0); + xIndex = mmin(xIndex, datesInRange - 1); + + return { + relatedView: view, + dragStartXIndex: dragStartXIndex, + datesInRange: datesInRange, + xIndex: xIndex, + triggerEvent: mouseEvent.type, + grids: grids, + range: range + }; + }; + }, + + /** + * @param {view} view - view instance. + * @param {TZDate} startDate - start date + * @returns {object} schedule data by mouse events. + */ + _retriveScheduleDataFromDate: function(view, startDate) { + var weekdayView = view.children.single(), + xIndex = 0, + datesInRange, + dragStartXIndex = 0, + grids, + range; + + if (!weekdayView) { + return false; + } + + range = weekdayView.getRenderDateRange(); + datesInRange = range.length; + grids = weekdayView.getRenderDateGrids(); + + util.forEach(range, function(date, index) { + if (datetime.isSameDate(date, startDate)) { + xIndex = dragStartXIndex = index; + } + }); + + // apply limitation of creation schedule X index. + xIndex = mmax(xIndex, 0); + xIndex = mmin(xIndex, datesInRange - 1); + + return { + relatedView: view, + dragStartXIndex: dragStartXIndex, + datesInRange: datesInRange, + xIndex: xIndex, + triggerEvent: 'manual', + grids: grids, + range: range + }; + } +}; + +/** + * Get the left index + * @param {Array} grids - grid size information + * @param {number} left - left position(percent) + * @returns {number} grid left index + */ +function getX(grids, left) { + var i = 0; + var length = grids.length; + var grid; + if (left < 0) { + left = 0; + } + + for (; i < length; i += 1) { + grid = grids[i]; + if (grid.left <= left && left <= (grid.left + grid.width)) { + return i; + } + } + + return i; +} + +module.exports = dayGridCore; + + +/***/ }), + +/***/ "./src/js/handler/daygrid/creation.js": +/*!********************************************!*\ + !*** ./src/js/handler/daygrid/creation.js ***! + \********************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; +/** + * @fileoverview Handler module for WeekdayInWeek view's creation actions. + * @author NHN FE Development Lab + */ + + +var util = __webpack_require__(/*! tui-code-snippet */ "tui-code-snippet"); +var config = __webpack_require__(/*! ../../config */ "./src/js/config.js"); +var datetime = __webpack_require__(/*! ../../common/datetime */ "./src/js/common/datetime.js"); +var common = __webpack_require__(/*! ../../common/common */ "./src/js/common/common.js"); +var domutil = __webpack_require__(/*! ../../common/domutil */ "./src/js/common/domutil.js"); +var domevent = __webpack_require__(/*! ../../common/domevent */ "./src/js/common/domevent.js"); +var dayGridCore = __webpack_require__(/*! ./core */ "./src/js/handler/daygrid/core.js"); +var DayGridCreationGuide = __webpack_require__(/*! ./creationGuide */ "./src/js/handler/daygrid/creationGuide.js"); +var TZDate = __webpack_require__(/*! ../../common/timezone */ "./src/js/common/timezone.js").Date; + +var CLICK_DELAY = 300; + +/** + * @constructor + * @implements {Handler} + * @mixes dayGridCore + * @mixes CutomEvents + * @param {Drag} [dragHandler] - Drag handler instance. + * @param {DayGrid} [view] - DayGrid view instance. + * @param {Base} [controller] - Base controller instance. + * @param {Options} [options] - calendar Options + */ +function DayGridCreation(dragHandler, view, controller, options) { + /** + * Drag handler instance. + * @type {Drag} + */ + this.dragHandler = dragHandler; + + /** + * view instance. + * @type {DayGrid} + */ + this.view = view; + + /** + * Base controller instance. + * @type {Base} + */ + this.controller = controller; + + /** + * @type {function} + */ + this.getScheduleDataFunc = null; + + /** + * @type {DayGridCreationGuide} + */ + this.guide = new DayGridCreationGuide(this); + + /** + * @type {boolean} + */ + this._requestOnClick = false; + + /** + * @type {boolean} + */ + this._disableDblClick = options.disableDblClick; + + /** + * @type {boolean} + */ + this._disableClick = options.disableClick; + + dragHandler.on('dragStart', this._onDragStart, this); + dragHandler.on('click', this._onClick, this); + + if (this._disableDblClick) { + CLICK_DELAY = 0; + } else { + domevent.on(view.container, 'dblclick', this._onDblClick, this); + } +} + +/** + * Destroy method + */ +DayGridCreation.prototype.destroy = function() { + this.guide.destroy(); + this.dragHandler.off(this); + + if (this.view && this.view.container) { + domevent.off(this.view.container, 'dblclick', this._onDblClick, this); + } + + this.dragHandler = this.view = this.controller = this.getScheduleDataFunc = null; +}; + +/** + * Check dragstart target is expected conditions for this handler. + * @param {HTMLElement} target - dragstart event handler's target element. + * @returns {boolean|WeekdayInWeek} return WeekdayInWeek view instance when satiate condition. + */ +DayGridCreation.prototype.checkExpectedCondition = function(target) { + var cssClass = domutil.getClass(target).trim(); + var excludeTarget = true; + var matches, schedulesElement; + + if (domutil.closest(target, config.classname('.weekday-exceed-in-week')) + || domutil.closest(target, config.classname('.weekday-collapse-btn')) + ) { + return false; + } + + if (domutil.closest(target, config.classname('.weekday-schedule-block'), excludeTarget)) { + return false; + } + + schedulesElement = domutil.closest(target, config.classname('.weekday-schedules')); + if (!schedulesElement && cssClass !== config.classname('weekday-schedules')) { + return false; + } + + target = schedulesElement ? schedulesElement.parentNode : target.parentNode; + cssClass = domutil.getClass(target); + matches = cssClass.match(config.daygrid.getViewIDRegExp); + + if (!matches || matches.length < 2) { + return false; + } + + return util.pick(this.view.children.items, matches[1]); +}; + +/** + * Request schedule model creation to controller by custom schedules. + * @fires {DayGridCreation#beforeCreateSchedule} + * @param {object} scheduleData - schedule data from DayGridCreation module. + */ +DayGridCreation.prototype._createSchedule = function(scheduleData) { + var dateRange = scheduleData.range, + startXIndex = scheduleData.dragStartXIndex, + xIndex = scheduleData.xIndex, + start, end; + + // when inverse start, end then change it. + if (xIndex < startXIndex) { + startXIndex = xIndex + startXIndex; + xIndex = startXIndex - xIndex; + startXIndex = startXIndex - xIndex; + } + + start = new TZDate(dateRange[startXIndex]); + end = datetime.end(dateRange[xIndex]); + + /** + * @event {DayGridCreation#beforeCreateSchedule} + * @type {object} + * @property {string} category - schedule category + * @property {boolean} isAllDay - whether schedule is fired in view area? + * @property {Date} start - select start time + * @property {Date} end - select end time + * @property {DayGridCreationGuide} guide - DayGridCreationGuide instance + * @property {string} triggerEventName - event name + */ + this.fire('beforeCreateSchedule', { + category: this.view.options.viewName, + isAllDay: true, + start: start, + end: end, + guide: this.guide, + triggerEventName: scheduleData.triggerEvent + }); +}; + +/** + * DragStart event handler method. + * @emits DayGridCreation#dragstart + * @param {object} dragStartEventData - Drag#dragStart event handler schedule data. + */ +DayGridCreation.prototype._onDragStart = function(dragStartEventData) { + var target = dragStartEventData.target, + result = this.checkExpectedCondition(target), + getScheduleDataFunc, + scheduleData; + + if (!result) { + return; + } + + this.dragHandler.on({ + drag: this._onDrag, + dragEnd: this._onDragEnd + }, this); + + getScheduleDataFunc = this._retriveScheduleData(this.view, dragStartEventData.originEvent); + this.getScheduleDataFunc = getScheduleDataFunc; + + scheduleData = getScheduleDataFunc(dragStartEventData.originEvent); + + /** + * @event DayGridCreation#dragstart + * @type {object} + * @property {DayGridView} relatedView - view instance. + * @property {number} datesInRange - date count of this view. + * @property {number} dragStartXIndex - index number of dragstart grid index. + * @property {number} xIndex - index number of mouse positions. + */ + this.fire('dragstart', scheduleData); +}; + +/** + * Drag event handler method. + * @emits DayGridCreation#drag + * @param {object} dragEventData - Drag#drag event handler scheduledata. + */ +DayGridCreation.prototype._onDrag = function(dragEventData) { + var getScheduleDataFunc = this.getScheduleDataFunc, + scheduleData; + + if (!getScheduleDataFunc) { + return; + } + + scheduleData = getScheduleDataFunc(dragEventData.originEvent); + + /** + * @event DayGridCreation#drag + * @type {object} + * @property {DayGridView} relatedView - view instance. + * @property {number} datesInRange - date count of this view. + * @property {number} dragStartXIndex - index number of dragstart grid index. + * @property {number} xIndex - index number of mouse positions. + */ + this.fire('drag', scheduleData); +}; + +/** + * DragEnd event hander method. + * @emits DayGridCreation#dragend + * @param {object} dragEndEventData - Drag#dragEnd event handler data. + * @param {string} [overrideEventName] - override emitted event name when supplied. + */ +DayGridCreation.prototype._onDragEnd = function(dragEndEventData, overrideEventName) { + var getScheduleDataFunc = this.getScheduleDataFunc; + var scheduleData; + + if (!getScheduleDataFunc) { + return; + } + + this.dragHandler.off({ + drag: this._onDrag, + dragEnd: this._onDragEnd + }, this); + + scheduleData = getScheduleDataFunc(dragEndEventData.originEvent); + + this._createSchedule(scheduleData); + + /** + * @event DayGridCreation#dragend + * @type {object} + * @property {DayGridView} relatedView - view instance. + * @property {number} datesInRange - date count of this view. + * @property {number} dragStartXIndex - index number of dragstart grid index. + * @property {number} xIndex - index number of mouse positions. + */ + this.fire(overrideEventName || 'dragend', scheduleData); + + this.getScheduleDataFunc = null; +}; + +/** + * Click event handler method. + * @emits DayGridCreation#click + * @param {object} clickEventData - Drag#click event handler data. + */ +DayGridCreation.prototype._onClick = function(clickEventData) { + var self = this; + var getScheduleDataFunc, scheduleData; + + if (!this.checkExpectedCondition(clickEventData.target) || this._disableClick) { + return; + } + + getScheduleDataFunc = this._retriveScheduleData(this.view, clickEventData.originEvent); + scheduleData = getScheduleDataFunc(clickEventData.originEvent); + + this._requestOnClick = true; + setTimeout(function() { + if (self._requestOnClick) { + self.fire('click', scheduleData); + self._createSchedule(scheduleData); + } + self._requestOnClick = false; + }, CLICK_DELAY); +}; + +/** + * Dblclick event handler method. + * @emits DayGridCreation#click + * @param {object} clickEventData - Drag#Click event handler data. + */ +DayGridCreation.prototype._onDblClick = function(clickEventData) { + var getScheduleDataFunc, scheduleData; + + if (!this.checkExpectedCondition(clickEventData.target)) { + return; + } + + getScheduleDataFunc = this._retriveScheduleData(this.view, clickEventData); + scheduleData = getScheduleDataFunc(clickEventData); + + this.fire('click', scheduleData); + + this._createSchedule(scheduleData); + + this._requestOnClick = false; +}; + +/** + * Invoke creation click + * @param {Schedule} schedule - schedule instance + */ +DayGridCreation.prototype.invokeCreationClick = function(schedule) { + var scheduleData = this._retriveScheduleDataFromDate(this.view, schedule.start); + + this.fire('click', scheduleData); + + this._createSchedule(scheduleData); +}; + +common.mixin(dayGridCore, DayGridCreation); +util.CustomEvents.mixin(DayGridCreation); + +module.exports = DayGridCreation; + + +/***/ }), + +/***/ "./src/js/handler/daygrid/creationGuide.js": +/*!*************************************************!*\ + !*** ./src/js/handler/daygrid/creationGuide.js ***! + \*************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; +/** + * @fileoverview Guide element for DayGrid.Creation + * @author NHN FE Development Lab + */ + + +var config = __webpack_require__(/*! ../../config */ "./src/js/config.js"); +var domutil = __webpack_require__(/*! ../../common/domutil */ "./src/js/common/domutil.js"); +var reqAnimFrame = __webpack_require__(/*! ../../common/reqAnimFrame */ "./src/js/common/reqAnimFrame.js"); + +/** + * Class for DayGrid.Creation dragging effect. + * @constructor + * @param {DayGridCreation} creation - instance of DayGridCreation. + */ +function DayGridCreationGuide(creation) { + /** + * @type {DayGridCreation} + */ + this.creation = creation; + + /** + * @type {HTMLDIVElement} + */ + this.scheduleContainer = null; + + /** + * @type {HTMLDIVElement} + */ + this.guideElement = document.createElement('div'); + + this.initializeGuideElement(); + this.applyTheme(creation.controller.theme); + + creation.on({ + dragstart: this._createGuideElement, + drag: this._onDrag, + click: this._createGuideElement + }, this); +} + +/** + * Destroy method + */ +DayGridCreationGuide.prototype.destroy = function() { + this.clearGuideElement(); + this.creation.off(this); + this.creation = this.scheduleContainer = this.guideElement = null; +}; + +/** + * initialize guide element's default style. + */ +DayGridCreationGuide.prototype.initializeGuideElement = function() { + domutil.addClass(this.guideElement, config.classname('daygrid-guide-creation-block')); +}; + +/** + * Drag event handler + * @param {object} scheduleData - schedule data from DayGrid.Creation handler. + */ +DayGridCreationGuide.prototype._onDrag = function(scheduleData) { + this._refreshGuideElement(scheduleData, true); +}; + +/** + * Get element width based on narrowWeekend + * @param {number} dragStartIndex - grid start index + * @param {number} dragEndIndex - grid end index + * @param {Array} grids - dates information + * @returns {number} element width + */ +DayGridCreationGuide.prototype._getGuideWidth = function(dragStartIndex, dragEndIndex, grids) { + var width = 0; + var i = dragStartIndex; + for (; i <= dragEndIndex; i += 1) { + width += grids[i] ? grids[i].width : 0; + } + + return width; +}; + +/** + * Refresh guide element. + * @param {object} scheduleData - schedule data from DayGrid.Creation handler. + * @param {boolean} defer - If set to true, set style in the next frame + */ +DayGridCreationGuide.prototype._refreshGuideElement = function(scheduleData, defer) { + var guideElement = this.guideElement, + data = scheduleData, + dragStartXIndex = data.dragStartXIndex < data.xIndex ? data.dragStartXIndex : data.xIndex, + dragEndXIndex = data.dragStartXIndex < data.xIndex ? data.xIndex : data.dragStartXIndex, + leftPercent, + widthPercent; + + leftPercent = data.grids[dragStartXIndex] ? data.grids[dragStartXIndex].left : 0; + widthPercent = this._getGuideWidth(dragStartXIndex, dragEndXIndex, data.grids); + + /** eslint-disable require-jsdoc */ + function setStyle() { + guideElement.style.display = 'block'; + guideElement.style.left = leftPercent + '%'; + guideElement.style.width = widthPercent + '%'; + } + + if (defer) { + reqAnimFrame.requestAnimFrame(setStyle); + } else { + setStyle(); + } +}; + +/** + * Clear guide element. + */ +DayGridCreationGuide.prototype.clearGuideElement = function() { + var guideElement = this.guideElement; + + domutil.remove(guideElement); + + guideElement.style.display = 'none'; + guideElement.style.left = ''; + guideElement.style.width = ''; +}; + +/** + * Create guide element + * @param {object} dragStartEventData - schedule data object of DayGrid.Creation. + */ +DayGridCreationGuide.prototype._createGuideElement = function(dragStartEventData) { + var creation = this.creation, + view = creation.view, + container = view.container, + scheduleContainer = domutil.find(config.classname('.weekday-grid'), container); + + scheduleContainer.appendChild(this.guideElement); + this._refreshGuideElement(dragStartEventData); +}; + +/** + * Drag event handler. + * @param {object} dragEventData - event data object of DayGrid.Creation. + */ +DayGridCreationGuide.prototype._onDrag = function(dragEventData) { + this._refreshGuideElement(dragEventData); +}; + +DayGridCreationGuide.prototype.applyTheme = function(theme) { + var style = this.guideElement.style; + + style.backgroundColor = theme.common.creationGuide.backgroundColor; + style.border = theme.common.creationGuide.border; +}; + +module.exports = DayGridCreationGuide; + + +/***/ }), + +/***/ "./src/js/handler/daygrid/move.js": +/*!****************************************!*\ + !*** ./src/js/handler/daygrid/move.js ***! + \****************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; +/** + * @fileoverview Move handler for DayGrid view. + * @author NHN FE Development Lab + */ + + +var util = __webpack_require__(/*! tui-code-snippet */ "tui-code-snippet"); +var config = __webpack_require__(/*! ../../config */ "./src/js/config.js"); +var common = __webpack_require__(/*! ../../common/common */ "./src/js/common/common.js"); +var domutil = __webpack_require__(/*! ../../common/domutil */ "./src/js/common/domutil.js"); +var dayGridCore = __webpack_require__(/*! ./core */ "./src/js/handler/daygrid/core.js"); +var DayGridMoveGuide = __webpack_require__(/*! ./moveGuide */ "./src/js/handler/daygrid/moveGuide.js"); +var TZDate = __webpack_require__(/*! ../../common/timezone */ "./src/js/common/timezone.js").Date; + +/** + * @constructor + * @implements {Handler} + * @mixes dayGridCore + * @mixes CustomEvents + * @param {Drag} dragHandler - Drag handler instance. + * @param {DayGrid} view - view instance. + * @param {Base} controller - Base controller instance. + */ +function DayGridMove(dragHandler, view, controller) { + /** + * Drag handler instance. + * @type {Drag} + */ + this.dragHandler = dragHandler; + + /** + * view instance. + * @type {DayGrid} + */ + this.view = view; + + /** + * Base controller instance. + * @type {Base} + */ + this.controller = controller; + + /** + * Temporary variable for dragstart event data. + * @type {object} + */ + this._dragStart = null; + + dragHandler.on({ + dragStart: this._onDragStart + }, this); + + /** + * @type {DayGridMoveGuide} + */ + this.guide = new DayGridMoveGuide(this); +} + +DayGridMove.prototype.destroy = function() { + this.guide.destroy(); + this.dragHandler.off(this); + this.dragHandler = this.view = this.controller = + this.guide = this._dragStart = null; +}; + +/** + * Check dragstart target is expected conditions for this handler. + * @param {HTMLElement} target - dragstart event handler's target element. + * @returns {boolean|DayGridSchedule} return DayGridSchedule view instance when satiate condition. + */ +DayGridMove.prototype.checkExpectedCondition = function(target) { + var cssClass = domutil.getClass(target), + parentView, + matches; + + if (~cssClass.indexOf(config.classname('weekday-resize-handle'))) { + return false; + } + + parentView = domutil.closest(target, config.classname('.weekday')); + + if (!parentView) { + return false; + } + + cssClass = domutil.getClass(parentView); + matches = cssClass.match(config.daygrid.getViewIDRegExp); + + if (!matches || matches.length < 2) { + return false; + } + + return util.pick(this.view.children.items, matches[1]); +}; + +/** + * DragStart event handler method. + * @emits DayGridMove#dragstart + * @param {object} dragStartEventData - Drag#dragStart event handler event data. + */ +DayGridMove.prototype._onDragStart = function(dragStartEventData) { + var target = dragStartEventData.target, + result = this.checkExpectedCondition(target), + controller = this.controller, + excludeTarget = true, + scheduleBlockElement, + modelID, + targetModel, + getScheduleDataFunc, + scheduleData; + + if (!result) { + return; + } + + scheduleBlockElement = domutil.closest(target, config.classname('.weekday-schedule-block'), excludeTarget); + if (!scheduleBlockElement) { + return; + } + + modelID = domutil.getData(scheduleBlockElement, 'id'); + targetModel = controller.schedules.items[modelID]; + + if (!targetModel) { + return; + } + + if (targetModel.isReadOnly) { + return; + } + + getScheduleDataFunc = this._retriveScheduleData(this.view, dragStartEventData.originEvent); + this.getScheduleDataFunc = getScheduleDataFunc; + scheduleData = this._dragStart = getScheduleDataFunc(dragStartEventData.originEvent); + + util.extend(scheduleData, { + scheduleBlockElement: scheduleBlockElement, + model: targetModel + }); + + this.dragHandler.on({ + drag: this._onDrag, + dragEnd: this._onDragEnd, + click: this._onClick + }, this); + + /** + * @event DayGridMove#dragstart + * @type {object} + * @property {DayGrid} relatedView - view instance. + * @property {number} datesInRange - date count of this view. + * @property {number} dragStartXIndex - index number of dragstart grid index. + * @property {number} xIndex - index number of mouse positions. + * @property {Schedule} model - data object of model isntance. + * @property {HTMLDivElement} scheduleBlockElement - target schedule block element. + */ + this.fire('dragstart', scheduleData); +}; + +/** + * Drag event handler method. + * @emits DayGridMove#drag + * @param {object} dragEventData - Drag#drag event handler eventdata. + */ +DayGridMove.prototype._onDrag = function(dragEventData) { + var getScheduleDataFunc = this.getScheduleDataFunc; + + if (!getScheduleDataFunc) { + return; + } + + /** + * @schedule DayGridMove#drag + * @type {object} + * @property {DayGrid} relatedView - view instance. + * @property {number} datesInRange - date count of this view. + * @property {number} dragStartXIndex - index number of dragstart grid index. + * @property {number} xIndex - index number of mouse positions. + */ + this.fire('drag', getScheduleDataFunc(dragEventData.originEvent)); +}; + +/** + * Request update schedule model to base controller. + * @fires DayGridMove#beforeUpdateSchedule + * @param {object} scheduleData - schedule data from DayGridMove handler module. + */ +DayGridMove.prototype._updateSchedule = function(scheduleData) { + var schedule = scheduleData.targetModel, + dateOffset = scheduleData.xIndex - scheduleData.dragStartXIndex, + newStarts = new TZDate(schedule.start), + newEnds = new TZDate(schedule.end); + + newStarts = newStarts.addDate(dateOffset); + newEnds = newEnds.addDate(dateOffset); + + /** + * @event DayGridMove#beforeUpdateSchedule + * @type {object} + * @property {Schedule} schedule - The original schedule instance + * @property {Date} start - Deprecated: start time to update + * @property {Date} end - Deprecated: end time to update + * @property {object} changes - start and end time to update + * @property {Date} start - start time to update + * @property {Date} end - end time to update + */ + this.fire('beforeUpdateSchedule', { + schedule: schedule, + changes: { + start: newStarts, + end: newEnds + }, + start: newStarts, + end: newEnds + }); +}; + +/** + * DragEnd event hander method. + * @emits DayGridMove#dragend + * @param {object} dragEndEventData - Drag#DragEnd event handler data. + * @param {string} [overrideEventName] - override emitted event name when supplied. + * @param {?boolean} skipUpdate - true then skip update schedule model. + */ +DayGridMove.prototype._onDragEnd = function(dragEndEventData, overrideEventName, skipUpdate) { + var getScheduleDataFunc = this.getScheduleDataFunc, + dragStart = this._dragStart, + scheduleData; + + if (!getScheduleDataFunc || !dragStart) { + return; + } + + this.dragHandler.off({ + drag: this._onDrag, + dragEnd: this._onDragEnd, + click: this._onClick + }, this); + + scheduleData = getScheduleDataFunc(dragEndEventData.originEvent); + util.extend(scheduleData, { + targetModel: dragStart.model + }); + + if (!skipUpdate) { + this._updateSchedule(scheduleData); + } + + /** + * @event DayGridMove#dragend + * @type {object} + * @property {DayGrid} relatedView - view instance. + * @property {number} datesInRange - date count of this view. + * @property {number} dragStartXIndex - index number of dragstart grid index. + * @property {number} xIndex - index number of mouse positions. + */ + this.fire(overrideEventName || 'dragend', scheduleData); + + this.getScheduleDataFunc = this._dragStart = null; +}; + +/** + * Click event handler method. + * @emits DayGridMove#click + * @param {object} clickEventData - Drag#Click event handler data. + */ +DayGridMove.prototype._onClick = function(clickEventData) { + /** + * @event DayGridMove#click + * @type {object} + * @property {DayGrid} relatedView - view instance. + * @property {number} datesInRange - date count of this view. + * @property {number} dragStartXIndex - index number of dragstart grid index. + * @property {number} xIndex - index number of mouse positions. + */ + this._onDragEnd(clickEventData, 'click', true); +}; + +common.mixin(dayGridCore, DayGridMove); +util.CustomEvents.mixin(DayGridMove); + +module.exports = DayGridMove; + + +/***/ }), + +/***/ "./src/js/handler/daygrid/moveGuide.js": +/*!*********************************************!*\ + !*** ./src/js/handler/daygrid/moveGuide.js ***! + \*********************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; +/* WEBPACK VAR INJECTION */(function(global) {/** + * @fileoverview Effect module for DayGrid.Move + * @author NHN FE Development Lab + */ + + +var util = __webpack_require__(/*! tui-code-snippet */ "tui-code-snippet"); +var config = __webpack_require__(/*! ../../config */ "./src/js/config.js"); +var datetime = __webpack_require__(/*! ../../common/datetime */ "./src/js/common/datetime.js"); +var domutil = __webpack_require__(/*! ../../common/domutil */ "./src/js/common/domutil.js"); +var reqAnimFrame = __webpack_require__(/*! ../../common/reqAnimFrame */ "./src/js/common/reqAnimFrame.js"); + +/** + * Class for DayGrid.Move dragging effect. + * @constructor + * @param {DayGridMove} daygridMove - instance of DayGridMove. + */ +function DayGridMoveGuide(daygridMove) { + /** + * @type {DayGridMove} + */ + this.daygridMove = daygridMove; + + /** + * The element that actually contains the event element + * @type {HTMLDIVElement} + */ + this.scheduleContainer = null; + + /** + * @type {number} + */ + this._dragStartXIndex = null; + + /** + * @type {HTMLDIVElement} + */ + this.guideElement = null; + + /** + * @type {HTMLElement[]} + */ + this.elements = null; + + daygridMove.on({ + 'dragstart': this._onDragStart, + 'drag': this._onDrag, + 'dragend': this._clearGuideElement, + 'click': this._clearGuideElement + }, this); +} + +/** + * Destroy method + */ +DayGridMoveGuide.prototype.destroy = function() { + this._clearGuideElement(); + this.daygridMove.off(this); + this.daygridMove = this.scheduleContainer = this._dragStartXIndex = + this.elements = this.guideElement = null; +}; + +/** + * Clear guide element. + */ +DayGridMoveGuide.prototype._clearGuideElement = function() { + this._showOriginScheduleBlocks(); + + domutil.remove(this.guideElement); + + if (!util.browser.msie) { + domutil.removeClass(global.document.body, config.classname('dragging')); + } + + this._dragStartXIndex = this.getScheduleDataFunc = this.guideElement = null; +}; + +/** + * Dim element blocks + * @param {number} modelID - Schedule model instance ID + */ +DayGridMoveGuide.prototype._hideOriginScheduleBlocks = function(modelID) { + var className = config.classname('weekday-schedule-block-dragging-dim'); + var scheduleBlocks = domutil.find( + config.classname('.weekday-schedule-block'), + this.daygridMove.view.container, + true + ); + + this.elements = util.filter(scheduleBlocks, function(schedule) { + return domutil.getData(schedule, 'id') === modelID; + }); + + util.forEach(this.elements, function(el) { + domutil.addClass(el, className); + }); +}; + +/** + * Show element blocks + */ +DayGridMoveGuide.prototype._showOriginScheduleBlocks = function() { + var className = config.classname('weekday-schedule-block-dragging-dim'); + + util.forEach(this.elements, function(el) { + domutil.removeClass(el, className); + }); +}; + +/** + * Highlight element blocks + * @param {Schedule} model - model + * @param {HTMLElement} parent - parent element + */ +DayGridMoveGuide.prototype._highlightScheduleBlocks = function(model, parent) { + var elements = domutil.find(config.classname('.weekday-schedule'), parent, true); + + util.forEach(elements, function(el) { + el.style.margin = '0'; + + if (!model.isFocused) { + el.style.backgroundColor = model.dragBgColor; + el.style.borderLeftColor = model.borderColor; + el.style.color = '#ffffff'; + } + }); +}; + +/** + * Refresh guide element. + * @param {number} leftPercent - left percent of guide element. + * @param {number} widthPercent - width percent of guide element. + * @param {boolean} isExceededLeft - schedule start is faster then render start date? + * @param {boolean} isExceededRight - schedule end is later then render end date? + */ +DayGridMoveGuide.prototype.refreshGuideElement = function(leftPercent, widthPercent, isExceededLeft, isExceededRight) { + var guideElement = this.guideElement; + + reqAnimFrame.requestAnimFrame(function() { + guideElement.style.left = leftPercent + '%'; + guideElement.style.width = widthPercent + '%'; + + if (isExceededLeft) { + domutil.addClass(guideElement, config.classname('weekday-exceed-left')); + } else { + domutil.removeClass(guideElement, config.classname('weekday-exceed-left')); + } + + if (isExceededRight) { + domutil.addClass(guideElement, config.classname('weekday-exceed-right')); + } else { + domutil.removeClass(guideElement, config.classname('weekday-exceed-right')); + } + }); +}; + +/** + * Get schedule block information from schedule data. + * + * For example, there is single schedule has 10 length. but render range in view is 5 then + * rendered block must be cut out to render properly. in this case, this method return + * how many block are cut before rendering. + * + * @param {object} dragStartEventData - schedule data from DayGrid.Move handler. + * @returns {function} function that return schedule block information. + */ +DayGridMoveGuide.prototype._getScheduleBlockDataFunc = function(dragStartEventData) { + var model = dragStartEventData.model, + datesInRange = dragStartEventData.datesInRange, + range = dragStartEventData.range, + baseWidthPercent = (100 / datesInRange), + originScheduleStarts = datetime.start(model.start), + originScheduleEnds = datetime.end(model.end), + renderStartDate = datetime.start(range[0]), + renderEndDate = datetime.end(range[range.length - 1]), + fromLeft = Math.ceil((originScheduleStarts.getTime() - + renderStartDate.getTime()) / datetime.MILLISECONDS_PER_DAY) || 0, + fromRight = Math.ceil((originScheduleEnds.getTime() - + renderEndDate.getTime()) / datetime.MILLISECONDS_PER_DAY) || 0; + + return function(indexOffset) { + return { + baseWidthPercent: baseWidthPercent, + fromLeft: fromLeft + indexOffset, + fromRight: fromRight + indexOffset + }; + }; +}; + +/** + * DragStart event handler. + * @param {object} dragStartEventData - schedule data. + */ +DayGridMoveGuide.prototype._onDragStart = function(dragStartEventData) { + var container = this.daygridMove.view.container, + guideElement = this.guideElement = dragStartEventData.scheduleBlockElement.cloneNode(true), + scheduleContainer; + + if (!util.browser.msie) { + domutil.addClass(global.document.body, config.classname('dragging')); + } + + this._hideOriginScheduleBlocks(String(dragStartEventData.model.cid())); + + scheduleContainer = domutil.find(config.classname('.weekday-schedules'), container); + domutil.appendHTMLElement('div', guideElement, config.classname('weekday-schedule-cover')); + scheduleContainer.appendChild(guideElement); + + this._dragStartXIndex = dragStartEventData.xIndex; + this.getScheduleDataFunc = this._getScheduleBlockDataFunc(dragStartEventData); + + this._highlightScheduleBlocks(dragStartEventData.model, guideElement); +}; + +/** + * Drag event handler. + * @param {object} dragEventData - schedule data. + */ +DayGridMoveGuide.prototype._onDrag = function(dragEventData) { + var getScheduleDataFunc = this.getScheduleDataFunc, + dragStartXIndex = this._dragStartXIndex, + datesInRange = dragEventData.datesInRange, + grids = dragEventData.grids, + scheduleData, + isExceededLeft, + isExceededRight, + originLength, + leftIndex, + size, + newLeft, + newWidth; + + if (!getScheduleDataFunc) { + return; + } + + scheduleData = getScheduleDataFunc(dragEventData.xIndex - dragStartXIndex); + isExceededLeft = scheduleData.fromLeft < 0; + isExceededRight = scheduleData.fromRight > 0; + + leftIndex = Math.max(0, scheduleData.fromLeft); + originLength = (scheduleData.fromLeft * -1) + (datesInRange + scheduleData.fromRight); + size = isExceededLeft ? (originLength + scheduleData.fromLeft) : originLength; + size = isExceededRight ? (size - scheduleData.fromRight) : size; + + newLeft = grids[leftIndex] ? grids[leftIndex].left : 0; + newWidth = getScheduleBlockWidth(leftIndex, size, grids); + + this.refreshGuideElement(newLeft, newWidth, isExceededLeft, isExceededRight); +}; + +/** + * Get schedule width based on grids + * @param {number} left - left index + * @param {number} size - schedule width + * @param {Array} grids - dates information + * @returns {number} element width + */ +function getScheduleBlockWidth(left, size, grids) { + var width = 0; + var i = 0; + var length = grids.length; + for (; i < size; i += 1) { + left = (left + i) % length; + if (left < length) { + width += grids[left] ? grids[left].width : 0; + } + } + + return width; +} + +module.exports = DayGridMoveGuide; + +/* WEBPACK VAR INJECTION */}.call(this, __webpack_require__(/*! ./../../../../node_modules/webpack/buildin/global.js */ "./node_modules/webpack/buildin/global.js"))) + +/***/ }), + +/***/ "./src/js/handler/daygrid/resize.js": +/*!******************************************!*\ + !*** ./src/js/handler/daygrid/resize.js ***! + \******************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; +/** + * @fileoverview Resize handler module for DayGrid view. + * @author NHN FE Development Lab + */ + + +var util = __webpack_require__(/*! tui-code-snippet */ "tui-code-snippet"); +var config = __webpack_require__(/*! ../../config */ "./src/js/config.js"); +var datetime = __webpack_require__(/*! ../../common/datetime */ "./src/js/common/datetime.js"); +var domutil = __webpack_require__(/*! ../../common/domutil */ "./src/js/common/domutil.js"); +var common = __webpack_require__(/*! ../../common/common */ "./src/js/common/common.js"); +var dayGridCore = __webpack_require__(/*! ./core */ "./src/js/handler/daygrid/core.js"); +var DayGridResizeGuide = __webpack_require__(/*! ./resizeGuide */ "./src/js/handler/daygrid/resizeGuide.js"); +var TZDate = __webpack_require__(/*! ../../common/timezone */ "./src/js/common/timezone.js").Date; + +/** + * @constructor + * @implements {Handler} + * @mixes dayGridCore + * @mixes CustomEvents + * @param {Drag} [dragHandler] - Drag handler instance. + * @param {DayGrid} [view] - view instance. + * @param {Base} [controller] - Base controller instance. + */ +function DayGridResize(dragHandler, view, controller) { + /** + * Drag handler instance. + * @type {Drag} + */ + this.dragHandler = dragHandler; + + /** + * view instance. + * @type {DayGrid} + */ + this.view = view; + + /** + * Base controller instance. + * @type {Base} + */ + this.controller = controller; + + /** + * Temporary variable for dragStart event data. + * @type {object} + */ + this._dragStart = null; + + dragHandler.on({ + dragStart: this._onDragStart + }, this); + + /** + * @type {DayGridResizeGuide} + */ + this.guide = new DayGridResizeGuide(this); +} + +/** + * Destroy method + */ +DayGridResize.prototype.destroy = function() { + this.guide.destroy(); + this.dragHandler.off(this); + this.dragHandler = this.view = this.controller = + this.guide = this._dragStart = null; +}; + +/** + * Check dragstart target is expected conditions for this handler. + * @param {HTMLElement} target - dragstart event handler's target element. + * @returns {boolean|WeekdayInWeek} return WeekdayInWeek view instance when satiate condition. + */ +DayGridResize.prototype.checkExpectedCondition = function(target) { + var cssClass = domutil.getClass(target), + matches; + + if (!~cssClass.indexOf(config.classname('weekday-resize-handle'))) { + return false; + } + + target = domutil.closest(target, config.classname('.weekday')); + + if (!target) { + return false; + } + + cssClass = domutil.getClass(target); + matches = cssClass.match(config.daygrid.getViewIDRegExp); + + if (!matches || matches.length < 2) { + return false; + } + + return util.pick(this.view.children.items, matches[1]); +}; + +/** + * DragStart event handler. + * @emits DayGridResize#dragstart + * @param {object} dragStartEventData - schedule data. + */ +DayGridResize.prototype._onDragStart = function(dragStartEventData) { + var target = dragStartEventData.target, + result = this.checkExpectedCondition(target), + controller = this.controller, + scheduleBlockElement, + modelID, + targetModel, + getScheduleDataFunc, + scheduleData; + + if (!result) { + return; + } + + scheduleBlockElement = domutil.closest(target, config.classname('.weekday-schedule-block')); + modelID = domutil.getData(scheduleBlockElement, 'id'); + targetModel = controller.schedules.items[modelID]; + + if (!targetModel) { + return; + } + + getScheduleDataFunc = this._retriveScheduleData(this.view, dragStartEventData.originEvent); + this.getScheduleDataFunc = getScheduleDataFunc; + scheduleData = this._dragStart = getScheduleDataFunc(dragStartEventData.originEvent); + + util.extend(scheduleData, { + scheduleBlockElement: scheduleBlockElement, + model: targetModel + }); + + this.dragHandler.on({ + drag: this._onDrag, + dragEnd: this._onDragEnd, + click: this._onClick + }, this); + + /** + * @event DayGridResize#dragstart + * @type {object} + * @property {View} relatedView - view instance. + * @property {number} datesInRange - date count of this view. + * @property {number} dragStartXIndex - index number of dragstart grid index. + * @property {number} xIndex - index number of mouse positions. + * @property {Schedule} model - data object of model isntance. + * @property {HTMLDivElement} scheduleBlockElement - target schedule block element. + */ + this.fire('dragstart', scheduleData); +}; + +/** + * Drag event handler method. + * @emits DayGridResize#drag + * @param {object} dragEventData - Drag#drag event handler scheduledata. + */ +DayGridResize.prototype._onDrag = function(dragEventData) { + var getScheduleDataFunc = this.getScheduleDataFunc; + + if (!getScheduleDataFunc) { + return; + } + + /** + * @event DayGridResize#drag + * @type {object} + * @property {View} relatedView - view instance. + * @property {number} datesInRange - date count of this view. + * @property {number} dragStartXIndex - index number of dragstart grid index. + * @property {number} xIndex - index number of mouse positions. + */ + this.fire('drag', getScheduleDataFunc(dragEventData.originEvent)); +}; + +/** + * Request update schedule instance to base controller. + * @fires DayGridResize#beforeUpdateSchedule + * @param {object} scheduleData - schedule data from DayGridResize handler. + */ +DayGridResize.prototype._updateSchedule = function(scheduleData) { + var schedule = scheduleData.targetModel, + dateOffset = scheduleData.xIndex - scheduleData.dragStartXIndex, + newEnds = new TZDate(schedule.end); + var changes; + + newEnds = newEnds.addDate(dateOffset); + newEnds = new TZDate(common.maxDate(datetime.end(schedule.start), newEnds)); + + changes = common.getScheduleChanges( + schedule, + ['end'], + {end: newEnds} + ); + + /** + * @event DayGridResize#beforeUpdateSchedule + * @type {object} + * @property {Schedule} schedule - The original schedule instance + * @property {Date} start - Deprecated: start time to update + * @property {Date} end - Deprecated: end time to update + * @property {object} changes - end time to update + * @property {date} end - end time to update + */ + this.fire('beforeUpdateSchedule', { + schedule: schedule, + changes: changes, + start: schedule.getStarts(), + end: newEnds + }); +}; + +/** + * DragEnd event hander method. + * @emits DayGridResize#dragend + * @param {object} dragEndEventData - Drag#DragEnd event handler data. + * @param {string} [overrideEventName] - override emitted event name when supplied. + * @param {?boolean} skipUpdate - true then skip update schedule model. + */ +DayGridResize.prototype._onDragEnd = function(dragEndEventData, overrideEventName, skipUpdate) { + var getScheduleDataFunc = this.getScheduleDataFunc, + dragStart = this._dragStart, + scheduleData; + + if (!getScheduleDataFunc || !dragStart) { + return; + } + + this.dragHandler.off({ + drag: this._onDrag, + dragEnd: this._onDragEnd, + click: this._onClick + }, this); + + scheduleData = getScheduleDataFunc(dragEndEventData.originEvent); + util.extend(scheduleData, { + targetModel: dragStart.model + }); + + if (!skipUpdate) { + this._updateSchedule(scheduleData); + } + + /** + * @event DayGridResize#dragend + * @type {object} + * @property {View} relatedView - view instance. + * @property {number} datesInRange - date count of this view. + * @property {number} dragStartXIndex - index number of dragstart grid index. + * @property {number} xIndex - index number of mouse positions. + */ + this.fire(overrideEventName || 'dragend', scheduleData); + + this.getScheduleDataFunc = this._dragStart = null; +}; + +/** + * Click event handler method. + * @emits DayGridResize#click + * @param {object} clickEventData - Drag#Click event handler data. + */ +DayGridResize.prototype._onClick = function(clickEventData) { + /** + * @event DayGridResize#click + * @type {object} + * @property {View} relatedView - view instance. + * @property {number} datesInRange - date count of this view. + * @property {number} dragStartXIndex - index number of dragstart grid index. + * @property {number} xIndex - index number of mouse positions. + */ + this._onDragEnd(clickEventData, 'click', true); +}; + +common.mixin(dayGridCore, DayGridResize); +util.CustomEvents.mixin(DayGridResize); + +module.exports = DayGridResize; + + +/***/ }), + +/***/ "./src/js/handler/daygrid/resizeGuide.js": +/*!***********************************************!*\ + !*** ./src/js/handler/daygrid/resizeGuide.js ***! + \***********************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; +/* WEBPACK VAR INJECTION */(function(global) {/** + * @fileoverview Resize Guide module. + * @author NHN FE Development Lab + */ + + +var util = __webpack_require__(/*! tui-code-snippet */ "tui-code-snippet"); +var config = __webpack_require__(/*! ../../config */ "./src/js/config.js"); +var domutil = __webpack_require__(/*! ../../common/domutil */ "./src/js/common/domutil.js"); +var datetime = __webpack_require__(/*! ../../common/datetime */ "./src/js/common/datetime.js"); +var reqAnimFrame = __webpack_require__(/*! ../../common/reqAnimFrame */ "./src/js/common/reqAnimFrame.js"); + +/** + * @constructor + * @param {DayGridResize} resizeHandler - instance of DayGridResize + */ +function DayGridResizeGuide(resizeHandler) { + /** + * @type {DayGridResize} + */ + this.resizeHandler = resizeHandler; + + /** + * The element that actually contains the event element + * @type {HTMLDIVElement} + */ + this.scheduleContainer = null; + + /** + * @type {function} + */ + this.getScheduleDataFunc = null; + + /** + * @type {HTMLDIVElement} + */ + this.guideElement = null; + + /** + * @type {HTMLDIVElement} + */ + this.scheduleBlockElement = null; + + resizeHandler.on({ + 'dragstart': this._onDragStart, + 'drag': this._onDrag, + 'dragend': this._clearGuideElement, + 'click': this._clearGuideElement + }, this); +} + +/** + * Destroy method + */ +DayGridResizeGuide.prototype.destroy = function() { + this._clearGuideElement(); + this.resizeHandler.off(this); + this.resizeHandler = this.scheduleContainer = this.getScheduleDataFunc = + this.guideElement = this.scheduleBlockElement = null; +}; + +/** + * Clear guide element. + */ +DayGridResizeGuide.prototype._clearGuideElement = function() { + domutil.remove(this.guideElement); + + if (!util.browser.msie) { + domutil.removeClass(global.document.body, config.classname('resizing-x')); + } + + if (this.scheduleBlockElement) { + domutil.removeClass(this.scheduleBlockElement, config.classname('weekday-schedule-block-dragging-dim')); + } + + this.getScheduleDataFunc = null; +}; + +/** + * Refresh guide element + * @param {number} newWidth - new width percentage value to resize guide element. + */ +DayGridResizeGuide.prototype.refreshGuideElement = function(newWidth) { + var guideElement = this.guideElement; + + reqAnimFrame.requestAnimFrame(function() { + guideElement.style.width = newWidth + '%'; + }); +}; + +/** + * Return function that calculate guide element's new width percentage value. + * @param {object} dragStartEventData - dragstart schedule data. + * @returns {function} return function that calculate guide element new width percentage. + */ +DayGridResizeGuide.prototype.getGuideElementWidthFunc = function(dragStartEventData) { + var model = dragStartEventData.model, + viewOptions = this.resizeHandler.view.options, + fromLeft = Math.ceil( + (model.start - viewOptions.renderStartDate) / datetime.MILLISECONDS_PER_DAY + ) || 0, + grids = dragStartEventData.grids; + + return function(xIndex) { + var width = 0; + var i = 0; + var length = grids.length; + width += grids[fromLeft] ? grids[fromLeft].width : 0; + + for (; i < length; i += 1) { + if (i > fromLeft && i <= xIndex) { + width += grids[i] ? grids[i].width : 0; + } + } + + return width; + }; +}; + +/** + * DragStart event handler. + * @param {object} dragStartEventData - schedule data. + */ +DayGridResizeGuide.prototype._onDragStart = function(dragStartEventData) { + var container = this.resizeHandler.view.container, + scheduleBlockElement = this.scheduleBlockElement = dragStartEventData.scheduleBlockElement, + guideElement = this.guideElement = scheduleBlockElement.cloneNode(true), + scheduleContainer; + + if (!util.browser.msie) { + domutil.addClass(global.document.body, config.classname('resizing-x')); + } + + scheduleContainer = domutil.find(config.classname('.weekday-schedules'), container); + domutil.addClass(guideElement, config.classname('daygrid-guide-move')); + domutil.addClass(scheduleBlockElement, config.classname('weekday-schedule-block-dragging-dim')); + + scheduleContainer.appendChild(guideElement); + + this.getScheduleDataFunc = this.getGuideElementWidthFunc(dragStartEventData); +}; + +/** + * Drag event handler. + * @param {object} dragEventData - schedule data. + */ +DayGridResizeGuide.prototype._onDrag = function(dragEventData) { + var func = this.getScheduleDataFunc; + + if (!func) { + return; + } + + this.refreshGuideElement(func(dragEventData.xIndex)); +}; + +module.exports = DayGridResizeGuide; + +/* WEBPACK VAR INJECTION */}.call(this, __webpack_require__(/*! ./../../../../node_modules/webpack/buildin/global.js */ "./node_modules/webpack/buildin/global.js"))) + +/***/ }), + +/***/ "./src/js/handler/drag.js": +/*!********************************!*\ + !*** ./src/js/handler/drag.js ***! + \********************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; +/* WEBPACK VAR INJECTION */(function(global) {/** + * @fileoverview Drag handler for calendar. + * @author NHN FE Development Lab + */ + + +var util = __webpack_require__(/*! tui-code-snippet */ "tui-code-snippet"); +var domutil = __webpack_require__(/*! ../common/domutil */ "./src/js/common/domutil.js"); +var domevent = __webpack_require__(/*! ../common/domevent */ "./src/js/common/domevent.js"); +var config = __webpack_require__(/*! ../config */ "./src/js/config.js"); + +/** + * @constructor + * @mixes CustomEvents + * @param {object} options - options for drag handler + * @param {number} [options.distance=10] - distance in pixels after mouse must move before dragging should start + * @param {function} [options.exclude] - filter function for don't fire drag events that specific conditions. + * @param {HTMLElement} container element to watching drag interaction. + */ +function Drag(options, container) { + domevent.on(container, 'mousedown', this._onMouseDown, this); + + this.options = util.extend({ + distance: 10, + exclude: null + }, options); + + /** + * @type {HTMLElement} + */ + this.container = container; + + /** + * Flag for represent current dragging session has been cancelled for exclude option. + * @type {boolean} + */ + this._cancelled = false; + + /** + * @type {boolean} + */ + this._isMoved = false; + + /** + * dragging distance in pixel between mousedown and firing dragStart events + * @type {number} + */ + this._distance = 0; + + /** + * @type {boolean} + */ + this._dragStartFired = false; + + /** + * @type {object} + */ + this._dragStartEventData = null; +} + +/** + * Destroy method. + */ +Drag.prototype.destroy = function() { + domevent.off(this.container, 'mousedown', this._onMouseDown, this); + this._isMoved = null; + this.container = null; +}; + +/** + * Clear cache data for single dragging session. + */ +Drag.prototype._clearData = function() { + this._cancelled = false; + this._distance = 0; + this._isMoved = false; + this._dragStartFired = false; + this._dragStartEventData = null; +}; + +/** + * Toggle events for mouse dragging. + * @param {boolean} toBind - bind events related with dragging when supplied "true" + */ +Drag.prototype._toggleDragEvent = function(toBind) { + var container = this.container, + domMethod, + method; + + if (toBind) { + domMethod = 'on'; + method = 'disable'; + } else { + domMethod = 'off'; + method = 'enable'; + } + + domutil[method + 'TextSelection'](container, preventDefaultWhenNotPopup); + domutil[method + 'ImageDrag'](container, preventDefaultWhenNotPopup); + domevent[domMethod](global.document, { + mousemove: this._onMouseMove, + mouseup: this._onMouseUp + }, this); +}; + +/** + * Normalize mouse event object. + * @param {MouseEvent} mouseEvent - mouse event object. + * @returns {object} normalized mouse event data. + */ +Drag.prototype._getEventData = function(mouseEvent) { + return { + target: domevent.getEventTarget(mouseEvent), + originEvent: mouseEvent + }; +}; + +/** + * MouseDown DOM event handler. + * @param {MouseEvent} mouseDownEvent MouseDown event object. + */ +Drag.prototype._onMouseDown = function(mouseDownEvent) { + var opt = this.options, + target = domevent.getEventTarget(mouseDownEvent); + + // only primary button can start drag. + if (domevent.getMouseButton(mouseDownEvent) !== 0) { + return; + } + + if (opt.exclude && opt.exclude(target)) { + this._cancelled = true; + + return; + } + + this._clearData(); + this._dragStartEventData = this._getEventData(mouseDownEvent); + + this._toggleDragEvent(true); + + /** + * mousedown event for firefox bug. cancelable. + * @event Drag#mouseDown + * @type {object} + * @property {HTMLElement} target - target element in this event. + * @property {MouseEvent} originEvent - original mouse event object. + */ + this.fire('mousedown', this._dragStartEventData); +}; + +/** + * MouseMove DOM event handler. + * @emits Drag#drag + * @emits Drag#dragStart + * @param {MouseEvent} mouseMoveEvent MouseMove event object. + */ +Drag.prototype._onMouseMove = function(mouseMoveEvent) { + var distance; + + if (this._cancelled) { + this._clearData(); + + return; + } + + distance = this.options.distance; + // prevent automatic scrolling. + preventDefaultWhenNotPopup(mouseMoveEvent); + + if (this._distance < distance) { + this._distance += 1; + + return; + } + this._isMoved = true; + + if (!this._dragStartFired) { + this._dragStartFired = true; + + /** + * Drag start events. cancelable. + * @event Drag#dragStart + * @type {object} + * @property {HTMLElement} target - target element in this event. + * @property {MouseEvent} originEvent - original mouse event object. + */ + if (!this.invoke('dragStart', this._dragStartEventData)) { + this._toggleDragEvent(false); + this._clearData(); + + return; + } + } + + /** + * CalEvents while dragging. + * @event Drag#drag + * @type {object} + * @property {HTMLElement} target - target element in this event. + * @property {MouseEvent} originEvent - original mouse event object. + */ + this.fire('drag', this._getEventData(mouseMoveEvent)); +}; + +/** + * MouseUp DOM event handler. + * @param {MouseEvent} mouseUpEvent MouseUp event object. + * @emits Drag#dragEnd + * @emits Drag#click + */ +Drag.prototype._onMouseUp = function(mouseUpEvent) { + if (this._cancelled) { + return; + } + + this._toggleDragEvent(false); + + // emit "click" event when not emitted drag event between mousedown and mouseup. + if (this._isMoved) { + this._isMoved = false; + /** + * Drag end events. + * @event Drag#dragEnd + * @type {MouseEvent} + * @property {HTMLElement} target - target element in this event. + * @property {MouseEvent} originEvent - original mouse event object. + */ + this.fire('dragEnd', this._getEventData(mouseUpEvent)); + } else { + /** + * Click events. + * @event Drag#click + * @type {MouseEvent} + * @property {HTMLElement} target - target element in this event. + * @property {MouseEvent} originEvent - original mouse event object. + */ + this.fire('click', this._getEventData(mouseUpEvent)); + } + + this._clearData(); +}; + +/** + * If the target is not a popup, it prevents the default. + * @method + * @param {MouseEvent} event - Mouse event object + */ +function preventDefaultWhenNotPopup(event) { + var popup = domutil.closest(event.target, config.classname('.popup')); + + if (!popup) { + domevent.preventDefault(event); + } +} + +util.CustomEvents.mixin(Drag); + +module.exports = Drag; + +/* WEBPACK VAR INJECTION */}.call(this, __webpack_require__(/*! ./../../../node_modules/webpack/buildin/global.js */ "./node_modules/webpack/buildin/global.js"))) + +/***/ }), + +/***/ "./src/js/handler/month/click.js": +/*!***************************************!*\ + !*** ./src/js/handler/month/click.js ***! + \***************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; +/** + * @fileoverview Click handler for month view + * @author NHN FE Development Lab + */ + + +var util = __webpack_require__(/*! tui-code-snippet */ "tui-code-snippet"); +var config = __webpack_require__(/*! ../../config */ "./src/js/config.js"), + datetime = __webpack_require__(/*! ../../common/datetime */ "./src/js/common/datetime.js"), + domutil = __webpack_require__(/*! ../../common/domutil */ "./src/js/common/domutil.js"); + +/** + * @constructor + * @implements {Handler} + * @mixes util.CustomEvents + * @param {Drag} [dragHandler] - Drag handler instance. + * @param {Month} [monthView] - Month view instance. + * @param {Base} [baseController] - Base controller instance. + */ +function MonthClick(dragHandler, monthView, baseController) { + /** + * @type {Drag} + */ + this.dragHandler = dragHandler; + + /** + * @type {Month} + */ + this.monthView = monthView; + + /** + * @type {Base} + */ + this.baseController = baseController; + + dragHandler.on({ + 'click': this._onClick + }, this); +} + +/** + * Destructor + */ +MonthClick.prototype.destroy = function() { + this.dragHandler.off(this); + this.monthView = this.baseController = this.dragHandler = null; +}; + +/** + * @fires MonthClick#clickMore + * @param {object} clickEvent - click event object + */ +MonthClick.prototype._onClick = function(clickEvent) { + var self = this, + moreElement, + scheduleCollection = this.baseController.schedules, + blockElement = domutil.closest(clickEvent.target, config.classname('.weekday-schedule-block')) + || domutil.closest(clickEvent.target, config.classname('.month-more-schedule')); + + moreElement = domutil.closest( + clickEvent.target, + config.classname('.weekday-exceed-in-month') + ); + + if (moreElement) { + self.fire('clickMore', { + date: datetime.parse(domutil.getData(moreElement, 'ymd')), + target: moreElement, + ymd: domutil.getData(moreElement, 'ymd') + }); + } + + if (blockElement) { + scheduleCollection.doWhenHas(domutil.getData(blockElement, 'id'), function(schedule) { + /** + * @events AlldayClick#clickSchedule + * @type {object} + * @property {Schedule} schedule - schedule instance + * @property {MouseEvent} event - MouseEvent object + */ + self.fire('clickSchedule', { + schedule: schedule, + event: clickEvent.originEvent + }); + }); + } +}; + +util.CustomEvents.mixin(MonthClick); + +module.exports = MonthClick; + + +/***/ }), + +/***/ "./src/js/handler/month/core.js": +/*!**************************************!*\ + !*** ./src/js/handler/month/core.js ***! + \**************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; +/* eslint-disable complexity */ +/** + * @fileoverview Module for calculate date by month view and mouse event object + * @author NHN FE Development Lab + */ + + +var util = __webpack_require__(/*! tui-code-snippet */ "tui-code-snippet"); +var common = __webpack_require__(/*! ../../common/common */ "./src/js/common/common.js"), + domutil = __webpack_require__(/*! ../../common/domutil */ "./src/js/common/domutil.js"), + domevent = __webpack_require__(/*! ../../common/domevent */ "./src/js/common/domevent.js"), + datetime = __webpack_require__(/*! ../../common/datetime */ "./src/js/common/datetime.js"); +var mfloor = Math.floor; + +/** + * Get high order function that can calc date in mouse point + * @param {Month} monthView - month view + * @returns {function} function return event data by mouse event object + */ +function getMousePosDate(monthView) { + var weekColl = monthView.children, + weeks = weekColl.sort(function(a, b) { + return util.stamp(a) - util.stamp(b); + }), + weekCount = weekColl.length, + days = weekColl.single().getRenderDateRange(), + dayCount = days.length, + relativeContainer = util.pick(monthView.vLayout.panels[1], 'container'), + size = domutil.getSize(relativeContainer), + grids = monthView.grids; + + /** + * Get the left index + * @param {number} left - left position(percent) + * @returns {number} grid left index + */ + function getX(left) { + var i = 0; + var length = grids.length; + var grid; + for (; i < length; i += 1) { + grid = grids[i]; + if (grid.left <= left && left <= (grid.left + grid.width)) { + return i; + } + } + + return left < 0 ? -1 : i; + } + + /** + * Get date related with mouse event object + * @param {object} mouseEvent - click event data + * @returns {object} data related with mouse event + */ + function getDate(mouseEvent) { + var pos = domevent.getMousePosition(mouseEvent, relativeContainer), + x = getX(common.ratio(size[0], 100, pos[0])), + y = mfloor(common.ratio(size[1], weekCount, pos[1])), + weekdayView, + date, + dateRange; + + if (y < 0) { + y = 0; + } + if (y >= weeks.length) { + y = weeks.length - 1; + } + + weekdayView = util.pick(weeks, y); + + if (!weekdayView) { + return null; + } + + dateRange = weekdayView.getRenderDateRange(); + if (x < 0) { + x = 0; + } + if (x >= dateRange.length) { + x = dateRange.length - 1; + } + + date = util.pick(dateRange, x); + + if (!date) { + return null; + } + + return { + x: x, + y: y, + sizeX: dayCount, + sizeY: weekCount, + date: datetime.end(date), + weekdayView: weekdayView, + triggerEvent: mouseEvent.type + }; + } + + return getDate; +} + +module.exports = getMousePosDate; + + +/***/ }), + +/***/ "./src/js/handler/month/creation.js": +/*!******************************************!*\ + !*** ./src/js/handler/month/creation.js ***! + \******************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; +/** + * @fileoverview Creation handler for month view + * @author NHN FE Development Lab + */ + + +var util = __webpack_require__(/*! tui-code-snippet */ "tui-code-snippet"); + +var config = __webpack_require__(/*! ../../config */ "./src/js/config.js"); +var datetime = __webpack_require__(/*! ../../common/datetime */ "./src/js/common/datetime.js"); +var array = __webpack_require__(/*! ../../common/array */ "./src/js/common/array.js"); +var domutil = __webpack_require__(/*! ../../common/domutil */ "./src/js/common/domutil.js"); +var domevent = __webpack_require__(/*! ../../common/domevent */ "./src/js/common/domevent.js"); +var getMousePosDate = __webpack_require__(/*! ./core */ "./src/js/handler/month/core.js"); +var Guide = __webpack_require__(/*! ./creationGuide */ "./src/js/handler/month/creationGuide.js"); +var TZDate = __webpack_require__(/*! ../../common/timezone */ "./src/js/common/timezone.js").Date; + +var CLICK_DELAY = 300; + +/** + * @constructor + * @param {Drag} dragHandler - Drag handler instance. + * @param {Month} monthView - Month view instance. + * @param {Base} baseController - Base controller instance. + * @param {Options} [options] - calendar Options + */ +function MonthCreation(dragHandler, monthView, baseController, options) { + /** + * @type {Drag} + */ + this.dragHandler = dragHandler; + + /** + * @type {Month} + */ + this.monthView = monthView; + + /** + * @type {Base} + */ + this.baseController = baseController; + + /** + * @type {function} + */ + this.getScheduleData = null; + + /** + * Cache for dragging session + * @type {object} + */ + this._cache = null; + + /** + * @type {MonthCreationGuide} + */ + this.guide = new Guide(this); + + /** + * @type {boolean} + */ + this._requestOnClick = false; + + /** + * @type {boolean} + */ + this._disableDblClick = options.disableDblClick; + + /** + * @type {boolean} + */ + this._disableClick = options.disableClick; + + dragHandler.on('dragStart', this._onDragStart, this); + dragHandler.on('click', this._onClick, this); + + if (this._disableDblClick) { + CLICK_DELAY = 0; + } else { + domevent.on(monthView.container, 'dblclick', this._onDblClick, this); + } +} + +/** + * Destructor + */ +MonthCreation.prototype.destroy = function() { + this.dragHandler.off(this); + this.guide.destroy(); + + if (this.monthView && this.monthView.container) { + domevent.off(this.monthView.container, 'dblclick', this._onDblClick, this); + } + + this.dragHandler = this.monthView = this.baseController = + this.getScheduleData = this._cache = this.guide = null; +}; + +/** + * Fire before create schedule + * @fires {MonthCreation#beforeCreateSchedule} + * @param {object} eventData - cache data from single dragging session + */ +MonthCreation.prototype._createSchedule = function(eventData) { + /** + * @event {MonthCreation#beforeCreateSchedule} + * @type {object} + * @property {boolean} isAllDay - whether schedule is fired in allday view area? + * @property {Date} start - select start time + * @property {Date} end - select end time + * @property {TimeCreationGuide} guide - TimeCreationGuide instance + * @property {string} triggerEventName - event name + */ + this.fire('beforeCreateSchedule', { + isAllDay: eventData.isAllDay, + start: eventData.start, + end: eventData.end, + guide: this.guide.guide, + triggerEventName: eventData.triggerEvent + }); +}; + +/** + * DragStart event handler + * @fires {MonthCreation#monthCreationDragstart} + * @param {object} dragStartEvent - dragStart event data + */ +MonthCreation.prototype._onDragStart = function(dragStartEvent) { + var eventData; + + if (!isElementWeekdayGrid(dragStartEvent.target)) { + return; + } + + this.dragHandler.on({ + drag: this._onDrag, + dragEnd: this._onDragEnd + }, this); + + this.getScheduleData = getMousePosDate(this.monthView); + + eventData = this.getScheduleData(dragStartEvent.originEvent); + + this._cache = { + start: new TZDate(eventData.date) + }; + + /** + * @event {MonthCreation#monthCreationDragstart} + * @type {object} + * @property {number} x - x index + * @property {number} y - y index + * @property {Date} date - drag date + */ + this.fire('monthCreationDragstart', eventData); +}; + +/** + * Drag event handler + * @fires {MonthCreation#monthCreationDrag} + * @param {object} dragEvent - drag event data + */ +MonthCreation.prototype._onDrag = function(dragEvent) { + var eventData; + + if (!this.getScheduleData) { + return; + } + + eventData = this.getScheduleData(dragEvent.originEvent); + + if (!eventData) { + return; + } + + /** + * @event {MonthCreation#monthCreationDrag} + * @type {object} + * @property {number} x - x index + * @property {number} y - y index + * @property {Date} date - drag date + */ + this.fire('monthCreationDrag', eventData); +}; + +/** + * DragEnd event handler + * @fires {MonthCreation#monthCreationDragend} + * @param {object} dragEndEvent - drag end event data + */ +MonthCreation.prototype._onDragEnd = function(dragEndEvent) { + var cache = this._cache; + var eventData; + var times; + + this.dragHandler.off({ + drag: this._onDrag, + dragEnd: this._onDragEnd + }, this); + + if (!this.getScheduleData) { + return; + } + + eventData = this.getScheduleData(dragEndEvent.originEvent); + + if (eventData) { + cache.end = new TZDate(eventData.date); + cache.isAllDay = true; + + times = [ + cache.start, + cache.end + ].sort(array.compare.num.asc); + + cache.start = new TZDate(times[0]); + cache.end = datetime.end(times[1]); + + this._createSchedule(cache); + } + + /** + * @event {MonthCreation#monthCreationDragend} + * @type {object} + * @property {number} x - x index + * @property {number} y - y index + * @property {Date} date - drag date + */ + this.fire('monthCreationDragend', eventData); + + this.getScheduleData = this._cache = null; +}; + +/** + * Dblclick event handler + * @fires {MonthCreation#monthCreationDragstart} + * @param {MouseEvent} e - Native MouseEvent + */ +MonthCreation.prototype._onDblClick = function(e) { + var eventData, range; + + if (!isElementWeekdayGrid(e.target)) { + return; + } + + eventData = getMousePosDate(this.monthView)(e); + + this.fire('monthCreationClick', eventData); + + range = this._adjustStartAndEndTime(new TZDate(eventData.date), new TZDate(eventData.date)); + + this._createSchedule({ + start: range.start, + end: range.end, + isAllDay: false, + triggerEvent: eventData.triggerEvent + }); + + this._requestOnClick = false; +}; + +/** + * Click event handler + * @fires {MonthCreation#monthCreationDragstart} + * @param {MouseEvent} e - Native MouseEvent + */ +MonthCreation.prototype._onClick = function(e) { + var self = this; + var eventData, range; + + if (!isElementWeekdayGrid(e.target) || this._disableClick) { + return; + } + + eventData = getMousePosDate(this.monthView)(e.originEvent); + + this._requestOnClick = true; + setTimeout(function() { + if (self._requestOnClick) { + self.fire('monthCreationClick', eventData); + + range = self._adjustStartAndEndTime(new TZDate(eventData.date), new TZDate(eventData.date)); + + self._createSchedule({ + start: range.start, + end: range.end, + isAllDay: false, + triggerEvent: eventData.triggerEvent + }); + } + self._requestOnClick = false; + }, CLICK_DELAY); +}; + +/** + * Adjust time to our o'clock + * @param {TZDate} start - start time + * @param {TZDate} end - end time + * @returns {Object} start and end + */ +MonthCreation.prototype._adjustStartAndEndTime = function(start, end) { + var now = new TZDate(); + var hours = now.getHours(); + var minutes = now.getMinutes(); + + // adjust start to less time. Adjusting had been greater time in monthly view when clicking grid + if (minutes <= 30) { + minutes = 0; + } else { + minutes = 30; + } + start.setHours(hours, minutes, 0, 0); + end.setHours(hours + 1, minutes, 0, 0); + + return { + start: start, + end: end + }; +}; + +/** + * Invoke creation click + * @param {Schedule} schedule - schedule instance + */ +MonthCreation.prototype.invokeCreationClick = function(schedule) { + var eventData = { + model: schedule + }; + + this.fire('monthCreationClick', eventData); + + this._createSchedule({ + start: schedule.start, + end: schedule.end, + isAllDay: schedule.isAllDay, + triggerEvent: 'manual' + }); +}; + +/** + * Returns whether the given element is Weekday-Schedule. + * @param {HTMLElement} el - target element + * @returns {boolean} + */ +function isElementWeekdayGrid(el) { + return domutil.closest(el, config.classname('.weekday-grid')) + && !domutil.closest(el, config.classname('.weekday-exceed-in-month')); +} + +util.CustomEvents.mixin(MonthCreation); + +module.exports = MonthCreation; + + +/***/ }), + +/***/ "./src/js/handler/month/creationGuide.js": +/*!***********************************************!*\ + !*** ./src/js/handler/month/creationGuide.js ***! + \***********************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; +/** + * @fileoverview Creation guide module for month view + * @author NHN FE Development Lab + */ + + +var MonthGuide = __webpack_require__(/*! ./guide */ "./src/js/handler/month/guide.js"); + +/** + * @constructor + * @param {MonthCreation} monthCreation - instance of MonthCreation + */ +function MonthCreationGuide(monthCreation) { + /** + * @type {MonthCreation} + */ + this.monthCreation = monthCreation; + + /** + * @type {MonthGuide} + */ + this.guide = null; + + monthCreation.on({ + monthCreationDragstart: this._createGuideElement, + monthCreationDrag: this._onDrag, + monthCreationDragend: this._onDragEnd, + monthCreationClick: this._createGuideElement + }, this); +} + +/** + * Destructor + */ +MonthCreationGuide.prototype.destroy = function() { + this.monthCreation.off(this); + + if (this.guide) { + this.guide.destroy(); + } + + this.guide = this.monthCreation = null; +}; + +/** + * Drag start event handler + * @param {object} dragStartEvent - schedule data from MonthCreation + */ +MonthCreationGuide.prototype._createGuideElement = function(dragStartEvent) { + var options = { + isCreationMode: true, + height: '100%', + top: 0 + }; + + this.guide = new MonthGuide(options, this.monthCreation.monthView); + this.guide.start(dragStartEvent); +}; + +/** + * Drag event handler + * @param {object} dragEvent - schedule data from MonthCreation + */ +MonthCreationGuide.prototype._onDrag = function(dragEvent) { + this.guide.update(dragEvent.x, dragEvent.y); +}; + +/** + * Drag end event handler + */ +MonthCreationGuide.prototype._onDragEnd = function() { + // Do nothing. User calls destroy directly. + this.guide = null; +}; + +module.exports = MonthCreationGuide; + + +/***/ }), + +/***/ "./src/js/handler/month/guide.hbs": +/*!****************************************!*\ + !*** ./src/js/handler/month/guide.hbs ***! + \****************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +var Handlebars = __webpack_require__(/*! ./node_modules/handlebars/runtime.js */ "./node_modules/handlebars/runtime.js"); +module.exports = (Handlebars['default'] || Handlebars).template({"1":function(container,depth0,helpers,partials,data) { + var stack1, helper, alias1=container.escapeExpression, alias2=container.lambda, lookupProperty = container.lookupProperty || function(parent, propertyName) { + if (Object.prototype.hasOwnProperty.call(parent, propertyName)) { + return parent[propertyName]; + } + return undefined + }; + + return "
\n"; +},"3":function(container,depth0,helpers,partials,data) { + var stack1, helper, alias1=depth0 != null ? depth0 : (container.nullContext || {}), alias2=container.hooks.helperMissing, alias3="function", alias4=container.escapeExpression, alias5=container.lambda, lookupProperty = container.lookupProperty || function(parent, propertyName) { + if (Object.prototype.hasOwnProperty.call(parent, propertyName)) { + return parent[propertyName]; + } + return undefined + }; + + return "
\n
\n" + + ((stack1 = lookupProperty(helpers,"if").call(alias1,(depth0 != null ? lookupProperty(depth0,"isAllDay") : depth0),{"name":"if","hash":{},"fn":container.program(4, data, 0),"inverse":container.program(6, data, 0),"data":data,"loc":{"start":{"line":9,"column":12},"end":{"line":13,"column":19}}})) != null ? stack1 : "") + + "
\n
 
\n
\n"; +},"4":function(container,depth0,helpers,partials,data) { + var stack1, lookupProperty = container.lookupProperty || function(parent, propertyName) { + if (Object.prototype.hasOwnProperty.call(parent, propertyName)) { + return parent[propertyName]; + } + return undefined + }; + + return " " + + ((stack1 = (lookupProperty(helpers,"allday-tmpl")||(depth0 && lookupProperty(depth0,"allday-tmpl"))||container.hooks.helperMissing).call(depth0 != null ? depth0 : (container.nullContext || {}),depth0,{"name":"allday-tmpl","hash":{},"data":data,"loc":{"start":{"line":10,"column":16},"end":{"line":10,"column":38}}})) != null ? stack1 : "") + + "\n"; +},"6":function(container,depth0,helpers,partials,data) { + var stack1, lookupProperty = container.lookupProperty || function(parent, propertyName) { + if (Object.prototype.hasOwnProperty.call(parent, propertyName)) { + return parent[propertyName]; + } + return undefined + }; + + return " " + + ((stack1 = (lookupProperty(helpers,"time-tmpl")||(depth0 && lookupProperty(depth0,"time-tmpl"))||container.hooks.helperMissing).call(depth0 != null ? depth0 : (container.nullContext || {}),depth0,{"name":"time-tmpl","hash":{},"data":data,"loc":{"start":{"line":12,"column":16},"end":{"line":12,"column":36}}})) != null ? stack1 : "") + + "\n"; +},"compiler":[8,">= 4.3.0"],"main":function(container,depth0,helpers,partials,data) { + var stack1, helper, alias1=depth0 != null ? depth0 : (container.nullContext || {}), alias2=container.hooks.helperMissing, alias3="function", alias4=container.escapeExpression, lookupProperty = container.lookupProperty || function(parent, propertyName) { + if (Object.prototype.hasOwnProperty.call(parent, propertyName)) { + return parent[propertyName]; + } + return undefined + }; + + return "
\n" + + ((stack1 = lookupProperty(helpers,"if").call(alias1,(depth0 != null ? lookupProperty(depth0,"isCreationMode") : depth0),{"name":"if","hash":{},"fn":container.program(1, data, 0),"inverse":container.program(3, data, 0),"data":data,"loc":{"start":{"line":2,"column":4},"end":{"line":17,"column":11}}})) != null ? stack1 : "") + + "
\n"; +},"useData":true}); + +/***/ }), + +/***/ "./src/js/handler/month/guide.js": +/*!***************************************!*\ + !*** ./src/js/handler/month/guide.js ***! + \***************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; +/** + * @fileoverview Guide element controller for creation, resize in month view + * @author NHN FE Development Lab + */ + + +var util = __webpack_require__(/*! tui-code-snippet */ "tui-code-snippet"); +var config = __webpack_require__(/*! ../../config */ "./src/js/config.js"), + domutil = __webpack_require__(/*! ../../common/domutil */ "./src/js/common/domutil.js"), + datetime = __webpack_require__(/*! ../../common/datetime */ "./src/js/common/datetime.js"), + TZDate = __webpack_require__(/*! ../../common/timezone */ "./src/js/common/timezone.js").Date, + tmpl = __webpack_require__(/*! ./guide.hbs */ "./src/js/handler/month/guide.hbs"); +var mmax = Math.max, + mmin = Math.min, + mabs = Math.abs, + mfloor = Math.floor; + +/** + * @constructor + * @param {object} [options] - options + * @param {boolean} [options.useHandle=false] - whether displaying resize handle on + * guide element? + * @param {boolean} [options.isResizeMode=false] - whether resize mode? + * @param {Month} monthView - Month view instance + */ +function MonthGuide(options, monthView) { + /** + * @type {object} + */ + this.options = util.extend({ + top: 0, + height: '20px', + bgColor: '#f7ca88', + label: 'New event', + isResizeMode: false, + isCreationMode: false, + styles: this._getStyles(monthView.controller.theme) + }, options); + + /** + * @type {Month} + */ + this.view = monthView; + + /** + * @type {WeekdayInMonth[]} + */ + this.weeks = monthView.children.sort(function(a, b) { + return util.stamp(a) - util.stamp(b); + }); + + /** + * @type {number} + */ + this.days = monthView.children.single().getRenderDateRange().length; + + /** + * start coordinate of guide effect. (x, y) (days, weeks) effect can't + * start lower than this coordinate. + * @type {number[]} + */ + this.startCoord = [0, 0]; + + /** + * @type {Object.} + */ + this.guideElements = {}; + + /** + * horizontal grid information + * @type {Object} + */ + this.grids = monthView.grids; +} + +/** + * Destructor + */ +MonthGuide.prototype.destroy = function() { + this.clear(); + + this.options = this.view = this.weeks = this.days = + this.startCoord = this.guideElements = null; +}; + +MonthGuide.prototype.clearGuideElement = function() { + this.destroy(); +}; + +/** + * Get ratio value in week. + * @param {number} value - value for calc ratio in week + * @returns {number} percent value + */ +MonthGuide.prototype._getRatioValueInWeek = function(value) { + var grid = this.grids[value] || {left: 100}; + + return grid.left; +}; + +/** + * Create guide element + * @returns {HTMLElement} guide element + */ +MonthGuide.prototype._createGuideElement = function() { + var guide = document.createElement('div'); + + guide.innerHTML = tmpl(this.options); + + return guide.firstChild; +}; + +/** + * Get guide element. if not exist then create one + * @param {number} y - y coordinate + * @returns {?HTMLElement} guide element + */ +MonthGuide.prototype._getGuideElement = function(y) { + var guideElements = this.guideElements, + guide = guideElements[y], + weekdayView = this.weeks[y], + container; + + if (!weekdayView) { + return null; + } + + if (!guide) { + guide = this._createGuideElement(); + container = weekdayView.container; + container.appendChild(guide); + guideElements[y] = guide; + } + + return guide; +}; + +/** + * Get coordinate by supplied date in month + * @param {TZDate} date - date to find coordinate + * @returns {number[]} coordinate (x, y) + */ +MonthGuide.prototype._getCoordByDate = function(date) { + var WEEKEND_DAYS = 2; + var weeks = this.weeks; + var isWorkWeek = util.pick(this.view, 'options', 'workweek'); + var days = isWorkWeek ? this.days + WEEKEND_DAYS : this.days; + + var getIdxFromDiff = function(d1, d2) { + return mfloor(datetime.millisecondsTo('day', mabs(d2 - d1))); + }, + monthStart = datetime.start(weeks[0].options.renderStartDate), + isBefore = date < monthStart, + start = new TZDate(monthStart), + end = new TZDate(monthStart).addDate(isBefore ? -days : days).addDate(-1), + x = getIdxFromDiff(date, start), + y = 0; + + while (!datetime.isBetweenWithDate(date, start, end)) { + start.addDate(isBefore ? -days : days); + end = new TZDate(start).addDate(days - 1); + x = getIdxFromDiff(date, start); + y += (isBefore ? -1 : 1); + } + + return [x, y]; +}; + +/** + * Get limited coordinate by supplied coodinates + * @param {number[]} coord - coordinate need to limit + * @param {number[]} [min] - minimum limitaion of coordinate + * @param {number[]} [max] - maximum limitation of coordinate + * @returns {number[]} limited coordiate + */ +MonthGuide.prototype._getLimitedCoord = function(coord, min, max) { + var toIndex = 1, + x = coord[0], + y = coord[1], + result; + + min = min || [0, 0]; + max = max || [this.days - toIndex, this.weeks.length - toIndex]; + + if (y < min[1]) { + result = min.slice(0); + } else if (y > max[1]) { + result = max.slice(0); + } else { + x = mmax(min[0], x); + x = mmin(max[0], x); + result = [x, y]; + } + + return result; +}; + +/** + * Prepare guide element modification + * @param {object} dragStartEvent - dragStart schedule data from *guide + */ +MonthGuide.prototype.start = function(dragStartEvent) { + var opt = this.options, + target = dragStartEvent.target, + model = dragStartEvent.model, + x = dragStartEvent.x, + y = dragStartEvent.y, + renderMonth = new TZDate(this.view.options.renderMonth), + temp; + + if (opt.isCreationMode) { + if (model && !datetime.isSameMonth(renderMonth, model.start)) { + model.start.setMonth(renderMonth.getMonth()); + model.start.setDate(1); + model.end.setMonth(renderMonth.getMonth()); + model.end.setDate(1); + } + } else { + temp = this._getCoordByDate(model.getStarts()); + x = temp[0]; + y = temp[1]; + + util.extend(this.options, { + top: parseInt(target.style.top, 10) + 'px', + height: parseInt(target.style.height, 10) + 'px', + label: model.title + }, model); + } + + if (util.isUndefined(x) || util.isUndefined(y)) { + temp = this._getCoordByDate(model.getStarts()); + x = temp[0]; + y = temp[1]; + } + + this.startCoord = [x, y]; + this.update(x, y); +}; + +/** + * Data for update several guide elements + * @typedef UpdateIndication + * @type {object} + * @property {HTMLElement} guide - guide element + * @property {number} left - left style value + * @property {number} width - width style value + * @property {boolean} [exceedL=false] - whether schedule is exceeded past weeks? + * @property {boolean} [exceedR=false] - whether schedule is exceeded future weeks? + */ + +/** + * Modify HTML element that uses for guide element + * @param {UpdateIndication[]} inds - indication of update severel guide element + */ +MonthGuide.prototype._updateGuides = function(inds) { + util.forEach(inds, function(ind) { + var guide = ind.guide, + exceedLClass = config.classname('month-exceed-left'), + exceedRClass = config.classname('month-exceed-right'); + + guide.style.display = 'block'; + guide.style.left = ind.left + '%'; + guide.style.width = ind.width + '%'; + + if (ind.exceedL) { + domutil.addClass(guide, exceedLClass); + } else { + domutil.removeClass(guide, exceedLClass); + } + + if (ind.exceedR) { + domutil.addClass(guide, exceedRClass); + } else { + domutil.removeClass(guide, exceedRClass); + } + }); +}; + +/** + * Get guide element indicate for origin week + * @param {number[]} startCoord - drag start coordinate + * @param {number[]} mouseCoord - mouse coordinate + * @returns {object} indicate + */ +MonthGuide.prototype._getOriginIndicate = function(startCoord, mouseCoord) { + var left = mmin(startCoord[0], mouseCoord[0]), + right = mmax(startCoord[0], mouseCoord[0]) + 1, + exceedL, exceedR; + + if (mouseCoord[1] > startCoord[1]) { + left = startCoord[0]; + right = this.days; + exceedR = true; + } else if (mouseCoord[1] < startCoord[1]) { + left = 0; + right = startCoord[0] + 1; + exceedL = true; + } + + return { + left: this._getRatioValueInWeek(left), + width: this._getRatioValueInWeek(right) - + this._getRatioValueInWeek(left), + exceedL: exceedL, + exceedR: exceedR + }; +}; + +/** + * Get guide element indicate for week related with mouse position + * @param {number[]} startCoord - drag start coordinate + * @param {number[]} mouseCoord - mouse coordinate + * @returns {object} indicate + */ +MonthGuide.prototype._getMouseIndicate = function(startCoord, mouseCoord) { + var left = mouseCoord[0], + right = mouseCoord[0] + 1, + exceedL, exceedR; + + if (mouseCoord[1] > startCoord[1]) { + left = 0; + exceedL = true; + } else if (mouseCoord[1] < startCoord[1]) { + right = this.days; + exceedR = true; + } + + return { + left: this._getRatioValueInWeek(left), + width: this._getRatioValueInWeek(right) - + this._getRatioValueInWeek(left), + exceedL: exceedL, + exceedR: exceedR + }; +}; + +/** + * Get guide element indicate for contained weeks + * @returns {object} indicate + */ +MonthGuide.prototype._getContainIndicate = function() { + return { + left: 0, + width: 100, + exceedL: true, + exceedR: true + }; +}; + +/** + * Remove several guide element that supplied by parameter + * @param {number[]} yCoords - array of y coordinate to remove guide element + */ +MonthGuide.prototype._removeGuideElements = function(yCoords) { + var guides = this.guideElements; + + util.forEach(yCoords, function(y) { + domutil.remove(guides[y]); + delete guides[y]; + }); +}; + +/** + * Get excluded numbers in range + * @param {number[]} range - the range. value must be sequencial. + * @param {number[]} numbers - numbers to check + * @returns {number[]} excluded numbers + */ +MonthGuide.prototype._getExcludesInRange = function(range, numbers) { + var min = mmin.apply(null, range), + max = mmax.apply(null, range), + excludes = []; + + util.forEach(numbers, function(num) { + num = parseInt(num, 10); + if (num < min || num > max) { + excludes.push(num); + } + }); + + return excludes; +}; + +/** + * Update guide elements by coordinate in month grid from mousemove event + * @param {number} x - x coordinate + * @param {number} y - y coordinate + */ +MonthGuide.prototype.update = function(x, y) { + var self = this, + startCoord = this.startCoord, + mouseCoord = [x, y], + limitedCoord = this.options.isResizeMode ? + this._getLimitedCoord(mouseCoord, startCoord) : mouseCoord, + renderedYIndex = util.keys(this.guideElements), + yCoordsToUpdate = util.range( + mmin(startCoord[1], limitedCoord[1]), + mmax(startCoord[1], limitedCoord[1]) + 1 + ), + yCoordsToRemove = this._getExcludesInRange( + yCoordsToUpdate, + renderedYIndex + ), + renderIndication = {}; + + this._removeGuideElements(yCoordsToRemove); + + util.forEach(yCoordsToUpdate, function(guideYCoord) { + var guide = self._getGuideElement(guideYCoord), + indicate; + + if (!guide) { + return; + } + + if (guideYCoord === startCoord[1]) { + indicate = self._getOriginIndicate(startCoord, limitedCoord); + } else if (guideYCoord === mouseCoord[1]) { + indicate = self._getMouseIndicate(startCoord, mouseCoord); + } else { + indicate = self._getContainIndicate(); + } + + renderIndication[guideYCoord] = util.extend({ + guide: guide + }, indicate); + }); + + this._updateGuides(renderIndication); +}; + +/** + * Clear all guide elements + */ +MonthGuide.prototype.clear = function() { + util.forEach(this.guideElements, function(element) { + domutil.remove(element); + }); + + this.guideElements = {}; +}; + +/** + * Get the styles from theme + * @param {Theme} theme - theme instance + * @returns {object} styles - styles object + */ +MonthGuide.prototype._getStyles = function(theme) { + var styles = {}; + + if (theme) { + styles.border = theme.common.creationGuide.border; + styles.backgroundColor = theme.common.creationGuide.backgroundColor; + styles.scheduleHeight = theme.month.schedule.height; + styles.scheduleGutter = theme.month.schedule.marginTop; + styles.marginLeft = theme.month.schedule.marginLeft; + styles.marginRight = theme.month.schedule.marginRight; + styles.borderRadius = theme.month.schedule.borderRadius; + } + + return styles; +}; + +module.exports = MonthGuide; + + +/***/ }), + +/***/ "./src/js/handler/month/move.js": +/*!**************************************!*\ + !*** ./src/js/handler/month/move.js ***! + \**************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; +/** + * @fileoverview Move handler for month view + * @author NHN FE Development Lab + */ + + +var util = __webpack_require__(/*! tui-code-snippet */ "tui-code-snippet"); + +var config = __webpack_require__(/*! ../../config */ "./src/js/config.js"), + domutil = __webpack_require__(/*! ../../common/domutil */ "./src/js/common/domutil.js"), + datetime = __webpack_require__(/*! ../../common/datetime */ "./src/js/common/datetime.js"), + getMousePosData = __webpack_require__(/*! ./core */ "./src/js/handler/month/core.js"), + MonthMoveGuide = __webpack_require__(/*! ./moveGuide */ "./src/js/handler/month/moveGuide.js"), + TZDate = __webpack_require__(/*! ../../common/timezone */ "./src/js/common/timezone.js").Date; + +/** + * @constructor + * @mixes CustomEvents + * @param {Drag} dragHandler - Drag handler instance. + * @param {Month} monthView - Month view instance. + * @param {Base} baseController - Base controller instance. + */ +function MonthMove(dragHandler, monthView, baseController) { + /** + * @type {Drag} + */ + this.dragHandler = dragHandler; + + /** + * @type {Month} + */ + this.monthView = monthView; + + /** + * @type {Base} + */ + this.baseController = baseController; + + /** + * @type {function} + */ + this.getScheduleData = null; + + /** + * @type {object} + */ + this._cache = null; + + /** + * @type {MonthMoveGuide} + */ + this.guide = new MonthMoveGuide(this); + + dragHandler.on('dragStart', this._onDragStart, this); +} + +/** + * Destructor + */ +MonthMove.prototype.destroy = function() { + this.dragHandler.off(this); + + this.dragHandler = this.monthView = this.baseController = null; +}; + +/** + * Update target schedule + * @fires {MonthMove#beforeUpdateSchedule} + * @param {object} scheduleCache - cache object that result of single dragging + * session. + */ +MonthMove.prototype.updateSchedule = function(scheduleCache) { + var schedule = scheduleCache.model; + var duration = schedule.duration(); + var startDateRaw = datetime.raw(schedule.start); + var dragEndTime = new TZDate(scheduleCache.end); + var newStartDate = new TZDate(dragEndTime); + + newStartDate.setHours(startDateRaw.h, startDateRaw.m, startDateRaw.s, startDateRaw.ms); + + /** + * @event MonthMove#beforeUpdateSchedule + * @type {object} + * @property {Schedule} schedule - The original schedule instance + * @property {Date} start - Deprecated: start time to update + * @property {Date} end - Deprecated: end time to update + * @property {object} changes - start and end time to update + * @property {Date} start - start time to update + * @property {Date} end - end time to update + */ + this.fire('beforeUpdateSchedule', { + schedule: schedule, + changes: { + start: newStartDate, + end: new TZDate(newStartDate).addMilliseconds(duration) + }, + start: newStartDate, + end: new TZDate(newStartDate).addMilliseconds(duration) + }); +}; + +/** + * Get schedule block to clone for month guide effect + * @param {HTMLElement} target - target element that related with drag schedule + * @returns {HTMLElement} element to create guide effect + */ +MonthMove.prototype.getMonthScheduleBlock = function(target) { + var blockSelector = config.classname('.weekday-schedule-block'); + + return domutil.closest(target, blockSelector); +}; + +/** + * Get schedule block from more layer + * @param {HTMLElement} target - element to check + * @returns {HTMLElement} schedule element + */ +MonthMove.prototype.getMoreLayerScheduleBlock = function(target) { + var className = config.classname('.month-more-schedule'); + + return domutil.closest(target, className); +}; + +/** + * Check handler has permission to handle fired schedule + * @fires {MonthMove#monthMoveStart_from_morelayer} + * @param {HTMLElement} target - target element of fired schedule + * @returns {(string|null)} model instance ID related with schedule. if handle + * has not permission to handle the schedule then return null. + */ +MonthMove.prototype.hasPermissionToHandle = function(target) { + var modelID = null; + var blockElement; + + if (domutil.hasClass(target, config.classname('weekday-resize-handle'))) { + return null; + } + + blockElement = this.getMonthScheduleBlock(target); + + if (blockElement) { + modelID = domutil.getData(blockElement, 'id'); + } else { + blockElement = this.getMoreLayerScheduleBlock(target); + + if (blockElement) { + modelID = domutil.getData(blockElement, 'id'); + /** + * Fire for notificate that the drag schedule start at more layer view. + * @event {MonthMove#monthMoveStart_from_morelayer} + */ + this.fire('monthMoveStart_from_morelayer'); + } + } + + return modelID; +}; + +/** + * Event handler for Drag#dragStart + * @fires {MonthMove#monthMoveDragstart} + * @param {object} dragStartEvent - drag start schedule data + */ +MonthMove.prototype._onDragStart = function(dragStartEvent) { + var target = dragStartEvent.target, + modelID = this.hasPermissionToHandle(target), + model = this.baseController.schedules.items[modelID], + scheduleData; + + if (!modelID || !model || model.isReadOnly || model.isPending) { + return; + } + + this.dragHandler.on({ + drag: this._onDrag, + dragEnd: this._onDragEnd + }, this); + + this.getScheduleData = getMousePosData(this.monthView); + + scheduleData = this.getScheduleData(dragStartEvent.originEvent); + scheduleData.originEvent = dragStartEvent.originEvent; + scheduleData.target = this.getMonthScheduleBlock(target); + scheduleData.model = model; + + this._cache = { + model: model, + target: target, + start: new TZDate(Number(scheduleData.date)) + }; + + /** + * @event {MonthMove#monthMoveDragstart} + * @type {object} + * @property {number} x - x index + * @property {number} y - y index + * @property {Date} date - drag date + * @property {HTMLElement} target - schedule block element + * @property {Schedule} model - model instance + */ + this.fire('monthMoveDragstart', scheduleData); +}; + +/** + * @fires {MonthMove#monthMoveDrag} + * @param {object} dragEvent - drag event data + */ +MonthMove.prototype._onDrag = function(dragEvent) { + var scheduleData; + + if (!this.getScheduleData) { + return; + } + + scheduleData = util.extend({ + originEvent: dragEvent.originEvent + }, this.getScheduleData(dragEvent.originEvent)); + + if (!scheduleData) { + return; + } + + /** + * @event {MonthMove#monthMoveDrag} + * @type {object} + * @property {number} x - x index + * @property {number} y - y index + * @property {Date} date - drag date + */ + this.fire('monthMoveDrag', scheduleData); +}; + +/** + * Event handler for Drag#dragEnd + * @fires {MonthMove#monthMoveDragend} + * @param {object} dragEndEvent - dragend event data + */ +MonthMove.prototype._onDragEnd = function(dragEndEvent) { + var cache = this._cache; + var scheduleData; + + this.dragHandler.off({ + drag: this._onDrag, + dragEnd: this._onDragEnd + }, this); + + if (!this.getScheduleData) { + return; + } + + scheduleData = this.getScheduleData(dragEndEvent.originEvent); + + if (scheduleData) { + cache.end = new TZDate(scheduleData.date); + this.updateSchedule(cache); + } + + /** + * @event {MonthResize#monthMoveDragend} + * @type {object} + * @property {number} x - x index + * @property {number} y - y index + * @property {Date} date - drag date + */ + this.fire('monthMoveDragend', scheduleData); + + this.getScheduleData = this._cache = null; +}; + +util.CustomEvents.mixin(MonthMove); + +module.exports = MonthMove; + + +/***/ }), + +/***/ "./src/js/handler/month/moveGuide.hbs": +/*!********************************************!*\ + !*** ./src/js/handler/month/moveGuide.hbs ***! + \********************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +var Handlebars = __webpack_require__(/*! ./node_modules/handlebars/runtime.js */ "./node_modules/handlebars/runtime.js"); +module.exports = (Handlebars['default'] || Handlebars).template({"1":function(container,depth0,helpers,partials,data) { + var stack1, lookupProperty = container.lookupProperty || function(parent, propertyName) { + if (Object.prototype.hasOwnProperty.call(parent, propertyName)) { + return parent[propertyName]; + } + return undefined + }; + + return " border-left:3px solid " + + container.escapeExpression(container.lambda(((stack1 = (depth0 != null ? lookupProperty(depth0,"model") : depth0)) != null ? lookupProperty(stack1,"borderColor") : stack1), depth0)) + + ";\n "; +},"3":function(container,depth0,helpers,partials,data) { + var stack1, helper, alias1=depth0 != null ? depth0 : (container.nullContext || {}), alias2=container.hooks.helperMissing, alias3="function", alias4=container.escapeExpression, lookupProperty = container.lookupProperty || function(parent, propertyName) { + if (Object.prototype.hasOwnProperty.call(parent, propertyName)) { + return parent[propertyName]; + } + return undefined + }; + + return " \n"; +},"5":function(container,depth0,helpers,partials,data) { + var helper, lookupProperty = container.lookupProperty || function(parent, propertyName) { + if (Object.prototype.hasOwnProperty.call(parent, propertyName)) { + return parent[propertyName]; + } + return undefined + }; + + return container.escapeExpression(((helper = (helper = lookupProperty(helpers,"CSS_PREFIX") || (depth0 != null ? lookupProperty(depth0,"CSS_PREFIX") : depth0)) != null ? helper : container.hooks.helperMissing),(typeof helper === "function" ? helper.call(depth0 != null ? depth0 : (container.nullContext || {}),{"name":"CSS_PREFIX","hash":{},"data":data,"loc":{"start":{"line":16,"column":110},"end":{"line":16,"column":124}}}) : helper))) + + "weekday-schedule-title-focused"; +},"7":function(container,depth0,helpers,partials,data) { + var stack1, lookupProperty = container.lookupProperty || function(parent, propertyName) { + if (Object.prototype.hasOwnProperty.call(parent, propertyName)) { + return parent[propertyName]; + } + return undefined + }; + + return " " + + ((stack1 = (lookupProperty(helpers,"allday-tmpl")||(depth0 && lookupProperty(depth0,"allday-tmpl"))||container.hooks.helperMissing).call(depth0 != null ? depth0 : (container.nullContext || {}),(depth0 != null ? lookupProperty(depth0,"model") : depth0),{"name":"allday-tmpl","hash":{},"data":data,"loc":{"start":{"line":18,"column":12},"end":{"line":18,"column":35}}})) != null ? stack1 : "") + + "\n"; +},"9":function(container,depth0,helpers,partials,data) { + var stack1, lookupProperty = container.lookupProperty || function(parent, propertyName) { + if (Object.prototype.hasOwnProperty.call(parent, propertyName)) { + return parent[propertyName]; + } + return undefined + }; + + return " " + + ((stack1 = (lookupProperty(helpers,"time-tmpl")||(depth0 && lookupProperty(depth0,"time-tmpl"))||container.hooks.helperMissing).call(depth0 != null ? depth0 : (container.nullContext || {}),(depth0 != null ? lookupProperty(depth0,"model") : depth0),{"name":"time-tmpl","hash":{},"data":data,"loc":{"start":{"line":20,"column":12},"end":{"line":20,"column":33}}})) != null ? stack1 : "") + + "\n"; +},"compiler":[8,">= 4.3.0"],"main":function(container,depth0,helpers,partials,data) { + var stack1, helper, alias1=depth0 != null ? depth0 : (container.nullContext || {}), alias2=container.hooks.helperMissing, alias3="function", alias4=container.escapeExpression, alias5=container.lambda, lookupProperty = container.lookupProperty || function(parent, propertyName) { + if (Object.prototype.hasOwnProperty.call(parent, propertyName)) { + return parent[propertyName]; + } + return undefined + }; + + return "
\n" + + ((stack1 = lookupProperty(helpers,"unless").call(alias1,((stack1 = (depth0 != null ? lookupProperty(depth0,"model") : depth0)) != null ? lookupProperty(stack1,"isAllDay") : stack1),{"name":"unless","hash":{},"fn":container.program(3, data, 0),"inverse":container.noop,"data":data,"loc":{"start":{"line":13,"column":4},"end":{"line":15,"column":15}}})) != null ? stack1 : "") + + "
\n" + + ((stack1 = lookupProperty(helpers,"if").call(alias1,((stack1 = (depth0 != null ? lookupProperty(depth0,"model") : depth0)) != null ? lookupProperty(stack1,"isAllDay") : stack1),{"name":"if","hash":{},"fn":container.program(7, data, 0),"inverse":container.program(9, data, 0),"data":data,"loc":{"start":{"line":17,"column":8},"end":{"line":21,"column":15}}})) != null ? stack1 : "") + + "
\n
\n
\n"; +},"useData":true}); + +/***/ }), + +/***/ "./src/js/handler/month/moveGuide.js": +/*!*******************************************!*\ + !*** ./src/js/handler/month/moveGuide.js ***! + \*******************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; +/* WEBPACK VAR INJECTION */(function(global) {/** + * @fileoverview Module for modification of guide element for move in month view + * @author NHN FE Development Lab + */ + + +var util = __webpack_require__(/*! tui-code-snippet */ "tui-code-snippet"); + +var config = __webpack_require__(/*! ../../config */ "./src/js/config.js"), + domutil = __webpack_require__(/*! ../../common/domutil */ "./src/js/common/domutil.js"), + domevent = __webpack_require__(/*! ../../common/domevent */ "./src/js/common/domevent.js"), + FloatingLayer = __webpack_require__(/*! ../../common/floatingLayer */ "./src/js/common/floatingLayer.js"), + tmpl = __webpack_require__(/*! ./moveGuide.hbs */ "./src/js/handler/month/moveGuide.hbs"), + Schedule = __webpack_require__(/*! ../../model/schedule */ "./src/js/model/schedule.js"); + +/** + * @constructor + * @param {MonthMove} monthMove - month/move module instance + */ +function MonthMoveGuide(monthMove) { + /** + * @type {MonthMove} + */ + this.monthMove = monthMove; + + /** + * @type {HTMLElement[]} + */ + this.elements = null; + + /** + * @type {FloatingLayer} + */ + this.layer = null; + + monthMove.on({ + monthMoveDragstart: this._onDragStart, + monthMoveDrag: this._onDrag, + monthMoveDragend: this._onDragEnd + }, this); +} + +/** + * Destructor + */ +MonthMoveGuide.prototype.destroy = function() { + this.monthMove.off(this); + this._clearGridBgColor(); + + if (this.layer) { + this.layer.destroy(); + } + + if (this.element) { + domutil.remove(this.element); + } + + this.monthMove = this.elements = this.layer = null; +}; + +/** + * Hide element blocks for resize effect + * @param {number} modelID - Schedule model instance ID + */ +MonthMoveGuide.prototype._hideOriginScheduleBlocks = function(modelID) { + var className = config.classname('weekday-schedule-block-dragging-dim'); + + this.elements = domutil.find( + config.classname('.weekday-schedule-block-' + modelID), + this.monthMove.monthView.container, + true + ); + + util.forEach(this.elements, function(el) { + domutil.addClass(el, className); + }); +}; + +/** + * Show element blocks + */ +MonthMoveGuide.prototype._showOriginScheduleBlocks = function() { + var className = config.classname('weekday-schedule-block-dragging-dim'); + + util.forEach(this.elements, function(el) { + domutil.removeClass(el, className); + }); +}; + +/** + * Clear background color for filled grid element. + */ +MonthMoveGuide.prototype._clearGridBgColor = function() { + var selector = config.classname('.weekday-filled'), + className = config.classname('weekday-filled'), + beforeGridElement = domutil.find(selector, + this.monthMove.monthView.container); + + if (beforeGridElement) { + domutil.removeClass(beforeGridElement, className); + } +}; + +/** + * Fill background color of date grids relatied with model updates. + * @param {object} dragEvent - drag event data from MonthMoveGuide#_onDrag + */ +MonthMoveGuide.prototype._updateGridBgColor = function(dragEvent) { + var gridElements = domutil.find(config.classname('.weekday-grid-line'), this.monthMove.monthView.container, true), + className = config.classname('weekday-filled'), + targetIndex = (dragEvent.x + (dragEvent.sizeX * dragEvent.y)); + + this._clearGridBgColor(); + + if (!gridElements || !gridElements[targetIndex]) { + return; + } + + domutil.addClass(gridElements[targetIndex], className); +}; + +/** + * Handler for MonthMove#dragStart + * @param {object} dragStartEvent - dragStart schedule data object + */ +MonthMoveGuide.prototype._onDragStart = function(dragStartEvent) { + var monthView = this.monthMove.monthView, + firstWeekdayView = monthView.children.single(), + weekdayOptions = firstWeekdayView.options, + widthPercent = 100 / firstWeekdayView.getRenderDateRange().length, + height = weekdayOptions.scheduleGutter + weekdayOptions.scheduleHeight, + container = monthView.container, + mousePos = domevent.getMousePosition(dragStartEvent.originEvent, container), + model = dragStartEvent.model, + layer = new FloatingLayer(null, container); + + this._hideOriginScheduleBlocks(model.cid()); + + this.layer = layer; + layer.setSize(widthPercent + '%', height); + layer.setPosition(mousePos[0], mousePos[1]); + layer.setContent(tmpl({ + model: util.extend( + Schedule.create(model), + model + ), + styles: { + scheduleHeight: weekdayOptions.scheduleHeight, + scheduleBulletTop: weekdayOptions.scheduleHeight / 3, + borderRadius: monthView.controller.theme.month.schedule.borderRadius + } + })); + layer.show(); + + if (!util.browser.msie) { + domutil.addClass(global.document.body, config.classname('dragging')); + } +}; + +/** + * Handler for MonthMove#drag + * @param {object} dragEvent - drag event data object + */ +MonthMoveGuide.prototype._onDrag = function(dragEvent) { + var container = this.monthMove.monthView.container, + mousePos = domevent.getMousePosition( + dragEvent.originEvent, + container + ); + + this._updateGridBgColor(dragEvent); + + if (!this.layer) { + return; + } + + this.layer.setPosition(mousePos[0], mousePos[1]); +}; + +/** + * Handler for MonthMove#dragEnd + */ +MonthMoveGuide.prototype._onDragEnd = function() { + this._showOriginScheduleBlocks(); + + if (!util.browser.msie) { + domutil.removeClass(global.document.body, config.classname('dragging')); + } + + this._clearGridBgColor(); + this.layer.destroy(); + this.layer = null; +}; + +module.exports = MonthMoveGuide; + +/* WEBPACK VAR INJECTION */}.call(this, __webpack_require__(/*! ./../../../../node_modules/webpack/buildin/global.js */ "./node_modules/webpack/buildin/global.js"))) + +/***/ }), + +/***/ "./src/js/handler/month/resize.js": +/*!****************************************!*\ + !*** ./src/js/handler/month/resize.js ***! + \****************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; +/** + * @fileoverview Module for resize schedule in month view + * @author NHN FE Development Lab + */ + + +var util = __webpack_require__(/*! tui-code-snippet */ "tui-code-snippet"); + +var config = __webpack_require__(/*! ../../config */ "./src/js/config.js"), + datetime = __webpack_require__(/*! ../../common/datetime */ "./src/js/common/datetime.js"), + domutil = __webpack_require__(/*! ../../common/domutil */ "./src/js/common/domutil.js"), + getMousePosData = __webpack_require__(/*! ./core */ "./src/js/handler/month/core.js"), + MonthResizeGuide = __webpack_require__(/*! ./resizeGuide */ "./src/js/handler/month/resizeGuide.js"), + TZDate = __webpack_require__(/*! ../../common/timezone */ "./src/js/common/timezone.js").Date; + +var common = __webpack_require__(/*! ../../common/common */ "./src/js/common/common.js"); + +/** + * @constructor + * @param {Drag} dragHandler - Drag handler instance. + * @param {Month} monthView - Month view instance. + * @param {Base} baseController - Base controller instance. + */ +function MonthResize(dragHandler, monthView, baseController) { + /** + * @type {Drag} + */ + this.dragHandler = dragHandler; + + /** + * @type {Month} + */ + this.monthView = monthView; + + /** + * @type {Base} + */ + this.baseController = baseController; + + /** + * @type {function} + */ + this.getScheduleData = null; + + /** + * @type {object} + */ + this._cache = null; + + /** + * @type {MonthResizeGuide} + */ + this.guide = new MonthResizeGuide(this); + + dragHandler.on('dragStart', this._onDragStart, this); +} + +/** + * Destructor + */ +MonthResize.prototype.destroy = function() { + this.dragHandler.off(this); + + this.dragHandler = this.monthView = this.baseController = null; +}; + +/** + * Fire event for update model + * @fires {MonthResize#beforeUpdateSchedule} + * @param {object} scheduleCache - cache object that result of single dragging + * session. + */ +MonthResize.prototype._updateSchedule = function(scheduleCache) { + // You can not change the start date of the event. Only the end time can be changed. + var newEnd = datetime.end(new TZDate(scheduleCache.end)), + schedule = scheduleCache.schedule; + var changes = common.getScheduleChanges( + schedule, + ['end'], + {end: newEnd} + ); + + /** + * @event MonthResize#beforeUpdateSchedule + * @type {object} + * @property {Schedule} schedule - The original schedule instance + * @property {Date} start - Deprecated: start time to update + * @property {Date} end - Deprecated: end time to update + * @property {object} changes - end time to update + * @property {date} end - end time to update + */ + this.fire('beforeUpdateSchedule', { + schedule: schedule, + changes: changes, + start: new TZDate(schedule.getStarts()), + end: newEnd + }); +}; + +/** + * Event handler for Drag#dragStart + * @fires {MonthResize#monthResizeDragstart} + * @param {object} dragStartEvent - drag start event data + */ +MonthResize.prototype._onDragStart = function(dragStartEvent) { + var target = dragStartEvent.target, + modelID, schedule, + scheduleData; + + if (!domutil.hasClass(target, config.classname('weekday-resize-handle'))) { + return; + } + + target = domutil.closest(target, config.classname('.weekday-schedule-block')); + + if (!target) { + return; + } + + modelID = domutil.getData(target, 'id'); + schedule = this.baseController.schedules.items[modelID]; + + this.dragHandler.on({ + drag: this._onDrag, + dragEnd: this._onDragEnd + }, this); + + this.getScheduleData = getMousePosData(this.monthView); + scheduleData = this.getScheduleData(dragStartEvent.originEvent); + scheduleData.target = target; + scheduleData.model = schedule; + + this._cache = { + schedule: schedule, + target: target, + start: new TZDate(scheduleData.date) + }; + + /** + * @event {MonthCreation#monthResizeDragstart} + * @type {object} + * @property {number} x - x index + * @property {number} y - y index + * @property {Date} date - drag date + * @property {HTMLElement} target - schedule block element + * @property {Schedule} model - model instance + */ + this.fire('monthResizeDragstart', scheduleData); +}; + +/** + * @fires {MonthResize#monthResizeDrag} + * @param {object} dragEvent - drag event data + */ +MonthResize.prototype._onDrag = function(dragEvent) { + var scheduleData; + + if (!this.getScheduleData) { + return; + } + + scheduleData = this.getScheduleData(dragEvent.originEvent); + + if (!scheduleData) { + return; + } + + /** + * @event {MonthResize#monthResizeDrag} + * @type {object} + * @property {number} x - x index + * @property {number} y - y index + * @property {Date} date - drag date + */ + this.fire('monthResizeDrag', scheduleData); +}; + +/** + * @fires {MonthResize#monthResizeDragend} + * @param {object} dragEndEvent - drag end event data + */ +MonthResize.prototype._onDragEnd = function(dragEndEvent) { + var cache = this._cache; + var scheduleData; + var start, end; + + this.dragHandler.off({ + drag: this._onDrag, + dragEnd: this._onDragEnd + }, this); + + if (!this.getScheduleData) { + return; + } + + scheduleData = this.getScheduleData(dragEndEvent.originEvent); + + if (scheduleData) { + start = new TZDate(cache.schedule.getStarts()); + end = new TZDate(scheduleData.date); + cache.end = end; + + if (start <= cache.end) { + this._updateSchedule(cache); + } + } + + /** + * @event {MonthResize#monthResizeDragend} + * @type {object} + * @property {number} x - x index + * @property {number} y - y index + * @property {Date} date - drag date + */ + this.fire('monthResizeDragend', scheduleData); + + this.getScheduleData = this._cache = null; +}; + +util.CustomEvents.mixin(MonthResize); + +module.exports = MonthResize; + + +/***/ }), + +/***/ "./src/js/handler/month/resizeGuide.js": +/*!*********************************************!*\ + !*** ./src/js/handler/month/resizeGuide.js ***! + \*********************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; +/* WEBPACK VAR INJECTION */(function(global) {/** + * @fileoverview Module for modification of guide element in schedule resize + * @author NHN FE Development Lab + */ + + +var util = __webpack_require__(/*! tui-code-snippet */ "tui-code-snippet"); + +var config = __webpack_require__(/*! ../../config */ "./src/js/config.js"), + domutil = __webpack_require__(/*! ../../common/domutil */ "./src/js/common/domutil.js"), + MonthGuide = __webpack_require__(/*! ./guide */ "./src/js/handler/month/guide.js"); + +/** + * @constructor + * @param {MonthResize} monthResize - month/resize module instance + */ +function MonthResizeGuide(monthResize) { + /** + * @type {MonthResize} + */ + this.monthResize = monthResize; + + /** + * @type {HTMLElement[]} + */ + this.elements = null; + + /** + * @type {MonthGuide} + */ + this.guide = null; + + monthResize.on({ + monthResizeDragstart: this._onDragStart, + monthResizeDrag: this._onDrag, + monthResizeDragend: this._onDragEnd + }, this); +} + +/** + * Destructor + */ +MonthResizeGuide.prototype.destroy = function() { + this.monthResize.off(this); + this.guide.destroy(); + + this.guide = this.monthResize = null; +}; + +/** + * Hide element blocks for resize effect + * @param {number} modelID - Schedule model instance ID + */ +MonthResizeGuide.prototype._hideScheduleBlocks = function(modelID) { + this.elements = domutil.find( + config.classname('.weekday-schedule-block-' + modelID), + this.monthResize.monthView.container, + true + ); + + util.forEach(this.elements, function(el) { + el.style.display = 'none'; + }); +}; + +/** + * Show element blocks + */ +MonthResizeGuide.prototype._showScheduleBlocks = function() { + util.forEach(this.elements, function(el) { + el.style.display = 'block'; + }); +}; + +/** + * Drag start event handler + * @param {object} dragStartEvent - schedule data from MonthResize + */ +MonthResizeGuide.prototype._onDragStart = function(dragStartEvent) { + this.guide = new MonthGuide({ + isResizeMode: true + }, this.monthResize.monthView); + + this.guide.start(dragStartEvent); + + this._hideScheduleBlocks(dragStartEvent.model.cid()); + + if (!util.browser.msie) { + domutil.addClass(global.document.body, config.classname('resizing-x')); + } +}; + +/** + * Drag event handler + * @param {object} dragEvent - event data from MonthCreation + */ +MonthResizeGuide.prototype._onDrag = function(dragEvent) { + this.guide.update(dragEvent.x, dragEvent.y); +}; + +/** + * Drag end event handler + */ +MonthResizeGuide.prototype._onDragEnd = function() { + this._showScheduleBlocks(); + + this.guide.destroy(); + this.elements = this.guide = null; + + if (!util.browser.msie) { + domutil.removeClass(global.document.body, config.classname('resizing-x')); + } +}; + +module.exports = MonthResizeGuide; + +/* WEBPACK VAR INJECTION */}.call(this, __webpack_require__(/*! ./../../../../node_modules/webpack/buildin/global.js */ "./node_modules/webpack/buildin/global.js"))) + +/***/ }), + +/***/ "./src/js/handler/time/click.js": +/*!**************************************!*\ + !*** ./src/js/handler/time/click.js ***! + \**************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; +/** + * @fileoverview Allday event click event hander module + * @author NHN FE Development Lab + */ + + +var util = __webpack_require__(/*! tui-code-snippet */ "tui-code-snippet"); +var config = __webpack_require__(/*! ../../config */ "./src/js/config.js"); +var domutil = __webpack_require__(/*! ../../common/domutil */ "./src/js/common/domutil.js"); + +/** + * @constructor + * @implements {Handler} + * @mixes util.CustomEvents + * @param {Drag} [dragHandler] - Drag handler instance. + * @param {TimeGrid} [timeGridView] - TimeGrid view instance. + * @param {Base} [baseController] - Base controller instance. + */ +function TimeClick(dragHandler, timeGridView, baseController) { + /** + * @type {Drag} + */ + this.dragHandler = dragHandler; + + /** + * @type {TimeGrid} + */ + this.timeGridView = timeGridView; + + /** + * @type {Base} + */ + this.baseController = baseController; + + dragHandler.on({ + 'click': this._onClick + }, this); +} + +/** + * Destroy method + */ +TimeClick.prototype.destroy = function() { + this.dragHandler.off(this); + this.timeGridView = this.baseController = this.dragHandler = null; +}; + +/** + * Check target element is expected condition for activate this plugins. + * @param {HTMLElement} target - The element to check + * @returns {string} - model id + */ +TimeClick.prototype.checkExpectCondition = function(target) { + var container, + matches; + + container = domutil.closest(target, config.classname('.time-date')); + + if (!container) { + return false; + } + + matches = domutil.getClass(container).match(config.time.getViewIDRegExp); + + if (!matches || matches.length < 2) { + return false; + } + + return util.pick(this.timeGridView.children.items, Number(matches[1])); +}; + +/** + * Click event hander + * @param {object} clickEvent - click event from {@link Drag} + * @emits TimeClick#clickEvent + */ +TimeClick.prototype._onClick = function(clickEvent) { + var self = this, + target = clickEvent.target, + timeView = this.checkExpectCondition(target), + blockElement = domutil.closest(target, config.classname('.time-date-schedule-block')), + schedulesCollection = this.baseController.schedules; + + if (!timeView || !blockElement) { + return; + } + + schedulesCollection.doWhenHas(domutil.getData(blockElement, 'id'), function(schedule) { + /** + * @events TimeClick#clickSchedule + * @type {object} + * @property {Schedule} schedule - schedule instance + * @property {MouseEvent} event - MouseEvent object + */ + self.fire('clickSchedule', { + schedule: schedule, + event: clickEvent.originEvent + }); + }); +}; + +util.CustomEvents.mixin(TimeClick); + +module.exports = TimeClick; + + +/***/ }), + +/***/ "./src/js/handler/time/clickDayname.js": +/*!*********************************************!*\ + !*** ./src/js/handler/time/clickDayname.js ***! + \*********************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; +/** + * @fileoverview Dayname click event hander module + * @author NHN FE Development Lab + */ + + +var util = __webpack_require__(/*! tui-code-snippet */ "tui-code-snippet"); +var config = __webpack_require__(/*! ../../config */ "./src/js/config.js"); +var domutil = __webpack_require__(/*! ../../common/domutil */ "./src/js/common/domutil.js"); + +/** + * @constructor + * @implements {Handler} + * @mixes util.CustomEvents + * @param {Drag} [dragHandler] - Drag handler instance. + * @param {DayName} [dayNameView] - DayName view instance. + * @param {Base} [baseController] - Base controller instance. + */ +function DayNameClick(dragHandler, dayNameView, baseController) { + /** + * @type {Drag} + */ + this.dragHandler = dragHandler; + + /** + * @type {DayName} + */ + this.dayNameView = dayNameView; + + /** + * @type {Base} + */ + this.baseController = baseController; + + dragHandler.on({ + 'click': this._onClick + }, this); +} + +/** + * Destroy method + */ +DayNameClick.prototype.destroy = function() { + this.dragHandler.off(this); + this.dayNameView = this.baseController = this.dragHandler = null; +}; + +/** + * Check target element is expected condition for activate this plugins. + * @param {HTMLElement} target - The element to check + * @returns {string} - model id + */ +DayNameClick.prototype.checkExpectCondition = function(target) { + var container = domutil.closest(target, config.classname('.dayname-date-area')); + + if (!container) { + return false; + } + + return true; +}; + +/** + * Click event hander + * @param {object} clickEvent - click event from {@link Drag} + * @emits DayNameClick#clickDayname + */ +DayNameClick.prototype._onClick = function(clickEvent) { + var self = this, + target = clickEvent.target, + daynameView = this.checkExpectCondition(target), + blockElement = domutil.closest(target, config.classname('.dayname')); + + if (!daynameView || !blockElement) { + return; + } + + /** + * @events DayNameClick#clickDayname + * @type {object} + * @property {string} date - click date + */ + self.fire('clickDayname', { + date: domutil.getData(blockElement, 'date') + }); +}; + +util.CustomEvents.mixin(DayNameClick); + +module.exports = DayNameClick; + + +/***/ }), + +/***/ "./src/js/handler/time/core.js": +/*!*************************************!*\ + !*** ./src/js/handler/time/core.js ***! + \*************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; +/** + * @fileoverview Core methods for dragging actions + * @author NHN FE Development Lab + */ + + +var util = __webpack_require__(/*! tui-code-snippet */ "tui-code-snippet"); +var common = __webpack_require__(/*! ../../common/common */ "./src/js/common/common.js"); +var datetime = __webpack_require__(/*! ../../common/datetime */ "./src/js/common/datetime.js"); +var domevent = __webpack_require__(/*! ../../common/domevent */ "./src/js/common/domevent.js"); +var Point = __webpack_require__(/*! ../../common/point */ "./src/js/common/point.js"); +var TZDate = __webpack_require__(/*! ../../common/timezone */ "./src/js/common/timezone.js").Date; + +/** + * @mixin Time.Core + */ +var timeCore = { + /** + * Get Y index ratio(hour) in time grids by supplied parameters. + * @param {number} baseMil - base milliseconds number for supplied height. + * @param {number} height - container element height. + * @param {number} y - Y coordinate to calculate hour ratio. + * @returns {number} hour index ratio value. + */ + _calcGridYIndex: function(baseMil, height, y) { + // get ratio from right expression > point.y : x = session.height : baseMil + // and convert milliseconds value to hours. + var result = datetime.millisecondsTo('hour', (y * baseMil) / height), + floored = result | 0, + nearest = common.nearest(result - floored, [0, 1]); + + return floored + (nearest ? 0.5 : 0); + }, + + /** + * Get function to makes event data from Time and mouseEvent + * @param {Time} timeView - Instance of time view. + * @returns {function} - Function that return event data from mouse event. + */ + _retriveScheduleData: function(timeView) { + var self = this, + container = timeView.container, + options = timeView.options, + viewHeight = timeView.getViewBound().height, + viewTime = timeView.getDate(), + hourLength = options.hourEnd - options.hourStart, + baseMil = datetime.millisecondsFrom('hour', hourLength); + + /** + * @param {MouseEvent} mouseEvent - mouse event object to get common event data. + * @param {object} [extend] - object to extend event data before return. + * @returns {object} - common event data for time + */ + return function(mouseEvent, extend) { + var mouseY = Point.n(domevent.getMousePosition(mouseEvent, container)).y, + gridY = common.ratio(viewHeight, hourLength, mouseY), + timeY = new TZDate(viewTime).addMinutes(datetime.minutesFromHours(gridY)), + nearestGridY = self._calcGridYIndex(baseMil, viewHeight, mouseY), + nearestGridTimeY = new TZDate(viewTime).addMinutes( + datetime.minutesFromHours(nearestGridY + options.hourStart) + ); + + return util.extend({ + target: domevent.getEventTarget(mouseEvent), + relatedView: timeView, + originEvent: mouseEvent, + mouseY: mouseY, + gridY: gridY, + timeY: timeY, + nearestGridY: nearestGridY, + nearestGridTimeY: nearestGridTimeY, + triggerEvent: mouseEvent.type + }, extend); + }; + }, + + /** + * Get function to makes event data from Time and mouseEvent + * @param {Time} timeView - Instance of time view. + * @param {TZDate} startDate - start date + * @param {TZDate} endDate - end date + * @param {number} hourStart Can limit of render hour start. + * @returns {object} - common event data for time from mouse event. + */ + _retriveScheduleDataFromDate: function(timeView, startDate, endDate, hourStart) { + var viewTime = timeView.getDate(); + var gridY, timeY, nearestGridY, nearestGridTimeY, nearestGridEndY, nearestGridEndTimeY; + + gridY = startDate.getHours() - hourStart + getNearestHour(startDate.getMinutes()); + timeY = new TZDate(viewTime).addMinutes(datetime.minutesFromHours(gridY)); + nearestGridY = gridY; + nearestGridTimeY = new TZDate(viewTime).addMinutes(datetime.minutesFromHours(nearestGridY)); + nearestGridEndY = endDate.getHours() - hourStart + getNearestHour(endDate.getMinutes()); + nearestGridEndTimeY = new TZDate(viewTime).addMinutes(datetime.minutesFromHours(nearestGridEndY)); + + return { + target: timeView, + relatedView: timeView, + gridY: gridY, + timeY: timeY, + nearestGridY: nearestGridY, + nearestGridTimeY: nearestGridTimeY, + nearestGridEndY: nearestGridEndY, + nearestGridEndTimeY: nearestGridEndTimeY, + triggerEvent: 'manual', + hourStart: hourStart + }; + }, + + /** + * Mixin method. + * @param {(TimeCreation|TimeMove)} obj - Constructor functions + */ + mixin: function(obj) { + var proto = obj.prototype; + util.forEach(timeCore, function(method, methodName) { + if (methodName === 'mixin') { + return; + } + + proto[methodName] = method; + }); + } +}; + +/** + * Get the nearest hour + * @param {number} minutes - minutes + * @returns {number} hour + */ +function getNearestHour(minutes) { + var nearestHour; + if (minutes === 0) { + nearestHour = 0; + } else if (minutes > 30) { + nearestHour = 1; + } else if (minutes <= 30) { + nearestHour = 0.5; + } + + return nearestHour; +} + +module.exports = timeCore; + + +/***/ }), + +/***/ "./src/js/handler/time/creation.js": +/*!*****************************************!*\ + !*** ./src/js/handler/time/creation.js ***! + \*****************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; +/** + * @fileoverview Handling creation events from drag handler and time grid view + * @author NHN FE Development Lab + */ + + +var util = __webpack_require__(/*! tui-code-snippet */ "tui-code-snippet"); +var config = __webpack_require__(/*! ../../config */ "./src/js/config.js"); +var array = __webpack_require__(/*! ../../common/array */ "./src/js/common/array.js"); +var datetime = __webpack_require__(/*! ../../common/datetime */ "./src/js/common/datetime.js"); +var domutil = __webpack_require__(/*! ../../common/domutil */ "./src/js/common/domutil.js"); +var domevent = __webpack_require__(/*! ../../common/domevent */ "./src/js/common/domevent.js"); +var common = __webpack_require__(/*! ../../common/common */ "./src/js/common/common.js"); +var TimeCreationGuide = __webpack_require__(/*! ./creationGuide */ "./src/js/handler/time/creationGuide.js"); +var TZDate = __webpack_require__(/*! ../../common/timezone */ "./src/js/common/timezone.js").Date; +var timeCore = __webpack_require__(/*! ./core */ "./src/js/handler/time/core.js"); + +var CLICK_DELAY = 300; + +/** + * @constructor + * @implements {Handler} + * @mixes timeCore + * @mixes CustomEvents + * @param {Drag} [dragHandler] - Drag handler instance. + * @param {TimeGrid} [timeGridView] - TimeGrid view instance. + * @param {Base} [baseController] - Base controller instance. + * @param {Options} [options] - calendar Options + */ +function TimeCreation(dragHandler, timeGridView, baseController, options) { + /** + * Drag handler instance. + * @type {Drag} + */ + this.dragHandler = dragHandler; + + /** + * TimeGrid view instance. + * @type {TimeGrid} + */ + this.timeGridView = timeGridView; + + /** + * Base controller instance. + * @type {Base} + */ + this.baseController = baseController; + + /** + * @type {TimeCreationGuide} + */ + this.guide = new TimeCreationGuide(this); + + /** + * Temporary function for single drag session's calc. + * @type {function} + */ + this._getScheduleDataFunc = null; + + /** + * Temporary function for drag start data cache. + * @type {object} + */ + this._dragStart = null; + + /** + * @type {boolean} + */ + this._requestOnClick = false; + + /** + * @type {boolean} + */ + this._disableDblClick = options.disableDblClick; + + /** + * @type {boolean} + */ + this._disableClick = options.disableClick; + + dragHandler.on('dragStart', this._onDragStart, this); + dragHandler.on('click', this._onClick, this); + + if (this._disableDblClick) { + CLICK_DELAY = 0; + } else { + domevent.on(timeGridView.container, 'dblclick', this._onDblClick, this); + } +} + +/** + * Destroy method + */ +TimeCreation.prototype.destroy = function() { + var timeGridView = this.timeGridView; + + this.guide.destroy(); + this.dragHandler.off(this); + + if (timeGridView && timeGridView.container) { + domevent.off(timeGridView.container, 'dblclick', this._onDblClick, this); + } + + this.dragHandler = this.timeGridView = this.baseController = + this._getScheduleDataFunc = this._dragStart = this.guide = null; +}; + +/** + * Check target element is expected condition for activate this plugins. + * @param {HTMLElement} target - The element to check + * @returns {(boolean|Time)} - return Time view instance when satiate condition. + */ +TimeCreation.prototype.checkExpectedCondition = function(target) { + var cssClass = domutil.getClass(target), + matches; + + if (cssClass === config.classname('time-date-schedule-block-wrap')) { + target = target.parentNode; + cssClass = domutil.getClass(target); + } + + matches = cssClass.match(config.time.getViewIDRegExp); + + if (!matches || matches.length < 2) { + return false; + } + + return util.pick(this.timeGridView.children.items, matches[1]); +}; + +/** + * Drag#dragStart event handler. + * @emits TimeCreation#timeCreationDragstart + * @param {object} dragStartEventData - Drag#dragStart event data. + * @param {string} [overrideEventName] - override emitted event name when supplied. + * @param {function} [revise] - supply function for revise event data before emit. + */ +TimeCreation.prototype._onDragStart = function(dragStartEventData, overrideEventName, revise) { + var target = dragStartEventData.target, + result = this.checkExpectedCondition(target), + getScheduleDataFunc, + eventData; + + if (!result) { + return; + } + + getScheduleDataFunc = this._getScheduleDataFunc = this._retriveScheduleData(result); + eventData = this._dragStart = getScheduleDataFunc(dragStartEventData.originEvent); + + if (revise) { + revise(eventData); + } + + this.dragHandler.on({ + drag: this._onDrag, + dragEnd: this._onDragEnd + }, this); + + /** + * @event TimeCreation#timeCreationDragstart + * @type {object} + * @property {Time} relatedView - time view instance related with mouse position. + * @property {MouseEvent} originEvent - mouse event object. + * @property {number} mouseY - mouse Y px mouse event. + * @property {number} gridY - grid Y index value related with mouseY value. + * @property {number} timeY - milliseconds value of mouseY points. + * @property {number} nearestGridY - nearest grid index related with mouseY value. + * @property {number} nearestGridTimeY - time value for nearestGridY. + */ + this.fire(overrideEventName || 'timeCreationDragstart', eventData); +}; + +/** + * Drag#drag event handler + * @emits TimeCreation#timeCreationDrag + * @param {object} dragEventData - event data from Drag#drag. + * @param {string} [overrideEventName] - override emitted event name when supplied. + * @param {function} [revise] - supply function for revise event data before emit. + */ +TimeCreation.prototype._onDrag = function(dragEventData, overrideEventName, revise) { + var getScheduleDataFunc = this._getScheduleDataFunc, + eventData; + + if (!getScheduleDataFunc) { + return; + } + + eventData = getScheduleDataFunc(dragEventData.originEvent); + + if (revise) { + revise(eventData); + } + + /** + * @event TimeCreation#timeCreationDrag + * @type {object} + * @property {Time} relatedView - time view instance related with mouse position. + * @property {MouseEvent} originEvent - mouse event object. + * @property {number} mouseY - mouse Y px mouse event. + * @property {number} gridY - grid Y index value related with mouseY value. + * @property {number} timeY - milliseconds value of mouseY points. + * @property {number} nearestGridY - nearest grid index related with mouseY value. + * @property {number} nearestGridTimeY - time value for nearestGridY. + */ + this.fire(overrideEventName || 'timeCreationDrag', eventData); +}; + +/** + * @fires TimeCreation#beforeCreateSchedule + * @param {object} eventData - event data object from TimeCreation#timeCreationDragend + * or TimeCreation#timeCreationClick + */ +TimeCreation.prototype._createSchedule = function(eventData) { + var relatedView = eventData.relatedView, + createRange = eventData.createRange, + nearestGridTimeY = eventData.nearestGridTimeY, + nearestGridEndTimeY = eventData.nearestGridEndTimeY + ? eventData.nearestGridEndTimeY + : new TZDate(nearestGridTimeY).addMinutes(30), + baseDate, + dateStart, + dateEnd, + start, + end; + + if (!createRange) { + createRange = [ + nearestGridTimeY, + nearestGridEndTimeY + ]; + } + + baseDate = new TZDate(relatedView.getDate()); + dateStart = datetime.start(baseDate); + dateEnd = datetime.getStartOfNextDay(baseDate); + start = common.limitDate(createRange[0], dateStart, dateEnd); + end = common.limitDate(createRange[1], dateStart, dateEnd); + + /** + * @event TimeCreation#beforeCreateSchedule + * @type {object} + * @property {boolean} isAllDay - whether schedule is fired in allday view area? + * @property {Date} start - select start time + * @property {Date} end - select end time + * @property {TimeCreationGuide} guide - TimeCreationGuide instance + * @property {string} triggerEventName - event name + */ + this.fire('beforeCreateSchedule', { + isAllDay: false, + start: new TZDate(start), + end: new TZDate(end), + guide: this.guide, + triggerEventName: eventData.triggerEvent + }); +}; + +/** + * Drag#dragEnd event handler + * @emits TimeCreation#timeCreationDragend + * @param {object} dragEndEventData - event data from Drag#dragend + */ +TimeCreation.prototype._onDragEnd = function(dragEndEventData) { + var self = this, + dragStart = this._dragStart; + + this.dragHandler.off({ + drag: this._onDrag, + dragEnd: this._onDragEnd + }, this); + + /** + * Function for manipulate event data before firing event + * @param {object} eventData - event data + */ + function reviseFunc(eventData) { + var range = [ + dragStart.nearestGridTimeY, + eventData.nearestGridTimeY + ].sort(array.compare.num.asc); + range[1].addMinutes(30); + + eventData.createRange = range; + + self._createSchedule(eventData); + } + + /** + * @event TimeCreation#timeCreationDragend + * @type {object} + * @property {Time} relatedView - time view instance related with mouse position. + * @property {MouseEvent} originEvent - mouse event object. + * @property {number} mouseY - mouse Y px mouse event. + * @property {number} gridY - grid Y index value related with mouseY value. + * @property {number} timeY - milliseconds value of mouseY points. + * @property {number} nearestGridY - nearest grid index related with mouseY value. + * @property {number} nearestGridTimeY - time value for nearestGridY. + * @property {number[]} createRange - milliseconds range between drag start and end to create. + */ + this._onDrag(dragEndEventData, 'timeCreationDragend', reviseFunc); + + this._dragStart = this._getScheduleDataFunc = null; +}; + +/** + * Drag#click event handler + * @emits TimeCreation#timeCreationClick + * @param {object} clickEventData - event data from Drag#click. + */ +TimeCreation.prototype._onClick = function(clickEventData) { + var self = this; + var condResult, getScheduleDataFunc, eventData; + + this.dragHandler.off({ + drag: this._onDrag, + dragEnd: this._onDragEnd + }, this); + + condResult = this.checkExpectedCondition(clickEventData.target); + if (!condResult || this._disableClick) { + return; + } + + getScheduleDataFunc = this._retriveScheduleData(condResult); + eventData = getScheduleDataFunc(clickEventData.originEvent); + + this._requestOnClick = true; + setTimeout(function() { + if (self._requestOnClick) { + self.fire('timeCreationClick', eventData); + self._createSchedule(eventData); + } + self._requestOnClick = false; + }, CLICK_DELAY); + this._dragStart = this._getScheduleDataFunc = null; +}; + +/** + * Dblclick event handler + * @param {MouseEvent} e - Native MouseEvent + */ +TimeCreation.prototype._onDblClick = function(e) { + var condResult, getScheduleDataFunc, eventData; + + condResult = this.checkExpectedCondition(e.target); + if (!condResult) { + return; + } + + getScheduleDataFunc = this._retriveScheduleData(condResult); + eventData = getScheduleDataFunc(e); + + this.fire('timeCreationClick', eventData); + + this._createSchedule(eventData); + + this._requestOnClick = false; +}; + +/** + * Invoke creation click + * @param {Schedule} schedule - schedule instance + */ +TimeCreation.prototype.invokeCreationClick = function(schedule) { + var opt = this.timeGridView.options, + range = datetime.range( + opt.renderStartDate, + opt.renderEndDate, + datetime.MILLISECONDS_PER_DAY), + hourStart = opt.hourStart, + targetDate = schedule.start; + var eventData, timeView; + + util.forEach(range, function(date, index) { + if (datetime.isSameDate(date, targetDate)) { + timeView = this.timeGridView.children.toArray()[index]; + } + }, this); + + // If start date is not in current date, set start date as first date. + if (!timeView) { + timeView = this.timeGridView.children.toArray()[0]; + } + + eventData = this._retriveScheduleDataFromDate(timeView, schedule.start, schedule.end, hourStart); + + this.fire('timeCreationClick', eventData); + + this._createSchedule(eventData); +}; + +timeCore.mixin(TimeCreation); +util.CustomEvents.mixin(TimeCreation); + +module.exports = TimeCreation; + + +/***/ }), + +/***/ "./src/js/handler/time/creationGuide.js": +/*!**********************************************!*\ + !*** ./src/js/handler/time/creationGuide.js ***! + \**********************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; +/* WEBPACK VAR INJECTION */(function(global) {/** + * @fileoverview Module for Time.Creation effect while dragging. + * @author NHN FE Development Lab + */ + + +var common = __webpack_require__(/*! ../../common/common */ "./src/js/common/common.js"); +var datetime = __webpack_require__(/*! ../../common/datetime */ "./src/js/common/datetime.js"); +var config = __webpack_require__(/*! ../../config */ "./src/js/config.js"); +var domutil = __webpack_require__(/*! ../../common/domutil */ "./src/js/common/domutil.js"); +var reqAnimFrame = __webpack_require__(/*! ../../common/reqAnimFrame */ "./src/js/common/reqAnimFrame.js"); +var ratio = __webpack_require__(/*! ../../common/common */ "./src/js/common/common.js").ratio; +var TZDate = __webpack_require__(/*! ../../common/timezone */ "./src/js/common/timezone.js").Date; +var MIN60 = (datetime.MILLISECONDS_PER_MINUTES * 60); + +/** + * Class for Time.Creation dragging effect. + * @constructor + * @param {TimeCreation} timeCreation - instance of TimeCreation. + */ +function TimeCreationGuide(timeCreation) { + /** + * Guide element for creation effect. + * @type {HTMLElement} + */ + this.guideElement = global.document.createElement('div'); + + /** + * @type {HTMLDivElement} + */ + this.guideTimeElement = domutil.appendHTMLElement( + 'span', + this.guideElement, + config.classname('time-guide-creation-label') + ); + + domutil.addClass(this.guideElement, config.classname('time-guide-creation')); + + /** + * @type {TimeCreation} + */ + this.timeCreation = timeCreation; + + /** + * @type {array} + */ + this._styleUnit = null; + + /** + * @type {array} + */ + this._styleStart = null; + + /** + * @type {function} + */ + this._styleFunc = null; + + timeCreation.on({ + timeCreationDragstart: this._createGuideElement, + timeCreationDrag: this._onDrag, + timeCreationClick: this._createGuideElement + }, this); + + this.applyTheme(timeCreation.baseController.theme); +} + +/** + * Destroy method. + */ +TimeCreationGuide.prototype.destroy = function() { + this.clearGuideElement(); + this.timeCreation.off(this); + this.timeCreation = this._styleUnit = this._styleStart = + this._styleFunc = this.guideElement = this.guideTimeElement = null; +}; + +/** + * Clear guide element. + */ +TimeCreationGuide.prototype.clearGuideElement = function() { + var guideElement = this.guideElement, + timeElement = this.guideTimeElement; + + domutil.remove(guideElement); + + reqAnimFrame.requestAnimFrame(function() { + guideElement.style.display = 'none'; + guideElement.style.top = ''; + guideElement.style.height = ''; + timeElement.innerHTML = ''; + }); +}; + +/** + * Refresh guide element + * @param {number} top - The number of guide element's style top + * @param {number} height - The number of guide element's style height + * @param {TZDate} start - start time of schedule to create + * @param {TZDate} end - end time of schedule to create + * @param {boolean} bottomLabel - is label need to render bottom of guide element? + */ +TimeCreationGuide.prototype._refreshGuideElement = function(top, height, start, end, bottomLabel) { + var guideElement = this.guideElement; + var timeElement = this.guideTimeElement; + + guideElement.style.top = top + 'px'; + guideElement.style.height = height + 'px'; + guideElement.style.display = 'block'; + + timeElement.innerHTML = datetime.format(start, 'HH:mm') + + ' - ' + datetime.format(end, 'HH:mm'); + + if (bottomLabel) { + domutil.removeClass(timeElement, config.classname('time-guide-bottom')); + } else { + domutil.addClass(timeElement, config.classname('time-guide-bottom')); + } +}; + +/** + * Get unit data of calculating new style of guide element by user interaction + * @param {Time} relatedView - time view instance related with schedule + * @returns {array} unit data. + */ +TimeCreationGuide.prototype._getUnitData = function(relatedView) { + var viewOpt = relatedView.options, + viewHeight = relatedView.getViewBound().height, + hourLength = viewOpt.hourEnd - viewOpt.hourStart, + todayStart = datetime.parse(viewOpt.ymd), + todayEnd = datetime.getStartOfNextDay(todayStart); + + todayStart.setHours(0, 0, 0, 0); + todayStart.setHours(viewOpt.hourStart); + + // [0] height of view + // [1] hour length of view + // [2] start time of view + // [3] end time of view + // [4] height of view for one hour + return [ + viewHeight, + hourLength, + todayStart, + todayEnd, + viewHeight / hourLength + ]; +}; + +/** + * Applying limitation to supplied data and return it. + * @param {number} top - top pixel of guide element + * @param {number} height - height pixel of guide element + * @param {TZDate} start - relative time value of dragstart point + * @param {TZDate} end - relative time value of dragend point + * @returns {array} limited style data + */ +TimeCreationGuide.prototype._limitStyleData = function(top, height, start, end) { + var unitData = this._styleUnit; + + top = common.limit(top, [0], [unitData[0]]); + height = common.limit(top + height, [0], [unitData[0]]) - top; + start = common.limitDate(start, unitData[2], unitData[3]); + end = common.limitDate(end, unitData[2], unitData[3]); + + return [top, height, start, end]; +}; + +/** + * Get function to calculate guide element UI data from supplied units + * @param {number} viewHeight - total height of view's container element + * @param {number} hourLength - hour length that rendered in time view + * @param {TZDate} todayStart - time for view's start date + * @returns {function} UI data calculator function + */ +TimeCreationGuide.prototype._getStyleDataFunc = function(viewHeight, hourLength, todayStart) { + var todayStartTime = todayStart; + var todayEndTime = datetime.end(todayStart); + + /** + * Get top, time value from schedule data + * @param {object} scheduleData - schedule data object + * @returns {number[]} top, time + */ + function getStyleData(scheduleData) { + var minMinutes = 30; + var gridY = scheduleData.nearestGridY, + gridTimeY = scheduleData.nearestGridTimeY, + gridEndTimeY = scheduleData.nearestGridEndTimeY || new TZDate(gridTimeY).addMinutes(minMinutes), + top, startTime, endTime; + + top = common.limit(ratio(hourLength, viewHeight, gridY), [0], [viewHeight]); + startTime = common.limitDate(gridTimeY, todayStartTime, todayEndTime); + endTime = common.limitDate(gridEndTimeY, todayStartTime, todayEndTime); + + return [top, startTime, endTime]; + } + + return getStyleData; +}; + +/** + * DragStart event handler + * @param {object} dragStartEventData - dragStart schedule data. + */ +TimeCreationGuide.prototype._createGuideElement = function(dragStartEventData) { + var relatedView = dragStartEventData.relatedView, + hourStart = datetime.millisecondsFrom('hour', dragStartEventData.hourStart) || 0, + unitData, styleFunc, styleData, result, top, height, start, end; + + unitData = this._styleUnit = this._getUnitData(relatedView); + styleFunc = this._styleFunc = this._getStyleDataFunc.apply(this, unitData); + styleData = this._styleStart = styleFunc(dragStartEventData); + + start = new TZDate(styleData[1]).addMinutes(datetime.minutesFromHours(hourStart)); + end = new TZDate(styleData[2]).addMinutes(datetime.minutesFromHours(hourStart)); + top = styleData[0]; + height = (unitData[4] * (end - start) / MIN60); + + result = this._limitStyleData( + top, + height, + start, + end + ); + + this._refreshGuideElement.apply(this, result); + + relatedView.container.appendChild(this.guideElement); +}; + +/** + * Drag event handler + * @param {object} dragEventData - drag schedule data. + */ +TimeCreationGuide.prototype._onDrag = function(dragEventData) { + var minutes30 = 30; + var styleFunc = this._styleFunc, + unitData = this._styleUnit, + startStyle = this._styleStart, + refreshGuideElement = this._refreshGuideElement.bind(this), + heightOfHalfHour, + endStyle, + result; + + if (!styleFunc || !unitData || !startStyle) { + return; + } + + heightOfHalfHour = (unitData[4] / 2); + endStyle = styleFunc(dragEventData); + + if (endStyle[0] > startStyle[0]) { + result = this._limitStyleData( + startStyle[0], + (endStyle[0] - startStyle[0]) + heightOfHalfHour, + startStyle[1], + new TZDate(endStyle[1]).addMinutes(minutes30) + ); + } else { + result = this._limitStyleData( + endStyle[0], + (startStyle[0] - endStyle[0]) + heightOfHalfHour, + endStyle[1], + new TZDate(startStyle[1]).addMinutes(minutes30) + ); + result.push(true); + } + + reqAnimFrame.requestAnimFrame(function() { + refreshGuideElement.apply(null, result); + }); +}; + +TimeCreationGuide.prototype.applyTheme = function(theme) { + var style = this.guideElement.style; + var timeStyle = this.guideTimeElement.style; + + // block + style.backgroundColor = theme.common.creationGuide.backgroundColor; + style.border = theme.common.creationGuide.border; + + // label + timeStyle.color = theme.week.creationGuide.color; + timeStyle.fontSize = theme.week.creationGuide.fontSize; + timeStyle.fontWeight = theme.week.creationGuide.fontWeight; +}; + +module.exports = TimeCreationGuide; + +/* WEBPACK VAR INJECTION */}.call(this, __webpack_require__(/*! ./../../../../node_modules/webpack/buildin/global.js */ "./node_modules/webpack/buildin/global.js"))) + +/***/ }), + +/***/ "./src/js/handler/time/move.js": +/*!*************************************!*\ + !*** ./src/js/handler/time/move.js ***! + \*************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; +/** + * @fileoverview Handling move schedules from drag handler and time grid view + * @author NHN FE Development Lab + */ + + +var util = __webpack_require__(/*! tui-code-snippet */ "tui-code-snippet"); +var config = __webpack_require__(/*! ../../config */ "./src/js/config.js"); +var datetime = __webpack_require__(/*! ../../common/datetime */ "./src/js/common/datetime.js"); +var domutil = __webpack_require__(/*! ../../common/domutil */ "./src/js/common/domutil.js"); +var domevent = __webpack_require__(/*! ../../common/domevent */ "./src/js/common/domevent.js"); +var TZDate = __webpack_require__(/*! ../../common/timezone */ "./src/js/common/timezone.js").Date; +var timeCore = __webpack_require__(/*! ./core */ "./src/js/handler/time/core.js"); +var TimeMoveGuide = __webpack_require__(/*! ./moveGuide */ "./src/js/handler/time/moveGuide.js"); + +/** + * @constructor + * @implements {Handler} + * @mixes timeCore + * @mixes util.CustomEvents + * @param {Drag} [dragHandler] - Drag handler instance. + * @param {TimeGrid} [timeGridView] - TimeGrid view instance. + * @param {Base} [baseController] - Base controller instance. + */ +function TimeMove(dragHandler, timeGridView, baseController) { + /** + * @type {Drag} + */ + this.dragHandler = dragHandler; + + /** + * @type {TimeGrid} + */ + this.timeGridView = timeGridView; + + /** + * @type {Base} + */ + this.baseController = baseController; + + /** + * @type {function} + */ + this._getScheduleDataFunc = null; + + /** + * @type {object} + */ + this._dragStart = null; + + /** + * @type {TimeMoveGuide} + */ + this._guide = new TimeMoveGuide(this); + + dragHandler.on('dragStart', this._onDragStart, this); + dragHandler.on('mousedown', this._onMouseDown, this); +} + +/** + * Destroy method. + */ +TimeMove.prototype.destroy = function() { + this._guide.destroy(); + this.dragHandler.off(this); + this.dragHandler = this.timeGridView = this.baseController = + this._getScheduleDataFunc = this._dragStart = this._guide = null; +}; + +/** + * Check target element is expected condition for activate this plugins. + * @param {HTMLElement} target - The element to check + * @returns {boolean|object} - return object when satiate condition. + */ +TimeMove.prototype.checkExpectCondition = function(target) { + if (!domutil.closest(target, config.classname('.time-schedule'))) { + return false; + } + + return this._getTimeView(target); +}; + +/** + * Get Time view container from supplied element. + * @param {HTMLElement} target - element to find time view container. + * @returns {object|boolean} - return time view instance when finded. + */ +TimeMove.prototype._getTimeView = function(target) { + var container = domutil.closest(target, config.classname('.time-date')), + matches; + + if (!container) { + return false; + } + + matches = domutil.getClass(container).match(config.time.getViewIDRegExp); + + if (!matches || matches.length < 2) { + return false; + } + + return util.pick(this.timeGridView.children.items, Number(matches[1])); +}; + +/** + * @emits TimeMove#mousedown + * @param {object} mouseDownEventData - Drag#mousedown schedule data. + */ +TimeMove.prototype._onMouseDown = function(mouseDownEventData) { + var target = mouseDownEventData.target, + timeView = this.checkExpectCondition(target), + blockElement = domutil.closest(target, config.classname('.time-date-schedule-block')); + + if (!timeView || !blockElement) { + return; + } + + // EventTarget.target is not changed in mousemove event even if mouse is over the other element. + // It's different with other browsers(IE, Chrome, Safari) + if (util.browser.firefox) { + domevent.preventDefault(mouseDownEventData.originEvent); + } +}; + +/** + * @emits TimeMove#timeMoveDragstart + * @param {object} dragStartEventData - Drag#dragStart schedule data. + */ +TimeMove.prototype._onDragStart = function(dragStartEventData) { + var target = dragStartEventData.target, + timeView = this.checkExpectCondition(target), + blockElement = domutil.closest(target, config.classname('.time-date-schedule-block')), + getScheduleDataFunc, + scheduleData, + ctrl = this.baseController, + targetModelID, + targetModel; + + if (!timeView || !blockElement) { + return; + } + + targetModelID = domutil.getData(blockElement, 'id'); + targetModel = ctrl.schedules.items[targetModelID]; + + if (targetModel.isReadOnly) { + return; + } + + getScheduleDataFunc = this._getScheduleDataFunc = this._retriveScheduleData(timeView); + scheduleData = this._dragStart = getScheduleDataFunc( + dragStartEventData.originEvent, { + targetModelID: targetModelID, + model: targetModel + } + ); + + this.dragHandler.on({ + drag: this._onDrag, + dragEnd: this._onDragEnd, + click: this._onClick + }, this); + + /** + * @event TimeMove#timeMoveDragstart + * @type {object} + * @property {HTMLElement} target - current target in mouse event object. + * @property {Time} relatedView - time view instance related with mouse position. + * @property {MouseEvent} originEvent - mouse event object. + * @property {number} mouseY - mouse Y px mouse event. + * @property {number} gridY - grid Y index value related with mouseY value. + * @property {number} timeY - milliseconds value of mouseY points. + * @property {number} nearestGridY - nearest grid index related with mouseY value. + * @property {number} nearestGridTimeY - time value for nearestGridY. + * @property {string} targetModelID - The model unique id emitted move schedule. + * @property {Schedule} model - model instance + */ + this.fire('timeMoveDragstart', scheduleData); +}; + +/** + * @emits TimeMove#timeMoveDrag + * @param {MouseEvent} dragEventData - mousemove event object + * @param {string} [overrideEventName] - name of emitting event to override. + * @param {function} [revise] - supply function for revise schedule data before emit. + */ +TimeMove.prototype._onDrag = function(dragEventData, overrideEventName, revise) { + var getScheduleDataFunc = this._getScheduleDataFunc, + timeView = this._getTimeView(dragEventData.target), + dragStart = this._dragStart, + scheduleData; + + if (!timeView || !getScheduleDataFunc || !dragStart) { + return; + } + + scheduleData = getScheduleDataFunc(dragEventData.originEvent, { + currentView: timeView, + targetModelID: dragStart.targetModelID + }); + + if (revise) { + revise(scheduleData); + } + + /** + * @event TimeMove#timeMoveDrag + * @type {object} + * @property {HTMLElement} target - current target in mouse event object. + * @property {Time} relatedView - time view instance related with drag start position. + * @property {MouseEvent} originEvent - mouse event object. + * @property {number} mouseY - mouse Y px mouse event. + * @property {number} gridY - grid Y index value related with mouseY value. + * @property {number} timeY - milliseconds value of mouseY points. + * @property {number} nearestGridY - nearest grid index related with mouseY value. + * @property {number} nearestGridTimeY - time value for nearestGridY. + * @property {Time} currentView - time view instance related with current mouse position. + * @property {string} targetModelID - The model unique id emitted move schedule. + */ + this.fire(overrideEventName || 'timeMoveDrag', scheduleData); +}; + +/** + * Update model instance by dragend event results. + * @fires TimeMove#beforeUpdateSchedule + * @param {object} scheduleData - schedule data from TimeMove#timeMoveDragend + */ +TimeMove.prototype._updateSchedule = function(scheduleData) { + var ctrl = this.baseController, + modelID = scheduleData.targetModelID, + range = scheduleData.nearestRange, + timeDiff = range[1] - range[0], + dateDiff = 0, + schedule = ctrl.schedules.items[modelID], + relatedView = scheduleData.relatedView, + currentView = scheduleData.currentView, + newStarts, + newEnds; + + if (!schedule || !currentView) { + return; + } + + timeDiff -= datetime.millisecondsFrom('minutes', 30); + newStarts = new TZDate(schedule.getStarts()).addMilliseconds(timeDiff); + newEnds = new TZDate(schedule.getEnds()).addMilliseconds(timeDiff); + + if (currentView) { + dateDiff = currentView.getDate() - relatedView.getDate(); + } + + newStarts.addMilliseconds(dateDiff); + newEnds.addMilliseconds(dateDiff); + + /** + * @event TimeMove#beforeUpdateSchedule + * @type {object} + * @property {Schedule} schedule - The original schedule instance + * @property {Date} start - Deprecated: start time to update + * @property {Date} end - Deprecated: end time to update + * @property {object} changes - start and end time to update + * @property {Date} start - start time to update + * @property {Date} end - end time to update + */ + this.fire('beforeUpdateSchedule', { + schedule: schedule, + changes: { + start: newStarts, + end: newEnds + }, + start: newStarts, + end: newEnds + }); +}; + +/** + * @emits TimeMove#timeMoveDragend + * @param {MouseEvent} dragEndEventData - mouseup mouse event object. + */ +TimeMove.prototype._onDragEnd = function(dragEndEventData) { + var getScheduleDataFunc = this._getScheduleDataFunc, + currentView = this._getTimeView(dragEndEventData.target), + dragStart = this._dragStart, + scheduleData; + + this.dragHandler.off({ + drag: this._onDrag, + dragEnd: this._onDragEnd, + click: this._onClick + }, this); + + if (!getScheduleDataFunc || !dragStart) { + return; + } + + scheduleData = getScheduleDataFunc(dragEndEventData.originEvent, { + currentView: currentView, + targetModelID: dragStart.targetModelID + }); + + scheduleData.range = [ + dragStart.timeY, + new TZDate(scheduleData.timeY).addMinutes(30) + ]; + + scheduleData.nearestRange = [ + dragStart.nearestGridTimeY, + new TZDate(scheduleData.nearestGridTimeY).addMinutes(30) + ]; + + this._updateSchedule(scheduleData); + + /** + * @event TimeMove#timeMoveDragend + * @type {object} + * @property {HTMLElement} target - current target in mouse event object. + * @property {Time} relatedView - time view instance related with drag start position. + * @property {Time} currentView - time view instance related with current mouse position. + * @property {MouseEvent} originEvent - mouse event object. + * @property {number} mouseY - mouse Y px mouse event. + * @property {number} gridY - grid Y index value related with mouseY value. + * @property {number} timeY - milliseconds value of mouseY points. + * @property {number} nearestGridY - nearest grid index related with mouseY value. + * @property {number} nearestGridTimeY - time value for nearestGridY. + * @property {string} targetModelID - The model unique id emitted move schedule. + * @property {number[]} range - milliseconds range between drag start and end. + * @property {number[]} nearestRange - milliseconds range related with nearestGridY between start and end. + */ + this.fire('timeMoveDragend', scheduleData); +}; + +/** + * @emits TimeMove#timeMoveClick + * @param {MouseEvent} clickEventData - click mouse event object. + */ +TimeMove.prototype._onClick = function(clickEventData) { + var getScheduleDataFunc = this._getScheduleDataFunc, + dragStart = this._dragStart, + scheduleData; + + this.dragHandler.off({ + drag: this._onDrag, + dragEnd: this._onDragEnd, + click: this._onClick + }, this); + + if (!getScheduleDataFunc || !dragStart) { + return; + } + + scheduleData = getScheduleDataFunc(clickEventData.originEvent, { + targetModelID: dragStart.targetModelID + }); + + /** + * @event TimeMove#timeMoveClick + * @type {object} + * @property {HTMLElement} target - current target in mouse event object. + * @property {Time} relatedView - time view instance related with drag start position. + * @property {MouseEvent} originEvent - mouse event object. + * @property {number} mouseY - mouse Y px mouse event. + * @property {number} gridY - grid Y index value related with mouseY value. + * @property {number} timeY - milliseconds value of mouseY points. + * @property {number} nearestGridY - nearest grid index related with mouseY value. + * @property {number} nearestGridTimeY - time value for nearestGridY. + * @property {string} targetModelID - The model unique id emitted move schedule. + */ + this.fire('timeMoveClick', scheduleData); +}; + +timeCore.mixin(TimeMove); +util.CustomEvents.mixin(TimeMove); + +module.exports = TimeMove; + + +/***/ }), + +/***/ "./src/js/handler/time/moveGuide.js": +/*!******************************************!*\ + !*** ./src/js/handler/time/moveGuide.js ***! + \******************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; +/* WEBPACK VAR INJECTION */(function(global) {/** + * @fileoverview Module for Time.Move effect while dragging. + * @author NHN FE Development Lab + */ + + +var util = __webpack_require__(/*! tui-code-snippet */ "tui-code-snippet"); +var config = __webpack_require__(/*! ../../config */ "./src/js/config.js"); +var domutil = __webpack_require__(/*! ../../common/domutil */ "./src/js/common/domutil.js"); +var reqAnimFrame = __webpack_require__(/*! ../../common/reqAnimFrame */ "./src/js/common/reqAnimFrame.js"); +var ratio = __webpack_require__(/*! ../../common/common */ "./src/js/common/common.js").ratio; +var FloatingLayer = __webpack_require__(/*! ../../common/floatingLayer */ "./src/js/common/floatingLayer.js"); +var tmpl = __webpack_require__(/*! ../../view/template/week/timeMoveGuide.hbs */ "./src/js/view/template/week/timeMoveGuide.hbs"); +var TZDate = __webpack_require__(/*! ../../common/timezone */ "./src/js/common/timezone.js").Date; +var Schedule = __webpack_require__(/*! ../../model/schedule */ "./src/js/model/schedule.js"); +var datetime = __webpack_require__(/*! ../../common/datetime */ "./src/js/common/datetime.js"); +var common = __webpack_require__(/*! ../../common/common */ "./src/js/common/common.js"); + +var SCHEDULE_MIN_DURATION = datetime.MILLISECONDS_SCHEDULE_MIN_DURATION; + +/** + * Class for Time.Move effect. + * @constructor + * @param {TimeMove} timeMove - The instance of TimeMove. + */ +function TimeMoveGuide(timeMove) { + /** + * @type {FloatingLayer} + */ + this._guideLayer = null; + + /** + * @Type {Schedule} + */ + this._model = null; + + /** + * @type {object} + */ + this._viewModel = null; + + /** + * @type {object} + */ + this._lastDrag = null; + + /** + * @type {HTMLElement} + */ + this.guideElement = null; + + /** + * @type {TimeMove} + */ + this.timeMove = timeMove; + + /** + * @type {HTMLElement} + */ + this._container = null; + + /** + * @type {function} + */ + this._getTopFunc = null; + + /** + * @type {number} + */ + this._startGridY = 0; + + /** + * @type {number} + */ + this._startTopPixel = 0; + + timeMove.on({ + 'timeMoveDragstart': this._onDragStart, + 'timeMoveDrag': this._onDrag, + 'timeMoveDragend': this._clearGuideElement, + 'timeMoveClick': this._clearGuideElement + }, this); +} + +/** + * Destroy method + */ +TimeMoveGuide.prototype.destroy = function() { + this._clearGuideElement(); + this.timeMove.off(this); + if (this._guideLayer) { + this._guideLayer.destroy(); + } + this.guideElement = this.timeMove = this._container = this._guideLayer = this._lastDrag = + this._getTopFunc = this._startGridY = this._startTopPixel = this._viewModel = null; +}; + +/** + * Clear guide element. + */ +TimeMoveGuide.prototype._clearGuideElement = function() { + if (!util.browser.msie) { + domutil.removeClass(global.document.body, config.classname('dragging')); + } + if (this._guideLayer) { + this._guideLayer.destroy(); + } + + this._showOriginScheduleBlocks(); + + this.guideElement = this._getTopFunc = this._guideLayer = this._model = this._lastDrag = + this._startGridY = this._startTopPixel = this._viewModel = null; +}; + +/** + * Dim element blocks + * @param {number} modelID - Schedule model instance ID + */ +TimeMoveGuide.prototype._hideOriginScheduleBlocks = function() { + var className = config.classname('time-date-schedule-block-dragging-dim'); + if (this.guideElement) { + domutil.addClass(this.guideElement, className); + } +}; + +/** + * Show element blocks + */ +TimeMoveGuide.prototype._showOriginScheduleBlocks = function() { + var className = config.classname('time-date-schedule-block-dragging-dim'); + if (this.guideElement) { + domutil.removeClass(this.guideElement, className); + } +}; + +/** + * Refresh guide element + * @param {string} top - guide element's style top. + * @param {Schedule} model - updated model + * @param {object} viewModel - view model + */ +TimeMoveGuide.prototype._refreshGuideElement = function(top, model, viewModel) { + var self = this; + + reqAnimFrame.requestAnimFrame(function() { + if (!self._guideLayer) { + return; + } + self._guideLayer.setPosition(0, top); + self._guideLayer.setContent(tmpl(util.extend({model: model}, viewModel))); + }); +}; + +/** + * TimeMove#timeMoveDragstart event handler + * @param {object} dragStartEventData - dragstart event data + */ +TimeMoveGuide.prototype._onDragStart = function(dragStartEventData) { + var guideElement = domutil.closest( + dragStartEventData.target, + config.classname('.time-date-schedule-block') + ); + var duration, modelDuration, goingDuration, comingDuration; + + if (!guideElement) { + return; + } + + this._startTopPixel = parseFloat(guideElement.style.top); + this._startGridY = dragStartEventData.nearestGridY; + this.guideElement = guideElement; + this._container = dragStartEventData.relatedView.container; + + this._model = util.extend( + Schedule.create(dragStartEventData.model), + dragStartEventData.model + ); + + modelDuration = this._model.duration(); + modelDuration = modelDuration > SCHEDULE_MIN_DURATION ? modelDuration : SCHEDULE_MIN_DURATION; + goingDuration = datetime.millisecondsFrom('minutes', this._model.goingDuration); + comingDuration = datetime.millisecondsFrom('minutes', this._model.comingDuration); + duration = goingDuration + modelDuration + comingDuration; + + this._lastDrag = dragStartEventData; + this._viewModel = { + hasGoingDuration: goingDuration > 0, + hasComingDuration: comingDuration > 0, + goingDurationHeight: common.ratio(duration, goingDuration, 100), + modelDurationHeight: common.ratio(duration, modelDuration, 100), + comingDurationHeight: common.ratio(duration, comingDuration, 100) + }; + + this._resetGuideLayer(); + this._hideOriginScheduleBlocks(); +}; + +/** + * TimeMove#timeMoveDrag event handler + * @param {object} dragEventData - drag event data + */ +TimeMoveGuide.prototype._onDrag = function(dragEventData) { + var timeView = dragEventData.currentView, + viewOptions = timeView.options, + viewHeight = timeView.getViewBound().height, + guideHeight = parseFloat(this.guideElement.style.height), + hourLength = viewOptions.hourEnd - viewOptions.hourStart, + gridYOffset = dragEventData.nearestGridY - this._startGridY, + gridYOffsetPixel = ratio(hourLength, viewHeight, gridYOffset), + gridDiff = dragEventData.nearestGridY - this._lastDrag.nearestGridY, + bottomLimit, + top; + + if (!util.browser.msie) { + domutil.addClass(global.document.body, config.classname('dragging')); + } + + if (this._container !== timeView.container) { + this._container = timeView.container; + this._resetGuideLayer(); + } + + top = this._startTopPixel + gridYOffsetPixel; + bottomLimit = viewHeight - guideHeight; + + top = Math.max(top, 0); + top = Math.min(top, bottomLimit); + + // update time + this._model.start = new TZDate(this._model.getStarts()).addMinutes(datetime.minutesFromHours(gridDiff)); + this._model.end = new TZDate(this._model.getEnds()).addMinutes(datetime.minutesFromHours(gridDiff)); + this._lastDrag = dragEventData; + + this._refreshGuideElement(top, this._model, this._viewModel); +}; + +TimeMoveGuide.prototype._resetGuideLayer = function() { + if (this._guideLayer) { + this._guideLayer.destroy(); + this._guideLayer = null; + } + this._guideLayer = new FloatingLayer(null, this._container); + this._guideLayer.setSize(this._container.getBoundingClientRect().width, this.guideElement.style.height); + this._guideLayer.setPosition(0, this.guideElement.style.top); + this._guideLayer.setContent(tmpl(util.extend({model: this._model}, this._viewModel))); + this._guideLayer.show(); +}; + +module.exports = TimeMoveGuide; + +/* WEBPACK VAR INJECTION */}.call(this, __webpack_require__(/*! ./../../../../node_modules/webpack/buildin/global.js */ "./node_modules/webpack/buildin/global.js"))) + +/***/ }), + +/***/ "./src/js/handler/time/resize.js": +/*!***************************************!*\ + !*** ./src/js/handler/time/resize.js ***! + \***************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; +/** + * @fileoverview Handling resize schedules from drag handler and time grid view + * @author NHN FE Development Lab + */ + + +var util = __webpack_require__(/*! tui-code-snippet */ "tui-code-snippet"); +var config = __webpack_require__(/*! ../../config */ "./src/js/config.js"); +var datetime = __webpack_require__(/*! ../../common/datetime */ "./src/js/common/datetime.js"); +var domutil = __webpack_require__(/*! ../../common/domutil */ "./src/js/common/domutil.js"); +var TZDate = __webpack_require__(/*! ../../common/timezone */ "./src/js/common/timezone.js").Date; +var common = __webpack_require__(/*! ../../common/common */ "./src/js/common/common.js"); +var timeCore = __webpack_require__(/*! ./core */ "./src/js/handler/time/core.js"); +var TimeResizeGuide = __webpack_require__(/*! ./resizeGuide */ "./src/js/handler/time/resizeGuide.js"); + +/** + * @constructor + * @implements {Handler} + * @mixes timeCore + * @mixes util.CustomEvents + * @param {Drag} [dragHandler] - Drag handler instance. + * @param {TimeGrid} [timeGridView] - TimeGrid view instance. + * @param {Base} [baseController] - Base controller instance. + */ +function TimeResize(dragHandler, timeGridView, baseController) { + /** + * @type {Drag} + */ + this.dragHandler = dragHandler; + + /** + * @type {TimeGrid} + */ + this.timeGridView = timeGridView; + + /** + * @type {Base} + */ + this.baseController = baseController; + + /** + * @type {function} + */ + this._getScheduleDataFunc = null; + + /** + * @type {object} + */ + this._dragStart = null; + + /** + * @type {TimeResizeGuide} + */ + this._guide = new TimeResizeGuide(this); + + dragHandler.on('dragStart', this._onDragStart, this); +} + +/** + * Destroy method + */ +TimeResize.prototype.destroy = function() { + this._guide.destroy(); + this.dragHandler.off(this); + this.dragHandler = this.timeGridView = this.baseController = + this._getScheduleDataFunc = this._dragStart = this._guide = null; +}; + +/** + * @param {HTMLElement} target - element to check condition. + * @returns {object|boolean} - return time view instance or false + */ +TimeResize.prototype.checkExpectCondition = function(target) { + var container, + matches; + + if (!domutil.hasClass(target, config.classname('time-resize-handle'))) { + return false; + } + + container = domutil.closest(target, config.classname('.time-date')); + + if (!container) { + return false; + } + + matches = domutil.getClass(container).match(config.time.getViewIDRegExp); + + if (!matches || matches.length < 2) { + return false; + } + + return util.pick(this.timeGridView.children.items, Number(matches[1])); +}; + +/** + * @emits TimeResize#timeResizeDragstart + * @param {object} dragStartEventData - event data of Drag#dragstart + */ +TimeResize.prototype._onDragStart = function(dragStartEventData) { + var target = dragStartEventData.target, + timeView = this.checkExpectCondition(target), + blockElement = domutil.closest(target, config.classname('.time-date-schedule-block')), + ctrl = this.baseController, + targetModelID, + getScheduleDataFunc, + scheduleData; + + if (!timeView || !blockElement) { + return; + } + + targetModelID = domutil.getData(blockElement, 'id'); + getScheduleDataFunc = this._getScheduleDataFunc = this._retriveScheduleData(timeView); + scheduleData = this._dragStart = getScheduleDataFunc( + dragStartEventData.originEvent, { + targetModelID: targetModelID, + schedule: ctrl.schedules.items[targetModelID] + } + ); + + this.dragHandler.on({ + drag: this._onDrag, + dragEnd: this._onDragEnd, + click: this._onClick + }, this); + + /** + * @event TimeResize#timeResizeDragstart + * @type {object} + * @property {HTMLElement} target - current target in mouse event object. + * @property {Time} relatedView - time view instance related with mouse position. + * @property {MouseEvent} originEvent - mouse event object. + * @property {number} mouseY - mouse Y px mouse event. + * @property {number} gridY - grid Y index value related with mouseY value. + * @property {number} timeY - milliseconds value of mouseY points. + * @property {number} nearestGridY - nearest grid index related with mouseY value. + * @property {number} nearestGridTimeY - time value for nearestGridY. + * @property {string} targetModelID - The model unique id emitted move schedule. + * @property {Schedule} schedule - schedule data + */ + this.fire('timeResizeDragstart', scheduleData); +}; + +/** + * Drag#drag event handler + * @emits TimeResize#timeResizeDrag + * @param {object} dragEventData - event data of Drag#drag custom event. + * @param {string} [overrideEventName] - override emitted event name when supplied. + * @param {function} [revise] - supply function for revise schedule data before emit. + */ +TimeResize.prototype._onDrag = function(dragEventData, overrideEventName, revise) { + var getScheduleDataFunc = this._getScheduleDataFunc, + startScheduleData = this._dragStart, + scheduleData; + + if (!getScheduleDataFunc || !startScheduleData) { + return; + } + + scheduleData = getScheduleDataFunc(dragEventData.originEvent, { + targetModelID: startScheduleData.targetModelID + }); + + if (revise) { + revise(scheduleData); + } + + /** + * @event TimeResize#timeResizeDrag + * @type {object} + * @property {HTMLElement} target - current target in mouse event object. + * @property {Time} relatedView - time view instance related with drag start position. + * @property {MouseEvent} originEvent - mouse event object. + * @property {number} mouseY - mouse Y px mouse event. + * @property {number} gridY - grid Y index value related with mouseY value. + * @property {number} timeY - milliseconds value of mouseY points. + * @property {number} nearestGridY - nearest grid index related with mouseY value. + * @property {number} nearestGridTimeY - time value for nearestGridY. + * @property {string} targetModelID - The model unique id emitted move schedule. + */ + this.fire(overrideEventName || 'timeResizeDrag', scheduleData); +}; + +/** + * Update model instance by dragend event results. + * @fires TimeResize#beforeUpdateSchedule + * @param {object} scheduleData - schedule data from TimeResize#timeResizeDragend + */ +TimeResize.prototype._updateSchedule = function(scheduleData) { + var ctrl = this.baseController, + modelID = scheduleData.targetModelID, + range = scheduleData.nearestRange, + timeDiff = range[1] - range[0], + schedule = ctrl.schedules.items[modelID], + relatedView = scheduleData.relatedView, + dateEnd, + newEnds, + baseDate; + var changes; + + if (!schedule) { + return; + } + + timeDiff -= datetime.millisecondsFrom('minutes', 30); + + baseDate = new TZDate(relatedView.getDate()); + dateEnd = datetime.end(baseDate); + newEnds = new TZDate(schedule.getEnds()).addMilliseconds(timeDiff); + + if (newEnds > dateEnd) { + newEnds = new TZDate(dateEnd); + } + + if (newEnds.getTime() - schedule.getStarts().getTime() < datetime.millisecondsFrom('minutes', 30)) { + newEnds = new TZDate(schedule.getStarts()).addMinutes(30); + } + + changes = common.getScheduleChanges( + schedule, + ['end'], + {end: newEnds} + ); + + /** + * @event TimeResize#beforeUpdateSchedule + * @type {object} + * @property {Schedule} schedule - The original schedule instance + * @property {Date} start - Deprecated: start time to update + * @property {Date} end - Deprecated: end time to update + * @property {object} changes - end time to update + * @property {date} end - end time to update + */ + this.fire('beforeUpdateSchedule', { + schedule: schedule, + changes: changes, + start: schedule.getStarts(), + end: newEnds + }); +}; + +/** + * Drag#dragEnd event handler + * @emits TimeResize#timeResizeDragend + * @param {MouseEvent} dragEndEventData - Mouse event of Drag#dragEnd custom event. + */ +TimeResize.prototype._onDragEnd = function(dragEndEventData) { + var getScheduleDataFunc = this._getScheduleDataFunc, + dragStart = this._dragStart, + scheduleData; + + this.dragHandler.off({ + drag: this._onDrag, + dragEnd: this._onDragEnd, + click: this._onClick + }, this); + + if (!getScheduleDataFunc || !dragStart) { + return; + } + + scheduleData = getScheduleDataFunc(dragEndEventData.originEvent, { + targetModelID: dragStart.targetModelID + }); + + scheduleData.range = [ + dragStart.timeY, + new TZDate(scheduleData.timeY).addMinutes(30) + ]; + + scheduleData.nearestRange = [ + dragStart.nearestGridTimeY, + scheduleData.nearestGridTimeY.addMinutes(30) + ]; + + this._updateSchedule(scheduleData); + + /** + * @event TimeResize#timeResizeDragend + * @type {object} + * @property {HTMLElement} target - current target in mouse event object. + * @property {Time} relatedView - time view instance related with drag start position. + * @property {MouseEvent} originEvent - mouse event object. + * @property {number} mouseY - mouse Y px mouse event. + * @property {number} gridY - grid Y index value related with mouseY value. + * @property {number} timeY - milliseconds value of mouseY points. + * @property {number} nearestGridY - nearest grid index related with mouseY value. + * @property {number} nearestGridTimeY - time value for nearestGridY. + * @property {string} targetModelID - The model unique id emitted move schedule. + * @property {number[]} range - milliseconds range between drag start and end. + * @property {number[]} nearestRange - milliseconds range related with nearestGridY between start and end. + */ + this.fire('timeResizeDragend', scheduleData); + + this._getScheduleDataFunc = this._dragStart = null; +}; + +/** + * @emits TimeResize#timeResizeClick + */ +TimeResize.prototype._onClick = function() { + this.dragHandler.off({ + drag: this._onDrag, + dragEnd: this._onDragEnd, + click: this._onClick + }, this); + + /** + * @event TimeResize#timeResizeClick + */ + this.fire('timeResizeClick'); +}; + +timeCore.mixin(TimeResize); +util.CustomEvents.mixin(TimeResize); + +module.exports = TimeResize; + + +/***/ }), + +/***/ "./src/js/handler/time/resizeGuide.js": +/*!********************************************!*\ + !*** ./src/js/handler/time/resizeGuide.js ***! + \********************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; +/* WEBPACK VAR INJECTION */(function(global) {/** + * @fileoverview Module for Time.Resize effect while dragging. + * @author NHN FE Development Lab + */ + + +var util = __webpack_require__(/*! tui-code-snippet */ "tui-code-snippet"); +var config = __webpack_require__(/*! ../../config */ "./src/js/config.js"); +var domutil = __webpack_require__(/*! ../../common/domutil */ "./src/js/common/domutil.js"); +var reqAnimFrame = __webpack_require__(/*! ../../common/reqAnimFrame */ "./src/js/common/reqAnimFrame.js"); +var ratio = __webpack_require__(/*! ../../common/common */ "./src/js/common/common.js").ratio; +var datetime = __webpack_require__(/*! ../../common/datetime */ "./src/js/common/datetime.js"); + +/** + * Class for Time.Resize effect. + * @constructor + * @param {TimeResize} timeResize - the instance of TimeResize handler. + */ +function TimeResizeGuide(timeResize) { + /** + * @type {HTMLElement} + */ + this.guideElement = null; + + /** + * @type {TimeResize} + */ + this.timeResize = timeResize; + + /** + * @type {function} + */ + this._getTopFunc = null; + + /** + * @type {HTMLElement} + */ + this._originScheduleElement = null; + + /** + * @type {number} + */ + this._startTopPixel = 0; + + /** + * @type {number} + */ + this._startHeightPixel = 0; + + /** + * @type {number} + */ + this._startGridY = 0; + + /** + * @type {Schedule} + */ + this._schedule = null; + + timeResize.on({ + 'timeResizeDragstart': this._onDragStart, + 'timeResizeDrag': this._onDrag, + 'timeResizeDragend': this._clearGuideElement, + 'timeResizeClick': this._clearGuideElement + }, this); +} + +/** + * Destroy method + */ +TimeResizeGuide.prototype.destroy = function() { + this._clearGuideElement(); + this.timeResize.off(this); + this.guideElement = this.timeResize = this._getTopFunc = + this._originScheduleElement = this._startHeightPixel = + this._startGridY = this._startTopPixel = null; +}; + +/** + * Clear guide element. + */ +TimeResizeGuide.prototype._clearGuideElement = function() { + var guideElement = this.guideElement, + originElement = this._originScheduleElement; + + if (!util.browser.msie) { + domutil.removeClass(global.document.body, config.classname('resizing')); + } + + if (originElement) { + originElement.style.display = 'block'; + } + + domutil.remove(guideElement); + + this.guideElement = this._getTopFunc = this._originScheduleElement = + this._startHeightPixel = this._startGridY = this._startTopPixel = null; +}; + +/** + * Refresh guide element + * @param {number} guideHeight - guide element's style height. + * @param {number} minTimeHeight - time element's min height + * @param {number} timeHeight - time element's height. + */ +TimeResizeGuide.prototype._refreshGuideElement = function(guideHeight, minTimeHeight, timeHeight) { + var guideElement = this.guideElement; + var timeElement; + + if (!guideElement) { + return; + } + + timeElement = domutil.find(config.classname('.time-schedule-content-time'), guideElement); + + reqAnimFrame.requestAnimFrame(function() { + guideElement.style.height = guideHeight + 'px'; + guideElement.style.display = 'block'; + + if (timeElement) { + timeElement.style.height = timeHeight + 'px'; + timeElement.style.minHeight = minTimeHeight + 'px'; + } + }); +}; + +/** + * TimeMove#timeMoveDragstart event handler + * @param {object} dragStartEventData - dragstart event data + */ +TimeResizeGuide.prototype._onDragStart = function(dragStartEventData) { + var originElement = domutil.closest( + dragStartEventData.target, + config.classname('.time-date-schedule-block') + ), + schedule = dragStartEventData.schedule, + guideElement; + + if (!util.browser.msie) { + domutil.addClass(global.document.body, config.classname('resizing')); + } + + if (!originElement || !schedule) { + return; + } + + this._startGridY = dragStartEventData.nearestGridY; + this._startHeightPixel = parseFloat(originElement.style.height); + this._startTopPixel = parseFloat(originElement.style.top); + + this._originScheduleElement = originElement; + this._schedule = schedule; + + guideElement = this.guideElement = originElement.cloneNode(true); + domutil.addClass(guideElement, config.classname('time-guide-resize')); + + originElement.style.display = 'none'; + dragStartEventData.relatedView.container.appendChild(guideElement); +}; + +/** + * @param {object} dragEventData - event data from Drag#drag. + */ +TimeResizeGuide.prototype._onDrag = function(dragEventData) { + var timeView = dragEventData.relatedView, + viewOptions = timeView.options, + viewHeight = timeView.getViewBound().height, + hourLength = viewOptions.hourEnd - viewOptions.hourStart, + guideElement = this.guideElement, + guideTop = parseFloat(guideElement.style.top), + gridYOffset = dragEventData.nearestGridY - this._startGridY, + // hourLength : viewHeight = gridYOffset : X; + gridYOffsetPixel = ratio(hourLength, viewHeight, gridYOffset), + goingDuration = this._schedule.goingDuration, + modelDuration = this._schedule.duration() / datetime.MILLISECONDS_PER_MINUTES, + comingDuration = this._schedule.comingDuration, + minutesLength = hourLength * 60, + timeHeight, + timeMinHeight, + minHeight, + maxHeight, + height; + + height = (this._startHeightPixel + gridYOffsetPixel); + // at least large than 30min from schedule start time. + minHeight = guideTop + ratio(hourLength, viewHeight, 0.5); + minHeight -= this._startTopPixel; + timeMinHeight = minHeight; + minHeight += ratio(minutesLength, viewHeight, goingDuration) + ratio(minutesLength, viewHeight, comingDuration); + // smaller than 24h + maxHeight = viewHeight - guideTop; + + height = Math.max(height, minHeight); + height = Math.min(height, maxHeight); + + timeHeight = ratio(minutesLength, viewHeight, modelDuration) + gridYOffsetPixel; + + this._refreshGuideElement(height, timeMinHeight, timeHeight); +}; + +module.exports = TimeResizeGuide; + +/* WEBPACK VAR INJECTION */}.call(this, __webpack_require__(/*! ./../../../../node_modules/webpack/buildin/global.js */ "./node_modules/webpack/buildin/global.js"))) + +/***/ }), + +/***/ "./src/js/model/schedule.js": +/*!**********************************!*\ + !*** ./src/js/model/schedule.js ***! + \**********************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; +/* eslint complexity: 0 */ +/** + * @fileoverview Model of schedule. + * @author NHN FE Development Lab + */ + + +var util = __webpack_require__(/*! tui-code-snippet */ "tui-code-snippet"); +var tz = __webpack_require__(/*! ../common/timezone */ "./src/js/common/timezone.js"); +var datetime = __webpack_require__(/*! ../common/datetime */ "./src/js/common/datetime.js"); +var dirty = __webpack_require__(/*! ../common/dirty */ "./src/js/common/dirty.js"); +var model = __webpack_require__(/*! ../common/model */ "./src/js/common/model.js"); +var TZDate = tz.Date; +var MIN_TO_MS = 60 * 1000; + +var SCHEDULE_MIN_DURATION = datetime.MILLISECONDS_SCHEDULE_MIN_DURATION; + +/** + * Schedule category + * @readonly + * @enum {string} + */ +var SCHEDULE_CATEGORY = { + /** milestone */ + MILESTONE: 'milestone', + + /** task */ + TASK: 'task', + + /** all-day schedule */ + ALLDAY: 'allday', + + /** normal schedule */ + TIME: 'time' +}; + +/** + * Get duration by primary timezone + * @param {Date} start render start date + * @param {Date} end render end date + * @returns {number} duration + */ +function getDurationByPrimaryTimezone(start, end) { + var checkOffset = tz.isDifferentOffsetStartAndEndTime(start.getTime(), end.getTime()); + var isOffsetChanged = checkOffset.isOffsetChanged; + var duration = end - start; + + if (isOffsetChanged !== 0) { + duration += checkOffset.offsetDiff * MIN_TO_MS; + } + + return duration; +} + +/** + * Get duration by native timezone + * @param {TZDate} start render start date + * @param {TZDate} end render end date + * @returns {number} duration + */ +function getDurationByNativeTimezone(start, end) { + var startOffset = start.toDate().getTimezoneOffset(); + var endOffset = end.toDate().getTimezoneOffset(); + + return (end - start) + ((endOffset - startOffset) * MIN_TO_MS); +} + +/** + * The model of calendar schedules. + * @constructor + * @mixes dirty + * @mixes model + */ +function Schedule() { + /** + * `Optional` unique id for various use. + * @type {string} + */ + this.id = ''; + + /** + * title for schedule. + * @type {string} + */ + this.title = ''; + + /** + * body for schedule. + * @type {string} + */ + this.body = ''; + + /** + * is schedule is all day schedule? + * @type {boolean} + */ + this.isAllDay = false; + + /** + * schedule start + * @type {TZDate} + */ + this.start = null; + + /** + * schedule end + * @type {TZDate} + */ + this.end = null; + + /** + * schedule text color + * @type {string} + */ + this.color = '#000'; + + /** + * schedule block visibility + * @type {boolean} + */ + this.isVisible = true; + + /** + * schedule background color + * @type {string} + */ + this.bgColor = '#a1b56c'; + + /** + * schedule background color when dragging it + * @type {string} + */ + this.dragBgColor = '#a1b56c'; + + /** + * schedule left border color + * @type {string} + */ + this.borderColor = '#000'; + + /** + * calendar ID + * @type {string} + */ + this.calendarId = ''; + + /** + * Schedule category(milestone, task, allday, time) + * @type {string} + */ + this.category = ''; + + /** + * Classification of work schedules (before work, before lunch, before work) + * @type {string} + */ + this.dueDateClass = ''; + + /** + * Custom style for schedule element + * @type {string} + */ + this.customStyle = ''; + + /** + * in progress flag to do something + * @type {boolean} + */ + this.isPending = false; + + /** + * focused schedule flag + * @type {boolean} + */ + this.isFocused = false; + + /** + * read-only schedule flag + * @type {boolean} + */ + this.isReadOnly = false; + + /** + * private schedule + * @type {boolean} + */ + this.isPrivate = false; + + /** + * location + * @type {string} + */ + this.location = ''; + + /** + * attendees + * @type {Array.} + */ + this.attendees = []; + + /** + * recurrence rule + * @type {any} + */ + this.recurrenceRule = ''; + + /** + * state. 'Busy' is default. + * @type {string} + */ + this.state = ''; + + /** + * travelTime: going-Duration minutes + * @type {number} + */ + this.goingDuration = 0; + + /** + * travelTime: coming-Duration minutes + * @type {number} + */ + this.comingDuration = 0; + + /** + * Separate data storage space independent of rendering. + * @type {object} + */ + this.raw = null; + + // initialize model id + util.stamp(this); +} + +/********** + * static props + **********/ + +Schedule.schema = { + required: ['title'], + dateRange: ['start', 'end'] +}; + +/** + * create schedule model from json(object) data. + * @param {object} data object for model. + * @returns {Schedule} Schedule model instance. + */ +Schedule.create = function(data) { + var inst = new Schedule(); + inst.init(data); + + return inst; +}; + +/********** + * prototype props + **********/ + +/** + * Initialize schedule instance. + * @param {object} options options. + */ +Schedule.prototype.init = function(options) { + options = util.extend({}, options); + if (options.category === SCHEDULE_CATEGORY.ALLDAY) { + options.isAllDay = true; + } + + this.id = options.id || ''; + this.title = options.title || ''; + this.body = options.body || ''; + this.isAllDay = util.isExisty(options.isAllDay) ? options.isAllDay : false; + this.isVisible = util.isExisty(options.isVisible) ? options.isVisible : true; + + this.color = options.color || this.color; + this.bgColor = options.bgColor || this.bgColor; + this.dragBgColor = options.dragBgColor || this.dragBgColor; + this.borderColor = options.borderColor || this.borderColor; + this.calendarId = options.calendarId || ''; + this.category = options.category || ''; + this.dueDateClass = options.dueDateClass || ''; + this.customStyle = options.customStyle || ''; + this.location = options.location || ''; + this.attendees = options.attendees || []; + this.recurrenceRule = options.recurrenceRule || ''; + this.isPrivate = options.isPrivate || false; + this.isPending = options.isPending || false; + this.isFocused = options.isFocused || false; + this.isReadOnly = options.isReadOnly || false; + this.goingDuration = options.goingDuration || 0; + this.comingDuration = options.comingDuration || 0; + this.state = options.state || ''; + + if (this.isAllDay) { + this.setAllDayPeriod(options.start, options.end); + } else { + this.setTimePeriod(options.start, options.end); + } + + this.raw = options.raw || null; +}; + +Schedule.prototype.setAllDayPeriod = function(start, end) { + // If it is an all-day schedule, only the date information of the string is used. + if (util.isString(start) && start.length === 10) { + start = datetime.parse(start); + } else { + start = new TZDate(start || Date.now()); + } + + if (util.isString(end) && end.length === 10) { + end = datetime.parse(end); + end.setHours(23, 59, 59); + } else { + end = new TZDate(end || start); + } + + this.start = datetime.start(start); + this.end = datetime.renderEnd(start, end); +}; + +Schedule.prototype.setTimePeriod = function(start, end) { + this.start = new TZDate(start || Date.now()); + this.end = new TZDate(end || this.start); + + if (!end) { + this.end.setMinutes(this.end.getMinutes() + 30); + } +}; + +/** + * @returns {Date} render start date. + */ +Schedule.prototype.getStarts = function() { + return this.start; +}; + +/** + * @returns {Date} render end date. + */ +Schedule.prototype.getEnds = function() { + return this.end; +}; + +/** + * @returns {number} instance unique id. + */ +Schedule.prototype.cid = function() { + return util.stamp(this); +}; + +/** + * Check two schedule are equals (means title, isAllDay, start, end are same) + * @param {Schedule} schedule Schedule model instance to compare. + * @returns {boolean} Return false when not same. + */ +Schedule.prototype.equals = function(schedule) { + if (this.id !== schedule.id) { + return false; + } + + if (this.title !== schedule.title) { + return false; + } + + if (this.body !== schedule.body) { + return false; + } + + if (this.isAllDay !== schedule.isAllDay) { + return false; + } + + if (datetime.compare(this.getStarts(), schedule.getStarts()) !== 0) { + return false; + } + + if (datetime.compare(this.getEnds(), schedule.getEnds()) !== 0) { + return false; + } + + if (this.color !== schedule.color) { + return false; + } + + if (this.bgColor !== schedule.bgColor) { + return false; + } + + if (this.dragBgColor !== schedule.dragBgColor) { + return false; + } + + if (this.borderColor !== schedule.borderColor) { + return false; + } + + return true; +}; + +/** + * return duration between start and end. + * @returns {Date} duration (UTC) + */ +Schedule.prototype.duration = function() { + var start = this.getStarts(), + end = this.getEnds(), + duration; + var hasPrimaryTimezoneCustomSetting = tz.hasPrimaryTimezoneCustomSetting(); + + if (this.isAllDay) { + duration = datetime.end(end) - datetime.start(start); + } else if (hasPrimaryTimezoneCustomSetting && tz.isPrimaryUsingDSTTimezone()) { + duration = getDurationByPrimaryTimezone(start, end); + } else if (hasPrimaryTimezoneCustomSetting && tz.isNativeOsUsingDSTTimezone()) { + duration = getDurationByNativeTimezone(start, end); + } else { + duration = end - start; + } + + return duration; +}; + +/** + * Returns true if the given Schedule coincides with the same time as the + * calling Schedule. + * @param {Schedule} schedule The other schedule to compare with this Schedule. + * @returns {boolean} If the other schedule occurs within the same time as the first object. + */ +Schedule.prototype.collidesWith = function(schedule) { + var ownStarts = this.getStarts(), + ownEnds = this.getEnds(), + start = schedule.getStarts(), + end = schedule.getEnds(); + var ownGoingDuration = datetime.millisecondsFrom('minutes', this.goingDuration), + ownComingDuration = datetime.millisecondsFrom('minutes', this.comingDuration), + goingDuration = datetime.millisecondsFrom('minutes', schedule.goingDuration), + comingDuration = datetime.millisecondsFrom('minutes', schedule.comingDuration); + + if (Math.abs(ownEnds - ownStarts) < SCHEDULE_MIN_DURATION) { + ownEnds += SCHEDULE_MIN_DURATION; + } + + if (Math.abs(end - start) < SCHEDULE_MIN_DURATION) { + end += SCHEDULE_MIN_DURATION; + } + + ownStarts -= ownGoingDuration; + ownEnds += ownComingDuration; + start -= goingDuration; + end += comingDuration; + + if ( + (start > ownStarts && start < ownEnds) || + (end > ownStarts && end < ownEnds) || + (start <= ownStarts && end >= ownEnds) + ) { + return true; + } + + return false; +}; + +model.mixin(Schedule.prototype); +dirty.mixin(Schedule.prototype); + +module.exports = Schedule; + + +/***/ }), + +/***/ "./src/js/model/viewModel/scheduleViewModel.js": +/*!*****************************************************!*\ + !*** ./src/js/model/viewModel/scheduleViewModel.js ***! + \*****************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; +/** + * @fileoverview Model for views + * @author NHN FE Development Lab + */ + + +var util = __webpack_require__(/*! tui-code-snippet */ "tui-code-snippet"); +var datetime = __webpack_require__(/*! ../../common/datetime */ "./src/js/common/datetime.js"); + +var SCHEDULE_MIN_DURATION = datetime.MILLISECONDS_SCHEDULE_MIN_DURATION; + +/** + * Schedule ViewModel + * @constructor + * @param {Schedule} schedule Schedule instance. + */ +function ScheduleViewModel(schedule) { + /** + * The model of schedule. + * @type {Schedule} + */ + this.model = schedule; + + /** + * @type {number} + */ + this.top = 0; + + /** + * @type {number} + */ + this.left = 0; + + /** + * @type {number} + */ + this.width = 0; + + /** + * @type {number} + */ + this.height = 0; + + /** + * Represent schedule has collide with other schedules when rendering. + * @type {boolean} + */ + this.hasCollide = false; + + /** + * Extra space at rigth side of this schedule. + * @type {number} + */ + this.extraSpace = 0; + + /** + * represent this schedule block is not visible after rendered. + * + * in month view, some viewmodel in date need to hide when already rendered before dates. + * + * set true then it just shows empty space. + * @type {boolean} + */ + this.hidden = false; + + /** + * whether the schedule includes multiple dates + */ + this.hasMultiDates = false; + + /** + * represent render start date used at rendering. + * + * if set null then use model's 'start' property. + * @type {TZDate} + */ + this.renderStarts = null; + + /** + * whether the actual start-date is before the render-start-date + * @type {boolean} + */ + this.exceedLeft = false; + + /** + * represent render end date used at rendering. + * + * if set null then use model's 'end' property. + * @type {TZDate} + */ + this.renderEnds = null; + + /** + * whether the actual end-date is after the render-end-date + * @type {boolean} + */ + this.exceedRight = false; +} + +/********** + * static props + **********/ + +/** + * ScheduleViewModel factory method. + * @param {Schedule} schedule Schedule instance. + * @returns {ScheduleViewModel} ScheduleViewModel instance. + */ +ScheduleViewModel.create = function(schedule) { + return new ScheduleViewModel(schedule); +}; + +/********** + * prototype props + **********/ + +/** + * return renderStarts property to render properly when specific schedule that exceed rendering date range. + * + * if renderStarts is not set. return model's start property. + * @override + * @returns {Date} render start date. + */ +ScheduleViewModel.prototype.getStarts = function() { + if (this.renderStarts) { + return this.renderStarts; + } + + return this.model.start; +}; + +/** + * return renderStarts property to render properly when specific schedule that exceed rendering date range. + * + * if renderEnds is not set. return model's end property. + * @override + * @returns {Date} render end date. + */ +ScheduleViewModel.prototype.getEnds = function() { + if (this.renderEnds) { + return this.renderEnds; + } + + return this.model.end; +}; + +/** + * @returns {number} unique number for model. + */ +ScheduleViewModel.prototype.cid = function() { + return util.stamp(this.model); +}; + +/** + * Shadowing valueOf method for schedule sorting. + * @returns {Schedule} The model of schedule. + */ +ScheduleViewModel.prototype.valueOf = function() { + return this.model; +}; + +/** + * Link duration method + * @returns {number} Schedule#duration result. + */ +ScheduleViewModel.prototype.duration = function() { + return this.model.duration(); +}; + +/** + * Link collidesWith method + * @param {Schedule|ScheduleViewModel} viewModel - Model or viewmodel instance of Schedule. + * @returns {boolean} Schedule#collidesWith result. + */ +ScheduleViewModel.prototype.collidesWith = function(viewModel) { + var ownStarts = this.getStarts(), + ownEnds = this.getEnds(), + start = viewModel.getStarts(), + end = viewModel.getEnds(); + var ownGoingDuration = datetime.millisecondsFrom('minutes', this.valueOf().goingDuration), + ownComingDuration = datetime.millisecondsFrom('minutes', this.valueOf().comingDuration), + goingDuration = datetime.millisecondsFrom('minutes', viewModel.valueOf().goingDuration), + comingDuration = datetime.millisecondsFrom('minutes', viewModel.valueOf().comingDuration); + + if (Math.abs(ownEnds - ownStarts) < SCHEDULE_MIN_DURATION) { + ownEnds += SCHEDULE_MIN_DURATION; + } + + if (Math.abs(end - start) < SCHEDULE_MIN_DURATION) { + end += SCHEDULE_MIN_DURATION; + } + + ownStarts -= ownGoingDuration; + ownEnds += ownComingDuration; + start -= goingDuration; + end += comingDuration; + + if ((start > ownStarts && start < ownEnds) || + (end > ownStarts && end < ownEnds) || + (start <= ownStarts && end >= ownEnds)) { + return true; + } + + return false; +}; + +module.exports = ScheduleViewModel; + + +/***/ }), + +/***/ "./src/js/theme/standard.js": +/*!**********************************!*\ + !*** ./src/js/theme/standard.js ***! + \**********************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; +/** + * @fileoverview The standard theme + * @author NHN FE Development Lab + */ + + +/** + * "common" prefix is for entire calendar. "common" properties can be overriden by "week", "month". + * "week" prefix is for weekly and daily view. + * "month" prefix is for monthly view. + */ +var theme = { + 'common.border': '1px solid #e5e5e5', + 'common.backgroundColor': 'white', + 'common.holiday.color': '#ba895d', + 'common.saturday.color': '#333', + 'common.dayname.color': '#333', + 'common.today.color': '#333', + + // creation guide style + 'common.creationGuide.backgroundColor': 'rgba(81, 92, 230, 0.05)', + 'common.creationGuide.border': '1px solid #515ce6', + + // month header 'dayname' + 'month.dayname.height': '31px', + 'month.dayname.borderLeft': 'none', + 'month.dayname.paddingLeft': '10px', + 'month.dayname.paddingRight': '0', + 'month.dayname.backgroundColor': 'inherit', + 'month.dayname.fontSize': '12px', + 'month.dayname.fontWeight': 'normal', + 'month.dayname.textAlign': 'left', + + // month day grid cell 'day' + 'month.holidayExceptThisMonth.color': 'rgba(255, 64, 64, 0.4)', + 'month.dayExceptThisMonth.color': 'rgba(51, 51, 51, 0.4)', + 'month.weekend.backgroundColor': 'inherit', + 'month.day.fontSize': '14px', + + // month schedule style + 'month.schedule.borderRadius': '2px', + 'month.schedule.height': '24px', + 'month.schedule.marginTop': '2px', + 'month.schedule.marginLeft': '8px', + 'month.schedule.marginRight': '8px', + + // month more view + 'month.moreView.border': '1px solid #d5d5d5', + 'month.moreView.boxShadow': '0 2px 6px 0 rgba(0, 0, 0, 0.1)', + 'month.moreView.backgroundColor': 'white', + 'month.moreView.paddingBottom': '17px', + 'month.moreViewTitle.height': '44px', + 'month.moreViewTitle.marginBottom': '12px', + 'month.moreViewTitle.borderBottom': 'none', + 'month.moreViewTitle.padding': '12px 17px 0 17px', + 'month.moreViewList.padding': '0 17px', + + // week header 'dayname' + 'week.dayname.height': '42px', + 'week.dayname.borderTop': '1px solid #e5e5e5', + 'week.dayname.borderBottom': '1px solid #e5e5e5', + 'week.dayname.borderLeft': 'none', + 'week.dayname.paddingLeft': '0', + 'week.dayname.backgroundColor': 'inherit', + 'week.dayname.textAlign': 'left', + 'week.today.color': 'inherit', + 'week.pastDay.color': '#bbb', + + // week vertical panel 'vpanel' + 'week.vpanelSplitter.border': '1px solid #e5e5e5', + 'week.vpanelSplitter.height': '3px', + + // week daygrid 'daygrid' + 'week.daygrid.borderRight': '1px solid #e5e5e5', + 'week.daygrid.backgroundColor': 'inherit', + + 'week.daygridLeft.width': '72px', + 'week.daygridLeft.backgroundColor': 'inherit', + 'week.daygridLeft.paddingRight': '8px', + 'week.daygridLeft.borderRight': '1px solid #e5e5e5', + + 'week.today.backgroundColor': 'rgba(81, 92, 230, 0.05)', + 'week.weekend.backgroundColor': 'inherit', + + // week timegrid 'timegrid' + 'week.timegridLeft.width': '72px', + 'week.timegridLeft.backgroundColor': 'inherit', + 'week.timegridLeft.borderRight': '1px solid #e5e5e5', + 'week.timegridLeft.fontSize': '11px', + + 'week.timegridOneHour.height': '52px', + 'week.timegridHalfHour.height': '26px', + 'week.timegridHalfHour.borderBottom': 'none', + 'week.timegridHorizontalLine.borderBottom': '1px solid #e5e5e5', + + 'week.timegrid.paddingRight': '8px', + 'week.timegrid.borderRight': '1px solid #e5e5e5', + 'week.timegridSchedule.borderRadius': '2px', + 'week.timegridSchedule.paddingLeft': '2px', + + 'week.currentTime.color': '#515ce6', + 'week.currentTime.fontSize': '11px', + 'week.currentTime.fontWeight': 'normal', + + 'week.currentTimeLinePast.border': '1px dashed #515ce6', + 'week.currentTimeLineBullet.backgroundColor': '#515ce6', + 'week.currentTimeLineToday.border': '1px solid #515ce6', + 'week.currentTimeLineFuture.border': 'none', + + // week creation guide style + 'week.creationGuide.color': '#515ce6', + 'week.creationGuide.fontSize': '11px', + 'week.creationGuide.fontWeight': 'bold', + + // week daygrid schedule style + 'week.dayGridSchedule.borderRadius': '2px', + 'week.dayGridSchedule.height': '24px', + 'week.dayGridSchedule.marginTop': '2px', + 'week.dayGridSchedule.marginLeft': '8px', + 'week.dayGridSchedule.marginRight': '8px' +}; + +module.exports = theme; + + +/***/ }), + +/***/ "./src/js/theme/theme.js": +/*!*******************************!*\ + !*** ./src/js/theme/theme.js ***! + \*******************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; +/** + * @fileoverview The all configuration of a theme + * @author NHN FE Development Lab + */ + + +var util = __webpack_require__(/*! tui-code-snippet */ "tui-code-snippet"); +var themeStandard = __webpack_require__(/*! ./standard */ "./src/js/theme/standard.js"); +var themeConfig = __webpack_require__(/*! ./themeConfig */ "./src/js/theme/themeConfig.js"); +var common = __webpack_require__(/*! ../common/common */ "./src/js/common/common.js"); + +/** + * Theme manager + * @param {object} customTheme - custom theme + */ +function Theme(customTheme) { + var theme = customTheme || themeStandard; + + /** + * @type {util.HashMap} + */ + this._map = new util.HashMap(); + + this.setStyles(theme); +} + +/** + * Get a style with key + * @param {string} key - key for getting a style + * @returns {string|undefined} style + */ +Theme.prototype.getStyle = function(key) { + return this._map.get(key); +}; + +/** + * Set a style + * @param {string} key - key for setting a style + * @param {string} style - style value + * @returns {boolean} true if the give key is valid or false + */ +Theme.prototype.setStyle = function(key, style) { + var styles = {}; + styles[key] = style; + + return this.setStyles(styles).length === 0; +}; + +/** + * Set styles + * @param {object} styles - multiple styles map + * @returns {Array.} error keys + */ +Theme.prototype.setStyles = function(styles) { + var errors = []; + + util.forEach(styles, function(style, key) { + if (util.isUndefined(themeConfig[key])) { + errors.push(key); + } else { + this._map.set(key, style); + common.set(this, key, style); + } + }, this); + + // apply missing styles which have to be default + util.forEach(themeConfig, function(style, key) { + if (!this.getStyle(key)) { + this._map.set(key, style); + common.set(this, key, style); + } + }, this); + + return errors; +}; + +/** + * Delete all styles + */ +Theme.prototype.clear = function() { + var keys = this._map.keys(); + var categories = {}; + util.forEach(keys, function(key) { + var category = key.split('.')[0]; + if (!categories[category]) { + categories[category] = category; + } + }); + + util.forEach(categories, function(child) { + delete this[child]; + }, this); + + this._map.removeAll(); +}; + +module.exports = Theme; + + +/***/ }), + +/***/ "./src/js/theme/themeConfig.js": +/*!*************************************!*\ + !*** ./src/js/theme/themeConfig.js ***! + \*************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; +/** + * @fileoverview The all configuration of a theme + * @author NHN FE Development Lab + */ + + +/** + * Full configuration for theme. + * "common" prefix is for entire calendar. "common" properties can be overriden by "week", "month". + * "week" prefix is for weekly and daily view. + * "month" prefix is for monthly view. + * @typedef {object} themeConfig + * @example + // default keys and styles + var themeConfig = { + 'common.border': '1px solid #e5e5e5', + 'common.backgroundColor': 'white', + 'common.holiday.color': '#ba895d', + 'common.saturday.color': '#333', + 'common.dayname.color': '#333', + 'common.today.color': '#333', + + // creation guide style + 'common.creationGuide.backgroundColor': 'rgba(81, 92, 230, 0.05)', + 'common.creationGuide.border': '1px solid #515ce6', + + // month header 'dayname' + 'month.dayname.height': '31px', + 'month.dayname.borderLeft': '1px solid #e5e5e5', + 'month.dayname.paddingLeft': '10px', + 'month.dayname.paddingRight': '10px', + 'month.dayname.backgroundColor': 'inherit', + 'month.dayname.fontSize': '12px', + 'month.dayname.fontWeight': 'normal', + 'month.dayname.textAlign': 'left', + + // month day grid cell 'day' + 'month.holidayExceptThisMonth.color': 'rgba(255, 64, 64, 0.4)', + 'month.dayExceptThisMonth.color': 'rgba(51, 51, 51, 0.4)', + 'month.weekend.backgroundColor': 'inherit', + 'month.day.fontSize': '14px', + + // month schedule style + 'month.schedule.borderRadius': '2px', + 'month.schedule.height': '24px', + 'month.schedule.marginTop': '2px', + 'month.schedule.marginLeft': '8px', + 'month.schedule.marginRight': '8px', + + // month more view + 'month.moreView.border': '1px solid #d5d5d5', + 'month.moreView.boxShadow': '0 2px 6px 0 rgba(0, 0, 0, 0.1)', + 'month.moreView.backgroundColor': 'white', + 'month.moreView.paddingBottom': '17px', + 'month.moreViewTitle.height': '44px', + 'month.moreViewTitle.marginBottom': '12px', + 'month.moreViewTitle.backgroundColor': 'inherit', + 'month.moreViewTitle.borderBottom': 'none', + 'month.moreViewTitle.padding': '12px 17px 0 17px', + 'month.moreViewList.padding': '0 17px', + + // week header 'dayname' + 'week.dayname.height': '42px', + 'week.dayname.borderTop': '1px solid #e5e5e5', + 'week.dayname.borderBottom': '1px solid #e5e5e5', + 'week.dayname.borderLeft': 'inherit', + 'week.dayname.paddingLeft': '0', + 'week.dayname.backgroundColor': 'inherit', + 'week.dayname.textAlign': 'left', + 'week.today.color': '#333', + 'week.pastDay.color': '#bbb', + + // week vertical panel 'vpanel' + 'week.vpanelSplitter.border': '1px solid #e5e5e5', + 'week.vpanelSplitter.height': '3px', + + // week daygrid 'daygrid' + 'week.daygrid.borderRight': '1px solid #e5e5e5', + 'week.daygrid.backgroundColor': 'inherit', + + 'week.daygridLeft.width': '72px', + 'week.daygridLeft.backgroundColor': 'inherit', + 'week.daygridLeft.paddingRight': '8px', + 'week.daygridLeft.borderRight': '1px solid #e5e5e5', + + 'week.today.backgroundColor': 'rgba(81, 92, 230, 0.05)', + 'week.weekend.backgroundColor': 'inherit', + + // week timegrid 'timegrid' + 'week.timegridLeft.width': '72px', + 'week.timegridLeft.backgroundColor': 'inherit', + 'week.timegridLeft.borderRight': '1px solid #e5e5e5', + 'week.timegridLeft.fontSize': '11px', + 'week.timegridLeftTimezoneLabel.height': '40px', + 'week.timegridLeftAdditionalTimezone.backgroundColor': 'white', + + 'week.timegridOneHour.height': '52px', + 'week.timegridHalfHour.height': '26px', + 'week.timegridHalfHour.borderBottom': 'none', + 'week.timegridHorizontalLine.borderBottom': '1px solid #e5e5e5', + + 'week.timegrid.paddingRight': '8px', + 'week.timegrid.borderRight': '1px solid #e5e5e5', + 'week.timegridSchedule.borderRadius': '2px', + 'week.timegridSchedule.paddingLeft': '2px', + + 'week.currentTime.color': '#515ce6', + 'week.currentTime.fontSize': '11px', + 'week.currentTime.fontWeight': 'normal', + + 'week.pastTime.color': '#bbb', + 'week.pastTime.fontWeight': 'normal', + + 'week.futureTime.color': '#333', + 'week.futureTime.fontWeight': 'normal', + + 'week.currentTimeLinePast.border': '1px dashed #515ce6', + 'week.currentTimeLineBullet.backgroundColor': '#515ce6', + 'week.currentTimeLineToday.border': '1px solid #515ce6', + 'week.currentTimeLineFuture.border': 'none', + + // week creation guide style + 'week.creationGuide.color': '#515ce6', + 'week.creationGuide.fontSize': '11px', + 'week.creationGuide.fontWeight': 'bold', + + // week daygrid schedule style + 'week.dayGridSchedule.borderRadius': '2px', + 'week.dayGridSchedule.height': '24px', + 'week.dayGridSchedule.marginTop': '2px', + 'week.dayGridSchedule.marginLeft': '8px', + 'week.dayGridSchedule.marginRight': '8px' +}; + */ +var themeConfig = { + 'common.border': '1px solid #e5e5e5', + 'common.backgroundColor': 'white', + 'common.holiday.color': '#ba895d', + 'common.saturday.color': '#333', + 'common.dayname.color': '#333', + 'common.today.color': '#333', + + // creation guide style + 'common.creationGuide.backgroundColor': 'rgba(81, 92, 230, 0.05)', + 'common.creationGuide.border': '1px solid #515ce6', + + // month header 'dayname' + 'month.dayname.height': '31px', + 'month.dayname.borderLeft': '1px solid #e5e5e5', + 'month.dayname.paddingLeft': '10px', + 'month.dayname.paddingRight': '10px', + 'month.dayname.backgroundColor': 'inherit', + 'month.dayname.fontSize': '12px', + 'month.dayname.fontWeight': 'normal', + 'month.dayname.textAlign': 'left', + + // month day grid cell 'day' + 'month.holidayExceptThisMonth.color': 'rgba(255, 64, 64, 0.4)', + 'month.dayExceptThisMonth.color': 'rgba(51, 51, 51, 0.4)', + 'month.weekend.backgroundColor': 'inherit', + 'month.day.fontSize': '14px', + + // month schedule style + 'month.schedule.borderRadius': '2px', + 'month.schedule.height': '24px', + 'month.schedule.marginTop': '2px', + 'month.schedule.marginLeft': '8px', + 'month.schedule.marginRight': '8px', + + // month more view + 'month.moreView.border': '1px solid #d5d5d5', + 'month.moreView.boxShadow': '0 2px 6px 0 rgba(0, 0, 0, 0.1)', + 'month.moreView.backgroundColor': 'white', + 'month.moreView.paddingBottom': '17px', + 'month.moreViewTitle.height': '44px', + 'month.moreViewTitle.marginBottom': '12px', + 'month.moreViewTitle.backgroundColor': 'inherit', + 'month.moreViewTitle.borderBottom': 'none', + 'month.moreViewTitle.padding': '12px 17px 0 17px', + 'month.moreViewList.padding': '0 17px', + + // week header 'dayname' + 'week.dayname.height': '42px', + 'week.dayname.borderTop': '1px solid #e5e5e5', + 'week.dayname.borderBottom': '1px solid #e5e5e5', + 'week.dayname.borderLeft': 'inherit', + 'week.dayname.paddingLeft': '0', + 'week.dayname.backgroundColor': 'inherit', + 'week.dayname.textAlign': 'left', + 'week.today.color': '#333', + 'week.pastDay.color': '#bbb', + + // week vertical panel 'vpanel' + 'week.vpanelSplitter.border': '1px solid #e5e5e5', + 'week.vpanelSplitter.height': '3px', + + // week daygrid 'daygrid' + 'week.daygrid.borderRight': '1px solid #e5e5e5', + 'week.daygrid.backgroundColor': 'inherit', + + 'week.daygridLeft.width': '72px', + 'week.daygridLeft.backgroundColor': 'inherit', + 'week.daygridLeft.paddingRight': '8px', + 'week.daygridLeft.borderRight': '1px solid #e5e5e5', + + 'week.today.backgroundColor': 'rgba(81, 92, 230, 0.05)', + 'week.weekend.backgroundColor': 'inherit', + + // week timegrid 'timegrid' + 'week.timegridLeft.width': '72px', + 'week.timegridLeft.backgroundColor': 'inherit', + 'week.timegridLeft.borderRight': '1px solid #e5e5e5', + 'week.timegridLeft.fontSize': '11px', + 'week.timegridLeftTimezoneLabel.height': '40px', + 'week.timegridLeftAdditionalTimezone.backgroundColor': 'white', + + 'week.timegridOneHour.height': '52px', + 'week.timegridHalfHour.height': '26px', + 'week.timegridHalfHour.borderBottom': 'none', + 'week.timegridHorizontalLine.borderBottom': '1px solid #e5e5e5', + + 'week.timegrid.paddingRight': '8px', + 'week.timegrid.borderRight': '1px solid #e5e5e5', + 'week.timegridSchedule.borderRadius': '2px', + 'week.timegridSchedule.paddingLeft': '2px', + + 'week.currentTime.color': '#515ce6', + 'week.currentTime.fontSize': '11px', + 'week.currentTime.fontWeight': 'normal', + + 'week.pastTime.color': '#bbb', + 'week.pastTime.fontWeight': 'normal', + + 'week.futureTime.color': '#333', + 'week.futureTime.fontWeight': 'normal', + + 'week.currentTimeLinePast.border': '1px dashed #515ce6', + 'week.currentTimeLineBullet.backgroundColor': '#515ce6', + 'week.currentTimeLineToday.border': '1px solid #515ce6', + 'week.currentTimeLineFuture.border': 'none', + + // week creation guide style + 'week.creationGuide.color': '#515ce6', + 'week.creationGuide.fontSize': '11px', + 'week.creationGuide.fontWeight': 'bold', + + // week daygrid schedule style + 'week.dayGridSchedule.borderRadius': '2px', + 'week.dayGridSchedule.height': '24px', + 'week.dayGridSchedule.marginTop': '2px', + 'week.dayGridSchedule.marginLeft': '8px', + 'week.dayGridSchedule.marginRight': '8px' +}; + +module.exports = themeConfig; + + +/***/ }), + +/***/ "./src/js/view/layout.js": +/*!*******************************!*\ + !*** ./src/js/view/layout.js ***! + \*******************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; +/** + * @fileoverview Layout view. wrap all view containers at outside. + * @author NHN FE Development Lab + */ + + +var util = __webpack_require__(/*! tui-code-snippet */ "tui-code-snippet"); +var config = __webpack_require__(/*! ../config */ "./src/js/config.js"); +var domutil = __webpack_require__(/*! ../common/domutil */ "./src/js/common/domutil.js"); +var Collection = __webpack_require__(/*! ../common/collection */ "./src/js/common/collection.js"); +var View = __webpack_require__(/*! ./view */ "./src/js/view/view.js"); + +/** + * Layout view for toggle each child view. It will controlled via navigation UI. + * @constructor + * @extends {View} + * @param {HTMLElement} container Container element to use layout view. + * @param {Theme} theme - theme instance + */ +function Layout(container, theme) { + container = domutil.appendHTMLElement('div', container, config.classname('layout')); + + /** + * @type {HTMLElement} + */ + this.container = container; + + /*eslint-disable*/ + /** + * @type {Collection} Child view collection. + */ + this.children = new Collection(function(childView) { + return childView.viewName; + }); + /* eslint-enable*/ + + /** + * @type {Theme} + */ + this.theme = theme; + + this.applyTheme(); +} + +util.inherit(Layout, View); + +/** + * Clear child views. + */ +Layout.prototype.clear = function() { + this.children.each(function(childView) { + childView.destroy(); + }); + + this.children.clear(); + this.container.innerHTML = ''; +}; + +/** + * Remove child view. + * @override + * @param {(string|View)} viewName - name of view or instance. + */ +Layout.prototype.removeChild = function(viewName) { + this.children.remove(viewName); +}; + +/** + * Toggle child views. + * @param {string} viewName - Name of view. + */ +Layout.prototype.toggleChildView = function(viewName) { + var container, + prefix = ['add', 'remove'], + flag; + + this.children.each(function(childView) { + container = childView.container; + flag = Number(childView.viewName === viewName); + domutil[prefix[flag] + 'Class'](container, config.classname('hidden')); + }); +}; + +Layout.prototype.applyTheme = function() { + var style = this.container.style; + var theme = this.theme.common; + + // background color + style.backgroundColor = theme.backgroundColor; +}; + +module.exports = Layout; + + +/***/ }), + +/***/ "./src/js/view/month/month.js": +/*!************************************!*\ + !*** ./src/js/view/month/month.js ***! + \************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; +/** + * @fileoverview Month view + * @author NHN FE Development Lab + */ + + +var util = __webpack_require__(/*! tui-code-snippet */ "tui-code-snippet"); +var config = __webpack_require__(/*! ../../config */ "./src/js/config.js"), + datetime = __webpack_require__(/*! ../../common/datetime */ "./src/js/common/datetime.js"), + domutil = __webpack_require__(/*! ../../common/domutil */ "./src/js/common/domutil.js"), + TZDate = __webpack_require__(/*! ../../common/timezone */ "./src/js/common/timezone.js").Date, + tmpl = __webpack_require__(/*! ../template/month/month.hbs */ "./src/js/view/template/month/month.hbs"), + View = __webpack_require__(/*! ../view */ "./src/js/view/view.js"), + VLayout = __webpack_require__(/*! ../..//common/vlayout */ "./src/js/common/vlayout.js"), + WeekdayInMonth = __webpack_require__(/*! ./weekdayInMonth */ "./src/js/view/month/weekdayInMonth.js"); +var mmin = Math.min; + +/** + * @constructor + * @extends {View} + * @param {object} options - options + * @param {function} [options.scheduleFilter] - schedule filter + * @param {number} [options.startDayOfWeek=0] - start day of week + * @param {string} [options.renderMonth='2015-12'] - render month + * @param {string[]} [options.daynames] - daynames to use upside of month view + * @param {HTMLElement} container - container element + * @param {Base.Month} controller - controller instance + */ +function Month(options, container, controller) { + var theme = controller ? controller.theme : null; + var monthOption; + + options = options || {}; + monthOption = options ? options.month : {}; + + View.call(this, container); + + /** + * @type {Base.Month} + */ + this.controller = controller; + + /** + * @type {VLayout} + */ + this.vLayout = new VLayout({ + panels: [ + {height: parseInt(controller.theme.month.dayname.height, 10) || 42}, + {autoHeight: true} + ] + }, container, theme); + + /** + * @type {string} + */ + this.options = util.extend({ + scheduleFilter: function(schedule) { + return Boolean(schedule.isVisible); + }, + startDayOfWeek: 0, + renderMonth: '2018-01', + daynames: ['Sun', 'Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat'], + narrowWeekend: false, + visibleWeeksCount: null, + isAlways6Week: true, + isReadOnly: options.isReadOnly, + grid: { + header: { + height: 34 + }, + footer: { + height: 3 + } + } + }, monthOption); + + this.options.grid.header = util.extend({ + height: 34 + }, util.pick(monthOption, 'grid', 'header')); + this.options.grid.footer = util.extend({ + height: 3 + }, util.pick(monthOption, 'grid', 'footer')); + + /** + * horizontal grid information + * @type {Object} + */ + this.grids = datetime.getGridLeftAndWidth( + this.options.daynames.length, + this.options.narrowWeekend, + this.options.startDayOfWeek); +} + +util.inherit(Month, View); + +/** + * Name of view. for managing subview at layout view + * @type {string} + */ +Month.prototype.viewName = 'month'; + +/** + * Get calendar array by supplied date + * @param {string} renderMonth - month to render YYYY-MM, weeks2/3 to render YYYY-MM-DD + * @returns {array.} calendar array + */ +Month.prototype._getMonthCalendar = function(renderMonth) { + var date = new TZDate(renderMonth); + var startDayOfWeek = this.options.startDayOfWeek || 0; + var visibleWeeksCount = mmin(this.options.visibleWeeksCount || 0, 6); + var workweek = this.options.workweek || false; + var datetimeOptions, calendar; + + if (this.options.visibleWeeksCount) { + datetimeOptions = { + startDayOfWeek: startDayOfWeek, + isAlways6Week: false, + visibleWeeksCount: visibleWeeksCount, + workweek: workweek + }; + } else { + datetimeOptions = { + startDayOfWeek: startDayOfWeek, + isAlways6Week: this.options.isAlways6Week, + workweek: workweek + }; + } + + calendar = datetime.arr2dCalendar(date, datetimeOptions); + + return calendar; +}; + +/** + * Create children view (week) and add children + * @param {HTMLElement} container - container element to render weeks + * @param {array.} calendar - calendar array from datetime#arr2dCalendar + * @param {Theme} theme - theme instance + */ +Month.prototype._renderChildren = function(container, calendar, theme) { + var self = this; + var weekCount = calendar.length; + var heightPercent = 100 / weekCount; + var opt = this.options; + var renderMonth = opt.renderMonth; + var narrowWeekend = opt.narrowWeekend; + var startDayOfWeek = opt.startDayOfWeek; + var visibleWeeksCount = opt.visibleWeeksCount; + var visibleScheduleCount = opt.visibleScheduleCount; + var gridOption = opt.grid; + var isReadOnly = opt.isReadOnly; + + container.innerHTML = ''; + this.children.clear(); + + util.forEach(calendar, function(weekArr) { + var start = new TZDate(weekArr[0]), + end = new TZDate(weekArr[weekArr.length - 1]), + weekdayViewContainer, + weekdayView; + + weekdayViewContainer = domutil.appendHTMLElement( + 'div', container, config.classname('month-week-item')); + + weekdayView = new WeekdayInMonth({ + renderMonth: renderMonth, + heightPercent: heightPercent, + renderStartDate: start, + renderEndDate: end, + narrowWeekend: narrowWeekend, + startDayOfWeek: startDayOfWeek, + visibleWeeksCount: visibleWeeksCount, + visibleScheduleCount: visibleScheduleCount, + grid: gridOption, + scheduleHeight: parseInt(theme.month.schedule.height, 10), + scheduleGutter: parseInt(theme.month.schedule.marginTop, 10), + isReadOnly: isReadOnly + }, weekdayViewContainer); + + self.addChild(weekdayView); + }); +}; + +/** + * Render month view + * @override + */ +Month.prototype.render = function() { + var self = this, + opt = this.options, + vLayout = this.vLayout, + controller = this.controller, + daynames = opt.daynames, + workweek = opt.workweek, + calendar = this._getMonthCalendar(opt.renderMonth), + scheduleFilter = opt.scheduleFilter, + theme = controller ? controller.theme : null, + styles = this._getStyles(theme), + grids, + daynameViewModel, + baseViewModel; + + grids = this.grids = datetime.getGridLeftAndWidth( + opt.daynames.length, + opt.narrowWeekend, + opt.startDayOfWeek + ); + + daynameViewModel = util.map( + util.range(opt.startDayOfWeek, 7).concat(util.range(7)).slice(0, 7), + function(day, index) { + return { + day: day, + label: daynames[day], + width: grids[index] ? grids[index].width : 0, + left: grids[index] ? grids[index].left : 0, + color: this._getDayNameColor(theme, day) + }; + }, + this + ); + + if (workweek) { + grids = this.grids = datetime.getGridLeftAndWidth(5, opt.narrowWeekend, opt.startDayOfWeek, workweek); + + daynameViewModel = util.filter(daynameViewModel, function(daynameModel) { + return !datetime.isWeekend(daynameModel.day); + }); + + util.forEach(daynameViewModel, function(daynameModel, index) { + daynameModel.width = grids[index] ? grids[index].width : 0; + daynameModel.left = grids[index] ? grids[index].left : 0; + }); + } + + baseViewModel = { + daynames: daynameViewModel, + styles: styles + }; + + vLayout.panels[0].container.innerHTML = tmpl(baseViewModel); + + this._renderChildren(vLayout.panels[1].container, calendar, theme); + + baseViewModel.panelHeight = vLayout.panels[1].getHeight(); + + this.children.each(function(childView) { + var start = datetime.start(childView.options.renderStartDate); + var end = datetime.start(childView.options.renderEndDate); + var eventsInDateRange = controller.findByDateRange( + datetime.start(start), + datetime.end(end), + scheduleFilter + ); + var dateRange = datetime.range( + datetime.start(start), + datetime.end(end), + datetime.MILLISECONDS_PER_DAY); + var viewModel = { + eventsInDateRange: eventsInDateRange, + range: dateRange.slice(0, grids.length), + grids: grids, + panelHeight: baseViewModel.panelHeight, + theme: theme + }; + + childView.render(viewModel); + + self._invokeAfterRenderSchedule(eventsInDateRange); + }); +}; + +/** + * Fire 'afterRenderSchedule' event + * @param {Array} matrices - schedule matrices from view model + * @fires Month#afterRenderSchedule + */ +Month.prototype._invokeAfterRenderSchedule = function(matrices) { + var self = this; + util.forEachArray(matrices, function(matrix) { + util.forEachArray(matrix, function(column) { + util.forEachArray(column, function(scheduleViewModel) { + if (scheduleViewModel && !scheduleViewModel.hidden) { + /** + * @event Month#afterRenderSchedule + */ + self.fire('afterRenderSchedule', {schedule: scheduleViewModel.model}); + } + }); + }); + }); +}; + +/** + * Get the styles from theme + * @param {Theme} theme - theme instance + * @returns {object} styles - styles object + */ +Month.prototype._getStyles = function(theme) { + var styles = {}; + var dayname; + + if (theme) { + dayname = theme.month.dayname; + + styles.borderTop = dayname.borderTop || theme.common.border; + styles.borderLeft = dayname.borderLeft || theme.common.border; + styles.height = dayname.height; + styles.paddingLeft = dayname.paddingLeft; + styles.paddingRight = dayname.paddingRight; + styles.fontSize = dayname.fontSize; + styles.backgroundColor = dayname.backgroundColor; + styles.fontWeight = dayname.fontWeight; + styles.textAlign = dayname.textAlign; + } + + return styles; +}; + +/** + * Get a day name color + * @param {Theme} theme - theme instance + * @param {number} day - day number + * @returns {string} style - color style + */ +Month.prototype._getDayNameColor = function(theme, day) { + var color = ''; + + if (theme) { + if (day === 0) { + color = theme.common.holiday.color; + } else if (day === 6) { + color = theme.common.saturday.color; + } else { + color = theme.common.dayname.color; + } + } + + return color; +}; + +module.exports = Month; + + +/***/ }), + +/***/ "./src/js/view/month/more.js": +/*!***********************************!*\ + !*** ./src/js/view/month/more.js ***! + \***********************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; +/** + * @fileoverview Floating layer for displaying schedule in specific date + * @author NHN FE Development Lab + */ + + +var OUT_PADDING = 5; +var VIEW_MIN_WIDTH = 280; +var util = __webpack_require__(/*! tui-code-snippet */ "tui-code-snippet"); +var config = __webpack_require__(/*! ../../config */ "./src/js/config.js"), + domevent = __webpack_require__(/*! ../../common/domevent */ "./src/js/common/domevent.js"), + domutil = __webpack_require__(/*! ../../common/domutil */ "./src/js/common/domutil.js"), + View = __webpack_require__(/*! ../../view/view */ "./src/js/view/view.js"), + FloatingLayer = __webpack_require__(/*! ../../common/floatingLayer */ "./src/js/common/floatingLayer.js"), + common = __webpack_require__(/*! ../../common/common */ "./src/js/common/common.js"), + tmpl = __webpack_require__(/*! ../template/month/more.hbs */ "./src/js/view/template/month/more.hbs"); + +/** + * @constructor + * @extends {View} + * @param {object} options - options + * @param {object} [options.moreLayerSize] - more layer size + * @param {object} [options.moreLayerSize.width=null] - css width value(px, auto). + * The default value 'null' is to fit a grid cell. + * @param {object} [options.moreLayerSize.height=null] - css height value(px, auto). + * The default value 'null' is to fit a grid cell. + * @param {HTMLElement} container = container element + * @param {Theme} theme - theme instance + */ +function More(options, container, theme) { + View.call(this, container); + + /** + * @type {FloatingLayer} + */ + this.layer = new FloatingLayer(null, container); + + /** + * cached view model + * @type {object} + */ + this._viewModel = null; + + /** + * @type {object} + */ + this.options = util.extend({ + moreLayerSize: { + width: null, + height: null + }, + scheduleHeight: parseInt(theme.month.schedule.height, 10) || 18, + scheduleGutter: parseInt(theme.month.schedule.marginTop, 10) || 2, + scheduleBulletTop: (parseInt(theme.month.schedule.height, 10) || 18) / 3, + borderRadius: theme.month.schedule.borderRadius + }, options); + + /** + * @type {Theme} + */ + this.theme = theme; + + domevent.on(container, 'click', this._onClick, this); +} + +util.inherit(More, View); + +/** + * Click event handler for close button + * @param {MouseEvent} clickEvent - mouse event object + */ +More.prototype._onClick = function(clickEvent) { + var target = domevent.getEventTarget(clickEvent); + var className = config.classname('month-more-close'); + + if (!domutil.hasClass(target, className) && !domutil.closest(target, '.' + className)) { + return; + } + + this.hide(); +}; + +/** + * Mousedown event handler for hiding more layer when user mousedown outside of + * layer + * @param {MouseEvent} mouseDownEvent - mouse event object + */ +More.prototype._onMouseDown = function(mouseDownEvent) { + var target = domevent.getEventTarget(mouseDownEvent), + moreLayer = domutil.closest(target, config.classname('.month-more')); + + if (moreLayer) { + return; + } + + this.hide(); +}; + +/** + * Get new position for more layer by +n element itself + * @param {HTMLElement} target - parent grid-line element of +n element + * @param {HTMLElement} weekItem - weekItem container element + * @returns {number[]} new position of more layer + */ +More.prototype._getRenderPosition = function(target, weekItem) { + var pos = domevent.getMousePosition({ + clientX: domutil.getPosition(target)[0], + clientY: domutil.getPosition(weekItem)[1] + }, this.container); + var containerSize = domutil.getSize(this.container); + var left = pos[0] - OUT_PADDING; + var top = pos[1] - OUT_PADDING; + + left = common.ratio(containerSize[0], 100, left); + top = common.ratio(containerSize[1], 100, top); + + return [left, top]; +}; + +/** + * @override + */ +More.prototype.destroy = function() { + this.layer.destroy(); + this.layer = null; + domevent.off(this.container, 'click', this._onClick, this); + domevent.off(document.body, 'mousedown', this._onMouseDown, this); + View.prototype.destroy.call(this); +}; + +/** + * @override + * @param {object} viewModel - view model from factory/monthView + */ +More.prototype.render = function(viewModel) { + var target = domutil.closest(viewModel.target, config.classname('.weekday-grid-line')); + var weekItem = domutil.closest(target, config.classname('.month-week-item')); + var layer = this.layer; + var self = this; + var pos = this._getRenderPosition(target, weekItem); + var minHeight = domutil.getSize(weekItem)[1] + (OUT_PADDING * 2); + var width = target.offsetWidth + (OUT_PADDING * 2); + var opt = this.options; + var optMoreLayerSize = opt.moreLayerSize; + var styles = this._getStyles(this.theme); + var maxVisibleSchedulesInLayer = 10; + var height = ''; + var containerSize = domutil.getSize(this.container); + var calWidth = 0; + var calHeight = 0; + var isOverWidth = false; + var isOverHeight = false; + var leftPos = pos[0]; + var topPos = pos[1]; + + this._viewModel = util.extend(viewModel, { + scheduleGutter: opt.scheduleGutter, + scheduleHeight: opt.scheduleHeight, + scheduleBulletTop: opt.scheduleBulletTop, + borderRadius: opt.borderRadius, + styles: styles + }); + + width = Math.max(width, VIEW_MIN_WIDTH); + height = parseInt(styles.titleHeight, 10); + height += parseInt(styles.titleMarginBottom, 10); + if (viewModel.schedules.length <= maxVisibleSchedulesInLayer) { + height += (opt.scheduleGutter + opt.scheduleHeight) * viewModel.schedules.length; + } else { + height += (opt.scheduleGutter + opt.scheduleHeight) * maxVisibleSchedulesInLayer; + } + height += parseInt(styles.paddingBottom, 10); + height += OUT_PADDING; // for border + + if (optMoreLayerSize.width) { + width = optMoreLayerSize.width; + } + + if (optMoreLayerSize.height) { + height = optMoreLayerSize.height; + } + + if (isNaN(height) || height < minHeight) { + height = minHeight; + } + + layer.setContent(tmpl(viewModel)); + + calWidth = leftPos * containerSize[0] / 100; + calHeight = topPos * containerSize[1] / 100; + isOverWidth = calWidth + width >= containerSize[0]; + isOverHeight = calHeight + height >= containerSize[1]; + leftPos = leftPos + '%'; + topPos = topPos + '%'; + + if (isOverWidth && isOverHeight) { + layer.setLTRB({ + right: 0, + bottom: 0 + }); + } else if (!isOverWidth && isOverHeight) { + layer.setLTRB({ + left: leftPos, + bottom: 0 + }); + } else if (isOverWidth && !isOverHeight) { + layer.setLTRB({ + right: 0, + top: topPos + }); + } else { + layer.setPosition(leftPos, topPos); + } + + layer.setSize(width, height); + + layer.show(); + + util.debounce(function() { + domevent.on(document.body, 'mousedown', self._onMouseDown, self); + })(); +}; + +/** + * Hide layer + */ +More.prototype.hide = function() { + this.layer.hide(); + domevent.off(document.body, 'mousedown', this._onMouseDown, this); +}; + +/** + * refresh layer + */ +More.prototype.refresh = function() { + if (this._viewModel) { + this.layer.setContent(tmpl(this._viewModel)); + } +}; + +/** + * Return more layer root element + * @returns {HTMLElement} root element + */ +More.prototype.getMoreViewElement = function() { + return domutil.find(config.classname('.month-more'), this.layer.container); +}; + +/** + * Get the styles from theme + * @param {Theme} theme - theme instance + * @returns {object} styles - styles object + */ +More.prototype._getStyles = function(theme) { + var styles = {}; + var listHeight = ''; + + if (theme) { + styles.border = theme.month.moreView.border || theme.common.border; + styles.boxShadow = theme.month.moreView.boxShadow; + styles.backgroundColor = theme.month.moreView.backgroundColor || theme.common.backgroundColor; + styles.paddingBottom = theme.month.moreView.paddingBottom; + styles.titleHeight = theme.month.moreViewTitle.height; + styles.titleMarginBottom = theme.month.moreViewTitle.marginBottom; + styles.titleBackgroundColor = theme.month.moreViewTitle.backgroundColor; + styles.titleBorderBottom = theme.month.moreViewTitle.borderBottom; + styles.titlePadding = theme.month.moreViewTitle.padding; + styles.listPadding = theme.month.moreViewList.padding; + listHeight = 'calc(100%'; + + if (parseInt(styles.titleHeight, 10)) { + listHeight += ' - ' + styles.titleHeight; + } + if (parseInt(styles.titleMarginBottom, 10)) { + listHeight += ' - ' + styles.titleMarginBottom; + } + listHeight += ')'; + + styles.listHeight = listHeight; + } + + return styles; +}; + +module.exports = More; + + +/***/ }), + +/***/ "./src/js/view/month/weekdayInMonth.js": +/*!*********************************************!*\ + !*** ./src/js/view/month/weekdayInMonth.js ***! + \*********************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; +/** + * @fileoverview Monthday in month view + * @author NHN FE Development Lab + */ + + +var util = __webpack_require__(/*! tui-code-snippet */ "tui-code-snippet"); +var config = __webpack_require__(/*! ../../config */ "./src/js/config.js"), + common = __webpack_require__(/*! ../../common/common.js */ "./src/js/common/common.js"), + domutil = __webpack_require__(/*! ../../common/domutil */ "./src/js/common/domutil.js"), + View = __webpack_require__(/*! ../../view/view */ "./src/js/view/view.js"), + Weekday = __webpack_require__(/*! ../weekday */ "./src/js/view/weekday.js"), + baseTmpl = __webpack_require__(/*! ../template/month/weekdayInMonth.hbs */ "./src/js/view/template/month/weekdayInMonth.hbs"), + scheduleTmpl = __webpack_require__(/*! ../template/month/weekdayInMonthSchedule.hbs */ "./src/js/view/template/month/weekdayInMonthSchedule.hbs"); +var mfloor = Math.floor, + mmin = Math.min; + +/** + * @constructor + * @extends {Weekday} + * @param {object} options - options for WeekdayInWeek view + * @param {number} [options.heightPercent] - height percent of view + * @param {number} [options.containerButtonGutter=8] - free space at bottom to + * make create easy. + * @param {number} [options.scheduleHeight=18] - height of each schedule block. + * @param {number} [options.scheduleGutter=2] - gutter height of each schedule block. + * @param {HTMLDIVElement} container - DOM element to use container for this + * view. + */ +function WeekdayInMonth(options, container) { + Weekday.call(this, options, container); + container.style.height = options.heightPercent + '%'; +} + +util.inherit(WeekdayInMonth, Weekday); + +/** + * Get schedule container element's bound properly by override + * + * View#getViewBound. + * @override + */ +WeekdayInMonth.prototype.getViewBound = function() { + var bound = View.prototype.getViewBound.call(this); + + return bound; +}; + +/** + * Get limit index of schedule block in current view + * @param {number} panelHeight - panel's height for pre-calculation + * @returns {number} limit index + */ +WeekdayInMonth.prototype._getRenderLimitIndex = function(panelHeight) { + var opt = this.options; + var containerHeight = panelHeight || this.getViewBound().height; + var gridHeaderHeight = util.pick(opt, 'grid', 'header', 'height') || 0; + var gridFooterHeight = util.pick(opt, 'grid', 'footer', 'height') || 0; + var visibleScheduleCount = opt.visibleScheduleCount || 0; + var count; + + containerHeight -= (gridHeaderHeight + gridFooterHeight); + + count = mfloor(containerHeight / (opt.scheduleHeight + opt.scheduleGutter)); + + if (!visibleScheduleCount) { + visibleScheduleCount = count; + } + + return mmin(count, visibleScheduleCount); // subtraction for '+n' label block +}; + +/** + * @override + * @param {object} viewModel - schedules view models + */ +WeekdayInMonth.prototype.getBaseViewModel = function(viewModel) { + var opt = this.options, + gridHeaderHeight = util.pick(opt, 'grid', 'header', 'height') || 0, + gridFooterHeight = util.pick(opt, 'grid', 'footer', 'height') || 0, + renderLimitIdx = this._getRenderLimitIndex() + 1, + exceedDate = this.getExceedDate(renderLimitIdx, viewModel.eventsInDateRange, viewModel.range), + styles = this._getStyles(viewModel.theme); + var baseViewModel; + + viewModel = util.extend({ + exceedDate: exceedDate + }, viewModel); + + baseViewModel = Weekday.prototype.getBaseViewModel.call(this, viewModel); + + baseViewModel = util.extend({ + matrices: viewModel.eventsInDateRange, + gridHeaderHeight: gridHeaderHeight, + gridFooterHeight: gridFooterHeight, + renderLimitIdx: renderLimitIdx, + isReadOnly: opt.isReadOnly, + styles: styles + }, baseViewModel); + + return baseViewModel; +}; + +/** + * @override + * @param {object} viewModel - schedules view models + */ +WeekdayInMonth.prototype.render = function(viewModel) { + var container = this.container, + baseViewModel = this.getBaseViewModel(viewModel), + scheduleContainer; + + if (!this.options.visibleWeeksCount) { + setIsOtherMonthFlag(baseViewModel.dates, this.options.renderMonth, viewModel.theme); + } + + container.innerHTML = baseTmpl(baseViewModel); + + scheduleContainer = domutil.find( + config.classname('.weekday-schedules'), + container + ); + + if (!scheduleContainer) { + return; + } + + scheduleContainer.innerHTML = scheduleTmpl(baseViewModel); + + common.setAutoEllipsis( + config.classname('.weekday-schedule-title'), + container, + true + ); +}; + +WeekdayInMonth.prototype._beforeDestroy = function() { +}; + +/** + * Get the styles from theme + * @param {Theme} theme - theme instance + * @returns {object} styles - styles object + */ +WeekdayInMonth.prototype._getStyles = function(theme) { + var styles = {}; + + if (theme) { + styles.borderTop = theme.common.border; + styles.borderLeft = theme.common.border; + styles.fontSize = theme.month.day.fontSize; + styles.borderRadius = theme.month.schedule.borderRadius; + styles.marginLeft = theme.month.schedule.marginLeft; + styles.marginRight = theme.month.schedule.marginRight; + styles.scheduleBulletTop = this.options.scheduleHeight / 3; + } + + return styles; +}; + +/** + * 현재 달이 아닌 ë‚ ì§œì— 대해 isOtherMonth = true 플래그를 추가한다. + * @param {Array} dates - ë‚ ì§œì •ë³´ ë°°ì—´ + * @param {TZDate} renderMonth - 현재 ë Œë”ë§ì¤‘ì¸ ì›” (YYYYMM) + * @param {Theme} theme - theme instance + */ +function setIsOtherMonthFlag(dates, renderMonth, theme) { + var month = renderMonth.getMonth() + 1; + + util.forEach(dates, function(dateObj) { + var isOtherMonth = dateObj.month !== month; + dateObj.isOtherMonth = isOtherMonth; + + if (isOtherMonth) { + dateObj.color = Weekday.prototype._getDayNameColor(theme, dateObj.day, dateObj.isToday, isOtherMonth); + } + }); +} + +module.exports = WeekdayInMonth; + + +/***/ }), + +/***/ "./src/js/view/popup/scheduleCreationPopup.js": +/*!****************************************************!*\ + !*** ./src/js/view/popup/scheduleCreationPopup.js ***! + \****************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; +/** + * @fileoverview Floating layer for writing new schedules + * @author NHN FE Development Lab + */ + + +var View = __webpack_require__(/*! ../../view/view */ "./src/js/view/view.js"); +var FloatingLayer = __webpack_require__(/*! ../../common/floatingLayer */ "./src/js/common/floatingLayer.js"); +var util = __webpack_require__(/*! tui-code-snippet */ "tui-code-snippet"); +var DatePicker = __webpack_require__(/*! tui-date-picker */ "tui-date-picker"); +var timezone = __webpack_require__(/*! ../../common/timezone */ "./src/js/common/timezone.js"); +var config = __webpack_require__(/*! ../../config */ "./src/js/config.js"); +var domevent = __webpack_require__(/*! ../../common/domevent */ "./src/js/common/domevent.js"); +var domutil = __webpack_require__(/*! ../../common/domutil */ "./src/js/common/domutil.js"); +var common = __webpack_require__(/*! ../../common/common */ "./src/js/common/common.js"); +var datetime = __webpack_require__(/*! ../../common/datetime */ "./src/js/common/datetime.js"); +var tmpl = __webpack_require__(/*! ../template/popup/scheduleCreationPopup.hbs */ "./src/js/view/template/popup/scheduleCreationPopup.hbs"); +var TZDate = timezone.Date; +var MAX_WEEK_OF_MONTH = 6; + +/** + * @constructor + * @extends {View} + * @param {HTMLElement} container - container element + * @param {Array.} calendars - calendar list used to create new schedule + * @param {boolean} usageStatistics - GA tracking options in Calendar + */ +function ScheduleCreationPopup(container, calendars, usageStatistics) { + View.call(this, container); + /** + * @type {FloatingLayer} + */ + this.layer = new FloatingLayer(null, container); + + /** + * cached view model + * @type {object} + */ + this._viewModel = null; + this._selectedCal = null; + this._schedule = null; + this.calendars = calendars; + this._focusedDropdown = null; + this._usageStatistics = usageStatistics; + this._onClickListeners = [ + this._selectDropdownMenuItem.bind(this), + this._toggleDropdownMenuView.bind(this), + this._closeDropdownMenuView.bind(this, null), + this._closePopup.bind(this), + this._toggleIsAllday.bind(this), + this._toggleIsPrivate.bind(this), + this._onClickSaveSchedule.bind(this) + ]; + + domevent.on(container, 'click', this._onClick, this); +} + +util.inherit(ScheduleCreationPopup, View); + +/** + * Mousedown event handler for hiding popup layer when user mousedown outside of + * layer + * @param {MouseEvent} mouseDownEvent - mouse event object + */ +ScheduleCreationPopup.prototype._onMouseDown = function(mouseDownEvent) { + var target = domevent.getEventTarget(mouseDownEvent), + popupLayer = domutil.closest(target, config.classname('.floating-layer')); + + if (popupLayer) { + return; + } + + this.hide(); +}; + +/** + * @override + */ +ScheduleCreationPopup.prototype.destroy = function() { + this.layer.destroy(); + this.layer = null; + domevent.off(this.container, 'click', this._onClick, this); + domevent.off(document.body, 'mousedown', this._onMouseDown, this); + View.prototype.destroy.call(this); +}; + +/** + * @override + * Click event handler for close button + * @param {MouseEvent} clickEvent - mouse event object + */ +ScheduleCreationPopup.prototype._onClick = function(clickEvent) { + var target = domevent.getEventTarget(clickEvent); + + util.forEach(this._onClickListeners, function(listener) { + return !listener(target); + }); +}; + +/** + * Test click event target is close button, and return layer is closed(hidden) + * @param {HTMLElement} target click event target + * @returns {boolean} whether popup layer is closed or not + */ +ScheduleCreationPopup.prototype._closePopup = function(target) { + var className = config.classname('popup-close'); + + if (domutil.hasClass(target, className) || domutil.closest(target, '.' + className)) { + this.hide(); + + return true; + } + + return false; +}; + +/** + * Toggle dropdown menu view, when user clicks dropdown button + * @param {HTMLElement} target click event target + * @returns {boolean} whether user clicked dropdown button or not + */ +ScheduleCreationPopup.prototype._toggleDropdownMenuView = function(target) { + var className = config.classname('dropdown-button'); + var dropdownBtn = domutil.hasClass(target, className) ? target : domutil.closest(target, '.' + className); + + if (!dropdownBtn) { + return false; + } + + if (domutil.hasClass(dropdownBtn.parentNode, config.classname('open'))) { + this._closeDropdownMenuView(dropdownBtn.parentNode); + } else { + this._openDropdownMenuView(dropdownBtn.parentNode); + } + + return true; +}; + +/** + * Close drop down menu + * @param {HTMLElement} dropdown - dropdown element that has a opened dropdown menu + */ +ScheduleCreationPopup.prototype._closeDropdownMenuView = function(dropdown) { + dropdown = dropdown || this._focusedDropdown; + if (dropdown) { + domutil.removeClass(dropdown, config.classname('open')); + this._focusedDropdown = null; + } +}; + +/** + * Open drop down menu + * @param {HTMLElement} dropdown - dropdown element that has a closed dropdown menu + */ +ScheduleCreationPopup.prototype._openDropdownMenuView = function(dropdown) { + domutil.addClass(dropdown, config.classname('open')); + this._focusedDropdown = dropdown; +}; + +/** + * If click dropdown menu item, close dropdown menu + * @param {HTMLElement} target click event target + * @returns {boolean} whether + */ +ScheduleCreationPopup.prototype._selectDropdownMenuItem = function(target) { + var itemClassName = config.classname('dropdown-menu-item'); + var iconClassName = config.classname('icon'); + var contentClassName = config.classname('content'); + var selectedItem = domutil.hasClass(target, itemClassName) ? target : domutil.closest(target, '.' + itemClassName); + var bgColor, title, dropdown, dropdownBtn; + + if (!selectedItem) { + return false; + } + + bgColor = domutil.find('.' + iconClassName, selectedItem).style.backgroundColor || 'transparent'; + title = domutil.find('.' + contentClassName, selectedItem).innerHTML; + + dropdown = domutil.closest(selectedItem, config.classname('.dropdown')); + dropdownBtn = domutil.find(config.classname('.dropdown-button'), dropdown); + domutil.find('.' + contentClassName, dropdownBtn).innerText = title; + + if (domutil.hasClass(dropdown, config.classname('section-calendar'))) { + domutil.find('.' + iconClassName, dropdownBtn).style.backgroundColor = bgColor; + this._selectedCal = common.find(this.calendars, function(cal) { + return String(cal.id) === domutil.getData(selectedItem, 'calendarId'); + }); + } + + domutil.removeClass(dropdown, config.classname('open')); + + return true; +}; + +/** + * Toggle allday checkbox state + * @param {HTMLElement} target click event target + * @returns {boolean} whether event target is allday section or not + */ +ScheduleCreationPopup.prototype._toggleIsAllday = function(target) { + var className = config.classname('section-allday'); + var alldaySection = domutil.hasClass(target, className) ? target : domutil.closest(target, '.' + className); + var checkbox; + + if (alldaySection) { + checkbox = domutil.find(config.classname('.checkbox-square'), alldaySection); + checkbox.checked = !checkbox.checked; + + return true; + } + + return false; +}; + +/** + * Toggle private button + * @param {HTMLElement} target click event target + * @returns {boolean} whether event target is private section or not + */ +ScheduleCreationPopup.prototype._toggleIsPrivate = function(target) { + var className = config.classname('section-private'); + var privateSection = domutil.hasClass(target, className) ? target : domutil.closest(target, '.' + className); + + if (privateSection) { + if (domutil.hasClass(privateSection, config.classname('public'))) { + domutil.removeClass(privateSection, config.classname('public')); + } else { + domutil.addClass(privateSection, config.classname('public')); + } + + return true; + } + + return false; +}; + +/** + * Save new schedule if user clicked save button + * @emits ScheduleCreationPopup#saveSchedule + * @param {HTMLElement} target click event target + * @returns {boolean} whether save button is clicked or not + */ +// eslint-disable-next-line complexity +ScheduleCreationPopup.prototype._onClickSaveSchedule = function(target) { + var className = config.classname('popup-save'); + var cssPrefix = config.cssPrefix; + var title; + var startDate; + var endDate; + var rangeDate; + var form; + var isAllDay; + + if (!domutil.hasClass(target, className) && !domutil.closest(target, '.' + className)) { + return false; + } + + title = domutil.get(cssPrefix + 'schedule-title'); + + startDate = new TZDate(this.rangePicker.getStartDate()); + endDate = new TZDate(this.rangePicker.getEndDate()); + + if (!this._validateForm(title, startDate, endDate)) { + if (!title.value) { + title.focus(); + } + + return false; + } + + isAllDay = !!domutil.get(cssPrefix + 'schedule-allday').checked; + rangeDate = this._getRangeDate(startDate, endDate, isAllDay); + + form = { + calendarId: this._selectedCal ? this._selectedCal.id : null, + title: title, + location: domutil.get(cssPrefix + 'schedule-location'), + start: rangeDate.start, + end: rangeDate.end, + isAllDay: isAllDay, + state: domutil.get(cssPrefix + 'schedule-state').innerText, + isPrivate: !domutil.hasClass(domutil.get(cssPrefix + 'schedule-private'), config.classname('public')) + }; + + if (this._isEditMode) { + this._onClickUpdateSchedule(form); + } else { + this._onClickCreateSchedule(form); + } + + this.hide(); + + return true; +}; + +/** + * @override + * @param {object} viewModel - view model from factory/monthView + */ +ScheduleCreationPopup.prototype.render = function(viewModel) { + var calendars = this.calendars; + var layer = this.layer; + var self = this; + var boxElement, guideElements; + + viewModel.zIndex = this.layer.zIndex + 5; + viewModel.calendars = calendars; + if (calendars.length) { + viewModel.selectedCal = this._selectedCal = calendars[0]; + } + + this._isEditMode = viewModel.schedule && viewModel.schedule.id; + if (this._isEditMode) { + boxElement = viewModel.target; + viewModel = this._makeEditModeData(viewModel); + } else { + this.guide = viewModel.guide; + guideElements = this._getGuideElements(this.guide); + boxElement = guideElements.length ? guideElements[0] : null; + } + layer.setContent(tmpl(viewModel)); + this._createDatepicker(viewModel.start, viewModel.end, viewModel.isAllDay); + layer.show(); + + if (boxElement) { + this._setPopupPositionAndArrowDirection(boxElement.getBoundingClientRect()); + } + + util.debounce(function() { + domevent.on(document.body, 'mousedown', self._onMouseDown, self); + })(); +}; + +/** + * Make view model for edit mode + * @param {object} viewModel - original view model from 'beforeCreateEditPopup' + * @returns {object} - edit mode view model + */ +ScheduleCreationPopup.prototype._makeEditModeData = function(viewModel) { + var schedule = viewModel.schedule; + var title, isPrivate, location, startDate, endDate, isAllDay, state; + var raw = schedule.raw || {}; + var calendars = this.calendars; + + var id = schedule.id; + title = schedule.title; + isPrivate = raw['class'] === 'private'; + location = schedule.location; + startDate = schedule.start; + endDate = schedule.end; + isAllDay = schedule.isAllDay; + state = schedule.state; + + viewModel.selectedCal = this._selectedCal = common.find(this.calendars, function(cal) { + return cal.id === viewModel.schedule.calendarId; + }); + + this._schedule = schedule; + + return { + id: id, + selectedCal: this._selectedCal, + calendars: calendars, + title: title, + isPrivate: isPrivate, + location: location, + isAllDay: isAllDay, + state: state, + start: startDate, + end: endDate, + raw: { + class: isPrivate ? 'private' : 'public' + }, + zIndex: this.layer.zIndex + 5, + isEditMode: this._isEditMode + }; +}; + +/** + * Set popup position and arrow direction to apear near guide element + * @param {MonthCreationGuide|TimeCreationGuide|DayGridCreationGuide} guideBound - creation guide element + */ +ScheduleCreationPopup.prototype._setPopupPositionAndArrowDirection = function(guideBound) { + var layer = domutil.find(config.classname('.popup'), this.layer.container); + var layerSize = { + width: layer.offsetWidth, + height: layer.offsetHeight + }; + var containerBound = this.container.getBoundingClientRect(); + var pos = this._calcRenderingData(layerSize, containerBound, guideBound); + + this.layer.setPosition(pos.x, pos.y); + this._setArrowDirection(pos.arrow); +}; + +/** + * Get guide elements from creation guide object + * It is used to calculate rendering position of popup + * It will be disappeared when hiding popup + * @param {MonthCreationGuide|TimeCreationGuide|AlldayCreationGuide} guide - creation guide + * @returns {Array.} creation guide element + */ +ScheduleCreationPopup.prototype._getGuideElements = function(guide) { + var guideElements = []; + var i = 0; + + if (guide.guideElement) { + guideElements.push(guide.guideElement); + } else if (guide.guideElements) { + for (; i < MAX_WEEK_OF_MONTH; i += 1) { + if (guide.guideElements[i]) { + guideElements.push(guide.guideElements[i]); + } + } + } + + return guideElements; +}; + +/** + * Get guide element's bound data which only includes top, right, bottom, left + * @param {Array.} guideElements - creation guide elements + * @returns {Object} - popup bound data + */ +ScheduleCreationPopup.prototype._getBoundOfFirstRowGuideElement = function(guideElements) { + var bound; + + if (!guideElements.length) { + return null; + } + + bound = guideElements[0].getBoundingClientRect(); + + return { + top: bound.top, + left: bound.left, + bottom: bound.bottom, + right: bound.right + }; +}; + +/** + * Get calculate rendering positions of y and arrow direction by guide block elements + * @param {number} guideBoundTop - guide block's top + * @param {number} guideBoundBottom - guide block's bottom + * @param {number} layerHeight - popup layer's height + * @param {number} containerTop - container's top + * @param {number} containerBottom - container's bottom + * @returns {YAndArrowDirection} y and arrowDirection + */ +ScheduleCreationPopup.prototype._getYAndArrowDirection = function( + guideBoundTop, + guideBoundBottom, + layerHeight, + containerTop, + containerBottom +) { + var arrowDirection = 'arrow-bottom'; + var MARGIN = 3; + var y = guideBoundTop - layerHeight; + + if (y < containerTop) { + y = guideBoundBottom - containerTop + MARGIN; + arrowDirection = 'arrow-top'; + } else { + y = y - containerTop - MARGIN; + } + + if (y + layerHeight > containerBottom) { + y = containerBottom - layerHeight - containerTop - MARGIN; + } + + /** + * @typedef {Object} YAndArrowDirection + * @property {number} y - top position of popup layer + * @property {string} [arrowDirection] - direction of popup arrow + */ + return { + y: y, + arrowDirection: arrowDirection + }; +}; + +/** +* Get calculate rendering x position and arrow left by guide block elements +* @param {number} guideBoundLeft - guide block's left +* @param {number} guideBoundRight - guide block's right +* @param {number} layerWidth - popup layer's width +* @param {number} containerLeft - container's left +* @param {number} containerRight - container's right +* @returns {XAndArrowLeft} x and arrowLeft +*/ +ScheduleCreationPopup.prototype._getXAndArrowLeft = function( + guideBoundLeft, + guideBoundRight, + layerWidth, + containerLeft, + containerRight +) { + var guideHorizontalCenter = (guideBoundLeft + guideBoundRight) / 2; + var x = guideHorizontalCenter - (layerWidth / 2); + var ARROW_WIDTH_HALF = 8; + var arrowLeft; + + if (x + layerWidth > containerRight) { + x = guideBoundRight - layerWidth + ARROW_WIDTH_HALF; + arrowLeft = guideHorizontalCenter - x; + } else { + x += ARROW_WIDTH_HALF; + } + + if (x < containerLeft) { + x = 0; + arrowLeft = guideHorizontalCenter - containerLeft - ARROW_WIDTH_HALF; + } else { + x = x - containerLeft - ARROW_WIDTH_HALF; + } + + /** + * @typedef {Object} XAndArrowLeft + * @property {number} x - left position of popup layer + * @property {numbe3er} arrowLeft - relative position of popup arrow, if it is not set, arrow appears on the middle of popup + */ + return { + x: x, + arrowLeft: arrowLeft + }; +}; + +/** + * Calculate rendering position usering guide elements + * @param {{width: {number}, height: {number}}} layerSize - popup layer's width and height + * @param {{top: {number}, left: {number}, right: {number}, bottom: {number}}} containerBound - width and height of the upper layer, that acts as a border of popup + * @param {{top: {number}, left: {number}, right: {number}, bottom: {number}}} guideBound - guide element bound data + * @returns {PopupRenderingData} rendering position of popup and popup arrow + */ +ScheduleCreationPopup.prototype._calcRenderingData = function(layerSize, containerBound, guideBound) { + var yPosInfo = this._getYAndArrowDirection( + guideBound.top, + guideBound.bottom, + layerSize.height, + containerBound.top, + containerBound.bottom + ); + var xPosInfo = this._getXAndArrowLeft( + guideBound.left, + guideBound.right, + layerSize.width, + containerBound.left, + containerBound.right + ); + + /** + * @typedef {Object} PopupRenderingData + * @property {number} x - left position + * @property {number} y - top position + * @property {string} arrow.direction - direction of popup arrow + * @property {number} [arrow.position] - relative position of popup arrow, if it is not set, arrow appears on the middle of popup + */ + return { + x: xPosInfo.x, + y: yPosInfo.y, + arrow: { + direction: yPosInfo.arrowDirection, + position: xPosInfo.arrowLeft + } + }; +}; + +/** + * Set arrow's direction and position + * @param {Object} arrow rendering data for popup arrow + */ +ScheduleCreationPopup.prototype._setArrowDirection = function(arrow) { + var direction = arrow.direction || 'arrow-bottom'; + var arrowEl = domutil.get(config.classname('popup-arrow')); + var borderElement = domutil.find(config.classname('.popup-arrow-border', arrowEl)); + + if (direction !== config.classname('arrow-bottom')) { + domutil.removeClass(arrowEl, config.classname('arrow-bottom')); + domutil.addClass(arrowEl, config.classname(direction)); + } + + if (arrow.position) { + borderElement.style.left = arrow.position + 'px'; + } +}; + +/** + * Create date range picker using start date and end date + * @param {TZDate} start - start date + * @param {TZDate} end - end date + * @param {boolean} isAllDay - isAllDay + */ +ScheduleCreationPopup.prototype._createDatepicker = function(start, end, isAllDay) { + var cssPrefix = config.cssPrefix; + + this.rangePicker = DatePicker.createRangePicker({ + startpicker: { + date: new TZDate(start).toDate(), + input: '#' + cssPrefix + 'schedule-start-date', + container: '#' + cssPrefix + 'startpicker-container' + }, + endpicker: { + date: new TZDate(end).toDate(), + input: '#' + cssPrefix + 'schedule-end-date', + container: '#' + cssPrefix + 'endpicker-container' + }, + format: isAllDay ? 'yyyy-MM-dd' : 'yyyy-MM-dd HH:mm', + timepicker: isAllDay ? null : { + showMeridiem: false, + usageStatistics: this._usageStatistics + }, + usageStatistics: this._usageStatistics + }); +}; + +/** + * Hide layer + */ +ScheduleCreationPopup.prototype.hide = function() { + this.layer.hide(); + + if (this.guide) { + this.guide.clearGuideElement(); + this.guide = null; + } + + domevent.off(document.body, 'mousedown', this._onMouseDown, this); +}; + +/** + * refresh layer + */ +ScheduleCreationPopup.prototype.refresh = function() { + if (this._viewModel) { + this.layer.setContent(this.tmpl(this._viewModel)); + } +}; + +/** + * Set calendar list + * @param {Array.} calendars - calendar list + */ +ScheduleCreationPopup.prototype.setCalendars = function(calendars) { + this.calendars = calendars || []; +}; + +/** + * Validate the form + * @param {string} title title of then entered schedule + * @param {TZDate} startDate start date time from range picker + * @param {TZDate} endDate end date time from range picker + * @returns {boolean} Returns false if the form is not valid for submission. + */ +ScheduleCreationPopup.prototype._validateForm = function(title, startDate, endDate) { + if (!title.value) { + return false; + } + + if (!startDate && !endDate) { + return false; + } + + if (datetime.compare(startDate, endDate) === 1) { + return false; + } + + return true; +}; + +/** + * Get range date from range picker + * @param {TZDate} startDate start date time from range picker + * @param {TZDate} endDate end date time from range picker + * @param {boolean} isAllDay whether it is an all-day schedule + * @returns {RangeDate} Returns the start and end time data that is the range date + */ +ScheduleCreationPopup.prototype._getRangeDate = function(startDate, endDate, isAllDay) { + var start = isAllDay ? datetime.start(startDate) : startDate; + var end = isAllDay ? datetime.renderEnd(startDate, endDate) : endDate; + + /** + * @typedef {object} RangeDate + * @property {TZDate} start start time + * @property {TZDate} end end time + */ + return { + start: new TZDate(start), + end: new TZDate(end) + }; +}; + +/** + * Request schedule model creation to controller by custom schedules. + * @fires {ScheduleCreationPopup#beforeUpdateSchedule} + * @param {{ + calendarId: {string}, + title: {string}, + location: {string}, + start: {TZDate}, + end: {TZDate}, + isAllDay: {boolean}, + state: {string}, + isPrivate: {boolean} + }} form schedule input form data +*/ +ScheduleCreationPopup.prototype._onClickUpdateSchedule = function(form) { + var changes = common.getScheduleChanges( + this._schedule, + ['calendarId', 'title', 'location', 'start', 'end', 'isAllDay', 'state'], + { + calendarId: form.calendarId, + title: form.title.value, + location: form.location.value, + start: form.start, + end: form.end, + isAllDay: form.isAllDay, + state: form.state + } + ); + + /** + * @event ScheduleCreationPopup#beforeUpdateSchedule + * @type {object} + * @property {Schedule} schedule - schedule object to be updated + */ + this.fire('beforeUpdateSchedule', { + schedule: util.extend({ + raw: { + class: form.isPrivate ? 'private' : 'public' + } + }, this._schedule), + changes: changes, + start: form.start, + end: form.end, + calendar: this._selectedCal, + triggerEventName: 'click' + }); +}; + +/** + * Request the controller to update the schedule model according to the custom schedule. + * @fires {ScheduleCreationPopup#beforeCreateSchedule} + * @param {{ + calendarId: {string}, + title: {string}, + location: {string}, + start: {TZDate}, + end: {TZDate}, + isAllDay: {boolean}, + state: {string} + }} form schedule input form data + */ +ScheduleCreationPopup.prototype._onClickCreateSchedule = function(form) { + /** + * @event ScheduleCreationPopup#beforeCreateSchedule + * @type {object} + * @property {Schedule} schedule - new schedule instance to be added + */ + this.fire('beforeCreateSchedule', { + calendarId: form.calendarId, + title: form.title.value, + location: form.location.value, + raw: { + class: form.isPrivate ? 'private' : 'public' + }, + start: form.start, + end: form.end, + isAllDay: form.isAllDay, + state: form.state + }); +}; + +module.exports = ScheduleCreationPopup; + + +/***/ }), + +/***/ "./src/js/view/popup/scheduleDetailPopup.js": +/*!**************************************************!*\ + !*** ./src/js/view/popup/scheduleDetailPopup.js ***! + \**************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; +/* eslint-disable vars-on-top */ +/** + * @fileoverview Floating layer for showing detail schedule + * @author NHN FE Development Lab + */ + + +var View = __webpack_require__(/*! ../../view/view */ "./src/js/view/view.js"); +var FloatingLayer = __webpack_require__(/*! ../../common/floatingLayer */ "./src/js/common/floatingLayer.js"); +var util = __webpack_require__(/*! tui-code-snippet */ "tui-code-snippet"); +var config = __webpack_require__(/*! ../../config */ "./src/js/config.js"), + domevent = __webpack_require__(/*! ../../common/domevent */ "./src/js/common/domevent.js"), + domutil = __webpack_require__(/*! ../../common/domutil */ "./src/js/common/domutil.js"); +var tmpl = __webpack_require__(/*! ../template/popup/scheduleDetailPopup.hbs */ "./src/js/view/template/popup/scheduleDetailPopup.hbs"); +var tz = __webpack_require__(/*! ../../common/timezone */ "./src/js/common/timezone.js"); +var TZDate = tz.Date; +var datetime = __webpack_require__(/*! ../../common/datetime */ "./src/js/common/datetime.js"); + +/** + * @constructor + * @extends {View} + * @param {HTMLElement} container - container element + */ +function ScheduleDetailPopup(container) { + View.call(this, container); + /** + * @type {FloatingLayer} + */ + this.layer = new FloatingLayer(null, container); + + /** + * cached view model + * @type {object} + */ + this._viewModel = null; + this._schedule = null; + this._calendar = null; + + domevent.on(container, 'click', this._onClick, this); +} + +util.inherit(ScheduleDetailPopup, View); + +/** + * Mousedown event handler for hiding popup layer when user mousedown outside of + * layer + * @param {MouseEvent} mouseDownEvent - mouse event object + */ +ScheduleDetailPopup.prototype._onMouseDown = function(mouseDownEvent) { + var target = domevent.getEventTarget(mouseDownEvent), + popupLayer = domutil.closest(target, config.classname('.floating-layer')); + + if (popupLayer) { + return; + } + + this.hide(); +}; + +/** + * @override + */ +ScheduleDetailPopup.prototype.destroy = function() { + this.layer.destroy(); + this.layer = null; + domevent.off(this.container, 'click', this._onClick, this); + domevent.off(document.body, 'mousedown', this._onMouseDown, this); + View.prototype.destroy.call(this); +}; + +/** + * @override + * Click event handler for close button + * @param {MouseEvent} clickEvent - mouse event object + */ +ScheduleDetailPopup.prototype._onClick = function(clickEvent) { + var target = domevent.getEventTarget(clickEvent); + + this._onClickEditSchedule(target); + + this._onClickDeleteSchedule(target); +}; + +/** + * @fires ScheduleDetailPopup#clickEditSchedule + * @param {HTMLElement} target - event target + */ +ScheduleDetailPopup.prototype._onClickEditSchedule = function(target) { + var className = config.classname('popup-edit'); + + if (domutil.hasClass(target, className) || domutil.closest(target, '.' + className)) { + this.fire('beforeUpdateSchedule', { + schedule: this._schedule, + triggerEventName: 'click', + target: this._scheduleEl + }); + + this.hide(); + } +}; + +/** + * @fires ScheduleDetailPopup#clickEditSchedule + * @param {HTMLElement} target - event target + */ +ScheduleDetailPopup.prototype._onClickDeleteSchedule = function(target) { + var className = config.classname('popup-delete'); + + if (domutil.hasClass(target, className) || domutil.closest(target, '.' + className)) { + this.fire('beforeDeleteSchedule', { + schedule: this._schedule + }); + + this.hide(); + } +}; + +/** + * @override + * @param {object} viewModel - view model from factory/monthView + */ +ScheduleDetailPopup.prototype.render = function(viewModel) { + var layer = this.layer; + var self = this; + + layer.setContent(tmpl({ + schedule: this._getScheduleModel(viewModel.schedule), + calendar: viewModel.calendar + })); + layer.show(); + this._setPopupPositionAndArrowDirection(viewModel.event); + + this._schedule = viewModel.schedule; + this._calendar = viewModel.calendar; + + util.debounce(function() { + domevent.on(document.body, 'mousedown', self._onMouseDown, self); + })(); +}; + +// eslint-disable-next-line complexity +ScheduleDetailPopup.prototype._getScheduleModel = function(scheduleViewModel) { + var viewModel = util.extend({}, scheduleViewModel); + var dayStart = datetime.start(scheduleViewModel.start); + var startDayOffset = dayStart.toDate().getTimezoneOffset(); + var nativeOffsetMs = tz.getNativeOffsetMs(); + var hasPrimaryTimezoneCustomSetting = tz.hasPrimaryTimezoneCustomSetting(); + var startOffset = viewModel.start.toDate().getTimezoneOffset(); + var endOffset = viewModel.end.toDate().getTimezoneOffset(); + var primaryTimezoneCode = tz.getPrimaryTimezoneName(); + var primaryOffset = tz.getPrimaryOffset(); + var startTimezoneOffset = tz.getOffsetByTimezoneName( + primaryTimezoneCode, + viewModel.start.getTime() + ); + var endTimezoneOffset = tz.getOffsetByTimezoneName( + primaryTimezoneCode, + viewModel.end.getTime() + ); + var MIN_TO_MS = 60 * 1000; + var offsetDiffMs = 0; + var start, end; + + if ( + hasPrimaryTimezoneCustomSetting && + tz.isNativeOsUsingDSTTimezone() && + nativeOffsetMs !== startDayOffset + ) { + // When using a custom time zone, the native time zone offset is fixed and rendered. + // So, The fixed and rendered time should be recalculated as the original time zone offset. + // The current system OS local time is not affected by summer/standard time and the schedule should always be displayed in the same location. + offsetDiffMs = (startOffset * MIN_TO_MS) - nativeOffsetMs; + start = new TZDate(viewModel.start); + start.addMilliseconds(offsetDiffMs); + + viewModel.start = start; + + offsetDiffMs = (endOffset * MIN_TO_MS) - nativeOffsetMs; + end = new TZDate(viewModel.end); + end.addMilliseconds(offsetDiffMs); + + viewModel.end = end; + } + + if ( + hasPrimaryTimezoneCustomSetting && + tz.isPrimaryUsingDSTTimezone() && + (primaryOffset !== startTimezoneOffset || primaryOffset !== endTimezoneOffset) + ) { + // The custom time zone is a time zone where two offsets including DST are applied. + // The first rendered schedule is calculated and drawn with the offset calculated at the access time(system OS local time). + // It should be recalculated with the original time zone offset. + offsetDiffMs = (primaryOffset - startTimezoneOffset) * MIN_TO_MS; + + start = new TZDate(viewModel.start); + start.addMilliseconds(offsetDiffMs); + + viewModel.start = start; + + offsetDiffMs = (primaryOffset - endTimezoneOffset) * MIN_TO_MS; + + end = new TZDate(viewModel.end); + end.addMilliseconds(offsetDiffMs); + + viewModel.end = end; + } + + return viewModel; +}; + +/** + * Set popup position and arrow direction to apear near guide element + * @param {Event} event - creation guide element + */ +ScheduleDetailPopup.prototype._setPopupPositionAndArrowDirection = function(event) { + var layer = domutil.find(config.classname('.popup'), this.layer.container); + var layerSize = { + width: layer.offsetWidth, + height: layer.offsetHeight + }; + + var containerBound = this.container.getBoundingClientRect(); + var scheduleEl = domevent.getEventTarget(event); + var blockEl = domutil.closest(scheduleEl, config.classname('.time-date-schedule-block')) + || domutil.closest(scheduleEl, config.classname('.weekday-schedule')) + || scheduleEl; + var scheduleBound = blockEl.getBoundingClientRect(); + var pos; + + this._scheduleEl = blockEl; + + pos = this._calcRenderingData(layerSize, containerBound, scheduleBound); + this.layer.setPosition(pos.x, pos.y); + this._setArrowDirection(pos.arrow); +}; + +/** + * Get calculate rendering positions of y and arrow top by schedule block elements + * @param {number} scheduleBoundTop - schedule block's top + * @param {number} scheduleBoundBottom - schedule block's bottom + * @param {number} layerHeight - popup layer's height + * @param {number} containerTop - container's top + * @param {number} containerBottom - container's bottom + * @returns {YAndArrowTop} y and arrowTop + */ +ScheduleDetailPopup.prototype._getYAndArrowTop = function( + scheduleBoundTop, + scheduleBoundBottom, + layerHeight, + containerTop, + containerBottom +) { + var ARROW_WIDTH_HALF = 8; + var scheduleVerticalCenter, y, arrowTop; + + scheduleBoundTop = scheduleBoundTop < 0 ? 0 : scheduleBoundTop; + scheduleVerticalCenter = (scheduleBoundTop + scheduleBoundBottom) / 2; + y = scheduleVerticalCenter - (layerHeight / 2); + + if (y < containerTop) { + y = 0; + arrowTop = scheduleVerticalCenter - containerTop - ARROW_WIDTH_HALF; + } else if (y + layerHeight > containerBottom) { + y = Math.max(containerBottom - layerHeight - containerTop, 0); + arrowTop = scheduleVerticalCenter - y - containerTop - ARROW_WIDTH_HALF; + } else { + y -= containerTop; + } + + if (arrowTop < 0 || arrowTop > layerHeight) { + arrowTop = null; + } + + /** + * @typedef {Object} YAndArrowTop + * @property {number} y - top position of popup layer + * @property {number} [arrowTop] - relative position of popup arrow, if it is not set, arrow appears on the middle of popup + */ + return { + y: y, + arrowTop: arrowTop + }; +}; + +/** + * Get calculate rendering x position and arrow direction by schedule block elements + * @param {number} scheduleBoundLeft - schedule block's left + * @param {number} scheduleBoundRight - schedule block's right + * @param {number} layerWidth - popup layer's width + * @param {number} containerLeft - container's left + * @param {number} containerRight - container's right + * @returns {XAndArrowDirection} x and arrowDirection + */ +ScheduleDetailPopup.prototype._getXAndArrowDirection = function( + scheduleBoundLeft, + scheduleBoundRight, + layerWidth, + containerLeft, + containerRight +) { + var arrowDirection = 'arrow-left'; + var x = scheduleBoundRight; + var MARGIN = 4; + + if (x + layerWidth > containerRight) { + arrowDirection = 'arrow-right'; + x = scheduleBoundLeft - layerWidth - MARGIN; + } else { + x += MARGIN; + } + + if (x < containerLeft) { + x = 0; + } else { + x -= containerLeft; + } + + /** + * @typedef {Object} XAndArrowDirection + * @property {number} x - left position of popup layer + * @property {string} arrowDirection - direction of popup arrow + */ + return { + x: x, + arrowDirection: arrowDirection + }; +}; + +/** + * Calculate rendering position usering guide elements + * @param {{width: {number}, height: {number}}} layerSize - popup layer's width and height + * @param {{top: {number}, left: {number}, right: {number}, bottom: {number}}} containerBound - width and height of the upper layer, that acts as a border of popup + * @param {{top: {number}, left: {number}, right: {number}, bottom: {number}}} scheduleBound - guide element bound data + * @returns {PopupRenderingData} rendering position of popup and popup arrow + */ +ScheduleDetailPopup.prototype._calcRenderingData = function(layerSize, containerBound, scheduleBound) { + var yPosInfo = this._getYAndArrowTop( + scheduleBound.top, + scheduleBound.bottom, + layerSize.height, + containerBound.top, + containerBound.bottom + ); + var xPosInfo = this._getXAndArrowDirection( + scheduleBound.left, + scheduleBound.right, + layerSize.width, + containerBound.left, + containerBound.right + ); + + /** + * @typedef {Object} PopupRenderingData + * @property {number} x - left position + * @property {number} y - top position + * @property {string} arrow.direction - direction of popup arrow + * @property {number} [arrow.position] - relative position of popup arrow, if it is not set, arrow appears on the middle of popup + */ + return { + x: xPosInfo.x, + y: yPosInfo.y, + arrow: { + direction: xPosInfo.arrowDirection, + position: yPosInfo.arrowTop + } + }; +}; + +/** + * Set arrow's direction and position + * @param {Object} arrow rendering data for popup arrow + */ +ScheduleDetailPopup.prototype._setArrowDirection = function(arrow) { + var direction = arrow.direction || 'arrow-left'; + var arrowEl = domutil.find(config.classname('.popup-arrow'), this.layer.container); + var borderElement = domutil.find(config.classname('.popup-arrow-border'), arrowEl); + + if (direction !== config.classname('arrow-left')) { + domutil.removeClass(arrowEl, config.classname('arrow-left')); + domutil.addClass(arrowEl, config.classname(direction)); + } + + if (arrow.position) { + borderElement.style.top = arrow.position + 'px'; + } +}; + +/** + * Hide layer + */ +ScheduleDetailPopup.prototype.hide = function() { + this.layer.hide(); + + if (this.guide) { + this.guide.clearGuideElement(); + this.guide = null; + } + + domevent.off(document.body, 'mousedown', this._onMouseDown, this); +}; + +/** + * refresh layer + */ +ScheduleDetailPopup.prototype.refresh = function() { + if (this._viewModel) { + this.layer.setContent(this.tmpl(this._viewModel)); + } +}; + +module.exports = ScheduleDetailPopup; + + +/***/ }), + +/***/ "./src/js/view/template/helper.js": +/*!****************************************!*\ + !*** ./src/js/view/template/helper.js ***! + \****************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; +/* eslint complexity: 0 */ +/** + * @fileoverview Helpers for handlebar templates. + * @author NHN FE Development Lab + */ + + +var util = __webpack_require__(/*! tui-code-snippet */ "tui-code-snippet"); +var Handlebars = __webpack_require__(/*! handlebars-template-loader/runtime */ "./node_modules/handlebars-template-loader/runtime/index.js"); +var datetime = __webpack_require__(/*! ../../common/datetime */ "./src/js/common/datetime.js"); +var common = __webpack_require__(/*! ../../common/common */ "./src/js/common/common.js"); +var config = __webpack_require__(/*! ../../config */ "./src/js/config.js"); +var mmax = Math.max; +var SIXTY_MINUTES = 60; +var helpers = { + /** + * Stamp supplied object + * + * Commonly use for rendering object's unique ID to rendered view + * @param {object} obj - object to stamp + * @returns {number} stamp value + */ + 'stamp': function(obj) { + return util.stamp(obj); + }, + + /** + * Whether supplied object are equal? + * @param {*} a - a + * @param {*} b - b + * @returns {boolean} result of operation + */ + 'equal': function(a, b) { + return a === b; + }, + + /** + * OR + * @param {*} a - a + * @param {*} b - b + * @returns {boolean} or + */ + 'or': function(a, b) { + return a || b; + }, + + /** + * AND + * @param {*} a - a + * @param {*} b - b + * @returns {boolean} or + */ + 'and': function(a, b) { + return a && b; + }, + + /** + * Compare object or apply logical operation by customizable oper parameter + * @param {*} a - a + * @param {string} oper - operator ex) '==', '<' + * @param {*} b - b + * @param {Handlebars} options - handlebar options + * @returns {boolean} result of operation + */ + 'fi': function(a, oper, b, options) { + switch (oper) { + case '==': + return (a == b) ? options.fn(this) : options.inverse(this); // eslint-disable-line + case '===': + return (a === b) ? options.fn(this) : options.inverse(this); + case '!==': + return (a !== b) ? options.fn(this) : options.inverse(this); + case '<': + return (a < b) ? options.fn(this) : options.inverse(this); + case '||': + return (a || b) ? options.fn(this) : options.inverse(this); + default: + throw new Error('Not match operation'); + } + }, + + /** + * Get hhmm formatted time str + * @param {Date} date - date object + * @returns {string} formatted value + */ + 'hhmm': function(date) { + return datetime.format(date, 'HH:mm'); + }, + + /** + * Get `width` stylesheet string + * @param {number} width - width percentage + * @returns {string} css style part + */ + 'common-width': function(width) { + return getElSize(width, '%', 'width'); + }, + + /** + * Get element left based on narrowWeekend + * @param {object} viewModel - view model + * @param {Array} grids - dates information + * @returns {number} element left + */ + 'grid-left': function(viewModel, grids) { + return getElLeft(viewModel, grids); + }, + + /** + * Get element width based on narrowWeekend + * @param {object} viewModel - view model + * @param {Array} grids - dates information + * @returns {number} element width + */ + 'grid-width': function(viewModel, grids) { + return getElWidth(viewModel, grids); + }, + + /** + * Use in time.hbs + * @param {ScheduleViewModel} viewModel viewModel + * @returns {string} element size css class + */ + 'time-scheduleBlock': function(viewModel) { + var top = getElSize(viewModel.top, 'px', 'top'), + left = getElSize(viewModel.left, '%', 'left'), + width = getElSize(viewModel.width, '%', 'width'), + height = getElSize(viewModel.height, 'px', 'height'); + + return [top, left, width, height].join(';'); + }, + + 'month-scheduleBlock': function(viewModel, grids, blockHeight, paddingTop) { + var top = getElSize(((viewModel.top - 1) * blockHeight) + paddingTop, 'px', 'top'); + var left = getElSize(grids[viewModel.left] ? grids[viewModel.left].left : 0, '%', 'left'); + var width = getElSize(getElWidth(viewModel, grids), '%', 'width'); + var height = getElSize(viewModel.height, 'px', 'height'); + + return [top, left, width, height].join(';'); + }, + + 'holiday': function(day) { + var cssClass = ''; + + if (day === 0) { + cssClass = config.classname('holiday-sun'); + } + + if (day === 6) { + cssClass = config.classname('holiday-sat'); + } + + return cssClass; + }, + + /** + * Add supplied two parameter + * @param {*} a - a + * @param {*} b - b + * @returns {number} result of operation + */ + 'add': function(a, b) { + return a + b; + }, + + /** + * Multiply supplied two parameter + * @param {*} a - a + * @param {*} b - b + * @returns {number} result of operation + */ + 'multiply': function(a, b) { + return a * b; + }, + + /** + * Divide supplied two parameter + * @param {*} a - a + * @param {*} b - b + * @returns {number} result of operation + */ + 'divide': function(a, b) { + return a / b; + }, + + /** + * Subtract supplied two parameter + * @param {*} a - a + * @param {*} b - b + * @returns {number} result of operation + */ + 'subtract': function(a, b) { + return a - b; + }, + + 'getRight': function(a, b) { + return mmax(0, 100 - (a + b)); + }, + + /** + * Get css prefix in global configuration + * @returns {string} css prefix + */ + 'CSS_PREFIX': function() { + return config.cssPrefix; + }, + + 'reverse': function(array) { + return array.slice().reverse(); + }, + + /********** + * Default schedule template + **********/ + + 'milestone-tmpl': function(model) { + var icon = config.classname('icon'); + var iconName = config.classname('ic-milestone'); + + return '' + common.stripTags(model.title) + ''; + }, + + 'milestoneTitle-tmpl': function() { + var className = config.classname('left-content'); + + return 'Milestone'; + }, + + 'task-tmpl': function(model) { + return '#' + model.title; + }, + + 'taskTitle-tmpl': function() { + var className = config.classname('left-content'); + + return 'Task'; + }, + + 'alldayTitle-tmpl': function() { + var className = config.classname('left-content'); + + return 'All Day'; + }, + + 'allday-tmpl': function(model) { + return common.stripTags(model.title); + }, + + 'time-tmpl': function(model) { + return common.stripTags(model.title); + }, + + 'goingDuration-tmpl': function(model) { + var goingDuration = model.goingDuration; + var hour = parseInt(goingDuration / SIXTY_MINUTES, 10); + var minutes = goingDuration % SIXTY_MINUTES; + + return 'GoingTime ' + datetime.leadingZero(hour, 2) + ':' + datetime.leadingZero(minutes, 2); + }, + + 'comingDuration-tmpl': function(model) { + var goingDuration = model.goingDuration; + var hour = parseInt(goingDuration / SIXTY_MINUTES, 10); + var minutes = goingDuration % SIXTY_MINUTES; + + return 'ComingTime ' + datetime.leadingZero(hour, 2) + ':' + datetime.leadingZero(minutes, 2); + }, + + 'monthMoreTitleDate-tmpl': function(date, dayname) { + var classDay = config.classname('month-more-title-day'); + var classDayLabel = config.classname('month-more-title-day-label'); + var day = util.pick(date.split('.'), 2); + + return '' + day + ' ' + dayname + ''; + }, + + 'monthMoreClose-tmpl': function() { + return ''; + }, + + 'monthGridHeader-tmpl': function(model) { + var date = parseInt(model.date.split('-')[2], 10); + var classNames = []; + + classNames.push(config.classname('weekday-grid-date')); + if (model.isToday) { + classNames.push(config.classname('weekday-grid-date-decorator')); + } + + return '' + date + ''; + }, + + 'monthGridHeaderExceed-tmpl': function(hiddenSchedules) { + var className = config.classname('weekday-grid-more-schedules'); + + return '' + hiddenSchedules + ' more'; + }, + + 'monthGridFooter-tmpl': function() { + return ''; + }, + + /* eslint no-unused-vars: 0 */ + 'monthGridFooterExceed-tmpl': function(hiddenSchedules) { + return ''; + }, + + 'monthDayname-tmpl': function(model) { + return model.label; + }, + + 'weekDayname-tmpl': function(model) { + var classDate = config.classname('dayname-date'); + var className = config.classname('dayname-name'); + + return '' + model.date + '  ' + model.dayName + ''; + }, + + 'weekGridFooterExceed-tmpl': function(hiddenSchedules) { + return '+' + hiddenSchedules; + }, + + 'dayGridTitle-tmpl': function(viewName) { + var tmpl = Handlebars.helpers[viewName + 'Title-tmpl']; + if (tmpl) { + return tmpl(viewName); + } + + return viewName; + }, + + 'schedule-tmpl': function(model) { + var tmpl = Handlebars.helpers[model.category + '-tmpl']; + if (tmpl) { + return tmpl(model); + } + + return ''; + }, + + 'collapseBtnTitle-tmpl': function() { + var iconName = config.classname('icon'); + var closeIconName = config.classname('ic-arrow-solid-top'); + + return ''; + }, + + 'timezoneDisplayLabel-tmpl': function(timezoneOffset, displayLabel) { + var gmt, hour, minutes; + + if (util.isUndefined(displayLabel)) { + gmt = timezoneOffset < 0 ? '-' : '+'; + hour = Math.abs(parseInt(timezoneOffset / SIXTY_MINUTES, 10)); + minutes = Math.abs(timezoneOffset % SIXTY_MINUTES); + displayLabel = gmt + datetime.leadingZero(hour, 2) + ':' + datetime.leadingZero(minutes, 2); + } + + return displayLabel; + }, + + 'timegridDisplayPrimayTime-tmpl': function(time) { + /* TODO: ì‚­ì œ í•„ìš” (will be deprecated) */ + return Handlebars.helpers['timegridDisplayPrimaryTime-tmpl'](time); + }, + + 'timegridDisplayPrimaryTime-tmpl': function(time) { + var hour = time.hour; + var meridiem = hour >= 12 ? 'pm' : 'am'; + + if (hour > 12) { + hour = hour - 12; + } + + return hour + ' ' + meridiem; + }, + + 'timegridDisplayTime-tmpl': function(time) { + return datetime.leadingZero(time.hour, 2) + ':' + datetime.leadingZero(time.minutes, 2); + }, + + 'timegridCurrentTime-tmpl': function(timezone) { + var templates = []; + + if (timezone.dateDifference) { + templates.push('[' + timezone.dateDifferenceSign + timezone.dateDifference + ']
'); + } + + templates.push(datetime.format(timezone.hourmarker, 'HH:mm')); + + return templates.join(''); + }, + + 'popupIsAllDay-tmpl': function() { + return 'All day'; + }, + + 'popupStateFree-tmpl': function() { + return 'Free'; + }, + + 'popupStateBusy-tmpl': function() { + return 'Busy'; + }, + + 'titlePlaceholder-tmpl': function() { + return 'Subject'; + }, + + 'locationPlaceholder-tmpl': function() { + return 'Location'; + }, + + 'startDatePlaceholder-tmpl': function() { + return 'Start date'; + }, + + 'endDatePlaceholder-tmpl': function() { + return 'End date'; + }, + 'popupSave-tmpl': function() { + return 'Save'; + }, + 'popupUpdate-tmpl': function() { + return 'Update'; + }, + 'popupDetailDate-tmpl': function(isAllDay, start, end) { + var isSameDate = datetime.isSameDate(start, end); + var endFormat = (isSameDate ? '' : 'YYYY.MM.DD ') + 'hh:mm tt'; + + if (isAllDay) { + return datetime.format(start, 'YYYY.MM.DD') + (isSameDate ? '' : ' - ' + datetime.format(end, 'YYYY.MM.DD')); + } + + return (datetime.format(start, 'YYYY.MM.DD hh:mm tt') + ' - ' + datetime.format(end, endFormat)); + }, + 'popupDetailLocation-tmpl': function(schedule) { + return schedule.location; + }, + 'popupDetailUser-tmpl': function(schedule) { + return (schedule.attendees || []).join(', '); + }, + 'popupDetailState-tmpl': function(schedule) { + return schedule.state || 'Busy'; + }, + 'popupDetailRepeat-tmpl': function(schedule) { + return schedule.recurrenceRule; + }, + 'popupDetailBody-tmpl': function(schedule) { + return schedule.body; + }, + 'popupEdit-tmpl': function() { + return 'Edit'; + }, + 'popupDelete-tmpl': function() { + return 'Delete'; + } +}; + +/** + * Get CSS syntax for element size + * @param {number} value - size value to apply element + * @param {string} postfix - postfix string ex) px, em, % + * @param {string} prefix - property name ex) width, height + * @returns {string} CSS syntax + */ +function getElSize(value, postfix, prefix) { + prefix = prefix || ''; + if (util.isNumber(value)) { + return prefix + ':' + value + postfix; + } + + return prefix + ':auto'; +} + +/** + * Get element left based on narrowWeekend + * @param {object} viewModel - view model + * @param {Array} grids - dates information + * @returns {number} element left + */ +function getElLeft(viewModel, grids) { + return grids[viewModel.left] ? grids[viewModel.left].left : 0; +} + +/** + * Get element width based on narrowWeekend + * @param {object} viewModel - view model + * @param {Array} grids - dates information + * @returns {number} element width + */ +function getElWidth(viewModel, grids) { + var width = 0; + var i = 0; + var length = grids.length; + var left; + for (; i < viewModel.width; i += 1) { + left = (viewModel.left + i) % length; + left += parseInt((viewModel.left + i) / length, 10); + if (left < length) { + width += grids[left] ? grids[left].width : 0; + } + } + + return width; +} + +Handlebars.registerHelper(helpers); + + +/***/ }), + +/***/ "./src/js/view/template/month/month.hbs": +/*!**********************************************!*\ + !*** ./src/js/view/template/month/month.hbs ***! + \**********************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +var Handlebars = __webpack_require__(/*! ./node_modules/handlebars/runtime.js */ "./node_modules/handlebars/runtime.js"); +module.exports = (Handlebars['default'] || Handlebars).template({"1":function(container,depth0,helpers,partials,data) { + var stack1, helper, alias1=depth0 != null ? depth0 : (container.nullContext || {}), alias2=container.hooks.helperMissing, alias3="function", alias4=container.escapeExpression, alias5=container.lambda, lookupProperty = container.lookupProperty || function(parent, propertyName) { + if (Object.prototype.hasOwnProperty.call(parent, propertyName)) { + return parent[propertyName]; + } + return undefined + }; + + return "
\n \n " + + ((stack1 = (lookupProperty(helpers,"monthDayname-tmpl")||(depth0 && lookupProperty(depth0,"monthDayname-tmpl"))||alias2).call(alias1,depth0,{"name":"monthDayname-tmpl","hash":{},"data":data,"loc":{"start":{"line":16,"column":12},"end":{"line":16,"column":40}}})) != null ? stack1 : "") + + "\n \n
\n"; +},"2":function(container,depth0,helpers,partials,data) { + var stack1, lookupProperty = container.lookupProperty || function(parent, propertyName) { + if (Object.prototype.hasOwnProperty.call(parent, propertyName)) { + return parent[propertyName]; + } + return undefined + }; + + return " border-right: " + + container.escapeExpression(container.lambda(((stack1 = ((stack1 = (data && lookupProperty(data,"root"))) && lookupProperty(stack1,"styles"))) && lookupProperty(stack1,"borderLeft")), depth0)) + + ";\n"; +},"compiler":[8,">= 4.3.0"],"main":function(container,depth0,helpers,partials,data) { + var stack1, helper, alias1=depth0 != null ? depth0 : (container.nullContext || {}), alias2=container.escapeExpression, alias3=container.lambda, lookupProperty = container.lookupProperty || function(parent, propertyName) { + if (Object.prototype.hasOwnProperty.call(parent, propertyName)) { + return parent[propertyName]; + } + return undefined + }; + + return "
\n" + + ((stack1 = lookupProperty(helpers,"each").call(alias1,(depth0 != null ? lookupProperty(depth0,"daynames") : depth0),{"name":"each","hash":{},"fn":container.program(1, data, 0),"inverse":container.noop,"data":data,"loc":{"start":{"line":3,"column":0},"end":{"line":19,"column":9}}})) != null ? stack1 : "") + + "
\n"; +},"useData":true}); + +/***/ }), + +/***/ "./src/js/view/template/month/more.hbs": +/*!*********************************************!*\ + !*** ./src/js/view/template/month/more.hbs ***! + \*********************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +var Handlebars = __webpack_require__(/*! ./node_modules/handlebars/runtime.js */ "./node_modules/handlebars/runtime.js"); +module.exports = (Handlebars['default'] || Handlebars).template({"1":function(container,depth0,helpers,partials,data) { + var stack1, lookupProperty = container.lookupProperty || function(parent, propertyName) { + if (Object.prototype.hasOwnProperty.call(parent, propertyName)) { + return parent[propertyName]; + } + return undefined + }; + + return ((stack1 = (lookupProperty(helpers,"fi")||(depth0 && lookupProperty(depth0,"fi"))||container.hooks.helperMissing).call(depth0 != null ? depth0 : (container.nullContext || {}),((stack1 = (depth0 != null ? lookupProperty(depth0,"model") : depth0)) != null ? lookupProperty(stack1,"isAllDay") : stack1),"||",(depth0 != null ? lookupProperty(depth0,"hasMultiDates") : depth0),{"name":"fi","hash":{},"fn":container.program(2, data, 0),"inverse":container.program(7, data, 0),"data":data,"loc":{"start":{"line":9,"column":8},"end":{"line":65,"column":15}}})) != null ? stack1 : ""); +},"2":function(container,depth0,helpers,partials,data) { + var stack1, helper, alias1=depth0 != null ? depth0 : (container.nullContext || {}), alias2=container.hooks.helperMissing, alias3=container.escapeExpression, alias4=container.lambda, alias5="function", lookupProperty = container.lookupProperty || function(parent, propertyName) { + if (Object.prototype.hasOwnProperty.call(parent, propertyName)) { + return parent[propertyName]; + } + return undefined + }; + + return "
\n " + + ((stack1 = (lookupProperty(helpers,"allday-tmpl")||(depth0 && lookupProperty(depth0,"allday-tmpl"))||alias2).call(alias1,(depth0 != null ? lookupProperty(depth0,"model") : depth0),{"name":"allday-tmpl","hash":{},"data":data,"loc":{"start":{"line":20,"column":20},"end":{"line":20,"column":43}}})) != null ? stack1 : "") + + "\n
\n"; +},"3":function(container,depth0,helpers,partials,data) { + var stack1, alias1=container.lambda, alias2=container.escapeExpression, lookupProperty = container.lookupProperty || function(parent, propertyName) { + if (Object.prototype.hasOwnProperty.call(parent, propertyName)) { + return parent[propertyName]; + } + return undefined + }; + + return " color: #ffffff; background-color:" + + alias2(alias1(((stack1 = (depth0 != null ? lookupProperty(depth0,"model") : depth0)) != null ? lookupProperty(stack1,"color") : stack1), depth0)) + + "; border-left:3px solid " + + alias2(alias1(((stack1 = (depth0 != null ? lookupProperty(depth0,"model") : depth0)) != null ? lookupProperty(stack1,"borderColor") : stack1), depth0)) + + ";\n"; +},"5":function(container,depth0,helpers,partials,data) { + var stack1, alias1=container.lambda, alias2=container.escapeExpression, lookupProperty = container.lookupProperty || function(parent, propertyName) { + if (Object.prototype.hasOwnProperty.call(parent, propertyName)) { + return parent[propertyName]; + } + return undefined + }; + + return " color:" + + alias2(alias1(((stack1 = (depth0 != null ? lookupProperty(depth0,"model") : depth0)) != null ? lookupProperty(stack1,"color") : stack1), depth0)) + + "; background-color:" + + alias2(alias1(((stack1 = (depth0 != null ? lookupProperty(depth0,"model") : depth0)) != null ? lookupProperty(stack1,"bgColor") : stack1), depth0)) + + "; border-left:3px solid " + + alias2(alias1(((stack1 = (depth0 != null ? lookupProperty(depth0,"model") : depth0)) != null ? lookupProperty(stack1,"borderColor") : stack1), depth0)) + + ";\n"; +},"7":function(container,depth0,helpers,partials,data) { + var stack1, lookupProperty = container.lookupProperty || function(parent, propertyName) { + if (Object.prototype.hasOwnProperty.call(parent, propertyName)) { + return parent[propertyName]; + } + return undefined + }; + + return ((stack1 = (lookupProperty(helpers,"fi")||(depth0 && lookupProperty(depth0,"fi"))||container.hooks.helperMissing).call(depth0 != null ? depth0 : (container.nullContext || {}),((stack1 = (depth0 != null ? lookupProperty(depth0,"model") : depth0)) != null ? lookupProperty(stack1,"category") : stack1),"===","time",{"name":"fi","hash":{},"fn":container.program(8, data, 0),"inverse":container.program(17, data, 0),"data":data,"loc":{"start":{"line":23,"column":12},"end":{"line":64,"column":19}}})) != null ? stack1 : ""); +},"8":function(container,depth0,helpers,partials,data) { + var stack1, helper, alias1=depth0 != null ? depth0 : (container.nullContext || {}), alias2=container.hooks.helperMissing, alias3=container.escapeExpression, alias4=container.lambda, alias5="function", lookupProperty = container.lookupProperty || function(parent, propertyName) { + if (Object.prototype.hasOwnProperty.call(parent, propertyName)) { + return parent[propertyName]; + } + return undefined + }; + + return "
\n \n " + + ((stack1 = (lookupProperty(helpers,"time-tmpl")||(depth0 && lookupProperty(depth0,"time-tmpl"))||alias2).call(alias1,(depth0 != null ? lookupProperty(depth0,"model") : depth0),{"name":"time-tmpl","hash":{},"data":data,"loc":{"start":{"line":42,"column":53},"end":{"line":42,"column":74}}})) != null ? stack1 : "") + + "\n
\n"; +},"9":function(container,depth0,helpers,partials,data) { + return " background: #ffffff\n"; +},"11":function(container,depth0,helpers,partials,data) { + var stack1, lookupProperty = container.lookupProperty || function(parent, propertyName) { + if (Object.prototype.hasOwnProperty.call(parent, propertyName)) { + return parent[propertyName]; + } + return undefined + }; + + return " background:" + + container.escapeExpression(container.lambda(((stack1 = (depth0 != null ? lookupProperty(depth0,"model") : depth0)) != null ? lookupProperty(stack1,"borderColor") : stack1), depth0)) + + "\n "; +},"13":function(container,depth0,helpers,partials,data) { + var stack1, lookupProperty = container.lookupProperty || function(parent, propertyName) { + if (Object.prototype.hasOwnProperty.call(parent, propertyName)) { + return parent[propertyName]; + } + return undefined + }; + + return "\n color: #ffffff;\n background-color: " + + container.escapeExpression(container.lambda(((stack1 = (depth0 != null ? lookupProperty(depth0,"model") : depth0)) != null ? lookupProperty(stack1,"color") : stack1), depth0)) + + "\n"; +},"15":function(container,depth0,helpers,partials,data) { + return " color:#333;\n "; +},"17":function(container,depth0,helpers,partials,data) { + var stack1, helper, alias1=depth0 != null ? depth0 : (container.nullContext || {}), alias2=container.hooks.helperMissing, alias3=container.escapeExpression, alias4=container.lambda, alias5="function", lookupProperty = container.lookupProperty || function(parent, propertyName) { + if (Object.prototype.hasOwnProperty.call(parent, propertyName)) { + return parent[propertyName]; + } + return undefined + }; + + return "
\n " + + ((stack1 = (lookupProperty(helpers,"schedule-tmpl")||(depth0 && lookupProperty(depth0,"schedule-tmpl"))||alias2).call(alias1,(depth0 != null ? lookupProperty(depth0,"model") : depth0),{"name":"schedule-tmpl","hash":{},"data":data,"loc":{"start":{"line":62,"column":65},"end":{"line":62,"column":90}}})) != null ? stack1 : "") + + "\n
\n"; +},"18":function(container,depth0,helpers,partials,data) { + var helper, lookupProperty = container.lookupProperty || function(parent, propertyName) { + if (Object.prototype.hasOwnProperty.call(parent, propertyName)) { + return parent[propertyName]; + } + return undefined + }; + + return container.escapeExpression(((helper = (helper = lookupProperty(helpers,"CSS_PREFIX") || (depth0 != null ? lookupProperty(depth0,"CSS_PREFIX") : depth0)) != null ? helper : container.hooks.helperMissing),(typeof helper === "function" ? helper.call(depth0 != null ? depth0 : (container.nullContext || {}),{"name":"CSS_PREFIX","hash":{},"data":data,"loc":{"start":{"line":47,"column":115},"end":{"line":47,"column":129}}}) : helper))) + + "weekday-schedule-focused "; +},"20":function(container,depth0,helpers,partials,data) { + var stack1, lookupProperty = container.lookupProperty || function(parent, propertyName) { + if (Object.prototype.hasOwnProperty.call(parent, propertyName)) { + return parent[propertyName]; + } + return undefined + }; + + return " margin-left: " + + container.escapeExpression(container.lambda(((stack1 = ((stack1 = (data && lookupProperty(data,"root"))) && lookupProperty(stack1,"styles"))) && lookupProperty(stack1,"marginLeft")), depth0)) + + ";\n"; +},"22":function(container,depth0,helpers,partials,data) { + var stack1, lookupProperty = container.lookupProperty || function(parent, propertyName) { + if (Object.prototype.hasOwnProperty.call(parent, propertyName)) { + return parent[propertyName]; + } + return undefined + }; + + return " margin-right: " + + container.escapeExpression(container.lambda(((stack1 = ((stack1 = (data && lookupProperty(data,"root"))) && lookupProperty(stack1,"styles"))) && lookupProperty(stack1,"marginRight")), depth0)) + + ";\n"; +},"24":function(container,depth0,helpers,partials,data) { + var stack1, alias1=container.lambda, alias2=container.escapeExpression, lookupProperty = container.lookupProperty || function(parent, propertyName) { + if (Object.prototype.hasOwnProperty.call(parent, propertyName)) { + return parent[propertyName]; + } + return undefined + }; + + return " color: #ffffff; background-color:" + + alias2(alias1(((stack1 = (depth0 != null ? lookupProperty(depth0,"model") : depth0)) != null ? lookupProperty(stack1,"color") : stack1), depth0)) + + "; border-color:" + + alias2(alias1(((stack1 = (depth0 != null ? lookupProperty(depth0,"model") : depth0)) != null ? lookupProperty(stack1,"color") : stack1), depth0)) + + ";\n"; +},"26":function(container,depth0,helpers,partials,data) { + var stack1, alias1=container.lambda, alias2=container.escapeExpression, lookupProperty = container.lookupProperty || function(parent, propertyName) { + if (Object.prototype.hasOwnProperty.call(parent, propertyName)) { + return parent[propertyName]; + } + return undefined + }; + + return " color:" + + alias2(alias1(((stack1 = (depth0 != null ? lookupProperty(depth0,"model") : depth0)) != null ? lookupProperty(stack1,"color") : stack1), depth0)) + + "; background-color:" + + alias2(alias1(((stack1 = (depth0 != null ? lookupProperty(depth0,"model") : depth0)) != null ? lookupProperty(stack1,"bgColor") : stack1), depth0)) + + "; border-color:" + + alias2(alias1(((stack1 = (depth0 != null ? lookupProperty(depth0,"model") : depth0)) != null ? lookupProperty(stack1,"borderColor") : stack1), depth0)) + + ";\n"; +},"compiler":[8,">= 4.3.0"],"main":function(container,depth0,helpers,partials,data) { + var stack1, helper, alias1=depth0 != null ? depth0 : (container.nullContext || {}), alias2=container.hooks.helperMissing, alias3="function", alias4=container.escapeExpression, alias5=container.lambda, lookupProperty = container.lookupProperty || function(parent, propertyName) { + if (Object.prototype.hasOwnProperty.call(parent, propertyName)) { + return parent[propertyName]; + } + return undefined + }; + + return "
\n
\n " + + ((stack1 = (lookupProperty(helpers,"monthMoreTitleDate-tmpl")||(depth0 && lookupProperty(depth0,"monthMoreTitleDate-tmpl"))||alias2).call(alias1,(depth0 != null ? lookupProperty(depth0,"date") : depth0),(depth0 != null ? lookupProperty(depth0,"dayname") : depth0),{"name":"monthMoreTitleDate-tmpl","hash":{},"data":data,"loc":{"start":{"line":4,"column":58},"end":{"line":4,"column":100}}})) != null ? stack1 : "") + + "\n \n
\n
\n" + + ((stack1 = lookupProperty(helpers,"each").call(alias1,(depth0 != null ? lookupProperty(depth0,"schedules") : depth0),{"name":"each","hash":{},"fn":container.program(1, data, 0),"inverse":container.noop,"data":data,"loc":{"start":{"line":8,"column":8},"end":{"line":66,"column":17}}})) != null ? stack1 : "") + + "
\n
\n"; +},"useData":true}); + +/***/ }), + +/***/ "./src/js/view/template/month/weekdayInMonth.hbs": +/*!*******************************************************!*\ + !*** ./src/js/view/template/month/weekdayInMonth.hbs ***! + \*******************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +var Handlebars = __webpack_require__(/*! ./node_modules/handlebars/runtime.js */ "./node_modules/handlebars/runtime.js"); +module.exports = (Handlebars['default'] || Handlebars).template({"1":function(container,depth0,helpers,partials,data) { + var stack1, helper, alias1=depth0 != null ? depth0 : (container.nullContext || {}), alias2=container.hooks.helperMissing, alias3="function", alias4=container.escapeExpression, lookupProperty = container.lookupProperty || function(parent, propertyName) { + if (Object.prototype.hasOwnProperty.call(parent, propertyName)) { + return parent[propertyName]; + } + return undefined + }; + + return "
\n
\n " + + ((stack1 = (lookupProperty(helpers,"monthGridHeader-tmpl")||(depth0 && lookupProperty(depth0,"monthGridHeader-tmpl"))||alias2).call(alias1,depth0,{"name":"monthGridHeader-tmpl","hash":{},"data":data,"loc":{"start":{"line":14,"column":44},"end":{"line":14,"column":75}}})) != null ? stack1 : "") + + "\n" + + ((stack1 = lookupProperty(helpers,"if").call(alias1,(depth0 != null ? lookupProperty(depth0,"hiddenSchedules") : depth0),{"name":"if","hash":{},"fn":container.program(10, data, 0),"inverse":container.noop,"data":data,"loc":{"start":{"line":15,"column":12},"end":{"line":17,"column":19}}})) != null ? stack1 : "") + + "
\n
\n " + + ((stack1 = (lookupProperty(helpers,"monthGridFooter-tmpl")||(depth0 && lookupProperty(depth0,"monthGridFooter-tmpl"))||alias2).call(alias1,depth0,{"name":"monthGridFooter-tmpl","hash":{},"data":data,"loc":{"start":{"line":20,"column":44},"end":{"line":20,"column":75}}})) != null ? stack1 : "") + + "\n" + + ((stack1 = lookupProperty(helpers,"if").call(alias1,(depth0 != null ? lookupProperty(depth0,"hiddenSchedules") : depth0),{"name":"if","hash":{},"fn":container.program(12, data, 0),"inverse":container.noop,"data":data,"loc":{"start":{"line":21,"column":12},"end":{"line":23,"column":19}}})) != null ? stack1 : "") + + "
\n
\n"; +},"2":function(container,depth0,helpers,partials,data) { + var helper, lookupProperty = container.lookupProperty || function(parent, propertyName) { + if (Object.prototype.hasOwnProperty.call(parent, propertyName)) { + return parent[propertyName]; + } + return undefined + }; + + return " " + + container.escapeExpression(((helper = (helper = lookupProperty(helpers,"CSS_PREFIX") || (depth0 != null ? lookupProperty(depth0,"CSS_PREFIX") : depth0)) != null ? helper : container.hooks.helperMissing),(typeof helper === "function" ? helper.call(depth0 != null ? depth0 : (container.nullContext || {}),{"name":"CSS_PREFIX","hash":{},"data":data,"loc":{"start":{"line":7,"column":84},"end":{"line":7,"column":98}}}) : helper))) + + "near-month-day"; +},"4":function(container,depth0,helpers,partials,data) { + var helper, lookupProperty = container.lookupProperty || function(parent, propertyName) { + if (Object.prototype.hasOwnProperty.call(parent, propertyName)) { + return parent[propertyName]; + } + return undefined + }; + + return " " + + container.escapeExpression(((helper = (helper = lookupProperty(helpers,"CSS_PREFIX") || (depth0 != null ? lookupProperty(depth0,"CSS_PREFIX") : depth0)) != null ? helper : container.hooks.helperMissing),(typeof helper === "function" ? helper.call(depth0 != null ? depth0 : (container.nullContext || {}),{"name":"CSS_PREFIX","hash":{},"data":data,"loc":{"start":{"line":7,"column":135},"end":{"line":7,"column":149}}}) : helper))) + + "today"; +},"6":function(container,depth0,helpers,partials,data) { + var helper, lookupProperty = container.lookupProperty || function(parent, propertyName) { + if (Object.prototype.hasOwnProperty.call(parent, propertyName)) { + return parent[propertyName]; + } + return undefined + }; + + return " " + + container.escapeExpression(((helper = (helper = lookupProperty(helpers,"CSS_PREFIX") || (depth0 != null ? lookupProperty(depth0,"CSS_PREFIX") : depth0)) != null ? helper : container.hooks.helperMissing),(typeof helper === "function" ? helper.call(depth0 != null ? depth0 : (container.nullContext || {}),{"name":"CSS_PREFIX","hash":{},"data":data,"loc":{"start":{"line":7,"column":182},"end":{"line":7,"column":196}}}) : helper))) + + "extra-date"; +},"8":function(container,depth0,helpers,partials,data) { + var stack1, lookupProperty = container.lookupProperty || function(parent, propertyName) { + if (Object.prototype.hasOwnProperty.call(parent, propertyName)) { + return parent[propertyName]; + } + return undefined + }; + + return " border-right:" + + container.escapeExpression(container.lambda(((stack1 = ((stack1 = (data && lookupProperty(data,"root"))) && lookupProperty(stack1,"styles"))) && lookupProperty(stack1,"borderLeft")), depth0)) + + ";\n"; +},"10":function(container,depth0,helpers,partials,data) { + var stack1, helper, alias1=depth0 != null ? depth0 : (container.nullContext || {}), alias2=container.hooks.helperMissing, alias3="function", alias4=container.escapeExpression, lookupProperty = container.lookupProperty || function(parent, propertyName) { + if (Object.prototype.hasOwnProperty.call(parent, propertyName)) { + return parent[propertyName]; + } + return undefined + }; + + return " " + + ((stack1 = (lookupProperty(helpers,"monthGridHeaderExceed-tmpl")||(depth0 && lookupProperty(depth0,"monthGridHeaderExceed-tmpl"))||alias2).call(alias1,(depth0 != null ? lookupProperty(depth0,"hiddenSchedules") : depth0),{"name":"monthGridHeaderExceed-tmpl","hash":{},"data":data,"loc":{"start":{"line":16,"column":87},"end":{"line":16,"column":135}}})) != null ? stack1 : "") + + "\n"; +},"12":function(container,depth0,helpers,partials,data) { + var stack1, helper, alias1=depth0 != null ? depth0 : (container.nullContext || {}), alias2=container.hooks.helperMissing, alias3="function", alias4=container.escapeExpression, lookupProperty = container.lookupProperty || function(parent, propertyName) { + if (Object.prototype.hasOwnProperty.call(parent, propertyName)) { + return parent[propertyName]; + } + return undefined + }; + + return " " + + ((stack1 = (lookupProperty(helpers,"monthGridFooterExceed-tmpl")||(depth0 && lookupProperty(depth0,"monthGridFooterExceed-tmpl"))||alias2).call(alias1,(depth0 != null ? lookupProperty(depth0,"hiddenSchedules") : depth0),{"name":"monthGridFooterExceed-tmpl","hash":{},"data":data,"loc":{"start":{"line":22,"column":87},"end":{"line":22,"column":135}}})) != null ? stack1 : "") + + "\n"; +},"compiler":[8,">= 4.3.0"],"main":function(container,depth0,helpers,partials,data) { + var stack1, helper, alias1=depth0 != null ? depth0 : (container.nullContext || {}), alias2=container.hooks.helperMissing, alias3="function", alias4=container.escapeExpression, lookupProperty = container.lookupProperty || function(parent, propertyName) { + if (Object.prototype.hasOwnProperty.call(parent, propertyName)) { + return parent[propertyName]; + } + return undefined + }; + + return "
\n
\n" + + ((stack1 = lookupProperty(helpers,"each").call(alias1,(depth0 != null ? lookupProperty(depth0,"dates") : depth0),{"name":"each","hash":{},"fn":container.program(1, data, 0),"inverse":container.noop,"data":data,"loc":{"start":{"line":6,"column":0},"end":{"line":26,"column":11}}})) != null ? stack1 : "") + + "
\n
\n"; +},"useData":true}); + +/***/ }), + +/***/ "./src/js/view/template/month/weekdayInMonthSchedule.hbs": +/*!***************************************************************!*\ + !*** ./src/js/view/template/month/weekdayInMonthSchedule.hbs ***! + \***************************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +var Handlebars = __webpack_require__(/*! ./node_modules/handlebars/runtime.js */ "./node_modules/handlebars/runtime.js"); +module.exports = (Handlebars['default'] || Handlebars).template({"1":function(container,depth0,helpers,partials,data) { + var stack1, lookupProperty = container.lookupProperty || function(parent, propertyName) { + if (Object.prototype.hasOwnProperty.call(parent, propertyName)) { + return parent[propertyName]; + } + return undefined + }; + + return ((stack1 = lookupProperty(helpers,"each").call(depth0 != null ? depth0 : (container.nullContext || {}),depth0,{"name":"each","hash":{},"fn":container.program(2, data, 0),"inverse":container.noop,"data":data,"loc":{"start":{"line":2,"column":0},"end":{"line":80,"column":11}}})) != null ? stack1 : ""); +},"2":function(container,depth0,helpers,partials,data) { + var stack1, lookupProperty = container.lookupProperty || function(parent, propertyName) { + if (Object.prototype.hasOwnProperty.call(parent, propertyName)) { + return parent[propertyName]; + } + return undefined + }; + + return "\n" + + ((stack1 = lookupProperty(helpers,"each").call(depth0 != null ? depth0 : (container.nullContext || {}),depth0,{"name":"each","hash":{},"fn":container.program(3, data, 0),"inverse":container.noop,"data":data,"loc":{"start":{"line":3,"column":0},"end":{"line":79,"column":11}}})) != null ? stack1 : ""); +},"3":function(container,depth0,helpers,partials,data) { + var stack1, lookupProperty = container.lookupProperty || function(parent, propertyName) { + if (Object.prototype.hasOwnProperty.call(parent, propertyName)) { + return parent[propertyName]; + } + return undefined + }; + + return "\n" + + ((stack1 = lookupProperty(helpers,"if").call(depth0 != null ? depth0 : (container.nullContext || {}),depth0,{"name":"if","hash":{},"fn":container.program(4, data, 0),"inverse":container.noop,"data":data,"loc":{"start":{"line":4,"column":0},"end":{"line":78,"column":9}}})) != null ? stack1 : ""); +},"4":function(container,depth0,helpers,partials,data) { + var stack1, lookupProperty = container.lookupProperty || function(parent, propertyName) { + if (Object.prototype.hasOwnProperty.call(parent, propertyName)) { + return parent[propertyName]; + } + return undefined + }; + + return "\n" + + ((stack1 = (lookupProperty(helpers,"fi")||(depth0 && lookupProperty(depth0,"fi"))||container.hooks.helperMissing).call(depth0 != null ? depth0 : (container.nullContext || {}),(depth0 != null ? lookupProperty(depth0,"top") : depth0),"<",((stack1 = (data && lookupProperty(data,"root"))) && lookupProperty(stack1,"renderLimitIdx")),{"name":"fi","hash":{},"fn":container.program(5, data, 0),"inverse":container.noop,"data":data,"loc":{"start":{"line":5,"column":4},"end":{"line":77,"column":13}}})) != null ? stack1 : ""); +},"5":function(container,depth0,helpers,partials,data) { + var stack1, helper, alias1=depth0 != null ? depth0 : (container.nullContext || {}), alias2=container.hooks.helperMissing, alias3=container.escapeExpression, alias4="function", lookupProperty = container.lookupProperty || function(parent, propertyName) { + if (Object.prototype.hasOwnProperty.call(parent, propertyName)) { + return parent[propertyName]; + } + return undefined + }; + + return "
\n" + + ((stack1 = (lookupProperty(helpers,"fi")||(depth0 && lookupProperty(depth0,"fi"))||alias2).call(alias1,((stack1 = (depth0 != null ? lookupProperty(depth0,"model") : depth0)) != null ? lookupProperty(stack1,"isAllDay") : stack1),"||",(depth0 != null ? lookupProperty(depth0,"hasMultiDates") : depth0),{"name":"fi","hash":{},"fn":container.program(10, data, 0),"inverse":container.program(23, data, 0),"data":data,"loc":{"start":{"line":13,"column":8},"end":{"line":75,"column":15}}})) != null ? stack1 : "") + + "
\n"; +},"6":function(container,depth0,helpers,partials,data) { + var helper, lookupProperty = container.lookupProperty || function(parent, propertyName) { + if (Object.prototype.hasOwnProperty.call(parent, propertyName)) { + return parent[propertyName]; + } + return undefined + }; + + return " " + + container.escapeExpression(((helper = (helper = lookupProperty(helpers,"CSS_PREFIX") || (depth0 != null ? lookupProperty(depth0,"CSS_PREFIX") : depth0)) != null ? helper : container.hooks.helperMissing),(typeof helper === "function" ? helper.call(depth0 != null ? depth0 : (container.nullContext || {}),{"name":"CSS_PREFIX","hash":{},"data":data,"loc":{"start":{"line":9,"column":31},"end":{"line":9,"column":45}}}) : helper))) + + "weekday-exceed-left"; +},"8":function(container,depth0,helpers,partials,data) { + var helper, lookupProperty = container.lookupProperty || function(parent, propertyName) { + if (Object.prototype.hasOwnProperty.call(parent, propertyName)) { + return parent[propertyName]; + } + return undefined + }; + + return " " + + container.escapeExpression(((helper = (helper = lookupProperty(helpers,"CSS_PREFIX") || (depth0 != null ? lookupProperty(depth0,"CSS_PREFIX") : depth0)) != null ? helper : container.hooks.helperMissing),(typeof helper === "function" ? helper.call(depth0 != null ? depth0 : (container.nullContext || {}),{"name":"CSS_PREFIX","hash":{},"data":data,"loc":{"start":{"line":10,"column":32},"end":{"line":10,"column":46}}}) : helper))) + + "weekday-exceed-right"; +},"10":function(container,depth0,helpers,partials,data) { + var stack1, helper, alias1=container.lambda, alias2=container.escapeExpression, alias3=depth0 != null ? depth0 : (container.nullContext || {}), alias4=container.hooks.helperMissing, alias5="function", lookupProperty = container.lookupProperty || function(parent, propertyName) { + if (Object.prototype.hasOwnProperty.call(parent, propertyName)) { + return parent[propertyName]; + } + return undefined + }; + + return "
\n " + + ((stack1 = (lookupProperty(helpers,"allday-tmpl")||(depth0 && lookupProperty(depth0,"allday-tmpl"))||alias4).call(alias3,(depth0 != null ? lookupProperty(depth0,"model") : depth0),{"name":"allday-tmpl","hash":{},"data":data,"loc":{"start":{"line":29,"column":47},"end":{"line":29,"column":70}}})) != null ? stack1 : "") + + "\n " + + ((stack1 = lookupProperty(helpers,"unless").call(alias3,(lookupProperty(helpers,"or")||(depth0 && lookupProperty(depth0,"or"))||alias4).call(alias3,((stack1 = (data && lookupProperty(data,"root"))) && lookupProperty(stack1,"isReadOnly")),((stack1 = (depth0 != null ? lookupProperty(depth0,"model") : depth0)) != null ? lookupProperty(stack1,"isReadOnly") : stack1),{"name":"or","hash":{},"data":data,"loc":{"start":{"line":30,"column":22},"end":{"line":30,"column":60}}}),{"name":"unless","hash":{},"fn":container.program(21, data, 0),"inverse":container.noop,"data":data,"loc":{"start":{"line":30,"column":12},"end":{"line":30,"column":194}}})) != null ? stack1 : "") + + "\n
\n"; +},"11":function(container,depth0,helpers,partials,data) { + var helper, lookupProperty = container.lookupProperty || function(parent, propertyName) { + if (Object.prototype.hasOwnProperty.call(parent, propertyName)) { + return parent[propertyName]; + } + return undefined + }; + + return container.escapeExpression(((helper = (helper = lookupProperty(helpers,"CSS_PREFIX") || (depth0 != null ? lookupProperty(depth0,"CSS_PREFIX") : depth0)) != null ? helper : container.hooks.helperMissing),(typeof helper === "function" ? helper.call(depth0 != null ? depth0 : (container.nullContext || {}),{"name":"CSS_PREFIX","hash":{},"data":data,"loc":{"start":{"line":14,"column":146},"end":{"line":14,"column":160}}}) : helper))) + + "weekday-schedule-focused "; +},"13":function(container,depth0,helpers,partials,data) { + var stack1, lookupProperty = container.lookupProperty || function(parent, propertyName) { + if (Object.prototype.hasOwnProperty.call(parent, propertyName)) { + return parent[propertyName]; + } + return undefined + }; + + return " margin-left: " + + container.escapeExpression(container.lambda(((stack1 = ((stack1 = (data && lookupProperty(data,"root"))) && lookupProperty(stack1,"styles"))) && lookupProperty(stack1,"marginLeft")), depth0)) + + ";\n"; +},"15":function(container,depth0,helpers,partials,data) { + var stack1, lookupProperty = container.lookupProperty || function(parent, propertyName) { + if (Object.prototype.hasOwnProperty.call(parent, propertyName)) { + return parent[propertyName]; + } + return undefined + }; + + return " margin-right: " + + container.escapeExpression(container.lambda(((stack1 = ((stack1 = (data && lookupProperty(data,"root"))) && lookupProperty(stack1,"styles"))) && lookupProperty(stack1,"marginRight")), depth0)) + + ";\n"; +},"17":function(container,depth0,helpers,partials,data) { + var stack1, alias1=container.lambda, alias2=container.escapeExpression, lookupProperty = container.lookupProperty || function(parent, propertyName) { + if (Object.prototype.hasOwnProperty.call(parent, propertyName)) { + return parent[propertyName]; + } + return undefined + }; + + return " color: #ffffff; background-color:" + + alias2(alias1(((stack1 = (depth0 != null ? lookupProperty(depth0,"model") : depth0)) != null ? lookupProperty(stack1,"color") : stack1), depth0)) + + "; border-color:" + + alias2(alias1(((stack1 = (depth0 != null ? lookupProperty(depth0,"model") : depth0)) != null ? lookupProperty(stack1,"color") : stack1), depth0)) + + ";\n"; +},"19":function(container,depth0,helpers,partials,data) { + var stack1, alias1=container.lambda, alias2=container.escapeExpression, lookupProperty = container.lookupProperty || function(parent, propertyName) { + if (Object.prototype.hasOwnProperty.call(parent, propertyName)) { + return parent[propertyName]; + } + return undefined + }; + + return " color:" + + alias2(alias1(((stack1 = (depth0 != null ? lookupProperty(depth0,"model") : depth0)) != null ? lookupProperty(stack1,"color") : stack1), depth0)) + + "; background-color:" + + alias2(alias1(((stack1 = (depth0 != null ? lookupProperty(depth0,"model") : depth0)) != null ? lookupProperty(stack1,"bgColor") : stack1), depth0)) + + "; border-color:" + + alias2(alias1(((stack1 = (depth0 != null ? lookupProperty(depth0,"model") : depth0)) != null ? lookupProperty(stack1,"borderColor") : stack1), depth0)) + + ";\n"; +},"21":function(container,depth0,helpers,partials,data) { + var stack1, helper, alias1=container.escapeExpression, lookupProperty = container.lookupProperty || function(parent, propertyName) { + if (Object.prototype.hasOwnProperty.call(parent, propertyName)) { + return parent[propertyName]; + } + return undefined + }; + + return " "; +},"23":function(container,depth0,helpers,partials,data) { + var stack1, lookupProperty = container.lookupProperty || function(parent, propertyName) { + if (Object.prototype.hasOwnProperty.call(parent, propertyName)) { + return parent[propertyName]; + } + return undefined + }; + + return ((stack1 = (lookupProperty(helpers,"fi")||(depth0 && lookupProperty(depth0,"fi"))||container.hooks.helperMissing).call(depth0 != null ? depth0 : (container.nullContext || {}),((stack1 = (depth0 != null ? lookupProperty(depth0,"model") : depth0)) != null ? lookupProperty(stack1,"category") : stack1),"===","time",{"name":"fi","hash":{},"fn":container.program(24, data, 0),"inverse":container.program(33, data, 0),"data":data,"loc":{"start":{"line":33,"column":12},"end":{"line":74,"column":19}}})) != null ? stack1 : ""); +},"24":function(container,depth0,helpers,partials,data) { + var stack1, helper, alias1=container.lambda, alias2=container.escapeExpression, alias3=depth0 != null ? depth0 : (container.nullContext || {}), alias4=container.hooks.helperMissing, alias5="function", lookupProperty = container.lookupProperty || function(parent, propertyName) { + if (Object.prototype.hasOwnProperty.call(parent, propertyName)) { + return parent[propertyName]; + } + return undefined + }; + + return "
\n \n " + + ((stack1 = (lookupProperty(helpers,"time-tmpl")||(depth0 && lookupProperty(depth0,"time-tmpl"))||alias4).call(alias3,(depth0 != null ? lookupProperty(depth0,"model") : depth0),{"name":"time-tmpl","hash":{},"data":data,"loc":{"start":{"line":54,"column":53},"end":{"line":54,"column":74}}})) != null ? stack1 : "") + + "\n
\n"; +},"25":function(container,depth0,helpers,partials,data) { + return " background: #ffffff\n"; +},"27":function(container,depth0,helpers,partials,data) { + var stack1, lookupProperty = container.lookupProperty || function(parent, propertyName) { + if (Object.prototype.hasOwnProperty.call(parent, propertyName)) { + return parent[propertyName]; + } + return undefined + }; + + return " background:" + + container.escapeExpression(container.lambda(((stack1 = (depth0 != null ? lookupProperty(depth0,"model") : depth0)) != null ? lookupProperty(stack1,"borderColor") : stack1), depth0)) + + "\n"; +},"29":function(container,depth0,helpers,partials,data) { + var stack1, lookupProperty = container.lookupProperty || function(parent, propertyName) { + if (Object.prototype.hasOwnProperty.call(parent, propertyName)) { + return parent[propertyName]; + } + return undefined + }; + + return " color: #ffffff;\n background-color: " + + container.escapeExpression(container.lambda(((stack1 = (depth0 != null ? lookupProperty(depth0,"model") : depth0)) != null ? lookupProperty(stack1,"color") : stack1), depth0)) + + "\n"; +},"31":function(container,depth0,helpers,partials,data) { + return " color:#333;\n"; +},"33":function(container,depth0,helpers,partials,data) { + var stack1, helper, alias1=container.lambda, alias2=container.escapeExpression, alias3=depth0 != null ? depth0 : (container.nullContext || {}), alias4=container.hooks.helperMissing, alias5="function", lookupProperty = container.lookupProperty || function(parent, propertyName) { + if (Object.prototype.hasOwnProperty.call(parent, propertyName)) { + return parent[propertyName]; + } + return undefined + }; + + return "
\n " + + ((stack1 = (lookupProperty(helpers,"schedule-tmpl")||(depth0 && lookupProperty(depth0,"schedule-tmpl"))||alias4).call(alias3,(depth0 != null ? lookupProperty(depth0,"model") : depth0),{"name":"schedule-tmpl","hash":{},"data":data,"loc":{"start":{"line":72,"column":65},"end":{"line":72,"column":90}}})) != null ? stack1 : "") + + "\n
\n"; +},"34":function(container,depth0,helpers,partials,data) { + var stack1, lookupProperty = container.lookupProperty || function(parent, propertyName) { + if (Object.prototype.hasOwnProperty.call(parent, propertyName)) { + return parent[propertyName]; + } + return undefined + }; + + return " margin-left: " + + container.escapeExpression(container.lambda(((stack1 = ((stack1 = (data && lookupProperty(data,"root"))) && lookupProperty(stack1,"styles"))) && lookupProperty(stack1,"marginLeft")), depth0)) + + ";\n"; +},"36":function(container,depth0,helpers,partials,data) { + var stack1, lookupProperty = container.lookupProperty || function(parent, propertyName) { + if (Object.prototype.hasOwnProperty.call(parent, propertyName)) { + return parent[propertyName]; + } + return undefined + }; + + return " margin-right: " + + container.escapeExpression(container.lambda(((stack1 = ((stack1 = (data && lookupProperty(data,"root"))) && lookupProperty(stack1,"styles"))) && lookupProperty(stack1,"marginRight")), depth0)) + + ";\n"; +},"38":function(container,depth0,helpers,partials,data) { + var stack1, alias1=container.lambda, alias2=container.escapeExpression, lookupProperty = container.lookupProperty || function(parent, propertyName) { + if (Object.prototype.hasOwnProperty.call(parent, propertyName)) { + return parent[propertyName]; + } + return undefined + }; + + return " color: #ffffff; background-color:" + + alias2(alias1(((stack1 = (depth0 != null ? lookupProperty(depth0,"model") : depth0)) != null ? lookupProperty(stack1,"color") : stack1), depth0)) + + "; border-color:" + + alias2(alias1(((stack1 = (depth0 != null ? lookupProperty(depth0,"model") : depth0)) != null ? lookupProperty(stack1,"color") : stack1), depth0)) + + ";\n"; +},"40":function(container,depth0,helpers,partials,data) { + var stack1, alias1=container.lambda, alias2=container.escapeExpression, lookupProperty = container.lookupProperty || function(parent, propertyName) { + if (Object.prototype.hasOwnProperty.call(parent, propertyName)) { + return parent[propertyName]; + } + return undefined + }; + + return " color:" + + alias2(alias1(((stack1 = (depth0 != null ? lookupProperty(depth0,"model") : depth0)) != null ? lookupProperty(stack1,"color") : stack1), depth0)) + + "; background-color:" + + alias2(alias1(((stack1 = (depth0 != null ? lookupProperty(depth0,"model") : depth0)) != null ? lookupProperty(stack1,"bgColor") : stack1), depth0)) + + "; border-color:" + + alias2(alias1(((stack1 = (depth0 != null ? lookupProperty(depth0,"model") : depth0)) != null ? lookupProperty(stack1,"borderColor") : stack1), depth0)) + + ";\n"; +},"compiler":[8,">= 4.3.0"],"main":function(container,depth0,helpers,partials,data) { + var stack1, lookupProperty = container.lookupProperty || function(parent, propertyName) { + if (Object.prototype.hasOwnProperty.call(parent, propertyName)) { + return parent[propertyName]; + } + return undefined + }; + + return ((stack1 = lookupProperty(helpers,"each").call(depth0 != null ? depth0 : (container.nullContext || {}),(depth0 != null ? lookupProperty(depth0,"matrices") : depth0),{"name":"each","hash":{},"fn":container.program(1, data, 0),"inverse":container.noop,"data":data,"loc":{"start":{"line":1,"column":0},"end":{"line":81,"column":11}}})) != null ? stack1 : ""); +},"useData":true}); + +/***/ }), + +/***/ "./src/js/view/template/popup/scheduleCreationPopup.hbs": +/*!**************************************************************!*\ + !*** ./src/js/view/template/popup/scheduleCreationPopup.hbs ***! + \**************************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +var Handlebars = __webpack_require__(/*! ./node_modules/handlebars/runtime.js */ "./node_modules/handlebars/runtime.js"); +module.exports = (Handlebars['default'] || Handlebars).template({"1":function(container,depth0,helpers,partials,data) { + var helper, lookupProperty = container.lookupProperty || function(parent, propertyName) { + if (Object.prototype.hasOwnProperty.call(parent, propertyName)) { + return parent[propertyName]; + } + return undefined + }; + + return " " + + container.escapeExpression(((helper = (helper = lookupProperty(helpers,"CSS_PREFIX") || (depth0 != null ? lookupProperty(depth0,"CSS_PREFIX") : depth0)) != null ? helper : container.hooks.helperMissing),(typeof helper === "function" ? helper.call(depth0 != null ? depth0 : (container.nullContext || {}),{"name":"CSS_PREFIX","hash":{},"data":data,"loc":{"start":{"line":3,"column":150},"end":{"line":3,"column":164}}}) : helper))) + + "hide"; +},"3":function(container,depth0,helpers,partials,data) { + var helper, alias1=depth0 != null ? depth0 : (container.nullContext || {}), alias2=container.hooks.helperMissing, alias3="function", alias4=container.escapeExpression, lookupProperty = container.lookupProperty || function(parent, propertyName) { + if (Object.prototype.hasOwnProperty.call(parent, propertyName)) { + return parent[propertyName]; + } + return undefined + }; + + return "
  • \n \n " + + alias4(((helper = (helper = lookupProperty(helpers,"name") || (depth0 != null ? lookupProperty(depth0,"name") : depth0)) != null ? helper : alias2),(typeof helper === alias3 ? helper.call(alias1,{"name":"name","hash":{},"data":data,"loc":{"start":{"line":13,"column":60},"end":{"line":13,"column":68}}}) : helper))) + + "\n
  • \n"; +},"5":function(container,depth0,helpers,partials,data) { + var helper, lookupProperty = container.lookupProperty || function(parent, propertyName) { + if (Object.prototype.hasOwnProperty.call(parent, propertyName)) { + return parent[propertyName]; + } + return undefined + }; + + return " " + + container.escapeExpression(((helper = (helper = lookupProperty(helpers,"CSS_PREFIX") || (depth0 != null ? lookupProperty(depth0,"CSS_PREFIX") : depth0)) != null ? helper : container.hooks.helperMissing),(typeof helper === "function" ? helper.call(depth0 != null ? depth0 : (container.nullContext || {}),{"name":"CSS_PREFIX","hash":{},"data":data,"loc":{"start":{"line":23,"column":135},"end":{"line":23,"column":149}}}) : helper))) + + "public"; +},"7":function(container,depth0,helpers,partials,data) { + return " checked"; +},"9":function(container,depth0,helpers,partials,data) { + var helper, lookupProperty = container.lookupProperty || function(parent, propertyName) { + if (Object.prototype.hasOwnProperty.call(parent, propertyName)) { + return parent[propertyName]; + } + return undefined + }; + + return container.escapeExpression(((helper = (helper = lookupProperty(helpers,"state") || (depth0 != null ? lookupProperty(depth0,"state") : depth0)) != null ? helper : container.hooks.helperMissing),(typeof helper === "function" ? helper.call(depth0 != null ? depth0 : (container.nullContext || {}),{"name":"state","hash":{},"data":data,"loc":{"start":{"line":54,"column":99},"end":{"line":54,"column":108}}}) : helper))); +},"11":function(container,depth0,helpers,partials,data) { + var stack1, helper, lookupProperty = container.lookupProperty || function(parent, propertyName) { + if (Object.prototype.hasOwnProperty.call(parent, propertyName)) { + return parent[propertyName]; + } + return undefined + }; + + return ((stack1 = ((helper = (helper = lookupProperty(helpers,"popupStateBusy-tmpl") || (depth0 != null ? lookupProperty(depth0,"popupStateBusy-tmpl") : depth0)) != null ? helper : container.hooks.helperMissing),(typeof helper === "function" ? helper.call(depth0 != null ? depth0 : (container.nullContext || {}),{"name":"popupStateBusy-tmpl","hash":{},"data":data,"loc":{"start":{"line":54,"column":116},"end":{"line":54,"column":141}}}) : helper))) != null ? stack1 : ""); +},"13":function(container,depth0,helpers,partials,data) { + var stack1, helper, lookupProperty = container.lookupProperty || function(parent, propertyName) { + if (Object.prototype.hasOwnProperty.call(parent, propertyName)) { + return parent[propertyName]; + } + return undefined + }; + + return ((stack1 = ((helper = (helper = lookupProperty(helpers,"popupUpdate-tmpl") || (depth0 != null ? lookupProperty(depth0,"popupUpdate-tmpl") : depth0)) != null ? helper : container.hooks.helperMissing),(typeof helper === "function" ? helper.call(depth0 != null ? depth0 : (container.nullContext || {}),{"name":"popupUpdate-tmpl","hash":{},"data":data,"loc":{"start":{"line":69,"column":163},"end":{"line":69,"column":185}}}) : helper))) != null ? stack1 : ""); +},"15":function(container,depth0,helpers,partials,data) { + var stack1, helper, lookupProperty = container.lookupProperty || function(parent, propertyName) { + if (Object.prototype.hasOwnProperty.call(parent, propertyName)) { + return parent[propertyName]; + } + return undefined + }; + + return ((stack1 = ((helper = (helper = lookupProperty(helpers,"popupSave-tmpl") || (depth0 != null ? lookupProperty(depth0,"popupSave-tmpl") : depth0)) != null ? helper : container.hooks.helperMissing),(typeof helper === "function" ? helper.call(depth0 != null ? depth0 : (container.nullContext || {}),{"name":"popupSave-tmpl","hash":{},"data":data,"loc":{"start":{"line":69,"column":193},"end":{"line":69,"column":213}}}) : helper))) != null ? stack1 : ""); +},"compiler":[8,">= 4.3.0"],"main":function(container,depth0,helpers,partials,data) { + var stack1, helper, alias1=depth0 != null ? depth0 : (container.nullContext || {}), alias2=container.hooks.helperMissing, alias3="function", alias4=container.escapeExpression, alias5=container.lambda, lookupProperty = container.lookupProperty || function(parent, propertyName) { + if (Object.prototype.hasOwnProperty.call(parent, propertyName)) { + return parent[propertyName]; + } + return undefined + }; + + return "
    \n
    \n
    \n \n
      \n" + + ((stack1 = lookupProperty(helpers,"each").call(alias1,(depth0 != null ? lookupProperty(depth0,"calendars") : depth0),{"name":"each","hash":{},"fn":container.program(3, data, 0),"inverse":container.noop,"data":data,"loc":{"start":{"line":10,"column":16},"end":{"line":15,"column":25}}})) != null ? stack1 : "") + + "
    \n
    \n
    \n
    \n \n \n
    \n \n
    \n
    \n
    \n \n \n
    \n
    \n
    \n
    \n \n \n
    \n
    \n -\n
    \n \n \n
    \n
    \n
    \n \n \n " + + ((stack1 = ((helper = (helper = lookupProperty(helpers,"popupIsAllDay-tmpl") || (depth0 != null ? lookupProperty(depth0,"popupIsAllDay-tmpl") : depth0)) != null ? helper : alias2),(typeof helper === alias3 ? helper.call(alias1,{"name":"popupIsAllDay-tmpl","hash":{},"data":data,"loc":{"start":{"line":48,"column":52},"end":{"line":48,"column":76}}}) : helper))) != null ? stack1 : "") + + "\n
    \n
    \n
    \n \n
      \n
    • \n \n " + + ((stack1 = ((helper = (helper = lookupProperty(helpers,"popupStateBusy-tmpl") || (depth0 != null ? lookupProperty(depth0,"popupStateBusy-tmpl") : depth0)) != null ? helper : alias2),(typeof helper === alias3 ? helper.call(alias1,{"name":"popupStateBusy-tmpl","hash":{},"data":data,"loc":{"start":{"line":60,"column":52},"end":{"line":60,"column":77}}}) : helper))) != null ? stack1 : "") + + "\n
    • \n
    • \n \n " + + ((stack1 = ((helper = (helper = lookupProperty(helpers,"popupStateFree-tmpl") || (depth0 != null ? lookupProperty(depth0,"popupStateFree-tmpl") : depth0)) != null ? helper : alias2),(typeof helper === alias3 ? helper.call(alias1,{"name":"popupStateFree-tmpl","hash":{},"data":data,"loc":{"start":{"line":64,"column":52},"end":{"line":64,"column":77}}}) : helper))) != null ? stack1 : "") + + "\n
    • \n
    \n
    \n \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n"; +},"useData":true}); + +/***/ }), + +/***/ "./src/js/view/template/popup/scheduleDetailPopup.hbs": +/*!************************************************************!*\ + !*** ./src/js/view/template/popup/scheduleDetailPopup.hbs ***! + \************************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +var Handlebars = __webpack_require__(/*! ./node_modules/handlebars/runtime.js */ "./node_modules/handlebars/runtime.js"); +module.exports = (Handlebars['default'] || Handlebars).template({"1":function(container,depth0,helpers,partials,data) { + var stack1, helper, alias1=depth0 != null ? depth0 : (container.nullContext || {}), alias2=container.hooks.helperMissing, alias3="function", alias4=container.escapeExpression, lookupProperty = container.lookupProperty || function(parent, propertyName) { + if (Object.prototype.hasOwnProperty.call(parent, propertyName)) { + return parent[propertyName]; + } + return undefined + }; + + return "
    " + + ((stack1 = (lookupProperty(helpers,"popupDetailLocation-tmpl")||(depth0 && lookupProperty(depth0,"popupDetailLocation-tmpl"))||alias2).call(alias1,(depth0 != null ? lookupProperty(depth0,"schedule") : depth0),{"name":"popupDetailLocation-tmpl","hash":{},"data":data,"loc":{"start":{"line":11,"column":182},"end":{"line":11,"column":221}}})) != null ? stack1 : "") + + "
    "; +},"3":function(container,depth0,helpers,partials,data) { + var stack1, helper, alias1=depth0 != null ? depth0 : (container.nullContext || {}), alias2=container.hooks.helperMissing, alias3="function", alias4=container.escapeExpression, lookupProperty = container.lookupProperty || function(parent, propertyName) { + if (Object.prototype.hasOwnProperty.call(parent, propertyName)) { + return parent[propertyName]; + } + return undefined + }; + + return "
    " + + ((stack1 = (lookupProperty(helpers,"popupDetailRepeat-tmpl")||(depth0 && lookupProperty(depth0,"popupDetailRepeat-tmpl"))||alias2).call(alias1,(depth0 != null ? lookupProperty(depth0,"schedule") : depth0),{"name":"popupDetailRepeat-tmpl","hash":{},"data":data,"loc":{"start":{"line":12,"column":186},"end":{"line":12,"column":223}}})) != null ? stack1 : "") + + "
    "; +},"5":function(container,depth0,helpers,partials,data) { + var stack1, helper, alias1=depth0 != null ? depth0 : (container.nullContext || {}), alias2=container.hooks.helperMissing, alias3="function", alias4=container.escapeExpression, lookupProperty = container.lookupProperty || function(parent, propertyName) { + if (Object.prototype.hasOwnProperty.call(parent, propertyName)) { + return parent[propertyName]; + } + return undefined + }; + + return "
    " + + ((stack1 = (lookupProperty(helpers,"popupDetailUser-tmpl")||(depth0 && lookupProperty(depth0,"popupDetailUser-tmpl"))||alias2).call(alias1,(depth0 != null ? lookupProperty(depth0,"schedule") : depth0),{"name":"popupDetailUser-tmpl","hash":{},"data":data,"loc":{"start":{"line":13,"column":218},"end":{"line":13,"column":253}}})) != null ? stack1 : "") + + "
    "; +},"7":function(container,depth0,helpers,partials,data) { + var stack1, helper, alias1=depth0 != null ? depth0 : (container.nullContext || {}), alias2=container.hooks.helperMissing, alias3="function", alias4=container.escapeExpression, lookupProperty = container.lookupProperty || function(parent, propertyName) { + if (Object.prototype.hasOwnProperty.call(parent, propertyName)) { + return parent[propertyName]; + } + return undefined + }; + + return "
    " + + ((stack1 = (lookupProperty(helpers,"popupDetailState-tmpl")||(depth0 && lookupProperty(depth0,"popupDetailState-tmpl"))||alias2).call(alias1,(depth0 != null ? lookupProperty(depth0,"schedule") : depth0),{"name":"popupDetailState-tmpl","hash":{},"data":data,"loc":{"start":{"line":14,"column":176},"end":{"line":14,"column":212}}})) != null ? stack1 : "") + + "
    "; +},"9":function(container,depth0,helpers,partials,data) { + var stack1, helper, alias1=depth0 != null ? depth0 : (container.nullContext || {}), alias2=container.hooks.helperMissing, alias3="function", alias4=container.escapeExpression, alias5=container.lambda, lookupProperty = container.lookupProperty || function(parent, propertyName) { + if (Object.prototype.hasOwnProperty.call(parent, propertyName)) { + return parent[propertyName]; + } + return undefined + }; + + return "
    " + + alias4(alias5(((stack1 = (depth0 != null ? lookupProperty(depth0,"calendar") : depth0)) != null ? lookupProperty(stack1,"name") : stack1), depth0)) + + "
    \n"; +},"11":function(container,depth0,helpers,partials,data) { + var stack1, helper, alias1=depth0 != null ? depth0 : (container.nullContext || {}), alias2=container.hooks.helperMissing, alias3="function", alias4=container.escapeExpression, lookupProperty = container.lookupProperty || function(parent, propertyName) { + if (Object.prototype.hasOwnProperty.call(parent, propertyName)) { + return parent[propertyName]; + } + return undefined + }; + + return "
    " + + ((stack1 = (lookupProperty(helpers,"popupDetailBody-tmpl")||(depth0 && lookupProperty(depth0,"popupDetailBody-tmpl"))||alias2).call(alias1,(depth0 != null ? lookupProperty(depth0,"schedule") : depth0),{"name":"popupDetailBody-tmpl","hash":{},"data":data,"loc":{"start":{"line":18,"column":151},"end":{"line":18,"column":186}}})) != null ? stack1 : "") + + "
    "; +},"13":function(container,depth0,helpers,partials,data) { + return ""; +},"15":function(container,depth0,helpers,partials,data) { + var stack1, helper, alias1=depth0 != null ? depth0 : (container.nullContext || {}), alias2=container.hooks.helperMissing, alias3="function", alias4=container.escapeExpression, lookupProperty = container.lookupProperty || function(parent, propertyName) { + if (Object.prototype.hasOwnProperty.call(parent, propertyName)) { + return parent[propertyName]; + } + return undefined + }; + + return "
    \n \n
    \n \n
    \n"; +},"compiler":[8,">= 4.3.0"],"main":function(container,depth0,helpers,partials,data) { + var stack1, helper, alias1=depth0 != null ? depth0 : (container.nullContext || {}), alias2=container.hooks.helperMissing, alias3="function", alias4=container.escapeExpression, alias5=container.lambda, lookupProperty = container.lookupProperty || function(parent, propertyName) { + if (Object.prototype.hasOwnProperty.call(parent, propertyName)) { + return parent[propertyName]; + } + return undefined + }; + + return "
    \n
    \n
    \n
    \n \n " + + alias4(alias5(((stack1 = (depth0 != null ? lookupProperty(depth0,"schedule") : depth0)) != null ? lookupProperty(stack1,"title") : stack1), depth0)) + + "\n
    \n
    " + + ((stack1 = (lookupProperty(helpers,"popupDetailDate-tmpl")||(depth0 && lookupProperty(depth0,"popupDetailDate-tmpl"))||alias2).call(alias1,((stack1 = (depth0 != null ? lookupProperty(depth0,"schedule") : depth0)) != null ? lookupProperty(stack1,"isAllDay") : stack1),((stack1 = (depth0 != null ? lookupProperty(depth0,"schedule") : depth0)) != null ? lookupProperty(stack1,"start") : stack1),((stack1 = (depth0 != null ? lookupProperty(depth0,"schedule") : depth0)) != null ? lookupProperty(stack1,"end") : stack1),{"name":"popupDetailDate-tmpl","hash":{},"data":data,"loc":{"start":{"line":8,"column":73},"end":{"line":8,"column":145}}})) != null ? stack1 : "") + + "
    \n
    \n
    \n " + + ((stack1 = lookupProperty(helpers,"if").call(alias1,((stack1 = (depth0 != null ? lookupProperty(depth0,"schedule") : depth0)) != null ? lookupProperty(stack1,"location") : stack1),{"name":"if","hash":{},"fn":container.program(1, data, 0),"inverse":container.noop,"data":data,"loc":{"start":{"line":11,"column":8},"end":{"line":11,"column":241}}})) != null ? stack1 : "") + + "\n " + + ((stack1 = lookupProperty(helpers,"if").call(alias1,((stack1 = (depth0 != null ? lookupProperty(depth0,"schedule") : depth0)) != null ? lookupProperty(stack1,"recurrenceRule") : stack1),{"name":"if","hash":{},"fn":container.program(3, data, 0),"inverse":container.noop,"data":data,"loc":{"start":{"line":12,"column":8},"end":{"line":12,"column":243}}})) != null ? stack1 : "") + + "\n " + + ((stack1 = lookupProperty(helpers,"if").call(alias1,((stack1 = (depth0 != null ? lookupProperty(depth0,"schedule") : depth0)) != null ? lookupProperty(stack1,"attendees") : stack1),{"name":"if","hash":{},"fn":container.program(5, data, 0),"inverse":container.noop,"data":data,"loc":{"start":{"line":13,"column":8},"end":{"line":13,"column":273}}})) != null ? stack1 : "") + + "\n " + + ((stack1 = lookupProperty(helpers,"if").call(alias1,((stack1 = (depth0 != null ? lookupProperty(depth0,"schedule") : depth0)) != null ? lookupProperty(stack1,"state") : stack1),{"name":"if","hash":{},"fn":container.program(7, data, 0),"inverse":container.noop,"data":data,"loc":{"start":{"line":14,"column":8},"end":{"line":14,"column":232}}})) != null ? stack1 : "") + + "\n" + + ((stack1 = lookupProperty(helpers,"if").call(alias1,(depth0 != null ? lookupProperty(depth0,"calendar") : depth0),{"name":"if","hash":{},"fn":container.program(9, data, 0),"inverse":container.noop,"data":data,"loc":{"start":{"line":15,"column":8},"end":{"line":17,"column":15}}})) != null ? stack1 : "") + + " " + + ((stack1 = lookupProperty(helpers,"if").call(alias1,((stack1 = (depth0 != null ? lookupProperty(depth0,"schedule") : depth0)) != null ? lookupProperty(stack1,"body") : stack1),{"name":"if","hash":{},"fn":container.program(11, data, 0),"inverse":container.noop,"data":data,"loc":{"start":{"line":18,"column":8},"end":{"line":18,"column":206}}})) != null ? stack1 : "") + + "\n
    \n" + + ((stack1 = lookupProperty(helpers,"if").call(alias1,((stack1 = (depth0 != null ? lookupProperty(depth0,"schedule") : depth0)) != null ? lookupProperty(stack1,"isReadOnly") : stack1),{"name":"if","hash":{},"fn":container.program(13, data, 0),"inverse":container.program(15, data, 0),"data":data,"loc":{"start":{"line":20,"column":4},"end":{"line":27,"column":11}}})) != null ? stack1 : "") + + "
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n"; +},"useData":true}); + +/***/ }), + +/***/ "./src/js/view/template/week/dayGrid.hbs": +/*!***********************************************!*\ + !*** ./src/js/view/template/week/dayGrid.hbs ***! + \***********************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +var Handlebars = __webpack_require__(/*! ./node_modules/handlebars/runtime.js */ "./node_modules/handlebars/runtime.js"); +module.exports = (Handlebars['default'] || Handlebars).template({"1":function(container,depth0,helpers,partials,data) { + var stack1, helper, alias1=depth0 != null ? depth0 : (container.nullContext || {}), alias2=container.hooks.helperMissing, alias3="function", alias4=container.escapeExpression, lookupProperty = container.lookupProperty || function(parent, propertyName) { + if (Object.prototype.hasOwnProperty.call(parent, propertyName)) { + return parent[propertyName]; + } + return undefined + }; + + return "
    \n"; +},"2":function(container,depth0,helpers,partials,data) { + var stack1, lookupProperty = container.lookupProperty || function(parent, propertyName) { + if (Object.prototype.hasOwnProperty.call(parent, propertyName)) { + return parent[propertyName]; + } + return undefined + }; + + return " border-right: " + + container.escapeExpression(container.lambda(((stack1 = ((stack1 = (data && lookupProperty(data,"root"))) && lookupProperty(stack1,"styles"))) && lookupProperty(stack1,"borderRight")), depth0)) + + ";\n"; +},"4":function(container,depth0,helpers,partials,data) { + var stack1, lookupProperty = container.lookupProperty || function(parent, propertyName) { + if (Object.prototype.hasOwnProperty.call(parent, propertyName)) { + return parent[propertyName]; + } + return undefined + }; + + return ((stack1 = lookupProperty(helpers,"each").call(depth0 != null ? depth0 : (container.nullContext || {}),(depth0 != null ? lookupProperty(depth0,"days") : depth0),{"name":"each","hash":{},"fn":container.program(5, data, 0),"inverse":container.noop,"data":data,"loc":{"start":{"line":17,"column":8},"end":{"line":27,"column":19}}})) != null ? stack1 : ""); +},"5":function(container,depth0,helpers,partials,data) { + var stack1, lookupProperty = container.lookupProperty || function(parent, propertyName) { + if (Object.prototype.hasOwnProperty.call(parent, propertyName)) { + return parent[propertyName]; + } + return undefined + }; + + return ((stack1 = lookupProperty(helpers,"if").call(depth0 != null ? depth0 : (container.nullContext || {}),((stack1 = (data && lookupProperty(data,"root"))) && lookupProperty(stack1,"collapsed")),{"name":"if","hash":{},"fn":container.program(6, data, 0),"inverse":container.program(9, data, 0),"data":data,"loc":{"start":{"line":18,"column":12},"end":{"line":26,"column":19}}})) != null ? stack1 : ""); +},"6":function(container,depth0,helpers,partials,data) { + var stack1, lookupProperty = container.lookupProperty || function(parent, propertyName) { + if (Object.prototype.hasOwnProperty.call(parent, propertyName)) { + return parent[propertyName]; + } + return undefined + }; + + return ((stack1 = lookupProperty(helpers,"if").call(depth0 != null ? depth0 : (container.nullContext || {}),(depth0 != null ? lookupProperty(depth0,"hiddenSchedules") : depth0),{"name":"if","hash":{},"fn":container.program(7, data, 0),"inverse":container.noop,"data":data,"loc":{"start":{"line":19,"column":16},"end":{"line":21,"column":23}}})) != null ? stack1 : ""); +},"7":function(container,depth0,helpers,partials,data) { + var stack1, helper, alias1=depth0 != null ? depth0 : (container.nullContext || {}), alias2=container.hooks.helperMissing, alias3="function", alias4=container.escapeExpression, lookupProperty = container.lookupProperty || function(parent, propertyName) { + if (Object.prototype.hasOwnProperty.call(parent, propertyName)) { + return parent[propertyName]; + } + return undefined + }; + + return " " + + ((stack1 = (lookupProperty(helpers,"weekGridFooterExceed-tmpl")||(depth0 && lookupProperty(depth0,"weekGridFooterExceed-tmpl"))||alias2).call(alias1,(depth0 != null ? lookupProperty(depth0,"hiddenSchedules") : depth0),{"name":"weekGridFooterExceed-tmpl","hash":{},"data":data,"loc":{"start":{"line":20,"column":145},"end":{"line":20,"column":192}}})) != null ? stack1 : "") + + "\n"; +},"9":function(container,depth0,helpers,partials,data) { + var stack1, lookupProperty = container.lookupProperty || function(parent, propertyName) { + if (Object.prototype.hasOwnProperty.call(parent, propertyName)) { + return parent[propertyName]; + } + return undefined + }; + + return ((stack1 = (lookupProperty(helpers,"fi")||(depth0 && lookupProperty(depth0,"fi"))||container.hooks.helperMissing).call(depth0 != null ? depth0 : (container.nullContext || {}),(data && lookupProperty(data,"key")),"===",((stack1 = (data && lookupProperty(data,"root"))) && lookupProperty(stack1,"collapseBtnIndex")),{"name":"fi","hash":{},"fn":container.program(10, data, 0),"inverse":container.noop,"data":data,"loc":{"start":{"line":23,"column":16},"end":{"line":25,"column":23}}})) != null ? stack1 : ""); +},"10":function(container,depth0,helpers,partials,data) { + var stack1, helper, alias1=depth0 != null ? depth0 : (container.nullContext || {}), alias2=container.hooks.helperMissing, alias3="function", alias4=container.escapeExpression, lookupProperty = container.lookupProperty || function(parent, propertyName) { + if (Object.prototype.hasOwnProperty.call(parent, propertyName)) { + return parent[propertyName]; + } + return undefined + }; + + return " " + + ((stack1 = ((helper = (helper = lookupProperty(helpers,"collapseBtnTitle-tmpl") || (depth0 != null ? lookupProperty(depth0,"collapseBtnTitle-tmpl") : depth0)) != null ? helper : alias2),(typeof helper === alias3 ? helper.call(alias1,{"name":"collapseBtnTitle-tmpl","hash":{},"data":data,"loc":{"start":{"line":24,"column":121},"end":{"line":24,"column":148}}}) : helper))) != null ? stack1 : "") + + "\n"; +},"compiler":[8,">= 4.3.0"],"main":function(container,depth0,helpers,partials,data) { + var stack1, helper, alias1=depth0 != null ? depth0 : (container.nullContext || {}), alias2=container.hooks.helperMissing, alias3="function", alias4=container.escapeExpression, alias5=container.lambda, lookupProperty = container.lookupProperty || function(parent, propertyName) { + if (Object.prototype.hasOwnProperty.call(parent, propertyName)) { + return parent[propertyName]; + } + return undefined + }; + + return "
    \n " + + ((stack1 = (lookupProperty(helpers,"dayGridTitle-tmpl")||(depth0 && lookupProperty(depth0,"dayGridTitle-tmpl"))||alias2).call(alias1,(depth0 != null ? lookupProperty(depth0,"viewName") : depth0),{"name":"dayGridTitle-tmpl","hash":{},"data":data,"loc":{"start":{"line":2,"column":4},"end":{"line":2,"column":36}}})) != null ? stack1 : "") + + "\n
    \n
    \n
    \n
    \n" + + ((stack1 = lookupProperty(helpers,"each").call(alias1,(depth0 != null ? lookupProperty(depth0,"days") : depth0),{"name":"each","hash":{},"fn":container.program(1, data, 0),"inverse":container.noop,"data":data,"loc":{"start":{"line":7,"column":8},"end":{"line":14,"column":19}}})) != null ? stack1 : "") + + ((stack1 = lookupProperty(helpers,"if").call(alias1,((stack1 = (data && lookupProperty(data,"root"))) && lookupProperty(stack1,"showExpandableButton")),{"name":"if","hash":{},"fn":container.program(4, data, 0),"inverse":container.noop,"data":data,"loc":{"start":{"line":16,"column":8},"end":{"line":28,"column":15}}})) != null ? stack1 : "") + + "
    \n
    \n
    \n"; +},"useData":true}); + +/***/ }), + +/***/ "./src/js/view/template/week/dayGridSchedule.hbs": +/*!*******************************************************!*\ + !*** ./src/js/view/template/week/dayGridSchedule.hbs ***! + \*******************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +var Handlebars = __webpack_require__(/*! ./node_modules/handlebars/runtime.js */ "./node_modules/handlebars/runtime.js"); +module.exports = (Handlebars['default'] || Handlebars).template({"1":function(container,depth0,helpers,partials,data) { + var stack1, lookupProperty = container.lookupProperty || function(parent, propertyName) { + if (Object.prototype.hasOwnProperty.call(parent, propertyName)) { + return parent[propertyName]; + } + return undefined + }; + + return ((stack1 = lookupProperty(helpers,"each").call(depth0 != null ? depth0 : (container.nullContext || {}),depth0,{"name":"each","hash":{},"fn":container.program(2, data, 0),"inverse":container.noop,"data":data,"loc":{"start":{"line":3,"column":4},"end":{"line":27,"column":15}}})) != null ? stack1 : ""); +},"2":function(container,depth0,helpers,partials,data) { + var stack1, lookupProperty = container.lookupProperty || function(parent, propertyName) { + if (Object.prototype.hasOwnProperty.call(parent, propertyName)) { + return parent[propertyName]; + } + return undefined + }; + + return "\n " + + ((stack1 = lookupProperty(helpers,"each").call(depth0 != null ? depth0 : (container.nullContext || {}),depth0,{"name":"each","hash":{},"fn":container.program(3, data, 0),"inverse":container.noop,"data":data,"loc":{"start":{"line":4,"column":4},"end":{"line":26,"column":15}}})) != null ? stack1 : ""); +},"3":function(container,depth0,helpers,partials,data) { + var stack1, lookupProperty = container.lookupProperty || function(parent, propertyName) { + if (Object.prototype.hasOwnProperty.call(parent, propertyName)) { + return parent[propertyName]; + } + return undefined + }; + + return "\n " + + ((stack1 = lookupProperty(helpers,"if").call(depth0 != null ? depth0 : (container.nullContext || {}),depth0,{"name":"if","hash":{},"fn":container.program(4, data, 0),"inverse":container.noop,"data":data,"loc":{"start":{"line":5,"column":4},"end":{"line":25,"column":13}}})) != null ? stack1 : ""); +},"4":function(container,depth0,helpers,partials,data) { + var stack1, helper, alias1=depth0 != null ? depth0 : (container.nullContext || {}), alias2=container.hooks.helperMissing, alias3=container.escapeExpression, alias4="function", alias5=container.lambda, lookupProperty = container.lookupProperty || function(parent, propertyName) { + if (Object.prototype.hasOwnProperty.call(parent, propertyName)) { + return parent[propertyName]; + } + return undefined + }; + + return "\n
    \n
    \n " + + ((stack1 = (lookupProperty(helpers,"schedule-tmpl")||(depth0 && lookupProperty(depth0,"schedule-tmpl"))||alias2).call(alias1,(depth0 != null ? lookupProperty(depth0,"model") : depth0),{"name":"schedule-tmpl","hash":{},"data":data,"loc":{"start":{"line":21,"column":87},"end":{"line":21,"column":112}}})) != null ? stack1 : "") + + "\n " + + ((stack1 = lookupProperty(helpers,"unless").call(alias1,(lookupProperty(helpers,"or")||(depth0 && lookupProperty(depth0,"or"))||alias2).call(alias1,((stack1 = (data && lookupProperty(data,"root"))) && lookupProperty(stack1,"isReadOnly")),((stack1 = (depth0 != null ? lookupProperty(depth0,"model") : depth0)) != null ? lookupProperty(stack1,"isReadOnly") : stack1),{"name":"or","hash":{},"data":data,"loc":{"start":{"line":22,"column":22},"end":{"line":22,"column":60}}}),{"name":"unless","hash":{},"fn":container.program(15, data, 0),"inverse":container.noop,"data":data,"loc":{"start":{"line":22,"column":12},"end":{"line":22,"column":193}}})) != null ? stack1 : "") + + "\n
    \n
    \n"; +},"5":function(container,depth0,helpers,partials,data) { + var helper, lookupProperty = container.lookupProperty || function(parent, propertyName) { + if (Object.prototype.hasOwnProperty.call(parent, propertyName)) { + return parent[propertyName]; + } + return undefined + }; + + return " " + + container.escapeExpression(((helper = (helper = lookupProperty(helpers,"CSS_PREFIX") || (depth0 != null ? lookupProperty(depth0,"CSS_PREFIX") : depth0)) != null ? helper : container.hooks.helperMissing),(typeof helper === "function" ? helper.call(depth0 != null ? depth0 : (container.nullContext || {}),{"name":"CSS_PREFIX","hash":{},"data":data,"loc":{"start":{"line":8,"column":31},"end":{"line":8,"column":45}}}) : helper))) + + "weekday-exceed-left"; +},"7":function(container,depth0,helpers,partials,data) { + var helper, lookupProperty = container.lookupProperty || function(parent, propertyName) { + if (Object.prototype.hasOwnProperty.call(parent, propertyName)) { + return parent[propertyName]; + } + return undefined + }; + + return " " + + container.escapeExpression(((helper = (helper = lookupProperty(helpers,"CSS_PREFIX") || (depth0 != null ? lookupProperty(depth0,"CSS_PREFIX") : depth0)) != null ? helper : container.hooks.helperMissing),(typeof helper === "function" ? helper.call(depth0 != null ? depth0 : (container.nullContext || {}),{"name":"CSS_PREFIX","hash":{},"data":data,"loc":{"start":{"line":9,"column":32},"end":{"line":9,"column":46}}}) : helper))) + + "weekday-exceed-right"; +},"9":function(container,depth0,helpers,partials,data) { + var helper, lookupProperty = container.lookupProperty || function(parent, propertyName) { + if (Object.prototype.hasOwnProperty.call(parent, propertyName)) { + return parent[propertyName]; + } + return undefined + }; + + return container.escapeExpression(((helper = (helper = lookupProperty(helpers,"CSS_PREFIX") || (depth0 != null ? lookupProperty(depth0,"CSS_PREFIX") : depth0)) != null ? helper : container.hooks.helperMissing),(typeof helper === "function" ? helper.call(depth0 != null ? depth0 : (container.nullContext || {}),{"name":"CSS_PREFIX","hash":{},"data":data,"loc":{"start":{"line":13,"column":146},"end":{"line":13,"column":160}}}) : helper))) + + "weekday-schedule-focused "; +},"11":function(container,depth0,helpers,partials,data) { + var stack1, alias1=container.lambda, alias2=container.escapeExpression, lookupProperty = container.lookupProperty || function(parent, propertyName) { + if (Object.prototype.hasOwnProperty.call(parent, propertyName)) { + return parent[propertyName]; + } + return undefined + }; + + return " color: #ffffff; background-color:" + + alias2(alias1(((stack1 = (depth0 != null ? lookupProperty(depth0,"model") : depth0)) != null ? lookupProperty(stack1,"color") : stack1), depth0)) + + "; border-color:" + + alias2(alias1(((stack1 = (depth0 != null ? lookupProperty(depth0,"model") : depth0)) != null ? lookupProperty(stack1,"color") : stack1), depth0)) + + ";\n"; +},"13":function(container,depth0,helpers,partials,data) { + var stack1, alias1=container.lambda, alias2=container.escapeExpression, lookupProperty = container.lookupProperty || function(parent, propertyName) { + if (Object.prototype.hasOwnProperty.call(parent, propertyName)) { + return parent[propertyName]; + } + return undefined + }; + + return " color:" + + alias2(alias1(((stack1 = (depth0 != null ? lookupProperty(depth0,"model") : depth0)) != null ? lookupProperty(stack1,"color") : stack1), depth0)) + + "; background-color:" + + alias2(alias1(((stack1 = (depth0 != null ? lookupProperty(depth0,"model") : depth0)) != null ? lookupProperty(stack1,"bgColor") : stack1), depth0)) + + "; border-color:" + + alias2(alias1(((stack1 = (depth0 != null ? lookupProperty(depth0,"model") : depth0)) != null ? lookupProperty(stack1,"borderColor") : stack1), depth0)) + + ";\n"; +},"15":function(container,depth0,helpers,partials,data) { + var stack1, helper, alias1=container.escapeExpression, lookupProperty = container.lookupProperty || function(parent, propertyName) { + if (Object.prototype.hasOwnProperty.call(parent, propertyName)) { + return parent[propertyName]; + } + return undefined + }; + + return " "; +},"compiler":[8,">= 4.3.0"],"main":function(container,depth0,helpers,partials,data) { + var stack1, helper, alias1=depth0 != null ? depth0 : (container.nullContext || {}), alias2=container.hooks.helperMissing, alias3="function", alias4=container.escapeExpression, lookupProperty = container.lookupProperty || function(parent, propertyName) { + if (Object.prototype.hasOwnProperty.call(parent, propertyName)) { + return parent[propertyName]; + } + return undefined + }; + + return "
    \n" + + ((stack1 = lookupProperty(helpers,"each").call(alias1,(depth0 != null ? lookupProperty(depth0,"matrices") : depth0),{"name":"each","hash":{},"fn":container.program(1, data, 0),"inverse":container.noop,"data":data,"loc":{"start":{"line":2,"column":4},"end":{"line":28,"column":15}}})) != null ? stack1 : "") + + "
    \n"; +},"useData":true}); + +/***/ }), + +/***/ "./src/js/view/template/week/daynames.hbs": +/*!************************************************!*\ + !*** ./src/js/view/template/week/daynames.hbs ***! + \************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +var Handlebars = __webpack_require__(/*! ./node_modules/handlebars/runtime.js */ "./node_modules/handlebars/runtime.js"); +module.exports = (Handlebars['default'] || Handlebars).template({"1":function(container,depth0,helpers,partials,data) { + var stack1, helper, alias1=depth0 != null ? depth0 : (container.nullContext || {}), alias2=container.hooks.helperMissing, alias3="function", alias4=container.escapeExpression, alias5=container.lambda, lookupProperty = container.lookupProperty || function(parent, propertyName) { + if (Object.prototype.hasOwnProperty.call(parent, propertyName)) { + return parent[propertyName]; + } + return undefined + }; + + return "
    \n \n " + + ((stack1 = (lookupProperty(helpers,"weekDayname-tmpl")||(depth0 && lookupProperty(depth0,"weekDayname-tmpl"))||alias2).call(alias1,depth0,{"name":"weekDayname-tmpl","hash":{},"data":data,"loc":{"start":{"line":7,"column":8},"end":{"line":7,"column":35}}})) != null ? stack1 : "") + + "\n \n
    \n"; +},"2":function(container,depth0,helpers,partials,data) { + var helper, lookupProperty = container.lookupProperty || function(parent, propertyName) { + if (Object.prototype.hasOwnProperty.call(parent, propertyName)) { + return parent[propertyName]; + } + return undefined + }; + + return container.escapeExpression(((helper = (helper = lookupProperty(helpers,"CSS_PREFIX") || (depth0 != null ? lookupProperty(depth0,"CSS_PREFIX") : depth0)) != null ? helper : container.hooks.helperMissing),(typeof helper === "function" ? helper.call(depth0 != null ? depth0 : (container.nullContext || {}),{"name":"CSS_PREFIX","hash":{},"data":data,"loc":{"start":{"line":3,"column":49},"end":{"line":3,"column":63}}}) : helper))) + + "today"; +},"compiler":[8,">= 4.3.0"],"main":function(container,depth0,helpers,partials,data) { + var stack1, helper, alias1=depth0 != null ? depth0 : (container.nullContext || {}), alias2=container.escapeExpression, lookupProperty = container.lookupProperty || function(parent, propertyName) { + if (Object.prototype.hasOwnProperty.call(parent, propertyName)) { + return parent[propertyName]; + } + return undefined + }; + + return "
    \n" + + ((stack1 = lookupProperty(helpers,"each").call(alias1,(depth0 != null ? lookupProperty(depth0,"dayNames") : depth0),{"name":"each","hash":{},"fn":container.program(1, data, 0),"inverse":container.noop,"data":data,"loc":{"start":{"line":2,"column":0},"end":{"line":10,"column":9}}})) != null ? stack1 : "") + + "
    \n"; +},"useData":true}); + +/***/ }), + +/***/ "./src/js/view/template/week/time.hbs": +/*!********************************************!*\ + !*** ./src/js/view/template/week/time.hbs ***! + \********************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +var Handlebars = __webpack_require__(/*! ./node_modules/handlebars/runtime.js */ "./node_modules/handlebars/runtime.js"); +module.exports = (Handlebars['default'] || Handlebars).template({"1":function(container,depth0,helpers,partials,data) { + var stack1, lookupProperty = container.lookupProperty || function(parent, propertyName) { + if (Object.prototype.hasOwnProperty.call(parent, propertyName)) { + return parent[propertyName]; + } + return undefined + }; + + return ((stack1 = lookupProperty(helpers,"each").call(depth0 != null ? depth0 : (container.nullContext || {}),depth0,{"name":"each","hash":{},"fn":container.program(2, data, 0),"inverse":container.noop,"data":data,"loc":{"start":{"line":3,"column":4},"end":{"line":60,"column":13}}})) != null ? stack1 : ""); +},"2":function(container,depth0,helpers,partials,data) { + var stack1, lookupProperty = container.lookupProperty || function(parent, propertyName) { + if (Object.prototype.hasOwnProperty.call(parent, propertyName)) { + return parent[propertyName]; + } + return undefined + }; + + return ((stack1 = lookupProperty(helpers,"each").call(depth0 != null ? depth0 : (container.nullContext || {}),depth0,{"name":"each","hash":{},"fn":container.program(3, data, 0),"inverse":container.noop,"data":data,"loc":{"start":{"line":4,"column":8},"end":{"line":59,"column":17}}})) != null ? stack1 : ""); +},"3":function(container,depth0,helpers,partials,data) { + var stack1, lookupProperty = container.lookupProperty || function(parent, propertyName) { + if (Object.prototype.hasOwnProperty.call(parent, propertyName)) { + return parent[propertyName]; + } + return undefined + }; + + return ((stack1 = lookupProperty(helpers,"if").call(depth0 != null ? depth0 : (container.nullContext || {}),depth0,{"name":"if","hash":{},"fn":container.program(4, data, 0),"inverse":container.noop,"data":data,"loc":{"start":{"line":5,"column":8},"end":{"line":58,"column":17}}})) != null ? stack1 : ""); +},"4":function(container,depth0,helpers,partials,data) { + var stack1, helper, alias1=depth0 != null ? depth0 : (container.nullContext || {}), alias2=container.hooks.helperMissing, alias3="function", alias4=container.escapeExpression, alias5=container.lambda, lookupProperty = container.lookupProperty || function(parent, propertyName) { + if (Object.prototype.hasOwnProperty.call(parent, propertyName)) { + return parent[propertyName]; + } + return undefined + }; + + return "
    \n
    \n" + + ((stack1 = lookupProperty(helpers,"if").call(alias1,(depth0 != null ? lookupProperty(depth0,"hasGoingDuration") : depth0),{"name":"if","hash":{},"fn":container.program(19, data, 0),"inverse":container.noop,"data":data,"loc":{"start":{"line":29,"column":12},"end":{"line":37,"column":19}}})) != null ? stack1 : "") + + "
    \n " + + ((stack1 = (lookupProperty(helpers,"time-tmpl")||(depth0 && lookupProperty(depth0,"time-tmpl"))||alias2).call(alias1,(depth0 != null ? lookupProperty(depth0,"model") : depth0),{"name":"time-tmpl","hash":{},"data":data,"loc":{"start":{"line":45,"column":20},"end":{"line":45,"column":41}}})) != null ? stack1 : "") + + "\n
    \n" + + ((stack1 = lookupProperty(helpers,"if").call(alias1,(depth0 != null ? lookupProperty(depth0,"hasComingDuration") : depth0),{"name":"if","hash":{},"fn":container.program(26, data, 0),"inverse":container.noop,"data":data,"loc":{"start":{"line":47,"column":12},"end":{"line":54,"column":19}}})) != null ? stack1 : "") + + "
    \n " + + ((stack1 = lookupProperty(helpers,"unless").call(alias1,(lookupProperty(helpers,"or")||(depth0 && lookupProperty(depth0,"or"))||alias2).call(alias1,(depth0 != null ? lookupProperty(depth0,"croppedEnd") : depth0),(lookupProperty(helpers,"or")||(depth0 && lookupProperty(depth0,"or"))||alias2).call(alias1,((stack1 = (data && lookupProperty(data,"root"))) && lookupProperty(stack1,"isReadOnly")),((stack1 = (depth0 != null ? lookupProperty(depth0,"model") : depth0)) != null ? lookupProperty(stack1,"isReadOnly") : stack1),{"name":"or","hash":{},"data":data,"loc":{"start":{"line":56,"column":37},"end":{"line":56,"column":75}}}),{"name":"or","hash":{},"data":data,"loc":{"start":{"line":56,"column":22},"end":{"line":56,"column":76}}}),{"name":"unless","hash":{},"fn":container.program(29, data, 0),"inverse":container.noop,"data":data,"loc":{"start":{"line":56,"column":12},"end":{"line":56,"column":207}}})) != null ? stack1 : "") + + "\n
    \n"; +},"5":function(container,depth0,helpers,partials,data) { + var helper, lookupProperty = container.lookupProperty || function(parent, propertyName) { + if (Object.prototype.hasOwnProperty.call(parent, propertyName)) { + return parent[propertyName]; + } + return undefined + }; + + return " " + + container.escapeExpression(((helper = (helper = lookupProperty(helpers,"CSS_PREFIX") || (depth0 != null ? lookupProperty(depth0,"CSS_PREFIX") : depth0)) != null ? helper : container.hooks.helperMissing),(typeof helper === "function" ? helper.call(depth0 != null ? depth0 : (container.nullContext || {}),{"name":"CSS_PREFIX","hash":{},"data":data,"loc":{"start":{"line":6,"column":83},"end":{"line":6,"column":97}}}) : helper))) + + "time-date-schedule-block-pending"; +},"7":function(container,depth0,helpers,partials,data) { + var stack1, lookupProperty = container.lookupProperty || function(parent, propertyName) { + if (Object.prototype.hasOwnProperty.call(parent, propertyName)) { + return parent[propertyName]; + } + return undefined + }; + + return " padding-left: " + + container.escapeExpression(container.lambda(((stack1 = ((stack1 = (data && lookupProperty(data,"root"))) && lookupProperty(stack1,"styles"))) && lookupProperty(stack1,"paddingLeft")), depth0)) + + ";\n"; +},"9":function(container,depth0,helpers,partials,data) { + var helper, lookupProperty = container.lookupProperty || function(parent, propertyName) { + if (Object.prototype.hasOwnProperty.call(parent, propertyName)) { + return parent[propertyName]; + } + return undefined + }; + + return container.escapeExpression(((helper = (helper = lookupProperty(helpers,"CSS_PREFIX") || (depth0 != null ? lookupProperty(depth0,"CSS_PREFIX") : depth0)) != null ? helper : container.hooks.helperMissing),(typeof helper === "function" ? helper.call(depth0 != null ? depth0 : (container.nullContext || {}),{"name":"CSS_PREFIX","hash":{},"data":data,"loc":{"start":{"line":12,"column":147},"end":{"line":12,"column":161}}}) : helper))) + + "time-schedule-focused "; +},"11":function(container,depth0,helpers,partials,data) { + var stack1, alias1=container.lambda, alias2=container.escapeExpression, lookupProperty = container.lookupProperty || function(parent, propertyName) { + if (Object.prototype.hasOwnProperty.call(parent, propertyName)) { + return parent[propertyName]; + } + return undefined + }; + + return " border-bottom-left-radius: " + + alias2(alias1(((stack1 = ((stack1 = (data && lookupProperty(data,"root"))) && lookupProperty(stack1,"styles"))) && lookupProperty(stack1,"borderRadius")), depth0)) + + ";\n border-bottom-right-radius: " + + alias2(alias1(((stack1 = ((stack1 = (data && lookupProperty(data,"root"))) && lookupProperty(stack1,"styles"))) && lookupProperty(stack1,"borderRadius")), depth0)) + + ";\n"; +},"13":function(container,depth0,helpers,partials,data) { + var stack1, alias1=container.lambda, alias2=container.escapeExpression, lookupProperty = container.lookupProperty || function(parent, propertyName) { + if (Object.prototype.hasOwnProperty.call(parent, propertyName)) { + return parent[propertyName]; + } + return undefined + }; + + return " border-top-left-radius: " + + alias2(alias1(((stack1 = ((stack1 = (data && lookupProperty(data,"root"))) && lookupProperty(stack1,"styles"))) && lookupProperty(stack1,"borderRadius")), depth0)) + + ";\n border-top-right-radius: " + + alias2(alias1(((stack1 = ((stack1 = (data && lookupProperty(data,"root"))) && lookupProperty(stack1,"styles"))) && lookupProperty(stack1,"borderRadius")), depth0)) + + ";\n"; +},"15":function(container,depth0,helpers,partials,data) { + var stack1, alias1=container.lambda, alias2=container.escapeExpression, lookupProperty = container.lookupProperty || function(parent, propertyName) { + if (Object.prototype.hasOwnProperty.call(parent, propertyName)) { + return parent[propertyName]; + } + return undefined + }; + + return " color: #ffffff; background-color:" + + alias2(alias1(((stack1 = (depth0 != null ? lookupProperty(depth0,"model") : depth0)) != null ? lookupProperty(stack1,"color") : stack1), depth0)) + + "; border-color:" + + alias2(alias1(((stack1 = (depth0 != null ? lookupProperty(depth0,"model") : depth0)) != null ? lookupProperty(stack1,"color") : stack1), depth0)) + + ";\n"; +},"17":function(container,depth0,helpers,partials,data) { + var stack1, alias1=container.lambda, alias2=container.escapeExpression, lookupProperty = container.lookupProperty || function(parent, propertyName) { + if (Object.prototype.hasOwnProperty.call(parent, propertyName)) { + return parent[propertyName]; + } + return undefined + }; + + return " color:" + + alias2(alias1(((stack1 = (depth0 != null ? lookupProperty(depth0,"model") : depth0)) != null ? lookupProperty(stack1,"color") : stack1), depth0)) + + "; background-color:" + + alias2(alias1(((stack1 = (depth0 != null ? lookupProperty(depth0,"model") : depth0)) != null ? lookupProperty(stack1,"bgColor") : stack1), depth0)) + + "; border-color:" + + alias2(alias1(((stack1 = (depth0 != null ? lookupProperty(depth0,"model") : depth0)) != null ? lookupProperty(stack1,"borderColor") : stack1), depth0)) + + ";\n"; +},"19":function(container,depth0,helpers,partials,data) { + var stack1, helper, alias1=depth0 != null ? depth0 : (container.nullContext || {}), alias2=container.hooks.helperMissing, alias3="function", alias4=container.escapeExpression, lookupProperty = container.lookupProperty || function(parent, propertyName) { + if (Object.prototype.hasOwnProperty.call(parent, propertyName)) { + return parent[propertyName]; + } + return undefined + }; + + return "
    " + + ((stack1 = (lookupProperty(helpers,"goingDuration-tmpl")||(depth0 && lookupProperty(depth0,"goingDuration-tmpl"))||alias2).call(alias1,(depth0 != null ? lookupProperty(depth0,"model") : depth0),{"name":"goingDuration-tmpl","hash":{},"data":data,"loc":{"start":{"line":36,"column":66},"end":{"line":36,"column":96}}})) != null ? stack1 : "") + + "
    \n"; +},"20":function(container,depth0,helpers,partials,data) { + var stack1, lookupProperty = container.lookupProperty || function(parent, propertyName) { + if (Object.prototype.hasOwnProperty.call(parent, propertyName)) { + return parent[propertyName]; + } + return undefined + }; + + return " border-color:" + + container.escapeExpression(container.lambda(((stack1 = (depth0 != null ? lookupProperty(depth0,"model") : depth0)) != null ? lookupProperty(stack1,"color") : stack1), depth0)) + + ";\n"; +},"22":function(container,depth0,helpers,partials,data) { + var stack1, lookupProperty = container.lookupProperty || function(parent, propertyName) { + if (Object.prototype.hasOwnProperty.call(parent, propertyName)) { + return parent[propertyName]; + } + return undefined + }; + + return " border-color:" + + container.escapeExpression(container.lambda(((stack1 = (depth0 != null ? lookupProperty(depth0,"model") : depth0)) != null ? lookupProperty(stack1,"borderColor") : stack1), depth0)) + + ";\n"; +},"24":function(container,depth0,helpers,partials,data) { + var helper, lookupProperty = container.lookupProperty || function(parent, propertyName) { + if (Object.prototype.hasOwnProperty.call(parent, propertyName)) { + return parent[propertyName]; + } + return undefined + }; + + return "border-bottom: 1px dashed " + + container.escapeExpression(((helper = (helper = lookupProperty(helpers,"travelBorderColor") || (depth0 != null ? lookupProperty(depth0,"travelBorderColor") : depth0)) != null ? helper : container.hooks.helperMissing),(typeof helper === "function" ? helper.call(depth0 != null ? depth0 : (container.nullContext || {}),{"name":"travelBorderColor","hash":{},"data":data,"loc":{"start":{"line":44,"column":67},"end":{"line":44,"column":88}}}) : helper))) + + ";"; +},"26":function(container,depth0,helpers,partials,data) { + var stack1, helper, alias1=depth0 != null ? depth0 : (container.nullContext || {}), alias2=container.hooks.helperMissing, alias3="function", alias4=container.escapeExpression, lookupProperty = container.lookupProperty || function(parent, propertyName) { + if (Object.prototype.hasOwnProperty.call(parent, propertyName)) { + return parent[propertyName]; + } + return undefined + }; + + return "
    " + + ((stack1 = (lookupProperty(helpers,"comingDuration-tmpl")||(depth0 && lookupProperty(depth0,"comingDuration-tmpl"))||alias2).call(alias1,(depth0 != null ? lookupProperty(depth0,"model") : depth0),{"name":"comingDuration-tmpl","hash":{},"data":data,"loc":{"start":{"line":53,"column":26},"end":{"line":53,"column":57}}})) != null ? stack1 : "") + + "
    \n"; +},"27":function(container,depth0,helpers,partials,data) { + var stack1, lookupProperty = container.lookupProperty || function(parent, propertyName) { + if (Object.prototype.hasOwnProperty.call(parent, propertyName)) { + return parent[propertyName]; + } + return undefined + }; + + return " border-color:" + + container.escapeExpression(container.lambda(((stack1 = (depth0 != null ? lookupProperty(depth0,"model") : depth0)) != null ? lookupProperty(stack1,"borderColor") : stack1), depth0)) + + ";\n "; +},"29":function(container,depth0,helpers,partials,data) { + var stack1, helper, alias1=container.escapeExpression, lookupProperty = container.lookupProperty || function(parent, propertyName) { + if (Object.prototype.hasOwnProperty.call(parent, propertyName)) { + return parent[propertyName]; + } + return undefined + }; + + return "
     
    "; +},"compiler":[8,">= 4.3.0"],"main":function(container,depth0,helpers,partials,data) { + var stack1, helper, alias1=depth0 != null ? depth0 : (container.nullContext || {}), alias2=container.escapeExpression, lookupProperty = container.lookupProperty || function(parent, propertyName) { + if (Object.prototype.hasOwnProperty.call(parent, propertyName)) { + return parent[propertyName]; + } + return undefined + }; + + return "
    \n" + + ((stack1 = lookupProperty(helpers,"each").call(alias1,(depth0 != null ? lookupProperty(depth0,"matrices") : depth0),{"name":"each","hash":{},"fn":container.program(1, data, 0),"inverse":container.noop,"data":data,"loc":{"start":{"line":2,"column":0},"end":{"line":61,"column":9}}})) != null ? stack1 : "") + + "
    \n"; +},"useData":true}); + +/***/ }), + +/***/ "./src/js/view/template/week/timeGrid.hbs": +/*!************************************************!*\ + !*** ./src/js/view/template/week/timeGrid.hbs ***! + \************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +var Handlebars = __webpack_require__(/*! ./node_modules/handlebars/runtime.js */ "./node_modules/handlebars/runtime.js"); +module.exports = (Handlebars['default'] || Handlebars).template({"1":function(container,depth0,helpers,partials,data) { + var stack1, helper, alias1=depth0 != null ? depth0 : (container.nullContext || {}), alias2=container.hooks.helperMissing, alias3="function", alias4=container.escapeExpression, lookupProperty = container.lookupProperty || function(parent, propertyName) { + if (Object.prototype.hasOwnProperty.call(parent, propertyName)) { + return parent[propertyName]; + } + return undefined + }; + + return "
    \n" + + ((stack1 = lookupProperty(helpers,"if").call(alias1,(depth0 != null ? lookupProperty(depth0,"isPrimary") : depth0),{"name":"if","hash":{},"fn":container.program(4, data, 0),"inverse":container.program(10, data, 0),"data":data,"loc":{"start":{"line":4,"column":8},"end":{"line":26,"column":15}}})) != null ? stack1 : "") + + "
    \n"; +},"2":function(container,depth0,helpers,partials,data) { + return "display:none;"; +},"4":function(container,depth0,helpers,partials,data) { + var stack1, alias1=depth0 != null ? depth0 : (container.nullContext || {}), lookupProperty = container.lookupProperty || function(parent, propertyName) { + if (Object.prototype.hasOwnProperty.call(parent, propertyName)) { + return parent[propertyName]; + } + return undefined + }; + + return ((stack1 = lookupProperty(helpers,"each").call(alias1,(depth0 != null ? lookupProperty(depth0,"timeSlots") : depth0),{"name":"each","hash":{},"fn":container.program(5, data, 0),"inverse":container.noop,"data":data,"loc":{"start":{"line":5,"column":12},"end":{"line":9,"column":23}}})) != null ? stack1 : "") + + ((stack1 = lookupProperty(helpers,"if").call(alias1,((stack1 = (data && lookupProperty(data,"root"))) && lookupProperty(stack1,"showHourMarker")),{"name":"if","hash":{},"fn":container.program(8, data, 0),"inverse":container.noop,"data":data,"loc":{"start":{"line":10,"column":12},"end":{"line":14,"column":19}}})) != null ? stack1 : ""); +},"5":function(container,depth0,helpers,partials,data) { + var stack1, helper, alias1=depth0 != null ? depth0 : (container.nullContext || {}), alias2=container.hooks.helperMissing, alias3="function", alias4=container.escapeExpression, lookupProperty = container.lookupProperty || function(parent, propertyName) { + if (Object.prototype.hasOwnProperty.call(parent, propertyName)) { + return parent[propertyName]; + } + return undefined + }; + + return "
    \n " + + ((stack1 = (lookupProperty(helpers,"timegridDisplayPrimayTime-tmpl")||(depth0 && lookupProperty(depth0,"timegridDisplayPrimayTime-tmpl"))||alias2).call(alias1,depth0,{"name":"timegridDisplayPrimayTime-tmpl","hash":{},"data":data,"loc":{"start":{"line":7,"column":68},"end":{"line":7,"column":109}}})) != null ? stack1 : "") + + "\n
    \n"; +},"6":function(container,depth0,helpers,partials,data) { + return "display:none"; +},"8":function(container,depth0,helpers,partials,data) { + var stack1, helper, alias1=depth0 != null ? depth0 : (container.nullContext || {}), alias2=container.hooks.helperMissing, alias3="function", alias4=container.escapeExpression, alias5=container.lambda, lookupProperty = container.lookupProperty || function(parent, propertyName) { + if (Object.prototype.hasOwnProperty.call(parent, propertyName)) { + return parent[propertyName]; + } + return undefined + }; + + return "
    \n
    " + + ((stack1 = (lookupProperty(helpers,"timegridCurrentTime-tmpl")||(depth0 && lookupProperty(depth0,"timegridCurrentTime-tmpl"))||alias2).call(alias1,depth0,{"name":"timegridCurrentTime-tmpl","hash":{},"data":data,"loc":{"start":{"line":12,"column":223},"end":{"line":12,"column":258}}})) != null ? stack1 : "") + + "
    \n
    \n"; +},"10":function(container,depth0,helpers,partials,data) { + var stack1, alias1=depth0 != null ? depth0 : (container.nullContext || {}), lookupProperty = container.lookupProperty || function(parent, propertyName) { + if (Object.prototype.hasOwnProperty.call(parent, propertyName)) { + return parent[propertyName]; + } + return undefined + }; + + return ((stack1 = lookupProperty(helpers,"each").call(alias1,(depth0 != null ? lookupProperty(depth0,"timeSlots") : depth0),{"name":"each","hash":{},"fn":container.program(11, data, 0),"inverse":container.noop,"data":data,"loc":{"start":{"line":16,"column":12},"end":{"line":20,"column":23}}})) != null ? stack1 : "") + + ((stack1 = lookupProperty(helpers,"if").call(alias1,((stack1 = (data && lookupProperty(data,"root"))) && lookupProperty(stack1,"showHourMarker")),{"name":"if","hash":{},"fn":container.program(13, data, 0),"inverse":container.noop,"data":data,"loc":{"start":{"line":21,"column":12},"end":{"line":25,"column":19}}})) != null ? stack1 : ""); +},"11":function(container,depth0,helpers,partials,data) { + var stack1, helper, alias1=depth0 != null ? depth0 : (container.nullContext || {}), alias2=container.hooks.helperMissing, alias3="function", alias4=container.escapeExpression, lookupProperty = container.lookupProperty || function(parent, propertyName) { + if (Object.prototype.hasOwnProperty.call(parent, propertyName)) { + return parent[propertyName]; + } + return undefined + }; + + return "
    \n " + + ((stack1 = (lookupProperty(helpers,"timegridDisplayTime-tmpl")||(depth0 && lookupProperty(depth0,"timegridDisplayTime-tmpl"))||alias2).call(alias1,depth0,{"name":"timegridDisplayTime-tmpl","hash":{},"data":data,"loc":{"start":{"line":18,"column":68},"end":{"line":18,"column":103}}})) != null ? stack1 : "") + + "\n
    \n"; +},"13":function(container,depth0,helpers,partials,data) { + var stack1, helper, alias1=depth0 != null ? depth0 : (container.nullContext || {}), alias2=container.hooks.helperMissing, alias3="function", alias4=container.escapeExpression, alias5=container.lambda, lookupProperty = container.lookupProperty || function(parent, propertyName) { + if (Object.prototype.hasOwnProperty.call(parent, propertyName)) { + return parent[propertyName]; + } + return undefined + }; + + return "
    \n
    " + + ((stack1 = (lookupProperty(helpers,"timegridCurrentTime-tmpl")||(depth0 && lookupProperty(depth0,"timegridCurrentTime-tmpl"))||alias2).call(alias1,depth0,{"name":"timegridCurrentTime-tmpl","hash":{},"data":data,"loc":{"start":{"line":23,"column":171},"end":{"line":23,"column":206}}})) != null ? stack1 : "") + + "
    \n
    \n"; +},"15":function(container,depth0,helpers,partials,data) { + var stack1, helper, alias1=depth0 != null ? depth0 : (container.nullContext || {}), alias2=container.hooks.helperMissing, alias3="function", alias4=container.escapeExpression, alias5=container.lambda, lookupProperty = container.lookupProperty || function(parent, propertyName) { + if (Object.prototype.hasOwnProperty.call(parent, propertyName)) { + return parent[propertyName]; + } + return undefined + }; + + return "
    \n
    \n
    \n"; +},"16":function(container,depth0,helpers,partials,data) { + var stack1, lookupProperty = container.lookupProperty || function(parent, propertyName) { + if (Object.prototype.hasOwnProperty.call(parent, propertyName)) { + return parent[propertyName]; + } + return undefined + }; + + return " border-bottom: " + + container.escapeExpression(container.lambda(((stack1 = ((stack1 = (data && lookupProperty(data,"root"))) && lookupProperty(stack1,"styles"))) && lookupProperty(stack1,"borderBottom")), depth0)) + + ";\n"; +},"18":function(container,depth0,helpers,partials,data) { + var stack1, helper, alias1=depth0 != null ? depth0 : (container.nullContext || {}), alias2=container.hooks.helperMissing, alias3="function", alias4=container.escapeExpression, alias5=container.lambda, lookupProperty = container.lookupProperty || function(parent, propertyName) { + if (Object.prototype.hasOwnProperty.call(parent, propertyName)) { + return parent[propertyName]; + } + return undefined + }; + + return "
    \n
    \n
    today
    \n
    \n
    \n
    \n"; +},"compiler":[8,">= 4.3.0"],"main":function(container,depth0,helpers,partials,data) { + var stack1, helper, alias1=depth0 != null ? depth0 : (container.nullContext || {}), alias2=container.hooks.helperMissing, alias3="function", alias4=container.escapeExpression, alias5=container.lambda, lookupProperty = container.lookupProperty || function(parent, propertyName) { + if (Object.prototype.hasOwnProperty.call(parent, propertyName)) { + return parent[propertyName]; + } + return undefined + }; + + return "
    \n" + + ((stack1 = lookupProperty(helpers,"each").call(alias1,(depth0 != null ? lookupProperty(depth0,"timezones") : depth0),{"name":"each","hash":{},"fn":container.program(1, data, 0),"inverse":container.noop,"data":data,"loc":{"start":{"line":2,"column":4},"end":{"line":28,"column":15}}})) != null ? stack1 : "") + + "
    \n
    \n
    \n" + + ((stack1 = lookupProperty(helpers,"each").call(alias1,(depth0 != null ? lookupProperty(depth0,"hoursLabels") : depth0),{"name":"each","hash":{},"fn":container.program(15, data, 0),"inverse":container.noop,"data":data,"loc":{"start":{"line":32,"column":8},"end":{"line":40,"column":19}}})) != null ? stack1 : "") + + "
    \n
    \n
    \n
    \n\n" + + ((stack1 = lookupProperty(helpers,"if").call(alias1,(depth0 != null ? lookupProperty(depth0,"showHourMarker") : depth0),{"name":"if","hash":{},"fn":container.program(18, data, 0),"inverse":container.noop,"data":data,"loc":{"start":{"line":46,"column":4},"end":{"line":53,"column":11}}})) != null ? stack1 : "") + + "
    \n"; +},"useData":true}); + +/***/ }), + +/***/ "./src/js/view/template/week/timeGridCurrentTime.hbs": +/*!***********************************************************!*\ + !*** ./src/js/view/template/week/timeGridCurrentTime.hbs ***! + \***********************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +var Handlebars = __webpack_require__(/*! ./node_modules/handlebars/runtime.js */ "./node_modules/handlebars/runtime.js"); +module.exports = (Handlebars['default'] || Handlebars).template({"compiler":[8,">= 4.3.0"],"main":function(container,depth0,helpers,partials,data) { + var stack1, lookupProperty = container.lookupProperty || function(parent, propertyName) { + if (Object.prototype.hasOwnProperty.call(parent, propertyName)) { + return parent[propertyName]; + } + return undefined + }; + + return ((stack1 = (lookupProperty(helpers,"timegridCurrentTime-tmpl")||(depth0 && lookupProperty(depth0,"timegridCurrentTime-tmpl"))||container.hooks.helperMissing).call(depth0 != null ? depth0 : (container.nullContext || {}),depth0,{"name":"timegridCurrentTime-tmpl","hash":{},"data":data,"loc":{"start":{"line":1,"column":0},"end":{"line":1,"column":35}}})) != null ? stack1 : "") + + "\n"; +},"useData":true}); + +/***/ }), + +/***/ "./src/js/view/template/week/timeMoveGuide.hbs": +/*!*****************************************************!*\ + !*** ./src/js/view/template/week/timeMoveGuide.hbs ***! + \*****************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +var Handlebars = __webpack_require__(/*! ./node_modules/handlebars/runtime.js */ "./node_modules/handlebars/runtime.js"); +module.exports = (Handlebars['default'] || Handlebars).template({"1":function(container,depth0,helpers,partials,data) { + var stack1, helper, alias1=depth0 != null ? depth0 : (container.nullContext || {}), alias2=container.hooks.helperMissing, alias3="function", alias4=container.escapeExpression, alias5=container.lambda, lookupProperty = container.lookupProperty || function(parent, propertyName) { + if (Object.prototype.hasOwnProperty.call(parent, propertyName)) { + return parent[propertyName]; + } + return undefined + }; + + return "
    " + + ((stack1 = (lookupProperty(helpers,"goingDuration-tmpl")||(depth0 && lookupProperty(depth0,"goingDuration-tmpl"))||alias2).call(alias1,(depth0 != null ? lookupProperty(depth0,"model") : depth0),{"name":"goingDuration-tmpl","hash":{},"data":data,"loc":{"start":{"line":4,"column":230},"end":{"line":4,"column":260}}})) != null ? stack1 : "") + + "
    \n"; +},"3":function(container,depth0,helpers,partials,data) { + var stack1, helper, alias1=depth0 != null ? depth0 : (container.nullContext || {}), alias2=container.hooks.helperMissing, alias3="function", alias4=container.escapeExpression, alias5=container.lambda, lookupProperty = container.lookupProperty || function(parent, propertyName) { + if (Object.prototype.hasOwnProperty.call(parent, propertyName)) { + return parent[propertyName]; + } + return undefined + }; + + return "
    " + + ((stack1 = (lookupProperty(helpers,"comingDuration-tmpl")||(depth0 && lookupProperty(depth0,"comingDuration-tmpl"))||alias2).call(alias1,(depth0 != null ? lookupProperty(depth0,"model") : depth0),{"name":"comingDuration-tmpl","hash":{},"data":data,"loc":{"start":{"line":10,"column":228},"end":{"line":10,"column":259}}})) != null ? stack1 : "") + + "
    \n"; +},"5":function(container,depth0,helpers,partials,data) { + var helper, lookupProperty = container.lookupProperty || function(parent, propertyName) { + if (Object.prototype.hasOwnProperty.call(parent, propertyName)) { + return parent[propertyName]; + } + return undefined + }; + + return "
     
    "; +},"compiler":[8,">= 4.3.0"],"main":function(container,depth0,helpers,partials,data) { + var stack1, helper, alias1=depth0 != null ? depth0 : (container.nullContext || {}), alias2=container.hooks.helperMissing, alias3="function", alias4=container.escapeExpression, alias5=container.lambda, lookupProperty = container.lookupProperty || function(parent, propertyName) { + if (Object.prototype.hasOwnProperty.call(parent, propertyName)) { + return parent[propertyName]; + } + return undefined + }; + + return "
    \n
    \n" + + ((stack1 = lookupProperty(helpers,"if").call(alias1,(depth0 != null ? lookupProperty(depth0,"hasGoingDuration") : depth0),{"name":"if","hash":{},"fn":container.program(1, data, 0),"inverse":container.noop,"data":data,"loc":{"start":{"line":3,"column":8},"end":{"line":5,"column":15}}})) != null ? stack1 : "") + + "
    \n " + + ((stack1 = (lookupProperty(helpers,"time-tmpl")||(depth0 && lookupProperty(depth0,"time-tmpl"))||alias2).call(alias1,(depth0 != null ? lookupProperty(depth0,"model") : depth0),{"name":"time-tmpl","hash":{},"data":data,"loc":{"start":{"line":7,"column":16},"end":{"line":7,"column":37}}})) != null ? stack1 : "") + + "\n
    \n" + + ((stack1 = lookupProperty(helpers,"if").call(alias1,(depth0 != null ? lookupProperty(depth0,"hasComingDuration") : depth0),{"name":"if","hash":{},"fn":container.program(3, data, 0),"inverse":container.noop,"data":data,"loc":{"start":{"line":9,"column":8},"end":{"line":11,"column":15}}})) != null ? stack1 : "") + + "
    \n " + + ((stack1 = lookupProperty(helpers,"unless").call(alias1,(depth0 != null ? lookupProperty(depth0,"croppedEnd") : depth0),{"name":"unless","hash":{},"fn":container.program(5, data, 0),"inverse":container.noop,"data":data,"loc":{"start":{"line":13,"column":4},"end":{"line":13,"column":104}}})) != null ? stack1 : "") + + "\n
    \n
    \n"; +},"useData":true}); + +/***/ }), + +/***/ "./src/js/view/template/week/timezoneSticky.hbs": +/*!******************************************************!*\ + !*** ./src/js/view/template/week/timezoneSticky.hbs ***! + \******************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +var Handlebars = __webpack_require__(/*! ./node_modules/handlebars/runtime.js */ "./node_modules/handlebars/runtime.js"); +module.exports = (Handlebars['default'] || Handlebars).template({"1":function(container,depth0,helpers,partials,data) { + var stack1, helper, alias1=depth0 != null ? depth0 : (container.nullContext || {}), alias2=container.hooks.helperMissing, alias3="function", alias4=container.escapeExpression, alias5=container.lambda, lookupProperty = container.lookupProperty || function(parent, propertyName) { + if (Object.prototype.hasOwnProperty.call(parent, propertyName)) { + return parent[propertyName]; + } + return undefined + }; + + return "
    \n
    \n" + + ((stack1 = lookupProperty(helpers,"if").call(alias1,(lookupProperty(helpers,"and")||(depth0 && lookupProperty(depth0,"and"))||alias2).call(alias1,(depth0 != null ? lookupProperty(depth0,"isPrimary") : depth0),((stack1 = (data && lookupProperty(data,"root"))) && lookupProperty(stack1,"showTimezoneCollapseButton")),{"name":"and","hash":{},"data":data,"loc":{"start":{"line":4,"column":14},"end":{"line":4,"column":62}}}),{"name":"if","hash":{},"fn":container.program(4, data, 0),"inverse":container.noop,"data":data,"loc":{"start":{"line":4,"column":8},"end":{"line":10,"column":15}}})) != null ? stack1 : "") + + "
    " + + ((stack1 = (lookupProperty(helpers,"timezoneDisplayLabel-tmpl")||(depth0 && lookupProperty(depth0,"timezoneDisplayLabel-tmpl"))||alias2).call(alias1,(depth0 != null ? lookupProperty(depth0,"timezoneOffset") : depth0),(depth0 != null ? lookupProperty(depth0,"displayLabel") : depth0),{"name":"timezoneDisplayLabel-tmpl","hash":{},"data":data,"loc":{"start":{"line":11,"column":59},"end":{"line":11,"column":118}}})) != null ? stack1 : "") + + "
    \n
    \n
    \n"; +},"2":function(container,depth0,helpers,partials,data) { + return "display:none;"; +},"4":function(container,depth0,helpers,partials,data) { + var stack1, helper, alias1=depth0 != null ? depth0 : (container.nullContext || {}), alias2=container.hooks.helperMissing, alias3="function", alias4=container.escapeExpression, alias5=container.lambda, lookupProperty = container.lookupProperty || function(parent, propertyName) { + if (Object.prototype.hasOwnProperty.call(parent, propertyName)) { + return parent[propertyName]; + } + return undefined + }; + + return "
    \n \n \n \n
    \n"; +},"5":function(container,depth0,helpers,partials,data) { + var helper, lookupProperty = container.lookupProperty || function(parent, propertyName) { + if (Object.prototype.hasOwnProperty.call(parent, propertyName)) { + return parent[propertyName]; + } + return undefined + }; + + return container.escapeExpression(((helper = (helper = lookupProperty(helpers,"CSS_PREFIX") || (depth0 != null ? lookupProperty(depth0,"CSS_PREFIX") : depth0)) != null ? helper : container.hooks.helperMissing),(typeof helper === "function" ? helper.call(depth0 != null ? depth0 : (container.nullContext || {}),{"name":"CSS_PREFIX","hash":{},"data":data,"loc":{"start":{"line":7,"column":84},"end":{"line":7,"column":98}}}) : helper))) + + "ic-arrow-right"; +},"7":function(container,depth0,helpers,partials,data) { + var helper, lookupProperty = container.lookupProperty || function(parent, propertyName) { + if (Object.prototype.hasOwnProperty.call(parent, propertyName)) { + return parent[propertyName]; + } + return undefined + }; + + return container.escapeExpression(((helper = (helper = lookupProperty(helpers,"CSS_PREFIX") || (depth0 != null ? lookupProperty(depth0,"CSS_PREFIX") : depth0)) != null ? helper : container.hooks.helperMissing),(typeof helper === "function" ? helper.call(depth0 != null ? depth0 : (container.nullContext || {}),{"name":"CSS_PREFIX","hash":{},"data":data,"loc":{"start":{"line":7,"column":120},"end":{"line":7,"column":134}}}) : helper))) + + "ic-arrow-left"; +},"compiler":[8,">= 4.3.0"],"main":function(container,depth0,helpers,partials,data) { + var stack1, alias1=depth0 != null ? depth0 : (container.nullContext || {}), lookupProperty = container.lookupProperty || function(parent, propertyName) { + if (Object.prototype.hasOwnProperty.call(parent, propertyName)) { + return parent[propertyName]; + } + return undefined + }; + + return ((stack1 = lookupProperty(helpers,"each").call(alias1,(lookupProperty(helpers,"reverse")||(depth0 && lookupProperty(depth0,"reverse"))||container.hooks.helperMissing).call(alias1,(depth0 != null ? lookupProperty(depth0,"timezones") : depth0),{"name":"reverse","hash":{},"data":data,"loc":{"start":{"line":1,"column":8},"end":{"line":1,"column":27}}}),{"name":"each","hash":{},"fn":container.program(1, data, 0),"inverse":container.noop,"data":data,"loc":{"start":{"line":1,"column":0},"end":{"line":14,"column":11}}})) != null ? stack1 : ""); +},"useData":true}); + +/***/ }), + +/***/ "./src/js/view/view.js": +/*!*****************************!*\ + !*** ./src/js/view/view.js ***! + \*****************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; +/** + * @fileoverview The base class of views. + * @author NHN FE Development Lab + */ + + +var util = __webpack_require__(/*! tui-code-snippet */ "tui-code-snippet"); +var domutil = __webpack_require__(/*! ../common/domutil */ "./src/js/common/domutil.js"); +var Collection = __webpack_require__(/*! ../common/collection */ "./src/js/common/collection.js"); + +/** + * Base class of views. + * + * All views create own container element inside supplied container element. + * @constructor + * @param {HTMLElement} container Default container element for view. + * you can use this element for this.container syntax. + */ +function View(container) { + var id = util.stamp(this); + + if (util.isUndefined(container)) { + container = domutil.appendHTMLElement('div'); + } + + domutil.addClass(container, this.cssprefix(id)); + + /** + * unique id + * @type {number} + */ + this.id = id; + + /** + * base element of view. + * @type {HTMLDIVElement} + */ + this.container = container; + + /*eslint-disable*/ + /** + * child views. + * @type {Collection} + */ + this.children = new Collection(function(view) { + return util.stamp(view); + }); + /* eslint-enable*/ + + /** + * parent view instance. + * @type {View} + */ + this.parent = null; + + /** + * state of view + */ + this.state = {}; +} + +/** + * CSS classname prefix + * @type {string} + */ +View.prototype.cssPrefix = 'tui-view-'; + +/** + * Add child views. + * @param {View} view The view instance to add. + * @param {function} [fn] Function for invoke before add. parent view class is supplied first arguments. + */ +View.prototype.addChild = function(view, fn) { + if (fn) { + fn.call(view, this); + } + // add parent view + view.parent = this; + + this.children.add(view); +}; + +/** + * Remove added child view. + * @param {(number|View)} id View id or instance itself to remove. + * @param {function} [fn] Function for invoke before remove. parent view class is supplied first arguments. + */ +View.prototype.removeChild = function(id, fn) { + var view = util.isNumber(id) ? this.children.items[id] : id; + + id = util.stamp(view); + + if (fn) { + fn.call(view, this); + } + + this.children.remove(id); +}; + +/** + * Render view recursively. + */ +View.prototype.render = function() { + this.children.each(function(childView) { + childView.render(); + }); +}; + +/** + * Invoke function recursively. + * @param {function} fn - function to invoke child view recursively + * @param {boolean} [skipThis=false] - set true then skip invoke with this(root) view. + */ +View.prototype.recursive = function(fn, skipThis) { + if (!util.isFunction(fn)) { + return; + } + + if (!skipThis) { + fn(this); + } + + this.children.each(function(childView) { + childView.recursive(fn); + }); +}; + +/** + * Resize view recursively to parent. + */ +View.prototype.resize = function() { + var args = Array.prototype.slice.call(arguments), + parent = this.parent; + + while (parent) { + if (util.isFunction(parent._onResize)) { + parent._onResize.apply(parent, args); + } + + parent = parent.parent; + } +}; + +/** + * Invoking method before destroying. + */ +View.prototype._beforeDestroy = function() {}; + +/** + * Clear properties + */ +View.prototype._destroy = function() { + this._beforeDestroy(); + this.children.clear(); + this.container.innerHTML = ''; + + this.id = this.parent = this.children = this.container = null; +}; + +/*eslint-disable*/ +/** + * Destroy child view recursively. + */ +View.prototype.destroy = function(isChildView) { + this.children.each(function(childView) { + childView.destroy(true); + childView._destroy(); + }); + + if (isChildView) { + return; + } + + this._destroy(); +}; +/* eslint-enable*/ + +/** + * Calculate view's container element bound. + * @returns {object} The bound of container element. + */ +View.prototype.getViewBound = function() { + var container = this.container, + position = domutil.getPosition(container), + size = domutil.getSize(container); + + return { + x: position[0], + y: position[1], + width: size[0], + height: size[1] + }; +}; + +/** + * Return view default CSS prefix + * @param {string} [className] - if supplied then return prefix added class name + * @returns {string} CSS prefix value + */ +View.prototype.cssprefix = function(className) { + return this.cssPrefix + (className || ''); +}; + +/** + * set state + * @param {object} state - state + */ +View.prototype.setState = function(state) { + util.extend(this.state, state); +}; + +util.CustomEvents.mixin(View); + +module.exports = View; + + +/***/ }), + +/***/ "./src/js/view/week/dayGrid.js": +/*!*************************************!*\ + !*** ./src/js/view/week/dayGrid.js ***! + \*************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; +/** + * @fileoverview DayGrid in weekly view + * @author NHN FE Development Lab + */ + + +var util = __webpack_require__(/*! tui-code-snippet */ "tui-code-snippet"); +var config = __webpack_require__(/*! ../../config */ "./src/js/config.js"), + common = __webpack_require__(/*! ../../common/common */ "./src/js/common/common.js"), + datetime = __webpack_require__(/*! ../../common/datetime */ "./src/js/common/datetime.js"), + domutil = __webpack_require__(/*! ../../common/domutil */ "./src/js/common/domutil.js"), + TZDate = __webpack_require__(/*! ../../common/timezone */ "./src/js/common/timezone.js").Date, + View = __webpack_require__(/*! ../../view/view */ "./src/js/view/view.js"), + DayGridSchedule = __webpack_require__(/*! ./dayGridSchedule */ "./src/js/view/week/dayGridSchedule.js"), + baseTmpl = __webpack_require__(/*! ../template/week/dayGrid.hbs */ "./src/js/view/template/week/dayGrid.hbs"), + reqAnimFrame = __webpack_require__(/*! ../../common/reqAnimFrame */ "./src/js/common/reqAnimFrame.js"); +var mmax = Math.max, + mmin = Math.min; + +/** + * @constructor + * @extends {Weekday} + * @param {string} name - view name + * @param {object} options - options for DayGridSchedule view + * @param {number} [options.heightPercent] - height percent of view + * @param {number} [options.containerButtonGutter=8] - free space at bottom to + * make create easy. + * @param {number} [options.scheduleHeight=18] - height of each schedule block. + * @param {number} [options.scheduleGutter=2] - gutter height of each schedule block. + * @param {HTMLDIVElement} container - DOM element to use container for this + * view. + * @param {Theme} theme - theme instance + */ +function DayGrid(name, options, container, theme) { + container = domutil.appendHTMLElement( + 'div', + container, + config.classname('daygrid-layout') + ); + View.call(this, container); + + name = name || 'daygrid'; + + this.options = util.extend({ + viewName: name, + daynames: ['Sun', 'Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat'], + renderStartDate: '', + renderEndDate: '', + containerBottomGutter: 18, + scheduleHeight: parseInt(theme.week.dayGridSchedule.height, 10), + scheduleGutter: parseInt(theme.week.dayGridSchedule.marginTop, 10), + scheduleContainerTop: 1, + timezones: options.timezones, + isReadOnly: options.isReadOnly, + getViewModelFunc: function(viewModel) { + return viewModel.schedulesInDateRange[name]; + }, + setViewModelFunc: function(viewModel, matrices) { + viewModel.schedulesInDateRange[name] = matrices; + } + }, options.week); + + this.handler = {}; + this.vPanel = null; + + this.state.collapsed = true; +} + +util.inherit(DayGrid, View); + +/** + * @override + * @param {object} viewModel - schedules view models + */ +DayGrid.prototype.getBaseViewModel = function(viewModel) { + var opt = this.options, + daynames = opt.daynames, + range = viewModel.range, + grids = viewModel.grids, + matrices = opt.getViewModelFunc(viewModel), + exceedDate = {}, + panel = getPanel(opt.panels, opt.viewName), + panelHeight = this.getViewBound().height, + collapsed = this.state.collapsed, + heightForcedSet = this.vPanel ? this.vPanel.getHeightForcedSet() : false, + timezonesCollapsed = viewModel.state.timezonesCollapsed, + styles = this._getStyles(viewModel.theme, timezonesCollapsed); + + var baseViewModel, visibleScheduleCount; + var now = new TZDate().toLocalTime(); + + if (panel.showExpandableButton) { + if (!heightForcedSet) { + if (collapsed) { + panelHeight = mmax(panelHeight, panel.maxHeight); + } else { + panelHeight = mmin(panelHeight, panel.maxExpandableHeight); + } + } + + visibleScheduleCount = Math.floor(panelHeight / (opt.scheduleHeight + opt.scheduleGutter)); + if (collapsed) { + exceedDate = this.parent.controller.getExceedDate(visibleScheduleCount, + matrices, + viewModel.range + ); + matrices = this.parent.controller.excludeExceedSchedules(matrices, visibleScheduleCount); + opt.setViewModelFunc(viewModel, matrices); + } + } + + baseViewModel = { + viewName: opt.viewName, + range: range, + grids: grids, + days: util.map(viewModel.range, function(d, index) { + var day = d.getDay(); + var ymd = datetime.format(d, 'YYYYMMDD'); + var isToday = datetime.isSameDate(now, d); + + return { + day: day, + dayName: daynames[day], + isToday: isToday, + date: d.getDate(), + renderDate: datetime.format(d, 'YYYY-MM-DD'), + hiddenSchedules: exceedDate[ymd] || 0, + width: grids[index] ? grids[index].width : 0, + left: grids[index] ? grids[index].left : 0, + backgroundColor: viewModel.range.length > 1 ? + getWeekBackgroundColor(day, isToday, styles) : styles.backgroundColor + }; + }), + exceedDate: exceedDate, + showExpandableButton: panel.showExpandableButton, + collapsed: collapsed, + collapseBtnIndex: this.state.clickedExpandBtnIndex, + styles: styles + }; + + return baseViewModel; +}; + +/** + * @override + * @param {object} viewModel - schedules view models + */ +DayGrid.prototype.render = function(viewModel) { + var opt = this.options, + container = this.container, + baseViewModel = this.getBaseViewModel(viewModel), + scheduleContainerTop = this.options.scheduleContainerTop; + var dayGridSchedule; + + container.innerHTML = baseTmpl(baseViewModel); + + this.children.clear(); + + dayGridSchedule = new DayGridSchedule( + opt, + domutil.find(config.classname('.container'), container) + ); + this.addChild(dayGridSchedule); + + dayGridSchedule.on('afterRender', function(weekdayViewModel) { + baseViewModel.height = weekdayViewModel.minHeight + scheduleContainerTop; + }); + + this.children.each(function(childView) { + childView.render(viewModel); + }, this); + + this.fire('afterRender', baseViewModel); +}; + +DayGrid.prototype._beforeDestroy = function() { +}; + +DayGrid.prototype.addHandler = function(type, handler, vPanel) { + var self = this; + + this.handler[type] = handler; + this.vPanel = vPanel; + + if (type === 'click') { + handler.on('expand', function() { + self.setState({ + collapsed: false + }); + }, this); + handler.on('collapse', function() { + self.setState({ + collapsed: true + }); + }, this); + } +}; + +DayGrid.prototype._expand = function() { + reqAnimFrame.requestAnimFrame(function() { + var vPanel = this.vPanel; + var opt = this.options; + var panel = getPanel(opt.panels, opt.viewName); + + vPanel.setMaxHeight(panel.maxExpandableHeight); + vPanel.setHeightForcedSet(false); + vPanel.setHeight(null, panel.maxExpandableHeight); + + if (this.parent) { + this.parent.render(); + } + }, this); +}; + +DayGrid.prototype._collapse = function() { + reqAnimFrame.requestAnimFrame(function() { + var vPanel = this.vPanel; + var opt = this.options; + var panel = getPanel(opt.panels, opt.viewName); + + vPanel.setMaxHeight(panel.maxHeight); + vPanel.setHeightForcedSet(false); + vPanel.setHeight(null, panel.minHeight); + + if (this.parent) { + this.parent.render(); + } + }, this); +}; + +/** + * set state + * @param {object} state - state + */ +DayGrid.prototype.setState = function(state) { + var collapsed = this.state.collapsed; + View.prototype.setState.call(this, state); + + if (this.state.collapsed === collapsed) { + return; + } + + if (this.state.collapsed) { + this._collapse(); + } else { + this._expand(); + } +}; + +/** + * Get the styles from theme + * @param {Theme} theme - theme instance + * @param {boolean} timezonesCollapsed - multiple timezones are collapsed. + * @returns {object} styles - styles object + */ +DayGrid.prototype._getStyles = function(theme, timezonesCollapsed) { + var styles = {}; + var timezonesLength = this.options.timezones.length; + var collapsed = timezonesCollapsed; + var numberAndUnit; + + if (theme) { + styles.borderRight = theme.week.daygrid.borderRight || theme.common.border; + styles.todayBackgroundColor = theme.week.today.backgroundColor; + styles.weekendBackgroundColor = theme.week.weekend.backgroundColor; + styles.backgroundColor = theme.week.daygrid.backgroundColor; + styles.leftWidth = theme.week.daygridLeft.width; + styles.leftBackgroundColor = theme.week.daygridLeft.backgroundColor; + styles.leftPaddingRight = theme.week.daygridLeft.paddingRight; + styles.leftBorderRight = theme.week.daygridLeft.borderRight; + + if (!collapsed && timezonesLength > 1) { + numberAndUnit = common.parseUnit(styles.leftWidth); + styles.leftWidth = (numberAndUnit[0] * timezonesLength) + numberAndUnit[1]; + } + } + + return styles; +}; + +/** + * Get a background color based on day. + * @param {number} day - day number + * @param {boolean} isToday - today flag + * @param {object} styles - style object + * @returns {string} backgroundColor + */ +function getWeekBackgroundColor(day, isToday, styles) { + var backgroundColor = ''; + + if (day === 0 || day === 6) { + backgroundColor = styles.weekendBackgroundColor; + } else if (isToday) { + backgroundColor = styles.todayBackgroundColor; + } else { + backgroundColor = styles.backgroundColor; + } + + return backgroundColor; +} + +/** + * get a panel infomation + * @param {Array.} panels - panel infomations + * @param {string} name - panel name + * @returns {object} panel information + */ +function getPanel(panels, name) { + var found; + + util.forEach(panels, function(panel) { + if (panel.name === name) { + found = panel; + } + }); + + return found; +} + +module.exports = DayGrid; + + +/***/ }), + +/***/ "./src/js/view/week/dayGridSchedule.js": +/*!*********************************************!*\ + !*** ./src/js/view/week/dayGridSchedule.js ***! + \*********************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; +/** + * @fileoverview Weekday view for week + * @author NHN FE Development Lab + */ + + +var util = __webpack_require__(/*! tui-code-snippet */ "tui-code-snippet"); +var Weekday = __webpack_require__(/*! ../weekday */ "./src/js/view/weekday.js"), + tmpl = __webpack_require__(/*! ../template/week/dayGridSchedule.hbs */ "./src/js/view/template/week/dayGridSchedule.hbs"); +var mmax = Math.max; + +/** + * @constructor + * @extends {Weekday} + * @param {object} options - options for DayGridSchedule view + * @param {number} [options.containerButtonGutter=8] - free space at bottom to + * make create easy. + * @param {number} [options.scheduleHeight=18] - height of each schedule block. + * @param {number} [options.scheduleGutter=2] - gutter height of each schedule block. + * @param {HTMLDIVElement} container - DOM element to use container for this + * view. + */ +function DayGridSchedule(options, container) { + Weekday.call(this, options, container); + + this.collapsed = true; +} + +util.inherit(DayGridSchedule, Weekday); + +/** + * Render Weekday view + * @override + */ +DayGridSchedule.prototype.render = function(viewModel) { + var container = this.container; + var baseViewModel; + + baseViewModel = this.getBaseViewModel(viewModel); + + container.innerHTML = tmpl(baseViewModel); + + this.fire('afterRender', baseViewModel); +}; + +/** + * returns maximum schedule count in day + * @param {array} matrices - The matrices for schedule placing. + * @returns {number} maximum schedule count in day + */ +DayGridSchedule.prototype._getMaxScheduleInDay = function(matrices) { + return mmax.apply( + null, + util.map(matrices, function(matrix) { + return Math.max.apply(null, util.map(matrix, function(row) { + return row.length; + })); + }) + ); +}; + +/** + * returns minimum height for container. + * @param {number} maxScheduleInDay - max schedule blocks in one day + * @returns {number} + */ +DayGridSchedule.prototype._getMinHeight = function(maxScheduleInDay) { + var opt = this.options; + var contentHeight = (maxScheduleInDay * opt.scheduleHeight) + + ((maxScheduleInDay - 1) * opt.scheduleGutter); + + // if (this.collapsed && this.aboutMe.maxHeight >= contentHeight + opt.containerBottomGutter) { + // contentHeight += opt.containerBottomGutter; + // } + + return contentHeight; +}; + +/** + * @override + * @param {object} viewModel - schedules view models + */ +DayGridSchedule.prototype.getBaseViewModel = function(viewModel) { + var opt = this.options; + var matrices = opt.getViewModelFunc(viewModel); + var maxScheduleInDay = this._getMaxScheduleInDay(matrices); + var baseViewModel; + var styles = this._getStyles(viewModel.theme); + + baseViewModel = Weekday.prototype.getBaseViewModel.call(this, viewModel); + + baseViewModel = util.extend({ + minHeight: this._getMinHeight(maxScheduleInDay), + matrices: matrices, + scheduleContainerTop: this.options.scheduleContainerTop, + maxScheduleInDay: maxScheduleInDay, + isReadOnly: opt.isReadOnly, + styles: styles + }, baseViewModel); + + return baseViewModel; +}; + +/** + * Get the styles from theme + * @param {Theme} theme - theme instance + * @returns {object} styles - styles object + */ +DayGridSchedule.prototype._getStyles = function(theme) { + var styles = {}; + + if (theme) { + styles.borderRadius = theme.week.dayGridSchedule.borderRadius; + } + + return styles; +}; + +module.exports = DayGridSchedule; + + +/***/ }), + +/***/ "./src/js/view/week/dayname.js": +/*!*************************************!*\ + !*** ./src/js/view/week/dayname.js ***! + \*************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; +/** + * @fileoverview View for rendering daynames + * @author NHN FE Development Lab + */ + + +var util = __webpack_require__(/*! tui-code-snippet */ "tui-code-snippet"); +var config = __webpack_require__(/*! ../../config */ "./src/js/config.js"); +var common = __webpack_require__(/*! ../../common/common */ "./src/js/common/common.js"); +var datetime = __webpack_require__(/*! ../../common/datetime */ "./src/js/common/datetime.js"); +var TZDate = __webpack_require__(/*! ../../common/timezone */ "./src/js/common/timezone.js").Date; +var domutil = __webpack_require__(/*! ../../common/domutil */ "./src/js/common/domutil.js"); +var View = __webpack_require__(/*! ../view */ "./src/js/view/view.js"); +var daynameTmpl = __webpack_require__(/*! ../template/week/daynames.hbs */ "./src/js/view/template/week/daynames.hbs"); + +/** + * @constructor + * @param {object} options - options for dayname view + * @param {HTMLElement} container Container element to use. + * @param {Theme} theme - theme instance + * @extends {View} + */ +function DayName(options, container, theme) { + container = domutil.appendHTMLElement( + 'div', + container, + config.classname('dayname-container') + ); + + this.options = util.extend({ + daynames: ['Sun', 'Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat'], + timezones: options.timezones + }, options.week); + + /** + * @type {Theme} + */ + this.theme = theme; + + View.call(this, container); + + this.applyTheme(); +} + +util.inherit(DayName, View); + +/** + * Get default viewmodels. + * @param {Date} start The date of start render + * @param {Date} end The end of end render + * @param {object} grids grid data(width, left, day) + * @returns {array} viewmodel. + */ +DayName.prototype._getBaseViewModel = function(start, end, grids) { + var daynames = this.options.daynames, + theme = this.theme, + now = new TZDate().toLocalTime(), + viewModel; + + viewModel = util.map(datetime.range( + datetime.start(start), + datetime.end(end), + datetime.MILLISECONDS_PER_DAY + ), function(d, i) { + var day = d.getDay(); + var isToday = datetime.isSameDate(d, now); + var isPastDay = d < now && !isToday; + + return { + day: day, + dayName: daynames[day], + isToday: isToday, + date: d.getDate(), + left: grids[i] ? grids[i].left : 0, + width: grids[i] ? grids[i].width : 0, + renderDate: datetime.format(d, 'YYYY-MM-DD'), + color: this._getDayNameColor(theme, day, isToday, isPastDay) + }; + }, this); + + return viewModel; +}; + +/** + * @override + * @param {object} viewModel View model from parent (WeekView) + */ +DayName.prototype.render = function(viewModel) { + var dayNames = this._getBaseViewModel( + viewModel.renderStartDate, + viewModel.renderEndDate, + viewModel.grids + ); + var timezonesCollapsed = viewModel.state.timezonesCollapsed; + var styles = this._getStyles(this.theme, timezonesCollapsed); + var baseViewModel = util.extend({}, { + dayNames: dayNames, + styles: styles + }); + + this.container.innerHTML = daynameTmpl(baseViewModel); +}; + +/** + * Get a day name color + * @param {Theme} theme - theme instance + * @param {number} day - day number + * @param {boolean} isToday - today flag + * @param {boolean} isPastDay - is past day flag + * @returns {string} style - color style + */ +DayName.prototype._getDayNameColor = function(theme, day, isToday, isPastDay) { + var color = ''; + + if (theme) { + if (day === 0) { + color = theme.common.holiday.color; + } else if (isPastDay) { + color = theme.week.pastDay.color || theme.common.dayname.color; + } else if (day === 6) { + color = theme.common.saturday.color; + } else if (isToday) { + color = theme.week.today.color || theme.common.today.color; + } else { + color = theme.common.dayname.color; + } + } + + return color; +}; + +/** + * Get the styles from theme + * @param {Theme} theme - theme instance + * @param {boolean} timezonesCollapsed - multiple timezones are collapsed. + * @returns {object} styles - styles object + */ +DayName.prototype._getStyles = function(theme, timezonesCollapsed) { + var styles = {}; + var timezonesLength = this.options.timezones.length; + var collapsed = timezonesCollapsed; + var numberAndUnit; + + if (theme) { + styles.borderTop = theme.week.dayname.borderTop || theme.common.border; + styles.borderBottom = theme.week.dayname.borderBottom || theme.common.border; + styles.borderLeft = theme.week.dayname.borderLeft || theme.common.border; + styles.paddingLeft = theme.week.dayname.paddingLeft; + styles.backgroundColor = theme.week.dayname.backgroundColor; + styles.height = theme.week.dayname.height; + styles.textAlign = theme.week.dayname.textAlign; + styles.marginLeft = theme.week.daygridLeft.width; + + if (!collapsed && timezonesLength > 1) { + numberAndUnit = common.parseUnit(styles.marginLeft); + styles.marginLeft = (numberAndUnit[0] * timezonesLength) + numberAndUnit[1]; + } + } + + return styles; +}; + +DayName.prototype.applyTheme = function() { + var styles = this._getStyles(this.theme); + var style = this.container.style; + + style.borderTop = styles.borderTop; + style.borderBottom = styles.borderBottom; + style.height = styles.height; + style.backgroundColor = styles.backgroundColor; + style.textAlign = styles.textAlign; + + return style; +}; + +module.exports = DayName; + + +/***/ }), + +/***/ "./src/js/view/week/time.js": +/*!**********************************!*\ + !*** ./src/js/view/week/time.js ***! + \**********************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; +/** + * @fileoverview View of time. + * @author NHN FE Development Lab + */ + + +var util = __webpack_require__(/*! tui-code-snippet */ "tui-code-snippet"); +var config = __webpack_require__(/*! ../../config */ "./src/js/config.js"); +var datetime = __webpack_require__(/*! ../../common/datetime */ "./src/js/common/datetime.js"); +var domutil = __webpack_require__(/*! ../../common/domutil */ "./src/js/common/domutil.js"); +var View = __webpack_require__(/*! ../view */ "./src/js/view/view.js"); +var timeTmpl = __webpack_require__(/*! ../template/week/time.hbs */ "./src/js/view/template/week/time.hbs"); +var tz = __webpack_require__(/*! ../../common/timezone */ "./src/js/common/timezone.js"); + +var forEachArr = util.forEachArray; +var SCHEDULE_MIN_DURATION = datetime.MILLISECONDS_SCHEDULE_MIN_DURATION; + +/** + * calculate offset start of schedule + * @param {ScheduleViewModel} viewModel - view model instance to calculate bound. + * @param {object} options - options for calculating schedule element's bound. + * @returns {object} - left and width + */ +function getOffsetStart(viewModel, options) { + var goingDuration = datetime.millisecondsFrom('minutes', viewModel.valueOf().goingDuration); + var startDayOffset = options.todayStart.toDate().getTimezoneOffset(); + var nativeOffsetMs = tz.getNativeOffsetMs(); + var startOffset = viewModel.valueOf().start.toDate().getTimezoneOffset(); + var primaryOffset = tz.getPrimaryOffset(); + var timezoneOffset = tz.getOffsetByTimezoneName( + tz.getPrimaryTimezoneName(), + viewModel.valueOf().start.getTime() + ); + var MIN_TO_MS = 60 * 1000; + var offsetDiffMs = 0; + var offsetStart = viewModel.valueOf().start - goingDuration - options.todayStart; + + if (tz.hasPrimaryTimezoneCustomSetting()) { + if (tz.isNativeOsUsingDSTTimezone() && nativeOffsetMs !== startDayOffset) { + // When using a custom time zone, the native time zone offset is fixed and rendered. + // So, The fixed and rendered time should be recalculated as the original time zone offset. + // The current system OS local time is not affected by summer/standard time and the schedule should always be displayed in the same location. + offsetDiffMs = (startOffset * MIN_TO_MS) - nativeOffsetMs; + offsetStart += offsetDiffMs; + } + + if (tz.isPrimaryUsingDSTTimezone() && primaryOffset !== timezoneOffset) { + // The custom time zone is a time zone where two offsets including DST are applied. + // The first rendered schedule is calculated and drawn with the offset calculated at the access time(system OS local time). + // It should be recalculated with the original time zone offset. + offsetDiffMs = (primaryOffset - timezoneOffset) * MIN_TO_MS; + offsetStart += offsetDiffMs; + } + } + + return offsetStart; +} + +/** + * @constructor + * @extends {View} + * @param {object} options Options + * @param {number} options.index Date index in week view. + * @param {number} options.width Date element width (percent) + * @param {string} options.ymd YYYMMDD string for this view + * @param {boolean} options.isToday when set true then assign today design class to container. + * @param {number} options.hourStart Can limit of render hour start. + * @param {number} options.hourEnd Can limit of render hour end. + * @param {HTMLElement} container Element to use container for this view. + * @param {Theme} theme - theme instance + */ +function Time(options, container, theme) { + View.call(this, container); + + this.options = util.extend( + { + index: 0, + width: 0, + ymd: '', + isToday: false, + pending: false, + hourStart: 0, + hourEnd: 24, + defaultMarginBottom: 2, + minHeight: 18.5, + isReadOnly: false + }, + options + ); + + this.timeTmpl = timeTmpl; + + /** + * @type {Theme} + */ + this.theme = theme; + + container.style.width = options.width + '%'; + container.style.left = options.left + '%'; + + if (this.options.isToday) { + domutil.addClass(this.container, config.classname('today')); + } + + this.applyTheme(); +} + +util.inherit(Time, View); + +/** + * Convert YYYYMMDD formatted string date to Date. + * @param {string} str formatted string. + * @returns {Date} start of date. + */ +Time.prototype._parseDateGroup = function(str) { + var y = parseInt(str.substr(0, 4), 10), + m = parseInt(str.substr(4, 2), 10), + d = parseInt(str.substr(6, 2), 10); + var date = datetime.start(); + + date.setFullYear(y, m - 1, d); + + return datetime.start(date); +}; + +/** + * calculate left and width + * @param {ScheduleViewModel} viewModel - view model instance to calculate bound. + * @param {object} options - options for calculating schedule element's bound. + * @returns {object} - left and width + */ +Time.prototype._getScheduleViewBoundX = function(viewModel, options) { + var width = options.baseWidth * (viewModel.extraSpace + 1); + + // set width auto when has no collisions. + if (!viewModel.hasCollide) { + width = null; + } + + return { + left: options.baseLeft[options.columnIndex], + width: width + }; +}; + +/** + * calculate top, height, croppedStart and croppedEnd + * @param {ScheduleViewModel} viewModel - view model instance to calculate bound. + * @param {object} options - options for calculating schedule element's bound. + * @returns {object} - left and width + */ +Time.prototype._getScheduleViewBoundY = function(viewModel, options) { + var baseMS = options.baseMS; + var baseHeight = options.baseHeight; + var croppedStart = false; + var croppedEnd = false; + var goingDuration = datetime.millisecondsFrom('minutes', viewModel.valueOf().goingDuration); + var comingDuration = datetime.millisecondsFrom('minutes', viewModel.valueOf().comingDuration); + var modelDuration = viewModel.duration(); + var top, height, duration; + var goingDurationHeight, modelDurationHeight, comingDurationHeight; + var offsetStart = getOffsetStart(viewModel, options); + + // containerHeight : milliseconds in day = x : schedule's milliseconds + top = (baseHeight * offsetStart) / baseMS; + + modelDuration = modelDuration > SCHEDULE_MIN_DURATION ? modelDuration : SCHEDULE_MIN_DURATION; + duration = modelDuration + goingDuration + comingDuration; + height = (baseHeight * duration) / baseMS; + + goingDurationHeight = (baseHeight * goingDuration) / baseMS; // common.ratio(duration, goingDuration, 100); + modelDurationHeight = (baseHeight * modelDuration) / baseMS; // common.ratio(duration, modelDuration, 100); + comingDurationHeight = (baseHeight * comingDuration) / baseMS; // common.ratio(duration, comingDuration, 100); + + if (offsetStart < 0) { + top = 0; + height += (baseHeight * offsetStart) / baseMS; + croppedStart = true; + } + + if (height + top > baseHeight) { + height = baseHeight - top; + croppedEnd = true; + } + + return { + top: top, + height: Math.max(height, this.options.minHeight) - this.options.defaultMarginBottom, + modelDurationHeight: modelDurationHeight, + goingDurationHeight: goingDurationHeight, + comingDurationHeight: comingDurationHeight, + hasGoingDuration: goingDuration > 0, + hasComingDuration: comingDuration > 0, + croppedStart: croppedStart, + croppedEnd: croppedEnd + }; +}; + +/** + * @param {ScheduleViewModel} viewModel - view model instance to calculate bound. + * @param {object} options - options for calculating schedule element's bound. + * @param {Date} options.todayStart - date object represent schedule date's start (00:00:00) + * @param {number} options.baseMS - the number of milliseconds to render schedule blocks. + * @param {number} options.baseHeight - pixel value related with baseMS options. + * @param {number[]} options.baseLeft - left position percents for each columns. + * @param {number} options.baseWidth - the unit of schedule blocks width percent. + * @param {number} options.columnIndex - the number index of schedule blocks. + * it represent rendering index from left sides in view. + * @returns {object} bound object for supplied view model. + */ +Time.prototype.getScheduleViewBound = function(viewModel, options) { + var boundX = this._getScheduleViewBoundX(viewModel, options); + var boundY = this._getScheduleViewBoundY(viewModel, options); + var schedule = viewModel.model; + var isReadOnly = util.pick(schedule, 'isReadOnly') || false; + var travelBorderColor = schedule.isFocused ? '#ffffff' : schedule.borderColor; + if (travelBorderColor === schedule.bgColor) { + travelBorderColor = null; // follow text color + } + + return util.extend( + { + isReadOnly: isReadOnly, + travelBorderColor: travelBorderColor + }, + boundX, + boundY + ); +}; + +/** + * Set viewmodels for rendering. + * @param {string} ymd The date of schedules. YYYYMMDD format. + * @param {array} matrices The matrices for schedule placing. + * @param {number} containerHeight - container's height + */ +Time.prototype._getBaseViewModel = function(ymd, matrices, containerHeight) { + var self = this, + options = this.options, + hourStart = options.hourStart, + hourEnd = options.hourEnd, + isReadOnly = options.isReadOnly, + todayStart, + baseMS; + + /** + * Calculate each schedule element bounds relative with rendered hour milliseconds and + * wrap each schedule model to viewmodels. + */ + containerHeight = containerHeight || this.getViewBound().height; + todayStart = this._parseDateGroup(ymd); + todayStart.setHours(hourStart); + baseMS = datetime.millisecondsFrom('hour', hourEnd - hourStart); + + forEachArr(matrices, function(matrix) { + var maxRowLength, widthPercent, leftPercents, i; + + maxRowLength = Math.max.apply( + null, + util.map(matrix, function(row) { + return row.length; + }) + ); + + widthPercent = 100 / maxRowLength; + + leftPercents = []; + for (i = 0; i < maxRowLength; i += 1) { + leftPercents[i] = widthPercent * i; + } + + forEachArr(matrix, function(row) { + forEachArr(row, function(viewModel, col) { + var viewBound; + + if (!viewModel) { + return; + } + + viewBound = self.getScheduleViewBound(viewModel, { + todayStart: todayStart, + baseMS: baseMS, + baseLeft: leftPercents, + baseWidth: widthPercent, + baseHeight: containerHeight, + columnIndex: col, + isReadOnly: isReadOnly + }); + + util.extend(viewModel, viewBound); + }); + }); + }); +}; + +/** + * @returns {Date} - Date of this view. + */ +Time.prototype.getDate = function() { + return this._parseDateGroup(this.options.ymd); +}; + +/** + * @override + * @param {string} ymd The date of schedules. YYYYMMDD format + * @param {array} matrices Matrices for placing schedules + * @param {number} containerHeight - container's height + */ +Time.prototype.render = function(ymd, matrices, containerHeight) { + this._getBaseViewModel(ymd, matrices, containerHeight); + this.container.innerHTML = this.timeTmpl({ + matrices: matrices, + styles: this._getStyles(this.theme), + isReadOnly: this.options.isReadOnly + }); +}; + +/** + * Get the styles from theme + * @param {Theme} theme - theme instance + * @returns {object} styles - styles object + */ +Time.prototype._getStyles = function(theme) { + var styles = {}; + var options = this.options; + + if (theme) { + styles.borderRight = theme.week.timegrid.borderRight || theme.common.border; + styles.marginRight = theme.week.timegrid.paddingRight; + styles.borderRadius = theme.week.timegridSchedule.borderRadius; + styles.paddingLeft = theme.week.timegridSchedule.paddingLeft; + styles.backgroundColor = options.isToday ? theme.week.today.backgroundColor : 'inherit'; + } + + return styles; +}; + +Time.prototype.applyTheme = function() { + var style = this.container.style; + var styles = this._getStyles(this.theme); + + style.borderRight = styles.borderRight; + style.backgroundColor = styles.backgroundColor; +}; + +module.exports = Time; + + +/***/ }), + +/***/ "./src/js/view/week/timeGrid.js": +/*!**************************************!*\ + !*** ./src/js/view/week/timeGrid.js ***! + \**************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; +/** + * @fileoverview View for rendered schedules by times. + * @author NHN FE Development Lab + */ + + +var util = __webpack_require__(/*! tui-code-snippet */ "tui-code-snippet"); +var config = __webpack_require__(/*! ../../config */ "./src/js/config.js"); +var common = __webpack_require__(/*! ../../common/common */ "./src/js/common/common.js"); +var domutil = __webpack_require__(/*! ../../common/domutil */ "./src/js/common/domutil.js"); +var domevent = __webpack_require__(/*! ../../common/domevent */ "./src/js/common/domevent.js"); +var datetime = __webpack_require__(/*! ../../common/datetime */ "./src/js/common/datetime.js"); +var tz = __webpack_require__(/*! ../../common/timezone */ "./src/js/common/timezone.js"); +var reqAnimFrame = __webpack_require__(/*! ../../common/reqAnimFrame */ "./src/js/common/reqAnimFrame.js"); +var View = __webpack_require__(/*! ../view */ "./src/js/view/view.js"); +var Time = __webpack_require__(/*! ./time */ "./src/js/view/week/time.js"); +var AutoScroll = __webpack_require__(/*! ../../common/autoScroll */ "./src/js/common/autoScroll.js"); +var mainTmpl = __webpack_require__(/*! ../template/week/timeGrid.hbs */ "./src/js/view/template/week/timeGrid.hbs"); +var timezoneStickyTmpl = __webpack_require__(/*! ../template/week/timezoneSticky.hbs */ "./src/js/view/template/week/timezoneSticky.hbs"); +var timegridCurrentTimeTmpl = __webpack_require__(/*! ../template/week/timeGridCurrentTime.hbs */ "./src/js/view/template/week/timeGridCurrentTime.hbs"); +var TZDate = tz.Date; +var HOURMARKER_REFRESH_INTERVAL = 1000 * 60; +var SIXTY_SECONDS = 60; +var SIXTY_MINUTES = 60; + +/** + * Returns a list of time labels from start to end. + * For hidden labels near the current time, set to hidden: true. + * @param {object} opt - TimeGrid.options + * @param {boolean} hasHourMarker - Whether the current time is displayed + * @param {number} timezoneOffset - timezone offset + * @param {object} styles - styles + * @returns {Array.} + */ +function getHoursLabels(opt, hasHourMarker, timezoneOffset, styles) { + var hourStart = opt.hourStart; + var hourEnd = opt.hourEnd; + var renderEndDate = new TZDate(opt.renderEndDate); + var shiftByOffset = parseInt(timezoneOffset / SIXTY_MINUTES, 10); + var shiftMinutes = Math.abs(timezoneOffset % SIXTY_MINUTES); + var now = new TZDate().toLocalTime(); + var nowMinutes = now.getMinutes(); + var hoursRange = util.range(0, 24); + var nowAroundHours = null; + var nowHours, nowHoursIndex; + var isNegativeZero = 1 / -Infinity === shiftByOffset; + + if ((shiftByOffset < 0 || isNegativeZero) && shiftMinutes > 0) { + shiftByOffset -= 1; + } + + // shift the array and take elements between start and end + common.shiftArray(hoursRange, shiftByOffset); + common.takeArray(hoursRange, hourStart, hourEnd); + + nowHours = common.shiftHours(now.getHours(), shiftByOffset) % 24; + nowHoursIndex = util.inArray(nowHours, hoursRange); + + if (hasHourMarker) { + if (nowMinutes < 20) { + nowAroundHours = nowHours; + } else if (nowMinutes > 40) { + nowAroundHours = nowHours + 1; + } + + if (util.isNumber(nowAroundHours)) { + nowAroundHours %= 24; + } + } + + return util.map(hoursRange, function(hour, index) { + var color; + var fontWeight; + var isPast = + (hasHourMarker && index <= nowHoursIndex) || + (renderEndDate < now && !datetime.isSameDate(renderEndDate, now)); + + if (isPast) { + // past + color = styles.pastTimeColor; + fontWeight = styles.pastTimeFontWeight; + } else { + // future + color = styles.futureTimeColor; + fontWeight = styles.futureTimeFontWeight; + } + + return { + hour: hour, + minutes: shiftMinutes, + hidden: nowAroundHours === hour || index === 0, + color: color || '', + fontWeight: fontWeight || '' + }; + }); +} + +/** + * Returns timezone offset from timezone object + * @param {object} timezoneObj - timezone object in options.timzones + * @param {number} timestamp - timestamp + * @returns {number} timezoneOffset - timezone offset + */ +function getOffsetByTimezoneOption(timezoneObj, timestamp) { + var primaryOffset = tz.getPrimaryOffset(); + if (util.isString(timezoneObj.timezoneName)) { + return -tz.getOffsetByTimezoneName(timezoneObj.timezoneName, timestamp); + } + + // @deprecated timezoneOffset property will be deprecated + if (util.isNumber(timezoneObj.timezoneOffset) && timezoneObj.timezoneOffset !== primaryOffset) { + return timezoneObj.timezoneOffset; + } + + return -primaryOffset; +} + +/** + * @constructor + * @extends {View} + * @param {string} name - view name + * @param {object} options The object for view customization. + * @param {string} options.renderStartDate - render start date. YYYY-MM-DD + * @param {string} options.renderEndDate - render end date. YYYY-MM-DD + * @param {number} [options.hourStart=0] You can change view's start hours. + * @param {number} [options.hourEnd=0] You can change view's end hours. + * @param {HTMLElement} panelElement panel element. + */ +function TimeGrid(name, options, panelElement) { + var container = domutil.appendHTMLElement( + 'div', + panelElement, + config.classname('timegrid-container') + ); + var stickyContainer = domutil.appendHTMLElement( + 'div', + panelElement, + config.classname('timegrid-sticky-container') + ); + + panelElement.style.position = 'relative'; // for stickyContainer + + name = name || 'time'; + + View.call(this, container); + + if (!util.browser.safari) { + /** + * @type {AutoScroll} + */ + this._autoScroll = new AutoScroll(container); + } + + this.stickyContainer = stickyContainer; + + /** + * Time view options. + * @type {object} + */ + this.options = util.extend( + { + viewName: name, + renderStartDate: '', + renderEndDate: '', + hourStart: 0, + hourEnd: 24, + timezones: options.timezones, + isReadOnly: options.isReadOnly, + showTimezoneCollapseButton: false + }, + options.week + ); + + if (this.options.timezones.length < 1) { + this.options.timezones = [ + { + timezoneOffset: tz.getPrimaryOffset() + } + ]; + } + + /** + * Interval id for hourmarker animation. + * @type {number} + */ + this.intervalID = 0; + + /** + * timer id for hourmarker initial state + * @type {number} + */ + this.timerID = 0; + + /** + * requestAnimationFrame unique ID + * @type {number} + */ + this.rAnimationFrameID = 0; + + /** + * @type {boolean} + */ + this._scrolled = false; + + /** + * cache parent's view model + * @type {object} + */ + this._cacheParentViewModel = null; + + /** + * cache hoursLabels view model to render again TimeGrid + * @type {object} + */ + this._cacheHoursLabels = null; + + this.attachEvent(); +} + +util.inherit(TimeGrid, View); + +/********** + * Prototype props + **********/ + +/** + * @type {string} + */ +TimeGrid.prototype.viewName = 'timegrid'; + +/** + * Destroy view. + * @override + */ +TimeGrid.prototype._beforeDestroy = function() { + clearInterval(this.intervalID); + clearTimeout(this.timerID); + reqAnimFrame.cancelAnimFrame(this.rAnimationFrameID); + + if (this._autoScroll) { + this._autoScroll.destroy(); + } + + domevent.off(this.stickyContainer, 'click', this._onClickStickyContainer, this); + + this._autoScroll = this.hourmarkers = this.intervalID + = this.timerID = this.rAnimationFrameID = this._cacheParentViewModel = this.stickyContainer = null; +}; + +/** + * @param {Date} [time] - date object to convert pixel in grids. + * use **Date.now()** when not supplied. + * @returns {number} The pixel value represent current time in grids. + */ +TimeGrid.prototype._getTopPercentByTime = function(time) { + var opt = this.options, + raw = datetime.raw(time || new TZDate()), + hourLength = util.range(opt.hourStart, opt.hourEnd).length, + maxMilliseconds = hourLength * datetime.MILLISECONDS_PER_HOUR, + hmsMilliseconds = + datetime.millisecondsFrom('hour', raw.h) + + datetime.millisecondsFrom('minutes', raw.m) + + datetime.millisecondsFrom('seconds', raw.s) + + raw.ms, + topPercent; + + topPercent = common.ratio(maxMilliseconds, 100, hmsMilliseconds); + topPercent -= common.ratio( + maxMilliseconds, + 100, + datetime.millisecondsFrom('hour', opt.hourStart) + ); + + return common.limit(topPercent, [0], [100]); +}; + +/** + * Get Hourmarker viewmodel. + * @param {TZDate} now - now + * @param {object} grids grid information(width, left, day) + * @param {Array.} range render range + * @returns {object} ViewModel of hourmarker. + */ +TimeGrid.prototype._getHourmarkerViewModel = function(now, grids, range) { + var todaymarkerLeft = -1; + var todaymarkerWidth = -1; + var hourmarkerTimzones = []; + var opt = this.options; + var primaryOffset = tz.getPrimaryOffset(); + var timezones = opt.timezones; + var viewModel; + + util.forEach(range, function(date, index) { + if (datetime.isSameDate(now, date)) { + todaymarkerLeft = grids[index] ? grids[index].left : 0; + todaymarkerWidth = grids[index] ? grids[index].width : 0; + } + }); + + util.forEach(timezones, function(timezone) { + var hourmarker = new TZDate(now); + var timezoneOffset = getOffsetByTimezoneOption(timezone, hourmarker.getTime()); + var timezoneDifference = timezoneOffset + primaryOffset; + var dateDifference; + + hourmarker.setMinutes(hourmarker.getMinutes() + timezoneDifference); + dateDifference = datetime.getDateDifference(hourmarker, now); + + hourmarkerTimzones.push({ + hourmarker: hourmarker, + dateDifferenceSign: dateDifference < 0 ? '-' : '+', + dateDifference: Math.abs(dateDifference) + }); + }); + + viewModel = { + currentHours: now.getHours(), + hourmarkerTop: this._getTopPercentByTime(now), + hourmarkerTimzones: hourmarkerTimzones, + todaymarkerLeft: todaymarkerLeft, + todaymarkerWidth: todaymarkerWidth, + todaymarkerRight: todaymarkerLeft + todaymarkerWidth + }; + + return viewModel; +}; + +/** + * Get timezone view model + * @param {number} currentHours - current hour + * @param {boolean} timezonesCollapsed - multiple timezones are collapsed. + * @param {object} styles - styles + * @returns {object} ViewModel + */ +TimeGrid.prototype._getTimezoneViewModel = function(currentHours, timezonesCollapsed, styles) { + var opt = this.options; + var primaryOffset = tz.getPrimaryOffset(); + var timezones = opt.timezones; + var timezonesLength = timezones.length; + var timezoneViewModel = []; + var collapsed = timezonesCollapsed; + var width = collapsed ? 100 : 100 / timezonesLength; + var now = new TZDate().toLocalTime(); + var backgroundColor = styles.displayTimezoneLabelBackgroundColor; + + // eslint-disable-next-line complexity + util.forEach(timezones, function(timezone, index) { + var hourmarker = new TZDate(now); + var timezoneOffset = getOffsetByTimezoneOption(timezone, hourmarker.getTime()); + var timezoneDifference = timezoneOffset + primaryOffset; + var timeSlots = getHoursLabels(opt, currentHours >= 0, timezoneDifference, styles); + var dateDifference; + + hourmarker.setMinutes(hourmarker.getMinutes() + timezoneDifference); + dateDifference = datetime.getDateDifference(hourmarker, now); + + if (index > 0) { + backgroundColor = styles.additionalTimezoneBackgroundColor; + } + + timezoneViewModel.push({ + timeSlots: timeSlots, + displayLabel: timezone.displayLabel, + timezoneOffset: timezone.timezoneOffset, + tooltip: timezone.tooltip || '', + width: width, + left: collapsed ? 0 : (timezones.length - index - 1) * width, + isPrimary: index === 0, + backgroundColor: backgroundColor || '', + hidden: index !== 0 && collapsed, + hourmarker: hourmarker, + dateDifferenceSign: dateDifference < 0 ? '-' : '+', + dateDifference: Math.abs(dateDifference) + }); + }); + + return timezoneViewModel; +}; + +/** + * Get base viewModel. + * @param {object} viewModel - view model + * @returns {object} ViewModel + */ +TimeGrid.prototype._getBaseViewModel = function(viewModel) { + var grids = viewModel.grids; + var range = viewModel.range; + var opt = this.options; + var baseViewModel = this._getHourmarkerViewModel(new TZDate().toLocalTime(), grids, range); + var timezonesCollapsed = util.pick(viewModel, 'state', 'timezonesCollapsed'); + var styles = this._getStyles(viewModel.theme, timezonesCollapsed); + + return util.extend(baseViewModel, { + timezones: this._getTimezoneViewModel( + baseViewModel.todaymarkerLeft, + timezonesCollapsed, + styles + ), + hoursLabels: getHoursLabels(opt, baseViewModel.todaymarkerLeft >= 0, 0, styles), + styles: styles, + showTimezoneCollapseButton: util.pick(opt, 'showTimezoneCollapseButton'), + timezonesCollapsed: timezonesCollapsed + }); +}; + +/** + * Reconcilation child views and render. + * @param {object} viewModels Viewmodel + * @param {object} grids grid information(width, left, day) + * @param {HTMLElement} container Container element for each time view. + * @param {Theme} theme - theme instance + */ +TimeGrid.prototype._renderChildren = function(viewModels, grids, container, theme) { + var self = this, + options = this.options, + childOption, + child, + isToday, + containerHeight, + today = datetime.format(new TZDate().toLocalTime(), 'YYYYMMDD'), + i = 0; + + // clear contents + container.innerHTML = ''; + this.children.clear(); + + containerHeight = domutil.getSize(container.parentElement)[1]; + + // reconcilation of child views + util.forEach(viewModels, function(schedules, ymd) { + isToday = ymd === today; + + childOption = { + index: i, + left: grids[i] ? grids[i].left : 0, + width: grids[i] ? grids[i].width : 0, + ymd: ymd, + isToday: isToday, + isPending: options.isPending, + isFocused: options.isFocused, + isReadOnly: options.isReadOnly, + hourStart: options.hourStart, + hourEnd: options.hourEnd + }; + + child = new Time( + childOption, + domutil.appendHTMLElement('div', container, config.classname('time-date')), + theme + ); + child.render(ymd, schedules, containerHeight); + + self.addChild(child); + + i += 1; + }); +}; + +/** + * @override + * @param {object} viewModel ViewModel list from Week view. + */ +TimeGrid.prototype.render = function(viewModel) { + var opt = this.options, + timeViewModel = viewModel.schedulesInDateRange[opt.viewName], + container = this.container, + grids = viewModel.grids, + baseViewModel = this._getBaseViewModel(viewModel), + scheduleLen = util.keys(timeViewModel).length; + + this._cacheParentViewModel = viewModel; + this._cacheHoursLabels = baseViewModel.hoursLabels; + + if (!scheduleLen) { + return; + } + + baseViewModel.showHourMarker = baseViewModel.todaymarkerLeft >= 0; + + container.innerHTML = mainTmpl(baseViewModel); + + /********** + * Render sticky container for timezone display label + **********/ + this.renderStickyContainer(baseViewModel); + + /********** + * Render children + **********/ + this._renderChildren( + timeViewModel, + grids, + domutil.find(config.classname('.timegrid-schedules-container'), container), + viewModel.theme + ); + + this._hourLabels = domutil.find('ul', container); + + /********** + * Render hourmarker + **********/ + this.hourmarkers = domutil.find(config.classname('.timegrid-hourmarker'), container, true); + + if (!this._scrolled) { + this._scrolled = true; + this.scrollToNow(); + } +}; + +TimeGrid.prototype.renderStickyContainer = function(baseViewModel) { + var stickyContainer = this.stickyContainer; + + stickyContainer.innerHTML = timezoneStickyTmpl(baseViewModel); + + stickyContainer.style.display = baseViewModel.timezones.length > 1 ? 'block' : 'none'; + stickyContainer.style.width = baseViewModel.styles.leftWidth; + stickyContainer.style.height = baseViewModel.styles.displayTimezoneLabelHeight; + stickyContainer.style.borderBottom = baseViewModel.styles.leftBorderRight; +}; + +/** + * Refresh hourmarker element. + */ +TimeGrid.prototype.refreshHourmarker = function() { + var hourmarkers = this.hourmarkers; + var viewModel = this._cacheParentViewModel; + var hoursLabels = this._cacheHoursLabels; + var rAnimationFrameID = this.rAnimationFrameID; + var baseViewModel; + + if (!hourmarkers || !viewModel || rAnimationFrameID) { + return; + } + + baseViewModel = this._getBaseViewModel(viewModel); + + this.rAnimationFrameID = reqAnimFrame.requestAnimFrame(function() { + var needsRender = false; + + util.forEach(hoursLabels, function(hoursLabel, index) { + if (hoursLabel.hidden !== baseViewModel.hoursLabels[index].hidden) { + needsRender = true; + + return false; + } + + return true; + }); + + if (needsRender) { + this.render(viewModel); + } else { + util.forEach(hourmarkers, function(hourmarker) { + var todaymarker = domutil.find( + config.classname('.timegrid-todaymarker'), + hourmarker + ); + var hourmarkerContainer = domutil.find( + config.classname('.timegrid-hourmarker-time'), + hourmarker + ); + var timezone = domutil.closest(hourmarker, config.classname('.timegrid-timezone')); + var timezoneIndex = timezone ? domutil.getData(timezone, 'timezoneIndex') : 0; + + hourmarker.style.top = baseViewModel.hourmarkerTop + '%'; + + if (todaymarker) { + todaymarker.style.display = + baseViewModel.todaymarkerLeft >= 0 ? 'block' : 'none'; + } + if (hourmarkerContainer) { + hourmarkerContainer.innerHTML = timegridCurrentTimeTmpl( + baseViewModel.hourmarkerTimzones[timezoneIndex] + ); + } + }); + } + + this.rAnimationFrameID = null; + }, this); +}; + +/** + * Attach events + */ +TimeGrid.prototype.attachEvent = function() { + clearInterval(this.intervalID); + clearTimeout(this.timerID); + this.intervalID = this.timerID = this.rAnimationFrameID = null; + + this.timerID = setTimeout( + this.onTick.bind(this), + (SIXTY_SECONDS - new TZDate().getSeconds()) * 1000 + ); + + domevent.on(this.stickyContainer, 'click', this._onClickStickyContainer, this); +}; + +/** + * Scroll time grid to current hourmarker. + */ +TimeGrid.prototype.scrollToNow = function() { + var container = this.container; + var offsetTop, viewBound, scrollTop, scrollAmount, scrollBy, scrollFn; + + if (!this.hourmarkers || !this.hourmarkers.length) { + return; + } + + offsetTop = this.hourmarkers[0].offsetTop; + viewBound = this.getViewBound(); + scrollTop = offsetTop; + scrollAmount = viewBound.height / 4; + scrollBy = 10; + + scrollFn = function() { + if (scrollTop > offsetTop - scrollAmount) { + scrollTop -= scrollBy; + container.scrollTop = scrollTop; + + reqAnimFrame.requestAnimFrame(scrollFn); + } else { + container.scrollTop = offsetTop - scrollAmount; + } + }; + + reqAnimFrame.requestAnimFrame(scrollFn); +}; + +/********** + * Schedule handlers + **********/ + +/** + * Interval tick handler + */ +TimeGrid.prototype.onTick = function() { + if (this.timerID) { + clearTimeout(this.timerID); + this.timerID = null; + } + + if (!this.intervalID) { + this.intervalID = setInterval(this.onTick.bind(this), HOURMARKER_REFRESH_INTERVAL); + } + this.refreshHourmarker(); +}; + +/** + * Get the styles from theme + * @param {Theme} theme - theme instance + * @param {boolean} timezonesCollapsed - multiple timezones are collapsed. + * @returns {object} styles - styles object + */ +// eslint-disable-next-line complexity +TimeGrid.prototype._getStyles = function(theme, timezonesCollapsed) { + var styles = {}; + var timezonesLength = this.options.timezones.length; + var collapsed = timezonesCollapsed; + var numberAndUnit; + + if (theme) { + styles.borderBottom = theme.week.timegridHorizontalLine.borderBottom || theme.common.border; + styles.halfHourBorderBottom = + theme.week.timegridHalfHour.borderBottom || theme.common.border; + + styles.todayBackgroundColor = theme.week.today.backgroundColor; + styles.weekendBackgroundColor = theme.week.weekend.backgroundColor; + styles.backgroundColor = theme.week.daygrid.backgroundColor; + styles.leftWidth = theme.week.timegridLeft.width; + styles.leftBackgroundColor = theme.week.timegridLeft.backgroundColor; + styles.leftBorderRight = theme.week.timegridLeft.borderRight || theme.common.border; + styles.leftFontSize = theme.week.timegridLeft.fontSize; + styles.timezoneWidth = theme.week.timegridLeft.width; + styles.additionalTimezoneBackgroundColor = + theme.week.timegridLeftAdditionalTimezone.backgroundColor || styles.leftBackgroundColor; + + styles.displayTimezoneLabelHeight = theme.week.timegridLeftTimezoneLabel.height; + styles.displayTimezoneLabelBackgroundColor = + theme.week.timegridLeft.backgroundColor === 'inherit' + ? 'white' + : theme.week.timegridLeft.backgroundColor; + + styles.oneHourHeight = theme.week.timegridOneHour.height; + styles.halfHourHeight = theme.week.timegridHalfHour.height; + styles.quaterHourHeight = (parseInt(styles.halfHourHeight, 10) / 2) + 'px'; + + styles.currentTimeColor = theme.week.currentTime.color; + styles.currentTimeFontSize = theme.week.currentTime.fontSize; + styles.currentTimeFontWeight = theme.week.currentTime.fontWeight; + + styles.pastTimeColor = theme.week.pastTime.color; + styles.pastTimeFontWeight = theme.week.pastTime.fontWeight; + + styles.futureTimeColor = theme.week.futureTime.color; + styles.futureTimeFontWeight = theme.week.futureTime.fontWeight; + + styles.currentTimeLeftBorderTop = theme.week.currentTimeLinePast.border; + styles.currentTimeBulletBackgroundColor = theme.week.currentTimeLineBullet.backgroundColor; + styles.currentTimeTodayBorderTop = theme.week.currentTimeLineToday.border; + styles.currentTimeRightBorderTop = theme.week.currentTimeLineFuture.border; + + if (!collapsed && timezonesLength > 1) { + numberAndUnit = common.parseUnit(styles.leftWidth); + styles.leftWidth = (numberAndUnit[0] * timezonesLength) + numberAndUnit[1]; + } + } + + return styles; +}; + +/** + * @param {MouseEvent} event - mouse event object + */ +TimeGrid.prototype._onClickStickyContainer = function(event) { + var target = domevent.getEventTarget(event); + var closeBtn = domutil.closest(target, config.classname('.timegrid-timezone-close-btn')); + + if (!closeBtn) { + return; + } + + this.fire('clickTimezonesCollapsedBtn'); +}; + +module.exports = TimeGrid; + + +/***/ }), + +/***/ "./src/js/view/week/week.js": +/*!**********************************!*\ + !*** ./src/js/view/week/week.js ***! + \**********************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; +/** + * @fileoverview View of days UI. + * @author NHN FE Development Lab + */ + + +var util = __webpack_require__(/*! tui-code-snippet */ "tui-code-snippet"); +var config = __webpack_require__(/*! ../../config */ "./src/js/config.js"); +var domutil = __webpack_require__(/*! ../../common/domutil */ "./src/js/common/domutil.js"); +var datetime = __webpack_require__(/*! ../../common/datetime */ "./src/js/common/datetime.js"); +var TZDate = __webpack_require__(/*! ../../common/timezone */ "./src/js/common/timezone.js").Date; +var View = __webpack_require__(/*! ../view */ "./src/js/view/view.js"); + +/** + * @constructor + * @param {Base.Week} controller The controller mixin part. + * @param {object} options View options + * @param {string} [options.renderStartDate] Start date of render. + * if not supplied then use -3d from today. YYYY-MM-DD format. + * @param {string} [options.renderEndDate] End date of render. + * if not supplied then use +3d from today. YYYY-MM-DD format. + * @param {string} [options.cssPrefix] - CSS classname prefix + * @param {HTMLElement} container The element to use container for this view. + * @param {object} panels - schedule panels like 'milestone', 'task', 'allday', 'time' + * @param {string} viewName - 'week', 'day' + * @extends {View} + */ +function Week(controller, options, container, panels, viewName) { + var range; + + container = domutil.appendHTMLElement('div', container); + + View.call(this, container); + + domutil.addClass(container, config.classname('week-container')); + + range = this._getRenderDateRange(new TZDate()); + + /** + * @type {object} Options for view. + */ + this.options = util.extend({ + scheduleFilter: [function(schedule) { + return Boolean(schedule.isVisible); + }], + renderStartDate: datetime.format(range.start, 'YYYY-MM-DD'), + renderEndDate: datetime.format(range.end, 'YYYY-MM-DD'), + narrowWeekend: false, + startDayOfWeek: 0, + workweek: false, + showTimezoneCollapseButton: false, + timezonesCollapsed: false, + hourStart: 0, + hourEnd: 24 + }, options); + + /** + * Week controller mixin. + * @type {Base.Week} + */ + this.controller = controller; + + /** + * Schedule Panels + * @type {Array.} + */ + this.panels = panels; + + /** + * Week view states + * @type {object} + */ + this.state = { + timezonesCollapsed: this.options.timezonesCollapsed + }; + + if (viewName === 'day') { + _disableDayOptions(this.options); + } +} + +util.inherit(Week, View); + +/********** + * Override props + **********/ + +/** + * Render each child view with schedules in ranges. + * @fires Week#afterRender + * @override + */ +Week.prototype.render = function() { + var self = this, + options = this.options, + scheduleFilter = options.scheduleFilter, + narrowWeekend = options.narrowWeekend, + startDayOfWeek = options.startDayOfWeek, + workweek = options.workweek, + theme = this.controller.theme || {}, + state = this.state; + var renderStartDate, renderEndDate, schedulesInDateRange, viewModel, grids, range; + + renderStartDate = new TZDate(options.renderStartDate); + renderEndDate = new TZDate(options.renderEndDate); + + range = datetime.range( + datetime.start(renderStartDate), + datetime.end(renderEndDate), + datetime.MILLISECONDS_PER_DAY + ); + + if (options.workweek && datetime.compare(renderStartDate, renderEndDate)) { + range = util.filter(range, function(date) { + return !datetime.isWeekend(date.getDay()); + }); + + renderStartDate = range[0]; + renderEndDate = range[range.length - 1]; + } + + schedulesInDateRange = this.controller.findByDateRange( + datetime.start(renderStartDate), + datetime.end(renderEndDate), + this.panels, + scheduleFilter, + this.options + ); + + grids = datetime.getGridLeftAndWidth( + range.length, + narrowWeekend, + startDayOfWeek, + workweek + ); + + viewModel = { + schedulesInDateRange: schedulesInDateRange, + renderStartDate: renderStartDate, + renderEndDate: renderEndDate, + grids: grids, + range: range, + theme: theme, + state: state + }; + + this.children.each(function(childView) { + var matrices; + var viewName = util.pick(childView.options, 'viewName'); + childView.render(viewModel); + + if (viewName) { + matrices = viewModel.schedulesInDateRange[viewName]; // DayGrid limits schedule count by visibleScheduleCount after rendering it. + + if (util.isArray(matrices)) { + self._invokeAfterRenderSchedule(matrices); + } else { + util.forEach(matrices, function(matricesOfDay) { + self._invokeAfterRenderSchedule(matricesOfDay); + }); + } + } + }); + + /** + * @event Week#afterRender + */ + this.fire('afterRender'); +}; + +/** + * Fire 'afterRenderSchedule' event + * @param {Array} matrices - schedule matrices from view model + * @fires Week#afterRenderSchedule + */ +Week.prototype._invokeAfterRenderSchedule = function(matrices) { + var self = this; + util.forEachArray(matrices, function(matrix) { + util.forEachArray(matrix, function(column) { + util.forEachArray(column, function(scheduleViewModel) { + if (scheduleViewModel) { + /** + * @event Week#afterRenderSchedule + */ + self.fire('afterRenderSchedule', {schedule: scheduleViewModel.model}); + } + }); + }); + }); +}; + +/********** + * Prototype props + **********/ + +Week.prototype.viewName = 'week'; + +/** + * Calculate default render date range from supplied date. + * @param {Date} baseDate base date. + * @returns {object} date range. + */ +Week.prototype._getRenderDateRange = function(baseDate) { + var base = datetime.start(baseDate), + start = new TZDate(Number(base)), + end = new TZDate(Number(base)); + + start.setDate(start.getDate() - 3); + end.setDate(end.getDate() + 3); + + return { + start: start, + end: end + }; +}; + +/** + * disable options for day view + * @param {WeekOptions} options - week options to disable + */ +function _disableDayOptions(options) { + options.workweek = false; +} + +util.CustomEvents.mixin(Week); + +module.exports = Week; + + +/***/ }), + +/***/ "./src/js/view/weekday.js": +/*!********************************!*\ + !*** ./src/js/view/weekday.js ***! + \********************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; +/** + * @fileoverview Weekday view + * @author NHN FE Development Lab + */ + + +var util = __webpack_require__(/*! tui-code-snippet */ "tui-code-snippet"); +var config = __webpack_require__(/*! ../config */ "./src/js/config.js"), + domutil = __webpack_require__(/*! ../common/domutil */ "./src/js/common/domutil.js"), + datetime = __webpack_require__(/*! ../common/datetime */ "./src/js/common/datetime.js"), + TZDate = __webpack_require__(/*! ../common/timezone */ "./src/js/common/timezone.js").Date, + View = __webpack_require__(/*! ./view */ "./src/js/view/view.js"); + +/** + * @constructor + * @extends {View} + * @param {object} options - view options. + * @param {number} [options.containerButtonGutter=8] - free space at bottom to + * make create easy. + * @param {number} [options.scheduleHeight=18] - height of each schedule block. + * @param {number} [options.scheduleGutter=2] - gutter height of each schedule block. + * @param {HTMLDIVElement} container - DOM element to use container for this + * view. + */ +function Weekday(options, container) { + container = domutil.appendHTMLElement( + 'div', + container, + config.classname('weekday') + ); + + /** + * @type {object} + */ + this.options = util.extend({ + containerBottomGutter: 8, + scheduleHeight: 18, + scheduleGutter: 2, + narrowWeekend: false, + startDayOfWeek: 0, + workweek: false + }, options); + + /* + * cache parent's view model + * @type {object} + */ + this._cacheParentViewModel = null; + + View.call(this, container); +} + +util.inherit(Weekday, View); + +/** + * Get render date range + * @returns {Date[]} rendered date range + */ +Weekday.prototype.getRenderDateRange = function() { + return this._cacheParentViewModel.range; +}; + +/** + * Get render date grids information + * @returns {Date[]} rendered date grids information + */ +Weekday.prototype.getRenderDateGrids = function() { + return this._cacheParentViewModel.grids; +}; + +/** + * Get default view model. + * @param {object} viewModel parent's view model + * @returns {object} viewModel to rendering. + */ +Weekday.prototype.getBaseViewModel = function(viewModel) { + var opt = this.options; + var range = viewModel.range; + var gridWidth = (100 / range.length); + var grids = viewModel.grids; + var exceedDate = viewModel.exceedDate || {}; + var theme = viewModel.theme; + var now = new TZDate().toLocalTime(); + + this._cacheParentViewModel = viewModel; + + return { + width: gridWidth, + scheduleHeight: opt.scheduleHeight, + scheduleBlockHeight: (opt.scheduleHeight + opt.scheduleGutter), + scheduleBlockGutter: opt.scheduleGutter, + dates: util.map(range, function(date, index) { + var day = date.getDay(); + var ymd = datetime.format(new TZDate(date), 'YYYYMMDD'); + var isToday = datetime.isSameDate(now, date); + + return { + date: datetime.format(date, 'YYYY-MM-DD'), + month: date.getMonth() + 1, + day: day, + isToday: isToday, + ymd: ymd, + hiddenSchedules: exceedDate[ymd] || 0, + width: grids[index] ? grids[index].width : 0, + left: grids[index] ? grids[index].left : 0, + color: this._getDayNameColor(theme, day, isToday), + backgroundColor: this._getDayBackgroundColor(theme, day) + }; + }, this) + }; +}; + +/* eslint max-nested-callbacks: 0 */ +/** + * Make exceed date information + * @param {number} maxCount - exceed schedule count + * @param {Array} eventsInDateRange - matrix of ScheduleViewModel + * @param {Array.} range - date range of one week + * @returns {object} exceedDate + */ +Weekday.prototype.getExceedDate = function(maxCount, eventsInDateRange, range) { + var exceedDate = this._initExceedDate(range); + + util.forEach(eventsInDateRange, function(matrix) { + util.forEach(matrix, function(column) { + util.forEach(column, function(viewModel) { + var period; + if (!viewModel || viewModel.top < maxCount) { + return; + } + + // check that this schedule block is not visible after rendered. + viewModel.hidden = true; + + period = datetime.range( + viewModel.getStarts(), + viewModel.getEnds(), + datetime.MILLISECONDS_PER_DAY + ); + + util.forEach(period, function(date) { + var ymd = datetime.format(date, 'YYYYMMDD'); + exceedDate[ymd] += 1; + }); + }); + }); + }); + + return exceedDate; +}; + +/** + * Initiate exceed date information + * @param {Array.} range - date range of one week + * @returns {Object} - initiated exceed date + */ +Weekday.prototype._initExceedDate = function(range) { + var exceedDate = {}; + + util.forEach(range, function(date) { + var ymd = datetime.format(date, 'YYYYMMDD'); + exceedDate[ymd] = 0; + }); + + return exceedDate; +}; + +/** + * Get a day name color + * @param {Theme} theme - theme instance + * @param {number} day - day number + * @param {boolean} isToday - today flag + * @param {boolean} isOtherMonth - not this month flag + * @returns {string} style - color style + */ +Weekday.prototype._getDayNameColor = function(theme, day, isToday, isOtherMonth) { + var color = ''; + + if (theme) { + if (day === 0) { + color = isOtherMonth ? theme.month.holidayExceptThisMonth.color : theme.common.holiday.color; + } else if (day === 6) { + color = isOtherMonth ? theme.month.dayExceptThisMonth.color : theme.common.saturday.color; + } else if (isToday) { + color = theme.common.today.color; + } else { + color = isOtherMonth ? theme.month.dayExceptThisMonth.color : theme.common.dayname.color; + } + } + + return color; +}; + +/** + * Get a day background color + * @param {Theme} theme - theme instance + * @param {number} day - day number + * @returns {string} style - color style + */ +Weekday.prototype._getDayBackgroundColor = function(theme, day) { + var color = ''; + + if (theme) { + if (day === 0 || day === 6) { + color = theme.month.weekend.backgroundColor; + } else { + color = 'inherit'; + } + } + + return color; +}; + +module.exports = Weekday; + + +/***/ }), + +/***/ "tui-code-snippet": +/*!******************************************************************************************************************************!*\ + !*** external {"commonjs":"tui-code-snippet","commonjs2":"tui-code-snippet","amd":"tui-code-snippet","root":["tui","util"]} ***! + \******************************************************************************************************************************/ +/*! no static exports found */ +/***/ (function(module, exports) { + +module.exports = __WEBPACK_EXTERNAL_MODULE_tui_code_snippet__; + +/***/ }), + +/***/ "tui-date-picker": +/*!*********************************************************************************************************************************!*\ + !*** external {"commonjs":"tui-date-picker","commonjs2":"tui-date-picker","amd":"tui-date-picker","root":["tui","DatePicker"]} ***! + \*********************************************************************************************************************************/ +/*! no static exports found */ +/***/ (function(module, exports) { + +module.exports = __WEBPACK_EXTERNAL_MODULE_tui_date_picker__; + +/***/ }) + +/******/ }); +}); +//# sourceMappingURL=tui-calendar.js.map \ No newline at end of file diff --git a/public/admin/assets/js/calendar/tui-code-snippet.min.js b/public/admin/assets/js/calendar/tui-code-snippet.min.js new file mode 100644 index 0000000..c6cacf9 --- /dev/null +++ b/public/admin/assets/js/calendar/tui-code-snippet.min.js @@ -0,0 +1,7 @@ +/*! + * tui-code-snippet.min.js + * @version 1.5.2 + * @author NHN. FE Development Lab + * @license MIT + */ +!function(t,e){"object"==typeof exports&&"object"==typeof module?module.exports=e():"function"==typeof define&&define.amd?define([],e):"object"==typeof exports?exports.util=e():(t.tui=t.tui||{},t.tui.util=e())}(this,function(){return function(t){function e(r){if(n[r])return n[r].exports;var o=n[r]={exports:{},id:r,loaded:!1};return t[r].call(o.exports,o,o.exports,e),o.loaded=!0,o.exports}var n={};return e.m=t,e.c=n,e.p="dist",e(0)}([function(t,e,n){"use strict";var r={},o=n(1),i=o.extend;i(r,o),i(r,n(3)),i(r,n(2)),i(r,n(4)),i(r,n(5)),i(r,n(6)),i(r,n(7)),i(r,n(8)),i(r,n(9)),r.browser=n(10),r.popup=n(11),r.formatDate=n(12),r.defineClass=n(13),r.defineModule=n(14),r.defineNamespace=n(15),r.CustomEvents=n(16),r.Enum=n(17),r.ExMap=n(18),r.HashMap=n(20),r.Map=n(19),t.exports=r},function(t,e,n){"use strict";function r(t,e){var n,r,o,i,u=Object.prototype.hasOwnProperty;for(o=1,i=arguments.length;o-1||h.inArray(e,o)>-1)return!1;for(n in e){if(e.hasOwnProperty(n)!==t.hasOwnProperty(n))return!1;if(typeof e[n]!=typeof t[n])return!1}for(n in t){if(e.hasOwnProperty(n)!==t.hasOwnProperty(n))return!1;if(typeof e[n]!=typeof t[n])return!1;if("object"==typeof t[n]||"function"==typeof t[n]){if(r.push(t),o.push(e),!c(t[n],e[n]))return!1;r.pop(),o.pop()}else if(t[n]!==e[n])return!1}return!0}function p(t,e){for(var n=arguments,r=n[0],o=1,i=n.length;o=0&&r","'":"'"," ":" "};return t.replace(/&|<|>|"|'| /g,function(t){return e[t]?e[t]:t})}function o(t){var e={'"':"quot","&":"amp","<":"lt",">":"gt","'":"#39"};return t.replace(/[<>&"']/g,function(t){return e[t]?"&"+e[t]+";":t})}function i(t){return/[<>&"']/.test(t)}function u(t,e){for(var n,r,o=0,i=t.length,u={};o1}),u=a.keys(u).sort(),n=u.join("")}var s=n(4),a=n(1);t.exports={decodeHTMLEntity:r,encodeHTMLEntity:o,hasEncodableString:i,getDuplicatedChar:u}},function(t,e){"use strict";function n(t,e){function n(){o=u.call(arguments),window.clearTimeout(r),r=window.setTimeout(function(){t.apply(null,o)},e)}var r,o;return e=e||0,n}function r(){return Number(new Date)}function o(t,e){function n(){return c=u.call(arguments),p?(f(c),void(p=!1)):(a=i.timestamp(),o=o||a,s(c),void(a-o>=e&&f(c)))}function r(){p=!0,o=null}var o,s,a,c,p=!0,f=function(e){t.apply(null,e),o=null};return e=e||0,s=i.debounce(f,e),n.reset=r,n}var i={},u=Array.prototype.slice;i.timestamp=r,i.debounce=n,i.throttle=o,t.exports=i},function(t,e,n){"use strict";function r(t){var e=(new Date).getTime();return e-t>c}function o(t,e){var n="https://www.google-analytics.com/collect",o=location.hostname,u="event",s="use",c="TOAST UI "+t+" for "+o+": Statistics",p=window.localStorage.getItem(c);(a.isUndefined(window.tui)||window.tui.usageStatistics!==!1)&&(p&&!r(p)||(window.localStorage.setItem(c,(new Date).getTime()),setTimeout(function(){"interactive"!==document.readyState&&"complete"!==document.readyState||i(n,{v:1,t:u,tid:e,cid:o,dp:o,dh:t,el:t,ec:s})},1e3)))}function i(t,e){var n=s.map(u.keys(e),function(t,n){var r=0===n?"":"&";return r+t+"="+e[t]}).join(""),r=document.createElement("img");return r.src=t+"?"+n,r.style.display="none",document.body.appendChild(r),document.body.removeChild(r),r}var u=n(1),s=n(4),a=n(2),c=6048e5;t.exports={imagePing:i,sendHostname:o}},function(t,e){"use strict";function n(){var t,e,n=window.navigator,o=n.appName.replace(/\s/g,"_"),i=n.userAgent,u=/MSIE\s([0-9]+[.0-9]*)/,s=/Trident.*rv:11\./,a=/Edge\/(\d+)\./,c={firefox:/Firefox\/(\d+)\./,chrome:/Chrome\/(\d+)\./,safari:/Version\/([\d.]+).*Safari\/(\d+)/},p={Microsoft_Internet_Explorer:function(){var t=i.match(u);t?(r.msie=!0,r.version=parseFloat(t[1])):r.others=!0},Netscape:function(){var n=!1;if(s.exec(i))r.msie=!0,r.version=11,n=!0;else if(a.exec(i))r.edge=!0,r.version=i.match(a)[1],n=!0;else for(t in c)if(c.hasOwnProperty(t)&&(e=i.match(c[t]),e&&e.length>1)){r[t]=n=!0,r.version=parseFloat(e[1]||0);break}n||(r.others=!0)}},f=p[o];f&&p[o]()}var r={chrome:!1,firefox:!1,safari:!1,msie:!1,edge:!1,others:!1,version:0};window&&window.navigator&&n(),t.exports=r},function(t,e,n){"use strict";function r(){this.openedPopup={},this.closeWithParentPopup={},this.postBridgeUrl=""}var o=n(4),i=n(2),u=n(5),s=n(10),a=n(1),c=0;r.prototype.getPopupList=function(t){var e;return e=i.isExisty(t)?this.openedPopup[t]:this.openedPopup},r.prototype.openPopup=function(t,e){var n,r,o;if(e=a.extend({popupName:"popup_"+c+"_"+Number(new Date),popupOptionStr:"",useReload:!0,closeWithParent:!0,method:"get",param:{}},e||{}),e.method=e.method.toUpperCase(),this.postBridgeUrl=e.postBridgeUrl||this.postBridgeUrl,o="POST"===e.method&&e.param&&s.msie&&11===s.version,!i.isExisty(t))throw new Error("Popup#open() need popup url.");c+=1,e.param&&("GET"===e.method?t=t+(/\?/.test(t)?"&":"?")+this._parameterize(e.param):"POST"===e.method&&(o||(r=this.createForm(t,e.param,e.method,e.popupName),t="about:blank"))),n=this.openedPopup[e.popupName],i.isExisty(n)?n.closed?this.openedPopup[e.popupName]=n=this._open(o,e.param,t,e.popupName,e.popupOptionStr):(e.useReload&&n.location.replace(t),n.focus()):this.openedPopup[e.popupName]=n=this._open(o,e.param,t,e.popupName,e.popupOptionStr),this.closeWithParentPopup[e.popupName]=e.closeWithParent,(!n||n.closed||i.isUndefined(n.closed))&&alert("please enable popup windows for this website"),e.param&&"POST"===e.method&&!o&&(n&&r.submit(),r.parentNode&&r.parentNode.removeChild(r)),window.onunload=u.bind(this.closeAllPopup,this)},r.prototype.close=function(t,e){var n=e||window;t=!!i.isExisty(t)&&t,t&&(window.onunload=null),n.closed||(n.opener=window.location.href,n.close())},r.prototype.closeAllPopup=function(t){var e=i.isExisty(t);o.forEachOwnProperties(this.openedPopup,function(t,n){(e&&this.closeWithParentPopup[n]||!e)&&this.close(!1,t)},this)},r.prototype.focus=function(t){this.getPopupList(t).focus()},r.prototype.parseQuery=function(){var t,e,n={};return t=window.location.search.substr(1),o.forEachArray(t.split("&"),function(t){e=t.split("="),n[decodeURIComponent(e[0])]=decodeURIComponent(e[1])}),n},r.prototype.createForm=function(t,e,n,r,i){var u,s=document.createElement("form");return i=i||document.body,s.method=n||"POST",s.action=t||"",s.target=r||"",s.style.display="none",o.forEachOwnProperties(e,function(t,e){u=document.createElement("input"),u.name=e,u.type="hidden",u.value=t,s.appendChild(u)}),i.appendChild(s),s},r.prototype._parameterize=function(t){var e=[];return o.forEachOwnProperties(t,function(t,n){e.push(encodeURIComponent(n)+"="+encodeURIComponent(t))}),e.join("&")},r.prototype._open=function(t,e,n,r,o){var i;return t?(i=window.open(this.postBridgeUrl,r,o),setTimeout(function(){i.redirect(n,e)},100)):i=window.open(n,r,o),i},t.exports=new r},function(t,e,n){"use strict";function r(t,e,n){var r,o,i,u;return t=Number(t),e=Number(e),n=Number(n),r=t>-1&&t<100||t>1969&&t<2070,o=e>0&&e<13,!(!r||!o)&&(u=c[e],2===e&&t%4===0&&(t%100===0&&t%400!==0||(u=29)),i=n>0&&n<=u)}function o(t,e,n){var o,a,c,f=u.pick(n,"meridiemSet","AM")||"AM",h=u.pick(n,"meridiemSet","PM")||"PM";return a=i.isDate(e)?{year:e.getFullYear(),month:e.getMonth()+1,date:e.getDate(),hour:e.getHours(),minute:e.getMinutes()}:{year:e.year,month:e.month,date:e.date,hour:e.hour,minute:e.minute},!!r(a.year,a.month,a.date)&&(a.meridiem="",/([^\\]|^)[aA]\b/.test(t)&&(o=a.hour>11?h:f,a.hour>12&&(a.hour%=12),0===a.hour&&(a.hour=12),a.meridiem=o),c=t.replace(s,function(t){return t.indexOf("\\")>-1?t.replace(/\\/,""):p[t](a)||""}))}var i=n(2),u=n(1),s=/[\\]*YYYY|[\\]*YY|[\\]*MMMM|[\\]*MMM|[\\]*MM|[\\]*M|[\\]*DD|[\\]*D|[\\]*HH|[\\]*H|[\\]*A/gi,a=["Invalid month","January","February","March","April","May","June","July","August","September","October","November","December"],c=[0,31,28,31,30,31,30,31,31,30,31,30,31],p={M:function(t){return Number(t.month)},MM:function(t){var e=t.month;return Number(e)<10?"0"+e:e},MMM:function(t){return a[Number(t.month)].substr(0,3)},MMMM:function(t){return a[Number(t.month)]},D:function(t){return Number(t.date)},d:function(t){return p.D(t)},DD:function(t){var e=t.date;return Number(e)<10?"0"+e:e},dd:function(t){return p.DD(t)},YY:function(t){return Number(t.year)%100},yy:function(t){return p.YY(t)},YYYY:function(t){var e="20",n=t.year;return n>69&&n<100&&(e="19"),Number(n)<100?e+String(n):n},yyyy:function(t){return p.YYYY(t)},A:function(t){return t.meridiem},a:function(t){return t.meridiem},hh:function(t){var e=t.hour;return Number(e)<10?"0"+e:e},HH:function(t){return p.hh(t)},h:function(t){return String(Number(t.hour))},H:function(t){return p.h(t)},m:function(t){return String(Number(t.minute))},mm:function(t){var e=t.minute;return Number(e)<10?"0"+e:e}};t.exports=o},function(t,e,n){"use strict";function r(t,e){var n;return e||(e=t,t=null),n=e.init||function(){},t&&o(n,t),e.hasOwnProperty("static")&&(i(n,e["static"]),delete e["static"]),i(n.prototype,e),n}var o=n(6).inherit,i=n(1).extend;t.exports=r},function(t,e,n){"use strict";function r(t,e){var n=e||{};return i.isFunction(n[u])&&n[u](),o(t,n)}var o=n(15),i=n(2),u="initialize";t.exports=r},function(t,e,n){"use strict";function r(t,e,n){var r,u,s,a;return r=t.split("."),r.unshift(window),u=o.reduce(r,function(t,e){return t[e]=t[e]||{},t[e]}),n?(a=r.pop(),s=i.pick.apply(null,r),u=s[a]=e):i.extend(u,e),u}var o=n(4),i=n(1);t.exports=r},function(t,e,n){"use strict";function r(){this.events=null,this.contexts=null}var o=n(4),i=n(2),u=n(1),s=/\s+/g;r.mixin=function(t){u.extend(t.prototype,r.prototype)},r.prototype._getHandlerItem=function(t,e){var n={handler:t};return e&&(n.context=e),n},r.prototype._safeEvent=function(t){var e,n=this.events;return n||(n=this.events={}),t&&(e=n[t],e||(e=[],n[t]=e),n=e),n},r.prototype._safeContext=function(){var t=this.contexts;return t||(t=this.contexts=[]),t},r.prototype._indexOfContext=function(t){for(var e=this._safeContext(),n=0;e[n];){if(t===e[n][0])return n;n+=1}return-1},r.prototype._memorizeContext=function(t){var e,n;i.isExisty(t)&&(e=this._safeContext(),n=this._indexOfContext(t),n>-1?e[n][1]+=1:e.push([t,1]))},r.prototype._forgetContext=function(t){var e,n;i.isExisty(t)&&(e=this._safeContext(),n=this._indexOfContext(t),n>-1&&(e[n][1]-=1,e[n][1]<=0&&e.splice(n,1)))},r.prototype._bindEvent=function(t,e,n){var r=this._safeEvent(t);this._memorizeContext(n),r.push(this._getHandlerItem(e,n))},r.prototype.on=function(t,e,n){var r=this;i.isString(t)?(t=t.split(s),o.forEach(t,function(t){r._bindEvent(t,e,n)})):i.isObject(t)&&(n=e,o.forEach(t,function(t,e){r.on(e,t,n)}))},r.prototype.once=function(t,e,n){function r(){e.apply(n,arguments),u.off(t,r,n)}var u=this;return i.isObject(t)?(n=e,void o.forEach(t,function(t,e){u.once(e,t,n)})):void this.on(t,r,n)},r.prototype._spliceMatches=function(t,e){var n,r=0;if(i.isArray(t))for(n=t.length;r0},r.prototype.getListenerLength=function(t){var e=this._safeEvent(t);return e.length},t.exports=r},function(t,e,n){"use strict";function r(t){t&&this.set.apply(this,arguments)}var o=n(4),i=n(2),u=function(){try{return Object.defineProperty({},"x",{}),!0}catch(t){return!1}}(),s=0;r.prototype.set=function(t){var e=this;i.isArray(t)||(t=o.toArray(arguments)),o.forEach(t,function(t){e._addItem(t)})},r.prototype.getName=function(t){var e,n=this;return o.forEach(this,function(r,o){if(n._isEnumItem(o)&&t===r)return e=o,!1}),e},r.prototype._addItem=function(t){var e;this.hasOwnProperty(t)||(e=this._makeEnumValue(),u?Object.defineProperty(this,t,{enumerable:!0,configurable:!1,writable:!1,value:e}):this[t]=e)},r.prototype._makeEnumValue=function(){var t;return t=s,s+=1,t},r.prototype._isEnumItem=function(t){return i.isNumber(this[t])},t.exports=r},function(t,e,n){"use strict";function r(t){this._map=new i(t),this.size=this._map.size}var o=n(4),i=n(19),u=["get","has","forEach","keys","values","entries"],s=["delete","clear"];o.forEachArray(u,function(t){r.prototype[t]=function(){return this._map[t].apply(this._map,arguments)}}),o.forEachArray(s,function(t){r.prototype[t]=function(){var e=this._map[t].apply(this._map,arguments);return this.size=this._map.size,e}}),r.prototype.set=function(){return this._map.set.apply(this._map,arguments),this.size=this._map.size,this},r.prototype.setObject=function(t){o.forEachOwnProperties(t,function(t,e){this.set(e,t)},this)},r.prototype.deleteByKeys=function(t){o.forEachArray(t,function(t){this["delete"](t)},this)},r.prototype.merge=function(t){t.forEach(function(t,e){this.set(e,t)},this)},r.prototype.filter=function(t){var e=new r;return this.forEach(function(n,r){t(n,r)&&e.set(r,n)}),e},t.exports=r},function(t,e,n){"use strict";function r(t,e){this._keys=t,this._valueGetter=e,this._length=this._keys.length,this._index=-1,this._done=!1}function o(t){this._valuesForString={},this._valuesForIndex={},this._keys=[],t&&this._setInitData(t),this.size=0}var i=n(4),u=n(2),s=n(3),a=n(10),c=n(5),p={},f={};r.prototype.next=function(){var t={};do this._index+=1;while(u.isUndefined(this._keys[this._index])&&this._index=this._length?t.done=!0:(t.done=!1,t.value=this._valueGetter(this._keys[this._index],this._index)),t},o.prototype._setInitData=function(t){if(!u.isArray(t))throw new Error("Only Array is supported.");i.forEachArray(t,function(t){this.set(t[0],t[1])},this)},o.prototype._isNaN=function(t){return"number"==typeof t&&t!==t},o.prototype._getKeyIndex=function(t){var e,n=-1;return u.isString(t)?(e=this._valuesForString[t],e&&(n=e.keyIndex)):n=s.inArray(t,this._keys),n},o.prototype._getOriginKey=function(t){var e=t;return t===p?e=void 0:t===f&&(e=NaN),e},o.prototype._getUniqueKey=function(t){var e=t;return u.isUndefined(t)?e=p:this._isNaN(t)&&(e=f),e},o.prototype._getValueObject=function(t,e){return u.isString(t)?this._valuesForString[t]:(u.isUndefined(e)&&(e=this._getKeyIndex(t)),e>=0?this._valuesForIndex[e]:void 0)},o.prototype._getOriginValue=function(t,e){return this._getValueObject(t,e).origin},o.prototype._getKeyValuePair=function(t,e){return[this._getOriginKey(t),this._getOriginValue(t,e)]},o.prototype._createValueObject=function(t,e){return{keyIndex:e,origin:t}},o.prototype.set=function(t,e){var n,r=this._getUniqueKey(t),o=this._getKeyIndex(r);return o<0&&(o=this._keys.push(r)-1,this.size+=1),n=this._createValueObject(e,o),u.isString(t)?this._valuesForString[t]=n:this._valuesForIndex[o]=n,this},o.prototype.get=function(t){var e=this._getUniqueKey(t),n=this._getValueObject(e);return n&&n.origin},o.prototype.keys=function(){return new r(this._keys,c.bind(this._getOriginKey,this))},o.prototype.values=function(){return new r(this._keys,c.bind(this._getOriginValue,this))},o.prototype.entries=function(){return new r(this._keys,c.bind(this._getKeyValuePair,this))},o.prototype.has=function(t){return!!this._getValueObject(t)},o.prototype["delete"]=function(t){var e;u.isString(t)?this._valuesForString[t]&&(e=this._valuesForString[t].keyIndex,delete this._valuesForString[t]):(e=this._getKeyIndex(t),e>=0&&delete this._valuesForIndex[e]),e>=0&&(delete this._keys[e],this.size-=1)},o.prototype.forEach=function(t,e){e=e||this,i.forEachArray(this._keys,function(n){u.isUndefined(n)||t.call(e,this._getValueObject(n).origin,n,this)},this)},o.prototype.clear=function(){o.call(this)},function(){window.Map&&(a.firefox&&a.version>=37||a.chrome&&a.version>=42)&&(o=window.Map)}(),t.exports=o},function(t,e,n){"use strict";function r(t){this.length=0,t&&this.setObject(t)}var o=n(4),i=n(2),u="Ã¥";r.prototype.set=function(t,e){2===arguments.length?this.setKeyValue(t,e):this.setObject(t)},r.prototype.setKeyValue=function(t,e){this.has(t)||(this.length+=1),this[this.encodeKey(t)]=e},r.prototype.setObject=function(t){var e=this;o.forEachOwnProperties(t,function(t,n){e.setKeyValue(n,t)})},r.prototype.merge=function(t){var e=this;t.each(function(t,n){e.setKeyValue(n,t)})},r.prototype.encodeKey=function(t){return u+t},r.prototype.decodeKey=function(t){var e=t.split(u);return e[e.length-1]},r.prototype.get=function(t){return this[this.encodeKey(t)]},r.prototype.has=function(t){return this.hasOwnProperty(this.encodeKey(t))},r.prototype.remove=function(t){return arguments.length>1&&(t=o.toArray(arguments)),i.isArray(t)?this.removeByKeyArray(t):this.removeByKey(t)},r.prototype.removeByKey=function(t){var e=this.has(t)?this.get(t):null;return null!==e&&(delete this[this.encodeKey(t)],this.length-=1),e},r.prototype.removeByKeyArray=function(t){var e=[],n=this;return o.forEach(t,function(t){e.push(n.removeByKey(t))}),e},r.prototype.removeAll=function(){var t=this;this.each(function(e,n){t.remove(n)})},r.prototype.each=function(t){var e,n=this;o.forEachOwnProperties(this,function(r,o){if(o.charAt(0)===u&&(e=t(r,n.decodeKey(o))),e===!1)return e})},r.prototype.keys=function(){var t=[],e=this;return this.each(function(n,r){t.push(e.decodeKey(r))}),t},r.prototype.find=function(t){var e=[];return this.each(function(n,r){t(n,r)&&e.push(n)}),e},r.prototype.toArray=function(){var t=[];return this.each(function(e){t.push(e)}),t},t.exports=r}])}); \ No newline at end of file diff --git a/public/admin/assets/js/calendar/tui-date-picker.min.js b/public/admin/assets/js/calendar/tui-date-picker.min.js new file mode 100644 index 0000000..f8adda4 --- /dev/null +++ b/public/admin/assets/js/calendar/tui-date-picker.min.js @@ -0,0 +1,7 @@ +/*! + * TOAST UI Date Picker + * @version 4.0.3 + * @author NHN. FE Development Lab + * @license MIT + */ +!function(t,e){"object"==typeof exports&&"object"==typeof module?module.exports=e(require("tui-time-picker")):"function"==typeof define&&define.amd?define(["tui-time-picker"],e):"object"==typeof exports?exports.DatePicker=e(require("tui-time-picker")):(t.tui=t.tui||{},t.tui.DatePicker=e(t.tui.TimePicker))}(window,(function(t){return function(t){var e={};function n(i){if(e[i])return e[i].exports;var r=e[i]={i:i,l:!1,exports:{}};return t[i].call(r.exports,r,r.exports,n),r.l=!0,r.exports}return n.m=t,n.c=e,n.d=function(t,e,i){n.o(t,e)||Object.defineProperty(t,e,{enumerable:!0,get:i})},n.r=function(t){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(t,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(t,"__esModule",{value:!0})},n.t=function(t,e){if(1&e&&(t=n(t)),8&e)return t;if(4&e&&"object"==typeof t&&t&&t.__esModule)return t;var i=Object.create(null);if(n.r(i),Object.defineProperty(i,"default",{enumerable:!0,value:t}),2&e&&"string"!=typeof t)for(var r in t)n.d(i,r,function(e){return t[e]}.bind(null,r));return i},n.n=function(t){var e=t&&t.__esModule?function(){return t.default}:function(){return t};return n.d(e,"a",e),e},n.o=function(t,e){return Object.prototype.hasOwnProperty.call(t,e)},n.p="dist",n(n.s=34)}([function(t,e,n){"use strict";var i=n(35),r=n(7);t.exports=function(t,e){var n;return e||(e=t,t=null),n=e.init||function(){},t&&i(n,t),e.hasOwnProperty("static")&&(r(n,e.static),delete e.static),r(n.prototype,e),n}},function(t,e,n){"use strict";t.exports={TYPE_DATE:"date",TYPE_MONTH:"month",TYPE_YEAR:"year",TYPE_HOUR:"hour",TYPE_MINUTE:"minute",TYPE_MERIDIEM:"meridiem",MIN_DATE:new Date(1900,0,1),MAX_DATE:new Date(2999,11,31),DEFAULT_LANGUAGE_TYPE:"en",CLASS_NAME_SELECTED:"tui-is-selected",CLASS_NAME_PREV_MONTH_BTN:"tui-calendar-btn-prev-month",CLASS_NAME_PREV_YEAR_BTN:"tui-calendar-btn-prev-year",CLASS_NAME_NEXT_YEAR_BTN:"tui-calendar-btn-next-year",CLASS_NAME_NEXT_MONTH_BTN:"tui-calendar-btn-next-month"}},function(t,e,n){"use strict";t.exports=function(t,e,n){var i=0,r=t.length;for(n=n||null;i=0&&re)for(n=e;n>=t;n-=1)i.push(n);else for(n=t;n<=e;n+=1)i.push(n);return i},cloneWithStartOf:function(t,e){switch(e=e||a,(t=new Date(t)).setHours(0,0,0,0),e){case a:break;case o:t.setDate(1);break;case c:t.setMonth(0,1);break;default:throw Error("Unsupported type: "+e)}return t},cloneWithEndOf:function(t,e){switch(e=e||a,(t=new Date(t)).setHours(23,59,59,999),e){case a:break;case o:t.setMonth(t.getMonth()+1,0);break;case c:t.setMonth(11,31);break;default:throw Error("Unsupported type: "+e)}return t},compare:function(t,e,n){var i,r;return u.isValidDate(t)&&u.isValidDate(e)?(n?(i=u.cloneWithStartOf(t,n).getTime(),r=u.cloneWithStartOf(e,n).getTime()):(i=t.getTime(),r=e.getTime()),i>r?1:i===r?0:-1):NaN},isSame:function(t,e,n){return 0===u.compare(t,e,n)},inRange:function(t,e,n,i){return u.compare(t,n,i)<1&&u.compare(e,n,i)>-1}};t.exports=u},function(t,e,n){"use strict";t.exports=function(t){return t instanceof Array}},function(t,e,n){"use strict";t.exports=function(t,e){var n,i,r,s,a=Object.prototype.hasOwnProperty;for(r=1,s=arguments.length;r-1?e[n][1]+=1:e.push([t,1]))},l.prototype._forgetContext=function(t){var e,n;r(t)&&(e=this._safeContext(),(n=this._indexOfContext(t))>-1&&(e[n][1]-=1,e[n][1]<=0&&e.splice(n,1)))},l.prototype._bindEvent=function(t,e,n){var i=this._safeEvent(t);this._memorizeContext(n),i.push(this._getHandlerItem(e,n))},l.prototype.on=function(t,e,n){var i=this;s(t)?(t=t.split(h),u(t,(function(t){i._bindEvent(t,e,n)}))):a(t)&&(n=e,u(t,(function(t,e){i.on(e,t,n)})))},l.prototype.once=function(t,e,n){var i=this;if(a(t))return n=e,void u(t,(function(t,e){i.once(e,t,n)}));this.on(t,(function r(){e.apply(n,arguments),i.off(t,r,n)}),n)},l.prototype._spliceMatches=function(t,e){var n,i=0;if(o(t))for(n=t.length;i0},l.prototype.getListenerLength=function(t){return this._safeEvent(t).length},t.exports=l},function(t,e,n){"use strict";var i=n(6),r=n(2),s=n(23);t.exports=function(t,e,n){i(t)?r(t,e,n):s(t,e,n)}},function(t,e,n){"use strict";t.exports={en:{titles:{DD:["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"],D:["Sun","Mon","Tue","Wed","Thu","Fri","Sat"],MMM:["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"],MMMM:["January","February","March","April","May","June","July","August","September","October","November","December"]},titleFormat:"MMMM yyyy",todayFormat:"To\\d\\ay: DD, MMMM d, yyyy",time:"Time",date:"Date"},ko:{titles:{DD:["일요일","월요일","화요일","수요일","목요일","금요일","í† ìš”ì¼"],D:["일","ì›”","í™”","수","목","금","í† "],MMM:["1ì›”","2ì›”","3ì›”","4ì›”","5ì›”","6ì›”","7ì›”","8ì›”","9ì›”","10ì›”","11ì›”","12ì›”"],MMMM:["1ì›”","2ì›”","3ì›”","4ì›”","5ì›”","6ì›”","7ì›”","8ì›”","9ì›”","10ì›”","11ì›”","12ì›”"]},titleFormat:"yyyy.MM",todayFormat:"오늘: yyyy.MM.dd (D)",date:"ë‚ ì§œ",time:"시간"}}},function(t,e,n){"use strict";var i=n(3),r=n(9),s=n(6),a=n(13),o=n(7),c=/{{\s?|\s?}}/g,u=/^[a-zA-Z0-9_@]+\[[a-zA-Z0-9_@"']+\]$/,h=/\[\s?|\s?\]/,l=/^[a-zA-Z_]+\.[a-zA-Z_]+$/,d=/\./,p=/^["']\w+["']$/,_=/"|'/g,f=/^-?\d+\.?\d*$/,m=2,g={if:function(t,e,n){var i=function(t,e){var n=[t],i=[],s=0,a=0;return r(e,(function(t,r){0===t.indexOf("if")?s+=1:"/if"===t?s-=1:s||0!==t.indexOf("elseif")&&"else"!==t||(n.push("else"===t?["true"]:t.split(" ").slice(1)),i.push(e.slice(a,r)),a=r+1)})),i.push(e.slice(a)),{exps:n,sourcesInsideIf:i}}(t,e),s=!1,a="";return r(i.exps,(function(t,e){return(s=E(t,n))&&(a=D(i.sourcesInsideIf[e],n)),!s})),a},each:function(t,e,n){var i=E(t,n),a=s(i)?"@index":"@key",c={},u="";return r(i,(function(t,i){c[a]=i,c["@this"]=t,o(n,c),u+=D(e.slice(),n)})),u},with:function(t,e,n){var r=i("as",t),s=t[r+1],a=E(t.slice(0,r),n),c={};return c[s]=a,D(e,o(n,c))||""}},y=3==="a".split(/a/).length?function(t,e){return t.split(e)}:function(t,e){var n,i,r=[],s=0;for(e.global||(e=new RegExp(e,"g")),n=e.exec(t);null!==n;)i=n.index,r.push(t.slice(s,i)),s=i+n[0].length,n=e.exec(t);return r.push(t.slice(s)),r};function v(t,e){var n,i=e[t];return"true"===t?i=!0:"false"===t?i=!1:p.test(t)?i=t.replace(_,""):u.test(t)?i=v((n=t.split(h))[0],e)[v(n[1],e)]:l.test(t)?i=v((n=t.split(d))[0],e)[n[1]]:f.test(t)&&(i=parseFloat(t)),i}function T(t,e,n){for(var i,r,s,o,c=g[t],u=1,h=0+m,l=e[h];u&&a(l);)0===l.indexOf(t)?u+=1:0===l.indexOf("/"+t)&&(u-=1,i=h),l=e[h+=m];if(u)throw Error(t+" needs {{/"+t+"}} expression.");return e[0]=c(e[0].split(" ").slice(1),(r=0,s=i,(o=e.splice(r+1,s-r)).pop(),o),n),e}function E(t,e){var n=v(t[0],e);return n instanceof Function?function(t,e,n){var i=[];return r(e,(function(t){i.push(v(t,n))})),t.apply(null,i)}(n,t.slice(1),e):n}function D(t,e){for(var n,i,r,s=1,o=t[s];a(o);)i=(n=o.split(" "))[0],g[i]?(r=T(i,t.splice(s,t.length-s),e),t=t.concat(r)):t[s]=E(n,e),o=t[s+=m];return t.join("")}t.exports=function(t,e){return D(y(t,c),e)}},function(t,e,n){"use strict";t.exports=function(t){return void 0===t}},function(t,e,n){"use strict";t.exports=function(t){return"string"==typeof t||t instanceof String}},function(t,e,n){"use strict";t.exports=function(t){t&&t.parentNode&&t.parentNode.removeChild(t)}},function(t,e,n){"use strict";t.exports=function(t){return"number"==typeof t||t instanceof Number}},function(t,e,n){"use strict";var i=n(9),r=n(3),s=n(17),a=n(24);t.exports=function(t){var e,n=Array.prototype.slice.call(arguments,1),o=t.classList,c=[];o?i(n,(function(e){t.classList.add(e)})):((e=s(t))&&(n=[].concat(e.split(/\s+/),n)),i(n,(function(t){r(t,c)<0&&c.push(t)})),a(t,c))}},function(t,e,n){"use strict";var i=n(12);t.exports=function(t){return t&&t.className?i(t.className.baseVal)?t.className:t.className.baseVal:""}},function(t,e,n){"use strict";var i=n(2),r=n(3),s=n(17),a=n(24);t.exports=function(t){var e,n,o=Array.prototype.slice.call(arguments,1),c=t.classList;c?i(o,(function(t){c.remove(t)})):(e=s(t).split(/\s+/),n=[],i(e,(function(t){r(t,o)<0&&n.push(t)})),a(t,n))}},function(t,e,n){"use strict";var i=n(31),r=n(33),s={_isMobile:/Android|BlackBerry|iPhone|iPad|iPod|Opera Mini|IEMobile|WPDesktop/i.test(navigator.userAgent),_getEventType:function(t){return this._isMobile&&("mousedown"===t?t="touchstart":"click"===t&&(t="touchend")),t},on:function(t,e,n,r){i(t,this._getEventType(e),n,r)},off:function(t,e,n){r(t,this._getEventType(e),n)}};t.exports=s},function(t,e,n){"use strict";var i=n(0),r=n(14),s=n(10),a=n(1).DEFAULT_LANGUAGE_TYPE,o=i({init:function(t){t=t||a,this._element=null,this._localeText=s[t],this._type="base"},_makeContext:function(){c(this.getType(),"_makeContext")},render:function(){c(this.getType(),"render")},getDateElements:function(){c(this.getType(),"getDateElements")},getType:function(){return this._type},changeLanguage:function(t){this._localeText=s[t]},remove:function(){this._element&&r(this._element),this._element=null}});function c(t,e){throw new Error(t+' layer does not have the "'+e+'" method.')}t.exports=o},function(t,e,n){"use strict";var i=n(3),r=n(2),s=n(0),a=n(8),o=n(16),c=n(25),u=n(26),h=n(27),l=n(18),d=n(14),p=n(7),_=n(6),f=n(28),m=n(15),g=n(22),y=n(43),v=n(29),T=n(56),E=n(1),D=n(10),w=n(5),x=n(4),k=n(19),b=n(58),M=n(59),C=E.DEFAULT_LANGUAGE_TYPE,S=E.TYPE_DATE,N=E.TYPE_MONTH,A=E.TYPE_YEAR,P=E.CLASS_NAME_NEXT_YEAR_BTN,O=E.CLASS_NAME_NEXT_MONTH_BTN,L=E.CLASS_NAME_PREV_YEAR_BTN,F=E.CLASS_NAME_PREV_MONTH_BTN,R=E.CLASS_NAME_SELECTED,Y=s({static:{localeTexts:D},init:function(t,e){e=function(t){if((t=p({language:C,calendar:{},input:{element:null,format:null},timePicker:null,date:null,showAlways:!1,type:S,selectableRanges:null,openers:[],autoClose:!0,usageStatistics:!0},t)).selectableRanges=t.selectableRanges||[[E.MIN_DATE,E.MAX_DATE]],!g(t.calendar))throw new Error("Calendar option must be an object");if(!g(t.input))throw new Error("Input option must be an object");if(!_(t.selectableRanges))throw new Error("Selectable-ranges must be a 2d-array");return t.localeText=D[t.language],t.calendar.language=t.language,t.calendar.type=t.type,t.timePicker=t.timePicker||t.timepicker,t}(e),this._language=e.language,this._container=x.getElement(t),this._container.innerHTML=b(p(e,{isTab:e.timePicker&&"tab"===e.timePicker.layoutType})),this._element=this._container.firstChild,this._calendar=new v(this._element.querySelector(".tui-calendar-container"),p(e.calendar,{usageStatistics:e.usageStatistics})),this._timePicker=null,this._datepickerInput=null,this._date=null,this._rangeModel=null,this._openers=[],this._isEnabled=!0,this._id="tui-datepicker-"+x.generateId(),this._type=e.type,this.showAlways=e.showAlways,this.autoClose=e.autoClose,this._initializeDatePicker(e)},_initializeDatePicker:function(t){this.setRanges(t.selectableRanges),this._setEvents(),this._initTimePicker(t.timePicker,t.usageStatistics),this.setInput(t.input.element),this.setDateFormat(t.input.format),this.setDate(t.date),r(t.openers,this.addOpener,this),this.showAlways||this._hide(),this.getType()===S&&o(this._element.querySelector(".tui-datepicker-body"),"tui-datepicker-type-date")},_setEvents:function(){k.on(this._element,"click",this._onClickHandler,this),this._calendar.on("draw",this._onDrawCalendar,this)},_removeEvents:function(){k.off(this._element,"click",this._onClickHandler,this),this._calendar.off()},_setDocumentEvents:function(){k.on(document,"mousedown",this._onMousedownDocument,this)},_removeDocumentEvents:function(){k.off(document,"mousedown",this._onMousedownDocument)},_setOpenerEvents:function(t){k.on(t,"click",this.toggle,this)},_removeOpenerEvents:function(t){k.off(t,"click",this.toggle)},_initTimePicker:function(t,e){var n;t&&(n=t.layoutType||"",g(t)?t.usageStatistics=e:t={usageStatistics:e},this._timePicker=new y(this._element.querySelector(".tui-timepicker-container"),t),"tab"===n.toLowerCase()&&this._timePicker.hide(),this._timePicker.on("change",(function(t){var e;this._date&&(e=new Date(this._date),this.setDate(e.setHours(t.hour,t.minute)))}),this))},_changePicker:function(t){var e=c(t,".tui-datepicker-selector-button");!!e.querySelector(".tui-ico-date")?(this._calendar.show(),this._timePicker.hide()):(this._calendar.hide(),this._timePicker.show()),l(this._element.querySelector(".tui-is-checked"),"tui-is-checked"),o(e,"tui-is-checked")},_isOpener:function(t){var e=x.getElement(t);return i(e,this._openers)>-1},_setTodayClassName:function(t){this.getCalendarType()===S&&(Number(u(t,"timestamp"))===(new Date).setHours(0,0,0,0)?o(t,"tui-calendar-today"):l(t,"tui-calendar-today"))},_setSelectableClassName:function(t){var e=new Date(Number(u(t,"timestamp")));this._isSelectableOnCalendar(e)?(o(t,"tui-is-selectable"),l(t,"tui-is-blocked")):(l(t,"tui-is-selectable"),o(t,"tui-is-blocked"))},_setSelectedClassName:function(t){var e=new Date(Number(u(t,"timestamp")));this._isSelectedOnCalendar(e)?o(t,R):l(t,R)},_isSelectableOnCalendar:function(t){var e=this.getCalendarType(),n=w.cloneWithStartOf(t,e).getTime(),i=w.cloneWithEndOf(t,e).getTime();return this._rangeModel.hasOverlap(n,i)},_isSelectedOnCalendar:function(t){var e=this.getDate(),n=this.getCalendarType();return e&&w.isSame(e,t,n)},_show:function(){l(this._element,"tui-hidden")},_hide:function(){o(this._element,"tui-hidden")},_syncToInput:function(){this._date&&this._datepickerInput.setDate(this._date)},_syncFromInput:function(t){var e,n=!1;try{e=this._datepickerInput.getDate(),this.isSelectable(e)?(this._timePicker&&this._timePicker.setTime(e.getHours(),e.getMinutes()),this.setDate(e)):n=!0}catch(t){this.fire("error",{type:"ParsingError",message:t.message}),n=!0}finally{n&&(t?this._syncToInput():this.setNull())}},_onMousedownDocument:function(t){var e=x.getTarget(t),n=x.getSelector(e),r=!!n&&this._element.querySelector(n),s=this._datepickerInput.is(e),a=i(e,this._openers)>-1;!(this.showAlways||s||r||a)&&this.close()},_onClickHandler:function(t){var e=x.getTarget(t);c(e,".tui-is-selectable")?this._updateDate(e):c(e,".tui-calendar-title")?this.drawUpperCalendar(this._date):c(e,".tui-datepicker-selector-button")&&this._changePicker(e)},_updateDate:function(t){var e=Number(u(t,"timestamp")),n=new Date(e),i=this._timePicker,r=this._date;this.getCalendarType()!==this.getType()?this.drawLowerCalendar(n):(i?n.setHours(i.getHour(),i.getMinute()):r&&n.setHours(r.getHours(),r.getMinutes()),this.setDate(n),!this.showAlways&&this.autoClose&&this.close())},_onDrawCalendar:function(t){r(t.dateElements,(function(t){this._setTodayClassName(t),this._setSelectableClassName(t),this._setSelectedClassName(t)}),this),this._setDisplayHeadButtons(),this.fire("draw",t)},_setDisplayHeadButtons:function(){var t,e,n,i,r=this._calendar.getNextYearDate(),s=this._calendar.getPrevYearDate(),a=this._rangeModel.getMaximumValue(),o=this._rangeModel.getMinimumValue(),c=this._element.querySelector("."+P),u=this._element.querySelector("."+L);this.getCalendarType()===S?(t=w.cloneWithStartOf(this._calendar.getNextDate(),N),e=w.cloneWithEndOf(this._calendar.getPrevDate(),N),n=this._element.querySelector("."+O),i=this._element.querySelector("."+F),this._setDisplay(n,t.getTime()<=a),this._setDisplay(i,e.getTime()>=o),s.setDate(1),r.setDate(1)):(s.setMonth(12,0),r.setMonth(0,1)),this._setDisplay(c,r.getTime()<=a),this._setDisplay(u,s.getTime()>=o)},_setDisplay:function(t,e){t&&(e?l(t,"tui-hidden"):o(t,"tui-hidden"))},_onChangeInput:function(){this._syncFromInput(!0)},_isChanged:function(t){var e=this.getDate();return!e||t.getTime()!==e.getTime()},_refreshFromRanges:function(){this.isSelectable(this._date)?this._calendar.draw():this.setNull()},getCalendarType:function(){return this._calendar.getType()},getType:function(){return this._type},isSelectable:function(t){var e,n,i=this.getType();return!!w.isValidDate(t)&&(e=w.cloneWithStartOf(t,i).getTime(),n=w.cloneWithEndOf(t,i).getTime(),this._rangeModel.hasOverlap(e,n))},isSelected:function(t){return w.isValidDate(t)&&w.isSame(this._date,t,this.getType())},setRanges:function(t){var e=[];r(t,(function(t){var n=new Date(t[0]).getTime(),i=new Date(t[1]).getTime();e.push([n,i])})),this._rangeModel=new T(e),this._refreshFromRanges()},setType:function(t){this._type=t},addRange:function(t,e){t=new Date(t).getTime(),e=new Date(e).getTime(),this._rangeModel.add(t,e),this._refreshFromRanges()},removeRange:function(t,e,n){t=new Date(t),e=new Date(e),n&&(t=w.cloneWithStartOf(t,n),e=w.cloneWithEndOf(e,n)),this._rangeModel.exclude(t.getTime(),e.getTime()),this._refreshFromRanges()},addOpener:function(t){t=x.getElement(t),this._isOpener(t)||(this._openers.push(t),this._setOpenerEvents(t))},removeOpener:function(t){var e;t=x.getElement(t),(e=i(t,this._openers))>-1&&(this._removeOpenerEvents(t),this._openers.splice(e,1))},removeAllOpeners:function(){r(this._openers,(function(t){this._removeOpenerEvents(t)}),this),this._openers=[]},open:function(){!this.isOpened()&&this._isEnabled&&(this._calendar.draw({date:this._date,type:this._type}),this._show(),this.showAlways||this._setDocumentEvents(),this.fire("open"))},drawUpperCalendar:function(t){var e=this.getCalendarType();e===S?this._calendar.draw({date:t,type:N}):e===N&&this._calendar.draw({date:t,type:A})},drawLowerCalendar:function(t){var e=this.getCalendarType();e===this.getType()||(e===N?this._calendar.draw({date:t,type:S}):e===A&&this._calendar.draw({date:t,type:N}))},close:function(){this.isOpened()&&(this._removeDocumentEvents(),this._hide(),this.fire("close"))},toggle:function(){this.isOpened()?this.close():this.open()},getDate:function(){return this._date?new Date(this._date):null},setDate:function(t){var e,n;null!==t?(e=m(t)||f(t),n=new Date(t),e&&this._isChanged(n)&&this.isSelectable(n)&&(n=new Date(t),this._date=n,this._calendar.draw({date:n}),this._timePicker&&this._timePicker.setTime(n.getHours(),n.getMinutes()),this._syncToInput(),this.fire("change"))):this.setNull()},setNull:function(){var t=this._calendar.getDate(),e=null!==this._date;this._date=null,this._datepickerInput&&this._datepickerInput.clearText(),this._timePicker&&this._timePicker.setTime(0,0),this.isSelectable(t)?this._calendar.draw():this._calendar.draw({date:new Date(this._rangeModel.getMinimumValue())}),e&&this.fire("change")},setDateFormat:function(t){this._datepickerInput.setFormat(t),this._syncToInput()},isOpened:function(){return!h(this._element,"tui-hidden")},getTimePicker:function(){return this._timePicker},getCalendar:function(){return this._calendar},getLocaleText:function(){return D[this._language]||D[C]},setInput:function(t,e){var n,i=this._datepickerInput,r=this.getLocaleText();e=e||{},i&&(n=i.getFormat(),i.destroy()),this._datepickerInput=new M(t,{format:e.format||n,id:this._id,localeText:r}),this._datepickerInput.on({change:this._onChangeInput,click:this.open},this),e.syncFromInput?this._syncFromInput():this._syncToInput()},enable:function(){this._isEnabled||(this._isEnabled=!0,this._datepickerInput.enable(),r(this._openers,(function(t){t.removeAttribute("disabled"),this._setOpenerEvents(t)}),this))},disable:function(){this._isEnabled&&(this._isEnabled=!1,this.close(),this._datepickerInput.disable(),r(this._openers,(function(t){t.setAttribute("disabled",!0),this._removeOpenerEvents(t)}),this))},isDisabled:function(){return!this._isEnabled},addCssClass:function(t){o(this._element,t)},removeCssClass:function(t){l(this._element,t)},getDateElements:function(){return this._calendar.getDateElements()},findOverlappedRange:function(t,e){var n=new Date(t).getTime(),i=new Date(e).getTime(),r=this._rangeModel.findOverlappedRange(n,i);return[new Date(r[0]),new Date(r[1])]},changeLanguage:function(t){this._language=t,this._calendar.changeLanguage(this._language),this._datepickerInput.changeLocaleTitles(this.getLocaleText().titles),this.setDateFormat(this._datepickerInput.getFormat()),this._timePicker&&this._timePicker.changeLanguage(this._language)},destroy:function(){this._removeDocumentEvents(),this._calendar.destroy(),this._timePicker&&this._timePicker.destroy(),this._datepickerInput&&this._datepickerInput.destroy(),this._removeEvents(),d(this._element),this.removeAllOpeners(),this._calendar=this._timePicker=this._datepickerInput=this._container=this._element=this._date=this._rangeModel=this._openers=this._isEnabled=this._id=null}});a.mixin(Y),t.exports=Y},function(t,e,n){"use strict";t.exports=function(t){return t===Object(t)}},function(t,e,n){"use strict";t.exports=function(t,e,n){var i;for(i in n=n||null,t)if(t.hasOwnProperty(i)&&!1===e.call(n,t[i],i,t))break}},function(t,e,n){"use strict";var i=n(6),r=n(12);t.exports=function(t,e){e=(e=i(e)?e.join(" "):e).replace(/^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g,""),r(t.className.baseVal)?t.className=e:t.className.baseVal=e}},function(t,e,n){"use strict";var i=n(40);t.exports=function(t,e){var n=t.parentNode;if(i(t,e))return t;for(;n&&n!==document;){if(i(n,e))return n;n=n.parentNode}return null}},function(t,e,n){"use strict";var i=n(42);t.exports=function(t,e){return t.dataset?t.dataset[e]:t.getAttribute("data-"+i(e))}},function(t,e,n){"use strict";var i=n(3),r=n(17);t.exports=function(t,e){var n;return t.classList?t.classList.contains(e):(n=r(t).split(/\s+/),i(e,n)>-1)}},function(t,e,n){"use strict";t.exports=function(t){return t instanceof Date}},function(t,e,n){"use strict";var i=n(0),r=n(8),s=n(16),a=n(27),o=n(18),c=n(14),u=n(7),h=n(44),l=n(49),d=n(10),p=n(1),_=n(5),f=n(4),m=p.DEFAULT_LANGUAGE_TYPE,g=p.TYPE_DATE,y=p.TYPE_MONTH,v=p.TYPE_YEAR,T=p.CLASS_NAME_PREV_MONTH_BTN,E=p.CLASS_NAME_PREV_YEAR_BTN,D=p.CLASS_NAME_NEXT_YEAR_BTN,w=p.CLASS_NAME_NEXT_MONTH_BTN,x=i({static:{localeTexts:d},init:function(t,e){e=u({language:m,showToday:!0,showJumpButtons:!1,date:new Date,type:g,usageStatistics:!0},e),this._container=f.getElement(t),this._container.innerHTML='
    ',this._element=this._container.firstChild,this._date=null,this._type=null,this._header=null,this._body=null,this._initHeader(e),this._initBody(e),this.draw({date:e.date,type:e.type}),e.usageStatistics&&f.sendHostName()},_initHeader:function(t){var e=this._element.querySelector(".tui-calendar-header");this._header=new h(e,t),this._header.on("click",(function(t){var e=f.getTarget(t);a(e,T)?this.drawPrev():a(e,E)?this._onClickPrevYear():a(e,w)?this.drawNext():a(e,D)&&this._onClickNextYear()}),this)},_initBody:function(t){var e=this._element.querySelector(".tui-calendar-body");this._body=new l(e,t)},_onClickPrevYear:function(){this.getType()===g?this.draw({date:this._getRelativeDate(-12)}):this.drawPrev()},_onClickNextYear:function(){this.getType()===g?this.draw({date:this._getRelativeDate(12)}):this.drawNext()},_isValidType:function(t){return t===g||t===y||t===v},_shouldUpdate:function(t,e){var n=this._date;if(!_.isValidDate(t))throw new Error("Invalid date");if(!this._isValidType(e))throw new Error("Invalid layer type");return!n||n.getFullYear()!==t.getFullYear()||n.getMonth()!==t.getMonth()||this.getType()!==e},_render:function(){var t=this._date,e=this.getType();switch(this._header.render(t,e),this._body.render(t,e),o(this._element,"tui-calendar-month","tui-calendar-year"),e){case y:s(this._element,"tui-calendar-month");break;case v:s(this._element,"tui-calendar-year")}},_getRelativeDate:function(t){var e=this._date;return new Date(e.getFullYear(),e.getMonth()+t)},draw:function(t){var e,n;e=(t=t||{}).date||this._date,n=(t.type||this.getType()).toLowerCase(),this._shouldUpdate(e,n)&&(this._date=e,this._type=n,this._render()),this.fire("draw",{date:this._date,type:n,dateElements:this._body.getDateElements()})},show:function(){o(this._element,"tui-hidden")},hide:function(){s(this._element,"tui-hidden")},drawNext:function(){this.draw({date:this.getNextDate()})},drawPrev:function(){this.draw({date:this.getPrevDate()})},getNextDate:function(){return this.getType()===g?this._getRelativeDate(1):this.getNextYearDate()},getPrevDate:function(){return this.getType()===g?this._getRelativeDate(-1):this.getPrevYearDate()},getNextYearDate:function(){switch(this.getType()){case g:case y:return this._getRelativeDate(12);case v:return this._getRelativeDate(108);default:throw new Error("Unknown layer type")}},getPrevYearDate:function(){switch(this.getType()){case g:case y:return this._getRelativeDate(-12);case v:return this._getRelativeDate(-108);default:throw new Error("Unknown layer type")}},changeLanguage:function(t){this._header.changeLanguage(t),this._body.changeLanguage(t),this._render()},getDate:function(){return new Date(this._date)},getType:function(){return this._type},getDateElements:function(){return this._body.getDateElements()},addCssClass:function(t){s(this._element,t)},removeCssClass:function(t){o(this._element,t)},destroy:function(){this._header.destroy(),this._body.destroy(),c(this._element),this._type=this._date=this._container=this._element=this._header=this._body=null}});r.mixin(x),t.exports=x},function(t,e,n){"use strict";var i=n(3),r=n(2),s=n(0),a=n(4),o=n(5),c=n(1),u=n(10),h=/\\?(yyyy|yy|mmmm|mmm|mm|m|dd|d|hh|h|a)/gi,l={yyyy:{expression:"(\\d{4}|\\d{2})",type:c.TYPE_YEAR},yy:{expression:"(\\d{4}|\\d{2})",type:c.TYPE_YEAR},y:{expression:"(\\d{4}|\\d{2})",type:c.TYPE_YEAR},M:{expression:"(1[012]|0[1-9]|[1-9])",type:c.TYPE_MONTH},MM:{expression:"(1[012]|0[1-9]|[1-9])",type:c.TYPE_MONTH},MMM:{expression:"(1[012]|0[1-9]|[1-9])",type:c.TYPE_MONTH},MMMM:{expression:"(1[012]|0[1-9]|[1-9])",type:c.TYPE_MONTH},mmm:{expression:"(1[012]|0[1-9]|[1-9])",type:c.TYPE_MONTH},mmmm:{expression:"(1[012]|0[1-9]|[1-9])",type:c.TYPE_MONTH},dd:{expression:"([12]\\d{1}|3[01]|0[1-9]|[1-9])",type:c.TYPE_DATE},d:{expression:"([12]\\d{1}|3[01]|0[1-9]|[1-9])",type:c.TYPE_DATE},D:{expression:"([12]\\d{1}|3[01]|0[1-9]|[1-9])",type:c.TYPE_DATE},DD:{expression:"([12]\\d{1}|3[01]|0[1-9]|[1-9])",type:c.TYPE_DATE},h:{expression:"(d{1}|0\\d{1}|1\\d{1}|2[0123])",type:c.TYPE_HOUR},hh:{expression:"(d{1}|[01]\\d{1}|2[0123])",type:c.TYPE_HOUR},H:{expression:"(d{1}|0\\d{1}|1\\d{1}|2[0123])",type:c.TYPE_HOUR},HH:{expression:"(d{1}|[01]\\d{1}|2[0123])",type:c.TYPE_HOUR},m:{expression:"(d{1}|[012345]\\d{1})",type:c.TYPE_MINUTE},mm:{expression:"(d{1}|[012345]\\d{1})",type:c.TYPE_MINUTE},a:{expression:"([ap]m)",type:c.TYPE_MERIDIEM},A:{expression:"([ap]m)",type:c.TYPE_MERIDIEM}},d=s({init:function(t,e){this._rawStr=t,this._keyOrder=null,this._regExp=null,this._titles=e||u.en.titles,this._parseFormat()},_parseFormat:function(){var t="^",e=this._rawStr.match(h),n=[];e=a.filter(e,(function(t){return"\\"!==t[0]})),r(e,(function(e,i){/m/i.test(e)||(e=e.toLowerCase()),t+=l[e].expression+"[\\D\\s]*",n[i]=l[e].type})),t+="$",this._keyOrder=n,this._regExp=new RegExp(t,"gi")},parse:function(t){var e,n={year:0,month:1,date:1,hour:0,minute:0},i=!1,s=!1;if(this._regExp.lastIndex=0,!(e=this._regExp.exec(t)))throw Error('DateTimeFormatter: Not matched - "'+t+'"');return r(this._keyOrder,(function(t,r){var a=e[r+1];if(t===c.TYPE_MERIDIEM&&/[ap]m/i.test(a))i=!0,s=/pm/i.test(a);else{if(0!==(a=Number(a))&&!a)throw Error("DateTimeFormatter: Unknown value - "+e[r+1]);t===c.TYPE_YEAR&&a<100&&(a+=2e3),n[t]=a}})),i&&(s=s||n.hour>12,n.hour%=12,s&&(n.hour+=12)),new Date(n.year,n.month-1,n.date,n.hour,n.minute)},getRawString:function(){return this._rawStr},format:function(t){var e,n=t.getFullYear(),r=t.getMonth()+1,s=t.getDate(),a=t.getDay(),u=t.getHours(),l=t.getMinutes(),d="a";return i(c.TYPE_MERIDIEM,this._keyOrder)>-1&&(d=u>=12?"pm":"am",u=o.getMeridiemHour(u)),e={yyyy:n,yy:String(n).substr(2,2),M:r,MM:o.prependLeadingZero(r),MMM:this._titles.MMM[r-1],MMMM:this._titles.MMMM[r-1],d:s,dd:o.prependLeadingZero(s),D:this._titles.D[a],DD:this._titles.DD[a],hh:o.prependLeadingZero(u),h:u,mm:o.prependLeadingZero(l),m:l,A:d.toUpperCase(),a:d},this._rawStr.replace(h,(function(t){return"\\"===t[0]?t.substr(1):e[t]||e[t.toLowerCase()]||""}))}});t.exports=d},function(t,e,n){"use strict";var i=n(13),r=n(9),s=n(32);function a(t,e,n,i){function a(e){n.call(i||t,e||window.event)}"addEventListener"in t?t.addEventListener(e,a):"attachEvent"in t&&t.attachEvent("on"+e,a),function(t,e,n,i){var a=s(t,e),o=!1;r(a,(function(t){return t.handler!==n||(o=!0,!1)})),o||a.push({handler:n,wrappedHandler:i})}(t,e,n,a)}t.exports=function(t,e,n,s){i(e)?r(e.split(/\s+/g),(function(e){a(t,e,n,s)})):r(e,(function(e,i){a(t,i,e,n)}))}},function(t,e,n){"use strict";var i="_feEventKey";t.exports=function(t,e){var n,r=t[i];return r||(r=t[i]={}),(n=r[e])||(n=r[e]=[]),n}},function(t,e,n){"use strict";var i=n(13),r=n(9),s=n(32);function a(t,e,n){var i,a=s(t,e);n?(r(a,(function(r,s){return n!==r.handler||(o(t,e,r.wrappedHandler),i=s,!1)})),a.splice(i,1)):(r(a,(function(n){o(t,e,n.wrappedHandler)})),a.splice(0,a.length))}function o(t,e,n){"removeEventListener"in t?t.removeEventListener(e,n):"detachEvent"in t&&t.detachEvent("on"+e,n)}t.exports=function(t,e,n){i(e)?r(e.split(/\s+/g),(function(e){a(t,e,n)})):r(e,(function(e,n){a(t,n,e)}))}},function(t,e,n){"use strict";var i=n(21),r=n(60),s=n(29);n(61),i.createCalendar=function(t,e){return new s(t,e)},i.createRangePicker=function(t){return new r(t)},t.exports=i},function(t,e,n){"use strict";var i=n(36);t.exports=function(t,e){var n=i(e.prototype);n.constructor=t,t.prototype=n}},function(t,e,n){"use strict";t.exports=function(t){function e(){}return e.prototype=t,new e}},function(t,e,n){"use strict";var i=n(12),r=n(38);t.exports=function(t){return!i(t)&&!r(t)}},function(t,e,n){"use strict";t.exports=function(t){return null===t}},function(t,e,n){"use strict";t.exports=function(t){return t instanceof Function}},function(t,e,n){"use strict";var i=n(3),r=n(41),s=Element.prototype,a=s.matches||s.webkitMatchesSelector||s.mozMatchesSelector||s.msMatchesSelector||function(t){var e=this.document||this.ownerDocument;return i(this,r(e.querySelectorAll(t)))>-1};t.exports=function(t,e){return a.call(t,e)}},function(t,e,n){"use strict";var i=n(2);t.exports=function(t){var e;try{e=Array.prototype.slice.call(t)}catch(n){e=[],i(t,(function(t){e.push(t)}))}return e}},function(t,e,n){"use strict";t.exports=function(t){return t.replace(/([A-Z])/g,(function(t){return"-"+t.toLowerCase()}))}},function(e,n){e.exports=t},function(t,e,n){"use strict";var i=n(0),r=n(8),s=n(25),a=n(14),o=n(10),c=n(45),u=n(30),h=n(1),l=n(4),d=n(19),p=h.TYPE_DATE,_=h.TYPE_MONTH,f=h.TYPE_YEAR,m=i({init:function(t,e){this._container=l.getElement(t),this._innerElement=null,this._infoElement=null,this._showToday=e.showToday,this._showJumpButtons=e.showJumpButtons,this._yearMonthTitleFormatter=null,this._yearTitleFormatter=null,this._todayFormatter=null,this._setFormatters(o[e.language]),this._setEvents(e)},_setFormatters:function(t){this._yearMonthTitleFormatter=new u(t.titleFormat,t.titles),this._yearTitleFormatter=new u("yyyy",t.titles),this._todayFormatter=new u(t.todayFormat,t.titles)},_setEvents:function(){d.on(this._container,"click",this._onClickHandler,this)},_removeEvents:function(){this.off(),d.off(this._container,"click",this._onClickHandler)},_onClickHandler:function(t){var e=l.getTarget(t);s(e,".tui-calendar-btn")&&this.fire("click",t)},_getTitleClass:function(t){switch(t){case p:return"tui-calendar-title-month";case _:return"tui-calendar-title-year";case f:return"tui-calendar-title-year-to-year";default:return""}},_getTitleText:function(t,e){var n,i,r;switch(e){case p:return this._yearMonthTitleFormatter.format(t);case _:return this._yearTitleFormatter.format(t);case f:return n=t.getFullYear(),i=new Date(n-4,0,1),r=new Date(n+4,0,1),this._yearTitleFormatter.format(i)+" - "+this._yearTitleFormatter.format(r);default:return""}},changeLanguage:function(t){this._setFormatters(o[t])},render:function(t,e){var n={showToday:this._showToday,showJumpButtons:this._showJumpButtons,todayText:this._todayFormatter.format(new Date),isDateCalendar:e===p,titleClass:this._getTitleClass(e),title:this._getTitleText(t,e)};this._container.innerHTML=c(n).replace(/^\s+|\s+$/g,""),this._innerElement=this._container.querySelector(".tui-calendar-header-inner"),n.showToday&&(this._infoElement=this._container.querySelector(".tui-calendar-header-info"))},destroy:function(){this._removeEvents(),a(this._innerElement),a(this._infoElement),this._container=this._showToday=this._showJumpButtons=this._yearMonthTitleFormatter=this._yearTitleFormatter=this._todayFormatter=this._innerElement=this._infoElement=null}});r.mixin(m),t.exports=m},function(t,e,n){"use strict";var i=n(11);t.exports=function(t){return i('{{if isDateCalendar}} {{if showJumpButtons}}
    {{title}}
    {{else}}
    {{title}}
    {{/if}}{{else}}
    {{title}}
    {{/if}}{{if showToday}}

    {{todayText}}

    {{/if}}',t)}},function(t,e,n){"use strict";t.exports=function(t){return"object"==typeof HTMLElement?t&&(t instanceof HTMLElement||!!t.nodeType):!(!t||!t.nodeType)}},function(t,e,n){"use strict";var i=n(12),r=n(48),s=6048e5;t.exports=function(t,e){var n=location.hostname,a="TOAST UI "+t+" for "+n+": Statistics",o=window.localStorage.getItem(a);(i(window.tui)||!1!==window.tui.usageStatistics)&&(o&&!function(t){return(new Date).getTime()-t>s}(o)||(window.localStorage.setItem(a,(new Date).getTime()),setTimeout((function(){"interactive"!==document.readyState&&"complete"!==document.readyState||r("https://www.google-analytics.com/collect",{v:1,t:"event",tid:e,cid:n,dp:n,dh:t,el:t,ec:"use"})}),1e3)))}},function(t,e,n){"use strict";var i=n(23);t.exports=function(t,e){var n=document.createElement("img"),r="";return i(e,(function(t,e){r+="&"+e+"="+t})),r=r.substring(1),n.src=t+"?"+r,n.style.display="none",document.body.appendChild(n),document.body.removeChild(n),n}},function(t,e,n){"use strict";var i=n(2),r=n(0),s=n(50),a=n(52),o=n(54),c=n(1),u=c.TYPE_DATE,h=c.TYPE_MONTH,l=c.TYPE_YEAR,d=r({init:function(t,e){var n=e.language;this._container=t,this._dateLayer=new s(n),this._monthLayer=new a(n),this._yearLayer=new o(n),this._currentLayer=this._dateLayer},_getLayer:function(t){switch(t){case u:return this._dateLayer;case h:return this._monthLayer;case l:return this._yearLayer;default:return this._currentLayer}},_eachLayer:function(t){i([this._dateLayer,this._monthLayer,this._yearLayer],t)},changeLanguage:function(t){this._eachLayer((function(e){e.changeLanguage(t)}))},render:function(t,e){var n=this._getLayer(e);this._currentLayer.remove(),n.render(t,this._container),this._currentLayer=n},getDateElements:function(){return this._currentLayer.getDateElements()},destroy:function(){this._eachLayer((function(t){t.remove()})),this._container=this._currentLayer=this._dateLayer=this._monthLayer=this._yearLayer=null}});t.exports=d},function(t,e,n){"use strict";var i=n(0),r=n(5),s=n(51),a=n(20),o=n(1).TYPE_DATE,c=i(a,{init:function(t){a.call(this,t)},_type:o,_makeContext:function(t){var e,n,i=this._localeText.titles.D;return e=(t=t||new Date).getFullYear(),n=t.getMonth()+1,{Sun:i[0],Mon:i[1],Tue:i[2],Wed:i[3],Thu:i[4],Fri:i[5],Sat:i[6],year:e,month:n,weeks:this._getWeeks(e,n)}},_getWeeks:function(t,e){for(var n,i,s=0,a=[];s<6;s+=1){for(n=[],i=0;i<7;i+=1)n.push(r.getDateOfWeek(t,e,s,i));a.push(this._getWeek(t,e,n))}return a},_getWeek:function(t,e,n){for(var i,r,s=new Date(t,e-1,1),a=new Date(t,e,0),o=[],c=0,u=n.length;ca&&(r+=" tui-calendar-next-month"),0===i.getDay()?r+=" tui-calendar-sun":6===i.getDay()&&(r+=" tui-calendar-sat"),o.push({dayInMonth:i.getDate(),className:r,timestamp:i.getTime()});return o},render:function(t,e){var n=this._makeContext(t);e.innerHTML=s(n),this._element=e.firstChild},getDateElements:function(){return this._element.querySelectorAll(".tui-calendar-date")}});t.exports=c},function(t,e,n){"use strict";var i=n(11);t.exports=function(t){return i(' {{each weeks}} {{each @this}} {{/each}} {{/each}}
    Dates
    {{Sun}} {{Mon}} {{Tue}} {{Wed}} {{Thu}} {{Fri}} {{Sat}}
    {{@this["dayInMonth"]}}
    ',t)}},function(t,e,n){"use strict";var i=n(0),r=n(53),s=n(20),a=n(1).TYPE_MONTH,o=n(5),c=i(s,{init:function(t){s.call(this,t)},_type:a,_makeContext:function(t){var e=this._localeText.titles.MMM;return{year:t.getFullYear(),Jan:e[0],Feb:e[1],Mar:e[2],Apr:e[3],May:e[4],Jun:e[5],Jul:e[6],Aug:e[7],Sep:e[8],Oct:e[9],Nov:e[10],Dec:e[11],getFirstDayTimestamp:o.getFirstDayTimestamp}},render:function(t,e){var n=this._makeContext(t);e.innerHTML=r(n),this._element=e.firstChild},getDateElements:function(){return this._element.querySelectorAll(".tui-calendar-month")}});t.exports=c},function(t,e,n){"use strict";var i=n(11);t.exports=function(t){return i('
    Months
    {{Jan}} {{Feb}} {{Mar}} {{Apr}}
    {{May}} {{Jun}} {{Jul}} {{Aug}}
    {{Sep}} {{Oct}} {{Nov}} {{Dec}}
    ',t)}},function(t,e,n){"use strict";var i=n(0),r=n(55),s=n(20),a=n(1).TYPE_YEAR,o=n(5),c=i(s,{init:function(t){s.call(this,t)},_type:a,_makeContext:function(t){var e=t.getFullYear();return{yearGroups:[o.getRangeArr(e-4,e-2),o.getRangeArr(e-1,e+1),o.getRangeArr(e+2,e+4)],getFirstDayTimestamp:o.getFirstDayTimestamp}},render:function(t,e){var n=this._makeContext(t);e.innerHTML=r(n),this._element=e.firstChild},getDateElements:function(){return this._element.querySelectorAll(".tui-calendar-year")}});t.exports=c},function(t,e,n){"use strict";var i=n(11);t.exports=function(t){return i(' {{each yearGroups}} {{each @this}} {{/each}} {{/each}}
    Years
    {{@this}}
    ',t)}},function(t,e,n){"use strict";var i=n(2),r=n(0),s=n(15),a=n(57),o=n(4),c=r({init:function(t){t=t||[],this._ranges=[],i(t,(function(t){this.add(t[0],t[1])}),this)},contains:function(t,e){for(var n=0,i=this._ranges.length;n=t},exclude:function(t,e){t<=this.start&&e>=this.end?this.setEmpty():this.contains(t)?this.setRange(this.start,t-1):this.contains(e)&&this.setRange(e+1,this.end)}});t.exports=s},function(t,e,n){"use strict";var i=n(11);t.exports=function(t){return i('
    {{if timePicker}} {{if isTab}}
    {{else}}
    {{/if}} {{else}}
    {{/if}}
    ',t)}},function(t,e,n){"use strict";var i=n(0),r=n(8),s=n(31),a=n(33),o=n(30),c=n(19),u=n(4),h=i({init:function(t,e){e.format=e.format||"yyyy-MM-dd",this._input=u.getElement(t),this._id=e.id,this._titles=e.localeText.titles,this._formatter=new o(e.format,this._titles),this._setEvents()},changeLocaleTitles:function(t){this._titles=t},_setEvents:function(){this._input&&(s(this._input,"change",this._onChangeHandler,this),c.on(this._input,"click",this._onClickHandler,this))},_removeEvents:function(){this.off(),this._input&&(a(this._input,"change",this._onChangeHandler),c.off(this._input,"click",this._onClickHandler))},_onChangeHandler:function(){this.fire("change")},_onClickHandler:function(){this.fire("click")},is:function(t){return this._input===t},enable:function(){this._input&&this._input.removeAttribute("disabled")},disable:function(){this._input&&this._input.setAttribute("disabled",!0)},getFormat:function(){return this._formatter.getRawString()},setFormat:function(t){t&&(this._formatter=new o(t,this._titles))},clearText:function(){this._input&&(this._input.value="")},setDate:function(t){this._input&&(this._input.value=this._formatter.format(t))},getDate:function(){var t="";return this._input&&(t=this._input.value),this._formatter.parse(t)},destroy:function(){this._removeEvents(),this._input=this._id=this._formatter=null}});r.mixin(h),t.exports=h},function(t,e,n){"use strict";var i=n(2),r=n(0),s=n(8),a=n(16),o=n(26),c=n(18),u=n(7),h=n(21),l=n(5),d=n(1),p=n(4),_=d.CLASS_NAME_SELECTED,f=r({init:function(t){var e,n;if(e=(t=t||{}).startpicker,n=t.endpicker,!e)throw new Error('The "startpicker" option is required.');if(!n)throw new Error('The "endpicker" option is required.');this._startpicker=null,this._endpicker=null,this._initializePickers(t),this.setStartDate(e.date),this.setEndDate(n.date),this._syncRangesToEndpicker()},_initializePickers:function(t){var e=p.getElement(t.startpicker.container),n=p.getElement(t.endpicker.container),i=p.getElement(t.startpicker.input),r=p.getElement(t.endpicker.input),s=u({},t,{input:{element:i,format:t.format}}),a=u({},t,{input:{element:r,format:t.format}});this._startpicker=new h(e,s),this._startpicker.addCssClass("tui-rangepicker"),this._startpicker.on("change",this._onChangeStartpicker,this),this._startpicker.on("draw",this._onDrawPicker,this),this._endpicker=new h(n,a),this._endpicker.addCssClass("tui-rangepicker"),this._endpicker.on("change",this._onChangeEndpicker,this),this._endpicker.on("draw",this._onDrawPicker,this)},_onDrawPicker:function(t){var e=t.type,n=this._startpicker.getDate(),r=this._endpicker.getDate();n&&(r||(r=new Date(NaN)),i(t.dateElements,(function(t){var i=new Date(Number(o(t,"timestamp"))),s=l.inRange(n,r,i,e),a=l.isSame(n,i,e)||l.isSame(r,i,e);this._setRangeClass(t,s),this._setSelectedClass(t,a)}),this))},_setRangeClass:function(t,e){e?a(t,"tui-is-selected-range"):c(t,"tui-is-selected-range")},_setSelectedClass:function(t,e){e?a(t,_):c(t,_)},_syncRangesToEndpicker:function(){var t,e=this._startpicker.getDate();e?(t=this._startpicker.findOverlappedRange(l.cloneWithStartOf(e).getTime(),l.cloneWithEndOf(e).getTime()),this._endpicker.enable(),this._endpicker.setRanges([[e.getTime(),t[1].getTime()]])):(this._endpicker.setNull(),this._endpicker.disable())},_onChangeStartpicker:function(){this._syncRangesToEndpicker(),this.fire("change:start")},_onChangeEndpicker:function(){this.fire("change:end")},getStartpicker:function(){return this._startpicker},getEndpicker:function(){return this._endpicker},setStartDate:function(t){this._startpicker.setDate(t)},getStartDate:function(){return this._startpicker.getDate()},getEndDate:function(){return this._endpicker.getDate()},setEndDate:function(t){this._endpicker.setDate(t)},setRanges:function(t){this._startpicker.setRanges(t),this._syncRangesToEndpicker()},addRange:function(t,e){this._startpicker.addRange(t,e),this._syncRangesToEndpicker()},removeRange:function(t,e,n){this._startpicker.removeRange(t,e,n),this._syncRangesToEndpicker()},changeLanguage:function(t){this._startpicker.changeLanguage(t),this._endpicker.changeLanguage(t)},destroy:function(){this.off(),this._startpicker.destroy(),this._endpicker.destroy(),this._startpicker=this._endpicker=null}});s.mixin(f),t.exports=f},function(t,e,n){}])})); \ No newline at end of file diff --git a/public/admin/assets/js/calendar/tui-time-picker.min.js b/public/admin/assets/js/calendar/tui-time-picker.min.js new file mode 100644 index 0000000..b55a3ef --- /dev/null +++ b/public/admin/assets/js/calendar/tui-time-picker.min.js @@ -0,0 +1,7 @@ +/*! + * TOAST UI Time Picker + * @version 2.0.3 + * @author NHN FE Development Lab + * @license MIT + */ +!function(t,e){"object"==typeof exports&&"object"==typeof module?module.exports=e():"function"==typeof define&&define.amd?define([],e):"object"==typeof exports?exports.TimePicker=e():(t.tui=t.tui||{},t.tui.TimePicker=e())}(window,(function(){return function(t){var e={};function i(n){if(e[n])return e[n].exports;var s=e[n]={i:n,l:!1,exports:{}};return t[n].call(s.exports,s,s.exports,i),s.l=!0,s.exports}return i.m=t,i.c=e,i.d=function(t,e,n){i.o(t,e)||Object.defineProperty(t,e,{enumerable:!0,get:n})},i.r=function(t){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(t,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(t,"__esModule",{value:!0})},i.t=function(t,e){if(1&e&&(t=i(t)),8&e)return t;if(4&e&&"object"==typeof t&&t&&t.__esModule)return t;var n=Object.create(null);if(i.r(n),Object.defineProperty(n,"default",{enumerable:!0,value:t}),2&e&&"string"!=typeof t)for(var s in t)i.d(n,s,function(e){return t[e]}.bind(null,s));return n},i.n=function(t){var e=t&&t.__esModule?function(){return t.default}:function(){return t};return i.d(e,"a",e),e},i.o=function(t,e){return Object.prototype.hasOwnProperty.call(t,e)},i.p="dist",i(i.s=20)}([function(t,e,i){"use strict";var n=i(2);t.exports=function(t,e,i){var s,r;if(i=i||0,!n(e))return-1;if(Array.prototype.indexOf)return Array.prototype.indexOf.call(e,t,i);for(r=e.length,s=i;i>=0&&s-1?e[i][1]+=1:e.push([t,1]))},l.prototype._forgetContext=function(t){var e,i;s(t)&&(e=this._safeContext(),(i=this._indexOfContext(t))>-1&&(e[i][1]-=1,e[i][1]<=0&&e.splice(i,1)))},l.prototype._bindEvent=function(t,e,i){var n=this._safeEvent(t);this._memorizeContext(i),n.push(this._getHandlerItem(e,i))},l.prototype.on=function(t,e,i){var n=this;r(t)?(t=t.split(h),a(t,(function(t){n._bindEvent(t,e,i)}))):o(t)&&(i=e,a(t,(function(t,e){n.on(e,t,i)})))},l.prototype.once=function(t,e,i){var n=this;if(o(t))return i=e,void a(t,(function(t,e){n.once(e,t,i)}));this.on(t,(function s(){e.apply(i,arguments),n.off(t,s,i)}),i)},l.prototype._spliceMatches=function(t,e){var i,n=0;if(u(t))for(i=t.length;n0},l.prototype.getListenerLength=function(t){return this._safeEvent(t).length},t.exports=l},function(t,e,i){"use strict";var n=i(27),s=i(1);t.exports=function(t,e){var i;return e||(e=t,t=null),i=e.init||function(){},t&&n(i,t),e.hasOwnProperty("static")&&(s(i,e.static),delete e.static),s(i.prototype,e),i}},function(t,e,i){"use strict";var n=i(6),s=i(4),r=i(17);function o(t,e,i,n){function o(e){i.call(n||t,e||window.event)}"addEventListener"in t?t.addEventListener(e,o):"attachEvent"in t&&t.attachEvent("on"+e,o),function(t,e,i,n){var o=r(t,e),u=!1;s(o,(function(t){return t.handler!==i||(u=!0,!1)})),u||o.push({handler:i,wrappedHandler:n})}(t,e,i,o)}t.exports=function(t,e,i,r){n(e)?s(e.split(/\s+/g),(function(e){o(t,e,i,r)})):s(e,(function(e,n){o(t,n,e,i)}))}},function(t,e,i){"use strict";var n=i(6),s=i(4),r=i(17);function o(t,e,i){var n,o=r(t,e);i?(s(o,(function(s,r){return i!==s.handler||(u(t,e,s.wrappedHandler),n=r,!1)})),o.splice(n,1)):(s(o,(function(i){u(t,e,i.wrappedHandler)})),o.splice(0,o.length))}function u(t,e,i){"removeEventListener"in t?t.removeEventListener(e,i):"detachEvent"in t&&t.detachEvent("on"+e,i)}t.exports=function(t,e,i){n(e)?s(e.split(/\s+/g),(function(e){o(t,e,i)})):s(e,(function(e,i){o(t,i,e)}))}},function(t,e,i){"use strict";var n=i(30);t.exports=function(t,e){var i=t.parentNode;if(n(t,e))return t;for(;i&&i!==document;){if(n(i,e))return i;i=i.parentNode}return null}},function(t,e,i){"use strict";t.exports=function(t){t&&t.parentNode&&t.parentNode.removeChild(t)}},function(t,e,i){"use strict";t.exports=function(t){return"object"==typeof HTMLElement?t&&(t instanceof HTMLElement||!!t.nodeType):!(!t||!t.nodeType)}},function(t,e,i){"use strict";var n=i(0),s=i(35),r=0,o={getUniqueId:function(){return r+=1},formatTime:function(t,e){return t=String(t),n(e,["hh","mm"])>=0&&1===t.length?"0"+t:t},getMeridiemHour:function(t){return 0===(t%=12)&&(t=12),t},getRangeArr:function(t,e,i){var n,s=[];if(i=i||1,t>e)for(n=e;n>=t;n-=i)s.push(n);else for(n=t;n<=e;n+=i)s.push(n);return s},getTarget:function(t){return t.target||t.srcElement},sendHostName:function(){s("time-picker","UA-129987462-1")}};t.exports=o},function(t,e,i){"use strict";t.exports=function(t,e,i){var n;for(n in i=i||null,t)if(t.hasOwnProperty(n)&&!1===e.call(i,t[n],n,t))break}},function(t,e,i){"use strict";var n="_feEventKey";t.exports=function(t,e){var i,s=t[n];return s||(s=t[n]={}),(i=s[e])||(i=s[e]=[]),i}},function(t,e,i){"use strict";var n=i(5);t.exports=function(t){return t&&t.className?n(t.className.baseVal)?t.className:t.className.baseVal:""}},function(t,e,i){"use strict";var n=i(2),s=i(5);t.exports=function(t,e){e=(e=n(e)?e.join(" "):e).replace(/^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g,""),s(t.className.baseVal)?t.className=e:t.className.baseVal=e}},function(t,e,i){"use strict";i(21),t.exports=i(22)},function(t,e,i){},function(t,e,i){"use strict";var n=i(0),s=i(3),r=i(8),o=i(9),u=i(1),c=i(10),a=i(11),h=i(29),l=i(12),m=i(13),p=i(32),f=i(14),d=i(33),_=i(34),v=i(38),x=i(15),g=i(40),y=i(41),b=i(42),I=o({static:{localeTexts:g},init:function(t,e){e=function(t){return u({language:"en",initialHour:0,initialMinute:0,showMeridiem:!0,inputType:"selectbox",hourStep:1,minuteStep:1,meridiemPosition:"right",format:"h:m",disabledHours:[],usageStatistics:!0},t)}(e),this._id=x.getUniqueId(),this._container=f(t)?t:document.querySelector(t),this._element=null,this._meridiemElement=null,this._amEl=null,this._pmEl=null,this._showMeridiem=e.showMeridiem,this._meridiemPosition=e.meridiemPosition,this._hourInput=null,this._minuteInput=null,this._hour=e.initialHour,this._minute=e.initialMinute,this._hourStep=e.hourStep,this._minuteStep=e.minuteStep,this._disabledHours=e.disabledHours,this._inputType=e.inputType,this._localeText=g[e.language],this._format=this._getValidTimeFormat(e.format),this._render(),this._setEvents(),e.usageStatistics&&x.sendHostName()},_setEvents:function(){this._hourInput.on("change",this._onChangeTimeInput,this),this._minuteInput.on("change",this._onChangeTimeInput,this),this._showMeridiem&&("selectbox"===this._inputType?c(this._meridiemElement.querySelector("select"),"change",this._onChangeMeridiem,this):"spinbox"===this._inputType&&c(this._meridiemElement,"click",this._onChangeMeridiem,this))},_removeEvents:function(){this.off(),this._hourInput.destroy(),this._minuteInput.destroy(),this._showMeridiem&&("selectbox"===this._inputType?a(this._meridiemElement.querySelector("select"),"change",this._onChangeMeridiem,this):"spinbox"===this._inputType&&a(this._meridiemElement,"click",this._onChangeMeridiem,this))},_render:function(){var t={showMeridiem:this._showMeridiem,isSpinbox:"spinbox"===this._inputType};this._showMeridiem&&u(t,{meridiemElement:this._makeMeridiemHTML()}),this._element&&m(this._element),this._container.innerHTML=y(t),this._element=this._container.firstChild,this._renderTimeInputs(),this._showMeridiem&&this._setMeridiemElement()},_setMeridiemElement:function(){"left"===this._meridiemPosition&&h(this._element,"tui-has-left"),this._meridiemElement=this._element.querySelector(".tui-timepicker-meridiem"),this._amEl=this._meridiemElement.querySelector('[value="AM"]'),this._pmEl=this._meridiemElement.querySelector('[value="PM"]'),this._syncToMeridiemElements()},_makeMeridiemHTML:function(){var t=this._localeText;return b({am:t.am,pm:t.pm,radioId:this._id,isSpinbox:"spinbox"===this._inputType})},_renderTimeInputs:function(){var t=this._hour,e=this._showMeridiem,i=this._element.querySelector(".tui-timepicker-hour"),n=this._element.querySelector(".tui-timepicker-minute"),s="selectbox"===this._inputType.toLowerCase()?v:_,r=this._format.split(":"),o=this._getHourItems();e&&(t=x.getMeridiemHour(t)),this._hourInput=new s(i,{initialValue:t,items:o,format:r[0],disabledItems:this._makeDisabledStatItems(o)}),this._minuteInput=new s(n,{initialValue:this._minute,items:this._getMinuteItems(),format:r[1]})},_makeDisabledStatItems:function(t){var e=[],i=this._disabledHours.concat();return this._showMeridiem&&(i=this._meridiemableTime(i)),s(t,(function(t){e.push(n(t,i)>=0)})),e},_meridiemableTime:function(t){var e=0,i=0,n=11,r=[];return this._hour>=12&&(e=12,i=12,n=23),s(t,(function(t){t>=i&&t<=n&&r.push(t-e==0?12:t-e)})),r},_getValidTimeFormat:function(t){return t.match(/^[h]{1,2}:[m]{1,2}$/i)?t.toLowerCase():"h:m"},_syncToMeridiemElements:function(){var t=this._hour>=12?this._pmEl:this._amEl,e=t===this._pmEl?this._amEl:this._pmEl;t.setAttribute("selected",!0),t.setAttribute("checked",!0),h(t,"tui-timepicker-meridiem-checked"),e.removeAttribute("selected"),e.removeAttribute("checked"),p(e,"tui-timepicker-meridiem-checked")},_syncToInputs:function(){var t=this._hour,e=this._minute;this._showMeridiem&&(t=x.getMeridiemHour(t)),this._hourInput.setValue(t),this._minuteInput.setValue(e)},_onChangeMeridiem:function(t){var e=this._hour,i=x.getTarget(t);i.value&&l(i,".tui-timepicker-meridiem")&&(e=this._to24Hour("PM"===i.value,e),this.setTime(e,this._minute),this._setDisabledHours())},_onChangeTimeInput:function(){var t=this._hourInput.getValue(),e=this._minuteInput.getValue(),i=this._hour>=12;this._showMeridiem&&(t=this._to24Hour(i,t)),this.setTime(t,e)},_to24Hour:function(t,e){return e%=12,t&&(e+=12),e},_setDisabledHours:function(){var t=this._getHourItems(),e=this._makeDisabledStatItems(t);this._hourInput.setDisabledItems(e)},_getHourItems:function(){var t=this._hourStep;return this._showMeridiem?x.getRangeArr(1,12,t):x.getRangeArr(0,23,t)},_getMinuteItems:function(){return x.getRangeArr(0,59,this._minuteStep)},_validItems:function(t,e){return!(!d(t)||!d(e))&&(this._showMeridiem&&(t=x.getMeridiemHour(t)),n(t,this._getHourItems())>-1&&n(e,this._getMinuteItems())>-1)},setHourStep:function(t){this._hourStep=t,this._hourInput.fire("changeItems",this._getHourItems())},getHourStep:function(){return this._hourStep},setMinuteStep:function(t){this._minuteStep=t,this._minuteInput.fire("changeItems",this._getMinuteItems())},getMinuteStep:function(){return this._minuteStep},show:function(){p(this._element,"tui-hidden")},hide:function(){h(this._element,"tui-hidden")},setHour:function(t){return this.setTime(t,this._minute)},setMinute:function(t){return this.setTime(this._hour,t)},setTime:function(t,e){this._validItems(t,e)&&(this._hour=t,this._minute=e,this._syncToInputs(),this._showMeridiem&&this._syncToMeridiemElements(),this.fire("change",{hour:this._hour,minute:this._minute}))},getHour:function(){return this._hour},getMinute:function(){return this._minute},changeLanguage:function(t){this._localeText=g[t],this._render()},destroy:function(){this._removeEvents(),m(this._element),this._container=this._showMeridiem=this._hourInput=this._minuteInput=this._hour=this._minute=this._inputType=this._element=this._meridiemElement=this._amEl=this._pmEl=null}});r.mixin(I),t.exports=I},function(t,e,i){"use strict";var n=i(5),s=i(24);t.exports=function(t){return!n(t)&&!s(t)}},function(t,e,i){"use strict";t.exports=function(t){return null===t}},function(t,e,i){"use strict";t.exports=function(t){return t===Object(t)}},function(t,e,i){"use strict";t.exports=function(t){return t instanceof Function}},function(t,e,i){"use strict";var n=i(28);t.exports=function(t,e){var i=n(e.prototype);i.constructor=t,t.prototype=i}},function(t,e,i){"use strict";t.exports=function(t){function e(){}return e.prototype=t,new e}},function(t,e,i){"use strict";var n=i(4),s=i(0),r=i(18),o=i(19);t.exports=function(t){var e,i=Array.prototype.slice.call(arguments,1),u=t.classList,c=[];u?n(i,(function(e){t.classList.add(e)})):((e=r(t))&&(i=[].concat(e.split(/\s+/),i)),n(i,(function(t){s(t,c)<0&&c.push(t)})),o(t,c))}},function(t,e,i){"use strict";var n=i(0),s=i(31),r=Element.prototype,o=r.matches||r.webkitMatchesSelector||r.mozMatchesSelector||r.msMatchesSelector||function(t){var e=this.document||this.ownerDocument;return n(this,s(e.querySelectorAll(t)))>-1};t.exports=function(t,e){return o.call(t,e)}},function(t,e,i){"use strict";var n=i(3);t.exports=function(t){var e;try{e=Array.prototype.slice.call(t)}catch(i){e=[],n(t,(function(t){e.push(t)}))}return e}},function(t,e,i){"use strict";var n=i(3),s=i(0),r=i(18),o=i(19);t.exports=function(t){var e,i,u=Array.prototype.slice.call(arguments,1),c=t.classList;c?n(u,(function(t){c.remove(t)})):(e=r(t).split(/\s+/),i=[],n(e,(function(t){s(t,u)<0&&i.push(t)})),o(t,i))}},function(t,e,i){"use strict";t.exports=function(t){return"number"==typeof t||t instanceof Number}},function(t,e,i){"use strict";var n=i(0),s=i(3),r=i(8),o=i(9),u=i(1),c=i(10),a=i(11),h=i(12),l=i(13),m=i(14),p=i(15),f=i(37),d=o({init:function(t,e){e=u({items:[]},e),this._container=m(t)?t:document.querySelector(t),this._element=null,this._inputElement=null,this._items=e.items,this._disabledItems=e.disabledItems||[],this._selectedIndex=Math.max(0,n(e.initialValue,this._items)),this._format=e.format,this._render(),this._setEvents()},_render:function(){var t,e=n(this.getValue(),this._items);this._disabledItems[e]&&(this._selectedIndex=this._findEnabledIndex()),t={maxLength:this._getMaxLength(),initialValue:this.getValue(),format:this._format,formatTime:p.formatTime},this._container.innerHTML=f(t),this._element=this._container.firstChild,this._inputElement=this._element.querySelector("input")},_findEnabledIndex:function(){return n(!1,this._disabledItems)},_getMaxLength:function(){var t=[];return s(this._items,(function(e){t.push(String(e).length)})),Math.max.apply(null,t)},setDisabledItems:function(t){this._disabledItems=t,this._changeToInputValue()},_setEvents:function(){c(this._container,"click",this._onClickHandler,this),c(this._inputElement,"keydown",this._onKeydownInputElement,this),c(this._inputElement,"change",this._onChangeHandler,this),this.on("changeItems",(function(t){this._items=t,this._render()}),this)},_removeEvents:function(){this.off(),a(this._container,"click",this._onClickHandler,this),a(this._inputElement,"keydown",this._onKeydownInputElement,this),a(this._inputElement,"change",this._onChangeHandler,this)},_onClickHandler:function(t){var e=p.getTarget(t);h(e,".tui-timepicker-btn-down")?this._setNextValue(!0):h(e,".tui-timepicker-btn-up")&&this._setNextValue(!1)},_setNextValue:function(t){var e=this._selectedIndex;e=t?e?e-1:this._items.length-1:er}(u)||(window.localStorage.setItem(o,(new Date).getTime()),setTimeout((function(){"interactive"!==document.readyState&&"complete"!==document.readyState||s("https://www.google-analytics.com/collect",{v:1,t:"event",tid:e,cid:i,dp:i,dh:t,el:t,ec:"use"})}),1e3)))}},function(t,e,i){"use strict";var n=i(16);t.exports=function(t,e){var i=document.createElement("img"),s="";return n(e,(function(t,e){s+="&"+e+"="+t})),s=s.substring(1),i.src=t+"?"+s,i.style.display="none",document.body.appendChild(i),document.body.removeChild(i),i}},function(t,e,i){"use strict";var n=i(7);t.exports=function(t){return n('
    ',t)}},function(t,e,i){"use strict";var n=i(0),s=i(8),r=i(9),o=i(1),u=i(10),c=i(11),a=i(12),h=i(13),l=i(14),m=i(15),p=i(39),f=r({init:function(t,e){e=o({items:[]},e),this._container=l(t)?t:document.querySelector(t),this._items=e.items||[],this._disabledItems=e.disabledItems||[],this._selectedIndex=Math.max(0,n(e.initialValue,this._items)),this._format=e.format,this._element=null,this._render(),this._setEvents()},_render:function(){var t;this._changeEnabledIndex(),t={items:this._items,format:this._format,initialValue:this.getValue(),disabledItems:this._disabledItems,formatTime:m.formatTime,equals:function(t,e){return t===e}},this._element&&this._removeElement(),this._container.innerHTML=p(t),this._element=this._container.firstChild,u(this._element,"change",this._onChangeHandler,this)},_changeEnabledIndex:function(){var t=n(this.getValue(),this._items);this._disabledItems[t]&&(this._selectedIndex=n(!1,this._disabledItems))},setDisabledItems:function(t){this._disabledItems=t,this._render()},_setEvents:function(){this.on("changeItems",(function(t){this._items=t,this._render()}),this)},_removeEvents:function(){this.off()},_removeElement:function(){c(this._element,"change",this._onChangeHandler,this),h(this._element)},_onChangeHandler:function(t){a(m.getTarget(t),"select")&&this._setNewValue()},_setNewValue:function(){var t=Number(this._element.value);this._selectedIndex=n(t,this._items),this.fire("change",{value:t})},getValue:function(){return this._items[this._selectedIndex]},setValue:function(t){var e=n(t,this._items);e>-1&&e!==this._selectedIndex&&(this._selectedIndex=e,this._element.value=t,this._setNewValue())},destroy:function(){this._removeEvents(),this._removeElement(),this._container=this._items=this._selectedIndex=this._element=null}});s.mixin(f),t.exports=f},function(t,e,i){"use strict";var n=i(7);t.exports=function(t){return n('',t)}},function(t,e,i){"use strict";t.exports={en:{am:"AM",pm:"PM"},ko:{am:"ì˜¤ì „",pm:"오후"}}},function(t,e,i){"use strict";var n=i(7);t.exports=function(t){return n('
    {{if isSpinbox}}
    :
    {{if showMeridiem}} {{meridiemElement}} {{/if}} {{else}}
    :
    {{if showMeridiem}} {{meridiemElement}} {{/if}} {{/if}}
    ',t)}},function(t,e,i){"use strict";var n=i(7);t.exports=function(t){return n('{{if isSpinbox}}
    {{else}}
    {{/if}}',t)}}])})); \ No newline at end of file diff --git a/public/admin/assets/js/chart-widget.js b/public/admin/assets/js/chart-widget.js new file mode 100644 index 0000000..89de177 --- /dev/null +++ b/public/admin/assets/js/chart-widget.js @@ -0,0 +1,777 @@ + /*Line chart*/ + var optionslinechart = { + chart: { + toolbar: { + show: false + }, + height: 170, + type: 'area' + }, + dataLabels: { + enabled: false + }, + stroke: { + curve: 'smooth' + }, + xaxis: { + show: false, + type: 'datetime', + categories: ["2018-09-19T00:00:00", "2018-09-19T01:30:00", "2018-09-19T02:30:00", "2018-09-19T03:30:00", "2018-09-19T04:30:00", "2018-09-19T05:30:00", "2018-09-19T06:30:00"], + labels: { + show: false, + }, + axisBorder: { + show: false, + }, + }, + grid: { + show: false, + padding: { + left: 0, + right: 0, + bottom: -40 + } + }, + fill: { + type: 'gradient', + gradient: { + shade: 'light', + type: 'vertical', + shadeIntensity: 0.4, + inverseColors: false, + opacityFrom: 0.8, + opacityTo: 0.2, + stops: [0, 100] + }, + }, + colors: [vihoAdminConfig.primary], + series: [{ + data: [1.2, 2.3, 1.7, 3.2, 1.8, 3.2, 1] + }], + tooltip: { + x: { + format: 'dd/MM/yy HH:mm' + } + } + }; + var chartlinechart = new ApexCharts(document.querySelector("#chart-widget1"), optionslinechart); + chartlinechart.render(); + + /*Line chart2*/ + var optionslinechart2 = { + chart: { + toolbar: { + show: false + }, + height: 170, + type: 'area' + }, + dataLabels: { + enabled: false + }, + stroke: { + curve: 'smooth' + }, + xaxis: { + show: false, + type: 'datetime', + categories: ["2018-09-19T00:00:00", "2018-09-19T01:30:00", "2018-09-19T02:30:00", "2018-09-19T03:30:00", "2018-09-19T04:30:00", "2018-09-19T05:30:00", "2018-09-19T06:30:00"], + labels: { + show: false, + }, + axisBorder: { + show: false, + }, + }, + grid: { + show: false, + padding: { + left: 0, + right: 0, + bottom: -40 + } + }, + fill: { + type: 'gradient', + gradient: { + shade: 'light', + type: 'vertical', + shadeIntensity: 0.4, + inverseColors: false, + opacityFrom: 0.8, + opacityTo: 0.2, + stops: [0, 100] + } + }, + colors: [vihoAdminConfig.secondary], + series: [{ + name: 'series1', + data: [12, 5, 10, 5, 16, 11, 20] + }], + tooltip: { + x: { + format: 'dd/MM/yy HH:mm' + } + } + }; + var chartlinechart2 = new ApexCharts(document.querySelector("#chart-widget2"), optionslinechart2); + chartlinechart2.render(); + + /*Line chart3*/ + var optionslinechart3 = { + chart: { + toolbar: { + show: false + }, + height: 170, + type: 'area' + }, + dataLabels: { + enabled: false + }, + stroke: { + curve: 'smooth' + }, + xaxis: { + show: false, + type: 'datetime', + categories: ["2018-09-19T00:00:00", "2018-09-19T01:30:00", "2018-09-19T02:30:00", "2018-09-19T03:30:00", "2018-09-19T04:30:00", "2018-09-19T05:30:00", "2018-09-19T06:30:00"], + labels: { + show: false, + }, + axisBorder: { + show: false, + }, + }, + grid: { + show: false, + padding: { + left: 0, + right: 0, + bottom: -40 + } + }, + fill: { + colors: [vihoAdminConfig.primary], + type: 'gradient', + gradient: { + shade: 'light', + type: 'vertical', + shadeIntensity: 0.4, + inverseColors: false, + opacityFrom: 0.8, + opacityTo: 0.2, + stops: [0, 100] + }, + }, + colors: [vihoAdminConfig.primary], + series: [{ + data: [24, 55, 21, 67, 22, 43, 21] + }], + tooltip: { + x: { + format: 'dd/MM/yy HH:mm' + } + } + }; + var chartlinechart3 = new ApexCharts(document.querySelector("#chart-widget3"), optionslinechart3); + chartlinechart3.render(); + + // column chart + + var options = { + series: [{ + name: 'Net Profit', + data: [44, 55, 57, 56, 61, 58, 63, 60, 66] + }, { + name: 'Revenue', + data: [76, 85, 101, 98, 87, 105, 91, 114, 94] + } ], + chart: { + type: 'bar', + height: 360 + }, + plotOptions: { + bar: { + horizontal: false, + columnWidth: '55%', + endingShape: 'rounded' + }, + }, + dataLabels: { + enabled: false + }, + stroke: { + show: true, + width: 2, + colors: ['transparent'] + }, + xaxis: { + categories: ['Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep', 'Oct'], + }, + yaxis: { + title: { + text: '$ (thousands)' + } + }, + + fill: { + opacity: 1, + colors: [vihoAdminConfig.primary, vihoAdminConfig.secondary], + type: 'gradient', + gradient: { + shade: 'light', + type: 'vertical', + shadeIntensity: 0.4, + inverseColors: false, + opacityFrom: 0.9, + opacityTo: 0.8, + stops: [0, 100] + } + }, + colors: [vihoAdminConfig.primary, vihoAdminConfig.secondary], + tooltip: { + y: { + formatter: function (val) { + return "$ " + val + " thousands" + } + } + } + }; + + var chartlinechart4 = new ApexCharts(document.querySelector("#chart-widget4"), options); + chartlinechart4.render(); + + // earning chart + var optionsearningchart = { + chart: { + height: 360, + type: 'radialBar', + }, + plotOptions: { + radialBar: { + startAngle: -135, + endAngle: 135, + dataLabels: { + name: { + fontSize: '16px', + color: '#000000', + offsetY: 120 + }, + value: { + offsetY: 76, + fontSize: '22px', + color: '#000000', + formatter: function(val) { + return val + "%"; + } + } + } + } + }, + fill: { + opacity: 1 + }, + colors: [vihoAdminConfig.primary], + stroke: { + dashArray: 4 + }, + series: [70], + labels: ['Median Ratio'], + } + var options = { + series: [70], + chart: { + height: 350, + type: 'radialBar', + }, + plotOptions: { + radialBar: { + hollow: { + margin: 15, + size: '70%', + image: '../assets/images/email-template/success.png', + imageWidth: 64, + imageHeight: 64, + imageClipped: false + }, + dataLabels: { + name: { + show: false, + color: '#fff' + }, + value: { + show: true, + color: '#333', + offsetY: 70, + fontSize: '22px' + } + } + } + }, + fill: { + type: 'image', + image: { + src: ['../assets/images/user-card/5.jpg'], + } + }, + stroke: { + lineCap: 'round' + }, + labels: ['Volatility'], + }; + var chart = new ApexCharts(document.querySelector("#chart-widget5"), options); + chart.render(); + + // product chart + var optionsproductchart = { + chart: { + height: 320, + type: 'line' + }, + stroke: { + curve: 'smooth' + }, + series: [{ + name: 'TEAM A', + type: 'area', + data: [44, 55, 31, 47, 31, 43, 26, 41, 31, 47, 33] + }, { + name: 'TEAM B', + type: 'line', + data: [55, 69, 45, 61, 43, 54, 37, 52, 44, 61, 43] + }], + fill: { + colors: [vihoAdminConfig.primary, vihoAdminConfig.secondary], + type: 'gradient', + gradient: { + shade: 'light', + type: 'vertical', + shadeIntensity: 0.4, + inverseColors: false, + opacityFrom: 0.9, + opacityTo: 0.8, + stops: [0, 100] + } + }, + colors: [vihoAdminConfig.primary, vihoAdminConfig.secondary], + labels: ['01', '02', '03', '04', '05', '06', '07', '08', '09 ', '10', '11', '12'], + markers: { + size: 0 + }, + yaxis: [{ + title: { + text: 'Series A' + } + }, { + opposite: true, + title: { + text: 'Series B' + } + }], + tooltip: { + shared: true, + intersect: false, + y: { + formatter: function(y) { + if (typeof y !== "undefined") { + return y.toFixed(0) + " points"; + } + return y; + } + } + } + } + var chartproductchart = new ApexCharts(document.querySelector("#chart-widget6"), optionsproductchart); + chartproductchart.render(); + + // Turnover chart + var optionsturnoverchart = { + chart: { + height: 320, + type: 'area', + zoom: { + enabled: false + } + }, + dataLabels: { + enabled: false + }, + stroke: { + curve: 'straight' + }, + fill: { + colors: [vihoAdminConfig.primary], + type: 'gradient', + gradient: { + shade: 'light', + type: 'vertical', + shadeIntensity: 0.4, + inverseColors: false, + opacityFrom: 0.9, + opacityTo: 0.8, + stops: [0, 100] + } + }, + series: [{ + name: "STOCK ABC", + data: series.monthDataSeries1.prices + }], + colors: [vihoAdminConfig.primary], + labels: series.monthDataSeries1.dates, + xaxis: { + type: 'datetime' + }, + yaxis: { + opposite: false + }, + legend: { + horizontalAlign: 'left' + } + } + var chartturnoverchart = new ApexCharts(document.querySelector("#chart-widget7"), optionsturnoverchart); + chartturnoverchart.render(); + + // sales chart + var optionssaleschart = { + fill: { + type: 'gradient', + gradient: { + shade: 'dark', + type: 'Reflected', + shadeIntensity: 0.1, + inverseColors: false, + opacityFrom: 1, + opacityTo: 0.8, + stops: [0, 100] + } + }, + colors: [vihoAdminConfig.primary, vihoAdminConfig.secondary, '#e2c636'], + chart: { + height: 320, + type: 'radar', + dropShadow: { + enabled: true, + blur: 1, + left: 1, + top: 1 + } + }, + series: [{ + name: 'Series 1', + data: [80, 50, 30, 40, 100, 20], + }, { + name: 'Series 2', + data: [20, 30, 40, 80, 20, 80], + }, { + name: 'Series 3', + data: [44, 76, 78, 13, 43, 10], + }], + + stroke: { + width: 0 + }, + markers: { + size: 0 + }, + labels: ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun'], + } + var chartsaleschart = new ApexCharts(document.querySelector("#chart-widget8"), optionssaleschart); + chartsaleschart.render(); + + // user chart + function generateData(baseval, count, yrange) { + var i = 0; + var series = []; + while (i < count) { + var x = Math.floor(Math.random() * (750 - 1 + 1)) + 1;; + var y = Math.floor(Math.random() * (yrange.max - yrange.min + 1)) + yrange.min; + var z = Math.floor(Math.random() * (75 - 15 + 1)) + 15; + series.push([x, y, z]); + baseval += 86400000; + i++; + } + return series; + } + var optionsuserchart = { + chart: { + toolbar: { + show: false + }, + height: 320, + type: 'bubble', + }, + dataLabels: { + enabled: false + }, + series: [{ + name: 'Bubble1', + data: generateData(new Date('11 Feb 2017 GMT').getTime(), 20, { + min: 10, + max: 60 + }) + }, { + name: 'Bubble2', + data: generateData(new Date('11 Feb 2017 GMT').getTime(), 20, { + min: 10, + max: 60 + }) + }, { + name: 'Bubble3', + data: generateData(new Date('11 Feb 2017 GMT').getTime(), 20, { + min: 10, + max: 60 + }) + }, { + name: 'Bubble4', + data: generateData(new Date('11 Feb 2017 GMT').getTime(), 20, { + min: 10, + max: 60 + }) + }], + fill: { + type: 'gradient', + gradient: { + shade: 'dark', + type: 'horizontal', + shadeIntensity: 0.4, + inverseColors: false, + opacityFrom: 1, + opacityTo: 0.7, + stops: [0, 100] + } + }, + colors: [vihoAdminConfig.primary, vihoAdminConfig.secondary, '#222222', '#e2c636'], + xaxis: { + tickAmount: 12, + type: 'category', + }, + yaxis: { + max: 70 + } + } + var chartuserchart = new ApexCharts(document.querySelector("#chart-widget9"), optionsuserchart); + chartuserchart.render(); + + // browser-candlestick chart + var optionscandlestickchart = { + chart: { + toolbar: { + show: false + }, + height: 500, + type: 'candlestick', + }, + plotOptions: { + candlestick: { + colors: { + upward: vihoAdminConfig.primary, + downward: vihoAdminConfig.secondary + } + } + }, + fill: { + opacity: 0.9, + colors: ['#fb2e63'], + }, + series: [{ + data: [{ + x: new Date(1538778600000), + y: [6629.81, 6650.5, 6623.04, 6633.33] + }, { + x: new Date(1538780400000), + y: [6632.01, 6643.59, 6620, 6630.11] + }, { + x: new Date(1538782200000), + y: [6630.71, 6648.95, 6623.34, 6635.65] + }, { + x: new Date(1538784000000), + y: [6635.65, 6651, 6629.67, 6638.24] + }, { + x: new Date(1538785800000), + y: [6638.24, 6640, 6620, 6624.47] + }, { + x: new Date(1538787600000), + y: [6624.53, 6636.03, 6621.68, 6624.31] + }, { + x: new Date(1538789400000), + y: [6624.61, 6632.2, 6617, 6626.02] + }, { + x: new Date(1538791200000), + y: [6627, 6627.62, 6584.22, 6603.02] + }, { + x: new Date(1538793000000), + y: [6605, 6608.03, 6598.95, 6604.01] + }, { + x: new Date(1538794800000), + y: [6604.5, 6614.4, 6602.26, 6608.02] + }, { + x: new Date(1538796600000), + y: [6608.02, 6610.68, 6601.99, 6608.91] + }, { + x: new Date(1538798400000), + y: [6608.91, 6618.99, 6608.01, 6612] + }, { + x: new Date(1538800200000), + y: [6612, 6615.13, 6605.09, 6612] + }, { + x: new Date(1538802000000), + y: [6612, 6624.12, 6608.43, 6622.95] + }, { + x: new Date(1538803800000), + y: [6623.91, 6623.91, 6615, 6615.67] + }, { + x: new Date(1538805600000), + y: [6618.69, 6618.74, 6610, 6610.4] + }, { + x: new Date(1538807400000), + y: [6611, 6622.78, 6610.4, 6614.9] + }, { + x: new Date(1538809200000), + y: [6614.9, 6626.2, 6613.33, 6623.45] + }, { + x: new Date(1538811000000), + y: [6623.48, 6627, 6618.38, 6620.35] + }, { + x: new Date(1538812800000), + y: [6619.43, 6620.35, 6610.05, 6615.53] + }, { + x: new Date(1538814600000), + y: [6615.53, 6617.93, 6610, 6615.19] + }, { + x: new Date(1538816400000), + y: [6615.19, 6621.6, 6608.2, 6620] + }, { + x: new Date(1538818200000), + y: [6619.54, 6625.17, 6614.15, 6620] + }, { + x: new Date(1538820000000), + y: [6620.33, 6634.15, 6617.24, 6624.61] + }, { + x: new Date(1538821800000), + y: [6625.95, 6626, 6611.66, 6617.58] + }, { + x: new Date(1538823600000), + y: [6619, 6625.97, 6595.27, 6598.86] + }, { + x: new Date(1538825400000), + y: [6598.86, 6598.88, 6570, 6587.16] + }, { + x: new Date(1538827200000), + y: [6588.86, 6600, 6580, 6593.4] + }, { + x: new Date(1538829000000), + y: [6593.99, 6598.89, 6585, 6587.81] + }, { + x: new Date(1538830800000), + y: [6587.81, 6592.73, 6567.14, 6578] + }, { + x: new Date(1538832600000), + y: [6578.35, 6581.72, 6567.39, 6579] + }, { + x: new Date(1538834400000), + y: [6579.38, 6580.92, 6566.77, 6575.96] + }, { + x: new Date(1538836200000), + y: [6575.96, 6589, 6571.77, 6588.92] + }, { + x: new Date(1538838000000), + y: [6588.92, 6594, 6577.55, 6589.22] + }, { + x: new Date(1538839800000), + y: [6589.3, 6598.89, 6589.1, 6596.08] + }, { + x: new Date(1538841600000), + y: [6597.5, 6600, 6588.39, 6596.25] + }, { + x: new Date(1538843400000), + y: [6598.03, 6600, 6588.73, 6595.97] + }, { + x: new Date(1538845200000), + y: [6595.97, 6602.01, 6588.17, 6602] + }, { + x: new Date(1538847000000), + y: [6602, 6607, 6596.51, 6599.95] + }, { + x: new Date(1538848800000), + y: [6600.63, 6601.21, 6590.39, 6591.02] + }, { + x: new Date(1538850600000), + y: [6591.02, 6603.08, 6591, 6591] + }, { + x: new Date(1538852400000), + y: [6591, 6601.32, 6585, 6592] + }, { + x: new Date(1538854200000), + y: [6593.13, 6596.01, 6590, 6593.34] + }, { + x: new Date(1538856000000), + y: [6593.34, 6604.76, 6582.63, 6593.86] + }, { + x: new Date(1538857800000), + y: [6593.86, 6604.28, 6586.57, 6600.01] + }, { + x: new Date(1538859600000), + y: [6601.81, 6603.21, 6592.78, 6596.25] + }, { + x: new Date(1538861400000), + y: [6596.25, 6604.2, 6590, 6602.99] + }, { + x: new Date(1538863200000), + y: [6602.99, 6606, 6584.99, 6587.81] + }, { + x: new Date(1538865000000), + y: [6587.81, 6595, 6583.27, 6591.96] + }, { + x: new Date(1538866800000), + y: [6591.97, 6596.07, 6585, 6588.39] + }, { + x: new Date(1538868600000), + y: [6587.6, 6598.21, 6587.6, 6594.27] + }, { + x: new Date(1538870400000), + y: [6596.44, 6601, 6590, 6596.55] + }, { + x: new Date(1538872200000), + y: [6598.91, 6605, 6596.61, 6600.02] + }, { + x: new Date(1538874000000), + y: [6600.55, 6605, 6589.14, 6593.01] + }, { + x: new Date(1538875800000), + y: [6593.15, 6605, 6592, 6603.06] + }, { + x: new Date(1538877600000), + y: [6603.07, 6604.5, 6599.09, 6603.89] + }, { + x: new Date(1538879400000), + y: [6604.44, 6604.44, 6600, 6603.5] + }, { + x: new Date(1538881200000), + y: [6603.5, 6603.99, 6597.5, 6603.86] + }, { + x: new Date(1538883000000), + y: [6603.85, 6605, 6600, 6604.07] + }, { + x: new Date(1538884800000), + y: [6604.98, 6606, 6604.07, 6606] + }, ] + }], + title: { + text: 'CandleStick Chart', + align: 'left' + }, + xaxis: { + type: 'datetime' + }, + yaxis: { + tooltip: { + enabled: true + } + } + } + var chartcandlestickchart = new ApexCharts(document.querySelector("#chart-widget13"), optionscandlestickchart); + chartcandlestickchart.render(); + + + \ No newline at end of file diff --git a/public/admin/assets/js/chart/apex-chart/apex-chart.js b/public/admin/assets/js/chart/apex-chart/apex-chart.js new file mode 100644 index 0000000..a72278d --- /dev/null +++ b/public/admin/assets/js/chart/apex-chart/apex-chart.js @@ -0,0 +1,6 @@ +/*! + * ApexCharts v3.10.1 + * (c) 2018-2019 Juned Chhipa + * Released under the MIT License. + */ +!function(t,e){"object"==typeof exports&&"undefined"!=typeof module?module.exports=e():"function"==typeof define&&define.amd?define(e):(t=t||self).ApexCharts=e()}(this,function(){"use strict";function t(e){return(t="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t})(e)}function e(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}function i(t,e){for(var i=0;i>16,r=i>>8&255,o=255&i;return"#"+(16777216+65536*(Math.round((a-n)*s)+n)+256*(Math.round((a-r)*s)+r)+(Math.round((a-o)*s)+o)).toString(16).slice(1)}},{key:"shadeColor",value:function(t,e){return e.length>7?this.shadeRGBColor(t,e):this.shadeHexColor(t,e)}}],[{key:"bind",value:function(t,e){return function(){return t.apply(e,arguments)}}},{key:"isObject",value:function(e){return e&&"object"===t(e)&&!Array.isArray(e)&&null!=e}},{key:"listToArray",value:function(t){var e,i=[];for(e=0;e1?(e.shift(),this.addProps(a,e,i)):t[e[0]]=i,t}},{key:"clone",value:function(e){if("[object Array]"===Object.prototype.toString.call(e)){for(var i=[],a=0;a0&&void 0!==arguments[0]?arguments[0]:"#999999",e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:.6;"#"!==t.substring(0,1)&&(t="#999999");var i=t.replace("#","");i=i.match(new RegExp("(.{"+i.length/3+"})","g"));for(var a=0;a1&&void 0!==arguments[1]?arguments[1]:"x",i=t.toString().slice();return i=i.replace(/[` ~!@#$%^&*()_|+\-=?;:'",.<>\{\}\[\]\\\/]/gi,e)}},{key:"negToZero",value:function(t){return t<0?0:t}},{key:"moveIndexInArray",value:function(t,e,i){if(i>=t.length)for(var a=i-t.length+1;a--;)t.push(void 0);return t.splice(i,0,t.splice(e,1)[0]),t}},{key:"extractNumber",value:function(t){return parseFloat(t.replace(/[^\d\.]*/g,""))}},{key:"randomString",value:function(t){for(var e="",i="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz",a=0;a-1}},{key:"isIE11",value:function(){if(-1!==window.navigator.userAgent.indexOf("MSIE")||window.navigator.appVersion.indexOf("Trident/")>-1)return!0}},{key:"isIE",value:function(){var t=window.navigator.userAgent,e=t.indexOf("MSIE ");if(e>0)return parseInt(t.substring(e+5,t.indexOf(".",e)),10);if(t.indexOf("Trident/")>0){var i=t.indexOf("rv:");return parseInt(t.substring(i+3,t.indexOf(".",i)),10)}var a=t.indexOf("Edge/");return a>0&&parseInt(t.substring(a+5,t.indexOf(".",a)),10)}}]),i}(),g=function(){function t(i){e(this,t),this.ctx=i,this.w=i.w}return a(t,[{key:"getDefaultFilter",value:function(t,e){var i=this.w;t.unfilter(!0),(new window.SVG.Filter).size("120%","180%","-5%","-40%"),"none"!==i.config.states.normal.filter?this.applyFilter(t,e,i.config.states.normal.filter.type,i.config.states.normal.filter.value):i.config.chart.dropShadow.enabled&&this.dropShadow(t,i.config.chart.dropShadow,e)}},{key:"addNormalFilter",value:function(t,e){var i=this.w;i.config.chart.dropShadow.enabled&&this.dropShadow(t,i.config.chart.dropShadow,e)}},{key:"addLightenFilter",value:function(t,e,i){var a=this,s=this.w,n=i.intensity;if(!u.isFirefox()){t.unfilter(!0);var r=new window.SVG.Filter;r.size("120%","180%","-5%","-40%"),t.filter(function(t){var i=s.config.chart.dropShadow;(r=i.enabled?a.addShadow(t,e,i):t).componentTransfer({rgb:{type:"linear",slope:1.5,intercept:n}})}),t.filterer.node.setAttribute("filterUnits","userSpaceOnUse")}}},{key:"addDarkenFilter",value:function(t,e,i){var a=this,s=this.w,n=i.intensity;if(!u.isFirefox()){t.unfilter(!0);var r=new window.SVG.Filter;r.size("120%","180%","-5%","-40%"),t.filter(function(t){var i=s.config.chart.dropShadow;(r=i.enabled?a.addShadow(t,e,i):t).componentTransfer({rgb:{type:"linear",slope:n}})}),t.filterer.node.setAttribute("filterUnits","userSpaceOnUse")}}},{key:"applyFilter",value:function(t,e,i){var a=arguments.length>3&&void 0!==arguments[3]?arguments[3]:.5;switch(i){case"none":this.addNormalFilter(t,e);break;case"lighten":this.addLightenFilter(t,e,{intensity:a});break;case"darken":this.addDarkenFilter(t,e,{intensity:a})}}},{key:"addShadow",value:function(t,e,i){var a=i.blur,s=i.top,n=i.left,r=i.color,o=i.opacity,l=t.flood(Array.isArray(r)?r[e]:r,o).composite(t.sourceAlpha,"in").offset(n,s).gaussianBlur(a).merge(t.source);return t.blend(t.source,l)}},{key:"dropShadow",value:function(t,e){var i=arguments.length>2&&void 0!==arguments[2]?arguments[2]:0,a=e.top,s=e.left,n=e.blur,r=e.color,o=e.opacity,l=e.noUserSpaceOnUse,h=this.w;return t.unfilter(!0),u.isIE()&&"radialBar"===h.config.chart.type?t:(r=Array.isArray(r)?r[i]:r,(new window.SVG.Filter).size("120%","180%","-5%","-40%"),t.filter(function(t){var e=null;e=u.isSafari()||u.isFirefox()||u.isIE()?t.flood(r,o).composite(t.sourceAlpha,"in").offset(s,a).gaussianBlur(n):t.flood(r,o).composite(t.sourceAlpha,"in").offset(s,a).gaussianBlur(n).merge(t.source),t.blend(t.source,e)}),l||t.filterer.node.setAttribute("filterUnits","userSpaceOnUse"),t)}},{key:"setSelectionFilter",value:function(t,e,i){var a=this.w;if(void 0!==a.globals.selectedDataPoints[e]&&a.globals.selectedDataPoints[e].indexOf(i)>-1){t.node.setAttribute("selected",!0);var s=a.config.states.active.filter;"none"!==s&&this.applyFilter(t,e,s.type,s.value)}}}]),t}(),f=function(){function t(i){e(this,t),this.ctx=i,this.w=i.w,this.setEasingFunctions()}return a(t,[{key:"setEasingFunctions",value:function(){var t;if(!this.w.globals.easing){switch(this.w.config.chart.animations.easing){case"linear":t="-";break;case"easein":t="<";break;case"easeout":t=">";break;case"easeinout":t="<>";break;case"swing":t=function(t){var e=1.70158;return(t-=1)*t*((e+1)*t+e)+1};break;case"bounce":t=function(t){return t<1/2.75?7.5625*t*t:t<2/2.75?7.5625*(t-=1.5/2.75)*t+.75:t<2.5/2.75?7.5625*(t-=2.25/2.75)*t+.9375:7.5625*(t-=2.625/2.75)*t+.984375};break;case"elastic":t=function(t){return t===!!t?t:Math.pow(2,-10*t)*Math.sin((t-.075)*(2*Math.PI)/.3)+1};break;default:t="<>"}this.w.globals.easing=t}}},{key:"animateLine",value:function(t,e,i,a){t.attr(e).animate(a).attr(i)}},{key:"animateCircleRadius",value:function(t,e,i,a,s){e||(e=0),t.attr({r:e}).animate(a,s).attr({r:i})}},{key:"animateCircle",value:function(t,e,i,a,s){t.attr({r:e.r,cx:e.cx,cy:e.cy}).animate(a,s).attr({r:i.r,cx:i.cx,cy:i.cy})}},{key:"animateRect",value:function(t,e,i,a,s){t.attr(e).animate(a).attr(i).afterAll(function(){s()})}},{key:"animatePathsGradually",value:function(t){var e=t.el,i=t.j,a=t.pathFrom,s=t.pathTo,n=t.speed,r=t.delay,o=(t.strokeWidth,this.w),l=0;o.config.chart.animations.animateGradually.enabled&&(l=o.config.chart.animations.animateGradually.delay),o.config.chart.animations.dynamicAnimation.enabled&&o.globals.dataChanged&&(l=0),this.morphSVG(e,i,a,s,n,r*l)}},{key:"showDelayedElements",value:function(){this.w.globals.delayedElements.forEach(function(t){t.el.classList.remove("hidden")})}},{key:"animationCompleted",value:function(t){var e=this.w;e.globals.animationEnded=!0,"function"==typeof e.config.chart.events.animationEnd&&e.config.chart.events.animationEnd(this.ctx,{el:t,w:e})}},{key:"morphSVG",value:function(t,e,i,a,s,n){var r=this,o=this.w;i||(i=t.attr("pathFrom")),a||(a=t.attr("pathTo")),(!i||i.indexOf("undefined")>-1||i.indexOf("NaN")>-1)&&(i="M 0 ".concat(o.globals.gridHeight),s=1),(a.indexOf("undefined")>-1||a.indexOf("NaN")>-1)&&(a="M 0 ".concat(o.globals.gridHeight),s=1),o.globals.shouldAnimate||(s=1),t.plot(i).animate(1,o.globals.easing,n).plot(i).animate(s,o.globals.easing,n).plot(a).afterAll(function(){u.isNumber(e)?e===o.globals.series[o.globals.maxValsInArrayIndex].length-2&&o.globals.shouldAnimate&&r.animationCompleted(t):o.globals.shouldAnimate&&r.animationCompleted(t),r.showDelayedElements()})}}]),t}(),p=function(){function t(i){e(this,t),this.ctx=i,this.w=i.w}return a(t,[{key:"drawLine",value:function(t,e,i,a){var s=arguments.length>4&&void 0!==arguments[4]?arguments[4]:"#a8a8a8",n=arguments.length>5&&void 0!==arguments[5]?arguments[5]:0,r=arguments.length>6&&void 0!==arguments[6]?arguments[6]:null;return this.w.globals.dom.Paper.line().attr({x1:t,y1:e,x2:i,y2:a,stroke:s,"stroke-dasharray":n,"stroke-width":r})}},{key:"drawRect",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:0,e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:0,i=arguments.length>2&&void 0!==arguments[2]?arguments[2]:0,a=arguments.length>3&&void 0!==arguments[3]?arguments[3]:0,s=arguments.length>4&&void 0!==arguments[4]?arguments[4]:0,n=arguments.length>5&&void 0!==arguments[5]?arguments[5]:"#fefefe",r=arguments.length>6&&void 0!==arguments[6]?arguments[6]:1,o=arguments.length>7&&void 0!==arguments[7]?arguments[7]:null,l=arguments.length>8&&void 0!==arguments[8]?arguments[8]:null,h=arguments.length>9&&void 0!==arguments[9]?arguments[9]:0,c=this.w.globals.dom.Paper.rect();return c.attr({x:t,y:e,width:i>0?i:0,height:a>0?a:0,rx:s,ry:s,fill:n,opacity:r,"stroke-width":null!==o?o:0,stroke:null!==l?l:"none","stroke-dasharray":h}),c}},{key:"drawPolygon",value:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"#e1e1e1",i=arguments.length>2&&void 0!==arguments[2]?arguments[2]:"none";return this.w.globals.dom.Paper.polygon(t).attr({fill:i,stroke:e})}},{key:"drawCircle",value:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:null,i=this.w.globals.dom.Paper.circle(2*t);return null!==e&&i.attr(e),i}},{key:"drawPath",value:function(t){var e=t.d,i=void 0===e?"":e,a=t.stroke,s=void 0===a?"#a8a8a8":a,n=t.strokeWidth,r=void 0===n?1:n,o=t.fill,l=t.fillOpacity,h=void 0===l?1:l,c=t.strokeOpacity,d=void 0===c?1:c,u=t.classes,g=t.strokeLinecap,f=void 0===g?null:g,p=t.strokeDashArray,x=void 0===p?0:p,b=this.w;return null===f&&(f=b.config.stroke.lineCap),(i.indexOf("undefined")>-1||i.indexOf("NaN")>-1)&&(i="M 0 ".concat(b.globals.gridHeight)),b.globals.dom.Paper.path(i).attr({fill:o,"fill-opacity":h,stroke:s,"stroke-opacity":d,"stroke-linecap":f,"stroke-width":r,"stroke-dasharray":x,class:u})}},{key:"group",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:null,e=this.w.globals.dom.Paper.group();return null!==t&&e.attr(t),e}},{key:"move",value:function(t,e){var i=["M",t,e].join(" ");return i}},{key:"line",value:function(t,e){var i=arguments.length>2&&void 0!==arguments[2]?arguments[2]:null,a=null;return null===i?a=["L",t,e].join(" "):"H"===i?a=["H",t].join(" "):"V"===i&&(a=["V",e].join(" ")),a}},{key:"curve",value:function(t,e,i,a,s,n){var r=["C",t,e,i,a,s,n].join(" ");return r}},{key:"quadraticCurve",value:function(t,e,i,a){return["Q",t,e,i,a].join(" ")}},{key:"arc",value:function(t,e,i,a,s,n,r){var o="A";arguments.length>7&&void 0!==arguments[7]&&arguments[7]&&(o="a");var l=[o,t,e,i,a,s,n,r].join(" ");return l}},{key:"renderPaths",value:function(t){var e,i=t.j,a=t.realIndex,s=t.pathFrom,n=t.pathTo,o=t.stroke,l=t.strokeWidth,h=t.strokeLinecap,c=t.fill,d=t.animationDelay,u=t.initialSpeed,p=t.dataChangeSpeed,x=t.className,b=t.shouldClipToGrid,m=void 0===b||b,v=t.bindEventsOnPaths,y=void 0===v||v,w=t.drawShadow,k=void 0===w||w,A=this.w,S=new g(this.ctx),C=new f(this.ctx),L=this.w.config.chart.animations.enabled,P=L&&this.w.config.chart.animations.dynamicAnimation.enabled,z=!!(L&&!A.globals.resized||P&&A.globals.dataChanged&&A.globals.shouldAnimate);z?e=s:(e=n,A.globals.animationEnded=!0);var E=A.config.stroke.dashArray,M=0;M=Array.isArray(E)?E[a]:A.config.stroke.dashArray;var T=this.drawPath({d:e,stroke:o,strokeWidth:l,fill:c,fillOpacity:1,classes:x,strokeLinecap:h,strokeDashArray:M});if(T.attr("index",a),m&&T.attr({"clip-path":"url(#gridRectMask".concat(A.globals.cuid,")")}),"none"!==A.config.states.normal.filter.type)S.getDefaultFilter(T,a);else if(A.config.chart.dropShadow.enabled&&k&&(!A.config.chart.dropShadow.enabledSeries||A.config.chart.dropShadow.enabledSeries&&-1!==A.config.chart.dropShadow.enabledSeries.indexOf(a))){var I=A.config.chart.dropShadow;S.dropShadow(T,I,a)}y&&(T.node.addEventListener("mouseenter",this.pathMouseEnter.bind(this,T)),T.node.addEventListener("mouseleave",this.pathMouseLeave.bind(this,T)),T.node.addEventListener("mousedown",this.pathMouseDown.bind(this,T))),T.attr({pathTo:n,pathFrom:s});var X={el:T,j:i,pathFrom:s,pathTo:n,strokeWidth:l};return!L||A.globals.resized||A.globals.dataChanged?!A.globals.resized&&A.globals.dataChanged||C.showDelayedElements():C.animatePathsGradually(r({},X,{speed:u,delay:d})),A.globals.dataChanged&&P&&z&&C.animatePathsGradually(r({},X,{speed:p})),T}},{key:"drawPattern",value:function(t,e,i){var a=arguments.length>3&&void 0!==arguments[3]?arguments[3]:"#a8a8a8",s=arguments.length>4&&void 0!==arguments[4]?arguments[4]:0;return this.w.globals.dom.Paper.pattern(e,i,function(n){"horizontalLines"===t?n.line(0,0,i,0).stroke({color:a,width:s+1}):"verticalLines"===t?n.line(0,0,0,e).stroke({color:a,width:s+1}):"slantedLines"===t?n.line(0,0,e,i).stroke({color:a,width:s}):"squares"===t?n.rect(e,i).fill("none").stroke({color:a,width:s}):"circles"===t&&n.circle(e).fill("none").stroke({color:a,width:s})})}},{key:"drawGradient",value:function(t,e,i,a,s){var n,r=arguments.length>5&&void 0!==arguments[5]?arguments[5]:null,o=arguments.length>6&&void 0!==arguments[6]?arguments[6]:null,l=arguments.length>7&&void 0!==arguments[7]?arguments[7]:null,h=arguments.length>8&&void 0!==arguments[8]?arguments[8]:0,c=this.w;e=u.hexToRgba(e,a),i=u.hexToRgba(i,s);var d=0,g=1,f=1,p=null;null!==o&&(d=void 0!==o[0]?o[0]/100:0,g=void 0!==o[1]?o[1]/100:1,f=void 0!==o[2]?o[2]/100:1,p=void 0!==o[3]?o[3]/100:null);var x=!("donut"!==c.config.chart.type&&"pie"!==c.config.chart.type&&"bubble"!==c.config.chart.type);if(n=null===l||0===l.length?c.globals.dom.Paper.gradient(x?"radial":"linear",function(t){t.at(d,e,a),t.at(g,i,s),t.at(f,i,s),null!==p&&t.at(p,e,a)}):c.globals.dom.Paper.gradient(x?"radial":"linear",function(t){(Array.isArray(l[h])?l[h]:l).forEach(function(e){t.at(e.offset/100,e.color,e.opacity)})}),x){var b=c.globals.gridWidth/2,m=c.globals.gridHeight/2;"bubble"!==c.config.chart.type?n.attr({gradientUnits:"userSpaceOnUse",cx:b,cy:m,r:r}):n.attr({cx:.5,cy:.5,r:.8,fx:.2,fy:.2})}else"vertical"===t?n.from(0,0).to(0,1):"diagonal"===t?n.from(0,0).to(1,1):"horizontal"===t?n.from(0,1).to(1,1):"diagonal2"===t&&n.from(0,1).to(2,2);return n}},{key:"drawText",value:function(t){var e,i=this.w,a=t.x,s=t.y,n=t.text,r=t.textAnchor,o=t.fontSize,l=t.fontFamily,h=t.fontWeight,c=t.foreColor,d=t.opacity;return void 0===n&&(n=""),r||(r="start"),c||(c=i.config.chart.foreColor),l=l||i.config.chart.fontFamily,h=h||"regular",(e=Array.isArray(n)?i.globals.dom.Paper.text(function(t){for(var e=0;e-1){var o=i.globals.selectedDataPoints[s].indexOf(n);i.globals.selectedDataPoints[s].splice(o,1)}}else{if(!i.config.states.active.allowMultipleDataPointsSelection&&i.globals.selectedDataPoints.length>0){i.globals.selectedDataPoints=[];var l=i.globals.dom.Paper.select(".apexcharts-series path").members,h=i.globals.dom.Paper.select(".apexcharts-series circle, .apexcharts-series rect").members;l.forEach(function(t){t.node.setAttribute("selected","false"),a.getDefaultFilter(t,s)}),h.forEach(function(t){t.node.setAttribute("selected","false"),a.getDefaultFilter(t,s)})}t.node.setAttribute("selected","true"),r="true",void 0===i.globals.selectedDataPoints[s]&&(i.globals.selectedDataPoints[s]=[]),i.globals.selectedDataPoints[s].push(n)}if("true"===r){var c=i.config.states.active.filter;"none"!==c&&a.applyFilter(t,s,c.type,c.value)}else"none"!==i.config.states.active.filter.type&&a.getDefaultFilter(t,s);"function"==typeof i.config.chart.events.dataPointSelection&&i.config.chart.events.dataPointSelection(e,this.ctx,{selectedDataPoints:i.globals.selectedDataPoints,seriesIndex:s,dataPointIndex:n,w:i}),e&&this.ctx.fireEvent("dataPointSelection",[e,this.ctx,{selectedDataPoints:i.globals.selectedDataPoints,seriesIndex:s,dataPointIndex:n,w:i}])}},{key:"rotateAroundCenter",value:function(t){var e=t.getBBox();return{x:e.x+e.width/2,y:e.y+e.height/2}}},{key:"getTextRects",value:function(t,e,i,a){var s=!(arguments.length>4&&void 0!==arguments[4])||arguments[4],n=this.w,r=this.drawText({x:-200,y:-200,text:t,textAnchor:"start",fontSize:e,fontFamily:i,foreColor:"#fff",opacity:0});a&&r.attr("transform",a),n.globals.dom.Paper.add(r);var o=r.bbox();return s||(o=r.node.getBoundingClientRect()),r.remove(),{width:o.width,height:o.height}}},{key:"placeTextWithEllipsis",value:function(t,e,i){if(t.textContent=e,e.length>0&&t.getComputedTextLength()>=i){for(var a=e.length-3;a>0;a-=3)if(t.getSubStringLength(0,a)<=i)return void(t.textContent=e.substring(0,a)+"...");t.textContent="..."}}}],[{key:"setAttrs",value:function(t,e){for(var i in e)e.hasOwnProperty(i)&&t.setAttribute(i,e[i])}}]),t}();var x={name:"en",options:{months:["January","February","March","April","May","June","July","August","September","October","November","December"],shortMonths:["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"],days:["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"],shortDays:["Sun","Mon","Tue","Wed","Thu","Fri","Sat"],toolbar:{exportToSVG:"Download SVG",exportToPNG:"Download PNG",menu:"Menu",selection:"Selection",selectionZoom:"Selection Zoom",zoomIn:"Zoom In",zoomOut:"Zoom Out",pan:"Panning",reset:"Reset Zoom"}}},b=function(){function t(){e(this,t),this.yAxis={show:!0,showAlways:!1,seriesName:void 0,opposite:!1,reversed:!1,logarithmic:!1,tickAmount:void 0,forceNiceScale:!1,max:void 0,min:void 0,floating:!1,decimalsInFloat:void 0,labels:{show:!0,minWidth:0,maxWidth:160,offsetX:0,offsetY:0,align:void 0,rotate:0,padding:20,style:{colors:[],fontSize:"11px",fontFamily:void 0,cssClass:""},formatter:void 0},axisBorder:{show:!1,color:"#78909C",offsetX:0,offsetY:0},axisTicks:{show:!1,color:"#78909C",width:6,offsetX:0,offsetY:0},title:{text:void 0,rotate:90,offsetY:0,offsetX:0,style:{color:void 0,fontSize:"11px",fontFamily:void 0,cssClass:""}},tooltip:{enabled:!1,offsetX:0},crosshairs:{show:!0,position:"front",stroke:{color:"#b6b6b6",width:1,dashArray:0}}},this.xAxisAnnotation={x:0,x2:null,strokeDashArray:1,fillColor:"#c2c2c2",borderColor:"#c2c2c2",opacity:.3,offsetX:0,offsetY:0,label:{borderColor:"#c2c2c2",borderWidth:1,text:void 0,textAnchor:"middle",orientation:"vertical",position:"top",offsetX:0,offsetY:0,style:{background:"#fff",color:void 0,fontSize:"11px",fontFamily:void 0,cssClass:"",padding:{left:5,right:5,top:2,bottom:2}}}},this.yAxisAnnotation={y:0,y2:null,strokeDashArray:1,fillColor:"#c2c2c2",borderColor:"#c2c2c2",opacity:.3,offsetX:0,offsetY:0,yAxisIndex:0,label:{borderColor:"#c2c2c2",borderWidth:1,text:void 0,textAnchor:"end",position:"right",offsetX:0,offsetY:-3,style:{background:"#fff",color:void 0,fontSize:"11px",fontFamily:void 0,cssClass:"",padding:{left:5,right:5,top:0,bottom:2}}}},this.pointAnnotation={x:0,y:null,yAxisIndex:0,seriesIndex:0,marker:{size:4,fillColor:"#fff",strokeWidth:2,strokeColor:"#333",shape:"circle",offsetX:0,offsetY:0,radius:2,cssClass:""},label:{borderColor:"#c2c2c2",borderWidth:1,text:void 0,textAnchor:"middle",offsetX:0,offsetY:-15,style:{background:"#fff",color:void 0,fontSize:"11px",fontFamily:void 0,cssClass:"",padding:{left:5,right:5,top:0,bottom:2}}},customSVG:{SVG:void 0,cssClass:void 0,offsetX:0,offsetY:0}}}return a(t,[{key:"init",value:function(){return{annotations:{position:"front",yaxis:[this.yAxisAnnotation],xaxis:[this.xAxisAnnotation],points:[this.pointAnnotation]},chart:{animations:{enabled:!0,easing:"easeinout",speed:800,animateGradually:{delay:150,enabled:!0},dynamicAnimation:{enabled:!0,speed:350}},background:"transparent",locales:[x],defaultLocale:"en",dropShadow:{enabled:!1,enabledSeries:void 0,top:2,left:2,blur:4,color:"#000",opacity:.35},events:{animationEnd:void 0,beforeMount:void 0,mounted:void 0,updated:void 0,click:void 0,mouseMove:void 0,legendClick:void 0,markerClick:void 0,selection:void 0,dataPointSelection:void 0,dataPointMouseEnter:void 0,dataPointMouseLeave:void 0,beforeZoom:void 0,zoomed:void 0,scrolled:void 0},foreColor:"#373d3f",fontFamily:"Helvetica, Arial, sans-serif",height:"auto",parentHeightOffset:15,id:void 0,group:void 0,offsetX:0,offsetY:0,selection:{enabled:!1,type:"x",fill:{color:"#24292e",opacity:.1},stroke:{width:1,color:"#24292e",opacity:.4,dashArray:3},xaxis:{min:void 0,max:void 0},yaxis:{min:void 0,max:void 0}},sparkline:{enabled:!1},brush:{enabled:!1,autoScaleYaxis:!0,target:void 0},stacked:!1,stackType:"normal",toolbar:{show:!0,tools:{download:!0,selection:!0,zoom:!0,zoomin:!0,zoomout:!0,pan:!0,reset:!0,customIcons:[]},autoSelected:"zoom"},type:"line",width:"100%",zoom:{enabled:!0,type:"x",autoScaleYaxis:!1,zoomedArea:{fill:{color:"#90CAF9",opacity:.4},stroke:{color:"#0D47A1",opacity:.4,width:1}}}},plotOptions:{bar:{horizontal:!1,columnWidth:"70%",barHeight:"70%",distributed:!1,endingShape:"flat",colors:{ranges:[],backgroundBarColors:[],backgroundBarOpacity:1},dataLabels:{position:"top",maxItems:100,hideOverflowingLabels:!0,orientation:"horizontal"}},bubble:{minBubbleRadius:void 0,maxBubbleRadius:void 0},candlestick:{colors:{upward:"#00B746",downward:"#EF403C"},wick:{useFillColor:!0}},heatmap:{radius:2,enableShades:!0,shadeIntensity:.5,reverseNegativeShade:!0,distributed:!1,colorScale:{inverse:!1,ranges:[],min:void 0,max:void 0}},radialBar:{size:void 0,inverseOrder:!1,startAngle:0,endAngle:360,offsetX:0,offsetY:0,hollow:{margin:5,size:"50%",background:"transparent",image:void 0,imageWidth:150,imageHeight:150,imageOffsetX:0,imageOffsetY:0,imageClipped:!0,position:"front",dropShadow:{enabled:!1,top:0,left:0,blur:3,color:"#000",opacity:.5}},track:{show:!0,startAngle:void 0,endAngle:void 0,background:"#f2f2f2",strokeWidth:"97%",opacity:1,margin:5,dropShadow:{enabled:!1,top:0,left:0,blur:3,color:"#000",opacity:.5}},dataLabels:{show:!0,name:{show:!0,fontSize:"16px",fontFamily:void 0,color:void 0,offsetY:0},value:{show:!0,fontSize:"14px",fontFamily:void 0,color:void 0,offsetY:16,formatter:function(t){return t+"%"}},total:{show:!1,label:"Total",color:void 0,formatter:function(t){return t.globals.seriesTotals.reduce(function(t,e){return t+e},0)/t.globals.series.length+"%"}}}},rangeBar:{},pie:{size:void 0,customScale:1,offsetX:0,offsetY:0,expandOnClick:!0,dataLabels:{offset:0,minAngleToShowLabel:10},donut:{size:"65%",background:"transparent",labels:{show:!1,name:{show:!0,fontSize:"16px",fontFamily:void 0,color:void 0,offsetY:-10},value:{show:!0,fontSize:"20px",fontFamily:void 0,color:void 0,offsetY:10,formatter:function(t){return t}},total:{show:!1,showAlways:!1,label:"Total",color:void 0,formatter:function(t){return t.globals.seriesTotals.reduce(function(t,e){return t+e},0)}}}}},radar:{size:void 0,offsetX:0,offsetY:0,polygons:{strokeColors:"#e8e8e8",connectorColors:"#e8e8e8",fill:{colors:void 0}}}},colors:void 0,dataLabels:{enabled:!0,enabledOnSeries:void 0,formatter:function(t){return null!==t?t:""},textAnchor:"middle",offsetX:0,offsetY:0,style:{fontSize:"12px",fontFamily:void 0,colors:void 0},dropShadow:{enabled:!1,top:1,left:1,blur:1,color:"#000",opacity:.45}},fill:{type:"solid",colors:void 0,opacity:.85,gradient:{shade:"dark",type:"horizontal",shadeIntensity:.5,gradientToColors:void 0,inverseColors:!0,opacityFrom:1,opacityTo:1,stops:[0,50,100],colorStops:[]},image:{src:[],width:void 0,height:void 0},pattern:{style:"sqaures",width:6,height:6,strokeWidth:2}},grid:{show:!0,borderColor:"#e0e0e0",strokeDashArray:0,position:"back",xaxis:{lines:{show:!1,animate:!1}},yaxis:{lines:{show:!0,animate:!1}},row:{colors:void 0,opacity:.5},column:{colors:void 0,opacity:.5},padding:{top:0,right:10,bottom:0,left:12}},labels:[],legend:{show:!0,showForSingleSeries:!1,showForNullSeries:!0,showForZeroSeries:!0,floating:!1,position:"bottom",horizontalAlign:"center",inverseOrder:!1,fontSize:"12px",fontFamily:void 0,width:void 0,height:void 0,formatter:void 0,tooltipHoverFormatter:void 0,offsetX:-20,offsetY:0,labels:{colors:void 0,useSeriesColors:!1},markers:{width:12,height:12,strokeWidth:0,fillColors:void 0,strokeColor:"#fff",radius:12,customHTML:void 0,offsetX:0,offsetY:0,onClick:void 0},itemMargin:{horizontal:0,vertical:5},onItemClick:{toggleDataSeries:!0},onItemHover:{highlightDataSeries:!0}},markers:{discrete:[],size:0,colors:void 0,strokeColors:"#fff",strokeWidth:2,strokeOpacity:.9,fillOpacity:1,shape:"circle",radius:2,offsetX:0,offsetY:0,onClick:void 0,onDblClick:void 0,hover:{size:void 0,sizeOffset:3}},noData:{text:void 0,align:"center",verticalAlign:"middle",offsetX:0,offsetY:0,style:{color:void 0,fontSize:"14px",fontFamily:void 0}},responsive:[],series:void 0,states:{normal:{filter:{type:"none",value:0}},hover:{filter:{type:"lighten",value:.15}},active:{allowMultipleDataPointsSelection:!1,filter:{type:"darken",value:.65}}},title:{text:void 0,align:"left",margin:10,offsetX:0,offsetY:0,floating:!1,style:{fontSize:"14px",fontFamily:void 0,color:void 0}},subtitle:{text:void 0,align:"left",margin:10,offsetX:0,offsetY:30,floating:!1,style:{fontSize:"12px",fontFamily:void 0,color:void 0}},stroke:{show:!0,curve:"smooth",lineCap:"butt",width:2,colors:void 0,dashArray:0},tooltip:{enabled:!0,enabledOnSeries:void 0,shared:!0,followCursor:!1,intersect:!1,inverseOrder:!1,custom:void 0,fillSeriesColor:!1,theme:"light",style:{fontSize:"12px",fontFamily:void 0},onDatasetHover:{highlightDataSeries:!1},x:{show:!0,format:"dd MMM",formatter:void 0},y:{formatter:void 0,title:{formatter:function(t){return t}}},z:{formatter:void 0,title:"Size: "},marker:{show:!0,fillColors:void 0},items:{display:"flex"},fixed:{enabled:!1,position:"topRight",offsetX:0,offsetY:0}},xaxis:{type:"category",categories:[],offsetX:0,offsetY:0,labels:{show:!0,rotate:-45,rotateAlways:!1,hideOverlappingLabels:!0,trim:!0,minHeight:void 0,maxHeight:120,showDuplicates:!0,style:{colors:[],fontSize:"12px",fontFamily:void 0,cssClass:""},offsetX:0,offsetY:0,format:void 0,formatter:void 0,datetimeFormatter:{year:"yyyy",month:"MMM 'yy",day:"dd MMM",hour:"HH:mm",minute:"HH:mm:ss"}},axisBorder:{show:!0,color:"#78909C",width:"100%",height:1,offsetX:0,offsetY:0},axisTicks:{show:!0,color:"#78909C",height:6,offsetX:0,offsetY:0},tickAmount:void 0,tickPlacement:"on",min:void 0,max:void 0,range:void 0,floating:!1,position:"bottom",title:{text:void 0,offsetX:0,offsetY:0,style:{color:void 0,fontSize:"12px",fontFamily:void 0,cssClass:""}},crosshairs:{show:!0,width:1,position:"back",opacity:.9,stroke:{color:"#b6b6b6",width:1,dashArray:3},fill:{type:"solid",color:"#B1B9C4",gradient:{colorFrom:"#D8E3F0",colorTo:"#BED1E6",stops:[0,100],opacityFrom:.4,opacityTo:.5}},dropShadow:{enabled:!1,left:0,top:0,blur:1,opacity:.4}},tooltip:{enabled:!0,offsetY:0,formatter:void 0,style:{fontSize:"12px",fontFamily:void 0}}},yaxis:this.yAxis,theme:{mode:"light",palette:"palette1",monochrome:{enabled:!1,color:"#008FFB",shadeTo:"light",shadeIntensity:.65}}}}}]),t}(),m=function(){function t(i){e(this,t),this.ctx=i,this.w=i.w,this.graphics=new p(this.ctx),this.w.globals.isBarHorizontal&&(this.invertAxis=!0),this.xDivision=this.w.globals.gridWidth/this.w.globals.dataPoints}return a(t,[{key:"drawAnnotations",value:function(){var t=this.w;if(t.globals.axisCharts){for(var e=this.drawYAxisAnnotations(),i=this.drawXAxisAnnotations(),a=this.drawPointAnnotations(),s=t.config.chart.animations.enabled,n=[e,i,a],r=[i.node,e.node,a.node],o=0;o<3;o++)t.globals.dom.elGraphical.add(n[o]),!s||t.globals.resized||t.globals.dataChanged||"scatter"!==t.config.chart.type&&"bubble"!==t.config.chart.type&&r[o].classList.add("hidden"),t.globals.delayedElements.push({el:r[o],index:0});this.annotationsBackground()}}},{key:"getStringX",value:function(t){var e=this.w,i=t,a=e.globals.labels.indexOf(t),s=e.globals.dom.baseEl.querySelector(".apexcharts-xaxis-texts-g text:nth-child("+(a+1)+")");return s&&(i=parseFloat(s.getAttribute("x"))),i}},{key:"addXaxisAnnotation",value:function(t,e,i){var a=this.w,s=this.invertAxis?a.globals.minY:a.globals.minX,n=this.invertAxis?a.globals.yRange[0]:a.globals.xRange,r=(t.x-s)/(n/a.globals.gridWidth),o=t.label.text;"category"!==a.config.xaxis.type&&!a.config.xaxis.convertedCatToNumeric||this.invertAxis||a.globals.isXNumeric||(r=this.getStringX(t.x));var l=t.strokeDashArray;if(!(r<0||r>a.globals.gridWidth)){if(null===t.x2){var h=this.graphics.drawLine(r+t.offsetX,0+t.offsetY,r+t.offsetX,a.globals.gridHeight+t.offsetY,t.borderColor,l);e.appendChild(h.node)}else{var c=(t.x2-s)/(n/a.globals.gridWidth);if("category"!==a.config.xaxis.type&&!a.config.xaxis.convertedCatToNumeric||this.invertAxis||a.globals.isXNumeric||(c=this.getStringX(t.x2)),ca){var g=a;a=s,s=g}if(h){var f=this.graphics.drawRect(0+t.offsetX,s+t.offsetY,n.globals.gridWidth+t.offsetX,a-s,0,t.fillColor,t.opacity,1,t.borderColor,r);e.appendChild(f.node)}}var p="right"===t.label.position?n.globals.gridWidth:0,x=this.graphics.drawText({x:p+t.label.offsetX,y:(s||a)+t.label.offsetY-3,text:h,textAnchor:t.label.textAnchor,fontSize:t.label.style.fontSize,fontFamily:t.label.style.fontFamily,foreColor:t.label.style.color,cssClass:"apexcharts-yaxis-annotation-label ".concat(t.label.style.cssClass," ").concat(t.id?t.id:"")});x.attr({rel:i}),e.appendChild(x.node)}},{key:"drawYAxisAnnotations",value:function(){var t=this,e=this.w,i=this.graphics.group({class:"apexcharts-yaxis-annotations"});return e.config.annotations.yaxis.map(function(e,a){t.addYaxisAnnotation(e,i.node,a)}),i}},{key:"clearAnnotations",value:function(t){var e=t.w,i=e.globals.dom.baseEl.querySelectorAll(".apexcharts-yaxis-annotations, .apexcharts-xaxis-annotations, .apexcharts-point-annotations");e.globals.memory.methodsToExec.map(function(t,i){"addText"!==t.label&&"addAnnotation"!==t.label||e.globals.memory.methodsToExec.splice(i,1)}),(i=u.listToArray(i)).forEach(function(t){for(;t.firstChild;)t.removeChild(t.firstChild)})}},{key:"removeAnnotation",value:function(t,e){var i=t.w,a=i.globals.dom.baseEl.querySelectorAll(".".concat(e));a&&(i.globals.memory.methodsToExec.map(function(t,a){t.id===e&&i.globals.memory.methodsToExec.splice(a,1)}),a.forEach(function(t){t.parentElement.removeChild(t)}))}},{key:"addPointAnnotation",value:function(t,e,i){var a=this.w,s=0,n=0,r=0;if(this.invertAxis&&console.warn("Point annotation is not supported in horizontal bar charts."),"string"==typeof t.x){var o=a.globals.labels.indexOf(t.x),l=a.globals.dom.baseEl.querySelector(".apexcharts-xaxis-texts-g text:nth-child("+(o+1)+")");s=parseFloat(l.getAttribute("x"));var h=t.y;null===t.y&&(h=a.globals.series[t.seriesIndex][o]),n=a.globals.gridHeight-(h-a.globals.minYArr[t.yAxisIndex])/(a.globals.yRange[t.yAxisIndex]/a.globals.gridHeight)-parseFloat(t.label.style.fontSize)-t.marker.size,r=a.globals.gridHeight-(h-a.globals.minYArr[t.yAxisIndex])/(a.globals.yRange[t.yAxisIndex]/a.globals.gridHeight),a.config.yaxis[t.yAxisIndex]&&a.config.yaxis[t.yAxisIndex].reversed&&(n=(h-a.globals.minYArr[t.yAxisIndex])/(a.globals.yRange[t.yAxisIndex]/a.globals.gridHeight)+parseFloat(t.label.style.fontSize)+t.marker.size,r=(h-a.globals.minYArr[t.yAxisIndex])/(a.globals.yRange[t.yAxisIndex]/a.globals.gridHeight))}else s=(t.x-a.globals.minX)/(a.globals.xRange/a.globals.gridWidth),n=a.globals.gridHeight-(parseFloat(t.y)-a.globals.minYArr[t.yAxisIndex])/(a.globals.yRange[t.yAxisIndex]/a.globals.gridHeight)-parseFloat(t.label.style.fontSize)-t.marker.size,r=a.globals.gridHeight-(t.y-a.globals.minYArr[t.yAxisIndex])/(a.globals.yRange[t.yAxisIndex]/a.globals.gridHeight),a.config.yaxis[t.yAxisIndex]&&a.config.yaxis[t.yAxisIndex].reversed&&(n=(parseFloat(t.y)-a.globals.minYArr[t.yAxisIndex])/(a.globals.yRange[t.yAxisIndex]/a.globals.gridHeight)-parseFloat(t.label.style.fontSize)-t.marker.size,r=(t.y-a.globals.minYArr[t.yAxisIndex])/(a.globals.yRange[t.yAxisIndex]/a.globals.gridHeight));if(!(s<0||s>a.globals.gridWidth)){var c={pSize:t.marker.size,pWidth:t.marker.strokeWidth,pointFillColor:t.marker.fillColor,pointStrokeColor:t.marker.strokeColor,shape:t.marker.shape,radius:t.marker.radius,class:"apexcharts-point-annotation-marker ".concat(t.marker.cssClass," ").concat(t.id?t.id:"")},d=this.graphics.drawMarker(s+t.marker.offsetX,r+t.marker.offsetY,c);e.appendChild(d.node);var u=t.label.text?t.label.text:"",g=this.graphics.drawText({x:s+t.label.offsetX,y:n+t.label.offsetY,text:u,textAnchor:t.label.textAnchor,fontSize:t.label.style.fontSize,fontFamily:t.label.style.fontFamily,foreColor:t.label.style.color,cssClass:"apexcharts-point-annotation-label ".concat(t.label.style.cssClass," ").concat(t.id?t.id:"")});if(g.attr({rel:i}),e.appendChild(g.node),t.customSVG.SVG){var f=this.graphics.group({class:"apexcharts-point-annotations-custom-svg "+t.customSVG.cssClass});f.attr({transform:"translate(".concat(s+t.customSVG.offsetX,", ").concat(n+t.customSVG.offsetY,")")}),f.node.innerHTML=t.customSVG.SVG,e.appendChild(f.node)}}}},{key:"drawPointAnnotations",value:function(){var t=this,e=this.w,i=this.graphics.group({class:"apexcharts-point-annotations"});return e.config.annotations.points.map(function(e,a){t.addPointAnnotation(e,i.node,a)}),i}},{key:"setOrientations",value:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:null,i=this.w;if("vertical"===t.label.orientation){var a=null!==e?e:0,s=i.globals.dom.baseEl.querySelector(".apexcharts-xaxis-annotations .apexcharts-xaxis-annotation-label[rel='".concat(a,"']"));if(null!==s){var n=s.getBoundingClientRect();s.setAttribute("x",parseFloat(s.getAttribute("x"))-n.height+4),"top"===t.label.position?s.setAttribute("y",parseFloat(s.getAttribute("y"))+n.width):s.setAttribute("y",parseFloat(s.getAttribute("y"))-n.width);var r=this.graphics.rotateAroundCenter(s),o=r.x,l=r.y;s.setAttribute("transform","rotate(-90 ".concat(o," ").concat(l,")"))}}}},{key:"addBackgroundToAnno",value:function(t,e){var i=this.w;if(!e.label.text||e.label.text&&!e.label.text.trim())return null;var a=i.globals.dom.baseEl.querySelector(".apexcharts-grid").getBoundingClientRect(),s=t.getBoundingClientRect(),n=e.label.style.padding.left,r=e.label.style.padding.right,o=e.label.style.padding.top,l=e.label.style.padding.bottom;"vertical"===e.label.orientation&&(o=e.label.style.padding.left,l=e.label.style.padding.right,n=e.label.style.padding.top,r=e.label.style.padding.bottom);var h=s.left-a.left-n,c=s.top-a.top-o,d=this.graphics.drawRect(h,c,s.width+n+r,s.height+o+l,0,e.label.style.background,1,e.label.borderWidth,e.label.borderColor,0);return e.id&&d.node.classList.add(e.id),d}},{key:"annotationsBackground",value:function(){var t=this,e=this.w,i=function(i,a,s){var n=e.globals.dom.baseEl.querySelector(".apexcharts-".concat(s,"-annotations .apexcharts-").concat(s,"-annotation-label[rel='").concat(a,"']"));if(n){var r=n.parentNode,o=t.addBackgroundToAnno(n,i);o&&r.insertBefore(o.node,n)}};e.config.annotations.xaxis.map(function(t,e){i(t,e,"xaxis")}),e.config.annotations.yaxis.map(function(t,e){i(t,e,"yaxis")}),e.config.annotations.points.map(function(t,e){i(t,e,"point")})}},{key:"addText",value:function(t,e,i){var a=t.x,s=t.y,n=t.text,r=t.textAnchor,o=t.appendTo,l=void 0===o?".apexcharts-inner":o,h=t.foreColor,c=t.fontSize,d=t.fontFamily,u=t.cssClass,g=t.backgroundColor,f=t.borderWidth,p=t.strokeDashArray,x=t.radius,b=t.borderColor,m=t.paddingLeft,v=void 0===m?4:m,y=t.paddingRight,w=void 0===y?4:y,k=t.paddingBottom,A=void 0===k?2:k,S=t.paddingTop,C=void 0===S?2:S,L=i,P=L.w,z=P.globals.dom.baseEl.querySelector(l),E=this.graphics.drawText({x:a,y:s,text:n,textAnchor:r||"start",fontSize:c||"12px",fontFamily:d||P.config.chart.fontFamily,foreColor:h||P.config.chart.foreColor,cssClass:u});z.appendChild(E.node);var M=E.bbox();if(n){var T=this.graphics.drawRect(M.x-v,M.y-C,M.width+v+w,M.height+A+C,x,g,1,f,b,p);E.before(T)}return e&&P.globals.memory.methodsToExec.push({context:L,method:L.addText,label:"addText",params:{x:a,y:s,text:n,textAnchor:r,appendTo:l,foreColor:h,fontSize:c,cssClass:u,backgroundColor:g,borderWidth:f,strokeDashArray:p,radius:x,borderColor:b,paddingLeft:v,paddingRight:w,paddingBottom:A,paddingTop:C}}),i}},{key:"addPointAnnotationExternal",value:function(t,e,i){return void 0===this.invertAxis&&(this.invertAxis=i.w.globals.isBarHorizontal),this.addAnnotationExternal({params:t,pushToMemory:e,context:i,type:"point",contextMethod:i.addPointAnnotation}),i}},{key:"addYaxisAnnotationExternal",value:function(t,e,i){return this.addAnnotationExternal({params:t,pushToMemory:e,context:i,type:"yaxis",contextMethod:i.addYaxisAnnotation}),i}},{key:"addXaxisAnnotationExternal",value:function(t,e,i){return this.addAnnotationExternal({params:t,pushToMemory:e,context:i,type:"xaxis",contextMethod:i.addXaxisAnnotation}),i}},{key:"addAnnotationExternal",value:function(t){var e=t.params,i=t.pushToMemory,a=t.context,s=t.type,n=t.contextMethod,r=a,o=r.w,l=o.globals.dom.baseEl.querySelector(".apexcharts-".concat(s,"-annotations")),h=l.childNodes.length+1,c=new b,d=Object.assign({},"xaxis"===s?c.xAxisAnnotation:"yaxis"===s?c.yAxisAnnotation:c.pointAnnotation),g=u.extend(d,e);switch(s){case"xaxis":this.addXaxisAnnotation(g,l,h);break;case"yaxis":this.addYaxisAnnotation(g,l,h);break;case"point":this.addPointAnnotation(g,l,h)}var f=o.globals.dom.baseEl.querySelector(".apexcharts-".concat(s,"-annotations .apexcharts-").concat(s,"-annotation-label[rel='").concat(h,"']")),p=this.addBackgroundToAnno(f,g);return p&&l.insertBefore(p.node,f),i&&o.globals.memory.methodsToExec.push({context:r,id:g.id?g.id:u.randomId(),method:n,label:"addAnnotation",params:e}),a}}]),t}(),v=function(){function t(i){e(this,t),this.ctx=i,this.w=i.w,this.months31=[1,3,5,7,8,10,12],this.months30=[2,4,6,9,11],this.daysCntOfYear=[0,31,59,90,120,151,181,212,243,273,304,334]}return a(t,[{key:"isValidDate",value:function(t){return!isNaN(this.parseDate(t))}},{key:"getUTCTimeStamp",value:function(t){return Date.parse(t)?new Date(new Date(t).toISOString().substr(0,25)).getTime():t}},{key:"parseDate",value:function(t){var e=Date.parse(t);if(!isNaN(e))return this.getUTCTimeStamp(t);var i=Date.parse(t.replace(/-/g,"/").replace(/[a-z]+/gi," "));return i=this.getUTCTimeStamp(i)}},{key:"treatAsUtc",value:function(t){var e=new Date(t);return e.setMinutes(e.getMinutes()-e.getTimezoneOffset()),e}},{key:"formatDate",value:function(t,e){var i=!(arguments.length>2&&void 0!==arguments[2])||arguments[2],a=!(arguments.length>3&&void 0!==arguments[3])||arguments[3],s=this.w.globals.locale,n=["\0"].concat(d(s.months)),r=["\x01"].concat(d(s.shortMonths)),o=["\x02"].concat(d(s.days)),l=["\x03"].concat(d(s.shortDays));function h(t,e){var i=t+"";for(e=e||2;i.length12?f-12:0===f?12:f;e=(e=(e=(e=e.replace(/(^|[^\\])HH+/g,"$1"+h(f))).replace(/(^|[^\\])H/g,"$1"+f)).replace(/(^|[^\\])hh+/g,"$1"+h(p))).replace(/(^|[^\\])h/g,"$1"+p);var x=i?t.getUTCMinutes():t.getMinutes();e=(e=e.replace(/(^|[^\\])mm+/g,"$1"+h(x))).replace(/(^|[^\\])m/g,"$1"+x);var b=i?t.getUTCSeconds():t.getSeconds();e=(e=e.replace(/(^|[^\\])ss+/g,"$1"+h(b))).replace(/(^|[^\\])s/g,"$1"+b);var m=i?t.getUTCMilliseconds():t.getMilliseconds();e=e.replace(/(^|[^\\])fff+/g,"$1"+h(m,3)),m=Math.round(m/10),e=e.replace(/(^|[^\\])ff/g,"$1"+h(m)),m=Math.round(m/10);var v=f<12?"AM":"PM";e=(e=(e=e.replace(/(^|[^\\])f/g,"$1"+m)).replace(/(^|[^\\])TT+/g,"$1"+v)).replace(/(^|[^\\])T/g,"$1"+v.charAt(0));var y=v.toLowerCase();e=(e=e.replace(/(^|[^\\])tt+/g,"$1"+y)).replace(/(^|[^\\])t/g,"$1"+y.charAt(0));var w=-t.getTimezoneOffset(),k=i||!w?"Z":w>0?"+":"-";if(!i){var A=(w=Math.abs(w))%60;k+=h(Math.floor(w/60))+":"+h(A)}e=e.replace(/(^|[^\\])K/g,"$1"+k);var S=(i?t.getUTCDay():t.getDay())+1;return e=(e=(e=(e=(e=e.replace(new RegExp(o[0],"g"),o[S])).replace(new RegExp(l[0],"g"),l[S])).replace(new RegExp(n[0],"g"),n[u])).replace(new RegExp(r[0],"g"),r[u])).replace(/\\(.)/g,"$1")}},{key:"getTimeUnitsfromTimestamp",value:function(t,e){var i=this.w;void 0!==i.config.xaxis.min&&(t=i.config.xaxis.min),void 0!==i.config.xaxis.max&&(e=i.config.xaxis.max);var a=new Date(t).getFullYear(),s=new Date(e).getFullYear(),n=new Date(t).getMonth(),r=new Date(e).getMonth(),o=new Date(t).getDate(),l=new Date(e).getDate(),h=new Date(t).getHours(),c=new Date(e).getHours();return{minMinute:new Date(t).getMinutes(),maxMinute:new Date(e).getMinutes(),minHour:h,maxHour:c,minDate:o,maxDate:l,minMonth:n,maxMonth:r,minYear:a,maxYear:s}}},{key:"isLeapYear",value:function(t){return t%4==0&&t%100!=0||t%400==0}},{key:"calculcateLastDaysOfMonth",value:function(t,e,i){return this.determineDaysOfMonths(t,e)-i}},{key:"determineDaysOfYear",value:function(t){var e=365;return this.isLeapYear(t)&&(e=366),e}},{key:"determineRemainingDaysOfYear",value:function(t,e,i){var a=this.daysCntOfYear[e]+i;return e>1&&this.isLeapYear()&&a++,a}},{key:"determineDaysOfMonths",value:function(t,e){var i=30;switch(t=u.monthMod(t),!0){case this.months30.indexOf(t)>-1:2===t&&(i=this.isLeapYear(e)?29:28);break;case this.months31.indexOf(t)>-1:default:i=31}return i}}]),t}(),y=function(){function t(i){e(this,t),this.opts=i}return a(t,[{key:"line",value:function(){return{chart:{animations:{easing:"swing"}},dataLabels:{enabled:!1},stroke:{width:5,curve:"straight"},markers:{size:0,hover:{sizeOffset:6}},xaxis:{crosshairs:{width:1}}}}},{key:"sparkline",value:function(t){this.opts.yaxis[0].labels.show=!1,this.opts.yaxis[0].floating=!0;return u.extend(t,{grid:{show:!1,padding:{left:0,right:0,top:0,bottom:0}},legend:{show:!1},xaxis:{labels:{show:!1},tooltip:{enabled:!1},axisBorder:{show:!1}},chart:{toolbar:{show:!1},zoom:{enabled:!1}},dataLabels:{enabled:!1}})}},{key:"bar",value:function(){return{chart:{stacked:!1,animations:{easing:"swing"}},plotOptions:{bar:{dataLabels:{position:"center"}}},dataLabels:{style:{colors:["#fff"]}},stroke:{width:0},fill:{opacity:.85},legend:{markers:{shape:"square",radius:2,size:8}},tooltip:{shared:!1},xaxis:{tooltip:{enabled:!1},crosshairs:{width:"barWidth",position:"back",fill:{type:"gradient"},dropShadow:{enabled:!1},stroke:{width:0}}}}}},{key:"candlestick",value:function(){return{stroke:{width:1,colors:["#333"]},dataLabels:{enabled:!1},tooltip:{shared:!0,custom:function(t){var e=t.seriesIndex,i=t.dataPointIndex,a=t.w;return'
    Open: '+a.globals.seriesCandleO[e][i]+'
    High: '+a.globals.seriesCandleH[e][i]+'
    Low: '+a.globals.seriesCandleL[e][i]+'
    Close: '+a.globals.seriesCandleC[e][i]+"
    "}},states:{active:{filter:{type:"none"}}},xaxis:{crosshairs:{width:1}}}}},{key:"rangeBar",value:function(){return{stroke:{width:0},plotOptions:{bar:{dataLabels:{position:"center"}}},dataLabels:{enabled:!1,formatter:function(t,e){e.ctx;var i=e.seriesIndex,a=e.dataPointIndex,s=e.w,n=s.globals.seriesRangeStart[i][a];return s.globals.seriesRangeEnd[i][a]-n},style:{colors:["#fff"]}},tooltip:{shared:!1,followCursor:!0,custom:function(t){var e=t.ctx,i=t.seriesIndex,a=t.dataPointIndex,s=t.w,n=s.globals.seriesRangeStart[i][a],r=s.globals.seriesRangeEnd[i][a],o="",l="",h=s.globals.colors[i];if(void 0===s.config.tooltip.x.formatter)if("datetime"===s.config.xaxis.type){var c=new v(e);o=c.formatDate(new Date(n),s.config.tooltip.x.format,!0,!0),l=c.formatDate(new Date(r),s.config.tooltip.x.format,!0,!0)}else o=n,l=r;else o=s.config.tooltip.x.formatter(n),l=s.config.tooltip.x.formatter(r);var d=s.globals.labels[a];return'
    '+(s.config.series[i].name?s.config.series[i].name:"")+'
    '+d+': '+o+' - '+l+"
    "}},xaxis:{tooltip:{enabled:!1},crosshairs:{stroke:{width:0}}}}}},{key:"area",value:function(){return{stroke:{width:4},fill:{type:"gradient",gradient:{inverseColors:!1,shade:"light",type:"vertical",opacityFrom:.65,opacityTo:.5,stops:[0,100,100]}},markers:{size:0,hover:{sizeOffset:6}},tooltip:{followCursor:!1}}}},{key:"brush",value:function(t){return u.extend(t,{chart:{toolbar:{autoSelected:"selection",show:!1},zoom:{enabled:!1}},dataLabels:{enabled:!1},stroke:{width:1},tooltip:{enabled:!1},xaxis:{tooltip:{enabled:!1}}})}},{key:"stacked100",value:function(){var t=this;this.opts.dataLabels=this.opts.dataLabels||{},this.opts.dataLabels.formatter=this.opts.dataLabels.formatter||void 0;var e=this.opts.dataLabels.formatter;this.opts.yaxis.forEach(function(e,i){t.opts.yaxis[i].min=0,t.opts.yaxis[i].max=100}),"bar"===this.opts.chart.type&&(this.opts.dataLabels.formatter=e||function(t){return"number"==typeof t&&t?t.toFixed(0)+"%":t})}},{key:"bubble",value:function(){return{dataLabels:{style:{colors:["#fff"]}},tooltip:{shared:!1,intersect:!0},xaxis:{crosshairs:{width:0}},fill:{type:"solid",gradient:{shade:"light",inverse:!0,shadeIntensity:.55,opacityFrom:.4,opacityTo:.8}}}}},{key:"scatter",value:function(){return{dataLabels:{enabled:!1},tooltip:{shared:!1,intersect:!0},markers:{size:6,strokeWidth:2,hover:{sizeOffset:2}}}}},{key:"heatmap",value:function(){return{chart:{stacked:!1,zoom:{enabled:!1}},fill:{opacity:1},dataLabels:{style:{colors:["#fff"]}},stroke:{colors:["#fff"]},tooltip:{followCursor:!0,marker:{show:!1},x:{show:!1}},legend:{position:"top",markers:{shape:"square",size:10,offsetY:2}},grid:{padding:{right:20}}}}},{key:"pie",value:function(){return{chart:{toolbar:{show:!1}},plotOptions:{pie:{donut:{labels:{show:!1}}}},dataLabels:{formatter:function(t){return t.toFixed(1)+"%"},style:{colors:["#fff"]},dropShadow:{enabled:!0}},stroke:{colors:["#fff"]},fill:{opacity:1,gradient:{shade:"dark",shadeIntensity:.35,inverseColors:!1,stops:[0,100,100]}},padding:{right:0,left:0},tooltip:{theme:"dark",fillSeriesColor:!0},legend:{position:"right"}}}},{key:"donut",value:function(){return{chart:{toolbar:{show:!1}},dataLabels:{formatter:function(t){return t.toFixed(1)+"%"},style:{colors:["#fff"]},dropShadow:{enabled:!0}},stroke:{colors:["#fff"]},fill:{opacity:1,gradient:{shade:"dark",shadeIntensity:.4,inverseColors:!1,type:"vertical",opacityFrom:1,opacityTo:1,stops:[70,98,100]}},padding:{right:0,left:0},tooltip:{theme:"dark",fillSeriesColor:!0},legend:{position:"right"}}}},{key:"radar",value:function(){return this.opts.yaxis[0].labels.style.fontSize="13px",this.opts.yaxis[0].labels.offsetY=6,{dataLabels:{enabled:!0,style:{colors:["#a8a8a8"],fontSize:"11px"}},stroke:{width:2},markers:{size:3,strokeWidth:1,strokeOpacity:1},fill:{opacity:.2},tooltip:{shared:!1,intersect:!0,followCursor:!0},grid:{show:!1},xaxis:{tooltip:{enabled:!1},crosshairs:{show:!1}}}}},{key:"radialBar",value:function(){return{chart:{animations:{dynamicAnimation:{enabled:!0,speed:800}},toolbar:{show:!1}},fill:{gradient:{shade:"dark",shadeIntensity:.4,inverseColors:!1,type:"diagonal2",opacityFrom:1,opacityTo:1,stops:[70,98,100]}},padding:{right:0,left:0},legend:{show:!1,position:"right"},tooltip:{enabled:!1,fillSeriesColor:!0}}}}],[{key:"convertCatToNumeric",value:function(t){t.xaxis.type="numeric",t.xaxis.convertedCatToNumeric=!0,t.xaxis.labels=t.xaxis.labels||{},t.xaxis.labels.formatter=t.xaxis.labels.formatter||function(t){return t},t.chart=t.chart||{},t.chart.zoom=t.chart.zoom||window.Apex.chart&&window.Apex.chart.zoom||{};var e=t.xaxis.labels.formatter,i=t.xaxis.categories&&t.xaxis.categories.length?t.xaxis.categories:t.labels;return i&&i.length&&(t.xaxis.labels.formatter=function(t){return e(i[t-1])}),t.xaxis.categories=[],t.labels=[],t.chart.zoom.enabled=t.chart.zoom.enabled||!1,t}}]),t}(),w=function(){function t(i){e(this,t),this.ctx=i,this.w=i.w}return a(t,[{key:"getStackedSeriesTotals",value:function(){var t=this.w,e=[];if(0===t.globals.series.length)return e;for(var i=0;i0&&void 0!==arguments[0]?arguments[0]:null;return null===t?this.w.config.series.reduce(function(t,e){return t+e},0):this.w.globals.series[t].reduce(function(t,e){return t+e},0)}},{key:"isSeriesNull",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:null;return 0===(null===t?this.w.config.series.filter(function(t){return null!==t}):this.w.globals.series[t].filter(function(t){return null!==t})).length}},{key:"seriesHaveSameValues",value:function(t){return this.w.globals.series[t].every(function(t,e,i){return t===i[0]})}},{key:"getLargestSeries",value:function(){var t=this.w;t.globals.maxValsInArrayIndex=t.globals.series.map(function(t){return t.length}).indexOf(Math.max.apply(Math,t.globals.series.map(function(t){return t.length})))}},{key:"getLargestMarkerSize",value:function(){var t=this.w,e=0;return t.globals.markers.size.forEach(function(t){e=Math.max(e,t)}),t.globals.markers.largestSize=e,e}},{key:"getSeriesTotals",value:function(){var t=this.w;t.globals.seriesTotals=t.globals.series.map(function(t,e){var i=0;if(Array.isArray(t))for(var a=0;at&&i.globals.seriesX[s][r]1)throw new Error("Multiple Y Axis for bars are not supported. Switch to column chart by setting plotOptions.bar.horizontal=false");e.yaxis[0].reversed&&(e.yaxis[0].opposite=!0),e.xaxis.tooltip.enabled=!1,e.yaxis[0].tooltip.enabled=!1,e.chart.zoom.enabled=!1}return"bar"!==e.chart.type&&"rangeBar"!==e.chart.type||e.tooltip.shared&&("barWidth"===e.xaxis.crosshairs.width&&e.series.length>1&&(console.warn('crosshairs.width = "barWidth" is only supported in single series, not in a multi-series barChart.'),e.xaxis.crosshairs.width="tickWidth"),e.plotOptions.bar.horizontal&&(e.states.hover.type="none",e.tooltip.shared=!1),e.tooltip.followCursor||(console.warn("followCursor option in shared columns cannot be turned off. Please set %ctooltip.followCursor: true","color: blue;"),e.tooltip.followCursor=!0)),"candlestick"===e.chart.type&&e.yaxis[0].reversed&&(console.warn("Reversed y-axis in candlestick chart is not supported."),e.yaxis[0].reversed=!1),e.chart.group&&0===e.yaxis[0].labels.minWidth&&console.warn("It looks like you have multiple charts in synchronization. You must provide yaxis.labels.minWidth which must be EQUAL for all grouped charts to prevent incorrect behaviour."),Array.isArray(e.stroke.width)&&"line"!==e.chart.type&&"area"!==e.chart.type&&(console.warn("stroke.width option accepts array only for line and area charts. Reverted back to Number"),e.stroke.width=e.stroke.width[0]),e}}]),i}(),A=function(){function t(){e(this,t)}return a(t,[{key:"globalVars",value:function(t){return{chartID:null,cuid:null,events:{beforeMount:[],mounted:[],updated:[],clicked:[],selection:[],dataPointSelection:[],zoomed:[],scrolled:[]},colors:[],clientX:null,clientY:null,fill:{colors:[]},stroke:{colors:[]},dataLabels:{style:{colors:[]}},radarPolygons:{fill:{colors:[]}},markers:{colors:[],size:t.markers.size,largestSize:0},animationEnded:!1,isTouchDevice:"ontouchstart"in window||navigator.msMaxTouchPoints,isDirty:!1,isExecCalled:!1,initialConfig:null,series:[],seriesRangeStart:[],seriesRangeEnd:[],seriesPercent:[],seriesTotals:[],stackedSeriesTotals:[],seriesX:[],seriesZ:[],columnSeries:null,labels:[],timelineLabels:[],invertedTimelineLabels:[],seriesNames:[],noLabelsProvided:!1,allSeriesCollapsed:!1,collapsedSeries:[],collapsedSeriesIndices:[],ancillaryCollapsedSeries:[],ancillaryCollapsedSeriesIndices:[],risingSeries:[],dataFormatXNumeric:!1,capturedSeriesIndex:-1,capturedDataPointIndex:-1,selectedDataPoints:[],ignoreYAxisIndexes:[],yAxisSameScaleIndices:[],padHorizontal:0,maxValsInArrayIndex:0,radialSize:0,zoomEnabled:"zoom"===t.chart.toolbar.autoSelected&&t.chart.toolbar.tools.zoom&&t.chart.zoom.enabled,panEnabled:"pan"===t.chart.toolbar.autoSelected&&t.chart.toolbar.tools.pan,selectionEnabled:"selection"===t.chart.toolbar.autoSelected&&t.chart.toolbar.tools.selection,yaxis:null,minY:Number.MIN_VALUE,maxY:-Number.MAX_VALUE,minYArr:[],maxYArr:[],maxX:-Number.MAX_VALUE,initialmaxX:-Number.MAX_VALUE,minX:Number.MIN_VALUE,initialminX:Number.MIN_VALUE,minZ:Number.MIN_VALUE,maxZ:-Number.MAX_VALUE,minXDiff:Number.MAX_VALUE,mousedown:!1,lastClientPosition:{},visibleXRange:void 0,yRange:[],zRange:0,xRange:0,yValueDecimal:0,total:0,SVGNS:"http://www.w3.org/2000/svg",svgWidth:0,svgHeight:0,noData:!1,locale:{},dom:{},memory:{methodsToExec:[]},shouldAnimate:!0,skipLastTimelinelabel:!1,delayedElements:[],axisCharts:!0,isXNumeric:!1,isDataXYZ:!1,resized:!1,resizeTimer:null,comboCharts:!1,comboChartsHasBars:!1,dataChanged:!1,previousPaths:[],seriesXvalues:[],seriesYvalues:[],seriesCandleO:[],seriesCandleH:[],seriesCandleL:[],seriesCandleC:[],allSeriesHasEqualX:!0,dataPoints:0,pointsArray:[],dataLabelsRects:[],lastDrawnDataLabelsIndexes:[],hasNullValues:!1,easing:null,zoomed:!1,gridWidth:0,gridHeight:0,yAxisScale:[],xAxisScale:null,xAxisTicksPositions:[],timescaleTicks:[],rotateXLabels:!1,defaultLabels:!1,xLabelFormatter:void 0,yLabelFormatters:[],xaxisTooltipFormatter:void 0,ttKeyFormatter:void 0,ttVal:void 0,ttZFormatter:void 0,LINE_HEIGHT_RATIO:1.618,xAxisLabelsHeight:0,yAxisLabelsWidth:0,scaleX:1,scaleY:1,translateX:0,translateY:0,translateYAxisX:[],yLabelsCoords:[],yTitleCoords:[],yAxisWidths:[],translateXAxisY:0,translateXAxisX:0,tooltip:null,tooltipOpts:null}}},{key:"init",value:function(t){var e=this.globalVars(t);return e.initialConfig=u.extend({},t),e.initialSeries=JSON.parse(JSON.stringify(e.initialConfig.series)),e}}]),t}(),S=function(){function t(i){e(this,t),this.opts=i}return a(t,[{key:"init",value:function(){var t=new k(this.opts).init();return{config:t,globals:(new A).init(t)}}}]),t}(),C=function(){function t(i){e(this,t),this.ctx=i,this.w=i.w,this.opts=null,this.seriesIndex=0}return a(t,[{key:"clippedImgArea",value:function(t){var e=this.w,i=e.config,a=parseInt(e.globals.gridWidth),s=parseInt(e.globals.gridHeight),n=a>s?a:s,r=t.image,o=0,l=0;void 0===t.width&&void 0===t.height?void 0!==i.fill.image.width&&void 0!==i.fill.image.height?(o=i.fill.image.width+1,l=i.fill.image.height):(o=n+1,l=n):(o=t.width,l=t.height);var h=document.createElementNS(e.globals.SVGNS,"pattern");p.setAttrs(h,{id:t.patternID,patternUnits:t.patternUnits?t.patternUnits:"userSpaceOnUse",width:o+"px",height:l+"px"});var c=document.createElementNS(e.globals.SVGNS,"image");h.appendChild(c),c.setAttributeNS("http://www.w3.org/1999/xlink","href",r),p.setAttrs(c,{x:0,y:0,preserveAspectRatio:"none",width:o+"px",height:l+"px"}),c.style.opacity=t.opacity,e.globals.dom.elDefs.node.appendChild(h)}},{key:"getSeriesIndex",value:function(t){var e=this.w;return"bar"===e.config.chart.type&&e.config.plotOptions.bar.distributed||"heatmap"===e.config.chart.type?this.seriesIndex=t.seriesNumber:this.seriesIndex=t.seriesNumber%e.globals.series.length,this.seriesIndex}},{key:"fillPath",value:function(t){var e=this.w;this.opts=t;var i,a,s,n=this.w.config;this.seriesIndex=this.getSeriesIndex(t);var r=this.getFillColors()[this.seriesIndex];"function"==typeof r&&(r=r({seriesIndex:this.seriesIndex,value:t.value,w:e}));var o=this.getFillType(this.seriesIndex),l=Array.isArray(n.fill.opacity)?n.fill.opacity[this.seriesIndex]:n.fill.opacity,h=r;return t.color&&(r=t.color),-1===r.indexOf("rgb")?h=u.hexToRgba(r,l):r.indexOf("rgba")>-1&&(l="0."+u.getOpacityFromRGBA(r)),"pattern"===o&&(a=this.handlePatternFill(a,r,l,h)),"gradient"===o&&(s=this.handleGradientFill(s,r,l,this.seriesIndex)),n.fill.image.src.length>0&&"image"===o?t.seriesNumber0){if(t.globals.markers.size.length0&&(o=l.group({class:"apexcharts-series-markers"})).attr("clip-path","url(#gridRectMarkerMask".concat(s.globals.cuid,")")),r.x instanceof Array)for(var h=0;h0:s.config.markers.size>0){u.isNumber(r.y[h])?d+=" w".concat(u.randomId()):d="apexcharts-nullpoint";var f=this.getMarkerConfig(d,e,c);s.config.series[n].data[i]&&(s.config.series[n].data[i].fillColor&&(f.pointFillColor=s.config.series[n].data[i].fillColor),s.config.series[n].data[i].strokeColor&&(f.pointStrokeColor=s.config.series[n].data[i].strokeColor)),(a=l.drawMarker(r.x[h],r.y[h],f)).attr("rel",c),a.attr("j",c),a.attr("index",e),a.node.setAttribute("default-marker-size",f.pSize),new g(this.ctx).setSelectionFilter(a,e,c),this.addEvents(a),o&&o.add(a)}else void 0===s.globals.pointsArray[e]&&(s.globals.pointsArray[e]=[]),s.globals.pointsArray[e].push([r.x[h],r.y[h]])}return o}},{key:"getMarkerConfig",value:function(t,e){var i=arguments.length>2&&void 0!==arguments[2]?arguments[2]:null,a=this.w,s=this.getMarkerStyle(e),n=a.globals.markers.size[e],r=a.config.markers;null!==i&&r.discrete.length&&r.discrete.map(function(t){t.seriesIndex===e&&t.dataPointIndex===i&&(s.pointStrokeColor=t.strokeColor,s.pointFillColor=t.fillColor,n=t.size)});var o="bubble"===a.config.chart.type?a.config.stroke.width:r.strokeWidth;return{pSize:n,pRadius:r.radius,pWidth:o instanceof Array?o[e]:o,pointStrokeColor:s.pointStrokeColor,pointFillColor:s.pointFillColor,shape:r.shape instanceof Array?r.shape[e]:r.shape,class:t,pointStrokeOpacity:r.strokeOpacity instanceof Array?r.strokeOpacity[e]:r.strokeOpacity,pointFillOpacity:r.fillOpacity instanceof Array?r.fillOpacity[e]:r.fillOpacity,seriesIndex:e}}},{key:"addEvents",value:function(t){var e=this.w,i=new p(this.ctx);t.node.addEventListener("mouseenter",i.pathMouseEnter.bind(this.ctx,t)),t.node.addEventListener("mouseleave",i.pathMouseLeave.bind(this.ctx,t)),t.node.addEventListener("mousedown",i.pathMouseDown.bind(this.ctx,t)),t.node.addEventListener("click",e.config.markers.onClick),t.node.addEventListener("dblclick",e.config.markers.onDblClick),t.node.addEventListener("touchstart",i.pathMouseDown.bind(this.ctx,t),{passive:!0})}},{key:"getMarkerStyle",value:function(t){var e=this.w,i=e.globals.markers.colors,a=e.config.markers.strokeColor||e.config.markers.strokeColors;return{pointStrokeColor:a instanceof Array?a[t]:a,pointFillColor:i instanceof Array?i[t]:i}}}]),t}(),P=function(){function t(i){e(this,t),this.ctx=i,this.w=i.w,this.initialAnim=this.w.config.chart.animations.enabled,this.dynamicAnim=this.initialAnim&&this.w.config.chart.animations.dynamicAnimation.enabled}return a(t,[{key:"draw",value:function(t,e,i){var a=this.w,s=new p(this.ctx),n=i.realIndex,r=i.pointsPos,o=i.zRatio,l=i.elParent,h=s.group({class:"apexcharts-series-markers apexcharts-series-".concat(a.config.chart.type)});if(h.attr("clip-path","url(#gridRectMarkerMask".concat(a.globals.cuid,")")),r.x instanceof Array)for(var c=0;cx.maxBubbleRadius&&(f=x.maxBubbleRadius)}a.config.chart.animations.enabled||(g=f);var b=r.x[c],m=r.y[c];if(g=g||0,null!==m&&void 0!==a.globals.series[n][d]||(u=!1),u){var v=this.drawPoint(b,m,g,f,n,d,e);h.add(v)}l.add(h)}}},{key:"drawPoint",value:function(t,e,i,a,s,n,r){var o=this.w,l=s,h=new f(this.ctx),c=new g(this.ctx),d=new C(this.ctx),u=new L(this.ctx),x=new p(this.ctx),b=u.getMarkerConfig("apexcharts-marker",l),m=d.fillPath({seriesNumber:s,patternUnits:"objectBoundingBox",value:o.globals.series[s][r]}),v=x.drawCircle(i);if(o.config.series[l].data[n]&&o.config.series[l].data[n].fillColor&&(m=o.config.series[l].data[n].fillColor),v.attr({cx:t,cy:e,fill:m,stroke:b.pointStrokeColor,"stroke-width":b.pWidth}),o.config.chart.dropShadow.enabled){var y=o.config.chart.dropShadow;c.dropShadow(v,y,s)}if(this.initialAnim&&!o.globals.dataChanged){var w=1;o.globals.resized||(w=o.config.chart.animations.speed),h.animateCircleRadius(v,0,a,w,o.globals.easing)}if(o.globals.dataChanged)if(this.dynamicAnim){var k,A,S,P,z=o.config.chart.animations.dynamicAnimation.speed;null!=(P=o.globals.previousPaths[s]&&o.globals.previousPaths[s][r])&&(k=P.x,A=P.y,S=void 0!==P.r?P.r:a);for(var E=0;Ef.x+f.width+2||e>f.y+f.height+2||t+c4&&void 0!==arguments[4]?arguments[4]:"top",s=this.w,n=new p(this.ctx),r=s.config.dataLabels,o=0,l=0,h=i,c=null;if(!r.enabled||t.x instanceof Array!=!0)return c;c=n.group({class:"apexcharts-data-labels"});for(var d=0;de.globals.gridWidth+10)&&(o=""),f.drawnextLabel){var x=i.drawText({width:100,height:parseInt(c.style.fontSize),x:a,y:s,foreColor:e.globals.dataLabels.style.colors[n],textAnchor:l||c.textAnchor,text:o,fontSize:c.style.fontSize,fontFamily:c.style.fontFamily});if(x.attr({class:"apexcharts-datalabel",cx:a,cy:s}),c.dropShadow.enabled){var b=c.dropShadow;new g(this.ctx).dropShadow(x,b)}h.add(x),void 0===e.globals.lastDrawnDataLabelsIndexes[n]&&(e.globals.lastDrawnDataLabelsIndexes[n]=[]),e.globals.lastDrawnDataLabelsIndexes[n].push(r)}}}}]),t}(),E=function(){function t(i,a){e(this,t),this.ctx=i,this.w=i.w;var s=this.w;this.barOptions=s.config.plotOptions.bar,this.isHorizontal=this.barOptions.horizontal,this.strokeWidth=s.config.stroke.width,this.isNullValue=!1,this.xyRatios=a,null!==this.xyRatios&&(this.xRatio=a.xRatio,this.yRatio=a.yRatio,this.invertedXRatio=a.invertedXRatio,this.invertedYRatio=a.invertedYRatio,this.baseLineY=a.baseLineY,this.baseLineInvertedY=a.baseLineInvertedY),this.yaxisIndex=0,this.seriesLen=0}return a(t,[{key:"draw",value:function(t,e){var i=this.w,a=new p(this.ctx),s=new w(this.ctx,i);t=s.getLogSeries(t),this.series=t,this.yRatio=s.getLogYRatios(this.yRatio),this.initVariables(t);var n=a.group({class:"apexcharts-bar-series apexcharts-plot-series"});i.config.dataLabels.enabled&&this.totalItems>this.barOptions.dataLabels.maxItems&&console.warn("WARNING: DataLabels are enabled but there are too many to display. This may cause performance issue when rendering.");for(var r=0,o=0;r0&&(this.visibleI=this.visibleI+1);var A=0,S=0,C=0;this.yRatio.length>1&&(this.yaxisIndex=y),this.isReversed=i.config.yaxis[this.yaxisIndex]&&i.config.yaxis[this.yaxisIndex].reversed;var L=this.initialPositions();b=L.y,S=L.barHeight,h=L.yDivision,d=L.zeroW,x=L.x,C=L.barWidth,l=L.xDivision,c=L.zeroH,this.horizontal||v.push(x+C/2);for(var P=a.group({class:"apexcharts-datalabels"}),z=0,E=i.globals.dataPoints;z0&&v.push(x+C/2),m.push(b);var T=this.getPathFillColor(t,r,z,y);k=this.renderSeries({realIndex:y,pathFill:T,j:z,i:r,pathFrom:f,pathTo:g,strokeWidth:A,elSeries:k,x:x,y:b,series:t,barHeight:S,barWidth:C,elDataLabelsWrap:P,visibleSeries:this.visibleI,type:"bar"})}i.globals.seriesXvalues[y]=v,i.globals.seriesYvalues[y]=m,n.add(k)}return n}},{key:"getPathFillColor",value:function(t,e,i,a){var s=this.w,n=new C(this.ctx),r=null,o=this.barOptions.distributed?i:e;this.barOptions.colors.ranges.length>0&&this.barOptions.colors.ranges.map(function(a){t[e][i]>=a.from&&t[e][i]<=a.to&&(r=a.color)});return s.config.series[e].data[i]&&s.config.series[e].data[i].fillColor&&(r=s.config.series[e].data[i].fillColor),n.fillPath({seriesNumber:this.barOptions.distributed?o:a,color:r,value:t[e][i]})}},{key:"renderSeries",value:function(t){var e=t.realIndex,i=t.pathFill,a=t.lineFill,s=t.j,n=t.i,r=t.pathFrom,o=t.pathTo,l=t.strokeWidth,h=t.elSeries,c=t.x,d=t.y,u=t.series,f=t.barHeight,x=t.barWidth,b=t.elDataLabelsWrap,m=t.visibleSeries,v=t.type,y=this.w,w=new p(this.ctx);a||(a=this.barOptions.distributed?y.globals.stroke.colors[s]:y.globals.stroke.colors[e]),y.config.series[n].data[s]&&y.config.series[n].data[s].strokeColor&&(a=y.config.series[n].data[s].strokeColor),this.isNullValue&&(i="none");var k=s/y.config.chart.animations.animateGradually.delay*(y.config.chart.animations.speed/y.globals.dataPoints)/2.4,A=w.renderPaths({i:n,j:s,realIndex:e,pathFrom:r,pathTo:o,stroke:a,strokeWidth:l,strokeLineCap:y.config.stroke.lineCap,fill:i,animationDelay:k,initialSpeed:y.config.chart.animations.speed,dataChangeSpeed:y.config.chart.animations.dynamicAnimation.speed,className:"apexcharts-".concat(v,"-area")});A.attr("clip-path","url(#gridRectMask".concat(y.globals.cuid,")")),new g(this.ctx).setSelectionFilter(A,e,s),h.add(A);var S=this.calculateDataLabelsPos({x:c,y:d,i:n,j:s,series:u,realIndex:e,barHeight:f,barWidth:x,renderedPath:A,visibleSeries:m});return null!==S&&b.add(S),h.add(b),h}},{key:"initVariables",value:function(t){var e=this.w;this.series=t,this.totalItems=0,this.seriesLen=0,this.visibleI=-1,this.visibleItems=1;for(var i=0;i0&&(this.seriesLen=this.seriesLen+1,this.totalItems+=t[i].length),e.globals.isXNumeric)for(var a=0;ae.globals.minX&&e.globals.seriesX[i][a]0&&(a=l.globals.minXDiff/this.xRatio),(n=a/this.seriesLen*parseInt(this.barOptions.columnWidth)/100)<1&&(n=1)),r=l.globals.gridHeight-this.baseLineY[this.yaxisIndex]-(this.isReversed?l.globals.gridHeight:0)+(this.isReversed?2*this.baseLineY[this.yaxisIndex]:0),t=l.globals.padHorizontal+(a-n*this.seriesLen)/2),{x:t,y:e,yDivision:i,xDivision:a,barHeight:s,barWidth:n,zeroH:r,zeroW:o}}},{key:"drawBarPaths",value:function(t){var e=t.indexes,i=t.barHeight,a=t.strokeWidth,s=t.pathTo,n=t.pathFrom,r=t.zeroW,o=t.x,l=t.y,h=t.yDivision,c=t.elSeries,d=this.w,u=new p(this.ctx),g=e.i,f=e.j,x=e.realIndex,b=e.bc;d.globals.isXNumeric&&(l=(d.globals.seriesX[g][f]-d.globals.minX)/this.invertedXRatio-i);var m=l+i*this.visibleI;s=u.move(r,m),n=u.move(r,m),d.globals.previousPaths.length>0&&(n=this.getPathFrom(x,f));var v={barHeight:i,strokeWidth:a,barYPosition:m,x:o=void 0===this.series[g][f]||null===this.series[g][f]?r:r+this.series[g][f]/this.invertedYRatio-2*(this.isReversed?this.series[g][f]/this.invertedYRatio:0),zeroW:r},y=this.barEndingShape(d,v,this.series,g,f);if(s=s+u.line(y.newX,m)+y.path+u.line(r,m+i-a)+u.line(r,m),n=n+u.line(r,m)+y.ending_p_from+u.line(r,m+i-a)+u.line(r,m+i-a)+u.line(r,m),d.globals.isXNumeric||(l+=h),this.barOptions.colors.backgroundBarColors.length>0&&0===g){b>=this.barOptions.colors.backgroundBarColors.length&&(b=0);var w=this.barOptions.colors.backgroundBarColors[b],k=u.drawRect(0,m-i*this.visibleI,d.globals.gridWidth,i*this.seriesLen,0,w,this.barOptions.colors.backgroundBarOpacity);c.add(k),k.node.classList.add("apexcharts-backgroundBar")}return{pathTo:s,pathFrom:n,x:o,y:l,barYPosition:m}}},{key:"drawColumnPaths",value:function(t){var e=t.indexes,i=t.x,a=t.y,s=t.xDivision,n=t.pathTo,r=t.pathFrom,o=t.barWidth,l=t.zeroH,h=t.strokeWidth,c=t.elSeries,d=this.w,u=new p(this.ctx),g=e.i,f=e.j,x=e.realIndex,b=e.bc;if(d.globals.isXNumeric){var m=g;d.globals.seriesX[g].length||(m=d.globals.maxValsInArrayIndex),i=(d.globals.seriesX[m][f]-d.globals.minX)/this.xRatio-o/2}var v=i+o*this.visibleI;n=u.move(v,l),r=u.move(v,l),d.globals.previousPaths.length>0&&(r=this.getPathFrom(x,f));var y={barWidth:o,strokeWidth:h,barXPosition:v,y:a=void 0===this.series[g][f]||null===this.series[g][f]?l:l-this.series[g][f]/this.yRatio[this.yaxisIndex]+2*(this.isReversed?this.series[g][f]/this.yRatio[this.yaxisIndex]:0),zeroH:l},w=this.barEndingShape(d,y,this.series,g,f);if(n=n+u.line(v,w.newY)+w.path+u.line(v+o-h,l)+u.line(v-h/2,l),r=r+u.line(v,l)+w.ending_p_from+u.line(v+o-h,l)+u.line(v+o-h,l)+u.line(v-h/2,l),d.globals.isXNumeric||(i+=s),this.barOptions.colors.backgroundBarColors.length>0&&0===g){b>=this.barOptions.colors.backgroundBarColors.length&&(b=0);var k=this.barOptions.colors.backgroundBarColors[b],A=u.drawRect(v-o*this.visibleI,0,o*this.seriesLen,d.globals.gridHeight,0,k,this.barOptions.colors.backgroundBarOpacity);c.add(A),A.node.classList.add("apexcharts-backgroundBar")}return{pathTo:n,pathFrom:r,x:i,y:a,barXPosition:v}}},{key:"getPathFrom",value:function(t,e){for(var i,a=this.w,s=0;s0&&parseInt(n.realIndex)===parseInt(t)&&void 0!==a.globals.previousPaths[s].paths[e]&&(i=a.globals.previousPaths[s].paths[e].d)}return i}},{key:"calculateDataLabelsPos",value:function(t){var e=t.x,i=t.y,a=t.i,s=t.j,n=t.realIndex,r=t.series,o=t.barHeight,l=t.barWidth,h=t.visibleSeries,c=t.renderedPath,d=this.w,u=new p(this.ctx),g=Array.isArray(this.strokeWidth)?this.strokeWidth[n]:this.strokeWidth,f=e+parseFloat(l*h),x=i+parseFloat(o*h);d.globals.isXNumeric&&!d.globals.isBarHorizontal&&(f=e+parseFloat(l*(h+1)),x=i+parseFloat(o*(h+1))-g);var b=e,m=i,v={},y=d.config.dataLabels,w=this.barOptions.dataLabels,k=y.offsetX,A=y.offsetY,S={width:0,height:0};return d.config.dataLabels.enabled&&(S=u.getTextRects(d.globals.yLabelFormatters[0](d.globals.maxY),parseFloat(y.style.fontSize))),v=this.isHorizontal?this.calculateBarsDataLabelsPosition({x:e,y:i,i:a,j:s,renderedPath:c,bcy:x,barHeight:o,barWidth:l,textRects:S,strokeWidth:g,dataLabelsX:b,dataLabelsY:m,barDataLabelsConfig:w,offX:k,offY:A}):this.calculateColumnsDataLabelsPosition({x:e,y:i,i:a,j:s,renderedPath:c,realIndex:n,bcx:f,bcy:x,barHeight:o,barWidth:l,textRects:S,strokeWidth:g,dataLabelsY:m,barDataLabelsConfig:w,offX:k,offY:A}),c.attr({cy:v.bcy,cx:v.bcx,j:s,val:r[a][s],barHeight:o,barWidth:l}),this.drawCalculatedDataLabels({x:v.dataLabelsX,y:v.dataLabelsY,val:r[a][s],i:n,j:s,barWidth:l,barHeight:o,textRects:S,dataLabelsConfig:y})}},{key:"calculateColumnsDataLabelsPosition",value:function(t){var e,i=this.w,a=t.i,s=t.j,n=t.y,r=t.bcx,o=t.barWidth,l=t.barHeight,h=t.textRects,c=t.dataLabelsY,d=t.barDataLabelsConfig,u=t.strokeWidth,g=t.offX,f=t.offY,p="vertical"===i.config.plotOptions.bar.dataLabels.orientation;r-=u/2;var x=i.globals.gridWidth/i.globals.dataPoints;if(e=i.globals.isXNumeric?r-o/2+g:r-x+o/2+g,p){e=e+h.height/2-u/2-2}var b=this.series[a][s]<=0;switch(this.isReversed&&(n-=l),d.position){case"center":c=p?b?n+l/2+f:n+l/2-f:b?n+l/2+h.height/2+f:n+l/2+h.height/2-f;break;case"bottom":c=p?b?n+l+f:n+l-f:b?n+l+h.height+u+f:n+l-h.height/2+u-f;break;case"top":c=p?b?n+f:n-f:b?n-h.height/2-f:n+h.height+f}return i.config.chart.stacked||(c<0?c=0+u:c+h.height/3>i.globals.gridHeight&&(c=i.globals.gridHeight-u)),{bcx:r,bcy:n,dataLabelsX:e,dataLabelsY:c}}},{key:"calculateBarsDataLabelsPosition",value:function(t){var e=this.w,i=t.x,a=t.i,s=t.j,n=t.bcy,r=t.barHeight,o=t.barWidth,l=t.textRects,h=t.dataLabelsX,c=t.strokeWidth,d=t.barDataLabelsConfig,u=t.offX,g=t.offY,f=n-e.globals.gridHeight/e.globals.dataPoints+r/2+l.height/2+g-3,p=this.series[a][s]<=0;switch(this.isReversed&&(i+=o),d.position){case"center":h=p?i-o/2-u:i-o/2+u;break;case"bottom":h=p?i-o-c-Math.round(l.width/2)-u:i-o+c+Math.round(l.width/2)+u;break;case"top":h=p?i-c+Math.round(l.width/2)-u:i-c-Math.round(l.width/2)+u}return e.config.chart.stacked||(h<0?h=h+l.width+c:h+l.width/2>e.globals.gridWidth&&(h=e.globals.gridWidth-l.width-c)),{bcx:i,bcy:n,dataLabelsX:h,dataLabelsY:f}}},{key:"drawCalculatedDataLabels",value:function(t){var e=t.x,i=t.y,a=t.val,s=t.i,n=t.j,o=t.textRects,l=t.barHeight,h=t.barWidth,c=t.dataLabelsConfig,d=this.w,u="rotate(0)";"vertical"===d.config.plotOptions.bar.dataLabels.orientation&&(u="rotate(-90, ".concat(e,", ").concat(i,")"));var g=new z(this.ctx),f=new p(this.ctx),x=c.formatter,b=null,m=d.globals.collapsedSeriesIndices.indexOf(s)>-1;if(c.enabled&&!m){b=f.group({class:"apexcharts-data-labels",transform:u});var v="";void 0!==a&&(v=x(a,{seriesIndex:s,dataPointIndex:n,w:d})),0===a&&d.config.chart.stacked&&(v="");var y=this.series[s][n]<=0,w=d.config.plotOptions.bar.dataLabels.position;"vertical"===d.config.plotOptions.bar.dataLabels.orientation&&("top"==w&&(c.textAnchor=y?"end":"start"),"center"==w&&(c.textAnchor="middle"),"bottom"==w&&(c.textAnchor=y?"end":"start")),d.config.chart.stacked&&this.barOptions.dataLabels.hideOverflowingLabels&&(this.isHorizontal?((h=this.series[s][n]/this.yRatio[this.yaxisIndex])>0&&o.width/1.6>h||h<0&&o.width/1.6l&&(v="")));var k=r({},c);this.isHorizontal&&a<0&&("start"===c.textAnchor?k.textAnchor="end":"end"===c.textAnchor&&(k.textAnchor="start")),g.plotDataLabelsText({x:e,y:i,text:v,i:this.barOptions.distributed?n:s,j:n,parent:b,dataLabelsConfig:k,alwaysDrawDataLabel:!0,offsetCorrection:!0})}return b}},{key:"barEndingShape",value:function(t,e,i,a,s){var n=new p(this.ctx);if(this.isHorizontal){var r=null,o=e.x;if(void 0!==i[a][s]||null!==i[a][s]){var l=i[a][s]<0,h=e.barHeight/2-e.strokeWidth;switch(l&&(h=-e.barHeight/2-e.strokeWidth),t.config.chart.stacked||"rounded"===this.barOptions.endingShape&&(o=e.x-h/2),this.barOptions.endingShape){case"flat":r=n.line(o,e.barYPosition+e.barHeight-e.strokeWidth);break;case"rounded":r=n.quadraticCurve(o+h,e.barYPosition+(e.barHeight-e.strokeWidth)/2,o,e.barYPosition+e.barHeight-e.strokeWidth)}}return{path:r,ending_p_from:"",newX:o}}var c=null,d=e.y;if(void 0!==i[a][s]||null!==i[a][s]){var u=i[a][s]<0,g=e.barWidth/2-e.strokeWidth;switch(u&&(g=-e.barWidth/2-e.strokeWidth),t.config.chart.stacked||"rounded"===this.barOptions.endingShape&&(d+=g/2),this.barOptions.endingShape){case"flat":c=n.line(e.barXPosition+e.barWidth-e.strokeWidth,d);break;case"rounded":c=n.quadraticCurve(e.barXPosition+(e.barWidth-e.strokeWidth)/2,d-g,e.barXPosition+e.barWidth-e.strokeWidth,d)}}return{path:c,ending_p_from:"",newY:d}}}]),t}(),M=function(t){function i(){return e(this,i),c(this,l(i).apply(this,arguments))}return o(i,E),a(i,[{key:"draw",value:function(t,e){var i=this.w;this.graphics=new p(this.ctx),this.fill=new C(this.ctx),this.bar=new E(this.ctx,this.xyRatios);var a=new w(this.ctx,i);t=a.getLogSeries(t),this.yRatio=a.getLogYRatios(this.yRatio),this.initVariables(t),"100%"===i.config.chart.stackType&&(t=i.globals.seriesPercent.slice()),this.series=t,this.totalItems=0,this.prevY=[],this.prevX=[],this.prevYF=[],this.prevXF=[],this.prevYVal=[],this.prevXVal=[],this.xArrj=[],this.xArrjF=[],this.xArrjVal=[],this.yArrj=[],this.yArrjF=[],this.yArrjVal=[];for(var s=0;s0&&(this.totalItems+=t[s].length);for(var n=this.graphics.group({class:"apexcharts-bar-series apexcharts-plot-series"}),r=0,o=0,l=0,h=0;l1&&(this.yaxisIndex=y),this.isReversed=i.config.yaxis[this.yaxisIndex]&&i.config.yaxis[this.yaxisIndex].reversed;var k=this.graphics.group({class:"apexcharts-series",seriesName:u.escapeString(i.globals.seriesNames[y]),rel:l+1,"data:realIndex":y}),A=this.graphics.group({class:"apexcharts-datalabels"}),S=0,L=0,P=0,z=this.initialPositions(r,o,g,f,x,b);o=z.y,L=z.barHeight,f=z.yDivision,b=z.zeroW,r=z.x,P=z.barWidth,g=z.xDivision,x=z.zeroH,this.yArrj=[],this.yArrjF=[],this.yArrjVal=[],this.xArrj=[],this.xArrjF=[],this.xArrjVal=[];for(var M=0;M0){var y=o;this.prevXVal[f-1][p]<0?y=this.series[f][p]>=0?this.prevX[f-1][p]+m-2*(this.isReversed?m:0):this.prevX[f-1][p]:this.prevXVal[f-1][p]>=0&&(y=this.series[f][p]>=0?this.prevX[f-1][p]:this.prevX[f-1][p]-m+2*(this.isReversed?m:0)),e=y}else e=o;l=null===this.series[f][p]?e:e+this.series[f][p]/this.invertedYRatio-2*(this.isReversed?this.series[f][p]/this.invertedYRatio:0);var w={barHeight:a,strokeWidth:s,invertedYRatio:this.invertedYRatio,barYPosition:g,x:l},k=this.bar.barEndingShape(u,w,this.series,f,p);if(this.series.length>1&&f!==this.endingShapeOnSeriesNumber&&(k.path=this.graphics.line(k.newX,g+a-s)),this.xArrj.push(k.newX),this.xArrjF.push(Math.abs(e-k.newX)),this.xArrjVal.push(this.series[f][p]),n=this.graphics.move(e,g),r=this.graphics.move(e,g),u.globals.previousPaths.length>0&&(r=this.bar.getPathFrom(x,p,!1)),n=n+this.graphics.line(k.newX,g)+k.path+this.graphics.line(e,g+a-s)+this.graphics.line(e,g),r=r+this.graphics.line(e,g)+this.graphics.line(e,g+a-s)+this.graphics.line(e,g+a-s)+this.graphics.line(e,g+a-s)+this.graphics.line(e,g),u.config.plotOptions.bar.colors.backgroundBarColors.length>0&&0===f){b>=u.config.plotOptions.bar.colors.backgroundBarColors.length&&(b=0);var A=u.config.plotOptions.bar.colors.backgroundBarColors[b],S=this.graphics.drawRect(0,g,u.globals.gridWidth,a,0,A,u.config.plotOptions.bar.colors.backgroundBarOpacity);d.add(S),S.node.classList.add("apexcharts-backgroundBar")}return{pathTo:n,pathFrom:r,x:l,y:h+=c}}},{key:"drawColumnPaths",value:function(t){var e=t.indexes,i=t.x,a=t.y,s=t.xDivision,n=t.pathTo,r=t.pathFrom,o=t.barWidth,l=t.zeroH,h=t.strokeWidth,c=t.elSeries,d=this.w,u=e.i,g=e.j,f=e.realIndex,p=e.bc;if(d.globals.isXNumeric){var x=d.globals.seriesX[u][g];x||(x=0),i=(x-d.globals.minX)/this.xRatio-o/2}for(var b,m=i,v=0,y=0;y0&&!d.globals.isXNumeric||u>0&&d.globals.isXNumeric&&d.globals.seriesX[u-1][g]===d.globals.seriesX[u][g]){var w=this.prevY[u-1][g];b=this.prevYVal[u-1][g]<0?this.series[u][g]>=0?w-v+2*(this.isReversed?v:0):w:this.series[u][g]>=0?w:w+v-2*(this.isReversed?v:0)}else b=d.globals.gridHeight-l;a=b-this.series[u][g]/this.yRatio[this.yaxisIndex]+2*(this.isReversed?this.series[u][g]/this.yRatio[this.yaxisIndex]:0);var k={barWidth:o,strokeWidth:h,yRatio:this.yRatio[this.yaxisIndex],barXPosition:m,y:a},A=this.bar.barEndingShape(d,k,this.series,u,g);if(this.yArrj.push(A.newY),this.yArrjF.push(Math.abs(b-A.newY)),this.yArrjVal.push(this.series[u][g]),n=this.graphics.move(m,b),r=this.graphics.move(m,b),d.globals.previousPaths.length>0&&(r=this.bar.getPathFrom(f,g,!1)),n=n+this.graphics.line(m,A.newY)+A.path+this.graphics.line(m+o-h,b)+this.graphics.line(m-h/2,b),r=r+this.graphics.line(m,b)+this.graphics.line(m+o-h,b)+this.graphics.line(m+o-h,b)+this.graphics.line(m+o-h,b)+this.graphics.line(m-h/2,b),d.config.plotOptions.bar.colors.backgroundBarColors.length>0&&0===u){p>=d.config.plotOptions.bar.colors.backgroundBarColors.length&&(p=0);var S=d.config.plotOptions.bar.colors.backgroundBarColors[p],C=this.graphics.drawRect(m,0,o,d.globals.gridHeight,0,S,d.config.plotOptions.bar.colors.backgroundBarOpacity);c.add(C),C.node.classList.add("apexcharts-backgroundBar")}return i+=s,{pathTo:n,pathFrom:r,x:d.globals.isXNumeric?i-s:i,y:a}}},{key:"checkZeroSeries",value:function(t){for(var e=t.series,i=this.w,a=0;a=0;r--)this.zeroSerieses.indexOf(r)>-1&&r===this.endingShapeOnSeriesNumber&&(this.endingShapeOnSeriesNumber-=1)}}]),i}(),T=function(t){function i(){return e(this,i),c(this,l(i).apply(this,arguments))}return o(i,E),a(i,[{key:"draw",value:function(t,e){var i=this.w,a=new p(this.ctx),s=new C(this.ctx);this.candlestickOptions=this.w.config.plotOptions.candlestick;var n=new w(this.ctx,i);t=n.getLogSeries(t),this.series=t,this.yRatio=n.getLogYRatios(this.yRatio),this.initVariables(t);for(var r=a.group({class:"apexcharts-candlestick-series apexcharts-plot-series"}),o=0,l=0;o0&&(this.visibleI=this.visibleI+1);var k,A,S=0;this.yRatio.length>1&&(this.yaxisIndex=v);var L=this.initialPositions();x=L.y,k=L.barHeight,f=L.x,A=L.barWidth,h=L.xDivision,c=L.zeroH,m.push(f+A/2);for(var P=a.group({class:"apexcharts-datalabels"}),z=0,E=i.globals.dataPoints;z0&&m.push(f+A/2),b.push(x);var I=s.fillPath({seriesNumber:v,color:M,value:t[o][z]}),X=this.candlestickOptions.wick.useFillColor?M:void 0;y=this.renderSeries({realIndex:v,pathFill:I,lineFill:X,j:z,i:o,pathFrom:g,pathTo:d,strokeWidth:S,elSeries:y,x:f,y:x,series:t,barHeight:k,barWidth:A,elDataLabelsWrap:P,visibleSeries:this.visibleI,type:"candlestick"})}i.globals.seriesXvalues[v]=m,i.globals.seriesYvalues[v]=b,r.add(y)}return r}},{key:"drawCandleStickPaths",value:function(t){var e=t.indexes,i=t.x,a=(t.y,t.xDivision),s=t.pathTo,n=t.pathFrom,r=t.barWidth,o=t.zeroH,l=t.strokeWidth,h=this.w,c=new p(this.ctx),d=e.i,u=e.j,g=!0,f=h.config.plotOptions.candlestick.colors.upward,x=h.config.plotOptions.candlestick.colors.downward,b=this.yRatio[this.yaxisIndex],m=e.realIndex,v=this.getOHLCValue(m,u),y=o,w=o;v.o>v.c&&(g=!1);var k=Math.min(v.o,v.c),A=Math.max(v.o,v.c);h.globals.isXNumeric&&(i=(h.globals.seriesX[m][u]-h.globals.minX)/this.xRatio-r/2);var S=i+r*this.visibleI;return void 0===this.series[d][u]||null===this.series[d][u]?k=o:(k=o-k/b,A=o-A/b,y=o-v.h/b,w=o-v.l/b),c.move(S,o),n=c.move(S,k),h.globals.previousPaths.length>0&&(n=this.getPathFrom(m,u,!0)),s=c.move(S,A)+c.line(S+r/2,A)+c.line(S+r/2,y)+c.line(S+r/2,A)+c.line(S+r,A)+c.line(S+r,k)+c.line(S+r/2,k)+c.line(S+r/2,w)+c.line(S+r/2,k)+c.line(S,k)+c.line(S,A-l/2),n+=c.move(S,k),h.globals.isXNumeric||(i+=a),{pathTo:s,pathFrom:n,x:i,y:A,barXPosition:S,color:g?f:x}}},{key:"getOHLCValue",value:function(t,e){var i=this.w;return{o:i.globals.seriesCandleO[t][e],h:i.globals.seriesCandleH[t][e],l:i.globals.seriesCandleL[t][e],c:i.globals.seriesCandleC[t][e]}}}]),i}(),I=function(){function t(i){e(this,t),this.ctx=i,this.w=i.w}return a(t,[{key:"drawXCrosshairs",value:function(){var t=this.w,e=new p(this.ctx),i=new g(this.ctx),a=t.config.xaxis.crosshairs.fill.gradient,s=t.config.xaxis.crosshairs.dropShadow,n=t.config.xaxis.crosshairs.fill.type,r=a.colorFrom,o=a.colorTo,l=a.opacityFrom,h=a.opacityTo,c=a.stops,d=s.enabled,f=s.left,x=s.top,b=s.blur,m=s.color,v=s.opacity,y=t.config.xaxis.crosshairs.fill.color;if(t.config.xaxis.crosshairs.show){"gradient"===n&&(y=e.drawGradient("vertical",r,o,l,h,null,c,null));var w=e.drawRect();1===t.config.xaxis.crosshairs.width&&(w=e.drawLine()),w.attr({class:"apexcharts-xcrosshairs",x:0,y:0,y2:t.globals.gridHeight,width:u.isNumber(t.config.xaxis.crosshairs.width)?t.config.xaxis.crosshairs.width:0,height:t.globals.gridHeight,fill:y,filter:"none","fill-opacity":t.config.xaxis.crosshairs.opacity,stroke:t.config.xaxis.crosshairs.stroke.color,"stroke-width":t.config.xaxis.crosshairs.stroke.width,"stroke-dasharray":t.config.xaxis.crosshairs.stroke.dashArray}),d&&(w=i.dropShadow(w,{left:f,top:x,blur:b,color:m,opacity:v})),t.globals.dom.elGraphical.add(w)}}},{key:"drawYCrosshairs",value:function(){var t=this.w,e=new p(this.ctx),i=t.config.yaxis[0].crosshairs;if(t.config.yaxis[0].crosshairs.show){var a=e.drawLine(0,0,t.globals.gridWidth,0,i.stroke.color,i.stroke.dashArray,i.stroke.width);a.attr({class:"apexcharts-ycrosshairs"}),t.globals.dom.elGraphical.add(a)}var s=e.drawLine(0,0,t.globals.gridWidth,0,i.stroke.color,0,0);s.attr({class:"apexcharts-ycrosshairs-hidden"}),t.globals.dom.elGraphical.add(s)}}]),t}(),X=function(){function t(i,a){e(this,t),this.ctx=i,this.w=i.w,this.xRatio=a.xRatio,this.yRatio=a.yRatio,this.negRange=!1,this.dynamicAnim=this.w.config.chart.animations.dynamicAnimation,this.rectRadius=this.w.config.plotOptions.heatmap.radius,this.strokeWidth=this.w.config.stroke.width}return a(t,[{key:"draw",value:function(t){var e=this.w,i=new p(this.ctx),a=i.group({class:"apexcharts-heatmap"});a.attr("clip-path","url(#gridRectMask".concat(e.globals.cuid,")"));var s=e.globals.gridWidth/e.globals.dataPoints,n=e.globals.gridHeight/e.globals.series.length,r=0,o=!1;this.checkColorRange();var l=t.slice();e.config.yaxis[0].reversed&&(o=!0,l.reverse());for(var h=o?0:l.length-1;o?h=0;o?h++:h--){var c=i.group({class:"apexcharts-series apexcharts-heatmap-series",seriesName:u.escapeString(e.globals.seriesNames[h]),rel:h+1,"data:realIndex":h});if(e.config.chart.dropShadow.enabled){var d=e.config.chart.dropShadow;new g(this.ctx).dropShadow(c,d,h)}for(var f=0,x=0;x0&&e.colorScale.ranges.map(function(e,i){e.from<0&&(t.negRange=!0)})}},{key:"determineHeatColor",value:function(t,e){var i=this.w,a=i.globals.series[t][e],s=i.config.plotOptions.heatmap,n=s.colorScale.inverse?e:t,r=i.globals.colors[n],o=Math.min.apply(Math,d(i.globals.series[t])),l=Math.max.apply(Math,d(i.globals.series[t]));s.distributed||(o=i.globals.minY,l=i.globals.maxY),void 0!==s.colorScale.min&&(o=s.colorScale.mini.globals.maxY?s.colorScale.max:i.globals.maxY);var h=Math.abs(l)+Math.abs(o),c=100*a/(0===h?h-1e-6:h);s.colorScale.ranges.length>0&&s.colorScale.ranges.map(function(t,e){if(a>=t.from&&a<=t.to){r=t.color,o=t.from,l=t.to;var i=Math.abs(l)+Math.abs(o);c=100*a/(0===i?i-1e-6:i)}});return{color:r,percent:c}}},{key:"calculateHeatmapDataLabels",value:function(t){var e=t.x,i=t.y,a=t.i,s=t.j,n=(t.series,t.rectHeight),r=t.rectWidth,o=this.w,l=o.config.dataLabels,h=new p(this.ctx),c=new z(this.ctx),d=l.formatter,u=null;if(l.enabled){u=h.group({class:"apexcharts-data-labels"});var g=l.offsetX,f=l.offsetY,x=e+r/2+g,b=i+n/2+parseFloat(l.style.fontSize)/3+f,m=d(o.globals.series[a][s],{seriesIndex:a,dataPointIndex:s,w:o});c.plotDataLabelsText({x:x,y:b,text:m,i:a,j:s,parent:u,dataLabelsConfig:l})}return u}},{key:"animateHeatMap",value:function(t,e,i,a,s,n){var r=new f(this.ctx);r.animateRect(t,{x:e+a/2,y:i+s/2,width:0,height:0},{x:e,y:i,width:a,height:s},n,function(){r.animationCompleted(t)})}},{key:"animateHeatColor",value:function(t,e,i,a){t.attr({fill:e}).animate(a).attr({fill:i})}}]),t}(),Y=function(){function t(i){e(this,t),this.ctx=i,this.w=i.w,this.chartType=this.w.config.chart.type,this.initialAnim=this.w.config.chart.animations.enabled,this.dynamicAnim=this.initialAnim&&this.w.config.chart.animations.dynamicAnimation.enabled,this.animBeginArr=[0],this.animDur=0,this.donutDataLabels=this.w.config.plotOptions.pie.donut.labels;var a=this.w;this.lineColorArr=void 0!==a.globals.stroke.colors?a.globals.stroke.colors:a.globals.colors,this.defaultSize=a.globals.svgHeightthis.fullAngle?e.endAngle=e.endAngle-(a+r):a+r=360&&(l=359.99);var h=Math.PI*(l-90)/180,c=e.centerX+s*Math.cos(o),d=e.centerY+s*Math.sin(o),g=e.centerX+s*Math.cos(h),f=e.centerY+s*Math.sin(h),p=u.polarToCartesian(e.centerX,e.centerY,e.donutSize,l),x=u.polarToCartesian(e.centerX,e.centerY,e.donutSize,r),b=a>180?1:0;return"donut"===n.config.chart.type?["M",c,d,"A",s,s,0,b,1,g,f,"L",p.x,p.y,"A",e.donutSize,e.donutSize,0,b,0,x.x,x.y,"L",c,d,"z"].join(" "):"pie"===n.config.chart.type?["M",c,d,"A",s,s,0,b,1,g,f,"L",e.centerX,e.centerY,"L",c,d].join(" "):["M",c,d,"A",s,s,0,b,1,g,f].join(" ")}},{key:"renderInnerDataLabels",value:function(t,e){var i=this.w,a=new p(this.ctx),s=a.group({class:"apexcharts-datalabels-group",transform:"translate(".concat(e.translateX?e.translateX:0,", ").concat(e.translateY?e.translateY:0,")")}),n=t.total.show;s.node.style.opacity=e.opacity;var r,o,l=e.centerX,h=e.centerY;r=void 0===t.name.color?i.globals.colors[0]:t.name.color,o=void 0===t.value.color?i.config.chart.foreColor:t.value.color;var c=t.value.formatter,d="",u="";if(n?(r=t.total.color,u=t.total.label,d=t.total.formatter(i)):1===i.globals.series.length&&(d=c(i.globals.series[0],i),u=i.globals.seriesNames[0]),t.name.show){var g=a.drawText({x:l,y:h+parseFloat(t.name.offsetY),text:u,textAnchor:"middle",foreColor:r,fontSize:t.name.fontSize,fontFamily:t.name.fontFamily});g.node.classList.add("apexcharts-datalabel-label"),s.add(g)}if(t.value.show){var f=t.name.show?parseFloat(t.value.offsetY)+16:t.value.offsetY,x=a.drawText({x:l,y:h+f,text:d,textAnchor:"middle",foreColor:o,fontSize:t.value.fontSize,fontFamily:t.value.fontFamily});x.node.classList.add("apexcharts-datalabel-value"),s.add(x)}return s}},{key:"printInnerLabels",value:function(t,e,i,a){var s,n=this.w;a?s=void 0===t.name.color?n.globals.colors[parseInt(a.parentNode.getAttribute("rel"))-1]:t.name.color:n.globals.series.length>1&&t.total.show&&(s=t.total.color);var r=n.globals.dom.baseEl.querySelector(".apexcharts-datalabel-label"),o=n.globals.dom.baseEl.querySelector(".apexcharts-datalabel-value");i=(0,t.value.formatter)(i,n),a||"function"!=typeof t.total.formatter||(i=t.total.formatter(n)),null!==r&&(r.textContent=e),null!==o&&(o.textContent=i),null!==r&&(r.style.fill=s)}},{key:"printDataLabelsInner",value:function(t,e){var i=this.w,a=t.getAttribute("data:value"),s=i.globals.seriesNames[parseInt(t.parentNode.getAttribute("rel"))-1];i.globals.series.length>1&&this.printInnerLabels(e,s,a,t);var n=i.globals.dom.baseEl.querySelector(".apexcharts-datalabels-group");null!==n&&(n.style.opacity=1)}},{key:"revertDataLabelsInner",value:function(e,i,a){var s=this,n=this.w,r=n.globals.dom.baseEl.querySelector(".apexcharts-datalabels-group");if(i.total.show&&n.globals.series.length>1){new t(this.ctx).printInnerLabels(i,i.total.label,i.total.formatter(n))}else{var o=document.querySelectorAll(".apexcharts-pie-area"),l=!1;if(Array.prototype.forEach.call(o,function(t){"true"===t.getAttribute("data:pieClicked")&&(l=!0,s.printDataLabelsInner(t,i))}),!l)if(n.globals.selectedDataPoints.length&&n.globals.series.length>1)if(n.globals.selectedDataPoints[0].length>0){var h=n.globals.selectedDataPoints[0],c=n.globals.dom.baseEl.querySelector(".apexcharts-".concat(n.config.chart.type.toLowerCase(),"-slice-").concat(h));this.printDataLabelsInner(c,i)}else r&&n.globals.selectedDataPoints.length&&0===n.globals.selectedDataPoints[0].length&&(r.style.opacity=0);else r&&n.globals.series.length>1&&(r.style.opacity=0)}}}]),t}(),F=function(){function t(i){e(this,t),this.ctx=i,this.w=i.w,this.chartType=this.w.config.chart.type,this.initialAnim=this.w.config.chart.animations.enabled,this.dynamicAnim=this.initialAnim&&this.w.config.chart.animations.dynamicAnimation.enabled,this.animDur=0;var a=this.w;this.graphics=new p(this.ctx),this.lineColorArr=void 0!==a.globals.stroke.colors?a.globals.stroke.colors:a.globals.colors,this.defaultSize=a.globals.svgHeight0&&(f=e.getPathFrom(n));for(var p=0;p=10?n[h].x>0?(i="start",r+=10):n[h].x<0&&(i="end",r-=10):i="middle",Math.abs(n[h].y)>=t.size-10&&(n[h].y<0?o-=10:n[h].y>0&&(o+=10));var u=c(l,{seriesIndex:-1,dataPointIndex:h,w:e});d.plotDataLabelsText({x:r,y:o,text:u,textAnchor:i,i:h,j:h,parent:s,dataLabelsConfig:a,offsetCorrection:!1})}}),s}},{key:"createPaths",value:function(t,e){var i=this,a=[],s=[],n=[],r=[];if(t.length){s=[this.graphics.move(e.x,e.y)],r=[this.graphics.move(e.x,e.y)];var o=this.graphics.move(t[0].x,t[0].y),l=this.graphics.move(t[0].x,t[0].y);t.forEach(function(e,a){o+=i.graphics.line(e.x,e.y),l+=i.graphics.line(e.x,e.y),a===t.length-1&&(o+="Z",l+="Z")}),a.push(o),n.push(l)}return{linePathsFrom:s,linePathsTo:a,areaPathsFrom:r,areaPathsTo:n}}},{key:"getPathFrom",value:function(t){for(var e=this.w,i=null,a=0;a0&&parseInt(s.realIndex)===parseInt(t)&&void 0!==e.globals.previousPaths[a].paths[0]&&(i=e.globals.previousPaths[a].paths[0].d)}return i}},{key:"getDataPointsPos",value:function(t,e){var i=arguments.length>2&&void 0!==arguments[2]?arguments[2]:this.dataPointsLen;t=t||[],e=e||[];for(var a=[],s=0;s=360&&(u=360-Math.abs(this.startAngle)-.1);var f=i.drawPath({d:"",stroke:c,strokeWidth:r*parseInt(h.strokeWidth)/100,fill:"none",strokeOpacity:h.opacity,classes:"apexcharts-radialbar-area"});if(h.dropShadow.enabled){var x=h.dropShadow;s.dropShadow(f,x)}l.add(f),f.attr("id","apexcharts-radialbarTrack-"+o),this.animatePaths(f,{centerX:t.centerX,centerY:t.centerY,endAngle:u,startAngle:d,size:t.size,i:o,totalItems:2,animBeginArr:0,dur:0,isTrack:!0,easing:e.globals.easing})}return a}},{key:"drawArcs",value:function(t){var e=this.w,i=new p(this.ctx),a=new C(this.ctx),s=new g(this.ctx),n=i.group(),r=this.getStrokeWidth(t);t.size=t.size-r/2;var o=e.config.plotOptions.radialBar.hollow.background,l=t.size-r*t.series.length-this.margin*t.series.length-r*parseInt(e.config.plotOptions.radialBar.track.strokeWidth)/100/2,h=l-e.config.plotOptions.radialBar.hollow.margin;void 0!==e.config.plotOptions.radialBar.hollow.image&&(o=this.drawHollowImage(t,n,l,o));var c=this.drawHollow({size:h,centerX:t.centerX,centerY:t.centerY,fill:o});if(e.config.plotOptions.radialBar.hollow.dropShadow.enabled){var d=e.config.plotOptions.radialBar.hollow.dropShadow;s.dropShadow(c,d)}var f=1;!this.radialDataLabels.total.show&&e.globals.series.length>1&&(f=0);var x=null;this.radialDataLabels.show&&(x=this.renderInnerDataLabels(this.radialDataLabels,{hollowSize:l,centerX:t.centerX,centerY:t.centerY,opacity:f})),"back"===e.config.plotOptions.radialBar.hollow.position&&(n.add(c),x&&n.add(x));var b=!1;e.config.plotOptions.radialBar.inverseOrder&&(b=!0);for(var m=b?t.series.length-1:0;b?m>=0:m100?100:t.series[m])/100,L=Math.round(A*S)+this.startAngle,P=void 0;e.globals.dataChanged&&(k=this.startAngle,P=Math.round(A*u.negToZero(e.globals.previousPaths[m])/100)+k),Math.abs(L)+Math.abs(w)>=360&&(L-=.01),Math.abs(P)+Math.abs(k)>=360&&(P-=.01);var z=L-w,E=Array.isArray(e.config.stroke.dashArray)?e.config.stroke.dashArray[m]:e.config.stroke.dashArray,M=i.drawPath({d:"",stroke:y,strokeWidth:r,fill:"none",fillOpacity:e.config.fill.opacity,classes:"apexcharts-radialbar-area apexcharts-radialbar-slice-"+m,strokeDashArray:E});if(p.setAttrs(M.node,{"data:angle":z,"data:value":t.series[m]}),e.config.chart.dropShadow.enabled){var T=e.config.chart.dropShadow;s.dropShadow(M,T,m)}this.addListeners(M,this.radialDataLabels),v.add(M),M.attr({index:0,j:m});var I=0;!this.initialAnim||e.globals.resized||e.globals.dataChanged||(I=(L-w)/360*e.config.chart.animations.speed,this.animDur=I/(1.2*t.series.length)+this.animDur,this.animBeginArr.push(this.animDur)),e.globals.dataChanged&&(I=(L-w)/360*e.config.chart.animations.dynamicAnimation.speed,this.animDur=I/(1.2*t.series.length)+this.animDur,this.animBeginArr.push(this.animDur)),this.animatePaths(M,{centerX:t.centerX,centerY:t.centerY,endAngle:L,startAngle:w,prevEndAngle:P,prevStartAngle:k,size:t.size,i:m,totalItems:2,animBeginArr:this.animBeginArr,dur:I,shouldSetPrevPaths:!0,easing:e.globals.easing})}return{g:n,elHollow:c,dataLabels:x}}},{key:"drawHollow",value:function(t){var e=new p(this.ctx).drawCircle(2*t.size);return e.attr({class:"apexcharts-radialbar-hollow",cx:t.centerX,cy:t.centerY,r:t.size,fill:t.fill}),e}},{key:"drawHollowImage",value:function(t,e,i,a){var s=this.w,n=new C(this.ctx),r=u.randomId(),o=s.config.plotOptions.radialBar.hollow.image;if(s.config.plotOptions.radialBar.hollow.imageClipped)n.clippedImgArea({width:i,height:i,image:o,patternID:"pattern".concat(s.globals.cuid).concat(r)}),a="url(#pattern".concat(s.globals.cuid).concat(r,")");else{var l=s.config.plotOptions.radialBar.hollow.imageWidth,h=s.config.plotOptions.radialBar.hollow.imageHeight;if(void 0===l&&void 0===h){var c=s.globals.dom.Paper.image(o).loaded(function(e){this.move(t.centerX-e.width/2+s.config.plotOptions.radialBar.hollow.imageOffsetX,t.centerY-e.height/2+s.config.plotOptions.radialBar.hollow.imageOffsetY)});e.add(c)}else{var d=s.globals.dom.Paper.image(o).loaded(function(e){this.move(t.centerX-l/2+s.config.plotOptions.radialBar.hollow.imageOffsetX,t.centerY-h/2+s.config.plotOptions.radialBar.hollow.imageOffsetY),this.size(l,h)});e.add(d)}}return a}},{key:"getStrokeWidth",value:function(t){var e=this.w;return t.size*(100-parseInt(e.config.plotOptions.radialBar.hollow.size))/100/(t.series.length+1)-this.margin}}]),i}(),D=function(t){function i(){return e(this,i),c(this,l(i).apply(this,arguments))}return o(i,E),a(i,[{key:"draw",value:function(t,e){var i=this.w,a=new p(this.ctx),s=new C(this.ctx);this.rangeBarOptions=this.w.config.plotOptions.rangeBar,this.series=t,this.seriesRangeStart=i.globals.seriesRangeStart,this.seriesRangeEnd=i.globals.seriesRangeEnd,this.initVariables(t);for(var n=a.group({class:"apexcharts-rangebar-series apexcharts-plot-series"}),r=0,o=0;r0&&(this.visibleI=this.visibleI+1);var y=0,w=0,k=0;this.yRatio.length>1&&(this.yaxisIndex=m);var A=this.initialPositions();b=A.y,h=A.yDivision,w=A.barHeight,d=A.zeroW,x=A.x,k=A.barWidth,l=A.xDivision,c=A.zeroH;for(var S=a.group({class:"apexcharts-datalabels"}),L=0,P=i.globals.dataPoints;L0&&(r=this.getPathFrom(f,u,!0)),n=c.move(v,m)+c.line(v+o,m)+c.line(v+o,b)+c.line(v,b)+c.line(v,m-a/2),r=r+c.move(v,b)+c.line(v+o,b)+c.line(v+o,b)+c.line(v,b),h.globals.isXNumeric||(i+=s),{pathTo:n,pathFrom:r,barHeight:y,x:i,y:m,barXPosition:v}}},{key:"drawRangeBarPaths",value:function(t){var e=t.indexes,i=(t.x,t.y),a=t.yDivision,s=t.pathTo,n=t.pathFrom,r=t.barHeight,o=t.zeroW,l=this.w,h=new p(this.ctx),c=e.i,d=e.j,u=e.realIndex,g=o,f=o;l.globals.isXNumeric&&(i=(l.globals.seriesX[c][d]-l.globals.minX)/this.invertedXRatio-r);var x=i+r*this.visibleI;void 0!==this.series[c][d]&&null!==this.series[c][d]&&(g=o+this.seriesRangeStart[c][d]/this.invertedYRatio,f=o+this.seriesRangeEnd[c][d]/this.invertedYRatio),h.move(o,x),n=h.move(o,x),l.globals.previousPaths.length>0&&(n=this.getPathFrom(u,d));var b=Math.abs(f-g);return s=h.move(g,x)+h.line(f,x)+h.line(f,x+r)+h.line(g,x+r)+h.line(g,x),n=n+h.line(g,x)+h.line(g,x+r)+h.line(g,x+r)+h.line(g,x),l.globals.isXNumeric||(i+=a),{pathTo:s,pathFrom:n,barWidth:b,x:f,y:i,barYPosition:x}}},{key:"getRangeValue",value:function(t,e){var i=this.w;return{start:i.globals.seriesRangeStart[t][e],end:i.globals.seriesRangeEnd[t][e]}}}]),i}(),O=function(){function t(i){e(this,t),this.ctx=i,this.w=i.w,this.tooltipKeyFormat="dd MMM"}return a(t,[{key:"xLabelFormat",value:function(t,e,i){var a=this.w;if("datetime"===a.config.xaxis.type&&(void 0===a.config.xaxis.labels.formatter&&void 0===a.config.tooltip.x.formatter))return new v(this.ctx).formatDate(new Date(e),a.config.tooltip.x.format,!0,!0);return t(e,i)}},{key:"setLabelFormatters",value:function(){var t=this.w;return t.globals.xLabelFormatter=function(t){return t},t.globals.xaxisTooltipFormatter=function(t){return t},t.globals.ttKeyFormatter=function(t){return t},t.globals.ttZFormatter=function(t){return t},t.globals.legendFormatter=function(t){return t},void 0!==t.config.xaxis.labels.formatter?t.globals.xLabelFormatter=t.config.xaxis.labels.formatter:t.globals.xLabelFormatter=function(e){if(u.isNumber(e)){if("numeric"===t.config.xaxis.type&&t.globals.dataPoints<50)return e.toFixed(1);if(t.globals.isBarHorizontal)if(t.globals.maxY-t.globals.minYArr<4)return e.toFixed(1);return e.toFixed(0)}return e},"function"==typeof t.config.tooltip.x.formatter?t.globals.ttKeyFormatter=t.config.tooltip.x.formatter:t.globals.ttKeyFormatter=t.globals.xLabelFormatter,"function"==typeof t.config.xaxis.tooltip.formatter&&(t.globals.xaxisTooltipFormatter=t.config.xaxis.tooltip.formatter),Array.isArray(t.config.tooltip.y)?t.globals.ttVal=t.config.tooltip.y:void 0!==t.config.tooltip.y.formatter&&(t.globals.ttVal=t.config.tooltip.y),void 0!==t.config.tooltip.z.formatter&&(t.globals.ttZFormatter=t.config.tooltip.z.formatter),void 0!==t.config.legend.formatter&&(t.globals.legendFormatter=t.config.legend.formatter),t.config.yaxis.forEach(function(e,i){void 0!==e.labels.formatter?t.globals.yLabelFormatters[i]=e.labels.formatter:t.globals.yLabelFormatters[i]=function(a){return t.globals.xyCharts&&u.isNumber(a)?0!==t.globals.yValueDecimal?a.toFixed(void 0!==e.decimalsInFloat?e.decimalsInFloat:t.globals.yValueDecimal):t.globals.maxYArr[i]-t.globals.minYArr[i]<10?a.toFixed(1):a.toFixed(0):a}}),t.globals}},{key:"heatmapLabelFormatters",value:function(){var t=this.w;if("heatmap"===t.config.chart.type){t.globals.yAxisScale[0].result=t.globals.seriesNames.slice();var e=t.globals.seriesNames.reduce(function(t,e){return t.length>e.length?t:e},0);t.globals.yAxisScale[0].niceMax=e,t.globals.yAxisScale[0].niceMin=e}}}]),t}(),N=function(){function t(i){e(this,t),this.ctx=i,this.w=i.w}return a(t,[{key:"getLabel",value:function(t,e,i,a){var s,n=arguments.length>4&&void 0!==arguments[4]?arguments[4]:[],r=this.w,o=void 0===t[a]?"":t[a],l=r.globals.xLabelFormatter,h=r.config.xaxis.labels.formatter,c=!1,d=o;s=new O(this.ctx).xLabelFormat(l,o,d),void 0!==h&&(s=h(o,t[a],a));var u,g;return e.length>0?(u=e[a].unit,g=null,e.forEach(function(t){"month"===t.unit?g="year":"day"===t.unit?g="month":"hour"===t.unit?g="day":"minute"===t.unit&&(g="hour")}),c=g===u,i=e[a].position,s=e[a].value):"datetime"===r.config.xaxis.type&&void 0===h&&(s=""),void 0===s&&(s=""),(0===(s=s.toString()).indexOf("NaN")||0===s.toLowerCase().indexOf("invalid")||s.toLowerCase().indexOf("infinity")>=0||n.indexOf(s)>=0&&!r.config.xaxis.labels.showDuplicates)&&(s=""),{x:i,text:s,isBold:c}}},{key:"drawYAxisTicks",value:function(t,e,i,a,s,n,r){var o=this.w,l=new p(this.ctx),h=o.globals.translateY;if(a.show){!0===o.config.yaxis[s].opposite&&(t+=a.width);for(var c=e;c>=0;c--){var d=h+e/10+o.config.yaxis[s].labels.offsetY-1;o.globals.isBarHorizontal&&(d=n*c);var u=l.drawLine(t+i.offsetX-a.width+a.offsetX,d+a.offsetY,t+i.offsetX+a.offsetX,d+a.offsetY,i.color);r.add(u),h+=n}}}}]),t}(),H=function(){function t(i){e(this,t),this.ctx=i,this.w=i.w;var a=this.w;this.xaxisFontSize=a.config.xaxis.labels.style.fontSize,this.axisFontFamily=a.config.xaxis.labels.style.fontFamily,this.xaxisForeColors=a.config.xaxis.labels.style.colors,this.xAxisoffX=0,"bottom"===a.config.xaxis.position&&(this.xAxisoffX=a.globals.gridHeight),this.drawnLabels=[],this.axesUtils=new N(i)}return a(t,[{key:"drawYaxis",value:function(t){var e=this.w,i=new p(this.ctx),a=e.config.yaxis[t].labels.style.fontSize,s=e.config.yaxis[t].labels.style.fontFamily,n=i.group({class:"apexcharts-yaxis",rel:t,transform:"translate("+e.globals.translateYAxisX[t]+", 0)"});if(!e.config.yaxis[t].show)return n;var r=i.group({class:"apexcharts-yaxis-texts-g"});n.add(r);var o=e.globals.yAxisScale[t].result.length-1,l=e.globals.gridHeight/o+.1,h=e.globals.translateY,c=e.globals.yLabelFormatters[t],d=e.globals.yAxisScale[t].result.slice();if(e.config.yaxis[t]&&e.config.yaxis[t].reversed&&d.reverse(),e.config.yaxis[t].labels.show)for(var u=o;u>=0;u--){var g=d[u];g=c(g,u);var f=e.config.yaxis[t].labels.padding;e.config.yaxis[t].opposite&&0!==e.config.yaxis.length&&(f*=-1);var x=i.drawText({x:f,y:h+o/10+e.config.yaxis[t].labels.offsetY+1,text:g,textAnchor:e.config.yaxis[t].opposite?"start":"end",fontSize:a,fontFamily:s,foreColor:e.config.yaxis[t].labels.style.color,cssClass:"apexcharts-yaxis-label "+e.config.yaxis[t].labels.style.cssClass});r.add(x);var b=i.rotateAroundCenter(x.node);0!==e.config.yaxis[t].labels.rotate&&x.node.setAttribute("transform","rotate(".concat(e.config.yaxis[t].labels.rotate," ").concat(b.x," ").concat(b.y,")")),h+=l}if(void 0!==e.config.yaxis[t].title.text){var m=i.group({class:"apexcharts-yaxis-title"}),v=0;e.config.yaxis[t].opposite&&(v=e.globals.translateYAxisX[t]);var y=i.drawText({x:v,y:e.globals.gridHeight/2+e.globals.translateY+e.config.yaxis[t].title.offsetY,text:e.config.yaxis[t].title.text,textAnchor:"end",foreColor:e.config.yaxis[t].title.style.color,fontSize:e.config.yaxis[t].title.style.fontSize,fontFamily:e.config.yaxis[t].title.style.fontFamily,cssClass:"apexcharts-yaxis-title-text "+e.config.yaxis[t].title.style.cssClass});m.add(y),n.add(m)}var w=e.config.yaxis[t].axisBorder;if(w.show){var k=31+w.offsetX;e.config.yaxis[t].opposite&&(k=-31-w.offsetX);var A=i.drawLine(k,e.globals.translateY+w.offsetY-2,k,e.globals.gridHeight+e.globals.translateY+w.offsetY+2,w.color);n.add(A),this.axesUtils.drawYAxisTicks(k,o,w,e.config.yaxis[t].axisTicks,t,l,n)}return n}},{key:"drawYaxisInversed",value:function(t){var e=this.w,i=new p(this.ctx),a=i.group({class:"apexcharts-xaxis apexcharts-yaxis-inversed"}),s=i.group({class:"apexcharts-xaxis-texts-g",transform:"translate(".concat(e.globals.translateXAxisX,", ").concat(e.globals.translateXAxisY,")")});a.add(s);var n=e.globals.yAxisScale[t].result.length-1,r=e.globals.gridWidth/n+.1,o=r+e.config.xaxis.labels.offsetX,l=e.globals.xLabelFormatter,h=e.globals.yAxisScale[t].result.slice(),c=e.globals.invertedTimelineLabels;c.length>0&&(this.xaxisLabels=c.slice(),n=(h=c.slice()).length),e.config.yaxis[t]&&e.config.yaxis[t].reversed&&h.reverse();var d=c.length;if(e.config.xaxis.labels.show)for(var u=d?0:n;d?u=0;d?u++:u--){var g=h[u];g=l(g,u);var f=e.globals.gridWidth+e.globals.padHorizontal-(o-r+e.config.xaxis.labels.offsetX);if(c.length){var x=this.axesUtils.getLabel(h,c,f,u,this.drawnLabels);f=x.x,g=x.text,this.drawnLabels.push(x.text)}var b=i.drawText({x:f,y:this.xAxisoffX+e.config.xaxis.labels.offsetY+30,text:"",textAnchor:"middle",foreColor:Array.isArray(this.xaxisForeColors)?this.xaxisForeColors[t]:this.xaxisForeColors,fontSize:this.xaxisFontSize,fontFamily:this.xaxisFontFamily,cssClass:"apexcharts-xaxis-label "+e.config.xaxis.labels.style.cssClass});s.add(b),b.tspan(g);var m=document.createElementNS(e.globals.SVGNS,"title");m.textContent=g,b.node.appendChild(m),o+=r}if(void 0!==e.config.xaxis.title.text){var v=i.group({class:"apexcharts-xaxis-title apexcharts-yaxis-title-inversed"}),y=i.drawText({x:e.globals.gridWidth/2,y:this.xAxisoffX+parseFloat(this.xaxisFontSize)+parseFloat(e.config.xaxis.title.style.fontSize)+20,text:e.config.xaxis.title.text,textAnchor:"middle",fontSize:e.config.xaxis.title.style.fontSize,fontFamily:e.config.xaxis.title.style.fontFamily,cssClass:"apexcharts-xaxis-title-text "+e.config.xaxis.title.style.cssClass});v.add(y),a.add(v)}var w=e.config.yaxis[t].axisBorder;if(w.show){var k=i.drawLine(e.globals.padHorizontal+w.offsetX,1+w.offsetY,e.globals.padHorizontal+w.offsetX,e.globals.gridHeight+w.offsetY,w.color);a.add(k)}return a}},{key:"yAxisTitleRotate",value:function(t,e){var i=this.w,a=new p(this.ctx),s={width:0,height:0},n={width:0,height:0},r=i.globals.dom.baseEl.querySelector(" .apexcharts-yaxis[rel='".concat(t,"'] .apexcharts-yaxis-texts-g"));null!==r&&(s=r.getBoundingClientRect());var o=i.globals.dom.baseEl.querySelector(".apexcharts-yaxis[rel='".concat(t,"'] .apexcharts-yaxis-title text"));if(null!==o&&(n=o.getBoundingClientRect()),null!==o){var l=this.xPaddingForYAxisTitle(t,s,n,e);o.setAttribute("x",l.xPos-(e?10:0))}if(null!==o){var h=a.rotateAroundCenter(o);e?o.setAttribute("transform","rotate(".concat(i.config.yaxis[t].title.rotate," ").concat(h.x," ").concat(h.y,")")):o.setAttribute("transform","rotate(-".concat(i.config.yaxis[t].title.rotate," ").concat(h.x," ").concat(h.y,")"))}}},{key:"xPaddingForYAxisTitle",value:function(t,e,i,a){var s=this.w,n=0,r=0,o=10;return void 0===s.config.yaxis[t].title.text||t<0?{xPos:r,padd:0}:(a?(r=e.width+s.config.yaxis[t].title.offsetX+i.width/2+o/2,0===(n+=1)&&(r-=o/2)):(r=-1*e.width+s.config.yaxis[t].title.offsetX+o/2+i.width/2,s.globals.isBarHorizontal&&(o=25,r=-1*e.width-s.config.yaxis[t].title.offsetX-o)),{xPos:r,padd:o})}},{key:"setYAxisXPosition",value:function(t,e){var i=this.w,a=0,s=0,n=21,r=1;i.config.yaxis.length>1&&(this.multipleYs=!0),i.config.yaxis.map(function(o,l){var h=i.globals.ignoreYAxisIndexes.indexOf(l)>-1||!o.show||o.floating||0===t[l].width,c=t[l].width+e[l].width;o.opposite?i.globals.isBarHorizontal?(s=i.globals.gridWidth+i.globals.translateX-1,i.globals.translateYAxisX[l]=s-o.labels.offsetX):(s=i.globals.gridWidth+i.globals.translateX+r,h||(r=r+c+20),i.globals.translateYAxisX[l]=s-o.labels.offsetX+20):(a=i.globals.translateX-n,h||(n=n+c+20),i.globals.translateYAxisX[l]=a+o.labels.offsetX)})}},{key:"setYAxisTextAlignments",value:function(){var t=this.w,e=t.globals.dom.baseEl.querySelectorAll(".apexcharts-yaxis");(e=u.listToArray(e)).forEach(function(e,i){var a=t.config.yaxis[i];if(void 0!==a.labels.align){var s=t.globals.dom.baseEl.querySelector(".apexcharts-yaxis[rel='".concat(i,"'] .apexcharts-yaxis-texts-g")),n=t.globals.dom.baseEl.querySelectorAll(".apexcharts-yaxis[rel='".concat(i,"'] .apexcharts-yaxis-label"));n=u.listToArray(n);var r=s.getBoundingClientRect();"left"===a.labels.align?(n.forEach(function(t,e){t.setAttribute("text-anchor","start")}),a.opposite||s.setAttribute("transform","translate(-".concat(r.width,", 0)"))):"center"===a.labels.align?(n.forEach(function(t,e){t.setAttribute("text-anchor","middle")}),s.setAttribute("transform","translate(".concat(r.width/2*(a.opposite?1:-1),", 0)"))):"right"===a.labels.align&&(n.forEach(function(t,e){t.setAttribute("text-anchor","end")}),a.opposite&&s.setAttribute("transform","translate(".concat(r.width,", 0)")))}})}}]),t}(),W=function(){function t(i){e(this,t),this.ctx=i,this.w=i.w,this.lgRect={},this.yAxisWidth=0,this.xAxisHeight=0,this.isSparkline=this.w.config.chart.sparkline.enabled,this.xPadRight=0,this.xPadLeft=0}return a(t,[{key:"plotCoords",value:function(){var t=this.w,e=t.globals,i=this.getLegendsRect();e.axisCharts?this.setGridCoordsForAxisCharts(i):this.setGridCoordsForNonAxisCharts(i),this.titleSubtitleOffset(),e.gridHeight=e.gridHeight-t.config.grid.padding.top-t.config.grid.padding.bottom,e.gridWidth=e.gridWidth-t.config.grid.padding.left-t.config.grid.padding.right-this.xPadRight-this.xPadLeft,e.translateX=e.translateX+t.config.grid.padding.left+this.xPadLeft,e.translateY=e.translateY+t.config.grid.padding.top}},{key:"conditionalChecksForAxisCoords",value:function(t,e){var i=this.w;this.xAxisHeight=(t.height+e.height)*i.globals.LINE_HEIGHT_RATIO+15,this.xAxisWidth=t.width,this.xAxisHeight-e.height>i.config.xaxis.labels.maxHeight&&(this.xAxisHeight=i.config.xaxis.labels.maxHeight),i.config.xaxis.labels.minHeight&&this.xAxisHeights&&(this.yAxisWidth=s)}},{key:"setGridCoordsForAxisCharts",value:function(t){var e=this.w,i=e.globals,a=this.getyAxisLabelsCoords(),s=this.getxAxisLabelsCoords(),n=this.getyAxisTitleCoords(),r=this.getxAxisTitleCoords();e.globals.yLabelsCoords=[],e.globals.yTitleCoords=[],e.config.yaxis.map(function(t,i){e.globals.yLabelsCoords.push({width:a[i].width,index:i}),e.globals.yTitleCoords.push({width:n[i].width,index:i})}),this.conditionalChecksForAxisCoords(s,r),i.translateXAxisY=e.globals.rotateXLabels?this.xAxisHeight/8:-4,i.translateXAxisX=e.globals.rotateXLabels&&e.globals.isXNumeric&&e.config.xaxis.labels.rotate<=-45?-this.xAxisWidth/4:0,e.globals.isBarHorizontal&&(i.rotateXLabels=!1,i.translateXAxisY=parseInt(e.config.xaxis.labels.style.fontSize)/1.5*-1),i.translateXAxisY=i.translateXAxisY+e.config.xaxis.labels.offsetY,i.translateXAxisX=i.translateXAxisX+e.config.xaxis.labels.offsetX;var o=this.yAxisWidth,l=this.xAxisHeight;i.xAxisLabelsHeight=this.xAxisHeight,i.xAxisHeight=this.xAxisHeight;var h=10;switch(e.config.grid.show&&"radar"!==e.config.chart.type||(o=0,l=35),this.isSparkline&&(t={height:0,width:0},l=0,o=0,h=0),this.additionalPaddingXLabels(s),e.config.legend.position){case"bottom":i.translateY=h,i.translateX=o,i.gridHeight=i.svgHeight-t.height-l-(this.isSparkline?0:e.globals.rotateXLabels?10:15),i.gridWidth=i.svgWidth-o;break;case"top":i.translateY=t.height+h,i.translateX=o,i.gridHeight=i.svgHeight-t.height-l-(this.isSparkline?0:e.globals.rotateXLabels?10:15),i.gridWidth=i.svgWidth-o;break;case"left":i.translateY=h,i.translateX=t.width+o,i.gridHeight=i.svgHeight-l-12,i.gridWidth=i.svgWidth-t.width-o;break;case"right":i.translateY=h,i.translateX=o,i.gridHeight=i.svgHeight-l-12,i.gridWidth=i.svgWidth-t.width-o-5;break;default:throw new Error("Legend position not supported")}this.setGridXPosForDualYAxis(n,a),new H(this.ctx).setYAxisXPosition(a,n)}},{key:"setGridCoordsForNonAxisCharts",value:function(t){var e=this.w,i=e.globals,a=0;e.config.legend.show&&!e.config.legend.floating&&(a=20);var s=10,n=0;if("pie"===e.config.chart.type||"donut"===e.config.chart.type?(s+=e.config.plotOptions.pie.offsetY,n+=e.config.plotOptions.pie.offsetX):"radialBar"===e.config.chart.type&&(s+=e.config.plotOptions.radialBar.offsetY,n+=e.config.plotOptions.radialBar.offsetX),!e.config.legend.show)return i.gridHeight=i.svgHeight-35,i.gridWidth=i.gridHeight,i.translateY=s-10,void(i.translateX=n+(i.svgWidth-i.gridWidth)/2);switch(e.config.legend.position){case"bottom":i.gridHeight=i.svgHeight-t.height-35,i.gridWidth=i.gridHeight,i.translateY=s-20,i.translateX=n+(i.svgWidth-i.gridWidth)/2;break;case"top":i.gridHeight=i.svgHeight-t.height-35,i.gridWidth=i.gridHeight,i.translateY=t.height+s+10,i.translateX=n+(i.svgWidth-i.gridWidth)/2;break;case"left":i.gridWidth=i.svgWidth-t.width-a,i.gridHeight=i.gridWidth,i.translateY=s,i.translateX=n+t.width+a;break;case"right":i.gridWidth=i.svgWidth-t.width-a-5,i.gridHeight=i.gridWidth,i.translateY=s,i.translateX=n+10;break;default:throw new Error("Legend position not supported")}}},{key:"setGridXPosForDualYAxis",value:function(t,e){var i=this.w;i.config.yaxis.map(function(a,s){-1===i.globals.ignoreYAxisIndexes.indexOf(s)&&!i.config.yaxis[s].floating&&i.config.yaxis[s].show&&a.opposite&&(i.globals.translateX=i.globals.translateX-(e[s].width+t[s].width)-parseInt(i.config.yaxis[s].labels.style.fontSize)/1.2-12)})}},{key:"additionalPaddingXLabels",value:function(t){var e=this,i=this.w;if("category"===i.config.xaxis.type&&i.globals.isBarHorizontal||"numeric"===i.config.xaxis.type||"datetime"===i.config.xaxis.type){var a=i.globals.isXNumeric;i.config.yaxis.forEach(function(s,n){var r;(!s.show||s.floating||-1!==i.globals.collapsedSeriesIndices.indexOf(n)||a||s.opposite&&i.globals.isBarHorizontal)&&((a&&i.globals.isMultipleYAxis&&-1!==i.globals.collapsedSeriesIndices.indexOf(n)||i.globals.isBarHorizontal&&s.opposite)&&(r=t,i.config.grid.padding.lefti.globals.gridWidth?i.globals.skipLastTimelinelabel=!0:i.globals.skipLastTimelinelabel=!1:"datetime"===i.config.xaxis.type?i.config.grid.padding.right1||!t.globals.axisCharts||t.config.legend.showForSingleSeries)&&(i+=10);var a=this.getTitleSubtitleCoords("title"),s=this.getTitleSubtitleCoords("subtitle");e.gridHeight=e.gridHeight-a.height-s.height-i,e.translateY=e.translateY+a.height+s.height+i}},{key:"getTotalYAxisWidth",value:function(){var t=this.w,e=0,i=10,a=function(e){return t.globals.ignoreYAxisIndexes.indexOf(e)>-1};return t.globals.yLabelsCoords.map(function(s,n){var r=t.config.yaxis[n].floating;s.width>0&&!r?(e=e+s.width+i,a(n)&&(e=e-s.width-i)):e+=r||!t.config.yaxis[n].show?0:5}),t.globals.yTitleCoords.map(function(s,n){var r=t.config.yaxis[n].floating;i=parseInt(t.config.yaxis[n].title.style.fontSize),s.width>0&&!r?(e=e+s.width+i,a(n)&&(e=e-s.width-i)):e+=r||!t.config.yaxis[n].show?0:5}),e}},{key:"getxAxisTimeScaleLabelsCoords",value:function(){var t,e=this.w;this.timescaleLabels=e.globals.timelineLabels.slice(),e.globals.isBarHorizontal&&"datetime"===e.config.xaxis.type&&(this.timescaleLabels=e.globals.invertedTimelineLabels.slice());var i=this.timescaleLabels.map(function(t){return t.value}),a=i.reduce(function(t,e){return void 0===t?(console.error("You have possibly supplied invalid Date format. Please supply a valid JavaScript Date"),0):t.length>e.length?t:e},0);return 1.05*(t=new p(this.ctx).getTextRects(a,e.config.xaxis.labels.style.fontSize)).width*i.length>e.globals.gridWidth&&0!==e.config.xaxis.labels.rotate&&(e.globals.overlappingXLabels=!0),t}},{key:"getxAxisLabelsCoords",value:function(){var t,e=this.w,i=e.globals.labels.slice();if(e.globals.timelineLabels.length>0){var a=this.getxAxisTimeScaleLabelsCoords();t={width:a.width,height:a.height}}else{var s="left"!==e.config.legend.position||"right"!==e.config.legend.position||e.config.legend.floating?0:this.lgRect.width,n=e.globals.xLabelFormatter,r=i.reduce(function(t,e){return t.length>e.length?t:e},0);e.globals.isBarHorizontal&&(r=e.globals.yAxisScale[0].result.reduce(function(t,e){return t.length>e.length?t:e},0));var o=r;r=new O(this.ctx).xLabelFormat(n,r,o);var l=new p(this.ctx),h=l.getTextRects(r,e.config.xaxis.labels.style.fontSize);(t={width:h.width,height:h.height}).width*i.length>e.globals.svgWidth-s-this.yAxisWidth&&0!==e.config.xaxis.labels.rotate?e.globals.isBarHorizontal||(e.globals.rotateXLabels=!0,h=l.getTextRects(r,e.config.xaxis.labels.style.fontSize,e.config.xaxis.labels.style.fontFamily,"rotate(".concat(e.config.xaxis.labels.rotate," 0 0)"),!1),t.height=h.height/1.66):e.globals.rotateXLabels=!1}return e.config.xaxis.labels.show||(t={width:0,height:0}),{width:t.width,height:t.height}}},{key:"getyAxisLabelsCoords",value:function(){var t=this,e=this.w,i=[],a=10;return e.config.yaxis.map(function(s,n){if(s.show&&s.labels.show&&e.globals.yAxisScale[n].result.length){var r=e.globals.yLabelFormatters[n],o=r(e.globals.yAxisScale[n].niceMax,{seriesIndex:n,dataPointIndex:-1,w:e});if(void 0!==o&&0!==o.length||(o=e.globals.yAxisScale[n].niceMax),e.globals.isBarHorizontal)a=0,o=r(o=e.globals.labels.slice().reduce(function(t,e){return t.length>e.length?t:e},0),{seriesIndex:n,dataPointIndex:-1,w:e});var l=new p(t.ctx).getTextRects(o,s.labels.style.fontSize);i.push({width:l.width+a,height:l.height})}else i.push({width:0,height:0})}),i}},{key:"getxAxisTitleCoords",value:function(){var t=this.w,e=0,i=0;if(void 0!==t.config.xaxis.title.text){var a=new p(this.ctx).getTextRects(t.config.xaxis.title.text,t.config.xaxis.title.style.fontSize);e=a.width,i=a.height}return{width:e,height:i}}},{key:"getyAxisTitleCoords",value:function(){var t=this,e=this.w,i=[];return e.config.yaxis.map(function(e,a){if(e.show&&void 0!==e.title.text){var s=new p(t.ctx).getTextRects(e.title.text,e.title.style.fontSize,e.title.style.fontFamily,"rotate(-90 0 0)",!1);i.push({width:s.width,height:s.height})}else i.push({width:0,height:0})}),i}},{key:"getTitleSubtitleCoords",value:function(t){var e=this.w,i=0,a=0,s="title"===t?e.config.title.floating:e.config.subtitle.floating,n=e.globals.dom.baseEl.querySelector(".apexcharts-".concat(t,"-text"));if(null!==n&&!s){var r=n.getBoundingClientRect();i=r.width,a=e.globals.axisCharts?r.height+5:r.height}return{width:i,height:a}}},{key:"getLegendsRect",value:function(){var t=this.w,e=t.globals.dom.baseEl.querySelector(".apexcharts-legend"),i=Object.assign({},u.getBoundingClientRect(e));return null!==e&&!t.config.legend.floating&&t.config.legend.show?this.lgRect={x:i.x,y:i.y,height:i.height,width:0===i.height?0:i.width}:this.lgRect={x:0,y:0,height:0,width:0},this.lgRect}}]),t}(),B=function(){function t(i){e(this,t),this.ctx=i,this.w=i.w}return a(t,[{key:"getAllSeriesEls",value:function(){return this.w.globals.dom.baseEl.querySelectorAll(".apexcharts-series")}},{key:"getSeriesByName",value:function(t){return this.w.globals.dom.baseEl.querySelector("[seriesName='".concat(u.escapeString(t),"']"))}},{key:"isSeriesHidden",value:function(t){var e=this.getSeriesByName(t),i=parseInt(e.getAttribute("data:realIndex"));return{isHidden:e.classList.contains("apexcharts-series-collapsed"),realIndex:i}}},{key:"addCollapsedClassToSeries",value:function(t,e){var i=this.w;function a(i){for(var a=0;a0&&void 0!==arguments[0])||arguments[0],e=this.w,i=e.globals.initialSeries.slice();e.config.series=i,e.globals.collapsedSeries=[],e.globals.ancillaryCollapsedSeries=[],e.globals.collapsedSeriesIndices=[],e.globals.ancillaryCollapsedSeriesIndices=[],e.globals.previousPaths=[],t&&this.ctx._updateSeries(i,e.config.chart.animations.dynamicAnimation.enabled)}},{key:"toggleSeriesOnHover",value:function(t,e){var i=this.w,a=i.globals.dom.baseEl.querySelectorAll(".apexcharts-series");if("mousemove"===t.type){var s=parseInt(e.getAttribute("rel"))-1,n=null;n=i.globals.axisCharts||"radialBar"===i.config.chart.type?i.globals.axisCharts?i.globals.dom.baseEl.querySelector(".apexcharts-series[data\\:realIndex='".concat(s,"']")):i.globals.dom.baseEl.querySelector(".apexcharts-series[rel='".concat(s+1,"']")):i.globals.dom.baseEl.querySelector(".apexcharts-series[rel='".concat(s+1,"'] path"));for(var r=0;r=t.from&&i<=t.to&&a[e].classList.remove("legend-mouseover-inactive")}}(i.config.plotOptions.heatmap.colorScale.ranges[n])}else"mouseout"===t.type&&s()}},{key:"getActiveSeriesIndex",value:function(){var t=this.w,e=0;if(t.globals.series.length>1)for(var i=t.globals.series.map(function(e,i){return e.length>0&&"bar"!==t.config.series[i].type&&"column"!==t.config.series[i].type?i:-1}),a=0;a1)for(var i=t.config.series.map(function(t,e){return t.data&&t.data.length>0?e:-1}),a=0;a0)for(var a=i.length-1;a>=0;a--)e(i,a,"line");var s=t.globals.dom.baseEl.querySelectorAll(".apexcharts-area-series .apexcharts-series");if(s.length>0)for(var n=s.length-1;n>=0;n--)e(s,n,"area");var r=t.globals.dom.baseEl.querySelectorAll(".apexcharts-bar-series .apexcharts-series");if(r.length>0)for(var o=0;o0)for(var h=0;h0)for(var d=0;d0)for(var g=0;g0)for(var m=0;m0)for(var A=0;A0?t:[]});return t}}]),t}(),V=function(){function t(i,a){e(this,t),this.ctx=i,this.w=i.w,this.onLegendClick=this.onLegendClick.bind(this),this.onLegendHovered=this.onLegendHovered.bind(this)}return a(t,[{key:"init",value:function(){var t=this.w,e=t.globals,i=t.config;if((i.legend.showForSingleSeries&&1===e.series.length||e.series.length>1||!e.axisCharts)&&i.legend.show){for(;e.dom.elLegendWrap.firstChild;)e.dom.elLegendWrap.removeChild(e.dom.elLegendWrap.firstChild);this.drawLegends(),u.isIE11()?document.getElementsByTagName("head")[0].appendChild(this.getLegendStyles()):this.appendToForeignObject(),"bottom"===i.legend.position||"top"===i.legend.position?this.legendAlignHorizontal():"right"!==i.legend.position&&"left"!==i.legend.position||this.legendAlignVertical()}}},{key:"getLegendStyles",value:function(){var t=document.createElement("style");t.setAttribute("type","text/css");var e=document.createTextNode("\t\n \t\n .apexcharts-legend {\t\n display: flex;\t\n overflow: auto;\t\n padding: 0 10px;\t\n }\t\n .apexcharts-legend.position-bottom, .apexcharts-legend.position-top {\t\n flex-wrap: wrap\t\n }\t\n .apexcharts-legend.position-right, .apexcharts-legend.position-left {\t\n flex-direction: column;\t\n bottom: 0;\t\n }\t\n .apexcharts-legend.position-bottom.left, .apexcharts-legend.position-top.left, .apexcharts-legend.position-right, .apexcharts-legend.position-left {\t\n justify-content: flex-start;\t\n }\t\n .apexcharts-legend.position-bottom.center, .apexcharts-legend.position-top.center {\t\n justify-content: center; \t\n }\t\n .apexcharts-legend.position-bottom.right, .apexcharts-legend.position-top.right {\t\n justify-content: flex-end;\t\n }\t\n .apexcharts-legend-series {\t\n cursor: pointer;\t\n line-height: normal;\t\n }\t\n .apexcharts-legend.position-bottom .apexcharts-legend-series, .apexcharts-legend.position-top .apexcharts-legend-series{\t\n display: flex;\t\n align-items: center;\t\n }\t\n .apexcharts-legend-text {\t\n position: relative;\t\n font-size: 14px;\t\n }\t\n .apexcharts-legend-text *, .apexcharts-legend-marker * {\t\n pointer-events: none;\t\n }\t\n .apexcharts-legend-marker {\t\n position: relative;\t\n display: inline-block;\t\n cursor: pointer;\t\n margin-right: 3px;\t\n }\t\n \t\n .apexcharts-legend.right .apexcharts-legend-series, .apexcharts-legend.left .apexcharts-legend-series{\t\n display: inline-block;\t\n }\t\n .apexcharts-legend-series.no-click {\t\n cursor: auto;\t\n }\t\n .apexcharts-legend .apexcharts-hidden-zero-series, .apexcharts-legend .apexcharts-hidden-null-series {\t\n display: none !important;\t\n }\t\n .inactive-legend {\t\n opacity: 0.45;\t\n }");return t.appendChild(e),t}},{key:"appendToForeignObject",value:function(){var t=this.w.globals;t.dom.elLegendForeign=document.createElementNS(t.SVGNS,"foreignObject");var e=t.dom.elLegendForeign;e.setAttribute("x",0),e.setAttribute("y",0),e.setAttribute("width",t.svgWidth),e.setAttribute("height",t.svgHeight),t.dom.elLegendWrap.setAttribute("xmlns","http://www.w3.org/1999/xhtml"),e.appendChild(t.dom.elLegendWrap),e.appendChild(this.getLegendStyles()),t.dom.Paper.node.insertBefore(e,t.dom.elGraphical.node)}},{key:"drawLegends",value:function(){var t=this.w,e=t.config.legend.fontFamily,i=t.globals.seriesNames,a=t.globals.colors.slice();if("heatmap"===t.config.chart.type){var s=t.config.plotOptions.heatmap.colorScale.ranges;i=s.map(function(t){return t.name?t.name:t.from+" - "+t.to}),a=s.map(function(t){return t.color})}for(var n=t.globals.legendFormatter,r=t.config.legend.inverseOrder,o=r?i.length-1:0;r?o>=0:o<=i.length-1;r?o--:o++){var l=n(i[o],{seriesIndex:o,w:t}),h=!1,c=!1;if(t.globals.collapsedSeries.length>0)for(var d=0;d0)for(var u=0;u0?l-10:0)+(h>0?h-10:0)}a.style.position="absolute",n=n+t+i.config.legend.offsetX,r=r+e+i.config.legend.offsetY,a.style.left=n+"px",a.style.top=r+"px","bottom"===i.config.legend.position?(a.style.top="auto",a.style.bottom=10+i.config.legend.offsetY+"px"):"right"===i.config.legend.position&&(a.style.left="auto",a.style.right=25+i.config.legend.offsetX+"px"),a.style.width&&(a.style.width=parseInt(i.config.legend.width)+"px"),a.style.height&&(a.style.height=parseInt(i.config.legend.height)+"px")}},{key:"legendAlignHorizontal",value:function(){var t=this.w;t.globals.dom.baseEl.querySelector(".apexcharts-legend").style.right=0;var e=this.getLegendBBox(),i=new W(this.ctx),a=i.getTitleSubtitleCoords("title"),s=i.getTitleSubtitleCoords("subtitle"),n=0;"bottom"===t.config.legend.position?n=-e.clwh/1.8:"top"===t.config.legend.position&&(n=a.height+s.height+t.config.title.margin+t.config.subtitle.margin-15),this.setLegendWrapXY(20,n)}},{key:"legendAlignVertical",value:function(){var t=this.w,e=this.getLegendBBox(),i=0;"left"===t.config.legend.position&&(i=20),"right"===t.config.legend.position&&(i=t.globals.svgWidth-e.clww-10),this.setLegendWrapXY(i,20)}},{key:"onLegendHovered",value:function(t){var e=this.w,i=t.target.classList.contains("apexcharts-legend-text")||t.target.classList.contains("apexcharts-legend-marker");if("heatmap"!==e.config.chart.type)!t.target.classList.contains("inactive-legend")&&i&&new B(this.ctx).toggleSeriesOnHover(t,t.target);else if(i){var a=parseInt(t.target.getAttribute("rel"))-1;this.ctx.fireEvent("legendHover",[this.ctx,a,this.w]),new B(this.ctx).highlightRangeInSeries(t,t.target)}}},{key:"onLegendClick",value:function(t){if(t.target.classList.contains("apexcharts-legend-text")||t.target.classList.contains("apexcharts-legend-marker")){var e=parseInt(t.target.getAttribute("rel"))-1,i="true"===t.target.getAttribute("data:collapsed"),a=this.w.config.chart.events.legendClick;"function"==typeof a&&a(this.ctx,e,this.w),this.ctx.fireEvent("legendClick",[this.ctx,e,this.w]);var s=this.w.config.legend.markers.onClick;"function"==typeof s&&t.target.classList.contains("apexcharts-legend-marker")&&(s(this.ctx,e,this.w),this.ctx.fireEvent("legendMarkerClick",[this.ctx,e,this.w])),this.toggleDataSeries(e,i)}}},{key:"toggleDataSeries",value:function(t,e){var i=this.w;if(i.globals.axisCharts||"radialBar"===i.config.chart.type){i.globals.resized=!0;var a=null,s=null;if(i.globals.risingSeries=[],i.globals.axisCharts?(a=i.globals.dom.baseEl.querySelector(".apexcharts-series[data\\:realIndex='".concat(t,"']")),s=parseInt(a.getAttribute("data:realIndex"))):(a=i.globals.dom.baseEl.querySelector(".apexcharts-series[rel='".concat(t+1,"']")),s=parseInt(a.getAttribute("rel"))-1),e)this.riseCollapsedSeries(i.globals.collapsedSeries,i.globals.collapsedSeriesIndices,s),this.riseCollapsedSeries(i.globals.ancillaryCollapsedSeries,i.globals.ancillaryCollapsedSeriesIndices,s);else{if(i.globals.axisCharts){var n=!1;if(i.config.yaxis[s]&&i.config.yaxis[s].show&&i.config.yaxis[s].showAlways&&(n=!0,i.globals.ancillaryCollapsedSeriesIndices.indexOf(s)<0&&(i.globals.ancillaryCollapsedSeries.push({index:s,data:i.config.series[s].data.slice(),type:a.parentNode.className.baseVal.split("-")[1]}),i.globals.ancillaryCollapsedSeriesIndices.push(s))),!n){i.globals.collapsedSeries.push({index:s,data:i.config.series[s].data.slice(),type:a.parentNode.className.baseVal.split("-")[1]}),i.globals.collapsedSeriesIndices.push(s);var r=i.globals.risingSeries.indexOf(s);i.globals.risingSeries.splice(r,1)}i.config.series[s].data=[]}else i.globals.collapsedSeries.push({index:s,data:i.config.series[s]}),i.globals.collapsedSeriesIndices.push(s),i.config.series[s]=0;for(var o=a.childNodes,l=0;l0)for(var s=0;s1&&(this.yaxisIndex=A),this.isReversed=a.config.yaxis[this.yaxisIndex]&&a.config.yaxis[this.yaxisIndex].reversed;var S=[],P=[],E=a.globals.gridHeight-f[this.yaxisIndex]-(this.isReversed?a.globals.gridHeight:0)+(this.isReversed?2*f[this.yaxisIndex]:0),M=E;E>a.globals.gridHeight&&(M=a.globals.gridHeight),m=k/2;var T=a.globals.padHorizontal+m,I=1;a.globals.isXNumeric&&a.globals.seriesX.length>0&&(T=(a.globals.seriesX[A][0]-a.globals.minX)/g),P.push(T);var X=void 0,Y=void 0,F=void 0,R=void 0,D=[],O=[],N=s.group({class:"apexcharts-series",seriesName:u.escapeString(a.globals.seriesNames[A])}),H=s.group({class:"apexcharts-series-markers-wrap"}),W=s.group({class:"apexcharts-datalabels"});this.ctx.series.addCollapsedClassToSeries(N,A);var B=t[v].length===a.globals.dataPoints;N.attr({"data:longestSeries":B,rel:v+1,"data:realIndex":A}),this.appendPathFrom=!0;var V=T,G=void 0,_=V,j=E,U=0;if(j=this.determineFirstPrevY({i:v,series:t,yRatio:c[this.yaxisIndex],zeroY:E,prevY:j,prevSeriesY:b,lineYPosition:U}).prevY,S.push(j),G=j,null===t[v][0]){for(var q=0;q0){var Z=this.checkPreviousPaths({pathFromLine:F,pathFromArea:R,realIndex:A});F=Z.pathFromLine,R=Z.pathFromArea}for(var $=a.globals.dataPoints>1?a.globals.dataPoints-1:a.globals.dataPoints,J=0;J<$;J++){if(a.globals.isXNumeric){var Q=a.globals.seriesX[A][J+1];void 0===a.globals.seriesX[A][J+1]&&(Q=a.globals.seriesX[A][$-1]),T=(Q-a.globals.minX)/g}else T+=k;var K=u.isNumber(a.globals.minYArr[A])?a.globals.minYArr[A]:a.globals.minY;a.config.chart.stacked?(U=v>0&&a.globals.collapsedSeries.length1&&H.node.classList.add("hidden");var at=it.plotChartMarkers(et,A,J+1);null!==at&&H.add(at)}var st=!t[v][J+1]||t[v][J+1]>t[v][J]?"top":"bottom",nt=new z(this.ctx).drawDataLabel(et,A,J+1,null,st);null!==nt&&W.add(nt)}b.push(S),a.globals.seriesXvalues[A]=P,a.globals.seriesYvalues[A]=S,this.pointsChart||a.globals.delayedElements.push({el:H.node,index:A});var rt={i:v,realIndex:A,animationDelay:v,initialSpeed:a.config.chart.animations.speed,dataChangeSpeed:a.config.chart.animations.dynamicAnimation.speed,className:"apexcharts-".concat(o)};if("area"===o)for(var ot=n.fillPath({seriesNumber:A}),lt=0;lt0;gt--)l.add(x[gt-1]);return l}},{key:"createPaths",value:function(t){var e=t.series,i=t.i,a=t.j,s=t.x,n=t.y,r=t.pX,o=t.pY,l=t.xDivision,h=t.areaBottomY,c=t.linePath,d=t.areaPath,u=t.linePaths,g=t.areaPaths,f=t.seriesIndex,x=this.w,b=new p(this.ctx),m=x.config.stroke.curve;if(Array.isArray(x.config.stroke.curve)&&(m=Array.isArray(f)?x.config.stroke.curve[f[i]]:x.config.stroke.curve[i]),"smooth"===m){var v=.35*(s-r);x.globals.hasNullValues?(null!==e[i][a]&&(null!==e[i][a+1]?(c=b.move(r,o)+b.curve(r+v,o,s-v,n,s+1,n),d=b.move(r+1,o)+b.curve(r+v,o,s-v,n,s+1,n)+b.line(s,h)+b.line(r,h)+"z"):(c=b.move(r,o),d=b.move(r,o)+"z")),u.push(c),g.push(d)):(c+=b.curve(r+v,o,s-v,n,s,n),d+=b.curve(r+v,o,s-v,n,s,n)),r=s,o=n,a===e[i].length-2&&(d=d+b.curve(r,o,s,n,s,h)+b.move(s,n)+"z",x.globals.hasNullValues||(u.push(c),g.push(d)))}else null===e[i][a+1]&&(c+=b.move(s,n),d=d+b.line(s-l,h)+b.move(s,n)),null===e[i][a]&&(c+=b.move(s,n),d+=b.move(s,h)),"stepline"===m?(c=c+b.line(s,null,"H")+b.line(null,n,"V"),d=d+b.line(s,null,"H")+b.line(null,n,"V")):"straight"===m&&(c+=b.line(s,n),d+=b.line(s,n)),a===e[i].length-2&&(d=d+b.line(s,h)+b.move(s,n)+"z",u.push(c),g.push(d));return{linePaths:u,areaPaths:g,pX:r,pY:o,linePath:c,areaPath:d}}},{key:"calculatePoints",value:function(t){var e=t.series,i=t.realIndex,a=t.x,s=t.y,n=t.i,r=t.j,o=t.prevY,l=t.categoryAxisCorrection,h=t.xRatio,c=this.w,d=[],g=[];if(0===r){var f=l+c.config.markers.offsetX;c.globals.isXNumeric&&(f=(c.globals.seriesX[i][0]-c.globals.minX)/h+c.config.markers.offsetX),d.push(f),g.push(u.isNumber(e[n][0])?o+c.config.markers.offsetY:null),d.push(a+c.config.markers.offsetX),g.push(u.isNumber(e[n][r+1])?s+c.config.markers.offsetY:null)}else d.push(a+c.config.markers.offsetX),g.push(u.isNumber(e[n][r+1])?s+c.config.markers.offsetY:null);return{x:d,y:g}}},{key:"checkPreviousPaths",value:function(t){for(var e=t.pathFromLine,i=t.pathFromArea,a=t.realIndex,s=this.w,n=0;n0&&parseInt(r.realIndex)===parseInt(a)&&("line"===r.type?(this.appendPathFrom=!1,e=s.globals.previousPaths[n].paths[0].d):"area"===r.type&&(this.appendPathFrom=!1,i=s.globals.previousPaths[n].paths[0].d,s.config.stroke.show&&(e=s.globals.previousPaths[n].paths[1].d)))}return{pathFromLine:e,pathFromArea:i}}},{key:"determineFirstPrevY",value:function(t){var e=t.i,i=t.series,a=t.yRatio,s=t.zeroY,n=t.prevY,r=t.prevSeriesY,o=t.lineYPosition,l=this.w;if(void 0!==i[e][0])n=l.config.chart.stacked?(o=e>0?r[e-1][0]:s)-i[e][0]/a+2*(this.isReversed?i[e][0]/a:0):s-i[e][0]/a+2*(this.isReversed?i[e][0]/a:0);else if(l.config.chart.stacked&&e>0&&void 0===i[e][0])for(var h=e-1;h>=0;h--)if(null!==i[h][0]&&void 0!==i[h][0]){n=o=r[h][0];break}return{prevY:n,lineYPosition:o}}}]),t}(),_=function(){function t(i){e(this,t),this.ctx=i,this.w=i.w;var a=this.w;this.xaxisLabels=a.globals.labels.slice(),a.globals.timelineLabels.length>0&&(this.xaxisLabels=a.globals.timelineLabels.slice()),this.drawnLabels=[],"top"===a.config.xaxis.position?this.offY=0:this.offY=a.globals.gridHeight+1,this.offY=this.offY+a.config.xaxis.axisBorder.offsetY,this.xaxisFontSize=a.config.xaxis.labels.style.fontSize,this.xaxisFontFamily=a.config.xaxis.labels.style.fontFamily,this.xaxisForeColors=a.config.xaxis.labels.style.colors,this.xaxisBorderWidth=a.config.xaxis.axisBorder.width,this.xaxisBorderWidth.indexOf("%")>-1?this.xaxisBorderWidth=a.globals.gridWidth*parseInt(this.xaxisBorderWidth)/100:this.xaxisBorderWidth=parseInt(this.xaxisBorderWidth),this.xaxisBorderHeight=a.config.xaxis.axisBorder.height,this.yaxis=a.config.yaxis[0],this.axesUtils=new N(i)}return a(t,[{key:"drawXaxis",value:function(){var t,e=this.w,i=new p(this.ctx),a=i.group({class:"apexcharts-xaxis",transform:"translate(".concat(e.config.xaxis.offsetX,", ").concat(e.config.xaxis.offsetY,")")}),s=i.group({class:"apexcharts-xaxis-texts-g",transform:"translate(".concat(e.globals.translateXAxisX,", ").concat(e.globals.translateXAxisY,")")});a.add(s);for(var n=e.globals.padHorizontal,r=[],o=0;oi.globals.gridWidth)){var s=this.offY+i.config.xaxis.axisTicks.offsetY,n=s+i.config.xaxis.axisTicks.height;if(i.config.xaxis.axisTicks.show){var r=new p(this.ctx).drawLine(t+i.config.xaxis.axisTicks.offsetX,s+i.config.xaxis.offsetY,a+i.config.xaxis.axisTicks.offsetX,n+i.config.xaxis.offsetY,i.config.xaxis.axisTicks.color);e.add(r),r.node.classList.add("apexcharts-xaxis-tick")}}}},{key:"getXAxisTicksPositions",value:function(){var t=this.w,e=[],i=this.xaxisLabels.length,a=t.globals.padHorizontal;if(t.globals.timelineLabels.length>0)for(var s=0;s0){var u=s[s.length-1].getBBox(),g=s[0].getBBox();u.x<-20&&s[s.length-1].parentNode.removeChild(s[s.length-1]),g.x+g.width>t.globals.gridWidth&&!t.globals.isBarHorizontal&&s[0].parentNode.removeChild(s[0]);for(var f=0;f3&&void 0!==arguments[3]?arguments[3]:0,s=arguments.length>4&&void 0!==arguments[4]?arguments[4]:10,n=this.w,r=void 0===this.w.config.yaxis[a].max&&void 0===this.w.config.yaxis[a].min||this.w.config.yaxis[a].forceNiceScale;if(t===Number.MIN_VALUE&&0===e||!u.isNumber(t)&&!u.isNumber(e)||t===Number.MIN_VALUE&&e===-Number.MAX_VALUE)return t=0,e=s,this.linearScale(t,e,s);t>e?(console.warn("yaxis.min cannot be greater than yaxis.max"),e=t+.1):t===e&&(t=0===t?0:t-.5,e=0===e?2:e+.5);var o=[],l=Math.abs(e-t);l<1&&r&&("candlestick"===n.config.chart.type||"candlestick"===n.config.series[a].type||n.globals.isRangeData)&&(e*=1.01);var h=s+1;h<2?h=2:h>2&&(h-=2);var c=l/h,d=Math.floor(u.log10(c)),g=Math.pow(10,d),f=Math.round(c/g);f<1&&(f=1);var p=f*g,x=p*Math.floor(t/p),b=p*Math.ceil(e/p),m=x;if(r&&l>2){for(;o.push(m),!((m+=p)>b););return{result:o,niceMin:o[0],niceMax:o[o.length-1]}}var v=t;(o=[]).push(v);for(var y=Math.abs(e-t)/s,w=0;w<=s;w++)v+=y,o.push(v);return o[o.length-2]>=e&&o.pop(),{result:o,niceMin:o[0],niceMax:o[o.length-1]}}},{key:"linearScale",value:function(t,e){var i=arguments.length>2&&void 0!==arguments[2]?arguments[2]:10,a=Math.abs(e-t)/i;i===Number.MAX_VALUE&&(i=10,a=1);for(var s=[],n=t;i>=0;)s.push(n),n+=a,i-=1;return{result:s,niceMin:s[0],niceMax:s[s.length-1]}}},{key:"logarithmicScale",value:function(t,e,i,a){(e<0||e===Number.MIN_VALUE)&&(e=.01);for(var s=Math.log(e)/Math.log(10),n=Math.log(i)/Math.log(10),r=Math.abs(i-e)/a,o=[],l=e;a>=0;)o.push(l),l+=r,a-=1;var h=o.map(function(t,a){t<=0&&(t=.01);var r=(n-s)/(i-e),o=Math.pow(10,s+r*(t-s));return Math.round(o/u.roundToBase(o,10))*u.roundToBase(o,10)});return 0===h[0]&&(h[0]=1),{result:h,niceMin:h[0],niceMax:h[h.length-1]}}},{key:"setYScaleForIndex",value:function(t,e,i){var a=this.w.globals,s=this.w.config,n=a.isBarHorizontal?s.xaxis:s.yaxis[t];if(void 0===a.yAxisScale[t]&&(a.yAxisScale[t]=[]),n.logarithmic)a.allSeriesCollapsed=!1,a.yAxisScale[t]=this.logarithmicScale(t,e,i,n.tickAmount?n.tickAmount:Math.floor(Math.log10(i)));else if(i!==-Number.MAX_VALUE&&u.isNumber(i))if(a.allSeriesCollapsed=!1,void 0===n.min&&void 0===n.max||n.forceNiceScale){var r=Math.abs(i-e);a.yAxisScale[t]=this.niceScale(e,i,r,t,n.tickAmount?n.tickAmount:r<5&&r>1?r+1:5)}else a.yAxisScale[t]=this.linearScale(e,i,n.tickAmount);else a.yAxisScale[t]=this.linearScale(0,5,5)}},{key:"setMultipleYScales",value:function(){var t=this,e=this.w.globals,i=this.w.config,a=e.minYArr.concat([]),s=e.maxYArr.concat([]),n=[];i.yaxis.forEach(function(r,o){var l=o;i.series.forEach(function(t,i){t.name===r.seriesName&&-1===e.collapsedSeriesIndices.indexOf(i)&&(l=i,o!==i?n.push({index:i,similarIndex:o,alreadyExists:!0}):n.push({index:i}))});var h=a[l],c=s[l];t.setYScaleForIndex(o,h,c)}),this.sameScaleInMultipleAxes(a,s,n)}},{key:"sameScaleInMultipleAxes",value:function(t,e,i){var a=this,s=this.w.config,n=this.w.globals,r=[];i.forEach(function(t){t.alreadyExists&&(void 0===r[t.index]&&(r[t.index]=[]),r[t.index].push(t.index),r[t.index].push(t.similarIndex))}),n.yAxisSameScaleIndices=r,r.forEach(function(t,e){r.forEach(function(i,a){var s,n;e!==a&&(s=t,n=i,s.filter(function(t){return-1!==n.indexOf(t)})).length>0&&(r[e]=r[e].concat(r[a]))})});var o=r.map(function(t){return t.filter(function(e,i){return t.indexOf(e)===i})}).map(function(t){return t.sort()});r=r.filter(function(t){return!!t});var l=o.slice(),h=l.map(function(t){return JSON.stringify(t)});l=l.filter(function(t,e){return h.indexOf(JSON.stringify(t))===e});var c=[],d=[];t.forEach(function(t,i){l.forEach(function(a,s){a.indexOf(i)>-1&&(void 0===c[s]&&(c[s]=[],d[s]=[]),c[s].push({key:i,value:t}),d[s].push({key:i,value:e[i]}))})});var u=Array.apply(null,Array(l.length)).map(Number.prototype.valueOf,Number.MIN_VALUE),g=Array.apply(null,Array(l.length)).map(Number.prototype.valueOf,-Number.MAX_VALUE);c.forEach(function(t,e){t.forEach(function(t,i){u[e]=Math.min(t.value,u[e])})}),d.forEach(function(t,e){t.forEach(function(t,i){g[e]=Math.max(t.value,g[e])})}),t.forEach(function(t,e){d.forEach(function(t,i){var r=u[i],o=g[i];s.chart.stacked&&(o=0,t.forEach(function(t,e){o+=t.value,r!==Number.MIN_VALUE&&(r+=c[i][e].value)})),t.forEach(function(i,l){t[l].key===e&&(void 0!==s.yaxis[e].min&&(r="function"==typeof s.yaxis[e].min?s.yaxis[e].min(n.minY):s.yaxis[e].min),void 0!==s.yaxis[e].max&&(o="function"==typeof s.yaxis[e].max?s.yaxis[e].max(n.maxY):s.yaxis[e].max),a.setYScaleForIndex(e,r,o))})})})}},{key:"autoScaleY",value:function(t,e,i){t||(t=this);var a=t.w;if(a.globals.isMultipleYAxis||a.globals.collapsedSeries.length)return console.warn("autoScaleYaxis is not supported in a multi-yaxis chart."),e;var s=a.globals.seriesX[0],n=a.config.chart.stacked;return e.forEach(function(t,r){for(var o=0,l=0;l=i.xaxis.min){o=l;break}var h,c,d=a.globals.minYArr[r],u=a.globals.maxYArr[r],g=a.globals.stackedSeriesTotals;a.globals.series.forEach(function(r,l){var f=r[o];n?(f=g[o],h=c=f,g.forEach(function(t,e){s[e]<=i.xaxis.max&&s[e]>=i.xaxis.min&&(t>c&&null!==t&&(c=t),r[e]=i.xaxis.min){var n=t,r=t;a.globals.series.forEach(function(i,a){null!==t&&(n=Math.min(i[e],n),r=Math.max(i[e],r))}),r>c&&null!==r&&(c=r),nd&&(h=d),e.length>1?(e[l].min=void 0===t.min?h:t.min,e[l].max=void 0===t.max?c:t.max):(e[0].min=void 0===t.min?h:t.min,e[0].max=void 0===t.max?c:t.max)})}),e}}]),t}(),U=function(){function t(i){e(this,t),this.ctx=i,this.w=i.w,this.scales=new j(i)}return a(t,[{key:"init",value:function(){this.setYRange(),this.setXRange(),this.setZRange()}},{key:"getMinYMaxY",value:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:Number.MAX_VALUE,i=arguments.length>2&&void 0!==arguments[2]?arguments[2]:-Number.MAX_VALUE,a=arguments.length>3&&void 0!==arguments[3]?arguments[3]:null,s=this.w.globals,n=-Number.MAX_VALUE,r=Number.MIN_VALUE;null===a&&(a=t+1);var o=s.series,l=o,h=o;"candlestick"===this.w.config.chart.type?(l=s.seriesCandleL,h=s.seriesCandleH):s.isRangeData&&(l=s.seriesRangeStart,h=s.seriesRangeEnd);for(var c=t;cl[c][d]&&l[c][d]<0&&(r=l[c][d])):s.hasNullValues=!0}}return{minY:r,maxY:n,lowestY:e,highestY:i}}},{key:"setYRange",value:function(){var t=this.w.globals,e=this.w.config;t.maxY=-Number.MAX_VALUE,t.minY=Number.MIN_VALUE;var i=Number.MAX_VALUE;if(t.isMultipleYAxis)for(var a=0;a0?h=h+parseFloat(t.series[d][l])+1e-4:c+=parseFloat(t.series[d][l])),d===t.series.length-1&&(r.push(h),o.push(c));for(var g=0;g=0&&i<=10&&(f=0),t.minY=i-5*f/100,t.maxY=t.maxY+5*f/100}return e.yaxis.map(function(e,i){void 0!==e.max&&("number"==typeof e.max?t.maxYArr[i]=e.max:"function"==typeof e.max&&(t.maxYArr[i]=e.max(t.maxY)),t.maxY=t.maxYArr[i]),void 0!==e.min&&("number"==typeof e.min?t.minYArr[i]=e.min:"function"==typeof e.min&&(t.minYArr[i]=e.min(t.minY)),t.minY=t.minYArr[i])}),t.isBarHorizontal&&(void 0!==e.xaxis.min&&"number"==typeof e.xaxis.min&&(t.minY=e.xaxis.min),void 0!==e.xaxis.max&&"number"==typeof e.xaxis.max&&(t.maxY=e.xaxis.max)),t.isMultipleYAxis?(this.scales.setMultipleYScales(),t.minY=i,t.yAxisScale.forEach(function(e,i){t.minYArr[i]=e.niceMin,t.maxYArr[i]=e.niceMax})):(this.scales.setYScaleForIndex(0,t.minY,t.maxY),t.minY=t.yAxisScale[0].niceMin,t.maxY=t.yAxisScale[0].niceMax,t.minYArr[0]=t.yAxisScale[0].niceMin,t.maxYArr[0]=t.yAxisScale[0].niceMax),{minY:t.minY,maxY:t.maxY,minYArr:t.minYArr,maxYArr:t.maxYArr}}},{key:"setXRange",value:function(){var t,e=this.w.globals,i=this.w.config,a="numeric"===i.xaxis.type||"datetime"===i.xaxis.type||"category"===i.xaxis.type&&!e.noLabelsProvided||e.noLabelsProvided||e.isXNumeric;if(e.isXNumeric)for(var s=0;se.dataPoints&&0!==e.dataPoints&&(t=e.dataPoints-1)):t="dataPoints"===i.xaxis.tickAmount?e.series[e.maxValsInArrayIndex].length-1:i.xaxis.tickAmount,void 0!==i.xaxis.max&&"number"==typeof i.xaxis.max&&(e.maxX=i.xaxis.max),void 0!==i.xaxis.min&&"number"==typeof i.xaxis.min&&(e.minX=i.xaxis.min),void 0!==i.xaxis.range&&(e.minX=e.maxX-i.xaxis.range),e.minX!==Number.MAX_VALUE&&e.maxX!==-Number.MAX_VALUE?e.xAxisScale=this.scales.linearScale(e.minX,e.maxX,t):(e.xAxisScale=this.scales.linearScale(1,t,t),e.noLabelsProvided&&e.labels.length>0&&(e.xAxisScale=this.scales.linearScale(1,e.labels.length,t-1),e.seriesX=e.labels.slice())),a&&(e.labels=e.xAxisScale.result.slice()));if(e.minX===e.maxX)if("datetime"===i.xaxis.type){var h=new Date(e.minX);h.setDate(h.getDate()-2),e.minX=new Date(h).getTime();var c=new Date(e.maxX);c.setDate(c.getDate()+2),e.maxX=new Date(c).getTime()}else("numeric"===i.xaxis.type||"category"===i.xaxis.type&&!e.noLabelsProvided)&&(e.minX=e.minX-2,e.maxX=e.maxX+2);return e.isXNumeric&&e.seriesX.forEach(function(t,i){1===t.length&&t.push(e.seriesX[e.maxValsInArrayIndex][e.seriesX[e.maxValsInArrayIndex].length-1]);var a=t.slice();a.sort(function(t,e){return t-e}),a.forEach(function(t,a){if(a>0){var s=t-e.seriesX[i][a-1];e.minXDiff=Math.min(s,e.minXDiff)}})}),{minX:e.minX,maxX:e.maxX}}},{key:"setZRange",value:function(){var t=this.w.globals;if(t.isDataXYZ)for(var e=0;e5e4&&(a.globals.disableZoomOut=!0);var o=s.getTimeUnitsfromTimestamp(t,e),l=a.globals.gridWidth/n,h=l/24,c=h/60,d=Math.floor(24*n),u=Math.floor(24*n*60),g=Math.floor(n),f=Math.floor(n/30),p=Math.floor(n/365),x={minMinute:o.minMinute,minHour:o.minHour,minDate:o.minDate,minMonth:o.minMonth,minYear:o.minYear},b={firstVal:x,currentMinute:x.minMinute,currentHour:x.minHour,currentMonthDate:x.minDate,currentDate:x.minDate,currentMonth:x.minMonth,currentYear:x.minYear,daysWidthOnXAxis:l,hoursWidthOnXAxis:h,minutesWidthOnXAxis:c,numberOfMinutes:u,numberOfHours:d,numberOfDays:g,numberOfMonths:f,numberOfYears:p};switch(this.tickInterval){case"years":this.generateYearScale(b);break;case"months":case"half_year":this.generateMonthScale(b);break;case"months_days":case"months_fortnight":case"days":case"week_days":this.generateDayScale(b);break;case"hours":this.generateHourScale(b);break;case"minutes":this.generateMinuteScale(b)}var m=this.timeScaleArray.map(function(t){var e={position:t.position,unit:t.unit,year:t.year,day:t.day?t.day:1,hour:t.hour?t.hour:0,month:t.month+1};return"month"===t.unit?r({},e,{day:1,value:t.value+1}):"day"===t.unit||"hour"===t.unit?r({},e,{value:t.value}):"minute"===t.unit?r({},e,{value:t.value,minute:t.value}):t});return m.filter(function(t){var e=1,s=Math.ceil(a.globals.gridWidth/120),n=t.value;void 0!==a.config.xaxis.tickAmount&&(s=a.config.xaxis.tickAmount),m.length>s&&(e=Math.floor(m.length/s));var r=!1,o=!1;switch(i.tickInterval){case"half_year":e=7,"year"===t.unit&&(r=!0);break;case"months":e=1,"year"===t.unit&&(r=!0);break;case"months_fortnight":e=15,"year"!==t.unit&&"month"!==t.unit||(r=!0),30===n&&(o=!0);break;case"months_days":e=10,"month"===t.unit&&(r=!0),30===n&&(o=!0);break;case"week_days":e=8,"month"===t.unit&&(r=!0);break;case"days":e=1,"month"===t.unit&&(r=!0);break;case"hours":"day"===t.unit&&(r=!0);break;case"minutes":n%5!=0&&(o=!0)}if("minutes"===i.tickInterval||"hours"===i.tickInterval){if(!o)return!0}else if((n%e==0||r)&&!o)return!0})}},{key:"recalcDimensionsBasedOnFormat",value:function(t,e){var i=this.w,a=this.formatDates(t),s=this.removeOverlappingTS(a);e?i.globals.invertedTimelineLabels=s.slice():i.globals.timelineLabels=s.slice(),new W(this.ctx).plotCoords()}},{key:"determineInterval",value:function(t){switch(!0){case t>1825:this.tickInterval="years";break;case t>800&&t<=1825:this.tickInterval="half_year";break;case t>180&&t<=800:this.tickInterval="months";break;case t>90&&t<=180:this.tickInterval="months_fortnight";break;case t>60&&t<=90:this.tickInterval="months_days";break;case t>30&&t<=60:this.tickInterval="week_days";break;case t>2&&t<=30:this.tickInterval="days";break;case t>.1&&t<=2:this.tickInterval="hours";break;case t<.1:this.tickInterval="minutes";break;default:this.tickInterval="days"}}},{key:"generateYearScale",value:function(t){var e=t.firstVal,i=t.currentMonth,a=t.currentYear,s=t.daysWidthOnXAxis,n=t.numberOfYears,r=e.minYear,o=0,l=new v(this.ctx);if(e.minDate>1&&e.minMonth>0){var h=l.determineRemainingDaysOfYear(e.minYear,e.minMonth,e.minDate);o=(l.determineDaysOfYear(e.minYear)-h+1)*s,r=e.minYear+1,this.timeScaleArray.push({position:o,value:r,unit:"year",year:r,month:u.monthMod(i+1)})}else 1===e.minDate&&0===e.minMonth&&this.timeScaleArray.push({position:o,value:r,unit:"year",year:a,month:u.monthMod(i+1)});for(var c=r,d=o,g=0;g1){l=(h.determineDaysOfMonths(a+1,e.minYear)-i+1)*n,o=u.monthMod(a+1);var g=s+d,f=u.monthMod(o),p=o;0===o&&(c="year",p=g,f=1,g+=d+=1),this.timeScaleArray.push({position:l,value:p,unit:c,year:g,month:f})}else this.timeScaleArray.push({position:l,value:o,unit:c,year:s,month:u.monthMod(a)});for(var x=o+1,b=l,m=0,y=1;mr.determineDaysOfMonths(e+1,i)?(g=1,o="month",c=e+=1,e):e},g=h,f=d(g,i,a);this.timeScaleArray.push({position:l,value:c,unit:o,year:a,month:u.monthMod(f),day:g});for(var p=l,x=0;xo.determineDaysOfMonths(e+1,s)&&(x=1,e+=1),{month:e,date:x}},c=function(t,e){return t>o.determineDaysOfMonths(e+1,s)?e+=1:e},d=60-e.minMinute,g=d*n,f=e.minHour+1,p=f+1;60===d&&(g=0,p=(f=e.minHour)+1);var x=i,b=c(x,a);this.timeScaleArray.push({position:g,value:f,unit:l,day:x,hour:p,year:s,month:u.monthMod(b)});for(var m=g,y=0;y=24)p=0,l="day",b=h(x+=1,b).month,b=c(x,b);var w=s+Math.floor(b/12)+0;m=0===p&&0===y?d*n:60*n+m;var k=0===p?x:p;this.timeScaleArray.push({position:m,value:k,unit:l,hour:p,day:x,year:w,month:u.monthMod(b)}),p++}}},{key:"generateMinuteScale",value:function(t){var e=t.firstVal,i=t.currentMinute,a=t.currentHour,s=t.currentDate,n=t.currentMonth,r=t.currentYear,o=t.minutesWidthOnXAxis,l=t.numberOfMinutes,h=o-(i-e.minMinute),c=e.minMinute+1,d=c+1,g=s,f=n,p=r,x=a;this.timeScaleArray.push({position:h,value:c,unit:"minute",day:g,hour:x,minute:d,year:p,month:u.monthMod(f)});for(var b=h,m=0;m=60&&(d=0,24===(x+=1)&&(x=0));var v=r+Math.floor(f/12)+0;b=o+b;var y=d;this.timeScaleArray.push({position:b,value:y,unit:"minute",hour:x,minute:d,day:g,year:v,month:u.monthMod(f)}),d++}}},{key:"createRawDateString",value:function(t,e){var i=t.year;return i+="-"+("0"+t.month.toString()).slice(-2),"day"===t.unit?i+="day"===t.unit?"-"+("0"+e).slice(-2):"-01":i+="-"+("0"+(t.day?t.day:"1")).slice(-2),"hour"===t.unit?i+="hour"===t.unit?"T"+("0"+e).slice(-2):"T00":i+="T"+("0"+(t.hour?t.hour:"0")).slice(-2),i+="minute"===t.unit?":"+("0"+e).slice(-2)+":00.000Z":":00:00.000Z"}},{key:"formatDates",value:function(t){var e=this,i=this.w;return t.map(function(t){var a=t.value.toString(),s=new v(e.ctx),n=e.createRawDateString(t,a),r=new Date(Date.parse(n));if(void 0===i.config.xaxis.labels.format){var o="dd MMM",l=i.config.xaxis.labels.datetimeFormatter;"year"===t.unit&&(o=l.year),"month"===t.unit&&(o=l.month),"day"===t.unit&&(o=l.day),"hour"===t.unit&&(o=l.hour),"minute"===t.unit&&(o=l.minute),a=s.formatDate(r,o,!0,!1)}else a=s.formatDate(r,i.config.xaxis.labels.format);return{dateString:n,position:t.position,value:a,unit:t.unit,year:t.year,month:t.month}})}},{key:"removeOverlappingTS",value:function(t){var e=this,i=new p(this.ctx),a=0,s=t.map(function(s,n){if(n>0&&e.w.config.xaxis.labels.hideOverlappingLabels){var r=i.getTextRects(t[a].value).width,o=t[a].position;return s.position>o+r+10?(a=n,s):null}return s});return s=s.filter(function(t){return null!==t})}}]),t}(),Z=function(){function t(i,a){e(this,t),this.ctx=a,this.w=a.w,this.el=i,this.coreUtils=new w(this.ctx),this.twoDSeries=[],this.threeDSeries=[],this.twoDSeriesX=[]}return a(t,[{key:"setupElements",value:function(){var t=this.w.globals,e=this.w.config,i=e.chart.type;t.axisCharts=["line","area","bar","rangeBar","candlestick","radar","scatter","bubble","heatmap"].indexOf(i)>-1,t.xyCharts=["line","area","bar","rangeBar","candlestick","scatter","bubble"].indexOf(i)>-1,t.isBarHorizontal=("bar"===e.chart.type||"rangeBar"===e.chart.type)&&e.plotOptions.bar.horizontal,t.chartClass=".apexcharts"+t.cuid,t.dom.baseEl=this.el,t.dom.elWrap=document.createElement("div"),p.setAttrs(t.dom.elWrap,{id:t.chartClass.substring(1),class:"apexcharts-canvas "+t.chartClass.substring(1)}),this.el.appendChild(t.dom.elWrap),t.dom.Paper=new window.SVG.Doc(t.dom.elWrap),t.dom.Paper.attr({class:"apexcharts-svg","xmlns:data":"ApexChartsNS",transform:"translate(".concat(e.chart.offsetX,", ").concat(e.chart.offsetY,")")}),t.dom.Paper.node.style.background=e.chart.background,this.setSVGDimensions(),t.dom.elGraphical=t.dom.Paper.group().attr({class:"apexcharts-inner apexcharts-graphical"}),t.dom.elDefs=t.dom.Paper.defs(),t.dom.elLegendWrap=document.createElement("div"),t.dom.elLegendWrap.classList.add("apexcharts-legend"),t.dom.elWrap.appendChild(t.dom.elLegendWrap),t.dom.Paper.add(t.dom.elGraphical),t.dom.elGraphical.add(t.dom.elDefs)}},{key:"plotChartType",value:function(t,e){var i=this.w,a=i.config,s=i.globals,n={series:[],i:[]},r={series:[],i:[]},o={series:[],i:[]},l={series:[],i:[]},h={series:[],i:[]},c={series:[],i:[]};s.series.map(function(e,a){void 0!==t[a].type?("column"===t[a].type||"bar"===t[a].type?(i.config.plotOptions.bar.horizontal=!1,h.series.push(e),h.i.push(a),i.globals.columnSeries=h.series):"area"===t[a].type?(r.series.push(e),r.i.push(a)):"line"===t[a].type?(n.series.push(e),n.i.push(a)):"scatter"===t[a].type?(o.series.push(e),o.i.push(a)):"bubble"===t[a].type?(l.series.push(e),l.i.push(a)):"candlestick"===t[a].type?(c.series.push(e),c.i.push(a)):console.warn("You have specified an unrecognized chart type. Available types for this propery are line/area/column/bar/scatter/bubble"),s.comboCharts=!0):(n.series.push(e),n.i.push(a))});var d=new G(this.ctx,e),u=new T(this.ctx,e),g=new Y(this.ctx),f=new R(this.ctx),p=new D(this.ctx,e),x=new F(this.ctx),b=[];if(s.comboCharts){if(r.series.length>0&&b.push(d.draw(r.series,"area",r.i)),h.series.length>0)if(i.config.chart.stacked){var m=new M(this.ctx,e);b.push(m.draw(h.series,h.i))}else{var v=new E(this.ctx,e);b.push(v.draw(h.series,h.i))}if(n.series.length>0&&b.push(d.draw(n.series,"line",n.i)),c.series.length>0&&b.push(u.draw(c.series,c.i)),o.series.length>0){var y=new G(this.ctx,e,!0);b.push(y.draw(o.series,"scatter",o.i))}if(l.series.length>0){var w=new G(this.ctx,e,!0);b.push(w.draw(l.series,"bubble",l.i))}}else switch(a.chart.type){case"line":b=d.draw(s.series,"line");break;case"area":b=d.draw(s.series,"area");break;case"bar":if(a.chart.stacked)b=new M(this.ctx,e).draw(s.series);else b=new E(this.ctx,e).draw(s.series);break;case"candlestick":b=new T(this.ctx,e).draw(s.series);break;case"rangeBar":b=p.draw(s.series);break;case"heatmap":b=new X(this.ctx,e).draw(s.series);break;case"pie":case"donut":b=g.draw(s.series);break;case"radialBar":b=f.draw(s.series);break;case"radar":b=x.draw(s.series);break;default:b=d.draw(s.series)}return b}},{key:"setSVGDimensions",value:function(){var t=this.w.globals,e=this.w.config;t.svgWidth=e.chart.width,t.svgHeight=e.chart.height;var i=u.getDimensions(this.el),a=e.chart.width.toString().split(/[0-9]+/g).pop();if("%"===a?u.isNumber(i[0])&&(0===i[0].width&&(i=u.getDimensions(this.el.parentNode)),t.svgWidth=i[0]*parseInt(e.chart.width)/100):"px"!==a&&""!==a||(t.svgWidth=parseInt(e.chart.width)),"auto"!==t.svgHeight&&""!==t.svgHeight)if("%"===e.chart.height.toString().split(/[0-9]+/g).pop()){var s=u.getDimensions(this.el.parentNode);t.svgHeight=s[1]*parseInt(e.chart.height)/100}else t.svgHeight=parseInt(e.chart.height);else t.axisCharts?t.svgHeight=t.svgWidth/1.61:t.svgHeight=t.svgWidth;t.svgWidth<0&&(t.svgWidth=0),t.svgHeight<0&&(t.svgHeight=0),p.setAttrs(t.dom.Paper.node,{width:t.svgWidth,height:t.svgHeight});var n=e.chart.sparkline.enabled?0:t.axisCharts?e.chart.parentHeightOffset:0;t.dom.Paper.node.parentNode.parentNode.style.minHeight=t.svgHeight+n+"px",t.dom.elWrap.style.width=t.svgWidth+"px",t.dom.elWrap.style.height=t.svgHeight+"px"}},{key:"shiftGraphPosition",value:function(){var t=this.w.globals,e=t.translateY,i={transform:"translate("+t.translateX+", "+e+")"};p.setAttrs(t.dom.elGraphical.node,i)}},{key:"resizeNonAxisCharts",value:function(){var t=this.w,e=t.globals,i=0;"top"!==t.config.legend.position&&"bottom"!==t.config.legend.position||(i=new V(this.ctx).getLegendBBox().clwh+10);var a=t.globals.dom.baseEl.querySelector(".apexcharts-radialbar .apexcharts-tracks"),s=t.globals.dom.baseEl.querySelector(".apexcharts-radialbar .apexcharts-datalabels-group"),n=2*t.globals.radialSize;if(a){var r=u.getBoundingClientRect(a);if(n=r.bottom,s){var o=u.getBoundingClientRect(s),l=Math.max(r.bottom,o.bottom)-r.top+o.height;n=Math.max(2*t.globals.radialSize,l)}}var h=n+e.translateY+i+20;e.dom.elLegendForeign&&e.dom.elLegendForeign.setAttribute("height",h),e.dom.elWrap.style.height=h+"px",p.setAttrs(e.dom.Paper.node,{height:h}),e.dom.Paper.node.parentNode.parentNode.style.minHeight=h+"px"}},{key:"coreCalculations",value:function(){new U(this.ctx).init()}},{key:"resetGlobals",value:function(){var t=this,e=this.w.globals;e.series=[],e.seriesCandleO=[],e.seriesCandleH=[],e.seriesCandleL=[],e.seriesCandleC=[],e.seriesRangeStart=[],e.seriesRangeEnd=[],e.seriesPercent=[],e.seriesX=[],e.seriesZ=[],e.seriesNames=[],e.seriesTotals=[],e.stackedSeriesTotals=[],e.labels=[],e.timelineLabels=[],e.noLabelsProvided=!1,e.timescaleTicks=[],e.resizeTimer=null,e.selectionResizeTimer=null,e.seriesXvalues=t.w.config.series.map(function(t){return[]}),e.seriesYvalues=t.w.config.series.map(function(t){return[]}),e.delayedElements=[],e.pointsArray=[],e.dataLabelsRects=[],e.isXNumeric=!1,e.isDataXYZ=!1,e.maxY=-Number.MAX_VALUE,e.minY=Number.MIN_VALUE,e.minYArr=[],e.maxYArr=[],e.maxX=-Number.MAX_VALUE,e.minX=Number.MAX_VALUE,e.initialmaxX=-Number.MAX_VALUE,e.initialminX=Number.MAX_VALUE,e.maxDate=0,e.minDate=Number.MAX_VALUE,e.minZ=Number.MAX_VALUE,e.maxZ=-Number.MAX_VALUE,e.minXDiff=Number.MAX_VALUE,e.yAxisScale=[],e.xAxisScale=null,e.xAxisTicksPositions=[],e.yLabelsCoords=[],e.yTitleCoords=[],e.xRange=0,e.yRange=[],e.zRange=0,e.dataPoints=0}},{key:"isMultipleY",value:function(){if(this.w.config.yaxis.constructor===Array&&this.w.config.yaxis.length>1)return this.w.globals.isMultipleYAxis=!0,!0}},{key:"excludeCollapsedSeriesInYAxis",value:function(){var t=this,e=this.w;e.globals.ignoreYAxisIndexes=e.globals.collapsedSeries.map(function(e,i){if(t.w.globals.isMultipleYAxis)return e.index})}},{key:"isMultiFormat",value:function(){return this.isFormatXY()||this.isFormat2DArray()}},{key:"isFormatXY",value:function(){var t=this.w.config.series.slice(),e=new B(this.ctx);if(this.activeSeriesIndex=e.getActiveConfigSeriesIndex(),void 0!==t[this.activeSeriesIndex].data&&t[this.activeSeriesIndex].data.length>0&&null!==t[this.activeSeriesIndex].data[0]&&void 0!==t[this.activeSeriesIndex].data[0].x&&null!==t[this.activeSeriesIndex].data[0])return!0}},{key:"isFormat2DArray",value:function(){var t=this.w.config.series.slice(),e=new B(this.ctx);if(this.activeSeriesIndex=e.getActiveConfigSeriesIndex(),void 0!==t[this.activeSeriesIndex].data&&t[this.activeSeriesIndex].data.length>0&&void 0!==t[this.activeSeriesIndex].data[0]&&null!==t[this.activeSeriesIndex].data[0]&&t[this.activeSeriesIndex].data[0].constructor===Array)return!0}},{key:"handleFormat2DArray",value:function(t,e){for(var i=this.w.config,a=this.w.globals,s=0;s-1&&(n=this.activeSeriesIndex);for(var r=0;r1&&void 0!==arguments[1]?arguments[1]:this.ctx,i=this.w.config,a=this.w.globals,s=new v(e),n=0;n0?i.labels.slice():i.xaxis.categories.slice(),o=0;o0?i.labels.slice():i.xaxis.categories.slice();l.length>0&&(this.twoDSeriesX=l,a.seriesX.push(this.twoDSeriesX))}a.labels.push(this.twoDSeriesX);var h=t[n].data.map(function(t){return u.parseNumber(t)});a.series.push(h)}a.seriesZ.push(this.threeDSeries),void 0!==t[n].name?a.seriesNames.push(t[n].name):a.seriesNames.push("series-"+parseInt(n+1))}return this.w}},{key:"parseDataNonAxisCharts",value:function(t){var e=this.w.globals,i=this.w.config;e.series=t.slice(),e.seriesNames=i.labels.slice();for(var a=0;a0)i.labels=e.xaxis.categories;else if(e.labels.length>0)i.labels=e.labels.slice();else if(this.fallbackToCategory)i.labels=i.labels[0];else{var a=[];if(i.axisCharts){if(i.series.length>0)for(var s=0;s0&&(this.xaxisLabels=a.globals.timelineLabels.slice())}return a(t,[{key:"drawGridArea",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:null,e=this.w,i=new p(this.ctx);null===t&&(t=i.group({class:"apexcharts-grid"}));var a=i.drawLine(e.globals.padHorizontal,1,e.globals.padHorizontal,e.globals.gridHeight,"transparent"),s=i.drawLine(e.globals.padHorizontal,e.globals.gridHeight,e.globals.gridWidth,e.globals.gridHeight,"transparent");return t.add(s),t.add(a),t}},{key:"drawGrid",value:function(){var t=this.w,e=new _(this.ctx),i=new H(this.ctx),a=this.w.globals,s=null;if(a.axisCharts){if(t.config.grid.show)s=this.renderGrid(),a.dom.elGraphical.add(s.el),this.drawGridArea(s.el);else{var n=this.drawGridArea();a.dom.elGraphical.add(n)}null!==s&&e.xAxisLabelCorrections(s.xAxisTickWidth),i.setYAxisTextAlignments()}}},{key:"createGridMask",value:function(){var t=this.w,e=t.globals,i=new p(this.ctx),a=Array.isArray(t.config.stroke.width)?0:t.config.stroke.width;if(Array.isArray(t.config.stroke.width)){var s=0;t.config.stroke.width.forEach(function(t){s=Math.max(s,t)}),a=s}e.dom.elGridRectMask=document.createElementNS(e.SVGNS,"clipPath"),e.dom.elGridRectMask.setAttribute("id","gridRectMask".concat(e.cuid)),e.dom.elGridRectMarkerMask=document.createElementNS(e.SVGNS,"clipPath"),e.dom.elGridRectMarkerMask.setAttribute("id","gridRectMarkerMask".concat(e.cuid)),e.dom.elGridRect=i.drawRect(-a/2,-a/2,e.gridWidth+a,e.gridHeight+a,0,"#fff"),new w(this).getLargestMarkerSize();var n=t.globals.markers.largestSize+1;e.dom.elGridRectMarker=i.drawRect(-n,-n,e.gridWidth+2*n,e.gridHeight+2*n,0,"#fff"),e.dom.elGridRectMask.appendChild(e.dom.elGridRect.node),e.dom.elGridRectMarkerMask.appendChild(e.dom.elGridRectMarker.node);var r=e.dom.baseEl.querySelector("defs");r.appendChild(e.dom.elGridRectMask),r.appendChild(e.dom.elGridRectMarkerMask)}},{key:"renderGrid",value:function(){var t=this.w,e=new p(this.ctx),i=t.config.grid.strokeDashArray,a=e.group({class:"apexcharts-grid"}),s=e.group({class:"apexcharts-gridlines-horizontal"}),n=e.group({class:"apexcharts-gridlines-vertical"});a.add(s),a.add(n);for(var r,o=8,l=0;l2));l++);if(t.globals.isBarHorizontal){if(r=o,t.config.grid.xaxis.lines.show||t.config.xaxis.axisTicks.show)for(var h,c=t.globals.padHorizontal,d=t.globals.gridHeight,u=0;u0)for(var A=0;A0&&w0)for(var n=0,r=a.globals.gridHeight/i,o=a.globals.gridWidth,l=0,h=0;l=a.config.grid.row.colors.length&&(h=0);var c=a.config.grid.row.colors[h],d=s.drawRect(0,n,o,r,0,c,a.config.grid.row.opacity);t.add(d),d.node.classList.add("apexcharts-gridRow"),n+=a.globals.gridHeight/i}if(void 0!==a.config.grid.column.colors&&a.config.grid.column.colors.length>0)for(var u=a.globals.padHorizontal,g=a.globals.padHorizontal+a.globals.gridWidth/e,f=a.globals.gridHeight,x=0,b=0;x=a.config.grid.column.colors.length&&(b=0);var m=a.config.grid.column.colors[b],v=s.drawRect(u,0,g,f,0,m,a.config.grid.column.opacity);v.node.classList.add("apexcharts-gridColumn"),t.add(v),u+=a.globals.gridWidth/e}}},{key:"animateLine",value:function(t,e,i){var a=this.w,s=a.config.chart.animations;if(s&&!a.globals.resized&&!a.globals.dataChanged){var n=s.speed;this.anim.animateLine(t,e,i,n)}}}]),t}(),ht=function(){function t(i){e(this,t),this.ctx=i,this.w=i.w}return a(t,[{key:"checkResponsiveConfig",value:function(t){var e=this,i=this.w,a=i.config;if(0!==a.responsive.length){var s=a.responsive.slice();s.sort(function(t,e){return t.breakpoint>e.breakpoint?1:e.breakpoint>t.breakpoint?-1:0}).reverse();var n=new k({}),r=function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},a=s[0].breakpoint,r=window.innerWidth>0?window.innerWidth:screen.width;if(r>a){var o=w.extendArrayProps(n,i.globals.initialConfig);t=u.extend(o,t),t=u.extend(i.config,t),e.overrideResponsiveOptions(t)}else for(var l=0;l0&&t.config.colors.length===t.config.series.length&&(t.globals.colors=t.config.colors.map(function(e,i){return"function"==typeof e?e({value:t.globals.axisCharts?t.globals.series[i][0]?t.globals.series[i][0]:0:t.globals.series[i],seriesIndex:i,w:t}):e}))),t.config.theme.monochrome.enabled){var i=[],a=t.globals.series.length;t.config.plotOptions.bar.distributed&&"bar"===t.config.chart.type&&(a=t.globals.series[0].length*t.globals.series.length);for(var s=t.config.theme.monochrome.color,n=1/(a/t.config.theme.monochrome.shadeIntensity),r=t.config.theme.monochrome.shadeTo,o=0,l=0;l2&&void 0!==arguments[2]?arguments[2]:null,a=this.w,s=e||a.globals.series.length;if(null===i&&(i="bar"===a.config.chart.type&&a.config.plotOptions.bar.distributed||"heatmap"===a.config.chart.type&&a.config.plotOptions.heatmap.colorScale.inverse),i&&(s=a.globals.series[0].length*a.globals.series.length),t.lengthr.globals.gridWidth||d>r.globals.gridHeight?(e.classList.remove("hovering-zoom"),e.classList.remove("hovering-pan")):r.globals.zoomEnabled?(e.classList.remove("hovering-pan"),e.classList.add("hovering-zoom")):r.globals.panEnabled&&(e.classList.remove("hovering-zoom"),e.classList.add("hovering-pan"));var u=Math.round(c/l);n&&(u=Math.ceil(c/l),u-=1);for(var g,f=null,p=null,x=[],b=0;b1?n=this.getFirstActiveXArray(i):r=0;var l=a[n][0],h=i[n][0],c=Math.abs(t-h),d=Math.abs(e-l),u=d+c;return a.map(function(s,n){s.map(function(s,l){var h=Math.abs(e-a[n][l]),g=Math.abs(t-i[n][l]),f=g+h;f0?e:-1}),s=0;s0)for(var a=0;a-1?f[0].parentNode.style.display="none":f[0].parentNode.style.display=l.config.tooltip.items.display)}},{key:"toggleActiveInactiveSeries",value:function(t){var e=this.w;if(t)this.tooltipUtil.toggleAllTooltipSeriesGroups("enable");else{this.tooltipUtil.toggleAllTooltipSeriesGroups("disable");var i=e.globals.dom.baseEl.querySelector(".apexcharts-tooltip-series-group");i&&(i.classList.add("active"),i.style.display=e.config.tooltip.items.display)}}},{key:"getValuesToPrint",value:function(t){var e=t.i,i=t.j,a=this.w,s=this.ctx.series.filteredSeriesX(),n="",r=null,o=null,l={series:a.globals.series,seriesIndex:e,dataPointIndex:i,w:a},h=a.globals.ttZFormatter;null===i?o=a.globals.series[e]:a.globals.isXNumeric?(n=s[e][i],0===s[e].length&&(n=s[this.tooltipUtil.getFirstActiveXArray(s)][i])):n=void 0!==a.globals.labels[i]?a.globals.labels[i]:"";var c=n;a.globals.isXNumeric&&"datetime"===a.config.xaxis.type?n=new O(this.ctx).xLabelFormat(a.globals.ttKeyFormatter,c,c):a.globals.isBarHorizontal||(n=a.globals.xLabelFormatter(c,l));return void 0!==a.config.tooltip.x.formatter&&(n=a.globals.ttKeyFormatter(c,l)),a.globals.seriesZ.length>0&&a.globals.seriesZ[0].length>0&&(r=h(a.globals.seriesZ[e][i],a)),{val:o,xVal:n,xAxisTTVal:"function"==typeof a.config.xaxis.tooltip.formatter?a.globals.xaxisTooltipFormatter(c,l):n,zVal:r}}},{key:"handleCustomTooltip",value:function(t){var e=t.i,i=t.j,a=t.isArray,s=this.w,n=this.ttCtx.getElTooltip(),r=s.config.tooltip.custom;a&&r[e]&&(r=s.config.tooltip.custom[e]),n.innerHTML=r({ctx:this.ctx,series:s.globals.series,seriesIndex:e,dataPointIndex:i,w:s})}}]),t}(),gt=function(){function t(i){e(this,t),this.ttCtx=i,this.ctx=i.ctx,this.w=i.w}return a(t,[{key:"moveXCrosshairs",value:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:null,i=this.ttCtx,a=this.w,s=i.getElXCrosshairs(),n=t-i.xcrosshairsWidth/2,r=a.globals.labels.slice().length;if(null!==e&&(n=a.globals.gridWidth/r*e),"tickWidth"===a.config.xaxis.crosshairs.width||"barWidth"===a.config.xaxis.crosshairs.width?n+i.xcrosshairsWidth>a.globals.gridWidth&&(n=a.globals.gridWidth-i.xcrosshairsWidth):null!==e&&(n+=a.globals.gridWidth/r/2),n<0&&(n=0),n>a.globals.gridWidth&&(n=a.globals.gridWidth),null!==s&&(s.setAttribute("x",n),s.setAttribute("x1",n),s.setAttribute("x2",n),s.setAttribute("y2",a.globals.gridHeight),s.classList.add("active")),i.blxaxisTooltip){var o=n;"tickWidth"!==a.config.xaxis.crosshairs.width&&"barWidth"!==a.config.xaxis.crosshairs.width||(o=n+i.xcrosshairsWidth/2),this.moveXAxisTooltip(o)}}},{key:"moveYCrosshairs",value:function(t){var e=this.ttCtx;null!==e.ycrosshairs&&(p.setAttrs(e.ycrosshairs,{y1:t,y2:t}),p.setAttrs(e.ycrosshairsHidden,{y1:t,y2:t}))}},{key:"moveXAxisTooltip",value:function(t){var e=this.w,i=this.ttCtx;if(null!==i.xaxisTooltip){i.xaxisTooltip.classList.add("active");var a=i.xaxisOffY+e.config.xaxis.tooltip.offsetY+e.globals.translateY+1+e.config.xaxis.offsetY;if(t-=i.xaxisTooltip.getBoundingClientRect().width/2,!isNaN(t)){t+=e.globals.translateX;var s;s=new p(this.ctx).getTextRects(i.xaxisTooltipText.innerHTML),i.xaxisTooltipText.style.minWidth=s.width+"px",i.xaxisTooltip.style.left=t+"px",i.xaxisTooltip.style.top=a+"px"}}}},{key:"moveYAxisTooltip",value:function(t){var e=this.w,i=this.ttCtx;null===i.yaxisTTEls&&(i.yaxisTTEls=e.globals.dom.baseEl.querySelectorAll(".apexcharts-yaxistooltip"));var a=parseInt(i.ycrosshairsHidden.getAttribute("y1")),s=e.globals.translateY+a,n=i.yaxisTTEls[t].getBoundingClientRect().height,r=e.globals.translateYAxisX[t]-2;e.config.yaxis[t].opposite&&(r-=26),s-=n/2,-1===e.globals.ignoreYAxisIndexes.indexOf(t)?(i.yaxisTTEls[t].classList.add("active"),i.yaxisTTEls[t].style.top=s+"px",i.yaxisTTEls[t].style.left=r+e.config.yaxis[t].tooltip.offsetX+"px"):i.yaxisTTEls[t].classList.remove("active")}},{key:"moveTooltip",value:function(t,e){var i=arguments.length>2&&void 0!==arguments[2]?arguments[2]:null,a=this.w,s=this.ttCtx,n=s.getElTooltip(),r=s.tooltipRect,o=null!==i?parseFloat(i):1,l=parseFloat(t)+o+5,h=parseFloat(e)+o/2;if(l>a.globals.gridWidth/2&&(l=l-r.ttWidth-o-15),l>a.globals.gridWidth-r.ttWidth-10&&(l=a.globals.gridWidth-r.ttWidth),l<-20&&(l=-20),a.config.tooltip.followCursor){var c=s.getElGrid().getBoundingClientRect();h=s.e.clientY+a.globals.translateY-c.top-r.ttHeight/2}var d=this.positionChecks(r,l,h);l=d.x,h=d.y,isNaN(l)||(l+=a.globals.translateX,n.style.left=l+"px",n.style.top=h+"px")}},{key:"positionChecks",value:function(t,e,i){var a=this.w;return t.ttHeight+i>a.globals.gridHeight&&(i=a.globals.gridHeight-t.ttHeight+a.globals.translateY),i<0&&(i=0),{x:e,y:i}}},{key:"moveMarkers",value:function(t,e){var i=this.w,a=this.ttCtx;if(i.globals.markers.size[t]>0)for(var s=i.globals.dom.baseEl.querySelectorAll(" .apexcharts-series[data\\:realIndex='".concat(t,"'] .apexcharts-marker")),n=0;n=2&&s%2==0?Math.floor(s/2):Math.floor(s/2)+1,r=i.globals.dom.baseEl.querySelector(".apexcharts-bar-series .apexcharts-series[rel='".concat(n,"'] path[j='").concat(t,"'], .apexcharts-candlestick-series .apexcharts-series[rel='").concat(n,"'] path[j='").concat(t,"'], .apexcharts-rangebar-series .apexcharts-series[rel='").concat(n,"'] path[j='").concat(t,"']")),o=r?parseFloat(r.getAttribute("cx")):0,l=r?parseFloat(r.getAttribute("barWidth")):0;i.globals.isXNumeric?o-=s%2!=0?l/2:0:(o=a.xAxisTicksPositions[t-1]+a.dataPointsDividedWidth/2,isNaN(o)&&(o=a.xAxisTicksPositions[t]-a.dataPointsDividedWidth/2));var h=a.getElGrid().getBoundingClientRect();if(e=a.e.clientY-h.top-a.tooltipRect.ttHeight/2,this.moveXCrosshairs(o),!a.fixedTooltip){var c=e||i.globals.gridHeight;this.moveTooltip(o,c)}}}]),t}(),ft=function(){function t(i){e(this,t),this.w=i.w,this.ttCtx=i,this.ctx=i.ctx,this.tooltipPosition=new gt(i)}return a(t,[{key:"drawDynamicPoints",value:function(){for(var t=this.w,e=new p(this.ctx),i=new L(this.ctx),a=t.globals.dom.baseEl.querySelectorAll(".apexcharts-series"),s=0;s2&&void 0!==arguments[2]?arguments[2]:null,a=arguments.length>3&&void 0!==arguments[3]?arguments[3]:null,s=this.w;"bubble"!==s.config.chart.type&&this.newPointSize(t,e);var n=e.getAttribute("cx"),r=e.getAttribute("cy");if(null!==i&&null!==a&&(n=i,r=a),this.tooltipPosition.moveXCrosshairs(n),!this.fixedTooltip){if("radar"===s.config.chart.type){var o=this.ttCtx.getElGrid().getBoundingClientRect();n=this.ttCtx.e.clientX-o.left}this.tooltipPosition.moveTooltip(n,r,s.config.markers.hover.size)}}},{key:"enlargePoints",value:function(t){for(var e=this.w,i=this.ttCtx,a=t,s=e.globals.dom.baseEl.querySelectorAll(".apexcharts-series:not(.apexcharts-series-collapsed) .apexcharts-marker"),n=e.config.markers.hover.size,r=0;rr.globals.gridWidth/2&&(a=h-n.tooltipRect.ttWidth/2+d),n.w.config.tooltip.followCursor){var g=n.getElGrid().getBoundingClientRect();s=n.e.clientY-g.top+r.globals.translateY/2-10}}return{x:a,y:s}}},{key:"handleMarkerTooltip",value:function(t){var e,i,a=t.e,s=t.opt,n=t.x,r=t.y,o=this.w,l=this.ttCtx;if(a.target.classList.contains("apexcharts-marker")){var h=parseInt(s.paths.getAttribute("cx")),c=parseInt(s.paths.getAttribute("cy")),d=parseFloat(s.paths.getAttribute("val"));if(i=parseInt(s.paths.getAttribute("rel")),e=parseInt(s.paths.parentNode.parentNode.parentNode.getAttribute("rel"))-1,l.intersect){var g=u.findAncestor(s.paths,"apexcharts-series");g&&(e=parseInt(g.getAttribute("data:realIndex")))}if(l.tooltipLabels.drawSeriesTexts({ttItems:s.ttItems,i:e,j:i,shared:!l.showOnIntersect&&o.config.tooltip.shared}),"mouseup"===a.type&&l.markerClick(a,e,i),o.globals.capturedSeriesIndex=e,o.globals.capturedDataPointIndex=i,n=h,r=c+o.globals.translateY-1.4*l.tooltipRect.ttHeight,l.w.config.tooltip.followCursor){var f=l.getElGrid().getBoundingClientRect();r=l.e.clientY+o.globals.translateY-f.top}d<0&&(r=c),l.marker.enlargeCurrentPoint(i,s.paths,n,r)}return{x:n,y:r}}},{key:"handleBarTooltip",value:function(t){var e,i,a=t.e,s=t.opt,n=this.w,r=this.ttCtx,o=r.getElTooltip(),l=0,h=0,c=0,d=this.getBarTooltipXY({e:a,opt:s});e=d.i;var u=d.barHeight,g=d.j;if(n.globals.capturedSeriesIndex=e,n.globals.capturedDataPointIndex=g,n.globals.isBarHorizontal&&r.hasBars()||!n.config.tooltip.shared?(h=d.x,c=d.y,i=Array.isArray(n.config.stroke.width)?n.config.stroke.width[e]:n.config.stroke.width,l=h):n.globals.comboCharts||n.config.tooltip.shared||(l/=2),isNaN(c)&&(c=n.globals.svgHeight-r.tooltipRect.ttHeight),h+r.tooltipRect.ttWidth>n.globals.gridWidth?h-=r.tooltipRect.ttWidth:h<0&&(h+=r.tooltipRect.ttWidth),r.w.config.tooltip.followCursor){var f=r.getElGrid().getBoundingClientRect();c=r.e.clientY-f.top}if(null===r.tooltip&&(r.tooltip=n.globals.dom.baseEl.querySelector(".apexcharts-tooltip")),n.config.tooltip.shared||(n.globals.comboChartsHasBars?r.tooltipPosition.moveXCrosshairs(l+i/2):r.tooltipPosition.moveXCrosshairs(l)),!r.fixedTooltip&&(!n.config.tooltip.shared||n.globals.isBarHorizontal&&r.hasBars())){x&&(h=n.globals.gridWidth-h),o.style.left=h+n.globals.translateX+"px";var p=parseInt(s.paths.parentNode.getAttribute("data:realIndex")),x=n.globals.isMultipleYAxis?n.config.yaxis[p]&&n.config.yaxis[p].reversed:n.config.yaxis[0].reversed;!x||n.globals.isBarHorizontal&&r.hasBars()||(c=c+u-2*(n.globals.series[e][g]<0?u:0)),r.tooltipRect.ttHeight+c>n.globals.gridHeight?(c=n.globals.gridHeight-r.tooltipRect.ttHeight+n.globals.translateY,o.style.top=c+"px"):o.style.top=c+n.globals.translateY-r.tooltipRect.ttHeight/2+"px"}}},{key:"getBarTooltipXY",value:function(t){var e=t.e,i=t.opt,a=this.w,s=null,n=this.ttCtx,r=0,o=0,l=0,h=0,c=0,d=e.target.classList;if(d.contains("apexcharts-bar-area")||d.contains("apexcharts-candlestick-area")||d.contains("apexcharts-rangebar-area")){var u=e.target,g=u.getBoundingClientRect(),f=i.elGrid.getBoundingClientRect(),p=g.height;c=g.height;var x=g.width,b=parseInt(u.getAttribute("cx")),m=parseInt(u.getAttribute("cy"));h=parseFloat(u.getAttribute("barWidth"));var v="touchmove"===e.type?e.touches[0].clientX:e.clientX;s=parseInt(u.getAttribute("j")),r=parseInt(u.parentNode.getAttribute("rel"))-1,a.globals.comboCharts&&(r=parseInt(u.parentNode.getAttribute("data:realIndex"))),n.tooltipLabels.drawSeriesTexts({ttItems:i.ttItems,i:r,j:s,shared:!n.showOnIntersect&&a.config.tooltip.shared}),a.config.tooltip.followCursor?a.globals.isBarHorizontal?(o=v-f.left+15,l=m-n.dataPointsDividedHeight+p/2-n.tooltipRect.ttHeight/2):(o=a.globals.isXNumeric?b-x/2:b-n.dataPointsDividedWidth+x/2,l=e.clientY-f.top-n.tooltipRect.ttHeight/2-15):a.globals.isBarHorizontal?((o=b)0&&i.setAttribute("width",e.xcrosshairsWidth)}},{key:"handleYCrosshair",value:function(){var t=this.w,e=this.ttCtx;e.ycrosshairs=t.globals.dom.baseEl.querySelector(".apexcharts-ycrosshairs"),e.ycrosshairsHidden=t.globals.dom.baseEl.querySelector(".apexcharts-ycrosshairs-hidden")}},{key:"drawYaxisTooltipText",value:function(t,e,i){var a=this.ttCtx,s=this.w,n=s.globals.yLabelFormatters[t];if(a.blyaxisTooltip){var r=a.getElGrid().getBoundingClientRect(),o=(e-r.top)*i.yRatio[t],l=s.globals.maxYArr[t]-s.globals.minYArr[t],h=s.globals.minYArr[t]+(l-o);a.tooltipPosition.moveYCrosshairs(e-r.top),a.yaxisTooltipText[t].innerHTML=n(h),a.tooltipPosition.moveYAxisTooltip(t)}}}]),t}(),bt=function(){function t(i){e(this,t),this.ctx=i,this.w=i.w;var a=this.w;this.tConfig=a.config.tooltip,this.tooltipUtil=new dt(this),this.tooltipLabels=new ut(this),this.tooltipPosition=new gt(this),this.marker=new ft(this),this.intersect=new pt(this),this.axesTooltip=new xt(this),this.showOnIntersect=this.tConfig.intersect,this.showTooltipTitle=this.tConfig.x.show,this.fixedTooltip=this.tConfig.fixed.enabled,this.xaxisTooltip=null,this.yaxisTTEls=null,this.isBarShared=!a.globals.isBarHorizontal&&this.tConfig.shared}return a(t,[{key:"getElTooltip",value:function(t){return t||(t=this),t.w.globals.dom.baseEl.querySelector(".apexcharts-tooltip")}},{key:"getElXCrosshairs",value:function(){return this.w.globals.dom.baseEl.querySelector(".apexcharts-xcrosshairs")}},{key:"getElGrid",value:function(){return this.w.globals.dom.baseEl.querySelector(".apexcharts-grid")}},{key:"drawTooltip",value:function(t){var e=this.w;this.xyRatios=t,this.blxaxisTooltip=e.config.xaxis.tooltip.enabled&&e.globals.axisCharts,this.blyaxisTooltip=e.config.yaxis[0].tooltip.enabled&&e.globals.axisCharts,this.allTooltipSeriesGroups=[],e.globals.axisCharts||(this.showTooltipTitle=!1);var i=document.createElement("div");if(i.classList.add("apexcharts-tooltip"),i.classList.add(this.tConfig.theme),e.globals.dom.elWrap.appendChild(i),e.globals.axisCharts){this.axesTooltip.drawXaxisTooltip(),this.axesTooltip.drawYaxisTooltip(),this.axesTooltip.setXCrosshairWidth(),this.axesTooltip.handleYCrosshair();var a=new _(this.ctx);this.xAxisTicksPositions=a.getXAxisTicksPositions()}if((e.globals.comboCharts&&!this.tConfig.shared||this.tConfig.intersect&&!this.tConfig.shared||("bar"===e.config.chart.type||"rangeBar"===e.config.chart.type)&&!this.tConfig.shared)&&(this.showOnIntersect=!0),0!==e.config.markers.size&&0!==e.globals.markers.largestSize||this.marker.drawDynamicPoints(this),e.globals.collapsedSeries.length!==e.globals.series.length){this.dataPointsDividedHeight=e.globals.gridHeight/e.globals.dataPoints,this.dataPointsDividedWidth=e.globals.gridWidth/e.globals.dataPoints,this.showTooltipTitle&&(this.tooltipTitle=document.createElement("div"),this.tooltipTitle.classList.add("apexcharts-tooltip-title"),this.tooltipTitle.style.fontFamily=this.tConfig.style.fontFamily||e.config.chart.fontFamily,this.tooltipTitle.style.fontSize=this.tConfig.style.fontSize,i.appendChild(this.tooltipTitle));var s=e.globals.series.length;(e.globals.xyCharts||e.globals.comboCharts)&&this.tConfig.shared&&(s=this.showOnIntersect?1:e.globals.series.length),this.legendLabels=e.globals.dom.baseEl.querySelectorAll(".apexcharts-legend-text"),this.ttItems=this.createTTElements(s),this.addSVGEvents()}}},{key:"createTTElements",value:function(t){for(var e=this.w,i=[],a=this.getElTooltip(),s=0;s0&&this.addPathsEventListeners(u,h);var g=t.globals.dom.baseEl.querySelectorAll(".apexcharts-area-series .apexcharts-marker");g.length>0&&this.addPathsEventListeners(g,h),this.hasBars()&&!this.tConfig.shared&&this.addBarsEventListeners(h)}}},{key:"drawFixedTooltipRect",value:function(){var t=this.w,e=this.getElTooltip(),i=e.getBoundingClientRect(),a=i.width+10,s=i.height+10,n=this.tConfig.fixed.offsetX,r=this.tConfig.fixed.offsetY;return this.tConfig.fixed.position.toLowerCase().indexOf("right")>-1&&(n=n+t.globals.svgWidth-a+10),this.tConfig.fixed.position.toLowerCase().indexOf("bottom")>-1&&(r=r+t.globals.svgHeight-s-10),e.style.left=n+"px",e.style.top=r+"px",{x:n,y:r,ttWidth:a,ttHeight:s}}},{key:"addPointsEventsListeners",value:function(t){var e=this.w.globals.dom.baseEl.querySelectorAll(".apexcharts-series-markers .apexcharts-marker");this.addPathsEventListeners(e,t)}},{key:"addBarsEventListeners",value:function(t){var e=this.w.globals.dom.baseEl.querySelectorAll(".apexcharts-bar-area, .apexcharts-candlestick-area, .apexcharts-rangebar-area");this.addPathsEventListeners(e,t)}},{key:"addPathsEventListeners",value:function(t,e){for(var i=this,a=this,s=function(s){var n={paths:t[s],tooltipEl:e.tooltipEl,tooltipY:e.tooltipY,tooltipX:e.tooltipX,elGrid:e.elGrid,hoverArea:e.hoverArea,ttItems:e.ttItems};i.w.globals.tooltipOpts=n;["mousemove","mouseup","touchmove","mouseout","touchend"].map(function(e){return t[s].addEventListener(e,a.seriesHover.bind(a,n),{capture:!1,passive:!0})})},n=0;nl.top+l.height)this.handleMouseOut(n);else{if(Array.isArray(this.tConfig.enabledOnSeries)&&!r.config.tooltip.shared){var d=parseInt(n.paths.getAttribute("index"));if(this.tConfig.enabledOnSeries.indexOf(d)<0)return void this.handleMouseOut(n)}var u=this.getElTooltip(),g=this.getElXCrosshairs(),f=r.globals.xyCharts||"bar"===r.config.chart.type&&!r.globals.isBarHorizontal&&this.hasBars()&&this.tConfig.shared||r.globals.comboCharts&&this.hasBars;if(r.globals.isBarHorizontal&&this.hasBars()&&(f=!1),"mousemove"===s.type||"touchmove"===s.type||"mouseup"===s.type){if(null!==g&&g.classList.add("active"),null!==this.ycrosshairs&&this.blyaxisTooltip&&this.ycrosshairs.classList.add("active"),f&&!this.showOnIntersect){e=(o=this.tooltipUtil.getNearestValues({context:this,hoverArea:n.hoverArea,elGrid:n.elGrid,clientX:h,clientY:c,hasBars:this.hasBars})).j;var p=o.capturedSeries;if(o.hoverX<0||o.hoverX>r.globals.gridWidth)return void this.handleMouseOut(n);if(null!==p){if(null===r.globals.series[p][e])return void this.handleMouseOut(n);void 0!==r.globals.series[p][e]?this.tConfig.shared&&this.tooltipUtil.isXoverlap(e)&&this.tooltipUtil.isInitialSeriesSameLen()?this.create(s,this,p,e,n.ttItems):this.create(s,this,p,e,n.ttItems,!1):this.tooltipUtil.isXoverlap(e)&&this.create(s,this,0,e,n.ttItems)}else this.tooltipUtil.isXoverlap(e)&&this.create(s,this,0,e,n.ttItems)}else if("heatmap"===r.config.chart.type){var x=this.intersect.handleHeatTooltip({e:s,opt:n,x:i,y:a});i=x.x,a=x.y,u.style.left=i+"px",u.style.top=a+"px"}else this.hasBars&&this.intersect.handleBarTooltip({e:s,opt:n}),this.hasMarkers&&this.intersect.handleMarkerTooltip({e:s,opt:n,x:i,y:a});if(this.blyaxisTooltip)for(var b=0;b0}},{key:"getElBars",value:function(){return this.w.globals.dom.baseEl.querySelectorAll(".apexcharts-bar-series, .apexcharts-candlestick-series, .apexcharts-rangebar-series")}},{key:"hasBars",value:function(){return this.getElBars().length>0}},{key:"markerClick",value:function(t,e,i){var a=this.w;"function"==typeof a.config.chart.events.markerClick&&a.config.chart.events.markerClick(t,this.ctx,{seriesIndex:e,dataPointIndex:i,w:a}),this.ctx.fireEvent("markerClick",[t,this.ctx,{seriesIndex:e,dataPointIndex:i,w:a}])}},{key:"create",value:function(t,e,i,a,s){var n=arguments.length>5&&void 0!==arguments[5]?arguments[5]:null,r=this.w,o=e;"mouseup"===t.type&&this.markerClick(t,i,a),null===n&&(n=this.tConfig.shared);var l=this.hasMarkers(),h=this.getElBars();if(r.config.legend.tooltipHoverFormatter){var c=r.config.legend.tooltipHoverFormatter,d=Array.from(this.legendLabels);d.forEach(function(t){var e=t.getAttribute("data:default-text");t.innerHTML=decodeURIComponent(e)});for(var u=0;u0?o.marker.enlargePoints(a):o.tooltipPosition.moveDynamicPointsOnHover(a)),this.hasBars()&&(this.barSeriesHeight=this.tooltipUtil.getBarsHeight(h),this.barSeriesHeight>0)){var m=new p(this.ctx),v=r.globals.dom.Paper.select(".apexcharts-bar-area[j='".concat(a,"']"));this.deactivateHoverFilter(),this.tooltipPosition.moveStickyTooltipOverBars(a);for(var y=0;y\n \n \n\n',title:this.localeValues.zoomIn,class:"apexcharts-zoom-in-icon"}),this.t.zoomout&&t.config.chart.zoom.enabled&&a.push({el:this.elZoomOut,icon:"string"==typeof this.t.zoomout?this.t.zoomout:'\n \n \n\n',title:this.localeValues.zoomOut,class:"apexcharts-zoom-out-icon"}),this.t.zoom&&t.config.chart.zoom.enabled&&a.push({el:this.elZoom,icon:"string"==typeof this.t.zoom?this.t.zoom:'\n \n \n \n',title:this.localeValues.selectionZoom,class:t.globals.isTouchDevice?"hidden":"apexcharts-zoom-icon"}),this.t.selection&&t.config.chart.selection.enabled&&a.push({el:this.elSelection,icon:"string"==typeof this.t.selection?this.t.selection:'\n \n \n',title:this.localeValues.selection,class:t.globals.isTouchDevice?"hidden":"apexcharts-selection-icon"}),this.t.pan&&t.config.chart.zoom.enabled&&a.push({el:this.elPan,icon:"string"==typeof this.t.pan?this.t.pan:'\n \n \n \n \n \n \n \n',title:this.localeValues.pan,class:t.globals.isTouchDevice?"hidden":"apexcharts-pan-icon"}),this.t.reset&&t.config.chart.zoom.enabled&&a.push({el:this.elZoomReset,icon:"string"==typeof this.t.reset?this.t.reset:'\n \n \n',title:this.localeValues.reset,class:"apexcharts-reset-zoom-icon"}),this.t.download&&a.push({el:this.elMenuIcon,icon:"string"==typeof this.t.download?this.t.download:'',title:this.localeValues.menu,class:"apexcharts-menu-icon"});for(var s=0;s0&&e.height>0&&this.slDraggableRect.selectize().resize({constraint:{minX:0,minY:0,maxX:t.globals.gridWidth,maxY:t.globals.gridHeight}}).on("resizing",this.selectionDragging.bind(this,"resizing"))}}},{key:"preselectedSelection",value:function(){var t=this.w,e=this.xyRatios;if(!t.globals.zoomEnabled)if(void 0!==t.globals.selection&&null!==t.globals.selection)this.drawSelectionRect(t.globals.selection);else if(void 0!==t.config.chart.selection.xaxis.min&&void 0!==t.config.chart.selection.xaxis.max){var i=(t.config.chart.selection.xaxis.min-t.globals.minX)/e.xRatio,a={x:i,y:0,width:t.globals.gridWidth-(t.globals.maxX-t.config.chart.selection.xaxis.max)/e.xRatio-i,height:t.globals.gridHeight,translateX:0,translateY:0,selectionEnabled:!0};this.drawSelectionRect(a),this.makeSelectionRectDraggable(),"function"==typeof t.config.chart.events.selection&&t.config.chart.events.selection(this.ctx,{xaxis:{min:t.config.chart.selection.xaxis.min,max:t.config.chart.selection.xaxis.max},yaxis:{}})}}},{key:"drawSelectionRect",value:function(t){var e=t.x,i=t.y,a=t.width,s=t.height,n=t.translateX,r=t.translateY,o=this.w,l=this.zoomRect,h=this.selectionRect;if(this.dragged||null!==o.globals.selection){var c={transform:"translate("+n+", "+r+")"};o.globals.zoomEnabled&&this.dragged&&(l.attr({x:e,y:i,width:a,height:s,fill:o.config.chart.zoom.zoomedArea.fill.color,"fill-opacity":o.config.chart.zoom.zoomedArea.fill.opacity,stroke:o.config.chart.zoom.zoomedArea.stroke.color,"stroke-width":o.config.chart.zoom.zoomedArea.stroke.width,"stroke-opacity":o.config.chart.zoom.zoomedArea.stroke.opacity}),p.setAttrs(l.node,c)),o.globals.selectionEnabled&&(h.attr({x:e,y:i,width:a>0?a:0,height:s>0?s:0,fill:o.config.chart.selection.fill.color,"fill-opacity":o.config.chart.selection.fill.opacity,stroke:o.config.chart.selection.stroke.color,"stroke-width":o.config.chart.selection.stroke.width,"stroke-dasharray":o.config.chart.selection.stroke.dashArray,"stroke-opacity":o.config.chart.selection.stroke.opacity}),p.setAttrs(h.node,c))}}},{key:"hideSelectionRect",value:function(t){t&&t.attr({x:0,y:0,width:0,height:0})}},{key:"selectionDrawing",value:function(t){var e=t.context,i=t.zoomtype,a=this.w,s=e,n=this.gridRect.getBoundingClientRect(),r=s.startX-1,o=s.startY,l=s.clientX-n.left-r,h=s.clientY-n.top-o,c=0,d=0,u={};return Math.abs(l+r)>a.globals.gridWidth?l=a.globals.gridWidth-r:s.clientX-n.left<0&&(l=r),r>s.clientX-n.left&&(c=-(l=Math.abs(l))),o>s.clientY-n.top&&(d=-(h=Math.abs(h))),u="x"===i?{x:r,y:0,width:l,height:a.globals.gridHeight,translateX:c,translateY:0}:"y"===i?{x:0,y:o,width:a.globals.gridWidth,height:h,translateX:0,translateY:d}:{x:r,y:o,width:l,height:h,translateX:c,translateY:d},s.drawSelectionRect(u),s.selectionDragging("resizing"),u}},{key:"selectionDragging",value:function(t,e){var i=this,a=this.w,s=this.xyRatios,n=this.selectionRect,r=0;"resizing"===t&&(r=30),"function"==typeof a.config.chart.events.selection&&a.globals.selectionEnabled&&(clearTimeout(this.w.globals.selectionResizeTimer),this.w.globals.selectionResizeTimer=window.setTimeout(function(){var t=i.gridRect.getBoundingClientRect(),e=n.node.getBoundingClientRect(),r=a.globals.xAxisScale.niceMin+(e.left-t.left)*s.xRatio,o=a.globals.xAxisScale.niceMin+(e.right-t.left)*s.xRatio,l=a.globals.yAxisScale[0].niceMin+(t.bottom-e.bottom)*s.yRatio[0],h=a.globals.yAxisScale[0].niceMax-(e.top-t.top)*s.yRatio[0];a.config.chart.events.selection(i.ctx,{xaxis:{min:r,max:o},yaxis:{min:l,max:h}})},r))}},{key:"selectionDrawn",value:function(t){var e=t.context,i=t.zoomtype,a=this.w,s=e,n=this.xyRatios,r=this.ctx.toolbar;if(s.startX>s.endX){var o=s.startX;s.startX=s.endX,s.endX=o}if(s.startY>s.endY){var l=s.startY;s.startY=s.endY,s.endY=l}var h=a.globals.xAxisScale.niceMin+s.startX*n.xRatio,c=a.globals.xAxisScale.niceMin+s.endX*n.xRatio,d=[],g=[];if(a.config.yaxis.forEach(function(t,e){d.push(Math.floor(a.globals.yAxisScale[e].niceMax-n.yRatio[e]*s.startY)),g.push(Math.floor(a.globals.yAxisScale[e].niceMax-n.yRatio[e]*s.endY))}),s.dragged&&(s.dragX>10||s.dragY>10)&&h!==c)if(a.globals.zoomEnabled){var f=u.clone(a.globals.initialConfig.yaxis),p={min:h,max:c};if("xy"!==i&&"y"!==i||f.forEach(function(t,e){f[e].min=g[e],f[e].max=d[e]}),a.config.chart.zoom.autoScaleYaxis){var x=new j(s.ctx);f=x.autoScaleY(s.ctx,f,{xaxis:p})}if(r){var b=r.getBeforeZoomRange(p,f);b&&(p=b.xaxis?b.xaxis:p,f=b.yaxis?b.yaxe:f)}var m={xaxis:p};a.config.chart.group||(m.yaxis=f),s.ctx._updateOptions(m,!1,s.w.config.chart.animations.dynamicAnimation.enabled),"function"==typeof a.config.chart.events.zoomed&&r.zoomCallback(p,f),a.globals.zoomed=!0}else if(a.globals.selectionEnabled){var v,y=null;v={min:h,max:c},"xy"!==i&&"y"!==i||(y=u.clone(a.config.yaxis)).forEach(function(t,e){y[e].min=g[e],y[e].max=d[e]}),a.globals.selection=s.selection,"function"==typeof a.config.chart.events.selection&&a.config.chart.events.selection(s.ctx,{xaxis:v,yaxis:y})}}},{key:"panDragging",value:function(t){var e,i=t.context,a=this.w,s=i;if(void 0!==a.globals.lastClientPosition.x){var n=a.globals.lastClientPosition.x-s.clientX,r=a.globals.lastClientPosition.y-s.clientY;Math.abs(n)>Math.abs(r)&&n>0?e="left":Math.abs(n)>Math.abs(r)&&n<0?e="right":Math.abs(r)>Math.abs(n)&&r>0?e="up":Math.abs(r)>Math.abs(n)&&r<0&&(e="down")}a.globals.lastClientPosition={x:s.clientX,y:s.clientY};var o=a.globals.minX,l=a.globals.maxX;s.panScrolled(e,o,l)}},{key:"panScrolled",value:function(t,e,i){var a=this.w,s=this.xyRatios,n=u.clone(a.globals.initialConfig.yaxis);"left"===t?(e=a.globals.minX+a.globals.gridWidth/15*s.xRatio,i=a.globals.maxX+a.globals.gridWidth/15*s.xRatio):"right"===t&&(e=a.globals.minX-a.globals.gridWidth/15*s.xRatio,i=a.globals.maxX-a.globals.gridWidth/15*s.xRatio),(ea.globals.initialmaxX)&&(e=a.globals.minX,i=a.globals.maxX);var r={min:e,max:i};a.config.chart.zoom.autoScaleYaxis&&(n=new j(this.ctx).autoScaleY(this.ctx,n,{xaxis:r}));var o={xaxis:{min:e,max:i}};a.config.chart.group||(o.yaxis=n),this.ctx._updateOptions(o,!1,!1),"function"==typeof a.config.chart.events.scrolled&&a.config.chart.events.scrolled(this.ctx,{xaxis:{min:e,max:i}})}}]),i}(),yt=function(){function t(i){e(this,t),this.ctx=i,this.w=i.w}return a(t,[{key:"draw",value:function(){this.drawTitleSubtitle("title"),this.drawTitleSubtitle("subtitle")}},{key:"drawTitleSubtitle",value:function(t){var e=this.w,i="title"===t?e.config.title:e.config.subtitle,a=e.globals.svgWidth/2,s=i.offsetY,n="middle";if("left"===i.align?(a=10,n="start"):"right"===i.align&&(a=e.globals.svgWidth-10,n="end"),a+=i.offsetX,s=s+parseInt(i.style.fontSize)+2,void 0!==i.text){var r=new p(this.ctx).drawText({x:a,y:s,text:i.text,textAnchor:n,fontSize:i.style.fontSize,fontFamily:i.style.fontFamily,foreColor:i.style.color,opacity:1});r.node.setAttribute("class","apexcharts-".concat(t,"-text")),e.globals.dom.Paper.add(r)}}}]),t}();nt="undefined"!=typeof window?window:void 0,rt=function(e,i){var a=(void 0!==this?this:e).SVG=function(t){if(a.supported)return t=new a.Doc(t),a.parser.draw||a.prepare(),t};if(a.ns="http://www.w3.org/2000/svg",a.xmlns="http://www.w3.org/2000/xmlns/",a.xlink="http://www.w3.org/1999/xlink",a.svgjs="http://svgjs.com/svgjs",a.supported=!0,!a.supported)return!1;a.did=1e3,a.eid=function(t){return"Svgjs"+d(t)+a.did++},a.create=function(t){var e=i.createElementNS(this.ns,t);return e.setAttribute("id",this.eid(t)),e},a.extend=function(){var t,e,i,s;for(e=(t=[].slice.call(arguments)).pop(),s=t.length-1;s>=0;s--)if(t[s])for(i in e)t[s].prototype[i]=e[i];a.Set&&a.Set.inherit&&a.Set.inherit()},a.invent=function(t){var e="function"==typeof t.create?t.create:function(){this.constructor.call(this,a.create(t.create))};return t.inherit&&(e.prototype=new t.inherit),t.extend&&a.extend(e,t.extend),t.construct&&a.extend(t.parent||a.Container,t.construct),e},a.adopt=function(t){return t?t.instance?t.instance:((i="svg"==t.nodeName?t.parentNode instanceof e.SVGElement?new a.Nested:new a.Doc:"linearGradient"==t.nodeName?new a.Gradient("linear"):"radialGradient"==t.nodeName?new a.Gradient("radial"):a[d(t.nodeName)]?new(a[d(t.nodeName)]):new a.Element(t)).type=t.nodeName,i.node=t,t.instance=i,i instanceof a.Doc&&i.namespace().defs(),i.setData(JSON.parse(t.getAttribute("svgjs:data"))||{}),i):null;var i},a.prepare=function(){var t=i.getElementsByTagName("body")[0],e=(t?new a.Doc(t):a.adopt(i.documentElement).nested()).size(2,0);a.parser={body:t||i.documentElement,draw:e.style("opacity:0;position:absolute;left:-100%;top:-100%;overflow:hidden").node,poly:e.polyline().node,path:e.path().node,native:a.create("svg")}},a.parser={native:a.create("svg")},i.addEventListener("DOMContentLoaded",function(){a.parser.draw||a.prepare()},!1),a.regex={numberAndUnit:/^([+-]?(\d+(\.\d*)?|\.\d+)(e[+-]?\d+)?)([a-z%]*)$/i,hex:/^#?([a-f\d]{2})([a-f\d]{2})([a-f\d]{2})$/i,rgb:/rgb\((\d+),(\d+),(\d+)\)/,reference:/#([a-z0-9\-_]+)/i,transforms:/\)\s*,?\s*/,whitespace:/\s/g,isHex:/^#[a-f0-9]{3,6}$/i,isRgb:/^rgb\(/,isCss:/[^:]+:[^;]+;?/,isBlank:/^(\s+)?$/,isNumber:/^[+-]?(\d+(\.\d*)?|\.\d+)(e[+-]?\d+)?$/i,isPercent:/^-?[\d\.]+%$/,isImage:/\.(jpg|jpeg|png|gif|svg)(\?[^=]+.*)?/i,delimiter:/[\s,]+/,hyphen:/([^e])\-/gi,pathLetters:/[MLHVCSQTAZ]/gi,isPathLetter:/[MLHVCSQTAZ]/i,numbersWithDots:/((\d?\.\d+(?:e[+-]?\d+)?)((?:\.\d+(?:e[+-]?\d+)?)+))+/gi,dots:/\./g},a.utils={map:function(t,e){var i,a=t.length,s=[];for(i=0;i1?1:t,new a.Color({r:~~(this.r+(this.destination.r-this.r)*t),g:~~(this.g+(this.destination.g-this.g)*t),b:~~(this.b+(this.destination.b-this.b)*t)})):this}}),a.Color.test=function(t){return t+="",a.regex.isHex.test(t)||a.regex.isRgb.test(t)},a.Color.isRgb=function(t){return t&&"number"==typeof t.r&&"number"==typeof t.g&&"number"==typeof t.b},a.Color.isColor=function(t){return a.Color.isRgb(t)||a.Color.test(t)},a.Array=function(t,e){0==(t=(t||[]).valueOf()).length&&e&&(t=e.valueOf()),this.value=this.parse(t)},a.extend(a.Array,{morph:function(t){if(this.destination=this.parse(t),this.value.length!=this.destination.length){for(var e=this.value[this.value.length-1],i=this.destination[this.destination.length-1];this.value.length>this.destination.length;)this.destination.push(i);for(;this.value.length=0;a--)this.value[a]=[this.value[a][0]+t,this.value[a][1]+e];return this},size:function(t,e){var i,a=this.bbox();for(i=this.value.length-1;i>=0;i--)a.width&&(this.value[i][0]=(this.value[i][0]-a.x)*t/a.width+a.x),a.height&&(this.value[i][1]=(this.value[i][1]-a.y)*e/a.height+a.y);return this},bbox:function(){return a.parser.draw||a.prepare(),a.parser.poly.setAttribute("points",this.toString()),a.parser.poly.getBBox()}});for(var s={M:function(t,e,i){return e.x=i.x=t[0],e.y=i.y=t[1],["M",e.x,e.y]},L:function(t,e){return e.x=t[0],e.y=t[1],["L",t[0],t[1]]},H:function(t,e){return e.x=t[0],["H",t[0]]},V:function(t,e){return e.y=t[0],["V",t[0]]},C:function(t,e){return e.x=t[4],e.y=t[5],["C",t[0],t[1],t[2],t[3],t[4],t[5]]},S:function(t,e){return e.x=t[2],e.y=t[3],["S",t[0],t[1],t[2],t[3]]},Q:function(t,e){return e.x=t[2],e.y=t[3],["Q",t[0],t[1],t[2],t[3]]},T:function(t,e){return e.x=t[0],e.y=t[1],["T",t[0],t[1]]},Z:function(t,e,i){return e.x=i.x,e.y=i.y,["Z"]},A:function(t,e){return e.x=t[5],e.y=t[6],["A",t[0],t[1],t[2],t[3],t[4],t[5],t[6]]}},n="mlhvqtcsaz".split(""),r=0,o=n.length;r=0;s--)"M"==(a=this.value[s][0])||"L"==a||"T"==a?(this.value[s][1]+=t,this.value[s][2]+=e):"H"==a?this.value[s][1]+=t:"V"==a?this.value[s][1]+=e:"C"==a||"S"==a||"Q"==a?(this.value[s][1]+=t,this.value[s][2]+=e,this.value[s][3]+=t,this.value[s][4]+=e,"C"==a&&(this.value[s][5]+=t,this.value[s][6]+=e)):"A"==a&&(this.value[s][6]+=t,this.value[s][7]+=e);return this},size:function(t,e){var i,a,s=this.bbox();for(i=this.value.length-1;i>=0;i--)"M"==(a=this.value[i][0])||"L"==a||"T"==a?(this.value[i][1]=(this.value[i][1]-s.x)*t/s.width+s.x,this.value[i][2]=(this.value[i][2]-s.y)*e/s.height+s.y):"H"==a?this.value[i][1]=(this.value[i][1]-s.x)*t/s.width+s.x:"V"==a?this.value[i][1]=(this.value[i][1]-s.y)*e/s.height+s.y:"C"==a||"S"==a||"Q"==a?(this.value[i][1]=(this.value[i][1]-s.x)*t/s.width+s.x,this.value[i][2]=(this.value[i][2]-s.y)*e/s.height+s.y,this.value[i][3]=(this.value[i][3]-s.x)*t/s.width+s.x,this.value[i][4]=(this.value[i][4]-s.y)*e/s.height+s.y,"C"==a&&(this.value[i][5]=(this.value[i][5]-s.x)*t/s.width+s.x,this.value[i][6]=(this.value[i][6]-s.y)*e/s.height+s.y)):"A"==a&&(this.value[i][1]=this.value[i][1]*t/s.width,this.value[i][2]=this.value[i][2]*e/s.height,this.value[i][6]=(this.value[i][6]-s.x)*t/s.width+s.x,this.value[i][7]=(this.value[i][7]-s.y)*e/s.height+s.y);return this},equalCommands:function(t){var e,i,s;for(t=new a.PathArray(t),s=this.value.length===t.value.length,e=0,i=this.value.length;s&&el);return n},bbox:function(){return a.parser.draw||a.prepare(),a.parser.path.setAttribute("d",this.toString()),a.parser.path.getBBox()}}),a.Number=a.invent({create:function(t,e){this.value=0,this.unit=e||"","number"==typeof t?this.value=isNaN(t)?0:isFinite(t)?t:t<0?-3.4e38:3.4e38:"string"==typeof t?(e=t.match(a.regex.numberAndUnit))&&(this.value=parseFloat(e[1]),"%"==e[5]?this.value/=100:"s"==e[5]&&(this.value*=1e3),this.unit=e[5]):t instanceof a.Number&&(this.value=t.valueOf(),this.unit=t.unit)},extend:{toString:function(){return("%"==this.unit?~~(1e8*this.value)/1e6:"s"==this.unit?this.value/1e3:this.value)+this.unit},toJSON:function(){return this.toString()},valueOf:function(){return this.value},plus:function(t){return t=new a.Number(t),new a.Number(this+t,this.unit||t.unit)},minus:function(t){return t=new a.Number(t),new a.Number(this-t,this.unit||t.unit)},times:function(t){return t=new a.Number(t),new a.Number(this*t,this.unit||t.unit)},divide:function(t){return t=new a.Number(t),new a.Number(this/t,this.unit||t.unit)},to:function(t){var e=new a.Number(this);return"string"==typeof t&&(e.unit=t),e},morph:function(t){return this.destination=new a.Number(t),t.relative&&(this.destination.value+=this.value),this},at:function(t){return this.destination?new a.Number(this.destination).minus(this).times(t).plus(this):this}}}),a.Element=a.invent({create:function(t){this._stroke=a.defaults.attrs.stroke,this._event=null,this.dom={},(this.node=t)&&(this.type=t.nodeName,this.node.instance=this,this._stroke=t.getAttribute("stroke")||this._stroke)},extend:{x:function(t){return this.attr("x",t)},y:function(t){return this.attr("y",t)},cx:function(t){return null==t?this.x()+this.width()/2:this.x(t-this.width()/2)},cy:function(t){return null==t?this.y()+this.height()/2:this.y(t-this.height()/2)},move:function(t,e){return this.x(t).y(e)},center:function(t,e){return this.cx(t).cy(e)},width:function(t){return this.attr("width",t)},height:function(t){return this.attr("height",t)},size:function(t,e){var i=g(this,t,e);return this.width(new a.Number(i.width)).height(new a.Number(i.height))},clone:function(t){this.writeDataToDom();var e=b(this.node.cloneNode(!0));return t?t.add(e):this.after(e),e},remove:function(){return this.parent()&&this.parent().removeElement(this),this},replace:function(t){return this.after(t).remove(),t},addTo:function(t){return t.put(this)},putIn:function(t){return t.add(this)},id:function(t){return this.attr("id",t)},inside:function(t,e){var i=this.bbox();return t>i.x&&e>i.y&&t/,"").replace(/<\/svg>$/,"");e.innerHTML=""+t.replace(/\n/,"").replace(/<([\w:-]+)([^<]+?)\/>/g,"<$1$2>")+"";for(var s=0,n=e.firstChild.childNodes.length;s":function(t){return-Math.cos(t*Math.PI)/2+.5},">":function(t){return Math.sin(t*Math.PI/2)},"<":function(t){return 1-Math.cos(t*Math.PI/2)}},a.morph=function(t){return function(e,i){return new a.MorphObj(e,i).at(t)}},a.Situation=a.invent({create:function(t){this.init=!1,this.reversed=!1,this.reversing=!1,this.duration=new a.Number(t.duration).valueOf(),this.delay=new a.Number(t.delay).valueOf(),this.start=+new Date+this.delay,this.finish=this.start+this.duration,this.ease=t.ease,this.loop=0,this.loops=!1,this.animations={},this.attrs={},this.styles={},this.transforms=[],this.once={}}}),a.FX=a.invent({create:function(t){this._target=t,this.situations=[],this.active=!1,this.situation=null,this.paused=!1,this.lastPos=0,this.pos=0,this.absPos=0,this._speed=1},extend:{animate:function(e,i,s){"object"===t(e)&&(i=e.ease,s=e.delay,e=e.duration);var n=new a.Situation({duration:e||1e3,delay:s||0,ease:a.easing[i||"-"]||i});return this.queue(n),this},delay:function(t){var e=new a.Situation({duration:t,delay:0,ease:a.easing["-"]});return this.queue(e)},target:function(t){return t&&t instanceof a.Element?(this._target=t,this):this._target},timeToAbsPos:function(t){return(t-this.situation.start)/(this.situation.duration/this._speed)},absPosToTime:function(t){return this.situation.duration/this._speed*t+this.situation.start},startAnimFrame:function(){this.stopAnimFrame(),this.animationFrame=e.requestAnimationFrame(function(){this.step()}.bind(this))},stopAnimFrame:function(){e.cancelAnimationFrame(this.animationFrame)},start:function(){return!this.active&&this.situation&&(this.active=!0,this.startCurrent()),this},startCurrent:function(){return this.situation.start=+new Date+this.situation.delay/this._speed,this.situation.finish=this.situation.start+this.situation.duration/this._speed,this.initAnimations().step()},queue:function(t){return("function"==typeof t||t instanceof a.Situation)&&this.situations.push(t),this.situation||(this.situation=this.situations.shift()),this},dequeue:function(){return this.stop(),this.situation=this.situations.shift(),this.situation&&(this.situation instanceof a.Situation?this.start():this.situation.call(this)),this},initAnimations:function(){var t,e,i,s=this.situation;if(s.init)return this;for(t in s.animations)for(i=this.target()[t](),Array.isArray(i)||(i=[i]),Array.isArray(s.animations[t])||(s.animations[t]=[s.animations[t]]),e=i.length;e--;)s.animations[t][e]instanceof a.Number&&(i[e]=new a.Number(i[e])),s.animations[t][e]=i[e].morph(s.animations[t][e]);for(t in s.attrs)s.attrs[t]=new a.MorphObj(this.target().attr(t),s.attrs[t]);for(t in s.styles)s.styles[t]=new a.MorphObj(this.target().style(t),s.styles[t]);return s.initialTransformation=this.target().matrixify(),s.init=!0,this},clearQueue:function(){return this.situations=[],this},clearCurrent:function(){return this.situation=null,this},stop:function(t,e){var i=this.active;return this.active=!1,e&&this.clearQueue(),t&&this.situation&&(!i&&this.startCurrent(),this.atEnd()),this.stopAnimFrame(),this.clearCurrent()},reset:function(){if(this.situation){var t=this.situation;this.stop(),this.situation=t,this.atStart()}return this},finish:function(){for(this.stop(!0,!1);this.dequeue().situation&&this.stop(!0,!1););return this.clearQueue().clearCurrent(),this},atStart:function(){return this.at(0,!0)},atEnd:function(){return!0===this.situation.loops&&(this.situation.loops=this.situation.loop+1),"number"==typeof this.situation.loops?this.at(this.situation.loops,!0):this.at(1,!0)},at:function(t,e){var i=this.situation.duration/this._speed;return this.absPos=t,e||(this.situation.reversed&&(this.absPos=1-this.absPos),this.absPos+=this.situation.loop),this.situation.start=+new Date-this.absPos*i,this.situation.finish=this.situation.start+i,this.step(!0)},speed:function(t){return 0===t?this.pause():t?(this._speed=t,this.at(this.absPos,!0)):this._speed},loop:function(t,e){var i=this.last();return i.loops=null==t||t,i.loop=0,e&&(i.reversing=!0),this},pause:function(){return this.paused=!0,this.stopAnimFrame(),this},play:function(){return this.paused?(this.paused=!1,this.at(this.absPos,!0)):this},reverse:function(t){var e=this.last();return e.reversed=void 0===t?!e.reversed:t,this},progress:function(t){return t?this.situation.ease(this.pos):this.pos},after:function(t){var e=this.last();return this.target().on("finished.fx",function i(a){a.detail.situation==e&&(t.call(this,e),this.off("finished.fx",i))}),this._callStart()},during:function(t){var e=this.last(),i=function(i){i.detail.situation==e&&t.call(this,i.detail.pos,a.morph(i.detail.pos),i.detail.eased,e)};return this.target().off("during.fx",i).on("during.fx",i),this.after(function(){this.off("during.fx",i)}),this._callStart()},afterAll:function(t){var e=function e(i){t.call(this),this.off("allfinished.fx",e)};return this.target().off("allfinished.fx",e).on("allfinished.fx",e),this._callStart()},duringAll:function(t){var e=function(e){t.call(this,e.detail.pos,a.morph(e.detail.pos),e.detail.eased,e.detail.situation)};return this.target().off("during.fx",e).on("during.fx",e),this.afterAll(function(){this.off("during.fx",e)}),this._callStart()},last:function(){return this.situations.length?this.situations[this.situations.length-1]:this.situation},add:function(t,e,i){return this.last()[i||"animations"][t]=e,this._callStart()},step:function(t){var e,i,a;(t||(this.absPos=this.timeToAbsPos(+new Date)),!1!==this.situation.loops)?(e=Math.max(this.absPos,0),i=Math.floor(e),!0===this.situation.loops||ithis.lastPos&&n<=s&&(this.situation.once[n].call(this.target(),this.pos,s),delete this.situation.once[n]);return this.active&&this.target().fire("during",{pos:this.pos,eased:s,fx:this,situation:this.situation}),this.situation?(this.eachAt(),1==this.pos&&!this.situation.reversed||this.situation.reversed&&0==this.pos?(this.stopAnimFrame(),this.target().fire("finished",{fx:this,situation:this.situation}),this.situations.length||(this.target().fire("allfinished"),this.situations.length||(this.target().off(".fx"),this.active=!1)),this.active?this.dequeue():this.clearCurrent()):!this.paused&&this.active&&this.startAnimFrame(),this.lastPos=s,this):this},eachAt:function(){var t,e,i,s=this,n=this.target(),r=this.situation;for(t in r.animations)i=[].concat(r.animations[t]).map(function(t){return"string"!=typeof t&&t.at?t.at(r.ease(s.pos),s.pos):t}),n[t].apply(n,i);for(t in r.attrs)i=[t].concat(r.attrs[t]).map(function(t){return"string"!=typeof t&&t.at?t.at(r.ease(s.pos),s.pos):t}),n.attr.apply(n,i);for(t in r.styles)i=[t].concat(r.styles[t]).map(function(t){return"string"!=typeof t&&t.at?t.at(r.ease(s.pos),s.pos):t}),n.style.apply(n,i);if(r.transforms.length){for(i=r.initialTransformation,t=0,e=r.transforms.length;t=0;--i)this[y[i]]=null!=e[y[i]]?e[y[i]]:s[y[i]]},extend:{extract:function(){var t=f(this,0,1),e=f(this,1,0),i=180/Math.PI*Math.atan2(t.y,t.x)-90;return{x:this.e,y:this.f,transformedX:(this.e*Math.cos(i*Math.PI/180)+this.f*Math.sin(i*Math.PI/180))/Math.sqrt(this.a*this.a+this.b*this.b),transformedY:(this.f*Math.cos(i*Math.PI/180)+this.e*Math.sin(-i*Math.PI/180))/Math.sqrt(this.c*this.c+this.d*this.d),skewX:-i,skewY:180/Math.PI*Math.atan2(e.y,e.x),scaleX:Math.sqrt(this.a*this.a+this.b*this.b),scaleY:Math.sqrt(this.c*this.c+this.d*this.d),rotation:i,a:this.a,b:this.b,c:this.c,d:this.d,e:this.e,f:this.f,matrix:new a.Matrix(this)}},clone:function(){return new a.Matrix(this)},morph:function(t){return this.destination=new a.Matrix(t),this},at:function(t){return this.destination?new a.Matrix({a:this.a+(this.destination.a-this.a)*t,b:this.b+(this.destination.b-this.b)*t,c:this.c+(this.destination.c-this.c)*t,d:this.d+(this.destination.d-this.d)*t,e:this.e+(this.destination.e-this.e)*t,f:this.f+(this.destination.f-this.f)*t}):this},multiply:function(t){return new a.Matrix(this.native().multiply(function(t){t instanceof a.Matrix||(t=new a.Matrix(t));return t}(t).native()))},inverse:function(){return new a.Matrix(this.native().inverse())},translate:function(t,e){return new a.Matrix(this.native().translate(t||0,e||0))},scale:function(t,e,i,s){return 1==arguments.length?e=t:3==arguments.length&&(s=i,i=e,e=t),this.around(i,s,new a.Matrix(t,0,0,e,0,0))},rotate:function(t,e,i){return t=a.utils.radians(t),this.around(e,i,new a.Matrix(Math.cos(t),Math.sin(t),-Math.sin(t),Math.cos(t),0,0))},flip:function(t,e){return"x"==t?this.scale(-1,1,e,0):"y"==t?this.scale(1,-1,0,e):this.scale(-1,-1,t,null!=e?e:t)},skew:function(t,e,i,s){return 1==arguments.length?e=t:3==arguments.length&&(s=i,i=e,e=t),t=a.utils.radians(t),e=a.utils.radians(e),this.around(i,s,new a.Matrix(1,Math.tan(e),Math.tan(t),1,0,0))},skewX:function(t,e,i){return this.skew(t,0,e,i)},skewY:function(t,e,i){return this.skew(0,t,e,i)},around:function(t,e,i){return this.multiply(new a.Matrix(1,0,0,1,t||0,e||0)).multiply(i).multiply(new a.Matrix(1,0,0,1,-t||0,-e||0))},native:function(){for(var t=a.parser.native.createSVGMatrix(),e=y.length-1;e>=0;e--)t[y[e]]=this[y[e]];return t},toString:function(){return"matrix("+v(this.a)+","+v(this.b)+","+v(this.c)+","+v(this.d)+","+v(this.e)+","+v(this.f)+")"}},parent:a.Element,construct:{ctm:function(){return new a.Matrix(this.node.getCTM())},screenCTM:function(){if(this instanceof a.Nested){var t=this.rect(1,1),e=t.node.getScreenCTM();return t.remove(),new a.Matrix(e)}return new a.Matrix(this.node.getScreenCTM())}}}),a.Point=a.invent({create:function(e,i){var a;a=Array.isArray(e)?{x:e[0],y:e[1]}:"object"===t(e)?{x:e.x,y:e.y}:null!=e?{x:e,y:null!=i?i:e}:{x:0,y:0},this.x=a.x,this.y=a.y},extend:{clone:function(){return new a.Point(this)},morph:function(t,e){return this.destination=new a.Point(t,e),this},at:function(t){return this.destination?new a.Point({x:this.x+(this.destination.x-this.x)*t,y:this.y+(this.destination.y-this.y)*t}):this},native:function(){var t=a.parser.native.createSVGPoint();return t.x=this.x,t.y=this.y,t},transform:function(t){return new a.Point(this.native().matrixTransform(t.native()))}}}),a.extend(a.Element,{point:function(t,e){return new a.Point(t,e).transform(this.screenCTM().inverse())}}),a.extend(a.Element,{attr:function(e,i,s){if(null==e){for(e={},s=(i=this.node.attributes).length-1;s>=0;s--)e[i[s].nodeName]=a.regex.isNumber.test(i[s].nodeValue)?parseFloat(i[s].nodeValue):i[s].nodeValue;return e}if("object"===t(e))for(i in e)this.attr(i,e[i]);else if(null===i)this.node.removeAttribute(e);else{if(null==i)return null==(i=this.node.getAttribute(e))?a.defaults.attrs[e]:a.regex.isNumber.test(i)?parseFloat(i):i;"stroke-width"==e?this.attr("stroke",parseFloat(i)>0?this._stroke:null):"stroke"==e&&(this._stroke=i),"fill"!=e&&"stroke"!=e||(a.regex.isImage.test(i)&&(i=this.doc().defs().image(i,0,0)),i instanceof a.Image&&(i=this.doc().defs().pattern(0,0,function(){this.add(i)}))),"number"==typeof i?i=new a.Number(i):a.Color.isColor(i)?i=new a.Color(i):Array.isArray(i)&&(i=new a.Array(i)),"leading"==e?this.leading&&this.leading(i):"string"==typeof s?this.node.setAttributeNS(s,e,i.toString()):this.node.setAttribute(e,i.toString()),!this.rebuild||"font-size"!=e&&"x"!=e||this.rebuild(e,i)}return this}}),a.extend(a.Element,{transform:function(e,i){var s,n;if("object"!==t(e))return s=new a.Matrix(this).extract(),"string"==typeof e?s[e]:s;if(s=new a.Matrix(this),i=!!i||!!e.relative,null!=e.a)s=i?s.multiply(new a.Matrix(e)):new a.Matrix(e);else if(null!=e.rotation)x(e,this),s=i?s.rotate(e.rotation,e.cx,e.cy):s.rotate(e.rotation-s.extract().rotation,e.cx,e.cy);else if(null!=e.scale||null!=e.scaleX||null!=e.scaleY){if(x(e,this),e.scaleX=null!=e.scale?e.scale:null!=e.scaleX?e.scaleX:1,e.scaleY=null!=e.scale?e.scale:null!=e.scaleY?e.scaleY:1,!i){var r=s.extract();e.scaleX=1*e.scaleX/r.scaleX,e.scaleY=1*e.scaleY/r.scaleY}s=s.scale(e.scaleX,e.scaleY,e.cx,e.cy)}else if(null!=e.skew||null!=e.skewX||null!=e.skewY){if(x(e,this),e.skewX=null!=e.skew?e.skew:null!=e.skewX?e.skewX:0,e.skewY=null!=e.skew?e.skew:null!=e.skewY?e.skewY:0,!i){r=s.extract();s=s.multiply((new a.Matrix).skew(r.skewX,r.skewY,e.cx,e.cy).inverse())}s=s.skew(e.skewX,e.skewY,e.cx,e.cy)}else e.flip?("x"==e.flip||"y"==e.flip?e.offset=null==e.offset?this.bbox()["c"+e.flip]:e.offset:null==e.offset?(n=this.bbox(),e.flip=n.cx,e.offset=n.cy):e.flip=e.offset,s=(new a.Matrix).flip(e.flip,e.offset)):null==e.x&&null==e.y||(i?s=s.translate(e.x,e.y):(null!=e.x&&(s.e=e.x),null!=e.y&&(s.f=e.y)));return this.attr("transform",s)}}),a.extend(a.FX,{transform:function(e,i){var s,n,r=this.target();return"object"!==t(e)?(s=new a.Matrix(r).extract(),"string"==typeof e?s[e]:s):(i=!!i||!!e.relative,null!=e.a?s=new a.Matrix(e):null!=e.rotation?(x(e,r),s=new a.Rotate(e.rotation,e.cx,e.cy)):null!=e.scale||null!=e.scaleX||null!=e.scaleY?(x(e,r),e.scaleX=null!=e.scale?e.scale:null!=e.scaleX?e.scaleX:1,e.scaleY=null!=e.scale?e.scale:null!=e.scaleY?e.scaleY:1,s=new a.Scale(e.scaleX,e.scaleY,e.cx,e.cy)):null!=e.skewX||null!=e.skewY?(x(e,r),e.skewX=null!=e.skewX?e.skewX:0,e.skewY=null!=e.skewY?e.skewY:0,s=new a.Skew(e.skewX,e.skewY,e.cx,e.cy)):e.flip?("x"==e.flip||"y"==e.flip?e.offset=null==e.offset?r.bbox()["c"+e.flip]:e.offset:null==e.offset?(n=r.bbox(),e.flip=n.cx,e.offset=n.cy):e.flip=e.offset,s=(new a.Matrix).flip(e.flip,e.offset)):null==e.x&&null==e.y||(s=new a.Translate(e.x,e.y)),s?(s.relative=i,this.last().transforms.push(s),this._callStart()):this)}}),a.extend(a.Element,{untransform:function(){return this.attr("transform",null)},matrixify:function(){return(this.attr("transform")||"").split(a.regex.transforms).slice(0,-1).map(function(t){var e=t.trim().split("(");return[e[0],e[1].split(a.regex.delimiter).map(function(t){return parseFloat(t)})]}).reduce(function(t,e){return"matrix"==e[0]?t.multiply(p(e[1])):t[e[0]].apply(t,e[1])},new a.Matrix)},toParent:function(t){if(this==t)return this;var e=this.screenCTM(),i=t.screenCTM().inverse();return this.addTo(t).untransform().transform(i.multiply(e)),this},toDoc:function(){return this.toParent(this.doc())}}),a.Transformation=a.invent({create:function(e,i){if(arguments.length>1&&"boolean"!=typeof i)return this.constructor.call(this,[].slice.call(arguments));if(Array.isArray(e))for(var a=0,s=this.arguments.length;a=0},index:function(t){return[].slice.call(this.node.childNodes).indexOf(t.node)},get:function(t){return a.adopt(this.node.childNodes[t])},first:function(){return this.get(0)},last:function(){return this.get(this.node.childNodes.length-1)},each:function(t,e){var i,s,n=this.children();for(i=0,s=n.length;in/r?this.height/r:this.width/n,this.x=i,this.y=s,this.width=n,this.height=r)}else e="string"==typeof e?e.match(u).map(function(t){return parseFloat(t)}):Array.isArray(e)?e:"object"===t(e)?[e.x,e.y,e.width,e.height]:4==arguments.length?[].slice.call(arguments):[0,0,0,0],this.x=e[0],this.y=e[1],this.width=e[2],this.height=e[3]},extend:{toString:function(){return this.x+" "+this.y+" "+this.width+" "+this.height},morph:function(t,e,i,s){return this.destination=new a.ViewBox(t,e,i,s),this},at:function(t){return this.destination?new a.ViewBox([this.x+(this.destination.x-this.x)*t,this.y+(this.destination.y-this.y)*t,this.width+(this.destination.width-this.width)*t,this.height+(this.destination.height-this.height)*t]):this}},parent:a.Container,construct:{viewbox:function(t,e,i,s){return 0==arguments.length?new a.ViewBox(this):this.attr("viewBox",new a.ViewBox(t,e,i,s))}}}),["click","dblclick","mousedown","mouseup","mouseover","mouseout","mousemove","touchstart","touchmove","touchleave","touchend","touchcancel"].forEach(function(t){a.Element.prototype[t]=function(e){return a.on(this.node,t,e),this}}),a.listeners=[],a.handlerMap=[],a.listenerId=0,a.on=function(t,e,i,s,n){var r=i.bind(s||t.instance||t),o=(a.handlerMap.indexOf(t)+1||a.handlerMap.push(t))-1,l=e.split(".")[0],h=e.split(".")[1]||"*";a.listeners[o]=a.listeners[o]||{},a.listeners[o][l]=a.listeners[o][l]||{},a.listeners[o][l][h]=a.listeners[o][l][h]||{},i._svgjsListenerId||(i._svgjsListenerId=++a.listenerId),a.listeners[o][l][h][i._svgjsListenerId]=r,t.addEventListener(l,r,n||!1)},a.off=function(t,e,i){var s=a.handlerMap.indexOf(t),n=e&&e.split(".")[0],r=e&&e.split(".")[1],o="";if(-1!=s)if(i){if("function"==typeof i&&(i=i._svgjsListenerId),!i)return;a.listeners[s][n]&&a.listeners[s][n][r||"*"]&&(t.removeEventListener(n,a.listeners[s][n][r||"*"][i],!1),delete a.listeners[s][n][r||"*"][i])}else if(r&&n){if(a.listeners[s][n]&&a.listeners[s][n][r]){for(i in a.listeners[s][n][r])a.off(t,[n,r].join("."),i);delete a.listeners[s][n][r]}}else if(r)for(e in a.listeners[s])for(o in a.listeners[s][e])r===o&&a.off(t,[e,r].join("."));else if(n){if(a.listeners[s][n]){for(o in a.listeners[s][n])a.off(t,[n,o].join("."));delete a.listeners[s][n]}}else{for(e in a.listeners[s])a.off(t,e);delete a.listeners[s],delete a.handlerMap[s]}},a.extend(a.Element,{on:function(t,e,i,s){return a.on(this.node,t,e,i,s),this},off:function(t,e){return a.off(this.node,t,e),this},fire:function(t,i){return t instanceof e.Event?this.node.dispatchEvent(t):this.node.dispatchEvent(t=new a.CustomEvent(t,{detail:i,cancelable:!0})),this._event=t,this},event:function(){return this._event}}),a.Defs=a.invent({create:"defs",inherit:a.Container}),a.G=a.invent({create:"g",inherit:a.Container,extend:{x:function(t){return null==t?this.transform("x"):this.transform({x:t-this.x()},!0)},y:function(t){return null==t?this.transform("y"):this.transform({y:t-this.y()},!0)},cx:function(t){return null==t?this.gbox().cx:this.x(t-this.gbox().width/2)},cy:function(t){return null==t?this.gbox().cy:this.y(t-this.gbox().height/2)},gbox:function(){var t=this.bbox(),e=this.transform();return t.x+=e.x,t.x2+=e.x,t.cx+=e.x,t.y+=e.y,t.y2+=e.y,t.cy+=e.y,t}},construct:{group:function(){return this.put(new a.G)}}}),a.Doc=a.invent({create:function(t){t&&("svg"==(t="string"==typeof t?i.getElementById(t):t).nodeName?this.constructor.call(this,t):(this.constructor.call(this,a.create("svg")),t.appendChild(this.node),this.size("100%","100%")),this.namespace().defs())},inherit:a.Container,extend:{namespace:function(){return this.attr({xmlns:a.ns,version:"1.1"}).attr("xmlns:xlink",a.xlink,a.xmlns).attr("xmlns:svgjs",a.svgjs,a.xmlns)},defs:function(){var t;this._defs||((t=this.node.getElementsByTagName("defs")[0])?this._defs=a.adopt(t):this._defs=new a.Defs,this.node.appendChild(this._defs.node));return this._defs},parent:function(){return this.node.parentNode&&"#document"!=this.node.parentNode.nodeName?this.node.parentNode:null},spof:function(){var t=this.node.getScreenCTM();return t&&this.style("left",-t.e%1+"px").style("top",-t.f%1+"px"),this},remove:function(){return this.parent()&&this.parent().removeChild(this.node),this},clear:function(){for(;this.node.hasChildNodes();)this.node.removeChild(this.node.lastChild);return delete this._defs,a.parser.draw&&!a.parser.draw.parentNode&&this.node.appendChild(a.parser.draw),this},clone:function(t){this.writeDataToDom();var e=this.node,i=b(e.cloneNode(!0));return t?(t.node||t).appendChild(i.node):e.parentNode.insertBefore(i.node,e.nextSibling),i}}}),a.extend(a.Element,{siblings:function(){return this.parent().children()},position:function(){return this.parent().index(this)},next:function(){return this.siblings()[this.position()+1]},previous:function(){return this.siblings()[this.position()-1]},forward:function(){var t=this.position()+1,e=this.parent();return e.removeElement(this).add(this,t),e instanceof a.Doc&&e.node.appendChild(e.defs().node),this},backward:function(){var t=this.position();return t>0&&this.parent().removeElement(this).add(this,t-1),this},front:function(){var t=this.parent();return t.node.appendChild(this.node),t instanceof a.Doc&&t.node.appendChild(t.defs().node),this},back:function(){return this.position()>0&&this.parent().removeElement(this).add(this,0),this},before:function(t){t.remove();var e=this.position();return this.parent().add(t,e),this},after:function(t){t.remove();var e=this.position();return this.parent().add(t,e+1),this}}),a.Mask=a.invent({create:function(){this.constructor.call(this,a.create("mask")),this.targets=[]},inherit:a.Container,extend:{remove:function(){for(var t=this.targets.length-1;t>=0;t--)this.targets[t]&&this.targets[t].unmask();return this.targets=[],a.Element.prototype.remove.call(this),this}},construct:{mask:function(){return this.defs().put(new a.Mask)}}}),a.extend(a.Element,{maskWith:function(t){return this.masker=t instanceof a.Mask?t:this.parent().mask().add(t),this.masker.targets.push(this),this.attr("mask",'url("#'+this.masker.attr("id")+'")')},unmask:function(){return delete this.masker,this.attr("mask",null)}}),a.ClipPath=a.invent({create:function(){this.constructor.call(this,a.create("clipPath")),this.targets=[]},inherit:a.Container,extend:{remove:function(){for(var t=this.targets.length-1;t>=0;t--)this.targets[t]&&this.targets[t].unclip();return this.targets=[],this.parent().removeElement(this),this}},construct:{clip:function(){return this.defs().put(new a.ClipPath)}}}),a.extend(a.Element,{clipWith:function(t){return this.clipper=t instanceof a.ClipPath?t:this.parent().clip().add(t),this.clipper.targets.push(this),this.attr("clip-path",'url("#'+this.clipper.attr("id")+'")')},unclip:function(){return delete this.clipper,this.attr("clip-path",null)}}),a.Gradient=a.invent({create:function(t){this.constructor.call(this,a.create(t+"Gradient")),this.type=t},inherit:a.Container,extend:{at:function(t,e,i){return this.put(new a.Stop).update(t,e,i)},update:function(t){return this.clear(),"function"==typeof t&&t.call(this,this),this},fill:function(){return"url(#"+this.id()+")"},toString:function(){return this.fill()},attr:function(t,e,i){return"transform"==t&&(t="gradientTransform"),a.Container.prototype.attr.call(this,t,e,i)}},construct:{gradient:function(t,e){return this.defs().gradient(t,e)}}}),a.extend(a.Gradient,a.FX,{from:function(t,e){return"radial"==(this._target||this).type?this.attr({fx:new a.Number(t),fy:new a.Number(e)}):this.attr({x1:new a.Number(t),y1:new a.Number(e)})},to:function(t,e){return"radial"==(this._target||this).type?this.attr({cx:new a.Number(t),cy:new a.Number(e)}):this.attr({x2:new a.Number(t),y2:new a.Number(e)})}}),a.extend(a.Defs,{gradient:function(t,e){return this.put(new a.Gradient(t)).update(e)}}),a.Stop=a.invent({create:"stop",inherit:a.Element,extend:{update:function(t){return("number"==typeof t||t instanceof a.Number)&&(t={offset:arguments[0],color:arguments[1],opacity:arguments[2]}),null!=t.opacity&&this.attr("stop-opacity",t.opacity),null!=t.color&&this.attr("stop-color",t.color),null!=t.offset&&this.attr("offset",new a.Number(t.offset)),this}}}),a.Pattern=a.invent({create:"pattern",inherit:a.Container,extend:{fill:function(){return"url(#"+this.id()+")"},update:function(t){return this.clear(),"function"==typeof t&&t.call(this,this),this},toString:function(){return this.fill()},attr:function(t,e,i){return"transform"==t&&(t="patternTransform"),a.Container.prototype.attr.call(this,t,e,i)}},construct:{pattern:function(t,e,i){return this.defs().pattern(t,e,i)}}}),a.extend(a.Defs,{pattern:function(t,e,i){return this.put(new a.Pattern).update(i).attr({x:0,y:0,width:t,height:e,patternUnits:"userSpaceOnUse"})}}),a.Shape=a.invent({create:function(t){this.constructor.call(this,t)},inherit:a.Element}),a.Bare=a.invent({create:function(t,e){if(this.constructor.call(this,a.create(t)),e)for(var i in e.prototype)"function"==typeof e.prototype[i]&&(this[i]=e.prototype[i])},inherit:a.Element,extend:{words:function(t){for(;this.node.hasChildNodes();)this.node.removeChild(this.node.lastChild);return this.node.appendChild(i.createTextNode(t)),this}}}),a.extend(a.Parent,{element:function(t,e){return this.put(new a.Bare(t,e))}}),a.Symbol=a.invent({create:"symbol",inherit:a.Container,construct:{symbol:function(){return this.put(new a.Symbol)}}}),a.Use=a.invent({create:"use",inherit:a.Shape,extend:{element:function(t,e){return this.attr("href",(e||"")+"#"+t,a.xlink)}},construct:{use:function(t,e){return this.put(new a.Use).element(t,e)}}}),a.Rect=a.invent({create:"rect",inherit:a.Shape,construct:{rect:function(t,e){return this.put(new a.Rect).size(t,e)}}}),a.Circle=a.invent({create:"circle",inherit:a.Shape,construct:{circle:function(t){return this.put(new a.Circle).rx(new a.Number(t).divide(2)).move(0,0)}}}),a.extend(a.Circle,a.FX,{rx:function(t){return this.attr("r",t)},ry:function(t){return this.rx(t)}}),a.Ellipse=a.invent({create:"ellipse",inherit:a.Shape,construct:{ellipse:function(t,e){return this.put(new a.Ellipse).size(t,e).move(0,0)}}}),a.extend(a.Ellipse,a.Rect,a.FX,{rx:function(t){return this.attr("rx",t)},ry:function(t){return this.attr("ry",t)}}),a.extend(a.Circle,a.Ellipse,{x:function(t){return null==t?this.cx()-this.rx():this.cx(t+this.rx())},y:function(t){return null==t?this.cy()-this.ry():this.cy(t+this.ry())},cx:function(t){return null==t?this.attr("cx"):this.attr("cx",t)},cy:function(t){return null==t?this.attr("cy"):this.attr("cy",t)},width:function(t){return null==t?2*this.rx():this.rx(new a.Number(t).divide(2))},height:function(t){return null==t?2*this.ry():this.ry(new a.Number(t).divide(2))},size:function(t,e){var i=g(this,t,e);return this.rx(new a.Number(i.width).divide(2)).ry(new a.Number(i.height).divide(2))}}),a.Line=a.invent({create:"line",inherit:a.Shape,extend:{array:function(){return new a.PointArray([[this.attr("x1"),this.attr("y1")],[this.attr("x2"),this.attr("y2")]])},plot:function(t,e,i,s){return null==t?this.array():(t=void 0!==e?{x1:t,y1:e,x2:i,y2:s}:new a.PointArray(t).toLine(),this.attr(t))},move:function(t,e){return this.attr(this.array().move(t,e).toLine())},size:function(t,e){var i=g(this,t,e);return this.attr(this.array().size(i.width,i.height).toLine())}},construct:{line:function(t,e,i,s){return a.Line.prototype.plot.apply(this.put(new a.Line),null!=t?[t,e,i,s]:[0,0,0,0])}}}),a.Polyline=a.invent({create:"polyline",inherit:a.Shape,construct:{polyline:function(t){return this.put(new a.Polyline).plot(t||new a.PointArray)}}}),a.Polygon=a.invent({create:"polygon",inherit:a.Shape,construct:{polygon:function(t){return this.put(new a.Polygon).plot(t||new a.PointArray)}}}),a.extend(a.Polyline,a.Polygon,{array:function(){return this._array||(this._array=new a.PointArray(this.attr("points")))},plot:function(t){return null==t?this.array():this.clear().attr("points","string"==typeof t?t:this._array=new a.PointArray(t))},clear:function(){return delete this._array,this},move:function(t,e){return this.attr("points",this.array().move(t,e))},size:function(t,e){var i=g(this,t,e);return this.attr("points",this.array().size(i.width,i.height))}}),a.extend(a.Line,a.Polyline,a.Polygon,{morphArray:a.PointArray,x:function(t){return null==t?this.bbox().x:this.move(t,this.bbox().y)},y:function(t){return null==t?this.bbox().y:this.move(this.bbox().x,t)},width:function(t){var e=this.bbox();return null==t?e.width:this.size(t,e.height)},height:function(t){var e=this.bbox();return null==t?e.height:this.size(e.width,t)}}),a.Path=a.invent({create:"path",inherit:a.Shape,extend:{morphArray:a.PathArray,array:function(){return this._array||(this._array=new a.PathArray(this.attr("d")))},plot:function(t){return null==t?this.array():this.clear().attr("d","string"==typeof t?t:this._array=new a.PathArray(t))},clear:function(){return delete this._array,this},move:function(t,e){return this.attr("d",this.array().move(t,e))},x:function(t){return null==t?this.bbox().x:this.move(t,this.bbox().y)},y:function(t){return null==t?this.bbox().y:this.move(this.bbox().x,t)},size:function(t,e){var i=g(this,t,e);return this.attr("d",this.array().size(i.width,i.height))},width:function(t){return null==t?this.bbox().width:this.size(t,this.bbox().height)},height:function(t){return null==t?this.bbox().height:this.size(this.bbox().width,t)}},construct:{path:function(t){return this.put(new a.Path).plot(t||new a.PathArray)}}}),a.Image=a.invent({create:"image",inherit:a.Shape,extend:{load:function(t){if(!t)return this;var i=this,s=new e.Image;return a.on(s,"load",function(){a.off(s);var e=i.parent(a.Pattern);null!==e&&(0==i.width()&&0==i.height()&&i.size(s.width,s.height),e&&0==e.width()&&0==e.height()&&e.size(i.width(),i.height()),"function"==typeof i._loaded&&i._loaded.call(i,{width:s.width,height:s.height,ratio:s.width/s.height,url:t}))}),a.on(s,"error",function(t){a.off(s),"function"==typeof i._error&&i._error.call(i,t)}),this.attr("href",s.src=this.src=t,a.xlink)},loaded:function(t){return this._loaded=t,this},error:function(t){return this._error=t,this}},construct:{image:function(t,e,i){return this.put(new a.Image).load(t).size(e||0,i||e||0)}}}),a.Text=a.invent({create:function(){this.constructor.call(this,a.create("text")),this.dom.leading=new a.Number(1.3),this._rebuild=!0,this._build=!1,this.attr("font-family",a.defaults.attrs["font-family"])},inherit:a.Shape,extend:{x:function(t){return null==t?this.attr("x"):this.attr("x",t)},y:function(t){var e=this.attr("y"),i="number"==typeof e?e-this.bbox().y:0;return null==t?"number"==typeof e?e-i:e:this.attr("y","number"==typeof t.valueOf()?t+i:t)},cx:function(t){return null==t?this.bbox().cx:this.x(t-this.bbox().width/2)},cy:function(t){return null==t?this.bbox().cy:this.y(t-this.bbox().height/2)},text:function(t){if(void 0===t){t="";for(var e=this.node.childNodes,i=0,s=e.length;i=0;i--)t.childNodes[i]instanceof e.SVGElement&&b(t.childNodes[i]);return a.adopt(t).id(a.eid(t.nodeName))}function m(t){return null==t.x&&(t.x=0,t.y=0,t.width=0,t.height=0),t.w=t.width,t.h=t.height,t.x2=t.x+t.width,t.y2=t.y+t.height,t.cx=t.x+t.width/2,t.cy=t.y+t.height/2,t}function v(t){return Math.abs(t)>1e-37?t:0}["fill","stroke"].forEach(function(t){var e,i={};i[t]=function(i){if(void 0===i)return this;if("string"==typeof i||a.Color.isRgb(i)||i&&"function"==typeof i.fill)this.attr(t,i);else for(e=l[t].length-1;e>=0;e--)null!=i[l[t][e]]&&this.attr(l.prefix(t,l[t][e]),i[l[t][e]]);return this},a.extend(a.Element,a.FX,i)}),a.extend(a.Element,a.FX,{rotate:function(t,e,i){return this.transform({rotation:t,cx:e,cy:i})},skew:function(t,e,i,a){return 1==arguments.length||3==arguments.length?this.transform({skew:t,cx:e,cy:i}):this.transform({skewX:t,skewY:e,cx:i,cy:a})},scale:function(t,e,i,a){return 1==arguments.length||3==arguments.length?this.transform({scale:t,cx:e,cy:i}):this.transform({scaleX:t,scaleY:e,cx:i,cy:a})},translate:function(t,e){return this.transform({x:t,y:e})},flip:function(t,e){return e="number"==typeof t?t:e,this.transform({flip:t||"both",offset:e})},matrix:function(t){return this.attr("transform",new a.Matrix(6==arguments.length?[].slice.call(arguments):t))},opacity:function(t){return this.attr("opacity",t)},dx:function(t){return this.x(new a.Number(t).plus(this instanceof a.FX?0:this.x()),!0)},dy:function(t){return this.y(new a.Number(t).plus(this instanceof a.FX?0:this.y()),!0)},dmove:function(t,e){return this.dx(t).dy(e)}}),a.extend(a.Rect,a.Ellipse,a.Circle,a.Gradient,a.FX,{radius:function(t,e){var i=(this._target||this).type;return"radial"==i||"circle"==i?this.attr("r",new a.Number(t)):this.rx(t).ry(null==e?t:e)}}),a.extend(a.Path,{length:function(){return this.node.getTotalLength()},pointAt:function(t){return this.node.getPointAtLength(t)}}),a.extend(a.Parent,a.Text,a.Tspan,a.FX,{font:function(e,i){if("object"===t(e))for(i in e)this.font(i,e[i]);return"leading"==e?this.leading(i):"anchor"==e?this.attr("text-anchor",i):"size"==e||"family"==e||"weight"==e||"stretch"==e||"variant"==e||"style"==e?this.attr("font-"+e,i):this.attr(e,i)}}),a.Set=a.invent({create:function(t){Array.isArray(t)?this.members=t:this.clear()},extend:{add:function(){var t,e,i=[].slice.call(arguments);for(t=0,e=i.length;t-1&&this.members.splice(e,1),this},each:function(t){for(var e=0,i=this.members.length;e=0},index:function(t){return this.members.indexOf(t)},get:function(t){return this.members[t]},first:function(){return this.get(0)},last:function(){return this.get(this.members.length-1)},valueOf:function(){return this.members},bbox:function(){if(0==this.members.length)return new a.RBox;var t=this.members[0].rbox(this.members[0].doc());return this.each(function(){t=t.merge(this.rbox(this.doc()))}),t}},construct:{set:function(t){return new a.Set(t)}}}),a.FX.Set=a.invent({create:function(t){this.set=t}}),a.Set.inherit=function(){var t=[];for(var e in a.Shape.prototype)"function"==typeof a.Shape.prototype[e]&&"function"!=typeof a.Set.prototype[e]&&t.push(e);for(var e in t.forEach(function(t){a.Set.prototype[t]=function(){for(var e=0,i=this.members.length;e=0;t--)delete this.memory()[arguments[t]];return this},memory:function(){return this._memory||(this._memory={})}}),a.get=function(t){var e=i.getElementById(function(t){var e=(t||"").toString().match(a.regex.reference);if(e)return e[1]}(t)||t);return a.adopt(e)},a.select=function(t,e){return new a.Set(a.utils.map((e||i).querySelectorAll(t),function(t){return a.adopt(t)}))},a.extend(a.Parent,{select:function(t){return a.select(t,this.node)}});var y="abcdef".split("");if("function"!=typeof e.CustomEvent){var w=function(t,e){e=e||{bubbles:!1,cancelable:!1,detail:void 0};var a=i.createEvent("CustomEvent");return a.initCustomEvent(t,e.bubbles,e.cancelable,e.detail),a};w.prototype=e.Event.prototype,a.CustomEvent=w}else a.CustomEvent=e.CustomEvent;return function(t){for(var i=0,a=["moz","webkit"],s=0;s1&&(a=Math.sqrt(a),z*=a,E*=a);s=(new SVG.Matrix).rotate(M).scale(1/z,1/E).rotate(-M),F=F.transform(s),R=R.transform(s),n=[R.x-F.x,R.y-F.y],o=n[0]*n[0]+n[1]*n[1],r=Math.sqrt(o),n[0]/=r,n[1]/=r,l=o<4?Math.sqrt(1-o/4):0,T===I&&(l*=-1);h=new SVG.Point((R.x+F.x)/2+l*-n[1],(R.y+F.y)/2+l*n[0]),c=new SVG.Point(F.x-h.x,F.y-h.y),d=new SVG.Point(R.x-h.x,R.y-h.y),u=Math.acos(c.x/Math.sqrt(c.x*c.x+c.y*c.y)),c.y<0&&(u*=-1);g=Math.acos(d.x/Math.sqrt(d.x*d.x+d.y*d.y)),d.y<0&&(g*=-1);I&&u>g&&(g+=2*Math.PI);!I&&un.maxX-e.width&&(r=(a=n.maxX-e.width)-this.startPoints.box.x),null!=n.minY&&sn.maxY-e.height&&(o=(s=n.maxY-e.height)-this.startPoints.box.y),null!=n.snapToGrid&&(a-=a%n.snapToGrid,s-=s%n.snapToGrid,r-=r%n.snapToGrid,o-=o%n.snapToGrid),this.el instanceof SVG.G?this.el.matrix(this.startPoints.transform).transform({x:r,y:o},!0):this.el.move(a,s));return i},t.prototype.end=function(t){var e=this.drag(t);this.el.fire("dragend",{event:t,p:e,m:this.m,handler:this}),SVG.off(window,"mousemove.drag"),SVG.off(window,"touchmove.drag"),SVG.off(window,"mouseup.drag"),SVG.off(window,"touchend.drag")},SVG.extend(SVG.Element,{draggable:function(e,i){"function"!=typeof e&&"object"!=typeof e||(i=e,e=!0);var a=this.remember("_draggable")||new t(this);return(e=void 0===e||e)?a.init(i||{},e):(this.off("mousedown.drag"),this.off("touchstart.drag")),this}})}.call(void 0),function(){function t(t){this.el=t,t.remember("_selectHandler",this),this.pointSelection={isSelected:!1},this.rectSelection={isSelected:!1}}t.prototype.init=function(t,e){var i=this.el.bbox();for(var a in this.options={},this.el.selectize.defaults)this.options[a]=this.el.selectize.defaults[a],void 0!==e[a]&&(this.options[a]=e[a]);this.parent=this.el.parent(),this.nested=this.nested||this.parent.group(),this.nested.matrix(new SVG.Matrix(this.el).translate(i.x,i.y)),this.options.deepSelect&&-1!==["line","polyline","polygon"].indexOf(this.el.type)?this.selectPoints(t):this.selectRect(t),this.observe(),this.cleanup()},t.prototype.selectPoints=function(t){return this.pointSelection.isSelected=t,this.pointSelection.set?this:(this.pointSelection.set=this.parent.set(),this.drawCircles(),this)},t.prototype.getPointArray=function(){var t=this.el.bbox();return this.el.array().valueOf().map(function(e){return[e[0]-t.x,e[1]-t.y]})},t.prototype.drawCircles=function(){for(var t=this,e=this.getPointArray(),i=0,a=e.length;i0&&this.parameters.box.height-i[1]>0){if("text"===this.parameters.type)return this.el.move(this.parameters.box.x+i[0],this.parameters.box.y),void this.el.attr("font-size",this.parameters.fontSize-i[0]);i=this.checkAspectRatio(i),this.el.move(this.parameters.box.x+i[0],this.parameters.box.y+i[1]).size(this.parameters.box.width-i[0],this.parameters.box.height-i[1])}};break;case"rt":this.calc=function(t,e){var i=this.snapToGrid(t,e,2);if(this.parameters.box.width+i[0]>0&&this.parameters.box.height-i[1]>0){if("text"===this.parameters.type)return this.el.move(this.parameters.box.x-i[0],this.parameters.box.y),void this.el.attr("font-size",this.parameters.fontSize+i[0]);i=this.checkAspectRatio(i,!0),this.el.move(this.parameters.box.x,this.parameters.box.y+i[1]).size(this.parameters.box.width+i[0],this.parameters.box.height-i[1])}};break;case"rb":this.calc=function(t,e){var i=this.snapToGrid(t,e,0);if(this.parameters.box.width+i[0]>0&&this.parameters.box.height+i[1]>0){if("text"===this.parameters.type)return this.el.move(this.parameters.box.x-i[0],this.parameters.box.y),void this.el.attr("font-size",this.parameters.fontSize+i[0]);i=this.checkAspectRatio(i),this.el.move(this.parameters.box.x,this.parameters.box.y).size(this.parameters.box.width+i[0],this.parameters.box.height+i[1])}};break;case"lb":this.calc=function(t,e){var i=this.snapToGrid(t,e,1);if(this.parameters.box.width-i[0]>0&&this.parameters.box.height+i[1]>0){if("text"===this.parameters.type)return this.el.move(this.parameters.box.x+i[0],this.parameters.box.y),void this.el.attr("font-size",this.parameters.fontSize-i[0]);i=this.checkAspectRatio(i,!0),this.el.move(this.parameters.box.x+i[0],this.parameters.box.y).size(this.parameters.box.width-i[0],this.parameters.box.height+i[1])}};break;case"t":this.calc=function(t,e){var i=this.snapToGrid(t,e,2);if(this.parameters.box.height-i[1]>0){if("text"===this.parameters.type)return;this.el.move(this.parameters.box.x,this.parameters.box.y+i[1]).height(this.parameters.box.height-i[1])}};break;case"r":this.calc=function(t,e){var i=this.snapToGrid(t,e,0);if(this.parameters.box.width+i[0]>0){if("text"===this.parameters.type)return;this.el.move(this.parameters.box.x,this.parameters.box.y).width(this.parameters.box.width+i[0])}};break;case"b":this.calc=function(t,e){var i=this.snapToGrid(t,e,0);if(this.parameters.box.height+i[1]>0){if("text"===this.parameters.type)return;this.el.move(this.parameters.box.x,this.parameters.box.y).height(this.parameters.box.height+i[1])}};break;case"l":this.calc=function(t,e){var i=this.snapToGrid(t,e,1);if(this.parameters.box.width-i[0]>0){if("text"===this.parameters.type)return;this.el.move(this.parameters.box.x+i[0],this.parameters.box.y).width(this.parameters.box.width-i[0])}};break;case"rot":this.calc=function(t,e){var i=t+this.parameters.p.x,a=e+this.parameters.p.y,s=Math.atan2(this.parameters.p.y-this.parameters.box.y-this.parameters.box.height/2,this.parameters.p.x-this.parameters.box.x-this.parameters.box.width/2),n=Math.atan2(a-this.parameters.box.y-this.parameters.box.height/2,i-this.parameters.box.x-this.parameters.box.width/2),r=this.parameters.rotation+180*(n-s)/Math.PI+this.options.snapToAngle/2;this.el.center(this.parameters.box.cx,this.parameters.box.cy).rotate(r-r%this.options.snapToAngle,this.parameters.box.cx,this.parameters.box.cy)};break;case"point":this.calc=function(t,e){var i=this.snapToGrid(t,e,this.parameters.pointCoords[0],this.parameters.pointCoords[1]),a=this.el.array().valueOf();a[this.parameters.i][0]=this.parameters.pointCoords[0]+i[0],a[this.parameters.i][1]=this.parameters.pointCoords[1]+i[1],this.el.plot(a)}}this.el.fire("resizestart",{dx:this.parameters.x,dy:this.parameters.y,event:t}),SVG.on(window,"touchmove.resize",function(t){e.update(t||window.event)}),SVG.on(window,"touchend.resize",function(){e.done()}),SVG.on(window,"mousemove.resize",function(t){e.update(t||window.event)}),SVG.on(window,"mouseup.resize",function(){e.done()})},t.prototype.update=function(t){if(t){var e=this._extractPosition(t),i=this.transformPoint(e.x,e.y),a=i.x-this.parameters.p.x,s=i.y-this.parameters.p.y;this.lastUpdateCall=[a,s],this.calc(a,s),this.el.fire("resizing",{dx:a,dy:s,event:t})}else this.lastUpdateCall&&this.calc(this.lastUpdateCall[0],this.lastUpdateCall[1])},t.prototype.done=function(){this.lastUpdateCall=null,SVG.off(window,"mousemove.resize"),SVG.off(window,"mouseup.resize"),SVG.off(window,"touchmove.resize"),SVG.off(window,"touchend.resize"),this.el.fire("resizedone")},t.prototype.snapToGrid=function(t,e,i,a){var s;return void 0!==a?s=[(i+t)%this.options.snapToGrid,(a+e)%this.options.snapToGrid]:(i=null==i?3:i,s=[(this.parameters.box.x+t+(1&i?0:this.parameters.box.width))%this.options.snapToGrid,(this.parameters.box.y+e+(2&i?0:this.parameters.box.height))%this.options.snapToGrid]),t<0&&(s[0]-=this.options.snapToGrid),e<0&&(s[1]-=this.options.snapToGrid),t-=Math.abs(s[0])r.maxX&&(t=r.maxX-s),void 0!==r.minY&&n+er.maxY&&(e=r.maxY-n),[t,e]},t.prototype.checkAspectRatio=function(t,e){if(!this.options.saveAspectRatio)return t;var i=t.slice(),a=this.parameters.box.width/this.parameters.box.height,s=this.parameters.box.width+t[0],n=this.parameters.box.height-t[1],r=s/n;return ra&&(i[0]=this.parameters.box.width-n*a,e&&(i[0]=-i[0])),i},SVG.extend(SVG.Element,{resize:function(e){return(this.remember("_resizeHandler")||new t(this)).init(e||{}),this}}),SVG.Element.prototype.resize.defaults={snapToAngle:.1,snapToGrid:1,constraint:{},saveAspectRatio:!1}}).call(this)}();return function(t,e){void 0===e&&(e={});var i=e.insertAt;if(t&&"undefined"!=typeof document){var a=document.head||document.getElementsByTagName("head")[0],s=document.createElement("style");s.type="text/css","top"===i&&a.firstChild?a.insertBefore(s,a.firstChild):a.appendChild(s),s.styleSheet?s.styleSheet.cssText=t:s.appendChild(document.createTextNode(t))}}('.apexcharts-canvas {\n position: relative;\n user-select: none;\n /* cannot give overflow: hidden as it will crop tooltips which overflow outside chart area */\n}\n\n/* scrollbar is not visible by default for legend, hence forcing the visibility */\n.apexcharts-canvas ::-webkit-scrollbar {\n -webkit-appearance: none;\n width: 6px;\n}\n.apexcharts-canvas ::-webkit-scrollbar-thumb {\n border-radius: 4px;\n background-color: rgba(0,0,0,.5);\n box-shadow: 0 0 1px rgba(255,255,255,.5);\n -webkit-box-shadow: 0 0 1px rgba(255,255,255,.5);\n}\n.apexcharts-canvas.dark {\n background: #343F57;\n}\n\n.apexcharts-inner {\n position: relative;\n}\n\n.legend-mouseover-inactive {\n transition: 0.15s ease all;\n opacity: 0.20;\n}\n\n.apexcharts-series-collapsed {\n opacity: 0;\n}\n\n.apexcharts-gridline, .apexcharts-text {\n pointer-events: none;\n}\n\n.apexcharts-tooltip {\n border-radius: 5px;\n box-shadow: 2px 2px 6px -4px #999;\n cursor: default;\n font-size: 14px;\n left: 62px;\n opacity: 0;\n pointer-events: none;\n position: absolute;\n top: 20px;\n overflow: hidden;\n white-space: nowrap;\n z-index: 12;\n transition: 0.15s ease all;\n}\n.apexcharts-tooltip.light {\n border: 1px solid #e3e3e3;\n background: rgba(255, 255, 255, 0.96);\n}\n.apexcharts-tooltip.dark {\n color: #fff;\n background: rgba(30,30,30, 0.8);\n}\n.apexcharts-tooltip * {\n font-family: inherit;\n}\n\n.apexcharts-tooltip .apexcharts-marker,\n.apexcharts-area-series .apexcharts-area,\n.apexcharts-line {\n pointer-events: none;\n}\n\n.apexcharts-tooltip.active {\n opacity: 1;\n transition: 0.15s ease all;\n}\n\n.apexcharts-tooltip-title {\n padding: 6px;\n font-size: 15px;\n margin-bottom: 4px;\n}\n.apexcharts-tooltip.light .apexcharts-tooltip-title {\n background: #ECEFF1;\n border-bottom: 1px solid #ddd;\n}\n.apexcharts-tooltip.dark .apexcharts-tooltip-title {\n background: rgba(0, 0, 0, 0.7);\n border-bottom: 1px solid #333;\n}\n\n.apexcharts-tooltip-text-value,\n.apexcharts-tooltip-text-z-value {\n display: inline-block;\n font-weight: 600;\n margin-left: 5px;\n}\n\n.apexcharts-tooltip-text-z-label:empty,\n.apexcharts-tooltip-text-z-value:empty {\n display: none;\n}\n\n.apexcharts-tooltip-text-value,\n.apexcharts-tooltip-text-z-value {\n font-weight: 600;\n}\n\n.apexcharts-tooltip-marker {\n width: 12px;\n height: 12px;\n position: relative;\n top: 0px;\n margin-right: 10px;\n border-radius: 50%;\n}\n\n.apexcharts-tooltip-series-group {\n padding: 0 10px;\n display: none;\n text-align: left;\n justify-content: left;\n align-items: center;\n}\n\n.apexcharts-tooltip-series-group.active .apexcharts-tooltip-marker {\n opacity: 1;\n}\n.apexcharts-tooltip-series-group.active, .apexcharts-tooltip-series-group:last-child {\n padding-bottom: 4px;\n}\n.apexcharts-tooltip-series-group-hidden {\n opacity: 0;\n height: 0;\n line-height: 0;\n padding: 0 !important;\n}\n.apexcharts-tooltip-y-group {\n padding: 6px 0 5px;\n}\n.apexcharts-tooltip-candlestick {\n padding: 4px 8px;\n}\n.apexcharts-tooltip-candlestick > div {\n margin: 4px 0;\n}\n.apexcharts-tooltip-candlestick span.value {\n font-weight: bold;\n}\n\n.apexcharts-tooltip-rangebar {\n padding: 5px 8px;\n}\n\n.apexcharts-tooltip-rangebar .category {\n font-weight: 600;\n color: #777;\n}\n\n.apexcharts-tooltip-rangebar .series-name {\n font-weight: bold;\n display: block;\n margin-bottom: 5px;\n}\n\n.apexcharts-xaxistooltip {\n opacity: 0;\n padding: 9px 10px;\n pointer-events: none;\n color: #373d3f;\n font-size: 13px;\n text-align: center;\n border-radius: 2px;\n position: absolute;\n z-index: 10;\n background: #ECEFF1;\n border: 1px solid #90A4AE;\n transition: 0.15s ease all;\n}\n\n.apexcharts-xaxistooltip.dark {\n background: rgba(0, 0, 0, 0.7);\n border: 1px solid rgba(0, 0, 0, 0.5);\n color: #fff;\n}\n\n.apexcharts-xaxistooltip:after, .apexcharts-xaxistooltip:before {\n left: 50%;\n border: solid transparent;\n content: " ";\n height: 0;\n width: 0;\n position: absolute;\n pointer-events: none;\n}\n\n.apexcharts-xaxistooltip:after {\n border-color: rgba(236, 239, 241, 0);\n border-width: 6px;\n margin-left: -6px;\n}\n.apexcharts-xaxistooltip:before {\n border-color: rgba(144, 164, 174, 0);\n border-width: 7px;\n margin-left: -7px;\n}\n\n.apexcharts-xaxistooltip-bottom:after, .apexcharts-xaxistooltip-bottom:before {\n bottom: 100%;\n}\n\n.apexcharts-xaxistooltip-top:after, .apexcharts-xaxistooltip-top:before {\n top: 100%;\n}\n\n.apexcharts-xaxistooltip-bottom:after {\n border-bottom-color: #ECEFF1;\n}\n.apexcharts-xaxistooltip-bottom:before {\n border-bottom-color: #90A4AE;\n}\n\n.apexcharts-xaxistooltip-bottom.dark:after {\n border-bottom-color: rgba(0, 0, 0, 0.5);\n}\n.apexcharts-xaxistooltip-bottom.dark:before {\n border-bottom-color: rgba(0, 0, 0, 0.5);\n}\n\n.apexcharts-xaxistooltip-top:after {\n border-top-color:#ECEFF1\n}\n.apexcharts-xaxistooltip-top:before {\n border-top-color: #90A4AE;\n}\n.apexcharts-xaxistooltip-top.dark:after {\n border-top-color:rgba(0, 0, 0, 0.5);\n}\n.apexcharts-xaxistooltip-top.dark:before {\n border-top-color: rgba(0, 0, 0, 0.5);\n}\n\n\n.apexcharts-xaxistooltip.active {\n opacity: 1;\n transition: 0.15s ease all;\n}\n\n.apexcharts-yaxistooltip {\n opacity: 0;\n padding: 4px 10px;\n pointer-events: none;\n color: #373d3f;\n font-size: 13px;\n text-align: center;\n border-radius: 2px;\n position: absolute;\n z-index: 10;\n background: #ECEFF1;\n border: 1px solid #90A4AE;\n}\n\n.apexcharts-yaxistooltip.dark {\n background: rgba(0, 0, 0, 0.7);\n border: 1px solid rgba(0, 0, 0, 0.5);\n color: #fff;\n}\n\n.apexcharts-yaxistooltip:after, .apexcharts-yaxistooltip:before {\n top: 50%;\n border: solid transparent;\n content: " ";\n height: 0;\n width: 0;\n position: absolute;\n pointer-events: none;\n}\n.apexcharts-yaxistooltip:after {\n border-color: rgba(236, 239, 241, 0);\n border-width: 6px;\n margin-top: -6px;\n}\n.apexcharts-yaxistooltip:before {\n border-color: rgba(144, 164, 174, 0);\n border-width: 7px;\n margin-top: -7px;\n}\n\n.apexcharts-yaxistooltip-left:after, .apexcharts-yaxistooltip-left:before {\n left: 100%;\n}\n\n.apexcharts-yaxistooltip-right:after, .apexcharts-yaxistooltip-right:before {\n right: 100%;\n}\n\n.apexcharts-yaxistooltip-left:after {\n border-left-color: #ECEFF1;\n}\n.apexcharts-yaxistooltip-left:before {\n border-left-color: #90A4AE;\n}\n.apexcharts-yaxistooltip-left.dark:after {\n border-left-color: rgba(0, 0, 0, 0.5);\n}\n.apexcharts-yaxistooltip-left.dark:before {\n border-left-color: rgba(0, 0, 0, 0.5);\n}\n\n.apexcharts-yaxistooltip-right:after {\n border-right-color: #ECEFF1;\n}\n.apexcharts-yaxistooltip-right:before {\n border-right-color: #90A4AE;\n}\n.apexcharts-yaxistooltip-right.dark:after {\n border-right-color: rgba(0, 0, 0, 0.5);\n}\n.apexcharts-yaxistooltip-right.dark:before {\n border-right-color: rgba(0, 0, 0, 0.5);\n}\n\n.apexcharts-yaxistooltip.active {\n opacity: 1;\n}\n.apexcharts-yaxistooltip-hidden {\n display: none;\n}\n\n.apexcharts-xcrosshairs, .apexcharts-ycrosshairs {\n pointer-events: none;\n opacity: 0;\n transition: 0.15s ease all;\n}\n\n.apexcharts-xcrosshairs.active, .apexcharts-ycrosshairs.active {\n opacity: 1;\n transition: 0.15s ease all;\n}\n\n.apexcharts-ycrosshairs-hidden {\n opacity: 0;\n}\n\n.apexcharts-zoom-rect {\n pointer-events: none;\n}\n.apexcharts-selection-rect {\n cursor: move;\n}\n\n.svg_select_points, .svg_select_points_rot {\n opacity: 0;\n visibility: hidden;\n}\n.svg_select_points_l, .svg_select_points_r {\n cursor: ew-resize;\n opacity: 1;\n visibility: visible;\n fill: #888;\n}\n.apexcharts-canvas.zoomable .hovering-zoom {\n cursor: crosshair\n}\n.apexcharts-canvas.zoomable .hovering-pan {\n cursor: move\n}\n\n.apexcharts-xaxis,\n.apexcharts-yaxis {\n pointer-events: none;\n}\n\n.apexcharts-zoom-icon,\n.apexcharts-zoom-in-icon,\n.apexcharts-zoom-out-icon,\n.apexcharts-reset-zoom-icon,\n.apexcharts-pan-icon,\n.apexcharts-selection-icon,\n.apexcharts-menu-icon,\n.apexcharts-toolbar-custom-icon {\n cursor: pointer;\n width: 20px;\n height: 20px;\n line-height: 24px;\n color: #6E8192;\n text-align: center;\n}\n\n\n.apexcharts-zoom-icon svg,\n.apexcharts-zoom-in-icon svg,\n.apexcharts-zoom-out-icon svg,\n.apexcharts-reset-zoom-icon svg,\n.apexcharts-menu-icon svg {\n fill: #6E8192;\n}\n.apexcharts-selection-icon svg {\n fill: #444;\n transform: scale(0.76)\n}\n\n.dark .apexcharts-zoom-icon svg,\n.dark .apexcharts-zoom-in-icon svg,\n.dark .apexcharts-zoom-out-icon svg,\n.dark .apexcharts-reset-zoom-icon svg,\n.dark .apexcharts-pan-icon svg,\n.dark .apexcharts-selection-icon svg,\n.dark .apexcharts-menu-icon svg,\n.dark .apexcharts-toolbar-custom-icon svg{\n fill: #f3f4f5;\n}\n\n.apexcharts-canvas .apexcharts-zoom-icon.selected svg,\n.apexcharts-canvas .apexcharts-selection-icon.selected svg,\n.apexcharts-canvas .apexcharts-reset-zoom-icon.selected svg {\n fill: #008FFB;\n}\n.light .apexcharts-selection-icon:not(.selected):hover svg,\n.light .apexcharts-zoom-icon:not(.selected):hover svg,\n.light .apexcharts-zoom-in-icon:hover svg,\n.light .apexcharts-zoom-out-icon:hover svg,\n.light .apexcharts-reset-zoom-icon:hover svg,\n.light .apexcharts-menu-icon:hover svg {\n fill: #333;\n}\n\n.apexcharts-selection-icon, .apexcharts-menu-icon {\n position: relative;\n}\n.apexcharts-reset-zoom-icon {\n margin-left: 5px;\n}\n.apexcharts-zoom-icon, .apexcharts-reset-zoom-icon, .apexcharts-menu-icon {\n transform: scale(0.85);\n}\n\n.apexcharts-zoom-in-icon, .apexcharts-zoom-out-icon {\n transform: scale(0.7)\n}\n\n.apexcharts-zoom-out-icon {\n margin-right: 3px;\n}\n\n.apexcharts-pan-icon {\n transform: scale(0.62);\n position: relative;\n left: 1px;\n top: 0px;\n}\n.apexcharts-pan-icon svg {\n fill: #fff;\n stroke: #6E8192;\n stroke-width: 2;\n}\n.apexcharts-pan-icon.selected svg {\n stroke: #008FFB;\n}\n.apexcharts-pan-icon:not(.selected):hover svg {\n stroke: #333;\n}\n\n.apexcharts-toolbar {\n position: absolute;\n z-index: 11;\n top: 0px;\n right: 3px;\n max-width: 176px;\n text-align: right;\n border-radius: 3px;\n padding: 0px 6px 2px 6px;\n display: flex;\n justify-content: space-between;\n align-items: center;\n}\n\n.apexcharts-toolbar svg {\n pointer-events: none;\n}\n\n.apexcharts-menu {\n background: #fff;\n position: absolute;\n top: 100%;\n border: 1px solid #ddd;\n border-radius: 3px;\n padding: 3px;\n right: 10px;\n opacity: 0;\n min-width: 110px;\n transition: 0.15s ease all;\n pointer-events: none;\n}\n\n.apexcharts-menu.open {\n opacity: 1;\n pointer-events: all;\n transition: 0.15s ease all;\n}\n\n.apexcharts-menu-item {\n padding: 6px 7px;\n font-size: 12px;\n cursor: pointer;\n}\n.light .apexcharts-menu-item:hover {\n background: #eee;\n}\n.dark .apexcharts-menu {\n background: rgba(0, 0, 0, 0.7);\n color: #fff;\n}\n\n@media screen and (min-width: 768px) {\n .apexcharts-toolbar {\n /*opacity: 0;*/\n }\n\n .apexcharts-canvas:hover .apexcharts-toolbar {\n opacity: 1;\n }\n}\n\n.apexcharts-datalabel.hidden {\n opacity: 0;\n}\n\n.apexcharts-pie-label,\n.apexcharts-datalabel, .apexcharts-datalabel-label, .apexcharts-datalabel-value {\n cursor: default;\n pointer-events: none;\n}\n\n.apexcharts-pie-label-delay {\n opacity: 0;\n animation-name: opaque;\n animation-duration: 0.3s;\n animation-fill-mode: forwards;\n animation-timing-function: ease;\n}\n\n.apexcharts-canvas .hidden {\n opacity: 0;\n}\n\n.apexcharts-hide .apexcharts-series-points {\n opacity: 0;\n}\n\n.apexcharts-area-series .apexcharts-series-markers .apexcharts-marker.no-pointer-events,\n.apexcharts-line-series .apexcharts-series-markers .apexcharts-marker.no-pointer-events, .apexcharts-radar-series path, .apexcharts-radar-series polygon {\n pointer-events: none;\n}\n\n/* markers */\n\n.apexcharts-marker {\n transition: 0.15s ease all;\n}\n\n@keyframes opaque {\n 0% {\n opacity: 0;\n }\n 100% {\n opacity: 1;\n }\n}\n\n/* Resize generated styles */\n@keyframes resizeanim {\n from {\n opacity: 0;\n }\n to {\n opacity: 0;\n }\n}\n\n.resize-triggers {\n animation: 1ms resizeanim;\n visibility: hidden;\n opacity: 0;\n}\n\n.resize-triggers, .resize-triggers > div, .contract-trigger:before {\n content: " ";\n display: block;\n position: absolute;\n top: 0;\n left: 0;\n height: 100%;\n width: 100%;\n overflow: hidden;\n}\n\n.resize-triggers > div {\n background: #eee;\n overflow: auto;\n}\n\n.contract-trigger:before {\n width: 200%;\n height: 200%;\n}\n'),"document"in self&&("classList"in document.createElement("_")&&(!document.createElementNS||"classList"in document.createElementNS("http://www.w3.org/2000/svg","g"))||function(t){if("Element"in t){var e=t.Element.prototype,i=Object,a=String.prototype.trim||function(){return this.replace(/^\s+|\s+$/g,"")},s=Array.prototype.indexOf||function(t){for(var e=0,i=this.length;e
    ',i.appendChild(i.__resizeTriggers__),t(i),i.addEventListener("scroll",e,!0),o&&i.__resizeTriggers__.addEventListener(o,function(e){"resizeanim"==e.animationName&&t(i)})),i.__resizeListeners__.push(a)},window.removeResizeListener=function(t,i){t&&(t.__resizeListeners__.splice(t.__resizeListeners__.indexOf(i),1),t.__resizeListeners__.length||(t.removeEventListener("scroll",e),t.__resizeTriggers__=!t.removeChild(t.__resizeTriggers__)))}}(),window.Apex={},function(){function i(t,a){e(this,i),this.opts=a,this.ctx=this,this.w=new S(a).init(),this.el=t,this.w.globals.cuid=u.randomId(),this.w.globals.chartID=this.w.config.chart.id?this.w.config.chart.id:this.w.globals.cuid,this.eventList=["mousedown","mousemove","touchstart","touchmove","mouseup","touchend"],this.initModules(),this.create=u.bind(this.create,this),this.documentEvent=u.bind(this.documentEvent,this),this.windowResizeHandler=this.windowResize.bind(this)}return a(i,[{key:"render",value:function(){var t=this;return new Q(function(e,i){if(null!==t.el){void 0===Apex._chartInstances&&(Apex._chartInstances=[]),t.w.config.chart.id&&Apex._chartInstances.push({id:t.w.globals.chartID,group:t.w.config.chart.group,chart:t}),t.setLocale(t.w.config.chart.defaultLocale);var a=t.w.config.chart.events.beforeMount;"function"==typeof a&&a(t,t.w),t.fireEvent("beforeMount",[t,t.w]),window.addEventListener("resize",t.windowResizeHandler),window.addResizeListener(t.el.parentNode,t.parentResizeCallback.bind(t));var s=t.create(t.w.config.series,{});if(!s)return e(t);t.mount(s).then(function(){e(s),"function"==typeof t.w.config.chart.events.mounted&&t.w.config.chart.events.mounted(t,t.w),t.fireEvent("mounted",[t,t.w])}).catch(function(t){i(t)})}else i(new Error("Element not found"))})}},{key:"initModules",value:function(){this.animations=new f(this),this.core=new Z(this.el,this),this.grid=new lt(this),this.coreUtils=new w(this),this.config=new k({}),this.crosshairs=new I(this),this.options=new b,this.responsive=new ht(this),this.series=new B(this),this.theme=new ct(this),this.formatters=new O(this),this.titleSubtitle=new yt(this),this.legend=new V(this),this.toolbar=new mt(this),this.dimensions=new W(this),this.zoomPanSelection=new vt(this),this.w.globals.tooltip=new bt(this)}},{key:"addEventListener",value:function(t,e){var i=this.w;i.globals.events.hasOwnProperty(t)?i.globals.events[t].push(e):i.globals.events[t]=[e]}},{key:"removeEventListener",value:function(t,e){var i=this.w;if(i.globals.events.hasOwnProperty(t)){var a=i.globals.events[t].indexOf(e);-1!==a&&i.globals.events[t].splice(a,1)}}},{key:"fireEvent",value:function(t,e){var i=this.w;if(i.globals.events.hasOwnProperty(t)){e&&e.length||(e=[]);for(var a=i.globals.events[t],s=a.length,n=0;n0&&void 0!==arguments[0]?arguments[0]:null,e=this,i=e.w;return new Q(function(a,s){if(null===e.el)return s(new Error("Not enough data to display or target element not found"));if((null===t||i.globals.allSeriesCollapsed)&&e.series.handleNoData(),e.annotations=new m(e),e.core.drawAxis(i.config.chart.type,t.xyRatios),e.grid=new lt(e),"back"===i.config.grid.position&&e.grid.drawGrid(),"back"===i.config.annotations.position&&e.annotations.drawAnnotations(),t.elGraph instanceof Array)for(var n=0;n0&&i.globals.memory.methodsToExec.forEach(function(t){t.method(t.params,!1,t.context)}),i.globals.axisCharts||i.globals.noData||e.core.resizeNonAxisCharts(),a(e)})}},{key:"clearPreviousPaths",value:function(){var t=this.w;t.globals.previousPaths=[],t.globals.allSeriesCollapsed=!1,t.globals.collapsedSeries=[],t.globals.collapsedSeriesIndices=[]}},{key:"updateOptions",value:function(t){var e=arguments.length>1&&void 0!==arguments[1]&&arguments[1],i=!(arguments.length>2&&void 0!==arguments[2])||arguments[2],a=!(arguments.length>3&&void 0!==arguments[3])||arguments[3],s=!(arguments.length>4&&void 0!==arguments[4])||arguments[4],n=this.w;return t.series&&(this.resetSeries(!1),t.series.length&&t.series[0].data&&(t.series=t.series.map(function(t,e){return r({},n.config.series[e],{name:t.name?t.name:n.config.series[e]&&n.config.series[e].name,type:t.type?t.type:n.config.series[e]&&n.config.series[e].type,data:t.data?t.data:n.config.series[e]&&n.config.series[e].data})})),this.revertDefaultAxisMinMax()),t.xaxis&&((t.xaxis.min||t.xaxis.max)&&this.forceXAxisUpdate(t),t.xaxis.categories&&t.xaxis.categories.length&&n.config.xaxis.convertedCatToNumeric&&(t=y.convertCatToNumeric(t))),n.globals.collapsedSeriesIndices.length>0&&this.clearPreviousPaths(),t.theme&&(t=this.theme.updateThemeOptions(t)),this._updateOptions(t,e,i,a,s)}},{key:"_updateOptions",value:function(e){var i=arguments.length>1&&void 0!==arguments[1]&&arguments[1],a=!(arguments.length>2&&void 0!==arguments[2])||arguments[2],s=!(arguments.length>3&&void 0!==arguments[3])||arguments[3],n=arguments.length>4&&void 0!==arguments[4]&&arguments[4],r=[this];s&&(r=this.getSyncedCharts()),this.w.globals.isExecCalled&&(r=[this],this.w.globals.isExecCalled=!1),r.forEach(function(s){var r=s.w;return r.globals.shouldAnimate=a,i||(r.globals.resized=!0,r.globals.dataChanged=!0,a&&s.series.getPreviousPaths()),e&&"object"===t(e)&&(s.config=new k(e),e=w.extendArrayProps(s.config,e),r.config=u.extend(r.config,e),n&&(r.globals.initialConfig=u.extend({},r.config),r.globals.initialSeries=JSON.parse(JSON.stringify(r.config.series)))),s.update(e)})}},{key:"updateSeries",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:[],e=!(arguments.length>1&&void 0!==arguments[1])||arguments[1],i=!(arguments.length>2&&void 0!==arguments[2])||arguments[2];return this.resetSeries(!1),this.revertDefaultAxisMinMax(),this._updateSeries(t,e,i)}},{key:"appendSeries",value:function(t){var e=!(arguments.length>1&&void 0!==arguments[1])||arguments[1],i=!(arguments.length>2&&void 0!==arguments[2])||arguments[2],a=this.w.config.series.slice();return a.push(t),this.resetSeries(!1),this.revertDefaultAxisMinMax(),this._updateSeries(a,e,i)}},{key:"_updateSeries",value:function(t,e){var i,a=arguments.length>2&&void 0!==arguments[2]&&arguments[2],s=this.w;return this.w.globals.shouldAnimate=e,s.globals.dataChanged=!0,s.globals.allSeriesCollapsed&&(s.globals.allSeriesCollapsed=!1),e&&this.series.getPreviousPaths(),s.globals.axisCharts?(0===(i=t.map(function(t,e){return r({},s.config.series[e],{name:t.name?t.name:s.config.series[e]&&s.config.series[e].name,type:t.type?t.type:s.config.series[e]&&s.config.series[e].type,data:t.data?t.data:s.config.series[e]&&s.config.series[e].data})})).length&&(i=[{data:[]}]),s.config.series=i):s.config.series=t.slice(),a&&(s.globals.initialConfig.series=JSON.parse(JSON.stringify(s.config.series)),s.globals.initialSeries=JSON.parse(JSON.stringify(s.config.series))),this.update()}},{key:"getSyncedCharts",value:function(){var t=this.getGroupedCharts(),e=[this];return t.length&&(e=[],t.forEach(function(t){e.push(t)})),e}},{key:"getGroupedCharts",value:function(){var t=this;return Apex._chartInstances.filter(function(t){if(t.group)return!0}).map(function(e){return t.w.config.chart.group===e.group?e.chart:t})}},{key:"appendData",value:function(t){var e=!(arguments.length>1&&void 0!==arguments[1])||arguments[1],i=this;i.w.globals.dataChanged=!0,i.series.getPreviousPaths();for(var a=i.w.config.series.slice(),s=0;s0&&void 0!==arguments[0])||arguments[0];this.series.resetSeries(t)}},{key:"setupEventHandlers",value:function(){var t=this,e=this.w,i=this,a=e.globals.dom.baseEl.querySelector(e.globals.chartClass);this.eventListHandlers=[],this.eventList.forEach(function(t){a.addEventListener(t,function(t){var a=Object.assign({},e,{seriesIndex:e.globals.capturedSeriesIndex,dataPointIndex:e.globals.capturedDataPointIndex});"mousemove"===t.type||"touchmove"===t.type?"function"==typeof e.config.chart.events.mouseMove&&e.config.chart.events.mouseMove(t,i,a):("mouseup"===t.type&&1===t.which||"touchend"===t.type)&&("function"==typeof e.config.chart.events.click&&e.config.chart.events.click(t,i,a),i.fireEvent("click",[t,i,a]))},{capture:!1,passive:!0})}),this.eventList.forEach(function(e){document.addEventListener(e,t.documentEvent)}),this.core.setupBrushHandler()}},{key:"documentEvent",value:function(t){var e=this.w;e.globals.clientX="touchmove"===t.type?t.touches[0].clientX:t.clientX,e.globals.clientY="touchmove"===t.type?t.touches[0].clientY:t.clientY}},{key:"addXaxisAnnotation",value:function(t){var e=!(arguments.length>1&&void 0!==arguments[1])||arguments[1],i=arguments.length>2&&void 0!==arguments[2]?arguments[2]:void 0,a=this;i&&(a=i),a.annotations.addXaxisAnnotationExternal(t,e,a)}},{key:"addYaxisAnnotation",value:function(t){var e=!(arguments.length>1&&void 0!==arguments[1])||arguments[1],i=arguments.length>2&&void 0!==arguments[2]?arguments[2]:void 0,a=this;i&&(a=i),a.annotations.addYaxisAnnotationExternal(t,e,a)}},{key:"addPointAnnotation",value:function(t){var e=!(arguments.length>1&&void 0!==arguments[1])||arguments[1],i=arguments.length>2&&void 0!==arguments[2]?arguments[2]:void 0,a=this;i&&(a=i),a.annotations.addPointAnnotationExternal(t,e,a)}},{key:"clearAnnotations",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:void 0,e=this;t&&(e=t),e.annotations.clearAnnotations(e)}},{key:"removeAnnotation",value:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:void 0,i=this;e&&(i=e),i.annotations.removeAnnotation(i,t)}},{key:"addText",value:function(t){var e=!(arguments.length>1&&void 0!==arguments[1])||arguments[1],i=arguments.length>2&&void 0!==arguments[2]?arguments[2]:void 0,a=this;i&&(a=i),a.annotations.addText(t,e,a)}},{key:"getChartArea",value:function(){return this.w.globals.dom.baseEl.querySelector(".apexcharts-inner")}},{key:"getSeriesTotalXRange",value:function(t,e){return this.coreUtils.getSeriesTotalsXRange(t,e)}},{key:"getHighestValueInSeries",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:0;return new U(this.ctx).getMinYMaxY(t).highestY}},{key:"getLowestValueInSeries",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:0;return new U(this.ctx).getMinYMaxY(t).lowestY}},{key:"getSeriesTotal",value:function(){return this.w.globals.seriesTotals}},{key:"setLocale",value:function(t){this.setCurrentLocaleValues(t)}},{key:"toggleDataPointSelection",value:function(t,e){var i=this.w,a=null;i.globals.axisCharts?a=i.globals.dom.Paper.select(".apexcharts-series[data\\:realIndex='".concat(t,"'] path[j='").concat(e,"'], .apexcharts-series[data\\:realIndex='").concat(t,"'] circle[j='").concat(e,"'], .apexcharts-series[data\\:realIndex='").concat(t,"'] rect[j='").concat(e,"']")).members[0]:(a=i.globals.dom.Paper.select(".apexcharts-series[data\\:realIndex='".concat(t,"']")).members[0],("pie"===i.config.chart.type||"donut"===i.config.chart.type)&&new Y(this.ctx).pieClicked(t));a?new p(this.ctx).pathMouseDown(a,null):console.warn("toggleDataPointSelection: Element not found");return a.node?a.node:null}},{key:"setCurrentLocaleValues",value:function(t){var e=this.w.config.chart.locales;window.Apex.chart&&window.Apex.chart.locales&&window.Apex.chart.locales.length>0&&(e=this.w.config.chart.locales.concat(window.Apex.chart.locales));var i=e.filter(function(e){return e.name===t})[0];if(!i)throw new Error("Wrong locale name provided. Please make sure you set the correct locale name in options");var a=u.extend(x,i);this.w.globals.locale=a.options}},{key:"dataURI",value:function(){return new ot(this.ctx).dataURI()}},{key:"paper",value:function(){return this.w.globals.dom.Paper}},{key:"parentResizeCallback",value:function(){this.w.globals.animationEnded&&this.windowResize()}},{key:"windowResize",value:function(){var t=this;clearTimeout(this.w.globals.resizeTimer),this.w.globals.resizeTimer=window.setTimeout(function(){t.w.globals.resized=!0,t.w.globals.dataChanged=!1,t.update()},150)}}],[{key:"initOnLoad",value:function(){for(var t=document.querySelectorAll("[data-apexcharts]"),e=0;e2?a-2:0),n=2;n>>0,s=0;sDe(e)?(r=e+1,a=o-De(e)):(r=e,a=o),{year:r,dayOfYear:a}}function Ie(e,t,n){var s,i,r=Ve(e.year(),t,n),a=Math.floor((e.dayOfYear()-r-1)/7)+1;return a<1?s=a+Ae(i=e.year()-1,t,n):a>Ae(e.year(),t,n)?(s=a-Ae(e.year(),t,n),i=e.year()+1):(i=e.year(),s=a),{week:s,year:i}}function Ae(e,t,n){var s=Ve(e,t,n),i=Ve(e+1,t,n);return(De(e)-s+i)/7}I("w",["ww",2],"wo","week"),I("W",["WW",2],"Wo","isoWeek"),H("week","w"),H("isoWeek","W"),L("week",5),L("isoWeek",5),ue("w",B),ue("ww",B,z),ue("W",B),ue("WW",B,z),fe(["w","ww","W","WW"],function(e,t,n,s){t[s.substr(0,1)]=k(e)});I("d",0,"do","day"),I("dd",0,0,function(e){return this.localeData().weekdaysMin(this,e)}),I("ddd",0,0,function(e){return this.localeData().weekdaysShort(this,e)}),I("dddd",0,0,function(e){return this.localeData().weekdays(this,e)}),I("e",0,0,"weekday"),I("E",0,0,"isoWeekday"),H("day","d"),H("weekday","e"),H("isoWeekday","E"),L("day",11),L("weekday",11),L("isoWeekday",11),ue("d",B),ue("e",B),ue("E",B),ue("dd",function(e,t){return t.weekdaysMinRegex(e)}),ue("ddd",function(e,t){return t.weekdaysShortRegex(e)}),ue("dddd",function(e,t){return t.weekdaysRegex(e)}),fe(["dd","ddd","dddd"],function(e,t,n,s){var i=n._locale.weekdaysParse(e,s,n._strict);null!=i?t.d=i:g(n).invalidWeekday=e}),fe(["d","e","E"],function(e,t,n,s){t[s]=k(e)});var je="Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday".split("_");var Ze="Sun_Mon_Tue_Wed_Thu_Fri_Sat".split("_");var ze="Su_Mo_Tu_We_Th_Fr_Sa".split("_");var $e=ae;var qe=ae;var Je=ae;function Be(){function e(e,t){return t.length-e.length}var t,n,s,i,r,a=[],o=[],u=[],l=[];for(t=0;t<7;t++)n=y([2e3,1]).day(t),s=this.weekdaysMin(n,""),i=this.weekdaysShort(n,""),r=this.weekdays(n,""),a.push(s),o.push(i),u.push(r),l.push(s),l.push(i),l.push(r);for(a.sort(e),o.sort(e),u.sort(e),l.sort(e),t=0;t<7;t++)o[t]=de(o[t]),u[t]=de(u[t]),l[t]=de(l[t]);this._weekdaysRegex=new RegExp("^("+l.join("|")+")","i"),this._weekdaysShortRegex=this._weekdaysRegex,this._weekdaysMinRegex=this._weekdaysRegex,this._weekdaysStrictRegex=new RegExp("^("+u.join("|")+")","i"),this._weekdaysShortStrictRegex=new RegExp("^("+o.join("|")+")","i"),this._weekdaysMinStrictRegex=new RegExp("^("+a.join("|")+")","i")}function Qe(){return this.hours()%12||12}function Xe(e,t){I(e,0,0,function(){return this.localeData().meridiem(this.hours(),this.minutes(),t)})}function Ke(e,t){return t._meridiemParse}I("H",["HH",2],0,"hour"),I("h",["hh",2],0,Qe),I("k",["kk",2],0,function(){return this.hours()||24}),I("hmm",0,0,function(){return""+Qe.apply(this)+U(this.minutes(),2)}),I("hmmss",0,0,function(){return""+Qe.apply(this)+U(this.minutes(),2)+U(this.seconds(),2)}),I("Hmm",0,0,function(){return""+this.hours()+U(this.minutes(),2)}),I("Hmmss",0,0,function(){return""+this.hours()+U(this.minutes(),2)+U(this.seconds(),2)}),Xe("a",!0),Xe("A",!1),H("hour","h"),L("hour",13),ue("a",Ke),ue("A",Ke),ue("H",B),ue("h",B),ue("k",B),ue("HH",B,z),ue("hh",B,z),ue("kk",B,z),ue("hmm",Q),ue("hmmss",X),ue("Hmm",Q),ue("Hmmss",X),ce(["H","HH"],ge),ce(["k","kk"],function(e,t,n){var s=k(e);t[ge]=24===s?0:s}),ce(["a","A"],function(e,t,n){n._isPm=n._locale.isPM(e),n._meridiem=e}),ce(["h","hh"],function(e,t,n){t[ge]=k(e),g(n).bigHour=!0}),ce("hmm",function(e,t,n){var s=e.length-2;t[ge]=k(e.substr(0,s)),t[pe]=k(e.substr(s)),g(n).bigHour=!0}),ce("hmmss",function(e,t,n){var s=e.length-4,i=e.length-2;t[ge]=k(e.substr(0,s)),t[pe]=k(e.substr(s,2)),t[ve]=k(e.substr(i)),g(n).bigHour=!0}),ce("Hmm",function(e,t,n){var s=e.length-2;t[ge]=k(e.substr(0,s)),t[pe]=k(e.substr(s))}),ce("Hmmss",function(e,t,n){var s=e.length-4,i=e.length-2;t[ge]=k(e.substr(0,s)),t[pe]=k(e.substr(s,2)),t[ve]=k(e.substr(i))});var et,tt=Te("Hours",!0),nt={calendar:{sameDay:"[Today at] LT",nextDay:"[Tomorrow at] LT",nextWeek:"dddd [at] LT",lastDay:"[Yesterday at] LT",lastWeek:"[Last] dddd [at] LT",sameElse:"L"},longDateFormat:{LTS:"h:mm:ss A",LT:"h:mm A",L:"MM/DD/YYYY",LL:"MMMM D, YYYY",LLL:"MMMM D, YYYY h:mm A",LLLL:"dddd, MMMM D, YYYY h:mm A"},invalidDate:"Invalid date",ordinal:"%d",dayOfMonthOrdinalParse:/\d{1,2}/,relativeTime:{future:"in %s",past:"%s ago",s:"a few seconds",ss:"%d seconds",m:"a minute",mm:"%d minutes",h:"an hour",hh:"%d hours",d:"a day",dd:"%d days",M:"a month",MM:"%d months",y:"a year",yy:"%d years"},months:He,monthsShort:Re,week:{dow:0,doy:6},weekdays:je,weekdaysMin:ze,weekdaysShort:Ze,meridiemParse:/[ap]\.?m?\.?/i},st={},it={};function rt(e){return e?e.toLowerCase().replace("_","-"):e}function at(e){var t=null;if(!st[e]&&"undefined"!=typeof module&&module&&module.exports)try{t=et._abbr,require("./locale/"+e),ot(t)}catch(e){}return st[e]}function ot(e,t){var n;return e&&((n=l(t)?lt(e):ut(e,t))?et=n:"undefined"!=typeof console&&console.warn&&console.warn("Locale "+e+" not found. Did you forget to load it?")),et._abbr}function ut(e,t){if(null!==t){var n,s=nt;if(t.abbr=e,null!=st[e])T("defineLocaleOverride","use moment.updateLocale(localeName, config) to change an existing locale. moment.defineLocale(localeName, config) should only be used for creating a new locale See http://momentjs.com/guides/#/warnings/define-locale/ for more info."),s=st[e]._config;else if(null!=t.parentLocale)if(null!=st[t.parentLocale])s=st[t.parentLocale]._config;else{if(null==(n=at(t.parentLocale)))return it[t.parentLocale]||(it[t.parentLocale]=[]),it[t.parentLocale].push({name:e,config:t}),null;s=n._config}return st[e]=new P(b(s,t)),it[e]&&it[e].forEach(function(e){ut(e.name,e.config)}),ot(e),st[e]}return delete st[e],null}function lt(e){var t;if(e&&e._locale&&e._locale._abbr&&(e=e._locale._abbr),!e)return et;if(!o(e)){if(t=at(e))return t;e=[e]}return function(e){for(var t,n,s,i,r=0;r=t&&a(i,n,!0)>=t-1)break;t--}r++}return et}(e)}function dt(e){var t,n=e._a;return n&&-2===g(e).overflow&&(t=n[_e]<0||11Pe(n[me],n[_e])?ye:n[ge]<0||24Ae(n,r,a)?g(e)._overflowWeeks=!0:null!=u?g(e)._overflowWeekday=!0:(o=Ee(n,s,i,r,a),e._a[me]=o.year,e._dayOfYear=o.dayOfYear)}(e),null!=e._dayOfYear&&(r=ht(e._a[me],s[me]),(e._dayOfYear>De(r)||0===e._dayOfYear)&&(g(e)._overflowDayOfYear=!0),n=Ge(r,0,e._dayOfYear),e._a[_e]=n.getUTCMonth(),e._a[ye]=n.getUTCDate()),t=0;t<3&&null==e._a[t];++t)e._a[t]=a[t]=s[t];for(;t<7;t++)e._a[t]=a[t]=null==e._a[t]?2===t?1:0:e._a[t];24===e._a[ge]&&0===e._a[pe]&&0===e._a[ve]&&0===e._a[we]&&(e._nextDay=!0,e._a[ge]=0),e._d=(e._useUTC?Ge:function(e,t,n,s,i,r,a){var o=new Date(e,t,n,s,i,r,a);return e<100&&0<=e&&isFinite(o.getFullYear())&&o.setFullYear(e),o}).apply(null,a),i=e._useUTC?e._d.getUTCDay():e._d.getDay(),null!=e._tzm&&e._d.setUTCMinutes(e._d.getUTCMinutes()-e._tzm),e._nextDay&&(e._a[ge]=24),e._w&&void 0!==e._w.d&&e._w.d!==i&&(g(e).weekdayMismatch=!0)}}var ft=/^\s*((?:[+-]\d{6}|\d{4})-(?:\d\d-\d\d|W\d\d-\d|W\d\d|\d\d\d|\d\d))(?:(T| )(\d\d(?::\d\d(?::\d\d(?:[.,]\d+)?)?)?)([\+\-]\d\d(?::?\d\d)?|\s*Z)?)?$/,mt=/^\s*((?:[+-]\d{6}|\d{4})(?:\d\d\d\d|W\d\d\d|W\d\d|\d\d\d|\d\d))(?:(T| )(\d\d(?:\d\d(?:\d\d(?:[.,]\d+)?)?)?)([\+\-]\d\d(?::?\d\d)?|\s*Z)?)?$/,_t=/Z|[+-]\d\d(?::?\d\d)?/,yt=[["YYYYYY-MM-DD",/[+-]\d{6}-\d\d-\d\d/],["YYYY-MM-DD",/\d{4}-\d\d-\d\d/],["GGGG-[W]WW-E",/\d{4}-W\d\d-\d/],["GGGG-[W]WW",/\d{4}-W\d\d/,!1],["YYYY-DDD",/\d{4}-\d{3}/],["YYYY-MM",/\d{4}-\d\d/,!1],["YYYYYYMMDD",/[+-]\d{10}/],["YYYYMMDD",/\d{8}/],["GGGG[W]WWE",/\d{4}W\d{3}/],["GGGG[W]WW",/\d{4}W\d{2}/,!1],["YYYYDDD",/\d{7}/]],gt=[["HH:mm:ss.SSSS",/\d\d:\d\d:\d\d\.\d+/],["HH:mm:ss,SSSS",/\d\d:\d\d:\d\d,\d+/],["HH:mm:ss",/\d\d:\d\d:\d\d/],["HH:mm",/\d\d:\d\d/],["HHmmss.SSSS",/\d\d\d\d\d\d\.\d+/],["HHmmss,SSSS",/\d\d\d\d\d\d,\d+/],["HHmmss",/\d\d\d\d\d\d/],["HHmm",/\d\d\d\d/],["HH",/\d\d/]],pt=/^\/?Date\((\-?\d+)/i;function vt(e){var t,n,s,i,r,a,o=e._i,u=ft.exec(o)||mt.exec(o);if(u){for(g(e).iso=!0,t=0,n=yt.length;tn.valueOf():n.valueOf()this.clone().month(0).utcOffset()||this.utcOffset()>this.clone().month(5).utcOffset()},ln.isLocal=function(){return!!this.isValid()&&!this._isUTC},ln.isUtcOffset=function(){return!!this.isValid()&&this._isUTC},ln.isUtc=Vt,ln.isUTC=Vt,ln.zoneAbbr=function(){return this._isUTC?"UTC":""},ln.zoneName=function(){return this._isUTC?"Coordinated Universal Time":""},ln.dates=n("dates accessor is deprecated. Use date instead.",nn),ln.months=n("months accessor is deprecated. Use month instead",Fe),ln.years=n("years accessor is deprecated. Use year instead",Oe),ln.zone=n("moment().zone is deprecated, use moment().utcOffset instead. http://momentjs.com/guides/#/warnings/zone/",function(e,t){return null!=e?("string"!=typeof e&&(e=-e),this.utcOffset(e,t),this):-this.utcOffset()}),ln.isDSTShifted=n("isDSTShifted is deprecated. See http://momentjs.com/guides/#/warnings/dst-shifted/ for more information",function(){if(!l(this._isDSTShifted))return this._isDSTShifted;var e={};if(w(e,this),(e=Yt(e))._a){var t=e._isUTC?y(e._a):Tt(e._a);this._isDSTShifted=this.isValid()&&0'; + + if (hasMeta) { + tooltipText += meta + '
    '; + } else { + // For Pie Charts also take the labels into account + // Could add support for more charts here as well! + if (chart instanceof Chartist.Pie) { + var label = next($point, 'ct-label'); + if (label.length > 0) { + tooltipText += text(label) + '
    '; + } + } + } + + if (value) { + if (options.currency) { + if (options.currencyFormatCallback != undefined) { + value = options.currencyFormatCallback(value, options); + } else { + value = options.currency + value.replace(/(\d)(?=(\d{3})+(?:\.\d+)?$)/g, '$1,'); + } + } + value = '' + value + ''; + tooltipText += value; + } + } + + if(tooltipText) { + $toolTip.innerHTML = tooltipText; + setPosition(event); + show($toolTip); + + // Remember height and width to avoid wrong position in IE + height = $toolTip.offsetHeight; + width = $toolTip.offsetWidth; + } + }); + + on('mouseout', null, function () { + hide($toolTip); + }); + + function setPosition(event) { + height = height || $toolTip.offsetHeight; + width = width || $toolTip.offsetWidth; + var offsetX = - width / 2 + options.tooltipOffset.x + var offsetY = - height + options.tooltipOffset.y; + var anchorX, anchorY; + + if (!options.appendToBody) { + var box = $chart.getBoundingClientRect(); + var left = event.pageX - box.left - window.pageXOffset ; + var top = event.pageY - box.top - window.pageYOffset ; + + if (true === options.anchorToPoint && event.target.x2 && event.target.y2) { + anchorX = parseInt(event.target.x2.baseVal.value); + anchorY = parseInt(event.target.y2.baseVal.value); + } + + $toolTip.style.top = (anchorY || top) + offsetY + 'px'; + $toolTip.style.left = (anchorX || left) + offsetX + 'px'; + } else { + $toolTip.style.top = event.pageY + offsetY + 'px'; + $toolTip.style.left = event.pageX + offsetX + 'px'; + } + } + } + }; + + function show(element) { + if(!hasClass(element, 'tooltip-show')) { + element.className = element.className + ' tooltip-show'; + } + } + + function hide(element) { + // var regex = new RegExp('tooltip-show' + '\\s*', 'gi'); + // element.className = element.className.replace(regex, '').trim(); + element.classList.remove('tooltip-show'); + } + + function hasClass(element, className) { + return (' ' + element.getAttribute('class') + ' ').indexOf(' ' + className + ' ') > -1; + } + + function next(element, className) { + do { + element = element.nextSibling; + } while (element && !hasClass(element, className)); + return element; + } + + function text(element) { + return element.innerText || element.textContent; + } + +} (window, document, Chartist)); diff --git a/public/admin/assets/js/chart/chartist/chartist.js b/public/admin/assets/js/chart/chartist/chartist.js new file mode 100644 index 0000000..322d8ad --- /dev/null +++ b/public/admin/assets/js/chart/chartist/chartist.js @@ -0,0 +1,4488 @@ +(function (root, factory) { + if (typeof define === 'function' && define.amd) { + // AMD. Register as an anonymous module unless amdModuleId is set + define('Chartist', [], function () { + return (root['Chartist'] = factory()); + }); + } else if (typeof module === 'object' && module.exports) { + // Node. Does not work with strict CommonJS, but + // only CommonJS-like environments that support module.exports, + // like Node. + module.exports = factory(); + } else { + root['Chartist'] = factory(); + } +}(this, function () { + +/* Chartist.js 0.11.0 + * Copyright © 2017 Gion Kunz + * Free to use under either the WTFPL license or the MIT license. + * https://raw.githubusercontent.com/gionkunz/chartist-js/master/LICENSE-WTFPL + * https://raw.githubusercontent.com/gionkunz/chartist-js/master/LICENSE-MIT + */ +/** + * The core module of Chartist that is mainly providing static functions and higher level functions for chart modules. + * + * @module Chartist.Core + */ +var Chartist = { + version: '0.11.0' +}; + +(function (window, document, Chartist) { + 'use strict'; + + /** + * This object contains all namespaces used within Chartist. + * + * @memberof Chartist.Core + * @type {{svg: string, xmlns: string, xhtml: string, xlink: string, ct: string}} + */ + Chartist.namespaces = { + svg: 'http://www.w3.org/2000/svg', + xmlns: 'http://www.w3.org/2000/xmlns/', + xhtml: 'http://www.w3.org/1999/xhtml', + xlink: 'http://www.w3.org/1999/xlink', + ct: 'http://gionkunz.github.com/chartist-js/ct' + }; + + /** + * Helps to simplify functional style code + * + * @memberof Chartist.Core + * @param {*} n This exact value will be returned by the noop function + * @return {*} The same value that was provided to the n parameter + */ + Chartist.noop = function (n) { + return n; + }; + + /** + * Generates a-z from a number 0 to 26 + * + * @memberof Chartist.Core + * @param {Number} n A number from 0 to 26 that will result in a letter a-z + * @return {String} A character from a-z based on the input number n + */ + Chartist.alphaNumerate = function (n) { + // Limit to a-z + return String.fromCharCode(97 + n % 26); + }; + + /** + * Simple recursive object extend + * + * @memberof Chartist.Core + * @param {Object} target Target object where the source will be merged into + * @param {Object...} sources This object (objects) will be merged into target and then target is returned + * @return {Object} An object that has the same reference as target but is extended and merged with the properties of source + */ + Chartist.extend = function (target) { + var i, source, sourceProp; + target = target || {}; + + for (i = 1; i < arguments.length; i++) { + source = arguments[i]; + for (var prop in source) { + sourceProp = source[prop]; + if (typeof sourceProp === 'object' && sourceProp !== null && !(sourceProp instanceof Array)) { + target[prop] = Chartist.extend(target[prop], sourceProp); + } else { + target[prop] = sourceProp; + } + } + } + + return target; + }; + + /** + * Replaces all occurrences of subStr in str with newSubStr and returns a new string. + * + * @memberof Chartist.Core + * @param {String} str + * @param {String} subStr + * @param {String} newSubStr + * @return {String} + */ + Chartist.replaceAll = function(str, subStr, newSubStr) { + return str.replace(new RegExp(subStr, 'g'), newSubStr); + }; + + /** + * Converts a number to a string with a unit. If a string is passed then this will be returned unmodified. + * + * @memberof Chartist.Core + * @param {Number} value + * @param {String} unit + * @return {String} Returns the passed number value with unit. + */ + Chartist.ensureUnit = function(value, unit) { + if(typeof value === 'number') { + value = value + unit; + } + + return value; + }; + + /** + * Converts a number or string to a quantity object. + * + * @memberof Chartist.Core + * @param {String|Number} input + * @return {Object} Returns an object containing the value as number and the unit as string. + */ + Chartist.quantity = function(input) { + if (typeof input === 'string') { + var match = (/^(\d+)\s*(.*)$/g).exec(input); + return { + value : +match[1], + unit: match[2] || undefined + }; + } + return { value: input }; + }; + + /** + * This is a wrapper around document.querySelector that will return the query if it's already of type Node + * + * @memberof Chartist.Core + * @param {String|Node} query The query to use for selecting a Node or a DOM node that will be returned directly + * @return {Node} + */ + Chartist.querySelector = function(query) { + return query instanceof Node ? query : document.querySelector(query); + }; + + /** + * Functional style helper to produce array with given length initialized with undefined values + * + * @memberof Chartist.Core + * @param length + * @return {Array} + */ + Chartist.times = function(length) { + return Array.apply(null, new Array(length)); + }; + + /** + * Sum helper to be used in reduce functions + * + * @memberof Chartist.Core + * @param previous + * @param current + * @return {*} + */ + Chartist.sum = function(previous, current) { + return previous + (current ? current : 0); + }; + + /** + * Multiply helper to be used in `Array.map` for multiplying each value of an array with a factor. + * + * @memberof Chartist.Core + * @param {Number} factor + * @returns {Function} Function that can be used in `Array.map` to multiply each value in an array + */ + Chartist.mapMultiply = function(factor) { + return function(num) { + return num * factor; + }; + }; + + /** + * Add helper to be used in `Array.map` for adding a addend to each value of an array. + * + * @memberof Chartist.Core + * @param {Number} addend + * @returns {Function} Function that can be used in `Array.map` to add a addend to each value in an array + */ + Chartist.mapAdd = function(addend) { + return function(num) { + return num + addend; + }; + }; + + /** + * Map for multi dimensional arrays where their nested arrays will be mapped in serial. The output array will have the length of the largest nested array. The callback function is called with variable arguments where each argument is the nested array value (or undefined if there are no more values). + * + * @memberof Chartist.Core + * @param arr + * @param cb + * @return {Array} + */ + Chartist.serialMap = function(arr, cb) { + var result = [], + length = Math.max.apply(null, arr.map(function(e) { + return e.length; + })); + + Chartist.times(length).forEach(function(e, index) { + var args = arr.map(function(e) { + return e[index]; + }); + + result[index] = cb.apply(null, args); + }); + + return result; + }; + + /** + * This helper function can be used to round values with certain precision level after decimal. This is used to prevent rounding errors near float point precision limit. + * + * @memberof Chartist.Core + * @param {Number} value The value that should be rounded with precision + * @param {Number} [digits] The number of digits after decimal used to do the rounding + * @returns {number} Rounded value + */ + Chartist.roundWithPrecision = function(value, digits) { + var precision = Math.pow(10, digits || Chartist.precision); + return Math.round(value * precision) / precision; + }; + + /** + * Precision level used internally in Chartist for rounding. If you require more decimal places you can increase this number. + * + * @memberof Chartist.Core + * @type {number} + */ + Chartist.precision = 8; + + /** + * A map with characters to escape for strings to be safely used as attribute values. + * + * @memberof Chartist.Core + * @type {Object} + */ + Chartist.escapingMap = { + '&': '&', + '<': '<', + '>': '>', + '"': '"', + '\'': ''' + }; + + /** + * This function serializes arbitrary data to a string. In case of data that can't be easily converted to a string, this function will create a wrapper object and serialize the data using JSON.stringify. The outcoming string will always be escaped using Chartist.escapingMap. + * If called with null or undefined the function will return immediately with null or undefined. + * + * @memberof Chartist.Core + * @param {Number|String|Object} data + * @return {String} + */ + Chartist.serialize = function(data) { + if(data === null || data === undefined) { + return data; + } else if(typeof data === 'number') { + data = ''+data; + } else if(typeof data === 'object') { + data = JSON.stringify({data: data}); + } + + return Object.keys(Chartist.escapingMap).reduce(function(result, key) { + return Chartist.replaceAll(result, key, Chartist.escapingMap[key]); + }, data); + }; + + /** + * This function de-serializes a string previously serialized with Chartist.serialize. The string will always be unescaped using Chartist.escapingMap before it's returned. Based on the input value the return type can be Number, String or Object. JSON.parse is used with try / catch to see if the unescaped string can be parsed into an Object and this Object will be returned on success. + * + * @memberof Chartist.Core + * @param {String} data + * @return {String|Number|Object} + */ + Chartist.deserialize = function(data) { + if(typeof data !== 'string') { + return data; + } + + data = Object.keys(Chartist.escapingMap).reduce(function(result, key) { + return Chartist.replaceAll(result, Chartist.escapingMap[key], key); + }, data); + + try { + data = JSON.parse(data); + data = data.data !== undefined ? data.data : data; + } catch(e) {} + + return data; + }; + + /** + * Create or reinitialize the SVG element for the chart + * + * @memberof Chartist.Core + * @param {Node} container The containing DOM Node object that will be used to plant the SVG element + * @param {String} width Set the width of the SVG element. Default is 100% + * @param {String} height Set the height of the SVG element. Default is 100% + * @param {String} className Specify a class to be added to the SVG element + * @return {Object} The created/reinitialized SVG element + */ + Chartist.createSvg = function (container, width, height, className) { + var svg; + + width = width || '100%'; + height = height || '100%'; + + // Check if there is a previous SVG element in the container that contains the Chartist XML namespace and remove it + // Since the DOM API does not support namespaces we need to manually search the returned list http://www.w3.org/TR/selectors-api/ + Array.prototype.slice.call(container.querySelectorAll('svg')).filter(function filterChartistSvgObjects(svg) { + return svg.getAttributeNS(Chartist.namespaces.xmlns, 'ct'); + }).forEach(function removePreviousElement(svg) { + container.removeChild(svg); + }); + + // Create svg object with width and height or use 100% as default + svg = new Chartist.Svg('svg').attr({ + width: width, + height: height + }).addClass(className); + + svg._node.style.width = width; + svg._node.style.height = height; + + // Add the DOM node to our container + container.appendChild(svg._node); + + return svg; + }; + + /** + * Ensures that the data object passed as second argument to the charts is present and correctly initialized. + * + * @param {Object} data The data object that is passed as second argument to the charts + * @return {Object} The normalized data object + */ + Chartist.normalizeData = function(data, reverse, multi) { + var labelCount; + var output = { + raw: data, + normalized: {} + }; + + // Check if we should generate some labels based on existing series data + output.normalized.series = Chartist.getDataArray({ + series: data.series || [] + }, reverse, multi); + + // If all elements of the normalized data array are arrays we're dealing with + // multi series data and we need to find the largest series if they are un-even + if (output.normalized.series.every(function(value) { + return value instanceof Array; + })) { + // Getting the series with the the most elements + labelCount = Math.max.apply(null, output.normalized.series.map(function(series) { + return series.length; + })); + } else { + // We're dealing with Pie data so we just take the normalized array length + labelCount = output.normalized.series.length; + } + + output.normalized.labels = (data.labels || []).slice(); + // Padding the labels to labelCount with empty strings + Array.prototype.push.apply( + output.normalized.labels, + Chartist.times(Math.max(0, labelCount - output.normalized.labels.length)).map(function() { + return ''; + }) + ); + + if(reverse) { + Chartist.reverseData(output.normalized); + } + + return output; + }; + + /** + * This function safely checks if an objects has an owned property. + * + * @param {Object} object The object where to check for a property + * @param {string} property The property name + * @returns {boolean} Returns true if the object owns the specified property + */ + Chartist.safeHasProperty = function(object, property) { + return object !== null && + typeof object === 'object' && + object.hasOwnProperty(property); + }; + + /** + * Checks if a value is considered a hole in the data series. + * + * @param {*} value + * @returns {boolean} True if the value is considered a data hole + */ + Chartist.isDataHoleValue = function(value) { + return value === null || + value === undefined || + (typeof value === 'number' && isNaN(value)); + }; + + /** + * Reverses the series, labels and series data arrays. + * + * @memberof Chartist.Core + * @param data + */ + Chartist.reverseData = function(data) { + data.labels.reverse(); + data.series.reverse(); + for (var i = 0; i < data.series.length; i++) { + if(typeof(data.series[i]) === 'object' && data.series[i].data !== undefined) { + data.series[i].data.reverse(); + } else if(data.series[i] instanceof Array) { + data.series[i].reverse(); + } + } + }; + + /** + * Convert data series into plain array + * + * @memberof Chartist.Core + * @param {Object} data The series object that contains the data to be visualized in the chart + * @param {Boolean} [reverse] If true the whole data is reversed by the getDataArray call. This will modify the data object passed as first parameter. The labels as well as the series order is reversed. The whole series data arrays are reversed too. + * @param {Boolean} [multi] Create a multi dimensional array from a series data array where a value object with `x` and `y` values will be created. + * @return {Array} A plain array that contains the data to be visualized in the chart + */ + Chartist.getDataArray = function(data, reverse, multi) { + // Recursively walks through nested arrays and convert string values to numbers and objects with value properties + // to values. Check the tests in data core -> data normalization for a detailed specification of expected values + function recursiveConvert(value) { + if(Chartist.safeHasProperty(value, 'value')) { + // We are dealing with value object notation so we need to recurse on value property + return recursiveConvert(value.value); + } else if(Chartist.safeHasProperty(value, 'data')) { + // We are dealing with series object notation so we need to recurse on data property + return recursiveConvert(value.data); + } else if(value instanceof Array) { + // Data is of type array so we need to recurse on the series + return value.map(recursiveConvert); + } else if(Chartist.isDataHoleValue(value)) { + // We're dealing with a hole in the data and therefore need to return undefined + // We're also returning undefined for multi value output + return undefined; + } else { + // We need to prepare multi value output (x and y data) + if(multi) { + var multiValue = {}; + + // Single series value arrays are assumed to specify the Y-Axis value + // For example: [1, 2] => [{x: undefined, y: 1}, {x: undefined, y: 2}] + // If multi is a string then it's assumed that it specified which dimension should be filled as default + if(typeof multi === 'string') { + multiValue[multi] = Chartist.getNumberOrUndefined(value); + } else { + multiValue.y = Chartist.getNumberOrUndefined(value); + } + + multiValue.x = value.hasOwnProperty('x') ? Chartist.getNumberOrUndefined(value.x) : multiValue.x; + multiValue.y = value.hasOwnProperty('y') ? Chartist.getNumberOrUndefined(value.y) : multiValue.y; + + return multiValue; + + } else { + // We can return simple data + return Chartist.getNumberOrUndefined(value); + } + } + } + + return data.series.map(recursiveConvert); + }; + + /** + * Converts a number into a padding object. + * + * @memberof Chartist.Core + * @param {Object|Number} padding + * @param {Number} [fallback] This value is used to fill missing values if a incomplete padding object was passed + * @returns {Object} Returns a padding object containing top, right, bottom, left properties filled with the padding number passed in as argument. If the argument is something else than a number (presumably already a correct padding object) then this argument is directly returned. + */ + Chartist.normalizePadding = function(padding, fallback) { + fallback = fallback || 0; + + return typeof padding === 'number' ? { + top: padding, + right: padding, + bottom: padding, + left: padding + } : { + top: typeof padding.top === 'number' ? padding.top : fallback, + right: typeof padding.right === 'number' ? padding.right : fallback, + bottom: typeof padding.bottom === 'number' ? padding.bottom : fallback, + left: typeof padding.left === 'number' ? padding.left : fallback + }; + }; + + Chartist.getMetaData = function(series, index) { + var value = series.data ? series.data[index] : series[index]; + return value ? value.meta : undefined; + }; + + /** + * Calculate the order of magnitude for the chart scale + * + * @memberof Chartist.Core + * @param {Number} value The value Range of the chart + * @return {Number} The order of magnitude + */ + Chartist.orderOfMagnitude = function (value) { + return Math.floor(Math.log(Math.abs(value)) / Math.LN10); + }; + + /** + * Project a data length into screen coordinates (pixels) + * + * @memberof Chartist.Core + * @param {Object} axisLength The svg element for the chart + * @param {Number} length Single data value from a series array + * @param {Object} bounds All the values to set the bounds of the chart + * @return {Number} The projected data length in pixels + */ + Chartist.projectLength = function (axisLength, length, bounds) { + return length / bounds.range * axisLength; + }; + + /** + * Get the height of the area in the chart for the data series + * + * @memberof Chartist.Core + * @param {Object} svg The svg element for the chart + * @param {Object} options The Object that contains all the optional values for the chart + * @return {Number} The height of the area in the chart for the data series + */ + Chartist.getAvailableHeight = function (svg, options) { + return Math.max((Chartist.quantity(options.height).value || svg.height()) - (options.chartPadding.top + options.chartPadding.bottom) - options.axisX.offset, 0); + }; + + /** + * Get highest and lowest value of data array. This Array contains the data that will be visualized in the chart. + * + * @memberof Chartist.Core + * @param {Array} data The array that contains the data to be visualized in the chart + * @param {Object} options The Object that contains the chart options + * @param {String} dimension Axis dimension 'x' or 'y' used to access the correct value and high / low configuration + * @return {Object} An object that contains the highest and lowest value that will be visualized on the chart. + */ + Chartist.getHighLow = function (data, options, dimension) { + // TODO: Remove workaround for deprecated global high / low config. Axis high / low configuration is preferred + options = Chartist.extend({}, options, dimension ? options['axis' + dimension.toUpperCase()] : {}); + + var highLow = { + high: options.high === undefined ? -Number.MAX_VALUE : +options.high, + low: options.low === undefined ? Number.MAX_VALUE : +options.low + }; + var findHigh = options.high === undefined; + var findLow = options.low === undefined; + + // Function to recursively walk through arrays and find highest and lowest number + function recursiveHighLow(data) { + if(data === undefined) { + return undefined; + } else if(data instanceof Array) { + for (var i = 0; i < data.length; i++) { + recursiveHighLow(data[i]); + } + } else { + var value = dimension ? +data[dimension] : +data; + + if (findHigh && value > highLow.high) { + highLow.high = value; + } + + if (findLow && value < highLow.low) { + highLow.low = value; + } + } + } + + // Start to find highest and lowest number recursively + if(findHigh || findLow) { + recursiveHighLow(data); + } + + // Overrides of high / low based on reference value, it will make sure that the invisible reference value is + // used to generate the chart. This is useful when the chart always needs to contain the position of the + // invisible reference value in the view i.e. for bipolar scales. + if (options.referenceValue || options.referenceValue === 0) { + highLow.high = Math.max(options.referenceValue, highLow.high); + highLow.low = Math.min(options.referenceValue, highLow.low); + } + + // If high and low are the same because of misconfiguration or flat data (only the same value) we need + // to set the high or low to 0 depending on the polarity + if (highLow.high <= highLow.low) { + // If both values are 0 we set high to 1 + if (highLow.low === 0) { + highLow.high = 1; + } else if (highLow.low < 0) { + // If we have the same negative value for the bounds we set bounds.high to 0 + highLow.high = 0; + } else if (highLow.high > 0) { + // If we have the same positive value for the bounds we set bounds.low to 0 + highLow.low = 0; + } else { + // If data array was empty, values are Number.MAX_VALUE and -Number.MAX_VALUE. Set bounds to prevent errors + highLow.high = 1; + highLow.low = 0; + } + } + + return highLow; + }; + + /** + * Checks if a value can be safely coerced to a number. This includes all values except null which result in finite numbers when coerced. This excludes NaN, since it's not finite. + * + * @memberof Chartist.Core + * @param value + * @returns {Boolean} + */ + Chartist.isNumeric = function(value) { + return value === null ? false : isFinite(value); + }; + + /** + * Returns true on all falsey values except the numeric value 0. + * + * @memberof Chartist.Core + * @param value + * @returns {boolean} + */ + Chartist.isFalseyButZero = function(value) { + return !value && value !== 0; + }; + + /** + * Returns a number if the passed parameter is a valid number or the function will return undefined. On all other values than a valid number, this function will return undefined. + * + * @memberof Chartist.Core + * @param value + * @returns {*} + */ + Chartist.getNumberOrUndefined = function(value) { + return Chartist.isNumeric(value) ? +value : undefined; + }; + + /** + * Checks if provided value object is multi value (contains x or y properties) + * + * @memberof Chartist.Core + * @param value + */ + Chartist.isMultiValue = function(value) { + return typeof value === 'object' && ('x' in value || 'y' in value); + }; + + /** + * Gets a value from a dimension `value.x` or `value.y` while returning value directly if it's a valid numeric value. If the value is not numeric and it's falsey this function will return `defaultValue`. + * + * @memberof Chartist.Core + * @param value + * @param dimension + * @param defaultValue + * @returns {*} + */ + Chartist.getMultiValue = function(value, dimension) { + if(Chartist.isMultiValue(value)) { + return Chartist.getNumberOrUndefined(value[dimension || 'y']); + } else { + return Chartist.getNumberOrUndefined(value); + } + }; + + /** + * Pollard Rho Algorithm to find smallest factor of an integer value. There are more efficient algorithms for factorization, but this one is quite efficient and not so complex. + * + * @memberof Chartist.Core + * @param {Number} num An integer number where the smallest factor should be searched for + * @returns {Number} The smallest integer factor of the parameter num. + */ + Chartist.rho = function(num) { + if(num === 1) { + return num; + } + + function gcd(p, q) { + if (p % q === 0) { + return q; + } else { + return gcd(q, p % q); + } + } + + function f(x) { + return x * x + 1; + } + + var x1 = 2, x2 = 2, divisor; + if (num % 2 === 0) { + return 2; + } + + do { + x1 = f(x1) % num; + x2 = f(f(x2)) % num; + divisor = gcd(Math.abs(x1 - x2), num); + } while (divisor === 1); + + return divisor; + }; + + /** + * Calculate and retrieve all the bounds for the chart and return them in one array + * + * @memberof Chartist.Core + * @param {Number} axisLength The length of the Axis used for + * @param {Object} highLow An object containing a high and low property indicating the value range of the chart. + * @param {Number} scaleMinSpace The minimum projected length a step should result in + * @param {Boolean} onlyInteger + * @return {Object} All the values to set the bounds of the chart + */ + Chartist.getBounds = function (axisLength, highLow, scaleMinSpace, onlyInteger) { + var i, + optimizationCounter = 0, + newMin, + newMax, + bounds = { + high: highLow.high, + low: highLow.low + }; + + bounds.valueRange = bounds.high - bounds.low; + bounds.oom = Chartist.orderOfMagnitude(bounds.valueRange); + bounds.step = Math.pow(10, bounds.oom); + bounds.min = Math.floor(bounds.low / bounds.step) * bounds.step; + bounds.max = Math.ceil(bounds.high / bounds.step) * bounds.step; + bounds.range = bounds.max - bounds.min; + bounds.numberOfSteps = Math.round(bounds.range / bounds.step); + + // Optimize scale step by checking if subdivision is possible based on horizontalGridMinSpace + // If we are already below the scaleMinSpace value we will scale up + var length = Chartist.projectLength(axisLength, bounds.step, bounds); + var scaleUp = length < scaleMinSpace; + var smallestFactor = onlyInteger ? Chartist.rho(bounds.range) : 0; + + // First check if we should only use integer steps and if step 1 is still larger than scaleMinSpace so we can use 1 + if(onlyInteger && Chartist.projectLength(axisLength, 1, bounds) >= scaleMinSpace) { + bounds.step = 1; + } else if(onlyInteger && smallestFactor < bounds.step && Chartist.projectLength(axisLength, smallestFactor, bounds) >= scaleMinSpace) { + // If step 1 was too small, we can try the smallest factor of range + // If the smallest factor is smaller than the current bounds.step and the projected length of smallest factor + // is larger than the scaleMinSpace we should go for it. + bounds.step = smallestFactor; + } else { + // Trying to divide or multiply by 2 and find the best step value + while (true) { + if (scaleUp && Chartist.projectLength(axisLength, bounds.step, bounds) <= scaleMinSpace) { + bounds.step *= 2; + } else if (!scaleUp && Chartist.projectLength(axisLength, bounds.step / 2, bounds) >= scaleMinSpace) { + bounds.step /= 2; + if(onlyInteger && bounds.step % 1 !== 0) { + bounds.step *= 2; + break; + } + } else { + break; + } + + if(optimizationCounter++ > 1000) { + throw new Error('Exceeded maximum number of iterations while optimizing scale step!'); + } + } + } + + var EPSILON = 2.221E-16; + bounds.step = Math.max(bounds.step, EPSILON); + function safeIncrement(value, increment) { + // If increment is too small use *= (1+EPSILON) as a simple nextafter + if (value === (value += increment)) { + value *= (1 + (increment > 0 ? EPSILON : -EPSILON)); + } + return value; + } + + // Narrow min and max based on new step + newMin = bounds.min; + newMax = bounds.max; + while (newMin + bounds.step <= bounds.low) { + newMin = safeIncrement(newMin, bounds.step); + } + while (newMax - bounds.step >= bounds.high) { + newMax = safeIncrement(newMax, -bounds.step); + } + bounds.min = newMin; + bounds.max = newMax; + bounds.range = bounds.max - bounds.min; + + var values = []; + for (i = bounds.min; i <= bounds.max; i = safeIncrement(i, bounds.step)) { + var value = Chartist.roundWithPrecision(i); + if (value !== values[values.length - 1]) { + values.push(value); + } + } + bounds.values = values; + return bounds; + }; + + /** + * Calculate cartesian coordinates of polar coordinates + * + * @memberof Chartist.Core + * @param {Number} centerX X-axis coordinates of center point of circle segment + * @param {Number} centerY X-axis coordinates of center point of circle segment + * @param {Number} radius Radius of circle segment + * @param {Number} angleInDegrees Angle of circle segment in degrees + * @return {{x:Number, y:Number}} Coordinates of point on circumference + */ + Chartist.polarToCartesian = function (centerX, centerY, radius, angleInDegrees) { + var angleInRadians = (angleInDegrees - 90) * Math.PI / 180.0; + + return { + x: centerX + (radius * Math.cos(angleInRadians)), + y: centerY + (radius * Math.sin(angleInRadians)) + }; + }; + + /** + * Initialize chart drawing rectangle (area where chart is drawn) x1,y1 = bottom left / x2,y2 = top right + * + * @memberof Chartist.Core + * @param {Object} svg The svg element for the chart + * @param {Object} options The Object that contains all the optional values for the chart + * @param {Number} [fallbackPadding] The fallback padding if partial padding objects are used + * @return {Object} The chart rectangles coordinates inside the svg element plus the rectangles measurements + */ + Chartist.createChartRect = function (svg, options, fallbackPadding) { + var hasAxis = !!(options.axisX || options.axisY); + var yAxisOffset = hasAxis ? options.axisY.offset : 0; + var xAxisOffset = hasAxis ? options.axisX.offset : 0; + // If width or height results in invalid value (including 0) we fallback to the unitless settings or even 0 + var width = svg.width() || Chartist.quantity(options.width).value || 0; + var height = svg.height() || Chartist.quantity(options.height).value || 0; + var normalizedPadding = Chartist.normalizePadding(options.chartPadding, fallbackPadding); + + // If settings were to small to cope with offset (legacy) and padding, we'll adjust + width = Math.max(width, yAxisOffset + normalizedPadding.left + normalizedPadding.right); + height = Math.max(height, xAxisOffset + normalizedPadding.top + normalizedPadding.bottom); + + var chartRect = { + padding: normalizedPadding, + width: function () { + return this.x2 - this.x1; + }, + height: function () { + return this.y1 - this.y2; + } + }; + + if(hasAxis) { + if (options.axisX.position === 'start') { + chartRect.y2 = normalizedPadding.top + xAxisOffset; + chartRect.y1 = Math.max(height - normalizedPadding.bottom, chartRect.y2 + 1); + } else { + chartRect.y2 = normalizedPadding.top; + chartRect.y1 = Math.max(height - normalizedPadding.bottom - xAxisOffset, chartRect.y2 + 1); + } + + if (options.axisY.position === 'start') { + chartRect.x1 = normalizedPadding.left + yAxisOffset; + chartRect.x2 = Math.max(width - normalizedPadding.right, chartRect.x1 + 1); + } else { + chartRect.x1 = normalizedPadding.left; + chartRect.x2 = Math.max(width - normalizedPadding.right - yAxisOffset, chartRect.x1 + 1); + } + } else { + chartRect.x1 = normalizedPadding.left; + chartRect.x2 = Math.max(width - normalizedPadding.right, chartRect.x1 + 1); + chartRect.y2 = normalizedPadding.top; + chartRect.y1 = Math.max(height - normalizedPadding.bottom, chartRect.y2 + 1); + } + + return chartRect; + }; + + /** + * Creates a grid line based on a projected value. + * + * @memberof Chartist.Core + * @param position + * @param index + * @param axis + * @param offset + * @param length + * @param group + * @param classes + * @param eventEmitter + */ + Chartist.createGrid = function(position, index, axis, offset, length, group, classes, eventEmitter) { + var positionalData = {}; + positionalData[axis.units.pos + '1'] = position; + positionalData[axis.units.pos + '2'] = position; + positionalData[axis.counterUnits.pos + '1'] = offset; + positionalData[axis.counterUnits.pos + '2'] = offset + length; + + var gridElement = group.elem('line', positionalData, classes.join(' ')); + + // Event for grid draw + eventEmitter.emit('draw', + Chartist.extend({ + type: 'grid', + axis: axis, + index: index, + group: group, + element: gridElement + }, positionalData) + ); + }; + + /** + * Creates a grid background rect and emits the draw event. + * + * @memberof Chartist.Core + * @param gridGroup + * @param chartRect + * @param className + * @param eventEmitter + */ + Chartist.createGridBackground = function (gridGroup, chartRect, className, eventEmitter) { + var gridBackground = gridGroup.elem('rect', { + x: chartRect.x1, + y: chartRect.y2, + width: chartRect.width(), + height: chartRect.height(), + }, className, true); + + // Event for grid background draw + eventEmitter.emit('draw', { + type: 'gridBackground', + group: gridGroup, + element: gridBackground + }); + }; + + /** + * Creates a label based on a projected value and an axis. + * + * @memberof Chartist.Core + * @param position + * @param length + * @param index + * @param labels + * @param axis + * @param axisOffset + * @param labelOffset + * @param group + * @param classes + * @param useForeignObject + * @param eventEmitter + */ + Chartist.createLabel = function(position, length, index, labels, axis, axisOffset, labelOffset, group, classes, useForeignObject, eventEmitter) { + var labelElement; + var positionalData = {}; + + positionalData[axis.units.pos] = position + labelOffset[axis.units.pos]; + positionalData[axis.counterUnits.pos] = labelOffset[axis.counterUnits.pos]; + positionalData[axis.units.len] = length; + positionalData[axis.counterUnits.len] = Math.max(0, axisOffset - 10); + + if(useForeignObject) { + // We need to set width and height explicitly to px as span will not expand with width and height being + // 100% in all browsers + var content = document.createElement('span'); + content.className = classes.join(' '); + content.setAttribute('xmlns', Chartist.namespaces.xhtml); + content.innerText = labels[index]; + content.style[axis.units.len] = Math.round(positionalData[axis.units.len]) + 'px'; + content.style[axis.counterUnits.len] = Math.round(positionalData[axis.counterUnits.len]) + 'px'; + + labelElement = group.foreignObject(content, Chartist.extend({ + style: 'overflow: visible;' + }, positionalData)); + } else { + labelElement = group.elem('text', positionalData, classes.join(' ')).text(labels[index]); + } + + eventEmitter.emit('draw', Chartist.extend({ + type: 'label', + axis: axis, + index: index, + group: group, + element: labelElement, + text: labels[index] + }, positionalData)); + }; + + /** + * Helper to read series specific options from options object. It automatically falls back to the global option if + * there is no option in the series options. + * + * @param {Object} series Series object + * @param {Object} options Chartist options object + * @param {string} key The options key that should be used to obtain the options + * @returns {*} + */ + Chartist.getSeriesOption = function(series, options, key) { + if(series.name && options.series && options.series[series.name]) { + var seriesOptions = options.series[series.name]; + return seriesOptions.hasOwnProperty(key) ? seriesOptions[key] : options[key]; + } else { + return options[key]; + } + }; + + /** + * Provides options handling functionality with callback for options changes triggered by responsive options and media query matches + * + * @memberof Chartist.Core + * @param {Object} options Options set by user + * @param {Array} responsiveOptions Optional functions to add responsive behavior to chart + * @param {Object} eventEmitter The event emitter that will be used to emit the options changed events + * @return {Object} The consolidated options object from the defaults, base and matching responsive options + */ + Chartist.optionsProvider = function (options, responsiveOptions, eventEmitter) { + var baseOptions = Chartist.extend({}, options), + currentOptions, + mediaQueryListeners = [], + i; + + function updateCurrentOptions(mediaEvent) { + var previousOptions = currentOptions; + currentOptions = Chartist.extend({}, baseOptions); + + if (responsiveOptions) { + for (i = 0; i < responsiveOptions.length; i++) { + var mql = window.matchMedia(responsiveOptions[i][0]); + if (mql.matches) { + currentOptions = Chartist.extend(currentOptions, responsiveOptions[i][1]); + } + } + } + + if(eventEmitter && mediaEvent) { + eventEmitter.emit('optionsChanged', { + previousOptions: previousOptions, + currentOptions: currentOptions + }); + } + } + + function removeMediaQueryListeners() { + mediaQueryListeners.forEach(function(mql) { + mql.removeListener(updateCurrentOptions); + }); + } + + if (!window.matchMedia) { + throw 'window.matchMedia not found! Make sure you\'re using a polyfill.'; + } else if (responsiveOptions) { + + for (i = 0; i < responsiveOptions.length; i++) { + var mql = window.matchMedia(responsiveOptions[i][0]); + mql.addListener(updateCurrentOptions); + mediaQueryListeners.push(mql); + } + } + // Execute initially without an event argument so we get the correct options + updateCurrentOptions(); + + return { + removeMediaQueryListeners: removeMediaQueryListeners, + getCurrentOptions: function getCurrentOptions() { + return Chartist.extend({}, currentOptions); + } + }; + }; + + + /** + * Splits a list of coordinates and associated values into segments. Each returned segment contains a pathCoordinates + * valueData property describing the segment. + * + * With the default options, segments consist of contiguous sets of points that do not have an undefined value. Any + * points with undefined values are discarded. + * + * **Options** + * The following options are used to determine how segments are formed + * ```javascript + * var options = { + * // If fillHoles is true, undefined values are simply discarded without creating a new segment. Assuming other options are default, this returns single segment. + * fillHoles: false, + * // If increasingX is true, the coordinates in all segments have strictly increasing x-values. + * increasingX: false + * }; + * ``` + * + * @memberof Chartist.Core + * @param {Array} pathCoordinates List of point coordinates to be split in the form [x1, y1, x2, y2 ... xn, yn] + * @param {Array} values List of associated point values in the form [v1, v2 .. vn] + * @param {Object} options Options set by user + * @return {Array} List of segments, each containing a pathCoordinates and valueData property. + */ + Chartist.splitIntoSegments = function(pathCoordinates, valueData, options) { + var defaultOptions = { + increasingX: false, + fillHoles: false + }; + + options = Chartist.extend({}, defaultOptions, options); + + var segments = []; + var hole = true; + + for(var i = 0; i < pathCoordinates.length; i += 2) { + // If this value is a "hole" we set the hole flag + if(Chartist.getMultiValue(valueData[i / 2].value) === undefined) { + // if(valueData[i / 2].value === undefined) { + if(!options.fillHoles) { + hole = true; + } + } else { + if(options.increasingX && i >= 2 && pathCoordinates[i] <= pathCoordinates[i-2]) { + // X is not increasing, so we need to make sure we start a new segment + hole = true; + } + + + // If it's a valid value we need to check if we're coming out of a hole and create a new empty segment + if(hole) { + segments.push({ + pathCoordinates: [], + valueData: [] + }); + // As we have a valid value now, we are not in a "hole" anymore + hole = false; + } + + // Add to the segment pathCoordinates and valueData + segments[segments.length - 1].pathCoordinates.push(pathCoordinates[i], pathCoordinates[i + 1]); + segments[segments.length - 1].valueData.push(valueData[i / 2]); + } + } + + return segments; + }; +}(window, document, Chartist)); +;/** + * Chartist path interpolation functions. + * + * @module Chartist.Interpolation + */ +/* global Chartist */ +(function(window, document, Chartist) { + 'use strict'; + + Chartist.Interpolation = {}; + + /** + * This interpolation function does not smooth the path and the result is only containing lines and no curves. + * + * @example + * var chart = new Chartist.Line('.ct-chart', { + * labels: [1, 2, 3, 4, 5], + * series: [[1, 2, 8, 1, 7]] + * }, { + * lineSmooth: Chartist.Interpolation.none({ + * fillHoles: false + * }) + * }); + * + * + * @memberof Chartist.Interpolation + * @return {Function} + */ + Chartist.Interpolation.none = function(options) { + var defaultOptions = { + fillHoles: false + }; + options = Chartist.extend({}, defaultOptions, options); + return function none(pathCoordinates, valueData) { + var path = new Chartist.Svg.Path(); + var hole = true; + + for(var i = 0; i < pathCoordinates.length; i += 2) { + var currX = pathCoordinates[i]; + var currY = pathCoordinates[i + 1]; + var currData = valueData[i / 2]; + + if(Chartist.getMultiValue(currData.value) !== undefined) { + + if(hole) { + path.move(currX, currY, false, currData); + } else { + path.line(currX, currY, false, currData); + } + + hole = false; + } else if(!options.fillHoles) { + hole = true; + } + } + + return path; + }; + }; + + /** + * Simple smoothing creates horizontal handles that are positioned with a fraction of the length between two data points. You can use the divisor option to specify the amount of smoothing. + * + * Simple smoothing can be used instead of `Chartist.Smoothing.cardinal` if you'd like to get rid of the artifacts it produces sometimes. Simple smoothing produces less flowing lines but is accurate by hitting the points and it also doesn't swing below or above the given data point. + * + * All smoothing functions within Chartist are factory functions that accept an options parameter. The simple interpolation function accepts one configuration parameter `divisor`, between 1 and ∞, which controls the smoothing characteristics. + * + * @example + * var chart = new Chartist.Line('.ct-chart', { + * labels: [1, 2, 3, 4, 5], + * series: [[1, 2, 8, 1, 7]] + * }, { + * lineSmooth: Chartist.Interpolation.simple({ + * divisor: 2, + * fillHoles: false + * }) + * }); + * + * + * @memberof Chartist.Interpolation + * @param {Object} options The options of the simple interpolation factory function. + * @return {Function} + */ + Chartist.Interpolation.simple = function(options) { + var defaultOptions = { + divisor: 2, + fillHoles: false + }; + options = Chartist.extend({}, defaultOptions, options); + + var d = 1 / Math.max(1, options.divisor); + + return function simple(pathCoordinates, valueData) { + var path = new Chartist.Svg.Path(); + var prevX, prevY, prevData; + + for(var i = 0; i < pathCoordinates.length; i += 2) { + var currX = pathCoordinates[i]; + var currY = pathCoordinates[i + 1]; + var length = (currX - prevX) * d; + var currData = valueData[i / 2]; + + if(currData.value !== undefined) { + + if(prevData === undefined) { + path.move(currX, currY, false, currData); + } else { + path.curve( + prevX + length, + prevY, + currX - length, + currY, + currX, + currY, + false, + currData + ); + } + + prevX = currX; + prevY = currY; + prevData = currData; + } else if(!options.fillHoles) { + prevX = currX = prevData = undefined; + } + } + + return path; + }; + }; + + /** + * Cardinal / Catmull-Rome spline interpolation is the default smoothing function in Chartist. It produces nice results where the splines will always meet the points. It produces some artifacts though when data values are increased or decreased rapidly. The line may not follow a very accurate path and if the line should be accurate this smoothing function does not produce the best results. + * + * Cardinal splines can only be created if there are more than two data points. If this is not the case this smoothing will fallback to `Chartist.Smoothing.none`. + * + * All smoothing functions within Chartist are factory functions that accept an options parameter. The cardinal interpolation function accepts one configuration parameter `tension`, between 0 and 1, which controls the smoothing intensity. + * + * @example + * var chart = new Chartist.Line('.ct-chart', { + * labels: [1, 2, 3, 4, 5], + * series: [[1, 2, 8, 1, 7]] + * }, { + * lineSmooth: Chartist.Interpolation.cardinal({ + * tension: 1, + * fillHoles: false + * }) + * }); + * + * @memberof Chartist.Interpolation + * @param {Object} options The options of the cardinal factory function. + * @return {Function} + */ + Chartist.Interpolation.cardinal = function(options) { + var defaultOptions = { + tension: 1, + fillHoles: false + }; + + options = Chartist.extend({}, defaultOptions, options); + + var t = Math.min(1, Math.max(0, options.tension)), + c = 1 - t; + + return function cardinal(pathCoordinates, valueData) { + // First we try to split the coordinates into segments + // This is necessary to treat "holes" in line charts + var segments = Chartist.splitIntoSegments(pathCoordinates, valueData, { + fillHoles: options.fillHoles + }); + + if(!segments.length) { + // If there were no segments return 'Chartist.Interpolation.none' + return Chartist.Interpolation.none()([]); + } else if(segments.length > 1) { + // If the split resulted in more that one segment we need to interpolate each segment individually and join them + // afterwards together into a single path. + var paths = []; + // For each segment we will recurse the cardinal function + segments.forEach(function(segment) { + paths.push(cardinal(segment.pathCoordinates, segment.valueData)); + }); + // Join the segment path data into a single path and return + return Chartist.Svg.Path.join(paths); + } else { + // If there was only one segment we can proceed regularly by using pathCoordinates and valueData from the first + // segment + pathCoordinates = segments[0].pathCoordinates; + valueData = segments[0].valueData; + + // If less than two points we need to fallback to no smoothing + if(pathCoordinates.length <= 4) { + return Chartist.Interpolation.none()(pathCoordinates, valueData); + } + + var path = new Chartist.Svg.Path().move(pathCoordinates[0], pathCoordinates[1], false, valueData[0]), + z; + + for (var i = 0, iLen = pathCoordinates.length; iLen - 2 * !z > i; i += 2) { + var p = [ + {x: +pathCoordinates[i - 2], y: +pathCoordinates[i - 1]}, + {x: +pathCoordinates[i], y: +pathCoordinates[i + 1]}, + {x: +pathCoordinates[i + 2], y: +pathCoordinates[i + 3]}, + {x: +pathCoordinates[i + 4], y: +pathCoordinates[i + 5]} + ]; + if (z) { + if (!i) { + p[0] = {x: +pathCoordinates[iLen - 2], y: +pathCoordinates[iLen - 1]}; + } else if (iLen - 4 === i) { + p[3] = {x: +pathCoordinates[0], y: +pathCoordinates[1]}; + } else if (iLen - 2 === i) { + p[2] = {x: +pathCoordinates[0], y: +pathCoordinates[1]}; + p[3] = {x: +pathCoordinates[2], y: +pathCoordinates[3]}; + } + } else { + if (iLen - 4 === i) { + p[3] = p[2]; + } else if (!i) { + p[0] = {x: +pathCoordinates[i], y: +pathCoordinates[i + 1]}; + } + } + + path.curve( + (t * (-p[0].x + 6 * p[1].x + p[2].x) / 6) + (c * p[2].x), + (t * (-p[0].y + 6 * p[1].y + p[2].y) / 6) + (c * p[2].y), + (t * (p[1].x + 6 * p[2].x - p[3].x) / 6) + (c * p[2].x), + (t * (p[1].y + 6 * p[2].y - p[3].y) / 6) + (c * p[2].y), + p[2].x, + p[2].y, + false, + valueData[(i + 2) / 2] + ); + } + + return path; + } + }; + }; + + /** + * Monotone Cubic spline interpolation produces a smooth curve which preserves monotonicity. Unlike cardinal splines, the curve will not extend beyond the range of y-values of the original data points. + * + * Monotone Cubic splines can only be created if there are more than two data points. If this is not the case this smoothing will fallback to `Chartist.Smoothing.none`. + * + * The x-values of subsequent points must be increasing to fit a Monotone Cubic spline. If this condition is not met for a pair of adjacent points, then there will be a break in the curve between those data points. + * + * All smoothing functions within Chartist are factory functions that accept an options parameter. + * + * @example + * var chart = new Chartist.Line('.ct-chart', { + * labels: [1, 2, 3, 4, 5], + * series: [[1, 2, 8, 1, 7]] + * }, { + * lineSmooth: Chartist.Interpolation.monotoneCubic({ + * fillHoles: false + * }) + * }); + * + * @memberof Chartist.Interpolation + * @param {Object} options The options of the monotoneCubic factory function. + * @return {Function} + */ + Chartist.Interpolation.monotoneCubic = function(options) { + var defaultOptions = { + fillHoles: false + }; + + options = Chartist.extend({}, defaultOptions, options); + + return function monotoneCubic(pathCoordinates, valueData) { + // First we try to split the coordinates into segments + // This is necessary to treat "holes" in line charts + var segments = Chartist.splitIntoSegments(pathCoordinates, valueData, { + fillHoles: options.fillHoles, + increasingX: true + }); + + if(!segments.length) { + // If there were no segments return 'Chartist.Interpolation.none' + return Chartist.Interpolation.none()([]); + } else if(segments.length > 1) { + // If the split resulted in more that one segment we need to interpolate each segment individually and join them + // afterwards together into a single path. + var paths = []; + // For each segment we will recurse the monotoneCubic fn function + segments.forEach(function(segment) { + paths.push(monotoneCubic(segment.pathCoordinates, segment.valueData)); + }); + // Join the segment path data into a single path and return + return Chartist.Svg.Path.join(paths); + } else { + // If there was only one segment we can proceed regularly by using pathCoordinates and valueData from the first + // segment + pathCoordinates = segments[0].pathCoordinates; + valueData = segments[0].valueData; + + // If less than three points we need to fallback to no smoothing + if(pathCoordinates.length <= 4) { + return Chartist.Interpolation.none()(pathCoordinates, valueData); + } + + var xs = [], + ys = [], + i, + n = pathCoordinates.length / 2, + ms = [], + ds = [], dys = [], dxs = [], + path; + + // Populate x and y coordinates into separate arrays, for readability + + for(i = 0; i < n; i++) { + xs[i] = pathCoordinates[i * 2]; + ys[i] = pathCoordinates[i * 2 + 1]; + } + + // Calculate deltas and derivative + + for(i = 0; i < n - 1; i++) { + dys[i] = ys[i + 1] - ys[i]; + dxs[i] = xs[i + 1] - xs[i]; + ds[i] = dys[i] / dxs[i]; + } + + // Determine desired slope (m) at each point using Fritsch-Carlson method + // See: http://math.stackexchange.com/questions/45218/implementation-of-monotone-cubic-interpolation + + ms[0] = ds[0]; + ms[n - 1] = ds[n - 2]; + + for(i = 1; i < n - 1; i++) { + if(ds[i] === 0 || ds[i - 1] === 0 || (ds[i - 1] > 0) !== (ds[i] > 0)) { + ms[i] = 0; + } else { + ms[i] = 3 * (dxs[i - 1] + dxs[i]) / ( + (2 * dxs[i] + dxs[i - 1]) / ds[i - 1] + + (dxs[i] + 2 * dxs[i - 1]) / ds[i]); + + if(!isFinite(ms[i])) { + ms[i] = 0; + } + } + } + + // Now build a path from the slopes + + path = new Chartist.Svg.Path().move(xs[0], ys[0], false, valueData[0]); + + for(i = 0; i < n - 1; i++) { + path.curve( + // First control point + xs[i] + dxs[i] / 3, + ys[i] + ms[i] * dxs[i] / 3, + // Second control point + xs[i + 1] - dxs[i] / 3, + ys[i + 1] - ms[i + 1] * dxs[i] / 3, + // End point + xs[i + 1], + ys[i + 1], + + false, + valueData[i + 1] + ); + } + + return path; + } + }; + }; + + /** + * Step interpolation will cause the line chart to move in steps rather than diagonal or smoothed lines. This interpolation will create additional points that will also be drawn when the `showPoint` option is enabled. + * + * All smoothing functions within Chartist are factory functions that accept an options parameter. The step interpolation function accepts one configuration parameter `postpone`, that can be `true` or `false`. The default value is `true` and will cause the step to occur where the value actually changes. If a different behaviour is needed where the step is shifted to the left and happens before the actual value, this option can be set to `false`. + * + * @example + * var chart = new Chartist.Line('.ct-chart', { + * labels: [1, 2, 3, 4, 5], + * series: [[1, 2, 8, 1, 7]] + * }, { + * lineSmooth: Chartist.Interpolation.step({ + * postpone: true, + * fillHoles: false + * }) + * }); + * + * @memberof Chartist.Interpolation + * @param options + * @returns {Function} + */ + Chartist.Interpolation.step = function(options) { + var defaultOptions = { + postpone: true, + fillHoles: false + }; + + options = Chartist.extend({}, defaultOptions, options); + + return function step(pathCoordinates, valueData) { + var path = new Chartist.Svg.Path(); + + var prevX, prevY, prevData; + + for (var i = 0; i < pathCoordinates.length; i += 2) { + var currX = pathCoordinates[i]; + var currY = pathCoordinates[i + 1]; + var currData = valueData[i / 2]; + + // If the current point is also not a hole we can draw the step lines + if(currData.value !== undefined) { + if(prevData === undefined) { + path.move(currX, currY, false, currData); + } else { + if(options.postpone) { + // If postponed we should draw the step line with the value of the previous value + path.line(currX, prevY, false, prevData); + } else { + // If not postponed we should draw the step line with the value of the current value + path.line(prevX, currY, false, currData); + } + // Line to the actual point (this should only be a Y-Axis movement + path.line(currX, currY, false, currData); + } + + prevX = currX; + prevY = currY; + prevData = currData; + } else if(!options.fillHoles) { + prevX = prevY = prevData = undefined; + } + } + + return path; + }; + }; + +}(window, document, Chartist)); +;/** + * A very basic event module that helps to generate and catch events. + * + * @module Chartist.Event + */ +/* global Chartist */ +(function (window, document, Chartist) { + 'use strict'; + + Chartist.EventEmitter = function () { + var handlers = []; + + /** + * Add an event handler for a specific event + * + * @memberof Chartist.Event + * @param {String} event The event name + * @param {Function} handler A event handler function + */ + function addEventHandler(event, handler) { + handlers[event] = handlers[event] || []; + handlers[event].push(handler); + } + + /** + * Remove an event handler of a specific event name or remove all event handlers for a specific event. + * + * @memberof Chartist.Event + * @param {String} event The event name where a specific or all handlers should be removed + * @param {Function} [handler] An optional event handler function. If specified only this specific handler will be removed and otherwise all handlers are removed. + */ + function removeEventHandler(event, handler) { + // Only do something if there are event handlers with this name existing + if(handlers[event]) { + // If handler is set we will look for a specific handler and only remove this + if(handler) { + handlers[event].splice(handlers[event].indexOf(handler), 1); + if(handlers[event].length === 0) { + delete handlers[event]; + } + } else { + // If no handler is specified we remove all handlers for this event + delete handlers[event]; + } + } + } + + /** + * Use this function to emit an event. All handlers that are listening for this event will be triggered with the data parameter. + * + * @memberof Chartist.Event + * @param {String} event The event name that should be triggered + * @param {*} data Arbitrary data that will be passed to the event handler callback functions + */ + function emit(event, data) { + // Only do something if there are event handlers with this name existing + if(handlers[event]) { + handlers[event].forEach(function(handler) { + handler(data); + }); + } + + // Emit event to star event handlers + if(handlers['*']) { + handlers['*'].forEach(function(starHandler) { + starHandler(event, data); + }); + } + } + + return { + addEventHandler: addEventHandler, + removeEventHandler: removeEventHandler, + emit: emit + }; + }; + +}(window, document, Chartist)); +;/** + * This module provides some basic prototype inheritance utilities. + * + * @module Chartist.Class + */ +/* global Chartist */ +(function(window, document, Chartist) { + 'use strict'; + + function listToArray(list) { + var arr = []; + if (list.length) { + for (var i = 0; i < list.length; i++) { + arr.push(list[i]); + } + } + return arr; + } + + /** + * Method to extend from current prototype. + * + * @memberof Chartist.Class + * @param {Object} properties The object that serves as definition for the prototype that gets created for the new class. This object should always contain a constructor property that is the desired constructor for the newly created class. + * @param {Object} [superProtoOverride] By default extens will use the current class prototype or Chartist.class. With this parameter you can specify any super prototype that will be used. + * @return {Function} Constructor function of the new class + * + * @example + * var Fruit = Class.extend({ + * color: undefined, + * sugar: undefined, + * + * constructor: function(color, sugar) { + * this.color = color; + * this.sugar = sugar; + * }, + * + * eat: function() { + * this.sugar = 0; + * return this; + * } + * }); + * + * var Banana = Fruit.extend({ + * length: undefined, + * + * constructor: function(length, sugar) { + * Banana.super.constructor.call(this, 'Yellow', sugar); + * this.length = length; + * } + * }); + * + * var banana = new Banana(20, 40); + * console.log('banana instanceof Fruit', banana instanceof Fruit); + * console.log('Fruit is prototype of banana', Fruit.prototype.isPrototypeOf(banana)); + * console.log('bananas prototype is Fruit', Object.getPrototypeOf(banana) === Fruit.prototype); + * console.log(banana.sugar); + * console.log(banana.eat().sugar); + * console.log(banana.color); + */ + function extend(properties, superProtoOverride) { + var superProto = superProtoOverride || this.prototype || Chartist.Class; + var proto = Object.create(superProto); + + Chartist.Class.cloneDefinitions(proto, properties); + + var constr = function() { + var fn = proto.constructor || function () {}, + instance; + + // If this is linked to the Chartist namespace the constructor was not called with new + // To provide a fallback we will instantiate here and return the instance + instance = this === Chartist ? Object.create(proto) : this; + fn.apply(instance, Array.prototype.slice.call(arguments, 0)); + + // If this constructor was not called with new we need to return the instance + // This will not harm when the constructor has been called with new as the returned value is ignored + return instance; + }; + + constr.prototype = proto; + constr.super = superProto; + constr.extend = this.extend; + + return constr; + } + + // Variable argument list clones args > 0 into args[0] and retruns modified args[0] + function cloneDefinitions() { + var args = listToArray(arguments); + var target = args[0]; + + args.splice(1, args.length - 1).forEach(function (source) { + Object.getOwnPropertyNames(source).forEach(function (propName) { + // If this property already exist in target we delete it first + delete target[propName]; + // Define the property with the descriptor from source + Object.defineProperty(target, propName, + Object.getOwnPropertyDescriptor(source, propName)); + }); + }); + + return target; + } + + Chartist.Class = { + extend: extend, + cloneDefinitions: cloneDefinitions + }; + +}(window, document, Chartist)); +;/** + * Base for all chart types. The methods in Chartist.Base are inherited to all chart types. + * + * @module Chartist.Base + */ +/* global Chartist */ +(function(window, document, Chartist) { + 'use strict'; + + // TODO: Currently we need to re-draw the chart on window resize. This is usually very bad and will affect performance. + // This is done because we can't work with relative coordinates when drawing the chart because SVG Path does not + // work with relative positions yet. We need to check if we can do a viewBox hack to switch to percentage. + // See http://mozilla.6506.n7.nabble.com/Specyfing-paths-with-percentages-unit-td247474.html + // Update: can be done using the above method tested here: http://codepen.io/gionkunz/pen/KDvLj + // The problem is with the label offsets that can't be converted into percentage and affecting the chart container + /** + * Updates the chart which currently does a full reconstruction of the SVG DOM + * + * @param {Object} [data] Optional data you'd like to set for the chart before it will update. If not specified the update method will use the data that is already configured with the chart. + * @param {Object} [options] Optional options you'd like to add to the previous options for the chart before it will update. If not specified the update method will use the options that have been already configured with the chart. + * @param {Boolean} [override] If set to true, the passed options will be used to extend the options that have been configured already. Otherwise the chart default options will be used as the base + * @memberof Chartist.Base + */ + function update(data, options, override) { + if(data) { + this.data = data || {}; + this.data.labels = this.data.labels || []; + this.data.series = this.data.series || []; + // Event for data transformation that allows to manipulate the data before it gets rendered in the charts + this.eventEmitter.emit('data', { + type: 'update', + data: this.data + }); + } + + if(options) { + this.options = Chartist.extend({}, override ? this.options : this.defaultOptions, options); + + // If chartist was not initialized yet, we just set the options and leave the rest to the initialization + // Otherwise we re-create the optionsProvider at this point + if(!this.initializeTimeoutId) { + this.optionsProvider.removeMediaQueryListeners(); + this.optionsProvider = Chartist.optionsProvider(this.options, this.responsiveOptions, this.eventEmitter); + } + } + + // Only re-created the chart if it has been initialized yet + if(!this.initializeTimeoutId) { + this.createChart(this.optionsProvider.getCurrentOptions()); + } + + // Return a reference to the chart object to chain up calls + return this; + } + + /** + * This method can be called on the API object of each chart and will un-register all event listeners that were added to other components. This currently includes a window.resize listener as well as media query listeners if any responsive options have been provided. Use this function if you need to destroy and recreate Chartist charts dynamically. + * + * @memberof Chartist.Base + */ + function detach() { + // Only detach if initialization already occurred on this chart. If this chart still hasn't initialized (therefore + // the initializationTimeoutId is still a valid timeout reference, we will clear the timeout + if(!this.initializeTimeoutId) { + window.removeEventListener('resize', this.resizeListener); + this.optionsProvider.removeMediaQueryListeners(); + } else { + window.clearTimeout(this.initializeTimeoutId); + } + + return this; + } + + /** + * Use this function to register event handlers. The handler callbacks are synchronous and will run in the main thread rather than the event loop. + * + * @memberof Chartist.Base + * @param {String} event Name of the event. Check the examples for supported events. + * @param {Function} handler The handler function that will be called when an event with the given name was emitted. This function will receive a data argument which contains event data. See the example for more details. + */ + function on(event, handler) { + this.eventEmitter.addEventHandler(event, handler); + return this; + } + + /** + * Use this function to un-register event handlers. If the handler function parameter is omitted all handlers for the given event will be un-registered. + * + * @memberof Chartist.Base + * @param {String} event Name of the event for which a handler should be removed + * @param {Function} [handler] The handler function that that was previously used to register a new event handler. This handler will be removed from the event handler list. If this parameter is omitted then all event handlers for the given event are removed from the list. + */ + function off(event, handler) { + this.eventEmitter.removeEventHandler(event, handler); + return this; + } + + function initialize() { + // Add window resize listener that re-creates the chart + window.addEventListener('resize', this.resizeListener); + + // Obtain current options based on matching media queries (if responsive options are given) + // This will also register a listener that is re-creating the chart based on media changes + this.optionsProvider = Chartist.optionsProvider(this.options, this.responsiveOptions, this.eventEmitter); + // Register options change listener that will trigger a chart update + this.eventEmitter.addEventHandler('optionsChanged', function() { + this.update(); + }.bind(this)); + + // Before the first chart creation we need to register us with all plugins that are configured + // Initialize all relevant plugins with our chart object and the plugin options specified in the config + if(this.options.plugins) { + this.options.plugins.forEach(function(plugin) { + if(plugin instanceof Array) { + plugin[0](this, plugin[1]); + } else { + plugin(this); + } + }.bind(this)); + } + + // Event for data transformation that allows to manipulate the data before it gets rendered in the charts + this.eventEmitter.emit('data', { + type: 'initial', + data: this.data + }); + + // Create the first chart + this.createChart(this.optionsProvider.getCurrentOptions()); + + // As chart is initialized from the event loop now we can reset our timeout reference + // This is important if the chart gets initialized on the same element twice + this.initializeTimeoutId = undefined; + } + + /** + * Constructor of chart base class. + * + * @param query + * @param data + * @param defaultOptions + * @param options + * @param responsiveOptions + * @constructor + */ + function Base(query, data, defaultOptions, options, responsiveOptions) { + this.container = Chartist.querySelector(query); + this.data = data || {}; + this.data.labels = this.data.labels || []; + this.data.series = this.data.series || []; + this.defaultOptions = defaultOptions; + this.options = options; + this.responsiveOptions = responsiveOptions; + this.eventEmitter = Chartist.EventEmitter(); + this.supportsForeignObject = Chartist.Svg.isSupported('Extensibility'); + this.supportsAnimations = Chartist.Svg.isSupported('AnimationEventsAttribute'); + this.resizeListener = function resizeListener(){ + this.update(); + }.bind(this); + + if(this.container) { + // If chartist was already initialized in this container we are detaching all event listeners first + if(this.container.__chartist__) { + this.container.__chartist__.detach(); + } + + this.container.__chartist__ = this; + } + + // Using event loop for first draw to make it possible to register event listeners in the same call stack where + // the chart was created. + this.initializeTimeoutId = setTimeout(initialize.bind(this), 0); + } + + // Creating the chart base class + Chartist.Base = Chartist.Class.extend({ + constructor: Base, + optionsProvider: undefined, + container: undefined, + svg: undefined, + eventEmitter: undefined, + createChart: function() { + throw new Error('Base chart type can\'t be instantiated!'); + }, + update: update, + detach: detach, + on: on, + off: off, + version: Chartist.version, + supportsForeignObject: false + }); + +}(window, document, Chartist)); +;/** + * Chartist SVG module for simple SVG DOM abstraction + * + * @module Chartist.Svg + */ +/* global Chartist */ +(function(window, document, Chartist) { + 'use strict'; + + /** + * Chartist.Svg creates a new SVG object wrapper with a starting element. You can use the wrapper to fluently create sub-elements and modify them. + * + * @memberof Chartist.Svg + * @constructor + * @param {String|Element} name The name of the SVG element to create or an SVG dom element which should be wrapped into Chartist.Svg + * @param {Object} attributes An object with properties that will be added as attributes to the SVG element that is created. Attributes with undefined values will not be added. + * @param {String} className This class or class list will be added to the SVG element + * @param {Object} parent The parent SVG wrapper object where this newly created wrapper and it's element will be attached to as child + * @param {Boolean} insertFirst If this param is set to true in conjunction with a parent element the newly created element will be added as first child element in the parent element + */ + function Svg(name, attributes, className, parent, insertFirst) { + // If Svg is getting called with an SVG element we just return the wrapper + if(name instanceof Element) { + this._node = name; + } else { + this._node = document.createElementNS(Chartist.namespaces.svg, name); + + // If this is an SVG element created then custom namespace + if(name === 'svg') { + this.attr({ + 'xmlns:ct': Chartist.namespaces.ct + }); + } + } + + if(attributes) { + this.attr(attributes); + } + + if(className) { + this.addClass(className); + } + + if(parent) { + if (insertFirst && parent._node.firstChild) { + parent._node.insertBefore(this._node, parent._node.firstChild); + } else { + parent._node.appendChild(this._node); + } + } + } + + /** + * Set attributes on the current SVG element of the wrapper you're currently working on. + * + * @memberof Chartist.Svg + * @param {Object|String} attributes An object with properties that will be added as attributes to the SVG element that is created. Attributes with undefined values will not be added. If this parameter is a String then the function is used as a getter and will return the attribute value. + * @param {String} [ns] If specified, the attribute will be obtained using getAttributeNs. In order to write namepsaced attributes you can use the namespace:attribute notation within the attributes object. + * @return {Object|String} The current wrapper object will be returned so it can be used for chaining or the attribute value if used as getter function. + */ + function attr(attributes, ns) { + if(typeof attributes === 'string') { + if(ns) { + return this._node.getAttributeNS(ns, attributes); + } else { + return this._node.getAttribute(attributes); + } + } + + Object.keys(attributes).forEach(function(key) { + // If the attribute value is undefined we can skip this one + if(attributes[key] === undefined) { + return; + } + + if (key.indexOf(':') !== -1) { + var namespacedAttribute = key.split(':'); + this._node.setAttributeNS(Chartist.namespaces[namespacedAttribute[0]], key, attributes[key]); + } else { + this._node.setAttribute(key, attributes[key]); + } + }.bind(this)); + + return this; + } + + /** + * Create a new SVG element whose wrapper object will be selected for further operations. This way you can also create nested groups easily. + * + * @memberof Chartist.Svg + * @param {String} name The name of the SVG element that should be created as child element of the currently selected element wrapper + * @param {Object} [attributes] An object with properties that will be added as attributes to the SVG element that is created. Attributes with undefined values will not be added. + * @param {String} [className] This class or class list will be added to the SVG element + * @param {Boolean} [insertFirst] If this param is set to true in conjunction with a parent element the newly created element will be added as first child element in the parent element + * @return {Chartist.Svg} Returns a Chartist.Svg wrapper object that can be used to modify the containing SVG data + */ + function elem(name, attributes, className, insertFirst) { + return new Chartist.Svg(name, attributes, className, this, insertFirst); + } + + /** + * Returns the parent Chartist.SVG wrapper object + * + * @memberof Chartist.Svg + * @return {Chartist.Svg} Returns a Chartist.Svg wrapper around the parent node of the current node. If the parent node is not existing or it's not an SVG node then this function will return null. + */ + function parent() { + return this._node.parentNode instanceof SVGElement ? new Chartist.Svg(this._node.parentNode) : null; + } + + /** + * This method returns a Chartist.Svg wrapper around the root SVG element of the current tree. + * + * @memberof Chartist.Svg + * @return {Chartist.Svg} The root SVG element wrapped in a Chartist.Svg element + */ + function root() { + var node = this._node; + while(node.nodeName !== 'svg') { + node = node.parentNode; + } + return new Chartist.Svg(node); + } + + /** + * Find the first child SVG element of the current element that matches a CSS selector. The returned object is a Chartist.Svg wrapper. + * + * @memberof Chartist.Svg + * @param {String} selector A CSS selector that is used to query for child SVG elements + * @return {Chartist.Svg} The SVG wrapper for the element found or null if no element was found + */ + function querySelector(selector) { + var foundNode = this._node.querySelector(selector); + return foundNode ? new Chartist.Svg(foundNode) : null; + } + + /** + * Find the all child SVG elements of the current element that match a CSS selector. The returned object is a Chartist.Svg.List wrapper. + * + * @memberof Chartist.Svg + * @param {String} selector A CSS selector that is used to query for child SVG elements + * @return {Chartist.Svg.List} The SVG wrapper list for the element found or null if no element was found + */ + function querySelectorAll(selector) { + var foundNodes = this._node.querySelectorAll(selector); + return foundNodes.length ? new Chartist.Svg.List(foundNodes) : null; + } + + /** + * Returns the underlying SVG node for the current element. + * + * @memberof Chartist.Svg + * @returns {Node} + */ + function getNode() { + return this._node; + } + + /** + * This method creates a foreignObject (see https://developer.mozilla.org/en-US/docs/Web/SVG/Element/foreignObject) that allows to embed HTML content into a SVG graphic. With the help of foreignObjects you can enable the usage of regular HTML elements inside of SVG where they are subject for SVG positioning and transformation but the Browser will use the HTML rendering capabilities for the containing DOM. + * + * @memberof Chartist.Svg + * @param {Node|String} content The DOM Node, or HTML string that will be converted to a DOM Node, that is then placed into and wrapped by the foreignObject + * @param {String} [attributes] An object with properties that will be added as attributes to the foreignObject element that is created. Attributes with undefined values will not be added. + * @param {String} [className] This class or class list will be added to the SVG element + * @param {Boolean} [insertFirst] Specifies if the foreignObject should be inserted as first child + * @return {Chartist.Svg} New wrapper object that wraps the foreignObject element + */ + function foreignObject(content, attributes, className, insertFirst) { + // If content is string then we convert it to DOM + // TODO: Handle case where content is not a string nor a DOM Node + if(typeof content === 'string') { + var container = document.createElement('div'); + container.innerHTML = content; + content = container.firstChild; + } + + // Adding namespace to content element + content.setAttribute('xmlns', Chartist.namespaces.xmlns); + + // Creating the foreignObject without required extension attribute (as described here + // http://www.w3.org/TR/SVG/extend.html#ForeignObjectElement) + var fnObj = this.elem('foreignObject', attributes, className, insertFirst); + + // Add content to foreignObjectElement + fnObj._node.appendChild(content); + + return fnObj; + } + + /** + * This method adds a new text element to the current Chartist.Svg wrapper. + * + * @memberof Chartist.Svg + * @param {String} t The text that should be added to the text element that is created + * @return {Chartist.Svg} The same wrapper object that was used to add the newly created element + */ + function text(t) { + this._node.appendChild(document.createTextNode(t)); + return this; + } + + /** + * This method will clear all child nodes of the current wrapper object. + * + * @memberof Chartist.Svg + * @return {Chartist.Svg} The same wrapper object that got emptied + */ + function empty() { + while (this._node.firstChild) { + this._node.removeChild(this._node.firstChild); + } + + return this; + } + + /** + * This method will cause the current wrapper to remove itself from its parent wrapper. Use this method if you'd like to get rid of an element in a given DOM structure. + * + * @memberof Chartist.Svg + * @return {Chartist.Svg} The parent wrapper object of the element that got removed + */ + function remove() { + this._node.parentNode.removeChild(this._node); + return this.parent(); + } + + /** + * This method will replace the element with a new element that can be created outside of the current DOM. + * + * @memberof Chartist.Svg + * @param {Chartist.Svg} newElement The new Chartist.Svg object that will be used to replace the current wrapper object + * @return {Chartist.Svg} The wrapper of the new element + */ + function replace(newElement) { + this._node.parentNode.replaceChild(newElement._node, this._node); + return newElement; + } + + /** + * This method will append an element to the current element as a child. + * + * @memberof Chartist.Svg + * @param {Chartist.Svg} element The Chartist.Svg element that should be added as a child + * @param {Boolean} [insertFirst] Specifies if the element should be inserted as first child + * @return {Chartist.Svg} The wrapper of the appended object + */ + function append(element, insertFirst) { + if(insertFirst && this._node.firstChild) { + this._node.insertBefore(element._node, this._node.firstChild); + } else { + this._node.appendChild(element._node); + } + + return this; + } + + /** + * Returns an array of class names that are attached to the current wrapper element. This method can not be chained further. + * + * @memberof Chartist.Svg + * @return {Array} A list of classes or an empty array if there are no classes on the current element + */ + function classes() { + return this._node.getAttribute('class') ? this._node.getAttribute('class').trim().split(/\s+/) : []; + } + + /** + * Adds one or a space separated list of classes to the current element and ensures the classes are only existing once. + * + * @memberof Chartist.Svg + * @param {String} names A white space separated list of class names + * @return {Chartist.Svg} The wrapper of the current element + */ + function addClass(names) { + this._node.setAttribute('class', + this.classes(this._node) + .concat(names.trim().split(/\s+/)) + .filter(function(elem, pos, self) { + return self.indexOf(elem) === pos; + }).join(' ') + ); + + return this; + } + + /** + * Removes one or a space separated list of classes from the current element. + * + * @memberof Chartist.Svg + * @param {String} names A white space separated list of class names + * @return {Chartist.Svg} The wrapper of the current element + */ + function removeClass(names) { + var removedClasses = names.trim().split(/\s+/); + + this._node.setAttribute('class', this.classes(this._node).filter(function(name) { + return removedClasses.indexOf(name) === -1; + }).join(' ')); + + return this; + } + + /** + * Removes all classes from the current element. + * + * @memberof Chartist.Svg + * @return {Chartist.Svg} The wrapper of the current element + */ + function removeAllClasses() { + this._node.setAttribute('class', ''); + + return this; + } + + /** + * Get element height using `getBoundingClientRect` + * + * @memberof Chartist.Svg + * @return {Number} The elements height in pixels + */ + function height() { + return this._node.getBoundingClientRect().height; + } + + /** + * Get element width using `getBoundingClientRect` + * + * @memberof Chartist.Core + * @return {Number} The elements width in pixels + */ + function width() { + return this._node.getBoundingClientRect().width; + } + + /** + * The animate function lets you animate the current element with SMIL animations. You can add animations for multiple attributes at the same time by using an animation definition object. This object should contain SMIL animation attributes. Please refer to http://www.w3.org/TR/SVG/animate.html for a detailed specification about the available animation attributes. Additionally an easing property can be passed in the animation definition object. This can be a string with a name of an easing function in `Chartist.Svg.Easing` or an array with four numbers specifying a cubic Bézier curve. + * **An animations object could look like this:** + * ```javascript + * element.animate({ + * opacity: { + * dur: 1000, + * from: 0, + * to: 1 + * }, + * x1: { + * dur: '1000ms', + * from: 100, + * to: 200, + * easing: 'easeOutQuart' + * }, + * y1: { + * dur: '2s', + * from: 0, + * to: 100 + * } + * }); + * ``` + * **Automatic unit conversion** + * For the `dur` and the `begin` animate attribute you can also omit a unit by passing a number. The number will automatically be converted to milli seconds. + * **Guided mode** + * The default behavior of SMIL animations with offset using the `begin` attribute is that the attribute will keep it's original value until the animation starts. Mostly this behavior is not desired as you'd like to have your element attributes already initialized with the animation `from` value even before the animation starts. Also if you don't specify `fill="freeze"` on an animate element or if you delete the animation after it's done (which is done in guided mode) the attribute will switch back to the initial value. This behavior is also not desired when performing simple one-time animations. For one-time animations you'd want to trigger animations immediately instead of relative to the document begin time. That's why in guided mode Chartist.Svg will also use the `begin` property to schedule a timeout and manually start the animation after the timeout. If you're using multiple SMIL definition objects for an attribute (in an array), guided mode will be disabled for this attribute, even if you explicitly enabled it. + * If guided mode is enabled the following behavior is added: + * - Before the animation starts (even when delayed with `begin`) the animated attribute will be set already to the `from` value of the animation + * - `begin` is explicitly set to `indefinite` so it can be started manually without relying on document begin time (creation) + * - The animate element will be forced to use `fill="freeze"` + * - The animation will be triggered with `beginElement()` in a timeout where `begin` of the definition object is interpreted in milli seconds. If no `begin` was specified the timeout is triggered immediately. + * - After the animation the element attribute value will be set to the `to` value of the animation + * - The animate element is deleted from the DOM + * + * @memberof Chartist.Svg + * @param {Object} animations An animations object where the property keys are the attributes you'd like to animate. The properties should be objects again that contain the SMIL animation attributes (usually begin, dur, from, and to). The property begin and dur is auto converted (see Automatic unit conversion). You can also schedule multiple animations for the same attribute by passing an Array of SMIL definition objects. Attributes that contain an array of SMIL definition objects will not be executed in guided mode. + * @param {Boolean} guided Specify if guided mode should be activated for this animation (see Guided mode). If not otherwise specified, guided mode will be activated. + * @param {Object} eventEmitter If specified, this event emitter will be notified when an animation starts or ends. + * @return {Chartist.Svg} The current element where the animation was added + */ + function animate(animations, guided, eventEmitter) { + if(guided === undefined) { + guided = true; + } + + Object.keys(animations).forEach(function createAnimateForAttributes(attribute) { + + function createAnimate(animationDefinition, guided) { + var attributeProperties = {}, + animate, + timeout, + easing; + + // Check if an easing is specified in the definition object and delete it from the object as it will not + // be part of the animate element attributes. + if(animationDefinition.easing) { + // If already an easing Bézier curve array we take it or we lookup a easing array in the Easing object + easing = animationDefinition.easing instanceof Array ? + animationDefinition.easing : + Chartist.Svg.Easing[animationDefinition.easing]; + delete animationDefinition.easing; + } + + // If numeric dur or begin was provided we assume milli seconds + animationDefinition.begin = Chartist.ensureUnit(animationDefinition.begin, 'ms'); + animationDefinition.dur = Chartist.ensureUnit(animationDefinition.dur, 'ms'); + + if(easing) { + animationDefinition.calcMode = 'spline'; + animationDefinition.keySplines = easing.join(' '); + animationDefinition.keyTimes = '0;1'; + } + + // Adding "fill: freeze" if we are in guided mode and set initial attribute values + if(guided) { + animationDefinition.fill = 'freeze'; + // Animated property on our element should already be set to the animation from value in guided mode + attributeProperties[attribute] = animationDefinition.from; + this.attr(attributeProperties); + + // In guided mode we also set begin to indefinite so we can trigger the start manually and put the begin + // which needs to be in ms aside + timeout = Chartist.quantity(animationDefinition.begin || 0).value; + animationDefinition.begin = 'indefinite'; + } + + animate = this.elem('animate', Chartist.extend({ + attributeName: attribute + }, animationDefinition)); + + if(guided) { + // If guided we take the value that was put aside in timeout and trigger the animation manually with a timeout + setTimeout(function() { + // If beginElement fails we set the animated attribute to the end position and remove the animate element + // This happens if the SMIL ElementTimeControl interface is not supported or any other problems occured in + // the browser. (Currently FF 34 does not support animate elements in foreignObjects) + try { + animate._node.beginElement(); + } catch(err) { + // Set animated attribute to current animated value + attributeProperties[attribute] = animationDefinition.to; + this.attr(attributeProperties); + // Remove the animate element as it's no longer required + animate.remove(); + } + }.bind(this), timeout); + } + + if(eventEmitter) { + animate._node.addEventListener('beginEvent', function handleBeginEvent() { + eventEmitter.emit('animationBegin', { + element: this, + animate: animate._node, + params: animationDefinition + }); + }.bind(this)); + } + + animate._node.addEventListener('endEvent', function handleEndEvent() { + if(eventEmitter) { + eventEmitter.emit('animationEnd', { + element: this, + animate: animate._node, + params: animationDefinition + }); + } + + if(guided) { + // Set animated attribute to current animated value + attributeProperties[attribute] = animationDefinition.to; + this.attr(attributeProperties); + // Remove the animate element as it's no longer required + animate.remove(); + } + }.bind(this)); + } + + // If current attribute is an array of definition objects we create an animate for each and disable guided mode + if(animations[attribute] instanceof Array) { + animations[attribute].forEach(function(animationDefinition) { + createAnimate.bind(this)(animationDefinition, false); + }.bind(this)); + } else { + createAnimate.bind(this)(animations[attribute], guided); + } + + }.bind(this)); + + return this; + } + + Chartist.Svg = Chartist.Class.extend({ + constructor: Svg, + attr: attr, + elem: elem, + parent: parent, + root: root, + querySelector: querySelector, + querySelectorAll: querySelectorAll, + getNode: getNode, + foreignObject: foreignObject, + text: text, + empty: empty, + remove: remove, + replace: replace, + append: append, + classes: classes, + addClass: addClass, + removeClass: removeClass, + removeAllClasses: removeAllClasses, + height: height, + width: width, + animate: animate + }); + + /** + * This method checks for support of a given SVG feature like Extensibility, SVG-animation or the like. Check http://www.w3.org/TR/SVG11/feature for a detailed list. + * + * @memberof Chartist.Svg + * @param {String} feature The SVG 1.1 feature that should be checked for support. + * @return {Boolean} True of false if the feature is supported or not + */ + Chartist.Svg.isSupported = function(feature) { + return document.implementation.hasFeature('http://www.w3.org/TR/SVG11/feature#' + feature, '1.1'); + }; + + /** + * This Object contains some standard easing cubic bezier curves. Then can be used with their name in the `Chartist.Svg.animate`. You can also extend the list and use your own name in the `animate` function. Click the show code button to see the available bezier functions. + * + * @memberof Chartist.Svg + */ + var easingCubicBeziers = { + easeInSine: [0.47, 0, 0.745, 0.715], + easeOutSine: [0.39, 0.575, 0.565, 1], + easeInOutSine: [0.445, 0.05, 0.55, 0.95], + easeInQuad: [0.55, 0.085, 0.68, 0.53], + easeOutQuad: [0.25, 0.46, 0.45, 0.94], + easeInOutQuad: [0.455, 0.03, 0.515, 0.955], + easeInCubic: [0.55, 0.055, 0.675, 0.19], + easeOutCubic: [0.215, 0.61, 0.355, 1], + easeInOutCubic: [0.645, 0.045, 0.355, 1], + easeInQuart: [0.895, 0.03, 0.685, 0.22], + easeOutQuart: [0.165, 0.84, 0.44, 1], + easeInOutQuart: [0.77, 0, 0.175, 1], + easeInQuint: [0.755, 0.05, 0.855, 0.06], + easeOutQuint: [0.23, 1, 0.32, 1], + easeInOutQuint: [0.86, 0, 0.07, 1], + easeInExpo: [0.95, 0.05, 0.795, 0.035], + easeOutExpo: [0.19, 1, 0.22, 1], + easeInOutExpo: [1, 0, 0, 1], + easeInCirc: [0.6, 0.04, 0.98, 0.335], + easeOutCirc: [0.075, 0.82, 0.165, 1], + easeInOutCirc: [0.785, 0.135, 0.15, 0.86], + easeInBack: [0.6, -0.28, 0.735, 0.045], + easeOutBack: [0.175, 0.885, 0.32, 1.275], + easeInOutBack: [0.68, -0.55, 0.265, 1.55] + }; + + Chartist.Svg.Easing = easingCubicBeziers; + + /** + * This helper class is to wrap multiple `Chartist.Svg` elements into a list where you can call the `Chartist.Svg` functions on all elements in the list with one call. This is helpful when you'd like to perform calls with `Chartist.Svg` on multiple elements. + * An instance of this class is also returned by `Chartist.Svg.querySelectorAll`. + * + * @memberof Chartist.Svg + * @param {Array|NodeList} nodeList An Array of SVG DOM nodes or a SVG DOM NodeList (as returned by document.querySelectorAll) + * @constructor + */ + function SvgList(nodeList) { + var list = this; + + this.svgElements = []; + for(var i = 0; i < nodeList.length; i++) { + this.svgElements.push(new Chartist.Svg(nodeList[i])); + } + + // Add delegation methods for Chartist.Svg + Object.keys(Chartist.Svg.prototype).filter(function(prototypeProperty) { + return ['constructor', + 'parent', + 'querySelector', + 'querySelectorAll', + 'replace', + 'append', + 'classes', + 'height', + 'width'].indexOf(prototypeProperty) === -1; + }).forEach(function(prototypeProperty) { + list[prototypeProperty] = function() { + var args = Array.prototype.slice.call(arguments, 0); + list.svgElements.forEach(function(element) { + Chartist.Svg.prototype[prototypeProperty].apply(element, args); + }); + return list; + }; + }); + } + + Chartist.Svg.List = Chartist.Class.extend({ + constructor: SvgList + }); +}(window, document, Chartist)); +;/** + * Chartist SVG path module for SVG path description creation and modification. + * + * @module Chartist.Svg.Path + */ +/* global Chartist */ +(function(window, document, Chartist) { + 'use strict'; + + /** + * Contains the descriptors of supported element types in a SVG path. Currently only move, line and curve are supported. + * + * @memberof Chartist.Svg.Path + * @type {Object} + */ + var elementDescriptions = { + m: ['x', 'y'], + l: ['x', 'y'], + c: ['x1', 'y1', 'x2', 'y2', 'x', 'y'], + a: ['rx', 'ry', 'xAr', 'lAf', 'sf', 'x', 'y'] + }; + + /** + * Default options for newly created SVG path objects. + * + * @memberof Chartist.Svg.Path + * @type {Object} + */ + var defaultOptions = { + // The accuracy in digit count after the decimal point. This will be used to round numbers in the SVG path. If this option is set to false then no rounding will be performed. + accuracy: 3 + }; + + function element(command, params, pathElements, pos, relative, data) { + var pathElement = Chartist.extend({ + command: relative ? command.toLowerCase() : command.toUpperCase() + }, params, data ? { data: data } : {} ); + + pathElements.splice(pos, 0, pathElement); + } + + function forEachParam(pathElements, cb) { + pathElements.forEach(function(pathElement, pathElementIndex) { + elementDescriptions[pathElement.command.toLowerCase()].forEach(function(paramName, paramIndex) { + cb(pathElement, paramName, pathElementIndex, paramIndex, pathElements); + }); + }); + } + + /** + * Used to construct a new path object. + * + * @memberof Chartist.Svg.Path + * @param {Boolean} close If set to true then this path will be closed when stringified (with a Z at the end) + * @param {Object} options Options object that overrides the default objects. See default options for more details. + * @constructor + */ + function SvgPath(close, options) { + this.pathElements = []; + this.pos = 0; + this.close = close; + this.options = Chartist.extend({}, defaultOptions, options); + } + + /** + * Gets or sets the current position (cursor) inside of the path. You can move around the cursor freely but limited to 0 or the count of existing elements. All modifications with element functions will insert new elements at the position of this cursor. + * + * @memberof Chartist.Svg.Path + * @param {Number} [pos] If a number is passed then the cursor is set to this position in the path element array. + * @return {Chartist.Svg.Path|Number} If the position parameter was passed then the return value will be the path object for easy call chaining. If no position parameter was passed then the current position is returned. + */ + function position(pos) { + if(pos !== undefined) { + this.pos = Math.max(0, Math.min(this.pathElements.length, pos)); + return this; + } else { + return this.pos; + } + } + + /** + * Removes elements from the path starting at the current position. + * + * @memberof Chartist.Svg.Path + * @param {Number} count Number of path elements that should be removed from the current position. + * @return {Chartist.Svg.Path} The current path object for easy call chaining. + */ + function remove(count) { + this.pathElements.splice(this.pos, count); + return this; + } + + /** + * Use this function to add a new move SVG path element. + * + * @memberof Chartist.Svg.Path + * @param {Number} x The x coordinate for the move element. + * @param {Number} y The y coordinate for the move element. + * @param {Boolean} [relative] If set to true the move element will be created with relative coordinates (lowercase letter) + * @param {*} [data] Any data that should be stored with the element object that will be accessible in pathElement + * @return {Chartist.Svg.Path} The current path object for easy call chaining. + */ + function move(x, y, relative, data) { + element('M', { + x: +x, + y: +y + }, this.pathElements, this.pos++, relative, data); + return this; + } + + /** + * Use this function to add a new line SVG path element. + * + * @memberof Chartist.Svg.Path + * @param {Number} x The x coordinate for the line element. + * @param {Number} y The y coordinate for the line element. + * @param {Boolean} [relative] If set to true the line element will be created with relative coordinates (lowercase letter) + * @param {*} [data] Any data that should be stored with the element object that will be accessible in pathElement + * @return {Chartist.Svg.Path} The current path object for easy call chaining. + */ + function line(x, y, relative, data) { + element('L', { + x: +x, + y: +y + }, this.pathElements, this.pos++, relative, data); + return this; + } + + /** + * Use this function to add a new curve SVG path element. + * + * @memberof Chartist.Svg.Path + * @param {Number} x1 The x coordinate for the first control point of the bezier curve. + * @param {Number} y1 The y coordinate for the first control point of the bezier curve. + * @param {Number} x2 The x coordinate for the second control point of the bezier curve. + * @param {Number} y2 The y coordinate for the second control point of the bezier curve. + * @param {Number} x The x coordinate for the target point of the curve element. + * @param {Number} y The y coordinate for the target point of the curve element. + * @param {Boolean} [relative] If set to true the curve element will be created with relative coordinates (lowercase letter) + * @param {*} [data] Any data that should be stored with the element object that will be accessible in pathElement + * @return {Chartist.Svg.Path} The current path object for easy call chaining. + */ + function curve(x1, y1, x2, y2, x, y, relative, data) { + element('C', { + x1: +x1, + y1: +y1, + x2: +x2, + y2: +y2, + x: +x, + y: +y + }, this.pathElements, this.pos++, relative, data); + return this; + } + + /** + * Use this function to add a new non-bezier curve SVG path element. + * + * @memberof Chartist.Svg.Path + * @param {Number} rx The radius to be used for the x-axis of the arc. + * @param {Number} ry The radius to be used for the y-axis of the arc. + * @param {Number} xAr Defines the orientation of the arc + * @param {Number} lAf Large arc flag + * @param {Number} sf Sweep flag + * @param {Number} x The x coordinate for the target point of the curve element. + * @param {Number} y The y coordinate for the target point of the curve element. + * @param {Boolean} [relative] If set to true the curve element will be created with relative coordinates (lowercase letter) + * @param {*} [data] Any data that should be stored with the element object that will be accessible in pathElement + * @return {Chartist.Svg.Path} The current path object for easy call chaining. + */ + function arc(rx, ry, xAr, lAf, sf, x, y, relative, data) { + element('A', { + rx: +rx, + ry: +ry, + xAr: +xAr, + lAf: +lAf, + sf: +sf, + x: +x, + y: +y + }, this.pathElements, this.pos++, relative, data); + return this; + } + + /** + * Parses an SVG path seen in the d attribute of path elements, and inserts the parsed elements into the existing path object at the current cursor position. Any closing path indicators (Z at the end of the path) will be ignored by the parser as this is provided by the close option in the options of the path object. + * + * @memberof Chartist.Svg.Path + * @param {String} path Any SVG path that contains move (m), line (l) or curve (c) components. + * @return {Chartist.Svg.Path} The current path object for easy call chaining. + */ + function parse(path) { + // Parsing the SVG path string into an array of arrays [['M', '10', '10'], ['L', '100', '100']] + var chunks = path.replace(/([A-Za-z])([0-9])/g, '$1 $2') + .replace(/([0-9])([A-Za-z])/g, '$1 $2') + .split(/[\s,]+/) + .reduce(function(result, element) { + if(element.match(/[A-Za-z]/)) { + result.push([]); + } + + result[result.length - 1].push(element); + return result; + }, []); + + // If this is a closed path we remove the Z at the end because this is determined by the close option + if(chunks[chunks.length - 1][0].toUpperCase() === 'Z') { + chunks.pop(); + } + + // Using svgPathElementDescriptions to map raw path arrays into objects that contain the command and the parameters + // For example {command: 'M', x: '10', y: '10'} + var elements = chunks.map(function(chunk) { + var command = chunk.shift(), + description = elementDescriptions[command.toLowerCase()]; + + return Chartist.extend({ + command: command + }, description.reduce(function(result, paramName, index) { + result[paramName] = +chunk[index]; + return result; + }, {})); + }); + + // Preparing a splice call with the elements array as var arg params and insert the parsed elements at the current position + var spliceArgs = [this.pos, 0]; + Array.prototype.push.apply(spliceArgs, elements); + Array.prototype.splice.apply(this.pathElements, spliceArgs); + // Increase the internal position by the element count + this.pos += elements.length; + + return this; + } + + /** + * This function renders to current SVG path object into a final SVG string that can be used in the d attribute of SVG path elements. It uses the accuracy option to round big decimals. If the close parameter was set in the constructor of this path object then a path closing Z will be appended to the output string. + * + * @memberof Chartist.Svg.Path + * @return {String} + */ + function stringify() { + var accuracyMultiplier = Math.pow(10, this.options.accuracy); + + return this.pathElements.reduce(function(path, pathElement) { + var params = elementDescriptions[pathElement.command.toLowerCase()].map(function(paramName) { + return this.options.accuracy ? + (Math.round(pathElement[paramName] * accuracyMultiplier) / accuracyMultiplier) : + pathElement[paramName]; + }.bind(this)); + + return path + pathElement.command + params.join(','); + }.bind(this), '') + (this.close ? 'Z' : ''); + } + + /** + * Scales all elements in the current SVG path object. There is an individual parameter for each coordinate. Scaling will also be done for control points of curves, affecting the given coordinate. + * + * @memberof Chartist.Svg.Path + * @param {Number} x The number which will be used to scale the x, x1 and x2 of all path elements. + * @param {Number} y The number which will be used to scale the y, y1 and y2 of all path elements. + * @return {Chartist.Svg.Path} The current path object for easy call chaining. + */ + function scale(x, y) { + forEachParam(this.pathElements, function(pathElement, paramName) { + pathElement[paramName] *= paramName[0] === 'x' ? x : y; + }); + return this; + } + + /** + * Translates all elements in the current SVG path object. The translation is relative and there is an individual parameter for each coordinate. Translation will also be done for control points of curves, affecting the given coordinate. + * + * @memberof Chartist.Svg.Path + * @param {Number} x The number which will be used to translate the x, x1 and x2 of all path elements. + * @param {Number} y The number which will be used to translate the y, y1 and y2 of all path elements. + * @return {Chartist.Svg.Path} The current path object for easy call chaining. + */ + function translate(x, y) { + forEachParam(this.pathElements, function(pathElement, paramName) { + pathElement[paramName] += paramName[0] === 'x' ? x : y; + }); + return this; + } + + /** + * This function will run over all existing path elements and then loop over their attributes. The callback function will be called for every path element attribute that exists in the current path. + * The method signature of the callback function looks like this: + * ```javascript + * function(pathElement, paramName, pathElementIndex, paramIndex, pathElements) + * ``` + * If something else than undefined is returned by the callback function, this value will be used to replace the old value. This allows you to build custom transformations of path objects that can't be achieved using the basic transformation functions scale and translate. + * + * @memberof Chartist.Svg.Path + * @param {Function} transformFnc The callback function for the transformation. Check the signature in the function description. + * @return {Chartist.Svg.Path} The current path object for easy call chaining. + */ + function transform(transformFnc) { + forEachParam(this.pathElements, function(pathElement, paramName, pathElementIndex, paramIndex, pathElements) { + var transformed = transformFnc(pathElement, paramName, pathElementIndex, paramIndex, pathElements); + if(transformed || transformed === 0) { + pathElement[paramName] = transformed; + } + }); + return this; + } + + /** + * This function clones a whole path object with all its properties. This is a deep clone and path element objects will also be cloned. + * + * @memberof Chartist.Svg.Path + * @param {Boolean} [close] Optional option to set the new cloned path to closed. If not specified or false, the original path close option will be used. + * @return {Chartist.Svg.Path} + */ + function clone(close) { + var c = new Chartist.Svg.Path(close || this.close); + c.pos = this.pos; + c.pathElements = this.pathElements.slice().map(function cloneElements(pathElement) { + return Chartist.extend({}, pathElement); + }); + c.options = Chartist.extend({}, this.options); + return c; + } + + /** + * Split a Svg.Path object by a specific command in the path chain. The path chain will be split and an array of newly created paths objects will be returned. This is useful if you'd like to split an SVG path by it's move commands, for example, in order to isolate chunks of drawings. + * + * @memberof Chartist.Svg.Path + * @param {String} command The command you'd like to use to split the path + * @return {Array} + */ + function splitByCommand(command) { + var split = [ + new Chartist.Svg.Path() + ]; + + this.pathElements.forEach(function(pathElement) { + if(pathElement.command === command.toUpperCase() && split[split.length - 1].pathElements.length !== 0) { + split.push(new Chartist.Svg.Path()); + } + + split[split.length - 1].pathElements.push(pathElement); + }); + + return split; + } + + /** + * This static function on `Chartist.Svg.Path` is joining multiple paths together into one paths. + * + * @memberof Chartist.Svg.Path + * @param {Array} paths A list of paths to be joined together. The order is important. + * @param {boolean} close If the newly created path should be a closed path + * @param {Object} options Path options for the newly created path. + * @return {Chartist.Svg.Path} + */ + + function join(paths, close, options) { + var joinedPath = new Chartist.Svg.Path(close, options); + for(var i = 0; i < paths.length; i++) { + var path = paths[i]; + for(var j = 0; j < path.pathElements.length; j++) { + joinedPath.pathElements.push(path.pathElements[j]); + } + } + return joinedPath; + } + + Chartist.Svg.Path = Chartist.Class.extend({ + constructor: SvgPath, + position: position, + remove: remove, + move: move, + line: line, + curve: curve, + arc: arc, + scale: scale, + translate: translate, + transform: transform, + parse: parse, + stringify: stringify, + clone: clone, + splitByCommand: splitByCommand + }); + + Chartist.Svg.Path.elementDescriptions = elementDescriptions; + Chartist.Svg.Path.join = join; +}(window, document, Chartist)); +;/* global Chartist */ +(function (window, document, Chartist) { + 'use strict'; + + var axisUnits = { + x: { + pos: 'x', + len: 'width', + dir: 'horizontal', + rectStart: 'x1', + rectEnd: 'x2', + rectOffset: 'y2' + }, + y: { + pos: 'y', + len: 'height', + dir: 'vertical', + rectStart: 'y2', + rectEnd: 'y1', + rectOffset: 'x1' + } + }; + + function Axis(units, chartRect, ticks, options) { + this.units = units; + this.counterUnits = units === axisUnits.x ? axisUnits.y : axisUnits.x; + this.chartRect = chartRect; + this.axisLength = chartRect[units.rectEnd] - chartRect[units.rectStart]; + this.gridOffset = chartRect[units.rectOffset]; + this.ticks = ticks; + this.options = options; + } + + function createGridAndLabels(gridGroup, labelGroup, useForeignObject, chartOptions, eventEmitter) { + var axisOptions = chartOptions['axis' + this.units.pos.toUpperCase()]; + var projectedValues = this.ticks.map(this.projectValue.bind(this)); + var labelValues = this.ticks.map(axisOptions.labelInterpolationFnc); + + projectedValues.forEach(function(projectedValue, index) { + var labelOffset = { + x: 0, + y: 0 + }; + + // TODO: Find better solution for solving this problem + // Calculate how much space we have available for the label + var labelLength; + if(projectedValues[index + 1]) { + // If we still have one label ahead, we can calculate the distance to the next tick / label + labelLength = projectedValues[index + 1] - projectedValue; + } else { + // If we don't have a label ahead and we have only two labels in total, we just take the remaining distance to + // on the whole axis length. We limit that to a minimum of 30 pixel, so that labels close to the border will + // still be visible inside of the chart padding. + labelLength = Math.max(this.axisLength - projectedValue, 30); + } + + // Skip grid lines and labels where interpolated label values are falsey (execpt for 0) + if(Chartist.isFalseyButZero(labelValues[index]) && labelValues[index] !== '') { + return; + } + + // Transform to global coordinates using the chartRect + // We also need to set the label offset for the createLabel function + if(this.units.pos === 'x') { + projectedValue = this.chartRect.x1 + projectedValue; + labelOffset.x = chartOptions.axisX.labelOffset.x; + + // If the labels should be positioned in start position (top side for vertical axis) we need to set a + // different offset as for positioned with end (bottom) + if(chartOptions.axisX.position === 'start') { + labelOffset.y = this.chartRect.padding.top + chartOptions.axisX.labelOffset.y + (useForeignObject ? 5 : 20); + } else { + labelOffset.y = this.chartRect.y1 + chartOptions.axisX.labelOffset.y + (useForeignObject ? 5 : 20); + } + } else { + projectedValue = this.chartRect.y1 - projectedValue; + labelOffset.y = chartOptions.axisY.labelOffset.y - (useForeignObject ? labelLength : 0); + + // If the labels should be positioned in start position (left side for horizontal axis) we need to set a + // different offset as for positioned with end (right side) + if(chartOptions.axisY.position === 'start') { + labelOffset.x = useForeignObject ? this.chartRect.padding.left + chartOptions.axisY.labelOffset.x : this.chartRect.x1 - 10; + } else { + labelOffset.x = this.chartRect.x2 + chartOptions.axisY.labelOffset.x + 10; + } + } + + if(axisOptions.showGrid) { + Chartist.createGrid(projectedValue, index, this, this.gridOffset, this.chartRect[this.counterUnits.len](), gridGroup, [ + chartOptions.classNames.grid, + chartOptions.classNames[this.units.dir] + ], eventEmitter); + } + + if(axisOptions.showLabel) { + Chartist.createLabel(projectedValue, labelLength, index, labelValues, this, axisOptions.offset, labelOffset, labelGroup, [ + chartOptions.classNames.label, + chartOptions.classNames[this.units.dir], + (axisOptions.position === 'start' ? chartOptions.classNames[axisOptions.position] : chartOptions.classNames['end']) + ], useForeignObject, eventEmitter); + } + }.bind(this)); + } + + Chartist.Axis = Chartist.Class.extend({ + constructor: Axis, + createGridAndLabels: createGridAndLabels, + projectValue: function(value, index, data) { + throw new Error('Base axis can\'t be instantiated!'); + } + }); + + Chartist.Axis.units = axisUnits; + +}(window, document, Chartist)); +;/** + * The auto scale axis uses standard linear scale projection of values along an axis. It uses order of magnitude to find a scale automatically and evaluates the available space in order to find the perfect amount of ticks for your chart. + * **Options** + * The following options are used by this axis in addition to the default axis options outlined in the axis configuration of the chart default settings. + * ```javascript + * var options = { + * // If high is specified then the axis will display values explicitly up to this value and the computed maximum from the data is ignored + * high: 100, + * // If low is specified then the axis will display values explicitly down to this value and the computed minimum from the data is ignored + * low: 0, + * // This option will be used when finding the right scale division settings. The amount of ticks on the scale will be determined so that as many ticks as possible will be displayed, while not violating this minimum required space (in pixel). + * scaleMinSpace: 20, + * // Can be set to true or false. If set to true, the scale will be generated with whole numbers only. + * onlyInteger: true, + * // The reference value can be used to make sure that this value will always be on the chart. This is especially useful on bipolar charts where the bipolar center always needs to be part of the chart. + * referenceValue: 5 + * }; + * ``` + * + * @module Chartist.AutoScaleAxis + */ +/* global Chartist */ +(function (window, document, Chartist) { + 'use strict'; + + function AutoScaleAxis(axisUnit, data, chartRect, options) { + // Usually we calculate highLow based on the data but this can be overriden by a highLow object in the options + var highLow = options.highLow || Chartist.getHighLow(data, options, axisUnit.pos); + this.bounds = Chartist.getBounds(chartRect[axisUnit.rectEnd] - chartRect[axisUnit.rectStart], highLow, options.scaleMinSpace || 20, options.onlyInteger); + this.range = { + min: this.bounds.min, + max: this.bounds.max + }; + + Chartist.AutoScaleAxis.super.constructor.call(this, + axisUnit, + chartRect, + this.bounds.values, + options); + } + + function projectValue(value) { + return this.axisLength * (+Chartist.getMultiValue(value, this.units.pos) - this.bounds.min) / this.bounds.range; + } + + Chartist.AutoScaleAxis = Chartist.Axis.extend({ + constructor: AutoScaleAxis, + projectValue: projectValue + }); + +}(window, document, Chartist)); +;/** + * The fixed scale axis uses standard linear projection of values along an axis. It makes use of a divisor option to divide the range provided from the minimum and maximum value or the options high and low that will override the computed minimum and maximum. + * **Options** + * The following options are used by this axis in addition to the default axis options outlined in the axis configuration of the chart default settings. + * ```javascript + * var options = { + * // If high is specified then the axis will display values explicitly up to this value and the computed maximum from the data is ignored + * high: 100, + * // If low is specified then the axis will display values explicitly down to this value and the computed minimum from the data is ignored + * low: 0, + * // If specified then the value range determined from minimum to maximum (or low and high) will be divided by this number and ticks will be generated at those division points. The default divisor is 1. + * divisor: 4, + * // If ticks is explicitly set, then the axis will not compute the ticks with the divisor, but directly use the data in ticks to determine at what points on the axis a tick need to be generated. + * ticks: [1, 10, 20, 30] + * }; + * ``` + * + * @module Chartist.FixedScaleAxis + */ +/* global Chartist */ +(function (window, document, Chartist) { + 'use strict'; + + function FixedScaleAxis(axisUnit, data, chartRect, options) { + var highLow = options.highLow || Chartist.getHighLow(data, options, axisUnit.pos); + this.divisor = options.divisor || 1; + this.ticks = options.ticks || Chartist.times(this.divisor).map(function(value, index) { + return highLow.low + (highLow.high - highLow.low) / this.divisor * index; + }.bind(this)); + this.ticks.sort(function(a, b) { + return a - b; + }); + this.range = { + min: highLow.low, + max: highLow.high + }; + + Chartist.FixedScaleAxis.super.constructor.call(this, + axisUnit, + chartRect, + this.ticks, + options); + + this.stepLength = this.axisLength / this.divisor; + } + + function projectValue(value) { + return this.axisLength * (+Chartist.getMultiValue(value, this.units.pos) - this.range.min) / (this.range.max - this.range.min); + } + + Chartist.FixedScaleAxis = Chartist.Axis.extend({ + constructor: FixedScaleAxis, + projectValue: projectValue + }); + +}(window, document, Chartist)); +;/** + * The step axis for step based charts like bar chart or step based line charts. It uses a fixed amount of ticks that will be equally distributed across the whole axis length. The projection is done using the index of the data value rather than the value itself and therefore it's only useful for distribution purpose. + * **Options** + * The following options are used by this axis in addition to the default axis options outlined in the axis configuration of the chart default settings. + * ```javascript + * var options = { + * // Ticks to be used to distribute across the axis length. As this axis type relies on the index of the value rather than the value, arbitrary data that can be converted to a string can be used as ticks. + * ticks: ['One', 'Two', 'Three'], + * // If set to true the full width will be used to distribute the values where the last value will be at the maximum of the axis length. If false the spaces between the ticks will be evenly distributed instead. + * stretch: true + * }; + * ``` + * + * @module Chartist.StepAxis + */ +/* global Chartist */ +(function (window, document, Chartist) { + 'use strict'; + + function StepAxis(axisUnit, data, chartRect, options) { + Chartist.StepAxis.super.constructor.call(this, + axisUnit, + chartRect, + options.ticks, + options); + + var calc = Math.max(1, options.ticks.length - (options.stretch ? 1 : 0)); + this.stepLength = this.axisLength / calc; + } + + function projectValue(value, index) { + return this.stepLength * index; + } + + Chartist.StepAxis = Chartist.Axis.extend({ + constructor: StepAxis, + projectValue: projectValue + }); + +}(window, document, Chartist)); +;/** + * The Chartist line chart can be used to draw Line or Scatter charts. If used in the browser you can access the global `Chartist` namespace where you find the `Line` function as a main entry point. + * + * For examples on how to use the line chart please check the examples of the `Chartist.Line` method. + * + * @module Chartist.Line + */ +/* global Chartist */ +(function(window, document, Chartist){ + 'use strict'; + + /** + * Default options in line charts. Expand the code view to see a detailed list of options with comments. + * + * @memberof Chartist.Line + */ + var defaultOptions = { + // Options for X-Axis + axisX: { + // The offset of the labels to the chart area + offset: 30, + // Position where labels are placed. Can be set to `start` or `end` where `start` is equivalent to left or top on vertical axis and `end` is equivalent to right or bottom on horizontal axis. + position: 'end', + // Allows you to correct label positioning on this axis by positive or negative x and y offset. + labelOffset: { + x: 0, + y: 0 + }, + // If labels should be shown or not + showLabel: true, + // If the axis grid should be drawn or not + showGrid: true, + // Interpolation function that allows you to intercept the value from the axis label + labelInterpolationFnc: Chartist.noop, + // Set the axis type to be used to project values on this axis. If not defined, Chartist.StepAxis will be used for the X-Axis, where the ticks option will be set to the labels in the data and the stretch option will be set to the global fullWidth option. This type can be changed to any axis constructor available (e.g. Chartist.FixedScaleAxis), where all axis options should be present here. + type: undefined + }, + // Options for Y-Axis + axisY: { + // The offset of the labels to the chart area + offset: 40, + // Position where labels are placed. Can be set to `start` or `end` where `start` is equivalent to left or top on vertical axis and `end` is equivalent to right or bottom on horizontal axis. + position: 'start', + // Allows you to correct label positioning on this axis by positive or negative x and y offset. + labelOffset: { + x: 0, + y: 0 + }, + // If labels should be shown or not + showLabel: true, + // If the axis grid should be drawn or not + showGrid: true, + // Interpolation function that allows you to intercept the value from the axis label + labelInterpolationFnc: Chartist.noop, + // Set the axis type to be used to project values on this axis. If not defined, Chartist.AutoScaleAxis will be used for the Y-Axis, where the high and low options will be set to the global high and low options. This type can be changed to any axis constructor available (e.g. Chartist.FixedScaleAxis), where all axis options should be present here. + type: undefined, + // This value specifies the minimum height in pixel of the scale steps + scaleMinSpace: 20, + // Use only integer values (whole numbers) for the scale steps + onlyInteger: false + }, + // Specify a fixed width for the chart as a string (i.e. '100px' or '50%') + width: undefined, + // Specify a fixed height for the chart as a string (i.e. '100px' or '50%') + height: undefined, + // If the line should be drawn or not + showLine: true, + // If dots should be drawn or not + showPoint: true, + // If the line chart should draw an area + showArea: false, + // The base for the area chart that will be used to close the area shape (is normally 0) + areaBase: 0, + // Specify if the lines should be smoothed. This value can be true or false where true will result in smoothing using the default smoothing interpolation function Chartist.Interpolation.cardinal and false results in Chartist.Interpolation.none. You can also choose other smoothing / interpolation functions available in the Chartist.Interpolation module, or write your own interpolation function. Check the examples for a brief description. + lineSmooth: true, + // If the line chart should add a background fill to the .ct-grids group. + showGridBackground: false, + // Overriding the natural low of the chart allows you to zoom in or limit the charts lowest displayed value + low: undefined, + // Overriding the natural high of the chart allows you to zoom in or limit the charts highest displayed value + high: undefined, + // Padding of the chart drawing area to the container element and labels as a number or padding object {top: 5, right: 5, bottom: 5, left: 5} + chartPadding: { + top: 15, + right: 15, + bottom: 5, + left: 10 + }, + // When set to true, the last grid line on the x-axis is not drawn and the chart elements will expand to the full available width of the chart. For the last label to be drawn correctly you might need to add chart padding or offset the last label with a draw event handler. + fullWidth: false, + // If true the whole data is reversed including labels, the series order as well as the whole series data arrays. + reverseData: false, + // Override the class names that get used to generate the SVG structure of the chart + classNames: { + chart: 'ct-chart-line', + label: 'ct-label', + labelGroup: 'ct-labels', + series: 'ct-series', + line: 'ct-line', + point: 'ct-point', + area: 'ct-area', + grid: 'ct-grid', + gridGroup: 'ct-grids', + gridBackground: 'ct-grid-background', + vertical: 'ct-vertical', + horizontal: 'ct-horizontal', + start: 'ct-start', + end: 'ct-end' + } + }; + + /** + * Creates a new chart + * + */ + function createChart(options) { + var data = Chartist.normalizeData(this.data, options.reverseData, true); + + // Create new svg object + this.svg = Chartist.createSvg(this.container, options.width, options.height, options.classNames.chart); + // Create groups for labels, grid and series + var gridGroup = this.svg.elem('g').addClass(options.classNames.gridGroup); + var seriesGroup = this.svg.elem('g'); + var labelGroup = this.svg.elem('g').addClass(options.classNames.labelGroup); + + var chartRect = Chartist.createChartRect(this.svg, options, defaultOptions.padding); + var axisX, axisY; + + if(options.axisX.type === undefined) { + axisX = new Chartist.StepAxis(Chartist.Axis.units.x, data.normalized.series, chartRect, Chartist.extend({}, options.axisX, { + ticks: data.normalized.labels, + stretch: options.fullWidth + })); + } else { + axisX = options.axisX.type.call(Chartist, Chartist.Axis.units.x, data.normalized.series, chartRect, options.axisX); + } + + if(options.axisY.type === undefined) { + axisY = new Chartist.AutoScaleAxis(Chartist.Axis.units.y, data.normalized.series, chartRect, Chartist.extend({}, options.axisY, { + high: Chartist.isNumeric(options.high) ? options.high : options.axisY.high, + low: Chartist.isNumeric(options.low) ? options.low : options.axisY.low + })); + } else { + axisY = options.axisY.type.call(Chartist, Chartist.Axis.units.y, data.normalized.series, chartRect, options.axisY); + } + + axisX.createGridAndLabels(gridGroup, labelGroup, this.supportsForeignObject, options, this.eventEmitter); + axisY.createGridAndLabels(gridGroup, labelGroup, this.supportsForeignObject, options, this.eventEmitter); + + if (options.showGridBackground) { + Chartist.createGridBackground(gridGroup, chartRect, options.classNames.gridBackground, this.eventEmitter); + } + + // Draw the series + data.raw.series.forEach(function(series, seriesIndex) { + var seriesElement = seriesGroup.elem('g'); + + // Write attributes to series group element. If series name or meta is undefined the attributes will not be written + seriesElement.attr({ + 'ct:series-name': series.name, + 'ct:meta': Chartist.serialize(series.meta) + }); + + // Use series class from series data or if not set generate one + seriesElement.addClass([ + options.classNames.series, + (series.className || options.classNames.series + '-' + Chartist.alphaNumerate(seriesIndex)) + ].join(' ')); + + var pathCoordinates = [], + pathData = []; + + data.normalized.series[seriesIndex].forEach(function(value, valueIndex) { + var p = { + x: chartRect.x1 + axisX.projectValue(value, valueIndex, data.normalized.series[seriesIndex]), + y: chartRect.y1 - axisY.projectValue(value, valueIndex, data.normalized.series[seriesIndex]) + }; + pathCoordinates.push(p.x, p.y); + pathData.push({ + value: value, + valueIndex: valueIndex, + meta: Chartist.getMetaData(series, valueIndex) + }); + }.bind(this)); + + var seriesOptions = { + lineSmooth: Chartist.getSeriesOption(series, options, 'lineSmooth'), + showPoint: Chartist.getSeriesOption(series, options, 'showPoint'), + showLine: Chartist.getSeriesOption(series, options, 'showLine'), + showArea: Chartist.getSeriesOption(series, options, 'showArea'), + areaBase: Chartist.getSeriesOption(series, options, 'areaBase') + }; + + var smoothing = typeof seriesOptions.lineSmooth === 'function' ? + seriesOptions.lineSmooth : (seriesOptions.lineSmooth ? Chartist.Interpolation.monotoneCubic() : Chartist.Interpolation.none()); + // Interpolating path where pathData will be used to annotate each path element so we can trace back the original + // index, value and meta data + var path = smoothing(pathCoordinates, pathData); + + // If we should show points we need to create them now to avoid secondary loop + // Points are drawn from the pathElements returned by the interpolation function + // Small offset for Firefox to render squares correctly + if (seriesOptions.showPoint) { + + path.pathElements.forEach(function(pathElement) { + var point = seriesElement.elem('line', { + x1: pathElement.x, + y1: pathElement.y, + x2: pathElement.x + 0.01, + y2: pathElement.y + }, options.classNames.point).attr({ + 'ct:value': [pathElement.data.value.x, pathElement.data.value.y].filter(Chartist.isNumeric).join(','), + 'ct:meta': Chartist.serialize(pathElement.data.meta) + }); + + this.eventEmitter.emit('draw', { + type: 'point', + value: pathElement.data.value, + index: pathElement.data.valueIndex, + meta: pathElement.data.meta, + series: series, + seriesIndex: seriesIndex, + axisX: axisX, + axisY: axisY, + group: seriesElement, + element: point, + x: pathElement.x, + y: pathElement.y + }); + }.bind(this)); + } + + if(seriesOptions.showLine) { + var line = seriesElement.elem('path', { + d: path.stringify() + }, options.classNames.line, true); + + this.eventEmitter.emit('draw', { + type: 'line', + values: data.normalized.series[seriesIndex], + path: path.clone(), + chartRect: chartRect, + index: seriesIndex, + series: series, + seriesIndex: seriesIndex, + seriesMeta: series.meta, + axisX: axisX, + axisY: axisY, + group: seriesElement, + element: line + }); + } + + // Area currently only works with axes that support a range! + if(seriesOptions.showArea && axisY.range) { + // If areaBase is outside the chart area (< min or > max) we need to set it respectively so that + // the area is not drawn outside the chart area. + var areaBase = Math.max(Math.min(seriesOptions.areaBase, axisY.range.max), axisY.range.min); + + // We project the areaBase value into screen coordinates + var areaBaseProjected = chartRect.y1 - axisY.projectValue(areaBase); + + // In order to form the area we'll first split the path by move commands so we can chunk it up into segments + path.splitByCommand('M').filter(function onlySolidSegments(pathSegment) { + // We filter only "solid" segments that contain more than one point. Otherwise there's no need for an area + return pathSegment.pathElements.length > 1; + }).map(function convertToArea(solidPathSegments) { + // Receiving the filtered solid path segments we can now convert those segments into fill areas + var firstElement = solidPathSegments.pathElements[0]; + var lastElement = solidPathSegments.pathElements[solidPathSegments.pathElements.length - 1]; + + // Cloning the solid path segment with closing option and removing the first move command from the clone + // We then insert a new move that should start at the area base and draw a straight line up or down + // at the end of the path we add an additional straight line to the projected area base value + // As the closing option is set our path will be automatically closed + return solidPathSegments.clone(true) + .position(0) + .remove(1) + .move(firstElement.x, areaBaseProjected) + .line(firstElement.x, firstElement.y) + .position(solidPathSegments.pathElements.length + 1) + .line(lastElement.x, areaBaseProjected); + + }).forEach(function createArea(areaPath) { + // For each of our newly created area paths, we'll now create path elements by stringifying our path objects + // and adding the created DOM elements to the correct series group + var area = seriesElement.elem('path', { + d: areaPath.stringify() + }, options.classNames.area, true); + + // Emit an event for each area that was drawn + this.eventEmitter.emit('draw', { + type: 'area', + values: data.normalized.series[seriesIndex], + path: areaPath.clone(), + series: series, + seriesIndex: seriesIndex, + axisX: axisX, + axisY: axisY, + chartRect: chartRect, + index: seriesIndex, + group: seriesElement, + element: area + }); + }.bind(this)); + } + }.bind(this)); + + this.eventEmitter.emit('created', { + bounds: axisY.bounds, + chartRect: chartRect, + axisX: axisX, + axisY: axisY, + svg: this.svg, + options: options + }); + } + + /** + * This method creates a new line chart. + * + * @memberof Chartist.Line + * @param {String|Node} query A selector query string or directly a DOM element + * @param {Object} data The data object that needs to consist of a labels and a series array + * @param {Object} [options] The options object with options that override the default options. Check the examples for a detailed list. + * @param {Array} [responsiveOptions] Specify an array of responsive option arrays which are a media query and options object pair => [[mediaQueryString, optionsObject],[more...]] + * @return {Object} An object which exposes the API for the created chart + * + * @example + * // Create a simple line chart + * var data = { + * // A labels array that can contain any sort of values + * labels: ['Mon', 'Tue', 'Wed', 'Thu', 'Fri'], + * // Our series array that contains series objects or in this case series data arrays + * series: [ + * [5, 2, 4, 2, 0] + * ] + * }; + * + * // As options we currently only set a static size of 300x200 px + * var options = { + * width: '300px', + * height: '200px' + * }; + * + * // In the global name space Chartist we call the Line function to initialize a line chart. As a first parameter we pass in a selector where we would like to get our chart created. Second parameter is the actual data object and as a third parameter we pass in our options + * new Chartist.Line('.ct-chart', data, options); + * + * @example + * // Use specific interpolation function with configuration from the Chartist.Interpolation module + * + * var chart = new Chartist.Line('.ct-chart', { + * labels: [1, 2, 3, 4, 5], + * series: [ + * [1, 1, 8, 1, 7] + * ] + * }, { + * lineSmooth: Chartist.Interpolation.cardinal({ + * tension: 0.2 + * }) + * }); + * + * @example + * // Create a line chart with responsive options + * + * var data = { + * // A labels array that can contain any sort of values + * labels: ['Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday'], + * // Our series array that contains series objects or in this case series data arrays + * series: [ + * [5, 2, 4, 2, 0] + * ] + * }; + * + * // In addition to the regular options we specify responsive option overrides that will override the default configutation based on the matching media queries. + * var responsiveOptions = [ + * ['screen and (min-width: 641px) and (max-width: 1024px)', { + * showPoint: false, + * axisX: { + * labelInterpolationFnc: function(value) { + * // Will return Mon, Tue, Wed etc. on medium screens + * return value.slice(0, 3); + * } + * } + * }], + * ['screen and (max-width: 640px)', { + * showLine: false, + * axisX: { + * labelInterpolationFnc: function(value) { + * // Will return M, T, W etc. on small screens + * return value[0]; + * } + * } + * }] + * ]; + * + * new Chartist.Line('.ct-chart', data, null, responsiveOptions); + * + */ + function Line(query, data, options, responsiveOptions) { + Chartist.Line.super.constructor.call(this, + query, + data, + defaultOptions, + Chartist.extend({}, defaultOptions, options), + responsiveOptions); + } + + // Creating line chart type in Chartist namespace + Chartist.Line = Chartist.Base.extend({ + constructor: Line, + createChart: createChart + }); + +}(window, document, Chartist)); +;/** + * The bar chart module of Chartist that can be used to draw unipolar or bipolar bar and grouped bar charts. + * + * @module Chartist.Bar + */ +/* global Chartist */ +(function(window, document, Chartist){ + 'use strict'; + + /** + * Default options in bar charts. Expand the code view to see a detailed list of options with comments. + * + * @memberof Chartist.Bar + */ + var defaultOptions = { + // Options for X-Axis + axisX: { + // The offset of the chart drawing area to the border of the container + offset: 30, + // Position where labels are placed. Can be set to `start` or `end` where `start` is equivalent to left or top on vertical axis and `end` is equivalent to right or bottom on horizontal axis. + position: 'end', + // Allows you to correct label positioning on this axis by positive or negative x and y offset. + labelOffset: { + x: 0, + y: 0 + }, + // If labels should be shown or not + showLabel: true, + // If the axis grid should be drawn or not + showGrid: true, + // Interpolation function that allows you to intercept the value from the axis label + labelInterpolationFnc: Chartist.noop, + // This value specifies the minimum width in pixel of the scale steps + scaleMinSpace: 30, + // Use only integer values (whole numbers) for the scale steps + onlyInteger: false + }, + // Options for Y-Axis + axisY: { + // The offset of the chart drawing area to the border of the container + offset: 40, + // Position where labels are placed. Can be set to `start` or `end` where `start` is equivalent to left or top on vertical axis and `end` is equivalent to right or bottom on horizontal axis. + position: 'start', + // Allows you to correct label positioning on this axis by positive or negative x and y offset. + labelOffset: { + x: 0, + y: 0 + }, + // If labels should be shown or not + showLabel: true, + // If the axis grid should be drawn or not + showGrid: true, + // Interpolation function that allows you to intercept the value from the axis label + labelInterpolationFnc: Chartist.noop, + // This value specifies the minimum height in pixel of the scale steps + scaleMinSpace: 20, + // Use only integer values (whole numbers) for the scale steps + onlyInteger: false + }, + // Specify a fixed width for the chart as a string (i.e. '100px' or '50%') + width: undefined, + // Specify a fixed height for the chart as a string (i.e. '100px' or '50%') + height: undefined, + // Overriding the natural high of the chart allows you to zoom in or limit the charts highest displayed value + high: undefined, + // Overriding the natural low of the chart allows you to zoom in or limit the charts lowest displayed value + low: undefined, + // Unless low/high are explicitly set, bar chart will be centered at zero by default. Set referenceValue to null to auto scale. + referenceValue: 0, + // Padding of the chart drawing area to the container element and labels as a number or padding object {top: 5, right: 5, bottom: 5, left: 5} + chartPadding: { + top: 15, + right: 15, + bottom: 5, + left: 10 + }, + // Specify the distance in pixel of bars in a group + seriesBarDistance: 15, + // If set to true this property will cause the series bars to be stacked. Check the `stackMode` option for further stacking options. + stackBars: false, + // If set to 'overlap' this property will force the stacked bars to draw from the zero line. + // If set to 'accumulate' this property will form a total for each series point. This will also influence the y-axis and the overall bounds of the chart. In stacked mode the seriesBarDistance property will have no effect. + stackMode: 'accumulate', + // Inverts the axes of the bar chart in order to draw a horizontal bar chart. Be aware that you also need to invert your axis settings as the Y Axis will now display the labels and the X Axis the values. + horizontalBars: false, + // If set to true then each bar will represent a series and the data array is expected to be a one dimensional array of data values rather than a series array of series. This is useful if the bar chart should represent a profile rather than some data over time. + distributeSeries: false, + // If true the whole data is reversed including labels, the series order as well as the whole series data arrays. + reverseData: false, + // If the bar chart should add a background fill to the .ct-grids group. + showGridBackground: false, + // Override the class names that get used to generate the SVG structure of the chart + classNames: { + chart: 'ct-chart-bar', + horizontalBars: 'ct-horizontal-bars', + label: 'ct-label', + labelGroup: 'ct-labels', + series: 'ct-series', + bar: 'ct-bar', + grid: 'ct-grid', + gridGroup: 'ct-grids', + gridBackground: 'ct-grid-background', + vertical: 'ct-vertical', + horizontal: 'ct-horizontal', + start: 'ct-start', + end: 'ct-end' + } + }; + + /** + * Creates a new chart + * + */ + function createChart(options) { + var data; + var highLow; + + if(options.distributeSeries) { + data = Chartist.normalizeData(this.data, options.reverseData, options.horizontalBars ? 'x' : 'y'); + data.normalized.series = data.normalized.series.map(function(value) { + return [value]; + }); + } else { + data = Chartist.normalizeData(this.data, options.reverseData, options.horizontalBars ? 'x' : 'y'); + } + + // Create new svg element + this.svg = Chartist.createSvg( + this.container, + options.width, + options.height, + options.classNames.chart + (options.horizontalBars ? ' ' + options.classNames.horizontalBars : '') + ); + + // Drawing groups in correct order + var gridGroup = this.svg.elem('g').addClass(options.classNames.gridGroup); + var seriesGroup = this.svg.elem('g'); + var labelGroup = this.svg.elem('g').addClass(options.classNames.labelGroup); + + if(options.stackBars && data.normalized.series.length !== 0) { + + // If stacked bars we need to calculate the high low from stacked values from each series + var serialSums = Chartist.serialMap(data.normalized.series, function serialSums() { + return Array.prototype.slice.call(arguments).map(function(value) { + return value; + }).reduce(function(prev, curr) { + return { + x: prev.x + (curr && curr.x) || 0, + y: prev.y + (curr && curr.y) || 0 + }; + }, {x: 0, y: 0}); + }); + + highLow = Chartist.getHighLow([serialSums], options, options.horizontalBars ? 'x' : 'y'); + + } else { + + highLow = Chartist.getHighLow(data.normalized.series, options, options.horizontalBars ? 'x' : 'y'); + } + + // Overrides of high / low from settings + highLow.high = +options.high || (options.high === 0 ? 0 : highLow.high); + highLow.low = +options.low || (options.low === 0 ? 0 : highLow.low); + + var chartRect = Chartist.createChartRect(this.svg, options, defaultOptions.padding); + + var valueAxis, + labelAxisTicks, + labelAxis, + axisX, + axisY; + + // We need to set step count based on some options combinations + if(options.distributeSeries && options.stackBars) { + // If distributed series are enabled and bars need to be stacked, we'll only have one bar and therefore should + // use only the first label for the step axis + labelAxisTicks = data.normalized.labels.slice(0, 1); + } else { + // If distributed series are enabled but stacked bars aren't, we should use the series labels + // If we are drawing a regular bar chart with two dimensional series data, we just use the labels array + // as the bars are normalized + labelAxisTicks = data.normalized.labels; + } + + // Set labelAxis and valueAxis based on the horizontalBars setting. This setting will flip the axes if necessary. + if(options.horizontalBars) { + if(options.axisX.type === undefined) { + valueAxis = axisX = new Chartist.AutoScaleAxis(Chartist.Axis.units.x, data.normalized.series, chartRect, Chartist.extend({}, options.axisX, { + highLow: highLow, + referenceValue: 0 + })); + } else { + valueAxis = axisX = options.axisX.type.call(Chartist, Chartist.Axis.units.x, data.normalized.series, chartRect, Chartist.extend({}, options.axisX, { + highLow: highLow, + referenceValue: 0 + })); + } + + if(options.axisY.type === undefined) { + labelAxis = axisY = new Chartist.StepAxis(Chartist.Axis.units.y, data.normalized.series, chartRect, { + ticks: labelAxisTicks + }); + } else { + labelAxis = axisY = options.axisY.type.call(Chartist, Chartist.Axis.units.y, data.normalized.series, chartRect, options.axisY); + } + } else { + if(options.axisX.type === undefined) { + labelAxis = axisX = new Chartist.StepAxis(Chartist.Axis.units.x, data.normalized.series, chartRect, { + ticks: labelAxisTicks + }); + } else { + labelAxis = axisX = options.axisX.type.call(Chartist, Chartist.Axis.units.x, data.normalized.series, chartRect, options.axisX); + } + + if(options.axisY.type === undefined) { + valueAxis = axisY = new Chartist.AutoScaleAxis(Chartist.Axis.units.y, data.normalized.series, chartRect, Chartist.extend({}, options.axisY, { + highLow: highLow, + referenceValue: 0 + })); + } else { + valueAxis = axisY = options.axisY.type.call(Chartist, Chartist.Axis.units.y, data.normalized.series, chartRect, Chartist.extend({}, options.axisY, { + highLow: highLow, + referenceValue: 0 + })); + } + } + + // Projected 0 point + var zeroPoint = options.horizontalBars ? (chartRect.x1 + valueAxis.projectValue(0)) : (chartRect.y1 - valueAxis.projectValue(0)); + // Used to track the screen coordinates of stacked bars + var stackedBarValues = []; + + labelAxis.createGridAndLabels(gridGroup, labelGroup, this.supportsForeignObject, options, this.eventEmitter); + valueAxis.createGridAndLabels(gridGroup, labelGroup, this.supportsForeignObject, options, this.eventEmitter); + + if (options.showGridBackground) { + Chartist.createGridBackground(gridGroup, chartRect, options.classNames.gridBackground, this.eventEmitter); + } + + // Draw the series + data.raw.series.forEach(function(series, seriesIndex) { + // Calculating bi-polar value of index for seriesOffset. For i = 0..4 biPol will be -1.5, -0.5, 0.5, 1.5 etc. + var biPol = seriesIndex - (data.raw.series.length - 1) / 2; + // Half of the period width between vertical grid lines used to position bars + var periodHalfLength; + // Current series SVG element + var seriesElement; + + // We need to set periodHalfLength based on some options combinations + if(options.distributeSeries && !options.stackBars) { + // If distributed series are enabled but stacked bars aren't, we need to use the length of the normaizedData array + // which is the series count and divide by 2 + periodHalfLength = labelAxis.axisLength / data.normalized.series.length / 2; + } else if(options.distributeSeries && options.stackBars) { + // If distributed series and stacked bars are enabled we'll only get one bar so we should just divide the axis + // length by 2 + periodHalfLength = labelAxis.axisLength / 2; + } else { + // On regular bar charts we should just use the series length + periodHalfLength = labelAxis.axisLength / data.normalized.series[seriesIndex].length / 2; + } + + // Adding the series group to the series element + seriesElement = seriesGroup.elem('g'); + + // Write attributes to series group element. If series name or meta is undefined the attributes will not be written + seriesElement.attr({ + 'ct:series-name': series.name, + 'ct:meta': Chartist.serialize(series.meta) + }); + + // Use series class from series data or if not set generate one + seriesElement.addClass([ + options.classNames.series, + (series.className || options.classNames.series + '-' + Chartist.alphaNumerate(seriesIndex)) + ].join(' ')); + + data.normalized.series[seriesIndex].forEach(function(value, valueIndex) { + var projected, + bar, + previousStack, + labelAxisValueIndex; + + // We need to set labelAxisValueIndex based on some options combinations + if(options.distributeSeries && !options.stackBars) { + // If distributed series are enabled but stacked bars aren't, we can use the seriesIndex for later projection + // on the step axis for label positioning + labelAxisValueIndex = seriesIndex; + } else if(options.distributeSeries && options.stackBars) { + // If distributed series and stacked bars are enabled, we will only get one bar and therefore always use + // 0 for projection on the label step axis + labelAxisValueIndex = 0; + } else { + // On regular bar charts we just use the value index to project on the label step axis + labelAxisValueIndex = valueIndex; + } + + // We need to transform coordinates differently based on the chart layout + if(options.horizontalBars) { + projected = { + x: chartRect.x1 + valueAxis.projectValue(value && value.x ? value.x : 0, valueIndex, data.normalized.series[seriesIndex]), + y: chartRect.y1 - labelAxis.projectValue(value && value.y ? value.y : 0, labelAxisValueIndex, data.normalized.series[seriesIndex]) + }; + } else { + projected = { + x: chartRect.x1 + labelAxis.projectValue(value && value.x ? value.x : 0, labelAxisValueIndex, data.normalized.series[seriesIndex]), + y: chartRect.y1 - valueAxis.projectValue(value && value.y ? value.y : 0, valueIndex, data.normalized.series[seriesIndex]) + } + } + + // If the label axis is a step based axis we will offset the bar into the middle of between two steps using + // the periodHalfLength value. Also we do arrange the different series so that they align up to each other using + // the seriesBarDistance. If we don't have a step axis, the bar positions can be chosen freely so we should not + // add any automated positioning. + if(labelAxis instanceof Chartist.StepAxis) { + // Offset to center bar between grid lines, but only if the step axis is not stretched + if(!labelAxis.options.stretch) { + projected[labelAxis.units.pos] += periodHalfLength * (options.horizontalBars ? -1 : 1); + } + // Using bi-polar offset for multiple series if no stacked bars or series distribution is used + projected[labelAxis.units.pos] += (options.stackBars || options.distributeSeries) ? 0 : biPol * options.seriesBarDistance * (options.horizontalBars ? -1 : 1); + } + + // Enter value in stacked bar values used to remember previous screen value for stacking up bars + previousStack = stackedBarValues[valueIndex] || zeroPoint; + stackedBarValues[valueIndex] = previousStack - (zeroPoint - projected[labelAxis.counterUnits.pos]); + + // Skip if value is undefined + if(value === undefined) { + return; + } + + var positions = {}; + positions[labelAxis.units.pos + '1'] = projected[labelAxis.units.pos]; + positions[labelAxis.units.pos + '2'] = projected[labelAxis.units.pos]; + + if(options.stackBars && (options.stackMode === 'accumulate' || !options.stackMode)) { + // Stack mode: accumulate (default) + // If bars are stacked we use the stackedBarValues reference and otherwise base all bars off the zero line + // We want backwards compatibility, so the expected fallback without the 'stackMode' option + // to be the original behaviour (accumulate) + positions[labelAxis.counterUnits.pos + '1'] = previousStack; + positions[labelAxis.counterUnits.pos + '2'] = stackedBarValues[valueIndex]; + } else { + // Draw from the zero line normally + // This is also the same code for Stack mode: overlap + positions[labelAxis.counterUnits.pos + '1'] = zeroPoint; + positions[labelAxis.counterUnits.pos + '2'] = projected[labelAxis.counterUnits.pos]; + } + + // Limit x and y so that they are within the chart rect + positions.x1 = Math.min(Math.max(positions.x1, chartRect.x1), chartRect.x2); + positions.x2 = Math.min(Math.max(positions.x2, chartRect.x1), chartRect.x2); + positions.y1 = Math.min(Math.max(positions.y1, chartRect.y2), chartRect.y1); + positions.y2 = Math.min(Math.max(positions.y2, chartRect.y2), chartRect.y1); + + var metaData = Chartist.getMetaData(series, valueIndex); + + // Create bar element + bar = seriesElement.elem('line', positions, options.classNames.bar).attr({ + 'ct:value': [value.x, value.y].filter(Chartist.isNumeric).join(','), + 'ct:meta': Chartist.serialize(metaData) + }); + + this.eventEmitter.emit('draw', Chartist.extend({ + type: 'bar', + value: value, + index: valueIndex, + meta: metaData, + series: series, + seriesIndex: seriesIndex, + axisX: axisX, + axisY: axisY, + chartRect: chartRect, + group: seriesElement, + element: bar + }, positions)); + }.bind(this)); + }.bind(this)); + + this.eventEmitter.emit('created', { + bounds: valueAxis.bounds, + chartRect: chartRect, + axisX: axisX, + axisY: axisY, + svg: this.svg, + options: options + }); + } + + /** + * This method creates a new bar chart and returns API object that you can use for later changes. + * + * @memberof Chartist.Bar + * @param {String|Node} query A selector query string or directly a DOM element + * @param {Object} data The data object that needs to consist of a labels and a series array + * @param {Object} [options] The options object with options that override the default options. Check the examples for a detailed list. + * @param {Array} [responsiveOptions] Specify an array of responsive option arrays which are a media query and options object pair => [[mediaQueryString, optionsObject],[more...]] + * @return {Object} An object which exposes the API for the created chart + * + * @example + * // Create a simple bar chart + * var data = { + * labels: ['Mon', 'Tue', 'Wed', 'Thu', 'Fri'], + * series: [ + * [5, 2, 4, 2, 0] + * ] + * }; + * + * // In the global name space Chartist we call the Bar function to initialize a bar chart. As a first parameter we pass in a selector where we would like to get our chart created and as a second parameter we pass our data object. + * new Chartist.Bar('.ct-chart', data); + * + * @example + * // This example creates a bipolar grouped bar chart where the boundaries are limitted to -10 and 10 + * new Chartist.Bar('.ct-chart', { + * labels: [1, 2, 3, 4, 5, 6, 7], + * series: [ + * [1, 3, 2, -5, -3, 1, -6], + * [-5, -2, -4, -1, 2, -3, 1] + * ] + * }, { + * seriesBarDistance: 12, + * low: -10, + * high: 10 + * }); + * + */ + function Bar(query, data, options, responsiveOptions) { + Chartist.Bar.super.constructor.call(this, + query, + data, + defaultOptions, + Chartist.extend({}, defaultOptions, options), + responsiveOptions); + } + + // Creating bar chart type in Chartist namespace + Chartist.Bar = Chartist.Base.extend({ + constructor: Bar, + createChart: createChart + }); + +}(window, document, Chartist)); +;/** + * The pie chart module of Chartist that can be used to draw pie, donut or gauge charts + * + * @module Chartist.Pie + */ +/* global Chartist */ +(function(window, document, Chartist) { + 'use strict'; + + /** + * Default options in line charts. Expand the code view to see a detailed list of options with comments. + * + * @memberof Chartist.Pie + */ + var defaultOptions = { + // Specify a fixed width for the chart as a string (i.e. '100px' or '50%') + width: undefined, + // Specify a fixed height for the chart as a string (i.e. '100px' or '50%') + height: undefined, + // Padding of the chart drawing area to the container element and labels as a number or padding object {top: 5, right: 5, bottom: 5, left: 5} + chartPadding: 5, + // Override the class names that are used to generate the SVG structure of the chart + classNames: { + chartPie: 'ct-chart-pie', + chartDonut: 'ct-chart-donut', + series: 'ct-series', + slicePie: 'ct-slice-pie', + sliceDonut: 'ct-slice-donut', + sliceDonutSolid: 'ct-slice-donut-solid', + label: 'ct-label' + }, + // The start angle of the pie chart in degrees where 0 points north. A higher value offsets the start angle clockwise. + startAngle: 0, + // An optional total you can specify. By specifying a total value, the sum of the values in the series must be this total in order to draw a full pie. You can use this parameter to draw only parts of a pie or gauge charts. + total: undefined, + // If specified the donut CSS classes will be used and strokes will be drawn instead of pie slices. + donut: false, + // If specified the donut segments will be drawn as shapes instead of strokes. + donutSolid: false, + // Specify the donut stroke width, currently done in javascript for convenience. May move to CSS styles in the future. + // This option can be set as number or string to specify a relative width (i.e. 100 or '30%'). + donutWidth: 60, + // If a label should be shown or not + showLabel: true, + // Label position offset from the standard position which is half distance of the radius. This value can be either positive or negative. Positive values will position the label away from the center. + labelOffset: 0, + // This option can be set to 'inside', 'outside' or 'center'. Positioned with 'inside' the labels will be placed on half the distance of the radius to the border of the Pie by respecting the 'labelOffset'. The 'outside' option will place the labels at the border of the pie and 'center' will place the labels in the absolute center point of the chart. The 'center' option only makes sense in conjunction with the 'labelOffset' option. + labelPosition: 'inside', + // An interpolation function for the label value + labelInterpolationFnc: Chartist.noop, + // Label direction can be 'neutral', 'explode' or 'implode'. The labels anchor will be positioned based on those settings as well as the fact if the labels are on the right or left side of the center of the chart. Usually explode is useful when labels are positioned far away from the center. + labelDirection: 'neutral', + // If true the whole data is reversed including labels, the series order as well as the whole series data arrays. + reverseData: false, + // If true empty values will be ignored to avoid drawing unncessary slices and labels + ignoreEmptyValues: false + }; + + /** + * Determines SVG anchor position based on direction and center parameter + * + * @param center + * @param label + * @param direction + * @return {string} + */ + function determineAnchorPosition(center, label, direction) { + var toTheRight = label.x > center.x; + + if(toTheRight && direction === 'explode' || + !toTheRight && direction === 'implode') { + return 'start'; + } else if(toTheRight && direction === 'implode' || + !toTheRight && direction === 'explode') { + return 'end'; + } else { + return 'middle'; + } + } + + /** + * Creates the pie chart + * + * @param options + */ + function createChart(options) { + var data = Chartist.normalizeData(this.data); + var seriesGroups = [], + labelsGroup, + chartRect, + radius, + labelRadius, + totalDataSum, + startAngle = options.startAngle; + + // Create SVG.js draw + this.svg = Chartist.createSvg(this.container, options.width, options.height,options.donut ? options.classNames.chartDonut : options.classNames.chartPie); + // Calculate charting rect + chartRect = Chartist.createChartRect(this.svg, options, defaultOptions.padding); + // Get biggest circle radius possible within chartRect + radius = Math.min(chartRect.width() / 2, chartRect.height() / 2); + // Calculate total of all series to get reference value or use total reference from optional options + totalDataSum = options.total || data.normalized.series.reduce(function(previousValue, currentValue) { + return previousValue + currentValue; + }, 0); + + var donutWidth = Chartist.quantity(options.donutWidth); + if (donutWidth.unit === '%') { + donutWidth.value *= radius / 100; + } + + // If this is a donut chart we need to adjust our radius to enable strokes to be drawn inside + // Unfortunately this is not possible with the current SVG Spec + // See this proposal for more details: http://lists.w3.org/Archives/Public/www-svg/2003Oct/0000.html + radius -= options.donut && !options.donutSolid ? donutWidth.value / 2 : 0; + + // If labelPosition is set to `outside` or a donut chart is drawn then the label position is at the radius, + // if regular pie chart it's half of the radius + if(options.labelPosition === 'outside' || options.donut && !options.donutSolid) { + labelRadius = radius; + } else if(options.labelPosition === 'center') { + // If labelPosition is center we start with 0 and will later wait for the labelOffset + labelRadius = 0; + } else if(options.donutSolid) { + labelRadius = radius - donutWidth.value / 2; + } else { + // Default option is 'inside' where we use half the radius so the label will be placed in the center of the pie + // slice + labelRadius = radius / 2; + } + // Add the offset to the labelRadius where a negative offset means closed to the center of the chart + labelRadius += options.labelOffset; + + // Calculate end angle based on total sum and current data value and offset with padding + var center = { + x: chartRect.x1 + chartRect.width() / 2, + y: chartRect.y2 + chartRect.height() / 2 + }; + + // Check if there is only one non-zero value in the series array. + var hasSingleValInSeries = data.raw.series.filter(function(val) { + return val.hasOwnProperty('value') ? val.value !== 0 : val !== 0; + }).length === 1; + + // Creating the series groups + data.raw.series.forEach(function(series, index) { + seriesGroups[index] = this.svg.elem('g', null, null); + }.bind(this)); + //if we need to show labels we create the label group now + if(options.showLabel) { + labelsGroup = this.svg.elem('g', null, null); + } + + // Draw the series + // initialize series groups + data.raw.series.forEach(function(series, index) { + // If current value is zero and we are ignoring empty values then skip to next value + if (data.normalized.series[index] === 0 && options.ignoreEmptyValues) return; + + // If the series is an object and contains a name or meta data we add a custom attribute + seriesGroups[index].attr({ + 'ct:series-name': series.name + }); + + // Use series class from series data or if not set generate one + seriesGroups[index].addClass([ + options.classNames.series, + (series.className || options.classNames.series + '-' + Chartist.alphaNumerate(index)) + ].join(' ')); + + // If the whole dataset is 0 endAngle should be zero. Can't divide by 0. + var endAngle = (totalDataSum > 0 ? startAngle + data.normalized.series[index] / totalDataSum * 360 : 0); + + // Use slight offset so there are no transparent hairline issues + var overlappigStartAngle = Math.max(0, startAngle - (index === 0 || hasSingleValInSeries ? 0 : 0.2)); + + // If we need to draw the arc for all 360 degrees we need to add a hack where we close the circle + // with Z and use 359.99 degrees + if(endAngle - overlappigStartAngle >= 359.99) { + endAngle = overlappigStartAngle + 359.99; + } + + var start = Chartist.polarToCartesian(center.x, center.y, radius, overlappigStartAngle), + end = Chartist.polarToCartesian(center.x, center.y, radius, endAngle); + + var innerStart, + innerEnd, + donutSolidRadius; + + // Create a new path element for the pie chart. If this isn't a donut chart we should close the path for a correct stroke + var path = new Chartist.Svg.Path(!options.donut || options.donutSolid) + .move(end.x, end.y) + .arc(radius, radius, 0, endAngle - startAngle > 180, 0, start.x, start.y); + + // If regular pie chart (no donut) we add a line to the center of the circle for completing the pie + if(!options.donut) { + path.line(center.x, center.y); + } else if (options.donutSolid) { + donutSolidRadius = radius - donutWidth.value; + innerStart = Chartist.polarToCartesian(center.x, center.y, donutSolidRadius, startAngle - (index === 0 || hasSingleValInSeries ? 0 : 0.2)); + innerEnd = Chartist.polarToCartesian(center.x, center.y, donutSolidRadius, endAngle); + path.line(innerStart.x, innerStart.y); + path.arc(donutSolidRadius, donutSolidRadius, 0, endAngle - startAngle > 180, 1, innerEnd.x, innerEnd.y); + } + + // Create the SVG path + // If this is a donut chart we add the donut class, otherwise just a regular slice + var pathClassName = options.classNames.slicePie; + if (options.donut) { + pathClassName = options.classNames.sliceDonut; + if (options.donutSolid) { + pathClassName = options.classNames.sliceDonutSolid; + } + } + var pathElement = seriesGroups[index].elem('path', { + d: path.stringify() + }, pathClassName); + + // Adding the pie series value to the path + pathElement.attr({ + 'ct:value': data.normalized.series[index], + 'ct:meta': Chartist.serialize(series.meta) + }); + + // If this is a donut, we add the stroke-width as style attribute + if(options.donut && !options.donutSolid) { + pathElement._node.style.strokeWidth = donutWidth.value + 'px'; + } + + // Fire off draw event + this.eventEmitter.emit('draw', { + type: 'slice', + value: data.normalized.series[index], + totalDataSum: totalDataSum, + index: index, + meta: series.meta, + series: series, + group: seriesGroups[index], + element: pathElement, + path: path.clone(), + center: center, + radius: radius, + startAngle: startAngle, + endAngle: endAngle + }); + + // If we need to show labels we need to add the label for this slice now + if(options.showLabel) { + var labelPosition; + if(data.raw.series.length === 1) { + // If we have only 1 series, we can position the label in the center of the pie + labelPosition = { + x: center.x, + y: center.y + }; + } else { + // Position at the labelRadius distance from center and between start and end angle + labelPosition = Chartist.polarToCartesian( + center.x, + center.y, + labelRadius, + startAngle + (endAngle - startAngle) / 2 + ); + } + + var rawValue; + if(data.normalized.labels && !Chartist.isFalseyButZero(data.normalized.labels[index])) { + rawValue = data.normalized.labels[index]; + } else { + rawValue = data.normalized.series[index]; + } + + var interpolatedValue = options.labelInterpolationFnc(rawValue, index); + + if(interpolatedValue || interpolatedValue === 0) { + var labelElement = labelsGroup.elem('text', { + dx: labelPosition.x, + dy: labelPosition.y, + 'text-anchor': determineAnchorPosition(center, labelPosition, options.labelDirection) + }, options.classNames.label).text('' + interpolatedValue); + + // Fire off draw event + this.eventEmitter.emit('draw', { + type: 'label', + index: index, + group: labelsGroup, + element: labelElement, + text: '' + interpolatedValue, + x: labelPosition.x, + y: labelPosition.y + }); + } + } + + // Set next startAngle to current endAngle. + // (except for last slice) + startAngle = endAngle; + }.bind(this)); + + this.eventEmitter.emit('created', { + chartRect: chartRect, + svg: this.svg, + options: options + }); + } + + /** + * This method creates a new pie chart and returns an object that can be used to redraw the chart. + * + * @memberof Chartist.Pie + * @param {String|Node} query A selector query string or directly a DOM element + * @param {Object} data The data object in the pie chart needs to have a series property with a one dimensional data array. The values will be normalized against each other and don't necessarily need to be in percentage. The series property can also be an array of value objects that contain a value property and a className property to override the CSS class name for the series group. + * @param {Object} [options] The options object with options that override the default options. Check the examples for a detailed list. + * @param {Array} [responsiveOptions] Specify an array of responsive option arrays which are a media query and options object pair => [[mediaQueryString, optionsObject],[more...]] + * @return {Object} An object with a version and an update method to manually redraw the chart + * + * @example + * // Simple pie chart example with four series + * new Chartist.Pie('.ct-chart', { + * series: [10, 2, 4, 3] + * }); + * + * @example + * // Drawing a donut chart + * new Chartist.Pie('.ct-chart', { + * series: [10, 2, 4, 3] + * }, { + * donut: true + * }); + * + * @example + * // Using donut, startAngle and total to draw a gauge chart + * new Chartist.Pie('.ct-chart', { + * series: [20, 10, 30, 40] + * }, { + * donut: true, + * donutWidth: 20, + * startAngle: 270, + * total: 200 + * }); + * + * @example + * // Drawing a pie chart with padding and labels that are outside the pie + * new Chartist.Pie('.ct-chart', { + * series: [20, 10, 30, 40] + * }, { + * chartPadding: 30, + * labelOffset: 50, + * labelDirection: 'explode' + * }); + * + * @example + * // Overriding the class names for individual series as well as a name and meta data. + * // The name will be written as ct:series-name attribute and the meta data will be serialized and written + * // to a ct:meta attribute. + * new Chartist.Pie('.ct-chart', { + * series: [{ + * value: 20, + * name: 'Series 1', + * className: 'my-custom-class-one', + * meta: 'Meta One' + * }, { + * value: 10, + * name: 'Series 2', + * className: 'my-custom-class-two', + * meta: 'Meta Two' + * }, { + * value: 70, + * name: 'Series 3', + * className: 'my-custom-class-three', + * meta: 'Meta Three' + * }] + * }); + */ + function Pie(query, data, options, responsiveOptions) { + Chartist.Pie.super.constructor.call(this, + query, + data, + defaultOptions, + Chartist.extend({}, defaultOptions, options), + responsiveOptions); + } + + // Creating pie chart type in Chartist namespace + Chartist.Pie = Chartist.Base.extend({ + constructor: Pie, + createChart: createChart, + determineAnchorPosition: determineAnchorPosition + }); + +}(window, document, Chartist)); + +return Chartist; + +})); diff --git a/public/admin/assets/js/chart/chartjs/chart.custom.js b/public/admin/assets/js/chart/chartjs/chart.custom.js new file mode 100644 index 0000000..9571d7b --- /dev/null +++ b/public/admin/assets/js/chart/chartjs/chart.custom.js @@ -0,0 +1,285 @@ +Chart.defaults.global = { + animation: true, + animationSteps: 60, + animationEasing: "easeOutIn", + showScale: true, + scaleOverride: false, + scaleSteps: null, + scaleStepWidth: null, + scaleStartValue: null, + scaleLineColor: "#eeeeee", + scaleLineWidth: 1, + scaleShowLabels: true, + scaleLabel: "<%=value%>", + scaleIntegersOnly: true, + scaleBeginAtZero: false, + scaleFontSize: 12, + scaleFontStyle: "normal", + scaleFontColor: "#717171", + responsive: true, + maintainAspectRatio: true, + showTooltips: true, + multiTooltipTemplate: "<%= value %>", + tooltipFillColor: "#333333", + tooltipEvents: ["mousemove", "touchstart", "touchmove"], + tooltipTemplate: "<%if (label){%><%=label%>: <%}%><%= value %>", + tooltipFontSize: 14, + tooltipFontStyle: "normal", + tooltipFontColor: "#fff", + tooltipTitleFontSize: 16, + TitleFontStyle : "Raleway", + tooltipTitleFontStyle: "bold", + tooltipTitleFontColor: "#ffffff", + tooltipYPadding: 10, + tooltipXPadding: 10, + tooltipCaretSize: 8, + tooltipCornerRadius: 6, + tooltipXOffset: 5, + onAnimationProgress: function() {}, + onAnimationComplete: function() {} +}; +var barData = { + labels: ["January", "February", "March", "April", "May", "June", "July"], + datasets: [{ + label: "My First dataset", + fillColor: "rgba(36, 105, 92, 0.4)", + strokeColor: vihoAdminConfig.primary, + highlightFill: "rgba(36, 105, 92, 0.6)", + highlightStroke: vihoAdminConfig.primary, + data: [35, 59, 80, 81, 56, 55, 40] + }, { + label: "My Second dataset", + fillColor: "rgba(186, 137, 93, 0.4)", + strokeColor: vihoAdminConfig.secondary, + highlightFill: "rgba(186, 137, 93, 0.6)", + highlightStroke: vihoAdminConfig.secondary, + data: [28, 48, 40, 19, 86, 27, 90] + }] +}; +var barOptions = { + scaleBeginAtZero: true, + scaleShowGridLines: true, + scaleGridLineColor: "rgba(0,0,0,0.1)", + scaleGridLineWidth: 1, + scaleShowHorizontalLines: true, + scaleShowVerticalLines: true, + barShowStroke: true, + barStrokeWidth: 2, + barValueSpacing: 5, + barDatasetSpacing: 1, +}; +var barCtx = document.getElementById("myBarGraph").getContext("2d"); +var myBarChart = new Chart(barCtx).Bar(barData, barOptions); +var polarData = [ + { + value: 300, + color: vihoAdminConfig.primary, + highlight: "rgba(36, 105, 92, 1)", + label: "Yellow" + }, { + value: 50, + color: vihoAdminConfig.secondary, + highlight: "rgba(186, 137, 93, 1)", + label: "Sky" + }, { + value: 100, + color: "#222222", + highlight: "rgba(34,34,34,1)", + label: "Black" + }, { + value: 40, + color: "#717171", + highlight: "rgba(113, 113, 113, 1)", + label: "Grey" + }, { + value: 120, + color: "#e2c636", + highlight: "#616774", + label: "Dark Grey" + } +]; +var polarOptions = { + scaleShowLabelBackdrop: true, + scaleBackdropColor: "rgba(255,255,255,0.75)", + scaleBeginAtZero: true, + scaleBackdropPaddingY: 2, + scaleBackdropPaddingX: 2, + scaleShowLine: true, + segmentShowStroke: true, + segmentStrokeColor: "#fff", + segmentStrokeWidth: 2, + animationSteps: 100, + animationEasing: "easeOutBounce", + animateRotate: true, + animateScale: false, + legendTemplate: "
      -legend\"><% for (var i=0; i
    • \"><%if(segments[i].label){%><%=segments[i].label%><%}%>
    • <%}%>
    " +}; +var polarCtx = document.getElementById("myPolarGraph").getContext("2d"); +var myPolarChart = new Chart(polarCtx).PolarArea(polarData, polarOptions); +var lineGraphData = { + labels: ["January", "February", "March", "April", "May", "June", "July"], + datasets: [{ + label: "My First dataset", + fillColor: "rgba(36, 105, 92, 0.5)", + strokeColor: vihoAdminConfig.primary, + pointColor: vihoAdminConfig.primary, + pointStrokeColor: "#fff", + pointHighlightFill: "#fff", + pointHighlightStroke: "#000", + data: [10, 59, 80, 81, 56, 55, 40] + }, { + label: "My Second dataset", + fillColor: "rgba(186, 137, 93, 0.3)", + strokeColor: vihoAdminConfig.secondary, + pointColor: vihoAdminConfig.secondary, + pointStrokeColor: "#fff", + pointHighlightFill: "#000", + pointHighlightStroke: "rgba(30, 166, 236, 1)", + data: [28, 48, 40, 19, 86, 27, 90] + }] +}; +var lineGraphOptions = { + scaleShowGridLines: true, + scaleGridLineColor: "rgba(0,0,0,.05)", + scaleGridLineWidth: 1, + scaleShowHorizontalLines: true, + scaleShowVerticalLines: true, + bezierCurve: true, + bezierCurveTension: 0.4, + pointDot: true, + pointDotRadius: 4, + pointDotStrokeWidth: 1, + pointHitDetectionRadius: 20, + datasetStroke: true, + datasetStrokeWidth: 2, + datasetFill: true, + legendTemplate: "
      -legend\"><% for (var i=0; i
    • \"><%if(datasets[i].label){%><%=datasets[i].label%><%}%>
    • <%}%>
    " +}; +var lineCtx = document.getElementById("myGraph").getContext("2d"); +var myLineCharts = new Chart(lineCtx).Line(lineGraphData, lineGraphOptions); +var radarData = { + labels: ["Ford", "Chevy", "Toyota", "Honda", "Mazda"], + datasets: [{ + label: "My First dataset", + fillColor: "rgba(36, 105, 92, 0.4)", + strokeColor: vihoAdminConfig.primary, + pointColor: vihoAdminConfig.primary, + pointStrokeColor: vihoAdminConfig.primary, + pointHighlightFill: vihoAdminConfig.primary, + pointHighlightStroke: "rgba(68, 102, 242, 0.4)", + data: [12, 3, 5, 18, 7] + }] +}; +var radarOptions = { + scaleShowGridLines: true, + scaleGridLineColor: "rgba(0,0,0,.2)", + scaleGridLineWidth: 1, + scaleShowHorizontalLines: true, + scaleShowVerticalLines: true, + bezierCurve: true, + bezierCurveTension: 0.4, + pointDot: true, + pointDotRadius: 3, + pointDotStrokeWidth: 1, + pointHitDetectionRadius: 20, + datasetStroke: true, + datasetStrokeWidth: 2, + datasetFill: true, + legendTemplate: "
      -legend\"><% for (var i=0; i
    • \"><%if(datasets[i].label){%><%=datasets[i].label%><%}%>
    • <%}%>
    " +}; +var radarCtx = document.getElementById("myRadarGraph").getContext("2d"); +var myRadarChart = new Chart(radarCtx).Radar(radarData, radarOptions); +var pieData = [ + { + value: 300, + color: vihoAdminConfig.primary, + highlight: vihoAdminConfig.primary, + label: "Primary" + }, + { + value: 50, + color: vihoAdminConfig.secondary, + highlight: vihoAdminConfig.secondary, + label: "Secondary" + }, + { + value: 100, + color: "#d22d3d", + highlight: "#d22d3d", + label: "Danger" + } +]; +var pieOptions = { + segmentShowStroke: true, + segmentStrokeColor: "#fff", + segmentStrokeWidth: 2, + percentageInnerCutout: 0, + animationSteps: 100, + animationEasing: "easeOutBounce", + animateRotate: true, + animateScale: false, + legendTemplate: "
      -legend\"><% for (var i=0; i
    • \"><%if(segments[i].label){%><%=segments[i].label%><%}%>
    • <%}%>
    " +}; + + +var doughnutData = [ + { + value: 300, + color: vihoAdminConfig.primary, + highlight: vihoAdminConfig.primary, + label: "Primary" + }, + { + value: 50, + color: vihoAdminConfig.secondary, + highlight: vihoAdminConfig.secondary, + label: "Secondary" + }, + { + value: 100, + color: "#222222", + highlight: "#222222", + label: "Success" + } +]; +var doughnutOptions = { + segmentShowStroke: true, + segmentStrokeColor: "#fff", + segmentStrokeWidth: 2, + percentageInnerCutout: 50, + animationSteps: 100, + animationEasing: "easeOutBounce", + animateRotate: true, + animateScale: false, + legendTemplate: "
      -legend\"><% for (var i=0; i
    • \"><%if(segments[i].label){%><%=segments[i].label%><%}%>
    • <%}%>
    " +}; +var doughnutCtx = document.getElementById("myDoughnutGraph").getContext("2d"); +var myDoughnutChart = new Chart(doughnutCtx).Doughnut(doughnutData, doughnutOptions); +var myLineChart = { + labels: ["","10", "20", "30", "40", "50", "60", "70", "80"], + datasets: [{ + fillColor: "rgba(113, 113, 113, 0.2)", + strokeColor: "#717171", + pointColor: "#717171", + data: [10, 20, 40, 30, 0, 20, 10, 30, 10] + },{ + fillColor: "rgba(186, 137, 93, 0.2)", + strokeColor: vihoAdminConfig.secondary, + pointColor: vihoAdminConfig.secondary, + data: [20, 40, 10, 20, 40, 30, 40, 10, 20] + }, { + fillColor: "rgb(36, 105, 92, 0.2)", + strokeColor: vihoAdminConfig.primary, + pointColor: vihoAdminConfig.primary, + data: [60, 10, 40, 30, 80, 30, 20, 90, 0] + }] +} +var ctx = document.getElementById("myLineCharts").getContext("2d"); +var LineChartDemo = new Chart(ctx).Line(myLineChart, { + pointDotRadius: 2, + pointDotStrokeWidth: 5, + pointDotStrokeColor: "#ffffff", + bezierCurve: false, + scaleShowVerticalLines: false, + scaleGridLineColor: "#eeeeee" +}); diff --git a/public/admin/assets/js/chart/chartjs/chart.min.js b/public/admin/assets/js/chart/chartjs/chart.min.js new file mode 100644 index 0000000..c4c4ef0 --- /dev/null +++ b/public/admin/assets/js/chart/chartjs/chart.min.js @@ -0,0 +1,11 @@ +/*! + * Chart.js + * http://chartjs.org/ + * Version: 1.0.1 + * + * Copyright 2015 Nick Downie + * Released under the MIT license + * https://github.com/nnnick/Chart.js/blob/master/LICENSE.md + */ +(function(){"use strict";var t=this,i=t.Chart,e=function(t){this.canvas=t.canvas,this.ctx=t;var i=function(t,i){return t["offset"+i]?t["offset"+i]:document.defaultView.getComputedStyle(t).getPropertyValue(i)},e=this.width=i(t.canvas,"Width"),n=this.height=i(t.canvas,"Height");t.canvas.width=e,t.canvas.height=n;var e=this.width=t.canvas.width,n=this.height=t.canvas.height;return this.aspectRatio=this.width/this.height,s.retinaScale(this),this};e.defaults={global:{animation:!0,animationSteps:60,animationEasing:"easeOutQuart",showScale:!0,scaleOverride:!1,scaleSteps:null,scaleStepWidth:null,scaleStartValue:null,scaleLineColor:"rgba(0,0,0,.1)",scaleLineWidth:1,scaleShowLabels:!0,scaleLabel:"<%=value%>",scaleIntegersOnly:!0,scaleBeginAtZero:!1,scaleFontFamily:"'Helvetica Neue', 'Helvetica', 'Arial', sans-serif",scaleFontSize:12,scaleFontStyle:"normal",scaleFontColor:"#666",responsive:!1,maintainAspectRatio:!0,showTooltips:!0,customTooltips:!1,tooltipEvents:["mousemove","touchstart","touchmove","mouseout"],tooltipFillColor:"rgba(0,0,0,0.8)",tooltipFontFamily:"'Helvetica Neue', 'Helvetica', 'Arial', sans-serif",tooltipFontSize:14,tooltipFontStyle:"normal",tooltipFontColor:"#fff",tooltipTitleFontFamily:"'Helvetica Neue', 'Helvetica', 'Arial', sans-serif",tooltipTitleFontSize:14,tooltipTitleFontStyle:"bold",tooltipTitleFontColor:"#fff",tooltipYPadding:6,tooltipXPadding:6,tooltipCaretSize:8,tooltipCornerRadius:6,tooltipXOffset:10,tooltipTemplate:"<%if (label){%><%=label%>: <%}%><%= value %>",multiTooltipTemplate:"<%= value %>",multiTooltipKeyBackground:"#fff",onAnimationProgress:function(){},onAnimationComplete:function(){}}},e.types={};var s=e.helpers={},n=s.each=function(t,i,e){var s=Array.prototype.slice.call(arguments,3);if(t)if(t.length===+t.length){var n;for(n=0;n=0;s--){var n=t[s];if(i(n))return n}},s.inherits=function(t){var i=this,e=t&&t.hasOwnProperty("constructor")?t.constructor:function(){return i.apply(this,arguments)},s=function(){this.constructor=e};return s.prototype=i.prototype,e.prototype=new s,e.extend=r,t&&a(e.prototype,t),e.__super__=i.prototype,e}),c=s.noop=function(){},u=s.uid=function(){var t=0;return function(){return"chart-"+t++}}(),d=s.warn=function(t){window.console&&"function"==typeof window.console.warn&&console.warn(t)},p=s.amd="function"==typeof define&&define.amd,f=s.isNumber=function(t){return!isNaN(parseFloat(t))&&isFinite(t)},g=s.max=function(t){return Math.max.apply(Math,t)},m=s.min=function(t){return Math.min.apply(Math,t)},v=(s.cap=function(t,i,e){if(f(i)){if(t>i)return i}else if(f(e)&&e>t)return e;return t},s.getDecimalPlaces=function(t){return t%1!==0&&f(t)?t.toString().split(".")[1].length:0}),S=s.radians=function(t){return t*(Math.PI/180)},x=(s.getAngleFromPoint=function(t,i){var e=i.x-t.x,s=i.y-t.y,n=Math.sqrt(e*e+s*s),o=2*Math.PI+Math.atan2(s,e);return 0>e&&0>s&&(o+=2*Math.PI),{angle:o,distance:n}},s.aliasPixel=function(t){return t%2===0?0:.5}),y=(s.splineCurve=function(t,i,e,s){var n=Math.sqrt(Math.pow(i.x-t.x,2)+Math.pow(i.y-t.y,2)),o=Math.sqrt(Math.pow(e.x-i.x,2)+Math.pow(e.y-i.y,2)),a=s*n/(n+o),h=s*o/(n+o);return{inner:{x:i.x-a*(e.x-t.x),y:i.y-a*(e.y-t.y)},outer:{x:i.x+h*(e.x-t.x),y:i.y+h*(e.y-t.y)}}},s.calculateOrderOfMagnitude=function(t){return Math.floor(Math.log(t)/Math.LN10)}),C=(s.calculateScaleRange=function(t,i,e,s,n){var o=2,a=Math.floor(i/(1.5*e)),h=o>=a,l=g(t),r=m(t);l===r&&(l+=.5,r>=.5&&!s?r-=.5:l+=.5);for(var c=Math.abs(l-r),u=y(c),d=Math.ceil(l/(1*Math.pow(10,u)))*Math.pow(10,u),p=s?0:Math.floor(r/(1*Math.pow(10,u)))*Math.pow(10,u),f=d-p,v=Math.pow(10,u),S=Math.round(f/v);(S>a||a>2*S)&&!h;)if(S>a)v*=2,S=Math.round(f/v),S%1!==0&&(h=!0);else if(n&&u>=0){if(v/2%1!==0)break;v/=2,S=Math.round(f/v)}else v/=2,S=Math.round(f/v);return h&&(S=o,v=f/S),{steps:S,stepValue:v,min:p,max:p+S*v}},s.template=function(t,i){function e(t,i){var e=/\W/.test(t)?new Function("obj","var p=[],print=function(){p.push.apply(p,arguments);};with(obj){p.push('"+t.replace(/[\r\t\n]/g," ").split("<%").join(" ").replace(/((^|%>)[^\t]*)'/g,"$1\r").replace(/\t=(.*?)%>/g,"',$1,'").split(" ").join("');").split("%>").join("p.push('").split("\r").join("\\'")+"');}return p.join('');"):s[t]=s[t];return i?e(i):e}if(t instanceof Function)return t(i);var s={};return e(t,i)}),w=(s.generateLabels=function(t,i,e,s){var o=new Array(i);return labelTemplateString&&n(o,function(i,n){o[n]=C(t,{value:e+s*(n+1)})}),o},s.easingEffects={linear:function(t){return t},easeInQuad:function(t){return t*t},easeOutQuad:function(t){return-1*t*(t-2)},easeInOutQuad:function(t){return(t/=.5)<1?.5*t*t:-0.5*(--t*(t-2)-1)},easeInCubic:function(t){return t*t*t},easeOutCubic:function(t){return 1*((t=t/1-1)*t*t+1)},easeInOutCubic:function(t){return(t/=.5)<1?.5*t*t*t:.5*((t-=2)*t*t+2)},easeInQuart:function(t){return t*t*t*t},easeOutQuart:function(t){return-1*((t=t/1-1)*t*t*t-1)},easeInOutQuart:function(t){return(t/=.5)<1?.5*t*t*t*t:-0.5*((t-=2)*t*t*t-2)},easeInQuint:function(t){return 1*(t/=1)*t*t*t*t},easeOutQuint:function(t){return 1*((t=t/1-1)*t*t*t*t+1)},easeInOutQuint:function(t){return(t/=.5)<1?.5*t*t*t*t*t:.5*((t-=2)*t*t*t*t+2)},easeInSine:function(t){return-1*Math.cos(t/1*(Math.PI/2))+1},easeOutSine:function(t){return 1*Math.sin(t/1*(Math.PI/2))},easeInOutSine:function(t){return-0.5*(Math.cos(Math.PI*t/1)-1)},easeInExpo:function(t){return 0===t?1:1*Math.pow(2,10*(t/1-1))},easeOutExpo:function(t){return 1===t?1:1*(-Math.pow(2,-10*t/1)+1)},easeInOutExpo:function(t){return 0===t?0:1===t?1:(t/=.5)<1?.5*Math.pow(2,10*(t-1)):.5*(-Math.pow(2,-10*--t)+2)},easeInCirc:function(t){return t>=1?t:-1*(Math.sqrt(1-(t/=1)*t)-1)},easeOutCirc:function(t){return 1*Math.sqrt(1-(t=t/1-1)*t)},easeInOutCirc:function(t){return(t/=.5)<1?-0.5*(Math.sqrt(1-t*t)-1):.5*(Math.sqrt(1-(t-=2)*t)+1)},easeInElastic:function(t){var i=1.70158,e=0,s=1;return 0===t?0:1==(t/=1)?1:(e||(e=.3),st?-.5*s*Math.pow(2,10*(t-=1))*Math.sin(2*(1*t-i)*Math.PI/e):s*Math.pow(2,-10*(t-=1))*Math.sin(2*(1*t-i)*Math.PI/e)*.5+1)},easeInBack:function(t){var i=1.70158;return 1*(t/=1)*t*((i+1)*t-i)},easeOutBack:function(t){var i=1.70158;return 1*((t=t/1-1)*t*((i+1)*t+i)+1)},easeInOutBack:function(t){var i=1.70158;return(t/=.5)<1?.5*t*t*(((i*=1.525)+1)*t-i):.5*((t-=2)*t*(((i*=1.525)+1)*t+i)+2)},easeInBounce:function(t){return 1-w.easeOutBounce(1-t)},easeOutBounce:function(t){return(t/=1)<1/2.75?7.5625*t*t:2/2.75>t?1*(7.5625*(t-=1.5/2.75)*t+.75):2.5/2.75>t?1*(7.5625*(t-=2.25/2.75)*t+.9375):1*(7.5625*(t-=2.625/2.75)*t+.984375)},easeInOutBounce:function(t){return.5>t?.5*w.easeInBounce(2*t):.5*w.easeOutBounce(2*t-1)+.5}}),b=s.requestAnimFrame=function(){return window.requestAnimationFrame||window.webkitRequestAnimationFrame||window.mozRequestAnimationFrame||window.oRequestAnimationFrame||window.msRequestAnimationFrame||function(t){return window.setTimeout(t,1e3/60)}}(),P=s.cancelAnimFrame=function(){return window.cancelAnimationFrame||window.webkitCancelAnimationFrame||window.mozCancelAnimationFrame||window.oCancelAnimationFrame||window.msCancelAnimationFrame||function(t){return window.clearTimeout(t,1e3/60)}}(),L=(s.animationLoop=function(t,i,e,s,n,o){var a=0,h=w[e]||w.linear,l=function(){a++;var e=a/i,r=h(e);t.call(o,r,e,a),s.call(o,r,e),i>a?o.animationFrame=b(l):n.apply(o)};b(l)},s.getRelativePosition=function(t){var i,e,s=t.originalEvent||t,n=t.currentTarget||t.srcElement,o=n.getBoundingClientRect();return s.touches?(i=s.touches[0].clientX-o.left,e=s.touches[0].clientY-o.top):(i=s.clientX-o.left,e=s.clientY-o.top),{x:i,y:e}},s.addEvent=function(t,i,e){t.addEventListener?t.addEventListener(i,e):t.attachEvent?t.attachEvent("on"+i,e):t["on"+i]=e}),k=s.removeEvent=function(t,i,e){t.removeEventListener?t.removeEventListener(i,e,!1):t.detachEvent?t.detachEvent("on"+i,e):t["on"+i]=c},F=(s.bindEvents=function(t,i,e){t.events||(t.events={}),n(i,function(i){t.events[i]=function(){e.apply(t,arguments)},L(t.chart.canvas,i,t.events[i])})},s.unbindEvents=function(t,i){n(i,function(i,e){k(t.chart.canvas,e,i)})}),R=s.getMaximumWidth=function(t){var i=t.parentNode;return i.clientWidth},T=s.getMaximumHeight=function(t){var i=t.parentNode;return i.clientHeight},A=(s.getMaximumSize=s.getMaximumWidth,s.retinaScale=function(t){var i=t.ctx,e=t.canvas.width,s=t.canvas.height;window.devicePixelRatio&&(i.canvas.style.width=e+"px",i.canvas.style.height=s+"px",i.canvas.height=s*window.devicePixelRatio,i.canvas.width=e*window.devicePixelRatio,i.scale(window.devicePixelRatio,window.devicePixelRatio))}),M=s.clear=function(t){t.ctx.clearRect(0,0,t.width,t.height)},W=s.fontString=function(t,i,e){return i+" "+t+"px "+e},z=s.longestText=function(t,i,e){t.font=i;var s=0;return n(e,function(i){var e=t.measureText(i).width;s=e>s?e:s}),s},B=s.drawRoundedRectangle=function(t,i,e,s,n,o){t.beginPath(),t.moveTo(i+o,e),t.lineTo(i+s-o,e),t.quadraticCurveTo(i+s,e,i+s,e+o),t.lineTo(i+s,e+n-o),t.quadraticCurveTo(i+s,e+n,i+s-o,e+n),t.lineTo(i+o,e+n),t.quadraticCurveTo(i,e+n,i,e+n-o),t.lineTo(i,e+o),t.quadraticCurveTo(i,e,i+o,e),t.closePath()};e.instances={},e.Type=function(t,i,s){this.options=i,this.chart=s,this.id=u(),e.instances[this.id]=this,i.responsive&&this.resize(),this.initialize.call(this,t)},a(e.Type.prototype,{initialize:function(){return this},clear:function(){return M(this.chart),this},stop:function(){return P(this.animationFrame),this},resize:function(t){this.stop();var i=this.chart.canvas,e=R(this.chart.canvas),s=this.options.maintainAspectRatio?e/this.chart.aspectRatio:T(this.chart.canvas);return i.width=this.chart.width=e,i.height=this.chart.height=s,A(this.chart),"function"==typeof t&&t.apply(this,Array.prototype.slice.call(arguments,1)),this},reflow:c,render:function(t){return t&&this.reflow(),this.options.animation&&!t?s.animationLoop(this.draw,this.options.animationSteps,this.options.animationEasing,this.options.onAnimationProgress,this.options.onAnimationComplete,this):(this.draw(),this.options.onAnimationComplete.call(this)),this},generateLegend:function(){return C(this.options.legendTemplate,this)},destroy:function(){this.clear(),F(this,this.events);var t=this.chart.canvas;t.width=this.chart.width,t.height=this.chart.height,t.style.removeProperty?(t.style.removeProperty("width"),t.style.removeProperty("height")):(t.style.removeAttribute("width"),t.style.removeAttribute("height")),delete e.instances[this.id]},showTooltip:function(t,i){"undefined"==typeof this.activeElements&&(this.activeElements=[]);var o=function(t){var i=!1;return t.length!==this.activeElements.length?i=!0:(n(t,function(t,e){t!==this.activeElements[e]&&(i=!0)},this),i)}.call(this,t);if(o||i){if(this.activeElements=t,this.draw(),this.options.customTooltips&&this.options.customTooltips(!1),t.length>0)if(this.datasets&&this.datasets.length>1){for(var a,h,r=this.datasets.length-1;r>=0&&(a=this.datasets[r].points||this.datasets[r].bars||this.datasets[r].segments,h=l(a,t[0]),-1===h);r--);var c=[],u=[],d=function(){var t,i,e,n,o,a=[],l=[],r=[];return s.each(this.datasets,function(i){t=i.points||i.bars||i.segments,t[h]&&t[h].hasValue()&&a.push(t[h])}),s.each(a,function(t){l.push(t.x),r.push(t.y),c.push(s.template(this.options.multiTooltipTemplate,t)),u.push({fill:t._saved.fillColor||t.fillColor,stroke:t._saved.strokeColor||t.strokeColor})},this),o=m(r),e=g(r),n=m(l),i=g(l),{x:n>this.chart.width/2?n:i,y:(o+e)/2}}.call(this,h);new e.MultiTooltip({x:d.x,y:d.y,xPadding:this.options.tooltipXPadding,yPadding:this.options.tooltipYPadding,xOffset:this.options.tooltipXOffset,fillColor:this.options.tooltipFillColor,textColor:this.options.tooltipFontColor,fontFamily:this.options.tooltipFontFamily,fontStyle:this.options.tooltipFontStyle,fontSize:this.options.tooltipFontSize,titleTextColor:this.options.tooltipTitleFontColor,titleFontFamily:this.options.tooltipTitleFontFamily,titleFontStyle:this.options.tooltipTitleFontStyle,titleFontSize:this.options.tooltipTitleFontSize,cornerRadius:this.options.tooltipCornerRadius,labels:c,legendColors:u,legendColorBackground:this.options.multiTooltipKeyBackground,title:t[0].label,chart:this.chart,ctx:this.chart.ctx,custom:this.options.customTooltips}).draw()}else n(t,function(t){var i=t.tooltipPosition();new e.Tooltip({x:Math.round(i.x),y:Math.round(i.y),xPadding:this.options.tooltipXPadding,yPadding:this.options.tooltipYPadding,fillColor:this.options.tooltipFillColor,textColor:this.options.tooltipFontColor,fontFamily:this.options.tooltipFontFamily,fontStyle:this.options.tooltipFontStyle,fontSize:this.options.tooltipFontSize,caretHeight:this.options.tooltipCaretSize,cornerRadius:this.options.tooltipCornerRadius,text:C(this.options.tooltipTemplate,t),chart:this.chart,custom:this.options.customTooltips}).draw()},this);return this}},toBase64Image:function(){return this.chart.canvas.toDataURL.apply(this.chart.canvas,arguments)}}),e.Type.extend=function(t){var i=this,s=function(){return i.apply(this,arguments)};if(s.prototype=o(i.prototype),a(s.prototype,t),s.extend=e.Type.extend,t.name||i.prototype.name){var n=t.name||i.prototype.name,l=e.defaults[i.prototype.name]?o(e.defaults[i.prototype.name]):{};e.defaults[n]=a(l,t.defaults),e.types[n]=s,e.prototype[n]=function(t,i){var o=h(e.defaults.global,e.defaults[n],i||{});return new s(t,o,this)}}else d("Name not provided for this chart, so it hasn't been registered");return i},e.Element=function(t){a(this,t),this.initialize.apply(this,arguments),this.save()},a(e.Element.prototype,{initialize:function(){},restore:function(t){return t?n(t,function(t){this[t]=this._saved[t]},this):a(this,this._saved),this},save:function(){return this._saved=o(this),delete this._saved._saved,this},update:function(t){return n(t,function(t,i){this._saved[i]=this[i],this[i]=t},this),this},transition:function(t,i){return n(t,function(t,e){this[e]=(t-this._saved[e])*i+this._saved[e]},this),this},tooltipPosition:function(){return{x:this.x,y:this.y}},hasValue:function(){return f(this.value)}}),e.Element.extend=r,e.Point=e.Element.extend({display:!0,inRange:function(t,i){var e=this.hitDetectionRadius+this.radius;return Math.pow(t-this.x,2)+Math.pow(i-this.y,2)=this.startAngle&&e.angle<=this.endAngle,o=e.distance>=this.innerRadius&&e.distance<=this.outerRadius;return n&&o},tooltipPosition:function(){var t=this.startAngle+(this.endAngle-this.startAngle)/2,i=(this.outerRadius-this.innerRadius)/2+this.innerRadius;return{x:this.x+Math.cos(t)*i,y:this.y+Math.sin(t)*i}},draw:function(t){var i=this.ctx;i.beginPath(),i.arc(this.x,this.y,this.outerRadius,this.startAngle,this.endAngle),i.arc(this.x,this.y,this.innerRadius,this.endAngle,this.startAngle,!0),i.closePath(),i.strokeStyle=this.strokeColor,i.lineWidth=this.strokeWidth,i.fillStyle=this.fillColor,i.fill(),i.lineJoin="bevel",this.showStroke&&i.stroke()}}),e.Rectangle=e.Element.extend({draw:function(){var t=this.ctx,i=this.width/2,e=this.x-i,s=this.x+i,n=this.base-(this.base-this.y),o=this.strokeWidth/2;this.showStroke&&(e+=o,s-=o,n+=o),t.beginPath(),t.fillStyle=this.fillColor,t.strokeStyle=this.strokeColor,t.lineWidth=this.strokeWidth,t.moveTo(e,this.base),t.lineTo(e,n),t.lineTo(s,n),t.lineTo(s,this.base),t.fill(),this.showStroke&&t.stroke()},height:function(){return this.base-this.y},inRange:function(t,i){return t>=this.x-this.width/2&&t<=this.x+this.width/2&&i>=this.y&&i<=this.base}}),e.Tooltip=e.Element.extend({draw:function(){var t=this.chart.ctx;t.font=W(this.fontSize,this.fontStyle,this.fontFamily),this.xAlign="center",this.yAlign="above";var i=this.caretPadding=2,e=t.measureText(this.text).width+2*this.xPadding,s=this.fontSize+2*this.yPadding,n=s+this.caretHeight+i;this.x+e/2>this.chart.width?this.xAlign="left":this.x-e/2<0&&(this.xAlign="right"),this.y-n<0&&(this.yAlign="below");var o=this.x-e/2,a=this.y-n;if(t.fillStyle=this.fillColor,this.custom)this.custom(this);else{switch(this.yAlign){case"above":t.beginPath(),t.moveTo(this.x,this.y-i),t.lineTo(this.x+this.caretHeight,this.y-(i+this.caretHeight)),t.lineTo(this.x-this.caretHeight,this.y-(i+this.caretHeight)),t.closePath(),t.fill();break;case"below":a=this.y+i+this.caretHeight,t.beginPath(),t.moveTo(this.x,this.y+i),t.lineTo(this.x+this.caretHeight,this.y+i+this.caretHeight),t.lineTo(this.x-this.caretHeight,this.y+i+this.caretHeight),t.closePath(),t.fill()}switch(this.xAlign){case"left":o=this.x-e+(this.cornerRadius+this.caretHeight);break;case"right":o=this.x-(this.cornerRadius+this.caretHeight)}B(t,o,a,e,s,this.cornerRadius),t.fill(),t.fillStyle=this.textColor,t.textAlign="center",t.textBaseline="middle",t.fillText(this.text,o+e/2,a+s/2)}}}),e.MultiTooltip=e.Element.extend({initialize:function(){this.font=W(this.fontSize,this.fontStyle,this.fontFamily),this.titleFont=W(this.titleFontSize,this.titleFontStyle,this.titleFontFamily),this.height=this.labels.length*this.fontSize+(this.labels.length-1)*(this.fontSize/2)+2*this.yPadding+1.5*this.titleFontSize,this.ctx.font=this.titleFont;var t=this.ctx.measureText(this.title).width,i=z(this.ctx,this.font,this.labels)+this.fontSize+3,e=g([i,t]);this.width=e+2*this.xPadding;var s=this.height/2;this.y-s<0?this.y=s:this.y+s>this.chart.height&&(this.y=this.chart.height-s),this.x>this.chart.width/2?this.x-=this.xOffset+this.width:this.x+=this.xOffset},getLineHeight:function(t){var i=this.y-this.height/2+this.yPadding,e=t-1;return 0===t?i+this.titleFontSize/2:i+(1.5*this.fontSize*e+this.fontSize/2)+1.5*this.titleFontSize},draw:function(){if(this.custom)this.custom(this);else{B(this.ctx,this.x,this.y-this.height/2,this.width,this.height,this.cornerRadius);var t=this.ctx;t.fillStyle=this.fillColor,t.fill(),t.closePath(),t.textAlign="left",t.textBaseline="middle",t.fillStyle=this.titleTextColor,t.font=this.titleFont,t.fillText(this.title,this.x+this.xPadding,this.getLineHeight(0)),t.font=this.font,s.each(this.labels,function(i,e){t.fillStyle=this.textColor,t.fillText(i,this.x+this.xPadding+this.fontSize+3,this.getLineHeight(e+1)),t.fillStyle=this.legendColorBackground,t.fillRect(this.x+this.xPadding,this.getLineHeight(e+1)-this.fontSize/2,this.fontSize,this.fontSize),t.fillStyle=this.legendColors[e].fill,t.fillRect(this.x+this.xPadding,this.getLineHeight(e+1)-this.fontSize/2,this.fontSize,this.fontSize)},this)}}}),e.Scale=e.Element.extend({initialize:function(){this.fit()},buildYLabels:function(){this.yLabels=[];for(var t=v(this.stepValue),i=0;i<=this.steps;i++)this.yLabels.push(C(this.templateString,{value:(this.min+i*this.stepValue).toFixed(t)}));this.yLabelWidth=this.display&&this.showLabels?z(this.ctx,this.font,this.yLabels):0},addXLabel:function(t){this.xLabels.push(t),this.valuesCount++,this.fit()},removeXLabel:function(){this.xLabels.shift(),this.valuesCount--,this.fit()},fit:function(){this.startPoint=this.display?this.fontSize:0,this.endPoint=this.display?this.height-1.5*this.fontSize-5:this.height,this.startPoint+=this.padding,this.endPoint-=this.padding;var t,i=this.endPoint-this.startPoint;for(this.calculateYRange(i),this.buildYLabels(),this.calculateXLabelRotation();i>this.endPoint-this.startPoint;)i=this.endPoint-this.startPoint,t=this.yLabelWidth,this.calculateYRange(i),this.buildYLabels(),tthis.yLabelWidth+10?e/2:this.yLabelWidth+10,this.xLabelRotation=0,this.display){var n,o=z(this.ctx,this.font,this.xLabels);this.xLabelWidth=o;for(var a=Math.floor(this.calculateX(1)-this.calculateX(0))-6;this.xLabelWidth>a&&0===this.xLabelRotation||this.xLabelWidth>a&&this.xLabelRotation<=90&&this.xLabelRotation>0;)n=Math.cos(S(this.xLabelRotation)),t=n*e,i=n*s,t+this.fontSize/2>this.yLabelWidth+8&&(this.xScalePaddingLeft=t+this.fontSize/2),this.xScalePaddingRight=this.fontSize/2,this.xLabelRotation++,this.xLabelWidth=n*o;this.xLabelRotation>0&&(this.endPoint-=Math.sin(S(this.xLabelRotation))*o+3)}else this.xLabelWidth=0,this.xScalePaddingRight=this.padding,this.xScalePaddingLeft=this.padding},calculateYRange:c,drawingArea:function(){return this.startPoint-this.endPoint},calculateY:function(t){var i=this.drawingArea()/(this.min-this.max);return this.endPoint-i*(t-this.min)},calculateX:function(t){var i=(this.xLabelRotation>0,this.width-(this.xScalePaddingLeft+this.xScalePaddingRight)),e=i/Math.max(this.valuesCount-(this.offsetGridLines?0:1),1),s=e*t+this.xScalePaddingLeft;return this.offsetGridLines&&(s+=e/2),Math.round(s)},update:function(t){s.extend(this,t),this.fit()},draw:function(){var t=this.ctx,i=(this.endPoint-this.startPoint)/this.steps,e=Math.round(this.xScalePaddingLeft);this.display&&(t.fillStyle=this.textColor,t.font=this.font,n(this.yLabels,function(n,o){var a=this.endPoint-i*o,h=Math.round(a),l=this.showHorizontalLines;t.textAlign="right",t.textBaseline="middle",this.showLabels&&t.fillText(n,e-10,a),0!==o||l||(l=!0),l&&t.beginPath(),o>0?(t.lineWidth=this.gridLineWidth,t.strokeStyle=this.gridLineColor):(t.lineWidth=this.lineWidth,t.strokeStyle=this.lineColor),h+=s.aliasPixel(t.lineWidth),l&&(t.moveTo(e,h),t.lineTo(this.width,h),t.stroke(),t.closePath()),t.lineWidth=this.lineWidth,t.strokeStyle=this.lineColor,t.beginPath(),t.moveTo(e-5,h),t.lineTo(e,h),t.stroke(),t.closePath()},this),n(this.xLabels,function(i,e){var s=this.calculateX(e)+x(this.lineWidth),n=this.calculateX(e-(this.offsetGridLines?.5:0))+x(this.lineWidth),o=this.xLabelRotation>0,a=this.showVerticalLines;0!==e||a||(a=!0),a&&t.beginPath(),e>0?(t.lineWidth=this.gridLineWidth,t.strokeStyle=this.gridLineColor):(t.lineWidth=this.lineWidth,t.strokeStyle=this.lineColor),a&&(t.moveTo(n,this.endPoint),t.lineTo(n,this.startPoint-3),t.stroke(),t.closePath()),t.lineWidth=this.lineWidth,t.strokeStyle=this.lineColor,t.beginPath(),t.moveTo(n,this.endPoint),t.lineTo(n,this.endPoint+5),t.stroke(),t.closePath(),t.save(),t.translate(s,o?this.endPoint+12:this.endPoint+8),t.rotate(-1*S(this.xLabelRotation)),t.font=this.font,t.textAlign=o?"right":"center",t.textBaseline=o?"middle":"top",t.fillText(i,0,0),t.restore()},this))}}),e.RadialScale=e.Element.extend({initialize:function(){this.size=m([this.height,this.width]),this.drawingArea=this.display?this.size/2-(this.fontSize/2+this.backdropPaddingY):this.size/2},calculateCenterOffset:function(t){var i=this.drawingArea/(this.max-this.min);return(t-this.min)*i},update:function(){this.lineArc?this.drawingArea=this.display?this.size/2-(this.fontSize/2+this.backdropPaddingY):this.size/2:this.setScaleSize(),this.buildYLabels()},buildYLabels:function(){this.yLabels=[];for(var t=v(this.stepValue),i=0;i<=this.steps;i++)this.yLabels.push(C(this.templateString,{value:(this.min+i*this.stepValue).toFixed(t)}))},getCircumference:function(){return 2*Math.PI/this.valuesCount},setScaleSize:function(){var t,i,e,s,n,o,a,h,l,r,c,u,d=m([this.height/2-this.pointLabelFontSize-5,this.width/2]),p=this.width,g=0;for(this.ctx.font=W(this.pointLabelFontSize,this.pointLabelFontStyle,this.pointLabelFontFamily),i=0;ip&&(p=t.x+s,n=i),t.x-sp&&(p=t.x+e,n=i):i>this.valuesCount/2&&t.x-e0){var s,n=e*(this.drawingArea/this.steps),o=this.yCenter-n;if(this.lineWidth>0)if(t.strokeStyle=this.lineColor,t.lineWidth=this.lineWidth,this.lineArc)t.beginPath(),t.arc(this.xCenter,this.yCenter,n,0,2*Math.PI),t.closePath(),t.stroke();else{t.beginPath();for(var a=0;a=0;i--){if(this.angleLineWidth>0){var e=this.getPointPosition(i,this.calculateCenterOffset(this.max));t.beginPath(),t.moveTo(this.xCenter,this.yCenter),t.lineTo(e.x,e.y),t.stroke(),t.closePath()}var s=this.getPointPosition(i,this.calculateCenterOffset(this.max)+5);t.font=W(this.pointLabelFontSize,this.pointLabelFontStyle,this.pointLabelFontFamily),t.fillStyle=this.pointLabelFontColor;var o=this.labels.length,a=this.labels.length/2,h=a/2,l=h>i||i>o-h,r=i===h||i===o-h;t.textAlign=0===i?"center":i===a?"center":a>i?"left":"right",t.textBaseline=r?"middle":l?"bottom":"top",t.fillText(this.labels[i],s.x,s.y)}}}}}),s.addEvent(window,"resize",function(){var t;return function(){clearTimeout(t),t=setTimeout(function(){n(e.instances,function(t){t.options.responsive&&t.resize(t.render,!0)})},50)}}()),p?define(function(){return e}):"object"==typeof module&&module.exports&&(module.exports=e),t.Chart=e,e.noConflict=function(){return t.Chart=i,e}}).call(this),function(){"use strict";var t=this,i=t.Chart,e=i.helpers,s={scaleBeginAtZero:!0,scaleShowGridLines:!0,scaleGridLineColor:"rgba(0,0,0,.05)",scaleGridLineWidth:1,scaleShowHorizontalLines:!0,scaleShowVerticalLines:!0,barShowStroke:!0,barStrokeWidth:2,barValueSpacing:5,barDatasetSpacing:1,legendTemplate:'
      <% for (var i=0; i
    • <%if(datasets[i].label){%><%=datasets[i].label%><%}%>
    • <%}%>
    '};i.Type.extend({name:"Bar",defaults:s,initialize:function(t){var s=this.options;this.ScaleClass=i.Scale.extend({offsetGridLines:!0,calculateBarX:function(t,i,e){var n=this.calculateBaseWidth(),o=this.calculateX(e)-n/2,a=this.calculateBarWidth(t);return o+a*i+i*s.barDatasetSpacing+a/2},calculateBaseWidth:function(){return this.calculateX(1)-this.calculateX(0)-2*s.barValueSpacing},calculateBarWidth:function(t){var i=this.calculateBaseWidth()-(t-1)*s.barDatasetSpacing;return i/t}}),this.datasets=[],this.options.showTooltips&&e.bindEvents(this,this.options.tooltipEvents,function(t){var i="mouseout"!==t.type?this.getBarsAtEvent(t):[];this.eachBars(function(t){t.restore(["fillColor","strokeColor"])}),e.each(i,function(t){t.fillColor=t.highlightFill,t.strokeColor=t.highlightStroke}),this.showTooltip(i)}),this.BarClass=i.Rectangle.extend({strokeWidth:this.options.barStrokeWidth,showStroke:this.options.barShowStroke,ctx:this.chart.ctx}),e.each(t.datasets,function(i){var s={label:i.label||null,fillColor:i.fillColor,strokeColor:i.strokeColor,bars:[]};this.datasets.push(s),e.each(i.data,function(e,n){s.bars.push(new this.BarClass({value:e,label:t.labels[n],datasetLabel:i.label,strokeColor:i.strokeColor,fillColor:i.fillColor,highlightFill:i.highlightFill||i.fillColor,highlightStroke:i.highlightStroke||i.strokeColor}))},this)},this),this.buildScale(t.labels),this.BarClass.prototype.base=this.scale.endPoint,this.eachBars(function(t,i,s){e.extend(t,{width:this.scale.calculateBarWidth(this.datasets.length),x:this.scale.calculateBarX(this.datasets.length,s,i),y:this.scale.endPoint}),t.save()},this),this.render()},update:function(){this.scale.update(),e.each(this.activeElements,function(t){t.restore(["fillColor","strokeColor"])}),this.eachBars(function(t){t.save()}),this.render()},eachBars:function(t){e.each(this.datasets,function(i,s){e.each(i.bars,t,this,s)},this)},getBarsAtEvent:function(t){for(var i,s=[],n=e.getRelativePosition(t),o=function(t){s.push(t.bars[i])},a=0;a<% for (var i=0; i
  • <%if(segments[i].label){%><%=segments[i].label%><%}%>
  • <%}%>'};i.Type.extend({name:"Doughnut",defaults:s,initialize:function(t){this.segments=[],this.outerRadius=(e.min([this.chart.width,this.chart.height])-this.options.segmentStrokeWidth/2)/2,this.SegmentArc=i.Arc.extend({ctx:this.chart.ctx,x:this.chart.width/2,y:this.chart.height/2}),this.options.showTooltips&&e.bindEvents(this,this.options.tooltipEvents,function(t){var i="mouseout"!==t.type?this.getSegmentsAtEvent(t):[];e.each(this.segments,function(t){t.restore(["fillColor"])}),e.each(i,function(t){t.fillColor=t.highlightColor}),this.showTooltip(i)}),this.calculateTotal(t),e.each(t,function(t,i){this.addData(t,i,!0)},this),this.render()},getSegmentsAtEvent:function(t){var i=[],s=e.getRelativePosition(t);return e.each(this.segments,function(t){t.inRange(s.x,s.y)&&i.push(t)},this),i},addData:function(t,i,e){var s=i||this.segments.length;this.segments.splice(s,0,new this.SegmentArc({value:t.value,outerRadius:this.options.animateScale?0:this.outerRadius,innerRadius:this.options.animateScale?0:this.outerRadius/100*this.options.percentageInnerCutout,fillColor:t.color,highlightColor:t.highlight||t.color,showStroke:this.options.segmentShowStroke,strokeWidth:this.options.segmentStrokeWidth,strokeColor:this.options.segmentStrokeColor,startAngle:1.5*Math.PI,circumference:this.options.animateRotate?0:this.calculateCircumference(t.value),label:t.label})),e||(this.reflow(),this.update())},calculateCircumference:function(t){return 2*Math.PI*(Math.abs(t)/this.total)},calculateTotal:function(t){this.total=0,e.each(t,function(t){this.total+=Math.abs(t.value)},this)},update:function(){this.calculateTotal(this.segments),e.each(this.activeElements,function(t){t.restore(["fillColor"])}),e.each(this.segments,function(t){t.save()}),this.render()},removeData:function(t){var i=e.isNumber(t)?t:this.segments.length-1;this.segments.splice(i,1),this.reflow(),this.update()},reflow:function(){e.extend(this.SegmentArc.prototype,{x:this.chart.width/2,y:this.chart.height/2}),this.outerRadius=(e.min([this.chart.width,this.chart.height])-this.options.segmentStrokeWidth/2)/2,e.each(this.segments,function(t){t.update({outerRadius:this.outerRadius,innerRadius:this.outerRadius/100*this.options.percentageInnerCutout})},this)},draw:function(t){var i=t?t:1;this.clear(),e.each(this.segments,function(t,e){t.transition({circumference:this.calculateCircumference(t.value),outerRadius:this.outerRadius,innerRadius:this.outerRadius/100*this.options.percentageInnerCutout},i),t.endAngle=t.startAngle+t.circumference,t.draw(),0===e&&(t.startAngle=1.5*Math.PI),e<% for (var i=0; i
  • <%if(datasets[i].label){%><%=datasets[i].label%><%}%>
  • <%}%>'};i.Type.extend({name:"Line",defaults:s,initialize:function(t){this.PointClass=i.Point.extend({strokeWidth:this.options.pointDotStrokeWidth,radius:this.options.pointDotRadius,display:this.options.pointDot,hitDetectionRadius:this.options.pointHitDetectionRadius,ctx:this.chart.ctx,inRange:function(t){return Math.pow(t-this.x,2)0&&ithis.scale.endPoint?t.controlPoints.outer.y=this.scale.endPoint:t.controlPoints.outer.ythis.scale.endPoint?t.controlPoints.inner.y=this.scale.endPoint:t.controlPoints.inner.y0&&(s.lineTo(h[h.length-1].x,this.scale.endPoint),s.lineTo(h[0].x,this.scale.endPoint),s.fillStyle=t.fillColor,s.closePath(),s.fill()),e.each(h,function(t){t.draw()})},this)}})}.call(this),function(){"use strict";var t=this,i=t.Chart,e=i.helpers,s={scaleShowLabelBackdrop:!0,scaleBackdropColor:"rgba(255,255,255,0.75)",scaleBeginAtZero:!0,scaleBackdropPaddingY:2,scaleBackdropPaddingX:2,scaleShowLine:!0,segmentShowStroke:!0,segmentStrokeColor:"#fff",segmentStrokeWidth:2,animationSteps:100,animationEasing:"easeOutBounce",animateRotate:!0,animateScale:!1,legendTemplate:'
      <% for (var i=0; i
    • <%if(segments[i].label){%><%=segments[i].label%><%}%>
    • <%}%>
    '};i.Type.extend({name:"PolarArea",defaults:s,initialize:function(t){this.segments=[],this.SegmentArc=i.Arc.extend({showStroke:this.options.segmentShowStroke,strokeWidth:this.options.segmentStrokeWidth,strokeColor:this.options.segmentStrokeColor,ctx:this.chart.ctx,innerRadius:0,x:this.chart.width/2,y:this.chart.height/2}),this.scale=new i.RadialScale({display:this.options.showScale,fontStyle:this.options.scaleFontStyle,fontSize:this.options.scaleFontSize,fontFamily:this.options.scaleFontFamily,fontColor:this.options.scaleFontColor,showLabels:this.options.scaleShowLabels,showLabelBackdrop:this.options.scaleShowLabelBackdrop,backdropColor:this.options.scaleBackdropColor,backdropPaddingY:this.options.scaleBackdropPaddingY,backdropPaddingX:this.options.scaleBackdropPaddingX,lineWidth:this.options.scaleShowLine?this.options.scaleLineWidth:0,lineColor:this.options.scaleLineColor,lineArc:!0,width:this.chart.width,height:this.chart.height,xCenter:this.chart.width/2,yCenter:this.chart.height/2,ctx:this.chart.ctx,templateString:this.options.scaleLabel,valuesCount:t.length}),this.updateScaleRange(t),this.scale.update(),e.each(t,function(t,i){this.addData(t,i,!0)},this),this.options.showTooltips&&e.bindEvents(this,this.options.tooltipEvents,function(t){var i="mouseout"!==t.type?this.getSegmentsAtEvent(t):[];e.each(this.segments,function(t){t.restore(["fillColor"])}),e.each(i,function(t){t.fillColor=t.highlightColor}),this.showTooltip(i)}),this.render()},getSegmentsAtEvent:function(t){var i=[],s=e.getRelativePosition(t);return e.each(this.segments,function(t){t.inRange(s.x,s.y)&&i.push(t)},this),i},addData:function(t,i,e){var s=i||this.segments.length;this.segments.splice(s,0,new this.SegmentArc({fillColor:t.color,highlightColor:t.highlight||t.color,label:t.label,value:t.value,outerRadius:this.options.animateScale?0:this.scale.calculateCenterOffset(t.value),circumference:this.options.animateRotate?0:this.scale.getCircumference(),startAngle:1.5*Math.PI})),e||(this.reflow(),this.update())},removeData:function(t){var i=e.isNumber(t)?t:this.segments.length-1;this.segments.splice(i,1),this.reflow(),this.update()},calculateTotal:function(t){this.total=0,e.each(t,function(t){this.total+=t.value},this),this.scale.valuesCount=this.segments.length},updateScaleRange:function(t){var i=[];e.each(t,function(t){i.push(t.value)});var s=this.options.scaleOverride?{steps:this.options.scaleSteps,stepValue:this.options.scaleStepWidth,min:this.options.scaleStartValue,max:this.options.scaleStartValue+this.options.scaleSteps*this.options.scaleStepWidth}:e.calculateScaleRange(i,e.min([this.chart.width,this.chart.height])/2,this.options.scaleFontSize,this.options.scaleBeginAtZero,this.options.scaleIntegersOnly);e.extend(this.scale,s,{size:e.min([this.chart.width,this.chart.height]),xCenter:this.chart.width/2,yCenter:this.chart.height/2})},update:function(){this.calculateTotal(this.segments),e.each(this.segments,function(t){t.save()}),this.reflow(),this.render()},reflow:function(){e.extend(this.SegmentArc.prototype,{x:this.chart.width/2,y:this.chart.height/2}),this.updateScaleRange(this.segments),this.scale.update(),e.extend(this.scale,{xCenter:this.chart.width/2,yCenter:this.chart.height/2}),e.each(this.segments,function(t){t.update({outerRadius:this.scale.calculateCenterOffset(t.value)})},this)},draw:function(t){var i=t||1;this.clear(),e.each(this.segments,function(t,e){t.transition({circumference:this.scale.getCircumference(),outerRadius:this.scale.calculateCenterOffset(t.value)},i),t.endAngle=t.startAngle+t.circumference,0===e&&(t.startAngle=1.5*Math.PI),e<% for (var i=0; i
  • <%if(datasets[i].label){%><%=datasets[i].label%><%}%>
  • <%}%>'},initialize:function(t){this.PointClass=i.Point.extend({strokeWidth:this.options.pointDotStrokeWidth,radius:this.options.pointDotRadius,display:this.options.pointDot,hitDetectionRadius:this.options.pointHitDetectionRadius,ctx:this.chart.ctx}),this.datasets=[],this.buildScale(t),this.options.showTooltips&&e.bindEvents(this,this.options.tooltipEvents,function(t){var i="mouseout"!==t.type?this.getPointsAtEvent(t):[];this.eachPoints(function(t){t.restore(["fillColor","strokeColor"])}),e.each(i,function(t){t.fillColor=t.highlightFill,t.strokeColor=t.highlightStroke}),this.showTooltip(i)}),e.each(t.datasets,function(i){var s={label:i.label||null,fillColor:i.fillColor,strokeColor:i.strokeColor,pointColor:i.pointColor,pointStrokeColor:i.pointStrokeColor,points:[]};this.datasets.push(s),e.each(i.data,function(e,n){var o;this.scale.animation||(o=this.scale.getPointPosition(n,this.scale.calculateCenterOffset(e))),s.points.push(new this.PointClass({value:e,label:t.labels[n],datasetLabel:i.label,x:this.options.animation?this.scale.xCenter:o.x,y:this.options.animation?this.scale.yCenter:o.y,strokeColor:i.pointStrokeColor,fillColor:i.pointColor,highlightFill:i.pointHighlightFill||i.pointColor,highlightStroke:i.pointHighlightStroke||i.pointStrokeColor}))},this)},this),this.render()},eachPoints:function(t){e.each(this.datasets,function(i){e.each(i.points,t,this)},this)},getPointsAtEvent:function(t){var i=e.getRelativePosition(t),s=e.getAngleFromPoint({x:this.scale.xCenter,y:this.scale.yCenter},i),n=2*Math.PI/this.scale.valuesCount,o=Math.round((s.angle-1.5*Math.PI)/n),a=[];return(o>=this.scale.valuesCount||0>o)&&(o=0),s.distance<=this.scale.drawingArea&&e.each(this.datasets,function(t){a.push(t.points[o])}),a},buildScale:function(t){this.scale=new i.RadialScale({display:this.options.showScale,fontStyle:this.options.scaleFontStyle,fontSize:this.options.scaleFontSize,fontFamily:this.options.scaleFontFamily,fontColor:this.options.scaleFontColor,showLabels:this.options.scaleShowLabels,showLabelBackdrop:this.options.scaleShowLabelBackdrop,backdropColor:this.options.scaleBackdropColor,backdropPaddingY:this.options.scaleBackdropPaddingY,backdropPaddingX:this.options.scaleBackdropPaddingX,lineWidth:this.options.scaleShowLine?this.options.scaleLineWidth:0,lineColor:this.options.scaleLineColor,angleLineColor:this.options.angleLineColor,angleLineWidth:this.options.angleShowLineOut?this.options.angleLineWidth:0,pointLabelFontColor:this.options.pointLabelFontColor,pointLabelFontSize:this.options.pointLabelFontSize,pointLabelFontFamily:this.options.pointLabelFontFamily,pointLabelFontStyle:this.options.pointLabelFontStyle,height:this.chart.height,width:this.chart.width,xCenter:this.chart.width/2,yCenter:this.chart.height/2,ctx:this.chart.ctx,templateString:this.options.scaleLabel,labels:t.labels,valuesCount:t.datasets[0].data.length}),this.scale.setScaleSize(),this.updateScaleRange(t.datasets),this.scale.buildYLabels()},updateScaleRange:function(t){var i=function(){var i=[];return e.each(t,function(t){t.data?i=i.concat(t.data):e.each(t.points,function(t){i.push(t.value)})}),i}(),s=this.options.scaleOverride?{steps:this.options.scaleSteps,stepValue:this.options.scaleStepWidth,min:this.options.scaleStartValue,max:this.options.scaleStartValue+this.options.scaleSteps*this.options.scaleStepWidth}:e.calculateScaleRange(i,e.min([this.chart.width,this.chart.height])/2,this.options.scaleFontSize,this.options.scaleBeginAtZero,this.options.scaleIntegersOnly);e.extend(this.scale,s)},addData:function(t,i){this.scale.valuesCount++,e.each(t,function(t,e){var s=this.scale.getPointPosition(this.scale.valuesCount,this.scale.calculateCenterOffset(t));this.datasets[e].points.push(new this.PointClass({value:t,label:i,x:s.x,y:s.y,strokeColor:this.datasets[e].pointStrokeColor,fillColor:this.datasets[e].pointColor}))},this),this.scale.labels.push(i),this.reflow(),this.update()},removeData:function(){this.scale.valuesCount--,this.scale.labels.shift(),e.each(this.datasets,function(t){t.points.shift()},this),this.reflow(),this.update()},update:function(){this.eachPoints(function(t){t.save()}),this.reflow(),this.render()},reflow:function(){e.extend(this.scale,{width:this.chart.width,height:this.chart.height,size:e.min([this.chart.width,this.chart.height]),xCenter:this.chart.width/2,yCenter:this.chart.height/2}),this.updateScaleRange(this.datasets),this.scale.setScaleSize(),this.scale.buildYLabels()},draw:function(t){var i=t||1,s=this.chart.ctx;this.clear(),this.scale.draw(),e.each(this.datasets,function(t){e.each(t.points,function(t,e){t.hasValue()&&t.transition(this.scale.getPointPosition(e,this.scale.calculateCenterOffset(t.value)),i)},this),s.lineWidth=this.options.datasetStrokeWidth,s.strokeStyle=t.strokeColor,s.beginPath(),e.each(t.points,function(t,i){0===i?s.moveTo(t.x,t.y):s.lineTo(t.x,t.y)},this),s.closePath(),s.stroke(),s.fillStyle=t.fillColor,s.fill(),e.each(t.points,function(t){t.hasValue()&&t.draw()})},this)}})}.call(this); \ No newline at end of file diff --git a/public/admin/assets/js/chart/flot-chart/excanvas.js b/public/admin/assets/js/chart/flot-chart/excanvas.js new file mode 100644 index 0000000..70a8f25 --- /dev/null +++ b/public/admin/assets/js/chart/flot-chart/excanvas.js @@ -0,0 +1,1428 @@ +// Copyright 2006 Google Inc. +// +// 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 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + + +// Known Issues: +// +// * Patterns only support repeat. +// * Radial gradient are not implemented. The VML version of these look very +// different from the canvas one. +// * Clipping paths are not implemented. +// * Coordsize. The width and height attribute have higher priority than the +// width and height style values which isn't correct. +// * Painting mode isn't implemented. +// * Canvas width/height should is using content-box by default. IE in +// Quirks mode will draw the canvas using border-box. Either change your +// doctype to HTML5 +// (http://www.whatwg.org/specs/web-apps/current-work/#the-doctype) +// or use Box Sizing Behavior from WebFX +// (http://webfx.eae.net/dhtml/boxsizing/boxsizing.html) +// * Non uniform scaling does not correctly scale strokes. +// * Filling very large shapes (above 5000 points) is buggy. +// * Optimize. There is always room for speed improvements. + +// Only add this code if we do not already have a canvas implementation +if (!document.createElement('canvas').getContext) { + +(function() { + + // alias some functions to make (compiled) code shorter + var m = Math; + var mr = m.round; + var ms = m.sin; + var mc = m.cos; + var abs = m.abs; + var sqrt = m.sqrt; + + // this is used for sub pixel precision + var Z = 10; + var Z2 = Z / 2; + + var IE_VERSION = +navigator.userAgent.match(/MSIE ([\d.]+)?/)[1]; + + /** + * This funtion is assigned to the 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))); + }; + } + + function encodeHtmlAttribute(s) { + return String(s).replace(/&/g, '&').replace(/"/g, '"'); + } + + function addNamespace(doc, prefix, urn) { + if (!doc.namespaces[prefix]) { + doc.namespaces.add(prefix, urn, '#default#VML'); + } + } + + function addNamespacesAndStylesheet(doc) { + addNamespace(doc, 'g_vml_', 'urn:schemas-microsoft-com:vml'); + addNamespace(doc, 'g_o_', 'urn:schemas-microsoft-com:office:office'); + + // 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}'; + } + } + + // Add namespaces and stylesheet at startup. + addNamespacesAndStylesheet(document); + + var G_vmlCanvasManager_ = { + init: function(opt_doc) { + 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) { + // 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; + + // Add namespaces and stylesheet to document of the element. + addNamespacesAndStylesheet(el.ownerDocument); + + // 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.getContext().clearRect(); + el.style.width = el.attributes.width.nodeValue + 'px'; + // In IE8 this does not trigger onresize. + el.firstChild.style.width = el.clientWidth + 'px'; + break; + case 'height': + el.getContext().clearRect(); + el.style.height = el.attributes.height.nodeValue + 'px'; + el.firstChild.style.height = el.clientHeight + 'px'; + 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 decToHex = []; + for (var i = 0; i < 16; i++) { + for (var j = 0; j < 16; j++) { + decToHex[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.font = o1.font; + o2.textAlign = o1.textAlign; + o2.textBaseline = o1.textBaseline; + o2.arcScaleX_ = o1.arcScaleX_; + o2.arcScaleY_ = o1.arcScaleY_; + o2.lineScale_ = o1.lineScale_; + } + + var colorData = { + aliceblue: '#F0F8FF', + antiquewhite: '#FAEBD7', + aquamarine: '#7FFFD4', + azure: '#F0FFFF', + beige: '#F5F5DC', + bisque: '#FFE4C4', + black: '#000000', + blanchedalmond: '#FFEBCD', + blueviolet: '#8A2BE2', + brown: '#A52A2A', + burlywood: '#DEB887', + cadetblue: '#5F9EA0', + chartreuse: '#7FFF00', + chocolate: '#D2691E', + coral: '#FF7F50', + cornflowerblue: '#6495ED', + cornsilk: '#FFF8DC', + crimson: '#DC143C', + cyan: '#00FFFF', + darkblue: '#00008B', + darkcyan: '#008B8B', + darkgoldenrod: '#B8860B', + darkgray: '#A9A9A9', + darkgreen: '#006400', + darkgrey: '#A9A9A9', + darkkhaki: '#BDB76B', + darkmagenta: '#8B008B', + darkolivegreen: '#556B2F', + darkorange: '#FF8C00', + darkorchid: '#9932CC', + darkred: '#8B0000', + darksalmon: '#E9967A', + darkseagreen: '#8FBC8F', + darkslateblue: '#483D8B', + darkslategray: '#2F4F4F', + darkslategrey: '#2F4F4F', + darkturquoise: '#00CED1', + darkviolet: '#9400D3', + deeppink: '#FF1493', + deepskyblue: '#00BFFF', + dimgray: '#696969', + dimgrey: '#696969', + dodgerblue: '#1E90FF', + firebrick: '#B22222', + floralwhite: '#FFFAF0', + forestgreen: '#228B22', + gainsboro: '#DCDCDC', + ghostwhite: '#F8F8FF', + gold: '#FFD700', + goldenrod: '#DAA520', + grey: '#808080', + greenyellow: '#ADFF2F', + honeydew: '#F0FFF0', + hotpink: '#FF69B4', + indianred: '#CD5C5C', + indigo: '#4B0082', + ivory: '#FFFFF0', + khaki: '#F0E68C', + lavender: '#E6E6FA', + lavenderblush: '#FFF0F5', + lawngreen: '#7CFC00', + lemonchiffon: '#FFFACD', + lightblue: '#ADD8E6', + lightcoral: '#F08080', + lightcyan: '#E0FFFF', + lightgoldenrodyellow: '#FAFAD2', + lightgreen: '#90EE90', + lightgrey: '#D3D3D3', + lightpink: '#FFB6C1', + lightsalmon: '#FFA07A', + lightseagreen: '#20B2AA', + lightskyblue: '#87CEFA', + lightslategray: '#778899', + lightslategrey: '#778899', + lightsteelblue: '#B0C4DE', + lightyellow: '#FFFFE0', + limegreen: '#32CD32', + linen: '#FAF0E6', + magenta: '#FF00FF', + mediumaquamarine: '#66CDAA', + mediumblue: '#0000CD', + mediumorchid: '#BA55D3', + mediumpurple: '#9370DB', + mediumseagreen: '#3CB371', + mediumslateblue: '#7B68EE', + mediumspringgreen: '#00FA9A', + mediumturquoise: '#48D1CC', + mediumvioletred: '#C71585', + midnightblue: '#191970', + mintcream: '#F5FFFA', + mistyrose: '#FFE4E1', + moccasin: '#FFE4B5', + navajowhite: '#FFDEAD', + oldlace: '#FDF5E6', + olivedrab: '#6B8E23', + orange: '#FFA500', + orangered: '#FF4500', + orchid: '#DA70D6', + palegoldenrod: '#EEE8AA', + palegreen: '#98FB98', + paleturquoise: '#AFEEEE', + palevioletred: '#DB7093', + papayawhip: '#FFEFD5', + peachpuff: '#FFDAB9', + peru: '#CD853F', + pink: '#FFC0CB', + plum: '#DDA0DD', + powderblue: '#B0E0E6', + rosybrown: '#BC8F8F', + royalblue: '#4169E1', + saddlebrown: '#8B4513', + salmon: '#FA8072', + sandybrown: '#F4A460', + seagreen: '#2E8B57', + seashell: '#FFF5EE', + sienna: '#A0522D', + skyblue: '#87CEEB', + slateblue: '#6A5ACD', + slategray: '#708090', + slategrey: '#708090', + snow: '#FFFAFA', + springgreen: '#00FF7F', + steelblue: '#4682B4', + tan: '#D2B48C', + thistle: '#D8BFD8', + tomato: '#FF6347', + turquoise: '#40E0D0', + violet: '#EE82EE', + wheat: '#F5DEB3', + whitesmoke: '#F5F5F5', + yellowgreen: '#9ACD32' + }; + + + function getRgbHslContent(styleString) { + var start = styleString.indexOf('(', 3); + var end = styleString.indexOf(')', start + 1); + var parts = styleString.substring(start + 1, end).split(','); + // add alpha if needed + if (parts.length != 4 || styleString.charAt(3) != 'a') { + parts[3] = 1; + } + return parts; + } + + function percent(s) { + return parseFloat(s) / 100; + } + + function clamp(v, min, max) { + return Math.min(max, Math.max(min, v)); + } + + function hslToRgb(parts){ + var r, g, b, h, s, l; + h = parseFloat(parts[0]) / 360 % 360; + if (h < 0) + h++; + s = clamp(percent(parts[1]), 0, 1); + l = clamp(percent(parts[2]), 0, 1); + if (s == 0) { + r = g = b = l; // achromatic + } else { + var q = l < 0.5 ? l * (1 + s) : l + s - l * s; + var p = 2 * l - q; + r = hueToRgb(p, q, h + 1 / 3); + g = hueToRgb(p, q, h); + b = hueToRgb(p, q, h - 1 / 3); + } + + return '#' + decToHex[Math.floor(r * 255)] + + decToHex[Math.floor(g * 255)] + + decToHex[Math.floor(b * 255)]; + } + + function hueToRgb(m1, m2, h) { + if (h < 0) + h++; + if (h > 1) + h--; + + if (6 * h < 1) + return m1 + (m2 - m1) * 6 * h; + else if (2 * h < 1) + return m2; + else if (3 * h < 2) + return m1 + (m2 - m1) * (2 / 3 - h) * 6; + else + return m1; + } + + var processStyleCache = {}; + + function processStyle(styleString) { + if (styleString in processStyleCache) { + return processStyleCache[styleString]; + } + + var str, alpha = 1; + + styleString = String(styleString); + if (styleString.charAt(0) == '#') { + str = styleString; + } else if (/^rgb/.test(styleString)) { + var parts = getRgbHslContent(styleString); + var str = '#', n; + for (var i = 0; i < 3; i++) { + if (parts[i].indexOf('%') != -1) { + n = Math.floor(percent(parts[i]) * 255); + } else { + n = +parts[i]; + } + str += decToHex[clamp(n, 0, 255)]; + } + alpha = +parts[3]; + } else if (/^hsl/.test(styleString)) { + var parts = getRgbHslContent(styleString); + str = hslToRgb(parts); + alpha = parts[3]; + } else { + str = colorData[styleString] || styleString; + } + return processStyleCache[styleString] = {color: str, alpha: alpha}; + } + + var DEFAULT_STYLE = { + style: 'normal', + variant: 'normal', + weight: 'normal', + size: 10, + family: 'sans-serif' + }; + + // Internal text style cache + var fontStyleCache = {}; + + function processFontStyle(styleString) { + if (fontStyleCache[styleString]) { + return fontStyleCache[styleString]; + } + + var el = document.createElement('div'); + var style = el.style; + try { + style.font = styleString; + } catch (ex) { + // Ignore failures to set to invalid font. + } + + return fontStyleCache[styleString] = { + style: style.fontStyle || DEFAULT_STYLE.style, + variant: style.fontVariant || DEFAULT_STYLE.variant, + weight: style.fontWeight || DEFAULT_STYLE.weight, + size: style.fontSize || DEFAULT_STYLE.size, + family: style.fontFamily || DEFAULT_STYLE.family + }; + } + + function getComputedStyle(style, element) { + var computedStyle = {}; + + for (var p in style) { + computedStyle[p] = style[p]; + } + + // Compute the size + var canvasFontSize = parseFloat(element.currentStyle.fontSize), + fontSize = parseFloat(style.size); + + if (typeof style.size == 'number') { + computedStyle.size = style.size; + } else if (style.size.indexOf('px') != -1) { + computedStyle.size = fontSize; + } else if (style.size.indexOf('em') != -1) { + computedStyle.size = canvasFontSize * fontSize; + } else if(style.size.indexOf('%') != -1) { + computedStyle.size = (canvasFontSize / 100) * fontSize; + } else if (style.size.indexOf('pt') != -1) { + computedStyle.size = fontSize / .75; + } else { + computedStyle.size = canvasFontSize; + } + + // Different scaling between normal text and VML text. This was found using + // trial and error to get the same size as non VML text. + computedStyle.size *= 0.981; + + return computedStyle; + } + + function buildStyle(style) { + return style.style + ' ' + style.variant + ' ' + style.weight + ' ' + + style.size + 'px ' + style.family; + } + + var lineCapMap = { + 'butt': 'flat', + 'round': 'round' + }; + + function processLineCap(lineCap) { + return lineCapMap[lineCap] || 'square'; + } + + /** + * This class implements CanvasRenderingContext2D interface as described by + * the WHATWG. + * @param {HTMLElement} canvasElement The element that the 2D context should + * be associated with + */ + function CanvasRenderingContext2D_(canvasElement) { + 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.font = '10px sans-serif'; + this.textAlign = 'left'; + this.textBaseline = 'alphabetic'; + this.canvas = canvasElement; + + var cssText = 'width:' + canvasElement.clientWidth + 'px;height:' + + canvasElement.clientHeight + 'px;overflow:hidden;position:absolute'; + var el = canvasElement.ownerDocument.createElement('div'); + el.style.cssText = cssText; + canvasElement.appendChild(el); + + var overlayEl = el.cloneNode(false); + // Use a non transparent background. + overlayEl.style.backgroundColor = 'red'; + overlayEl.style.filter = 'alpha(opacity=0)'; + canvasElement.appendChild(overlayEl); + + this.element_ = el; + this.arcScaleX_ = 1; + this.arcScaleY_ = 1; + this.lineScale_ = 1; + } + + var contextPrototype = CanvasRenderingContext2D_.prototype; + contextPrototype.clearRect = function() { + if (this.textMeasureEl_) { + this.textMeasureEl_.removeNode(true); + this.textMeasureEl_ = null; + } + 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 = getCoords(this, 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 = getCoords(this, 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 = getCoords(this, aX, aY); + var cp1 = getCoords(this, aCP1x, aCP1y); + var cp2 = getCoords(this, 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 = getCoords(this, aCPx, aCPy); + var p = getCoords(this, 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 = getCoords(this, aX, aY); + var pStart = getCoords(this, xStart, yStart); + var pEnd = getCoords(this, 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 = getCoords(this, 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 W = 10; + var H = 10; + // Divide the shape into chunks if it's too long because IE has a limit + // somewhere for how long a VML shape can be. This simple division does + // not work with fills, only strokes, unfortunately. + var chunkSize = 5000; + + var min = {x: null, y: null}; + var max = {x: null, y: null}; + + for (var j = 0; j < this.currentPath_.length; j += chunkSize) { + var lineStr = []; + var lineOpen = false; + + lineStr.push(''); + + if (!aFill) { + appendStroke(this, lineStr); + } else { + appendFill(this, lineStr, min, max); + } + + lineStr.push(''); + + this.element_.insertAdjacentHTML('beforeEnd', lineStr.join('')); + } + }; + + function appendStroke(ctx, lineStr) { + var a = processStyle(ctx.strokeStyle); + var color = a.color; + var opacity = a.alpha * ctx.globalAlpha; + var lineWidth = ctx.lineScale_ * ctx.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( + '' + ); + } + + function appendFill(ctx, lineStr, min, max) { + var fillStyle = ctx.fillStyle; + var arcScaleX = ctx.arcScaleX_; + var arcScaleY = ctx.arcScaleY_; + var width = max.x - min.x; + var height = max.y - min.y; + if (fillStyle instanceof CanvasGradient_) { + // TODO: Gradients transformed with the transformation matrix. + 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_ / arcScaleX; + var y0 = fillStyle.y0_ / arcScaleY; + var x1 = fillStyle.x1_ / arcScaleX; + var y1 = fillStyle.y1_ / arcScaleY; + var p0 = getCoords(ctx, x0, y0); + var p1 = getCoords(ctx, 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 = getCoords(ctx, fillStyle.x0_, fillStyle.y0_); + focus = { + x: (p0.x - min.x) / width, + y: (p0.y - min.y) / height + }; + + width /= arcScaleX * Z; + height /= 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 * ctx.globalAlpha; + var opacity2 = stops[length - 1].alpha * ctx.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 if (fillStyle instanceof CanvasPattern_) { + if (width && height) { + var deltaLeft = -min.x; + var deltaTop = -min.y; + lineStr.push(''); + } + } else { + var a = processStyle(ctx.fillStyle); + var color = a.color; + var opacity = a.alpha * ctx.globalAlpha; + lineStr.push(''); + } + } + + contextPrototype.fill = function() { + this.stroke(true); + }; + + contextPrototype.closePath = function() { + this.currentPath_.push({type: 'close'}); + }; + + function getCoords(ctx, aX, aY) { + var m = ctx.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() { + if (this.aStack_.length) { + copyState(this.aStack_.pop(), this); + this.m_ = this.mStack_.pop(); + } + }; + + function matrixIsFinite(m) { + return isFinite(m[0][0]) && isFinite(m[0][1]) && + isFinite(m[1][0]) && isFinite(m[1][1]) && + isFinite(m[2][0]) && isFinite(m[2][1]); + } + + 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); + }; + + /** + * The text drawing function. + * The maxWidth argument isn't taken in account, since no browser supports + * it yet. + */ + contextPrototype.drawText_ = function(text, x, y, maxWidth, stroke) { + var m = this.m_, + delta = 1000, + left = 0, + right = delta, + offset = {x: 0, y: 0}, + lineStr = []; + + var fontStyle = getComputedStyle(processFontStyle(this.font), + this.element_); + + var fontStyleString = buildStyle(fontStyle); + + var elementStyle = this.element_.currentStyle; + var textAlign = this.textAlign.toLowerCase(); + switch (textAlign) { + case 'left': + case 'center': + case 'right': + break; + case 'end': + textAlign = elementStyle.direction == 'ltr' ? 'right' : 'left'; + break; + case 'start': + textAlign = elementStyle.direction == 'rtl' ? 'right' : 'left'; + break; + default: + textAlign = 'left'; + } + + // 1.75 is an arbitrary number, as there is no info about the text baseline + switch (this.textBaseline) { + case 'hanging': + case 'top': + offset.y = fontStyle.size / 1.75; + break; + case 'middle': + break; + default: + case null: + case 'alphabetic': + case 'ideographic': + case 'bottom': + offset.y = -fontStyle.size / 2.25; + break; + } + + switch(textAlign) { + case 'right': + left = delta; + right = 0.05; + break; + case 'center': + left = right = delta / 2; + break; + } + + var d = getCoords(this, x + offset.x, y + offset.y); + + lineStr.push(''); + + if (stroke) { + appendStroke(this, lineStr); + } else { + // TODO: Fix the min and max params. + appendFill(this, lineStr, {x: -left, y: 0}, + {x: right, y: fontStyle.size}); + } + + var skewM = m[0][0].toFixed(3) + ',' + m[1][0].toFixed(3) + ',' + + m[0][1].toFixed(3) + ',' + m[1][1].toFixed(3) + ',0,0'; + + var skewOffset = mr(d.x / Z) + ',' + mr(d.y / Z); + + lineStr.push('', + '', + ''); + + this.element_.insertAdjacentHTML('beforeEnd', lineStr.join('')); + }; + + contextPrototype.fillText = function(text, x, y, maxWidth) { + this.drawText_(text, x, y, maxWidth, false); + }; + + contextPrototype.strokeText = function(text, x, y, maxWidth) { + this.drawText_(text, x, y, maxWidth, true); + }; + + contextPrototype.measureText = function(text) { + if (!this.textMeasureEl_) { + var s = ''; + this.element_.insertAdjacentHTML('beforeEnd', s); + this.textMeasureEl_ = this.element_.lastChild; + } + var doc = this.element_.ownerDocument; + this.textMeasureEl_.innerHTML = ''; + this.textMeasureEl_.style.font = this.font; + // Don't use innerHTML or innerText because they allow markup/whitespace. + this.textMeasureEl_.appendChild(doc.createTextNode(text)); + return {width: this.textMeasureEl_.offsetWidth}; + }; + + /******** STUBS ********/ + contextPrototype.clip = function() { + // TODO: Implement + }; + + contextPrototype.arcTo = function() { + // TODO: Implement + }; + + contextPrototype.createPattern = function(image, repetition) { + return new CanvasPattern_(image, repetition); + }; + + // 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_(image, repetition) { + assertImageIsValid(image); + switch (repetition) { + case 'repeat': + case null: + case '': + this.repetition_ = 'repeat'; + break + case 'repeat-x': + case 'repeat-y': + case 'no-repeat': + this.repetition_ = repetition; + break; + default: + throwException('SYNTAX_ERR'); + } + + this.src_ = image.src; + this.width_ = image.width; + this.height_ = image.height; + } + + function throwException(s) { + throw new DOMException_(s); + } + + function assertImageIsValid(img) { + if (!img || img.nodeType != 1 || img.tagName != 'IMG') { + throwException('TYPE_MISMATCH_ERR'); + } + if (img.readyState != 'complete') { + throwException('INVALID_STATE_ERR'); + } + } + + function DOMException_(s) { + this.code = this[s]; + this.message = s +': DOM Exception ' + this.code; + } + var p = DOMException_.prototype = new Error; + p.INDEX_SIZE_ERR = 1; + p.DOMSTRING_SIZE_ERR = 2; + p.HIERARCHY_REQUEST_ERR = 3; + p.WRONG_DOCUMENT_ERR = 4; + p.INVALID_CHARACTER_ERR = 5; + p.NO_DATA_ALLOWED_ERR = 6; + p.NO_MODIFICATION_ALLOWED_ERR = 7; + p.NOT_FOUND_ERR = 8; + p.NOT_SUPPORTED_ERR = 9; + p.INUSE_ATTRIBUTE_ERR = 10; + p.INVALID_STATE_ERR = 11; + p.SYNTAX_ERR = 12; + p.INVALID_MODIFICATION_ERR = 13; + p.NAMESPACE_ERR = 14; + p.INVALID_ACCESS_ERR = 15; + p.VALIDATION_ERR = 16; + p.TYPE_MISMATCH_ERR = 17; + + // set up externs + G_vmlCanvasManager = G_vmlCanvasManager_; + CanvasRenderingContext2D = CanvasRenderingContext2D_; + CanvasGradient = CanvasGradient_; + CanvasPattern = CanvasPattern_; + DOMException = DOMException_; +})(); + +} // if diff --git a/public/admin/assets/js/chart/flot-chart/flot-script.js b/public/admin/assets/js/chart/flot-chart/flot-script.js new file mode 100644 index 0000000..bb36746 --- /dev/null +++ b/public/admin/assets/js/chart/flot-chart/flot-script.js @@ -0,0 +1,617 @@ +(function($) { + "use strict"; + var data = [], + totalPoints = 300; + function getRandomData() { + if (data.length > 0) + data = data.slice(1); + while (data.length < totalPoints) { + var prev = data.length > 0 ? data[data.length - 1] : 50, + y = prev + Math.random() * 10 - 5; + if (y < 0) { + y = 0; + } else if (y > 100) { + y = 100; + } + data.push(y); + } + var res = []; + for (var i = 0; i < data.length; ++i) { + res.push([i, data[i]]) + } + return res; + } + var updateInterval = 30; + $("#updateInterval").val(updateInterval).change(function () { + var v = $(this).val(); + if (v && !isNaN(+v)) { + updateInterval = +v; + if (updateInterval < 1) { + updateInterval = 1; + } else if (updateInterval > 2000) { + updateInterval = 2000; + } + $(this).val("" + updateInterval); + } + }); + var plot = $.plot("#real-time-update", [ getRandomData() ], { + series: { + shadowSize: 0 + }, + yaxis: { + min: 0, + max: 100 + }, + xaxis: { + show: !1 + }, + background:{ + color:'#469dff' + }, + grid: { + borderWidth: 0 + }, + colors: [vihoAdminConfig.primary] + }); + function update() { + plot.setData([getRandomData()]); + plot.draw(); + setTimeout(update, updateInterval); + } + update(); +})(jQuery); +if ($("#flot-categories").length > 0) { + var a = { + color: vihoAdminConfig.primary, + data: [ + ["Jan", 25], + ["Feb", 8], + ["Mar", 4], + ["Apr", 13], + ["May", 17], + ["Jun", 9], + ["Jul", 5], + ["Aug", 11], + ["Sep", 17], + ["Oct", 8], + ["Nov", 26], + ] + }; + $.plot("#flot-categories", [a], { + series: { + bars: { + show: !0, + barWidth: .8, + align: "center", + fillColor: { + colors: [{ + opacity: 1 + }, { + opacity: 1 + }] + } + } + }, + xaxis: { + mode: "categories", + tickLength: 0 + }, + grid: { + borderWidth: 0 + } + }) +} + +if ($("#annotations-chart").length > 0) { + for (var a = [], b = 0; b < 20; ++b) a.push([b, Math.sin(b)]); + var c = [{ + data: a, + label: "Pressure", + color: vihoAdminConfig.primary + }], + d = [{ + color: "#ffffff", + yaxis: { + from: 1 + } + }, { + color: "#ffffff", + yaxis: { + to: -1 + } + }, { + color: "#ffffff", + lineWidth: 1, + xaxis: { + from: 1, + to: 1 + } + }, { + color: "#ffffff", + lineWidth: 1, + xaxis: { + from: 9, + to: 9 + } + }], + e = $("#annotations-chart"), + f = $.plot(e, c, { + bars: { + show: !0, + barWidth: .7, + fill: 1 + }, + xaxis: { + ticks: [], + autoscaleMargin: .02 + }, + yaxis: { + min: -2, + max: 2 + }, + grid: { + markings: d, + borderWidth: 0 + } + }), + g = f.pointOffset({ + x: 2, + y: -1.2 + }); + e.append("
    Warming up
    "), g = f.pointOffset({ + x: 8, + y: -1.2 + }), e.append("
    Actual measurements
    "); + var h = f.getCanvas().getContext("2d"); + h.beginPath(), g.left += 4, h.moveTo(g.left, g.top), h.lineTo(g.left, g.top - 10), h.lineTo(g.left + 10, g.top - 5), h.lineTo(g.left, g.top), h.fillStyle = "#5e6db3", h.fill() +} + +if ($("#flot-basic-chart").length > 0) { + for (var a = [], b = 0; b < 14; b += .5) a.push([b, Math.sin(b)]); + var c = { + color: "#e2c636", + data: [ + [0, 3], + [4, 8], + [8, 5], + [9, 13] + ] + }, + d = { + color: vihoAdminConfig.primary, + data: [ + [0, 12], + [7, 0], + null, + [0, 2.5], + [12, 10.5] + ] + }; + $.plot("#flot-basic-chart", [a, c, d], { + grid: { + borderWidth: 0 + }, + bars: { + show: !0, + lineWidth: 0, + fill: !0, + fillColor: { + colors: [{ + opacity: 1 + }, { + opacity: 1 + }] + } + }, + colors: [vihoAdminConfig.secondary, vihoAdminConfig.secondary ,vihoAdminConfig.secondary ,vihoAdminConfig.secondary] + }) +} + +$(function() { + var datasets = { + "usa": { + label: "USA", + data: [[1988, 483994], [1989, 479060], [1990, 457648], [1991, 401949], [1992, 424705], [1993, 402375], [1994, 377867], [1995, 357382], [1996, 337946], [1997, 336185], [1998, 328611], [1999, 329421], [2000, 342172], [2001, 344932], [2002, 387303], [2003, 440813], [2004, 480451], [2005, 504638], [2006, 528692]] + }, + "russia": { + label: "Russia", + data: [[1988, 218000], [1989, 203000], [1990, 171000], [1992, 42500], [1993, 37600], [1994, 36600], [1995, 21700], [1996, 19200], [1997, 21300], [1998, 13600], [1999, 14000], [2000, 19100], [2001, 21300], [2002, 23600], [2003, 25100], [2004, 26100], [2005, 31100], [2006, 34700]] + }, + "uk": { + label: "UK", + data: [[1988, 62982], [1989, 62027], [1990, 60696], [1991, 62348], [1992, 58560], [1993, 56393], [1994, 54579], [1995, 50818], [1996, 50554], [1997, 48276], [1998, 47691], [1999, 47529], [2000, 47778], [2001, 48760], [2002, 50949], [2003, 57452], [2004, 60234], [2005, 60076], [2006, 59213]] + }, + "germany": { + label: "Germany", + data: [[1988, 55627], [1989, 55475], [1990, 58464], [1991, 55134], [1992, 52436], [1993, 47139], [1994, 43962], [1995, 43238], [1996, 42395], [1997, 40854], [1998, 40993], [1999, 41822], [2000, 41147], [2001, 40474], [2002, 40604], [2003, 40044], [2004, 38816], [2005, 38060], [2006, 36984]] + }, + "denmark": { + label: "Denmark", + data: [[1988, 3813], [1989, 3719], [1990, 3722], [1991, 3789], [1992, 3720], [1993, 3730], [1994, 3636], [1995, 3598], [1996, 3610], [1997, 3655], [1998, 3695], [1999, 3673], [2000, 3553], [2001, 3774], [2002, 3728], [2003, 3618], [2004, 3638], [2005, 3467], [2006, 3770]] + }, + "sweden": { + label: "Sweden", + data: [[1988, 6402], [1989, 6474], [1990, 6605], [1991, 6209], [1992, 6035], [1993, 6020], [1994, 6000], [1995, 6018], [1996, 3958], [1997, 5780], [1998, 5954], [1999, 6178], [2000, 6411], [2001, 5993], [2002, 5833], [2003, 5791], [2004, 5450], [2005, 5521], [2006, 5271]] + }, + "norway": { + label: "Norway", + data: [[1988, 4382], [1989, 4498], [1990, 4535], [1991, 4398], [1992, 4766], [1993, 4441], [1994, 4670], [1995, 4217], [1996, 4275], [1997, 4203], [1998, 4482], [1999, 4506], [2000, 4358], [2001, 4385], [2002, 5269], [2003, 5066], [2004, 5194], [2005, 4887], [2006, 4891]] + } + }; + var i = 0; + $.each(datasets, function(key, val) { + val.color = i; + ++i; + }); + var choiceContainer = $("#choices"); + $.each(datasets, function(key, val) { + choiceContainer.append("
    " + + "
    "); + }); + choiceContainer.find("input").click(plotAccordingToChoices); + function plotAccordingToChoices() { + var data = []; + choiceContainer.find("input:checked").each(function () { + var key = $(this).attr("name"); + if (key && datasets[key]) { + data.push(datasets[key]); + } + }); + if (data.length > 0) { + $.plot("#toggling-series-flot", data, { + yaxis: { + min: 0 + }, + xaxis: { + tickDecimals: 0 + }, + grid: { + + borderWidth: 0 + }, + colors: [vihoAdminConfig.primary, "#ba895" ,"#222222" ,"#717171" ,"#e2c636", "#d22d3d" ,"#e6edef"] + + }); + } + } + plotAccordingToChoices(); +}); + +$(function() { + function a() { + $("#stacking-flot-chart").length > 0 && $.plot("#stacking-flot-chart", j, { + series: { + stack: f, + lines: { + show: h, + fill: !0, + steps: i + }, + bars: { + show: g, + barWidth: .6 + } + }, + grid: { + borderWidth: 0 + } + }) + } + for (var b = [], c = 0; c <= 10; c += 1) b.push([c, parseInt(30 * Math.random(), 30)]); + for (var d = [], c = 0; c <= 10; c += 1) d.push([c, parseInt(30 * Math.random(), 30)]); + for (var e = [], c = 0; c <= 10; c += 1) e.push([c, parseInt(30 * Math.random(), 30)]); + var f = 0, + g = !0, + h = !1, + i = !1, + j = [{ + color: vihoAdminConfig.secondary, + data: b + }, { + color: vihoAdminConfig.primary, + data: d + }, { + color: "#222222", + data: e + }]; + a(), $(".stackControls button").click( function(b) { + b.preventDefault(), f = "With stacking" == $(this).text() || null, a() + }), $(".graphControls button").on("click", function(b) { + b.preventDefault(), g = $(this).text().indexOf("Bars") != -1, h = $(this).text().indexOf("Lines") != -1, i = $(this).text().indexOf("steps") != -1, a() + }) +}); + +$(function() { + function drawArrow(ctx, x, y, radius){ + ctx.beginPath(); + ctx.moveTo(x + radius, y + radius); + ctx.lineTo(x, y); + ctx.lineTo(x - radius, y + radius); + ctx.stroke(); + } + function drawSemiCircle(ctx, x, y, radius){ + ctx.beginPath(); + ctx.arc(x, y, radius, 0, Math.PI, false); + ctx.moveTo(x - radius, y); + ctx.lineTo(x + radius, y); + ctx.stroke(); + } + var data1 = [ + [1,1,.5,.1,.3], + [2,2,.3,.5,.2], + [3,3,.9,.5,.2], + [1.5,-.05,.5,.1,.3], + [3.15,1.,.5,.1,.3], + [2.5,-1.,.5,.1,.3] + ]; + + var data1_points = { + show: true, + radius: 5, + fillColor: "#007bff", + errorbars: "xy", + xerr: {show: true, asymmetric: true, upperCap: "-", lowerCap: "-"}, + yerr: {show: true, color: "red", upperCap: "-"} + }; + + var data2 = [ + [.7,3,.2,.4], + [1.5,2.2,.3,.4], + [2.3,1,.5,.2] + ]; + + var data2_points = { + show: true, + radius: 5, + errorbars: "y", + yerr: {show:true, asymmetric:true, upperCap: drawArrow, lowerCap: drawSemiCircle} + }; + + var data3 = [ + [1,2,.4], + [2,0.5,.3], + [2.7,2,.5] + ]; + + var data3_points = { + radius: 0, + errorbars: "y", + yerr: {show:true, upperCap: "-", lowerCap: "-", radius: 5} + }; + + var data4 = [ + [1.3, 1], + [1.75, 2.5], + [2.5, 0.5] + ]; + + var data4_errors = [0.1, 0.4, 0.2]; + for (var i = 0; i < data4.length; i++) { + data4_errors[i] = data4[i].concat(data4_errors[i]) + } + + var data = [ + {color: "#717171", points: data1_points, data: data1, label: "data1"}, + {color: "#222222", points: data2_points, data: data2, label: "data2"}, + {color: vihoAdminConfig.secondary, lines: {show: true}, points: data3_points, data: data3, label: "data3"}, + {color: vihoAdminConfig.primary, bars: {show: true, align: "center", barWidth: 0.25}, data: data4, label: "data4"}, + {color: "#e2c636", points: data3_points, data: data4_errors} + ]; + + $.plot($("#error-flot-chart"), data , { + legend: { + position: "sw", + show: true + }, + series: { + lines: { + show: false + } + }, + xaxis: { + min: 0.6, + max: 3.1 + }, + yaxis: { + min: 0, + max: 3.5 + }, + zoom: { + interactive: true + }, + pan: { + interactive: true + }, + grid: { + borderWidth: 0 + } + }); +}); + +$(function() { + var data = [], + series = Math.floor(Math.random() * 6) + 3; + for (var i = 0; i < series; i++) { + data[i] = { + label: "Series" + (i + 1), + data: Math.floor(Math.random() * 100) + 1 + } + } + $.plot('#default-pie-flot-chart', data, { + series: { + pie: { + show: true + } + }, + colors: [vihoAdminConfig.primary, "#ba895" ,"#222222" ,"#717171" ,"#e2c636", "#d22d3d" ,"#efefef"] + }); + $.plot('#default-pie-legend-flot-chart', data, { + series: { + pie: { + show: true + } + }, + legend: { + show: false + }, + colors: [vihoAdminConfig.primary, "#ba895" ,"#222222" ,"#717171" ,"#e2c636", "#d22d3d" ,"#efefef"] + }); + $.plot('#hidden-label-radius-flot-chart', data, { + series: { + pie: { + show: true, + radius: 1, + label: { + show: true, + radius: 2/3, + threshold: 0.1 + } + } + }, + legend: { + show: false + }, + colors: [vihoAdminConfig.primary, "#ba895" ,"#222222" ,"#717171" ,"#e2c636", "#d22d3d" ,"#efefef"] + }); + $.plot('#default-pie-flot-chart-hover', data, { + series: { + pie: { + show: true + } + }, + grid: { + hoverable: true, + clickable: true + }, + colors: [vihoAdminConfig.primary, "#ba895" ,"#222222" ,"#717171" ,"#e2c636", "#d22d3d" ,"#efefef"] + }); + $.plot('#custom-label1pie', data, { + series: { + pie: { + show: true, + radius: 1, + label: { + show: true, + radius: 1, + background: { + opacity: 0.8 + } + } + } + }, + legend: { + show: false + }, + colors: [vihoAdminConfig.primary, "#ba895" ,"#222222" ,"#717171" ,"#e2c636", "#d22d3d" ,"#efefef"] + }); + $.plot('#label-radius-flot-chart', data, { + series: { + pie: { + show: true, + radius: 1, + label: { + show: true, + radius: 3/4, + background: { + opacity: 0.8 + } + } + } + }, + legend: { + show: false + }, + colors: [vihoAdminConfig.primary, "#ba895" ,"#222222" ,"#717171" ,"#e2c636", "#d22d3d" ,"#efefef"] + }); + $.plot('#title-pie-flot-chart', data, { + series: { + pie: { + show: true, + radius: 1, + tilt: 0.5, + label: { + show: true, + radius: 1, + background: { + opacity: 0.8 + } + }, + combine: { + color: '#ddd', + threshold: 0.1 + } + } + }, + legend: { + show: false + }, + colors: [vihoAdminConfig.primary, "#ba895" ,"#222222" ,"#717171" ,"#e2c636", "#d22d3d" ,"#efefef"] + }); + $.plot('#dount-hole-flot-chart', data, { + series: { + pie: { + innerRadius: 0.5, + show: true + } + }, + colors: [vihoAdminConfig.primary, "#ba895" ,"#222222" ,"#717171" ,"#e2c636", "#d22d3d" ,"#efefef"] + }); +}); + +if ($("#multiple-real-timeupdate ").length > 0) { + var a = [], + b = 300, + c = function() { + for (a.length > 0 && (a = a.slice(1)); a.length < b;) { + var c = a.length > 0 ? a[a.length - 1] : 50, + d = c + 10 * Math.random() - 5; + d < 0 ? d = 0 : d > 100 && (d = 100), a.push(d) + } + for (var e = [], f = 0; f < a.length; ++f) e.push([f, a[f]]); + return e + }, + d = [], + b = 300, + e = function() { + for (d.length > 0 && (d = d.slice(1)); d.length < b;) { + var a = d.length > 0 ? d[d.length - 1] : 50, + c = a + 10 * Math.random() - 5; + c < 0 ? c = 0 : c > 100 && (c = 100), d.push(c) + } + for (var e = [], f = 0; f < d.length; ++f) e.push([f, d[f]]); + return e + }, + f = 30, + g = 30; + g && !isNaN(+g) && (f = +g, f < 1 ? f = 1 : f > 2e3 && (f = 2e3), $(this).val("" + f)); + var h = { + color: "#544fff", + data: c() + }, + i = { + color: "#000000", + data: e() + }, + j = $.plot("#multiple-real-timeupdate", [h, i], { + series: { + shadowSize: 0 + }, + yaxis: { + min: 0, + max: 100 + }, + xaxis: { + show: !1 + }, + grid: { + borderWidth: 0 + }, + colors: [vihoAdminConfig.primary, vihoAdminConfig.secondary] + }), + k = function() { + j.setData([c(), e()]), j.draw(), setTimeout(k, f) + }; + k() +} diff --git a/public/admin/assets/js/chart/flot-chart/jquery.flot.categories.js b/public/admin/assets/js/chart/flot-chart/jquery.flot.categories.js new file mode 100644 index 0000000..2f9b257 --- /dev/null +++ b/public/admin/assets/js/chart/flot-chart/jquery.flot.categories.js @@ -0,0 +1,190 @@ +/* Flot plugin for plotting textual data or categories. + +Copyright (c) 2007-2014 IOLA and Ole Laursen. +Licensed under the MIT license. + +Consider a dataset like [["February", 34], ["March", 20], ...]. This plugin +allows you to plot such a dataset directly. + +To enable it, you must specify mode: "categories" on the axis with the textual +labels, e.g. + + $.plot("#placeholder", data, { xaxis: { mode: "categories" } }); + +By default, the labels are ordered as they are met in the data series. If you +need a different ordering, you can specify "categories" on the axis options +and list the categories there: + + xaxis: { + mode: "categories", + categories: ["February", "March", "April"] + } + +If you need to customize the distances between the categories, you can specify +"categories" as an object mapping labels to values + + xaxis: { + mode: "categories", + categories: { "February": 1, "March": 3, "April": 4 } + } + +If you don't specify all categories, the remaining categories will be numbered +from the max value plus 1 (with a spacing of 1 between each). + +Internally, the plugin works by transforming the input data through an auto- +generated mapping where the first category becomes 0, the second 1, etc. +Hence, a point like ["February", 34] becomes [0, 34] internally in Flot (this +is visible in hover and click events that return numbers rather than the +category labels). The plugin also overrides the tick generator to spit out the +categories as ticks instead of the values. + +If you need to map a value back to its label, the mapping is always accessible +as "categories" on the axis object, e.g. plot.getAxes().xaxis.categories. + +*/ + +(function ($) { + var options = { + xaxis: { + categories: null + }, + yaxis: { + categories: null + } + }; + + function processRawData(plot, series, data, datapoints) { + // if categories are enabled, we need to disable + // auto-transformation to numbers so the strings are intact + // for later processing + + var xCategories = series.xaxis.options.mode == "categories", + yCategories = series.yaxis.options.mode == "categories"; + + if (!(xCategories || yCategories)) + return; + + var format = datapoints.format; + + if (!format) { + // FIXME: auto-detection should really not be defined here + var s = series; + format = []; + format.push({ x: true, number: true, required: true }); + format.push({ y: true, number: true, required: true }); + + if (s.bars.show || (s.lines.show && s.lines.fill)) { + var autoscale = !!((s.bars.show && s.bars.zero) || (s.lines.show && s.lines.zero)); + format.push({ y: true, number: true, required: false, defaultValue: 0, autoscale: autoscale }); + if (s.bars.horizontal) { + delete format[format.length - 1].y; + format[format.length - 1].x = true; + } + } + + datapoints.format = format; + } + + for (var m = 0; m < format.length; ++m) { + if (format[m].x && xCategories) + format[m].number = false; + + if (format[m].y && yCategories) + format[m].number = false; + } + } + + function getNextIndex(categories) { + var index = -1; + + for (var v in categories) + if (categories[v] > index) + index = categories[v]; + + return index + 1; + } + + function categoriesTickGenerator(axis) { + var res = []; + for (var label in axis.categories) { + var v = axis.categories[label]; + if (v >= axis.min && v <= axis.max) + res.push([v, label]); + } + + res.sort(function (a, b) { return a[0] - b[0]; }); + + return res; + } + + function setupCategoriesForAxis(series, axis, datapoints) { + if (series[axis].options.mode != "categories") + return; + + if (!series[axis].categories) { + // parse options + var c = {}, o = series[axis].options.categories || {}; + if ($.isArray(o)) { + for (var i = 0; i < o.length; ++i) + c[o[i]] = i; + } + else { + for (var v in o) + c[v] = o[v]; + } + + series[axis].categories = c; + } + + // fix ticks + if (!series[axis].options.ticks) + series[axis].options.ticks = categoriesTickGenerator; + + transformPointsOnAxis(datapoints, axis, series[axis].categories); + } + + function transformPointsOnAxis(datapoints, axis, categories) { + // go through the points, transforming them + var points = datapoints.points, + ps = datapoints.pointsize, + format = datapoints.format, + formatColumn = axis.charAt(0), + index = getNextIndex(categories); + + for (var i = 0; i < points.length; i += ps) { + if (points[i] == null) + continue; + + for (var m = 0; m < ps; ++m) { + var val = points[i + m]; + + if (val == null || !format[m][formatColumn]) + continue; + + if (!(val in categories)) { + categories[val] = index; + ++index; + } + + points[i + m] = categories[val]; + } + } + } + + function processDatapoints(plot, series, datapoints) { + setupCategoriesForAxis(series, "xaxis", datapoints); + setupCategoriesForAxis(series, "yaxis", datapoints); + } + + function init(plot) { + plot.hooks.processRawData.push(processRawData); + plot.hooks.processDatapoints.push(processDatapoints); + } + + $.plot.plugins.push({ + init: init, + options: options, + name: 'categories', + version: '1.0' + }); +})(jQuery); diff --git a/public/admin/assets/js/chart/flot-chart/jquery.flot.js b/public/admin/assets/js/chart/flot-chart/jquery.flot.js new file mode 100644 index 0000000..39f3e4c --- /dev/null +++ b/public/admin/assets/js/chart/flot-chart/jquery.flot.js @@ -0,0 +1,3168 @@ +/* Javascript plotting library for jQuery, version 0.8.3. + +Copyright (c) 2007-2014 IOLA and Ole Laursen. +Licensed under the MIT license. + +*/ + +// first an inline dependency, jquery.colorhelpers.js, we inline it here +// for convenience + +/* Plugin for jQuery for working with colors. + * + * Version 1.1. + * + * Inspiration from jQuery color animation plugin by John Resig. + * + * Released under the MIT license by Ole Laursen, October 2009. + * + * Examples: + * + * $.color.parse("#fff").scale('rgb', 0.25).add('a', -0.5).toString() + * var c = $.color.extract($("#mydiv"), 'background-color'); + * console.log(c.r, c.g, c.b, c.a); + * $.color.make(100, 50, 25, 0.4).toString() // returns "rgba(100,50,25,0.4)" + * + * Note that .scale() and .add() return the same modified object + * instead of making a new one. + * + * V. 1.1: Fix error handling so e.g. parsing an empty string does + * produce a color rather than just crashing. + */ +(function($){$.color={};$.color.make=function(r,g,b,a){var o={};o.r=r||0;o.g=g||0;o.b=b||0;o.a=a!=null?a:1;o.add=function(c,d){for(var i=0;i=1){return"rgb("+[o.r,o.g,o.b].join(",")+")"}else{return"rgba("+[o.r,o.g,o.b,o.a].join(",")+")"}};o.normalize=function(){function clamp(min,value,max){return valuemax?max:value}o.r=clamp(0,parseInt(o.r),255);o.g=clamp(0,parseInt(o.g),255);o.b=clamp(0,parseInt(o.b),255);o.a=clamp(0,o.a,1);return o};o.clone=function(){return $.color.make(o.r,o.b,o.g,o.a)};return o.normalize()};$.color.extract=function(elem,css){var c;do{c=elem.css(css).toLowerCase();if(c!=""&&c!="transparent")break;elem=elem.parent()}while(elem.length&&!$.nodeName(elem.get(0),"body"));if(c=="rgba(0, 0, 0, 0)")c="transparent";return $.color.parse(c)};$.color.parse=function(str){var res,m=$.color.make;if(res=/rgb\(\s*([0-9]{1,3})\s*,\s*([0-9]{1,3})\s*,\s*([0-9]{1,3})\s*\)/.exec(str))return m(parseInt(res[1],10),parseInt(res[2],10),parseInt(res[3],10));if(res=/rgba\(\s*([0-9]{1,3})\s*,\s*([0-9]{1,3})\s*,\s*([0-9]{1,3})\s*,\s*([0-9]+(?:\.[0-9]+)?)\s*\)/.exec(str))return m(parseInt(res[1],10),parseInt(res[2],10),parseInt(res[3],10),parseFloat(res[4]));if(res=/rgb\(\s*([0-9]+(?:\.[0-9]+)?)\%\s*,\s*([0-9]+(?:\.[0-9]+)?)\%\s*,\s*([0-9]+(?:\.[0-9]+)?)\%\s*\)/.exec(str))return m(parseFloat(res[1])*2.55,parseFloat(res[2])*2.55,parseFloat(res[3])*2.55);if(res=/rgba\(\s*([0-9]+(?:\.[0-9]+)?)\%\s*,\s*([0-9]+(?:\.[0-9]+)?)\%\s*,\s*([0-9]+(?:\.[0-9]+)?)\%\s*,\s*([0-9]+(?:\.[0-9]+)?)\s*\)/.exec(str))return m(parseFloat(res[1])*2.55,parseFloat(res[2])*2.55,parseFloat(res[3])*2.55,parseFloat(res[4]));if(res=/#([a-fA-F0-9]{2})([a-fA-F0-9]{2})([a-fA-F0-9]{2})/.exec(str))return m(parseInt(res[1],16),parseInt(res[2],16),parseInt(res[3],16));if(res=/#([a-fA-F0-9])([a-fA-F0-9])([a-fA-F0-9])/.exec(str))return m(parseInt(res[1]+res[1],16),parseInt(res[2]+res[2],16),parseInt(res[3]+res[3],16));var name=$.trim(str).toLowerCase();if(name=="transparent")return m(255,255,255,0);else{res=lookupColors[name]||[0,0,0];return m(res[0],res[1],res[2])}};var lookupColors={aqua:[0,255,255],azure:[240,255,255],beige:[245,245,220],black:[0,0,0],blue:[0,0,255],brown:[165,42,42],cyan:[0,255,255],darkblue:[0,0,139],darkcyan:[0,139,139],darkgrey:[169,169,169],darkgreen:[0,100,0],darkkhaki:[189,183,107],darkmagenta:[139,0,139],darkolivegreen:[85,107,47],darkorange:[255,140,0],darkorchid:[153,50,204],darkred:[139,0,0],darksalmon:[233,150,122],darkviolet:[148,0,211],fuchsia:[255,0,255],gold:[255,215,0],green:[0,128,0],indigo:[75,0,130],khaki:[240,230,140],lightblue:[173,216,230],lightcyan:[224,255,255],lightgreen:[144,238,144],lightgrey:[211,211,211],lightpink:[255,182,193],lightyellow:[255,255,224],lime:[0,255,0],magenta:[255,0,255],maroon:[128,0,0],navy:[0,0,128],olive:[128,128,0],orange:[255,165,0],pink:[255,192,203],purple:[128,0,128],violet:[128,0,128],red:[255,0,0],silver:[192,192,192],white:[255,255,255],yellow:[255,255,0]}})(jQuery); + +// the actual Flot code +(function($) { + + // Cache the prototype hasOwnProperty for faster access + + var hasOwnProperty = Object.prototype.hasOwnProperty; + + // A shim to provide 'detach' to jQuery versions prior to 1.4. Using a DOM + // operation produces the same effect as detach, i.e. removing the element + // without touching its jQuery data. + + // Do not merge this into Flot 0.9, since it requires jQuery 1.4.4+. + + if (!$.fn.detach) { + $.fn.detach = function() { + return this.each(function() { + if (this.parentNode) { + this.parentNode.removeChild( this ); + } + }); + }; + } + + /////////////////////////////////////////////////////////////////////////// + // The Canvas object is a wrapper around an HTML5 tag. + // + // @constructor + // @param {string} cls List of classes to apply to the canvas. + // @param {element} container Element onto which to append the canvas. + // + // Requiring a container is a little iffy, but unfortunately canvas + // operations don't work unless the canvas is attached to the DOM. + + function Canvas(cls, container) { + + var element = container.children("." + cls)[0]; + + if (element == null) { + + element = document.createElement("canvas"); + element.className = cls; + + $(element).css({ direction: "ltr", position: "absolute", left: 0, top: 0 }) + .appendTo(container); + + // If HTML5 Canvas isn't available, fall back to [Ex|Flash]canvas + + if (!element.getContext) { + if (window.G_vmlCanvasManager) { + element = window.G_vmlCanvasManager.initElement(element); + } else { + throw new Error("Canvas is not available. If you're using IE with a fall-back such as Excanvas, then there's either a mistake in your conditional include, or the page has no DOCTYPE and is rendering in Quirks Mode."); + } + } + } + + this.element = element; + + var context = this.context = element.getContext("2d"); + + // Determine the screen's ratio of physical to device-independent + // pixels. This is the ratio between the canvas width that the browser + // advertises and the number of pixels actually present in that space. + + // The iPhone 4, for example, has a device-independent width of 320px, + // but its screen is actually 640px wide. It therefore has a pixel + // ratio of 2, while most normal devices have a ratio of 1. + + var devicePixelRatio = window.devicePixelRatio || 1, + backingStoreRatio = + context.webkitBackingStorePixelRatio || + context.mozBackingStorePixelRatio || + context.msBackingStorePixelRatio || + context.oBackingStorePixelRatio || + context.backingStorePixelRatio || 1; + + this.pixelRatio = devicePixelRatio / backingStoreRatio; + + // Size the canvas to match the internal dimensions of its container + + this.resize(container.width(), container.height()); + + // Collection of HTML div layers for text overlaid onto the canvas + + this.textContainer = null; + this.text = {}; + + // Cache of text fragments and metrics, so we can avoid expensively + // re-calculating them when the plot is re-rendered in a loop. + + this._textCache = {}; + } + + // Resizes the canvas to the given dimensions. + // + // @param {number} width New width of the canvas, in pixels. + // @param {number} width New height of the canvas, in pixels. + + Canvas.prototype.resize = function(width, height) { + + if (width <= 0 || height <= 0) { + throw new Error("Invalid dimensions for plot, width = " + width + ", height = " + height); + } + + var element = this.element, + context = this.context, + pixelRatio = this.pixelRatio; + + // Resize the canvas, increasing its density based on the display's + // pixel ratio; basically giving it more pixels without increasing the + // size of its element, to take advantage of the fact that retina + // displays have that many more pixels in the same advertised space. + + // Resizing should reset the state (excanvas seems to be buggy though) + + if (this.width != width) { + element.width = width * pixelRatio; + element.style.width = width + "px"; + this.width = width; + } + + if (this.height != height) { + element.height = height * pixelRatio; + element.style.height = height + "px"; + this.height = height; + } + + // Save the context, so we can reset in case we get replotted. The + // restore ensure that we're really back at the initial state, and + // should be safe even if we haven't saved the initial state yet. + + context.restore(); + context.save(); + + // Scale the coordinate space to match the display density; so even though we + // may have twice as many pixels, we still want lines and other drawing to + // appear at the same size; the extra pixels will just make them crisper. + + context.scale(pixelRatio, pixelRatio); + }; + + // Clears the entire canvas area, not including any overlaid HTML text + + Canvas.prototype.clear = function() { + this.context.clearRect(0, 0, this.width, this.height); + }; + + // Finishes rendering the canvas, including managing the text overlay. + + Canvas.prototype.render = function() { + + var cache = this._textCache; + + // For each text layer, add elements marked as active that haven't + // already been rendered, and remove those that are no longer active. + + for (var layerKey in cache) { + if (hasOwnProperty.call(cache, layerKey)) { + + var layer = this.getTextLayer(layerKey), + layerCache = cache[layerKey]; + + layer.hide(); + + for (var styleKey in layerCache) { + if (hasOwnProperty.call(layerCache, styleKey)) { + var styleCache = layerCache[styleKey]; + for (var key in styleCache) { + if (hasOwnProperty.call(styleCache, key)) { + + var positions = styleCache[key].positions; + + for (var i = 0, position; position = positions[i]; i++) { + if (position.active) { + if (!position.rendered) { + layer.append(position.element); + position.rendered = true; + } + } else { + positions.splice(i--, 1); + if (position.rendered) { + position.element.detach(); + } + } + } + + if (positions.length == 0) { + delete styleCache[key]; + } + } + } + } + } + + layer.show(); + } + } + }; + + // Creates (if necessary) and returns the text overlay container. + // + // @param {string} classes String of space-separated CSS classes used to + // uniquely identify the text layer. + // @return {object} The jQuery-wrapped text-layer div. + + Canvas.prototype.getTextLayer = function(classes) { + + var layer = this.text[classes]; + + // Create the text layer if it doesn't exist + + if (layer == null) { + + // Create the text layer container, if it doesn't exist + + if (this.textContainer == null) { + this.textContainer = $("
    ") + .css({ + position: "absolute", + top: 0, + left: 0, + bottom: 0, + right: 0, + 'font-size': "smaller", + color: "#545454" + }) + .insertAfter(this.element); + } + + layer = this.text[classes] = $("
    ") + .addClass(classes) + .css({ + position: "absolute", + top: 0, + left: 0, + bottom: 0, + right: 0 + }) + .appendTo(this.textContainer); + } + + return layer; + }; + + // Creates (if necessary) and returns a text info object. + // + // The object looks like this: + // + // { + // width: Width of the text's wrapper div. + // height: Height of the text's wrapper div. + // element: The jQuery-wrapped HTML div containing the text. + // positions: Array of positions at which this text is drawn. + // } + // + // The positions array contains objects that look like this: + // + // { + // active: Flag indicating whether the text should be visible. + // rendered: Flag indicating whether the text is currently visible. + // element: The jQuery-wrapped HTML div containing the text. + // x: X coordinate at which to draw the text. + // y: Y coordinate at which to draw the text. + // } + // + // Each position after the first receives a clone of the original element. + // + // The idea is that that the width, height, and general 'identity' of the + // text is constant no matter where it is placed; the placements are a + // secondary property. + // + // Canvas maintains a cache of recently-used text info objects; getTextInfo + // either returns the cached element or creates a new entry. + // + // @param {string} layer A string of space-separated CSS classes uniquely + // identifying the layer containing this text. + // @param {string} text Text string to retrieve info for. + // @param {(string|object)=} font Either a string of space-separated CSS + // classes or a font-spec object, defining the text's font and style. + // @param {number=} angle Angle at which to rotate the text, in degrees. + // Angle is currently unused, it will be implemented in the future. + // @param {number=} width Maximum width of the text before it wraps. + // @return {object} a text info object. + + Canvas.prototype.getTextInfo = function(layer, text, font, angle, width) { + + var textStyle, layerCache, styleCache, info; + + // Cast the value to a string, in case we were given a number or such + + text = "" + text; + + // If the font is a font-spec object, generate a CSS font definition + + if (typeof font === "object") { + textStyle = font.style + " " + font.variant + " " + font.weight + " " + font.size + "px/" + font.lineHeight + "px " + font.family; + } else { + textStyle = font; + } + + // Retrieve (or create) the cache for the text's layer and styles + + layerCache = this._textCache[layer]; + + if (layerCache == null) { + layerCache = this._textCache[layer] = {}; + } + + styleCache = layerCache[textStyle]; + + if (styleCache == null) { + styleCache = layerCache[textStyle] = {}; + } + + info = styleCache[text]; + + // If we can't find a matching element in our cache, create a new one + + if (info == null) { + + var element = $("
    ").html(text) + .css({ + position: "absolute", + 'max-width': width, + top: -9999 + }) + .appendTo(this.getTextLayer(layer)); + + if (typeof font === "object") { + element.css({ + font: textStyle, + color: font.color + }); + } else if (typeof font === "string") { + element.addClass(font); + } + + info = styleCache[text] = { + width: element.outerWidth(true), + height: element.outerHeight(true), + element: element, + positions: [] + }; + + element.detach(); + } + + return info; + }; + + // Adds a text string to the canvas text overlay. + // + // The text isn't drawn immediately; it is marked as rendering, which will + // result in its addition to the canvas on the next render pass. + // + // @param {string} layer A string of space-separated CSS classes uniquely + // identifying the layer containing this text. + // @param {number} x X coordinate at which to draw the text. + // @param {number} y Y coordinate at which to draw the text. + // @param {string} text Text string to draw. + // @param {(string|object)=} font Either a string of space-separated CSS + // classes or a font-spec object, defining the text's font and style. + // @param {number=} angle Angle at which to rotate the text, in degrees. + // Angle is currently unused, it will be implemented in the future. + // @param {number=} width Maximum width of the text before it wraps. + // @param {string=} halign Horizontal alignment of the text; either "left", + // "center" or "right". + // @param {string=} valign Vertical alignment of the text; either "top", + // "middle" or "bottom". + + Canvas.prototype.addText = function(layer, x, y, text, font, angle, width, halign, valign) { + + var info = this.getTextInfo(layer, text, font, angle, width), + positions = info.positions; + + // Tweak the div's position to match the text's alignment + + if (halign == "center") { + x -= info.width / 2; + } else if (halign == "right") { + x -= info.width; + } + + if (valign == "middle") { + y -= info.height / 2; + } else if (valign == "bottom") { + y -= info.height; + } + + // Determine whether this text already exists at this position. + // If so, mark it for inclusion in the next render pass. + + for (var i = 0, position; position = positions[i]; i++) { + if (position.x == x && position.y == y) { + position.active = true; + return; + } + } + + // If the text doesn't exist at this position, create a new entry + + // For the very first position we'll re-use the original element, + // while for subsequent ones we'll clone it. + + position = { + active: true, + rendered: false, + element: positions.length ? info.element.clone() : info.element, + x: x, + y: y + }; + + positions.push(position); + + // Move the element to its final position within the container + + position.element.css({ + top: Math.round(y), + left: Math.round(x), + 'text-align': halign // In case the text wraps + }); + }; + + // Removes one or more text strings from the canvas text overlay. + // + // If no parameters are given, all text within the layer is removed. + // + // Note that the text is not immediately removed; it is simply marked as + // inactive, which will result in its removal on the next render pass. + // This avoids the performance penalty for 'clear and redraw' behavior, + // where we potentially get rid of all text on a layer, but will likely + // add back most or all of it later, as when redrawing axes, for example. + // + // @param {string} layer A string of space-separated CSS classes uniquely + // identifying the layer containing this text. + // @param {number=} x X coordinate of the text. + // @param {number=} y Y coordinate of the text. + // @param {string=} text Text string to remove. + // @param {(string|object)=} font Either a string of space-separated CSS + // classes or a font-spec object, defining the text's font and style. + // @param {number=} angle Angle at which the text is rotated, in degrees. + // Angle is currently unused, it will be implemented in the future. + + Canvas.prototype.removeText = function(layer, x, y, text, font, angle) { + if (text == null) { + var layerCache = this._textCache[layer]; + if (layerCache != null) { + for (var styleKey in layerCache) { + if (hasOwnProperty.call(layerCache, styleKey)) { + var styleCache = layerCache[styleKey]; + for (var key in styleCache) { + if (hasOwnProperty.call(styleCache, key)) { + var positions = styleCache[key].positions; + for (var i = 0, position; position = positions[i]; i++) { + position.active = false; + } + } + } + } + } + } + } else { + var positions = this.getTextInfo(layer, text, font, angle).positions; + for (var i = 0, position; position = positions[i]; i++) { + if (position.x == x && position.y == y) { + position.active = false; + } + } + } + }; + + /////////////////////////////////////////////////////////////////////////// + // The top-level container for the entire plot. + + function Plot(placeholder, data_, options_, plugins) { + // data is on the form: + // [ series1, series2 ... ] + // where series is either just the data as [ [x1, y1], [x2, y2], ... ] + // or { data: [ [x1, y1], [x2, y2], ... ], label: "some label", ... } + + var series = [], + options = { + // the color theme used for graphs + colors: ["#edc240", "#afd8f8", "#cb4b4b", "#4da74d", "#9440ed"], + legend: { + show: true, + noColumns: 1, // number of colums in legend table + labelFormatter: null, // fn: string -> string + labelBoxBorderColor: "#ccc", // border color for the little label boxes + container: null, // container (as jQuery object) to put legend in, null means default on top of graph + position: "ne", // position of default legend container within plot + margin: 5, // distance from grid edge to default legend container within plot + backgroundColor: null, // null means auto-detect + backgroundOpacity: 0.85, // set to 0 to avoid background + sorted: null // default to no legend sorting + }, + xaxis: { + show: null, // null = auto-detect, true = always, false = never + position: "bottom", // or "top" + mode: null, // null or "time" + font: null, // null (derived from CSS in placeholder) or object like { size: 11, lineHeight: 13, style: "italic", weight: "bold", family: "sans-serif", variant: "small-caps" } + color: null, // base color, labels, ticks + tickColor: null, // possibly different color of ticks, e.g. "rgba(0,0,0,0.15)" + transform: null, // null or f: number -> number to transform axis + inverseTransform: null, // if transform is set, this should be the inverse function + min: null, // min. value to show, null means set automatically + max: null, // max. value to show, null means set automatically + autoscaleMargin: null, // margin in % to add if auto-setting min/max + ticks: null, // either [1, 3] or [[1, "a"], 3] or (fn: axis info -> ticks) or app. number of ticks for auto-ticks + tickFormatter: null, // fn: number -> string + labelWidth: null, // size of tick labels in pixels + labelHeight: null, + reserveSpace: null, // whether to reserve space even if axis isn't shown + tickLength: null, // size in pixels of ticks, or "full" for whole line + alignTicksWithAxis: null, // axis number or null for no sync + tickDecimals: null, // no. of decimals, null means auto + tickSize: null, // number or [number, "unit"] + minTickSize: null // number or [number, "unit"] + }, + yaxis: { + autoscaleMargin: 0.02, + position: "left" // or "right" + }, + xaxes: [], + yaxes: [], + series: { + points: { + show: false, + radius: 3, + lineWidth: 2, // in pixels + fill: true, + fillColor: "#ffffff", + symbol: "circle" // or callback + }, + lines: { + // we don't put in show: false so we can see + // whether lines were actively disabled + lineWidth: 2, // in pixels + fill: false, + fillColor: null, + steps: false + // Omit 'zero', so we can later default its value to + // match that of the 'fill' option. + }, + bars: { + show: false, + lineWidth: 2, // in pixels + barWidth: 1, // in units of the x axis + fill: true, + fillColor: null, + align: "left", // "left", "right", or "center" + horizontal: false, + zero: true + }, + shadowSize: 3, + highlightColor: null + }, + grid: { + show: true, + aboveData: false, + color: "#545454", // primary color used for outline and labels + backgroundColor: null, // null for transparent, else color + borderColor: null, // set if different from the grid color + tickColor: null, // color for the ticks, e.g. "rgba(0,0,0,0.15)" + margin: 0, // distance from the canvas edge to the grid + labelMargin: 5, // in pixels + axisMargin: 8, // in pixels + borderWidth: 2, // in pixels + minBorderMargin: null, // in pixels, null means taken from points radius + markings: null, // array of ranges or fn: axes -> array of ranges + markingsColor: "#f4f4f4", + markingsLineWidth: 2, + // interactive stuff + clickable: false, + hoverable: false, + autoHighlight: true, // highlight in case mouse is near + mouseActiveRadius: 10 // how far the mouse can be away to activate an item + }, + interaction: { + redrawOverlayInterval: 1000/60 // time between updates, -1 means in same flow + }, + hooks: {} + }, + surface = null, // the canvas for the plot itself + overlay = null, // canvas for interactive stuff on top of plot + eventHolder = null, // jQuery object that events should be bound to + ctx = null, octx = null, + xaxes = [], yaxes = [], + plotOffset = { left: 0, right: 0, top: 0, bottom: 0}, + plotWidth = 0, plotHeight = 0, + hooks = { + processOptions: [], + processRawData: [], + processDatapoints: [], + processOffset: [], + drawBackground: [], + drawSeries: [], + draw: [], + bindEvents: [], + drawOverlay: [], + shutdown: [] + }, + plot = this; + + // public functions + plot.setData = setData; + plot.setupGrid = setupGrid; + plot.draw = draw; + plot.getPlaceholder = function() { return placeholder; }; + plot.getCanvas = function() { return surface.element; }; + plot.getPlotOffset = function() { return plotOffset; }; + plot.width = function () { return plotWidth; }; + plot.height = function () { return plotHeight; }; + plot.offset = function () { + var o = eventHolder.offset(); + o.left += plotOffset.left; + o.top += plotOffset.top; + return o; + }; + plot.getData = function () { return series; }; + plot.getAxes = function () { + var res = {}, i; + $.each(xaxes.concat(yaxes), function (_, axis) { + if (axis) + res[axis.direction + (axis.n != 1 ? axis.n : "") + "axis"] = axis; + }); + return res; + }; + plot.getXAxes = function () { return xaxes; }; + plot.getYAxes = function () { return yaxes; }; + plot.c2p = canvasToAxisCoords; + plot.p2c = axisToCanvasCoords; + plot.getOptions = function () { return options; }; + plot.highlight = highlight; + plot.unhighlight = unhighlight; + plot.triggerRedrawOverlay = triggerRedrawOverlay; + plot.pointOffset = function(point) { + return { + left: parseInt(xaxes[axisNumber(point, "x") - 1].p2c(+point.x) + plotOffset.left, 10), + top: parseInt(yaxes[axisNumber(point, "y") - 1].p2c(+point.y) + plotOffset.top, 10) + }; + }; + plot.shutdown = shutdown; + plot.destroy = function () { + shutdown(); + placeholder.removeData("plot").empty(); + + series = []; + options = null; + surface = null; + overlay = null; + eventHolder = null; + ctx = null; + octx = null; + xaxes = []; + yaxes = []; + hooks = null; + highlights = []; + plot = null; + }; + plot.resize = function () { + var width = placeholder.width(), + height = placeholder.height(); + surface.resize(width, height); + overlay.resize(width, height); + }; + + // public attributes + plot.hooks = hooks; + + // initialize + initPlugins(plot); + parseOptions(options_); + setupCanvases(); + setData(data_); + setupGrid(); + draw(); + bindEvents(); + + + function executeHooks(hook, args) { + args = [plot].concat(args); + for (var i = 0; i < hook.length; ++i) + hook[i].apply(this, args); + } + + function initPlugins() { + + // References to key classes, allowing plugins to modify them + + var classes = { + Canvas: Canvas + }; + + for (var i = 0; i < plugins.length; ++i) { + var p = plugins[i]; + p.init(plot, classes); + if (p.options) + $.extend(true, options, p.options); + } + } + + function parseOptions(opts) { + + $.extend(true, options, opts); + + // $.extend merges arrays, rather than replacing them. When less + // colors are provided than the size of the default palette, we + // end up with those colors plus the remaining defaults, which is + // not expected behavior; avoid it by replacing them here. + + if (opts && opts.colors) { + options.colors = opts.colors; + } + + if (options.xaxis.color == null) + options.xaxis.color = $.color.parse(options.grid.color).scale('a', 0.22).toString(); + if (options.yaxis.color == null) + options.yaxis.color = $.color.parse(options.grid.color).scale('a', 0.22).toString(); + + if (options.xaxis.tickColor == null) // grid.tickColor for back-compatibility + options.xaxis.tickColor = options.grid.tickColor || options.xaxis.color; + if (options.yaxis.tickColor == null) // grid.tickColor for back-compatibility + options.yaxis.tickColor = options.grid.tickColor || options.yaxis.color; + + if (options.grid.borderColor == null) + options.grid.borderColor = options.grid.color; + if (options.grid.tickColor == null) + options.grid.tickColor = $.color.parse(options.grid.color).scale('a', 0.22).toString(); + + // Fill in defaults for axis options, including any unspecified + // font-spec fields, if a font-spec was provided. + + // If no x/y axis options were provided, create one of each anyway, + // since the rest of the code assumes that they exist. + + var i, axisOptions, axisCount, + fontSize = placeholder.css("font-size"), + fontSizeDefault = fontSize ? +fontSize.replace("px", "") : 13, + fontDefaults = { + style: placeholder.css("font-style"), + size: Math.round(0.8 * fontSizeDefault), + variant: placeholder.css("font-variant"), + weight: placeholder.css("font-weight"), + family: placeholder.css("font-family") + }; + + axisCount = options.xaxes.length || 1; + for (i = 0; i < axisCount; ++i) { + + axisOptions = options.xaxes[i]; + if (axisOptions && !axisOptions.tickColor) { + axisOptions.tickColor = axisOptions.color; + } + + axisOptions = $.extend(true, {}, options.xaxis, axisOptions); + options.xaxes[i] = axisOptions; + + if (axisOptions.font) { + axisOptions.font = $.extend({}, fontDefaults, axisOptions.font); + if (!axisOptions.font.color) { + axisOptions.font.color = axisOptions.color; + } + if (!axisOptions.font.lineHeight) { + axisOptions.font.lineHeight = Math.round(axisOptions.font.size * 1.15); + } + } + } + + axisCount = options.yaxes.length || 1; + for (i = 0; i < axisCount; ++i) { + + axisOptions = options.yaxes[i]; + if (axisOptions && !axisOptions.tickColor) { + axisOptions.tickColor = axisOptions.color; + } + + axisOptions = $.extend(true, {}, options.yaxis, axisOptions); + options.yaxes[i] = axisOptions; + + if (axisOptions.font) { + axisOptions.font = $.extend({}, fontDefaults, axisOptions.font); + if (!axisOptions.font.color) { + axisOptions.font.color = axisOptions.color; + } + if (!axisOptions.font.lineHeight) { + axisOptions.font.lineHeight = Math.round(axisOptions.font.size * 1.15); + } + } + } + + // backwards compatibility, to be removed in future + if (options.xaxis.noTicks && options.xaxis.ticks == null) + options.xaxis.ticks = options.xaxis.noTicks; + if (options.yaxis.noTicks && options.yaxis.ticks == null) + options.yaxis.ticks = options.yaxis.noTicks; + if (options.x2axis) { + options.xaxes[1] = $.extend(true, {}, options.xaxis, options.x2axis); + options.xaxes[1].position = "top"; + // Override the inherit to allow the axis to auto-scale + if (options.x2axis.min == null) { + options.xaxes[1].min = null; + } + if (options.x2axis.max == null) { + options.xaxes[1].max = null; + } + } + if (options.y2axis) { + options.yaxes[1] = $.extend(true, {}, options.yaxis, options.y2axis); + options.yaxes[1].position = "right"; + // Override the inherit to allow the axis to auto-scale + if (options.y2axis.min == null) { + options.yaxes[1].min = null; + } + if (options.y2axis.max == null) { + options.yaxes[1].max = null; + } + } + if (options.grid.coloredAreas) + options.grid.markings = options.grid.coloredAreas; + if (options.grid.coloredAreasColor) + options.grid.markingsColor = options.grid.coloredAreasColor; + if (options.lines) + $.extend(true, options.series.lines, options.lines); + if (options.points) + $.extend(true, options.series.points, options.points); + if (options.bars) + $.extend(true, options.series.bars, options.bars); + if (options.shadowSize != null) + options.series.shadowSize = options.shadowSize; + if (options.highlightColor != null) + options.series.highlightColor = options.highlightColor; + + // save options on axes for future reference + for (i = 0; i < options.xaxes.length; ++i) + getOrCreateAxis(xaxes, i + 1).options = options.xaxes[i]; + for (i = 0; i < options.yaxes.length; ++i) + getOrCreateAxis(yaxes, i + 1).options = options.yaxes[i]; + + // add hooks from options + for (var n in hooks) + if (options.hooks[n] && options.hooks[n].length) + hooks[n] = hooks[n].concat(options.hooks[n]); + + executeHooks(hooks.processOptions, [options]); + } + + function setData(d) { + series = parseData(d); + fillInSeriesOptions(); + processData(); + } + + function parseData(d) { + var res = []; + for (var i = 0; i < d.length; ++i) { + var s = $.extend(true, {}, options.series); + + if (d[i].data != null) { + s.data = d[i].data; // move the data instead of deep-copy + delete d[i].data; + + $.extend(true, s, d[i]); + + d[i].data = s.data; + } + else + s.data = d[i]; + res.push(s); + } + + return res; + } + + function axisNumber(obj, coord) { + var a = obj[coord + "axis"]; + if (typeof a == "object") // if we got a real axis, extract number + a = a.n; + if (typeof a != "number") + a = 1; // default to first axis + return a; + } + + function allAxes() { + // return flat array without annoying null entries + return $.grep(xaxes.concat(yaxes), function (a) { return a; }); + } + + function canvasToAxisCoords(pos) { + // return an object with x/y corresponding to all used axes + var res = {}, i, axis; + for (i = 0; i < xaxes.length; ++i) { + axis = xaxes[i]; + if (axis && axis.used) + res["x" + axis.n] = axis.c2p(pos.left); + } + + for (i = 0; i < yaxes.length; ++i) { + axis = yaxes[i]; + if (axis && axis.used) + res["y" + axis.n] = axis.c2p(pos.top); + } + + if (res.x1 !== undefined) + res.x = res.x1; + if (res.y1 !== undefined) + res.y = res.y1; + + return res; + } + + function axisToCanvasCoords(pos) { + // get canvas coords from the first pair of x/y found in pos + var res = {}, i, axis, key; + + for (i = 0; i < xaxes.length; ++i) { + axis = xaxes[i]; + if (axis && axis.used) { + key = "x" + axis.n; + if (pos[key] == null && axis.n == 1) + key = "x"; + + if (pos[key] != null) { + res.left = axis.p2c(pos[key]); + break; + } + } + } + + for (i = 0; i < yaxes.length; ++i) { + axis = yaxes[i]; + if (axis && axis.used) { + key = "y" + axis.n; + if (pos[key] == null && axis.n == 1) + key = "y"; + + if (pos[key] != null) { + res.top = axis.p2c(pos[key]); + break; + } + } + } + + return res; + } + + function getOrCreateAxis(axes, number) { + if (!axes[number - 1]) + axes[number - 1] = { + n: number, // save the number for future reference + direction: axes == xaxes ? "x" : "y", + options: $.extend(true, {}, axes == xaxes ? options.xaxis : options.yaxis) + }; + + return axes[number - 1]; + } + + function fillInSeriesOptions() { + + var neededColors = series.length, maxIndex = -1, i; + + // Subtract the number of series that already have fixed colors or + // color indexes from the number that we still need to generate. + + for (i = 0; i < series.length; ++i) { + var sc = series[i].color; + if (sc != null) { + neededColors--; + if (typeof sc == "number" && sc > maxIndex) { + maxIndex = sc; + } + } + } + + // If any of the series have fixed color indexes, then we need to + // generate at least as many colors as the highest index. + + if (neededColors <= maxIndex) { + neededColors = maxIndex + 1; + } + + // Generate all the colors, using first the option colors and then + // variations on those colors once they're exhausted. + + var c, colors = [], colorPool = options.colors, + colorPoolSize = colorPool.length, variation = 0; + + for (i = 0; i < neededColors; i++) { + + c = $.color.parse(colorPool[i % colorPoolSize] || "#666"); + + // Each time we exhaust the colors in the pool we adjust + // a scaling factor used to produce more variations on + // those colors. The factor alternates negative/positive + // to produce lighter/darker colors. + + // Reset the variation after every few cycles, or else + // it will end up producing only white or black colors. + + if (i % colorPoolSize == 0 && i) { + if (variation >= 0) { + if (variation < 0.5) { + variation = -variation - 0.2; + } else variation = 0; + } else variation = -variation; + } + + colors[i] = c.scale('rgb', 1 + variation); + } + + // Finalize the series options, filling in their colors + + var colori = 0, s; + for (i = 0; i < series.length; ++i) { + s = series[i]; + + // assign colors + if (s.color == null) { + s.color = colors[colori].toString(); + ++colori; + } + else if (typeof s.color == "number") + s.color = colors[s.color].toString(); + + // turn on lines automatically in case nothing is set + if (s.lines.show == null) { + var v, show = true; + for (v in s) + if (s[v] && s[v].show) { + show = false; + break; + } + if (show) + s.lines.show = true; + } + + // If nothing was provided for lines.zero, default it to match + // lines.fill, since areas by default should extend to zero. + + if (s.lines.zero == null) { + s.lines.zero = !!s.lines.fill; + } + + // setup axes + s.xaxis = getOrCreateAxis(xaxes, axisNumber(s, "x")); + s.yaxis = getOrCreateAxis(yaxes, axisNumber(s, "y")); + } + } + + function processData() { + var topSentry = Number.POSITIVE_INFINITY, + bottomSentry = Number.NEGATIVE_INFINITY, + fakeInfinity = Number.MAX_VALUE, + i, j, k, m, length, + s, points, ps, x, y, axis, val, f, p, + data, format; + + function updateAxis(axis, min, max) { + if (min < axis.datamin && min != -fakeInfinity) + axis.datamin = min; + if (max > axis.datamax && max != fakeInfinity) + axis.datamax = max; + } + + $.each(allAxes(), function (_, axis) { + // init axis + axis.datamin = topSentry; + axis.datamax = bottomSentry; + axis.used = false; + }); + + for (i = 0; i < series.length; ++i) { + s = series[i]; + s.datapoints = { points: [] }; + + executeHooks(hooks.processRawData, [ s, s.data, s.datapoints ]); + } + + // first pass: clean and copy data + for (i = 0; i < series.length; ++i) { + s = series[i]; + + data = s.data; + format = s.datapoints.format; + + if (!format) { + format = []; + // find out how to copy + format.push({ x: true, number: true, required: true }); + format.push({ y: true, number: true, required: true }); + + if (s.bars.show || (s.lines.show && s.lines.fill)) { + var autoscale = !!((s.bars.show && s.bars.zero) || (s.lines.show && s.lines.zero)); + format.push({ y: true, number: true, required: false, defaultValue: 0, autoscale: autoscale }); + if (s.bars.horizontal) { + delete format[format.length - 1].y; + format[format.length - 1].x = true; + } + } + + s.datapoints.format = format; + } + + if (s.datapoints.pointsize != null) + continue; // already filled in + + s.datapoints.pointsize = format.length; + + ps = s.datapoints.pointsize; + points = s.datapoints.points; + + var insertSteps = s.lines.show && s.lines.steps; + s.xaxis.used = s.yaxis.used = true; + + for (j = k = 0; j < data.length; ++j, k += ps) { + p = data[j]; + + var nullify = p == null; + if (!nullify) { + for (m = 0; m < ps; ++m) { + val = p[m]; + f = format[m]; + + if (f) { + if (f.number && val != null) { + val = +val; // convert to number + if (isNaN(val)) + val = null; + else if (val == Infinity) + val = fakeInfinity; + else if (val == -Infinity) + val = -fakeInfinity; + } + + if (val == null) { + if (f.required) + nullify = true; + + if (f.defaultValue != null) + val = f.defaultValue; + } + } + + points[k + m] = val; + } + } + + if (nullify) { + for (m = 0; m < ps; ++m) { + val = points[k + m]; + if (val != null) { + f = format[m]; + // extract min/max info + if (f.autoscale !== false) { + if (f.x) { + updateAxis(s.xaxis, val, val); + } + if (f.y) { + updateAxis(s.yaxis, val, val); + } + } + } + points[k + m] = null; + } + } + else { + // a little bit of line specific stuff that + // perhaps shouldn't be here, but lacking + // better means... + if (insertSteps && k > 0 + && points[k - ps] != null + && points[k - ps] != points[k] + && points[k - ps + 1] != points[k + 1]) { + // copy the point to make room for a middle point + for (m = 0; m < ps; ++m) + points[k + ps + m] = points[k + m]; + + // middle point has same y + points[k + 1] = points[k - ps + 1]; + + // we've added a point, better reflect that + k += ps; + } + } + } + } + + // give the hooks a chance to run + for (i = 0; i < series.length; ++i) { + s = series[i]; + + executeHooks(hooks.processDatapoints, [ s, s.datapoints]); + } + + // second pass: find datamax/datamin for auto-scaling + for (i = 0; i < series.length; ++i) { + s = series[i]; + points = s.datapoints.points; + ps = s.datapoints.pointsize; + format = s.datapoints.format; + + var xmin = topSentry, ymin = topSentry, + xmax = bottomSentry, ymax = bottomSentry; + + for (j = 0; j < points.length; j += ps) { + if (points[j] == null) + continue; + + for (m = 0; m < ps; ++m) { + val = points[j + m]; + f = format[m]; + if (!f || f.autoscale === false || val == fakeInfinity || val == -fakeInfinity) + continue; + + if (f.x) { + if (val < xmin) + xmin = val; + if (val > xmax) + xmax = val; + } + if (f.y) { + if (val < ymin) + ymin = val; + if (val > ymax) + ymax = val; + } + } + } + + if (s.bars.show) { + // make sure we got room for the bar on the dancing floor + var delta; + + switch (s.bars.align) { + case "left": + delta = 0; + break; + case "right": + delta = -s.bars.barWidth; + break; + default: + delta = -s.bars.barWidth / 2; + } + + if (s.bars.horizontal) { + ymin += delta; + ymax += delta + s.bars.barWidth; + } + else { + xmin += delta; + xmax += delta + s.bars.barWidth; + } + } + + updateAxis(s.xaxis, xmin, xmax); + updateAxis(s.yaxis, ymin, ymax); + } + + $.each(allAxes(), function (_, axis) { + if (axis.datamin == topSentry) + axis.datamin = null; + if (axis.datamax == bottomSentry) + axis.datamax = null; + }); + } + + function setupCanvases() { + + // Make sure the placeholder is clear of everything except canvases + // from a previous plot in this container that we'll try to re-use. + + placeholder.css("padding", 0) // padding messes up the positioning + .children().filter(function(){ + return !$(this).hasClass("flot-overlay") && !$(this).hasClass('flot-base'); + }).remove(); + + if (placeholder.css("position") == 'static') + placeholder.css("position", "relative"); // for positioning labels and overlay + + surface = new Canvas("flot-base", placeholder); + overlay = new Canvas("flot-overlay", placeholder); // overlay canvas for interactive features + + ctx = surface.context; + octx = overlay.context; + + // define which element we're listening for events on + eventHolder = $(overlay.element).unbind(); + + // If we're re-using a plot object, shut down the old one + + var existing = placeholder.data("plot"); + + if (existing) { + existing.shutdown(); + overlay.clear(); + } + + // save in case we get replotted + placeholder.data("plot", plot); + } + + function bindEvents() { + // bind events + if (options.grid.hoverable) { + eventHolder.mousemove(onMouseMove); + + // Use bind, rather than .mouseleave, because we officially + // still support jQuery 1.2.6, which doesn't define a shortcut + // for mouseenter or mouseleave. This was a bug/oversight that + // was fixed somewhere around 1.3.x. We can return to using + // .mouseleave when we drop support for 1.2.6. + + eventHolder.bind("mouseleave", onMouseLeave); + } + + if (options.grid.clickable) + eventHolder.click(onClick); + + executeHooks(hooks.bindEvents, [eventHolder]); + } + + function shutdown() { + if (redrawTimeout) + clearTimeout(redrawTimeout); + + eventHolder.unbind("mousemove", onMouseMove); + eventHolder.unbind("mouseleave", onMouseLeave); + eventHolder.unbind("click", onClick); + + executeHooks(hooks.shutdown, [eventHolder]); + } + + function setTransformationHelpers(axis) { + // set helper functions on the axis, assumes plot area + // has been computed already + + function identity(x) { return x; } + + var s, m, t = axis.options.transform || identity, + it = axis.options.inverseTransform; + + // precompute how much the axis is scaling a point + // in canvas space + if (axis.direction == "x") { + s = axis.scale = plotWidth / Math.abs(t(axis.max) - t(axis.min)); + m = Math.min(t(axis.max), t(axis.min)); + } + else { + s = axis.scale = plotHeight / Math.abs(t(axis.max) - t(axis.min)); + s = -s; + m = Math.max(t(axis.max), t(axis.min)); + } + + // data point to canvas coordinate + if (t == identity) // slight optimization + axis.p2c = function (p) { return (p - m) * s; }; + else + axis.p2c = function (p) { return (t(p) - m) * s; }; + // canvas coordinate to data point + if (!it) + axis.c2p = function (c) { return m + c / s; }; + else + axis.c2p = function (c) { return it(m + c / s); }; + } + + function measureTickLabels(axis) { + + var opts = axis.options, + ticks = axis.ticks || [], + labelWidth = opts.labelWidth || 0, + labelHeight = opts.labelHeight || 0, + maxWidth = labelWidth || (axis.direction == "x" ? Math.floor(surface.width / (ticks.length || 1)) : null), + legacyStyles = axis.direction + "Axis " + axis.direction + axis.n + "Axis", + layer = "flot-" + axis.direction + "-axis flot-" + axis.direction + axis.n + "-axis " + legacyStyles, + font = opts.font || "flot-tick-label tickLabel"; + + for (var i = 0; i < ticks.length; ++i) { + + var t = ticks[i]; + + if (!t.label) + continue; + + var info = surface.getTextInfo(layer, t.label, font, null, maxWidth); + + labelWidth = Math.max(labelWidth, info.width); + labelHeight = Math.max(labelHeight, info.height); + } + + axis.labelWidth = opts.labelWidth || labelWidth; + axis.labelHeight = opts.labelHeight || labelHeight; + } + + function allocateAxisBoxFirstPhase(axis) { + // find the bounding box of the axis by looking at label + // widths/heights and ticks, make room by diminishing the + // plotOffset; this first phase only looks at one + // dimension per axis, the other dimension depends on the + // other axes so will have to wait + + var lw = axis.labelWidth, + lh = axis.labelHeight, + pos = axis.options.position, + isXAxis = axis.direction === "x", + tickLength = axis.options.tickLength, + axisMargin = options.grid.axisMargin, + padding = options.grid.labelMargin, + innermost = true, + outermost = true, + first = true, + found = false; + + // Determine the axis's position in its direction and on its side + + $.each(isXAxis ? xaxes : yaxes, function(i, a) { + if (a && (a.show || a.reserveSpace)) { + if (a === axis) { + found = true; + } else if (a.options.position === pos) { + if (found) { + outermost = false; + } else { + innermost = false; + } + } + if (!found) { + first = false; + } + } + }); + + // The outermost axis on each side has no margin + + if (outermost) { + axisMargin = 0; + } + + // The ticks for the first axis in each direction stretch across + + if (tickLength == null) { + tickLength = first ? "full" : 5; + } + + if (!isNaN(+tickLength)) + padding += +tickLength; + + if (isXAxis) { + lh += padding; + + if (pos == "bottom") { + plotOffset.bottom += lh + axisMargin; + axis.box = { top: surface.height - plotOffset.bottom, height: lh }; + } + else { + axis.box = { top: plotOffset.top + axisMargin, height: lh }; + plotOffset.top += lh + axisMargin; + } + } + else { + lw += padding; + + if (pos == "left") { + axis.box = { left: plotOffset.left + axisMargin, width: lw }; + plotOffset.left += lw + axisMargin; + } + else { + plotOffset.right += lw + axisMargin; + axis.box = { left: surface.width - plotOffset.right, width: lw }; + } + } + + // save for future reference + axis.position = pos; + axis.tickLength = tickLength; + axis.box.padding = padding; + axis.innermost = innermost; + } + + function allocateAxisBoxSecondPhase(axis) { + // now that all axis boxes have been placed in one + // dimension, we can set the remaining dimension coordinates + if (axis.direction == "x") { + axis.box.left = plotOffset.left - axis.labelWidth / 2; + axis.box.width = surface.width - plotOffset.left - plotOffset.right + axis.labelWidth; + } + else { + axis.box.top = plotOffset.top - axis.labelHeight / 2; + axis.box.height = surface.height - plotOffset.bottom - plotOffset.top + axis.labelHeight; + } + } + + function adjustLayoutForThingsStickingOut() { + // possibly adjust plot offset to ensure everything stays + // inside the canvas and isn't clipped off + + var minMargin = options.grid.minBorderMargin, + axis, i; + + // check stuff from the plot (FIXME: this should just read + // a value from the series, otherwise it's impossible to + // customize) + if (minMargin == null) { + minMargin = 0; + for (i = 0; i < series.length; ++i) + minMargin = Math.max(minMargin, 2 * (series[i].points.radius + series[i].points.lineWidth/2)); + } + + var margins = { + left: minMargin, + right: minMargin, + top: minMargin, + bottom: minMargin + }; + + // check axis labels, note we don't check the actual + // labels but instead use the overall width/height to not + // jump as much around with replots + $.each(allAxes(), function (_, axis) { + if (axis.reserveSpace && axis.ticks && axis.ticks.length) { + if (axis.direction === "x") { + margins.left = Math.max(margins.left, axis.labelWidth / 2); + margins.right = Math.max(margins.right, axis.labelWidth / 2); + } else { + margins.bottom = Math.max(margins.bottom, axis.labelHeight / 2); + margins.top = Math.max(margins.top, axis.labelHeight / 2); + } + } + }); + + plotOffset.left = Math.ceil(Math.max(margins.left, plotOffset.left)); + plotOffset.right = Math.ceil(Math.max(margins.right, plotOffset.right)); + plotOffset.top = Math.ceil(Math.max(margins.top, plotOffset.top)); + plotOffset.bottom = Math.ceil(Math.max(margins.bottom, plotOffset.bottom)); + } + + function setupGrid() { + var i, axes = allAxes(), showGrid = options.grid.show; + + // Initialize the plot's offset from the edge of the canvas + + for (var a in plotOffset) { + var margin = options.grid.margin || 0; + plotOffset[a] = typeof margin == "number" ? margin : margin[a] || 0; + } + + executeHooks(hooks.processOffset, [plotOffset]); + + // If the grid is visible, add its border width to the offset + + for (var a in plotOffset) { + if(typeof(options.grid.borderWidth) == "object") { + plotOffset[a] += showGrid ? options.grid.borderWidth[a] : 0; + } + else { + plotOffset[a] += showGrid ? options.grid.borderWidth : 0; + } + } + + $.each(axes, function (_, axis) { + var axisOpts = axis.options; + axis.show = axisOpts.show == null ? axis.used : axisOpts.show; + axis.reserveSpace = axisOpts.reserveSpace == null ? axis.show : axisOpts.reserveSpace; + setRange(axis); + }); + + if (showGrid) { + + var allocatedAxes = $.grep(axes, function (axis) { + return axis.show || axis.reserveSpace; + }); + + $.each(allocatedAxes, function (_, axis) { + // make the ticks + setupTickGeneration(axis); + setTicks(axis); + snapRangeToTicks(axis, axis.ticks); + // find labelWidth/Height for axis + measureTickLabels(axis); + }); + + // with all dimensions calculated, we can compute the + // axis bounding boxes, start from the outside + // (reverse order) + for (i = allocatedAxes.length - 1; i >= 0; --i) + allocateAxisBoxFirstPhase(allocatedAxes[i]); + + // make sure we've got enough space for things that + // might stick out + adjustLayoutForThingsStickingOut(); + + $.each(allocatedAxes, function (_, axis) { + allocateAxisBoxSecondPhase(axis); + }); + } + + plotWidth = surface.width - plotOffset.left - plotOffset.right; + plotHeight = surface.height - plotOffset.bottom - plotOffset.top; + + // now we got the proper plot dimensions, we can compute the scaling + $.each(axes, function (_, axis) { + setTransformationHelpers(axis); + }); + + if (showGrid) { + drawAxisLabels(); + } + + insertLegend(); + } + + function setRange(axis) { + var opts = axis.options, + min = +(opts.min != null ? opts.min : axis.datamin), + max = +(opts.max != null ? opts.max : axis.datamax), + delta = max - min; + + if (delta == 0.0) { + // degenerate case + var widen = max == 0 ? 1 : 0.01; + + if (opts.min == null) + min -= widen; + // always widen max if we couldn't widen min to ensure we + // don't fall into min == max which doesn't work + if (opts.max == null || opts.min != null) + max += widen; + } + else { + // consider autoscaling + var margin = opts.autoscaleMargin; + if (margin != null) { + if (opts.min == null) { + min -= delta * margin; + // make sure we don't go below zero if all values + // are positive + if (min < 0 && axis.datamin != null && axis.datamin >= 0) + min = 0; + } + if (opts.max == null) { + max += delta * margin; + if (max > 0 && axis.datamax != null && axis.datamax <= 0) + max = 0; + } + } + } + axis.min = min; + axis.max = max; + } + + function setupTickGeneration(axis) { + var opts = axis.options; + + // estimate number of ticks + var noTicks; + if (typeof opts.ticks == "number" && opts.ticks > 0) + noTicks = opts.ticks; + else + // heuristic based on the model a*sqrt(x) fitted to + // some data points that seemed reasonable + noTicks = 0.3 * Math.sqrt(axis.direction == "x" ? surface.width : surface.height); + + var delta = (axis.max - axis.min) / noTicks, + dec = -Math.floor(Math.log(delta) / Math.LN10), + maxDec = opts.tickDecimals; + + if (maxDec != null && dec > maxDec) { + dec = maxDec; + } + + var magn = Math.pow(10, -dec), + norm = delta / magn, // norm is between 1.0 and 10.0 + size; + + if (norm < 1.5) { + size = 1; + } else if (norm < 3) { + size = 2; + // special case for 2.5, requires an extra decimal + if (norm > 2.25 && (maxDec == null || dec + 1 <= maxDec)) { + size = 2.5; + ++dec; + } + } else if (norm < 7.5) { + size = 5; + } else { + size = 10; + } + + size *= magn; + + if (opts.minTickSize != null && size < opts.minTickSize) { + size = opts.minTickSize; + } + + axis.delta = delta; + axis.tickDecimals = Math.max(0, maxDec != null ? maxDec : dec); + axis.tickSize = opts.tickSize || size; + + // Time mode was moved to a plug-in in 0.8, and since so many people use it + // we'll add an especially friendly reminder to make sure they included it. + + if (opts.mode == "time" && !axis.tickGenerator) { + throw new Error("Time mode requires the flot.time plugin."); + } + + // Flot supports base-10 axes; any other mode else is handled by a plug-in, + // like flot.time.js. + + if (!axis.tickGenerator) { + + axis.tickGenerator = function (axis) { + + var ticks = [], + start = floorInBase(axis.min, axis.tickSize), + i = 0, + v = Number.NaN, + prev; + + do { + prev = v; + v = start + i * axis.tickSize; + ticks.push(v); + ++i; + } while (v < axis.max && v != prev); + return ticks; + }; + + axis.tickFormatter = function (value, axis) { + + var factor = axis.tickDecimals ? Math.pow(10, axis.tickDecimals) : 1; + var formatted = "" + Math.round(value * factor) / factor; + + // If tickDecimals was specified, ensure that we have exactly that + // much precision; otherwise default to the value's own precision. + + if (axis.tickDecimals != null) { + var decimal = formatted.indexOf("."); + var precision = decimal == -1 ? 0 : formatted.length - decimal - 1; + if (precision < axis.tickDecimals) { + return (precision ? formatted : formatted + ".") + ("" + factor).substr(1, axis.tickDecimals - precision); + } + } + + return formatted; + }; + } + + if ($.isFunction(opts.tickFormatter)) + axis.tickFormatter = function (v, axis) { return "" + opts.tickFormatter(v, axis); }; + + if (opts.alignTicksWithAxis != null) { + var otherAxis = (axis.direction == "x" ? xaxes : yaxes)[opts.alignTicksWithAxis - 1]; + if (otherAxis && otherAxis.used && otherAxis != axis) { + // consider snapping min/max to outermost nice ticks + var niceTicks = axis.tickGenerator(axis); + if (niceTicks.length > 0) { + if (opts.min == null) + axis.min = Math.min(axis.min, niceTicks[0]); + if (opts.max == null && niceTicks.length > 1) + axis.max = Math.max(axis.max, niceTicks[niceTicks.length - 1]); + } + + axis.tickGenerator = function (axis) { + // copy ticks, scaled to this axis + var ticks = [], v, i; + for (i = 0; i < otherAxis.ticks.length; ++i) { + v = (otherAxis.ticks[i].v - otherAxis.min) / (otherAxis.max - otherAxis.min); + v = axis.min + v * (axis.max - axis.min); + ticks.push(v); + } + return ticks; + }; + + // we might need an extra decimal since forced + // ticks don't necessarily fit naturally + if (!axis.mode && opts.tickDecimals == null) { + var extraDec = Math.max(0, -Math.floor(Math.log(axis.delta) / Math.LN10) + 1), + ts = axis.tickGenerator(axis); + + // only proceed if the tick interval rounded + // with an extra decimal doesn't give us a + // zero at end + if (!(ts.length > 1 && /\..*0$/.test((ts[1] - ts[0]).toFixed(extraDec)))) + axis.tickDecimals = extraDec; + } + } + } + } + + function setTicks(axis) { + var oticks = axis.options.ticks, ticks = []; + if (oticks == null || (typeof oticks == "number" && oticks > 0)) + ticks = axis.tickGenerator(axis); + else if (oticks) { + if ($.isFunction(oticks)) + // generate the ticks + ticks = oticks(axis); + else + ticks = oticks; + } + + // clean up/labelify the supplied ticks, copy them over + var i, v; + axis.ticks = []; + for (i = 0; i < ticks.length; ++i) { + var label = null; + var t = ticks[i]; + if (typeof t == "object") { + v = +t[0]; + if (t.length > 1) + label = t[1]; + } + else + v = +t; + if (label == null) + label = axis.tickFormatter(v, axis); + if (!isNaN(v)) + axis.ticks.push({ v: v, label: label }); + } + } + + function snapRangeToTicks(axis, ticks) { + if (axis.options.autoscaleMargin && ticks.length > 0) { + // snap to ticks + if (axis.options.min == null) + axis.min = Math.min(axis.min, ticks[0].v); + if (axis.options.max == null && ticks.length > 1) + axis.max = Math.max(axis.max, ticks[ticks.length - 1].v); + } + } + + function draw() { + + surface.clear(); + + executeHooks(hooks.drawBackground, [ctx]); + + var grid = options.grid; + + // draw background, if any + if (grid.show && grid.backgroundColor) + drawBackground(); + + if (grid.show && !grid.aboveData) { + drawGrid(); + } + + for (var i = 0; i < series.length; ++i) { + executeHooks(hooks.drawSeries, [ctx, series[i]]); + drawSeries(series[i]); + } + + executeHooks(hooks.draw, [ctx]); + + if (grid.show && grid.aboveData) { + drawGrid(); + } + + surface.render(); + + // A draw implies that either the axes or data have changed, so we + // should probably update the overlay highlights as well. + + triggerRedrawOverlay(); + } + + function extractRange(ranges, coord) { + var axis, from, to, key, axes = allAxes(); + + for (var i = 0; i < axes.length; ++i) { + axis = axes[i]; + if (axis.direction == coord) { + key = coord + axis.n + "axis"; + if (!ranges[key] && axis.n == 1) + key = coord + "axis"; // support x1axis as xaxis + if (ranges[key]) { + from = ranges[key].from; + to = ranges[key].to; + break; + } + } + } + + // backwards-compat stuff - to be removed in future + if (!ranges[key]) { + axis = coord == "x" ? xaxes[0] : yaxes[0]; + from = ranges[coord + "1"]; + to = ranges[coord + "2"]; + } + + // auto-reverse as an added bonus + if (from != null && to != null && from > to) { + var tmp = from; + from = to; + to = tmp; + } + + return { from: from, to: to, axis: axis }; + } + + function drawBackground() { + ctx.save(); + ctx.translate(plotOffset.left, plotOffset.top); + + ctx.fillStyle = getColorOrGradient(options.grid.backgroundColor, plotHeight, 0, "rgba(255, 255, 255, 0)"); + ctx.fillRect(0, 0, plotWidth, plotHeight); + ctx.restore(); + } + + function drawGrid() { + var i, axes, bw, bc; + + ctx.save(); + ctx.translate(plotOffset.left, plotOffset.top); + + // draw markings + var markings = options.grid.markings; + if (markings) { + if ($.isFunction(markings)) { + axes = plot.getAxes(); + // xmin etc. is backwards compatibility, to be + // removed in the future + axes.xmin = axes.xaxis.min; + axes.xmax = axes.xaxis.max; + axes.ymin = axes.yaxis.min; + axes.ymax = axes.yaxis.max; + + markings = markings(axes); + } + + for (i = 0; i < markings.length; ++i) { + var m = markings[i], + xrange = extractRange(m, "x"), + yrange = extractRange(m, "y"); + + // fill in missing + if (xrange.from == null) + xrange.from = xrange.axis.min; + if (xrange.to == null) + xrange.to = xrange.axis.max; + if (yrange.from == null) + yrange.from = yrange.axis.min; + if (yrange.to == null) + yrange.to = yrange.axis.max; + + // clip + if (xrange.to < xrange.axis.min || xrange.from > xrange.axis.max || + yrange.to < yrange.axis.min || yrange.from > yrange.axis.max) + continue; + + xrange.from = Math.max(xrange.from, xrange.axis.min); + xrange.to = Math.min(xrange.to, xrange.axis.max); + yrange.from = Math.max(yrange.from, yrange.axis.min); + yrange.to = Math.min(yrange.to, yrange.axis.max); + + var xequal = xrange.from === xrange.to, + yequal = yrange.from === yrange.to; + + if (xequal && yequal) { + continue; + } + + // then draw + xrange.from = Math.floor(xrange.axis.p2c(xrange.from)); + xrange.to = Math.floor(xrange.axis.p2c(xrange.to)); + yrange.from = Math.floor(yrange.axis.p2c(yrange.from)); + yrange.to = Math.floor(yrange.axis.p2c(yrange.to)); + + if (xequal || yequal) { + var lineWidth = m.lineWidth || options.grid.markingsLineWidth, + subPixel = lineWidth % 2 ? 0.5 : 0; + ctx.beginPath(); + ctx.strokeStyle = m.color || options.grid.markingsColor; + ctx.lineWidth = lineWidth; + if (xequal) { + ctx.moveTo(xrange.to + subPixel, yrange.from); + ctx.lineTo(xrange.to + subPixel, yrange.to); + } else { + ctx.moveTo(xrange.from, yrange.to + subPixel); + ctx.lineTo(xrange.to, yrange.to + subPixel); + } + ctx.stroke(); + } else { + ctx.fillStyle = m.color || options.grid.markingsColor; + ctx.fillRect(xrange.from, yrange.to, + xrange.to - xrange.from, + yrange.from - yrange.to); + } + } + } + + // draw the ticks + axes = allAxes(); + bw = options.grid.borderWidth; + + for (var j = 0; j < axes.length; ++j) { + var axis = axes[j], box = axis.box, + t = axis.tickLength, x, y, xoff, yoff; + if (!axis.show || axis.ticks.length == 0) + continue; + + ctx.lineWidth = 1; + + // find the edges + if (axis.direction == "x") { + x = 0; + if (t == "full") + y = (axis.position == "top" ? 0 : plotHeight); + else + y = box.top - plotOffset.top + (axis.position == "top" ? box.height : 0); + } + else { + y = 0; + if (t == "full") + x = (axis.position == "left" ? 0 : plotWidth); + else + x = box.left - plotOffset.left + (axis.position == "left" ? box.width : 0); + } + + // draw tick bar + if (!axis.innermost) { + ctx.strokeStyle = axis.options.color; + ctx.beginPath(); + xoff = yoff = 0; + if (axis.direction == "x") + xoff = plotWidth + 1; + else + yoff = plotHeight + 1; + + if (ctx.lineWidth == 1) { + if (axis.direction == "x") { + y = Math.floor(y) + 0.5; + } else { + x = Math.floor(x) + 0.5; + } + } + + ctx.moveTo(x, y); + ctx.lineTo(x + xoff, y + yoff); + ctx.stroke(); + } + + // draw ticks + + ctx.strokeStyle = axis.options.tickColor; + + ctx.beginPath(); + for (i = 0; i < axis.ticks.length; ++i) { + var v = axis.ticks[i].v; + + xoff = yoff = 0; + + if (isNaN(v) || v < axis.min || v > axis.max + // skip those lying on the axes if we got a border + || (t == "full" + && ((typeof bw == "object" && bw[axis.position] > 0) || bw > 0) + && (v == axis.min || v == axis.max))) + continue; + + if (axis.direction == "x") { + x = axis.p2c(v); + yoff = t == "full" ? -plotHeight : t; + + if (axis.position == "top") + yoff = -yoff; + } + else { + y = axis.p2c(v); + xoff = t == "full" ? -plotWidth : t; + + if (axis.position == "left") + xoff = -xoff; + } + + if (ctx.lineWidth == 1) { + if (axis.direction == "x") + x = Math.floor(x) + 0.5; + else + y = Math.floor(y) + 0.5; + } + + ctx.moveTo(x, y); + ctx.lineTo(x + xoff, y + yoff); + } + + ctx.stroke(); + } + + + // draw border + if (bw) { + // If either borderWidth or borderColor is an object, then draw the border + // line by line instead of as one rectangle + bc = options.grid.borderColor; + if(typeof bw == "object" || typeof bc == "object") { + if (typeof bw !== "object") { + bw = {top: bw, right: bw, bottom: bw, left: bw}; + } + if (typeof bc !== "object") { + bc = {top: bc, right: bc, bottom: bc, left: bc}; + } + + if (bw.top > 0) { + ctx.strokeStyle = bc.top; + ctx.lineWidth = bw.top; + ctx.beginPath(); + ctx.moveTo(0 - bw.left, 0 - bw.top/2); + ctx.lineTo(plotWidth, 0 - bw.top/2); + ctx.stroke(); + } + + if (bw.right > 0) { + ctx.strokeStyle = bc.right; + ctx.lineWidth = bw.right; + ctx.beginPath(); + ctx.moveTo(plotWidth + bw.right / 2, 0 - bw.top); + ctx.lineTo(plotWidth + bw.right / 2, plotHeight); + ctx.stroke(); + } + + if (bw.bottom > 0) { + ctx.strokeStyle = bc.bottom; + ctx.lineWidth = bw.bottom; + ctx.beginPath(); + ctx.moveTo(plotWidth + bw.right, plotHeight + bw.bottom / 2); + ctx.lineTo(0, plotHeight + bw.bottom / 2); + ctx.stroke(); + } + + if (bw.left > 0) { + ctx.strokeStyle = bc.left; + ctx.lineWidth = bw.left; + ctx.beginPath(); + ctx.moveTo(0 - bw.left/2, plotHeight + bw.bottom); + ctx.lineTo(0- bw.left/2, 0); + ctx.stroke(); + } + } + else { + ctx.lineWidth = bw; + ctx.strokeStyle = options.grid.borderColor; + ctx.strokeRect(-bw/2, -bw/2, plotWidth + bw, plotHeight + bw); + } + } + + ctx.restore(); + } + + function drawAxisLabels() { + + $.each(allAxes(), function (_, axis) { + var box = axis.box, + legacyStyles = axis.direction + "Axis " + axis.direction + axis.n + "Axis", + layer = "flot-" + axis.direction + "-axis flot-" + axis.direction + axis.n + "-axis " + legacyStyles, + font = axis.options.font || "flot-tick-label tickLabel", + tick, x, y, halign, valign; + + // Remove text before checking for axis.show and ticks.length; + // otherwise plugins, like flot-tickrotor, that draw their own + // tick labels will end up with both theirs and the defaults. + + surface.removeText(layer); + + if (!axis.show || axis.ticks.length == 0) + return; + + for (var i = 0; i < axis.ticks.length; ++i) { + + tick = axis.ticks[i]; + if (!tick.label || tick.v < axis.min || tick.v > axis.max) + continue; + + if (axis.direction == "x") { + halign = "center"; + x = plotOffset.left + axis.p2c(tick.v); + if (axis.position == "bottom") { + y = box.top + box.padding; + } else { + y = box.top + box.height - box.padding; + valign = "bottom"; + } + } else { + valign = "middle"; + y = plotOffset.top + axis.p2c(tick.v); + if (axis.position == "left") { + x = box.left + box.width - box.padding; + halign = "right"; + } else { + x = box.left + box.padding; + } + } + + surface.addText(layer, x, y, tick.label, font, null, null, halign, valign); + } + }); + } + + function drawSeries(series) { + if (series.lines.show) + drawSeriesLines(series); + if (series.bars.show) + drawSeriesBars(series); + if (series.points.show) + drawSeriesPoints(series); + } + + function drawSeriesLines(series) { + function plotLine(datapoints, xoffset, yoffset, axisx, axisy) { + var points = datapoints.points, + ps = datapoints.pointsize, + prevx = null, prevy = null; + + ctx.beginPath(); + for (var i = ps; i < points.length; i += ps) { + var x1 = points[i - ps], y1 = points[i - ps + 1], + x2 = points[i], y2 = points[i + 1]; + + if (x1 == null || x2 == null) + continue; + + // clip with ymin + if (y1 <= y2 && y1 < axisy.min) { + if (y2 < axisy.min) + continue; // line segment is outside + // compute new intersection point + x1 = (axisy.min - y1) / (y2 - y1) * (x2 - x1) + x1; + y1 = axisy.min; + } + else if (y2 <= y1 && y2 < axisy.min) { + if (y1 < axisy.min) + continue; + x2 = (axisy.min - y1) / (y2 - y1) * (x2 - x1) + x1; + y2 = axisy.min; + } + + // clip with ymax + if (y1 >= y2 && y1 > axisy.max) { + if (y2 > axisy.max) + continue; + x1 = (axisy.max - y1) / (y2 - y1) * (x2 - x1) + x1; + y1 = axisy.max; + } + else if (y2 >= y1 && y2 > axisy.max) { + if (y1 > axisy.max) + continue; + x2 = (axisy.max - y1) / (y2 - y1) * (x2 - x1) + x1; + y2 = axisy.max; + } + + // clip with xmin + if (x1 <= x2 && x1 < axisx.min) { + if (x2 < axisx.min) + continue; + y1 = (axisx.min - x1) / (x2 - x1) * (y2 - y1) + y1; + x1 = axisx.min; + } + else if (x2 <= x1 && x2 < axisx.min) { + if (x1 < axisx.min) + continue; + y2 = (axisx.min - x1) / (x2 - x1) * (y2 - y1) + y1; + x2 = axisx.min; + } + + // clip with xmax + if (x1 >= x2 && x1 > axisx.max) { + if (x2 > axisx.max) + continue; + y1 = (axisx.max - x1) / (x2 - x1) * (y2 - y1) + y1; + x1 = axisx.max; + } + else if (x2 >= x1 && x2 > axisx.max) { + if (x1 > axisx.max) + continue; + y2 = (axisx.max - x1) / (x2 - x1) * (y2 - y1) + y1; + x2 = axisx.max; + } + + if (x1 != prevx || y1 != prevy) + ctx.moveTo(axisx.p2c(x1) + xoffset, axisy.p2c(y1) + yoffset); + + prevx = x2; + prevy = y2; + ctx.lineTo(axisx.p2c(x2) + xoffset, axisy.p2c(y2) + yoffset); + } + ctx.stroke(); + } + + function plotLineArea(datapoints, axisx, axisy) { + var points = datapoints.points, + ps = datapoints.pointsize, + bottom = Math.min(Math.max(0, axisy.min), axisy.max), + i = 0, top, areaOpen = false, + ypos = 1, segmentStart = 0, segmentEnd = 0; + + // we process each segment in two turns, first forward + // direction to sketch out top, then once we hit the + // end we go backwards to sketch the bottom + while (true) { + if (ps > 0 && i > points.length + ps) + break; + + i += ps; // ps is negative if going backwards + + var x1 = points[i - ps], + y1 = points[i - ps + ypos], + x2 = points[i], y2 = points[i + ypos]; + + if (areaOpen) { + if (ps > 0 && x1 != null && x2 == null) { + // at turning point + segmentEnd = i; + ps = -ps; + ypos = 2; + continue; + } + + if (ps < 0 && i == segmentStart + ps) { + // done with the reverse sweep + ctx.fill(); + areaOpen = false; + ps = -ps; + ypos = 1; + i = segmentStart = segmentEnd + ps; + continue; + } + } + + if (x1 == null || x2 == null) + continue; + + // clip x values + + // clip with xmin + if (x1 <= x2 && x1 < axisx.min) { + if (x2 < axisx.min) + continue; + y1 = (axisx.min - x1) / (x2 - x1) * (y2 - y1) + y1; + x1 = axisx.min; + } + else if (x2 <= x1 && x2 < axisx.min) { + if (x1 < axisx.min) + continue; + y2 = (axisx.min - x1) / (x2 - x1) * (y2 - y1) + y1; + x2 = axisx.min; + } + + // clip with xmax + if (x1 >= x2 && x1 > axisx.max) { + if (x2 > axisx.max) + continue; + y1 = (axisx.max - x1) / (x2 - x1) * (y2 - y1) + y1; + x1 = axisx.max; + } + else if (x2 >= x1 && x2 > axisx.max) { + if (x1 > axisx.max) + continue; + y2 = (axisx.max - x1) / (x2 - x1) * (y2 - y1) + y1; + x2 = axisx.max; + } + + if (!areaOpen) { + // open area + ctx.beginPath(); + ctx.moveTo(axisx.p2c(x1), axisy.p2c(bottom)); + areaOpen = true; + } + + // now first check the case where both is outside + if (y1 >= axisy.max && y2 >= axisy.max) { + ctx.lineTo(axisx.p2c(x1), axisy.p2c(axisy.max)); + ctx.lineTo(axisx.p2c(x2), axisy.p2c(axisy.max)); + continue; + } + else if (y1 <= axisy.min && y2 <= axisy.min) { + ctx.lineTo(axisx.p2c(x1), axisy.p2c(axisy.min)); + ctx.lineTo(axisx.p2c(x2), axisy.p2c(axisy.min)); + continue; + } + + // else it's a bit more complicated, there might + // be a flat maxed out rectangle first, then a + // triangular cutout or reverse; to find these + // keep track of the current x values + var x1old = x1, x2old = x2; + + // clip the y values, without shortcutting, we + // go through all cases in turn + + // clip with ymin + if (y1 <= y2 && y1 < axisy.min && y2 >= axisy.min) { + x1 = (axisy.min - y1) / (y2 - y1) * (x2 - x1) + x1; + y1 = axisy.min; + } + else if (y2 <= y1 && y2 < axisy.min && y1 >= axisy.min) { + x2 = (axisy.min - y1) / (y2 - y1) * (x2 - x1) + x1; + y2 = axisy.min; + } + + // clip with ymax + if (y1 >= y2 && y1 > axisy.max && y2 <= axisy.max) { + x1 = (axisy.max - y1) / (y2 - y1) * (x2 - x1) + x1; + y1 = axisy.max; + } + else if (y2 >= y1 && y2 > axisy.max && y1 <= axisy.max) { + x2 = (axisy.max - y1) / (y2 - y1) * (x2 - x1) + x1; + y2 = axisy.max; + } + + // if the x value was changed we got a rectangle + // to fill + if (x1 != x1old) { + ctx.lineTo(axisx.p2c(x1old), axisy.p2c(y1)); + // it goes to (x1, y1), but we fill that below + } + + // fill triangular section, this sometimes result + // in redundant points if (x1, y1) hasn't changed + // from previous line to, but we just ignore that + ctx.lineTo(axisx.p2c(x1), axisy.p2c(y1)); + ctx.lineTo(axisx.p2c(x2), axisy.p2c(y2)); + + // fill the other rectangle if it's there + if (x2 != x2old) { + ctx.lineTo(axisx.p2c(x2), axisy.p2c(y2)); + ctx.lineTo(axisx.p2c(x2old), axisy.p2c(y2)); + } + } + } + + ctx.save(); + ctx.translate(plotOffset.left, plotOffset.top); + ctx.lineJoin = "round"; + + var lw = series.lines.lineWidth, + sw = series.shadowSize; + // FIXME: consider another form of shadow when filling is turned on + if (lw > 0 && sw > 0) { + // draw shadow as a thick and thin line with transparency + ctx.lineWidth = sw; + ctx.strokeStyle = "rgba(0,0,0,0.1)"; + // position shadow at angle from the mid of line + var angle = Math.PI/18; + plotLine(series.datapoints, Math.sin(angle) * (lw/2 + sw/2), Math.cos(angle) * (lw/2 + sw/2), series.xaxis, series.yaxis); + ctx.lineWidth = sw/2; + plotLine(series.datapoints, Math.sin(angle) * (lw/2 + sw/4), Math.cos(angle) * (lw/2 + sw/4), series.xaxis, series.yaxis); + } + + ctx.lineWidth = lw; + ctx.strokeStyle = series.color; + var fillStyle = getFillStyle(series.lines, series.color, 0, plotHeight); + if (fillStyle) { + ctx.fillStyle = fillStyle; + plotLineArea(series.datapoints, series.xaxis, series.yaxis); + } + + if (lw > 0) + plotLine(series.datapoints, 0, 0, series.xaxis, series.yaxis); + ctx.restore(); + } + + function drawSeriesPoints(series) { + function plotPoints(datapoints, radius, fillStyle, offset, shadow, axisx, axisy, symbol) { + var points = datapoints.points, ps = datapoints.pointsize; + + for (var i = 0; i < points.length; i += ps) { + var x = points[i], y = points[i + 1]; + if (x == null || x < axisx.min || x > axisx.max || y < axisy.min || y > axisy.max) + continue; + + ctx.beginPath(); + x = axisx.p2c(x); + y = axisy.p2c(y) + offset; + if (symbol == "circle") + ctx.arc(x, y, radius, 0, shadow ? Math.PI : Math.PI * 2, false); + else + symbol(ctx, x, y, radius, shadow); + ctx.closePath(); + + if (fillStyle) { + ctx.fillStyle = fillStyle; + ctx.fill(); + } + ctx.stroke(); + } + } + + ctx.save(); + ctx.translate(plotOffset.left, plotOffset.top); + + var lw = series.points.lineWidth, + sw = series.shadowSize, + radius = series.points.radius, + symbol = series.points.symbol; + + // If the user sets the line width to 0, we change it to a very + // small value. A line width of 0 seems to force the default of 1. + // Doing the conditional here allows the shadow setting to still be + // optional even with a lineWidth of 0. + + if( lw == 0 ) + lw = 0.0001; + + if (lw > 0 && sw > 0) { + // draw shadow in two steps + var w = sw / 2; + ctx.lineWidth = w; + ctx.strokeStyle = "rgba(0,0,0,0.1)"; + plotPoints(series.datapoints, radius, null, w + w/2, true, + series.xaxis, series.yaxis, symbol); + + ctx.strokeStyle = "rgba(0,0,0,0.2)"; + plotPoints(series.datapoints, radius, null, w/2, true, + series.xaxis, series.yaxis, symbol); + } + + ctx.lineWidth = lw; + ctx.strokeStyle = series.color; + plotPoints(series.datapoints, radius, + getFillStyle(series.points, series.color), 0, false, + series.xaxis, series.yaxis, symbol); + ctx.restore(); + } + + function drawBar(x, y, b, barLeft, barRight, fillStyleCallback, axisx, axisy, c, horizontal, lineWidth) { + var left, right, bottom, top, + drawLeft, drawRight, drawTop, drawBottom, + tmp; + + // in horizontal mode, we start the bar from the left + // instead of from the bottom so it appears to be + // horizontal rather than vertical + if (horizontal) { + drawBottom = drawRight = drawTop = true; + drawLeft = false; + left = b; + right = x; + top = y + barLeft; + bottom = y + barRight; + + // account for negative bars + if (right < left) { + tmp = right; + right = left; + left = tmp; + drawLeft = true; + drawRight = false; + } + } + else { + drawLeft = drawRight = drawTop = true; + drawBottom = false; + left = x + barLeft; + right = x + barRight; + bottom = b; + top = y; + + // account for negative bars + if (top < bottom) { + tmp = top; + top = bottom; + bottom = tmp; + drawBottom = true; + drawTop = false; + } + } + + // clip + if (right < axisx.min || left > axisx.max || + top < axisy.min || bottom > axisy.max) + return; + + if (left < axisx.min) { + left = axisx.min; + drawLeft = false; + } + + if (right > axisx.max) { + right = axisx.max; + drawRight = false; + } + + if (bottom < axisy.min) { + bottom = axisy.min; + drawBottom = false; + } + + if (top > axisy.max) { + top = axisy.max; + drawTop = false; + } + + left = axisx.p2c(left); + bottom = axisy.p2c(bottom); + right = axisx.p2c(right); + top = axisy.p2c(top); + + // fill the bar + if (fillStyleCallback) { + c.fillStyle = fillStyleCallback(bottom, top); + c.fillRect(left, top, right - left, bottom - top) + } + + // draw outline + if (lineWidth > 0 && (drawLeft || drawRight || drawTop || drawBottom)) { + c.beginPath(); + + // FIXME: inline moveTo is buggy with excanvas + c.moveTo(left, bottom); + if (drawLeft) + c.lineTo(left, top); + else + c.moveTo(left, top); + if (drawTop) + c.lineTo(right, top); + else + c.moveTo(right, top); + if (drawRight) + c.lineTo(right, bottom); + else + c.moveTo(right, bottom); + if (drawBottom) + c.lineTo(left, bottom); + else + c.moveTo(left, bottom); + c.stroke(); + } + } + + function drawSeriesBars(series) { + function plotBars(datapoints, barLeft, barRight, fillStyleCallback, axisx, axisy) { + var points = datapoints.points, ps = datapoints.pointsize; + + for (var i = 0; i < points.length; i += ps) { + if (points[i] == null) + continue; + drawBar(points[i], points[i + 1], points[i + 2], barLeft, barRight, fillStyleCallback, axisx, axisy, ctx, series.bars.horizontal, series.bars.lineWidth); + } + } + + ctx.save(); + ctx.translate(plotOffset.left, plotOffset.top); + + // FIXME: figure out a way to add shadows (for instance along the right edge) + ctx.lineWidth = series.bars.lineWidth; + ctx.strokeStyle = series.color; + + var barLeft; + + switch (series.bars.align) { + case "left": + barLeft = 0; + break; + case "right": + barLeft = -series.bars.barWidth; + break; + default: + barLeft = -series.bars.barWidth / 2; + } + + var fillStyleCallback = series.bars.fill ? function (bottom, top) { return getFillStyle(series.bars, series.color, bottom, top); } : null; + plotBars(series.datapoints, barLeft, barLeft + series.bars.barWidth, fillStyleCallback, series.xaxis, series.yaxis); + ctx.restore(); + } + + function getFillStyle(filloptions, seriesColor, bottom, top) { + var fill = filloptions.fill; + if (!fill) + return null; + + if (filloptions.fillColor) + return getColorOrGradient(filloptions.fillColor, bottom, top, seriesColor); + + var c = $.color.parse(seriesColor); + c.a = typeof fill == "number" ? fill : 0.4; + c.normalize(); + return c.toString(); + } + + function insertLegend() { + + if (options.legend.container != null) { + $(options.legend.container).html(""); + } else { + placeholder.find(".legend").remove(); + } + + if (!options.legend.show) { + return; + } + + var fragments = [], entries = [], rowStarted = false, + lf = options.legend.labelFormatter, s, label; + + // Build a list of legend entries, with each having a label and a color + + for (var i = 0; i < series.length; ++i) { + s = series[i]; + if (s.label) { + label = lf ? lf(s.label, s) : s.label; + if (label) { + entries.push({ + label: label, + color: s.color + }); + } + } + } + + // Sort the legend using either the default or a custom comparator + + if (options.legend.sorted) { + if ($.isFunction(options.legend.sorted)) { + entries.sort(options.legend.sorted); + } else if (options.legend.sorted == "reverse") { + entries.reverse(); + } else { + var ascending = options.legend.sorted != "descending"; + entries.sort(function(a, b) { + return a.label == b.label ? 0 : ( + (a.label < b.label) != ascending ? 1 : -1 // Logical XOR + ); + }); + } + } + + // Generate markup for the list of entries, in their final order + + for (var i = 0; i < entries.length; ++i) { + + var entry = entries[i]; + + if (i % options.legend.noColumns == 0) { + if (rowStarted) + fragments.push(''); + fragments.push(''); + rowStarted = true; + } + + fragments.push( + '
    ' + + '' + entry.label + '' + ); + } + + if (rowStarted) + fragments.push(''); + + if (fragments.length == 0) + return; + + var table = '' + fragments.join("") + '
    '; + if (options.legend.container != null) + $(options.legend.container).html(table); + else { + var pos = "", + p = options.legend.position, + m = options.legend.margin; + if (m[0] == null) + m = [m, m]; + if (p.charAt(0) == "n") + pos += 'top:' + (m[1] + plotOffset.top) + 'px;'; + else if (p.charAt(0) == "s") + pos += 'bottom:' + (m[1] + plotOffset.bottom) + 'px;'; + if (p.charAt(1) == "e") + pos += 'right:' + (m[0] + plotOffset.right) + 'px;'; + else if (p.charAt(1) == "w") + pos += 'left:' + (m[0] + plotOffset.left) + 'px;'; + var legend = $('
    ' + table.replace('style="', 'style="position:absolute;' + pos +';') + '
    ').appendTo(placeholder); + if (options.legend.backgroundOpacity != 0.0) { + // put in the transparent background + // separately to avoid blended labels and + // label boxes + var c = options.legend.backgroundColor; + if (c == null) { + c = options.grid.backgroundColor; + if (c && typeof c == "string") + c = $.color.parse(c); + else + c = $.color.extract(legend, 'background-color'); + c.a = 1; + c = c.toString(); + } + var div = legend.children(); + $('
    ').prependTo(legend).css('opacity', options.legend.backgroundOpacity); + } + } + } + + + // interactive features + + var highlights = [], + redrawTimeout = null; + + // returns the data item the mouse is over, or null if none is found + function findNearbyItem(mouseX, mouseY, seriesFilter) { + var maxDistance = options.grid.mouseActiveRadius, + smallestDistance = maxDistance * maxDistance + 1, + item = null, foundPoint = false, i, j, ps; + + for (i = series.length - 1; i >= 0; --i) { + if (!seriesFilter(series[i])) + continue; + + var s = series[i], + axisx = s.xaxis, + axisy = s.yaxis, + points = s.datapoints.points, + mx = axisx.c2p(mouseX), // precompute some stuff to make the loop faster + my = axisy.c2p(mouseY), + maxx = maxDistance / axisx.scale, + maxy = maxDistance / axisy.scale; + + ps = s.datapoints.pointsize; + // with inverse transforms, we can't use the maxx/maxy + // optimization, sadly + if (axisx.options.inverseTransform) + maxx = Number.MAX_VALUE; + if (axisy.options.inverseTransform) + maxy = Number.MAX_VALUE; + + if (s.lines.show || s.points.show) { + for (j = 0; j < points.length; j += ps) { + var x = points[j], y = points[j + 1]; + if (x == null) + continue; + + // For points and lines, the cursor must be within a + // certain distance to the data point + if (x - mx > maxx || x - mx < -maxx || + y - my > maxy || y - my < -maxy) + continue; + + // We have to calculate distances in pixels, not in + // data units, because the scales of the axes may be different + var dx = Math.abs(axisx.p2c(x) - mouseX), + dy = Math.abs(axisy.p2c(y) - mouseY), + dist = dx * dx + dy * dy; // we save the sqrt + + // use <= to ensure last point takes precedence + // (last generally means on top of) + if (dist < smallestDistance) { + smallestDistance = dist; + item = [i, j / ps]; + } + } + } + + if (s.bars.show && !item) { // no other point can be nearby + + var barLeft, barRight; + + switch (s.bars.align) { + case "left": + barLeft = 0; + break; + case "right": + barLeft = -s.bars.barWidth; + break; + default: + barLeft = -s.bars.barWidth / 2; + } + + barRight = barLeft + s.bars.barWidth; + + for (j = 0; j < points.length; j += ps) { + var x = points[j], y = points[j + 1], b = points[j + 2]; + if (x == null) + continue; + + // for a bar graph, the cursor must be inside the bar + if (series[i].bars.horizontal ? + (mx <= Math.max(b, x) && mx >= Math.min(b, x) && + my >= y + barLeft && my <= y + barRight) : + (mx >= x + barLeft && mx <= x + barRight && + my >= Math.min(b, y) && my <= Math.max(b, y))) + item = [i, j / ps]; + } + } + } + + if (item) { + i = item[0]; + j = item[1]; + ps = series[i].datapoints.pointsize; + + return { datapoint: series[i].datapoints.points.slice(j * ps, (j + 1) * ps), + dataIndex: j, + series: series[i], + seriesIndex: i }; + } + + return null; + } + + function onMouseMove(e) { + if (options.grid.hoverable) + triggerClickHoverEvent("plothover", e, + function (s) { return s["hoverable"] != false; }); + } + + function onMouseLeave(e) { + if (options.grid.hoverable) + triggerClickHoverEvent("plothover", e, + function (s) { return false; }); + } + + function onClick(e) { + triggerClickHoverEvent("plotclick", e, + function (s) { return s["clickable"] != false; }); + } + + // trigger click or hover event (they send the same parameters + // so we share their code) + function triggerClickHoverEvent(eventname, event, seriesFilter) { + var offset = eventHolder.offset(), + canvasX = event.pageX - offset.left - plotOffset.left, + canvasY = event.pageY - offset.top - plotOffset.top, + pos = canvasToAxisCoords({ left: canvasX, top: canvasY }); + + pos.pageX = event.pageX; + pos.pageY = event.pageY; + + var item = findNearbyItem(canvasX, canvasY, seriesFilter); + + if (item) { + // fill in mouse pos for any listeners out there + item.pageX = parseInt(item.series.xaxis.p2c(item.datapoint[0]) + offset.left + plotOffset.left, 10); + item.pageY = parseInt(item.series.yaxis.p2c(item.datapoint[1]) + offset.top + plotOffset.top, 10); + } + + if (options.grid.autoHighlight) { + // clear auto-highlights + for (var i = 0; i < highlights.length; ++i) { + var h = highlights[i]; + if (h.auto == eventname && + !(item && h.series == item.series && + h.point[0] == item.datapoint[0] && + h.point[1] == item.datapoint[1])) + unhighlight(h.series, h.point); + } + + if (item) + highlight(item.series, item.datapoint, eventname); + } + + placeholder.trigger(eventname, [ pos, item ]); + } + + function triggerRedrawOverlay() { + var t = options.interaction.redrawOverlayInterval; + if (t == -1) { // skip event queue + drawOverlay(); + return; + } + + if (!redrawTimeout) + redrawTimeout = setTimeout(drawOverlay, t); + } + + function drawOverlay() { + redrawTimeout = null; + + // draw highlights + octx.save(); + overlay.clear(); + octx.translate(plotOffset.left, plotOffset.top); + + var i, hi; + for (i = 0; i < highlights.length; ++i) { + hi = highlights[i]; + + if (hi.series.bars.show) + drawBarHighlight(hi.series, hi.point); + else + drawPointHighlight(hi.series, hi.point); + } + octx.restore(); + + executeHooks(hooks.drawOverlay, [octx]); + } + + function highlight(s, point, auto) { + if (typeof s == "number") + s = series[s]; + + if (typeof point == "number") { + var ps = s.datapoints.pointsize; + point = s.datapoints.points.slice(ps * point, ps * (point + 1)); + } + + var i = indexOfHighlight(s, point); + if (i == -1) { + highlights.push({ series: s, point: point, auto: auto }); + + triggerRedrawOverlay(); + } + else if (!auto) + highlights[i].auto = false; + } + + function unhighlight(s, point) { + if (s == null && point == null) { + highlights = []; + triggerRedrawOverlay(); + return; + } + + if (typeof s == "number") + s = series[s]; + + if (typeof point == "number") { + var ps = s.datapoints.pointsize; + point = s.datapoints.points.slice(ps * point, ps * (point + 1)); + } + + var i = indexOfHighlight(s, point); + if (i != -1) { + highlights.splice(i, 1); + + triggerRedrawOverlay(); + } + } + + function indexOfHighlight(s, p) { + for (var i = 0; i < highlights.length; ++i) { + var h = highlights[i]; + if (h.series == s && h.point[0] == p[0] + && h.point[1] == p[1]) + return i; + } + return -1; + } + + function drawPointHighlight(series, point) { + var x = point[0], y = point[1], + axisx = series.xaxis, axisy = series.yaxis, + highlightColor = (typeof series.highlightColor === "string") ? series.highlightColor : $.color.parse(series.color).scale('a', 0.5).toString(); + + if (x < axisx.min || x > axisx.max || y < axisy.min || y > axisy.max) + return; + + var pointRadius = series.points.radius + series.points.lineWidth / 2; + octx.lineWidth = pointRadius; + octx.strokeStyle = highlightColor; + var radius = 1.5 * pointRadius; + x = axisx.p2c(x); + y = axisy.p2c(y); + + octx.beginPath(); + if (series.points.symbol == "circle") + octx.arc(x, y, radius, 0, 2 * Math.PI, false); + else + series.points.symbol(octx, x, y, radius, false); + octx.closePath(); + octx.stroke(); + } + + function drawBarHighlight(series, point) { + var highlightColor = (typeof series.highlightColor === "string") ? series.highlightColor : $.color.parse(series.color).scale('a', 0.5).toString(), + fillStyle = highlightColor, + barLeft; + + switch (series.bars.align) { + case "left": + barLeft = 0; + break; + case "right": + barLeft = -series.bars.barWidth; + break; + default: + barLeft = -series.bars.barWidth / 2; + } + + octx.lineWidth = series.bars.lineWidth; + octx.strokeStyle = highlightColor; + + drawBar(point[0], point[1], point[2] || 0, barLeft, barLeft + series.bars.barWidth, + function () { return fillStyle; }, series.xaxis, series.yaxis, octx, series.bars.horizontal, series.bars.lineWidth); + } + + function getColorOrGradient(spec, bottom, top, defaultColor) { + if (typeof spec == "string") + return spec; + else { + // assume this is a gradient spec; IE currently only + // supports a simple vertical gradient properly, so that's + // what we support too + var gradient = ctx.createLinearGradient(0, top, 0, bottom); + + for (var i = 0, l = spec.colors.length; i < l; ++i) { + var c = spec.colors[i]; + if (typeof c != "string") { + var co = $.color.parse(defaultColor); + if (c.brightness != null) + co = co.scale('rgb', c.brightness); + if (c.opacity != null) + co.a *= c.opacity; + c = co.toString(); + } + gradient.addColorStop(i / (l - 1), c); + } + + return gradient; + } + } + } + + // Add the plot function to the top level of the jQuery object + + $.plot = function(placeholder, data, options) { + //var t0 = new Date(); + var plot = new Plot($(placeholder), data, options, $.plot.plugins); + //(window.console ? console.log : alert)("time used (msecs): " + ((new Date()).getTime() - t0.getTime())); + return plot; + }; + + $.plot.version = "0.8.3"; + + $.plot.plugins = []; + + // Also add the plot function as a chainable property + + $.fn.plot = function(data, options) { + return this.each(function() { + $.plot(this, data, options); + }); + }; + + // round to nearby lower multiple of base + function floorInBase(n, base) { + return base * Math.floor(n / base); + } + +})(jQuery); diff --git a/public/admin/assets/js/chart/flot-chart/jquery.flot.pie.js b/public/admin/assets/js/chart/flot-chart/jquery.flot.pie.js new file mode 100644 index 0000000..9c19db9 --- /dev/null +++ b/public/admin/assets/js/chart/flot-chart/jquery.flot.pie.js @@ -0,0 +1,820 @@ +/* Flot plugin for rendering pie charts. + +Copyright (c) 2007-2014 IOLA and Ole Laursen. +Licensed under the MIT license. + +The plugin assumes that each series has a single data value, and that each +value is a positive integer or zero. Negative numbers don't make sense for a +pie chart, and have unpredictable results. The values do NOT need to be +passed in as percentages; the plugin will calculate the total and per-slice +percentages internally. + +* Created by Brian Medendorp + +* Updated with contributions from btburnett3, Anthony Aragues and Xavi Ivars + +The plugin supports these options: + + series: { + pie: { + show: true/false + radius: 0-1 for percentage of fullsize, or a specified pixel length, or 'auto' + innerRadius: 0-1 for percentage of fullsize or a specified pixel length, for creating a donut effect + startAngle: 0-2 factor of PI used for starting angle (in radians) i.e 3/2 starts at the top, 0 and 2 have the same result + tilt: 0-1 for percentage to tilt the pie, where 1 is no tilt, and 0 is completely flat (nothing will show) + offset: { + top: integer value to move the pie up or down + left: integer value to move the pie left or right, or 'auto' + }, + stroke: { + color: any hexidecimal color value (other formats may or may not work, so best to stick with something like '#FFF') + width: integer pixel width of the stroke + }, + label: { + show: true/false, or 'auto' + formatter: a user-defined function that modifies the text/style of the label text + radius: 0-1 for percentage of fullsize, or a specified pixel length + background: { + color: any hexidecimal color value (other formats may or may not work, so best to stick with something like '#000') + opacity: 0-1 + }, + threshold: 0-1 for the percentage value at which to hide labels (if they're too small) + }, + combine: { + threshold: 0-1 for the percentage value at which to combine slices (if they're too small) + color: any hexidecimal color value (other formats may or may not work, so best to stick with something like '#CCC'), if null, the plugin will automatically use the color of the first slice to be combined + label: any text value of what the combined slice should be labeled + } + highlight: { + opacity: 0-1 + } + } + } + +More detail and specific examples can be found in the included HTML file. + +*/ + +(function($) { + + // Maximum redraw attempts when fitting labels within the plot + + var REDRAW_ATTEMPTS = 10; + + // Factor by which to shrink the pie when fitting labels within the plot + + var REDRAW_SHRINK = 0.95; + + function init(plot) { + + var canvas = null, + target = null, + options = null, + maxRadius = null, + centerLeft = null, + centerTop = null, + processed = false, + ctx = null; + + // interactive variables + + var highlights = []; + + // add hook to determine if pie plugin in enabled, and then perform necessary operations + + plot.hooks.processOptions.push(function(plot, options) { + if (options.series.pie.show) { + + options.grid.show = false; + + // set labels.show + + if (options.series.pie.label.show == "auto") { + if (options.legend.show) { + options.series.pie.label.show = false; + } else { + options.series.pie.label.show = true; + } + } + + // set radius + + if (options.series.pie.radius == "auto") { + if (options.series.pie.label.show) { + options.series.pie.radius = 3/4; + } else { + options.series.pie.radius = 1; + } + } + + // ensure sane tilt + + if (options.series.pie.tilt > 1) { + options.series.pie.tilt = 1; + } else if (options.series.pie.tilt < 0) { + options.series.pie.tilt = 0; + } + } + }); + + plot.hooks.bindEvents.push(function(plot, eventHolder) { + var options = plot.getOptions(); + if (options.series.pie.show) { + if (options.grid.hoverable) { + eventHolder.unbind("mousemove").mousemove(onMouseMove); + } + if (options.grid.clickable) { + eventHolder.unbind("click").click(onClick); + } + } + }); + + plot.hooks.processDatapoints.push(function(plot, series, data, datapoints) { + var options = plot.getOptions(); + if (options.series.pie.show) { + processDatapoints(plot, series, data, datapoints); + } + }); + + plot.hooks.drawOverlay.push(function(plot, octx) { + var options = plot.getOptions(); + if (options.series.pie.show) { + drawOverlay(plot, octx); + } + }); + + plot.hooks.draw.push(function(plot, newCtx) { + var options = plot.getOptions(); + if (options.series.pie.show) { + draw(plot, newCtx); + } + }); + + function processDatapoints(plot, series, datapoints) { + if (!processed) { + processed = true; + canvas = plot.getCanvas(); + target = $(canvas).parent(); + options = plot.getOptions(); + plot.setData(combine(plot.getData())); + } + } + + function combine(data) { + + var total = 0, + combined = 0, + numCombined = 0, + color = options.series.pie.combine.color, + newdata = []; + + // Fix up the raw data from Flot, ensuring the data is numeric + + for (var i = 0; i < data.length; ++i) { + + var value = data[i].data; + + // If the data is an array, we'll assume that it's a standard + // Flot x-y pair, and are concerned only with the second value. + + // Note how we use the original array, rather than creating a + // new one; this is more efficient and preserves any extra data + // that the user may have stored in higher indexes. + + if ($.isArray(value) && value.length == 1) { + value = value[0]; + } + + if ($.isArray(value)) { + // Equivalent to $.isNumeric() but compatible with jQuery < 1.7 + if (!isNaN(parseFloat(value[1])) && isFinite(value[1])) { + value[1] = +value[1]; + } else { + value[1] = 0; + } + } else if (!isNaN(parseFloat(value)) && isFinite(value)) { + value = [1, +value]; + } else { + value = [1, 0]; + } + + data[i].data = [value]; + } + + // Sum up all the slices, so we can calculate percentages for each + + for (var i = 0; i < data.length; ++i) { + total += data[i].data[0][1]; + } + + // Count the number of slices with percentages below the combine + // threshold; if it turns out to be just one, we won't combine. + + for (var i = 0; i < data.length; ++i) { + var value = data[i].data[0][1]; + if (value / total <= options.series.pie.combine.threshold) { + combined += value; + numCombined++; + if (!color) { + color = data[i].color; + } + } + } + + for (var i = 0; i < data.length; ++i) { + var value = data[i].data[0][1]; + if (numCombined < 2 || value / total > options.series.pie.combine.threshold) { + newdata.push( + $.extend(data[i], { /* extend to allow keeping all other original data values + and using them e.g. in labelFormatter. */ + data: [[1, value]], + color: data[i].color, + label: data[i].label, + angle: value * Math.PI * 2 / total, + percent: value / (total / 100) + }) + ); + } + } + + if (numCombined > 1) { + newdata.push({ + data: [[1, combined]], + color: color, + label: options.series.pie.combine.label, + angle: combined * Math.PI * 2 / total, + percent: combined / (total / 100) + }); + } + + return newdata; + } + + function draw(plot, newCtx) { + + if (!target) { + return; // if no series were passed + } + + var canvasWidth = plot.getPlaceholder().width(), + canvasHeight = plot.getPlaceholder().height(), + legendWidth = target.children().filter(".legend").children().width() || 0; + + ctx = newCtx; + + // WARNING: HACK! REWRITE THIS CODE AS SOON AS POSSIBLE! + + // When combining smaller slices into an 'other' slice, we need to + // add a new series. Since Flot gives plugins no way to modify the + // list of series, the pie plugin uses a hack where the first call + // to processDatapoints results in a call to setData with the new + // list of series, then subsequent processDatapoints do nothing. + + // The plugin-global 'processed' flag is used to control this hack; + // it starts out false, and is set to true after the first call to + // processDatapoints. + + // Unfortunately this turns future setData calls into no-ops; they + // call processDatapoints, the flag is true, and nothing happens. + + // To fix this we'll set the flag back to false here in draw, when + // all series have been processed, so the next sequence of calls to + // processDatapoints once again starts out with a slice-combine. + // This is really a hack; in 0.9 we need to give plugins a proper + // way to modify series before any processing begins. + + processed = false; + + // calculate maximum radius and center point + + maxRadius = Math.min(canvasWidth, canvasHeight / options.series.pie.tilt) / 2; + centerTop = canvasHeight / 2 + options.series.pie.offset.top; + centerLeft = canvasWidth / 2; + + if (options.series.pie.offset.left == "auto") { + if (options.legend.position.match("w")) { + centerLeft += legendWidth / 2; + } else { + centerLeft -= legendWidth / 2; + } + if (centerLeft < maxRadius) { + centerLeft = maxRadius; + } else if (centerLeft > canvasWidth - maxRadius) { + centerLeft = canvasWidth - maxRadius; + } + } else { + centerLeft += options.series.pie.offset.left; + } + + var slices = plot.getData(), + attempts = 0; + + // Keep shrinking the pie's radius until drawPie returns true, + // indicating that all the labels fit, or we try too many times. + + do { + if (attempts > 0) { + maxRadius *= REDRAW_SHRINK; + } + attempts += 1; + clear(); + if (options.series.pie.tilt <= 0.8) { + drawShadow(); + } + } while (!drawPie() && attempts < REDRAW_ATTEMPTS) + + if (attempts >= REDRAW_ATTEMPTS) { + clear(); + target.prepend("
    Could not draw pie with labels contained inside canvas
    "); + } + + if (plot.setSeries && plot.insertLegend) { + plot.setSeries(slices); + plot.insertLegend(); + } + + // we're actually done at this point, just defining internal functions at this point + + function clear() { + ctx.clearRect(0, 0, canvasWidth, canvasHeight); + target.children().filter(".pieLabel, .pieLabelBackground").remove(); + } + + function drawShadow() { + + var shadowLeft = options.series.pie.shadow.left; + var shadowTop = options.series.pie.shadow.top; + var edge = 10; + var alpha = options.series.pie.shadow.alpha; + var radius = options.series.pie.radius > 1 ? options.series.pie.radius : maxRadius * options.series.pie.radius; + + if (radius >= canvasWidth / 2 - shadowLeft || radius * options.series.pie.tilt >= canvasHeight / 2 - shadowTop || radius <= edge) { + return; // shadow would be outside canvas, so don't draw it + } + + ctx.save(); + ctx.translate(shadowLeft,shadowTop); + ctx.globalAlpha = alpha; + ctx.fillStyle = "#000"; + + // center and rotate to starting position + + ctx.translate(centerLeft,centerTop); + ctx.scale(1, options.series.pie.tilt); + + //radius -= edge; + + for (var i = 1; i <= edge; i++) { + ctx.beginPath(); + ctx.arc(0, 0, radius, 0, Math.PI * 2, false); + ctx.fill(); + radius -= i; + } + + ctx.restore(); + } + + function drawPie() { + + var startAngle = Math.PI * options.series.pie.startAngle; + var radius = options.series.pie.radius > 1 ? options.series.pie.radius : maxRadius * options.series.pie.radius; + + // center and rotate to starting position + + ctx.save(); + ctx.translate(centerLeft,centerTop); + ctx.scale(1, options.series.pie.tilt); + //ctx.rotate(startAngle); // start at top; -- This doesn't work properly in Opera + + // draw slices + + ctx.save(); + var currentAngle = startAngle; + for (var i = 0; i < slices.length; ++i) { + slices[i].startAngle = currentAngle; + drawSlice(slices[i].angle, slices[i].color, true); + } + ctx.restore(); + + // draw slice outlines + + if (options.series.pie.stroke.width > 0) { + ctx.save(); + ctx.lineWidth = options.series.pie.stroke.width; + currentAngle = startAngle; + for (var i = 0; i < slices.length; ++i) { + drawSlice(slices[i].angle, options.series.pie.stroke.color, false); + } + ctx.restore(); + } + + // draw donut hole + + drawDonutHole(ctx); + + ctx.restore(); + + // Draw the labels, returning true if they fit within the plot + + if (options.series.pie.label.show) { + return drawLabels(); + } else return true; + + function drawSlice(angle, color, fill) { + + if (angle <= 0 || isNaN(angle)) { + return; + } + + if (fill) { + ctx.fillStyle = color; + } else { + ctx.strokeStyle = color; + ctx.lineJoin = "round"; + } + + ctx.beginPath(); + if (Math.abs(angle - Math.PI * 2) > 0.000000001) { + ctx.moveTo(0, 0); // Center of the pie + } + + //ctx.arc(0, 0, radius, 0, angle, false); // This doesn't work properly in Opera + ctx.arc(0, 0, radius,currentAngle, currentAngle + angle / 2, false); + ctx.arc(0, 0, radius,currentAngle + angle / 2, currentAngle + angle, false); + ctx.closePath(); + //ctx.rotate(angle); // This doesn't work properly in Opera + currentAngle += angle; + + if (fill) { + ctx.fill(); + } else { + ctx.stroke(); + } + } + + function drawLabels() { + + var currentAngle = startAngle; + var radius = options.series.pie.label.radius > 1 ? options.series.pie.label.radius : maxRadius * options.series.pie.label.radius; + + for (var i = 0; i < slices.length; ++i) { + if (slices[i].percent >= options.series.pie.label.threshold * 100) { + if (!drawLabel(slices[i], currentAngle, i)) { + return false; + } + } + currentAngle += slices[i].angle; + } + + return true; + + function drawLabel(slice, startAngle, index) { + + if (slice.data[0][1] == 0) { + return true; + } + + // format label text + + var lf = options.legend.labelFormatter, text, plf = options.series.pie.label.formatter; + + if (lf) { + text = lf(slice.label, slice); + } else { + text = slice.label; + } + + if (plf) { + text = plf(text, slice); + } + + var halfAngle = ((startAngle + slice.angle) + startAngle) / 2; + var x = centerLeft + Math.round(Math.cos(halfAngle) * radius); + var y = centerTop + Math.round(Math.sin(halfAngle) * radius) * options.series.pie.tilt; + + var html = "" + text + ""; + target.append(html); + + var label = target.children("#pieLabel" + index); + var labelTop = (y - label.height() / 2); + var labelLeft = (x - label.width() / 2); + + label.css("top", labelTop); + label.css("left", labelLeft); + + // check to make sure that the label is not outside the canvas + + if (0 - labelTop > 0 || 0 - labelLeft > 0 || canvasHeight - (labelTop + label.height()) < 0 || canvasWidth - (labelLeft + label.width()) < 0) { + return false; + } + + if (options.series.pie.label.background.opacity != 0) { + + // put in the transparent background separately to avoid blended labels and label boxes + + var c = options.series.pie.label.background.color; + + if (c == null) { + c = slice.color; + } + + var pos = "top:" + labelTop + "px;left:" + labelLeft + "px;"; + $("
    ") + .css("opacity", options.series.pie.label.background.opacity) + .insertBefore(label); + } + + return true; + } // end individual label function + } // end drawLabels function + } // end drawPie function + } // end draw function + + // Placed here because it needs to be accessed from multiple locations + + function drawDonutHole(layer) { + if (options.series.pie.innerRadius > 0) { + + // subtract the center + + layer.save(); + var innerRadius = options.series.pie.innerRadius > 1 ? options.series.pie.innerRadius : maxRadius * options.series.pie.innerRadius; + layer.globalCompositeOperation = "destination-out"; // this does not work with excanvas, but it will fall back to using the stroke color + layer.beginPath(); + layer.fillStyle = options.series.pie.stroke.color; + layer.arc(0, 0, innerRadius, 0, Math.PI * 2, false); + layer.fill(); + layer.closePath(); + layer.restore(); + + // add inner stroke + + layer.save(); + layer.beginPath(); + layer.strokeStyle = options.series.pie.stroke.color; + layer.arc(0, 0, innerRadius, 0, Math.PI * 2, false); + layer.stroke(); + layer.closePath(); + layer.restore(); + + // TODO: add extra shadow inside hole (with a mask) if the pie is tilted. + } + } + + //-- Additional Interactive related functions -- + + function isPointInPoly(poly, pt) { + for(var c = false, i = -1, l = poly.length, j = l - 1; ++i < l; j = i) + ((poly[i][1] <= pt[1] && pt[1] < poly[j][1]) || (poly[j][1] <= pt[1] && pt[1]< poly[i][1])) + && (pt[0] < (poly[j][0] - poly[i][0]) * (pt[1] - poly[i][1]) / (poly[j][1] - poly[i][1]) + poly[i][0]) + && (c = !c); + return c; + } + + function findNearbySlice(mouseX, mouseY) { + + var slices = plot.getData(), + options = plot.getOptions(), + radius = options.series.pie.radius > 1 ? options.series.pie.radius : maxRadius * options.series.pie.radius, + x, y; + + for (var i = 0; i < slices.length; ++i) { + + var s = slices[i]; + + if (s.pie.show) { + + ctx.save(); + ctx.beginPath(); + ctx.moveTo(0, 0); // Center of the pie + //ctx.scale(1, options.series.pie.tilt); // this actually seems to break everything when here. + ctx.arc(0, 0, radius, s.startAngle, s.startAngle + s.angle / 2, false); + ctx.arc(0, 0, radius, s.startAngle + s.angle / 2, s.startAngle + s.angle, false); + ctx.closePath(); + x = mouseX - centerLeft; + y = mouseY - centerTop; + + if (ctx.isPointInPath) { + if (ctx.isPointInPath(mouseX - centerLeft, mouseY - centerTop)) { + ctx.restore(); + return { + datapoint: [s.percent, s.data], + dataIndex: 0, + series: s, + seriesIndex: i + }; + } + } else { + + // excanvas for IE doesn;t support isPointInPath, this is a workaround. + + var p1X = radius * Math.cos(s.startAngle), + p1Y = radius * Math.sin(s.startAngle), + p2X = radius * Math.cos(s.startAngle + s.angle / 4), + p2Y = radius * Math.sin(s.startAngle + s.angle / 4), + p3X = radius * Math.cos(s.startAngle + s.angle / 2), + p3Y = radius * Math.sin(s.startAngle + s.angle / 2), + p4X = radius * Math.cos(s.startAngle + s.angle / 1.5), + p4Y = radius * Math.sin(s.startAngle + s.angle / 1.5), + p5X = radius * Math.cos(s.startAngle + s.angle), + p5Y = radius * Math.sin(s.startAngle + s.angle), + arrPoly = [[0, 0], [p1X, p1Y], [p2X, p2Y], [p3X, p3Y], [p4X, p4Y], [p5X, p5Y]], + arrPoint = [x, y]; + + // TODO: perhaps do some mathmatical trickery here with the Y-coordinate to compensate for pie tilt? + + if (isPointInPoly(arrPoly, arrPoint)) { + ctx.restore(); + return { + datapoint: [s.percent, s.data], + dataIndex: 0, + series: s, + seriesIndex: i + }; + } + } + + ctx.restore(); + } + } + + return null; + } + + function onMouseMove(e) { + triggerClickHoverEvent("plothover", e); + } + + function onClick(e) { + triggerClickHoverEvent("plotclick", e); + } + + // trigger click or hover event (they send the same parameters so we share their code) + + function triggerClickHoverEvent(eventname, e) { + + var offset = plot.offset(); + var canvasX = parseInt(e.pageX - offset.left); + var canvasY = parseInt(e.pageY - offset.top); + var item = findNearbySlice(canvasX, canvasY); + + if (options.grid.autoHighlight) { + + // clear auto-highlights + + for (var i = 0; i < highlights.length; ++i) { + var h = highlights[i]; + if (h.auto == eventname && !(item && h.series == item.series)) { + unhighlight(h.series); + } + } + } + + // highlight the slice + + if (item) { + highlight(item.series, eventname); + } + + // trigger any hover bind events + + var pos = { pageX: e.pageX, pageY: e.pageY }; + target.trigger(eventname, [pos, item]); + } + + function highlight(s, auto) { + //if (typeof s == "number") { + // s = series[s]; + //} + + var i = indexOfHighlight(s); + + if (i == -1) { + highlights.push({ series: s, auto: auto }); + plot.triggerRedrawOverlay(); + } else if (!auto) { + highlights[i].auto = false; + } + } + + function unhighlight(s) { + if (s == null) { + highlights = []; + plot.triggerRedrawOverlay(); + } + + //if (typeof s == "number") { + // s = series[s]; + //} + + var i = indexOfHighlight(s); + + if (i != -1) { + highlights.splice(i, 1); + plot.triggerRedrawOverlay(); + } + } + + function indexOfHighlight(s) { + for (var i = 0; i < highlights.length; ++i) { + var h = highlights[i]; + if (h.series == s) + return i; + } + return -1; + } + + function drawOverlay(plot, octx) { + + var options = plot.getOptions(); + + var radius = options.series.pie.radius > 1 ? options.series.pie.radius : maxRadius * options.series.pie.radius; + + octx.save(); + octx.translate(centerLeft, centerTop); + octx.scale(1, options.series.pie.tilt); + + for (var i = 0; i < highlights.length; ++i) { + drawHighlight(highlights[i].series); + } + + drawDonutHole(octx); + + octx.restore(); + + function drawHighlight(series) { + + if (series.angle <= 0 || isNaN(series.angle)) { + return; + } + + //octx.fillStyle = parseColor(options.series.pie.highlight.color).scale(null, null, null, options.series.pie.highlight.opacity).toString(); + octx.fillStyle = "rgba(255, 255, 255, " + options.series.pie.highlight.opacity + ")"; // this is temporary until we have access to parseColor + octx.beginPath(); + if (Math.abs(series.angle - Math.PI * 2) > 0.000000001) { + octx.moveTo(0, 0); // Center of the pie + } + octx.arc(0, 0, radius, series.startAngle, series.startAngle + series.angle / 2, false); + octx.arc(0, 0, radius, series.startAngle + series.angle / 2, series.startAngle + series.angle, false); + octx.closePath(); + octx.fill(); + } + } + } // end init (plugin body) + + // define pie specific options and their default values + + var options = { + series: { + pie: { + show: false, + radius: "auto", // actual radius of the visible pie (based on full calculated radius if <=1, or hard pixel value) + innerRadius: 0, /* for donut */ + startAngle: 3/2, + tilt: 1, + shadow: { + left: 5, // shadow left offset + top: 15, // shadow top offset + alpha: 0.02 // shadow alpha + }, + offset: { + top: 0, + left: "auto" + }, + stroke: { + color: "#fff", + width: 1 + }, + label: { + show: "auto", + formatter: function(label, slice) { + return "
    " + label + "
    " + Math.round(slice.percent) + "%
    "; + }, // formatter function + radius: 1, // radius at which to place the labels (based on full calculated radius if <=1, or hard pixel value) + background: { + color: null, + opacity: 0 + }, + threshold: 0 // percentage at which to hide the label (i.e. the slice is too narrow) + }, + combine: { + threshold: -1, // percentage at which to combine little slices into one larger slice + color: null, // color to give the new slice (auto-generated if null) + label: "Other" // label to give the new slice + }, + highlight: { + //color: "#fff", // will add this functionality once parseColor is available + opacity: 0.5 + } + } + } + }; + + $.plot.plugins.push({ + init: init, + options: options, + name: "pie", + version: "1.1" + }); + +})(jQuery); diff --git a/public/admin/assets/js/chart/flot-chart/jquery.flot.stack.js b/public/admin/assets/js/chart/flot-chart/jquery.flot.stack.js new file mode 100644 index 0000000..e75a7df --- /dev/null +++ b/public/admin/assets/js/chart/flot-chart/jquery.flot.stack.js @@ -0,0 +1,188 @@ +/* Flot plugin for stacking data sets rather than overlyaing them. + +Copyright (c) 2007-2014 IOLA and Ole Laursen. +Licensed under the MIT license. + +The plugin assumes the data is sorted on x (or y if stacking horizontally). +For line charts, it is assumed that if a line has an undefined gap (from a +null point), then the line above it should have the same gap - insert zeros +instead of "null" if you want another behaviour. This also holds for the start +and end of the chart. Note that stacking a mix of positive and negative values +in most instances doesn't make sense (so it looks weird). + +Two or more series are stacked when their "stack" attribute is set to the same +key (which can be any number or string or just "true"). To specify the default +stack, you can set the stack option like this: + + series: { + stack: null/false, true, or a key (number/string) + } + +You can also specify it for a single series, like this: + + $.plot( $("#placeholder"), [{ + data: [ ... ], + stack: true + }]) + +The stacking order is determined by the order of the data series in the array +(later series end up on top of the previous). + +Internally, the plugin modifies the datapoints in each series, adding an +offset to the y value. For line series, extra data points are inserted through +interpolation. If there's a second y value, it's also adjusted (e.g for bar +charts or filled areas). + +*/ + +(function ($) { + var options = { + series: { stack: null } // or number/string + }; + + function init(plot) { + function findMatchingSeries(s, allseries) { + var res = null; + for (var i = 0; i < allseries.length; ++i) { + if (s == allseries[i]) + break; + + if (allseries[i].stack == s.stack) + res = allseries[i]; + } + + return res; + } + + function stackData(plot, s, datapoints) { + if (s.stack == null || s.stack === false) + return; + + var other = findMatchingSeries(s, plot.getData()); + if (!other) + return; + + var ps = datapoints.pointsize, + points = datapoints.points, + otherps = other.datapoints.pointsize, + otherpoints = other.datapoints.points, + newpoints = [], + px, py, intery, qx, qy, bottom, + withlines = s.lines.show, + horizontal = s.bars.horizontal, + withbottom = ps > 2 && (horizontal ? datapoints.format[2].x : datapoints.format[2].y), + withsteps = withlines && s.lines.steps, + fromgap = true, + keyOffset = horizontal ? 1 : 0, + accumulateOffset = horizontal ? 0 : 1, + i = 0, j = 0, l, m; + + while (true) { + if (i >= points.length) + break; + + l = newpoints.length; + + if (points[i] == null) { + // copy gaps + for (m = 0; m < ps; ++m) + newpoints.push(points[i + m]); + i += ps; + } + else if (j >= otherpoints.length) { + // for lines, we can't use the rest of the points + if (!withlines) { + for (m = 0; m < ps; ++m) + newpoints.push(points[i + m]); + } + i += ps; + } + else if (otherpoints[j] == null) { + // oops, got a gap + for (m = 0; m < ps; ++m) + newpoints.push(null); + fromgap = true; + j += otherps; + } + else { + // cases where we actually got two points + px = points[i + keyOffset]; + py = points[i + accumulateOffset]; + qx = otherpoints[j + keyOffset]; + qy = otherpoints[j + accumulateOffset]; + bottom = 0; + + if (px == qx) { + for (m = 0; m < ps; ++m) + newpoints.push(points[i + m]); + + newpoints[l + accumulateOffset] += qy; + bottom = qy; + + i += ps; + j += otherps; + } + else if (px > qx) { + // we got past point below, might need to + // insert interpolated extra point + if (withlines && i > 0 && points[i - ps] != null) { + intery = py + (points[i - ps + accumulateOffset] - py) * (qx - px) / (points[i - ps + keyOffset] - px); + newpoints.push(qx); + newpoints.push(intery + qy); + for (m = 2; m < ps; ++m) + newpoints.push(points[i + m]); + bottom = qy; + } + + j += otherps; + } + else { // px < qx + if (fromgap && withlines) { + // if we come from a gap, we just skip this point + i += ps; + continue; + } + + for (m = 0; m < ps; ++m) + newpoints.push(points[i + m]); + + // we might be able to interpolate a point below, + // this can give us a better y + if (withlines && j > 0 && otherpoints[j - otherps] != null) + bottom = qy + (otherpoints[j - otherps + accumulateOffset] - qy) * (px - qx) / (otherpoints[j - otherps + keyOffset] - qx); + + newpoints[l + accumulateOffset] += bottom; + + i += ps; + } + + fromgap = false; + + if (l != newpoints.length && withbottom) + newpoints[l + 2] += bottom; + } + + // maintain the line steps invariant + if (withsteps && l != newpoints.length && l > 0 + && newpoints[l] != null + && newpoints[l] != newpoints[l - ps] + && newpoints[l + 1] != newpoints[l - ps + 1]) { + for (m = 0; m < ps; ++m) + newpoints[l + ps + m] = newpoints[l + m]; + newpoints[l + 1] = newpoints[l - ps + 1]; + } + } + + datapoints.points = newpoints; + } + + plot.hooks.processDatapoints.push(stackData); + } + + $.plot.plugins.push({ + init: init, + options: options, + name: 'stack', + version: '1.2' + }); +})(jQuery); diff --git a/public/admin/assets/js/chart/flot-chart/jquery.flot.symbol.js b/public/admin/assets/js/chart/flot-chart/jquery.flot.symbol.js new file mode 100644 index 0000000..79f6349 --- /dev/null +++ b/public/admin/assets/js/chart/flot-chart/jquery.flot.symbol.js @@ -0,0 +1,71 @@ +/* Flot plugin that adds some extra symbols for plotting points. + +Copyright (c) 2007-2014 IOLA and Ole Laursen. +Licensed under the MIT license. + +The symbols are accessed as strings through the standard symbol options: + + series: { + points: { + symbol: "square" // or "diamond", "triangle", "cross" + } + } + +*/ + +(function ($) { + function processRawData(plot, series, datapoints) { + // we normalize the area of each symbol so it is approximately the + // same as a circle of the given radius + + var handlers = { + square: function (ctx, x, y, radius, shadow) { + // pi * r^2 = (2s)^2 => s = r * sqrt(pi)/2 + var size = radius * Math.sqrt(Math.PI) / 2; + ctx.rect(x - size, y - size, size + size, size + size); + }, + diamond: function (ctx, x, y, radius, shadow) { + // pi * r^2 = 2s^2 => s = r * sqrt(pi/2) + var size = radius * Math.sqrt(Math.PI / 2); + ctx.moveTo(x - size, y); + ctx.lineTo(x, y - size); + ctx.lineTo(x + size, y); + ctx.lineTo(x, y + size); + ctx.lineTo(x - size, y); + }, + triangle: function (ctx, x, y, radius, shadow) { + // pi * r^2 = 1/2 * s^2 * sin (pi / 3) => s = r * sqrt(2 * pi / sin(pi / 3)) + var size = radius * Math.sqrt(2 * Math.PI / Math.sin(Math.PI / 3)); + var height = size * Math.sin(Math.PI / 3); + ctx.moveTo(x - size/2, y + height/2); + ctx.lineTo(x + size/2, y + height/2); + if (!shadow) { + ctx.lineTo(x, y - height/2); + ctx.lineTo(x - size/2, y + height/2); + } + }, + cross: function (ctx, x, y, radius, shadow) { + // pi * r^2 = (2s)^2 => s = r * sqrt(pi)/2 + var size = radius * Math.sqrt(Math.PI) / 2; + ctx.moveTo(x - size, y - size); + ctx.lineTo(x + size, y + size); + ctx.moveTo(x - size, y + size); + ctx.lineTo(x + size, y - size); + } + }; + + var s = series.points.symbol; + if (handlers[s]) + series.points.symbol = handlers[s]; + } + + function init(plot) { + plot.hooks.processDatapoints.push(processRawData); + } + + $.plot.plugins.push({ + init: init, + name: 'symbols', + version: '1.0' + }); +})(jQuery); diff --git a/public/admin/assets/js/chart/flot-chart/jquery.flot.time.js b/public/admin/assets/js/chart/flot-chart/jquery.flot.time.js new file mode 100644 index 0000000..34c1d12 --- /dev/null +++ b/public/admin/assets/js/chart/flot-chart/jquery.flot.time.js @@ -0,0 +1,432 @@ +/* Pretty handling of time axes. + +Copyright (c) 2007-2014 IOLA and Ole Laursen. +Licensed under the MIT license. + +Set axis.mode to "time" to enable. See the section "Time series data" in +API.txt for details. + +*/ + +(function($) { + + var options = { + xaxis: { + timezone: null, // "browser" for local to the client or timezone for timezone-js + timeformat: null, // format string to use + twelveHourClock: false, // 12 or 24 time in time mode + monthNames: null // list of names of months + } + }; + + // round to nearby lower multiple of base + + function floorInBase(n, base) { + return base * Math.floor(n / base); + } + + // Returns a string with the date d formatted according to fmt. + // A subset of the Open Group's strftime format is supported. + + function formatDate(d, fmt, monthNames, dayNames) { + + if (typeof d.strftime == "function") { + return d.strftime(fmt); + } + + var leftPad = function(n, pad) { + n = "" + n; + pad = "" + (pad == null ? "0" : pad); + return n.length == 1 ? pad + n : n; + }; + + var r = []; + var escape = false; + var hours = d.getHours(); + var isAM = hours < 12; + + if (monthNames == null) { + monthNames = ["Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul", "Aug", "Sep", "Oct", "Nov", "Dec"]; + } + + if (dayNames == null) { + dayNames = ["Sun", "Mon", "Tue", "Wed", "Thu", "Fri", "Sat"]; + } + + var hours12; + + if (hours > 12) { + hours12 = hours - 12; + } else if (hours == 0) { + hours12 = 12; + } else { + hours12 = hours; + } + + for (var i = 0; i < fmt.length; ++i) { + + var c = fmt.charAt(i); + + if (escape) { + switch (c) { + case 'a': c = "" + dayNames[d.getDay()]; break; + case 'b': c = "" + monthNames[d.getMonth()]; break; + case 'd': c = leftPad(d.getDate()); break; + case 'e': c = leftPad(d.getDate(), " "); break; + case 'h': // For back-compat with 0.7; remove in 1.0 + case 'H': c = leftPad(hours); break; + case 'I': c = leftPad(hours12); break; + case 'l': c = leftPad(hours12, " "); break; + case 'm': c = leftPad(d.getMonth() + 1); break; + case 'M': c = leftPad(d.getMinutes()); break; + // quarters not in Open Group's strftime specification + case 'q': + c = "" + (Math.floor(d.getMonth() / 3) + 1); break; + case 'S': c = leftPad(d.getSeconds()); break; + case 'y': c = leftPad(d.getFullYear() % 100); break; + case 'Y': c = "" + d.getFullYear(); break; + case 'p': c = (isAM) ? ("" + "am") : ("" + "pm"); break; + case 'P': c = (isAM) ? ("" + "AM") : ("" + "PM"); break; + case 'w': c = "" + d.getDay(); break; + } + r.push(c); + escape = false; + } else { + if (c == "%") { + escape = true; + } else { + r.push(c); + } + } + } + + return r.join(""); + } + + // To have a consistent view of time-based data independent of which time + // zone the client happens to be in we need a date-like object independent + // of time zones. This is done through a wrapper that only calls the UTC + // versions of the accessor methods. + + function makeUtcWrapper(d) { + + function addProxyMethod(sourceObj, sourceMethod, targetObj, targetMethod) { + sourceObj[sourceMethod] = function() { + return targetObj[targetMethod].apply(targetObj, arguments); + }; + }; + + var utc = { + date: d + }; + + // support strftime, if found + + if (d.strftime != undefined) { + addProxyMethod(utc, "strftime", d, "strftime"); + } + + addProxyMethod(utc, "getTime", d, "getTime"); + addProxyMethod(utc, "setTime", d, "setTime"); + + var props = ["Date", "Day", "FullYear", "Hours", "Milliseconds", "Minutes", "Month", "Seconds"]; + + for (var p = 0; p < props.length; p++) { + addProxyMethod(utc, "get" + props[p], d, "getUTC" + props[p]); + addProxyMethod(utc, "set" + props[p], d, "setUTC" + props[p]); + } + + return utc; + }; + + // select time zone strategy. This returns a date-like object tied to the + // desired timezone + + function dateGenerator(ts, opts) { + if (opts.timezone == "browser") { + return new Date(ts); + } else if (!opts.timezone || opts.timezone == "utc") { + return makeUtcWrapper(new Date(ts)); + } else if (typeof timezoneJS != "undefined" && typeof timezoneJS.Date != "undefined") { + var d = new timezoneJS.Date(); + // timezone-js is fickle, so be sure to set the time zone before + // setting the time. + d.setTimezone(opts.timezone); + d.setTime(ts); + return d; + } else { + return makeUtcWrapper(new Date(ts)); + } + } + + // map of app. size of time units in milliseconds + + var timeUnitSize = { + "second": 1000, + "minute": 60 * 1000, + "hour": 60 * 60 * 1000, + "day": 24 * 60 * 60 * 1000, + "month": 30 * 24 * 60 * 60 * 1000, + "quarter": 3 * 30 * 24 * 60 * 60 * 1000, + "year": 365.2425 * 24 * 60 * 60 * 1000 + }; + + // the allowed tick sizes, after 1 year we use + // an integer algorithm + + var baseSpec = [ + [1, "second"], [2, "second"], [5, "second"], [10, "second"], + [30, "second"], + [1, "minute"], [2, "minute"], [5, "minute"], [10, "minute"], + [30, "minute"], + [1, "hour"], [2, "hour"], [4, "hour"], + [8, "hour"], [12, "hour"], + [1, "day"], [2, "day"], [3, "day"], + [0.25, "month"], [0.5, "month"], [1, "month"], + [2, "month"] + ]; + + // we don't know which variant(s) we'll need yet, but generating both is + // cheap + + var specMonths = baseSpec.concat([[3, "month"], [6, "month"], + [1, "year"]]); + var specQuarters = baseSpec.concat([[1, "quarter"], [2, "quarter"], + [1, "year"]]); + + function init(plot) { + plot.hooks.processOptions.push(function (plot, options) { + $.each(plot.getAxes(), function(axisName, axis) { + + var opts = axis.options; + + if (opts.mode == "time") { + axis.tickGenerator = function(axis) { + + var ticks = []; + var d = dateGenerator(axis.min, opts); + var minSize = 0; + + // make quarter use a possibility if quarters are + // mentioned in either of these options + + var spec = (opts.tickSize && opts.tickSize[1] === + "quarter") || + (opts.minTickSize && opts.minTickSize[1] === + "quarter") ? specQuarters : specMonths; + + if (opts.minTickSize != null) { + if (typeof opts.tickSize == "number") { + minSize = opts.tickSize; + } else { + minSize = opts.minTickSize[0] * timeUnitSize[opts.minTickSize[1]]; + } + } + + for (var i = 0; i < spec.length - 1; ++i) { + if (axis.delta < (spec[i][0] * timeUnitSize[spec[i][1]] + + spec[i + 1][0] * timeUnitSize[spec[i + 1][1]]) / 2 + && spec[i][0] * timeUnitSize[spec[i][1]] >= minSize) { + break; + } + } + + var size = spec[i][0]; + var unit = spec[i][1]; + + // special-case the possibility of several years + + if (unit == "year") { + + // if given a minTickSize in years, just use it, + // ensuring that it's an integer + + if (opts.minTickSize != null && opts.minTickSize[1] == "year") { + size = Math.floor(opts.minTickSize[0]); + } else { + + var magn = Math.pow(10, Math.floor(Math.log(axis.delta / timeUnitSize.year) / Math.LN10)); + var norm = (axis.delta / timeUnitSize.year) / magn; + + if (norm < 1.5) { + size = 1; + } else if (norm < 3) { + size = 2; + } else if (norm < 7.5) { + size = 5; + } else { + size = 10; + } + + size *= magn; + } + + // minimum size for years is 1 + + if (size < 1) { + size = 1; + } + } + + axis.tickSize = opts.tickSize || [size, unit]; + var tickSize = axis.tickSize[0]; + unit = axis.tickSize[1]; + + var step = tickSize * timeUnitSize[unit]; + + if (unit == "second") { + d.setSeconds(floorInBase(d.getSeconds(), tickSize)); + } else if (unit == "minute") { + d.setMinutes(floorInBase(d.getMinutes(), tickSize)); + } else if (unit == "hour") { + d.setHours(floorInBase(d.getHours(), tickSize)); + } else if (unit == "month") { + d.setMonth(floorInBase(d.getMonth(), tickSize)); + } else if (unit == "quarter") { + d.setMonth(3 * floorInBase(d.getMonth() / 3, + tickSize)); + } else if (unit == "year") { + d.setFullYear(floorInBase(d.getFullYear(), tickSize)); + } + + // reset smaller components + + d.setMilliseconds(0); + + if (step >= timeUnitSize.minute) { + d.setSeconds(0); + } + if (step >= timeUnitSize.hour) { + d.setMinutes(0); + } + if (step >= timeUnitSize.day) { + d.setHours(0); + } + if (step >= timeUnitSize.day * 4) { + d.setDate(1); + } + if (step >= timeUnitSize.month * 2) { + d.setMonth(floorInBase(d.getMonth(), 3)); + } + if (step >= timeUnitSize.quarter * 2) { + d.setMonth(floorInBase(d.getMonth(), 6)); + } + if (step >= timeUnitSize.year) { + d.setMonth(0); + } + + var carry = 0; + var v = Number.NaN; + var prev; + + do { + + prev = v; + v = d.getTime(); + ticks.push(v); + + if (unit == "month" || unit == "quarter") { + if (tickSize < 1) { + + // a bit complicated - we'll divide the + // month/quarter up but we need to take + // care of fractions so we don't end up in + // the middle of a day + + d.setDate(1); + var start = d.getTime(); + d.setMonth(d.getMonth() + + (unit == "quarter" ? 3 : 1)); + var end = d.getTime(); + d.setTime(v + carry * timeUnitSize.hour + (end - start) * tickSize); + carry = d.getHours(); + d.setHours(0); + } else { + d.setMonth(d.getMonth() + + tickSize * (unit == "quarter" ? 3 : 1)); + } + } else if (unit == "year") { + d.setFullYear(d.getFullYear() + tickSize); + } else { + d.setTime(v + step); + } + } while (v < axis.max && v != prev); + + return ticks; + }; + + axis.tickFormatter = function (v, axis) { + + var d = dateGenerator(v, axis.options); + + // first check global format + + if (opts.timeformat != null) { + return formatDate(d, opts.timeformat, opts.monthNames, opts.dayNames); + } + + // possibly use quarters if quarters are mentioned in + // any of these places + + var useQuarters = (axis.options.tickSize && + axis.options.tickSize[1] == "quarter") || + (axis.options.minTickSize && + axis.options.minTickSize[1] == "quarter"); + + var t = axis.tickSize[0] * timeUnitSize[axis.tickSize[1]]; + var span = axis.max - axis.min; + var suffix = (opts.twelveHourClock) ? " %p" : ""; + var hourCode = (opts.twelveHourClock) ? "%I" : "%H"; + var fmt; + + if (t < timeUnitSize.minute) { + fmt = hourCode + ":%M:%S" + suffix; + } else if (t < timeUnitSize.day) { + if (span < 2 * timeUnitSize.day) { + fmt = hourCode + ":%M" + suffix; + } else { + fmt = "%b %d " + hourCode + ":%M" + suffix; + } + } else if (t < timeUnitSize.month) { + fmt = "%b %d"; + } else if ((useQuarters && t < timeUnitSize.quarter) || + (!useQuarters && t < timeUnitSize.year)) { + if (span < timeUnitSize.year) { + fmt = "%b"; + } else { + fmt = "%b %Y"; + } + } else if (useQuarters && t < timeUnitSize.year) { + if (span < timeUnitSize.year) { + fmt = "Q%q"; + } else { + fmt = "Q%q %Y"; + } + } else { + fmt = "%Y"; + } + + var rt = formatDate(d, fmt, opts.monthNames, opts.dayNames); + + return rt; + }; + } + }); + }); + } + + $.plot.plugins.push({ + init: init, + options: options, + name: 'time', + version: '1.0' + }); + + // Time-axis support used to be in Flot core, which exposed the + // formatDate function on the plot object. Various plugins depend + // on the function, so we need to re-expose it here. + + $.plot.formatDate = formatDate; + $.plot.dateGenerator = dateGenerator; + +})(jQuery); diff --git a/public/admin/assets/js/chart/google/google-chart-loader.js b/public/admin/assets/js/chart/google/google-chart-loader.js new file mode 100644 index 0000000..9f37033 --- /dev/null +++ b/public/admin/assets/js/chart/google/google-chart-loader.js @@ -0,0 +1,226 @@ +(function(){var a="\n//# sourceURL=",k="' of type ",n=' + + + + + + +
    +
    +
    +
    +
    + + +
    +
    +
    +
    + +
    +
    +
    +
    + + + + + + + + + + + + + + + + + + + + + + + + @if(Session::get('logingagal')) + + @endif + + @if(Session::get('logout')) + + @endif + + + + diff --git a/resources/views/admin/auth/profil.blade.php b/resources/views/admin/auth/profil.blade.php new file mode 100644 index 0000000..f222385 --- /dev/null +++ b/resources/views/admin/auth/profil.blade.php @@ -0,0 +1,98 @@ +@extends('admin.layout.main') +@section('title', 'Profil - ') + +@section('content') +
    + +
    +
    +
    +
    +
    +
    +
    +

    My Profile

    +
    + +
    +
    +
    + @if ($errors->any()) +
    + + + + + + @foreach ($errors->all() as $error) +
  • {{ $nomer++ }}. {{ $error }}
  • + @endforeach +
    + @endif +
    + @csrf + @method('POST') +
    +
    +
    + +
    +

    {{ Auth::user()->name }}

    +

    {{ Auth::user()->role }}

    +
    +
    +
    +
    +
    + + +
    +
    + + +
    +
    + + +
    + +
    + + +
    + + + + +
    +
    +
    +
    + +
    +
    +
    +@endsection diff --git a/resources/views/admin/layout/main.blade.php b/resources/views/admin/layout/main.blade.php new file mode 100644 index 0000000..1d0061e --- /dev/null +++ b/resources/views/admin/layout/main.blade.php @@ -0,0 +1,285 @@ + + + + + + + + + + + + + + + + @yield('title') Ala Cafe Jember + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    +
    +
    + + +
    + + @include('admin.partials.header') + + + +
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + {{-- --}} + + + + + + + + + + + + + + + + + + + + + + + @yield('script') + + @if (Session::get('login')) + + @endif + + @if (Session::get('updateprofil')) + + @endif + + + @if (Session::get('store')) + + @endif + + @if (Session::get('update')) + + @endif + + @if (Session::get('destroy')) + + @endif + + @if (Session::get('statusubah')) + + @endif + + @if (Session::get('product-transaksi')) + + @endif + + @if (Session::get('product-cart')) + + @endif + + @if (Session::get('kategori-product')) + + @endif + + + + diff --git a/resources/views/admin/pages/dashboard.blade.php b/resources/views/admin/pages/dashboard.blade.php new file mode 100644 index 0000000..d596969 --- /dev/null +++ b/resources/views/admin/pages/dashboard.blade.php @@ -0,0 +1,239 @@ +@extends('admin.layout.main') +@section('title', 'Dashboard') +@section('content') +
    +
    +
    +
    +
    +
    + + + + + + + +
    +
    {{ $total_transaksi_count }}
    +

    Jumlah Transaksi

    + {{-- 95.54% --}} +
    + + + + + + + + + + + + + + +
    +
    +
    +
    +
    +
    +
    +
    + + + + + + + +
    +
    {{ $total_user }}
    +

    Jumlah User

    + {{-- 90.54% --}} +
    + + + + + + + + +
    +
    +
    +
    +
    +
    +
    +
    + + + + + + + + + + + + +
    +
    Jumlah Product
    +

    {{ $total_product }}

    + {{-- 95.54% --}} +
    + + + + + + + + + + + + + + +
    +
    +
    +
    +
    +
    +
    +
    + + + + + + +
    +
    {{ $total_kategori }}
    +

    Jumlah Kategori

    + {{-- 90.54% --}} +
    + + + + + + + + +
    +
    +
    +
    +
    +
    +
    +
    +
    +
    +
    +
    Chart Transaksi Harian
    +
    +
    +
    +
    +
    +
    +
    +
    + +@endsection + +@section('script') + + + + + +@endsection diff --git a/resources/views/admin/pages/kategori.blade.php b/resources/views/admin/pages/kategori.blade.php new file mode 100644 index 0000000..d144228 --- /dev/null +++ b/resources/views/admin/pages/kategori.blade.php @@ -0,0 +1,250 @@ +@extends('admin.layout.main') +@section('title', 'Data Kategori - ') +@section('content') +
    + +
    +
    +
    +
    +
    + + {{-- btn add --}} + +
    + @if ($errors->any()) +
    + + + + + + @foreach ($errors->all() as $error) +
  • {{ $nomer++ }}. {{ $error }}
  • + @endforeach +
    + @endif +
    + + + + + + + {{-- --}} + + + + @foreach ($kategori as $data ) + + + + + + + + {{-- Edit Modal --}} + + {{-- End Modal --}} + {{-- Delete Modal --}} + + {{-- End Modal --}} + @endforeach + +
    NoNameActionAction
    {{ $loop->iteration }}{{ $data->nama }} +
    + + +
    +
    +
    +
    + {{-- Add Modal --}} + + {{-- End Modal --}} +
    +
    + +
    +
    +@endsection + +@section('script') + +@endsection diff --git a/resources/views/admin/pages/product.blade.php b/resources/views/admin/pages/product.blade.php new file mode 100644 index 0000000..6208193 --- /dev/null +++ b/resources/views/admin/pages/product.blade.php @@ -0,0 +1,374 @@ +@extends('admin.layout.main') +@section('title', 'Data Product - ') +@section('content') +
    + +
    +
    +
    +
    +
    + {{-- btn add --}} + +
    + @if ($errors->any()) +
    + + + + + + @foreach ($errors->all() as $error) +
  • {{ $nomer++ }}. {{ $error }}
  • + @endforeach +
    + @endif +
    + + + + + + + + + + + + + + @foreach ($product as $item) + + + + + + + + + + {{-- Edit Modal --}} + + {{-- End Modal --}} + + {{-- Delete Modal --}} + + {{-- End Modal --}} + @endforeach + +
    namagambarhargastoksisakategoriaction
    {{ $item->nama }}gambarRp. {{ number_format($item->harga, 0, ',', '.') }}{{ $item->stok }} + @php + + // $jumlah_transaksi_paid = DB::table('detail_transaksi') + // ->join('transaksi', 'detail_transaksi.id', 'transaksi.id') + // ->where('detail_transaksi.id_product', $item->id) + // ->where('transaksi.status_pembayaran', 'paid') + // ->sum('detail_transaksi.jumlah'); + + + // $jumlah_transaksi_pending = DB::table('detail_transaksi') + // ->join('transaksi', 'detail_transaksi.id', 'transaksi.id') + // ->where('detail_transaksi.id_product', $item->id) + // ->where('transaksi.status_pembayaran', 'pending') + // ->sum('detail_transaksi.jumlah'); + + $jumlah_transaksi_paid = \App\Models\DetailTransaksi::where('id_product', $item->id)->whereHas('transaksi', function ($query) { + $query->where('status_pembayaran', 'paid'); + })->sum('jumlah'); + + $jumlah_transaksi_pending = \App\Models\DetailTransaksi::where('id_product', $item->id)->whereHas('transaksi', function ($query) { + $query->where('status_pembayaran', 'pending'); + })->sum('jumlah'); + + $sisa = $item->stok - ($jumlah_transaksi_paid + $jumlah_transaksi_pending); + + echo $sisa; + + @endphp + {{ $item->kategori->nama }} +
    + + +
    +
    +
    +
    +
    + {{-- Add Modal --}} + + {{-- End Modal --}} +
    +
    + +
    + + + +@endsection + +@section('script') + +@endsection diff --git a/resources/views/admin/pages/report.blade.php b/resources/views/admin/pages/report.blade.php new file mode 100644 index 0000000..be571aa --- /dev/null +++ b/resources/views/admin/pages/report.blade.php @@ -0,0 +1,564 @@ +@extends('admin.layout.main') +@section('title', 'Data Report - ') +@section('content') +
    + +
    +
    +
    +
    +
    +
    + {{-- // filter date and status --}} +
    + @csrf + +
    + + +
    + +
    + + +
    + + +
    + + +
    + +
    + +
    + + +
    +
    +
    +
    +
    +
    +{{-- // end filter date and status --}} +
    + +
    +
    +
    +
    +
    +
    + + @if ($errors->any()) +
    + + + + + + @foreach ($errors->all() as $error) +
  • {{ $nomer++ }}. {{ $error }}
  • + @endforeach +
    + @endif +
    + + + + + + + + + + + + + + @foreach ($transaksi as $data) + + + + + + + + + + + + + {{-- Edit Status Modal --}} + + {{-- End Modal --}} + + @endforeach + +
    NoNameStatus PembayaranProductTotalDateAction
    {{ $loop->iteration }}{{ $data->user->name }} + @if ($data->status_pembayaran == 'Belum Pilih Pembayaran') + {{ $data->status_pembayaran }} + @elseif($data->status_pembayaran == 'pending') + {{ $data->status_pembayaran }} + + @elseif($data->status_pembayaran == 'expire') + {{ $data->status_pembayaran }} + + @elseif($data->status_pembayaran == 'paid') + {{ $data->status_pembayaran }} + + @endif + + @foreach ($data->detailTransaksi as $item) + {{ $item->product->nama }} x {{ $item->jumlah }}
    + Rp. {{ number_format($item->total_harga) }}
    + @endforeach +
    + Rp. {{ number_format($data->total_harga) }} + {{ date('d-m-Y', strtotime($data->created_at)) }} +
    + +
    +
    +
    +
    +
    +
    +
    +
    +
    + +
    +
    +
    +
    +
    +
    + + @if ($errors->any()) +
    + + + + + + @foreach ($errors->all() as $error) +
  • {{ $nomer++ }}. {{ $error }}
  • + @endforeach +
    + @endif +
    + + + + + + + + + + + @foreach ($total as $index => $data2) + + + + + + @endforeach + +
    NoDateTotal
    {{ $index + 1 }}{{ date('d-m-Y', strtotime($data2->date)) }} + Rp. {{ number_format($data2->total_revenue) }} +
    +
    +
    +
    +
    +
    +
    +
    + +
    +
    +
    +
    +
    +
    + + @if ($errors->any()) +
    + + + + + + @foreach ($errors->all() as $error) +
  • {{ $nomer++ }}. {{ $error }}
  • + @endforeach +
    + @endif +
    + + + + + + + + + + + @foreach ($result as $index => $data) + + + + + + + @endforeach + +
    NoProductJumlahTotal
    {{ $index + 1 }}{{ $data['name'] }}{{ $data['total_sold'] }} + Rp. {{ number_format($data['total_revenue']) }} +
    +
    +
    +
    +
    +
    +
    +@endsection + +@section('script') + + + +@endsection diff --git a/resources/views/admin/pages/transaksi.blade.php b/resources/views/admin/pages/transaksi.blade.php new file mode 100644 index 0000000..269e1dc --- /dev/null +++ b/resources/views/admin/pages/transaksi.blade.php @@ -0,0 +1,213 @@ +@extends('admin.layout.main') +@section('title', 'Data Transaksi - ') +@section('content') +
    + +
    +
    +
    +
    +
    +
    + @if ($errors->any()) +
    + + + + + + @foreach ($errors->all() as $error) +
  • {{ $nomer++ }}. {{ $error }}
  • + @endforeach +
    + @endif +
    + + + + + + + + + + + + + + @foreach ($transaksi as $data) + + + + + + + + + + + + + {{-- Edit Status Modal --}} + + {{-- End Modal --}} + + @endforeach + +
    NoNameStatus PembayaranProductTotalDateAction
    {{ $loop->iteration }}{{ $data->user->name }} + @if ($data->status_pembayaran == 'Belum Pilih Pembayaran') + {{ $data->status_pembayaran }} + @elseif($data->status_pembayaran == 'pending') + {{ $data->status_pembayaran }} + + @elseif($data->status_pembayaran == 'expire') + {{ $data->status_pembayaran }} + + @elseif($data->status_pembayaran == 'paid') + {{ $data->status_pembayaran }} + + @endif + + @foreach ($data->detailTransaksi as $item) + {{ $item->product->nama }} x {{ $item->jumlah }}
    + Rp. {{ number_format($item->total_harga) }}
    + @endforeach +
    + Rp. {{ number_format($data->total_harga) }} + {{ date('d-m-Y', strtotime($data->created_at)) }} +
    + +
    +
    +
    +
    +
    +
    +
    +
    +@endsection + +@section('script') + +@endsection diff --git a/resources/views/admin/pages/user.blade.php b/resources/views/admin/pages/user.blade.php new file mode 100644 index 0000000..81698be --- /dev/null +++ b/resources/views/admin/pages/user.blade.php @@ -0,0 +1,283 @@ +@extends('admin.layout.main') +@section('title', 'Data Mobil - ') +@section('content') +
    + +
    +
    +
    +
    +
    + + {{-- btn add --}} + +
    + @if($errors->any()) +
    + + + + + + @foreach($errors->all() as $error) +
  • {{ $nomer++ }}. {{ $error }}
  • + @endforeach +
    + @endif +
    + + + + + + + + + + + @foreach ($user as $data ) + + + + + + + + + {{-- Edit Modal --}} + + + + {{-- End Modal --}} + {{-- Delete Modal --}} + + {{-- End Modal --}} + @endforeach + +
    NoNameEmailAction
    {{ $loop->iteration }}{{ $data->name }}{{ $data->email }} +
    + + +
    +
    +
    +
    + + {{-- Add Modal --}} + + {{-- End Modal --}} +
    +
    + +
    +
    +@endsection + +@section('script') + +@endsection diff --git a/resources/views/admin/partials/footer.blade.php b/resources/views/admin/partials/footer.blade.php new file mode 100644 index 0000000..bb56190 --- /dev/null +++ b/resources/views/admin/partials/footer.blade.php @@ -0,0 +1,13 @@ +
    +
    +
    + +
    +

    Hand crafted & made with

    +
    +
    +
    +
    diff --git a/resources/views/admin/partials/header.blade.php b/resources/views/admin/partials/header.blade.php new file mode 100644 index 0000000..7579048 --- /dev/null +++ b/resources/views/admin/partials/header.blade.php @@ -0,0 +1,102 @@ +
    +
    +
    + {{--
    --}} + {{--
    --}} +
    +
    +
    +
    +
      + +
    +
    + +
    +
    +
    diff --git a/resources/views/admin/partials/nav.blade.php b/resources/views/admin/partials/nav.blade.php new file mode 100644 index 0000000..09b11dd --- /dev/null +++ b/resources/views/admin/partials/nav.blade.php @@ -0,0 +1,57 @@ + diff --git a/resources/views/user/auth/change-password.blade.php b/resources/views/user/auth/change-password.blade.php new file mode 100644 index 0000000..21b3e5b --- /dev/null +++ b/resources/views/user/auth/change-password.blade.php @@ -0,0 +1,72 @@ +@extends('user.layout.main') +@section('title' , ' - Change Password') +@section('content') + +
    +
    +
    +
    + +
    + +
    +
    +
    +@endsection diff --git a/resources/views/user/auth/login.blade.php b/resources/views/user/auth/login.blade.php new file mode 100644 index 0000000..3e071e5 --- /dev/null +++ b/resources/views/user/auth/login.blade.php @@ -0,0 +1,96 @@ +@extends('user.layout.main') +@section('title' , ' - Login') +@section('content') + +
    +
    +
    + @if($errors->any()) +
    + + + + + + @foreach($errors->all() as $error) +
  • {{ $nomer++ }}. {{ $error }}
  • + @endforeach +
    + @endif +
    + +
    +
    +
    +
    +

    Log In Your Account

    +
    + @csrf + + + + + {{--

    Your personal data will be used to support your experience throughout this website, to manage access to your account, and for other purposes described in our privacy policy.

    --}} + +
    +
    +
    +
    +
    +
    +@endsection diff --git a/resources/views/user/auth/profil.blade.php b/resources/views/user/auth/profil.blade.php new file mode 100644 index 0000000..6d75e2c --- /dev/null +++ b/resources/views/user/auth/profil.blade.php @@ -0,0 +1,72 @@ +@extends('user.layout.main') +@section('title' , ' - Profil') +@section('content') + +
    +
    +
    +
    + +
    +
    +
    +
    +@endsection diff --git a/resources/views/user/auth/reset-password.blade.php b/resources/views/user/auth/reset-password.blade.php new file mode 100644 index 0000000..d45bae4 --- /dev/null +++ b/resources/views/user/auth/reset-password.blade.php @@ -0,0 +1,70 @@ +@extends('user.layout.main') +@section('title' , ' - Reset Password') +@section('content') + +
    +
    +
    +
    + +
    + +
    +
    +
    +@endsection diff --git a/resources/views/user/layout/main.blade.php b/resources/views/user/layout/main.blade.php new file mode 100644 index 0000000..07594fe --- /dev/null +++ b/resources/views/user/layout/main.blade.php @@ -0,0 +1,168 @@ + + + + + + + Ala Cafe Jember @yield('title') + + + + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    +
    +
    +
    + + @include('user.partials.header') + @yield('content') + @include('user.partials.footer') + +
    + +
    + + + + + + + + + + + + + + + @yield('script') + + @if(Session::get('login')) + + @endif + + @if(Session::get('loginerror')) + + @endif + + @if(Session::get('register')) + + @endif + + @if(Session::get('updateprofil')) + + @endif + + @if(Session::get('logout')) + + @endif + + + @if(Session::get('linkkadaluarsa')) + + @endif + + @if(Session::get('resetpasswordberhasil')) + + @endif + + @if(Session::get('linkresetdikirim')) + + @endif + + @if(Session::get('emailtidakditemukan')) + + @endif + + @if(Session::get('storecart')) + + @endif + + + @if(Session::get('updatecart')) + + @endif + + @if(Session::get('deletecart')) + + @endif + + @if(Session::get('kosongcart')) + + @endif + + @if(Session::get('logindulu')) + + @endif + + @if(Session::get('stoktidakcukup')) + + @endif + + diff --git a/resources/views/user/pages/cart.blade.php b/resources/views/user/pages/cart.blade.php new file mode 100644 index 0000000..11ad6a0 --- /dev/null +++ b/resources/views/user/pages/cart.blade.php @@ -0,0 +1,203 @@ +@extends('user.layout.main') +@section('title' , ' - Shop Cart') +@section('content') + +
    +
    + @if($errors->any()) +
    + + + + + + @foreach($errors->all() as $error) +
  • {{ $nomer++ }}. {{ $error }}
  • + @endforeach +
    + @endif +
    + @csrf +
    + + + + + + + + + + + @foreach ($cart as $item) + + + + + + + + @endforeach + + + + + + +
    ProductQuantityTotalAction
    + img +
    + {{ $item->product->nama }} + {{ $item->product->deskripsi }} +
    +
    + + + Rp. {{ number_format($item->jumlah * $item->product->harga) }} + + +
    +
    + +
    +
    +
    +
    +
    +
    +

    Cart Totals

    +
    + + + + + + + + + + + + + + + +
    Sub total: + + + Rp. {{ number_format($sum_cart) }} + + +
    Shipping: + + free + +
    Total: + + + Rp.{{ number_format($sum_cart) }} + + +
    +
    +
    + {{-- --}} + @csrf + + {{-- --}} +
    +
    +
    +
    + +
    +
    +@endsection + +@section('script') + + + + + +@endsection diff --git a/resources/views/user/pages/checkout.blade.php b/resources/views/user/pages/checkout.blade.php new file mode 100644 index 0000000..234458a --- /dev/null +++ b/resources/views/user/pages/checkout.blade.php @@ -0,0 +1,147 @@ +@extends('user.layout.main') +@section('title' , ' - Cart Checkout') +@section('content') + +
    +
    + +
    +
    +@endsection + +@section('script') + + +@endsection diff --git a/resources/views/user/pages/contact.blade.php b/resources/views/user/pages/contact.blade.php new file mode 100644 index 0000000..ef1b492 --- /dev/null +++ b/resources/views/user/pages/contact.blade.php @@ -0,0 +1,137 @@ +@extends('user.layout.main') +@section('title', ' - Contact Us') + +@section('content') + +
    +
    +
    + {{--
    --}} +
    +

    Get in Touch

    + +
    +
    +
    + +

    Jl. Slamet Riyadi No.164, Kelurahan baratan, Kecamatan patrang, Kabupaten jember

    +
    + {{--
    + +

    Belfast BT4 3LP Sea Beach United State

    +
    --}} + {{--
    --}} + {{--
    +
    +

    Have Question?

    +

    For all enquires, please contact us and one of our delightful team will be be happy to help.

    +
    + +
    + + + + + +
    +
    --}} +
    +
    +
    +{{--
    + +
    --}} +
    +
    +
    +
    +
    Monday - Sunday
    +

    08.00pm - 22.00

    + Open all day +
    +
    + {{--
    +
    +
    Saturday
    +

    11:30am - 11pm

    + Open all day +
    +
    +
    +
    Monday - Friday
    +

    12pm - 11pm

    + Open all day +
    --}} +
    +
    +@endsection diff --git a/resources/views/user/pages/index.blade.php b/resources/views/user/pages/index.blade.php new file mode 100644 index 0000000..d5a3d22 --- /dev/null +++ b/resources/views/user/pages/index.blade.php @@ -0,0 +1,883 @@ + @extends('user.layout.main') + + @section('content') +
    + + {{--
    + Weekly Special +
    +

    $90.85

    +
    Sicilian Pizza
    +
      +
    • +
    • +
    • +
    • +
    • +
    +
    + Pizza +
    --}} +
    + {{--
    +
    +
    +
    +
    + About The Food Restaurant +

    New Ground with Dishes to be Enjoyed

    +
    +
    +
    +
    +

    Nisl quam nestibulum ac quam nec odio eleme aucan ligula. Orci varius nat oque pena tibus et urient monte nascete ridiculus mus nellentesq um ac qu am nec odio rbine. Nisl quam nestibu aucan ligula.

    +
    + girl +
    +

    Willimes James

    +

    Director and Chief Operations Officer

    +
    +
    +
    +
    +
    +
    +
    +
    + Restaurant-img +
    + Restaurant +
    +
    +
    Restaurant
    +

    Nisl quam nestibulum ac quam nec aucan ligula. Orci varius natoque li um ac quam nec odio rbine.

    + Reserve a Table +
    +
    +
    +
    +
    + Restaurant-img +
    + Coctail Bar +
    +
    +
    Coctail Bar
    +

    Nisl quam nestibulum ac quam nec aucan ligula. Orci varius natoque li um ac quam nec odio rbine.

    + Reserve a Table +
    +
    +
    +
    +
    + Restaurant-img +
    + Private Dining +
    +
    +
    Private Dining
    +

    Nisl quam nestibulum ac quam nec aucan ligula. Orci varius natoque li um ac quam nec odio rbine.

    + Reserve a Table +
    +
    +
    +
    +
    +
    --}} + + + +
    +
    +
    +

    Discover Menu

    +
    +
    + +
    + @foreach ($kategori as $item) +
    +
    + @foreach ($item->product as $data) +
    + +
    + @endforeach +
    +
    + @endforeach +
    +
    +
    + {{--
    +
    +
    +

    Discover Menu

    +
    +
    + +
    +
    +
    +
    +
    + discover +
    +
    +
    +
    +

    Dessert

    +
      +
    • +
      +
      Four Chease Garlic Bread
      +

      Toested french bread topped with romano

      +
      + $9.00 +
    • +
    • +
      +
      Rastrami Roll
      +

      Spreadable cream cheese, blue cheese

      +
      + $16.00 +
    • +
    • +
      +
      Caprese Salad Kabobs
      +

      Cherry-size fresh mozzarella cheese balls

      +
      + $34.00 +
    • +
    • +
      +
      Peachy Jalepeno Guacomole
      +

      Ground cumin, avocados, peeled and cubed

      +
      + $40.00 +
    • +
    +
    +
    +
    +
    +
    +
    +
    +
    + discover +
    +
    +
    +
    +

    Steak

    +
      +
    • +
      +
      Four Chease Garlic Bread
      +

      Toested french bread topped with romano

      +
      + $9.00 +
    • +
    • +
      +
      Rastrami Roll
      +

      Spreadable cream cheese, blue cheese

      +
      + $16.00 +
    • +
    • +
      +
      Caprese Salad Kabobs
      +

      Cherry-size fresh mozzarella cheese balls

      +
      + $34.00 +
    • +
    • +
      +
      Peachy Jalepeno Guacomole
      +

      Ground cumin, avocados, peeled and cubed

      +
      + $40.00 +
    • +
    +
    +
    +
    +
    +
    +
    +
    +
    + discover +
    +
    +
    +
    +

    Coffee Menu

    +
      +
    • +
      +
      Espresso Macchiato
      +

      Chicken / Apple / Tomatos

      +
      + $9.00 +
    • +
    • +
      +
      Mocha Whipped Cream
      +

      Bacon / Shrimp / Garlic

      +
      + $16.00 +
    • +
    • +
      +
      Cold Coffee
      +

      Pork / Tomatoes / Veggies

      +
      + $34.00 +
    • +
    • +
      +
      Caramel Macchiato
      +

      Prawn / Sausage / Totatos

      +
      + $40.00 +
    • +
    +
    +
    +
    +
    +
    +
    +
    +
    + discover +
    +
    +
    +
    +

    pizza

    +
      +
    • +
      +
      Four Chease Garlic Bread
      +

      Toested french bread topped with romano

      +
      + $9.00 +
    • +
    • +
      +
      Rastrami Roll
      +

      Spreadable cream cheese, blue cheese

      +
      + $16.00 +
    • +
    • +
      +
      Caprese Salad Kabobs
      +

      Cherry-size fresh mozzarella cheese balls

      +
      + $34.00 +
    • +
    • +
      +
      Peachy Jalepeno Guacomole
      +

      Ground cumin, avocados, peeled and cubed

      +
      + $40.00 +
    • +
    +
    +
    +
    +
    +
    +
    +
    +
    + discover +
    +
    +
    +
    +

    burger

    +
      +
    • +
      +
      Four Chease Garlic Bread
      +

      Toested french bread topped with romano

      +
      + $9.00 +
    • +
    • +
      +
      Rastrami Roll
      +

      Spreadable cream cheese, blue cheese

      +
      + $16.00 +
    • +
    • +
      +
      Caprese Salad Kabobs
      +

      Cherry-size fresh mozzarella cheese balls

      +
      + $34.00 +
    • +
    • +
      +
      Peachy Jalepeno Guacomole
      +

      Ground cumin, avocados, peeled and cubed

      +
      + $40.00 +
    • +
    +
    +
    +
    +
    +
    +
    +
    --}} + {{--
    +
    +
    +
    +
    +

    Steaks & BBQ

    +

    canonical classics to obscure
    tiki drinks

    +
    +
    +

    $120

    + per person +
    +
    +
    +
    +
    +
    +

    Cocktails

    +

    canonical classics to obscure
    tiki drinks

    +
    +
    +

    $120

    + per person +
    +
    +
    +
    +
    +
    +
    --}} + {{--
    +
    +
    +
    +
    +
    +

    reserve A table

    +

    Discover our New Menu !

    +
    +
    +
    +
    +
    +
    +
    + +
    +
    + +
    +
    +
    +
    + +
    +
    +
    +
    + +
    +
    + +
    +
    +
    +
    + +
    +
    +
    +
    +
    +
    +
    --}} + {{--
    +
    +
    +
    +
    + Testimonials & Reviews +

    Our Customar Feedbacks

    +
    + +
    +
    +
    + bratlee-hamin2 + bratlee-hamint + bratlee-hamin3 +
    +
    +
    +
    +
    --}} + {{--
    +
    +
    +

    Meet Our Experts

    +
    +
    +
    +
    +
    + cook chef +
    +
    + Dessert specialist + +

    Thomas Walim

    +
    + + sine +
    +
    +
    +
    +
    +
    + cook chef +
    +
    + Chef Master + +

    James Jhonson

    +
    + + sine +
    +
    +
    +
    +
    +
    + cook chef +
    +
    + Dessert specialist + +

    Room Minal

    +
    + + sine +
    +
    +
    +
    +
    +
    +
    --}} +
    +
    +
    +
    +
    + Best App For Foods Ordering +

    We Are Avaible On

    +
    +
      +
    • +
      Tersedia di App Food Delivery +
    • +
    • +
      Harga Murah dan Terjangkau +
    • +
    • +
      Pesan Antar Bagi Anda Yang Mager +
    • +
    + +
    +
    +
    + manage-your +
    +
    +
    +
    +
    + +
    + +
    + @endsection diff --git a/resources/views/user/pages/pemesanan.blade.php b/resources/views/user/pages/pemesanan.blade.php new file mode 100644 index 0000000..50e6620 --- /dev/null +++ b/resources/views/user/pages/pemesanan.blade.php @@ -0,0 +1,106 @@ +@extends('user.layout.main') +@section('title' , ' - Pemesanan') +@section('content') + +
    +
    +
    +
    + + + + + + + + + + + + + @foreach ($transaksi as $item ) + + + + + + + + + @endforeach + +
    DateStatus PembayaranStatus PemesananEstimasi PemesananProductAction
    + img + + + {{-- {{ $item->status_pembayaran }} --}} + @if($item->status_pembayaran == 'Belum Pilih Pembayaran') + Belum Pilh Pembayaran + @elseif($item->status_pembayaran == 'pending') + Menunggu Pembayaran + @elseif($item->status_pembayaran == 'expire') + Pembayaran Kadaluarsa + @else + Pembayaran Berhasil + @endif + + {{ $item->status_pemesanan }} + + Estimasi Pemesanan Anda
    + + @if ($item->estimasi_pemesanan == null) + - + @else + {{ $item->estimasi_pemesanan }} + + @endif + +
    + @foreach ($item->detailTransaksi as $detail) + {{ $detail->product->nama }} x {{ $detail->jumlah }}
    + Rp. {{ number_format($detail->total_harga) }}
    + @endforeach +
    + Detail +
    +
    + +
    +
    +
    +@endsection diff --git a/resources/views/user/pages/product-detail.blade.php b/resources/views/user/pages/product-detail.blade.php new file mode 100644 index 0000000..dc625b9 --- /dev/null +++ b/resources/views/user/pages/product-detail.blade.php @@ -0,0 +1,253 @@ +@extends('user.layout.main') +@section('title' , ' - ' . $product->nama) +@section('content') + + +{{--
    +
    +

    Description

    +

    + Nisl quam nestibulum ac quam nec odio elementu sceisu aucan ligula. Orci varius natoque pena tibus et magnis dis urient monte ulus mus nellent + esque habitanum ac quam nec odio rbine. Nisl quam nestibulum ac quam nec odio elementu sceisu aucan ligula. toque pena tibus et magnis dis u + rient monte nascete ridic ulus mus nellentesque habitanum ac quam nec odio rbine. Nisl quamu quam nec odio elementu sceisu aucan ligula. Orc + i varius natoque pena tibus et magnis dis urient monte nascete ridic ulus mus a habitanum ac quam nec odio rbine. Nisl quam nestibulum ac qua + m nec odio elementu sceisu aucan ligula. Orci varius natoque pe magnis dis urient monte nascete ridiculus mus nellentesque habitanum ac quam + nec odio rbine. Nisl quam nestibulum ac quam ntoque pena tibus et magnis dis urient monte nascete ridic ulus mus nellentesque habitanum ac + quam nec odio rbine. Nisl quam a quam nec odio elementu sceisu aucan ligula. Orci varius natoque pena tibus et magnis dis urient monte nascet + e ridic ulus mus n habitanum ac quam nec odio rbine.

    + + Nisl quam nestibulum ac quam nec odio elementu sceisu aucan ligula. Orci varius natoque pena tibus et magnis dis urient monte quam nec odio e + lementu sceisu aucan ligula. Orci varius natoque pena tibus et magnis dis urient monte nascete ridic.

    +
    +
    +
    + product-img +
    +
    +
    +
    + product-img +
    +
    +
    +
    + product-img +
    +
    + +
    +
    +
    +
    +
    +
    +
    +

    Benefits

    +
      +
    • img +
      Quality foods natural gradient
      +
    • +
    • img +
      A melting pot of cheese served with our Little Soul
      +
    • +
    • img +
      Award-winning Restaurant
      +
    • +
    • img +
      caramelised balsamic onions
      +
    • +
    • img +
      Healthy Food 100% Organic Food
      +
    • +
    • img +
      roasted on a skewer, hanging above a spicy chilli seafood
      +
    • +
    • img +
      individually styled bedrooms
      +
    • +
    +
    +
    + benefit +
    +
    +
    +
    +
    +
    +
    +

    Review

    +
    + img +
    +
    +

    Smith Johnson

    + Jun 07, 2023 +
    +

    Integer sollicitudin ligula non enim sodales non lacinia commodo tempor mod licitudin. Integer sollicitudin ligula non enim sodales non lacinia commodo tempor mod licitudin.

    +
    +
      +
    • +
    • +
    • +
    • +
    • +
    +
    +
    + img +
    +
    +

    Smith Johnson

    + Jun 07, 2023 +
    +

    Integer sollicitudin ligula non enim sodales non lacinia commodo tempor mod licitudin. Integer sollicitudin ligula non enim sodales non lacinia commodo tempor mod licitudin.

    +
    +
      +
    • +
    • +
    • +
    • +
    • +
    +
    +
    +
    +

    Add Review

    +
    + Your Rating +
    + + + + + +
    +
    +
    +
    +
    + +
    +
    + +
    + + +
    +
    +
    +
    +
    --}} +@endsection diff --git a/resources/views/user/partials/footer.blade.php b/resources/views/user/partials/footer.blade.php new file mode 100644 index 0000000..80e35e9 --- /dev/null +++ b/resources/views/user/partials/footer.blade.php @@ -0,0 +1,57 @@ + diff --git a/resources/views/user/partials/header.blade.php b/resources/views/user/partials/header.blade.php new file mode 100644 index 0000000..41d250a --- /dev/null +++ b/resources/views/user/partials/header.blade.php @@ -0,0 +1,166 @@ +
    + {{--
    +
    +
    +
    +
    +
    + + + + + + + + +

    Phone:+1 (850) 344 0 66

    +
    +
    + + + + + + + +

    Email:info@domain.com

    +
    +
    +
    +
    + +
    +
    +
    +
    --}} +
    +
    +
    +
    +
    + +
    + {{-- + + + + + + + + --}} +
    + +
    +
    +
    +
    +
    + +
    +
    +
    + @if (Auth::check()) + + @else + Login / Register + + @endif + +
    +
    +
    +
    +
    +
    +
    + + + +
    + + + +
    +
    diff --git a/routes/api.php b/routes/api.php new file mode 100644 index 0000000..c1c1f4c --- /dev/null +++ b/routes/api.php @@ -0,0 +1,19 @@ +id === (int) $id; +}); diff --git a/routes/console.php b/routes/console.php new file mode 100644 index 0000000..e05f4c9 --- /dev/null +++ b/routes/console.php @@ -0,0 +1,19 @@ +comment(Inspiring::quote()); +})->purpose('Display an inspiring quote'); diff --git a/routes/web.php b/routes/web.php new file mode 100644 index 0000000..4240490 --- /dev/null +++ b/routes/web.php @@ -0,0 +1,120 @@ + ['IsAdmin']], function () { + + # Auth After Login + Route::post('/admin/updateprofil', [AuthController::class, 'updateprofil']); + Route::get('/admin/profil', [AuthController::class, 'profil']); + + + # Dashboard + Route::get('/admin/dashboard', [DashboardController::class, 'index']); + + # User + Route::get('/admin/user', [UserController::class, 'index']); + Route::post('/admin/user/store', [UserController::class, 'store']); + Route::put('/admin/user/update/{id}', [UserController::class, 'edit']); + Route::delete('/admin/user/delete/{id}', [UserController::class, 'destroy']); + + # Product + Route::get('/admin/product', [ProductController::class, 'index']); + Route::post('/admin/product/store', [ProductController::class, 'store']); + Route::put('/admin/product/update/{id}', [ProductController::class, 'edit']); + Route::delete('/admin/product/delete/{id}', [ProductController::class, 'destroy']); + + # Kategori + Route::get('/admin/kategori', [KategoriController::class, 'index']); + Route::post('/admin/kategori/store', [KategoriController::class, 'store']); + Route::put('/admin/kategori/update/{id}', [KategoriController::class, 'edit']); + Route::delete('/admin/kategori/delete/{id}', [KategoriController::class, 'destroy']); + + # Transaksi + Route::get('/admin/transaksi', [TransaksiController::class, 'index']); + + # Report + Route::get('/admin/report', [ReportController::class, 'index']); + Route::post('/admin/report/filter', [ReportController::class, 'filter']); +}); + + +#################### USER #################### + +# Auth +Route::get('/user/login', [UserAuthController::class, 'login']); +Route::post('/user/login', [UserAuthController::class, 'loginPost']); +Route::post('/user/register', [UserAuthController::class, 'registerPost']); +Route::get('/user/logout', [UserAuthController::class, 'logout']); + +# Reset Password +Route::get('/user/reset-password', [UserAuthController::class, 'linkresetpassword']); +Route::post('/user/reset-password', [UserAuthController::class, 'sendlinkresetpassword']); +Route::get('/user/change-password/{code}', [UserAuthController::class, 'changepassword']); +Route::post('/user/change-password', [UserAuthController::class, 'changepasswordpost']); + +# Landing +Route::get('/', [LandingController::class, 'index']); +Route::get('/user/menu', [LandingController::class, 'menu']); +Route::get('/user/shop', [LandingController::class, 'shop']); +Route::get('/user/contact', [LandingController::class, 'contact']); + + +# Detail Product +Route::get('/user/product/{id}', [DetailProductController::class, 'index']); + +Route::group(['middleware' => ['IsUser']], function () { + + # Auth After Login + Route::get('/user/profil', [UserAuthController::class, 'profil']); + Route::post('/user/updateprofil', [UserAuthController::class, 'updateprofil']); + + # Cart + Route::get('/user/cart', [CartController::class, 'index']); + Route::post('/user/cart/store', [CartController::class, 'store']); + Route::post('/user/cart/update', [CartController::class, 'update']); + Route::delete('/user/cart/delete/{id}', [CartController::class, 'destroy']); + + Route::post('/user/checkout', [CartController::class, 'checkout']); + # Checkout + Route::get('/user/checkout/{id}', [CheckoutController::class, 'index']); + + # Pemesanan + Route::get('/user/pemesanan', [PemesananController::class, 'index']); +}); diff --git a/storage/app/.gitignore b/storage/app/.gitignore new file mode 100644 index 0000000..8f4803c --- /dev/null +++ b/storage/app/.gitignore @@ -0,0 +1,3 @@ +* +!public/ +!.gitignore diff --git a/storage/app/public/.gitignore b/storage/app/public/.gitignore new file mode 100644 index 0000000..d6b7ef3 --- /dev/null +++ b/storage/app/public/.gitignore @@ -0,0 +1,2 @@ +* +!.gitignore diff --git a/storage/framework/.gitignore b/storage/framework/.gitignore new file mode 100644 index 0000000..05c4471 --- /dev/null +++ b/storage/framework/.gitignore @@ -0,0 +1,9 @@ +compiled.php +config.php +down +events.scanned.php +maintenance.php +routes.php +routes.scanned.php +schedule-* +services.json diff --git a/storage/framework/cache/.gitignore b/storage/framework/cache/.gitignore new file mode 100644 index 0000000..01e4a6c --- /dev/null +++ b/storage/framework/cache/.gitignore @@ -0,0 +1,3 @@ +* +!data/ +!.gitignore diff --git a/storage/framework/cache/data/.gitignore b/storage/framework/cache/data/.gitignore new file mode 100644 index 0000000..d6b7ef3 --- /dev/null +++ b/storage/framework/cache/data/.gitignore @@ -0,0 +1,2 @@ +* +!.gitignore diff --git a/storage/framework/sessions/.gitignore b/storage/framework/sessions/.gitignore new file mode 100644 index 0000000..d6b7ef3 --- /dev/null +++ b/storage/framework/sessions/.gitignore @@ -0,0 +1,2 @@ +* +!.gitignore diff --git a/storage/framework/testing/.gitignore b/storage/framework/testing/.gitignore new file mode 100644 index 0000000..d6b7ef3 --- /dev/null +++ b/storage/framework/testing/.gitignore @@ -0,0 +1,2 @@ +* +!.gitignore diff --git a/storage/framework/views/.gitignore b/storage/framework/views/.gitignore new file mode 100644 index 0000000..d6b7ef3 --- /dev/null +++ b/storage/framework/views/.gitignore @@ -0,0 +1,2 @@ +* +!.gitignore diff --git a/storage/logs/.gitignore b/storage/logs/.gitignore new file mode 100644 index 0000000..d6b7ef3 --- /dev/null +++ b/storage/logs/.gitignore @@ -0,0 +1,2 @@ +* +!.gitignore diff --git a/tests/CreatesApplication.php b/tests/CreatesApplication.php new file mode 100644 index 0000000..cc68301 --- /dev/null +++ b/tests/CreatesApplication.php @@ -0,0 +1,21 @@ +make(Kernel::class)->bootstrap(); + + return $app; + } +} diff --git a/tests/Feature/ExampleTest.php b/tests/Feature/ExampleTest.php new file mode 100644 index 0000000..8364a84 --- /dev/null +++ b/tests/Feature/ExampleTest.php @@ -0,0 +1,19 @@ +get('/'); + + $response->assertStatus(200); + } +} diff --git a/tests/TestCase.php b/tests/TestCase.php new file mode 100644 index 0000000..2932d4a --- /dev/null +++ b/tests/TestCase.php @@ -0,0 +1,10 @@ +assertTrue(true); + } +} diff --git a/vite.config.js b/vite.config.js new file mode 100644 index 0000000..421b569 --- /dev/null +++ b/vite.config.js @@ -0,0 +1,11 @@ +import { defineConfig } from 'vite'; +import laravel from 'laravel-vite-plugin'; + +export default defineConfig({ + plugins: [ + laravel({ + input: ['resources/css/app.css', 'resources/js/app.js'], + refresh: true, + }), + ], +});