diff --git a/README.md b/README.md
index 075dad0..1362d96 100644
--- a/README.md
+++ b/README.md
@@ -12,17 +12,11 @@
> Quality
-[![Codacy Badge](https://api.codacy.com/project/badge/Grade/ad3c062e22ba4c25b8017041b619e217)](https://www.codacy.com/app/odirleiborgert/borgert-cms?utm_source=github.com&utm_medium=referral&utm_content=odirleiborgert/borgert-cms&utm_campaign=Badge_Grade) [![StyleCI](https://styleci.io/repos/60208254/shield?branch=master)](https://styleci.io/repos/60208254) [![Build Status](https://scrutinizer-ci.com/g/odirleiborgert/borgert-cms/badges/build.png?b=master)](https://scrutinizer-ci.com/g/odirleiborgert/borgert-cms/build-status/master)
-
-> Tags / Releases
-
-[![GitHub tag](https://img.shields.io/github/tag/odirleiborgert/borgert-cms.svg)](https://github.com/odirleiborgert/borgert-cms/releases)
+[![Codacy Badge](https://api.codacy.com/project/badge/Grade/ad3c062e22ba4c25b8017041b619e217)](https://www.codacy.com/app/odirleiborgert/borgert-cms?utm_source=github.com&utm_medium=referral&utm_content=odirleiborgert/borgert-cms&utm_campaign=Badge_Grade) [![StyleCI](https://styleci.io/repos/60208254/shield?branch=master)](https://styleci.io/repos/60208254)
> Contributions / Donate
-[![Beerpay](https://beerpay.io/odirleiborgert/borgert-cms/badge.svg)](https://beerpay.io/odirleiborgert/borgert-cms)
-[![GitHub issues](https://img.shields.io/github/issues/odirleiborgert/borgert-cms.svg)](https://github.com/odirleiborgert/borgert-cms/issues)
-[![Donate](https://img.shields.io/badge/Donate-PAYPAL-blue.svg)](https://www.paypal.com/cgi-bin/webscr?cmd=_donations&business=odirleiborgert%40gmail%2ecom&lc=MQ&item_name=Odirlei%20Borgert¤cy_code=BRL&bn=PP%2dDonationsBF%3abtn_donateCC_LG%2egif%3aNonHosted)
+[![GitHub issues](https://img.shields.io/github/issues/odirleiborgert/borgert-cms.svg)](https://github.com/odirleiborgert/borgert-cms/issues) [![Beerpay](https://img.shields.io/beerpay/odirleiborgert/borgert-cms.svg)](https://beerpay.io/odirleiborgert/borgert-cms) [![Donate](https://img.shields.io/badge/Donate-PAYPAL-blue.svg)](https://www.paypal.com/cgi-bin/webscr?cmd=_donations&business=odirleiborgert%40gmail%2ecom&lc=MQ&item_name=Odirlei%20Borgert¤cy_code=BRL&bn=PP%2dDonationsBF%3abtn_donateCC_LG%2egif%3aNonHosted)
## Documentation
@@ -45,14 +39,13 @@
## Screenshots
-![Imgur](http://i.imgur.com/3Yci6u0.png)
-
-![Imgur](http://i.imgur.com/SipAkyQ.png)
+
-![Imgur](http://i.imgur.com/GTiisSM.png)
+
-![Imgur](http://i.imgur.com/VGpDAPx.png)
+
+
## Contributions
diff --git a/app/Helpers/helper.php b/app/Helpers/helper.php
deleted file mode 100644
index 8d2a60e..0000000
--- a/app/Helpers/helper.php
+++ /dev/null
@@ -1,8 +0,0 @@
- 'required|integer',
'title' => 'required',
'description' => 'required',
+ 'seo_title' => 'required',
+ 'seo_description' => 'required',
]);
$contentDetails = $request->all();
@@ -108,6 +110,8 @@ public function update(Request $request, $id)
'category_id' => 'required|integer',
'title' => 'required',
'description' => 'required',
+ 'seo_title' => 'required',
+ 'seo_description' => 'required',
]);
$content = $this->contents->find($id);
diff --git a/app/Http/Controllers/Admin/Users/UsersController.php b/app/Http/Controllers/Admin/Users/UsersController.php
index a013c85..be6d1ca 100644
--- a/app/Http/Controllers/Admin/Users/UsersController.php
+++ b/app/Http/Controllers/Admin/Users/UsersController.php
@@ -5,7 +5,6 @@
use App\User;
use Illuminate\Http\Request;
use App\Http\Controllers\Controller;
-use function App\Helpers\issetStatus;
class UsersController extends Controller
{
@@ -62,7 +61,7 @@ public function store(Request $request)
$userDetails = $request->all();
$userDetails['password'] = \Hash::make($request['password']);
- $userDetails['status'] = issetStatus($request['status']);
+ $userDetails['status'] = isset($request['status']) ? 1 : 0;
$this->users->create($userDetails);
\Session::flash('success', trans('admin/users.store.messages.success'));
@@ -106,7 +105,7 @@ public function update(Request $request, $id)
if ($request['password']) {
$userDetails['password'] = \Hash::make($request['password']);
}
- $userDetails['status'] = issetStatus($request['status']);
+ $userDetails['status'] = isset($request['status']) ? 1 : 0;
$user->update($userDetails);
\Session::flash('success', trans('admin/users.update.messages.success'));
diff --git a/app/Http/Controllers/Site/CompanyController.php b/app/Http/Controllers/Site/CompanyController.php
new file mode 100644
index 0000000..ca8438b
--- /dev/null
+++ b/app/Http/Controllers/Site/CompanyController.php
@@ -0,0 +1,18 @@
+ 'Borgert CMS',
- 'laravel' => 'Laravel 5.5',
- 'version' => '1.0.5',
+ 'laravel' => 'Laravel 5.6',
+ 'version' => '2.0.0',
'opensource' => 'https://github.com/odirleiborgert/borgert-cms',
];
diff --git a/config/logging.php b/config/logging.php
index 902efaf..1577f4d 100644
--- a/config/logging.php
+++ b/config/logging.php
@@ -32,7 +32,7 @@
'channels' => [
'stack' => [
'driver' => 'stack',
- 'channels' => ['single'],
+ 'channels' => ['daily'],
],
'single' => [
diff --git a/docs/en/libraries.md b/docs/en/libraries.md
index 07a03e4..243fa13 100644
--- a/docs/en/libraries.md
+++ b/docs/en/libraries.md
@@ -7,20 +7,17 @@
* [laravel/laravel](https://github.com/laravel/laravel) - A PHP Framework For Web Artisans
* [thomaswelton/laravel-gravatar](https://github.com/thomaswelton/laravel-gravatar) - Image gravatar
* [kyslik/column-sortable](https://github.com/Kyslik/column-sortable) - Order by column
+* [rap2hpoutre/laravel-log-viewer](https://github.com/rap2hpoutre/laravel-log-viewer) - Log viewer
+* [nicolaslopezj/searchable](https://github.com/nicolaslopezj/searchable) - Search for blog
-----
#### Javascript Libraries
-* [Animate.css](http://daneden.github.io/animate.css/) - Animation with CSS
* [Bootstrap](http://getbootstrap.com) - Framework CSS
-* [Chart.js](http://chartjs.org) - Charts
* [Font Awesome](http://http://fontawesome.io/) - Best Icones
* [Jquery](http://jquery.com) - Framework Javascript
-* [Jquery UI](http://jqueryui.com) - User Interface
* [Metis Menu](https://github.com/onokumus/metisMenu) - Menu toogle
-* [Pace](https://github.com/HubSpot/pace) - Loading pages
-* [Slim Scroll](https://github.com/rochal/jQuery-slimScroll) - Scroll
* [Summer Note](https://github.com/summernote/summernote) - Editor text
* [Blueimp - jQuery File Upload](https://github.com/blueimp/jQuery-File-Upload) - Upload files (ajax)
diff --git a/docs/en/usage.md b/docs/en/usage.md
index 139fa5d..588f1ed 100644
--- a/docs/en/usage.md
+++ b/docs/en/usage.md
@@ -56,25 +56,20 @@ Route::group(['prefix' => 'blog', 'as' => 'blog.'], function () {
## Assets
-* Using the command `gulp watch` in the background will be listening to the files LESS and JS that is in the `resources/assets/[js,less,sass]` and when detected some of them are compiled and saved in the `public/assets/[css,js]/`
+* Using the command `gulp watch` in the background will be listening to the files SASS and JS that is in the `resources/assets/[admin,blog,site,auth]/[js,sass]` and when detected some of them are compiled and saved in the `public/assets/[admin,blog,site,auth]/[css,js]/`
## Languages
-Two languages currently available for Rocket, Portuguès and English by default by setting will be English.
-The file config / app.php look for locale and fallback_locale and change to `pt_BR`.
+Four languages currently available for Borgert CMS, Portuguese, Spanish, and English, by default we will be setting English.
+In the config/app.php file, look for locale and fallback_locale and change to `pt`.
-The files for translations are located in the `resources\lang\[en,pt_BR\admin\**`
+The files for translations are located in the `resources/lang/[en,pt,es,zh_cn]/[admin,blog]/**`
```php
'locale' => 'en',
'fallback_locale' => 'en',
```
-
-## PhpCsFixer
-* We use the command `php artisan borgert:phpcsfixer`, requires file phpcsfixer.phar
-
-
#### You want to join?
- Making a pull request or by creating an [issue] (https://github.com/odirleiborgert/borgert-cms/issues).
diff --git a/docs/pt-br/libraries.md b/docs/pt-br/libraries.md
index 059bb9e..96c8a58 100644
--- a/docs/pt-br/libraries.md
+++ b/docs/pt-br/libraries.md
@@ -7,20 +7,17 @@
* [laravel/laravel](https://github.com/laravel/laravel) - A PHP Framework For Web Artisans
* [thomaswelton/laravel-gravatar](https://github.com/thomaswelton/laravel-gravatar) - Image gravatar
* [kyslik/column-sortable](https://github.com/Kyslik/column-sortable) - Ordenação por colunas
+* [rap2hpoutre/laravel-log-viewer](https://github.com/rap2hpoutre/laravel-log-viewer) - Visualizador de logs
+* [nicolaslopezj/searchable](https://github.com/nicolaslopezj/searchable) - Buscador para blog
-----
#### Javascript Libraries
-* [Animate.css](http://daneden.github.io/animate.css/) - Animações com CSS
* [Bootstrap](http://getbootstrap.com) - Framework CSS
-* [Chart.js](http://chartjs.org) - Gráficos
* [Font Awesome](http://http://fontawesome.io/) - Ícones
* [Jquery](http://jquery.com) - Framework Javascript
-* [Jquery UI](http://jqueryui.com) - User Interface
* [Metis Menu](https://github.com/onokumus/metisMenu) - Menu toogle
-* [Pace](https://github.com/HubSpot/pace) - Loading páginas
-* [Slim Scroll](https://github.com/rochal/jQuery-slimScroll) - Barra de rolagem
* [Summer Note](https://github.com/summernote/summernote) - Editor de texto
* [Blueimp - jQuery File Upload](https://github.com/blueimp/jQuery-File-Upload) - Upload de arquivos (ajax)
diff --git a/docs/pt-br/usage.md b/docs/pt-br/usage.md
index 55bacae..1553bff 100644
--- a/docs/pt-br/usage.md
+++ b/docs/pt-br/usage.md
@@ -57,25 +57,20 @@ Route::group(['prefix' => 'blog', 'as' => 'blog.'], function () {
## Assets
-* Utilizando o comando `gulp watch` em background ficará escutando os arquivos LESS, JS que está no diretório `resources/assets/[js,less,sass]` e quando for detectado alguma neles são compilados e salvos na pasta `public/assets/[css,js]/`
+* Utilizando o comando `gulp watch` em background ficará escutando os arquivos SASS, JS que está no diretório `resources/assets/[admin,blog,auth,site]/[js,sass]` e quando for detectado alguma neles são compilados e salvos na pasta `public/assets/[admin,blog,auth,site]/[css,js]/`
## Idiomas
-Dois idiomas disponíveis no momento para o Rocket, Portuguès e Inglês, por padrão estaremos setando o inglês.
-No arquivo config/app.php procure por locale e fallback_locale e altere para `pt_BR`.
+Quatro idiomas disponíveis no momento para o Borgert CMS, Portuguès, Espanhol, e Inglês, por padrão estaremos setando o inglês.
+No arquivo config/app.php procure por locale e fallback_locale e altere para `pt`.
-Os arquivos para traduções estarão localizados na pasta `resources\lang\[en,pt_BR\admin\**`
+Os arquivos para traduções estarão localizados na pasta `resources/lang/[en,pt,es,zh_cn]/[admin,blog]/**`
```php
'locale' => 'en',
'fallback_locale' => 'en',
```
-
-## PhpCsFixer
-* Utilizamos o comando `php artisan borgert:phpcsfixer`, requer o arquivo phpcsfixer.phar
-
-
#### Quer participar?
- Fazendo um pull request ou criando uma [issue](https://github.com/odirleiborgert/borgert-cms/issues).
diff --git a/gulpfile.js b/gulpfile.js
index c3a7f1c..64c64b3 100644
--- a/gulpfile.js
+++ b/gulpfile.js
@@ -1,7 +1,5 @@
const elixir = require('laravel-elixir');
-require('laravel-elixir-vue-2');
-
/*
|--------------------------------------------------------------------------
| Elixir Asset Management
@@ -18,22 +16,24 @@ elixir.config.sourcemaps = false;
elixir(function(mix) {
- /**
- * Compile CSS with LESS, SASS or STYLUS
- */
+ // Auth
+ mix.sass(['auth/styles.scss'],'public/assets/auth/css/all.css');
+ mix.scripts(['auth/scripts.js'], 'public/assets/auth/js/all.js');
- mix.less('admin/app.less','public/assets/admin/css');
- // mix.stylus('admin/app.styl','public/assets/admin/css');
- // mix.sass('admin/app.sass','public/assets/admin/css');
+ // Admin
+ mix.sass(['admin/styles.scss'],'public/assets/admin/css/all.css');
+ mix.scripts(['admin/scripts.js'], 'public/assets/admin/js/all.js');
+ // Blog
+ mix.sass(['blog/styles.scss'],'public/assets/blog/css/all.css');
+ mix.scripts(['blog/scripts.js'], 'public/assets/blog/js/all.js');
- /**
- * Compile Javascript with Webpack, rollup or scripts
- */
+ // Site
+ mix.sass(['site/styles.scss'],'public/assets/site/css/all.css');
+ mix.scripts(['site/scripts.js'], 'public/assets/site/js/all.js');
- mix.webpack('app.js', 'public/assets/admin/js'); // for vue
- // mix.rollup('app.js', 'public/assets/admin/js');
- // mix.scripts('app.js', 'public/assets/admin/js');
- // mix.scriptsIn('public/js/some/directory'); // for directory
+ // Errors
+ mix.sass(['errors/styles.scss'],'public/assets/errors/css/all.css');
+ mix.scripts(['errors/scripts.js'], 'public/assets/errors/js/all.js');
});
diff --git a/package.json b/package.json
index e25553d..e34b644 100644
--- a/package.json
+++ b/package.json
@@ -5,16 +5,8 @@
"dev": "gulp watch"
},
"devDependencies": {
- "bootstrap-sass": "^3.0.0",
"gulp": "^3.9.1",
- "jquery": "^3.3.0",
- "laravel-elixir": "^6.0.0-9",
- "laravel-elixir-vue-2": "^0.2.0",
- "laravel-elixir-webpack-official": "^1.0.2",
- "lodash": "^4.16.2",
- "node-sass": "^4.7.2",
- "vue": "^2.0.1",
- "vue-resource": "^1.0.3"
+ "laravel-elixir": "^6.0.0-18"
},
"dependencies": {}
}
diff --git a/public/assets/admin/css/all.css b/public/assets/admin/css/all.css
new file mode 100644
index 0000000..6687d49
--- /dev/null
+++ b/public/assets/admin/css/all.css
@@ -0,0 +1,193 @@
+/* Global */
+html, body {
+ height: 100%;
+}
+
+body {
+ background: #ced6e0;
+ color: #273643;
+ font-size: 12px;
+}
+
+/* Fixed bug jquery file upload */
+.fade.in {
+ opacity: 1;
+}
+
+/* Custom */
+h1, h2, h3, h4, h5, h6 {
+ font-family: "Roboto Condensed", sans-serif;
+}
+
+a {
+ color: #273643;
+ outline: none;
+}
+
+a:hover {
+ color: #000;
+}
+
+.pull-right {
+ float: right;
+}
+
+.full-height {
+ height: 100%;
+}
+
+/* Buttons */
+.btn {
+ font-size: 13px;
+}
+
+.btn-primary, .btn-primary:hover {
+ background: #273643;
+ border-color: #273643;
+}
+
+.btn-danger, .btn-danger:hover {
+ background: #F9230E;
+ border-color: #F9230E;
+}
+
+/* Header */
+header.navbar {
+ background: #273643;
+}
+
+header .navbar-user {
+ line-height: 32px;
+}
+
+header .navbar-user li {
+ padding: 0 4px;
+}
+
+header .navbar-user, header .navbar-user a {
+ color: #c9c9c9;
+ font-size: 12px;
+}
+
+/* Sidebar */
+.sidebar {
+ padding: 0;
+ padding-top: 70px;
+ font-size: 14px;
+}
+
+/* Content */
+.main-content {
+ padding-top: 80px !important;
+ background: #F3F3F4;
+}
+
+/* Menu */
+.metismenu {
+ color: #273643;
+ list-style: none;
+ padding-left: 0;
+ font-size: 12px;
+}
+
+.metismenu li {
+ list-style: none;
+}
+
+.metismenu > li > a {
+ display: block;
+ padding: 6px 10px;
+ text-decoration: none;
+ border-top: 1px rgba(255, 255, 255, 0.5) solid;
+ border-bottom: 1px rgba(0, 0, 0, 0.1) solid;
+}
+
+.metismenu > li > a:hover {
+ background: #b0b7be;
+ color: #273643;
+}
+
+.metismenu .second-level {
+ padding-left: 20px;
+}
+
+.metismenu .second-level li a {
+ padding: 4px 10px;
+ display: block;
+}
+
+.metismenu .second-level li a:hover {
+ text-decoration: none;
+}
+
+/* Alerts */
+.alert {
+ font-size: 12px;
+}
+
+.alert ul {
+ margin-bottom: 0;
+ padding-left: 20px;
+}
+
+/* Forms */
+form label {
+ margin-bottom: 0;
+}
+
+form input, form select, form textarea, form .form-control {
+ font-size: 12px;
+ box-shadow: none !important;
+}
+
+/* Nav tags */
+.nav.nav-tabs {
+ margin-bottom: 10px;
+}
+
+.nav.nav-tabs .active {
+ margin-bottom: -2px;
+ background: #F3F3F4;
+ border-top: 2px #273643 solid;
+}
+
+/* Table */
+.table, .table .badge {
+ font-size: 12px;
+ font-weight: normal;
+}
+
+.table tbody tr td {
+ vertical-align: middle;
+}
+
+/* List group */
+.list-group-small {
+ font-size: 13px;
+}
+
+.list-group-small .list-group-item {
+ padding: 10px 15px;
+}
+
+/* Titles */
+.page-heading {
+ display: block;
+ padding-bottom: 20px;
+}
+
+.page-heading h2 {
+ font-size: 24px;
+ font-weight: 400;
+}
+
+.page-heading h2 small {
+ font-size: 16px;
+ font-weight: 300;
+}
+
+/* Footer */
+footer.footer {
+ font-size: 12px;
+ padding: 10px;
+}
diff --git a/public/assets/admin/css/app.css b/public/assets/admin/css/app.css
deleted file mode 100644
index 8f604c2..0000000
--- a/public/assets/admin/css/app.css
+++ /dev/null
@@ -1,6681 +0,0 @@
-@import url("https://fonts.googleapis.com/css?family=Open+Sans:300,400,600,700");
-h1,
-h2,
-h3,
-h4,
-h5,
-h6 {
- font-weight: 100;
-}
-h1 {
- font-size: 30px;
-}
-h2 {
- font-size: 24px;
-}
-h3 {
- font-size: 16px;
-}
-h4 {
- font-size: 14px;
-}
-h5 {
- font-size: 12px;
-}
-h6 {
- font-size: 10px;
-}
-h3,
-h4,
-h5 {
- margin-top: 5px;
- font-weight: 600;
-}
-.nav > li > a {
- color: #a7b1c2;
- font-weight: 600;
- padding: 14px 20px 14px 25px;
-}
-.nav.navbar-right > li > a {
- color: #999c9e;
-}
-.nav > li.active > a {
- color: #ffffff;
-}
-.navbar-default .nav > li > a:hover,
-.navbar-default .nav > li > a:focus {
- background-color: #293846;
- color: white;
-}
-.nav .open > a,
-.nav .open > a:hover,
-.nav .open > a:focus {
- background: #fff;
-}
-.nav.navbar-top-links > li > a:hover,
-.nav.navbar-top-links > li > a:focus {
- background-color: transparent;
-}
-.nav > li > a i {
- margin-right: 6px;
-}
-.navbar {
- border: 0;
-}
-.navbar-default {
- background-color: transparent;
- border-color: #2F4050;
-}
-.navbar-top-links li {
- display: inline-block;
-}
-.navbar-top-links li:last-child {
- margin-right: 40px;
-}
-.body-small .navbar-top-links li:last-child {
- margin-right: 0;
-}
-.navbar-top-links li a {
- padding: 20px 10px;
- min-height: 50px;
-}
-.dropdown-menu {
- border: medium none;
- border-radius: 3px;
- box-shadow: 0 0 3px rgba(86, 96, 117, 0.7);
- display: none;
- float: left;
- font-size: 12px;
- left: 0;
- list-style: none outside none;
- padding: 0;
- position: absolute;
- text-shadow: none;
- top: 100%;
- z-index: 1000;
-}
-.dropdown-menu > li > a {
- border-radius: 3px;
- color: inherit;
- line-height: 25px;
- margin: 4px;
- text-align: left;
- font-weight: normal;
-}
-.dropdown-menu > li > a.font-bold {
- font-weight: 600;
-}
-.navbar-top-links .dropdown-menu li {
- display: block;
-}
-.navbar-top-links .dropdown-menu li:last-child {
- margin-right: 0;
-}
-.navbar-top-links .dropdown-menu li a {
- padding: 3px 20px;
- min-height: 0;
-}
-.navbar-top-links .dropdown-menu li a div {
- white-space: normal;
-}
-.navbar-top-links .dropdown-messages,
-.navbar-top-links .dropdown-tasks,
-.navbar-top-links .dropdown-alerts {
- width: 310px;
- min-width: 0;
-}
-.navbar-top-links .dropdown-messages {
- margin-left: 5px;
-}
-.navbar-top-links .dropdown-tasks {
- margin-left: -59px;
-}
-.navbar-top-links .dropdown-alerts {
- margin-left: -123px;
-}
-.navbar-top-links .dropdown-user {
- right: 0;
- left: auto;
-}
-.dropdown-messages,
-.dropdown-alerts {
- padding: 10px 10px 10px 10px;
-}
-.dropdown-messages li a,
-.dropdown-alerts li a {
- font-size: 12px;
-}
-.dropdown-messages li em,
-.dropdown-alerts li em {
- font-size: 10px;
-}
-.nav.navbar-top-links .dropdown-alerts a {
- font-size: 12px;
-}
-.nav-header {
- padding: 33px 25px;
-}
-.pace-done .nav-header {
- -webkit-transition: all 0.4s;
- transition: all 0.4s;
-}
-.nav > li.active {
- border-left: 2px solid #425a70;
- background: #293846;
-}
-.nav.nav-second-level > li.active {
- border: none;
-}
-.nav.nav-second-level.collapse[style] {
- height: auto !important;
-}
-.nav-header a {
- color: #DFE4ED;
-}
-.nav-header .text-muted {
- color: #8095a8;
-}
-.minimalize-styl-2 {
- padding: 4px 12px;
- margin: 14px 5px 5px 20px;
- font-size: 14px;
- float: left;
-}
-.navbar-form-custom {
- float: left;
- height: 50px;
- padding: 0;
- width: 200px;
- display: inline-table;
-}
-.navbar-form-custom .form-group {
- margin-bottom: 0;
-}
-.nav.navbar-top-links a {
- font-size: 14px;
-}
-.navbar-form-custom .form-control {
- background: none repeat scroll 0 0 rgba(0, 0, 0, 0);
- border: medium none;
- font-size: 14px;
- height: 60px;
- margin: 0;
- z-index: 2000;
-}
-.count-info .label {
- line-height: 12px;
- padding: 2px 5px;
- position: absolute;
- right: 6px;
- top: 12px;
-}
-.arrow {
- float: right;
-}
-.fa.arrow:before {
- content: "\f104";
-}
-.active > a > .fa.arrow:before {
- content: "\f107";
-}
-.nav-second-level li,
-.nav-third-level li {
- border-bottom: none !important;
-}
-.nav-second-level li a {
- padding: 7px 10px 7px 10px;
- padding-left: 52px;
-}
-.nav-third-level li a {
- padding-left: 62px;
-}
-.nav-second-level li:last-child {
- margin-bottom: 10px;
-}
-body:not(.fixed-sidebar):not(.canvas-menu).mini-navbar .nav li:hover > .nav-second-level,
-.mini-navbar .nav li:focus > .nav-second-level {
- display: block;
- border-radius: 0 2px 2px 0;
- min-width: 140px;
- height: auto;
-}
-body.mini-navbar .navbar-default .nav > li > .nav-second-level li a {
- font-size: 12px;
- border-radius: 3px;
-}
-.fixed-nav .slimScrollDiv #side-menu {
- padding-bottom: 60px;
-}
-.mini-navbar .nav-second-level li a {
- padding: 10px 10px 10px 15px;
-}
-.mini-navbar .nav-second-level {
- position: absolute;
- left: 70px;
- top: 0;
- background-color: #2F4050;
- padding: 10px 10px 10px 10px;
- font-size: 12px;
-}
-.canvas-menu.mini-navbar .nav-second-level {
- background: #293846;
-}
-.mini-navbar li.active .nav-second-level {
- left: 65px;
-}
-.navbar-default .special_link a {
- background: #273643;
- color: white;
-}
-.navbar-default .special_link a:hover {
- background: #17987e !important;
- color: white;
-}
-.navbar-default .special_link a span.label {
- background: #fff;
- color: #273643;
-}
-.navbar-default .landing_link a {
- background: #2d3e4d;
- color: white;
-}
-.navbar-default .landing_link a:hover {
- background: #273643 !important;
- color: white;
-}
-.navbar-default .landing_link a span.label {
- background: #fff;
- color: #2d3e4d;
-}
-.logo-element {
- text-align: center;
- font-size: 18px;
- font-weight: 600;
- color: white;
- display: none;
- padding: 18px 0;
-}
-.pace-done .navbar-static-side,
-.pace-done .nav-header,
-.pace-done li.active,
-.pace-done #page-wrapper,
-.pace-done .footer {
- -webkit-transition: all 0.4s;
- transition: all 0.4s;
-}
-.navbar-fixed-top {
- background: #fff;
- -webkit-transition-duration: 0.4s;
- transition-duration: 0.4s;
- border-bottom: 1px solid #e7eaec !important;
- z-index: 2030;
-}
-.navbar-fixed-top,
-.navbar-static-top {
- background: #f3f3f4;
-}
-.fixed-nav #wrapper {
- margin-top: 0;
-}
-body.fixed-nav #wrapper .navbar-static-side,
-body.fixed-nav #wrapper #page-wrapper {
- margin-top: 60px;
-}
-body.top-navigation.fixed-nav #wrapper #page-wrapper {
- margin-top: 0;
-}
-body.fixed-nav.fixed-nav-basic .navbar-fixed-top {
- left: 220px;
-}
-body.fixed-nav.fixed-nav-basic.mini-navbar .navbar-fixed-top {
- left: 70px;
-}
-body.fixed-nav.fixed-nav-basic.fixed-sidebar.mini-navbar .navbar-fixed-top {
- left: 0;
-}
-body.fixed-nav.fixed-nav-basic #wrapper .navbar-static-side {
- margin-top: 0;
-}
-body.fixed-nav.fixed-nav-basic.body-small .navbar-fixed-top {
- left: 0;
-}
-body.fixed-nav.fixed-nav-basic.fixed-sidebar.mini-navbar.body-small .navbar-fixed-top {
- left: 220px;
-}
-.fixed-nav .minimalize-styl-2 {
- margin: 14px 5px 5px 15px;
-}
-.body-small .navbar-fixed-top {
- margin-left: 0;
-}
-body.mini-navbar .navbar-static-side {
- width: 70px;
-}
-body.mini-navbar .profile-element,
-body.mini-navbar .nav-label,
-body.mini-navbar .navbar-default .nav li a span {
- display: none;
-}
-body.canvas-menu .profile-element {
- display: block;
-}
-body:not(.fixed-sidebar):not(.canvas-menu).mini-navbar .nav-second-level {
- display: none;
-}
-body.mini-navbar .navbar-default .nav > li > a {
- font-size: 16px;
-}
-body.mini-navbar .logo-element {
- display: block;
-}
-body.canvas-menu .logo-element {
- display: none;
-}
-body.mini-navbar .nav-header {
- padding: 0;
- background-color: #1c2630;
-}
-body.canvas-menu .nav-header {
- padding: 33px 25px;
-}
-body.mini-navbar #page-wrapper {
- margin: 0 0 0 70px;
-}
-body.fixed-sidebar.mini-navbar .footer,
-body.canvas-menu.mini-navbar .footer {
- margin: 0 0 0 0 !important;
-}
-body.canvas-menu.mini-navbar #page-wrapper,
-body.canvas-menu.mini-navbar .footer {
- margin: 0 0 0 0;
-}
-body.fixed-sidebar .navbar-static-side,
-body.canvas-menu .navbar-static-side {
- position: fixed;
- width: 220px;
- z-index: 1001;
- height: 100%;
-}
-body.fixed-sidebar.mini-navbar .navbar-static-side {
- width: 0;
-}
-body.fixed-sidebar.mini-navbar #page-wrapper {
- margin: 0 0 0 0;
-}
-body.body-small.fixed-sidebar.mini-navbar #page-wrapper {
- margin: 0 0 0 220px;
-}
-body.body-small.fixed-sidebar.mini-navbar .navbar-static-side {
- width: 220px;
-}
-.fixed-sidebar.mini-navbar .nav li:focus > .nav-second-level,
-.canvas-menu.mini-navbar .nav li:focus > .nav-second-level {
- display: block;
- height: auto;
-}
-body.fixed-sidebar.mini-navbar .navbar-default .nav > li > .nav-second-level li a {
- font-size: 12px;
- border-radius: 3px;
-}
-body.canvas-menu.mini-navbar .navbar-default .nav > li > .nav-second-level li a {
- font-size: 13px;
- border-radius: 3px;
-}
-.fixed-sidebar.mini-navbar .nav-second-level li a,
-.canvas-menu.mini-navbar .nav-second-level li a {
- padding: 10px 10px 10px 15px;
-}
-.fixed-sidebar.mini-navbar .nav-second-level,
-.canvas-menu.mini-navbar .nav-second-level {
- position: relative;
- padding: 0;
- font-size: 13px;
-}
-.fixed-sidebar.mini-navbar li.active .nav-second-level,
-.canvas-menu.mini-navbar li.active .nav-second-level {
- left: 0;
-}
-body.fixed-sidebar.mini-navbar .navbar-default .nav > li > a,
-body.canvas-menu.mini-navbar .navbar-default .nav > li > a {
- font-size: 13px;
-}
-body.fixed-sidebar.mini-navbar .nav-label,
-body.fixed-sidebar.mini-navbar .navbar-default .nav li a span,
-body.canvas-menu.mini-navbar .nav-label,
-body.canvas-menu.mini-navbar .navbar-default .nav li a span {
- display: inline;
-}
-body.canvas-menu.mini-navbar .navbar-default .nav li .profile-element a span {
- display: block;
-}
-.canvas-menu.mini-navbar .nav-second-level li a,
-.fixed-sidebar.mini-navbar .nav-second-level li a {
- padding: 7px 10px 7px 52px;
-}
-.fixed-sidebar.mini-navbar .nav-second-level,
-.canvas-menu.mini-navbar .nav-second-level {
- left: 0;
-}
-body.canvas-menu nav.navbar-static-side {
- z-index: 2001;
- background: #2f4050;
- height: 100%;
- position: fixed;
- display: none;
-}
-body.canvas-menu.mini-navbar nav.navbar-static-side {
- display: block;
- width: 220px;
-}
-.top-navigation #page-wrapper {
- margin-left: 0;
-}
-.top-navigation .navbar-nav .dropdown-menu > .active > a {
- background: white;
- color: #273643;
- font-weight: bold;
-}
-.white-bg .navbar-fixed-top,
-.white-bg .navbar-static-top {
- background: #fff;
-}
-.top-navigation .navbar {
- margin-bottom: 0;
-}
-.top-navigation .nav > li > a {
- padding: 15px 20px;
- color: #676a6c;
-}
-.top-navigation .nav > li a:hover,
-.top-navigation .nav > li a:focus {
- background: #fff;
- color: #273643;
-}
-.top-navigation .nav > li.active {
- background: #fff;
- border: none;
-}
-.top-navigation .nav > li.active > a {
- color: #273643;
-}
-.top-navigation .navbar-right {
- margin-right: 10px;
-}
-.top-navigation .navbar-nav .dropdown-menu {
- box-shadow: none;
- border: 1px solid #e7eaec;
-}
-.top-navigation .dropdown-menu > li > a {
- margin: 0;
- padding: 7px 20px;
-}
-.navbar .dropdown-menu {
- margin-top: 0;
-}
-.top-navigation .navbar-brand {
- background: #273643;
- color: #fff;
- padding: 15px 25px;
-}
-.top-navigation .navbar-top-links li:last-child {
- margin-right: 0;
-}
-.top-navigation.mini-navbar #page-wrapper,
-.top-navigation.body-small.fixed-sidebar.mini-navbar #page-wrapper,
-.mini-navbar .top-navigation #page-wrapper,
-.body-small.fixed-sidebar.mini-navbar .top-navigation #page-wrapper,
-.canvas-menu #page-wrapper {
- margin: 0;
-}
-.top-navigation.fixed-nav #wrapper,
-.fixed-nav #wrapper.top-navigation {
- margin-top: 50px;
-}
-.top-navigation .footer.fixed {
- margin-left: 0 !important;
-}
-.top-navigation .wrapper.wrapper-content {
- padding: 40px;
-}
-.top-navigation.body-small .wrapper.wrapper-content,
-.body-small .top-navigation .wrapper.wrapper-content {
- padding: 40px 0 40px 0;
-}
-.navbar-toggle {
- background-color: #273643;
- color: #fff;
- padding: 6px 12px;
- font-size: 14px;
-}
-.top-navigation .navbar-nav .open .dropdown-menu > li > a,
-.top-navigation .navbar-nav .open .dropdown-menu .dropdown-header {
- padding: 10px 15px 10px 20px;
-}
-@media (max-width: 768px) {
- .top-navigation .navbar-header {
- display: block;
- float: none;
- }
-}
-.menu-visible-lg,
-.menu-visible-md {
- display: none !important;
-}
-@media (min-width: 1200px) {
- .menu-visible-lg {
- display: block !important;
- }
-}
-@media (min-width: 992px) {
- .menu-visible-md {
- display: block !important;
- }
-}
-@media (max-width: 767px) {
- .menu-visible-md {
- display: block !important;
- }
- .menu-visible-lg {
- display: block !important;
- }
-}
-.btn {
- border-radius: 3px;
-}
-.float-e-margins .btn {
- margin-bottom: 5px;
-}
-.btn-w-m {
- min-width: 120px;
-}
-.btn-primary.btn-outline {
- color: #273643;
-}
-.btn-success.btn-outline {
- color: #06cc51;
-}
-.btn-info.btn-outline {
- color: #23c6c8;
-}
-.btn-warning.btn-outline {
- color: #F1C40F;
-}
-.btn-danger.btn-outline {
- color: #f9311d;
-}
-.btn-primary.btn-outline:hover,
-.btn-success.btn-outline:hover,
-.btn-info.btn-outline:hover,
-.btn-warning.btn-outline:hover,
-.btn-danger.btn-outline:hover {
- color: #fff;
-}
-.btn-primary {
- background-color: #273643;
- border-color: #273643;
- color: #FFFFFF;
-}
-.btn-primary:hover,
-.btn-primary:focus,
-.btn-primary:active,
-.btn-primary.active,
-.open .dropdown-toggle.btn-primary,
-.btn-primary:active:focus,
-.btn-primary:active:hover,
-.btn-primary.active:hover,
-.btn-primary.active:focus {
- background-color: #212e39;
- border-color: #212e39;
- color: #FFFFFF;
-}
-.btn-primary:active,
-.btn-primary.active,
-.open .dropdown-toggle.btn-primary {
- background-image: none;
-}
-.btn-primary.disabled,
-.btn-primary.disabled:hover,
-.btn-primary.disabled:focus,
-.btn-primary.disabled:active,
-.btn-primary.disabled.active,
-.btn-primary[disabled],
-.btn-primary[disabled]:hover,
-.btn-primary[disabled]:focus,
-.btn-primary[disabled]:active,
-.btn-primary.active[disabled],
-fieldset[disabled] .btn-primary,
-fieldset[disabled] .btn-primary:hover,
-fieldset[disabled] .btn-primary:focus,
-fieldset[disabled] .btn-primary:active,
-fieldset[disabled] .btn-primary.active {
- background-color: #2f4050;
- border-color: #2f4050;
-}
-.btn-success {
- background-color: #06cc51;
- border-color: #06cc51;
- color: #FFFFFF;
-}
-.btn-success:hover,
-.btn-success:focus,
-.btn-success:active,
-.btn-success.active,
-.open .dropdown-toggle.btn-success,
-.btn-success:active:focus,
-.btn-success:active:hover,
-.btn-success.active:hover,
-.btn-success.active:focus {
- background-color: #06bd4b;
- border-color: #06bd4b;
- color: #FFFFFF;
-}
-.btn-success:active,
-.btn-success.active,
-.open .dropdown-toggle.btn-success {
- background-image: none;
-}
-.btn-success.disabled,
-.btn-success.disabled:hover,
-.btn-success.disabled:focus,
-.btn-success.disabled:active,
-.btn-success.disabled.active,
-.btn-success[disabled],
-.btn-success[disabled]:hover,
-.btn-success[disabled]:focus,
-.btn-success[disabled]:active,
-.btn-success.active[disabled],
-fieldset[disabled] .btn-success,
-fieldset[disabled] .btn-success:hover,
-fieldset[disabled] .btn-success:focus,
-fieldset[disabled] .btn-success:active,
-fieldset[disabled] .btn-success.active {
- background-color: #07e059;
- border-color: #07e059;
-}
-.btn-info {
- background-color: #23c6c8;
- border-color: #23c6c8;
- color: #FFFFFF;
-}
-.btn-info:hover,
-.btn-info:focus,
-.btn-info:active,
-.btn-info.active,
-.open .dropdown-toggle.btn-info,
-.btn-info:active:focus,
-.btn-info:active:hover,
-.btn-info.active:hover,
-.btn-info.active:focus {
- background-color: #21b9bb;
- border-color: #21b9bb;
- color: #FFFFFF;
-}
-.btn-info:active,
-.btn-info.active,
-.open .dropdown-toggle.btn-info {
- background-image: none;
-}
-.btn-info.disabled,
-.btn-info.disabled:hover,
-.btn-info.disabled:focus,
-.btn-info.disabled:active,
-.btn-info.disabled.active,
-.btn-info[disabled],
-.btn-info[disabled]:hover,
-.btn-info[disabled]:focus,
-.btn-info[disabled]:active,
-.btn-info.active[disabled],
-fieldset[disabled] .btn-info,
-fieldset[disabled] .btn-info:hover,
-fieldset[disabled] .btn-info:focus,
-fieldset[disabled] .btn-info:active,
-fieldset[disabled] .btn-info.active {
- background-color: #26d7d9;
- border-color: #26d7d9;
-}
-.btn-default {
- color: inherit;
- background: white;
- border: 1px solid #e7eaec;
-}
-.btn-default:hover,
-.btn-default:focus,
-.btn-default:active,
-.btn-default.active,
-.open .dropdown-toggle.btn-default,
-.btn-default:active:focus,
-.btn-default:active:hover,
-.btn-default.active:hover,
-.btn-default.active:focus {
- color: inherit;
- border: 1px solid #d2d2d2;
-}
-.btn-default:active,
-.btn-default.active,
-.open .dropdown-toggle.btn-default {
- box-shadow: 0 2px 5px rgba(0, 0, 0, 0.15) inset;
-}
-.btn-default.disabled,
-.btn-default.disabled:hover,
-.btn-default.disabled:focus,
-.btn-default.disabled:active,
-.btn-default.disabled.active,
-.btn-default[disabled],
-.btn-default[disabled]:hover,
-.btn-default[disabled]:focus,
-.btn-default[disabled]:active,
-.btn-default.active[disabled],
-fieldset[disabled] .btn-default,
-fieldset[disabled] .btn-default:hover,
-fieldset[disabled] .btn-default:focus,
-fieldset[disabled] .btn-default:active,
-fieldset[disabled] .btn-default.active {
- color: #cacaca;
-}
-.btn-warning {
- background-color: #F1C40F;
- border-color: #F1C40F;
- color: #FFFFFF;
-}
-.btn-warning:hover,
-.btn-warning:focus,
-.btn-warning:active,
-.btn-warning.active,
-.open .dropdown-toggle.btn-warning,
-.btn-warning:active:focus,
-.btn-warning:active:hover,
-.btn-warning.active:hover,
-.btn-warning.active:focus {
- background-color: #e3b90d;
- border-color: #e3b90d;
- color: #FFFFFF;
-}
-.btn-warning:active,
-.btn-warning.active,
-.open .dropdown-toggle.btn-warning {
- background-image: none;
-}
-.btn-warning.disabled,
-.btn-warning.disabled:hover,
-.btn-warning.disabled:focus,
-.btn-warning.disabled:active,
-.btn-warning.disabled.active,
-.btn-warning[disabled],
-.btn-warning[disabled]:hover,
-.btn-warning[disabled]:focus,
-.btn-warning[disabled]:active,
-.btn-warning.active[disabled],
-fieldset[disabled] .btn-warning,
-fieldset[disabled] .btn-warning:hover,
-fieldset[disabled] .btn-warning:focus,
-fieldset[disabled] .btn-warning:active,
-fieldset[disabled] .btn-warning.active {
- background-color: #f2c922;
- border-color: #f2c922;
-}
-.btn-danger {
- background-color: #f9311d;
- border-color: #f9311d;
- color: #FFFFFF;
-}
-.btn-danger:hover,
-.btn-danger:focus,
-.btn-danger:active,
-.btn-danger.active,
-.open .dropdown-toggle.btn-danger,
-.btn-danger:active:focus,
-.btn-danger:active:hover,
-.btn-danger.active:hover,
-.btn-danger.active:focus {
- background-color: #f9230e;
- border-color: #f9230e;
- color: #FFFFFF;
-}
-.btn-danger:active,
-.btn-danger.active,
-.open .dropdown-toggle.btn-danger {
- background-image: none;
-}
-.btn-danger.disabled,
-.btn-danger.disabled:hover,
-.btn-danger.disabled:focus,
-.btn-danger.disabled:active,
-.btn-danger.disabled.active,
-.btn-danger[disabled],
-.btn-danger[disabled]:hover,
-.btn-danger[disabled]:focus,
-.btn-danger[disabled]:active,
-.btn-danger.active[disabled],
-fieldset[disabled] .btn-danger,
-fieldset[disabled] .btn-danger:hover,
-fieldset[disabled] .btn-danger:focus,
-fieldset[disabled] .btn-danger:active,
-fieldset[disabled] .btn-danger.active {
- background-color: #fa4331;
- border-color: #fa4331;
-}
-.btn-link {
- color: inherit;
-}
-.btn-link:hover,
-.btn-link:focus,
-.btn-link:active,
-.btn-link.active,
-.open .dropdown-toggle.btn-link {
- color: #273643;
- text-decoration: none;
-}
-.btn-link:active,
-.btn-link.active,
-.open .dropdown-toggle.btn-link {
- background-image: none;
-}
-.btn-link.disabled,
-.btn-link.disabled:hover,
-.btn-link.disabled:focus,
-.btn-link.disabled:active,
-.btn-link.disabled.active,
-.btn-link[disabled],
-.btn-link[disabled]:hover,
-.btn-link[disabled]:focus,
-.btn-link[disabled]:active,
-.btn-link.active[disabled],
-fieldset[disabled] .btn-link,
-fieldset[disabled] .btn-link:hover,
-fieldset[disabled] .btn-link:focus,
-fieldset[disabled] .btn-link:active,
-fieldset[disabled] .btn-link.active {
- color: #cacaca;
-}
-.btn-white {
- color: inherit;
- background: white;
- border: 1px solid #e7eaec;
-}
-.btn-white:hover,
-.btn-white:focus,
-.btn-white:active,
-.btn-white.active,
-.open .dropdown-toggle.btn-white,
-.btn-white:active:focus,
-.btn-white:active:hover,
-.btn-white.active:hover,
-.btn-white.active:focus {
- color: inherit;
- border: 1px solid #d2d2d2;
-}
-.btn-white:active,
-.btn-white.active {
- box-shadow: 0 2px 5px rgba(0, 0, 0, 0.15) inset;
-}
-.btn-white:active,
-.btn-white.active,
-.open .dropdown-toggle.btn-white {
- background-image: none;
-}
-.btn-white.disabled,
-.btn-white.disabled:hover,
-.btn-white.disabled:focus,
-.btn-white.disabled:active,
-.btn-white.disabled.active,
-.btn-white[disabled],
-.btn-white[disabled]:hover,
-.btn-white[disabled]:focus,
-.btn-white[disabled]:active,
-.btn-white.active[disabled],
-fieldset[disabled] .btn-white,
-fieldset[disabled] .btn-white:hover,
-fieldset[disabled] .btn-white:focus,
-fieldset[disabled] .btn-white:active,
-fieldset[disabled] .btn-white.active {
- color: #cacaca;
-}
-.form-control,
-.form-control:focus,
-.has-error .form-control:focus,
-.has-success .form-control:focus,
-.has-warning .form-control:focus,
-.navbar-collapse,
-.navbar-form,
-.navbar-form-custom .form-control:focus,
-.navbar-form-custom .form-control:hover,
-.open .btn.dropdown-toggle,
-.panel,
-.popover,
-.progress,
-.progress-bar {
- box-shadow: none;
-}
-.btn-outline {
- color: inherit;
- background-color: transparent;
- -webkit-transition: all .5s;
- transition: all .5s;
-}
-.btn-rounded {
- border-radius: 50px;
-}
-.btn-large-dim {
- width: 90px;
- height: 90px;
- font-size: 42px;
-}
-button.dim {
- display: inline-block;
- text-decoration: none;
- text-transform: uppercase;
- text-align: center;
- padding-top: 6px;
- margin-right: 10px;
- position: relative;
- cursor: pointer;
- border-radius: 5px;
- font-weight: 600;
- margin-bottom: 20px !important;
-}
-button.dim:active {
- top: 3px;
-}
-button.btn-primary.dim {
- box-shadow: inset 0 0 0 #1c2630, 0 5px 0 0 #1c2630, 0 10px 5px #999;
-}
-button.btn-primary.dim:active {
- box-shadow: inset 0 0 0 #1c2630, 0 2px 0 0 #1c2630, 0 5px 3px #999;
-}
-button.btn-default.dim {
- box-shadow: inset 0 0 0 #aeb4b9, 0 5px 0 0 #aeb4b9, 0 10px 5px #999;
-}
-button.btn-default.dim:active {
- box-shadow: inset 0 0 0 #aeb4b9, 0 2px 0 0 #aeb4b9, 0 5px 3px #999;
-}
-button.btn-warning.dim {
- box-shadow: inset 0 0 0 #d5ad0c, 0 5px 0 0 #d5ad0c, 0 10px 5px #999;
-}
-button.btn-warning.dim:active {
- box-shadow: inset 0 0 0 #d5ad0c, 0 2px 0 0 #d5ad0c, 0 5px 3px #999;
-}
-button.btn-info.dim {
- box-shadow: inset 0 0 0 #1eacae, 0 5px 0 0 #1eacae, 0 10px 5px #999;
-}
-button.btn-info.dim:active {
- box-shadow: inset 0 0 0 #1eacae, 0 2px 0 0 #1eacae, 0 5px 3px #999;
-}
-button.btn-success.dim {
- box-shadow: inset 0 0 0 #05ae45, 0 5px 0 0 #05ae45, 0 10px 5px #999;
-}
-button.btn-success.dim:active {
- box-shadow: inset 0 0 0 #05ae45, 0 2px 0 0 #05ae45, 0 5px 3px #999;
-}
-button.btn-danger.dim {
- box-shadow: inset 0 0 0 #f11c06, 0 5px 0 0 #f11c06, 0 10px 5px #999;
-}
-button.btn-danger.dim:active {
- box-shadow: inset 0 0 0 #f11c06, 0 2px 0 0 #f11c06, 0 5px 3px #999;
-}
-button.dim:before {
- font-size: 50px;
- line-height: 1em;
- font-weight: normal;
- color: #fff;
- display: block;
- padding-top: 10px;
-}
-button.dim:active:before {
- top: 7px;
- font-size: 50px;
-}
-.btn:focus {
- outline: none !important;
-}
-.label {
- background-color: #D1DADE;
- color: #a3aaaf;
- font-family: 'Open Sans';
- font-size: 10px;
- font-weight: 600;
- padding: 3px 8px;
- text-shadow: none;
-}
-.badge {
- background-color: #D1DADE;
- color: #a3aaaf;
- font-family: 'Open Sans';
- font-size: 11px;
- font-weight: 600;
- padding-bottom: 4px;
- padding-left: 6px;
- padding-right: 6px;
- text-shadow: none;
-}
-.label-primary,
-.badge-primary {
- background-color: #273643;
- color: #FFFFFF;
-}
-.label-success,
-.badge-success {
- background-color: #06cc51;
- color: #FFFFFF;
-}
-.label-warning,
-.badge-warning {
- background-color: #F1C40F;
- color: #FFFFFF;
-}
-.label-warning-light,
-.badge-warning-light {
- background-color: #F1C40F;
- color: #ffffff;
-}
-.label-danger,
-.badge-danger {
- background-color: #f9311d;
- color: #FFFFFF;
-}
-.label-info,
-.badge-info {
- background-color: #23c6c8;
- color: #FFFFFF;
-}
-.label-inverse,
-.badge-inverse {
- background-color: #262626;
- color: #FFFFFF;
-}
-.label-white,
-.badge-white {
- background-color: #FFFFFF;
- color: #5E5E5E;
-}
-.label-white,
-.badge-disable {
- background-color: #2A2E36;
- color: #8B91A0;
-}
-/* TOOGLE SWICH */
-.onoffswitch {
- position: relative;
- width: 64px;
- -webkit-user-select: none;
- -moz-user-select: none;
- -ms-user-select: none;
-}
-.onoffswitch-checkbox {
- display: none;
-}
-.onoffswitch-label {
- display: block;
- overflow: hidden;
- cursor: pointer;
- border: 2px solid #273643;
- border-radius: 2px;
-}
-.onoffswitch-inner {
- width: 200%;
- margin-left: -100%;
- -webkit-transition: margin 0.3s ease-in 0s;
- transition: margin 0.3s ease-in 0s;
-}
-.onoffswitch-inner:before,
-.onoffswitch-inner:after {
- float: left;
- width: 50%;
- height: 20px;
- padding: 0;
- line-height: 20px;
- font-size: 12px;
- color: white;
- font-family: Trebuchet, Arial, sans-serif;
- font-weight: bold;
- box-sizing: border-box;
-}
-.onoffswitch-inner:before {
- content: "ON";
- padding-left: 10px;
- background-color: #273643;
- color: #FFFFFF;
-}
-.onoffswitch-inner:after {
- content: "OFF";
- padding-right: 10px;
- background-color: #FFFFFF;
- color: #999999;
- text-align: right;
-}
-.onoffswitch-switch {
- width: 20px;
- margin: 0;
- background: #FFFFFF;
- border: 2px solid #273643;
- border-radius: 2px;
- position: absolute;
- top: 0;
- bottom: 0;
- right: 44px;
- -webkit-transition: all 0.3s ease-in 0s;
- transition: all 0.3s ease-in 0s;
-}
-.onoffswitch-checkbox:checked + .onoffswitch-label .onoffswitch-inner {
- margin-left: 0;
-}
-.onoffswitch-checkbox:checked + .onoffswitch-label .onoffswitch-switch {
- right: 0;
-}
-/* CHOSEN PLUGIN */
-.chosen-container-single .chosen-single {
- background: #ffffff;
- box-shadow: none;
- -moz-box-sizing: border-box;
- background-color: #FFFFFF;
- border: 1px solid #CBD5DD;
- border-radius: 2px;
- cursor: text;
- height: auto !important;
- margin: 0;
- min-height: 30px;
- overflow: hidden;
- padding: 4px 12px;
- position: relative;
- width: 100%;
-}
-.chosen-container-multi .chosen-choices li.search-choice {
- background: #f1f1f1;
- border: 1px solid #ededed;
- border-radius: 2px;
- box-shadow: none;
- color: #333333;
- cursor: default;
- line-height: 13px;
- margin: 3px 0 3px 5px;
- padding: 3px 20px 3px 5px;
- position: relative;
-}
-/* PAGINATIN */
-.pagination > .active > a,
-.pagination > .active > span,
-.pagination > .active > a:hover,
-.pagination > .active > span:hover,
-.pagination > .active > a:focus,
-.pagination > .active > span:focus {
- background-color: #f4f4f4;
- border-color: #DDDDDD;
- color: inherit;
- cursor: default;
- z-index: 2;
-}
-.pagination > li > a,
-.pagination > li > span {
- background-color: #FFFFFF;
- border: 1px solid #DDDDDD;
- color: inherit;
- float: left;
- line-height: 1.42857;
- margin-left: -1px;
- padding: 4px 10px;
- position: relative;
- text-decoration: none;
-}
-/* TOOLTIPS */
-.tooltip-inner {
- background-color: #2F4050;
-}
-.tooltip.top .tooltip-arrow {
- border-top-color: #2F4050;
-}
-.tooltip.right .tooltip-arrow {
- border-right-color: #2F4050;
-}
-.tooltip.bottom .tooltip-arrow {
- border-bottom-color: #2F4050;
-}
-.tooltip.left .tooltip-arrow {
- border-left-color: #2F4050;
-}
-/* EASY PIE CHART*/
-.easypiechart {
- position: relative;
- text-align: center;
-}
-.easypiechart .h2 {
- margin-left: 10px;
- margin-top: 10px;
- display: inline-block;
-}
-.easypiechart canvas {
- top: 0;
- left: 0;
-}
-.easypiechart .easypie-text {
- line-height: 1;
- position: absolute;
- top: 33px;
- width: 100%;
- z-index: 1;
-}
-.easypiechart img {
- margin-top: -4px;
-}
-.jqstooltip {
- box-sizing: content-box;
-}
-/* FULLCALENDAR */
-.fc-state-default {
- background-color: #ffffff;
- background-image: none;
- background-repeat: repeat-x;
- box-shadow: none;
- color: #333333;
- text-shadow: none;
-}
-.fc-state-default {
- border: 1px solid;
-}
-.fc-button {
- color: inherit;
- border: 1px solid #e7eaec;
- cursor: pointer;
- display: inline-block;
- height: 1.9em;
- line-height: 1.9em;
- overflow: hidden;
- padding: 0 0.6em;
- position: relative;
- white-space: nowrap;
-}
-.fc-state-active {
- background-color: #273643;
- border-color: #273643;
- color: #ffffff;
-}
-.fc-header-title h2 {
- font-size: 16px;
- font-weight: 600;
- color: inherit;
-}
-.fc-content .fc-widget-header,
-.fc-content .fc-widget-content {
- border-color: #e7eaec;
- font-weight: normal;
-}
-.fc-border-separate tbody {
- background-color: #F8F8F8;
-}
-.fc-state-highlight {
- background: none repeat scroll 0 0 #FCF8E3;
-}
-.external-event {
- padding: 5px 10px;
- border-radius: 2px;
- cursor: pointer;
- margin-bottom: 5px;
-}
-.fc-ltr .fc-event-hori.fc-event-end,
-.fc-rtl .fc-event-hori.fc-event-start {
- border-radius: 2px;
-}
-.fc-event,
-.fc-agenda .fc-event-time,
-.fc-event a {
- padding: 4px 6px;
- background-color: #273643;
- /* background color */
- border-color: #273643;
- /* border color */
-}
-.fc-event-time,
-.fc-event-title {
- color: #717171;
- padding: 0 1px;
-}
-.ui-calendar .fc-event-time,
-.ui-calendar .fc-event-title {
- color: #fff;
-}
-/* Chat */
-.chat-activity-list .chat-element {
- border-bottom: 1px solid #e7eaec;
-}
-.chat-element:first-child {
- margin-top: 0;
-}
-.chat-element {
- padding-bottom: 15px;
-}
-.chat-element,
-.chat-element .media {
- margin-top: 15px;
-}
-.chat-element,
-.media-body {
- overflow: hidden;
-}
-.media-body {
- display: block;
- width: auto;
-}
-.chat-element > .pull-left {
- margin-right: 10px;
-}
-.chat-element img.img-circle,
-.dropdown-messages-box img.img-circle {
- width: 38px;
- height: 38px;
-}
-.chat-element .well {
- border: 1px solid #e7eaec;
- box-shadow: none;
- margin-top: 10px;
- margin-bottom: 5px;
- padding: 10px 20px;
- font-size: 11px;
- line-height: 16px;
-}
-.chat-element .actions {
- margin-top: 10px;
-}
-.chat-element .photos {
- margin: 10px 0;
-}
-.right.chat-element > .pull-right {
- margin-left: 10px;
-}
-.chat-photo {
- max-height: 180px;
- border-radius: 4px;
- overflow: hidden;
- margin-right: 10px;
- margin-bottom: 10px;
-}
-.chat {
- margin: 0;
- padding: 0;
- list-style: none;
-}
-.chat li {
- margin-bottom: 10px;
- padding-bottom: 5px;
- border-bottom: 1px dotted #B3A9A9;
-}
-.chat li.left .chat-body {
- margin-left: 60px;
-}
-.chat li.right .chat-body {
- margin-right: 60px;
-}
-.chat li .chat-body p {
- margin: 0;
- color: #777777;
-}
-.panel .slidedown .glyphicon,
-.chat .glyphicon {
- margin-right: 5px;
-}
-.chat-panel .panel-body {
- height: 350px;
- overflow-y: scroll;
-}
-/* LIST GROUP */
-a.list-group-item.active,
-a.list-group-item.active:hover,
-a.list-group-item.active:focus {
- background-color: #273643;
- border-color: #273643;
- color: #FFFFFF;
- z-index: 2;
-}
-.list-group-item-heading {
- margin-top: 10px;
-}
-.list-group-item-text {
- margin: 0 0 10px;
- color: inherit;
- font-size: 12px;
- line-height: inherit;
-}
-.no-padding .list-group-item {
- border-left: none;
- border-right: none;
- border-bottom: none;
-}
-.no-padding .list-group-item:first-child {
- border-left: none;
- border-right: none;
- border-bottom: none;
- border-top: none;
-}
-.no-padding .list-group {
- margin-bottom: 0;
-}
-.list-group-item {
- background-color: inherit;
- border: 1px solid #e7eaec;
- display: block;
- margin-bottom: -1px;
- padding: 10px 15px;
- position: relative;
-}
-.elements-list .list-group-item {
- border-left: none;
- border-right: none;
- padding: 15px 25px;
-}
-.elements-list .list-group-item:first-child {
- border-left: none;
- border-right: none;
- border-top: none !important;
-}
-.elements-list .list-group {
- margin-bottom: 0;
-}
-.elements-list a {
- color: inherit;
-}
-.elements-list .list-group-item.active,
-.elements-list .list-group-item:hover {
- background: #f3f3f4;
- color: inherit;
- border-color: #e7eaec;
- /*border-bottom: 1px solid #e7eaec;*/
- /*border-top: 1px solid #e7eaec;*/
- border-radius: 0;
-}
-.elements-list li.active {
- -webkit-transition: none;
- transition: none;
-}
-.element-detail-box {
- padding: 25px;
-}
-/* FLOT CHART */
-.flot-chart {
- display: block;
- height: 200px;
-}
-.widget .flot-chart.dashboard-chart {
- display: block;
- height: 120px;
- margin-top: 40px;
-}
-.flot-chart.dashboard-chart {
- display: block;
- height: 180px;
- margin-top: 40px;
-}
-.flot-chart-content {
- width: 100%;
- height: 100%;
-}
-.flot-chart-pie-content {
- width: 200px;
- height: 200px;
- margin: auto;
-}
-.jqstooltip {
- position: absolute;
- display: block;
- left: 0;
- top: 0;
- visibility: hidden;
- background: #2b303a;
- background-color: rgba(43, 48, 58, 0.8);
- color: white;
- text-align: left;
- white-space: nowrap;
- z-index: 10000;
- padding: 5px 5px 5px 5px;
- min-height: 22px;
- border-radius: 3px;
-}
-.jqsfield {
- color: white;
- text-align: left;
-}
-.fh-150 {
- height: 150px;
-}
-.fh-200 {
- height: 200px;
-}
-.h-150 {
- min-height: 150px;
-}
-.h-200 {
- min-height: 200px;
-}
-.legendLabel {
- padding-left: 5px;
-}
-.stat-list li:first-child {
- margin-top: 0;
-}
-.stat-list {
- list-style: none;
- padding: 0;
- margin: 0;
-}
-.stat-percent {
- float: right;
-}
-.stat-list li {
- margin-top: 15px;
- position: relative;
-}
-/* DATATABLES */
-table.dataTable thead .sorting,
-table.dataTable thead .sorting_asc:after,
-table.dataTable thead .sorting_desc,
-table.dataTable thead .sorting_asc_disabled,
-table.dataTable thead .sorting_desc_disabled {
- background: transparent;
-}
-.dataTables_wrapper {
- padding-bottom: 30px;
-}
-.dataTables_length {
- float: left;
-}
-.dataTables_filter label {
- margin-right: 5px;
-}
-.html5buttons {
- float: right;
-}
-.html5buttons a {
- border: 1px solid #e7eaec;
- background: #fff;
- color: #676a6c;
- box-shadow: none;
- padding: 6px 8px;
- font-size: 12px;
-}
-.html5buttons a:hover,
-.html5buttons a:focus:active {
- background-color: #eee;
- color: inherit;
- border-color: #d2d2d2;
-}
-div.dt-button-info {
- z-index: 100;
-}
-@media (max-width: 768px) {
- .html5buttons {
- float: none;
- margin-top: 10px;
- }
- .dataTables_length {
- float: none;
- }
-}
-/* CIRCLE */
-.img-circle {
- border-radius: 50%;
-}
-.btn-circle {
- width: 30px;
- height: 30px;
- padding: 6px 0;
- border-radius: 15px;
- text-align: center;
- font-size: 12px;
- line-height: 1.428571429;
-}
-.btn-circle.btn-lg {
- width: 50px;
- height: 50px;
- padding: 10px 16px;
- border-radius: 25px;
- font-size: 18px;
- line-height: 1.33;
-}
-.btn-circle.btn-xl {
- width: 70px;
- height: 70px;
- padding: 10px 16px;
- border-radius: 35px;
- font-size: 24px;
- line-height: 1.33;
-}
-.show-grid [class^="col-"] {
- padding-top: 10px;
- padding-bottom: 10px;
- border: 1px solid #ddd;
- background-color: #eee !important;
-}
-.show-grid {
- margin: 15px 0;
-}
-/* ANIMATION */
-.css-animation-box h1 {
- font-size: 44px;
-}
-.animation-efect-links a {
- padding: 4px 6px;
- font-size: 12px;
-}
-#animation_box {
- background-color: #f9f8f8;
- border-radius: 16px;
- width: 80%;
- margin: 0 auto;
- padding-top: 80px;
-}
-.animation-text-box {
- position: absolute;
- margin-top: 40px;
- left: 50%;
- margin-left: -100px;
- width: 200px;
-}
-.animation-text-info {
- position: absolute;
- margin-top: -60px;
- left: 50%;
- margin-left: -100px;
- width: 200px;
- font-size: 10px;
-}
-.animation-text-box h2 {
- font-size: 54px;
- font-weight: 600;
- margin-bottom: 5px;
-}
-.animation-text-box p {
- font-size: 12px;
- text-transform: uppercase;
-}
-/* PEACE */
-.pace {
- -webkit-pointer-events: none;
- pointer-events: none;
- -webkit-user-select: none;
- -moz-user-select: none;
- -ms-user-select: none;
- user-select: none;
-}
-.pace-inactive {
- display: none;
-}
-.pace .pace-progress {
- background: #273643;
- position: fixed;
- z-index: 2040;
- top: 0;
- right: 100%;
- width: 100%;
- height: 2px;
-}
-.pace-inactive {
- display: none;
-}
-/* WIDGETS */
-.widget {
- border-radius: 5px;
- padding: 15px 20px;
- margin-bottom: 10px;
- margin-top: 10px;
-}
-.widget.style1 h2 {
- font-size: 30px;
-}
-.widget h2,
-.widget h3 {
- margin-top: 5px;
- margin-bottom: 0;
-}
-.widget-text-box {
- padding: 20px;
- border: 1px solid #e7eaec;
- background: #ffffff;
-}
-.widget-head-color-box {
- border-radius: 5px 5px 0 0;
- margin-top: 10px;
-}
-.widget .flot-chart {
- height: 100px;
-}
-.vertical-align div {
- display: inline-block;
- vertical-align: middle;
-}
-.vertical-align h2,
-.vertical-align h3 {
- margin: 0;
-}
-.todo-list {
- list-style: none outside none;
- margin: 0;
- padding: 0;
- font-size: 14px;
-}
-.todo-list.small-list {
- font-size: 12px;
-}
-.todo-list.small-list > li {
- background: #f3f3f4;
- border-left: none;
- border-right: none;
- border-radius: 4px;
- color: inherit;
- margin-bottom: 2px;
- padding: 6px 6px 6px 12px;
-}
-.todo-list.small-list .btn-xs,
-.todo-list.small-list .btn-group-xs > .btn {
- border-radius: 5px;
- font-size: 10px;
- line-height: 1.5;
- padding: 1px 2px 1px 5px;
-}
-.todo-list > li {
- background: #f3f3f4;
- border-left: 6px solid #e7eaec;
- border-right: 6px solid #e7eaec;
- border-radius: 4px;
- color: inherit;
- margin-bottom: 2px;
- padding: 10px;
-}
-.todo-list .handle {
- cursor: move;
- display: inline-block;
- font-size: 16px;
- margin: 0 5px;
-}
-.todo-list > li .label {
- font-size: 9px;
- margin-left: 10px;
-}
-.check-link {
- font-size: 16px;
-}
-.todo-completed {
- text-decoration: line-through;
-}
-.geo-statistic h1 {
- font-size: 36px;
- margin-bottom: 0;
-}
-.glyphicon.fa {
- font-family: "FontAwesome";
-}
-/* INPUTS */
-.inline {
- display: inline-block !important;
-}
-.input-s-sm {
- width: 120px;
-}
-.input-s {
- width: 200px;
-}
-.input-s-lg {
- width: 250px;
-}
-.i-checks {
- padding-left: 0;
-}
-.form-control,
-.single-line {
- background-color: #FFFFFF;
- background-image: none;
- border: 1px solid #e5e6e7;
- border-radius: 1px;
- color: inherit;
- display: block;
- padding: 6px 12px;
- -webkit-transition: border-color 0.15s ease-in-out 0s, box-shadow 0.15s ease-in-out 0s;
- transition: border-color 0.15s ease-in-out 0s, box-shadow 0.15s ease-in-out 0s;
- width: 100%;
- font-size: 14px;
-}
-.form-control:focus,
-.single-line:focus {
- border-color: #273643 !important;
-}
-.has-success .form-control {
- border-color: #273643;
-}
-.has-warning .form-control {
- border-color: #F1C40F;
-}
-.has-error .form-control {
- border-color: #f9311d;
-}
-.has-success .control-label {
- color: #273643;
-}
-.has-warning .control-label {
- color: #F1C40F;
-}
-.has-error .control-label {
- color: #f9311d;
-}
-.input-group-addon {
- background-color: #fff;
- border: 1px solid #E5E6E7;
- border-radius: 1px;
- color: inherit;
- font-size: 14px;
- font-weight: 400;
- line-height: 1;
- padding: 6px 12px;
- text-align: center;
-}
-.spinner-buttons.input-group-btn .btn-xs {
- line-height: 1.13;
-}
-.spinner-buttons.input-group-btn {
- width: 20%;
-}
-.noUi-connect {
- background: none repeat scroll 0 0 #273643;
- box-shadow: none;
-}
-.slider_red .noUi-connect {
- background: none repeat scroll 0 0 #f9311d;
- box-shadow: none;
-}
-/* UI Sortable */
-.ui-sortable .ibox-title {
- cursor: move;
-}
-.ui-sortable-placeholder {
- border: 1px dashed #cecece !important;
- visibility: visible !important;
- background: #e7eaec;
-}
-.ibox.ui-sortable-placeholder {
- margin: 0 0 23px !important;
-}
-/* SWITCHES */
-.onoffswitch {
- position: relative;
- width: 54px;
- -webkit-user-select: none;
- -moz-user-select: none;
- -ms-user-select: none;
-}
-.onoffswitch-checkbox {
- display: none;
-}
-.onoffswitch-label {
- display: block;
- overflow: hidden;
- cursor: pointer;
- border: 2px solid #1AB394;
- border-radius: 3px;
-}
-.onoffswitch-inner {
- display: block;
- width: 200%;
- margin-left: -100%;
- -webkit-transition: margin 0.3s ease-in 0s;
- transition: margin 0.3s ease-in 0s;
-}
-.onoffswitch-inner:before,
-.onoffswitch-inner:after {
- display: block;
- float: left;
- width: 50%;
- height: 16px;
- padding: 0;
- line-height: 16px;
- font-size: 10px;
- color: white;
- font-family: Trebuchet, Arial, sans-serif;
- font-weight: bold;
- box-sizing: border-box;
-}
-.onoffswitch-inner:before {
- content: "ON";
- padding-left: 7px;
- background-color: #1AB394;
- color: #FFFFFF;
-}
-.onoffswitch-inner:after {
- content: "OFF";
- padding-right: 7px;
- background-color: #FFFFFF;
- color: #919191;
- text-align: right;
-}
-.onoffswitch-switch {
- display: block;
- width: 18px;
- margin: 0;
- background: #FFFFFF;
- border: 2px solid #1AB394;
- border-radius: 3px;
- position: absolute;
- top: 0;
- bottom: 0;
- right: 36px;
- -webkit-transition: all 0.3s ease-in 0s;
- transition: all 0.3s ease-in 0s;
-}
-.onoffswitch-checkbox:checked + .onoffswitch-label .onoffswitch-inner {
- margin-left: 0;
-}
-.onoffswitch-checkbox:checked + .onoffswitch-label .onoffswitch-switch {
- right: 0;
-}
-/* jqGrid */
-.ui-jqgrid {
- -moz-box-sizing: content-box;
-}
-.ui-jqgrid-btable {
- border-collapse: separate;
-}
-.ui-jqgrid-htable {
- border-collapse: separate;
-}
-.ui-jqgrid-titlebar {
- height: 40px;
- line-height: 15px;
- color: #676a6c;
- background-color: #F9F9F9;
- text-shadow: 0 1px 0 rgba(255, 255, 255, 0.5);
-}
-.ui-jqgrid .ui-jqgrid-title {
- float: left;
- margin: 1.1em 1em 0.2em;
-}
-.ui-jqgrid .ui-jqgrid-titlebar {
- position: relative;
- border-left: 0 solid;
- border-right: 0 solid;
- border-top: 0 solid;
-}
-.ui-widget-header {
- background: none;
- background-image: none;
- background-color: #f5f5f6;
- text-transform: uppercase;
- border-top-left-radius: 0;
- border-top-right-radius: 0;
-}
-.ui-jqgrid tr.ui-row-ltr td {
- border-right-color: inherit;
- border-right-style: solid;
- border-right-width: 1px;
- text-align: left;
- border-color: #DDDDDD;
- background-color: inherit;
-}
-.ui-search-toolbar input[type="text"] {
- font-size: 12px;
- height: 15px;
- border: 1px solid #CCCCCC;
- border-radius: 0;
-}
-.ui-state-default,
-.ui-widget-content .ui-state-default,
-.ui-widget-header .ui-state-default {
- background: #F9F9F9;
- border: 1px solid #DDDDDD;
- line-height: 15px;
- font-weight: bold;
- color: #676a6c;
- text-shadow: 0 1px 0 rgba(255, 255, 255, 0.5);
-}
-.ui-widget-content {
- box-sizing: content-box;
-}
-.ui-icon-triangle-1-n {
- background-position: 1px -16px;
-}
-.ui-jqgrid tr.ui-search-toolbar th {
- border-top-width: 0 !important;
- border-top-color: inherit !important;
- border-top-style: ridge !important;
-}
-.ui-state-hover,
-.ui-widget-content .ui-state-hover,
-.ui-state-focus,
-.ui-widget-content .ui-state-focus,
-.ui-widget-header .ui-state-focus {
- background: #f5f5f5;
- border-collapse: separate;
-}
-.ui-state-highlight,
-.ui-widget-content .ui-state-highlight,
-.ui-widget-header .ui-state-highlight {
- background: #f2fbff;
-}
-.ui-state-active,
-.ui-widget-content .ui-state-active,
-.ui-widget-header .ui-state-active {
- border: 1px solid #dddddd;
- background: #ffffff;
- font-weight: normal;
- color: #212121;
-}
-.ui-jqgrid .ui-pg-input {
- font-size: inherit;
- width: 50px;
- border: 1px solid #CCCCCC;
- height: 15px;
-}
-.ui-jqgrid .ui-pg-selbox {
- display: block;
- font-size: 1em;
- height: 25px;
- line-height: 18px;
- margin: 0;
- width: auto;
-}
-.ui-jqgrid .ui-pager-control {
- position: relative;
-}
-.ui-jqgrid .ui-jqgrid-pager {
- height: 32px;
- position: relative;
-}
-.ui-pg-table .navtable .ui-corner-all {
- border-radius: 0;
-}
-.ui-jqgrid .ui-pg-button:hover {
- padding: 1px;
- border: 0;
-}
-.ui-jqgrid .loading {
- position: absolute;
- top: 45%;
- left: 45%;
- width: auto;
- height: auto;
- z-index: 101;
- padding: 6px;
- margin: 5px;
- text-align: center;
- font-weight: bold;
- display: none;
- border-width: 2px !important;
- font-size: 11px;
-}
-.ui-jqgrid .form-control {
- height: 10px;
- width: auto;
- display: inline;
- padding: 10px 12px;
-}
-.ui-jqgrid-pager {
- height: 32px;
-}
-.ui-corner-all,
-.ui-corner-top,
-.ui-corner-left,
-.ui-corner-tl {
- border-top-left-radius: 0;
-}
-.ui-corner-all,
-.ui-corner-top,
-.ui-corner-right,
-.ui-corner-tr {
- border-top-right-radius: 0;
-}
-.ui-corner-all,
-.ui-corner-bottom,
-.ui-corner-left,
-.ui-corner-bl {
- border-bottom-left-radius: 0;
-}
-.ui-corner-all,
-.ui-corner-bottom,
-.ui-corner-right,
-.ui-corner-br {
- border-bottom-right-radius: 0;
-}
-.ui-widget-content {
- border: 1px solid #ddd;
-}
-.ui-jqgrid .ui-jqgrid-titlebar {
- padding: 0;
-}
-.ui-jqgrid .ui-jqgrid-titlebar {
- border-bottom: 1px solid #ddd;
-}
-.ui-jqgrid tr.jqgrow td {
- padding: 6px;
-}
-.ui-jqdialog .ui-jqdialog-titlebar {
- padding: 10px 10px;
-}
-.ui-jqdialog .ui-jqdialog-title {
- float: none !important;
-}
-.ui-jqdialog > .ui-resizable-se {
- position: absolute;
-}
-/* Nestable list */
-.dd {
- position: relative;
- display: block;
- margin: 0;
- padding: 0;
- list-style: none;
- font-size: 13px;
- line-height: 20px;
-}
-.dd-list {
- display: block;
- position: relative;
- margin: 0;
- padding: 0;
- list-style: none;
-}
-.dd-list .dd-list {
- padding-left: 30px;
-}
-.dd-collapsed .dd-list {
- display: none;
-}
-.dd-item,
-.dd-empty,
-.dd-placeholder {
- display: block;
- position: relative;
- margin: 0;
- padding: 0;
- min-height: 20px;
- font-size: 13px;
- line-height: 20px;
-}
-.dd-handle {
- display: block;
- margin: 5px 0;
- padding: 5px 10px;
- color: #333;
- text-decoration: none;
- border: 1px solid #e7eaec;
- background: #f5f5f5;
- border-radius: 3px;
- box-sizing: border-box;
- -moz-box-sizing: border-box;
-}
-.dd-handle span {
- font-weight: bold;
-}
-.dd-handle:hover {
- background: #f0f0f0;
- cursor: pointer;
- font-weight: bold;
-}
-.dd-item > button {
- display: block;
- position: relative;
- cursor: pointer;
- float: left;
- width: 25px;
- height: 20px;
- margin: 5px 0;
- padding: 0;
- text-indent: 100%;
- white-space: nowrap;
- overflow: hidden;
- border: 0;
- background: transparent;
- font-size: 12px;
- line-height: 1;
- text-align: center;
- font-weight: bold;
-}
-.dd-item > button:before {
- content: '+';
- display: block;
- position: absolute;
- width: 100%;
- text-align: center;
- text-indent: 0;
-}
-.dd-item > button[data-action="collapse"]:before {
- content: '-';
-}
-#nestable2 .dd-item > button {
- font-family: FontAwesome;
- height: 34px;
- width: 33px;
- color: #c1c1c1;
-}
-#nestable2 .dd-item > button:before {
- content: "\f067";
-}
-#nestable2 .dd-item > button[data-action="collapse"]:before {
- content: "\f068";
-}
-.dd-placeholder,
-.dd-empty {
- margin: 5px 0;
- padding: 0;
- min-height: 30px;
- background: #f2fbff;
- border: 1px dashed #b6bcbf;
- box-sizing: border-box;
- -moz-box-sizing: border-box;
-}
-.dd-empty {
- border: 1px dashed #bbb;
- min-height: 100px;
- background-color: #e5e5e5;
- background-image: -webkit-linear-gradient(45deg, #fff 25%, transparent 25%, transparent 75%, #fff 75%, #fff), -webkit-linear-gradient(45deg, #fff 25%, transparent 25%, transparent 75%, #fff 75%, #fff);
- background-image: linear-gradient(45deg, #fff 25%, transparent 25%, transparent 75%, #fff 75%, #fff), linear-gradient(45deg, #fff 25%, transparent 25%, transparent 75%, #fff 75%, #fff);
- background-size: 60px 60px;
- background-position: 0 0, 30px 30px;
-}
-.dd-dragel {
- position: absolute;
- z-index: 9999;
- pointer-events: none;
-}
-.dd-dragel > .dd-item .dd-handle {
- margin-top: 0;
-}
-.dd-dragel .dd-handle {
- box-shadow: 2px 4px 6px 0 rgba(0, 0, 0, 0.1);
-}
-/**
-* Nestable Extras
-*/
-.nestable-lists {
- display: block;
- clear: both;
- padding: 30px 0;
- width: 100%;
- border: 0;
- border-top: 2px solid #ddd;
- border-bottom: 2px solid #ddd;
-}
-#nestable-menu {
- padding: 0;
- margin: 10px 0 20px 0;
-}
-#nestable-output,
-#nestable2-output {
- width: 100%;
- font-size: 0.75em;
- line-height: 1.333333em;
- font-family: open sans, lucida grande, lucida sans unicode, helvetica, arial, sans-serif;
- padding: 5px;
- box-sizing: border-box;
- -moz-box-sizing: border-box;
-}
-#nestable2 .dd-handle {
- color: inherit;
- border: 1px dashed #e7eaec;
- background: #f3f3f4;
- padding: 10px;
-}
-#nestable2 .dd-handle:hover {
- /*background: #bbb;*/
-}
-#nestable2 span.label {
- margin-right: 10px;
-}
-#nestable-output,
-#nestable2-output {
- font-size: 12px;
- padding: 25px;
- box-sizing: border-box;
- -moz-box-sizing: border-box;
-}
-/* CodeMirror */
-.CodeMirror {
- border: 1px solid #eee;
- height: auto;
-}
-.CodeMirror-scroll {
- overflow-y: hidden;
- overflow-x: auto;
-}
-/* Google Maps */
-.google-map {
- height: 300px;
-}
-/* Validation */
-label.error {
- color: #cc5965;
- display: inline-block;
- margin-left: 5px;
-}
-.form-control.error {
- border: 1px dotted #cc5965;
-}
-/* ngGrid */
-.gridStyle {
- border: 1px solid #d4d4d4;
- width: 100%;
- height: 400px;
-}
-.gridStyle2 {
- border: 1px solid #d4d4d4;
- width: 500px;
- height: 300px;
-}
-.ngH eaderCell {
- border-right: none;
- border-bottom: 1px solid #e7eaec;
-}
-.ngCell {
- border-right: none;
-}
-.ngTopPanel {
- background: #F5F5F6;
-}
-.ngRow.even {
- background: #f9f9f9;
-}
-.ngRow.selected {
- background: #EBF2F1;
-}
-.ngRow {
- border-bottom: 1px solid #e7eaec;
-}
-.ngCell {
- background-color: transparent;
-}
-.ngHeaderCell {
- border-right: none;
-}
-/* Toastr custom style */
-#toast-container > .toast {
- background-image: none !important;
-}
-#toast-container > .toast:before {
- position: fixed;
- font-family: FontAwesome;
- font-size: 24px;
- line-height: 24px;
- float: left;
- color: #FFF;
- padding-right: 0.5em;
- margin: auto 0.5em auto -1.5em;
-}
-#toast-container > .toast-warning:before {
- content: "\f0e7";
-}
-#toast-container > .toast-error:before {
- content: "\f071";
-}
-#toast-container > .toast-info:before {
- content: "\f005";
-}
-#toast-container > .toast-success:before {
- content: "\f00C";
-}
-#toast-container > div {
- box-shadow: 0 0 3px #999;
- opacity: .9;
- -ms-filter: alpha(opacity=90);
- filter: alpha(opacity=90);
-}
-#toast-container > :hover {
- box-shadow: 0 0 4px #999;
- opacity: 1;
- -ms-filter: alpha(opacity=100);
- filter: alpha(opacity=100);
- cursor: pointer;
-}
-.toast {
- background-color: #273643;
-}
-.toast-success {
- background-color: #273643;
-}
-.toast-error {
- background-color: #f9311d;
-}
-.toast-info {
- background-color: #23c6c8;
-}
-.toast-warning {
- background-color: #F1C40F;
-}
-.toast-top-full-width {
- margin-top: 20px;
-}
-.toast-bottom-full-width {
- margin-bottom: 20px;
-}
-/* Notifie */
-.cg-notify-message.inspinia-notify {
- background: #fff;
- padding: 0;
- box-shadow: 0 0 1px rgba(0, 0, 0, 0.1), 0 2px 4px rgba(0, 0, 0, 0.2);
- -webkit-box-shadow: 0 0 1px rgba(0, 0, 0, 0.1), 0 2px 4px rgba(0, 0, 0, 0.2);
- -moz-box-shadow: 0 0 1px rgba(0, 0, 0, 0.1), 0 2px 4px rgba(0, 0, 0, 0.2);
- border: none;
- margin-top: 30px;
- color: inherit;
-}
-.inspinia-notify.alert-warning {
- border-left: 6px solid #F1C40F;
-}
-.inspinia-notify.alert-success {
- border-left: 6px solid #06cc51;
-}
-.inspinia-notify.alert-danger {
- border-left: 6px solid #f9311d;
-}
-.inspinia-notify.alert-info {
- border-left: 6px solid #273643;
-}
-/* Image cropper style */
-.img-container,
-.img-preview {
- overflow: hidden;
- text-align: center;
- width: 100%;
-}
-.img-preview-sm {
- height: 130px;
- width: 200px;
-}
-/* Forum styles */
-.forum-post-container .media {
- margin: 10px 10px 10px 10px;
- padding: 20px 10px 20px 10px;
- border-bottom: 1px solid #f1f1f1;
-}
-.forum-avatar {
- float: left;
- margin-right: 20px;
- text-align: center;
- width: 110px;
-}
-.forum-avatar .img-circle {
- height: 48px;
- width: 48px;
-}
-.author-info {
- color: #676a6c;
- font-size: 11px;
- margin-top: 5px;
- text-align: center;
-}
-.forum-post-info {
- padding: 9px 12px 6px 12px;
- background: #f9f9f9;
- border: 1px solid #f1f1f1;
-}
-.media-body > .media {
- background: #f9f9f9;
- border-radius: 3px;
- border: 1px solid #f1f1f1;
-}
-.forum-post-container .media-body .photos {
- margin: 10px 0;
-}
-.forum-photo {
- max-width: 140px;
- border-radius: 3px;
-}
-.media-body > .media .forum-avatar {
- width: 70px;
- margin-right: 10px;
-}
-.media-body > .media .forum-avatar .img-circle {
- height: 38px;
- width: 38px;
-}
-.mid-icon {
- font-size: 66px;
-}
-.forum-item {
- margin: 10px 0;
- padding: 10px 0 20px;
- border-bottom: 1px solid #f1f1f1;
-}
-.views-number {
- font-size: 24px;
- line-height: 18px;
- font-weight: 400;
-}
-.forum-container,
-.forum-post-container {
- padding: 30px !important;
-}
-.forum-item small {
- color: #999;
-}
-.forum-item .forum-sub-title {
- color: #999;
- margin-left: 50px;
-}
-.forum-title {
- margin: 15px 0 15px 0;
-}
-.forum-info {
- text-align: center;
-}
-.forum-desc {
- color: #999;
-}
-.forum-icon {
- float: left;
- width: 30px;
- margin-right: 20px;
- text-align: center;
-}
-a.forum-item-title {
- color: inherit;
- display: block;
- font-size: 18px;
- font-weight: 600;
-}
-a.forum-item-title:hover {
- color: inherit;
-}
-.forum-icon .fa {
- font-size: 30px;
- margin-top: 8px;
- color: #9b9b9b;
-}
-.forum-item.active .fa {
- color: #273643;
-}
-.forum-item.active a.forum-item-title {
- color: #273643;
-}
-@media (max-width: 992px) {
- .forum-info {
- margin: 15px 0 10px 0;
- /* Comment this is you want to show forum info in small devices */
- display: none;
- }
- .forum-desc {
- float: none !important;
- }
-}
-/* New Timeline style */
-.vertical-container {
- /* this class is used to give a max-width to the element it is applied to, and center it horizontally when it reaches that max-width */
- width: 90%;
- max-width: 1170px;
- margin: 0 auto;
-}
-.vertical-container::after {
- /* clearfix */
- content: '';
- display: table;
- clear: both;
-}
-#vertical-timeline {
- position: relative;
- padding: 0;
- margin-top: 2em;
- margin-bottom: 2em;
-}
-#vertical-timeline::before {
- content: '';
- position: absolute;
- top: 0;
- left: 18px;
- height: 100%;
- width: 4px;
- background: #f1f1f1;
-}
-.vertical-timeline-content .btn {
- float: right;
-}
-#vertical-timeline.light-timeline:before {
- background: #e7eaec;
-}
-.dark-timeline .vertical-timeline-content:before {
- border-color: transparent #f5f5f5 transparent transparent;
-}
-.dark-timeline.center-orientation .vertical-timeline-content:before {
- border-color: transparent transparent transparent #f5f5f5;
-}
-.dark-timeline .vertical-timeline-block:nth-child(2n) .vertical-timeline-content:before,
-.dark-timeline.center-orientation .vertical-timeline-block:nth-child(2n) .vertical-timeline-content:before {
- border-color: transparent #f5f5f5 transparent transparent;
-}
-.dark-timeline .vertical-timeline-content,
-.dark-timeline.center-orientation .vertical-timeline-content {
- background: #f5f5f5;
-}
-@media only screen and (min-width: 1170px) {
- #vertical-timeline.center-orientation {
- margin-top: 3em;
- margin-bottom: 3em;
- }
- #vertical-timeline.center-orientation:before {
- left: 50%;
- margin-left: -2px;
- }
-}
-@media only screen and (max-width: 1170px) {
- .center-orientation.dark-timeline .vertical-timeline-content:before {
- border-color: transparent #f5f5f5 transparent transparent;
- }
-}
-.vertical-timeline-block {
- position: relative;
- margin: 2em 0;
-}
-.vertical-timeline-block:after {
- content: "";
- display: table;
- clear: both;
-}
-.vertical-timeline-block:first-child {
- margin-top: 0;
-}
-.vertical-timeline-block:last-child {
- margin-bottom: 0;
-}
-@media only screen and (min-width: 1170px) {
- .center-orientation .vertical-timeline-block {
- margin: 4em 0;
- }
- .center-orientation .vertical-timeline-block:first-child {
- margin-top: 0;
- }
- .center-orientation .vertical-timeline-block:last-child {
- margin-bottom: 0;
- }
-}
-.vertical-timeline-icon {
- position: absolute;
- top: 0;
- left: 0;
- width: 40px;
- height: 40px;
- border-radius: 50%;
- font-size: 16px;
- border: 3px solid #f1f1f1;
- text-align: center;
-}
-.vertical-timeline-icon i {
- display: block;
- width: 24px;
- height: 24px;
- position: relative;
- left: 50%;
- top: 50%;
- margin-left: -12px;
- margin-top: -9px;
-}
-@media only screen and (min-width: 1170px) {
- .center-orientation .vertical-timeline-icon {
- width: 50px;
- height: 50px;
- left: 50%;
- margin-left: -25px;
- -webkit-transform: translateZ(0);
- -webkit-backface-visibility: hidden;
- font-size: 19px;
- }
- .center-orientation .vertical-timeline-icon i {
- margin-left: -12px;
- margin-top: -10px;
- }
- .center-orientation .cssanimations .vertical-timeline-icon.is-hidden {
- visibility: hidden;
- }
-}
-.vertical-timeline-content {
- position: relative;
- margin-left: 60px;
- background: white;
- border-radius: 0.25em;
- padding: 1em;
-}
-.vertical-timeline-content:after {
- content: "";
- display: table;
- clear: both;
-}
-.vertical-timeline-content h2 {
- font-weight: 400;
- margin-top: 4px;
-}
-.vertical-timeline-content p {
- margin: 1em 0;
- line-height: 1.6;
-}
-.vertical-timeline-content .vertical-date {
- float: left;
- font-weight: 500;
-}
-.vertical-date small {
- color: #273643;
- font-weight: 400;
-}
-.vertical-timeline-content::before {
- content: '';
- position: absolute;
- top: 16px;
- right: 100%;
- height: 0;
- width: 0;
- border: 7px solid transparent;
- border-right: 7px solid white;
-}
-@media only screen and (min-width: 768px) {
- .vertical-timeline-content h2 {
- font-size: 18px;
- }
- .vertical-timeline-content p {
- font-size: 13px;
- }
-}
-@media only screen and (min-width: 1170px) {
- .center-orientation .vertical-timeline-content {
- margin-left: 0;
- padding: 1.6em;
- width: 45%;
- }
- .center-orientation .vertical-timeline-content::before {
- top: 24px;
- left: 100%;
- border-color: transparent;
- border-left-color: white;
- }
- .center-orientation .vertical-timeline-content .btn {
- float: left;
- }
- .center-orientation .vertical-timeline-content .vertical-date {
- position: absolute;
- width: 100%;
- left: 122%;
- top: 2px;
- font-size: 14px;
- }
- .center-orientation .vertical-timeline-block:nth-child(even) .vertical-timeline-content {
- float: right;
- }
- .center-orientation .vertical-timeline-block:nth-child(even) .vertical-timeline-content::before {
- top: 24px;
- left: auto;
- right: 100%;
- border-color: transparent;
- border-right-color: white;
- }
- .center-orientation .vertical-timeline-block:nth-child(even) .vertical-timeline-content .btn {
- float: right;
- }
- .center-orientation .vertical-timeline-block:nth-child(even) .vertical-timeline-content .vertical-date {
- left: auto;
- right: 122%;
- text-align: right;
- }
- .center-orientation .cssanimations .vertical-timeline-content.is-hidden {
- visibility: hidden;
- }
-}
-/* Tabs */
-.tabs-container .panel-body {
- background: #fff;
- border: 1px solid #e7eaec;
- border-radius: 2px;
- padding: 20px;
- position: relative;
-}
-.tabs-container .nav-tabs > li.active > a,
-.tabs-container .nav-tabs > li.active > a:hover,
-.tabs-container .nav-tabs > li.active > a:focus {
- border: 1px solid #e7eaec;
- border-bottom-color: transparent;
- background-color: #fff;
-}
-.tabs-container .nav-tabs > li {
- float: left;
- margin-bottom: -1px;
-}
-.tabs-container .tab-pane .panel-body {
- border-top: none;
-}
-.tabs-container .nav-tabs > li.active > a,
-.tabs-container .nav-tabs > li.active > a:hover,
-.tabs-container .nav-tabs > li.active > a:focus {
- border: 1px solid #e7eaec;
- border-bottom-color: transparent;
-}
-.tabs-container .nav-tabs {
- border-bottom: 1px solid #e7eaec;
-}
-.tabs-container .tab-pane .panel-body {
- border-top: none;
-}
-.tabs-container .tabs-left .tab-pane .panel-body,
-.tabs-container .tabs-right .tab-pane .panel-body {
- border-top: 1px solid #e7eaec;
-}
-.tabs-container .nav-tabs > li a:hover {
- background: transparent;
- border-color: transparent;
-}
-.tabs-container .tabs-below > .nav-tabs,
-.tabs-container .tabs-right > .nav-tabs,
-.tabs-container .tabs-left > .nav-tabs {
- border-bottom: 0;
-}
-.tabs-container .tabs-left .panel-body {
- position: static;
-}
-.tabs-container .tabs-left > .nav-tabs,
-.tabs-container .tabs-right > .nav-tabs {
- width: 20%;
-}
-.tabs-container .tabs-left .panel-body {
- width: 80%;
- margin-left: 20%;
-}
-.tabs-container .tabs-right .panel-body {
- width: 80%;
- margin-right: 20%;
-}
-.tabs-container .tab-content > .tab-pane,
-.tabs-container .pill-content > .pill-pane {
- display: none;
-}
-.tabs-container .tab-content > .active,
-.tabs-container .pill-content > .active {
- display: block;
-}
-.tabs-container .tabs-below > .nav-tabs {
- border-top: 1px solid #e7eaec;
-}
-.tabs-container .tabs-below > .nav-tabs > li {
- margin-top: -1px;
- margin-bottom: 0;
-}
-.tabs-container .tabs-below > .nav-tabs > li > a {
- border-radius: 0 0 4px 4px;
-}
-.tabs-container .tabs-below > .nav-tabs > li > a:hover,
-.tabs-container .tabs-below > .nav-tabs > li > a:focus {
- border-top-color: #e7eaec;
- border-bottom-color: transparent;
-}
-.tabs-container .tabs-left > .nav-tabs > li,
-.tabs-container .tabs-right > .nav-tabs > li {
- float: none;
-}
-.tabs-container .tabs-left > .nav-tabs > li > a,
-.tabs-container .tabs-right > .nav-tabs > li > a {
- min-width: 74px;
- margin-right: 0;
- margin-bottom: 3px;
-}
-.tabs-container .tabs-left > .nav-tabs {
- float: left;
- margin-right: 19px;
-}
-.tabs-container .tabs-left > .nav-tabs > li > a {
- margin-right: -1px;
- border-radius: 4px 0 0 4px;
-}
-.tabs-container .tabs-left > .nav-tabs .active > a,
-.tabs-container .tabs-left > .nav-tabs .active > a:hover,
-.tabs-container .tabs-left > .nav-tabs .active > a:focus {
- border-color: #e7eaec transparent #e7eaec #e7eaec;
- *border-right-color: #ffffff;
-}
-.tabs-container .tabs-right > .nav-tabs {
- float: right;
- margin-left: 19px;
-}
-.tabs-container .tabs-right > .nav-tabs > li > a {
- margin-left: -1px;
- border-radius: 0 4px 4px 0;
-}
-.tabs-container .tabs-right > .nav-tabs .active > a,
-.tabs-container .tabs-right > .nav-tabs .active > a:hover,
-.tabs-container .tabs-right > .nav-tabs .active > a:focus {
- border-color: #e7eaec #e7eaec #e7eaec transparent;
- *border-left-color: #ffffff;
- z-index: 1;
-}
-@media (max-width: 767px) {
- .tabs-container .nav-tabs > li {
- float: none !important;
- }
- .tabs-container .nav-tabs > li.active > a {
- border-bottom: 1px solid #e7eaec !important;
- margin: 0;
- }
-}
-/* jsvectormap */
-.jvectormap-container {
- width: 100%;
- height: 100%;
- position: relative;
- overflow: hidden;
-}
-.jvectormap-tip {
- position: absolute;
- display: none;
- border: solid 1px #CDCDCD;
- border-radius: 3px;
- background: #292929;
- color: white;
- font-family: sans-serif, Verdana;
- font-size: smaller;
- padding: 5px;
-}
-.jvectormap-zoomin,
-.jvectormap-zoomout,
-.jvectormap-goback {
- position: absolute;
- left: 10px;
- border-radius: 3px;
- background: #273643;
- padding: 3px;
- color: white;
- cursor: pointer;
- line-height: 10px;
- text-align: center;
- box-sizing: content-box;
-}
-.jvectormap-zoomin,
-.jvectormap-zoomout {
- width: 10px;
- height: 10px;
-}
-.jvectormap-zoomin {
- top: 10px;
-}
-.jvectormap-zoomout {
- top: 30px;
-}
-.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: bold;
- font-size: 14px;
- text-align: center;
-}
-.jvectormap-legend-cnt {
- position: absolute;
-}
-.jvectormap-legend-cnt-h {
- bottom: 0;
- right: 0;
-}
-.jvectormap-legend-cnt-v {
- top: 0;
- right: 0;
-}
-.jvectormap-legend {
- background: black;
- color: white;
- border-radius: 3px;
-}
-.jvectormap-legend-cnt-h .jvectormap-legend {
- float: left;
- margin: 0 10px 10px 0;
- padding: 3px 3px 1px 3px;
-}
-.jvectormap-legend-cnt-h .jvectormap-legend .jvectormap-legend-tick {
- float: left;
-}
-.jvectormap-legend-cnt-v .jvectormap-legend {
- margin: 10px 10px 0 0;
- padding: 3px;
-}
-.jvectormap-legend-cnt-h .jvectormap-legend-tick {
- width: 40px;
-}
-.jvectormap-legend-cnt-h .jvectormap-legend-tick-sample {
- height: 15px;
-}
-.jvectormap-legend-cnt-v .jvectormap-legend-tick-sample {
- height: 20px;
- width: 20px;
- display: inline-block;
- vertical-align: middle;
-}
-.jvectormap-legend-tick-text {
- font-size: 12px;
-}
-.jvectormap-legend-cnt-h .jvectormap-legend-tick-text {
- text-align: center;
-}
-.jvectormap-legend-cnt-v .jvectormap-legend-tick-text {
- display: inline-block;
- vertical-align: middle;
- line-height: 20px;
- padding-left: 3px;
-}
-/*Slick Carousel */
-.slick-prev:before,
-.slick-next:before {
- color: #273643 !important;
-}
-/* Payments */
-.payment-card {
- background: #ffffff;
- padding: 20px;
- margin-bottom: 25px;
- border: 1px solid #e7eaec;
-}
-.payment-icon-big {
- font-size: 60px;
- color: #D1DADE;
-}
-.payments-method.panel-group .panel + .panel {
- margin-top: -1px;
-}
-.payments-method .panel-heading {
- padding: 15px;
-}
-.payments-method .panel {
- border-radius: 0;
-}
-.payments-method .panel-heading h5 {
- margin-bottom: 5px;
-}
-.payments-method .panel-heading i {
- font-size: 26px;
-}
-/* Select2 custom styles */
-.select2-container--default .select2-selection--single,
-.select2-container--default .select2-selection--multiple {
- border-color: #e7eaec;
-}
-/* Tour */
-.tour-tour .btn.btn-default {
- background-color: #ffffff;
- border: 1px solid #d2d2d2;
- color: inherit;
-}
-.tour-step-backdrop {
- z-index: 2101;
-}
-.tour-backdrop {
- z-index: 2100;
- opacity: .7;
-}
-.popover[class*=tour-] {
- z-index: 2100;
-}
-body.tour-open .animated {
- -webkit-animation-fill-mode: initial;
- animation-fill-mode: initial;
-}
-/* Resizable */
-.resizable-panels .ibox {
- clear: none;
- margin: 10px;
- float: left;
- overflow: hidden;
- min-height: 150px;
- min-width: 150px;
-}
-.resizable-panels .ibox .ibox-content {
- height: calc(100% - 49px);
-}
-.ui-resizable-helper {
- background: rgba(211, 211, 211, 0.4);
-}
-/* Wizard step fix */
-.wizard > .content > .body {
- position: relative;
-}
-.sidebard-panel {
- width: 220px;
- background: #ebebed;
- padding: 10px 20px;
- position: absolute;
- right: 0;
-}
-.sidebard-panel .feed-element img.img-circle {
- width: 32px;
- height: 32px;
-}
-.sidebard-panel .feed-element,
-.media-body,
-.sidebard-panel p {
- font-size: 12px;
-}
-.sidebard-panel .feed-element {
- margin-top: 20px;
- padding-bottom: 0;
-}
-.sidebard-panel .list-group {
- margin-bottom: 10px;
-}
-.sidebard-panel .list-group .list-group-item {
- padding: 5px 0;
- font-size: 12px;
- border: 0;
-}
-.sidebar-content .wrapper,
-.wrapper.sidebar-content {
- padding-right: 230px !important;
-}
-.body-small .sidebar-content .wrapper,
-.body-small .wrapper.sidebar-content {
- padding-right: 20px !important;
-}
-#right-sidebar {
- background-color: #fff;
- border-left: 1px solid #e7eaec;
- border-top: 1px solid #e7eaec;
- overflow: hidden;
- position: fixed;
- top: 60px;
- width: 260px !important;
- z-index: 1009;
- bottom: 0;
- right: -260px;
-}
-#right-sidebar.sidebar-open {
- right: 0;
-}
-#right-sidebar.sidebar-open.sidebar-top {
- top: 0;
- border-top: none;
-}
-.sidebar-container ul.nav-tabs {
- border: none;
-}
-.sidebar-container ul.nav-tabs.navs-4 li {
- width: 25%;
-}
-.sidebar-container ul.nav-tabs.navs-3 li {
- width: 33.3333%;
-}
-.sidebar-container ul.nav-tabs.navs-2 li {
- width: 50%;
-}
-.sidebar-container ul.nav-tabs li {
- border: none;
-}
-.sidebar-container ul.nav-tabs li a {
- border: none;
- padding: 12px 10px;
- margin: 0;
- border-radius: 0;
- background: #2F4050;
- color: #fff;
- text-align: center;
- border-right: 1px solid #334556;
-}
-.sidebar-container ul.nav-tabs li.active a {
- border: none;
- background: #f9f9f9;
- color: #34495E;
- font-weight: bold;
-}
-.sidebar-container .nav-tabs > li.active > a:hover,
-.sidebar-container .nav-tabs > li.active > a:focus {
- border: none;
-}
-.sidebar-container ul.sidebar-list {
- margin: 0;
- padding: 0;
-}
-.sidebar-container ul.sidebar-list li {
- border-bottom: 1px solid #e7eaec;
- padding: 15px 20px;
- list-style: none;
- font-size: 12px;
-}
-.sidebar-container .sidebar-message:nth-child(2n+2) {
- background: #f9f9f9;
-}
-.sidebar-container ul.sidebar-list li a {
- text-decoration: none;
- color: inherit;
-}
-.sidebar-container .sidebar-content {
- padding: 15px 20px;
- font-size: 12px;
-}
-.sidebar-container .sidebar-title {
- background: #f9f9f9;
- padding: 20px;
- border-bottom: 1px solid #e7eaec;
-}
-.sidebar-container .sidebar-title h3 {
- margin-bottom: 3px;
- padding-left: 2px;
-}
-.sidebar-container .tab-content h4 {
- margin-bottom: 5px;
-}
-.sidebar-container .sidebar-message > a > .pull-left {
- margin-right: 10px;
-}
-.sidebar-container .sidebar-message > a {
- text-decoration: none;
- color: inherit;
-}
-.sidebar-container .sidebar-message {
- padding: 15px 20px;
-}
-.sidebar-container .sidebar-message .message-avatar {
- height: 38px;
- width: 38px;
- border-radius: 50%;
-}
-.sidebar-container .setings-item {
- padding: 15px 20px;
- border-bottom: 1px solid #e7eaec;
-}
-body {
- font-family: "open sans", "Helvetica Neue", Helvetica, Arial, sans-serif;
- background-color: #2f4050;
- font-size: 13px;
- color: #34495E;
- overflow-x: hidden;
-}
-html,
-body {
- height: 100%;
-}
-body.full-height-layout #wrapper,
-body.full-height-layout #page-wrapper {
- height: 100%;
-}
-#page-wrapper {
- min-height: auto;
-}
-.block {
- display: block;
-}
-.clear {
- display: block;
- overflow: hidden;
-}
-a {
- cursor: pointer;
- color: #34495E;
- text-decoration: none;
-}
-a:hover,
-a:focus {
- text-decoration: underline;
- color: #222f3d;
-}
-.border-bottom {
- border-bottom: 1px solid #e7eaec !important;
-}
-.font-bold {
- font-weight: 600;
-}
-.font-noraml {
- font-weight: 400;
-}
-.text-uppercase {
- text-transform: uppercase;
-}
-.b-r {
- border-right: 1px solid #e7eaec;
-}
-.hr-line-dashed {
- border-top: 1px dashed #e7eaec;
- color: #ffffff;
- background-color: #ffffff;
- height: 1px;
- margin: 20px 0;
-}
-.hr-line-solid {
- border-bottom: 1px solid #e7eaec;
- background-color: rgba(0, 0, 0, 0);
- border-style: solid !important;
- margin-top: 15px;
- margin-bottom: 15px;
-}
-video {
- width: 100% !important;
- height: auto !important;
-}
-/* GALLERY */
-.gallery > .row > div {
- margin-bottom: 15px;
-}
-.fancybox img {
- margin-bottom: 5px;
- /* Only for demo */
- width: 24%;
-}
-/* Summernote text editor */
-.note-editor {
- height: auto !important;
- min-height: 300px;
-}
-.note-editor.fullscreen {
- z-index: 2050;
-}
-/* MODAL */
-.modal-content {
- background-clip: padding-box;
- background-color: #FFFFFF;
- border: 1px solid rgba(0, 0, 0, 0);
- border-radius: 4px;
- box-shadow: 0 1px 3px rgba(0, 0, 0, 0.3);
- outline: 0 none;
- position: relative;
-}
-.modal-dialog {
- z-index: 2200;
-}
-.modal-body {
- padding: 20px 30px 30px 30px;
-}
-.inmodal .modal-body {
- background: #f8fafb;
-}
-.inmodal .modal-header {
- padding: 30px 15px;
- text-align: center;
-}
-.animated.modal.fade .modal-dialog {
- -webkit-transform: none;
- transform: none;
-}
-.inmodal .modal-title {
- font-size: 26px;
-}
-.inmodal .modal-icon {
- font-size: 84px;
- color: #e2e3e3;
-}
-.modal-footer {
- margin-top: 0;
-}
-/* WRAPPERS */
-#wrapper {
- width: 100%;
- overflow-x: hidden;
-}
-.wrapper {
- padding: 0 20px;
-}
-.wrapper-content {
- padding: 20px 10px 40px;
-}
-#page-wrapper {
- padding: 0 15px;
- min-height: 568px;
- position: relative !important;
-}
-@media (min-width: 768px) {
- #page-wrapper {
- position: inherit;
- margin: 0 0 0 240px;
- min-height: 2002px;
- }
-}
-.title-action {
- text-align: right;
- padding-top: 30px;
-}
-.ibox-content h1,
-.ibox-content h2,
-.ibox-content h3,
-.ibox-content h4,
-.ibox-content h5,
-.ibox-title h1,
-.ibox-title h2,
-.ibox-title h3,
-.ibox-title h4,
-.ibox-title h5 {
- margin-top: 5px;
-}
-ul.unstyled,
-ol.unstyled {
- list-style: none outside none;
- margin-left: 0;
-}
-.big-icon {
- font-size: 160px !important;
- color: #e5e6e7;
-}
-/* FOOTER */
-.footer {
- background: none repeat scroll 0 0 white;
- border-top: 1px solid #e7eaec;
- bottom: 0;
- left: 0;
- padding: 10px 20px;
- position: absolute;
- right: 0;
-}
-.footer.fixed_full {
- position: fixed;
- bottom: 0;
- left: 0;
- right: 0;
- z-index: 1000;
- padding: 10px 20px;
- background: white;
- border-top: 1px solid #e7eaec;
-}
-.footer.fixed {
- position: fixed;
- bottom: 0;
- left: 0;
- right: 0;
- z-index: 1000;
- padding: 10px 20px;
- background: white;
- border-top: 1px solid #e7eaec;
- margin-left: 220px;
-}
-body.mini-navbar .footer.fixed,
-body.body-small.mini-navbar .footer.fixed {
- margin: 0 0 0 70px;
-}
-body.mini-navbar.canvas-menu .footer.fixed,
-body.canvas-menu .footer.fixed {
- margin: 0 !important;
-}
-body.fixed-sidebar.body-small.mini-navbar .footer.fixed {
- margin: 0 0 0 220px;
-}
-body.body-small .footer.fixed {
- margin-left: 0;
-}
-/* PANELS */
-.page-heading {
- border-top: 0;
- padding: 0 0 20px 0;
-}
-.panel-heading h1,
-.panel-heading h2 {
- margin-bottom: 5px;
-}
-/* TABLES */
-.table-bordered {
- border: 1px solid #EBEBEB;
-}
-.table-bordered > thead > tr > th,
-.table-bordered > thead > tr > td {
- background-color: #F5F5F6;
- border-bottom-width: 1px;
-}
-.table-bordered > thead > tr > th,
-.table-bordered > tbody > tr > th,
-.table-bordered > tfoot > tr > th,
-.table-bordered > thead > tr > td,
-.table-bordered > tbody > tr > td,
-.table-bordered > tfoot > tr > td {
- border: 1px solid #e7e7e7;
-}
-.table > thead > tr > th {
- border-bottom: 1px solid #DDDDDD;
- vertical-align: bottom;
-}
-.table > thead > tr > th,
-.table > tbody > tr > th,
-.table > tfoot > tr > th,
-.table > thead > tr > td,
-.table > tbody > tr > td,
-.table > tfoot > tr > td {
- border-top: 1px solid #e7eaec;
- line-height: 1.42857;
- padding: 8px;
- vertical-align: top;
-}
-.table.table-align-middle tbody > tr > td {
- vertical-align: middle;
-}
-/* PANELS */
-.panel.blank-panel {
- background: none;
- margin: 0;
-}
-.blank-panel .panel-heading {
- padding-bottom: 0;
-}
-.nav-tabs > li.active > a,
-.nav-tabs > li.active > a:hover,
-.nav-tabs > li.active > a:focus {
- -moz-border-bottom-colors: none;
- -moz-border-left-colors: none;
- -moz-border-right-colors: none;
- -moz-border-top-colors: none;
- background: none;
- border-color: #DDDDDD #DDDDDD rgba(0, 0, 0, 0);
- border-bottom: #f3f3f4;
- -o-border-image: none;
- border-image: none;
- border-style: solid;
- border-width: 1px;
- color: #555555;
- cursor: default;
-}
-.nav.nav-tabs li {
- background: none;
- border: none;
-}
-.nav-tabs > li > a {
- color: #A7B1C2;
- font-weight: 600;
- padding: 10px 20px 10px 25px;
-}
-.nav-tabs > li > a:hover,
-.nav-tabs > li > a:focus {
- background-color: #e6e6e6;
- color: #34495E;
-}
-.ui-tab .tab-content {
- padding: 20px 0;
-}
-/* GLOBAL */
-.no-padding {
- padding: 0 !important;
-}
-.no-borders {
- border: none !important;
-}
-.no-margins {
- margin: 0 !important;
-}
-.no-top-border {
- border-top: 0 !important;
-}
-.ibox-content.text-box {
- padding-bottom: 0;
- padding-top: 15px;
-}
-.border-left-right {
- border-left: 1px solid #e7eaec;
- border-right: 1px solid #e7eaec;
- border-top: none;
- border-bottom: none;
-}
-.border-left {
- border-left: 1px solid #e7eaec;
- border-right: none;
- border-top: none;
- border-bottom: none;
-}
-.border-right {
- border-left: none;
- border-right: 1px solid #e7eaec;
- border-top: none;
- border-bottom: none;
-}
-.full-width {
- width: 100% !important;
-}
-.link-block {
- font-size: 12px;
- padding: 10px;
-}
-.nav.navbar-top-links .link-block a {
- font-size: 12px;
-}
-.link-block a {
- font-size: 10px;
- color: inherit;
-}
-body.mini-navbar .branding {
- display: none;
-}
-img.circle-border {
- border: 6px solid #FFFFFF;
- border-radius: 50%;
-}
-.branding {
- float: left;
- color: #FFFFFF;
- font-size: 18px;
- font-weight: 600;
- padding: 17px 20px;
- text-align: center;
- background-color: #1BBC9D;
-}
-.login-panel {
- margin-top: 25%;
-}
-.icons-box h3 {
- margin-top: 10px;
- margin-bottom: 10px;
-}
-.icons-box .infont a i {
- font-size: 25px;
- display: block;
- color: #34495E;
-}
-.icons-box .infont a {
- color: #a6a8a9;
-}
-.icons-box .infont a {
- padding: 10px;
- margin: 1px;
- display: block;
-}
-.ui-draggable .ibox-title {
- cursor: move;
-}
-.breadcrumb {
- background-color: #ffffff;
- padding: 0;
- margin-bottom: 0;
-}
-.breadcrumb > li a {
- color: inherit;
-}
-.breadcrumb > .active {
- color: inherit;
-}
-code {
- background-color: #F9F2F4;
- border-radius: 4px;
- color: #ca4440;
- font-size: 90%;
- padding: 2px 4px;
- white-space: nowrap;
-}
-.ibox {
- clear: both;
- margin-bottom: 25px;
- margin-top: 0;
- padding: 0;
-}
-.ibox.collapsed .ibox-content {
- display: none;
-}
-.ibox.collapsed .fa.fa-chevron-up:before {
- content: "\f078";
-}
-.ibox.collapsed .fa.fa-chevron-down:before {
- content: "\f077";
-}
-.ibox:after,
-.ibox:before {
- display: table;
-}
-.ibox-title {
- -moz-border-bottom-colors: none;
- -moz-border-left-colors: none;
- -moz-border-right-colors: none;
- -moz-border-top-colors: none;
- background-color: #ffffff;
- border-color: #e7eaec;
- -o-border-image: none;
- border-image: none;
- border-style: solid solid none;
- border-width: 3px 0 0;
- color: inherit;
- margin-bottom: 0;
- padding: 14px 15px 7px;
- min-height: 48px;
-}
-.ibox-content {
- background-color: #ffffff;
- color: inherit;
- padding: 15px 20px 20px 20px;
- border-color: #e7eaec;
- -o-border-image: none;
- border-image: none;
- border-style: solid solid none;
- border-width: 1px 0;
-}
-.ibox-footer {
- color: inherit;
- border-top: 1px solid #e7eaec;
- font-size: 90%;
- background: #ffffff;
- padding: 10px 15px;
-}
-table.table-mail tr td {
- padding: 12px;
-}
-.table-mail .check-mail {
- padding-left: 20px;
-}
-.table-mail .mail-date {
- padding-right: 20px;
-}
-.star-mail,
-.check-mail {
- width: 40px;
-}
-.unread td a,
-.unread td {
- font-weight: 600;
- color: inherit;
-}
-.read td a,
-.read td {
- font-weight: normal;
- color: inherit;
-}
-.unread td {
- background-color: #f9f8f8;
-}
-.ibox-content {
- clear: both;
-}
-.ibox-heading {
- background-color: #f3f6fb;
- border-bottom: none;
-}
-.ibox-heading h3 {
- font-weight: 200;
- font-size: 24px;
-}
-.ibox-title h5 {
- display: inline-block;
- font-size: 14px;
- margin: 0 0 7px;
- padding: 0;
- text-overflow: ellipsis;
- float: left;
-}
-.ibox-title .label {
- float: left;
- margin-left: 4px;
-}
-.ibox-tools {
- display: block;
- float: none;
- margin-top: 0;
- position: relative;
- padding: 0;
- text-align: right;
-}
-.ibox-tools a {
- cursor: pointer;
- margin-left: 5px;
- color: #c4c4c4;
-}
-.ibox-tools a.btn-primary {
- color: #fff;
-}
-.ibox-tools .dropdown-menu > li > a {
- padding: 4px 10px;
- font-size: 12px;
-}
-.ibox .ibox-tools.open > .dropdown-menu {
- left: auto;
- right: 0;
-}
-/* BACKGROUNDS */
-.gray-bg {
- background-color: #f3f3f4;
-}
-.white-bg {
- background-color: #ffffff;
-}
-.navy-bg {
- background-color: #1BBC9D;
- color: #ffffff;
-}
-.blue-bg {
- background-color: #273643;
- color: #ffffff;
-}
-.lazur-bg {
- background-color: #23c6c8;
- color: #ffffff;
-}
-.yellow-bg {
- background-color: #F1C40F;
- color: #ffffff;
-}
-.red-bg {
- background-color: #f9311d;
- color: #ffffff;
-}
-.black-bg {
- background-color: #262626;
-}
-.panel-primary {
- border-color: #1BBC9D;
-}
-.panel-primary > .panel-heading {
- background-color: #1BBC9D;
- border-color: #1BBC9D;
-}
-.panel-success {
- border-color: #273643;
-}
-.panel-success > .panel-heading {
- background-color: #273643;
- border-color: #273643;
- color: #ffffff;
-}
-.panel-info {
- border-color: #23c6c8;
-}
-.panel-info > .panel-heading {
- background-color: #23c6c8;
- border-color: #23c6c8;
- color: #ffffff;
-}
-.panel-warning {
- border-color: #F1C40F;
-}
-.panel-warning > .panel-heading {
- background-color: #F1C40F;
- border-color: #F1C40F;
- color: #ffffff;
-}
-.panel-danger {
- border-color: #f9311d;
-}
-.panel-danger > .panel-heading {
- background-color: #f9311d;
- border-color: #f9311d;
- color: #ffffff;
-}
-.progress-bar {
- background-color: #1BBC9D;
-}
-.progress-small,
-.progress-small .progress-bar {
- height: 10px;
-}
-.progress-small,
-.progress-mini {
- margin-top: 5px;
-}
-.progress-mini,
-.progress-mini .progress-bar {
- height: 5px;
- margin-bottom: 0;
-}
-.progress-bar-navy-light {
- background-color: #3dc7ab;
-}
-.progress-bar-success {
- background-color: #273643;
-}
-.progress-bar-info {
- background-color: #23c6c8;
-}
-.progress-bar-warning {
- background-color: #F1C40F;
-}
-.progress-bar-danger {
- background-color: #f9311d;
-}
-.panel-title {
- font-size: inherit;
-}
-.jumbotron {
- border-radius: 6px;
- padding: 40px;
-}
-.jumbotron h1 {
- margin-top: 0;
-}
-/* COLORS */
-.text-navy {
- color: #1BBC9D;
-}
-.text-primary {
- color: inherit;
-}
-.text-success {
- color: #273643;
-}
-.text-info {
- color: #23c6c8;
-}
-.text-warning {
- color: #F1C40F;
-}
-.text-danger {
- color: #f9311d;
-}
-.text-muted {
- color: #888888;
-}
-.text-white {
- color: #ffffff;
-}
-.simple_tag {
- background-color: #f3f3f4;
- border: 1px solid #e7eaec;
- border-radius: 2px;
- color: inherit;
- font-size: 10px;
- margin-right: 5px;
- margin-top: 5px;
- padding: 5px 12px;
- display: inline-block;
-}
-.img-shadow {
- box-shadow: 0 0 3px 0 #919191;
-}
-/* For handle diferent bg color in AngularJS version */
-.dashboards\.dashboard_2 nav.navbar,
-.dashboards\.dashboard_3 nav.navbar,
-.mailbox\.inbox nav.navbar,
-.mailbox\.email_view nav.navbar,
-.mailbox\.email_compose nav.navbar,
-.dashboards\.dashboard_4_1 nav.navbar,
-.metrics nav.navbar,
-.metrics\.index nav.navbar,
-.dashboards\.dashboard_5 nav.navbar {
- background: #fff;
-}
-/* For handle diferent bg color in MVC version */
-.Dashboard_2 .navbar.navbar-static-top,
-.Dashboard_3 .navbar.navbar-static-top,
-.Dashboard_4_1 .navbar.navbar-static-top,
-.ComposeEmail .navbar.navbar-static-top,
-.EmailView .navbar.navbar-static-top,
-.Inbox .navbar.navbar-static-top,
-.Metrics .navbar.navbar-static-top,
-.Dashboard_5 .navbar.navbar-static-top {
- background: #fff;
-}
-a.close-canvas-menu {
- position: absolute;
- top: 10px;
- right: 15px;
- z-index: 1011;
- color: #a7b1c2;
-}
-a.close-canvas-menu:hover {
- color: #fff;
-}
-.close-canvas-menu {
- display: none;
-}
-.canvas-menu .close-canvas-menu {
- display: block;
-}
-.light-navbar .navbar.navbar-static-top {
- background-color: #fff;
-}
-/* FULL HEIGHT */
-.full-height {
- height: 100%;
-}
-.fh-breadcrumb {
- height: calc(100% - 196px);
- margin: 0 -15px;
- position: relative;
-}
-.fh-no-breadcrumb {
- height: calc(100% - 99px);
- margin: 0 -15px;
- position: relative;
-}
-.fh-column {
- background: #fff;
- height: 100%;
- width: 240px;
- float: left;
-}
-.modal-backdrop {
- z-index: 2040 !important;
-}
-.modal {
- z-index: 2050 !important;
-}
-.spiner-example {
- height: 200px;
- padding-top: 70px;
-}
-/* MARGINS & PADDINGS */
-.p-xxs {
- padding: 5px;
-}
-.p-xs {
- padding: 10px;
-}
-.p-sm {
- padding: 15px;
-}
-.p-m {
- padding: 20px;
-}
-.p-md {
- padding: 25px;
-}
-.p-lg {
- padding: 30px;
-}
-.p-xl {
- padding: 40px;
-}
-.p-w-xs {
- padding: 0 10px;
-}
-.p-w-sm {
- padding: 0 15px;
-}
-.p-w-m {
- padding: 0 20px;
-}
-.p-w-md {
- padding: 0 25px;
-}
-.p-w-lg {
- padding: 0 30px;
-}
-.p-w-xl {
- padding: 0 40px;
-}
-.m-xxs {
- margin: 2px 4px;
-}
-.m-xs {
- margin: 5px;
-}
-.m-sm {
- margin: 10px;
-}
-.m {
- margin: 15px;
-}
-.m-md {
- margin: 20px;
-}
-.m-lg {
- margin: 30px;
-}
-.m-xl {
- margin: 50px;
-}
-.m-n {
- margin: 0 !important;
-}
-.m-l-none {
- margin-left: 0;
-}
-.m-l-xs {
- margin-left: 5px;
-}
-.m-l-sm {
- margin-left: 10px;
-}
-.m-l {
- margin-left: 15px;
-}
-.m-l-md {
- margin-left: 20px;
-}
-.m-l-lg {
- margin-left: 30px;
-}
-.m-l-xl {
- margin-left: 40px;
-}
-.m-l-n-xxs {
- margin-left: -1px;
-}
-.m-l-n-xs {
- margin-left: -5px;
-}
-.m-l-n-sm {
- margin-left: -10px;
-}
-.m-l-n {
- margin-left: -15px;
-}
-.m-l-n-md {
- margin-left: -20px;
-}
-.m-l-n-lg {
- margin-left: -30px;
-}
-.m-l-n-xl {
- margin-left: -40px;
-}
-.m-t-none {
- margin-top: 0;
-}
-.m-t-xxs {
- margin-top: 1px;
-}
-.m-t-xs {
- margin-top: 5px;
-}
-.m-t-sm {
- margin-top: 10px;
-}
-.m-t {
- margin-top: 15px;
-}
-.m-t-md {
- margin-top: 20px;
-}
-.m-t-lg {
- margin-top: 30px;
-}
-.m-t-xl {
- margin-top: 40px;
-}
-.m-t-n-xxs {
- margin-top: -1px;
-}
-.m-t-n-xs {
- margin-top: -5px;
-}
-.m-t-n-sm {
- margin-top: -10px;
-}
-.m-t-n {
- margin-top: -15px;
-}
-.m-t-n-md {
- margin-top: -20px;
-}
-.m-t-n-lg {
- margin-top: -30px;
-}
-.m-t-n-xl {
- margin-top: -40px;
-}
-.m-r-none {
- margin-right: 0;
-}
-.m-r-xxs {
- margin-right: 1px;
-}
-.m-r-xs {
- margin-right: 5px;
-}
-.m-r-sm {
- margin-right: 10px;
-}
-.m-r {
- margin-right: 15px;
-}
-.m-r-md {
- margin-right: 20px;
-}
-.m-r-lg {
- margin-right: 30px;
-}
-.m-r-xl {
- margin-right: 40px;
-}
-.m-r-n-xxs {
- margin-right: -1px;
-}
-.m-r-n-xs {
- margin-right: -5px;
-}
-.m-r-n-sm {
- margin-right: -10px;
-}
-.m-r-n {
- margin-right: -15px;
-}
-.m-r-n-md {
- margin-right: -20px;
-}
-.m-r-n-lg {
- margin-right: -30px;
-}
-.m-r-n-xl {
- margin-right: -40px;
-}
-.m-b-none {
- margin-bottom: 0;
-}
-.m-b-xxs {
- margin-bottom: 1px;
-}
-.m-b-xs {
- margin-bottom: 5px;
-}
-.m-b-sm {
- margin-bottom: 10px;
-}
-.m-b {
- margin-bottom: 15px;
-}
-.m-b-md {
- margin-bottom: 20px;
-}
-.m-b-lg {
- margin-bottom: 30px;
-}
-.m-b-xl {
- margin-bottom: 40px;
-}
-.m-b-n-xxs {
- margin-bottom: -1px;
-}
-.m-b-n-xs {
- margin-bottom: -5px;
-}
-.m-b-n-sm {
- margin-bottom: -10px;
-}
-.m-b-n {
- margin-bottom: -15px;
-}
-.m-b-n-md {
- margin-bottom: -20px;
-}
-.m-b-n-lg {
- margin-bottom: -30px;
-}
-.m-b-n-xl {
- margin-bottom: -40px;
-}
-.space-15 {
- margin: 15px 0;
-}
-.space-20 {
- margin: 20px 0;
-}
-.space-25 {
- margin: 25px 0;
-}
-.space-30 {
- margin: 30px 0;
-}
-.fullscreen-ibox-mode .animated {
- -webkit-animation: none;
- animation: none;
-}
-body.fullscreen-ibox-mode {
- overflow-y: hidden;
-}
-.ibox.fullscreen {
- z-index: 2030;
- position: fixed;
- top: 0;
- left: 0;
- right: 0;
- bottom: 0;
- overflow: auto;
- margin-bottom: 0;
-}
-.ibox.fullscreen .collapse-link {
- display: none;
-}
-.ibox.fullscreen .ibox-content {
- min-height: calc(100% - 48px);
-}
-body.modal-open {
- padding-right: inherit !important;
-}
-body.modal-open .animated {
- -webkit-animation-fill-mode: initial;
- animation-fill-mode: initial;
- z-index: inherit;
-}
-/* Show profile dropdown on fixed sidebar */
-body.mini-navbar.fixed-sidebar .profile-element,
-.block {
- display: block !important;
-}
-body.mini-navbar.fixed-sidebar .nav-header {
- padding: 33px 25px;
-}
-body.mini-navbar.fixed-sidebar .logo-element {
- display: none;
-}
-.fullscreen-video .animated {
- -webkit-animation: none;
- animation: none;
-}
-/* SEARCH PAGE */
-.search-form {
- margin-top: 10px;
-}
-.search-result h3 {
- margin-bottom: 0;
- color: #1E0FBE;
-}
-.search-result .search-link {
- color: #006621;
-}
-.search-result p {
- font-size: 12px;
- margin-top: 5px;
-}
-/* CONTACTS */
-.contact-box {
- background-color: #ffffff;
- border: 1px solid #e7eaec;
- padding: 20px;
- margin-bottom: 20px;
-}
-.contact-box > a {
- color: inherit;
-}
-.contact-box.center-version {
- border: 1px solid #e7eaec;
- padding: 0;
-}
-.contact-box.center-version > a {
- display: block;
- background-color: #ffffff;
- padding: 20px;
- text-align: center;
-}
-.contact-box.center-version > a img {
- width: 80px;
- height: 80px;
- margin-top: 10px;
- margin-bottom: 10px;
-}
-.contact-box.center-version address {
- margin-bottom: 0;
-}
-.contact-box .contact-box-footer {
- text-align: center;
- background-color: #ffffff;
- border-top: 1px solid #e7eaec;
- padding: 15px 20px;
-}
-/* INVOICE */
-.invoice-table tbody > tr > td:last-child,
-.invoice-table tbody > tr > td:nth-child(4),
-.invoice-table tbody > tr > td:nth-child(3),
-.invoice-table tbody > tr > td:nth-child(2) {
- text-align: right;
-}
-.invoice-table thead > tr > th:last-child,
-.invoice-table thead > tr > th:nth-child(4),
-.invoice-table thead > tr > th:nth-child(3),
-.invoice-table thead > tr > th:nth-child(2) {
- text-align: right;
-}
-.invoice-total > tbody > tr > td:first-child {
- text-align: right;
-}
-.invoice-total > tbody > tr > td {
- border: 0 none;
-}
-.invoice-total > tbody > tr > td:last-child {
- border-bottom: 1px solid #DDDDDD;
- text-align: right;
- width: 15%;
-}
-/* ERROR & LOGIN & LOCKSCREEN*/
-.middle-box {
- max-width: 400px;
- z-index: 100;
- margin: 0 auto;
- padding-top: 40px;
-}
-.lockscreen.middle-box {
- width: 200px;
- padding-top: 110px;
-}
-.loginscreen.middle-box {
- width: 300px;
-}
-.loginColumns {
- max-width: 800px;
- margin: 0 auto;
- padding: 100px 20px 20px 20px;
-}
-.passwordBox {
- max-width: 460px;
- margin: 0 auto;
- padding: 100px 20px 20px 20px;
-}
-.logo-name {
- color: #e6e6e6;
- font-size: 180px;
- font-weight: 800;
- letter-spacing: -10px;
- margin-bottom: 0;
-}
-.middle-box h1 {
- font-size: 170px;
-}
-.wrapper .middle-box {
- margin-top: 140px;
-}
-.lock-word {
- z-index: 10;
- position: absolute;
- top: 110px;
- left: 50%;
- margin-left: -470px;
-}
-.lock-word span {
- font-size: 100px;
- font-weight: 600;
- color: #e9e9e9;
- display: inline-block;
-}
-.lock-word .first-word {
- margin-right: 160px;
-}
-/* DASBOARD */
-.dashboard-header {
- border-top: 0;
- padding: 20px 20px 20px 20px;
-}
-.dashboard-header h2 {
- margin-top: 10px;
- font-size: 26px;
-}
-.fist-item {
- border-top: none !important;
-}
-.statistic-box {
- margin-top: 40px;
-}
-.dashboard-header .list-group-item span.label {
- margin-right: 10px;
-}
-.list-group.clear-list .list-group-item {
- border-top: 1px solid #e7eaec;
- border-bottom: 0;
- border-right: 0;
- border-left: 0;
- padding: 10px 0;
-}
-ul.clear-list:first-child {
- border-top: none !important;
-}
-/* Intimeline */
-.timeline-item .date i {
- position: absolute;
- top: 0;
- right: 0;
- padding: 5px;
- width: 30px;
- text-align: center;
- border-top: 1px solid #e7eaec;
- border-bottom: 1px solid #e7eaec;
- border-left: 1px solid #e7eaec;
- background: #f8f8f8;
-}
-.timeline-item .date {
- text-align: right;
- width: 110px;
- position: relative;
- padding-top: 30px;
-}
-.timeline-item .content {
- border-left: 1px solid #e7eaec;
- border-top: 1px solid #e7eaec;
- padding-top: 10px;
- min-height: 100px;
-}
-.timeline-item .content:hover {
- background: #f6f6f6;
-}
-/* PIN BOARD */
-ul.notes li,
-ul.tag-list li {
- list-style: none;
-}
-ul.notes li h4 {
- margin-top: 20px;
- font-size: 16px;
-}
-ul.notes li div {
- text-decoration: none;
- color: #000;
- background: #ffc;
- display: block;
- height: 140px;
- width: 140px;
- padding: 1em;
- position: relative;
-}
-ul.notes li div small {
- position: absolute;
- top: 5px;
- right: 5px;
- font-size: 10px;
-}
-ul.notes li div a {
- position: absolute;
- right: 10px;
- bottom: 10px;
- color: inherit;
-}
-ul.notes li {
- margin: 10px 40px 50px 0;
- float: left;
-}
-ul.notes li div p {
- font-size: 12px;
-}
-ul.notes li div {
- text-decoration: none;
- color: #000;
- background: #ffc;
- display: block;
- height: 140px;
- width: 140px;
- padding: 1em;
- /* Firefox */
- /* Safari+Chrome */
- /* Opera */
- box-shadow: 5px 5px 2px rgba(33, 33, 33, 0.7);
-}
-ul.notes li div {
- -webkit-transform: rotate(-6deg);
- -o-transform: rotate(-6deg);
- -moz-transform: rotate(-6deg);
-}
-ul.notes li:nth-child(even) div {
- -o-transform: rotate(4deg);
- -webkit-transform: rotate(4deg);
- -moz-transform: rotate(4deg);
- position: relative;
- top: 5px;
-}
-ul.notes li:nth-child(3n) div {
- -o-transform: rotate(-3deg);
- -webkit-transform: rotate(-3deg);
- -moz-transform: rotate(-3deg);
- position: relative;
- top: -5px;
-}
-ul.notes li:nth-child(5n) div {
- -o-transform: rotate(5deg);
- -webkit-transform: rotate(5deg);
- -moz-transform: rotate(5deg);
- position: relative;
- top: -10px;
-}
-ul.notes li div:hover,
-ul.notes li div:focus {
- -webkit-transform: scale(1.1);
- -moz-transform: scale(1.1);
- -o-transform: scale(1.1);
- position: relative;
- z-index: 5;
-}
-ul.notes li div {
- text-decoration: none;
- color: #000;
- background: #ffc;
- display: block;
- height: 210px;
- width: 210px;
- padding: 1em;
- box-shadow: 5px 5px 7px rgba(33, 33, 33, 0.7);
- -moz-transition: -moz-transform 0.15s linear;
- -o-transition: -o-transform 0.15s linear;
- -webkit-transition: -webkit-transform 0.15s linear;
-}
-/* FILE MANAGER */
-.file-box {
- float: left;
- width: 220px;
-}
-.file-manager h5 {
- text-transform: uppercase;
-}
-.file-manager {
- list-style: none outside none;
- margin: 0;
- padding: 0;
-}
-.folder-list li a {
- color: #666666;
- display: block;
- padding: 5px 0;
-}
-.folder-list li {
- border-bottom: 1px solid #e7eaec;
- display: block;
-}
-.folder-list li i {
- margin-right: 8px;
- color: #3d4d5d;
-}
-.category-list li a {
- color: #666666;
- display: block;
- padding: 5px 0;
-}
-.category-list li {
- display: block;
-}
-.category-list li i {
- margin-right: 8px;
- color: #3d4d5d;
-}
-.category-list li a .text-navy {
- color: #273643;
-}
-.category-list li a .text-primary {
- color: #06cc51;
-}
-.category-list li a .text-info {
- color: #23c6c8;
-}
-.category-list li a .text-danger {
- color: #EF5352;
-}
-.category-list li a .text-warning {
- color: #F8AC59;
-}
-.file-manager h5.tag-title {
- margin-top: 20px;
-}
-.tag-list li {
- float: left;
-}
-.tag-list li a {
- font-size: 10px;
- background-color: #f3f3f4;
- padding: 5px 12px;
- color: inherit;
- border-radius: 2px;
- border: 1px solid #e7eaec;
- margin-right: 5px;
- margin-top: 5px;
- display: block;
-}
-.file {
- border: 1px solid #e7eaec;
- padding: 0;
- background-color: #ffffff;
- position: relative;
- margin-bottom: 20px;
- margin-right: 20px;
-}
-.file-manager .hr-line-dashed {
- margin: 15px 0;
-}
-.file .icon,
-.file .image {
- height: 100px;
- overflow: hidden;
-}
-.file .icon {
- padding: 15px 10px;
- text-align: center;
-}
-.file-control {
- color: inherit;
- font-size: 11px;
- margin-right: 10px;
-}
-.file-control.active {
- text-decoration: underline;
-}
-.file .icon i {
- font-size: 70px;
- color: #dadada;
-}
-.file .file-name {
- padding: 10px;
- background-color: #f8f8f8;
- border-top: 1px solid #e7eaec;
-}
-.file-name small {
- color: #34495E;
-}
-.corner {
- position: absolute;
- display: inline-block;
- width: 0;
- height: 0;
- line-height: 0;
- border: 0.6em solid transparent;
- border-right: 0.6em solid #f1f1f1;
- border-bottom: 0.6em solid #f1f1f1;
- right: 0em;
- bottom: 0em;
-}
-a.compose-mail {
- padding: 8px 10px;
-}
-.mail-search {
- max-width: 300px;
-}
-/* PROFILE */
-.profile-content {
- border-top: none !important;
-}
-.profile-stats {
- margin-right: 10px;
-}
-.profile-image {
- width: 120px;
- float: left;
-}
-.profile-image img {
- width: 96px;
- height: 96px;
-}
-.profile-info {
- margin-left: 120px;
-}
-.feed-activity-list .feed-element {
- border-bottom: 1px solid #e7eaec;
-}
-.feed-element:first-child {
- margin-top: 0;
-}
-.feed-element {
- padding-bottom: 15px;
-}
-.feed-element,
-.feed-element .media {
- margin-top: 15px;
-}
-.feed-element,
-.media-body {
- overflow: hidden;
-}
-.feed-element > .pull-left {
- margin-right: 10px;
-}
-.feed-element img.img-circle,
-.dropdown-messages-box img.img-circle {
- width: 38px;
- height: 38px;
-}
-.feed-element .well {
- border: 1px solid #e7eaec;
- box-shadow: none;
- margin-top: 10px;
- margin-bottom: 5px;
- padding: 10px 20px;
- font-size: 11px;
- line-height: 16px;
-}
-.feed-element .actions {
- margin-top: 10px;
-}
-.feed-element .photos {
- margin: 10px 0;
-}
-.feed-photo {
- max-height: 180px;
- border-radius: 4px;
- overflow: hidden;
- margin-right: 10px;
- margin-bottom: 10px;
-}
-.file-list li {
- padding: 5px 10px;
- font-size: 11px;
- border-radius: 2px;
- border: 1px solid #e7eaec;
- margin-bottom: 5px;
-}
-.file-list li a {
- color: inherit;
-}
-.file-list li a:hover {
- color: #273643;
-}
-.user-friends img {
- width: 42px;
- height: 42px;
- margin-bottom: 5px;
- margin-right: 5px;
-}
-/* MAILBOX */
-.mail-box {
- background-color: #ffffff;
- border: 1px solid #e7eaec;
- border-top: 0;
- padding: 0;
- margin-bottom: 20px;
-}
-.mail-box-header {
- background-color: #ffffff;
- border: 1px solid #e7eaec;
- border-bottom: 0;
- padding: 30px 20px 20px 20px;
-}
-.mail-box-header h2 {
- margin-top: 0;
-}
-.mailbox-content .tag-list li a {
- background: #ffffff;
-}
-.mail-body {
- border-top: 1px solid #e7eaec;
- padding: 20px;
-}
-.mail-text {
- border-top: 1px solid #e7eaec;
-}
-.mail-text .note-toolbar {
- padding: 10px 15px;
-}
-.mail-body .form-group {
- margin-bottom: 5px;
-}
-.mail-text .note-editor .note-toolbar {
- background-color: #F9F8F8;
-}
-.mail-attachment {
- border-top: 1px solid #e7eaec;
- padding: 20px;
- font-size: 12px;
-}
-.mailbox-content {
- background: none;
- border: none;
- padding: 10px;
-}
-.mail-ontact {
- width: 23%;
-}
-/* PROJECTS */
-.project-people,
-.project-actions {
- text-align: right;
- vertical-align: middle;
-}
-dd.project-people {
- text-align: left;
- margin-top: 5px;
-}
-.project-people img {
- width: 32px;
- height: 32px;
-}
-.project-title a {
- font-size: 14px;
- color: #34495E;
- font-weight: 600;
-}
-.project-list table tr td {
- border-top: none;
- border-bottom: 1px solid #e7eaec;
- padding: 15px 10px;
- vertical-align: middle;
-}
-.project-manager .tag-list li a {
- font-size: 10px;
- background-color: white;
- padding: 5px 12px;
- color: inherit;
- border-radius: 2px;
- border: 1px solid #e7eaec;
- margin-right: 5px;
- margin-top: 5px;
- display: block;
-}
-.project-files li a {
- font-size: 11px;
- color: #34495E;
- margin-left: 10px;
- line-height: 22px;
-}
-/* FAQ */
-.faq-item {
- padding: 20px;
- margin-bottom: 2px;
- background: #fff;
-}
-.faq-question {
- font-size: 18px;
- font-weight: 600;
- color: #273643;
- display: block;
-}
-.faq-question:hover {
- color: #1e2933;
-}
-.faq-answer {
- margin-top: 10px;
- background: #f3f3f4;
- border: 1px solid #e7eaec;
- border-radius: 3px;
- padding: 15px;
-}
-.faq-item .tag-item {
- background: #f3f3f4;
- padding: 2px 6px;
- font-size: 10px;
- text-transform: uppercase;
-}
-/* Chat view */
-.message-input {
- height: 90px !important;
-}
-.chat-avatar {
- white: 36px;
- height: 36px;
- float: left;
- margin-right: 10px;
-}
-.chat-user-name {
- padding: 10px;
-}
-.chat-user {
- padding: 8px 10px;
- border-bottom: 1px solid #e7eaec;
-}
-.chat-user a {
- color: inherit;
-}
-.chat-view {
- z-index: 20012;
-}
-.chat-users,
-.chat-statistic {
- margin-left: -30px;
-}
-@media (max-width: 992px) {
- .chat-users,
- .chat-statistic {
- margin-left: 0;
- }
-}
-.chat-view .ibox-content {
- padding: 0;
-}
-.chat-message {
- padding: 10px 20px;
-}
-.message-avatar {
- height: 48px;
- width: 48px;
- border: 1px solid #e7eaec;
- border-radius: 4px;
- margin-top: 1px;
-}
-.chat-discussion .chat-message.left .message-avatar {
- float: left;
- margin-right: 10px;
-}
-.chat-discussion .chat-message.right .message-avatar {
- float: right;
- margin-left: 10px;
-}
-.message {
- background-color: #fff;
- border: 1px solid #e7eaec;
- text-align: left;
- display: block;
- padding: 10px 20px;
- position: relative;
- border-radius: 4px;
-}
-.chat-discussion .chat-message.left .message-date {
- float: right;
-}
-.chat-discussion .chat-message.right .message-date {
- float: left;
-}
-.chat-discussion .chat-message.left .message {
- text-align: left;
- margin-left: 55px;
-}
-.chat-discussion .chat-message.right .message {
- text-align: right;
- margin-right: 55px;
-}
-.message-date {
- font-size: 10px;
- color: #888888;
-}
-.message-content {
- display: block;
-}
-.chat-discussion {
- background: #eee;
- padding: 15px;
- height: 400px;
- overflow-y: auto;
-}
-.chat-users {
- overflow-y: auto;
- height: 400px;
-}
-.chat-message-form .form-group {
- margin-bottom: 0;
-}
-/* jsTree */
-.jstree-open > .jstree-anchor > .fa-folder:before {
- content: "\f07c";
-}
-.jstree-default .jstree-icon.none {
- width: 0;
-}
-/* CLIENTS */
-.clients-list {
- margin-top: 20px;
-}
-.clients-list .tab-pane {
- position: relative;
- height: 600px;
-}
-.client-detail {
- position: relative;
- height: 620px;
-}
-.clients-list table tr td {
- height: 46px;
- vertical-align: middle;
- border: none;
-}
-.client-link {
- font-weight: 600;
- color: inherit;
-}
-.client-link:hover {
- color: inherit;
-}
-.client-avatar {
- width: 42px;
-}
-.client-avatar img {
- width: 28px;
- height: 28px;
- border-radius: 50%;
-}
-.contact-type {
- width: 20px;
- color: #88a2bd;
-}
-.client-status {
- text-align: left;
-}
-.client-detail .vertical-timeline-content p {
- margin: 0;
-}
-.client-detail .vertical-timeline-icon.gray-bg {
- color: #6789ab;
-}
-.clients-list .nav-tabs > li.active > a,
-.clients-list .nav-tabs > li.active > a:hover,
-.clients-list .nav-tabs > li.active > a:focus {
- border-bottom: 1px solid #fff;
-}
-/* BLOG ARTICLE */
-.blog h2 {
- font-weight: 700;
-}
-.blog h5 {
- margin: 0 0 5px 0;
-}
-.blog .btn {
- margin: 0 0 5px 0;
-}
-.article h1 {
- font-size: 48px;
- font-weight: 700;
- color: #2F4050;
-}
-.article p {
- font-size: 15px;
- line-height: 26px;
-}
-.article-title {
- text-align: center;
- margin: 40px 0 100px 0;
-}
-.article .ibox-content {
- padding: 40px;
-}
-/* ISSUE TRACKER */
-.issue-tracker .btn-link {
- color: #273643;
-}
-table.issue-tracker tbody tr td {
- vertical-align: middle;
- height: 50px;
-}
-.issue-info {
- width: 50%;
-}
-.issue-info a {
- font-weight: 600;
- color: #34495E;
-}
-.issue-info small {
- display: block;
-}
-/* TEAMS */
-.team-members {
- margin: 10px 0;
-}
-.team-members img.img-circle {
- width: 42px;
- height: 42px;
- margin-bottom: 5px;
-}
-/* AGILE BOARD */
-.sortable-list {
- padding: 10px 0;
-}
-.agile-list {
- list-style: none;
- margin: 0;
-}
-.agile-list li {
- background: #FAFAFB;
- border: 1px solid #e7eaec;
- margin: 0 0 10px 0;
- padding: 10px;
- border-radius: 2px;
-}
-.agile-list li:hover {
- cursor: pointer;
- background: #fff;
-}
-.agile-list li.warning-element {
- border-left: 3px solid #F1C40F;
-}
-.agile-list li.danger-element {
- border-left: 3px solid #f9311d;
-}
-.agile-list li.info-element {
- border-left: 3px solid #06cc51;
-}
-.agile-list li.success-element {
- border-left: 3px solid #273643;
-}
-.agile-detail {
- margin-top: 5px;
- font-size: 12px;
-}
-/* DIFF */
-ins {
- background-color: #c6ffc6;
- text-decoration: none;
-}
-del {
- background-color: #ffc6c6;
-}
-/* E-commerce */
-.product-box {
- padding: 0;
- border: 1px solid #e7eaec;
-}
-.product-box:hover,
-.product-box.active {
- border: 1px solid transparent;
- box-shadow: 0 3px 7px 0 #a8a8a8;
-}
-.product-imitation {
- text-align: center;
- padding: 90px 0;
- background-color: #f8f8f9;
- color: #bebec3;
- font-weight: 600;
-}
-.cart-product-imitation {
- text-align: center;
- padding-top: 30px;
- height: 80px;
- width: 80px;
- background-color: #f8f8f9;
-}
-.product-imitation.xl {
- padding: 120px 0;
-}
-.product-desc {
- padding: 20px;
- position: relative;
-}
-.ecommerce .tag-list {
- padding: 0;
-}
-.ecommerce .fa-star {
- color: #D1DADE;
-}
-.ecommerce .fa-star.active {
- color: #F1C40F;
-}
-.ecommerce .note-editor {
- border: 1px solid #e7eaec;
-}
-table.shoping-cart-table {
- margin-bottom: 0;
-}
-table.shoping-cart-table tr td {
- border: none;
- text-align: right;
-}
-table.shoping-cart-table tr td.desc,
-table.shoping-cart-table tr td:first-child {
- text-align: left;
-}
-table.shoping-cart-table tr td:last-child {
- width: 80px;
-}
-.product-name {
- font-size: 16px;
- font-weight: 600;
- color: #34495E;
- display: block;
- margin: 2px 0 5px 0;
-}
-.product-name:hover,
-.product-name:focus {
- color: #273643;
-}
-.product-price {
- font-size: 14px;
- font-weight: 600;
- color: #ffffff;
- background-color: #273643;
- padding: 6px 12px;
- position: absolute;
- top: -32px;
- right: 0;
-}
-.product-detail .ibox-content {
- padding: 30px 30px 50px 30px;
-}
-.image-imitation {
- background-color: #f8f8f9;
- text-align: center;
- padding: 200px 0;
-}
-.product-main-price small {
- font-size: 10px;
-}
-.product-images {
- margin: 0 20px;
-}
-/* Social feed */
-.social-feed-separated .social-feed-box {
- margin-left: 62px;
-}
-.social-feed-separated .social-avatar {
- float: left;
- padding: 0;
-}
-.social-feed-separated .social-avatar img {
- width: 52px;
- height: 52px;
- border: 1px solid #e7eaec;
-}
-.social-feed-separated .social-feed-box .social-avatar {
- padding: 15px 15px 0 15px;
- float: none;
-}
-.social-feed-box {
- /*padding: 15px;*/
- border: 1px solid #e7eaec;
- background: #fff;
- margin-bottom: 15px;
-}
-.article .social-feed-box {
- margin-bottom: 0;
- border-bottom: none;
-}
-.article .social-feed-box:last-child {
- margin-bottom: 0;
- border-bottom: 1px solid #e7eaec;
-}
-.article .social-feed-box p {
- font-size: 13px;
- line-height: 18px;
-}
-.social-action {
- margin: 15px;
-}
-.social-avatar {
- padding: 15px 15px 0 15px;
-}
-.social-comment .social-comment {
- margin-left: 45px;
-}
-.social-avatar img {
- height: 40px;
- width: 40px;
- margin-right: 10px;
-}
-.social-avatar .media-body a {
- font-size: 14px;
- display: block;
-}
-.social-body {
- padding: 15px;
-}
-.social-body img {
- margin-bottom: 10px;
-}
-.social-footer {
- border-top: 1px solid #e7eaec;
- padding: 10px 15px;
- background: #f9f9f9;
-}
-.social-footer .social-comment img {
- width: 32px;
- margin-right: 10px;
-}
-.social-comment:first-child {
- margin-top: 0;
-}
-.social-comment {
- margin-top: 15px;
-}
-.social-comment textarea {
- font-size: 12px;
-}
-/* Vote list */
-.vote-item {
- padding: 20px 25px;
- background: #ffffff;
- border-top: 1px solid #e7eaec;
-}
-.vote-item:last-child {
- border-bottom: 1px solid #e7eaec;
-}
-.vote-item:hover {
- background: #fbfbfb;
-}
-.vote-actions {
- float: left;
- width: 30px;
- margin-right: 15px;
- text-align: center;
-}
-.vote-actions a {
- color: #273643;
- font-weight: 600;
-}
-.vote-actions {
- font-weight: 600;
-}
-.vote-title {
- display: block;
- color: inherit;
- font-size: 18px;
- font-weight: 600;
- margin-top: 5px;
- margin-bottom: 2px;
-}
-.vote-title:hover,
-.vote-title:focus {
- color: inherit;
-}
-.vote-info,
-.vote-title {
- margin-left: 45px;
-}
-.vote-info,
-.vote-info a {
- color: #7795b4;
- font-size: 12px;
-}
-.vote-info a {
- margin-right: 10px;
-}
-.vote-info a:hover {
- color: #273643;
-}
-.vote-icon {
- text-align: right;
- font-size: 38px;
- display: block;
- color: #b9c8d8;
-}
-.vote-icon.active {
- color: #273643;
-}
-body.body-small .vote-icon {
- display: none;
-}
-.lightBoxGallery {
- text-align: center;
-}
-.lightBoxGallery img {
- margin: 5px;
-}
-/*
- * metismenu - v2.0.2
- * A jQuery menu plugin
- * https://github.com/onokumus/metisMenu
- *
- * Made by Osman Nuri Okumus
- * Under MIT License
- */
-.metismenu .nav-header {
- background: #273643;
- color: #606f8a;
-}
-.metismenu .plus-minus,
-.metismenu .plus-times {
- float: right;
-}
-.metismenu .arrow {
- float: right;
- line-height: 1.42857;
-}
-.metismenu .glyphicon.arrow:before {
- content: "\e079";
-}
-.metismenu .active > a > .glyphicon.arrow:before {
- content: "\e114";
-}
-.metismenu .fa.arrow:before {
- content: "\f104";
-}
-.metismenu .active > a > .fa.arrow:before {
- content: "\f107";
-}
-.metismenu .ion.arrow:before {
- content: "\f3d2";
-}
-.metismenu .active > a > .ion.arrow:before {
- content: "\f3d0";
-}
-.metismenu .fa.plus-minus:before,
-.metismenu .fa.plus-times:before {
- content: "\f067";
-}
-.metismenu .active > a > .fa.plus-times {
- -webkit-transform: rotate(45deg);
- transform: rotate(45deg);
-}
-.metismenu .active > a > .fa.plus-minus:before {
- content: "\f068";
-}
-.metismenu .collapse {
- display: none;
-}
-.metismenu .collapse.in {
- display: block;
-}
-.metismenu .collapsing {
- position: relative;
- height: 0;
- overflow: hidden;
- -webkit-transition-timing-function: ease;
- transition-timing-function: ease;
- -webkit-transition-duration: .35s;
- transition-duration: .35s;
- -webkit-transition-property: height, visibility;
- transition-property: height, visibility;
-}
-/*
- * Usage:
- *
- *
- *
- */
-.sk-spinner-rotating-plane.sk-spinner {
- width: 30px;
- height: 30px;
- background-color: #1BBC9D;
- margin: 0 auto;
- -webkit-animation: sk-rotatePlane 1.2s infinite ease-in-out;
- animation: sk-rotatePlane 1.2s infinite ease-in-out;
-}
-@-webkit-keyframes sk-rotatePlane {
- 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 sk-rotatePlane {
- 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);
- }
-}
-/*
- * Usage:
- *
- *
- *
- */
-.sk-spinner-double-bounce.sk-spinner {
- width: 40px;
- height: 40px;
- position: relative;
- margin: 0 auto;
-}
-.sk-spinner-double-bounce .sk-double-bounce1,
-.sk-spinner-double-bounce .sk-double-bounce2 {
- width: 100%;
- height: 100%;
- border-radius: 50%;
- background-color: #1BBC9D;
- opacity: 0.6;
- position: absolute;
- top: 0;
- left: 0;
- -webkit-animation: sk-doubleBounce 2s infinite ease-in-out;
- animation: sk-doubleBounce 2s infinite ease-in-out;
-}
-.sk-spinner-double-bounce .sk-double-bounce2 {
- -webkit-animation-delay: -1s;
- animation-delay: -1s;
-}
-@-webkit-keyframes sk-doubleBounce {
- 0%,
- 100% {
- -webkit-transform: scale(0);
- transform: scale(0);
- }
- 50% {
- -webkit-transform: scale(1);
- transform: scale(1);
- }
-}
-@keyframes sk-doubleBounce {
- 0%,
- 100% {
- -webkit-transform: scale(0);
- transform: scale(0);
- }
- 50% {
- -webkit-transform: scale(1);
- transform: scale(1);
- }
-}
-/*
- * Usage:
- *
- *
- *
- */
-.sk-spinner-wave.sk-spinner {
- margin: 0 auto;
- width: 50px;
- height: 30px;
- text-align: center;
- font-size: 10px;
-}
-.sk-spinner-wave div {
- background-color: #1BBC9D;
- height: 100%;
- width: 6px;
- display: inline-block;
- -webkit-animation: sk-waveStretchDelay 1.2s infinite ease-in-out;
- animation: sk-waveStretchDelay 1.2s infinite ease-in-out;
-}
-.sk-spinner-wave .sk-rect2 {
- -webkit-animation-delay: -1.1s;
- animation-delay: -1.1s;
-}
-.sk-spinner-wave .sk-rect3 {
- -webkit-animation-delay: -1s;
- animation-delay: -1s;
-}
-.sk-spinner-wave .sk-rect4 {
- -webkit-animation-delay: -0.9s;
- animation-delay: -0.9s;
-}
-.sk-spinner-wave .sk-rect5 {
- -webkit-animation-delay: -0.8s;
- animation-delay: -0.8s;
-}
-@-webkit-keyframes sk-waveStretchDelay {
- 0%,
- 40%,
- 100% {
- -webkit-transform: scaleY(0.4);
- transform: scaleY(0.4);
- }
- 20% {
- -webkit-transform: scaleY(1);
- transform: scaleY(1);
- }
-}
-@keyframes sk-waveStretchDelay {
- 0%,
- 40%,
- 100% {
- -webkit-transform: scaleY(0.4);
- transform: scaleY(0.4);
- }
- 20% {
- -webkit-transform: scaleY(1);
- transform: scaleY(1);
- }
-}
-/*
- * Usage:
- *
- *
- *
- */
-.sk-spinner-wandering-cubes.sk-spinner {
- margin: 0 auto;
- width: 32px;
- height: 32px;
- position: relative;
-}
-.sk-spinner-wandering-cubes .sk-cube1,
-.sk-spinner-wandering-cubes .sk-cube2 {
- background-color: #1BBC9D;
- width: 10px;
- height: 10px;
- position: absolute;
- top: 0;
- left: 0;
- -webkit-animation: sk-wanderingCubeMove 1.8s infinite ease-in-out;
- animation: sk-wanderingCubeMove 1.8s infinite ease-in-out;
-}
-.sk-spinner-wandering-cubes .sk-cube2 {
- -webkit-animation-delay: -0.9s;
- animation-delay: -0.9s;
-}
-@-webkit-keyframes sk-wanderingCubeMove {
- 25% {
- -webkit-transform: translateX(42px) rotate(-90deg) scale(0.5);
- transform: translateX(42px) rotate(-90deg) scale(0.5);
- }
- 50% {
- /* Hack to make FF rotate in the right direction */
- -webkit-transform: translateX(42px) translateY(42px) rotate(-179deg);
- transform: translateX(42px) translateY(42px) rotate(-179deg);
- }
- 50.1% {
- -webkit-transform: translateX(42px) translateY(42px) rotate(-180deg);
- transform: translateX(42px) translateY(42px) rotate(-180deg);
- }
- 75% {
- -webkit-transform: translateX(0px) translateY(42px) rotate(-270deg) scale(0.5);
- transform: translateX(0px) translateY(42px) rotate(-270deg) scale(0.5);
- }
- 100% {
- -webkit-transform: rotate(-360deg);
- transform: rotate(-360deg);
- }
-}
-@keyframes sk-wanderingCubeMove {
- 25% {
- -webkit-transform: translateX(42px) rotate(-90deg) scale(0.5);
- transform: translateX(42px) rotate(-90deg) scale(0.5);
- }
- 50% {
- /* Hack to make FF rotate in the right direction */
- -webkit-transform: translateX(42px) translateY(42px) rotate(-179deg);
- transform: translateX(42px) translateY(42px) rotate(-179deg);
- }
- 50.1% {
- -webkit-transform: translateX(42px) translateY(42px) rotate(-180deg);
- transform: translateX(42px) translateY(42px) rotate(-180deg);
- }
- 75% {
- -webkit-transform: translateX(0px) translateY(42px) rotate(-270deg) scale(0.5);
- transform: translateX(0px) translateY(42px) rotate(-270deg) scale(0.5);
- }
- 100% {
- -webkit-transform: rotate(-360deg);
- transform: rotate(-360deg);
- }
-}
-/*
- * Usage:
- *
- *
- *
- */
-.sk-spinner-pulse.sk-spinner {
- width: 40px;
- height: 40px;
- margin: 0 auto;
- background-color: #1BBC9D;
- border-radius: 100%;
- -webkit-animation: sk-pulseScaleOut 1s infinite ease-in-out;
- animation: sk-pulseScaleOut 1s infinite ease-in-out;
-}
-@-webkit-keyframes sk-pulseScaleOut {
- 0% {
- -webkit-transform: scale(0);
- transform: scale(0);
- }
- 100% {
- -webkit-transform: scale(1);
- transform: scale(1);
- opacity: 0;
- }
-}
-@keyframes sk-pulseScaleOut {
- 0% {
- -webkit-transform: scale(0);
- transform: scale(0);
- }
- 100% {
- -webkit-transform: scale(1);
- transform: scale(1);
- opacity: 0;
- }
-}
-/*
- * Usage:
- *
- *
- *
- */
-.sk-spinner-chasing-dots.sk-spinner {
- margin: 0 auto;
- width: 40px;
- height: 40px;
- position: relative;
- text-align: center;
- -webkit-animation: sk-chasingDotsRotate 2s infinite linear;
- animation: sk-chasingDotsRotate 2s infinite linear;
-}
-.sk-spinner-chasing-dots .sk-dot1,
-.sk-spinner-chasing-dots .sk-dot2 {
- width: 60%;
- height: 60%;
- display: inline-block;
- position: absolute;
- top: 0;
- background-color: #1BBC9D;
- border-radius: 100%;
- -webkit-animation: sk-chasingDotsBounce 2s infinite ease-in-out;
- animation: sk-chasingDotsBounce 2s infinite ease-in-out;
-}
-.sk-spinner-chasing-dots .sk-dot2 {
- top: auto;
- bottom: 0;
- -webkit-animation-delay: -1s;
- animation-delay: -1s;
-}
-@-webkit-keyframes sk-chasingDotsRotate {
- 100% {
- -webkit-transform: rotate(360deg);
- transform: rotate(360deg);
- }
-}
-@keyframes sk-chasingDotsRotate {
- 100% {
- -webkit-transform: rotate(360deg);
- transform: rotate(360deg);
- }
-}
-@-webkit-keyframes sk-chasingDotsBounce {
- 0%,
- 100% {
- -webkit-transform: scale(0);
- transform: scale(0);
- }
- 50% {
- -webkit-transform: scale(1);
- transform: scale(1);
- }
-}
-@keyframes sk-chasingDotsBounce {
- 0%,
- 100% {
- -webkit-transform: scale(0);
- transform: scale(0);
- }
- 50% {
- -webkit-transform: scale(1);
- transform: scale(1);
- }
-}
-/*
- * Usage:
- *
- *
- *
- */
-.sk-spinner-three-bounce.sk-spinner {
- margin: 0 auto;
- width: 70px;
- text-align: center;
-}
-.sk-spinner-three-bounce div {
- width: 18px;
- height: 18px;
- background-color: #1BBC9D;
- border-radius: 100%;
- display: inline-block;
- -webkit-animation: sk-threeBounceDelay 1.4s infinite ease-in-out;
- animation: sk-threeBounceDelay 1.4s infinite ease-in-out;
- /* Prevent first frame from flickering when animation starts */
- -webkit-animation-fill-mode: both;
- animation-fill-mode: both;
-}
-.sk-spinner-three-bounce .sk-bounce1 {
- -webkit-animation-delay: -0.32s;
- animation-delay: -0.32s;
-}
-.sk-spinner-three-bounce .sk-bounce2 {
- -webkit-animation-delay: -0.16s;
- animation-delay: -0.16s;
-}
-@-webkit-keyframes sk-threeBounceDelay {
- 0%,
- 80%,
- 100% {
- -webkit-transform: scale(0);
- transform: scale(0);
- }
- 40% {
- -webkit-transform: scale(1);
- transform: scale(1);
- }
-}
-@keyframes sk-threeBounceDelay {
- 0%,
- 80%,
- 100% {
- -webkit-transform: scale(0);
- transform: scale(0);
- }
- 40% {
- -webkit-transform: scale(1);
- transform: scale(1);
- }
-}
-/*
- * Usage:
- *
- *
- *
- *
- *
- *
- *
- *
- *
- *
- *
- *
- *
- *
- *
- *
- */
-.sk-spinner-circle.sk-spinner {
- margin: 0 auto;
- width: 22px;
- height: 22px;
- position: relative;
-}
-.sk-spinner-circle .sk-circle {
- width: 100%;
- height: 100%;
- position: absolute;
- left: 0;
- top: 0;
-}
-.sk-spinner-circle .sk-circle:before {
- content: '';
- display: block;
- margin: 0 auto;
- width: 20%;
- height: 20%;
- background-color: #1BBC9D;
- border-radius: 100%;
- -webkit-animation: sk-circleBounceDelay 1.2s infinite ease-in-out;
- animation: sk-circleBounceDelay 1.2s infinite ease-in-out;
- /* Prevent first frame from flickering when animation starts */
- -webkit-animation-fill-mode: both;
- animation-fill-mode: both;
-}
-.sk-spinner-circle .sk-circle2 {
- -webkit-transform: rotate(30deg);
- transform: rotate(30deg);
-}
-.sk-spinner-circle .sk-circle3 {
- -webkit-transform: rotate(60deg);
- transform: rotate(60deg);
-}
-.sk-spinner-circle .sk-circle4 {
- -webkit-transform: rotate(90deg);
- transform: rotate(90deg);
-}
-.sk-spinner-circle .sk-circle5 {
- -webkit-transform: rotate(120deg);
- transform: rotate(120deg);
-}
-.sk-spinner-circle .sk-circle6 {
- -webkit-transform: rotate(150deg);
- transform: rotate(150deg);
-}
-.sk-spinner-circle .sk-circle7 {
- -webkit-transform: rotate(180deg);
- transform: rotate(180deg);
-}
-.sk-spinner-circle .sk-circle8 {
- -webkit-transform: rotate(210deg);
- transform: rotate(210deg);
-}
-.sk-spinner-circle .sk-circle9 {
- -webkit-transform: rotate(240deg);
- transform: rotate(240deg);
-}
-.sk-spinner-circle .sk-circle10 {
- -webkit-transform: rotate(270deg);
- transform: rotate(270deg);
-}
-.sk-spinner-circle .sk-circle11 {
- -webkit-transform: rotate(300deg);
- transform: rotate(300deg);
-}
-.sk-spinner-circle .sk-circle12 {
- -webkit-transform: rotate(330deg);
- transform: rotate(330deg);
-}
-.sk-spinner-circle .sk-circle2:before {
- -webkit-animation-delay: -1.1s;
- animation-delay: -1.1s;
-}
-.sk-spinner-circle .sk-circle3:before {
- -webkit-animation-delay: -1s;
- animation-delay: -1s;
-}
-.sk-spinner-circle .sk-circle4:before {
- -webkit-animation-delay: -0.9s;
- animation-delay: -0.9s;
-}
-.sk-spinner-circle .sk-circle5:before {
- -webkit-animation-delay: -0.8s;
- animation-delay: -0.8s;
-}
-.sk-spinner-circle .sk-circle6:before {
- -webkit-animation-delay: -0.7s;
- animation-delay: -0.7s;
-}
-.sk-spinner-circle .sk-circle7:before {
- -webkit-animation-delay: -0.6s;
- animation-delay: -0.6s;
-}
-.sk-spinner-circle .sk-circle8:before {
- -webkit-animation-delay: -0.5s;
- animation-delay: -0.5s;
-}
-.sk-spinner-circle .sk-circle9:before {
- -webkit-animation-delay: -0.4s;
- animation-delay: -0.4s;
-}
-.sk-spinner-circle .sk-circle10:before {
- -webkit-animation-delay: -0.3s;
- animation-delay: -0.3s;
-}
-.sk-spinner-circle .sk-circle11:before {
- -webkit-animation-delay: -0.2s;
- animation-delay: -0.2s;
-}
-.sk-spinner-circle .sk-circle12:before {
- -webkit-animation-delay: -0.1s;
- animation-delay: -0.1s;
-}
-@-webkit-keyframes sk-circleBounceDelay {
- 0%,
- 80%,
- 100% {
- -webkit-transform: scale(0);
- transform: scale(0);
- }
- 40% {
- -webkit-transform: scale(1);
- transform: scale(1);
- }
-}
-@keyframes sk-circleBounceDelay {
- 0%,
- 80%,
- 100% {
- -webkit-transform: scale(0);
- transform: scale(0);
- }
- 40% {
- -webkit-transform: scale(1);
- transform: scale(1);
- }
-}
-/*
- * Usage:
- *
- *
- *
- *
- *
- *
- *
- *
- *
- *
- *
- *
- *
- */
-.sk-spinner-cube-grid {
- /*
- * Spinner positions
- * 1 2 3
- * 4 5 6
- * 7 8 9
- */
-}
-.sk-spinner-cube-grid.sk-spinner {
- width: 30px;
- height: 30px;
- margin: 0 auto;
-}
-.sk-spinner-cube-grid .sk-cube {
- width: 33%;
- height: 33%;
- background-color: #1BBC9D;
- float: left;
- -webkit-animation: sk-cubeGridScaleDelay 1.3s infinite ease-in-out;
- animation: sk-cubeGridScaleDelay 1.3s infinite ease-in-out;
-}
-.sk-spinner-cube-grid .sk-cube:nth-child(1) {
- -webkit-animation-delay: 0.2s;
- animation-delay: 0.2s;
-}
-.sk-spinner-cube-grid .sk-cube:nth-child(2) {
- -webkit-animation-delay: 0.3s;
- animation-delay: 0.3s;
-}
-.sk-spinner-cube-grid .sk-cube:nth-child(3) {
- -webkit-animation-delay: 0.4s;
- animation-delay: 0.4s;
-}
-.sk-spinner-cube-grid .sk-cube:nth-child(4) {
- -webkit-animation-delay: 0.1s;
- animation-delay: 0.1s;
-}
-.sk-spinner-cube-grid .sk-cube:nth-child(5) {
- -webkit-animation-delay: 0.2s;
- animation-delay: 0.2s;
-}
-.sk-spinner-cube-grid .sk-cube:nth-child(6) {
- -webkit-animation-delay: 0.3s;
- animation-delay: 0.3s;
-}
-.sk-spinner-cube-grid .sk-cube:nth-child(7) {
- -webkit-animation-delay: 0s;
- animation-delay: 0s;
-}
-.sk-spinner-cube-grid .sk-cube:nth-child(8) {
- -webkit-animation-delay: 0.1s;
- animation-delay: 0.1s;
-}
-.sk-spinner-cube-grid .sk-cube:nth-child(9) {
- -webkit-animation-delay: 0.2s;
- animation-delay: 0.2s;
-}
-@-webkit-keyframes sk-cubeGridScaleDelay {
- 0%,
- 70%,
- 100% {
- -webkit-transform: scale3D(1, 1, 1);
- transform: scale3D(1, 1, 1);
- }
- 35% {
- -webkit-transform: scale3D(0, 0, 1);
- transform: scale3D(0, 0, 1);
- }
-}
-@keyframes sk-cubeGridScaleDelay {
- 0%,
- 70%,
- 100% {
- -webkit-transform: scale3D(1, 1, 1);
- transform: scale3D(1, 1, 1);
- }
- 35% {
- -webkit-transform: scale3D(0, 0, 1);
- transform: scale3D(0, 0, 1);
- }
-}
-/*
- * Usage:
- *
- *
- *
- *
- *
- */
-.sk-spinner-wordpress.sk-spinner {
- background-color: #1BBC9D;
- width: 30px;
- height: 30px;
- border-radius: 30px;
- position: relative;
- margin: 0 auto;
- -webkit-animation: sk-innerCircle 1s linear infinite;
- animation: sk-innerCircle 1s linear infinite;
-}
-.sk-spinner-wordpress .sk-inner-circle {
- display: block;
- background-color: #fff;
- width: 8px;
- height: 8px;
- position: absolute;
- border-radius: 8px;
- top: 5px;
- left: 5px;
-}
-@-webkit-keyframes sk-innerCircle {
- 0% {
- -webkit-transform: rotate(0);
- transform: rotate(0);
- }
- 100% {
- -webkit-transform: rotate(360deg);
- transform: rotate(360deg);
- }
-}
-@keyframes sk-innerCircle {
- 0% {
- -webkit-transform: rotate(0);
- transform: rotate(0);
- }
- 100% {
- -webkit-transform: rotate(360deg);
- transform: rotate(360deg);
- }
-}
-/*
- * Usage:
- *
- *
- *
- *
- *
- *
- *
- *
- *
- *
- *
- *
- *
- *
- *
- *
- */
-.sk-spinner-fading-circle.sk-spinner {
- margin: 0 auto;
- width: 22px;
- height: 22px;
- position: relative;
-}
-.sk-spinner-fading-circle .sk-circle {
- width: 100%;
- height: 100%;
- position: absolute;
- left: 0;
- top: 0;
-}
-.sk-spinner-fading-circle .sk-circle:before {
- content: '';
- display: block;
- margin: 0 auto;
- width: 18%;
- height: 18%;
- background-color: #1BBC9D;
- border-radius: 100%;
- -webkit-animation: sk-circleFadeDelay 1.2s infinite ease-in-out;
- animation: sk-circleFadeDelay 1.2s infinite ease-in-out;
- /* Prevent first frame from flickering when animation starts */
- -webkit-animation-fill-mode: both;
- animation-fill-mode: both;
-}
-.sk-spinner-fading-circle .sk-circle2 {
- -webkit-transform: rotate(30deg);
- transform: rotate(30deg);
-}
-.sk-spinner-fading-circle .sk-circle3 {
- -webkit-transform: rotate(60deg);
- transform: rotate(60deg);
-}
-.sk-spinner-fading-circle .sk-circle4 {
- -webkit-transform: rotate(90deg);
- transform: rotate(90deg);
-}
-.sk-spinner-fading-circle .sk-circle5 {
- -webkit-transform: rotate(120deg);
- transform: rotate(120deg);
-}
-.sk-spinner-fading-circle .sk-circle6 {
- -webkit-transform: rotate(150deg);
- transform: rotate(150deg);
-}
-.sk-spinner-fading-circle .sk-circle7 {
- -webkit-transform: rotate(180deg);
- transform: rotate(180deg);
-}
-.sk-spinner-fading-circle .sk-circle8 {
- -webkit-transform: rotate(210deg);
- transform: rotate(210deg);
-}
-.sk-spinner-fading-circle .sk-circle9 {
- -webkit-transform: rotate(240deg);
- transform: rotate(240deg);
-}
-.sk-spinner-fading-circle .sk-circle10 {
- -webkit-transform: rotate(270deg);
- transform: rotate(270deg);
-}
-.sk-spinner-fading-circle .sk-circle11 {
- -webkit-transform: rotate(300deg);
- transform: rotate(300deg);
-}
-.sk-spinner-fading-circle .sk-circle12 {
- -webkit-transform: rotate(330deg);
- transform: rotate(330deg);
-}
-.sk-spinner-fading-circle .sk-circle2:before {
- -webkit-animation-delay: -1.1s;
- animation-delay: -1.1s;
-}
-.sk-spinner-fading-circle .sk-circle3:before {
- -webkit-animation-delay: -1s;
- animation-delay: -1s;
-}
-.sk-spinner-fading-circle .sk-circle4:before {
- -webkit-animation-delay: -0.9s;
- animation-delay: -0.9s;
-}
-.sk-spinner-fading-circle .sk-circle5:before {
- -webkit-animation-delay: -0.8s;
- animation-delay: -0.8s;
-}
-.sk-spinner-fading-circle .sk-circle6:before {
- -webkit-animation-delay: -0.7s;
- animation-delay: -0.7s;
-}
-.sk-spinner-fading-circle .sk-circle7:before {
- -webkit-animation-delay: -0.6s;
- animation-delay: -0.6s;
-}
-.sk-spinner-fading-circle .sk-circle8:before {
- -webkit-animation-delay: -0.5s;
- animation-delay: -0.5s;
-}
-.sk-spinner-fading-circle .sk-circle9:before {
- -webkit-animation-delay: -0.4s;
- animation-delay: -0.4s;
-}
-.sk-spinner-fading-circle .sk-circle10:before {
- -webkit-animation-delay: -0.3s;
- animation-delay: -0.3s;
-}
-.sk-spinner-fading-circle .sk-circle11:before {
- -webkit-animation-delay: -0.2s;
- animation-delay: -0.2s;
-}
-.sk-spinner-fading-circle .sk-circle12:before {
- -webkit-animation-delay: -0.1s;
- animation-delay: -0.1s;
-}
-@-webkit-keyframes sk-circleFadeDelay {
- 0%,
- 39%,
- 100% {
- opacity: 0;
- }
- 40% {
- opacity: 1;
- }
-}
-@keyframes sk-circleFadeDelay {
- 0%,
- 39%,
- 100% {
- opacity: 0;
- }
- 40% {
- opacity: 1;
- }
-}
-body.rtls {
- /* Theme config */
-}
-body.rtls #page-wrapper {
- margin: 0 220px 0 0;
-}
-body.rtls .nav-second-level li a {
- padding: 7px 35px 7px 10px;
-}
-body.rtls .ibox-title h5 {
- float: right;
-}
-body.rtls .pull-right {
- float: left !important;
-}
-body.rtls .pull-left {
- float: right !important;
-}
-body.rtls .ibox-tools {
- float: left;
-}
-body.rtls .stat-percent {
- float: left;
-}
-body.rtls .navbar-right {
- float: left !important;
-}
-body.rtls .navbar-top-links li:last-child {
- margin-left: 40px;
- margin-right: 0;
-}
-body.rtls .minimalize-styl-2 {
- float: right;
- margin: 14px 20px 5px 5px;
-}
-body.rtls .feed-element > .pull-left {
- margin-left: 10px;
- margin-right: 0;
-}
-body.rtls .timeline-item .date {
- text-align: left;
-}
-body.rtls .timeline-item .date i {
- left: 0;
- right: auto;
-}
-body.rtls .timeline-item .content {
- border-right: 1px solid #e7eaec;
- border-left: none;
-}
-body.rtls .theme-config {
- left: 0;
- right: auto;
-}
-body.rtls .spin-icon {
- border-radius: 0 20px 20px 0;
-}
-body.rtls .toast-close-button {
- float: left;
-}
-body.rtls #toast-container > .toast:before {
- margin: auto -1.5em auto 0.5em;
-}
-body.rtls #toast-container > div {
- padding: 15px 50px 15px 15px;
-}
-body.rtls .center-orientation .vertical-timeline-icon i {
- margin-left: 0;
- margin-right: -12px;
-}
-body.rtls .vertical-timeline-icon i {
- right: 50%;
- left: auto;
- margin-left: auto;
- margin-right: -12px;
-}
-body.rtls .file-box {
- float: right;
-}
-body.rtls ul.notes li {
- float: right;
-}
-body.rtls .chat-users,
-body.rtls .chat-statistic {
- margin-right: -30px;
- margin-left: auto;
-}
-body.rtls .dropdown-menu > li > a {
- text-align: right;
-}
-body.rtls .b-r {
- border-left: 1px solid #e7eaec;
- border-right: none;
-}
-body.rtls .dd-list .dd-list {
- padding-right: 30px;
- padding-left: 0;
-}
-body.rtls .dd-item > button {
- float: right;
-}
-body.rtls .theme-config-box {
- margin-left: -220px;
- margin-right: 0;
-}
-body.rtls .theme-config-box.show {
- margin-left: 0;
- margin-right: 0;
-}
-body.rtls .spin-icon {
- right: 0;
- left: auto;
-}
-body.rtls .skin-setttings {
- margin-right: 40px;
- margin-left: 0;
-}
-body.rtls .skin-setttings {
- direction: ltr;
-}
-body.rtls .footer.fixed {
- margin-right: 220px;
- margin-left: 0;
-}
-@media (max-width: 992px) {
- body.rtls .chat-users,
- body.rtls .chat-statistic {
- margin-right: 0;
- }
-}
-body.rtls.mini-navbar .footer.fixed,
-body.body-small.mini-navbar .footer.fixed {
- margin: 0 70px 0 0;
-}
-body.rtls.mini-navbar.fixed-sidebar .footer.fixed,
-body.body-small.mini-navbar .footer.fixed {
- margin: 0 0 0 0;
-}
-body.rtls.top-navigation .navbar-toggle {
- float: right;
- margin-left: 15px;
- margin-right: 15px;
-}
-.body-small.rtls.top-navigation .navbar-header {
- float: none;
-}
-body.rtls.top-navigation #page-wrapper {
- margin: 0;
-}
-body.rtls.mini-navbar #page-wrapper {
- margin: 0 70px 0 0;
-}
-body.rtls.mini-navbar.fixed-sidebar #page-wrapper {
- margin: 0 0 0 0;
-}
-body.rtls.body-small.fixed-sidebar.mini-navbar #page-wrapper {
- margin: 0 220px 0 0;
-}
-body.rtls.body-small.fixed-sidebar.mini-navbar .navbar-static-side {
- width: 220px;
-}
-.body-small.rtls .navbar-fixed-top {
- margin-right: 0;
-}
-.body-small.rtls .navbar-header {
- float: right;
-}
-body.rtls .navbar-top-links li:last-child {
- margin-left: 20px;
-}
-body.rtls .top-navigation #page-wrapper,
-body.rtls.mini-navbar .top-navigation #page-wrapper,
-body.rtls.mini-navbar.top-navigation #page-wrapper {
- margin: 0;
-}
-body.rtls .top-navigation .footer.fixed,
-body.rtls.top-navigation .footer.fixed {
- margin: 0;
-}
-@media (max-width: 768px) {
- body.rtls .navbar-top-links li:last-child {
- margin-left: 20px;
- }
- .body-small.rtls #page-wrapper {
- position: inherit;
- margin: 0 0 0 0;
- min-height: 1000px;
- }
- .body-small.rtls .navbar-static-side {
- display: none;
- z-index: 2001;
- position: absolute;
- width: 70px;
- }
- .body-small.rtls.mini-navbar .navbar-static-side {
- display: block;
- }
- .rtls.fixed-sidebar.body-small .navbar-static-side {
- display: none;
- z-index: 2001;
- position: fixed;
- width: 220px;
- }
- .rtls.fixed-sidebar.body-small.mini-navbar .navbar-static-side {
- display: block;
- }
-}
-.rtls .ltr-support {
- direction: ltr;
-}
-.rtls.mini-navbar .nav-second-level,
-.rtls.mini-navbar li.active .nav-second-level {
- left: auto;
- right: 70px;
-}
-.rtls #right-sidebar {
- left: -260px;
- right: auto;
-}
-.rtls #right-sidebar.sidebar-open {
- left: 0;
-}
-@media (min-width: 768px) {
- #page-wrapper {
- position: inherit;
- margin: 0 0 0 220px;
- min-height: 1200px;
- }
- .navbar-static-side {
- z-index: 2001;
- position: absolute;
- width: 220px;
- }
- .navbar-top-links .dropdown-messages,
- .navbar-top-links .dropdown-tasks,
- .navbar-top-links .dropdown-alerts {
- margin-left: auto;
- }
-}
-@media (max-width: 768px) {
- #page-wrapper {
- position: inherit;
- margin: 0 0 0 0;
- min-height: 1000px;
- }
- .body-small .navbar-static-side {
- display: none;
- z-index: 2001;
- position: absolute;
- width: 70px;
- }
- .body-small.mini-navbar .navbar-static-side {
- display: block;
- }
- .lock-word {
- display: none;
- }
- .navbar-form-custom {
- display: none;
- }
- .navbar-header {
- display: inline;
- float: left;
- }
- .sidebard-panel {
- z-index: 2;
- position: relative;
- width: auto;
- min-height: 100% !important;
- }
- .sidebar-content .wrapper {
- padding-right: 0;
- z-index: 1;
- }
- .fixed-sidebar.body-small .navbar-static-side {
- display: none;
- z-index: 2001;
- position: fixed;
- width: 220px;
- }
- .fixed-sidebar.body-small.mini-navbar .navbar-static-side {
- display: block;
- }
- .ibox-tools {
- float: none;
- text-align: right;
- display: block;
- }
-}
-@media (max-width: 350px) {
- .timeline-item .date {
- text-align: left;
- width: 110px;
- position: relative;
- padding-top: 30px;
- }
- .timeline-item .date i {
- position: absolute;
- top: 0;
- left: 15px;
- padding: 5px;
- width: 30px;
- text-align: center;
- border: 1px solid #e7eaec;
- background: #f8f8f8;
- }
- .timeline-item .content {
- border-left: none;
- border-top: 1px solid #e7eaec;
- padding-top: 10px;
- min-height: 100px;
- }
- .nav.navbar-top-links li.dropdown {
- display: none;
- }
- .ibox-tools {
- float: none;
- text-align: left;
- display: inline-block;
- }
-}
-@media print {
- nav.navbar-static-side {
- display: none;
- }
- #page-wrapper {
- margin: 0;
- }
-}
diff --git a/public/assets/admin/img/bg.jpg b/public/assets/admin/img/bg.jpg
deleted file mode 100644
index d9fdb29..0000000
Binary files a/public/assets/admin/img/bg.jpg and /dev/null differ
diff --git a/public/assets/admin/img/borgert-navbar.png b/public/assets/admin/img/borgert-navbar.png
new file mode 100644
index 0000000..de42508
Binary files /dev/null and b/public/assets/admin/img/borgert-navbar.png differ
diff --git a/public/assets/admin/js/all.js b/public/assets/admin/js/all.js
new file mode 100644
index 0000000..ec49254
--- /dev/null
+++ b/public/assets/admin/js/all.js
@@ -0,0 +1,43 @@
+
+$(document).ready(function () {
+
+ // --------------------------------------------------------------------------------------
+
+ /**
+ * Others plugins
+ */
+
+ // Editor summer note
+ $('.summernote').summernote({
+ height: 270,
+ lang: 'pt-BR'
+ });
+
+ // Metis Menu
+ $('.metismenu').metisMenu();
+
+ // Switchery
+ if (document.querySelector('.js-switch') != null) {
+ new Switchery(document.querySelector('.js-switch'), {color: '#F9D600'});
+ }
+
+ // Datetimepicker
+ $('.datetimepicker').datetimepicker({
+ step: 10
+ });
+
+ // --------------------------------------------------------------------------------------
+
+ /**
+ * Bootstrap
+ */
+
+ // Tooltips
+ $('[data-toggle="tooltip"]').tooltip();
+
+ // Popover
+ $('[data-toggle="popover"]').popover();
+
+ // --------------------------------------------------------------------------------------
+
+});
diff --git a/public/assets/admin/js/app.js b/public/assets/admin/js/app.js
deleted file mode 100644
index 3931815..0000000
--- a/public/assets/admin/js/app.js
+++ /dev/null
@@ -1,36511 +0,0 @@
-/******/ (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;
-
-/******/ // identity function for calling harmory imports with the correct context
-/******/ __webpack_require__.i = function(value) { return value; };
-
-/******/ // define getter function for harmory exports
-/******/ __webpack_require__.d = function(exports, name, getter) {
-/******/ Object.defineProperty(exports, name, {
-/******/ configurable: false,
-/******/ enumerable: true,
-/******/ get: getter
-/******/ });
-/******/ };
-
-/******/ // 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 = "";
-
-/******/ // Load entry module and return exports
-/******/ return __webpack_require__(__webpack_require__.s = 11);
-/******/ })
-/************************************************************************/
-/******/ ([
-/* 0 */
-/***/ function(module, exports, __webpack_require__) {
-
-
-window._ = __webpack_require__(3);
-
-/**
- * We'll load jQuery and the Bootstrap jQuery plugin which provides support
- * for JavaScript based Bootstrap features such as modals and tabs. This
- * code may be modified to fit the specific needs of your application.
- */
-
-window.$ = window.jQuery = __webpack_require__(2);
-// require('bootstrap-sass');
-
-/**
- * Vue is a modern JavaScript library for building interactive web interfaces
- * using reactive data binding and reusable components. Vue's API is clean
- * and simple, leaving you to focus on building your next great project.
- */
-
-window.Vue = __webpack_require__(6);
-__webpack_require__(5);
-
-/**
- * We'll register a HTTP interceptor to attach the "CSRF" header to each of
- * the outgoing requests issued by this application. The CSRF middleware
- * included with Laravel will automatically verify the header's value.
- */
-
-Vue.http.interceptors.push(function (request, next) {
- request.headers.set('X-CSRF-TOKEN', Borgert.csrfToken);
-
- next();
-});
-
-/**
- * Echo exposes an expressive API for subscribing to channels and listening
- * for events that are broadcast by Laravel. Echo and event broadcasting
- * allows your team to easily build robust real-time web applications.
- */
-
-// import Echo from "laravel-echo"
-
-// window.Echo = new Echo({
-// broadcaster: 'pusher',
-// key: 'your-pusher-key'
-// });
-
-/**
- * Other admin related codes.
- */
-__webpack_require__(9);
-
-/***/ },
-/* 1 */
-/***/ function(module, exports, __webpack_require__) {
-
-var __vue_exports__, __vue_options__
-
-/* script */
-__vue_exports__ = __webpack_require__(4)
-
-/* template */
-var __vue_template__ = __webpack_require__(10)
-__vue_options__ = __vue_exports__ = __vue_exports__ || {}
-if (
- typeof __vue_exports__.default === "object" ||
- typeof __vue_exports__.default === "function"
-) {
-if (Object.keys(__vue_exports__).some(function (key) { return key !== "default" && key !== "__esModule" })) {console.error("named exports are not supported in *.vue files.")}
-__vue_options__ = __vue_exports__ = __vue_exports__.default
-}
-if (typeof __vue_options__ === "function") {
- __vue_options__ = __vue_options__.options
-}
-__vue_options__.__file = "D:\\Vagrant\\scotch-box\\public\\borgert-cms\\resources\\assets\\js\\components\\Example.vue"
-__vue_options__.render = __vue_template__.render
-__vue_options__.staticRenderFns = __vue_template__.staticRenderFns
-
-/* hot reload */
-if (false) {(function () {
- var hotAPI = require("vue-hot-reload-api")
- hotAPI.install(require("vue"), false)
- if (!hotAPI.compatible) return
- module.hot.accept()
- if (!module.hot.data) {
- hotAPI.createRecord("data-v-9ee3799c", __vue_options__)
- } else {
- hotAPI.reload("data-v-9ee3799c", __vue_options__)
- }
-})()}
-if (__vue_options__.functional) {console.error("[vue-loader] Example.vue: functional components are not supported and should be defined in plain js files using render functions.")}
-
-module.exports = __vue_exports__
-
-
-/***/ },
-/* 2 */
-/***/ function(module, exports, __webpack_require__) {
-
-var __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;/*!
- * jQuery JavaScript Library v2.2.4
- * http://jquery.com/
- *
- * Includes Sizzle.js
- * http://sizzlejs.com/
- *
- * Copyright jQuery Foundation and other contributors
- * Released under the MIT license
- * http://jquery.org/license
- *
- * Date: 2016-05-20T17:23Z
- */
-
-(function( global, factory ) {
-
- if ( typeof module === "object" && typeof module.exports === "object" ) {
- // For CommonJS and CommonJS-like environments where a proper `window`
- // is present, execute the factory and get jQuery.
- // For environments that do not have a `window` with a `document`
- // (such as Node.js), expose a factory as module.exports.
- // This accentuates the need for the creation of a real `window`.
- // e.g. var jQuery = require("jquery")(window);
- // See ticket #14549 for more info.
- module.exports = global.document ?
- factory( global, true ) :
- function( w ) {
- if ( !w.document ) {
- throw new Error( "jQuery requires a window with a document" );
- }
- return factory( w );
- };
- } else {
- factory( global );
- }
-
-// Pass this if window is not defined yet
-}(typeof window !== "undefined" ? window : this, function( window, noGlobal ) {
-
-// Support: Firefox 18+
-// Can't be in strict mode, several libs including ASP.NET trace
-// the stack via arguments.caller.callee and Firefox dies if
-// you try to trace through "use strict" call chains. (#13335)
-//"use strict";
-var arr = [];
-
-var document = window.document;
-
-var slice = arr.slice;
-
-var concat = arr.concat;
-
-var push = arr.push;
-
-var indexOf = arr.indexOf;
-
-var class2type = {};
-
-var toString = class2type.toString;
-
-var hasOwn = class2type.hasOwnProperty;
-
-var support = {};
-
-
-
-var
- version = "2.2.4",
-
- // Define a local copy of jQuery
- jQuery = function( selector, context ) {
-
- // The jQuery object is actually just the init constructor 'enhanced'
- // Need init if jQuery is called (just allow error to be thrown if not included)
- return new jQuery.fn.init( selector, context );
- },
-
- // Support: Android<4.1
- // Make sure we trim BOM and NBSP
- rtrim = /^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g,
-
- // Matches dashed string for camelizing
- rmsPrefix = /^-ms-/,
- rdashAlpha = /-([\da-z])/gi,
-
- // Used by jQuery.camelCase as callback to replace()
- fcamelCase = function( all, letter ) {
- return letter.toUpperCase();
- };
-
-jQuery.fn = jQuery.prototype = {
-
- // The current version of jQuery being used
- jquery: version,
-
- constructor: jQuery,
-
- // Start with an empty selector
- selector: "",
-
- // The default length of a jQuery object is 0
- length: 0,
-
- toArray: function() {
- return slice.call( this );
- },
-
- // Get the Nth element in the matched element set OR
- // Get the whole matched element set as a clean array
- get: function( num ) {
- return num != null ?
-
- // Return just the one element from the set
- ( num < 0 ? this[ num + this.length ] : this[ num ] ) :
-
- // Return all the elements in a clean array
- slice.call( this );
- },
-
- // Take an array of elements and push it onto the stack
- // (returning the new matched element set)
- pushStack: function( elems ) {
-
- // Build a new jQuery matched element set
- var ret = jQuery.merge( this.constructor(), elems );
-
- // Add the old object onto the stack (as a reference)
- ret.prevObject = this;
- ret.context = this.context;
-
- // Return the newly-formed element set
- return ret;
- },
-
- // Execute a callback for every element in the matched set.
- each: function( callback ) {
- return jQuery.each( this, callback );
- },
-
- map: function( callback ) {
- return this.pushStack( jQuery.map( this, function( elem, i ) {
- return callback.call( elem, i, elem );
- } ) );
- },
-
- slice: function() {
- return this.pushStack( slice.apply( this, arguments ) );
- },
-
- first: function() {
- return this.eq( 0 );
- },
-
- last: function() {
- return this.eq( -1 );
- },
-
- eq: function( i ) {
- var len = this.length,
- j = +i + ( i < 0 ? len : 0 );
- return this.pushStack( j >= 0 && j < len ? [ this[ j ] ] : [] );
- },
-
- end: function() {
- return this.prevObject || this.constructor();
- },
-
- // For internal use only.
- // Behaves like an Array's method, not like a jQuery method.
- push: push,
- sort: arr.sort,
- splice: arr.splice
-};
-
-jQuery.extend = jQuery.fn.extend = function() {
- var arguments$1 = arguments;
-
- var options, name, src, copy, copyIsArray, clone,
- target = arguments[ 0 ] || {},
- i = 1,
- length = arguments.length,
- deep = false;
-
- // Handle a deep copy situation
- if ( typeof target === "boolean" ) {
- deep = target;
-
- // Skip the boolean and the target
- target = arguments[ i ] || {};
- i++;
- }
-
- // Handle case when target is a string or something (possible in deep copy)
- if ( typeof target !== "object" && !jQuery.isFunction( target ) ) {
- target = {};
- }
-
- // Extend jQuery itself if only one argument is passed
- if ( i === length ) {
- target = this;
- i--;
- }
-
- for ( ; i < length; i++ ) {
-
- // Only deal with non-null/undefined values
- if ( ( options = arguments$1[ i ] ) != null ) {
-
- // Extend the base object
- for ( name in options ) {
- src = target[ name ];
- copy = options[ name ];
-
- // Prevent never-ending loop
- if ( target === copy ) {
- continue;
- }
-
- // Recurse if we're merging plain objects or arrays
- if ( deep && copy && ( jQuery.isPlainObject( copy ) ||
- ( copyIsArray = jQuery.isArray( copy ) ) ) ) {
-
- if ( copyIsArray ) {
- copyIsArray = false;
- clone = src && jQuery.isArray( src ) ? src : [];
-
- } else {
- clone = src && jQuery.isPlainObject( src ) ? src : {};
- }
-
- // Never move original objects, clone them
- target[ name ] = jQuery.extend( deep, clone, copy );
-
- // Don't bring in undefined values
- } else if ( copy !== undefined ) {
- target[ name ] = copy;
- }
- }
- }
- }
-
- // Return the modified object
- return target;
-};
-
-jQuery.extend( {
-
- // Unique for each copy of jQuery on the page
- expando: "jQuery" + ( version + Math.random() ).replace( /\D/g, "" ),
-
- // Assume jQuery is ready without the ready module
- isReady: true,
-
- error: function( msg ) {
- throw new Error( msg );
- },
-
- noop: function() {},
-
- isFunction: function( obj ) {
- return jQuery.type( obj ) === "function";
- },
-
- isArray: Array.isArray,
-
- isWindow: function( obj ) {
- return obj != null && obj === obj.window;
- },
-
- isNumeric: function( obj ) {
-
- // parseFloat NaNs numeric-cast false positives (null|true|false|"")
- // ...but misinterprets leading-number strings, particularly hex literals ("0x...")
- // subtraction forces infinities to NaN
- // adding 1 corrects loss of precision from parseFloat (#15100)
- var realStringObj = obj && obj.toString();
- return !jQuery.isArray( obj ) && ( realStringObj - parseFloat( realStringObj ) + 1 ) >= 0;
- },
-
- isPlainObject: function( obj ) {
- var key;
-
- // Not plain objects:
- // - Any object or value whose internal [[Class]] property is not "[object Object]"
- // - DOM nodes
- // - window
- if ( jQuery.type( obj ) !== "object" || obj.nodeType || jQuery.isWindow( obj ) ) {
- return false;
- }
-
- // Not own constructor property must be Object
- if ( obj.constructor &&
- !hasOwn.call( obj, "constructor" ) &&
- !hasOwn.call( obj.constructor.prototype || {}, "isPrototypeOf" ) ) {
- return false;
- }
-
- // Own properties are enumerated firstly, so to speed up,
- // if last one is own, then all properties are own
- for ( key in obj ) {}
-
- return key === undefined || hasOwn.call( obj, key );
- },
-
- isEmptyObject: function( obj ) {
- var name;
- for ( name in obj ) {
- return false;
- }
- return true;
- },
-
- type: function( obj ) {
- if ( obj == null ) {
- return obj + "";
- }
-
- // Support: Android<4.0, iOS<6 (functionish RegExp)
- return typeof obj === "object" || typeof obj === "function" ?
- class2type[ toString.call( obj ) ] || "object" :
- typeof obj;
- },
-
- // Evaluates a script in a global context
- globalEval: function( code ) {
- var script,
- indirect = eval;
-
- code = jQuery.trim( code );
-
- if ( code ) {
-
- // If the code includes a valid, prologue position
- // strict mode pragma, execute code by injecting a
- // script tag into the document.
- if ( code.indexOf( "use strict" ) === 1 ) {
- script = document.createElement( "script" );
- script.text = code;
- document.head.appendChild( script ).parentNode.removeChild( script );
- } else {
-
- // Otherwise, avoid the DOM node creation, insertion
- // and removal by using an indirect global eval
-
- indirect( code );
- }
- }
- },
-
- // Convert dashed to camelCase; used by the css and data modules
- // Support: IE9-11+
- // Microsoft forgot to hump their vendor prefix (#9572)
- camelCase: function( string ) {
- return string.replace( rmsPrefix, "ms-" ).replace( rdashAlpha, fcamelCase );
- },
-
- nodeName: function( elem, name ) {
- return elem.nodeName && elem.nodeName.toLowerCase() === name.toLowerCase();
- },
-
- each: function( obj, callback ) {
- var length, i = 0;
-
- if ( isArrayLike( obj ) ) {
- length = obj.length;
- for ( ; i < length; i++ ) {
- if ( callback.call( obj[ i ], i, obj[ i ] ) === false ) {
- break;
- }
- }
- } else {
- for ( i in obj ) {
- if ( callback.call( obj[ i ], i, obj[ i ] ) === false ) {
- break;
- }
- }
- }
-
- return obj;
- },
-
- // Support: Android<4.1
- trim: function( text ) {
- return text == null ?
- "" :
- ( text + "" ).replace( rtrim, "" );
- },
-
- // results is for internal usage only
- makeArray: function( arr, results ) {
- var ret = results || [];
-
- if ( arr != null ) {
- if ( isArrayLike( Object( arr ) ) ) {
- jQuery.merge( ret,
- typeof arr === "string" ?
- [ arr ] : arr
- );
- } else {
- push.call( ret, arr );
- }
- }
-
- return ret;
- },
-
- inArray: function( elem, arr, i ) {
- return arr == null ? -1 : indexOf.call( arr, elem, i );
- },
-
- merge: function( first, second ) {
- var len = +second.length,
- j = 0,
- i = first.length;
-
- for ( ; j < len; j++ ) {
- first[ i++ ] = second[ j ];
- }
-
- first.length = i;
-
- return first;
- },
-
- grep: function( elems, callback, invert ) {
- var callbackInverse,
- matches = [],
- i = 0,
- length = elems.length,
- callbackExpect = !invert;
-
- // Go through the array, only saving the items
- // that pass the validator function
- for ( ; i < length; i++ ) {
- callbackInverse = !callback( elems[ i ], i );
- if ( callbackInverse !== callbackExpect ) {
- matches.push( elems[ i ] );
- }
- }
-
- return matches;
- },
-
- // arg is for internal usage only
- map: function( elems, callback, arg ) {
- var length, value,
- i = 0,
- ret = [];
-
- // Go through the array, translating each of the items to their new values
- if ( isArrayLike( elems ) ) {
- length = elems.length;
- for ( ; i < length; i++ ) {
- value = callback( elems[ i ], i, arg );
-
- if ( value != null ) {
- ret.push( value );
- }
- }
-
- // Go through every key on the object,
- } else {
- for ( i in elems ) {
- value = callback( elems[ i ], i, arg );
-
- if ( value != null ) {
- ret.push( value );
- }
- }
- }
-
- // Flatten any nested arrays
- return concat.apply( [], ret );
- },
-
- // A global GUID counter for objects
- guid: 1,
-
- // Bind a function to a context, optionally partially applying any
- // arguments.
- proxy: function( fn, context ) {
- var tmp, args, proxy;
-
- if ( typeof context === "string" ) {
- tmp = fn[ context ];
- context = fn;
- fn = tmp;
- }
-
- // Quick check to determine if target is callable, in the spec
- // this throws a TypeError, but we will just return undefined.
- if ( !jQuery.isFunction( fn ) ) {
- return undefined;
- }
-
- // Simulated bind
- args = slice.call( arguments, 2 );
- proxy = function() {
- return fn.apply( context || this, args.concat( slice.call( arguments ) ) );
- };
-
- // Set the guid of unique handler to the same of original handler, so it can be removed
- proxy.guid = fn.guid = fn.guid || jQuery.guid++;
-
- return proxy;
- },
-
- now: Date.now,
-
- // jQuery.support is not used in Core but other projects attach their
- // properties to it so it needs to exist.
- support: support
-} );
-
-// JSHint would error on this code due to the Symbol not being defined in ES5.
-// Defining this global in .jshintrc would create a danger of using the global
-// unguarded in another place, it seems safer to just disable JSHint for these
-// three lines.
-/* jshint ignore: start */
-if ( typeof Symbol === "function" ) {
- jQuery.fn[ Symbol.iterator ] = arr[ Symbol.iterator ];
-}
-/* jshint ignore: end */
-
-// Populate the class2type map
-jQuery.each( "Boolean Number String Function Array Date RegExp Object Error Symbol".split( " " ),
-function( i, name ) {
- class2type[ "[object " + name + "]" ] = name.toLowerCase();
-} );
-
-function isArrayLike( obj ) {
-
- // Support: iOS 8.2 (not reproducible in simulator)
- // `in` check used to prevent JIT error (gh-2145)
- // hasOwn isn't used here due to false negatives
- // regarding Nodelist length in IE
- var length = !!obj && "length" in obj && obj.length,
- type = jQuery.type( obj );
-
- if ( type === "function" || jQuery.isWindow( obj ) ) {
- return false;
- }
-
- return type === "array" || length === 0 ||
- typeof length === "number" && length > 0 && ( length - 1 ) in obj;
-}
-var Sizzle =
-/*!
- * Sizzle CSS Selector Engine v2.2.1
- * http://sizzlejs.com/
- *
- * Copyright jQuery Foundation and other contributors
- * Released under the MIT license
- * http://jquery.org/license
- *
- * Date: 2015-10-17
- */
-(function( window ) {
-
-var i,
- support,
- Expr,
- getText,
- isXML,
- tokenize,
- compile,
- select,
- outermostContext,
- sortInput,
- hasDuplicate,
-
- // Local document vars
- setDocument,
- document,
- docElem,
- documentIsHTML,
- rbuggyQSA,
- rbuggyMatches,
- matches,
- contains,
-
- // Instance-specific data
- expando = "sizzle" + 1 * new Date(),
- preferredDoc = window.document,
- dirruns = 0,
- done = 0,
- classCache = createCache(),
- tokenCache = createCache(),
- compilerCache = createCache(),
- sortOrder = function( a, b ) {
- if ( a === b ) {
- hasDuplicate = true;
- }
- return 0;
- },
-
- // General-purpose constants
- MAX_NEGATIVE = 1 << 31,
-
- // Instance methods
- hasOwn = ({}).hasOwnProperty,
- arr = [],
- pop = arr.pop,
- push_native = arr.push,
- push = arr.push,
- slice = arr.slice,
- // Use a stripped-down indexOf as it's faster than native
- // http://jsperf.com/thor-indexof-vs-for/5
- indexOf = function( list, elem ) {
- var i = 0,
- len = list.length;
- for ( ; i < len; i++ ) {
- if ( list[i] === elem ) {
- return i;
- }
- }
- return -1;
- },
-
- booleans = "checked|selected|async|autofocus|autoplay|controls|defer|disabled|hidden|ismap|loop|multiple|open|readonly|required|scoped",
-
- // Regular expressions
-
- // http://www.w3.org/TR/css3-selectors/#whitespace
- whitespace = "[\\x20\\t\\r\\n\\f]",
-
- // http://www.w3.org/TR/CSS21/syndata.html#value-def-identifier
- identifier = "(?:\\\\.|[\\w-]|[^\\x00-\\xa0])+",
-
- // Attribute selectors: http://www.w3.org/TR/selectors/#attribute-selectors
- attributes = "\\[" + whitespace + "*(" + identifier + ")(?:" + whitespace +
- // Operator (capture 2)
- "*([*^$|!~]?=)" + whitespace +
- // "Attribute values must be CSS identifiers [capture 5] or strings [capture 3 or capture 4]"
- "*(?:'((?:\\\\.|[^\\\\'])*)'|\"((?:\\\\.|[^\\\\\"])*)\"|(" + identifier + "))|)" + whitespace +
- "*\\]",
-
- pseudos = ":(" + identifier + ")(?:\\((" +
- // To reduce the number of selectors needing tokenize in the preFilter, prefer arguments:
- // 1. quoted (capture 3; capture 4 or capture 5)
- "('((?:\\\\.|[^\\\\'])*)'|\"((?:\\\\.|[^\\\\\"])*)\")|" +
- // 2. simple (capture 6)
- "((?:\\\\.|[^\\\\()[\\]]|" + attributes + ")*)|" +
- // 3. anything else (capture 2)
- ".*" +
- ")\\)|)",
-
- // Leading and non-escaped trailing whitespace, capturing some non-whitespace characters preceding the latter
- rwhitespace = new RegExp( whitespace + "+", "g" ),
- rtrim = new RegExp( "^" + whitespace + "+|((?:^|[^\\\\])(?:\\\\.)*)" + whitespace + "+$", "g" ),
-
- rcomma = new RegExp( "^" + whitespace + "*," + whitespace + "*" ),
- rcombinators = new RegExp( "^" + whitespace + "*([>+~]|" + whitespace + ")" + whitespace + "*" ),
-
- rattributeQuotes = new RegExp( "=" + whitespace + "*([^\\]'\"]*?)" + whitespace + "*\\]", "g" ),
-
- rpseudo = new RegExp( pseudos ),
- ridentifier = new RegExp( "^" + identifier + "$" ),
-
- matchExpr = {
- "ID": new RegExp( "^#(" + identifier + ")" ),
- "CLASS": new RegExp( "^\\.(" + identifier + ")" ),
- "TAG": new RegExp( "^(" + identifier + "|[*])" ),
- "ATTR": new RegExp( "^" + attributes ),
- "PSEUDO": new RegExp( "^" + pseudos ),
- "CHILD": new RegExp( "^:(only|first|last|nth|nth-last)-(child|of-type)(?:\\(" + whitespace +
- "*(even|odd|(([+-]|)(\\d*)n|)" + whitespace + "*(?:([+-]|)" + whitespace +
- "*(\\d+)|))" + whitespace + "*\\)|)", "i" ),
- "bool": new RegExp( "^(?:" + booleans + ")$", "i" ),
- // For use in libraries implementing .is()
- // We use this for POS matching in `select`
- "needsContext": new RegExp( "^" + whitespace + "*[>+~]|:(even|odd|eq|gt|lt|nth|first|last)(?:\\(" +
- whitespace + "*((?:-\\d)?\\d*)" + whitespace + "*\\)|)(?=[^-]|$)", "i" )
- },
-
- rinputs = /^(?:input|select|textarea|button)$/i,
- rheader = /^h\d$/i,
-
- rnative = /^[^{]+\{\s*\[native \w/,
-
- // Easily-parseable/retrievable ID or TAG or CLASS selectors
- rquickExpr = /^(?:#([\w-]+)|(\w+)|\.([\w-]+))$/,
-
- rsibling = /[+~]/,
- rescape = /'|\\/g,
-
- // CSS escapes http://www.w3.org/TR/CSS21/syndata.html#escaped-characters
- runescape = new RegExp( "\\\\([\\da-f]{1,6}" + whitespace + "?|(" + whitespace + ")|.)", "ig" ),
- funescape = function( _, escaped, escapedWhitespace ) {
- var high = "0x" + escaped - 0x10000;
- // NaN means non-codepoint
- // Support: Firefox<24
- // Workaround erroneous numeric interpretation of +"0x"
- return high !== high || escapedWhitespace ?
- escaped :
- high < 0 ?
- // BMP codepoint
- String.fromCharCode( high + 0x10000 ) :
- // Supplemental Plane codepoint (surrogate pair)
- String.fromCharCode( high >> 10 | 0xD800, high & 0x3FF | 0xDC00 );
- },
-
- // Used for iframes
- // See setDocument()
- // Removing the function wrapper causes a "Permission Denied"
- // error in IE
- unloadHandler = function() {
- setDocument();
- };
-
-// Optimize for push.apply( _, NodeList )
-try {
- push.apply(
- (arr = slice.call( preferredDoc.childNodes )),
- preferredDoc.childNodes
- );
- // Support: Android<4.0
- // Detect silently failing push.apply
- arr[ preferredDoc.childNodes.length ].nodeType;
-} catch ( e ) {
- push = { apply: arr.length ?
-
- // Leverage slice if possible
- function( target, els ) {
- push_native.apply( target, slice.call(els) );
- } :
-
- // Support: IE<9
- // Otherwise append directly
- function( target, els ) {
- var j = target.length,
- i = 0;
- // Can't trust NodeList.length
- while ( (target[j++] = els[i++]) ) {}
- target.length = j - 1;
- }
- };
-}
-
-function Sizzle( selector, context, results, seed ) {
- var m, i, elem, nid, nidselect, match, groups, newSelector,
- newContext = context && context.ownerDocument,
-
- // nodeType defaults to 9, since context defaults to document
- nodeType = context ? context.nodeType : 9;
-
- results = results || [];
-
- // Return early from calls with invalid selector or context
- if ( typeof selector !== "string" || !selector ||
- nodeType !== 1 && nodeType !== 9 && nodeType !== 11 ) {
-
- return results;
- }
-
- // Try to shortcut find operations (as opposed to filters) in HTML documents
- if ( !seed ) {
-
- if ( ( context ? context.ownerDocument || context : preferredDoc ) !== document ) {
- setDocument( context );
- }
- context = context || document;
-
- if ( documentIsHTML ) {
-
- // If the selector is sufficiently simple, try using a "get*By*" DOM method
- // (excepting DocumentFragment context, where the methods don't exist)
- if ( nodeType !== 11 && (match = rquickExpr.exec( selector )) ) {
-
- // ID selector
- if ( (m = match[1]) ) {
-
- // Document context
- if ( nodeType === 9 ) {
- if ( (elem = context.getElementById( m )) ) {
-
- // Support: IE, Opera, Webkit
- // TODO: identify versions
- // getElementById can match elements by name instead of ID
- if ( elem.id === m ) {
- results.push( elem );
- return results;
- }
- } else {
- return results;
- }
-
- // Element context
- } else {
-
- // Support: IE, Opera, Webkit
- // TODO: identify versions
- // getElementById can match elements by name instead of ID
- if ( newContext && (elem = newContext.getElementById( m )) &&
- contains( context, elem ) &&
- elem.id === m ) {
-
- results.push( elem );
- return results;
- }
- }
-
- // Type selector
- } else if ( match[2] ) {
- push.apply( results, context.getElementsByTagName( selector ) );
- return results;
-
- // Class selector
- } else if ( (m = match[3]) && support.getElementsByClassName &&
- context.getElementsByClassName ) {
-
- push.apply( results, context.getElementsByClassName( m ) );
- return results;
- }
- }
-
- // Take advantage of querySelectorAll
- if ( support.qsa &&
- !compilerCache[ selector + " " ] &&
- (!rbuggyQSA || !rbuggyQSA.test( selector )) ) {
-
- if ( nodeType !== 1 ) {
- newContext = context;
- newSelector = selector;
-
- // qSA looks outside Element context, which is not what we want
- // Thanks to Andrew Dupont for this workaround technique
- // Support: IE <=8
- // Exclude object elements
- } else if ( context.nodeName.toLowerCase() !== "object" ) {
-
- // Capture the context ID, setting it first if necessary
- if ( (nid = context.getAttribute( "id" )) ) {
- nid = nid.replace( rescape, "\\$&" );
- } else {
- context.setAttribute( "id", (nid = expando) );
- }
-
- // Prefix every selector in the list
- groups = tokenize( selector );
- i = groups.length;
- nidselect = ridentifier.test( nid ) ? "#" + nid : "[id='" + nid + "']";
- while ( i-- ) {
- groups[i] = nidselect + " " + toSelector( groups[i] );
- }
- newSelector = groups.join( "," );
-
- // Expand context for sibling selectors
- newContext = rsibling.test( selector ) && testContext( context.parentNode ) ||
- context;
- }
-
- if ( newSelector ) {
- try {
- push.apply( results,
- newContext.querySelectorAll( newSelector )
- );
- return results;
- } catch ( qsaError ) {
- } finally {
- if ( nid === expando ) {
- context.removeAttribute( "id" );
- }
- }
- }
- }
- }
- }
-
- // All others
- return select( selector.replace( rtrim, "$1" ), context, results, seed );
-}
-
-/**
- * Create key-value caches of limited size
- * @returns {function(string, object)} Returns the Object data after storing it on itself with
- * property name the (space-suffixed) string and (if the cache is larger than Expr.cacheLength)
- * deleting the oldest entry
- */
-function createCache() {
- var keys = [];
-
- function cache( key, value ) {
- // Use (key + " ") to avoid collision with native prototype properties (see Issue #157)
- if ( keys.push( key + " " ) > Expr.cacheLength ) {
- // Only keep the most recent entries
- delete cache[ keys.shift() ];
- }
- return (cache[ key + " " ] = value);
- }
- return cache;
-}
-
-/**
- * Mark a function for special use by Sizzle
- * @param {Function} fn The function to mark
- */
-function markFunction( fn ) {
- fn[ expando ] = true;
- return fn;
-}
-
-/**
- * Support testing using an element
- * @param {Function} fn Passed the created div and expects a boolean result
- */
-function assert( fn ) {
- var div = document.createElement("div");
-
- try {
- return !!fn( div );
- } catch (e) {
- return false;
- } finally {
- // Remove from its parent by default
- if ( div.parentNode ) {
- div.parentNode.removeChild( div );
- }
- // release memory in IE
- div = null;
- }
-}
-
-/**
- * Adds the same handler for all of the specified attrs
- * @param {String} attrs Pipe-separated list of attributes
- * @param {Function} handler The method that will be applied
- */
-function addHandle( attrs, handler ) {
- var arr = attrs.split("|"),
- i = arr.length;
-
- while ( i-- ) {
- Expr.attrHandle[ arr[i] ] = handler;
- }
-}
-
-/**
- * Checks document order of two siblings
- * @param {Element} a
- * @param {Element} b
- * @returns {Number} Returns less than 0 if a precedes b, greater than 0 if a follows b
- */
-function siblingCheck( a, b ) {
- var cur = b && a,
- diff = cur && a.nodeType === 1 && b.nodeType === 1 &&
- ( ~b.sourceIndex || MAX_NEGATIVE ) -
- ( ~a.sourceIndex || MAX_NEGATIVE );
-
- // Use IE sourceIndex if available on both nodes
- if ( diff ) {
- return diff;
- }
-
- // Check if b follows a
- if ( cur ) {
- while ( (cur = cur.nextSibling) ) {
- if ( cur === b ) {
- return -1;
- }
- }
- }
-
- return a ? 1 : -1;
-}
-
-/**
- * Returns a function to use in pseudos for input types
- * @param {String} type
- */
-function createInputPseudo( type ) {
- return function( elem ) {
- var name = elem.nodeName.toLowerCase();
- return name === "input" && elem.type === type;
- };
-}
-
-/**
- * Returns a function to use in pseudos for buttons
- * @param {String} type
- */
-function createButtonPseudo( type ) {
- return function( elem ) {
- var name = elem.nodeName.toLowerCase();
- return (name === "input" || name === "button") && elem.type === type;
- };
-}
-
-/**
- * Returns a function to use in pseudos for positionals
- * @param {Function} fn
- */
-function createPositionalPseudo( fn ) {
- return markFunction(function( argument ) {
- argument = +argument;
- return markFunction(function( seed, matches ) {
- var j,
- matchIndexes = fn( [], seed.length, argument ),
- i = matchIndexes.length;
-
- // Match elements found at the specified indexes
- while ( i-- ) {
- if ( seed[ (j = matchIndexes[i]) ] ) {
- seed[j] = !(matches[j] = seed[j]);
- }
- }
- });
- });
-}
-
-/**
- * Checks a node for validity as a Sizzle context
- * @param {Element|Object=} context
- * @returns {Element|Object|Boolean} The input node if acceptable, otherwise a falsy value
- */
-function testContext( context ) {
- return context && typeof context.getElementsByTagName !== "undefined" && context;
-}
-
-// Expose support vars for convenience
-support = Sizzle.support = {};
-
-/**
- * Detects XML nodes
- * @param {Element|Object} elem An element or a document
- * @returns {Boolean} True iff elem is a non-HTML XML node
- */
-isXML = Sizzle.isXML = function( elem ) {
- // documentElement is verified for cases where it doesn't yet exist
- // (such as loading iframes in IE - #4833)
- var documentElement = elem && (elem.ownerDocument || elem).documentElement;
- return documentElement ? documentElement.nodeName !== "HTML" : false;
-};
-
-/**
- * Sets document-related variables once based on the current document
- * @param {Element|Object} [doc] An element or document object to use to set the document
- * @returns {Object} Returns the current document
- */
-setDocument = Sizzle.setDocument = function( node ) {
- var hasCompare, parent,
- doc = node ? node.ownerDocument || node : preferredDoc;
-
- // Return early if doc is invalid or already selected
- if ( doc === document || doc.nodeType !== 9 || !doc.documentElement ) {
- return document;
- }
-
- // Update global variables
- document = doc;
- docElem = document.documentElement;
- documentIsHTML = !isXML( document );
-
- // Support: IE 9-11, Edge
- // Accessing iframe documents after unload throws "permission denied" errors (jQuery #13936)
- if ( (parent = document.defaultView) && parent.top !== parent ) {
- // Support: IE 11
- if ( parent.addEventListener ) {
- parent.addEventListener( "unload", unloadHandler, false );
-
- // Support: IE 9 - 10 only
- } else if ( parent.attachEvent ) {
- parent.attachEvent( "onunload", unloadHandler );
- }
- }
-
- /* Attributes
- ---------------------------------------------------------------------- */
-
- // Support: IE<8
- // Verify that getAttribute really returns attributes and not properties
- // (excepting IE8 booleans)
- support.attributes = assert(function( div ) {
- div.className = "i";
- return !div.getAttribute("className");
- });
-
- /* getElement(s)By*
- ---------------------------------------------------------------------- */
-
- // Check if getElementsByTagName("*") returns only elements
- support.getElementsByTagName = assert(function( div ) {
- div.appendChild( document.createComment("") );
- return !div.getElementsByTagName("*").length;
- });
-
- // Support: IE<9
- support.getElementsByClassName = rnative.test( document.getElementsByClassName );
-
- // Support: IE<10
- // Check if getElementById returns elements by name
- // The broken getElementById methods don't pick up programatically-set names,
- // so use a roundabout getElementsByName test
- support.getById = assert(function( div ) {
- docElem.appendChild( div ).id = expando;
- return !document.getElementsByName || !document.getElementsByName( expando ).length;
- });
-
- // ID find and filter
- if ( support.getById ) {
- Expr.find["ID"] = function( id, context ) {
- if ( typeof context.getElementById !== "undefined" && documentIsHTML ) {
- var m = context.getElementById( id );
- return m ? [ m ] : [];
- }
- };
- Expr.filter["ID"] = function( id ) {
- var attrId = id.replace( runescape, funescape );
- return function( elem ) {
- return elem.getAttribute("id") === attrId;
- };
- };
- } else {
- // Support: IE6/7
- // getElementById is not reliable as a find shortcut
- delete Expr.find["ID"];
-
- Expr.filter["ID"] = function( id ) {
- var attrId = id.replace( runescape, funescape );
- return function( elem ) {
- var node = typeof elem.getAttributeNode !== "undefined" &&
- elem.getAttributeNode("id");
- return node && node.value === attrId;
- };
- };
- }
-
- // Tag
- Expr.find["TAG"] = support.getElementsByTagName ?
- function( tag, context ) {
- if ( typeof context.getElementsByTagName !== "undefined" ) {
- return context.getElementsByTagName( tag );
-
- // DocumentFragment nodes don't have gEBTN
- } else if ( support.qsa ) {
- return context.querySelectorAll( tag );
- }
- } :
-
- function( tag, context ) {
- var elem,
- tmp = [],
- i = 0,
- // By happy coincidence, a (broken) gEBTN appears on DocumentFragment nodes too
- results = context.getElementsByTagName( tag );
-
- // Filter out possible comments
- if ( tag === "*" ) {
- while ( (elem = results[i++]) ) {
- if ( elem.nodeType === 1 ) {
- tmp.push( elem );
- }
- }
-
- return tmp;
- }
- return results;
- };
-
- // Class
- Expr.find["CLASS"] = support.getElementsByClassName && function( className, context ) {
- if ( typeof context.getElementsByClassName !== "undefined" && documentIsHTML ) {
- return context.getElementsByClassName( className );
- }
- };
-
- /* QSA/matchesSelector
- ---------------------------------------------------------------------- */
-
- // QSA and matchesSelector support
-
- // matchesSelector(:active) reports false when true (IE9/Opera 11.5)
- rbuggyMatches = [];
-
- // qSa(:focus) reports false when true (Chrome 21)
- // We allow this because of a bug in IE8/9 that throws an error
- // whenever `document.activeElement` is accessed on an iframe
- // So, we allow :focus to pass through QSA all the time to avoid the IE error
- // See http://bugs.jquery.com/ticket/13378
- rbuggyQSA = [];
-
- if ( (support.qsa = rnative.test( document.querySelectorAll )) ) {
- // Build QSA regex
- // Regex strategy adopted from Diego Perini
- assert(function( div ) {
- // Select is set to empty string on purpose
- // This is to test IE's treatment of not explicitly
- // setting a boolean content attribute,
- // since its presence should be enough
- // http://bugs.jquery.com/ticket/12359
- docElem.appendChild( div ).innerHTML = "" +
- "";
-
- // Support: IE8, Opera 11-12.16
- // Nothing should be selected when empty strings follow ^= or $= or *=
- // The test attribute must be unknown in Opera but "safe" for WinRT
- // http://msdn.microsoft.com/en-us/library/ie/hh465388.aspx#attribute_section
- if ( div.querySelectorAll("[msallowcapture^='']").length ) {
- rbuggyQSA.push( "[*^$]=" + whitespace + "*(?:''|\"\")" );
- }
-
- // Support: IE8
- // Boolean attributes and "value" are not treated correctly
- if ( !div.querySelectorAll("[selected]").length ) {
- rbuggyQSA.push( "\\[" + whitespace + "*(?:value|" + booleans + ")" );
- }
-
- // Support: Chrome<29, Android<4.4, Safari<7.0+, iOS<7.0+, PhantomJS<1.9.8+
- if ( !div.querySelectorAll( "[id~=" + expando + "-]" ).length ) {
- rbuggyQSA.push("~=");
- }
-
- // Webkit/Opera - :checked should return selected option elements
- // http://www.w3.org/TR/2011/REC-css3-selectors-20110929/#checked
- // IE8 throws error here and will not see later tests
- if ( !div.querySelectorAll(":checked").length ) {
- rbuggyQSA.push(":checked");
- }
-
- // Support: Safari 8+, iOS 8+
- // https://bugs.webkit.org/show_bug.cgi?id=136851
- // In-page `selector#id sibing-combinator selector` fails
- if ( !div.querySelectorAll( "a#" + expando + "+*" ).length ) {
- rbuggyQSA.push(".#.+[+~]");
- }
- });
-
- assert(function( div ) {
- // Support: Windows 8 Native Apps
- // The type and name attributes are restricted during .innerHTML assignment
- var input = document.createElement("input");
- input.setAttribute( "type", "hidden" );
- div.appendChild( input ).setAttribute( "name", "D" );
-
- // Support: IE8
- // Enforce case-sensitivity of name attribute
- if ( div.querySelectorAll("[name=d]").length ) {
- rbuggyQSA.push( "name" + whitespace + "*[*^$|!~]?=" );
- }
-
- // FF 3.5 - :enabled/:disabled and hidden elements (hidden elements are still enabled)
- // IE8 throws error here and will not see later tests
- if ( !div.querySelectorAll(":enabled").length ) {
- rbuggyQSA.push( ":enabled", ":disabled" );
- }
-
- // Opera 10-11 does not throw on post-comma invalid pseudos
- div.querySelectorAll("*,:x");
- rbuggyQSA.push(",.*:");
- });
- }
-
- if ( (support.matchesSelector = rnative.test( (matches = docElem.matches ||
- docElem.webkitMatchesSelector ||
- docElem.mozMatchesSelector ||
- docElem.oMatchesSelector ||
- docElem.msMatchesSelector) )) ) {
-
- assert(function( div ) {
- // Check to see if it's possible to do matchesSelector
- // on a disconnected node (IE 9)
- support.disconnectedMatch = matches.call( div, "div" );
-
- // This should fail with an exception
- // Gecko does not error, returns false instead
- matches.call( div, "[s!='']:x" );
- rbuggyMatches.push( "!=", pseudos );
- });
- }
-
- rbuggyQSA = rbuggyQSA.length && new RegExp( rbuggyQSA.join("|") );
- rbuggyMatches = rbuggyMatches.length && new RegExp( rbuggyMatches.join("|") );
-
- /* Contains
- ---------------------------------------------------------------------- */
- hasCompare = rnative.test( docElem.compareDocumentPosition );
-
- // Element contains another
- // Purposefully self-exclusive
- // As in, an element does not contain itself
- contains = hasCompare || rnative.test( docElem.contains ) ?
- function( a, b ) {
- var adown = a.nodeType === 9 ? a.documentElement : a,
- bup = b && b.parentNode;
- return a === bup || !!( bup && bup.nodeType === 1 && (
- adown.contains ?
- adown.contains( bup ) :
- a.compareDocumentPosition && a.compareDocumentPosition( bup ) & 16
- ));
- } :
- function( a, b ) {
- if ( b ) {
- while ( (b = b.parentNode) ) {
- if ( b === a ) {
- return true;
- }
- }
- }
- return false;
- };
-
- /* Sorting
- ---------------------------------------------------------------------- */
-
- // Document order sorting
- sortOrder = hasCompare ?
- function( a, b ) {
-
- // Flag for duplicate removal
- if ( a === b ) {
- hasDuplicate = true;
- return 0;
- }
-
- // Sort on method existence if only one input has compareDocumentPosition
- var compare = !a.compareDocumentPosition - !b.compareDocumentPosition;
- if ( compare ) {
- return compare;
- }
-
- // Calculate position if both inputs belong to the same document
- compare = ( a.ownerDocument || a ) === ( b.ownerDocument || b ) ?
- a.compareDocumentPosition( b ) :
-
- // Otherwise we know they are disconnected
- 1;
-
- // Disconnected nodes
- if ( compare & 1 ||
- (!support.sortDetached && b.compareDocumentPosition( a ) === compare) ) {
-
- // Choose the first element that is related to our preferred document
- if ( a === document || a.ownerDocument === preferredDoc && contains(preferredDoc, a) ) {
- return -1;
- }
- if ( b === document || b.ownerDocument === preferredDoc && contains(preferredDoc, b) ) {
- return 1;
- }
-
- // Maintain original order
- return sortInput ?
- ( indexOf( sortInput, a ) - indexOf( sortInput, b ) ) :
- 0;
- }
-
- return compare & 4 ? -1 : 1;
- } :
- function( a, b ) {
- // Exit early if the nodes are identical
- if ( a === b ) {
- hasDuplicate = true;
- return 0;
- }
-
- var cur,
- i = 0,
- aup = a.parentNode,
- bup = b.parentNode,
- ap = [ a ],
- bp = [ b ];
-
- // Parentless nodes are either documents or disconnected
- if ( !aup || !bup ) {
- return a === document ? -1 :
- b === document ? 1 :
- aup ? -1 :
- bup ? 1 :
- sortInput ?
- ( indexOf( sortInput, a ) - indexOf( sortInput, b ) ) :
- 0;
-
- // If the nodes are siblings, we can do a quick check
- } else if ( aup === bup ) {
- return siblingCheck( a, b );
- }
-
- // Otherwise we need full lists of their ancestors for comparison
- cur = a;
- while ( (cur = cur.parentNode) ) {
- ap.unshift( cur );
- }
- cur = b;
- while ( (cur = cur.parentNode) ) {
- bp.unshift( cur );
- }
-
- // Walk down the tree looking for a discrepancy
- while ( ap[i] === bp[i] ) {
- i++;
- }
-
- return i ?
- // Do a sibling check if the nodes have a common ancestor
- siblingCheck( ap[i], bp[i] ) :
-
- // Otherwise nodes in our document sort first
- ap[i] === preferredDoc ? -1 :
- bp[i] === preferredDoc ? 1 :
- 0;
- };
-
- return document;
-};
-
-Sizzle.matches = function( expr, elements ) {
- return Sizzle( expr, null, null, elements );
-};
-
-Sizzle.matchesSelector = function( elem, expr ) {
- // Set document vars if needed
- if ( ( elem.ownerDocument || elem ) !== document ) {
- setDocument( elem );
- }
-
- // Make sure that attribute selectors are quoted
- expr = expr.replace( rattributeQuotes, "='$1']" );
-
- if ( support.matchesSelector && documentIsHTML &&
- !compilerCache[ expr + " " ] &&
- ( !rbuggyMatches || !rbuggyMatches.test( expr ) ) &&
- ( !rbuggyQSA || !rbuggyQSA.test( expr ) ) ) {
-
- try {
- var ret = matches.call( elem, expr );
-
- // IE 9's matchesSelector returns false on disconnected nodes
- if ( ret || support.disconnectedMatch ||
- // As well, disconnected nodes are said to be in a document
- // fragment in IE 9
- elem.document && elem.document.nodeType !== 11 ) {
- return ret;
- }
- } catch (e) {}
- }
-
- return Sizzle( expr, document, null, [ elem ] ).length > 0;
-};
-
-Sizzle.contains = function( context, elem ) {
- // Set document vars if needed
- if ( ( context.ownerDocument || context ) !== document ) {
- setDocument( context );
- }
- return contains( context, elem );
-};
-
-Sizzle.attr = function( elem, name ) {
- // Set document vars if needed
- if ( ( elem.ownerDocument || elem ) !== document ) {
- setDocument( elem );
- }
-
- var fn = Expr.attrHandle[ name.toLowerCase() ],
- // Don't get fooled by Object.prototype properties (jQuery #13807)
- val = fn && hasOwn.call( Expr.attrHandle, name.toLowerCase() ) ?
- fn( elem, name, !documentIsHTML ) :
- undefined;
-
- return val !== undefined ?
- val :
- support.attributes || !documentIsHTML ?
- elem.getAttribute( name ) :
- (val = elem.getAttributeNode(name)) && val.specified ?
- val.value :
- null;
-};
-
-Sizzle.error = function( msg ) {
- throw new Error( "Syntax error, unrecognized expression: " + msg );
-};
-
-/**
- * Document sorting and removing duplicates
- * @param {ArrayLike} results
- */
-Sizzle.uniqueSort = function( results ) {
- var elem,
- duplicates = [],
- j = 0,
- i = 0;
-
- // Unless we *know* we can detect duplicates, assume their presence
- hasDuplicate = !support.detectDuplicates;
- sortInput = !support.sortStable && results.slice( 0 );
- results.sort( sortOrder );
-
- if ( hasDuplicate ) {
- while ( (elem = results[i++]) ) {
- if ( elem === results[ i ] ) {
- j = duplicates.push( i );
- }
- }
- while ( j-- ) {
- results.splice( duplicates[ j ], 1 );
- }
- }
-
- // Clear input after sorting to release objects
- // See https://github.com/jquery/sizzle/pull/225
- sortInput = null;
-
- return results;
-};
-
-/**
- * Utility function for retrieving the text value of an array of DOM nodes
- * @param {Array|Element} elem
- */
-getText = Sizzle.getText = function( elem ) {
- var node,
- ret = "",
- i = 0,
- nodeType = elem.nodeType;
-
- if ( !nodeType ) {
- // If no nodeType, this is expected to be an array
- while ( (node = elem[i++]) ) {
- // Do not traverse comment nodes
- ret += getText( node );
- }
- } else if ( nodeType === 1 || nodeType === 9 || nodeType === 11 ) {
- // Use textContent for elements
- // innerText usage removed for consistency of new lines (jQuery #11153)
- if ( typeof elem.textContent === "string" ) {
- return elem.textContent;
- } else {
- // Traverse its children
- for ( elem = elem.firstChild; elem; elem = elem.nextSibling ) {
- ret += getText( elem );
- }
- }
- } else if ( nodeType === 3 || nodeType === 4 ) {
- return elem.nodeValue;
- }
- // Do not include comment or processing instruction nodes
-
- return ret;
-};
-
-Expr = Sizzle.selectors = {
-
- // Can be adjusted by the user
- cacheLength: 50,
-
- createPseudo: markFunction,
-
- match: matchExpr,
-
- attrHandle: {},
-
- find: {},
-
- relative: {
- ">": { dir: "parentNode", first: true },
- " ": { dir: "parentNode" },
- "+": { dir: "previousSibling", first: true },
- "~": { dir: "previousSibling" }
- },
-
- preFilter: {
- "ATTR": function( match ) {
- match[1] = match[1].replace( runescape, funescape );
-
- // Move the given value to match[3] whether quoted or unquoted
- match[3] = ( match[3] || match[4] || match[5] || "" ).replace( runescape, funescape );
-
- if ( match[2] === "~=" ) {
- match[3] = " " + match[3] + " ";
- }
-
- return match.slice( 0, 4 );
- },
-
- "CHILD": function( match ) {
- /* matches from matchExpr["CHILD"]
- 1 type (only|nth|...)
- 2 what (child|of-type)
- 3 argument (even|odd|\d*|\d*n([+-]\d+)?|...)
- 4 xn-component of xn+y argument ([+-]?\d*n|)
- 5 sign of xn-component
- 6 x of xn-component
- 7 sign of y-component
- 8 y of y-component
- */
- match[1] = match[1].toLowerCase();
-
- if ( match[1].slice( 0, 3 ) === "nth" ) {
- // nth-* requires argument
- if ( !match[3] ) {
- Sizzle.error( match[0] );
- }
-
- // numeric x and y parameters for Expr.filter.CHILD
- // remember that false/true cast respectively to 0/1
- match[4] = +( match[4] ? match[5] + (match[6] || 1) : 2 * ( match[3] === "even" || match[3] === "odd" ) );
- match[5] = +( ( match[7] + match[8] ) || match[3] === "odd" );
-
- // other types prohibit arguments
- } else if ( match[3] ) {
- Sizzle.error( match[0] );
- }
-
- return match;
- },
-
- "PSEUDO": function( match ) {
- var excess,
- unquoted = !match[6] && match[2];
-
- if ( matchExpr["CHILD"].test( match[0] ) ) {
- return null;
- }
-
- // Accept quoted arguments as-is
- if ( match[3] ) {
- match[2] = match[4] || match[5] || "";
-
- // Strip excess characters from unquoted arguments
- } else if ( unquoted && rpseudo.test( unquoted ) &&
- // Get excess from tokenize (recursively)
- (excess = tokenize( unquoted, true )) &&
- // advance to the next closing parenthesis
- (excess = unquoted.indexOf( ")", unquoted.length - excess ) - unquoted.length) ) {
-
- // excess is a negative index
- match[0] = match[0].slice( 0, excess );
- match[2] = unquoted.slice( 0, excess );
- }
-
- // Return only captures needed by the pseudo filter method (type and argument)
- return match.slice( 0, 3 );
- }
- },
-
- filter: {
-
- "TAG": function( nodeNameSelector ) {
- var nodeName = nodeNameSelector.replace( runescape, funescape ).toLowerCase();
- return nodeNameSelector === "*" ?
- function() { return true; } :
- function( elem ) {
- return elem.nodeName && elem.nodeName.toLowerCase() === nodeName;
- };
- },
-
- "CLASS": function( className ) {
- var pattern = classCache[ className + " " ];
-
- return pattern ||
- (pattern = new RegExp( "(^|" + whitespace + ")" + className + "(" + whitespace + "|$)" )) &&
- classCache( className, function( elem ) {
- return pattern.test( typeof elem.className === "string" && elem.className || typeof elem.getAttribute !== "undefined" && elem.getAttribute("class") || "" );
- });
- },
-
- "ATTR": function( name, operator, check ) {
- return function( elem ) {
- var result = Sizzle.attr( elem, name );
-
- if ( result == null ) {
- return operator === "!=";
- }
- if ( !operator ) {
- return true;
- }
-
- result += "";
-
- return operator === "=" ? result === check :
- operator === "!=" ? result !== check :
- operator === "^=" ? check && result.indexOf( check ) === 0 :
- operator === "*=" ? check && result.indexOf( check ) > -1 :
- operator === "$=" ? check && result.slice( -check.length ) === check :
- operator === "~=" ? ( " " + result.replace( rwhitespace, " " ) + " " ).indexOf( check ) > -1 :
- operator === "|=" ? result === check || result.slice( 0, check.length + 1 ) === check + "-" :
- false;
- };
- },
-
- "CHILD": function( type, what, argument, first, last ) {
- var simple = type.slice( 0, 3 ) !== "nth",
- forward = type.slice( -4 ) !== "last",
- ofType = what === "of-type";
-
- return first === 1 && last === 0 ?
-
- // Shortcut for :nth-*(n)
- function( elem ) {
- return !!elem.parentNode;
- } :
-
- function( elem, context, xml ) {
- var cache, uniqueCache, outerCache, node, nodeIndex, start,
- dir = simple !== forward ? "nextSibling" : "previousSibling",
- parent = elem.parentNode,
- name = ofType && elem.nodeName.toLowerCase(),
- useCache = !xml && !ofType,
- diff = false;
-
- if ( parent ) {
-
- // :(first|last|only)-(child|of-type)
- if ( simple ) {
- while ( dir ) {
- node = elem;
- while ( (node = node[ dir ]) ) {
- if ( ofType ?
- node.nodeName.toLowerCase() === name :
- node.nodeType === 1 ) {
-
- return false;
- }
- }
- // Reverse direction for :only-* (if we haven't yet done so)
- start = dir = type === "only" && !start && "nextSibling";
- }
- return true;
- }
-
- start = [ forward ? parent.firstChild : parent.lastChild ];
-
- // non-xml :nth-child(...) stores cache data on `parent`
- if ( forward && useCache ) {
-
- // Seek `elem` from a previously-cached index
-
- // ...in a gzip-friendly way
- node = parent;
- outerCache = node[ expando ] || (node[ expando ] = {});
-
- // Support: IE <9 only
- // Defend against cloned attroperties (jQuery gh-1709)
- uniqueCache = outerCache[ node.uniqueID ] ||
- (outerCache[ node.uniqueID ] = {});
-
- cache = uniqueCache[ type ] || [];
- nodeIndex = cache[ 0 ] === dirruns && cache[ 1 ];
- diff = nodeIndex && cache[ 2 ];
- node = nodeIndex && parent.childNodes[ nodeIndex ];
-
- while ( (node = ++nodeIndex && node && node[ dir ] ||
-
- // Fallback to seeking `elem` from the start
- (diff = nodeIndex = 0) || start.pop()) ) {
-
- // When found, cache indexes on `parent` and break
- if ( node.nodeType === 1 && ++diff && node === elem ) {
- uniqueCache[ type ] = [ dirruns, nodeIndex, diff ];
- break;
- }
- }
-
- } else {
- // Use previously-cached element index if available
- if ( useCache ) {
- // ...in a gzip-friendly way
- node = elem;
- outerCache = node[ expando ] || (node[ expando ] = {});
-
- // Support: IE <9 only
- // Defend against cloned attroperties (jQuery gh-1709)
- uniqueCache = outerCache[ node.uniqueID ] ||
- (outerCache[ node.uniqueID ] = {});
-
- cache = uniqueCache[ type ] || [];
- nodeIndex = cache[ 0 ] === dirruns && cache[ 1 ];
- diff = nodeIndex;
- }
-
- // xml :nth-child(...)
- // or :nth-last-child(...) or :nth(-last)?-of-type(...)
- if ( diff === false ) {
- // Use the same loop as above to seek `elem` from the start
- while ( (node = ++nodeIndex && node && node[ dir ] ||
- (diff = nodeIndex = 0) || start.pop()) ) {
-
- if ( ( ofType ?
- node.nodeName.toLowerCase() === name :
- node.nodeType === 1 ) &&
- ++diff ) {
-
- // Cache the index of each encountered element
- if ( useCache ) {
- outerCache = node[ expando ] || (node[ expando ] = {});
-
- // Support: IE <9 only
- // Defend against cloned attroperties (jQuery gh-1709)
- uniqueCache = outerCache[ node.uniqueID ] ||
- (outerCache[ node.uniqueID ] = {});
-
- uniqueCache[ type ] = [ dirruns, diff ];
- }
-
- if ( node === elem ) {
- break;
- }
- }
- }
- }
- }
-
- // Incorporate the offset, then check against cycle size
- diff -= last;
- return diff === first || ( diff % first === 0 && diff / first >= 0 );
- }
- };
- },
-
- "PSEUDO": function( pseudo, argument ) {
- // pseudo-class names are case-insensitive
- // http://www.w3.org/TR/selectors/#pseudo-classes
- // Prioritize by case sensitivity in case custom pseudos are added with uppercase letters
- // Remember that setFilters inherits from pseudos
- var args,
- fn = Expr.pseudos[ pseudo ] || Expr.setFilters[ pseudo.toLowerCase() ] ||
- Sizzle.error( "unsupported pseudo: " + pseudo );
-
- // The user may use createPseudo to indicate that
- // arguments are needed to create the filter function
- // just as Sizzle does
- if ( fn[ expando ] ) {
- return fn( argument );
- }
-
- // But maintain support for old signatures
- if ( fn.length > 1 ) {
- args = [ pseudo, pseudo, "", argument ];
- return Expr.setFilters.hasOwnProperty( pseudo.toLowerCase() ) ?
- markFunction(function( seed, matches ) {
- var idx,
- matched = fn( seed, argument ),
- i = matched.length;
- while ( i-- ) {
- idx = indexOf( seed, matched[i] );
- seed[ idx ] = !( matches[ idx ] = matched[i] );
- }
- }) :
- function( elem ) {
- return fn( elem, 0, args );
- };
- }
-
- return fn;
- }
- },
-
- pseudos: {
- // Potentially complex pseudos
- "not": markFunction(function( selector ) {
- // Trim the selector passed to compile
- // to avoid treating leading and trailing
- // spaces as combinators
- var input = [],
- results = [],
- matcher = compile( selector.replace( rtrim, "$1" ) );
-
- return matcher[ expando ] ?
- markFunction(function( seed, matches, context, xml ) {
- var elem,
- unmatched = matcher( seed, null, xml, [] ),
- i = seed.length;
-
- // Match elements unmatched by `matcher`
- while ( i-- ) {
- if ( (elem = unmatched[i]) ) {
- seed[i] = !(matches[i] = elem);
- }
- }
- }) :
- function( elem, context, xml ) {
- input[0] = elem;
- matcher( input, null, xml, results );
- // Don't keep the element (issue #299)
- input[0] = null;
- return !results.pop();
- };
- }),
-
- "has": markFunction(function( selector ) {
- return function( elem ) {
- return Sizzle( selector, elem ).length > 0;
- };
- }),
-
- "contains": markFunction(function( text ) {
- text = text.replace( runescape, funescape );
- return function( elem ) {
- return ( elem.textContent || elem.innerText || getText( elem ) ).indexOf( text ) > -1;
- };
- }),
-
- // "Whether an element is represented by a :lang() selector
- // is based solely on the element's language value
- // being equal to the identifier C,
- // or beginning with the identifier C immediately followed by "-".
- // The matching of C against the element's language value is performed case-insensitively.
- // The identifier C does not have to be a valid language name."
- // http://www.w3.org/TR/selectors/#lang-pseudo
- "lang": markFunction( function( lang ) {
- // lang value must be a valid identifier
- if ( !ridentifier.test(lang || "") ) {
- Sizzle.error( "unsupported lang: " + lang );
- }
- lang = lang.replace( runescape, funescape ).toLowerCase();
- return function( elem ) {
- var elemLang;
- do {
- if ( (elemLang = documentIsHTML ?
- elem.lang :
- elem.getAttribute("xml:lang") || elem.getAttribute("lang")) ) {
-
- elemLang = elemLang.toLowerCase();
- return elemLang === lang || elemLang.indexOf( lang + "-" ) === 0;
- }
- } while ( (elem = elem.parentNode) && elem.nodeType === 1 );
- return false;
- };
- }),
-
- // Miscellaneous
- "target": function( elem ) {
- var hash = window.location && window.location.hash;
- return hash && hash.slice( 1 ) === elem.id;
- },
-
- "root": function( elem ) {
- return elem === docElem;
- },
-
- "focus": function( elem ) {
- return elem === document.activeElement && (!document.hasFocus || document.hasFocus()) && !!(elem.type || elem.href || ~elem.tabIndex);
- },
-
- // Boolean properties
- "enabled": function( elem ) {
- return elem.disabled === false;
- },
-
- "disabled": function( elem ) {
- return elem.disabled === true;
- },
-
- "checked": function( elem ) {
- // In CSS3, :checked should return both checked and selected elements
- // http://www.w3.org/TR/2011/REC-css3-selectors-20110929/#checked
- var nodeName = elem.nodeName.toLowerCase();
- return (nodeName === "input" && !!elem.checked) || (nodeName === "option" && !!elem.selected);
- },
-
- "selected": function( elem ) {
- // Accessing this property makes selected-by-default
- // options in Safari work properly
- if ( elem.parentNode ) {
- elem.parentNode.selectedIndex;
- }
-
- return elem.selected === true;
- },
-
- // Contents
- "empty": function( elem ) {
- // http://www.w3.org/TR/selectors/#empty-pseudo
- // :empty is negated by element (1) or content nodes (text: 3; cdata: 4; entity ref: 5),
- // but not by others (comment: 8; processing instruction: 7; etc.)
- // nodeType < 6 works because attributes (2) do not appear as children
- for ( elem = elem.firstChild; elem; elem = elem.nextSibling ) {
- if ( elem.nodeType < 6 ) {
- return false;
- }
- }
- return true;
- },
-
- "parent": function( elem ) {
- return !Expr.pseudos["empty"]( elem );
- },
-
- // Element/input types
- "header": function( elem ) {
- return rheader.test( elem.nodeName );
- },
-
- "input": function( elem ) {
- return rinputs.test( elem.nodeName );
- },
-
- "button": function( elem ) {
- var name = elem.nodeName.toLowerCase();
- return name === "input" && elem.type === "button" || name === "button";
- },
-
- "text": function( elem ) {
- var attr;
- return elem.nodeName.toLowerCase() === "input" &&
- elem.type === "text" &&
-
- // Support: IE<8
- // New HTML5 attribute values (e.g., "search") appear with elem.type === "text"
- ( (attr = elem.getAttribute("type")) == null || attr.toLowerCase() === "text" );
- },
-
- // Position-in-collection
- "first": createPositionalPseudo(function() {
- return [ 0 ];
- }),
-
- "last": createPositionalPseudo(function( matchIndexes, length ) {
- return [ length - 1 ];
- }),
-
- "eq": createPositionalPseudo(function( matchIndexes, length, argument ) {
- return [ argument < 0 ? argument + length : argument ];
- }),
-
- "even": createPositionalPseudo(function( matchIndexes, length ) {
- var i = 0;
- for ( ; i < length; i += 2 ) {
- matchIndexes.push( i );
- }
- return matchIndexes;
- }),
-
- "odd": createPositionalPseudo(function( matchIndexes, length ) {
- var i = 1;
- for ( ; i < length; i += 2 ) {
- matchIndexes.push( i );
- }
- return matchIndexes;
- }),
-
- "lt": createPositionalPseudo(function( matchIndexes, length, argument ) {
- var i = argument < 0 ? argument + length : argument;
- for ( ; --i >= 0; ) {
- matchIndexes.push( i );
- }
- return matchIndexes;
- }),
-
- "gt": createPositionalPseudo(function( matchIndexes, length, argument ) {
- var i = argument < 0 ? argument + length : argument;
- for ( ; ++i < length; ) {
- matchIndexes.push( i );
- }
- return matchIndexes;
- })
- }
-};
-
-Expr.pseudos["nth"] = Expr.pseudos["eq"];
-
-// Add button/input type pseudos
-for ( i in { radio: true, checkbox: true, file: true, password: true, image: true } ) {
- Expr.pseudos[ i ] = createInputPseudo( i );
-}
-for ( i in { submit: true, reset: true } ) {
- Expr.pseudos[ i ] = createButtonPseudo( i );
-}
-
-// Easy API for creating new setFilters
-function setFilters() {}
-setFilters.prototype = Expr.filters = Expr.pseudos;
-Expr.setFilters = new setFilters();
-
-tokenize = Sizzle.tokenize = function( selector, parseOnly ) {
- var matched, match, tokens, type,
- soFar, groups, preFilters,
- cached = tokenCache[ selector + " " ];
-
- if ( cached ) {
- return parseOnly ? 0 : cached.slice( 0 );
- }
-
- soFar = selector;
- groups = [];
- preFilters = Expr.preFilter;
-
- while ( soFar ) {
-
- // Comma and first run
- if ( !matched || (match = rcomma.exec( soFar )) ) {
- if ( match ) {
- // Don't consume trailing commas as valid
- soFar = soFar.slice( match[0].length ) || soFar;
- }
- groups.push( (tokens = []) );
- }
-
- matched = false;
-
- // Combinators
- if ( (match = rcombinators.exec( soFar )) ) {
- matched = match.shift();
- tokens.push({
- value: matched,
- // Cast descendant combinators to space
- type: match[0].replace( rtrim, " " )
- });
- soFar = soFar.slice( matched.length );
- }
-
- // Filters
- for ( type in Expr.filter ) {
- if ( (match = matchExpr[ type ].exec( soFar )) && (!preFilters[ type ] ||
- (match = preFilters[ type ]( match ))) ) {
- matched = match.shift();
- tokens.push({
- value: matched,
- type: type,
- matches: match
- });
- soFar = soFar.slice( matched.length );
- }
- }
-
- if ( !matched ) {
- break;
- }
- }
-
- // Return the length of the invalid excess
- // if we're just parsing
- // Otherwise, throw an error or return tokens
- return parseOnly ?
- soFar.length :
- soFar ?
- Sizzle.error( selector ) :
- // Cache the tokens
- tokenCache( selector, groups ).slice( 0 );
-};
-
-function toSelector( tokens ) {
- var i = 0,
- len = tokens.length,
- selector = "";
- for ( ; i < len; i++ ) {
- selector += tokens[i].value;
- }
- return selector;
-}
-
-function addCombinator( matcher, combinator, base ) {
- var dir = combinator.dir,
- checkNonElements = base && dir === "parentNode",
- doneName = done++;
-
- return combinator.first ?
- // Check against closest ancestor/preceding element
- function( elem, context, xml ) {
- while ( (elem = elem[ dir ]) ) {
- if ( elem.nodeType === 1 || checkNonElements ) {
- return matcher( elem, context, xml );
- }
- }
- } :
-
- // Check against all ancestor/preceding elements
- function( elem, context, xml ) {
- var oldCache, uniqueCache, outerCache,
- newCache = [ dirruns, doneName ];
-
- // We can't set arbitrary data on XML nodes, so they don't benefit from combinator caching
- if ( xml ) {
- while ( (elem = elem[ dir ]) ) {
- if ( elem.nodeType === 1 || checkNonElements ) {
- if ( matcher( elem, context, xml ) ) {
- return true;
- }
- }
- }
- } else {
- while ( (elem = elem[ dir ]) ) {
- if ( elem.nodeType === 1 || checkNonElements ) {
- outerCache = elem[ expando ] || (elem[ expando ] = {});
-
- // Support: IE <9 only
- // Defend against cloned attroperties (jQuery gh-1709)
- uniqueCache = outerCache[ elem.uniqueID ] || (outerCache[ elem.uniqueID ] = {});
-
- if ( (oldCache = uniqueCache[ dir ]) &&
- oldCache[ 0 ] === dirruns && oldCache[ 1 ] === doneName ) {
-
- // Assign to newCache so results back-propagate to previous elements
- return (newCache[ 2 ] = oldCache[ 2 ]);
- } else {
- // Reuse newcache so results back-propagate to previous elements
- uniqueCache[ dir ] = newCache;
-
- // A match means we're done; a fail means we have to keep checking
- if ( (newCache[ 2 ] = matcher( elem, context, xml )) ) {
- return true;
- }
- }
- }
- }
- }
- };
-}
-
-function elementMatcher( matchers ) {
- return matchers.length > 1 ?
- function( elem, context, xml ) {
- var i = matchers.length;
- while ( i-- ) {
- if ( !matchers[i]( elem, context, xml ) ) {
- return false;
- }
- }
- return true;
- } :
- matchers[0];
-}
-
-function multipleContexts( selector, contexts, results ) {
- var i = 0,
- len = contexts.length;
- for ( ; i < len; i++ ) {
- Sizzle( selector, contexts[i], results );
- }
- return results;
-}
-
-function condense( unmatched, map, filter, context, xml ) {
- var elem,
- newUnmatched = [],
- i = 0,
- len = unmatched.length,
- mapped = map != null;
-
- for ( ; i < len; i++ ) {
- if ( (elem = unmatched[i]) ) {
- if ( !filter || filter( elem, context, xml ) ) {
- newUnmatched.push( elem );
- if ( mapped ) {
- map.push( i );
- }
- }
- }
- }
-
- return newUnmatched;
-}
-
-function setMatcher( preFilter, selector, matcher, postFilter, postFinder, postSelector ) {
- if ( postFilter && !postFilter[ expando ] ) {
- postFilter = setMatcher( postFilter );
- }
- if ( postFinder && !postFinder[ expando ] ) {
- postFinder = setMatcher( postFinder, postSelector );
- }
- return markFunction(function( seed, results, context, xml ) {
- var temp, i, elem,
- preMap = [],
- postMap = [],
- preexisting = results.length,
-
- // Get initial elements from seed or context
- elems = seed || multipleContexts( selector || "*", context.nodeType ? [ context ] : context, [] ),
-
- // Prefilter to get matcher input, preserving a map for seed-results synchronization
- matcherIn = preFilter && ( seed || !selector ) ?
- condense( elems, preMap, preFilter, context, xml ) :
- elems,
-
- matcherOut = matcher ?
- // If we have a postFinder, or filtered seed, or non-seed postFilter or preexisting results,
- postFinder || ( seed ? preFilter : preexisting || postFilter ) ?
-
- // ...intermediate processing is necessary
- [] :
-
- // ...otherwise use results directly
- results :
- matcherIn;
-
- // Find primary matches
- if ( matcher ) {
- matcher( matcherIn, matcherOut, context, xml );
- }
-
- // Apply postFilter
- if ( postFilter ) {
- temp = condense( matcherOut, postMap );
- postFilter( temp, [], context, xml );
-
- // Un-match failing elements by moving them back to matcherIn
- i = temp.length;
- while ( i-- ) {
- if ( (elem = temp[i]) ) {
- matcherOut[ postMap[i] ] = !(matcherIn[ postMap[i] ] = elem);
- }
- }
- }
-
- if ( seed ) {
- if ( postFinder || preFilter ) {
- if ( postFinder ) {
- // Get the final matcherOut by condensing this intermediate into postFinder contexts
- temp = [];
- i = matcherOut.length;
- while ( i-- ) {
- if ( (elem = matcherOut[i]) ) {
- // Restore matcherIn since elem is not yet a final match
- temp.push( (matcherIn[i] = elem) );
- }
- }
- postFinder( null, (matcherOut = []), temp, xml );
- }
-
- // Move matched elements from seed to results to keep them synchronized
- i = matcherOut.length;
- while ( i-- ) {
- if ( (elem = matcherOut[i]) &&
- (temp = postFinder ? indexOf( seed, elem ) : preMap[i]) > -1 ) {
-
- seed[temp] = !(results[temp] = elem);
- }
- }
- }
-
- // Add elements to results, through postFinder if defined
- } else {
- matcherOut = condense(
- matcherOut === results ?
- matcherOut.splice( preexisting, matcherOut.length ) :
- matcherOut
- );
- if ( postFinder ) {
- postFinder( null, results, matcherOut, xml );
- } else {
- push.apply( results, matcherOut );
- }
- }
- });
-}
-
-function matcherFromTokens( tokens ) {
- var checkContext, matcher, j,
- len = tokens.length,
- leadingRelative = Expr.relative[ tokens[0].type ],
- implicitRelative = leadingRelative || Expr.relative[" "],
- i = leadingRelative ? 1 : 0,
-
- // The foundational matcher ensures that elements are reachable from top-level context(s)
- matchContext = addCombinator( function( elem ) {
- return elem === checkContext;
- }, implicitRelative, true ),
- matchAnyContext = addCombinator( function( elem ) {
- return indexOf( checkContext, elem ) > -1;
- }, implicitRelative, true ),
- matchers = [ function( elem, context, xml ) {
- var ret = ( !leadingRelative && ( xml || context !== outermostContext ) ) || (
- (checkContext = context).nodeType ?
- matchContext( elem, context, xml ) :
- matchAnyContext( elem, context, xml ) );
- // Avoid hanging onto element (issue #299)
- checkContext = null;
- return ret;
- } ];
-
- for ( ; i < len; i++ ) {
- if ( (matcher = Expr.relative[ tokens[i].type ]) ) {
- matchers = [ addCombinator(elementMatcher( matchers ), matcher) ];
- } else {
- matcher = Expr.filter[ tokens[i].type ].apply( null, tokens[i].matches );
-
- // Return special upon seeing a positional matcher
- if ( matcher[ expando ] ) {
- // Find the next relative operator (if any) for proper handling
- j = ++i;
- for ( ; j < len; j++ ) {
- if ( Expr.relative[ tokens[j].type ] ) {
- break;
- }
- }
- return setMatcher(
- i > 1 && elementMatcher( matchers ),
- i > 1 && toSelector(
- // If the preceding token was a descendant combinator, insert an implicit any-element `*`
- tokens.slice( 0, i - 1 ).concat({ value: tokens[ i - 2 ].type === " " ? "*" : "" })
- ).replace( rtrim, "$1" ),
- matcher,
- i < j && matcherFromTokens( tokens.slice( i, j ) ),
- j < len && matcherFromTokens( (tokens = tokens.slice( j )) ),
- j < len && toSelector( tokens )
- );
- }
- matchers.push( matcher );
- }
- }
-
- return elementMatcher( matchers );
-}
-
-function matcherFromGroupMatchers( elementMatchers, setMatchers ) {
- var bySet = setMatchers.length > 0,
- byElement = elementMatchers.length > 0,
- superMatcher = function( seed, context, xml, results, outermost ) {
- var elem, j, matcher,
- matchedCount = 0,
- i = "0",
- unmatched = seed && [],
- setMatched = [],
- contextBackup = outermostContext,
- // We must always have either seed elements or outermost context
- elems = seed || byElement && Expr.find["TAG"]( "*", outermost ),
- // Use integer dirruns iff this is the outermost matcher
- dirrunsUnique = (dirruns += contextBackup == null ? 1 : Math.random() || 0.1),
- len = elems.length;
-
- if ( outermost ) {
- outermostContext = context === document || context || outermost;
- }
-
- // Add elements passing elementMatchers directly to results
- // Support: IE<9, Safari
- // Tolerate NodeList properties (IE: "length"; Safari: ) matching elements by id
- for ( ; i !== len && (elem = elems[i]) != null; i++ ) {
- if ( byElement && elem ) {
- j = 0;
- if ( !context && elem.ownerDocument !== document ) {
- setDocument( elem );
- xml = !documentIsHTML;
- }
- while ( (matcher = elementMatchers[j++]) ) {
- if ( matcher( elem, context || document, xml) ) {
- results.push( elem );
- break;
- }
- }
- if ( outermost ) {
- dirruns = dirrunsUnique;
- }
- }
-
- // Track unmatched elements for set filters
- if ( bySet ) {
- // They will have gone through all possible matchers
- if ( (elem = !matcher && elem) ) {
- matchedCount--;
- }
-
- // Lengthen the array for every element, matched or not
- if ( seed ) {
- unmatched.push( elem );
- }
- }
- }
-
- // `i` is now the count of elements visited above, and adding it to `matchedCount`
- // makes the latter nonnegative.
- matchedCount += i;
-
- // Apply set filters to unmatched elements
- // NOTE: This can be skipped if there are no unmatched elements (i.e., `matchedCount`
- // equals `i`), unless we didn't visit _any_ elements in the above loop because we have
- // no element matchers and no seed.
- // Incrementing an initially-string "0" `i` allows `i` to remain a string only in that
- // case, which will result in a "00" `matchedCount` that differs from `i` but is also
- // numerically zero.
- if ( bySet && i !== matchedCount ) {
- j = 0;
- while ( (matcher = setMatchers[j++]) ) {
- matcher( unmatched, setMatched, context, xml );
- }
-
- if ( seed ) {
- // Reintegrate element matches to eliminate the need for sorting
- if ( matchedCount > 0 ) {
- while ( i-- ) {
- if ( !(unmatched[i] || setMatched[i]) ) {
- setMatched[i] = pop.call( results );
- }
- }
- }
-
- // Discard index placeholder values to get only actual matches
- setMatched = condense( setMatched );
- }
-
- // Add matches to results
- push.apply( results, setMatched );
-
- // Seedless set matches succeeding multiple successful matchers stipulate sorting
- if ( outermost && !seed && setMatched.length > 0 &&
- ( matchedCount + setMatchers.length ) > 1 ) {
-
- Sizzle.uniqueSort( results );
- }
- }
-
- // Override manipulation of globals by nested matchers
- if ( outermost ) {
- dirruns = dirrunsUnique;
- outermostContext = contextBackup;
- }
-
- return unmatched;
- };
-
- return bySet ?
- markFunction( superMatcher ) :
- superMatcher;
-}
-
-compile = Sizzle.compile = function( selector, match /* Internal Use Only */ ) {
- var i,
- setMatchers = [],
- elementMatchers = [],
- cached = compilerCache[ selector + " " ];
-
- if ( !cached ) {
- // Generate a function of recursive functions that can be used to check each element
- if ( !match ) {
- match = tokenize( selector );
- }
- i = match.length;
- while ( i-- ) {
- cached = matcherFromTokens( match[i] );
- if ( cached[ expando ] ) {
- setMatchers.push( cached );
- } else {
- elementMatchers.push( cached );
- }
- }
-
- // Cache the compiled function
- cached = compilerCache( selector, matcherFromGroupMatchers( elementMatchers, setMatchers ) );
-
- // Save selector and tokenization
- cached.selector = selector;
- }
- return cached;
-};
-
-/**
- * A low-level selection function that works with Sizzle's compiled
- * selector functions
- * @param {String|Function} selector A selector or a pre-compiled
- * selector function built with Sizzle.compile
- * @param {Element} context
- * @param {Array} [results]
- * @param {Array} [seed] A set of elements to match against
- */
-select = Sizzle.select = function( selector, context, results, seed ) {
- var i, tokens, token, type, find,
- compiled = typeof selector === "function" && selector,
- match = !seed && tokenize( (selector = compiled.selector || selector) );
-
- results = results || [];
-
- // Try to minimize operations if there is only one selector in the list and no seed
- // (the latter of which guarantees us context)
- if ( match.length === 1 ) {
-
- // Reduce context if the leading compound selector is an ID
- tokens = match[0] = match[0].slice( 0 );
- if ( tokens.length > 2 && (token = tokens[0]).type === "ID" &&
- support.getById && context.nodeType === 9 && documentIsHTML &&
- Expr.relative[ tokens[1].type ] ) {
-
- context = ( Expr.find["ID"]( token.matches[0].replace(runescape, funescape), context ) || [] )[0];
- if ( !context ) {
- return results;
-
- // Precompiled matchers will still verify ancestry, so step up a level
- } else if ( compiled ) {
- context = context.parentNode;
- }
-
- selector = selector.slice( tokens.shift().value.length );
- }
-
- // Fetch a seed set for right-to-left matching
- i = matchExpr["needsContext"].test( selector ) ? 0 : tokens.length;
- while ( i-- ) {
- token = tokens[i];
-
- // Abort if we hit a combinator
- if ( Expr.relative[ (type = token.type) ] ) {
- break;
- }
- if ( (find = Expr.find[ type ]) ) {
- // Search, expanding context for leading sibling combinators
- if ( (seed = find(
- token.matches[0].replace( runescape, funescape ),
- rsibling.test( tokens[0].type ) && testContext( context.parentNode ) || context
- )) ) {
-
- // If seed is empty or no tokens remain, we can return early
- tokens.splice( i, 1 );
- selector = seed.length && toSelector( tokens );
- if ( !selector ) {
- push.apply( results, seed );
- return results;
- }
-
- break;
- }
- }
- }
- }
-
- // Compile and execute a filtering function if one is not provided
- // Provide `match` to avoid retokenization if we modified the selector above
- ( compiled || compile( selector, match ) )(
- seed,
- context,
- !documentIsHTML,
- results,
- !context || rsibling.test( selector ) && testContext( context.parentNode ) || context
- );
- return results;
-};
-
-// One-time assignments
-
-// Sort stability
-support.sortStable = expando.split("").sort( sortOrder ).join("") === expando;
-
-// Support: Chrome 14-35+
-// Always assume duplicates if they aren't passed to the comparison function
-support.detectDuplicates = !!hasDuplicate;
-
-// Initialize against the default document
-setDocument();
-
-// Support: Webkit<537.32 - Safari 6.0.3/Chrome 25 (fixed in Chrome 27)
-// Detached nodes confoundingly follow *each other*
-support.sortDetached = assert(function( div1 ) {
- // Should return 1, but returns 4 (following)
- return div1.compareDocumentPosition( document.createElement("div") ) & 1;
-});
-
-// Support: IE<8
-// Prevent attribute/property "interpolation"
-// http://msdn.microsoft.com/en-us/library/ms536429%28VS.85%29.aspx
-if ( !assert(function( div ) {
- div.innerHTML = "";
- return div.firstChild.getAttribute("href") === "#" ;
-}) ) {
- addHandle( "type|href|height|width", function( elem, name, isXML ) {
- if ( !isXML ) {
- return elem.getAttribute( name, name.toLowerCase() === "type" ? 1 : 2 );
- }
- });
-}
-
-// Support: IE<9
-// Use defaultValue in place of getAttribute("value")
-if ( !support.attributes || !assert(function( div ) {
- div.innerHTML = "";
- div.firstChild.setAttribute( "value", "" );
- return div.firstChild.getAttribute( "value" ) === "";
-}) ) {
- addHandle( "value", function( elem, name, isXML ) {
- if ( !isXML && elem.nodeName.toLowerCase() === "input" ) {
- return elem.defaultValue;
- }
- });
-}
-
-// Support: IE<9
-// Use getAttributeNode to fetch booleans when getAttribute lies
-if ( !assert(function( div ) {
- return div.getAttribute("disabled") == null;
-}) ) {
- addHandle( booleans, function( elem, name, isXML ) {
- var val;
- if ( !isXML ) {
- return elem[ name ] === true ? name.toLowerCase() :
- (val = elem.getAttributeNode( name )) && val.specified ?
- val.value :
- null;
- }
- });
-}
-
-return Sizzle;
-
-})( window );
-
-
-
-jQuery.find = Sizzle;
-jQuery.expr = Sizzle.selectors;
-jQuery.expr[ ":" ] = jQuery.expr.pseudos;
-jQuery.uniqueSort = jQuery.unique = Sizzle.uniqueSort;
-jQuery.text = Sizzle.getText;
-jQuery.isXMLDoc = Sizzle.isXML;
-jQuery.contains = Sizzle.contains;
-
-
-
-var dir = function( elem, dir, until ) {
- var matched = [],
- truncate = until !== undefined;
-
- while ( ( elem = elem[ dir ] ) && elem.nodeType !== 9 ) {
- if ( elem.nodeType === 1 ) {
- if ( truncate && jQuery( elem ).is( until ) ) {
- break;
- }
- matched.push( elem );
- }
- }
- return matched;
-};
-
-
-var siblings = function( n, elem ) {
- var matched = [];
-
- for ( ; n; n = n.nextSibling ) {
- if ( n.nodeType === 1 && n !== elem ) {
- matched.push( n );
- }
- }
-
- return matched;
-};
-
-
-var rneedsContext = jQuery.expr.match.needsContext;
-
-var rsingleTag = ( /^<([\w-]+)\s*\/?>(?:<\/\1>|)$/ );
-
-
-
-var risSimple = /^.[^:#\[\.,]*$/;
-
-// Implement the identical functionality for filter and not
-function winnow( elements, qualifier, not ) {
- if ( jQuery.isFunction( qualifier ) ) {
- return jQuery.grep( elements, function( elem, i ) {
- /* jshint -W018 */
- return !!qualifier.call( elem, i, elem ) !== not;
- } );
-
- }
-
- if ( qualifier.nodeType ) {
- return jQuery.grep( elements, function( elem ) {
- return ( elem === qualifier ) !== not;
- } );
-
- }
-
- if ( typeof qualifier === "string" ) {
- if ( risSimple.test( qualifier ) ) {
- return jQuery.filter( qualifier, elements, not );
- }
-
- qualifier = jQuery.filter( qualifier, elements );
- }
-
- return jQuery.grep( elements, function( elem ) {
- return ( indexOf.call( qualifier, elem ) > -1 ) !== not;
- } );
-}
-
-jQuery.filter = function( expr, elems, not ) {
- var elem = elems[ 0 ];
-
- if ( not ) {
- expr = ":not(" + expr + ")";
- }
-
- return elems.length === 1 && elem.nodeType === 1 ?
- jQuery.find.matchesSelector( elem, expr ) ? [ elem ] : [] :
- jQuery.find.matches( expr, jQuery.grep( elems, function( elem ) {
- return elem.nodeType === 1;
- } ) );
-};
-
-jQuery.fn.extend( {
- find: function( selector ) {
- var i,
- len = this.length,
- ret = [],
- self = this;
-
- if ( typeof selector !== "string" ) {
- return this.pushStack( jQuery( selector ).filter( function() {
- var this$1 = this;
-
- for ( i = 0; i < len; i++ ) {
- if ( jQuery.contains( self[ i ], this$1 ) ) {
- return true;
- }
- }
- } ) );
- }
-
- for ( i = 0; i < len; i++ ) {
- jQuery.find( selector, self[ i ], ret );
- }
-
- // Needed because $( selector, context ) becomes $( context ).find( selector )
- ret = this.pushStack( len > 1 ? jQuery.unique( ret ) : ret );
- ret.selector = this.selector ? this.selector + " " + selector : selector;
- return ret;
- },
- filter: function( selector ) {
- return this.pushStack( winnow( this, selector || [], false ) );
- },
- not: function( selector ) {
- return this.pushStack( winnow( this, selector || [], true ) );
- },
- is: function( selector ) {
- return !!winnow(
- this,
-
- // If this is a positional/relative selector, check membership in the returned set
- // so $("p:first").is("p:last") won't return true for a doc with two "p".
- typeof selector === "string" && rneedsContext.test( selector ) ?
- jQuery( selector ) :
- selector || [],
- false
- ).length;
- }
-} );
-
-
-// Initialize a jQuery object
-
-
-// A central reference to the root jQuery(document)
-var rootjQuery,
-
- // A simple way to check for HTML strings
- // Prioritize #id over to avoid XSS via location.hash (#9521)
- // Strict HTML recognition (#11290: must start with <)
- rquickExpr = /^(?:\s*(<[\w\W]+>)[^>]*|#([\w-]*))$/,
-
- init = jQuery.fn.init = function( selector, context, root ) {
- var this$1 = this;
-
- var match, elem;
-
- // HANDLE: $(""), $(null), $(undefined), $(false)
- if ( !selector ) {
- return this;
- }
-
- // Method init() accepts an alternate rootjQuery
- // so migrate can support jQuery.sub (gh-2101)
- root = root || rootjQuery;
-
- // Handle HTML strings
- if ( typeof selector === "string" ) {
- if ( selector[ 0 ] === "<" &&
- selector[ selector.length - 1 ] === ">" &&
- selector.length >= 3 ) {
-
- // Assume that strings that start and end with <> are HTML and skip the regex check
- match = [ null, selector, null ];
-
- } else {
- match = rquickExpr.exec( selector );
- }
-
- // Match html or make sure no context is specified for #id
- if ( match && ( match[ 1 ] || !context ) ) {
-
- // HANDLE: $(html) -> $(array)
- if ( match[ 1 ] ) {
- context = context instanceof jQuery ? context[ 0 ] : context;
-
- // Option to run scripts is true for back-compat
- // Intentionally let the error be thrown if parseHTML is not present
- jQuery.merge( this, jQuery.parseHTML(
- match[ 1 ],
- context && context.nodeType ? context.ownerDocument || context : document,
- true
- ) );
-
- // HANDLE: $(html, props)
- if ( rsingleTag.test( match[ 1 ] ) && jQuery.isPlainObject( context ) ) {
- for ( match in context ) {
-
- // Properties of context are called as methods if possible
- if ( jQuery.isFunction( this$1[ match ] ) ) {
- this$1[ match ]( context[ match ] );
-
- // ...and otherwise set as attributes
- } else {
- this$1.attr( match, context[ match ] );
- }
- }
- }
-
- return this;
-
- // HANDLE: $(#id)
- } else {
- elem = document.getElementById( match[ 2 ] );
-
- // Support: Blackberry 4.6
- // gEBID returns nodes no longer in the document (#6963)
- if ( elem && elem.parentNode ) {
-
- // Inject the element directly into the jQuery object
- this.length = 1;
- this[ 0 ] = elem;
- }
-
- this.context = document;
- this.selector = selector;
- return this;
- }
-
- // HANDLE: $(expr, $(...))
- } else if ( !context || context.jquery ) {
- return ( context || root ).find( selector );
-
- // HANDLE: $(expr, context)
- // (which is just equivalent to: $(context).find(expr)
- } else {
- return this.constructor( context ).find( selector );
- }
-
- // HANDLE: $(DOMElement)
- } else if ( selector.nodeType ) {
- this.context = this[ 0 ] = selector;
- this.length = 1;
- return this;
-
- // HANDLE: $(function)
- // Shortcut for document ready
- } else if ( jQuery.isFunction( selector ) ) {
- return root.ready !== undefined ?
- root.ready( selector ) :
-
- // Execute immediately if ready is not present
- selector( jQuery );
- }
-
- if ( selector.selector !== undefined ) {
- this.selector = selector.selector;
- this.context = selector.context;
- }
-
- return jQuery.makeArray( selector, this );
- };
-
-// Give the init function the jQuery prototype for later instantiation
-init.prototype = jQuery.fn;
-
-// Initialize central reference
-rootjQuery = jQuery( document );
-
-
-var rparentsprev = /^(?:parents|prev(?:Until|All))/,
-
- // Methods guaranteed to produce a unique set when starting from a unique set
- guaranteedUnique = {
- children: true,
- contents: true,
- next: true,
- prev: true
- };
-
-jQuery.fn.extend( {
- has: function( target ) {
- var targets = jQuery( target, this ),
- l = targets.length;
-
- return this.filter( function() {
- var this$1 = this;
-
- var i = 0;
- for ( ; i < l; i++ ) {
- if ( jQuery.contains( this$1, targets[ i ] ) ) {
- return true;
- }
- }
- } );
- },
-
- closest: function( selectors, context ) {
- var cur,
- i = 0,
- l = this.length,
- matched = [],
- pos = rneedsContext.test( selectors ) || typeof selectors !== "string" ?
- jQuery( selectors, context || this.context ) :
- 0;
-
- for ( ; i < l; i++ ) {
- for ( cur = this[ i ]; cur && cur !== context; cur = cur.parentNode ) {
-
- // Always skip document fragments
- if ( cur.nodeType < 11 && ( pos ?
- pos.index( cur ) > -1 :
-
- // Don't pass non-elements to Sizzle
- cur.nodeType === 1 &&
- jQuery.find.matchesSelector( cur, selectors ) ) ) {
-
- matched.push( cur );
- break;
- }
- }
- }
-
- return this.pushStack( matched.length > 1 ? jQuery.uniqueSort( matched ) : matched );
- },
-
- // Determine the position of an element within the set
- index: function( elem ) {
-
- // No argument, return index in parent
- if ( !elem ) {
- return ( this[ 0 ] && this[ 0 ].parentNode ) ? this.first().prevAll().length : -1;
- }
-
- // Index in selector
- if ( typeof elem === "string" ) {
- return indexOf.call( jQuery( elem ), this[ 0 ] );
- }
-
- // Locate the position of the desired element
- return indexOf.call( this,
-
- // If it receives a jQuery object, the first element is used
- elem.jquery ? elem[ 0 ] : elem
- );
- },
-
- add: function( selector, context ) {
- return this.pushStack(
- jQuery.uniqueSort(
- jQuery.merge( this.get(), jQuery( selector, context ) )
- )
- );
- },
-
- addBack: function( selector ) {
- return this.add( selector == null ?
- this.prevObject : this.prevObject.filter( selector )
- );
- }
-} );
-
-function sibling( cur, dir ) {
- while ( ( cur = cur[ dir ] ) && cur.nodeType !== 1 ) {}
- return cur;
-}
-
-jQuery.each( {
- parent: function( elem ) {
- var parent = elem.parentNode;
- return parent && parent.nodeType !== 11 ? parent : null;
- },
- parents: function( elem ) {
- return dir( elem, "parentNode" );
- },
- parentsUntil: function( elem, i, until ) {
- return dir( elem, "parentNode", until );
- },
- next: function( elem ) {
- return sibling( elem, "nextSibling" );
- },
- prev: function( elem ) {
- return sibling( elem, "previousSibling" );
- },
- nextAll: function( elem ) {
- return dir( elem, "nextSibling" );
- },
- prevAll: function( elem ) {
- return dir( elem, "previousSibling" );
- },
- nextUntil: function( elem, i, until ) {
- return dir( elem, "nextSibling", until );
- },
- prevUntil: function( elem, i, until ) {
- return dir( elem, "previousSibling", until );
- },
- siblings: function( elem ) {
- return siblings( ( elem.parentNode || {} ).firstChild, elem );
- },
- children: function( elem ) {
- return siblings( elem.firstChild );
- },
- contents: function( elem ) {
- return elem.contentDocument || jQuery.merge( [], elem.childNodes );
- }
-}, function( name, fn ) {
- jQuery.fn[ name ] = function( until, selector ) {
- var matched = jQuery.map( this, fn, until );
-
- if ( name.slice( -5 ) !== "Until" ) {
- selector = until;
- }
-
- if ( selector && typeof selector === "string" ) {
- matched = jQuery.filter( selector, matched );
- }
-
- if ( this.length > 1 ) {
-
- // Remove duplicates
- if ( !guaranteedUnique[ name ] ) {
- jQuery.uniqueSort( matched );
- }
-
- // Reverse order for parents* and prev-derivatives
- if ( rparentsprev.test( name ) ) {
- matched.reverse();
- }
- }
-
- return this.pushStack( matched );
- };
-} );
-var rnotwhite = ( /\S+/g );
-
-
-
-// Convert String-formatted options into Object-formatted ones
-function createOptions( options ) {
- var object = {};
- jQuery.each( options.match( rnotwhite ) || [], function( _, flag ) {
- object[ flag ] = true;
- } );
- return object;
-}
-
-/*
- * Create a callback list using the following parameters:
- *
- * options: an optional list of space-separated options that will change how
- * the callback list behaves or a more traditional option object
- *
- * By default a callback list will act like an event callback list and can be
- * "fired" multiple times.
- *
- * Possible options:
- *
- * once: will ensure the callback list can only be fired once (like a Deferred)
- *
- * memory: will keep track of previous values and will call any callback added
- * after the list has been fired right away with the latest "memorized"
- * values (like a Deferred)
- *
- * unique: will ensure a callback can only be added once (no duplicate in the list)
- *
- * stopOnFalse: interrupt callings when a callback returns false
- *
- */
-jQuery.Callbacks = function( options ) {
-
- // Convert options from String-formatted to Object-formatted if needed
- // (we check in cache first)
- options = typeof options === "string" ?
- createOptions( options ) :
- jQuery.extend( {}, options );
-
- var // Flag to know if list is currently firing
- firing,
-
- // Last fire value for non-forgettable lists
- memory,
-
- // Flag to know if list was already fired
- fired,
-
- // Flag to prevent firing
- locked,
-
- // Actual callback list
- list = [],
-
- // Queue of execution data for repeatable lists
- queue = [],
-
- // Index of currently firing callback (modified by add/remove as needed)
- firingIndex = -1,
-
- // Fire callbacks
- fire = function() {
-
- // Enforce single-firing
- locked = options.once;
-
- // Execute callbacks for all pending executions,
- // respecting firingIndex overrides and runtime changes
- fired = firing = true;
- for ( ; queue.length; firingIndex = -1 ) {
- memory = queue.shift();
- while ( ++firingIndex < list.length ) {
-
- // Run callback and check for early termination
- if ( list[ firingIndex ].apply( memory[ 0 ], memory[ 1 ] ) === false &&
- options.stopOnFalse ) {
-
- // Jump to end and forget the data so .add doesn't re-fire
- firingIndex = list.length;
- memory = false;
- }
- }
- }
-
- // Forget the data if we're done with it
- if ( !options.memory ) {
- memory = false;
- }
-
- firing = false;
-
- // Clean up if we're done firing for good
- if ( locked ) {
-
- // Keep an empty list if we have data for future add calls
- if ( memory ) {
- list = [];
-
- // Otherwise, this object is spent
- } else {
- list = "";
- }
- }
- },
-
- // Actual Callbacks object
- self = {
-
- // Add a callback or a collection of callbacks to the list
- add: function() {
- if ( list ) {
-
- // If we have memory from a past run, we should fire after adding
- if ( memory && !firing ) {
- firingIndex = list.length - 1;
- queue.push( memory );
- }
-
- ( function add( args ) {
- jQuery.each( args, function( _, arg ) {
- if ( jQuery.isFunction( arg ) ) {
- if ( !options.unique || !self.has( arg ) ) {
- list.push( arg );
- }
- } else if ( arg && arg.length && jQuery.type( arg ) !== "string" ) {
-
- // Inspect recursively
- add( arg );
- }
- } );
- } )( arguments );
-
- if ( memory && !firing ) {
- fire();
- }
- }
- return this;
- },
-
- // Remove a callback from the list
- remove: function() {
- jQuery.each( arguments, function( _, arg ) {
- var index;
- while ( ( index = jQuery.inArray( arg, list, index ) ) > -1 ) {
- list.splice( index, 1 );
-
- // Handle firing indexes
- if ( index <= firingIndex ) {
- firingIndex--;
- }
- }
- } );
- return this;
- },
-
- // Check if a given callback is in the list.
- // If no argument is given, return whether or not list has callbacks attached.
- has: function( fn ) {
- return fn ?
- jQuery.inArray( fn, list ) > -1 :
- list.length > 0;
- },
-
- // Remove all callbacks from the list
- empty: function() {
- if ( list ) {
- list = [];
- }
- return this;
- },
-
- // Disable .fire and .add
- // Abort any current/pending executions
- // Clear all callbacks and values
- disable: function() {
- locked = queue = [];
- list = memory = "";
- return this;
- },
- disabled: function() {
- return !list;
- },
-
- // Disable .fire
- // Also disable .add unless we have memory (since it would have no effect)
- // Abort any pending executions
- lock: function() {
- locked = queue = [];
- if ( !memory ) {
- list = memory = "";
- }
- return this;
- },
- locked: function() {
- return !!locked;
- },
-
- // Call all callbacks with the given context and arguments
- fireWith: function( context, args ) {
- if ( !locked ) {
- args = args || [];
- args = [ context, args.slice ? args.slice() : args ];
- queue.push( args );
- if ( !firing ) {
- fire();
- }
- }
- return this;
- },
-
- // Call all the callbacks with the given arguments
- fire: function() {
- self.fireWith( this, arguments );
- return this;
- },
-
- // To know if the callbacks have already been called at least once
- fired: function() {
- return !!fired;
- }
- };
-
- return self;
-};
-
-
-jQuery.extend( {
-
- Deferred: function( func ) {
- var tuples = [
-
- // action, add listener, listener list, final state
- [ "resolve", "done", jQuery.Callbacks( "once memory" ), "resolved" ],
- [ "reject", "fail", jQuery.Callbacks( "once memory" ), "rejected" ],
- [ "notify", "progress", jQuery.Callbacks( "memory" ) ]
- ],
- state = "pending",
- promise = {
- state: function() {
- return state;
- },
- always: function() {
- deferred.done( arguments ).fail( arguments );
- return this;
- },
- then: function( /* fnDone, fnFail, fnProgress */ ) {
- var fns = arguments;
- return jQuery.Deferred( function( newDefer ) {
- jQuery.each( tuples, function( i, tuple ) {
- var fn = jQuery.isFunction( fns[ i ] ) && fns[ i ];
-
- // deferred[ done | fail | progress ] for forwarding actions to newDefer
- deferred[ tuple[ 1 ] ]( function() {
- var returned = fn && fn.apply( this, arguments );
- if ( returned && jQuery.isFunction( returned.promise ) ) {
- returned.promise()
- .progress( newDefer.notify )
- .done( newDefer.resolve )
- .fail( newDefer.reject );
- } else {
- newDefer[ tuple[ 0 ] + "With" ](
- this === promise ? newDefer.promise() : this,
- fn ? [ returned ] : arguments
- );
- }
- } );
- } );
- fns = null;
- } ).promise();
- },
-
- // Get a promise for this deferred
- // If obj is provided, the promise aspect is added to the object
- promise: function( obj ) {
- return obj != null ? jQuery.extend( obj, promise ) : promise;
- }
- },
- deferred = {};
-
- // Keep pipe for back-compat
- promise.pipe = promise.then;
-
- // Add list-specific methods
- jQuery.each( tuples, function( i, tuple ) {
- var list = tuple[ 2 ],
- stateString = tuple[ 3 ];
-
- // promise[ done | fail | progress ] = list.add
- promise[ tuple[ 1 ] ] = list.add;
-
- // Handle state
- if ( stateString ) {
- list.add( function() {
-
- // state = [ resolved | rejected ]
- state = stateString;
-
- // [ reject_list | resolve_list ].disable; progress_list.lock
- }, tuples[ i ^ 1 ][ 2 ].disable, tuples[ 2 ][ 2 ].lock );
- }
-
- // deferred[ resolve | reject | notify ]
- deferred[ tuple[ 0 ] ] = function() {
- deferred[ tuple[ 0 ] + "With" ]( this === deferred ? promise : this, arguments );
- return this;
- };
- deferred[ tuple[ 0 ] + "With" ] = list.fireWith;
- } );
-
- // Make the deferred a promise
- promise.promise( deferred );
-
- // Call given func if any
- if ( func ) {
- func.call( deferred, deferred );
- }
-
- // All done!
- return deferred;
- },
-
- // Deferred helper
- when: function( subordinate /* , ..., subordinateN */ ) {
- var i = 0,
- resolveValues = slice.call( arguments ),
- length = resolveValues.length,
-
- // the count of uncompleted subordinates
- remaining = length !== 1 ||
- ( subordinate && jQuery.isFunction( subordinate.promise ) ) ? length : 0,
-
- // the master Deferred.
- // If resolveValues consist of only a single Deferred, just use that.
- deferred = remaining === 1 ? subordinate : jQuery.Deferred(),
-
- // Update function for both resolve and progress values
- updateFunc = function( i, contexts, values ) {
- return function( value ) {
- contexts[ i ] = this;
- values[ i ] = arguments.length > 1 ? slice.call( arguments ) : value;
- if ( values === progressValues ) {
- deferred.notifyWith( contexts, values );
- } else if ( !( --remaining ) ) {
- deferred.resolveWith( contexts, values );
- }
- };
- },
-
- progressValues, progressContexts, resolveContexts;
-
- // Add listeners to Deferred subordinates; treat others as resolved
- if ( length > 1 ) {
- progressValues = new Array( length );
- progressContexts = new Array( length );
- resolveContexts = new Array( length );
- for ( ; i < length; i++ ) {
- if ( resolveValues[ i ] && jQuery.isFunction( resolveValues[ i ].promise ) ) {
- resolveValues[ i ].promise()
- .progress( updateFunc( i, progressContexts, progressValues ) )
- .done( updateFunc( i, resolveContexts, resolveValues ) )
- .fail( deferred.reject );
- } else {
- --remaining;
- }
- }
- }
-
- // If we're not waiting on anything, resolve the master
- if ( !remaining ) {
- deferred.resolveWith( resolveContexts, resolveValues );
- }
-
- return deferred.promise();
- }
-} );
-
-
-// The deferred used on DOM ready
-var readyList;
-
-jQuery.fn.ready = function( fn ) {
-
- // Add the callback
- jQuery.ready.promise().done( fn );
-
- return this;
-};
-
-jQuery.extend( {
-
- // Is the DOM ready to be used? Set to true once it occurs.
- isReady: false,
-
- // A counter to track how many items to wait for before
- // the ready event fires. See #6781
- readyWait: 1,
-
- // Hold (or release) the ready event
- holdReady: function( hold ) {
- if ( hold ) {
- jQuery.readyWait++;
- } else {
- jQuery.ready( true );
- }
- },
-
- // Handle when the DOM is ready
- ready: function( wait ) {
-
- // Abort if there are pending holds or we're already ready
- if ( wait === true ? --jQuery.readyWait : jQuery.isReady ) {
- return;
- }
-
- // Remember that the DOM is ready
- jQuery.isReady = true;
-
- // If a normal DOM Ready event fired, decrement, and wait if need be
- if ( wait !== true && --jQuery.readyWait > 0 ) {
- return;
- }
-
- // If there are functions bound, to execute
- readyList.resolveWith( document, [ jQuery ] );
-
- // Trigger any bound ready events
- if ( jQuery.fn.triggerHandler ) {
- jQuery( document ).triggerHandler( "ready" );
- jQuery( document ).off( "ready" );
- }
- }
-} );
-
-/**
- * The ready event handler and self cleanup method
- */
-function completed() {
- document.removeEventListener( "DOMContentLoaded", completed );
- window.removeEventListener( "load", completed );
- jQuery.ready();
-}
-
-jQuery.ready.promise = function( obj ) {
- if ( !readyList ) {
-
- readyList = jQuery.Deferred();
-
- // Catch cases where $(document).ready() is called
- // after the browser event has already occurred.
- // Support: IE9-10 only
- // Older IE sometimes signals "interactive" too soon
- if ( document.readyState === "complete" ||
- ( document.readyState !== "loading" && !document.documentElement.doScroll ) ) {
-
- // Handle it asynchronously to allow scripts the opportunity to delay ready
- window.setTimeout( jQuery.ready );
-
- } else {
-
- // Use the handy event callback
- document.addEventListener( "DOMContentLoaded", completed );
-
- // A fallback to window.onload, that will always work
- window.addEventListener( "load", completed );
- }
- }
- return readyList.promise( obj );
-};
-
-// Kick off the DOM ready check even if the user does not
-jQuery.ready.promise();
-
-
-
-
-// Multifunctional method to get and set values of a collection
-// The value/s can optionally be executed if it's a function
-var access = function( elems, fn, key, value, chainable, emptyGet, raw ) {
- var i = 0,
- len = elems.length,
- bulk = key == null;
-
- // Sets many values
- if ( jQuery.type( key ) === "object" ) {
- chainable = true;
- for ( i in key ) {
- access( elems, fn, i, key[ i ], true, emptyGet, raw );
- }
-
- // Sets one value
- } else if ( value !== undefined ) {
- chainable = true;
-
- if ( !jQuery.isFunction( value ) ) {
- raw = true;
- }
-
- if ( bulk ) {
-
- // Bulk operations run against the entire set
- if ( raw ) {
- fn.call( elems, value );
- fn = null;
-
- // ...except when executing function values
- } else {
- bulk = fn;
- fn = function( elem, key, value ) {
- return bulk.call( jQuery( elem ), value );
- };
- }
- }
-
- if ( fn ) {
- for ( ; i < len; i++ ) {
- fn(
- elems[ i ], key, raw ?
- value :
- value.call( elems[ i ], i, fn( elems[ i ], key ) )
- );
- }
- }
- }
-
- return chainable ?
- elems :
-
- // Gets
- bulk ?
- fn.call( elems ) :
- len ? fn( elems[ 0 ], key ) : emptyGet;
-};
-var acceptData = function( owner ) {
-
- // Accepts only:
- // - Node
- // - Node.ELEMENT_NODE
- // - Node.DOCUMENT_NODE
- // - Object
- // - Any
- /* jshint -W018 */
- return owner.nodeType === 1 || owner.nodeType === 9 || !( +owner.nodeType );
-};
-
-
-
-
-function Data() {
- this.expando = jQuery.expando + Data.uid++;
-}
-
-Data.uid = 1;
-
-Data.prototype = {
-
- register: function( owner, initial ) {
- var value = initial || {};
-
- // If it is a node unlikely to be stringify-ed or looped over
- // use plain assignment
- if ( owner.nodeType ) {
- owner[ this.expando ] = value;
-
- // Otherwise secure it in a non-enumerable, non-writable property
- // configurability must be true to allow the property to be
- // deleted with the delete operator
- } else {
- Object.defineProperty( owner, this.expando, {
- value: value,
- writable: true,
- configurable: true
- } );
- }
- return owner[ this.expando ];
- },
- cache: function( owner ) {
-
- // We can accept data for non-element nodes in modern browsers,
- // but we should not, see #8335.
- // Always return an empty object.
- if ( !acceptData( owner ) ) {
- return {};
- }
-
- // Check if the owner object already has a cache
- var value = owner[ this.expando ];
-
- // If not, create one
- if ( !value ) {
- value = {};
-
- // We can accept data for non-element nodes in modern browsers,
- // but we should not, see #8335.
- // Always return an empty object.
- if ( acceptData( owner ) ) {
-
- // If it is a node unlikely to be stringify-ed or looped over
- // use plain assignment
- if ( owner.nodeType ) {
- owner[ this.expando ] = value;
-
- // Otherwise secure it in a non-enumerable property
- // configurable must be true to allow the property to be
- // deleted when data is removed
- } else {
- Object.defineProperty( owner, this.expando, {
- value: value,
- configurable: true
- } );
- }
- }
- }
-
- return value;
- },
- set: function( owner, data, value ) {
- var prop,
- cache = this.cache( owner );
-
- // Handle: [ owner, key, value ] args
- if ( typeof data === "string" ) {
- cache[ data ] = value;
-
- // Handle: [ owner, { properties } ] args
- } else {
-
- // Copy the properties one-by-one to the cache object
- for ( prop in data ) {
- cache[ prop ] = data[ prop ];
- }
- }
- return cache;
- },
- get: function( owner, key ) {
- return key === undefined ?
- this.cache( owner ) :
- owner[ this.expando ] && owner[ this.expando ][ key ];
- },
- access: function( owner, key, value ) {
- var stored;
-
- // In cases where either:
- //
- // 1. No key was specified
- // 2. A string key was specified, but no value provided
- //
- // Take the "read" path and allow the get method to determine
- // which value to return, respectively either:
- //
- // 1. The entire cache object
- // 2. The data stored at the key
- //
- if ( key === undefined ||
- ( ( key && typeof key === "string" ) && value === undefined ) ) {
-
- stored = this.get( owner, key );
-
- return stored !== undefined ?
- stored : this.get( owner, jQuery.camelCase( key ) );
- }
-
- // When the key is not a string, or both a key and value
- // are specified, set or extend (existing objects) with either:
- //
- // 1. An object of properties
- // 2. A key and value
- //
- this.set( owner, key, value );
-
- // Since the "set" path can have two possible entry points
- // return the expected data based on which path was taken[*]
- return value !== undefined ? value : key;
- },
- remove: function( owner, key ) {
- var i, name, camel,
- cache = owner[ this.expando ];
-
- if ( cache === undefined ) {
- return;
- }
-
- if ( key === undefined ) {
- this.register( owner );
-
- } else {
-
- // Support array or space separated string of keys
- if ( jQuery.isArray( key ) ) {
-
- // If "name" is an array of keys...
- // When data is initially created, via ("key", "val") signature,
- // keys will be converted to camelCase.
- // Since there is no way to tell _how_ a key was added, remove
- // both plain key and camelCase key. #12786
- // This will only penalize the array argument path.
- name = key.concat( key.map( jQuery.camelCase ) );
- } else {
- camel = jQuery.camelCase( key );
-
- // Try the string as a key before any manipulation
- if ( key in cache ) {
- name = [ key, camel ];
- } else {
-
- // If a key with the spaces exists, use it.
- // Otherwise, create an array by matching non-whitespace
- name = camel;
- name = name in cache ?
- [ name ] : ( name.match( rnotwhite ) || [] );
- }
- }
-
- i = name.length;
-
- while ( i-- ) {
- delete cache[ name[ i ] ];
- }
- }
-
- // Remove the expando if there's no more data
- if ( key === undefined || jQuery.isEmptyObject( cache ) ) {
-
- // Support: Chrome <= 35-45+
- // Webkit & Blink performance suffers when deleting properties
- // from DOM nodes, so set to undefined instead
- // https://code.google.com/p/chromium/issues/detail?id=378607
- if ( owner.nodeType ) {
- owner[ this.expando ] = undefined;
- } else {
- delete owner[ this.expando ];
- }
- }
- },
- hasData: function( owner ) {
- var cache = owner[ this.expando ];
- return cache !== undefined && !jQuery.isEmptyObject( cache );
- }
-};
-var dataPriv = new Data();
-
-var dataUser = new Data();
-
-
-
-// Implementation Summary
-//
-// 1. Enforce API surface and semantic compatibility with 1.9.x branch
-// 2. Improve the module's maintainability by reducing the storage
-// paths to a single mechanism.
-// 3. Use the same single mechanism to support "private" and "user" data.
-// 4. _Never_ expose "private" data to user code (TODO: Drop _data, _removeData)
-// 5. Avoid exposing implementation details on user objects (eg. expando properties)
-// 6. Provide a clear path for implementation upgrade to WeakMap in 2014
-
-var rbrace = /^(?:\{[\w\W]*\}|\[[\w\W]*\])$/,
- rmultiDash = /[A-Z]/g;
-
-function dataAttr( elem, key, data ) {
- var name;
-
- // If nothing was found internally, try to fetch any
- // data from the HTML5 data-* attribute
- if ( data === undefined && elem.nodeType === 1 ) {
- name = "data-" + key.replace( rmultiDash, "-$&" ).toLowerCase();
- data = elem.getAttribute( name );
-
- if ( typeof data === "string" ) {
- try {
- data = data === "true" ? true :
- data === "false" ? false :
- data === "null" ? null :
-
- // Only convert to a number if it doesn't change the string
- +data + "" === data ? +data :
- rbrace.test( data ) ? jQuery.parseJSON( data ) :
- data;
- } catch ( e ) {}
-
- // Make sure we set the data so it isn't changed later
- dataUser.set( elem, key, data );
- } else {
- data = undefined;
- }
- }
- return data;
-}
-
-jQuery.extend( {
- hasData: function( elem ) {
- return dataUser.hasData( elem ) || dataPriv.hasData( elem );
- },
-
- data: function( elem, name, data ) {
- return dataUser.access( elem, name, data );
- },
-
- removeData: function( elem, name ) {
- dataUser.remove( elem, name );
- },
-
- // TODO: Now that all calls to _data and _removeData have been replaced
- // with direct calls to dataPriv methods, these can be deprecated.
- _data: function( elem, name, data ) {
- return dataPriv.access( elem, name, data );
- },
-
- _removeData: function( elem, name ) {
- dataPriv.remove( elem, name );
- }
-} );
-
-jQuery.fn.extend( {
- data: function( key, value ) {
- var i, name, data,
- elem = this[ 0 ],
- attrs = elem && elem.attributes;
-
- // Gets all values
- if ( key === undefined ) {
- if ( this.length ) {
- data = dataUser.get( elem );
-
- if ( elem.nodeType === 1 && !dataPriv.get( elem, "hasDataAttrs" ) ) {
- i = attrs.length;
- while ( i-- ) {
-
- // Support: IE11+
- // The attrs elements can be null (#14894)
- if ( attrs[ i ] ) {
- name = attrs[ i ].name;
- if ( name.indexOf( "data-" ) === 0 ) {
- name = jQuery.camelCase( name.slice( 5 ) );
- dataAttr( elem, name, data[ name ] );
- }
- }
- }
- dataPriv.set( elem, "hasDataAttrs", true );
- }
- }
-
- return data;
- }
-
- // Sets multiple values
- if ( typeof key === "object" ) {
- return this.each( function() {
- dataUser.set( this, key );
- } );
- }
-
- return access( this, function( value ) {
- var data, camelKey;
-
- // The calling jQuery object (element matches) is not empty
- // (and therefore has an element appears at this[ 0 ]) and the
- // `value` parameter was not undefined. An empty jQuery object
- // will result in `undefined` for elem = this[ 0 ] which will
- // throw an exception if an attempt to read a data cache is made.
- if ( elem && value === undefined ) {
-
- // Attempt to get data from the cache
- // with the key as-is
- data = dataUser.get( elem, key ) ||
-
- // Try to find dashed key if it exists (gh-2779)
- // This is for 2.2.x only
- dataUser.get( elem, key.replace( rmultiDash, "-$&" ).toLowerCase() );
-
- if ( data !== undefined ) {
- return data;
- }
-
- camelKey = jQuery.camelCase( key );
-
- // Attempt to get data from the cache
- // with the key camelized
- data = dataUser.get( elem, camelKey );
- if ( data !== undefined ) {
- return data;
- }
-
- // Attempt to "discover" the data in
- // HTML5 custom data-* attrs
- data = dataAttr( elem, camelKey, undefined );
- if ( data !== undefined ) {
- return data;
- }
-
- // We tried really hard, but the data doesn't exist.
- return;
- }
-
- // Set the data...
- camelKey = jQuery.camelCase( key );
- this.each( function() {
-
- // First, attempt to store a copy or reference of any
- // data that might've been store with a camelCased key.
- var data = dataUser.get( this, camelKey );
-
- // For HTML5 data-* attribute interop, we have to
- // store property names with dashes in a camelCase form.
- // This might not apply to all properties...*
- dataUser.set( this, camelKey, value );
-
- // *... In the case of properties that might _actually_
- // have dashes, we need to also store a copy of that
- // unchanged property.
- if ( key.indexOf( "-" ) > -1 && data !== undefined ) {
- dataUser.set( this, key, value );
- }
- } );
- }, null, value, arguments.length > 1, null, true );
- },
-
- removeData: function( key ) {
- return this.each( function() {
- dataUser.remove( this, key );
- } );
- }
-} );
-
-
-jQuery.extend( {
- queue: function( elem, type, data ) {
- var queue;
-
- if ( elem ) {
- type = ( type || "fx" ) + "queue";
- queue = dataPriv.get( elem, type );
-
- // Speed up dequeue by getting out quickly if this is just a lookup
- if ( data ) {
- if ( !queue || jQuery.isArray( data ) ) {
- queue = dataPriv.access( elem, type, jQuery.makeArray( data ) );
- } else {
- queue.push( data );
- }
- }
- return queue || [];
- }
- },
-
- dequeue: function( elem, type ) {
- type = type || "fx";
-
- var queue = jQuery.queue( elem, type ),
- startLength = queue.length,
- fn = queue.shift(),
- hooks = jQuery._queueHooks( elem, type ),
- next = function() {
- jQuery.dequeue( elem, type );
- };
-
- // If the fx queue is dequeued, always remove the progress sentinel
- if ( fn === "inprogress" ) {
- fn = queue.shift();
- startLength--;
- }
-
- if ( fn ) {
-
- // Add a progress sentinel to prevent the fx queue from being
- // automatically dequeued
- if ( type === "fx" ) {
- queue.unshift( "inprogress" );
- }
-
- // Clear up the last queue stop function
- delete hooks.stop;
- fn.call( elem, next, hooks );
- }
-
- if ( !startLength && hooks ) {
- hooks.empty.fire();
- }
- },
-
- // Not public - generate a queueHooks object, or return the current one
- _queueHooks: function( elem, type ) {
- var key = type + "queueHooks";
- return dataPriv.get( elem, key ) || dataPriv.access( elem, key, {
- empty: jQuery.Callbacks( "once memory" ).add( function() {
- dataPriv.remove( elem, [ type + "queue", key ] );
- } )
- } );
- }
-} );
-
-jQuery.fn.extend( {
- queue: function( type, data ) {
- var setter = 2;
-
- if ( typeof type !== "string" ) {
- data = type;
- type = "fx";
- setter--;
- }
-
- if ( arguments.length < setter ) {
- return jQuery.queue( this[ 0 ], type );
- }
-
- return data === undefined ?
- this :
- this.each( function() {
- var queue = jQuery.queue( this, type, data );
-
- // Ensure a hooks for this queue
- jQuery._queueHooks( this, type );
-
- if ( type === "fx" && queue[ 0 ] !== "inprogress" ) {
- jQuery.dequeue( this, type );
- }
- } );
- },
- dequeue: function( type ) {
- return this.each( function() {
- jQuery.dequeue( this, type );
- } );
- },
- clearQueue: function( type ) {
- return this.queue( type || "fx", [] );
- },
-
- // Get a promise resolved when queues of a certain type
- // are emptied (fx is the type by default)
- promise: function( type, obj ) {
- var tmp,
- count = 1,
- defer = jQuery.Deferred(),
- elements = this,
- i = this.length,
- resolve = function() {
- if ( !( --count ) ) {
- defer.resolveWith( elements, [ elements ] );
- }
- };
-
- if ( typeof type !== "string" ) {
- obj = type;
- type = undefined;
- }
- type = type || "fx";
-
- while ( i-- ) {
- tmp = dataPriv.get( elements[ i ], type + "queueHooks" );
- if ( tmp && tmp.empty ) {
- count++;
- tmp.empty.add( resolve );
- }
- }
- resolve();
- return defer.promise( obj );
- }
-} );
-var pnum = ( /[+-]?(?:\d*\.|)\d+(?:[eE][+-]?\d+|)/ ).source;
-
-var rcssNum = new RegExp( "^(?:([+-])=|)(" + pnum + ")([a-z%]*)$", "i" );
-
-
-var cssExpand = [ "Top", "Right", "Bottom", "Left" ];
-
-var isHidden = function( elem, el ) {
-
- // isHidden might be called from jQuery#filter function;
- // in that case, element will be second argument
- elem = el || elem;
- return jQuery.css( elem, "display" ) === "none" ||
- !jQuery.contains( elem.ownerDocument, elem );
- };
-
-
-
-function adjustCSS( elem, prop, valueParts, tween ) {
- var adjusted,
- scale = 1,
- maxIterations = 20,
- currentValue = tween ?
- function() { return tween.cur(); } :
- function() { return jQuery.css( elem, prop, "" ); },
- initial = currentValue(),
- unit = valueParts && valueParts[ 3 ] || ( jQuery.cssNumber[ prop ] ? "" : "px" ),
-
- // Starting value computation is required for potential unit mismatches
- initialInUnit = ( jQuery.cssNumber[ prop ] || unit !== "px" && +initial ) &&
- rcssNum.exec( jQuery.css( elem, prop ) );
-
- if ( initialInUnit && initialInUnit[ 3 ] !== unit ) {
-
- // Trust units reported by jQuery.css
- unit = unit || initialInUnit[ 3 ];
-
- // Make sure we update the tween properties later on
- valueParts = valueParts || [];
-
- // Iteratively approximate from a nonzero starting point
- initialInUnit = +initial || 1;
-
- do {
-
- // If previous iteration zeroed out, double until we get *something*.
- // Use string for doubling so we don't accidentally see scale as unchanged below
- scale = scale || ".5";
-
- // Adjust and apply
- initialInUnit = initialInUnit / scale;
- jQuery.style( elem, prop, initialInUnit + unit );
-
- // Update scale, tolerating zero or NaN from tween.cur()
- // Break the loop if scale is unchanged or perfect, or if we've just had enough.
- } while (
- scale !== ( scale = currentValue() / initial ) && scale !== 1 && --maxIterations
- );
- }
-
- if ( valueParts ) {
- initialInUnit = +initialInUnit || +initial || 0;
-
- // Apply relative offset (+=/-=) if specified
- adjusted = valueParts[ 1 ] ?
- initialInUnit + ( valueParts[ 1 ] + 1 ) * valueParts[ 2 ] :
- +valueParts[ 2 ];
- if ( tween ) {
- tween.unit = unit;
- tween.start = initialInUnit;
- tween.end = adjusted;
- }
- }
- return adjusted;
-}
-var rcheckableType = ( /^(?:checkbox|radio)$/i );
-
-var rtagName = ( /<([\w:-]+)/ );
-
-var rscriptType = ( /^$|\/(?:java|ecma)script/i );
-
-
-
-// We have to close these tags to support XHTML (#13200)
-var wrapMap = {
-
- // Support: IE9
- option: [ 1, "" ],
-
- // XHTML parsers do not magically insert elements in the
- // same way that tag soup parsers do. So we cannot shorten
- // this by omitting or other required elements.
- thead: [ 1, "" ],
- col: [ 2, "" ],
- tr: [ 2, "" ],
- td: [ 3, "" ],
-
- _default: [ 0, "", "" ]
-};
-
-// Support: IE9
-wrapMap.optgroup = wrapMap.option;
-
-wrapMap.tbody = wrapMap.tfoot = wrapMap.colgroup = wrapMap.caption = wrapMap.thead;
-wrapMap.th = wrapMap.td;
-
-
-function getAll( context, tag ) {
-
- // Support: IE9-11+
- // Use typeof to avoid zero-argument method invocation on host objects (#15151)
- var ret = typeof context.getElementsByTagName !== "undefined" ?
- context.getElementsByTagName( tag || "*" ) :
- typeof context.querySelectorAll !== "undefined" ?
- context.querySelectorAll( tag || "*" ) :
- [];
-
- return tag === undefined || tag && jQuery.nodeName( context, tag ) ?
- jQuery.merge( [ context ], ret ) :
- ret;
-}
-
-
-// Mark scripts as having already been evaluated
-function setGlobalEval( elems, refElements ) {
- var i = 0,
- l = elems.length;
-
- for ( ; i < l; i++ ) {
- dataPriv.set(
- elems[ i ],
- "globalEval",
- !refElements || dataPriv.get( refElements[ i ], "globalEval" )
- );
- }
-}
-
-
-var rhtml = /<|?\w+;/;
-
-function buildFragment( elems, context, scripts, selection, ignored ) {
- var elem, tmp, tag, wrap, contains, j,
- fragment = context.createDocumentFragment(),
- nodes = [],
- i = 0,
- l = elems.length;
-
- for ( ; i < l; i++ ) {
- elem = elems[ i ];
-
- if ( elem || elem === 0 ) {
-
- // Add nodes directly
- if ( jQuery.type( elem ) === "object" ) {
-
- // Support: Android<4.1, PhantomJS<2
- // push.apply(_, arraylike) throws on ancient WebKit
- jQuery.merge( nodes, elem.nodeType ? [ elem ] : elem );
-
- // Convert non-html into a text node
- } else if ( !rhtml.test( elem ) ) {
- nodes.push( context.createTextNode( elem ) );
-
- // Convert html into DOM nodes
- } else {
- tmp = tmp || fragment.appendChild( context.createElement( "div" ) );
-
- // Deserialize a standard representation
- tag = ( rtagName.exec( elem ) || [ "", "" ] )[ 1 ].toLowerCase();
- wrap = wrapMap[ tag ] || wrapMap._default;
- tmp.innerHTML = wrap[ 1 ] + jQuery.htmlPrefilter( elem ) + wrap[ 2 ];
-
- // Descend through wrappers to the right content
- j = wrap[ 0 ];
- while ( j-- ) {
- tmp = tmp.lastChild;
- }
-
- // Support: Android<4.1, PhantomJS<2
- // push.apply(_, arraylike) throws on ancient WebKit
- jQuery.merge( nodes, tmp.childNodes );
-
- // Remember the top-level container
- tmp = fragment.firstChild;
-
- // Ensure the created nodes are orphaned (#12392)
- tmp.textContent = "";
- }
- }
- }
-
- // Remove wrapper from fragment
- fragment.textContent = "";
-
- i = 0;
- while ( ( elem = nodes[ i++ ] ) ) {
-
- // Skip elements already in the context collection (trac-4087)
- if ( selection && jQuery.inArray( elem, selection ) > -1 ) {
- if ( ignored ) {
- ignored.push( elem );
- }
- continue;
- }
-
- contains = jQuery.contains( elem.ownerDocument, elem );
-
- // Append to fragment
- tmp = getAll( fragment.appendChild( elem ), "script" );
-
- // Preserve script evaluation history
- if ( contains ) {
- setGlobalEval( tmp );
- }
-
- // Capture executables
- if ( scripts ) {
- j = 0;
- while ( ( elem = tmp[ j++ ] ) ) {
- if ( rscriptType.test( elem.type || "" ) ) {
- scripts.push( elem );
- }
- }
- }
- }
-
- return fragment;
-}
-
-
-( function() {
- var fragment = document.createDocumentFragment(),
- div = fragment.appendChild( document.createElement( "div" ) ),
- input = document.createElement( "input" );
-
- // Support: Android 4.0-4.3, Safari<=5.1
- // Check state lost if the name is set (#11217)
- // Support: Windows Web Apps (WWA)
- // `name` and `type` must use .setAttribute for WWA (#14901)
- input.setAttribute( "type", "radio" );
- input.setAttribute( "checked", "checked" );
- input.setAttribute( "name", "t" );
-
- div.appendChild( input );
-
- // Support: Safari<=5.1, Android<4.2
- // Older WebKit doesn't clone checked state correctly in fragments
- support.checkClone = div.cloneNode( true ).cloneNode( true ).lastChild.checked;
-
- // Support: IE<=11+
- // Make sure textarea (and checkbox) defaultValue is properly cloned
- div.innerHTML = "";
- support.noCloneChecked = !!div.cloneNode( true ).lastChild.defaultValue;
-} )();
-
-
-var
- rkeyEvent = /^key/,
- rmouseEvent = /^(?:mouse|pointer|contextmenu|drag|drop)|click/,
- rtypenamespace = /^([^.]*)(?:\.(.+)|)/;
-
-function returnTrue() {
- return true;
-}
-
-function returnFalse() {
- return false;
-}
-
-// Support: IE9
-// See #13393 for more info
-function safeActiveElement() {
- try {
- return document.activeElement;
- } catch ( err ) { }
-}
-
-function on( elem, types, selector, data, fn, one ) {
- var origFn, type;
-
- // Types can be a map of types/handlers
- if ( typeof types === "object" ) {
-
- // ( types-Object, selector, data )
- if ( typeof selector !== "string" ) {
-
- // ( types-Object, data )
- data = data || selector;
- selector = undefined;
- }
- for ( type in types ) {
- on( elem, type, selector, data, types[ type ], one );
- }
- return elem;
- }
-
- if ( data == null && fn == null ) {
-
- // ( types, fn )
- fn = selector;
- data = selector = undefined;
- } else if ( fn == null ) {
- if ( typeof selector === "string" ) {
-
- // ( types, selector, fn )
- fn = data;
- data = undefined;
- } else {
-
- // ( types, data, fn )
- fn = data;
- data = selector;
- selector = undefined;
- }
- }
- if ( fn === false ) {
- fn = returnFalse;
- } else if ( !fn ) {
- return elem;
- }
-
- if ( one === 1 ) {
- origFn = fn;
- fn = function( event ) {
-
- // Can use an empty set, since event contains the info
- jQuery().off( event );
- return origFn.apply( this, arguments );
- };
-
- // Use same guid so caller can remove using origFn
- fn.guid = origFn.guid || ( origFn.guid = jQuery.guid++ );
- }
- return elem.each( function() {
- jQuery.event.add( this, types, fn, data, selector );
- } );
-}
-
-/*
- * Helper functions for managing events -- not part of the public interface.
- * Props to Dean Edwards' addEvent library for many of the ideas.
- */
-jQuery.event = {
-
- global: {},
-
- add: function( elem, types, handler, data, selector ) {
-
- var handleObjIn, eventHandle, tmp,
- events, t, handleObj,
- special, handlers, type, namespaces, origType,
- elemData = dataPriv.get( elem );
-
- // Don't attach events to noData or text/comment nodes (but allow plain objects)
- if ( !elemData ) {
- return;
- }
-
- // Caller can pass in an object of custom data in lieu of the handler
- if ( handler.handler ) {
- handleObjIn = handler;
- handler = handleObjIn.handler;
- selector = handleObjIn.selector;
- }
-
- // Make sure that the handler has a unique ID, used to find/remove it later
- if ( !handler.guid ) {
- handler.guid = jQuery.guid++;
- }
-
- // Init the element's event structure and main handler, if this is the first
- if ( !( events = elemData.events ) ) {
- events = elemData.events = {};
- }
- if ( !( eventHandle = elemData.handle ) ) {
- eventHandle = elemData.handle = function( e ) {
-
- // Discard the second event of a jQuery.event.trigger() and
- // when an event is called after a page has unloaded
- return typeof jQuery !== "undefined" && jQuery.event.triggered !== e.type ?
- jQuery.event.dispatch.apply( elem, arguments ) : undefined;
- };
- }
-
- // Handle multiple events separated by a space
- types = ( types || "" ).match( rnotwhite ) || [ "" ];
- t = types.length;
- while ( t-- ) {
- tmp = rtypenamespace.exec( types[ t ] ) || [];
- type = origType = tmp[ 1 ];
- namespaces = ( tmp[ 2 ] || "" ).split( "." ).sort();
-
- // There *must* be a type, no attaching namespace-only handlers
- if ( !type ) {
- continue;
- }
-
- // If event changes its type, use the special event handlers for the changed type
- special = jQuery.event.special[ type ] || {};
-
- // If selector defined, determine special event api type, otherwise given type
- type = ( selector ? special.delegateType : special.bindType ) || type;
-
- // Update special based on newly reset type
- special = jQuery.event.special[ type ] || {};
-
- // handleObj is passed to all event handlers
- handleObj = jQuery.extend( {
- type: type,
- origType: origType,
- data: data,
- handler: handler,
- guid: handler.guid,
- selector: selector,
- needsContext: selector && jQuery.expr.match.needsContext.test( selector ),
- namespace: namespaces.join( "." )
- }, handleObjIn );
-
- // Init the event handler queue if we're the first
- if ( !( handlers = events[ type ] ) ) {
- handlers = events[ type ] = [];
- handlers.delegateCount = 0;
-
- // Only use addEventListener if the special events handler returns false
- if ( !special.setup ||
- special.setup.call( elem, data, namespaces, eventHandle ) === false ) {
-
- if ( elem.addEventListener ) {
- elem.addEventListener( type, eventHandle );
- }
- }
- }
-
- if ( special.add ) {
- special.add.call( elem, handleObj );
-
- if ( !handleObj.handler.guid ) {
- handleObj.handler.guid = handler.guid;
- }
- }
-
- // Add to the element's handler list, delegates in front
- if ( selector ) {
- handlers.splice( handlers.delegateCount++, 0, handleObj );
- } else {
- handlers.push( handleObj );
- }
-
- // Keep track of which events have ever been used, for event optimization
- jQuery.event.global[ type ] = true;
- }
-
- },
-
- // Detach an event or set of events from an element
- remove: function( elem, types, handler, selector, mappedTypes ) {
-
- var j, origCount, tmp,
- events, t, handleObj,
- special, handlers, type, namespaces, origType,
- elemData = dataPriv.hasData( elem ) && dataPriv.get( elem );
-
- if ( !elemData || !( events = elemData.events ) ) {
- return;
- }
-
- // Once for each type.namespace in types; type may be omitted
- types = ( types || "" ).match( rnotwhite ) || [ "" ];
- t = types.length;
- while ( t-- ) {
- tmp = rtypenamespace.exec( types[ t ] ) || [];
- type = origType = tmp[ 1 ];
- namespaces = ( tmp[ 2 ] || "" ).split( "." ).sort();
-
- // Unbind all events (on this namespace, if provided) for the element
- if ( !type ) {
- for ( type in events ) {
- jQuery.event.remove( elem, type + types[ t ], handler, selector, true );
- }
- continue;
- }
-
- special = jQuery.event.special[ type ] || {};
- type = ( selector ? special.delegateType : special.bindType ) || type;
- handlers = events[ type ] || [];
- tmp = tmp[ 2 ] &&
- new RegExp( "(^|\\.)" + namespaces.join( "\\.(?:.*\\.|)" ) + "(\\.|$)" );
-
- // Remove matching events
- origCount = j = handlers.length;
- while ( j-- ) {
- handleObj = handlers[ j ];
-
- if ( ( mappedTypes || origType === handleObj.origType ) &&
- ( !handler || handler.guid === handleObj.guid ) &&
- ( !tmp || tmp.test( handleObj.namespace ) ) &&
- ( !selector || selector === handleObj.selector ||
- selector === "**" && handleObj.selector ) ) {
- handlers.splice( j, 1 );
-
- if ( handleObj.selector ) {
- handlers.delegateCount--;
- }
- if ( special.remove ) {
- special.remove.call( elem, handleObj );
- }
- }
- }
-
- // Remove generic event handler if we removed something and no more handlers exist
- // (avoids potential for endless recursion during removal of special event handlers)
- if ( origCount && !handlers.length ) {
- if ( !special.teardown ||
- special.teardown.call( elem, namespaces, elemData.handle ) === false ) {
-
- jQuery.removeEvent( elem, type, elemData.handle );
- }
-
- delete events[ type ];
- }
- }
-
- // Remove data and the expando if it's no longer used
- if ( jQuery.isEmptyObject( events ) ) {
- dataPriv.remove( elem, "handle events" );
- }
- },
-
- dispatch: function( event ) {
-
- // Make a writable jQuery.Event from the native event object
- event = jQuery.event.fix( event );
-
- var i, j, ret, matched, handleObj,
- handlerQueue = [],
- args = slice.call( arguments ),
- handlers = ( dataPriv.get( this, "events" ) || {} )[ event.type ] || [],
- special = jQuery.event.special[ event.type ] || {};
-
- // Use the fix-ed jQuery.Event rather than the (read-only) native event
- args[ 0 ] = event;
- event.delegateTarget = this;
-
- // Call the preDispatch hook for the mapped type, and let it bail if desired
- if ( special.preDispatch && special.preDispatch.call( this, event ) === false ) {
- return;
- }
-
- // Determine handlers
- handlerQueue = jQuery.event.handlers.call( this, event, handlers );
-
- // Run delegates first; they may want to stop propagation beneath us
- i = 0;
- while ( ( matched = handlerQueue[ i++ ] ) && !event.isPropagationStopped() ) {
- event.currentTarget = matched.elem;
-
- j = 0;
- while ( ( handleObj = matched.handlers[ j++ ] ) &&
- !event.isImmediatePropagationStopped() ) {
-
- // Triggered event must either 1) have no namespace, or 2) have namespace(s)
- // a subset or equal to those in the bound event (both can have no namespace).
- if ( !event.rnamespace || event.rnamespace.test( handleObj.namespace ) ) {
-
- event.handleObj = handleObj;
- event.data = handleObj.data;
-
- ret = ( ( jQuery.event.special[ handleObj.origType ] || {} ).handle ||
- handleObj.handler ).apply( matched.elem, args );
-
- if ( ret !== undefined ) {
- if ( ( event.result = ret ) === false ) {
- event.preventDefault();
- event.stopPropagation();
- }
- }
- }
- }
- }
-
- // Call the postDispatch hook for the mapped type
- if ( special.postDispatch ) {
- special.postDispatch.call( this, event );
- }
-
- return event.result;
- },
-
- handlers: function( event, handlers ) {
- var this$1 = this;
-
- var i, matches, sel, handleObj,
- handlerQueue = [],
- delegateCount = handlers.delegateCount,
- cur = event.target;
-
- // Support (at least): Chrome, IE9
- // Find delegate handlers
- // Black-hole SVG