diff --git a/.gitattributes b/.gitattributes new file mode 100644 index 0000000..bc53de4 --- /dev/null +++ b/.gitattributes @@ -0,0 +1 @@ +*.css linguist-language=php diff --git a/README.md b/README.md index 637fbe7..6e589cd 100755 --- a/README.md +++ b/README.md @@ -1,7 +1,9 @@ -phalphp +phalphp ================= +v2.0 基于phalcon框架的PHP应用,可用于Restful API,命令行应用及Web应用。 + 支持分模块,支持访问权限控制,行为日志记录 A PHP application for APIs,cli,and webapp using the Phalcon framework. diff --git a/api/.htaccess b/api/.htaccess new file mode 100755 index 0000000..fcf1d37 --- /dev/null +++ b/api/.htaccess @@ -0,0 +1,8 @@ +AddDefaultCharset UTF-8 + + + RewriteEngine On + RewriteCond %{REQUEST_FILENAME} !-d + RewriteCond %{REQUEST_FILENAME} !-f + RewriteRule ^(.*)$ index.php?_url=/$1 [QSA,L] + \ No newline at end of file diff --git a/public/api.php b/api/index.php similarity index 85% rename from public/api.php rename to api/index.php index 76f88d5..36cfa14 100755 --- a/public/api.php +++ b/api/index.php @@ -5,7 +5,7 @@ * Driver for PHP HMAC Restful API using PhalconPHP's Micro framework * * @package None - * @author Lenix + * @author Itv * @license none */ @@ -13,7 +13,8 @@ // Setup configuration files $dir = dirname(__DIR__); $appDir = $dir . '/app'; - +$apiDir = $dir . '/app/modules/Api'; +define('API_PATH',$apiDir); // Necessary requires to get things going require $appDir . '/library/utilities/debugapi/PhpError.php'; require $appDir . '/library/interfaces/IRun.php'; @@ -23,13 +24,14 @@ register_shutdown_function(['Utilities\Debugapi\PhpError','runtimeShutdown']); // Necessary paths to autoload & config settings -$configPath = $appDir . '/config/'; -$config = $configPath . 'config.php'; -$autoLoad = $configPath . 'autoload-api.php'; -$routes = $configPath . 'routes-api.php'; - -use \Models\Api as Api; - +$configPath = $apiDir . '/config/'; +$configfile = $apiDir . '/config/'; +$config = $appDir . '/config/config.php'; +$autoLoad = $configPath . 'autoload.php'; +$routes = $configPath . 'routes.php'; + +use Models\Api as Api; +use Models\Monitorsolution as Monitorsolution; try { $app = new Application\Micro(); @@ -46,7 +48,7 @@ $hash = $app->request->getHeader('API_HASH'); $privateKey = Api::findFirst($clientId)->private_key; - + switch ($_SERVER['REQUEST_METHOD']) { case 'GET': @@ -66,7 +68,7 @@ // Setup HMAC Authentication callback to validate user before routing message // Failure to validate will stop the process before going to proper Restful Route - $app->setEvents(new \Events\Api\HmacAuthenticate($message, $privateKey)); + $app->setEvents(new \Events\Api\HmacAuthenticate($message, $privateKey)); // Setup RESTful Routes $app->setRoutes($routes); diff --git a/app/cache/_library_webserver_documents_phalcon-framework_app_views_admin_index.volt.php b/app/cache/_library_webserver_documents_phalcon-framework_app_views_admin_index.volt.php deleted file mode 100644 index acb3bf8..0000000 --- a/app/cache/_library_webserver_documents_phalcon-framework_app_views_admin_index.volt.php +++ /dev/null @@ -1,17 +0,0 @@ -partial("public/header") ?> -
- - - - - -
- -
-
welcome
-
-
- - -
-partial("public/footer") ?> diff --git a/app/cache/_library_webserver_documents_phalcon-framework_app_views_index.volt.php b/app/cache/_library_webserver_documents_phalcon-framework_app_views_index.volt.php deleted file mode 100644 index da93b3b..0000000 --- a/app/cache/_library_webserver_documents_phalcon-framework_app_views_index.volt.php +++ /dev/null @@ -1,4 +0,0 @@ -getContent(); ?> - - - diff --git a/app/cache/volt/index.html b/app/cache/volt/index.html new file mode 100755 index 0000000..f146ef7 --- /dev/null +++ b/app/cache/volt/index.html @@ -0,0 +1,14 @@ + + + + +new page 1 + + + + + + + + + diff --git a/app/config/config.php b/app/config/config.php index e24a131..1b7477a 100755 --- a/app/config/config.php +++ b/app/config/config.php @@ -4,19 +4,43 @@ * api & cli & webapp * Settings to be stored in dependency injector */ - +//define('APP_MODULE_LIST','Admin,Api'); +//define('ADMIN_MODULE','Admin'); +//define('API_MODULE','Admin'); +//define('APP_MODULE_PATH','Modules'); return [ 'database' => array( 'adapter' => 'Mysql', /* Possible Values: Mysql, Postgres, Sqlite */ 'host' => 'localhost', 'username' => 'root', - 'password' => '39552041', - 'name' => 'phalconframework', + 'password' => '111111', + 'name' => 'database', 'port' => 3306 ), + 'db2' => array( + 'adapter' => 'Mysql', + 'host' => 'localhost', + 'username' => 'root', + 'password' => '111111!', + 'name' => 'database', + 'port' => 3306, + 'tablePrefix' => 'smt_' + ), + 'logdb' => array( + 'adapter' => 'Mysql', /* Possible Values: Mysql, Postgres, Sqlite */ + 'host' => 'localhost', + 'username' => 'root', + 'password' => '111111!', + 'name' => 'database', + 'port' => 3306 + ), 'app' => array( - 'debug' => FALSE - ) + 'debug' => false, + 'publicKey' => 'uitv' + ), + 'tasktime' => 5, + 'communityset' => 1, //1开启,0关闭 + 'serverowner'=>array('1'=>'a','2'=>'b','3'=>'c') ]; - + diff --git a/app/config/routes-api.php b/app/config/routes-api.php deleted file mode 100755 index 29ee4ee..0000000 --- a/app/config/routes-api.php +++ /dev/null @@ -1,57 +0,0 @@ - 'post', - 'route' => '/api/update', - 'handler' => 'myFunction' -]; - - */ - -$routes[] = [ - 'method' => 'post', - 'route' => '/ping', - 'handler' => ['Controllers\ExampleController', 'pingAction'] -]; - - -$routes[] = [ - 'method' => 'post', - 'route' => '/test/{id}', - 'handler' => ['Controllers\ExampleController', 'testAction'] -]; - -$routes[] = [ - 'method' => 'post', - 'route' => '/skip/{name}', - 'handler' => ['Controllers\ExampleController', 'skipAction'], - 'authentication' => FALSE -]; - -$routes[] = [ - 'method' => 'get', - 'route' => '/ping', - 'handler' => ['Controllers\ExampleController', 'getAction'], - 'authentication' => FALSE -]; - -$routes[] = [ - 'method' => 'put', - 'route' => '/ping', - 'handler' => ['Controllers\ExampleController', 'putAction'] -]; - -$routes[] = [ - 'method' => 'delete', - 'route' => '/ping', - 'handler' => ['Controllers\ExampleController', 'deleteAction'] -]; - -return $routes; diff --git a/app/controllers/AdminController.php b/app/controllers/AdminController.php deleted file mode 100644 index fb3b29e..0000000 --- a/app/controllers/AdminController.php +++ /dev/null @@ -1,20 +0,0 @@ -session->has('auth')){ - $this->auth = $this->session->get('auth'); - $this->view->setVar("username", $this->auth['name']); - $this->view->setVar("uid", $this->auth['id']); - }else{ - $this->flash->error('please login'); - - $this->response->redirect("http://localhost/phalcon-framework/public/index.php?_url=/login"); - } - } -} diff --git a/app/controllers/IndexController.php b/app/controllers/IndexController.php deleted file mode 100755 index 9b59bdc..0000000 --- a/app/controllers/IndexController.php +++ /dev/null @@ -1,16 +0,0 @@ -view->setVar('name', "PHP Web Application using Phalcon MVC"); - } -} diff --git a/app/controllers/LoginController.php b/app/controllers/LoginController.php deleted file mode 100755 index ea8abc9..0000000 --- a/app/controllers/LoginController.php +++ /dev/null @@ -1,59 +0,0 @@ -session->set('auth', array( - 'id' => $user->id, - 'name' => $user->username - )); - //$this->view->setVar("username", $user->username); - } - - //login - public function indexAction() - { - if ($this->request->isPost()) { - - $username = $this->request->getPost('username'); - $password = sha1($this->request->getPost('password')); - - $user = Admin::findFirst(array( - "username = :username: AND password = :password:", - "bind" => array('username' => $username, 'password' => $password) - )); - - if ($user != false) { - $this->_registerSession($user); - - $this->flash->success('Welcome ' . $user->username); - - //Forward to the 'invoices' controller if the user is valid - /* - return $this->dispatcher->forward(array( - 'controller' => 'index', - 'action' => 'index' - ));*/ - $this->response->redirect("http://localhost/phalcon-framework/public/index.php?_url=/admin"); - }else{ - $this->flash->error('username or password error'); - } - } - } - - //logout - public function logoutAction(){ - $this->session->destroy(); - /*return $this->dispatcher->forward(array( - 'controller' => 'login', - 'action' => 'index' - ));*/ - $this->response->redirect("http://localhost/phalcon-framework/public/index.php?_url=/login"); - } -} diff --git a/app/controllers/TopicController.php b/app/controllers/TopicController.php deleted file mode 100755 index 8eb8188..0000000 --- a/app/controllers/TopicController.php +++ /dev/null @@ -1,227 +0,0 @@ -persistent->parameters = null; - $numberPage = 1; - if ($this->request->isPost()) { - $query = Criteria::fromInput($this->di, "Topic", $_POST); - $this->persistent->parameters = $query->getParams(); - } else { - $numberPage = $this->request->getQuery("page", "int"); - } - if ($numberPage ==null) { - - $this->persistent->parameters = null; - } - - $parameters = $this->persistent->parameters; - if (!is_array($parameters)) { - $parameters = array(); - } - if($this->request->getPost("topic")){ - $parameters["conditions"] .= " and topictype = 2 and status = 0"; //status: - }else{ - $parameters["conditions"] = "topictype = 2 and status = 0"; //status: - } - //$parameters["order"] = "id"; - - - - - $builder = $this->modelsManager->createBuilder() - ->columns('*') - ->from('Topic') - ->where($parameters['conditions'], $parameters['bind']) - ->orderBy('id'); - - $paginator = new PaginatorQueryBuilder( - array( - "builder" => $builder, - "limit" => 20, - "page" => $numberPage - ) - ); - - - $this->view->page = $paginator->getPaginate(); - } - - /** - * Displays the creation form - */ - public function newAction() - { - - } - - /** - * edit - * - * @param string $id - */ - public function editAction($id) - { - - if (!$this->request->isPost()) { - - $topic = Topic::findFirstByid($id); - if (!$topic) { - $this->flash->error("topic was not found"); - - return $this->dispatcher->forward(array( - "controller" => "topic", - "action" => "index" - )); - } - - $this->view->id = $topic->id; - - $this->tag->setDefault("id", $topic->id); - $this->tag->setDefault("topic", $topic->topic); - $this->tag->setDefault("topictype", $topic->topictype); - $this->tag->setDefault("groupid", $topic->groupid); - - - } - } - - /** - * add - */ - public function createAction() - { - - if (!$this->request->isPost()) { - return $this->dispatcher->forward(array( - "controller" => "topic", - "action" => "index" - )); - } - - $topic = new Topic(); - - $topic->topic = $this->request->getPost("topic"); - $topic->info = $this->request->getPost("info"); - $topic->topictype = $this->request->getPost("topictype"); - $topic->subtime = time(); - $topic->adminname = $this->auth['name']; - $topic->status = 0; - - - if (!$topic->save()) { - foreach ($topic->getMessages() as $message) { - $this->flash->error($message); - } - - return $this->dispatcher->forward(array( - "controller" => "topic", - "action" => "new" - )); - } - - $this->flash->success("add success"); - - $this->response->redirect("topic/index"); - - } - - /** - * save edit - * - */ - public function saveAction() - { - - if (!$this->request->isPost()) { - return $this->dispatcher->forward(array( - "controller" => "topic", - "action" => "index" - )); - } - - $id = $this->request->getPost("id"); - - $topic = Topic::findFirstByid($id); - if (!$topic) { - $this->flash->error("topic does not exist " . $id); - - return $this->dispatcher->forward(array( - "controller" => "topic", - "action" => "index" - )); - } - - $topic->topic = $this->request->getPost("topic"); - $topic->topictype = $this->request->getPost("topictype"); - $topic->unsubtime = time(); - - - if (!$topic->save()) { - - foreach ($topic->getMessages() as $message) { - $this->flash->error($message); - } - - return $this->dispatcher->forward(array( - "controller" => "topic", - "action" => "edit", - "params" => array($topic->id) - )); - } - - $this->flash->success("edit success"); - - $this->response->redirect("topic/index"); - - } - - /** - * delete - * - * @param string $id - */ - public function deleteAction($id) - { - - $topic = Topic::findFirstByid($id); - if (!$topic) { - $this->flash->error("the topic not exist"); - - $this->response->redirect("topic/index"); - } - $topic->status = 1; - - if (!$topic->save()) { - - foreach ($topic->getMessages() as $message) { - $this->flash->error($message); - } - - return $this->dispatcher->forward(array( - "controller" => "topic", - "action" => "index" - )); - } - - $this->flash->success("delete success"); - - $this->response->redirect("topic/index"); - } - -} diff --git a/app/library/application/Cli.php b/app/library/application/Cli.php index 06129fa..d0de27d 100755 --- a/app/library/application/Cli.php +++ b/app/library/application/Cli.php @@ -3,7 +3,7 @@ /** * Cli based Application used to setup Tasks to run * - * @author Lenix + * @author Itv * @version 1.0 * @package Cli */ diff --git a/app/library/application/Micro.php b/app/library/application/Micro.php index 1f3afa7..26c435a 100755 --- a/app/library/application/Micro.php +++ b/app/library/application/Micro.php @@ -4,7 +4,7 @@ * Small Micro application to run simple/rest based api applications * * @package Application - * @author Lenix + * @author Itv * @version 1.0 * @link http://docs.phalconphp.com/en/latest/reference/micro.html * @example @@ -71,6 +71,50 @@ public function setConfig($file) { return $connection; }); + $di->set('logdb', function() use ($di) { + $type = strtolower($di->get('config')->logdb->adapter); + $creds = array( + 'host' => $di->get('config')->logdb->host, + 'username' => $di->get('config')->logdb->username, + 'password' => $di->get('config')->logdb->password, + 'dbname' => $di->get('config')->logdb->name + ); + + if ($type == 'mysql') { + $connection = new \Phalcon\Db\Adapter\Pdo\Mysql($creds); + } else if ($type == 'postgres') { + $connection = new \Phalcon\Db\Adapter\Pdo\Postgresql($creds); + } else if ($type == 'sqlite') { + $connection = new \Phalcon\Db\Adapter\Pdo\Sqlite($creds); + } else { + throw new Exception('Bad Database Adapter'); + } + + return $connection; + }); + + $di->set('db2', function() use ($di) { + $type = strtolower($di->get('config')->db2->adapter); + $creds = array( + 'host' => $di->get('config')->db2->host, + 'username' => $di->get('config')->db2->username, + 'password' => $di->get('config')->db2->password, + 'dbname' => $di->get('config')->db2->name + ); + + if ($type == 'mysql') { + $connection = new \Phalcon\Db\Adapter\Pdo\Mysql($creds); + } else if ($type == 'postgres') { + $connection = new \Phalcon\Db\Adapter\Pdo\Postgresql($creds); + } else if ($type == 'sqlite') { + $connection = new \Phalcon\Db\Adapter\Pdo\Sqlite($creds); + } else { + throw new Exception('Bad Database Adapter'); + } + + return $connection; + }); + $this->setDI($di); } diff --git a/app/library/application/Web.php b/app/library/application/Web.php index aaaf4fc..5d8233f 100755 --- a/app/library/application/Web.php +++ b/app/library/application/Web.php @@ -3,7 +3,7 @@ /** * Main Application for Web Application * - * @author Lenix + * @author Itv * @version 1.0 */ namespace Application; @@ -62,6 +62,26 @@ public function setConfig($file) { )); }); + $di->set('db2', function() use ($config) { + return new \Phalcon\Db\Adapter\Pdo\Mysql(array( + 'adapter' => $config['db2']['adapter'], + 'host' => $config['db2']['host'], + 'username' => $config['db2']['username'], + 'password' => $config['db2']['password'], + 'dbname' => $config['db2']['name'], + 'port' => $config['db2']['port'] + )); + }); + $di->set('logdb', function() use ($config) { + return new \Phalcon\Db\Adapter\Pdo\Mysql(array( + 'adapter' => $config['logdb']['adapter'], + 'host' => $config['logdb']['host'], + 'username' => $config['logdb']['username'], + 'password' => $config['logdb']['password'], + 'dbname' => $config['logdb']['name'], + 'port' => $config['logdb']['port'] + )); + }); $di->set('elements', function() { return new \Elements\Elements(); }); @@ -156,7 +176,7 @@ public function setRoutes($file) { public function setBaseUrl($base) { $di = $this->getDI(); - $di->set('url', function() { + $di->set('url', function() use($base) { $url = new \Phalcon\Mvc\Url(); $url->setBaseUri($base); return $url; @@ -166,9 +186,9 @@ public function setBaseUrl($base) { public function setView($viewPath = '../app/views/',$volt) { - + $isdebug=$this->_debug; $di = $this->getDI(); - $di->set('view', function() use ($viewPath,$volt) { + $di->set('view', function() use ($viewPath,$volt,$isdebug) { $view = new \Phalcon\Mvc\View(); $view->setViewsDir($viewPath); @@ -197,7 +217,7 @@ public function setView($viewPath = '../app/views/',$volt) { )); } - if ($this->_debug) { + if ($isdebug) { // Track Views $eventsManager = new \Phalcon\Events\Manager(); @@ -263,18 +283,19 @@ public function printDebug() { padding: 0; } - Phalcon +-----------------------------
+ Phalcon debug info - + - + "; @@ -291,7 +312,7 @@ public function printDebug() {
Time $time
ControllerController: {$controller}
ActionAction: {$action}
"; echo ""; foreach($_SESSION as $index => $value) { - echo ""; + // echo ""; } echo "
Session NameSession Value
" . session_name() . "" . session_id() . "
$index" . printValue($value) . "
$index" . $value . "
"; } @@ -299,7 +320,7 @@ public function printDebug() { //printSuperGlobal($_SESSION, "Session"); //printSuperGlobal($_POST, "Post"); //printSuperGlobal($_COOKIE, "Cookie"); - echo 'welcome'; + echo '-------------------------'; /*$queries = DatabaseFactory::getQueries(); diff --git a/app/library/cli/Command.php b/app/library/cli/Command.php index deee176..3f56725 100755 --- a/app/library/cli/Command.php +++ b/app/library/cli/Command.php @@ -5,7 +5,7 @@ * * a containter class that holds all attributes that make up a command * - * @author Lenix + * @author Itv * @version 1.0 * @package cli */ diff --git a/app/library/cli/Execute.php b/app/library/cli/Execute.php index e25afdb..ee25162 100755 --- a/app/library/cli/Execute.php +++ b/app/library/cli/Execute.php @@ -5,7 +5,7 @@ * * Execute a command thru the shell * - * @author Lenix + * @author Itv * @version 1.0 * @package cli */ diff --git a/app/library/cli/Pid.php b/app/library/cli/Pid.php index 70be111..b91e685 100755 --- a/app/library/cli/Pid.php +++ b/app/library/cli/Pid.php @@ -4,7 +4,7 @@ * Handling of the ProcessID(Pid) file's creation, removal and existance * * @package Cli - * @author Lenix + * @author Itv */ namespace Cli; diff --git a/app/library/events/api/HmacAuthenticate.php b/app/library/events/api/HmacAuthenticate.php index 97ea31a..0e09b97 100755 --- a/app/library/events/api/HmacAuthenticate.php +++ b/app/library/events/api/HmacAuthenticate.php @@ -5,7 +5,7 @@ * * @package Events * @subpackage Api - * @author Lenix + * @author Itv * @version 1.0 */ diff --git a/app/library/events/cli/Debug.php b/app/library/events/cli/Debug.php index bd2a288..cc43f28 100755 --- a/app/library/events/cli/Debug.php +++ b/app/library/events/cli/Debug.php @@ -5,7 +5,7 @@ * * @package Cli * @subpackage Events - * @author Lenix + * @author Itv * @version 1.0 */ diff --git a/app/library/events/database/Profile.php b/app/library/events/database/Profile.php index 779c3c8..7f9e574 100755 --- a/app/library/events/database/Profile.php +++ b/app/library/events/database/Profile.php @@ -4,7 +4,7 @@ * cli * Event to trigger profiling SQL statements * - * @author Lenix + * @author Itv * @version 1.0 */ diff --git a/app/library/interfaces/IEvent.php b/app/library/interfaces/IEvent.php index 0067ae6..e05b651 100755 --- a/app/library/interfaces/IEvent.php +++ b/app/library/interfaces/IEvent.php @@ -6,7 +6,7 @@ * * @category Interfaces * @package Interfaces - * @author Lenix + * @author Itv * @link * @license */ diff --git a/app/library/interfaces/IRun.php b/app/library/interfaces/IRun.php index 21e68b8..2db2729 100755 --- a/app/library/interfaces/IRun.php +++ b/app/library/interfaces/IRun.php @@ -6,7 +6,7 @@ * * @category Interfaces * @package Interfaces - * @author Lenix + * @author Itv * @link * @license */ diff --git a/app/library/micro/messages/Auth.php b/app/library/micro/messages/Auth.php index ffed672..52c5613 100755 --- a/app/library/micro/messages/Auth.php +++ b/app/library/micro/messages/Auth.php @@ -6,7 +6,7 @@ * * @package Micro * @subpackage Messages - * @author Lenix + * @author Itv */ namespace Micro\Messages; diff --git a/app/library/security/access/Access.php b/app/library/security/access/Access.php new file mode 100755 index 0000000..16c7736 --- /dev/null +++ b/app/library/security/access/Access.php @@ -0,0 +1,76 @@ +acl = new \Phalcon\Acl\Adapter\Memory(); + $this->acl->setDefaultAction(\Phalcon\Acl::DENY); + $roles = Role::find(); + foreach ($roles as $roles) { + // $allowList[$roles->rolename]=[]; + $this->roles[] = $roles->rolename;//角色 + //var_dump($roles->rolename); + $this->acl->addRole(new \Phalcon\Acl\Role($roles->rolename)); + //$resources = Resources::findByroleid($roles->roleid); //goodyuan + //$resources = Aclaccess::findByroleid($roles->roleid); + $phql = "SELECT c.*,b.* FROM \Models\Aclaccess c left join \Models\Resources b WHERE c.roleid = $roles->roleid and b.resourceid=c.resourceid "; + $resources = $this->modelsManager->executeQuery($phql); + //var_dump($resources); + foreach ($resources as $resources) { + // $allowList[$roles->rolename][$resources->name]=[]; + // var_dump($resources->b->name); + $oprations = Operations::findByresourceid($resources->c->resourceid); + //var_dump($resources->resourceid); + $optarr=$oprations->toArray(); + $oprationsarr=[]; + foreach ($optarr as $optarr) { + if ($optarr['name']) { + $oprationsarr[] = $optarr['name']; + //var_dump($optarr['name']); + } + } + $this->privateResources[$resources->b->name] = $oprationsarr; + $this->acl->addResource(new \Phalcon\Acl\Resource($resources->b->name), $oprationsarr); + foreach ($oprations as $oprations) { + // $allowList[$roles->rolename][$resources->name][] =$oprations->name; + // var_dump($roles->rolename); + $this->acl->allow($roles->rolename, $resources->b->name, $oprations->name); + } + } + } + } + + public function check($role = null) + { + if ($role!=null) { + $filter = new \Phalcon\Filter(); + $role = $filter->sanitize($role, "string"); + $ControllerName = \Phalcon\DI::getDefault()->get('dispatcher')->getControllerName(); + $ActionName = \Phalcon\DI::getDefault()->get('dispatcher')->getActionName(); + if ($this->acl->isAllowed($role, $ControllerName, $ActionName)) { + return true; + } else { + return false; + } + } else { + return false; + } + } +} diff --git a/app/library/security/hmac/HmacAuthenticate.php b/app/library/security/hmac/HmacAuthenticate.php index a28c998..929deb8 100755 --- a/app/library/security/hmac/HmacAuthenticate.php +++ b/app/library/security/hmac/HmacAuthenticate.php @@ -5,7 +5,7 @@ * Hash Message Authentication Code * * @package Security - * @author Lenix + * @author Itv * @version 1.0 */ diff --git a/app/library/utilities/debug/PhpError.php b/app/library/utilities/debug/PhpError.php index 6d5da4c..96593a4 100755 --- a/app/library/utilities/debug/PhpError.php +++ b/app/library/utilities/debug/PhpError.php @@ -6,7 +6,7 @@ * * @package Utilties * @subpackage Debug - * @author Lenix + * @author Itv * @version 1.0 * @link */ diff --git a/app/library/utilities/debugapi/PhpError.php b/app/library/utilities/debugapi/PhpError.php index 61e21b4..0349264 100755 --- a/app/library/utilities/debugapi/PhpError.php +++ b/app/library/utilities/debugapi/PhpError.php @@ -5,7 +5,7 @@ * Capture PHP related warnings/errors * * @package Utilities - * @author Lenix + * @author Itv * @version 1.0 * @link */ diff --git a/app/library/utilities/debugcli/PhpError.php b/app/library/utilities/debugcli/PhpError.php index 149e296..139d201 100755 --- a/app/library/utilities/debugcli/PhpError.php +++ b/app/library/utilities/debugcli/PhpError.php @@ -6,7 +6,7 @@ * * @package Utilties * @subpackage Debug - * @author Lenix + * @author Itv * @version 1.0 * @link */ diff --git a/app/models/Aclaccess.php b/app/models/Aclaccess.php new file mode 100755 index 0000000..c9a3ff7 --- /dev/null +++ b/app/models/Aclaccess.php @@ -0,0 +1,43 @@ +hasMany( +// "resourceid", +// "Resources", +// "resourceid" +// ); +// +// $this->hasMany( +// "roleid", +// "Role", +// "roleid" +// ); +// } + + + +} diff --git a/app/models/Admin.php b/app/models/Admin.php old mode 100644 new mode 100755 index 443f1aa..d802849 --- a/app/models/Admin.php +++ b/app/models/Admin.php @@ -1,6 +1,7 @@ setSource("admin"); - } - + /** + * + * @var string + */ + public $logintime; + + /** + * + * @var string + */ + public $regtime; + + /** + * + * @var integer + */ + public $roleid; + /** * Independent Column Mapping. @@ -34,17 +48,17 @@ public function initialize() { * * @return array */ - /* public function columnMap() { return array( - 'id' => 'id', - 'username' => 'username', - 'password' => 'password', - 'logintime' => 'logintime', + 'id' => 'id', + 'username' => 'username', + 'password' => 'password', + 'logintime' => 'logintime', 'regtime' => 'regtime', 'adminname' => 'adminname', - 'info' => 'info' + 'info' => 'info', + 'roleid' => 'roleid' ); - }*/ + } } diff --git a/app/models/App.php b/app/models/App.php new file mode 100755 index 0000000..b4f4fc4 --- /dev/null +++ b/app/models/App.php @@ -0,0 +1,64 @@ + 'app_id', + 'username' => 'username', + 'private_key' => 'private_key', + 'status' => 'status', + 'adminname' => 'adminname', + 'addtime' => 'addtime', + 'info' => 'info' + ); + } +} diff --git a/app/models/Log.php b/app/models/Log.php new file mode 100755 index 0000000..5460791 --- /dev/null +++ b/app/models/Log.php @@ -0,0 +1,53 @@ +belongsTo( +// "resourceid", +// "Aclaccess", +// "resourceid" +// ); +// +// } + + +} diff --git a/app/models/Role.php b/app/models/Role.php new file mode 100755 index 0000000..37ab928 --- /dev/null +++ b/app/models/Role.php @@ -0,0 +1,36 @@ +belongsTo( +// "roleid", +// "Aclaccess", +// "roleid" +// ); +// } + + + +} diff --git a/app/models/RuntimeError.php b/app/models/RuntimeError.php index 919f626..e2bd2ff 100755 --- a/app/models/RuntimeError.php +++ b/app/models/RuntimeError.php @@ -2,9 +2,11 @@ //cli & api & webapp namespace Models; -class RuntimeError extends \Phalcon\Mvc\Model { +class RuntimeError extends \Phalcon\Mvc\Model +{ - public function initialize() { - $this->setSource("runtimeError"); - } + public function initialize() + { + $this->setSource("runtimeError"); + } } diff --git a/app/models/Setting.php b/app/models/Setting.php new file mode 100755 index 0000000..1e76c4a --- /dev/null +++ b/app/models/Setting.php @@ -0,0 +1,22 @@ + $dir . '/library/micro/messages/', 'Utilities\Debug' => $dir . '/library/utilities/debug/', 'Security\Hmac' => $dir . '/library/security/hmac/', + 'Security\Access' => $dir . '/library/security/access/', 'Application' => $dir . '/library/application/', 'Interfaces' => $dir . '/library/interfaces/', - 'Controllers' => $dir . '/controllers/', - 'Models' => $dir . '/models/' + 'Controllers' => $dir . '/modules/Admin/controllers/', + 'Models' => $dir . '/models/', ]; return $autoload; diff --git a/app/modules/Admin/config/config.php b/app/modules/Admin/config/config.php new file mode 100755 index 0000000..d4b2e26 --- /dev/null +++ b/app/modules/Admin/config/config.php @@ -0,0 +1,22 @@ + array( + 'adapter' => 'Mysql', /* Possible Values: Mysql, Postgres, Sqlite */ + 'host' => '192.168.6.76', + 'username' => 'root', + 'password' => '111111', + 'name' => 'database', + 'port' => 3306 + ), + 'app' => array( + 'debug' => false + ) + +]; + diff --git a/app/config/routes.php b/app/modules/Admin/config/routes.php similarity index 100% rename from app/config/routes.php rename to app/modules/Admin/config/routes.php diff --git a/app/modules/Admin/controllers/AdminController.php b/app/modules/Admin/controllers/AdminController.php new file mode 100755 index 0000000..89b1728 --- /dev/null +++ b/app/modules/Admin/controllers/AdminController.php @@ -0,0 +1,281 @@ +view->setVar('activeinfo','admin'); + } + /** + * 管理员列表 + */ + public function indexAction() + { + $numberPage = 1; + if ($this->request->isPost()) { + $query = Criteria::fromInput($this->di, "Models\Admin", $_POST); + $this->persistent->parameters = $query->getParams(); + } else { + $numberPage = $this->request->getQuery("page", "int"); + } + if ($numberPage ==null) { + $this->persistent->parameters = null; + } + + $parameters = $this->persistent->parameters; + if (!is_array($parameters)) { + $parameters = array(); + } + if ($this->request->getPost("username")) { + $username = $this->request->getPost("username"); + $parameters["conditions"] .= " and username like '%".$username."%' "; + } + if (isset($parameters["conditions"])) { + $builder = $this->modelsManager->createBuilder() + ->columns('*') + ->from('Models\Admin') + ->where($parameters['conditions'], $parameters['bind']) + ->orderBy('id'); + } else { + $builder = $this->modelsManager->createBuilder() + ->columns('*') + ->from('Models\Admin') + ->orderBy('id'); + } + + $paginator = new PaginatorQueryBuilder( + array( + "builder" => $builder, + "limit" => 10, + "page" => $numberPage + ) + ); + $role = Role::find(); + $this->view->setVar("roleid", $role); + $this->view->page = $paginator->getPaginate(); + } + + /** + * Displays the creation form + */ + public function newAction() + { + $role = Role::find(); + $roleid= $this->tag->select( + [ + "roleid", + $role, + "using" => [ + "roleid", + "roleinfo", + ], + "useEmpty" => true, + "emptyText" => "请选择", + "emptyValue" => "", + "required" => "", + ] + ); + $this->view->setVar("roleid", $roleid); + } + + /** + * 编辑 + * + * @param string $id + */ + public function editAction($id) + { + + if (!$this->request->isPost()) { + $admin = Admin::findFirstByid($id); + if (!$admin) { + $this->flash->error("admin was not found"); + return $this->dispatcher->forward(array( + "controller" => "admin", + "action" => "index" + )); + } + + $this->view->id = $admin->id; + $this->tag->setDefault("id", $admin->id); + $this->tag->setDefault("username", $admin->username); + $this->tag->setDefault("roleid", $admin->roleid); + + $role = Role::find(); + $roles=[]; + foreach ($role as $role) { + $roles[$role->roleid] =$role->roleinfo; + } + + $selectarr= [ + "roleid", + $roles + ]; + + $roleid= $this->tag->selectStatic($selectarr); + $this->view->setVar("roleid", $roleid); + + + } + } + + /** + * 添加管理员 + */ + public function createAction() + { + + if (!$this->request->isPost()) { + return $this->dispatcher->forward(array( + "controller" => "admin", + "action" => "index" + )); + } + + $admin = new Admin(); + + $admin->username = $this->request->getPost("username"); + $admin->roleid = $this->request->getPost("roleid"); + $admin->password = sha1($this->request->getPost("password")); + $admin->regtime = time(); + $admin->adminname = $this->auth['name']; + //echo $this->request->getPost("username");exit; + + $user = Admin::findFirst(array( + "username = :username:", + "bind" => array('username' => $admin->username) + )); + + if ($user != false) { + $this->flash->error('该用户名已被注册'); + return $this->dispatcher->forward(array( + "controller" => "admin", + "action" => "new" + )); + } + + if (!$admin->save()) { + foreach ($admin->getMessages() as $message) { + $this->flash->error($message); + } + + return $this->dispatcher->forward(array( + "controller" => "admin", + "action" => "new" + )); + } + + $this::logAction('添加管理员', "添加了管理员:$admin->username"); + $this->flash->success("设置成功"); + /*return $this->dispatcher->forward(array( + "controller" => "admin", + "action" => "index" + ));*/ + $this->response->redirect("admin/index"); + } + + /** + * Saves a admin edited + * + */ + public function saveAction() + { + if (!$this->request->isPost()) { + return $this->dispatcher->forward(array( + "controller" => "admin", + "action" => "index" + )); + } + + $id = $this->request->getPost("id"); + + $admin = Admin::findFirstByid($id); + if (!$admin) { + $this->flash->error("该管理员不存在"); + + /*return $this->dispatcher->forward(array( + "controller" => "admin", + "action" => "index" + ));*/ + $this->response->redirect("admin/index"); + } + + //$admin->username = $this->request->getPost("username"); + $admin->password = sha1($this->request->getPost("password")); + $admin->roleid = $this->request->getPost("roleid"); + /*$admin->logintime = $this->request->getPost("logintime"); + $admin->regtime = $this->request->getPost("regtime");*/ + + + if (!$admin->save()) { + foreach ($admin->getMessages() as $message) { + $this->flash->error($message); + } + + return $this->dispatcher->forward(array( + "controller" => "admin", + "action" => "edit", + "params" => array($admin->id) + )); + } + $this::logAction('修改管理员', "修改了管理员:$admin->username"); + + $this->flash->success("修改成功"); + + /*return $this->dispatcher->forward(array( + "controller" => "admin", + "action" => "index" + ));*/ + $this->response->redirect("admin/index"); + } + + /** + * Deletes a admin + * + * @param string $id + */ + public function deleteAction($id) + { + + $admin = Admin::findFirstByid($id); + if (!$admin) { + $this->flash->error("admin was not found"); + + return $this->dispatcher->forward(array( + "controller" => "admin", + "action" => "index" + )); + } + + if (!$admin->delete()) { + foreach ($admin->getMessages() as $message) { + $this->flash->error($message); + } + + return $this->dispatcher->forward(array( + "controller" => "admin", + "action" => "search" + )); + } + $this::logAction('删除管理员', "删除了管理员:$admin->username"); + + $this->flash->success("删除成功"); + + /*return $this->dispatcher->forward(array( + "controller" => "admin", + "action" => "index" + ));*/ + $this->response->redirect("admin/index"); + } +} diff --git a/app/modules/Admin/controllers/AdminsetController.php b/app/modules/Admin/controllers/AdminsetController.php new file mode 100644 index 0000000..b347381 --- /dev/null +++ b/app/modules/Admin/controllers/AdminsetController.php @@ -0,0 +1,75 @@ +view->setVar('activeinfo','admin'); + } + /*设置密码*/ + public function setAction($id) + { + + if (!$this->request->isPost()) { + $admin = Admin::findFirstByid($id); + if (!$admin) { + $this->flash->error("admin was not found"); + return $this->dispatcher->forward(array( + "controller" => "index", + "action" => "index" + )); + } + + $this->view->id = $admin->id; + $this->tag->setDefault("id", $admin->id); + $this->tag->setDefault("username", $admin->username); + + + + } + } + + public function saveAction() + { + if (!$this->request->isPost()) { + return $this->dispatcher->forward(array( + "controller" => "index", + "action" => "index" + )); + } + + $id = $this->request->getPost("id"); + + $admin = Admin::findFirstByid($id); + if (!$admin) { + $this->flash->error("该管理员不存在"); + $this->response->redirect("index/index"); + } + $admin->password = sha1($this->request->getPost("password")); + + + if (!$admin->save()) { + foreach ($admin->getMessages() as $message) { + $this->flash->error($message); + } + + return $this->dispatcher->forward(array( + "controller" => "adminset", + "action" => "edit", + "params" => array($admin->id) + )); + } + $this::logAction('修改管理员', "修改了管理员:$admin->username"); + + $this->flash->success("修改成功"); + $this->response->redirect("index/index"); + } +} \ No newline at end of file diff --git a/app/modules/Admin/controllers/AppController.php b/app/modules/Admin/controllers/AppController.php new file mode 100755 index 0000000..7842f49 --- /dev/null +++ b/app/modules/Admin/controllers/AppController.php @@ -0,0 +1,155 @@ +view->setVar('activeinfo','app'); + } + /** + * app列表 + */ + public function indexAction() + { + $numberPage = 1; + if ($this->request->isPost()) { + $query = Criteria::fromInput($this->di, "Models\App", $_POST); + $this->persistent->parameters = $query->getParams(); + } else { + $numberPage = $this->request->getQuery("page", "int"); + } + if ($numberPage ==null) { + $this->persistent->parameters = null; + } + + $parameters = $this->persistent->parameters; + if (!is_array($parameters)) { + $parameters = array(); + } + if ($this->request->getPost("username")) { + //$parameters["conditions"] .= "and status = 0"; //status:0正常,1删除 + $username = $this->request->getPost("username"); + $parameters["conditions"] .= " and status = 0 and username like '%".$username."%' "; + } + + if (isset($parameters["conditions"])) { + $builder = $this->modelsManager->createBuilder() + ->columns('*') + ->from('Models\App') + ->where($parameters['conditions'], $parameters['bind']) + ->orderBy('app_id'); + } else { + $builder = $this->modelsManager->createBuilder() + ->columns('*') + ->from('Models\App') + ->orderBy('app_id'); + } + + + + $paginator = new PaginatorQueryBuilder( + array( + "builder" => $builder, + "limit" => 10, + "page" => $numberPage + ) + ); + $this->view->page = $paginator->getPaginate(); + } + + /** + * Displays the creation form + */ + public function newAction() + { + } + + /** + * Creates a new app + */ + public function createAction() + { + + if (!$this->request->isPost()) { + return $this->dispatcher->forward(array( + "controller" => "app", + "action" => "index" + )); + } + + $app = new App(); + + $app->username = $this->request->getPost("username"); + $app->info = $this->request->getPost("info"); + $publicKey = $this->config->app->publicKey; + $app->private_key = hash_hmac('sha256', $app->username, $publicKey); + $app->status = 0; + $app->adminname = $this->auth['name']; + + $apps = App::findFirst(array( + "username = :username:", + "bind" => array('username' => $app->username) + )); + + if ($apps != false) { + $this->flash->error('该用户名已被注册'); + return $this->dispatcher->forward(array( + "controller" => "app", + "action" => "new" + )); + } + + if (!$app->save()) { + foreach ($app->getMessages() as $message) { + $this->flash->error($message); + } + + return $this->dispatcher->forward(array( + "controller" => "app", + "action" => "new" + )); + } + $this::logAction('添加APP', "添加APP:$app->username"); + + $this->flash->success("设置成功"); + + $this->response->redirect("app/index"); + } + + /** + * 删除 + * + * @param string $app_id + */ + public function deleteAction($app_id) + { + $app = App::findFirstByapp_id($app_id); + if (!$app) { + $this->flash->error("该app不存在"); + return $this->dispatcher->forward(array( + "controller" => "app", + "action" => "index" + )); + } + if (!$app->delete()) { + foreach ($app->getMessages() as $message) { + $this->flash->error($message); + } + return $this->dispatcher->forward(array( + "controller" => "app", + "action" => "index" + )); + } + $this::logAction('删除APP', "删除APP:$app->username"); + + $this->flash->success("删除成功"); + $this->response->redirect("app/index"); + } + +} diff --git a/app/modules/Admin/controllers/ControllerBase.php b/app/modules/Admin/controllers/ControllerBase.php new file mode 100755 index 0000000..977264c --- /dev/null +++ b/app/modules/Admin/controllers/ControllerBase.php @@ -0,0 +1,66 @@ +session->has('auth')) { + $this->auth = $this->session->get('auth'); + $this->view->setVar("username", $this->auth['name']); + $this->view->setVar("uid", $this->auth['id']); + $_SESSION['username']=$this->auth['name']; + $user = Admin::findFirstByusername($this->auth['name']); + $role = Role::findFirstByroleid($user->roleid); + $rolename=$role->rolename; + // var_dump($rolename); + + $ControllerName = \Phalcon\DI::getDefault()->get('dispatcher')->getControllerName(); + if ($ControllerName != 'index') { + $access = new Access\Access(); + $accessstatus = $access->check($rolename); //这里要多数据库中查出用户的角色 + if (!$accessstatus) { + // $this->flash->error('您没有权限执行此操作'); + $response = new \Phalcon\Http\Response(); + $response->setStatusCode(200, "OK"); + $response->setContent(""); + $response->send(); + exit; + } + } + + } else { + $this->flash->error('请登录'); + $this->response->redirect("/login"); + } + $settingcon = new Config(require(dirname(__DIR__) . '/../../config/config.php')); + $this->view->setVar('communityset', $settingcon->communityset); + } + + /** + 记录操作日志 + * @param string $title + * @param string $content + */ + public static function logAction($title, $content) + { + $log = new Log(); + $log->username=$_SESSION['username']; + $log->ip= $_SERVER["REMOTE_ADDR"]; + $log->addtime=date("Y-m-d H:i:s"); + $log->title=$title; + $log->content=$content; + $log->url=''; + $log->save(); + } +} diff --git a/app/modules/Admin/controllers/IndexController.php b/app/modules/Admin/controllers/IndexController.php new file mode 100755 index 0000000..ba37b31 --- /dev/null +++ b/app/modules/Admin/controllers/IndexController.php @@ -0,0 +1,23 @@ +view->setVar('activeinfo','index'); + } + public function indexAction() + { + $this->view->setVar('name', "PHP Web Application using Phalcon MVC"); + } +} diff --git a/app/modules/Admin/controllers/LogController.php b/app/modules/Admin/controllers/LogController.php new file mode 100755 index 0000000..0387e7a --- /dev/null +++ b/app/modules/Admin/controllers/LogController.php @@ -0,0 +1,121 @@ +view->setVar('activeinfo','log'); + } + /** + * log列表 + */ + public function indexAction() + { + $numberPage = 1; + if ($this->request->isPost()) { + $query = Criteria::fromInput($this->di, "Models\Log", $_POST); + $this->persistent->parameters = $query->getParams(); + } else { + $numberPage = $this->request->getQuery("page", "int"); + } + if ($numberPage ==null) { + $this->persistent->parameters = null; + $_SESSION['conditions']=null; + } + if ($this->request->getPost("username") && (!$this->request->getPost("stime") || !$this->request->getPost("etime"))) { + $_SESSION['conditions']=null; + } + $parameters = $this->persistent->parameters; + + if (!is_array($parameters)) { + $parameters = array(); + } + + if ($this->request->getPost("stime") && !$this->request->getPost("etime")) { + $this->flash->success("请输入结束时间"); + } elseif (!$this->request->getPost("stime") && $this->request->getPost("etime")) { + $this->flash->success("请输入开始时间"); + } + + + if ($this->request->getPost("username") || ($this->request->getPost("stime")&&$this->request->getPost("etime"))) { + $sql=""; + $username = $this->request->getPost("username"); + if ($username) { + $sql=" username like '%".$username."%' and "; + } + $stime = $this->request->getPost("stime"); + $etime = $this->request->getPost("etime"); + //$parameters["conditions"] .= " and username like '%".$username."%' "; + //$parameters['bind']= array ( "username" =>"%$username%"); + if ($stime && $etime) { + $parameters["conditions"] = " $sql addtime > '" . $stime . "' and addtime <'" . $etime . "'";//这里的条件不会存到 $this->persistent->parameters里 + $parameters['bind']=null; + $_SESSION['conditions']=$parameters["conditions"]; + } + } + if (!empty($_SESSION['conditions'])) { + $parameters["conditions"]=$_SESSION['conditions']; + $parameters['bind']=null; + } + + if (isset($parameters["conditions"])) { + $builder = $this->modelsManager->createBuilder() + ->columns('*') + ->from('Models\Log') + ->where($parameters['conditions'], $parameters['bind']) + ->orderBy('id desc'); + } else { + $builder = $this->modelsManager->createBuilder() + ->columns('*') + ->from('Models\Log') + ->orderBy('id desc'); + } + + $paginator = new PaginatorQueryBuilder( + array( + "builder" => $builder, + "limit" => 10, + "page" => $numberPage + ) + ); + $this->view->page = $paginator->getPaginate(); + } + + /** + * 删除 + * + * @param string $id + */ + public function deleteAction($id) + { + $log = Log::findFirstByid($id); + if (!$log) { + $this->flash->error("该log不存在"); + return $this->dispatcher->forward(array( + "controller" => "log", + "action" => "index" + )); + } + if (!$log->delete()) { + foreach ($app->getMessages() as $message) { + $this->flash->error($message); + } + return $this->dispatcher->forward(array( + "controller" => "log", + "action" => "index" + )); + } + // $this::logAction('删除Log', "删除Log"); + + $this->flash->success("删除成功"); + $this->response->redirect("log/index"); + } + +} diff --git a/app/modules/Admin/controllers/LoginController.php b/app/modules/Admin/controllers/LoginController.php new file mode 100755 index 0000000..7dd8fc9 --- /dev/null +++ b/app/modules/Admin/controllers/LoginController.php @@ -0,0 +1,150 @@ +session->set('auth', array( + 'id' => $user->id, + 'name' => $user->username + )); + //$this->view->setVar("username", $user->username); + } + + //login + public function indexAction() + { + if ($this->request->isPost()) { + //验证码验证 + $code = $this->request->getPost('code_num'); + if(!($code == $this->session->get('helloweba_num'))){ + $this->flash->error('验证码输入错误'); + }else{ + $username = $this->request->getPost('username'); + $password = sha1($this->request->getPost('password')); + + $user = Admin::findFirst(array( + "username = :username: AND password = :password:", + "bind" => array('username' => $username, 'password' => $password) + )); + + if ($user != false) { + $this->_registerSession($user); + $user->logintime = time(); + $user->save(); + $this->flash->success('Welcome ' . $user->username); + $this->response->redirect("/index"); + } else { + $this->flash->error('username or password error'); + } + } + } + } + + public function imgverAction(){ + $session = new Session(); + $session->start(); + //echo $this->getCode(4,80,39); + echo $this->captcha2(4,20); + } + + //logout + public function logoutAction() + { + $this->session->destroy(); + $this->response->redirect("/login"); + } + public function getCode($num,$w,$h) { + $code = ""; + for ($i = 0; $i < $num; $i++) { + $code .= rand(0, 9); + } + //4位验证码也可以用rand(1000,9999)直接生成 + //将生成的验证码写入session,备验证时用 + $this->session->set('helloweba_num', $code); + //$_SESSION["helloweba_num"] = $code; + //创建图片,定义颜色值 + header("Content-type: image/PNG"); + $im = imagecreate($w, $h); + $black = imagecolorallocate($im, 0, 0, 0); + $gray = imagecolorallocate($im, 200, 200, 200); + $bgcolor = imagecolorallocate($im, 255, 255, 255); + //填充背景 + imagefill($im, 0, 0, $gray); + //画边框 + imagerectangle($im, 0, 0, $w-1, $h-1, $black); + //随机绘制两条虚线,起干扰作用 + $style = array ($black,$black,$black,$black,$black, + $gray,$gray,$gray,$gray,$gray + ); + imagesetstyle($im, $style); + $y1 = rand(0, $h); + $y2 = rand(0, $h); + $y3 = rand(0, $h); + $y4 = rand(0, $h); + imageline($im, 0, $y1, $w, $y3, IMG_COLOR_STYLED); + imageline($im, 0, $y2, $w, $y4, IMG_COLOR_STYLED); + //在画布上随机生成大量黑点,起干扰作用; + for ($i = 0; $i < 80; $i++) { + imagesetpixel($im, rand(0, $w), rand(0, $h), $black); + } + //将数字随机显示在画布上,字符的水平间距和位置都按一定波动范围随机生成 + $strx = rand(3, 8); + for ($i = 0; $i < $num; $i++) { + $strpos = rand(1, 6); + imagestring($im, 5, $strx, $strpos, substr($code, $i, 1), $black); + $strx += rand(8, 12); + } + imagepng($im);//输出图片 + imagedestroy($im);//释放图片所占内存 + } + + public function captcha2($num=4,$size=20, $width=0,$height=0){ + !$width && $width = $num*$size*4/5+5; + !$height && $height = $size + 10; + // 去掉了 0 1 O l 等 + $str = "23456789abcdefghijkmnpqrstuvwxyz"; + $code = ''; + for ($i=0; $i<$num; $i++){ + $code.= $str[mt_rand(0, strlen($str)-1)]; + } + //将生成的验证码写入session,备验证时用 + $this->session->set('helloweba_num', $code); + // 画图像 + $im = imagecreatetruecolor($width,$height); + // 定义要用到的颜色 + $back_color = imagecolorallocate($im, 235, 236, 237); + $boer_color = imagecolorallocate($im, 118, 151, 199); + $text_color = imagecolorallocate($im, mt_rand(0,200), mt_rand(0,120), mt_rand(0,120)); + + // 画背景 + imagefilledrectangle($im,0,0,$width,$height,$back_color); + // 画边框 + imagerectangle($im,0,0,$width-1,$height-1,$boer_color); + // 画干扰线 + for($i=0;$i<5;$i++){ + $font_color = imagecolorallocate($im, mt_rand(0,255), mt_rand(0,255), mt_rand(0,255)); + imagearc($im,mt_rand(-$width,$width),mt_rand(-$height,$height),mt_rand(30,$width*2),mt_rand(20,$height*2),mt_rand(0,360),mt_rand(0,360),$font_color); + } + // 画干扰点 + for($i=0;$i<50;$i++){ + $font_color = imagecolorallocate($im, mt_rand(0,255), mt_rand(0,255), mt_rand(0,255)); + imagesetpixel($im,mt_rand(0,$width),mt_rand(0,$height),$font_color); + } + // 画验证码 + // @imagefttext($im, $size , 0, 5, $size+3, $text_color, 'c://WINDOWS//Fonts//simsun.ttc',$code); + + @imagefttext($im, $size , 0, 5, $size+3, $text_color, dirname(__DIR__).'/views/fonts/simsun.ttc',$code); + header("Cache-Control: max-age=1, s-maxage=1, no-cache, must-revalidate"); + header("Content-type: image/png"); + imagepng($im); + imagedestroy($im); + } +} diff --git a/app/modules/Admin/controllers/ResourceController.php b/app/modules/Admin/controllers/ResourceController.php new file mode 100755 index 0000000..76d4c3c --- /dev/null +++ b/app/modules/Admin/controllers/ResourceController.php @@ -0,0 +1,398 @@ +view->setVar('activeinfo','resource'); + } + /** + * 资源and 操作列表 + */ + public function indexAction() + { + $resources = Resources::find(); + $result = []; + $k=0; + foreach ($resources as $resource) { + $operations = Operations::findByresourceid($resource->resourceid); + $result[] = [ + 'resourceid' => $resource->resourceid, + 'name' => $resource->name, + 'resourceinfo' => $resource->resourceinfo, + ]; + foreach ($operations as $operation) { + $result[$k]['opera'][] = [ + 'operationid' => $operation->operationid, + 'name' => $operation->name, + 'operationinfo' => $operation->operationinfo, + ]; + } + $k++; + } + $this->view->setVar("allresource", $result); + } + + /** + * Displays the creation form + */ + public function newAction() + { + } + + /** + * Displays the creation form + */ + public function addoperaAction($id) + { + $this->view->resourceid = $id; + $this->tag->setDefault("resourceid", $id); + } + + /** + * 编辑 + * + * @param string $id + */ + public function editAction($id) + { + + if (!$this->request->isPost()) { + $resources = Resources::findFirstByresourceid($id); + if (!$resources) { + $this->flash->error("resource was not found"); + return $this->dispatcher->forward(array( + "controller" => "resource", + "action" => "index" + )); + } + + $this->view->resourceid = $resources->resourceid; + $this->tag->setDefault("resourceid", $resources->resourceid); + $this->tag->setDefault("name", $resources->name); + $this->tag->setDefault("resourceinfo", $resources->resourceinfo); + // $this->view->setVar("roleid", $roleid); + + + } + } + + /** + * 编辑操作 + * + * @param string $id + */ + public function editoperaAction($id) + { + + if (!$this->request->isPost()) { + $operation = Operations::findFirstByoperationid($id); + if (!$operation) { + $this->flash->error("operation was not found"); + return $this->dispatcher->forward(array( + "controller" => "resource", + "action" => "index" + )); + } + + $this->view->operationid = $operation->operationid; + $this->tag->setDefault("operationid", $operation->operationid); + $this->tag->setDefault("name", $operation->name); + $this->tag->setDefault("operationinfo", $operation->operationinfo); + // $this->view->setVar("roleid", $roleid); + } + } + + /** + * 添加资源 + */ + public function createAction() + { + + if (!$this->request->isPost()) { + return $this->dispatcher->forward(array( + "controller" => "resource", + "action" => "index" + )); + } + + $resource = new Resources(); + $resource->name = $this->request->getPost("name"); + $resource->resourceinfo = $this->request->getPost("resourceinfo"); + + $resourcename = Resources::findFirst(array( + "name = :name:", + "bind" => array('name' => $resource->name) + )); + + if ($resourcename != false) { + $this->flash->error('该资源名已存在'); + return $this->dispatcher->forward(array( + "controller" => "resource", + "action" => "new" + )); + } + + if (!$resource->save()) { + foreach ($resource->getMessages() as $message) { + $this->flash->error($message); + } + + return $this->dispatcher->forward(array( + "controller" => "resource", + "action" => "new" + )); + } + + $this::logAction('添加资源', "添加了资源:$resource->name"); + $this->flash->success("设置成功"); + /*return $this->dispatcher->forward(array( + "controller" => "resource", + "action" => "index" + ));*/ + $this->response->redirect("resource/index"); + } + + /** + * 添加资源 + */ + public function createoperaAction() + { + if (!$this->request->isPost()) { + return $this->dispatcher->forward(array( + "controller" => "resource", + "action" => "index" + )); + } + + $operation = new Operations(); + $operation->name = $this->request->getPost("name"); + $operation->operationinfo = $this->request->getPost("operationinfo"); + $operation->resourceid = $this->request->getPost("resourceid"); + + $operationname = Operations::findFirst(array( + "name = :name:", + "bind" => array('name' => $operation->name) + )); + + + + if (!$operation->save()) { + foreach ($operation->getMessages() as $message) { + $this->flash->error($message); + } + + return $this->dispatcher->forward(array( + "controller" => "resource", + "action" => "addopera", + "params" => [$operation->resourceid], + )); + } + + $this::logAction('添加操作', "添加了操作:$operation->name"); + $this->flash->success("设置成功"); + /*return $this->dispatcher->forward(array( + "controller" => "resource", + "action" => "index" + ));*/ + $this->response->redirect("resource/index"); + } + /** + * Saves a resource edited + * + */ + public function saveAction() + { + if (!$this->request->isPost()) { + return $this->dispatcher->forward(array( + "controller" => "resource", + "action" => "index" + )); + } + + $id = $this->request->getPost("resourceid"); + + $resource = Resources::findFirstByresourceid($id); + if (!$resource) { + $this->flash->error("该资源不存在"); + + /*return $this->dispatcher->forward(array( + "controller" => "resource", + "action" => "index" + ));*/ + $this->response->redirect("resource/index"); + } + + $resource->name = $this->request->getPost("name"); + $resource->resourceid = $this->request->getPost("resourceid"); + $resource->resourceinfo = $this->request->getPost("resourceinfo"); + + if (!$resource->save()) { + foreach ($resource->getMessages() as $message) { + $this->flash->error($message); + } + + return $this->dispatcher->forward(array( + "controller" => "resource", + "action" => "edit", + "params" => array($resource->resourceid) + )); + } + $this::logAction('修改资源', "修改了资源:$resource->name"); + + $this->flash->success("修改成功"); + + /*return $this->dispatcher->forward(array( + "controller" => "resource", + "action" => "index" + ));*/ + $this->response->redirect("resource/index"); + } + + /** + * Saves a operation edited + * + */ + public function saveoperaAction() + { + if (!$this->request->isPost()) { + return $this->dispatcher->forward(array( + "controller" => "resource", + "action" => "index" + )); + } + + $id = $this->request->getPost("operationid"); + + $operation = Operations::findFirstByoperationid($id); + if (!$operation) { + $this->flash->error("该操作不存在"); + + /*return $this->dispatcher->forward(array( + "controller" => "resource", + "action" => "index" + ));*/ + $this->response->redirect("resource/index"); + } + + $operation->name = $this->request->getPost("name"); + $operation->operationid = $this->request->getPost("operationid"); + $operation->operationinfo = $this->request->getPost("operationinfo"); + + if (!$operation->save()) { + foreach ($operation->getMessages() as $message) { + $this->flash->error($message); + } + + return $this->dispatcher->forward(array( + "controller" => "resource", + "action" => "editopera", + "params" => array($operation->operationid) + )); + } + $this::logAction('修改操作', "修改了操作:$operation->name"); + + $this->flash->success("修改成功"); + + /*return $this->dispatcher->forward(array( + "controller" => "resource", + "action" => "index" + ));*/ + $this->response->redirect("resource/index"); + } + /** + * Deletes a resrouce + * + * @param string $id + */ + public function deleteAction($id) + { + + $resource = Resources::findFirstByresourceid($id); + if (!$resource) { + $this->flash->error("resource was not found"); + + return $this->dispatcher->forward(array( + "controller" => "resource", + "action" => "index" + )); + } + + if (!$resource->delete()) { + foreach ($resource->getMessages() as $message) { + $this->flash->error($message); + } + + return $this->dispatcher->forward(array( + "controller" => "resource", + "action" => "search" + )); + } + $access=Aclaccess::findByresourceid($resource->resourceid); + $access->delete(); + $opra=Operations::findByresourceid($resource->resourceid); + $opra->delete(); + + $this::logAction('删除资源', "删除了资源:$resource->name"); + + $this->flash->success("删除成功"); + + /*return $this->dispatcher->forward(array( + "controller" => "resource", + "action" => "index" + ));*/ + $this->response->redirect("resource/index"); + } + + /** + * Deletes a operation + * + * @param string $id + */ + public function deleteoperaAction($id) + { + + $operation = Operations::findFirstByoperationid($id); + if (!$operation) { + $this->flash->error("operation was not found"); + + return $this->dispatcher->forward(array( + "controller" => "resource", + "action" => "index" + )); + } + + if (!$operation->delete()) { + foreach ($operation->getMessages() as $message) { + $this->flash->error($message); + } + + return $this->dispatcher->forward(array( + "controller" => "resource", + "action" => "index" + )); + } + $this::logAction('删除操作', "删除了操作:$operation->name"); + + $this->flash->success("删除成功"); + + /*return $this->dispatcher->forward(array( + "controller" => "resource", + "action" => "index" + ));*/ + $this->response->redirect("resource/index"); + } +} diff --git a/app/modules/Admin/controllers/RoleController.php b/app/modules/Admin/controllers/RoleController.php new file mode 100755 index 0000000..54edb34 --- /dev/null +++ b/app/modules/Admin/controllers/RoleController.php @@ -0,0 +1,339 @@ +view->setVar('activeinfo','role'); + } + /** + * 角色列表 + */ + public function indexAction() + { + $numberPage = 1; + if ($this->request->isPost()) { + $query = Criteria::fromInput($this->di, "Models\Role", $_POST); + $this->persistent->parameters = $query->getParams(); + } else { + $numberPage = $this->request->getQuery("page", "int"); + } + if ($numberPage ==null) { + $this->persistent->parameters = null; + } + + $parameters = $this->persistent->parameters; + if (!is_array($parameters)) { + $parameters = array(); + } + + if (isset($parameters["conditions"])) { + $builder = $this->modelsManager->createBuilder() + ->columns('*') + ->from('Models\Role') + ->where($parameters['conditions'], $parameters['bind']) + ->orderBy('roleid'); + } else { + $builder = $this->modelsManager->createBuilder() + ->columns('*') + ->from('Models\Role') + ->orderBy('roleid'); + } + + $paginator = new PaginatorQueryBuilder( + array( + "builder" => $builder, + "limit" => 10, + "page" => $numberPage + ) + ); + $this->view->page = $paginator->getPaginate(); + } + + /** + * Displays the creation form + */ + public function newAction() + { + } + + /** + * 编辑 + * + * @param string $id + */ + public function editAction($id) + { + if (!$this->request->isPost()) { + $role = Role::findFirstByroleid($id); + if (!$role) { + $this->flash->error("role was not found"); + return $this->dispatcher->forward(array( + "controller" => "role", + "action" => "index" + )); + } + + $this->view->roleid = $role->roleid; + $this->tag->setDefault("roleid", $role->roleid); + $this->tag->setDefault("rolename", $role->rolename); + $this->tag->setDefault("roleinfo", $role->roleinfo); + //$this->view->setVar("roleid", $roleid); + } + } + + /** + * 添加角色 + */ + public function createAction() + { + + if (!$this->request->isPost()) { + return $this->dispatcher->forward(array( + "controller" => "role", + "action" => "index" + )); + } + + $role = new Role(); + + $role->rolename = $this->request->getPost("rolename"); + $role->roleinfo = $this->request->getPost("roleinfo"); + + $rolename = Role::findFirst(array( + "rolename = :rolename:", + "bind" => array('rolename' => $role->rolename) + )); + + if ($rolename != false) { + $this->flash->error('该名称已存在'); + return $this->dispatcher->forward(array( + "controller" => "role", + "action" => "new" + )); + } + + if (!$role->save()) { + foreach ($role->getMessages() as $message) { + $this->flash->error($message); + } + + return $this->dispatcher->forward(array( + "controller" => "role", + "action" => "new" + )); + } + + $this::logAction('添加角色', "添加了角色:$role->rolename"); + $this->flash->success("设置成功"); + /*return $this->dispatcher->forward(array( + "controller" => "role", + "action" => "index" + ));*/ + $this->response->redirect("role/index"); + } + + /** + * Saves a role edited + * + */ + public function saveAction() + { + if (!$this->request->isPost()) { + return $this->dispatcher->forward(array( + "controller" => "role", + "action" => "index" + )); + } + + $roleid = $this->request->getPost("roleid"); + + $role = Role::findFirstByroleid($roleid); + if (!$role) { + $this->flash->error("该角色不存在"); + + /*return $this->dispatcher->forward(array( + "controller" => "role", + "action" => "index" + ));*/ + $this->response->redirect("role/index"); + } + $role->rolename = $this->request->getPost("rolename"); + $role->roleinfo = $this->request->getPost("roleinfo"); + $role->roleid = $this->request->getPost("roleid"); + /*$role->logintime = $this->request->getPost("logintime"); + $role->regtime = $this->request->getPost("regtime");*/ + + + if (!$role->save()) { + foreach ($role->getMessages() as $message) { + $this->flash->error($message); + } + + return $this->dispatcher->forward(array( + "controller" => "role", + "action" => "edit", + "params" => array($role->roleid) + )); + } + $this::logAction('修改角色', "修改了角色:$role->rolename"); + + $this->flash->success("修改成功"); + + /*return $this->dispatcher->forward(array( + "controller" => "role", + "action" => "index" + ));*/ + $this->response->redirect("role/index"); + } + + /** + * Deletes a role + * + * @param string $id + */ + public function deleteAction($id) + { + + $role = Role::findFirstByroleid($id); + if (!$role) { + $this->flash->error("role was not found"); + + return $this->dispatcher->forward(array( + "controller" => "role", + "action" => "index" + )); + } + $access=Aclaccess::findByroleid($role->roleid); + + if (!$role->delete()) { + foreach ($role->getMessages() as $message) { + $this->flash->error($message); + } + + return $this->dispatcher->forward(array( + "controller" => "role", + "action" => "index" + )); + } + $access->delete(); + $this::logAction('删除角色', "删除了角色:$role->rolename"); + + $this->flash->success("删除成功"); + + /*return $this->dispatcher->forward(array( + "controller" => "role", + "action" => "index" + ));*/ + $this->response->redirect("role/index"); + } + + /* + * 权限设置页*/ + public function rolesetAction($id) + { + $phql = "SELECT c.*,b.* FROM \Models\Aclaccess c left join \Models\Resources b WHERE c.roleid = $id and b.resourceid=c.resourceid "; + $access = $this->modelsManager->executeQuery($phql); + $resources = Resources::find(); + $result = []; + $results = []; + foreach ($access as $access) { + //$operations = Operations::findByresourceid($resource->resourceid); + $result[$access->b->resourceid][] = [ + 'resourceid' => $access->b->resourceid, + 'name' => $access->b->name, + 'resourceinfo' => $access->b->resourceinfo, + ]; + } + + foreach ($resources as $resource) { + //$operations = Operations::findByresourceid($resource->resourceid); + $results[$resource->resourceid][] = [ + 'resourceid' => $resource->resourceid, + 'name' => $resource->name, + 'resourceinfo' => $resource->resourceinfo, + ]; + } + foreach ($results as $key => $val) { + if (isset($result[$key]) && $result[$key] ===$results[$key]) { + $results[$key]['selected']='1'; + } + } + $this->view->setVar("allresource", $results); + + $this->view->roleid = $id; + $this->tag->setDefault("roleid", $id); + } + + /** + * Saves a role edited + * + */ + public function saveaccessAction() + { + if (!$this->request->isPost()) { + return $this->dispatcher->forward(array( + "controller" => "role", + "action" => "index" + )); + } + + $roleid = $this->request->getPost("roleid"); + $role = Role::findFirstByroleid($roleid); + if (!$role) { + $this->flash->error("该角色不存在"); + /*return $this->dispatcher->forward(array( + "controller" => "role", + "action" => "index" + ));*/ + $this->response->redirect("role/index"); + } + + $access = Aclaccess::findByroleid($roleid); + if (!$access->delete()) { + foreach ($access->getMessages() as $message) { + $this->flash->error($message); + } + return $this->dispatcher->forward(array( + "controller" => "role", + "action" => "index" + )); + } + + $acl = $this->request->getPost("access"); + foreach ($acl as $v) { + $aclaccess = new Aclaccess(); + $aclaccess->roleid = $this->request->getPost("roleid"); + $aclaccess->resourceid = $v; + $aclaccess->save(); + + if (!$aclaccess->save()) { + foreach ($aclaccess->getMessages() as $message) { + $this->flash->error($message); + } + + return $this->dispatcher->forward(array( + "controller" => "role", + "action" => "new" + )); + } + } + + $this::logAction('修改权限', "修改了权限"); + $this->flash->success("修改成功"); + $this->response->redirect("role/index"); + } +} diff --git a/app/modules/Admin/models/RuntimeError.php b/app/modules/Admin/models/RuntimeError.php new file mode 100755 index 0000000..e2bd2ff --- /dev/null +++ b/app/modules/Admin/models/RuntimeError.php @@ -0,0 +1,12 @@ +setSource("runtimeError"); + } +} diff --git a/app/modules/Admin/views/admin/edit.phtml b/app/modules/Admin/views/admin/edit.phtml new file mode 100755 index 0000000..be23f00 --- /dev/null +++ b/app/modules/Admin/views/admin/edit.phtml @@ -0,0 +1,78 @@ +partial("public/header") ?> +
+ + partial("public/left") ?> + + + +
+ +
+
编辑管理员
+
+ +
+
+
+
+
+ 返回 +
+
+
+
+
+ +
+
+ tag->form(["admin/save","class"=>"am-form am-form-horizontal lszh-validate"]) ?> + + + getContent(); ?> + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + tag->textField(array("username", "size" => 30,"readonly"=>"readonly")) ?> +
+ + +
+ tag->passwordField(array("password", "size" => 30,"minlength"=>"4","maxlength"=>"16", 'placeholder' => '请输入密码',"required"=>"","autocomplete"=>"off" ,"data-validation-message" => "请输入密码,4-16位")) ?> +
+
*
+ + + +
tag->hiddenField("id") ?>tag->submitButton(["设置","class"=>"am-btn am-btn-primary"]) ?>
+ +
+ +
+ + +
+partial("public/footer") ?> \ No newline at end of file diff --git a/app/modules/Admin/views/admin/index.phtml b/app/modules/Admin/views/admin/index.phtml new file mode 100755 index 0000000..2f845a0 --- /dev/null +++ b/app/modules/Admin/views/admin/index.phtml @@ -0,0 +1,136 @@ +partial("public/header") ?> +
+ + partial("public/left") ?> + + + +
+ +
+
管理员管理
+
+ +
+
+
+
+
+ 新增 +
+
+
+
+ + tag->form(array("admin/index", "autocomplete" => "off")) ?> +
+
+
+ + + + + + +
+
+
+ +
+ +
+
+ + + getContent(); ?> + + + + + + + + + + + + + items as $admin) { ?> + + + + + + + + + + + +
ID用户名注册时间登录时间角色管理
id ?>username ?>regtime) ?>logintime) + echo date('Y-m-d H:i:s', $admin->logintime); + else + echo '暂无登录'; + ?> + roleid == $admin->roleid){echo $role->rolename;} + } + + ?> + tag->linkTo(array("admin/edit/" . $admin->id, "编辑")); ?> + 删除 +
+ total_pages > 1){?> +
+
+
    +
  • current, "/", $page->total_pages ?>
  • +
  • tag->linkTo("admin/index?page=1", "首页") ?>
  • +
  • tag->linkTo("admin/index?page=" . $page->before, "上一页") ?>
  • +
  • tag->linkTo("admin/index?page=" . $page->next, "下一页") ?>
  • +
  • tag->linkTo("admin/index?page=" . $page->last, "末页") ?>
  • + +
+
+
+ +
+
+
+ + +
+
+
+
+
+
+ +
+
+partial("public/footer") ?> + \ No newline at end of file diff --git a/app/modules/Admin/views/admin/new.phtml b/app/modules/Admin/views/admin/new.phtml new file mode 100755 index 0000000..5256bc2 --- /dev/null +++ b/app/modules/Admin/views/admin/new.phtml @@ -0,0 +1,89 @@ +partial("public/header") ?> +
+ + partial("public/left") ?> + + + +
+ +
+
添加管理员
+
+ +
+
+
+
+
+ 返回 +
+
+
+
+
+ +
+
+ tag->form(["admin/create","class"=>"am-form am-form-horizontal lszh-validate"]) ?> + + + getContent(); ?> + + + + + + + + + + + + + + + + + + + + + + +
+ + +
+ tag->textField(array("username", "size" => 30, 'placeholder' => '请输入用户名',"maxlength"=>"30","class"=>"js-pattern-adminName","required"=>"","data-validation-message" => "请输入用户名(限英文或数字)")) ?> +
+
*
+ + +
+ tag->passwordField(array("password", "size" => 30,"minlength"=>"4","maxlength"=>"16", 'placeholder' => '请输入密码',"required"=>"","autocomplete"=>"off" ,"data-validation-message" => "请输入密码,4-16位")) ?> +
+
*
+ + +
+ +
+
tag->submitButton(["提交","class"=>"am-btn am-btn-primary"]) ?>
+ tag->endForm() ?> +
+ +
+ + +
+ +partial("public/footer") ?> \ No newline at end of file diff --git a/app/modules/Admin/views/admin/search.phtml b/app/modules/Admin/views/admin/search.phtml new file mode 100755 index 0000000..c900c4c --- /dev/null +++ b/app/modules/Admin/views/admin/search.phtml @@ -0,0 +1,54 @@ + + +getContent(); ?> + + + + + + +
+ tag->linkTo(array("admin/index", "Go Back")); ?> + + tag->linkTo(array("admin/new", "Create ")); ?> +
+ + + + + + + + + + + + + items as $admin) { ?> + + + + + + + + + + + + + + + + +
IdUsernamePasswordLogintimeRegtime
id ?>username ?>password ?>logintime ?>regtime ?>tag->linkTo(array("admin/edit/" . $admin->id, "Edit")); ?>tag->linkTo(array("admin/delete/" . $admin->id, "Delete")); ?>
+ + + + + + + + +
tag->linkTo("admin/search", "First") ?>tag->linkTo("admin/search?page=" . $page->before, "Previous") ?>tag->linkTo("admin/search?page=" . $page->next, "Next") ?>tag->linkTo("admin/search?page=" . $page->last, "Last") ?>current, "/", $page->total_pages ?>
+
diff --git a/app/modules/Admin/views/adminset/set.phtml b/app/modules/Admin/views/adminset/set.phtml new file mode 100644 index 0000000..bb5bb8e --- /dev/null +++ b/app/modules/Admin/views/adminset/set.phtml @@ -0,0 +1,68 @@ +partial("public/header") ?> +
+ + partial("public/left") ?> + + + +
+ +
+
编辑管理员
+
+ +
+
+
+
+
+ 返回 +
+
+
+
+
+ +
+
+ tag->form(["adminset/save","class"=>"am-form am-form-horizontal lszh-validate"]) ?> + + + getContent(); ?> + + + + + + + + + + + + + + + + + + +
+ + + tag->textField(array("username", "size" => 30,"readonly"=>"readonly")) ?> +
+ + +
+ tag->passwordField(array("password", "size" => 30,"minlength"=>"4","maxlength"=>"16", 'placeholder' => '请输入密码',"required"=>"","autocomplete"=>"off" ,"data-validation-message" => "请输入密码,4-16位")) ?> +
+
*
tag->hiddenField("id") ?>tag->submitButton(["设置","class"=>"am-btn am-btn-primary"]) ?>
+ +
+ +
+ + +
+partial("public/footer") ?> \ No newline at end of file diff --git a/app/modules/Admin/views/app/index.phtml b/app/modules/Admin/views/app/index.phtml new file mode 100755 index 0000000..6658813 --- /dev/null +++ b/app/modules/Admin/views/app/index.phtml @@ -0,0 +1,122 @@ +partial("public/header") ?> +
+ + partial("public/left") ?> + + + +
+ +
+
APP管理
+
+ +
+
+
+
+
+ 新增 +
+
+
+
+ + tag->form(array("app/index", "autocomplete" => "off")) ?> +
+
+
+ + + + + + +
+
+
+ +
+ +
+
+ + + getContent(); ?> + + + + + + + + + + + + items as $app) { ?> + + + + + + + + + + +
APP_ID用户名Private_Key备注管理
app_id ?>username ?>private_key ?>info ?> + 删除 +
+ total_pages > 1){?> +
+
+
    +
  • current, "/", $page->total_pages ?>
  • +
  • tag->linkTo("app/index?page=1", "首页") ?>
  • +
  • tag->linkTo("app/index?page=" . $page->before, "上一页") ?>
  • +
  • tag->linkTo("app/index?page=" . $page->next, "下一页") ?>
  • +
  • tag->linkTo("app/index?page=" . $page->last, "末页") ?>
  • + +
+
+
+ +
+
+
+ + +
+
+
+
+
+
+ +
+
+partial("public/footer") ?> + \ No newline at end of file diff --git a/app/modules/Admin/views/app/new.phtml b/app/modules/Admin/views/app/new.phtml new file mode 100755 index 0000000..0b2db1f --- /dev/null +++ b/app/modules/Admin/views/app/new.phtml @@ -0,0 +1,71 @@ +partial("public/header") ?> +
+ + partial("public/left") ?> + + + +
+ +
+
添加APP
+
+ +
+
+
+
+
+ 返回 +
+
+
+
+
+ +
+
+ tag->form(["app/create","class"=>"am-form am-form-horizontal lszh-validate"]) ?> + + + getContent(); ?> + + + + + + + + + + + + + + + + + + + +
+ + +
+ tag->textField(array("username", "size" => 30, 'placeholder' => '请输入用户名',"maxlength"=>"30","required"=>"")) ?> +
+
*
+ + +
+ tag->textArea(array("info", "size" => 50, 'placeholder' => '',"maxlength"=>"100")) ?> +
+
tag->submitButton(["提交","class"=>"am-btn am-btn-primary"]) ?>
+ tag->endForm() ?> +
+ +
+ + +
+partial("public/footer") ?> \ No newline at end of file diff --git a/app/modules/Admin/views/fonts/simsun.ttc b/app/modules/Admin/views/fonts/simsun.ttc new file mode 100644 index 0000000..23d5c4a Binary files /dev/null and b/app/modules/Admin/views/fonts/simsun.ttc differ diff --git a/app/modules/Admin/views/index.volt b/app/modules/Admin/views/index.volt new file mode 100755 index 0000000..8a923ef --- /dev/null +++ b/app/modules/Admin/views/index.volt @@ -0,0 +1 @@ +{{ content() }} \ No newline at end of file diff --git a/app/views/index.phtml b/app/modules/Admin/views/index/index.phtml similarity index 100% rename from app/views/index.phtml rename to app/modules/Admin/views/index/index.phtml diff --git a/app/views/admin/index.volt b/app/modules/Admin/views/index/index.volt old mode 100644 new mode 100755 similarity index 70% rename from app/views/admin/index.volt rename to app/modules/Admin/views/index/index.volt index acb3bf8..7367ab8 --- a/app/views/admin/index.volt +++ b/app/modules/Admin/views/index/index.volt @@ -1,14 +1,14 @@ partial("public/header") ?>
- + partial("public/left") ?>
-
-
welcome
+
+
欢迎登录智慧监控管理系统
diff --git a/app/modules/Admin/views/layouts/itv_admin.phtml b/app/modules/Admin/views/layouts/itv_admin.phtml new file mode 100755 index 0000000..3f40ba5 --- /dev/null +++ b/app/modules/Admin/views/layouts/itv_admin.phtml @@ -0,0 +1,3 @@ +
+ getContent(); ?> +
\ No newline at end of file diff --git a/app/modules/Admin/views/log/index.phtml b/app/modules/Admin/views/log/index.phtml new file mode 100755 index 0000000..a412c28 --- /dev/null +++ b/app/modules/Admin/views/log/index.phtml @@ -0,0 +1,153 @@ +partial("public/header") ?> + + + + +
+ + partial("public/left") ?> + + + +
+ +
+
操作日志管理
+
+ +
+
+
+
+
+ 浏览 +
+
+
+
+ + tag->form(array("log/index", "autocomplete" => "off")) ?> +
+ + +
+ + + +
+ +
+
+ + + + +
+
+ + +
+
+ + + + +
+
+
+ + +
+ + + +
+ +
+ +
+
+ + + getContent(); ?> + + + + + + + + + + + + + + items as $log) { ?> + + + + + + + + + + + + +
ID用户名IP标题备注时间管理
id ?>username ?>ip ?>title ?>content ?>addtime ?> + 删除 +
+ total_pages > 1){?> +
+
+
    +
  • current, "/", $page->total_pages ?>
  • +
  • tag->linkTo("log/index?page=1", "首页") ?>
  • +
  • tag->linkTo("log/index?page=" . $page->before, "上一页") ?>
  • +
  • tag->linkTo("log/index?page=" . $page->next, "下一页") ?>
  • +
  • tag->linkTo("log/index?page=" . $page->last, "末页") ?>
  • + +
+
+
+ +
+
+
+ + +
+
+
+
+
+
+ +
+
+partial("public/footer") ?> + \ No newline at end of file diff --git a/app/modules/Admin/views/log/new.phtml b/app/modules/Admin/views/log/new.phtml new file mode 100755 index 0000000..d6ae240 --- /dev/null +++ b/app/modules/Admin/views/log/new.phtml @@ -0,0 +1,64 @@ +partial("public/header") ?> +
+ + partial("public/left") ?> + + + +
+ +
+
设置APP
+
+ +
+
+
+
+
+ 返回 +
+
+
+
+
+ +
+
+ tag->form(["app/create","class"=>"am-form am-form-horizontal"]) ?> + + + getContent(); ?> + + + + + + + + + + + + + + + + +
+ + + tag->textField(array("username", "size" => 30, 'placeholder' => '请输入用户名')) ?> +
+ + + tag->textArea(array("info", "size" => 50, 'placeholder' => '')) ?> +
tag->submitButton(["提交","class"=>"am-btn am-btn-primary"]) ?>
+ tag->endForm() ?> +
+ +
+ + +
+partial("public/footer") ?> \ No newline at end of file diff --git a/app/modules/Admin/views/login/index.phtml b/app/modules/Admin/views/login/index.phtml new file mode 100755 index 0000000..c52dd2d --- /dev/null +++ b/app/modules/Admin/views/login/index.phtml @@ -0,0 +1,94 @@ + + + + + + 登录 - 智慧监控管理系统 + + + + + + + + + + + + +
+
+
+
+
+

智慧监控

+
+
+ + + + tag->textField(array("username", "size" => "30","style"=>" border:1px solid #DDDDDD; background-color:transparent")) ?> +
+ + + tag->passwordField(array("password", "size" => "30","style"=>" border:1px solid #DDDDDD; background-color:transparent")) ?> +
+ +
+ + +
+
+ +
+ +
+
+getContent(); ?> +

Copyright © 2016 iTV All Rights Reserved.

+
+
+ + + + + + diff --git a/app/modules/Admin/views/public/footer.phtml b/app/modules/Admin/views/public/footer.phtml new file mode 100755 index 0000000..edb2790 --- /dev/null +++ b/app/modules/Admin/views/public/footer.phtml @@ -0,0 +1,65 @@ + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/app/modules/Admin/views/public/header.phtml b/app/modules/Admin/views/public/header.phtml new file mode 100755 index 0000000..b6e7379 --- /dev/null +++ b/app/modules/Admin/views/public/header.phtml @@ -0,0 +1,48 @@ + + + + + + 管理系统 + + + + + + + + + + + + + + +
+
+ 管理系统 +
+ + + +
+ + +
+
\ No newline at end of file diff --git a/app/modules/Admin/views/public/left.phtml b/app/modules/Admin/views/public/left.phtml new file mode 100755 index 0000000..2e8641c --- /dev/null +++ b/app/modules/Admin/views/public/left.phtml @@ -0,0 +1,57 @@ + + + + + + + + + + \ No newline at end of file diff --git a/app/modules/Admin/views/resource/addopera.phtml b/app/modules/Admin/views/resource/addopera.phtml new file mode 100755 index 0000000..fe7277e --- /dev/null +++ b/app/modules/Admin/views/resource/addopera.phtml @@ -0,0 +1,69 @@ +partial("public/header") ?> +
+ + partial("public/left") ?> + + + +
+ +
+
设置操作
+
+ +
+
+
+
+
+ 返回 +
+
+
+
+
+ +
+
+ tag->form(["resource/createopera","class"=>"am-form am-form-horizontal lszh-validate"]) ?> + + + getContent(); ?> + + + + + + + + + + + + + + + + + +
+ + +
+ tag->textField(array("name", "size" => 100, 'placeholder' => '请输入操作名称,*代表全部操作',"required"=>"","data-validation-message" => "请输入操作名称","maxlength"=>"100")) ?> +
+
*
+ + +
+ tag->textField(array("operationinfo", "size" => 30, 'placeholder' => '请输入操作描述',"maxlength"=>"30")) ?> +
+
tag->hiddenField("resourceid") ?>tag->submitButton(["提交","class"=>"am-btn am-btn-primary"]) ?>
+ tag->endForm() ?> +
+ +
+ + +
+partial("public/footer") ?> \ No newline at end of file diff --git a/app/modules/Admin/views/resource/edit.phtml b/app/modules/Admin/views/resource/edit.phtml new file mode 100755 index 0000000..71a5d30 --- /dev/null +++ b/app/modules/Admin/views/resource/edit.phtml @@ -0,0 +1,69 @@ +partial("public/header") ?> +
+ + partial("public/left") ?> + + + +
+ +
+
编辑资源
+
+ +
+
+
+
+
+ 返回 +
+
+
+
+
+ +
+
+ tag->form(["resource/save","class"=>"am-form am-form-horizontal lszh-validate"]) ?> + + + getContent(); ?> + + + + + + + + + + + + + + + + + +
+ + +
+ tag->textField(array("name", "size" => 100,'placeholder' => '请输入资源名称',"required"=>"","data-validation-message" => "请输入资源名称","maxlength"=>"100")) ?> +
+
*
+ + +
+ tag->textField(array("resourceinfo", "size" => 30, 'placeholder' => '请输入资源描述',"maxlength"=>"30")) ?> +
+
tag->hiddenField("resourceid") ?>tag->submitButton(["设置","class"=>"am-btn am-btn-primary"]) ?>
+ +
+ +
+ + +
+partial("public/footer") ?> \ No newline at end of file diff --git a/app/modules/Admin/views/resource/editopera.phtml b/app/modules/Admin/views/resource/editopera.phtml new file mode 100755 index 0000000..827d172 --- /dev/null +++ b/app/modules/Admin/views/resource/editopera.phtml @@ -0,0 +1,69 @@ +partial("public/header") ?> +
+ + partial("public/left") ?> + + + +
+ +
+
设置操作
+
+ +
+
+
+
+
+ 返回 +
+
+
+
+
+ +
+
+ tag->form(["resource/saveopera","class"=>"am-form am-form-horizontal lszh-validate"]) ?> + + + getContent(); ?> + + + + + + + + + + + + + + + + + +
+ + +
+ tag->textField(array("name", "size" => 100,'placeholder' => '请输入操作名称,*代表全部操作',"required"=>"","data-validation-message" => "请输入操作名称","maxlength"=>"100")) ?> +
+
*
+ + +
+ tag->textField(array("operationinfo", "size" => 30,"maxlength"=>"30")) ?> +
+
tag->hiddenField("operationid") ?>tag->submitButton(["设置","class"=>"am-btn am-btn-primary"]) ?>
+ +
+ +
+ + +
+partial("public/footer") ?> \ No newline at end of file diff --git a/app/modules/Admin/views/resource/index.phtml b/app/modules/Admin/views/resource/index.phtml new file mode 100755 index 0000000..5ba97db --- /dev/null +++ b/app/modules/Admin/views/resource/index.phtml @@ -0,0 +1,107 @@ +partial("public/header") ?> +
+ + partial("public/left") ?> + + + +
+ +
+
资源管理
+
+ +
+
+
+
+ +
+
+
+
+ +
+
+ + + getContent(); ?> + + + + + + + + + + + + + + + + + + + + + + + +
ID资源名称资源描述操作列表管理
+ + +
+ () [tag->linkTo(array("resource/editopera/" . $opera['operationid'], "编辑")); ?>] [删除] +
+ + +
+ tag->linkTo(array("resource/addopera/" . $resouce['resourceid'], "添加操作")); ?> + tag->linkTo(array("resource/edit/" . $resouce['resourceid'], "编辑")); ?> + + 删除 + +
+ +
+
+
+ + +
+
+
+
+
+
+ +
+
+partial("public/footer") ?> + \ No newline at end of file diff --git a/app/modules/Admin/views/resource/new.phtml b/app/modules/Admin/views/resource/new.phtml new file mode 100755 index 0000000..59875da --- /dev/null +++ b/app/modules/Admin/views/resource/new.phtml @@ -0,0 +1,69 @@ +partial("public/header") ?> +
+ + partial("public/left") ?> + + + +
+ +
+
添加资源
+
+ +
+
+
+
+
+ 返回 +
+
+
+
+
+ +
+
+ tag->form(["resource/create","class"=>"am-form am-form-horizontal lszh-validate"]) ?> + + + getContent(); ?> + + + + + + + + + + + + + + + + + +
+ + +
+ tag->textField(array("name", "size" => 100, 'placeholder' => '请输入资源名称',"required"=>"","data-validation-message" => "请输入资源名称","maxlength"=>"100")) ?> +
+
*
+ + +
+ tag->textField(array("resourceinfo", "size" => 30, 'placeholder' => '请输入资源描述',"maxlength"=>"30")) ?> +
+
tag->submitButton(["提交","class"=>"am-btn am-btn-primary"]) ?>
+ tag->endForm() ?> +
+ +
+ + +
+partial("public/footer") ?> \ No newline at end of file diff --git a/app/modules/Admin/views/resource/search.phtml b/app/modules/Admin/views/resource/search.phtml new file mode 100755 index 0000000..c900c4c --- /dev/null +++ b/app/modules/Admin/views/resource/search.phtml @@ -0,0 +1,54 @@ + + +getContent(); ?> + + + + + + +
+ tag->linkTo(array("admin/index", "Go Back")); ?> + + tag->linkTo(array("admin/new", "Create ")); ?> +
+ + + + + + + + + + + + + items as $admin) { ?> + + + + + + + + + + + + + + + + +
IdUsernamePasswordLogintimeRegtime
id ?>username ?>password ?>logintime ?>regtime ?>tag->linkTo(array("admin/edit/" . $admin->id, "Edit")); ?>tag->linkTo(array("admin/delete/" . $admin->id, "Delete")); ?>
+ + + + + + + + +
tag->linkTo("admin/search", "First") ?>tag->linkTo("admin/search?page=" . $page->before, "Previous") ?>tag->linkTo("admin/search?page=" . $page->next, "Next") ?>tag->linkTo("admin/search?page=" . $page->last, "Last") ?>current, "/", $page->total_pages ?>
+
diff --git a/app/modules/Admin/views/role/edit.phtml b/app/modules/Admin/views/role/edit.phtml new file mode 100755 index 0000000..b9acec5 --- /dev/null +++ b/app/modules/Admin/views/role/edit.phtml @@ -0,0 +1,69 @@ +partial("public/header") ?> +
+ + partial("public/left") ?> + + + +
+ +
+
编辑角色
+
+ +
+
+
+
+
+ 返回 +
+
+
+
+
+ +
+
+ tag->form(["role/save","class"=>"am-form am-form-horizontal lszh-validate"]) ?> + + + getContent(); ?> + + + + + + + + + + + + + + + + + +
+ + +
+ tag->textField(array("rolename", "size" => 30,'placeholder' => '请输入角色名',"maxlength"=>"30","required"=>"","class"=>"js-pattern-english","data-validation-message" => "请输入角色名称(英文)")) ?> +
+
*
+ + +
+ tag->textField(array("roleinfo", "size" => 30, 'placeholder' => '请输入角色描述',"maxlength"=>"30","required"=>"","class"=>"js-pattern-chinese","data-validation-message" => "请输入角色名称(中文)")) ?> +
+
*
tag->hiddenField("roleid") ?>tag->submitButton(["设置","class"=>"am-btn am-btn-primary"]) ?>
+ +
+ +
+ + +
+partial("public/footer") ?> \ No newline at end of file diff --git a/app/modules/Admin/views/role/index.phtml b/app/modules/Admin/views/role/index.phtml new file mode 100755 index 0000000..06857ba --- /dev/null +++ b/app/modules/Admin/views/role/index.phtml @@ -0,0 +1,124 @@ +partial("public/header") ?> +
+ + partial("public/left") ?> + + + +
+ +
+
角色管理
+
+ +
+
+
+
+
+ 新增 +
+
+
+
+ + tag->form(array("role/index", "autocomplete" => "off")) ?> +
+
+ +
+
+ +
+ +
+
+ + + getContent(); ?> + + + + + + + + + + + + items as $role) { ?> + + + + + + + + + + + +
ID角色名称角色描述管理
roleid ?>rolename ?>roleinfo ?> + tag->linkTo(array("role/roleset/" . $role->roleid, "权限配置")); ?> + tag->linkTo(array("role/edit/" . $role->roleid, "编辑")); ?> + 删除 +
+ total_pages > 1){?> +
+
+
    +
  • current, "/", $page->total_pages ?>
  • +
  • tag->linkTo("role/index?page=1", "首页") ?>
  • +
  • tag->linkTo("role/index?page=" . $page->before, "上一页") ?>
  • +
  • tag->linkTo("role/index?page=" . $page->next, "下一页") ?>
  • +
  • tag->linkTo("role/index?page=" . $page->last, "末页") ?>
  • + +
+
+
+ +
+
+
+ + +
+
+
+
+
+
+ +
+
+partial("public/footer") ?> + \ No newline at end of file diff --git a/app/modules/Admin/views/role/new.phtml b/app/modules/Admin/views/role/new.phtml new file mode 100755 index 0000000..997248a --- /dev/null +++ b/app/modules/Admin/views/role/new.phtml @@ -0,0 +1,71 @@ +partial("public/header") ?> +
+ + partial("public/left") ?> + + + +
+ +
+
添加角色
+
+ +
+
+
+
+
+ 返回 +
+
+
+
+
+ +
+
+ tag->form(["role/create","class"=>"am-form am-form-horizontal lszh-validate"]) ?> + + + getContent(); ?> + + + + + + + + + + + + + + + + + + + +
+ + +
+ tag->textField(array("rolename", "size" => 30,'placeholder' => '请输入角色名',"maxlength"=>"30","required"=>"","class"=>"js-pattern-english","data-validation-message" => "请输入角色名称(英文)")) ?> +
+
*
+ + +
+ tag->textField(array("roleinfo", "size" => 30, 'placeholder' => '请输入角色描述',"maxlength"=>"30","required"=>"","class"=>"js-pattern-chinese","data-validation-message" => "请输入角色名称(中文)")) ?> +
+
*
tag->submitButton(["提交","class"=>"am-btn am-btn-primary"]) ?>
+ tag->endForm() ?> +
+ +
+ + +
+partial("public/footer") ?> \ No newline at end of file diff --git a/app/modules/Admin/views/role/roleset.phtml b/app/modules/Admin/views/role/roleset.phtml new file mode 100755 index 0000000..1e13c10 --- /dev/null +++ b/app/modules/Admin/views/role/roleset.phtml @@ -0,0 +1,87 @@ +partial("public/header") ?> +
+ + partial("public/left") ?> + + + +
+ +
+
权限管理
+
+ +
+
+
+
+
+
+
+
+
+ + +
+ +
+
+ + tag->form(["role/saveaccess","class"=>"am-form am-form-horizontal"]) ?> + + + getContent(); ?> + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
ID资源名称资源描述选择
+ > + + + + +
tag->hiddenField("roleid") ?>tag->submitButton(["设置","class"=>"am-btn am-btn-primary"]) ?>
+ +
+ +
+
+ + +
+partial("public/footer") ?> \ No newline at end of file diff --git a/app/modules/Admin/views/role/search.phtml b/app/modules/Admin/views/role/search.phtml new file mode 100755 index 0000000..c900c4c --- /dev/null +++ b/app/modules/Admin/views/role/search.phtml @@ -0,0 +1,54 @@ + + +getContent(); ?> + + + + + + +
+ tag->linkTo(array("admin/index", "Go Back")); ?> + + tag->linkTo(array("admin/new", "Create ")); ?> +
+ + + + + + + + + + + + + items as $admin) { ?> + + + + + + + + + + + + + + + + +
IdUsernamePasswordLogintimeRegtime
id ?>username ?>password ?>logintime ?>regtime ?>tag->linkTo(array("admin/edit/" . $admin->id, "Edit")); ?>tag->linkTo(array("admin/delete/" . $admin->id, "Delete")); ?>
+ + + + + + + + +
tag->linkTo("admin/search", "First") ?>tag->linkTo("admin/search?page=" . $page->before, "Previous") ?>tag->linkTo("admin/search?page=" . $page->next, "Next") ?>tag->linkTo("admin/search?page=" . $page->last, "Last") ?>current, "/", $page->total_pages ?>
+
diff --git a/app/config/autoload-api.php b/app/modules/Api/config/autoload.php similarity index 84% rename from app/config/autoload-api.php rename to app/modules/Api/config/autoload.php index 780c673..17d6dde 100755 --- a/app/config/autoload-api.php +++ b/app/modules/Api/config/autoload.php @@ -15,8 +15,8 @@ 'Security\Hmac' => $dir . '/library/security/hmac/', 'Application' => $dir . '/library/application/', 'Interfaces' => $dir . '/library/interfaces/', - 'Controllers' => $dir . '/controllers/', - 'Models' => $dir . '/models/' + 'Controllers' => $dir . '/modules/Api/controllers/', + 'Models' => $dir . '/models/', ]; return $autoload; diff --git a/app/modules/Api/config/config.php b/app/modules/Api/config/config.php new file mode 100755 index 0000000..5d4ff41 --- /dev/null +++ b/app/modules/Api/config/config.php @@ -0,0 +1,26 @@ + array( + 'adapter' => 'Mysql', /* Possible Values: Mysql, Postgres, Sqlite */ + 'host' => '192.168.6.76', + 'username' => 'root', + 'password' => 'password111', + 'name' => 'smartmonitor', + 'port' => 3306 + ), + 'app' => array( + 'debug' => false + ) + +]; + diff --git a/app/modules/Api/config/routes.php b/app/modules/Api/config/routes.php new file mode 100755 index 0000000..d56c31f --- /dev/null +++ b/app/modules/Api/config/routes.php @@ -0,0 +1,35 @@ + 'post', + 'route' => '/api/update', + 'handler' => 'myFunction' +]; + + */ + + + + + +//测试 +$routes[] = [ + 'method' => 'get', + 'route' => '/test', + 'handler' => ['Controllers\ExampleController', 'test'], + 'authentication' => FALSE +]; +$routes[] = [ + 'method' => 'get', + 'route' => '/apitest', + 'handler' => ['Controllers\ExampleController', 'apitest'], + 'authentication' => FALSE +]; +return $routes; diff --git a/app/controllers/ExampleController.php b/app/modules/Api/controllers/ExampleController.php similarity index 70% rename from app/controllers/ExampleController.php rename to app/modules/Api/controllers/ExampleController.php index 5e111b1..dc85d65 100755 --- a/app/controllers/ExampleController.php +++ b/app/modules/Api/controllers/ExampleController.php @@ -5,10 +5,10 @@ class ExampleController extends \Phalcon\Mvc\Controller { - public function pingAction() { + public function pingAction() { - echo "pong"; - } + echo "pong"; + } public function testAction($id) { @@ -20,14 +20,14 @@ public function skipAction($name) { } public function getAction() { - echo "pong - get method"; + echo "pong - get method"; } public function putAction() { - echo "pong - put method"; + echo "pong - put method"; } public function deleteAction() { - echo "pong - delete method"; + echo "pong - delete method"; } -} +} \ No newline at end of file diff --git a/app/modules/Api/controllers/PushregController.php b/app/modules/Api/controllers/PushregController.php new file mode 100755 index 0000000..ae4dc6f --- /dev/null +++ b/app/modules/Api/controllers/PushregController.php @@ -0,0 +1,25 @@ +private_key; + if($api) { + echo '{"Errcode":"500","Errmsg":"privateKey already exist"}'; + }else { + $api = new Api(); + $api->private_key = $privateKey; + $api->username = $username; + $api->status = 0; + if ($api->create() == false) { + echo '{"Errcode":"500","Errmsg":"error,can not reg"}'; + } else { + echo '{"Errcode":"200","Errmsg":"reg success"}'; + } + } + } + +} diff --git a/app/config/autoload-cli.php b/app/modules/Cli/config/autoload.php similarity index 97% rename from app/config/autoload-cli.php rename to app/modules/Cli/config/autoload.php index 8d33316..380cc85 100755 --- a/app/config/autoload-cli.php +++ b/app/modules/Cli/config/autoload.php @@ -4,7 +4,7 @@ * cli * Autoload Class files by PHP namespacing support * - * @author Lenix + * @author Itv * @eg $autoload = [ 'namespace' => '/path/to/dir', diff --git a/app/modules/Cli/config/config.php b/app/modules/Cli/config/config.php new file mode 100755 index 0000000..7f097ae --- /dev/null +++ b/app/modules/Cli/config/config.php @@ -0,0 +1,26 @@ + array( + 'adapter' => 'Mysql', /* Possible Values: Mysql, Postgres, Sqlite */ + 'host' => '192.168.6.76', + 'username' => 'root', + 'password' => '111111', + 'name' => 'database', + 'port' => 3306 + ), + 'app' => array( + 'debug' => false + ) + +]; + diff --git a/app/modules/Cli/models/RuntimeError.php b/app/modules/Cli/models/RuntimeError.php new file mode 100755 index 0000000..805cf0f --- /dev/null +++ b/app/modules/Cli/models/RuntimeError.php @@ -0,0 +1,9 @@ +setSource("runtimeError"); + } +} diff --git a/app/models/Task.php b/app/modules/Cli/models/Task.php similarity index 100% rename from app/models/Task.php rename to app/modules/Cli/models/Task.php diff --git a/app/tasks/ExampleTask.php b/app/tasks/ExampleTask.php index beb16cb..c6be0e9 100755 --- a/app/tasks/ExampleTask.php +++ b/app/tasks/ExampleTask.php @@ -4,7 +4,7 @@ * cli * Example of a Task/Cli application * - * @author Lenix + * @author Itv * @version 1.0 */ diff --git a/app/views/index.volt b/app/views/index.volt deleted file mode 100755 index 70277c0..0000000 --- a/app/views/index.volt +++ /dev/null @@ -1,4 +0,0 @@ -{{ content() }} - - - diff --git a/app/views/index/index.phtml b/app/views/index/index.phtml deleted file mode 100755 index d1dc96a..0000000 --- a/app/views/index/index.phtml +++ /dev/null @@ -1,13 +0,0 @@ - -
- - - - getContent(); ?> - - - - - -
- \ No newline at end of file diff --git a/app/views/login/index.phtml b/app/views/login/index.phtml deleted file mode 100644 index 751885c..0000000 --- a/app/views/login/index.phtml +++ /dev/null @@ -1,60 +0,0 @@ - - - - - - login - - - - - - - - - - - -
-
-
-
-
-

Login

-
-
- - - - tag->textField(array("username", "size" => "30","style"=>" border:1px solid #DDDDDD; background-color:transparent")) ?> -
- - - tag->passwordField(array("password", "size" => "30","style"=>" border:1px solid #DDDDDD; background-color:transparent")) ?> -
-
- -
-
-getContent(); ?> -

Copyright ..

-
-
- - diff --git a/app/views/public/footer.phtml b/app/views/public/footer.phtml deleted file mode 100644 index c3a2c3f..0000000 --- a/app/views/public/footer.phtml +++ /dev/null @@ -1,20 +0,0 @@ -
-
-

Copyright © 2016 All Rights Reserved.

-
- - - - - - - - - - diff --git a/app/views/public/header.phtml b/app/views/public/header.phtml deleted file mode 100644 index b31fd5e..0000000 --- a/app/views/public/header.phtml +++ /dev/null @@ -1,53 +0,0 @@ - - - - - - admin system - - - - - - - - - - - - - - - - - - - -
-
- admin system -
- - - -
- - -
-
diff --git a/private/cli.php b/cli/cli.php similarity index 92% rename from private/cli.php rename to cli/cli.php index f41f5d3..bb610df 100755 --- a/private/cli.php +++ b/cli/cli.php @@ -7,7 +7,7 @@ * a cli script that launches phalcon tasks * * @package cli - * @author Lenix + * @author Itv * @version 1.0 * @copyright never * @@ -20,6 +20,7 @@ // Setup configuration directories $dir = dirname(__DIR__); $appDir = $dir . '/app'; +$cliDir = $dir . '/app/modules/Cli'; // Necessary requires to get things going require $appDir . '/library/utilities/debugcli/PhpError.php'; @@ -31,8 +32,10 @@ // Necessary paths to autoload & config files $configPath = $appDir . '/config/'; +$configdir = $cliDir . '/config/'; + $config = $configPath . 'config.php'; -$autoLoad = $configPath . 'autoload-cli.php'; +$autoLoad = $configdir . 'autoload.php'; try { diff --git a/composer.json b/composer.json new file mode 100755 index 0000000..77c6540 --- /dev/null +++ b/composer.json @@ -0,0 +1,32 @@ +{ + "name": "w3yyb/phalphp", + "type": "project", + "description": "phalphp", + "keywords": [ + "phalcon", + "phalphp" + ], + "homepage": "https://github.com/w3yyb/phalphp", + "license": "MIT", + "authors": [ + { + "name": "Lenix", + "email": "yangyb@itv.cn", + "homepage": "http://lenix.xyz", + "role": "Developer" + } + + + ], + "require": { + "php" : "7.0.*", + "ext-phalcon": "3.*" + }, + "autoload": { + "psr-4": { + "": "app/" + } + } + + +} diff --git a/composer.lock b/composer.lock new file mode 100755 index 0000000..3109830 --- /dev/null +++ b/composer.lock @@ -0,0 +1,21 @@ +{ + "_readme": [ + "This file locks the dependencies of your project to a known state", + "Read more about it at https://getcomposer.org/doc/01-basic-usage.md#composer-lock-the-lock-file", + "This file is @generated automatically" + ], + "hash": "6e0fc9306d2fbddfd12535608fb5e5d4", + "content-hash": "e2bf097914e6f27090d999b75cc20e15", + "packages": [], + "packages-dev": [], + "aliases": [], + "minimum-stability": "stable", + "stability-flags": [], + "prefer-stable": false, + "prefer-lowest": false, + "platform": { + "php": ">=5.6.0", + "ext-phalcon": "^3.0" + }, + "platform-dev": [] +} diff --git a/del.txt b/del.txt new file mode 100644 index 0000000..2b588dc --- /dev/null +++ b/del.txt @@ -0,0 +1,119 @@ +app/cache/_library_webserver_documents_phalcon-framework_app_views_admin_index.volt.php +app/cache/_library_webserver_documents_phalcon-framework_app_views_index.volt.php +app/cache/_var_www_html_smartmonitor_app_modules_admin_views_index.volt.php +app/cache/_var_www_html_smartmonitor_app_modules_admin_views_index_index.volt.php +app/cache/_var_www_html_smartmonitor_app_views_admin_index.volt.php +app/cache/_var_www_html_smartmonitor_app_views_index.volt.php +app/cache/_var_www_html_smartmonitor_app_views_index_index.volt.php +app/config/autoload-api.php +app/config/autoload-cli.php +app/config/autoload.php +app/config/routes-api.php +app/config/routes.php +app/controllers/AdminController.php +app/controllers/ControllerBase.php +app/controllers/ExampleController.php +app/controllers/IndexController.php +app/controllers/LoginController.php +app/controllers/TopicController.php +app/library/common/Array2XML.php +app/models/Cameratype.php +app/models/Community.php +app/models/Midlog.php +app/models/Monitor.php +app/models/Monitorbeat.php +app/models/Monitorcategory.php +app/models/Monitorsolution.php +app/models/Monitortask.php +app/models/Sliceserver.php +app/models/Task.php +app/models/Xmltrace.php +app/models/repositories/Repositories.php +app/models/repositories/Repository/MonitorApi.php +app/models/repositories/Repository/WebApi.php +app/models/services/Service/MonitorApi.php +app/models/services/Service/WebApi.php +app/models/services/Services.php +app/modules/Admin/controllers/CameratypeController.php +app/modules/Admin/controllers/CommunityController.php +app/modules/Admin/controllers/MonitorController.php +app/modules/Admin/controllers/MonitorcategoryController.php +app/modules/Admin/controllers/MonitorsolutionController.php +app/modules/Admin/controllers/MonitortaskController.php +app/modules/Admin/controllers/SettingController.php +app/modules/Admin/controllers/SliceserverController.php +app/modules/Admin/views/cameratype/edit.phtml +app/modules/Admin/views/cameratype/index.phtml +app/modules/Admin/views/cameratype/new.phtml +app/modules/Admin/views/cameratype/search.phtml +app/modules/Admin/views/community/edit.phtml +app/modules/Admin/views/community/index.phtml +app/modules/Admin/views/monitor/detail.phtml +app/modules/Admin/views/monitor/edit.phtml +app/modules/Admin/views/monitor/index.phtml +app/modules/Admin/views/monitor/new.phtml +app/modules/Admin/views/monitor/openVideo.phtml +app/modules/Admin/views/monitor/search.phtml +app/modules/Admin/views/monitorcategory/edit.phtml +app/modules/Admin/views/monitorcategory/index.phtml +app/modules/Admin/views/monitorcategory/new.phtml +app/modules/Admin/views/monitorsolution/edit.phtml +app/modules/Admin/views/monitorsolution/index.phtml +app/modules/Admin/views/monitorsolution/new.phtml +app/modules/Admin/views/monitorsolution/search.phtml +app/modules/Admin/views/monitorsolution/view.phtml +app/modules/Admin/views/monitortask/edit.phtml +app/modules/Admin/views/monitortask/index.phtml +app/modules/Admin/views/monitortask/new.phtml +app/modules/Admin/views/setting/edit.phtml +app/modules/Admin/views/setting/index.phtml +app/modules/Admin/views/setting/new.phtml +app/modules/Admin/views/sliceserver/add.phtml +app/modules/Admin/views/sliceserver/detail.phtml +app/modules/Admin/views/sliceserver/edit.phtml +app/modules/Admin/views/sliceserver/index.phtml +app/modules/Api/config/api.php +app/modules/Api/controllers/MonitorapiController.php +app/modules/Api/controllers/MonitorbeatController.php +app/modules/Api/controllers/WebapiController.php +app/tasks/MonitorbeatTask.php +app/views/admin/index.volt +app/views/index.phtml +app/views/index.volt +app/views/index/index.phtml +app/views/login/index.phtml +app/views/public/footer.phtml +app/views/public/header.phtml +htaccess +postgres.data.sql +private/cli.php +public/api.php +public/css/admin.css +public/css/amazeui.css +public/css/amazeui.flat.css +public/css/amazeui.flat.min.css +public/css/amazeui.min.css +public/css/app.css +public/css/modal-gloss.png +public/css/reveal.css +public/htaccess +public/img/app-icon72x72@2x.png +public/img/favicon.png +public/js/amazeui.js +public/js/amazeui.legacy.js +public/js/amazeui.legacy.min.js +public/js/amazeui.min.js +public/js/amazeui.widgets.helper.js +public/js/amazeui.widgets.helper.min.js +public/js/app.js +public/js/handlebars.min.js +public/js/jquery.datetimepicker.css +public/js/jquery.datetimepicker.js +public/js/jquery.js +public/js/jquery.min.js +public/js/jquery.reveal.js +public/js/jquery1.min.js +public/js/polyfill/rem.min.js +public/js/polyfill/respond.min.js +test/helpers/TestHelper.php +test/library/cli/ExecuteTest.php diff --git a/htaccess b/htaccess deleted file mode 100755 index aa5d4c9..0000000 --- a/htaccess +++ /dev/null @@ -1,5 +0,0 @@ - - RewriteEngine on - RewriteRule ^$ public/ [L] - RewriteRule (.*) public/$1 [L] - \ No newline at end of file diff --git a/mysql.data.sql b/mysql.data.sql index 2bdd966..949a82d 100755 --- a/mysql.data.sql +++ b/mysql.data.sql @@ -1,3 +1,47 @@ + + +-- +-- Table structure for table `aclaccess` +-- + +DROP TABLE IF EXISTS `aclaccess`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8 */; +CREATE TABLE `aclaccess` ( + `id` int(11) NOT NULL AUTO_INCREMENT, + `resourceid` int(11) NOT NULL COMMENT '资源id', + `roleid` int(11) DEFAULT NULL COMMENT '角色id', + PRIMARY KEY (`id`) +) ENGINE=InnoDB AUTO_INCREMENT=120 DEFAULT CHARSET=utf8 COMMENT='acl_权限表'; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Table structure for table `admin` +-- + +DROP TABLE IF EXISTS `admin`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8 */; +CREATE TABLE `admin` ( + `id` int(11) NOT NULL AUTO_INCREMENT COMMENT '自增ID', + `username` varchar(30) NOT NULL COMMENT '用户名', + `password` varchar(100) NOT NULL COMMENT '密码', + `logintime` varchar(20) DEFAULT NULL COMMENT '登录时间', + `regtime` varchar(20) NOT NULL COMMENT '创建时间', + `adminname` varchar(30) NOT NULL COMMENT '在线管理员名称', + `info` varchar(500) DEFAULT NULL, + `roleid` int(11) DEFAULT NULL COMMENT '角色id', + PRIMARY KEY (`id`) +) ENGINE=InnoDB AUTO_INCREMENT=40 DEFAULT CHARSET=utf8 COMMENT='管理员信息表'; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Table structure for table `api` +-- + +DROP TABLE IF EXISTS `api`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8 */; CREATE TABLE `api` ( `client_id` int(10) unsigned NOT NULL AUTO_INCREMENT, `public_id` char(64) NOT NULL DEFAULT '', @@ -6,41 +50,179 @@ CREATE TABLE `api` ( PRIMARY KEY (`client_id`), UNIQUE KEY `private_key` (`private_key`), UNIQUE KEY `public_id` (`public_id`) -) ENGINE=InnoDB AUTO_INCREMENT=1 DEFAULT CHARSET=latin1; +) ENGINE=InnoDB AUTO_INCREMENT=2 DEFAULT CHARSET=latin1; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Table structure for table `app` +-- + +DROP TABLE IF EXISTS `app`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8 */; +CREATE TABLE `app` ( + `app_id` int(11) NOT NULL AUTO_INCREMENT COMMENT '自增', + `username` varchar(30) NOT NULL COMMENT '用户名', + `private_key` char(64) NOT NULL COMMENT 'key值', + `status` tinyint(1) NOT NULL DEFAULT '0' COMMENT '状态:0正常1删除', + `adminname` varchar(30) DEFAULT NULL COMMENT '在线管理员', + `addtime` varchar(30) DEFAULT NULL, + `info` varchar(100) DEFAULT NULL, + PRIMARY KEY (`app_id`) +) ENGINE=InnoDB AUTO_INCREMENT=22 DEFAULT CHARSET=utf8 COMMENT='客户端表'; +/*!40101 SET character_set_client = @saved_cs_client */; + + + + -INSERT INTO api SET private_key = '593fe6ed77014f9507761028801aa376f141916bd26b1b3f0271b5ec3135b989'; +-- +-- Table structure for table `log` +-- -CREATE TABLE `runtimeError` ( +DROP TABLE IF EXISTS `log`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8 */; +CREATE TABLE `log` ( + `id` int(10) unsigned NOT NULL AUTO_INCREMENT, + `username` varchar(50) NOT NULL, + `ip` char(30) DEFAULT NULL, + `addtime` datetime NOT NULL, + `title` varchar(100) NOT NULL, + `content` varchar(200) NOT NULL, + `url` varchar(100) DEFAULT NULL, + PRIMARY KEY (`id`) +) ENGINE=InnoDB AUTO_INCREMENT=351 DEFAULT CHARSET=utf8 COMMENT='操作日志表'; +/*!40101 SET character_set_client = @saved_cs_client */; + + + + + + + + + + +-- +-- Table structure for table `operations` +-- + +DROP TABLE IF EXISTS `operations`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8 */; +CREATE TABLE `operations` ( + `operationid` int(11) NOT NULL AUTO_INCREMENT COMMENT '操作id', + `name` varchar(100) NOT NULL COMMENT '操作名称', + `resourceid` int(11) NOT NULL, + `operationinfo` varchar(30) DEFAULT NULL COMMENT '操作描述', + PRIMARY KEY (`operationid`) +) ENGINE=InnoDB AUTO_INCREMENT=36 DEFAULT CHARSET=utf8 COMMENT='acl_操作表'; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Table structure for table `queryerror` +-- + +DROP TABLE IF EXISTS `queryerror`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8 */; +CREATE TABLE `queryerror` ( `error_id` int(10) unsigned NOT NULL AUTO_INCREMENT, - `title` varchar(2048) NOT NULL DEFAULT '', + `query` text, `file` varchar(1024) DEFAULT '', `line` int(10) unsigned DEFAULT NULL, - `error_type` int(10) unsigned NOT NULL DEFAULT '0', + `error_string` varchar(1024) DEFAULT '', + `error_no` int(10) unsigned DEFAULT NULL, `create_time` datetime DEFAULT NULL, - `server_name` varchar(100) DEFAULT NULL, - `execution_script` varchar(1024) NOT NULL DEFAULT '', + `execution_script` varchar(1024) DEFAULT '', `pid` int(10) unsigned NOT NULL DEFAULT '0', `ip_address` varchar(16) DEFAULT NULL, `user_id` int(10) unsigned DEFAULT NULL, PRIMARY KEY (`error_id`) ) ENGINE=InnoDB DEFAULT CHARSET=latin1; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Table structure for table `resources` +-- + +DROP TABLE IF EXISTS `resources`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8 */; +CREATE TABLE `resources` ( + `resourceid` int(11) NOT NULL AUTO_INCREMENT COMMENT '资源id', + `name` varchar(100) NOT NULL COMMENT '资源名称', + `resourceinfo` varchar(30) DEFAULT NULL COMMENT '资源描述', + PRIMARY KEY (`resourceid`) +) ENGINE=InnoDB AUTO_INCREMENT=21 DEFAULT CHARSET=utf8 COMMENT='acl_资源表'; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Table structure for table `role` +-- + +DROP TABLE IF EXISTS `role`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8 */; +CREATE TABLE `role` ( + `roleid` int(11) NOT NULL AUTO_INCREMENT COMMENT '角色id', + `rolename` varchar(30) NOT NULL COMMENT '角色名称', + `roleinfo` varchar(30) NOT NULL COMMENT '角色说明', + PRIMARY KEY (`roleid`) +) ENGINE=InnoDB AUTO_INCREMENT=8 DEFAULT CHARSET=utf8 COMMENT='acl_角色表'; +/*!40101 SET character_set_client = @saved_cs_client */; +-- +-- Table structure for table `runtimeerror` +-- -CREATE TABLE `queryError` ( +DROP TABLE IF EXISTS `runtimeerror`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8 */; +CREATE TABLE `runtimeerror` ( `error_id` int(10) unsigned NOT NULL AUTO_INCREMENT, - `query` text, + `title` varchar(2048) NOT NULL DEFAULT '', `file` varchar(1024) DEFAULT '', `line` int(10) unsigned DEFAULT NULL, - `error_string` varchar(1024) DEFAULT '', - `error_no` int(10) unsigned DEFAULT NULL, + `error_type` int(10) unsigned NOT NULL DEFAULT '0', `create_time` datetime DEFAULT NULL, - `execution_script` varchar(1024) DEFAULT '', + `server_name` varchar(100) DEFAULT NULL, + `execution_script` varchar(1024) NOT NULL DEFAULT '', `pid` int(10) unsigned NOT NULL DEFAULT '0', `ip_address` varchar(16) DEFAULT NULL, `user_id` int(10) unsigned DEFAULT NULL, PRIMARY KEY (`error_id`) -) ENGINE=InnoDB DEFAULT CHARSET=latin1; +) ENGINE=InnoDB AUTO_INCREMENT=23 DEFAULT CHARSET=latin1; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Table structure for table `setting` +-- + +DROP TABLE IF EXISTS `setting`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8 */; +CREATE TABLE `setting` ( + `id` int(11) NOT NULL AUTO_INCREMENT, + `name` varchar(255) DEFAULT NULL COMMENT '变量名', + `value` varchar(255) DEFAULT NULL COMMENT '变量值', + `info` varchar(255) DEFAULT NULL COMMENT '说明', + PRIMARY KEY (`id`) +) ENGINE=InnoDB AUTO_INCREMENT=6 DEFAULT CHARSET=utf8; +/*!40101 SET character_set_client = @saved_cs_client */; + + + + +-- +-- Table structure for table `task` +-- + +DROP TABLE IF EXISTS `task`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8 */; CREATE TABLE `task` ( `task_id` int(10) unsigned NOT NULL AUTO_INCREMENT, `script_name` varchar(1024) NOT NULL DEFAULT '', @@ -56,10 +238,8 @@ CREATE TABLE `task` ( `pid` int(10) unsigned NOT NULL DEFAULT '0', PRIMARY KEY (`task_id`) ) ENGINE=InnoDB DEFAULT CHARSET=latin1; +/*!40101 SET character_set_client = @saved_cs_client */; -CREATE TABLE `admin` ( -`id` int(10) unsigned NOT NULL AUTO_INCREMENT, - `username` varchar(30) NOT NULL, - `password` varchar(250) NOT NULL, - PRIMARY KEY (`id`) -) ENGINE=MyISAM AUTO_INCREMENT=2 DEFAULT CHARSET=utf8; + + +-- Dump completed on 2016-11-23 18:33:55 diff --git a/nginx-virtual-host-php-fpm.conf b/nginx-virtual-host-php-fpm.conf index 0a993a7..e5939c3 100755 --- a/nginx-virtual-host-php-fpm.conf +++ b/nginx-virtual-host-php-fpm.conf @@ -2,9 +2,9 @@ server { listen 80; - server_name api.example.com www.api.example.com; + server_name www.smartmonitor.com; - root /need/to/replace/this/api.example.com/public; + root /var/www/html/SmartMonitor/public/; charset utf-8; diff --git a/phpunit.xml b/phpunit.xml index dbde767..20ab9d6 100755 --- a/phpunit.xml +++ b/phpunit.xml @@ -1,5 +1,5 @@ - - test/ + tests/ diff --git a/postgres.data.sql b/postgres.data.sql deleted file mode 100755 index cb6891c..0000000 --- a/postgres.data.sql +++ /dev/null @@ -1,55 +0,0 @@ - -CREATE TABLE `api` ( - `client_id` SERIAL, - `public_id` char(64) NOT NULL DEFAULT '', - `private_key` char(64) NOT NULL DEFAULT '', - `status` enum('ACTIVE','INACTIVE') DEFAULT 'ACTIVE', - UNIQUE(private_key), - UNIQUE(public_id) -) ; - -INSERT INTO api SET private_key = '593fe6ed77014f9507761028801aa376f141916bd26b1b3f0271b5ec3135b989'; - -CREATE TABLE runtimeError ( - error_id SERIAL, - title varchar(2048) NOT NULL DEFAULT '', - file varchar(1024) DEFAULT '', - line integer DEFAULT NULL, - error_type integer NOT NULL DEFAULT '0', - create_time timestamp DEFAULT NULL, - server_name varchar(100) DEFAULT NULL, - execution_script varchar(1024) NOT NULL DEFAULT '', - pid integer NOT NULL DEFAULT '0', - ip_address varchar(16) DEFAULT NULL, - user_id integer DEFAULT NULL -) ; - -CREATE TABLE queryError ( - error_id SERIAL, - query text, - file varchar(1024) DEFAULT '', - line integer DEFAULT NULL, - error_string varchar(1024) DEFAULT '', - error_no integer DEFAULT NULL, - create_time TIMESTAMP DEFAULT NULL, - execution_script varchar(1024) DEFAULT '', - pid integer NOT NULL DEFAULT '0', - ip_address varchar(16) DEFAULT NULL, - user_id integer DEFAULT NULL -) ; - -CREATE TYPE app_state AS ENUM('RUNNING', 'SUCCESSFUL', 'FAILED'); -CREATE TABLE task ( - task_id SERIAL, - script_name varchar(1024) NOT NULL DEFAULT '', - params varchar(1024) DEFAULT '', - server_name varchar(30) DEFAULT '', - server_user varchar(30) DEFAULT '', - start_time TIMESTAMP DEFAULT NULL, - stop_time TIMESTAMP DEFAULT NULL, - state app_state, - exit_status integer DEFAULT NULL, - stdout text, - stderr text, - pid integer NOT NULL DEFAULT '0' -) ; diff --git a/public/.htaccess b/public/.htaccess new file mode 100755 index 0000000..fcf1d37 --- /dev/null +++ b/public/.htaccess @@ -0,0 +1,8 @@ +AddDefaultCharset UTF-8 + + + RewriteEngine On + RewriteCond %{REQUEST_FILENAME} !-d + RewriteCond %{REQUEST_FILENAME} !-f + RewriteRule ^(.*)$ index.php?_url=/$1 [QSA,L] + \ No newline at end of file diff --git a/public/assets/css/admin.css b/public/assets/css/admin.css new file mode 100755 index 0000000..b02d5ee --- /dev/null +++ b/public/assets/css/admin.css @@ -0,0 +1,424 @@ +/** + * admin.css + */ + + +/* + fixed-layout 固定头部和边栏布局 +*/ + +html, +body { + height: 100%; + overflow: hidden; +} + +ul { + margin-top: 0; +} + +.admin-icon-yellow { + color: #ffbe40; +} + +.admin-header { + position: fixed; + top: 0; + left: 0; + right: 0; + z-index: 1500; + font-size: 1.4rem; + margin-bottom: 0; +} + +.admin-header-list a:hover :after { + content: none; +} + +.admin-main { + position: relative; + height: 100%; + padding-top: 51px; + background: #f3f3f3; +} + +.admin-menu { + position: fixed; + z-index: 10; + bottom: 30px; + right: 20px; +} + +.admin-sidebar { + width: 260px; + min-height: 100%; + float: left; + border-right: 1px solid #cecece; +} + +.admin-sidebar.am-active { + z-index: 1600; +} + +.admin-sidebar-list { + margin-bottom: 0; +} + +.admin-sidebar-list li a { + color: #5c5c5c; + padding-left: 24px; +} + +.admin-sidebar-list li.am-active a,.admin-sidebar-list li a:hover{ + color:#fff; + background-color:#28b779; +} +.admin-sidebar-list li:first-child { + border-top: none; +} + +.admin-sidebar-sub { + margin-top: 0; + margin-bottom: 0; + box-shadow: 0 16px 8px -15px #e2e2e2 inset; + background: #ececec; + padding-left: 24px; +} + +.admin-sidebar-sub li:first-child { + border-top: 1px solid #dedede; +} + +.admin-sidebar-panel { + margin: 10px; +} + +.admin-content { + display: -webkit-box; + display: -webkit-flex; + display: -ms-flexbox; + display: flex; + -webkit-box-orient: vertical; + -webkit-box-direction: normal; + -webkit-flex-direction: column; + -ms-flex-direction: column; + flex-direction: column; + background: #fff; +} + +.admin-content, +.admin-sidebar { + height: 100%; + overflow-x: hidden; + overflow-y: scroll; + -webkit-overflow-scrolling: touch; +} + +.admin-content-body { + -webkit-box-flex: 1; + -webkit-flex: 1 0 auto; + -ms-flex: 1 0 auto; + flex: 1 0 auto; +} + +.admin-content-footer { + font-size: 85%; + color: #777; +} + +.admin-content-list { + border: 1px solid #e9ecf1; + margin-top: 0; +} + +.admin-content-list li { + border: 1px solid #e9ecf1; + border-width: 0 1px; + margin-left: -1px; +} + +.admin-content-list li:first-child { + border-left: none; +} + +.admin-content-list li:last-child { + border-right: none; +} +/*链接颜色 +.admin-content-table a { + color: #535353; +}*/ +.admin-content-file { + margin-bottom: 0; + color: #666; +} + +.admin-content-file p { + margin: 0 0 5px 0; + font-size: 1.4rem; +} + +.admin-content-file li { + padding: 10px 0; +} + +.admin-content-file li:first-child { + border-top: none; +} + +.admin-content-file li:last-child { + border-bottom: none; +} + +.admin-content-file li .am-progress { + margin-bottom: 4px; +} + +.admin-content-file li .am-progress-bar { + line-height: 14px; +} + +.admin-content-task { + margin-bottom: 0; +} + +.admin-content-task li { + padding: 5px 0; + border-color: #eee; +} + +.admin-content-task li:first-child { + border-top: none; +} + +.admin-content-task li:last-child { + border-bottom: none; +} + +.admin-task-meta { + font-size: 1.2rem; + color: #999; +} + +.admin-task-bd { + font-size: 1.4rem; + margin-bottom: 5px; +} + +.admin-content-comment { + margin-bottom: 0; +} + +.admin-content-comment .am-comment-bd { + font-size: 1.4rem; +} + +.admin-content-pagination { + margin-bottom: 0; +} +.admin-content-pagination li a { + padding: 4px 8px; +} + +@media only screen and (min-width: 641px) { + .admin-sidebar { + display: block; + position: static; + background: none; + } + + .admin-offcanvas-bar { + position: static; + width: auto; + background: none; + -webkit-transform: translate3d(0, 0, 0); + -ms-transform: translate3d(0, 0, 0); + transform: translate3d(0, 0, 0); + overflow-y: visible; + min-height: 100%; + } + .admin-offcanvas-bar:after { + content: none; + } +} + +@media only screen and (max-width: 640px) { + .admin-sidebar { + width: inherit; + } + + .admin-offcanvas-bar { + background: #f3f3f3; + } + + .admin-offcanvas-bar:after { + background: #BABABA; + } + + .admin-sidebar-list a:hover, .admin-sidebar-list a:active{ + -webkit-transition: background-color .3s ease; + -moz-transition: background-color .3s ease; + -ms-transition: background-color .3s ease; + -o-transition: background-color .3s ease; + transition: background-color .3s ease; + background: #E4E4E4; + } + + .admin-content-list li { + padding: 10px; + border-width: 1px 0; + margin-top: -1px; + } + + .admin-content-list li:first-child { + border-top: none; + } + + .admin-content-list li:last-child { + border-bottom: none; + } + + .admin-form-text { + text-align: left !important; + } + +} + +/* +* user.html css +*/ +.user-info { + margin-bottom: 15px; +} + +.user-info .am-progress { + margin-bottom: 4px; +} + +.user-info p { + margin: 5px; +} + +.user-info-order { + font-size: 1.4rem; +} + +/* +* errorLog.html css +*/ + +.error-log .am-pre-scrollable { + max-height: 40rem; +} + +/* +* table.html css +*/ + +.table-main { + font-size: 1.4rem; + padding: .5rem; +} + +.table-main button { + background: #fff; +} + +.table-check { + width: 30px; +} + +.table-id { + width: 50px; +} + +@media only screen and (max-width: 640px) { + .table-select { + margin-top: 10px; + margin-left: 5px; + } +} + +/* +gallery.html css +*/ + +.gallery-list li { + padding: 10px; +} + +.gallery-list a { + color: #666; +} + +.gallery-list a:hover { + color: #3bb4f2; +} + +.gallery-title { + margin-top: 6px; + font-size: 1.4rem; +} + +.gallery-desc { + font-size: 1.2rem; + margin-top: 4px; +} + +/* + 404.html css +*/ + +.page-404 { + background: #fff; + border: none; + width: 200px; + margin: 0 auto; +} + + + + +.successMessage { + + margin-bottom: 1em; + padding: .625em; + background: #0e90d2; + color: #fff; + border: 1px solid #0c7cb5; + border-radius: 0; + margin-top:1em; + + background-color: #5eb95e; + border-color: #4bad4b; + color: #fff; + /*display: inline-block;*/ +} + +.errorMessage { + + margin-bottom: 1em; + padding: .625em; + background: #0e90d2; + color: #fff; + border: 1px solid #0c7cb5; + border-radius: 0; + margin-top:1em; + + background-color: #F37B1D; + border-color: #e56c0c; + color: #fff; + /*display: inline-block;*/ + +} + +.am-u-sm-12 input[disabled]{ + border:1px solid #fff; + background: #fff; + +} +.am-u-sm-12 textarea[disabled]{ + border:1px solid #fff; + background: #fff; + +} \ No newline at end of file diff --git a/public/css/amazeui.css b/public/assets/css/amazeui.css old mode 100644 new mode 100755 similarity index 79% rename from public/css/amazeui.css rename to public/assets/css/amazeui.css index f142ad8..d4e1b67 --- a/public/css/amazeui.css +++ b/public/assets/css/amazeui.css @@ -1,4 +1,4 @@ -/*! Amaze UI v2.0.0 | by Amaze UI Team | (c) 2014 AllMobilize, Inc. | Licensed under MIT | 2014-12-05T02:12:50 UTC */ +/*! Amaze UI v2.7.2 | by Amaze UI Team | (c) 2016 AllMobilize, Inc. | Licensed under MIT | 2016-08-17T16:17:24+0800 */ /* ========================================================================== Component: Base ============================================================================ */ @@ -27,7 +27,7 @@ body { html { -ms-text-size-adjust: 100%; /* 1 */ - -webkit-text-size-adjust: 100% + -webkit-text-size-adjust: 100%; /* 1 */ } /** @@ -70,7 +70,7 @@ progress, video { display: inline-block; /* 1 */ - vertical-align: baseline + vertical-align: baseline; /* 2 */ } /** @@ -174,18 +174,15 @@ sub { * 2. Responsiveness: Sets a maxium width relative to the parent and auto scales the height * 3. Remove the gap between images and the bottom of their containers * 4. Remove border when inside `a` element in IE 8/9. + * remove 2. for Issue #502 */ img { -webkit-box-sizing: border-box; box-sizing: border-box; /* 1 */ - max-width: 100%; - /* 2 */ - height: auto; - /* 2 */ vertical-align: middle; /* 3 */ - border: 0 + border: 0; /* 4 */ } /** @@ -229,7 +226,7 @@ fieldset { legend { border: 0; /* 1 */ - padding: 0 + padding: 0; /* 2 */ } /** @@ -247,7 +244,7 @@ textarea { /* 1 */ font: inherit; /* 2 */ - margin: 0 + margin: 0; /* 3 */ } /** @@ -287,7 +284,7 @@ input[type="reset"], input[type="submit"] { -webkit-appearance: button; /* 2 */ - cursor: pointer + cursor: pointer; /* 3 */ } /* @@ -302,7 +299,7 @@ input[type="checkbox"] { padding: 0; /*2*/ -webkit-box-sizing: border-box; - box-sizing: border-box + box-sizing: border-box; /* 3 */ } /** @@ -338,7 +335,7 @@ input[type="search"] { -webkit-appearance: textfield; /* 1 */ -webkit-box-sizing: content-box; - box-sizing: content-box + box-sizing: content-box; /* 2 */ } /** @@ -388,12 +385,12 @@ th { `font` shorthand property. */ html { - font-size: 62.5%; + font-size: 10px; -webkit-tap-highlight-color: rgba(0, 0, 0, 0); } body { position: relative; - background: #ffffff; + background: #fff; font-family: "Segoe UI", "Lucida Grande", Helvetica, Arial, "Microsoft YaHei", FreeSans, Arimo, "Droid Sans", "wenquanyi micro hei", "Hiragino Sans GB", "Hiragino Sans GB W3", "FontAwesome", sans-serif; font-weight: normal; line-height: 1.6; @@ -445,12 +442,12 @@ a:focus { } a:focus { outline: thin dotted; - outline: 5px auto -webkit-focus-ring-color; + outline: 1px auto -webkit-focus-ring-color; outline-offset: -2px; } /* Insert */ ins { - background: #ffffaa; + background: #ffa; color: #333333; } /** @@ -458,7 +455,7 @@ ins { * Note: Addresses styling not present in IE 8/9. */ mark { - background: #ffffaa; + background: #ffa; color: #333333; } /** @@ -560,7 +557,7 @@ hr { border-top: 1px solid #eeeeee; /* 1 */ -webkit-box-sizing: content-box; - box-sizing: content-box + box-sizing: content-box; /* 1 */ } /* Address */ @@ -572,8 +569,8 @@ blockquote { padding-top: 5px; padding-bottom: 5px; padding-left: 15px; - border-left: 4px solid #dddddd; - font-family: Georgia, "Times New Roman", Times, Kai, "Kaiti SC", KaiTi, BiauKai, "FontAwesome", serif + border-left: 4px solid #ddd; + font-family: Georgia, "Times New Roman", Times, Kai, "Kaiti SC", KaiTi, BiauKai, "FontAwesome", serif; /* Small print for identifying the source */ /* Smaller margin if `small` follows */ } @@ -613,6 +610,13 @@ select { width: device-width; } */ +.am-scrollbar-measure { + width: 100px; + height: 100px; + overflow: scroll; + position: absolute; + top: -9999px; +} /* ========================================================================== Component: Grid ============================================================================ */ @@ -788,7 +792,7 @@ select { .am-u-sm-pull-11 { right: 91.66666667%; } - .am-u-sm-push-1 { + .am-u-sm-push-0 { left: 0; } .am-u-sm-push-1 { @@ -957,7 +961,7 @@ select { .am-u-md-pull-11 { right: 91.66666667%; } - .am-u-md-push-1 { + .am-u-md-push-0 { left: 0; } .am-u-md-push-1 { @@ -1126,7 +1130,7 @@ select { .am-u-lg-pull-11 { right: 91.66666667%; } - .am-u-lg-push-1 { + .am-u-lg-push-0 { left: 0; } .am-u-lg-push-1 { @@ -1626,7 +1630,7 @@ pre code { .am-btn { display: inline-block; margin-bottom: 0; - padding: 0.625em 1em; + padding: 0.5em 1em; vertical-align: middle; font-size: 1.6rem; font-weight: normal; @@ -1637,31 +1641,31 @@ pre code { border: 1px solid transparent; border-radius: 0; cursor: pointer; - outline: 0; + outline: none; -webkit-appearance: none; -webkit-user-select: none; -moz-user-select: none; -ms-user-select: none; user-select: none; -webkit-transition: background-color 300ms ease-out, border-color 300ms ease-out; - transition: background-color 300ms ease-out, border-color 300ms ease-out; + transition: background-color 300ms ease-out, border-color 300ms ease-out; } -.am-btn:focus { +.am-btn:focus, +.am-btn:active:focus { outline: thin dotted; - outline: 5px auto -webkit-focus-ring-color; + outline: 1px auto -webkit-focus-ring-color; outline-offset: -2px; } .am-btn:hover, .am-btn:focus { - outline: 0; - color: #444444; + color: #444; text-decoration: none; } .am-btn:active, .am-btn.am-active { background-image: none; - -webkit-box-shadow: inset 0 1px 8px rgba(0, 0, 0, 0.125); - box-shadow: inset 0 1px 8px rgba(0, 0, 0, 0.125); + -webkit-box-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.15); + box-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.15); } .am-btn.am-disabled, .am-btn[disabled], @@ -1680,23 +1684,30 @@ fieldset[disabled] .am-btn { border-radius: 2px; } .am-btn-default { - color: #444444; + color: #444; background-color: #e6e6e6; border-color: #e6e6e6; } +a.am-btn-default:visited { + color: #444; +} .am-btn-default:hover, .am-btn-default:focus, .am-btn-default:active, .am-btn-default.am-active, -.am-active .am-dropdown-toggle.am-btn-default { - color: #444444; - background-color: #c7c7c7; +.am-dropdown.am-active .am-btn-default.am-dropdown-toggle { + color: #444; border-color: #c7c7c7; } +.am-btn-default:hover, +.am-btn-default:focus { + background-color: #d4d4d4; +} .am-btn-default:active, -.am-btn-default.am-btn-active, -.am-active .am-dropdown-toggle.am-btn-default { +.am-btn-default.am-active, +.am-dropdown.am-active .am-btn-default.am-dropdown-toggle { background-image: none; + background-color: #c2c2c2; } .am-btn-default.am-disabled, .am-btn-default[disabled], @@ -1710,9 +1721,9 @@ fieldset[disabled] .am-btn-default:focus, .am-btn-default.am-disabled:active, .am-btn-default[disabled]:active, fieldset[disabled] .am-btn-default:active, -.am-btn-default.am-disabled.am-btn-active, -.am-btn-default[disabled].am-btn-active, -fieldset[disabled] .am-btn-default.am-btn-active { +.am-btn-default.am-disabled.am-active, +.am-btn-default[disabled].am-active, +fieldset[disabled] .am-btn-default.am-active { background-color: #e6e6e6; border-color: #e6e6e6; } @@ -1721,23 +1732,30 @@ fieldset[disabled] .am-btn-default.am-btn-active { border-color: #d9d9d9; } .am-btn-primary { - color: #ffffff; + color: #fff; background-color: #0e90d2; border-color: #0e90d2; } +a.am-btn-primary:visited { + color: #fff; +} .am-btn-primary:hover, .am-btn-primary:focus, .am-btn-primary:active, .am-btn-primary.am-active, -.am-active .am-dropdown-toggle.am-btn-primary { - color: #ffffff; - background-color: #0a6999; +.am-dropdown.am-active .am-btn-primary.am-dropdown-toggle { + color: #fff; border-color: #0a6999; } +.am-btn-primary:hover, +.am-btn-primary:focus { + background-color: #0c79b1; +} .am-btn-primary:active, -.am-btn-primary.am-btn-active, -.am-active .am-dropdown-toggle.am-btn-primary { +.am-btn-primary.am-active, +.am-dropdown.am-active .am-btn-primary.am-dropdown-toggle { background-image: none; + background-color: #0a628f; } .am-btn-primary.am-disabled, .am-btn-primary[disabled], @@ -1751,9 +1769,9 @@ fieldset[disabled] .am-btn-primary:focus, .am-btn-primary.am-disabled:active, .am-btn-primary[disabled]:active, fieldset[disabled] .am-btn-primary:active, -.am-btn-primary.am-disabled.am-btn-active, -.am-btn-primary[disabled].am-btn-active, -fieldset[disabled] .am-btn-primary.am-btn-active { +.am-btn-primary.am-disabled.am-active, +.am-btn-primary[disabled].am-active, +fieldset[disabled] .am-btn-primary.am-active { background-color: #0e90d2; border-color: #0e90d2; } @@ -1761,24 +1779,79 @@ fieldset[disabled] .am-btn-primary.am-btn-active { .am-btn-group-stacked .am-btn-primary { border-color: #0c80ba; } +.am-btn-secondary { + color: #fff; + background-color: #3bb4f2; + border-color: #3bb4f2; +} +a.am-btn-secondary:visited { + color: #fff; +} +.am-btn-secondary:hover, +.am-btn-secondary:focus, +.am-btn-secondary:active, +.am-btn-secondary.am-active, +.am-dropdown.am-active .am-btn-secondary.am-dropdown-toggle { + color: #fff; + border-color: #0f9ae0; +} +.am-btn-secondary:hover, +.am-btn-secondary:focus { + background-color: #19a7f0; +} +.am-btn-secondary:active, +.am-btn-secondary.am-active, +.am-dropdown.am-active .am-btn-secondary.am-dropdown-toggle { + background-image: none; + background-color: #0e93d7; +} +.am-btn-secondary.am-disabled, +.am-btn-secondary[disabled], +fieldset[disabled] .am-btn-secondary, +.am-btn-secondary.am-disabled:hover, +.am-btn-secondary[disabled]:hover, +fieldset[disabled] .am-btn-secondary:hover, +.am-btn-secondary.am-disabled:focus, +.am-btn-secondary[disabled]:focus, +fieldset[disabled] .am-btn-secondary:focus, +.am-btn-secondary.am-disabled:active, +.am-btn-secondary[disabled]:active, +fieldset[disabled] .am-btn-secondary:active, +.am-btn-secondary.am-disabled.am-active, +.am-btn-secondary[disabled].am-active, +fieldset[disabled] .am-btn-secondary.am-active { + background-color: #3bb4f2; + border-color: #3bb4f2; +} +.am-btn-group .am-btn-secondary, +.am-btn-group-stacked .am-btn-secondary { + border-color: #23abf0; +} .am-btn-warning { - color: #ffffff; - background-color: #f37b1d; - border-color: #f37b1d; + color: #fff; + background-color: #F37B1D; + border-color: #F37B1D; +} +a.am-btn-warning:visited { + color: #fff; } .am-btn-warning:hover, .am-btn-warning:focus, .am-btn-warning:active, .am-btn-warning.am-active, -.am-active .am-dropdown-toggle.am-btn-warning { - color: #ffffff; - background-color: #c85e0b; +.am-dropdown.am-active .am-btn-warning.am-dropdown-toggle { + color: #fff; border-color: #c85e0b; } +.am-btn-warning:hover, +.am-btn-warning:focus { + background-color: #e0690c; +} .am-btn-warning:active, -.am-btn-warning.am-btn-active, -.am-active .am-dropdown-toggle.am-btn-warning { +.am-btn-warning.am-active, +.am-dropdown.am-active .am-btn-warning.am-dropdown-toggle { background-image: none; + background-color: #be590a; } .am-btn-warning.am-disabled, .am-btn-warning[disabled], @@ -1792,34 +1865,41 @@ fieldset[disabled] .am-btn-warning:focus, .am-btn-warning.am-disabled:active, .am-btn-warning[disabled]:active, fieldset[disabled] .am-btn-warning:active, -.am-btn-warning.am-disabled.am-btn-active, -.am-btn-warning[disabled].am-btn-active, -fieldset[disabled] .am-btn-warning.am-btn-active { - background-color: #f37b1d; - border-color: #f37b1d; +.am-btn-warning.am-disabled.am-active, +.am-btn-warning[disabled].am-active, +fieldset[disabled] .am-btn-warning.am-active { + background-color: #F37B1D; + border-color: #F37B1D; } .am-btn-group .am-btn-warning, .am-btn-group-stacked .am-btn-warning { border-color: #ea6e0c; } .am-btn-danger { - color: #ffffff; + color: #fff; background-color: #dd514c; border-color: #dd514c; } +a.am-btn-danger:visited { + color: #fff; +} .am-btn-danger:hover, .am-btn-danger:focus, .am-btn-danger:active, .am-btn-danger.am-active, -.am-active .am-dropdown-toggle.am-btn-danger { - color: #ffffff; - background-color: #c62b26; +.am-dropdown.am-active .am-btn-danger.am-dropdown-toggle { + color: #fff; border-color: #c62b26; } +.am-btn-danger:hover, +.am-btn-danger:focus { + background-color: #d7342e; +} .am-btn-danger:active, -.am-btn-danger.am-btn-active, -.am-active .am-dropdown-toggle.am-btn-danger { +.am-btn-danger.am-active, +.am-dropdown.am-active .am-btn-danger.am-dropdown-toggle { background-image: none; + background-color: #be2924; } .am-btn-danger.am-disabled, .am-btn-danger[disabled], @@ -1833,9 +1913,9 @@ fieldset[disabled] .am-btn-danger:focus, .am-btn-danger.am-disabled:active, .am-btn-danger[disabled]:active, fieldset[disabled] .am-btn-danger:active, -.am-btn-danger.am-disabled.am-btn-active, -.am-btn-danger[disabled].am-btn-active, -fieldset[disabled] .am-btn-danger.am-btn-active { +.am-btn-danger.am-disabled.am-active, +.am-btn-danger[disabled].am-active, +fieldset[disabled] .am-btn-danger.am-active { background-color: #dd514c; border-color: #dd514c; } @@ -1844,23 +1924,30 @@ fieldset[disabled] .am-btn-danger.am-btn-active { border-color: #d93c37; } .am-btn-success { - color: #ffffff; + color: #fff; background-color: #5eb95e; border-color: #5eb95e; } +a.am-btn-success:visited { + color: #fff; +} .am-btn-success:hover, .am-btn-success:focus, .am-btn-success:active, .am-btn-success.am-active, -.am-active .am-dropdown-toggle.am-btn-success { - color: #ffffff; - background-color: #429842; +.am-dropdown.am-active .am-btn-success.am-dropdown-toggle { + color: #fff; border-color: #429842; } +.am-btn-success:hover, +.am-btn-success:focus { + background-color: #4aaa4a; +} .am-btn-success:active, -.am-btn-success.am-btn-active, -.am-active .am-dropdown-toggle.am-btn-success { +.am-btn-success.am-active, +.am-dropdown.am-active .am-btn-success.am-dropdown-toggle { background-image: none; + background-color: #3f913f; } .am-btn-success.am-disabled, .am-btn-success[disabled], @@ -1874,9 +1961,9 @@ fieldset[disabled] .am-btn-success:focus, .am-btn-success.am-disabled:active, .am-btn-success[disabled]:active, fieldset[disabled] .am-btn-success:active, -.am-btn-success.am-disabled.am-btn-active, -.am-btn-success[disabled].am-btn-active, -fieldset[disabled] .am-btn-success.am-btn-active { +.am-btn-success.am-disabled.am-active, +.am-btn-success[disabled].am-active, +fieldset[disabled] .am-btn-success.am-active { background-color: #5eb95e; border-color: #5eb95e; } @@ -1884,47 +1971,6 @@ fieldset[disabled] .am-btn-success.am-btn-active { .am-btn-group-stacked .am-btn-success { border-color: #4db14d; } -.am-btn-secondary { - color: #ffffff; - background-color: #3bb4f2; - border-color: #3bb4f2; -} -.am-btn-secondary:hover, -.am-btn-secondary:focus, -.am-btn-secondary:active, -.am-btn-secondary.am-active, -.am-active .am-dropdown-toggle.am-btn-secondary { - color: #ffffff; - background-color: #0f9ae0; - border-color: #0f9ae0; -} -.am-btn-secondary:active, -.am-btn-secondary.am-btn-active, -.am-active .am-dropdown-toggle.am-btn-secondary { - background-image: none; -} -.am-btn-secondary.am-disabled, -.am-btn-secondary[disabled], -fieldset[disabled] .am-btn-secondary, -.am-btn-secondary.am-disabled:hover, -.am-btn-secondary[disabled]:hover, -fieldset[disabled] .am-btn-secondary:hover, -.am-btn-secondary.am-disabled:focus, -.am-btn-secondary[disabled]:focus, -fieldset[disabled] .am-btn-secondary:focus, -.am-btn-secondary.am-disabled:active, -.am-btn-secondary[disabled]:active, -fieldset[disabled] .am-btn-secondary:active, -.am-btn-secondary.am-disabled.am-btn-active, -.am-btn-secondary[disabled].am-btn-active, -fieldset[disabled] .am-btn-secondary.am-btn-active { - background-color: #3bb4f2; - border-color: #3bb4f2; -} -.am-btn-group .am-btn-secondary, -.am-btn-group-stacked .am-btn-secondary { - border-color: #23abf0; -} /* Style links like a button */ .am-btn-link { color: #0e90d2; @@ -2010,6 +2056,8 @@ th { .am-table { width: 100%; margin-bottom: 1.6rem; + border-spacing: 0; + border-collapse: separate; } .am-table > thead > tr > th, .am-table > tbody > tr > th, @@ -2020,11 +2068,11 @@ th { padding: 0.7rem; line-height: 1.6; vertical-align: top; - border-top: 1px solid #dddddd; + border-top: 1px solid #ddd; } .am-table > thead > tr > th { vertical-align: bottom; - border-bottom: 2px solid #dddddd; + border-bottom: 1px solid #ddd; } .am-table > caption + thead > tr:first-child > th, .am-table > colgroup + thead > tr:first-child > th, @@ -2034,12 +2082,13 @@ th { .am-table > thead:first-child > tr:first-child > td { border-top: 0; } -.am-table > tbody + tbody { - border-top: 2px solid #dddddd; +.am-table > tbody + tbody tr:first-child td { + border-top: 2px solid #ddd; } /* Bordered version */ .am-table-bordered { - border: 1px solid #dddddd; + border: 1px solid #ddd; + border-left: none; } .am-table-bordered > thead > tr > th, .am-table-bordered > tbody > tr > th, @@ -2047,17 +2096,22 @@ th { .am-table-bordered > thead > tr > td, .am-table-bordered > tbody > tr > td, .am-table-bordered > tfoot > tr > td { - border: 1px solid #dddddd; + border-left: 1px solid #ddd; + /*&:first-child { + border-left: none; + }*/ } -.am-table-bordered > thead > tr > th, -.am-table-bordered > thead > tr > td { - border-bottom-width: 2px; +.am-table-bordered > tbody > tr:first-child > th, +.am-table-bordered > tbody > tr:first-child > td { + border-top: none; +} +.am-table-bordered > thead + tbody > tr:first-child > th, +.am-table-bordered > thead + tbody > tr:first-child > td { + border-top: 1px solid #ddd; } /* Border-radius version */ .am-table-radius { - border: none; - -webkit-box-shadow: 0 0 1px #999999; - box-shadow: 0 0 1px #999999; + border: 1px solid #ddd; border-radius: 2px; } .am-table-radius > thead > tr:first-child > th:first-child, @@ -2100,6 +2154,22 @@ th { .am-table-hover > tbody > tr:hover > th { background-color: #e9e9e9; } +.am-table-compact > thead > tr > th, +.am-table-compact > tbody > tr > th, +.am-table-compact > tfoot > tr > th, +.am-table-compact > thead > tr > td, +.am-table-compact > tbody > tr > td, +.am-table-compact > tfoot > tr > td { + padding: 0.4rem; +} +.am-table-centered > thead > tr > th, +.am-table-centered > tbody > tr > th, +.am-table-centered > tfoot > tr > th, +.am-table-centered > thead > tr > td, +.am-table-centered > tbody > tr > td, +.am-table-centered > tfoot > tr > td { + text-align: center; +} .am-table > thead > tr > td.am-active, .am-table > tbody > tr > td.am-active, .am-table > tfoot > tr > td.am-active, @@ -2112,7 +2182,7 @@ th { .am-table > thead > tr.am-active > th, .am-table > tbody > tr.am-active > th, .am-table > tfoot > tr.am-active > th { - background-color: #ffffdd; + background-color: #ffd; } .am-table > thead > tr > td.am-disabled, .am-table > tbody > tr > td.am-disabled, @@ -2170,7 +2240,7 @@ th { .am-table > thead > tr.am-warning > th, .am-table > tbody > tr.am-warning > th, .am-table > tfoot > tr.am-warning > th { - color: #f37b1d; + color: #F37B1D; background-color: rgba(243, 123, 29, 0.115); } .am-table > thead > tr > td.am-danger, @@ -2212,7 +2282,7 @@ label { } input[type="search"] { -webkit-box-sizing: border-box; - box-sizing: border-box; + box-sizing: border-box; } input[type="radio"], input[type="checkbox"] { @@ -2237,7 +2307,7 @@ input[type="file"]:focus, input[type="radio"]:focus, input[type="checkbox"]:focus { outline: thin dotted; - outline: 5px auto -webkit-focus-ring-color; + outline: 1px auto -webkit-focus-ring-color; outline-offset: -2px; } input[type="number"]::-webkit-outer-spin-button, @@ -2272,18 +2342,20 @@ output { .am-form-field { display: block; width: 100%; - padding: 0.625em; + padding: 0.5em; font-size: 1.6rem; line-height: 1.2; color: #555555; vertical-align: middle; - background-color: #ffffff; + background-color: #fff; background-image: none; - border: 1px solid #cccccc; + border: 1px solid #ccc; border-radius: 0; -webkit-appearance: none; -webkit-transition: border-color 0.15s ease-in-out, -webkit-box-shadow 0.15s ease-in-out; - transition: border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out; + transition: border-color 0.15s ease-in-out, -webkit-box-shadow 0.15s ease-in-out; + transition: border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out; + transition: border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out, -webkit-box-shadow 0.15s ease-in-out; } .am-form select:focus, .am-form textarea:focus, @@ -2321,7 +2393,7 @@ output { .am-form input[type="tel"]:focus, .am-form input[type="color"]:focus, .am-form-field:focus { - background-color: #fafffe; + background-color: #fefffe; border-color: #3bb4f2; outline: 0; -webkit-box-shadow: inset 0 1px 1px rgba(0,0,0,.075), 0 0 5px rgba(59, 180, 242, 0.3); @@ -2521,12 +2593,31 @@ fieldset[disabled] .am-form-field { } .am-form select { -webkit-appearance: none !important; + -moz-appearance: none !important; -webkit-border-radius: 0; - background: #ffffff url('data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZlcnNpb249IjEuMSIgeD0iMTJweCIgeT0iMHB4IiB3aWR0aD0iMjRweCIgaGVpZ2h0PSIzcHgiIHZpZXdCb3g9IjAgMCA2IDMiIGVuYWJsZS1iYWNrZ3JvdW5kPSJuZXcgMCAwIDYgMyIgeG1sOnNwYWNlPSJwcmVzZXJ2ZSI+PHBvbHlnb24gcG9pbnRzPSI1Ljk5MiwwIDIuOTkyLDMgLTAuMDA4LDAgIi8+PC9zdmc+') no-repeat 100% center; + background: #fff url('data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZlcnNpb249IjEuMSIgeD0iMTJweCIgeT0iMHB4IiB3aWR0aD0iMjRweCIgaGVpZ2h0PSIzcHgiIHZpZXdCb3g9IjAgMCA2IDMiIGVuYWJsZS1iYWNrZ3JvdW5kPSJuZXcgMCAwIDYgMyIgeG1sOnNwYWNlPSJwcmVzZXJ2ZSI+PHBvbHlnb24gcG9pbnRzPSI1Ljk5MiwwIDIuOTkyLDMgLTAuMDA4LDAgIi8+PC9zdmc+') no-repeat 100% center; } .am-form select[multiple="multiple"] { background-image: none; } +.am-form input[type="datetime-local"], +.am-form input[type="date"], +input[type="datetime-local"].am-form-field, +input[type="date"].am-form-field { + height: 37px; +} +.am-form input[type="datetime-local"].am-input-sm, +.am-form input[type="date"].am-input-sm, +input[type="datetime-local"].am-form-field.am-input-sm, +input[type="date"].am-form-field.am-input-sm { + height: 32px; +} +.am-form input[type="datetime-local"] .am-input-lg, +.am-form input[type="date"] .am-input-lg, +input[type="datetime-local"].am-form-field .am-input-lg, +input[type="date"].am-form-field .am-input-lg { + height: 41px; +} /* help text */ .am-form-help { display: block; @@ -2539,6 +2630,21 @@ fieldset[disabled] .am-form-field { .am-form-group { margin-bottom: 1.5rem; } +/* file field */ +.am-form-file { + position: relative; + overflow: hidden; +} +.am-form-file input[type="file"] { + position: absolute; + left: 0; + top: 0; + z-index: 1; + width: 100%; + opacity: 0; + cursor: pointer; + font-size: 50rem; +} /** * Checkboxes and radios * Indent the labels to position radios/checkboxes as hanging controls. @@ -2606,67 +2712,74 @@ fieldset[disabled] .am-checkbox-inline { .am-form-warning .am-radio, .am-form-warning .am-checkbox, .am-form-warning .am-radio-inline, -.am-form-warning .am-checkbox-inline { - color: #f37b1d; +.am-form-warning .am-checkbox-inline, +.am-form-warning label { + color: #F37B1D; +} +.am-form-warning [class*="icon-"] { + color: #F37B1D; } .am-form-warning .am-form-field { - border-color: #f37b1d !important; + border-color: #F37B1D !important; -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075); box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075); } .am-form-warning .am-form-field:focus { - background-color: #fafffe; + background-color: #fefffe; border-color: #d2620b; -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 5px #f8b47e !important; box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 5px #f8b47e !important; } -.am-form-warning [class*="icon-"] { - color: #f37b1d; -} .am-form-error .am-form-help, .am-form-error .am-form-label, .am-form-error .am-radio, .am-form-error .am-checkbox, .am-form-error .am-radio-inline, -.am-form-error .am-checkbox-inline { +.am-form-error .am-checkbox-inline, +.am-form-error label { + color: #dd514c; +} +.am-form-error [class*="icon-"] { color: #dd514c; } -.am-form-error .am-form-field { +.am-form-error .am-form-field, +.am-field-error { border-color: #dd514c !important; -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075); box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075); } -.am-form-error .am-form-field:focus { - background-color: #fafffe; +.am-form-error .am-form-field:focus, +.am-field-error:focus { + background-color: #fefffe; border-color: #cf2d27; -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 5px #eda4a2 !important; box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 5px #eda4a2 !important; } -.am-form-error [class*="icon-"] { - color: #dd514c; -} .am-form-success .am-form-help, .am-form-success .am-form-label, .am-form-success .am-radio, .am-form-success .am-checkbox, .am-form-success .am-radio-inline, -.am-form-success .am-checkbox-inline { +.am-form-success .am-checkbox-inline, +.am-form-success label { + color: #5eb95e; +} +.am-form-success [class*="icon-"] { color: #5eb95e; } -.am-form-success .am-form-field { +.am-form-success .am-form-field, +.am-field-valid { border-color: #5eb95e !important; -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075); box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075); } -.am-form-success .am-form-field:focus { - background-color: #fafffe; +.am-form-success .am-form-field:focus, +.am-field-valid:focus { + background-color: #fefffe; border-color: #459f45; -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 5px #a5d8a5 !important; box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 5px #a5d8a5 !important; } -.am-form-success [class*="icon-"] { - color: #5eb95e; -} /* Horizontal forms */ .am-form-horizontal .am-form-label, .am-form-horizontal .am-radio, @@ -2706,9 +2819,9 @@ fieldset[disabled] .am-checkbox-inline { display: inline-table; vertical-align: middle; } - .am-form-inline .am-input-group .am-input-group-addon, + .am-form-inline .am-input-group .am-input-group-label, .am-form-inline .am-input-group .am-input-group-btn, - .am-form-inline .am-input-group .am-form-control { + .am-form-inline .am-input-group .am-form-label { width: auto; } .am-form-inline .am-input-group > .am-form-field { @@ -2731,9 +2844,6 @@ fieldset[disabled] .am-checkbox-inline { float: none; margin-left: 0; } - .am-form-inline .am-form-feedback .am-form-field-feedback { - top: 0; - } } /* Form field size */ .am-input-sm { @@ -2742,34 +2852,56 @@ fieldset[disabled] .am-checkbox-inline { .am-input-lg { font-size: 1.8rem !important; } +.am-form-group-sm .am-checkbox, +.am-form-group-sm .am-radio, +.am-form-group-sm .am-form-label, +.am-form-group-sm .am-form-field { + font-size: 1.4rem !important; +} +.am-form-group-lg .am-checkbox, +.am-form-group-lg .am-radio, +.am-form-group-lg .am-form-label, +.am-form-group-lg .am-form-field { + font-size: 1.8rem !important; +} +.am-form-group-lg input[type="radio"], +.am-form-group-lg input[type="checkbox"] { + margin-top: 7px; +} /* Form field feedback states */ .am-form-icon { position: relative; } .am-form-icon .am-form-field { - padding-left: 1.875em !important; + padding-left: 1.75em !important; } .am-form-icon [class*='am-icon-'] { position: absolute; - left: 0.625em; + left: 0.5em; top: 50%; display: block; - margin-top: -0.635em; + margin-top: -0.5em; line-height: 1; z-index: 2; } +.am-form-icon label ~ [class*='am-icon-'] { + top: 70%; +} /* Feedback Icon */ .am-form-feedback { position: relative; } .am-form-feedback .am-form-field { - padding-left: 0.625em !important; - padding-right: 1.875em !important; + padding-left: 0.5em !important; + padding-right: 1.75em !important; } .am-form-feedback [class*='am-icon-'] { - right: 0.625em; + right: 0.5em; left: auto; } +.am-form-horizontal .am-form-feedback [class*='am-icon-'] { + right: 1.6em; +} /* Form set */ .am-form-set { margin-bottom: 1.5rem; @@ -2799,19 +2931,23 @@ fieldset[disabled] .am-checkbox-inline { /* Image thumbnails */ .am-img-thumbnail { display: inline-block; + max-width: 100%; + height: auto; padding: 2px; line-height: 1.6; - background-color: #ffffff; - border: 1px solid #dddddd; + background-color: #fff; + border: 1px solid #ddd; border-radius: 0; -webkit-transition: all 0.2s ease-in-out; - transition: all 0.2s ease-in-out; + transition: all 0.2s ease-in-out; } .am-img-thumbnail.am-radius { border-radius: 2px; } .am-img-responsive { display: block; + max-width: 100%; + height: auto; } /* ========================================================================== Component: Nav @@ -2853,7 +2989,7 @@ fieldset[disabled] .am-checkbox-inline { .am-nav > li.am-active > a, .am-nav > li.am-active > a:hover, .am-nav > li.am-active > a:focus { - color: #ffffff; + color: #fff; background-color: #0e90d2; cursor: default; } @@ -2888,7 +3024,7 @@ fieldset[disabled] .am-checkbox-inline { margin-top: 0; } .am-nav-tabs { - border-bottom: 1px solid #dddddd; + border-bottom: 1px solid #ddd; } .am-nav-tabs > li { float: left; @@ -2904,55 +3040,49 @@ fieldset[disabled] .am-checkbox-inline { border-radius: 0 0 0 0; } .am-nav-tabs > li > a:hover { - border-color: #eeeeee #eeeeee #dddddd; + border-color: #eeeeee #eeeeee #ddd; } .am-nav-tabs > li.am-active > a, .am-nav-tabs > li.am-active > a:hover, .am-nav-tabs > li.am-active > a:focus { color: #555555; - background-color: #ffffff; - border: 1px solid #dddddd; + background-color: #fff; + border: 1px solid #ddd; border-bottom-color: transparent; cursor: default; } .am-nav-tabs.am-nav-justify { - border-bottom: 0 + border-bottom: 0; /* > li > a { - margin-right: 0; - border-radius: @global-radius; - } - - > .am-active > a { - &, - &:hover, - &:focus { - border: 1px solid @nav-tabs-justify-link-border-color; + margin-right: 0; + border-radius: @global-radius; } - }*/ + + > .am-active > a { + &, + &:hover, + &:focus { + border: 1px solid @nav-tabs-justify-link-border-color; + } + }*/ } .am-nav-tabs.am-nav-justify > li > a { margin-right: 0; - border-bottom: 1px solid #dddddd; + border-bottom: 1px solid #ddd; border-radius: 0 0 0 0; } .am-nav-tabs.am-nav-justify > .am-active > a, .am-nav-tabs.am-nav-justify > .am-active > a:hover, .am-nav-tabs.am-nav-justify > .am-active > a:focus { - border-bottom-color: #ffffff; + border-bottom-color: #fff; } .am-nav-justify { width: 100%; - display: -webkit-box; - display: -webkit-flex; - display: -ms-flexbox; - display: flex; } .am-nav-justify > li { float: none; - -webkit-box-flex: 1; - -webkit-flex: 1; - -ms-flex: 1; - flex: 1; + display: table-cell; + width: 1%; } .am-nav-justify > li > a { text-align: center; @@ -2972,8 +3102,8 @@ fieldset[disabled] .am-checkbox-inline { background: #f8f8f8; border-width: 0 0 1px; border-style: solid; - border-color: #dddddd; - color: #666666; + border-color: #ddd; + color: #666; } .am-topbar:before, .am-topbar:after { @@ -2984,7 +3114,7 @@ fieldset[disabled] .am-checkbox-inline { clear: both; } .am-topbar a { - color: #666666; + color: #666; } .am-topbar-brand { margin: 0; @@ -3090,12 +3220,12 @@ fieldset[disabled] .am-checkbox-inline { -ms-transform: rotate(360deg); transform: rotate(360deg); opacity: 0; - -webkit-transition: opacity 0.1s; - transition: opacity 0.1s; + -webkit-transition: opacity .1s; + transition: opacity .1s; } .am-topbar-nav > li > a:hover:after { opacity: 1; - border-bottom-color: #666666; + border-bottom-color: #666; } .am-topbar-nav > li.am-dropdown > a:after { display: none; @@ -3161,11 +3291,11 @@ fieldset[disabled] .am-checkbox-inline { color: #eeeeee; } .am-topbar-inverse .am-topbar-brand a { - color: #ffffff; + color: #fff; } .am-topbar-inverse .am-topbar-brand a:hover, .am-topbar-inverse .am-topbar-brand a:focus { - color: #ffffff; + color: #fff; background-color: transparent; } .am-topbar-inverse .am-topbar-nav > li > a { @@ -3173,7 +3303,7 @@ fieldset[disabled] .am-checkbox-inline { } .am-topbar-inverse .am-topbar-nav > li > a:hover, .am-topbar-inverse .am-topbar-nav > li > a:focus { - color: #ffffff; + color: #fff; background-color: rgba(0, 0, 0, 0.05); } .am-topbar-inverse .am-topbar-nav > li > a:hover:after, @@ -3186,18 +3316,18 @@ fieldset[disabled] .am-checkbox-inline { .am-topbar-inverse .am-topbar-nav > li.am-active > a, .am-topbar-inverse .am-topbar-nav > li.am-active > a:hover, .am-topbar-inverse .am-topbar-nav > li.am-active > a:focus { - color: #ffffff; + color: #fff; background-color: rgba(0, 0, 0, 0.1); } .am-topbar-inverse .am-topbar-nav > li.am-active > a:after, .am-topbar-inverse .am-topbar-nav > li.am-active > a:hover:after, .am-topbar-inverse .am-topbar-nav > li.am-active > a:focus:after { - border-bottom-color: #ffffff; + border-bottom-color: #fff; } .am-topbar-inverse .am-topbar-nav > li .disabled > a, .am-topbar-inverse .am-topbar-nav > li .disabled > a:hover, .am-topbar-inverse .am-topbar-nav > li .disabled > a:focus { - color: #444444; + color: #444; background-color: transparent; } .am-topbar-fixed-top, @@ -3207,8 +3337,7 @@ fieldset[disabled] .am-checkbox-inline { left: 0; z-index: 1000; -webkit-transform: translate3d(0, 0, 0); - -ms-transform: translate3d(0, 0, 0); - transform: translate3d(0, 0, 0); + transform: translate3d(0, 0, 0); } .am-topbar-fixed-top { top: 0; @@ -3258,9 +3387,9 @@ fieldset[disabled] .am-checkbox-inline { margin-right: 5px; } .am-breadcrumb > li + li:before { - content: "»\00a0"; + content: "\00bb\00a0"; padding: 0 8px; - color: #cccccc; + color: #ccc; } .am-breadcrumb > .am-active { color: #999999; @@ -3296,8 +3425,8 @@ fieldset[disabled] .am-checkbox-inline { padding: 0.5em 1em; text-decoration: none; line-height: 1.2; - background-color: #ffffff; - border: 1px solid #dddddd; + background-color: #fff; + border: 1px solid #ddd; border-radius: 0; margin-bottom: 5px; margin-right: 5px; @@ -3319,7 +3448,7 @@ fieldset[disabled] .am-checkbox-inline { .am-pagination > .am-active > a:focus, .am-pagination > .am-active > span:focus { z-index: 2; - color: #ffffff; + color: #fff; background-color: #0e90d2; border-color: #0e90d2; cursor: default; @@ -3331,8 +3460,8 @@ fieldset[disabled] .am-checkbox-inline { .am-pagination > .am-disabled > a:hover, .am-pagination > .am-disabled > a:focus { color: #999999; - background-color: #ffffff; - border-color: #dddddd; + background-color: #fff; + border-color: #ddd; cursor: not-allowed; pointer-events: none; } @@ -3437,6 +3566,30 @@ fieldset[disabled] .am-checkbox-inline { -webkit-animation-play-state: paused !important; animation-play-state: paused !important; } +.am-animation-delay-1 { + -webkit-animation-delay: 1s; + animation-delay: 1s; +} +.am-animation-delay-2 { + -webkit-animation-delay: 2s; + animation-delay: 2s; +} +.am-animation-delay-3 { + -webkit-animation-delay: 3s; + animation-delay: 3s; +} +.am-animation-delay-4 { + -webkit-animation-delay: 4s; + animation-delay: 4s; +} +.am-animation-delay-5 { + -webkit-animation-delay: 5s; + animation-delay: 5s; +} +.am-animation-delay-6 { + -webkit-animation-delay: 6s; + animation-delay: 6s; +} /* Keyframes ============================================================================ */ /* Fade */ @@ -3856,7 +4009,7 @@ fieldset[disabled] .am-checkbox-inline { } /* Sub-object `.@{ns}article-lead` */ .am-article-lead { - color: #666666; + color: #666; font-size: 1.4rem; line-height: 1.5; border: 1px solid #dedede; @@ -3876,6 +4029,10 @@ fieldset[disabled] .am-checkbox-inline { .am-article-bd blockquote { font-family: Georgia, "Times New Roman", Times, Kai, "Kaiti SC", KaiTi, BiauKai, "FontAwesome", serif; } +.am-article-bd img { + display: block; + max-width: 100%; +} /* ========================================================================== Component: Badge ============================================================================ */ @@ -3885,7 +4042,7 @@ fieldset[disabled] .am-checkbox-inline { padding: 0.25em 0.625em; font-size: 1.2rem; font-weight: bold; - color: #ffffff; + color: #fff; line-height: 1; vertical-align: baseline; white-space: nowrap; @@ -3896,12 +4053,6 @@ fieldset[disabled] .am-checkbox-inline { .am-badge:empty { display: none; } -a.am-badge:hover, -a.am-badge:focus { - color: #ffffff; - text-decoration: none; - cursor: pointer; -} .am-badge.am-square { border-radius: 0; } @@ -3911,6 +4062,12 @@ a.am-badge:focus { .am-badge.am-round { border-radius: 1000px; } +a.am-badge:hover, +a.am-badge:focus { + color: #fff; + text-decoration: none; + cursor: pointer; +} .am-badge-primary { background-color: #0e90d2; } @@ -3921,7 +4078,7 @@ a.am-badge:focus { background-color: #5eb95e; } .am-badge-warning { - background-color: #f37b1d; + background-color: #F37B1D; } .am-badge-danger { background-color: #dd514c; @@ -4129,16 +4286,16 @@ a.am-badge:focus { border-left-color: #f8f8f8; } .am-comment-warning .am-comment-avatar { - border-color: #f37b1d; + border-color: #F37B1D; } .am-comment-warning .am-comment-main { - border-color: #f37b1d; + border-color: #F37B1D; } .am-comment-warning .am-comment-main:before { - border-right-color: #f37b1d; + border-right-color: #F37B1D; } .am-comment-warning.am-comment-flip .am-comment-main:before { - border-left-color: #f37b1d; + border-left-color: #F37B1D; border-right-color: transparent; } .am-comment-warning.am-comment-flip .am-comment-main:after { @@ -4321,20 +4478,17 @@ a.am-badge:focus { border-top-left-radius: 0; } .am-btn-group-justify { + display: table; + table-layout: fixed; + border-collapse: separate; width: 100%; - display: -webkit-box; - display: -webkit-flex; - display: -ms-flexbox; - display: flex; } .am-btn-group-justify > .am-btn, .am-btn-group-justify > .am-btn-group { float: none; - -webkit-box-flex: 1; - -webkit-flex: 1; - -ms-flex: 1; - flex: 1; -} + display: table-cell; + width: 1%; +} .am-btn-group-justify > .am-btn-group .am-btn { width: 100%; } @@ -4370,7 +4524,9 @@ a.am-badge:focus { outline: 0; } [data-am-button] > .am-btn > input[type="radio"], -[data-am-button] > .am-btn > input[type="checkbox"] { +[data-am-button] > .am-btn > input[type="checkbox"], +.am-btn-group-check > .am-btn > input[type="radio"], +.am-btn-group-check > .am-btn > input[type="checkbox"] { position: absolute; z-index: -1; opacity: 0; @@ -4385,20 +4541,23 @@ a.am-badge:focus { font-size: 20px; font-weight: bold; line-height: 24px; - color: #000000; - text-shadow: 0 1px 0 #ffffff; + color: #000; + text-shadow: 0 1px 0 #fff; opacity: .2; -webkit-transition: all .3s; - transition: all .3s; + transition: all .3s; } .am-close:hover, .am-close:focus { - color: #000000; + color: #000; text-decoration: none; cursor: pointer; opacity: .5; outline: none; } +.am-close[class*="am-icon-"] { + font-size: 16px; +} button.am-close { padding: 0; cursor: pointer; @@ -4412,17 +4571,14 @@ a.am-close:hover { text-decoration: none; cursor: pointer; } -.am-close[class*="am-icon-"] { - font-size: 16px; -} /* Modifiers ============================================================================ */ .am-close-alt { border-radius: 50%; - background: #eeeeee; + background: #eee; opacity: 0.7; -webkit-box-shadow: 0 0 0 1px rgba(0, 0, 0, 0.25); - box-shadow: 0 0 0 1px rgba(0, 0, 0, 0.25) + box-shadow: 0 0 0 1px rgba(0, 0, 0, 0.25); /* Hover */ } .am-close-alt:hover, @@ -4441,8 +4597,8 @@ a.am-close:hover { ============================================================================= */ @font-face { font-family: 'FontAwesome'; - src: url('//dn-staticfile.qbox.me/font-awesome/4.2.0/fonts/fontawesome-webfont.eot?v=4.2.0'); - src: url('//dn-staticfile.qbox.me/font-awesome/4.2.0/fonts/fontawesome-webfont.eot?#iefix&v=4.2.0') format('embedded-opentype'), url('//dn-staticfile.qbox.me/font-awesome/4.2.0/fonts/fontawesome-webfont.woff?v=4.2.0') format('woff'), url('//dn-staticfile.qbox.me/font-awesome/4.2.0/fonts/fontawesome-webfont.ttf?v=4.2.0') format('truetype'), url('//dn-staticfile.qbox.me/font-awesome/4.2.0/fonts/fontawesome-webfont.svg?v=4.2.0#fontawesomeregular') format('svg'); + src: url('../fonts/fontawesome-webfont.eot?v=4.6.3'); + src: url('../fonts/fontawesome-webfont.eot?#iefix&v=4.6.3') format('embedded-opentype'), url('../fonts/fontawesome-webfont.woff2?v=4.6.3') format('woff2'), url('../fonts/fontawesome-webfont.woff?v=4.6.3') format('woff'), url('../fonts/fontawesome-webfont.ttf?v=4.6.3') format('truetype'); font-weight: normal; font-style: normal; } @@ -4450,20 +4606,26 @@ a.am-close:hover { ============================================================================= */ [class*="am-icon-"] { display: inline-block; + font-style: normal; } [class*="am-icon-"]:before { display: inline-block; - font-family: "FontAwesome", sans-serif; - font-weight: normal; - font-style: normal; - vertical-align: baseline; - line-height: 1; + font: normal normal normal 1.6rem/1 "FontAwesome", sans-serif; + /*font-weight: normal; // 2 + font-style: normal; // 2 + vertical-align: baseline; // 3 + line-height: 1; // 4*/ + font-size: inherit; + text-rendering: auto; -webkit-font-smoothing: antialiased; -moz-osx-font-smoothing: grayscale; + -webkit-transform: translate(0, 0); + -ms-transform: translate(0, 0); + transform: translate(0, 0); } .am-icon-border { padding: .2em .25em .15em; - border: solid 0.08em #eeeeee; + border: solid 0.08em #eee; border-radius: .1em; } [class*="am-icon-"].am-fl { @@ -4488,16 +4650,16 @@ a.am-close:hover { ============================================================================= */ .am-icon-btn { -webkit-box-sizing: border-box; - box-sizing: border-box; + box-sizing: border-box; display: inline-block; width: 48px; height: 48px; font-size: 24px; line-height: 48px; border-radius: 50%; - background-color: #eeeeee; + background-color: #eee; color: #555555; - text-align: center + text-align: center; /** * Hover * 1. Apply hover style also to focus state @@ -4511,11 +4673,11 @@ a.am-close:hover { background-color: #f5f5f5; color: #333333; text-decoration: none; - outline: none + outline: none; /* 2 */ } .am-icon-btn:active { - background-color: #dddddd; + background-color: #ddd; color: #333333; } .am-icon-btn.am-primary, @@ -4523,7 +4685,7 @@ a.am-close:hover { .am-icon-btn.am-success, .am-icon-btn.am-warning, .am-icon-btn.am-danger { - color: #ffffff; + color: #fff; } .am-icon-btn.am-primary { background-color: #0e90d2; @@ -4535,7 +4697,7 @@ a.am-close:hover { background-color: #5eb95e; } .am-icon-btn.am-warning { - background-color: #f37b1d; + background-color: #F37B1D; } .am-icon-btn.am-danger { background-color: #dd514c; @@ -4552,6 +4714,12 @@ a.am-close:hover { font-size: 28px; line-height: 64px; } +/* Modifier: `.am-icon-fw` Fixed width +============================================================================= */ +.am-icon-fw { + width: 1.25em; + text-align: center; +} /* Icon mapping ============================================================================= */ .am-icon-glass:before { @@ -5001,6 +5169,7 @@ a.am-close:hover { .am-icon-twitter:before { content: "\f099"; } +.am-icon-facebook-f:before, .am-icon-facebook:before { content: "\f09a"; } @@ -5013,6 +5182,7 @@ a.am-close:hover { .am-icon-credit-card:before { content: "\f09d"; } +.am-icon-feed:before, .am-icon-rss:before { content: "\f09e"; } @@ -5650,7 +5820,8 @@ a.am-close:hover { .am-icon-male:before { content: "\f183"; } -.am-icon-gittip:before { +.am-icon-gittip:before, +.am-icon-gratipay:before { content: "\f184"; } .am-icon-sun-o:before { @@ -5754,7 +5925,7 @@ a.am-close:hover { .am-icon-digg:before { content: "\f1a6"; } -.am-icon-pied-piper:before { +.am-icon-pied-piper-pp:before { content: "\f1a7"; } .am-icon-pied-piper-alt:before { @@ -5880,6 +6051,7 @@ a.am-close:hover { content: "\f1ce"; } .am-icon-ra:before, +.am-icon-resistance:before, .am-icon-rebel:before { content: "\f1d0"; } @@ -5893,6 +6065,8 @@ a.am-close:hover { .am-icon-git:before { content: "\f1d3"; } +.am-icon-y-combinator-square:before, +.am-icon-yc-square:before, .am-icon-hacker-news:before { content: "\f1d4"; } @@ -6061,14 +6235,501 @@ a.am-close:hover { .am-icon-meanpath:before { content: "\f20c"; } +.am-icon-buysellads:before { + content: "\f20d"; +} +.am-icon-connectdevelop:before { + content: "\f20e"; +} +.am-icon-dashcube:before { + content: "\f210"; +} +.am-icon-forumbee:before { + content: "\f211"; +} +.am-icon-leanpub:before { + content: "\f212"; +} +.am-icon-sellsy:before { + content: "\f213"; +} +.am-icon-shirtsinbulk:before { + content: "\f214"; +} +.am-icon-simplybuilt:before { + content: "\f215"; +} +.am-icon-skyatlas:before { + content: "\f216"; +} +.am-icon-cart-plus:before { + content: "\f217"; +} +.am-icon-cart-arrow-down:before { + content: "\f218"; +} +.am-icon-diamond:before { + content: "\f219"; +} +.am-icon-ship:before { + content: "\f21a"; +} +.am-icon-user-secret:before { + content: "\f21b"; +} +.am-icon-motorcycle:before { + content: "\f21c"; +} +.am-icon-street-view:before { + content: "\f21d"; +} +.am-icon-heartbeat:before { + content: "\f21e"; +} +.am-icon-venus:before { + content: "\f221"; +} +.am-icon-mars:before { + content: "\f222"; +} +.am-icon-mercury:before { + content: "\f223"; +} +.am-icon-intersex:before, +.am-icon-transgender:before { + content: "\f224"; +} +.am-icon-transgender-alt:before { + content: "\f225"; +} +.am-icon-venus-double:before { + content: "\f226"; +} +.am-icon-mars-double:before { + content: "\f227"; +} +.am-icon-venus-mars:before { + content: "\f228"; +} +.am-icon-mars-stroke:before { + content: "\f229"; +} +.am-icon-mars-stroke-v:before { + content: "\f22a"; +} +.am-icon-mars-stroke-h:before { + content: "\f22b"; +} +.am-icon-neuter:before { + content: "\f22c"; +} +.am-icon-genderless:before { + content: "\f22d"; +} +.am-icon-facebook-official:before { + content: "\f230"; +} +.am-icon-pinterest-p:before { + content: "\f231"; +} +.am-icon-whatsapp:before { + content: "\f232"; +} +.am-icon-server:before { + content: "\f233"; +} +.am-icon-user-plus:before { + content: "\f234"; +} +.am-icon-user-times:before { + content: "\f235"; +} +.am-icon-hotel:before, +.am-icon-bed:before { + content: "\f236"; +} +.am-icon-viacoin:before { + content: "\f237"; +} +.am-icon-train:before { + content: "\f238"; +} +.am-icon-subway:before { + content: "\f239"; +} +.am-icon-medium:before { + content: "\f23a"; +} +.am-icon-yc:before, +.am-icon-y-combinator:before { + content: "\f23b"; +} +.am-icon-optin-monster:before { + content: "\f23c"; +} +.am-icon-opencart:before { + content: "\f23d"; +} +.am-icon-expeditedssl:before { + content: "\f23e"; +} +.am-icon-battery-4:before, +.am-icon-battery-full:before { + content: "\f240"; +} +.am-icon-battery-3:before, +.am-icon-battery-three-quarters:before { + content: "\f241"; +} +.am-icon-battery-2:before, +.am-icon-battery-half:before { + content: "\f242"; +} +.am-icon-battery-1:before, +.am-icon-battery-quarter:before { + content: "\f243"; +} +.am-icon-battery-0:before, +.am-icon-battery-empty:before { + content: "\f244"; +} +.am-icon-mouse-pointer:before { + content: "\f245"; +} +.am-icon-i-cursor:before { + content: "\f246"; +} +.am-icon-object-group:before { + content: "\f247"; +} +.am-icon-object-ungroup:before { + content: "\f248"; +} +.am-icon-sticky-note:before { + content: "\f249"; +} +.am-icon-sticky-note-o:before { + content: "\f24a"; +} +.am-icon-cc-jcb:before { + content: "\f24b"; +} +.am-icon-cc-diners-club:before { + content: "\f24c"; +} +.am-icon-clone:before { + content: "\f24d"; +} +.am-icon-balance-scale:before { + content: "\f24e"; +} +.am-icon-hourglass-o:before { + content: "\f250"; +} +.am-icon-hourglass-1:before, +.am-icon-hourglass-start:before { + content: "\f251"; +} +.am-icon-hourglass-2:before, +.am-icon-hourglass-half:before { + content: "\f252"; +} +.am-icon-hourglass-3:before, +.am-icon-hourglass-end:before { + content: "\f253"; +} +.am-icon-hourglass:before { + content: "\f254"; +} +.am-icon-hand-grab-o:before, +.am-icon-hand-rock-o:before { + content: "\f255"; +} +.am-icon-hand-stop-o:before, +.am-icon-hand-paper-o:before { + content: "\f256"; +} +.am-icon-hand-scissors-o:before { + content: "\f257"; +} +.am-icon-hand-lizard-o:before { + content: "\f258"; +} +.am-icon-hand-spock-o:before { + content: "\f259"; +} +.am-icon-hand-pointer-o:before { + content: "\f25a"; +} +.am-icon-hand-peace-o:before { + content: "\f25b"; +} +.am-icon-trademark:before { + content: "\f25c"; +} +.am-icon-registered:before { + content: "\f25d"; +} +.am-icon-creative-commons:before { + content: "\f25e"; +} +.am-icon-gg:before { + content: "\f260"; +} +.am-icon-gg-circle:before { + content: "\f261"; +} +.am-icon-tripadvisor:before { + content: "\f262"; +} +.am-icon-odnoklassniki:before { + content: "\f263"; +} +.am-icon-odnoklassniki-square:before { + content: "\f264"; +} +.am-icon-get-pocket:before { + content: "\f265"; +} +.am-icon-wikipedia-w:before { + content: "\f266"; +} +.am-icon-safari:before { + content: "\f267"; +} +.am-icon-chrome:before { + content: "\f268"; +} +.am-icon-firefox:before { + content: "\f269"; +} +.am-icon-opera:before { + content: "\f26a"; +} +.am-icon-internet-explorer:before { + content: "\f26b"; +} +.am-icon-tv:before, +.am-icon-television:before { + content: "\f26c"; +} +.am-icon-contao:before { + content: "\f26d"; +} +.am-icon-500px:before { + content: "\f26e"; +} +.am-icon-amazon:before { + content: "\f270"; +} +.am-icon-calendar-plus-o:before { + content: "\f271"; +} +.am-icon-calendar-minus-o:before { + content: "\f272"; +} +.am-icon-calendar-times-o:before { + content: "\f273"; +} +.am-icon-calendar-check-o:before { + content: "\f274"; +} +.am-icon-industry:before { + content: "\f275"; +} +.am-icon-map-pin:before { + content: "\f276"; +} +.am-icon-map-signs:before { + content: "\f277"; +} +.am-icon-map-o:before { + content: "\f278"; +} +.am-icon-map:before { + content: "\f279"; +} +.am-icon-commenting:before { + content: "\f27a"; +} +.am-icon-commenting-o:before { + content: "\f27b"; +} +.am-icon-houzz:before { + content: "\f27c"; +} +.am-icon-vimeo:before { + content: "\f27d"; +} +.am-icon-black-tie:before { + content: "\f27e"; +} +.am-icon-fonticons:before { + content: "\f280"; +} +.am-icon-reddit-alien:before { + content: "\f281"; +} +.am-icon-edge:before { + content: "\f282"; +} +.am-icon-credit-card-alt:before { + content: "\f283"; +} +.am-icon-codiepie:before { + content: "\f284"; +} +.am-icon-modx:before { + content: "\f285"; +} +.am-icon-fort-awesome:before { + content: "\f286"; +} +.am-icon-usb:before { + content: "\f287"; +} +.am-icon-product-hunt:before { + content: "\f288"; +} +.am-icon-mixcloud:before { + content: "\f289"; +} +.am-icon-scribd:before { + content: "\f28a"; +} +.am-icon-pause-circle:before { + content: "\f28b"; +} +.am-icon-pause-circle-o:before { + content: "\f28c"; +} +.am-icon-stop-circle:before { + content: "\f28d"; +} +.am-icon-stop-circle-o:before { + content: "\f28e"; +} +.am-icon-shopping-bag:before { + content: "\f290"; +} +.am-icon-shopping-basket:before { + content: "\f291"; +} +.am-icon-hashtag:before { + content: "\f292"; +} +.am-icon-bluetooth:before { + content: "\f293"; +} +.am-icon-bluetooth-b:before { + content: "\f294"; +} +.am-icon-percent:before { + content: "\f295"; +} +.am-icon-gitlab:before { + content: "\f296"; +} +.am-icon-wpbeginner:before { + content: "\f297"; +} +.am-icon-wpforms:before { + content: "\f298"; +} +.am-icon-envira:before { + content: "\f299"; +} +.am-icon-universal-access:before { + content: "\f29a"; +} +.am-icon-wheelchair-alt:before { + content: "\f29b"; +} +.am-icon-question-circle-o:before { + content: "\f29c"; +} +.am-icon-blind:before { + content: "\f29d"; +} +.am-icon-audio-description:before { + content: "\f29e"; +} +.am-icon-volume-control-phone:before { + content: "\f2a0"; +} +.am-icon-braille:before { + content: "\f2a1"; +} +.am-icon-assistive-listening-systems:before { + content: "\f2a2"; +} +.am-icon-asl-interpreting:before, +.am-icon-american-sign-language-interpreting:before { + content: "\f2a3"; +} +.am-icon-deafness:before, +.am-icon-hard-of-hearing:before, +.am-icon-deaf:before { + content: "\f2a4"; +} +.am-icon-glide:before { + content: "\f2a5"; +} +.am-icon-glide-g:before { + content: "\f2a6"; +} +.am-icon-signing:before, +.am-icon-sign-language:before { + content: "\f2a7"; +} +.am-icon-low-vision:before { + content: "\f2a8"; +} +.am-icon-viadeo:before { + content: "\f2a9"; +} +.am-icon-viadeo-square:before { + content: "\f2aa"; +} +.am-icon-snapchat:before { + content: "\f2ab"; +} +.am-icon-snapchat-ghost:before { + content: "\f2ac"; +} +.am-icon-snapchat-square:before { + content: "\f2ad"; +} +.am-icon-pied-piper:before { + content: "\f2ae"; +} +.am-icon-first-order:before { + content: "\f2b0"; +} +.am-icon-yoast:before { + content: "\f2b1"; +} +.am-icon-themeisle:before { + content: "\f2b2"; +} +.am-icon-google-plus-circle:before, +.am-icon-google-plus-official:before { + content: "\f2b3"; +} +.am-icon-fa:before, +.am-icon-font-awesome:before { + content: "\f2b4"; +} /* Modifier: `am-icon-spin` ============================================================================= */ @-webkit-keyframes icon-spin { 0% { -webkit-transform: rotate(0deg); + transform: rotate(0deg); } 100% { -webkit-transform: rotate(359deg); + transform: rotate(359deg); } } @keyframes icon-spin { @@ -6083,7 +6744,11 @@ a.am-close:hover { } .am-icon-spin { -webkit-animation: icon-spin 2s infinite linear; - animation: icon-spin 2s infinite linear; + animation: icon-spin 2s infinite linear; +} +.am-icon-pulse { + -webkit-animation: icon-spin 1s infinite steps(8); + animation: icon-spin 1s infinite steps(8); } .am-icon-ul { padding-left: 0; @@ -6108,11 +6773,6 @@ a.am-close:hover { display: table; border-collapse: separate; } -.am-input-group[class*="col-"] { - float: none; - padding-left: 0; - padding-right: 0; -} .am-input-group .am-form-field { position: relative; z-index: 2; @@ -6137,14 +6797,15 @@ a.am-close:hover { vertical-align: middle; } .am-input-group-label { - padding: 0.625em 1em; + height: 38px; + padding: 0 1em; font-size: 1.6rem; font-weight: normal; - line-height: 1.2; + line-height: 36px; color: #555555; text-align: center; background-color: #eeeeee; - border: 1px solid #cccccc; + border: 1px solid #ccc; border-radius: 0; } .am-input-group-label input[type="radio"], @@ -6184,7 +6845,7 @@ a.am-close:hover { } .am-input-group-btn > .am-btn { position: relative; - border-color: #cccccc; + border-color: #ccc; } .am-input-group-btn > .am-btn + .am-btn { margin-left: -1px; @@ -6202,61 +6863,72 @@ a.am-close:hover { .am-input-group-btn:last-child > .am-btn-group { margin-left: -1px; } +.am-input-group .am-form-field, +.am-input-group-btn > .am-btn { + height: 38px; + padding-bottom: auto; +} .am-input-group-lg > .am-form-field, .am-input-group-lg > .am-input-group-label, .am-input-group-lg > .am-input-group-btn > .am-btn { - padding: 12px 18px !important; + height: 42px; font-size: 1.8rem !important; } +.am-input-group-lg > .am-input-group-label { + line-height: 40px; +} .am-input-group-sm > .am-form-field, .am-input-group-sm > .am-input-group-label, .am-input-group-sm > .am-input-group-btn > .am-btn { - padding: 9px 14.000000000000002px !important; + height: 33px; font-size: 1.4rem !important; } +.am-input-group-sm > .am-input-group-label { + line-height: 31px; +} .am-input-group-primary .am-input-group-label { background: #0e90d2; - color: #ffffff; + color: #fff; } .am-input-group-primary .am-input-group-label, .am-input-group-primary .am-input-group-btn > .am-btn, -.am-input-group-primary .am-form-field { +.am-input-group-primary.am-input-group .am-form-field { border-color: #0e90d2; } -.am-input-group-seconday .am-input-group-label { +.am-input-group-secondary .am-input-group-label { background: #3bb4f2; - color: #ffffff; + color: #fff; } -.am-input-group-seconday .am-input-group-label, -.am-input-group-seconday .am-input-group-btn > .am-btn, -.am-input-group-seconday .am-form-field { +.am-input-group-secondary .am-input-group-label, +.am-input-group-secondary .am-input-group-btn > .am-btn, +.am-input-group-secondary.am-input-group .am-form-field { border-color: #3bb4f2; } .am-input-group-success .am-input-group-label { background: #5eb95e; - color: #ffffff; + color: #fff; } .am-input-group-success .am-input-group-label, .am-input-group-success .am-input-group-btn > .am-btn, -.am-input-group-success .am-form-field { +.am-input-group-success.am-input-group .am-form-field { border-color: #5eb95e; } .am-input-group-warning .am-input-group-label { - background: #f37b1d; - color: #ffffff; + background: #F37B1D; + color: #fff; } .am-input-group-warning .am-input-group-label, .am-input-group-warning .am-input-group-btn > .am-btn, -.am-input-group-warning .am-form-field { - border-color: #f37b1d; +.am-input-group-warning.am-input-group .am-form-field { + border-color: #F37B1D; } .am-input-group-danger .am-input-group-label { background: #dd514c; - color: #ffffff; + color: #fff; } .am-input-group-danger .am-input-group-label, .am-input-group-danger .am-input-group-btn > .am-btn, -.am-input-group-danger .am-form-field { +.am-input-group-danger.am-input-group .am-form-field { border-color: #dd514c; } /* ========================================================================== @@ -6270,7 +6942,7 @@ a.am-close:hover { position: relative; display: block; margin-bottom: -1px; - background-color: #ffffff; + background-color: #fff; border: 1px solid #dedede; border-width: 1px 0; } @@ -6282,7 +6954,7 @@ a.am-close:hover { .am-list > li > a.am-active:hover, .am-list > li > a.am-active:focus { z-index: 2; - color: #ffffff; + color: #fff; background-color: #0e90d2; border-color: #0e90d2; } @@ -6310,25 +6982,33 @@ a.am-close:hover { padding: 1rem; } /* with border */ -.am-list-border > li { +.am-list-border > li, +.am-list-bordered > li { border-width: 1px; } .am-list-border > li:first-child, -.am-list-border > li:first-child > a { +.am-list-bordered > li:first-child, +.am-list-border > li:first-child > a, +.am-list-bordered > li:first-child > a { border-top-right-radius: 0; border-top-left-radius: 0; } .am-list-border > li:last-child, -.am-list-border > li:last-child > a { +.am-list-bordered > li:last-child, +.am-list-border > li:last-child > a, +.am-list-bordered > li:last-child > a { margin-bottom: 0; border-bottom-right-radius: 0; border-bottom-left-radius: 0; } -.am-list-border > li > a { +.am-list-border > li > a, +.am-list-bordered > li > a { padding: 1rem; } .am-list-border > li > a:hover, -.am-list-border > li > a:focus { +.am-list-bordered > li > a:hover, +.am-list-border > li > a:focus, +.am-list-bordered > li > a:focus { background-color: #f5f5f5; } /* Striped */ @@ -6349,7 +7029,7 @@ a.am-close:hover { ============================================================================ */ .am-panel { margin-bottom: 20px; - background-color: #ffffff; + background-color: #fff; border: 1px solid transparent; border-radius: 0; -webkit-box-shadow: 0 1px 1px rgba(0, 0, 0, 0.05); @@ -6378,29 +7058,29 @@ a.am-close:hover { .am-panel-footer { padding: 0.6rem 1.25rem; background-color: #f5f5f5; - border-top: 1px solid #dddddd; + border-top: 1px solid #ddd; border-bottom-right-radius: 0; border-bottom-left-radius: 0; } .am-panel-default { - border-color: #dddddd; + border-color: #ddd; } .am-panel-default > .am-panel-hd { - color: #444444; + color: #444; background-color: #f5f5f5; - border-color: #dddddd; + border-color: #ddd; } .am-panel-default > .am-panel-hd + .am-panel-collapse > .am-panel-bd { - border-top-color: #dddddd; + border-top-color: #ddd; } .am-panel-default > .am-panel-footer + .am-panel-collapse > .am-panel-bd { - border-bottom-color: #dddddd; + border-bottom-color: #ddd; } .am-panel-primary { border-color: #10a0ea; } .am-panel-primary > .am-panel-hd { - color: #ffffff; + color: #fff; background-color: #0e90d2; border-color: #10a0ea; } @@ -6442,7 +7122,7 @@ a.am-close:hover { border-color: #fbd0ae; } .am-panel-warning > .am-panel-hd { - color: #f37b1d; + color: #F37B1D; background-color: rgba(243, 123, 29, 0.15); border-color: #fbd0ae; } @@ -6502,7 +7182,7 @@ a.am-close:hover { border-bottom-right-radius: 0; } .am-panel > .am-panel-bd + .am-table { - border-top: 1px solid #dddddd; + border-top: 1px solid #ddd; } .am-panel > .am-table > tbody:first-child > tr:first-child th, .am-panel > .am-table > tbody:first-child > tr:first-child td { @@ -6566,13 +7246,13 @@ a.am-close:hover { border-bottom: 0; } .am-panel-group .am-panel-hd + .am-panel-collapse .am-panel-bd { - border-top: 1px solid #dddddd; + border-top: 1px solid #ddd; } .am-panel-group .am-panel-footer { border-top: 0; } .am-panel-group .am-panel-footer + .am-panel-collapse .am-panel-bd { - border-bottom: 1px solid #dddddd; + border-bottom: 1px solid #ddd; } /* ========================================================================== Component: Progress @@ -6611,13 +7291,13 @@ a.am-close:hover { height: 100%; font-size: 1.2rem; line-height: 2rem; - color: #ffffff; + color: #fff; text-align: center; background-color: #0e90d2; -webkit-box-shadow: inset 0 -1px 0 rgba(0, 0, 0, 0.15); box-shadow: inset 0 -1px 0 rgba(0, 0, 0, 0.15); -webkit-transition: width .6s ease; - transition: width .6s ease; + transition: width .6s ease; } .am-progress-striped .am-progress-bar { background-image: -webkit-gradient(linear, 0 100%, 100% 0, color-stop(0.25, rgba(255, 255, 255, 0.15)), color-stop(0.25, transparent), color-stop(0.5, transparent), color-stop(0.5, rgba(255, 255, 255, 0.15)), color-stop(0.75, rgba(255, 255, 255, 0.15)), color-stop(0.75, transparent), to(transparent)); @@ -6658,7 +7338,7 @@ a.am-close:hover { background-image: linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent); } .am-progress-bar-warning { - background-color: #f37b1d; + background-color: #F37B1D; } .am-progress-striped .am-progress-bar-warning { background-image: -webkit-gradient(linear, 0 100%, 100% 0, color-stop(0.25, rgba(255, 255, 255, 0.15)), color-stop(0.25, transparent), color-stop(0.5, transparent), color-stop(0.5, rgba(255, 255, 255, 0.15)), color-stop(0.75, rgba(255, 255, 255, 0.15)), color-stop(0.75, transparent), to(transparent)); @@ -6686,11 +7366,11 @@ a.am-close:hover { display: block; padding: 2px; margin-bottom: 2rem; - background-color: #ffffff; - border: 1px solid #dddddd; + background-color: #fff; + border: 1px solid #ddd; border-radius: 0; -webkit-transition: all 0.2s ease-in-out; - transition: all 0.2s ease-in-out; + transition: all 0.2s ease-in-out; } .am-thumbnail > img, .am-thumbnail a > img { @@ -6698,17 +7378,23 @@ a.am-close:hover { margin-right: auto; display: block; } -a.am-thumbnail:hover, -a.am-thumbnail:focus, -a.am-thumbnail.active { +.am-thumbnail a.am-thumbnail:hover, +.am-thumbnail a.am-thumbnail:focus, +.am-thumbnail a.am-thumbnail.active { border-color: #0e90d2; - background-color: #ffffff; + background-color: #fff; +} +img.am-thumbnail, +.am-thumbnail > img, +.am-thumbnail a > img { + max-width: 100%; + height: auto; } /* Image caption */ .am-thumbnail-caption { margin: 0; padding: 0.8rem; - color: #333333; + color: #333; font-weight: normal; } .am-thumbnail-caption *:last-child { @@ -6829,6 +7515,9 @@ a.am-thumbnail.active { .am-margin { margin: 1.6rem; } +.am-margin-0 { + margin: 0!important; +} .am-margin-xs { margin: 0.5rem; } @@ -6845,6 +7534,10 @@ a.am-thumbnail.active { margin-left: 1.6rem; margin-right: 1.6rem; } +.am-margin-horizontal-0 { + margin-left: 0!important; + margin-right: 0!important; +} .am-margin-horizontal-xs { margin-left: 0.5rem; margin-right: 0.5rem; @@ -6865,6 +7558,10 @@ a.am-thumbnail.active { margin-top: 1.6rem; margin-bottom: 1.6rem; } +.am-margin-vertical-0 { + margin-top: 0!important; + margin-bottom: 0!important; +} .am-margin-vertical-xs { margin-top: 0.5rem; margin-bottom: 0.5rem; @@ -6884,6 +7581,9 @@ a.am-thumbnail.active { .am-margin-top { margin-top: 1.6rem; } +.am-margin-top-0 { + margin-top: 0!important; +} .am-margin-top-xs { margin-top: 0.5rem; } @@ -6899,6 +7599,9 @@ a.am-thumbnail.active { .am-margin-bottom { margin-bottom: 1.6rem; } +.am-margin-bottom-0 { + margin-bottom: 0!important; +} .am-margin-bottom-xs { margin-bottom: 0.5rem; } @@ -6914,6 +7617,9 @@ a.am-thumbnail.active { .am-margin-left { margin-left: 1.6rem; } +.am-margin-left-0 { + margin-left: 0!important; +} .am-margin-left-xs { margin-left: 0.5rem; } @@ -6929,6 +7635,9 @@ a.am-thumbnail.active { .am-margin-right { margin-right: 1.6rem; } +.am-margin-right-0 { + margin-right: 0!important; +} .am-margin-right-xs { margin-right: 0.5rem; } @@ -6945,6 +7654,9 @@ a.am-thumbnail.active { .am-padding { padding: 1.6rem; } +.am-padding-0 { + padding: 0!important; +} .am-padding-xs { padding: 0.5rem; } @@ -6961,6 +7673,10 @@ a.am-thumbnail.active { padding-left: 1.6rem; padding-right: 1.6rem; } +.am-padding-horizontal-0 { + padding-left: 0!important; + padding-right: 0!important; +} .am-padding-horizontal-xs { padding-left: 0.5rem; padding-right: 0.5rem; @@ -6981,6 +7697,10 @@ a.am-thumbnail.active { padding-top: 1.6rem; padding-bottom: 1.6rem; } +.am-padding-vertical-0 { + padding-top: 0!important; + padding-bottom: 0!important; +} .am-padding-vertical-xs { padding-top: 0.5rem; padding-bottom: 0.5rem; @@ -7000,6 +7720,9 @@ a.am-thumbnail.active { .am-padding-top { padding-top: 1.6rem; } +.am-padding-top-0 { + padding-top: 0!important; +} .am-padding-top-xs { padding-top: 0.5rem; } @@ -7015,6 +7738,9 @@ a.am-thumbnail.active { .am-padding-bottom { padding-bottom: 1.6rem; } +.am-padding-bottom-0 { + padding-bottom: 0!important; +} .am-padding-bottom-xs { padding-bottom: 0.5rem; } @@ -7030,6 +7756,9 @@ a.am-thumbnail.active { .am-padding-left { padding-left: 1.6rem; } +.am-padding-left-0 { + padding-left: 0!important; +} .am-padding-left-xs { padding-left: 0.5rem; } @@ -7045,6 +7774,9 @@ a.am-thumbnail.active { .am-padding-right { padding-right: 1.6rem; } +.am-padding-right-0 { + padding-right: 0!important; +} .am-padding-right-xs { padding-right: 0.5rem; } @@ -7087,6 +7819,89 @@ a.am-thumbnail.active { .am-hide-lg-down { display: none !important; } + /* table */ + table.am-show-sm-only, + table.am-show-sm-up, + table.am-show-sm, + table.am-show-sm-down, + table.am-hide-md-only, + table.am-hide-md-up, + table.am-hide-md, + table.am-show-md-down, + table.am-hide-lg-only, + table.am-hide-lg-up, + table.am-hide-lg, + table.am-show-lg-down { + display: table !important; + } + thead.am-show-sm-only, + thead.am-show-sm-up, + thead.am-show-sm, + thead.am-show-sm-down, + thead.am-hide-md-only, + thead.am-hide-md-up, + thead.am-hide-md, + thead.am-show-md-down, + thead.am-hide-lg-only, + thead.am-hide-lg-up, + thead.am-hide-lg, + thead.am-show-lg-down { + display: table-header-group !important; + } + tbody.am-show-sm-only, + tbody.am-show-sm-up, + tbody.am-show-sm, + tbody.am-show-sm-down, + tbody.am-hide-md-only, + tbody.am-hide-md-up, + tbody.am-hide-md, + tbody.am-show-md-down, + tbody.am-hide-lg-only, + tbody.am-hide-lg-up, + tbody.am-hide-lg, + tbody.am-show-lg-down { + display: table-row-group !important; + } + tr.am-show-sm-only, + tr.am-show-sm-up, + tr.am-show-sm, + tr.am-show-sm-down, + tr.am-hide-md-only, + tr.am-hide-md-up, + tr.am-hide-md, + tr.am-show-md-down, + tr.am-hide-lg-only, + tr.am-hide-lg-up, + tr.am-hide-lg, + tr.am-show-lg-down { + display: table-row !important; + } + th.am-show-sm-only, + td.am-show-sm-only, + th.am-show-sm-up, + td.am-show-sm-up, + th.am-show-sm, + td.am-show-sm, + th.am-show-sm-down, + td.am-show-sm-down, + th.am-hide-md-only, + td.am-hide-md-only, + th.am-hide-md-up, + td.am-hide-md-up, + th.am-hide-md, + td.am-hide-md, + th.am-show-md-down, + td.am-show-md-down, + th.am-hide-lg-only, + td.am-hide-lg-only, + th.am-hide-lg-up, + td.am-hide-lg-up, + th.am-hide-lg, + td.am-hide-lg, + th.am-show-lg-down, + td.am-show-lg-down { + display: table-cell !important; + } } /* medium displays */ @media only screen and (min-width:641px) { @@ -7118,6 +7933,88 @@ a.am-thumbnail.active { .am-hide-lg-down { display: none !important; } + table.am-hide-sm-only, + table.am-show-sm-up, + table.am-hide-sm, + table.am-hide-sm-down, + table.am-show-md-only, + table.am-show-md-up, + table.am-show-md, + table.am-show-md-down, + table.am-hide-lg-only, + table.am-hide-lg-up, + table.am-hide-lg, + table.am-show-lg-down { + display: table !important; + } + thead.am-hide-sm-only, + thead.am-show-sm-up, + thead.am-hide-sm, + thead.am-hide-sm-down, + thead.am-show-md-only, + thead.am-show-md-up, + thead.am-show-md, + thead.am-show-md-down, + thead.am-hide-lg-only, + thead.am-hide-lg-up, + thead.am-hide-lg, + thead.am-show-lg-down { + display: table-header-group !important; + } + tbody.am-hide-sm-only, + tbody.am-show-sm-up, + tbody.am-hide-sm, + tbody.am-hide-sm-down, + tbody.am-show-md-only, + tbody.am-show-md-up, + tbody.am-show-md, + tbody.am-show-md-down, + tbody.am-hide-lg-only, + tbody.am-hide-lg-up, + tbody.am-hide-lg, + tbody.am-show-lg-down { + display: table-row-group !important; + } + tr.am-hide-sm-only, + tr.am-show-sm-up, + tr.am-hide-sm, + tr.am-hide-sm-down, + tr.am-show-md-only, + tr.am-show-md-up, + tr.am-show-md, + tr.am-show-md-down, + tr.am-hide-lg-only, + tr.am-hide-lg-up, + tr.am-hide-lg, + tr.am-show-lg-down { + display: table-row !important; + } + th.am-hide-sm-only, + td.am-hide-sm-only, + th.am-show-sm-up, + td.am-show-sm-up, + th.am-hide-sm, + td.am-hide-sm, + th.am-hide-sm-down, + td.am-hide-sm-down, + th.am-show-md-only, + td.am-show-md-only, + th.am-show-md-up, + td.am-show-md-up, + th.am-show-md, + td.am-show-md, + th.am-show-md-down, + td.am-show-md-down, + th.am-hide-lg-only, + td.am-hide-lg-only, + th.am-hide-lg-up, + td.am-hide-lg-up, + th.am-hide-lg, + td.am-hide-lg, + th.am-show-lg-down, + td.am-show-lg-down { + display: table-cell !important; + } } /* large displays */ @media only screen and (min-width:1025px) { @@ -7149,6 +8046,88 @@ a.am-thumbnail.active { .am-hide-lg-down { display: none !important; } + table.am-hide-sm-only, + table.am-show-sm-up, + table.am-hide-sm, + table.am-hide-sm-down, + table.am-hide-md-only, + table.am-show-md-up, + table.am-hide-md, + table.am-hide-md-down, + table.am-show-lg-only, + table.am-show-lg-up, + table.am-show-lg, + table.am-show-lg-down { + display: table !important; + } + thead.am-hide-sm-only, + thead.am-show-sm-up, + thead.am-hide-sm, + thead.am-hide-sm-down, + thead.am-hide-md-only, + thead.am-show-md-up, + thead.am-hide-md, + thead.am-hide-md-down, + thead.am-show-lg-only, + thead.am-show-lg-up, + thead.am-show-lg, + thead.am-show-lg-down { + display: table-header-group !important; + } + tbody.am-hide-sm-only, + tbody.am-show-sm-up, + tbody.am-hide-sm, + tbody.am-hide-sm-down, + tbody.am-hide-md-only, + tbody.am-show-md-up, + tbody.am-hide-md, + tbody.am-hide-md-down, + tbody.am-show-lg-only, + tbody.am-show-lg-up, + tbody.am-show-lg, + tbody.am-show-lg-down { + display: table-row-group !important; + } + tr.am-hide-sm-only, + tr.am-show-sm-up, + tr.am-hide-sm, + tr.am-hide-sm-down, + tr.am-hide-md-only, + tr.am-show-md-up, + tr.am-hide-md, + tr.am-hide-md-down, + tr.am-show-lg-only, + tr.am-show-lg-up, + tr.am-show-lg, + tr.am-show-lg-down { + display: table-row !important; + } + th.am-hide-sm-only, + td.am-hide-sm-only, + th.am-show-sm-up, + td.am-show-sm-up, + th.am-hide-sm, + td.am-hide-sm, + th.am-hide-sm-down, + td.am-hide-sm-down, + th.am-hide-md-only, + td.am-hide-md-only, + th.am-show-md-up, + td.am-show-md-up, + th.am-hide-md, + td.am-hide-md, + th.am-hide-md-down, + td.am-hide-md-down, + th.am-show-lg-only, + td.am-show-lg-only, + th.am-show-lg-up, + td.am-show-lg-up, + th.am-show-lg, + td.am-show-lg, + th.am-show-lg-down, + td.am-show-lg-down { + display: table-cell !important; + } } @media only screen and (orientation: landscape) { .am-show-landscape, @@ -7192,7 +8171,7 @@ a.am-thumbnail.active { color: #5eb95e; } .am-text-warning { - color: #f37b1d; + color: #F37B1D; } .am-text-danger { color: #dd514c; @@ -7385,11 +8364,11 @@ a.am-thumbnail.active { border-width: 0 8px 8px; } .am-angle-up:before { - border-bottom-color: #dddddd; + border-bottom-color: #ddd; bottom: 0; } .am-angle-up:after { - border-bottom-color: #ffffff; + border-bottom-color: #fff; bottom: -1px; } .am-angle-down { @@ -7401,11 +8380,11 @@ a.am-thumbnail.active { border-width: 8px 8px 0; } .am-angle-down:before { - border-top-color: #dddddd; + border-top-color: #ddd; bottom: 0; } .am-angle-down:after { - border-top-color: #ffffff; + border-top-color: #fff; bottom: 1px; } .am-angle-left { @@ -7417,11 +8396,11 @@ a.am-thumbnail.active { border-width: 8px 8px 8px 0; } .am-angle-left:before { - border-right-color: #dddddd; + border-right-color: #ddd; left: 0; } .am-angle-left:after { - border-right-color: #ffffff; + border-right-color: #fff; left: 1px; } .am-angle-right { @@ -7433,26 +8412,26 @@ a.am-thumbnail.active { border-width: 8px 0 8px 8px; } .am-angle-right:before { - border-left-color: #dddddd; + border-left-color: #ddd; left: 0; } .am-angle-right:after { - border-left-color: #ffffff; + border-left-color: #fff; left: -1px; } /* ========================================================================== Component: Alert Plugin ============================================================================ */ .am-alert { - margin-bottom: 15px; - padding: 10px; + margin-bottom: 1em; + padding: 0.625em; background: #0e90d2; - color: #ffffff; + color: #fff; border: 1px solid #0c7cb5; border-radius: 0; } .am-alert a { - color: #ffffff; + color: #fff; } .am-alert h1, .am-alert h2, @@ -7470,12 +8449,18 @@ a.am-thumbnail.active { } /* Add margin if adjacent element */ * + .am-alert { - margin-top: 15px; + margin-top: 1em; } /* Remove margin from the last-child */ .am-alert > :last-child { margin-bottom: 0; } +/* within am-form-group */ +.am-form-group .am-alert { + margin: 5px 0 0; + padding: 0.25em 0.625em; + font-size: 1.3rem; +} /* Close in alert */ .am-alert > .am-close:first-child { float: right; @@ -7494,17 +8479,17 @@ a.am-thumbnail.active { .am-alert-success { background-color: #5eb95e; border-color: #4bad4b; - color: #ffffff; + color: #fff; } .am-alert-warning { - background-color: #f37b1d; + background-color: #F37B1D; border-color: #e56c0c; - color: #ffffff; + color: #fff; } .am-alert-danger { background-color: #dd514c; border-color: #d83832; - color: #ffffff; + color: #fff; } .am-dropdown { position: relative; @@ -7524,8 +8509,9 @@ a.am-thumbnail.active { padding: 15px; margin: 9px 0 0; text-align: left; - background-color: #ffffff; - border: 1px solid #dddddd; + line-height: 1.6; + background-color: #fff; + border: 1px solid #ddd; border-radius: 0; -webkit-background-clip: padding-box; background-clip: padding-box; @@ -7548,11 +8534,11 @@ a.am-thumbnail.active { border-width: 0 8px 8px; } .am-dropdown-content:before { - border-bottom-color: #dddddd; + border-bottom-color: #ddd; bottom: 0; } .am-dropdown-content:after { - border-bottom-color: #ffffff; + border-bottom-color: #fff; bottom: -1px; } .am-dropdown-content:before, @@ -7578,13 +8564,13 @@ a.am-thumbnail.active { .am-dropdown-up .am-dropdown-content:before, .am-dropdown-up .am-dropdown-content:after { border-bottom: none; - border-top: 8px solid #dddddd; + border-top: 8px solid #ddd; top: auto; bottom: -8px; } .am-dropdown-up .am-dropdown-content:after { bottom: -7px; - border-top-color: #ffffff; + border-top-color: #fff; } .am-dropdown-flip .am-dropdown-content { left: auto; @@ -7626,7 +8612,7 @@ ul.am-dropdown-content > li > a:focus { ul.am-dropdown-content > .am-active > a, ul.am-dropdown-content > .am-active > a:hover, ul.am-dropdown-content > .am-active > a:focus { - color: #ffffff; + color: #fff; text-decoration: none; outline: 0; background-color: #0e90d2; @@ -7732,13 +8718,11 @@ ul.am-dropdown-content > .am-disabled > a:focus { } .am-viewport { -webkit-transition: all 1s ease; - transition: all 1s ease; + transition: all 1s ease; } .am-slider-carousel li { margin-right: 5px; } -/* Direction Nav */ -/* Pause/Play */ .am-control-nav { position: absolute; } @@ -7750,8 +8734,73 @@ ul.am-dropdown-content > .am-disabled > a:focus { overflow: hidden; } .am-control-thumbs img { - -webkit-transition: opacity .1s; - transition: opacity .1s; + -webkit-transition: all 1s ease; + transition: all 1s ease; +} +.am-slider-slide .am-slides > li { + display: none; + position: relative; +} +@media all and (transform-3d), (-webkit-transform-3d) { + .am-slider-slide .am-slides > li { + -webkit-transition: -webkit-transform 0.6s ease-in-out; + transition: -webkit-transform 0.6s ease-in-out; + transition: transform 0.6s ease-in-out; + transition: transform 0.6s ease-in-out, -webkit-transform 0.6s ease-in-out; + -webkit-backface-visibility: hidden; + backface-visibility: hidden; + -webkit-perspective: 1000px; + perspective: 1000px; + } + .am-slider-slide .am-slides > li.next, + .am-slider-slide .am-slides > li.active.right { + -webkit-transform: translate3d(100%, 0, 0); + transform: translate3d(100%, 0, 0); + left: 0; + } + .am-slider-slide .am-slides > li.prev, + .am-slider-slide .am-slides > li.active.left { + -webkit-transform: translate3d(-100%, 0, 0); + transform: translate3d(-100%, 0, 0); + left: 0; + } + .am-slider-slide .am-slides > li.next.left, + .am-slider-slide .am-slides > li.prev.right, + .am-slider-slide .am-slides > li.active { + -webkit-transform: translate3d(0, 0, 0); + transform: translate3d(0, 0, 0); + left: 0; + } +} +.am-slider-slide .am-slides > .active, +.am-slider-slide .am-slides > .next, +.am-slider-slide .am-slides > .prev { + display: block; +} +.am-slider-slide .am-slides > .active { + left: 0; +} +.am-slider-slide .am-slides > .next, +.am-slider-slide .am-slides > .prev { + position: absolute; + top: 0; + width: 100%; +} +.am-slider-slide .am-slides > .next { + left: 100%; +} +.am-slider-slide .am-slides > .prev { + left: -100%; +} +.am-slider-slide .am-slides > .next.left, +.am-slider-slide .am-slides > .prev.right { + left: 0; +} +.am-slider-slide .am-slides > .active.left { + left: -100%; +} +.am-slider-slide .am-slides > .active.right { + left: 100%; } /** * Slider Theme: Default @@ -7761,7 +8810,7 @@ ul.am-dropdown-content > .am-disabled > a:focus { background-color: #fff; border-radius: 2px; -webkit-box-shadow: 0 0 2px rgba(0, 0, 0, 0.15); - box-shadow: 0 0 2px rgba(0, 0, 0, 0.15) + box-shadow: 0 0 2px rgba(0, 0, 0, 0.15); /* Direction Nav */ /* Pause/Play */ /* Control Nav */ @@ -7769,7 +8818,7 @@ ul.am-dropdown-content > .am-disabled > a:focus { .am-slider-default .am-viewport { max-height: 2000px; -webkit-transition: all 1s ease; - transition: all 1s ease; + transition: all 1s ease; } .loading .am-slider-default .am-viewport { max-height: 300px; @@ -7783,27 +8832,36 @@ ul.am-dropdown-content > .am-disabled > a:focus { z-index: 10; display: block; width: 36px; - height: 24px; - margin: -12px 0 0; + height: 36px; + margin: -18px 0 0; overflow: hidden; opacity: 0.45; cursor: pointer; color: rgba(0, 0, 0, 0.65); -webkit-transition: all .3s ease; - transition: all .3s ease; + transition: all .3s ease; } .am-slider-default .am-direction-nav a:before { - color: #333333; display: inline-block; - font-family: "FontAwesome", sans-serif; - font-weight: normal; - font-style: normal; - vertical-align: baseline; - line-height: 1; + font: normal normal normal 1.6rem/1 "FontAwesome", sans-serif; + /*font-weight: normal; // 2 + font-style: normal; // 2 + vertical-align: baseline; // 3 + line-height: 1; // 4*/ + font-size: inherit; + text-rendering: auto; -webkit-font-smoothing: antialiased; -moz-osx-font-smoothing: grayscale; + -webkit-transform: translate(0, 0); + -ms-transform: translate(0, 0); + transform: translate(0, 0); + width: 100%; + color: #333333; content: "\f137"; - font-size: 24px; + font-size: 24px!important; + text-align: center; + line-height: 36px!important; + height: 36px; } .am-slider-default .am-direction-nav a.am-next:before { content: "\f138"; @@ -7844,16 +8902,21 @@ ul.am-dropdown-content > .am-disabled > a:focus { z-index: 10; overflow: hidden; cursor: pointer; - color: #000000; + color: #000; } .am-slider-default .am-pauseplay a::before { - font-family: "FontAwesome", sans-serif; - font-weight: normal; - font-style: normal; - vertical-align: baseline; - line-height: 1; + font: normal normal normal 1.6rem/1 "FontAwesome", sans-serif; + /*font-weight: normal; // 2 + font-style: normal; // 2 + vertical-align: baseline; // 3 + line-height: 1; // 4*/ + font-size: inherit; + text-rendering: auto; -webkit-font-smoothing: antialiased; -moz-osx-font-smoothing: grayscale; + -webkit-transform: translate(0, 0); + -ms-transform: translate(0, 0); + transform: translate(0, 0); font-size: 20px; display: inline-block; content: "\f04c"; @@ -7870,7 +8933,7 @@ ul.am-dropdown-content > .am-disabled > a:focus { bottom: 0; padding: 10px; width: 100%; - color: #ffffff; + color: #fff; } .am-slider-default .am-control-nav { width: 100%; @@ -7917,6 +8980,7 @@ ul.am-dropdown-content > .am-disabled > a:focus { } .am-slider-default .am-control-thumbs img { width: 100%; + height: auto; display: block; opacity: .7; cursor: pointer; @@ -7928,55 +8992,87 @@ ul.am-dropdown-content > .am-disabled > a:focus { opacity: 1; cursor: default; } +.am-slider-default .am-control-thumbs i { + position: absolute; +} +/* +TODO: + 1. 动画应该放在 dialog 上,不再是整个 modal,涉及 JS 逻辑,需要统筹修改 + 2. modal 滚动条处理,是否需要添加一个滚动条宽度的水平 padding? +*/ /* ========================================================================== Component: Modal Plugin ============================================================================ */ .am-modal { - width: 270px; position: fixed; - display: none; + top: 0; + right: 0; + bottom: 0; + left: 0; z-index: 1110; - left: 50%; - margin-left: -135px; - margin-top: 0; - top: 50%; - text-align: center; - border-radius: 0; + display: none; opacity: 0; - -webkit-transform: translate3d(0, 0, 0) scale(1.185); - transform: translate3d(0, 0, 0) scale(1.185); - -webkit-transition-property: -webkit-transform; - transition-property: transform; - -webkit-transition-duration: 300ms; - transition-duration: 300ms - /*@media @large-up { - width: @modal-lg; - margin-left: -@modal-lg/2; - }*/ + outline: 0; + text-align: center; + -webkit-transform: scale(1.185); + -ms-transform: scale(1.185); + transform: scale(1.185); + -webkit-transition-property: opacity, -webkit-transform; + transition-property: opacity, -webkit-transform; + transition-property: transform, opacity; + transition-property: transform, opacity, -webkit-transform; + -webkit-backface-visibility: hidden; + backface-visibility: hidden; + -webkit-perspective: 1000px; + perspective: 1000px; } .am-modal:focus { outline: 0; } .am-modal.am-modal-active { opacity: 1; - -webkit-transform: translate3d(0, 0, 0) scale(1); - transform: translate3d(0, 0, 0) scale(1); + -webkit-transition-duration: 300ms; + transition-duration: 300ms; + -webkit-transform: scale(1); + -ms-transform: scale(1); + transform: scale(1); + overflow-x: hidden; + overflow-y: auto; } .am-modal.am-modal-out { opacity: 0; z-index: 1109; - -webkit-transform: translate3d(0, 0, 0) scale(0.815); - transform: translate3d(0, 0, 0) scale(0.815); + -webkit-transition-duration: 300ms; + transition-duration: 300ms; + -webkit-transform: scale(0.815); + -ms-transform: scale(0.815); + transform: scale(0.815); } -@media only screen and (min-width:641px) { - .am-modal { - width: 540px; - margin-left: -270px; - } +.am-modal:before { + content: "\200B"; + display: inline-block; + height: 100%; + vertical-align: middle; } .am-modal-dialog { + position: relative; + display: inline-block; + vertical-align: middle; + margin-left: auto; + margin-right: auto; + width: 270px; + max-width: 100%; border-radius: 0; background: #f8f8f8; + /*@media @large-up { + width: @modal-lg; + margin-left: -@modal-lg/2; + }*/ +} +@media only screen and (min-width:641px) { + .am-modal-dialog { + width: 540px; + } } .am-modal-hd { padding: 15px 10px 5px 10px; @@ -8088,13 +9184,18 @@ ul.am-dropdown-content > .am-disabled > a:focus { bottom: 0; z-index: 1110; width: 100%; + max-height: 100%; + overflow-x: hidden; + overflow-y: auto; text-align: center; border-radius: 0; -webkit-transform: translateY(100%); -ms-transform: translateY(100%); transform: translateY(100%); -webkit-transition: -webkit-transform 300ms; - transition: transform 300ms; + transition: -webkit-transform 300ms; + transition: transform 300ms; + transition: transform 300ms, -webkit-transform 300ms; } .am-modal-actions.am-modal-active { -webkit-transform: translateY(0); @@ -8167,7 +9268,9 @@ ul.am-dropdown-content > .am-disabled > a:focus { display: none; overflow: hidden; -webkit-transition-property: -webkit-transform; - transition-property: transform; + transition-property: -webkit-transform; + transition-property: transform; + transition-property: transform, -webkit-transform; -webkit-transform: translateY(100%); -ms-transform: translateY(100%); transform: translateY(100%); @@ -8217,8 +9320,9 @@ ul.am-dropdown-content > .am-disabled > a:focus { -webkit-overflow-scrolling: touch; } .am-popup-hd { - position: fixed; + position: absolute; top: 0; + z-index: 1000; width: 100%; height: 43px; border-bottom: 1px solid #dedede; @@ -8244,7 +9348,7 @@ ul.am-dropdown-content > .am-disabled > a:focus { top: 8px; cursor: pointer; -webkit-transition: all 0.3s; - transition: all 0.3s; + transition: all 0.3s; color: #999999; } .am-popup-hd .am-close:hover { @@ -8286,7 +9390,7 @@ ul.am-dropdown-content > .am-disabled > a:focus { position: fixed; /* 1 */ -webkit-transition: margin-left 0.3s ease-in-out; - transition: margin-left 0.3s ease-in-out + transition: margin-left 0.3s ease-in-out; /* 2 */ } /* Sub-object .@{ns}offcanvas-bar */ @@ -8298,13 +9402,15 @@ ul.am-dropdown-content > .am-disabled > a:focus { z-index: 1091; width: 270px; max-width: 100%; - background: #333333; + background: #333; overflow-y: auto; /* scrollable */ -webkit-overflow-scrolling: touch; /* scrollable */ -webkit-transition: -webkit-transform 0.3s ease-in-out; - transition: transform 0.3s ease-in-out; + transition: -webkit-transform 0.3s ease-in-out; + transition: transform 0.3s ease-in-out; + transition: transform 0.3s ease-in-out, -webkit-transform 0.3s ease-in-out; -webkit-transform: translateX(-100%); -ms-transform: translateX(-100%); transform: translateX(-100%); @@ -8353,16 +9459,14 @@ ul.am-dropdown-content > .am-disabled > a:focus { margin: 0; border-radius: 0; background: #333333; - color: #ffffff; + color: #fff; border: 1px solid #333333; display: none; - z-index: 1030; + font-size: 1.6rem; + z-index: 1150; opacity: 0; - -webkit-transform: none; - -ms-transform: none; - transform: none; -webkit-transition: opacity 300ms; - transition: opacity 300ms; + transition: opacity 300ms; } .am-popover.am-active { display: block !important; @@ -8371,14 +9475,11 @@ ul.am-dropdown-content > .am-disabled > a:focus { .am-popover-inner { position: relative; background: #333333; - padding: 10px; + padding: 8px; z-index: 110; - overflow: auto; - -webkit-overflow-scrolling: touch; } .am-popover-caret { position: absolute; - left: 5px; top: 0; z-index: 100; display: inline-block; @@ -8404,6 +9505,11 @@ ul.am-dropdown-content > .am-disabled > a:focus { .am-popover-bottom .am-popover-caret { top: -8px; } +.am-popover-top .am-popover-caret, +.am-popover-bottom .am-popover-caret { + left: 50%; + margin-left: -8px; +} .am-popover-left .am-popover-caret { top: auto; left: auto; @@ -8419,12 +9525,71 @@ ul.am-dropdown-content > .am-disabled > a:focus { -ms-transform: rotate(-90deg); transform: rotate(-90deg); } +.am-popover-left .am-popover-caret, +.am-popover-right .am-popover-caret { + top: 50%; + margin-top: -4px; +} +.am-popover-sm { + font-size: 1.4rem; +} +.am-popover-sm .am-popover-inner { + padding: 5px; +} +.am-popover-lg { + font-size: 1.8rem; +} +.am-popover-primary { + border-color: #0e90d2; +} +.am-popover-primary .am-popover-inner { + background: #0e90d2; +} +.am-popover-primary .am-popover-caret { + border-bottom-color: #0e90d2; +} +.am-popover-secondary { + border-color: #3bb4f2; +} +.am-popover-secondary .am-popover-inner { + background: #3bb4f2; +} +.am-popover-secondary .am-popover-caret { + border-bottom-color: #3bb4f2; +} +.am-popover-success { + border-color: #5eb95e; +} +.am-popover-success .am-popover-inner { + background: #5eb95e; +} +.am-popover-success .am-popover-caret { + border-bottom-color: #5eb95e; +} +.am-popover-warning { + border-color: #F37B1D; +} +.am-popover-warning .am-popover-inner { + background: #F37B1D; +} +.am-popover-warning .am-popover-caret { + border-bottom-color: #F37B1D; +} +.am-popover-danger { + border-color: #dd514c; +} +.am-popover-danger .am-popover-inner { + background: #dd514c; +} +.am-popover-danger .am-popover-caret { + border-bottom-color: #dd514c; +} /* ========================================================================== Component: Progress Plugin ============================================================================ */ #nprogress { /* Make clicks pass-through */ - pointer-events: none + pointer-events: none; /* Fancy blur effect */ } #nprogress .nprogress-bar { @@ -8498,7 +9663,15 @@ ul.am-dropdown-content > .am-disabled > a:focus { border-top: none; z-index: 100; -webkit-transition: height .3s; - transition: height .3s; + transition: height .3s; +} +.am-tabs-bd:before, +.am-tabs-bd:after { + content: " "; + display: table; +} +.am-tabs-bd:after { + clear: both; } .am-tabs-bd .am-tab-panel { position: absolute; @@ -8509,7 +9682,9 @@ ul.am-dropdown-content > .am-disabled > a:focus { padding: 10px 10px 15px; visibility: hidden; -webkit-transition: -webkit-transform 0.3s; - transition: transform 0.3s; + transition: -webkit-transform 0.3s; + transition: transform 0.3s; + transition: transform 0.3s, -webkit-transform 0.3s; -webkit-transform: translateX(-100%); -ms-transform: translateX(-100%); transform: translateX(-100%); @@ -8530,6 +9705,26 @@ ul.am-dropdown-content > .am-disabled > a:focus { -ms-transform: translateX(100%); transform: translateX(100%); } +.am-tabs-bd .am-tabs-bd { + border: none; +} +.am-tabs-bd-ofv { + overflow: visible; +} +.am-tabs-bd-ofv > .am-tab-panel { + display: none; +} +.am-tabs-bd-ofv > .am-tab-panel.am-active { + display: block; +} +.am-tabs-fade .am-tab-panel { + opacity: 0; + -webkit-transition: opacity .25s linear; + transition: opacity .25s linear; +} +.am-tabs-fade .am-tab-panel.am-in { + opacity: 1; +} /* ========================================================================== Component: Share Plugin ============================================================================ */ @@ -8645,13 +9840,16 @@ ul.am-dropdown-content > .am-disabled > a:focus { top: 0; bottom: 0; right: 0; + z-index: 1120; width: 100%; height: 100%; - z-index: 1120; background: rgba(0, 0, 0, 0.95); + display: none; overflow: hidden; - -webkit-transition: -webkit-transform .4s; - transition: transform .4s; + -webkit-transition: -webkit-transform .3s; + transition: -webkit-transform .3s; + transition: transform .3s; + transition: transform .3s, -webkit-transform .3s; -webkit-transform: translate(0, 100%); -ms-transform: translate(0, 100%); transform: translate(0, 100%); @@ -8691,7 +9889,7 @@ ul.am-dropdown-content > .am-disabled > a:focus { align-items: center; vertical-align: middle; -webkit-transition: all .3s linear; - transition: all .3s linear; + transition: all .3s linear; z-index: 100; visibility: hidden; } @@ -8702,10 +9900,9 @@ ul.am-dropdown-content > .am-disabled > a:focus { z-index: 109; } .am-pureview-slider li.am-pureview-slide-next { - transform: translate(100%, 0); - -webkit-transform: translate3d(100%, 0, 0); - -ms-transform: translate3d(100%, 0, 0); - transform: translate3d(100%, 0, 0); + -webkit-transform: translate(100%, 0); + -ms-transform: translate(100%, 0); + transform: translate(100%, 0); z-index: 109; } .am-pureview-slider li.am-active { @@ -8738,13 +9935,18 @@ ul.am-dropdown-content > .am-disabled > a:focus { } .am-pureview-slider .am-pinch-zoom:after { display: inline-block; - font-family: "FontAwesome", sans-serif; - font-weight: normal; - font-style: normal; - vertical-align: baseline; - line-height: 1; + font: normal normal normal 1.6rem/1 "FontAwesome", sans-serif; + /*font-weight: normal; // 2 + font-style: normal; // 2 + vertical-align: baseline; // 3 + line-height: 1; // 4*/ + font-size: inherit; + text-rendering: auto; -webkit-font-smoothing: antialiased; -moz-osx-font-smoothing: grayscale; + -webkit-transform: translate(0, 0); + -ms-transform: translate(0, 0); + transform: translate(0, 0); content: "\f110"; -webkit-animation: icon-spin 2s infinite linear; animation: icon-spin 2s infinite linear; @@ -8758,6 +9960,9 @@ ul.am-dropdown-content > .am-disabled > a:focus { margin-top: -12px; z-index: 1; } +.am-pureview-slider .am-pinch-zoom.am-pureview-loaded:after { + display: none; +} .am-pureview-slider img { position: relative; display: block; @@ -8766,8 +9971,8 @@ ul.am-dropdown-content > .am-disabled > a:focus { opacity: 0; z-index: 200; -webkit-user-drag: none; - -webkit-transition: opacity .15s linear; - transition: opacity .15s linear; + -webkit-transition: opacity 0.2s ease-in; + transition: opacity 0.2s ease-in; } .am-pureview-slider img.am-img-loaded { opacity: 1; @@ -8867,7 +10072,7 @@ ul.am-dropdown-content > .am-disabled > a:focus { font-size: 16px; } .am-pureview-actions a:hover { - color: #ffffff; + color: #fff; } .am-pureview-actions [data-am-toggle="share"] { left: auto; @@ -8877,7 +10082,7 @@ ul.am-dropdown-content > .am-disabled > a:focus { .am-pureview-actions { opacity: 0; -webkit-transition: all .15s; - transition: all .15s; + transition: all .15s; z-index: 1130; } .am-pureview-bar-active .am-pureview-bar, @@ -8917,9 +10122,6 @@ ul.am-dropdown-content > .am-disabled > a:focus { .am-pureview-active { overflow: hidden; } -/* ========================================================================== - Component: AddToHomeScreen Plugin - ============================================================================ */ .ath-viewport * { -webkit-box-sizing: border-box; box-sizing: border-box; @@ -8961,6 +10163,12 @@ ul.am-dropdown-content > .am-disabled > a:focus { line-height: 1.5em; text-align: center; } +.ath-container small { + font-size: 0.8em; + line-height: 1.3em; + display: block; + margin-top: 0.5em; +} .ath-ios.ath-phone { bottom: 1.8em; left: 50%; @@ -8979,8 +10187,9 @@ ul.am-dropdown-content > .am-disabled > a:focus { top: 1.8em; } .ath-android { - right: 1.5em; - top: 1.8em; + bottom: 1.8em; + left: 50%; + margin-left: -9em; } /* close icon */ .ath-container:before { @@ -8989,7 +10198,7 @@ ul.am-dropdown-content > .am-disabled > a:focus { display: block; float: right; margin: -0.7em -0.6em 0 0.5em; - background-image: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAIQAAACECAMAAABmmnOVAAAAA3NCSVQICAjb4U/gAAAACXBIWXMAAAeHAAAHhwFd+hRDAAAAGXRFWHRTb2Z0d2FyZQB3d3cuaW5rc2NhcGUub3Jnm+48GgAAAHVQTFRFAAAAOTk5MzMzOzs7Nzc3QUFBQEBAPz8/Pj4+QUFBQEBAPz8/Pj4+QUFBQEBAPz8/QUFBPj4+Pz8/Pz8/Pj4+Pz8/Pz8/Pz8/Pj4+Pz8/Pj4+Pz8/Pz8/Pz8/Pz8/Pz8/Pj4+Pz8/Pz8/Pz8/Pz8/QEBAPz8/n3QmjwAAACZ0Uk5TAAkKDQ4zODk6OzxBQkNERUusrbG0tba7vL3Excbu8fL19fb3+PgucqJgAAACqklEQVR42sXc23LCIBAGYKy2pgft0WpP2vTA+z9i0+goCZAs7O7P3oWZTL5ZYAh7sca0MXmYG3jM7yfu4/TV1jdow01tX6cdg4UrGoN1FNM3a+GK1nBSzPYGrOJgsPZt1hrerYUrjoa9wjHgFI7B2veZWVk3tpCdWm07H30y8+4AIhedPFj7cW7wioABrggawIqIAaroGbYXzlGCUvQNnc0IUgwaQIoRA0QxagAoCAZ1BcmgrCAaVBVkg6IiwaCmSDIoKRINKopkg4IiwyCuyDIIKzINoopsg6CCYRBTsAxCCqZBRLGo2RcrtkLAwFaIGJgKIQNLIWZgKAQN2QpRg1dKoCmEDVkKcUOGQsGQrFAxJCqUDEkKNUOCQtFAVqgaiAplg69YFDAQFADDqAJiGFGADI1iF1XADAOKvqHSLApHFFBDRAE2BBVwQ0BRwOApfn8LGDxFEcOQAmeIK5CGmAJrCCvQBq8A8r9Zrw08qp6irvAGs/zpIr4XBQxf3nQsyhvwipABrQgbsIqYAamIG3CKnqH+LKDoGXbVwD84zDB4E4AZ4IqgAayIGKCKqMGYS5RiwOArlgUMnuJrWcAAUYwaAAqCQV1BMigriAZVBdmgqEgwqCmSDEqKRIOKItmgoMgwiCv6hkvaa6KKTIOoItsgqGAYxBQsg5CCaRBRsA0CCgEDWyFiYCqEDCyFmIGhEDRkK0QNmQphQ5ZC3JChUDAkK1QMiQolQ5JCzZCguNUzkBV3P4oGokLZQFKoGwgKgGFUATGMKECGQQXMYMxVTAE0RBVQQ0QBNgQVcENI8QwoBo8cUiszWYPz4OVi3bQ9cBQoQ0exblsvTDZwg6PYHNo/tE0XmvVwa4BxWBentgtnL+A8HHPxcnYaaBRoQ6twDY3iEW5oFI8Hwx/QxSE448b+MwAAAABJRU5ErkJggg==); + background-image: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAIQAAACECAMAAABmmnOVAAAAdVBMVEUAAAA5OTkzMzM7Ozs3NzdBQUFAQEA/Pz8+Pj5BQUFAQEA/Pz8+Pj5BQUFAQEA/Pz9BQUE+Pj4/Pz8/Pz8+Pj4/Pz8/Pz8/Pz8+Pj4/Pz8+Pj4/Pz8/Pz8/Pz8/Pz8/Pz8+Pj4/Pz8/Pz8/Pz8/Pz9AQEA/Pz+fdCaPAAAAJnRSTlMACQoNDjM4OTo7PEFCQ0RFS6ytsbS1tru8vcTFxu7x8vX19vf4+C5yomAAAAJESURBVHgBvdzLTsJAGEfxr4C2KBcVkQsIDsK8/yPaqIsPzVlyzrKrX/5p0kkXEz81L23otc9NpIbbWia2YVLqdnhlqFlhGWpSDHe1aopsSIpRb8gK0dC3G30b9rVmhWZIimTICsvQtx/FsuYOrWHoDjX3Gu31gzJxdki934WrAIOsAIOsAIOiAMPhPsJTgKGN0BVsYIVsYIVpYIVpYIVpYIVpYIVpYIVpYIVpYIVlAIVgEBRs8BRs8BRs8BRs8BRs8BRs8BRs8BRTNmgKNngKNngKNngKNngKNhiKGxgiOlZoBlaYBlaYBlaYBlaYBlaYBlaYBlaYBlZIBlBMfQMrVAMr2KAqBENSHFHhGEABhi5CV6gGUKgGUKgGUKgGUFwuqgEUvoEVsoEVpoEUpgEUggF+gKTKY+h1fxSlC7/Z+RrxOQ3fcEoAPPHZBlaYBlaYBlaYBlZYBlYIhvLBCstw7PgM7hkiWOEZWGEaWGEaWGEaIsakEAysmHkGVpxmvoEVqoEVpoEVpoEVpoEVpoEVpoEVkoEVgkFQsEFSsEFQsGEcoSvY4CnY4CnY4CnY4CnY4CnY4CnY4CnY4CnY4CnY4CnY4CnY4CnY4CnY4CnY4CnY4CnY4CnY4CnmbNAUT2c2WAo2eAo2eAo2eAo2eAo2eArNEPFACjZ4CjZ4CjZ4CjaIird/rBvFH6llNCvewdli1URWCIakSIZesUaDoFg36dKFWk9zCZDei3TtwmCj7pC22AwikiIZPEU29IpFNliKxa/hC9DFITjQPYhcAAAAAElFTkSuQmCC); background-color: rgba(255, 255, 255, 0.8); -webkit-background-size: 50% 50%; background-size: 50%; @@ -9032,18 +10241,11 @@ ul.am-dropdown-content > .am-disabled > a:focus { text-indent: -9999em; overflow: hidden; } -.ath-android .ath-action-icon { - width: 1.2em; - height: 1.8em; - background-image: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADUAAADcBAMAAAAig/QJAAAAA3NCSVQICAjb4U/gAAAACXBIWXMAAFtDAABbQwH5xg68AAAAGXRFWHRTb2Z0d2FyZQB3d3cuaW5rc2NhcGUub3Jnm+48GgAAAB5QTFRFAAAA////cXFxaWlp////ZmZmnJycoaGhpqam////1D9b6wAAAAV0Uk5TAAgJERExZxYzAAAAYklEQVRYw+3WoQ2AUBAE0SsBOiBUQEIDCArA4FFoHBaJxNItFYz/x5+xz282VmwJTdM0rRzbsS1e7Pm9zdgUVn491rkFmqZpSezEjqo/Sos1HoAEjdjgFmiapiWxG7tq/igfnYteFlnOWZEAAAAASUVORK5CYII=); - -webkit-background-size: auto 100%; - background-size: auto 100%; -} .ath-ios7 .ath-action-icon, .ath-ios8 .ath-action-icon { width: 1.6em; height: 1.6em; - background-image: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAHgAAACtCAYAAAB7l7tOAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAABa5AAAWuQBuyxkRwAAABl0RVh0U29mdHdhcmUAd3d3Lmlua3NjYXBlLm9yZ5vuPBoAAAZoSURBVHja7d1ZbFRlGIfxzxVwl809goLgghrRoEaNSzQagrsRt8QYgzEG443SOQNSA0QTXHALcY2KMe7EuCB6YbxwiUtwA0VwQRSxqMimUNt5vOg5OEPL9Ew705m2zz95L5rOvOfr+8s3nZ6TOQ2hNyXiyhDxQpjADr3q5+4VyTIhRORCBCHijTCRPg6lZ+3c5hg3qZfdyT0D9/IQ0bQFblIvhnq2d0jdF3d8Edyknhe5O6aOs0PExnZwk3ooBLZxaN0lWcaFiE0pcVsqy+Ohnm0dXq0nYmzJuP8jPypyLSfDySFifYdwk8ow00HWYiZzeojY0Cnc/2uWA60t3FPLiJvU3Q62FpLl2BCxusy4SU1xwNVMhjEhYk2FcJOqd9DVSB3HhYi/KozrTq4S7ui0L8v9ppYJOUPk4LsiUxgVIlalQRl5D4x+oPhjrniuJOQ6ASqZiCNCREMajIPuhOV/wfGziz/uuz9gwtySdvPNQlQiGQ4LGX5LgzB0JixbDdA+8Pd/QnMOrnw+NXAuRNwgSDkzmUNDxMo0AENmwo8xLsCY2Zsv8m8VGKCpGS5/rgTkDNcLUx7cg0PE8jSD3/cOWPI7+fnj6PuLnwBZ1MCnyYObmmH8syUhXydQ53CHhoif0uIuXlWA+ydwzJH3sa7Y825/l7OAd5InNTbBeXNSIzeHDFcJ1ZHUMSRELEsz6L1vh28KcdcCJ4QQQnvAk+ZzCrAz8G7y5E1NMO6p1MhNIcsVgpWSLPuFiCVpBjxwOnyxshXuiUmrNMAhhADsBnyYjzz2yZKQLxMuTW5h3xDxbZrBDpgOn60owF0HnJTfLi1wjLw78FHS7O9GOOOxkpAvFbBYIvYJEYvTDLT/NFhQiLseOHnLlqUAx8h7AB8nTTc0wmmPpkZuDBnOFbKt3MzeIeLrNIPccxp8+ksB7j/AmW21LRU4D/mTfORTH0mNvClkGSdofjIMCBGfpxngrrfB+8ta4Z61tdYdAY6RBwFfbn552ASnPFwCcsRYYUMIoZ7+IWJBmsHtUg/vFeJuBM4u1r6jwDHyYOCr5GBrNsKY2amR/w6TOV3giKlpBtbnVnjz2wLcRuD89tp3BjgPeWFy0FUbYNS9qZEXhkvYrrfv4G1Dlsfbu+T39tJWuBemad9Z4Bh5L2BRcvDV/8DoB9vFXRKyHOAODiEsX06/8c+2fcaq760wv3Dn/gtcnLZ3OYBj5P2BpWl28oh7aHpmQdtv+npdgL7A/FwOJr7a+mV53uJWuJeU0r9cwPFaDwC+SxbTsB4On1XY7/BZsHJdy7eBIwSGqcnAcjm46bWWQe0wBeYuLMDNARNK7V9O4Hi9w4HNf6T9th4Oi5FH3dvydV4WQS//HQz0A97KR574Kjz9WcGgmoGrO9K/3MDxmg8EfkgWt2w1nPMErFhbsOZVwNG9fgfHA+sDvELbaQau6WjvSgDHax6Wv5O3yK/AocoWDmxHYO4Wg8oB13amb6WA4zUf0gbyL8BIRbeO/FIe7o2d7VlJ4HjNI4DkrPjPwAgliw9sO+Bp4KZy9Ks0cLzmkfEFiuEKphtY2T7C2RXA5V6zqUFgI7AR2AhsBBZYYIGNwEZgI3DFk+X1blX1DK4acD2Du928uugmJuWrOoZUDbjlA3Hda14CCyywwF1XF8zhqGoBXzCHowSucE2aV/jx0K4EnjSPkwQWWGCBawS4/7SW2yPUUi1tYFi1gJc2MKzW5tF/WieAB82gFlO1d9HAkFobxqAZAgsscC8FHjiDHHBRjdVOVQTeqdbmMXBG8Vs1FgUeMJ3m0M3T068mDZje6n8yCiywwAILLLDAAgsssMACCyywwAILLLDAAgsssMACCyywwAILLLDAAgsssMACCyywwAILLLDAAgsssMACCyywwAILLLDAAgsssMACCyywwAILLLDAAgsssMACCyywwAILLLDAHc+KtXz88xrYWjWsKe3+0wLXWIAP2rlh61CBBRZYYIGrBXwMcFqR6iuwEdgIbAQ2AhuBBRZYYIEFNgIbgY3ARmCBBRZYYIGNwEZgI7AR2AgssMACG4GNwEZgI7ARWGCBBRZYYCOwEdgIbAQWWGCBBRbYCGwENgIbgY3AAgsssMACG4GNwEZgI7DAHQGup69Vu9UpYKsHlEMQ2BLYEtgS2BLYKrWG3wVWz62A6dERWGAjsKnZ/Af2wMWISv7RmgAAAABJRU5ErkJggg==); + background-image: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAHgAAACtCAYAAAB7l7tOAAAF6UlEQVR4AezZWWxUZRiH8VcQEdxZEFFiUZBFUCIa1ABBDARDcCciYGKMqTEGww3SOcNSAwQTjOBiiIpEhRjAhRgXRC8MFxojEhAFZUGttVhaoSxlaW3n8W3yXZxm6vTrOMM5Q98n+V9MMu1pvl++uZhKuypghu49KaaTWGdZSYoVN6VD95nMpLNYZ9XNbdQR2od2k88O3Gm6Bh0t7H0p5Vwp2Ax3ajpu2tYbciFWwkTFO63DY6+JcI4USFaSyYpWp8N7SVZJKR3EinkBk9JxvZFXxhnZSjBaoWp1ZL0ES8WKYXMZp0AndORgy8WKFe5Yf1zvvSBWDEpys2LU6MjD5kmEWQlGKsJRHXlcqUSQVcItEnDEA6gAb7LhjvD9WO6yIEfICQI5A1nzGCYB1T4og5bBiFcyv2f6ujYhl4iVxwKG6qp8MK55HsqPwK0rMr9v/yEo3uCPrJstVh5KMER30Aeh31Ioq0FrHfjXw9CYghnrvYFTuqfEymFzGSwBlT4ARYr7u+K6GLmCVGvAGg2NMG0d/sgJnpScZLjXSkC5z8H3eQ72/k24Q8NfzvwFyK4qtuJSZKaubRPyE/K/Mtx+EvCHL+7uasId1t10w0scz/RzSzYzAfgKV30D3LPaG7lRkR8RK4tKKJKAMp+D7r0EfmmOe0x3m2itAc/ZxBjgAt1mXHWKPPkdb+QGSTJdrDaU5EoJ2OtzwD0WwY7KNNzbRfMFFg24WPdtGHnS221Cflgsj56hjwTs8TnY7oq7/QDhjutGicsb2AVcovsO18l6uPPNNiE/JFaGAq7Q7fY50G4LYVtz3FrdaNGyBXbIl+q24DqhyHes9EaulwR3SwtZs+ktAT/7HORliru1gnCndONFyx44Dfn7MPLYN7yR6yTJZAllJeguAT/4HOBFz8I3ZWm4E0TLFbBD7qn7EVdtHYx53R9ZN0ksrZRuErDN5+AuLIWvm+Oe1k0ULdfADrmX7idcR0/DyBXeyCdlLuMMOGCBz4F1ng+f7yFcve5e0fIFHELeiav6BAx70Rt5p0yhY3u/wR0kyarW/uX35b403PtFyzewQ75ctwtXzSkY8WqruHslSV8RscrL6TJ1bcvfWJ0/HzbtIdw/ugdFyzdwOOAq3T6fmzxwGQ3vbmO8iFioIWqYSsHMj9M/ljfuTsOdItoZBXYBfXX7cVXVwvXLm/8+fU3lcdCqdEMNGBbgUmRmfQISQKd5sGEn4VK6YtEiAXYBA3QVuA4q8hCHrDcafR1ul65jewfuovsCl7vJrNlOuEbdo6JFCuwCrtb9hqusBu56Cw4cI1y1briIWEBn3Ue0XKPuMdGiBg4H9NdV0HJ/6QZLOEPmPN0GmpfSPS5arIBdwHUtIFfoBsl/ZsgfhHCfFi2WwC5goO4AmvanbqBkzJA76tboZokWa2AXMEi3RTdAvDLkDqJFAhzB32xFD2wZsGXA0WfAlgFbBmwZsGXAlgFbBpzk04JaKb0iA9ZnF9x5SQAFtRKKIgPWZxfaeRmwAZ/BGbAB37eaG6MCbnq2Aed5czYyKirgpmcbsAHHZAZswN0Wwo7KeG1fFf2jAm56dtzOQ42yB+65mDhWFBUwUETMUiMDNmADbp/APRaTAh6I2bpGCNw1bufRZJQ1cPdF/NueHZsgDEBBGLbMGoIu4AZu5gLOZeEaYmEXeznF3jRPyEv4frgJvvJe3qTefY0AAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwb8rwADBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgz4/sz1Nia/9hizA7zgklwy3RYwYMBzBRjw4bPjxAbAAizAAtwgwAIswAIswAIMGDBgARZgARZgAS4FWIAFWIAFWIABAwYswAIswAIswIUAC7AAC7AACzBgwIAFWIAFWIAFuBBgARZgARZgAQYMGPApQ99ZCdgWtzqwATbABtgAG2DbnxNb7zbRimsMLMACrDf2wMWI/WasfQAAAABJRU5ErkJggg==); margin-top: -0.3em; -webkit-background-size: auto 100%; background-size: auto 100%; @@ -9051,11 +10253,18 @@ ul.am-dropdown-content > .am-disabled > a:focus { .ath-ios6 .ath-action-icon { width: 1.8em; height: 1.8em; - background-image: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAJAAAAB0CAQAAADAmnOnAAAAAnNCSVQICFXsRgQAAAAJcEhZcwAAWwEAAFsBAXkZiFwAAAAZdEVYdFNvZnR3YXJlAHd3dy5pbmtzY2FwZS5vcmeb7jwaAAAGaklEQVR42u3cfUxVZRwH8O8FRERRfNfKt4zM2UzNMszZFPMPW5KWzizJ0JJWitOU3mYs54ZuNRk6zblSaebUnKllSpopaRorJiqmtjRNK4sNEBR5+fbH45ELwrnn5Tnn3gPP7/cv9/7O/eyc5zyvAF6PrlgAFTrRHcQmtFIQekDEYXRRFA3GzP4gCOI39FcaDcQ7g24BEUUYrTz0gIhKvKZE9IAIIhNhSkUPiNiGaOWiB0Tko4eS0QMi/sQQZaMHRJRivNLRAyKqkKZ89IAIYg1aKCDq5l60U0D6WYDeCkg/r2KEAtLPG5iqgPSzBukKKFB+ikgFpJ+56KyA9PMcHjBXYYwjGRmyQMR/GGWmAqVnNV4N4TuIICowPXhA1ZgR0o+Y6Yk1uTyVeD7E26Da3GpsYk0iTwQ3kSS5nbLboAj0wnBMwGwsRhaysRO5yEMe8iJP2bjig+joIlALbhE86xguCWUgXkYmduMMbjrQVhLEWfRzCagldwmelfTZhOmM8ViGXJQ7hFI3iwK906SUieLXgifTFs9DeA/HUOMKjP87LdlhoFb8RvB8ZJHHhxHIxEWXYfzzY0Q4BtSG3wueDyzhxCAFvwSRJuA7zeYXx/CQ4LEy/3sPlqMkBHBEHkN36UBt+YPgWWgapzfWoiJkcERewECpQB2YR5I1nG/6PbUcN0IMR2QJxhkEWsi0gPkjSVYzxRROS6SjLCRxGplYa+QPq2goqjnTFM8wFIQwjpZZCJcDVMmppu6dTNf7OFbzEDoFAKrcx5yA+ZIJnh444hEckcfRUxcoXe5wMwH/eIqHIK7gUbeAklHlOR4xCElyA2iWR3mIGixyHijDoziMqRw8xflH7H2v8vTjKfIyhzoLNNurPM+xVHRksp0EesabbU84M1hDklVMo885oMdcmhGUnO25W9w7xUx0sh8Ui/Ne5InjCcFTwL4BetI2gbZ5kedZreXZwjYBx2K2gKZ7DydMa3mqRcvjJFAcrnmNJ5ZfiXunlBMNzgfZAPrSazx9eVzwnOB9hmcULQM96TWeCSwRPFv9Wx6ngMKQ3zRaHqeAXvQSTzttNfgaJ5leOLQE5EOhd3j6MF/wnGSchZVVS0Bj5f6ELhzKiZzLdC7nOm7nAebzPIvqZKHF7x7DfwXPNsZYWpu3BLTD/iptPFO4mnt5muWGVg0uW6ozj5UBWh4ngPpYHZxG8nGmcTPPsJpmwzxQK34mPlrGKTY2UFkAWmJ+y8wopnM/y/QEilnAQ9zJbGZxMedzBif559EF5mr24s/ie3/nIFtb8CwAnTV+md04hzm83hBIFQu5mUv5Op/mQMbK3YKXyGJR5Vt2NPqzZAH1N3aJrTmNu1lRn6WUOVzGJA5hlHN7FFNFy0N+yAjbu1xNA70duFOWwPXaeFmLIu7gmxxm5oKtAUVxvahYzhfMVZAFdES/GU7m6bo0Z7mMw2n7jLsxoB78SVQ9T9OHfeUARfluNv5QzeNFf5pCvssBbm4DHsm/ReXvaOGkhhyg+MbeU3N4pZamhGs53O190m/wprZ/0tKDLAdo7p3f4GMSL9Ti/MpZbO32RvIofiKqX2eS1QpSgMI+r//5+7mvFucgE+nQf9TQA7qbR0X9PzjUegUpQG1O1F04eau2j3OAw4JzFGGE9nDvYQc7FaQARRf7rwwc1nDOcbLtbeUWgVK0vtYK2jw5LwMo2nf7c8navVPORWY7fbKAorlRXMMNJtuvIAMoTusKLhXzc2QO74UrcSfQXdodfEnOwy0D6GGxY3qPNj+XBNeiPlCCNs+TY3y05ThQ7EiwK4+JCztjdJTsBFCaNtpaJe9AlgSgsVN6aQOJzWwLBAcokqu1lucVmRUkAC2eeElsKE+F66EBdWOuyXkeF4EYT7LCzZanPtBoXtXmeTrJriAD6AmW8SkgWEC3W541bCm/ggygRxiPIMWSB1cInAqTRyJcnw8KUrD7rXmewY5VaAJA++W3PE0JKMPUPE8MEpoXkLnBcBL+wqpmBWQiemIXCCqghiIcadoxvvYbFFD9GIDDtb9s3EkF5B9RyKj7jy0UkH+MvnNBXAFp0QEbGjoCqoC0mNPwL1NACshYhKUqIN2YvFEB6ca0LxSQAlJACkgBKSAFpICsADXdVEAKSAEpIAWkgBSQAlJACkgBKaDgA41hc8vUXHM3UPOLVQpIAbkH9D87oz0rvnJrOgAAAABJRU5ErkJggg==); + background-image: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAJAAAAB0CAQAAADAmnOnAAAAAnNCSVQICFXsRgQAAAAJcEhZcwAAWwEAAFsBAXkZiFwAAAAZdEVYdFNvZnR3YXJlAHd3dy5pbmtzY2FwZS5vcmeb7jwaAAAF4klEQVR4Ae3a/a+XdR3H8ec5HM45HDmKICoVohkZsxESRRCzcZM/2JKkdGR5MrSkleA0Pd00O4u5IVuNM2yYc6XSzCExU4oUNRPCJFdMUAhsYZpUGhscOHA4N8/WZzsL6HBxvofvdV3fa3yer//gsV3vH659KHzncBsJxUYhDzOEhCKQbORs+ip2wzgM+wvj+P9i35qAGLaHGcQSgKSTrxBLABJppZpYApCspoFYApBsZjSxBCD5OxOJJQBJG1cQSwCSLpqJJQCJ3MvgCGTinuSMCJS8LZwfgZL3FtMiUPIOcU0ESl4PLRHoRPsJtREoeRsYGYGS9yrvo6RmpbLaigWSfzOdErLs6+bLUMFA0sF1+QF1cz1UNlBYK9V5AHXyWSgEkKyiIWOgGh829Ki1lLcaxjCVK7mJRSxjBY+zgRf/u9pXcMB7jhEZAg32EUP3O6hMKOP5Iq2sZQeHMZXt5KKMgOpcY+iHVnFyjeQKlrCBdsxge5ieAVC9vzLUelI8H+A7bKIHM10H81IGGuKvDf1ggDxVTKOV1zG3/Yia1ICG+ltD32MgNTKfP2HuW0VDKkCNrjfUTOm9i6XswwrZJkaVHeh0f2fodkrtfO6jAytqrzG+rEDDfVG1x1sprZEs5RBW4PZxeT+Bbrf5hPu9arfzKaU6WjiAFbseWvoF1GW/6vYGSmkyW7Dit4xB5QHq9Br6Xx2t9GAhtp6zkoHsfNp1J9wX6H+jeR4LtJc4LxGopZZyNpN/YcG2mw9nBTSPLizgOmjKAujGgvJID3ekD7QYi7nGzkvmQtpA38Vi7iJf0TedlC7QTVjMfcY2QyvSBPpUMW/PIBfbo9pls1XpAX2EdizeznStob3OJpQO0DB2YfE21q2GtnghpAm0Gou3T9tm6BGHQppA12HRVt17eboNlydNoLHsx2JtmL801OYcQmkC/QKLtQt9ydBW3wNpA30ci7Ur3WdolUMhbaBqNhf/8qQJ9Hkszs5wjaH9XkUobaAqtmFRdoGbDb3sWMgG6DIs5852knO82RaXer+P+qyb3eWeo7ZNBrRZvm1otY2QFdBjeHIb6hTne49Put12+9ObMoDdYmfy5UkF6AK6cCCr9aM2u9IddptcOYCG+FNDB5xLKCugO7G01TndFp/xgAntdYvrfdwVLnORt3q9Vx25F27DUjbGPxr6qxMgW6Cd2N+d6wLXedA+6nKbK73Lr/pJxzusvE/wZrvX0FOOgGyBxmF/dprXutYOj6nNdS6xyYnWp/dGcaGdhr5vDWQN9E1MXrUzfcA2j2qPj/l1J1uT9iPOeh8w1O7nCGUN9HzyGZ7ndo9qp0ucanU2r1xH+wdDu5wIeQDVVx0+/kd1i697RNv8thdn+Qz4Uv9p6DeOhHyApmBfq3OBu+3Nfd7nVELZAX3Nw4ZarYG8gG7GY1dlk6/Zm3/2Rk8jlB1QvT82dNAmQjkBVf8Mj957fdrefM7ZVhPKEuidvmDob06CXIGGbsX/bZDf8KAhfdbJhLIGmuZuQ084HHIGatiLvRvrRkP6qldbBXkAzbfD0N0OhryBGqrEMOd50FC7d1hPKGugBh8ydMh5hPIGGouI1d5lj6F1vptQ9kDvcKOhN5wMlQH0QcRGnzC03yZCeQDN9G1D6xwBFQI07FI8x02GdjgB8gJqttPQcmuhYoAumzvG7YZWejrkA1TrPYYO+SVCFQO0aM4bqj0uJJQH0LluSP7PkyeQU9QOmyAvoBm+Zegpz4LKA/qYB/wE5AXUe3m81zqoRKAPOYWcuvP9dxvqcD6h7IAKkaNU3eUlHLcI9EzS5YlAi62h/zUy89QCqqKUmvgHywsJlEHnsQYxAvXVIJo5gIhnPhiBju1iNmLvLn85Ah1ZPYs5jBGo72awEzEC9dVwHqQHI9DxWoAYgSLQQKteGIESu/qhCJTYtT+PQBEoAkWgCBSBkotAEehUWwSKQBEoAkWg/BeBIlAEikARKAJFoFmealu4gVLy1Gt5dkARKAL9BzujPSurTmu/AAAAAElFTkSuQmCC); margin-bottom: 0.4em; -webkit-background-size: 100% auto; background-size: 100% auto; } +.ath-android .ath-action-icon { + width: 1.4em; + height: 1.4em; + background-image: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADAAAAAwCAMAAABg3Am1AAAANlBMVEVmZmb///9mZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZW6fJrAAAAEXRSTlMAAAYHG21ub8fLz9DR8/T4+RrZ9owAAAB3SURBVHja7dNLDoAgDATQWv4gKve/rEajJOJiWLgg6WzpSyB0aHqHiNj6nL1lovb4C+hYzkSNAT7mryQFAVOeGAj4CjwEtgrWXpD/uZKtwEJApXt+Vn0flzRhgNiFZQkOXY0aADQZCOCPlsZJ46Rx0jhp3IiN2wGDHhxtldrlwQAAAABJRU5ErkJggg==); + -webkit-background-size: 100% auto; + background-size: 100% auto; +} .ath-container p { margin: 0; padding: 0; @@ -9089,27 +10298,17 @@ ul.am-dropdown-content > .am-disabled > a:focus { left: 50%; margin-left: -1em; -webkit-transform: scaleX(0.9) rotate(45deg); - -ms-transform: scaleX(0.9) rotate(45deg); - transform: scaleX(0.9) rotate(45deg); + -ms-transform: scaleX(0.9) rotate(45deg); + transform: scaleX(0.9) rotate(45deg); z-index: 2147483641; } -.ath-android:after { - content: ''; - background: #eee; - background: -webkit-linear-gradient(-45deg, rgba(238, 238, 238, 0) 0%, rgba(238, 238, 238, 0) 50%, #eeeeee 50%, #eeeeee 100%); - position: absolute; - width: 2em; - height: 2em; - top: -1.5em; - right: 0; -} .ath-application-icon { position: relative; padding: 0; border: 0; margin: 0 auto 0.2em auto; - height: 4.8em; - width: 4.8em; + height: 6em; + width: 6em; z-index: 2147483642; } .ath-container.ath-ios .ath-application-icon { @@ -9122,6 +10321,9 @@ ul.am-dropdown-content > .am-disabled > a:focus { .ath-container.ath-phone { width: 24em; } + .ath-android.ath-phone { + margin-left: -12em; + } .ath-ios.ath-phone { margin-left: -12em; } @@ -9144,24 +10346,373 @@ ul.am-dropdown-content > .am-disabled > a:focus { } } /* ========================================================================== - Component: JS Plugins helpers + Component: uCheck Plugin ============================================================================ */ -.am-fade { - opacity: 0; - -webkit-transition: opacity 0.2s linear; - transition: opacity 0.2s linear; -} -.am-fade.am-in { - opacity: 1; +.am-checkbox, +.am-radio, +.am-checkbox-inline, +.am-radio-inline { + padding-left: 22px; + position: relative; + -webkit-transition: color .25s linear; + transition: color .25s linear; + font-size: 14px; + line-height: 1.5; } -.am-collapse { - display: none; +label.am-checkbox, +label.am-radio { + font-weight: normal; } -.am-collapse.am-in { +.am-ucheck-icons { + color: #999999; display: block; + height: 20px; + top: 0; + left: 0; + position: absolute; + width: 20px; + text-align: center; + line-height: 21px; + font-size: 18px; + cursor: pointer; } -tr.am-collapse.am-in { - display: table-row; +.am-checkbox .am-icon-checked, +.am-radio .am-icon-checked, +.am-checkbox-inline .am-icon-checked, +.am-radio-inline .am-icon-checked, +.am-checkbox .am-icon-unchecked, +.am-radio .am-icon-unchecked, +.am-checkbox-inline .am-icon-unchecked, +.am-radio-inline .am-icon-unchecked { + position: absolute; + left: 0; + top: 0; + display: inline-table; + margin: 0; + background-color: transparent; + -webkit-transition: color .25s linear; + transition: color .25s linear; +} +.am-checkbox .am-icon-checked:before, +.am-radio .am-icon-checked:before, +.am-checkbox-inline .am-icon-checked:before, +.am-radio-inline .am-icon-checked:before, +.am-checkbox .am-icon-unchecked:before, +.am-radio .am-icon-unchecked:before, +.am-checkbox-inline .am-icon-unchecked:before, +.am-radio-inline .am-icon-unchecked:before { + display: inline-block; + font: normal normal normal 1.6rem/1 "FontAwesome", sans-serif; + /*font-weight: normal; // 2 + font-style: normal; // 2 + vertical-align: baseline; // 3 + line-height: 1; // 4*/ + font-size: inherit; + text-rendering: auto; + -webkit-font-smoothing: antialiased; + -moz-osx-font-smoothing: grayscale; + -webkit-transform: translate(0, 0); + -ms-transform: translate(0, 0); + transform: translate(0, 0); +} +.am-checkbox .am-icon-checked, +.am-radio .am-icon-checked, +.am-checkbox-inline .am-icon-checked, +.am-radio-inline .am-icon-checked { + opacity: 0; +} +.am-checkbox .am-icon-checked:before, +.am-checkbox-inline .am-icon-checked:before { + content: "\f046"; +} +.am-checkbox .am-icon-unchecked:before, +.am-checkbox-inline .am-icon-unchecked:before { + content: "\f096"; +} +.am-radio .am-icon-checked:before, +.am-radio-inline .am-icon-checked:before { + content: "\f192"; +} +.am-radio .am-icon-unchecked:before, +.am-radio-inline .am-icon-unchecked:before { + content: "\f10c"; +} +.am-ucheck-checkbox, +.am-ucheck-radio { + position: absolute; + left: 0; + top: 0; + margin: 0; + padding: 0; + width: 20px; + height: 20px; + opacity: 0; + outline: none !important; +} +.am-ucheck-checkbox:hover:not(.am-nohover):not(:disabled) + .am-ucheck-icons, +.am-ucheck-radio:hover:not(.am-nohover):not(:disabled) + .am-ucheck-icons { + color: #0e90d2; +} +.am-ucheck-checkbox:checked + .am-ucheck-icons, +.am-ucheck-radio:checked + .am-ucheck-icons { + color: #0e90d2; +} +.am-ucheck-checkbox:checked + .am-ucheck-icons .am-icon-unchecked, +.am-ucheck-radio:checked + .am-ucheck-icons .am-icon-unchecked { + opacity: 0; +} +.am-ucheck-checkbox:checked + .am-ucheck-icons .am-icon-checked, +.am-ucheck-radio:checked + .am-ucheck-icons .am-icon-checked { + opacity: 1; +} +.am-ucheck-checkbox:disabled + .am-ucheck-icons, +.am-ucheck-radio:disabled + .am-ucheck-icons { + cursor: default; + color: #d8d8d8; +} +.am-ucheck-checkbox:disabled:checked + .am-ucheck-icons .am-icon-unchecked, +.am-ucheck-radio:disabled:checked + .am-ucheck-icons .am-icon-unchecked { + opacity: 0; +} +.am-ucheck-checkbox:disabled:checked + .am-ucheck-icons .am-icon-checked, +.am-ucheck-radio:disabled:checked + .am-ucheck-icons .am-icon-checked { + opacity: 1; + color: #d8d8d8; +} +.am-checkbox.am-secondary .am-ucheck-checkbox:hover:not(.am-nohover):not(:disabled) + .am-ucheck-icons, +.am-radio.am-secondary .am-ucheck-checkbox:hover:not(.am-nohover):not(:disabled) + .am-ucheck-icons, +.am-checkbox-inline.am-secondary .am-ucheck-checkbox:hover:not(.am-nohover):not(:disabled) + .am-ucheck-icons, +.am-radio-inline.am-secondary .am-ucheck-checkbox:hover:not(.am-nohover):not(:disabled) + .am-ucheck-icons, +.am-checkbox.am-secondary .am-ucheck-radio:hover:not(.am-nohover):not(:disabled) + .am-ucheck-icons, +.am-radio.am-secondary .am-ucheck-radio:hover:not(.am-nohover):not(:disabled) + .am-ucheck-icons, +.am-checkbox-inline.am-secondary .am-ucheck-radio:hover:not(.am-nohover):not(:disabled) + .am-ucheck-icons, +.am-radio-inline.am-secondary .am-ucheck-radio:hover:not(.am-nohover):not(:disabled) + .am-ucheck-icons { + color: #3bb4f2; +} +.am-checkbox.am-secondary .am-ucheck-checkbox:checked + .am-ucheck-icons, +.am-radio.am-secondary .am-ucheck-checkbox:checked + .am-ucheck-icons, +.am-checkbox-inline.am-secondary .am-ucheck-checkbox:checked + .am-ucheck-icons, +.am-radio-inline.am-secondary .am-ucheck-checkbox:checked + .am-ucheck-icons, +.am-checkbox.am-secondary .am-ucheck-radio:checked + .am-ucheck-icons, +.am-radio.am-secondary .am-ucheck-radio:checked + .am-ucheck-icons, +.am-checkbox-inline.am-secondary .am-ucheck-radio:checked + .am-ucheck-icons, +.am-radio-inline.am-secondary .am-ucheck-radio:checked + .am-ucheck-icons { + color: #3bb4f2; +} +.am-checkbox.am-success .am-ucheck-checkbox:hover:not(.am-nohover):not(:disabled) + .am-ucheck-icons, +.am-radio.am-success .am-ucheck-checkbox:hover:not(.am-nohover):not(:disabled) + .am-ucheck-icons, +.am-checkbox-inline.am-success .am-ucheck-checkbox:hover:not(.am-nohover):not(:disabled) + .am-ucheck-icons, +.am-radio-inline.am-success .am-ucheck-checkbox:hover:not(.am-nohover):not(:disabled) + .am-ucheck-icons, +.am-checkbox.am-success .am-ucheck-radio:hover:not(.am-nohover):not(:disabled) + .am-ucheck-icons, +.am-radio.am-success .am-ucheck-radio:hover:not(.am-nohover):not(:disabled) + .am-ucheck-icons, +.am-checkbox-inline.am-success .am-ucheck-radio:hover:not(.am-nohover):not(:disabled) + .am-ucheck-icons, +.am-radio-inline.am-success .am-ucheck-radio:hover:not(.am-nohover):not(:disabled) + .am-ucheck-icons { + color: #5eb95e; +} +.am-checkbox.am-success .am-ucheck-checkbox:checked + .am-ucheck-icons, +.am-radio.am-success .am-ucheck-checkbox:checked + .am-ucheck-icons, +.am-checkbox-inline.am-success .am-ucheck-checkbox:checked + .am-ucheck-icons, +.am-radio-inline.am-success .am-ucheck-checkbox:checked + .am-ucheck-icons, +.am-checkbox.am-success .am-ucheck-radio:checked + .am-ucheck-icons, +.am-radio.am-success .am-ucheck-radio:checked + .am-ucheck-icons, +.am-checkbox-inline.am-success .am-ucheck-radio:checked + .am-ucheck-icons, +.am-radio-inline.am-success .am-ucheck-radio:checked + .am-ucheck-icons { + color: #5eb95e; +} +.am-checkbox.am-warning .am-ucheck-checkbox:hover:not(.am-nohover):not(:disabled) + .am-ucheck-icons, +.am-radio.am-warning .am-ucheck-checkbox:hover:not(.am-nohover):not(:disabled) + .am-ucheck-icons, +.am-checkbox-inline.am-warning .am-ucheck-checkbox:hover:not(.am-nohover):not(:disabled) + .am-ucheck-icons, +.am-radio-inline.am-warning .am-ucheck-checkbox:hover:not(.am-nohover):not(:disabled) + .am-ucheck-icons, +.am-checkbox.am-warning .am-ucheck-radio:hover:not(.am-nohover):not(:disabled) + .am-ucheck-icons, +.am-radio.am-warning .am-ucheck-radio:hover:not(.am-nohover):not(:disabled) + .am-ucheck-icons, +.am-checkbox-inline.am-warning .am-ucheck-radio:hover:not(.am-nohover):not(:disabled) + .am-ucheck-icons, +.am-radio-inline.am-warning .am-ucheck-radio:hover:not(.am-nohover):not(:disabled) + .am-ucheck-icons { + color: #F37B1D; +} +.am-checkbox.am-warning .am-ucheck-checkbox:checked + .am-ucheck-icons, +.am-radio.am-warning .am-ucheck-checkbox:checked + .am-ucheck-icons, +.am-checkbox-inline.am-warning .am-ucheck-checkbox:checked + .am-ucheck-icons, +.am-radio-inline.am-warning .am-ucheck-checkbox:checked + .am-ucheck-icons, +.am-checkbox.am-warning .am-ucheck-radio:checked + .am-ucheck-icons, +.am-radio.am-warning .am-ucheck-radio:checked + .am-ucheck-icons, +.am-checkbox-inline.am-warning .am-ucheck-radio:checked + .am-ucheck-icons, +.am-radio-inline.am-warning .am-ucheck-radio:checked + .am-ucheck-icons { + color: #F37B1D; +} +.am-checkbox.am-danger .am-ucheck-checkbox:hover:not(.am-nohover):not(:disabled) + .am-ucheck-icons, +.am-radio.am-danger .am-ucheck-checkbox:hover:not(.am-nohover):not(:disabled) + .am-ucheck-icons, +.am-checkbox-inline.am-danger .am-ucheck-checkbox:hover:not(.am-nohover):not(:disabled) + .am-ucheck-icons, +.am-radio-inline.am-danger .am-ucheck-checkbox:hover:not(.am-nohover):not(:disabled) + .am-ucheck-icons, +.am-checkbox.am-danger .am-ucheck-radio:hover:not(.am-nohover):not(:disabled) + .am-ucheck-icons, +.am-radio.am-danger .am-ucheck-radio:hover:not(.am-nohover):not(:disabled) + .am-ucheck-icons, +.am-checkbox-inline.am-danger .am-ucheck-radio:hover:not(.am-nohover):not(:disabled) + .am-ucheck-icons, +.am-radio-inline.am-danger .am-ucheck-radio:hover:not(.am-nohover):not(:disabled) + .am-ucheck-icons { + color: #dd514c; +} +.am-checkbox.am-danger .am-ucheck-checkbox:checked + .am-ucheck-icons, +.am-radio.am-danger .am-ucheck-checkbox:checked + .am-ucheck-icons, +.am-checkbox-inline.am-danger .am-ucheck-checkbox:checked + .am-ucheck-icons, +.am-radio-inline.am-danger .am-ucheck-checkbox:checked + .am-ucheck-icons, +.am-checkbox.am-danger .am-ucheck-radio:checked + .am-ucheck-icons, +.am-radio.am-danger .am-ucheck-radio:checked + .am-ucheck-icons, +.am-checkbox-inline.am-danger .am-ucheck-radio:checked + .am-ucheck-icons, +.am-radio-inline.am-danger .am-ucheck-radio:checked + .am-ucheck-icons { + color: #dd514c; +} +.am-field-error + .am-ucheck-icons { + color: #dd514c; +} +.am-field-valid + .am-ucheck-icons { + color: #5eb95e; +} +/* +// Group Addon +.@{ns}input-group-label { + .@{ns}radio, + .@{ns}checkbox { + margin: -2px 0; + padding-left: 15px; + } +} + +// Form inline style +.@{ns}form-inline .@{ns}checkbox, +.@{ns}form-inline .@{ns}radio { + padding-left: 24px; +} +*/ +/* ========================================================================== + Component: Selected Plugin + ============================================================================ */ +.am-selected { + width: 200px; +} +.am-selected-btn { + width: 100%; + padding-left: 10px; + text-align: right; +} +.am-selected-btn.am-btn-default { + background: none; +} +.am-invalid .am-selected-btn { + border-color: #dd514c; +} +.am-selected-header { + height: 45px; + background-color: #f2f2f2; + border-bottom: 1px solid #ddd; + display: none; +} +.am-selected-status { + text-align: left; + width: 100%; + display: block; + word-wrap: normal; + /* for IE */ + text-overflow: ellipsis; + white-space: nowrap; + overflow: hidden; +} +.am-selected-content { + padding: 10px 0; +} +.am-selected-search { + padding: 0 10px 10px; +} +.am-selected-search .am-form-field { + padding: .5em; +} +.am-selected-list { + margin: 0; + padding: 0; + list-style: none; + font-size: 1.5rem; +} +.am-selected-list li { + position: relative; + cursor: pointer; + padding: 5px 10px; + -webkit-transition: background-color 0.15s; + transition: background-color 0.15s; +} +.am-selected-list li:hover { + background-color: #f8f8f8; +} +.am-selected-list li:hover .am-icon-check { + opacity: .6; +} +.am-selected-list li.am-checked .am-icon-check { + opacity: 1; + color: #0e90d2; +} +.am-selected-list li.am-disabled { + opacity: .5; + pointer-events: none; + cursor: not-allowed; +} +.am-selected-list .am-selected-list-header { + margin-top: 8px; + font-size: 1.3rem; + color: #999999; + border-bottom: 1px solid #e5e5e5; + cursor: default; +} +.am-selected-list .am-selected-list-header:hover { + background: none; +} +.am-selected-list .am-selected-list-header:first-child { + margin-top: 0; +} +.am-selected-list .am-selected-text { + display: block; + word-wrap: normal; + /* for IE */ + text-overflow: ellipsis; + white-space: nowrap; + overflow: hidden; + margin-right: 30px; +} +.am-selected-list .am-icon-check { + position: absolute; + right: 8px; + top: 5px; + color: #999999; + opacity: 0; + -webkit-transition: opacity .15s; + transition: opacity .15s; +} +.am-selected-hint { + line-height: 1.2; + color: #dd514c; +} +.am-selected-hint:not(:empty) { + margin-top: 10px; + border-top: 1px solid #e5e5e5; + padding: 10px 10px 0; +} +.am-selected-placeholder { + opacity: .65; +} +/* ========================================================================== + Component: JS Plugins helpers + ============================================================================ */ +.am-fade { + opacity: 0; + -webkit-transition: opacity .2s linear; + transition: opacity .2s linear; +} +.am-fade.am-in { + opacity: 1; +} +.am-collapse { + display: none; +} +.am-collapse.am-in { + display: block; +} +tr.am-collapse.am-in { + display: table-row; } tbody.am-collapse.am-in { display: table-row-group; @@ -9171,7 +10722,7 @@ tbody.am-collapse.am-in { height: 0; overflow: hidden; -webkit-transition: height .3s ease; - transition: height .3s ease; + transition: height .3s ease; } .am-sticky { position: fixed !important; @@ -9199,8 +10750,6 @@ tbody.am-collapse.am-in { background-color: rgba(0, 0, 0, 0.6); z-index: 1100; opacity: 0; - -webkit-transition: opacity .15s; - transition: opacity .15s; } .am-dimmer.am-active { opacity: 1; @@ -9208,6 +10757,350 @@ tbody.am-collapse.am-in { [data-am-collapse] { cursor: pointer; } +.am-datepicker { + top: 0; + left: 0; + border-radius: 0; + background: #fff; + -webkit-box-shadow: 0 0 10px #ccc; + box-shadow: 0 0 10px #ccc; + padding-bottom: 10px; + margin-top: 10px; + width: 238px; + color: #555; + display: none; +} +.am-datepicker > div { + display: none; +} +.am-datepicker table { + width: 100%; +} +.am-datepicker tr.am-datepicker-header { + font-size: 1.6rem; + color: #fff; + background: #3bb4f2; +} +.am-datepicker td, +.am-datepicker th { + text-align: center; + font-weight: normal; + cursor: pointer; +} +.am-datepicker th { + height: 48px; +} +.am-datepicker td { + font-size: 1.4rem; +} +.am-datepicker td.am-datepicker-day { + height: 34px; + width: 34px; +} +.am-datepicker td.am-datepicker-day:hover { + background: #F0F0F0; + height: 34px; + width: 34px; +} +.am-datepicker td.am-datepicker-day.am-disabled { + cursor: no-drop; + color: #999; + background: #fafafa; +} +.am-datepicker td.am-datepicker-old, +.am-datepicker td.am-datepicker-new { + color: #89d7ff; +} +.am-datepicker td.am-active, +.am-datepicker td.am-active:hover { + border-radius: 0; + color: #0084c7; + background: #F0F0F0; +} +.am-datepicker td span { + display: block; + width: 79.33333333px; + height: 40px; + line-height: 40px; + float: left; + cursor: pointer; +} +.am-datepicker td span:hover { + background: #F0F0F0; +} +.am-datepicker td span.am-active { + color: #0084c7; + background: #F0F0F0; +} +.am-datepicker td span.am-disabled { + cursor: no-drop; + color: #999; + background: #fafafa; +} +.am-datepicker td span.am-datepicker-old { + color: #89d7ff; +} +.am-datepicker .am-datepicker-dow { + height: 40px; + color: #0c80ba; +} +.am-datepicker-caret { + display: block!important; + display: inline-block; + width: 0; + height: 0; + vertical-align: middle; + border-bottom: 7px solid #3bb4f2; + border-right: 7px solid transparent; + border-left: 7px solid transparent; + border-top: 0 dotted; + -webkit-transform: rotate(360deg); + -ms-transform: rotate(360deg); + transform: rotate(360deg); + position: absolute; + top: -7px; + left: 6px; +} +.am-datepicker-right .am-datepicker-caret { + left: auto; + right: 7px; +} +.am-datepicker-up .am-datepicker-caret { + top: auto; + bottom: -7px; + display: inline-block; + width: 0; + height: 0; + vertical-align: middle; + border-top: 7px solid #fff; + border-right: 7px solid transparent; + border-left: 7px solid transparent; + border-bottom: 0 dotted; + -webkit-transform: rotate(360deg); + -ms-transform: rotate(360deg); + transform: rotate(360deg); +} +.am-datepicker-select { + height: 34px; + line-height: 34px; + text-align: center; + -webkit-transition: background-color 300ms ease-out; + transition: background-color 300ms ease-out; +} +.am-datepicker-select:hover { + background: rgba(154, 217, 248, 0.5); + color: #0c80ba; +} +.am-datepicker-prev, +.am-datepicker-next { + width: 34px; + height: 34px; +} +.am-datepicker-prev-icon, +.am-datepicker-next-icon { + width: 34px; + height: 34px; + line-height: 34px; + display: inline-block; + -webkit-transition: background-color 300ms ease-out; + transition: background-color 300ms ease-out; +} +.am-datepicker-prev-icon:hover, +.am-datepicker-next-icon:hover { + background: rgba(154, 217, 248, 0.5); + color: #0c80ba; +} +.am-datepicker-prev-icon:before { + display: inline-block; + font: normal normal normal 1.6rem/1 "FontAwesome", sans-serif; + /*font-weight: normal; // 2 + font-style: normal; // 2 + vertical-align: baseline; // 3 + line-height: 1; // 4*/ + font-size: inherit; + text-rendering: auto; + -webkit-font-smoothing: antialiased; + -moz-osx-font-smoothing: grayscale; + -webkit-transform: translate(0, 0); + -ms-transform: translate(0, 0); + transform: translate(0, 0); + content: "\f053"; +} +.am-datepicker-next-icon:before { + display: inline-block; + font: normal normal normal 1.6rem/1 "FontAwesome", sans-serif; + /*font-weight: normal; // 2 + font-style: normal; // 2 + vertical-align: baseline; // 3 + line-height: 1; // 4*/ + font-size: inherit; + text-rendering: auto; + -webkit-font-smoothing: antialiased; + -moz-osx-font-smoothing: grayscale; + -webkit-transform: translate(0, 0); + -ms-transform: translate(0, 0); + transform: translate(0, 0); + content: "\f054"; +} +.am-datepicker-dropdown { + position: absolute; + z-index: 1120; +} +@media only screen and (max-width: 640px) { + .am-datepicker { + width: 100%; + } + .am-datepicker td span { + width: 33.33%; + } + .am-datepicker-caret { + display: none!important; + } + .am-datepicker-prev, + .am-datepicker-next { + width: 44px; + height: 44px; + } +} +.am-datepicker-success tr.am-datepicker-header { + background: #5eb95e; +} +.am-datepicker-success td.am-datepicker-day.am-disabled { + color: #999; +} +.am-datepicker-success td.am-datepicker-old, +.am-datepicker-success td.am-datepicker-new { + color: #94df94; +} +.am-datepicker-success td.am-active, +.am-datepicker-success td.am-active:hover { + color: #1b961b; +} +.am-datepicker-success td span.am-datepicker-old { + color: #94df94; +} +.am-datepicker-success td span.am-active { + color: #1b961b; +} +.am-datepicker-success .am-datepicker-caret { + border-bottom-color: #5eb95e; +} +.am-datepicker-success .am-datepicker-dow { + color: #367b36; +} +.am-datepicker-success .am-datepicker-select:hover, +.am-datepicker-success .am-datepicker-prev-icon:hover, +.am-datepicker-success .am-datepicker-next-icon:hover { + background: rgba(165, 216, 165, 0.5); + color: #367b36; +} +.am-datepicker-danger tr.am-datepicker-header { + background: #dd514c; +} +.am-datepicker-danger td.am-datepicker-day.am-disabled { + color: #999; +} +.am-datepicker-danger td.am-datepicker-old, +.am-datepicker-danger td.am-datepicker-new { + color: #f59490; +} +.am-datepicker-danger td.am-active, +.am-datepicker-danger td.am-active:hover { + color: #c10802; +} +.am-datepicker-danger td span.am-datepicker-old { + color: #f59490; +} +.am-datepicker-danger td span.am-active { + color: #c10802; +} +.am-datepicker-danger .am-datepicker-caret { + border-bottom-color: #dd514c; +} +.am-datepicker-danger .am-datepicker-dow { + color: #a4241f; +} +.am-datepicker-danger .am-datepicker-select:hover, +.am-datepicker-danger .am-datepicker-prev-icon:hover, +.am-datepicker-danger .am-datepicker-next-icon:hover { + background: rgba(237, 164, 162, 0.5); + color: #a4241f; +} +.am-datepicker-warning tr.am-datepicker-header { + background: #F37B1D; +} +.am-datepicker-warning td.am-datepicker-day.am-disabled { + color: #999; +} +.am-datepicker-warning td.am-datepicker-old, +.am-datepicker-warning td.am-datepicker-new { + color: #ffad6d; +} +.am-datepicker-warning td.am-active, +.am-datepicker-warning td.am-active:hover { + color: #aa4b00; +} +.am-datepicker-warning td span.am-datepicker-old { + color: #ffad6d; +} +.am-datepicker-warning td span.am-active { + color: #aa4b00; +} +.am-datepicker-warning .am-datepicker-caret { + border-bottom-color: #F37B1D; +} +.am-datepicker-warning .am-datepicker-dow { + color: #a14c09; +} +.am-datepicker-warning .am-datepicker-select:hover, +.am-datepicker-warning .am-datepicker-prev-icon:hover, +.am-datepicker-warning .am-datepicker-next-icon:hover { + background: rgba(248, 180, 126, 0.5); + color: #a14c09; +} +.am-datepicker > div { + display: block; +} +.am-datepicker > div span.am-datepicker-hour { + width: 59.5px; +} +.am-datepicker-date { + display: block; +} +.am-datepicker-date.am-input-group { + display: table; +} +.am-datepicker-time-box { + padding: 30px 0 30px 0; +} +.am-datepicker-time-box strong { + font-size: 5.2rem; + display: inline-block; + height: 70px; + width: 70px; + line-height: 70px; + font-weight: normal; +} +.am-datepicker-time-box strong:hover { + border-radius: 4px; + background: #ECECEC; +} +.am-datepicker-time-box em { + display: inline-block; + height: 70px; + width: 20px; + line-height: 70px; + font-size: 5.2rem; + font-style: normal; +} +.am-datepicker-toggle { + text-align: center; + cursor: pointer; + padding: 10px 0; +} +.am-datepicker-toggle:hover { + background: #f0f0f0; +} /* ========================================================================== Component: Print ============================================================================ */ @@ -9246,7 +11139,7 @@ tbody.am-collapse.am-in { page-break-inside: avoid; } thead { - display: table-header-group + display: table-header-group; /* h5bp.com/t */ } tr, @@ -9359,6 +11252,10 @@ tbody.am-collapse.am-in { font-weight: normal; cursor: pointer; } +.am-accordion-item.am-disabled .am-accordion-title { + cursor: default; + pointer-events: none; +} .am-accordion-bd { margin: 0 !important; padding: 0 !important; @@ -9388,21 +11285,28 @@ tbody.am-collapse.am-in { .am-accordion-default .am-accordion-title { color: rgba(0, 0, 0, 0.6); -webkit-transition: background-color 0.2s ease-out; - transition: background-color 0.2s ease-out; + transition: background-color 0.2s ease-out; padding: .8rem 1rem; } .am-accordion-default .am-accordion-title:before { content: "\f0da"; display: inline-block; - font-family: "FontAwesome", sans-serif; - font-weight: normal; - font-style: normal; - vertical-align: baseline; - line-height: 1; + font: normal normal normal 1.6rem/1 "FontAwesome", sans-serif; + /*font-weight: normal; // 2 + font-style: normal; // 2 + vertical-align: baseline; // 3 + line-height: 1; // 4*/ + font-size: inherit; + text-rendering: auto; -webkit-font-smoothing: antialiased; -moz-osx-font-smoothing: grayscale; + -webkit-transform: translate(0, 0); + -ms-transform: translate(0, 0); + transform: translate(0, 0); -webkit-transition: -webkit-transform .2s ease; - transition: transform .2s ease; + transition: -webkit-transform .2s ease; + transition: transform .2s ease; + transition: transform .2s ease, -webkit-transform .2s ease; -webkit-transform: rotate(0deg); -ms-transform: rotate(0deg); transform: rotate(0deg); @@ -9412,7 +11316,7 @@ tbody.am-collapse.am-in { color: #0e90d2; } .am-accordion-default .am-accordion-content { - color: #666666; + color: #666; } .am-accordion-default .am-active .am-accordion-title { background-color: #eeeeee; @@ -9433,28 +11337,35 @@ tbody.am-collapse.am-in { .am-accordion-basic .am-accordion-title { color: #333333; -webkit-transition: background-color 0.2s ease-out; - transition: background-color 0.2s ease-out; + transition: background-color 0.2s ease-out; padding: .8rem 0 0; } .am-accordion-basic .am-accordion-title:before { display: inline-block; - font-family: "FontAwesome", sans-serif; - font-weight: normal; - font-style: normal; - vertical-align: baseline; - line-height: 1; + font: normal normal normal 1.6rem/1 "FontAwesome", sans-serif; + /*font-weight: normal; // 2 + font-style: normal; // 2 + vertical-align: baseline; // 3 + line-height: 1; // 4*/ + font-size: inherit; + text-rendering: auto; -webkit-font-smoothing: antialiased; -moz-osx-font-smoothing: grayscale; + -webkit-transform: translate(0, 0); + -ms-transform: translate(0, 0); + transform: translate(0, 0); content: "\f0da"; -webkit-transition: -webkit-transform .2s ease; - transition: transform .2s ease; + transition: -webkit-transform .2s ease; + transition: transform .2s ease; + transition: transform .2s ease, -webkit-transform .2s ease; -webkit-transform: rotate(0deg); -ms-transform: rotate(0deg); transform: rotate(0deg); margin-right: .5rem; } .am-accordion-basic .am-accordion-content { - color: #666666; + color: #666; } .am-accordion-basic .am-active .am-accordion-title { color: #0e90d2; @@ -9482,23 +11393,30 @@ tbody.am-collapse.am-in { .am-accordion-gapped .am-accordion-title { color: rgba(0, 0, 0, 0.6); -webkit-transition: background-color 0.15s ease-out; - transition: background-color 0.15s ease-out; + transition: background-color 0.15s ease-out; border-bottom: 1px solid #dedede; padding: 0.8rem 2rem 0.8rem 1rem; position: relative; } .am-accordion-gapped .am-accordion-title:after { display: inline-block; - font-family: "FontAwesome", sans-serif; - font-weight: normal; - font-style: normal; - vertical-align: baseline; - line-height: 1; + font: normal normal normal 1.6rem/1 "FontAwesome", sans-serif; + /*font-weight: normal; // 2 + font-style: normal; // 2 + vertical-align: baseline; // 3 + line-height: 1; // 4*/ + font-size: inherit; + text-rendering: auto; -webkit-font-smoothing: antialiased; -moz-osx-font-smoothing: grayscale; + -webkit-transform: translate(0, 0); + -ms-transform: translate(0, 0); + transform: translate(0, 0); content: "\f105"; -webkit-transition: -webkit-transform .2s linear; - transition: transform .2s linear; + transition: -webkit-transform .2s linear; + transition: transform .2s linear; + transition: transform .2s linear, -webkit-transform .2s linear; position: absolute; right: 10px; top: 50%; @@ -9508,7 +11426,7 @@ tbody.am-collapse.am-in { color: rgba(0, 0, 0, 0.8); } .am-accordion-gapped .am-accordion-content { - color: #666666; + color: #666; } .am-accordion-gapped .am-active .am-accordion-title { background-color: #f5f5f5; @@ -9519,77 +11437,29 @@ tbody.am-collapse.am-in { -ms-transform: rotate(90deg); transform: rotate(90deg); } -/** - * Accordion Theme: one - * Author: hzp (hzp@yunshipei.com) - */ -.am-accordion-one { - margin: 0 10px 0 10px; -} -.am-accordion-one .am-accordion-item { - border: 1px solid #dfdfdf; - margin: .5rem 0; - background: #ffffff; -} -.am-accordion-one .am-accordion-title { - color: #555555; - -webkit-transition: background-color 0.2s ease-out; - transition: background-color 0.2s ease-out; - padding: 0.8rem 2rem 0.8rem 1rem; - position: relative; -} -.am-accordion-one .am-accordion-title:after { - display: inline-block; - font-family: "FontAwesome", sans-serif; - font-weight: normal; - font-style: normal; - vertical-align: baseline; - line-height: 1; - -webkit-font-smoothing: antialiased; - -moz-osx-font-smoothing: grayscale; - content: "\f105"; - -webkit-transition: -webkit-transform .2s linear; - transition: transform .2s linear; - position: absolute; - right: 10px; - top: 50%; - margin-top: -0.8rem; -} -.am-accordion-one .am-accordion-title:hover { - color: #15afef; -} -.am-accordion-one .am-accordion-content { - color: #666666; -} -.am-accordion-one .am-active .am-accordion-title { - background-color: #f8f8f8; - color: #15afef; -} -.am-accordion-one .am-active .am-accordion-title:after { - -webkit-transform: rotate(90deg); - -ms-transform: rotate(90deg); - transform: rotate(90deg); +.am-divider { + height: 0; + margin: 1.5rem auto; + overflow: hidden; + clear: both; } /** * Divider Theme: default */ .am-divider-default { - height: 1px; - border: none; - margin: 1.5rem auto; - overflow: hidden; - background-color: #dddddd; - clear: both; + border-top: 1px solid #ddd; } /** - * Divider Theme: one + * Divider Theme: dotted */ -.am-divider-one { - height: 10px; - border: none; - overflow: hidden; - clear: both; - margin: 0; +.am-divider-dotted { + border-top: 1px dotted #ccc; +} +/** + * Divider Theme: dashed + */ +.am-divider-dashed { + border-top: 1px dashed #ccc; } .am-figure-zoomable { position: relative; @@ -9597,13 +11467,18 @@ tbody.am-collapse.am-in { } .am-figure-zoomable:after { display: inline-block; - font-family: "FontAwesome", sans-serif; - font-weight: normal; - font-style: normal; - vertical-align: baseline; - line-height: 1; + font: normal normal normal 1.6rem/1 "FontAwesome", sans-serif; + /*font-weight: normal; // 2 + font-style: normal; // 2 + vertical-align: baseline; // 3 + line-height: 1; // 4*/ + font-size: inherit; + text-rendering: auto; -webkit-font-smoothing: antialiased; -moz-osx-font-smoothing: grayscale; + -webkit-transform: translate(0, 0); + -ms-transform: translate(0, 0); + transform: translate(0, 0); content: "\f00e"; position: absolute; top: 1rem; @@ -9611,7 +11486,8 @@ tbody.am-collapse.am-in { color: #999999; font-size: 1.6rem; -webkit-transition: all 0.2s; - transition: all 0.2s; + transition: all 0.2s; + pointer-events: none; } .am-figure-zoomable:hover:after { color: #eeeeee; @@ -9633,26 +11509,6 @@ tbody.am-collapse.am-in { margin-bottom: 15px; color: #333333; } -/** - * Figure theme: one - */ -.am-figure-one { - margin: 0 10px; - background: #ffffff; -} -.am-figure-one img { - display: block; - max-width: 100%; - height: auto; - padding: 2px; - border: 1px solid #dfdfdf; -} -.am-figure-one figcaption { - text-align: center; - font-size: 1.4rem; - padding: 10px 0; - color: #888888; -} .am-footer { text-align: center; padding: 1em 0; @@ -9676,7 +11532,7 @@ tbody.am-collapse.am-in { * Footer Theme: default */ .am-footer-default { - background-color: #ffffff; + background-color: #fff; } .am-footer-default a { color: #555555; @@ -9690,7 +11546,7 @@ tbody.am-collapse.am-in { cursor: pointer; } .am-footer-default .am-footer-divider { - color: #cccccc; + color: #ccc; } .am-footer-default .am-footer-desktop { color: #0e90d2; @@ -9708,57 +11564,6 @@ tbody.am-collapse.am-in { margin: 5px; } } -/** - * Footer Theme: one - */ -.am-footer-one a { - color: #15afef; - font-weight: bold; -} -.am-footer-one .am-footer-switch { - margin-bottom: 10px; -} -.am-footer-one .am-footer-ysp { - color: #15afef; - cursor: pointer; -} -.am-footer-one .am-footer-divider { - color: #999999; -} -.am-footer-one .am-footer-desktop { - font-weight: normal; - color: #555555; -} -.am-footer-one .am-footer-miscs { - color: #7c7c7c; - overflow: hidden; - padding: 0 10px; - font-size: 14px; -} -.am-footer-one .am-footer-miscs ul, -.am-footer-one .am-footer-miscs li { - padding-left: 0; - list-style: none; -} -.am-footer-one .am-footer-miscs p { - margin: 4px 0; -} -.am-footer-one .am-footer-miscs a { - font-weight: normal; - color: #555555; - margin: 0 1px; -} -.am-footer-one .am-footer-miscs img { - display: block; - max-width: 100%; - margin: 0 auto 2px auto; -} -@media only screen and (min-width:641px) { - .am-footer-one .am-footer-miscs p { - display: inline-block; - margin: 5px; - } -} .am-gallery { padding: 5px 5px 0 5px; list-style: none; @@ -9813,7 +11618,7 @@ tbody.am-collapse.am-in { .am-gallery-overlay .am-gallery-title { font-weight: normal; font-size: 1.4rem; - color: #ffffff; + color: #FFF; position: absolute; bottom: 0; width: 100%; @@ -9887,57 +11692,11 @@ tbody.am-collapse.am-in { /* for IE */ text-overflow: ellipsis; white-space: nowrap; - overflow: hidden; -} -.am-gallery-imgbordered .am-gallery-desc { - color: #999999; - font-size: 1.2rem; -} -/** - * Gallery Theme: one - * Author: hzp (hzp@yunshipei.com) - */ -.am-gallery-one { - padding: 0 5px; - background-color: #ffffff; -} -.am-gallery-one > li { - padding: 5px; -} -.am-gallery-one .am-gallery-item { - padding: 5px; -} -.am-gallery-one .am-gallery-item img { - width: 100%; - height: auto; -} -.am-gallery-one .am-gallery-title { - line-height: 34px; - font-weight: normal; - font-size: 1.4rem; - display: block; - word-wrap: normal; - /* for IE */ - text-overflow: ellipsis; - white-space: nowrap; - overflow: hidden; - color: #555555; -} -.am-gallery-one .am-gallery-desc { - color: #999999; - font-size: 1.2rem; -} -.am-gallery-one .am-gallery-more { - width: 100%; -} -.am-gallery-one .am-gallery-more a { - background-color: #dfdfdf; - color: #555555; - height: 35px; - line-height: 35px; - font-size: 1.4rem; - display: block; - text-align: center; + overflow: hidden; +} +.am-gallery-imgbordered .am-gallery-desc { + color: #999999; + font-size: 1.2rem; } .am-gotop a { display: inline-block; @@ -9954,7 +11713,7 @@ tbody.am-collapse.am-in { background-color: #0e90d2; padding: .5em 1.5em; border-radius: 0; - color: #ffffff; + color: #fff; } .am-gotop-default a img { display: none; @@ -9996,33 +11755,13 @@ tbody.am-collapse.am-in { line-height: 32px; background-color: #555555; vertical-align: middle; - color: #dddddd; + color: #ddd; } .am-gotop-fixed .am-gotop-icon:hover { - color: #ffffff; -} -/** - * Gotop Theme: one - */ -.am-gotop-one { - position: fixed; - right: 10px; - bottom: 10px; - z-index: 1005; - width: 32px; - height: 32px; - background-color: #ffffff; - border-radius: 0; - border: 1px solid #15afef; - text-align: center; -} -.am-gotop-one .am-gotop-title { - display: none; + color: #fff; } -.am-gotop-one .am-gotop-icon { - vertical-align: middle; - display: inline-block; - color: #15afef; +.am-with-fixed-navbar .am-gotop-fixed { + bottom: 60px; } .am-header { position: relative; @@ -10085,10 +11824,10 @@ tbody.am-collapse.am-in { background-color: #0e90d2; } .am-header-default .am-header-title { - color: #ffffff; + color: #fff; } .am-header-default .am-header-title a { - color: #ffffff; + color: #fff; } .am-header-default .am-header-icon { font-size: 20px; @@ -10096,13 +11835,13 @@ tbody.am-collapse.am-in { .am-header-default .am-header-nav { color: #eeeeee; } -.am-header-default .am-header-nav a { +.am-header-default .am-header-nav > a { display: inline-block; min-width: 36px; text-align: center; color: #eeeeee; } -.am-header-default .am-header-nav a + a { +.am-header-default .am-header-nav > a + a { margin-left: 5px; } .am-header-default .am-header-nav .am-btn { @@ -10123,37 +11862,12 @@ tbody.am-collapse.am-in { .am-header-default .am-header-nav-title + .am-header-icon { font-size: 14px; } -/** - * Header Theme: one - */ -.am-header-one { - background: #ffffff; -} -.am-header-one .am-header-title { - margin: 0 15%; - color: #333333; - display: block; - word-wrap: normal; - /* for IE */ - text-overflow: ellipsis; - white-space: nowrap; - overflow: hidden; -} -.am-header-one .am-header-title a { - color: #333333; -} -.am-header-one .am-header-title img { - height: 34px; - width: auto; - margin-top: 8px; - vertical-align: top; -} -.am-header-one .am-header-nav a { - color: #15afef; -} .am-intro { position: relative; } +.am-intro img { + max-width: 100%; +} .am-intro-hd { position: relative; height: 45px; @@ -10190,62 +11904,15 @@ tbody.am-collapse.am-in { */ .am-intro-default .am-intro-hd { background-color: #0e90d2; - color: #ffffff; + color: #fff; padding: 0 10px; } .am-intro-default .am-intro-hd a { - color: #eeeeee; + color: #eee; } .am-intro-default .am-intro-right { padding-left: 0; } -/** - * Intro Theme: one - */ -.am-intro-one { - padding-bottom: 10px; - background-color: #ffffff; -} -.am-intro-one a { - color: #15afef; -} -.am-intro-one .am-intro-hd { - border-bottom: 1px solid #15afef; - margin-left: 10px; - margin-right: 10px; - line-height: 44px; -} -.am-intro-one .am-intro-title { - color: #333333; - padding-left: 10px; -} -.am-intro-one .am-intro-title:before { - position: absolute; - left: 1px; - top: 10px; - bottom: 10px; - content: ''; - width: 3px; - background-color: #15afef; - display: block; -} -.am-intro-one .am-intro-bd { - color: #555555; -} -.am-intro-one .am-intro-left { - float: left; - display: inline; -} -.am-intro-one .am-intro-right { - display: inline; - padding-left: 0; - font-size: 1.4rem; -} -.am-intro-one .am-intro-right p { - display: inline; - margin: 0; - padding: 0; -} .am-list-news-hd { padding-top: 1.2rem; padding-bottom: 0.8rem; @@ -10308,6 +11975,13 @@ tbody.am-collapse.am-in { .am-list-news-ft { text-align: center; } +.am-list-news .am-titlebar { + margin-left: 0; + margin-right: 0; +} +.am-list-news .am-titlebar ~ .am-list-news-bd .am-list > li:first-child { + border-top: none; +} /** * list_news Theme: default */ @@ -10328,322 +12002,74 @@ tbody.am-collapse.am-in { border-color: #dedede; } .am-list-news-default .am-list .am-list-item-desced { - padding-top: 1rem; - padding-bottom: 1rem; -} -.am-list-news-default .am-list .am-list-item-desced > a { - padding: 0; -} -.am-list-news-default .am-list .am-list-item-desced .am-list-item-text { - margin-top: 0.5rem; - color: #757575; -} -.am-list-news-default .am-list .am-list-item-text { - overflow: hidden; - text-overflow: ellipsis; - display: -webkit-box; - -webkit-box-orient: vertical; - line-height: 1.3em; - -webkit-line-clamp: 2; - /* number of lines to show */ - max-height: 2.6em; -} -.am-list-news-default .am-list .am-list-item-thumb-top .am-list-thumb { - padding: 0; - margin-bottom: 0.8rem; -} -.am-list-news-default .am-list .am-list-item-thumb-top .am-list-main { - padding: 0; -} -.am-list-news-default .am-list .am-list-item-thumb-left .am-list-thumb { - padding-left: 0; -} -.am-list-news-default .am-list .am-list-item-desced .am-list-main { - padding: 0; -} -.am-list-news-default .am-list .am-list-item-thumb-right .am-list-thumb { - padding-right: 0; -} -.am-list-news-default .am-list .am-list-item-thumb-bottom-left .am-list-item-hd { - clear: both; - padding-bottom: 0.5rem; -} -.am-list-news-default .am-list .am-list-item-thumb-bottom-left .am-list-thumb { - padding-left: 0; -} -.am-list-news-default .am-list .am-list-item-thumb-bottom-right .am-list-item-hd { - clear: both; - padding-bottom: 0.5rem; -} -.am-list-news-default .am-list .am-list-item-thumb-bottom-right .am-list-thumb { - padding-right: 0; -} -.am-list-news-default .am-list .am-list-thumb img { - width: 100%; - display: block; -} -@media only screen and (max-width: 640px) { - .am-list-news-default .am-list-item-thumb-left .am-list-thumb, - .am-list-news-default .am-list-item-thumb-right .am-list-thumb { - max-height: 80px; - overflow: hidden; - } - .am-list-news-default .am-list-item-thumb-bottom-left .am-list-item-text, - .am-list-news-default .am-list-item-thumb-bottom-right .am-list-item-text { - -webkit-line-clamp: 3; - /* number of lines to show */ - max-height: 3.9em; - } - .am-list-news-default .am-list-item-thumb-bottom-left .am-list-thumb, - .am-list-news-default .am-list-item-thumb-bottom-right .am-list-thumb { - max-height: 60px; - overflow: hidden; - } -} -/** - * list_news Theme: one - * Author: hzp (hzp@yunshipei.com) - */ -.am-list-news-one { - margin: 0 10px; -} -.am-list-news-one .am-list-news-hd { - background: #ffffff; - height: 40px; - line-height: 40px; - border-bottom: 1px solid #15afef; - padding: 0 0 0 10px; - margin: 0; - position: relative; - color: #000000; -} -.am-list-news-one .am-list-news-hd::before { - width: 4px; - height: 30px; - background: #15afef; - display: inline-block; - content: ''; - position: absolute; - top: 5px; - left: 0; -} -.am-list-news-one .am-list-news-hd > a { - color: #000000; - display: inline; -} -.am-list-news-one .am-list-news-hd > a .am-list-news-more { - color: #888888; - padding: 0; - margin-right: 5px; - background: none; - font-size: 1.4rem; - height: 40px; - line-height: 40px; -} -.am-list-news-one .am-list-news-hd h2 { - font-weight: normal; - float: left; - line-height: 40px; - height: 40px; -} -.am-list-news-one .am-list-news-bd { - padding: 0px 5px 4px 5px; - background: #ffffff; -} -.am-list-news-one .am-list { - margin-bottom: 0; -} -.am-list-news-one .am-list > li { - margin: 0; - border: 0; - overflow: hidden; -} -.am-list-news-one .am-list > li > a { - color: #222222; - font-weight: normal; - display: block; - word-wrap: normal; - /* for IE */ - text-overflow: ellipsis; - white-space: nowrap; - overflow: hidden; - height: 30px; - line-height: 30px; - padding: 0; - position: relative; - text-indent: 10px; -} -.am-list-news-one .am-list > li > a:before { - width: 4px; - height: 4px; - background: #15afef; - display: inline-block; - content: ''; - position: absolute; - top: 14px; - left: 0; -} -.am-list-news-one .am-list > li .am-list-date { - color: #666666; - top: 5px; - rigth: 0; - display: none; -} -.am-list-news-one .am-list > li:last-child { - border-bottom: 0; -} -.am-list-news-one .am-list .am-list-item-dated > a { - color: #222222; -} -.am-list-news-one .am-list .am-list-item-desced { - padding: 3px 0; - border-bottom: 1px dashed #dfdfdf; -} -.am-list-news-one .am-list .am-list-item-desced:before { - display: none; -} -.am-list-news-one .am-list .am-list-item-desced .am-list-item-hd { - font-weight: normal; - font-size: 1.5rem; - margin-bottom: 0; -} -.am-list-news-one .am-list .am-list-item-desced .am-list-item-hd > a:before { - display: none; -} -.am-list-news-one .am-list .am-list-item-desced a.am-list-item-hd { - height: 34px; - line-height: 34px; - padding: 0; - color: #15afef; - display: block; - word-wrap: normal; - /* for IE */ - text-overflow: ellipsis; - white-space: nowrap; - overflow: hidden; - text-indent: 0; -} -.am-list-news-one .am-list .am-list-item-desced a.am-list-item-hd:before { - display: none; -} -.am-list-news-one .am-list .am-list-item-desced .am-list-item-text { - color: #666666; - line-height: 22px; - font-size: 1.4rem; - max-height: none; - margin-bottom: 8px; -} -.am-list-news-one .am-list .am-list-item-desced .am-list-item-text a { - color: #666666; -} -.am-list-news-one .am-list .am-list-item-desced .am-list-main { - padding: 0 5px; - position: relative; -} -.am-list-news-one .am-list .am-list-item-desced .am-list-main .am-list-date { - position: absolute; - right: 5px; - top: 3.5rem; - font-size: 1.2rem; - color: #888888; -} -.am-list-news-one .am-list .am-list-item-desced .am-list-main .am-list-item-text { - max-height: 3rem; - overflow: hidden; - font-size: 1.2rem; - line-height: 18px; - color: #666666; -} -.am-list-news-one .am-list .am-list-item-desced .am-list-main .am-list-item-text a { - color: #666666; -} -.am-list-news-one .am-list .am-list-item-thumbed { - border-bottom: 1px dashed #dfdfdf; - padding: 0 0 5px 0; + padding-top: 1rem; + padding-bottom: 1rem; } -.am-list-news-one .am-list .am-list-item-thumbed:before { - content: none; +.am-list-news-default .am-list .am-list-item-desced > a { + padding: 0; } -.am-list-news-one .am-list .am-list-item-thumbed .am-list-item-hd { - font-weight: normal; - height: 30px; - line-height: 30px; - margin-bottom: 0; +.am-list-news-default .am-list .am-list-item-desced .am-list-item-text { + margin-top: 0.5rem; + color: #757575; } -.am-list-news-one .am-list .am-list-item-thumbed .am-list-item-hd a { - font-size: 1.5rem; - color: #15afef; - display: block; - word-wrap: normal; - /* for IE */ - text-overflow: ellipsis; - white-space: nowrap; +.am-list-news-default .am-list .am-list-item-text { overflow: hidden; + text-overflow: ellipsis; + display: -webkit-box; + -webkit-box-orient: vertical; + line-height: 1.3em; + -webkit-line-clamp: 2; + /* number of lines to show */ + max-height: 2.6em; +} +.am-list-news-default .am-list .am-list-item-thumb-top .am-list-thumb { padding: 0; - text-indent: 0; + margin-bottom: 0.8rem; } -.am-list-news-one .am-list .am-list-item-thumbed .am-list-thumb { +.am-list-news-default .am-list .am-list-item-thumb-top .am-list-main { padding: 0; - height: 60px; } -.am-list-news-one .am-list .am-list-item-thumbed .am-list-thumb a { - width: 100%; - display: block; +.am-list-news-default .am-list .am-list-item-thumb-left .am-list-thumb { + padding-left: 0; +} +.am-list-news-default .am-list .am-list-item-desced .am-list-main { padding: 0; - text-indent: 0; - height: 60px; } -.am-list-news-one .am-list .am-list-item-thumbed .am-list-thumb a img { - width: 100%; - height: 60px; - vertical-align: top; +.am-list-news-default .am-list .am-list-item-thumb-right .am-list-thumb { + padding-right: 0; } -.am-list-news-one .am-list .am-list-item-thumbed .am-list-main { - padding: 0 5px 14px 5px; - position: relative; +.am-list-news-default .am-list .am-list-item-thumb-bottom-left .am-list-item-hd { + clear: both; + padding-bottom: 0.5rem; } -.am-list-news-one .am-list .am-list-item-thumbed .am-list-date { - position: absolute; - right: 5px; - top: 3.5rem; - font-size: 1.2rem; - color: #888888; +.am-list-news-default .am-list .am-list-item-thumb-bottom-left .am-list-thumb { + padding-left: 0; } -.am-list-news-one .am-list .am-list-item-thumbed .am-list-item-text { - max-height: 3rem; - overflow: hidden; - font-size: 1.2rem; - line-height: 18px; - color: #666666; +.am-list-news-default .am-list .am-list-item-thumb-bottom-right .am-list-item-hd { + clear: both; + padding-bottom: 0.5rem; } -.am-list-news-one .am-list .am-list-item-thumbed .am-list-item-text a { - color: #666666; +.am-list-news-default .am-list .am-list-item-thumb-bottom-right .am-list-thumb { + padding-right: 0; } -.am-list-news-one .am-list-news-more { - background: #dfdfdf; - color: #666666; - height: 35px; - line-height: 35px; - font-size: 1.4rem; +.am-list-news-default .am-list .am-list-thumb img { + width: 100%; display: block; - border: 0; - border-radius: 0; - padding: 0; } @media only screen and (max-width: 640px) { - .am-list-news-one .am-list-item-thumb-left .am-list-thumb, - .am-list-news-one .am-list-item-thumb-right .am-list-thumb { + .am-list-news-default .am-list-item-thumb-left .am-list-thumb, + .am-list-news-default .am-list-item-thumb-right .am-list-thumb { max-height: 80px; overflow: hidden; } - .am-list-news-one .am-list-item-thumb-bottom-left .am-list-item-text, - .am-list-news-one .am-list-item-thumb-bottom-right .am-list-item-text { + .am-list-news-default .am-list-item-thumb-bottom-left .am-list-item-text, + .am-list-news-default .am-list-item-thumb-bottom-right .am-list-item-text { -webkit-line-clamp: 3; /* number of lines to show */ max-height: 3.9em; } - .am-list-news-one .am-list-item-thumb-bottom-left .am-list-thumb, - .am-list-news-one .am-list-item-thumb-bottom-right .am-list-thumb { + .am-list-news-default .am-list-item-thumb-bottom-left .am-list-thumb, + .am-list-news-default .am-list-item-thumb-bottom-right .am-list-thumb { max-height: 60px; overflow: hidden; } @@ -10692,19 +12118,25 @@ tbody.am-collapse.am-in { .am-menu a:after, .am-menu a:before { display: inline-block; - font-family: "FontAwesome", sans-serif; - font-weight: normal; - font-style: normal; - vertical-align: baseline; - line-height: 1; + font: normal normal normal 1.6rem/1 "FontAwesome", sans-serif; + /*font-weight: normal; // 2 + font-style: normal; // 2 + vertical-align: baseline; // 3 + line-height: 1; // 4*/ + font-size: inherit; + text-rendering: auto; -webkit-font-smoothing: antialiased; -moz-osx-font-smoothing: grayscale; + -webkit-transform: translate(0, 0); + -ms-transform: translate(0, 0); + transform: translate(0, 0); } .am-menu-sub { z-index: 1050; } .am-menu-toggle { display: none; + z-index: 1015; } .am-menu-toggle img { display: inline-block; @@ -10716,7 +12148,7 @@ tbody.am-collapse.am-in { display: block; padding: 0.8rem 0; -webkit-transition: all 0.45s; - transition: all 0.45s; + transition: all 0.45s; } /** * Menu Theme: default @@ -10742,13 +12174,13 @@ tbody.am-collapse.am-in { .am-menu-default .am-menu-nav > .am-parent > a { position: relative; -webkit-transition: .15s; - transition: .15s; + transition: .15s; } .am-menu-default .am-menu-nav > .am-parent > a:after { content: "\f107"; margin-left: 5px; -webkit-transition: .15s; - transition: .15s; + transition: .15s; } .am-menu-default .am-menu-nav > .am-parent > a:before { position: absolute; @@ -10802,7 +12234,7 @@ tbody.am-collapse.am-in { * Author: Minwe (minwe@yunshipei.com) */ .am-menu-dropdown1 { - position: relative + position: relative; /*@media @medium-up { .am-menu-toggle { display: none!important; @@ -10840,11 +12272,11 @@ tbody.am-collapse.am-in { height: 44px; line-height: 44px; text-align: center; - color: #ffffff; + color: #fff; } .am-menu-dropdown1 a { -webkit-transition: all .4s; - transition: all .4s; + transition: all .4s; display: block; word-wrap: normal; /* for IE */ @@ -10876,7 +12308,7 @@ tbody.am-collapse.am-in { .am-menu-dropdown1 .am-menu-nav > li.am-parent.am-open > a { background-color: #0c80ba; border-bottom: none; - color: #ffffff; + color: #fff; } .am-menu-dropdown1 .am-menu-nav > li.am-parent.am-open > a:before { content: "\f068"; @@ -10904,17 +12336,17 @@ tbody.am-collapse.am-in { -webkit-box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.05); box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.05); background-color: #0e90d2; - color: #ffffff; + color: #fff; height: 49px; line-height: 49px; padding: 0; text-indent: 10px; } .am-menu-dropdown1 .am-menu-sub { - background-color: #ffffff; + background-color: #fff; } .am-menu-dropdown1 .am-menu-sub a { - color: #555555; + color: #555; height: 44px; line-height: 44px; text-indent: 5px; @@ -10922,7 +12354,7 @@ tbody.am-collapse.am-in { } .am-menu-dropdown1 .am-menu-sub a:before { content: "\f105"; - color: #aaaaaa; + color: #aaa; font-size: 16px; margin-right: 5px; } @@ -10939,7 +12371,7 @@ tbody.am-collapse.am-in { height: 44px; line-height: 44px; text-align: center; - color: #ffffff; + color: #fff; } .am-menu-dropdown2 .am-menu-nav { position: absolute; @@ -10968,7 +12400,9 @@ tbody.am-collapse.am-in { content: "\f107"; margin-left: 5px; -webkit-transition: -webkit-transform .2s; - transition: transform .2s; + transition: -webkit-transform .2s; + transition: transform .2s; + transition: transform .2s, -webkit-transform .2s; } .am-menu-dropdown2 .am-menu-nav > li.am-parent.am-open > a { position: relative; @@ -10997,7 +12431,7 @@ tbody.am-collapse.am-in { border-radius: 2px; -webkit-box-shadow: 0 0 3px rgba(0, 0, 0, 0.15); box-shadow: 0 0 3px rgba(0, 0, 0, 0.15); - background-color: #ffffff; + background-color: #fff; z-index: 1055; } .am-menu-dropdown2 .am-menu-sub a { @@ -11049,7 +12483,7 @@ tbody.am-collapse.am-in { height: 44px; line-height: 44px; text-align: center; - color: #ffffff; + color: #fff; } .am-menu-slide1 .am-menu-nav { background-color: #f5f5f5; @@ -11058,13 +12492,18 @@ tbody.am-collapse.am-in { } .am-menu-slide1 .am-menu-nav.am-in:before { display: inline-block; - font-family: "FontAwesome", sans-serif; - font-weight: normal; - font-style: normal; - vertical-align: baseline; - line-height: 1; + font: normal normal normal 1.6rem/1 "FontAwesome", sans-serif; + /*font-weight: normal; // 2 + font-style: normal; // 2 + vertical-align: baseline; // 3 + line-height: 1; // 4*/ + font-size: inherit; + text-rendering: auto; -webkit-font-smoothing: antialiased; -moz-osx-font-smoothing: grayscale; + -webkit-transform: translate(0, 0); + -ms-transform: translate(0, 0); + transform: translate(0, 0); content: "\f0d8"; font-size: 24px; color: #f5f5f5; @@ -11091,13 +12530,13 @@ tbody.am-collapse.am-in { .am-menu-slide1 .am-menu-nav > .am-parent > a { position: relative; -webkit-transition: .15s; - transition: .15s; + transition: .15s; } .am-menu-slide1 .am-menu-nav > .am-parent > a:after { content: "\f107"; margin-left: 5px; -webkit-transition: .15s; - transition: .15s; + transition: .15s; } .am-menu-slide1 .am-menu-nav > .am-parent > a:before { position: absolute; @@ -11131,7 +12570,7 @@ tbody.am-collapse.am-in { padding-bottom: 8px; } .am-menu-slide1 .am-menu-sub > li > a { - color: #ffffff; + color: #fff; } @media only screen and (min-width:641px) { .am-menu-slide1 .am-menu-toggle { @@ -11166,7 +12605,7 @@ tbody.am-collapse.am-in { height: 44px; line-height: 44px; text-align: center; - color: #ffffff; + color: #fff; } .am-menu-offcanvas1 .am-menu-nav { border-bottom: 1px solid rgba(0, 0, 0, 0.3); @@ -11179,7 +12618,7 @@ tbody.am-collapse.am-in { text-indent: 15px; padding: 0; position: relative; - color: #cccccc; + color: #ccc; border-top: 1px solid rgba(0, 0, 0, 0.3); -webkit-box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.05); box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.05); @@ -11189,16 +12628,16 @@ tbody.am-collapse.am-in { .am-menu-offcanvas1 .am-menu-nav > li > a:hover, .am-menu-offcanvas1 .am-menu-nav > li > a:focus { background-color: #474747; - color: #ffffff; + color: #fff; outline: none; } .am-menu-offcanvas1 .am-menu-nav > .am-active > a { background-color: #1a1a1a; - color: #ffffff; + color: #fff; } .am-menu-offcanvas1 .am-menu-nav > .am-parent > a { -webkit-transition: all .3s; - transition: all .3s; + transition: all .3s; } .am-menu-offcanvas1 .am-menu-nav > .am-parent > a:after { content: "\f104"; @@ -11218,10 +12657,10 @@ tbody.am-collapse.am-in { font-size: 1.4rem; } .am-menu-offcanvas1 .am-menu-sub a { - color: #eeeeee; + color: #eee; } .am-menu-offcanvas1 .am-menu-sub a:hover { - color: #ffffff; + color: #fff; } .am-menu-offcanvas1 .am-nav-divider { border-top: 1px solid #1a1a1a; @@ -11239,7 +12678,7 @@ tbody.am-collapse.am-in { height: 44px; line-height: 44px; text-align: center; - color: #ffffff; + color: #fff; } .am-menu-offcanvas2 .am-menu-nav { padding: 10px 5px; @@ -11249,9 +12688,9 @@ tbody.am-collapse.am-in { } .am-menu-offcanvas2 .am-menu-nav > li > a { -webkit-transition: all 0.3s; - transition: all 0.3s; + transition: all 0.3s; background-color: #404040; - color: #cccccc; + color: #ccc; display: block; word-wrap: normal; /* for IE */ @@ -11270,12 +12709,12 @@ tbody.am-collapse.am-in { .am-menu-offcanvas2 .am-menu-nav > li > a:hover, .am-menu-offcanvas2 .am-menu-nav > li > a:focus { background-color: #262626; - color: #ffffff; + color: #fff; outline: none; } .am-menu-offcanvas2 .am-menu-nav > .am-active > a { background-color: #262626; - color: #ffffff; + color: #fff; } /** * Menu Theme: stack @@ -11288,7 +12727,7 @@ tbody.am-collapse.am-in { } .am-menu-stack .am-menu-nav > .am-parent > a { -webkit-transition: all .3s; - transition: all .3s; + transition: all .3s; } .am-menu-stack .am-menu-nav > .am-parent > a:after { content: "\f105"; @@ -11296,7 +12735,7 @@ tbody.am-collapse.am-in { right: 1.5rem; top: 1.3rem; -webkit-transition: all .15s; - transition: all .15s; + transition: all .15s; } .am-menu-stack .am-menu-nav > .am-parent.am-open > a:after { -webkit-transform: rotate(90deg); @@ -11305,7 +12744,7 @@ tbody.am-collapse.am-in { } .am-menu-stack .am-menu-nav > li > a { position: relative; - color: #333333; + color: #333; background-color: #f5f5f5; border-top: 1px solid #dedede; -webkit-box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.05); @@ -11319,7 +12758,7 @@ tbody.am-collapse.am-in { .am-menu-stack .am-menu-nav > li > a:hover, .am-menu-stack .am-menu-nav > li > a:focus { background-color: #e5e5e5; - color: #222222; + color: #222; outline: none; } .am-menu-stack .am-menu-sub { @@ -11330,10 +12769,10 @@ tbody.am-collapse.am-in { .am-menu-stack .am-menu-sub a { border-bottom: 1px solid #dedede; padding-left: 2rem; - color: #444444; + color: #444; } .am-menu-stack .am-menu-sub a:hover { - color: #333333; + color: #333; } .am-menu-stack .am-menu-sub li:last-child a { border-bottom: none; @@ -11385,93 +12824,6 @@ tbody.am-collapse.am-in { clear: none; } } -/** - * Menu Theme: one - * Author: one (hzp@yunshipei.com) - */ -.am-menu-one { - padding-left: 10px; - padding-right: 10px; - margin-bottom: 10px; - background-color: #f5f5f5; - -webkit-box-shadow: 0 2px 10px #d7d7d7; - box-shadow: 0 2px 10px #d7d7d7; - height: 40px; -} -.am-menu-one .am-menu-nav-wrap { - overflow: hidden; -} -.am-menu-one .am-menu-nav { - height: 40px; -} -.am-menu-one .am-menu-nav:before, -.am-menu-one .am-menu-nav:after { - content: " "; - display: table; -} -.am-menu-one .am-menu-nav:after { - clear: both; -} -.am-menu-one .am-menu-nav > li { - float: left; - clear: none; - width: auto; -} -.am-menu-one .am-menu-nav > li > a { - display: block; - height: 40px; - line-height: 40px; - padding: 0 10px; - color: #7d7d7d; -} -.am-menu-one .am-menu-nav .am-active > a { - color: #555555; - border-bottom: 2px solid #15afef; -} -.am-menu-one .am-menu-nav .am-open > a { - position: relative; -} -.am-menu-one .am-menu-nav .am-open > a:before { - position: absolute; - top: 100%; - left: 50%; - margin-top: -6px; - margin-left: -6px; - content: ''; - display: inline-block; - width: 0; - height: 0; - vertical-align: middle; - border-bottom: 6px solid #15afef; - border-right: 6px solid transparent; - border-left: 6px solid transparent; - border-top: 0 dotted; - -webkit-transform: rotate(360deg); - -ms-transform: rotate(360deg); - transform: rotate(360deg); -} -.am-menu-one .am-menu-nav-sub-wrap { - position: relative; - z-index: 1050; -} -.am-menu-one .am-menu-sub { - position: absolute; - top: 1px; - left: -5px; - right: -5px; - background-color: #ffffff; - border-radius: 2px; - -webkit-box-shadow: 0 0 3px rgba(0, 0, 0, 0.15); - box-shadow: 0 0 3px rgba(0, 0, 0, 0.15); -} -.am-menu-one .am-menu-sub li { - text-align: center; -} -.am-menu-one .am-menu-sub a { - padding: 0; - color: #555555; - line-height: 40px; -} .am-navbar { position: fixed; left: 0; @@ -11492,16 +12844,10 @@ tbody.am-collapse.am-in { padding-right: 8px; text-align: center; overflow: hidden; - display: -webkit-box; - display: -webkit-flex; - display: -ms-flexbox; - display: flex; } .am-navbar .am-navbar-nav li { - -webkit-box-flex: 1; - -webkit-flex: 1; - -ms-flex: 1; - flex: 1; + display: table-cell; + width: 1%; float: none; } .am-navbar-nav { @@ -11545,7 +12891,7 @@ tbody.am-collapse.am-in { } .am-navbar-more [class*="am-icon-"] { -webkit-transition: 0.15s; - transition: 0.15s; + transition: 0.15s; } .am-navbar-more.am-active [class*="am-icon-"] { -webkit-transform: rotateX(-180deg); @@ -11559,7 +12905,7 @@ tbody.am-collapse.am-in { z-index: 1009; opacity: 0; -webkit-transition: .3s; - transition: .3s; + transition: .3s; -webkit-transform: translate(0, 100%); -ms-transform: translate(0, 100%); transform: translate(0, 100%); @@ -11618,7 +12964,7 @@ tbody.am-collapse.am-in { * Author: hzp (hzp@yunshipei.com) */ .am-navbar-default a { - color: #ffffff; + color: #fff; } .am-navbar-default .am-navbar-nav { background-color: #0e90d2; @@ -11629,22 +12975,6 @@ tbody.am-collapse.am-in { .am-navbar-default .am-navbar-actions a { border-bottom: 1px solid #0b6fa2; } -/** - * Navbar Theme: one - * Author: hzp (hzp@yunshipei.com) - */ -.am-navbar-one a { - color: #ffffff; -} -.am-navbar-one .am-navbar-nav { - background-color: #15afef; -} -.am-navbar-one .am-navbar-actions { - background-color: #0f9fdb; -} -.am-navbar-one .am-navbar-actions a { - border-bottom: 1px solid #0d87ba; -} .am-pagination { position: relative; } @@ -11699,45 +13029,6 @@ tbody.am-collapse.am-in { appearance: none; padding-left: 18px; } -/** - * Pagination Theme: one - */ -.am-pagination-one { - margin-left: 10px; - margin-right: 10px; - text-align: center; -} -.am-pagination-one > li > a { - line-height: 36px; - background-color: #ffffff; - padding: 0 15px; - color: #555555; -} -.am-pagination-one .am-pagination-select { - float: left; - position: absolute; - top: 0; - left: 50%; - margin-left: -25px; - width: 50px; - height: 36px; - text-align: center; -} -.am-pagination-one .am-pagination-select select { - display: block; - line-height: 36px; - width: 50px; - height: 36px; - border-radius: 0; - text-align: center; - -webkit-appearance: none; - -moz-appearance: none; - appearance: none; - padding-left: 18px; - background: #ffffff; - border: 1px solid #dfdfdf; - color: #555555; -} .am-paragraph p { margin: 10px 0; } @@ -11774,7 +13065,7 @@ tbody.am-collapse.am-in { border: 1px solid #999999; text-align: center; vertical-align: middle; - background: #ffffff; + background: #fff; } .am-paragraph-table-container table td p { text-indent: 0; @@ -11798,85 +13089,24 @@ tbody.am-collapse.am-in { max-width: 98%; display: block; margin: 5px auto; - border: 1px solid #eeeeee; - padding: 2px; -} -.am-paragraph-default a { - color: #0e90d2; -} -/** - * Paragraph Theme: one - */ -.am-paragraph-one { - color: #555555; - background: #ffffff; - margin: 0 10px; - padding: 4px; -} -.am-paragraph-one h1, -.am-paragraph-one h2, -.am-paragraph-one h3, -.am-paragraph-one h4, -.am-paragraph-one h5, -.am-paragraph-one h6 { - color: #333333; - font-weight: normal; - margin-top: 0; -} -.am-paragraph-one h1 { - font-size: 2rem; -} -.am-paragraph-one h2, -.am-paragraph-one h3 { - font-size: 1.8rem; -} -.am-paragraph-one h4, -.am-paragraph-one h5 { - font-size: 1.6rem; -} -.am-paragraph-one h6 { - font-size: 1.4rem; -} -.am-paragraph-one hr { - background: #dfdfdf; - height: 1px; - border: 0; - overflow: hidden; -} -.am-paragraph-one img { - max-width: 100%; - display: block; - margin: 5px 0; -} -.am-paragraph-one a { - color: #333333; -} -.am-paragraph-one p, -.am-paragraph-one div, -.am-paragraph-one table { - font-size: 1.4rem; - margin: 0 0 1rem 0; -} -.am-paragraph-one ul, -.am-paragraph-one ol { - padding-left: 0; + border: 1px solid #eeeeee; + padding: 2px; } -.am-paragraph-one li { - list-style: none; - font-size: 1.4rem; +.am-paragraph-default a { + color: #0e90d2; } /** * Slider Theme: a1 */ .am-slider-a1 { -webkit-box-shadow: 0 1px 4px rgba(0, 0, 0, 0.2); - box-shadow: 0 1px 4px rgba(0, 0, 0, 0.2) + box-shadow: 0 1px 4px rgba(0, 0, 0, 0.2); /* Control Nav */ } .am-slider-a1 .am-viewport { max-height: 2000px; -webkit-transition: all 1s ease; - transition: all 1s ease; + transition: all 1s ease; } .loading .am-slider-a1 .am-viewport { max-height: 300px; @@ -11919,13 +13149,13 @@ tbody.am-collapse.am-in { */ .am-slider-a2 { -webkit-box-shadow: 0 1px 4px rgba(0, 0, 0, 0.2); - box-shadow: 0 1px 4px rgba(0, 0, 0, 0.2) + box-shadow: 0 1px 4px rgba(0, 0, 0, 0.2); /* Control Nav */ } .am-slider-a2 .am-viewport { max-height: 2000px; -webkit-transition: all 1s ease; - transition: all 1s ease; + transition: all 1s ease; } .loading .am-slider-a2 .am-viewport { max-height: 300px; @@ -11968,13 +13198,13 @@ tbody.am-collapse.am-in { .am-slider-a3 { margin-bottom: 20px; -webkit-box-shadow: 0 1px 4px rgba(0, 0, 0, 0.2); - box-shadow: 0 1px 4px rgba(0, 0, 0, 0.2) + box-shadow: 0 1px 4px rgba(0, 0, 0, 0.2); /* Control Nav */ } .am-slider-a3 .am-viewport { max-height: 2000px; -webkit-transition: all 1s ease; - transition: all 1s ease; + transition: all 1s ease; } .loading .am-slider-a3 .am-viewport { max-height: 300px; @@ -11985,7 +13215,7 @@ tbody.am-collapse.am-in { bottom: -20px; text-align: center; height: 20px; - background-color: #000000; + background-color: #000; padding-top: 5px; line-height: 0; } @@ -12021,13 +13251,13 @@ tbody.am-collapse.am-in { .am-slider-a4 { margin-bottom: 30px; -webkit-box-shadow: 0 1px 4px rgba(0, 0, 0, 0.2); - box-shadow: 0 1px 4px rgba(0, 0, 0, 0.2) + box-shadow: 0 1px 4px rgba(0, 0, 0, 0.2); /* Control Nav */ } .am-slider-a4 .am-viewport { max-height: 2000px; -webkit-transition: all 1s ease; - transition: all 1s ease; + transition: all 1s ease; } .loading .am-slider-a4 .am-viewport { max-height: 300px; @@ -12070,13 +13300,13 @@ tbody.am-collapse.am-in { */ .am-slider-a5 { -webkit-box-shadow: 0 1px 4px rgba(0, 0, 0, 0.2); - box-shadow: 0 1px 4px rgba(0, 0, 0, 0.2) + box-shadow: 0 1px 4px rgba(0, 0, 0, 0.2); /* Control Nav */ } .am-slider-a5 .am-viewport { max-height: 2000px; -webkit-transition: all 1s ease; - transition: all 1s ease; + transition: all 1s ease; } .loading .am-slider-a5 .am-viewport { max-height: 300px; @@ -12118,13 +13348,13 @@ tbody.am-collapse.am-in { */ .am-slider-b1 { -webkit-box-shadow: 0 1px 4px rgba(0, 0, 0, 0.2); - box-shadow: 0 1px 4px rgba(0, 0, 0, 0.2) + box-shadow: 0 1px 4px rgba(0, 0, 0, 0.2); /* Direction Nav */ } .am-slider-b1 .am-viewport { max-height: 2000px; -webkit-transition: all 1s ease; - transition: all 1s ease; + transition: all 1s ease; } .loading .am-slider-b1 .am-viewport { max-height: 300px; @@ -12143,23 +13373,28 @@ tbody.am-collapse.am-in { overflow: hidden; opacity: 0.45; cursor: pointer; - color: #ffffff; + color: #fff; text-shadow: 1px 1px 0 rgba(255, 255, 255, 0.3); background-color: rgba(0, 0, 0, 0.5); font-size: 0; text-align: center; -webkit-transition: all .3s ease; - transition: all .3s ease; + transition: all .3s ease; } .am-slider-b1 .am-direction-nav a:before { display: inline-block; - font-family: "FontAwesome", sans-serif; - font-weight: normal; - font-style: normal; - vertical-align: baseline; - line-height: 1; + font: normal normal normal 1.6rem/1 "FontAwesome", sans-serif; + /*font-weight: normal; // 2 + font-style: normal; // 2 + vertical-align: baseline; // 3 + line-height: 1; // 4*/ + font-size: inherit; + text-rendering: auto; -webkit-font-smoothing: antialiased; -moz-osx-font-smoothing: grayscale; + -webkit-transform: translate(0, 0); + -ms-transform: translate(0, 0); + transform: translate(0, 0); content: "\f053"; font-size: 24px; } @@ -12203,13 +13438,13 @@ tbody.am-collapse.am-in { */ .am-slider-b2 { -webkit-box-shadow: 0 1px 4px rgba(0, 0, 0, 0.2); - box-shadow: 0 1px 4px rgba(0, 0, 0, 0.2) + box-shadow: 0 1px 4px rgba(0, 0, 0, 0.2); /* Direction Nav */ } .am-slider-b2 .am-viewport { max-height: 2000px; -webkit-transition: all 1s ease; - transition: all 1s ease; + transition: all 1s ease; } .loading .am-slider-b2 .am-viewport { max-height: 300px; @@ -12228,24 +13463,29 @@ tbody.am-collapse.am-in { overflow: hidden; opacity: 0.45; cursor: pointer; - color: #ffffff; + color: #fff; text-shadow: 1px 1px 0 rgba(255, 255, 255, 0.3); background-color: rgba(0, 0, 0, 0.5); font-size: 0; text-align: center; border-radius: 50%; -webkit-transition: all .3s ease; - transition: all .3s ease; + transition: all .3s ease; } .am-slider-b2 .am-direction-nav a:before { display: inline-block; - font-family: "FontAwesome", sans-serif; - font-weight: normal; - font-style: normal; - vertical-align: baseline; - line-height: 1; + font: normal normal normal 1.6rem/1 "FontAwesome", sans-serif; + /*font-weight: normal; // 2 + font-style: normal; // 2 + vertical-align: baseline; // 3 + line-height: 1; // 4*/ + font-size: inherit; + text-rendering: auto; -webkit-font-smoothing: antialiased; -moz-osx-font-smoothing: grayscale; + -webkit-transform: translate(0, 0); + -ms-transform: translate(0, 0); + transform: translate(0, 0); content: "\f053"; font-size: 16px; line-height: 24px; @@ -12285,13 +13525,13 @@ tbody.am-collapse.am-in { .am-slider-b3 { margin: 15px 30px; -webkit-box-shadow: 0 1px 4px rgba(0, 0, 0, 0.2); - box-shadow: 0 1px 4px rgba(0, 0, 0, 0.2) + box-shadow: 0 1px 4px rgba(0, 0, 0, 0.2); /* Direction Nav */ } .am-slider-b3 .am-viewport { max-height: 2000px; -webkit-transition: all 1s ease; - transition: all 1s ease; + transition: all 1s ease; } .loading .am-slider-b3 .am-viewport { max-height: 300px; @@ -12314,17 +13554,22 @@ tbody.am-collapse.am-in { text-shadow: 1px 1px 0 rgba(255, 255, 255, 0.3); font-size: 0; -webkit-transition: all .3s ease; - transition: all .3s ease; + transition: all .3s ease; } .am-slider-b3 .am-direction-nav a:before { display: inline-block; - font-family: "FontAwesome", sans-serif; - font-weight: normal; - font-style: normal; - vertical-align: baseline; - line-height: 1; + font: normal normal normal 1.6rem/1 "FontAwesome", sans-serif; + /*font-weight: normal; // 2 + font-style: normal; // 2 + vertical-align: baseline; // 3 + line-height: 1; // 4*/ + font-size: inherit; + text-rendering: auto; -webkit-font-smoothing: antialiased; -moz-osx-font-smoothing: grayscale; + -webkit-transform: translate(0, 0); + -ms-transform: translate(0, 0); + transform: translate(0, 0); content: "\f053"; font-size: 24px; } @@ -12364,13 +13609,13 @@ tbody.am-collapse.am-in { .am-slider-b4 { margin: 15px 20px; -webkit-box-shadow: 0 1px 4px rgba(0, 0, 0, 0.2); - box-shadow: 0 1px 4px rgba(0, 0, 0, 0.2) + box-shadow: 0 1px 4px rgba(0, 0, 0, 0.2); /* Direction Nav */ } .am-slider-b4 .am-viewport { max-height: 2000px; -webkit-transition: all 1s ease; - transition: all 1s ease; + transition: all 1s ease; } .loading .am-slider-b4 .am-viewport { max-height: 300px; @@ -12394,19 +13639,24 @@ tbody.am-collapse.am-in { font-size: 0; border-radius: 50%; text-align: center; - color: #ffffff; + color: #fff; -webkit-transition: all .3s ease; - transition: all .3s ease; + transition: all .3s ease; } .am-slider-b4 .am-direction-nav a:before { display: inline-block; - font-family: "FontAwesome", sans-serif; - font-weight: normal; - font-style: normal; - vertical-align: baseline; - line-height: 1; + font: normal normal normal 1.6rem/1 "FontAwesome", sans-serif; + /*font-weight: normal; // 2 + font-style: normal; // 2 + vertical-align: baseline; // 3 + line-height: 1; // 4*/ + font-size: inherit; + text-rendering: auto; -webkit-font-smoothing: antialiased; -moz-osx-font-smoothing: grayscale; + -webkit-transform: translate(0, 0); + -ms-transform: translate(0, 0); + transform: translate(0, 0); content: "\f053"; font-size: 20px; line-height: 24px; @@ -12445,13 +13695,13 @@ tbody.am-collapse.am-in { */ .am-slider-c1 { -webkit-box-shadow: 0 1px 4px rgba(0, 0, 0, 0.2); - box-shadow: 0 1px 4px rgba(0, 0, 0, 0.2) + box-shadow: 0 1px 4px rgba(0, 0, 0, 0.2); /* Control Nav */ } .am-slider-c1 .am-viewport { max-height: 2000px; -webkit-transition: all 1s ease; - transition: all 1s ease; + transition: all 1s ease; } .loading .am-slider-c1 .am-viewport { max-height: 300px; @@ -12459,10 +13709,7 @@ tbody.am-collapse.am-in { .am-slider-c1 .am-control-nav { position: absolute; bottom: 0; - display: -webkit-box; - display: -webkit-flex; - display: -ms-flexbox; - display: flex; + display: table; width: 100%; height: 6px; font-size: 0; @@ -12470,10 +13717,8 @@ tbody.am-collapse.am-in { text-align: center; } .am-slider-c1 .am-control-nav li { - -webkit-box-flex: 1; - -webkit-flex: 1; - -ms-flex: 1; - flex: 1; + display: table-cell; + width: 1%; } .am-slider-c1 .am-control-nav li a { width: 100%; @@ -12496,7 +13741,7 @@ tbody.am-collapse.am-in { bottom: 6px; padding: 8px; width: 100%; - color: #ffffff; + color: #fff; display: block; word-wrap: normal; /* for IE */ @@ -12513,13 +13758,13 @@ tbody.am-collapse.am-in { */ .am-slider-c2 { -webkit-box-shadow: 0 1px 4px rgba(0, 0, 0, 0.2); - box-shadow: 0 1px 4px rgba(0, 0, 0, 0.2) + box-shadow: 0 1px 4px rgba(0, 0, 0, 0.2); /* Control Nav */ } .am-slider-c2 .am-viewport { max-height: 2000px; -webkit-transition: all 1s ease; - transition: all 1s ease; + transition: all 1s ease; } .loading .am-slider-c2 .am-viewport { max-height: 300px; @@ -12558,7 +13803,7 @@ tbody.am-collapse.am-in { bottom: 0; padding: 8px 60px 8px 8px; width: 100%; - color: #ffffff; + color: #fff; display: block; word-wrap: normal; /* for IE */ @@ -12575,13 +13820,13 @@ tbody.am-collapse.am-in { */ .am-slider-c3 { -webkit-box-shadow: 0 1px 4px rgba(0, 0, 0, 0.2); - box-shadow: 0 1px 4px rgba(0, 0, 0, 0.2) + box-shadow: 0 1px 4px rgba(0, 0, 0, 0.2); /* Direction Nav */ } .am-slider-c3 .am-viewport { max-height: 2000px; -webkit-transition: all 1s ease; - transition: all 1s ease; + transition: all 1s ease; } .loading .am-slider-c3 .am-viewport { max-height: 300px; @@ -12594,7 +13839,7 @@ tbody.am-collapse.am-in { height: 30px; left: 0; padding-right: 5px; - color: #ffffff; + color: #fff; display: block; word-wrap: normal; /* for IE */ @@ -12610,13 +13855,13 @@ tbody.am-collapse.am-in { width: 40px; text-align: center; line-height: 30px; - color: #eeeeee; + color: #eee; font-size: 1rem; } .am-slider-c3 .am-slider-counter .am-active { font-size: 1.8rem; font-weight: bold; - color: #ffffff; + color: #fff; } .am-slider-c3 .am-direction-nav a { -webkit-box-sizing: content-box; @@ -12632,23 +13877,28 @@ tbody.am-collapse.am-in { overflow: hidden; opacity: 0.45; cursor: pointer; - color: #ffffff; + color: #fff; text-shadow: 1px 1px 0 rgba(255, 255, 255, 0.3); background-color: rgba(0, 0, 0, 0.5); font-size: 0; text-align: center; -webkit-transition: all .3s ease; - transition: all .3s ease; + transition: all .3s ease; } .am-slider-c3 .am-direction-nav a:before { display: inline-block; - font-family: "FontAwesome", sans-serif; - font-weight: normal; - font-style: normal; - vertical-align: baseline; - line-height: 1; + font: normal normal normal 1.6rem/1 "FontAwesome", sans-serif; + /*font-weight: normal; // 2 + font-style: normal; // 2 + vertical-align: baseline; // 3 + line-height: 1; // 4*/ + font-size: inherit; + text-rendering: auto; -webkit-font-smoothing: antialiased; -moz-osx-font-smoothing: grayscale; + -webkit-transform: translate(0, 0); + -ms-transform: translate(0, 0); + transform: translate(0, 0); content: "\f053"; font-size: 16px; line-height: 24px; @@ -12689,13 +13939,13 @@ tbody.am-collapse.am-in { */ .am-slider-c4 { -webkit-box-shadow: 0 1px 4px rgba(0, 0, 0, 0.2); - box-shadow: 0 1px 4px rgba(0, 0, 0, 0.2) + box-shadow: 0 1px 4px rgba(0, 0, 0, 0.2); /* Direction Nav */ } .am-slider-c4 .am-viewport { max-height: 2000px; -webkit-transition: all 1s ease; - transition: all 1s ease; + transition: all 1s ease; } .loading .am-slider-c4 .am-viewport { max-height: 300px; @@ -12708,7 +13958,7 @@ tbody.am-collapse.am-in { right: 0; left: 0; padding: 8px 40px; - color: #ffffff; + color: #fff; display: block; word-wrap: normal; /* for IE */ @@ -12735,17 +13985,22 @@ tbody.am-collapse.am-in { text-align: center; color: rgba(0, 0, 0, 0.7); -webkit-transition: all .3s ease; - transition: all .3s ease; + transition: all .3s ease; } .am-slider-c4 .am-direction-nav a:before { display: inline-block; - font-family: "FontAwesome", sans-serif; - font-weight: normal; - font-style: normal; - vertical-align: baseline; - line-height: 1; + font: normal normal normal 1.6rem/1 "FontAwesome", sans-serif; + /*font-weight: normal; // 2 + font-style: normal; // 2 + vertical-align: baseline; // 3 + line-height: 1; // 4*/ + font-size: inherit; + text-rendering: auto; -webkit-font-smoothing: antialiased; -moz-osx-font-smoothing: grayscale; + -webkit-transform: translate(0, 0); + -ms-transform: translate(0, 0); + transform: translate(0, 0); content: "\f053"; font-size: 24px; } @@ -12785,13 +14040,13 @@ tbody.am-collapse.am-in { */ .am-slider-d1 { -webkit-box-shadow: 0 1px 4px rgba(0, 0, 0, 0.2); - box-shadow: 0 1px 4px rgba(0, 0, 0, 0.2) + box-shadow: 0 1px 4px rgba(0, 0, 0, 0.2); /* Direction Nav */ } .am-slider-d1 .am-viewport { max-height: 2000px; -webkit-transition: all 1s ease; - transition: all 1s ease; + transition: all 1s ease; } .loading .am-slider-d1 .am-viewport { max-height: 300px; @@ -12799,7 +14054,7 @@ tbody.am-collapse.am-in { .am-slider-d1 .am-slider-desc { padding: 8px 35px; width: 100%; - color: #ffffff; + color: #fff; background-color: #0e90d2; } .am-slider-d1 .am-slider-title { @@ -12836,17 +14091,22 @@ tbody.am-collapse.am-in { color: rgba(255, 255, 255, 0.9); border-radius: 50%; -webkit-transition: all 03s ease; - transition: all 03s ease; + transition: all 03s ease; } .am-slider-d1 .am-direction-nav a:before { display: inline-block; - font-family: "FontAwesome", sans-serif; - font-weight: normal; - font-style: normal; - vertical-align: baseline; - line-height: 1; + font: normal normal normal 1.6rem/1 "FontAwesome", sans-serif; + /*font-weight: normal; // 2 + font-style: normal; // 2 + vertical-align: baseline; // 3 + line-height: 1; // 4*/ + font-size: inherit; + text-rendering: auto; -webkit-font-smoothing: antialiased; -moz-osx-font-smoothing: grayscale; + -webkit-transform: translate(0, 0); + -ms-transform: translate(0, 0); + transform: translate(0, 0); content: "\f053"; font-size: 16px; line-height: 24px; @@ -12886,13 +14146,13 @@ tbody.am-collapse.am-in { .am-slider-d2 { margin-bottom: 20px; -webkit-box-shadow: 0 1px 4px rgba(0, 0, 0, 0.2); - box-shadow: 0 1px 4px rgba(0, 0, 0, 0.2) + box-shadow: 0 1px 4px rgba(0, 0, 0, 0.2); /* Control Nav */ } .am-slider-d2 .am-viewport { max-height: 2000px; -webkit-transition: all 1s ease; - transition: all 1s ease; + transition: all 1s ease; } .loading .am-slider-d2 .am-viewport { max-height: 300px; @@ -12902,7 +14162,7 @@ tbody.am-collapse.am-in { left: 10px; bottom: 20px; right: 50px; - color: #ffffff; + color: #fff; } .am-slider-d2 .am-slider-content { background-color: rgba(0, 0, 0, 0.7); @@ -12975,13 +14235,13 @@ tbody.am-collapse.am-in { .am-slider-d3 { margin-bottom: 10px; -webkit-box-shadow: 0 1px 4px rgba(0, 0, 0, 0.2); - box-shadow: 0 1px 4px rgba(0, 0, 0, 0.2) + box-shadow: 0 1px 4px rgba(0, 0, 0, 0.2); /* Control Nav */ } .am-slider-d3 .am-viewport { max-height: 2000px; -webkit-transition: all 1s ease; - transition: all 1s ease; + transition: all 1s ease; } .loading .am-slider-d3 .am-viewport { max-height: 300px; @@ -12989,7 +14249,7 @@ tbody.am-collapse.am-in { .am-slider-d3 .am-slider-desc { position: absolute; bottom: 0; - color: #ffffff; + color: #fff; width: 100%; background-color: rgba(0, 0, 0, 0.7); padding: 8px 5px; @@ -13017,16 +14277,8 @@ tbody.am-collapse.am-in { .am-slider-d3 .am-control-thumbs { position: static; overflow: hidden; - display: -webkit-box; - display: -webkit-flex; - display: -ms-flexbox; - display: flex; } .am-slider-d3 .am-control-thumbs li { - -webkit-box-flex: 1; - -webkit-flex: 1; - -ms-flex: 1; - flex: 1; padding: 12px 4px 4px; position: relative; } @@ -13061,113 +14313,18 @@ tbody.am-collapse.am-in { transform: rotate(360deg); margin-left: -4px; -webkit-transition: all 0.2s; - transition: all 0.2s; + transition: all 0.2s; } .am-slider-d3 .am-direction-nav, .am-slider-d3 .am-pauseplay { display: none; } -/** - * Slider Theme: one - */ -.am-slider-one { - -webkit-box-shadow: 0 1px 4px rgba(0, 0, 0, 0.5); - box-shadow: 0 1px 4px rgba(0, 0, 0, 0.5); - margin: 0 10px - /* Control Nav */ -} -.am-slider-one .am-viewport { - max-height: 2000px; - -webkit-transition: all 1s ease; - transition: all 1s ease; -} -.loading .am-slider-one .am-viewport { - max-height: 300px; -} -.am-slider-one .am-viewport .am-slider-desc { - position: absolute; - left: 0; - bottom: 0; - height: 26px; - width: 100%; - line-height: 26px; - background: rgba(0, 0, 0, 0.5); - color: #ffffff; -} -.am-slider-one .am-viewport .am-slider-desc .am-slider-title { - font-weight: normal; - font-size: 12px; - text-indent: 4px; - padding-right: 80px; - display: block; - word-wrap: normal; - /* for IE */ - text-overflow: ellipsis; - white-space: nowrap; - overflow: hidden; -} -.am-slider-one .am-control-nav { - display: none; -} -.am-slider-one .am-direction-nav a { - position: absolute; - top: 50%; - z-index: 10; - display: block; - width: 24px; - height: 24px; - margin: -12px 0 0; - overflow: hidden; - opacity: 0.45; - cursor: pointer; - color: rgba(0, 0, 0, 0.8); - text-shadow: 1px 1px 0 rgba(255, 255, 255, 0.3); - -webkit-transition: all .3s ease; - transition: all .3s ease; -} -.am-slider-one .am-direction-nav a:before { - display: inline-block; - font-family: "FontAwesome", sans-serif; - font-weight: normal; - font-style: normal; - vertical-align: baseline; - line-height: 1; - -webkit-font-smoothing: antialiased; - -moz-osx-font-smoothing: grayscale; - color: rgba(0, 0, 0, 0.7); - content: "\f053"; - font-size: 24px; -} -.am-slider-one .am-direction-nav a.am-next:before { - content: "\f054"; -} -.am-slider-one .am-direction-nav .am-prev { - left: 10px; -} -.am-slider-one .am-direction-nav .am-next { - right: 10px; - text-align: right; -} -.am-slider-one .am-direction-nav .am-disabled { - opacity: 0!important; - cursor: default; -} -.am-slider-one:hover .am-prev { - opacity: 0.7; - left: 10px; -} -.am-slider-one:hover .am-prev:hover { - opacity: 1; -} -.am-slider-one:hover .am-next { - opacity: 0.7; - right: 10px; -} -.am-slider-one:hover .am-next:hover { - opacity: 1; +.am-slider-d3 .am-control-thumbs { + display: table; } -.am-slider-one .am-pauseplay { - display: none; +.am-slider-d3 .am-control-thumbs li { + display: table-cell; + width: 1%; } [data-am-widget='tabs'] { margin: 10px; @@ -13210,7 +14367,7 @@ tbody.am-collapse.am-in { } .am-tabs-default .am-tabs-nav > .am-active a { background-color: #0e90d2; - color: #ffffff; + color: #fff; } /** * Tabs Theme: d2 @@ -13246,46 +14403,6 @@ tbody.am-collapse.am-in { z-index: 1; border-bottom-color: #0e90d2; } -/** - * Tabs Theme: one - */ -.am-tabs-one { - background: #ffffff; -} -.am-tabs-one .am-tabs-nav { - height: 36px; - background-color: #ffffff; - font-size: 14px; - border-radius: 0; -} -.am-tabs-one .am-tabs-nav a { - line-height: 34px; - color: #15afef; -} -.am-tabs-one .am-tabs-nav li { - border: 1px solid #15afef; -} -.am-tabs-one .am-tabs-nav li:first-child { - border-bottom-left-radius: 0; - border-top-left-radius: 0; -} -.am-tabs-one .am-tabs-nav li:last-child { - border-bottom-right-radius: 0; - border-top-right-radius: 0; -} -.am-tabs-one .am-tabs-nav li + li { - border-left: none; -} -.am-tabs-one .am-tabs-nav .am-active a { - background-color: #15afef; - color: #ffffff; -} -.am-tabs-one .am-tabs-bd { - border: none; -} -.am-tabs-one .am-tab-panel { - padding: 15px 5px 20px; -} .am-titlebar { margin-top: 20px; height: 45px; @@ -13427,76 +14544,7 @@ tbody.am-collapse.am-in { .am-titlebar-cols .am-titlebar-nav a:last-child { margin-right: 10px; } -/** - * Titlebar Theme: one - */ -.am-titlebar-one { - display: -webkit-box; - display: -webkit-flex; - display: -ms-flexbox; - display: flex; - margin-left: 10px; - margin-right: 10px; - height: 45px; - line-height: 44px; - background-color: #ffffff; - overflow: hidden; - border-bottom: 1px solid #15afef; -} -.am-titlebar-one .am-titlebar-title { - padding-left: 12px; - position: relative; - color: #222222; - display: block; - word-wrap: normal; - /* for IE */ - text-overflow: ellipsis; - white-space: nowrap; - overflow: hidden; -} -.am-titlebar-one .am-titlebar-title:before { - content: ""; - position: absolute; - left: 2px; - top: 8px; - bottom: 8px; - border-left: 3px solid #15afef; -} -.am-titlebar-one .am-titlebar-title a { - color: #222222; -} -.am-titlebar-one .am-titlebar-title img { - height: 24px; - vertical-align: top; - margin-top: 10px; -} -.am-titlebar-one .am-titlebar-title h1, -.am-titlebar-one .am-titlebar-title h2, -.am-titlebar-one .am-titlebar-title h3, -.am-titlebar-one .am-titlebar-title h4, -.am-titlebar-one .am-titlebar-title h5, -.am-titlebar-one .am-titlebar-title h6, -.am-titlebar-one .am-titlebar-title strong, -.am-titlebar-one .am-titlebar-title em { - font-style: normal; - font-weight: normal; - margin-bottom: 0; -} -.am-titlebar-one .am-titlebar-title ul, -.am-titlebar-one .am-titlebar-title li { - list-style: none; - padding-left: 0; -} -.am-titlebar-one .am-titlebar-nav { - -webkit-box-flex: 1; - -webkit-flex: 1; - -ms-flex: 1; - flex: 1; - text-align: right; - padding-right: 5px; - color: #999999; - font-size: 1.4rem; -} -.am-titlebar-one .am-titlebar-nav a { - color: #999999; +.am-wechatpay .am-wechatpay-btn { + margin-top: 1rem; + margin-bottom: 1rem; } diff --git a/public/assets/css/amazeui.datetimepicker-se.min.css b/public/assets/css/amazeui.datetimepicker-se.min.css new file mode 100755 index 0000000..48eb00b --- /dev/null +++ b/public/assets/css/amazeui.datetimepicker-se.min.css @@ -0,0 +1,7 @@ +/*! Amaze UI Plugin ~ amazeui-datetimepicker-se */ +/*! + * Amaze UI Datetimepicker SE + * Modified version of Datetimepicker for Bootstrap 3 version : 4.17.37 + * @see https://github.com/Eonasdan/bootstrap-datetimepicker/ + */ +.bootstrap-datetimepicker-widget{width:242px;padding:0 2px 2px;background:#fff;z-index:1100}.bootstrap-datetimepicker-widget.timepicker-sbs{width:auto}.bootstrap-datetimepicker-widget .list-unstyled{margin:0;padding:0;list-style:none}.bootstrap-datetimepicker-widget .next,.bootstrap-datetimepicker-widget .prev,.bootstrap-datetimepicker-widget th.picker-switch{background:#3bb4f2;color:#fff;height:40px;line-height:40px}.bootstrap-datetimepicker-widget .next:hover,.bootstrap-datetimepicker-widget .prev:hover,.bootstrap-datetimepicker-widget th.picker-switch:hover{background:#19a7f0}.bootstrap-datetimepicker-widget .next,.bootstrap-datetimepicker-widget .prev,.bootstrap-datetimepicker-widget table td.day{width:34px}.bootstrap-datetimepicker-widget .dow{color:#0e90d2}.bootstrap-datetimepicker-widget.dropdown-menu{display:block;margin-top:7px;-webkit-box-shadow:0 0 2px #bbb;box-shadow:0 0 2px #bbb}.bootstrap-datetimepicker-widget.dropdown-menu:after,.bootstrap-datetimepicker-widget.dropdown-menu:before{content:'';display:inline-block;position:absolute}.bootstrap-datetimepicker-widget.dropdown-menu.bottom:before{border-left:7px solid transparent;border-right:7px solid transparent;border-bottom:7px solid #3bb4f2;border-bottom-color:#3bb4f2;top:-7px;left:7px}.bootstrap-datetimepicker-widget.dropdown-menu.bottom.right:before{left:auto;right:10px}.bootstrap-datetimepicker-widget.dropdown-menu.top:before{border-left:7px solid transparent;border-right:7px solid transparent;border-top:7px solid #3bb4f2;border-top-color:#3bb4f2;bottom:-7px;left:6px}.bootstrap-datetimepicker-widget.dropdown-menu.top:after{border-left:6px solid transparent;border-right:6px solid transparent;border-top:6px solid #3bb4f2;bottom:-6px;left:7px}.bootstrap-datetimepicker-widget.dropdown-menu.pull-right:before{left:auto;right:6px}.bootstrap-datetimepicker-widget.dropdown-menu.pull-right:after{left:auto;right:7px}.bootstrap-datetimepicker-widget [data-action],.datepickerbutton{cursor:pointer}.bootstrap-datetimepicker-widget .timepicker-hour,.bootstrap-datetimepicker-widget .timepicker-minute,.bootstrap-datetimepicker-widget .timepicker-second{width:54px;font-weight:700;font-size:1.2em;margin:0}.bootstrap-datetimepicker-widget button[data-action]{padding:6px}.bootstrap-datetimepicker-widget .picker-switch,.bootstrap-datetimepicker-widget table td,.bootstrap-datetimepicker-widget table th{text-align:center}.bootstrap-datetimepicker-widget .picker-switch td{padding:0;margin:0;height:auto;width:auto;line-height:inherit}.bootstrap-datetimepicker-widget .picker-switch td a{cursor:pointer;display:block}.bootstrap-datetimepicker-widget .picker-switch td a:hover,.bootstrap-datetimepicker-widget table td .decade:hover,.bootstrap-datetimepicker-widget table td .month:hover,.bootstrap-datetimepicker-widget table td .year:hover{background:#eee}.bootstrap-datetimepicker-widget .picker-switch td span{line-height:40px;height:40px;width:100%}.bootstrap-datetimepicker-widget table{width:238px;margin:0}.bootstrap-datetimepicker-widget table th{height:40px;line-height:40px;font-weight:400}.bootstrap-datetimepicker-widget table th.disabled,.bootstrap-datetimepicker-widget table th.disabled:hover{background:#3bb4f2;color:#a6a6a6;cursor:not-allowed}.bootstrap-datetimepicker-widget table thead tr:first-child th{cursor:pointer}.bootstrap-datetimepicker-widget table td{height:34px;line-height:34px}.bootstrap-datetimepicker-widget table td.cw{font-size:.8em;height:20px;line-height:20px;color:#999}.bootstrap-datetimepicker-widget table td.day:hover,.bootstrap-datetimepicker-widget table td.hour:hover,.bootstrap-datetimepicker-widget table td.minute:hover,.bootstrap-datetimepicker-widget table td.second:hover{background:#eee;cursor:pointer}.bootstrap-datetimepicker-widget table td.new,.bootstrap-datetimepicker-widget table td.old{color:#999}.bootstrap-datetimepicker-widget table td.today{position:relative}.bootstrap-datetimepicker-widget table td.today:before{content:'';display:inline-block;border:solid transparent;border-width:0 0 7px 7px;border-bottom-color:#0e90d2;border-top-color:#0e90d2;position:absolute;bottom:4px;right:4px}.bootstrap-datetimepicker-widget table td .decade.active,.bootstrap-datetimepicker-widget table td .month.active,.bootstrap-datetimepicker-widget table td .year.active,.bootstrap-datetimepicker-widget table td.active,.bootstrap-datetimepicker-widget table td.active:hover{background-color:#eee;color:#0e90d2}.bootstrap-datetimepicker-widget table td.disabled,.bootstrap-datetimepicker-widget table td.disabled:hover{background:0 0;color:#999;cursor:not-allowed}.bootstrap-datetimepicker-widget table td .month,.bootstrap-datetimepicker-widget table td .year{float:left;width:25%;height:34px;line-height:34px;margin:2px 0;cursor:pointer;border-radius:0}.bootstrap-datetimepicker-widget table td .decade{float:left;height:34px;line-height:34px;margin:2px 0;cursor:pointer;border-radius:0}.bootstrap-datetimepicker-widget table td .decade.old,.bootstrap-datetimepicker-widget table td .month.old,.bootstrap-datetimepicker-widget table td .year.old{color:#999}.bootstrap-datetimepicker-widget table td .decade.disabled,.bootstrap-datetimepicker-widget table td .decade.disabled:hover,.bootstrap-datetimepicker-widget table td .month.disabled,.bootstrap-datetimepicker-widget table td .month.disabled:hover,.bootstrap-datetimepicker-widget table td .year.disabled,.bootstrap-datetimepicker-widget table td .year.disabled:hover{background:0 0;color:#999;cursor:not-allowed}.bootstrap-datetimepicker-widget table td .decade{width:50%}.bootstrap-datetimepicker-widget .datepicker-months td,.bootstrap-datetimepicker-widget .datepicker-years td{overflow:hidden}.bootstrap-datetimepicker-widget .collapse{display:none}.bootstrap-datetimepicker-widget .collapse.in{display:block} \ No newline at end of file diff --git a/public/css/amazeui.flat.css b/public/assets/css/amazeui.flat.css old mode 100644 new mode 100755 similarity index 79% rename from public/css/amazeui.flat.css rename to public/assets/css/amazeui.flat.css index f70c65e..1997b55 --- a/public/css/amazeui.flat.css +++ b/public/assets/css/amazeui.flat.css @@ -1,4 +1,4 @@ -/*! Amaze UI v2.0.0 | by Amaze UI Team | (c) 2014 AllMobilize, Inc. | Licensed under MIT | 2014-12-05T02:12:50 UTC */ +/*! Amaze UI v2.7.2 | by Amaze UI Team | (c) 2016 AllMobilize, Inc. | Licensed under MIT | 2016-08-17T16:17:24+0800 */ /* ========================================================================== Component: Base ============================================================================ */ @@ -27,7 +27,7 @@ body { html { -ms-text-size-adjust: 100%; /* 1 */ - -webkit-text-size-adjust: 100% + -webkit-text-size-adjust: 100%; /* 1 */ } /** @@ -70,7 +70,7 @@ progress, video { display: inline-block; /* 1 */ - vertical-align: baseline + vertical-align: baseline; /* 2 */ } /** @@ -174,18 +174,15 @@ sub { * 2. Responsiveness: Sets a maxium width relative to the parent and auto scales the height * 3. Remove the gap between images and the bottom of their containers * 4. Remove border when inside `a` element in IE 8/9. + * remove 2. for Issue #502 */ img { -webkit-box-sizing: border-box; box-sizing: border-box; /* 1 */ - max-width: 100%; - /* 2 */ - height: auto; - /* 2 */ vertical-align: middle; /* 3 */ - border: 0 + border: 0; /* 4 */ } /** @@ -229,7 +226,7 @@ fieldset { legend { border: 0; /* 1 */ - padding: 0 + padding: 0; /* 2 */ } /** @@ -247,7 +244,7 @@ textarea { /* 1 */ font: inherit; /* 2 */ - margin: 0 + margin: 0; /* 3 */ } /** @@ -287,7 +284,7 @@ input[type="reset"], input[type="submit"] { -webkit-appearance: button; /* 2 */ - cursor: pointer + cursor: pointer; /* 3 */ } /* @@ -302,7 +299,7 @@ input[type="checkbox"] { padding: 0; /*2*/ -webkit-box-sizing: border-box; - box-sizing: border-box + box-sizing: border-box; /* 3 */ } /** @@ -338,7 +335,7 @@ input[type="search"] { -webkit-appearance: textfield; /* 1 */ -webkit-box-sizing: content-box; - box-sizing: content-box + box-sizing: content-box; /* 2 */ } /** @@ -388,12 +385,12 @@ th { `font` shorthand property. */ html { - font-size: 62.5%; + font-size: 10px; -webkit-tap-highlight-color: rgba(0, 0, 0, 0); } body { position: relative; - background: #ffffff; + background: #fff; font-family: "Segoe UI", "Lucida Grande", Helvetica, Arial, "Microsoft YaHei", FreeSans, Arimo, "Droid Sans", "wenquanyi micro hei", "Hiragino Sans GB", "Hiragino Sans GB W3", "FontAwesome", sans-serif; font-weight: normal; line-height: 1.6; @@ -445,12 +442,12 @@ a:focus { } a:focus { outline: thin dotted; - outline: 5px auto -webkit-focus-ring-color; + outline: 1px auto -webkit-focus-ring-color; outline-offset: -2px; } /* Insert */ ins { - background: #ffffaa; + background: #ffa; color: #333333; } /** @@ -458,7 +455,7 @@ ins { * Note: Addresses styling not present in IE 8/9. */ mark { - background: #ffffaa; + background: #ffa; color: #333333; } /** @@ -560,7 +557,7 @@ hr { border-top: 1px solid #eeeeee; /* 1 */ -webkit-box-sizing: content-box; - box-sizing: content-box + box-sizing: content-box; /* 1 */ } /* Address */ @@ -572,8 +569,8 @@ blockquote { padding-top: 5px; padding-bottom: 5px; padding-left: 15px; - border-left: 4px solid #dddddd; - font-family: Georgia, "Times New Roman", Times, Kai, "Kaiti SC", KaiTi, BiauKai, "FontAwesome", serif + border-left: 4px solid #ddd; + font-family: Georgia, "Times New Roman", Times, Kai, "Kaiti SC", KaiTi, BiauKai, "FontAwesome", serif; /* Small print for identifying the source */ /* Smaller margin if `small` follows */ } @@ -613,6 +610,13 @@ select { width: device-width; } */ +.am-scrollbar-measure { + width: 100px; + height: 100px; + overflow: scroll; + position: absolute; + top: -9999px; +} /* ========================================================================== Component: Grid ============================================================================ */ @@ -788,7 +792,7 @@ select { .am-u-sm-pull-11 { right: 91.66666667%; } - .am-u-sm-push-1 { + .am-u-sm-push-0 { left: 0; } .am-u-sm-push-1 { @@ -957,7 +961,7 @@ select { .am-u-md-pull-11 { right: 91.66666667%; } - .am-u-md-push-1 { + .am-u-md-push-0 { left: 0; } .am-u-md-push-1 { @@ -1126,7 +1130,7 @@ select { .am-u-lg-pull-11 { right: 91.66666667%; } - .am-u-lg-push-1 { + .am-u-lg-push-0 { left: 0; } .am-u-lg-push-1 { @@ -1626,7 +1630,7 @@ pre code { .am-btn { display: inline-block; margin-bottom: 0; - padding: 0.625em 1em; + padding: 0.5em 1em; vertical-align: middle; font-size: 1.6rem; font-weight: normal; @@ -1637,34 +1641,34 @@ pre code { border: 1px solid transparent; border-radius: 2px; cursor: pointer; - outline: 0; + outline: none; -webkit-appearance: none; -webkit-user-select: none; -moz-user-select: none; -ms-user-select: none; user-select: none; -webkit-transition: background-color 300ms ease-out, border-color 300ms ease-out; - transition: background-color 300ms ease-out, border-color 300ms ease-out; + transition: background-color 300ms ease-out, border-color 300ms ease-out; } .am-btn.am-square { border-radius: 0; } -.am-btn:focus { +.am-btn:focus, +.am-btn:active:focus { outline: thin dotted; - outline: 5px auto -webkit-focus-ring-color; + outline: 1px auto -webkit-focus-ring-color; outline-offset: -2px; } .am-btn:hover, .am-btn:focus { - outline: 0; - color: #444444; + color: #444; text-decoration: none; } .am-btn:active, .am-btn.am-active { background-image: none; - -webkit-box-shadow: inset 0 1px 8px rgba(0, 0, 0, 0.125); - box-shadow: inset 0 1px 8px rgba(0, 0, 0, 0.125); + -webkit-box-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.15); + box-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.15); } .am-btn.am-disabled, .am-btn[disabled], @@ -1683,23 +1687,30 @@ fieldset[disabled] .am-btn { border-radius: 2px; } .am-btn-default { - color: #444444; + color: #444; background-color: #e6e6e6; border-color: #e6e6e6; } +a.am-btn-default:visited { + color: #444; +} .am-btn-default:hover, .am-btn-default:focus, .am-btn-default:active, .am-btn-default.am-active, -.am-active .am-dropdown-toggle.am-btn-default { - color: #444444; - background-color: #c7c7c7; +.am-dropdown.am-active .am-btn-default.am-dropdown-toggle { + color: #444; border-color: #c7c7c7; } +.am-btn-default:hover, +.am-btn-default:focus { + background-color: #d4d4d4; +} .am-btn-default:active, -.am-btn-default.am-btn-active, -.am-active .am-dropdown-toggle.am-btn-default { +.am-btn-default.am-active, +.am-dropdown.am-active .am-btn-default.am-dropdown-toggle { background-image: none; + background-color: #c2c2c2; } .am-btn-default.am-disabled, .am-btn-default[disabled], @@ -1713,9 +1724,9 @@ fieldset[disabled] .am-btn-default:focus, .am-btn-default.am-disabled:active, .am-btn-default[disabled]:active, fieldset[disabled] .am-btn-default:active, -.am-btn-default.am-disabled.am-btn-active, -.am-btn-default[disabled].am-btn-active, -fieldset[disabled] .am-btn-default.am-btn-active { +.am-btn-default.am-disabled.am-active, +.am-btn-default[disabled].am-active, +fieldset[disabled] .am-btn-default.am-active { background-color: #e6e6e6; border-color: #e6e6e6; } @@ -1724,23 +1735,30 @@ fieldset[disabled] .am-btn-default.am-btn-active { border-color: #d9d9d9; } .am-btn-primary { - color: #ffffff; + color: #fff; background-color: #0e90d2; border-color: #0e90d2; } +a.am-btn-primary:visited { + color: #fff; +} .am-btn-primary:hover, .am-btn-primary:focus, .am-btn-primary:active, .am-btn-primary.am-active, -.am-active .am-dropdown-toggle.am-btn-primary { - color: #ffffff; - background-color: #0a6999; +.am-dropdown.am-active .am-btn-primary.am-dropdown-toggle { + color: #fff; border-color: #0a6999; } +.am-btn-primary:hover, +.am-btn-primary:focus { + background-color: #0c79b1; +} .am-btn-primary:active, -.am-btn-primary.am-btn-active, -.am-active .am-dropdown-toggle.am-btn-primary { +.am-btn-primary.am-active, +.am-dropdown.am-active .am-btn-primary.am-dropdown-toggle { background-image: none; + background-color: #0a628f; } .am-btn-primary.am-disabled, .am-btn-primary[disabled], @@ -1754,9 +1772,9 @@ fieldset[disabled] .am-btn-primary:focus, .am-btn-primary.am-disabled:active, .am-btn-primary[disabled]:active, fieldset[disabled] .am-btn-primary:active, -.am-btn-primary.am-disabled.am-btn-active, -.am-btn-primary[disabled].am-btn-active, -fieldset[disabled] .am-btn-primary.am-btn-active { +.am-btn-primary.am-disabled.am-active, +.am-btn-primary[disabled].am-active, +fieldset[disabled] .am-btn-primary.am-active { background-color: #0e90d2; border-color: #0e90d2; } @@ -1764,24 +1782,79 @@ fieldset[disabled] .am-btn-primary.am-btn-active { .am-btn-group-stacked .am-btn-primary { border-color: #0c80ba; } +.am-btn-secondary { + color: #fff; + background-color: #3bb4f2; + border-color: #3bb4f2; +} +a.am-btn-secondary:visited { + color: #fff; +} +.am-btn-secondary:hover, +.am-btn-secondary:focus, +.am-btn-secondary:active, +.am-btn-secondary.am-active, +.am-dropdown.am-active .am-btn-secondary.am-dropdown-toggle { + color: #fff; + border-color: #0f9ae0; +} +.am-btn-secondary:hover, +.am-btn-secondary:focus { + background-color: #19a7f0; +} +.am-btn-secondary:active, +.am-btn-secondary.am-active, +.am-dropdown.am-active .am-btn-secondary.am-dropdown-toggle { + background-image: none; + background-color: #0e93d7; +} +.am-btn-secondary.am-disabled, +.am-btn-secondary[disabled], +fieldset[disabled] .am-btn-secondary, +.am-btn-secondary.am-disabled:hover, +.am-btn-secondary[disabled]:hover, +fieldset[disabled] .am-btn-secondary:hover, +.am-btn-secondary.am-disabled:focus, +.am-btn-secondary[disabled]:focus, +fieldset[disabled] .am-btn-secondary:focus, +.am-btn-secondary.am-disabled:active, +.am-btn-secondary[disabled]:active, +fieldset[disabled] .am-btn-secondary:active, +.am-btn-secondary.am-disabled.am-active, +.am-btn-secondary[disabled].am-active, +fieldset[disabled] .am-btn-secondary.am-active { + background-color: #3bb4f2; + border-color: #3bb4f2; +} +.am-btn-group .am-btn-secondary, +.am-btn-group-stacked .am-btn-secondary { + border-color: #23abf0; +} .am-btn-warning { - color: #ffffff; - background-color: #f37b1d; - border-color: #f37b1d; + color: #fff; + background-color: #F37B1D; + border-color: #F37B1D; +} +a.am-btn-warning:visited { + color: #fff; } .am-btn-warning:hover, .am-btn-warning:focus, .am-btn-warning:active, .am-btn-warning.am-active, -.am-active .am-dropdown-toggle.am-btn-warning { - color: #ffffff; - background-color: #c85e0b; +.am-dropdown.am-active .am-btn-warning.am-dropdown-toggle { + color: #fff; border-color: #c85e0b; } +.am-btn-warning:hover, +.am-btn-warning:focus { + background-color: #e0690c; +} .am-btn-warning:active, -.am-btn-warning.am-btn-active, -.am-active .am-dropdown-toggle.am-btn-warning { +.am-btn-warning.am-active, +.am-dropdown.am-active .am-btn-warning.am-dropdown-toggle { background-image: none; + background-color: #be590a; } .am-btn-warning.am-disabled, .am-btn-warning[disabled], @@ -1795,34 +1868,41 @@ fieldset[disabled] .am-btn-warning:focus, .am-btn-warning.am-disabled:active, .am-btn-warning[disabled]:active, fieldset[disabled] .am-btn-warning:active, -.am-btn-warning.am-disabled.am-btn-active, -.am-btn-warning[disabled].am-btn-active, -fieldset[disabled] .am-btn-warning.am-btn-active { - background-color: #f37b1d; - border-color: #f37b1d; +.am-btn-warning.am-disabled.am-active, +.am-btn-warning[disabled].am-active, +fieldset[disabled] .am-btn-warning.am-active { + background-color: #F37B1D; + border-color: #F37B1D; } .am-btn-group .am-btn-warning, .am-btn-group-stacked .am-btn-warning { border-color: #ea6e0c; } .am-btn-danger { - color: #ffffff; + color: #fff; background-color: #dd514c; border-color: #dd514c; } +a.am-btn-danger:visited { + color: #fff; +} .am-btn-danger:hover, .am-btn-danger:focus, .am-btn-danger:active, .am-btn-danger.am-active, -.am-active .am-dropdown-toggle.am-btn-danger { - color: #ffffff; - background-color: #c62b26; +.am-dropdown.am-active .am-btn-danger.am-dropdown-toggle { + color: #fff; border-color: #c62b26; } +.am-btn-danger:hover, +.am-btn-danger:focus { + background-color: #d7342e; +} .am-btn-danger:active, -.am-btn-danger.am-btn-active, -.am-active .am-dropdown-toggle.am-btn-danger { +.am-btn-danger.am-active, +.am-dropdown.am-active .am-btn-danger.am-dropdown-toggle { background-image: none; + background-color: #be2924; } .am-btn-danger.am-disabled, .am-btn-danger[disabled], @@ -1836,9 +1916,9 @@ fieldset[disabled] .am-btn-danger:focus, .am-btn-danger.am-disabled:active, .am-btn-danger[disabled]:active, fieldset[disabled] .am-btn-danger:active, -.am-btn-danger.am-disabled.am-btn-active, -.am-btn-danger[disabled].am-btn-active, -fieldset[disabled] .am-btn-danger.am-btn-active { +.am-btn-danger.am-disabled.am-active, +.am-btn-danger[disabled].am-active, +fieldset[disabled] .am-btn-danger.am-active { background-color: #dd514c; border-color: #dd514c; } @@ -1847,23 +1927,30 @@ fieldset[disabled] .am-btn-danger.am-btn-active { border-color: #d93c37; } .am-btn-success { - color: #ffffff; + color: #fff; background-color: #5eb95e; border-color: #5eb95e; } +a.am-btn-success:visited { + color: #fff; +} .am-btn-success:hover, .am-btn-success:focus, .am-btn-success:active, .am-btn-success.am-active, -.am-active .am-dropdown-toggle.am-btn-success { - color: #ffffff; - background-color: #429842; +.am-dropdown.am-active .am-btn-success.am-dropdown-toggle { + color: #fff; border-color: #429842; } +.am-btn-success:hover, +.am-btn-success:focus { + background-color: #4aaa4a; +} .am-btn-success:active, -.am-btn-success.am-btn-active, -.am-active .am-dropdown-toggle.am-btn-success { +.am-btn-success.am-active, +.am-dropdown.am-active .am-btn-success.am-dropdown-toggle { background-image: none; + background-color: #3f913f; } .am-btn-success.am-disabled, .am-btn-success[disabled], @@ -1877,9 +1964,9 @@ fieldset[disabled] .am-btn-success:focus, .am-btn-success.am-disabled:active, .am-btn-success[disabled]:active, fieldset[disabled] .am-btn-success:active, -.am-btn-success.am-disabled.am-btn-active, -.am-btn-success[disabled].am-btn-active, -fieldset[disabled] .am-btn-success.am-btn-active { +.am-btn-success.am-disabled.am-active, +.am-btn-success[disabled].am-active, +fieldset[disabled] .am-btn-success.am-active { background-color: #5eb95e; border-color: #5eb95e; } @@ -1887,47 +1974,6 @@ fieldset[disabled] .am-btn-success.am-btn-active { .am-btn-group-stacked .am-btn-success { border-color: #4db14d; } -.am-btn-secondary { - color: #ffffff; - background-color: #3bb4f2; - border-color: #3bb4f2; -} -.am-btn-secondary:hover, -.am-btn-secondary:focus, -.am-btn-secondary:active, -.am-btn-secondary.am-active, -.am-active .am-dropdown-toggle.am-btn-secondary { - color: #ffffff; - background-color: #0f9ae0; - border-color: #0f9ae0; -} -.am-btn-secondary:active, -.am-btn-secondary.am-btn-active, -.am-active .am-dropdown-toggle.am-btn-secondary { - background-image: none; -} -.am-btn-secondary.am-disabled, -.am-btn-secondary[disabled], -fieldset[disabled] .am-btn-secondary, -.am-btn-secondary.am-disabled:hover, -.am-btn-secondary[disabled]:hover, -fieldset[disabled] .am-btn-secondary:hover, -.am-btn-secondary.am-disabled:focus, -.am-btn-secondary[disabled]:focus, -fieldset[disabled] .am-btn-secondary:focus, -.am-btn-secondary.am-disabled:active, -.am-btn-secondary[disabled]:active, -fieldset[disabled] .am-btn-secondary:active, -.am-btn-secondary.am-disabled.am-btn-active, -.am-btn-secondary[disabled].am-btn-active, -fieldset[disabled] .am-btn-secondary.am-btn-active { - background-color: #3bb4f2; - border-color: #3bb4f2; -} -.am-btn-group .am-btn-secondary, -.am-btn-group-stacked .am-btn-secondary { - border-color: #23abf0; -} /* Style links like a button */ .am-btn-link { color: #0e90d2; @@ -2013,6 +2059,8 @@ th { .am-table { width: 100%; margin-bottom: 1.6rem; + border-spacing: 0; + border-collapse: separate; } .am-table > thead > tr > th, .am-table > tbody > tr > th, @@ -2023,11 +2071,11 @@ th { padding: 0.7rem; line-height: 1.6; vertical-align: top; - border-top: 1px solid #dddddd; + border-top: 1px solid #ddd; } .am-table > thead > tr > th { vertical-align: bottom; - border-bottom: 2px solid #dddddd; + border-bottom: 1px solid #ddd; } .am-table > caption + thead > tr:first-child > th, .am-table > colgroup + thead > tr:first-child > th, @@ -2037,12 +2085,13 @@ th { .am-table > thead:first-child > tr:first-child > td { border-top: 0; } -.am-table > tbody + tbody { - border-top: 2px solid #dddddd; +.am-table > tbody + tbody tr:first-child td { + border-top: 2px solid #ddd; } /* Bordered version */ .am-table-bordered { - border: 1px solid #dddddd; + border: 1px solid #ddd; + border-left: none; } .am-table-bordered > thead > tr > th, .am-table-bordered > tbody > tr > th, @@ -2050,17 +2099,22 @@ th { .am-table-bordered > thead > tr > td, .am-table-bordered > tbody > tr > td, .am-table-bordered > tfoot > tr > td { - border: 1px solid #dddddd; + border-left: 1px solid #ddd; + /*&:first-child { + border-left: none; + }*/ } -.am-table-bordered > thead > tr > th, -.am-table-bordered > thead > tr > td { - border-bottom-width: 2px; +.am-table-bordered > tbody > tr:first-child > th, +.am-table-bordered > tbody > tr:first-child > td { + border-top: none; +} +.am-table-bordered > thead + tbody > tr:first-child > th, +.am-table-bordered > thead + tbody > tr:first-child > td { + border-top: 1px solid #ddd; } /* Border-radius version */ .am-table-radius { - border: none; - -webkit-box-shadow: 0 0 1px #999999; - box-shadow: 0 0 1px #999999; + border: 1px solid #ddd; border-radius: 2px; } .am-table-radius > thead > tr:first-child > th:first-child, @@ -2103,6 +2157,22 @@ th { .am-table-hover > tbody > tr:hover > th { background-color: #e9e9e9; } +.am-table-compact > thead > tr > th, +.am-table-compact > tbody > tr > th, +.am-table-compact > tfoot > tr > th, +.am-table-compact > thead > tr > td, +.am-table-compact > tbody > tr > td, +.am-table-compact > tfoot > tr > td { + padding: 0.4rem; +} +.am-table-centered > thead > tr > th, +.am-table-centered > tbody > tr > th, +.am-table-centered > tfoot > tr > th, +.am-table-centered > thead > tr > td, +.am-table-centered > tbody > tr > td, +.am-table-centered > tfoot > tr > td { + text-align: center; +} .am-table > thead > tr > td.am-active, .am-table > tbody > tr > td.am-active, .am-table > tfoot > tr > td.am-active, @@ -2115,7 +2185,7 @@ th { .am-table > thead > tr.am-active > th, .am-table > tbody > tr.am-active > th, .am-table > tfoot > tr.am-active > th { - background-color: #ffffdd; + background-color: #ffd; } .am-table > thead > tr > td.am-disabled, .am-table > tbody > tr > td.am-disabled, @@ -2173,7 +2243,7 @@ th { .am-table > thead > tr.am-warning > th, .am-table > tbody > tr.am-warning > th, .am-table > tfoot > tr.am-warning > th { - color: #f37b1d; + color: #F37B1D; background-color: rgba(243, 123, 29, 0.115); } .am-table > thead > tr > td.am-danger, @@ -2215,7 +2285,7 @@ label { } input[type="search"] { -webkit-box-sizing: border-box; - box-sizing: border-box; + box-sizing: border-box; } input[type="radio"], input[type="checkbox"] { @@ -2240,7 +2310,7 @@ input[type="file"]:focus, input[type="radio"]:focus, input[type="checkbox"]:focus { outline: thin dotted; - outline: 5px auto -webkit-focus-ring-color; + outline: 1px auto -webkit-focus-ring-color; outline-offset: -2px; } input[type="number"]::-webkit-outer-spin-button, @@ -2275,18 +2345,20 @@ output { .am-form-field { display: block; width: 100%; - padding: 0.625em; + padding: 0.5em; font-size: 1.6rem; line-height: 1.2; color: #555555; vertical-align: middle; - background-color: #ffffff; + background-color: #fff; background-image: none; - border: 1px solid #cccccc; + border: 1px solid #ccc; border-radius: 2px; -webkit-appearance: none; -webkit-transition: border-color 0.15s ease-in-out, -webkit-box-shadow 0.15s ease-in-out; - transition: border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out; + transition: border-color 0.15s ease-in-out, -webkit-box-shadow 0.15s ease-in-out; + transition: border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out; + transition: border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out, -webkit-box-shadow 0.15s ease-in-out; } .am-form select.am-square, .am-form textarea.am-square, @@ -2343,7 +2415,7 @@ output { .am-form input[type="tel"]:focus, .am-form input[type="color"]:focus, .am-form-field:focus { - background-color: #fafffe; + background-color: #fefffe; border-color: #3bb4f2; outline: 0; -webkit-box-shadow: inset 0 1px 1px rgba(0,0,0,.075), 0 0 5px rgba(59, 180, 242, 0.3); @@ -2543,12 +2615,31 @@ fieldset[disabled] .am-form-field { } .am-form select { -webkit-appearance: none !important; + -moz-appearance: none !important; -webkit-border-radius: 2px; - background: #ffffff url('data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZlcnNpb249IjEuMSIgeD0iMTJweCIgeT0iMHB4IiB3aWR0aD0iMjRweCIgaGVpZ2h0PSIzcHgiIHZpZXdCb3g9IjAgMCA2IDMiIGVuYWJsZS1iYWNrZ3JvdW5kPSJuZXcgMCAwIDYgMyIgeG1sOnNwYWNlPSJwcmVzZXJ2ZSI+PHBvbHlnb24gcG9pbnRzPSI1Ljk5MiwwIDIuOTkyLDMgLTAuMDA4LDAgIi8+PC9zdmc+') no-repeat 100% center; + background: #fff url('data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZlcnNpb249IjEuMSIgeD0iMTJweCIgeT0iMHB4IiB3aWR0aD0iMjRweCIgaGVpZ2h0PSIzcHgiIHZpZXdCb3g9IjAgMCA2IDMiIGVuYWJsZS1iYWNrZ3JvdW5kPSJuZXcgMCAwIDYgMyIgeG1sOnNwYWNlPSJwcmVzZXJ2ZSI+PHBvbHlnb24gcG9pbnRzPSI1Ljk5MiwwIDIuOTkyLDMgLTAuMDA4LDAgIi8+PC9zdmc+') no-repeat 100% center; } .am-form select[multiple="multiple"] { background-image: none; } +.am-form input[type="datetime-local"], +.am-form input[type="date"], +input[type="datetime-local"].am-form-field, +input[type="date"].am-form-field { + height: 37px; +} +.am-form input[type="datetime-local"].am-input-sm, +.am-form input[type="date"].am-input-sm, +input[type="datetime-local"].am-form-field.am-input-sm, +input[type="date"].am-form-field.am-input-sm { + height: 32px; +} +.am-form input[type="datetime-local"] .am-input-lg, +.am-form input[type="date"] .am-input-lg, +input[type="datetime-local"].am-form-field .am-input-lg, +input[type="date"].am-form-field .am-input-lg { + height: 41px; +} /* help text */ .am-form-help { display: block; @@ -2561,6 +2652,21 @@ fieldset[disabled] .am-form-field { .am-form-group { margin-bottom: 1.5rem; } +/* file field */ +.am-form-file { + position: relative; + overflow: hidden; +} +.am-form-file input[type="file"] { + position: absolute; + left: 0; + top: 0; + z-index: 1; + width: 100%; + opacity: 0; + cursor: pointer; + font-size: 50rem; +} /** * Checkboxes and radios * Indent the labels to position radios/checkboxes as hanging controls. @@ -2628,67 +2734,74 @@ fieldset[disabled] .am-checkbox-inline { .am-form-warning .am-radio, .am-form-warning .am-checkbox, .am-form-warning .am-radio-inline, -.am-form-warning .am-checkbox-inline { - color: #f37b1d; +.am-form-warning .am-checkbox-inline, +.am-form-warning label { + color: #F37B1D; +} +.am-form-warning [class*="icon-"] { + color: #F37B1D; } .am-form-warning .am-form-field { - border-color: #f37b1d !important; + border-color: #F37B1D !important; -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075); box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075); } .am-form-warning .am-form-field:focus { - background-color: #fafffe; + background-color: #fefffe; border-color: #d2620b; -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 5px #f8b47e !important; box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 5px #f8b47e !important; } -.am-form-warning [class*="icon-"] { - color: #f37b1d; -} .am-form-error .am-form-help, .am-form-error .am-form-label, .am-form-error .am-radio, .am-form-error .am-checkbox, .am-form-error .am-radio-inline, -.am-form-error .am-checkbox-inline { +.am-form-error .am-checkbox-inline, +.am-form-error label { + color: #dd514c; +} +.am-form-error [class*="icon-"] { color: #dd514c; } -.am-form-error .am-form-field { +.am-form-error .am-form-field, +.am-field-error { border-color: #dd514c !important; -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075); box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075); } -.am-form-error .am-form-field:focus { - background-color: #fafffe; +.am-form-error .am-form-field:focus, +.am-field-error:focus { + background-color: #fefffe; border-color: #cf2d27; -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 5px #eda4a2 !important; box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 5px #eda4a2 !important; } -.am-form-error [class*="icon-"] { - color: #dd514c; -} .am-form-success .am-form-help, .am-form-success .am-form-label, .am-form-success .am-radio, .am-form-success .am-checkbox, .am-form-success .am-radio-inline, -.am-form-success .am-checkbox-inline { +.am-form-success .am-checkbox-inline, +.am-form-success label { + color: #5eb95e; +} +.am-form-success [class*="icon-"] { color: #5eb95e; } -.am-form-success .am-form-field { +.am-form-success .am-form-field, +.am-field-valid { border-color: #5eb95e !important; -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075); box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075); } -.am-form-success .am-form-field:focus { - background-color: #fafffe; +.am-form-success .am-form-field:focus, +.am-field-valid:focus { + background-color: #fefffe; border-color: #459f45; -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 5px #a5d8a5 !important; box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 5px #a5d8a5 !important; } -.am-form-success [class*="icon-"] { - color: #5eb95e; -} /* Horizontal forms */ .am-form-horizontal .am-form-label, .am-form-horizontal .am-radio, @@ -2728,9 +2841,9 @@ fieldset[disabled] .am-checkbox-inline { display: inline-table; vertical-align: middle; } - .am-form-inline .am-input-group .am-input-group-addon, + .am-form-inline .am-input-group .am-input-group-label, .am-form-inline .am-input-group .am-input-group-btn, - .am-form-inline .am-input-group .am-form-control { + .am-form-inline .am-input-group .am-form-label { width: auto; } .am-form-inline .am-input-group > .am-form-field { @@ -2753,9 +2866,6 @@ fieldset[disabled] .am-checkbox-inline { float: none; margin-left: 0; } - .am-form-inline .am-form-feedback .am-form-field-feedback { - top: 0; - } } /* Form field size */ .am-input-sm { @@ -2764,34 +2874,56 @@ fieldset[disabled] .am-checkbox-inline { .am-input-lg { font-size: 1.8rem !important; } +.am-form-group-sm .am-checkbox, +.am-form-group-sm .am-radio, +.am-form-group-sm .am-form-label, +.am-form-group-sm .am-form-field { + font-size: 1.4rem !important; +} +.am-form-group-lg .am-checkbox, +.am-form-group-lg .am-radio, +.am-form-group-lg .am-form-label, +.am-form-group-lg .am-form-field { + font-size: 1.8rem !important; +} +.am-form-group-lg input[type="radio"], +.am-form-group-lg input[type="checkbox"] { + margin-top: 7px; +} /* Form field feedback states */ .am-form-icon { position: relative; } .am-form-icon .am-form-field { - padding-left: 1.875em !important; + padding-left: 1.75em !important; } .am-form-icon [class*='am-icon-'] { position: absolute; - left: 0.625em; + left: 0.5em; top: 50%; display: block; - margin-top: -0.635em; + margin-top: -0.5em; line-height: 1; z-index: 2; } +.am-form-icon label ~ [class*='am-icon-'] { + top: 70%; +} /* Feedback Icon */ .am-form-feedback { position: relative; } .am-form-feedback .am-form-field { - padding-left: 0.625em !important; - padding-right: 1.875em !important; + padding-left: 0.5em !important; + padding-right: 1.75em !important; } .am-form-feedback [class*='am-icon-'] { - right: 0.625em; + right: 0.5em; left: auto; } +.am-form-horizontal .am-form-feedback [class*='am-icon-'] { + right: 1.6em; +} /* Form set */ .am-form-set { margin-bottom: 1.5rem; @@ -2821,19 +2953,23 @@ fieldset[disabled] .am-checkbox-inline { /* Image thumbnails */ .am-img-thumbnail { display: inline-block; + max-width: 100%; + height: auto; padding: 2px; line-height: 1.6; - background-color: #ffffff; - border: 1px solid #dddddd; + background-color: #fff; + border: 1px solid #ddd; border-radius: 2px; -webkit-transition: all 0.2s ease-in-out; - transition: all 0.2s ease-in-out; + transition: all 0.2s ease-in-out; } .am-img-thumbnail.am-radius { border-radius: 2px; } .am-img-responsive { display: block; + max-width: 100%; + height: auto; } /* ========================================================================== Component: Nav @@ -2875,7 +3011,7 @@ fieldset[disabled] .am-checkbox-inline { .am-nav > li.am-active > a, .am-nav > li.am-active > a:hover, .am-nav > li.am-active > a:focus { - color: #ffffff; + color: #fff; background-color: #0e90d2; cursor: default; } @@ -2910,7 +3046,7 @@ fieldset[disabled] .am-checkbox-inline { margin-top: 0; } .am-nav-tabs { - border-bottom: 1px solid #dddddd; + border-bottom: 1px solid #ddd; } .am-nav-tabs > li { float: left; @@ -2926,55 +3062,49 @@ fieldset[disabled] .am-checkbox-inline { border-radius: 2px 2px 0 0; } .am-nav-tabs > li > a:hover { - border-color: #eeeeee #eeeeee #dddddd; + border-color: #eeeeee #eeeeee #ddd; } .am-nav-tabs > li.am-active > a, .am-nav-tabs > li.am-active > a:hover, .am-nav-tabs > li.am-active > a:focus { color: #555555; - background-color: #ffffff; - border: 1px solid #dddddd; + background-color: #fff; + border: 1px solid #ddd; border-bottom-color: transparent; cursor: default; } .am-nav-tabs.am-nav-justify { - border-bottom: 0 + border-bottom: 0; /* > li > a { - margin-right: 0; - border-radius: @global-radius; - } - - > .am-active > a { - &, - &:hover, - &:focus { - border: 1px solid @nav-tabs-justify-link-border-color; + margin-right: 0; + border-radius: @global-radius; } - }*/ + + > .am-active > a { + &, + &:hover, + &:focus { + border: 1px solid @nav-tabs-justify-link-border-color; + } + }*/ } .am-nav-tabs.am-nav-justify > li > a { margin-right: 0; - border-bottom: 1px solid #dddddd; + border-bottom: 1px solid #ddd; border-radius: 2px 2px 0 0; } .am-nav-tabs.am-nav-justify > .am-active > a, .am-nav-tabs.am-nav-justify > .am-active > a:hover, .am-nav-tabs.am-nav-justify > .am-active > a:focus { - border-bottom-color: #ffffff; + border-bottom-color: #fff; } .am-nav-justify { width: 100%; - display: -webkit-box; - display: -webkit-flex; - display: -ms-flexbox; - display: flex; } .am-nav-justify > li { float: none; - -webkit-box-flex: 1; - -webkit-flex: 1; - -ms-flex: 1; - flex: 1; + display: table-cell; + width: 1%; } .am-nav-justify > li > a { text-align: center; @@ -2994,8 +3124,8 @@ fieldset[disabled] .am-checkbox-inline { background: #f8f8f8; border-width: 0 0 1px; border-style: solid; - border-color: #dddddd; - color: #666666; + border-color: #ddd; + color: #666; } .am-topbar:before, .am-topbar:after { @@ -3006,7 +3136,7 @@ fieldset[disabled] .am-checkbox-inline { clear: both; } .am-topbar a { - color: #666666; + color: #666; } .am-topbar-brand { margin: 0; @@ -3112,12 +3242,12 @@ fieldset[disabled] .am-checkbox-inline { -ms-transform: rotate(360deg); transform: rotate(360deg); opacity: 0; - -webkit-transition: opacity 0.1s; - transition: opacity 0.1s; + -webkit-transition: opacity .1s; + transition: opacity .1s; } .am-topbar-nav > li > a:hover:after { opacity: 1; - border-bottom-color: #666666; + border-bottom-color: #666; } .am-topbar-nav > li.am-dropdown > a:after { display: none; @@ -3183,11 +3313,11 @@ fieldset[disabled] .am-checkbox-inline { color: #eeeeee; } .am-topbar-inverse .am-topbar-brand a { - color: #ffffff; + color: #fff; } .am-topbar-inverse .am-topbar-brand a:hover, .am-topbar-inverse .am-topbar-brand a:focus { - color: #ffffff; + color: #fff; background-color: transparent; } .am-topbar-inverse .am-topbar-nav > li > a { @@ -3195,7 +3325,7 @@ fieldset[disabled] .am-checkbox-inline { } .am-topbar-inverse .am-topbar-nav > li > a:hover, .am-topbar-inverse .am-topbar-nav > li > a:focus { - color: #ffffff; + color: #fff; background-color: rgba(0, 0, 0, 0.05); } .am-topbar-inverse .am-topbar-nav > li > a:hover:after, @@ -3208,18 +3338,18 @@ fieldset[disabled] .am-checkbox-inline { .am-topbar-inverse .am-topbar-nav > li.am-active > a, .am-topbar-inverse .am-topbar-nav > li.am-active > a:hover, .am-topbar-inverse .am-topbar-nav > li.am-active > a:focus { - color: #ffffff; + color: #fff; background-color: rgba(0, 0, 0, 0.1); } .am-topbar-inverse .am-topbar-nav > li.am-active > a:after, .am-topbar-inverse .am-topbar-nav > li.am-active > a:hover:after, .am-topbar-inverse .am-topbar-nav > li.am-active > a:focus:after { - border-bottom-color: #ffffff; + border-bottom-color: #fff; } .am-topbar-inverse .am-topbar-nav > li .disabled > a, .am-topbar-inverse .am-topbar-nav > li .disabled > a:hover, .am-topbar-inverse .am-topbar-nav > li .disabled > a:focus { - color: #444444; + color: #444; background-color: transparent; } .am-topbar-fixed-top, @@ -3229,8 +3359,7 @@ fieldset[disabled] .am-checkbox-inline { left: 0; z-index: 1000; -webkit-transform: translate3d(0, 0, 0); - -ms-transform: translate3d(0, 0, 0); - transform: translate3d(0, 0, 0); + transform: translate3d(0, 0, 0); } .am-topbar-fixed-top { top: 0; @@ -3280,9 +3409,9 @@ fieldset[disabled] .am-checkbox-inline { margin-right: 5px; } .am-breadcrumb > li + li:before { - content: "»\00a0"; + content: "\00bb\00a0"; padding: 0 8px; - color: #cccccc; + color: #ccc; } .am-breadcrumb > .am-active { color: #999999; @@ -3318,8 +3447,8 @@ fieldset[disabled] .am-checkbox-inline { padding: 0.5em 1em; text-decoration: none; line-height: 1.2; - background-color: #ffffff; - border: 1px solid #dddddd; + background-color: #fff; + border: 1px solid #ddd; border-radius: 2px; margin-bottom: 5px; margin-right: 5px; @@ -3341,7 +3470,7 @@ fieldset[disabled] .am-checkbox-inline { .am-pagination > .am-active > a:focus, .am-pagination > .am-active > span:focus { z-index: 2; - color: #ffffff; + color: #fff; background-color: #0e90d2; border-color: #0e90d2; cursor: default; @@ -3353,8 +3482,8 @@ fieldset[disabled] .am-checkbox-inline { .am-pagination > .am-disabled > a:hover, .am-pagination > .am-disabled > a:focus { color: #999999; - background-color: #ffffff; - border-color: #dddddd; + background-color: #fff; + border-color: #ddd; cursor: not-allowed; pointer-events: none; } @@ -3459,6 +3588,30 @@ fieldset[disabled] .am-checkbox-inline { -webkit-animation-play-state: paused !important; animation-play-state: paused !important; } +.am-animation-delay-1 { + -webkit-animation-delay: 1s; + animation-delay: 1s; +} +.am-animation-delay-2 { + -webkit-animation-delay: 2s; + animation-delay: 2s; +} +.am-animation-delay-3 { + -webkit-animation-delay: 3s; + animation-delay: 3s; +} +.am-animation-delay-4 { + -webkit-animation-delay: 4s; + animation-delay: 4s; +} +.am-animation-delay-5 { + -webkit-animation-delay: 5s; + animation-delay: 5s; +} +.am-animation-delay-6 { + -webkit-animation-delay: 6s; + animation-delay: 6s; +} /* Keyframes ============================================================================ */ /* Fade */ @@ -3878,7 +4031,7 @@ fieldset[disabled] .am-checkbox-inline { } /* Sub-object `.@{ns}article-lead` */ .am-article-lead { - color: #666666; + color: #666; font-size: 1.4rem; line-height: 1.5; border: 1px solid #dedede; @@ -3898,6 +4051,10 @@ fieldset[disabled] .am-checkbox-inline { .am-article-bd blockquote { font-family: Georgia, "Times New Roman", Times, Kai, "Kaiti SC", KaiTi, BiauKai, "FontAwesome", serif; } +.am-article-bd img { + display: block; + max-width: 100%; +} /* ========================================================================== Component: Badge ============================================================================ */ @@ -3907,7 +4064,7 @@ fieldset[disabled] .am-checkbox-inline { padding: 0.25em 0.625em; font-size: 1.2rem; font-weight: bold; - color: #ffffff; + color: #fff; line-height: 1; vertical-align: baseline; white-space: nowrap; @@ -3918,12 +4075,6 @@ fieldset[disabled] .am-checkbox-inline { .am-badge:empty { display: none; } -a.am-badge:hover, -a.am-badge:focus { - color: #ffffff; - text-decoration: none; - cursor: pointer; -} .am-badge.am-square { border-radius: 0; } @@ -3933,6 +4084,12 @@ a.am-badge:focus { .am-badge.am-round { border-radius: 1000px; } +a.am-badge:hover, +a.am-badge:focus { + color: #fff; + text-decoration: none; + cursor: pointer; +} .am-badge-primary { background-color: #0e90d2; } @@ -3943,7 +4100,7 @@ a.am-badge:focus { background-color: #5eb95e; } .am-badge-warning { - background-color: #f37b1d; + background-color: #F37B1D; } .am-badge-danger { background-color: #dd514c; @@ -4151,16 +4308,16 @@ a.am-badge:focus { border-left-color: #f8f8f8; } .am-comment-warning .am-comment-avatar { - border-color: #f37b1d; + border-color: #F37B1D; } .am-comment-warning .am-comment-main { - border-color: #f37b1d; + border-color: #F37B1D; } .am-comment-warning .am-comment-main:before { - border-right-color: #f37b1d; + border-right-color: #F37B1D; } .am-comment-warning.am-comment-flip .am-comment-main:before { - border-left-color: #f37b1d; + border-left-color: #F37B1D; border-right-color: transparent; } .am-comment-warning.am-comment-flip .am-comment-main:after { @@ -4343,20 +4500,17 @@ a.am-badge:focus { border-top-left-radius: 0; } .am-btn-group-justify { + display: table; + table-layout: fixed; + border-collapse: separate; width: 100%; - display: -webkit-box; - display: -webkit-flex; - display: -ms-flexbox; - display: flex; } .am-btn-group-justify > .am-btn, .am-btn-group-justify > .am-btn-group { float: none; - -webkit-box-flex: 1; - -webkit-flex: 1; - -ms-flex: 1; - flex: 1; -} + display: table-cell; + width: 1%; +} .am-btn-group-justify > .am-btn-group .am-btn { width: 100%; } @@ -4392,7 +4546,9 @@ a.am-badge:focus { outline: 0; } [data-am-button] > .am-btn > input[type="radio"], -[data-am-button] > .am-btn > input[type="checkbox"] { +[data-am-button] > .am-btn > input[type="checkbox"], +.am-btn-group-check > .am-btn > input[type="radio"], +.am-btn-group-check > .am-btn > input[type="checkbox"] { position: absolute; z-index: -1; opacity: 0; @@ -4407,20 +4563,23 @@ a.am-badge:focus { font-size: 20px; font-weight: bold; line-height: 24px; - color: #000000; - text-shadow: 0 1px 0 #ffffff; + color: #000; + text-shadow: 0 1px 0 #fff; opacity: .2; -webkit-transition: all .3s; - transition: all .3s; + transition: all .3s; } .am-close:hover, .am-close:focus { - color: #000000; + color: #000; text-decoration: none; cursor: pointer; opacity: .5; outline: none; } +.am-close[class*="am-icon-"] { + font-size: 16px; +} button.am-close { padding: 0; cursor: pointer; @@ -4434,17 +4593,14 @@ a.am-close:hover { text-decoration: none; cursor: pointer; } -.am-close[class*="am-icon-"] { - font-size: 16px; -} /* Modifiers ============================================================================ */ .am-close-alt { border-radius: 50%; - background: #eeeeee; + background: #eee; opacity: 0.7; -webkit-box-shadow: 0 0 0 1px rgba(0, 0, 0, 0.25); - box-shadow: 0 0 0 1px rgba(0, 0, 0, 0.25) + box-shadow: 0 0 0 1px rgba(0, 0, 0, 0.25); /* Hover */ } .am-close-alt:hover, @@ -4463,8 +4619,8 @@ a.am-close:hover { ============================================================================= */ @font-face { font-family: 'FontAwesome'; - src: url('//dn-staticfile.qbox.me/font-awesome/4.2.0/fonts/fontawesome-webfont.eot?v=4.2.0'); - src: url('//dn-staticfile.qbox.me/font-awesome/4.2.0/fonts/fontawesome-webfont.eot?#iefix&v=4.2.0') format('embedded-opentype'), url('//dn-staticfile.qbox.me/font-awesome/4.2.0/fonts/fontawesome-webfont.woff?v=4.2.0') format('woff'), url('//dn-staticfile.qbox.me/font-awesome/4.2.0/fonts/fontawesome-webfont.ttf?v=4.2.0') format('truetype'), url('//dn-staticfile.qbox.me/font-awesome/4.2.0/fonts/fontawesome-webfont.svg?v=4.2.0#fontawesomeregular') format('svg'); + src: url('../fonts/fontawesome-webfont.eot?v=4.6.3'); + src: url('../fonts/fontawesome-webfont.eot?#iefix&v=4.6.3') format('embedded-opentype'), url('../fonts/fontawesome-webfont.woff2?v=4.6.3') format('woff2'), url('../fonts/fontawesome-webfont.woff?v=4.6.3') format('woff'), url('../fonts/fontawesome-webfont.ttf?v=4.6.3') format('truetype'); font-weight: normal; font-style: normal; } @@ -4472,20 +4628,26 @@ a.am-close:hover { ============================================================================= */ [class*="am-icon-"] { display: inline-block; + font-style: normal; } [class*="am-icon-"]:before { display: inline-block; - font-family: "FontAwesome", sans-serif; - font-weight: normal; - font-style: normal; - vertical-align: baseline; - line-height: 1; + font: normal normal normal 1.6rem/1 "FontAwesome", sans-serif; + /*font-weight: normal; // 2 + font-style: normal; // 2 + vertical-align: baseline; // 3 + line-height: 1; // 4*/ + font-size: inherit; + text-rendering: auto; -webkit-font-smoothing: antialiased; -moz-osx-font-smoothing: grayscale; + -webkit-transform: translate(0, 0); + -ms-transform: translate(0, 0); + transform: translate(0, 0); } .am-icon-border { padding: .2em .25em .15em; - border: solid 0.08em #eeeeee; + border: solid 0.08em #eee; border-radius: .1em; } [class*="am-icon-"].am-fl { @@ -4510,16 +4672,16 @@ a.am-close:hover { ============================================================================= */ .am-icon-btn { -webkit-box-sizing: border-box; - box-sizing: border-box; + box-sizing: border-box; display: inline-block; width: 48px; height: 48px; font-size: 24px; line-height: 48px; border-radius: 50%; - background-color: #eeeeee; + background-color: #eee; color: #555555; - text-align: center + text-align: center; /** * Hover * 1. Apply hover style also to focus state @@ -4533,11 +4695,11 @@ a.am-close:hover { background-color: #f5f5f5; color: #333333; text-decoration: none; - outline: none + outline: none; /* 2 */ } .am-icon-btn:active { - background-color: #dddddd; + background-color: #ddd; color: #333333; } .am-icon-btn.am-primary, @@ -4545,7 +4707,7 @@ a.am-close:hover { .am-icon-btn.am-success, .am-icon-btn.am-warning, .am-icon-btn.am-danger { - color: #ffffff; + color: #fff; } .am-icon-btn.am-primary { background-color: #0e90d2; @@ -4557,7 +4719,7 @@ a.am-close:hover { background-color: #5eb95e; } .am-icon-btn.am-warning { - background-color: #f37b1d; + background-color: #F37B1D; } .am-icon-btn.am-danger { background-color: #dd514c; @@ -4574,6 +4736,12 @@ a.am-close:hover { font-size: 28px; line-height: 64px; } +/* Modifier: `.am-icon-fw` Fixed width +============================================================================= */ +.am-icon-fw { + width: 1.25em; + text-align: center; +} /* Icon mapping ============================================================================= */ .am-icon-glass:before { @@ -5023,6 +5191,7 @@ a.am-close:hover { .am-icon-twitter:before { content: "\f099"; } +.am-icon-facebook-f:before, .am-icon-facebook:before { content: "\f09a"; } @@ -5035,6 +5204,7 @@ a.am-close:hover { .am-icon-credit-card:before { content: "\f09d"; } +.am-icon-feed:before, .am-icon-rss:before { content: "\f09e"; } @@ -5672,7 +5842,8 @@ a.am-close:hover { .am-icon-male:before { content: "\f183"; } -.am-icon-gittip:before { +.am-icon-gittip:before, +.am-icon-gratipay:before { content: "\f184"; } .am-icon-sun-o:before { @@ -5776,7 +5947,7 @@ a.am-close:hover { .am-icon-digg:before { content: "\f1a6"; } -.am-icon-pied-piper:before { +.am-icon-pied-piper-pp:before { content: "\f1a7"; } .am-icon-pied-piper-alt:before { @@ -5902,6 +6073,7 @@ a.am-close:hover { content: "\f1ce"; } .am-icon-ra:before, +.am-icon-resistance:before, .am-icon-rebel:before { content: "\f1d0"; } @@ -5915,6 +6087,8 @@ a.am-close:hover { .am-icon-git:before { content: "\f1d3"; } +.am-icon-y-combinator-square:before, +.am-icon-yc-square:before, .am-icon-hacker-news:before { content: "\f1d4"; } @@ -6083,14 +6257,501 @@ a.am-close:hover { .am-icon-meanpath:before { content: "\f20c"; } +.am-icon-buysellads:before { + content: "\f20d"; +} +.am-icon-connectdevelop:before { + content: "\f20e"; +} +.am-icon-dashcube:before { + content: "\f210"; +} +.am-icon-forumbee:before { + content: "\f211"; +} +.am-icon-leanpub:before { + content: "\f212"; +} +.am-icon-sellsy:before { + content: "\f213"; +} +.am-icon-shirtsinbulk:before { + content: "\f214"; +} +.am-icon-simplybuilt:before { + content: "\f215"; +} +.am-icon-skyatlas:before { + content: "\f216"; +} +.am-icon-cart-plus:before { + content: "\f217"; +} +.am-icon-cart-arrow-down:before { + content: "\f218"; +} +.am-icon-diamond:before { + content: "\f219"; +} +.am-icon-ship:before { + content: "\f21a"; +} +.am-icon-user-secret:before { + content: "\f21b"; +} +.am-icon-motorcycle:before { + content: "\f21c"; +} +.am-icon-street-view:before { + content: "\f21d"; +} +.am-icon-heartbeat:before { + content: "\f21e"; +} +.am-icon-venus:before { + content: "\f221"; +} +.am-icon-mars:before { + content: "\f222"; +} +.am-icon-mercury:before { + content: "\f223"; +} +.am-icon-intersex:before, +.am-icon-transgender:before { + content: "\f224"; +} +.am-icon-transgender-alt:before { + content: "\f225"; +} +.am-icon-venus-double:before { + content: "\f226"; +} +.am-icon-mars-double:before { + content: "\f227"; +} +.am-icon-venus-mars:before { + content: "\f228"; +} +.am-icon-mars-stroke:before { + content: "\f229"; +} +.am-icon-mars-stroke-v:before { + content: "\f22a"; +} +.am-icon-mars-stroke-h:before { + content: "\f22b"; +} +.am-icon-neuter:before { + content: "\f22c"; +} +.am-icon-genderless:before { + content: "\f22d"; +} +.am-icon-facebook-official:before { + content: "\f230"; +} +.am-icon-pinterest-p:before { + content: "\f231"; +} +.am-icon-whatsapp:before { + content: "\f232"; +} +.am-icon-server:before { + content: "\f233"; +} +.am-icon-user-plus:before { + content: "\f234"; +} +.am-icon-user-times:before { + content: "\f235"; +} +.am-icon-hotel:before, +.am-icon-bed:before { + content: "\f236"; +} +.am-icon-viacoin:before { + content: "\f237"; +} +.am-icon-train:before { + content: "\f238"; +} +.am-icon-subway:before { + content: "\f239"; +} +.am-icon-medium:before { + content: "\f23a"; +} +.am-icon-yc:before, +.am-icon-y-combinator:before { + content: "\f23b"; +} +.am-icon-optin-monster:before { + content: "\f23c"; +} +.am-icon-opencart:before { + content: "\f23d"; +} +.am-icon-expeditedssl:before { + content: "\f23e"; +} +.am-icon-battery-4:before, +.am-icon-battery-full:before { + content: "\f240"; +} +.am-icon-battery-3:before, +.am-icon-battery-three-quarters:before { + content: "\f241"; +} +.am-icon-battery-2:before, +.am-icon-battery-half:before { + content: "\f242"; +} +.am-icon-battery-1:before, +.am-icon-battery-quarter:before { + content: "\f243"; +} +.am-icon-battery-0:before, +.am-icon-battery-empty:before { + content: "\f244"; +} +.am-icon-mouse-pointer:before { + content: "\f245"; +} +.am-icon-i-cursor:before { + content: "\f246"; +} +.am-icon-object-group:before { + content: "\f247"; +} +.am-icon-object-ungroup:before { + content: "\f248"; +} +.am-icon-sticky-note:before { + content: "\f249"; +} +.am-icon-sticky-note-o:before { + content: "\f24a"; +} +.am-icon-cc-jcb:before { + content: "\f24b"; +} +.am-icon-cc-diners-club:before { + content: "\f24c"; +} +.am-icon-clone:before { + content: "\f24d"; +} +.am-icon-balance-scale:before { + content: "\f24e"; +} +.am-icon-hourglass-o:before { + content: "\f250"; +} +.am-icon-hourglass-1:before, +.am-icon-hourglass-start:before { + content: "\f251"; +} +.am-icon-hourglass-2:before, +.am-icon-hourglass-half:before { + content: "\f252"; +} +.am-icon-hourglass-3:before, +.am-icon-hourglass-end:before { + content: "\f253"; +} +.am-icon-hourglass:before { + content: "\f254"; +} +.am-icon-hand-grab-o:before, +.am-icon-hand-rock-o:before { + content: "\f255"; +} +.am-icon-hand-stop-o:before, +.am-icon-hand-paper-o:before { + content: "\f256"; +} +.am-icon-hand-scissors-o:before { + content: "\f257"; +} +.am-icon-hand-lizard-o:before { + content: "\f258"; +} +.am-icon-hand-spock-o:before { + content: "\f259"; +} +.am-icon-hand-pointer-o:before { + content: "\f25a"; +} +.am-icon-hand-peace-o:before { + content: "\f25b"; +} +.am-icon-trademark:before { + content: "\f25c"; +} +.am-icon-registered:before { + content: "\f25d"; +} +.am-icon-creative-commons:before { + content: "\f25e"; +} +.am-icon-gg:before { + content: "\f260"; +} +.am-icon-gg-circle:before { + content: "\f261"; +} +.am-icon-tripadvisor:before { + content: "\f262"; +} +.am-icon-odnoklassniki:before { + content: "\f263"; +} +.am-icon-odnoklassniki-square:before { + content: "\f264"; +} +.am-icon-get-pocket:before { + content: "\f265"; +} +.am-icon-wikipedia-w:before { + content: "\f266"; +} +.am-icon-safari:before { + content: "\f267"; +} +.am-icon-chrome:before { + content: "\f268"; +} +.am-icon-firefox:before { + content: "\f269"; +} +.am-icon-opera:before { + content: "\f26a"; +} +.am-icon-internet-explorer:before { + content: "\f26b"; +} +.am-icon-tv:before, +.am-icon-television:before { + content: "\f26c"; +} +.am-icon-contao:before { + content: "\f26d"; +} +.am-icon-500px:before { + content: "\f26e"; +} +.am-icon-amazon:before { + content: "\f270"; +} +.am-icon-calendar-plus-o:before { + content: "\f271"; +} +.am-icon-calendar-minus-o:before { + content: "\f272"; +} +.am-icon-calendar-times-o:before { + content: "\f273"; +} +.am-icon-calendar-check-o:before { + content: "\f274"; +} +.am-icon-industry:before { + content: "\f275"; +} +.am-icon-map-pin:before { + content: "\f276"; +} +.am-icon-map-signs:before { + content: "\f277"; +} +.am-icon-map-o:before { + content: "\f278"; +} +.am-icon-map:before { + content: "\f279"; +} +.am-icon-commenting:before { + content: "\f27a"; +} +.am-icon-commenting-o:before { + content: "\f27b"; +} +.am-icon-houzz:before { + content: "\f27c"; +} +.am-icon-vimeo:before { + content: "\f27d"; +} +.am-icon-black-tie:before { + content: "\f27e"; +} +.am-icon-fonticons:before { + content: "\f280"; +} +.am-icon-reddit-alien:before { + content: "\f281"; +} +.am-icon-edge:before { + content: "\f282"; +} +.am-icon-credit-card-alt:before { + content: "\f283"; +} +.am-icon-codiepie:before { + content: "\f284"; +} +.am-icon-modx:before { + content: "\f285"; +} +.am-icon-fort-awesome:before { + content: "\f286"; +} +.am-icon-usb:before { + content: "\f287"; +} +.am-icon-product-hunt:before { + content: "\f288"; +} +.am-icon-mixcloud:before { + content: "\f289"; +} +.am-icon-scribd:before { + content: "\f28a"; +} +.am-icon-pause-circle:before { + content: "\f28b"; +} +.am-icon-pause-circle-o:before { + content: "\f28c"; +} +.am-icon-stop-circle:before { + content: "\f28d"; +} +.am-icon-stop-circle-o:before { + content: "\f28e"; +} +.am-icon-shopping-bag:before { + content: "\f290"; +} +.am-icon-shopping-basket:before { + content: "\f291"; +} +.am-icon-hashtag:before { + content: "\f292"; +} +.am-icon-bluetooth:before { + content: "\f293"; +} +.am-icon-bluetooth-b:before { + content: "\f294"; +} +.am-icon-percent:before { + content: "\f295"; +} +.am-icon-gitlab:before { + content: "\f296"; +} +.am-icon-wpbeginner:before { + content: "\f297"; +} +.am-icon-wpforms:before { + content: "\f298"; +} +.am-icon-envira:before { + content: "\f299"; +} +.am-icon-universal-access:before { + content: "\f29a"; +} +.am-icon-wheelchair-alt:before { + content: "\f29b"; +} +.am-icon-question-circle-o:before { + content: "\f29c"; +} +.am-icon-blind:before { + content: "\f29d"; +} +.am-icon-audio-description:before { + content: "\f29e"; +} +.am-icon-volume-control-phone:before { + content: "\f2a0"; +} +.am-icon-braille:before { + content: "\f2a1"; +} +.am-icon-assistive-listening-systems:before { + content: "\f2a2"; +} +.am-icon-asl-interpreting:before, +.am-icon-american-sign-language-interpreting:before { + content: "\f2a3"; +} +.am-icon-deafness:before, +.am-icon-hard-of-hearing:before, +.am-icon-deaf:before { + content: "\f2a4"; +} +.am-icon-glide:before { + content: "\f2a5"; +} +.am-icon-glide-g:before { + content: "\f2a6"; +} +.am-icon-signing:before, +.am-icon-sign-language:before { + content: "\f2a7"; +} +.am-icon-low-vision:before { + content: "\f2a8"; +} +.am-icon-viadeo:before { + content: "\f2a9"; +} +.am-icon-viadeo-square:before { + content: "\f2aa"; +} +.am-icon-snapchat:before { + content: "\f2ab"; +} +.am-icon-snapchat-ghost:before { + content: "\f2ac"; +} +.am-icon-snapchat-square:before { + content: "\f2ad"; +} +.am-icon-pied-piper:before { + content: "\f2ae"; +} +.am-icon-first-order:before { + content: "\f2b0"; +} +.am-icon-yoast:before { + content: "\f2b1"; +} +.am-icon-themeisle:before { + content: "\f2b2"; +} +.am-icon-google-plus-circle:before, +.am-icon-google-plus-official:before { + content: "\f2b3"; +} +.am-icon-fa:before, +.am-icon-font-awesome:before { + content: "\f2b4"; +} /* Modifier: `am-icon-spin` ============================================================================= */ @-webkit-keyframes icon-spin { 0% { -webkit-transform: rotate(0deg); + transform: rotate(0deg); } 100% { -webkit-transform: rotate(359deg); + transform: rotate(359deg); } } @keyframes icon-spin { @@ -6105,7 +6766,11 @@ a.am-close:hover { } .am-icon-spin { -webkit-animation: icon-spin 2s infinite linear; - animation: icon-spin 2s infinite linear; + animation: icon-spin 2s infinite linear; +} +.am-icon-pulse { + -webkit-animation: icon-spin 1s infinite steps(8); + animation: icon-spin 1s infinite steps(8); } .am-icon-ul { padding-left: 0; @@ -6130,11 +6795,6 @@ a.am-close:hover { display: table; border-collapse: separate; } -.am-input-group[class*="col-"] { - float: none; - padding-left: 0; - padding-right: 0; -} .am-input-group .am-form-field { position: relative; z-index: 2; @@ -6159,14 +6819,15 @@ a.am-close:hover { vertical-align: middle; } .am-input-group-label { - padding: 0.625em 1em; + height: 38px; + padding: 0 1em; font-size: 1.6rem; font-weight: normal; - line-height: 1.2; + line-height: 36px; color: #555555; text-align: center; background-color: #eeeeee; - border: 1px solid #cccccc; + border: 1px solid #ccc; border-radius: 2px; } .am-input-group-label input[type="radio"], @@ -6206,7 +6867,7 @@ a.am-close:hover { } .am-input-group-btn > .am-btn { position: relative; - border-color: #cccccc; + border-color: #ccc; } .am-input-group-btn > .am-btn + .am-btn { margin-left: -1px; @@ -6224,61 +6885,72 @@ a.am-close:hover { .am-input-group-btn:last-child > .am-btn-group { margin-left: -1px; } +.am-input-group .am-form-field, +.am-input-group-btn > .am-btn { + height: 38px; + padding-bottom: auto; +} .am-input-group-lg > .am-form-field, .am-input-group-lg > .am-input-group-label, .am-input-group-lg > .am-input-group-btn > .am-btn { - padding: 12px 18px !important; + height: 42px; font-size: 1.8rem !important; } +.am-input-group-lg > .am-input-group-label { + line-height: 40px; +} .am-input-group-sm > .am-form-field, .am-input-group-sm > .am-input-group-label, .am-input-group-sm > .am-input-group-btn > .am-btn { - padding: 9px 14.000000000000002px !important; + height: 33px; font-size: 1.4rem !important; } +.am-input-group-sm > .am-input-group-label { + line-height: 31px; +} .am-input-group-primary .am-input-group-label { background: #0e90d2; - color: #ffffff; + color: #fff; } .am-input-group-primary .am-input-group-label, .am-input-group-primary .am-input-group-btn > .am-btn, -.am-input-group-primary .am-form-field { +.am-input-group-primary.am-input-group .am-form-field { border-color: #0e90d2; } -.am-input-group-seconday .am-input-group-label { +.am-input-group-secondary .am-input-group-label { background: #3bb4f2; - color: #ffffff; + color: #fff; } -.am-input-group-seconday .am-input-group-label, -.am-input-group-seconday .am-input-group-btn > .am-btn, -.am-input-group-seconday .am-form-field { +.am-input-group-secondary .am-input-group-label, +.am-input-group-secondary .am-input-group-btn > .am-btn, +.am-input-group-secondary.am-input-group .am-form-field { border-color: #3bb4f2; } .am-input-group-success .am-input-group-label { background: #5eb95e; - color: #ffffff; + color: #fff; } .am-input-group-success .am-input-group-label, .am-input-group-success .am-input-group-btn > .am-btn, -.am-input-group-success .am-form-field { +.am-input-group-success.am-input-group .am-form-field { border-color: #5eb95e; } .am-input-group-warning .am-input-group-label { - background: #f37b1d; - color: #ffffff; + background: #F37B1D; + color: #fff; } .am-input-group-warning .am-input-group-label, .am-input-group-warning .am-input-group-btn > .am-btn, -.am-input-group-warning .am-form-field { - border-color: #f37b1d; +.am-input-group-warning.am-input-group .am-form-field { + border-color: #F37B1D; } .am-input-group-danger .am-input-group-label { background: #dd514c; - color: #ffffff; + color: #fff; } .am-input-group-danger .am-input-group-label, .am-input-group-danger .am-input-group-btn > .am-btn, -.am-input-group-danger .am-form-field { +.am-input-group-danger.am-input-group .am-form-field { border-color: #dd514c; } /* ========================================================================== @@ -6292,7 +6964,7 @@ a.am-close:hover { position: relative; display: block; margin-bottom: -1px; - background-color: #ffffff; + background-color: #fff; border: 1px solid #dedede; border-width: 1px 0; } @@ -6304,7 +6976,7 @@ a.am-close:hover { .am-list > li > a.am-active:hover, .am-list > li > a.am-active:focus { z-index: 2; - color: #ffffff; + color: #fff; background-color: #0e90d2; border-color: #0e90d2; } @@ -6332,25 +7004,33 @@ a.am-close:hover { padding: 1rem; } /* with border */ -.am-list-border > li { +.am-list-border > li, +.am-list-bordered > li { border-width: 1px; } .am-list-border > li:first-child, -.am-list-border > li:first-child > a { +.am-list-bordered > li:first-child, +.am-list-border > li:first-child > a, +.am-list-bordered > li:first-child > a { border-top-right-radius: 2px; border-top-left-radius: 2px; } .am-list-border > li:last-child, -.am-list-border > li:last-child > a { +.am-list-bordered > li:last-child, +.am-list-border > li:last-child > a, +.am-list-bordered > li:last-child > a { margin-bottom: 0; border-bottom-right-radius: 2px; border-bottom-left-radius: 2px; } -.am-list-border > li > a { +.am-list-border > li > a, +.am-list-bordered > li > a { padding: 1rem; } .am-list-border > li > a:hover, -.am-list-border > li > a:focus { +.am-list-bordered > li > a:hover, +.am-list-border > li > a:focus, +.am-list-bordered > li > a:focus { background-color: #f5f5f5; } /* Striped */ @@ -6371,7 +7051,7 @@ a.am-close:hover { ============================================================================ */ .am-panel { margin-bottom: 20px; - background-color: #ffffff; + background-color: #fff; border: 1px solid transparent; border-radius: 2px; -webkit-box-shadow: 0 1px 1px rgba(0, 0, 0, 0.05); @@ -6400,29 +7080,29 @@ a.am-close:hover { .am-panel-footer { padding: 0.6rem 1.25rem; background-color: #f5f5f5; - border-top: 1px solid #dddddd; + border-top: 1px solid #ddd; border-bottom-right-radius: 2px; border-bottom-left-radius: 2px; } .am-panel-default { - border-color: #dddddd; + border-color: #ddd; } .am-panel-default > .am-panel-hd { - color: #444444; + color: #444; background-color: #f5f5f5; - border-color: #dddddd; + border-color: #ddd; } .am-panel-default > .am-panel-hd + .am-panel-collapse > .am-panel-bd { - border-top-color: #dddddd; + border-top-color: #ddd; } .am-panel-default > .am-panel-footer + .am-panel-collapse > .am-panel-bd { - border-bottom-color: #dddddd; + border-bottom-color: #ddd; } .am-panel-primary { border-color: #10a0ea; } .am-panel-primary > .am-panel-hd { - color: #ffffff; + color: #fff; background-color: #0e90d2; border-color: #10a0ea; } @@ -6464,7 +7144,7 @@ a.am-close:hover { border-color: #fbd0ae; } .am-panel-warning > .am-panel-hd { - color: #f37b1d; + color: #F37B1D; background-color: rgba(243, 123, 29, 0.15); border-color: #fbd0ae; } @@ -6524,7 +7204,7 @@ a.am-close:hover { border-bottom-right-radius: 2px; } .am-panel > .am-panel-bd + .am-table { - border-top: 1px solid #dddddd; + border-top: 1px solid #ddd; } .am-panel > .am-table > tbody:first-child > tr:first-child th, .am-panel > .am-table > tbody:first-child > tr:first-child td { @@ -6588,13 +7268,13 @@ a.am-close:hover { border-bottom: 0; } .am-panel-group .am-panel-hd + .am-panel-collapse .am-panel-bd { - border-top: 1px solid #dddddd; + border-top: 1px solid #ddd; } .am-panel-group .am-panel-footer { border-top: 0; } .am-panel-group .am-panel-footer + .am-panel-collapse .am-panel-bd { - border-bottom: 1px solid #dddddd; + border-bottom: 1px solid #ddd; } /* ========================================================================== Component: Progress @@ -6633,13 +7313,13 @@ a.am-close:hover { height: 100%; font-size: 1.2rem; line-height: 2rem; - color: #ffffff; + color: #fff; text-align: center; background-color: #0e90d2; -webkit-box-shadow: inset 0 -1px 0 rgba(0, 0, 0, 0.15); box-shadow: inset 0 -1px 0 rgba(0, 0, 0, 0.15); -webkit-transition: width .6s ease; - transition: width .6s ease; + transition: width .6s ease; } .am-progress-striped .am-progress-bar { background-image: -webkit-gradient(linear, 0 100%, 100% 0, color-stop(0.25, rgba(255, 255, 255, 0.15)), color-stop(0.25, transparent), color-stop(0.5, transparent), color-stop(0.5, rgba(255, 255, 255, 0.15)), color-stop(0.75, rgba(255, 255, 255, 0.15)), color-stop(0.75, transparent), to(transparent)); @@ -6680,7 +7360,7 @@ a.am-close:hover { background-image: linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent); } .am-progress-bar-warning { - background-color: #f37b1d; + background-color: #F37B1D; } .am-progress-striped .am-progress-bar-warning { background-image: -webkit-gradient(linear, 0 100%, 100% 0, color-stop(0.25, rgba(255, 255, 255, 0.15)), color-stop(0.25, transparent), color-stop(0.5, transparent), color-stop(0.5, rgba(255, 255, 255, 0.15)), color-stop(0.75, rgba(255, 255, 255, 0.15)), color-stop(0.75, transparent), to(transparent)); @@ -6708,11 +7388,11 @@ a.am-close:hover { display: block; padding: 2px; margin-bottom: 2rem; - background-color: #ffffff; - border: 1px solid #dddddd; + background-color: #fff; + border: 1px solid #ddd; border-radius: 2px; -webkit-transition: all 0.2s ease-in-out; - transition: all 0.2s ease-in-out; + transition: all 0.2s ease-in-out; } .am-thumbnail > img, .am-thumbnail a > img { @@ -6720,17 +7400,23 @@ a.am-close:hover { margin-right: auto; display: block; } -a.am-thumbnail:hover, -a.am-thumbnail:focus, -a.am-thumbnail.active { +.am-thumbnail a.am-thumbnail:hover, +.am-thumbnail a.am-thumbnail:focus, +.am-thumbnail a.am-thumbnail.active { border-color: #0e90d2; - background-color: #ffffff; + background-color: #fff; +} +img.am-thumbnail, +.am-thumbnail > img, +.am-thumbnail a > img { + max-width: 100%; + height: auto; } /* Image caption */ .am-thumbnail-caption { margin: 0; padding: 0.8rem; - color: #333333; + color: #333; font-weight: normal; } .am-thumbnail-caption *:last-child { @@ -6851,6 +7537,9 @@ a.am-thumbnail.active { .am-margin { margin: 1.6rem; } +.am-margin-0 { + margin: 0!important; +} .am-margin-xs { margin: 0.5rem; } @@ -6867,6 +7556,10 @@ a.am-thumbnail.active { margin-left: 1.6rem; margin-right: 1.6rem; } +.am-margin-horizontal-0 { + margin-left: 0!important; + margin-right: 0!important; +} .am-margin-horizontal-xs { margin-left: 0.5rem; margin-right: 0.5rem; @@ -6887,6 +7580,10 @@ a.am-thumbnail.active { margin-top: 1.6rem; margin-bottom: 1.6rem; } +.am-margin-vertical-0 { + margin-top: 0!important; + margin-bottom: 0!important; +} .am-margin-vertical-xs { margin-top: 0.5rem; margin-bottom: 0.5rem; @@ -6906,6 +7603,9 @@ a.am-thumbnail.active { .am-margin-top { margin-top: 1.6rem; } +.am-margin-top-0 { + margin-top: 0!important; +} .am-margin-top-xs { margin-top: 0.5rem; } @@ -6921,6 +7621,9 @@ a.am-thumbnail.active { .am-margin-bottom { margin-bottom: 1.6rem; } +.am-margin-bottom-0 { + margin-bottom: 0!important; +} .am-margin-bottom-xs { margin-bottom: 0.5rem; } @@ -6936,6 +7639,9 @@ a.am-thumbnail.active { .am-margin-left { margin-left: 1.6rem; } +.am-margin-left-0 { + margin-left: 0!important; +} .am-margin-left-xs { margin-left: 0.5rem; } @@ -6951,6 +7657,9 @@ a.am-thumbnail.active { .am-margin-right { margin-right: 1.6rem; } +.am-margin-right-0 { + margin-right: 0!important; +} .am-margin-right-xs { margin-right: 0.5rem; } @@ -6967,6 +7676,9 @@ a.am-thumbnail.active { .am-padding { padding: 1.6rem; } +.am-padding-0 { + padding: 0!important; +} .am-padding-xs { padding: 0.5rem; } @@ -6983,6 +7695,10 @@ a.am-thumbnail.active { padding-left: 1.6rem; padding-right: 1.6rem; } +.am-padding-horizontal-0 { + padding-left: 0!important; + padding-right: 0!important; +} .am-padding-horizontal-xs { padding-left: 0.5rem; padding-right: 0.5rem; @@ -7003,6 +7719,10 @@ a.am-thumbnail.active { padding-top: 1.6rem; padding-bottom: 1.6rem; } +.am-padding-vertical-0 { + padding-top: 0!important; + padding-bottom: 0!important; +} .am-padding-vertical-xs { padding-top: 0.5rem; padding-bottom: 0.5rem; @@ -7022,6 +7742,9 @@ a.am-thumbnail.active { .am-padding-top { padding-top: 1.6rem; } +.am-padding-top-0 { + padding-top: 0!important; +} .am-padding-top-xs { padding-top: 0.5rem; } @@ -7037,6 +7760,9 @@ a.am-thumbnail.active { .am-padding-bottom { padding-bottom: 1.6rem; } +.am-padding-bottom-0 { + padding-bottom: 0!important; +} .am-padding-bottom-xs { padding-bottom: 0.5rem; } @@ -7052,6 +7778,9 @@ a.am-thumbnail.active { .am-padding-left { padding-left: 1.6rem; } +.am-padding-left-0 { + padding-left: 0!important; +} .am-padding-left-xs { padding-left: 0.5rem; } @@ -7067,6 +7796,9 @@ a.am-thumbnail.active { .am-padding-right { padding-right: 1.6rem; } +.am-padding-right-0 { + padding-right: 0!important; +} .am-padding-right-xs { padding-right: 0.5rem; } @@ -7109,6 +7841,89 @@ a.am-thumbnail.active { .am-hide-lg-down { display: none !important; } + /* table */ + table.am-show-sm-only, + table.am-show-sm-up, + table.am-show-sm, + table.am-show-sm-down, + table.am-hide-md-only, + table.am-hide-md-up, + table.am-hide-md, + table.am-show-md-down, + table.am-hide-lg-only, + table.am-hide-lg-up, + table.am-hide-lg, + table.am-show-lg-down { + display: table !important; + } + thead.am-show-sm-only, + thead.am-show-sm-up, + thead.am-show-sm, + thead.am-show-sm-down, + thead.am-hide-md-only, + thead.am-hide-md-up, + thead.am-hide-md, + thead.am-show-md-down, + thead.am-hide-lg-only, + thead.am-hide-lg-up, + thead.am-hide-lg, + thead.am-show-lg-down { + display: table-header-group !important; + } + tbody.am-show-sm-only, + tbody.am-show-sm-up, + tbody.am-show-sm, + tbody.am-show-sm-down, + tbody.am-hide-md-only, + tbody.am-hide-md-up, + tbody.am-hide-md, + tbody.am-show-md-down, + tbody.am-hide-lg-only, + tbody.am-hide-lg-up, + tbody.am-hide-lg, + tbody.am-show-lg-down { + display: table-row-group !important; + } + tr.am-show-sm-only, + tr.am-show-sm-up, + tr.am-show-sm, + tr.am-show-sm-down, + tr.am-hide-md-only, + tr.am-hide-md-up, + tr.am-hide-md, + tr.am-show-md-down, + tr.am-hide-lg-only, + tr.am-hide-lg-up, + tr.am-hide-lg, + tr.am-show-lg-down { + display: table-row !important; + } + th.am-show-sm-only, + td.am-show-sm-only, + th.am-show-sm-up, + td.am-show-sm-up, + th.am-show-sm, + td.am-show-sm, + th.am-show-sm-down, + td.am-show-sm-down, + th.am-hide-md-only, + td.am-hide-md-only, + th.am-hide-md-up, + td.am-hide-md-up, + th.am-hide-md, + td.am-hide-md, + th.am-show-md-down, + td.am-show-md-down, + th.am-hide-lg-only, + td.am-hide-lg-only, + th.am-hide-lg-up, + td.am-hide-lg-up, + th.am-hide-lg, + td.am-hide-lg, + th.am-show-lg-down, + td.am-show-lg-down { + display: table-cell !important; + } } /* medium displays */ @media only screen and (min-width:641px) { @@ -7140,6 +7955,88 @@ a.am-thumbnail.active { .am-hide-lg-down { display: none !important; } + table.am-hide-sm-only, + table.am-show-sm-up, + table.am-hide-sm, + table.am-hide-sm-down, + table.am-show-md-only, + table.am-show-md-up, + table.am-show-md, + table.am-show-md-down, + table.am-hide-lg-only, + table.am-hide-lg-up, + table.am-hide-lg, + table.am-show-lg-down { + display: table !important; + } + thead.am-hide-sm-only, + thead.am-show-sm-up, + thead.am-hide-sm, + thead.am-hide-sm-down, + thead.am-show-md-only, + thead.am-show-md-up, + thead.am-show-md, + thead.am-show-md-down, + thead.am-hide-lg-only, + thead.am-hide-lg-up, + thead.am-hide-lg, + thead.am-show-lg-down { + display: table-header-group !important; + } + tbody.am-hide-sm-only, + tbody.am-show-sm-up, + tbody.am-hide-sm, + tbody.am-hide-sm-down, + tbody.am-show-md-only, + tbody.am-show-md-up, + tbody.am-show-md, + tbody.am-show-md-down, + tbody.am-hide-lg-only, + tbody.am-hide-lg-up, + tbody.am-hide-lg, + tbody.am-show-lg-down { + display: table-row-group !important; + } + tr.am-hide-sm-only, + tr.am-show-sm-up, + tr.am-hide-sm, + tr.am-hide-sm-down, + tr.am-show-md-only, + tr.am-show-md-up, + tr.am-show-md, + tr.am-show-md-down, + tr.am-hide-lg-only, + tr.am-hide-lg-up, + tr.am-hide-lg, + tr.am-show-lg-down { + display: table-row !important; + } + th.am-hide-sm-only, + td.am-hide-sm-only, + th.am-show-sm-up, + td.am-show-sm-up, + th.am-hide-sm, + td.am-hide-sm, + th.am-hide-sm-down, + td.am-hide-sm-down, + th.am-show-md-only, + td.am-show-md-only, + th.am-show-md-up, + td.am-show-md-up, + th.am-show-md, + td.am-show-md, + th.am-show-md-down, + td.am-show-md-down, + th.am-hide-lg-only, + td.am-hide-lg-only, + th.am-hide-lg-up, + td.am-hide-lg-up, + th.am-hide-lg, + td.am-hide-lg, + th.am-show-lg-down, + td.am-show-lg-down { + display: table-cell !important; + } } /* large displays */ @media only screen and (min-width:1025px) { @@ -7171,6 +8068,88 @@ a.am-thumbnail.active { .am-hide-lg-down { display: none !important; } + table.am-hide-sm-only, + table.am-show-sm-up, + table.am-hide-sm, + table.am-hide-sm-down, + table.am-hide-md-only, + table.am-show-md-up, + table.am-hide-md, + table.am-hide-md-down, + table.am-show-lg-only, + table.am-show-lg-up, + table.am-show-lg, + table.am-show-lg-down { + display: table !important; + } + thead.am-hide-sm-only, + thead.am-show-sm-up, + thead.am-hide-sm, + thead.am-hide-sm-down, + thead.am-hide-md-only, + thead.am-show-md-up, + thead.am-hide-md, + thead.am-hide-md-down, + thead.am-show-lg-only, + thead.am-show-lg-up, + thead.am-show-lg, + thead.am-show-lg-down { + display: table-header-group !important; + } + tbody.am-hide-sm-only, + tbody.am-show-sm-up, + tbody.am-hide-sm, + tbody.am-hide-sm-down, + tbody.am-hide-md-only, + tbody.am-show-md-up, + tbody.am-hide-md, + tbody.am-hide-md-down, + tbody.am-show-lg-only, + tbody.am-show-lg-up, + tbody.am-show-lg, + tbody.am-show-lg-down { + display: table-row-group !important; + } + tr.am-hide-sm-only, + tr.am-show-sm-up, + tr.am-hide-sm, + tr.am-hide-sm-down, + tr.am-hide-md-only, + tr.am-show-md-up, + tr.am-hide-md, + tr.am-hide-md-down, + tr.am-show-lg-only, + tr.am-show-lg-up, + tr.am-show-lg, + tr.am-show-lg-down { + display: table-row !important; + } + th.am-hide-sm-only, + td.am-hide-sm-only, + th.am-show-sm-up, + td.am-show-sm-up, + th.am-hide-sm, + td.am-hide-sm, + th.am-hide-sm-down, + td.am-hide-sm-down, + th.am-hide-md-only, + td.am-hide-md-only, + th.am-show-md-up, + td.am-show-md-up, + th.am-hide-md, + td.am-hide-md, + th.am-hide-md-down, + td.am-hide-md-down, + th.am-show-lg-only, + td.am-show-lg-only, + th.am-show-lg-up, + td.am-show-lg-up, + th.am-show-lg, + td.am-show-lg, + th.am-show-lg-down, + td.am-show-lg-down { + display: table-cell !important; + } } @media only screen and (orientation: landscape) { .am-show-landscape, @@ -7214,7 +8193,7 @@ a.am-thumbnail.active { color: #5eb95e; } .am-text-warning { - color: #f37b1d; + color: #F37B1D; } .am-text-danger { color: #dd514c; @@ -7407,11 +8386,11 @@ a.am-thumbnail.active { border-width: 0 8px 8px; } .am-angle-up:before { - border-bottom-color: #dddddd; + border-bottom-color: #ddd; bottom: 0; } .am-angle-up:after { - border-bottom-color: #ffffff; + border-bottom-color: #fff; bottom: -1px; } .am-angle-down { @@ -7423,11 +8402,11 @@ a.am-thumbnail.active { border-width: 8px 8px 0; } .am-angle-down:before { - border-top-color: #dddddd; + border-top-color: #ddd; bottom: 0; } .am-angle-down:after { - border-top-color: #ffffff; + border-top-color: #fff; bottom: 1px; } .am-angle-left { @@ -7439,11 +8418,11 @@ a.am-thumbnail.active { border-width: 8px 8px 8px 0; } .am-angle-left:before { - border-right-color: #dddddd; + border-right-color: #ddd; left: 0; } .am-angle-left:after { - border-right-color: #ffffff; + border-right-color: #fff; left: 1px; } .am-angle-right { @@ -7455,26 +8434,26 @@ a.am-thumbnail.active { border-width: 8px 0 8px 8px; } .am-angle-right:before { - border-left-color: #dddddd; + border-left-color: #ddd; left: 0; } .am-angle-right:after { - border-left-color: #ffffff; + border-left-color: #fff; left: -1px; } /* ========================================================================== Component: Alert Plugin ============================================================================ */ .am-alert { - margin-bottom: 15px; - padding: 10px; + margin-bottom: 1em; + padding: 0.625em; background: #0e90d2; - color: #ffffff; + color: #fff; border: 1px solid #0c7cb5; border-radius: 2px; } .am-alert a { - color: #ffffff; + color: #fff; } .am-alert h1, .am-alert h2, @@ -7492,12 +8471,18 @@ a.am-thumbnail.active { } /* Add margin if adjacent element */ * + .am-alert { - margin-top: 15px; + margin-top: 1em; } /* Remove margin from the last-child */ .am-alert > :last-child { margin-bottom: 0; } +/* within am-form-group */ +.am-form-group .am-alert { + margin: 5px 0 0; + padding: 0.25em 0.625em; + font-size: 1.3rem; +} /* Close in alert */ .am-alert > .am-close:first-child { float: right; @@ -7516,17 +8501,17 @@ a.am-thumbnail.active { .am-alert-success { background-color: #5eb95e; border-color: #4bad4b; - color: #ffffff; + color: #fff; } .am-alert-warning { - background-color: #f37b1d; + background-color: #F37B1D; border-color: #e56c0c; - color: #ffffff; + color: #fff; } .am-alert-danger { background-color: #dd514c; border-color: #d83832; - color: #ffffff; + color: #fff; } .am-dropdown { position: relative; @@ -7546,8 +8531,9 @@ a.am-thumbnail.active { padding: 15px; margin: 9px 0 0; text-align: left; - background-color: #ffffff; - border: 1px solid #dddddd; + line-height: 1.6; + background-color: #fff; + border: 1px solid #ddd; border-radius: 2px; -webkit-background-clip: padding-box; background-clip: padding-box; @@ -7570,11 +8556,11 @@ a.am-thumbnail.active { border-width: 0 8px 8px; } .am-dropdown-content:before { - border-bottom-color: #dddddd; + border-bottom-color: #ddd; bottom: 0; } .am-dropdown-content:after { - border-bottom-color: #ffffff; + border-bottom-color: #fff; bottom: -1px; } .am-dropdown-content:before, @@ -7600,13 +8586,13 @@ a.am-thumbnail.active { .am-dropdown-up .am-dropdown-content:before, .am-dropdown-up .am-dropdown-content:after { border-bottom: none; - border-top: 8px solid #dddddd; + border-top: 8px solid #ddd; top: auto; bottom: -8px; } .am-dropdown-up .am-dropdown-content:after { bottom: -7px; - border-top-color: #ffffff; + border-top-color: #fff; } .am-dropdown-flip .am-dropdown-content { left: auto; @@ -7648,7 +8634,7 @@ ul.am-dropdown-content > li > a:focus { ul.am-dropdown-content > .am-active > a, ul.am-dropdown-content > .am-active > a:hover, ul.am-dropdown-content > .am-active > a:focus { - color: #ffffff; + color: #fff; text-decoration: none; outline: 0; background-color: #0e90d2; @@ -7754,13 +8740,11 @@ ul.am-dropdown-content > .am-disabled > a:focus { } .am-viewport { -webkit-transition: all 1s ease; - transition: all 1s ease; + transition: all 1s ease; } .am-slider-carousel li { margin-right: 5px; } -/* Direction Nav */ -/* Pause/Play */ .am-control-nav { position: absolute; } @@ -7772,8 +8756,73 @@ ul.am-dropdown-content > .am-disabled > a:focus { overflow: hidden; } .am-control-thumbs img { - -webkit-transition: opacity .1s; - transition: opacity .1s; + -webkit-transition: all 1s ease; + transition: all 1s ease; +} +.am-slider-slide .am-slides > li { + display: none; + position: relative; +} +@media all and (transform-3d), (-webkit-transform-3d) { + .am-slider-slide .am-slides > li { + -webkit-transition: -webkit-transform 0.6s ease-in-out; + transition: -webkit-transform 0.6s ease-in-out; + transition: transform 0.6s ease-in-out; + transition: transform 0.6s ease-in-out, -webkit-transform 0.6s ease-in-out; + -webkit-backface-visibility: hidden; + backface-visibility: hidden; + -webkit-perspective: 1000px; + perspective: 1000px; + } + .am-slider-slide .am-slides > li.next, + .am-slider-slide .am-slides > li.active.right { + -webkit-transform: translate3d(100%, 0, 0); + transform: translate3d(100%, 0, 0); + left: 0; + } + .am-slider-slide .am-slides > li.prev, + .am-slider-slide .am-slides > li.active.left { + -webkit-transform: translate3d(-100%, 0, 0); + transform: translate3d(-100%, 0, 0); + left: 0; + } + .am-slider-slide .am-slides > li.next.left, + .am-slider-slide .am-slides > li.prev.right, + .am-slider-slide .am-slides > li.active { + -webkit-transform: translate3d(0, 0, 0); + transform: translate3d(0, 0, 0); + left: 0; + } +} +.am-slider-slide .am-slides > .active, +.am-slider-slide .am-slides > .next, +.am-slider-slide .am-slides > .prev { + display: block; +} +.am-slider-slide .am-slides > .active { + left: 0; +} +.am-slider-slide .am-slides > .next, +.am-slider-slide .am-slides > .prev { + position: absolute; + top: 0; + width: 100%; +} +.am-slider-slide .am-slides > .next { + left: 100%; +} +.am-slider-slide .am-slides > .prev { + left: -100%; +} +.am-slider-slide .am-slides > .next.left, +.am-slider-slide .am-slides > .prev.right { + left: 0; +} +.am-slider-slide .am-slides > .active.left { + left: -100%; +} +.am-slider-slide .am-slides > .active.right { + left: 100%; } /** * Slider Theme: Default @@ -7783,7 +8832,7 @@ ul.am-dropdown-content > .am-disabled > a:focus { background-color: #fff; border-radius: 2px; -webkit-box-shadow: 0 0 2px rgba(0, 0, 0, 0.15); - box-shadow: 0 0 2px rgba(0, 0, 0, 0.15) + box-shadow: 0 0 2px rgba(0, 0, 0, 0.15); /* Direction Nav */ /* Pause/Play */ /* Control Nav */ @@ -7791,7 +8840,7 @@ ul.am-dropdown-content > .am-disabled > a:focus { .am-slider-default .am-viewport { max-height: 2000px; -webkit-transition: all 1s ease; - transition: all 1s ease; + transition: all 1s ease; } .loading .am-slider-default .am-viewport { max-height: 300px; @@ -7805,27 +8854,36 @@ ul.am-dropdown-content > .am-disabled > a:focus { z-index: 10; display: block; width: 36px; - height: 24px; - margin: -12px 0 0; + height: 36px; + margin: -18px 0 0; overflow: hidden; opacity: 0.45; cursor: pointer; color: rgba(0, 0, 0, 0.65); -webkit-transition: all .3s ease; - transition: all .3s ease; + transition: all .3s ease; } .am-slider-default .am-direction-nav a:before { - color: #333333; display: inline-block; - font-family: "FontAwesome", sans-serif; - font-weight: normal; - font-style: normal; - vertical-align: baseline; - line-height: 1; + font: normal normal normal 1.6rem/1 "FontAwesome", sans-serif; + /*font-weight: normal; // 2 + font-style: normal; // 2 + vertical-align: baseline; // 3 + line-height: 1; // 4*/ + font-size: inherit; + text-rendering: auto; -webkit-font-smoothing: antialiased; -moz-osx-font-smoothing: grayscale; + -webkit-transform: translate(0, 0); + -ms-transform: translate(0, 0); + transform: translate(0, 0); + width: 100%; + color: #333333; content: "\f137"; - font-size: 24px; + font-size: 24px!important; + text-align: center; + line-height: 36px!important; + height: 36px; } .am-slider-default .am-direction-nav a.am-next:before { content: "\f138"; @@ -7866,16 +8924,21 @@ ul.am-dropdown-content > .am-disabled > a:focus { z-index: 10; overflow: hidden; cursor: pointer; - color: #000000; + color: #000; } .am-slider-default .am-pauseplay a::before { - font-family: "FontAwesome", sans-serif; - font-weight: normal; - font-style: normal; - vertical-align: baseline; - line-height: 1; + font: normal normal normal 1.6rem/1 "FontAwesome", sans-serif; + /*font-weight: normal; // 2 + font-style: normal; // 2 + vertical-align: baseline; // 3 + line-height: 1; // 4*/ + font-size: inherit; + text-rendering: auto; -webkit-font-smoothing: antialiased; -moz-osx-font-smoothing: grayscale; + -webkit-transform: translate(0, 0); + -ms-transform: translate(0, 0); + transform: translate(0, 0); font-size: 20px; display: inline-block; content: "\f04c"; @@ -7892,7 +8955,7 @@ ul.am-dropdown-content > .am-disabled > a:focus { bottom: 0; padding: 10px; width: 100%; - color: #ffffff; + color: #fff; } .am-slider-default .am-control-nav { width: 100%; @@ -7939,6 +9002,7 @@ ul.am-dropdown-content > .am-disabled > a:focus { } .am-slider-default .am-control-thumbs img { width: 100%; + height: auto; display: block; opacity: .7; cursor: pointer; @@ -7950,55 +9014,87 @@ ul.am-dropdown-content > .am-disabled > a:focus { opacity: 1; cursor: default; } +.am-slider-default .am-control-thumbs i { + position: absolute; +} +/* +TODO: + 1. 动画应该放在 dialog 上,不再是整个 modal,涉及 JS 逻辑,需要统筹修改 + 2. modal 滚动条处理,是否需要添加一个滚动条宽度的水平 padding? +*/ /* ========================================================================== Component: Modal Plugin ============================================================================ */ .am-modal { - width: 270px; position: fixed; - display: none; + top: 0; + right: 0; + bottom: 0; + left: 0; z-index: 1110; - left: 50%; - margin-left: -135px; - margin-top: 0; - top: 50%; - text-align: center; - border-radius: 2px; + display: none; opacity: 0; - -webkit-transform: translate3d(0, 0, 0) scale(1.185); - transform: translate3d(0, 0, 0) scale(1.185); - -webkit-transition-property: -webkit-transform; - transition-property: transform; - -webkit-transition-duration: 300ms; - transition-duration: 300ms - /*@media @large-up { - width: @modal-lg; - margin-left: -@modal-lg/2; - }*/ + outline: 0; + text-align: center; + -webkit-transform: scale(1.185); + -ms-transform: scale(1.185); + transform: scale(1.185); + -webkit-transition-property: opacity, -webkit-transform; + transition-property: opacity, -webkit-transform; + transition-property: transform, opacity; + transition-property: transform, opacity, -webkit-transform; + -webkit-backface-visibility: hidden; + backface-visibility: hidden; + -webkit-perspective: 1000px; + perspective: 1000px; } .am-modal:focus { outline: 0; } .am-modal.am-modal-active { opacity: 1; - -webkit-transform: translate3d(0, 0, 0) scale(1); - transform: translate3d(0, 0, 0) scale(1); + -webkit-transition-duration: 300ms; + transition-duration: 300ms; + -webkit-transform: scale(1); + -ms-transform: scale(1); + transform: scale(1); + overflow-x: hidden; + overflow-y: auto; } .am-modal.am-modal-out { opacity: 0; z-index: 1109; - -webkit-transform: translate3d(0, 0, 0) scale(0.815); - transform: translate3d(0, 0, 0) scale(0.815); + -webkit-transition-duration: 300ms; + transition-duration: 300ms; + -webkit-transform: scale(0.815); + -ms-transform: scale(0.815); + transform: scale(0.815); } -@media only screen and (min-width:641px) { - .am-modal { - width: 540px; - margin-left: -270px; - } +.am-modal:before { + content: "\200B"; + display: inline-block; + height: 100%; + vertical-align: middle; } .am-modal-dialog { + position: relative; + display: inline-block; + vertical-align: middle; + margin-left: auto; + margin-right: auto; + width: 270px; + max-width: 100%; border-radius: 2px; background: #f8f8f8; + /*@media @large-up { + width: @modal-lg; + margin-left: -@modal-lg/2; + }*/ +} +@media only screen and (min-width:641px) { + .am-modal-dialog { + width: 540px; + } } .am-modal-hd { padding: 15px 10px 5px 10px; @@ -8110,13 +9206,18 @@ ul.am-dropdown-content > .am-disabled > a:focus { bottom: 0; z-index: 1110; width: 100%; + max-height: 100%; + overflow-x: hidden; + overflow-y: auto; text-align: center; border-radius: 2px; -webkit-transform: translateY(100%); -ms-transform: translateY(100%); transform: translateY(100%); -webkit-transition: -webkit-transform 300ms; - transition: transform 300ms; + transition: -webkit-transform 300ms; + transition: transform 300ms; + transition: transform 300ms, -webkit-transform 300ms; } .am-modal-actions.am-modal-active { -webkit-transform: translateY(0); @@ -8189,7 +9290,9 @@ ul.am-dropdown-content > .am-disabled > a:focus { display: none; overflow: hidden; -webkit-transition-property: -webkit-transform; - transition-property: transform; + transition-property: -webkit-transform; + transition-property: transform; + transition-property: transform, -webkit-transform; -webkit-transform: translateY(100%); -ms-transform: translateY(100%); transform: translateY(100%); @@ -8239,8 +9342,9 @@ ul.am-dropdown-content > .am-disabled > a:focus { -webkit-overflow-scrolling: touch; } .am-popup-hd { - position: fixed; + position: absolute; top: 0; + z-index: 1000; width: 100%; height: 43px; border-bottom: 1px solid #dedede; @@ -8266,7 +9370,7 @@ ul.am-dropdown-content > .am-disabled > a:focus { top: 8px; cursor: pointer; -webkit-transition: all 0.3s; - transition: all 0.3s; + transition: all 0.3s; color: #999999; } .am-popup-hd .am-close:hover { @@ -8308,7 +9412,7 @@ ul.am-dropdown-content > .am-disabled > a:focus { position: fixed; /* 1 */ -webkit-transition: margin-left 0.3s ease-in-out; - transition: margin-left 0.3s ease-in-out + transition: margin-left 0.3s ease-in-out; /* 2 */ } /* Sub-object .@{ns}offcanvas-bar */ @@ -8320,13 +9424,15 @@ ul.am-dropdown-content > .am-disabled > a:focus { z-index: 1091; width: 270px; max-width: 100%; - background: #333333; + background: #333; overflow-y: auto; /* scrollable */ -webkit-overflow-scrolling: touch; /* scrollable */ -webkit-transition: -webkit-transform 0.3s ease-in-out; - transition: transform 0.3s ease-in-out; + transition: -webkit-transform 0.3s ease-in-out; + transition: transform 0.3s ease-in-out; + transition: transform 0.3s ease-in-out, -webkit-transform 0.3s ease-in-out; -webkit-transform: translateX(-100%); -ms-transform: translateX(-100%); transform: translateX(-100%); @@ -8375,16 +9481,14 @@ ul.am-dropdown-content > .am-disabled > a:focus { margin: 0; border-radius: 2px; background: #333333; - color: #ffffff; + color: #fff; border: 1px solid #333333; display: none; - z-index: 1030; + font-size: 1.6rem; + z-index: 1150; opacity: 0; - -webkit-transform: none; - -ms-transform: none; - transform: none; -webkit-transition: opacity 300ms; - transition: opacity 300ms; + transition: opacity 300ms; } .am-popover.am-active { display: block !important; @@ -8393,14 +9497,11 @@ ul.am-dropdown-content > .am-disabled > a:focus { .am-popover-inner { position: relative; background: #333333; - padding: 10px; + padding: 8px; z-index: 110; - overflow: auto; - -webkit-overflow-scrolling: touch; } .am-popover-caret { position: absolute; - left: 5px; top: 0; z-index: 100; display: inline-block; @@ -8426,6 +9527,11 @@ ul.am-dropdown-content > .am-disabled > a:focus { .am-popover-bottom .am-popover-caret { top: -8px; } +.am-popover-top .am-popover-caret, +.am-popover-bottom .am-popover-caret { + left: 50%; + margin-left: -8px; +} .am-popover-left .am-popover-caret { top: auto; left: auto; @@ -8441,12 +9547,71 @@ ul.am-dropdown-content > .am-disabled > a:focus { -ms-transform: rotate(-90deg); transform: rotate(-90deg); } +.am-popover-left .am-popover-caret, +.am-popover-right .am-popover-caret { + top: 50%; + margin-top: -4px; +} +.am-popover-sm { + font-size: 1.4rem; +} +.am-popover-sm .am-popover-inner { + padding: 5px; +} +.am-popover-lg { + font-size: 1.8rem; +} +.am-popover-primary { + border-color: #0e90d2; +} +.am-popover-primary .am-popover-inner { + background: #0e90d2; +} +.am-popover-primary .am-popover-caret { + border-bottom-color: #0e90d2; +} +.am-popover-secondary { + border-color: #3bb4f2; +} +.am-popover-secondary .am-popover-inner { + background: #3bb4f2; +} +.am-popover-secondary .am-popover-caret { + border-bottom-color: #3bb4f2; +} +.am-popover-success { + border-color: #5eb95e; +} +.am-popover-success .am-popover-inner { + background: #5eb95e; +} +.am-popover-success .am-popover-caret { + border-bottom-color: #5eb95e; +} +.am-popover-warning { + border-color: #F37B1D; +} +.am-popover-warning .am-popover-inner { + background: #F37B1D; +} +.am-popover-warning .am-popover-caret { + border-bottom-color: #F37B1D; +} +.am-popover-danger { + border-color: #dd514c; +} +.am-popover-danger .am-popover-inner { + background: #dd514c; +} +.am-popover-danger .am-popover-caret { + border-bottom-color: #dd514c; +} /* ========================================================================== Component: Progress Plugin ============================================================================ */ #nprogress { /* Make clicks pass-through */ - pointer-events: none + pointer-events: none; /* Fancy blur effect */ } #nprogress .nprogress-bar { @@ -8520,7 +9685,15 @@ ul.am-dropdown-content > .am-disabled > a:focus { border-top: none; z-index: 100; -webkit-transition: height .3s; - transition: height .3s; + transition: height .3s; +} +.am-tabs-bd:before, +.am-tabs-bd:after { + content: " "; + display: table; +} +.am-tabs-bd:after { + clear: both; } .am-tabs-bd .am-tab-panel { position: absolute; @@ -8531,7 +9704,9 @@ ul.am-dropdown-content > .am-disabled > a:focus { padding: 10px 10px 15px; visibility: hidden; -webkit-transition: -webkit-transform 0.3s; - transition: transform 0.3s; + transition: -webkit-transform 0.3s; + transition: transform 0.3s; + transition: transform 0.3s, -webkit-transform 0.3s; -webkit-transform: translateX(-100%); -ms-transform: translateX(-100%); transform: translateX(-100%); @@ -8552,6 +9727,26 @@ ul.am-dropdown-content > .am-disabled > a:focus { -ms-transform: translateX(100%); transform: translateX(100%); } +.am-tabs-bd .am-tabs-bd { + border: none; +} +.am-tabs-bd-ofv { + overflow: visible; +} +.am-tabs-bd-ofv > .am-tab-panel { + display: none; +} +.am-tabs-bd-ofv > .am-tab-panel.am-active { + display: block; +} +.am-tabs-fade .am-tab-panel { + opacity: 0; + -webkit-transition: opacity .25s linear; + transition: opacity .25s linear; +} +.am-tabs-fade .am-tab-panel.am-in { + opacity: 1; +} /* ========================================================================== Component: Share Plugin ============================================================================ */ @@ -8667,13 +9862,16 @@ ul.am-dropdown-content > .am-disabled > a:focus { top: 0; bottom: 0; right: 0; + z-index: 1120; width: 100%; height: 100%; - z-index: 1120; background: rgba(0, 0, 0, 0.95); + display: none; overflow: hidden; - -webkit-transition: -webkit-transform .4s; - transition: transform .4s; + -webkit-transition: -webkit-transform .3s; + transition: -webkit-transform .3s; + transition: transform .3s; + transition: transform .3s, -webkit-transform .3s; -webkit-transform: translate(0, 100%); -ms-transform: translate(0, 100%); transform: translate(0, 100%); @@ -8713,7 +9911,7 @@ ul.am-dropdown-content > .am-disabled > a:focus { align-items: center; vertical-align: middle; -webkit-transition: all .3s linear; - transition: all .3s linear; + transition: all .3s linear; z-index: 100; visibility: hidden; } @@ -8724,10 +9922,9 @@ ul.am-dropdown-content > .am-disabled > a:focus { z-index: 109; } .am-pureview-slider li.am-pureview-slide-next { - transform: translate(100%, 0); - -webkit-transform: translate3d(100%, 0, 0); - -ms-transform: translate3d(100%, 0, 0); - transform: translate3d(100%, 0, 0); + -webkit-transform: translate(100%, 0); + -ms-transform: translate(100%, 0); + transform: translate(100%, 0); z-index: 109; } .am-pureview-slider li.am-active { @@ -8760,13 +9957,18 @@ ul.am-dropdown-content > .am-disabled > a:focus { } .am-pureview-slider .am-pinch-zoom:after { display: inline-block; - font-family: "FontAwesome", sans-serif; - font-weight: normal; - font-style: normal; - vertical-align: baseline; - line-height: 1; + font: normal normal normal 1.6rem/1 "FontAwesome", sans-serif; + /*font-weight: normal; // 2 + font-style: normal; // 2 + vertical-align: baseline; // 3 + line-height: 1; // 4*/ + font-size: inherit; + text-rendering: auto; -webkit-font-smoothing: antialiased; -moz-osx-font-smoothing: grayscale; + -webkit-transform: translate(0, 0); + -ms-transform: translate(0, 0); + transform: translate(0, 0); content: "\f110"; -webkit-animation: icon-spin 2s infinite linear; animation: icon-spin 2s infinite linear; @@ -8780,6 +9982,9 @@ ul.am-dropdown-content > .am-disabled > a:focus { margin-top: -12px; z-index: 1; } +.am-pureview-slider .am-pinch-zoom.am-pureview-loaded:after { + display: none; +} .am-pureview-slider img { position: relative; display: block; @@ -8788,8 +9993,8 @@ ul.am-dropdown-content > .am-disabled > a:focus { opacity: 0; z-index: 200; -webkit-user-drag: none; - -webkit-transition: opacity .15s linear; - transition: opacity .15s linear; + -webkit-transition: opacity 0.2s ease-in; + transition: opacity 0.2s ease-in; } .am-pureview-slider img.am-img-loaded { opacity: 1; @@ -8889,7 +10094,7 @@ ul.am-dropdown-content > .am-disabled > a:focus { font-size: 16px; } .am-pureview-actions a:hover { - color: #ffffff; + color: #fff; } .am-pureview-actions [data-am-toggle="share"] { left: auto; @@ -8899,7 +10104,7 @@ ul.am-dropdown-content > .am-disabled > a:focus { .am-pureview-actions { opacity: 0; -webkit-transition: all .15s; - transition: all .15s; + transition: all .15s; z-index: 1130; } .am-pureview-bar-active .am-pureview-bar, @@ -8939,9 +10144,6 @@ ul.am-dropdown-content > .am-disabled > a:focus { .am-pureview-active { overflow: hidden; } -/* ========================================================================== - Component: AddToHomeScreen Plugin - ============================================================================ */ .ath-viewport * { -webkit-box-sizing: border-box; box-sizing: border-box; @@ -8983,6 +10185,12 @@ ul.am-dropdown-content > .am-disabled > a:focus { line-height: 1.5em; text-align: center; } +.ath-container small { + font-size: 0.8em; + line-height: 1.3em; + display: block; + margin-top: 0.5em; +} .ath-ios.ath-phone { bottom: 1.8em; left: 50%; @@ -9001,8 +10209,9 @@ ul.am-dropdown-content > .am-disabled > a:focus { top: 1.8em; } .ath-android { - right: 1.5em; - top: 1.8em; + bottom: 1.8em; + left: 50%; + margin-left: -9em; } /* close icon */ .ath-container:before { @@ -9011,7 +10220,7 @@ ul.am-dropdown-content > .am-disabled > a:focus { display: block; float: right; margin: -0.7em -0.6em 0 0.5em; - background-image: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAIQAAACECAMAAABmmnOVAAAAA3NCSVQICAjb4U/gAAAACXBIWXMAAAeHAAAHhwFd+hRDAAAAGXRFWHRTb2Z0d2FyZQB3d3cuaW5rc2NhcGUub3Jnm+48GgAAAHVQTFRFAAAAOTk5MzMzOzs7Nzc3QUFBQEBAPz8/Pj4+QUFBQEBAPz8/Pj4+QUFBQEBAPz8/QUFBPj4+Pz8/Pz8/Pj4+Pz8/Pz8/Pz8/Pj4+Pz8/Pj4+Pz8/Pz8/Pz8/Pz8/Pz8/Pj4+Pz8/Pz8/Pz8/Pz8/QEBAPz8/n3QmjwAAACZ0Uk5TAAkKDQ4zODk6OzxBQkNERUusrbG0tba7vL3Excbu8fL19fb3+PgucqJgAAACqklEQVR42sXc23LCIBAGYKy2pgft0WpP2vTA+z9i0+goCZAs7O7P3oWZTL5ZYAh7sca0MXmYG3jM7yfu4/TV1jdow01tX6cdg4UrGoN1FNM3a+GK1nBSzPYGrOJgsPZt1hrerYUrjoa9wjHgFI7B2veZWVk3tpCdWm07H30y8+4AIhedPFj7cW7wioABrggawIqIAaroGbYXzlGCUvQNnc0IUgwaQIoRA0QxagAoCAZ1BcmgrCAaVBVkg6IiwaCmSDIoKRINKopkg4IiwyCuyDIIKzINoopsg6CCYRBTsAxCCqZBRLGo2RcrtkLAwFaIGJgKIQNLIWZgKAQN2QpRg1dKoCmEDVkKcUOGQsGQrFAxJCqUDEkKNUOCQtFAVqgaiAplg69YFDAQFADDqAJiGFGADI1iF1XADAOKvqHSLApHFFBDRAE2BBVwQ0BRwOApfn8LGDxFEcOQAmeIK5CGmAJrCCvQBq8A8r9Zrw08qp6irvAGs/zpIr4XBQxf3nQsyhvwipABrQgbsIqYAamIG3CKnqH+LKDoGXbVwD84zDB4E4AZ4IqgAayIGKCKqMGYS5RiwOArlgUMnuJrWcAAUYwaAAqCQV1BMigriAZVBdmgqEgwqCmSDEqKRIOKItmgoMgwiCv6hkvaa6KKTIOoItsgqGAYxBQsg5CCaRBRsA0CCgEDWyFiYCqEDCyFmIGhEDRkK0QNmQphQ5ZC3JChUDAkK1QMiQolQ5JCzZCguNUzkBV3P4oGokLZQFKoGwgKgGFUATGMKECGQQXMYMxVTAE0RBVQQ0QBNgQVcENI8QwoBo8cUiszWYPz4OVi3bQ9cBQoQ0exblsvTDZwg6PYHNo/tE0XmvVwa4BxWBentgtnL+A8HHPxcnYaaBRoQ6twDY3iEW5oFI8Hwx/QxSE448b+MwAAAABJRU5ErkJggg==); + background-image: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAIQAAACECAMAAABmmnOVAAAAdVBMVEUAAAA5OTkzMzM7Ozs3NzdBQUFAQEA/Pz8+Pj5BQUFAQEA/Pz8+Pj5BQUFAQEA/Pz9BQUE+Pj4/Pz8/Pz8+Pj4/Pz8/Pz8/Pz8+Pj4/Pz8+Pj4/Pz8/Pz8/Pz8/Pz8/Pz8+Pj4/Pz8/Pz8/Pz8/Pz9AQEA/Pz+fdCaPAAAAJnRSTlMACQoNDjM4OTo7PEFCQ0RFS6ytsbS1tru8vcTFxu7x8vX19vf4+C5yomAAAAJESURBVHgBvdzLTsJAGEfxr4C2KBcVkQsIDsK8/yPaqIsPzVlyzrKrX/5p0kkXEz81L23otc9NpIbbWia2YVLqdnhlqFlhGWpSDHe1aopsSIpRb8gK0dC3G30b9rVmhWZIimTICsvQtx/FsuYOrWHoDjX3Gu31gzJxdki934WrAIOsAIOsAIOiAMPhPsJTgKGN0BVsYIVsYIVpYIVpYIVpYIVpYIVpYIVpYIVpYIVlAIVgEBRs8BRs8BRs8BRs8BRs8BRs8BRs8BRTNmgKNngKNngKNngKNngKNhiKGxgiOlZoBlaYBlaYBlaYBlaYBlaYBlaYBlaYBlZIBlBMfQMrVAMr2KAqBENSHFHhGEABhi5CV6gGUKgGUKgGUKgGUFwuqgEUvoEVsoEVpoEUpgEUggF+gKTKY+h1fxSlC7/Z+RrxOQ3fcEoAPPHZBlaYBlaYBlaYBlZYBlYIhvLBCstw7PgM7hkiWOEZWGEaWGEaWGEaIsakEAysmHkGVpxmvoEVqoEVpoEVpoEVpoEVpoEVpoEVkoEVgkFQsEFSsEFQsGEcoSvY4CnY4CnY4CnY4CnY4CnY4CnY4CnY4CnY4CnY4CnY4CnY4CnY4CnY4CnY4CnY4CnY4CnY4CnmbNAUT2c2WAo2eAo2eAo2eAo2eAo2eArNEPFACjZ4CjZ4CjZ4CjaIird/rBvFH6llNCvewdli1URWCIakSIZesUaDoFg36dKFWk9zCZDei3TtwmCj7pC22AwikiIZPEU29IpFNliKxa/hC9DFITjQPYhcAAAAAElFTkSuQmCC); background-color: rgba(255, 255, 255, 0.8); -webkit-background-size: 50% 50%; background-size: 50%; @@ -9054,18 +10263,11 @@ ul.am-dropdown-content > .am-disabled > a:focus { text-indent: -9999em; overflow: hidden; } -.ath-android .ath-action-icon { - width: 1.2em; - height: 1.8em; - background-image: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADUAAADcBAMAAAAig/QJAAAAA3NCSVQICAjb4U/gAAAACXBIWXMAAFtDAABbQwH5xg68AAAAGXRFWHRTb2Z0d2FyZQB3d3cuaW5rc2NhcGUub3Jnm+48GgAAAB5QTFRFAAAA////cXFxaWlp////ZmZmnJycoaGhpqam////1D9b6wAAAAV0Uk5TAAgJERExZxYzAAAAYklEQVRYw+3WoQ2AUBAE0SsBOiBUQEIDCArA4FFoHBaJxNItFYz/x5+xz282VmwJTdM0rRzbsS1e7Pm9zdgUVn491rkFmqZpSezEjqo/Sos1HoAEjdjgFmiapiWxG7tq/igfnYteFlnOWZEAAAAASUVORK5CYII=); - -webkit-background-size: auto 100%; - background-size: auto 100%; -} .ath-ios7 .ath-action-icon, .ath-ios8 .ath-action-icon { width: 1.6em; height: 1.6em; - background-image: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAHgAAACtCAYAAAB7l7tOAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAABa5AAAWuQBuyxkRwAAABl0RVh0U29mdHdhcmUAd3d3Lmlua3NjYXBlLm9yZ5vuPBoAAAZoSURBVHja7d1ZbFRlGIfxzxVwl809goLgghrRoEaNSzQagrsRt8QYgzEG443SOQNSA0QTXHALcY2KMe7EuCB6YbxwiUtwA0VwQRSxqMimUNt5vOg5OEPL9Ew705m2zz95L5rOvOfr+8s3nZ6TOQ2hNyXiyhDxQpjADr3q5+4VyTIhRORCBCHijTCRPg6lZ+3c5hg3qZfdyT0D9/IQ0bQFblIvhnq2d0jdF3d8Edyknhe5O6aOs0PExnZwk3ooBLZxaN0lWcaFiE0pcVsqy+Ohnm0dXq0nYmzJuP8jPypyLSfDySFifYdwk8ow00HWYiZzeojY0Cnc/2uWA60t3FPLiJvU3Q62FpLl2BCxusy4SU1xwNVMhjEhYk2FcJOqd9DVSB3HhYi/KozrTq4S7ui0L8v9ppYJOUPk4LsiUxgVIlalQRl5D4x+oPhjrniuJOQ6ASqZiCNCREMajIPuhOV/wfGziz/uuz9gwtySdvPNQlQiGQ4LGX5LgzB0JixbDdA+8Pd/QnMOrnw+NXAuRNwgSDkzmUNDxMo0AENmwo8xLsCY2Zsv8m8VGKCpGS5/rgTkDNcLUx7cg0PE8jSD3/cOWPI7+fnj6PuLnwBZ1MCnyYObmmH8syUhXydQ53CHhoif0uIuXlWA+ydwzJH3sa7Y825/l7OAd5InNTbBeXNSIzeHDFcJ1ZHUMSRELEsz6L1vh28KcdcCJ4QQQnvAk+ZzCrAz8G7y5E1NMO6p1MhNIcsVgpWSLPuFiCVpBjxwOnyxshXuiUmrNMAhhADsBnyYjzz2yZKQLxMuTW5h3xDxbZrBDpgOn60owF0HnJTfLi1wjLw78FHS7O9GOOOxkpAvFbBYIvYJEYvTDLT/NFhQiLseOHnLlqUAx8h7AB8nTTc0wmmPpkZuDBnOFbKt3MzeIeLrNIPccxp8+ksB7j/AmW21LRU4D/mTfORTH0mNvClkGSdofjIMCBGfpxngrrfB+8ta4Z61tdYdAY6RBwFfbn552ASnPFwCcsRYYUMIoZ7+IWJBmsHtUg/vFeJuBM4u1r6jwDHyYOCr5GBrNsKY2amR/w6TOV3giKlpBtbnVnjz2wLcRuD89tp3BjgPeWFy0FUbYNS9qZEXhkvYrrfv4G1Dlsfbu+T39tJWuBemad9Z4Bh5L2BRcvDV/8DoB9vFXRKyHOAODiEsX06/8c+2fcaq760wv3Dn/gtcnLZ3OYBj5P2BpWl28oh7aHpmQdtv+npdgL7A/FwOJr7a+mV53uJWuJeU0r9cwPFaDwC+SxbTsB4On1XY7/BZsHJdy7eBIwSGqcnAcjm46bWWQe0wBeYuLMDNARNK7V9O4Hi9w4HNf6T9th4Oi5FH3dvydV4WQS//HQz0A97KR574Kjz9WcGgmoGrO9K/3MDxmg8EfkgWt2w1nPMErFhbsOZVwNG9fgfHA+sDvELbaQau6WjvSgDHax6Wv5O3yK/AocoWDmxHYO4Wg8oB13amb6WA4zUf0gbyL8BIRbeO/FIe7o2d7VlJ4HjNI4DkrPjPwAgliw9sO+Bp4KZy9Ks0cLzmkfEFiuEKphtY2T7C2RXA5V6zqUFgI7AR2AhsBBZYYIGNwEZgI3DFk+X1blX1DK4acD2Du928uugmJuWrOoZUDbjlA3Hda14CCyywwF1XF8zhqGoBXzCHowSucE2aV/jx0K4EnjSPkwQWWGCBawS4/7SW2yPUUi1tYFi1gJc2MKzW5tF/WieAB82gFlO1d9HAkFobxqAZAgsscC8FHjiDHHBRjdVOVQTeqdbmMXBG8Vs1FgUeMJ3m0M3T068mDZje6n8yCiywwAILLLDAAgsssMACCyywwAILLLDAAgsssMACCyywwAILLLDAAgsssMACCyywwAILLLDAAgsssMACCyywwAILLLDAAgsssMACCyywwAILLLDAAgsssMACCyywwAILLLDAHc+KtXz88xrYWjWsKe3+0wLXWIAP2rlh61CBBRZYYIGrBXwMcFqR6iuwEdgIbAQ2AhuBBRZYYIEFNgIbgY3ARmCBBRZYYIGNwEZgI7AR2AgssMACG4GNwEZgI7ARWGCBBRZYYCOwEdgIbAQWWGCBBRbYCGwENgIbgY3AAgsssMACG4GNwEZgI7DAHQGup69Vu9UpYKsHlEMQ2BLYEtgS2BLYKrWG3wVWz62A6dERWGAjsKnZ/Af2wMWISv7RmgAAAABJRU5ErkJggg==); + background-image: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAHgAAACtCAYAAAB7l7tOAAAF6UlEQVR4AezZWWxUZRiH8VcQEdxZEFFiUZBFUCIa1ABBDARDcCciYGKMqTEGww3SOcNSAwQTjOBiiIpEhRjAhRgXRC8MFxojEhAFZUGttVhaoSxlaW3n8W3yXZxm6vTrOMM5Q98n+V9MMu1pvl++uZhKuypghu49KaaTWGdZSYoVN6VD95nMpLNYZ9XNbdQR2od2k88O3Gm6Bh0t7H0p5Vwp2Ax3ajpu2tYbciFWwkTFO63DY6+JcI4USFaSyYpWp8N7SVZJKR3EinkBk9JxvZFXxhnZSjBaoWp1ZL0ES8WKYXMZp0AndORgy8WKFe5Yf1zvvSBWDEpys2LU6MjD5kmEWQlGKsJRHXlcqUSQVcItEnDEA6gAb7LhjvD9WO6yIEfICQI5A1nzGCYB1T4og5bBiFcyv2f6ujYhl4iVxwKG6qp8MK55HsqPwK0rMr9v/yEo3uCPrJstVh5KMER30Aeh31Ioq0FrHfjXw9CYghnrvYFTuqfEymFzGSwBlT4ARYr7u+K6GLmCVGvAGg2NMG0d/sgJnpScZLjXSkC5z8H3eQ72/k24Q8NfzvwFyK4qtuJSZKaubRPyE/K/Mtx+EvCHL+7uasId1t10w0scz/RzSzYzAfgKV30D3LPaG7lRkR8RK4tKKJKAMp+D7r0EfmmOe0x3m2itAc/ZxBjgAt1mXHWKPPkdb+QGSTJdrDaU5EoJ2OtzwD0WwY7KNNzbRfMFFg24WPdtGHnS221Cflgsj56hjwTs8TnY7oq7/QDhjutGicsb2AVcovsO18l6uPPNNiE/JFaGAq7Q7fY50G4LYVtz3FrdaNGyBXbIl+q24DqhyHes9EaulwR3SwtZs+ktAT/7HORliru1gnCndONFyx44Dfn7MPLYN7yR6yTJZAllJeguAT/4HOBFz8I3ZWm4E0TLFbBD7qn7EVdtHYx53R9ZN0ksrZRuErDN5+AuLIWvm+Oe1k0ULdfADrmX7idcR0/DyBXeyCdlLuMMOGCBz4F1ng+f7yFcve5e0fIFHELeiav6BAx70Rt5p0yhY3u/wR0kyarW/uX35b403PtFyzewQ75ctwtXzSkY8WqruHslSV8RscrL6TJ1bcvfWJ0/HzbtIdw/ugdFyzdwOOAq3T6fmzxwGQ3vbmO8iFioIWqYSsHMj9M/ljfuTsOdItoZBXYBfXX7cVXVwvXLm/8+fU3lcdCqdEMNGBbgUmRmfQISQKd5sGEn4VK6YtEiAXYBA3QVuA4q8hCHrDcafR1ul65jewfuovsCl7vJrNlOuEbdo6JFCuwCrtb9hqusBu56Cw4cI1y1briIWEBn3Ue0XKPuMdGiBg4H9NdV0HJ/6QZLOEPmPN0GmpfSPS5arIBdwHUtIFfoBsl/ZsgfhHCfFi2WwC5goO4AmvanbqBkzJA76tboZokWa2AXMEi3RTdAvDLkDqJFAhzB32xFD2wZsGXA0WfAlgFbBmwZsGXAlgFbBpzk04JaKb0iA9ZnF9x5SQAFtRKKIgPWZxfaeRmwAZ/BGbAB37eaG6MCbnq2Aed5czYyKirgpmcbsAHHZAZswN0Wwo7KeG1fFf2jAm56dtzOQ42yB+65mDhWFBUwUETMUiMDNmADbp/APRaTAh6I2bpGCNw1bufRZJQ1cPdF/NueHZsgDEBBGLbMGoIu4AZu5gLOZeEaYmEXeznF3jRPyEv4frgJvvJe3qTefY0AAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwb8rwADBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgz4/sz1Nia/9hizA7zgklwy3RYwYMBzBRjw4bPjxAbAAizAAtwgwAIswAIswAIMGDBgARZgARZgAS4FWIAFWIAFWIABAwYswAIswAIswIUAC7AAC7AACzBgwIAFWIAFWIAFuBBgARZgARZgAQYMGPApQ99ZCdgWtzqwATbABtgAG2DbnxNb7zbRimsMLMACrDf2wMWI/WasfQAAAABJRU5ErkJggg==); margin-top: -0.3em; -webkit-background-size: auto 100%; background-size: auto 100%; @@ -9073,11 +10275,18 @@ ul.am-dropdown-content > .am-disabled > a:focus { .ath-ios6 .ath-action-icon { width: 1.8em; height: 1.8em; - background-image: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAJAAAAB0CAQAAADAmnOnAAAAAnNCSVQICFXsRgQAAAAJcEhZcwAAWwEAAFsBAXkZiFwAAAAZdEVYdFNvZnR3YXJlAHd3dy5pbmtzY2FwZS5vcmeb7jwaAAAGaklEQVR42u3cfUxVZRwH8O8FRERRfNfKt4zM2UzNMszZFPMPW5KWzizJ0JJWitOU3mYs54ZuNRk6zblSaebUnKllSpopaRorJiqmtjRNK4sNEBR5+fbH45ELwrnn5Tnn3gPP7/cv9/7O/eyc5zyvAF6PrlgAFTrRHcQmtFIQekDEYXRRFA3GzP4gCOI39FcaDcQ7g24BEUUYrTz0gIhKvKZE9IAIIhNhSkUPiNiGaOWiB0Tko4eS0QMi/sQQZaMHRJRivNLRAyKqkKZ89IAIYg1aKCDq5l60U0D6WYDeCkg/r2KEAtLPG5iqgPSzBukKKFB+ikgFpJ+56KyA9PMcHjBXYYwjGRmyQMR/GGWmAqVnNV4N4TuIICowPXhA1ZgR0o+Y6Yk1uTyVeD7E26Da3GpsYk0iTwQ3kSS5nbLboAj0wnBMwGwsRhaysRO5yEMe8iJP2bjig+joIlALbhE86xguCWUgXkYmduMMbjrQVhLEWfRzCagldwmelfTZhOmM8ViGXJQ7hFI3iwK906SUieLXgifTFs9DeA/HUOMKjP87LdlhoFb8RvB8ZJHHhxHIxEWXYfzzY0Q4BtSG3wueDyzhxCAFvwSRJuA7zeYXx/CQ4LEy/3sPlqMkBHBEHkN36UBt+YPgWWgapzfWoiJkcERewECpQB2YR5I1nG/6PbUcN0IMR2QJxhkEWsi0gPkjSVYzxRROS6SjLCRxGplYa+QPq2goqjnTFM8wFIQwjpZZCJcDVMmppu6dTNf7OFbzEDoFAKrcx5yA+ZIJnh444hEckcfRUxcoXe5wMwH/eIqHIK7gUbeAklHlOR4xCElyA2iWR3mIGixyHijDoziMqRw8xflH7H2v8vTjKfIyhzoLNNurPM+xVHRksp0EesabbU84M1hDklVMo885oMdcmhGUnO25W9w7xUx0sh8Ui/Ne5InjCcFTwL4BetI2gbZ5kedZreXZwjYBx2K2gKZ7DydMa3mqRcvjJFAcrnmNJ5ZfiXunlBMNzgfZAPrSazx9eVzwnOB9hmcULQM96TWeCSwRPFv9Wx6ngMKQ3zRaHqeAXvQSTzttNfgaJ5leOLQE5EOhd3j6MF/wnGSchZVVS0Bj5f6ELhzKiZzLdC7nOm7nAebzPIvqZKHF7x7DfwXPNsZYWpu3BLTD/iptPFO4mnt5muWGVg0uW6ozj5UBWh4ngPpYHZxG8nGmcTPPsJpmwzxQK34mPlrGKTY2UFkAWmJ+y8wopnM/y/QEilnAQ9zJbGZxMedzBif559EF5mr24s/ie3/nIFtb8CwAnTV+md04hzm83hBIFQu5mUv5Op/mQMbK3YKXyGJR5Vt2NPqzZAH1N3aJrTmNu1lRn6WUOVzGJA5hlHN7FFNFy0N+yAjbu1xNA70duFOWwPXaeFmLIu7gmxxm5oKtAUVxvahYzhfMVZAFdES/GU7m6bo0Z7mMw2n7jLsxoB78SVQ9T9OHfeUARfluNv5QzeNFf5pCvssBbm4DHsm/ReXvaOGkhhyg+MbeU3N4pZamhGs53O190m/wprZ/0tKDLAdo7p3f4GMSL9Ti/MpZbO32RvIofiKqX2eS1QpSgMI+r//5+7mvFucgE+nQf9TQA7qbR0X9PzjUegUpQG1O1F04eau2j3OAw4JzFGGE9nDvYQc7FaQARRf7rwwc1nDOcbLtbeUWgVK0vtYK2jw5LwMo2nf7c8navVPORWY7fbKAorlRXMMNJtuvIAMoTusKLhXzc2QO74UrcSfQXdodfEnOwy0D6GGxY3qPNj+XBNeiPlCCNs+TY3y05ThQ7EiwK4+JCztjdJTsBFCaNtpaJe9AlgSgsVN6aQOJzWwLBAcokqu1lucVmRUkAC2eeElsKE+F66EBdWOuyXkeF4EYT7LCzZanPtBoXtXmeTrJriAD6AmW8SkgWEC3W541bCm/ggygRxiPIMWSB1cInAqTRyJcnw8KUrD7rXmewY5VaAJA++W3PE0JKMPUPE8MEpoXkLnBcBL+wqpmBWQiemIXCCqghiIcadoxvvYbFFD9GIDDtb9s3EkF5B9RyKj7jy0UkH+MvnNBXAFp0QEbGjoCqoC0mNPwL1NACshYhKUqIN2YvFEB6ca0LxSQAlJACkgBKSAFpICsADXdVEAKSAEpIAWkgBSQAlJACkgBKaDgA41hc8vUXHM3UPOLVQpIAbkH9D87oz0rvnJrOgAAAABJRU5ErkJggg==); + background-image: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAJAAAAB0CAQAAADAmnOnAAAAAnNCSVQICFXsRgQAAAAJcEhZcwAAWwEAAFsBAXkZiFwAAAAZdEVYdFNvZnR3YXJlAHd3dy5pbmtzY2FwZS5vcmeb7jwaAAAF4klEQVR4Ae3a/a+XdR3H8ec5HM45HDmKICoVohkZsxESRRCzcZM/2JKkdGR5MrSkleA0Pd00O4u5IVuNM2yYc6XSzCExU4oUNRPCJFdMUAhsYZpUGhscOHA4N8/WZzsL6HBxvofvdV3fa3yer//gsV3vH659KHzncBsJxUYhDzOEhCKQbORs+ip2wzgM+wvj+P9i35qAGLaHGcQSgKSTrxBLABJppZpYApCspoFYApBsZjSxBCD5OxOJJQBJG1cQSwCSLpqJJQCJ3MvgCGTinuSMCJS8LZwfgZL3FtMiUPIOcU0ESl4PLRHoRPsJtREoeRsYGYGS9yrvo6RmpbLaigWSfzOdErLs6+bLUMFA0sF1+QF1cz1UNlBYK9V5AHXyWSgEkKyiIWOgGh829Ki1lLcaxjCVK7mJRSxjBY+zgRf/u9pXcMB7jhEZAg32EUP3O6hMKOP5Iq2sZQeHMZXt5KKMgOpcY+iHVnFyjeQKlrCBdsxge5ieAVC9vzLUelI8H+A7bKIHM10H81IGGuKvDf1ggDxVTKOV1zG3/Yia1ICG+ltD32MgNTKfP2HuW0VDKkCNrjfUTOm9i6XswwrZJkaVHeh0f2fodkrtfO6jAytqrzG+rEDDfVG1x1sprZEs5RBW4PZxeT+Bbrf5hPu9arfzKaU6WjiAFbseWvoF1GW/6vYGSmkyW7Dit4xB5QHq9Br6Xx2t9GAhtp6zkoHsfNp1J9wX6H+jeR4LtJc4LxGopZZyNpN/YcG2mw9nBTSPLizgOmjKAujGgvJID3ekD7QYi7nGzkvmQtpA38Vi7iJf0TedlC7QTVjMfcY2QyvSBPpUMW/PIBfbo9pls1XpAX2EdizeznStob3OJpQO0DB2YfE21q2GtnghpAm0Gou3T9tm6BGHQppA12HRVt17eboNlydNoLHsx2JtmL801OYcQmkC/QKLtQt9ydBW3wNpA30ci7Ur3WdolUMhbaBqNhf/8qQJ9Hkszs5wjaH9XkUobaAqtmFRdoGbDb3sWMgG6DIs5852knO82RaXer+P+qyb3eWeo7ZNBrRZvm1otY2QFdBjeHIb6hTne49Put12+9ObMoDdYmfy5UkF6AK6cCCr9aM2u9IddptcOYCG+FNDB5xLKCugO7G01TndFp/xgAntdYvrfdwVLnORt3q9Vx25F27DUjbGPxr6qxMgW6Cd2N+d6wLXedA+6nKbK73Lr/pJxzusvE/wZrvX0FOOgGyBxmF/dprXutYOj6nNdS6xyYnWp/dGcaGdhr5vDWQN9E1MXrUzfcA2j2qPj/l1J1uT9iPOeh8w1O7nCGUN9HzyGZ7ndo9qp0ucanU2r1xH+wdDu5wIeQDVVx0+/kd1i697RNv8thdn+Qz4Uv9p6DeOhHyApmBfq3OBu+3Nfd7nVELZAX3Nw4ZarYG8gG7GY1dlk6/Zm3/2Rk8jlB1QvT82dNAmQjkBVf8Mj957fdrefM7ZVhPKEuidvmDob06CXIGGbsX/bZDf8KAhfdbJhLIGmuZuQ084HHIGatiLvRvrRkP6qldbBXkAzbfD0N0OhryBGqrEMOd50FC7d1hPKGugBh8ydMh5hPIGGouI1d5lj6F1vptQ9kDvcKOhN5wMlQH0QcRGnzC03yZCeQDN9G1D6xwBFQI07FI8x02GdjgB8gJqttPQcmuhYoAumzvG7YZWejrkA1TrPYYO+SVCFQO0aM4bqj0uJJQH0LluSP7PkyeQU9QOmyAvoBm+Zegpz4LKA/qYB/wE5AXUe3m81zqoRKAPOYWcuvP9dxvqcD6h7IAKkaNU3eUlHLcI9EzS5YlAi62h/zUy89QCqqKUmvgHywsJlEHnsQYxAvXVIJo5gIhnPhiBju1iNmLvLn85Ah1ZPYs5jBGo72awEzEC9dVwHqQHI9DxWoAYgSLQQKteGIESu/qhCJTYtT+PQBEoAkWgCBSBkotAEehUWwSKQBEoAkWg/BeBIlAEikARKAJFoFmealu4gVLy1Gt5dkARKAL9BzujPSurTmu/AAAAAElFTkSuQmCC); margin-bottom: 0.4em; -webkit-background-size: 100% auto; background-size: 100% auto; } +.ath-android .ath-action-icon { + width: 1.4em; + height: 1.4em; + background-image: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADAAAAAwCAMAAABg3Am1AAAANlBMVEVmZmb///9mZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZW6fJrAAAAEXRSTlMAAAYHG21ub8fLz9DR8/T4+RrZ9owAAAB3SURBVHja7dNLDoAgDATQWv4gKve/rEajJOJiWLgg6WzpSyB0aHqHiNj6nL1lovb4C+hYzkSNAT7mryQFAVOeGAj4CjwEtgrWXpD/uZKtwEJApXt+Vn0flzRhgNiFZQkOXY0aADQZCOCPlsZJ46Rx0jhp3IiN2wGDHhxtldrlwQAAAABJRU5ErkJggg==); + -webkit-background-size: 100% auto; + background-size: 100% auto; +} .ath-container p { margin: 0; padding: 0; @@ -9111,27 +10320,17 @@ ul.am-dropdown-content > .am-disabled > a:focus { left: 50%; margin-left: -1em; -webkit-transform: scaleX(0.9) rotate(45deg); - -ms-transform: scaleX(0.9) rotate(45deg); - transform: scaleX(0.9) rotate(45deg); + -ms-transform: scaleX(0.9) rotate(45deg); + transform: scaleX(0.9) rotate(45deg); z-index: 2147483641; } -.ath-android:after { - content: ''; - background: #eee; - background: -webkit-linear-gradient(-45deg, rgba(238, 238, 238, 0) 0%, rgba(238, 238, 238, 0) 50%, #eeeeee 50%, #eeeeee 100%); - position: absolute; - width: 2em; - height: 2em; - top: -1.5em; - right: 0; -} .ath-application-icon { position: relative; padding: 0; border: 0; margin: 0 auto 0.2em auto; - height: 4.8em; - width: 4.8em; + height: 6em; + width: 6em; z-index: 2147483642; } .ath-container.ath-ios .ath-application-icon { @@ -9144,6 +10343,9 @@ ul.am-dropdown-content > .am-disabled > a:focus { .ath-container.ath-phone { width: 24em; } + .ath-android.ath-phone { + margin-left: -12em; + } .ath-ios.ath-phone { margin-left: -12em; } @@ -9166,24 +10368,373 @@ ul.am-dropdown-content > .am-disabled > a:focus { } } /* ========================================================================== - Component: JS Plugins helpers + Component: uCheck Plugin ============================================================================ */ -.am-fade { - opacity: 0; - -webkit-transition: opacity 0.2s linear; - transition: opacity 0.2s linear; -} -.am-fade.am-in { - opacity: 1; +.am-checkbox, +.am-radio, +.am-checkbox-inline, +.am-radio-inline { + padding-left: 22px; + position: relative; + -webkit-transition: color .25s linear; + transition: color .25s linear; + font-size: 14px; + line-height: 1.5; } -.am-collapse { - display: none; +label.am-checkbox, +label.am-radio { + font-weight: normal; } -.am-collapse.am-in { +.am-ucheck-icons { + color: #999999; display: block; + height: 20px; + top: 0; + left: 0; + position: absolute; + width: 20px; + text-align: center; + line-height: 21px; + font-size: 18px; + cursor: pointer; } -tr.am-collapse.am-in { - display: table-row; +.am-checkbox .am-icon-checked, +.am-radio .am-icon-checked, +.am-checkbox-inline .am-icon-checked, +.am-radio-inline .am-icon-checked, +.am-checkbox .am-icon-unchecked, +.am-radio .am-icon-unchecked, +.am-checkbox-inline .am-icon-unchecked, +.am-radio-inline .am-icon-unchecked { + position: absolute; + left: 0; + top: 0; + display: inline-table; + margin: 0; + background-color: transparent; + -webkit-transition: color .25s linear; + transition: color .25s linear; +} +.am-checkbox .am-icon-checked:before, +.am-radio .am-icon-checked:before, +.am-checkbox-inline .am-icon-checked:before, +.am-radio-inline .am-icon-checked:before, +.am-checkbox .am-icon-unchecked:before, +.am-radio .am-icon-unchecked:before, +.am-checkbox-inline .am-icon-unchecked:before, +.am-radio-inline .am-icon-unchecked:before { + display: inline-block; + font: normal normal normal 1.6rem/1 "FontAwesome", sans-serif; + /*font-weight: normal; // 2 + font-style: normal; // 2 + vertical-align: baseline; // 3 + line-height: 1; // 4*/ + font-size: inherit; + text-rendering: auto; + -webkit-font-smoothing: antialiased; + -moz-osx-font-smoothing: grayscale; + -webkit-transform: translate(0, 0); + -ms-transform: translate(0, 0); + transform: translate(0, 0); +} +.am-checkbox .am-icon-checked, +.am-radio .am-icon-checked, +.am-checkbox-inline .am-icon-checked, +.am-radio-inline .am-icon-checked { + opacity: 0; +} +.am-checkbox .am-icon-checked:before, +.am-checkbox-inline .am-icon-checked:before { + content: "\f046"; +} +.am-checkbox .am-icon-unchecked:before, +.am-checkbox-inline .am-icon-unchecked:before { + content: "\f096"; +} +.am-radio .am-icon-checked:before, +.am-radio-inline .am-icon-checked:before { + content: "\f192"; +} +.am-radio .am-icon-unchecked:before, +.am-radio-inline .am-icon-unchecked:before { + content: "\f10c"; +} +.am-ucheck-checkbox, +.am-ucheck-radio { + position: absolute; + left: 0; + top: 0; + margin: 0; + padding: 0; + width: 20px; + height: 20px; + opacity: 0; + outline: none !important; +} +.am-ucheck-checkbox:hover:not(.am-nohover):not(:disabled) + .am-ucheck-icons, +.am-ucheck-radio:hover:not(.am-nohover):not(:disabled) + .am-ucheck-icons { + color: #0e90d2; +} +.am-ucheck-checkbox:checked + .am-ucheck-icons, +.am-ucheck-radio:checked + .am-ucheck-icons { + color: #0e90d2; +} +.am-ucheck-checkbox:checked + .am-ucheck-icons .am-icon-unchecked, +.am-ucheck-radio:checked + .am-ucheck-icons .am-icon-unchecked { + opacity: 0; +} +.am-ucheck-checkbox:checked + .am-ucheck-icons .am-icon-checked, +.am-ucheck-radio:checked + .am-ucheck-icons .am-icon-checked { + opacity: 1; +} +.am-ucheck-checkbox:disabled + .am-ucheck-icons, +.am-ucheck-radio:disabled + .am-ucheck-icons { + cursor: default; + color: #d8d8d8; +} +.am-ucheck-checkbox:disabled:checked + .am-ucheck-icons .am-icon-unchecked, +.am-ucheck-radio:disabled:checked + .am-ucheck-icons .am-icon-unchecked { + opacity: 0; +} +.am-ucheck-checkbox:disabled:checked + .am-ucheck-icons .am-icon-checked, +.am-ucheck-radio:disabled:checked + .am-ucheck-icons .am-icon-checked { + opacity: 1; + color: #d8d8d8; +} +.am-checkbox.am-secondary .am-ucheck-checkbox:hover:not(.am-nohover):not(:disabled) + .am-ucheck-icons, +.am-radio.am-secondary .am-ucheck-checkbox:hover:not(.am-nohover):not(:disabled) + .am-ucheck-icons, +.am-checkbox-inline.am-secondary .am-ucheck-checkbox:hover:not(.am-nohover):not(:disabled) + .am-ucheck-icons, +.am-radio-inline.am-secondary .am-ucheck-checkbox:hover:not(.am-nohover):not(:disabled) + .am-ucheck-icons, +.am-checkbox.am-secondary .am-ucheck-radio:hover:not(.am-nohover):not(:disabled) + .am-ucheck-icons, +.am-radio.am-secondary .am-ucheck-radio:hover:not(.am-nohover):not(:disabled) + .am-ucheck-icons, +.am-checkbox-inline.am-secondary .am-ucheck-radio:hover:not(.am-nohover):not(:disabled) + .am-ucheck-icons, +.am-radio-inline.am-secondary .am-ucheck-radio:hover:not(.am-nohover):not(:disabled) + .am-ucheck-icons { + color: #3bb4f2; +} +.am-checkbox.am-secondary .am-ucheck-checkbox:checked + .am-ucheck-icons, +.am-radio.am-secondary .am-ucheck-checkbox:checked + .am-ucheck-icons, +.am-checkbox-inline.am-secondary .am-ucheck-checkbox:checked + .am-ucheck-icons, +.am-radio-inline.am-secondary .am-ucheck-checkbox:checked + .am-ucheck-icons, +.am-checkbox.am-secondary .am-ucheck-radio:checked + .am-ucheck-icons, +.am-radio.am-secondary .am-ucheck-radio:checked + .am-ucheck-icons, +.am-checkbox-inline.am-secondary .am-ucheck-radio:checked + .am-ucheck-icons, +.am-radio-inline.am-secondary .am-ucheck-radio:checked + .am-ucheck-icons { + color: #3bb4f2; +} +.am-checkbox.am-success .am-ucheck-checkbox:hover:not(.am-nohover):not(:disabled) + .am-ucheck-icons, +.am-radio.am-success .am-ucheck-checkbox:hover:not(.am-nohover):not(:disabled) + .am-ucheck-icons, +.am-checkbox-inline.am-success .am-ucheck-checkbox:hover:not(.am-nohover):not(:disabled) + .am-ucheck-icons, +.am-radio-inline.am-success .am-ucheck-checkbox:hover:not(.am-nohover):not(:disabled) + .am-ucheck-icons, +.am-checkbox.am-success .am-ucheck-radio:hover:not(.am-nohover):not(:disabled) + .am-ucheck-icons, +.am-radio.am-success .am-ucheck-radio:hover:not(.am-nohover):not(:disabled) + .am-ucheck-icons, +.am-checkbox-inline.am-success .am-ucheck-radio:hover:not(.am-nohover):not(:disabled) + .am-ucheck-icons, +.am-radio-inline.am-success .am-ucheck-radio:hover:not(.am-nohover):not(:disabled) + .am-ucheck-icons { + color: #5eb95e; +} +.am-checkbox.am-success .am-ucheck-checkbox:checked + .am-ucheck-icons, +.am-radio.am-success .am-ucheck-checkbox:checked + .am-ucheck-icons, +.am-checkbox-inline.am-success .am-ucheck-checkbox:checked + .am-ucheck-icons, +.am-radio-inline.am-success .am-ucheck-checkbox:checked + .am-ucheck-icons, +.am-checkbox.am-success .am-ucheck-radio:checked + .am-ucheck-icons, +.am-radio.am-success .am-ucheck-radio:checked + .am-ucheck-icons, +.am-checkbox-inline.am-success .am-ucheck-radio:checked + .am-ucheck-icons, +.am-radio-inline.am-success .am-ucheck-radio:checked + .am-ucheck-icons { + color: #5eb95e; +} +.am-checkbox.am-warning .am-ucheck-checkbox:hover:not(.am-nohover):not(:disabled) + .am-ucheck-icons, +.am-radio.am-warning .am-ucheck-checkbox:hover:not(.am-nohover):not(:disabled) + .am-ucheck-icons, +.am-checkbox-inline.am-warning .am-ucheck-checkbox:hover:not(.am-nohover):not(:disabled) + .am-ucheck-icons, +.am-radio-inline.am-warning .am-ucheck-checkbox:hover:not(.am-nohover):not(:disabled) + .am-ucheck-icons, +.am-checkbox.am-warning .am-ucheck-radio:hover:not(.am-nohover):not(:disabled) + .am-ucheck-icons, +.am-radio.am-warning .am-ucheck-radio:hover:not(.am-nohover):not(:disabled) + .am-ucheck-icons, +.am-checkbox-inline.am-warning .am-ucheck-radio:hover:not(.am-nohover):not(:disabled) + .am-ucheck-icons, +.am-radio-inline.am-warning .am-ucheck-radio:hover:not(.am-nohover):not(:disabled) + .am-ucheck-icons { + color: #F37B1D; +} +.am-checkbox.am-warning .am-ucheck-checkbox:checked + .am-ucheck-icons, +.am-radio.am-warning .am-ucheck-checkbox:checked + .am-ucheck-icons, +.am-checkbox-inline.am-warning .am-ucheck-checkbox:checked + .am-ucheck-icons, +.am-radio-inline.am-warning .am-ucheck-checkbox:checked + .am-ucheck-icons, +.am-checkbox.am-warning .am-ucheck-radio:checked + .am-ucheck-icons, +.am-radio.am-warning .am-ucheck-radio:checked + .am-ucheck-icons, +.am-checkbox-inline.am-warning .am-ucheck-radio:checked + .am-ucheck-icons, +.am-radio-inline.am-warning .am-ucheck-radio:checked + .am-ucheck-icons { + color: #F37B1D; +} +.am-checkbox.am-danger .am-ucheck-checkbox:hover:not(.am-nohover):not(:disabled) + .am-ucheck-icons, +.am-radio.am-danger .am-ucheck-checkbox:hover:not(.am-nohover):not(:disabled) + .am-ucheck-icons, +.am-checkbox-inline.am-danger .am-ucheck-checkbox:hover:not(.am-nohover):not(:disabled) + .am-ucheck-icons, +.am-radio-inline.am-danger .am-ucheck-checkbox:hover:not(.am-nohover):not(:disabled) + .am-ucheck-icons, +.am-checkbox.am-danger .am-ucheck-radio:hover:not(.am-nohover):not(:disabled) + .am-ucheck-icons, +.am-radio.am-danger .am-ucheck-radio:hover:not(.am-nohover):not(:disabled) + .am-ucheck-icons, +.am-checkbox-inline.am-danger .am-ucheck-radio:hover:not(.am-nohover):not(:disabled) + .am-ucheck-icons, +.am-radio-inline.am-danger .am-ucheck-radio:hover:not(.am-nohover):not(:disabled) + .am-ucheck-icons { + color: #dd514c; +} +.am-checkbox.am-danger .am-ucheck-checkbox:checked + .am-ucheck-icons, +.am-radio.am-danger .am-ucheck-checkbox:checked + .am-ucheck-icons, +.am-checkbox-inline.am-danger .am-ucheck-checkbox:checked + .am-ucheck-icons, +.am-radio-inline.am-danger .am-ucheck-checkbox:checked + .am-ucheck-icons, +.am-checkbox.am-danger .am-ucheck-radio:checked + .am-ucheck-icons, +.am-radio.am-danger .am-ucheck-radio:checked + .am-ucheck-icons, +.am-checkbox-inline.am-danger .am-ucheck-radio:checked + .am-ucheck-icons, +.am-radio-inline.am-danger .am-ucheck-radio:checked + .am-ucheck-icons { + color: #dd514c; +} +.am-field-error + .am-ucheck-icons { + color: #dd514c; +} +.am-field-valid + .am-ucheck-icons { + color: #5eb95e; +} +/* +// Group Addon +.@{ns}input-group-label { + .@{ns}radio, + .@{ns}checkbox { + margin: -2px 0; + padding-left: 15px; + } +} + +// Form inline style +.@{ns}form-inline .@{ns}checkbox, +.@{ns}form-inline .@{ns}radio { + padding-left: 24px; +} +*/ +/* ========================================================================== + Component: Selected Plugin + ============================================================================ */ +.am-selected { + width: 200px; +} +.am-selected-btn { + width: 100%; + padding-left: 10px; + text-align: right; +} +.am-selected-btn.am-btn-default { + background: none; +} +.am-invalid .am-selected-btn { + border-color: #dd514c; +} +.am-selected-header { + height: 45px; + background-color: #f2f2f2; + border-bottom: 1px solid #ddd; + display: none; +} +.am-selected-status { + text-align: left; + width: 100%; + display: block; + word-wrap: normal; + /* for IE */ + text-overflow: ellipsis; + white-space: nowrap; + overflow: hidden; +} +.am-selected-content { + padding: 10px 0; +} +.am-selected-search { + padding: 0 10px 10px; +} +.am-selected-search .am-form-field { + padding: .5em; +} +.am-selected-list { + margin: 0; + padding: 0; + list-style: none; + font-size: 1.5rem; +} +.am-selected-list li { + position: relative; + cursor: pointer; + padding: 5px 10px; + -webkit-transition: background-color 0.15s; + transition: background-color 0.15s; +} +.am-selected-list li:hover { + background-color: #f8f8f8; +} +.am-selected-list li:hover .am-icon-check { + opacity: .6; +} +.am-selected-list li.am-checked .am-icon-check { + opacity: 1; + color: #0e90d2; +} +.am-selected-list li.am-disabled { + opacity: .5; + pointer-events: none; + cursor: not-allowed; +} +.am-selected-list .am-selected-list-header { + margin-top: 8px; + font-size: 1.3rem; + color: #999999; + border-bottom: 1px solid #e5e5e5; + cursor: default; +} +.am-selected-list .am-selected-list-header:hover { + background: none; +} +.am-selected-list .am-selected-list-header:first-child { + margin-top: 0; +} +.am-selected-list .am-selected-text { + display: block; + word-wrap: normal; + /* for IE */ + text-overflow: ellipsis; + white-space: nowrap; + overflow: hidden; + margin-right: 30px; +} +.am-selected-list .am-icon-check { + position: absolute; + right: 8px; + top: 5px; + color: #999999; + opacity: 0; + -webkit-transition: opacity .15s; + transition: opacity .15s; +} +.am-selected-hint { + line-height: 1.2; + color: #dd514c; +} +.am-selected-hint:not(:empty) { + margin-top: 10px; + border-top: 1px solid #e5e5e5; + padding: 10px 10px 0; +} +.am-selected-placeholder { + opacity: .65; +} +/* ========================================================================== + Component: JS Plugins helpers + ============================================================================ */ +.am-fade { + opacity: 0; + -webkit-transition: opacity .2s linear; + transition: opacity .2s linear; +} +.am-fade.am-in { + opacity: 1; +} +.am-collapse { + display: none; +} +.am-collapse.am-in { + display: block; +} +tr.am-collapse.am-in { + display: table-row; } tbody.am-collapse.am-in { display: table-row-group; @@ -9193,7 +10744,7 @@ tbody.am-collapse.am-in { height: 0; overflow: hidden; -webkit-transition: height .3s ease; - transition: height .3s ease; + transition: height .3s ease; } .am-sticky { position: fixed !important; @@ -9221,8 +10772,6 @@ tbody.am-collapse.am-in { background-color: rgba(0, 0, 0, 0.6); z-index: 1100; opacity: 0; - -webkit-transition: opacity .15s; - transition: opacity .15s; } .am-dimmer.am-active { opacity: 1; @@ -9230,6 +10779,350 @@ tbody.am-collapse.am-in { [data-am-collapse] { cursor: pointer; } +.am-datepicker { + top: 0; + left: 0; + border-radius: 2px; + background: #fff; + -webkit-box-shadow: 0 0 10px #ccc; + box-shadow: 0 0 10px #ccc; + padding-bottom: 10px; + margin-top: 10px; + width: 238px; + color: #555; + display: none; +} +.am-datepicker > div { + display: none; +} +.am-datepicker table { + width: 100%; +} +.am-datepicker tr.am-datepicker-header { + font-size: 1.6rem; + color: #fff; + background: #3bb4f2; +} +.am-datepicker td, +.am-datepicker th { + text-align: center; + font-weight: normal; + cursor: pointer; +} +.am-datepicker th { + height: 48px; +} +.am-datepicker td { + font-size: 1.4rem; +} +.am-datepicker td.am-datepicker-day { + height: 34px; + width: 34px; +} +.am-datepicker td.am-datepicker-day:hover { + background: #F0F0F0; + height: 34px; + width: 34px; +} +.am-datepicker td.am-datepicker-day.am-disabled { + cursor: no-drop; + color: #999; + background: #fafafa; +} +.am-datepicker td.am-datepicker-old, +.am-datepicker td.am-datepicker-new { + color: #89d7ff; +} +.am-datepicker td.am-active, +.am-datepicker td.am-active:hover { + border-radius: 2px; + color: #0084c7; + background: #F0F0F0; +} +.am-datepicker td span { + display: block; + width: 79.33333333px; + height: 40px; + line-height: 40px; + float: left; + cursor: pointer; +} +.am-datepicker td span:hover { + background: #F0F0F0; +} +.am-datepicker td span.am-active { + color: #0084c7; + background: #F0F0F0; +} +.am-datepicker td span.am-disabled { + cursor: no-drop; + color: #999; + background: #fafafa; +} +.am-datepicker td span.am-datepicker-old { + color: #89d7ff; +} +.am-datepicker .am-datepicker-dow { + height: 40px; + color: #0c80ba; +} +.am-datepicker-caret { + display: block!important; + display: inline-block; + width: 0; + height: 0; + vertical-align: middle; + border-bottom: 7px solid #3bb4f2; + border-right: 7px solid transparent; + border-left: 7px solid transparent; + border-top: 0 dotted; + -webkit-transform: rotate(360deg); + -ms-transform: rotate(360deg); + transform: rotate(360deg); + position: absolute; + top: -7px; + left: 6px; +} +.am-datepicker-right .am-datepicker-caret { + left: auto; + right: 7px; +} +.am-datepicker-up .am-datepicker-caret { + top: auto; + bottom: -7px; + display: inline-block; + width: 0; + height: 0; + vertical-align: middle; + border-top: 7px solid #fff; + border-right: 7px solid transparent; + border-left: 7px solid transparent; + border-bottom: 0 dotted; + -webkit-transform: rotate(360deg); + -ms-transform: rotate(360deg); + transform: rotate(360deg); +} +.am-datepicker-select { + height: 34px; + line-height: 34px; + text-align: center; + -webkit-transition: background-color 300ms ease-out; + transition: background-color 300ms ease-out; +} +.am-datepicker-select:hover { + background: rgba(154, 217, 248, 0.5); + color: #0c80ba; +} +.am-datepicker-prev, +.am-datepicker-next { + width: 34px; + height: 34px; +} +.am-datepicker-prev-icon, +.am-datepicker-next-icon { + width: 34px; + height: 34px; + line-height: 34px; + display: inline-block; + -webkit-transition: background-color 300ms ease-out; + transition: background-color 300ms ease-out; +} +.am-datepicker-prev-icon:hover, +.am-datepicker-next-icon:hover { + background: rgba(154, 217, 248, 0.5); + color: #0c80ba; +} +.am-datepicker-prev-icon:before { + display: inline-block; + font: normal normal normal 1.6rem/1 "FontAwesome", sans-serif; + /*font-weight: normal; // 2 + font-style: normal; // 2 + vertical-align: baseline; // 3 + line-height: 1; // 4*/ + font-size: inherit; + text-rendering: auto; + -webkit-font-smoothing: antialiased; + -moz-osx-font-smoothing: grayscale; + -webkit-transform: translate(0, 0); + -ms-transform: translate(0, 0); + transform: translate(0, 0); + content: "\f053"; +} +.am-datepicker-next-icon:before { + display: inline-block; + font: normal normal normal 1.6rem/1 "FontAwesome", sans-serif; + /*font-weight: normal; // 2 + font-style: normal; // 2 + vertical-align: baseline; // 3 + line-height: 1; // 4*/ + font-size: inherit; + text-rendering: auto; + -webkit-font-smoothing: antialiased; + -moz-osx-font-smoothing: grayscale; + -webkit-transform: translate(0, 0); + -ms-transform: translate(0, 0); + transform: translate(0, 0); + content: "\f054"; +} +.am-datepicker-dropdown { + position: absolute; + z-index: 1120; +} +@media only screen and (max-width: 640px) { + .am-datepicker { + width: 100%; + } + .am-datepicker td span { + width: 33.33%; + } + .am-datepicker-caret { + display: none!important; + } + .am-datepicker-prev, + .am-datepicker-next { + width: 44px; + height: 44px; + } +} +.am-datepicker-success tr.am-datepicker-header { + background: #5eb95e; +} +.am-datepicker-success td.am-datepicker-day.am-disabled { + color: #999; +} +.am-datepicker-success td.am-datepicker-old, +.am-datepicker-success td.am-datepicker-new { + color: #94df94; +} +.am-datepicker-success td.am-active, +.am-datepicker-success td.am-active:hover { + color: #1b961b; +} +.am-datepicker-success td span.am-datepicker-old { + color: #94df94; +} +.am-datepicker-success td span.am-active { + color: #1b961b; +} +.am-datepicker-success .am-datepicker-caret { + border-bottom-color: #5eb95e; +} +.am-datepicker-success .am-datepicker-dow { + color: #367b36; +} +.am-datepicker-success .am-datepicker-select:hover, +.am-datepicker-success .am-datepicker-prev-icon:hover, +.am-datepicker-success .am-datepicker-next-icon:hover { + background: rgba(165, 216, 165, 0.5); + color: #367b36; +} +.am-datepicker-danger tr.am-datepicker-header { + background: #dd514c; +} +.am-datepicker-danger td.am-datepicker-day.am-disabled { + color: #999; +} +.am-datepicker-danger td.am-datepicker-old, +.am-datepicker-danger td.am-datepicker-new { + color: #f59490; +} +.am-datepicker-danger td.am-active, +.am-datepicker-danger td.am-active:hover { + color: #c10802; +} +.am-datepicker-danger td span.am-datepicker-old { + color: #f59490; +} +.am-datepicker-danger td span.am-active { + color: #c10802; +} +.am-datepicker-danger .am-datepicker-caret { + border-bottom-color: #dd514c; +} +.am-datepicker-danger .am-datepicker-dow { + color: #a4241f; +} +.am-datepicker-danger .am-datepicker-select:hover, +.am-datepicker-danger .am-datepicker-prev-icon:hover, +.am-datepicker-danger .am-datepicker-next-icon:hover { + background: rgba(237, 164, 162, 0.5); + color: #a4241f; +} +.am-datepicker-warning tr.am-datepicker-header { + background: #F37B1D; +} +.am-datepicker-warning td.am-datepicker-day.am-disabled { + color: #999; +} +.am-datepicker-warning td.am-datepicker-old, +.am-datepicker-warning td.am-datepicker-new { + color: #ffad6d; +} +.am-datepicker-warning td.am-active, +.am-datepicker-warning td.am-active:hover { + color: #aa4b00; +} +.am-datepicker-warning td span.am-datepicker-old { + color: #ffad6d; +} +.am-datepicker-warning td span.am-active { + color: #aa4b00; +} +.am-datepicker-warning .am-datepicker-caret { + border-bottom-color: #F37B1D; +} +.am-datepicker-warning .am-datepicker-dow { + color: #a14c09; +} +.am-datepicker-warning .am-datepicker-select:hover, +.am-datepicker-warning .am-datepicker-prev-icon:hover, +.am-datepicker-warning .am-datepicker-next-icon:hover { + background: rgba(248, 180, 126, 0.5); + color: #a14c09; +} +.am-datepicker > div { + display: block; +} +.am-datepicker > div span.am-datepicker-hour { + width: 59.5px; +} +.am-datepicker-date { + display: block; +} +.am-datepicker-date.am-input-group { + display: table; +} +.am-datepicker-time-box { + padding: 30px 0 30px 0; +} +.am-datepicker-time-box strong { + font-size: 5.2rem; + display: inline-block; + height: 70px; + width: 70px; + line-height: 70px; + font-weight: normal; +} +.am-datepicker-time-box strong:hover { + border-radius: 4px; + background: #ECECEC; +} +.am-datepicker-time-box em { + display: inline-block; + height: 70px; + width: 20px; + line-height: 70px; + font-size: 5.2rem; + font-style: normal; +} +.am-datepicker-toggle { + text-align: center; + cursor: pointer; + padding: 10px 0; +} +.am-datepicker-toggle:hover { + background: #f0f0f0; +} /* ========================================================================== Component: Print ============================================================================ */ @@ -9268,7 +11161,7 @@ tbody.am-collapse.am-in { page-break-inside: avoid; } thead { - display: table-header-group + display: table-header-group; /* h5bp.com/t */ } tr, @@ -9381,6 +11274,10 @@ tbody.am-collapse.am-in { font-weight: normal; cursor: pointer; } +.am-accordion-item.am-disabled .am-accordion-title { + cursor: default; + pointer-events: none; +} .am-accordion-bd { margin: 0 !important; padding: 0 !important; @@ -9410,21 +11307,28 @@ tbody.am-collapse.am-in { .am-accordion-default .am-accordion-title { color: rgba(0, 0, 0, 0.6); -webkit-transition: background-color 0.2s ease-out; - transition: background-color 0.2s ease-out; + transition: background-color 0.2s ease-out; padding: .8rem 1rem; } .am-accordion-default .am-accordion-title:before { content: "\f0da"; display: inline-block; - font-family: "FontAwesome", sans-serif; - font-weight: normal; - font-style: normal; - vertical-align: baseline; - line-height: 1; + font: normal normal normal 1.6rem/1 "FontAwesome", sans-serif; + /*font-weight: normal; // 2 + font-style: normal; // 2 + vertical-align: baseline; // 3 + line-height: 1; // 4*/ + font-size: inherit; + text-rendering: auto; -webkit-font-smoothing: antialiased; -moz-osx-font-smoothing: grayscale; + -webkit-transform: translate(0, 0); + -ms-transform: translate(0, 0); + transform: translate(0, 0); -webkit-transition: -webkit-transform .2s ease; - transition: transform .2s ease; + transition: -webkit-transform .2s ease; + transition: transform .2s ease; + transition: transform .2s ease, -webkit-transform .2s ease; -webkit-transform: rotate(0deg); -ms-transform: rotate(0deg); transform: rotate(0deg); @@ -9434,7 +11338,7 @@ tbody.am-collapse.am-in { color: #0e90d2; } .am-accordion-default .am-accordion-content { - color: #666666; + color: #666; } .am-accordion-default .am-active .am-accordion-title { background-color: #eeeeee; @@ -9455,28 +11359,35 @@ tbody.am-collapse.am-in { .am-accordion-basic .am-accordion-title { color: #333333; -webkit-transition: background-color 0.2s ease-out; - transition: background-color 0.2s ease-out; + transition: background-color 0.2s ease-out; padding: .8rem 0 0; } .am-accordion-basic .am-accordion-title:before { display: inline-block; - font-family: "FontAwesome", sans-serif; - font-weight: normal; - font-style: normal; - vertical-align: baseline; - line-height: 1; + font: normal normal normal 1.6rem/1 "FontAwesome", sans-serif; + /*font-weight: normal; // 2 + font-style: normal; // 2 + vertical-align: baseline; // 3 + line-height: 1; // 4*/ + font-size: inherit; + text-rendering: auto; -webkit-font-smoothing: antialiased; -moz-osx-font-smoothing: grayscale; + -webkit-transform: translate(0, 0); + -ms-transform: translate(0, 0); + transform: translate(0, 0); content: "\f0da"; -webkit-transition: -webkit-transform .2s ease; - transition: transform .2s ease; + transition: -webkit-transform .2s ease; + transition: transform .2s ease; + transition: transform .2s ease, -webkit-transform .2s ease; -webkit-transform: rotate(0deg); -ms-transform: rotate(0deg); transform: rotate(0deg); margin-right: .5rem; } .am-accordion-basic .am-accordion-content { - color: #666666; + color: #666; } .am-accordion-basic .am-active .am-accordion-title { color: #0e90d2; @@ -9504,23 +11415,30 @@ tbody.am-collapse.am-in { .am-accordion-gapped .am-accordion-title { color: rgba(0, 0, 0, 0.6); -webkit-transition: background-color 0.15s ease-out; - transition: background-color 0.15s ease-out; + transition: background-color 0.15s ease-out; border-bottom: 1px solid #dedede; padding: 0.8rem 2rem 0.8rem 1rem; position: relative; } .am-accordion-gapped .am-accordion-title:after { display: inline-block; - font-family: "FontAwesome", sans-serif; - font-weight: normal; - font-style: normal; - vertical-align: baseline; - line-height: 1; + font: normal normal normal 1.6rem/1 "FontAwesome", sans-serif; + /*font-weight: normal; // 2 + font-style: normal; // 2 + vertical-align: baseline; // 3 + line-height: 1; // 4*/ + font-size: inherit; + text-rendering: auto; -webkit-font-smoothing: antialiased; -moz-osx-font-smoothing: grayscale; + -webkit-transform: translate(0, 0); + -ms-transform: translate(0, 0); + transform: translate(0, 0); content: "\f105"; -webkit-transition: -webkit-transform .2s linear; - transition: transform .2s linear; + transition: -webkit-transform .2s linear; + transition: transform .2s linear; + transition: transform .2s linear, -webkit-transform .2s linear; position: absolute; right: 10px; top: 50%; @@ -9530,7 +11448,7 @@ tbody.am-collapse.am-in { color: rgba(0, 0, 0, 0.8); } .am-accordion-gapped .am-accordion-content { - color: #666666; + color: #666; } .am-accordion-gapped .am-active .am-accordion-title { background-color: #f5f5f5; @@ -9541,77 +11459,29 @@ tbody.am-collapse.am-in { -ms-transform: rotate(90deg); transform: rotate(90deg); } -/** - * Accordion Theme: one - * Author: hzp (hzp@yunshipei.com) - */ -.am-accordion-one { - margin: 0 10px 0 10px; -} -.am-accordion-one .am-accordion-item { - border: 1px solid #dfdfdf; - margin: .5rem 0; - background: #ffffff; -} -.am-accordion-one .am-accordion-title { - color: #555555; - -webkit-transition: background-color 0.2s ease-out; - transition: background-color 0.2s ease-out; - padding: 0.8rem 2rem 0.8rem 1rem; - position: relative; -} -.am-accordion-one .am-accordion-title:after { - display: inline-block; - font-family: "FontAwesome", sans-serif; - font-weight: normal; - font-style: normal; - vertical-align: baseline; - line-height: 1; - -webkit-font-smoothing: antialiased; - -moz-osx-font-smoothing: grayscale; - content: "\f105"; - -webkit-transition: -webkit-transform .2s linear; - transition: transform .2s linear; - position: absolute; - right: 10px; - top: 50%; - margin-top: -0.8rem; -} -.am-accordion-one .am-accordion-title:hover { - color: #15afef; -} -.am-accordion-one .am-accordion-content { - color: #666666; -} -.am-accordion-one .am-active .am-accordion-title { - background-color: #f8f8f8; - color: #15afef; -} -.am-accordion-one .am-active .am-accordion-title:after { - -webkit-transform: rotate(90deg); - -ms-transform: rotate(90deg); - transform: rotate(90deg); +.am-divider { + height: 0; + margin: 1.5rem auto; + overflow: hidden; + clear: both; } /** * Divider Theme: default */ .am-divider-default { - height: 1px; - border: none; - margin: 1.5rem auto; - overflow: hidden; - background-color: #dddddd; - clear: both; + border-top: 1px solid #ddd; } /** - * Divider Theme: one + * Divider Theme: dotted */ -.am-divider-one { - height: 10px; - border: none; - overflow: hidden; - clear: both; - margin: 0; +.am-divider-dotted { + border-top: 1px dotted #ccc; +} +/** + * Divider Theme: dashed + */ +.am-divider-dashed { + border-top: 1px dashed #ccc; } .am-figure-zoomable { position: relative; @@ -9619,13 +11489,18 @@ tbody.am-collapse.am-in { } .am-figure-zoomable:after { display: inline-block; - font-family: "FontAwesome", sans-serif; - font-weight: normal; - font-style: normal; - vertical-align: baseline; - line-height: 1; + font: normal normal normal 1.6rem/1 "FontAwesome", sans-serif; + /*font-weight: normal; // 2 + font-style: normal; // 2 + vertical-align: baseline; // 3 + line-height: 1; // 4*/ + font-size: inherit; + text-rendering: auto; -webkit-font-smoothing: antialiased; -moz-osx-font-smoothing: grayscale; + -webkit-transform: translate(0, 0); + -ms-transform: translate(0, 0); + transform: translate(0, 0); content: "\f00e"; position: absolute; top: 1rem; @@ -9633,7 +11508,8 @@ tbody.am-collapse.am-in { color: #999999; font-size: 1.6rem; -webkit-transition: all 0.2s; - transition: all 0.2s; + transition: all 0.2s; + pointer-events: none; } .am-figure-zoomable:hover:after { color: #eeeeee; @@ -9655,26 +11531,6 @@ tbody.am-collapse.am-in { margin-bottom: 15px; color: #333333; } -/** - * Figure theme: one - */ -.am-figure-one { - margin: 0 10px; - background: #ffffff; -} -.am-figure-one img { - display: block; - max-width: 100%; - height: auto; - padding: 2px; - border: 1px solid #dfdfdf; -} -.am-figure-one figcaption { - text-align: center; - font-size: 1.4rem; - padding: 10px 0; - color: #888888; -} .am-footer { text-align: center; padding: 1em 0; @@ -9698,7 +11554,7 @@ tbody.am-collapse.am-in { * Footer Theme: default */ .am-footer-default { - background-color: #ffffff; + background-color: #fff; } .am-footer-default a { color: #555555; @@ -9712,7 +11568,7 @@ tbody.am-collapse.am-in { cursor: pointer; } .am-footer-default .am-footer-divider { - color: #cccccc; + color: #ccc; } .am-footer-default .am-footer-desktop { color: #0e90d2; @@ -9730,57 +11586,6 @@ tbody.am-collapse.am-in { margin: 5px; } } -/** - * Footer Theme: one - */ -.am-footer-one a { - color: #15afef; - font-weight: bold; -} -.am-footer-one .am-footer-switch { - margin-bottom: 10px; -} -.am-footer-one .am-footer-ysp { - color: #15afef; - cursor: pointer; -} -.am-footer-one .am-footer-divider { - color: #999999; -} -.am-footer-one .am-footer-desktop { - font-weight: normal; - color: #555555; -} -.am-footer-one .am-footer-miscs { - color: #7c7c7c; - overflow: hidden; - padding: 0 10px; - font-size: 14px; -} -.am-footer-one .am-footer-miscs ul, -.am-footer-one .am-footer-miscs li { - padding-left: 0; - list-style: none; -} -.am-footer-one .am-footer-miscs p { - margin: 4px 0; -} -.am-footer-one .am-footer-miscs a { - font-weight: normal; - color: #555555; - margin: 0 1px; -} -.am-footer-one .am-footer-miscs img { - display: block; - max-width: 100%; - margin: 0 auto 2px auto; -} -@media only screen and (min-width:641px) { - .am-footer-one .am-footer-miscs p { - display: inline-block; - margin: 5px; - } -} .am-gallery { padding: 5px 5px 0 5px; list-style: none; @@ -9835,7 +11640,7 @@ tbody.am-collapse.am-in { .am-gallery-overlay .am-gallery-title { font-weight: normal; font-size: 1.4rem; - color: #ffffff; + color: #FFF; position: absolute; bottom: 0; width: 100%; @@ -9909,57 +11714,11 @@ tbody.am-collapse.am-in { /* for IE */ text-overflow: ellipsis; white-space: nowrap; - overflow: hidden; -} -.am-gallery-imgbordered .am-gallery-desc { - color: #999999; - font-size: 1.2rem; -} -/** - * Gallery Theme: one - * Author: hzp (hzp@yunshipei.com) - */ -.am-gallery-one { - padding: 0 5px; - background-color: #ffffff; -} -.am-gallery-one > li { - padding: 5px; -} -.am-gallery-one .am-gallery-item { - padding: 5px; -} -.am-gallery-one .am-gallery-item img { - width: 100%; - height: auto; -} -.am-gallery-one .am-gallery-title { - line-height: 34px; - font-weight: normal; - font-size: 1.4rem; - display: block; - word-wrap: normal; - /* for IE */ - text-overflow: ellipsis; - white-space: nowrap; - overflow: hidden; - color: #555555; -} -.am-gallery-one .am-gallery-desc { - color: #999999; - font-size: 1.2rem; -} -.am-gallery-one .am-gallery-more { - width: 100%; -} -.am-gallery-one .am-gallery-more a { - background-color: #dfdfdf; - color: #555555; - height: 35px; - line-height: 35px; - font-size: 1.4rem; - display: block; - text-align: center; + overflow: hidden; +} +.am-gallery-imgbordered .am-gallery-desc { + color: #999999; + font-size: 1.2rem; } .am-gotop a { display: inline-block; @@ -9976,7 +11735,7 @@ tbody.am-collapse.am-in { background-color: #0e90d2; padding: .5em 1.5em; border-radius: 2px; - color: #ffffff; + color: #fff; } .am-gotop-default a img { display: none; @@ -10018,33 +11777,13 @@ tbody.am-collapse.am-in { line-height: 32px; background-color: #555555; vertical-align: middle; - color: #dddddd; + color: #ddd; } .am-gotop-fixed .am-gotop-icon:hover { - color: #ffffff; -} -/** - * Gotop Theme: one - */ -.am-gotop-one { - position: fixed; - right: 10px; - bottom: 10px; - z-index: 1005; - width: 32px; - height: 32px; - background-color: #ffffff; - border-radius: 2px; - border: 1px solid #15afef; - text-align: center; -} -.am-gotop-one .am-gotop-title { - display: none; + color: #fff; } -.am-gotop-one .am-gotop-icon { - vertical-align: middle; - display: inline-block; - color: #15afef; +.am-with-fixed-navbar .am-gotop-fixed { + bottom: 60px; } .am-header { position: relative; @@ -10107,10 +11846,10 @@ tbody.am-collapse.am-in { background-color: #0e90d2; } .am-header-default .am-header-title { - color: #ffffff; + color: #fff; } .am-header-default .am-header-title a { - color: #ffffff; + color: #fff; } .am-header-default .am-header-icon { font-size: 20px; @@ -10118,13 +11857,13 @@ tbody.am-collapse.am-in { .am-header-default .am-header-nav { color: #eeeeee; } -.am-header-default .am-header-nav a { +.am-header-default .am-header-nav > a { display: inline-block; min-width: 36px; text-align: center; color: #eeeeee; } -.am-header-default .am-header-nav a + a { +.am-header-default .am-header-nav > a + a { margin-left: 5px; } .am-header-default .am-header-nav .am-btn { @@ -10145,37 +11884,12 @@ tbody.am-collapse.am-in { .am-header-default .am-header-nav-title + .am-header-icon { font-size: 14px; } -/** - * Header Theme: one - */ -.am-header-one { - background: #ffffff; -} -.am-header-one .am-header-title { - margin: 0 15%; - color: #333333; - display: block; - word-wrap: normal; - /* for IE */ - text-overflow: ellipsis; - white-space: nowrap; - overflow: hidden; -} -.am-header-one .am-header-title a { - color: #333333; -} -.am-header-one .am-header-title img { - height: 34px; - width: auto; - margin-top: 8px; - vertical-align: top; -} -.am-header-one .am-header-nav a { - color: #15afef; -} .am-intro { position: relative; } +.am-intro img { + max-width: 100%; +} .am-intro-hd { position: relative; height: 45px; @@ -10212,62 +11926,15 @@ tbody.am-collapse.am-in { */ .am-intro-default .am-intro-hd { background-color: #0e90d2; - color: #ffffff; + color: #fff; padding: 0 10px; } .am-intro-default .am-intro-hd a { - color: #eeeeee; + color: #eee; } .am-intro-default .am-intro-right { padding-left: 0; } -/** - * Intro Theme: one - */ -.am-intro-one { - padding-bottom: 10px; - background-color: #ffffff; -} -.am-intro-one a { - color: #15afef; -} -.am-intro-one .am-intro-hd { - border-bottom: 1px solid #15afef; - margin-left: 10px; - margin-right: 10px; - line-height: 44px; -} -.am-intro-one .am-intro-title { - color: #333333; - padding-left: 10px; -} -.am-intro-one .am-intro-title:before { - position: absolute; - left: 1px; - top: 10px; - bottom: 10px; - content: ''; - width: 3px; - background-color: #15afef; - display: block; -} -.am-intro-one .am-intro-bd { - color: #555555; -} -.am-intro-one .am-intro-left { - float: left; - display: inline; -} -.am-intro-one .am-intro-right { - display: inline; - padding-left: 0; - font-size: 1.4rem; -} -.am-intro-one .am-intro-right p { - display: inline; - margin: 0; - padding: 0; -} .am-list-news-hd { padding-top: 1.2rem; padding-bottom: 0.8rem; @@ -10330,6 +11997,13 @@ tbody.am-collapse.am-in { .am-list-news-ft { text-align: center; } +.am-list-news .am-titlebar { + margin-left: 0; + margin-right: 0; +} +.am-list-news .am-titlebar ~ .am-list-news-bd .am-list > li:first-child { + border-top: none; +} /** * list_news Theme: default */ @@ -10350,322 +12024,74 @@ tbody.am-collapse.am-in { border-color: #dedede; } .am-list-news-default .am-list .am-list-item-desced { - padding-top: 1rem; - padding-bottom: 1rem; -} -.am-list-news-default .am-list .am-list-item-desced > a { - padding: 0; -} -.am-list-news-default .am-list .am-list-item-desced .am-list-item-text { - margin-top: 0.5rem; - color: #757575; -} -.am-list-news-default .am-list .am-list-item-text { - overflow: hidden; - text-overflow: ellipsis; - display: -webkit-box; - -webkit-box-orient: vertical; - line-height: 1.3em; - -webkit-line-clamp: 2; - /* number of lines to show */ - max-height: 2.6em; -} -.am-list-news-default .am-list .am-list-item-thumb-top .am-list-thumb { - padding: 0; - margin-bottom: 0.8rem; -} -.am-list-news-default .am-list .am-list-item-thumb-top .am-list-main { - padding: 0; -} -.am-list-news-default .am-list .am-list-item-thumb-left .am-list-thumb { - padding-left: 0; -} -.am-list-news-default .am-list .am-list-item-desced .am-list-main { - padding: 0; -} -.am-list-news-default .am-list .am-list-item-thumb-right .am-list-thumb { - padding-right: 0; -} -.am-list-news-default .am-list .am-list-item-thumb-bottom-left .am-list-item-hd { - clear: both; - padding-bottom: 0.5rem; -} -.am-list-news-default .am-list .am-list-item-thumb-bottom-left .am-list-thumb { - padding-left: 0; -} -.am-list-news-default .am-list .am-list-item-thumb-bottom-right .am-list-item-hd { - clear: both; - padding-bottom: 0.5rem; -} -.am-list-news-default .am-list .am-list-item-thumb-bottom-right .am-list-thumb { - padding-right: 0; -} -.am-list-news-default .am-list .am-list-thumb img { - width: 100%; - display: block; -} -@media only screen and (max-width: 640px) { - .am-list-news-default .am-list-item-thumb-left .am-list-thumb, - .am-list-news-default .am-list-item-thumb-right .am-list-thumb { - max-height: 80px; - overflow: hidden; - } - .am-list-news-default .am-list-item-thumb-bottom-left .am-list-item-text, - .am-list-news-default .am-list-item-thumb-bottom-right .am-list-item-text { - -webkit-line-clamp: 3; - /* number of lines to show */ - max-height: 3.9em; - } - .am-list-news-default .am-list-item-thumb-bottom-left .am-list-thumb, - .am-list-news-default .am-list-item-thumb-bottom-right .am-list-thumb { - max-height: 60px; - overflow: hidden; - } -} -/** - * list_news Theme: one - * Author: hzp (hzp@yunshipei.com) - */ -.am-list-news-one { - margin: 0 10px; -} -.am-list-news-one .am-list-news-hd { - background: #ffffff; - height: 40px; - line-height: 40px; - border-bottom: 1px solid #15afef; - padding: 0 0 0 10px; - margin: 0; - position: relative; - color: #000000; -} -.am-list-news-one .am-list-news-hd::before { - width: 4px; - height: 30px; - background: #15afef; - display: inline-block; - content: ''; - position: absolute; - top: 5px; - left: 0; -} -.am-list-news-one .am-list-news-hd > a { - color: #000000; - display: inline; -} -.am-list-news-one .am-list-news-hd > a .am-list-news-more { - color: #888888; - padding: 0; - margin-right: 5px; - background: none; - font-size: 1.4rem; - height: 40px; - line-height: 40px; -} -.am-list-news-one .am-list-news-hd h2 { - font-weight: normal; - float: left; - line-height: 40px; - height: 40px; -} -.am-list-news-one .am-list-news-bd { - padding: 0px 5px 4px 5px; - background: #ffffff; -} -.am-list-news-one .am-list { - margin-bottom: 0; -} -.am-list-news-one .am-list > li { - margin: 0; - border: 0; - overflow: hidden; -} -.am-list-news-one .am-list > li > a { - color: #222222; - font-weight: normal; - display: block; - word-wrap: normal; - /* for IE */ - text-overflow: ellipsis; - white-space: nowrap; - overflow: hidden; - height: 30px; - line-height: 30px; - padding: 0; - position: relative; - text-indent: 10px; -} -.am-list-news-one .am-list > li > a:before { - width: 4px; - height: 4px; - background: #15afef; - display: inline-block; - content: ''; - position: absolute; - top: 14px; - left: 0; -} -.am-list-news-one .am-list > li .am-list-date { - color: #666666; - top: 5px; - rigth: 0; - display: none; -} -.am-list-news-one .am-list > li:last-child { - border-bottom: 0; -} -.am-list-news-one .am-list .am-list-item-dated > a { - color: #222222; -} -.am-list-news-one .am-list .am-list-item-desced { - padding: 3px 0; - border-bottom: 1px dashed #dfdfdf; -} -.am-list-news-one .am-list .am-list-item-desced:before { - display: none; -} -.am-list-news-one .am-list .am-list-item-desced .am-list-item-hd { - font-weight: normal; - font-size: 1.5rem; - margin-bottom: 0; -} -.am-list-news-one .am-list .am-list-item-desced .am-list-item-hd > a:before { - display: none; -} -.am-list-news-one .am-list .am-list-item-desced a.am-list-item-hd { - height: 34px; - line-height: 34px; - padding: 0; - color: #15afef; - display: block; - word-wrap: normal; - /* for IE */ - text-overflow: ellipsis; - white-space: nowrap; - overflow: hidden; - text-indent: 0; -} -.am-list-news-one .am-list .am-list-item-desced a.am-list-item-hd:before { - display: none; -} -.am-list-news-one .am-list .am-list-item-desced .am-list-item-text { - color: #666666; - line-height: 22px; - font-size: 1.4rem; - max-height: none; - margin-bottom: 8px; -} -.am-list-news-one .am-list .am-list-item-desced .am-list-item-text a { - color: #666666; -} -.am-list-news-one .am-list .am-list-item-desced .am-list-main { - padding: 0 5px; - position: relative; -} -.am-list-news-one .am-list .am-list-item-desced .am-list-main .am-list-date { - position: absolute; - right: 5px; - top: 3.5rem; - font-size: 1.2rem; - color: #888888; -} -.am-list-news-one .am-list .am-list-item-desced .am-list-main .am-list-item-text { - max-height: 3rem; - overflow: hidden; - font-size: 1.2rem; - line-height: 18px; - color: #666666; -} -.am-list-news-one .am-list .am-list-item-desced .am-list-main .am-list-item-text a { - color: #666666; -} -.am-list-news-one .am-list .am-list-item-thumbed { - border-bottom: 1px dashed #dfdfdf; - padding: 0 0 5px 0; + padding-top: 1rem; + padding-bottom: 1rem; } -.am-list-news-one .am-list .am-list-item-thumbed:before { - content: none; +.am-list-news-default .am-list .am-list-item-desced > a { + padding: 0; } -.am-list-news-one .am-list .am-list-item-thumbed .am-list-item-hd { - font-weight: normal; - height: 30px; - line-height: 30px; - margin-bottom: 0; +.am-list-news-default .am-list .am-list-item-desced .am-list-item-text { + margin-top: 0.5rem; + color: #757575; } -.am-list-news-one .am-list .am-list-item-thumbed .am-list-item-hd a { - font-size: 1.5rem; - color: #15afef; - display: block; - word-wrap: normal; - /* for IE */ - text-overflow: ellipsis; - white-space: nowrap; +.am-list-news-default .am-list .am-list-item-text { overflow: hidden; + text-overflow: ellipsis; + display: -webkit-box; + -webkit-box-orient: vertical; + line-height: 1.3em; + -webkit-line-clamp: 2; + /* number of lines to show */ + max-height: 2.6em; +} +.am-list-news-default .am-list .am-list-item-thumb-top .am-list-thumb { padding: 0; - text-indent: 0; + margin-bottom: 0.8rem; } -.am-list-news-one .am-list .am-list-item-thumbed .am-list-thumb { +.am-list-news-default .am-list .am-list-item-thumb-top .am-list-main { padding: 0; - height: 60px; } -.am-list-news-one .am-list .am-list-item-thumbed .am-list-thumb a { - width: 100%; - display: block; +.am-list-news-default .am-list .am-list-item-thumb-left .am-list-thumb { + padding-left: 0; +} +.am-list-news-default .am-list .am-list-item-desced .am-list-main { padding: 0; - text-indent: 0; - height: 60px; } -.am-list-news-one .am-list .am-list-item-thumbed .am-list-thumb a img { - width: 100%; - height: 60px; - vertical-align: top; +.am-list-news-default .am-list .am-list-item-thumb-right .am-list-thumb { + padding-right: 0; } -.am-list-news-one .am-list .am-list-item-thumbed .am-list-main { - padding: 0 5px 14px 5px; - position: relative; +.am-list-news-default .am-list .am-list-item-thumb-bottom-left .am-list-item-hd { + clear: both; + padding-bottom: 0.5rem; } -.am-list-news-one .am-list .am-list-item-thumbed .am-list-date { - position: absolute; - right: 5px; - top: 3.5rem; - font-size: 1.2rem; - color: #888888; +.am-list-news-default .am-list .am-list-item-thumb-bottom-left .am-list-thumb { + padding-left: 0; } -.am-list-news-one .am-list .am-list-item-thumbed .am-list-item-text { - max-height: 3rem; - overflow: hidden; - font-size: 1.2rem; - line-height: 18px; - color: #666666; +.am-list-news-default .am-list .am-list-item-thumb-bottom-right .am-list-item-hd { + clear: both; + padding-bottom: 0.5rem; } -.am-list-news-one .am-list .am-list-item-thumbed .am-list-item-text a { - color: #666666; +.am-list-news-default .am-list .am-list-item-thumb-bottom-right .am-list-thumb { + padding-right: 0; } -.am-list-news-one .am-list-news-more { - background: #dfdfdf; - color: #666666; - height: 35px; - line-height: 35px; - font-size: 1.4rem; +.am-list-news-default .am-list .am-list-thumb img { + width: 100%; display: block; - border: 0; - border-radius: 0; - padding: 0; } @media only screen and (max-width: 640px) { - .am-list-news-one .am-list-item-thumb-left .am-list-thumb, - .am-list-news-one .am-list-item-thumb-right .am-list-thumb { + .am-list-news-default .am-list-item-thumb-left .am-list-thumb, + .am-list-news-default .am-list-item-thumb-right .am-list-thumb { max-height: 80px; overflow: hidden; } - .am-list-news-one .am-list-item-thumb-bottom-left .am-list-item-text, - .am-list-news-one .am-list-item-thumb-bottom-right .am-list-item-text { + .am-list-news-default .am-list-item-thumb-bottom-left .am-list-item-text, + .am-list-news-default .am-list-item-thumb-bottom-right .am-list-item-text { -webkit-line-clamp: 3; /* number of lines to show */ max-height: 3.9em; } - .am-list-news-one .am-list-item-thumb-bottom-left .am-list-thumb, - .am-list-news-one .am-list-item-thumb-bottom-right .am-list-thumb { + .am-list-news-default .am-list-item-thumb-bottom-left .am-list-thumb, + .am-list-news-default .am-list-item-thumb-bottom-right .am-list-thumb { max-height: 60px; overflow: hidden; } @@ -10714,19 +12140,25 @@ tbody.am-collapse.am-in { .am-menu a:after, .am-menu a:before { display: inline-block; - font-family: "FontAwesome", sans-serif; - font-weight: normal; - font-style: normal; - vertical-align: baseline; - line-height: 1; + font: normal normal normal 1.6rem/1 "FontAwesome", sans-serif; + /*font-weight: normal; // 2 + font-style: normal; // 2 + vertical-align: baseline; // 3 + line-height: 1; // 4*/ + font-size: inherit; + text-rendering: auto; -webkit-font-smoothing: antialiased; -moz-osx-font-smoothing: grayscale; + -webkit-transform: translate(0, 0); + -ms-transform: translate(0, 0); + transform: translate(0, 0); } .am-menu-sub { z-index: 1050; } .am-menu-toggle { display: none; + z-index: 1015; } .am-menu-toggle img { display: inline-block; @@ -10738,7 +12170,7 @@ tbody.am-collapse.am-in { display: block; padding: 0.8rem 0; -webkit-transition: all 0.45s; - transition: all 0.45s; + transition: all 0.45s; } /** * Menu Theme: default @@ -10764,13 +12196,13 @@ tbody.am-collapse.am-in { .am-menu-default .am-menu-nav > .am-parent > a { position: relative; -webkit-transition: .15s; - transition: .15s; + transition: .15s; } .am-menu-default .am-menu-nav > .am-parent > a:after { content: "\f107"; margin-left: 5px; -webkit-transition: .15s; - transition: .15s; + transition: .15s; } .am-menu-default .am-menu-nav > .am-parent > a:before { position: absolute; @@ -10824,7 +12256,7 @@ tbody.am-collapse.am-in { * Author: Minwe (minwe@yunshipei.com) */ .am-menu-dropdown1 { - position: relative + position: relative; /*@media @medium-up { .am-menu-toggle { display: none!important; @@ -10862,11 +12294,11 @@ tbody.am-collapse.am-in { height: 44px; line-height: 44px; text-align: center; - color: #ffffff; + color: #fff; } .am-menu-dropdown1 a { -webkit-transition: all .4s; - transition: all .4s; + transition: all .4s; display: block; word-wrap: normal; /* for IE */ @@ -10898,7 +12330,7 @@ tbody.am-collapse.am-in { .am-menu-dropdown1 .am-menu-nav > li.am-parent.am-open > a { background-color: #0c80ba; border-bottom: none; - color: #ffffff; + color: #fff; } .am-menu-dropdown1 .am-menu-nav > li.am-parent.am-open > a:before { content: "\f068"; @@ -10926,17 +12358,17 @@ tbody.am-collapse.am-in { -webkit-box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.05); box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.05); background-color: #0e90d2; - color: #ffffff; + color: #fff; height: 49px; line-height: 49px; padding: 0; text-indent: 10px; } .am-menu-dropdown1 .am-menu-sub { - background-color: #ffffff; + background-color: #fff; } .am-menu-dropdown1 .am-menu-sub a { - color: #555555; + color: #555; height: 44px; line-height: 44px; text-indent: 5px; @@ -10944,7 +12376,7 @@ tbody.am-collapse.am-in { } .am-menu-dropdown1 .am-menu-sub a:before { content: "\f105"; - color: #aaaaaa; + color: #aaa; font-size: 16px; margin-right: 5px; } @@ -10961,7 +12393,7 @@ tbody.am-collapse.am-in { height: 44px; line-height: 44px; text-align: center; - color: #ffffff; + color: #fff; } .am-menu-dropdown2 .am-menu-nav { position: absolute; @@ -10990,7 +12422,9 @@ tbody.am-collapse.am-in { content: "\f107"; margin-left: 5px; -webkit-transition: -webkit-transform .2s; - transition: transform .2s; + transition: -webkit-transform .2s; + transition: transform .2s; + transition: transform .2s, -webkit-transform .2s; } .am-menu-dropdown2 .am-menu-nav > li.am-parent.am-open > a { position: relative; @@ -11019,7 +12453,7 @@ tbody.am-collapse.am-in { border-radius: 2px; -webkit-box-shadow: 0 0 3px rgba(0, 0, 0, 0.15); box-shadow: 0 0 3px rgba(0, 0, 0, 0.15); - background-color: #ffffff; + background-color: #fff; z-index: 1055; } .am-menu-dropdown2 .am-menu-sub a { @@ -11071,7 +12505,7 @@ tbody.am-collapse.am-in { height: 44px; line-height: 44px; text-align: center; - color: #ffffff; + color: #fff; } .am-menu-slide1 .am-menu-nav { background-color: #f5f5f5; @@ -11080,13 +12514,18 @@ tbody.am-collapse.am-in { } .am-menu-slide1 .am-menu-nav.am-in:before { display: inline-block; - font-family: "FontAwesome", sans-serif; - font-weight: normal; - font-style: normal; - vertical-align: baseline; - line-height: 1; + font: normal normal normal 1.6rem/1 "FontAwesome", sans-serif; + /*font-weight: normal; // 2 + font-style: normal; // 2 + vertical-align: baseline; // 3 + line-height: 1; // 4*/ + font-size: inherit; + text-rendering: auto; -webkit-font-smoothing: antialiased; -moz-osx-font-smoothing: grayscale; + -webkit-transform: translate(0, 0); + -ms-transform: translate(0, 0); + transform: translate(0, 0); content: "\f0d8"; font-size: 24px; color: #f5f5f5; @@ -11113,13 +12552,13 @@ tbody.am-collapse.am-in { .am-menu-slide1 .am-menu-nav > .am-parent > a { position: relative; -webkit-transition: .15s; - transition: .15s; + transition: .15s; } .am-menu-slide1 .am-menu-nav > .am-parent > a:after { content: "\f107"; margin-left: 5px; -webkit-transition: .15s; - transition: .15s; + transition: .15s; } .am-menu-slide1 .am-menu-nav > .am-parent > a:before { position: absolute; @@ -11153,7 +12592,7 @@ tbody.am-collapse.am-in { padding-bottom: 8px; } .am-menu-slide1 .am-menu-sub > li > a { - color: #ffffff; + color: #fff; } @media only screen and (min-width:641px) { .am-menu-slide1 .am-menu-toggle { @@ -11188,7 +12627,7 @@ tbody.am-collapse.am-in { height: 44px; line-height: 44px; text-align: center; - color: #ffffff; + color: #fff; } .am-menu-offcanvas1 .am-menu-nav { border-bottom: 1px solid rgba(0, 0, 0, 0.3); @@ -11201,7 +12640,7 @@ tbody.am-collapse.am-in { text-indent: 15px; padding: 0; position: relative; - color: #cccccc; + color: #ccc; border-top: 1px solid rgba(0, 0, 0, 0.3); -webkit-box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.05); box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.05); @@ -11211,16 +12650,16 @@ tbody.am-collapse.am-in { .am-menu-offcanvas1 .am-menu-nav > li > a:hover, .am-menu-offcanvas1 .am-menu-nav > li > a:focus { background-color: #474747; - color: #ffffff; + color: #fff; outline: none; } .am-menu-offcanvas1 .am-menu-nav > .am-active > a { background-color: #1a1a1a; - color: #ffffff; + color: #fff; } .am-menu-offcanvas1 .am-menu-nav > .am-parent > a { -webkit-transition: all .3s; - transition: all .3s; + transition: all .3s; } .am-menu-offcanvas1 .am-menu-nav > .am-parent > a:after { content: "\f104"; @@ -11240,10 +12679,10 @@ tbody.am-collapse.am-in { font-size: 1.4rem; } .am-menu-offcanvas1 .am-menu-sub a { - color: #eeeeee; + color: #eee; } .am-menu-offcanvas1 .am-menu-sub a:hover { - color: #ffffff; + color: #fff; } .am-menu-offcanvas1 .am-nav-divider { border-top: 1px solid #1a1a1a; @@ -11261,7 +12700,7 @@ tbody.am-collapse.am-in { height: 44px; line-height: 44px; text-align: center; - color: #ffffff; + color: #fff; } .am-menu-offcanvas2 .am-menu-nav { padding: 10px 5px; @@ -11271,9 +12710,9 @@ tbody.am-collapse.am-in { } .am-menu-offcanvas2 .am-menu-nav > li > a { -webkit-transition: all 0.3s; - transition: all 0.3s; + transition: all 0.3s; background-color: #404040; - color: #cccccc; + color: #ccc; display: block; word-wrap: normal; /* for IE */ @@ -11292,12 +12731,12 @@ tbody.am-collapse.am-in { .am-menu-offcanvas2 .am-menu-nav > li > a:hover, .am-menu-offcanvas2 .am-menu-nav > li > a:focus { background-color: #262626; - color: #ffffff; + color: #fff; outline: none; } .am-menu-offcanvas2 .am-menu-nav > .am-active > a { background-color: #262626; - color: #ffffff; + color: #fff; } /** * Menu Theme: stack @@ -11310,7 +12749,7 @@ tbody.am-collapse.am-in { } .am-menu-stack .am-menu-nav > .am-parent > a { -webkit-transition: all .3s; - transition: all .3s; + transition: all .3s; } .am-menu-stack .am-menu-nav > .am-parent > a:after { content: "\f105"; @@ -11318,7 +12757,7 @@ tbody.am-collapse.am-in { right: 1.5rem; top: 1.3rem; -webkit-transition: all .15s; - transition: all .15s; + transition: all .15s; } .am-menu-stack .am-menu-nav > .am-parent.am-open > a:after { -webkit-transform: rotate(90deg); @@ -11327,7 +12766,7 @@ tbody.am-collapse.am-in { } .am-menu-stack .am-menu-nav > li > a { position: relative; - color: #333333; + color: #333; background-color: #f5f5f5; border-top: 1px solid #dedede; -webkit-box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.05); @@ -11341,7 +12780,7 @@ tbody.am-collapse.am-in { .am-menu-stack .am-menu-nav > li > a:hover, .am-menu-stack .am-menu-nav > li > a:focus { background-color: #e5e5e5; - color: #222222; + color: #222; outline: none; } .am-menu-stack .am-menu-sub { @@ -11352,10 +12791,10 @@ tbody.am-collapse.am-in { .am-menu-stack .am-menu-sub a { border-bottom: 1px solid #dedede; padding-left: 2rem; - color: #444444; + color: #444; } .am-menu-stack .am-menu-sub a:hover { - color: #333333; + color: #333; } .am-menu-stack .am-menu-sub li:last-child a { border-bottom: none; @@ -11407,93 +12846,6 @@ tbody.am-collapse.am-in { clear: none; } } -/** - * Menu Theme: one - * Author: one (hzp@yunshipei.com) - */ -.am-menu-one { - padding-left: 10px; - padding-right: 10px; - margin-bottom: 10px; - background-color: #f5f5f5; - -webkit-box-shadow: 0 2px 10px #d7d7d7; - box-shadow: 0 2px 10px #d7d7d7; - height: 40px; -} -.am-menu-one .am-menu-nav-wrap { - overflow: hidden; -} -.am-menu-one .am-menu-nav { - height: 40px; -} -.am-menu-one .am-menu-nav:before, -.am-menu-one .am-menu-nav:after { - content: " "; - display: table; -} -.am-menu-one .am-menu-nav:after { - clear: both; -} -.am-menu-one .am-menu-nav > li { - float: left; - clear: none; - width: auto; -} -.am-menu-one .am-menu-nav > li > a { - display: block; - height: 40px; - line-height: 40px; - padding: 0 10px; - color: #7d7d7d; -} -.am-menu-one .am-menu-nav .am-active > a { - color: #555555; - border-bottom: 2px solid #15afef; -} -.am-menu-one .am-menu-nav .am-open > a { - position: relative; -} -.am-menu-one .am-menu-nav .am-open > a:before { - position: absolute; - top: 100%; - left: 50%; - margin-top: -6px; - margin-left: -6px; - content: ''; - display: inline-block; - width: 0; - height: 0; - vertical-align: middle; - border-bottom: 6px solid #15afef; - border-right: 6px solid transparent; - border-left: 6px solid transparent; - border-top: 0 dotted; - -webkit-transform: rotate(360deg); - -ms-transform: rotate(360deg); - transform: rotate(360deg); -} -.am-menu-one .am-menu-nav-sub-wrap { - position: relative; - z-index: 1050; -} -.am-menu-one .am-menu-sub { - position: absolute; - top: 1px; - left: -5px; - right: -5px; - background-color: #ffffff; - border-radius: 2px; - -webkit-box-shadow: 0 0 3px rgba(0, 0, 0, 0.15); - box-shadow: 0 0 3px rgba(0, 0, 0, 0.15); -} -.am-menu-one .am-menu-sub li { - text-align: center; -} -.am-menu-one .am-menu-sub a { - padding: 0; - color: #555555; - line-height: 40px; -} .am-navbar { position: fixed; left: 0; @@ -11514,16 +12866,10 @@ tbody.am-collapse.am-in { padding-right: 8px; text-align: center; overflow: hidden; - display: -webkit-box; - display: -webkit-flex; - display: -ms-flexbox; - display: flex; } .am-navbar .am-navbar-nav li { - -webkit-box-flex: 1; - -webkit-flex: 1; - -ms-flex: 1; - flex: 1; + display: table-cell; + width: 1%; float: none; } .am-navbar-nav { @@ -11567,7 +12913,7 @@ tbody.am-collapse.am-in { } .am-navbar-more [class*="am-icon-"] { -webkit-transition: 0.15s; - transition: 0.15s; + transition: 0.15s; } .am-navbar-more.am-active [class*="am-icon-"] { -webkit-transform: rotateX(-180deg); @@ -11581,7 +12927,7 @@ tbody.am-collapse.am-in { z-index: 1009; opacity: 0; -webkit-transition: .3s; - transition: .3s; + transition: .3s; -webkit-transform: translate(0, 100%); -ms-transform: translate(0, 100%); transform: translate(0, 100%); @@ -11640,7 +12986,7 @@ tbody.am-collapse.am-in { * Author: hzp (hzp@yunshipei.com) */ .am-navbar-default a { - color: #ffffff; + color: #fff; } .am-navbar-default .am-navbar-nav { background-color: #0e90d2; @@ -11651,22 +12997,6 @@ tbody.am-collapse.am-in { .am-navbar-default .am-navbar-actions a { border-bottom: 1px solid #0b6fa2; } -/** - * Navbar Theme: one - * Author: hzp (hzp@yunshipei.com) - */ -.am-navbar-one a { - color: #ffffff; -} -.am-navbar-one .am-navbar-nav { - background-color: #15afef; -} -.am-navbar-one .am-navbar-actions { - background-color: #0f9fdb; -} -.am-navbar-one .am-navbar-actions a { - border-bottom: 1px solid #0d87ba; -} .am-pagination { position: relative; } @@ -11721,45 +13051,6 @@ tbody.am-collapse.am-in { appearance: none; padding-left: 18px; } -/** - * Pagination Theme: one - */ -.am-pagination-one { - margin-left: 10px; - margin-right: 10px; - text-align: center; -} -.am-pagination-one > li > a { - line-height: 36px; - background-color: #ffffff; - padding: 0 15px; - color: #555555; -} -.am-pagination-one .am-pagination-select { - float: left; - position: absolute; - top: 0; - left: 50%; - margin-left: -25px; - width: 50px; - height: 36px; - text-align: center; -} -.am-pagination-one .am-pagination-select select { - display: block; - line-height: 36px; - width: 50px; - height: 36px; - border-radius: 2px; - text-align: center; - -webkit-appearance: none; - -moz-appearance: none; - appearance: none; - padding-left: 18px; - background: #ffffff; - border: 1px solid #dfdfdf; - color: #555555; -} .am-paragraph p { margin: 10px 0; } @@ -11796,7 +13087,7 @@ tbody.am-collapse.am-in { border: 1px solid #999999; text-align: center; vertical-align: middle; - background: #ffffff; + background: #fff; } .am-paragraph-table-container table td p { text-indent: 0; @@ -11820,85 +13111,24 @@ tbody.am-collapse.am-in { max-width: 98%; display: block; margin: 5px auto; - border: 1px solid #eeeeee; - padding: 2px; -} -.am-paragraph-default a { - color: #0e90d2; -} -/** - * Paragraph Theme: one - */ -.am-paragraph-one { - color: #555555; - background: #ffffff; - margin: 0 10px; - padding: 4px; -} -.am-paragraph-one h1, -.am-paragraph-one h2, -.am-paragraph-one h3, -.am-paragraph-one h4, -.am-paragraph-one h5, -.am-paragraph-one h6 { - color: #333333; - font-weight: normal; - margin-top: 0; -} -.am-paragraph-one h1 { - font-size: 2rem; -} -.am-paragraph-one h2, -.am-paragraph-one h3 { - font-size: 1.8rem; -} -.am-paragraph-one h4, -.am-paragraph-one h5 { - font-size: 1.6rem; -} -.am-paragraph-one h6 { - font-size: 1.4rem; -} -.am-paragraph-one hr { - background: #dfdfdf; - height: 1px; - border: 0; - overflow: hidden; -} -.am-paragraph-one img { - max-width: 100%; - display: block; - margin: 5px 0; -} -.am-paragraph-one a { - color: #333333; -} -.am-paragraph-one p, -.am-paragraph-one div, -.am-paragraph-one table { - font-size: 1.4rem; - margin: 0 0 1rem 0; -} -.am-paragraph-one ul, -.am-paragraph-one ol { - padding-left: 0; + border: 1px solid #eeeeee; + padding: 2px; } -.am-paragraph-one li { - list-style: none; - font-size: 1.4rem; +.am-paragraph-default a { + color: #0e90d2; } /** * Slider Theme: a1 */ .am-slider-a1 { -webkit-box-shadow: 0 1px 4px rgba(0, 0, 0, 0.2); - box-shadow: 0 1px 4px rgba(0, 0, 0, 0.2) + box-shadow: 0 1px 4px rgba(0, 0, 0, 0.2); /* Control Nav */ } .am-slider-a1 .am-viewport { max-height: 2000px; -webkit-transition: all 1s ease; - transition: all 1s ease; + transition: all 1s ease; } .loading .am-slider-a1 .am-viewport { max-height: 300px; @@ -11941,13 +13171,13 @@ tbody.am-collapse.am-in { */ .am-slider-a2 { -webkit-box-shadow: 0 1px 4px rgba(0, 0, 0, 0.2); - box-shadow: 0 1px 4px rgba(0, 0, 0, 0.2) + box-shadow: 0 1px 4px rgba(0, 0, 0, 0.2); /* Control Nav */ } .am-slider-a2 .am-viewport { max-height: 2000px; -webkit-transition: all 1s ease; - transition: all 1s ease; + transition: all 1s ease; } .loading .am-slider-a2 .am-viewport { max-height: 300px; @@ -11990,13 +13220,13 @@ tbody.am-collapse.am-in { .am-slider-a3 { margin-bottom: 20px; -webkit-box-shadow: 0 1px 4px rgba(0, 0, 0, 0.2); - box-shadow: 0 1px 4px rgba(0, 0, 0, 0.2) + box-shadow: 0 1px 4px rgba(0, 0, 0, 0.2); /* Control Nav */ } .am-slider-a3 .am-viewport { max-height: 2000px; -webkit-transition: all 1s ease; - transition: all 1s ease; + transition: all 1s ease; } .loading .am-slider-a3 .am-viewport { max-height: 300px; @@ -12007,7 +13237,7 @@ tbody.am-collapse.am-in { bottom: -20px; text-align: center; height: 20px; - background-color: #000000; + background-color: #000; padding-top: 5px; line-height: 0; } @@ -12043,13 +13273,13 @@ tbody.am-collapse.am-in { .am-slider-a4 { margin-bottom: 30px; -webkit-box-shadow: 0 1px 4px rgba(0, 0, 0, 0.2); - box-shadow: 0 1px 4px rgba(0, 0, 0, 0.2) + box-shadow: 0 1px 4px rgba(0, 0, 0, 0.2); /* Control Nav */ } .am-slider-a4 .am-viewport { max-height: 2000px; -webkit-transition: all 1s ease; - transition: all 1s ease; + transition: all 1s ease; } .loading .am-slider-a4 .am-viewport { max-height: 300px; @@ -12092,13 +13322,13 @@ tbody.am-collapse.am-in { */ .am-slider-a5 { -webkit-box-shadow: 0 1px 4px rgba(0, 0, 0, 0.2); - box-shadow: 0 1px 4px rgba(0, 0, 0, 0.2) + box-shadow: 0 1px 4px rgba(0, 0, 0, 0.2); /* Control Nav */ } .am-slider-a5 .am-viewport { max-height: 2000px; -webkit-transition: all 1s ease; - transition: all 1s ease; + transition: all 1s ease; } .loading .am-slider-a5 .am-viewport { max-height: 300px; @@ -12140,13 +13370,13 @@ tbody.am-collapse.am-in { */ .am-slider-b1 { -webkit-box-shadow: 0 1px 4px rgba(0, 0, 0, 0.2); - box-shadow: 0 1px 4px rgba(0, 0, 0, 0.2) + box-shadow: 0 1px 4px rgba(0, 0, 0, 0.2); /* Direction Nav */ } .am-slider-b1 .am-viewport { max-height: 2000px; -webkit-transition: all 1s ease; - transition: all 1s ease; + transition: all 1s ease; } .loading .am-slider-b1 .am-viewport { max-height: 300px; @@ -12165,23 +13395,28 @@ tbody.am-collapse.am-in { overflow: hidden; opacity: 0.45; cursor: pointer; - color: #ffffff; + color: #fff; text-shadow: 1px 1px 0 rgba(255, 255, 255, 0.3); background-color: rgba(0, 0, 0, 0.5); font-size: 0; text-align: center; -webkit-transition: all .3s ease; - transition: all .3s ease; + transition: all .3s ease; } .am-slider-b1 .am-direction-nav a:before { display: inline-block; - font-family: "FontAwesome", sans-serif; - font-weight: normal; - font-style: normal; - vertical-align: baseline; - line-height: 1; + font: normal normal normal 1.6rem/1 "FontAwesome", sans-serif; + /*font-weight: normal; // 2 + font-style: normal; // 2 + vertical-align: baseline; // 3 + line-height: 1; // 4*/ + font-size: inherit; + text-rendering: auto; -webkit-font-smoothing: antialiased; -moz-osx-font-smoothing: grayscale; + -webkit-transform: translate(0, 0); + -ms-transform: translate(0, 0); + transform: translate(0, 0); content: "\f053"; font-size: 24px; } @@ -12225,13 +13460,13 @@ tbody.am-collapse.am-in { */ .am-slider-b2 { -webkit-box-shadow: 0 1px 4px rgba(0, 0, 0, 0.2); - box-shadow: 0 1px 4px rgba(0, 0, 0, 0.2) + box-shadow: 0 1px 4px rgba(0, 0, 0, 0.2); /* Direction Nav */ } .am-slider-b2 .am-viewport { max-height: 2000px; -webkit-transition: all 1s ease; - transition: all 1s ease; + transition: all 1s ease; } .loading .am-slider-b2 .am-viewport { max-height: 300px; @@ -12250,24 +13485,29 @@ tbody.am-collapse.am-in { overflow: hidden; opacity: 0.45; cursor: pointer; - color: #ffffff; + color: #fff; text-shadow: 1px 1px 0 rgba(255, 255, 255, 0.3); background-color: rgba(0, 0, 0, 0.5); font-size: 0; text-align: center; border-radius: 50%; -webkit-transition: all .3s ease; - transition: all .3s ease; + transition: all .3s ease; } .am-slider-b2 .am-direction-nav a:before { display: inline-block; - font-family: "FontAwesome", sans-serif; - font-weight: normal; - font-style: normal; - vertical-align: baseline; - line-height: 1; + font: normal normal normal 1.6rem/1 "FontAwesome", sans-serif; + /*font-weight: normal; // 2 + font-style: normal; // 2 + vertical-align: baseline; // 3 + line-height: 1; // 4*/ + font-size: inherit; + text-rendering: auto; -webkit-font-smoothing: antialiased; -moz-osx-font-smoothing: grayscale; + -webkit-transform: translate(0, 0); + -ms-transform: translate(0, 0); + transform: translate(0, 0); content: "\f053"; font-size: 16px; line-height: 24px; @@ -12307,13 +13547,13 @@ tbody.am-collapse.am-in { .am-slider-b3 { margin: 15px 30px; -webkit-box-shadow: 0 1px 4px rgba(0, 0, 0, 0.2); - box-shadow: 0 1px 4px rgba(0, 0, 0, 0.2) + box-shadow: 0 1px 4px rgba(0, 0, 0, 0.2); /* Direction Nav */ } .am-slider-b3 .am-viewport { max-height: 2000px; -webkit-transition: all 1s ease; - transition: all 1s ease; + transition: all 1s ease; } .loading .am-slider-b3 .am-viewport { max-height: 300px; @@ -12336,17 +13576,22 @@ tbody.am-collapse.am-in { text-shadow: 1px 1px 0 rgba(255, 255, 255, 0.3); font-size: 0; -webkit-transition: all .3s ease; - transition: all .3s ease; + transition: all .3s ease; } .am-slider-b3 .am-direction-nav a:before { display: inline-block; - font-family: "FontAwesome", sans-serif; - font-weight: normal; - font-style: normal; - vertical-align: baseline; - line-height: 1; + font: normal normal normal 1.6rem/1 "FontAwesome", sans-serif; + /*font-weight: normal; // 2 + font-style: normal; // 2 + vertical-align: baseline; // 3 + line-height: 1; // 4*/ + font-size: inherit; + text-rendering: auto; -webkit-font-smoothing: antialiased; -moz-osx-font-smoothing: grayscale; + -webkit-transform: translate(0, 0); + -ms-transform: translate(0, 0); + transform: translate(0, 0); content: "\f053"; font-size: 24px; } @@ -12386,13 +13631,13 @@ tbody.am-collapse.am-in { .am-slider-b4 { margin: 15px 20px; -webkit-box-shadow: 0 1px 4px rgba(0, 0, 0, 0.2); - box-shadow: 0 1px 4px rgba(0, 0, 0, 0.2) + box-shadow: 0 1px 4px rgba(0, 0, 0, 0.2); /* Direction Nav */ } .am-slider-b4 .am-viewport { max-height: 2000px; -webkit-transition: all 1s ease; - transition: all 1s ease; + transition: all 1s ease; } .loading .am-slider-b4 .am-viewport { max-height: 300px; @@ -12416,19 +13661,24 @@ tbody.am-collapse.am-in { font-size: 0; border-radius: 50%; text-align: center; - color: #ffffff; + color: #fff; -webkit-transition: all .3s ease; - transition: all .3s ease; + transition: all .3s ease; } .am-slider-b4 .am-direction-nav a:before { display: inline-block; - font-family: "FontAwesome", sans-serif; - font-weight: normal; - font-style: normal; - vertical-align: baseline; - line-height: 1; + font: normal normal normal 1.6rem/1 "FontAwesome", sans-serif; + /*font-weight: normal; // 2 + font-style: normal; // 2 + vertical-align: baseline; // 3 + line-height: 1; // 4*/ + font-size: inherit; + text-rendering: auto; -webkit-font-smoothing: antialiased; -moz-osx-font-smoothing: grayscale; + -webkit-transform: translate(0, 0); + -ms-transform: translate(0, 0); + transform: translate(0, 0); content: "\f053"; font-size: 20px; line-height: 24px; @@ -12467,13 +13717,13 @@ tbody.am-collapse.am-in { */ .am-slider-c1 { -webkit-box-shadow: 0 1px 4px rgba(0, 0, 0, 0.2); - box-shadow: 0 1px 4px rgba(0, 0, 0, 0.2) + box-shadow: 0 1px 4px rgba(0, 0, 0, 0.2); /* Control Nav */ } .am-slider-c1 .am-viewport { max-height: 2000px; -webkit-transition: all 1s ease; - transition: all 1s ease; + transition: all 1s ease; } .loading .am-slider-c1 .am-viewport { max-height: 300px; @@ -12481,10 +13731,7 @@ tbody.am-collapse.am-in { .am-slider-c1 .am-control-nav { position: absolute; bottom: 0; - display: -webkit-box; - display: -webkit-flex; - display: -ms-flexbox; - display: flex; + display: table; width: 100%; height: 6px; font-size: 0; @@ -12492,10 +13739,8 @@ tbody.am-collapse.am-in { text-align: center; } .am-slider-c1 .am-control-nav li { - -webkit-box-flex: 1; - -webkit-flex: 1; - -ms-flex: 1; - flex: 1; + display: table-cell; + width: 1%; } .am-slider-c1 .am-control-nav li a { width: 100%; @@ -12518,7 +13763,7 @@ tbody.am-collapse.am-in { bottom: 6px; padding: 8px; width: 100%; - color: #ffffff; + color: #fff; display: block; word-wrap: normal; /* for IE */ @@ -12535,13 +13780,13 @@ tbody.am-collapse.am-in { */ .am-slider-c2 { -webkit-box-shadow: 0 1px 4px rgba(0, 0, 0, 0.2); - box-shadow: 0 1px 4px rgba(0, 0, 0, 0.2) + box-shadow: 0 1px 4px rgba(0, 0, 0, 0.2); /* Control Nav */ } .am-slider-c2 .am-viewport { max-height: 2000px; -webkit-transition: all 1s ease; - transition: all 1s ease; + transition: all 1s ease; } .loading .am-slider-c2 .am-viewport { max-height: 300px; @@ -12580,7 +13825,7 @@ tbody.am-collapse.am-in { bottom: 0; padding: 8px 60px 8px 8px; width: 100%; - color: #ffffff; + color: #fff; display: block; word-wrap: normal; /* for IE */ @@ -12597,13 +13842,13 @@ tbody.am-collapse.am-in { */ .am-slider-c3 { -webkit-box-shadow: 0 1px 4px rgba(0, 0, 0, 0.2); - box-shadow: 0 1px 4px rgba(0, 0, 0, 0.2) + box-shadow: 0 1px 4px rgba(0, 0, 0, 0.2); /* Direction Nav */ } .am-slider-c3 .am-viewport { max-height: 2000px; -webkit-transition: all 1s ease; - transition: all 1s ease; + transition: all 1s ease; } .loading .am-slider-c3 .am-viewport { max-height: 300px; @@ -12616,7 +13861,7 @@ tbody.am-collapse.am-in { height: 30px; left: 0; padding-right: 5px; - color: #ffffff; + color: #fff; display: block; word-wrap: normal; /* for IE */ @@ -12632,13 +13877,13 @@ tbody.am-collapse.am-in { width: 40px; text-align: center; line-height: 30px; - color: #eeeeee; + color: #eee; font-size: 1rem; } .am-slider-c3 .am-slider-counter .am-active { font-size: 1.8rem; font-weight: bold; - color: #ffffff; + color: #fff; } .am-slider-c3 .am-direction-nav a { -webkit-box-sizing: content-box; @@ -12654,23 +13899,28 @@ tbody.am-collapse.am-in { overflow: hidden; opacity: 0.45; cursor: pointer; - color: #ffffff; + color: #fff; text-shadow: 1px 1px 0 rgba(255, 255, 255, 0.3); background-color: rgba(0, 0, 0, 0.5); font-size: 0; text-align: center; -webkit-transition: all .3s ease; - transition: all .3s ease; + transition: all .3s ease; } .am-slider-c3 .am-direction-nav a:before { display: inline-block; - font-family: "FontAwesome", sans-serif; - font-weight: normal; - font-style: normal; - vertical-align: baseline; - line-height: 1; + font: normal normal normal 1.6rem/1 "FontAwesome", sans-serif; + /*font-weight: normal; // 2 + font-style: normal; // 2 + vertical-align: baseline; // 3 + line-height: 1; // 4*/ + font-size: inherit; + text-rendering: auto; -webkit-font-smoothing: antialiased; -moz-osx-font-smoothing: grayscale; + -webkit-transform: translate(0, 0); + -ms-transform: translate(0, 0); + transform: translate(0, 0); content: "\f053"; font-size: 16px; line-height: 24px; @@ -12711,13 +13961,13 @@ tbody.am-collapse.am-in { */ .am-slider-c4 { -webkit-box-shadow: 0 1px 4px rgba(0, 0, 0, 0.2); - box-shadow: 0 1px 4px rgba(0, 0, 0, 0.2) + box-shadow: 0 1px 4px rgba(0, 0, 0, 0.2); /* Direction Nav */ } .am-slider-c4 .am-viewport { max-height: 2000px; -webkit-transition: all 1s ease; - transition: all 1s ease; + transition: all 1s ease; } .loading .am-slider-c4 .am-viewport { max-height: 300px; @@ -12730,7 +13980,7 @@ tbody.am-collapse.am-in { right: 0; left: 0; padding: 8px 40px; - color: #ffffff; + color: #fff; display: block; word-wrap: normal; /* for IE */ @@ -12757,17 +14007,22 @@ tbody.am-collapse.am-in { text-align: center; color: rgba(0, 0, 0, 0.7); -webkit-transition: all .3s ease; - transition: all .3s ease; + transition: all .3s ease; } .am-slider-c4 .am-direction-nav a:before { display: inline-block; - font-family: "FontAwesome", sans-serif; - font-weight: normal; - font-style: normal; - vertical-align: baseline; - line-height: 1; + font: normal normal normal 1.6rem/1 "FontAwesome", sans-serif; + /*font-weight: normal; // 2 + font-style: normal; // 2 + vertical-align: baseline; // 3 + line-height: 1; // 4*/ + font-size: inherit; + text-rendering: auto; -webkit-font-smoothing: antialiased; -moz-osx-font-smoothing: grayscale; + -webkit-transform: translate(0, 0); + -ms-transform: translate(0, 0); + transform: translate(0, 0); content: "\f053"; font-size: 24px; } @@ -12807,13 +14062,13 @@ tbody.am-collapse.am-in { */ .am-slider-d1 { -webkit-box-shadow: 0 1px 4px rgba(0, 0, 0, 0.2); - box-shadow: 0 1px 4px rgba(0, 0, 0, 0.2) + box-shadow: 0 1px 4px rgba(0, 0, 0, 0.2); /* Direction Nav */ } .am-slider-d1 .am-viewport { max-height: 2000px; -webkit-transition: all 1s ease; - transition: all 1s ease; + transition: all 1s ease; } .loading .am-slider-d1 .am-viewport { max-height: 300px; @@ -12821,7 +14076,7 @@ tbody.am-collapse.am-in { .am-slider-d1 .am-slider-desc { padding: 8px 35px; width: 100%; - color: #ffffff; + color: #fff; background-color: #0e90d2; } .am-slider-d1 .am-slider-title { @@ -12858,17 +14113,22 @@ tbody.am-collapse.am-in { color: rgba(255, 255, 255, 0.9); border-radius: 50%; -webkit-transition: all 03s ease; - transition: all 03s ease; + transition: all 03s ease; } .am-slider-d1 .am-direction-nav a:before { display: inline-block; - font-family: "FontAwesome", sans-serif; - font-weight: normal; - font-style: normal; - vertical-align: baseline; - line-height: 1; + font: normal normal normal 1.6rem/1 "FontAwesome", sans-serif; + /*font-weight: normal; // 2 + font-style: normal; // 2 + vertical-align: baseline; // 3 + line-height: 1; // 4*/ + font-size: inherit; + text-rendering: auto; -webkit-font-smoothing: antialiased; -moz-osx-font-smoothing: grayscale; + -webkit-transform: translate(0, 0); + -ms-transform: translate(0, 0); + transform: translate(0, 0); content: "\f053"; font-size: 16px; line-height: 24px; @@ -12908,13 +14168,13 @@ tbody.am-collapse.am-in { .am-slider-d2 { margin-bottom: 20px; -webkit-box-shadow: 0 1px 4px rgba(0, 0, 0, 0.2); - box-shadow: 0 1px 4px rgba(0, 0, 0, 0.2) + box-shadow: 0 1px 4px rgba(0, 0, 0, 0.2); /* Control Nav */ } .am-slider-d2 .am-viewport { max-height: 2000px; -webkit-transition: all 1s ease; - transition: all 1s ease; + transition: all 1s ease; } .loading .am-slider-d2 .am-viewport { max-height: 300px; @@ -12924,7 +14184,7 @@ tbody.am-collapse.am-in { left: 10px; bottom: 20px; right: 50px; - color: #ffffff; + color: #fff; } .am-slider-d2 .am-slider-content { background-color: rgba(0, 0, 0, 0.7); @@ -12997,13 +14257,13 @@ tbody.am-collapse.am-in { .am-slider-d3 { margin-bottom: 10px; -webkit-box-shadow: 0 1px 4px rgba(0, 0, 0, 0.2); - box-shadow: 0 1px 4px rgba(0, 0, 0, 0.2) + box-shadow: 0 1px 4px rgba(0, 0, 0, 0.2); /* Control Nav */ } .am-slider-d3 .am-viewport { max-height: 2000px; -webkit-transition: all 1s ease; - transition: all 1s ease; + transition: all 1s ease; } .loading .am-slider-d3 .am-viewport { max-height: 300px; @@ -13011,7 +14271,7 @@ tbody.am-collapse.am-in { .am-slider-d3 .am-slider-desc { position: absolute; bottom: 0; - color: #ffffff; + color: #fff; width: 100%; background-color: rgba(0, 0, 0, 0.7); padding: 8px 5px; @@ -13039,16 +14299,8 @@ tbody.am-collapse.am-in { .am-slider-d3 .am-control-thumbs { position: static; overflow: hidden; - display: -webkit-box; - display: -webkit-flex; - display: -ms-flexbox; - display: flex; } .am-slider-d3 .am-control-thumbs li { - -webkit-box-flex: 1; - -webkit-flex: 1; - -ms-flex: 1; - flex: 1; padding: 12px 4px 4px; position: relative; } @@ -13083,113 +14335,18 @@ tbody.am-collapse.am-in { transform: rotate(360deg); margin-left: -4px; -webkit-transition: all 0.2s; - transition: all 0.2s; + transition: all 0.2s; } .am-slider-d3 .am-direction-nav, .am-slider-d3 .am-pauseplay { display: none; } -/** - * Slider Theme: one - */ -.am-slider-one { - -webkit-box-shadow: 0 1px 4px rgba(0, 0, 0, 0.5); - box-shadow: 0 1px 4px rgba(0, 0, 0, 0.5); - margin: 0 10px - /* Control Nav */ -} -.am-slider-one .am-viewport { - max-height: 2000px; - -webkit-transition: all 1s ease; - transition: all 1s ease; -} -.loading .am-slider-one .am-viewport { - max-height: 300px; -} -.am-slider-one .am-viewport .am-slider-desc { - position: absolute; - left: 0; - bottom: 0; - height: 26px; - width: 100%; - line-height: 26px; - background: rgba(0, 0, 0, 0.5); - color: #ffffff; -} -.am-slider-one .am-viewport .am-slider-desc .am-slider-title { - font-weight: normal; - font-size: 12px; - text-indent: 4px; - padding-right: 80px; - display: block; - word-wrap: normal; - /* for IE */ - text-overflow: ellipsis; - white-space: nowrap; - overflow: hidden; -} -.am-slider-one .am-control-nav { - display: none; -} -.am-slider-one .am-direction-nav a { - position: absolute; - top: 50%; - z-index: 10; - display: block; - width: 24px; - height: 24px; - margin: -12px 0 0; - overflow: hidden; - opacity: 0.45; - cursor: pointer; - color: rgba(0, 0, 0, 0.8); - text-shadow: 1px 1px 0 rgba(255, 255, 255, 0.3); - -webkit-transition: all .3s ease; - transition: all .3s ease; -} -.am-slider-one .am-direction-nav a:before { - display: inline-block; - font-family: "FontAwesome", sans-serif; - font-weight: normal; - font-style: normal; - vertical-align: baseline; - line-height: 1; - -webkit-font-smoothing: antialiased; - -moz-osx-font-smoothing: grayscale; - color: rgba(0, 0, 0, 0.7); - content: "\f053"; - font-size: 24px; -} -.am-slider-one .am-direction-nav a.am-next:before { - content: "\f054"; -} -.am-slider-one .am-direction-nav .am-prev { - left: 10px; -} -.am-slider-one .am-direction-nav .am-next { - right: 10px; - text-align: right; -} -.am-slider-one .am-direction-nav .am-disabled { - opacity: 0!important; - cursor: default; -} -.am-slider-one:hover .am-prev { - opacity: 0.7; - left: 10px; -} -.am-slider-one:hover .am-prev:hover { - opacity: 1; -} -.am-slider-one:hover .am-next { - opacity: 0.7; - right: 10px; -} -.am-slider-one:hover .am-next:hover { - opacity: 1; +.am-slider-d3 .am-control-thumbs { + display: table; } -.am-slider-one .am-pauseplay { - display: none; +.am-slider-d3 .am-control-thumbs li { + display: table-cell; + width: 1%; } [data-am-widget='tabs'] { margin: 10px; @@ -13232,7 +14389,7 @@ tbody.am-collapse.am-in { } .am-tabs-default .am-tabs-nav > .am-active a { background-color: #0e90d2; - color: #ffffff; + color: #fff; } /** * Tabs Theme: d2 @@ -13268,46 +14425,6 @@ tbody.am-collapse.am-in { z-index: 1; border-bottom-color: #0e90d2; } -/** - * Tabs Theme: one - */ -.am-tabs-one { - background: #ffffff; -} -.am-tabs-one .am-tabs-nav { - height: 36px; - background-color: #ffffff; - font-size: 14px; - border-radius: 2px; -} -.am-tabs-one .am-tabs-nav a { - line-height: 34px; - color: #15afef; -} -.am-tabs-one .am-tabs-nav li { - border: 1px solid #15afef; -} -.am-tabs-one .am-tabs-nav li:first-child { - border-bottom-left-radius: 2px; - border-top-left-radius: 2px; -} -.am-tabs-one .am-tabs-nav li:last-child { - border-bottom-right-radius: 2px; - border-top-right-radius: 2px; -} -.am-tabs-one .am-tabs-nav li + li { - border-left: none; -} -.am-tabs-one .am-tabs-nav .am-active a { - background-color: #15afef; - color: #ffffff; -} -.am-tabs-one .am-tabs-bd { - border: none; -} -.am-tabs-one .am-tab-panel { - padding: 15px 5px 20px; -} .am-titlebar { margin-top: 20px; height: 45px; @@ -13449,76 +14566,7 @@ tbody.am-collapse.am-in { .am-titlebar-cols .am-titlebar-nav a:last-child { margin-right: 10px; } -/** - * Titlebar Theme: one - */ -.am-titlebar-one { - display: -webkit-box; - display: -webkit-flex; - display: -ms-flexbox; - display: flex; - margin-left: 10px; - margin-right: 10px; - height: 45px; - line-height: 44px; - background-color: #ffffff; - overflow: hidden; - border-bottom: 1px solid #15afef; -} -.am-titlebar-one .am-titlebar-title { - padding-left: 12px; - position: relative; - color: #222222; - display: block; - word-wrap: normal; - /* for IE */ - text-overflow: ellipsis; - white-space: nowrap; - overflow: hidden; -} -.am-titlebar-one .am-titlebar-title:before { - content: ""; - position: absolute; - left: 2px; - top: 8px; - bottom: 8px; - border-left: 3px solid #15afef; -} -.am-titlebar-one .am-titlebar-title a { - color: #222222; -} -.am-titlebar-one .am-titlebar-title img { - height: 24px; - vertical-align: top; - margin-top: 10px; -} -.am-titlebar-one .am-titlebar-title h1, -.am-titlebar-one .am-titlebar-title h2, -.am-titlebar-one .am-titlebar-title h3, -.am-titlebar-one .am-titlebar-title h4, -.am-titlebar-one .am-titlebar-title h5, -.am-titlebar-one .am-titlebar-title h6, -.am-titlebar-one .am-titlebar-title strong, -.am-titlebar-one .am-titlebar-title em { - font-style: normal; - font-weight: normal; - margin-bottom: 0; -} -.am-titlebar-one .am-titlebar-title ul, -.am-titlebar-one .am-titlebar-title li { - list-style: none; - padding-left: 0; -} -.am-titlebar-one .am-titlebar-nav { - -webkit-box-flex: 1; - -webkit-flex: 1; - -ms-flex: 1; - flex: 1; - text-align: right; - padding-right: 5px; - color: #999999; - font-size: 1.4rem; -} -.am-titlebar-one .am-titlebar-nav a { - color: #999999; +.am-wechatpay .am-wechatpay-btn { + margin-top: 1rem; + margin-bottom: 1rem; } diff --git a/public/assets/css/amazeui.flat.min.css b/public/assets/css/amazeui.flat.min.css new file mode 100755 index 0000000..762b863 --- /dev/null +++ b/public/assets/css/amazeui.flat.min.css @@ -0,0 +1 @@ +/*! Amaze UI v2.7.2 | by Amaze UI Team | (c) 2016 AllMobilize, Inc. | Licensed under MIT | 2016-08-17T16:17:24+0800 */*,:after,:before{-webkit-box-sizing:border-box;box-sizing:border-box}body,html{min-height:100%}html{-ms-text-size-adjust:100%;-webkit-text-size-adjust:100%}body{margin:0}article,aside,details,figcaption,figure,footer,header,hgroup,main,menu,nav,section,summary{display:block}audio,canvas,progress,video{display:inline-block;vertical-align:baseline}audio:not([controls]){display:none;height:0}[hidden],script,template{display:none}a{background-color:transparent}a:focus{outline:thin dotted}a:active,a:hover{outline:0}a,ins{text-decoration:none}abbr[title]{border-bottom:1px dotted}b,strong{font-weight:700}pre{white-space:pre-wrap}q{quotes:"\201C" "\201D" "\2018" "\2019"}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sup{top:-.5em}sub{bottom:-.25em}img{-webkit-box-sizing:border-box;box-sizing:border-box;vertical-align:middle;border:0}svg:not(:root){overflow:hidden}figure{margin:0}code,kbd,pre,samp{font-family:Monaco,Menlo,Consolas,"Courier New",FontAwesome,monospace;font-size:1em}fieldset{border:1px solid silver;margin:0 2px;padding:.35em .625em .75em}legend{border:0;padding:0}button,input,optgroup,select,textarea{color:inherit;font:inherit;margin:0}button{overflow:visible}button,input{line-height:normal}button,select{text-transform:none}button,html input[type=button],input[type=reset],input[type=submit]{-webkit-appearance:button;cursor:pointer}input[type=checkbox],input[type=radio]{cursor:pointer;padding:0;-webkit-box-sizing:border-box;box-sizing:border-box}button[disabled],html input[disabled]{cursor:default}button::-moz-focus-inner,input::-moz-focus-inner{border:0;padding:0}input[type=number]::-webkit-inner-spin-button,input[type=number]::-webkit-outer-spin-button{height:auto}input[type=search]{-webkit-appearance:textfield;-webkit-box-sizing:content-box;box-sizing:content-box}input[type=search]::-webkit-search-cancel-button,input[type=search]::-webkit-search-decoration{-webkit-appearance:none}textarea{overflow:auto;vertical-align:top;resize:vertical}optgroup{font-weight:700}table{border-collapse:collapse;border-spacing:0}td,th{padding:0}html{font-size:10px;-webkit-tap-highlight-color:rgba(0,0,0,0)}body{position:relative;background:#fff;font-family:"Segoe UI","Lucida Grande",Helvetica,Arial,"Microsoft YaHei",FreeSans,Arimo,"Droid Sans","wenquanyi micro hei","Hiragino Sans GB","Hiragino Sans GB W3",FontAwesome,sans-serif;font-weight:400;line-height:1.6;color:#333;font-size:1.6rem}body,button,input,select,textarea{text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;-moz-font-feature-settings:"liga","kern"}@media only screen and (max-width:640px){body{word-wrap:break-word;-webkit-hyphens:auto;-ms-hyphens:auto;-moz-hyphens:auto;hyphens:auto}}a{color:#0e90d2}a:focus,a:hover{color:#095f8a}a:focus{outline:thin dotted;outline:1px auto -webkit-focus-ring-color;outline-offset:-2px}ins{background:#ffa;color:#333}mark{background:#ffa;color:#333}abbr[title],dfn[title]{cursor:help}dfn[title]{border-bottom:1px dotted;font-style:normal}address,blockquote,dl,fieldset,figure,hr,ol,p,pre,ul{margin:0 0 1.6rem 0}*+address,*+blockquote,*+dl,*+fieldset,*+figure,*+hr,*+ol,*+p,*+pre,*+ul{margin-top:1.6rem}h1,h2,h3,h4,h5,h6{margin:0 0 1.6rem 0;font-weight:600;font-size:100%}h1{font-size:1.5em}h2{font-size:1.25em}*+h1,*+h2,*+h3,*+h4,*+h5,*+h6{margin-top:2em}ol,ul{padding-left:2em}ol>li>ol,ol>li>ul,ul>li>ol,ul>li>ul{margin:1em 0}dt{font-weight:700}dt+dd{margin-top:.5em}dd{margin-left:0}dd+dt{margin-top:1em}hr{display:block;padding:0;border:0;height:0;border-top:1px solid #eee;-webkit-box-sizing:content-box;box-sizing:content-box}address{font-style:normal}blockquote{padding-top:5px;padding-bottom:5px;padding-left:15px;border-left:4px solid #ddd;font-family:Georgia,"Times New Roman",Times,Kai,"Kaiti SC",KaiTi,BiauKai,FontAwesome,serif}blockquote small{display:block;color:#999;font-family:"Segoe UI","Lucida Grande",Helvetica,Arial,"Microsoft YaHei",FreeSans,Arimo,"Droid Sans","wenquanyi micro hei","Hiragino Sans GB","Hiragino Sans GB W3",FontAwesome,sans-serif;text-align:right}blockquote p:last-of-type{margin-bottom:0}iframe{border:0}button,input:not([type=radio]):not([type=checkbox]),select{vertical-align:middle}.am-scrollbar-measure{width:100px;height:100px;overflow:scroll;position:absolute;top:-9999px}.am-container{-webkit-box-sizing:border-box;box-sizing:border-box;margin-left:auto;margin-right:auto;padding-left:1rem;padding-right:1rem;width:100%;max-width:1000px}.am-container:after,.am-container:before{content:" ";display:table}.am-container:after{clear:both}@media only screen and (min-width:641px){.am-container{padding-left:1.5rem;padding-right:1.5rem}}.am-container>.am-g{width:auto;margin-left:-1rem;margin-right:-1rem}@media only screen and (min-width:641px){.am-container>.am-g{margin-left:-1.5rem;margin-right:-1.5rem}}.am-g{margin:0 auto;width:100%}.am-g:after,.am-g:before{content:" ";display:table}.am-g:after{clear:both}.am-g .am-g{margin-left:-1rem;margin-right:-1rem;width:auto}.am-g .am-g.am-g-collapse{margin-left:0;margin-right:0;width:auto}@media only screen and (min-width:641px){.am-g .am-g{margin-left:-1.5rem;margin-right:-1.5rem}}.am-g.am-g-collapse .am-g{margin-left:0;margin-right:0}.am-g-collapse [class*=am-u-]{padding-left:0;padding-right:0}.am-g-fixed{max-width:1000px}[class*=am-u-]{width:100%;padding-left:1rem;padding-right:1rem;float:left;position:relative}[class*=am-u-]+[class*=am-u-]:last-child{float:right}[class*=am-u-]+[class*=am-u-].am-u-end{float:left}@media only screen and (min-width:641px){[class*=am-u-]{padding-left:1.5rem;padding-right:1.5rem}}[class*=am-u-pull-]{left:auto}[class*=am-u-push-]{right:auto}@media only screen{.am-u-sm-1{width:8.33333333%}.am-u-sm-2{width:16.66666667%}.am-u-sm-3{width:25%}.am-u-sm-4{width:33.33333333%}.am-u-sm-5{width:41.66666667%}.am-u-sm-6{width:50%}.am-u-sm-7{width:58.33333333%}.am-u-sm-8{width:66.66666667%}.am-u-sm-9{width:75%}.am-u-sm-10{width:83.33333333%}.am-u-sm-11{width:91.66666667%}.am-u-sm-12{width:100%}.am-u-sm-pull-0{right:0}.am-u-sm-pull-1{right:8.33333333%}.am-u-sm-pull-2{right:16.66666667%}.am-u-sm-pull-3{right:25%}.am-u-sm-pull-4{right:33.33333333%}.am-u-sm-pull-5{right:41.66666667%}.am-u-sm-pull-6{right:50%}.am-u-sm-pull-7{right:58.33333333%}.am-u-sm-pull-8{right:66.66666667%}.am-u-sm-pull-9{right:75%}.am-u-sm-pull-10{right:83.33333333%}.am-u-sm-pull-11{right:91.66666667%}.am-u-sm-push-0{left:0}.am-u-sm-push-1{left:8.33333333%}.am-u-sm-push-2{left:16.66666667%}.am-u-sm-push-3{left:25%}.am-u-sm-push-4{left:33.33333333%}.am-u-sm-push-5{left:41.66666667%}.am-u-sm-push-6{left:50%}.am-u-sm-push-7{left:58.33333333%}.am-u-sm-push-8{left:66.66666667%}.am-u-sm-push-9{left:75%}.am-u-sm-push-10{left:83.33333333%}.am-u-sm-push-11{left:91.66666667%}.am-u-sm-offset-0{margin-left:0}.am-u-sm-offset-1{margin-left:8.33333333%}.am-u-sm-offset-2{margin-left:16.66666667%}.am-u-sm-offset-3{margin-left:25%}.am-u-sm-offset-4{margin-left:33.33333333%}.am-u-sm-offset-5{margin-left:41.66666667%}.am-u-sm-offset-6{margin-left:50%}.am-u-sm-offset-7{margin-left:58.33333333%}.am-u-sm-offset-8{margin-left:66.66666667%}.am-u-sm-offset-9{margin-left:75%}.am-u-sm-offset-10{margin-left:83.33333333%}.am-u-sm-offset-11{margin-left:91.66666667%}.am-u-sm-reset-order{margin-left:0;margin-right:0;left:auto;right:auto;float:left}[class*=am-u-].am-u-sm-centered{margin-left:auto;margin-right:auto;float:none}[class*=am-u-].am-u-sm-centered:last-child{float:none}[class*=am-u-].am-u-sm-uncentered{margin-left:0;margin-right:0;float:left}[class*=am-u-].am-u-sm-uncentered:last-child{float:left}}@media only screen and (min-width:641px){.am-u-md-1{width:8.33333333%}.am-u-md-2{width:16.66666667%}.am-u-md-3{width:25%}.am-u-md-4{width:33.33333333%}.am-u-md-5{width:41.66666667%}.am-u-md-6{width:50%}.am-u-md-7{width:58.33333333%}.am-u-md-8{width:66.66666667%}.am-u-md-9{width:75%}.am-u-md-10{width:83.33333333%}.am-u-md-11{width:91.66666667%}.am-u-md-12{width:100%}.am-u-md-pull-0{right:0}.am-u-md-pull-1{right:8.33333333%}.am-u-md-pull-2{right:16.66666667%}.am-u-md-pull-3{right:25%}.am-u-md-pull-4{right:33.33333333%}.am-u-md-pull-5{right:41.66666667%}.am-u-md-pull-6{right:50%}.am-u-md-pull-7{right:58.33333333%}.am-u-md-pull-8{right:66.66666667%}.am-u-md-pull-9{right:75%}.am-u-md-pull-10{right:83.33333333%}.am-u-md-pull-11{right:91.66666667%}.am-u-md-push-0{left:0}.am-u-md-push-1{left:8.33333333%}.am-u-md-push-2{left:16.66666667%}.am-u-md-push-3{left:25%}.am-u-md-push-4{left:33.33333333%}.am-u-md-push-5{left:41.66666667%}.am-u-md-push-6{left:50%}.am-u-md-push-7{left:58.33333333%}.am-u-md-push-8{left:66.66666667%}.am-u-md-push-9{left:75%}.am-u-md-push-10{left:83.33333333%}.am-u-md-push-11{left:91.66666667%}.am-u-md-offset-0{margin-left:0}.am-u-md-offset-1{margin-left:8.33333333%}.am-u-md-offset-2{margin-left:16.66666667%}.am-u-md-offset-3{margin-left:25%}.am-u-md-offset-4{margin-left:33.33333333%}.am-u-md-offset-5{margin-left:41.66666667%}.am-u-md-offset-6{margin-left:50%}.am-u-md-offset-7{margin-left:58.33333333%}.am-u-md-offset-8{margin-left:66.66666667%}.am-u-md-offset-9{margin-left:75%}.am-u-md-offset-10{margin-left:83.33333333%}.am-u-md-offset-11{margin-left:91.66666667%}.am-u-md-reset-order{margin-left:0;margin-right:0;left:auto;right:auto;float:left}[class*=am-u-].am-u-md-centered{margin-left:auto;margin-right:auto;float:none}[class*=am-u-].am-u-md-centered:last-child{float:none}[class*=am-u-].am-u-md-uncentered{margin-left:0;margin-right:0;float:left}[class*=am-u-].am-u-md-uncentered:last-child{float:left}}@media only screen and (min-width:1025px){.am-u-lg-1{width:8.33333333%}.am-u-lg-2{width:16.66666667%}.am-u-lg-3{width:25%}.am-u-lg-4{width:33.33333333%}.am-u-lg-5{width:41.66666667%}.am-u-lg-6{width:50%}.am-u-lg-7{width:58.33333333%}.am-u-lg-8{width:66.66666667%}.am-u-lg-9{width:75%}.am-u-lg-10{width:83.33333333%}.am-u-lg-11{width:91.66666667%}.am-u-lg-12{width:100%}.am-u-lg-pull-0{right:0}.am-u-lg-pull-1{right:8.33333333%}.am-u-lg-pull-2{right:16.66666667%}.am-u-lg-pull-3{right:25%}.am-u-lg-pull-4{right:33.33333333%}.am-u-lg-pull-5{right:41.66666667%}.am-u-lg-pull-6{right:50%}.am-u-lg-pull-7{right:58.33333333%}.am-u-lg-pull-8{right:66.66666667%}.am-u-lg-pull-9{right:75%}.am-u-lg-pull-10{right:83.33333333%}.am-u-lg-pull-11{right:91.66666667%}.am-u-lg-push-0{left:0}.am-u-lg-push-1{left:8.33333333%}.am-u-lg-push-2{left:16.66666667%}.am-u-lg-push-3{left:25%}.am-u-lg-push-4{left:33.33333333%}.am-u-lg-push-5{left:41.66666667%}.am-u-lg-push-6{left:50%}.am-u-lg-push-7{left:58.33333333%}.am-u-lg-push-8{left:66.66666667%}.am-u-lg-push-9{left:75%}.am-u-lg-push-10{left:83.33333333%}.am-u-lg-push-11{left:91.66666667%}.am-u-lg-offset-0{margin-left:0}.am-u-lg-offset-1{margin-left:8.33333333%}.am-u-lg-offset-2{margin-left:16.66666667%}.am-u-lg-offset-3{margin-left:25%}.am-u-lg-offset-4{margin-left:33.33333333%}.am-u-lg-offset-5{margin-left:41.66666667%}.am-u-lg-offset-6{margin-left:50%}.am-u-lg-offset-7{margin-left:58.33333333%}.am-u-lg-offset-8{margin-left:66.66666667%}.am-u-lg-offset-9{margin-left:75%}.am-u-lg-offset-10{margin-left:83.33333333%}.am-u-lg-offset-11{margin-left:91.66666667%}.am-u-lg-reset-order{margin-left:0;margin-right:0;left:auto;right:auto;float:left}[class*=am-u-].am-u-lg-centered{margin-left:auto;margin-right:auto;float:none}[class*=am-u-].am-u-lg-centered:last-child{float:none}[class*=am-u-].am-u-lg-uncentered{margin-left:0;margin-right:0;float:left}[class*=am-u-].am-u-lg-uncentered:last-child{float:left}}[class*=am-avg-]{display:block;padding:0;margin:0;list-style:none}[class*=am-avg-]:after,[class*=am-avg-]:before{content:" ";display:table}[class*=am-avg-]:after{clear:both}[class*=am-avg-]>li{display:block;height:auto;float:left}@media only screen{.am-avg-sm-1>li{width:100%}.am-avg-sm-1>li:nth-of-type(n){clear:none}.am-avg-sm-1>li:nth-of-type(1n+1){clear:both}.am-avg-sm-2>li{width:50%}.am-avg-sm-2>li:nth-of-type(n){clear:none}.am-avg-sm-2>li:nth-of-type(2n+1){clear:both}.am-avg-sm-3>li{width:33.33333333%}.am-avg-sm-3>li:nth-of-type(n){clear:none}.am-avg-sm-3>li:nth-of-type(3n+1){clear:both}.am-avg-sm-4>li{width:25%}.am-avg-sm-4>li:nth-of-type(n){clear:none}.am-avg-sm-4>li:nth-of-type(4n+1){clear:both}.am-avg-sm-5>li{width:20%}.am-avg-sm-5>li:nth-of-type(n){clear:none}.am-avg-sm-5>li:nth-of-type(5n+1){clear:both}.am-avg-sm-6>li{width:16.66666667%}.am-avg-sm-6>li:nth-of-type(n){clear:none}.am-avg-sm-6>li:nth-of-type(6n+1){clear:both}.am-avg-sm-7>li{width:14.28571429%}.am-avg-sm-7>li:nth-of-type(n){clear:none}.am-avg-sm-7>li:nth-of-type(7n+1){clear:both}.am-avg-sm-8>li{width:12.5%}.am-avg-sm-8>li:nth-of-type(n){clear:none}.am-avg-sm-8>li:nth-of-type(8n+1){clear:both}.am-avg-sm-9>li{width:11.11111111%}.am-avg-sm-9>li:nth-of-type(n){clear:none}.am-avg-sm-9>li:nth-of-type(9n+1){clear:both}.am-avg-sm-10>li{width:10%}.am-avg-sm-10>li:nth-of-type(n){clear:none}.am-avg-sm-10>li:nth-of-type(10n+1){clear:both}.am-avg-sm-11>li{width:9.09090909%}.am-avg-sm-11>li:nth-of-type(n){clear:none}.am-avg-sm-11>li:nth-of-type(11n+1){clear:both}.am-avg-sm-12>li{width:8.33333333%}.am-avg-sm-12>li:nth-of-type(n){clear:none}.am-avg-sm-12>li:nth-of-type(12n+1){clear:both}}@media only screen and (min-width:641px){.am-avg-md-1>li{width:100%}.am-avg-md-1>li:nth-of-type(n){clear:none}.am-avg-md-1>li:nth-of-type(1n+1){clear:both}.am-avg-md-2>li{width:50%}.am-avg-md-2>li:nth-of-type(n){clear:none}.am-avg-md-2>li:nth-of-type(2n+1){clear:both}.am-avg-md-3>li{width:33.33333333%}.am-avg-md-3>li:nth-of-type(n){clear:none}.am-avg-md-3>li:nth-of-type(3n+1){clear:both}.am-avg-md-4>li{width:25%}.am-avg-md-4>li:nth-of-type(n){clear:none}.am-avg-md-4>li:nth-of-type(4n+1){clear:both}.am-avg-md-5>li{width:20%}.am-avg-md-5>li:nth-of-type(n){clear:none}.am-avg-md-5>li:nth-of-type(5n+1){clear:both}.am-avg-md-6>li{width:16.66666667%}.am-avg-md-6>li:nth-of-type(n){clear:none}.am-avg-md-6>li:nth-of-type(6n+1){clear:both}.am-avg-md-7>li{width:14.28571429%}.am-avg-md-7>li:nth-of-type(n){clear:none}.am-avg-md-7>li:nth-of-type(7n+1){clear:both}.am-avg-md-8>li{width:12.5%}.am-avg-md-8>li:nth-of-type(n){clear:none}.am-avg-md-8>li:nth-of-type(8n+1){clear:both}.am-avg-md-9>li{width:11.11111111%}.am-avg-md-9>li:nth-of-type(n){clear:none}.am-avg-md-9>li:nth-of-type(9n+1){clear:both}.am-avg-md-10>li{width:10%}.am-avg-md-10>li:nth-of-type(n){clear:none}.am-avg-md-10>li:nth-of-type(10n+1){clear:both}.am-avg-md-11>li{width:9.09090909%}.am-avg-md-11>li:nth-of-type(n){clear:none}.am-avg-md-11>li:nth-of-type(11n+1){clear:both}.am-avg-md-12>li{width:8.33333333%}.am-avg-md-12>li:nth-of-type(n){clear:none}.am-avg-md-12>li:nth-of-type(12n+1){clear:both}}@media only screen and (min-width:1025px){.am-avg-lg-1>li{width:100%}.am-avg-lg-1>li:nth-of-type(n){clear:none}.am-avg-lg-1>li:nth-of-type(1n+1){clear:both}.am-avg-lg-2>li{width:50%}.am-avg-lg-2>li:nth-of-type(n){clear:none}.am-avg-lg-2>li:nth-of-type(2n+1){clear:both}.am-avg-lg-3>li{width:33.33333333%}.am-avg-lg-3>li:nth-of-type(n){clear:none}.am-avg-lg-3>li:nth-of-type(3n+1){clear:both}.am-avg-lg-4>li{width:25%}.am-avg-lg-4>li:nth-of-type(n){clear:none}.am-avg-lg-4>li:nth-of-type(4n+1){clear:both}.am-avg-lg-5>li{width:20%}.am-avg-lg-5>li:nth-of-type(n){clear:none}.am-avg-lg-5>li:nth-of-type(5n+1){clear:both}.am-avg-lg-6>li{width:16.66666667%}.am-avg-lg-6>li:nth-of-type(n){clear:none}.am-avg-lg-6>li:nth-of-type(6n+1){clear:both}.am-avg-lg-7>li{width:14.28571429%}.am-avg-lg-7>li:nth-of-type(n){clear:none}.am-avg-lg-7>li:nth-of-type(7n+1){clear:both}.am-avg-lg-8>li{width:12.5%}.am-avg-lg-8>li:nth-of-type(n){clear:none}.am-avg-lg-8>li:nth-of-type(8n+1){clear:both}.am-avg-lg-9>li{width:11.11111111%}.am-avg-lg-9>li:nth-of-type(n){clear:none}.am-avg-lg-9>li:nth-of-type(9n+1){clear:both}.am-avg-lg-10>li{width:10%}.am-avg-lg-10>li:nth-of-type(n){clear:none}.am-avg-lg-10>li:nth-of-type(10n+1){clear:both}.am-avg-lg-11>li{width:9.09090909%}.am-avg-lg-11>li:nth-of-type(n){clear:none}.am-avg-lg-11>li:nth-of-type(11n+1){clear:both}.am-avg-lg-12>li{width:8.33333333%}.am-avg-lg-12>li:nth-of-type(n){clear:none}.am-avg-lg-12>li:nth-of-type(12n+1){clear:both}}code,kbd,pre,samp{font-family:Monaco,Menlo,Consolas,"Courier New",FontAwesome,monospace}code{padding:2px 4px;font-size:1.3rem;color:#c7254e;background-color:#f8f8f8;white-space:nowrap;border-radius:2px}pre{display:block;padding:1rem;margin:1rem 0;font-size:1.3rem;line-height:1.6;word-break:break-all;word-wrap:break-word;color:#555;background-color:#f8f8f8;border:1px solid #dedede;border-radius:2px}pre code{padding:0;font-size:inherit;color:inherit;white-space:pre-wrap;background-color:transparent;border-radius:0}.am-pre-scrollable{max-height:24rem;overflow-y:scroll}.am-btn{display:inline-block;margin-bottom:0;padding:.5em 1em;vertical-align:middle;font-size:1.6rem;font-weight:400;line-height:1.2;text-align:center;white-space:nowrap;background-image:none;border:1px solid transparent;border-radius:2px;cursor:pointer;outline:0;-webkit-appearance:none;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;-webkit-transition:background-color .3s ease-out,border-color .3s ease-out;transition:background-color .3s ease-out,border-color .3s ease-out}.am-btn.am-square{border-radius:0}.am-btn:active:focus,.am-btn:focus{outline:thin dotted;outline:1px auto -webkit-focus-ring-color;outline-offset:-2px}.am-btn:focus,.am-btn:hover{color:#444;text-decoration:none}.am-btn.am-active,.am-btn:active{background-image:none;-webkit-box-shadow:inset 0 3px 5px rgba(0,0,0,.15);box-shadow:inset 0 3px 5px rgba(0,0,0,.15)}.am-btn.am-disabled,.am-btn[disabled],fieldset[disabled] .am-btn{pointer-events:none;border-color:transparent;cursor:not-allowed;opacity:.45;-webkit-box-shadow:none;box-shadow:none}.am-btn.am-round{border-radius:1000px}.am-btn.am-radius{border-radius:2px}.am-btn-default{color:#444;background-color:#e6e6e6;border-color:#e6e6e6}a.am-btn-default:visited{color:#444}.am-btn-default.am-active,.am-btn-default:active,.am-btn-default:focus,.am-btn-default:hover,.am-dropdown.am-active .am-btn-default.am-dropdown-toggle{color:#444;border-color:#c7c7c7}.am-btn-default:focus,.am-btn-default:hover{background-color:#d4d4d4}.am-btn-default.am-active,.am-btn-default:active,.am-dropdown.am-active .am-btn-default.am-dropdown-toggle{background-image:none;background-color:#c2c2c2}.am-btn-default.am-disabled,.am-btn-default.am-disabled.am-active,.am-btn-default.am-disabled:active,.am-btn-default.am-disabled:focus,.am-btn-default.am-disabled:hover,.am-btn-default[disabled],.am-btn-default[disabled].am-active,.am-btn-default[disabled]:active,.am-btn-default[disabled]:focus,.am-btn-default[disabled]:hover,fieldset[disabled] .am-btn-default,fieldset[disabled] .am-btn-default.am-active,fieldset[disabled] .am-btn-default:active,fieldset[disabled] .am-btn-default:focus,fieldset[disabled] .am-btn-default:hover{background-color:#e6e6e6;border-color:#e6e6e6}.am-btn-group .am-btn-default,.am-btn-group-stacked .am-btn-default{border-color:#d9d9d9}.am-btn-primary{color:#fff;background-color:#0e90d2;border-color:#0e90d2}a.am-btn-primary:visited{color:#fff}.am-btn-primary.am-active,.am-btn-primary:active,.am-btn-primary:focus,.am-btn-primary:hover,.am-dropdown.am-active .am-btn-primary.am-dropdown-toggle{color:#fff;border-color:#0a6999}.am-btn-primary:focus,.am-btn-primary:hover{background-color:#0c79b1}.am-btn-primary.am-active,.am-btn-primary:active,.am-dropdown.am-active .am-btn-primary.am-dropdown-toggle{background-image:none;background-color:#0a628f}.am-btn-primary.am-disabled,.am-btn-primary.am-disabled.am-active,.am-btn-primary.am-disabled:active,.am-btn-primary.am-disabled:focus,.am-btn-primary.am-disabled:hover,.am-btn-primary[disabled],.am-btn-primary[disabled].am-active,.am-btn-primary[disabled]:active,.am-btn-primary[disabled]:focus,.am-btn-primary[disabled]:hover,fieldset[disabled] .am-btn-primary,fieldset[disabled] .am-btn-primary.am-active,fieldset[disabled] .am-btn-primary:active,fieldset[disabled] .am-btn-primary:focus,fieldset[disabled] .am-btn-primary:hover{background-color:#0e90d2;border-color:#0e90d2}.am-btn-group .am-btn-primary,.am-btn-group-stacked .am-btn-primary{border-color:#0c80ba}.am-btn-secondary{color:#fff;background-color:#3bb4f2;border-color:#3bb4f2}a.am-btn-secondary:visited{color:#fff}.am-btn-secondary.am-active,.am-btn-secondary:active,.am-btn-secondary:focus,.am-btn-secondary:hover,.am-dropdown.am-active .am-btn-secondary.am-dropdown-toggle{color:#fff;border-color:#0f9ae0}.am-btn-secondary:focus,.am-btn-secondary:hover{background-color:#19a7f0}.am-btn-secondary.am-active,.am-btn-secondary:active,.am-dropdown.am-active .am-btn-secondary.am-dropdown-toggle{background-image:none;background-color:#0e93d7}.am-btn-secondary.am-disabled,.am-btn-secondary.am-disabled.am-active,.am-btn-secondary.am-disabled:active,.am-btn-secondary.am-disabled:focus,.am-btn-secondary.am-disabled:hover,.am-btn-secondary[disabled],.am-btn-secondary[disabled].am-active,.am-btn-secondary[disabled]:active,.am-btn-secondary[disabled]:focus,.am-btn-secondary[disabled]:hover,fieldset[disabled] .am-btn-secondary,fieldset[disabled] .am-btn-secondary.am-active,fieldset[disabled] .am-btn-secondary:active,fieldset[disabled] .am-btn-secondary:focus,fieldset[disabled] .am-btn-secondary:hover{background-color:#3bb4f2;border-color:#3bb4f2}.am-btn-group .am-btn-secondary,.am-btn-group-stacked .am-btn-secondary{border-color:#23abf0}.am-btn-warning{color:#fff;background-color:#F37B1D;border-color:#F37B1D}a.am-btn-warning:visited{color:#fff}.am-btn-warning.am-active,.am-btn-warning:active,.am-btn-warning:focus,.am-btn-warning:hover,.am-dropdown.am-active .am-btn-warning.am-dropdown-toggle{color:#fff;border-color:#c85e0b}.am-btn-warning:focus,.am-btn-warning:hover{background-color:#e0690c}.am-btn-warning.am-active,.am-btn-warning:active,.am-dropdown.am-active .am-btn-warning.am-dropdown-toggle{background-image:none;background-color:#be590a}.am-btn-warning.am-disabled,.am-btn-warning.am-disabled.am-active,.am-btn-warning.am-disabled:active,.am-btn-warning.am-disabled:focus,.am-btn-warning.am-disabled:hover,.am-btn-warning[disabled],.am-btn-warning[disabled].am-active,.am-btn-warning[disabled]:active,.am-btn-warning[disabled]:focus,.am-btn-warning[disabled]:hover,fieldset[disabled] .am-btn-warning,fieldset[disabled] .am-btn-warning.am-active,fieldset[disabled] .am-btn-warning:active,fieldset[disabled] .am-btn-warning:focus,fieldset[disabled] .am-btn-warning:hover{background-color:#F37B1D;border-color:#F37B1D}.am-btn-group .am-btn-warning,.am-btn-group-stacked .am-btn-warning{border-color:#ea6e0c}.am-btn-danger{color:#fff;background-color:#dd514c;border-color:#dd514c}a.am-btn-danger:visited{color:#fff}.am-btn-danger.am-active,.am-btn-danger:active,.am-btn-danger:focus,.am-btn-danger:hover,.am-dropdown.am-active .am-btn-danger.am-dropdown-toggle{color:#fff;border-color:#c62b26}.am-btn-danger:focus,.am-btn-danger:hover{background-color:#d7342e}.am-btn-danger.am-active,.am-btn-danger:active,.am-dropdown.am-active .am-btn-danger.am-dropdown-toggle{background-image:none;background-color:#be2924}.am-btn-danger.am-disabled,.am-btn-danger.am-disabled.am-active,.am-btn-danger.am-disabled:active,.am-btn-danger.am-disabled:focus,.am-btn-danger.am-disabled:hover,.am-btn-danger[disabled],.am-btn-danger[disabled].am-active,.am-btn-danger[disabled]:active,.am-btn-danger[disabled]:focus,.am-btn-danger[disabled]:hover,fieldset[disabled] .am-btn-danger,fieldset[disabled] .am-btn-danger.am-active,fieldset[disabled] .am-btn-danger:active,fieldset[disabled] .am-btn-danger:focus,fieldset[disabled] .am-btn-danger:hover{background-color:#dd514c;border-color:#dd514c}.am-btn-group .am-btn-danger,.am-btn-group-stacked .am-btn-danger{border-color:#d93c37}.am-btn-success{color:#fff;background-color:#5eb95e;border-color:#5eb95e}a.am-btn-success:visited{color:#fff}.am-btn-success.am-active,.am-btn-success:active,.am-btn-success:focus,.am-btn-success:hover,.am-dropdown.am-active .am-btn-success.am-dropdown-toggle{color:#fff;border-color:#429842}.am-btn-success:focus,.am-btn-success:hover{background-color:#4aaa4a}.am-btn-success.am-active,.am-btn-success:active,.am-dropdown.am-active .am-btn-success.am-dropdown-toggle{background-image:none;background-color:#3f913f}.am-btn-success.am-disabled,.am-btn-success.am-disabled.am-active,.am-btn-success.am-disabled:active,.am-btn-success.am-disabled:focus,.am-btn-success.am-disabled:hover,.am-btn-success[disabled],.am-btn-success[disabled].am-active,.am-btn-success[disabled]:active,.am-btn-success[disabled]:focus,.am-btn-success[disabled]:hover,fieldset[disabled] .am-btn-success,fieldset[disabled] .am-btn-success.am-active,fieldset[disabled] .am-btn-success:active,fieldset[disabled] .am-btn-success:focus,fieldset[disabled] .am-btn-success:hover{background-color:#5eb95e;border-color:#5eb95e}.am-btn-group .am-btn-success,.am-btn-group-stacked .am-btn-success{border-color:#4db14d}.am-btn-link{color:#0e90d2;font-weight:400;cursor:pointer;border-radius:0}.am-btn-link,.am-btn-link:active,.am-btn-link[disabled],fieldset[disabled] .am-btn-link{background-color:transparent;-webkit-box-shadow:none;box-shadow:none}.am-btn-link,.am-btn-link:active,.am-btn-link:focus,.am-btn-link:hover{border-color:transparent}.am-btn-link:focus,.am-btn-link:hover{color:#095f8a;text-decoration:underline;background-color:transparent}.am-btn-link[disabled]:focus,.am-btn-link[disabled]:hover,fieldset[disabled] .am-btn-link:focus,fieldset[disabled] .am-btn-link:hover{color:#999;text-decoration:none}.am-btn-xs{font-size:1.2rem}.am-btn-sm{font-size:1.4rem}.am-btn-lg{font-size:1.8rem}.am-btn-xl{font-size:2rem}.am-btn-block{display:block;width:100%;padding-left:0;padding-right:0}.am-btn-block+.am-btn-block{margin-top:5px}input[type=button].am-btn-block,input[type=reset].am-btn-block,input[type=submit].am-btn-block{width:100%}.am-btn.am-btn-loading .am-icon-spin{margin-right:5px}table{max-width:100%;background-color:transparent;empty-cells:show}table code{white-space:normal}th{text-align:left}.am-table{width:100%;margin-bottom:1.6rem;border-spacing:0;border-collapse:separate}.am-table>tbody>tr>td,.am-table>tbody>tr>th,.am-table>tfoot>tr>td,.am-table>tfoot>tr>th,.am-table>thead>tr>td,.am-table>thead>tr>th{padding:.7rem;line-height:1.6;vertical-align:top;border-top:1px solid #ddd}.am-table>thead>tr>th{vertical-align:bottom;border-bottom:1px solid #ddd}.am-table>caption+thead>tr:first-child>td,.am-table>caption+thead>tr:first-child>th,.am-table>colgroup+thead>tr:first-child>td,.am-table>colgroup+thead>tr:first-child>th,.am-table>thead:first-child>tr:first-child>td,.am-table>thead:first-child>tr:first-child>th{border-top:0}.am-table>tbody+tbody tr:first-child td{border-top:2px solid #ddd}.am-table-bordered{border:1px solid #ddd;border-left:none}.am-table-bordered>tbody>tr>td,.am-table-bordered>tbody>tr>th,.am-table-bordered>tfoot>tr>td,.am-table-bordered>tfoot>tr>th,.am-table-bordered>thead>tr>td,.am-table-bordered>thead>tr>th{border-left:1px solid #ddd}.am-table-bordered>tbody>tr:first-child>td,.am-table-bordered>tbody>tr:first-child>th{border-top:none}.am-table-bordered>thead+tbody>tr:first-child>td,.am-table-bordered>thead+tbody>tr:first-child>th{border-top:1px solid #ddd}.am-table-radius{border:1px solid #ddd;border-radius:2px}.am-table-radius>thead>tr:first-child>td:first-child,.am-table-radius>thead>tr:first-child>th:first-child{border-top-left-radius:2px;border-left:none}.am-table-radius>thead>tr:first-child>td:last-child,.am-table-radius>thead>tr:first-child>th:last-child{border-top-right-radius:2px;border-right:none}.am-table-radius>tbody>tr>td:first-child,.am-table-radius>tbody>tr>th:first-child{border-left:none}.am-table-radius>tbody>tr>td:last-child,.am-table-radius>tbody>tr>th:last-child{border-right:none}.am-table-radius>tbody>tr:last-child>td,.am-table-radius>tbody>tr:last-child>th{border-bottom:none}.am-table-radius>tbody>tr:last-child>td:first-child,.am-table-radius>tbody>tr:last-child>th:first-child{border-bottom-left-radius:2px}.am-table-radius>tbody>tr:last-child>td:last-child,.am-table-radius>tbody>tr:last-child>th:last-child{border-bottom-right-radius:2px}.am-table-striped>tbody>tr:nth-child(odd)>td,.am-table-striped>tbody>tr:nth-child(odd)>th{background-color:#f9f9f9}.am-table-hover>tbody>tr:hover>td,.am-table-hover>tbody>tr:hover>th{background-color:#e9e9e9}.am-table-compact>tbody>tr>td,.am-table-compact>tbody>tr>th,.am-table-compact>tfoot>tr>td,.am-table-compact>tfoot>tr>th,.am-table-compact>thead>tr>td,.am-table-compact>thead>tr>th{padding:.4rem}.am-table-centered>tbody>tr>td,.am-table-centered>tbody>tr>th,.am-table-centered>tfoot>tr>td,.am-table-centered>tfoot>tr>th,.am-table-centered>thead>tr>td,.am-table-centered>thead>tr>th{text-align:center}.am-table>tbody>tr.am-active>td,.am-table>tbody>tr.am-active>th,.am-table>tbody>tr>td.am-active,.am-table>tbody>tr>th.am-active,.am-table>tfoot>tr.am-active>td,.am-table>tfoot>tr.am-active>th,.am-table>tfoot>tr>td.am-active,.am-table>tfoot>tr>th.am-active,.am-table>thead>tr.am-active>td,.am-table>thead>tr.am-active>th,.am-table>thead>tr>td.am-active,.am-table>thead>tr>th.am-active{background-color:#ffd}.am-table>tbody>tr.am-disabled>td,.am-table>tbody>tr.am-disabled>th,.am-table>tbody>tr>td.am-disabled,.am-table>tbody>tr>th.am-disabled,.am-table>tfoot>tr.am-disabled>td,.am-table>tfoot>tr.am-disabled>th,.am-table>tfoot>tr>td.am-disabled,.am-table>tfoot>tr>th.am-disabled,.am-table>thead>tr.am-disabled>td,.am-table>thead>tr.am-disabled>th,.am-table>thead>tr>td.am-disabled,.am-table>thead>tr>th.am-disabled{color:#999}.am-table>tbody>tr.am-primary>td,.am-table>tbody>tr.am-primary>th,.am-table>tbody>tr>td.am-primary,.am-table>tbody>tr>th.am-primary,.am-table>tfoot>tr.am-primary>td,.am-table>tfoot>tr.am-primary>th,.am-table>tfoot>tr>td.am-primary,.am-table>tfoot>tr>th.am-primary,.am-table>thead>tr.am-primary>td,.am-table>thead>tr.am-primary>th,.am-table>thead>tr>td.am-primary,.am-table>thead>tr>th.am-primary{color:#0b76ac;background-color:rgba(14,144,210,.115)}.am-table>tbody>tr.am-success>td,.am-table>tbody>tr.am-success>th,.am-table>tbody>tr>td.am-success,.am-table>tbody>tr>th.am-success,.am-table>tfoot>tr.am-success>td,.am-table>tfoot>tr.am-success>th,.am-table>tfoot>tr>td.am-success,.am-table>tfoot>tr>th.am-success,.am-table>thead>tr.am-success>td,.am-table>thead>tr.am-success>th,.am-table>thead>tr>td.am-success,.am-table>thead>tr>th.am-success{color:#5eb95e;background-color:rgba(94,185,94,.115)}.am-table>tbody>tr.am-warning>td,.am-table>tbody>tr.am-warning>th,.am-table>tbody>tr>td.am-warning,.am-table>tbody>tr>th.am-warning,.am-table>tfoot>tr.am-warning>td,.am-table>tfoot>tr.am-warning>th,.am-table>tfoot>tr>td.am-warning,.am-table>tfoot>tr>th.am-warning,.am-table>thead>tr.am-warning>td,.am-table>thead>tr.am-warning>th,.am-table>thead>tr>td.am-warning,.am-table>thead>tr>th.am-warning{color:#F37B1D;background-color:rgba(243,123,29,.115)}.am-table>tbody>tr.am-danger>td,.am-table>tbody>tr.am-danger>th,.am-table>tbody>tr>td.am-danger,.am-table>tbody>tr>th.am-danger,.am-table>tfoot>tr.am-danger>td,.am-table>tfoot>tr.am-danger>th,.am-table>tfoot>tr>td.am-danger,.am-table>tfoot>tr>th.am-danger,.am-table>thead>tr.am-danger>td,.am-table>thead>tr.am-danger>th,.am-table>thead>tr>td.am-danger,.am-table>thead>tr>th.am-danger{color:#dd514c;background-color:rgba(221,81,76,.115)}fieldset{border:none}legend{display:block;width:100%;margin-bottom:2rem;font-size:2rem;line-height:inherit;color:#333;border-bottom:1px solid #e5e5e5;padding-bottom:.5rem}label{display:inline-block;margin-bottom:5px;font-weight:700}input[type=search]{-webkit-box-sizing:border-box;box-sizing:border-box}input[type=checkbox],input[type=radio]{margin:4px 0 0;margin-top:1px\9;line-height:normal}input[type=file]{display:block}select[multiple],select[size]{height:auto}select optgroup{font-size:inherit;font-style:inherit;font-family:inherit}input[type=checkbox]:focus,input[type=file]:focus,input[type=radio]:focus{outline:thin dotted;outline:1px auto -webkit-focus-ring-color;outline-offset:-2px}input[type=number]::-webkit-inner-spin-button,input[type=number]::-webkit-outer-spin-button{height:auto}output{display:block;padding-top:1.6rem;font-size:1.6rem;line-height:1.6;color:#555;vertical-align:middle}.am-form input[type=number],.am-form input[type=search],.am-form input[type=text],.am-form input[type=password],.am-form input[type=datetime],.am-form input[type=datetime-local],.am-form input[type=date],.am-form input[type=month],.am-form input[type=time],.am-form input[type=week],.am-form input[type=email],.am-form input[type=url],.am-form input[type=tel],.am-form input[type=color],.am-form select,.am-form textarea,.am-form-field{display:block;width:100%;padding:.5em;font-size:1.6rem;line-height:1.2;color:#555;vertical-align:middle;background-color:#fff;background-image:none;border:1px solid #ccc;border-radius:2px;-webkit-appearance:none;-webkit-transition:border-color .15s ease-in-out,-webkit-box-shadow .15s ease-in-out;transition:border-color .15s ease-in-out,-webkit-box-shadow .15s ease-in-out;transition:border-color .15s ease-in-out,box-shadow .15s ease-in-out;transition:border-color .15s ease-in-out,box-shadow .15s ease-in-out,-webkit-box-shadow .15s ease-in-out}.am-form input[type=number].am-square,.am-form input[type=search].am-square,.am-form input[type=text].am-square,.am-form input[type=password].am-square,.am-form input[type=datetime].am-square,.am-form input[type=datetime-local].am-square,.am-form input[type=date].am-square,.am-form input[type=month].am-square,.am-form input[type=time].am-square,.am-form input[type=week].am-square,.am-form input[type=email].am-square,.am-form input[type=url].am-square,.am-form input[type=tel].am-square,.am-form input[type=color].am-square,.am-form select.am-square,.am-form textarea.am-square,.am-form-field.am-square{border-radius:0}.am-form input[type=number]:focus,.am-form input[type=search]:focus,.am-form input[type=text]:focus,.am-form input[type=password]:focus,.am-form input[type=datetime]:focus,.am-form input[type=datetime-local]:focus,.am-form input[type=date]:focus,.am-form input[type=month]:focus,.am-form input[type=time]:focus,.am-form input[type=week]:focus,.am-form input[type=email]:focus,.am-form input[type=url]:focus,.am-form input[type=tel]:focus,.am-form input[type=color]:focus,.am-form select:focus,.am-form textarea:focus,.am-form-field:focus{outline:0}.am-form input[type=number]:focus,.am-form input[type=search]:focus,.am-form input[type=text]:focus,.am-form input[type=password]:focus,.am-form input[type=datetime]:focus,.am-form input[type=datetime-local]:focus,.am-form input[type=date]:focus,.am-form input[type=month]:focus,.am-form input[type=time]:focus,.am-form input[type=week]:focus,.am-form input[type=email]:focus,.am-form input[type=url]:focus,.am-form input[type=tel]:focus,.am-form input[type=color]:focus,.am-form select:focus,.am-form textarea:focus,.am-form-field:focus{background-color:#fefffe;border-color:#3bb4f2;outline:0;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 5px rgba(59,180,242,.3);box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 5px rgba(59,180,242,.3)}.am-form input[type=number]::-webkit-input-placeholder,.am-form input[type=search]::-webkit-input-placeholder,.am-form input[type=text]::-webkit-input-placeholder,.am-form input[type=password]::-webkit-input-placeholder,.am-form input[type=datetime]::-webkit-input-placeholder,.am-form input[type=datetime-local]::-webkit-input-placeholder,.am-form input[type=date]::-webkit-input-placeholder,.am-form input[type=month]::-webkit-input-placeholder,.am-form input[type=time]::-webkit-input-placeholder,.am-form input[type=week]::-webkit-input-placeholder,.am-form input[type=email]::-webkit-input-placeholder,.am-form input[type=url]::-webkit-input-placeholder,.am-form input[type=tel]::-webkit-input-placeholder,.am-form input[type=color]::-webkit-input-placeholder,.am-form select::-webkit-input-placeholder,.am-form textarea::-webkit-input-placeholder,.am-form-field::-webkit-input-placeholder{color:#999}.am-form input[type=number]::-moz-placeholder,.am-form input[type=search]::-moz-placeholder,.am-form input[type=text]::-moz-placeholder,.am-form input[type=password]::-moz-placeholder,.am-form input[type=datetime]::-moz-placeholder,.am-form input[type=datetime-local]::-moz-placeholder,.am-form input[type=date]::-moz-placeholder,.am-form input[type=month]::-moz-placeholder,.am-form input[type=time]::-moz-placeholder,.am-form input[type=week]::-moz-placeholder,.am-form input[type=email]::-moz-placeholder,.am-form input[type=url]::-moz-placeholder,.am-form input[type=tel]::-moz-placeholder,.am-form input[type=color]::-moz-placeholder,.am-form select::-moz-placeholder,.am-form textarea::-moz-placeholder,.am-form-field::-moz-placeholder{color:#999}.am-form input[type=number]:-ms-input-placeholder,.am-form input[type=search]:-ms-input-placeholder,.am-form input[type=text]:-ms-input-placeholder,.am-form input[type=password]:-ms-input-placeholder,.am-form input[type=datetime]:-ms-input-placeholder,.am-form input[type=datetime-local]:-ms-input-placeholder,.am-form input[type=date]:-ms-input-placeholder,.am-form input[type=month]:-ms-input-placeholder,.am-form input[type=time]:-ms-input-placeholder,.am-form input[type=week]:-ms-input-placeholder,.am-form input[type=email]:-ms-input-placeholder,.am-form input[type=url]:-ms-input-placeholder,.am-form input[type=tel]:-ms-input-placeholder,.am-form input[type=color]:-ms-input-placeholder,.am-form select:-ms-input-placeholder,.am-form textarea:-ms-input-placeholder,.am-form-field:-ms-input-placeholder{color:#999}.am-form input[type=number]::placeholder,.am-form input[type=search]::placeholder,.am-form input[type=text]::placeholder,.am-form input[type=password]::placeholder,.am-form input[type=datetime]::placeholder,.am-form input[type=datetime-local]::placeholder,.am-form input[type=date]::placeholder,.am-form input[type=month]::placeholder,.am-form input[type=time]::placeholder,.am-form input[type=week]::placeholder,.am-form input[type=email]::placeholder,.am-form input[type=url]::placeholder,.am-form input[type=tel]::placeholder,.am-form input[type=color]::placeholder,.am-form select::placeholder,.am-form textarea::placeholder,.am-form-field::placeholder{color:#999}.am-form input[type=number]::-moz-placeholder,.am-form input[type=search]::-moz-placeholder,.am-form input[type=text]::-moz-placeholder,.am-form input[type=password]::-moz-placeholder,.am-form input[type=datetime]::-moz-placeholder,.am-form input[type=datetime-local]::-moz-placeholder,.am-form input[type=date]::-moz-placeholder,.am-form input[type=month]::-moz-placeholder,.am-form input[type=time]::-moz-placeholder,.am-form input[type=week]::-moz-placeholder,.am-form input[type=email]::-moz-placeholder,.am-form input[type=url]::-moz-placeholder,.am-form input[type=tel]::-moz-placeholder,.am-form input[type=color]::-moz-placeholder,.am-form select::-moz-placeholder,.am-form textarea::-moz-placeholder,.am-form-field::-moz-placeholder{opacity:1}.am-form input[type=number][disabled],.am-form input[type=number][readonly],.am-form input[type=search][disabled],.am-form input[type=search][readonly],.am-form input[type=text][disabled],.am-form input[type=text][readonly],.am-form input[type=password][disabled],.am-form input[type=password][readonly],.am-form input[type=datetime][disabled],.am-form input[type=datetime][readonly],.am-form input[type=datetime-local][disabled],.am-form input[type=datetime-local][readonly],.am-form input[type=date][disabled],.am-form input[type=date][readonly],.am-form input[type=month][disabled],.am-form input[type=month][readonly],.am-form input[type=time][disabled],.am-form input[type=time][readonly],.am-form input[type=week][disabled],.am-form input[type=week][readonly],.am-form input[type=email][disabled],.am-form input[type=email][readonly],.am-form input[type=url][disabled],.am-form input[type=url][readonly],.am-form input[type=tel][disabled],.am-form input[type=tel][readonly],.am-form input[type=color][disabled],.am-form input[type=color][readonly],.am-form select[disabled],.am-form select[readonly],.am-form textarea[disabled],.am-form textarea[readonly],.am-form-field[disabled],.am-form-field[readonly],fieldset[disabled] .am-form input[type=number],fieldset[disabled] .am-form input[type=search],fieldset[disabled] .am-form input[type=text],fieldset[disabled] .am-form input[type=password],fieldset[disabled] .am-form input[type=datetime],fieldset[disabled] .am-form input[type=datetime-local],fieldset[disabled] .am-form input[type=date],fieldset[disabled] .am-form input[type=month],fieldset[disabled] .am-form input[type=time],fieldset[disabled] .am-form input[type=week],fieldset[disabled] .am-form input[type=email],fieldset[disabled] .am-form input[type=url],fieldset[disabled] .am-form input[type=tel],fieldset[disabled] .am-form input[type=color],fieldset[disabled] .am-form select,fieldset[disabled] .am-form textarea,fieldset[disabled] .am-form-field{cursor:not-allowed;background-color:#eee}.am-form input[type=number].am-radius,.am-form input[type=search].am-radius,.am-form input[type=text].am-radius,.am-form input[type=password].am-radius,.am-form input[type=datetime].am-radius,.am-form input[type=datetime-local].am-radius,.am-form input[type=date].am-radius,.am-form input[type=month].am-radius,.am-form input[type=time].am-radius,.am-form input[type=week].am-radius,.am-form input[type=email].am-radius,.am-form input[type=url].am-radius,.am-form input[type=tel].am-radius,.am-form input[type=color].am-radius,.am-form select.am-radius,.am-form textarea.am-radius,.am-form-field.am-radius{border-radius:2px}.am-form input[type=number].am-round,.am-form input[type=search].am-round,.am-form input[type=text].am-round,.am-form input[type=password].am-round,.am-form input[type=datetime].am-round,.am-form input[type=datetime-local].am-round,.am-form input[type=date].am-round,.am-form input[type=month].am-round,.am-form input[type=time].am-round,.am-form input[type=week].am-round,.am-form input[type=email].am-round,.am-form input[type=url].am-round,.am-form input[type=tel].am-round,.am-form input[type=color].am-round,.am-form select.am-round,.am-form textarea.am-round,.am-form-field.am-round{border-radius:1000px}.am-form select[multiple],.am-form select[size],.am-form textarea{height:auto}.am-form select{-webkit-appearance:none!important;-moz-appearance:none!important;-webkit-border-radius:2px;background:#fff url(data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZlcnNpb249IjEuMSIgeD0iMTJweCIgeT0iMHB4IiB3aWR0aD0iMjRweCIgaGVpZ2h0PSIzcHgiIHZpZXdCb3g9IjAgMCA2IDMiIGVuYWJsZS1iYWNrZ3JvdW5kPSJuZXcgMCAwIDYgMyIgeG1sOnNwYWNlPSJwcmVzZXJ2ZSI+PHBvbHlnb24gcG9pbnRzPSI1Ljk5MiwwIDIuOTkyLDMgLTAuMDA4LDAgIi8+PC9zdmc+) no-repeat 100% center}.am-form select[multiple=multiple]{background-image:none}.am-form input[type=datetime-local],.am-form input[type=date],input[type=datetime-local].am-form-field,input[type=date].am-form-field{height:37px}.am-form input[type=datetime-local].am-input-sm,.am-form input[type=date].am-input-sm,input[type=datetime-local].am-form-field.am-input-sm,input[type=date].am-form-field.am-input-sm{height:32px}.am-form input[type=datetime-local] .am-input-lg,.am-form input[type=date] .am-input-lg,input[type=datetime-local].am-form-field .am-input-lg,input[type=date].am-form-field .am-input-lg{height:41px}.am-form-help{display:block;margin-top:5px;margin-bottom:10px;color:#999;font-size:1.3rem}.am-form-group{margin-bottom:1.5rem}.am-form-file{position:relative;overflow:hidden}.am-form-file input[type=file]{position:absolute;left:0;top:0;z-index:1;width:100%;opacity:0;cursor:pointer;font-size:50rem}.am-checkbox,.am-radio{display:block;min-height:1.92rem;margin-top:10px;margin-bottom:10px;padding-left:20px;vertical-align:middle}.am-checkbox label,.am-radio label{display:inline;margin-bottom:0;font-weight:400;cursor:pointer}.am-checkbox input[type=checkbox],.am-checkbox-inline input[type=checkbox],.am-radio input[type=radio],.am-radio-inline input[type=radio]{float:left;margin-left:-20px;outline:0}.am-checkbox+.am-checkbox,.am-radio+.am-radio{margin-top:-5px}.am-checkbox-inline,.am-radio-inline{display:inline-block;padding-left:20px;margin-bottom:0;vertical-align:middle;font-weight:400;cursor:pointer}.am-checkbox-inline+.am-checkbox-inline,.am-radio-inline+.am-radio-inline{margin-top:0;margin-left:10px}.am-checkbox-inline[disabled],.am-checkbox[disabled],.am-radio-inline[disabled],.am-radio[disabled],fieldset[disabled] .am-checkbox,fieldset[disabled] .am-checkbox-inline,fieldset[disabled] .am-radio,fieldset[disabled] .am-radio-inline,fieldset[disabled] input[type=checkbox],fieldset[disabled] input[type=radio],input[type=checkbox][disabled],input[type=radio][disabled]{cursor:not-allowed}.am-form-warning .am-checkbox,.am-form-warning .am-checkbox-inline,.am-form-warning .am-form-help,.am-form-warning .am-form-label,.am-form-warning .am-radio,.am-form-warning .am-radio-inline,.am-form-warning label{color:#F37B1D}.am-form-warning [class*=icon-]{color:#F37B1D}.am-form-warning .am-form-field{border-color:#F37B1D!important;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,.075);box-shadow:inset 0 1px 1px rgba(0,0,0,.075)}.am-form-warning .am-form-field:focus{background-color:#fefffe;border-color:#d2620b;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 5px #f8b47e!important;box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 5px #f8b47e!important}.am-form-error .am-checkbox,.am-form-error .am-checkbox-inline,.am-form-error .am-form-help,.am-form-error .am-form-label,.am-form-error .am-radio,.am-form-error .am-radio-inline,.am-form-error label{color:#dd514c}.am-form-error [class*=icon-]{color:#dd514c}.am-field-error,.am-form-error .am-form-field{border-color:#dd514c!important;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,.075);box-shadow:inset 0 1px 1px rgba(0,0,0,.075)}.am-field-error:focus,.am-form-error .am-form-field:focus{background-color:#fefffe;border-color:#cf2d27;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 5px #eda4a2!important;box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 5px #eda4a2!important}.am-form-success .am-checkbox,.am-form-success .am-checkbox-inline,.am-form-success .am-form-help,.am-form-success .am-form-label,.am-form-success .am-radio,.am-form-success .am-radio-inline,.am-form-success label{color:#5eb95e}.am-form-success [class*=icon-]{color:#5eb95e}.am-field-valid,.am-form-success .am-form-field{border-color:#5eb95e!important;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,.075);box-shadow:inset 0 1px 1px rgba(0,0,0,.075)}.am-field-valid:focus,.am-form-success .am-form-field:focus{background-color:#fefffe;border-color:#459f45;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 5px #a5d8a5!important;box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 5px #a5d8a5!important}.am-form-horizontal .am-checkbox,.am-form-horizontal .am-checkbox-inline,.am-form-horizontal .am-form-label,.am-form-horizontal .am-radio,.am-form-horizontal .am-radio-inline{margin-top:0;margin-bottom:0;padding-top:.6em}.am-form-horizontal .am-form-group:after,.am-form-horizontal .am-form-group:before{content:" ";display:table}.am-form-horizontal .am-form-group:after{clear:both}@media only screen and (min-width:641px){.am-form-horizontal .am-form-label{text-align:right}}@media only screen and (min-width:641px){.am-form-inline .am-form-group{display:inline-block;margin-bottom:0;vertical-align:middle}.am-form-inline .am-form-field{display:inline-block;width:auto;vertical-align:middle}.am-form-inline .am-input-group{display:inline-table;vertical-align:middle}.am-form-inline .am-input-group .am-form-label,.am-form-inline .am-input-group .am-input-group-btn,.am-form-inline .am-input-group .am-input-group-label{width:auto}.am-form-inline .am-input-group>.am-form-field{width:100%}.am-form-inline .am-form-label{margin-bottom:0;vertical-align:middle}.am-form-inline .am-checkbox,.am-form-inline .am-radio{display:inline-block;margin-top:0;margin-bottom:0;padding-left:0;vertical-align:middle}.am-form-inline .am-checkbox input[type=checkbox],.am-form-inline .am-radio input[type=radio]{float:none;margin-left:0}}.am-input-sm{font-size:1.4rem!important}.am-input-lg{font-size:1.8rem!important}.am-form-group-sm .am-checkbox,.am-form-group-sm .am-form-field,.am-form-group-sm .am-form-label,.am-form-group-sm .am-radio{font-size:1.4rem!important}.am-form-group-lg .am-checkbox,.am-form-group-lg .am-form-field,.am-form-group-lg .am-form-label,.am-form-group-lg .am-radio{font-size:1.8rem!important}.am-form-group-lg input[type=checkbox],.am-form-group-lg input[type=radio]{margin-top:7px}.am-form-icon{position:relative}.am-form-icon .am-form-field{padding-left:1.75em!important}.am-form-icon [class*=am-icon-]{position:absolute;left:.5em;top:50%;display:block;margin-top:-.5em;line-height:1;z-index:2}.am-form-icon label~[class*=am-icon-]{top:70%}.am-form-feedback{position:relative}.am-form-feedback .am-form-field{padding-left:.5em!important;padding-right:1.75em!important}.am-form-feedback [class*=am-icon-]{right:.5em;left:auto}.am-form-horizontal .am-form-feedback [class*=am-icon-]{right:1.6em}.am-form-set{margin-bottom:1.5rem;padding:0}.am-form-set>input{position:relative;top:-1px;border-radius:0!important}.am-form-set>input:focus{z-index:2}.am-form-set>input:first-child{top:1px;border-top-right-radius:2px!important;border-top-left-radius:2px!important}.am-form-set>input:last-child{top:-2px;border-bottom-right-radius:2px!important;border-bottom-left-radius:2px!important}.am-img-thumbnail{display:inline-block;max-width:100%;height:auto;padding:2px;line-height:1.6;background-color:#fff;border:1px solid #ddd;border-radius:2px;-webkit-transition:all .2s ease-in-out;transition:all .2s ease-in-out}.am-img-thumbnail.am-radius{border-radius:2px}.am-img-responsive{display:block;max-width:100%;height:auto}.am-nav{margin-bottom:0;padding:0;list-style:none}.am-nav:after,.am-nav:before{content:" ";display:table}.am-nav:after{clear:both}.am-nav>li{position:relative;display:block}.am-nav>li+li{margin-top:5px}.am-nav>li+.am-nav-header{margin-top:1em}.am-nav>li>a{position:relative;display:block;padding:.4em 1em;border-radius:2px}.am-nav>li>a:focus,.am-nav>li>a:hover{text-decoration:none;background-color:#eee}.am-nav>li.am-active>a,.am-nav>li.am-active>a:focus,.am-nav>li.am-active>a:hover{color:#fff;background-color:#0e90d2;cursor:default}.am-nav>li.am-disabled>a{color:#999}.am-nav>li.am-disabled>a:focus,.am-nav>li.am-disabled>a:hover{color:#999;text-decoration:none;background-color:transparent;cursor:not-allowed}.am-nav-header{padding:.4em 1em;text-transform:uppercase;font-weight:700;font-size:100%;color:#555}.am-nav-divider{margin:15px 1em!important;border-top:1px solid #ddd;-webkit-box-shadow:0 1px 0 #fff;box-shadow:0 1px 0 #fff}.am-nav-pills>li{float:left}.am-nav-pills>li+li{margin-left:5px;margin-top:0}.am-nav-tabs{border-bottom:1px solid #ddd}.am-nav-tabs>li{float:left;margin-bottom:-1px}.am-nav-tabs>li+li{margin-top:0}.am-nav-tabs>li>a{margin-right:5px;line-height:1.6;border:1px solid transparent;border-radius:2px 2px 0 0}.am-nav-tabs>li>a:hover{border-color:#eee #eee #ddd}.am-nav-tabs>li.am-active>a,.am-nav-tabs>li.am-active>a:focus,.am-nav-tabs>li.am-active>a:hover{color:#555;background-color:#fff;border:1px solid #ddd;border-bottom-color:transparent;cursor:default}.am-nav-tabs.am-nav-justify{border-bottom:0}.am-nav-tabs.am-nav-justify>li>a{margin-right:0;border-bottom:1px solid #ddd;border-radius:2px 2px 0 0}.am-nav-tabs.am-nav-justify>.am-active>a,.am-nav-tabs.am-nav-justify>.am-active>a:focus,.am-nav-tabs.am-nav-justify>.am-active>a:hover{border-bottom-color:#fff}.am-nav-justify{width:100%}.am-nav-justify>li{float:none;display:table-cell;width:1%}.am-nav-justify>li>a{text-align:center;margin-bottom:0}.lte9 .am-nav-justify>li{display:table-cell;width:1%}.am-topbar{position:relative;min-height:50px;margin-bottom:1.6rem;background:#f8f8f8;border-width:0 0 1px;border-style:solid;border-color:#ddd;color:#666}.am-topbar:after,.am-topbar:before{content:" ";display:table}.am-topbar:after{clear:both}.am-topbar a{color:#666}.am-topbar-brand{margin:0}@media only screen and (min-width:641px){.am-topbar-brand{float:left}}.am-topbar-brand a:hover{color:#4d4d4d}.am-topbar-collapse{width:100%;overflow-x:visible;padding:10px;clear:both;-webkit-overflow-scrolling:touch}.am-topbar-collapse:after,.am-topbar-collapse:before{content:" ";display:table}.am-topbar-collapse:after{clear:both}.am-topbar-collapse.am-in{overflow-y:auto}@media only screen and (min-width:641px){.am-topbar-collapse{margin-top:0;padding:0;width:auto;clear:none}.am-topbar-collapse.am-collapse{display:block!important;height:auto!important;padding:0;overflow:visible!important}.am-topbar-collapse.am-in{overflow-y:visible}}.am-topbar-brand{padding:0 10px;float:left;font-size:1.8rem;height:50px;line-height:50px}.am-topbar-toggle{position:relative;float:right;margin-right:10px}@media only screen and (min-width:641px){.am-topbar-toggle{display:none}}@media only screen and (max-width:640px){.am-topbar-nav{margin-bottom:8px}.am-topbar-nav>li{float:none}}@media only screen and (max-width:640px){.am-topbar-nav>li+li{margin-left:0;margin-top:5px}}@media only screen and (min-width:641px){.am-topbar-nav{float:left}.am-topbar-nav>li>a{position:relative;line-height:50px;padding:0 10px}.am-topbar-nav>li>a:after{position:absolute;left:50%;margin-left:-7px;bottom:-1px;content:"";display:inline-block;width:0;height:0;vertical-align:middle;border-bottom:7px solid #f8f8f8;border-right:7px solid transparent;border-left:7px solid transparent;border-top:0 dotted;-webkit-transform:rotate(360deg);-ms-transform:rotate(360deg);transform:rotate(360deg);opacity:0;-webkit-transition:opacity .1s;transition:opacity .1s}.am-topbar-nav>li>a:hover:after{opacity:1;border-bottom-color:#666}.am-topbar-nav>li.am-dropdown>a:after{display:none}.am-topbar-nav>li.am-active>a,.am-topbar-nav>li.am-active>a:focus,.am-topbar-nav>li.am-active>a:hover{border-radius:0;color:#0e90d2;background:0 0}.am-topbar-nav>li.am-active>a:after{opacity:1;border-bottom-color:#0e90d2}}@media only screen and (max-width:640px){.am-topbar-collapse .am-dropdown.am-active .am-dropdown-content{float:none;position:relative;width:100%}}@media only screen and (min-width:641px){.am-topbar-left{float:left}.am-topbar-right{float:right;margin-right:10px}}@media only screen and (max-width:640px){.am-topbar-form .am-form-group{margin-bottom:5px}}@media only screen and (min-width:641px){.am-topbar-form{padding:0 10px;margin-top:8px}.am-topbar-form .am-form-group+.am-btn{margin-left:5px}}.am-topbar-btn{margin-top:8px}@media only screen and (max-width:640px){.am-topbar-collapse .am-btn,.am-topbar-collapse .am-topbar-btn{display:block;width:100%}}.am-topbar-inverse{background-color:#0e90d2;border-color:#0b6fa2;color:#eee}.am-topbar-inverse a{color:#eee}.am-topbar-inverse .am-topbar-brand a{color:#fff}.am-topbar-inverse .am-topbar-brand a:focus,.am-topbar-inverse .am-topbar-brand a:hover{color:#fff;background-color:transparent}.am-topbar-inverse .am-topbar-nav>li>a{color:#eee}.am-topbar-inverse .am-topbar-nav>li>a:focus,.am-topbar-inverse .am-topbar-nav>li>a:hover{color:#fff;background-color:rgba(0,0,0,.05)}.am-topbar-inverse .am-topbar-nav>li>a:focus:after,.am-topbar-inverse .am-topbar-nav>li>a:hover:after{border-bottom-color:#0b6fa2}.am-topbar-inverse .am-topbar-nav>li>a:after{border-bottom-color:#0e90d2}.am-topbar-inverse .am-topbar-nav>li.am-active>a,.am-topbar-inverse .am-topbar-nav>li.am-active>a:focus,.am-topbar-inverse .am-topbar-nav>li.am-active>a:hover{color:#fff;background-color:rgba(0,0,0,.1)}.am-topbar-inverse .am-topbar-nav>li.am-active>a:after,.am-topbar-inverse .am-topbar-nav>li.am-active>a:focus:after,.am-topbar-inverse .am-topbar-nav>li.am-active>a:hover:after{border-bottom-color:#fff}.am-topbar-inverse .am-topbar-nav>li .disabled>a,.am-topbar-inverse .am-topbar-nav>li .disabled>a:focus,.am-topbar-inverse .am-topbar-nav>li .disabled>a:hover{color:#444;background-color:transparent}.am-topbar-fixed-bottom,.am-topbar-fixed-top{position:fixed;right:0;left:0;z-index:1000;-webkit-transform:translate3d(0,0,0);transform:translate3d(0,0,0)}.am-topbar-fixed-top{top:0}.am-topbar-fixed-bottom{bottom:0;margin-bottom:0;border-width:1px 0 0}.am-with-topbar-fixed-top{padding-top:51px}.am-with-topbar-fixed-bottom{padding-bottom:51px}@media only screen and (max-width:640px){.am-topbar-fixed-bottom .am-topbar-collapse{position:absolute;bottom:100%;margin-bottom:1px;background-color:#f8f8f8}.am-topbar-fixed-bottom .am-topbar-collapse .am-dropdown-content:after,.am-topbar-fixed-bottom .am-topbar-collapse .am-dropdown-content:before{display:none}.am-topbar-fixed-bottom.am-topbar-inverse .am-topbar-collapse{background-color:#0e90d2}}.am-breadcrumb{padding:.7em .5em;margin-bottom:2rem;list-style:none;background-color:transparent;border-radius:2px;font-size:85%}.am-breadcrumb>li{display:inline-block}.am-breadcrumb>li [class*=am-icon-]:before{color:#999;margin-right:5px}.am-breadcrumb>li+li:before{content:"\00bb\00a0";padding:0 8px;color:#ccc}.am-breadcrumb>.am-active{color:#999}.am-breadcrumb-slash>li+li:before{content:"/\00a0"}.am-pagination{padding-left:0;margin:1.5rem 0;list-style:none;color:#999;text-align:left}.am-pagination:after,.am-pagination:before{content:" ";display:table}.am-pagination:after{clear:both}.am-pagination>li{display:inline-block}.am-pagination>li>a,.am-pagination>li>span{position:relative;display:block;padding:.5em 1em;text-decoration:none;line-height:1.2;background-color:#fff;border:1px solid #ddd;border-radius:2px;margin-bottom:5px;margin-right:5px}.am-pagination>li:last-child>a,.am-pagination>li:last-child>span{margin-right:0}.am-pagination>li>a:focus,.am-pagination>li>a:hover,.am-pagination>li>span:focus,.am-pagination>li>span:hover{background-color:#eee}.am-pagination>.am-active>a,.am-pagination>.am-active>a:focus,.am-pagination>.am-active>a:hover,.am-pagination>.am-active>span,.am-pagination>.am-active>span:focus,.am-pagination>.am-active>span:hover{z-index:2;color:#fff;background-color:#0e90d2;border-color:#0e90d2;cursor:default}.am-pagination>.am-disabled>a,.am-pagination>.am-disabled>a:focus,.am-pagination>.am-disabled>a:hover,.am-pagination>.am-disabled>span,.am-pagination>.am-disabled>span:focus,.am-pagination>.am-disabled>span:hover{color:#999;background-color:#fff;border-color:#ddd;cursor:not-allowed;pointer-events:none}.am-pagination .am-pagination-prev{float:left}.am-pagination .am-pagination-prev a{border-radius:2px}.am-pagination .am-pagination-next{float:right}.am-pagination .am-pagination-next a{border-radius:2px}.am-pagination-centered{text-align:center}.am-pagination-right{text-align:right}[class*=am-animation-]{-webkit-animation-duration:.5s;animation-duration:.5s;-webkit-animation-timing-function:ease-out;animation-timing-function:ease-out;-webkit-animation-fill-mode:both;animation-fill-mode:both}@media screen{.cssanimations [data-am-scrollspy*=animation]{opacity:0}}.am-animation-fade{-webkit-animation-name:am-fade;animation-name:am-fade;-webkit-animation-duration:.8s;animation-duration:.8s;-webkit-animation-timing-function:linear;animation-timing-function:linear}.am-animation-scale-up{-webkit-animation-name:am-scale-up;animation-name:am-scale-up}.am-animation-scale-down{-webkit-animation-name:am-scale-down;animation-name:am-scale-down}.am-animation-slide-top{-webkit-animation-name:am-slide-top;animation-name:am-slide-top}.am-animation-slide-bottom{-webkit-animation-name:am-slide-bottom;animation-name:am-slide-bottom}.am-animation-slide-left{-webkit-animation-name:am-slide-left;animation-name:am-slide-left}.am-animation-slide-right{-webkit-animation-name:am-slide-right;animation-name:am-slide-right}.am-animation-slide-top-fixed{-webkit-animation-name:am-slide-top-fixed;animation-name:am-slide-top-fixed}.am-animation-shake{-webkit-animation-name:am-shake;animation-name:am-shake}.am-animation-spin{-webkit-animation:am-spin 2s infinite linear;animation:am-spin 2s infinite linear}.am-animation-left-spring{-webkit-animation:am-left-spring .3s ease-in-out;animation:am-left-spring .3s ease-in-out}.am-animation-right-spring{-webkit-animation:am-right-spring .3s ease-in-out;animation:am-right-spring .3s ease-in-out}.am-animation-reverse{-webkit-animation-direction:reverse;animation-direction:reverse}.am-animation-paused{-webkit-animation-play-state:paused!important;animation-play-state:paused!important}.am-animation-delay-1{-webkit-animation-delay:1s;animation-delay:1s}.am-animation-delay-2{-webkit-animation-delay:2s;animation-delay:2s}.am-animation-delay-3{-webkit-animation-delay:3s;animation-delay:3s}.am-animation-delay-4{-webkit-animation-delay:4s;animation-delay:4s}.am-animation-delay-5{-webkit-animation-delay:5s;animation-delay:5s}.am-animation-delay-6{-webkit-animation-delay:6s;animation-delay:6s}@-webkit-keyframes am-fade{0%{opacity:0}100%{opacity:1}}@keyframes am-fade{0%{opacity:0}100%{opacity:1}}@-webkit-keyframes am-scale-up{0%{opacity:0;-webkit-transform:scale(.2);transform:scale(.2)}100%{opacity:1;-webkit-transform:scale(1);transform:scale(1)}}@keyframes am-scale-up{0%{opacity:0;-webkit-transform:scale(.2);transform:scale(.2)}100%{opacity:1;-webkit-transform:scale(1);transform:scale(1)}}@-webkit-keyframes am-scale-down{0%{opacity:0;-webkit-transform:scale(1.8);transform:scale(1.8)}100%{opacity:1;-webkit-transform:scale(1);transform:scale(1)}}@keyframes am-scale-down{0%{opacity:0;-webkit-transform:scale(1.8);transform:scale(1.8)}100%{opacity:1;-webkit-transform:scale(1);transform:scale(1)}}@-webkit-keyframes am-slide-top{0%{opacity:0;-webkit-transform:translateY(-100%);transform:translateY(-100%)}100%{opacity:1;-webkit-transform:translateY(0);transform:translateY(0)}}@keyframes am-slide-top{0%{opacity:0;-webkit-transform:translateY(-100%);transform:translateY(-100%)}100%{opacity:1;-webkit-transform:translateY(0);transform:translateY(0)}}@-webkit-keyframes am-slide-bottom{0%{opacity:0;-webkit-transform:translateY(100%);transform:translateY(100%)}100%{opacity:1;-webkit-transform:translateY(0);transform:translateY(0)}}@keyframes am-slide-bottom{0%{opacity:0;-webkit-transform:translateY(100%);transform:translateY(100%)}100%{opacity:1;-webkit-transform:translateY(0);transform:translateY(0)}}@-webkit-keyframes am-slide-left{0%{opacity:0;-webkit-transform:translateX(-100%);transform:translateX(-100%)}100%{opacity:1;-webkit-transform:translateX(0);transform:translateX(0)}}@keyframes am-slide-left{0%{opacity:0;-webkit-transform:translateX(-100%);transform:translateX(-100%)}100%{opacity:1;-webkit-transform:translateX(0);transform:translateX(0)}}@-webkit-keyframes am-slide-right{0%{opacity:0;-webkit-transform:translateX(100%);transform:translateX(100%)}100%{opacity:1;-webkit-transform:translateX(0);transform:translateX(0)}}@keyframes am-slide-right{0%{opacity:0;-webkit-transform:translateX(100%);transform:translateX(100%)}100%{opacity:1;-webkit-transform:translateX(0);transform:translateX(0)}}@-webkit-keyframes am-shake{0%,100%{-webkit-transform:translateX(0);transform:translateX(0)}10%{-webkit-transform:translateX(-9px);transform:translateX(-9px)}20%{-webkit-transform:translateX(8px);transform:translateX(8px)}30%{-webkit-transform:translateX(-7px);transform:translateX(-7px)}40%{-webkit-transform:translateX(6px);transform:translateX(6px)}50%{-webkit-transform:translateX(-5px);transform:translateX(-5px)}60%{-webkit-transform:translateX(4px);transform:translateX(4px)}70%{-webkit-transform:translateX(-3px);transform:translateX(-3px)}80%{-webkit-transform:translateX(2px);transform:translateX(2px)}90%{-webkit-transform:translateX(-1px);transform:translateX(-1px)}}@keyframes am-shake{0%,100%{-webkit-transform:translateX(0);transform:translateX(0)}10%{-webkit-transform:translateX(-9px);transform:translateX(-9px)}20%{-webkit-transform:translateX(8px);transform:translateX(8px)}30%{-webkit-transform:translateX(-7px);transform:translateX(-7px)}40%{-webkit-transform:translateX(6px);transform:translateX(6px)}50%{-webkit-transform:translateX(-5px);transform:translateX(-5px)}60%{-webkit-transform:translateX(4px);transform:translateX(4px)}70%{-webkit-transform:translateX(-3px);transform:translateX(-3px)}80%{-webkit-transform:translateX(2px);transform:translateX(2px)}90%{-webkit-transform:translateX(-1px);transform:translateX(-1px)}}@-webkit-keyframes am-slide-top-fixed{0%{opacity:0;-webkit-transform:translateY(-10px);transform:translateY(-10px)}100%{opacity:1;-webkit-transform:translateY(0);transform:translateY(0)}}@keyframes am-slide-top-fixed{0%{opacity:0;-webkit-transform:translateY(-10px);transform:translateY(-10px)}100%{opacity:1;-webkit-transform:translateY(0);transform:translateY(0)}}@-webkit-keyframes am-slide-bottom-fixed{0%{opacity:0;-webkit-transform:translateY(10px);transform:translateY(10px)}100%{opacity:1;-webkit-transform:translateY(0);transform:translateY(0)}}@keyframes am-slide-bottom-fixed{0%{opacity:0;-webkit-transform:translateY(10px);transform:translateY(10px)}100%{opacity:1;-webkit-transform:translateY(0);transform:translateY(0)}}@-webkit-keyframes am-spin{0%{-webkit-transform:rotate(0);transform:rotate(0)}100%{-webkit-transform:rotate(359deg);transform:rotate(359deg)}}@keyframes am-spin{0%{-webkit-transform:rotate(0);transform:rotate(0)}100%{-webkit-transform:rotate(359deg);transform:rotate(359deg)}}@-webkit-keyframes am-right-spring{0%{-webkit-transform:translateX(0);transform:translateX(0)}50%{-webkit-transform:translateX(-20%);transform:translateX(-20%)}100%{-webkit-transform:translateX(0);transform:translateX(0)}}@keyframes am-right-spring{0%{-webkit-transform:translateX(0);transform:translateX(0)}50%{-webkit-transform:translateX(-20%);transform:translateX(-20%)}100%{-webkit-transform:translateX(0);transform:translateX(0)}}@-webkit-keyframes am-left-spring{0%{-webkit-transform:translateX(0);transform:translateX(0)}50%{-webkit-transform:translateX(20%);transform:translateX(20%)}100%{-webkit-transform:translateX(0);transform:translateX(0)}}@keyframes am-left-spring{0%{-webkit-transform:translateX(0);transform:translateX(0)}50%{-webkit-transform:translateX(20%);transform:translateX(20%)}100%{-webkit-transform:translateX(0);transform:translateX(0)}}.am-article:after,.am-article:before{content:" ";display:table}.am-article:after{clear:both}.am-article>:last-child{margin-bottom:0}.am-article+.am-article{margin-top:2.4rem}.am-article-title{font-size:2.8rem;line-height:1.15;font-weight:400}.am-article-title a{color:inherit;text-decoration:none}.am-article-meta{font-size:1.2rem;line-height:1.5;color:#999}.am-article-lead{color:#666;font-size:1.4rem;line-height:1.5;border:1px solid #dedede;border-radius:2px;background:#f9f9f9;padding:10px}.am-article-divider{margin-bottom:2.4rem;border-color:#eee}*+.am-article-divider{margin-top:2.4rem}.am-article-bd blockquote{font-family:Georgia,"Times New Roman",Times,Kai,"Kaiti SC",KaiTi,BiauKai,FontAwesome,serif}.am-article-bd img{display:block;max-width:100%}.am-badge{display:inline-block;min-width:10px;padding:.25em .625em;font-size:1.2rem;font-weight:700;color:#fff;line-height:1;vertical-align:baseline;white-space:nowrap;text-align:center;background-color:#999;border-radius:0}.am-badge:empty{display:none}.am-badge.am-square{border-radius:0}.am-badge.am-radius{border-radius:2px}.am-badge.am-round{border-radius:1000px}a.am-badge:focus,a.am-badge:hover{color:#fff;text-decoration:none;cursor:pointer}.am-badge-primary{background-color:#0e90d2}.am-badge-secondary{background-color:#3bb4f2}.am-badge-success{background-color:#5eb95e}.am-badge-warning{background-color:#F37B1D}.am-badge-danger{background-color:#dd514c}.am-comment:after,.am-comment:before{content:" ";display:table}.am-comment:after{clear:both}.am-comment-avatar{float:left;width:32px;height:32px;border-radius:50%;border:1px solid transparent}@media only screen and (min-width:641px){.am-comment-avatar{width:48px;height:48px}}.am-comment-main{position:relative;margin-left:42px;border:1px solid #dedede;border-radius:2px}.am-comment-main:after,.am-comment-main:before{position:absolute;top:10px;left:-8px;right:100%;width:0;height:0;display:block;content:" ";border-color:transparent;border-style:solid solid outset;border-width:8px 8px 8px 0;pointer-events:none}.am-comment-main:before{border-right-color:#dedede;z-index:1}.am-comment-main:after{border-right-color:#f8f8f8;margin-left:1px;z-index:2}@media only screen and (min-width:641px){.am-comment-main{margin-left:63px}}.am-comment-hd{background:#f8f8f8;border-bottom:1px solid #eee;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex}.am-comment-title{margin:0 0 8px 0;font-size:1.6rem;line-height:1.2}.am-comment-meta{-webkit-box-flex:1;-webkit-flex:1;-ms-flex:1;flex:1;padding:10px 15px;font-size:13px;color:#999;line-height:1.2;white-space:nowrap;text-overflow:ellipsis;overflow:hidden}.am-comment-meta a{color:#999}.am-comment-author{font-weight:700;color:#999}.am-comment-bd{padding:15px;overflow:hidden}.am-comment-bd>:last-child{margin-bottom:0}.am-comment-footer{padding:0 15px 5px}.am-comment-footer .am-comment-actions a+a{margin-left:5px}.am-comment-actions{font-size:13px;color:#999}.am-comment-actions a{display:inline-block;padding:10px 5px;line-height:1;color:#999;opacity:.7}.am-comment-actions a:hover{color:#0e90d2;opacity:1}.am-comment-hd .am-comment-actions{padding-right:.5rem}.am-comment-flip .am-comment-avatar{float:right}.am-comment-flip .am-comment-main{margin-left:auto;margin-right:42px}@media only screen and (min-width:641px){.am-comment-flip .am-comment-main{margin-right:63px}}.am-comment-flip .am-comment-main:after,.am-comment-flip .am-comment-main:before{left:auto;right:-8px;border-width:8px 0 8px 8px}.am-comment-flip .am-comment-main:before{border-left-color:#dedede}.am-comment-flip .am-comment-main:after{border-left-color:#f8f8f8;margin-right:1px;margin-left:auto}.am-comment-primary .am-comment-avatar{border-color:#0e90d2}.am-comment-primary .am-comment-main{border-color:#0e90d2}.am-comment-primary .am-comment-main:before{border-right-color:#0e90d2}.am-comment-primary.am-comment-flip .am-comment-main:before{border-left-color:#0e90d2;border-right-color:transparent}.am-comment-primary.am-comment-flip .am-comment-main:after{border-left-color:#f8f8f8}.am-comment-highlight .am-comment-avatar,.am-comment-secondary .am-comment-avatar{border-color:#3bb4f2}.am-comment-highlight .am-comment-main,.am-comment-secondary .am-comment-main{border-color:#3bb4f2}.am-comment-highlight .am-comment-main:before,.am-comment-secondary .am-comment-main:before{border-right-color:#3bb4f2}.am-comment-highlight.am-comment-flip .am-comment-main:before,.am-comment-secondary.am-comment-flip .am-comment-main:before{border-left-color:#3bb4f2;border-right-color:transparent}.am-comment-highlight.am-comment-flip .am-comment-main:after,.am-comment-secondary.am-comment-flip .am-comment-main:after{border-left-color:#f8f8f8}.am-comment-success .am-comment-avatar{border-color:#5eb95e}.am-comment-success .am-comment-main{border-color:#5eb95e}.am-comment-success .am-comment-main:before{border-right-color:#5eb95e}.am-comment-success.am-comment-flip .am-comment-main:before{border-left-color:#5eb95e;border-right-color:transparent}.am-comment-success.am-comment-flip .am-comment-main:after{border-left-color:#f8f8f8}.am-comment-warning .am-comment-avatar{border-color:#F37B1D}.am-comment-warning .am-comment-main{border-color:#F37B1D}.am-comment-warning .am-comment-main:before{border-right-color:#F37B1D}.am-comment-warning.am-comment-flip .am-comment-main:before{border-left-color:#F37B1D;border-right-color:transparent}.am-comment-warning.am-comment-flip .am-comment-main:after{border-left-color:#f8f8f8}.am-comment-danger .am-comment-avatar{border-color:#dd514c}.am-comment-danger .am-comment-main{border-color:#dd514c}.am-comment-danger .am-comment-main:before{border-right-color:#dd514c}.am-comment-danger.am-comment-flip .am-comment-main:before{border-left-color:#dd514c;border-right-color:transparent}.am-comment-danger.am-comment-flip .am-comment-main:after{border-left-color:#f8f8f8}.am-comments-list{padding:0;list-style:none}.am-comments-list .am-comment{margin:1.6rem 0 0 0;list-style:none}@media only screen and (min-width:641px){.am-comments-list-flip .am-comment-main{margin-right:64px}.am-comments-list-flip .am-comment-flip .am-comment-main{margin-left:64px}}.am-btn-group,.am-btn-group-stacked{position:relative;display:inline-block;vertical-align:middle}.am-btn-group-stacked>.am-btn,.am-btn-group>.am-btn{position:relative;float:left}.am-btn-group-stacked>.am-btn.active,.am-btn-group-stacked>.am-btn:active,.am-btn-group-stacked>.am-btn:focus,.am-btn-group-stacked>.am-btn:hover,.am-btn-group>.am-btn.active,.am-btn-group>.am-btn:active,.am-btn-group>.am-btn:focus,.am-btn-group>.am-btn:hover{z-index:2}.am-btn-group-stacked>.am-btn:focus,.am-btn-group>.am-btn:focus{outline:0}.am-btn-group .am-btn+.am-btn,.am-btn-group .am-btn+.am-btn-group,.am-btn-group .am-btn-group+.am-btn,.am-btn-group .am-btn-group+.am-btn-group{margin-left:-1px}.am-btn-toolbar{margin-left:-5px}.am-btn-toolbar:after,.am-btn-toolbar:before{content:" ";display:table}.am-btn-toolbar:after{clear:both}.am-btn-toolbar .am-btn-group,.am-btn-toolbar .am-input-group{float:left}.am-btn-toolbar>.am-btn,.am-btn-toolbar>.am-btn-group,.am-btn-toolbar>.am-input-group{margin-left:5px}.am-btn-group>.am-btn:not(:first-child):not(:last-child):not(.am-dropdown-toggle){border-radius:0}.am-btn-group>.am-btn:first-child{margin-left:0}.am-btn-group>.am-btn:first-child:not(:last-child):not(.am-dropdown-toggle){border-bottom-right-radius:0;border-top-right-radius:0}.am-btn-group>.am-btn:last-child:not(:first-child),.am-btn-group>.am-dropdown-toggle:not(:first-child){border-bottom-left-radius:0;border-top-left-radius:0}.am-btn-group>.am-btn-group{float:left}.am-btn-group>.am-btn-group:not(:first-child):not(:last-child)>.am-btn{border-radius:0}.am-btn-group>.am-btn-group:first-child>.am-btn:last-child,.am-btn-group>.am-btn-group:first-child>.am-dropdown-toggle{border-bottom-right-radius:0;border-top-right-radius:0}.am-btn-group>.am-btn-group:last-child>.am-btn:first-child{border-bottom-left-radius:0;border-top-left-radius:0}.am-btn-group-xs>.am-btn{font-size:1.2rem}.am-btn-group-sm>.am-btn{font-size:1.4rem}.am-btn-group-lg>.am-btn{font-size:1.8rem}.am-btn-group-stacked>.am-btn,.am-btn-group-stacked>.am-btn-group,.am-btn-group-stacked>.am-btn-group>.am-btn{display:block;float:none;width:100%;max-width:100%}.am-btn-group-stacked>.am-btn-group:after,.am-btn-group-stacked>.am-btn-group:before{content:" ";display:table}.am-btn-group-stacked>.am-btn-group:after{clear:both}.am-btn-group-stacked>.am-btn-group>.am-btn{float:none}.am-btn-group-stacked>.am-btn+.am-btn,.am-btn-group-stacked>.am-btn+.am-btn-group,.am-btn-group-stacked>.am-btn-group+.am-btn,.am-btn-group-stacked>.am-btn-group+.am-btn-group{margin-top:-1px;margin-left:0}.am-btn-group-stacked>.am-btn:not(:first-child):not(:last-child){border-radius:0}.am-btn-group-stacked>.am-btn:first-child:not(:last-child){border-top-right-radius:2px;border-bottom-right-radius:0;border-bottom-left-radius:0}.am-btn-group-stacked>.am-btn:last-child:not(:first-child){border-bottom-left-radius:2px;border-top-right-radius:0;border-top-left-radius:0}.am-btn-group-stacked>.am-btn-group:not(:first-child):not(:last-child)>.am-btn{border-radius:0}.am-btn-group-stacked>.am-btn-group:first-child:not(:last-child)>.am-btn:last-child,.am-btn-group-stacked>.am-btn-group:first-child:not(:last-child)>.am-dropdown-toggle{border-bottom-right-radius:0;border-bottom-left-radius:0}.am-btn-group-stacked>.am-btn-group:last-child:not(:first-child)>.am-btn:first-child{border-top-right-radius:0;border-top-left-radius:0}.am-btn-group-justify{display:table;table-layout:fixed;border-collapse:separate;width:100%}.am-btn-group-justify>.am-btn,.am-btn-group-justify>.am-btn-group{float:none;display:table-cell;width:1%}.am-btn-group-justify>.am-btn-group .am-btn{width:100%}.lte9 .am-btn-group-justify{display:table;table-layout:fixed;border-collapse:separate}.lte9 .am-btn-group-justify>.am-btn,.lte9 .am-btn-group-justify>.am-btn-group{float:none;display:table-cell;width:1%}.am-btn-group .am-dropdown{float:left;margin-left:-1px}.am-btn-group .am-dropdown>.am-btn{border-bottom-left-radius:0;border-top-left-radius:0}.am-btn-group .am-active .am-dropdown-toggle{-webkit-box-shadow:inset 0 3px 5px rgba(0,0,0,.125);box-shadow:inset 0 3px 5px rgba(0,0,0,.125)}.am-btn-group .am-active .am-dropdown-toggle.am-btn-link{-webkit-box-shadow:none;box-shadow:none}.am-btn-group .am-active .am-dropdown-toggle,.am-btn-group .am-dropdown-toggle:active{outline:0}.am-btn-group-check>.am-btn>input[type=checkbox],.am-btn-group-check>.am-btn>input[type=radio],[data-am-button]>.am-btn>input[type=checkbox],[data-am-button]>.am-btn>input[type=radio]{position:absolute;z-index:-1;opacity:0}.am-close{display:inline-block;text-align:center;width:24px;font-size:20px;font-weight:700;line-height:24px;color:#000;text-shadow:0 1px 0 #fff;opacity:.2;-webkit-transition:all .3s;transition:all .3s}.am-close:focus,.am-close:hover{color:#000;text-decoration:none;cursor:pointer;opacity:.5;outline:0}.am-close[class*=am-icon-]{font-size:16px}button.am-close{padding:0;cursor:pointer;background:0 0;border:0;-webkit-appearance:none}a.am-close:hover{color:inherit;text-decoration:none;cursor:pointer}.am-close-alt{border-radius:50%;background:#eee;opacity:.7;-webkit-box-shadow:0 0 0 1px rgba(0,0,0,.25);box-shadow:0 0 0 1px rgba(0,0,0,.25)}.am-close-alt:focus,.am-close-alt:hover{opacity:1}.am-close-spin:hover{-webkit-transform:rotate(360deg);-ms-transform:rotate(360deg);transform:rotate(360deg)}@font-face{font-family:FontAwesome;src:url(../fonts/fontawesome-webfont.eot?v=4.6.3);src:url(../fonts/fontawesome-webfont.eot?#iefix&v=4.6.3) format('embedded-opentype'),url(../fonts/fontawesome-webfont.woff2?v=4.6.3) format('woff2'),url(../fonts/fontawesome-webfont.woff?v=4.6.3) format('woff'),url(../fonts/fontawesome-webfont.ttf?v=4.6.3) format('truetype');font-weight:400;font-style:normal}[class*=am-icon-]{display:inline-block;font-style:normal}[class*=am-icon-]:before{display:inline-block;font:normal normal normal 1.6rem/1 FontAwesome,sans-serif;font-size:inherit;text-rendering:auto;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;-webkit-transform:translate(0,0);-ms-transform:translate(0,0);transform:translate(0,0)}.am-icon-border{padding:.2em .25em .15em;border:solid .08em #eee;border-radius:.1em}[class*=am-icon-].am-fl{margin-right:.3em}[class*=am-icon-].am-fr{margin-left:.3em}.am-icon-sm:before{font-size:150%;vertical-align:-10%}.am-icon-md:before{font-size:200%;vertical-align:-16%}.am-icon-lg:before{font-size:250%;vertical-align:-22%}.am-icon-btn{-webkit-box-sizing:border-box;box-sizing:border-box;display:inline-block;width:48px;height:48px;font-size:24px;line-height:48px;border-radius:50%;background-color:#eee;color:#555;text-align:center}.am-icon-btn:focus,.am-icon-btn:hover{background-color:#f5f5f5;color:#333;text-decoration:none;outline:0}.am-icon-btn:active{background-color:#ddd;color:#333}.am-icon-btn.am-danger,.am-icon-btn.am-primary,.am-icon-btn.am-secondary,.am-icon-btn.am-success,.am-icon-btn.am-warning{color:#fff}.am-icon-btn.am-primary{background-color:#0e90d2}.am-icon-btn.am-secondary{background-color:#3bb4f2}.am-icon-btn.am-success{background-color:#5eb95e}.am-icon-btn.am-warning{background-color:#F37B1D}.am-icon-btn.am-danger{background-color:#dd514c}.am-icon-btn-sm{width:32px;height:32px;font-size:16px;line-height:32px}.am-icon-btn-lg{width:64px;height:64px;font-size:28px;line-height:64px}.am-icon-fw{width:1.25em;text-align:center}.am-icon-glass:before{content:"\f000"}.am-icon-music:before{content:"\f001"}.am-icon-search:before{content:"\f002"}.am-icon-envelope-o:before{content:"\f003"}.am-icon-heart:before{content:"\f004"}.am-icon-star:before{content:"\f005"}.am-icon-star-o:before{content:"\f006"}.am-icon-user:before{content:"\f007"}.am-icon-film:before{content:"\f008"}.am-icon-th-large:before{content:"\f009"}.am-icon-th:before{content:"\f00a"}.am-icon-th-list:before{content:"\f00b"}.am-icon-check:before{content:"\f00c"}.am-icon-close:before,.am-icon-remove:before,.am-icon-times:before{content:"\f00d"}.am-icon-search-plus:before{content:"\f00e"}.am-icon-search-minus:before{content:"\f010"}.am-icon-power-off:before{content:"\f011"}.am-icon-signal:before{content:"\f012"}.am-icon-cog:before,.am-icon-gear:before{content:"\f013"}.am-icon-trash-o:before{content:"\f014"}.am-icon-home:before{content:"\f015"}.am-icon-file-o:before{content:"\f016"}.am-icon-clock-o:before{content:"\f017"}.am-icon-road:before{content:"\f018"}.am-icon-download:before{content:"\f019"}.am-icon-arrow-circle-o-down:before{content:"\f01a"}.am-icon-arrow-circle-o-up:before{content:"\f01b"}.am-icon-inbox:before{content:"\f01c"}.am-icon-play-circle-o:before{content:"\f01d"}.am-icon-repeat:before,.am-icon-rotate-right:before{content:"\f01e"}.am-icon-refresh:before{content:"\f021"}.am-icon-list-alt:before{content:"\f022"}.am-icon-lock:before{content:"\f023"}.am-icon-flag:before{content:"\f024"}.am-icon-headphones:before{content:"\f025"}.am-icon-volume-off:before{content:"\f026"}.am-icon-volume-down:before{content:"\f027"}.am-icon-volume-up:before{content:"\f028"}.am-icon-qrcode:before{content:"\f029"}.am-icon-barcode:before{content:"\f02a"}.am-icon-tag:before{content:"\f02b"}.am-icon-tags:before{content:"\f02c"}.am-icon-book:before{content:"\f02d"}.am-icon-bookmark:before{content:"\f02e"}.am-icon-print:before{content:"\f02f"}.am-icon-camera:before{content:"\f030"}.am-icon-font:before{content:"\f031"}.am-icon-bold:before{content:"\f032"}.am-icon-italic:before{content:"\f033"}.am-icon-text-height:before{content:"\f034"}.am-icon-text-width:before{content:"\f035"}.am-icon-align-left:before{content:"\f036"}.am-icon-align-center:before{content:"\f037"}.am-icon-align-right:before{content:"\f038"}.am-icon-align-justify:before{content:"\f039"}.am-icon-list:before{content:"\f03a"}.am-icon-dedent:before,.am-icon-outdent:before{content:"\f03b"}.am-icon-indent:before{content:"\f03c"}.am-icon-video-camera:before{content:"\f03d"}.am-icon-image:before,.am-icon-photo:before,.am-icon-picture-o:before{content:"\f03e"}.am-icon-pencil:before{content:"\f040"}.am-icon-map-marker:before{content:"\f041"}.am-icon-adjust:before{content:"\f042"}.am-icon-tint:before{content:"\f043"}.am-icon-edit:before,.am-icon-pencil-square-o:before{content:"\f044"}.am-icon-share-square-o:before{content:"\f045"}.am-icon-check-square-o:before{content:"\f046"}.am-icon-arrows:before{content:"\f047"}.am-icon-step-backward:before{content:"\f048"}.am-icon-fast-backward:before{content:"\f049"}.am-icon-backward:before{content:"\f04a"}.am-icon-play:before{content:"\f04b"}.am-icon-pause:before{content:"\f04c"}.am-icon-stop:before{content:"\f04d"}.am-icon-forward:before{content:"\f04e"}.am-icon-fast-forward:before{content:"\f050"}.am-icon-step-forward:before{content:"\f051"}.am-icon-eject:before{content:"\f052"}.am-icon-chevron-left:before{content:"\f053"}.am-icon-chevron-right:before{content:"\f054"}.am-icon-plus-circle:before{content:"\f055"}.am-icon-minus-circle:before{content:"\f056"}.am-icon-times-circle:before{content:"\f057"}.am-icon-check-circle:before{content:"\f058"}.am-icon-question-circle:before{content:"\f059"}.am-icon-info-circle:before{content:"\f05a"}.am-icon-crosshairs:before{content:"\f05b"}.am-icon-times-circle-o:before{content:"\f05c"}.am-icon-check-circle-o:before{content:"\f05d"}.am-icon-ban:before{content:"\f05e"}.am-icon-arrow-left:before{content:"\f060"}.am-icon-arrow-right:before{content:"\f061"}.am-icon-arrow-up:before{content:"\f062"}.am-icon-arrow-down:before{content:"\f063"}.am-icon-mail-forward:before,.am-icon-share:before{content:"\f064"}.am-icon-expand:before{content:"\f065"}.am-icon-compress:before{content:"\f066"}.am-icon-plus:before{content:"\f067"}.am-icon-minus:before{content:"\f068"}.am-icon-asterisk:before{content:"\f069"}.am-icon-exclamation-circle:before{content:"\f06a"}.am-icon-gift:before{content:"\f06b"}.am-icon-leaf:before{content:"\f06c"}.am-icon-fire:before{content:"\f06d"}.am-icon-eye:before{content:"\f06e"}.am-icon-eye-slash:before{content:"\f070"}.am-icon-exclamation-triangle:before,.am-icon-warning:before{content:"\f071"}.am-icon-plane:before{content:"\f072"}.am-icon-calendar:before{content:"\f073"}.am-icon-random:before{content:"\f074"}.am-icon-comment:before{content:"\f075"}.am-icon-magnet:before{content:"\f076"}.am-icon-chevron-up:before{content:"\f077"}.am-icon-chevron-down:before{content:"\f078"}.am-icon-retweet:before{content:"\f079"}.am-icon-shopping-cart:before{content:"\f07a"}.am-icon-folder:before{content:"\f07b"}.am-icon-folder-open:before{content:"\f07c"}.am-icon-arrows-v:before{content:"\f07d"}.am-icon-arrows-h:before{content:"\f07e"}.am-icon-bar-chart-o:before,.am-icon-bar-chart:before{content:"\f080"}.am-icon-twitter-square:before{content:"\f081"}.am-icon-facebook-square:before{content:"\f082"}.am-icon-camera-retro:before{content:"\f083"}.am-icon-key:before{content:"\f084"}.am-icon-cogs:before,.am-icon-gears:before{content:"\f085"}.am-icon-comments:before{content:"\f086"}.am-icon-thumbs-o-up:before{content:"\f087"}.am-icon-thumbs-o-down:before{content:"\f088"}.am-icon-star-half:before{content:"\f089"}.am-icon-heart-o:before{content:"\f08a"}.am-icon-sign-out:before{content:"\f08b"}.am-icon-linkedin-square:before{content:"\f08c"}.am-icon-thumb-tack:before{content:"\f08d"}.am-icon-external-link:before{content:"\f08e"}.am-icon-sign-in:before{content:"\f090"}.am-icon-trophy:before{content:"\f091"}.am-icon-github-square:before{content:"\f092"}.am-icon-upload:before{content:"\f093"}.am-icon-lemon-o:before{content:"\f094"}.am-icon-phone:before{content:"\f095"}.am-icon-square-o:before{content:"\f096"}.am-icon-bookmark-o:before{content:"\f097"}.am-icon-phone-square:before{content:"\f098"}.am-icon-twitter:before{content:"\f099"}.am-icon-facebook-f:before,.am-icon-facebook:before{content:"\f09a"}.am-icon-github:before{content:"\f09b"}.am-icon-unlock:before{content:"\f09c"}.am-icon-credit-card:before{content:"\f09d"}.am-icon-feed:before,.am-icon-rss:before{content:"\f09e"}.am-icon-hdd-o:before{content:"\f0a0"}.am-icon-bullhorn:before{content:"\f0a1"}.am-icon-bell:before{content:"\f0f3"}.am-icon-certificate:before{content:"\f0a3"}.am-icon-hand-o-right:before{content:"\f0a4"}.am-icon-hand-o-left:before{content:"\f0a5"}.am-icon-hand-o-up:before{content:"\f0a6"}.am-icon-hand-o-down:before{content:"\f0a7"}.am-icon-arrow-circle-left:before{content:"\f0a8"}.am-icon-arrow-circle-right:before{content:"\f0a9"}.am-icon-arrow-circle-up:before{content:"\f0aa"}.am-icon-arrow-circle-down:before{content:"\f0ab"}.am-icon-globe:before{content:"\f0ac"}.am-icon-wrench:before{content:"\f0ad"}.am-icon-tasks:before{content:"\f0ae"}.am-icon-filter:before{content:"\f0b0"}.am-icon-briefcase:before{content:"\f0b1"}.am-icon-arrows-alt:before{content:"\f0b2"}.am-icon-group:before,.am-icon-users:before{content:"\f0c0"}.am-icon-chain:before,.am-icon-link:before{content:"\f0c1"}.am-icon-cloud:before{content:"\f0c2"}.am-icon-flask:before{content:"\f0c3"}.am-icon-cut:before,.am-icon-scissors:before{content:"\f0c4"}.am-icon-copy:before,.am-icon-files-o:before{content:"\f0c5"}.am-icon-paperclip:before{content:"\f0c6"}.am-icon-floppy-o:before,.am-icon-save:before{content:"\f0c7"}.am-icon-square:before{content:"\f0c8"}.am-icon-bars:before,.am-icon-navicon:before,.am-icon-reorder:before{content:"\f0c9"}.am-icon-list-ul:before{content:"\f0ca"}.am-icon-list-ol:before{content:"\f0cb"}.am-icon-strikethrough:before{content:"\f0cc"}.am-icon-underline:before{content:"\f0cd"}.am-icon-table:before{content:"\f0ce"}.am-icon-magic:before{content:"\f0d0"}.am-icon-truck:before{content:"\f0d1"}.am-icon-pinterest:before{content:"\f0d2"}.am-icon-pinterest-square:before{content:"\f0d3"}.am-icon-google-plus-square:before{content:"\f0d4"}.am-icon-google-plus:before{content:"\f0d5"}.am-icon-money:before{content:"\f0d6"}.am-icon-caret-down:before{content:"\f0d7"}.am-icon-caret-up:before{content:"\f0d8"}.am-icon-caret-left:before{content:"\f0d9"}.am-icon-caret-right:before{content:"\f0da"}.am-icon-columns:before{content:"\f0db"}.am-icon-sort:before,.am-icon-unsorted:before{content:"\f0dc"}.am-icon-sort-desc:before,.am-icon-sort-down:before{content:"\f0dd"}.am-icon-sort-asc:before,.am-icon-sort-up:before{content:"\f0de"}.am-icon-envelope:before{content:"\f0e0"}.am-icon-linkedin:before{content:"\f0e1"}.am-icon-rotate-left:before,.am-icon-undo:before{content:"\f0e2"}.am-icon-gavel:before,.am-icon-legal:before{content:"\f0e3"}.am-icon-dashboard:before,.am-icon-tachometer:before{content:"\f0e4"}.am-icon-comment-o:before{content:"\f0e5"}.am-icon-comments-o:before{content:"\f0e6"}.am-icon-bolt:before,.am-icon-flash:before{content:"\f0e7"}.am-icon-sitemap:before{content:"\f0e8"}.am-icon-umbrella:before{content:"\f0e9"}.am-icon-clipboard:before,.am-icon-paste:before{content:"\f0ea"}.am-icon-lightbulb-o:before{content:"\f0eb"}.am-icon-exchange:before{content:"\f0ec"}.am-icon-cloud-download:before{content:"\f0ed"}.am-icon-cloud-upload:before{content:"\f0ee"}.am-icon-user-md:before{content:"\f0f0"}.am-icon-stethoscope:before{content:"\f0f1"}.am-icon-suitcase:before{content:"\f0f2"}.am-icon-bell-o:before{content:"\f0a2"}.am-icon-coffee:before{content:"\f0f4"}.am-icon-cutlery:before{content:"\f0f5"}.am-icon-file-text-o:before{content:"\f0f6"}.am-icon-building-o:before{content:"\f0f7"}.am-icon-hospital-o:before{content:"\f0f8"}.am-icon-ambulance:before{content:"\f0f9"}.am-icon-medkit:before{content:"\f0fa"}.am-icon-fighter-jet:before{content:"\f0fb"}.am-icon-beer:before{content:"\f0fc"}.am-icon-h-square:before{content:"\f0fd"}.am-icon-plus-square:before{content:"\f0fe"}.am-icon-angle-double-left:before{content:"\f100"}.am-icon-angle-double-right:before{content:"\f101"}.am-icon-angle-double-up:before{content:"\f102"}.am-icon-angle-double-down:before{content:"\f103"}.am-icon-angle-left:before{content:"\f104"}.am-icon-angle-right:before{content:"\f105"}.am-icon-angle-up:before{content:"\f106"}.am-icon-angle-down:before{content:"\f107"}.am-icon-desktop:before{content:"\f108"}.am-icon-laptop:before{content:"\f109"}.am-icon-tablet:before{content:"\f10a"}.am-icon-mobile-phone:before,.am-icon-mobile:before{content:"\f10b"}.am-icon-circle-o:before{content:"\f10c"}.am-icon-quote-left:before{content:"\f10d"}.am-icon-quote-right:before{content:"\f10e"}.am-icon-spinner:before{content:"\f110"}.am-icon-circle:before{content:"\f111"}.am-icon-mail-reply:before,.am-icon-reply:before{content:"\f112"}.am-icon-github-alt:before{content:"\f113"}.am-icon-folder-o:before{content:"\f114"}.am-icon-folder-open-o:before{content:"\f115"}.am-icon-smile-o:before{content:"\f118"}.am-icon-frown-o:before{content:"\f119"}.am-icon-meh-o:before{content:"\f11a"}.am-icon-gamepad:before{content:"\f11b"}.am-icon-keyboard-o:before{content:"\f11c"}.am-icon-flag-o:before{content:"\f11d"}.am-icon-flag-checkered:before{content:"\f11e"}.am-icon-terminal:before{content:"\f120"}.am-icon-code:before{content:"\f121"}.am-icon-mail-reply-all:before,.am-icon-reply-all:before{content:"\f122"}.am-icon-star-half-empty:before,.am-icon-star-half-full:before,.am-icon-star-half-o:before{content:"\f123"}.am-icon-location-arrow:before{content:"\f124"}.am-icon-crop:before{content:"\f125"}.am-icon-code-fork:before{content:"\f126"}.am-icon-chain-broken:before,.am-icon-unlink:before{content:"\f127"}.am-icon-question:before{content:"\f128"}.am-icon-info:before{content:"\f129"}.am-icon-exclamation:before{content:"\f12a"}.am-icon-superscript:before{content:"\f12b"}.am-icon-subscript:before{content:"\f12c"}.am-icon-eraser:before{content:"\f12d"}.am-icon-puzzle-piece:before{content:"\f12e"}.am-icon-microphone:before{content:"\f130"}.am-icon-microphone-slash:before{content:"\f131"}.am-icon-shield:before{content:"\f132"}.am-icon-calendar-o:before{content:"\f133"}.am-icon-fire-extinguisher:before{content:"\f134"}.am-icon-rocket:before{content:"\f135"}.am-icon-maxcdn:before{content:"\f136"}.am-icon-chevron-circle-left:before{content:"\f137"}.am-icon-chevron-circle-right:before{content:"\f138"}.am-icon-chevron-circle-up:before{content:"\f139"}.am-icon-chevron-circle-down:before{content:"\f13a"}.am-icon-html5:before{content:"\f13b"}.am-icon-css3:before{content:"\f13c"}.am-icon-anchor:before{content:"\f13d"}.am-icon-unlock-alt:before{content:"\f13e"}.am-icon-bullseye:before{content:"\f140"}.am-icon-ellipsis-h:before{content:"\f141"}.am-icon-ellipsis-v:before{content:"\f142"}.am-icon-rss-square:before{content:"\f143"}.am-icon-play-circle:before{content:"\f144"}.am-icon-ticket:before{content:"\f145"}.am-icon-minus-square:before{content:"\f146"}.am-icon-minus-square-o:before{content:"\f147"}.am-icon-level-up:before{content:"\f148"}.am-icon-level-down:before{content:"\f149"}.am-icon-check-square:before{content:"\f14a"}.am-icon-pencil-square:before{content:"\f14b"}.am-icon-external-link-square:before{content:"\f14c"}.am-icon-share-square:before{content:"\f14d"}.am-icon-compass:before{content:"\f14e"}.am-icon-caret-square-o-down:before,.am-icon-toggle-down:before{content:"\f150"}.am-icon-caret-square-o-up:before,.am-icon-toggle-up:before{content:"\f151"}.am-icon-caret-square-o-right:before,.am-icon-toggle-right:before{content:"\f152"}.am-icon-eur:before,.am-icon-euro:before{content:"\f153"}.am-icon-gbp:before{content:"\f154"}.am-icon-dollar:before,.am-icon-usd:before{content:"\f155"}.am-icon-inr:before,.am-icon-rupee:before{content:"\f156"}.am-icon-cny:before,.am-icon-jpy:before,.am-icon-rmb:before,.am-icon-yen:before{content:"\f157"}.am-icon-rouble:before,.am-icon-rub:before,.am-icon-ruble:before{content:"\f158"}.am-icon-krw:before,.am-icon-won:before{content:"\f159"}.am-icon-bitcoin:before,.am-icon-btc:before{content:"\f15a"}.am-icon-file:before{content:"\f15b"}.am-icon-file-text:before{content:"\f15c"}.am-icon-sort-alpha-asc:before{content:"\f15d"}.am-icon-sort-alpha-desc:before{content:"\f15e"}.am-icon-sort-amount-asc:before{content:"\f160"}.am-icon-sort-amount-desc:before{content:"\f161"}.am-icon-sort-numeric-asc:before{content:"\f162"}.am-icon-sort-numeric-desc:before{content:"\f163"}.am-icon-thumbs-up:before{content:"\f164"}.am-icon-thumbs-down:before{content:"\f165"}.am-icon-youtube-square:before{content:"\f166"}.am-icon-youtube:before{content:"\f167"}.am-icon-xing:before{content:"\f168"}.am-icon-xing-square:before{content:"\f169"}.am-icon-youtube-play:before{content:"\f16a"}.am-icon-dropbox:before{content:"\f16b"}.am-icon-stack-overflow:before{content:"\f16c"}.am-icon-instagram:before{content:"\f16d"}.am-icon-flickr:before{content:"\f16e"}.am-icon-adn:before{content:"\f170"}.am-icon-bitbucket:before{content:"\f171"}.am-icon-bitbucket-square:before{content:"\f172"}.am-icon-tumblr:before{content:"\f173"}.am-icon-tumblr-square:before{content:"\f174"}.am-icon-long-arrow-down:before{content:"\f175"}.am-icon-long-arrow-up:before{content:"\f176"}.am-icon-long-arrow-left:before{content:"\f177"}.am-icon-long-arrow-right:before{content:"\f178"}.am-icon-apple:before{content:"\f179"}.am-icon-windows:before{content:"\f17a"}.am-icon-android:before{content:"\f17b"}.am-icon-linux:before{content:"\f17c"}.am-icon-dribbble:before{content:"\f17d"}.am-icon-skype:before{content:"\f17e"}.am-icon-foursquare:before{content:"\f180"}.am-icon-trello:before{content:"\f181"}.am-icon-female:before{content:"\f182"}.am-icon-male:before{content:"\f183"}.am-icon-gittip:before,.am-icon-gratipay:before{content:"\f184"}.am-icon-sun-o:before{content:"\f185"}.am-icon-moon-o:before{content:"\f186"}.am-icon-archive:before{content:"\f187"}.am-icon-bug:before{content:"\f188"}.am-icon-vk:before{content:"\f189"}.am-icon-weibo:before{content:"\f18a"}.am-icon-renren:before{content:"\f18b"}.am-icon-pagelines:before{content:"\f18c"}.am-icon-stack-exchange:before{content:"\f18d"}.am-icon-arrow-circle-o-right:before{content:"\f18e"}.am-icon-arrow-circle-o-left:before{content:"\f190"}.am-icon-caret-square-o-left:before,.am-icon-toggle-left:before{content:"\f191"}.am-icon-dot-circle-o:before{content:"\f192"}.am-icon-wheelchair:before{content:"\f193"}.am-icon-vimeo-square:before{content:"\f194"}.am-icon-try:before,.am-icon-turkish-lira:before{content:"\f195"}.am-icon-plus-square-o:before{content:"\f196"}.am-icon-space-shuttle:before{content:"\f197"}.am-icon-slack:before{content:"\f198"}.am-icon-envelope-square:before{content:"\f199"}.am-icon-wordpress:before{content:"\f19a"}.am-icon-openid:before{content:"\f19b"}.am-icon-bank:before,.am-icon-institution:before,.am-icon-university:before{content:"\f19c"}.am-icon-graduation-cap:before,.am-icon-mortar-board:before{content:"\f19d"}.am-icon-yahoo:before{content:"\f19e"}.am-icon-google:before{content:"\f1a0"}.am-icon-reddit:before{content:"\f1a1"}.am-icon-reddit-square:before{content:"\f1a2"}.am-icon-stumbleupon-circle:before{content:"\f1a3"}.am-icon-stumbleupon:before{content:"\f1a4"}.am-icon-delicious:before{content:"\f1a5"}.am-icon-digg:before{content:"\f1a6"}.am-icon-pied-piper-pp:before{content:"\f1a7"}.am-icon-pied-piper-alt:before{content:"\f1a8"}.am-icon-drupal:before{content:"\f1a9"}.am-icon-joomla:before{content:"\f1aa"}.am-icon-language:before{content:"\f1ab"}.am-icon-fax:before{content:"\f1ac"}.am-icon-building:before{content:"\f1ad"}.am-icon-child:before{content:"\f1ae"}.am-icon-paw:before{content:"\f1b0"}.am-icon-spoon:before{content:"\f1b1"}.am-icon-cube:before{content:"\f1b2"}.am-icon-cubes:before{content:"\f1b3"}.am-icon-behance:before{content:"\f1b4"}.am-icon-behance-square:before{content:"\f1b5"}.am-icon-steam:before{content:"\f1b6"}.am-icon-steam-square:before{content:"\f1b7"}.am-icon-recycle:before{content:"\f1b8"}.am-icon-automobile:before,.am-icon-car:before{content:"\f1b9"}.am-icon-cab:before,.am-icon-taxi:before{content:"\f1ba"}.am-icon-tree:before{content:"\f1bb"}.am-icon-spotify:before{content:"\f1bc"}.am-icon-deviantart:before{content:"\f1bd"}.am-icon-soundcloud:before{content:"\f1be"}.am-icon-database:before{content:"\f1c0"}.am-icon-file-pdf-o:before{content:"\f1c1"}.am-icon-file-word-o:before{content:"\f1c2"}.am-icon-file-excel-o:before{content:"\f1c3"}.am-icon-file-powerpoint-o:before{content:"\f1c4"}.am-icon-file-image-o:before,.am-icon-file-photo-o:before,.am-icon-file-picture-o:before{content:"\f1c5"}.am-icon-file-archive-o:before,.am-icon-file-zip-o:before{content:"\f1c6"}.am-icon-file-audio-o:before,.am-icon-file-sound-o:before{content:"\f1c7"}.am-icon-file-movie-o:before,.am-icon-file-video-o:before{content:"\f1c8"}.am-icon-file-code-o:before{content:"\f1c9"}.am-icon-vine:before{content:"\f1ca"}.am-icon-codepen:before{content:"\f1cb"}.am-icon-jsfiddle:before{content:"\f1cc"}.am-icon-life-bouy:before,.am-icon-life-buoy:before,.am-icon-life-ring:before,.am-icon-life-saver:before,.am-icon-support:before{content:"\f1cd"}.am-icon-circle-o-notch:before{content:"\f1ce"}.am-icon-ra:before,.am-icon-rebel:before,.am-icon-resistance:before{content:"\f1d0"}.am-icon-empire:before,.am-icon-ge:before{content:"\f1d1"}.am-icon-git-square:before{content:"\f1d2"}.am-icon-git:before{content:"\f1d3"}.am-icon-hacker-news:before,.am-icon-y-combinator-square:before,.am-icon-yc-square:before{content:"\f1d4"}.am-icon-tencent-weibo:before{content:"\f1d5"}.am-icon-qq:before{content:"\f1d6"}.am-icon-wechat:before,.am-icon-weixin:before{content:"\f1d7"}.am-icon-paper-plane:before,.am-icon-send:before{content:"\f1d8"}.am-icon-paper-plane-o:before,.am-icon-send-o:before{content:"\f1d9"}.am-icon-history:before{content:"\f1da"}.am-icon-circle-thin:before{content:"\f1db"}.am-icon-header:before{content:"\f1dc"}.am-icon-paragraph:before{content:"\f1dd"}.am-icon-sliders:before{content:"\f1de"}.am-icon-share-alt:before{content:"\f1e0"}.am-icon-share-alt-square:before{content:"\f1e1"}.am-icon-bomb:before{content:"\f1e2"}.am-icon-futbol-o:before,.am-icon-soccer-ball-o:before{content:"\f1e3"}.am-icon-tty:before{content:"\f1e4"}.am-icon-binoculars:before{content:"\f1e5"}.am-icon-plug:before{content:"\f1e6"}.am-icon-slideshare:before{content:"\f1e7"}.am-icon-twitch:before{content:"\f1e8"}.am-icon-yelp:before{content:"\f1e9"}.am-icon-newspaper-o:before{content:"\f1ea"}.am-icon-wifi:before{content:"\f1eb"}.am-icon-calculator:before{content:"\f1ec"}.am-icon-paypal:before{content:"\f1ed"}.am-icon-google-wallet:before{content:"\f1ee"}.am-icon-cc-visa:before{content:"\f1f0"}.am-icon-cc-mastercard:before{content:"\f1f1"}.am-icon-cc-discover:before{content:"\f1f2"}.am-icon-cc-amex:before{content:"\f1f3"}.am-icon-cc-paypal:before{content:"\f1f4"}.am-icon-cc-stripe:before{content:"\f1f5"}.am-icon-bell-slash:before{content:"\f1f6"}.am-icon-bell-slash-o:before{content:"\f1f7"}.am-icon-trash:before{content:"\f1f8"}.am-icon-copyright:before{content:"\f1f9"}.am-icon-at:before{content:"\f1fa"}.am-icon-eyedropper:before{content:"\f1fb"}.am-icon-paint-brush:before{content:"\f1fc"}.am-icon-birthday-cake:before{content:"\f1fd"}.am-icon-area-chart:before{content:"\f1fe"}.am-icon-pie-chart:before{content:"\f200"}.am-icon-line-chart:before{content:"\f201"}.am-icon-lastfm:before{content:"\f202"}.am-icon-lastfm-square:before{content:"\f203"}.am-icon-toggle-off:before{content:"\f204"}.am-icon-toggle-on:before{content:"\f205"}.am-icon-bicycle:before{content:"\f206"}.am-icon-bus:before{content:"\f207"}.am-icon-ioxhost:before{content:"\f208"}.am-icon-angellist:before{content:"\f209"}.am-icon-cc:before{content:"\f20a"}.am-icon-ils:before,.am-icon-shekel:before,.am-icon-sheqel:before{content:"\f20b"}.am-icon-meanpath:before{content:"\f20c"}.am-icon-buysellads:before{content:"\f20d"}.am-icon-connectdevelop:before{content:"\f20e"}.am-icon-dashcube:before{content:"\f210"}.am-icon-forumbee:before{content:"\f211"}.am-icon-leanpub:before{content:"\f212"}.am-icon-sellsy:before{content:"\f213"}.am-icon-shirtsinbulk:before{content:"\f214"}.am-icon-simplybuilt:before{content:"\f215"}.am-icon-skyatlas:before{content:"\f216"}.am-icon-cart-plus:before{content:"\f217"}.am-icon-cart-arrow-down:before{content:"\f218"}.am-icon-diamond:before{content:"\f219"}.am-icon-ship:before{content:"\f21a"}.am-icon-user-secret:before{content:"\f21b"}.am-icon-motorcycle:before{content:"\f21c"}.am-icon-street-view:before{content:"\f21d"}.am-icon-heartbeat:before{content:"\f21e"}.am-icon-venus:before{content:"\f221"}.am-icon-mars:before{content:"\f222"}.am-icon-mercury:before{content:"\f223"}.am-icon-intersex:before,.am-icon-transgender:before{content:"\f224"}.am-icon-transgender-alt:before{content:"\f225"}.am-icon-venus-double:before{content:"\f226"}.am-icon-mars-double:before{content:"\f227"}.am-icon-venus-mars:before{content:"\f228"}.am-icon-mars-stroke:before{content:"\f229"}.am-icon-mars-stroke-v:before{content:"\f22a"}.am-icon-mars-stroke-h:before{content:"\f22b"}.am-icon-neuter:before{content:"\f22c"}.am-icon-genderless:before{content:"\f22d"}.am-icon-facebook-official:before{content:"\f230"}.am-icon-pinterest-p:before{content:"\f231"}.am-icon-whatsapp:before{content:"\f232"}.am-icon-server:before{content:"\f233"}.am-icon-user-plus:before{content:"\f234"}.am-icon-user-times:before{content:"\f235"}.am-icon-bed:before,.am-icon-hotel:before{content:"\f236"}.am-icon-viacoin:before{content:"\f237"}.am-icon-train:before{content:"\f238"}.am-icon-subway:before{content:"\f239"}.am-icon-medium:before{content:"\f23a"}.am-icon-y-combinator:before,.am-icon-yc:before{content:"\f23b"}.am-icon-optin-monster:before{content:"\f23c"}.am-icon-opencart:before{content:"\f23d"}.am-icon-expeditedssl:before{content:"\f23e"}.am-icon-battery-4:before,.am-icon-battery-full:before{content:"\f240"}.am-icon-battery-3:before,.am-icon-battery-three-quarters:before{content:"\f241"}.am-icon-battery-2:before,.am-icon-battery-half:before{content:"\f242"}.am-icon-battery-1:before,.am-icon-battery-quarter:before{content:"\f243"}.am-icon-battery-0:before,.am-icon-battery-empty:before{content:"\f244"}.am-icon-mouse-pointer:before{content:"\f245"}.am-icon-i-cursor:before{content:"\f246"}.am-icon-object-group:before{content:"\f247"}.am-icon-object-ungroup:before{content:"\f248"}.am-icon-sticky-note:before{content:"\f249"}.am-icon-sticky-note-o:before{content:"\f24a"}.am-icon-cc-jcb:before{content:"\f24b"}.am-icon-cc-diners-club:before{content:"\f24c"}.am-icon-clone:before{content:"\f24d"}.am-icon-balance-scale:before{content:"\f24e"}.am-icon-hourglass-o:before{content:"\f250"}.am-icon-hourglass-1:before,.am-icon-hourglass-start:before{content:"\f251"}.am-icon-hourglass-2:before,.am-icon-hourglass-half:before{content:"\f252"}.am-icon-hourglass-3:before,.am-icon-hourglass-end:before{content:"\f253"}.am-icon-hourglass:before{content:"\f254"}.am-icon-hand-grab-o:before,.am-icon-hand-rock-o:before{content:"\f255"}.am-icon-hand-paper-o:before,.am-icon-hand-stop-o:before{content:"\f256"}.am-icon-hand-scissors-o:before{content:"\f257"}.am-icon-hand-lizard-o:before{content:"\f258"}.am-icon-hand-spock-o:before{content:"\f259"}.am-icon-hand-pointer-o:before{content:"\f25a"}.am-icon-hand-peace-o:before{content:"\f25b"}.am-icon-trademark:before{content:"\f25c"}.am-icon-registered:before{content:"\f25d"}.am-icon-creative-commons:before{content:"\f25e"}.am-icon-gg:before{content:"\f260"}.am-icon-gg-circle:before{content:"\f261"}.am-icon-tripadvisor:before{content:"\f262"}.am-icon-odnoklassniki:before{content:"\f263"}.am-icon-odnoklassniki-square:before{content:"\f264"}.am-icon-get-pocket:before{content:"\f265"}.am-icon-wikipedia-w:before{content:"\f266"}.am-icon-safari:before{content:"\f267"}.am-icon-chrome:before{content:"\f268"}.am-icon-firefox:before{content:"\f269"}.am-icon-opera:before{content:"\f26a"}.am-icon-internet-explorer:before{content:"\f26b"}.am-icon-television:before,.am-icon-tv:before{content:"\f26c"}.am-icon-contao:before{content:"\f26d"}.am-icon-500px:before{content:"\f26e"}.am-icon-amazon:before{content:"\f270"}.am-icon-calendar-plus-o:before{content:"\f271"}.am-icon-calendar-minus-o:before{content:"\f272"}.am-icon-calendar-times-o:before{content:"\f273"}.am-icon-calendar-check-o:before{content:"\f274"}.am-icon-industry:before{content:"\f275"}.am-icon-map-pin:before{content:"\f276"}.am-icon-map-signs:before{content:"\f277"}.am-icon-map-o:before{content:"\f278"}.am-icon-map:before{content:"\f279"}.am-icon-commenting:before{content:"\f27a"}.am-icon-commenting-o:before{content:"\f27b"}.am-icon-houzz:before{content:"\f27c"}.am-icon-vimeo:before{content:"\f27d"}.am-icon-black-tie:before{content:"\f27e"}.am-icon-fonticons:before{content:"\f280"}.am-icon-reddit-alien:before{content:"\f281"}.am-icon-edge:before{content:"\f282"}.am-icon-credit-card-alt:before{content:"\f283"}.am-icon-codiepie:before{content:"\f284"}.am-icon-modx:before{content:"\f285"}.am-icon-fort-awesome:before{content:"\f286"}.am-icon-usb:before{content:"\f287"}.am-icon-product-hunt:before{content:"\f288"}.am-icon-mixcloud:before{content:"\f289"}.am-icon-scribd:before{content:"\f28a"}.am-icon-pause-circle:before{content:"\f28b"}.am-icon-pause-circle-o:before{content:"\f28c"}.am-icon-stop-circle:before{content:"\f28d"}.am-icon-stop-circle-o:before{content:"\f28e"}.am-icon-shopping-bag:before{content:"\f290"}.am-icon-shopping-basket:before{content:"\f291"}.am-icon-hashtag:before{content:"\f292"}.am-icon-bluetooth:before{content:"\f293"}.am-icon-bluetooth-b:before{content:"\f294"}.am-icon-percent:before{content:"\f295"}.am-icon-gitlab:before{content:"\f296"}.am-icon-wpbeginner:before{content:"\f297"}.am-icon-wpforms:before{content:"\f298"}.am-icon-envira:before{content:"\f299"}.am-icon-universal-access:before{content:"\f29a"}.am-icon-wheelchair-alt:before{content:"\f29b"}.am-icon-question-circle-o:before{content:"\f29c"}.am-icon-blind:before{content:"\f29d"}.am-icon-audio-description:before{content:"\f29e"}.am-icon-volume-control-phone:before{content:"\f2a0"}.am-icon-braille:before{content:"\f2a1"}.am-icon-assistive-listening-systems:before{content:"\f2a2"}.am-icon-american-sign-language-interpreting:before,.am-icon-asl-interpreting:before{content:"\f2a3"}.am-icon-deaf:before,.am-icon-deafness:before,.am-icon-hard-of-hearing:before{content:"\f2a4"}.am-icon-glide:before{content:"\f2a5"}.am-icon-glide-g:before{content:"\f2a6"}.am-icon-sign-language:before,.am-icon-signing:before{content:"\f2a7"}.am-icon-low-vision:before{content:"\f2a8"}.am-icon-viadeo:before{content:"\f2a9"}.am-icon-viadeo-square:before{content:"\f2aa"}.am-icon-snapchat:before{content:"\f2ab"}.am-icon-snapchat-ghost:before{content:"\f2ac"}.am-icon-snapchat-square:before{content:"\f2ad"}.am-icon-pied-piper:before{content:"\f2ae"}.am-icon-first-order:before{content:"\f2b0"}.am-icon-yoast:before{content:"\f2b1"}.am-icon-themeisle:before{content:"\f2b2"}.am-icon-google-plus-circle:before,.am-icon-google-plus-official:before{content:"\f2b3"}.am-icon-fa:before,.am-icon-font-awesome:before{content:"\f2b4"}@-webkit-keyframes icon-spin{0%{-webkit-transform:rotate(0);transform:rotate(0)}100%{-webkit-transform:rotate(359deg);transform:rotate(359deg)}}@keyframes icon-spin{0%{-webkit-transform:rotate(0);transform:rotate(0)}100%{-webkit-transform:rotate(359deg);transform:rotate(359deg)}}.am-icon-spin{-webkit-animation:icon-spin 2s infinite linear;animation:icon-spin 2s infinite linear}.am-icon-pulse{-webkit-animation:icon-spin 1s infinite steps(8);animation:icon-spin 1s infinite steps(8)}.am-icon-ul{padding-left:0;margin-left:2.14285714em;list-style-type:none}.am-icon-ul>li{position:relative}.am-icon-li{position:absolute;left:-2.14285714em;width:2.14285714em;top:.14285714em;text-align:center}.am-input-group{position:relative;display:table;border-collapse:separate}.am-input-group .am-form-field{position:relative;z-index:2;float:left;width:100%;margin-bottom:0}.am-input-group .am-form-field,.am-input-group-btn,.am-input-group-label{display:table-cell}.am-input-group .am-form-field:not(:first-child):not(:last-child),.am-input-group-btn:not(:first-child):not(:last-child),.am-input-group-label:not(:first-child):not(:last-child){border-radius:0}.am-input-group-btn,.am-input-group-label{width:1%;white-space:nowrap;vertical-align:middle}.am-input-group-label{height:38px;padding:0 1em;font-size:1.6rem;font-weight:400;line-height:36px;color:#555;text-align:center;background-color:#eee;border:1px solid #ccc;border-radius:2px}.am-input-group-label input[type=checkbox],.am-input-group-label input[type=radio]{margin-top:0}.am-input-group .am-form-field:first-child,.am-input-group-btn:first-child>.am-btn,.am-input-group-btn:first-child>.am-btn-group>.am-btn,.am-input-group-btn:first-child>.am-dropdown-toggle,.am-input-group-btn:last-child>.am-btn-group:not(:last-child)>.am-btn,.am-input-group-btn:last-child>.am-btn:not(:last-child):not(.dropdown-toggle),.am-input-group-label:first-child{border-bottom-right-radius:0;border-top-right-radius:0}.am-input-group-label:first-child{border-right:0}.am-input-group .am-form-field:last-child,.am-input-group-btn:first-child>.am-btn-group:not(:first-child)>.am-btn,.am-input-group-btn:first-child>.am-btn:not(:first-child),.am-input-group-btn:last-child>.am-btn,.am-input-group-btn:last-child>.am-btn-group>.am-btn,.am-input-group-btn:last-child>.am-dropdown-toggle,.am-input-group-label:last-child{border-bottom-left-radius:0;border-top-left-radius:0}.am-input-group-label:last-child{border-left:0}.am-input-group-btn{position:relative;font-size:0;white-space:nowrap}.am-input-group-btn>.am-btn{position:relative;border-color:#ccc}.am-input-group-btn>.am-btn+.am-btn{margin-left:-1px}.am-input-group-btn>.am-btn:active,.am-input-group-btn>.am-btn:focus,.am-input-group-btn>.am-btn:hover{z-index:2}.am-input-group-btn:first-child>.am-btn,.am-input-group-btn:first-child>.am-btn-group{margin-right:-2px}.am-input-group-btn:last-child>.am-btn,.am-input-group-btn:last-child>.am-btn-group{margin-left:-1px}.am-input-group .am-form-field,.am-input-group-btn>.am-btn{height:38px;padding-bottom:auto}.am-input-group-lg>.am-form-field,.am-input-group-lg>.am-input-group-btn>.am-btn,.am-input-group-lg>.am-input-group-label{height:42px;font-size:1.8rem!important}.am-input-group-lg>.am-input-group-label{line-height:40px}.am-input-group-sm>.am-form-field,.am-input-group-sm>.am-input-group-btn>.am-btn,.am-input-group-sm>.am-input-group-label{height:33px;font-size:1.4rem!important}.am-input-group-sm>.am-input-group-label{line-height:31px}.am-input-group-primary .am-input-group-label{background:#0e90d2;color:#fff}.am-input-group-primary .am-input-group-btn>.am-btn,.am-input-group-primary .am-input-group-label,.am-input-group-primary.am-input-group .am-form-field{border-color:#0e90d2}.am-input-group-secondary .am-input-group-label{background:#3bb4f2;color:#fff}.am-input-group-secondary .am-input-group-btn>.am-btn,.am-input-group-secondary .am-input-group-label,.am-input-group-secondary.am-input-group .am-form-field{border-color:#3bb4f2}.am-input-group-success .am-input-group-label{background:#5eb95e;color:#fff}.am-input-group-success .am-input-group-btn>.am-btn,.am-input-group-success .am-input-group-label,.am-input-group-success.am-input-group .am-form-field{border-color:#5eb95e}.am-input-group-warning .am-input-group-label{background:#F37B1D;color:#fff}.am-input-group-warning .am-input-group-btn>.am-btn,.am-input-group-warning .am-input-group-label,.am-input-group-warning.am-input-group .am-form-field{border-color:#F37B1D}.am-input-group-danger .am-input-group-label{background:#dd514c;color:#fff}.am-input-group-danger .am-input-group-btn>.am-btn,.am-input-group-danger .am-input-group-label,.am-input-group-danger.am-input-group .am-form-field{border-color:#dd514c}.am-list{margin-bottom:1.6rem;padding-left:0}.am-list>li{position:relative;display:block;margin-bottom:-1px;background-color:#fff;border:1px solid #dedede;border-width:1px 0}.am-list>li>a{display:block;padding:1rem 0}.am-list>li>a.am-active,.am-list>li>a.am-active:focus,.am-list>li>a.am-active:hover{z-index:2;color:#fff;background-color:#0e90d2;border-color:#0e90d2}.am-list>li>a.am-active .am-list-item-heading,.am-list>li>a.am-active:focus .am-list-item-heading,.am-list>li>a.am-active:hover .am-list-item-heading{color:inherit}.am-list>li>a.am-active .am-list-item-text,.am-list>li>a.am-active:focus .am-list-item-text,.am-list>li>a.am-active:hover .am-list-item-text{color:#b2e2fa}.am-list>li>.am-badge{float:right}.am-list>li>.am-badge+.am-badge{margin-right:5px}.am-list-static>li{padding:.8rem .2rem}.am-list-static.am-list-border>li{padding:1rem}.am-list-border>li,.am-list-bordered>li{border-width:1px}.am-list-border>li:first-child,.am-list-border>li:first-child>a,.am-list-bordered>li:first-child,.am-list-bordered>li:first-child>a{border-top-right-radius:2px;border-top-left-radius:2px}.am-list-border>li:last-child,.am-list-border>li:last-child>a,.am-list-bordered>li:last-child,.am-list-bordered>li:last-child>a{margin-bottom:0;border-bottom-right-radius:2px;border-bottom-left-radius:2px}.am-list-border>li>a,.am-list-bordered>li>a{padding:1rem}.am-list-border>li>a:focus,.am-list-border>li>a:hover,.am-list-bordered>li>a:focus,.am-list-bordered>li>a:hover{background-color:#f5f5f5}.am-list-striped>li:nth-of-type(even){background:#f5f5f5}.am-list-item-hd{margin-top:0}.am-list-item-text{line-height:1.4;font-size:1.3rem;color:#999;margin:0}.am-panel{margin-bottom:20px;background-color:#fff;border:1px solid transparent;border-radius:2px;-webkit-box-shadow:0 1px 1px rgba(0,0,0,.05);box-shadow:0 1px 1px rgba(0,0,0,.05)}.am-panel-hd{padding:.6rem 1.25rem;border-bottom:1px solid transparent;border-top-right-radius:2px;border-top-left-radius:2px}.am-panel-bd{padding:1.25rem}.am-panel-title{margin:0;font-size:100%;color:inherit}.am-panel-title>a{color:inherit}.am-panel-footer{padding:.6rem 1.25rem;background-color:#f5f5f5;border-top:1px solid #ddd;border-bottom-right-radius:2px;border-bottom-left-radius:2px}.am-panel-default{border-color:#ddd}.am-panel-default>.am-panel-hd{color:#444;background-color:#f5f5f5;border-color:#ddd}.am-panel-default>.am-panel-hd+.am-panel-collapse>.am-panel-bd{border-top-color:#ddd}.am-panel-default>.am-panel-footer+.am-panel-collapse>.am-panel-bd{border-bottom-color:#ddd}.am-panel-primary{border-color:#10a0ea}.am-panel-primary>.am-panel-hd{color:#fff;background-color:#0e90d2;border-color:#10a0ea}.am-panel-primary>.am-panel-hd+.am-panel-collapse>.am-panel-bd{border-top-color:#10a0ea}.am-panel-primary>.am-panel-footer+.am-panel-collapse>.am-panel-bd{border-bottom-color:#10a0ea}.am-panel-secondary{border-color:#caebfb}.am-panel-secondary>.am-panel-hd{color:#14a6ef;background-color:rgba(59,180,242,.15);border-color:#caebfb}.am-panel-secondary>.am-panel-hd+.am-panel-collapse>.am-panel-bd{border-top-color:#caebfb}.am-panel-secondary>.am-panel-footer+.am-panel-collapse>.am-panel-bd{border-bottom-color:#caebfb}.am-panel-success{border-color:#c9e7c9}.am-panel-success>.am-panel-hd{color:#5eb95e;background-color:rgba(94,185,94,.15);border-color:#c9e7c9}.am-panel-success>.am-panel-hd+.am-panel-collapse>.am-panel-bd{border-top-color:#c9e7c9}.am-panel-success>.am-panel-footer+.am-panel-collapse>.am-panel-bd{border-bottom-color:#c9e7c9}.am-panel-warning{border-color:#fbd0ae}.am-panel-warning>.am-panel-hd{color:#F37B1D;background-color:rgba(243,123,29,.15);border-color:#fbd0ae}.am-panel-warning>.am-panel-hd+.am-panel-collapse>.am-panel-bd{border-top-color:#fbd0ae}.am-panel-warning>.am-panel-footer+.am-panel-collapse>.am-panel-bd{border-bottom-color:#fbd0ae}.am-panel-danger{border-color:#f5cecd}.am-panel-danger>.am-panel-hd{color:#dd514c;background-color:rgba(221,81,76,.15);border-color:#f5cecd}.am-panel-danger>.am-panel-hd+.am-panel-collapse>.am-panel-bd{border-top-color:#f5cecd}.am-panel-danger>.am-panel-footer+.am-panel-collapse>.am-panel-bd{border-bottom-color:#f5cecd}.am-panel>.am-table{margin-bottom:0}.am-panel>.am-table:first-child{border-top-right-radius:2px;border-top-left-radius:2px}.am-panel>.am-table:first-child>tbody:first-child>tr:first-child td:first-child,.am-panel>.am-table:first-child>tbody:first-child>tr:first-child th:first-child,.am-panel>.am-table:first-child>thead:first-child>tr:first-child td:first-child,.am-panel>.am-table:first-child>thead:first-child>tr:first-child th:first-child{border-top-left-radius:2px}.am-panel>.am-table:first-child>tbody:first-child>tr:first-child td:last-child,.am-panel>.am-table:first-child>tbody:first-child>tr:first-child th:last-child,.am-panel>.am-table:first-child>thead:first-child>tr:first-child td:last-child,.am-panel>.am-table:first-child>thead:first-child>tr:first-child th:last-child{border-top-right-radius:2px}.am-panel>.am-table:last-child{border-bottom-right-radius:2px;border-bottom-left-radius:2px}.am-panel>.am-table:last-child>tbody:last-child>tr:last-child td:first-child,.am-panel>.am-table:last-child>tbody:last-child>tr:last-child th:first-child,.am-panel>.am-table:last-child>tfoot:last-child>tr:last-child td:first-child,.am-panel>.am-table:last-child>tfoot:last-child>tr:last-child th:first-child{border-bottom-left-radius:2px}.am-panel>.am-table:last-child>tbody:last-child>tr:last-child td:last-child,.am-panel>.am-table:last-child>tbody:last-child>tr:last-child th:last-child,.am-panel>.am-table:last-child>tfoot:last-child>tr:last-child td:last-child,.am-panel>.am-table:last-child>tfoot:last-child>tr:last-child th:last-child{border-bottom-right-radius:2px}.am-panel>.am-panel-bd+.am-table{border-top:1px solid #ddd}.am-panel>.am-table>tbody:first-child>tr:first-child td,.am-panel>.am-table>tbody:first-child>tr:first-child th{border-top:0}.am-panel>.am-table-bd{border:0}.am-panel>.am-table-bd>tbody>tr>td:first-child,.am-panel>.am-table-bd>tbody>tr>th:first-child,.am-panel>.am-table-bd>tfoot>tr>td:first-child,.am-panel>.am-table-bd>tfoot>tr>th:first-child,.am-panel>.am-table-bd>thead>tr>td:first-child,.am-panel>.am-table-bd>thead>tr>th:first-child{border-left:0}.am-panel>.am-table-bd>tbody>tr>td:last-child,.am-panel>.am-table-bd>tbody>tr>th:last-child,.am-panel>.am-table-bd>tfoot>tr>td:last-child,.am-panel>.am-table-bd>tfoot>tr>th:last-child,.am-panel>.am-table-bd>thead>tr>td:last-child,.am-panel>.am-table-bd>thead>tr>th:last-child{border-right:0}.am-panel>.am-table-bd>tbody>tr:first-child>td,.am-panel>.am-table-bd>tbody>tr:first-child>th,.am-panel>.am-table-bd>thead>tr:first-child>td,.am-panel>.am-table-bd>thead>tr:first-child>th{border-bottom:0}.am-panel>.am-table-bd>tbody>tr:last-child>td,.am-panel>.am-table-bd>tbody>tr:last-child>th,.am-panel>.am-table-bd>tfoot>tr:last-child>td,.am-panel>.am-table-bd>tfoot>tr:last-child>th{border-bottom:0}.am-panel>.am-list{margin:0}.am-panel>.am-list>li>a{padding-left:1rem;padding-right:1rem}.am-panel>.am-list-static li{padding-left:1rem;padding-right:1rem}.am-panel-group{margin-bottom:2rem}.am-panel-group .am-panel{margin-bottom:0;border-radius:2px}.am-panel-group .am-panel+.am-panel{margin-top:6px}.am-panel-group .am-panel-hd{border-bottom:0}.am-panel-group .am-panel-hd+.am-panel-collapse .am-panel-bd{border-top:1px solid #ddd}.am-panel-group .am-panel-footer{border-top:0}.am-panel-group .am-panel-footer+.am-panel-collapse .am-panel-bd{border-bottom:1px solid #ddd}@-webkit-keyframes progress-bar-stripes{from{background-position:36px 0}to{background-position:0 0}}@keyframes progress-bar-stripes{from{background-position:36px 0}to{background-position:0 0}}.am-progress{overflow:hidden;height:2rem;margin-bottom:2rem;background-color:#f5f5f5;border-radius:2px;-webkit-box-shadow:inset 0 1px 2px rgba(0,0,0,.1);box-shadow:inset 0 1px 2px rgba(0,0,0,.1)}.am-progress-bar{float:left;width:0;height:100%;font-size:1.2rem;line-height:2rem;color:#fff;text-align:center;background-color:#0e90d2;-webkit-box-shadow:inset 0 -1px 0 rgba(0,0,0,.15);box-shadow:inset 0 -1px 0 rgba(0,0,0,.15);-webkit-transition:width .6s ease;transition:width .6s ease}.am-progress-striped .am-progress-bar{background-image:-webkit-gradient(linear,0 100%,100% 0,color-stop(.25,rgba(255,255,255,.15)),color-stop(.25,transparent),color-stop(.5,transparent),color-stop(.5,rgba(255,255,255,.15)),color-stop(.75,rgba(255,255,255,.15)),color-stop(.75,transparent),to(transparent));background-image:-webkit-linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent);background-image:linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent);-webkit-background-size:36px 36px;background-size:36px 36px}.am-progress.am-active .am-progress-bar{-webkit-animation:progress-bar-stripes 2s linear infinite;animation:progress-bar-stripes 2s linear infinite}.am-progress-bar[aria-valuenow="1"],.am-progress-bar[aria-valuenow="2"]{min-width:30px}.am-progress-bar[aria-valuenow="0"]{color:#999;min-width:30px;background:0 0;-webkit-box-shadow:none;box-shadow:none}.am-progress-bar-secondary{background-color:#3bb4f2}.am-progress-striped .am-progress-bar-secondary{background-image:-webkit-gradient(linear,0 100%,100% 0,color-stop(.25,rgba(255,255,255,.15)),color-stop(.25,transparent),color-stop(.5,transparent),color-stop(.5,rgba(255,255,255,.15)),color-stop(.75,rgba(255,255,255,.15)),color-stop(.75,transparent),to(transparent));background-image:-webkit-linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent);background-image:linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent)}.am-progress-bar-success{background-color:#5eb95e}.am-progress-striped .am-progress-bar-success{background-image:-webkit-gradient(linear,0 100%,100% 0,color-stop(.25,rgba(255,255,255,.15)),color-stop(.25,transparent),color-stop(.5,transparent),color-stop(.5,rgba(255,255,255,.15)),color-stop(.75,rgba(255,255,255,.15)),color-stop(.75,transparent),to(transparent));background-image:-webkit-linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent);background-image:linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent)}.am-progress-bar-warning{background-color:#F37B1D}.am-progress-striped .am-progress-bar-warning{background-image:-webkit-gradient(linear,0 100%,100% 0,color-stop(.25,rgba(255,255,255,.15)),color-stop(.25,transparent),color-stop(.5,transparent),color-stop(.5,rgba(255,255,255,.15)),color-stop(.75,rgba(255,255,255,.15)),color-stop(.75,transparent),to(transparent));background-image:-webkit-linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent);background-image:linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent)}.am-progress-bar-danger{background-color:#dd514c}.am-progress-striped .am-progress-bar-danger{background-image:-webkit-gradient(linear,0 100%,100% 0,color-stop(.25,rgba(255,255,255,.15)),color-stop(.25,transparent),color-stop(.5,transparent),color-stop(.5,rgba(255,255,255,.15)),color-stop(.75,rgba(255,255,255,.15)),color-stop(.75,transparent),to(transparent));background-image:-webkit-linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent);background-image:linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent)}.am-progress-xs{height:.6rem}.am-progress-sm{height:1.2rem}.am-thumbnail{display:block;padding:2px;margin-bottom:2rem;background-color:#fff;border:1px solid #ddd;border-radius:2px;-webkit-transition:all .2s ease-in-out;transition:all .2s ease-in-out}.am-thumbnail a>img,.am-thumbnail>img{margin-left:auto;margin-right:auto;display:block}.am-thumbnail a.am-thumbnail.active,.am-thumbnail a.am-thumbnail:focus,.am-thumbnail a.am-thumbnail:hover{border-color:#0e90d2;background-color:#fff}.am-thumbnail a>img,.am-thumbnail>img,img.am-thumbnail{max-width:100%;height:auto}.am-thumbnail-caption{margin:0;padding:.8rem;color:#333;font-weight:400}.am-thumbnail-caption :last-child{margin-bottom:0}.am-thumbnails{margin-left:-.5rem;margin-right:-.5rem}.am-thumbnails>li{padding:0 .5rem 1rem .5rem}.am-scrollable-horizontal{width:100%;overflow-y:hidden;overflow-x:auto;-ms-overflow-style:-ms-autohiding-scrollbar;-webkit-overflow-scrolling:touch}.am-scrollable-vertical{height:240px;overflow-y:scroll;-webkit-overflow-scrolling:touch;resize:vertical}.am-square{border-radius:0}.am-radius{border-radius:2px}.am-round{border-radius:1000px}.am-circle{border-radius:50%}.am-cf:after,.am-cf:before{content:" ";display:table}.am-cf:after{clear:both}.am-fl{float:left}.am-fr{float:right}.am-nbfc{overflow:hidden}.am-center{display:block;margin-left:auto;margin-right:auto}.am-block{display:block!important}.am-inline{display:inline!important}.am-inline-block{display:inline-block!important}.am-hide{display:none!important;visibility:hidden!important}.am-vertical-align{font-size:0}.am-vertical-align:before{content:'';display:inline-block;height:100%;vertical-align:middle}.am-vertical-align-bottom,.am-vertical-align-middle{display:inline-block;font-size:1.6rem;max-width:100%}.am-vertical-align-middle{vertical-align:middle}.am-vertical-align-bottom{vertical-align:bottom}.am-responsive-width{-webkit-box-sizing:border-box;box-sizing:border-box;max-width:100%;height:auto}.am-margin{margin:1.6rem}.am-margin-0{margin:0!important}.am-margin-xs{margin:.5rem}.am-margin-sm{margin:1rem}.am-margin-lg{margin:2.4rem}.am-margin-xl{margin:3.2rem}.am-margin-horizontal{margin-left:1.6rem;margin-right:1.6rem}.am-margin-horizontal-0{margin-left:0!important;margin-right:0!important}.am-margin-horizontal-xs{margin-left:.5rem;margin-right:.5rem}.am-margin-horizontal-sm{margin-left:1rem;margin-right:1rem}.am-margin-horizontal-lg{margin-left:2.4rem;margin-right:2.4rem}.am-margin-horizontal-xl{margin-left:3.2rem;margin-right:3.2rem}.am-margin-vertical{margin-top:1.6rem;margin-bottom:1.6rem}.am-margin-vertical-0{margin-top:0!important;margin-bottom:0!important}.am-margin-vertical-xs{margin-top:.5rem;margin-bottom:.5rem}.am-margin-vertical-sm{margin-top:1rem;margin-bottom:1rem}.am-margin-vertical-lg{margin-top:2.4rem;margin-bottom:2.4rem}.am-margin-vertical-xl{margin-top:3.2rem;margin-bottom:3.2rem}.am-margin-top{margin-top:1.6rem}.am-margin-top-0{margin-top:0!important}.am-margin-top-xs{margin-top:.5rem}.am-margin-top-sm{margin-top:1rem}.am-margin-top-lg{margin-top:2.4rem}.am-margin-top-xl{margin-top:3.2rem}.am-margin-bottom{margin-bottom:1.6rem}.am-margin-bottom-0{margin-bottom:0!important}.am-margin-bottom-xs{margin-bottom:.5rem}.am-margin-bottom-sm{margin-bottom:1rem}.am-margin-bottom-lg{margin-bottom:2.4rem}.am-margin-bottom-xl{margin-bottom:3.2rem}.am-margin-left{margin-left:1.6rem}.am-margin-left-0{margin-left:0!important}.am-margin-left-xs{margin-left:.5rem}.am-margin-left-sm{margin-left:1rem}.am-margin-left-lg{margin-left:2.4rem}.am-margin-left-xl{margin-left:3.2rem}.am-margin-right{margin-right:1.6rem}.am-margin-right-0{margin-right:0!important}.am-margin-right-xs{margin-right:.5rem}.am-margin-right-sm{margin-right:1rem}.am-margin-right-lg{margin-right:2.4rem}.am-margin-right-xl{margin-right:3.2rem}.am-padding{padding:1.6rem}.am-padding-0{padding:0!important}.am-padding-xs{padding:.5rem}.am-padding-sm{padding:1rem}.am-padding-lg{padding:2.4rem}.am-padding-xl{padding:3.2rem}.am-padding-horizontal{padding-left:1.6rem;padding-right:1.6rem}.am-padding-horizontal-0{padding-left:0!important;padding-right:0!important}.am-padding-horizontal-xs{padding-left:.5rem;padding-right:.5rem}.am-padding-horizontal-sm{padding-left:1rem;padding-right:1rem}.am-padding-horizontal-lg{padding-left:2.4rem;padding-right:2.4rem}.am-padding-horizontal-xl{padding-left:3.2rem;padding-right:3.2rem}.am-padding-vertical{padding-top:1.6rem;padding-bottom:1.6rem}.am-padding-vertical-0{padding-top:0!important;padding-bottom:0!important}.am-padding-vertical-xs{padding-top:.5rem;padding-bottom:.5rem}.am-padding-vertical-sm{padding-top:1rem;padding-bottom:1rem}.am-padding-vertical-lg{padding-top:2.4rem;padding-bottom:2.4rem}.am-padding-vertical-xl{padding-top:3.2rem;padding-bottom:3.2rem}.am-padding-top{padding-top:1.6rem}.am-padding-top-0{padding-top:0!important}.am-padding-top-xs{padding-top:.5rem}.am-padding-top-sm{padding-top:1rem}.am-padding-top-lg{padding-top:2.4rem}.am-padding-top-xl{padding-top:3.2rem}.am-padding-bottom{padding-bottom:1.6rem}.am-padding-bottom-0{padding-bottom:0!important}.am-padding-bottom-xs{padding-bottom:.5rem}.am-padding-bottom-sm{padding-bottom:1rem}.am-padding-bottom-lg{padding-bottom:2.4rem}.am-padding-bottom-xl{padding-bottom:3.2rem}.am-padding-left{padding-left:1.6rem}.am-padding-left-0{padding-left:0!important}.am-padding-left-xs{padding-left:.5rem}.am-padding-left-sm{padding-left:1rem}.am-padding-left-lg{padding-left:2.4rem}.am-padding-left-xl{padding-left:3.2rem}.am-padding-right{padding-right:1.6rem}.am-padding-right-0{padding-right:0!important}.am-padding-right-xs{padding-right:.5rem}.am-padding-right-sm{padding-right:1rem}.am-padding-right-lg{padding-right:2.4rem}.am-padding-right-xl{padding-right:3.2rem}@media only screen{.am-hide-lg,.am-hide-lg-only,.am-hide-lg-up,.am-hide-md,.am-hide-md-only,.am-hide-md-up,.am-show-lg-down,.am-show-md-down,.am-show-sm,.am-show-sm-down,.am-show-sm-only,.am-show-sm-up{display:inherit!important}.am-hide-lg-down,.am-hide-md-down,.am-hide-sm,.am-hide-sm-down,.am-hide-sm-only,.am-hide-sm-up,.am-show-lg,.am-show-lg-only,.am-show-lg-up,.am-show-md,.am-show-md-only,.am-show-md-up{display:none!important}table.am-hide-lg,table.am-hide-lg-only,table.am-hide-lg-up,table.am-hide-md,table.am-hide-md-only,table.am-hide-md-up,table.am-show-lg-down,table.am-show-md-down,table.am-show-sm,table.am-show-sm-down,table.am-show-sm-only,table.am-show-sm-up{display:table!important}thead.am-hide-lg,thead.am-hide-lg-only,thead.am-hide-lg-up,thead.am-hide-md,thead.am-hide-md-only,thead.am-hide-md-up,thead.am-show-lg-down,thead.am-show-md-down,thead.am-show-sm,thead.am-show-sm-down,thead.am-show-sm-only,thead.am-show-sm-up{display:table-header-group!important}tbody.am-hide-lg,tbody.am-hide-lg-only,tbody.am-hide-lg-up,tbody.am-hide-md,tbody.am-hide-md-only,tbody.am-hide-md-up,tbody.am-show-lg-down,tbody.am-show-md-down,tbody.am-show-sm,tbody.am-show-sm-down,tbody.am-show-sm-only,tbody.am-show-sm-up{display:table-row-group!important}tr.am-hide-lg,tr.am-hide-lg-only,tr.am-hide-lg-up,tr.am-hide-md,tr.am-hide-md-only,tr.am-hide-md-up,tr.am-show-lg-down,tr.am-show-md-down,tr.am-show-sm,tr.am-show-sm-down,tr.am-show-sm-only,tr.am-show-sm-up{display:table-row!important}td.am-hide-lg,td.am-hide-lg-only,td.am-hide-lg-up,td.am-hide-md,td.am-hide-md-only,td.am-hide-md-up,td.am-show-lg-down,td.am-show-md-down,td.am-show-sm,td.am-show-sm-down,td.am-show-sm-only,td.am-show-sm-up,th.am-hide-lg,th.am-hide-lg-only,th.am-hide-lg-up,th.am-hide-md,th.am-hide-md-only,th.am-hide-md-up,th.am-show-lg-down,th.am-show-md-down,th.am-show-sm,th.am-show-sm-down,th.am-show-sm-only,th.am-show-sm-up{display:table-cell!important}}@media only screen and (min-width:641px){.am-hide-lg,.am-hide-lg-only,.am-hide-lg-up,.am-hide-sm,.am-hide-sm-down,.am-hide-sm-only,.am-show-lg-down,.am-show-md,.am-show-md-down,.am-show-md-only,.am-show-md-up,.am-show-sm-up{display:inherit!important}.am-hide-lg-down,.am-hide-md,.am-hide-md-down,.am-hide-md-only,.am-hide-md-up,.am-hide-sm-up,.am-show-lg,.am-show-lg-only,.am-show-lg-up,.am-show-sm,.am-show-sm-down,.am-show-sm-only{display:none!important}table.am-hide-lg,table.am-hide-lg-only,table.am-hide-lg-up,table.am-hide-sm,table.am-hide-sm-down,table.am-hide-sm-only,table.am-show-lg-down,table.am-show-md,table.am-show-md-down,table.am-show-md-only,table.am-show-md-up,table.am-show-sm-up{display:table!important}thead.am-hide-lg,thead.am-hide-lg-only,thead.am-hide-lg-up,thead.am-hide-sm,thead.am-hide-sm-down,thead.am-hide-sm-only,thead.am-show-lg-down,thead.am-show-md,thead.am-show-md-down,thead.am-show-md-only,thead.am-show-md-up,thead.am-show-sm-up{display:table-header-group!important}tbody.am-hide-lg,tbody.am-hide-lg-only,tbody.am-hide-lg-up,tbody.am-hide-sm,tbody.am-hide-sm-down,tbody.am-hide-sm-only,tbody.am-show-lg-down,tbody.am-show-md,tbody.am-show-md-down,tbody.am-show-md-only,tbody.am-show-md-up,tbody.am-show-sm-up{display:table-row-group!important}tr.am-hide-lg,tr.am-hide-lg-only,tr.am-hide-lg-up,tr.am-hide-sm,tr.am-hide-sm-down,tr.am-hide-sm-only,tr.am-show-lg-down,tr.am-show-md,tr.am-show-md-down,tr.am-show-md-only,tr.am-show-md-up,tr.am-show-sm-up{display:table-row!important}td.am-hide-lg,td.am-hide-lg-only,td.am-hide-lg-up,td.am-hide-sm,td.am-hide-sm-down,td.am-hide-sm-only,td.am-show-lg-down,td.am-show-md,td.am-show-md-down,td.am-show-md-only,td.am-show-md-up,td.am-show-sm-up,th.am-hide-lg,th.am-hide-lg-only,th.am-hide-lg-up,th.am-hide-sm,th.am-hide-sm-down,th.am-hide-sm-only,th.am-show-lg-down,th.am-show-md,th.am-show-md-down,th.am-show-md-only,th.am-show-md-up,th.am-show-sm-up{display:table-cell!important}}@media only screen and (min-width:1025px){.am-hide-md,.am-hide-md-down,.am-hide-md-only,.am-hide-sm,.am-hide-sm-down,.am-hide-sm-only,.am-show-lg,.am-show-lg-down,.am-show-lg-only,.am-show-lg-up,.am-show-md-up,.am-show-sm-up{display:inherit!important}.am-hide-lg,.am-hide-lg-down,.am-hide-lg-only,.am-hide-lg-up,.am-hide-md-up,.am-hide-sm-up,.am-show-md,.am-show-md-down,.am-show-md-only,.am-show-sm,.am-show-sm-down,.am-show-sm-only{display:none!important}table.am-hide-md,table.am-hide-md-down,table.am-hide-md-only,table.am-hide-sm,table.am-hide-sm-down,table.am-hide-sm-only,table.am-show-lg,table.am-show-lg-down,table.am-show-lg-only,table.am-show-lg-up,table.am-show-md-up,table.am-show-sm-up{display:table!important}thead.am-hide-md,thead.am-hide-md-down,thead.am-hide-md-only,thead.am-hide-sm,thead.am-hide-sm-down,thead.am-hide-sm-only,thead.am-show-lg,thead.am-show-lg-down,thead.am-show-lg-only,thead.am-show-lg-up,thead.am-show-md-up,thead.am-show-sm-up{display:table-header-group!important}tbody.am-hide-md,tbody.am-hide-md-down,tbody.am-hide-md-only,tbody.am-hide-sm,tbody.am-hide-sm-down,tbody.am-hide-sm-only,tbody.am-show-lg,tbody.am-show-lg-down,tbody.am-show-lg-only,tbody.am-show-lg-up,tbody.am-show-md-up,tbody.am-show-sm-up{display:table-row-group!important}tr.am-hide-md,tr.am-hide-md-down,tr.am-hide-md-only,tr.am-hide-sm,tr.am-hide-sm-down,tr.am-hide-sm-only,tr.am-show-lg,tr.am-show-lg-down,tr.am-show-lg-only,tr.am-show-lg-up,tr.am-show-md-up,tr.am-show-sm-up{display:table-row!important}td.am-hide-md,td.am-hide-md-down,td.am-hide-md-only,td.am-hide-sm,td.am-hide-sm-down,td.am-hide-sm-only,td.am-show-lg,td.am-show-lg-down,td.am-show-lg-only,td.am-show-lg-up,td.am-show-md-up,td.am-show-sm-up,th.am-hide-md,th.am-hide-md-down,th.am-hide-md-only,th.am-hide-sm,th.am-hide-sm-down,th.am-hide-sm-only,th.am-show-lg,th.am-show-lg-down,th.am-show-lg-only,th.am-show-lg-up,th.am-show-md-up,th.am-show-sm-up{display:table-cell!important}}@media only screen and (orientation:landscape){.am-hide-portrait,.am-show-landscape{display:inherit!important}.am-hide-landscape,.am-show-portrait{display:none!important}}@media only screen and (orientation:portrait){.am-hide-landscape,.am-show-portrait{display:inherit!important}.am-hide-portrait,.am-show-landscape{display:none!important}}.am-sans-serif{font-family:"Segoe UI","Lucida Grande",Helvetica,Arial,"Microsoft YaHei",FreeSans,Arimo,"Droid Sans","wenquanyi micro hei","Hiragino Sans GB","Hiragino Sans GB W3",FontAwesome,sans-serif}.am-serif{font-family:Georgia,"Times New Roman",Times,SimSun,FontAwesome,serif}.am-kai{font-family:Georgia,"Times New Roman",Times,Kai,"Kaiti SC",KaiTi,BiauKai,FontAwesome,serif}.am-monospace{font-family:Monaco,Menlo,Consolas,"Courier New",FontAwesome,monospace}.am-text-primary{color:#0e90d2}.am-text-secondary{color:#3bb4f2}.am-text-success{color:#5eb95e}.am-text-warning{color:#F37B1D}.am-text-danger{color:#dd514c}.am-link-muted{color:#666}.am-link-muted a{color:#666}.am-link-muted a:hover,.am-link-muted:hover{color:#555}.am-text-default{font-size:1.6rem}.am-text-xs{font-size:1.2rem}.am-text-sm{font-size:1.4rem}.am-text-lg{font-size:1.8rem}.am-text-xl{font-size:2.4rem}.am-text-xxl{font-size:3.2rem}.am-text-xxxl{font-size:4.2rem}.am-ellipsis,.am-text-truncate{word-wrap:normal;text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.am-text-break{word-wrap:break-word;-webkit-hyphens:auto;-ms-hyphens:auto;-moz-hyphens:auto;hyphens:auto}.am-text-nowrap{white-space:nowrap}[class*=am-align-]{margin-bottom:1rem}.am-align-left{margin-right:1rem;float:left}.am-align-right{margin-left:1rem;float:right}.am-sr-only{position:absolute;width:1px;height:1px;margin:-1px;padding:0;overflow:hidden;clip:rect(0,0,0,0);border:0}.am-text-ir{font:0/0 a;color:transparent;text-shadow:none;background-color:transparent;border:0}@media only screen{.am-text-left{text-align:left!important}.am-text-right{text-align:right!important}.am-text-center{text-align:center!important}.am-text-justify{text-align:justify!important}}@media only screen and (max-width:640px){.am-sm-only-text-left{text-align:left!important}.am-sm-only-text-right{text-align:right!important}.am-sm-only-text-center{text-align:center!important}.am-sm-only-text-justify{text-align:justify!important}}@media only screen and (min-width:641px) and (max-width:1024px){.am-md-only-text-left{text-align:left!important}.am-md-only-text-right{text-align:right!important}.am-md-only-text-center{text-align:center!important}.am-md-only-text-justify{text-align:justify!important}}@media only screen and (min-width:641px){.am-md-text-left{text-align:left!important}.am-md-text-right{text-align:right!important}.am-md-text-center{text-align:center!important}.am-md-text-justify{text-align:justify!important}}@media only screen and (min-width:1025px){.am-lg-text-left{text-align:left!important}.am-lg-text-right{text-align:right!important}.am-lg-text-center{text-align:center!important}.am-lg-text-justify{text-align:justify!important}}.am-text-top{vertical-align:top!important}.am-text-middle{vertical-align:middle!important}.am-text-bottom{vertical-align:bottom!important}.am-angle{position:absolute}.am-angle:after,.am-angle:before{position:absolute;display:block;content:"";width:0;height:0;border:8px dashed transparent;z-index:1}.am-angle-up{top:0}.am-angle-up:after,.am-angle-up:before{border-bottom-style:solid;border-width:0 8px 8px}.am-angle-up:before{border-bottom-color:#ddd;bottom:0}.am-angle-up:after{border-bottom-color:#fff;bottom:-1px}.am-angle-down{bottom:-9px}.am-angle-down:after,.am-angle-down:before{border-top-style:solid;border-width:8px 8px 0}.am-angle-down:before{border-top-color:#ddd;bottom:0}.am-angle-down:after{border-top-color:#fff;bottom:1px}.am-angle-left{left:-9px}.am-angle-left:after,.am-angle-left:before{border-right-style:solid;border-width:8px 8px 8px 0}.am-angle-left:before{border-right-color:#ddd;left:0}.am-angle-left:after{border-right-color:#fff;left:1px}.am-angle-right{right:0}.am-angle-right:after,.am-angle-right:before{border-left-style:solid;border-width:8px 0 8px 8px}.am-angle-right:before{border-left-color:#ddd;left:0}.am-angle-right:after{border-left-color:#fff;left:-1px}.am-alert{margin-bottom:1em;padding:.625em;background:#0e90d2;color:#fff;border:1px solid #0c7cb5;border-radius:2px}.am-alert a{color:#fff}.am-alert h1,.am-alert h2,.am-alert h3,.am-alert h4,.am-alert h5,.am-alert h6{color:inherit}.am-alert .am-close{opacity:.4}.am-alert .am-close:hover{opacity:.6}*+.am-alert{margin-top:1em}.am-alert>:last-child{margin-bottom:0}.am-form-group .am-alert{margin:5px 0 0;padding:.25em .625em;font-size:1.3rem}.am-alert>.am-close:first-child{float:right;height:auto;margin:-3px -5px auto auto}.am-alert>.am-close:first-child+*{margin-top:0}.am-alert-secondary{background-color:#eee;border-color:#dfdfdf;color:#555}.am-alert-success{background-color:#5eb95e;border-color:#4bad4b;color:#fff}.am-alert-warning{background-color:#F37B1D;border-color:#e56c0c;color:#fff}.am-alert-danger{background-color:#dd514c;border-color:#d83832;color:#fff}.am-dropdown{position:relative;display:inline-block}.am-dropdown-toggle:focus{outline:0}.am-dropdown-content{position:absolute;top:100%;left:0;z-index:1020;display:none;float:left;min-width:160px;padding:15px;margin:9px 0 0;text-align:left;line-height:1.6;background-color:#fff;border:1px solid #ddd;border-radius:2px;-webkit-background-clip:padding-box;background-clip:padding-box;-webkit-animation-duration:.15s;animation-duration:.15s}.am-dropdown-content:after,.am-dropdown-content:before{position:absolute;display:block;content:"";width:0;height:0;border:8px dashed transparent;z-index:1}.am-dropdown-content:after,.am-dropdown-content:before{border-bottom-style:solid;border-width:0 8px 8px}.am-dropdown-content:before{border-bottom-color:#ddd;bottom:0}.am-dropdown-content:after{border-bottom-color:#fff;bottom:-1px}.am-dropdown-content:after,.am-dropdown-content:before{left:10px;top:-8px;pointer-events:none}.am-dropdown-content:after{top:-7px}.am-active>.am-dropdown-content{display:block}.am-dropdown-content :first-child{margin-top:0}.am-dropdown-up .am-dropdown-content{top:auto;bottom:100%;margin:0 0 9px}.am-dropdown-up .am-dropdown-content:after,.am-dropdown-up .am-dropdown-content:before{border-bottom:none;border-top:8px solid #ddd;top:auto;bottom:-8px}.am-dropdown-up .am-dropdown-content:after{bottom:-7px;border-top-color:#fff}.am-dropdown-flip .am-dropdown-content{left:auto;right:0}.am-dropdown-flip .am-dropdown-content:after,.am-dropdown-flip .am-dropdown-content:before{left:auto;right:10px}ul.am-dropdown-content{list-style:none;padding:5px 0}ul.am-dropdown-content.am-fr{right:0;left:auto}ul.am-dropdown-content .am-divider{height:1px;margin:0rem 0;overflow:hidden;background-color:#e5e5e5}ul.am-dropdown-content>li>a{display:block;padding:6px 20px;clear:both;font-weight:400;color:#333;white-space:nowrap}ul.am-dropdown-content>li>a:focus,ul.am-dropdown-content>li>a:hover{text-decoration:none;color:#262626;background-color:#f5f5f5}ul.am-dropdown-content>.am-active>a,ul.am-dropdown-content>.am-active>a:focus,ul.am-dropdown-content>.am-active>a:hover{color:#fff;text-decoration:none;outline:0;background-color:#0e90d2}ul.am-dropdown-content>.am-disabled>a,ul.am-dropdown-content>.am-disabled>a:focus,ul.am-dropdown-content>.am-disabled>a:hover{color:#999}ul.am-dropdown-content>.am-disabled>a:focus,ul.am-dropdown-content>.am-disabled>a:hover{text-decoration:none;background-color:transparent;background-image:none;filter:progid:DXImageTransform.Microsoft.gradient(enabled=false);cursor:not-allowed}.am-dropdown-header{display:block;padding:6px 20px;font-size:1.2rem;color:#999}.am-fr>.am-dropdown-content{right:0;left:auto}.am-fr>.am-dropdown-content:before{right:10px;left:auto}.am-dropdown-animation{-webkit-animation:am-dropdown-animation .15s ease-out;animation:am-dropdown-animation .15s ease-out}@-webkit-keyframes am-dropdown-animation{0%{opacity:1;-webkit-transform:translateY(0);transform:translateY(0)}100%{opacity:0;-webkit-transform:translateY(-10px);transform:translateY(-10px)}}@keyframes am-dropdown-animation{0%{opacity:1;-webkit-transform:translateY(0);transform:translateY(0)}100%{opacity:0;-webkit-transform:translateY(-10px);transform:translateY(-10px)}}.am-slider a:focus,.am-slider a:hover{outline:0}.am-control-nav,.am-direction-nav,.am-slides{margin:0;padding:0;list-style:none}.am-slider{margin:0;padding:0}.am-slider .am-slides:after,.am-slider .am-slides:before{content:" ";display:table}.am-slider .am-slides:after{clear:both}.am-slider .am-slides>li{display:none;-webkit-backface-visibility:hidden;position:relative}.no-js .am-slider .am-slides>li:first-child{display:block}.am-slider .am-slides img{width:100%;display:block}.am-pauseplay span{text-transform:capitalize}.am-slider{position:relative}.am-viewport{-webkit-transition:all 1s ease;transition:all 1s ease}.am-slider-carousel li{margin-right:5px}.am-control-nav{position:absolute}.am-control-nav li{display:inline-block}.am-control-thumbs{position:static;overflow:hidden}.am-control-thumbs img{-webkit-transition:all 1s ease;transition:all 1s ease}.am-slider-slide .am-slides>li{display:none;position:relative}@media all and (transform-3d),(-webkit-transform-3d){.am-slider-slide .am-slides>li{-webkit-transition:-webkit-transform .6s ease-in-out;transition:-webkit-transform .6s ease-in-out;transition:transform .6s ease-in-out;transition:transform .6s ease-in-out,-webkit-transform .6s ease-in-out;-webkit-backface-visibility:hidden;backface-visibility:hidden;-webkit-perspective:1000px;perspective:1000px}.am-slider-slide .am-slides>li.active.right,.am-slider-slide .am-slides>li.next{-webkit-transform:translate3d(100%,0,0);transform:translate3d(100%,0,0);left:0}.am-slider-slide .am-slides>li.active.left,.am-slider-slide .am-slides>li.prev{-webkit-transform:translate3d(-100%,0,0);transform:translate3d(-100%,0,0);left:0}.am-slider-slide .am-slides>li.active,.am-slider-slide .am-slides>li.next.left,.am-slider-slide .am-slides>li.prev.right{-webkit-transform:translate3d(0,0,0);transform:translate3d(0,0,0);left:0}}.am-slider-slide .am-slides>.active,.am-slider-slide .am-slides>.next,.am-slider-slide .am-slides>.prev{display:block}.am-slider-slide .am-slides>.active{left:0}.am-slider-slide .am-slides>.next,.am-slider-slide .am-slides>.prev{position:absolute;top:0;width:100%}.am-slider-slide .am-slides>.next{left:100%}.am-slider-slide .am-slides>.prev{left:-100%}.am-slider-slide .am-slides>.next.left,.am-slider-slide .am-slides>.prev.right{left:0}.am-slider-slide .am-slides>.active.left{left:-100%}.am-slider-slide .am-slides>.active.right{left:100%}.am-slider-default{margin:0 0 20px;background-color:#fff;border-radius:2px;-webkit-box-shadow:0 0 2px rgba(0,0,0,.15);box-shadow:0 0 2px rgba(0,0,0,.15)}.am-slider-default .am-viewport{max-height:2000px;-webkit-transition:all 1s ease;transition:all 1s ease}.loading .am-slider-default .am-viewport{max-height:300px}.am-slider-default .carousel li{margin-right:5px}.am-slider-default .am-direction-nav a{position:absolute;top:50%;z-index:10;display:block;width:36px;height:36px;margin:-18px 0 0;overflow:hidden;opacity:.45;cursor:pointer;color:rgba(0,0,0,.65);-webkit-transition:all .3s ease;transition:all .3s ease}.am-slider-default .am-direction-nav a:before{display:inline-block;font:normal normal normal 1.6rem/1 FontAwesome,sans-serif;font-size:inherit;text-rendering:auto;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;-webkit-transform:translate(0,0);-ms-transform:translate(0,0);transform:translate(0,0);width:100%;color:#333;content:"\f137";font-size:24px!important;text-align:center;line-height:36px!important;height:36px}.am-slider-default .am-direction-nav a.am-next:before{content:"\f138"}.am-slider-default .am-direction-nav .am-prev{left:10px}.am-slider-default .am-direction-nav .am-next{right:10px;text-align:right}.am-slider-default .am-direction-nav .am-disabled{opacity:0!important;cursor:default}.am-slider-default:hover .am-prev{opacity:.7;left:10px}.am-slider-default:hover .am-prev:hover{opacity:1}.am-slider-default:hover .am-next{opacity:.7;right:10px}.am-slider-default:hover .am-next:hover{opacity:1}.am-slider-default .am-pauseplay a{display:block;width:20px;height:20px;position:absolute;bottom:5px;left:10px;opacity:.8;z-index:10;overflow:hidden;cursor:pointer;color:#000}.am-slider-default .am-pauseplay a::before{font:normal normal normal 1.6rem/1 FontAwesome,sans-serif;font-size:inherit;text-rendering:auto;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;-webkit-transform:translate(0,0);-ms-transform:translate(0,0);transform:translate(0,0);font-size:20px;display:inline-block;content:"\f04c"}.am-slider-default .am-pauseplay a:hover{opacity:1}.am-slider-default .am-pauseplay a.am-play::before{content:"\f04b"}.am-slider-default .am-slider-desc{background-color:rgba(0,0,0,.7);position:absolute;bottom:0;padding:10px;width:100%;color:#fff}.am-slider-default .am-control-nav{width:100%;position:absolute;bottom:-15px;text-align:center}.am-slider-default .am-control-nav li{margin:0 6px;display:inline-block}.am-slider-default .am-control-nav li a{width:8px;height:8px;display:block;background-color:#666;background-color:rgba(0,0,0,.5);line-height:0;font-size:0;cursor:pointer;text-indent:-9999px;border-radius:20px;-webkit-box-shadow:inset 0 0 3px rgba(0,0,0,.3);box-shadow:inset 0 0 3px rgba(0,0,0,.3)}.am-slider-default .am-control-nav li a:hover{background-color:#333;background-color:rgba(0,0,0,.7)}.am-slider-default .am-control-nav li a.am-active{background-color:#000;background-color:#0e90d2;cursor:default}.am-slider-default .am-control-thumbs{margin:5px 0 0;position:static;overflow:hidden}.am-slider-default .am-control-thumbs li{width:25%;float:left;margin:0}.am-slider-default .am-control-thumbs img{width:100%;height:auto;display:block;opacity:.7;cursor:pointer}.am-slider-default .am-control-thumbs img:hover{opacity:1}.am-slider-default .am-control-thumbs .am-active{opacity:1;cursor:default}.am-slider-default .am-control-thumbs i{position:absolute}.am-modal{position:fixed;top:0;right:0;bottom:0;left:0;z-index:1110;display:none;opacity:0;outline:0;text-align:center;-webkit-transform:scale(1.185);-ms-transform:scale(1.185);transform:scale(1.185);-webkit-transition-property:opacity,-webkit-transform;transition-property:opacity,-webkit-transform;transition-property:transform,opacity;transition-property:transform,opacity,-webkit-transform;-webkit-backface-visibility:hidden;backface-visibility:hidden;-webkit-perspective:1000px;perspective:1000px}.am-modal:focus{outline:0}.am-modal.am-modal-active{opacity:1;-webkit-transition-duration:.3s;transition-duration:.3s;-webkit-transform:scale(1);-ms-transform:scale(1);transform:scale(1);overflow-x:hidden;overflow-y:auto}.am-modal.am-modal-out{opacity:0;z-index:1109;-webkit-transition-duration:.3s;transition-duration:.3s;-webkit-transform:scale(.815);-ms-transform:scale(.815);transform:scale(.815)}.am-modal:before{content:"\200B";display:inline-block;height:100%;vertical-align:middle}.am-modal-dialog{position:relative;display:inline-block;vertical-align:middle;margin-left:auto;margin-right:auto;width:270px;max-width:100%;border-radius:2px;background:#f8f8f8}@media only screen and (min-width:641px){.am-modal-dialog{width:540px}}.am-modal-hd{padding:15px 10px 5px 10px;font-size:1.8rem;font-weight:500}.am-modal-hd+.am-modal-bd{padding-top:0}.am-modal-hd .am-close{position:absolute;top:4px;right:4px}.am-modal-bd{padding:15px 10px;text-align:center;border-bottom:1px solid #dedede;border-radius:2px 2px 0 0}.am-modal-bd+.am-modal-bd{margin-top:5px}.am-modal-prompt-input{display:block;margin:5px auto 0 auto;border-radius:2px;padding:5px;line-height:1.8rem;width:80%;border:1px solid #dedede;-webkit-appearance:none;-moz-appearance:none;-ms-appearance:none;appearance:none}.am-modal-prompt-input:focus{outline:0;border-color:#d6d6d6}.am-modal-footer{height:44px;overflow:hidden;display:table;width:100%;border-collapse:collapse}.am-modal-btn{display:table-cell!important;padding:0 5px;height:44px;-webkit-box-sizing:border-box!important;box-sizing:border-box!important;font-size:1.6rem;line-height:44px;text-align:center;color:#0e90d2;display:block;word-wrap:normal;text-overflow:ellipsis;white-space:nowrap;overflow:hidden;cursor:pointer;border-right:1px solid #dedede}.am-modal-btn:first-child{border-radius:0 0 0 2px}.am-modal-btn:last-child{border-right:none;border-radius:0 0 2px 0}.am-modal-btn:first-child:last-child{border-radius:0 0 2px 2px}.am-modal-btn.am-modal-btn-bold{font-weight:500}.am-modal-btn:active{background:#d4d4d4}.am-modal-btn+.am-modal-btn{border-left:1px solid #dedede}.am-modal-no-btn .am-modal-dialog{border-radius:2px;border-bottom:none}.am-modal-no-btn .am-modal-bd{border-bottom:none}.am-modal-no-btn .am-modal-footer{display:none}.am-modal-loading .am-modal-bd{border-bottom:none}.am-modal-loading .am-icon-spin{display:inline-block;font-size:2.4rem}.am-modal-loading .am-modal-footer{display:none}.am-modal-actions{position:fixed;left:0;bottom:0;z-index:1110;width:100%;max-height:100%;overflow-x:hidden;overflow-y:auto;text-align:center;border-radius:2px;-webkit-transform:translateY(100%);-ms-transform:translateY(100%);transform:translateY(100%);-webkit-transition:-webkit-transform .3s;transition:-webkit-transform .3s;transition:transform .3s;transition:transform .3s,-webkit-transform .3s}.am-modal-actions.am-modal-active{-webkit-transform:translateY(0);-ms-transform:translateY(0);transform:translateY(0)}.am-modal-actions.am-modal-out{z-index:1109;-webkit-transform:translateY(100%);-ms-transform:translateY(100%);transform:translateY(100%)}.am-modal-actions-group{margin:10px}.am-modal-actions-group .am-list{margin:0;border-radius:2px}.am-modal-actions-group .am-list>li{margin-bottom:0;border-bottom:none;display:block;word-wrap:normal;text-overflow:ellipsis;white-space:nowrap;overflow:hidden;-webkit-box-shadow:inset 0 1px 0 rgba(0,0,0,.015);box-shadow:inset 0 1px 0 rgba(0,0,0,.015)}.am-modal-actions-group .am-list>li>a{padding:1rem;display:block;word-wrap:normal;text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.am-modal-actions-group .am-list>li:first-child{border-top:none;border-top-right-radius:2px;border-top-left-radius:2px}.am-modal-actions-group .am-list>li:last-child{border-bottom:none;border-bottom-right-radius:2px;border-bottom-left-radius:2px}.am-modal-actions-header{padding:1rem;color:#999;font-size:1.4rem}.am-modal-actions-danger{color:#dd514c}.am-modal-actions-danger a{color:inherit}.am-popup{position:fixed;left:0;top:0;width:100%;height:100%;z-index:1110;background:#fff;display:none;overflow:hidden;-webkit-transition-property:-webkit-transform;transition-property:-webkit-transform;transition-property:transform;transition-property:transform,-webkit-transform;-webkit-transform:translateY(100%);-ms-transform:translateY(100%);transform:translateY(100%)}.am-popup.am-modal-active,.am-popup.am-modal-out{-webkit-transition-duration:.3s;transition-duration:.3s}.am-popup.am-modal-active{-webkit-transform:translateY(0);-ms-transform:translateY(0);transform:translateY(0)}.am-popup.am-modal-out{-webkit-transform:translateY(100%);-ms-transform:translateY(100%);transform:translateY(100%)}@media all and (min-width:630px) and (min-height:630px){.am-popup{width:630px;height:630px;left:50%;top:50%;margin-left:-315px;margin-top:-315px;-webkit-transform:translateY(1024px);-ms-transform:translateY(1024px);transform:translateY(1024px)}.am-popup.am-modal-active{-webkit-transform:translateY(0);-ms-transform:translateY(0);transform:translateY(0)}.am-popup.am-modal-out{-webkit-transform:translateY(1024px);-ms-transform:translateY(1024px);transform:translateY(1024px)}}.am-popup-inner{padding-top:44px;height:100%;overflow:auto;-webkit-overflow-scrolling:touch}.am-popup-hd{position:absolute;top:0;z-index:1000;width:100%;height:43px;border-bottom:1px solid #dedede;background-color:#fff}.am-popup-hd .am-popup-title{font-size:1.8rem;font-weight:700;line-height:43px;text-align:center;margin:0 30px;color:#333;display:block;word-wrap:normal;text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.am-popup-hd .am-close{position:absolute;right:10px;top:8px;cursor:pointer;-webkit-transition:all .3s;transition:all .3s;color:#999}.am-popup-hd .am-close:hover{-webkit-transform:rotate(360deg);-ms-transform:rotate(360deg);transform:rotate(360deg);color:#555}.am-popup-bd{padding:15px;background:#f8f8f8;color:#555}.am-offcanvas{display:none;position:fixed;top:0;right:0;bottom:0;left:0;z-index:1090;background:rgba(0,0,0,.15)}.am-offcanvas.am-active{display:block}.am-offcanvas-page{position:fixed;-webkit-transition:margin-left .3s ease-in-out;transition:margin-left .3s ease-in-out}.am-offcanvas-bar{position:fixed;top:0;bottom:0;left:0;z-index:1091;width:270px;max-width:100%;background:#333;overflow-y:auto;-webkit-overflow-scrolling:touch;-webkit-transition:-webkit-transform .3s ease-in-out;transition:-webkit-transform .3s ease-in-out;transition:transform .3s ease-in-out;transition:transform .3s ease-in-out,-webkit-transform .3s ease-in-out;-webkit-transform:translateX(-100%);-ms-transform:translateX(-100%);transform:translateX(-100%)}.am-offcanvas-bar:after{content:"";display:block;position:absolute;top:0;bottom:0;right:0;width:1px;background:#262626}.am-offcanvas.am-active .am-offcanvas-bar.am-offcanvas-bar-active{-webkit-transform:translateX(0);-ms-transform:translateX(0);transform:translateX(0)}.am-offcanvas-bar-flip{left:auto;right:0;-webkit-transform:translateX(100%);-ms-transform:translateX(100%);transform:translateX(100%)}.am-offcanvas-bar-flip:after{right:auto;left:0}.am-offcanvas-content{padding:15px;color:#999}.am-offcanvas-content a{color:#ccc}.am-popover{position:absolute;top:0;left:0;margin:0;border-radius:2px;background:#333;color:#fff;border:1px solid #333;display:none;font-size:1.6rem;z-index:1150;opacity:0;-webkit-transition:opacity .3s;transition:opacity .3s}.am-popover.am-active{display:block!important;opacity:1}.am-popover-inner{position:relative;background:#333;padding:8px;z-index:110}.am-popover-caret{position:absolute;top:0;z-index:100;display:inline-block;width:0;height:0;vertical-align:middle;border-bottom:8px solid #333;border-right:8px solid transparent;border-left:8px solid transparent;border-top:0 dotted;-webkit-transform:rotate(360deg);-ms-transform:rotate(360deg);transform:rotate(360deg);overflow:hidden}.am-popover-top .am-popover-caret{top:auto;bottom:-8px;-webkit-transform:rotate(180deg);-ms-transform:rotate(180deg);transform:rotate(180deg)}.am-popover-bottom .am-popover-caret{top:-8px}.am-popover-bottom .am-popover-caret,.am-popover-top .am-popover-caret{left:50%;margin-left:-8px}.am-popover-left .am-popover-caret{top:auto;left:auto;right:-12px;-webkit-transform:rotate(90deg);-ms-transform:rotate(90deg);transform:rotate(90deg)}.am-popover-right .am-popover-caret{right:auto;left:-12px;-webkit-transform:rotate(-90deg);-ms-transform:rotate(-90deg);transform:rotate(-90deg)}.am-popover-left .am-popover-caret,.am-popover-right .am-popover-caret{top:50%;margin-top:-4px}.am-popover-sm{font-size:1.4rem}.am-popover-sm .am-popover-inner{padding:5px}.am-popover-lg{font-size:1.8rem}.am-popover-primary{border-color:#0e90d2}.am-popover-primary .am-popover-inner{background:#0e90d2}.am-popover-primary .am-popover-caret{border-bottom-color:#0e90d2}.am-popover-secondary{border-color:#3bb4f2}.am-popover-secondary .am-popover-inner{background:#3bb4f2}.am-popover-secondary .am-popover-caret{border-bottom-color:#3bb4f2}.am-popover-success{border-color:#5eb95e}.am-popover-success .am-popover-inner{background:#5eb95e}.am-popover-success .am-popover-caret{border-bottom-color:#5eb95e}.am-popover-warning{border-color:#F37B1D}.am-popover-warning .am-popover-inner{background:#F37B1D}.am-popover-warning .am-popover-caret{border-bottom-color:#F37B1D}.am-popover-danger{border-color:#dd514c}.am-popover-danger .am-popover-inner{background:#dd514c}.am-popover-danger .am-popover-caret{border-bottom-color:#dd514c}#nprogress{pointer-events:none}#nprogress .nprogress-bar{position:fixed;top:0;left:0;z-index:2000;width:100%;height:2px;background:#5eb95e}#nprogress .nprogress-peg{display:block;position:absolute;right:0;width:100px;height:100%;-webkit-box-shadow:0 0 10px #5eb95e,0 0 5px #5eb95e;box-shadow:0 0 10px #5eb95e,0 0 5px #5eb95e;opacity:1;-webkit-transform:rotate(3deg) translate(0,-4px);-ms-transform:rotate(3deg) translate(0,-4px);transform:rotate(3deg) translate(0,-4px)}#nprogress .nprogress-spinner{position:fixed;top:15px;right:15px;z-index:2000;display:block}#nprogress .nprogress-spinner-icon{width:18px;height:18px;-webkit-box-sizing:border-box;box-sizing:border-box;border:solid 2px transparent;border-top-color:#5eb95e;border-left-color:#5eb95e;border-radius:50%;-webkit-animation:nprogress-spinner .4s linear infinite;animation:nprogress-spinner .4s linear infinite}@-webkit-keyframes nprogress-spinner{0%{-webkit-transform:rotate(0);transform:rotate(0)}100%{-webkit-transform:rotate(360deg);transform:rotate(360deg)}}@keyframes nprogress-spinner{0%{-webkit-transform:rotate(0);transform:rotate(0)}100%{-webkit-transform:rotate(360deg);transform:rotate(360deg)}}.am-tabs-bd{position:relative;overflow:hidden;border:1px solid #ddd;border-top:none;z-index:100;-webkit-transition:height .3s;transition:height .3s}.am-tabs-bd:after,.am-tabs-bd:before{content:" ";display:table}.am-tabs-bd:after{clear:both}.am-tabs-bd .am-tab-panel{position:absolute;top:0;z-index:99;float:left;width:100%;padding:10px 10px 15px;visibility:hidden;-webkit-transition:-webkit-transform .3s;transition:-webkit-transform .3s;transition:transform .3s;transition:transform .3s,-webkit-transform .3s;-webkit-transform:translateX(-100%);-ms-transform:translateX(-100%);transform:translateX(-100%)}.am-tabs-bd .am-tab-panel *{-webkit-user-drag:none}.am-tabs-bd .am-tab-panel.am-active{position:relative;z-index:100;visibility:visible;-webkit-transform:translateX(0);-ms-transform:translateX(0);transform:translateX(0)}.am-tabs-bd .am-tab-panel.am-active~.am-tab-panel{-webkit-transform:translateX(100%);-ms-transform:translateX(100%);transform:translateX(100%)}.am-tabs-bd .am-tabs-bd{border:none}.am-tabs-bd-ofv{overflow:visible}.am-tabs-bd-ofv>.am-tab-panel{display:none}.am-tabs-bd-ofv>.am-tab-panel.am-active{display:block}.am-tabs-fade .am-tab-panel{opacity:0;-webkit-transition:opacity .25s linear;transition:opacity .25s linear}.am-tabs-fade .am-tab-panel.am-in{opacity:1}.am-share{font-size:14px}.am-share-title{padding:10px 0 0;margin:0 10px;font-weight:400;text-align:center;color:#555;background-color:#f8f8f8;border-bottom:1px solid #fff;border-top-right-radius:2px;border-top-left-radius:2px}.am-share-title:after{content:"";display:block;width:100%;height:0;margin-top:10px;border-bottom:1px solid #dfdfdf}.am-share-sns{margin:0 10px;padding-top:15px;background-color:#f8f8f8;border-bottom-right-radius:2px;border-bottom-left-radius:2px}.am-share-sns li{margin-bottom:15px}.am-share-sns a{display:block;color:#555}.am-share-sns span{display:block}.am-share-sns [class*=am-icon]{background-color:#3bb4f2;border-radius:50%;width:36px;height:36px;line-height:36px;color:#fff;margin-bottom:5px;font-size:18px}.am-share-sns .am-icon-weibo{background-color:#ea1328}.am-share-sns .am-icon-qq{background-color:#009cda}.am-share-sns .am-icon-star{background-color:#ffc028}.am-share-sns .am-icon-tencent-weibo{background-color:#23ccfe}.am-share-sns .am-icon-wechat,.am-share-sns .am-icon-weixin{background-color:#44b549}.am-share-sns .am-icon-renren{background-color:#105ba3}.am-share-sns .am-icon-comment{background-color:#5eb95e}.am-share-footer{margin:10px}.am-share-footer .am-btn{color:#555}.am-share-wechat-qr{font-size:14px;color:#777}.am-share-wechat-qr .am-modal-dialog{background-color:#fff;border:1px solid #dedede}.am-share-wechat-qr .am-modal-hd{padding-top:10px;text-align:left;margin-bottom:10px}.am-share-wechat-qr .am-share-wx-qr{margin-bottom:10px}.am-share-wechat-qr .am-share-wechat-tip{text-align:left}.am-share-wechat-qr .am-share-wechat-tip em{color:#dd514c;font-weight:700;font-style:normal;margin-left:3px;margin-right:3px}.am-pureview{position:fixed;left:0;top:0;bottom:0;right:0;z-index:1120;width:100%;height:100%;background:rgba(0,0,0,.95);display:none;overflow:hidden;-webkit-transition:-webkit-transform .3s;transition:-webkit-transform .3s;transition:transform .3s;transition:transform .3s,-webkit-transform .3s;-webkit-transform:translate(0,100%);-ms-transform:translate(0,100%);transform:translate(0,100%)}.am-pureview.am-active{-webkit-transform:translate(0,0);-ms-transform:translate(0,0);transform:translate(0,0)}.am-pureview ol,.am-pureview ul{list-style:none;padding:0;margin:0;width:100%}.am-pureview-slider{overflow:hidden;height:100%}.am-pureview-slider li{position:absolute;width:100%;height:100%;top:0;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-pack:center;-webkit-justify-content:center;-ms-flex-pack:center;justify-content:center;-webkit-box-align:center;-webkit-align-items:center;-ms-flex-align:center;align-items:center;vertical-align:middle;-webkit-transition:all .3s linear;transition:all .3s linear;z-index:100;visibility:hidden}.am-pureview-slider li.am-pureview-slide-prev{-webkit-transform:translate(-100%,0);-ms-transform:translate(-100%,0);transform:translate(-100%,0);z-index:109}.am-pureview-slider li.am-pureview-slide-next{-webkit-transform:translate(100%,0);-ms-transform:translate(100%,0);transform:translate(100%,0);z-index:109}.am-pureview-slider li.am-active{position:relative;z-index:110;-webkit-transform:translate(0,0);-ms-transform:translate(0,0);transform:translate(0,0);visibility:visible}.am-pureview-slider .pinch-zoom-container{width:100%;z-index:1121}.am-pureview-slider .am-pinch-zoom{position:relative;width:100%;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-pack:center;-webkit-justify-content:center;-ms-flex-pack:center;justify-content:center;-webkit-box-align:center;-webkit-align-items:center;-ms-flex-align:center;align-items:center}.am-pureview-slider .am-pinch-zoom:after{display:inline-block;font:normal normal normal 1.6rem/1 FontAwesome,sans-serif;font-size:inherit;text-rendering:auto;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;-webkit-transform:translate(0,0);-ms-transform:translate(0,0);transform:translate(0,0);content:"\f110";-webkit-animation:icon-spin 2s infinite linear;animation:icon-spin 2s infinite linear;font-size:24px;line-height:24px;color:#eee;position:absolute;top:50%;left:50%;margin-left:-12px;margin-top:-12px;z-index:1}.am-pureview-slider .am-pinch-zoom.am-pureview-loaded:after{display:none}.am-pureview-slider img{position:relative;display:block;max-width:100%;max-height:100%;opacity:0;z-index:200;-webkit-user-drag:none;-webkit-transition:opacity .2s ease-in;transition:opacity .2s ease-in}.am-pureview-slider img.am-img-loaded{opacity:1}.am-pureview-direction{position:absolute;top:50%;width:100%;margin-top:-18px!important;z-index:1122}.am-pureview-only .am-pureview-direction,.am-touch .am-pureview-direction{display:none}.am-pureview-direction li{position:absolute;width:36px;height:36px}.am-pureview-direction a{display:block;height:36px;border:none;color:#ccc;opacity:.5;cursor:pointer;text-align:center;z-index:1125}.am-pureview-direction a:before{content:"\f137";line-height:36px;font-size:24px}.am-pureview-direction a:hover{opacity:1}.am-pureview-direction .am-pureview-prev{left:15px}.am-pureview-direction .am-pureview-next{right:15px}.am-pureview-direction .am-pureview-next a:before{content:"\f138"}.am-pureview-bar{position:absolute;bottom:0;height:45px;width:100%;background-color:rgba(0,0,0,.35);color:#eee;line-height:45px;padding:0 10px;font-size:14px;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex}.am-pureview-bar .am-pureview-title{display:block;word-wrap:normal;text-overflow:ellipsis;white-space:nowrap;overflow:hidden;margin-left:6px;-webkit-box-flex:1;-webkit-flex:1;-ms-flex:1;flex:1}.am-pureview-bar .am-pureview-total{font-size:10px;line-height:48px}.am-pureview-actions{position:absolute;z-index:1130;left:0;right:0;top:0;height:45px;background-color:rgba(0,0,0,.35)}.am-pureview-actions a{position:absolute;left:10px;color:#ccc;display:block;width:45px;line-height:45px;text-align:left;font-size:16px}.am-pureview-actions a:hover{color:#fff}.am-pureview-actions [data-am-toggle=share]{left:auto;right:10px}.am-pureview-actions,.am-pureview-bar{opacity:0;-webkit-transition:all .15s;transition:all .15s;z-index:1130}.am-pureview-bar-active .am-pureview-actions,.am-pureview-bar-active .am-pureview-bar{opacity:1}.am-pureview-nav{position:absolute;bottom:15px;left:0;right:0;text-align:center;z-index:1131}.am-pureview-bar-active .am-pureview-nav{display:none}.am-pureview-nav li{display:inline-block;background:#ccc;background:rgba(255,255,255,.5);width:8px;height:8px;margin:0 3px;border-radius:50%;text-indent:-9999px;overflow:hidden;cursor:pointer}.am-pureview-nav .am-active{background:#fff;background:rgba(255,255,255,.9)}[data-am-pureview] img{cursor:pointer}.am-pureview-active{overflow:hidden}.ath-viewport *{-webkit-box-sizing:border-box;box-sizing:border-box}.ath-viewport{position:relative;z-index:2147483641;pointer-events:none;-webkit-tap-highlight-color:rgba(0,0,0,0);-webkit-touch-callout:none;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;-webkit-text-size-adjust:none;-ms-text-size-adjust:none;text-size-adjust:none}.ath-modal{pointer-events:auto!important;background:rgba(0,0,0,.6)}.ath-mandatory{background:#000}.ath-container{pointer-events:auto!important;position:absolute;z-index:2147483641;padding:.7em .6em;width:18em;background:#eee;-webkit-background-size:100% auto;background-size:100% auto;-webkit-box-shadow:0 .2em 0 #d1d1d1;box-shadow:0 .2em 0 #d1d1d1;font-family:sans-serif;font-size:15px;line-height:1.5em;text-align:center}.ath-container small{font-size:.8em;line-height:1.3em;display:block;margin-top:.5em}.ath-ios.ath-phone{bottom:1.8em;left:50%;margin-left:-9em}.ath-ios6.ath-tablet{left:5em;top:1.8em}.ath-ios7.ath-tablet{left:.7em;top:1.8em}.ath-ios8.ath-tablet{right:.4em;top:1.8em}.ath-android{bottom:1.8em;left:50%;margin-left:-9em}.ath-container:before{content:'';position:relative;display:block;float:right;margin:-.7em -.6em 0 .5em;background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAIQAAACECAMAAABmmnOVAAAAdVBMVEUAAAA5OTkzMzM7Ozs3NzdBQUFAQEA/Pz8+Pj5BQUFAQEA/Pz8+Pj5BQUFAQEA/Pz9BQUE+Pj4/Pz8/Pz8+Pj4/Pz8/Pz8/Pz8+Pj4/Pz8+Pj4/Pz8/Pz8/Pz8/Pz8/Pz8+Pj4/Pz8/Pz8/Pz8/Pz9AQEA/Pz+fdCaPAAAAJnRSTlMACQoNDjM4OTo7PEFCQ0RFS6ytsbS1tru8vcTFxu7x8vX19vf4+C5yomAAAAJESURBVHgBvdzLTsJAGEfxr4C2KBcVkQsIDsK8/yPaqIsPzVlyzrKrX/5p0kkXEz81L23otc9NpIbbWia2YVLqdnhlqFlhGWpSDHe1aopsSIpRb8gK0dC3G30b9rVmhWZIimTICsvQtx/FsuYOrWHoDjX3Gu31gzJxdki934WrAIOsAIOsAIOiAMPhPsJTgKGN0BVsYIVsYIVpYIVpYIVpYIVpYIVpYIVpYIVpYIVlAIVgEBRs8BRs8BRs8BRs8BRs8BRs8BRs8BRTNmgKNngKNngKNngKNngKNhiKGxgiOlZoBlaYBlaYBlaYBlaYBlaYBlaYBlaYBlZIBlBMfQMrVAMr2KAqBENSHFHhGEABhi5CV6gGUKgGUKgGUKgGUFwuqgEUvoEVsoEVpoEUpgEUggF+gKTKY+h1fxSlC7/Z+RrxOQ3fcEoAPPHZBlaYBlaYBlaYBlZYBlYIhvLBCstw7PgM7hkiWOEZWGEaWGEaWGEaIsakEAysmHkGVpxmvoEVqoEVpoEVpoEVpoEVpoEVpoEVkoEVgkFQsEFSsEFQsGEcoSvY4CnY4CnY4CnY4CnY4CnY4CnY4CnY4CnY4CnY4CnY4CnY4CnY4CnY4CnY4CnY4CnY4CnY4CnmbNAUT2c2WAo2eAo2eAo2eAo2eAo2eArNEPFACjZ4CjZ4CjZ4CjaIird/rBvFH6llNCvewdli1URWCIakSIZesUaDoFg36dKFWk9zCZDei3TtwmCj7pC22AwikiIZPEU29IpFNliKxa/hC9DFITjQPYhcAAAAAElFTkSuQmCC);background-color:rgba(255,255,255,.8);-webkit-background-size:50% 50%;background-size:50%;background-repeat:no-repeat;background-position:50%;width:2.7em;height:2.7em;text-align:center;overflow:hidden;color:#a33;z-index:2147483642}.ath-container.ath-icon:before{position:absolute;top:0;right:0;margin:0;float:none}.ath-mandatory .ath-container:before{display:none}.ath-container.ath-android:before{float:left;margin:-.7em .5em 0 -.6em}.ath-container.ath-android.ath-icon:before{position:absolute;right:auto;left:0;margin:0;float:none}.ath-action-icon{display:inline-block;vertical-align:middle;background-position:50%;background-repeat:no-repeat;text-indent:-9999em;overflow:hidden}.ath-ios7 .ath-action-icon,.ath-ios8 .ath-action-icon{width:1.6em;height:1.6em;background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAHgAAACtCAYAAAB7l7tOAAAF6UlEQVR4AezZWWxUZRiH8VcQEdxZEFFiUZBFUCIa1ABBDARDcCciYGKMqTEGww3SOcNSAwQTjOBiiIpEhRjAhRgXRC8MFxojEhAFZUGttVhaoSxlaW3n8W3yXZxm6vTrOMM5Q98n+V9MMu1pvl++uZhKuypghu49KaaTWGdZSYoVN6VD95nMpLNYZ9XNbdQR2od2k88O3Gm6Bh0t7H0p5Vwp2Ax3ajpu2tYbciFWwkTFO63DY6+JcI4USFaSyYpWp8N7SVZJKR3EinkBk9JxvZFXxhnZSjBaoWp1ZL0ES8WKYXMZp0AndORgy8WKFe5Yf1zvvSBWDEpys2LU6MjD5kmEWQlGKsJRHXlcqUSQVcItEnDEA6gAb7LhjvD9WO6yIEfICQI5A1nzGCYB1T4og5bBiFcyv2f6ujYhl4iVxwKG6qp8MK55HsqPwK0rMr9v/yEo3uCPrJstVh5KMER30Aeh31Ioq0FrHfjXw9CYghnrvYFTuqfEymFzGSwBlT4ARYr7u+K6GLmCVGvAGg2NMG0d/sgJnpScZLjXSkC5z8H3eQ72/k24Q8NfzvwFyK4qtuJSZKaubRPyE/K/Mtx+EvCHL+7uasId1t10w0scz/RzSzYzAfgKV30D3LPaG7lRkR8RK4tKKJKAMp+D7r0EfmmOe0x3m2itAc/ZxBjgAt1mXHWKPPkdb+QGSTJdrDaU5EoJ2OtzwD0WwY7KNNzbRfMFFg24WPdtGHnS221Cflgsj56hjwTs8TnY7oq7/QDhjutGicsb2AVcovsO18l6uPPNNiE/JFaGAq7Q7fY50G4LYVtz3FrdaNGyBXbIl+q24DqhyHes9EaulwR3SwtZs+ktAT/7HORliru1gnCndONFyx44Dfn7MPLYN7yR6yTJZAllJeguAT/4HOBFz8I3ZWm4E0TLFbBD7qn7EVdtHYx53R9ZN0ksrZRuErDN5+AuLIWvm+Oe1k0ULdfADrmX7idcR0/DyBXeyCdlLuMMOGCBz4F1ng+f7yFcve5e0fIFHELeiav6BAx70Rt5p0yhY3u/wR0kyarW/uX35b403PtFyzewQ75ctwtXzSkY8WqruHslSV8RscrL6TJ1bcvfWJ0/HzbtIdw/ugdFyzdwOOAq3T6fmzxwGQ3vbmO8iFioIWqYSsHMj9M/ljfuTsOdItoZBXYBfXX7cVXVwvXLm/8+fU3lcdCqdEMNGBbgUmRmfQISQKd5sGEn4VK6YtEiAXYBA3QVuA4q8hCHrDcafR1ul65jewfuovsCl7vJrNlOuEbdo6JFCuwCrtb9hqusBu56Cw4cI1y1briIWEBn3Ue0XKPuMdGiBg4H9NdV0HJ/6QZLOEPmPN0GmpfSPS5arIBdwHUtIFfoBsl/ZsgfhHCfFi2WwC5goO4AmvanbqBkzJA76tboZokWa2AXMEi3RTdAvDLkDqJFAhzB32xFD2wZsGXA0WfAlgFbBmwZsGXAlgFbBpzk04JaKb0iA9ZnF9x5SQAFtRKKIgPWZxfaeRmwAZ/BGbAB37eaG6MCbnq2Aed5czYyKirgpmcbsAHHZAZswN0Wwo7KeG1fFf2jAm56dtzOQ42yB+65mDhWFBUwUETMUiMDNmADbp/APRaTAh6I2bpGCNw1bufRZJQ1cPdF/NueHZsgDEBBGLbMGoIu4AZu5gLOZeEaYmEXeznF3jRPyEv4frgJvvJe3qTefY0AAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwb8rwADBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgz4/sz1Nia/9hizA7zgklwy3RYwYMBzBRjw4bPjxAbAAizAAtwgwAIswAIswAIMGDBgARZgARZgAS4FWIAFWIAFWIABAwYswAIswAIswIUAC7AAC7AACzBgwIAFWIAFWIAFuBBgARZgARZgAQYMGPApQ99ZCdgWtzqwATbABtgAG2DbnxNb7zbRimsMLMACrDf2wMWI/WasfQAAAABJRU5ErkJggg==);margin-top:-.3em;-webkit-background-size:auto 100%;background-size:auto 100%}.ath-ios6 .ath-action-icon{width:1.8em;height:1.8em;background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAJAAAAB0CAQAAADAmnOnAAAAAnNCSVQICFXsRgQAAAAJcEhZcwAAWwEAAFsBAXkZiFwAAAAZdEVYdFNvZnR3YXJlAHd3dy5pbmtzY2FwZS5vcmeb7jwaAAAF4klEQVR4Ae3a/a+XdR3H8ec5HM45HDmKICoVohkZsxESRRCzcZM/2JKkdGR5MrSkleA0Pd00O4u5IVuNM2yYc6XSzCExU4oUNRPCJFdMUAhsYZpUGhscOHA4N8/WZzsL6HBxvofvdV3fa3yer//gsV3vH659KHzncBsJxUYhDzOEhCKQbORs+ip2wzgM+wvj+P9i35qAGLaHGcQSgKSTrxBLABJppZpYApCspoFYApBsZjSxBCD5OxOJJQBJG1cQSwCSLpqJJQCJ3MvgCGTinuSMCJS8LZwfgZL3FtMiUPIOcU0ESl4PLRHoRPsJtREoeRsYGYGS9yrvo6RmpbLaigWSfzOdErLs6+bLUMFA0sF1+QF1cz1UNlBYK9V5AHXyWSgEkKyiIWOgGh829Ki1lLcaxjCVK7mJRSxjBY+zgRf/u9pXcMB7jhEZAg32EUP3O6hMKOP5Iq2sZQeHMZXt5KKMgOpcY+iHVnFyjeQKlrCBdsxge5ieAVC9vzLUelI8H+A7bKIHM10H81IGGuKvDf1ggDxVTKOV1zG3/Yia1ICG+ltD32MgNTKfP2HuW0VDKkCNrjfUTOm9i6XswwrZJkaVHeh0f2fodkrtfO6jAytqrzG+rEDDfVG1x1sprZEs5RBW4PZxeT+Bbrf5hPu9arfzKaU6WjiAFbseWvoF1GW/6vYGSmkyW7Dit4xB5QHq9Br6Xx2t9GAhtp6zkoHsfNp1J9wX6H+jeR4LtJc4LxGopZZyNpN/YcG2mw9nBTSPLizgOmjKAujGgvJID3ekD7QYi7nGzkvmQtpA38Vi7iJf0TedlC7QTVjMfcY2QyvSBPpUMW/PIBfbo9pls1XpAX2EdizeznStob3OJpQO0DB2YfE21q2GtnghpAm0Gou3T9tm6BGHQppA12HRVt17eboNlydNoLHsx2JtmL801OYcQmkC/QKLtQt9ydBW3wNpA30ci7Ur3WdolUMhbaBqNhf/8qQJ9Hkszs5wjaH9XkUobaAqtmFRdoGbDb3sWMgG6DIs5852knO82RaXer+P+qyb3eWeo7ZNBrRZvm1otY2QFdBjeHIb6hTne49Put12+9ObMoDdYmfy5UkF6AK6cCCr9aM2u9IddptcOYCG+FNDB5xLKCugO7G01TndFp/xgAntdYvrfdwVLnORt3q9Vx25F27DUjbGPxr6qxMgW6Cd2N+d6wLXedA+6nKbK73Lr/pJxzusvE/wZrvX0FOOgGyBxmF/dprXutYOj6nNdS6xyYnWp/dGcaGdhr5vDWQN9E1MXrUzfcA2j2qPj/l1J1uT9iPOeh8w1O7nCGUN9HzyGZ7ndo9qp0ucanU2r1xH+wdDu5wIeQDVVx0+/kd1i697RNv8thdn+Qz4Uv9p6DeOhHyApmBfq3OBu+3Nfd7nVELZAX3Nw4ZarYG8gG7GY1dlk6/Zm3/2Rk8jlB1QvT82dNAmQjkBVf8Mj957fdrefM7ZVhPKEuidvmDob06CXIGGbsX/bZDf8KAhfdbJhLIGmuZuQ084HHIGatiLvRvrRkP6qldbBXkAzbfD0N0OhryBGqrEMOd50FC7d1hPKGugBh8ydMh5hPIGGouI1d5lj6F1vptQ9kDvcKOhN5wMlQH0QcRGnzC03yZCeQDN9G1D6xwBFQI07FI8x02GdjgB8gJqttPQcmuhYoAumzvG7YZWejrkA1TrPYYO+SVCFQO0aM4bqj0uJJQH0LluSP7PkyeQU9QOmyAvoBm+Zegpz4LKA/qYB/wE5AXUe3m81zqoRKAPOYWcuvP9dxvqcD6h7IAKkaNU3eUlHLcI9EzS5YlAi62h/zUy89QCqqKUmvgHywsJlEHnsQYxAvXVIJo5gIhnPhiBju1iNmLvLn85Ah1ZPYs5jBGo72awEzEC9dVwHqQHI9DxWoAYgSLQQKteGIESu/qhCJTYtT+PQBEoAkWgCBSBkotAEehUWwSKQBEoAkWg/BeBIlAEikARKAJFoFmealu4gVLy1Gt5dkARKAL9BzujPSurTmu/AAAAAElFTkSuQmCC);margin-bottom:.4em;-webkit-background-size:100% auto;background-size:100% auto}.ath-android .ath-action-icon{width:1.4em;height:1.4em;background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADAAAAAwCAMAAABg3Am1AAAANlBMVEVmZmb///9mZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZW6fJrAAAAEXRSTlMAAAYHG21ub8fLz9DR8/T4+RrZ9owAAAB3SURBVHja7dNLDoAgDATQWv4gKve/rEajJOJiWLgg6WzpSyB0aHqHiNj6nL1lovb4C+hYzkSNAT7mryQFAVOeGAj4CjwEtgrWXpD/uZKtwEJApXt+Vn0flzRhgNiFZQkOXY0aADQZCOCPlsZJ46Rx0jhp3IiN2wGDHhxtldrlwQAAAABJRU5ErkJggg==);-webkit-background-size:100% auto;background-size:100% auto}.ath-container p{margin:0;padding:0;position:relative;z-index:2147483642;text-shadow:0 .1em 0 #fff;font-size:1.1em}.ath-ios.ath-phone:after{content:'';background:#eee;position:absolute;width:2em;height:2em;bottom:-.9em;left:50%;margin-left:-1em;-webkit-transform:scaleX(.9) rotate(45deg);-ms-transform:scaleX(.9) rotate(45deg);transform:scaleX(.9) rotate(45deg);-webkit-box-shadow:.2em .2em 0 #d1d1d1;box-shadow:.2em .2em 0 #d1d1d1}.ath-ios.ath-tablet:after{content:'';background:#eee;position:absolute;width:2em;height:2em;top:-.9em;left:50%;margin-left:-1em;-webkit-transform:scaleX(.9) rotate(45deg);-ms-transform:scaleX(.9) rotate(45deg);transform:scaleX(.9) rotate(45deg);z-index:2147483641}.ath-application-icon{position:relative;padding:0;border:0;margin:0 auto .2em auto;height:6em;width:6em;z-index:2147483642}.ath-container.ath-ios .ath-application-icon{border-radius:1em;-webkit-box-shadow:0 .2em .4em rgba(0,0,0,.3),inset 0 .07em 0 rgba(255,255,255,.5);box-shadow:0 .2em .4em rgba(0,0,0,.3),inset 0 .07em 0 rgba(255,255,255,.5);margin:0 auto .4em auto}@media only screen and (orientation:landscape){.ath-container.ath-phone{width:24em}.ath-android.ath-phone{margin-left:-12em}.ath-ios.ath-phone{margin-left:-12em}.ath-ios6:after{left:39%}.ath-ios8.ath-phone{left:auto;bottom:auto;right:.4em;top:1.8em}.ath-ios8.ath-phone:after{bottom:auto;top:-.9em;left:68%;z-index:2147483641;-webkit-box-shadow:none;box-shadow:none}}.am-checkbox,.am-checkbox-inline,.am-radio,.am-radio-inline{padding-left:22px;position:relative;-webkit-transition:color .25s linear;transition:color .25s linear;font-size:14px;line-height:1.5}label.am-checkbox,label.am-radio{font-weight:400}.am-ucheck-icons{color:#999;display:block;height:20px;top:0;left:0;position:absolute;width:20px;text-align:center;line-height:21px;font-size:18px;cursor:pointer}.am-checkbox .am-icon-checked,.am-checkbox .am-icon-unchecked,.am-checkbox-inline .am-icon-checked,.am-checkbox-inline .am-icon-unchecked,.am-radio .am-icon-checked,.am-radio .am-icon-unchecked,.am-radio-inline .am-icon-checked,.am-radio-inline .am-icon-unchecked{position:absolute;left:0;top:0;display:inline-table;margin:0;background-color:transparent;-webkit-transition:color .25s linear;transition:color .25s linear}.am-checkbox .am-icon-checked:before,.am-checkbox .am-icon-unchecked:before,.am-checkbox-inline .am-icon-checked:before,.am-checkbox-inline .am-icon-unchecked:before,.am-radio .am-icon-checked:before,.am-radio .am-icon-unchecked:before,.am-radio-inline .am-icon-checked:before,.am-radio-inline .am-icon-unchecked:before{display:inline-block;font:normal normal normal 1.6rem/1 FontAwesome,sans-serif;font-size:inherit;text-rendering:auto;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;-webkit-transform:translate(0,0);-ms-transform:translate(0,0);transform:translate(0,0)}.am-checkbox .am-icon-checked,.am-checkbox-inline .am-icon-checked,.am-radio .am-icon-checked,.am-radio-inline .am-icon-checked{opacity:0}.am-checkbox .am-icon-checked:before,.am-checkbox-inline .am-icon-checked:before{content:"\f046"}.am-checkbox .am-icon-unchecked:before,.am-checkbox-inline .am-icon-unchecked:before{content:"\f096"}.am-radio .am-icon-checked:before,.am-radio-inline .am-icon-checked:before{content:"\f192"}.am-radio .am-icon-unchecked:before,.am-radio-inline .am-icon-unchecked:before{content:"\f10c"}.am-ucheck-checkbox,.am-ucheck-radio{position:absolute;left:0;top:0;margin:0;padding:0;width:20px;height:20px;opacity:0;outline:0!important}.am-ucheck-checkbox:hover:not(.am-nohover):not(:disabled)+.am-ucheck-icons,.am-ucheck-radio:hover:not(.am-nohover):not(:disabled)+.am-ucheck-icons{color:#0e90d2}.am-ucheck-checkbox:checked+.am-ucheck-icons,.am-ucheck-radio:checked+.am-ucheck-icons{color:#0e90d2}.am-ucheck-checkbox:checked+.am-ucheck-icons .am-icon-unchecked,.am-ucheck-radio:checked+.am-ucheck-icons .am-icon-unchecked{opacity:0}.am-ucheck-checkbox:checked+.am-ucheck-icons .am-icon-checked,.am-ucheck-radio:checked+.am-ucheck-icons .am-icon-checked{opacity:1}.am-ucheck-checkbox:disabled+.am-ucheck-icons,.am-ucheck-radio:disabled+.am-ucheck-icons{cursor:default;color:#d8d8d8}.am-ucheck-checkbox:disabled:checked+.am-ucheck-icons .am-icon-unchecked,.am-ucheck-radio:disabled:checked+.am-ucheck-icons .am-icon-unchecked{opacity:0}.am-ucheck-checkbox:disabled:checked+.am-ucheck-icons .am-icon-checked,.am-ucheck-radio:disabled:checked+.am-ucheck-icons .am-icon-checked{opacity:1;color:#d8d8d8}.am-checkbox-inline.am-secondary .am-ucheck-checkbox:hover:not(.am-nohover):not(:disabled)+.am-ucheck-icons,.am-checkbox-inline.am-secondary .am-ucheck-radio:hover:not(.am-nohover):not(:disabled)+.am-ucheck-icons,.am-checkbox.am-secondary .am-ucheck-checkbox:hover:not(.am-nohover):not(:disabled)+.am-ucheck-icons,.am-checkbox.am-secondary .am-ucheck-radio:hover:not(.am-nohover):not(:disabled)+.am-ucheck-icons,.am-radio-inline.am-secondary .am-ucheck-checkbox:hover:not(.am-nohover):not(:disabled)+.am-ucheck-icons,.am-radio-inline.am-secondary .am-ucheck-radio:hover:not(.am-nohover):not(:disabled)+.am-ucheck-icons,.am-radio.am-secondary .am-ucheck-checkbox:hover:not(.am-nohover):not(:disabled)+.am-ucheck-icons,.am-radio.am-secondary .am-ucheck-radio:hover:not(.am-nohover):not(:disabled)+.am-ucheck-icons{color:#3bb4f2}.am-checkbox-inline.am-secondary .am-ucheck-checkbox:checked+.am-ucheck-icons,.am-checkbox-inline.am-secondary .am-ucheck-radio:checked+.am-ucheck-icons,.am-checkbox.am-secondary .am-ucheck-checkbox:checked+.am-ucheck-icons,.am-checkbox.am-secondary .am-ucheck-radio:checked+.am-ucheck-icons,.am-radio-inline.am-secondary .am-ucheck-checkbox:checked+.am-ucheck-icons,.am-radio-inline.am-secondary .am-ucheck-radio:checked+.am-ucheck-icons,.am-radio.am-secondary .am-ucheck-checkbox:checked+.am-ucheck-icons,.am-radio.am-secondary .am-ucheck-radio:checked+.am-ucheck-icons{color:#3bb4f2}.am-checkbox-inline.am-success .am-ucheck-checkbox:hover:not(.am-nohover):not(:disabled)+.am-ucheck-icons,.am-checkbox-inline.am-success .am-ucheck-radio:hover:not(.am-nohover):not(:disabled)+.am-ucheck-icons,.am-checkbox.am-success .am-ucheck-checkbox:hover:not(.am-nohover):not(:disabled)+.am-ucheck-icons,.am-checkbox.am-success .am-ucheck-radio:hover:not(.am-nohover):not(:disabled)+.am-ucheck-icons,.am-radio-inline.am-success .am-ucheck-checkbox:hover:not(.am-nohover):not(:disabled)+.am-ucheck-icons,.am-radio-inline.am-success .am-ucheck-radio:hover:not(.am-nohover):not(:disabled)+.am-ucheck-icons,.am-radio.am-success .am-ucheck-checkbox:hover:not(.am-nohover):not(:disabled)+.am-ucheck-icons,.am-radio.am-success .am-ucheck-radio:hover:not(.am-nohover):not(:disabled)+.am-ucheck-icons{color:#5eb95e}.am-checkbox-inline.am-success .am-ucheck-checkbox:checked+.am-ucheck-icons,.am-checkbox-inline.am-success .am-ucheck-radio:checked+.am-ucheck-icons,.am-checkbox.am-success .am-ucheck-checkbox:checked+.am-ucheck-icons,.am-checkbox.am-success .am-ucheck-radio:checked+.am-ucheck-icons,.am-radio-inline.am-success .am-ucheck-checkbox:checked+.am-ucheck-icons,.am-radio-inline.am-success .am-ucheck-radio:checked+.am-ucheck-icons,.am-radio.am-success .am-ucheck-checkbox:checked+.am-ucheck-icons,.am-radio.am-success .am-ucheck-radio:checked+.am-ucheck-icons{color:#5eb95e}.am-checkbox-inline.am-warning .am-ucheck-checkbox:hover:not(.am-nohover):not(:disabled)+.am-ucheck-icons,.am-checkbox-inline.am-warning .am-ucheck-radio:hover:not(.am-nohover):not(:disabled)+.am-ucheck-icons,.am-checkbox.am-warning .am-ucheck-checkbox:hover:not(.am-nohover):not(:disabled)+.am-ucheck-icons,.am-checkbox.am-warning .am-ucheck-radio:hover:not(.am-nohover):not(:disabled)+.am-ucheck-icons,.am-radio-inline.am-warning .am-ucheck-checkbox:hover:not(.am-nohover):not(:disabled)+.am-ucheck-icons,.am-radio-inline.am-warning .am-ucheck-radio:hover:not(.am-nohover):not(:disabled)+.am-ucheck-icons,.am-radio.am-warning .am-ucheck-checkbox:hover:not(.am-nohover):not(:disabled)+.am-ucheck-icons,.am-radio.am-warning .am-ucheck-radio:hover:not(.am-nohover):not(:disabled)+.am-ucheck-icons{color:#F37B1D}.am-checkbox-inline.am-warning .am-ucheck-checkbox:checked+.am-ucheck-icons,.am-checkbox-inline.am-warning .am-ucheck-radio:checked+.am-ucheck-icons,.am-checkbox.am-warning .am-ucheck-checkbox:checked+.am-ucheck-icons,.am-checkbox.am-warning .am-ucheck-radio:checked+.am-ucheck-icons,.am-radio-inline.am-warning .am-ucheck-checkbox:checked+.am-ucheck-icons,.am-radio-inline.am-warning .am-ucheck-radio:checked+.am-ucheck-icons,.am-radio.am-warning .am-ucheck-checkbox:checked+.am-ucheck-icons,.am-radio.am-warning .am-ucheck-radio:checked+.am-ucheck-icons{color:#F37B1D}.am-checkbox-inline.am-danger .am-ucheck-checkbox:hover:not(.am-nohover):not(:disabled)+.am-ucheck-icons,.am-checkbox-inline.am-danger .am-ucheck-radio:hover:not(.am-nohover):not(:disabled)+.am-ucheck-icons,.am-checkbox.am-danger .am-ucheck-checkbox:hover:not(.am-nohover):not(:disabled)+.am-ucheck-icons,.am-checkbox.am-danger .am-ucheck-radio:hover:not(.am-nohover):not(:disabled)+.am-ucheck-icons,.am-radio-inline.am-danger .am-ucheck-checkbox:hover:not(.am-nohover):not(:disabled)+.am-ucheck-icons,.am-radio-inline.am-danger .am-ucheck-radio:hover:not(.am-nohover):not(:disabled)+.am-ucheck-icons,.am-radio.am-danger .am-ucheck-checkbox:hover:not(.am-nohover):not(:disabled)+.am-ucheck-icons,.am-radio.am-danger .am-ucheck-radio:hover:not(.am-nohover):not(:disabled)+.am-ucheck-icons{color:#dd514c}.am-checkbox-inline.am-danger .am-ucheck-checkbox:checked+.am-ucheck-icons,.am-checkbox-inline.am-danger .am-ucheck-radio:checked+.am-ucheck-icons,.am-checkbox.am-danger .am-ucheck-checkbox:checked+.am-ucheck-icons,.am-checkbox.am-danger .am-ucheck-radio:checked+.am-ucheck-icons,.am-radio-inline.am-danger .am-ucheck-checkbox:checked+.am-ucheck-icons,.am-radio-inline.am-danger .am-ucheck-radio:checked+.am-ucheck-icons,.am-radio.am-danger .am-ucheck-checkbox:checked+.am-ucheck-icons,.am-radio.am-danger .am-ucheck-radio:checked+.am-ucheck-icons{color:#dd514c}.am-field-error+.am-ucheck-icons{color:#dd514c}.am-field-valid+.am-ucheck-icons{color:#5eb95e}.am-selected{width:200px}.am-selected-btn{width:100%;padding-left:10px;text-align:right}.am-selected-btn.am-btn-default{background:0 0}.am-invalid .am-selected-btn{border-color:#dd514c}.am-selected-header{height:45px;background-color:#f2f2f2;border-bottom:1px solid #ddd;display:none}.am-selected-status{text-align:left;width:100%;display:block;word-wrap:normal;text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.am-selected-content{padding:10px 0}.am-selected-search{padding:0 10px 10px}.am-selected-search .am-form-field{padding:.5em}.am-selected-list{margin:0;padding:0;list-style:none;font-size:1.5rem}.am-selected-list li{position:relative;cursor:pointer;padding:5px 10px;-webkit-transition:background-color .15s;transition:background-color .15s}.am-selected-list li:hover{background-color:#f8f8f8}.am-selected-list li:hover .am-icon-check{opacity:.6}.am-selected-list li.am-checked .am-icon-check{opacity:1;color:#0e90d2}.am-selected-list li.am-disabled{opacity:.5;pointer-events:none;cursor:not-allowed}.am-selected-list .am-selected-list-header{margin-top:8px;font-size:1.3rem;color:#999;border-bottom:1px solid #e5e5e5;cursor:default}.am-selected-list .am-selected-list-header:hover{background:0 0}.am-selected-list .am-selected-list-header:first-child{margin-top:0}.am-selected-list .am-selected-text{display:block;word-wrap:normal;text-overflow:ellipsis;white-space:nowrap;overflow:hidden;margin-right:30px}.am-selected-list .am-icon-check{position:absolute;right:8px;top:5px;color:#999;opacity:0;-webkit-transition:opacity .15s;transition:opacity .15s}.am-selected-hint{line-height:1.2;color:#dd514c}.am-selected-hint:not(:empty){margin-top:10px;border-top:1px solid #e5e5e5;padding:10px 10px 0}.am-selected-placeholder{opacity:.65}.am-fade{opacity:0;-webkit-transition:opacity .2s linear;transition:opacity .2s linear}.am-fade.am-in{opacity:1}.am-collapse{display:none}.am-collapse.am-in{display:block}tr.am-collapse.am-in{display:table-row}tbody.am-collapse.am-in{display:table-row-group}.am-collapsing{position:relative;height:0;overflow:hidden;-webkit-transition:height .3s ease;transition:height .3s ease}.am-sticky{position:fixed!important;z-index:1010;-webkit-transform-origin:0 0;-ms-transform-origin:0 0;transform-origin:0 0}[data-am-sticky][class*=am-animation-]{-webkit-animation-duration:.2s;animation-duration:.2s}.am-dimmer-active{overflow:hidden}.am-dimmer{position:fixed;top:0;right:0;bottom:0;left:0;display:none;width:100%;height:100%;background-color:rgba(0,0,0,.6);z-index:1100;opacity:0}.am-dimmer.am-active{opacity:1}[data-am-collapse]{cursor:pointer}.am-datepicker{top:0;left:0;border-radius:2px;background:#fff;-webkit-box-shadow:0 0 10px #ccc;box-shadow:0 0 10px #ccc;padding-bottom:10px;margin-top:10px;width:238px;color:#555;display:none}.am-datepicker>div{display:none}.am-datepicker table{width:100%}.am-datepicker tr.am-datepicker-header{font-size:1.6rem;color:#fff;background:#3bb4f2}.am-datepicker td,.am-datepicker th{text-align:center;font-weight:400;cursor:pointer}.am-datepicker th{height:48px}.am-datepicker td{font-size:1.4rem}.am-datepicker td.am-datepicker-day{height:34px;width:34px}.am-datepicker td.am-datepicker-day:hover{background:#F0F0F0;height:34px;width:34px}.am-datepicker td.am-datepicker-day.am-disabled{cursor:no-drop;color:#999;background:#fafafa}.am-datepicker td.am-datepicker-new,.am-datepicker td.am-datepicker-old{color:#89d7ff}.am-datepicker td.am-active,.am-datepicker td.am-active:hover{border-radius:2px;color:#0084c7;background:#F0F0F0}.am-datepicker td span{display:block;width:79.33px;height:40px;line-height:40px;float:left;cursor:pointer}.am-datepicker td span:hover{background:#F0F0F0}.am-datepicker td span.am-active{color:#0084c7;background:#F0F0F0}.am-datepicker td span.am-disabled{cursor:no-drop;color:#999;background:#fafafa}.am-datepicker td span.am-datepicker-old{color:#89d7ff}.am-datepicker .am-datepicker-dow{height:40px;color:#0c80ba}.am-datepicker-caret{display:block!important;display:inline-block;width:0;height:0;vertical-align:middle;border-bottom:7px solid #3bb4f2;border-right:7px solid transparent;border-left:7px solid transparent;border-top:0 dotted;-webkit-transform:rotate(360deg);-ms-transform:rotate(360deg);transform:rotate(360deg);position:absolute;top:-7px;left:6px}.am-datepicker-right .am-datepicker-caret{left:auto;right:7px}.am-datepicker-up .am-datepicker-caret{top:auto;bottom:-7px;display:inline-block;width:0;height:0;vertical-align:middle;border-top:7px solid #fff;border-right:7px solid transparent;border-left:7px solid transparent;border-bottom:0 dotted;-webkit-transform:rotate(360deg);-ms-transform:rotate(360deg);transform:rotate(360deg)}.am-datepicker-select{height:34px;line-height:34px;text-align:center;-webkit-transition:background-color .3s ease-out;transition:background-color .3s ease-out}.am-datepicker-select:hover{background:rgba(154,217,248,.5);color:#0c80ba}.am-datepicker-next,.am-datepicker-prev{width:34px;height:34px}.am-datepicker-next-icon,.am-datepicker-prev-icon{width:34px;height:34px;line-height:34px;display:inline-block;-webkit-transition:background-color .3s ease-out;transition:background-color .3s ease-out}.am-datepicker-next-icon:hover,.am-datepicker-prev-icon:hover{background:rgba(154,217,248,.5);color:#0c80ba}.am-datepicker-prev-icon:before{display:inline-block;font:normal normal normal 1.6rem/1 FontAwesome,sans-serif;font-size:inherit;text-rendering:auto;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;-webkit-transform:translate(0,0);-ms-transform:translate(0,0);transform:translate(0,0);content:"\f053"}.am-datepicker-next-icon:before{display:inline-block;font:normal normal normal 1.6rem/1 FontAwesome,sans-serif;font-size:inherit;text-rendering:auto;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;-webkit-transform:translate(0,0);-ms-transform:translate(0,0);transform:translate(0,0);content:"\f054"}.am-datepicker-dropdown{position:absolute;z-index:1120}@media only screen and (max-width:640px){.am-datepicker{width:100%}.am-datepicker td span{width:33.33%}.am-datepicker-caret{display:none!important}.am-datepicker-next,.am-datepicker-prev{width:44px;height:44px}}.am-datepicker-success tr.am-datepicker-header{background:#5eb95e}.am-datepicker-success td.am-datepicker-day.am-disabled{color:#999}.am-datepicker-success td.am-datepicker-new,.am-datepicker-success td.am-datepicker-old{color:#94df94}.am-datepicker-success td.am-active,.am-datepicker-success td.am-active:hover{color:#1b961b}.am-datepicker-success td span.am-datepicker-old{color:#94df94}.am-datepicker-success td span.am-active{color:#1b961b}.am-datepicker-success .am-datepicker-caret{border-bottom-color:#5eb95e}.am-datepicker-success .am-datepicker-dow{color:#367b36}.am-datepicker-success .am-datepicker-next-icon:hover,.am-datepicker-success .am-datepicker-prev-icon:hover,.am-datepicker-success .am-datepicker-select:hover{background:rgba(165,216,165,.5);color:#367b36}.am-datepicker-danger tr.am-datepicker-header{background:#dd514c}.am-datepicker-danger td.am-datepicker-day.am-disabled{color:#999}.am-datepicker-danger td.am-datepicker-new,.am-datepicker-danger td.am-datepicker-old{color:#f59490}.am-datepicker-danger td.am-active,.am-datepicker-danger td.am-active:hover{color:#c10802}.am-datepicker-danger td span.am-datepicker-old{color:#f59490}.am-datepicker-danger td span.am-active{color:#c10802}.am-datepicker-danger .am-datepicker-caret{border-bottom-color:#dd514c}.am-datepicker-danger .am-datepicker-dow{color:#a4241f}.am-datepicker-danger .am-datepicker-next-icon:hover,.am-datepicker-danger .am-datepicker-prev-icon:hover,.am-datepicker-danger .am-datepicker-select:hover{background:rgba(237,164,162,.5);color:#a4241f}.am-datepicker-warning tr.am-datepicker-header{background:#F37B1D}.am-datepicker-warning td.am-datepicker-day.am-disabled{color:#999}.am-datepicker-warning td.am-datepicker-new,.am-datepicker-warning td.am-datepicker-old{color:#ffad6d}.am-datepicker-warning td.am-active,.am-datepicker-warning td.am-active:hover{color:#aa4b00}.am-datepicker-warning td span.am-datepicker-old{color:#ffad6d}.am-datepicker-warning td span.am-active{color:#aa4b00}.am-datepicker-warning .am-datepicker-caret{border-bottom-color:#F37B1D}.am-datepicker-warning .am-datepicker-dow{color:#a14c09}.am-datepicker-warning .am-datepicker-next-icon:hover,.am-datepicker-warning .am-datepicker-prev-icon:hover,.am-datepicker-warning .am-datepicker-select:hover{background:rgba(248,180,126,.5);color:#a14c09}.am-datepicker>div{display:block}.am-datepicker>div span.am-datepicker-hour{width:59.5px}.am-datepicker-date{display:block}.am-datepicker-date.am-input-group{display:table}.am-datepicker-time-box{padding:30px 0 30px 0}.am-datepicker-time-box strong{font-size:5.2rem;display:inline-block;height:70px;width:70px;line-height:70px;font-weight:400}.am-datepicker-time-box strong:hover{border-radius:4px;background:#ECECEC}.am-datepicker-time-box em{display:inline-block;height:70px;width:20px;line-height:70px;font-size:5.2rem;font-style:normal}.am-datepicker-toggle{text-align:center;cursor:pointer;padding:10px 0}.am-datepicker-toggle:hover{background:#f0f0f0}@media print{*,:after,:before{background:0 0!important;color:#000!important;-webkit-box-shadow:none!important;box-shadow:none!important;text-shadow:none!important}a,a:visited{text-decoration:underline}a[href]:after{content:" (" attr(href) ")"}abbr[title]:after{content:" [" attr(title) "] "}a[href^="javascript:"]:after,a[href^="#"]:after{content:""}blockquote,pre{border:1px solid #999;page-break-inside:avoid}thead{display:table-header-group}img,tr{page-break-inside:avoid}img{max-width:100%!important}h2,h3,p{orphans:3;widows:3}h2,h3{page-break-after:avoid}@page{margin:.5cm}select{background:#fff!important}.am-topbar{display:none}.am-table td,.am-table th{background-color:#fff!important}.am-table{border-collapse:collapse!important}.am-table-bordered td,.am-table-bordered th{border:1px solid #ddd!important}}.am-print-block{display:none!important}@media print{.am-print-block{display:block!important}}.am-print-inline{display:none!important}@media print{.am-print-inline{display:inline!important}}.am-print-inline-block{display:none!important}@media print{.am-print-inline-block{display:inline-block!important}}@media print{.am-print-hide{display:none!important}}.lte9 #nprogress .nprogress-spinner{display:none!important}.lte8 .am-dimmer{background-color:#000;filter:alpha(opacity=60)}.lte8 .am-modal-actions{display:none}.lte8 .am-modal-actions.am-modal-active{display:block}.lte8 .am-offcanvas.am-active{background:#000}.lte8 .am-popover .am-popover-caret{border:8px solid transparent}.lte8 .am-popover-top .am-popover-caret{border-top:8px solid #333;border-bottom:none}.lte8 .am-popover-left .am-popover-caret{right:-8px;margin-top:-6px;border-left:8px solid #333;border-right:none}.lte8 .am-popover-right .am-popover-caret{left:-8px;margin-top:-6px;border-right:8px solid #333;border-left:none}.am-accordion-item{margin:0}.am-accordion-title{font-weight:400;cursor:pointer}.am-accordion-item.am-disabled .am-accordion-title{cursor:default;pointer-events:none}.am-accordion-bd{margin:0!important;padding:0!important;border:none!important}.am-accordion-content{margin-top:0;padding:.8rem 1rem 1.2rem;font-size:1.4rem}.am-accordion-default{margin:1rem;border-radius:2px;-webkit-box-shadow:0 0 0 1px rgba(0,0,0,.1);box-shadow:0 0 0 1px rgba(0,0,0,.1)}.am-accordion-default .am-accordion-item{border-top:1px solid rgba(0,0,0,.05)}.am-accordion-default .am-accordion-item:first-child{border-top:none}.am-accordion-default .am-accordion-title{color:rgba(0,0,0,.6);-webkit-transition:background-color .2s ease-out;transition:background-color .2s ease-out;padding:.8rem 1rem}.am-accordion-default .am-accordion-title:before{content:"\f0da";display:inline-block;font:normal normal normal 1.6rem/1 FontAwesome,sans-serif;font-size:inherit;text-rendering:auto;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;-webkit-transform:translate(0,0);-ms-transform:translate(0,0);transform:translate(0,0);-webkit-transition:-webkit-transform .2s ease;transition:-webkit-transform .2s ease;transition:transform .2s ease;transition:transform .2s ease,-webkit-transform .2s ease;-webkit-transform:rotate(0);-ms-transform:rotate(0);transform:rotate(0);margin-right:5px}.am-accordion-default .am-accordion-title:hover{color:#0e90d2}.am-accordion-default .am-accordion-content{color:#666}.am-accordion-default .am-active .am-accordion-title{background-color:#eee;color:#0e90d2}.am-accordion-default .am-active .am-accordion-title:before{-webkit-transform:rotate(90deg);-ms-transform:rotate(90deg);transform:rotate(90deg)}.am-accordion-basic{margin:1rem}.am-accordion-basic .am-accordion-title{color:#333;-webkit-transition:background-color .2s ease-out;transition:background-color .2s ease-out;padding:.8rem 0 0}.am-accordion-basic .am-accordion-title:before{display:inline-block;font:normal normal normal 1.6rem/1 FontAwesome,sans-serif;font-size:inherit;text-rendering:auto;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;-webkit-transform:translate(0,0);-ms-transform:translate(0,0);transform:translate(0,0);content:"\f0da";-webkit-transition:-webkit-transform .2s ease;transition:-webkit-transform .2s ease;transition:transform .2s ease;transition:transform .2s ease,-webkit-transform .2s ease;-webkit-transform:rotate(0);-ms-transform:rotate(0);transform:rotate(0);margin-right:.5rem}.am-accordion-basic .am-accordion-content{color:#666}.am-accordion-basic .am-active .am-accordion-title{color:#0e90d2}.am-accordion-basic .am-active .am-accordion-title:before{-webkit-transform:rotate(90deg);-ms-transform:rotate(90deg);transform:rotate(90deg)}.am-accordion-gapped{margin:.5rem 1rem}.am-accordion-gapped .am-accordion-item{border:1px solid #dedede;border-bottom:none;margin:.5rem 0}.am-accordion-gapped .am-accordion-item.am-active{border-bottom:1px solid #dedede}.am-accordion-gapped .am-accordion-title{color:rgba(0,0,0,.6);-webkit-transition:background-color .15s ease-out;transition:background-color .15s ease-out;border-bottom:1px solid #dedede;padding:.8rem 2rem .8rem 1rem;position:relative}.am-accordion-gapped .am-accordion-title:after{display:inline-block;font:normal normal normal 1.6rem/1 FontAwesome,sans-serif;font-size:inherit;text-rendering:auto;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;-webkit-transform:translate(0,0);-ms-transform:translate(0,0);transform:translate(0,0);content:"\f105";-webkit-transition:-webkit-transform .2s linear;transition:-webkit-transform .2s linear;transition:transform .2s linear;transition:transform .2s linear,-webkit-transform .2s linear;position:absolute;right:10px;top:50%;margin-top:-.8rem}.am-accordion-gapped .am-accordion-title:hover{color:rgba(0,0,0,.8)}.am-accordion-gapped .am-accordion-content{color:#666}.am-accordion-gapped .am-active .am-accordion-title{background-color:#f5f5f5;color:rgba(0,0,0,.8)}.am-accordion-gapped .am-active .am-accordion-title:after{-webkit-transform:rotate(90deg);-ms-transform:rotate(90deg);transform:rotate(90deg)}.am-divider{height:0;margin:1.5rem auto;overflow:hidden;clear:both}.am-divider-default{border-top:1px solid #ddd}.am-divider-dotted{border-top:1px dotted #ccc}.am-divider-dashed{border-top:1px dashed #ccc}.am-figure-zoomable{position:relative;cursor:pointer}.am-figure-zoomable:after{display:inline-block;font:normal normal normal 1.6rem/1 FontAwesome,sans-serif;font-size:inherit;text-rendering:auto;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;-webkit-transform:translate(0,0);-ms-transform:translate(0,0);transform:translate(0,0);content:"\f00e";position:absolute;top:1rem;right:1rem;color:#999;font-size:1.6rem;-webkit-transition:all .2s;transition:all .2s;pointer-events:none}.am-figure-zoomable:hover:after{color:#eee}.am-figure-default{margin:10px}.am-figure-default img{display:block;max-width:100%;height:auto;padding:2px;border:1px solid #eee;margin:10px auto}.am-figure-default figcaption{text-align:center;font-size:1.4rem;margin-bottom:15px;color:#333}.am-footer{text-align:center;padding:1em 0;font-size:1.6rem}.am-footer .am-switch-mode-ysp{cursor:pointer}.am-footer .am-footer-text{margin-top:10px;font-size:14px}.am-footer .am-footer-text-left{text-align:left;padding-left:10px}.am-modal-footer-hd{padding-bottom:10px}.am-footer-default{background-color:#fff}.am-footer-default a{color:#555}.am-footer-default .am-footer-switch{margin-bottom:10px;font-weight:700}.am-footer-default .am-footer-ysp{color:#555;cursor:pointer}.am-footer-default .am-footer-divider{color:#ccc}.am-footer-default .am-footer-desktop{color:#0e90d2}.am-footer-default .am-footer-miscs{color:#999;font-size:13px}.am-footer-default .am-footer-miscs p{margin:5px 0}@media only screen and (min-width:641px){.am-footer-default .am-footer-miscs p{display:inline-block;margin:5px}}.am-gallery{padding:5px 5px 0 5px;list-style:none}.am-gallery h3{margin:0}[data-am-gallery*=pureview] img{cursor:pointer}.am-gallery-default>li{padding:5px}.am-gallery-default .am-gallery-item img{width:100%;height:auto}.am-gallery-default .am-gallery-title{margin-top:10px;font-weight:400;font-size:1.4rem;display:block;word-wrap:normal;text-overflow:ellipsis;white-space:nowrap;overflow:hidden;color:#555}.am-gallery-default .am-gallery-desc{color:#999;font-size:1.2rem}.am-gallery-overlay>li{padding:5px}.am-gallery-overlay .am-gallery-item{position:relative}.am-gallery-overlay .am-gallery-item img{width:100%;height:auto}.am-gallery-overlay .am-gallery-title{font-weight:400;font-size:1.4rem;color:#FFF;position:absolute;bottom:0;width:100%;background-color:rgba(0,0,0,.5);text-indent:5px;height:30px;line-height:30px;display:block;word-wrap:normal;text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.am-gallery-overlay .am-gallery-desc{display:none}.am-gallery-bordered>li{padding:5px}.am-gallery-bordered .am-gallery-item{-webkit-box-shadow:0 0 3px rgba(0,0,0,.35);box-shadow:0 0 3px rgba(0,0,0,.35);padding:5px}.am-gallery-bordered .am-gallery-item img{width:100%;height:auto}.am-gallery-bordered .am-gallery-title{margin-top:10px;font-weight:400;font-size:1.4rem;color:#555;display:block;word-wrap:normal;text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.am-gallery-bordered .am-gallery-desc{color:#999;font-size:1.2rem}.am-gallery-imgbordered>li{padding:5px}.am-gallery-imgbordered .am-gallery-item img{width:100%;height:auto;border:3px solid #FFF;-webkit-box-shadow:0 0 3px rgba(0,0,0,.35);box-shadow:0 0 3px rgba(0,0,0,.35)}.am-gallery-imgbordered .am-gallery-title{margin-top:10px;font-weight:400;font-size:1.4rem;color:#555;display:block;word-wrap:normal;text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.am-gallery-imgbordered .am-gallery-desc{color:#999;font-size:1.2rem}.am-gotop a{display:inline-block;text-decoration:none}.am-gotop-default{text-align:center;margin:10px 0}.am-gotop-default a{background-color:#0e90d2;padding:.5em 1.5em;border-radius:2px;color:#fff}.am-gotop-default a img{display:none}.am-gotop-fixed{position:fixed;right:10px;bottom:10px;z-index:1010;opacity:0;width:32px;min-height:32px;overflow:hidden;border-radius:2px;text-align:center}.am-gotop-fixed.am-active{opacity:.9}.am-gotop-fixed.am-active:hover{opacity:1}.am-gotop-fixed a{display:block}.am-gotop-fixed .am-gotop-title{display:none}.am-gotop-fixed .am-gotop-icon-custom{display:inline-block;max-width:30px;vertical-align:middle}.am-gotop-fixed .am-gotop-icon{width:100%;line-height:32px;background-color:#555;vertical-align:middle;color:#ddd}.am-gotop-fixed .am-gotop-icon:hover{color:#fff}.am-with-fixed-navbar .am-gotop-fixed{bottom:60px}.am-header{position:relative;width:100%;height:49px;line-height:49px;padding:0 10px}.am-header h1{margin-top:0;margin-bottom:0}.am-header .am-header-title{margin:0 30%;font-size:2rem;font-weight:400;text-align:center;display:block;word-wrap:normal;text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.am-header .am-header-title img{margin-top:12px;height:25px;vertical-align:top}.am-header .am-header-nav{position:absolute;top:0}.am-header .am-header-nav img{height:16px;width:auto;vertical-align:middle}.am-header .am-header-left{left:10px}.am-header .am-header-right{right:10px}.am-header-fixed{position:fixed;top:0;left:0;right:0;width:100%;z-index:1010}.am-with-fixed-header{padding-top:49px}.am-header-default{background-color:#0e90d2}.am-header-default .am-header-title{color:#fff}.am-header-default .am-header-title a{color:#fff}.am-header-default .am-header-icon{font-size:20px}.am-header-default .am-header-nav{color:#eee}.am-header-default .am-header-nav>a{display:inline-block;min-width:36px;text-align:center;color:#eee}.am-header-default .am-header-nav>a+a{margin-left:5px}.am-header-default .am-header-nav .am-btn{margin-top:9px;height:31px;padding:0 .5em;line-height:30px;font-size:14px;vertical-align:top}.am-header-default .am-header-nav .am-btn .am-header-icon{font-size:inherit}.am-header-default .am-header-nav .am-btn-default{color:#999}.am-header-default .am-header-nav-title,.am-header-default .am-header-nav-title+.am-header-icon{font-size:14px}.am-intro{position:relative}.am-intro img{max-width:100%}.am-intro-hd{position:relative;height:45px;line-height:45px}.am-intro-title{font-size:18px;margin:0;font-weight:700}.am-intro-more-top{position:absolute;right:10px;top:0;font-size:1.4rem}.am-intro-bd{padding-top:15px;padding-bottom:15px;font-size:1.4rem}.am-intro-bd p:last-child{margin-bottom:0}.am-intro-more-bottom{clear:both;text-align:center}.am-intro-more-bottom .am-btn{font-size:14px}.am-intro-default .am-intro-hd{background-color:#0e90d2;color:#fff;padding:0 10px}.am-intro-default .am-intro-hd a{color:#eee}.am-intro-default .am-intro-right{padding-left:0}.am-list-news-hd{padding-top:1.2rem;padding-bottom:.8rem}.am-list-news-hd a{display:block}.am-list-news-hd h2{font-size:1.6rem;float:left;margin:0;height:2rem;line-height:2rem}.am-list-news-hd h3{margin:0}.am-list-news-hd .am-list-news-more{font-size:1.3rem;height:2rem;line-height:2rem}.am-list .am-list-item-dated a{padding-right:80px;display:block;word-wrap:normal;text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.am-list .am-list-item-dated a::after{display:none}.am-list .am-list-item-desced a,.am-list .am-list-item-thumbed a{padding-right:0}.am-list-news .am-list-item-hd{margin:0}.am-list-date{position:absolute;right:5px;font-size:1.3rem;top:1.3rem}.am-list-item-desced{padding-bottom:1rem}.am-list-item-desced>a{padding:1rem 0}.am-list-item-desced .am-list-date{position:static}.am-list-item-thumbed{padding-top:1em}.am-list-news-ft{text-align:center}.am-list-news .am-titlebar{margin-left:0;margin-right:0}.am-list-news .am-titlebar~.am-list-news-bd .am-list>li:first-child{border-top:none}.am-list-news-default{margin:10px}.am-list-news-default .am-g{margin-left:auto;margin-right:auto}.am-list-news-default .am-list-item-hd{font-weight:400}.am-list-news-default .am-list-date{color:#999}.am-list-news-default .am-list>li{border-color:#dedede}.am-list-news-default .am-list .am-list-item-desced{padding-top:1rem;padding-bottom:1rem}.am-list-news-default .am-list .am-list-item-desced>a{padding:0}.am-list-news-default .am-list .am-list-item-desced .am-list-item-text{margin-top:.5rem;color:#757575}.am-list-news-default .am-list .am-list-item-text{overflow:hidden;text-overflow:ellipsis;display:-webkit-box;-webkit-box-orient:vertical;line-height:1.3em;-webkit-line-clamp:2;max-height:2.6em}.am-list-news-default .am-list .am-list-item-thumb-top .am-list-thumb{padding:0;margin-bottom:.8rem}.am-list-news-default .am-list .am-list-item-thumb-top .am-list-main{padding:0}.am-list-news-default .am-list .am-list-item-thumb-left .am-list-thumb{padding-left:0}.am-list-news-default .am-list .am-list-item-desced .am-list-main{padding:0}.am-list-news-default .am-list .am-list-item-thumb-right .am-list-thumb{padding-right:0}.am-list-news-default .am-list .am-list-item-thumb-bottom-left .am-list-item-hd{clear:both;padding-bottom:.5rem}.am-list-news-default .am-list .am-list-item-thumb-bottom-left .am-list-thumb{padding-left:0}.am-list-news-default .am-list .am-list-item-thumb-bottom-right .am-list-item-hd{clear:both;padding-bottom:.5rem}.am-list-news-default .am-list .am-list-item-thumb-bottom-right .am-list-thumb{padding-right:0}.am-list-news-default .am-list .am-list-thumb img{width:100%;display:block}@media only screen and (max-width:640px){.am-list-news-default .am-list-item-thumb-left .am-list-thumb,.am-list-news-default .am-list-item-thumb-right .am-list-thumb{max-height:80px;overflow:hidden}.am-list-news-default .am-list-item-thumb-bottom-left .am-list-item-text,.am-list-news-default .am-list-item-thumb-bottom-right .am-list-item-text{-webkit-line-clamp:3;max-height:3.9em}.am-list-news-default .am-list-item-thumb-bottom-left .am-list-thumb,.am-list-news-default .am-list-item-thumb-bottom-right .am-list-thumb{max-height:60px;overflow:hidden}}.am-map{width:100%;height:300px}.am-map-default #bd-map{width:100%;height:100%;overflow:hidden;margin:0;font-size:14px;line-height:1.4!important}.am-map-default .BMap_bubble_title{font-weight:700}.am-map-default #BMap_mask{width:100%}.am-mechat{margin:1rem}.am-mechat .section-cbox-wap .cbox-post-wap .post-action-wap .action-function-wap .function-list-wap .list-upload-wap .upload-mutual-wap{-webkit-box-sizing:content-box;box-sizing:content-box}.am-menu{position:relative;padding:0;margin:0}.am-menu ul{padding:0;margin:0}.am-menu li{list-style:none}.am-menu a:after,.am-menu a:before{display:inline-block;font:normal normal normal 1.6rem/1 FontAwesome,sans-serif;font-size:inherit;text-rendering:auto;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;-webkit-transform:translate(0,0);-ms-transform:translate(0,0);transform:translate(0,0)}.am-menu-sub{z-index:1050}.am-menu-toggle{display:none;z-index:1015}.am-menu-toggle img{display:inline-block;height:16px;width:auto;vertical-align:middle}.am-menu-nav a{display:block;padding:.8rem 0;-webkit-transition:all .45s;transition:all .45s}.am-menu-default .am-menu-nav{padding-top:8px;padding-bottom:8px}.am-menu-default .am-menu-nav a{text-align:center;height:36px;line-height:36px;display:block;word-wrap:normal;text-overflow:ellipsis;white-space:nowrap;overflow:hidden;padding:0;color:#0e90d2}.am-menu-default .am-menu-nav>.am-parent>a{position:relative;-webkit-transition:.15s;transition:.15s}.am-menu-default .am-menu-nav>.am-parent>a:after{content:"\f107";margin-left:5px;-webkit-transition:.15s;transition:.15s}.am-menu-default .am-menu-nav>.am-parent>a:before{position:absolute;top:100%;margin-top:-16px;left:50%;margin-left:-12px;content:"\f0d8";display:none;color:#f1f1f1;font-size:24px}.am-menu-default .am-menu-nav>.am-parent.am-open>a{color:#095f8a}.am-menu-default .am-menu-nav>.am-parent.am-open>a:before{display:block}.am-menu-default .am-menu-nav>.am-parent.am-open>a:after{-webkit-transform:rotate(-180deg);-ms-transform:rotate(-180deg);transform:rotate(-180deg)}.am-menu-default .am-menu-sub{position:absolute;left:5px;right:5px;background-color:#f1f1f1;border-radius:2px;padding-top:8px;padding-bottom:8px}.am-menu-default .am-menu-sub>li>a{color:#555}@media only screen and (min-width:641px){.am-menu-default .am-menu-nav li{width:auto;float:left;clear:none;display:inline}.am-menu-default .am-menu-nav a{padding-left:1.5rem;padding-right:.5rem}}.am-menu-dropdown1{position:relative}.am-menu-dropdown1 .am-menu-toggle{position:absolute;right:5px;top:-47px;display:block;width:44px;height:44px;line-height:44px;text-align:center;color:#fff}.am-menu-dropdown1 a{-webkit-transition:all .4s;transition:all .4s;display:block;word-wrap:normal;text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.am-menu-dropdown1 .am-menu-nav{position:absolute;left:0;right:0;z-index:1050}.am-menu-dropdown1 .am-menu-nav a{padding:.8rem}.am-menu-dropdown1 .am-menu-nav>li{width:100%}.am-menu-dropdown1 .am-menu-nav>li.am-parent>a{position:relative}.am-menu-dropdown1 .am-menu-nav>li.am-parent>a::before{content:"\f067";position:absolute;right:1rem;top:1.4rem}.am-menu-dropdown1 .am-menu-nav>li.am-parent.am-open>a{background-color:#0c80ba;border-bottom:none;color:#fff}.am-menu-dropdown1 .am-menu-nav>li.am-parent.am-open>a:before{content:"\f068"}.am-menu-dropdown1 .am-menu-nav>li.am-parent.am-open>a:after{content:"";display:inline-block;width:0;height:0;vertical-align:middle;border-top:8px solid #0c80ba;border-right:8px solid transparent;border-left:8px solid transparent;border-bottom:0 dotted;-webkit-transform:rotate(360deg);-ms-transform:rotate(360deg);transform:rotate(360deg);position:absolute;top:100%;left:50%;margin-left:-4px}.am-menu-dropdown1 .am-menu-nav>li>a{border-bottom:1px solid #0b76ac;-webkit-box-shadow:inset 0 1px 0 rgba(255,255,255,.05);box-shadow:inset 0 1px 0 rgba(255,255,255,.05);background-color:#0e90d2;color:#fff;height:49px;line-height:49px;padding:0;text-indent:10px}.am-menu-dropdown1 .am-menu-sub{background-color:#fff}.am-menu-dropdown1 .am-menu-sub a{color:#555;height:44px;line-height:44px;text-indent:5px;padding:0}.am-menu-dropdown1 .am-menu-sub a:before{content:"\f105";color:#aaa;font-size:16px;margin-right:5px}.am-menu-dropdown2 .am-menu-toggle{position:absolute;right:5px;top:-47px;display:block;width:44px;height:44px;line-height:44px;text-align:center;color:#fff}.am-menu-dropdown2 .am-menu-nav{position:absolute;left:0;right:0;background-color:#f5f5f5;-webkit-box-shadow:0 0 5px rgba(0,0,0,.2);box-shadow:0 0 5px rgba(0,0,0,.2);z-index:1050;padding-top:8px;padding-bottom:8px}.am-menu-dropdown2 .am-menu-nav a{height:38px;line-height:38px;padding:0;text-align:center}.am-menu-dropdown2 .am-menu-nav>li>a{color:#333}.am-menu-dropdown2 .am-menu-nav>li.am-parent>a{position:relative}.am-menu-dropdown2 .am-menu-nav>li.am-parent>a:after{content:"\f107";margin-left:5px;-webkit-transition:-webkit-transform .2s;transition:-webkit-transform .2s;transition:transform .2s;transition:transform .2s,-webkit-transform .2s}.am-menu-dropdown2 .am-menu-nav>li.am-parent.am-open>a{position:relative}.am-menu-dropdown2 .am-menu-nav>li.am-parent.am-open>a:after{color:#0e90d2;-webkit-transform:rotate(180deg);-ms-transform:rotate(180deg);transform:rotate(180deg)}.am-menu-dropdown2 .am-menu-nav>li.am-parent.am-open>a:before{position:absolute;top:100%;margin-top:-16px;left:50%;margin-left:-12px;font-size:24px;content:"\f0d8";color:rgba(0,0,0,.2)}.am-menu-dropdown2 .am-menu-sub{position:absolute;left:5px;right:5px;padding:8px 0;border-radius:2px;-webkit-box-shadow:0 0 3px rgba(0,0,0,.15);box-shadow:0 0 3px rgba(0,0,0,.15);background-color:#fff;z-index:1055}.am-menu-dropdown2 .am-menu-sub a{padding:0;height:35px;color:#555;line-height:35px}@media only screen and (min-width:641px){.am-menu-dropdown2 .am-menu-toggle{display:none!important}.am-menu-dropdown2 .am-menu-nav{position:static;display:block}.am-menu-dropdown2 .am-menu-nav>li{float:none;width:auto;display:inline-block}.am-menu-dropdown2 .am-menu-nav>li a{padding-left:1.5rem;padding-right:1.5rem}.am-menu-dropdown2 .am-menu-sub{left:auto;right:auto}.am-menu-dropdown2 .am-menu-sub>li{float:none;width:auto}.am-menu-dropdown2 .am-menu-sub a{padding-left:2rem;padding-right:2rem}}.am-menu-slide1 .am-menu-toggle{position:absolute;right:5px;top:-47px;display:block;width:44px;height:44px;line-height:44px;text-align:center;color:#fff}.am-menu-slide1 .am-menu-nav{background-color:#f5f5f5;padding-top:8px;padding-bottom:8px}.am-menu-slide1 .am-menu-nav.am-in:before{display:inline-block;font:normal normal normal 1.6rem/1 FontAwesome,sans-serif;font-size:inherit;text-rendering:auto;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;-webkit-transform:translate(0,0);-ms-transform:translate(0,0);transform:translate(0,0);content:"\f0d8";font-size:24px;color:#f5f5f5;position:absolute;right:16px;top:-16px}.am-menu-slide1 .am-menu-nav a{line-height:38px;height:38px;display:block;padding:0;text-align:center}.am-menu-slide1 .am-menu-nav>li>a{color:#333;display:block;word-wrap:normal;text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.am-menu-slide1 .am-menu-nav>.am-parent>a{position:relative;-webkit-transition:.15s;transition:.15s}.am-menu-slide1 .am-menu-nav>.am-parent>a:after{content:"\f107";margin-left:5px;-webkit-transition:.15s;transition:.15s}.am-menu-slide1 .am-menu-nav>.am-parent>a:before{position:absolute;top:100%;margin-top:-16px;left:50%;margin-left:-12px;content:"\f0d8";display:none;color:#0e90d2;font-size:24px}.am-menu-slide1 .am-menu-nav>.am-parent.am-open>a{color:#0e90d2}.am-menu-slide1 .am-menu-nav>.am-parent.am-open>a:before{display:block}.am-menu-slide1 .am-menu-nav>.am-parent.am-open>a:after{-webkit-transform:rotate(-180deg);-ms-transform:rotate(-180deg);transform:rotate(-180deg)}.am-menu-slide1 .am-menu-sub{position:absolute;left:5px;right:5px;background-color:#0e90d2;border-radius:2px;padding-top:8px;padding-bottom:8px}.am-menu-slide1 .am-menu-sub>li>a{color:#fff}@media only screen and (min-width:641px){.am-menu-slide1 .am-menu-toggle{display:none!important}.am-menu-slide1 .am-menu-nav{background-color:#f5f5f5;display:block}.am-menu-slide1 .am-menu-nav.am-in:before{display:none}.am-menu-slide1 .am-menu-nav li{width:auto;clear:none}.am-menu-slide1 .am-menu-nav li a{padding-left:1.5rem;padding-right:1.5rem}}.am-menu-offcanvas1 .am-menu-toggle{position:absolute;right:5px;top:-47px;display:block;width:44px;height:44px;line-height:44px;text-align:center;color:#fff}.am-menu-offcanvas1 .am-menu-nav{border-bottom:1px solid rgba(0,0,0,.3);-webkit-box-shadow:0 1px 0 rgba(255,255,255,.05);box-shadow:0 1px 0 rgba(255,255,255,.05)}.am-menu-offcanvas1 .am-menu-nav>li>a{height:44px;line-height:44px;text-indent:15px;padding:0;position:relative;color:#ccc;border-top:1px solid rgba(0,0,0,.3);-webkit-box-shadow:inset 0 1px 0 rgba(255,255,255,.05);box-shadow:inset 0 1px 0 rgba(255,255,255,.05);text-shadow:0 1px 0 rgba(0,0,0,.5)}.am-menu-offcanvas1 .am-menu-nav>.am-open>a,.am-menu-offcanvas1 .am-menu-nav>li>a:focus,.am-menu-offcanvas1 .am-menu-nav>li>a:hover{background-color:#474747;color:#fff;outline:0}.am-menu-offcanvas1 .am-menu-nav>.am-active>a{background-color:#1a1a1a;color:#fff}.am-menu-offcanvas1 .am-menu-nav>.am-parent>a{-webkit-transition:all .3s;transition:all .3s}.am-menu-offcanvas1 .am-menu-nav>.am-parent>a:after{content:"\f104";position:absolute;right:1.5rem;top:1.3rem}.am-menu-offcanvas1 .am-menu-nav>.am-parent.am-open>a:after{content:"\f107"}.am-menu-offcanvas1 .am-menu-sub{border-top:1px solid rgba(0,0,0,.3);-webkit-box-shadow:inset 0 1px 0 rgba(255,255,255,.05);box-shadow:inset 0 1px 0 rgba(255,255,255,.05);padding:5px 0 5px 15px;background-color:#1a1a1a;font-size:1.4rem}.am-menu-offcanvas1 .am-menu-sub a{color:#eee}.am-menu-offcanvas1 .am-menu-sub a:hover{color:#fff}.am-menu-offcanvas1 .am-nav-divider{border-top:1px solid #1a1a1a}.am-menu-offcanvas2 .am-menu-toggle{position:absolute;right:5px;top:-47px;display:block;width:44px;height:44px;line-height:44px;text-align:center;color:#fff}.am-menu-offcanvas2 .am-menu-nav{padding:10px 5px}.am-menu-offcanvas2 .am-menu-nav>li{padding:5px}.am-menu-offcanvas2 .am-menu-nav>li>a{-webkit-transition:all .3s;transition:all .3s;background-color:#404040;color:#ccc;display:block;word-wrap:normal;text-overflow:ellipsis;white-space:nowrap;overflow:hidden;border:1px solid rgba(0,0,0,.3);-webkit-box-shadow:inset 0 1px 0 rgba(255,255,255,.05);box-shadow:inset 0 1px 0 rgba(255,255,255,.05);text-shadow:0 1px 0 rgba(0,0,0,.5);height:44px;line-height:44px;padding:0;text-align:center}.am-menu-offcanvas2 .am-menu-nav>li>a:focus,.am-menu-offcanvas2 .am-menu-nav>li>a:hover{background-color:#262626;color:#fff;outline:0}.am-menu-offcanvas2 .am-menu-nav>.am-active>a{background-color:#262626;color:#fff}.am-menu-stack .am-menu-nav{border-bottom:1px solid #dedede;-webkit-box-shadow:0 1px 0 rgba(255,255,255,.05);box-shadow:0 1px 0 rgba(255,255,255,.05)}.am-menu-stack .am-menu-nav>.am-parent>a{-webkit-transition:all .3s;transition:all .3s}.am-menu-stack .am-menu-nav>.am-parent>a:after{content:"\f105";position:absolute;right:1.5rem;top:1.3rem;-webkit-transition:all .15s;transition:all .15s}.am-menu-stack .am-menu-nav>.am-parent.am-open>a:after{-webkit-transform:rotate(90deg);-ms-transform:rotate(90deg);transform:rotate(90deg)}.am-menu-stack .am-menu-nav>li>a{position:relative;color:#333;background-color:#f5f5f5;border-top:1px solid #dedede;-webkit-box-shadow:inset 0 1px 0 rgba(255,255,255,.05);box-shadow:inset 0 1px 0 rgba(255,255,255,.05);height:49px;line-height:49px;text-indent:10px;padding:0}.am-menu-stack .am-menu-nav>.am-open>a,.am-menu-stack .am-menu-nav>li>a:focus,.am-menu-stack .am-menu-nav>li>a:hover{background-color:#e5e5e5;color:#222;outline:0}.am-menu-stack .am-menu-sub{padding:0;font-size:1.4rem;border-top:1px solid #dedede}.am-menu-stack .am-menu-sub a{border-bottom:1px solid #dedede;padding-left:2rem;color:#444}.am-menu-stack .am-menu-sub a:hover{color:#333}.am-menu-stack .am-menu-sub li:last-child a{border-bottom:none}.am-menu-stack .am-menu-sub>li>a{height:44px;line-height:44px;text-indent:15px;padding:0}@media only screen and (min-width:641px){.am-menu-stack .am-menu-nav{background-color:#f5f5f5}.am-menu-stack .am-menu-nav>li{float:left;width:auto;clear:none!important;display:inline-block}.am-menu-stack .am-menu-nav>li a{padding-left:1.5rem;padding-right:1.5rem}.am-menu-stack .am-menu-nav>li.am-parent>a:after{position:static;content:"\f107"}.am-menu-stack .am-menu-nav>li.am-parent.am-open a{border-bottom:none}.am-menu-stack .am-menu-nav>li.am-parent.am-open a:after{-webkit-transform:rotateX(-180deg);transform:rotateX(-180deg)}.am-menu-stack .am-menu-nav>li.am-parent.am-open .am-menu-sub{background-color:#e5e5e5}.am-menu-stack .am-menu-sub{position:absolute;left:0;right:0;background-color:#ddd;border-top:none}.am-menu-stack .am-menu-sub li{width:auto;float:left;clear:none}}.am-navbar{position:fixed;left:0;bottom:0;width:100%;height:49px;line-height:49px;z-index:1010}.am-navbar ul{padding-left:0;margin:0;list-style:none;width:100%}.am-navbar .am-navbar-nav{padding-left:8px;padding-right:8px;text-align:center;overflow:hidden}.am-navbar .am-navbar-nav li{display:table-cell;width:1%;float:none}.am-navbar-nav{position:relative;z-index:1015}.am-navbar-nav a{display:inline-block;width:100%;height:49px;line-height:20px}.am-navbar-nav a img{display:block;vertical-align:middle;height:24px;width:24px;margin:4px auto 0}.am-navbar-nav a [class*=am-icon]{width:24px;height:24px;margin:4px auto 0;display:block;line-height:24px}.am-navbar-nav a [class*=am-icon]:before{font-size:22px;vertical-align:middle}.am-navbar-nav a .am-navbar-label{padding-top:2px;line-height:1;font-size:12px;display:block;word-wrap:normal;text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.am-navbar-more [class*=am-icon-]{-webkit-transition:.15s;transition:.15s}.am-navbar-more.am-active [class*=am-icon-]{-webkit-transform:rotateX(-180deg);transform:rotateX(-180deg)}.am-navbar-actions{position:absolute;bottom:49px;right:0;left:0;z-index:1009;opacity:0;-webkit-transition:.3s;transition:.3s;-webkit-transform:translate(0,100%);-ms-transform:translate(0,100%);transform:translate(0,100%)}.am-navbar-actions.am-active{opacity:1;-webkit-transform:translate(0,0);-ms-transform:translate(0,0);transform:translate(0,0)}.am-navbar-actions li{line-height:42px;position:relative}.am-navbar-actions li a{display:block;width:100%;height:40px;-webkit-box-shadow:inset 0 1px rgba(220,220,220,.25);box-shadow:inset 0 1px rgba(220,220,220,.25);padding-left:20px;padding-right:36px}.am-navbar-actions li a :after{font-family:FontAwesome,sans-serif;content:"\f105";display:inline-block;position:absolute;top:0;right:20px}.am-navbar-actions li a img{vertical-align:middle;height:20px;width:20px;display:inline}#am-navbar-qrcode{width:220px;height:220px;margin-left:-110px}#am-navbar-qrcode .am-modal-bd{padding:10px}#am-navbar-qrcode canvas{display:block;width:200px;height:200px}.am-with-fixed-navbar{padding-bottom:54px}.am-navbar-default a{color:#fff}.am-navbar-default .am-navbar-nav{background-color:#0e90d2}.am-navbar-default .am-navbar-actions{background-color:#0d86c4}.am-navbar-default .am-navbar-actions a{border-bottom:1px solid #0b6fa2}.am-pagination{position:relative}.am-pagination-default{margin-left:10px;margin-right:10px;font-size:1.6rem}.am-pagination-default .am-pagination-next,.am-pagination-default .am-pagination-prev{float:none}.am-pagination-select{margin-left:10px;margin-right:10px;font-size:1.6rem}.am-pagination-select>li>a{line-height:36px;background-color:#eee;padding:0 15px;border:0;color:#555}.am-pagination-select .am-pagination-select{position:absolute;top:0;left:50%;margin-left:-35px;width:70px;height:36px;text-align:center;border-radius:2px}.am-pagination-select .am-pagination-select select{display:block;border:0;line-height:36px;width:70px;height:36px;border-radius:2px;color:#555;background-color:#eee;-webkit-appearance:none;-moz-appearance:none;appearance:none;padding-left:18px}.am-paragraph p{margin:10px 0}.am-paragraph img{max-width:100%}.am-paragraph h1,.am-paragraph h2,.am-paragraph h3,.am-paragraph h4,.am-paragraph h5,.am-paragraph h6{color:#222}.am-paragraph table{max-width:none}.am-paragraph-table-container{overflow:hidden;background:#eee;max-width:none}.am-paragraph-table-container table{width:100%;max-width:none}.am-paragraph-table-container table th{background:#bce5fb;height:40px;border:1px solid #999;text-align:center}.am-paragraph-table-container table td{border:1px solid #999;text-align:center;vertical-align:middle;background:#fff}.am-paragraph-table-container table td p{text-indent:0;font-size:1.4rem}.am-paragraph-table-container table td a{font-size:1.4rem}.am-paragraph-default{margin:0 10px;color:#333;background-color:transparent}.am-paragraph-default p{font-size:1.4rem}.am-paragraph-default img{max-width:98%;display:block;margin:5px auto;border:1px solid #eee;padding:2px}.am-paragraph-default a{color:#0e90d2}.am-slider-a1{-webkit-box-shadow:0 1px 4px rgba(0,0,0,.2);box-shadow:0 1px 4px rgba(0,0,0,.2)}.am-slider-a1 .am-viewport{max-height:2000px;-webkit-transition:all 1s ease;transition:all 1s ease}.loading .am-slider-a1 .am-viewport{max-height:300px}.am-slider-a1 .am-control-nav{width:100%;position:absolute;bottom:5px;text-align:center;line-height:0}.am-slider-a1 .am-control-nav li{margin:0 6px;display:inline-block}.am-slider-a1 .am-control-nav li a{width:8px;height:8px;display:block;background-color:rgba(0,0,0,.5);cursor:pointer;text-indent:-9999px;border-radius:50%;-webkit-box-shadow:inset 0 0 3px rgba(0,0,0,.3);box-shadow:inset 0 0 3px rgba(0,0,0,.3)}.am-slider-a1 .am-control-nav li a:hover{background-color:rgba(0,0,0,.7)}.am-slider-a1 .am-control-nav li a.am-active{background-color:#0e90d2;cursor:default}.am-slider-a1 .am-direction-nav,.am-slider-a1 .am-pauseplay{display:none}.am-slider-a2{-webkit-box-shadow:0 1px 4px rgba(0,0,0,.2);box-shadow:0 1px 4px rgba(0,0,0,.2)}.am-slider-a2 .am-viewport{max-height:2000px;-webkit-transition:all 1s ease;transition:all 1s ease}.loading .am-slider-a2 .am-viewport{max-height:300px}.am-slider-a2 .am-control-nav{width:100%;position:absolute;bottom:5px;text-align:center;line-height:0}.am-slider-a2 .am-control-nav li{margin:0 6px;display:inline-block}.am-slider-a2 .am-control-nav li a{width:8px;height:8px;display:block;background-color:rgba(0,0,0,.5);cursor:pointer;text-indent:-9999px;-webkit-box-shadow:inset 0 0 3px rgba(0,0,0,.3);box-shadow:inset 0 0 3px rgba(0,0,0,.3)}.am-slider-a2 .am-control-nav li a:hover{background-color:rgba(0,0,0,.7)}.am-slider-a2 .am-control-nav li a.am-active{background:#0e93d7;cursor:default}.am-slider-a2 .am-direction-nav,.am-slider-a2 .am-pauseplay{display:none}.am-slider-a3{margin-bottom:20px;-webkit-box-shadow:0 1px 4px rgba(0,0,0,.2);box-shadow:0 1px 4px rgba(0,0,0,.2)}.am-slider-a3 .am-viewport{max-height:2000px;-webkit-transition:all 1s ease;transition:all 1s ease}.loading .am-slider-a3 .am-viewport{max-height:300px}.am-slider-a3 .am-control-nav{width:100%;position:absolute;bottom:-20px;text-align:center;height:20px;background-color:#000;padding-top:5px;line-height:0}.am-slider-a3 .am-control-nav li{margin:0 6px;display:inline-block}.am-slider-a3 .am-control-nav li a{width:8px;height:8px;display:block;background-color:rgba(0,0,0,.5);cursor:pointer;text-indent:-9999px;border-radius:50%;-webkit-box-shadow:inset 0 0 3px rgba(200,200,200,.3);box-shadow:inset 0 0 3px rgba(200,200,200,.3)}.am-slider-a3 .am-control-nav li a:hover{background-color:rgba(0,0,0,.7)}.am-slider-a3 .am-control-nav li a.am-active{background:#0e90d2;cursor:default}.am-slider-a3 .am-direction-nav,.am-slider-a3 .am-pauseplay{display:none}.am-slider-a4{margin-bottom:30px;-webkit-box-shadow:0 1px 4px rgba(0,0,0,.2);box-shadow:0 1px 4px rgba(0,0,0,.2)}.am-slider-a4 .am-viewport{max-height:2000px;-webkit-transition:all 1s ease;transition:all 1s ease}.loading .am-slider-a4 .am-viewport{max-height:300px}.am-slider-a4 .am-control-nav{width:100%;position:absolute;bottom:-15px;text-align:center;line-height:0}.am-slider-a4 .am-control-nav li{margin:0 6px;display:inline-block}.am-slider-a4 .am-control-nav li a{width:8px;height:8px;display:block;background-color:rgba(0,0,0,.5);cursor:pointer;text-indent:-9999px;border-radius:50%;-webkit-box-shadow:inset 0 0 3px rgba(0,0,0,.3);box-shadow:inset 0 0 3px rgba(0,0,0,.3)}.am-slider-a4 .am-control-nav li a:hover{background-color:rgba(0,0,0,.7)}.am-slider-a4 .am-control-nav li a.am-active{background-color:#0e90d2;cursor:default}.am-slider-a4 .am-direction-nav,.am-slider-a4 .am-pauseplay{display:none}.am-slider-a5{-webkit-box-shadow:0 1px 4px rgba(0,0,0,.2);box-shadow:0 1px 4px rgba(0,0,0,.2)}.am-slider-a5 .am-viewport{max-height:2000px;-webkit-transition:all 1s ease;transition:all 1s ease}.loading .am-slider-a5 .am-viewport{max-height:300px}.am-slider-a5 .am-control-nav{width:100%;position:absolute;text-align:center;height:6px;display:table;bottom:0;font-size:0;line-height:0}.am-slider-a5 .am-control-nav li{display:table-cell}.am-slider-a5 .am-control-nav li a{width:100%;height:6px;display:block;background-color:rgba(0,0,0,.5);cursor:pointer;text-indent:-9999px}.am-slider-a5 .am-control-nav li a:hover{background-color:rgba(0,0,0,.7)}.am-slider-a5 .am-control-nav li a.am-active{background-color:#0e90d2;cursor:default}.am-slider-a5 .am-direction-nav,.am-slider-a5 .am-pauseplay{display:none}.am-slider-b1{-webkit-box-shadow:0 1px 4px rgba(0,0,0,.2);box-shadow:0 1px 4px rgba(0,0,0,.2)}.am-slider-b1 .am-viewport{max-height:2000px;-webkit-transition:all 1s ease;transition:all 1s ease}.loading .am-slider-b1 .am-viewport{max-height:300px}.am-slider-b1 .am-direction-nav a{-webkit-box-sizing:content-box;box-sizing:content-box;display:block;width:24px;height:24px;padding:8px 0;margin:-20px 0 0;position:absolute;top:50%;z-index:10;overflow:hidden;opacity:.45;cursor:pointer;color:#fff;text-shadow:1px 1px 0 rgba(255,255,255,.3);background-color:rgba(0,0,0,.5);font-size:0;text-align:center;-webkit-transition:all .3s ease;transition:all .3s ease}.am-slider-b1 .am-direction-nav a:before{display:inline-block;font:normal normal normal 1.6rem/1 FontAwesome,sans-serif;font-size:inherit;text-rendering:auto;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;-webkit-transform:translate(0,0);-ms-transform:translate(0,0);transform:translate(0,0);content:"\f053";font-size:24px}.am-slider-b1 .am-direction-nav a.am-prev{left:0;padding-right:5px;border-bottom-right-radius:5px;border-top-right-radius:5px}.am-slider-b1 .am-direction-nav a.am-next{right:0;padding-left:5px;border-bottom-left-radius:5px;border-top-left-radius:5px}.am-slider-b1 .am-direction-nav a.am-next:before{content:"\f054"}.am-slider-b1 .am-direction-nav .am-disabled{opacity:0!important;cursor:default}.am-slider-b1:hover .am-prev{opacity:.7}.am-slider-b1:hover .am-prev:hover{opacity:1}.am-slider-b1:hover .am-next{opacity:.7}.am-slider-b1:hover .am-next:hover{opacity:1}.am-slider-b1 .am-control-nav,.am-slider-b1 .am-pauseplay{display:none}.am-slider-b2{-webkit-box-shadow:0 1px 4px rgba(0,0,0,.2);box-shadow:0 1px 4px rgba(0,0,0,.2)}.am-slider-b2 .am-viewport{max-height:2000px;-webkit-transition:all 1s ease;transition:all 1s ease}.loading .am-slider-b2 .am-viewport{max-height:300px}.am-slider-b2 .am-direction-nav a{-webkit-box-sizing:content-box;box-sizing:content-box;display:block;width:24px;height:24px;padding:4px;margin:-16px 0 0;position:absolute;top:50%;z-index:10;overflow:hidden;opacity:.45;cursor:pointer;color:#fff;text-shadow:1px 1px 0 rgba(255,255,255,.3);background-color:rgba(0,0,0,.5);font-size:0;text-align:center;border-radius:50%;-webkit-transition:all .3s ease;transition:all .3s ease}.am-slider-b2 .am-direction-nav a:before{display:inline-block;font:normal normal normal 1.6rem/1 FontAwesome,sans-serif;font-size:inherit;text-rendering:auto;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;-webkit-transform:translate(0,0);-ms-transform:translate(0,0);transform:translate(0,0);content:"\f053";font-size:16px;line-height:24px}.am-slider-b2 .am-direction-nav a.am-prev{left:5px}.am-slider-b2 .am-direction-nav a.am-next{right:5px}.am-slider-b2 .am-direction-nav a.am-next:before{content:"\f054"}.am-slider-b2 .am-direction-nav .am-disabled{opacity:0!important;cursor:default}.am-slider-b2:hover .am-prev{opacity:.7}.am-slider-b2:hover .am-prev:hover{opacity:1}.am-slider-b2:hover .am-next{opacity:.7}.am-slider-b2:hover .am-next:hover{opacity:1}.am-slider-b2 .am-control-nav,.am-slider-b2 .am-pauseplay{display:none}.am-slider-b3{margin:15px 30px;-webkit-box-shadow:0 1px 4px rgba(0,0,0,.2);box-shadow:0 1px 4px rgba(0,0,0,.2)}.am-slider-b3 .am-viewport{max-height:2000px;-webkit-transition:all 1s ease;transition:all 1s ease}.loading .am-slider-b3 .am-viewport{max-height:300px}.am-slider-b3 .am-direction-nav a{-webkit-box-sizing:content-box;box-sizing:content-box;display:block;width:24px;height:24px;padding:4px;margin:-16px 0 0;position:absolute;top:50%;z-index:10;overflow:hidden;opacity:.45;cursor:pointer;color:#333;text-shadow:1px 1px 0 rgba(255,255,255,.3);font-size:0;-webkit-transition:all .3s ease;transition:all .3s ease}.am-slider-b3 .am-direction-nav a:before{display:inline-block;font:normal normal normal 1.6rem/1 FontAwesome,sans-serif;font-size:inherit;text-rendering:auto;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;-webkit-transform:translate(0,0);-ms-transform:translate(0,0);transform:translate(0,0);content:"\f053";font-size:24px}.am-slider-b3 .am-direction-nav a.am-prev{left:-25px}.am-slider-b3 .am-direction-nav a.am-next{right:-25px;text-align:right}.am-slider-b3 .am-direction-nav a.am-next:before{content:"\f054"}.am-slider-b3 .am-direction-nav .am-disabled{opacity:0!important;cursor:default}.am-slider-b3:hover .am-prev{opacity:.7}.am-slider-b3:hover .am-prev:hover{opacity:1}.am-slider-b3:hover .am-next{opacity:.7}.am-slider-b3:hover .am-next:hover{opacity:1}.am-slider-b3 .am-control-nav,.am-slider-b3 .am-pauseplay{display:none}.am-slider-b4{margin:15px 20px;-webkit-box-shadow:0 1px 4px rgba(0,0,0,.2);box-shadow:0 1px 4px rgba(0,0,0,.2)}.am-slider-b4 .am-viewport{max-height:2000px;-webkit-transition:all 1s ease;transition:all 1s ease}.loading .am-slider-b4 .am-viewport{max-height:300px}.am-slider-b4 .am-direction-nav a{position:absolute;top:50%;z-index:10;display:block;-webkit-box-sizing:content-box;box-sizing:content-box;width:24px;height:24px;margin:-16px 0 0;padding:4px;overflow:hidden;opacity:.45;background-color:rgba(0,0,0,.8);cursor:pointer;text-shadow:1px 1px 0 rgba(255,255,255,.3);font-size:0;border-radius:50%;text-align:center;color:#fff;-webkit-transition:all .3s ease;transition:all .3s ease}.am-slider-b4 .am-direction-nav a:before{display:inline-block;font:normal normal normal 1.6rem/1 FontAwesome,sans-serif;font-size:inherit;text-rendering:auto;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;-webkit-transform:translate(0,0);-ms-transform:translate(0,0);transform:translate(0,0);content:"\f053";font-size:20px;line-height:24px}.am-slider-b4 .am-direction-nav a.am-prev{left:-15px}.am-slider-b4 .am-direction-nav a.am-next{right:-15px}.am-slider-b4 .am-direction-nav a.am-next:before{content:"\f054"}.am-slider-b4 .am-direction-nav .am-disabled{opacity:0!important;cursor:default}.am-slider-b4:hover .am-prev{opacity:.7}.am-slider-b4:hover .am-prev:hover{opacity:.9}.am-slider-b4:hover .am-next{opacity:.7}.am-slider-b4:hover .am-next:hover{opacity:.9}.am-slider-b4 .am-control-nav,.am-slider-b4 .am-pauseplay{display:none}.am-slider-c1{-webkit-box-shadow:0 1px 4px rgba(0,0,0,.2);box-shadow:0 1px 4px rgba(0,0,0,.2)}.am-slider-c1 .am-viewport{max-height:2000px;-webkit-transition:all 1s ease;transition:all 1s ease}.loading .am-slider-c1 .am-viewport{max-height:300px}.am-slider-c1 .am-control-nav{position:absolute;bottom:0;display:table;width:100%;height:6px;font-size:0;line-height:0;text-align:center}.am-slider-c1 .am-control-nav li{display:table-cell;width:1%}.am-slider-c1 .am-control-nav li a{width:100%;height:6px;display:block;background-color:rgba(0,0,0,.7);cursor:pointer;text-indent:-9999px}.am-slider-c1 .am-control-nav li a:hover{background:rgba(0,0,0,.8)}.am-slider-c1 .am-control-nav li a.am-active{background-color:#0e90d2;cursor:default}.am-slider-c1 .am-slider-desc{background-color:rgba(0,0,0,.6);position:absolute;bottom:6px;padding:8px;width:100%;color:#fff;display:block;word-wrap:normal;text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.am-slider-c1 .am-direction-nav,.am-slider-c1 .am-pauseplay{display:none}.am-slider-c2{-webkit-box-shadow:0 1px 4px rgba(0,0,0,.2);box-shadow:0 1px 4px rgba(0,0,0,.2)}.am-slider-c2 .am-viewport{max-height:2000px;-webkit-transition:all 1s ease;transition:all 1s ease}.loading .am-slider-c2 .am-viewport{max-height:300px}.am-slider-c2 .am-control-nav{position:absolute;bottom:15px;right:0;height:6px;text-align:center;font-size:0;line-height:0}.am-slider-c2 .am-control-nav li{display:inline-block;margin-right:6px}.am-slider-c2 .am-control-nav li a{width:6px;height:6px;display:block;background-color:rgba(255,255,255,.4);cursor:pointer;text-indent:-9999px}.am-slider-c2 .am-control-nav li a:hover{background:rgba(230,230,230,.4)}.am-slider-c2 .am-control-nav li a.am-active{background-color:#0e90d2;cursor:default}.am-slider-c2 .am-slider-desc{background-color:rgba(0,0,0,.6);position:absolute;bottom:0;padding:8px 60px 8px 8px;width:100%;color:#fff;display:block;word-wrap:normal;text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.am-slider-c2 .am-direction-nav,.am-slider-c2 .am-pauseplay{display:none}.am-slider-c3{-webkit-box-shadow:0 1px 4px rgba(0,0,0,.2);box-shadow:0 1px 4px rgba(0,0,0,.2)}.am-slider-c3 .am-viewport{max-height:2000px;-webkit-transition:all 1s ease;transition:all 1s ease}.loading .am-slider-c3 .am-viewport{max-height:300px}.am-slider-c3 .am-slider-desc{background-color:rgba(0,0,0,.6);position:absolute;bottom:10px;right:60px;height:30px;left:0;padding-right:5px;color:#fff;display:block;word-wrap:normal;text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.am-slider-c3 .am-slider-counter{margin-right:5px;display:inline-block;height:30px;background-color:#0e90d2;width:40px;text-align:center;line-height:30px;color:#eee;font-size:1rem}.am-slider-c3 .am-slider-counter .am-active{font-size:1.8rem;font-weight:700;color:#fff}.am-slider-c3 .am-direction-nav a{-webkit-box-sizing:content-box;box-sizing:content-box;display:block;width:24px;height:24px;padding:4px 0;margin:-16px 0 0;position:absolute;top:50%;z-index:10;overflow:hidden;opacity:.45;cursor:pointer;color:#fff;text-shadow:1px 1px 0 rgba(255,255,255,.3);background-color:rgba(0,0,0,.5);font-size:0;text-align:center;-webkit-transition:all .3s ease;transition:all .3s ease}.am-slider-c3 .am-direction-nav a:before{display:inline-block;font:normal normal normal 1.6rem/1 FontAwesome,sans-serif;font-size:inherit;text-rendering:auto;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;-webkit-transform:translate(0,0);-ms-transform:translate(0,0);transform:translate(0,0);content:"\f053";font-size:16px;line-height:24px}.am-slider-c3 .am-direction-nav a.am-prev{left:0;padding-right:5px}.am-slider-c3 .am-direction-nav a.am-next{right:0;padding-left:5px}.am-slider-c3 .am-direction-nav a.am-next:before{content:"\f054"}.am-slider-c3 .am-direction-nav .am-disabled{opacity:0!important;cursor:default}.am-slider-c3:hover .am-prev{opacity:.7}.am-slider-c3:hover .am-prev:hover{opacity:1}.am-slider-c3:hover .am-next{opacity:.7}.am-slider-c3:hover .am-next:hover{opacity:1}.am-slider-c3 .am-control-nav,.am-slider-c3 .am-pauseplay{display:none}.am-slider-c4{-webkit-box-shadow:0 1px 4px rgba(0,0,0,.2);box-shadow:0 1px 4px rgba(0,0,0,.2)}.am-slider-c4 .am-viewport{max-height:2000px;-webkit-transition:all 1s ease;transition:all 1s ease}.loading .am-slider-c4 .am-viewport{max-height:300px}.am-slider-c4 .am-slider-desc{width:100%;background-color:rgba(0,0,0,.6);position:absolute;bottom:0;right:0;left:0;padding:8px 40px;color:#fff;display:block;word-wrap:normal;text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.am-slider-c4 .am-direction-nav a{-webkit-box-sizing:content-box;box-sizing:content-box;display:block;width:24px;height:24px;padding:4px 0;margin:0;position:absolute;bottom:4px;z-index:10;overflow:hidden;opacity:.45;cursor:pointer;text-shadow:1px 1px 0 rgba(255,255,255,.3);font-size:0;text-align:center;color:rgba(0,0,0,.7);-webkit-transition:all .3s ease;transition:all .3s ease}.am-slider-c4 .am-direction-nav a:before{display:inline-block;font:normal normal normal 1.6rem/1 FontAwesome,sans-serif;font-size:inherit;text-rendering:auto;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;-webkit-transform:translate(0,0);-ms-transform:translate(0,0);transform:translate(0,0);content:"\f053";font-size:24px}.am-slider-c4 .am-direction-nav a.am-prev{left:0;padding-right:5px}.am-slider-c4 .am-direction-nav a.am-next{right:0;padding-left:5px}.am-slider-c4 .am-direction-nav a.am-next:before{content:"\f054"}.am-slider-c4 .am-direction-nav .am-disabled{opacity:0!important;cursor:default}.am-slider-c4:hover .am-prev{opacity:.7}.am-slider-c4:hover .am-prev:hover{opacity:1}.am-slider-c4:hover .am-next{opacity:.7}.am-slider-c4:hover .am-next:hover{opacity:1}.am-slider-c4 .am-control-nav,.am-slider-c4 .am-pauseplay{display:none}.am-slider-d1{-webkit-box-shadow:0 1px 4px rgba(0,0,0,.2);box-shadow:0 1px 4px rgba(0,0,0,.2)}.am-slider-d1 .am-viewport{max-height:2000px;-webkit-transition:all 1s ease;transition:all 1s ease}.loading .am-slider-d1 .am-viewport{max-height:300px}.am-slider-d1 .am-slider-desc{padding:8px 35px;width:100%;color:#fff;background-color:#0e90d2}.am-slider-d1 .am-slider-title{font-weight:400;margin-bottom:2px;display:block;word-wrap:normal;text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.am-slider-d1 .am-slider-more{color:#eee;font-size:1.3rem}.am-slider-d1 .am-direction-nav a{-webkit-box-sizing:content-box;box-sizing:content-box;display:block;width:24px;height:24px;margin:0;position:absolute;bottom:18px;z-index:10;overflow:hidden;opacity:.45;cursor:pointer;text-shadow:1px 1px 0 rgba(255,255,255,.3);font-size:0;text-align:center;border:1px solid rgba(255,255,255,.9);color:rgba(255,255,255,.9);border-radius:50%;-webkit-transition:all 3s ease;transition:all 3s ease}.am-slider-d1 .am-direction-nav a:before{display:inline-block;font:normal normal normal 1.6rem/1 FontAwesome,sans-serif;font-size:inherit;text-rendering:auto;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;-webkit-transform:translate(0,0);-ms-transform:translate(0,0);transform:translate(0,0);content:"\f053";font-size:16px;line-height:24px}.am-slider-d1 .am-direction-nav a.am-prev{left:5px}.am-slider-d1 .am-direction-nav a.am-next{right:5px}.am-slider-d1 .am-direction-nav a.am-next:before{content:"\f054"}.am-slider-d1 .am-direction-nav .am-disabled{opacity:0!important;cursor:default}.am-slider-d1:hover .am-prev{opacity:.7}.am-slider-d1:hover .am-prev:hover{opacity:1}.am-slider-d1:hover .am-next{opacity:.7}.am-slider-d1:hover .am-next:hover{opacity:1}.am-slider-d1 .am-control-nav,.am-slider-d1 .am-pauseplay{display:none}.am-slider-d2{margin-bottom:20px;-webkit-box-shadow:0 1px 4px rgba(0,0,0,.2);box-shadow:0 1px 4px rgba(0,0,0,.2)}.am-slider-d2 .am-viewport{max-height:2000px;-webkit-transition:all 1s ease;transition:all 1s ease}.loading .am-slider-d2 .am-viewport{max-height:300px}.am-slider-d2 .am-slider-desc{position:absolute;left:10px;bottom:20px;right:50px;color:#fff}.am-slider-d2 .am-slider-content{background-color:rgba(0,0,0,.7);padding:10px 6px;margin-bottom:10px}.am-slider-d2 .am-slider-content p{margin:0;display:block;word-wrap:normal;text-overflow:ellipsis;white-space:nowrap;overflow:hidden;font-size:1.4rem}.am-slider-d2 .am-slider-title{font-weight:400;margin-bottom:5px;display:block;word-wrap:normal;text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.am-slider-d2 .am-slider-more{color:#eee;font-size:1.3rem;background-color:#0e90d2;padding:2px 10px}.am-slider-d2 .am-control-nav{width:100%;position:absolute;bottom:-15px;text-align:center}.am-slider-d2 .am-control-nav li{margin:0 6px;display:inline-block}.am-slider-d2 .am-control-nav li a{width:8px;height:8px;display:block;background-color:rgba(0,0,0,.5);cursor:pointer;text-indent:-9999px;border-radius:50%;font-size:0;line-height:0;-webkit-box-shadow:inset 0 0 3px rgba(0,0,0,.3);box-shadow:inset 0 0 3px rgba(0,0,0,.3)}.am-slider-d2 .am-control-nav li a:hover{background:rgba(0,0,0,.5)}.am-slider-d2 .am-control-nav li a.am-active{background:#0e90d2;cursor:default}.am-slider-d2 .am-direction-nav,.am-slider-d2 .am-pauseplay{display:none}.am-slider-d3{margin-bottom:10px;-webkit-box-shadow:0 1px 4px rgba(0,0,0,.2);box-shadow:0 1px 4px rgba(0,0,0,.2)}.am-slider-d3 .am-viewport{max-height:2000px;-webkit-transition:all 1s ease;transition:all 1s ease}.loading .am-slider-d3 .am-viewport{max-height:300px}.am-slider-d3 .am-slider-desc{position:absolute;bottom:0;color:#fff;width:100%;background-color:rgba(0,0,0,.7);padding:8px 5px}.am-slider-d3 .am-slider-desc p{margin:0;font-size:1.3rem;display:block;word-wrap:normal;text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.am-slider-d3 .am-slider-title{font-weight:400;margin-bottom:5px;display:block;word-wrap:normal;text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.am-slider-d3 .am-control-thumbs{position:static;overflow:hidden}.am-slider-d3 .am-control-thumbs li{padding:12px 4px 4px;position:relative}.am-slider-d3 .am-control-thumbs img{width:100%;display:block;opacity:.85;cursor:pointer}.am-slider-d3 .am-control-thumbs img:hover{opacity:1}.am-slider-d3 .am-control-thumbs .am-active{opacity:1;cursor:default}.am-slider-d3 .am-control-thumbs .am-active+i{position:absolute;top:0;left:50%;content:"";display:inline-block;width:0;height:0;vertical-align:middle;border-top:8px solid rgba(0,0,0,.7);border-right:8px solid transparent;border-left:8px solid transparent;border-bottom:0 dotted;-webkit-transform:rotate(360deg);-ms-transform:rotate(360deg);transform:rotate(360deg);margin-left:-4px;-webkit-transition:all .2s;transition:all .2s}.am-slider-d3 .am-direction-nav,.am-slider-d3 .am-pauseplay{display:none}.am-slider-d3 .am-control-thumbs{display:table}.am-slider-d3 .am-control-thumbs li{display:table-cell;width:1%}[data-am-widget=tabs]{margin:10px}[data-am-widget=tabs] .am-tabs-nav{width:100%;padding:0;margin:0;list-style:none;text-align:center;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex}[data-am-widget=tabs] .am-tabs-nav li{-webkit-box-flex:1;-webkit-flex:1;-ms-flex:1;flex:1}[data-am-widget=tabs] .am-tabs-nav a{display:block;word-wrap:normal;text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.am-tabs-default .am-tabs-nav{line-height:40px;background-color:#eee}.am-tabs-default .am-tabs-nav a{color:#222;line-height:42px}.am-tabs-default .am-tabs-nav>.am-active a{background-color:#0e90d2;color:#fff}.am-tabs-d2 .am-tabs-nav{background-color:#eee}.am-tabs-d2 .am-tabs-nav li{height:42px}.am-tabs-d2 .am-tabs-nav a{color:#222;line-height:42px}.am-tabs-d2 .am-tabs-nav>.am-active{position:relative;background-color:#fcfcfc;border-bottom:2px solid #0e90d2}.am-tabs-d2 .am-tabs-nav>.am-active a{line-height:40px;color:#0e90d2}.am-tabs-d2 .am-tabs-nav>.am-active:after{position:absolute;width:0;height:0;bottom:0;left:50%;margin-left:-5px;border:6px rgba(0,0,0,0) solid;content:"";z-index:1;border-bottom-color:#0e90d2}.am-titlebar{margin-top:20px;height:45px;font-size:100%}.am-titlebar h2{margin-top:0;margin-bottom:0;font-size:1.6rem}.am-titlebar .am-titlebar-title img{height:24px;width:auto}.am-titlebar-default{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;margin-left:10px;margin-right:10px;background-color:transparent;border-bottom:1px solid #dedede;line-height:44px}.am-titlebar-default a{color:#0e90d2}.am-titlebar-default .am-titlebar-title{position:relative;padding-left:12px;color:#0e90d2;font-size:1.8rem;text-align:left;font-weight:700}.am-titlebar-default .am-titlebar-title:before{content:"";position:absolute;left:2px;top:8px;bottom:8px;border-left:3px solid #0e90d2}.am-titlebar-default .am-titlebar-nav{-webkit-box-flex:1;-webkit-flex:1;-ms-flex:1;flex:1;text-align:right}.am-titlebar-default .am-titlebar-nav a{margin-right:10px}.am-titlebar-default .am-titlebar-nav a:last-child{margin-right:5px}.am-titlebar-multi{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;background-color:#f5f5f5;border-top:2px solid #3bb4f2;border-bottom:1px solid #e8e8e8}.am-titlebar-multi a{color:#0e90d2}.am-titlebar-multi .am-titlebar-title{padding-left:10px;color:#0e90d2;font-size:1.8rem;text-align:left;font-weight:700;line-height:42px}.am-titlebar-multi .am-titlebar-nav{-webkit-box-flex:1;-webkit-flex:1;-ms-flex:1;flex:1;text-align:right;line-height:42px}.am-titlebar-multi .am-titlebar-nav a{margin-right:10px}.am-titlebar-cols{position:relative;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;padding-left:10px;background-color:#f5f5f5;color:#555;font-size:18px;border-top:2px solid #e1e1e1;line-height:41px}.am-titlebar-cols a{color:#555}.am-titlebar-cols .am-titlebar-title{color:#0e90d2;margin-right:15px;border-bottom:2px solid #0e90d2;font-weight:700}.am-titlebar-cols .am-titlebar-title a{color:#0e90d2}.am-titlebar-cols .am-titlebar-nav{-webkit-box-flex:1;-webkit-flex:1;-ms-flex:1;flex:1}.am-titlebar-cols .am-titlebar-nav a{display:inline-block;margin-right:15px;line-height:41px;border-bottom:2px solid transparent}.am-titlebar-cols .am-titlebar-nav a:hover{color:#3c3c3c;border-bottom-color:#0e90d2}.am-titlebar-cols .am-titlebar-nav a:last-child{margin-right:10px}.am-wechatpay .am-wechatpay-btn{margin-top:1rem;margin-bottom:1rem} \ No newline at end of file diff --git a/public/assets/css/amazeui.min.css b/public/assets/css/amazeui.min.css new file mode 100755 index 0000000..156d8d7 --- /dev/null +++ b/public/assets/css/amazeui.min.css @@ -0,0 +1,63 @@ +/*! Amaze UI v2.7.2 | by Amaze UI Team | (c) 2016 AllMobilize, Inc. | Licensed under MIT | 2016-08-17T16:17:24+0800 */*,:after,:before{-webkit-box-sizing:border-box;box-sizing:border-box}body,html{min-height:100%}html{-ms-text-size-adjust:100%;-webkit-text-size-adjust:100%}body{margin:0}article,aside,details,figcaption,figure,footer,header,hgroup,main,menu,nav,section,summary{display:block}audio,canvas,progress,video{display:inline-block;vertical-align:baseline}audio:not([controls]){display:none;height:0}[hidden],script,template{display:none}a{background-color:transparent}a:focus{outline:thin dotted}a:active,a:hover{outline:0}a,ins{text-decoration:none}abbr[title]{border-bottom:1px dotted}b,strong{font-weight:700}pre{white-space:pre-wrap}q{quotes:"\201C" "\201D" "\2018" "\2019"}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sup{top:-.5em}sub{bottom:-.25em}img{-webkit-box-sizing:border-box;box-sizing:border-box;vertical-align:middle;border:0}svg:not(:root){overflow:hidden}figure{margin:0}code,kbd,pre,samp{font-family:Monaco,Menlo,Consolas,"Courier New",FontAwesome,monospace;font-size:1em}fieldset{border:1px solid silver;margin:0 2px;padding:.35em .625em .75em}legend{border:0;padding:0}button,input,optgroup,select,textarea{color:inherit;font:inherit;margin:0}button{overflow:visible}button,input{line-height:normal}button,select{text-transform:none}button,html input[type=button],input[type=reset],input[type=submit]{-webkit-appearance:button;cursor:pointer}input[type=checkbox],input[type=radio]{cursor:pointer;padding:0;-webkit-box-sizing:border-box;box-sizing:border-box}button[disabled],html input[disabled]{cursor:default}button::-moz-focus-inner,input::-moz-focus-inner{border:0;padding:0}input[type=number]::-webkit-inner-spin-button,input[type=number]::-webkit-outer-spin-button{height:auto}input[type=search]{-webkit-appearance:textfield;-webkit-box-sizing:content-box;box-sizing:content-box}input[type=search]::-webkit-search-cancel-button,input[type=search]::-webkit-search-decoration{-webkit-appearance:none}textarea{overflow:auto;vertical-align:top;resize:vertical}optgroup{font-weight:700}table{border-collapse:collapse;border-spacing:0}td,th{padding:0}html{font-size:10px;-webkit-tap-highlight-color:rgba(0,0,0,0)}body{position:relative;background:#fff;font-family:"Segoe UI","Lucida Grande",Helvetica,Arial,"Microsoft YaHei",FreeSans,Arimo,"Droid Sans","wenquanyi micro hei","Hiragino Sans GB","Hiragino Sans GB W3",FontAwesome,sans-serif;font-weight:400;line-height:1.6rem;color:#333;font-size:1.6rem}body,button,input,select,textarea{text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;-moz-font-feature-settings:"liga","kern"}@media only screen and (max-width:640px){body{word-wrap:break-word;-webkit-hyphens:auto;-ms-hyphens:auto;-moz-hyphens:auto;hyphens:auto}}a{color:#1f262c}a:focus,a:hover{color:#28b779}a:focus{outline:thin dotted;outline:1px auto -webkit-focus-ring-color;outline-offset:-2px}ins{background:#ffa;color:#333}mark{background:#ffa;color:#333}abbr[title],dfn[title]{cursor:help}dfn[title]{border-bottom:1px dotted;font-style:normal}address,blockquote,dl,fieldset,figure,hr,ol,p,pre,ul{margin:0 0 1.6rem 0}*+address,*+blockquote,*+dl,*+fieldset,*+figure,*+hr,*+ol,*+p,*+pre,*+ul{margin-top:1.6rem}h1,h2,h3,h4,h5,h6{margin:0 0 1.6rem 0;font-weight:600;font-size:100%}h1{font-size:1.5em}h2{font-size:1.25em}*+h1,*+h2,*+h3,*+h4,*+h5,*+h6{margin-top:2em}ol,ul{padding-left:2em}ol>li>ol,ol>li>ul,ul>li>ol,ul>li>ul{margin:1em 0}dt{font-weight:700}dt+dd{margin-top:.5em}dd{margin-left:0}dd+dt{margin-top:1em}hr{display:block;padding:0;border:0;height:0;border-top:1px solid #eee;-webkit-box-sizing:content-box;box-sizing:content-box}address{font-style:normal}blockquote{padding-top:5px;padding-bottom:5px;padding-left:15px;border-left:4px solid #ddd;font-family:Georgia,"Times New Roman",Times,Kai,"Kaiti SC",KaiTi,BiauKai,FontAwesome,serif}blockquote small{display:block;color:#999;font-family:"Segoe UI","Lucida Grande",Helvetica,Arial,"Microsoft YaHei",FreeSans,Arimo,"Droid Sans","wenquanyi micro hei","Hiragino Sans GB","Hiragino Sans GB W3",FontAwesome,sans-serif;text-align:right}blockquote p:last-of-type{margin-bottom:0}iframe{border:0}button,input:not([type=radio]):not([type=checkbox]),select{vertical-align:middle}.am-scrollbar-measure{width:100px;height:100px;overflow:scroll;position:absolute;top:-9999px}.am-container{-webkit-box-sizing:border-box;box-sizing:border-box;margin-left:auto;margin-right:auto;padding-left:1rem;padding-right:1rem;width:100%;max-width:1000px}.am-container:after,.am-container:before{content:" ";display:table}.am-container:after{clear:both}@media only screen and (min-width:641px){.am-container{padding-left:1.5rem;padding-right:1.5rem}}.am-container>.am-g{width:auto;margin-left:-1rem;margin-right:-1rem}@media only screen and (min-width:641px){.am-container>.am-g{margin-left:-1.5rem;margin-right:-1.5rem}}.am-g{margin:0 auto 10px;width:100%}.am-g:after,.am-g:before{content:" ";display:table}.am-g:after{clear:both}.am-g .am-g{margin-left:-1rem;margin-right:-1rem;width:auto}.am-g .am-g.am-g-collapse{margin-left:0;margin-right:0;width:auto}@media only screen and (min-width:641px){.am-g .am-g{margin-left:-1.5rem;margin-right:-1.5rem}}.am-g.am-g-collapse .am-g{margin-left:0;margin-right:0}.am-g-collapse [class*=am-u-]{padding-left:0;padding-right:0}.am-g-fixed{max-width:1000px}[class*=am-u-]{width:100%;padding-left:1rem;padding-right:1rem;float:left;position:relative}[class*=am-u-]+[class*=am-u-]:last-child{float:right}[class*=am-u-]+[class*=am-u-].am-u-end{float:left}@media only screen and (min-width:641px){[class*=am-u-]{padding-left:1.5rem;padding-right:1.5rem}}[class*=am-u-pull-]{left:auto}[class*=am-u-push-]{right:auto}@media only screen{.am-u-sm-1{width:8.33333333%}.am-u-sm-2{width:16.66666667%}.am-u-sm-3{width:25%}.am-u-sm-4{width:33.33333333%}.am-u-sm-5{width:41.66666667%}.am-u-sm-6{width:50%}.am-u-sm-7{width:58.33333333%}.am-u-sm-8{width:66.66666667%}.am-u-sm-9{width:75%}.am-u-sm-10{width:83.33333333%}.am-u-sm-11{width:91.66666667%}.am-u-sm-12{width:100%}.am-u-sm-pull-0{right:0}.am-u-sm-pull-1{right:8.33333333%}.am-u-sm-pull-2{right:16.66666667%}.am-u-sm-pull-3{right:25%}.am-u-sm-pull-4{right:33.33333333%}.am-u-sm-pull-5{right:41.66666667%}.am-u-sm-pull-6{right:50%}.am-u-sm-pull-7{right:58.33333333%}.am-u-sm-pull-8{right:66.66666667%}.am-u-sm-pull-9{right:75%}.am-u-sm-pull-10{right:83.33333333%}.am-u-sm-pull-11{right:91.66666667%}.am-u-sm-push-0{left:0}.am-u-sm-push-1{left:8.33333333%}.am-u-sm-push-2{left:16.66666667%}.am-u-sm-push-3{left:25%}.am-u-sm-push-4{left:33.33333333%}.am-u-sm-push-5{left:41.66666667%}.am-u-sm-push-6{left:50%}.am-u-sm-push-7{left:58.33333333%}.am-u-sm-push-8{left:66.66666667%}.am-u-sm-push-9{left:75%}.am-u-sm-push-10{left:83.33333333%}.am-u-sm-push-11{left:91.66666667%}.am-u-sm-offset-0{margin-left:0}.am-u-sm-offset-1{margin-left:8.33333333%}.am-u-sm-offset-2{margin-left:16.66666667%}.am-u-sm-offset-3{margin-left:25%}.am-u-sm-offset-4{margin-left:33.33333333%}.am-u-sm-offset-5{margin-left:41.66666667%}.am-u-sm-offset-6{margin-left:50%}.am-u-sm-offset-7{margin-left:58.33333333%}.am-u-sm-offset-8{margin-left:66.66666667%}.am-u-sm-offset-9{margin-left:75%}.am-u-sm-offset-10{margin-left:83.33333333%}.am-u-sm-offset-11{margin-left:91.66666667%}.am-u-sm-reset-order{margin-left:0;margin-right:0;left:auto;right:auto;float:left}[class*=am-u-].am-u-sm-centered{margin-left:auto;margin-right:auto;float:none}[class*=am-u-].am-u-sm-centered:last-child{float:none}[class*=am-u-].am-u-sm-uncentered{margin-left:0;margin-right:0;float:left}[class*=am-u-].am-u-sm-uncentered:last-child{float:left}}@media only screen and (min-width:641px){.am-u-md-1{width:8.33333333%}.am-u-md-2{width:16.66666667%}.am-u-md-3{width:25%}.am-u-md-4{width:33.33333333%}.am-u-md-5{width:41.66666667%}.am-u-md-6{width:50%}.am-u-md-7{width:58.33333333%}.am-u-md-8{width:66.66666667%}.am-u-md-9{width:75%}.am-u-md-10{width:83.33333333%}.am-u-md-11{width:91.66666667%}.am-u-md-12{width:100%}.am-u-md-pull-0{right:0}.am-u-md-pull-1{right:8.33333333%}.am-u-md-pull-2{right:16.66666667%}.am-u-md-pull-3{right:25%}.am-u-md-pull-4{right:33.33333333%}.am-u-md-pull-5{right:41.66666667%}.am-u-md-pull-6{right:50%}.am-u-md-pull-7{right:58.33333333%}.am-u-md-pull-8{right:66.66666667%}.am-u-md-pull-9{right:75%}.am-u-md-pull-10{right:83.33333333%}.am-u-md-pull-11{right:91.66666667%}.am-u-md-push-0{left:0}.am-u-md-push-1{left:8.33333333%}.am-u-md-push-2{left:16.66666667%}.am-u-md-push-3{left:25%}.am-u-md-push-4{left:33.33333333%}.am-u-md-push-5{left:41.66666667%}.am-u-md-push-6{left:50%}.am-u-md-push-7{left:58.33333333%}.am-u-md-push-8{left:66.66666667%}.am-u-md-push-9{left:75%}.am-u-md-push-10{left:83.33333333%}.am-u-md-push-11{left:91.66666667%}.am-u-md-offset-0{margin-left:0}.am-u-md-offset-1{margin-left:8.33333333%}.am-u-md-offset-2{margin-left:16.66666667%}.am-u-md-offset-3{margin-left:25%}.am-u-md-offset-4{margin-left:33.33333333%}.am-u-md-offset-5{margin-left:41.66666667%}.am-u-md-offset-6{margin-left:50%}.am-u-md-offset-7{margin-left:58.33333333%}.am-u-md-offset-8{margin-left:66.66666667%}.am-u-md-offset-9{margin-left:75%}.am-u-md-offset-10{margin-left:83.33333333%}.am-u-md-offset-11{margin-left:91.66666667%}.am-u-md-reset-order{margin-left:0;margin-right:0;left:auto;right:auto;float:left}[class*=am-u-].am-u-md-centered{margin-left:auto;margin-right:auto;float:none}[class*=am-u-].am-u-md-centered:last-child{float:none}[class*=am-u-].am-u-md-uncentered{margin-left:0;margin-right:0;float:left}[class*=am-u-].am-u-md-uncentered:last-child{float:left}}@media only screen and (min-width:1025px){.am-u-lg-1{width:8.33333333%}.am-u-lg-2{width:16.66666667%}.am-u-lg-3{width:25%}.am-u-lg-4{width:33.33333333%}.am-u-lg-5{width:41.66666667%}.am-u-lg-6{width:50%}.am-u-lg-7{width:58.33333333%}.am-u-lg-8{width:66.66666667%}.am-u-lg-9{width:75%}.am-u-lg-10{width:83.33333333%}.am-u-lg-11{width:91.66666667%}.am-u-lg-12{width:100%}.am-u-lg-pull-0{right:0}.am-u-lg-pull-1{right:8.33333333%}.am-u-lg-pull-2{right:16.66666667%}.am-u-lg-pull-3{right:25%}.am-u-lg-pull-4{right:33.33333333%}.am-u-lg-pull-5{right:41.66666667%}.am-u-lg-pull-6{right:50%}.am-u-lg-pull-7{right:58.33333333%}.am-u-lg-pull-8{right:66.66666667%}.am-u-lg-pull-9{right:75%}.am-u-lg-pull-10{right:83.33333333%}.am-u-lg-pull-11{right:91.66666667%}.am-u-lg-push-0{left:0}.am-u-lg-push-1{left:8.33333333%}.am-u-lg-push-2{left:16.66666667%}.am-u-lg-push-3{left:25%}.am-u-lg-push-4{left:33.33333333%}.am-u-lg-push-5{left:41.66666667%}.am-u-lg-push-6{left:50%}.am-u-lg-push-7{left:58.33333333%}.am-u-lg-push-8{left:66.66666667%}.am-u-lg-push-9{left:75%}.am-u-lg-push-10{left:83.33333333%}.am-u-lg-push-11{left:91.66666667%}.am-u-lg-offset-0{margin-left:0}.am-u-lg-offset-1{margin-left:8.33333333%}.am-u-lg-offset-2{margin-left:16.66666667%}.am-u-lg-offset-3{margin-left:25%}.am-u-lg-offset-4{margin-left:33.33333333%}.am-u-lg-offset-5{margin-left:41.66666667%}.am-u-lg-offset-6{margin-left:50%}.am-u-lg-offset-7{margin-left:58.33333333%}.am-u-lg-offset-8{margin-left:66.66666667%}.am-u-lg-offset-9{margin-left:75%}.am-u-lg-offset-10{margin-left:83.33333333%}.am-u-lg-offset-11{margin-left:91.66666667%}.am-u-lg-reset-order{margin-left:0;margin-right:0;left:auto;right:auto;float:left}[class*=am-u-].am-u-lg-centered{margin-left:auto;margin-right:auto;float:none}[class*=am-u-].am-u-lg-centered:last-child{float:none}[class*=am-u-].am-u-lg-uncentered{margin-left:0;margin-right:0;float:left}[class*=am-u-].am-u-lg-uncentered:last-child{float:left}}[class*=am-avg-]{display:block;padding:0;margin:0;list-style:none}[class*=am-avg-]:after,[class*=am-avg-]:before{content:" ";display:table}[class*=am-avg-]:after{clear:both}[class*=am-avg-]>li{display:block;height:auto;float:left}@media only screen{.am-avg-sm-1>li{width:100%}.am-avg-sm-1>li:nth-of-type(n){clear:none}.am-avg-sm-1>li:nth-of-type(1n+1){clear:both}.am-avg-sm-2>li{width:50%}.am-avg-sm-2>li:nth-of-type(n){clear:none}.am-avg-sm-2>li:nth-of-type(2n+1){clear:both}.am-avg-sm-3>li{width:33.33333333%}.am-avg-sm-3>li:nth-of-type(n){clear:none}.am-avg-sm-3>li:nth-of-type(3n+1){clear:both}.am-avg-sm-4>li{width:25%}.am-avg-sm-4>li:nth-of-type(n){clear:none}.am-avg-sm-4>li:nth-of-type(4n+1){clear:both}.am-avg-sm-5>li{width:20%}.am-avg-sm-5>li:nth-of-type(n){clear:none}.am-avg-sm-5>li:nth-of-type(5n+1){clear:both}.am-avg-sm-6>li{width:16.66666667%}.am-avg-sm-6>li:nth-of-type(n){clear:none}.am-avg-sm-6>li:nth-of-type(6n+1){clear:both}.am-avg-sm-7>li{width:14.28571429%}.am-avg-sm-7>li:nth-of-type(n){clear:none}.am-avg-sm-7>li:nth-of-type(7n+1){clear:both}.am-avg-sm-8>li{width:12.5%}.am-avg-sm-8>li:nth-of-type(n){clear:none}.am-avg-sm-8>li:nth-of-type(8n+1){clear:both}.am-avg-sm-9>li{width:11.11111111%}.am-avg-sm-9>li:nth-of-type(n){clear:none}.am-avg-sm-9>li:nth-of-type(9n+1){clear:both}.am-avg-sm-10>li{width:10%}.am-avg-sm-10>li:nth-of-type(n){clear:none}.am-avg-sm-10>li:nth-of-type(10n+1){clear:both}.am-avg-sm-11>li{width:9.09090909%}.am-avg-sm-11>li:nth-of-type(n){clear:none}.am-avg-sm-11>li:nth-of-type(11n+1){clear:both}.am-avg-sm-12>li{width:8.33333333%}.am-avg-sm-12>li:nth-of-type(n){clear:none}.am-avg-sm-12>li:nth-of-type(12n+1){clear:both}}@media only screen and (min-width:641px){.am-avg-md-1>li{width:100%}.am-avg-md-1>li:nth-of-type(n){clear:none}.am-avg-md-1>li:nth-of-type(1n+1){clear:both}.am-avg-md-2>li{width:50%}.am-avg-md-2>li:nth-of-type(n){clear:none}.am-avg-md-2>li:nth-of-type(2n+1){clear:both}.am-avg-md-3>li{width:33.33333333%}.am-avg-md-3>li:nth-of-type(n){clear:none}.am-avg-md-3>li:nth-of-type(3n+1){clear:both}.am-avg-md-4>li{width:25%}.am-avg-md-4>li:nth-of-type(n){clear:none}.am-avg-md-4>li:nth-of-type(4n+1){clear:both}.am-avg-md-5>li{width:20%}.am-avg-md-5>li:nth-of-type(n){clear:none}.am-avg-md-5>li:nth-of-type(5n+1){clear:both}.am-avg-md-6>li{width:16.66666667%}.am-avg-md-6>li:nth-of-type(n){clear:none}.am-avg-md-6>li:nth-of-type(6n+1){clear:both}.am-avg-md-7>li{width:14.28571429%}.am-avg-md-7>li:nth-of-type(n){clear:none}.am-avg-md-7>li:nth-of-type(7n+1){clear:both}.am-avg-md-8>li{width:12.5%}.am-avg-md-8>li:nth-of-type(n){clear:none}.am-avg-md-8>li:nth-of-type(8n+1){clear:both}.am-avg-md-9>li{width:11.11111111%}.am-avg-md-9>li:nth-of-type(n){clear:none}.am-avg-md-9>li:nth-of-type(9n+1){clear:both}.am-avg-md-10>li{width:10%}.am-avg-md-10>li:nth-of-type(n){clear:none}.am-avg-md-10>li:nth-of-type(10n+1){clear:both}.am-avg-md-11>li{width:9.09090909%}.am-avg-md-11>li:nth-of-type(n){clear:none}.am-avg-md-11>li:nth-of-type(11n+1){clear:both}.am-avg-md-12>li{width:8.33333333%}.am-avg-md-12>li:nth-of-type(n){clear:none}.am-avg-md-12>li:nth-of-type(12n+1){clear:both}}@media only screen and (min-width:1025px){.am-avg-lg-1>li{width:100%}.am-avg-lg-1>li:nth-of-type(n){clear:none}.am-avg-lg-1>li:nth-of-type(1n+1){clear:both}.am-avg-lg-2>li{width:50%}.am-avg-lg-2>li:nth-of-type(n){clear:none}.am-avg-lg-2>li:nth-of-type(2n+1){clear:both}.am-avg-lg-3>li{width:33.33333333%}.am-avg-lg-3>li:nth-of-type(n){clear:none}.am-avg-lg-3>li:nth-of-type(3n+1){clear:both}.am-avg-lg-4>li{width:25%}.am-avg-lg-4>li:nth-of-type(n){clear:none}.am-avg-lg-4>li:nth-of-type(4n+1){clear:both}.am-avg-lg-5>li{width:20%}.am-avg-lg-5>li:nth-of-type(n){clear:none}.am-avg-lg-5>li:nth-of-type(5n+1){clear:both}.am-avg-lg-6>li{width:16.66666667%}.am-avg-lg-6>li:nth-of-type(n){clear:none}.am-avg-lg-6>li:nth-of-type(6n+1){clear:both}.am-avg-lg-7>li{width:14.28571429%}.am-avg-lg-7>li:nth-of-type(n){clear:none}.am-avg-lg-7>li:nth-of-type(7n+1){clear:both}.am-avg-lg-8>li{width:12.5%}.am-avg-lg-8>li:nth-of-type(n){clear:none}.am-avg-lg-8>li:nth-of-type(8n+1){clear:both}.am-avg-lg-9>li{width:11.11111111%}.am-avg-lg-9>li:nth-of-type(n){clear:none}.am-avg-lg-9>li:nth-of-type(9n+1){clear:both}.am-avg-lg-10>li{width:10%}.am-avg-lg-10>li:nth-of-type(n){clear:none}.am-avg-lg-10>li:nth-of-type(10n+1){clear:both}.am-avg-lg-11>li{width:9.09090909%}.am-avg-lg-11>li:nth-of-type(n){clear:none}.am-avg-lg-11>li:nth-of-type(11n+1){clear:both}.am-avg-lg-12>li{width:8.33333333%}.am-avg-lg-12>li:nth-of-type(n){clear:none}.am-avg-lg-12>li:nth-of-type(12n+1){clear:both}}code,kbd,pre,samp{font-family:Monaco,Menlo,Consolas,"Courier New",FontAwesome,monospace}code{padding:2px 4px;font-size:1.3rem;color:#c7254e;background-color:#f8f8f8;white-space:nowrap;border-radius:0}pre{display:block;padding:1rem;margin:1rem 0;font-size:1.3rem;line-height:1.6;word-break:break-all;word-wrap:break-word;color:#555;background-color:#f8f8f8;border:1px solid #dedede;border-radius:0}pre code{padding:0;font-size:inherit;color:inherit;white-space:pre-wrap;background-color:transparent;border-radius:0}.am-pre-scrollable{max-height:24rem;overflow-y:scroll}.am-btn{display:inline-block;margin-bottom:0;padding:.5em 1em;vertical-align:middle;font-size:1.6rem;font-weight:400;line-height:1.2;text-align:center;white-space:nowrap;background-image:none;border:1px solid transparent;border-radius:0;cursor:pointer;outline:0;-webkit-appearance:none;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;-webkit-transition:background-color .3s ease-out,border-color .3s ease-out;transition:background-color .3s ease-out,border-color .3s ease-out}.am-btn:active:focus,.am-btn:focus{outline:thin dotted;outline:1px auto -webkit-focus-ring-color;outline-offset:-2px}.am-btn:focus,.am-btn:hover{color:#444;text-decoration:none}.am-btn.am-active,.am-btn:active{background-image:none;-webkit-box-shadow:inset 0 3px 5px rgba(0,0,0,.15);box-shadow:inset 0 3px 5px rgba(0,0,0,.15)}.am-btn.am-disabled,.am-btn[disabled],fieldset[disabled] .am-btn{pointer-events:none;border-color:transparent;cursor:not-allowed;opacity:.45;-webkit-box-shadow:none;box-shadow:none}.am-btn.am-round{border-radius:1000px}.am-btn.am-radius{border-radius:2px}.am-btn-default{color:#444;background-color:#e6e6e6;border-color:#e6e6e6}a.am-btn-default:visited{color:#444}.am-btn-default.am-active,.am-btn-default:active,.am-btn-default:focus,.am-btn-default:hover,.am-dropdown.am-active .am-btn-default.am-dropdown-toggle{color:#444;border-color:#c7c7c7}.am-btn-default:focus,.am-btn-default:hover{background-color:#d4d4d4}.am-btn-default.am-active,.am-btn-default:active,.am-dropdown.am-active .am-btn-default.am-dropdown-toggle{background-image:none;background-color:#c2c2c2}.am-btn-default.am-disabled,.am-btn-default.am-disabled.am-active,.am-btn-default.am-disabled:active,.am-btn-default.am-disabled:focus,.am-btn-default.am-disabled:hover,.am-btn-default[disabled],.am-btn-default[disabled].am-active,.am-btn-default[disabled]:active,.am-btn-default[disabled]:focus,.am-btn-default[disabled]:hover,fieldset[disabled] .am-btn-default,fieldset[disabled] .am-btn-default.am-active,fieldset[disabled] .am-btn-default:active,fieldset[disabled] .am-btn-default:focus,fieldset[disabled] .am-btn-default:hover{background-color:#e6e6e6;border-color:#e6e6e6}.am-btn-group .am-btn-default,.am-btn-group-stacked .am-btn-default{border-color:#d9d9d9}.am-btn-primary{color:#fff;background-color:#5bb75b;border-color:#5bb75b;outline:none;}a.am-btn-primary:visited{color:#fff}.am-btn-primary.am-active,.am-btn-primary:active,.am-btn-primary:focus,.am-btn-primary:hover,.am-dropdown.am-active .am-btn-primary.am-dropdown-toggle{color:#fff;}.am-btn-primary:focus,.am-btn-primary:hover{background-color:#28b779}.am-btn-primary.am-active,.am-btn-primary:active,.am-dropdown.am-active .am-btn-primary.am-dropdown-toggle{background-image:none;background-color:#28b779}.am-btn-primary.am-disabled,.am-btn-primary.am-disabled.am-active,.am-btn-primary.am-disabled:active,.am-btn-primary.am-disabled:focus,.am-btn-primary.am-disabled:hover,.am-btn-primary[disabled],.am-btn-primary[disabled].am-active,.am-btn-primary[disabled]:active,.am-btn-primary[disabled]:focus,.am-btn-primary[disabled]:hover,fieldset[disabled] .am-btn-primary,fieldset[disabled] .am-btn-primary.am-active,fieldset[disabled] .am-btn-primary:active,fieldset[disabled] .am-btn-primary:focus,fieldset[disabled] .am-btn-primary:hover{background-color:#1f262c;border-color:#1f262c}.am-btn-group .am-btn-primary,.am-btn-group-stacked .am-btn-primary{border-color:#4ab765}.am-btn-secondary{color:#fff;background-color:#5bb75b;border-color:#5bb75b}a.am-btn-secondary:visited{color:#fff}.am-btn-secondary.am-active,.am-btn-secondary:active,.am-btn-secondary:focus,.am-btn-secondary:hover,.am-dropdown.am-active .am-btn-secondary.am-dropdown-toggle{color:#fff;border-color:#0f9ae0}.am-btn-secondary:focus,.am-btn-secondary:hover{background-color:#19a7f0}.am-btn-secondary.am-active,.am-btn-secondary:active,.am-dropdown.am-active .am-btn-secondary.am-dropdown-toggle{background-image:none;background-color:#0e93d7}.am-btn-secondary.am-disabled,.am-btn-secondary.am-disabled.am-active,.am-btn-secondary.am-disabled:active,.am-btn-secondary.am-disabled:focus,.am-btn-secondary.am-disabled:hover,.am-btn-secondary[disabled],.am-btn-secondary[disabled].am-active,.am-btn-secondary[disabled]:active,.am-btn-secondary[disabled]:focus,.am-btn-secondary[disabled]:hover,fieldset[disabled] .am-btn-secondary,fieldset[disabled] .am-btn-secondary.am-active,fieldset[disabled] .am-btn-secondary:active,fieldset[disabled] .am-btn-secondary:focus,fieldset[disabled] .am-btn-secondary:hover{background-color:#5bb75b;border-color:#5bb75b}.am-btn-group .am-btn-secondary,.am-btn-group-stacked .am-btn-secondary{border-color:#23abf0}.am-btn-warning{color:#fff;background-color:#F37B1D;border-color:#F37B1D}a.am-btn-warning:visited{color:#fff}.am-btn-warning.am-active,.am-btn-warning:active,.am-btn-warning:focus,.am-btn-warning:hover,.am-dropdown.am-active .am-btn-warning.am-dropdown-toggle{color:#fff;border-color:#c85e0b}.am-btn-warning:focus,.am-btn-warning:hover{background-color:#e0690c}.am-btn-warning.am-active,.am-btn-warning:active,.am-dropdown.am-active .am-btn-warning.am-dropdown-toggle{background-image:none;background-color:#be590a}.am-btn-warning.am-disabled,.am-btn-warning.am-disabled.am-active,.am-btn-warning.am-disabled:active,.am-btn-warning.am-disabled:focus,.am-btn-warning.am-disabled:hover,.am-btn-warning[disabled],.am-btn-warning[disabled].am-active,.am-btn-warning[disabled]:active,.am-btn-warning[disabled]:focus,.am-btn-warning[disabled]:hover,fieldset[disabled] .am-btn-warning,fieldset[disabled] .am-btn-warning.am-active,fieldset[disabled] .am-btn-warning:active,fieldset[disabled] .am-btn-warning:focus,fieldset[disabled] .am-btn-warning:hover{background-color:#F37B1D;border-color:#F37B1D}.am-btn-group .am-btn-warning,.am-btn-group-stacked .am-btn-warning{border-color:#ea6e0c}.am-btn-danger{color:#fff;background-color:#dd514c;border-color:#dd514c}a.am-btn-danger:visited{color:#fff}.am-btn-danger.am-active,.am-btn-danger:active,.am-btn-danger:focus,.am-btn-danger:hover,.am-dropdown.am-active .am-btn-danger.am-dropdown-toggle{color:#fff;border-color:#c62b26}.am-btn-danger:focus,.am-btn-danger:hover{background-color:#d7342e}.am-btn-danger.am-active,.am-btn-danger:active,.am-dropdown.am-active .am-btn-danger.am-dropdown-toggle{background-image:none;background-color:#be2924}.am-btn-danger.am-disabled,.am-btn-danger.am-disabled.am-active,.am-btn-danger.am-disabled:active,.am-btn-danger.am-disabled:focus,.am-btn-danger.am-disabled:hover,.am-btn-danger[disabled],.am-btn-danger[disabled].am-active,.am-btn-danger[disabled]:active,.am-btn-danger[disabled]:focus,.am-btn-danger[disabled]:hover,fieldset[disabled] .am-btn-danger,fieldset[disabled] .am-btn-danger.am-active,fieldset[disabled] .am-btn-danger:active,fieldset[disabled] .am-btn-danger:focus,fieldset[disabled] .am-btn-danger:hover{background-color:#dd514c;border-color:#dd514c}.am-btn-group .am-btn-danger,.am-btn-group-stacked .am-btn-danger{border-color:#d93c37}.am-btn-success{color:#fff;background-color:#5eb95e;border-color:#5eb95e}a.am-btn-success:visited{color:#fff}.am-btn-success.am-active,.am-btn-success:active,.am-btn-success:focus,.am-btn-success:hover,.am-dropdown.am-active .am-btn-success.am-dropdown-toggle{color:#fff;border-color:#429842}.am-btn-success:focus,.am-btn-success:hover{background-color:#4aaa4a}.am-btn-success.am-active,.am-btn-success:active,.am-dropdown.am-active .am-btn-success.am-dropdown-toggle{background-image:none;background-color:#3f913f}.am-btn-success.am-disabled,.am-btn-success.am-disabled.am-active,.am-btn-success.am-disabled:active,.am-btn-success.am-disabled:focus,.am-btn-success.am-disabled:hover,.am-btn-success[disabled],.am-btn-success[disabled].am-active,.am-btn-success[disabled]:active,.am-btn-success[disabled]:focus,.am-btn-success[disabled]:hover,fieldset[disabled] .am-btn-success,fieldset[disabled] .am-btn-success.am-active,fieldset[disabled] .am-btn-success:active,fieldset[disabled] .am-btn-success:focus,fieldset[disabled] .am-btn-success:hover{background-color:#5eb95e;border-color:#5eb95e}.am-btn-group .am-btn-success,.am-btn-group-stacked .am-btn-success{border-color:#4db14d}.am-btn-link{color:#1f262c;font-weight:400;cursor:pointer;border-radius:0}.am-btn-link,.am-btn-link:active,.am-btn-link[disabled],fieldset[disabled] .am-btn-link{background-color:transparent;-webkit-box-shadow:none;box-shadow:none}.am-btn-link,.am-btn-link:active,.am-btn-link:focus,.am-btn-link:hover{border-color:transparent}.am-btn-link:focus,.am-btn-link:hover{color:#28b779;text-decoration:underline;background-color:transparent}.am-btn-link[disabled]:focus,.am-btn-link[disabled]:hover,fieldset[disabled] .am-btn-link:focus,fieldset[disabled] .am-btn-link:hover{color:#999;text-decoration:none}.am-btn-xs{font-size:1.2rem}.am-btn-sm{font-size:1.4rem}.am-btn-lg{font-size:1.8rem}.am-btn-xl{font-size:2rem}.am-btn-block{display:block;width:100%;padding-left:0;padding-right:0}.am-btn-block+.am-btn-block{margin-top:5px}input[type=button].am-btn-block,input[type=reset].am-btn-block,input[type=submit].am-btn-block{width:100%}.am-btn.am-btn-loading .am-icon-spin{margin-right:5px}table{max-width:100%;background-color:transparent;empty-cells:show}table code{white-space:normal}th{text-align:left}.am-table{width:100%;margin-bottom:1.6rem;border-spacing:0;border-collapse:separate}.am-table>tbody>tr>td,.am-table>tbody>tr>th,.am-table>tfoot>tr>td,.am-table>tfoot>tr>th,.am-table>thead>tr>td,.am-table>thead>tr>th{padding:.7rem;line-height:1.6;vertical-align:top;border-top:1px solid #ddd}.am-table>thead>tr>th{vertical-align:bottom;border-bottom:1px solid #ddd}.am-table>caption+thead>tr:first-child>td,.am-table>caption+thead>tr:first-child>th,.am-table>colgroup+thead>tr:first-child>td,.am-table>colgroup+thead>tr:first-child>th,.am-table>thead:first-child>tr:first-child>td,.am-table>thead:first-child>tr:first-child>th{border-top:0}.am-table>tbody+tbody tr:first-child td{border-top:2px solid #ddd}.am-table-bordered{border:1px solid #ddd;border-left:none}.am-table-bordered>tbody>tr>td,.am-table-bordered>tbody>tr>th,.am-table-bordered>tfoot>tr>td,.am-table-bordered>tfoot>tr>th,.am-table-bordered>thead>tr>td,.am-table-bordered>thead>tr>th{border-left:1px solid #ddd}.am-table-bordered>tbody>tr:first-child>td,.am-table-bordered>tbody>tr:first-child>th{border-top:none}.am-table-bordered>thead+tbody>tr:first-child>td,.am-table-bordered>thead+tbody>tr:first-child>th{border-top:1px solid #ddd}.am-table-radius{border:1px solid #ddd;border-radius:2px}.am-table-radius>thead>tr:first-child>td:first-child,.am-table-radius>thead>tr:first-child>th:first-child{border-top-left-radius:2px;border-left:none}.am-table-radius>thead>tr:first-child>td:last-child,.am-table-radius>thead>tr:first-child>th:last-child{border-top-right-radius:2px;border-right:none}.am-table-radius>tbody>tr>td:first-child,.am-table-radius>tbody>tr>th:first-child{border-left:none}.am-table-radius>tbody>tr>td:last-child,.am-table-radius>tbody>tr>th:last-child{border-right:none}.am-table-radius>tbody>tr:last-child>td,.am-table-radius>tbody>tr:last-child>th{border-bottom:none}.am-table-radius>tbody>tr:last-child>td:first-child,.am-table-radius>tbody>tr:last-child>th:first-child{border-bottom-left-radius:2px}.am-table-radius>tbody>tr:last-child>td:last-child,.am-table-radius>tbody>tr:last-child>th:last-child{border-bottom-right-radius:2px}.am-table-striped>tbody>tr:nth-child(odd)>td,.am-table-striped>tbody>tr:nth-child(odd)>th{background-color:#f9f9f9}.am-table-hover>tbody>tr:hover>td,.am-table-hover>tbody>tr:hover>th{background-color:#e9e9e9}.am-table-compact>tbody>tr>td,.am-table-compact>tbody>tr>th,.am-table-compact>tfoot>tr>td,.am-table-compact>tfoot>tr>th,.am-table-compact>thead>tr>td,.am-table-compact>thead>tr>th{padding:.4rem}.am-table-centered>tbody>tr>td,.am-table-centered>tbody>tr>th,.am-table-centered>tfoot>tr>td,.am-table-centered>tfoot>tr>th,.am-table-centered>thead>tr>td,.am-table-centered>thead>tr>th{text-align:center}.am-table>tbody>tr.am-active>td,.am-table>tbody>tr.am-active>th,.am-table>tbody>tr>td.am-active,.am-table>tbody>tr>th.am-active,.am-table>tfoot>tr.am-active>td,.am-table>tfoot>tr.am-active>th,.am-table>tfoot>tr>td.am-active,.am-table>tfoot>tr>th.am-active,.am-table>thead>tr.am-active>td,.am-table>thead>tr.am-active>th,.am-table>thead>tr>td.am-active,.am-table>thead>tr>th.am-active{background-color:#ffd}.am-table>tbody>tr.am-disabled>td,.am-table>tbody>tr.am-disabled>th,.am-table>tbody>tr>td.am-disabled,.am-table>tbody>tr>th.am-disabled,.am-table>tfoot>tr.am-disabled>td,.am-table>tfoot>tr.am-disabled>th,.am-table>tfoot>tr>td.am-disabled,.am-table>tfoot>tr>th.am-disabled,.am-table>thead>tr.am-disabled>td,.am-table>thead>tr.am-disabled>th,.am-table>thead>tr>td.am-disabled,.am-table>thead>tr>th.am-disabled{color:#999}.am-table>tbody>tr.am-primary>td,.am-table>tbody>tr.am-primary>th,.am-table>tbody>tr>td.am-primary,.am-table>tbody>tr>th.am-primary,.am-table>tfoot>tr.am-primary>td,.am-table>tfoot>tr.am-primary>th,.am-table>tfoot>tr>td.am-primary,.am-table>tfoot>tr>th.am-primary,.am-table>thead>tr.am-primary>td,.am-table>thead>tr.am-primary>th,.am-table>thead>tr>td.am-primary,.am-table>thead>tr>th.am-primary{color:#0b76ac;background-color:rgba(14,144,210,.115)}.am-table>tbody>tr.am-success>td,.am-table>tbody>tr.am-success>th,.am-table>tbody>tr>td.am-success,.am-table>tbody>tr>th.am-success,.am-table>tfoot>tr.am-success>td,.am-table>tfoot>tr.am-success>th,.am-table>tfoot>tr>td.am-success,.am-table>tfoot>tr>th.am-success,.am-table>thead>tr.am-success>td,.am-table>thead>tr.am-success>th,.am-table>thead>tr>td.am-success,.am-table>thead>tr>th.am-success{color:#5eb95e;background-color:rgba(94,185,94,.115)}.am-table>tbody>tr.am-warning>td,.am-table>tbody>tr.am-warning>th,.am-table>tbody>tr>td.am-warning,.am-table>tbody>tr>th.am-warning,.am-table>tfoot>tr.am-warning>td,.am-table>tfoot>tr.am-warning>th,.am-table>tfoot>tr>td.am-warning,.am-table>tfoot>tr>th.am-warning,.am-table>thead>tr.am-warning>td,.am-table>thead>tr.am-warning>th,.am-table>thead>tr>td.am-warning,.am-table>thead>tr>th.am-warning{color:#F37B1D;background-color:rgba(243,123,29,.115)}.am-table>tbody>tr.am-danger>td,.am-table>tbody>tr.am-danger>th,.am-table>tbody>tr>td.am-danger,.am-table>tbody>tr>th.am-danger,.am-table>tfoot>tr.am-danger>td,.am-table>tfoot>tr.am-danger>th,.am-table>tfoot>tr>td.am-danger,.am-table>tfoot>tr>th.am-danger,.am-table>thead>tr.am-danger>td,.am-table>thead>tr.am-danger>th,.am-table>thead>tr>td.am-danger,.am-table>thead>tr>th.am-danger{color:#dd514c;background-color:rgba(221,81,76,.115)}fieldset{border:none}legend{display:block;width:100%;margin-bottom:2rem;font-size:2rem;line-height:inherit;color:#333;border-bottom:1px solid #e5e5e5;padding-bottom:.5rem}label{display:inline-block;margin-bottom:5px;font-weight:700}input[type=search]{-webkit-box-sizing:border-box;box-sizing:border-box}input[type=checkbox],input[type=radio]{margin:4px 0 0;margin-top:1px\9;line-height:normal}input[type=file]{display:block}select[multiple],select[size]{height:auto}select optgroup{font-size:inherit;font-style:inherit;font-family:inherit}input[type=checkbox]:focus,input[type=file]:focus,input[type=radio]:focus{outline:thin dotted;outline:1px auto -webkit-focus-ring-color;outline-offset:-2px}input[type=number]::-webkit-inner-spin-button,input[type=number]::-webkit-outer-spin-button{height:auto}output{display:block;padding-top:1.6rem;font-size:1.6rem;line-height:1.6;color:#555;vertical-align:middle}.am-form input[type=number],.am-form input[type=search],.am-form input[type=text],.am-form input[type=password],.am-form input[type=datetime],.am-form input[type=datetime-local],.am-form input[type=date],.am-form input[type=month],.am-form input[type=time],.am-form input[type=week],.am-form input[type=email],.am-form input[type=url],.am-form input[type=tel],.am-form input[type=color],.am-form select,.am-form textarea,.am-form-field{display:block;width:100%;padding:.5em;font-size:1.6rem;line-height:1.2;color:#555;vertical-align:middle;background-color:#fff;background-image:none;border:1px solid #ccc;border-radius:0;-webkit-appearance:none;-webkit-transition:border-color .15s ease-in-out,-webkit-box-shadow .15s ease-in-out;transition:border-color .15s ease-in-out,-webkit-box-shadow .15s ease-in-out;transition:border-color .15s ease-in-out,box-shadow .15s ease-in-out;transition:border-color .15s ease-in-out,box-shadow .15s ease-in-out,-webkit-box-shadow .15s ease-in-out}.am-form input[type=number]:focus,.am-form input[type=search]:focus,.am-form input[type=text]:focus,.am-form input[type=password]:focus,.am-form input[type=datetime]:focus,.am-form input[type=datetime-local]:focus,.am-form input[type=date]:focus,.am-form input[type=month]:focus,.am-form input[type=time]:focus,.am-form input[type=week]:focus,.am-form input[type=email]:focus,.am-form input[type=url]:focus,.am-form input[type=tel]:focus,.am-form input[type=color]:focus,.am-form select:focus,.am-form textarea:focus,.am-form-field:focus{outline:0}.am-form input[type=number]:focus,.am-form input[type=search]:focus,.am-form input[type=text]:focus,.am-form input[type=password]:focus,.am-form input[type=datetime]:focus,.am-form input[type=datetime-local]:focus,.am-form input[type=date]:focus,.am-form input[type=month]:focus,.am-form input[type=time]:focus,.am-form input[type=week]:focus,.am-form input[type=email]:focus,.am-form input[type=url]:focus,.am-form input[type=tel]:focus,.am-form input[type=color]:focus,.am-form select:focus,.am-form textarea:focus,.am-form-field:focus{background-color:#fefffe;border-color:#5bb75b;outline:0;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 5px rgba(59,180,242,.3);box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 5px rgba(59,180,242,.3)}.am-form input[type=number]::-webkit-input-placeholder,.am-form input[type=search]::-webkit-input-placeholder,.am-form input[type=text]::-webkit-input-placeholder,.am-form input[type=password]::-webkit-input-placeholder,.am-form input[type=datetime]::-webkit-input-placeholder,.am-form input[type=datetime-local]::-webkit-input-placeholder,.am-form input[type=date]::-webkit-input-placeholder,.am-form input[type=month]::-webkit-input-placeholder,.am-form input[type=time]::-webkit-input-placeholder,.am-form input[type=week]::-webkit-input-placeholder,.am-form input[type=email]::-webkit-input-placeholder,.am-form input[type=url]::-webkit-input-placeholder,.am-form input[type=tel]::-webkit-input-placeholder,.am-form input[type=color]::-webkit-input-placeholder,.am-form select::-webkit-input-placeholder,.am-form textarea::-webkit-input-placeholder,.am-form-field::-webkit-input-placeholder{color:#999}.am-form input[type=number]::-moz-placeholder,.am-form input[type=search]::-moz-placeholder,.am-form input[type=text]::-moz-placeholder,.am-form input[type=password]::-moz-placeholder,.am-form input[type=datetime]::-moz-placeholder,.am-form input[type=datetime-local]::-moz-placeholder,.am-form input[type=date]::-moz-placeholder,.am-form input[type=month]::-moz-placeholder,.am-form input[type=time]::-moz-placeholder,.am-form input[type=week]::-moz-placeholder,.am-form input[type=email]::-moz-placeholder,.am-form input[type=url]::-moz-placeholder,.am-form input[type=tel]::-moz-placeholder,.am-form input[type=color]::-moz-placeholder,.am-form select::-moz-placeholder,.am-form textarea::-moz-placeholder,.am-form-field::-moz-placeholder{color:#999}.am-form input[type=number]:-ms-input-placeholder,.am-form input[type=search]:-ms-input-placeholder,.am-form input[type=text]:-ms-input-placeholder,.am-form input[type=password]:-ms-input-placeholder,.am-form input[type=datetime]:-ms-input-placeholder,.am-form input[type=datetime-local]:-ms-input-placeholder,.am-form input[type=date]:-ms-input-placeholder,.am-form input[type=month]:-ms-input-placeholder,.am-form input[type=time]:-ms-input-placeholder,.am-form input[type=week]:-ms-input-placeholder,.am-form input[type=email]:-ms-input-placeholder,.am-form input[type=url]:-ms-input-placeholder,.am-form input[type=tel]:-ms-input-placeholder,.am-form input[type=color]:-ms-input-placeholder,.am-form select:-ms-input-placeholder,.am-form textarea:-ms-input-placeholder,.am-form-field:-ms-input-placeholder{color:#999}.am-form input[type=number]::placeholder,.am-form input[type=search]::placeholder,.am-form input[type=text]::placeholder,.am-form input[type=password]::placeholder,.am-form input[type=datetime]::placeholder,.am-form input[type=datetime-local]::placeholder,.am-form input[type=date]::placeholder,.am-form input[type=month]::placeholder,.am-form input[type=time]::placeholder,.am-form input[type=week]::placeholder,.am-form input[type=email]::placeholder,.am-form input[type=url]::placeholder,.am-form input[type=tel]::placeholder,.am-form input[type=color]::placeholder,.am-form select::placeholder,.am-form textarea::placeholder,.am-form-field::placeholder{color:#999}.am-form input[type=number]::-moz-placeholder,.am-form input[type=search]::-moz-placeholder,.am-form input[type=text]::-moz-placeholder,.am-form input[type=password]::-moz-placeholder,.am-form input[type=datetime]::-moz-placeholder,.am-form input[type=datetime-local]::-moz-placeholder,.am-form input[type=date]::-moz-placeholder,.am-form input[type=month]::-moz-placeholder,.am-form input[type=time]::-moz-placeholder,.am-form input[type=week]::-moz-placeholder,.am-form input[type=email]::-moz-placeholder,.am-form input[type=url]::-moz-placeholder,.am-form input[type=tel]::-moz-placeholder,.am-form input[type=color]::-moz-placeholder,.am-form select::-moz-placeholder,.am-form textarea::-moz-placeholder,.am-form-field::-moz-placeholder{opacity:1}.am-form input[type=number][disabled],.am-form input[type=number][readonly],.am-form input[type=search][disabled],.am-form input[type=search][readonly],.am-form input[type=text][disabled],.am-form input[type=text][readonly],.am-form input[type=password][disabled],.am-form input[type=password][readonly],.am-form input[type=datetime][disabled],.am-form input[type=datetime][readonly],.am-form input[type=datetime-local][disabled],.am-form input[type=datetime-local][readonly],.am-form input[type=date][disabled],.am-form input[type=date][readonly],.am-form input[type=month][disabled],.am-form input[type=month][readonly],.am-form input[type=time][disabled],.am-form input[type=time][readonly],.am-form input[type=week][disabled],.am-form input[type=week][readonly],.am-form input[type=email][disabled],.am-form input[type=email][readonly],.am-form input[type=url][disabled],.am-form input[type=url][readonly],.am-form input[type=tel][disabled],.am-form input[type=tel][readonly],.am-form input[type=color][disabled],.am-form input[type=color][readonly],.am-form select[disabled],.am-form select[readonly],.am-form textarea[disabled],.am-form textarea[readonly],.am-form-field[disabled],.am-form-field[readonly],fieldset[disabled] .am-form input[type=number],fieldset[disabled] .am-form input[type=search],fieldset[disabled] .am-form input[type=text],fieldset[disabled] .am-form input[type=password],fieldset[disabled] .am-form input[type=datetime],fieldset[disabled] .am-form input[type=datetime-local],fieldset[disabled] .am-form input[type=date],fieldset[disabled] .am-form input[type=month],fieldset[disabled] .am-form input[type=time],fieldset[disabled] .am-form input[type=week],fieldset[disabled] .am-form input[type=email],fieldset[disabled] .am-form input[type=url],fieldset[disabled] .am-form input[type=tel],fieldset[disabled] .am-form input[type=color],fieldset[disabled] .am-form select,fieldset[disabled] .am-form textarea,fieldset[disabled] .am-form-field{cursor:not-allowed;background-color:#eee}.am-form input[type=number].am-radius,.am-form input[type=search].am-radius,.am-form input[type=text].am-radius,.am-form input[type=password].am-radius,.am-form input[type=datetime].am-radius,.am-form input[type=datetime-local].am-radius,.am-form input[type=date].am-radius,.am-form input[type=month].am-radius,.am-form input[type=time].am-radius,.am-form input[type=week].am-radius,.am-form input[type=email].am-radius,.am-form input[type=url].am-radius,.am-form input[type=tel].am-radius,.am-form input[type=color].am-radius,.am-form select.am-radius,.am-form textarea.am-radius,.am-form-field.am-radius{border-radius:2px}.am-form input[type=number].am-round,.am-form input[type=search].am-round,.am-form input[type=text].am-round,.am-form input[type=password].am-round,.am-form input[type=datetime].am-round,.am-form input[type=datetime-local].am-round,.am-form input[type=date].am-round,.am-form input[type=month].am-round,.am-form input[type=time].am-round,.am-form input[type=week].am-round,.am-form input[type=email].am-round,.am-form input[type=url].am-round,.am-form input[type=tel].am-round,.am-form input[type=color].am-round,.am-form select.am-round,.am-form textarea.am-round,.am-form-field.am-round{border-radius:1000px}.am-form select[multiple],.am-form select[size],.am-form textarea{height:auto}.am-form select{-webkit-appearance:none!important;-moz-appearance:none!important;-webkit-border-radius:0;background:#fff url(data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZlcnNpb249IjEuMSIgeD0iMTJweCIgeT0iMHB4IiB3aWR0aD0iMjRweCIgaGVpZ2h0PSIzcHgiIHZpZXdCb3g9IjAgMCA2IDMiIGVuYWJsZS1iYWNrZ3JvdW5kPSJuZXcgMCAwIDYgMyIgeG1sOnNwYWNlPSJwcmVzZXJ2ZSI+PHBvbHlnb24gcG9pbnRzPSI1Ljk5MiwwIDIuOTkyLDMgLTAuMDA4LDAgIi8+PC9zdmc+) no-repeat 100% center}.am-form select[multiple=multiple]{background-image:none}.am-form input[type=datetime-local],.am-form input[type=date],input[type=datetime-local].am-form-field,input[type=date].am-form-field{height:37px}.am-form input[type=datetime-local].am-input-sm,.am-form input[type=date].am-input-sm,input[type=datetime-local].am-form-field.am-input-sm,input[type=date].am-form-field.am-input-sm{height:32px}.am-form input[type=datetime-local] .am-input-lg,.am-form input[type=date] .am-input-lg,input[type=datetime-local].am-form-field .am-input-lg,input[type=date].am-form-field .am-input-lg{height:41px}.am-form-help{display:block;margin-top:5px;margin-bottom:10px;color:#999;font-size:1.3rem}/*.am-form-group{margin-bottom:1.5rem}*/.am-form-file{position:relative;overflow:hidden}.am-form-file input[type=file]{position:absolute;left:0;top:0;z-index:1;width:100%;opacity:0;cursor:pointer;font-size:50rem}.am-checkbox,.am-radio{display:block;min-height:1.92rem;margin-top:10px;margin-bottom:10px;padding-left:20px;vertical-align:middle}.am-checkbox label,.am-radio label{display:inline;margin-bottom:0;font-weight:400;cursor:pointer}.am-checkbox input[type=checkbox],.am-checkbox-inline input[type=checkbox],.am-radio input[type=radio],.am-radio-inline input[type=radio]{float:left;margin-left:-20px;outline:0}.am-checkbox+.am-checkbox,.am-radio+.am-radio{margin-top:-5px}.am-checkbox-inline,.am-radio-inline{display:inline-block;padding-left:20px;margin-bottom:0;vertical-align:middle;font-weight:400;cursor:pointer}.am-checkbox-inline+.am-checkbox-inline,.am-radio-inline+.am-radio-inline{margin-top:0;margin-left:10px}.am-checkbox-inline[disabled],.am-checkbox[disabled],.am-radio-inline[disabled],.am-radio[disabled],fieldset[disabled] .am-checkbox,fieldset[disabled] .am-checkbox-inline,fieldset[disabled] .am-radio,fieldset[disabled] .am-radio-inline,fieldset[disabled] input[type=checkbox],fieldset[disabled] input[type=radio],input[type=checkbox][disabled],input[type=radio][disabled]{cursor:not-allowed}.am-form-warning .am-checkbox,.am-form-warning .am-checkbox-inline,.am-form-warning .am-form-help,.am-form-warning .am-form-label,.am-form-warning .am-radio,.am-form-warning .am-radio-inline,.am-form-warning label{color:#F37B1D}.am-form-warning [class*=icon-]{color:#F37B1D}.am-form-warning .am-form-field{border-color:#F37B1D!important;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,.075);box-shadow:inset 0 1px 1px rgba(0,0,0,.075)}.am-form-warning .am-form-field:focus{background-color:#fefffe;border-color:#d2620b;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 5px #f8b47e!important;box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 5px #f8b47e!important}.am-form-error .am-checkbox,.am-form-error .am-checkbox-inline,.am-form-error .am-form-help,.am-form-error .am-form-label,.am-form-error .am-radio,.am-form-error .am-radio-inline,.am-form-error label{color:#dd514c}.am-form-error [class*=icon-]{color:#dd514c}.am-field-error,.am-form-error .am-form-field{border-color:#dd514c!important;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,.075);box-shadow:inset 0 1px 1px rgba(0,0,0,.075)}.am-field-error:focus,.am-form-error .am-form-field:focus{background-color:#fefffe;border-color:#cf2d27;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 5px #eda4a2!important;box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 5px #eda4a2!important}.am-form-success .am-checkbox,.am-form-success .am-checkbox-inline,.am-form-success .am-form-help,.am-form-success .am-form-label,.am-form-success .am-radio,.am-form-success .am-radio-inline,.am-form-success label{color:#5eb95e}.am-form-success [class*=icon-]{color:#5eb95e}.am-field-valid,.am-form-success .am-form-field{border-color:#5eb95e!important;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,.075);box-shadow:inset 0 1px 1px rgba(0,0,0,.075)}.am-field-valid:focus,.am-form-success .am-form-field:focus{background-color:#fefffe;border-color:#459f45;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 5px #a5d8a5!important;box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 5px #a5d8a5!important}.am-form-horizontal .am-checkbox,.am-form-horizontal .am-checkbox-inline,.am-form-horizontal .am-form-label,.am-form-horizontal .am-radio,.am-form-horizontal .am-radio-inline{margin-top:0;margin-bottom:0;padding-top:.6em}.am-form-horizontal .am-form-group:after,.am-form-horizontal .am-form-group:before{content:" ";display:table}.am-form-horizontal .am-form-group:after{clear:both}@media only screen and (min-width:641px){.am-form-horizontal .am-form-label{text-align:right}}@media only screen and (min-width:641px){.am-form-inline .am-form-group{display:inline-block;margin-bottom:0;vertical-align:middle}.am-form-inline .am-form-field{display:inline-block;width:auto;vertical-align:middle}.am-form-inline .am-input-group{display:inline-table;vertical-align:middle}.am-form-inline .am-input-group .am-form-label,.am-form-inline .am-input-group .am-input-group-btn,.am-form-inline .am-input-group .am-input-group-label{width:auto}.am-form-inline .am-input-group>.am-form-field{width:100%}.am-form-inline .am-form-label{margin-bottom:0;vertical-align:middle}.am-form-inline .am-checkbox,.am-form-inline .am-radio{display:inline-block;margin-top:0;margin-bottom:0;padding-left:0;vertical-align:middle}.am-form-inline .am-checkbox input[type=checkbox],.am-form-inline .am-radio input[type=radio]{float:none;margin-left:0}}.am-input-sm{font-size:1.4rem!important}.am-input-lg{font-size:1.8rem!important}.am-form-group-sm .am-checkbox,.am-form-group-sm .am-form-field,.am-form-group-sm .am-form-label,.am-form-group-sm .am-radio{font-size:1.4rem!important}.am-form-group-lg .am-checkbox,.am-form-group-lg .am-form-field,.am-form-group-lg .am-form-label,.am-form-group-lg .am-radio{font-size:1.8rem!important}.am-form-group-lg input[type=checkbox],.am-form-group-lg input[type=radio]{margin-top:7px}.am-form-icon{position:relative}.am-form-icon .am-form-field{padding-left:1.75em!important}.am-form-icon [class*=am-icon-]{position:absolute;left:.5em;top:50%;display:block;margin-top:-.5em;line-height:1;z-index:2}.am-form-icon label~[class*=am-icon-]{top:70%}.am-form-feedback{position:relative}.am-form-feedback .am-form-field{padding-left:.5em!important;padding-right:1.75em!important}.am-form-feedback [class*=am-icon-]{right:.5em;left:auto}.am-form-horizontal .am-form-feedback [class*=am-icon-]{right:1.6em}.am-form-set{margin-bottom:1.5rem;padding:0}.am-form-set>input{position:relative;top:-1px;border-radius:0!important}.am-form-set>input:focus{z-index:2}.am-form-set>input:first-child{top:1px;border-top-right-radius:0!important;border-top-left-radius:0!important}.am-form-set>input:last-child{top:-2px;border-bottom-right-radius:0!important;border-bottom-left-radius:0!important}.am-img-thumbnail{display:inline-block;max-width:100%;height:auto;padding:2px;line-height:1.6;background-color:#fff;border:1px solid #ddd;border-radius:0;-webkit-transition:all .2s ease-in-out;transition:all .2s ease-in-out}.am-img-thumbnail.am-radius{border-radius:2px}.am-img-responsive{display:block;max-width:100%;height:auto}.am-nav{margin-bottom:0;padding:0;list-style:none}.am-nav:after,.am-nav:before{content:" ";display:table}.am-nav:after{clear:both}.am-nav>li{position:relative;display:block}.am-nav>li+li{margin-top:5px}.am-nav>li+.am-nav-header{margin-top:1em}.am-nav>li>a{position:relative;display:block;padding:.4em 1em;border-radius:0}.am-nav>li>a:focus,.am-nav>li>a:hover{text-decoration:none;background-color:#eee}.am-nav>li.am-active>a,.am-nav>li.am-active>a:focus,.am-nav>li.am-active>a:hover{color:#fff;background-color:#1f262c;cursor:default}.am-nav>li.am-disabled>a{color:#999}.am-nav>li.am-disabled>a:focus,.am-nav>li.am-disabled>a:hover{color:#999;text-decoration:none;background-color:transparent;cursor:not-allowed}.am-nav-header{padding:.4em 1em;text-transform:uppercase;font-weight:700;font-size:100%;color:#555}.am-nav-divider{margin:15px 1em!important;border-top:1px solid #ddd;-webkit-box-shadow:0 1px 0 #fff;box-shadow:0 1px 0 #fff}.am-nav-pills>li{float:left}.am-nav-pills>li+li{margin-left:5px;margin-top:0}.am-nav-tabs{border-bottom:1px solid #ddd}.am-nav-tabs>li{float:left;margin-bottom:-1px}.am-nav-tabs>li+li{margin-top:0}.am-nav-tabs>li>a{margin-right:5px;line-height:1.6;border:1px solid transparent;border-radius:0}.am-nav-tabs>li>a:hover{border-color:#eee #eee #ddd}.am-nav-tabs>li.am-active>a,.am-nav-tabs>li.am-active>a:focus,.am-nav-tabs>li.am-active>a:hover{color:#555;background-color:#fff;border:1px solid #ddd;border-bottom-color:transparent;cursor:default}.am-nav-tabs.am-nav-justify{border-bottom:0}.am-nav-tabs.am-nav-justify>li>a{margin-right:0;border-bottom:1px solid #ddd;border-radius:0}.am-nav-tabs.am-nav-justify>.am-active>a,.am-nav-tabs.am-nav-justify>.am-active>a:focus,.am-nav-tabs.am-nav-justify>.am-active>a:hover{border-bottom-color:#fff}.am-nav-justify{width:100%}.am-nav-justify>li{float:none;display:table-cell;width:1%}.am-nav-justify>li>a{text-align:center;margin-bottom:0}.lte9 .am-nav-justify>li{display:table-cell;width:1%}.am-topbar{position:relative;min-height:50px;margin-bottom:1.6rem;background:#f8f8f8;border-width:0 0 1px;border-style:solid;border-color:#ddd;color:#666}.am-topbar:after,.am-topbar:before{content:" ";display:table}.am-topbar:after{clear:both}.am-topbar a{color:#666}.am-topbar-brand{margin:0}@media only screen and (min-width:641px){.am-topbar-brand{float:left}}.am-topbar-brand a:hover{color:#4d4d4d}.am-topbar-collapse{width:100%;overflow-x:visible;padding:10px;clear:both;-webkit-overflow-scrolling:touch}.am-topbar-collapse:after,.am-topbar-collapse:before{content:" ";display:table}.am-topbar-collapse:after{clear:both}.am-topbar-collapse.am-in{overflow-y:auto}@media only screen and (min-width:641px){.am-topbar-collapse{margin-top:0;padding:0;width:auto;clear:none}.am-topbar-collapse.am-collapse{display:block!important;height:auto!important;padding:0;overflow:visible!important}.am-topbar-collapse.am-in{overflow-y:visible}}.am-topbar-brand{padding:0 10px;float:left;font-size:1.8rem;height:50px;line-height:50px}.am-topbar-toggle{position:relative;float:right;margin-right:10px}@media only screen and (min-width:641px){.am-topbar-toggle{display:none}}@media only screen and (max-width:640px){.am-topbar-nav{margin-bottom:8px}.am-topbar-nav>li{float:none}}@media only screen and (max-width:640px){.am-topbar-nav>li+li{margin-left:0;margin-top:5px}}@media only screen and (min-width:641px){.am-topbar-nav{float:left}.am-topbar-nav>li>a{position:relative;line-height:50px;padding:0 10px}.am-topbar-nav>li>a:after{position:absolute;left:50%;margin-left:-7px;bottom:-1px;content:"";display:inline-block;width:0;height:0;vertical-align:middle;border-bottom:7px solid #f8f8f8;border-right:7px solid transparent;border-left:7px solid transparent;border-top:0 dotted;-webkit-transform:rotate(360deg);-ms-transform:rotate(360deg);transform:rotate(360deg);opacity:0;-webkit-transition:opacity .1s;transition:opacity .1s}.am-topbar-nav>li>a:hover:after{opacity:1;border-bottom-color:#666}.am-topbar-nav>li.am-dropdown>a:after{display:none}.am-topbar-nav>li.am-active>a,.am-topbar-nav>li.am-active>a:focus,.am-topbar-nav>li.am-active>a:hover{border-radius:0;color:#1f262c;background:0 0}.am-topbar-nav>li.am-active>a:after{opacity:1;border-bottom-color:#1f262c}}@media only screen and (max-width:640px){.am-topbar-collapse .am-dropdown.am-active .am-dropdown-content{float:none;position:relative;width:100%}}@media only screen and (min-width:641px){.am-topbar-left{float:left}.am-topbar-right{float:right;margin-right:10px}}@media only screen and (max-width:640px){.am-topbar-form .am-form-group{margin-bottom:5px}}@media only screen and (min-width:641px){.am-topbar-form{padding:0 10px;margin-top:8px}.am-topbar-form .am-form-group+.am-btn{margin-left:5px}}.am-topbar-btn{margin-top:8px}@media only screen and (max-width:640px){.am-topbar-collapse .am-btn,.am-topbar-collapse .am-topbar-btn{display:block;width:100%}}.am-topbar-inverse{background-color:#1f262c;border-color:#0b6fa2;color:#eee}.am-topbar-inverse a{color:#eee}.am-topbar-inverse .am-topbar-brand a{color:#fff}.am-topbar-inverse .am-topbar-brand a:focus,.am-topbar-inverse .am-topbar-brand a:hover{color:#fff;background-color:transparent}.am-topbar-inverse .am-topbar-nav>li>a{color:#eee}.am-topbar-inverse .am-topbar-nav>li>a:focus,.am-topbar-inverse .am-topbar-nav>li>a:hover{color:#fff;background-color:rgba(0,0,0,.05)}.am-topbar-inverse .am-topbar-nav>li>a:focus:after,.am-topbar-inverse .am-topbar-nav>li>a:hover:after{border-bottom-color:#0b6fa2}.am-topbar-inverse .am-topbar-nav>li>a:after{border-bottom-color:#1f262c}.am-topbar-inverse .am-topbar-nav>li.am-active>a,.am-topbar-inverse .am-topbar-nav>li.am-active>a:focus,.am-topbar-inverse .am-topbar-nav>li.am-active>a:hover{color:#fff;background-color:rgba(0,0,0,.1)}.am-topbar-inverse .am-topbar-nav>li.am-active>a:after,.am-topbar-inverse .am-topbar-nav>li.am-active>a:focus:after,.am-topbar-inverse .am-topbar-nav>li.am-active>a:hover:after{border-bottom-color:#fff}.am-topbar-inverse .am-topbar-nav>li .disabled>a,.am-topbar-inverse .am-topbar-nav>li .disabled>a:focus,.am-topbar-inverse .am-topbar-nav>li .disabled>a:hover{color:#444;background-color:transparent}.am-topbar-fixed-bottom,.am-topbar-fixed-top{position:fixed;right:0;left:0;z-index:1000;-webkit-transform:translate3d(0,0,0);transform:translate3d(0,0,0)}.am-topbar-fixed-top{top:0}.am-topbar-fixed-bottom{bottom:0;margin-bottom:0;border-width:1px 0 0}.am-with-topbar-fixed-top{padding-top:51px}.am-with-topbar-fixed-bottom{padding-bottom:51px}@media only screen and (max-width:640px){.am-topbar-fixed-bottom .am-topbar-collapse{position:absolute;bottom:100%;margin-bottom:1px;background-color:#f8f8f8}.am-topbar-fixed-bottom .am-topbar-collapse .am-dropdown-content:after,.am-topbar-fixed-bottom .am-topbar-collapse .am-dropdown-content:before{display:none}.am-topbar-fixed-bottom.am-topbar-inverse .am-topbar-collapse{background-color:#1f262c}}.am-breadcrumb{padding:.7em .5em;margin-bottom:2rem;list-style:none;background-color:transparent;border-radius:0;font-size:85%}.am-breadcrumb>li{display:inline-block}.am-breadcrumb>li [class*=am-icon-]:before{color:#999;margin-right:5px}.am-breadcrumb>li+li:before{content:"\00bb\00a0";padding:0 8px;color:#ccc}.am-breadcrumb>.am-active{color:#999}.am-breadcrumb-slash>li+li:before{content:"/\00a0"}.am-pagination{padding-left:0;margin:1.5rem 0;list-style:none;color:#999;text-align:left}.am-pagination:after,.am-pagination:before{content:" ";display:table}.am-pagination:after{clear:both}.am-pagination>li{display:inline-block}.am-pagination>li>a,.am-pagination>li>span{position:relative;display:block;padding:.5em 1em;text-decoration:none;line-height:1.2;background-color:#fff;border:1px solid #ddd;border-radius:0;margin-bottom:5px;margin-right:5px}.am-pagination>li:last-child>a,.am-pagination>li:last-child>span{margin-right:0}.am-pagination>li>a:focus,.am-pagination>li>a:hover,.am-pagination>li>span:focus,.am-pagination>li>span:hover{background-color:#eee}.am-pagination>.am-active>a,.am-pagination>.am-active>a:focus,.am-pagination>.am-active>a:hover,.am-pagination>.am-active>span,.am-pagination>.am-active>span:focus,.am-pagination>.am-active>span:hover{z-index:2;color:#fff;background-color:#1f262c;border-color:#1f262c;cursor:default}.am-pagination>.am-disabled>a,.am-pagination>.am-disabled>a:focus,.am-pagination>.am-disabled>a:hover,.am-pagination>.am-disabled>span,.am-pagination>.am-disabled>span:focus,.am-pagination>.am-disabled>span:hover{color:#999;background-color:#fff;border-color:#ddd;cursor:not-allowed;pointer-events:none}.am-pagination .am-pagination-prev{float:left}.am-pagination .am-pagination-prev a{border-radius:0}.am-pagination .am-pagination-next{float:right}.am-pagination .am-pagination-next a{border-radius:0}.am-pagination-centered{text-align:center}.am-pagination-right{text-align:right}[class*=am-animation-]{-webkit-animation-duration:.5s;animation-duration:.5s;-webkit-animation-timing-function:ease-out;animation-timing-function:ease-out;-webkit-animation-fill-mode:both;animation-fill-mode:both}@media screen{.cssanimations [data-am-scrollspy*=animation]{opacity:0}}.am-animation-fade{-webkit-animation-name:am-fade;animation-name:am-fade;-webkit-animation-duration:.8s;animation-duration:.8s;-webkit-animation-timing-function:linear;animation-timing-function:linear}.am-animation-scale-up{-webkit-animation-name:am-scale-up;animation-name:am-scale-up}.am-animation-scale-down{-webkit-animation-name:am-scale-down;animation-name:am-scale-down}.am-animation-slide-top{-webkit-animation-name:am-slide-top;animation-name:am-slide-top}.am-animation-slide-bottom{-webkit-animation-name:am-slide-bottom;animation-name:am-slide-bottom}.am-animation-slide-left{-webkit-animation-name:am-slide-left;animation-name:am-slide-left}.am-animation-slide-right{-webkit-animation-name:am-slide-right;animation-name:am-slide-right}.am-animation-slide-top-fixed{-webkit-animation-name:am-slide-top-fixed;animation-name:am-slide-top-fixed}.am-animation-shake{-webkit-animation-name:am-shake;animation-name:am-shake}.am-animation-spin{-webkit-animation:am-spin 2s infinite linear;animation:am-spin 2s infinite linear}.am-animation-left-spring{-webkit-animation:am-left-spring .3s ease-in-out;animation:am-left-spring .3s ease-in-out}.am-animation-right-spring{-webkit-animation:am-right-spring .3s ease-in-out;animation:am-right-spring .3s ease-in-out}.am-animation-reverse{-webkit-animation-direction:reverse;animation-direction:reverse}.am-animation-paused{-webkit-animation-play-state:paused!important;animation-play-state:paused!important}.am-animation-delay-1{-webkit-animation-delay:1s;animation-delay:1s}.am-animation-delay-2{-webkit-animation-delay:2s;animation-delay:2s}.am-animation-delay-3{-webkit-animation-delay:3s;animation-delay:3s}.am-animation-delay-4{-webkit-animation-delay:4s;animation-delay:4s}.am-animation-delay-5{-webkit-animation-delay:5s;animation-delay:5s}.am-animation-delay-6{-webkit-animation-delay:6s;animation-delay:6s}@-webkit-keyframes am-fade{0%{opacity:0}100%{opacity:1}}@keyframes am-fade{0%{opacity:0}100%{opacity:1}}@-webkit-keyframes am-scale-up{0%{opacity:0;-webkit-transform:scale(.2);transform:scale(.2)}100%{opacity:1;-webkit-transform:scale(1);transform:scale(1)}}@keyframes am-scale-up{0%{opacity:0;-webkit-transform:scale(.2);transform:scale(.2)}100%{opacity:1;-webkit-transform:scale(1);transform:scale(1)}}@-webkit-keyframes am-scale-down{0%{opacity:0;-webkit-transform:scale(1.8);transform:scale(1.8)}100%{opacity:1;-webkit-transform:scale(1);transform:scale(1)}}@keyframes am-scale-down{0%{opacity:0;-webkit-transform:scale(1.8);transform:scale(1.8)}100%{opacity:1;-webkit-transform:scale(1);transform:scale(1)}}@-webkit-keyframes am-slide-top{0%{opacity:0;-webkit-transform:translateY(-100%);transform:translateY(-100%)}100%{opacity:1;-webkit-transform:translateY(0);transform:translateY(0)}}@keyframes am-slide-top{0%{opacity:0;-webkit-transform:translateY(-100%);transform:translateY(-100%)}100%{opacity:1;-webkit-transform:translateY(0);transform:translateY(0)}}@-webkit-keyframes am-slide-bottom{0%{opacity:0;-webkit-transform:translateY(100%);transform:translateY(100%)}100%{opacity:1;-webkit-transform:translateY(0);transform:translateY(0)}}@keyframes am-slide-bottom{0%{opacity:0;-webkit-transform:translateY(100%);transform:translateY(100%)}100%{opacity:1;-webkit-transform:translateY(0);transform:translateY(0)}}@-webkit-keyframes am-slide-left{0%{opacity:0;-webkit-transform:translateX(-100%);transform:translateX(-100%)}100%{opacity:1;-webkit-transform:translateX(0);transform:translateX(0)}}@keyframes am-slide-left{0%{opacity:0;-webkit-transform:translateX(-100%);transform:translateX(-100%)}100%{opacity:1;-webkit-transform:translateX(0);transform:translateX(0)}}@-webkit-keyframes am-slide-right{0%{opacity:0;-webkit-transform:translateX(100%);transform:translateX(100%)}100%{opacity:1;-webkit-transform:translateX(0);transform:translateX(0)}}@keyframes am-slide-right{0%{opacity:0;-webkit-transform:translateX(100%);transform:translateX(100%)}100%{opacity:1;-webkit-transform:translateX(0);transform:translateX(0)}}@-webkit-keyframes am-shake{0%,100%{-webkit-transform:translateX(0);transform:translateX(0)}10%{-webkit-transform:translateX(-9px);transform:translateX(-9px)}20%{-webkit-transform:translateX(8px);transform:translateX(8px)}30%{-webkit-transform:translateX(-7px);transform:translateX(-7px)}40%{-webkit-transform:translateX(6px);transform:translateX(6px)}50%{-webkit-transform:translateX(-5px);transform:translateX(-5px)}60%{-webkit-transform:translateX(4px);transform:translateX(4px)}70%{-webkit-transform:translateX(-3px);transform:translateX(-3px)}80%{-webkit-transform:translateX(2px);transform:translateX(2px)}90%{-webkit-transform:translateX(-1px);transform:translateX(-1px)}}@keyframes am-shake{0%,100%{-webkit-transform:translateX(0);transform:translateX(0)}10%{-webkit-transform:translateX(-9px);transform:translateX(-9px)}20%{-webkit-transform:translateX(8px);transform:translateX(8px)}30%{-webkit-transform:translateX(-7px);transform:translateX(-7px)}40%{-webkit-transform:translateX(6px);transform:translateX(6px)}50%{-webkit-transform:translateX(-5px);transform:translateX(-5px)}60%{-webkit-transform:translateX(4px);transform:translateX(4px)}70%{-webkit-transform:translateX(-3px);transform:translateX(-3px)}80%{-webkit-transform:translateX(2px);transform:translateX(2px)}90%{-webkit-transform:translateX(-1px);transform:translateX(-1px)}}@-webkit-keyframes am-slide-top-fixed{0%{opacity:0;-webkit-transform:translateY(-10px);transform:translateY(-10px)}100%{opacity:1;-webkit-transform:translateY(0);transform:translateY(0)}}@keyframes am-slide-top-fixed{0%{opacity:0;-webkit-transform:translateY(-10px);transform:translateY(-10px)}100%{opacity:1;-webkit-transform:translateY(0);transform:translateY(0)}}@-webkit-keyframes am-slide-bottom-fixed{0%{opacity:0;-webkit-transform:translateY(10px);transform:translateY(10px)}100%{opacity:1;-webkit-transform:translateY(0);transform:translateY(0)}}@keyframes am-slide-bottom-fixed{0%{opacity:0;-webkit-transform:translateY(10px);transform:translateY(10px)}100%{opacity:1;-webkit-transform:translateY(0);transform:translateY(0)}}@-webkit-keyframes am-spin{0%{-webkit-transform:rotate(0);transform:rotate(0)}100%{-webkit-transform:rotate(359deg);transform:rotate(359deg)}}@keyframes am-spin{0%{-webkit-transform:rotate(0);transform:rotate(0)}100%{-webkit-transform:rotate(359deg);transform:rotate(359deg)}}@-webkit-keyframes am-right-spring{0%{-webkit-transform:translateX(0);transform:translateX(0)}50%{-webkit-transform:translateX(-20%);transform:translateX(-20%)}100%{-webkit-transform:translateX(0);transform:translateX(0)}}@keyframes am-right-spring{0%{-webkit-transform:translateX(0);transform:translateX(0)}50%{-webkit-transform:translateX(-20%);transform:translateX(-20%)}100%{-webkit-transform:translateX(0);transform:translateX(0)}}@-webkit-keyframes am-left-spring{0%{-webkit-transform:translateX(0);transform:translateX(0)}50%{-webkit-transform:translateX(20%);transform:translateX(20%)}100%{-webkit-transform:translateX(0);transform:translateX(0)}}@keyframes am-left-spring{0%{-webkit-transform:translateX(0);transform:translateX(0)}50%{-webkit-transform:translateX(20%);transform:translateX(20%)}100%{-webkit-transform:translateX(0);transform:translateX(0)}}.am-article:after,.am-article:before{content:" ";display:table}.am-article:after{clear:both}.am-article>:last-child{margin-bottom:0}.am-article+.am-article{margin-top:2.4rem}.am-article-title{font-size:2.8rem;line-height:1.15;font-weight:400}.am-article-title a{color:inherit;text-decoration:none}.am-article-meta{font-size:1.2rem;line-height:1.5;color:#999}.am-article-lead{color:#666;font-size:1.4rem;line-height:1.5;border:1px solid #dedede;border-radius:2px;background:#f9f9f9;padding:10px}.am-article-divider{margin-bottom:2.4rem;border-color:#eee}*+.am-article-divider{margin-top:2.4rem}.am-article-bd blockquote{font-family:Georgia,"Times New Roman",Times,Kai,"Kaiti SC",KaiTi,BiauKai,FontAwesome,serif}.am-article-bd img{display:block;max-width:100%}.am-badge{display:inline-block;min-width:10px;padding:.25em .625em;font-size:1.2rem;font-weight:700;color:#fff;line-height:1;vertical-align:baseline;white-space:nowrap;text-align:center;background-color:#999;border-radius:0}.am-badge:empty{display:none}.am-badge.am-square{border-radius:0}.am-badge.am-radius{border-radius:2px}.am-badge.am-round{border-radius:1000px}a.am-badge:focus,a.am-badge:hover{color:#fff;text-decoration:none;cursor:pointer}.am-badge-primary{background-color:#1f262c}.am-badge-secondary{background-color:#5bb75b}.am-badge-success{background-color:#5eb95e}.am-badge-warning{background-color:#F37B1D}.am-badge-danger{background-color:#dd514c}.am-comment:after,.am-comment:before{content:" ";display:table}.am-comment:after{clear:both}.am-comment-avatar{float:left;width:32px;height:32px;border-radius:50%;border:1px solid transparent}@media only screen and (min-width:641px){.am-comment-avatar{width:48px;height:48px}}.am-comment-main{position:relative;margin-left:42px;border:1px solid #dedede;border-radius:0}.am-comment-main:after,.am-comment-main:before{position:absolute;top:10px;left:-8px;right:100%;width:0;height:0;display:block;content:" ";border-color:transparent;border-style:solid solid outset;border-width:8px 8px 8px 0;pointer-events:none}.am-comment-main:before{border-right-color:#dedede;z-index:1}.am-comment-main:after{border-right-color:#f8f8f8;margin-left:1px;z-index:2}@media only screen and (min-width:641px){.am-comment-main{margin-left:63px}}.am-comment-hd{background:#f8f8f8;border-bottom:1px solid #eee;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex}.am-comment-title{margin:0 0 8px 0;font-size:1.6rem;line-height:1.2}.am-comment-meta{-webkit-box-flex:1;-webkit-flex:1;-ms-flex:1;flex:1;padding:10px 15px;font-size:13px;color:#999;line-height:1.2;white-space:nowrap;text-overflow:ellipsis;overflow:hidden}.am-comment-meta a{color:#999}.am-comment-author{font-weight:700;color:#999}.am-comment-bd{padding:15px;overflow:hidden}.am-comment-bd>:last-child{margin-bottom:0}.am-comment-footer{padding:0 15px 5px}.am-comment-footer .am-comment-actions a+a{margin-left:5px}.am-comment-actions{font-size:13px;color:#999}.am-comment-actions a{display:inline-block;padding:10px 5px;line-height:1;color:#999;opacity:.7}.am-comment-actions a:hover{color:#1f262c;opacity:1}.am-comment-hd .am-comment-actions{padding-right:.5rem}.am-comment-flip .am-comment-avatar{float:right}.am-comment-flip .am-comment-main{margin-left:auto;margin-right:42px}@media only screen and (min-width:641px){.am-comment-flip .am-comment-main{margin-right:63px}}.am-comment-flip .am-comment-main:after,.am-comment-flip .am-comment-main:before{left:auto;right:-8px;border-width:8px 0 8px 8px}.am-comment-flip .am-comment-main:before{border-left-color:#dedede}.am-comment-flip .am-comment-main:after{border-left-color:#f8f8f8;margin-right:1px;margin-left:auto}.am-comment-primary .am-comment-avatar{border-color:#1f262c}.am-comment-primary .am-comment-main{border-color:#1f262c}.am-comment-primary .am-comment-main:before{border-right-color:#1f262c}.am-comment-primary.am-comment-flip .am-comment-main:before{border-left-color:#1f262c;border-right-color:transparent}.am-comment-primary.am-comment-flip .am-comment-main:after{border-left-color:#f8f8f8}.am-comment-highlight .am-comment-avatar,.am-comment-secondary .am-comment-avatar{border-color:#5bb75b}.am-comment-highlight .am-comment-main,.am-comment-secondary .am-comment-main{border-color:#5bb75b}.am-comment-highlight .am-comment-main:before,.am-comment-secondary .am-comment-main:before{border-right-color:#5bb75b}.am-comment-highlight.am-comment-flip .am-comment-main:before,.am-comment-secondary.am-comment-flip .am-comment-main:before{border-left-color:#5bb75b;border-right-color:transparent}.am-comment-highlight.am-comment-flip .am-comment-main:after,.am-comment-secondary.am-comment-flip .am-comment-main:after{border-left-color:#f8f8f8}.am-comment-success .am-comment-avatar{border-color:#5eb95e}.am-comment-success .am-comment-main{border-color:#5eb95e}.am-comment-success .am-comment-main:before{border-right-color:#5eb95e}.am-comment-success.am-comment-flip .am-comment-main:before{border-left-color:#5eb95e;border-right-color:transparent}.am-comment-success.am-comment-flip .am-comment-main:after{border-left-color:#f8f8f8}.am-comment-warning .am-comment-avatar{border-color:#F37B1D}.am-comment-warning .am-comment-main{border-color:#F37B1D}.am-comment-warning .am-comment-main:before{border-right-color:#F37B1D}.am-comment-warning.am-comment-flip .am-comment-main:before{border-left-color:#F37B1D;border-right-color:transparent}.am-comment-warning.am-comment-flip .am-comment-main:after{border-left-color:#f8f8f8}.am-comment-danger .am-comment-avatar{border-color:#dd514c}.am-comment-danger .am-comment-main{border-color:#dd514c}.am-comment-danger .am-comment-main:before{border-right-color:#dd514c}.am-comment-danger.am-comment-flip .am-comment-main:before{border-left-color:#dd514c;border-right-color:transparent}.am-comment-danger.am-comment-flip .am-comment-main:after{border-left-color:#f8f8f8}.am-comments-list{padding:0;list-style:none}.am-comments-list .am-comment{margin:1.6rem 0 0 0;list-style:none}@media only screen and (min-width:641px){.am-comments-list-flip .am-comment-main{margin-right:64px}.am-comments-list-flip .am-comment-flip .am-comment-main{margin-left:64px}}.am-btn-group,.am-btn-group-stacked{position:relative;display:inline-block;vertical-align:middle}.am-btn-group-stacked>.am-btn,.am-btn-group>.am-btn{position:relative;float:left}.am-btn-group-stacked>.am-btn.active,.am-btn-group-stacked>.am-btn:active,.am-btn-group-stacked>.am-btn:focus,.am-btn-group-stacked>.am-btn:hover,.am-btn-group>.am-btn.active,.am-btn-group>.am-btn:active,.am-btn-group>.am-btn:focus,.am-btn-group>.am-btn:hover{z-index:2}.am-btn-group-stacked>.am-btn:focus,.am-btn-group>.am-btn:focus{outline:0}.am-btn-group .am-btn+.am-btn,.am-btn-group .am-btn+.am-btn-group,.am-btn-group .am-btn-group+.am-btn,.am-btn-group .am-btn-group+.am-btn-group{margin-left:-1px}.am-btn-toolbar{margin-left:-5px}.am-btn-toolbar:after,.am-btn-toolbar:before{content:" ";display:table}.am-btn-toolbar:after{clear:both}.am-btn-toolbar .am-btn-group,.am-btn-toolbar .am-input-group{float:left}.am-btn-toolbar>.am-btn,.am-btn-toolbar>.am-btn-group,.am-btn-toolbar>.am-input-group{margin-left:5px}.am-btn-group>.am-btn:not(:first-child):not(:last-child):not(.am-dropdown-toggle){border-radius:0}.am-btn-group>.am-btn:first-child{margin-left:0}.am-btn-group>.am-btn:first-child:not(:last-child):not(.am-dropdown-toggle){border-bottom-right-radius:0;border-top-right-radius:0}.am-btn-group>.am-btn:last-child:not(:first-child),.am-btn-group>.am-dropdown-toggle:not(:first-child){border-bottom-left-radius:0;border-top-left-radius:0}.am-btn-group>.am-btn-group{float:left}.am-btn-group>.am-btn-group:not(:first-child):not(:last-child)>.am-btn{border-radius:0}.am-btn-group>.am-btn-group:first-child>.am-btn:last-child,.am-btn-group>.am-btn-group:first-child>.am-dropdown-toggle{border-bottom-right-radius:0;border-top-right-radius:0}.am-btn-group>.am-btn-group:last-child>.am-btn:first-child{border-bottom-left-radius:0;border-top-left-radius:0}.am-btn-group-xs>.am-btn{font-size:1.2rem}.am-btn-group-sm>.am-btn{font-size:1.4rem}.am-btn-group-lg>.am-btn{font-size:1.8rem}.am-btn-group-stacked>.am-btn,.am-btn-group-stacked>.am-btn-group,.am-btn-group-stacked>.am-btn-group>.am-btn{display:block;float:none;width:100%;max-width:100%}.am-btn-group-stacked>.am-btn-group:after,.am-btn-group-stacked>.am-btn-group:before{content:" ";display:table}.am-btn-group-stacked>.am-btn-group:after{clear:both}.am-btn-group-stacked>.am-btn-group>.am-btn{float:none}.am-btn-group-stacked>.am-btn+.am-btn,.am-btn-group-stacked>.am-btn+.am-btn-group,.am-btn-group-stacked>.am-btn-group+.am-btn,.am-btn-group-stacked>.am-btn-group+.am-btn-group{margin-top:-1px;margin-left:0}.am-btn-group-stacked>.am-btn:not(:first-child):not(:last-child){border-radius:0}.am-btn-group-stacked>.am-btn:first-child:not(:last-child){border-top-right-radius:0;border-bottom-right-radius:0;border-bottom-left-radius:0}.am-btn-group-stacked>.am-btn:last-child:not(:first-child){border-bottom-left-radius:0;border-top-right-radius:0;border-top-left-radius:0}.am-btn-group-stacked>.am-btn-group:not(:first-child):not(:last-child)>.am-btn{border-radius:0}.am-btn-group-stacked>.am-btn-group:first-child:not(:last-child)>.am-btn:last-child,.am-btn-group-stacked>.am-btn-group:first-child:not(:last-child)>.am-dropdown-toggle{border-bottom-right-radius:0;border-bottom-left-radius:0}.am-btn-group-stacked>.am-btn-group:last-child:not(:first-child)>.am-btn:first-child{border-top-right-radius:0;border-top-left-radius:0}.am-btn-group-justify{display:table;table-layout:fixed;border-collapse:separate;width:100%}.am-btn-group-justify>.am-btn,.am-btn-group-justify>.am-btn-group{float:none;display:table-cell;width:1%}.am-btn-group-justify>.am-btn-group .am-btn{width:100%}.lte9 .am-btn-group-justify{display:table;table-layout:fixed;border-collapse:separate}.lte9 .am-btn-group-justify>.am-btn,.lte9 .am-btn-group-justify>.am-btn-group{float:none;display:table-cell;width:1%}.am-btn-group .am-dropdown{float:left;margin-left:-1px}.am-btn-group .am-dropdown>.am-btn{border-bottom-left-radius:0;border-top-left-radius:0}.am-btn-group .am-active .am-dropdown-toggle{-webkit-box-shadow:inset 0 3px 5px rgba(0,0,0,.125);box-shadow:inset 0 3px 5px rgba(0,0,0,.125)}.am-btn-group .am-active .am-dropdown-toggle.am-btn-link{-webkit-box-shadow:none;box-shadow:none}.am-btn-group .am-active .am-dropdown-toggle,.am-btn-group .am-dropdown-toggle:active{outline:0}.am-btn-group-check>.am-btn>input[type=checkbox],.am-btn-group-check>.am-btn>input[type=radio],[data-am-button]>.am-btn>input[type=checkbox],[data-am-button]>.am-btn>input[type=radio]{position:absolute;z-index:-1;opacity:0}.am-close{display:inline-block;text-align:center;width:24px;font-size:20px;font-weight:700;line-height:24px;color:#000;text-shadow:0 1px 0 #fff;opacity:.2;-webkit-transition:all .3s;transition:all .3s}.am-close:focus,.am-close:hover{color:#000;text-decoration:none;cursor:pointer;opacity:.5;outline:0}.am-close[class*=am-icon-]{font-size:16px}button.am-close{padding:0;cursor:pointer;background:0 0;border:0;-webkit-appearance:none}a.am-close:hover{color:inherit;text-decoration:none;cursor:pointer}.am-close-alt{border-radius:50%;background:#eee;opacity:.7;-webkit-box-shadow:0 0 0 1px rgba(0,0,0,.25);box-shadow:0 0 0 1px rgba(0,0,0,.25)}.am-close-alt:focus,.am-close-alt:hover{opacity:1}.am-close-spin:hover{-webkit-transform:rotate(360deg);-ms-transform:rotate(360deg);transform:rotate(360deg)}@font-face{font-family:FontAwesome;src:url(../fonts/fontawesome-webfont.eot?v=4.6.3);src:url(../fonts/fontawesome-webfont.eot?#iefix&v=4.6.3) format('embedded-opentype'),url(../fonts/fontawesome-webfont.woff2?v=4.6.3) format('woff2'),url(../fonts/fontawesome-webfont.woff?v=4.6.3) format('woff'),url(../fonts/fontawesome-webfont.ttf?v=4.6.3) format('truetype');font-weight:400;font-style:normal}[class*=am-icon-]{display:inline-block;font-style:normal}[class*=am-icon-]:before{display:inline-block;font:normal normal normal 1.6rem/1 FontAwesome,sans-serif;font-size:inherit;text-rendering:auto;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;-webkit-transform:translate(0,0);-ms-transform:translate(0,0);transform:translate(0,0)}.am-icon-border{padding:.2em .25em .15em;border:solid .08em #eee;border-radius:.1em}[class*=am-icon-].am-fl{margin-right:.3em}[class*=am-icon-].am-fr{margin-left:.3em}.am-icon-sm:before{font-size:150%;vertical-align:-10%}.am-icon-md:before{font-size:200%;vertical-align:-16%}.am-icon-lg:before{font-size:250%;vertical-align:-22%}.am-icon-btn{-webkit-box-sizing:border-box;box-sizing:border-box;display:inline-block;width:48px;height:48px;font-size:24px;line-height:48px;border-radius:50%;background-color:#eee;color:#555;text-align:center}.am-icon-btn:focus,.am-icon-btn:hover{background-color:#f5f5f5;color:#333;text-decoration:none;outline:0}.am-icon-btn:active{background-color:#ddd;color:#333}.am-icon-btn.am-danger,.am-icon-btn.am-primary,.am-icon-btn.am-secondary,.am-icon-btn.am-success,.am-icon-btn.am-warning{color:#fff}.am-icon-btn.am-primary{background-color:#1f262c}.am-icon-btn.am-secondary{background-color:#5bb75b}.am-icon-btn.am-success{background-color:#5eb95e}.am-icon-btn.am-warning{background-color:#F37B1D}.am-icon-btn.am-danger{background-color:#dd514c}.am-icon-btn-sm{width:32px;height:32px;font-size:16px;line-height:32px}.am-icon-btn-lg{width:64px;height:64px;font-size:28px;line-height:64px}.am-icon-fw{width:1.25em;text-align:center}.am-icon-glass:before{content:"\f000"}.am-icon-music:before{content:"\f001"}.am-icon-search:before{content:"\f002"}.am-icon-envelope-o:before{content:"\f003"}.am-icon-heart:before{content:"\f004"}.am-icon-star:before{content:"\f005"}.am-icon-star-o:before{content:"\f006"}.am-icon-user:before{content:"\f007"}.am-icon-film:before{content:"\f008"}.am-icon-th-large:before{content:"\f009"}.am-icon-th:before{content:"\f00a"}.am-icon-th-list:before{content:"\f00b"}.am-icon-check:before{content:"\f00c"}.am-icon-close:before,.am-icon-remove:before,.am-icon-times:before{content:"\f00d"}.am-icon-search-plus:before{content:"\f00e"}.am-icon-search-minus:before{content:"\f010"}.am-icon-power-off:before{content:"\f011"}.am-icon-signal:before{content:"\f012"}.am-icon-cog:before,.am-icon-gear:before{content:"\f013"}.am-icon-trash-o:before{content:"\f014"}.am-icon-home:before{content:"\f015"}.am-icon-file-o:before{content:"\f016"}.am-icon-clock-o:before{content:"\f017"}.am-icon-road:before{content:"\f018"}.am-icon-download:before{content:"\f019"}.am-icon-arrow-circle-o-down:before{content:"\f01a"}.am-icon-arrow-circle-o-up:before{content:"\f01b"}.am-icon-inbox:before{content:"\f01c"}.am-icon-play-circle-o:before{content:"\f01d"}.am-icon-repeat:before,.am-icon-rotate-right:before{content:"\f01e"}.am-icon-refresh:before{content:"\f021"}.am-icon-list-alt:before{content:"\f022"}.am-icon-lock:before{content:"\f023"}.am-icon-flag:before{content:"\f024"}.am-icon-headphones:before{content:"\f025"}.am-icon-volume-off:before{content:"\f026"}.am-icon-volume-down:before{content:"\f027"}.am-icon-volume-up:before{content:"\f028"}.am-icon-qrcode:before{content:"\f029"}.am-icon-barcode:before{content:"\f02a"}.am-icon-tag:before{content:"\f02b"}.am-icon-tags:before{content:"\f02c"}.am-icon-book:before{content:"\f02d"}.am-icon-bookmark:before{content:"\f02e"}.am-icon-print:before{content:"\f02f"}.am-icon-camera:before{content:"\f030"}.am-icon-font:before{content:"\f031"}.am-icon-bold:before{content:"\f032"}.am-icon-italic:before{content:"\f033"}.am-icon-text-height:before{content:"\f034"}.am-icon-text-width:before{content:"\f035"}.am-icon-align-left:before{content:"\f036"}.am-icon-align-center:before{content:"\f037"}.am-icon-align-right:before{content:"\f038"}.am-icon-align-justify:before{content:"\f039"}.am-icon-list:before{content:"\f03a"}.am-icon-dedent:before,.am-icon-outdent:before{content:"\f03b"}.am-icon-indent:before{content:"\f03c"}.am-icon-video-camera:before{content:"\f03d"}.am-icon-image:before,.am-icon-photo:before,.am-icon-picture-o:before{content:"\f03e"}.am-icon-pencil:before{content:"\f040"}.am-icon-map-marker:before{content:"\f041"}.am-icon-adjust:before{content:"\f042"}.am-icon-tint:before{content:"\f043"}.am-icon-edit:before,.am-icon-pencil-square-o:before{content:"\f044"}.am-icon-share-square-o:before{content:"\f045"}.am-icon-check-square-o:before{content:"\f046"}.am-icon-arrows:before{content:"\f047"}.am-icon-step-backward:before{content:"\f048"}.am-icon-fast-backward:before{content:"\f049"}.am-icon-backward:before{content:"\f04a"}.am-icon-play:before{content:"\f04b"}.am-icon-pause:before{content:"\f04c"}.am-icon-stop:before{content:"\f04d"}.am-icon-forward:before{content:"\f04e"}.am-icon-fast-forward:before{content:"\f050"}.am-icon-step-forward:before{content:"\f051"}.am-icon-eject:before{content:"\f052"}.am-icon-chevron-left:before{content:"\f053"}.am-icon-chevron-right:before{content:"\f054"}.am-icon-plus-circle:before{content:"\f055"}.am-icon-minus-circle:before{content:"\f056"}.am-icon-times-circle:before{content:"\f057"}.am-icon-check-circle:before{content:"\f058"}.am-icon-question-circle:before{content:"\f059"}.am-icon-info-circle:before{content:"\f05a"}.am-icon-crosshairs:before{content:"\f05b"}.am-icon-times-circle-o:before{content:"\f05c"}.am-icon-check-circle-o:before{content:"\f05d"}.am-icon-ban:before{content:"\f05e"}.am-icon-arrow-left:before{content:"\f060"}.am-icon-arrow-right:before{content:"\f061"}.am-icon-arrow-up:before{content:"\f062"}.am-icon-arrow-down:before{content:"\f063"}.am-icon-mail-forward:before,.am-icon-share:before{content:"\f064"}.am-icon-expand:before{content:"\f065"}.am-icon-compress:before{content:"\f066"}.am-icon-plus:before{content:"\f067"}.am-icon-minus:before{content:"\f068"}.am-icon-asterisk:before{content:"\f069"}.am-icon-exclamation-circle:before{content:"\f06a"}.am-icon-gift:before{content:"\f06b"}.am-icon-leaf:before{content:"\f06c"}.am-icon-fire:before{content:"\f06d"}.am-icon-eye:before{content:"\f06e"}.am-icon-eye-slash:before{content:"\f070"}.am-icon-exclamation-triangle:before,.am-icon-warning:before{content:"\f071"}.am-icon-plane:before{content:"\f072"}.am-icon-calendar:before{content:"\f073"}.am-icon-random:before{content:"\f074"}.am-icon-comment:before{content:"\f075"}.am-icon-magnet:before{content:"\f076"}.am-icon-chevron-up:before{content:"\f077"}.am-icon-chevron-down:before{content:"\f078"}.am-icon-retweet:before{content:"\f079"}.am-icon-shopping-cart:before{content:"\f07a"}.am-icon-folder:before{content:"\f07b"}.am-icon-folder-open:before{content:"\f07c"}.am-icon-arrows-v:before{content:"\f07d"}.am-icon-arrows-h:before{content:"\f07e"}.am-icon-bar-chart-o:before,.am-icon-bar-chart:before{content:"\f080"}.am-icon-twitter-square:before{content:"\f081"}.am-icon-facebook-square:before{content:"\f082"}.am-icon-camera-retro:before{content:"\f083"}.am-icon-key:before{content:"\f084"}.am-icon-cogs:before,.am-icon-gears:before{content:"\f085"}.am-icon-comments:before{content:"\f086"}.am-icon-thumbs-o-up:before{content:"\f087"}.am-icon-thumbs-o-down:before{content:"\f088"}.am-icon-star-half:before{content:"\f089"}.am-icon-heart-o:before{content:"\f08a"}.am-icon-sign-out:before{content:"\f08b"}.am-icon-linkedin-square:before{content:"\f08c"}.am-icon-thumb-tack:before{content:"\f08d"}.am-icon-external-link:before{content:"\f08e"}.am-icon-sign-in:before{content:"\f090"}.am-icon-trophy:before{content:"\f091"}.am-icon-github-square:before{content:"\f092"}.am-icon-upload:before{content:"\f093"}.am-icon-lemon-o:before{content:"\f094"}.am-icon-phone:before{content:"\f095"}.am-icon-square-o:before{content:"\f096"}.am-icon-bookmark-o:before{content:"\f097"}.am-icon-phone-square:before{content:"\f098"}.am-icon-twitter:before{content:"\f099"}.am-icon-facebook-f:before,.am-icon-facebook:before{content:"\f09a"}.am-icon-github:before{content:"\f09b"}.am-icon-unlock:before{content:"\f09c"}.am-icon-credit-card:before{content:"\f09d"}.am-icon-feed:before,.am-icon-rss:before{content:"\f09e"}.am-icon-hdd-o:before{content:"\f0a0"}.am-icon-bullhorn:before{content:"\f0a1"}.am-icon-bell:before{content:"\f0f3"}.am-icon-certificate:before{content:"\f0a3"}.am-icon-hand-o-right:before{content:"\f0a4"}.am-icon-hand-o-left:before{content:"\f0a5"}.am-icon-hand-o-up:before{content:"\f0a6"}.am-icon-hand-o-down:before{content:"\f0a7"}.am-icon-arrow-circle-left:before{content:"\f0a8"}.am-icon-arrow-circle-right:before{content:"\f0a9"}.am-icon-arrow-circle-up:before{content:"\f0aa"}.am-icon-arrow-circle-down:before{content:"\f0ab"}.am-icon-globe:before{content:"\f0ac"}.am-icon-wrench:before{content:"\f0ad"}.am-icon-tasks:before{content:"\f0ae"}.am-icon-filter:before{content:"\f0b0"}.am-icon-briefcase:before{content:"\f0b1"}.am-icon-arrows-alt:before{content:"\f0b2"}.am-icon-group:before,.am-icon-users:before{content:"\f0c0"}.am-icon-chain:before,.am-icon-link:before{content:"\f0c1"}.am-icon-cloud:before{content:"\f0c2"}.am-icon-flask:before{content:"\f0c3"}.am-icon-cut:before,.am-icon-scissors:before{content:"\f0c4"}.am-icon-copy:before,.am-icon-files-o:before{content:"\f0c5"}.am-icon-paperclip:before{content:"\f0c6"}.am-icon-floppy-o:before,.am-icon-save:before{content:"\f0c7"}.am-icon-square:before{content:"\f0c8"}.am-icon-bars:before,.am-icon-navicon:before,.am-icon-reorder:before{content:"\f0c9"}.am-icon-list-ul:before{content:"\f0ca"}.am-icon-list-ol:before{content:"\f0cb"}.am-icon-strikethrough:before{content:"\f0cc"}.am-icon-underline:before{content:"\f0cd"}.am-icon-table:before{content:"\f0ce"}.am-icon-magic:before{content:"\f0d0"}.am-icon-truck:before{content:"\f0d1"}.am-icon-pinterest:before{content:"\f0d2"}.am-icon-pinterest-square:before{content:"\f0d3"}.am-icon-google-plus-square:before{content:"\f0d4"}.am-icon-google-plus:before{content:"\f0d5"}.am-icon-money:before{content:"\f0d6"}.am-icon-caret-down:before{content:"\f0d7"}.am-icon-caret-up:before{content:"\f0d8"}.am-icon-caret-left:before{content:"\f0d9"}.am-icon-caret-right:before{content:"\f0da"}.am-icon-columns:before{content:"\f0db"}.am-icon-sort:before,.am-icon-unsorted:before{content:"\f0dc"}.am-icon-sort-desc:before,.am-icon-sort-down:before{content:"\f0dd"}.am-icon-sort-asc:before,.am-icon-sort-up:before{content:"\f0de"}.am-icon-envelope:before{content:"\f0e0"}.am-icon-linkedin:before{content:"\f0e1"}.am-icon-rotate-left:before,.am-icon-undo:before{content:"\f0e2"}.am-icon-gavel:before,.am-icon-legal:before{content:"\f0e3"}.am-icon-dashboard:before,.am-icon-tachometer:before{content:"\f0e4"}.am-icon-comment-o:before{content:"\f0e5"}.am-icon-comments-o:before{content:"\f0e6"}.am-icon-bolt:before,.am-icon-flash:before{content:"\f0e7"}.am-icon-sitemap:before{content:"\f0e8"}.am-icon-umbrella:before{content:"\f0e9"}.am-icon-clipboard:before,.am-icon-paste:before{content:"\f0ea"}.am-icon-lightbulb-o:before{content:"\f0eb"}.am-icon-exchange:before{content:"\f0ec"}.am-icon-cloud-download:before{content:"\f0ed"}.am-icon-cloud-upload:before{content:"\f0ee"}.am-icon-user-md:before{content:"\f0f0"}.am-icon-stethoscope:before{content:"\f0f1"}.am-icon-suitcase:before{content:"\f0f2"}.am-icon-bell-o:before{content:"\f0a2"}.am-icon-coffee:before{content:"\f0f4"}.am-icon-cutlery:before{content:"\f0f5"}.am-icon-file-text-o:before{content:"\f0f6"}.am-icon-building-o:before{content:"\f0f7"}.am-icon-hospital-o:before{content:"\f0f8"}.am-icon-ambulance:before{content:"\f0f9"}.am-icon-medkit:before{content:"\f0fa"}.am-icon-fighter-jet:before{content:"\f0fb"}.am-icon-beer:before{content:"\f0fc"}.am-icon-h-square:before{content:"\f0fd"}.am-icon-plus-square:before{content:"\f0fe"}.am-icon-angle-double-left:before{content:"\f100"}.am-icon-angle-double-right:before{content:"\f101"}.am-icon-angle-double-up:before{content:"\f102"}.am-icon-angle-double-down:before{content:"\f103"}.am-icon-angle-left:before{content:"\f104"}.am-icon-angle-right:before{content:"\f105"}.am-icon-angle-up:before{content:"\f106"}.am-icon-angle-down:before{content:"\f107"}.am-icon-desktop:before{content:"\f108"}.am-icon-laptop:before{content:"\f109"}.am-icon-tablet:before{content:"\f10a"}.am-icon-mobile-phone:before,.am-icon-mobile:before{content:"\f10b"}.am-icon-circle-o:before{content:"\f10c"}.am-icon-quote-left:before{content:"\f10d"}.am-icon-quote-right:before{content:"\f10e"}.am-icon-spinner:before{content:"\f110"}.am-icon-circle:before{content:"\f111"}.am-icon-mail-reply:before,.am-icon-reply:before{content:"\f112"}.am-icon-github-alt:before{content:"\f113"}.am-icon-folder-o:before{content:"\f114"}.am-icon-folder-open-o:before{content:"\f115"}.am-icon-smile-o:before{content:"\f118"}.am-icon-frown-o:before{content:"\f119"}.am-icon-meh-o:before{content:"\f11a"}.am-icon-gamepad:before{content:"\f11b"}.am-icon-keyboard-o:before{content:"\f11c"}.am-icon-flag-o:before{content:"\f11d"}.am-icon-flag-checkered:before{content:"\f11e"}.am-icon-terminal:before{content:"\f120"}.am-icon-code:before{content:"\f121"}.am-icon-mail-reply-all:before,.am-icon-reply-all:before{content:"\f122"}.am-icon-star-half-empty:before,.am-icon-star-half-full:before,.am-icon-star-half-o:before{content:"\f123"}.am-icon-location-arrow:before{content:"\f124"}.am-icon-crop:before{content:"\f125"}.am-icon-code-fork:before{content:"\f126"}.am-icon-chain-broken:before,.am-icon-unlink:before{content:"\f127"}.am-icon-question:before{content:"\f128"}.am-icon-info:before{content:"\f129"}.am-icon-exclamation:before{content:"\f12a"}.am-icon-superscript:before{content:"\f12b"}.am-icon-subscript:before{content:"\f12c"}.am-icon-eraser:before{content:"\f12d"}.am-icon-puzzle-piece:before{content:"\f12e"}.am-icon-microphone:before{content:"\f130"}.am-icon-microphone-slash:before{content:"\f131"}.am-icon-shield:before{content:"\f132"}.am-icon-calendar-o:before{content:"\f133"}.am-icon-fire-extinguisher:before{content:"\f134"}.am-icon-rocket:before{content:"\f135"}.am-icon-maxcdn:before{content:"\f136"}.am-icon-chevron-circle-left:before{content:"\f137"}.am-icon-chevron-circle-right:before{content:"\f138"}.am-icon-chevron-circle-up:before{content:"\f139"}.am-icon-chevron-circle-down:before{content:"\f13a"}.am-icon-html5:before{content:"\f13b"}.am-icon-css3:before{content:"\f13c"}.am-icon-anchor:before{content:"\f13d"}.am-icon-unlock-alt:before{content:"\f13e"}.am-icon-bullseye:before{content:"\f140"}.am-icon-ellipsis-h:before{content:"\f141"}.am-icon-ellipsis-v:before{content:"\f142"}.am-icon-rss-square:before{content:"\f143"}.am-icon-play-circle:before{content:"\f144"}.am-icon-ticket:before{content:"\f145"}.am-icon-minus-square:before{content:"\f146"}.am-icon-minus-square-o:before{content:"\f147"}.am-icon-level-up:before{content:"\f148"}.am-icon-level-down:before{content:"\f149"}.am-icon-check-square:before{content:"\f14a"}.am-icon-pencil-square:before{content:"\f14b"}.am-icon-external-link-square:before{content:"\f14c"}.am-icon-share-square:before{content:"\f14d"}.am-icon-compass:before{content:"\f14e"}.am-icon-caret-square-o-down:before,.am-icon-toggle-down:before{content:"\f150"}.am-icon-caret-square-o-up:before,.am-icon-toggle-up:before{content:"\f151"}.am-icon-caret-square-o-right:before,.am-icon-toggle-right:before{content:"\f152"}.am-icon-eur:before,.am-icon-euro:before{content:"\f153"}.am-icon-gbp:before{content:"\f154"}.am-icon-dollar:before,.am-icon-usd:before{content:"\f155"}.am-icon-inr:before,.am-icon-rupee:before{content:"\f156"}.am-icon-cny:before,.am-icon-jpy:before,.am-icon-rmb:before,.am-icon-yen:before{content:"\f157"}.am-icon-rouble:before,.am-icon-rub:before,.am-icon-ruble:before{content:"\f158"}.am-icon-krw:before,.am-icon-won:before{content:"\f159"}.am-icon-bitcoin:before,.am-icon-btc:before{content:"\f15a"}.am-icon-file:before{content:"\f15b"}.am-icon-file-text:before{content:"\f15c"}.am-icon-sort-alpha-asc:before{content:"\f15d"}.am-icon-sort-alpha-desc:before{content:"\f15e"}.am-icon-sort-amount-asc:before{content:"\f160"}.am-icon-sort-amount-desc:before{content:"\f161"}.am-icon-sort-numeric-asc:before{content:"\f162"}.am-icon-sort-numeric-desc:before{content:"\f163"}.am-icon-thumbs-up:before{content:"\f164"}.am-icon-thumbs-down:before{content:"\f165"}.am-icon-youtube-square:before{content:"\f166"}.am-icon-youtube:before{content:"\f167"}.am-icon-xing:before{content:"\f168"}.am-icon-xing-square:before{content:"\f169"}.am-icon-youtube-play:before{content:"\f16a"}.am-icon-dropbox:before{content:"\f16b"}.am-icon-stack-overflow:before{content:"\f16c"}.am-icon-instagram:before{content:"\f16d"}.am-icon-flickr:before{content:"\f16e"}.am-icon-adn:before{content:"\f170"}.am-icon-bitbucket:before{content:"\f171"}.am-icon-bitbucket-square:before{content:"\f172"}.am-icon-tumblr:before{content:"\f173"}.am-icon-tumblr-square:before{content:"\f174"}.am-icon-long-arrow-down:before{content:"\f175"}.am-icon-long-arrow-up:before{content:"\f176"}.am-icon-long-arrow-left:before{content:"\f177"}.am-icon-long-arrow-right:before{content:"\f178"}.am-icon-apple:before{content:"\f179"}.am-icon-windows:before{content:"\f17a"}.am-icon-android:before{content:"\f17b"}.am-icon-linux:before{content:"\f17c"}.am-icon-dribbble:before{content:"\f17d"}.am-icon-skype:before{content:"\f17e"}.am-icon-foursquare:before{content:"\f180"}.am-icon-trello:before{content:"\f181"}.am-icon-female:before{content:"\f182"}.am-icon-male:before{content:"\f183"}.am-icon-gittip:before,.am-icon-gratipay:before{content:"\f184"}.am-icon-sun-o:before{content:"\f185"}.am-icon-moon-o:before{content:"\f186"}.am-icon-archive:before{content:"\f187"}.am-icon-bug:before{content:"\f188"}.am-icon-vk:before{content:"\f189"}.am-icon-weibo:before{content:"\f18a"}.am-icon-renren:before{content:"\f18b"}.am-icon-pagelines:before{content:"\f18c"}.am-icon-stack-exchange:before{content:"\f18d"}.am-icon-arrow-circle-o-right:before{content:"\f18e"}.am-icon-arrow-circle-o-left:before{content:"\f190"}.am-icon-caret-square-o-left:before,.am-icon-toggle-left:before{content:"\f191"}.am-icon-dot-circle-o:before{content:"\f192"}.am-icon-wheelchair:before{content:"\f193"}.am-icon-vimeo-square:before{content:"\f194"}.am-icon-try:before,.am-icon-turkish-lira:before{content:"\f195"}.am-icon-plus-square-o:before{content:"\f196"}.am-icon-space-shuttle:before{content:"\f197"}.am-icon-slack:before{content:"\f198"}.am-icon-envelope-square:before{content:"\f199"}.am-icon-wordpress:before{content:"\f19a"}.am-icon-openid:before{content:"\f19b"}.am-icon-bank:before,.am-icon-institution:before,.am-icon-university:before{content:"\f19c"}.am-icon-graduation-cap:before,.am-icon-mortar-board:before{content:"\f19d"}.am-icon-yahoo:before{content:"\f19e"}.am-icon-google:before{content:"\f1a0"}.am-icon-reddit:before{content:"\f1a1"}.am-icon-reddit-square:before{content:"\f1a2"}.am-icon-stumbleupon-circle:before{content:"\f1a3"}.am-icon-stumbleupon:before{content:"\f1a4"}.am-icon-delicious:before{content:"\f1a5"}.am-icon-digg:before{content:"\f1a6"}.am-icon-pied-piper-pp:before{content:"\f1a7"}.am-icon-pied-piper-alt:before{content:"\f1a8"}.am-icon-drupal:before{content:"\f1a9"}.am-icon-joomla:before{content:"\f1aa"}.am-icon-language:before{content:"\f1ab"}.am-icon-fax:before{content:"\f1ac"}.am-icon-building:before{content:"\f1ad"}.am-icon-child:before{content:"\f1ae"}.am-icon-paw:before{content:"\f1b0"}.am-icon-spoon:before{content:"\f1b1"}.am-icon-cube:before{content:"\f1b2"}.am-icon-cubes:before{content:"\f1b3"}.am-icon-behance:before{content:"\f1b4"}.am-icon-behance-square:before{content:"\f1b5"}.am-icon-steam:before{content:"\f1b6"}.am-icon-steam-square:before{content:"\f1b7"}.am-icon-recycle:before{content:"\f1b8"}.am-icon-automobile:before,.am-icon-car:before{content:"\f1b9"}.am-icon-cab:before,.am-icon-taxi:before{content:"\f1ba"}.am-icon-tree:before{content:"\f1bb"}.am-icon-spotify:before{content:"\f1bc"}.am-icon-deviantart:before{content:"\f1bd"}.am-icon-soundcloud:before{content:"\f1be"}.am-icon-database:before{content:"\f1c0"}.am-icon-file-pdf-o:before{content:"\f1c1"}.am-icon-file-word-o:before{content:"\f1c2"}.am-icon-file-excel-o:before{content:"\f1c3"}.am-icon-file-powerpoint-o:before{content:"\f1c4"}.am-icon-file-image-o:before,.am-icon-file-photo-o:before,.am-icon-file-picture-o:before{content:"\f1c5"}.am-icon-file-archive-o:before,.am-icon-file-zip-o:before{content:"\f1c6"}.am-icon-file-audio-o:before,.am-icon-file-sound-o:before{content:"\f1c7"}.am-icon-file-movie-o:before,.am-icon-file-video-o:before{content:"\f1c8"}.am-icon-file-code-o:before{content:"\f1c9"}.am-icon-vine:before{content:"\f1ca"}.am-icon-codepen:before{content:"\f1cb"}.am-icon-jsfiddle:before{content:"\f1cc"}.am-icon-life-bouy:before,.am-icon-life-buoy:before,.am-icon-life-ring:before,.am-icon-life-saver:before,.am-icon-support:before{content:"\f1cd"}.am-icon-circle-o-notch:before{content:"\f1ce"}.am-icon-ra:before,.am-icon-rebel:before,.am-icon-resistance:before{content:"\f1d0"}.am-icon-empire:before,.am-icon-ge:before{content:"\f1d1"}.am-icon-git-square:before{content:"\f1d2"}.am-icon-git:before{content:"\f1d3"}.am-icon-hacker-news:before,.am-icon-y-combinator-square:before,.am-icon-yc-square:before{content:"\f1d4"}.am-icon-tencent-weibo:before{content:"\f1d5"}.am-icon-qq:before{content:"\f1d6"}.am-icon-wechat:before,.am-icon-weixin:before{content:"\f1d7"}.am-icon-paper-plane:before,.am-icon-send:before{content:"\f1d8"}.am-icon-paper-plane-o:before,.am-icon-send-o:before{content:"\f1d9"}.am-icon-history:before{content:"\f1da"}.am-icon-circle-thin:before{content:"\f1db"}.am-icon-header:before{content:"\f1dc"}.am-icon-paragraph:before{content:"\f1dd"}.am-icon-sliders:before{content:"\f1de"}.am-icon-share-alt:before{content:"\f1e0"}.am-icon-share-alt-square:before{content:"\f1e1"}.am-icon-bomb:before{content:"\f1e2"}.am-icon-futbol-o:before,.am-icon-soccer-ball-o:before{content:"\f1e3"}.am-icon-tty:before{content:"\f1e4"}.am-icon-binoculars:before{content:"\f1e5"}.am-icon-plug:before{content:"\f1e6"}.am-icon-slideshare:before{content:"\f1e7"}.am-icon-twitch:before{content:"\f1e8"}.am-icon-yelp:before{content:"\f1e9"}.am-icon-newspaper-o:before{content:"\f1ea"}.am-icon-wifi:before{content:"\f1eb"}.am-icon-calculator:before{content:"\f1ec"}.am-icon-paypal:before{content:"\f1ed"}.am-icon-google-wallet:before{content:"\f1ee"}.am-icon-cc-visa:before{content:"\f1f0"}.am-icon-cc-mastercard:before{content:"\f1f1"}.am-icon-cc-discover:before{content:"\f1f2"}.am-icon-cc-amex:before{content:"\f1f3"}.am-icon-cc-paypal:before{content:"\f1f4"}.am-icon-cc-stripe:before{content:"\f1f5"}.am-icon-bell-slash:before{content:"\f1f6"}.am-icon-bell-slash-o:before{content:"\f1f7"}.am-icon-trash:before{content:"\f1f8"}.am-icon-copyright:before{content:"\f1f9"}.am-icon-at:before{content:"\f1fa"}.am-icon-eyedropper:before{content:"\f1fb"}.am-icon-paint-brush:before{content:"\f1fc"}.am-icon-birthday-cake:before{content:"\f1fd"}.am-icon-area-chart:before{content:"\f1fe"}.am-icon-pie-chart:before{content:"\f200"}.am-icon-line-chart:before{content:"\f201"}.am-icon-lastfm:before{content:"\f202"}.am-icon-lastfm-square:before{content:"\f203"}.am-icon-toggle-off:before{content:"\f204"}.am-icon-toggle-on:before{content:"\f205"}.am-icon-bicycle:before{content:"\f206"}.am-icon-bus:before{content:"\f207"}.am-icon-ioxhost:before{content:"\f208"}.am-icon-angellist:before{content:"\f209"}.am-icon-cc:before{content:"\f20a"}.am-icon-ils:before,.am-icon-shekel:before,.am-icon-sheqel:before{content:"\f20b"}.am-icon-meanpath:before{content:"\f20c"}.am-icon-buysellads:before{content:"\f20d"}.am-icon-connectdevelop:before{content:"\f20e"}.am-icon-dashcube:before{content:"\f210"}.am-icon-forumbee:before{content:"\f211"}.am-icon-leanpub:before{content:"\f212"}.am-icon-sellsy:before{content:"\f213"}.am-icon-shirtsinbulk:before{content:"\f214"}.am-icon-simplybuilt:before{content:"\f215"}.am-icon-skyatlas:before{content:"\f216"}.am-icon-cart-plus:before{content:"\f217"}.am-icon-cart-arrow-down:before{content:"\f218"}.am-icon-diamond:before{content:"\f219"}.am-icon-ship:before{content:"\f21a"}.am-icon-user-secret:before{content:"\f21b"}.am-icon-motorcycle:before{content:"\f21c"}.am-icon-street-view:before{content:"\f21d"}.am-icon-heartbeat:before{content:"\f21e"}.am-icon-venus:before{content:"\f221"}.am-icon-mars:before{content:"\f222"}.am-icon-mercury:before{content:"\f223"}.am-icon-intersex:before,.am-icon-transgender:before{content:"\f224"}.am-icon-transgender-alt:before{content:"\f225"}.am-icon-venus-double:before{content:"\f226"}.am-icon-mars-double:before{content:"\f227"}.am-icon-venus-mars:before{content:"\f228"}.am-icon-mars-stroke:before{content:"\f229"}.am-icon-mars-stroke-v:before{content:"\f22a"}.am-icon-mars-stroke-h:before{content:"\f22b"}.am-icon-neuter:before{content:"\f22c"}.am-icon-genderless:before{content:"\f22d"}.am-icon-facebook-official:before{content:"\f230"}.am-icon-pinterest-p:before{content:"\f231"}.am-icon-whatsapp:before{content:"\f232"}.am-icon-server:before{content:"\f233"}.am-icon-user-plus:before{content:"\f234"}.am-icon-user-times:before{content:"\f235"}.am-icon-bed:before,.am-icon-hotel:before{content:"\f236"}.am-icon-viacoin:before{content:"\f237"}.am-icon-train:before{content:"\f238"}.am-icon-subway:before{content:"\f239"}.am-icon-medium:before{content:"\f23a"}.am-icon-y-combinator:before,.am-icon-yc:before{content:"\f23b"}.am-icon-optin-monster:before{content:"\f23c"}.am-icon-opencart:before{content:"\f23d"}.am-icon-expeditedssl:before{content:"\f23e"}.am-icon-battery-4:before,.am-icon-battery-full:before{content:"\f240"}.am-icon-battery-3:before,.am-icon-battery-three-quarters:before{content:"\f241"}.am-icon-battery-2:before,.am-icon-battery-half:before{content:"\f242"}.am-icon-battery-1:before,.am-icon-battery-quarter:before{content:"\f243"}.am-icon-battery-0:before,.am-icon-battery-empty:before{content:"\f244"}.am-icon-mouse-pointer:before{content:"\f245"}.am-icon-i-cursor:before{content:"\f246"}.am-icon-object-group:before{content:"\f247"}.am-icon-object-ungroup:before{content:"\f248"}.am-icon-sticky-note:before{content:"\f249"}.am-icon-sticky-note-o:before{content:"\f24a"}.am-icon-cc-jcb:before{content:"\f24b"}.am-icon-cc-diners-club:before{content:"\f24c"}.am-icon-clone:before{content:"\f24d"}.am-icon-balance-scale:before{content:"\f24e"}.am-icon-hourglass-o:before{content:"\f250"}.am-icon-hourglass-1:before,.am-icon-hourglass-start:before{content:"\f251"}.am-icon-hourglass-2:before,.am-icon-hourglass-half:before{content:"\f252"}.am-icon-hourglass-3:before,.am-icon-hourglass-end:before{content:"\f253"}.am-icon-hourglass:before{content:"\f254"}.am-icon-hand-grab-o:before,.am-icon-hand-rock-o:before{content:"\f255"}.am-icon-hand-paper-o:before,.am-icon-hand-stop-o:before{content:"\f256"}.am-icon-hand-scissors-o:before{content:"\f257"}.am-icon-hand-lizard-o:before{content:"\f258"}.am-icon-hand-spock-o:before{content:"\f259"}.am-icon-hand-pointer-o:before{content:"\f25a"}.am-icon-hand-peace-o:before{content:"\f25b"}.am-icon-trademark:before{content:"\f25c"}.am-icon-registered:before{content:"\f25d"}.am-icon-creative-commons:before{content:"\f25e"}.am-icon-gg:before{content:"\f260"}.am-icon-gg-circle:before{content:"\f261"}.am-icon-tripadvisor:before{content:"\f262"}.am-icon-odnoklassniki:before{content:"\f263"}.am-icon-odnoklassniki-square:before{content:"\f264"}.am-icon-get-pocket:before{content:"\f265"}.am-icon-wikipedia-w:before{content:"\f266"}.am-icon-safari:before{content:"\f267"}.am-icon-chrome:before{content:"\f268"}.am-icon-firefox:before{content:"\f269"}.am-icon-opera:before{content:"\f26a"}.am-icon-internet-explorer:before{content:"\f26b"}.am-icon-television:before,.am-icon-tv:before{content:"\f26c"}.am-icon-contao:before{content:"\f26d"}.am-icon-500px:before{content:"\f26e"}.am-icon-amazon:before{content:"\f270"}.am-icon-calendar-plus-o:before{content:"\f271"}.am-icon-calendar-minus-o:before{content:"\f272"}.am-icon-calendar-times-o:before{content:"\f273"}.am-icon-calendar-check-o:before{content:"\f274"}.am-icon-industry:before{content:"\f275"}.am-icon-map-pin:before{content:"\f276"}.am-icon-map-signs:before{content:"\f277"}.am-icon-map-o:before{content:"\f278"}.am-icon-map:before{content:"\f279"}.am-icon-commenting:before{content:"\f27a"}.am-icon-commenting-o:before{content:"\f27b"}.am-icon-houzz:before{content:"\f27c"}.am-icon-vimeo:before{content:"\f27d"}.am-icon-black-tie:before{content:"\f27e"}.am-icon-fonticons:before{content:"\f280"}.am-icon-reddit-alien:before{content:"\f281"}.am-icon-edge:before{content:"\f282"}.am-icon-credit-card-alt:before{content:"\f283"}.am-icon-codiepie:before{content:"\f284"}.am-icon-modx:before{content:"\f285"}.am-icon-fort-awesome:before{content:"\f286"}.am-icon-usb:before{content:"\f287"}.am-icon-product-hunt:before{content:"\f288"}.am-icon-mixcloud:before{content:"\f289"}.am-icon-scribd:before{content:"\f28a"}.am-icon-pause-circle:before{content:"\f28b"}.am-icon-pause-circle-o:before{content:"\f28c"}.am-icon-stop-circle:before{content:"\f28d"}.am-icon-stop-circle-o:before{content:"\f28e"}.am-icon-shopping-bag:before{content:"\f290"}.am-icon-shopping-basket:before{content:"\f291"}.am-icon-hashtag:before{content:"\f292"}.am-icon-bluetooth:before{content:"\f293"}.am-icon-bluetooth-b:before{content:"\f294"}.am-icon-percent:before{content:"\f295"}.am-icon-gitlab:before{content:"\f296"}.am-icon-wpbeginner:before{content:"\f297"}.am-icon-wpforms:before{content:"\f298"}.am-icon-envira:before{content:"\f299"}.am-icon-universal-access:before{content:"\f29a"}.am-icon-wheelchair-alt:before{content:"\f29b"}.am-icon-question-circle-o:before{content:"\f29c"}.am-icon-blind:before{content:"\f29d"}.am-icon-audio-description:before{content:"\f29e"}.am-icon-volume-control-phone:before{content:"\f2a0"}.am-icon-braille:before{content:"\f2a1"}.am-icon-assistive-listening-systems:before{content:"\f2a2"}.am-icon-american-sign-language-interpreting:before,.am-icon-asl-interpreting:before{content:"\f2a3"}.am-icon-deaf:before,.am-icon-deafness:before,.am-icon-hard-of-hearing:before{content:"\f2a4"}.am-icon-glide:before{content:"\f2a5"}.am-icon-glide-g:before{content:"\f2a6"}.am-icon-sign-language:before,.am-icon-signing:before{content:"\f2a7"}.am-icon-low-vision:before{content:"\f2a8"}.am-icon-viadeo:before{content:"\f2a9"}.am-icon-viadeo-square:before{content:"\f2aa"}.am-icon-snapchat:before{content:"\f2ab"}.am-icon-snapchat-ghost:before{content:"\f2ac"}.am-icon-snapchat-square:before{content:"\f2ad"}.am-icon-pied-piper:before{content:"\f2ae"}.am-icon-first-order:before{content:"\f2b0"}.am-icon-yoast:before{content:"\f2b1"}.am-icon-themeisle:before{content:"\f2b2"}.am-icon-google-plus-circle:before,.am-icon-google-plus-official:before{content:"\f2b3"}.am-icon-fa:before,.am-icon-font-awesome:before{content:"\f2b4"}@-webkit-keyframes icon-spin{0%{-webkit-transform:rotate(0);transform:rotate(0)}100%{-webkit-transform:rotate(359deg);transform:rotate(359deg)}}@keyframes icon-spin{0%{-webkit-transform:rotate(0);transform:rotate(0)}100%{-webkit-transform:rotate(359deg);transform:rotate(359deg)}}.am-icon-spin{-webkit-animation:icon-spin 2s infinite linear;animation:icon-spin 2s infinite linear}.am-icon-pulse{-webkit-animation:icon-spin 1s infinite steps(8);animation:icon-spin 1s infinite steps(8)}.am-icon-ul{padding-left:0;margin-left:2.14285714em;list-style-type:none}.am-icon-ul>li{position:relative}.am-icon-li{position:absolute;left:-2.14285714em;width:2.14285714em;top:.14285714em;text-align:center}.am-input-group{position:relative;display:table;border-collapse:separate}.am-input-group .am-form-field{position:relative;z-index:2;float:left;width:100%;margin-bottom:0}.am-input-group .am-form-field,.am-input-group-btn,.am-input-group-label{display:table-cell}.am-input-group .am-form-field:not(:first-child):not(:last-child),.am-input-group-btn:not(:first-child):not(:last-child),.am-input-group-label:not(:first-child):not(:last-child){border-radius:0}.am-input-group-btn,.am-input-group-label{width:1%;white-space:nowrap;vertical-align:middle}.am-input-group-label{height:38px;padding:0 1em;font-size:1.6rem;font-weight:400;line-height:36px;color:#555;text-align:center;background-color:#eee;border:1px solid #ccc;border-radius:0}.am-input-group-label input[type=checkbox],.am-input-group-label input[type=radio]{margin-top:0}.am-input-group .am-form-field:first-child,.am-input-group-btn:first-child>.am-btn,.am-input-group-btn:first-child>.am-btn-group>.am-btn,.am-input-group-btn:first-child>.am-dropdown-toggle,.am-input-group-btn:last-child>.am-btn-group:not(:last-child)>.am-btn,.am-input-group-btn:last-child>.am-btn:not(:last-child):not(.dropdown-toggle),.am-input-group-label:first-child{border-bottom-right-radius:0;border-top-right-radius:0}.am-input-group-label:first-child{border-right:0}.am-input-group .am-form-field:last-child,.am-input-group-btn:first-child>.am-btn-group:not(:first-child)>.am-btn,.am-input-group-btn:first-child>.am-btn:not(:first-child),.am-input-group-btn:last-child>.am-btn,.am-input-group-btn:last-child>.am-btn-group>.am-btn,.am-input-group-btn:last-child>.am-dropdown-toggle,.am-input-group-label:last-child{border-bottom-left-radius:0;border-top-left-radius:0}.am-input-group-label:last-child{border-left:0}.am-input-group-btn{position:relative;font-size:0;white-space:nowrap}.am-input-group-btn>.am-btn{position:relative;border-color:#ccc}.am-input-group-btn>.am-btn+.am-btn{margin-left:-1px}.am-input-group-btn>.am-btn:active,.am-input-group-btn>.am-btn:focus,.am-input-group-btn>.am-btn:hover{z-index:2}.am-input-group-btn:first-child>.am-btn,.am-input-group-btn:first-child>.am-btn-group{margin-right:-2px}.am-input-group-btn:last-child>.am-btn,.am-input-group-btn:last-child>.am-btn-group{margin-left:-1px}.am-input-group .am-form-field,.am-input-group-btn>.am-btn{height:38px;padding-bottom:auto}.am-input-group-lg>.am-form-field,.am-input-group-lg>.am-input-group-btn>.am-btn,.am-input-group-lg>.am-input-group-label{height:42px;font-size:1.8rem!important}.am-input-group-lg>.am-input-group-label{line-height:40px}.am-input-group-sm>.am-form-field,.am-input-group-sm>.am-input-group-btn>.am-btn,.am-input-group-sm>.am-input-group-label{height:33px;font-size:1.4rem!important}.am-input-group-sm>.am-input-group-label{line-height:31px}.am-input-group-primary .am-input-group-label{background:#1f262c;color:#fff}.am-input-group-primary .am-input-group-btn>.am-btn,.am-input-group-primary .am-input-group-label,.am-input-group-primary.am-input-group .am-form-field{border-color:#1f262c}.am-input-group-secondary .am-input-group-label{background:#5bb75b;color:#fff}.am-input-group-secondary .am-input-group-btn>.am-btn,.am-input-group-secondary .am-input-group-label,.am-input-group-secondary.am-input-group .am-form-field{border-color:#5bb75b}.am-input-group-success .am-input-group-label{background:#5eb95e;color:#fff}.am-input-group-success .am-input-group-btn>.am-btn,.am-input-group-success .am-input-group-label,.am-input-group-success.am-input-group .am-form-field{border-color:#5eb95e}.am-input-group-warning .am-input-group-label{background:#F37B1D;color:#fff}.am-input-group-warning .am-input-group-btn>.am-btn,.am-input-group-warning .am-input-group-label,.am-input-group-warning.am-input-group .am-form-field{border-color:#F37B1D}.am-input-group-danger .am-input-group-label{background:#dd514c;color:#fff}.am-input-group-danger .am-input-group-btn>.am-btn,.am-input-group-danger .am-input-group-label,.am-input-group-danger.am-input-group .am-form-field{border-color:#dd514c}.am-list{margin-bottom:1.6rem;padding-left:0}.am-list>li{position:relative;display:block;margin-bottom:-1px;background-color:#fff;border:1px solid #dedede;border-width:1px 0}.am-list>li>a{display:block;padding:1rem 0}.am-list>li>a.am-active,.am-list>li>a.am-active:focus,.am-list>li>a.am-active:hover{z-index:2;color:#fff;background-color:#1f262c;border-color:#1f262c}.am-list>li>a.am-active .am-list-item-heading,.am-list>li>a.am-active:focus .am-list-item-heading,.am-list>li>a.am-active:hover .am-list-item-heading{color:inherit}.am-list>li>a.am-active .am-list-item-text,.am-list>li>a.am-active:focus .am-list-item-text,.am-list>li>a.am-active:hover .am-list-item-text{color:#b2e2fa}.am-list>li>.am-badge{float:right}.am-list>li>.am-badge+.am-badge{margin-right:5px}.am-list-static>li{padding:.8rem .2rem}.am-list-static.am-list-border>li{padding:1rem}.am-list-border>li,.am-list-bordered>li{border-width:1px}.am-list-border>li:first-child,.am-list-border>li:first-child>a,.am-list-bordered>li:first-child,.am-list-bordered>li:first-child>a{border-top-right-radius:0;border-top-left-radius:0}.am-list-border>li:last-child,.am-list-border>li:last-child>a,.am-list-bordered>li:last-child,.am-list-bordered>li:last-child>a{margin-bottom:0;border-bottom-right-radius:0;border-bottom-left-radius:0}.am-list-border>li>a,.am-list-bordered>li>a{padding:1rem}.am-list-border>li>a:focus,.am-list-border>li>a:hover,.am-list-bordered>li>a:focus,.am-list-bordered>li>a:hover{background-color:#f5f5f5}.am-list-striped>li:nth-of-type(even){background:#f5f5f5}.am-list-item-hd{margin-top:0}.am-list-item-text{line-height:1.4;font-size:1.3rem;color:#999;margin:0}.am-panel{margin-bottom:20px;background-color:#fff;border:1px solid transparent;border-radius:0;-webkit-box-shadow:0 1px 1px rgba(0,0,0,.05);box-shadow:0 1px 1px rgba(0,0,0,.05)}.am-panel-hd{padding:.6rem 1.25rem;border-bottom:1px solid transparent;border-top-right-radius:0;border-top-left-radius:0}.am-panel-bd{padding:1.25rem}.am-panel-title{margin:0;font-size:100%;color:inherit}.am-panel-title>a{color:inherit}.am-panel-footer{padding:.6rem 1.25rem;background-color:#f5f5f5;border-top:1px solid #ddd;border-bottom-right-radius:0;border-bottom-left-radius:0}.am-panel-default{border-color:#ddd}.am-panel-default>.am-panel-hd{color:#444;background-color:#f5f5f5;border-color:#ddd}.am-panel-default>.am-panel-hd+.am-panel-collapse>.am-panel-bd{border-top-color:#ddd}.am-panel-default>.am-panel-footer+.am-panel-collapse>.am-panel-bd{border-bottom-color:#ddd}.am-panel-primary{border-color:#10a0ea}.am-panel-primary>.am-panel-hd{color:#fff;background-color:#1f262c;border-color:#10a0ea}.am-panel-primary>.am-panel-hd+.am-panel-collapse>.am-panel-bd{border-top-color:#10a0ea}.am-panel-primary>.am-panel-footer+.am-panel-collapse>.am-panel-bd{border-bottom-color:#10a0ea}.am-panel-secondary{border-color:#caebfb}.am-panel-secondary>.am-panel-hd{color:#14a6ef;background-color:rgba(59,180,242,.15);border-color:#caebfb}.am-panel-secondary>.am-panel-hd+.am-panel-collapse>.am-panel-bd{border-top-color:#caebfb}.am-panel-secondary>.am-panel-footer+.am-panel-collapse>.am-panel-bd{border-bottom-color:#caebfb}.am-panel-success{border-color:#c9e7c9}.am-panel-success>.am-panel-hd{color:#5eb95e;background-color:rgba(94,185,94,.15);border-color:#c9e7c9}.am-panel-success>.am-panel-hd+.am-panel-collapse>.am-panel-bd{border-top-color:#c9e7c9}.am-panel-success>.am-panel-footer+.am-panel-collapse>.am-panel-bd{border-bottom-color:#c9e7c9}.am-panel-warning{border-color:#fbd0ae}.am-panel-warning>.am-panel-hd{color:#F37B1D;background-color:rgba(243,123,29,.15);border-color:#fbd0ae}.am-panel-warning>.am-panel-hd+.am-panel-collapse>.am-panel-bd{border-top-color:#fbd0ae}.am-panel-warning>.am-panel-footer+.am-panel-collapse>.am-panel-bd{border-bottom-color:#fbd0ae}.am-panel-danger{border-color:#f5cecd}.am-panel-danger>.am-panel-hd{color:#dd514c;background-color:rgba(221,81,76,.15);border-color:#f5cecd}.am-panel-danger>.am-panel-hd+.am-panel-collapse>.am-panel-bd{border-top-color:#f5cecd}.am-panel-danger>.am-panel-footer+.am-panel-collapse>.am-panel-bd{border-bottom-color:#f5cecd}.am-panel>.am-table{margin-bottom:0}.am-panel>.am-table:first-child{border-top-right-radius:0;border-top-left-radius:0}.am-panel>.am-table:first-child>tbody:first-child>tr:first-child td:first-child,.am-panel>.am-table:first-child>tbody:first-child>tr:first-child th:first-child,.am-panel>.am-table:first-child>thead:first-child>tr:first-child td:first-child,.am-panel>.am-table:first-child>thead:first-child>tr:first-child th:first-child{border-top-left-radius:0}.am-panel>.am-table:first-child>tbody:first-child>tr:first-child td:last-child,.am-panel>.am-table:first-child>tbody:first-child>tr:first-child th:last-child,.am-panel>.am-table:first-child>thead:first-child>tr:first-child td:last-child,.am-panel>.am-table:first-child>thead:first-child>tr:first-child th:last-child{border-top-right-radius:0}.am-panel>.am-table:last-child{border-bottom-right-radius:0;border-bottom-left-radius:0}.am-panel>.am-table:last-child>tbody:last-child>tr:last-child td:first-child,.am-panel>.am-table:last-child>tbody:last-child>tr:last-child th:first-child,.am-panel>.am-table:last-child>tfoot:last-child>tr:last-child td:first-child,.am-panel>.am-table:last-child>tfoot:last-child>tr:last-child th:first-child{border-bottom-left-radius:0}.am-panel>.am-table:last-child>tbody:last-child>tr:last-child td:last-child,.am-panel>.am-table:last-child>tbody:last-child>tr:last-child th:last-child,.am-panel>.am-table:last-child>tfoot:last-child>tr:last-child td:last-child,.am-panel>.am-table:last-child>tfoot:last-child>tr:last-child th:last-child{border-bottom-right-radius:0}.am-panel>.am-panel-bd+.am-table{border-top:1px solid #ddd}.am-panel>.am-table>tbody:first-child>tr:first-child td,.am-panel>.am-table>tbody:first-child>tr:first-child th{border-top:0}.am-panel>.am-table-bd{border:0}.am-panel>.am-table-bd>tbody>tr>td:first-child,.am-panel>.am-table-bd>tbody>tr>th:first-child,.am-panel>.am-table-bd>tfoot>tr>td:first-child,.am-panel>.am-table-bd>tfoot>tr>th:first-child,.am-panel>.am-table-bd>thead>tr>td:first-child,.am-panel>.am-table-bd>thead>tr>th:first-child{border-left:0}.am-panel>.am-table-bd>tbody>tr>td:last-child,.am-panel>.am-table-bd>tbody>tr>th:last-child,.am-panel>.am-table-bd>tfoot>tr>td:last-child,.am-panel>.am-table-bd>tfoot>tr>th:last-child,.am-panel>.am-table-bd>thead>tr>td:last-child,.am-panel>.am-table-bd>thead>tr>th:last-child{border-right:0}.am-panel>.am-table-bd>tbody>tr:first-child>td,.am-panel>.am-table-bd>tbody>tr:first-child>th,.am-panel>.am-table-bd>thead>tr:first-child>td,.am-panel>.am-table-bd>thead>tr:first-child>th{border-bottom:0}.am-panel>.am-table-bd>tbody>tr:last-child>td,.am-panel>.am-table-bd>tbody>tr:last-child>th,.am-panel>.am-table-bd>tfoot>tr:last-child>td,.am-panel>.am-table-bd>tfoot>tr:last-child>th{border-bottom:0}.am-panel>.am-list{margin:0}.am-panel>.am-list>li>a{padding-left:1rem;padding-right:1rem}.am-panel>.am-list-static li{padding-left:1rem;padding-right:1rem}.am-panel-group{margin-bottom:2rem}.am-panel-group .am-panel{margin-bottom:0;border-radius:0}.am-panel-group .am-panel+.am-panel{margin-top:6px}.am-panel-group .am-panel-hd{border-bottom:0}.am-panel-group .am-panel-hd+.am-panel-collapse .am-panel-bd{border-top:1px solid #ddd}.am-panel-group .am-panel-footer{border-top:0}.am-panel-group .am-panel-footer+.am-panel-collapse .am-panel-bd{border-bottom:1px solid #ddd}@-webkit-keyframes progress-bar-stripes{from{background-position:36px 0}to{background-position:0 0}}@keyframes progress-bar-stripes{from{background-position:36px 0}to{background-position:0 0}}.am-progress{overflow:hidden;height:2rem;margin-bottom:2rem;background-color:#f5f5f5;border-radius:0;-webkit-box-shadow:inset 0 1px 2px rgba(0,0,0,.1);box-shadow:inset 0 1px 2px rgba(0,0,0,.1)}.am-progress-bar{float:left;width:0;height:100%;font-size:1.2rem;line-height:2rem;color:#fff;text-align:center;background-color:#1f262c;-webkit-box-shadow:inset 0 -1px 0 rgba(0,0,0,.15);box-shadow:inset 0 -1px 0 rgba(0,0,0,.15);-webkit-transition:width .6s ease;transition:width .6s ease}.am-progress-striped .am-progress-bar{background-image:-webkit-gradient(linear,0 100%,100% 0,color-stop(.25,rgba(255,255,255,.15)),color-stop(.25,transparent),color-stop(.5,transparent),color-stop(.5,rgba(255,255,255,.15)),color-stop(.75,rgba(255,255,255,.15)),color-stop(.75,transparent),to(transparent));background-image:-webkit-linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent);background-image:linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent);-webkit-background-size:36px 36px;background-size:36px 36px}.am-progress.am-active .am-progress-bar{-webkit-animation:progress-bar-stripes 2s linear infinite;animation:progress-bar-stripes 2s linear infinite}.am-progress-bar[aria-valuenow="1"],.am-progress-bar[aria-valuenow="2"]{min-width:30px}.am-progress-bar[aria-valuenow="0"]{color:#999;min-width:30px;background:0 0;-webkit-box-shadow:none;box-shadow:none}.am-progress-bar-secondary{background-color:#5bb75b}.am-progress-striped .am-progress-bar-secondary{background-image:-webkit-gradient(linear,0 100%,100% 0,color-stop(.25,rgba(255,255,255,.15)),color-stop(.25,transparent),color-stop(.5,transparent),color-stop(.5,rgba(255,255,255,.15)),color-stop(.75,rgba(255,255,255,.15)),color-stop(.75,transparent),to(transparent));background-image:-webkit-linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent);background-image:linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent)}.am-progress-bar-success{background-color:#5eb95e}.am-progress-striped .am-progress-bar-success{background-image:-webkit-gradient(linear,0 100%,100% 0,color-stop(.25,rgba(255,255,255,.15)),color-stop(.25,transparent),color-stop(.5,transparent),color-stop(.5,rgba(255,255,255,.15)),color-stop(.75,rgba(255,255,255,.15)),color-stop(.75,transparent),to(transparent));background-image:-webkit-linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent);background-image:linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent)}.am-progress-bar-warning{background-color:#F37B1D}.am-progress-striped .am-progress-bar-warning{background-image:-webkit-gradient(linear,0 100%,100% 0,color-stop(.25,rgba(255,255,255,.15)),color-stop(.25,transparent),color-stop(.5,transparent),color-stop(.5,rgba(255,255,255,.15)),color-stop(.75,rgba(255,255,255,.15)),color-stop(.75,transparent),to(transparent));background-image:-webkit-linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent);background-image:linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent)}.am-progress-bar-danger{background-color:#dd514c}.am-progress-striped .am-progress-bar-danger{background-image:-webkit-gradient(linear,0 100%,100% 0,color-stop(.25,rgba(255,255,255,.15)),color-stop(.25,transparent),color-stop(.5,transparent),color-stop(.5,rgba(255,255,255,.15)),color-stop(.75,rgba(255,255,255,.15)),color-stop(.75,transparent),to(transparent));background-image:-webkit-linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent);background-image:linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent)}.am-progress-xs{height:.6rem}.am-progress-sm{height:1.2rem}.am-thumbnail{display:block;padding:2px;margin-bottom:2rem;background-color:#fff;border:1px solid #ddd;border-radius:0;-webkit-transition:all .2s ease-in-out;transition:all .2s ease-in-out}.am-thumbnail a>img,.am-thumbnail>img{margin-left:auto;margin-right:auto;display:block}.am-thumbnail a.am-thumbnail.active,.am-thumbnail a.am-thumbnail:focus,.am-thumbnail a.am-thumbnail:hover{border-color:#1f262c;background-color:#fff}.am-thumbnail a>img,.am-thumbnail>img,img.am-thumbnail{max-width:100%;height:auto}.am-thumbnail-caption{margin:0;padding:.8rem;color:#333;font-weight:400}.am-thumbnail-caption :last-child{margin-bottom:0}.am-thumbnails{margin-left:-.5rem;margin-right:-.5rem}.am-thumbnails>li{padding:0 .5rem 1rem .5rem}.am-scrollable-horizontal{width:100%;overflow-y:hidden;overflow-x:auto;/*-ms-overflow-style:-ms-autohiding-scrollbar;*/-webkit-overflow-scrolling:touch}.am-scrollable-vertical{height:240px;overflow-y:scroll;-webkit-overflow-scrolling:touch;resize:vertical}.am-square{border-radius:0}.am-radius{border-radius:2px}.am-round{border-radius:1000px}.am-circle{border-radius:50%}.am-cf:after,.am-cf:before{content:" ";display:table}.am-cf:after{clear:both}.am-fl{float:left}.am-fr{float:right}.am-nbfc{overflow:hidden}.am-center{display:block;margin-left:auto;margin-right:auto}.am-block{display:block!important}.am-inline{display:inline!important}.am-inline-block{display:inline-block!important}.am-hide{display:none!important;visibility:hidden!important}.am-vertical-align{font-size:0}.am-vertical-align:before{content:'';display:inline-block;height:100%;vertical-align:middle}.am-vertical-align-bottom,.am-vertical-align-middle{display:inline-block;font-size:1.6rem;max-width:100%}.am-vertical-align-middle{vertical-align:middle}.am-vertical-align-bottom{vertical-align:bottom}.am-responsive-width{-webkit-box-sizing:border-box;box-sizing:border-box;max-width:100%;height:auto}.am-margin{margin:1.6rem}.am-margin-0{margin:0!important}.am-margin-xs{margin:.5rem}.am-margin-sm{margin:1rem}.am-margin-lg{margin:2.4rem}.am-margin-xl{margin:3.2rem}.am-margin-horizontal{margin-left:1.6rem;margin-right:1.6rem}.am-margin-horizontal-0{margin-left:0!important;margin-right:0!important}.am-margin-horizontal-xs{margin-left:.5rem;margin-right:.5rem}.am-margin-horizontal-sm{margin-left:1rem;margin-right:1rem}.am-margin-horizontal-lg{margin-left:2.4rem;margin-right:2.4rem}.am-margin-horizontal-xl{margin-left:3.2rem;margin-right:3.2rem}.am-margin-vertical{margin-top:1.6rem;margin-bottom:1.6rem}.am-margin-vertical-0{margin-top:0!important;margin-bottom:0!important}.am-margin-vertical-xs{margin-top:.5rem;margin-bottom:.5rem}.am-margin-vertical-sm{margin-top:1rem;margin-bottom:1rem}.am-margin-vertical-lg{margin-top:2.4rem;margin-bottom:2.4rem}.am-margin-vertical-xl{margin-top:3.2rem;margin-bottom:3.2rem}.am-margin-top{margin-top:1.6rem}.am-margin-top-0{margin-top:0!important}.am-margin-top-xs{margin-top:.5rem}.am-margin-top-sm{margin-top:1rem}.am-margin-top-lg{margin-top:2.4rem}.am-margin-top-xl{margin-top:3.2rem}.am-margin-bottom{margin-bottom:1.6rem}.am-margin-bottom-0{margin-bottom:0!important}.am-margin-bottom-xs{margin-bottom:.5rem}.am-margin-bottom-sm{margin-bottom:1rem}.am-margin-bottom-lg{margin-bottom:2.4rem}.am-margin-bottom-xl{margin-bottom:3.2rem}.am-margin-left{margin-left:1.6rem}.am-margin-left-0{margin-left:0!important}.am-margin-left-xs{margin-left:.5rem}.am-margin-left-sm{margin-left:1rem}.am-margin-left-lg{margin-left:2.4rem}.am-margin-left-xl{margin-left:3.2rem}.am-margin-right{margin-right:1.6rem}.am-margin-right-0{margin-right:0!important}.am-margin-right-xs{margin-right:.5rem}.am-margin-right-sm{margin-right:1rem}.am-margin-right-lg{margin-right:2.4rem}.am-margin-right-xl{margin-right:3.2rem}.am-padding{padding:1.6rem}.am-padding-0{padding:0!important}.am-padding-xs{padding:.5rem}.am-padding-sm{padding:1rem}.am-padding-lg{padding:2.4rem}.am-padding-xl{padding:3.2rem}.am-padding-horizontal{padding-left:1.6rem;padding-right:1.6rem}.am-padding-horizontal-0{padding-left:0!important;padding-right:0!important}.am-padding-horizontal-xs{padding-left:.5rem;padding-right:.5rem}.am-padding-horizontal-sm{padding-left:1rem;padding-right:1rem}.am-padding-horizontal-lg{padding-left:2.4rem;padding-right:2.4rem}.am-padding-horizontal-xl{padding-left:3.2rem;padding-right:3.2rem}.am-padding-vertical{padding-top:1.6rem;padding-bottom:1.6rem}.am-padding-vertical-0{padding-top:0!important;padding-bottom:0!important}.am-padding-vertical-xs{padding-top:.5rem;padding-bottom:.5rem}.am-padding-vertical-sm{padding-top:1rem;padding-bottom:1rem}.am-padding-vertical-lg{padding-top:2.4rem;padding-bottom:2.4rem}.am-padding-vertical-xl{padding-top:3.2rem;padding-bottom:3.2rem}.am-padding-top{padding-top:1.6rem}.am-padding-top-0{padding-top:0!important}.am-padding-top-xs{padding-top:.5rem}.am-padding-top-sm{padding-top:1rem}.am-padding-top-lg{padding-top:2.4rem}.am-padding-top-xl{padding-top:3.2rem}.am-padding-bottom{padding-bottom:1.6rem}.am-padding-bottom-0{padding-bottom:0!important}.am-padding-bottom-xs{padding-bottom:.5rem}.am-padding-bottom-sm{padding-bottom:1rem}.am-padding-bottom-lg{padding-bottom:2.4rem}.am-padding-bottom-xl{padding-bottom:3.2rem}.am-padding-left{padding-left:1.6rem}.am-padding-left-0{padding-left:0!important}.am-padding-left-xs{padding-left:.5rem}.am-padding-left-sm{padding-left:1rem}.am-padding-left-lg{padding-left:2.4rem}.am-padding-left-xl{padding-left:3.2rem}.am-padding-right{padding-right:1.6rem}.am-padding-right-0{padding-right:0!important}.am-padding-right-xs{padding-right:.5rem}.am-padding-right-sm{padding-right:1rem}.am-padding-right-lg{padding-right:2.4rem}.am-padding-right-xl{padding-right:3.2rem}@media only screen{.am-hide-lg,.am-hide-lg-only,.am-hide-lg-up,.am-hide-md,.am-hide-md-only,.am-hide-md-up,.am-show-lg-down,.am-show-md-down,.am-show-sm,.am-show-sm-down,.am-show-sm-only,.am-show-sm-up{display:inherit!important}.am-hide-lg-down,.am-hide-md-down,.am-hide-sm,.am-hide-sm-down,.am-hide-sm-only,.am-hide-sm-up,.am-show-lg,.am-show-lg-only,.am-show-lg-up,.am-show-md,.am-show-md-only,.am-show-md-up{display:none!important}table.am-hide-lg,table.am-hide-lg-only,table.am-hide-lg-up,table.am-hide-md,table.am-hide-md-only,table.am-hide-md-up,table.am-show-lg-down,table.am-show-md-down,table.am-show-sm,table.am-show-sm-down,table.am-show-sm-only,table.am-show-sm-up{display:table!important}thead.am-hide-lg,thead.am-hide-lg-only,thead.am-hide-lg-up,thead.am-hide-md,thead.am-hide-md-only,thead.am-hide-md-up,thead.am-show-lg-down,thead.am-show-md-down,thead.am-show-sm,thead.am-show-sm-down,thead.am-show-sm-only,thead.am-show-sm-up{display:table-header-group!important}tbody.am-hide-lg,tbody.am-hide-lg-only,tbody.am-hide-lg-up,tbody.am-hide-md,tbody.am-hide-md-only,tbody.am-hide-md-up,tbody.am-show-lg-down,tbody.am-show-md-down,tbody.am-show-sm,tbody.am-show-sm-down,tbody.am-show-sm-only,tbody.am-show-sm-up{display:table-row-group!important}tr.am-hide-lg,tr.am-hide-lg-only,tr.am-hide-lg-up,tr.am-hide-md,tr.am-hide-md-only,tr.am-hide-md-up,tr.am-show-lg-down,tr.am-show-md-down,tr.am-show-sm,tr.am-show-sm-down,tr.am-show-sm-only,tr.am-show-sm-up{display:table-row!important}td.am-hide-lg,td.am-hide-lg-only,td.am-hide-lg-up,td.am-hide-md,td.am-hide-md-only,td.am-hide-md-up,td.am-show-lg-down,td.am-show-md-down,td.am-show-sm,td.am-show-sm-down,td.am-show-sm-only,td.am-show-sm-up,th.am-hide-lg,th.am-hide-lg-only,th.am-hide-lg-up,th.am-hide-md,th.am-hide-md-only,th.am-hide-md-up,th.am-show-lg-down,th.am-show-md-down,th.am-show-sm,th.am-show-sm-down,th.am-show-sm-only,th.am-show-sm-up{display:table-cell!important}}@media only screen and (min-width:641px){.am-hide-lg,.am-hide-lg-only,.am-hide-lg-up,.am-hide-sm,.am-hide-sm-down,.am-hide-sm-only,.am-show-lg-down,.am-show-md,.am-show-md-down,.am-show-md-only,.am-show-md-up,.am-show-sm-up{display:inherit!important}.am-hide-lg-down,.am-hide-md,.am-hide-md-down,.am-hide-md-only,.am-hide-md-up,.am-hide-sm-up,.am-show-lg,.am-show-lg-only,.am-show-lg-up,.am-show-sm,.am-show-sm-down,.am-show-sm-only{display:none!important}table.am-hide-lg,table.am-hide-lg-only,table.am-hide-lg-up,table.am-hide-sm,table.am-hide-sm-down,table.am-hide-sm-only,table.am-show-lg-down,table.am-show-md,table.am-show-md-down,table.am-show-md-only,table.am-show-md-up,table.am-show-sm-up{display:table!important}thead.am-hide-lg,thead.am-hide-lg-only,thead.am-hide-lg-up,thead.am-hide-sm,thead.am-hide-sm-down,thead.am-hide-sm-only,thead.am-show-lg-down,thead.am-show-md,thead.am-show-md-down,thead.am-show-md-only,thead.am-show-md-up,thead.am-show-sm-up{display:table-header-group!important}tbody.am-hide-lg,tbody.am-hide-lg-only,tbody.am-hide-lg-up,tbody.am-hide-sm,tbody.am-hide-sm-down,tbody.am-hide-sm-only,tbody.am-show-lg-down,tbody.am-show-md,tbody.am-show-md-down,tbody.am-show-md-only,tbody.am-show-md-up,tbody.am-show-sm-up{display:table-row-group!important}tr.am-hide-lg,tr.am-hide-lg-only,tr.am-hide-lg-up,tr.am-hide-sm,tr.am-hide-sm-down,tr.am-hide-sm-only,tr.am-show-lg-down,tr.am-show-md,tr.am-show-md-down,tr.am-show-md-only,tr.am-show-md-up,tr.am-show-sm-up{display:table-row!important}td.am-hide-lg,td.am-hide-lg-only,td.am-hide-lg-up,td.am-hide-sm,td.am-hide-sm-down,td.am-hide-sm-only,td.am-show-lg-down,td.am-show-md,td.am-show-md-down,td.am-show-md-only,td.am-show-md-up,td.am-show-sm-up,th.am-hide-lg,th.am-hide-lg-only,th.am-hide-lg-up,th.am-hide-sm,th.am-hide-sm-down,th.am-hide-sm-only,th.am-show-lg-down,th.am-show-md,th.am-show-md-down,th.am-show-md-only,th.am-show-md-up,th.am-show-sm-up{display:table-cell!important}}@media only screen and (min-width:1025px){.am-hide-md,.am-hide-md-down,.am-hide-md-only,.am-hide-sm,.am-hide-sm-down,.am-hide-sm-only,.am-show-lg,.am-show-lg-down,.am-show-lg-only,.am-show-lg-up,.am-show-md-up,.am-show-sm-up{display:inherit!important}.am-hide-lg,.am-hide-lg-down,.am-hide-lg-only,.am-hide-lg-up,.am-hide-md-up,.am-hide-sm-up,.am-show-md,.am-show-md-down,.am-show-md-only,.am-show-sm,.am-show-sm-down,.am-show-sm-only{display:none!important}table.am-hide-md,table.am-hide-md-down,table.am-hide-md-only,table.am-hide-sm,table.am-hide-sm-down,table.am-hide-sm-only,table.am-show-lg,table.am-show-lg-down,table.am-show-lg-only,table.am-show-lg-up,table.am-show-md-up,table.am-show-sm-up{display:table!important}thead.am-hide-md,thead.am-hide-md-down,thead.am-hide-md-only,thead.am-hide-sm,thead.am-hide-sm-down,thead.am-hide-sm-only,thead.am-show-lg,thead.am-show-lg-down,thead.am-show-lg-only,thead.am-show-lg-up,thead.am-show-md-up,thead.am-show-sm-up{display:table-header-group!important}tbody.am-hide-md,tbody.am-hide-md-down,tbody.am-hide-md-only,tbody.am-hide-sm,tbody.am-hide-sm-down,tbody.am-hide-sm-only,tbody.am-show-lg,tbody.am-show-lg-down,tbody.am-show-lg-only,tbody.am-show-lg-up,tbody.am-show-md-up,tbody.am-show-sm-up{display:table-row-group!important}tr.am-hide-md,tr.am-hide-md-down,tr.am-hide-md-only,tr.am-hide-sm,tr.am-hide-sm-down,tr.am-hide-sm-only,tr.am-show-lg,tr.am-show-lg-down,tr.am-show-lg-only,tr.am-show-lg-up,tr.am-show-md-up,tr.am-show-sm-up{display:table-row!important}td.am-hide-md,td.am-hide-md-down,td.am-hide-md-only,td.am-hide-sm,td.am-hide-sm-down,td.am-hide-sm-only,td.am-show-lg,td.am-show-lg-down,td.am-show-lg-only,td.am-show-lg-up,td.am-show-md-up,td.am-show-sm-up,th.am-hide-md,th.am-hide-md-down,th.am-hide-md-only,th.am-hide-sm,th.am-hide-sm-down,th.am-hide-sm-only,th.am-show-lg,th.am-show-lg-down,th.am-show-lg-only,th.am-show-lg-up,th.am-show-md-up,th.am-show-sm-up{display:table-cell!important}}@media only screen and (orientation:landscape){.am-hide-portrait,.am-show-landscape{display:inherit!important}.am-hide-landscape,.am-show-portrait{display:none!important}}@media only screen and (orientation:portrait){.am-hide-landscape,.am-show-portrait{display:inherit!important}.am-hide-portrait,.am-show-landscape{display:none!important}}.am-sans-serif{font-family:"Segoe UI","Lucida Grande",Helvetica,Arial,"Microsoft YaHei",FreeSans,Arimo,"Droid Sans","wenquanyi micro hei","Hiragino Sans GB","Hiragino Sans GB W3",FontAwesome,sans-serif}.am-serif{font-family:Georgia,"Times New Roman",Times,SimSun,FontAwesome,serif}.am-kai{font-family:Georgia,"Times New Roman",Times,Kai,"Kaiti SC",KaiTi,BiauKai,FontAwesome,serif}.am-monospace{font-family:Monaco,Menlo,Consolas,"Courier New",FontAwesome,monospace}.am-text-primary{color:#1f262c}.am-text-secondary{color:#5bb75b}.am-text-success{color:#5eb95e}.am-text-warning{color:#F37B1D}.am-text-danger{color:#dd514c}.am-link-muted{color:#666}.am-link-muted a{color:#666}.am-link-muted a:hover,.am-link-muted:hover{color:#555}.am-text-default{font-size:1.6rem}.am-text-xs{font-size:1.2rem}.am-text-sm{font-size:1.4rem}.am-text-lg{font-size:1.8rem}.am-text-xl{font-size:2.4rem}.am-text-xxl{font-size:3.2rem}.am-text-xxxl{font-size:4.2rem}.am-ellipsis,.am-text-truncate{word-wrap:normal;text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.am-text-break{word-wrap:break-word;-webkit-hyphens:auto;-ms-hyphens:auto;-moz-hyphens:auto;hyphens:auto}.am-text-nowrap{white-space:nowrap}[class*=am-align-]{margin-bottom:1rem}.am-align-left{margin-right:1rem;float:left}.am-align-right{margin-left:1rem;float:right}.am-sr-only{position:absolute;width:1px;height:1px;margin:-1px;padding:0;overflow:hidden;clip:rect(0,0,0,0);border:0}.am-text-ir{font:0/0 a;color:transparent;text-shadow:none;background-color:transparent;border:0}@media only screen{.am-text-left{text-align:left!important}.am-text-right{text-align:right!important}.am-text-center{text-align:center!important}.am-text-justify{text-align:justify!important}}@media only screen and (max-width:640px){.am-sm-only-text-left{text-align:left!important}.am-sm-only-text-right{text-align:right!important}.am-sm-only-text-center{text-align:center!important}.am-sm-only-text-justify{text-align:justify!important}}@media only screen and (min-width:641px) and (max-width:1024px){.am-md-only-text-left{text-align:left!important}.am-md-only-text-right{text-align:right!important}.am-md-only-text-center{text-align:center!important}.am-md-only-text-justify{text-align:justify!important}}@media only screen and (min-width:641px){.am-md-text-left{text-align:left!important}.am-md-text-right{text-align:right!important}.am-md-text-center{text-align:center!important}.am-md-text-justify{text-align:justify!important}}@media only screen and (min-width:1025px){.am-lg-text-left{text-align:left!important}.am-lg-text-right{text-align:right!important}.am-lg-text-center{text-align:center!important}.am-lg-text-justify{text-align:justify!important}}.am-text-top{vertical-align:top!important}.am-text-middle{vertical-align:middle!important}.am-text-bottom{vertical-align:bottom!important}.am-angle{position:absolute}.am-angle:after,.am-angle:before{position:absolute;display:block;content:"";width:0;height:0;border:8px dashed transparent;z-index:1}.am-angle-up{top:0}.am-angle-up:after,.am-angle-up:before{border-bottom-style:solid;border-width:0 8px 8px}.am-angle-up:before{border-bottom-color:#ddd;bottom:0}.am-angle-up:after{border-bottom-color:#fff;bottom:-1px}.am-angle-down{bottom:-9px}.am-angle-down:after,.am-angle-down:before{border-top-style:solid;border-width:8px 8px 0}.am-angle-down:before{border-top-color:#ddd;bottom:0}.am-angle-down:after{border-top-color:#fff;bottom:1px}.am-angle-left{left:-9px}.am-angle-left:after,.am-angle-left:before{border-right-style:solid;border-width:8px 8px 8px 0}.am-angle-left:before{border-right-color:#ddd;left:0}.am-angle-left:after{border-right-color:#fff;left:1px}.am-angle-right{right:0}.am-angle-right:after,.am-angle-right:before{border-left-style:solid;border-width:8px 0 8px 8px}.am-angle-right:before{border-left-color:#ddd;left:0}.am-angle-right:after{border-left-color:#fff;left:-1px}.am-alert{margin-bottom:1em;padding:.625em;background:#1f262c;color:#fff;border:1px solid #0c7cb5;border-radius:0}.am-alert a{color:#fff}.am-alert h1,.am-alert h2,.am-alert h3,.am-alert h4,.am-alert h5,.am-alert h6{color:inherit}.am-alert .am-close{opacity:.4}.am-alert .am-close:hover{opacity:.6}*+.am-alert{margin-top:1em}.am-alert>:last-child{margin-bottom:0}.am-form-group .am-alert{margin:5px 0 0;padding:.25em .625em;font-size:1.3rem}.am-alert>.am-close:first-child{float:right;height:auto;margin:-3px -5px auto auto}.am-alert>.am-close:first-child+*{margin-top:0}.am-alert-secondary{background-color:#eee;border-color:#dfdfdf;color:#555}.am-alert-success{background-color:#5eb95e;border-color:#4bad4b;color:#fff}.am-alert-warning{background-color:#F37B1D;border-color:#e56c0c;color:#fff}.am-alert-danger{background-color:#dd514c;border-color:#d83832;color:#fff}.am-dropdown{position:relative;display:inline-block}.am-dropdown-toggle:focus{outline:0}.am-dropdown-content{position:absolute;top:100%;left:0;z-index:1020;display:none;float:left;min-width:160px;padding:15px;margin:9px 0 0;text-align:left;line-height:1.6;background-color:#fff;border:1px solid #ddd;border-radius:0;-webkit-background-clip:padding-box;background-clip:padding-box;-webkit-animation-duration:.15s;animation-duration:.15s}.am-dropdown-content:after,.am-dropdown-content:before{position:absolute;display:block;content:"";width:0;height:0;border:8px dashed transparent;z-index:1}.am-dropdown-content:after,.am-dropdown-content:before{border-bottom-style:solid;border-width:0 8px 8px}.am-dropdown-content:before{border-bottom-color:#ddd;bottom:0}.am-dropdown-content:after{border-bottom-color:#fff;bottom:-1px}.am-dropdown-content:after,.am-dropdown-content:before{left:10px;top:-8px;pointer-events:none}.am-dropdown-content:after{top:-7px}.am-active>.am-dropdown-content{display:block}.am-dropdown-content :first-child{margin-top:0}.am-dropdown-up .am-dropdown-content{top:auto;bottom:100%;margin:0 0 9px}.am-dropdown-up .am-dropdown-content:after,.am-dropdown-up .am-dropdown-content:before{border-bottom:none;border-top:8px solid #ddd;top:auto;bottom:-8px}.am-dropdown-up .am-dropdown-content:after{bottom:-7px;border-top-color:#fff}.am-dropdown-flip .am-dropdown-content{left:auto;right:0}.am-dropdown-flip .am-dropdown-content:after,.am-dropdown-flip .am-dropdown-content:before{left:auto;right:10px}ul.am-dropdown-content{list-style:none;padding:5px 0}ul.am-dropdown-content.am-fr{right:0;left:auto}ul.am-dropdown-content .am-divider{height:1px;margin:0rem 0;overflow:hidden;background-color:#e5e5e5}ul.am-dropdown-content>li>a{display:block;padding:6px 20px;clear:both;font-weight:400;color:#333;white-space:nowrap}ul.am-dropdown-content>li>a:focus,ul.am-dropdown-content>li>a:hover{text-decoration:none;color:#262626;background-color:#f5f5f5}ul.am-dropdown-content>.am-active>a,ul.am-dropdown-content>.am-active>a:focus,ul.am-dropdown-content>.am-active>a:hover{color:#fff;text-decoration:none;outline:0;background-color:#1f262c}ul.am-dropdown-content>.am-disabled>a,ul.am-dropdown-content>.am-disabled>a:focus,ul.am-dropdown-content>.am-disabled>a:hover{color:#999}ul.am-dropdown-content>.am-disabled>a:focus,ul.am-dropdown-content>.am-disabled>a:hover{text-decoration:none;background-color:transparent;background-image:none;filter:progid:DXImageTransform.Microsoft.gradient(enabled=false);cursor:not-allowed}.am-dropdown-header{display:block;padding:6px 20px;font-size:1.2rem;color:#999}.am-fr>.am-dropdown-content{right:0;left:auto}.am-fr>.am-dropdown-content:before{right:10px;left:auto}.am-dropdown-animation{-webkit-animation:am-dropdown-animation .15s ease-out;animation:am-dropdown-animation .15s ease-out}@-webkit-keyframes am-dropdown-animation{0%{opacity:1;-webkit-transform:translateY(0);transform:translateY(0)}100%{opacity:0;-webkit-transform:translateY(-10px);transform:translateY(-10px)}}@keyframes am-dropdown-animation{0%{opacity:1;-webkit-transform:translateY(0);transform:translateY(0)}100%{opacity:0;-webkit-transform:translateY(-10px);transform:translateY(-10px)}}.am-slider a:focus,.am-slider a:hover{outline:0}.am-control-nav,.am-direction-nav,.am-slides{margin:0;padding:0;list-style:none}.am-slider{margin:0;padding:0}.am-slider .am-slides:after,.am-slider .am-slides:before{content:" ";display:table}.am-slider .am-slides:after{clear:both}.am-slider .am-slides>li{display:none;-webkit-backface-visibility:hidden;position:relative}.no-js .am-slider .am-slides>li:first-child{display:block}.am-slider .am-slides img{width:100%;display:block}.am-pauseplay span{text-transform:capitalize}.am-slider{position:relative}.am-viewport{-webkit-transition:all 1s ease;transition:all 1s ease}.am-slider-carousel li{margin-right:5px}.am-control-nav{position:absolute}.am-control-nav li{display:inline-block}.am-control-thumbs{position:static;overflow:hidden}.am-control-thumbs img{-webkit-transition:all 1s ease;transition:all 1s ease}.am-slider-slide .am-slides>li{display:none;position:relative}@media all and (transform-3d),(-webkit-transform-3d){.am-slider-slide .am-slides>li{-webkit-transition:-webkit-transform .6s ease-in-out;transition:-webkit-transform .6s ease-in-out;transition:transform .6s ease-in-out;transition:transform .6s ease-in-out,-webkit-transform .6s ease-in-out;-webkit-backface-visibility:hidden;backface-visibility:hidden;-webkit-perspective:1000px;perspective:1000px}.am-slider-slide .am-slides>li.active.right,.am-slider-slide .am-slides>li.next{-webkit-transform:translate3d(100%,0,0);transform:translate3d(100%,0,0);left:0}.am-slider-slide .am-slides>li.active.left,.am-slider-slide .am-slides>li.prev{-webkit-transform:translate3d(-100%,0,0);transform:translate3d(-100%,0,0);left:0}.am-slider-slide .am-slides>li.active,.am-slider-slide .am-slides>li.next.left,.am-slider-slide .am-slides>li.prev.right{-webkit-transform:translate3d(0,0,0);transform:translate3d(0,0,0);left:0}}.am-slider-slide .am-slides>.active,.am-slider-slide .am-slides>.next,.am-slider-slide .am-slides>.prev{display:block}.am-slider-slide .am-slides>.active{left:0}.am-slider-slide .am-slides>.next,.am-slider-slide .am-slides>.prev{position:absolute;top:0;width:100%}.am-slider-slide .am-slides>.next{left:100%}.am-slider-slide .am-slides>.prev{left:-100%}.am-slider-slide .am-slides>.next.left,.am-slider-slide .am-slides>.prev.right{left:0}.am-slider-slide .am-slides>.active.left{left:-100%}.am-slider-slide .am-slides>.active.right{left:100%}.am-slider-default{margin:0 0 20px;background-color:#fff;border-radius:2px;-webkit-box-shadow:0 0 2px rgba(0,0,0,.15);box-shadow:0 0 2px rgba(0,0,0,.15)}.am-slider-default .am-viewport{max-height:2000px;-webkit-transition:all 1s ease;transition:all 1s ease}.loading .am-slider-default .am-viewport{max-height:300px}.am-slider-default .carousel li{margin-right:5px}.am-slider-default .am-direction-nav a{position:absolute;top:50%;z-index:10;display:block;width:36px;height:36px;margin:-18px 0 0;overflow:hidden;opacity:.45;cursor:pointer;color:rgba(0,0,0,.65);-webkit-transition:all .3s ease;transition:all .3s ease}.am-slider-default .am-direction-nav a:before{display:inline-block;font:normal normal normal 1.6rem/1 FontAwesome,sans-serif;font-size:inherit;text-rendering:auto;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;-webkit-transform:translate(0,0);-ms-transform:translate(0,0);transform:translate(0,0);width:100%;color:#333;content:"\f137";font-size:24px!important;text-align:center;line-height:36px!important;height:36px}.am-slider-default .am-direction-nav a.am-next:before{content:"\f138"}.am-slider-default .am-direction-nav .am-prev{left:10px}.am-slider-default .am-direction-nav .am-next{right:10px;text-align:right}.am-slider-default .am-direction-nav .am-disabled{opacity:0!important;cursor:default}.am-slider-default:hover .am-prev{opacity:.7;left:10px}.am-slider-default:hover .am-prev:hover{opacity:1}.am-slider-default:hover .am-next{opacity:.7;right:10px}.am-slider-default:hover .am-next:hover{opacity:1}.am-slider-default .am-pauseplay a{display:block;width:20px;height:20px;position:absolute;bottom:5px;left:10px;opacity:.8;z-index:10;overflow:hidden;cursor:pointer;color:#000}.am-slider-default .am-pauseplay a::before{font:normal normal normal 1.6rem/1 FontAwesome,sans-serif;font-size:inherit;text-rendering:auto;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;-webkit-transform:translate(0,0);-ms-transform:translate(0,0);transform:translate(0,0);font-size:20px;display:inline-block;content:"\f04c"}.am-slider-default .am-pauseplay a:hover{opacity:1}.am-slider-default .am-pauseplay a.am-play::before{content:"\f04b"}.am-slider-default .am-slider-desc{background-color:rgba(0,0,0,.7);position:absolute;bottom:0;padding:10px;width:100%;color:#fff}.am-slider-default .am-control-nav{width:100%;position:absolute;bottom:-15px;text-align:center}.am-slider-default .am-control-nav li{margin:0 6px;display:inline-block}.am-slider-default .am-control-nav li a{width:8px;height:8px;display:block;background-color:#666;background-color:rgba(0,0,0,.5);line-height:0;font-size:0;cursor:pointer;text-indent:-9999px;border-radius:20px;-webkit-box-shadow:inset 0 0 3px rgba(0,0,0,.3);box-shadow:inset 0 0 3px rgba(0,0,0,.3)}.am-slider-default .am-control-nav li a:hover{background-color:#333;background-color:rgba(0,0,0,.7)}.am-slider-default .am-control-nav li a.am-active{background-color:#000;background-color:#1f262c;cursor:default}.am-slider-default .am-control-thumbs{margin:5px 0 0;position:static;overflow:hidden}.am-slider-default .am-control-thumbs li{width:25%;float:left;margin:0}.am-slider-default .am-control-thumbs img{width:100%;height:auto;display:block;opacity:.7;cursor:pointer}.am-slider-default .am-control-thumbs img:hover{opacity:1}.am-slider-default .am-control-thumbs .am-active{opacity:1;cursor:default}.am-slider-default .am-control-thumbs i{position:absolute}.am-modal{position:fixed;top:0;right:0;bottom:0;left:0;z-index:1110;display:none;opacity:0;outline:0;text-align:center;-webkit-transform:scale(1.185);-ms-transform:scale(1.185);transform:scale(1.185);-webkit-transition-property:opacity,-webkit-transform;transition-property:opacity,-webkit-transform;transition-property:transform,opacity;transition-property:transform,opacity,-webkit-transform;-webkit-backface-visibility:hidden;backface-visibility:hidden;-webkit-perspective:1000px;perspective:1000px}.am-modal:focus{outline:0}.am-modal.am-modal-active{opacity:1;-webkit-transition-duration:.3s;transition-duration:.3s;-webkit-transform:scale(1);-ms-transform:scale(1);transform:scale(1);overflow-x:hidden;overflow-y:auto}.am-modal.am-modal-out{opacity:0;z-index:1109;-webkit-transition-duration:.3s;transition-duration:.3s;-webkit-transform:scale(.815);-ms-transform:scale(.815);transform:scale(.815)}.am-modal:before{content:"\200B";display:inline-block;height:100%;vertical-align:middle}.am-modal-dialog{position:relative;display:inline-block;vertical-align:middle;margin-left:auto;margin-right:auto;width:270px;max-width:100%;border-radius:0;background:#f8f8f8}@media only screen and (min-width:641px){.am-modal-dialog{width:540px}}.am-modal-hd{padding:15px 10px 5px 10px;font-size:1.8rem;font-weight:500}.am-modal-hd+.am-modal-bd{padding-top:0}.am-modal-hd .am-close{position:absolute;top:4px;right:4px}.am-modal-bd{padding:15px 10px;text-align:center;border-bottom:1px solid #dedede;border-radius:2px 2px 0 0}.am-modal-bd+.am-modal-bd{margin-top:5px}.am-modal-prompt-input{display:block;margin:5px auto 0 auto;border-radius:0;padding:5px;line-height:1.8rem;width:80%;border:1px solid #dedede;-webkit-appearance:none;-moz-appearance:none;-ms-appearance:none;appearance:none}.am-modal-prompt-input:focus{outline:0;border-color:#d6d6d6}.am-modal-footer{height:44px;overflow:hidden;display:table;width:100%;border-collapse:collapse}.am-modal-btn{display:table-cell!important;padding:0 5px;height:44px;-webkit-box-sizing:border-box!important;box-sizing:border-box!important;font-size:1.6rem;line-height:44px;text-align:center;color:#1f262c;display:block;word-wrap:normal;text-overflow:ellipsis;white-space:nowrap;overflow:hidden;cursor:pointer;border-right:1px solid #dedede}.am-modal-btn:first-child{border-radius:0}.am-modal-btn:last-child{border-right:none;border-radius:0}.am-modal-btn:first-child:last-child{border-radius:0}.am-modal-btn.am-modal-btn-bold{font-weight:500}.am-modal-btn:active{background:#d4d4d4}.am-modal-btn+.am-modal-btn{border-left:1px solid #dedede}.am-modal-no-btn .am-modal-dialog{border-radius:0;border-bottom:none}.am-modal-no-btn .am-modal-bd{border-bottom:none}.am-modal-no-btn .am-modal-footer{display:none}.am-modal-loading .am-modal-bd{border-bottom:none}.am-modal-loading .am-icon-spin{display:inline-block;font-size:2.4rem}.am-modal-loading .am-modal-footer{display:none}.am-modal-actions{position:fixed;left:0;bottom:0;z-index:1110;width:100%;max-height:100%;overflow-x:hidden;overflow-y:auto;text-align:center;border-radius:0;-webkit-transform:translateY(100%);-ms-transform:translateY(100%);transform:translateY(100%);-webkit-transition:-webkit-transform .3s;transition:-webkit-transform .3s;transition:transform .3s;transition:transform .3s,-webkit-transform .3s}.am-modal-actions.am-modal-active{-webkit-transform:translateY(0);-ms-transform:translateY(0);transform:translateY(0)}.am-modal-actions.am-modal-out{z-index:1109;-webkit-transform:translateY(100%);-ms-transform:translateY(100%);transform:translateY(100%)}.am-modal-actions-group{margin:10px}.am-modal-actions-group .am-list{margin:0;border-radius:0}.am-modal-actions-group .am-list>li{margin-bottom:0;border-bottom:none;display:block;word-wrap:normal;text-overflow:ellipsis;white-space:nowrap;overflow:hidden;-webkit-box-shadow:inset 0 1px 0 rgba(0,0,0,.015);box-shadow:inset 0 1px 0 rgba(0,0,0,.015)}.am-modal-actions-group .am-list>li>a{padding:1rem;display:block;word-wrap:normal;text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.am-modal-actions-group .am-list>li:first-child{border-top:none;border-top-right-radius:0;border-top-left-radius:0}.am-modal-actions-group .am-list>li:last-child{border-bottom:none;border-bottom-right-radius:0;border-bottom-left-radius:0}.am-modal-actions-header{padding:1rem;color:#999;font-size:1.4rem}.am-modal-actions-danger{color:#dd514c}.am-modal-actions-danger a{color:inherit}.am-popup{position:fixed;left:0;top:0;width:100%;height:100%;z-index:1110;background:#fff;display:none;overflow:hidden;-webkit-transition-property:-webkit-transform;transition-property:-webkit-transform;transition-property:transform;transition-property:transform,-webkit-transform;-webkit-transform:translateY(100%);-ms-transform:translateY(100%);transform:translateY(100%)}.am-popup.am-modal-active,.am-popup.am-modal-out{-webkit-transition-duration:.3s;transition-duration:.3s}.am-popup.am-modal-active{-webkit-transform:translateY(0);-ms-transform:translateY(0);transform:translateY(0)}.am-popup.am-modal-out{-webkit-transform:translateY(100%);-ms-transform:translateY(100%);transform:translateY(100%)}@media all and (min-width:630px) and (min-height:630px){.am-popup{width:630px;height:630px;left:50%;top:50%;margin-left:-315px;margin-top:-315px;-webkit-transform:translateY(1024px);-ms-transform:translateY(1024px);transform:translateY(1024px)}.am-popup.am-modal-active{-webkit-transform:translateY(0);-ms-transform:translateY(0);transform:translateY(0)}.am-popup.am-modal-out{-webkit-transform:translateY(1024px);-ms-transform:translateY(1024px);transform:translateY(1024px)}}.am-popup-inner{padding-top:44px;height:100%;overflow:auto;-webkit-overflow-scrolling:touch}.am-popup-hd{position:absolute;top:0;z-index:1000;width:100%;height:43px;border-bottom:1px solid #dedede;background-color:#fff}.am-popup-hd .am-popup-title{font-size:1.8rem;font-weight:700;line-height:43px;text-align:center;margin:0 30px;color:#333;display:block;word-wrap:normal;text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.am-popup-hd .am-close{position:absolute;right:10px;top:8px;cursor:pointer;-webkit-transition:all .3s;transition:all .3s;color:#999}.am-popup-hd .am-close:hover{-webkit-transform:rotate(360deg);-ms-transform:rotate(360deg);transform:rotate(360deg);color:#555}.am-popup-bd{padding:15px;background:#f8f8f8;color:#555}.am-offcanvas{display:none;position:fixed;top:0;right:0;bottom:0;left:0;z-index:1090;background:rgba(0,0,0,.15)}.am-offcanvas.am-active{display:block}.am-offcanvas-page{position:fixed;-webkit-transition:margin-left .3s ease-in-out;transition:margin-left .3s ease-in-out}.am-offcanvas-bar{position:fixed;top:0;bottom:0;left:0;z-index:1091;width:270px;max-width:100%;background:#303942;overflow-y:auto;-webkit-overflow-scrolling:touch;-webkit-transition:-webkit-transform .3s ease-in-out;transition:-webkit-transform .3s ease-in-out;transition:transform .3s ease-in-out;transition:transform .3s ease-in-out,-webkit-transform .3s ease-in-out;-webkit-transform:translateX(-100%);-ms-transform:translateX(-100%);transform:translateX(-100%)}.am-offcanvas-bar:after{content:"";display:block;position:absolute;top:0;bottom:0;right:0;width:1px;background:#262626}.am-offcanvas.am-active .am-offcanvas-bar.am-offcanvas-bar-active{-webkit-transform:translateX(0);-ms-transform:translateX(0);transform:translateX(0)}.am-offcanvas-bar-flip{left:auto;right:0;-webkit-transform:translateX(100%);-ms-transform:translateX(100%);transform:translateX(100%)}.am-offcanvas-bar-flip:after{right:auto;left:0}.am-offcanvas-content{padding:15px;color:#999}.am-offcanvas-content a{color:#ccc}.am-popover{position:absolute;top:0;left:0;margin:0;border-radius:0;background:#333;color:#fff;border:1px solid #333;display:none;font-size:1.6rem;z-index:1150;opacity:0;-webkit-transition:opacity .3s;transition:opacity .3s}.am-popover.am-active{display:block!important;opacity:1}.am-popover-inner{position:relative;background:#333;padding:8px;z-index:110}.am-popover-caret{position:absolute;top:0;z-index:100;display:inline-block;width:0;height:0;vertical-align:middle;border-bottom:8px solid #333;border-right:8px solid transparent;border-left:8px solid transparent;border-top:0 dotted;-webkit-transform:rotate(360deg);-ms-transform:rotate(360deg);transform:rotate(360deg);overflow:hidden}.am-popover-top .am-popover-caret{top:auto;bottom:-8px;-webkit-transform:rotate(180deg);-ms-transform:rotate(180deg);transform:rotate(180deg)}.am-popover-bottom .am-popover-caret{top:-8px}.am-popover-bottom .am-popover-caret,.am-popover-top .am-popover-caret{left:50%;margin-left:-8px}.am-popover-left .am-popover-caret{top:auto;left:auto;right:-12px;-webkit-transform:rotate(90deg);-ms-transform:rotate(90deg);transform:rotate(90deg)}.am-popover-right .am-popover-caret{right:auto;left:-12px;-webkit-transform:rotate(-90deg);-ms-transform:rotate(-90deg);transform:rotate(-90deg)}.am-popover-left .am-popover-caret,.am-popover-right .am-popover-caret{top:50%;margin-top:-4px}.am-popover-sm{font-size:1.4rem}.am-popover-sm .am-popover-inner{padding:5px}.am-popover-lg{font-size:1.8rem}.am-popover-primary{border-color:#1f262c}.am-popover-primary .am-popover-inner{background:#1f262c}.am-popover-primary .am-popover-caret{border-bottom-color:#1f262c}.am-popover-secondary{border-color:#5bb75b}.am-popover-secondary .am-popover-inner{background:#5bb75b}.am-popover-secondary .am-popover-caret{border-bottom-color:#5bb75b}.am-popover-success{border-color:#5eb95e}.am-popover-success .am-popover-inner{background:#5eb95e}.am-popover-success .am-popover-caret{border-bottom-color:#5eb95e}.am-popover-warning{border-color:#F37B1D}.am-popover-warning .am-popover-inner{background:#F37B1D}.am-popover-warning .am-popover-caret{border-bottom-color:#F37B1D}.am-popover-danger{border-color:#dd514c}.am-popover-danger .am-popover-inner{background:#dd514c}.am-popover-danger .am-popover-caret{border-bottom-color:#dd514c}#nprogress{pointer-events:none}#nprogress .nprogress-bar{position:fixed;top:0;left:0;z-index:2000;width:100%;height:2px;background:#5eb95e}#nprogress .nprogress-peg{display:block;position:absolute;right:0;width:100px;height:100%;-webkit-box-shadow:0 0 10px #5eb95e,0 0 5px #5eb95e;box-shadow:0 0 10px #5eb95e,0 0 5px #5eb95e;opacity:1;-webkit-transform:rotate(3deg) translate(0,-4px);-ms-transform:rotate(3deg) translate(0,-4px);transform:rotate(3deg) translate(0,-4px)}#nprogress .nprogress-spinner{position:fixed;top:15px;right:15px;z-index:2000;display:block}#nprogress .nprogress-spinner-icon{width:18px;height:18px;-webkit-box-sizing:border-box;box-sizing:border-box;border:solid 2px transparent;border-top-color:#5eb95e;border-left-color:#5eb95e;border-radius:50%;-webkit-animation:nprogress-spinner .4s linear infinite;animation:nprogress-spinner .4s linear infinite}@-webkit-keyframes nprogress-spinner{0%{-webkit-transform:rotate(0);transform:rotate(0)}100%{-webkit-transform:rotate(360deg);transform:rotate(360deg)}}@keyframes nprogress-spinner{0%{-webkit-transform:rotate(0);transform:rotate(0)}100%{-webkit-transform:rotate(360deg);transform:rotate(360deg)}}.am-tabs-bd{position:relative;overflow:hidden;border:1px solid #ddd;border-top:none;z-index:100;-webkit-transition:height .3s;transition:height .3s}.am-tabs-bd:after,.am-tabs-bd:before{content:" ";display:table}.am-tabs-bd:after{clear:both}.am-tabs-bd .am-tab-panel{position:absolute;top:0;z-index:99;float:left;width:100%;padding:10px 10px 15px;visibility:hidden;-webkit-transition:-webkit-transform .3s;transition:-webkit-transform .3s;transition:transform .3s;transition:transform .3s,-webkit-transform .3s;-webkit-transform:translateX(-100%);-ms-transform:translateX(-100%);transform:translateX(-100%)}.am-tabs-bd .am-tab-panel *{-webkit-user-drag:none}.am-tabs-bd .am-tab-panel.am-active{position:relative;z-index:100;visibility:visible;-webkit-transform:translateX(0);-ms-transform:translateX(0);transform:translateX(0)}.am-tabs-bd .am-tab-panel.am-active~.am-tab-panel{-webkit-transform:translateX(100%);-ms-transform:translateX(100%);transform:translateX(100%)}.am-tabs-bd .am-tabs-bd{border:none}.am-tabs-bd-ofv{overflow:visible}.am-tabs-bd-ofv>.am-tab-panel{display:none}.am-tabs-bd-ofv>.am-tab-panel.am-active{display:block}.am-tabs-fade .am-tab-panel{opacity:0;-webkit-transition:opacity .25s linear;transition:opacity .25s linear}.am-tabs-fade .am-tab-panel.am-in{opacity:1}.am-share{font-size:14px}.am-share-title{padding:10px 0 0;margin:0 10px;font-weight:400;text-align:center;color:#555;background-color:#f8f8f8;border-bottom:1px solid #fff;border-top-right-radius:2px;border-top-left-radius:2px}.am-share-title:after{content:"";display:block;width:100%;height:0;margin-top:10px;border-bottom:1px solid #dfdfdf}.am-share-sns{margin:0 10px;padding-top:15px;background-color:#f8f8f8;border-bottom-right-radius:2px;border-bottom-left-radius:2px}.am-share-sns li{margin-bottom:15px}.am-share-sns a{display:block;color:#555}.am-share-sns span{display:block}.am-share-sns [class*=am-icon]{background-color:#5bb75b;border-radius:50%;width:36px;height:36px;line-height:36px;color:#fff;margin-bottom:5px;font-size:18px}.am-share-sns .am-icon-weibo{background-color:#ea1328}.am-share-sns .am-icon-qq{background-color:#009cda}.am-share-sns .am-icon-star{background-color:#ffc028}.am-share-sns .am-icon-tencent-weibo{background-color:#23ccfe}.am-share-sns .am-icon-wechat,.am-share-sns .am-icon-weixin{background-color:#44b549}.am-share-sns .am-icon-renren{background-color:#105ba3}.am-share-sns .am-icon-comment{background-color:#5eb95e}.am-share-footer{margin:10px}.am-share-footer .am-btn{color:#555}.am-share-wechat-qr{font-size:14px;color:#777}.am-share-wechat-qr .am-modal-dialog{background-color:#fff;border:1px solid #dedede}.am-share-wechat-qr .am-modal-hd{padding-top:10px;text-align:left;margin-bottom:10px}.am-share-wechat-qr .am-share-wx-qr{margin-bottom:10px}.am-share-wechat-qr .am-share-wechat-tip{text-align:left}.am-share-wechat-qr .am-share-wechat-tip em{color:#dd514c;font-weight:700;font-style:normal;margin-left:3px;margin-right:3px}.am-pureview{position:fixed;left:0;top:0;bottom:0;right:0;z-index:1120;width:100%;height:100%;background:rgba(0,0,0,.95);display:none;overflow:hidden;-webkit-transition:-webkit-transform .3s;transition:-webkit-transform .3s;transition:transform .3s;transition:transform .3s,-webkit-transform .3s;-webkit-transform:translate(0,100%);-ms-transform:translate(0,100%);transform:translate(0,100%)}.am-pureview.am-active{-webkit-transform:translate(0,0);-ms-transform:translate(0,0);transform:translate(0,0)}.am-pureview ol,.am-pureview ul{list-style:none;padding:0;margin:0;width:100%}.am-pureview-slider{overflow:hidden;height:100%}.am-pureview-slider li{position:absolute;width:100%;height:100%;top:0;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-pack:center;-webkit-justify-content:center;-ms-flex-pack:center;justify-content:center;-webkit-box-align:center;-webkit-align-items:center;-ms-flex-align:center;align-items:center;vertical-align:middle;-webkit-transition:all .3s linear;transition:all .3s linear;z-index:100;visibility:hidden}.am-pureview-slider li.am-pureview-slide-prev{-webkit-transform:translate(-100%,0);-ms-transform:translate(-100%,0);transform:translate(-100%,0);z-index:109}.am-pureview-slider li.am-pureview-slide-next{-webkit-transform:translate(100%,0);-ms-transform:translate(100%,0);transform:translate(100%,0);z-index:109}.am-pureview-slider li.am-active{position:relative;z-index:110;-webkit-transform:translate(0,0);-ms-transform:translate(0,0);transform:translate(0,0);visibility:visible}.am-pureview-slider .pinch-zoom-container{width:100%;z-index:1121}.am-pureview-slider .am-pinch-zoom{position:relative;width:100%;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-pack:center;-webkit-justify-content:center;-ms-flex-pack:center;justify-content:center;-webkit-box-align:center;-webkit-align-items:center;-ms-flex-align:center;align-items:center}.am-pureview-slider .am-pinch-zoom:after{display:inline-block;font:normal normal normal 1.6rem/1 FontAwesome,sans-serif;font-size:inherit;text-rendering:auto;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;-webkit-transform:translate(0,0);-ms-transform:translate(0,0);transform:translate(0,0);content:"\f110";-webkit-animation:icon-spin 2s infinite linear;animation:icon-spin 2s infinite linear;font-size:24px;line-height:24px;color:#eee;position:absolute;top:50%;left:50%;margin-left:-12px;margin-top:-12px;z-index:1}.am-pureview-slider .am-pinch-zoom.am-pureview-loaded:after{display:none}.am-pureview-slider img{position:relative;display:block;max-width:100%;max-height:100%;opacity:0;z-index:200;-webkit-user-drag:none;-webkit-transition:opacity .2s ease-in;transition:opacity .2s ease-in}.am-pureview-slider img.am-img-loaded{opacity:1}.am-pureview-direction{position:absolute;top:50%;width:100%;margin-top:-18px!important;z-index:1122}.am-pureview-only .am-pureview-direction,.am-touch .am-pureview-direction{display:none}.am-pureview-direction li{position:absolute;width:36px;height:36px}.am-pureview-direction a{display:block;height:36px;border:none;color:#ccc;opacity:.5;cursor:pointer;text-align:center;z-index:1125}.am-pureview-direction a:before{content:"\f137";line-height:36px;font-size:24px}.am-pureview-direction a:hover{opacity:1}.am-pureview-direction .am-pureview-prev{left:15px}.am-pureview-direction .am-pureview-next{right:15px}.am-pureview-direction .am-pureview-next a:before{content:"\f138"}.am-pureview-bar{position:absolute;bottom:0;height:45px;width:100%;background-color:rgba(0,0,0,.35);color:#eee;line-height:45px;padding:0 10px;font-size:14px;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex}.am-pureview-bar .am-pureview-title{display:block;word-wrap:normal;text-overflow:ellipsis;white-space:nowrap;overflow:hidden;margin-left:6px;-webkit-box-flex:1;-webkit-flex:1;-ms-flex:1;flex:1}.am-pureview-bar .am-pureview-total{font-size:10px;line-height:48px}.am-pureview-actions{position:absolute;z-index:1130;left:0;right:0;top:0;height:45px;background-color:rgba(0,0,0,.35)}.am-pureview-actions a{position:absolute;left:10px;color:#ccc;display:block;width:45px;line-height:45px;text-align:left;font-size:16px}.am-pureview-actions a:hover{color:#fff}.am-pureview-actions [data-am-toggle=share]{left:auto;right:10px}.am-pureview-actions,.am-pureview-bar{opacity:0;-webkit-transition:all .15s;transition:all .15s;z-index:1130}.am-pureview-bar-active .am-pureview-actions,.am-pureview-bar-active .am-pureview-bar{opacity:1}.am-pureview-nav{position:absolute;bottom:15px;left:0;right:0;text-align:center;z-index:1131}.am-pureview-bar-active .am-pureview-nav{display:none}.am-pureview-nav li{display:inline-block;background:#ccc;background:rgba(255,255,255,.5);width:8px;height:8px;margin:0 3px;border-radius:50%;text-indent:-9999px;overflow:hidden;cursor:pointer}.am-pureview-nav .am-active{background:#fff;background:rgba(255,255,255,.9)}[data-am-pureview] img{cursor:pointer}.am-pureview-active{overflow:hidden}.ath-viewport *{-webkit-box-sizing:border-box;box-sizing:border-box}.ath-viewport{position:relative;z-index:2147483641;pointer-events:none;-webkit-tap-highlight-color:rgba(0,0,0,0);-webkit-touch-callout:none;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;-webkit-text-size-adjust:none;-ms-text-size-adjust:none;text-size-adjust:none}.ath-modal{pointer-events:auto!important;background:rgba(0,0,0,.6)}.ath-mandatory{background:#000}.ath-container{pointer-events:auto!important;position:absolute;z-index:2147483641;padding:.7em .6em;width:18em;background:#eee;-webkit-background-size:100% auto;background-size:100% auto;-webkit-box-shadow:0 .2em 0 #d1d1d1;box-shadow:0 .2em 0 #d1d1d1;font-family:sans-serif;font-size:15px;line-height:1.5em;text-align:center}.ath-container small{font-size:.8em;line-height:1.3em;display:block;margin-top:.5em}.ath-ios.ath-phone{bottom:1.8em;left:50%;margin-left:-9em}.ath-ios6.ath-tablet{left:5em;top:1.8em}.ath-ios7.ath-tablet{left:.7em;top:1.8em}.ath-ios8.ath-tablet{right:.4em;top:1.8em}.ath-android{bottom:1.8em;left:50%;margin-left:-9em}.ath-container:before{content:'';position:relative;display:block;float:right;margin:-.7em -.6em 0 .5em;background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAIQAAACECAMAAABmmnOVAAAAdVBMVEUAAAA5OTkzMzM7Ozs3NzdBQUFAQEA/Pz8+Pj5BQUFAQEA/Pz8+Pj5BQUFAQEA/Pz9BQUE+Pj4/Pz8/Pz8+Pj4/Pz8/Pz8/Pz8+Pj4/Pz8+Pj4/Pz8/Pz8/Pz8/Pz8/Pz8+Pj4/Pz8/Pz8/Pz8/Pz9AQEA/Pz+fdCaPAAAAJnRSTlMACQoNDjM4OTo7PEFCQ0RFS6ytsbS1tru8vcTFxu7x8vX19vf4+C5yomAAAAJESURBVHgBvdzLTsJAGEfxr4C2KBcVkQsIDsK8/yPaqIsPzVlyzrKrX/5p0kkXEz81L23otc9NpIbbWia2YVLqdnhlqFlhGWpSDHe1aopsSIpRb8gK0dC3G30b9rVmhWZIimTICsvQtx/FsuYOrWHoDjX3Gu31gzJxdki934WrAIOsAIOsAIOiAMPhPsJTgKGN0BVsYIVsYIVpYIVpYIVpYIVpYIVpYIVpYIVpYIVlAIVgEBRs8BRs8BRs8BRs8BRs8BRs8BRs8BRTNmgKNngKNngKNngKNngKNhiKGxgiOlZoBlaYBlaYBlaYBlaYBlaYBlaYBlaYBlZIBlBMfQMrVAMr2KAqBENSHFHhGEABhi5CV6gGUKgGUKgGUKgGUFwuqgEUvoEVsoEVpoEUpgEUggF+gKTKY+h1fxSlC7/Z+RrxOQ3fcEoAPPHZBlaYBlaYBlaYBlZYBlYIhvLBCstw7PgM7hkiWOEZWGEaWGEaWGEaIsakEAysmHkGVpxmvoEVqoEVpoEVpoEVpoEVpoEVpoEVkoEVgkFQsEFSsEFQsGEcoSvY4CnY4CnY4CnY4CnY4CnY4CnY4CnY4CnY4CnY4CnY4CnY4CnY4CnY4CnY4CnY4CnY4CnY4CnmbNAUT2c2WAo2eAo2eAo2eAo2eAo2eArNEPFACjZ4CjZ4CjZ4CjaIird/rBvFH6llNCvewdli1URWCIakSIZesUaDoFg36dKFWk9zCZDei3TtwmCj7pC22AwikiIZPEU29IpFNliKxa/hC9DFITjQPYhcAAAAAElFTkSuQmCC);background-color:rgba(255,255,255,.8);-webkit-background-size:50% 50%;background-size:50%;background-repeat:no-repeat;background-position:50%;width:2.7em;height:2.7em;text-align:center;overflow:hidden;color:#a33;z-index:2147483642}.ath-container.ath-icon:before{position:absolute;top:0;right:0;margin:0;float:none}.ath-mandatory .ath-container:before{display:none}.ath-container.ath-android:before{float:left;margin:-.7em .5em 0 -.6em}.ath-container.ath-android.ath-icon:before{position:absolute;right:auto;left:0;margin:0;float:none}.ath-action-icon{display:inline-block;vertical-align:middle;background-position:50%;background-repeat:no-repeat;text-indent:-9999em;overflow:hidden}.ath-ios7 .ath-action-icon,.ath-ios8 .ath-action-icon{width:1.6em;height:1.6em;background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAHgAAACtCAYAAAB7l7tOAAAF6UlEQVR4AezZWWxUZRiH8VcQEdxZEFFiUZBFUCIa1ABBDARDcCciYGKMqTEGww3SOcNSAwQTjOBiiIpEhRjAhRgXRC8MFxojEhAFZUGttVhaoSxlaW3n8W3yXZxm6vTrOMM5Q98n+V9MMu1pvl++uZhKuypghu49KaaTWGdZSYoVN6VD95nMpLNYZ9XNbdQR2od2k88O3Gm6Bh0t7H0p5Vwp2Ax3ajpu2tYbciFWwkTFO63DY6+JcI4USFaSyYpWp8N7SVZJKR3EinkBk9JxvZFXxhnZSjBaoWp1ZL0ES8WKYXMZp0AndORgy8WKFe5Yf1zvvSBWDEpys2LU6MjD5kmEWQlGKsJRHXlcqUSQVcItEnDEA6gAb7LhjvD9WO6yIEfICQI5A1nzGCYB1T4og5bBiFcyv2f6ujYhl4iVxwKG6qp8MK55HsqPwK0rMr9v/yEo3uCPrJstVh5KMER30Aeh31Ioq0FrHfjXw9CYghnrvYFTuqfEymFzGSwBlT4ARYr7u+K6GLmCVGvAGg2NMG0d/sgJnpScZLjXSkC5z8H3eQ72/k24Q8NfzvwFyK4qtuJSZKaubRPyE/K/Mtx+EvCHL+7uasId1t10w0scz/RzSzYzAfgKV30D3LPaG7lRkR8RK4tKKJKAMp+D7r0EfmmOe0x3m2itAc/ZxBjgAt1mXHWKPPkdb+QGSTJdrDaU5EoJ2OtzwD0WwY7KNNzbRfMFFg24WPdtGHnS221Cflgsj56hjwTs8TnY7oq7/QDhjutGicsb2AVcovsO18l6uPPNNiE/JFaGAq7Q7fY50G4LYVtz3FrdaNGyBXbIl+q24DqhyHes9EaulwR3SwtZs+ktAT/7HORliru1gnCndONFyx44Dfn7MPLYN7yR6yTJZAllJeguAT/4HOBFz8I3ZWm4E0TLFbBD7qn7EVdtHYx53R9ZN0ksrZRuErDN5+AuLIWvm+Oe1k0ULdfADrmX7idcR0/DyBXeyCdlLuMMOGCBz4F1ng+f7yFcve5e0fIFHELeiav6BAx70Rt5p0yhY3u/wR0kyarW/uX35b403PtFyzewQ75ctwtXzSkY8WqruHslSV8RscrL6TJ1bcvfWJ0/HzbtIdw/ugdFyzdwOOAq3T6fmzxwGQ3vbmO8iFioIWqYSsHMj9M/ljfuTsOdItoZBXYBfXX7cVXVwvXLm/8+fU3lcdCqdEMNGBbgUmRmfQISQKd5sGEn4VK6YtEiAXYBA3QVuA4q8hCHrDcafR1ul65jewfuovsCl7vJrNlOuEbdo6JFCuwCrtb9hqusBu56Cw4cI1y1briIWEBn3Ue0XKPuMdGiBg4H9NdV0HJ/6QZLOEPmPN0GmpfSPS5arIBdwHUtIFfoBsl/ZsgfhHCfFi2WwC5goO4AmvanbqBkzJA76tboZokWa2AXMEi3RTdAvDLkDqJFAhzB32xFD2wZsGXA0WfAlgFbBmwZsGXAlgFbBpzk04JaKb0iA9ZnF9x5SQAFtRKKIgPWZxfaeRmwAZ/BGbAB37eaG6MCbnq2Aed5czYyKirgpmcbsAHHZAZswN0Wwo7KeG1fFf2jAm56dtzOQ42yB+65mDhWFBUwUETMUiMDNmADbp/APRaTAh6I2bpGCNw1bufRZJQ1cPdF/NueHZsgDEBBGLbMGoIu4AZu5gLOZeEaYmEXeznF3jRPyEv4frgJvvJe3qTefY0AAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwb8rwADBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgz4/sz1Nia/9hizA7zgklwy3RYwYMBzBRjw4bPjxAbAAizAAtwgwAIswAIswAIMGDBgARZgARZgAS4FWIAFWIAFWIABAwYswAIswAIswIUAC7AAC7AACzBgwIAFWIAFWIAFuBBgARZgARZgAQYMGPApQ99ZCdgWtzqwATbABtgAG2DbnxNb7zbRimsMLMACrDf2wMWI/WasfQAAAABJRU5ErkJggg==);margin-top:-.3em;-webkit-background-size:auto 100%;background-size:auto 100%}.ath-ios6 .ath-action-icon{width:1.8em;height:1.8em;background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAJAAAAB0CAQAAADAmnOnAAAAAnNCSVQICFXsRgQAAAAJcEhZcwAAWwEAAFsBAXkZiFwAAAAZdEVYdFNvZnR3YXJlAHd3dy5pbmtzY2FwZS5vcmeb7jwaAAAF4klEQVR4Ae3a/a+XdR3H8ec5HM45HDmKICoVohkZsxESRRCzcZM/2JKkdGR5MrSkleA0Pd00O4u5IVuNM2yYc6XSzCExU4oUNRPCJFdMUAhsYZpUGhscOHA4N8/WZzsL6HBxvofvdV3fa3yer//gsV3vH659KHzncBsJxUYhDzOEhCKQbORs+ip2wzgM+wvj+P9i35qAGLaHGcQSgKSTrxBLABJppZpYApCspoFYApBsZjSxBCD5OxOJJQBJG1cQSwCSLpqJJQCJ3MvgCGTinuSMCJS8LZwfgZL3FtMiUPIOcU0ESl4PLRHoRPsJtREoeRsYGYGS9yrvo6RmpbLaigWSfzOdErLs6+bLUMFA0sF1+QF1cz1UNlBYK9V5AHXyWSgEkKyiIWOgGh829Ki1lLcaxjCVK7mJRSxjBY+zgRf/u9pXcMB7jhEZAg32EUP3O6hMKOP5Iq2sZQeHMZXt5KKMgOpcY+iHVnFyjeQKlrCBdsxge5ieAVC9vzLUelI8H+A7bKIHM10H81IGGuKvDf1ggDxVTKOV1zG3/Yia1ICG+ltD32MgNTKfP2HuW0VDKkCNrjfUTOm9i6XswwrZJkaVHeh0f2fodkrtfO6jAytqrzG+rEDDfVG1x1sprZEs5RBW4PZxeT+Bbrf5hPu9arfzKaU6WjiAFbseWvoF1GW/6vYGSmkyW7Dit4xB5QHq9Br6Xx2t9GAhtp6zkoHsfNp1J9wX6H+jeR4LtJc4LxGopZZyNpN/YcG2mw9nBTSPLizgOmjKAujGgvJID3ekD7QYi7nGzkvmQtpA38Vi7iJf0TedlC7QTVjMfcY2QyvSBPpUMW/PIBfbo9pls1XpAX2EdizeznStob3OJpQO0DB2YfE21q2GtnghpAm0Gou3T9tm6BGHQppA12HRVt17eboNlydNoLHsx2JtmL801OYcQmkC/QKLtQt9ydBW3wNpA30ci7Ur3WdolUMhbaBqNhf/8qQJ9Hkszs5wjaH9XkUobaAqtmFRdoGbDb3sWMgG6DIs5852knO82RaXer+P+qyb3eWeo7ZNBrRZvm1otY2QFdBjeHIb6hTne49Put12+9ObMoDdYmfy5UkF6AK6cCCr9aM2u9IddptcOYCG+FNDB5xLKCugO7G01TndFp/xgAntdYvrfdwVLnORt3q9Vx25F27DUjbGPxr6qxMgW6Cd2N+d6wLXedA+6nKbK73Lr/pJxzusvE/wZrvX0FOOgGyBxmF/dprXutYOj6nNdS6xyYnWp/dGcaGdhr5vDWQN9E1MXrUzfcA2j2qPj/l1J1uT9iPOeh8w1O7nCGUN9HzyGZ7ndo9qp0ucanU2r1xH+wdDu5wIeQDVVx0+/kd1i697RNv8thdn+Qz4Uv9p6DeOhHyApmBfq3OBu+3Nfd7nVELZAX3Nw4ZarYG8gG7GY1dlk6/Zm3/2Rk8jlB1QvT82dNAmQjkBVf8Mj957fdrefM7ZVhPKEuidvmDob06CXIGGbsX/bZDf8KAhfdbJhLIGmuZuQ084HHIGatiLvRvrRkP6qldbBXkAzbfD0N0OhryBGqrEMOd50FC7d1hPKGugBh8ydMh5hPIGGouI1d5lj6F1vptQ9kDvcKOhN5wMlQH0QcRGnzC03yZCeQDN9G1D6xwBFQI07FI8x02GdjgB8gJqttPQcmuhYoAumzvG7YZWejrkA1TrPYYO+SVCFQO0aM4bqj0uJJQH0LluSP7PkyeQU9QOmyAvoBm+Zegpz4LKA/qYB/wE5AXUe3m81zqoRKAPOYWcuvP9dxvqcD6h7IAKkaNU3eUlHLcI9EzS5YlAi62h/zUy89QCqqKUmvgHywsJlEHnsQYxAvXVIJo5gIhnPhiBju1iNmLvLn85Ah1ZPYs5jBGo72awEzEC9dVwHqQHI9DxWoAYgSLQQKteGIESu/qhCJTYtT+PQBEoAkWgCBSBkotAEehUWwSKQBEoAkWg/BeBIlAEikARKAJFoFmealu4gVLy1Gt5dkARKAL9BzujPSurTmu/AAAAAElFTkSuQmCC);margin-bottom:.4em;-webkit-background-size:100% auto;background-size:100% auto}.ath-android .ath-action-icon{width:1.4em;height:1.4em;background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADAAAAAwCAMAAABg3Am1AAAANlBMVEVmZmb///9mZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZW6fJrAAAAEXRSTlMAAAYHG21ub8fLz9DR8/T4+RrZ9owAAAB3SURBVHja7dNLDoAgDATQWv4gKve/rEajJOJiWLgg6WzpSyB0aHqHiNj6nL1lovb4C+hYzkSNAT7mryQFAVOeGAj4CjwEtgrWXpD/uZKtwEJApXt+Vn0flzRhgNiFZQkOXY0aADQZCOCPlsZJ46Rx0jhp3IiN2wGDHhxtldrlwQAAAABJRU5ErkJggg==);-webkit-background-size:100% auto;background-size:100% auto}.ath-container p{margin:0;padding:0;position:relative;z-index:2147483642;text-shadow:0 .1em 0 #fff;font-size:1.1em}.ath-ios.ath-phone:after{content:'';background:#eee;position:absolute;width:2em;height:2em;bottom:-.9em;left:50%;margin-left:-1em;-webkit-transform:scaleX(.9) rotate(45deg);-ms-transform:scaleX(.9) rotate(45deg);transform:scaleX(.9) rotate(45deg);-webkit-box-shadow:.2em .2em 0 #d1d1d1;box-shadow:.2em .2em 0 #d1d1d1}.ath-ios.ath-tablet:after{content:'';background:#eee;position:absolute;width:2em;height:2em;top:-.9em;left:50%;margin-left:-1em;-webkit-transform:scaleX(.9) rotate(45deg);-ms-transform:scaleX(.9) rotate(45deg);transform:scaleX(.9) rotate(45deg);z-index:2147483641}.ath-application-icon{position:relative;padding:0;border:0;margin:0 auto .2em auto;height:6em;width:6em;z-index:2147483642}.ath-container.ath-ios .ath-application-icon{border-radius:1em;-webkit-box-shadow:0 .2em .4em rgba(0,0,0,.3),inset 0 .07em 0 rgba(255,255,255,.5);box-shadow:0 .2em .4em rgba(0,0,0,.3),inset 0 .07em 0 rgba(255,255,255,.5);margin:0 auto .4em auto}@media only screen and (orientation:landscape){.ath-container.ath-phone{width:24em}.ath-android.ath-phone{margin-left:-12em}.ath-ios.ath-phone{margin-left:-12em}.ath-ios6:after{left:39%}.ath-ios8.ath-phone{left:auto;bottom:auto;right:.4em;top:1.8em}.ath-ios8.ath-phone:after{bottom:auto;top:-.9em;left:68%;z-index:2147483641;-webkit-box-shadow:none;box-shadow:none}}.am-checkbox,.am-checkbox-inline,.am-radio,.am-radio-inline{padding-left:22px;position:relative;-webkit-transition:color .25s linear;transition:color .25s linear;font-size:14px;line-height:1.5}label.am-checkbox,label.am-radio{font-weight:400}.am-ucheck-icons{color:#999;display:block;height:20px;top:0;left:0;position:absolute;width:20px;text-align:center;line-height:21px;font-size:18px;cursor:pointer}.am-checkbox .am-icon-checked,.am-checkbox .am-icon-unchecked,.am-checkbox-inline .am-icon-checked,.am-checkbox-inline .am-icon-unchecked,.am-radio .am-icon-checked,.am-radio .am-icon-unchecked,.am-radio-inline .am-icon-checked,.am-radio-inline .am-icon-unchecked{position:absolute;left:0;top:0;display:inline-table;margin:0;background-color:transparent;-webkit-transition:color .25s linear;transition:color .25s linear}.am-checkbox .am-icon-checked:before,.am-checkbox .am-icon-unchecked:before,.am-checkbox-inline .am-icon-checked:before,.am-checkbox-inline .am-icon-unchecked:before,.am-radio .am-icon-checked:before,.am-radio .am-icon-unchecked:before,.am-radio-inline .am-icon-checked:before,.am-radio-inline .am-icon-unchecked:before{display:inline-block;font:normal normal normal 1.6rem/1 FontAwesome,sans-serif;font-size:inherit;text-rendering:auto;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;-webkit-transform:translate(0,0);-ms-transform:translate(0,0);transform:translate(0,0)}.am-checkbox .am-icon-checked,.am-checkbox-inline .am-icon-checked,.am-radio .am-icon-checked,.am-radio-inline .am-icon-checked{opacity:0}.am-checkbox .am-icon-checked:before,.am-checkbox-inline .am-icon-checked:before{content:"\f046"}.am-checkbox .am-icon-unchecked:before,.am-checkbox-inline .am-icon-unchecked:before{content:"\f096"}.am-radio .am-icon-checked:before,.am-radio-inline .am-icon-checked:before{content:"\f192"}.am-radio .am-icon-unchecked:before,.am-radio-inline .am-icon-unchecked:before{content:"\f10c"}.am-ucheck-checkbox,.am-ucheck-radio{position:absolute;left:0;top:0;margin:0;padding:0;width:20px;height:20px;opacity:0;outline:0!important}.am-ucheck-checkbox:hover:not(.am-nohover):not(:disabled)+.am-ucheck-icons,.am-ucheck-radio:hover:not(.am-nohover):not(:disabled)+.am-ucheck-icons{color:#1f262c}.am-ucheck-checkbox:checked+.am-ucheck-icons,.am-ucheck-radio:checked+.am-ucheck-icons{color:#1f262c}.am-ucheck-checkbox:checked+.am-ucheck-icons .am-icon-unchecked,.am-ucheck-radio:checked+.am-ucheck-icons .am-icon-unchecked{opacity:0}.am-ucheck-checkbox:checked+.am-ucheck-icons .am-icon-checked,.am-ucheck-radio:checked+.am-ucheck-icons .am-icon-checked{opacity:1}.am-ucheck-checkbox:disabled+.am-ucheck-icons,.am-ucheck-radio:disabled+.am-ucheck-icons{cursor:default;color:#d8d8d8}.am-ucheck-checkbox:disabled:checked+.am-ucheck-icons .am-icon-unchecked,.am-ucheck-radio:disabled:checked+.am-ucheck-icons .am-icon-unchecked{opacity:0}.am-ucheck-checkbox:disabled:checked+.am-ucheck-icons .am-icon-checked,.am-ucheck-radio:disabled:checked+.am-ucheck-icons .am-icon-checked{opacity:1;color:#d8d8d8}.am-checkbox-inline.am-secondary .am-ucheck-checkbox:hover:not(.am-nohover):not(:disabled)+.am-ucheck-icons,.am-checkbox-inline.am-secondary .am-ucheck-radio:hover:not(.am-nohover):not(:disabled)+.am-ucheck-icons,.am-checkbox.am-secondary .am-ucheck-checkbox:hover:not(.am-nohover):not(:disabled)+.am-ucheck-icons,.am-checkbox.am-secondary .am-ucheck-radio:hover:not(.am-nohover):not(:disabled)+.am-ucheck-icons,.am-radio-inline.am-secondary .am-ucheck-checkbox:hover:not(.am-nohover):not(:disabled)+.am-ucheck-icons,.am-radio-inline.am-secondary .am-ucheck-radio:hover:not(.am-nohover):not(:disabled)+.am-ucheck-icons,.am-radio.am-secondary .am-ucheck-checkbox:hover:not(.am-nohover):not(:disabled)+.am-ucheck-icons,.am-radio.am-secondary .am-ucheck-radio:hover:not(.am-nohover):not(:disabled)+.am-ucheck-icons{color:#5bb75b}.am-checkbox-inline.am-secondary .am-ucheck-checkbox:checked+.am-ucheck-icons,.am-checkbox-inline.am-secondary .am-ucheck-radio:checked+.am-ucheck-icons,.am-checkbox.am-secondary .am-ucheck-checkbox:checked+.am-ucheck-icons,.am-checkbox.am-secondary .am-ucheck-radio:checked+.am-ucheck-icons,.am-radio-inline.am-secondary .am-ucheck-checkbox:checked+.am-ucheck-icons,.am-radio-inline.am-secondary .am-ucheck-radio:checked+.am-ucheck-icons,.am-radio.am-secondary .am-ucheck-checkbox:checked+.am-ucheck-icons,.am-radio.am-secondary .am-ucheck-radio:checked+.am-ucheck-icons{color:#5bb75b}.am-checkbox-inline.am-success .am-ucheck-checkbox:hover:not(.am-nohover):not(:disabled)+.am-ucheck-icons,.am-checkbox-inline.am-success .am-ucheck-radio:hover:not(.am-nohover):not(:disabled)+.am-ucheck-icons,.am-checkbox.am-success .am-ucheck-checkbox:hover:not(.am-nohover):not(:disabled)+.am-ucheck-icons,.am-checkbox.am-success .am-ucheck-radio:hover:not(.am-nohover):not(:disabled)+.am-ucheck-icons,.am-radio-inline.am-success .am-ucheck-checkbox:hover:not(.am-nohover):not(:disabled)+.am-ucheck-icons,.am-radio-inline.am-success .am-ucheck-radio:hover:not(.am-nohover):not(:disabled)+.am-ucheck-icons,.am-radio.am-success .am-ucheck-checkbox:hover:not(.am-nohover):not(:disabled)+.am-ucheck-icons,.am-radio.am-success .am-ucheck-radio:hover:not(.am-nohover):not(:disabled)+.am-ucheck-icons{color:#5eb95e}.am-checkbox-inline.am-success .am-ucheck-checkbox:checked+.am-ucheck-icons,.am-checkbox-inline.am-success .am-ucheck-radio:checked+.am-ucheck-icons,.am-checkbox.am-success .am-ucheck-checkbox:checked+.am-ucheck-icons,.am-checkbox.am-success .am-ucheck-radio:checked+.am-ucheck-icons,.am-radio-inline.am-success .am-ucheck-checkbox:checked+.am-ucheck-icons,.am-radio-inline.am-success .am-ucheck-radio:checked+.am-ucheck-icons,.am-radio.am-success .am-ucheck-checkbox:checked+.am-ucheck-icons,.am-radio.am-success .am-ucheck-radio:checked+.am-ucheck-icons{color:#5eb95e}.am-checkbox-inline.am-warning .am-ucheck-checkbox:hover:not(.am-nohover):not(:disabled)+.am-ucheck-icons,.am-checkbox-inline.am-warning .am-ucheck-radio:hover:not(.am-nohover):not(:disabled)+.am-ucheck-icons,.am-checkbox.am-warning .am-ucheck-checkbox:hover:not(.am-nohover):not(:disabled)+.am-ucheck-icons,.am-checkbox.am-warning .am-ucheck-radio:hover:not(.am-nohover):not(:disabled)+.am-ucheck-icons,.am-radio-inline.am-warning .am-ucheck-checkbox:hover:not(.am-nohover):not(:disabled)+.am-ucheck-icons,.am-radio-inline.am-warning .am-ucheck-radio:hover:not(.am-nohover):not(:disabled)+.am-ucheck-icons,.am-radio.am-warning .am-ucheck-checkbox:hover:not(.am-nohover):not(:disabled)+.am-ucheck-icons,.am-radio.am-warning .am-ucheck-radio:hover:not(.am-nohover):not(:disabled)+.am-ucheck-icons{color:#F37B1D}.am-checkbox-inline.am-warning .am-ucheck-checkbox:checked+.am-ucheck-icons,.am-checkbox-inline.am-warning .am-ucheck-radio:checked+.am-ucheck-icons,.am-checkbox.am-warning .am-ucheck-checkbox:checked+.am-ucheck-icons,.am-checkbox.am-warning .am-ucheck-radio:checked+.am-ucheck-icons,.am-radio-inline.am-warning .am-ucheck-checkbox:checked+.am-ucheck-icons,.am-radio-inline.am-warning .am-ucheck-radio:checked+.am-ucheck-icons,.am-radio.am-warning .am-ucheck-checkbox:checked+.am-ucheck-icons,.am-radio.am-warning .am-ucheck-radio:checked+.am-ucheck-icons{color:#F37B1D}.am-checkbox-inline.am-danger .am-ucheck-checkbox:hover:not(.am-nohover):not(:disabled)+.am-ucheck-icons,.am-checkbox-inline.am-danger .am-ucheck-radio:hover:not(.am-nohover):not(:disabled)+.am-ucheck-icons,.am-checkbox.am-danger .am-ucheck-checkbox:hover:not(.am-nohover):not(:disabled)+.am-ucheck-icons,.am-checkbox.am-danger .am-ucheck-radio:hover:not(.am-nohover):not(:disabled)+.am-ucheck-icons,.am-radio-inline.am-danger .am-ucheck-checkbox:hover:not(.am-nohover):not(:disabled)+.am-ucheck-icons,.am-radio-inline.am-danger .am-ucheck-radio:hover:not(.am-nohover):not(:disabled)+.am-ucheck-icons,.am-radio.am-danger .am-ucheck-checkbox:hover:not(.am-nohover):not(:disabled)+.am-ucheck-icons,.am-radio.am-danger .am-ucheck-radio:hover:not(.am-nohover):not(:disabled)+.am-ucheck-icons{color:#dd514c}.am-checkbox-inline.am-danger .am-ucheck-checkbox:checked+.am-ucheck-icons,.am-checkbox-inline.am-danger .am-ucheck-radio:checked+.am-ucheck-icons,.am-checkbox.am-danger .am-ucheck-checkbox:checked+.am-ucheck-icons,.am-checkbox.am-danger .am-ucheck-radio:checked+.am-ucheck-icons,.am-radio-inline.am-danger .am-ucheck-checkbox:checked+.am-ucheck-icons,.am-radio-inline.am-danger .am-ucheck-radio:checked+.am-ucheck-icons,.am-radio.am-danger .am-ucheck-checkbox:checked+.am-ucheck-icons,.am-radio.am-danger .am-ucheck-radio:checked+.am-ucheck-icons{color:#dd514c}.am-field-error+.am-ucheck-icons{color:#dd514c}.am-field-valid+.am-ucheck-icons{color:#5eb95e}.am-selected{width:200px}.am-selected-btn{width:100%;padding-left:10px;text-align:right}.am-selected-btn.am-btn-default{background:0 0}.am-invalid .am-selected-btn{border-color:#dd514c}.am-selected-header{height:45px;background-color:#f2f2f2;border-bottom:1px solid #ddd;display:none}.am-selected-status{text-align:left;width:100%;display:block;word-wrap:normal;text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.am-selected-content{padding:10px 0}.am-selected-search{padding:0 10px 10px}.am-selected-search .am-form-field{padding:.5em}.am-selected-list{margin:0;padding:0;list-style:none;font-size:1.5rem}.am-selected-list li{position:relative;cursor:pointer;padding:5px 10px;-webkit-transition:background-color .15s;transition:background-color .15s}.am-selected-list li:hover{background-color:#f8f8f8}.am-selected-list li:hover .am-icon-check{opacity:.6}.am-selected-list li.am-checked .am-icon-check{opacity:1;color:#1f262c}.am-selected-list li.am-disabled{opacity:.5;pointer-events:none;cursor:not-allowed}.am-selected-list .am-selected-list-header{margin-top:8px;font-size:1.3rem;color:#999;border-bottom:1px solid #e5e5e5;cursor:default}.am-selected-list .am-selected-list-header:hover{background:0 0}.am-selected-list .am-selected-list-header:first-child{margin-top:0}.am-selected-list .am-selected-text{display:block;word-wrap:normal;text-overflow:ellipsis;white-space:nowrap;overflow:hidden;margin-right:30px}.am-selected-list .am-icon-check{position:absolute;right:8px;top:5px;color:#999;opacity:0;-webkit-transition:opacity .15s;transition:opacity .15s}.am-selected-hint{line-height:1.2;color:#dd514c}.am-selected-hint:not(:empty){margin-top:10px;border-top:1px solid #e5e5e5;padding:10px 10px 0}.am-selected-placeholder{opacity:.65}.am-fade{opacity:0;-webkit-transition:opacity .2s linear;transition:opacity .2s linear}.am-fade.am-in{opacity:1}.am-collapse{display:none}.am-collapse.am-in{display:block}tr.am-collapse.am-in{display:table-row}tbody.am-collapse.am-in{display:table-row-group}.am-collapsing{position:relative;height:0;overflow:hidden;-webkit-transition:height .3s ease;transition:height .3s ease}.am-sticky{position:fixed!important;z-index:1010;-webkit-transform-origin:0 0;-ms-transform-origin:0 0;transform-origin:0 0}[data-am-sticky][class*=am-animation-]{-webkit-animation-duration:.2s;animation-duration:.2s}.am-dimmer-active{overflow:hidden}.am-dimmer{position:fixed;top:0;right:0;bottom:0;left:0;display:none;width:100%;height:100%;background-color:rgba(0,0,0,.6);z-index:1100;opacity:0}.am-dimmer.am-active{opacity:1}[data-am-collapse]{cursor:pointer}.am-datepicker{top:0;left:0;border-radius:0;background:#fff;-webkit-box-shadow:0 0 10px #ccc;box-shadow:0 0 10px #ccc;padding-bottom:10px;margin-top:10px;width:238px;color:#555;display:none}.am-datepicker>div{display:none}.am-datepicker table{width:100%}.am-datepicker tr.am-datepicker-header{font-size:1.6rem;color:#fff;background:#5bb75b}.am-datepicker td,.am-datepicker th{text-align:center;font-weight:400;cursor:pointer}.am-datepicker th{height:48px}.am-datepicker td{font-size:1.4rem}.am-datepicker td.am-datepicker-day{height:34px;width:34px}.am-datepicker td.am-datepicker-day:hover{background:#F0F0F0;height:34px;width:34px}.am-datepicker td.am-datepicker-day.am-disabled{cursor:no-drop;color:#999;background:#fafafa}.am-datepicker td.am-datepicker-new,.am-datepicker td.am-datepicker-old{color:#89d7ff}.am-datepicker td.am-active,.am-datepicker td.am-active:hover{border-radius:0;color:#0084c7;background:#F0F0F0}.am-datepicker td span{display:block;width:79.33px;height:40px;line-height:40px;float:left;cursor:pointer}.am-datepicker td span:hover{background:#F0F0F0}.am-datepicker td span.am-active{color:#0084c7;background:#F0F0F0}.am-datepicker td span.am-disabled{cursor:no-drop;color:#999;background:#fafafa}.am-datepicker td span.am-datepicker-old{color:#89d7ff}.am-datepicker .am-datepicker-dow{height:40px;color:#4ab765}.am-datepicker-caret{display:block!important;display:inline-block;width:0;height:0;vertical-align:middle;border-bottom:7px solid #5bb75b;border-right:7px solid transparent;border-left:7px solid transparent;border-top:0 dotted;-webkit-transform:rotate(360deg);-ms-transform:rotate(360deg);transform:rotate(360deg);position:absolute;top:-7px;left:6px}.am-datepicker-right .am-datepicker-caret{left:auto;right:7px}.am-datepicker-up .am-datepicker-caret{top:auto;bottom:-7px;display:inline-block;width:0;height:0;vertical-align:middle;border-top:7px solid #fff;border-right:7px solid transparent;border-left:7px solid transparent;border-bottom:0 dotted;-webkit-transform:rotate(360deg);-ms-transform:rotate(360deg);transform:rotate(360deg)}.am-datepicker-select{height:34px;line-height:34px;text-align:center;-webkit-transition:background-color .3s ease-out;transition:background-color .3s ease-out}.am-datepicker-select:hover{background:rgba(154,217,248,.5);color:#4ab765}.am-datepicker-next,.am-datepicker-prev{width:34px;height:34px}.am-datepicker-next-icon,.am-datepicker-prev-icon{width:34px;height:34px;line-height:34px;display:inline-block;-webkit-transition:background-color .3s ease-out;transition:background-color .3s ease-out}.am-datepicker-next-icon:hover,.am-datepicker-prev-icon:hover{background:rgba(154,217,248,.5);color:#4ab765}.am-datepicker-prev-icon:before{display:inline-block;font:normal normal normal 1.6rem/1 FontAwesome,sans-serif;font-size:inherit;text-rendering:auto;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;-webkit-transform:translate(0,0);-ms-transform:translate(0,0);transform:translate(0,0);content:"\f053"}.am-datepicker-next-icon:before{display:inline-block;font:normal normal normal 1.6rem/1 FontAwesome,sans-serif;font-size:inherit;text-rendering:auto;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;-webkit-transform:translate(0,0);-ms-transform:translate(0,0);transform:translate(0,0);content:"\f054"}.am-datepicker-dropdown{position:absolute;z-index:1120}@media only screen and (max-width:640px){.am-datepicker{width:100%}.am-datepicker td span{width:33.33%}.am-datepicker-caret{display:none!important}.am-datepicker-next,.am-datepicker-prev{width:44px;height:44px}}.am-datepicker-success tr.am-datepicker-header{background:#5eb95e}.am-datepicker-success td.am-datepicker-day.am-disabled{color:#999}.am-datepicker-success td.am-datepicker-new,.am-datepicker-success td.am-datepicker-old{color:#94df94}.am-datepicker-success td.am-active,.am-datepicker-success td.am-active:hover{color:#1b961b}.am-datepicker-success td span.am-datepicker-old{color:#94df94}.am-datepicker-success td span.am-active{color:#1b961b}.am-datepicker-success .am-datepicker-caret{border-bottom-color:#5eb95e}.am-datepicker-success .am-datepicker-dow{color:#367b36}.am-datepicker-success .am-datepicker-next-icon:hover,.am-datepicker-success .am-datepicker-prev-icon:hover,.am-datepicker-success .am-datepicker-select:hover{background:rgba(165,216,165,.5);color:#367b36}.am-datepicker-danger tr.am-datepicker-header{background:#dd514c}.am-datepicker-danger td.am-datepicker-day.am-disabled{color:#999}.am-datepicker-danger td.am-datepicker-new,.am-datepicker-danger td.am-datepicker-old{color:#f59490}.am-datepicker-danger td.am-active,.am-datepicker-danger td.am-active:hover{color:#c10802}.am-datepicker-danger td span.am-datepicker-old{color:#f59490}.am-datepicker-danger td span.am-active{color:#c10802}.am-datepicker-danger .am-datepicker-caret{border-bottom-color:#dd514c}.am-datepicker-danger .am-datepicker-dow{color:#a4241f}.am-datepicker-danger .am-datepicker-next-icon:hover,.am-datepicker-danger .am-datepicker-prev-icon:hover,.am-datepicker-danger .am-datepicker-select:hover{background:rgba(237,164,162,.5);color:#a4241f}.am-datepicker-warning tr.am-datepicker-header{background:#F37B1D}.am-datepicker-warning td.am-datepicker-day.am-disabled{color:#999}.am-datepicker-warning td.am-datepicker-new,.am-datepicker-warning td.am-datepicker-old{color:#ffad6d}.am-datepicker-warning td.am-active,.am-datepicker-warning td.am-active:hover{color:#aa4b00}.am-datepicker-warning td span.am-datepicker-old{color:#ffad6d}.am-datepicker-warning td span.am-active{color:#aa4b00}.am-datepicker-warning .am-datepicker-caret{border-bottom-color:#F37B1D}.am-datepicker-warning .am-datepicker-dow{color:#a14c09}.am-datepicker-warning .am-datepicker-next-icon:hover,.am-datepicker-warning .am-datepicker-prev-icon:hover,.am-datepicker-warning .am-datepicker-select:hover{background:rgba(248,180,126,.5);color:#a14c09}.am-datepicker>div{display:block}.am-datepicker>div span.am-datepicker-hour{width:59.5px}.am-datepicker-date{display:block}.am-datepicker-date.am-input-group{display:table}.am-datepicker-time-box{padding:30px 0 30px 0}.am-datepicker-time-box strong{font-size:5.2rem;display:inline-block;height:70px;width:70px;line-height:70px;font-weight:400}.am-datepicker-time-box strong:hover{border-radius:4px;background:#ECECEC}.am-datepicker-time-box em{display:inline-block;height:70px;width:20px;line-height:70px;font-size:5.2rem;font-style:normal}.am-datepicker-toggle{text-align:center;cursor:pointer;padding:10px 0}.am-datepicker-toggle:hover{background:#f0f0f0}@media print{*,:after,:before{background:0 0!important;color:#000!important;-webkit-box-shadow:none!important;box-shadow:none!important;text-shadow:none!important}a,a:visited{text-decoration:underline}a[href]:after{content:" (" attr(href) ")"}abbr[title]:after{content:" [" attr(title) "] "}a[href^="javascript:"]:after,a[href^="#"]:after{content:""}blockquote,pre{border:1px solid #999;page-break-inside:avoid}thead{display:table-header-group}img,tr{page-break-inside:avoid}img{max-width:100%!important}h2,h3,p{orphans:3;widows:3}h2,h3{page-break-after:avoid}@page{margin:.5cm}select{background:#fff!important}.am-topbar{display:none}.am-table td,.am-table th{background-color:#fff!important}.am-table{border-collapse:collapse!important}.am-table-bordered td,.am-table-bordered th{border:1px solid #ddd!important}}.am-print-block{display:none!important}@media print{.am-print-block{display:block!important}}.am-print-inline{display:none!important}@media print{.am-print-inline{display:inline!important}}.am-print-inline-block{display:none!important}@media print{.am-print-inline-block{display:inline-block!important}}@media print{.am-print-hide{display:none!important}}.lte9 #nprogress .nprogress-spinner{display:none!important}.lte8 .am-dimmer{background-color:#000;filter:alpha(opacity=60)}.lte8 .am-modal-actions{display:none}.lte8 .am-modal-actions.am-modal-active{display:block}.lte8 .am-offcanvas.am-active{background:#000}.lte8 .am-popover .am-popover-caret{border:8px solid transparent}.lte8 .am-popover-top .am-popover-caret{border-top:8px solid #333;border-bottom:none}.lte8 .am-popover-left .am-popover-caret{right:-8px;margin-top:-6px;border-left:8px solid #333;border-right:none}.lte8 .am-popover-right .am-popover-caret{left:-8px;margin-top:-6px;border-right:8px solid #333;border-left:none}.am-accordion-item{margin:0}.am-accordion-title{font-weight:400;cursor:pointer}.am-accordion-item.am-disabled .am-accordion-title{cursor:default;pointer-events:none}.am-accordion-bd{margin:0!important;padding:0!important;border:none!important}.am-accordion-content{margin-top:0;padding:.8rem 1rem 1.2rem;font-size:1.4rem}.am-accordion-default{margin:1rem;border-radius:2px;-webkit-box-shadow:0 0 0 1px rgba(0,0,0,.1);box-shadow:0 0 0 1px rgba(0,0,0,.1)}.am-accordion-default .am-accordion-item{border-top:1px solid rgba(0,0,0,.05)}.am-accordion-default .am-accordion-item:first-child{border-top:none}.am-accordion-default .am-accordion-title{color:rgba(0,0,0,.6);-webkit-transition:background-color .2s ease-out;transition:background-color .2s ease-out;padding:.8rem 1rem}.am-accordion-default .am-accordion-title:before{content:"\f0da";display:inline-block;font:normal normal normal 1.6rem/1 FontAwesome,sans-serif;font-size:inherit;text-rendering:auto;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;-webkit-transform:translate(0,0);-ms-transform:translate(0,0);transform:translate(0,0);-webkit-transition:-webkit-transform .2s ease;transition:-webkit-transform .2s ease;transition:transform .2s ease;transition:transform .2s ease,-webkit-transform .2s ease;-webkit-transform:rotate(0);-ms-transform:rotate(0);transform:rotate(0);margin-right:5px}.am-accordion-default .am-accordion-title:hover{color:#1f262c}.am-accordion-default .am-accordion-content{color:#666}.am-accordion-default .am-active .am-accordion-title{background-color:#eee;color:#1f262c}.am-accordion-default .am-active .am-accordion-title:before{-webkit-transform:rotate(90deg);-ms-transform:rotate(90deg);transform:rotate(90deg)}.am-accordion-basic{margin:1rem}.am-accordion-basic .am-accordion-title{color:#333;-webkit-transition:background-color .2s ease-out;transition:background-color .2s ease-out;padding:.8rem 0 0}.am-accordion-basic .am-accordion-title:before{display:inline-block;font:normal normal normal 1.6rem/1 FontAwesome,sans-serif;font-size:inherit;text-rendering:auto;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;-webkit-transform:translate(0,0);-ms-transform:translate(0,0);transform:translate(0,0);content:"\f0da";-webkit-transition:-webkit-transform .2s ease;transition:-webkit-transform .2s ease;transition:transform .2s ease;transition:transform .2s ease,-webkit-transform .2s ease;-webkit-transform:rotate(0);-ms-transform:rotate(0);transform:rotate(0);margin-right:.5rem}.am-accordion-basic .am-accordion-content{color:#666}.am-accordion-basic .am-active .am-accordion-title{color:#1f262c}.am-accordion-basic .am-active .am-accordion-title:before{-webkit-transform:rotate(90deg);-ms-transform:rotate(90deg);transform:rotate(90deg)}.am-accordion-gapped{margin:.5rem 1rem}.am-accordion-gapped .am-accordion-item{border:1px solid #dedede;border-bottom:none;margin:.5rem 0}.am-accordion-gapped .am-accordion-item.am-active{border-bottom:1px solid #dedede}.am-accordion-gapped .am-accordion-title{color:rgba(0,0,0,.6);-webkit-transition:background-color .15s ease-out;transition:background-color .15s ease-out;border-bottom:1px solid #dedede;padding:.8rem 2rem .8rem 1rem;position:relative}.am-accordion-gapped .am-accordion-title:after{display:inline-block;font:normal normal normal 1.6rem/1 FontAwesome,sans-serif;font-size:inherit;text-rendering:auto;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;-webkit-transform:translate(0,0);-ms-transform:translate(0,0);transform:translate(0,0);content:"\f105";-webkit-transition:-webkit-transform .2s linear;transition:-webkit-transform .2s linear;transition:transform .2s linear;transition:transform .2s linear,-webkit-transform .2s linear;position:absolute;right:10px;top:50%;margin-top:-.8rem}.am-accordion-gapped .am-accordion-title:hover{color:rgba(0,0,0,.8)}.am-accordion-gapped .am-accordion-content{color:#666}.am-accordion-gapped .am-active .am-accordion-title{background-color:#f5f5f5;color:rgba(0,0,0,.8)}.am-accordion-gapped .am-active .am-accordion-title:after{-webkit-transform:rotate(90deg);-ms-transform:rotate(90deg);transform:rotate(90deg)}.am-divider{height:0;margin:1.5rem auto;overflow:hidden;clear:both}.am-divider-default{border-top:1px solid #ddd}.am-divider-dotted{border-top:1px dotted #ccc}.am-divider-dashed{border-top:1px dashed #ccc}.am-figure-zoomable{position:relative;cursor:pointer}.am-figure-zoomable:after{display:inline-block;font:normal normal normal 1.6rem/1 FontAwesome,sans-serif;font-size:inherit;text-rendering:auto;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;-webkit-transform:translate(0,0);-ms-transform:translate(0,0);transform:translate(0,0);content:"\f00e";position:absolute;top:1rem;right:1rem;color:#999;font-size:1.6rem;-webkit-transition:all .2s;transition:all .2s;pointer-events:none}.am-figure-zoomable:hover:after{color:#eee}.am-figure-default{margin:10px}.am-figure-default img{display:block;max-width:100%;height:auto;padding:2px;border:1px solid #eee;margin:10px auto}.am-figure-default figcaption{text-align:center;font-size:1.4rem;margin-bottom:15px;color:#333}.am-footer{text-align:center;padding:1em 0;font-size:1.6rem}.am-footer .am-switch-mode-ysp{cursor:pointer}.am-footer .am-footer-text{margin-top:10px;font-size:14px}.am-footer .am-footer-text-left{text-align:left;padding-left:10px}.am-modal-footer-hd{padding-bottom:10px}.am-footer-default{background-color:#fff}.am-footer-default a{color:#555}.am-footer-default .am-footer-switch{margin-bottom:10px;font-weight:700}.am-footer-default .am-footer-ysp{color:#555;cursor:pointer}.am-footer-default .am-footer-divider{color:#ccc}.am-footer-default .am-footer-desktop{color:#1f262c}.am-footer-default .am-footer-miscs{color:#999;font-size:13px}.am-footer-default .am-footer-miscs p{margin:5px 0}@media only screen and (min-width:641px){.am-footer-default .am-footer-miscs p{display:inline-block;margin:5px}}.am-gallery{padding:5px 5px 0 5px;list-style:none}.am-gallery h3{margin:0}[data-am-gallery*=pureview] img{cursor:pointer}.am-gallery-default>li{padding:5px}.am-gallery-default .am-gallery-item img{width:100%;height:auto}.am-gallery-default .am-gallery-title{margin-top:10px;font-weight:400;font-size:1.4rem;display:block;word-wrap:normal;text-overflow:ellipsis;white-space:nowrap;overflow:hidden;color:#555}.am-gallery-default .am-gallery-desc{color:#999;font-size:1.2rem}.am-gallery-overlay>li{padding:5px}.am-gallery-overlay .am-gallery-item{position:relative}.am-gallery-overlay .am-gallery-item img{width:100%;height:auto}.am-gallery-overlay .am-gallery-title{font-weight:400;font-size:1.4rem;color:#FFF;position:absolute;bottom:0;width:100%;background-color:rgba(0,0,0,.5);text-indent:5px;height:30px;line-height:30px;display:block;word-wrap:normal;text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.am-gallery-overlay .am-gallery-desc{display:none}.am-gallery-bordered>li{padding:5px}.am-gallery-bordered .am-gallery-item{-webkit-box-shadow:0 0 3px rgba(0,0,0,.35);box-shadow:0 0 3px rgba(0,0,0,.35);padding:5px}.am-gallery-bordered .am-gallery-item img{width:100%;height:auto}.am-gallery-bordered .am-gallery-title{margin-top:10px;font-weight:400;font-size:1.4rem;color:#555;display:block;word-wrap:normal;text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.am-gallery-bordered .am-gallery-desc{color:#999;font-size:1.2rem}.am-gallery-imgbordered>li{padding:5px}.am-gallery-imgbordered .am-gallery-item img{width:100%;height:auto;border:3px solid #FFF;-webkit-box-shadow:0 0 3px rgba(0,0,0,.35);box-shadow:0 0 3px rgba(0,0,0,.35)}.am-gallery-imgbordered .am-gallery-title{margin-top:10px;font-weight:400;font-size:1.4rem;color:#555;display:block;word-wrap:normal;text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.am-gallery-imgbordered .am-gallery-desc{color:#999;font-size:1.2rem}.am-gotop a{display:inline-block;text-decoration:none}.am-gotop-default{text-align:center;margin:10px 0}.am-gotop-default a{background-color:#1f262c;padding:.5em 1.5em;border-radius:0;color:#fff}.am-gotop-default a img{display:none}.am-gotop-fixed{position:fixed;right:10px;bottom:10px;z-index:1010;opacity:0;width:32px;min-height:32px;overflow:hidden;border-radius:0;text-align:center}.am-gotop-fixed.am-active{opacity:.9}.am-gotop-fixed.am-active:hover{opacity:1}.am-gotop-fixed a{display:block}.am-gotop-fixed .am-gotop-title{display:none}.am-gotop-fixed .am-gotop-icon-custom{display:inline-block;max-width:30px;vertical-align:middle}.am-gotop-fixed .am-gotop-icon{width:100%;line-height:32px;background-color:#555;vertical-align:middle;color:#ddd}.am-gotop-fixed .am-gotop-icon:hover{color:#fff}.am-with-fixed-navbar .am-gotop-fixed{bottom:60px}.am-header{position:relative;width:100%;height:49px;line-height:49px;padding:0 10px}.am-header h1{margin-top:0;margin-bottom:0}.am-header .am-header-title{margin:0 30%;font-size:2rem;font-weight:400;text-align:center;display:block;word-wrap:normal;text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.am-header .am-header-title img{margin-top:12px;height:25px;vertical-align:top}.am-header .am-header-nav{position:absolute;top:0}.am-header .am-header-nav img{height:16px;width:auto;vertical-align:middle}.am-header .am-header-left{left:10px}.am-header .am-header-right{right:10px}.am-header-fixed{position:fixed;top:0;left:0;right:0;width:100%;z-index:1010}.am-with-fixed-header{padding-top:49px}.am-header-default{background-color:#1f262c}.am-header-default .am-header-title{color:#fff}.am-header-default .am-header-title a{color:#fff}.am-header-default .am-header-icon{font-size:20px}.am-header-default .am-header-nav{color:#eee}.am-header-default .am-header-nav>a{display:inline-block;min-width:36px;text-align:center;color:#eee}.am-header-default .am-header-nav>a+a{margin-left:5px}.am-header-default .am-header-nav .am-btn{margin-top:9px;height:31px;padding:0 .5em;line-height:30px;font-size:14px;vertical-align:top}.am-header-default .am-header-nav .am-btn .am-header-icon{font-size:inherit}.am-header-default .am-header-nav .am-btn-default{color:#999}.am-header-default .am-header-nav-title,.am-header-default .am-header-nav-title+.am-header-icon{font-size:14px}.am-intro{position:relative}.am-intro img{max-width:100%}.am-intro-hd{position:relative;height:45px;line-height:45px}.am-intro-title{font-size:18px;margin:0;font-weight:700}.am-intro-more-top{position:absolute;right:10px;top:0;font-size:1.4rem}.am-intro-bd{padding-top:15px;padding-bottom:15px;font-size:1.4rem}.am-intro-bd p:last-child{margin-bottom:0}.am-intro-more-bottom{clear:both;text-align:center}.am-intro-more-bottom .am-btn{font-size:14px}.am-intro-default .am-intro-hd{background-color:#1f262c;color:#fff;padding:0 10px}.am-intro-default .am-intro-hd a{color:#eee}.am-intro-default .am-intro-right{padding-left:0}.am-list-news-hd{padding-top:1.2rem;padding-bottom:.8rem}.am-list-news-hd a{display:block}.am-list-news-hd h2{font-size:1.6rem;float:left;margin:0;height:2rem;line-height:2rem}.am-list-news-hd h3{margin:0}.am-list-news-hd .am-list-news-more{font-size:1.3rem;height:2rem;line-height:2rem}.am-list .am-list-item-dated a{padding-right:80px;display:block;word-wrap:normal;text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.am-list .am-list-item-dated a::after{display:none}.am-list .am-list-item-desced a,.am-list .am-list-item-thumbed a{padding-right:0}.am-list-news .am-list-item-hd{margin:0}.am-list-date{position:absolute;right:5px;font-size:1.3rem;top:1.3rem}.am-list-item-desced{padding-bottom:1rem}.am-list-item-desced>a{padding:1rem 0}.am-list-item-desced .am-list-date{position:static}.am-list-item-thumbed{padding-top:1em}.am-list-news-ft{text-align:center}.am-list-news .am-titlebar{margin-left:0;margin-right:0}.am-list-news .am-titlebar~.am-list-news-bd .am-list>li:first-child{border-top:none}.am-list-news-default{margin:10px}.am-list-news-default .am-g{margin-left:auto;margin-right:auto}.am-list-news-default .am-list-item-hd{font-weight:400}.am-list-news-default .am-list-date{color:#999}.am-list-news-default .am-list>li{border-color:#dedede}.am-list-news-default .am-list .am-list-item-desced{padding-top:1rem;padding-bottom:1rem}.am-list-news-default .am-list .am-list-item-desced>a{padding:0}.am-list-news-default .am-list .am-list-item-desced .am-list-item-text{margin-top:.5rem;color:#757575}.am-list-news-default .am-list .am-list-item-text{overflow:hidden;text-overflow:ellipsis;display:-webkit-box;-webkit-box-orient:vertical;line-height:1.3em;-webkit-line-clamp:2;max-height:2.6em}.am-list-news-default .am-list .am-list-item-thumb-top .am-list-thumb{padding:0;margin-bottom:.8rem}.am-list-news-default .am-list .am-list-item-thumb-top .am-list-main{padding:0}.am-list-news-default .am-list .am-list-item-thumb-left .am-list-thumb{padding-left:0}.am-list-news-default .am-list .am-list-item-desced .am-list-main{padding:0}.am-list-news-default .am-list .am-list-item-thumb-right .am-list-thumb{padding-right:0}.am-list-news-default .am-list .am-list-item-thumb-bottom-left .am-list-item-hd{clear:both;padding-bottom:.5rem}.am-list-news-default .am-list .am-list-item-thumb-bottom-left .am-list-thumb{padding-left:0}.am-list-news-default .am-list .am-list-item-thumb-bottom-right .am-list-item-hd{clear:both;padding-bottom:.5rem}.am-list-news-default .am-list .am-list-item-thumb-bottom-right .am-list-thumb{padding-right:0}.am-list-news-default .am-list .am-list-thumb img{width:100%;display:block}@media only screen and (max-width:640px){.am-list-news-default .am-list-item-thumb-left .am-list-thumb,.am-list-news-default .am-list-item-thumb-right .am-list-thumb{max-height:80px;overflow:hidden}.am-list-news-default .am-list-item-thumb-bottom-left .am-list-item-text,.am-list-news-default .am-list-item-thumb-bottom-right .am-list-item-text{-webkit-line-clamp:3;max-height:3.9em}.am-list-news-default .am-list-item-thumb-bottom-left .am-list-thumb,.am-list-news-default .am-list-item-thumb-bottom-right .am-list-thumb{max-height:60px;overflow:hidden}}.am-map{width:100%;height:300px}.am-map-default #bd-map{width:100%;height:100%;overflow:hidden;margin:0;font-size:14px;line-height:1.4!important}.am-map-default .BMap_bubble_title{font-weight:700}.am-map-default #BMap_mask{width:100%}.am-mechat{margin:1rem}.am-mechat .section-cbox-wap .cbox-post-wap .post-action-wap .action-function-wap .function-list-wap .list-upload-wap .upload-mutual-wap{-webkit-box-sizing:content-box;box-sizing:content-box}.am-menu{position:relative;padding:0;margin:0}.am-menu ul{padding:0;margin:0}.am-menu li{list-style:none}.am-menu a:after,.am-menu a:before{display:inline-block;font:normal normal normal 1.6rem/1 FontAwesome,sans-serif;font-size:inherit;text-rendering:auto;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;-webkit-transform:translate(0,0);-ms-transform:translate(0,0);transform:translate(0,0)}.am-menu-sub{z-index:1050}.am-menu-toggle{display:none;z-index:1015}.am-menu-toggle img{display:inline-block;height:16px;width:auto;vertical-align:middle}.am-menu-nav a{display:block;padding:.8rem 0;-webkit-transition:all .45s;transition:all .45s}.am-menu-default .am-menu-nav{padding-top:8px;padding-bottom:8px}.am-menu-default .am-menu-nav a{text-align:center;height:36px;line-height:36px;display:block;word-wrap:normal;text-overflow:ellipsis;white-space:nowrap;overflow:hidden;padding:0;color:#1f262c}.am-menu-default .am-menu-nav>.am-parent>a{position:relative;-webkit-transition:.15s;transition:.15s}.am-menu-default .am-menu-nav>.am-parent>a:after{content:"\f107";margin-left:5px;-webkit-transition:.15s;transition:.15s}.am-menu-default .am-menu-nav>.am-parent>a:before{position:absolute;top:100%;margin-top:-16px;left:50%;margin-left:-12px;content:"\f0d8";display:none;color:#f1f1f1;font-size:24px}.am-menu-default .am-menu-nav>.am-parent.am-open>a{color:#28b779}.am-menu-default .am-menu-nav>.am-parent.am-open>a:before{display:block}.am-menu-default .am-menu-nav>.am-parent.am-open>a:after{-webkit-transform:rotate(-180deg);-ms-transform:rotate(-180deg);transform:rotate(-180deg)}.am-menu-default .am-menu-sub{position:absolute;left:5px;right:5px;background-color:#f1f1f1;border-radius:0;padding-top:8px;padding-bottom:8px}.am-menu-default .am-menu-sub>li>a{color:#555}@media only screen and (min-width:641px){.am-menu-default .am-menu-nav li{width:auto;float:left;clear:none;display:inline}.am-menu-default .am-menu-nav a{padding-left:1.5rem;padding-right:.5rem}}.am-menu-dropdown1{position:relative}.am-menu-dropdown1 .am-menu-toggle{position:absolute;right:5px;top:-47px;display:block;width:44px;height:44px;line-height:44px;text-align:center;color:#fff}.am-menu-dropdown1 a{-webkit-transition:all .4s;transition:all .4s;display:block;word-wrap:normal;text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.am-menu-dropdown1 .am-menu-nav{position:absolute;left:0;right:0;z-index:1050}.am-menu-dropdown1 .am-menu-nav a{padding:.8rem}.am-menu-dropdown1 .am-menu-nav>li{width:100%}.am-menu-dropdown1 .am-menu-nav>li.am-parent>a{position:relative}.am-menu-dropdown1 .am-menu-nav>li.am-parent>a::before{content:"\f067";position:absolute;right:1rem;top:1.4rem}.am-menu-dropdown1 .am-menu-nav>li.am-parent.am-open>a{background-color:#4ab765;border-bottom:none;color:#fff}.am-menu-dropdown1 .am-menu-nav>li.am-parent.am-open>a:before{content:"\f068"}.am-menu-dropdown1 .am-menu-nav>li.am-parent.am-open>a:after{content:"";display:inline-block;width:0;height:0;vertical-align:middle;border-top:8px solid #4ab765;border-right:8px solid transparent;border-left:8px solid transparent;border-bottom:0 dotted;-webkit-transform:rotate(360deg);-ms-transform:rotate(360deg);transform:rotate(360deg);position:absolute;top:100%;left:50%;margin-left:-4px}.am-menu-dropdown1 .am-menu-nav>li>a{border-bottom:1px solid #0b76ac;-webkit-box-shadow:inset 0 1px 0 rgba(255,255,255,.05);box-shadow:inset 0 1px 0 rgba(255,255,255,.05);background-color:#1f262c;color:#fff;height:49px;line-height:49px;padding:0;text-indent:10px}.am-menu-dropdown1 .am-menu-sub{background-color:#fff}.am-menu-dropdown1 .am-menu-sub a{color:#555;height:44px;line-height:44px;text-indent:5px;padding:0}.am-menu-dropdown1 .am-menu-sub a:before{content:"\f105";color:#aaa;font-size:16px;margin-right:5px}.am-menu-dropdown2 .am-menu-toggle{position:absolute;right:5px;top:-47px;display:block;width:44px;height:44px;line-height:44px;text-align:center;color:#fff}.am-menu-dropdown2 .am-menu-nav{position:absolute;left:0;right:0;background-color:#f5f5f5;-webkit-box-shadow:0 0 5px rgba(0,0,0,.2);box-shadow:0 0 5px rgba(0,0,0,.2);z-index:1050;padding-top:8px;padding-bottom:8px}.am-menu-dropdown2 .am-menu-nav a{height:38px;line-height:38px;padding:0;text-align:center}.am-menu-dropdown2 .am-menu-nav>li>a{color:#333}.am-menu-dropdown2 .am-menu-nav>li.am-parent>a{position:relative}.am-menu-dropdown2 .am-menu-nav>li.am-parent>a:after{content:"\f107";margin-left:5px;-webkit-transition:-webkit-transform .2s;transition:-webkit-transform .2s;transition:transform .2s;transition:transform .2s,-webkit-transform .2s}.am-menu-dropdown2 .am-menu-nav>li.am-parent.am-open>a{position:relative}.am-menu-dropdown2 .am-menu-nav>li.am-parent.am-open>a:after{color:#1f262c;-webkit-transform:rotate(180deg);-ms-transform:rotate(180deg);transform:rotate(180deg)}.am-menu-dropdown2 .am-menu-nav>li.am-parent.am-open>a:before{position:absolute;top:100%;margin-top:-16px;left:50%;margin-left:-12px;font-size:24px;content:"\f0d8";color:rgba(0,0,0,.2)}.am-menu-dropdown2 .am-menu-sub{position:absolute;left:5px;right:5px;padding:8px 0;border-radius:2px;-webkit-box-shadow:0 0 3px rgba(0,0,0,.15);box-shadow:0 0 3px rgba(0,0,0,.15);background-color:#fff;z-index:1055}.am-menu-dropdown2 .am-menu-sub a{padding:0;height:35px;color:#555;line-height:35px}@media only screen and (min-width:641px){.am-menu-dropdown2 .am-menu-toggle{display:none!important}.am-menu-dropdown2 .am-menu-nav{position:static;display:block}.am-menu-dropdown2 .am-menu-nav>li{float:none;width:auto;display:inline-block}.am-menu-dropdown2 .am-menu-nav>li a{padding-left:1.5rem;padding-right:1.5rem}.am-menu-dropdown2 .am-menu-sub{left:auto;right:auto}.am-menu-dropdown2 .am-menu-sub>li{float:none;width:auto}.am-menu-dropdown2 .am-menu-sub a{padding-left:2rem;padding-right:2rem}}.am-menu-slide1 .am-menu-toggle{position:absolute;right:5px;top:-47px;display:block;width:44px;height:44px;line-height:44px;text-align:center;color:#fff}.am-menu-slide1 .am-menu-nav{background-color:#f5f5f5;padding-top:8px;padding-bottom:8px}.am-menu-slide1 .am-menu-nav.am-in:before{display:inline-block;font:normal normal normal 1.6rem/1 FontAwesome,sans-serif;font-size:inherit;text-rendering:auto;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;-webkit-transform:translate(0,0);-ms-transform:translate(0,0);transform:translate(0,0);content:"\f0d8";font-size:24px;color:#f5f5f5;position:absolute;right:16px;top:-16px}.am-menu-slide1 .am-menu-nav a{line-height:38px;height:38px;display:block;padding:0;text-align:center}.am-menu-slide1 .am-menu-nav>li>a{color:#333;display:block;word-wrap:normal;text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.am-menu-slide1 .am-menu-nav>.am-parent>a{position:relative;-webkit-transition:.15s;transition:.15s}.am-menu-slide1 .am-menu-nav>.am-parent>a:after{content:"\f107";margin-left:5px;-webkit-transition:.15s;transition:.15s}.am-menu-slide1 .am-menu-nav>.am-parent>a:before{position:absolute;top:100%;margin-top:-16px;left:50%;margin-left:-12px;content:"\f0d8";display:none;color:#1f262c;font-size:24px}.am-menu-slide1 .am-menu-nav>.am-parent.am-open>a{color:#1f262c}.am-menu-slide1 .am-menu-nav>.am-parent.am-open>a:before{display:block}.am-menu-slide1 .am-menu-nav>.am-parent.am-open>a:after{-webkit-transform:rotate(-180deg);-ms-transform:rotate(-180deg);transform:rotate(-180deg)}.am-menu-slide1 .am-menu-sub{position:absolute;left:5px;right:5px;background-color:#1f262c;border-radius:0;padding-top:8px;padding-bottom:8px}.am-menu-slide1 .am-menu-sub>li>a{color:#fff}@media only screen and (min-width:641px){.am-menu-slide1 .am-menu-toggle{display:none!important}.am-menu-slide1 .am-menu-nav{background-color:#f5f5f5;display:block}.am-menu-slide1 .am-menu-nav.am-in:before{display:none}.am-menu-slide1 .am-menu-nav li{width:auto;clear:none}.am-menu-slide1 .am-menu-nav li a{padding-left:1.5rem;padding-right:1.5rem}}.am-menu-offcanvas1 .am-menu-toggle{position:absolute;right:5px;top:-47px;display:block;width:44px;height:44px;line-height:44px;text-align:center;color:#fff}.am-menu-offcanvas1 .am-menu-nav{border-bottom:1px solid rgba(0,0,0,.3);-webkit-box-shadow:0 1px 0 rgba(255,255,255,.05);box-shadow:0 1px 0 rgba(255,255,255,.05)}.am-menu-offcanvas1 .am-menu-nav>li>a{height:44px;line-height:44px;text-indent:15px;padding:0;position:relative;color:#ccc;border-top:1px solid rgba(0,0,0,.3);-webkit-box-shadow:inset 0 1px 0 rgba(255,255,255,.05);box-shadow:inset 0 1px 0 rgba(255,255,255,.05);text-shadow:0 1px 0 rgba(0,0,0,.5)}.am-menu-offcanvas1 .am-menu-nav>.am-open>a,.am-menu-offcanvas1 .am-menu-nav>li>a:focus,.am-menu-offcanvas1 .am-menu-nav>li>a:hover{background-color:#474747;color:#fff;outline:0}.am-menu-offcanvas1 .am-menu-nav>.am-active>a{background-color:#1a1a1a;color:#fff}.am-menu-offcanvas1 .am-menu-nav>.am-parent>a{-webkit-transition:all .3s;transition:all .3s}.am-menu-offcanvas1 .am-menu-nav>.am-parent>a:after{content:"\f104";position:absolute;right:1.5rem;top:1.3rem}.am-menu-offcanvas1 .am-menu-nav>.am-parent.am-open>a:after{content:"\f107"}.am-menu-offcanvas1 .am-menu-sub{border-top:1px solid rgba(0,0,0,.3);-webkit-box-shadow:inset 0 1px 0 rgba(255,255,255,.05);box-shadow:inset 0 1px 0 rgba(255,255,255,.05);padding:5px 0 5px 15px;background-color:#1a1a1a;font-size:1.4rem}.am-menu-offcanvas1 .am-menu-sub a{color:#eee}.am-menu-offcanvas1 .am-menu-sub a:hover{color:#fff}.am-menu-offcanvas1 .am-nav-divider{border-top:1px solid #1a1a1a}.am-menu-offcanvas2 .am-menu-toggle{position:absolute;right:5px;top:-47px;display:block;width:44px;height:44px;line-height:44px;text-align:center;color:#fff}.am-menu-offcanvas2 .am-menu-nav{padding:10px 5px}.am-menu-offcanvas2 .am-menu-nav>li{padding:5px}.am-menu-offcanvas2 .am-menu-nav>li>a{-webkit-transition:all .3s;transition:all .3s;background-color:#404040;color:#ccc;display:block;word-wrap:normal;text-overflow:ellipsis;white-space:nowrap;overflow:hidden;border:1px solid rgba(0,0,0,.3);-webkit-box-shadow:inset 0 1px 0 rgba(255,255,255,.05);box-shadow:inset 0 1px 0 rgba(255,255,255,.05);text-shadow:0 1px 0 rgba(0,0,0,.5);height:44px;line-height:44px;padding:0;text-align:center}.am-menu-offcanvas2 .am-menu-nav>li>a:focus,.am-menu-offcanvas2 .am-menu-nav>li>a:hover{background-color:#262626;color:#fff;outline:0}.am-menu-offcanvas2 .am-menu-nav>.am-active>a{background-color:#262626;color:#fff}.am-menu-stack .am-menu-nav{border-bottom:1px solid #dedede;-webkit-box-shadow:0 1px 0 rgba(255,255,255,.05);box-shadow:0 1px 0 rgba(255,255,255,.05)}.am-menu-stack .am-menu-nav>.am-parent>a{-webkit-transition:all .3s;transition:all .3s}.am-menu-stack .am-menu-nav>.am-parent>a:after{content:"\f105";position:absolute;right:1.5rem;top:1.3rem;-webkit-transition:all .15s;transition:all .15s}.am-menu-stack .am-menu-nav>.am-parent.am-open>a:after{-webkit-transform:rotate(90deg);-ms-transform:rotate(90deg);transform:rotate(90deg)}.am-menu-stack .am-menu-nav>li>a{position:relative;color:#333;background-color:#f5f5f5;border-top:1px solid #dedede;-webkit-box-shadow:inset 0 1px 0 rgba(255,255,255,.05);box-shadow:inset 0 1px 0 rgba(255,255,255,.05);height:49px;line-height:49px;text-indent:10px;padding:0}.am-menu-stack .am-menu-nav>.am-open>a,.am-menu-stack .am-menu-nav>li>a:focus,.am-menu-stack .am-menu-nav>li>a:hover{background-color:#e5e5e5;color:#222;outline:0}.am-menu-stack .am-menu-sub{padding:0;font-size:1.4rem;border-top:1px solid #dedede}.am-menu-stack .am-menu-sub a{border-bottom:1px solid #dedede;padding-left:2rem;color:#444}.am-menu-stack .am-menu-sub a:hover{color:#333}.am-menu-stack .am-menu-sub li:last-child a{border-bottom:none}.am-menu-stack .am-menu-sub>li>a{height:44px;line-height:44px;text-indent:15px;padding:0}@media only screen and (min-width:641px){.am-menu-stack .am-menu-nav{background-color:#f5f5f5}.am-menu-stack .am-menu-nav>li{float:left;width:auto;clear:none!important;display:inline-block}.am-menu-stack .am-menu-nav>li a{padding-left:1.5rem;padding-right:1.5rem}.am-menu-stack .am-menu-nav>li.am-parent>a:after{position:static;content:"\f107"}.am-menu-stack .am-menu-nav>li.am-parent.am-open a{border-bottom:none}.am-menu-stack .am-menu-nav>li.am-parent.am-open a:after{-webkit-transform:rotateX(-180deg);transform:rotateX(-180deg)}.am-menu-stack .am-menu-nav>li.am-parent.am-open .am-menu-sub{background-color:#e5e5e5}.am-menu-stack .am-menu-sub{position:absolute;left:0;right:0;background-color:#ddd;border-top:none}.am-menu-stack .am-menu-sub li{width:auto;float:left;clear:none}}.am-navbar{position:fixed;left:0;bottom:0;width:100%;height:49px;line-height:49px;z-index:1010}.am-navbar ul{padding-left:0;margin:0;list-style:none;width:100%}.am-navbar .am-navbar-nav{padding-left:8px;padding-right:8px;text-align:center;overflow:hidden}.am-navbar .am-navbar-nav li{display:table-cell;width:1%;float:none}.am-navbar-nav{position:relative;z-index:1015}.am-navbar-nav a{display:inline-block;width:100%;height:49px;line-height:20px}.am-navbar-nav a img{display:block;vertical-align:middle;height:24px;width:24px;margin:4px auto 0}.am-navbar-nav a [class*=am-icon]{width:24px;height:24px;margin:4px auto 0;display:block;line-height:24px}.am-navbar-nav a [class*=am-icon]:before{font-size:22px;vertical-align:middle}.am-navbar-nav a .am-navbar-label{padding-top:2px;line-height:1;font-size:12px;display:block;word-wrap:normal;text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.am-navbar-more [class*=am-icon-]{-webkit-transition:.15s;transition:.15s}.am-navbar-more.am-active [class*=am-icon-]{-webkit-transform:rotateX(-180deg);transform:rotateX(-180deg)}.am-navbar-actions{position:absolute;bottom:49px;right:0;left:0;z-index:1009;opacity:0;-webkit-transition:.3s;transition:.3s;-webkit-transform:translate(0,100%);-ms-transform:translate(0,100%);transform:translate(0,100%)}.am-navbar-actions.am-active{opacity:1;-webkit-transform:translate(0,0);-ms-transform:translate(0,0);transform:translate(0,0)}.am-navbar-actions li{line-height:42px;position:relative}.am-navbar-actions li a{display:block;width:100%;height:40px;-webkit-box-shadow:inset 0 1px rgba(220,220,220,.25);box-shadow:inset 0 1px rgba(220,220,220,.25);padding-left:20px;padding-right:36px}.am-navbar-actions li a :after{font-family:FontAwesome,sans-serif;content:"\f105";display:inline-block;position:absolute;top:0;right:20px}.am-navbar-actions li a img{vertical-align:middle;height:20px;width:20px;display:inline}#am-navbar-qrcode{width:220px;height:220px;margin-left:-110px}#am-navbar-qrcode .am-modal-bd{padding:10px}#am-navbar-qrcode canvas{display:block;width:200px;height:200px}.am-with-fixed-navbar{padding-bottom:54px}.am-navbar-default a{color:#fff}.am-navbar-default .am-navbar-nav{background-color:#1f262c}.am-navbar-default .am-navbar-actions{background-color:#0d86c4}.am-navbar-default .am-navbar-actions a{border-bottom:1px solid #0b6fa2}.am-pagination{position:relative}.am-pagination-default{margin-left:10px;margin-right:10px;font-size:1.6rem}.am-pagination-default .am-pagination-next,.am-pagination-default .am-pagination-prev{float:none}.am-pagination-select{margin-left:10px;margin-right:10px;font-size:1.6rem}.am-pagination-select>li>a{line-height:36px;background-color:#eee;padding:0 15px;border:0;color:#555}.am-pagination-select .am-pagination-select{position:absolute;top:0;left:50%;margin-left:-35px;width:70px;height:36px;text-align:center;border-radius:0}.am-pagination-select .am-pagination-select select{display:block;border:0;line-height:36px;width:70px;height:36px;border-radius:0;color:#555;background-color:#eee;-webkit-appearance:none;-moz-appearance:none;appearance:none;padding-left:18px}.am-paragraph p{margin:10px 0}.am-paragraph img{max-width:100%}.am-paragraph h1,.am-paragraph h2,.am-paragraph h3,.am-paragraph h4,.am-paragraph h5,.am-paragraph h6{color:#222}.am-paragraph table{max-width:none}.am-paragraph-table-container{overflow:hidden;background:#eee;max-width:none}.am-paragraph-table-container table{width:100%;max-width:none}.am-paragraph-table-container table th{background:#bce5fb;height:40px;border:1px solid #999;text-align:center}.am-paragraph-table-container table td{border:1px solid #999;text-align:center;vertical-align:middle;background:#fff}.am-paragraph-table-container table td p{text-indent:0;font-size:1.4rem}.am-paragraph-table-container table td a{font-size:1.4rem}.am-paragraph-default{margin:0 10px;color:#333;background-color:transparent}.am-paragraph-default p{font-size:1.4rem}.am-paragraph-default img{max-width:98%;display:block;margin:5px auto;border:1px solid #eee;padding:2px}.am-paragraph-default a{color:#1f262c}.am-slider-a1{-webkit-box-shadow:0 1px 4px rgba(0,0,0,.2);box-shadow:0 1px 4px rgba(0,0,0,.2)}.am-slider-a1 .am-viewport{max-height:2000px;-webkit-transition:all 1s ease;transition:all 1s ease}.loading .am-slider-a1 .am-viewport{max-height:300px}.am-slider-a1 .am-control-nav{width:100%;position:absolute;bottom:5px;text-align:center;line-height:0}.am-slider-a1 .am-control-nav li{margin:0 6px;display:inline-block}.am-slider-a1 .am-control-nav li a{width:8px;height:8px;display:block;background-color:rgba(0,0,0,.5);cursor:pointer;text-indent:-9999px;border-radius:50%;-webkit-box-shadow:inset 0 0 3px rgba(0,0,0,.3);box-shadow:inset 0 0 3px rgba(0,0,0,.3)}.am-slider-a1 .am-control-nav li a:hover{background-color:rgba(0,0,0,.7)}.am-slider-a1 .am-control-nav li a.am-active{background-color:#1f262c;cursor:default}.am-slider-a1 .am-direction-nav,.am-slider-a1 .am-pauseplay{display:none}.am-slider-a2{-webkit-box-shadow:0 1px 4px rgba(0,0,0,.2);box-shadow:0 1px 4px rgba(0,0,0,.2)}.am-slider-a2 .am-viewport{max-height:2000px;-webkit-transition:all 1s ease;transition:all 1s ease}.loading .am-slider-a2 .am-viewport{max-height:300px}.am-slider-a2 .am-control-nav{width:100%;position:absolute;bottom:5px;text-align:center;line-height:0}.am-slider-a2 .am-control-nav li{margin:0 6px;display:inline-block}.am-slider-a2 .am-control-nav li a{width:8px;height:8px;display:block;background-color:rgba(0,0,0,.5);cursor:pointer;text-indent:-9999px;-webkit-box-shadow:inset 0 0 3px rgba(0,0,0,.3);box-shadow:inset 0 0 3px rgba(0,0,0,.3)}.am-slider-a2 .am-control-nav li a:hover{background-color:rgba(0,0,0,.7)}.am-slider-a2 .am-control-nav li a.am-active{background:#0e93d7;cursor:default}.am-slider-a2 .am-direction-nav,.am-slider-a2 .am-pauseplay{display:none}.am-slider-a3{margin-bottom:20px;-webkit-box-shadow:0 1px 4px rgba(0,0,0,.2);box-shadow:0 1px 4px rgba(0,0,0,.2)}.am-slider-a3 .am-viewport{max-height:2000px;-webkit-transition:all 1s ease;transition:all 1s ease}.loading .am-slider-a3 .am-viewport{max-height:300px}.am-slider-a3 .am-control-nav{width:100%;position:absolute;bottom:-20px;text-align:center;height:20px;background-color:#000;padding-top:5px;line-height:0}.am-slider-a3 .am-control-nav li{margin:0 6px;display:inline-block}.am-slider-a3 .am-control-nav li a{width:8px;height:8px;display:block;background-color:rgba(0,0,0,.5);cursor:pointer;text-indent:-9999px;border-radius:50%;-webkit-box-shadow:inset 0 0 3px rgba(200,200,200,.3);box-shadow:inset 0 0 3px rgba(200,200,200,.3)}.am-slider-a3 .am-control-nav li a:hover{background-color:rgba(0,0,0,.7)}.am-slider-a3 .am-control-nav li a.am-active{background:#1f262c;cursor:default}.am-slider-a3 .am-direction-nav,.am-slider-a3 .am-pauseplay{display:none}.am-slider-a4{margin-bottom:30px;-webkit-box-shadow:0 1px 4px rgba(0,0,0,.2);box-shadow:0 1px 4px rgba(0,0,0,.2)}.am-slider-a4 .am-viewport{max-height:2000px;-webkit-transition:all 1s ease;transition:all 1s ease}.loading .am-slider-a4 .am-viewport{max-height:300px}.am-slider-a4 .am-control-nav{width:100%;position:absolute;bottom:-15px;text-align:center;line-height:0}.am-slider-a4 .am-control-nav li{margin:0 6px;display:inline-block}.am-slider-a4 .am-control-nav li a{width:8px;height:8px;display:block;background-color:rgba(0,0,0,.5);cursor:pointer;text-indent:-9999px;border-radius:50%;-webkit-box-shadow:inset 0 0 3px rgba(0,0,0,.3);box-shadow:inset 0 0 3px rgba(0,0,0,.3)}.am-slider-a4 .am-control-nav li a:hover{background-color:rgba(0,0,0,.7)}.am-slider-a4 .am-control-nav li a.am-active{background-color:#1f262c;cursor:default}.am-slider-a4 .am-direction-nav,.am-slider-a4 .am-pauseplay{display:none}.am-slider-a5{-webkit-box-shadow:0 1px 4px rgba(0,0,0,.2);box-shadow:0 1px 4px rgba(0,0,0,.2)}.am-slider-a5 .am-viewport{max-height:2000px;-webkit-transition:all 1s ease;transition:all 1s ease}.loading .am-slider-a5 .am-viewport{max-height:300px}.am-slider-a5 .am-control-nav{width:100%;position:absolute;text-align:center;height:6px;display:table;bottom:0;font-size:0;line-height:0}.am-slider-a5 .am-control-nav li{display:table-cell}.am-slider-a5 .am-control-nav li a{width:100%;height:6px;display:block;background-color:rgba(0,0,0,.5);cursor:pointer;text-indent:-9999px}.am-slider-a5 .am-control-nav li a:hover{background-color:rgba(0,0,0,.7)}.am-slider-a5 .am-control-nav li a.am-active{background-color:#1f262c;cursor:default}.am-slider-a5 .am-direction-nav,.am-slider-a5 .am-pauseplay{display:none}.am-slider-b1{-webkit-box-shadow:0 1px 4px rgba(0,0,0,.2);box-shadow:0 1px 4px rgba(0,0,0,.2)}.am-slider-b1 .am-viewport{max-height:2000px;-webkit-transition:all 1s ease;transition:all 1s ease}.loading .am-slider-b1 .am-viewport{max-height:300px}.am-slider-b1 .am-direction-nav a{-webkit-box-sizing:content-box;box-sizing:content-box;display:block;width:24px;height:24px;padding:8px 0;margin:-20px 0 0;position:absolute;top:50%;z-index:10;overflow:hidden;opacity:.45;cursor:pointer;color:#fff;text-shadow:1px 1px 0 rgba(255,255,255,.3);background-color:rgba(0,0,0,.5);font-size:0;text-align:center;-webkit-transition:all .3s ease;transition:all .3s ease}.am-slider-b1 .am-direction-nav a:before{display:inline-block;font:normal normal normal 1.6rem/1 FontAwesome,sans-serif;font-size:inherit;text-rendering:auto;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;-webkit-transform:translate(0,0);-ms-transform:translate(0,0);transform:translate(0,0);content:"\f053";font-size:24px}.am-slider-b1 .am-direction-nav a.am-prev{left:0;padding-right:5px;border-bottom-right-radius:5px;border-top-right-radius:5px}.am-slider-b1 .am-direction-nav a.am-next{right:0;padding-left:5px;border-bottom-left-radius:5px;border-top-left-radius:5px}.am-slider-b1 .am-direction-nav a.am-next:before{content:"\f054"}.am-slider-b1 .am-direction-nav .am-disabled{opacity:0!important;cursor:default}.am-slider-b1:hover .am-prev{opacity:.7}.am-slider-b1:hover .am-prev:hover{opacity:1}.am-slider-b1:hover .am-next{opacity:.7}.am-slider-b1:hover .am-next:hover{opacity:1}.am-slider-b1 .am-control-nav,.am-slider-b1 .am-pauseplay{display:none}.am-slider-b2{-webkit-box-shadow:0 1px 4px rgba(0,0,0,.2);box-shadow:0 1px 4px rgba(0,0,0,.2)}.am-slider-b2 .am-viewport{max-height:2000px;-webkit-transition:all 1s ease;transition:all 1s ease}.loading .am-slider-b2 .am-viewport{max-height:300px}.am-slider-b2 .am-direction-nav a{-webkit-box-sizing:content-box;box-sizing:content-box;display:block;width:24px;height:24px;padding:4px;margin:-16px 0 0;position:absolute;top:50%;z-index:10;overflow:hidden;opacity:.45;cursor:pointer;color:#fff;text-shadow:1px 1px 0 rgba(255,255,255,.3);background-color:rgba(0,0,0,.5);font-size:0;text-align:center;border-radius:50%;-webkit-transition:all .3s ease;transition:all .3s ease}.am-slider-b2 .am-direction-nav a:before{display:inline-block;font:normal normal normal 1.6rem/1 FontAwesome,sans-serif;font-size:inherit;text-rendering:auto;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;-webkit-transform:translate(0,0);-ms-transform:translate(0,0);transform:translate(0,0);content:"\f053";font-size:16px;line-height:24px}.am-slider-b2 .am-direction-nav a.am-prev{left:5px}.am-slider-b2 .am-direction-nav a.am-next{right:5px}.am-slider-b2 .am-direction-nav a.am-next:before{content:"\f054"}.am-slider-b2 .am-direction-nav .am-disabled{opacity:0!important;cursor:default}.am-slider-b2:hover .am-prev{opacity:.7}.am-slider-b2:hover .am-prev:hover{opacity:1}.am-slider-b2:hover .am-next{opacity:.7}.am-slider-b2:hover .am-next:hover{opacity:1}.am-slider-b2 .am-control-nav,.am-slider-b2 .am-pauseplay{display:none}.am-slider-b3{margin:15px 30px;-webkit-box-shadow:0 1px 4px rgba(0,0,0,.2);box-shadow:0 1px 4px rgba(0,0,0,.2)}.am-slider-b3 .am-viewport{max-height:2000px;-webkit-transition:all 1s ease;transition:all 1s ease}.loading .am-slider-b3 .am-viewport{max-height:300px}.am-slider-b3 .am-direction-nav a{-webkit-box-sizing:content-box;box-sizing:content-box;display:block;width:24px;height:24px;padding:4px;margin:-16px 0 0;position:absolute;top:50%;z-index:10;overflow:hidden;opacity:.45;cursor:pointer;color:#333;text-shadow:1px 1px 0 rgba(255,255,255,.3);font-size:0;-webkit-transition:all .3s ease;transition:all .3s ease}.am-slider-b3 .am-direction-nav a:before{display:inline-block;font:normal normal normal 1.6rem/1 FontAwesome,sans-serif;font-size:inherit;text-rendering:auto;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;-webkit-transform:translate(0,0);-ms-transform:translate(0,0);transform:translate(0,0);content:"\f053";font-size:24px}.am-slider-b3 .am-direction-nav a.am-prev{left:-25px}.am-slider-b3 .am-direction-nav a.am-next{right:-25px;text-align:right}.am-slider-b3 .am-direction-nav a.am-next:before{content:"\f054"}.am-slider-b3 .am-direction-nav .am-disabled{opacity:0!important;cursor:default}.am-slider-b3:hover .am-prev{opacity:.7}.am-slider-b3:hover .am-prev:hover{opacity:1}.am-slider-b3:hover .am-next{opacity:.7}.am-slider-b3:hover .am-next:hover{opacity:1}.am-slider-b3 .am-control-nav,.am-slider-b3 .am-pauseplay{display:none}.am-slider-b4{margin:15px 20px;-webkit-box-shadow:0 1px 4px rgba(0,0,0,.2);box-shadow:0 1px 4px rgba(0,0,0,.2)}.am-slider-b4 .am-viewport{max-height:2000px;-webkit-transition:all 1s ease;transition:all 1s ease}.loading .am-slider-b4 .am-viewport{max-height:300px}.am-slider-b4 .am-direction-nav a{position:absolute;top:50%;z-index:10;display:block;-webkit-box-sizing:content-box;box-sizing:content-box;width:24px;height:24px;margin:-16px 0 0;padding:4px;overflow:hidden;opacity:.45;background-color:rgba(0,0,0,.8);cursor:pointer;text-shadow:1px 1px 0 rgba(255,255,255,.3);font-size:0;border-radius:50%;text-align:center;color:#fff;-webkit-transition:all .3s ease;transition:all .3s ease}.am-slider-b4 .am-direction-nav a:before{display:inline-block;font:normal normal normal 1.6rem/1 FontAwesome,sans-serif;font-size:inherit;text-rendering:auto;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;-webkit-transform:translate(0,0);-ms-transform:translate(0,0);transform:translate(0,0);content:"\f053";font-size:20px;line-height:24px}.am-slider-b4 .am-direction-nav a.am-prev{left:-15px}.am-slider-b4 .am-direction-nav a.am-next{right:-15px}.am-slider-b4 .am-direction-nav a.am-next:before{content:"\f054"}.am-slider-b4 .am-direction-nav .am-disabled{opacity:0!important;cursor:default}.am-slider-b4:hover .am-prev{opacity:.7}.am-slider-b4:hover .am-prev:hover{opacity:.9}.am-slider-b4:hover .am-next{opacity:.7}.am-slider-b4:hover .am-next:hover{opacity:.9}.am-slider-b4 .am-control-nav,.am-slider-b4 .am-pauseplay{display:none}.am-slider-c1{-webkit-box-shadow:0 1px 4px rgba(0,0,0,.2);box-shadow:0 1px 4px rgba(0,0,0,.2)}.am-slider-c1 .am-viewport{max-height:2000px;-webkit-transition:all 1s ease;transition:all 1s ease}.loading .am-slider-c1 .am-viewport{max-height:300px}.am-slider-c1 .am-control-nav{position:absolute;bottom:0;display:table;width:100%;height:6px;font-size:0;line-height:0;text-align:center}.am-slider-c1 .am-control-nav li{display:table-cell;width:1%}.am-slider-c1 .am-control-nav li a{width:100%;height:6px;display:block;background-color:rgba(0,0,0,.7);cursor:pointer;text-indent:-9999px}.am-slider-c1 .am-control-nav li a:hover{background:rgba(0,0,0,.8)}.am-slider-c1 .am-control-nav li a.am-active{background-color:#1f262c;cursor:default}.am-slider-c1 .am-slider-desc{background-color:rgba(0,0,0,.6);position:absolute;bottom:6px;padding:8px;width:100%;color:#fff;display:block;word-wrap:normal;text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.am-slider-c1 .am-direction-nav,.am-slider-c1 .am-pauseplay{display:none}.am-slider-c2{-webkit-box-shadow:0 1px 4px rgba(0,0,0,.2);box-shadow:0 1px 4px rgba(0,0,0,.2)}.am-slider-c2 .am-viewport{max-height:2000px;-webkit-transition:all 1s ease;transition:all 1s ease}.loading .am-slider-c2 .am-viewport{max-height:300px}.am-slider-c2 .am-control-nav{position:absolute;bottom:15px;right:0;height:6px;text-align:center;font-size:0;line-height:0}.am-slider-c2 .am-control-nav li{display:inline-block;margin-right:6px}.am-slider-c2 .am-control-nav li a{width:6px;height:6px;display:block;background-color:rgba(255,255,255,.4);cursor:pointer;text-indent:-9999px}.am-slider-c2 .am-control-nav li a:hover{background:rgba(230,230,230,.4)}.am-slider-c2 .am-control-nav li a.am-active{background-color:#1f262c;cursor:default}.am-slider-c2 .am-slider-desc{background-color:rgba(0,0,0,.6);position:absolute;bottom:0;padding:8px 60px 8px 8px;width:100%;color:#fff;display:block;word-wrap:normal;text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.am-slider-c2 .am-direction-nav,.am-slider-c2 .am-pauseplay{display:none}.am-slider-c3{-webkit-box-shadow:0 1px 4px rgba(0,0,0,.2);box-shadow:0 1px 4px rgba(0,0,0,.2)}.am-slider-c3 .am-viewport{max-height:2000px;-webkit-transition:all 1s ease;transition:all 1s ease}.loading .am-slider-c3 .am-viewport{max-height:300px}.am-slider-c3 .am-slider-desc{background-color:rgba(0,0,0,.6);position:absolute;bottom:10px;right:60px;height:30px;left:0;padding-right:5px;color:#fff;display:block;word-wrap:normal;text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.am-slider-c3 .am-slider-counter{margin-right:5px;display:inline-block;height:30px;background-color:#1f262c;width:40px;text-align:center;line-height:30px;color:#eee;font-size:1rem}.am-slider-c3 .am-slider-counter .am-active{font-size:1.8rem;font-weight:700;color:#fff}.am-slider-c3 .am-direction-nav a{-webkit-box-sizing:content-box;box-sizing:content-box;display:block;width:24px;height:24px;padding:4px 0;margin:-16px 0 0;position:absolute;top:50%;z-index:10;overflow:hidden;opacity:.45;cursor:pointer;color:#fff;text-shadow:1px 1px 0 rgba(255,255,255,.3);background-color:rgba(0,0,0,.5);font-size:0;text-align:center;-webkit-transition:all .3s ease;transition:all .3s ease}.am-slider-c3 .am-direction-nav a:before{display:inline-block;font:normal normal normal 1.6rem/1 FontAwesome,sans-serif;font-size:inherit;text-rendering:auto;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;-webkit-transform:translate(0,0);-ms-transform:translate(0,0);transform:translate(0,0);content:"\f053";font-size:16px;line-height:24px}.am-slider-c3 .am-direction-nav a.am-prev{left:0;padding-right:5px}.am-slider-c3 .am-direction-nav a.am-next{right:0;padding-left:5px}.am-slider-c3 .am-direction-nav a.am-next:before{content:"\f054"}.am-slider-c3 .am-direction-nav .am-disabled{opacity:0!important;cursor:default}.am-slider-c3:hover .am-prev{opacity:.7}.am-slider-c3:hover .am-prev:hover{opacity:1}.am-slider-c3:hover .am-next{opacity:.7}.am-slider-c3:hover .am-next:hover{opacity:1}.am-slider-c3 .am-control-nav,.am-slider-c3 .am-pauseplay{display:none}.am-slider-c4{-webkit-box-shadow:0 1px 4px rgba(0,0,0,.2);box-shadow:0 1px 4px rgba(0,0,0,.2)}.am-slider-c4 .am-viewport{max-height:2000px;-webkit-transition:all 1s ease;transition:all 1s ease}.loading .am-slider-c4 .am-viewport{max-height:300px}.am-slider-c4 .am-slider-desc{width:100%;background-color:rgba(0,0,0,.6);position:absolute;bottom:0;right:0;left:0;padding:8px 40px;color:#fff;display:block;word-wrap:normal;text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.am-slider-c4 .am-direction-nav a{-webkit-box-sizing:content-box;box-sizing:content-box;display:block;width:24px;height:24px;padding:4px 0;margin:0;position:absolute;bottom:4px;z-index:10;overflow:hidden;opacity:.45;cursor:pointer;text-shadow:1px 1px 0 rgba(255,255,255,.3);font-size:0;text-align:center;color:rgba(0,0,0,.7);-webkit-transition:all .3s ease;transition:all .3s ease}.am-slider-c4 .am-direction-nav a:before{display:inline-block;font:normal normal normal 1.6rem/1 FontAwesome,sans-serif;font-size:inherit;text-rendering:auto;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;-webkit-transform:translate(0,0);-ms-transform:translate(0,0);transform:translate(0,0);content:"\f053";font-size:24px}.am-slider-c4 .am-direction-nav a.am-prev{left:0;padding-right:5px}.am-slider-c4 .am-direction-nav a.am-next{right:0;padding-left:5px}.am-slider-c4 .am-direction-nav a.am-next:before{content:"\f054"}.am-slider-c4 .am-direction-nav .am-disabled{opacity:0!important;cursor:default}.am-slider-c4:hover .am-prev{opacity:.7}.am-slider-c4:hover .am-prev:hover{opacity:1}.am-slider-c4:hover .am-next{opacity:.7}.am-slider-c4:hover .am-next:hover{opacity:1}.am-slider-c4 .am-control-nav,.am-slider-c4 .am-pauseplay{display:none}.am-slider-d1{-webkit-box-shadow:0 1px 4px rgba(0,0,0,.2);box-shadow:0 1px 4px rgba(0,0,0,.2)}.am-slider-d1 .am-viewport{max-height:2000px;-webkit-transition:all 1s ease;transition:all 1s ease}.loading .am-slider-d1 .am-viewport{max-height:300px}.am-slider-d1 .am-slider-desc{padding:8px 35px;width:100%;color:#fff;background-color:#1f262c}.am-slider-d1 .am-slider-title{font-weight:400;margin-bottom:2px;display:block;word-wrap:normal;text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.am-slider-d1 .am-slider-more{color:#eee;font-size:1.3rem}.am-slider-d1 .am-direction-nav a{-webkit-box-sizing:content-box;box-sizing:content-box;display:block;width:24px;height:24px;margin:0;position:absolute;bottom:18px;z-index:10;overflow:hidden;opacity:.45;cursor:pointer;text-shadow:1px 1px 0 rgba(255,255,255,.3);font-size:0;text-align:center;border:1px solid rgba(255,255,255,.9);color:rgba(255,255,255,.9);border-radius:50%;-webkit-transition:all 3s ease;transition:all 3s ease}.am-slider-d1 .am-direction-nav a:before{display:inline-block;font:normal normal normal 1.6rem/1 FontAwesome,sans-serif;font-size:inherit;text-rendering:auto;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;-webkit-transform:translate(0,0);-ms-transform:translate(0,0);transform:translate(0,0);content:"\f053";font-size:16px;line-height:24px}.am-slider-d1 .am-direction-nav a.am-prev{left:5px}.am-slider-d1 .am-direction-nav a.am-next{right:5px}.am-slider-d1 .am-direction-nav a.am-next:before{content:"\f054"}.am-slider-d1 .am-direction-nav .am-disabled{opacity:0!important;cursor:default}.am-slider-d1:hover .am-prev{opacity:.7}.am-slider-d1:hover .am-prev:hover{opacity:1}.am-slider-d1:hover .am-next{opacity:.7}.am-slider-d1:hover .am-next:hover{opacity:1}.am-slider-d1 .am-control-nav,.am-slider-d1 .am-pauseplay{display:none}.am-slider-d2{margin-bottom:20px;-webkit-box-shadow:0 1px 4px rgba(0,0,0,.2);box-shadow:0 1px 4px rgba(0,0,0,.2)}.am-slider-d2 .am-viewport{max-height:2000px;-webkit-transition:all 1s ease;transition:all 1s ease}.loading .am-slider-d2 .am-viewport{max-height:300px}.am-slider-d2 .am-slider-desc{position:absolute;left:10px;bottom:20px;right:50px;color:#fff}.am-slider-d2 .am-slider-content{background-color:rgba(0,0,0,.7);padding:10px 6px;margin-bottom:10px}.am-slider-d2 .am-slider-content p{margin:0;display:block;word-wrap:normal;text-overflow:ellipsis;white-space:nowrap;overflow:hidden;font-size:1.4rem}.am-slider-d2 .am-slider-title{font-weight:400;margin-bottom:5px;display:block;word-wrap:normal;text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.am-slider-d2 .am-slider-more{color:#eee;font-size:1.3rem;background-color:#1f262c;padding:2px 10px}.am-slider-d2 .am-control-nav{width:100%;position:absolute;bottom:-15px;text-align:center}.am-slider-d2 .am-control-nav li{margin:0 6px;display:inline-block}.am-slider-d2 .am-control-nav li a{width:8px;height:8px;display:block;background-color:rgba(0,0,0,.5);cursor:pointer;text-indent:-9999px;border-radius:50%;font-size:0;line-height:0;-webkit-box-shadow:inset 0 0 3px rgba(0,0,0,.3);box-shadow:inset 0 0 3px rgba(0,0,0,.3)}.am-slider-d2 .am-control-nav li a:hover{background:rgba(0,0,0,.5)}.am-slider-d2 .am-control-nav li a.am-active{background:#1f262c;cursor:default}.am-slider-d2 .am-direction-nav,.am-slider-d2 .am-pauseplay{display:none}.am-slider-d3{margin-bottom:10px;-webkit-box-shadow:0 1px 4px rgba(0,0,0,.2);box-shadow:0 1px 4px rgba(0,0,0,.2)}.am-slider-d3 .am-viewport{max-height:2000px;-webkit-transition:all 1s ease;transition:all 1s ease}.loading .am-slider-d3 .am-viewport{max-height:300px}.am-slider-d3 .am-slider-desc{position:absolute;bottom:0;color:#fff;width:100%;background-color:rgba(0,0,0,.7);padding:8px 5px}.am-slider-d3 .am-slider-desc p{margin:0;font-size:1.3rem;display:block;word-wrap:normal;text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.am-slider-d3 .am-slider-title{font-weight:400;margin-bottom:5px;display:block;word-wrap:normal;text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.am-slider-d3 .am-control-thumbs{position:static;overflow:hidden}.am-slider-d3 .am-control-thumbs li{padding:12px 4px 4px;position:relative}.am-slider-d3 .am-control-thumbs img{width:100%;display:block;opacity:.85;cursor:pointer}.am-slider-d3 .am-control-thumbs img:hover{opacity:1}.am-slider-d3 .am-control-thumbs .am-active{opacity:1;cursor:default}.am-slider-d3 .am-control-thumbs .am-active+i{position:absolute;top:0;left:50%;content:"";display:inline-block;width:0;height:0;vertical-align:middle;border-top:8px solid rgba(0,0,0,.7);border-right:8px solid transparent;border-left:8px solid transparent;border-bottom:0 dotted;-webkit-transform:rotate(360deg);-ms-transform:rotate(360deg);transform:rotate(360deg);margin-left:-4px;-webkit-transition:all .2s;transition:all .2s}.am-slider-d3 .am-direction-nav,.am-slider-d3 .am-pauseplay{display:none}.am-slider-d3 .am-control-thumbs{display:table}.am-slider-d3 .am-control-thumbs li{display:table-cell;width:1%}[data-am-widget=tabs]{margin:10px}[data-am-widget=tabs] .am-tabs-nav{width:100%;padding:0;margin:0;list-style:none;text-align:center;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex}[data-am-widget=tabs] .am-tabs-nav li{-webkit-box-flex:1;-webkit-flex:1;-ms-flex:1;flex:1}[data-am-widget=tabs] .am-tabs-nav a{display:block;word-wrap:normal;text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.am-tabs-default .am-tabs-nav{line-height:40px;background-color:#eee}.am-tabs-default .am-tabs-nav a{color:#222;line-height:42px}.am-tabs-default .am-tabs-nav>.am-active a{background-color:#1f262c;color:#fff}.am-tabs-d2 .am-tabs-nav{background-color:#eee}.am-tabs-d2 .am-tabs-nav li{height:42px}.am-tabs-d2 .am-tabs-nav a{color:#222;line-height:42px}.am-tabs-d2 .am-tabs-nav>.am-active{position:relative;background-color:#fcfcfc;border-bottom:2px solid #1f262c}.am-tabs-d2 .am-tabs-nav>.am-active a{line-height:40px;color:#1f262c}.am-tabs-d2 .am-tabs-nav>.am-active:after{position:absolute;width:0;height:0;bottom:0;left:50%;margin-left:-5px;border:6px rgba(0,0,0,0) solid;content:"";z-index:1;border-bottom-color:#1f262c}.am-titlebar{margin-top:20px;height:45px;font-size:100%}.am-titlebar h2{margin-top:0;margin-bottom:0;font-size:1.6rem}.am-titlebar .am-titlebar-title img{height:24px;width:auto}.am-titlebar-default{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;margin-left:10px;margin-right:10px;background-color:transparent;border-bottom:1px solid #dedede;line-height:44px}.am-titlebar-default a{color:#1f262c}.am-titlebar-default .am-titlebar-title{position:relative;padding-left:12px;color:#1f262c;font-size:1.8rem;text-align:left;font-weight:700}.am-titlebar-default .am-titlebar-title:before{content:"";position:absolute;left:2px;top:8px;bottom:8px;border-left:3px solid #1f262c}.am-titlebar-default .am-titlebar-nav{-webkit-box-flex:1;-webkit-flex:1;-ms-flex:1;flex:1;text-align:right}.am-titlebar-default .am-titlebar-nav a{margin-right:10px}.am-titlebar-default .am-titlebar-nav a:last-child{margin-right:5px}.am-titlebar-multi{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;background-color:#f5f5f5;border-top:2px solid #5bb75b;border-bottom:1px solid #e8e8e8}.am-titlebar-multi a{color:#1f262c}.am-titlebar-multi .am-titlebar-title{padding-left:10px;color:#1f262c;font-size:1.8rem;text-align:left;font-weight:700;line-height:42px}.am-titlebar-multi .am-titlebar-nav{-webkit-box-flex:1;-webkit-flex:1;-ms-flex:1;flex:1;text-align:right;line-height:42px}.am-titlebar-multi .am-titlebar-nav a{margin-right:10px}.am-titlebar-cols{position:relative;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;padding-left:10px;background-color:#f5f5f5;color:#555;font-size:18px;border-top:2px solid #e1e1e1;line-height:41px}.am-titlebar-cols a{color:#555}.am-titlebar-cols .am-titlebar-title{color:#1f262c;margin-right:15px;border-bottom:2px solid #1f262c;font-weight:700}.am-titlebar-cols .am-titlebar-title a{color:#1f262c}.am-titlebar-cols .am-titlebar-nav{-webkit-box-flex:1;-webkit-flex:1;-ms-flex:1;flex:1}.am-titlebar-cols .am-titlebar-nav a{display:inline-block;margin-right:15px;line-height:41px;border-bottom:2px solid transparent}.am-titlebar-cols .am-titlebar-nav a:hover{color:#3c3c3c;border-bottom-color:#1f262c}.am-titlebar-cols .am-titlebar-nav a:last-child{margin-right:10px}.am-wechatpay .am-wechatpay-btn{margin-top:1rem;margin-bottom:1rem} + +/*2016年10月14日 追加表单验证样式*/ +.lszh-validate-tip-star{ + margin:0 8px; + color:red; + font-size:24px; + line-height: 40px; +} +.lszh-validate-tip{ + display:inline-block; + position:relative; + width: 300px; + height: 28px; +} +.lszh-validate-tip-icon{ + left:0; + width: 100%; + height: 100%; + color:#5bb75b; +} +.lszh-validate-tip-icon:before{ + vertical-align: 0; +} +.lszh-validate-tip-txt{ + display:none; + position:absolute; + top:0; + left:40px; + margin-left:0; + color:#333; + background-color:#fff; + border-color:#5bb75b; +} +.lszh-validate-tip-txt:after{ + border-right-color:#fff; +} +.lszh-validate-tip-txt:before{ + border-right-color:#5bb75b; +} +.lszh-validate-tip-txt .am-comment-bd{ + padding:5px; +} +.lszh-validate-tip-icon:hover .lszh-validate-tip-txt{ + display:block; +} + +/* 2016年10月31日 修改后台table表单的换行行为 */ +.am-table-compact>tbody>tr>td, .am-table-compact>tbody>tr>th, .am-table-compact>tfoot>tr>td, .am-table-compact>tfoot>tr>th, .am-table-compact>thead>tr>td, .am-table-compact>thead>tr>th{ + word-break:break-all; +} +.lszh-inline-block a{ + display:inline-block; +} +a.am-btn-default,a.am-btn-default:link,a.am-btn-default:visited{ + color:#fff; + background-color:#5bb75b; + border-color:#5bb75b; +} +.am-pagination>li>a:hover{ + background-color:#5bb75b; + color:#fff; +} \ No newline at end of file diff --git a/public/css/app.css b/public/assets/css/app.css old mode 100644 new mode 100755 similarity index 100% rename from public/css/app.css rename to public/assets/css/app.css diff --git a/public/assets/css/comment.css b/public/assets/css/comment.css new file mode 100644 index 0000000..78f76e4 --- /dev/null +++ b/public/assets/css/comment.css @@ -0,0 +1,149 @@ +@charset "utf-8"; +/* CSS Document */ + +/*******************公共样式*******************/ +body {margin:0px; padding:0px; font-size:12px; font-family:Arial, Helvetica, sans-serif;} +p, ul, li, frame { margin:0px; padding:0px;} +ul, li { display:block;} +ul { list-style:none;} +h3 { padding:0px; margin:0px;} +img { border:none;} + + +.select1{ width:190px; height:24px;} +.select2{ width:80px;margin-top:8px; margin-left:10px;} +input.input1{width:150px; padding:2px;} +.select3{width:187px; } + +/******************头部样式********************/ + +#header {height:51px; } +.logo{margin-left:30px; padding-top:8px; } +.logo img{ float:left;} +.topR{ float:right; margin-right:5px; text-align:right;} +.title{float:left; font-family: "微软雅黑"; font-size:24px; margin-left:20px; } + +/*导航样式*/ +.nav{height:34px;} +.navList{ margin-left:20px;} +.navList li{ width:122px; float:left; margin-left:10px; text-align:center; line-height:33px;height:33px;} +.navList li a{ display:block; width:122px; line-height:33px;height:33px; font-size:14px;} +.navList li a:link ,.navList li a:visited{ text-decoration:none; font-weight:bold;} + + + +/******************尾部样式********************/ + +#footer {height:45px;text-align:center; line-height:20px;padding-top:7px} + + +/******************当前位置样式********************/ + +.adr{ line-height:30px; height:30px; padding-left:10px;} + +/******************查询样式********************/ + +.add{ line-height:30px; padding-left:10px; padding-top:3px;} +.sele{ float:right; } +.sele select { + max-width:120px; } + + +/******************表格样式********************/ + +.tex1{ width:260px; height:60px;} +.tabDiv{margin-left:2px;} +.tab{ width:100%; text-align:center;} +.tab td{height:22px;} +.tabTi{ height:40px; font-weight:bold;} +.no{ border-left:none;} +.ctrl a{ margin-left:20px;} + + +/******************操作按钮样式********************/ + +.box{ padding:3px; margin-left:2px; height:24px;} +.box input{ float:left; margin-left:15px;} + + + +/******************表单页样式********************/ + +.reg{ margin-left:10px; margin-top:20px;} +.reg li{margin-top:20px;overflow:hidden;} +.reg li div{ line-height:20px;} +.reg .regName{ display:block; width:150px; text-align:right; float:left;} +.reg .regName1{ display:block; width:180px; text-align:right; float:left;} +.boxBut input{ margin-left:150px; float:left;} +.input{margin-left:70px; float:left;} +.boxBut a{ margin-top:10px; margin-left:100px; float:left;} +.inputDuan{ width:40px;} + +/******************登陆页样式********************/ + +#main {text-align:center;overflow:auto;} +.login{ margin:80px auto 0 auto; width:468px; height:279px; text-align:left;} +.logTitle{ margin-left:45px; padding-top:17px;font-size:16px; font-family:"微软雅黑";font-weight:bold;} +.log{ margin:20px 50px 0 50px;} +.log li{ height:20px; padding:15px 0; *padding:10px 0;} +.logTi{ font-size:14px; font-family:"微软雅黑"; isplay:block; float:left;width:120px; text-align:right;} +.log li input{ padding:2px; width:150px; float:left;}/*height:24px;*/ +.logBut{ width:450px; margin-left:9px; padding:15px 0px; text-align:right;} +.inputBut{width:77px; height:24px; cursor:hand; cursor:pointer; border:none; margin-right:30px; font-size:14px; font-family:"微软雅黑";} + + +/******************左侧导航样式********************/ + +.tit {height: 27px;font:bold 12px/25px "lucida Grande", verdana, lucida, Arial, helvetica, "宋体", sans-serif;text-indent: 25px;position: relative; } +.tit a ,.tit a:link , .tit a hover{display:block;text-decoration:none; background-repeat: no-repeat;background-position: 10px 8px;cursor: pointer;} +.titpic {position: absolute;height: 32px;width: 32px;left: 0px;bottom: 0px;} +.list{font-size: 12px;text-align:left;padding-bottom:10px;voice-family:"\"}\"";voice-family:inherit; overflow:hidden;} +.list ul{list-style-type:none;margin:0;padding:0;} +.list li{line-height:30px;height:30px;margin:0;padding:0;padding-left:25px;} +.list li a{ text-decoration:none;} +.all{ height:100%;} + +/* Styles for validation helpers +-----------------------------------------------------------*/ +.field-validation-error +{ + color: #ff0000; +} + +.field-validation-valid +{ + display: none; +} + +.input-validation-error +{ + border: 1px solid #ff0000; + background-color: #ffeeee; +} + +.validation-summary-errors +{ + font-weight: bold; + color: #ff0000; +} + +.validation-summary-valid +{ + display: none; +} + + +.tabLisinput , .tabLisTit{ display:block; line-height:20px; height:20px; *line-height:24px; *height:24px; float:left;} + .tabLisTit{ margin-right:15px;} + + /************选择产品探弹出层样式**************/ + .springDiv{ padding-bottom:10px; } +.sprTitle{ padding:6px 10px 6px 20px; height:22px;font-weight:bold;} +.sprAdr{text-align:right; padding-right:10px;} +.sprFrom{ width:48%; *width:47%; margin-left:2%; margin-top:10px; float:left;} +.int{display:block; width:20px; float:left; } +.sprFrom li{ margin:8px 0; line-height:20px; height:20px; } +.sprTitle span.closeBut{ float:right;} +input.close{ background:url(../images/close.gif) no-repeat; width:27px; height:27px; border:none; cursor:hand; cursor:pointer;} + +.otherInput { width:250px } \ No newline at end of file diff --git a/public/assets/css/style1.css b/public/assets/css/style1.css new file mode 100644 index 0000000..58a807d --- /dev/null +++ b/public/assets/css/style1.css @@ -0,0 +1,53 @@ +@charset "utf-8"; +/* CSS Document */ + +/*******************公共样式*******************/ +body {color:#333;} +html, body {background:#FFF;} + +a:link{ color:#333;} +a:visited{ color:#333;} +a:hover{ color:#09C;} +a:active{ color:#09C;} + +a.bold:link{ color:#333; font-weight:bold; text-decoration:none;} +a.bold:visited{ color:#333;} +a.bold:hover{ color:#09C;} +a.bold:active{ color:#09C;} + + +/******************头部样式********************/ + +#header {background:url(../images/headerBg.jpg); border-bottom:1px solid #A4C5D2;} +.title{color:#666;} + +/*导航样式*/ +.nav{background:url(../images/navBg.jpg) repeat-x;} +.navList li a:hover ,.navList li a:active{ background:url(../images/navBut.jpg) repeat-x; } +.navList .menuOn{ background:url(../images/navButOn.jpg) repeat-x; color:#FFF;} +.navList .menuOn a{color:#FFF;} + + + +/******************尾部样式********************/ + +#footer {background:url(../images/footerBg.jpg);} + + +/******************当前位置样式********************/ + +.adr{ background:#F4FCFF;border-bottom:1px solid #A4C5D2;} + +/******************查询样式********************/ + + + + + +/******************操作按钮样式********************/ +.box{ background:url(../images/bg.jpg) repeat-x;border:1px #CDDFE7 solid;} + + +/******************表单页样式********************/ + + diff --git a/public/assets/fonts/FontAwesome.otf b/public/assets/fonts/FontAwesome.otf new file mode 100755 index 0000000..d4de13e Binary files /dev/null and b/public/assets/fonts/FontAwesome.otf differ diff --git a/public/assets/fonts/fontawesome-webfont.eot b/public/assets/fonts/fontawesome-webfont.eot new file mode 100755 index 0000000..c7b00d2 Binary files /dev/null and b/public/assets/fonts/fontawesome-webfont.eot differ diff --git a/public/assets/fonts/fontawesome-webfont.ttf b/public/assets/fonts/fontawesome-webfont.ttf new file mode 100755 index 0000000..f221e50 Binary files /dev/null and b/public/assets/fonts/fontawesome-webfont.ttf differ diff --git a/public/assets/fonts/fontawesome-webfont.woff b/public/assets/fonts/fontawesome-webfont.woff new file mode 100755 index 0000000..6e7483c Binary files /dev/null and b/public/assets/fonts/fontawesome-webfont.woff differ diff --git a/public/assets/fonts/fontawesome-webfont.woff2 b/public/assets/fonts/fontawesome-webfont.woff2 new file mode 100755 index 0000000..7eb74fd Binary files /dev/null and b/public/assets/fonts/fontawesome-webfont.woff2 differ diff --git a/public/img/app-icon72x72@2x.png b/public/assets/i/app-icon72x72@2x.png old mode 100644 new mode 100755 similarity index 100% rename from public/img/app-icon72x72@2x.png rename to public/assets/i/app-icon72x72@2x.png diff --git a/public/assets/i/favicon.ico b/public/assets/i/favicon.ico new file mode 100755 index 0000000..deaaca3 Binary files /dev/null and b/public/assets/i/favicon.ico differ diff --git a/public/img/favicon.png b/public/assets/i/favicon.png old mode 100644 new mode 100755 similarity index 100% rename from public/img/favicon.png rename to public/assets/i/favicon.png diff --git a/public/assets/img/app-icon72x72@2x.png b/public/assets/img/app-icon72x72@2x.png new file mode 100755 index 0000000..5b8968c Binary files /dev/null and b/public/assets/img/app-icon72x72@2x.png differ diff --git a/public/assets/img/favicon.ico b/public/assets/img/favicon.ico new file mode 100755 index 0000000..deaaca3 Binary files /dev/null and b/public/assets/img/favicon.ico differ diff --git a/public/assets/img/favicon.png b/public/assets/img/favicon.png new file mode 100755 index 0000000..0958158 Binary files /dev/null and b/public/assets/img/favicon.png differ diff --git a/public/assets/img/play.png b/public/assets/img/play.png new file mode 100644 index 0000000..e2edda4 Binary files /dev/null and b/public/assets/img/play.png differ diff --git a/public/assets/img/stop.png b/public/assets/img/stop.png new file mode 100644 index 0000000..eed4365 Binary files /dev/null and b/public/assets/img/stop.png differ diff --git a/public/assets/js/ZeroClipboard.swf b/public/assets/js/ZeroClipboard.swf new file mode 100644 index 0000000..13bf8e3 Binary files /dev/null and b/public/assets/js/ZeroClipboard.swf differ diff --git a/public/assets/js/addvalidate.js b/public/assets/js/addvalidate.js new file mode 100644 index 0000000..c30ad0c --- /dev/null +++ b/public/assets/js/addvalidate.js @@ -0,0 +1,43 @@ +(function($) { + if ($.AMUI && $.AMUI.validator) { + // 增加多个正则 + $.AMUI.validator.patterns = $.extend($.AMUI.validator.patterns, { + httpUrl: /^(http|https):\/\/(((([a-zA-Z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(%[\da-f]{2})|[!\$&'\(\)\*\+,;=]|:)*@)?(((\d|[1-9]\d|1\d\d|2[0-4]\d|25[0-5])\.(\d|[1-9]\d|1\d\d|2[0-4]\d|25[0-5])\.(\d|[1-9]\d|1\d\d|2[0-4]\d|25[0-5])\.(\d|[1-9]\d|1\d\d|2[0-4]\d|25[0-5]))|((([a-zA-Z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(([a-zA-Z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])([a-zA-Z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])*([a-zA-Z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])))\.)+(([a-zA-Z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(([a-zA-Z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])([a-zA-Z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])*([a-zA-Z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])))\.?)(:\d*)?)(\/((([a-zA-Z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(%[\da-f]{2})|[!\$&'\(\)\*\+,;=]|:|@)+(\/(([a-zA-Z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(%[\da-f]{2})|[!\$&'\(\)\*\+,;=]|:|@)*)*)?)?(\?((([a-zA-Z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(%[\da-f]{2})|[!\$&'\(\)\*\+,;=]|:|@)|[\uE000-\uF8FF]|\/|\?)*)?(\#((([a-zA-Z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(%[\da-f]{2})|[!\$&'\(\)\*\+,;=]|:|@)|\/|\?)*)?$/, + ip : /^([0-9]|[1-9]\d|1\d\d|2[0-4]\d|25[0-5])\.([0-9]|[1-9]\d|1\d\d|2[0-4]\d|25[0-5])\.([0-9]|[1-9]\d|1\d\d|2[0-4]\d|25[0-5])\.([0-9]|[1-9]\d|1\d\d|2[0-4]\d|25[0-5])$/, + factorSpeed: /^([1-9](\.[0-9]+)?|(10(\.[0]+)?))$/, + macUrl : /^[0-9A-F]{2}[0-9A-F]{2}[0-9A-F]{2}[0-9A-F]{2}[0-9A-F]{2}[0-9A-F]{2}$/, + phone : /^1\d{10}$/, + stringUrl : /^([a-zA-Z]+|[\/\&\?]+)([a-zA-Z0-9]|_|=|:|\&|\/|\.|\?|@|~|\*|\+|-)*$/, + adminName :/^[a-zA-Z0-9]+$/, + english : /^[a-zA-Z]+$/, + chinese : /^[\u4e00-\u9fa5]+$/, + integer : /^\d+$/, + number : /^((([0-9]{1,3})([,][0-9]{3})*)|([0-9]+))?([\.]([0-9]+))?$/, + zhengnumber : /^[1-9]\d*$/ + }); + } +})(window.jQuery); + +$(function() { + $('.lszh-validate').validator({ + onValid: function(validity) { + $(validity.field).closest('.am-form-group').find('.am-alert').hide(); + }, + onInValid: function(validity) { + var $field = $(validity.field); + var $group = $field.closest('.am-form-group'); + var $alert = $group.find('.am-alert'); + // 使用自定义的提示信息 或 插件内置的提示信息 + var msg = $field.data('validationMessage') || this.getValidationMessage(validity); + + if (!$alert.length) { + $alert = $('
').hide(). + appendTo($group); + } + $alert.html(msg).show(); + }, + validate: function(validity) { + // 在这里编写你的验证逻辑 + } + }); +}); \ No newline at end of file diff --git a/public/assets/js/amazeui.datetimepicker-se.min.js b/public/assets/js/amazeui.datetimepicker-se.min.js new file mode 100755 index 0000000..21d6959 --- /dev/null +++ b/public/assets/js/amazeui.datetimepicker-se.min.js @@ -0,0 +1,2 @@ +!function e(t,n,a){function r(o,d){if(!n[o]){if(!t[o]){var s="function"==typeof require&&require;if(!d&&s)return s(o,!0);if(i)return i(o,!0);var l=new Error("Cannot find module '"+o+"'");throw l.code="MODULE_NOT_FOUND",l}var p=n[o]={exports:{}};t[o][0].call(p.exports,function(e){var n=t[o][1][e];return r(n?n:e)},p,p.exports,e,t,n,a)}return n[o].exports}for(var i="function"==typeof require&&require,o=0;o1)throw new TypeError("isEnabled expects a single character string parameter");switch(e){case"y":return-1!==s.indexOf("Y");case"M":return-1!==s.indexOf("M");case"d":return-1!==s.toLowerCase().indexOf("d");case"h":case"H":return-1!==s.toLowerCase().indexOf("h");case"m":return-1!==s.indexOf("m");case"s":return-1!==s.indexOf("s");default:return!1}},T=function(){return D("h")||D("m")||D("s")},M=function(){return D("y")||D("M")||D("d")},O=function(){var t=e("").append(e("").append(e("").addClass("prev").attr("data-action","previous").append(e("").addClass(a.icons.previous))).append(e("").addClass("picker-switch").attr("data-action","pickerSwitch").attr("colspan",a.calendarWeeks?"6":"5")).append(e("").addClass("next").attr("data-action","next").append(e("").addClass(a.icons.next)))),n=e("").append(e("").append(e("").attr("colspan",a.calendarWeeks?"8":"7")));return[e("
").addClass("datepicker-days").append(e("").addClass("table-condensed").append(t).append(e(""))),e("
").addClass("datepicker-months").append(e("
").addClass("table-condensed").append(t.clone()).append(n.clone())),e("
").addClass("datepicker-years").append(e("
").addClass("table-condensed").append(t.clone()).append(n.clone())),e("
").addClass("datepicker-decades").append(e("
").addClass("table-condensed").append(t.clone()).append(n.clone()))]},S=function(){var t=e(""),n=e(""),r=e("");return D("h")&&(t.append(e("
").append(e("").attr({href:"#",tabindex:"-1",title:a.tooltips.incrementHour}).addClass("btn").attr("data-action","incrementHours").append(e("").addClass(a.icons.up)))),n.append(e("").append(e("").addClass("timepicker-hour").attr({"data-time-component":"hours",title:a.tooltips.pickHour}).attr("data-action","showHours"))),r.append(e("").append(e("").attr({href:"#",tabindex:"-1",title:a.tooltips.decrementHour}).addClass("btn").attr("data-action","decrementHours").append(e("").addClass(a.icons.down))))),D("m")&&(D("h")&&(t.append(e("").addClass("separator")),n.append(e("").addClass("separator").html(":")),r.append(e("").addClass("separator"))),t.append(e("").append(e("").attr({href:"#",tabindex:"-1",title:a.tooltips.incrementMinute}).addClass("btn").attr("data-action","incrementMinutes").append(e("").addClass(a.icons.up)))),n.append(e("").append(e("").addClass("timepicker-minute").attr({"data-time-component":"minutes",title:a.tooltips.pickMinute}).attr("data-action","showMinutes"))),r.append(e("").append(e("").attr({href:"#",tabindex:"-1",title:a.tooltips.decrementMinute}).addClass("btn").attr("data-action","decrementMinutes").append(e("").addClass(a.icons.down))))),D("s")&&(D("m")&&(t.append(e("").addClass("separator")),n.append(e("").addClass("separator").html(":")),r.append(e("").addClass("separator"))),t.append(e("").append(e("").attr({href:"#",tabindex:"-1",title:a.tooltips.incrementSecond}).addClass("btn").attr("data-action","incrementSeconds").append(e("").addClass(a.icons.up)))),n.append(e("").append(e("").addClass("timepicker-second").attr({"data-time-component":"seconds",title:a.tooltips.pickSecond}).attr("data-action","showSeconds"))),r.append(e("").append(e("").attr({href:"#",tabindex:"-1",title:a.tooltips.decrementSecond}).addClass("btn").attr("data-action","decrementSeconds").append(e("").addClass(a.icons.down))))),d||(t.append(e("").addClass("separator")),n.append(e("").append(e("").addClass("separator"))),e("
").addClass("timepicker-picker").append(e("").addClass("table-condensed").append([t,n,r]))},H=function(){var t=e("
").addClass("timepicker-hours").append(e("
").addClass("table-condensed")),n=e("
").addClass("timepicker-minutes").append(e("
").addClass("table-condensed")),a=e("
").addClass("timepicker-seconds").append(e("
").addClass("table-condensed")),r=[S()];return D("h")&&r.push(t),D("m")&&r.push(n),D("s")&&r.push(a),r},P=function(){var t=[];return a.showTodayButton&&t.push(e("
").append(e("").attr({"data-action":"today",title:a.tooltips.today}).append(e("").addClass(a.icons.today)))),!a.sideBySide&&M()&&T()&&t.push(e("").append(e("").attr({"data-action":"togglePicker",title:a.tooltips.selectTime}).append(e("").addClass(a.icons.time)))),a.showClear&&t.push(e("").append(e("").attr({"data-action":"clear",title:a.tooltips.clear}).append(e("").addClass(a.icons.clear)))),a.showClose&&t.push(e("").append(e("").attr({"data-action":"close",title:a.tooltips.close}).append(e("").addClass(a.icons.close)))),e("").addClass("table-condensed").append(e("").append(e("").append(t)))},E=function(){var t=e("
").addClass("bootstrap-datetimepicker-widget dropdown-menu"),n=e("
").addClass("datepicker").append(O()),r=e("
").addClass("timepicker").append(H()),i=e("
    ").addClass("list-unstyled"),o=e("
  • ").addClass("picker-switch"+(a.collapse?" accordion-toggle":"")).append(P());return a.inline&&t.removeClass("dropdown-menu"),d&&t.addClass("usetwentyfour"),D("s")&&!d&&t.addClass("wider"),a.sideBySide&&M()&&T()?(t.addClass("timepicker-sbs"),"top"===a.toolbarPlacement&&t.append(o),t.append(e('
    ').append(n.addClass("am-fl")).append(r.addClass("am-fl"))),"bottom"===a.toolbarPlacement&&t.append(o),t):("top"===a.toolbarPlacement&&i.append(o),M()&&i.append(e("
  • ").addClass(a.collapse&&T()?"collapse in":"").append(n)),"default"===a.toolbarPlacement&&i.append(o),T()&&i.append(e("
  • ").addClass(a.collapse&&M()?"collapse":"").append(r)),"bottom"===a.toolbarPlacement&&i.append(o),t.append(i))},I=function(){var t,r={};return t=n.is("input")||a.inline?n.data():n.find("input").data(),t.dateOptions&&t.dateOptions instanceof Object&&(r=e.extend(!0,r,t.dateOptions)),e.each(a,function(e){var n="date"+e.charAt(0).toUpperCase()+e.slice(1);void 0!==t[n]&&(r[e]=t[n])}),r},Y=function(){var t,r=f||n,i=(r.position(),r.offset()),o=a.widgetPositioning.vertical,d=a.widgetPositioning.horizontal,s=(r.outerHeight(),r.outerWidth()),l=242;if(a.inline)return void(t=n.append(m));a.widgetParent?t=a.widgetParent.append(m):n.is("input")?t=n.after(m).parent():(t=n,n.children().first().after(m)),"auto"===o&&(o=i.top+1.5*m.height()>=e(window).height()+e(window).scrollTop()&&m.height()+n.outerHeight()e(window).width()?"right":"left"),m.addClass("bottom "+d);var p={position:"absolute",top:i.top+n.outerHeight()};m.css(e.extend({},p,{left:"left"===d?i.left:i.left+s-l}))},q=function(e){"dp.change"===e.type&&(e.date&&e.date.isSame(e.oldDate)||!e.date&&!e.oldDate)||n.trigger(e)},B=function(e){"y"===e&&(e="YYYY"),q({type:"dp.update",change:e,viewDate:i.clone()})},z=function(e){m&&(e&&(p=Math.max(h,Math.min(3,p+e))),m.find(".datepicker > div").hide().filter(".datepicker-"+y[p].clsName).show())},j=function(){var t=e("
"),n=i.clone().startOf("w").startOf("d");for(a.calendarWeeks===!0&&t.append(e(""),a.calendarWeeks&&n.append('"),p.push(n)),o="",t.isBefore(i,"M")&&(o+=" old"),t.isAfter(i,"M")&&(o+=" new"),t.isSame(r,"d")&&!u&&(o+=" active"),N(t,"d")||(o+=" disabled"),t.isSame(C(),"d")&&(o+=" today"),0!==t.day()&&6!==t.day()||(o+=" weekend"),n.append('"),t.add(1,"d");s.find("tbody").empty().append(p),V(),U(),R()}},_=function(){var t=m.find(".timepicker-hours table"),n=i.clone().startOf("d"),a=[],r=e("");for(i.hour()>11&&!d&&n.hour(12);n.isSame(i,"d")&&(d||i.hour()<12&&n.hour()<12||i.hour()>11);)n.hour()%4===0&&(r=e(""),a.push(r)),r.append('"),n.add(1,"h");t.empty().append(a)},G=function(){for(var t=m.find(".timepicker-minutes table"),n=i.clone().startOf("h"),r=[],o=e(""),d=1===a.stepping?5:a.stepping;i.isSame(n,"h");)n.minute()%(4*d)===0&&(o=e(""),r.push(o)),o.append('"),n.add(d,"m");t.empty().append(r)},J=function(){for(var t=m.find(".timepicker-seconds table"),n=i.clone().startOf("m"),a=[],r=e("");i.isSame(n,"m");)n.second()%20===0&&(r=e(""),a.push(r)),r.append('"),n.add(5,"s");t.empty().append(a)},K=function(){var e,t,n=m.find(".timepicker span[data-time-component]");d||(e=m.find(".timepicker [data-action=togglePeriod]"),t=r.clone().add(r.hours()>=12?-12:12,"h"),e.text(r.format("A")),N(t,"h")?e.removeClass("disabled"):e.addClass("disabled")),n.filter("[data-time-component=hours]").text(r.format(d?"HH":"hh")),n.filter("[data-time-component=minutes]").text(r.format("mm")),n.filter("[data-time-component=seconds]").text(r.format("ss")),_(),G(),J()},X=function(){m&&(Q(),K())},$=function(e){var t=u?null:r;return e?(e=e.clone().locale(a.locale),1!==a.stepping&&e.minutes(Math.round(e.minutes()/a.stepping)*a.stepping%60).seconds(0),void(N(e)?(r=e,i=r.clone(),o.val(r.format(s)),n.data("date",r.format(s)),u=!1,X(),q({type:"dp.change",date:r.clone(),oldDate:t})):(a.keepInvalid||o.val(u?"":r.format(s)),q({type:"dp.error",date:e})))):(u=!0,o.val(""),n.data("date",""),q({type:"dp.change",date:!1,oldDate:t}),void X())},ee=function(){var t=!1;return m?(m.find(".collapse").each(function(){var n=e(this).data("collapse");return n&&n.transitioning?(t=!0,!1):!0}),t?c:(f&&f.hasClass("btn")&&f.toggleClass("active"),m.hide(),e(window).off("resize",Y),m.off("click","[data-action]"),m.off("mousedown",!1),m.remove(),m=!1,q({type:"dp.hide",date:r.clone()}),o.blur(),c)):c},te=function(){$(null)},ne={next:function(){var e=y[p].navFnc;i.add(y[p].navStep,e),Q(),B(e)},previous:function(){var e=y[p].navFnc;i.subtract(y[p].navStep,e),Q(),B(e)},pickerSwitch:function(){z(1)},selectMonth:function(t){var n=e(t.target).closest("tbody").find("span").index(e(t.target));i.month(n),p===h?($(r.clone().year(i.year()).month(i.month())),a.inline||ee()):(z(-1),Q()),B("M")},selectYear:function(t){var n=parseInt(e(t.target).text(),10)||0;i.year(n),p===h?($(r.clone().year(i.year())),a.inline||ee()):(z(-1),Q()),B("YYYY")},selectDecade:function(t){var n=parseInt(e(t.target).data("selection"),10)||0;i.year(n),p===h?($(r.clone().year(i.year())),a.inline||ee()):(z(-1),Q()),B("YYYY")},selectDay:function(t){var n=i.clone();e(t.target).is(".old")&&n.subtract(1,"M"),e(t.target).is(".new")&&n.add(1,"M"),$(n.date(parseInt(e(t.target).text(),10))),T()||a.keepOpen||a.inline||ee()},incrementHours:function(){var e=r.clone().add(1,"h");N(e,"h")&&$(e)},incrementMinutes:function(){var e=r.clone().add(a.stepping,"m");N(e,"m")&&$(e)},incrementSeconds:function(){var e=r.clone().add(1,"s");N(e,"s")&&$(e)},decrementHours:function(){var e=r.clone().subtract(1,"h");N(e,"h")&&$(e)},decrementMinutes:function(){var e=r.clone().subtract(a.stepping,"m");N(e,"m")&&$(e)},decrementSeconds:function(){var e=r.clone().subtract(1,"s");N(e,"s")&&$(e)},togglePeriod:function(){$(r.clone().add(r.hours()>=12?-12:12,"h"))},togglePicker:function(t){var n,r=e(t.target),i=r.closest("ul"),o=i.find(".in"),d=i.find(".collapse:not(.in)");if(o&&o.length){if(n=o.data("collapse"),n&&n.transitioning)return;o.removeClass("in"),d.addClass("in"),r.is("span")?r.toggleClass(a.icons.time+" "+a.icons.date):r.find("span").toggleClass(a.icons.time+" "+a.icons.date)}},showPicker:function(){m.find(".timepicker > div:not(.timepicker-picker)").hide(),m.find(".timepicker .timepicker-picker").show()},showHours:function(){m.find(".timepicker .timepicker-picker").hide(),m.find(".timepicker .timepicker-hours").show()},showMinutes:function(){m.find(".timepicker .timepicker-picker").hide(),m.find(".timepicker .timepicker-minutes").show()},showSeconds:function(){m.find(".timepicker .timepicker-picker").hide(),m.find(".timepicker .timepicker-seconds").show()},selectHour:function(t){var n=parseInt(e(t.target).text(),10);d||(r.hours()>=12?12!==n&&(n+=12):12===n&&(n=0)),$(r.clone().hours(n)),ne.showPicker.call(c)},selectMinute:function(t){$(r.clone().minutes(parseInt(e(t.target).text(),10))),ne.showPicker.call(c)},selectSecond:function(t){$(r.clone().seconds(parseInt(e(t.target).text(),10))),ne.showPicker.call(c)},clear:te,today:function(){var e=C();N(e,"d")&&$(e)},close:ee},ae=function(t){return e(t.currentTarget).is(".disabled")?!1:(ne[e(t.currentTarget).data("action")].apply(c,arguments),!1)},re=function(){var t,n={year:function(e){return e.month(0).date(1).hours(0).seconds(0).minutes(0)},month:function(e){return e.date(1).hours(0).seconds(0).minutes(0)},day:function(e){return e.hours(0).seconds(0).minutes(0)},hour:function(e){return e.seconds(0).minutes(0)},minute:function(e){return e.seconds(0)}};return o.prop("disabled")||!a.ignoreReadonly&&o.prop("readonly")||m?c:(void 0!==o.val()&&0!==o.val().trim().length?$(oe(o.val().trim())):a.useCurrent&&u&&(o.is("input")&&0===o.val().trim().length||a.inline)&&(t=C(),"string"==typeof a.useCurrent&&(t=n[a.useCurrent](t)),$(t)),m=E(),j(),Z(),m.find(".timepicker-hours").hide(),m.find(".timepicker-minutes").hide(),m.find(".timepicker-seconds").hide(),X(),z(),e(window).on("resize",Y),m.on("click","[data-action]",ae),m.on("mousedown",!1),f&&f.hasClass("btn")&&f.toggleClass("active"),m.show(),Y(),a.focusOnShow&&!o.is(":focus")&&o.focus(),q({type:"dp.show"}),c)},ie=function(){return m?ee():re()},oe=function(e){return e=void 0===a.parseInputDate?t.isMoment(e)||e instanceof Date?t(e):C(e):a.parseInputDate(e),e.locale(a.locale),e},de=function(e){var t,n,r,i,o=null,d=[],s={},l=e.which,p="p";x[l]=p;for(t in x)x.hasOwnProperty(t)&&x[t]===p&&(d.push(t),parseInt(t,10)!==l&&(s[t]=!0));for(t in a.keyBinds)if(a.keyBinds.hasOwnProperty(t)&&"function"==typeof a.keyBinds[t]&&(r=t.split(" "),r.length===d.length&&k[l]===r[r.length-1])){for(i=!0,n=r.length-2;n>=0;n--)if(!(k[r[n]]in s)){i=!1;break}if(i){o=a.keyBinds[t];break}}o&&(o.call(c,m),e.stopPropagation(),e.preventDefault())},se=function(e){x[e.which]="r",e.stopPropagation(),e.preventDefault()},le=function(t){var n=e(t.target).val().trim(),a=n?oe(n):null;return $(a),t.stopImmediatePropagation(),!1},pe=function(){o.on({change:le,blur:a.debug?"":ee,keydown:de,keyup:se,focus:a.allowInputToggle?re:""}),n.is("input")?o.on({focus:re}):f&&(f.on("click",ie),f.on("mousedown",!1))},ce=function(){o.off({change:le,blur:blur,keydown:de,keyup:se,focus:a.allowInputToggle?ee:""}),n.is("input")?o.off({focus:re}):f&&(f.off("click",ie),f.off("mousedown",!1))},ue=function(t){var n={};return e.each(t,function(){var e=oe(this);e.isValid()&&(n[e.format("YYYY-MM-DD")]=!0)}),Object.keys(n).length?n:!1},fe=function(t){var n={};return e.each(t,function(){n[this]=!0}),Object.keys(n).length?n:!1},me=function(){var e=a.format||"L LT";s=e.replace(/(\[[^\[]*\])|(\\)?(LTS|LT|LL?L?L?|l{1,4})/g,function(e){var t=r.localeData().longDateFormat(e)||e;return t.replace(/(\[[^\[]*\])|(\\)?(LTS|LT|LL?L?L?|l{1,4})/g,function(e){return r.localeData().longDateFormat(e)||e})}),l=a.extraFormats?a.extraFormats.slice():[],l.indexOf(e)<0&&l.indexOf(s)<0&&l.push(s),d=s.toLowerCase().indexOf("a")<1&&s.replace(/\[.*?\]/g,"").indexOf("h")<1,D("y")&&(h=2),D("M")&&(h=1),D("d")&&(h=0),p=Math.max(h,p),u||$(r)};if(c.destroy=function(){ee(),ce(),n.removeData("DateTimePicker"),n.removeData("date")},c.toggle=ie,c.show=re,c.hide=ee,c.disable=function(){return ee(),f&&f.hasClass("btn")&&f.addClass("disabled"),o.prop("disabled",!0),c},c.enable=function(){return f&&f.hasClass("btn")&&f.removeClass("disabled"),o.prop("disabled",!1),c},c.ignoreReadonly=function(e){if(0===arguments.length)return a.ignoreReadonly;if("boolean"!=typeof e)throw new TypeError("ignoreReadonly () expects a boolean parameter");return a.ignoreReadonly=e,c},c.options=function(t){if(0===arguments.length)return e.extend(!0,{},a);if(!(t instanceof Object))throw new TypeError("options() options parameter should be an object");return e.extend(!0,a,t),e.each(a,function(e,t){if(void 0===c[e])throw new TypeError("option "+e+" is not recognized!");c[e](t)}),c},c.date=function(e){if(0===arguments.length)return u?null:r.clone();if(!(null===e||"string"==typeof e||t.isMoment(e)||e instanceof Date))throw new TypeError("date() parameter must be one of [null, string, moment or Date]");return $(null===e?null:oe(e)),c},c.format=function(e){if(0===arguments.length)return a.format;if("string"!=typeof e&&("boolean"!=typeof e||e!==!1))throw new TypeError("format() expects a sting or boolean:false parameter "+e);return a.format=e,s&&me(),c},c.timeZone=function(e){return 0===arguments.length?a.timeZone:(a.timeZone=e,c)},c.dayViewHeaderFormat=function(e){if(0===arguments.length)return a.dayViewHeaderFormat;if("string"!=typeof e)throw new TypeError("dayViewHeaderFormat() expects a string parameter");return a.dayViewHeaderFormat=e,c},c.extraFormats=function(e){if(0===arguments.length)return a.extraFormats;if(e!==!1&&!(e instanceof Array))throw new TypeError("extraFormats() expects an array or false parameter");return a.extraFormats=e,l&&me(),c},c.disabledDates=function(t){if(0===arguments.length)return a.disabledDates?e.extend({},a.disabledDates):a.disabledDates;if(!t)return a.disabledDates=!1,X(),c;if(!(t instanceof Array))throw new TypeError("disabledDates() expects an array parameter");return a.disabledDates=ue(t),a.enabledDates=!1,X(),c},c.enabledDates=function(t){if(0===arguments.length)return a.enabledDates?e.extend({},a.enabledDates):a.enabledDates;if(!t)return a.enabledDates=!1,X(),c;if(!(t instanceof Array))throw new TypeError("enabledDates() expects an array parameter");return a.enabledDates=ue(t),a.disabledDates=!1,X(),c},c.daysOfWeekDisabled=function(e){if(0===arguments.length)return a.daysOfWeekDisabled.splice(0);if("boolean"==typeof e&&!e)return a.daysOfWeekDisabled=!1,X(),c;if(!(e instanceof Array))throw new TypeError("daysOfWeekDisabled() expects an array parameter");if(a.daysOfWeekDisabled=e.reduce(function(e,t){return t=parseInt(t,10),t>6||0>t||isNaN(t)?e:(-1===e.indexOf(t)&&e.push(t),e)},[]).sort(),a.useCurrent&&!a.keepInvalid){for(var t=0;!N(r,"d");){if(r.add(1,"d"),7===t)throw"Tried 7 times to find a valid date";t++}$(r)}return X(),c},c.maxDate=function(e){if(0===arguments.length)return a.maxDate?a.maxDate.clone():a.maxDate;if("boolean"==typeof e&&e===!1)return a.maxDate=!1,X(),c;"string"==typeof e&&("now"!==e&&"moment"!==e||(e=C()));var t=oe(e);if(!t.isValid())throw new TypeError("maxDate() Could not parse date parameter: "+e);if(a.minDate&&t.isBefore(a.minDate))throw new TypeError("maxDate() date parameter is before options.minDate: "+t.format(s));return a.maxDate=t,a.useCurrent&&!a.keepInvalid&&r.isAfter(e)&&$(a.maxDate),i.isAfter(t)&&(i=t.clone().subtract(a.stepping,"m")),X(),c},c.minDate=function(e){if(0===arguments.length)return a.minDate?a.minDate.clone():a.minDate;if("boolean"==typeof e&&e===!1)return a.minDate=!1,X(),c;"string"==typeof e&&("now"!==e&&"moment"!==e||(e=C()));var t=oe(e);if(!t.isValid())throw new TypeError("minDate() Could not parse date parameter: "+e);if(a.maxDate&&t.isAfter(a.maxDate))throw new TypeError("minDate() date parameter is after options.maxDate: "+t.format(s));return a.minDate=t,a.useCurrent&&!a.keepInvalid&&r.isBefore(e)&&$(a.minDate),i.isBefore(t)&&(i=t.clone().add(a.stepping,"m")),X(),c},c.defaultDate=function(e){if(0===arguments.length)return a.defaultDate?a.defaultDate.clone():a.defaultDate;if(!e)return a.defaultDate=!1,c;"string"==typeof e&&("now"!==e&&"moment"!==e||(e=C()));var t=oe(e);if(!t.isValid())throw new TypeError("defaultDate() Could not parse date parameter: "+e);if(!N(t))throw new TypeError("defaultDate() date passed is invalid according to component setup validations");return a.defaultDate=t,(a.defaultDate&&a.inline||""===o.val().trim())&&$(a.defaultDate),c},c.locale=function(e){if(0===arguments.length)return a.locale;if(!t.localeData(e))throw new TypeError("locale() locale "+e+" is not loaded from moment locales!");return a.locale=e,r.locale(a.locale),i.locale(a.locale),s&&me(),m&&(ee(),re()),c},c.stepping=function(e){return 0===arguments.length?a.stepping:(e=parseInt(e,10),(isNaN(e)||1>e)&&(e=1),a.stepping=e,c)},c.useCurrent=function(e){var t=["year","month","day","hour","minute"];if(0===arguments.length)return a.useCurrent;if("boolean"!=typeof e&&"string"!=typeof e)throw new TypeError("useCurrent() expects a boolean or string parameter");if("string"==typeof e&&-1===t.indexOf(e.toLowerCase()))throw new TypeError("useCurrent() expects a string parameter of "+t.join(", "));return a.useCurrent=e,c},c.collapse=function(e){if(0===arguments.length)return a.collapse;if("boolean"!=typeof e)throw new TypeError("collapse() expects a boolean parameter");return a.collapse===e?c:(a.collapse=e,m&&(ee(),re()),c)},c.icons=function(t){if(0===arguments.length)return e.extend({},a.icons);if(!(t instanceof Object))throw new TypeError("icons() expects parameter to be an Object");return e.extend(a.icons,t),m&&(ee(),re()),c},c.tooltips=function(t){if(0===arguments.length)return e.extend({},a.tooltips);if(!(t instanceof Object))throw new TypeError("tooltips() expects parameter to be an Object");return e.extend(a.tooltips,t),m&&(ee(),re()),c},c.useStrict=function(e){if(0===arguments.length)return a.useStrict;if("boolean"!=typeof e)throw new TypeError("useStrict() expects a boolean parameter");return a.useStrict=e,c},c.sideBySide=function(e){if(0===arguments.length)return a.sideBySide;if("boolean"!=typeof e)throw new TypeError("sideBySide() expects a boolean parameter");return a.sideBySide=e,m&&(ee(),re()),c},c.viewMode=function(e){if(0===arguments.length)return a.viewMode;if("string"!=typeof e)throw new TypeError("viewMode() expects a string parameter");if(-1===b.indexOf(e))throw new TypeError("viewMode() parameter must be one of ("+b.join(", ")+") value");return a.viewMode=e,p=Math.max(b.indexOf(e),h),z(),c},c.toolbarPlacement=function(e){if(0===arguments.length)return a.toolbarPlacement;if("string"!=typeof e)throw new TypeError("toolbarPlacement() expects a string parameter");if(-1===v.indexOf(e))throw new TypeError("toolbarPlacement() parameter must be one of ("+v.join(", ")+") value"); +return a.toolbarPlacement=e,m&&(ee(),re()),c},c.widgetPositioning=function(t){if(0===arguments.length)return e.extend({},a.widgetPositioning);if("[object Object]"!=={}.toString.call(t))throw new TypeError("widgetPositioning() expects an object variable");if(t.horizontal){if("string"!=typeof t.horizontal)throw new TypeError("widgetPositioning() horizontal variable must be a string");if(t.horizontal=t.horizontal.toLowerCase(),-1===g.indexOf(t.horizontal))throw new TypeError("widgetPositioning() expects horizontal parameter to be one of ("+g.join(", ")+")");a.widgetPositioning.horizontal=t.horizontal}if(t.vertical){if("string"!=typeof t.vertical)throw new TypeError("widgetPositioning() vertical variable must be a string");if(t.vertical=t.vertical.toLowerCase(),-1===w.indexOf(t.vertical))throw new TypeError("widgetPositioning() expects vertical parameter to be one of ("+w.join(", ")+")");a.widgetPositioning.vertical=t.vertical}return X(),c},c.calendarWeeks=function(e){if(0===arguments.length)return a.calendarWeeks;if("boolean"!=typeof e)throw new TypeError("calendarWeeks() expects parameter to be a boolean value");return a.calendarWeeks=e,X(),c},c.showTodayButton=function(e){if(0===arguments.length)return a.showTodayButton;if("boolean"!=typeof e)throw new TypeError("showTodayButton() expects a boolean parameter");return a.showTodayButton=e,m&&(ee(),re()),c},c.showClear=function(e){if(0===arguments.length)return a.showClear;if("boolean"!=typeof e)throw new TypeError("showClear() expects a boolean parameter");return a.showClear=e,m&&(ee(),re()),c},c.widgetParent=function(t){if(0===arguments.length)return a.widgetParent;if("string"==typeof t&&(t=e(t)),null!==t&&"string"!=typeof t&&!(t instanceof e))throw new TypeError("widgetParent() expects a string or a jQuery object parameter");return a.widgetParent=t,m&&(ee(),re()),c},c.keepOpen=function(e){if(0===arguments.length)return a.keepOpen;if("boolean"!=typeof e)throw new TypeError("keepOpen() expects a boolean parameter");return a.keepOpen=e,c},c.focusOnShow=function(e){if(0===arguments.length)return a.focusOnShow;if("boolean"!=typeof e)throw new TypeError("focusOnShow() expects a boolean parameter");return a.focusOnShow=e,c},c.inline=function(e){if(0===arguments.length)return a.inline;if("boolean"!=typeof e)throw new TypeError("inline() expects a boolean parameter");return a.inline=e,c},c.clear=function(){return te(),c},c.keyBinds=function(e){return a.keyBinds=e,c},c.getMoment=function(e){return C(e)},c.debug=function(e){if("boolean"!=typeof e)throw new TypeError("debug() expects a boolean parameter");return a.debug=e,c},c.allowInputToggle=function(e){if(0===arguments.length)return a.allowInputToggle;if("boolean"!=typeof e)throw new TypeError("allowInputToggle() expects a boolean parameter");return a.allowInputToggle=e,c},c.showClose=function(e){if(0===arguments.length)return a.showClose;if("boolean"!=typeof e)throw new TypeError("showClose() expects a boolean parameter");return a.showClose=e,c},c.keepInvalid=function(e){if(0===arguments.length)return a.keepInvalid;if("boolean"!=typeof e)throw new TypeError("keepInvalid() expects a boolean parameter");return a.keepInvalid=e,c},c.datepickerInput=function(e){if(0===arguments.length)return a.datepickerInput;if("string"!=typeof e)throw new TypeError("datepickerInput() expects a string parameter");return a.datepickerInput=e,c},c.parseInputDate=function(e){if(0===arguments.length)return a.parseInputDate;if("function"!=typeof e)throw new TypeError("parseInputDate() sholud be as function");return a.parseInputDate=e,c},c.disabledTimeIntervals=function(t){if(0===arguments.length)return a.disabledTimeIntervals?e.extend({},a.disabledTimeIntervals):a.disabledTimeIntervals;if(!t)return a.disabledTimeIntervals=!1,X(),c;if(!(t instanceof Array))throw new TypeError("disabledTimeIntervals() expects an array parameter");return a.disabledTimeIntervals=t,X(),c},c.disabledHours=function(t){if(0===arguments.length)return a.disabledHours?e.extend({},a.disabledHours):a.disabledHours;if(!t)return a.disabledHours=!1,X(),c;if(!(t instanceof Array))throw new TypeError("disabledHours() expects an array parameter");if(a.disabledHours=fe(t),a.enabledHours=!1,a.useCurrent&&!a.keepInvalid){for(var n=0;!N(r,"h");){if(r.add(1,"h"),24===n)throw"Tried 24 times to find a valid date";n++}$(r)}return X(),c},c.enabledHours=function(t){if(0===arguments.length)return a.enabledHours?e.extend({},a.enabledHours):a.enabledHours;if(!t)return a.enabledHours=!1,X(),c;if(!(t instanceof Array))throw new TypeError("enabledHours() expects an array parameter");if(a.enabledHours=fe(t),a.disabledHours=!1,a.useCurrent&&!a.keepInvalid){for(var n=0;!N(r,"h");){if(r.add(1,"h"),24===n)throw"Tried 24 times to find a valid date";n++}$(r)}return X(),c},c.viewDate=function(e){if(0===arguments.length)return i.clone();if(!e)return i=r.clone(),c;if(!("string"==typeof e||t.isMoment(e)||e instanceof Date))throw new TypeError("viewDate() parameter must be one of [string, moment or Date]");return i=oe(e),B(),c},n.is("input"))o=n;else if(o=n.find(a.datepickerInput),0===o.size())o=n.find("input");else if(!o.is("input"))throw new Error('CSS class "'+a.datepickerInput+'" cannot be applied to non input element');if(n.hasClass("input-group")&&(f=0===n.find(".datepickerbutton").size()?n.find(".input-group-addon"):n.find(".datepickerbutton")),!a.inline&&!o.is("input"))throw new Error("Could not initialize DateTimePicker without an input element");return r=C(),i=r.clone(),e.extend(!0,a,I()),c.options(a),me(),pe(),o.prop("disabled")&&c.disable(),o.is("input")&&0!==o.val().trim().length?$(oe(o.val().trim())):a.defaultDate&&void 0===o.attr("placeholder")&&$(a.defaultDate),a.inline&&re(),c};return n}},{}]},{},[1]); \ No newline at end of file diff --git a/public/assets/js/amazeui.ie8polyfill.js b/public/assets/js/amazeui.ie8polyfill.js new file mode 100755 index 0000000..9664fd2 --- /dev/null +++ b/public/assets/js/amazeui.ie8polyfill.js @@ -0,0 +1,2880 @@ +/*! Amaze UI v2.7.2 ~ IE8 Fucker | by Amaze UI Team | (c) 2016 AllMobilize, Inc. | Licensed under MIT | 2016-08-17T16:17:24+0800 */ +/*! + * https://github.com/es-shims/es5-shim + * @license es5-shim Copyright 2009-2015 by contributors, MIT License + * see https://github.com/es-shims/es5-shim/blob/master/LICENSE + */ + +// vim: ts=4 sts=4 sw=4 expandtab + +// Add semicolon to prevent IIFE from being passed as argument to concatenated code. +; + +// UMD (Universal Module Definition) +// see https://github.com/umdjs/umd/blob/master/templates/returnExports.js +(function (root, factory) { + 'use strict'; + + /* global define, exports, module */ + if (typeof define === 'function' && define.amd) { + // AMD. Register as an anonymous module. + define(factory); + } else if (typeof exports === 'object') { + // Node. Does not work with strict CommonJS, but + // only CommonJS-like enviroments that support module.exports, + // like Node. + module.exports = factory(); + } else { + // Browser globals (root is window) + root.returnExports = factory(); + } +}(this, function () { + +/** + * Brings an environment as close to ECMAScript 5 compliance + * as is possible with the facilities of erstwhile engines. + * + * Annotated ES5: http://es5.github.com/ (specific links below) + * ES5 Spec: http://www.ecma-international.org/publications/files/ECMA-ST/Ecma-262.pdf + * Required reading: http://javascriptweblog.wordpress.com/2011/12/05/extending-javascript-natives/ + */ + +// Shortcut to an often accessed properties, in order to avoid multiple +// dereference that costs universally. This also holds a reference to known-good +// functions. +var $Array = Array; +var ArrayPrototype = $Array.prototype; +var $Object = Object; +var ObjectPrototype = $Object.prototype; +var $Function = Function; +var FunctionPrototype = $Function.prototype; +var $String = String; +var StringPrototype = $String.prototype; +var $Number = Number; +var NumberPrototype = $Number.prototype; +var array_slice = ArrayPrototype.slice; +var array_splice = ArrayPrototype.splice; +var array_push = ArrayPrototype.push; +var array_unshift = ArrayPrototype.unshift; +var array_concat = ArrayPrototype.concat; +var array_join = ArrayPrototype.join; +var call = FunctionPrototype.call; +var apply = FunctionPrototype.apply; +var max = Math.max; +var min = Math.min; + +// Having a toString local variable name breaks in Opera so use to_string. +var to_string = ObjectPrototype.toString; + +/* global Symbol */ +/* eslint-disable one-var-declaration-per-line, no-redeclare */ +var hasToStringTag = typeof Symbol === 'function' && typeof Symbol.toStringTag === 'symbol'; +var isCallable; /* inlined from https://npmjs.com/is-callable */ var fnToStr = Function.prototype.toString, constructorRegex = /^\s*class /, isES6ClassFn = function isES6ClassFn(value) { try { var fnStr = fnToStr.call(value); var singleStripped = fnStr.replace(/\/\/.*\n/g, ''); var multiStripped = singleStripped.replace(/\/\*[.\s\S]*\*\//g, ''); var spaceStripped = multiStripped.replace(/\n/mg, ' ').replace(/ {2}/g, ' '); return constructorRegex.test(spaceStripped); } catch (e) { return false; /* not a function */ } }, tryFunctionObject = function tryFunctionObject(value) { try { if (isES6ClassFn(value)) { return false; } fnToStr.call(value); return true; } catch (e) { return false; } }, fnClass = '[object Function]', genClass = '[object GeneratorFunction]', isCallable = function isCallable(value) { if (!value) { return false; } if (typeof value !== 'function' && typeof value !== 'object') { return false; } if (hasToStringTag) { return tryFunctionObject(value); } if (isES6ClassFn(value)) { return false; } var strClass = to_string.call(value); return strClass === fnClass || strClass === genClass; }; + +var isRegex; /* inlined from https://npmjs.com/is-regex */ var regexExec = RegExp.prototype.exec, tryRegexExec = function tryRegexExec(value) { try { regexExec.call(value); return true; } catch (e) { return false; } }, regexClass = '[object RegExp]'; isRegex = function isRegex(value) { if (typeof value !== 'object') { return false; } return hasToStringTag ? tryRegexExec(value) : to_string.call(value) === regexClass; }; +var isString; /* inlined from https://npmjs.com/is-string */ var strValue = String.prototype.valueOf, tryStringObject = function tryStringObject(value) { try { strValue.call(value); return true; } catch (e) { return false; } }, stringClass = '[object String]'; isString = function isString(value) { if (typeof value === 'string') { return true; } if (typeof value !== 'object') { return false; } return hasToStringTag ? tryStringObject(value) : to_string.call(value) === stringClass; }; +/* eslint-enable one-var-declaration-per-line, no-redeclare */ + +/* inlined from http://npmjs.com/define-properties */ +var supportsDescriptors = $Object.defineProperty && (function () { + try { + var obj = {}; + $Object.defineProperty(obj, 'x', { enumerable: false, value: obj }); + for (var _ in obj) { return false; } + return obj.x === obj; + } catch (e) { /* this is ES3 */ + return false; + } +}()); +var defineProperties = (function (has) { + // Define configurable, writable, and non-enumerable props + // if they don't exist. + var defineProperty; + if (supportsDescriptors) { + defineProperty = function (object, name, method, forceAssign) { + if (!forceAssign && (name in object)) { return; } + $Object.defineProperty(object, name, { + configurable: true, + enumerable: false, + writable: true, + value: method + }); + }; + } else { + defineProperty = function (object, name, method, forceAssign) { + if (!forceAssign && (name in object)) { return; } + object[name] = method; + }; + } + return function defineProperties(object, map, forceAssign) { + for (var name in map) { + if (has.call(map, name)) { + defineProperty(object, name, map[name], forceAssign); + } + } + }; +}(ObjectPrototype.hasOwnProperty)); + +// +// Util +// ====== +// + +/* replaceable with https://npmjs.com/package/es-abstract /helpers/isPrimitive */ +var isPrimitive = function isPrimitive(input) { + var type = typeof input; + return input === null || (type !== 'object' && type !== 'function'); +}; + +var isActualNaN = $Number.isNaN || function (x) { return x !== x; }; + +var ES = { + // ES5 9.4 + // http://es5.github.com/#x9.4 + // http://jsperf.com/to-integer + /* replaceable with https://npmjs.com/package/es-abstract ES5.ToInteger */ + ToInteger: function ToInteger(num) { + var n = +num; + if (isActualNaN(n)) { + n = 0; + } else if (n !== 0 && n !== (1 / 0) && n !== -(1 / 0)) { + n = (n > 0 || -1) * Math.floor(Math.abs(n)); + } + return n; + }, + + /* replaceable with https://npmjs.com/package/es-abstract ES5.ToPrimitive */ + ToPrimitive: function ToPrimitive(input) { + var val, valueOf, toStr; + if (isPrimitive(input)) { + return input; + } + valueOf = input.valueOf; + if (isCallable(valueOf)) { + val = valueOf.call(input); + if (isPrimitive(val)) { + return val; + } + } + toStr = input.toString; + if (isCallable(toStr)) { + val = toStr.call(input); + if (isPrimitive(val)) { + return val; + } + } + throw new TypeError(); + }, + + // ES5 9.9 + // http://es5.github.com/#x9.9 + /* replaceable with https://npmjs.com/package/es-abstract ES5.ToObject */ + ToObject: function (o) { + if (o == null) { // this matches both null and undefined + throw new TypeError("can't convert " + o + ' to object'); + } + return $Object(o); + }, + + /* replaceable with https://npmjs.com/package/es-abstract ES5.ToUint32 */ + ToUint32: function ToUint32(x) { + return x >>> 0; + } +}; + +// +// Function +// ======== +// + +// ES-5 15.3.4.5 +// http://es5.github.com/#x15.3.4.5 + +var Empty = function Empty() {}; + +defineProperties(FunctionPrototype, { + bind: function bind(that) { // .length is 1 + // 1. Let Target be the this value. + var target = this; + // 2. If IsCallable(Target) is false, throw a TypeError exception. + if (!isCallable(target)) { + throw new TypeError('Function.prototype.bind called on incompatible ' + target); + } + // 3. Let A be a new (possibly empty) internal list of all of the + // argument values provided after thisArg (arg1, arg2 etc), in order. + // XXX slicedArgs will stand in for "A" if used + var args = array_slice.call(arguments, 1); // for normal call + // 4. Let F be a new native ECMAScript object. + // 11. Set the [[Prototype]] internal property of F to the standard + // built-in Function prototype object as specified in 15.3.3.1. + // 12. Set the [[Call]] internal property of F as described in + // 15.3.4.5.1. + // 13. Set the [[Construct]] internal property of F as described in + // 15.3.4.5.2. + // 14. Set the [[HasInstance]] internal property of F as described in + // 15.3.4.5.3. + var bound; + var binder = function () { + + if (this instanceof bound) { + // 15.3.4.5.2 [[Construct]] + // When the [[Construct]] internal method of a function object, + // F that was created using the bind function is called with a + // list of arguments ExtraArgs, the following steps are taken: + // 1. Let target be the value of F's [[TargetFunction]] + // internal property. + // 2. If target has no [[Construct]] internal method, a + // TypeError exception is thrown. + // 3. Let boundArgs be the value of F's [[BoundArgs]] internal + // property. + // 4. Let args be a new list containing the same values as the + // list boundArgs in the same order followed by the same + // values as the list ExtraArgs in the same order. + // 5. Return the result of calling the [[Construct]] internal + // method of target providing args as the arguments. + + var result = apply.call( + target, + this, + array_concat.call(args, array_slice.call(arguments)) + ); + if ($Object(result) === result) { + return result; + } + return this; + + } else { + // 15.3.4.5.1 [[Call]] + // When the [[Call]] internal method of a function object, F, + // which was created using the bind function is called with a + // this value and a list of arguments ExtraArgs, the following + // steps are taken: + // 1. Let boundArgs be the value of F's [[BoundArgs]] internal + // property. + // 2. Let boundThis be the value of F's [[BoundThis]] internal + // property. + // 3. Let target be the value of F's [[TargetFunction]] internal + // property. + // 4. Let args be a new list containing the same values as the + // list boundArgs in the same order followed by the same + // values as the list ExtraArgs in the same order. + // 5. Return the result of calling the [[Call]] internal method + // of target providing boundThis as the this value and + // providing args as the arguments. + + // equiv: target.call(this, ...boundArgs, ...args) + return apply.call( + target, + that, + array_concat.call(args, array_slice.call(arguments)) + ); + + } + + }; + + // 15. If the [[Class]] internal property of Target is "Function", then + // a. Let L be the length property of Target minus the length of A. + // b. Set the length own property of F to either 0 or L, whichever is + // larger. + // 16. Else set the length own property of F to 0. + + var boundLength = max(0, target.length - args.length); + + // 17. Set the attributes of the length own property of F to the values + // specified in 15.3.5.1. + var boundArgs = []; + for (var i = 0; i < boundLength; i++) { + array_push.call(boundArgs, '$' + i); + } + + // XXX Build a dynamic function with desired amount of arguments is the only + // way to set the length property of a function. + // In environments where Content Security Policies enabled (Chrome extensions, + // for ex.) all use of eval or Function costructor throws an exception. + // However in all of these environments Function.prototype.bind exists + // and so this code will never be executed. + bound = $Function('binder', 'return function (' + array_join.call(boundArgs, ',') + '){ return binder.apply(this, arguments); }')(binder); + + if (target.prototype) { + Empty.prototype = target.prototype; + bound.prototype = new Empty(); + // Clean up dangling references. + Empty.prototype = null; + } + + // TODO + // 18. Set the [[Extensible]] internal property of F to true. + + // TODO + // 19. Let thrower be the [[ThrowTypeError]] function Object (13.2.3). + // 20. Call the [[DefineOwnProperty]] internal method of F with + // arguments "caller", PropertyDescriptor {[[Get]]: thrower, [[Set]]: + // thrower, [[Enumerable]]: false, [[Configurable]]: false}, and + // false. + // 21. Call the [[DefineOwnProperty]] internal method of F with + // arguments "arguments", PropertyDescriptor {[[Get]]: thrower, + // [[Set]]: thrower, [[Enumerable]]: false, [[Configurable]]: false}, + // and false. + + // TODO + // NOTE Function objects created using Function.prototype.bind do not + // have a prototype property or the [[Code]], [[FormalParameters]], and + // [[Scope]] internal properties. + // XXX can't delete prototype in pure-js. + + // 22. Return F. + return bound; + } +}); + +// _Please note: Shortcuts are defined after `Function.prototype.bind` as we +// use it in defining shortcuts. +var owns = call.bind(ObjectPrototype.hasOwnProperty); +var toStr = call.bind(ObjectPrototype.toString); +var arraySlice = call.bind(array_slice); +var arraySliceApply = apply.bind(array_slice); +var strSlice = call.bind(StringPrototype.slice); +var strSplit = call.bind(StringPrototype.split); +var strIndexOf = call.bind(StringPrototype.indexOf); +var pushCall = call.bind(array_push); +var isEnum = call.bind(ObjectPrototype.propertyIsEnumerable); +var arraySort = call.bind(ArrayPrototype.sort); + +// +// Array +// ===== +// + +var isArray = $Array.isArray || function isArray(obj) { + return toStr(obj) === '[object Array]'; +}; + +// ES5 15.4.4.12 +// http://es5.github.com/#x15.4.4.13 +// Return len+argCount. +// [bugfix, ielt8] +// IE < 8 bug: [].unshift(0) === undefined but should be "1" +var hasUnshiftReturnValueBug = [].unshift(0) !== 1; +defineProperties(ArrayPrototype, { + unshift: function () { + array_unshift.apply(this, arguments); + return this.length; + } +}, hasUnshiftReturnValueBug); + +// ES5 15.4.3.2 +// http://es5.github.com/#x15.4.3.2 +// https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Array/isArray +defineProperties($Array, { isArray: isArray }); + +// The IsCallable() check in the Array functions +// has been replaced with a strict check on the +// internal class of the object to trap cases where +// the provided function was actually a regular +// expression literal, which in V8 and +// JavaScriptCore is a typeof "function". Only in +// V8 are regular expression literals permitted as +// reduce parameters, so it is desirable in the +// general case for the shim to match the more +// strict and common behavior of rejecting regular +// expressions. + +// ES5 15.4.4.18 +// http://es5.github.com/#x15.4.4.18 +// https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/array/forEach + +// Check failure of by-index access of string characters (IE < 9) +// and failure of `0 in boxedString` (Rhino) +var boxedString = $Object('a'); +var splitString = boxedString[0] !== 'a' || !(0 in boxedString); + +var properlyBoxesContext = function properlyBoxed(method) { + // Check node 0.6.21 bug where third parameter is not boxed + var properlyBoxesNonStrict = true; + var properlyBoxesStrict = true; + var threwException = false; + if (method) { + try { + method.call('foo', function (_, __, context) { + if (typeof context !== 'object') { properlyBoxesNonStrict = false; } + }); + + method.call([1], function () { + 'use strict'; + + properlyBoxesStrict = typeof this === 'string'; + }, 'x'); + } catch (e) { + threwException = true; + } + } + return !!method && !threwException && properlyBoxesNonStrict && properlyBoxesStrict; +}; + +defineProperties(ArrayPrototype, { + forEach: function forEach(callbackfn/*, thisArg*/) { + var object = ES.ToObject(this); + var self = splitString && isString(this) ? strSplit(this, '') : object; + var i = -1; + var length = ES.ToUint32(self.length); + var T; + if (arguments.length > 1) { + T = arguments[1]; + } + + // If no callback function or if callback is not a callable function + if (!isCallable(callbackfn)) { + throw new TypeError('Array.prototype.forEach callback must be a function'); + } + + while (++i < length) { + if (i in self) { + // Invoke the callback function with call, passing arguments: + // context, property value, property key, thisArg object + if (typeof T === 'undefined') { + callbackfn(self[i], i, object); + } else { + callbackfn.call(T, self[i], i, object); + } + } + } + } +}, !properlyBoxesContext(ArrayPrototype.forEach)); + +// ES5 15.4.4.19 +// http://es5.github.com/#x15.4.4.19 +// https://developer.mozilla.org/en/Core_JavaScript_1.5_Reference/Objects/Array/map +defineProperties(ArrayPrototype, { + map: function map(callbackfn/*, thisArg*/) { + var object = ES.ToObject(this); + var self = splitString && isString(this) ? strSplit(this, '') : object; + var length = ES.ToUint32(self.length); + var result = $Array(length); + var T; + if (arguments.length > 1) { + T = arguments[1]; + } + + // If no callback function or if callback is not a callable function + if (!isCallable(callbackfn)) { + throw new TypeError('Array.prototype.map callback must be a function'); + } + + for (var i = 0; i < length; i++) { + if (i in self) { + if (typeof T === 'undefined') { + result[i] = callbackfn(self[i], i, object); + } else { + result[i] = callbackfn.call(T, self[i], i, object); + } + } + } + return result; + } +}, !properlyBoxesContext(ArrayPrototype.map)); + +// ES5 15.4.4.20 +// http://es5.github.com/#x15.4.4.20 +// https://developer.mozilla.org/en/Core_JavaScript_1.5_Reference/Objects/Array/filter +defineProperties(ArrayPrototype, { + filter: function filter(callbackfn/*, thisArg*/) { + var object = ES.ToObject(this); + var self = splitString && isString(this) ? strSplit(this, '') : object; + var length = ES.ToUint32(self.length); + var result = []; + var value; + var T; + if (arguments.length > 1) { + T = arguments[1]; + } + + // If no callback function or if callback is not a callable function + if (!isCallable(callbackfn)) { + throw new TypeError('Array.prototype.filter callback must be a function'); + } + + for (var i = 0; i < length; i++) { + if (i in self) { + value = self[i]; + if (typeof T === 'undefined' ? callbackfn(value, i, object) : callbackfn.call(T, value, i, object)) { + pushCall(result, value); + } + } + } + return result; + } +}, !properlyBoxesContext(ArrayPrototype.filter)); + +// ES5 15.4.4.16 +// http://es5.github.com/#x15.4.4.16 +// https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Array/every +defineProperties(ArrayPrototype, { + every: function every(callbackfn/*, thisArg*/) { + var object = ES.ToObject(this); + var self = splitString && isString(this) ? strSplit(this, '') : object; + var length = ES.ToUint32(self.length); + var T; + if (arguments.length > 1) { + T = arguments[1]; + } + + // If no callback function or if callback is not a callable function + if (!isCallable(callbackfn)) { + throw new TypeError('Array.prototype.every callback must be a function'); + } + + for (var i = 0; i < length; i++) { + if (i in self && !(typeof T === 'undefined' ? callbackfn(self[i], i, object) : callbackfn.call(T, self[i], i, object))) { + return false; + } + } + return true; + } +}, !properlyBoxesContext(ArrayPrototype.every)); + +// ES5 15.4.4.17 +// http://es5.github.com/#x15.4.4.17 +// https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Array/some +defineProperties(ArrayPrototype, { + some: function some(callbackfn/*, thisArg */) { + var object = ES.ToObject(this); + var self = splitString && isString(this) ? strSplit(this, '') : object; + var length = ES.ToUint32(self.length); + var T; + if (arguments.length > 1) { + T = arguments[1]; + } + + // If no callback function or if callback is not a callable function + if (!isCallable(callbackfn)) { + throw new TypeError('Array.prototype.some callback must be a function'); + } + + for (var i = 0; i < length; i++) { + if (i in self && (typeof T === 'undefined' ? callbackfn(self[i], i, object) : callbackfn.call(T, self[i], i, object))) { + return true; + } + } + return false; + } +}, !properlyBoxesContext(ArrayPrototype.some)); + +// ES5 15.4.4.21 +// http://es5.github.com/#x15.4.4.21 +// https://developer.mozilla.org/en/Core_JavaScript_1.5_Reference/Objects/Array/reduce +var reduceCoercesToObject = false; +if (ArrayPrototype.reduce) { + reduceCoercesToObject = typeof ArrayPrototype.reduce.call('es5', function (_, __, ___, list) { return list; }) === 'object'; +} +defineProperties(ArrayPrototype, { + reduce: function reduce(callbackfn/*, initialValue*/) { + var object = ES.ToObject(this); + var self = splitString && isString(this) ? strSplit(this, '') : object; + var length = ES.ToUint32(self.length); + + // If no callback function or if callback is not a callable function + if (!isCallable(callbackfn)) { + throw new TypeError('Array.prototype.reduce callback must be a function'); + } + + // no value to return if no initial value and an empty array + if (length === 0 && arguments.length === 1) { + throw new TypeError('reduce of empty array with no initial value'); + } + + var i = 0; + var result; + if (arguments.length >= 2) { + result = arguments[1]; + } else { + do { + if (i in self) { + result = self[i++]; + break; + } + + // if array contains no values, no initial value to return + if (++i >= length) { + throw new TypeError('reduce of empty array with no initial value'); + } + } while (true); + } + + for (; i < length; i++) { + if (i in self) { + result = callbackfn(result, self[i], i, object); + } + } + + return result; + } +}, !reduceCoercesToObject); + +// ES5 15.4.4.22 +// http://es5.github.com/#x15.4.4.22 +// https://developer.mozilla.org/en/Core_JavaScript_1.5_Reference/Objects/Array/reduceRight +var reduceRightCoercesToObject = false; +if (ArrayPrototype.reduceRight) { + reduceRightCoercesToObject = typeof ArrayPrototype.reduceRight.call('es5', function (_, __, ___, list) { return list; }) === 'object'; +} +defineProperties(ArrayPrototype, { + reduceRight: function reduceRight(callbackfn/*, initial*/) { + var object = ES.ToObject(this); + var self = splitString && isString(this) ? strSplit(this, '') : object; + var length = ES.ToUint32(self.length); + + // If no callback function or if callback is not a callable function + if (!isCallable(callbackfn)) { + throw new TypeError('Array.prototype.reduceRight callback must be a function'); + } + + // no value to return if no initial value, empty array + if (length === 0 && arguments.length === 1) { + throw new TypeError('reduceRight of empty array with no initial value'); + } + + var result; + var i = length - 1; + if (arguments.length >= 2) { + result = arguments[1]; + } else { + do { + if (i in self) { + result = self[i--]; + break; + } + + // if array contains no values, no initial value to return + if (--i < 0) { + throw new TypeError('reduceRight of empty array with no initial value'); + } + } while (true); + } + + if (i < 0) { + return result; + } + + do { + if (i in self) { + result = callbackfn(result, self[i], i, object); + } + } while (i--); + + return result; + } +}, !reduceRightCoercesToObject); + +// ES5 15.4.4.14 +// http://es5.github.com/#x15.4.4.14 +// https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Array/indexOf +var hasFirefox2IndexOfBug = ArrayPrototype.indexOf && [0, 1].indexOf(1, 2) !== -1; +defineProperties(ArrayPrototype, { + indexOf: function indexOf(searchElement/*, fromIndex */) { + var self = splitString && isString(this) ? strSplit(this, '') : ES.ToObject(this); + var length = ES.ToUint32(self.length); + + if (length === 0) { + return -1; + } + + var i = 0; + if (arguments.length > 1) { + i = ES.ToInteger(arguments[1]); + } + + // handle negative indices + i = i >= 0 ? i : max(0, length + i); + for (; i < length; i++) { + if (i in self && self[i] === searchElement) { + return i; + } + } + return -1; + } +}, hasFirefox2IndexOfBug); + +// ES5 15.4.4.15 +// http://es5.github.com/#x15.4.4.15 +// https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Array/lastIndexOf +var hasFirefox2LastIndexOfBug = ArrayPrototype.lastIndexOf && [0, 1].lastIndexOf(0, -3) !== -1; +defineProperties(ArrayPrototype, { + lastIndexOf: function lastIndexOf(searchElement/*, fromIndex */) { + var self = splitString && isString(this) ? strSplit(this, '') : ES.ToObject(this); + var length = ES.ToUint32(self.length); + + if (length === 0) { + return -1; + } + var i = length - 1; + if (arguments.length > 1) { + i = min(i, ES.ToInteger(arguments[1])); + } + // handle negative indices + i = i >= 0 ? i : length - Math.abs(i); + for (; i >= 0; i--) { + if (i in self && searchElement === self[i]) { + return i; + } + } + return -1; + } +}, hasFirefox2LastIndexOfBug); + +// ES5 15.4.4.12 +// http://es5.github.com/#x15.4.4.12 +var spliceNoopReturnsEmptyArray = (function () { + var a = [1, 2]; + var result = a.splice(); + return a.length === 2 && isArray(result) && result.length === 0; +}()); +defineProperties(ArrayPrototype, { + // Safari 5.0 bug where .splice() returns undefined + splice: function splice(start, deleteCount) { + if (arguments.length === 0) { + return []; + } else { + return array_splice.apply(this, arguments); + } + } +}, !spliceNoopReturnsEmptyArray); + +var spliceWorksWithEmptyObject = (function () { + var obj = {}; + ArrayPrototype.splice.call(obj, 0, 0, 1); + return obj.length === 1; +}()); +defineProperties(ArrayPrototype, { + splice: function splice(start, deleteCount) { + if (arguments.length === 0) { return []; } + var args = arguments; + this.length = max(ES.ToInteger(this.length), 0); + if (arguments.length > 0 && typeof deleteCount !== 'number') { + args = arraySlice(arguments); + if (args.length < 2) { + pushCall(args, this.length - start); + } else { + args[1] = ES.ToInteger(deleteCount); + } + } + return array_splice.apply(this, args); + } +}, !spliceWorksWithEmptyObject); +var spliceWorksWithLargeSparseArrays = (function () { + // Per https://github.com/es-shims/es5-shim/issues/295 + // Safari 7/8 breaks with sparse arrays of size 1e5 or greater + var arr = new $Array(1e5); + // note: the index MUST be 8 or larger or the test will false pass + arr[8] = 'x'; + arr.splice(1, 1); + // note: this test must be defined *after* the indexOf shim + // per https://github.com/es-shims/es5-shim/issues/313 + return arr.indexOf('x') === 7; +}()); +var spliceWorksWithSmallSparseArrays = (function () { + // Per https://github.com/es-shims/es5-shim/issues/295 + // Opera 12.15 breaks on this, no idea why. + var n = 256; + var arr = []; + arr[n] = 'a'; + arr.splice(n + 1, 0, 'b'); + return arr[n] === 'a'; +}()); +defineProperties(ArrayPrototype, { + splice: function splice(start, deleteCount) { + var O = ES.ToObject(this); + var A = []; + var len = ES.ToUint32(O.length); + var relativeStart = ES.ToInteger(start); + var actualStart = relativeStart < 0 ? max((len + relativeStart), 0) : min(relativeStart, len); + var actualDeleteCount = min(max(ES.ToInteger(deleteCount), 0), len - actualStart); + + var k = 0; + var from; + while (k < actualDeleteCount) { + from = $String(actualStart + k); + if (owns(O, from)) { + A[k] = O[from]; + } + k += 1; + } + + var items = arraySlice(arguments, 2); + var itemCount = items.length; + var to; + if (itemCount < actualDeleteCount) { + k = actualStart; + var maxK = len - actualDeleteCount; + while (k < maxK) { + from = $String(k + actualDeleteCount); + to = $String(k + itemCount); + if (owns(O, from)) { + O[to] = O[from]; + } else { + delete O[to]; + } + k += 1; + } + k = len; + var minK = len - actualDeleteCount + itemCount; + while (k > minK) { + delete O[k - 1]; + k -= 1; + } + } else if (itemCount > actualDeleteCount) { + k = len - actualDeleteCount; + while (k > actualStart) { + from = $String(k + actualDeleteCount - 1); + to = $String(k + itemCount - 1); + if (owns(O, from)) { + O[to] = O[from]; + } else { + delete O[to]; + } + k -= 1; + } + } + k = actualStart; + for (var i = 0; i < items.length; ++i) { + O[k] = items[i]; + k += 1; + } + O.length = len - actualDeleteCount + itemCount; + + return A; + } +}, !spliceWorksWithLargeSparseArrays || !spliceWorksWithSmallSparseArrays); + +var originalJoin = ArrayPrototype.join; +var hasStringJoinBug; +try { + hasStringJoinBug = Array.prototype.join.call('123', ',') !== '1,2,3'; +} catch (e) { + hasStringJoinBug = true; +} +if (hasStringJoinBug) { + defineProperties(ArrayPrototype, { + join: function join(separator) { + var sep = typeof separator === 'undefined' ? ',' : separator; + return originalJoin.call(isString(this) ? strSplit(this, '') : this, sep); + } + }, hasStringJoinBug); +} + +var hasJoinUndefinedBug = [1, 2].join(undefined) !== '1,2'; +if (hasJoinUndefinedBug) { + defineProperties(ArrayPrototype, { + join: function join(separator) { + var sep = typeof separator === 'undefined' ? ',' : separator; + return originalJoin.call(this, sep); + } + }, hasJoinUndefinedBug); +} + +var pushShim = function push(item) { + var O = ES.ToObject(this); + var n = ES.ToUint32(O.length); + var i = 0; + while (i < arguments.length) { + O[n + i] = arguments[i]; + i += 1; + } + O.length = n + i; + return n + i; +}; + +var pushIsNotGeneric = (function () { + var obj = {}; + var result = Array.prototype.push.call(obj, undefined); + return result !== 1 || obj.length !== 1 || typeof obj[0] !== 'undefined' || !owns(obj, 0); +}()); +defineProperties(ArrayPrototype, { + push: function push(item) { + if (isArray(this)) { + return array_push.apply(this, arguments); + } + return pushShim.apply(this, arguments); + } +}, pushIsNotGeneric); + +// This fixes a very weird bug in Opera 10.6 when pushing `undefined +var pushUndefinedIsWeird = (function () { + var arr = []; + var result = arr.push(undefined); + return result !== 1 || arr.length !== 1 || typeof arr[0] !== 'undefined' || !owns(arr, 0); +}()); +defineProperties(ArrayPrototype, { push: pushShim }, pushUndefinedIsWeird); + +// ES5 15.2.3.14 +// http://es5.github.io/#x15.4.4.10 +// Fix boxed string bug +defineProperties(ArrayPrototype, { + slice: function (start, end) { + var arr = isString(this) ? strSplit(this, '') : this; + return arraySliceApply(arr, arguments); + } +}, splitString); + +var sortIgnoresNonFunctions = (function () { + try { + [1, 2].sort(null); + [1, 2].sort({}); + return true; + } catch (e) { /**/ } + return false; +}()); +var sortThrowsOnRegex = (function () { + // this is a problem in Firefox 4, in which `typeof /a/ === 'function'` + try { + [1, 2].sort(/a/); + return false; + } catch (e) { /**/ } + return true; +}()); +var sortIgnoresUndefined = (function () { + // applies in IE 8, for one. + try { + [1, 2].sort(undefined); + return true; + } catch (e) { /**/ } + return false; +}()); +defineProperties(ArrayPrototype, { + sort: function sort(compareFn) { + if (typeof compareFn === 'undefined') { + return arraySort(this); + } + if (!isCallable(compareFn)) { + throw new TypeError('Array.prototype.sort callback must be a function'); + } + return arraySort(this, compareFn); + } +}, sortIgnoresNonFunctions || !sortIgnoresUndefined || !sortThrowsOnRegex); + +// +// Object +// ====== +// + +// ES5 15.2.3.14 +// http://es5.github.com/#x15.2.3.14 + +// http://whattheheadsaid.com/2010/10/a-safer-object-keys-compatibility-implementation +var hasDontEnumBug = !({ 'toString': null }).propertyIsEnumerable('toString'); +var hasProtoEnumBug = function () {}.propertyIsEnumerable('prototype'); +var hasStringEnumBug = !owns('x', '0'); +var equalsConstructorPrototype = function (o) { + var ctor = o.constructor; + return ctor && ctor.prototype === o; +}; +var blacklistedKeys = { + $window: true, + $console: true, + $parent: true, + $self: true, + $frame: true, + $frames: true, + $frameElement: true, + $webkitIndexedDB: true, + $webkitStorageInfo: true, + $external: true +}; +var hasAutomationEqualityBug = (function () { + /* globals window */ + if (typeof window === 'undefined') { return false; } + for (var k in window) { + try { + if (!blacklistedKeys['$' + k] && owns(window, k) && window[k] !== null && typeof window[k] === 'object') { + equalsConstructorPrototype(window[k]); + } + } catch (e) { + return true; + } + } + return false; +}()); +var equalsConstructorPrototypeIfNotBuggy = function (object) { + if (typeof window === 'undefined' || !hasAutomationEqualityBug) { return equalsConstructorPrototype(object); } + try { + return equalsConstructorPrototype(object); + } catch (e) { + return false; + } +}; +var dontEnums = [ + 'toString', + 'toLocaleString', + 'valueOf', + 'hasOwnProperty', + 'isPrototypeOf', + 'propertyIsEnumerable', + 'constructor' +]; +var dontEnumsLength = dontEnums.length; + +// taken directly from https://github.com/ljharb/is-arguments/blob/master/index.js +// can be replaced with require('is-arguments') if we ever use a build process instead +var isStandardArguments = function isArguments(value) { + return toStr(value) === '[object Arguments]'; +}; +var isLegacyArguments = function isArguments(value) { + return value !== null && + typeof value === 'object' && + typeof value.length === 'number' && + value.length >= 0 && + !isArray(value) && + isCallable(value.callee); +}; +var isArguments = isStandardArguments(arguments) ? isStandardArguments : isLegacyArguments; + +defineProperties($Object, { + keys: function keys(object) { + var isFn = isCallable(object); + var isArgs = isArguments(object); + var isObject = object !== null && typeof object === 'object'; + var isStr = isObject && isString(object); + + if (!isObject && !isFn && !isArgs) { + throw new TypeError('Object.keys called on a non-object'); + } + + var theKeys = []; + var skipProto = hasProtoEnumBug && isFn; + if ((isStr && hasStringEnumBug) || isArgs) { + for (var i = 0; i < object.length; ++i) { + pushCall(theKeys, $String(i)); + } + } + + if (!isArgs) { + for (var name in object) { + if (!(skipProto && name === 'prototype') && owns(object, name)) { + pushCall(theKeys, $String(name)); + } + } + } + + if (hasDontEnumBug) { + var skipConstructor = equalsConstructorPrototypeIfNotBuggy(object); + for (var j = 0; j < dontEnumsLength; j++) { + var dontEnum = dontEnums[j]; + if (!(skipConstructor && dontEnum === 'constructor') && owns(object, dontEnum)) { + pushCall(theKeys, dontEnum); + } + } + } + return theKeys; + } +}); + +var keysWorksWithArguments = $Object.keys && (function () { + // Safari 5.0 bug + return $Object.keys(arguments).length === 2; +}(1, 2)); +var keysHasArgumentsLengthBug = $Object.keys && (function () { + var argKeys = $Object.keys(arguments); + return arguments.length !== 1 || argKeys.length !== 1 || argKeys[0] !== 1; +}(1)); +var originalKeys = $Object.keys; +defineProperties($Object, { + keys: function keys(object) { + if (isArguments(object)) { + return originalKeys(arraySlice(object)); + } else { + return originalKeys(object); + } + } +}, !keysWorksWithArguments || keysHasArgumentsLengthBug); + +// +// Date +// ==== +// + +var hasNegativeMonthYearBug = new Date(-3509827329600292).getUTCMonth() !== 0; +var aNegativeTestDate = new Date(-1509842289600292); +var aPositiveTestDate = new Date(1449662400000); +var hasToUTCStringFormatBug = aNegativeTestDate.toUTCString() !== 'Mon, 01 Jan -45875 11:59:59 GMT'; +var hasToDateStringFormatBug; +var hasToStringFormatBug; +var timeZoneOffset = aNegativeTestDate.getTimezoneOffset(); +if (timeZoneOffset < -720) { + hasToDateStringFormatBug = aNegativeTestDate.toDateString() !== 'Tue Jan 02 -45875'; + hasToStringFormatBug = !(/^Thu Dec 10 2015 \d\d:\d\d:\d\d GMT[-\+]\d\d\d\d(?: |$)/).test(aPositiveTestDate.toString()); +} else { + hasToDateStringFormatBug = aNegativeTestDate.toDateString() !== 'Mon Jan 01 -45875'; + hasToStringFormatBug = !(/^Wed Dec 09 2015 \d\d:\d\d:\d\d GMT[-\+]\d\d\d\d(?: |$)/).test(aPositiveTestDate.toString()); +} + +var originalGetFullYear = call.bind(Date.prototype.getFullYear); +var originalGetMonth = call.bind(Date.prototype.getMonth); +var originalGetDate = call.bind(Date.prototype.getDate); +var originalGetUTCFullYear = call.bind(Date.prototype.getUTCFullYear); +var originalGetUTCMonth = call.bind(Date.prototype.getUTCMonth); +var originalGetUTCDate = call.bind(Date.prototype.getUTCDate); +var originalGetUTCDay = call.bind(Date.prototype.getUTCDay); +var originalGetUTCHours = call.bind(Date.prototype.getUTCHours); +var originalGetUTCMinutes = call.bind(Date.prototype.getUTCMinutes); +var originalGetUTCSeconds = call.bind(Date.prototype.getUTCSeconds); +var originalGetUTCMilliseconds = call.bind(Date.prototype.getUTCMilliseconds); +var dayName = ['Sun', 'Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat']; +var monthName = ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec']; +var daysInMonth = function daysInMonth(month, year) { + return originalGetDate(new Date(year, month, 0)); +}; + +defineProperties(Date.prototype, { + getFullYear: function getFullYear() { + if (!this || !(this instanceof Date)) { + throw new TypeError('this is not a Date object.'); + } + var year = originalGetFullYear(this); + if (year < 0 && originalGetMonth(this) > 11) { + return year + 1; + } + return year; + }, + getMonth: function getMonth() { + if (!this || !(this instanceof Date)) { + throw new TypeError('this is not a Date object.'); + } + var year = originalGetFullYear(this); + var month = originalGetMonth(this); + if (year < 0 && month > 11) { + return 0; + } + return month; + }, + getDate: function getDate() { + if (!this || !(this instanceof Date)) { + throw new TypeError('this is not a Date object.'); + } + var year = originalGetFullYear(this); + var month = originalGetMonth(this); + var date = originalGetDate(this); + if (year < 0 && month > 11) { + if (month === 12) { + return date; + } + var days = daysInMonth(0, year + 1); + return (days - date) + 1; + } + return date; + }, + getUTCFullYear: function getUTCFullYear() { + if (!this || !(this instanceof Date)) { + throw new TypeError('this is not a Date object.'); + } + var year = originalGetUTCFullYear(this); + if (year < 0 && originalGetUTCMonth(this) > 11) { + return year + 1; + } + return year; + }, + getUTCMonth: function getUTCMonth() { + if (!this || !(this instanceof Date)) { + throw new TypeError('this is not a Date object.'); + } + var year = originalGetUTCFullYear(this); + var month = originalGetUTCMonth(this); + if (year < 0 && month > 11) { + return 0; + } + return month; + }, + getUTCDate: function getUTCDate() { + if (!this || !(this instanceof Date)) { + throw new TypeError('this is not a Date object.'); + } + var year = originalGetUTCFullYear(this); + var month = originalGetUTCMonth(this); + var date = originalGetUTCDate(this); + if (year < 0 && month > 11) { + if (month === 12) { + return date; + } + var days = daysInMonth(0, year + 1); + return (days - date) + 1; + } + return date; + } +}, hasNegativeMonthYearBug); + +defineProperties(Date.prototype, { + toUTCString: function toUTCString() { + if (!this || !(this instanceof Date)) { + throw new TypeError('this is not a Date object.'); + } + var day = originalGetUTCDay(this); + var date = originalGetUTCDate(this); + var month = originalGetUTCMonth(this); + var year = originalGetUTCFullYear(this); + var hour = originalGetUTCHours(this); + var minute = originalGetUTCMinutes(this); + var second = originalGetUTCSeconds(this); + return dayName[day] + ', ' + + (date < 10 ? '0' + date : date) + ' ' + + monthName[month] + ' ' + + year + ' ' + + (hour < 10 ? '0' + hour : hour) + ':' + + (minute < 10 ? '0' + minute : minute) + ':' + + (second < 10 ? '0' + second : second) + ' GMT'; + } +}, hasNegativeMonthYearBug || hasToUTCStringFormatBug); + +// Opera 12 has `,` +defineProperties(Date.prototype, { + toDateString: function toDateString() { + if (!this || !(this instanceof Date)) { + throw new TypeError('this is not a Date object.'); + } + var day = this.getDay(); + var date = this.getDate(); + var month = this.getMonth(); + var year = this.getFullYear(); + return dayName[day] + ' ' + + monthName[month] + ' ' + + (date < 10 ? '0' + date : date) + ' ' + + year; + } +}, hasNegativeMonthYearBug || hasToDateStringFormatBug); + +// can't use defineProperties here because of toString enumeration issue in IE <= 8 +if (hasNegativeMonthYearBug || hasToStringFormatBug) { + Date.prototype.toString = function toString() { + if (!this || !(this instanceof Date)) { + throw new TypeError('this is not a Date object.'); + } + var day = this.getDay(); + var date = this.getDate(); + var month = this.getMonth(); + var year = this.getFullYear(); + var hour = this.getHours(); + var minute = this.getMinutes(); + var second = this.getSeconds(); + var timezoneOffset = this.getTimezoneOffset(); + var hoursOffset = Math.floor(Math.abs(timezoneOffset) / 60); + var minutesOffset = Math.floor(Math.abs(timezoneOffset) % 60); + return dayName[day] + ' ' + + monthName[month] + ' ' + + (date < 10 ? '0' + date : date) + ' ' + + year + ' ' + + (hour < 10 ? '0' + hour : hour) + ':' + + (minute < 10 ? '0' + minute : minute) + ':' + + (second < 10 ? '0' + second : second) + ' GMT' + + (timezoneOffset > 0 ? '-' : '+') + + (hoursOffset < 10 ? '0' + hoursOffset : hoursOffset) + + (minutesOffset < 10 ? '0' + minutesOffset : minutesOffset); + }; + if (supportsDescriptors) { + $Object.defineProperty(Date.prototype, 'toString', { + configurable: true, + enumerable: false, + writable: true + }); + } +} + +// ES5 15.9.5.43 +// http://es5.github.com/#x15.9.5.43 +// This function returns a String value represent the instance in time +// represented by this Date object. The format of the String is the Date Time +// string format defined in 15.9.1.15. All fields are present in the String. +// The time zone is always UTC, denoted by the suffix Z. If the time value of +// this object is not a finite Number a RangeError exception is thrown. +var negativeDate = -62198755200000; +var negativeYearString = '-000001'; +var hasNegativeDateBug = Date.prototype.toISOString && new Date(negativeDate).toISOString().indexOf(negativeYearString) === -1; +var hasSafari51DateBug = Date.prototype.toISOString && new Date(-1).toISOString() !== '1969-12-31T23:59:59.999Z'; + +var getTime = call.bind(Date.prototype.getTime); + +defineProperties(Date.prototype, { + toISOString: function toISOString() { + if (!isFinite(this) || !isFinite(getTime(this))) { + // Adope Photoshop requires the second check. + throw new RangeError('Date.prototype.toISOString called on non-finite value.'); + } + + var year = originalGetUTCFullYear(this); + + var month = originalGetUTCMonth(this); + // see https://github.com/es-shims/es5-shim/issues/111 + year += Math.floor(month / 12); + month = (month % 12 + 12) % 12; + + // the date time string format is specified in 15.9.1.15. + var result = [month + 1, originalGetUTCDate(this), originalGetUTCHours(this), originalGetUTCMinutes(this), originalGetUTCSeconds(this)]; + year = ( + (year < 0 ? '-' : (year > 9999 ? '+' : '')) + + strSlice('00000' + Math.abs(year), (0 <= year && year <= 9999) ? -4 : -6) + ); + + for (var i = 0; i < result.length; ++i) { + // pad months, days, hours, minutes, and seconds to have two digits. + result[i] = strSlice('00' + result[i], -2); + } + // pad milliseconds to have three digits. + return ( + year + '-' + arraySlice(result, 0, 2).join('-') + + 'T' + arraySlice(result, 2).join(':') + '.' + + strSlice('000' + originalGetUTCMilliseconds(this), -3) + 'Z' + ); + } +}, hasNegativeDateBug || hasSafari51DateBug); + +// ES5 15.9.5.44 +// http://es5.github.com/#x15.9.5.44 +// This function provides a String representation of a Date object for use by +// JSON.stringify (15.12.3). +var dateToJSONIsSupported = (function () { + try { + return Date.prototype.toJSON && + new Date(NaN).toJSON() === null && + new Date(negativeDate).toJSON().indexOf(negativeYearString) !== -1 && + Date.prototype.toJSON.call({ // generic + toISOString: function () { return true; } + }); + } catch (e) { + return false; + } +}()); +if (!dateToJSONIsSupported) { + Date.prototype.toJSON = function toJSON(key) { + // When the toJSON method is called with argument key, the following + // steps are taken: + + // 1. Let O be the result of calling ToObject, giving it the this + // value as its argument. + // 2. Let tv be ES.ToPrimitive(O, hint Number). + var O = $Object(this); + var tv = ES.ToPrimitive(O); + // 3. If tv is a Number and is not finite, return null. + if (typeof tv === 'number' && !isFinite(tv)) { + return null; + } + // 4. Let toISO be the result of calling the [[Get]] internal method of + // O with argument "toISOString". + var toISO = O.toISOString; + // 5. If IsCallable(toISO) is false, throw a TypeError exception. + if (!isCallable(toISO)) { + throw new TypeError('toISOString property is not callable'); + } + // 6. Return the result of calling the [[Call]] internal method of + // toISO with O as the this value and an empty argument list. + return toISO.call(O); + + // NOTE 1 The argument is ignored. + + // NOTE 2 The toJSON function is intentionally generic; it does not + // require that its this value be a Date object. Therefore, it can be + // transferred to other kinds of objects for use as a method. However, + // it does require that any such object have a toISOString method. An + // object is free to use the argument key to filter its + // stringification. + }; +} + +// ES5 15.9.4.2 +// http://es5.github.com/#x15.9.4.2 +// based on work shared by Daniel Friesen (dantman) +// http://gist.github.com/303249 +var supportsExtendedYears = Date.parse('+033658-09-27T01:46:40.000Z') === 1e15; +var acceptsInvalidDates = !isNaN(Date.parse('2012-04-04T24:00:00.500Z')) || !isNaN(Date.parse('2012-11-31T23:59:59.000Z')) || !isNaN(Date.parse('2012-12-31T23:59:60.000Z')); +var doesNotParseY2KNewYear = isNaN(Date.parse('2000-01-01T00:00:00.000Z')); +if (doesNotParseY2KNewYear || acceptsInvalidDates || !supportsExtendedYears) { + // XXX global assignment won't work in embeddings that use + // an alternate object for the context. + /* global Date: true */ + /* eslint-disable no-undef */ + var maxSafeUnsigned32Bit = Math.pow(2, 31) - 1; + var hasSafariSignedIntBug = isActualNaN(new Date(1970, 0, 1, 0, 0, 0, maxSafeUnsigned32Bit + 1).getTime()); + /* eslint-disable no-implicit-globals */ + Date = (function (NativeDate) { + /* eslint-enable no-implicit-globals */ + /* eslint-enable no-undef */ + // Date.length === 7 + var DateShim = function Date(Y, M, D, h, m, s, ms) { + var length = arguments.length; + var date; + if (this instanceof NativeDate) { + var seconds = s; + var millis = ms; + if (hasSafariSignedIntBug && length >= 7 && ms > maxSafeUnsigned32Bit) { + // work around a Safari 8/9 bug where it treats the seconds as signed + var msToShift = Math.floor(ms / maxSafeUnsigned32Bit) * maxSafeUnsigned32Bit; + var sToShift = Math.floor(msToShift / 1e3); + seconds += sToShift; + millis -= sToShift * 1e3; + } + date = length === 1 && $String(Y) === Y ? // isString(Y) + // We explicitly pass it through parse: + new NativeDate(DateShim.parse(Y)) : + // We have to manually make calls depending on argument + // length here + length >= 7 ? new NativeDate(Y, M, D, h, m, seconds, millis) : + length >= 6 ? new NativeDate(Y, M, D, h, m, seconds) : + length >= 5 ? new NativeDate(Y, M, D, h, m) : + length >= 4 ? new NativeDate(Y, M, D, h) : + length >= 3 ? new NativeDate(Y, M, D) : + length >= 2 ? new NativeDate(Y, M) : + length >= 1 ? new NativeDate(Y instanceof NativeDate ? +Y : Y) : + new NativeDate(); + } else { + date = NativeDate.apply(this, arguments); + } + if (!isPrimitive(date)) { + // Prevent mixups with unfixed Date object + defineProperties(date, { constructor: DateShim }, true); + } + return date; + }; + + // 15.9.1.15 Date Time String Format. + var isoDateExpression = new RegExp('^' + + '(\\d{4}|[+-]\\d{6})' + // four-digit year capture or sign + + // 6-digit extended year + '(?:-(\\d{2})' + // optional month capture + '(?:-(\\d{2})' + // optional day capture + '(?:' + // capture hours:minutes:seconds.milliseconds + 'T(\\d{2})' + // hours capture + ':(\\d{2})' + // minutes capture + '(?:' + // optional :seconds.milliseconds + ':(\\d{2})' + // seconds capture + '(?:(\\.\\d{1,}))?' + // milliseconds capture + ')?' + + '(' + // capture UTC offset component + 'Z|' + // UTC capture + '(?:' + // offset specifier +/-hours:minutes + '([-+])' + // sign capture + '(\\d{2})' + // hours offset capture + ':(\\d{2})' + // minutes offset capture + ')' + + ')?)?)?)?' + + '$'); + + var months = [0, 31, 59, 90, 120, 151, 181, 212, 243, 273, 304, 334, 365]; + + var dayFromMonth = function dayFromMonth(year, month) { + var t = month > 1 ? 1 : 0; + return ( + months[month] + + Math.floor((year - 1969 + t) / 4) - + Math.floor((year - 1901 + t) / 100) + + Math.floor((year - 1601 + t) / 400) + + 365 * (year - 1970) + ); + }; + + var toUTC = function toUTC(t) { + var s = 0; + var ms = t; + if (hasSafariSignedIntBug && ms > maxSafeUnsigned32Bit) { + // work around a Safari 8/9 bug where it treats the seconds as signed + var msToShift = Math.floor(ms / maxSafeUnsigned32Bit) * maxSafeUnsigned32Bit; + var sToShift = Math.floor(msToShift / 1e3); + s += sToShift; + ms -= sToShift * 1e3; + } + return $Number(new NativeDate(1970, 0, 1, 0, 0, s, ms)); + }; + + // Copy any custom methods a 3rd party library may have added + for (var key in NativeDate) { + if (owns(NativeDate, key)) { + DateShim[key] = NativeDate[key]; + } + } + + // Copy "native" methods explicitly; they may be non-enumerable + defineProperties(DateShim, { + now: NativeDate.now, + UTC: NativeDate.UTC + }, true); + DateShim.prototype = NativeDate.prototype; + defineProperties(DateShim.prototype, { + constructor: DateShim + }, true); + + // Upgrade Date.parse to handle simplified ISO 8601 strings + var parseShim = function parse(string) { + var match = isoDateExpression.exec(string); + if (match) { + // parse months, days, hours, minutes, seconds, and milliseconds + // provide default values if necessary + // parse the UTC offset component + var year = $Number(match[1]), + month = $Number(match[2] || 1) - 1, + day = $Number(match[3] || 1) - 1, + hour = $Number(match[4] || 0), + minute = $Number(match[5] || 0), + second = $Number(match[6] || 0), + millisecond = Math.floor($Number(match[7] || 0) * 1000), + // When time zone is missed, local offset should be used + // (ES 5.1 bug) + // see https://bugs.ecmascript.org/show_bug.cgi?id=112 + isLocalTime = Boolean(match[4] && !match[8]), + signOffset = match[9] === '-' ? 1 : -1, + hourOffset = $Number(match[10] || 0), + minuteOffset = $Number(match[11] || 0), + result; + var hasMinutesOrSecondsOrMilliseconds = minute > 0 || second > 0 || millisecond > 0; + if ( + hour < (hasMinutesOrSecondsOrMilliseconds ? 24 : 25) && + minute < 60 && second < 60 && millisecond < 1000 && + month > -1 && month < 12 && hourOffset < 24 && + minuteOffset < 60 && // detect invalid offsets + day > -1 && + day < (dayFromMonth(year, month + 1) - dayFromMonth(year, month)) + ) { + result = ( + (dayFromMonth(year, month) + day) * 24 + + hour + + hourOffset * signOffset + ) * 60; + result = ( + (result + minute + minuteOffset * signOffset) * 60 + + second + ) * 1000 + millisecond; + if (isLocalTime) { + result = toUTC(result); + } + if (-8.64e15 <= result && result <= 8.64e15) { + return result; + } + } + return NaN; + } + return NativeDate.parse.apply(this, arguments); + }; + defineProperties(DateShim, { parse: parseShim }); + + return DateShim; + }(Date)); + /* global Date: false */ +} + +// ES5 15.9.4.4 +// http://es5.github.com/#x15.9.4.4 +if (!Date.now) { + Date.now = function now() { + return new Date().getTime(); + }; +} + +// +// Number +// ====== +// + +// ES5.1 15.7.4.5 +// http://es5.github.com/#x15.7.4.5 +var hasToFixedBugs = NumberPrototype.toFixed && ( + (0.00008).toFixed(3) !== '0.000' || + (0.9).toFixed(0) !== '1' || + (1.255).toFixed(2) !== '1.25' || + (1000000000000000128).toFixed(0) !== '1000000000000000128' +); + +var toFixedHelpers = { + base: 1e7, + size: 6, + data: [0, 0, 0, 0, 0, 0], + multiply: function multiply(n, c) { + var i = -1; + var c2 = c; + while (++i < toFixedHelpers.size) { + c2 += n * toFixedHelpers.data[i]; + toFixedHelpers.data[i] = c2 % toFixedHelpers.base; + c2 = Math.floor(c2 / toFixedHelpers.base); + } + }, + divide: function divide(n) { + var i = toFixedHelpers.size; + var c = 0; + while (--i >= 0) { + c += toFixedHelpers.data[i]; + toFixedHelpers.data[i] = Math.floor(c / n); + c = (c % n) * toFixedHelpers.base; + } + }, + numToString: function numToString() { + var i = toFixedHelpers.size; + var s = ''; + while (--i >= 0) { + if (s !== '' || i === 0 || toFixedHelpers.data[i] !== 0) { + var t = $String(toFixedHelpers.data[i]); + if (s === '') { + s = t; + } else { + s += strSlice('0000000', 0, 7 - t.length) + t; + } + } + } + return s; + }, + pow: function pow(x, n, acc) { + return (n === 0 ? acc : (n % 2 === 1 ? pow(x, n - 1, acc * x) : pow(x * x, n / 2, acc))); + }, + log: function log(x) { + var n = 0; + var x2 = x; + while (x2 >= 4096) { + n += 12; + x2 /= 4096; + } + while (x2 >= 2) { + n += 1; + x2 /= 2; + } + return n; + } +}; + +var toFixedShim = function toFixed(fractionDigits) { + var f, x, s, m, e, z, j, k; + + // Test for NaN and round fractionDigits down + f = $Number(fractionDigits); + f = isActualNaN(f) ? 0 : Math.floor(f); + + if (f < 0 || f > 20) { + throw new RangeError('Number.toFixed called with invalid number of decimals'); + } + + x = $Number(this); + + if (isActualNaN(x)) { + return 'NaN'; + } + + // If it is too big or small, return the string value of the number + if (x <= -1e21 || x >= 1e21) { + return $String(x); + } + + s = ''; + + if (x < 0) { + s = '-'; + x = -x; + } + + m = '0'; + + if (x > 1e-21) { + // 1e-21 < x < 1e21 + // -70 < log2(x) < 70 + e = toFixedHelpers.log(x * toFixedHelpers.pow(2, 69, 1)) - 69; + z = (e < 0 ? x * toFixedHelpers.pow(2, -e, 1) : x / toFixedHelpers.pow(2, e, 1)); + z *= 0x10000000000000; // Math.pow(2, 52); + e = 52 - e; + + // -18 < e < 122 + // x = z / 2 ^ e + if (e > 0) { + toFixedHelpers.multiply(0, z); + j = f; + + while (j >= 7) { + toFixedHelpers.multiply(1e7, 0); + j -= 7; + } + + toFixedHelpers.multiply(toFixedHelpers.pow(10, j, 1), 0); + j = e - 1; + + while (j >= 23) { + toFixedHelpers.divide(1 << 23); + j -= 23; + } + + toFixedHelpers.divide(1 << j); + toFixedHelpers.multiply(1, 1); + toFixedHelpers.divide(2); + m = toFixedHelpers.numToString(); + } else { + toFixedHelpers.multiply(0, z); + toFixedHelpers.multiply(1 << (-e), 0); + m = toFixedHelpers.numToString() + strSlice('0.00000000000000000000', 2, 2 + f); + } + } + + if (f > 0) { + k = m.length; + + if (k <= f) { + m = s + strSlice('0.0000000000000000000', 0, f - k + 2) + m; + } else { + m = s + strSlice(m, 0, k - f) + '.' + strSlice(m, k - f); + } + } else { + m = s + m; + } + + return m; +}; +defineProperties(NumberPrototype, { toFixed: toFixedShim }, hasToFixedBugs); + +var hasToPrecisionUndefinedBug = (function () { + try { + return 1.0.toPrecision(undefined) === '1'; + } catch (e) { + return true; + } +}()); +var originalToPrecision = NumberPrototype.toPrecision; +defineProperties(NumberPrototype, { + toPrecision: function toPrecision(precision) { + return typeof precision === 'undefined' ? originalToPrecision.call(this) : originalToPrecision.call(this, precision); + } +}, hasToPrecisionUndefinedBug); + +// +// String +// ====== +// + +// ES5 15.5.4.14 +// http://es5.github.com/#x15.5.4.14 + +// [bugfix, IE lt 9, firefox 4, Konqueror, Opera, obscure browsers] +// Many browsers do not split properly with regular expressions or they +// do not perform the split correctly under obscure conditions. +// See http://blog.stevenlevithan.com/archives/cross-browser-split +// I've tested in many browsers and this seems to cover the deviant ones: +// 'ab'.split(/(?:ab)*/) should be ["", ""], not [""] +// '.'.split(/(.?)(.?)/) should be ["", ".", "", ""], not ["", ""] +// 'tesst'.split(/(s)*/) should be ["t", undefined, "e", "s", "t"], not +// [undefined, "t", undefined, "e", ...] +// ''.split(/.?/) should be [], not [""] +// '.'.split(/()()/) should be ["."], not ["", "", "."] + +if ( + 'ab'.split(/(?:ab)*/).length !== 2 || + '.'.split(/(.?)(.?)/).length !== 4 || + 'tesst'.split(/(s)*/)[1] === 't' || + 'test'.split(/(?:)/, -1).length !== 4 || + ''.split(/.?/).length || + '.'.split(/()()/).length > 1 +) { + (function () { + var compliantExecNpcg = typeof (/()??/).exec('')[1] === 'undefined'; // NPCG: nonparticipating capturing group + var maxSafe32BitInt = Math.pow(2, 32) - 1; + + StringPrototype.split = function (separator, limit) { + var string = String(this); + if (typeof separator === 'undefined' && limit === 0) { + return []; + } + + // If `separator` is not a regex, use native split + if (!isRegex(separator)) { + return strSplit(this, separator, limit); + } + + var output = []; + var flags = (separator.ignoreCase ? 'i' : '') + + (separator.multiline ? 'm' : '') + + (separator.unicode ? 'u' : '') + // in ES6 + (separator.sticky ? 'y' : ''), // Firefox 3+ and ES6 + lastLastIndex = 0, + // Make `global` and avoid `lastIndex` issues by working with a copy + separator2, match, lastIndex, lastLength; + var separatorCopy = new RegExp(separator.source, flags + 'g'); + if (!compliantExecNpcg) { + // Doesn't need flags gy, but they don't hurt + separator2 = new RegExp('^' + separatorCopy.source + '$(?!\\s)', flags); + } + /* Values for `limit`, per the spec: + * If undefined: 4294967295 // maxSafe32BitInt + * If 0, Infinity, or NaN: 0 + * If positive number: limit = Math.floor(limit); if (limit > 4294967295) limit -= 4294967296; + * If negative number: 4294967296 - Math.floor(Math.abs(limit)) + * If other: Type-convert, then use the above rules + */ + var splitLimit = typeof limit === 'undefined' ? maxSafe32BitInt : ES.ToUint32(limit); + match = separatorCopy.exec(string); + while (match) { + // `separatorCopy.lastIndex` is not reliable cross-browser + lastIndex = match.index + match[0].length; + if (lastIndex > lastLastIndex) { + pushCall(output, strSlice(string, lastLastIndex, match.index)); + // Fix browsers whose `exec` methods don't consistently return `undefined` for + // nonparticipating capturing groups + if (!compliantExecNpcg && match.length > 1) { + /* eslint-disable no-loop-func */ + match[0].replace(separator2, function () { + for (var i = 1; i < arguments.length - 2; i++) { + if (typeof arguments[i] === 'undefined') { + match[i] = void 0; + } + } + }); + /* eslint-enable no-loop-func */ + } + if (match.length > 1 && match.index < string.length) { + array_push.apply(output, arraySlice(match, 1)); + } + lastLength = match[0].length; + lastLastIndex = lastIndex; + if (output.length >= splitLimit) { + break; + } + } + if (separatorCopy.lastIndex === match.index) { + separatorCopy.lastIndex++; // Avoid an infinite loop + } + match = separatorCopy.exec(string); + } + if (lastLastIndex === string.length) { + if (lastLength || !separatorCopy.test('')) { + pushCall(output, ''); + } + } else { + pushCall(output, strSlice(string, lastLastIndex)); + } + return output.length > splitLimit ? arraySlice(output, 0, splitLimit) : output; + }; + }()); + +// [bugfix, chrome] +// If separator is undefined, then the result array contains just one String, +// which is the this value (converted to a String). If limit is not undefined, +// then the output array is truncated so that it contains no more than limit +// elements. +// "0".split(undefined, 0) -> [] +} else if ('0'.split(void 0, 0).length) { + StringPrototype.split = function split(separator, limit) { + if (typeof separator === 'undefined' && limit === 0) { return []; } + return strSplit(this, separator, limit); + }; +} + +var str_replace = StringPrototype.replace; +var replaceReportsGroupsCorrectly = (function () { + var groups = []; + 'x'.replace(/x(.)?/g, function (match, group) { + pushCall(groups, group); + }); + return groups.length === 1 && typeof groups[0] === 'undefined'; +}()); + +if (!replaceReportsGroupsCorrectly) { + StringPrototype.replace = function replace(searchValue, replaceValue) { + var isFn = isCallable(replaceValue); + var hasCapturingGroups = isRegex(searchValue) && (/\)[*?]/).test(searchValue.source); + if (!isFn || !hasCapturingGroups) { + return str_replace.call(this, searchValue, replaceValue); + } else { + var wrappedReplaceValue = function (match) { + var length = arguments.length; + var originalLastIndex = searchValue.lastIndex; + searchValue.lastIndex = 0; + var args = searchValue.exec(match) || []; + searchValue.lastIndex = originalLastIndex; + pushCall(args, arguments[length - 2], arguments[length - 1]); + return replaceValue.apply(this, args); + }; + return str_replace.call(this, searchValue, wrappedReplaceValue); + } + }; +} + +// ECMA-262, 3rd B.2.3 +// Not an ECMAScript standard, although ECMAScript 3rd Edition has a +// non-normative section suggesting uniform semantics and it should be +// normalized across all browsers +// [bugfix, IE lt 9] IE < 9 substr() with negative value not working in IE +var string_substr = StringPrototype.substr; +var hasNegativeSubstrBug = ''.substr && '0b'.substr(-1) !== 'b'; +defineProperties(StringPrototype, { + substr: function substr(start, length) { + var normalizedStart = start; + if (start < 0) { + normalizedStart = max(this.length + start, 0); + } + return string_substr.call(this, normalizedStart, length); + } +}, hasNegativeSubstrBug); + +// ES5 15.5.4.20 +// whitespace from: http://es5.github.io/#x15.5.4.20 +var ws = '\x09\x0A\x0B\x0C\x0D\x20\xA0\u1680\u180E\u2000\u2001\u2002\u2003' + + '\u2004\u2005\u2006\u2007\u2008\u2009\u200A\u202F\u205F\u3000\u2028' + + '\u2029\uFEFF'; +var zeroWidth = '\u200b'; +var wsRegexChars = '[' + ws + ']'; +var trimBeginRegexp = new RegExp('^' + wsRegexChars + wsRegexChars + '*'); +var trimEndRegexp = new RegExp(wsRegexChars + wsRegexChars + '*$'); +var hasTrimWhitespaceBug = StringPrototype.trim && (ws.trim() || !zeroWidth.trim()); +defineProperties(StringPrototype, { + // http://blog.stevenlevithan.com/archives/faster-trim-javascript + // http://perfectionkills.com/whitespace-deviations/ + trim: function trim() { + if (typeof this === 'undefined' || this === null) { + throw new TypeError("can't convert " + this + ' to object'); + } + return $String(this).replace(trimBeginRegexp, '').replace(trimEndRegexp, ''); + } +}, hasTrimWhitespaceBug); +var trim = call.bind(String.prototype.trim); + +var hasLastIndexBug = StringPrototype.lastIndexOf && 'abcあい'.lastIndexOf('あい', 2) !== -1; +defineProperties(StringPrototype, { + lastIndexOf: function lastIndexOf(searchString) { + if (typeof this === 'undefined' || this === null) { + throw new TypeError("can't convert " + this + ' to object'); + } + var S = $String(this); + var searchStr = $String(searchString); + var numPos = arguments.length > 1 ? $Number(arguments[1]) : NaN; + var pos = isActualNaN(numPos) ? Infinity : ES.ToInteger(numPos); + var start = min(max(pos, 0), S.length); + var searchLen = searchStr.length; + var k = start + searchLen; + while (k > 0) { + k = max(0, k - searchLen); + var index = strIndexOf(strSlice(S, k, start + searchLen), searchStr); + if (index !== -1) { + return k + index; + } + } + return -1; + } +}, hasLastIndexBug); + +var originalLastIndexOf = StringPrototype.lastIndexOf; +defineProperties(StringPrototype, { + lastIndexOf: function lastIndexOf(searchString) { + return originalLastIndexOf.apply(this, arguments); + } +}, StringPrototype.lastIndexOf.length !== 1); + +// ES-5 15.1.2.2 +/* eslint-disable radix */ +if (parseInt(ws + '08') !== 8 || parseInt(ws + '0x16') !== 22) { +/* eslint-enable radix */ + /* global parseInt: true */ + parseInt = (function (origParseInt) { + var hexRegex = /^[\-+]?0[xX]/; + return function parseInt(str, radix) { + var string = trim(str); + var defaultedRadix = $Number(radix) || (hexRegex.test(string) ? 16 : 10); + return origParseInt(string, defaultedRadix); + }; + }(parseInt)); +} + +// https://es5.github.io/#x15.1.2.3 +if (1 / parseFloat('-0') !== -Infinity) { + /* global parseFloat: true */ + parseFloat = (function (origParseFloat) { + return function parseFloat(string) { + var inputString = trim(string); + var result = origParseFloat(inputString); + return result === 0 && strSlice(inputString, 0, 1) === '-' ? -0 : result; + }; + }(parseFloat)); +} + +if (String(new RangeError('test')) !== 'RangeError: test') { + var errorToStringShim = function toString() { + if (typeof this === 'undefined' || this === null) { + throw new TypeError("can't convert " + this + ' to object'); + } + var name = this.name; + if (typeof name === 'undefined') { + name = 'Error'; + } else if (typeof name !== 'string') { + name = $String(name); + } + var msg = this.message; + if (typeof msg === 'undefined') { + msg = ''; + } else if (typeof msg !== 'string') { + msg = $String(msg); + } + if (!name) { + return msg; + } + if (!msg) { + return name; + } + return name + ': ' + msg; + }; + // can't use defineProperties here because of toString enumeration issue in IE <= 8 + Error.prototype.toString = errorToStringShim; +} + +if (supportsDescriptors) { + var ensureNonEnumerable = function (obj, prop) { + if (isEnum(obj, prop)) { + var desc = Object.getOwnPropertyDescriptor(obj, prop); + desc.enumerable = false; + Object.defineProperty(obj, prop, desc); + } + }; + ensureNonEnumerable(Error.prototype, 'message'); + if (Error.prototype.message !== '') { + Error.prototype.message = ''; + } + ensureNonEnumerable(Error.prototype, 'name'); +} + +if (String(/a/mig) !== '/a/gim') { + var regexToString = function toString() { + var str = '/' + this.source + '/'; + if (this.global) { + str += 'g'; + } + if (this.ignoreCase) { + str += 'i'; + } + if (this.multiline) { + str += 'm'; + } + return str; + }; + // can't use defineProperties here because of toString enumeration issue in IE <= 8 + RegExp.prototype.toString = regexToString; +} + +})); + +/*! + * https://github.com/es-shims/es5-shim + * @license es5-shim Copyright 2009-2015 by contributors, MIT License + * see https://github.com/es-shims/es5-shim/blob/master/LICENSE + */ + +// vim: ts=4 sts=4 sw=4 expandtab + +// Add semicolon to prevent IIFE from being passed as argument to concatenated code. +; + +// UMD (Universal Module Definition) +// see https://github.com/umdjs/umd/blob/master/templates/returnExports.js +(function (root, factory) { + 'use strict'; + + /* global define, exports, module */ + if (typeof define === 'function' && define.amd) { + // AMD. Register as an anonymous module. + define(factory); + } else if (typeof exports === 'object') { + // Node. Does not work with strict CommonJS, but + // only CommonJS-like enviroments that support module.exports, + // like Node. + module.exports = factory(); + } else { + // Browser globals (root is window) + root.returnExports = factory(); + } +}(this, function () { + +var call = Function.call; +var prototypeOfObject = Object.prototype; +var owns = call.bind(prototypeOfObject.hasOwnProperty); +var isEnumerable = call.bind(prototypeOfObject.propertyIsEnumerable); +var toStr = call.bind(prototypeOfObject.toString); + +// If JS engine supports accessors creating shortcuts. +var defineGetter; +var defineSetter; +var lookupGetter; +var lookupSetter; +var supportsAccessors = owns(prototypeOfObject, '__defineGetter__'); +if (supportsAccessors) { + /* eslint-disable no-underscore-dangle */ + defineGetter = call.bind(prototypeOfObject.__defineGetter__); + defineSetter = call.bind(prototypeOfObject.__defineSetter__); + lookupGetter = call.bind(prototypeOfObject.__lookupGetter__); + lookupSetter = call.bind(prototypeOfObject.__lookupSetter__); + /* eslint-enable no-underscore-dangle */ +} + +// ES5 15.2.3.2 +// http://es5.github.com/#x15.2.3.2 +if (!Object.getPrototypeOf) { + // https://github.com/es-shims/es5-shim/issues#issue/2 + // http://ejohn.org/blog/objectgetprototypeof/ + // recommended by fschaefer on github + // + // sure, and webreflection says ^_^ + // ... this will nerever possibly return null + // ... Opera Mini breaks here with infinite loops + Object.getPrototypeOf = function getPrototypeOf(object) { + /* eslint-disable no-proto */ + var proto = object.__proto__; + /* eslint-enable no-proto */ + if (proto || proto === null) { + return proto; + } else if (toStr(object.constructor) === '[object Function]') { + return object.constructor.prototype; + } else if (object instanceof Object) { + return prototypeOfObject; + } else { + // Correctly return null for Objects created with `Object.create(null)` + // (shammed or native) or `{ __proto__: null}`. Also returns null for + // cross-realm objects on browsers that lack `__proto__` support (like + // IE <11), but that's the best we can do. + return null; + } + }; +} + +// ES5 15.2.3.3 +// http://es5.github.com/#x15.2.3.3 + +var doesGetOwnPropertyDescriptorWork = function doesGetOwnPropertyDescriptorWork(object) { + try { + object.sentinel = 0; + return Object.getOwnPropertyDescriptor(object, 'sentinel').value === 0; + } catch (exception) { + return false; + } +}; + +// check whether getOwnPropertyDescriptor works if it's given. Otherwise, shim partially. +if (Object.defineProperty) { + var getOwnPropertyDescriptorWorksOnObject = doesGetOwnPropertyDescriptorWork({}); + var getOwnPropertyDescriptorWorksOnDom = typeof document === 'undefined' || + doesGetOwnPropertyDescriptorWork(document.createElement('div')); + if (!getOwnPropertyDescriptorWorksOnDom || !getOwnPropertyDescriptorWorksOnObject) { + var getOwnPropertyDescriptorFallback = Object.getOwnPropertyDescriptor; + } +} + +if (!Object.getOwnPropertyDescriptor || getOwnPropertyDescriptorFallback) { + var ERR_NON_OBJECT = 'Object.getOwnPropertyDescriptor called on a non-object: '; + + /* eslint-disable no-proto */ + Object.getOwnPropertyDescriptor = function getOwnPropertyDescriptor(object, property) { + if ((typeof object !== 'object' && typeof object !== 'function') || object === null) { + throw new TypeError(ERR_NON_OBJECT + object); + } + + // make a valiant attempt to use the real getOwnPropertyDescriptor + // for I8's DOM elements. + if (getOwnPropertyDescriptorFallback) { + try { + return getOwnPropertyDescriptorFallback.call(Object, object, property); + } catch (exception) { + // try the shim if the real one doesn't work + } + } + + var descriptor; + + // If object does not owns property return undefined immediately. + if (!owns(object, property)) { + return descriptor; + } + + // If object has a property then it's for sure `configurable`, and + // probably `enumerable`. Detect enumerability though. + descriptor = { + enumerable: isEnumerable(object, property), + configurable: true + }; + + // If JS engine supports accessor properties then property may be a + // getter or setter. + if (supportsAccessors) { + // Unfortunately `__lookupGetter__` will return a getter even + // if object has own non getter property along with a same named + // inherited getter. To avoid misbehavior we temporary remove + // `__proto__` so that `__lookupGetter__` will return getter only + // if it's owned by an object. + var prototype = object.__proto__; + var notPrototypeOfObject = object !== prototypeOfObject; + // avoid recursion problem, breaking in Opera Mini when + // Object.getOwnPropertyDescriptor(Object.prototype, 'toString') + // or any other Object.prototype accessor + if (notPrototypeOfObject) { + object.__proto__ = prototypeOfObject; + } + + var getter = lookupGetter(object, property); + var setter = lookupSetter(object, property); + + if (notPrototypeOfObject) { + // Once we have getter and setter we can put values back. + object.__proto__ = prototype; + } + + if (getter || setter) { + if (getter) { + descriptor.get = getter; + } + if (setter) { + descriptor.set = setter; + } + // If it was accessor property we're done and return here + // in order to avoid adding `value` to the descriptor. + return descriptor; + } + } + + // If we got this far we know that object has an own property that is + // not an accessor so we set it as a value and return descriptor. + descriptor.value = object[property]; + descriptor.writable = true; + return descriptor; + }; + /* eslint-enable no-proto */ +} + +// ES5 15.2.3.4 +// http://es5.github.com/#x15.2.3.4 +if (!Object.getOwnPropertyNames) { + Object.getOwnPropertyNames = function getOwnPropertyNames(object) { + return Object.keys(object); + }; +} + +// ES5 15.2.3.5 +// http://es5.github.com/#x15.2.3.5 +if (!Object.create) { + + // Contributed by Brandon Benvie, October, 2012 + var createEmpty; + var supportsProto = !({ __proto__: null } instanceof Object); + // the following produces false positives + // in Opera Mini => not a reliable check + // Object.prototype.__proto__ === null + + // Check for document.domain and active x support + // No need to use active x approach when document.domain is not set + // see https://github.com/es-shims/es5-shim/issues/150 + // variation of https://github.com/kitcambridge/es5-shim/commit/4f738ac066346 + /* global ActiveXObject */ + var shouldUseActiveX = function shouldUseActiveX() { + // return early if document.domain not set + if (!document.domain) { + return false; + } + + try { + return !!new ActiveXObject('htmlfile'); + } catch (exception) { + return false; + } + }; + + // This supports IE8 when document.domain is used + // see https://github.com/es-shims/es5-shim/issues/150 + // variation of https://github.com/kitcambridge/es5-shim/commit/4f738ac066346 + var getEmptyViaActiveX = function getEmptyViaActiveX() { + var empty; + var xDoc; + + xDoc = new ActiveXObject('htmlfile'); + + xDoc.write('"),t.close(),e=t.parentWindow.Object.prototype,t=null,e},m=function(){var e,t=document.createElement("iframe"),n=document.body||document.documentElement;return t.style.display="none",n.appendChild(t),t.src="javascript:",e=t.contentWindow.Object.prototype,n.removeChild(t),t=null,e};y=g||"undefined"==typeof document?function(){return{__proto__:null}}:function(){var e=v()?b():m();delete e.constructor,delete e.hasOwnProperty,delete e.propertyIsEnumerable,delete e.isPrototypeOf,delete e.toLocaleString,delete e.toString,delete e.valueOf;var t=function(){};return t.prototype=e,y=function(){return new t},new t},Object.create=function(e,t){var n,r=function(){};if(null===e)n=y();else{if("object"!=typeof e&&"function"!=typeof e)throw new TypeError("Object prototype may only be an Object or null");r.prototype=e,n=new r,n.__proto__=e}return void 0!==t&&Object.defineProperties(n,t),n}}var w=function(e){try{return Object.defineProperty(e,"sentinel",{}),"sentinel"in e}catch(t){return!1}};if(Object.defineProperty){var O=w({}),T="undefined"==typeof document||w(document.createElement("div"));if(!O||!T)var j=Object.defineProperty,x=Object.defineProperties}if(!Object.defineProperty||j){var E="Property description must be an object: ",S="Object.defineProperty called on non-object: ",D="getters & setters can not be defined on this javascript engine";Object.defineProperty=function(o,a,c){if("object"!=typeof o&&"function"!=typeof o||null===o)throw new TypeError(S+o);if("object"!=typeof c&&"function"!=typeof c||null===c)throw new TypeError(E+c);if(j)try{return j.call(Object,o,a,c)}catch(s){}if("value"in c)if(u&&(n(o,a)||r(o,a))){var l=o.__proto__;o.__proto__=i,delete o[a],o[a]=c.value,o.__proto__=l}else o[a]=c.value;else{if(!u&&("get"in c||"set"in c))throw new TypeError(D);"get"in c&&e(o,a,c.get),"set"in c&&t(o,a,c.set)}return o}}Object.defineProperties&&!x||(Object.defineProperties=function(e,t){if(x)try{return x.call(Object,e,t)}catch(n){}return Object.keys(t).forEach(function(n){"__proto__"!==n&&Object.defineProperty(e,n,t[n])}),e}),Object.seal||(Object.seal=function(e){if(Object(e)!==e)throw new TypeError("Object.seal can only be called on Objects.");return e}),Object.freeze||(Object.freeze=function(e){if(Object(e)!==e)throw new TypeError("Object.freeze can only be called on Objects.");return e});try{Object.freeze(function(){})}catch(_){Object.freeze=function(e){return function(t){return"function"==typeof t?t:e(t)}}(Object.freeze)}Object.preventExtensions||(Object.preventExtensions=function(e){if(Object(e)!==e)throw new TypeError("Object.preventExtensions can only be called on Objects.");return e}),Object.isSealed||(Object.isSealed=function(e){if(Object(e)!==e)throw new TypeError("Object.isSealed can only be called on Objects.");return!1}),Object.isFrozen||(Object.isFrozen=function(e){if(Object(e)!==e)throw new TypeError("Object.isFrozen can only be called on Objects.");return!1}),Object.isExtensible||(Object.isExtensible=function(e){if(Object(e)!==e)throw new TypeError("Object.isExtensible can only be called on Objects.");for(var t="";a(e,t);)t+="?";e[t]=!0;var n=a(e,t);return delete e[t],n})}),function(e){"use strict";e.console=e.console||{};for(var t,n,r=e.console,o={},i=function(){},a="memory".split(","),c="assert,clear,count,debug,dir,dirxml,error,exception,group,groupCollapsed,groupEnd,info,log,markTimeline,profile,profiles,profileEnd,show,table,time,timeEnd,timeline,timelineEnd,timeStamp,trace,warn".split(",");t=a.pop();)r[t]||(r[t]=o);for(;n=c.pop();)"function"!=typeof r[n]&&(r[n]=i)}("undefined"==typeof window?this:window),!window.addEventListener&&function(e,t,n,r,o,i,a){e[r]=t[r]=n[r]=function(e,t){var n=this;a.unshift([n,e,t,function(e){e.currentTarget=n,e.preventDefault=function(){e.returnValue=!1},e.stopPropagation=function(){e.cancelBubble=!0},e.target=e.srcElement||n,t.call(n,e)}]),this.attachEvent("on"+e,a[0][3])},e[o]=t[o]=n[o]=function(e,t){for(var n,r=0;n=a[r];++r)if(n[0]==this&&n[1]==e&&n[2]==t)return this.detachEvent("on"+e,a.splice(r,1)[0][3])},e[i]=t[i]=n[i]=function(e){return this.fireEvent("on"+e.type,e)}}(Window.prototype,HTMLDocument.prototype,Element.prototype,"addEventListener","removeEventListener","dispatchEvent",[]),function(e,t){"use strict";var n=function(){var e=document.createElement("div");return e.style.cssText="font-size: 1rem;",/rem/.test(e.style.fontSize)},r=function(){for(var e=document.getElementsByTagName("link"),t=[],n=0;n0?(b=[],v=[],d=[],o()):c()}},a=function(e,t){for(var n,r=f(e).replace(/\/\*[\s\S]*?\*\//g,""),o=/[\w\d\s\-\/\\\[\]:,.'"*()<>+~%#^$_=|@]+\{[\w\d\s\-\/\\%#:!;,.'"*()]+\d*\.?\d+rem[\w\d\s\-\/\\%#:!;,.'"*()]*\}/g,i=r.match(o),a=/\d*\.?\d+rem/g,c=r.match(a),s=/(.*\/)/,u=s.exec(t)[0],l=/@import (?:url\()?['"]?([^'\)"]*)['"]?\)?[^;]*/gm;null!==(n=l.exec(e));)0===n[1].indexOf("/")?d.push(n[1]):d.push(u+n[1]);null!==i&&0!==i.length&&(y=y.concat(i),g=g.concat(c))},c=function(){for(var e=/[\w\d\s\-\/\\%#:,.'"*()]+\d*\.?\d+rem[\w\d\s\-\/\\%#:!,.'"*()]*[;}]/g,t=0;t #mq-test-1 { width: 42px; }',n.insertBefore(o,r),t=42===i.offsetWidth,n.removeChild(o),{matches:t,media:e}}}(e.document)}(this),function(e){"use strict";function t(){O(!0)}var n={};e.respond=n,n.update=function(){};var r=[],o=function(){var t=!1;try{t=new e.XMLHttpRequest}catch(n){t=new e.ActiveXObject("Microsoft.XMLHTTP")}return function(){return t; +}}(),i=function(e,t){var n=o();n&&(n.open("GET",e,!0),n.onreadystatechange=function(){4!==n.readyState||200!==n.status&&304!==n.status||t(n.responseText)},4!==n.readyState&&n.send(null))},a=function(e){return e.replace(n.regex.minmaxwh,"").match(n.regex.other)};if(n.ajax=i,n.queue=r,n.unsupportedmq=a,n.regex={media:/@media[^\{]+\{([^\{\}]*\{[^\}\{]*\})+/gi,keyframes:/@(?:\-(?:o|moz|webkit)\-)?keyframes[^\{]+\{(?:[^\{\}]*\{[^\}\{]*\})+[^\}]*\}/gi,comments:/\/\*[^*]*\*+([^\/][^*]*\*+)*\//gi,urls:/(url\()['"]?([^\/\)'"][^:\)'"]+)['"]?(\))/g,findStyles:/@media *([^\{]+)\{([\S\s]+?)$/,only:/(only\s+)?([a-zA-Z]+)\s?/,minw:/\(\s*min\-width\s*:\s*(\s*[0-9\.]+)(px|em)\s*\)/,maxw:/\(\s*max\-width\s*:\s*(\s*[0-9\.]+)(px|em)\s*\)/,minmaxwh:/\(\s*m(in|ax)\-(height|width)\s*:\s*(\s*[0-9\.]+)(px|em)\s*\)/gi,other:/\([^\)]*\)/g},n.mediaQueriesSupported=e.matchMedia&&null!==e.matchMedia("only all")&&e.matchMedia("only all").matches,!n.mediaQueriesSupported){var c,s,u,l=e.document,f=l.documentElement,p=[],h=[],d=[],y={},g=30,v=l.getElementsByTagName("head")[0]||f,b=l.getElementsByTagName("base")[0],m=v.getElementsByTagName("link"),w=function(){var e,t=l.createElement("div"),n=l.body,r=f.style.fontSize,o=n&&n.style.fontSize,i=!1;return t.style.cssText="position:absolute;font-size:1em;width:1em",n||(n=i=l.createElement("body"),n.style.background="none"),f.style.fontSize="100%",n.style.fontSize="100%",n.appendChild(t),i&&f.insertBefore(n,f.firstChild),e=t.offsetWidth,i?f.removeChild(n):n.removeChild(t),f.style.fontSize=r,o&&(n.style.fontSize=o),e=u=parseFloat(e)},O=function(t){var n="clientWidth",r=f[n],o="CSS1Compat"===l.compatMode&&r||l.body[n]||r,i={},a=m[m.length-1],y=(new Date).getTime();if(t&&c&&g>y-c)return e.clearTimeout(s),void(s=e.setTimeout(O,g));c=y;for(var b in p)if(p.hasOwnProperty(b)){var T=p[b],j=T.minw,x=T.maxw,E=null===j,S=null===x,D="em";j&&(j=parseFloat(j)*(j.indexOf(D)>-1?u||w():1)),x&&(x=parseFloat(x)*(x.indexOf(D)>-1?u||w():1)),T.hasquery&&(E&&S||!(E||o>=j)||!(S||x>=o))||(i[T.media]||(i[T.media]=[]),i[T.media].push(h[T.rules]))}for(var _ in d)d.hasOwnProperty(_)&&d[_]&&d[_].parentNode===v&&v.removeChild(d[_]);d.length=0;for(var M in i)if(i.hasOwnProperty(M)){var P=l.createElement("style"),I=i[M].join("\n");P.type="text/css",P.media=M,v.insertBefore(P,a.nextSibling),P.styleSheet?P.styleSheet.cssText=I:P.appendChild(l.createTextNode(I)),d.push(P)}},T=function(e,t,r){var o=e.replace(n.regex.comments,"").replace(n.regex.keyframes,"").match(n.regex.media),i=o&&o.length||0;t=t.substring(0,t.lastIndexOf("/"));var c=function(e){return e.replace(n.regex.urls,"$1"+t+"$2$3")},s=!i&&r;t.length&&(t+="/"),s&&(i=1);for(var u=0;i>u;u++){var l,f,d,y;s?(l=r,h.push(c(e))):(l=o[u].match(n.regex.findStyles)&&RegExp.$1,h.push(RegExp.$2&&c(RegExp.$2))),d=l.split(","),y=d.length;for(var g=0;y>g;g++)f=d[g],a(f)||p.push({media:f.split("(")[0].match(n.regex.only)&&RegExp.$2||"all",rules:h.length-1,hasquery:f.indexOf("(")>-1,minw:f.match(n.regex.minw)&&parseFloat(RegExp.$1)+(RegExp.$2||""),maxw:f.match(n.regex.maxw)&&parseFloat(RegExp.$1)+(RegExp.$2||"")})}O()},j=function(){if(r.length){var t=r.shift();i(t.href,function(n){T(n,t.href,t.media),y[t.href]=!0,e.setTimeout(function(){j()},0)})}},x=function(){for(var t=0;t 0) || // IE 10 + (window.navigator['pointerEnabled'] && + window.navigator['maxTouchPoints'] > 0) || // IE >=11 + false); + /* eslint-enable dot-notation */ + + // https://developer.mozilla.org/zh-CN/docs/DOM/MutationObserver + UI.support.mutationobserver = (window.MutationObserver || + window.WebKitMutationObserver || null); + + // https://github.com/Modernizr/Modernizr/blob/924c7611c170ef2dc502582e5079507aff61e388/feature-detects/forms/validation.js#L20 + UI.support.formValidation = (typeof document.createElement('form'). + checkValidity === 'function'); + + UI.utils = {}; + + /** + * Debounce function + * + * @param {function} func Function to be debounced + * @param {number} wait Function execution threshold in milliseconds + * @param {bool} immediate Whether the function should be called at + * the beginning of the delay instead of the + * end. Default is false. + * @description Executes a function when it stops being invoked for n seconds + * @see _.debounce() http://underscorejs.org + */ + UI.utils.debounce = function(func, wait, immediate) { + var timeout; + return function() { + var context = this; + var args = arguments; + var later = function() { + timeout = null; + if (!immediate) { + func.apply(context, args); + } + }; + var callNow = immediate && !timeout; + + clearTimeout(timeout); + timeout = setTimeout(later, wait); + + if (callNow) { + func.apply(context, args); + } + }; + }; + + UI.utils.isInView = function(element, options) { + var $element = $(element); + var visible = !!($element.width() || $element.height()) && + $element.css('display') !== 'none'; + + if (!visible) { + return false; + } + + var windowLeft = $win.scrollLeft(); + var windowTop = $win.scrollTop(); + var offset = $element.offset(); + var left = offset.left; + var top = offset.top; + + options = $.extend({topOffset: 0, leftOffset: 0}, options); + + return (top + $element.height() >= windowTop && + top - options.topOffset <= windowTop + $win.height() && + left + $element.width() >= windowLeft && + left - options.leftOffset <= windowLeft + $win.width()); + }; + + UI.utils.parseOptions = UI.utils.options = function(string) { + if ($.isPlainObject(string)) { + return string; + } + + var start = (string ? string.indexOf('{') : -1); + var options = {}; + + if (start != -1) { + try { + options = (new Function('', + 'var json = ' + string.substr(start) + + '; return JSON.parse(JSON.stringify(json));'))(); + } catch (e) { + } + } + + return options; + }; + + UI.utils.generateGUID = function(namespace) { + var uid = namespace + '-' || 'am-'; + + do { + uid += Math.random().toString(36).substring(2, 7); + } while (document.getElementById(uid)); + + return uid; + }; + + // @see https://davidwalsh.name/get-absolute-url + UI.utils.getAbsoluteUrl = (function() { + var a; + + return function(url) { + if (!a) { + a = document.createElement('a'); + } + + a.href = url; + + return a.href; + }; + })(); + + /** + * Plugin AMUI Component to jQuery + * + * @param {String} name - plugin name + * @param {Function} Component - plugin constructor + * @param {Object} [pluginOption] + * @param {String} pluginOption.dataOptions + * @param {Function} pluginOption.methodCall - custom method call + * @param {Function} pluginOption.before + * @param {Function} pluginOption.after + * @since v2.4.1 + */ + UI.plugin = function UIPlugin(name, Component, pluginOption) { + var old = $.fn[name]; + pluginOption = pluginOption || {}; + + $.fn[name] = function(option) { + var allArgs = Array.prototype.slice.call(arguments, 0); + var args = allArgs.slice(1); + var propReturn; + var $set = this.each(function() { + var $this = $(this); + var dataName = 'amui.' + name; + var dataOptionsName = pluginOption.dataOptions || ('data-am-' + name); + var instance = $this.data(dataName); + var options = $.extend({}, + UI.utils.parseOptions($this.attr(dataOptionsName)), + typeof option === 'object' && option); + + if (!instance && option === 'destroy') { + return; + } + + if (!instance) { + $this.data(dataName, (instance = new Component(this, options))); + } + + // custom method call + if (pluginOption.methodCall) { + pluginOption.methodCall.call($this, allArgs, instance); + } else { + // before method call + pluginOption.before && + pluginOption.before.call($this, allArgs, instance); + + if (typeof option === 'string') { + propReturn = typeof instance[option] === 'function' ? + instance[option].apply(instance, args) : instance[option]; + } + + // after method call + pluginOption.after && pluginOption.after.call($this, allArgs, instance); + } + }); + + return (propReturn === undefined) ? $set : propReturn; + }; + + $.fn[name].Constructor = Component; + + // no conflict + $.fn[name].noConflict = function() { + $.fn[name] = old; + return this; + }; + + UI[name] = Component; + }; + + // http://blog.alexmaccaw.com/css-transitions + $.fn.emulateTransitionEnd = function(duration) { + var called = false; + var $el = this; + + $(this).one(UI.support.transition.end, function() { + called = true; + }); + + var callback = function() { + if (!called) { + $($el).trigger(UI.support.transition.end); + } + $el.transitionEndTimmer = undefined; + }; + this.transitionEndTimmer = setTimeout(callback, duration); + return this; + }; + + $.fn.redraw = function() { + return this.each(function() { + /* eslint-disable */ + var redraw = this.offsetHeight; + /* eslint-enable */ + }); + }; + + $.fn.transitionEnd = function(callback) { + var endEvent = UI.support.transition.end; + var dom = this; + + function fireCallBack(e) { + callback.call(this, e); + endEvent && dom.off(endEvent, fireCallBack); + } + + if (callback && endEvent) { + dom.on(endEvent, fireCallBack); + } + + return this; + }; + + $.fn.removeClassRegEx = function() { + return this.each(function(regex) { + var classes = $(this).attr('class'); + + if (!classes || !regex) { + return false; + } + + var classArray = []; + classes = classes.split(' '); + + for (var i = 0, len = classes.length; i < len; i++) { + if (!classes[i].match(regex)) { + classArray.push(classes[i]); + } + } + + $(this).attr('class', classArray.join(' ')); + }); + }; + + // + $.fn.alterClass = function(removals, additions) { + var self = this; + + if (removals.indexOf('*') === -1) { + // Use native jQuery methods if there is no wildcard matching + self.removeClass(removals); + return !additions ? self : self.addClass(additions); + } + + var classPattern = new RegExp('\\s' + + removals. + replace(/\*/g, '[A-Za-z0-9-_]+'). + split(' '). + join('\\s|\\s') + + '\\s', 'g'); + + self.each(function(i, it) { + var cn = ' ' + it.className + ' '; + while (classPattern.test(cn)) { + cn = cn.replace(classPattern, ' '); + } + it.className = $.trim(cn); + }); + + return !additions ? self : self.addClass(additions); + }; + + // handle multiple browsers for requestAnimationFrame() + // http://www.paulirish.com/2011/requestanimationframe-for-smart-animating/ + // https://github.com/gnarf/jquery-requestAnimationFrame + UI.utils.rAF = (function() { + return window.requestAnimationFrame || + window.webkitRequestAnimationFrame || + window.mozRequestAnimationFrame || + window.oRequestAnimationFrame || + // if all else fails, use setTimeout + function(callback) { + return window.setTimeout(callback, 1000 / 60); // shoot for 60 fps + }; + })(); + + // handle multiple browsers for cancelAnimationFrame() + UI.utils.cancelAF = (function() { + return window.cancelAnimationFrame || + window.webkitCancelAnimationFrame || + window.mozCancelAnimationFrame || + window.oCancelAnimationFrame || + function(id) { + window.clearTimeout(id); + }; + })(); + + // via http://davidwalsh.name/detect-scrollbar-width + UI.utils.measureScrollbar = function() { + if (document.body.clientWidth >= window.innerWidth) { + return 0; + } + + // if ($html.width() >= window.innerWidth) return; + // var scrollbarWidth = window.innerWidth - $html.width(); + var $measure = $('
'); + + $(document.body).append($measure); + + var scrollbarWidth = $measure[0].offsetWidth - $measure[0].clientWidth; + + $measure.remove(); + + return scrollbarWidth; + }; + + UI.utils.imageLoader = function($image, callback) { + function loaded() { + callback($image[0]); + } + + function bindLoad() { + this.one('load', loaded); + if (/MSIE (\d+\.\d+);/.test(navigator.userAgent)) { + var src = this.attr('src'); + var param = src.match(/\?/) ? '&' : '?'; + + param += 'random=' + (new Date()).getTime(); + this.attr('src', src + param); + } + } + + if (!$image.attr('src')) { + loaded(); + return; + } + + if ($image[0].complete || $image[0].readyState === 4) { + loaded(); + } else { + bindLoad.call($image); + } + }; + + /** + * @see https://github.com/cho45/micro-template.js + * (c) cho45 http://cho45.github.com/mit-license + */ + UI.template = function(id, data) { + var me = UI.template; + + if (!me.cache[id]) { + me.cache[id] = (function() { + var name = id; + var string = /^[\w\-]+$/.test(id) ? + me.get(id) : (name = 'template(string)', id); // no warnings + + var line = 1; + /* eslint-disable max-len, quotes */ + var body = ('try { ' + (me.variable ? + 'var ' + me.variable + ' = this.stash;' : 'with (this.stash) { ') + + "this.ret += '" + + string. + replace(/<%/g, '\x11').replace(/%>/g, '\x13'). // if you want other tag, just edit this line + replace(/'(?![^\x11\x13]+?\x13)/g, '\\x27'). + replace(/^\s*|\s*$/g, ''). + replace(/\n/g, function() { + return "';\nthis.line = " + (++line) + "; this.ret += '\\n"; + }). + replace(/\x11-(.+?)\x13/g, "' + ($1) + '"). + replace(/\x11=(.+?)\x13/g, "' + this.escapeHTML($1) + '"). + replace(/\x11(.+?)\x13/g, "'; $1; this.ret += '") + + "'; " + (me.variable ? "" : "}") + "return this.ret;" + + "} catch (e) { throw 'TemplateError: ' + e + ' (on " + name + + "' + ' line ' + this.line + ')'; } " + + "//@ sourceURL=" + name + "\n" // source map + ).replace(/this\.ret \+= '';/g, ''); + /* eslint-enable max-len, quotes */ + var func = new Function(body); + var map = { + '&': '&', + '<': '<', + '>': '>', + '\x22': '"', + '\x27': ''' + }; + var escapeHTML = function(string) { + return ('' + string).replace(/[&<>\'\"]/g, function(_) { + return map[_]; + }); + }; + + return function(stash) { + return func.call(me.context = { + escapeHTML: escapeHTML, + line: 1, + ret: '', + stash: stash + }); + }; + })(); + } + + return data ? me.cache[id](data) : me.cache[id]; + }; + + UI.template.cache = {}; + + UI.template.get = function(id) { + if (id) { + var element = document.getElementById(id); + return element && element.innerHTML || ''; + } + }; + + // Dom mutation watchers + UI.DOMWatchers = []; + UI.DOMReady = false; + UI.ready = function(callback) { + UI.DOMWatchers.push(callback); + if (UI.DOMReady) { + // console.log('Ready call'); + callback(document); + } + }; + + UI.DOMObserve = function(elements, options, callback) { + var Observer = UI.support.mutationobserver; + if (!Observer) { + return; + } + + options = $.isPlainObject(options) ? + options : {childList: true, subtree: true}; + + callback = typeof callback === 'function' && callback || function() { + }; + + $(elements).each(function() { + var element = this; + var $element = $(element); + + if ($element.data('am.observer')) { + return; + } + + try { + var observer = new Observer(UI.utils.debounce( + function(mutations, instance) { + callback.call(element, mutations, instance); + // trigger this event manually if MutationObserver not supported + $element.trigger('changed.dom.amui'); + }, 50)); + + observer.observe(element, options); + + $element.data('am.observer', observer); + } catch (e) { + } + }); + }; + + $.fn.DOMObserve = function(options, callback) { + return this.each(function() { + /* eslint-disable new-cap */ + UI.DOMObserve(this, options, callback); + /* eslint-enable new-cap */ + }); + }; + + if (UI.support.touch) { + $html.addClass('am-touch'); + } + + $(document).on('changed.dom.amui', function(e) { + var element = e.target; + + // TODO: just call changed element's watcher + // every watcher callback should have a key + // use like this:
+ // get keys via $(element).data('amObserve') + // call functions store with these keys + $.each(UI.DOMWatchers, function(i, watcher) { + watcher(element); + }); + }); + + $(function() { + var $body = $(document.body); + + UI.DOMReady = true; + + // Run default init + $.each(UI.DOMWatchers, function(i, watcher) { + watcher(document); + }); + + // watches DOM + /* eslint-disable new-cap */ + UI.DOMObserve('[data-am-observe]'); + /* eslint-enable */ + + $html.removeClass('no-js').addClass('js'); + + UI.support.animation && $html.addClass('cssanimations'); + + // iOS standalone mode + if (window.navigator.standalone) { + $html.addClass('am-standalone'); + } + + $('.am-topbar-fixed-top').length && + $body.addClass('am-with-topbar-fixed-top'); + + $('.am-topbar-fixed-bottom').length && + $body.addClass('am-with-topbar-fixed-bottom'); + + // Remove responsive classes in .am-layout + var $layout = $('.am-layout'); + $layout.find('[class*="md-block-grid"]').alterClass('md-block-grid-*'); + $layout.find('[class*="lg-block-grid"]').alterClass('lg-block-grid'); + + // widgets not in .am-layout + $('[data-am-widget]').each(function() { + var $widget = $(this); + // console.log($widget.parents('.am-layout').length) + if ($widget.parents('.am-layout').length === 0) { + $widget.addClass('am-no-layout'); + } + }); + }); + + module.exports = UI; + + +/***/ }, +/* 3 */ +/***/ function(module, exports, __webpack_require__) { + + /*! Hammer.JS - v2.0.8 - 2016-04-22 + * http://hammerjs.github.io/ + * + * Copyright (c) 2016 Jorik Tangelder; + * Licensed under the MIT license */ + + 'use strict'; + + var $ = __webpack_require__(1); + var UI = __webpack_require__(2); + + var VENDOR_PREFIXES = ['', 'webkit', 'Moz', 'MS', 'ms', 'o']; + var TEST_ELEMENT = document.createElement('div'); + + var TYPE_FUNCTION = 'function'; + + var round = Math.round; + var abs = Math.abs; + var now = Date.now; + + /** + * set a timeout with a given scope + * @param {Function} fn + * @param {Number} timeout + * @param {Object} context + * @returns {number} + */ + function setTimeoutContext(fn, timeout, context) { + return setTimeout(bindFn(fn, context), timeout); + } + + /** + * if the argument is an array, we want to execute the fn on each entry + * if it aint an array we don't want to do a thing. + * this is used by all the methods that accept a single and array argument. + * @param {*|Array} arg + * @param {String} fn + * @param {Object} [context] + * @returns {Boolean} + */ + function invokeArrayArg(arg, fn, context) { + if (Array.isArray(arg)) { + each(arg, context[fn], context); + return true; + } + return false; + } + + /** + * walk objects and arrays + * @param {Object} obj + * @param {Function} iterator + * @param {Object} context + */ + function each(obj, iterator, context) { + var i; + + if (!obj) { + return; + } + + if (obj.forEach) { + obj.forEach(iterator, context); + } else if (obj.length !== undefined) { + i = 0; + while (i < obj.length) { + iterator.call(context, obj[i], i, obj); + i++; + } + } else { + for (i in obj) { + obj.hasOwnProperty(i) && iterator.call(context, obj[i], i, obj); + } + } + } + + /** + * wrap a method with a deprecation warning and stack trace + * @param {Function} method + * @param {String} name + * @param {String} message + * @returns {Function} A new function wrapping the supplied method. + */ + function deprecate(method, name, message) { + var deprecationMessage = 'DEPRECATED METHOD: ' + name + '\n' + message + ' AT \n'; + return function() { + var e = new Error('get-stack-trace'); + var stack = e && e.stack ? e.stack.replace(/^[^\(]+?[\n$]/gm, '') + .replace(/^\s+at\s+/gm, '') + .replace(/^Object.\s*\(/gm, '{anonymous}()@') : 'Unknown Stack Trace'; + + var log = window.console && (window.console.warn || window.console.log); + if (log) { + log.call(window.console, deprecationMessage, stack); + } + return method.apply(this, arguments); + }; + } + + /** + * extend object. + * means that properties in dest will be overwritten by the ones in src. + * @param {Object} target + * @param {...Object} objects_to_assign + * @returns {Object} target + */ + var assign; + if (typeof Object.assign !== 'function') { + assign = function assign(target) { + if (target === undefined || target === null) { + throw new TypeError('Cannot convert undefined or null to object'); + } + + var output = Object(target); + for (var index = 1; index < arguments.length; index++) { + var source = arguments[index]; + if (source !== undefined && source !== null) { + for (var nextKey in source) { + if (source.hasOwnProperty(nextKey)) { + output[nextKey] = source[nextKey]; + } + } + } + } + return output; + }; + } else { + assign = Object.assign; + } + + /** + * extend object. + * means that properties in dest will be overwritten by the ones in src. + * @param {Object} dest + * @param {Object} src + * @param {Boolean} [merge=false] + * @returns {Object} dest + */ + var extend = deprecate(function extend(dest, src, merge) { + var keys = Object.keys(src); + var i = 0; + while (i < keys.length) { + if (!merge || (merge && dest[keys[i]] === undefined)) { + dest[keys[i]] = src[keys[i]]; + } + i++; + } + return dest; + }, 'extend', 'Use `assign`.'); + + /** + * merge the values from src in the dest. + * means that properties that exist in dest will not be overwritten by src + * @param {Object} dest + * @param {Object} src + * @returns {Object} dest + */ + var merge = deprecate(function merge(dest, src) { + return extend(dest, src, true); + }, 'merge', 'Use `assign`.'); + + /** + * simple class inheritance + * @param {Function} child + * @param {Function} base + * @param {Object} [properties] + */ + function inherit(child, base, properties) { + var baseP = base.prototype, + childP; + + childP = child.prototype = Object.create(baseP); + childP.constructor = child; + childP._super = baseP; + + if (properties) { + assign(childP, properties); + } + } + + /** + * simple function bind + * @param {Function} fn + * @param {Object} context + * @returns {Function} + */ + function bindFn(fn, context) { + return function boundFn() { + return fn.apply(context, arguments); + }; + } + + /** + * let a boolean value also be a function that must return a boolean + * this first item in args will be used as the context + * @param {Boolean|Function} val + * @param {Array} [args] + * @returns {Boolean} + */ + function boolOrFn(val, args) { + if (typeof val == TYPE_FUNCTION) { + return val.apply(args ? args[0] || undefined : undefined, args); + } + return val; + } + + /** + * use the val2 when val1 is undefined + * @param {*} val1 + * @param {*} val2 + * @returns {*} + */ + function ifUndefined(val1, val2) { + return (val1 === undefined) ? val2 : val1; + } + + /** + * addEventListener with multiple events at once + * @param {EventTarget} target + * @param {String} types + * @param {Function} handler + */ + function addEventListeners(target, types, handler) { + each(splitStr(types), function(type) { + target.addEventListener(type, handler, false); + }); + } + + /** + * removeEventListener with multiple events at once + * @param {EventTarget} target + * @param {String} types + * @param {Function} handler + */ + function removeEventListeners(target, types, handler) { + each(splitStr(types), function(type) { + target.removeEventListener(type, handler, false); + }); + } + + /** + * find if a node is in the given parent + * @method hasParent + * @param {HTMLElement} node + * @param {HTMLElement} parent + * @return {Boolean} found + */ + function hasParent(node, parent) { + while (node) { + if (node == parent) { + return true; + } + node = node.parentNode; + } + return false; + } + + /** + * small indexOf wrapper + * @param {String} str + * @param {String} find + * @returns {Boolean} found + */ + function inStr(str, find) { + return str.indexOf(find) > -1; + } + + /** + * split string on whitespace + * @param {String} str + * @returns {Array} words + */ + function splitStr(str) { + return str.trim().split(/\s+/g); + } + + /** + * find if a array contains the object using indexOf or a simple polyFill + * @param {Array} src + * @param {String} find + * @param {String} [findByKey] + * @return {Boolean|Number} false when not found, or the index + */ + function inArray(src, find, findByKey) { + if (src.indexOf && !findByKey) { + return src.indexOf(find); + } else { + var i = 0; + while (i < src.length) { + if ((findByKey && src[i][findByKey] == find) || (!findByKey && src[i] === find)) { + return i; + } + i++; + } + return -1; + } + } + + /** + * convert array-like objects to real arrays + * @param {Object} obj + * @returns {Array} + */ + function toArray(obj) { + return Array.prototype.slice.call(obj, 0); + } + + /** + * unique array with objects based on a key (like 'id') or just by the array's value + * @param {Array} src [{id:1},{id:2},{id:1}] + * @param {String} [key] + * @param {Boolean} [sort=False] + * @returns {Array} [{id:1},{id:2}] + */ + function uniqueArray(src, key, sort) { + var results = []; + var values = []; + var i = 0; + + while (i < src.length) { + var val = key ? src[i][key] : src[i]; + if (inArray(values, val) < 0) { + results.push(src[i]); + } + values[i] = val; + i++; + } + + if (sort) { + if (!key) { + results = results.sort(); + } else { + results = results.sort(function sortUniqueArray(a, b) { + return a[key] > b[key]; + }); + } + } + + return results; + } + + /** + * get the prefixed property + * @param {Object} obj + * @param {String} property + * @returns {String|Undefined} prefixed + */ + function prefixed(obj, property) { + var prefix, prop; + var camelProp = property[0].toUpperCase() + property.slice(1); + + var i = 0; + while (i < VENDOR_PREFIXES.length) { + prefix = VENDOR_PREFIXES[i]; + prop = (prefix) ? prefix + camelProp : property; + + if (prop in obj) { + return prop; + } + i++; + } + return undefined; + } + + /** + * get a unique id + * @returns {number} uniqueId + */ + var _uniqueId = 1; + function uniqueId() { + return _uniqueId++; + } + + /** + * get the window object of an element + * @param {HTMLElement} element + * @returns {DocumentView|Window} + */ + function getWindowForElement(element) { + var doc = element.ownerDocument || element; + return (doc.defaultView || doc.parentWindow || window); + } + + var MOBILE_REGEX = /mobile|tablet|ip(ad|hone|od)|android/i; + + var SUPPORT_TOUCH = ('ontouchstart' in window); + var SUPPORT_POINTER_EVENTS = prefixed(window, 'PointerEvent') !== undefined; + var SUPPORT_ONLY_TOUCH = SUPPORT_TOUCH && MOBILE_REGEX.test(navigator.userAgent); + + var INPUT_TYPE_TOUCH = 'touch'; + var INPUT_TYPE_PEN = 'pen'; + var INPUT_TYPE_MOUSE = 'mouse'; + var INPUT_TYPE_KINECT = 'kinect'; + + var COMPUTE_INTERVAL = 25; + + var INPUT_START = 1; + var INPUT_MOVE = 2; + var INPUT_END = 4; + var INPUT_CANCEL = 8; + + var DIRECTION_NONE = 1; + var DIRECTION_LEFT = 2; + var DIRECTION_RIGHT = 4; + var DIRECTION_UP = 8; + var DIRECTION_DOWN = 16; + + var DIRECTION_HORIZONTAL = DIRECTION_LEFT | DIRECTION_RIGHT; + var DIRECTION_VERTICAL = DIRECTION_UP | DIRECTION_DOWN; + var DIRECTION_ALL = DIRECTION_HORIZONTAL | DIRECTION_VERTICAL; + + var PROPS_XY = ['x', 'y']; + var PROPS_CLIENT_XY = ['clientX', 'clientY']; + + /** + * create new input type manager + * @param {Manager} manager + * @param {Function} callback + * @returns {Input} + * @constructor + */ + function Input(manager, callback) { + var self = this; + this.manager = manager; + this.callback = callback; + this.element = manager.element; + this.target = manager.options.inputTarget; + + // smaller wrapper around the handler, for the scope and the enabled state of the manager, + // so when disabled the input events are completely bypassed. + this.domHandler = function(ev) { + if (boolOrFn(manager.options.enable, [manager])) { + self.handler(ev); + } + }; + + this.init(); + + } + + Input.prototype = { + /** + * should handle the inputEvent data and trigger the callback + * @virtual + */ + handler: function() { }, + + /** + * bind the events + */ + init: function() { + this.evEl && addEventListeners(this.element, this.evEl, this.domHandler); + this.evTarget && addEventListeners(this.target, this.evTarget, this.domHandler); + this.evWin && addEventListeners(getWindowForElement(this.element), this.evWin, this.domHandler); + }, + + /** + * unbind the events + */ + destroy: function() { + this.evEl && removeEventListeners(this.element, this.evEl, this.domHandler); + this.evTarget && removeEventListeners(this.target, this.evTarget, this.domHandler); + this.evWin && removeEventListeners(getWindowForElement(this.element), this.evWin, this.domHandler); + } + }; + + /** + * create new input type manager + * called by the Manager constructor + * @param {Hammer} manager + * @returns {Input} + */ + function createInputInstance(manager) { + var Type; + var inputClass = manager.options.inputClass; + + if (inputClass) { + Type = inputClass; + } else if (SUPPORT_POINTER_EVENTS) { + Type = PointerEventInput; + } else if (SUPPORT_ONLY_TOUCH) { + Type = TouchInput; + } else if (!SUPPORT_TOUCH) { + Type = MouseInput; + } else { + Type = TouchMouseInput; + } + return new (Type)(manager, inputHandler); + } + + /** + * handle input events + * @param {Manager} manager + * @param {String} eventType + * @param {Object} input + */ + function inputHandler(manager, eventType, input) { + var pointersLen = input.pointers.length; + var changedPointersLen = input.changedPointers.length; + var isFirst = (eventType & INPUT_START && (pointersLen - changedPointersLen === 0)); + var isFinal = (eventType & (INPUT_END | INPUT_CANCEL) && (pointersLen - changedPointersLen === 0)); + + input.isFirst = !!isFirst; + input.isFinal = !!isFinal; + + if (isFirst) { + manager.session = {}; + } + + // source event is the normalized value of the domEvents + // like 'touchstart, mouseup, pointerdown' + input.eventType = eventType; + + // compute scale, rotation etc + computeInputData(manager, input); + + // emit secret event + manager.emit('hammer.input', input); + + manager.recognize(input); + manager.session.prevInput = input; + } + + /** + * extend the data with some usable properties like scale, rotate, velocity etc + * @param {Object} manager + * @param {Object} input + */ + function computeInputData(manager, input) { + var session = manager.session; + var pointers = input.pointers; + var pointersLength = pointers.length; + + // store the first input to calculate the distance and direction + if (!session.firstInput) { + session.firstInput = simpleCloneInputData(input); + } + + // to compute scale and rotation we need to store the multiple touches + if (pointersLength > 1 && !session.firstMultiple) { + session.firstMultiple = simpleCloneInputData(input); + } else if (pointersLength === 1) { + session.firstMultiple = false; + } + + var firstInput = session.firstInput; + var firstMultiple = session.firstMultiple; + var offsetCenter = firstMultiple ? firstMultiple.center : firstInput.center; + + var center = input.center = getCenter(pointers); + input.timeStamp = now(); + input.deltaTime = input.timeStamp - firstInput.timeStamp; + + input.angle = getAngle(offsetCenter, center); + input.distance = getDistance(offsetCenter, center); + + computeDeltaXY(session, input); + input.offsetDirection = getDirection(input.deltaX, input.deltaY); + + var overallVelocity = getVelocity(input.deltaTime, input.deltaX, input.deltaY); + input.overallVelocityX = overallVelocity.x; + input.overallVelocityY = overallVelocity.y; + input.overallVelocity = (abs(overallVelocity.x) > abs(overallVelocity.y)) ? overallVelocity.x : overallVelocity.y; + + input.scale = firstMultiple ? getScale(firstMultiple.pointers, pointers) : 1; + input.rotation = firstMultiple ? getRotation(firstMultiple.pointers, pointers) : 0; + + input.maxPointers = !session.prevInput ? input.pointers.length : ((input.pointers.length > + session.prevInput.maxPointers) ? input.pointers.length : session.prevInput.maxPointers); + + computeIntervalInputData(session, input); + + // find the correct target + var target = manager.element; + if (hasParent(input.srcEvent.target, target)) { + target = input.srcEvent.target; + } + input.target = target; + } + + function computeDeltaXY(session, input) { + var center = input.center; + var offset = session.offsetDelta || {}; + var prevDelta = session.prevDelta || {}; + var prevInput = session.prevInput || {}; + + if (input.eventType === INPUT_START || prevInput.eventType === INPUT_END) { + prevDelta = session.prevDelta = { + x: prevInput.deltaX || 0, + y: prevInput.deltaY || 0 + }; + + offset = session.offsetDelta = { + x: center.x, + y: center.y + }; + } + + input.deltaX = prevDelta.x + (center.x - offset.x); + input.deltaY = prevDelta.y + (center.y - offset.y); + } + + /** + * velocity is calculated every x ms + * @param {Object} session + * @param {Object} input + */ + function computeIntervalInputData(session, input) { + var last = session.lastInterval || input, + deltaTime = input.timeStamp - last.timeStamp, + velocity, velocityX, velocityY, direction; + + if (input.eventType != INPUT_CANCEL && (deltaTime > COMPUTE_INTERVAL || last.velocity === undefined)) { + var deltaX = input.deltaX - last.deltaX; + var deltaY = input.deltaY - last.deltaY; + + var v = getVelocity(deltaTime, deltaX, deltaY); + velocityX = v.x; + velocityY = v.y; + velocity = (abs(v.x) > abs(v.y)) ? v.x : v.y; + direction = getDirection(deltaX, deltaY); + + session.lastInterval = input; + } else { + // use latest velocity info if it doesn't overtake a minimum period + velocity = last.velocity; + velocityX = last.velocityX; + velocityY = last.velocityY; + direction = last.direction; + } + + input.velocity = velocity; + input.velocityX = velocityX; + input.velocityY = velocityY; + input.direction = direction; + } + + /** + * create a simple clone from the input used for storage of firstInput and firstMultiple + * @param {Object} input + * @returns {Object} clonedInputData + */ + function simpleCloneInputData(input) { + // make a simple copy of the pointers because we will get a reference if we don't + // we only need clientXY for the calculations + var pointers = []; + var i = 0; + while (i < input.pointers.length) { + pointers[i] = { + clientX: round(input.pointers[i].clientX), + clientY: round(input.pointers[i].clientY) + }; + i++; + } + + return { + timeStamp: now(), + pointers: pointers, + center: getCenter(pointers), + deltaX: input.deltaX, + deltaY: input.deltaY + }; + } + + /** + * get the center of all the pointers + * @param {Array} pointers + * @return {Object} center contains `x` and `y` properties + */ + function getCenter(pointers) { + var pointersLength = pointers.length; + + // no need to loop when only one touch + if (pointersLength === 1) { + return { + x: round(pointers[0].clientX), + y: round(pointers[0].clientY) + }; + } + + var x = 0, y = 0, i = 0; + while (i < pointersLength) { + x += pointers[i].clientX; + y += pointers[i].clientY; + i++; + } + + return { + x: round(x / pointersLength), + y: round(y / pointersLength) + }; + } + + /** + * calculate the velocity between two points. unit is in px per ms. + * @param {Number} deltaTime + * @param {Number} x + * @param {Number} y + * @return {Object} velocity `x` and `y` + */ + function getVelocity(deltaTime, x, y) { + return { + x: x / deltaTime || 0, + y: y / deltaTime || 0 + }; + } + + /** + * get the direction between two points + * @param {Number} x + * @param {Number} y + * @return {Number} direction + */ + function getDirection(x, y) { + if (x === y) { + return DIRECTION_NONE; + } + + if (abs(x) >= abs(y)) { + return x < 0 ? DIRECTION_LEFT : DIRECTION_RIGHT; + } + return y < 0 ? DIRECTION_UP : DIRECTION_DOWN; + } + + /** + * calculate the absolute distance between two points + * @param {Object} p1 {x, y} + * @param {Object} p2 {x, y} + * @param {Array} [props] containing x and y keys + * @return {Number} distance + */ + function getDistance(p1, p2, props) { + if (!props) { + props = PROPS_XY; + } + var x = p2[props[0]] - p1[props[0]], + y = p2[props[1]] - p1[props[1]]; + + return Math.sqrt((x * x) + (y * y)); + } + + /** + * calculate the angle between two coordinates + * @param {Object} p1 + * @param {Object} p2 + * @param {Array} [props] containing x and y keys + * @return {Number} angle + */ + function getAngle(p1, p2, props) { + if (!props) { + props = PROPS_XY; + } + var x = p2[props[0]] - p1[props[0]], + y = p2[props[1]] - p1[props[1]]; + return Math.atan2(y, x) * 180 / Math.PI; + } + + /** + * calculate the rotation degrees between two pointersets + * @param {Array} start array of pointers + * @param {Array} end array of pointers + * @return {Number} rotation + */ + function getRotation(start, end) { + return getAngle(end[1], end[0], PROPS_CLIENT_XY) + getAngle(start[1], start[0], PROPS_CLIENT_XY); + } + + /** + * calculate the scale factor between two pointersets + * no scale is 1, and goes down to 0 when pinched together, and bigger when pinched out + * @param {Array} start array of pointers + * @param {Array} end array of pointers + * @return {Number} scale + */ + function getScale(start, end) { + return getDistance(end[0], end[1], PROPS_CLIENT_XY) / getDistance(start[0], start[1], PROPS_CLIENT_XY); + } + + var MOUSE_INPUT_MAP = { + mousedown: INPUT_START, + mousemove: INPUT_MOVE, + mouseup: INPUT_END + }; + + var MOUSE_ELEMENT_EVENTS = 'mousedown'; + var MOUSE_WINDOW_EVENTS = 'mousemove mouseup'; + + /** + * Mouse events input + * @constructor + * @extends Input + */ + function MouseInput() { + this.evEl = MOUSE_ELEMENT_EVENTS; + this.evWin = MOUSE_WINDOW_EVENTS; + + this.pressed = false; // mousedown state + + Input.apply(this, arguments); + } + + inherit(MouseInput, Input, { + /** + * handle mouse events + * @param {Object} ev + */ + handler: function MEhandler(ev) { + var eventType = MOUSE_INPUT_MAP[ev.type]; + + // on start we want to have the left mouse button down + if (eventType & INPUT_START && ev.button === 0) { + this.pressed = true; + } + + if (eventType & INPUT_MOVE && ev.which !== 1) { + eventType = INPUT_END; + } + + // mouse must be down + if (!this.pressed) { + return; + } + + if (eventType & INPUT_END) { + this.pressed = false; + } + + this.callback(this.manager, eventType, { + pointers: [ev], + changedPointers: [ev], + pointerType: INPUT_TYPE_MOUSE, + srcEvent: ev + }); + } + }); + + var POINTER_INPUT_MAP = { + pointerdown: INPUT_START, + pointermove: INPUT_MOVE, + pointerup: INPUT_END, + pointercancel: INPUT_CANCEL, + pointerout: INPUT_CANCEL + }; + + // in IE10 the pointer types is defined as an enum + var IE10_POINTER_TYPE_ENUM = { + 2: INPUT_TYPE_TOUCH, + 3: INPUT_TYPE_PEN, + 4: INPUT_TYPE_MOUSE, + 5: INPUT_TYPE_KINECT // see https://twitter.com/jacobrossi/status/480596438489890816 + }; + + var POINTER_ELEMENT_EVENTS = 'pointerdown'; + var POINTER_WINDOW_EVENTS = 'pointermove pointerup pointercancel'; + + // IE10 has prefixed support, and case-sensitive + if (window.MSPointerEvent && !window.PointerEvent) { + POINTER_ELEMENT_EVENTS = 'MSPointerDown'; + POINTER_WINDOW_EVENTS = 'MSPointerMove MSPointerUp MSPointerCancel'; + } + + /** + * Pointer events input + * @constructor + * @extends Input + */ + function PointerEventInput() { + this.evEl = POINTER_ELEMENT_EVENTS; + this.evWin = POINTER_WINDOW_EVENTS; + + Input.apply(this, arguments); + + this.store = (this.manager.session.pointerEvents = []); + } + + inherit(PointerEventInput, Input, { + /** + * handle mouse events + * @param {Object} ev + */ + handler: function PEhandler(ev) { + var store = this.store; + var removePointer = false; + + var eventTypeNormalized = ev.type.toLowerCase().replace('ms', ''); + var eventType = POINTER_INPUT_MAP[eventTypeNormalized]; + var pointerType = IE10_POINTER_TYPE_ENUM[ev.pointerType] || ev.pointerType; + + var isTouch = (pointerType == INPUT_TYPE_TOUCH); + + // get index of the event in the store + var storeIndex = inArray(store, ev.pointerId, 'pointerId'); + + // start and mouse must be down + if (eventType & INPUT_START && (ev.button === 0 || isTouch)) { + if (storeIndex < 0) { + store.push(ev); + storeIndex = store.length - 1; + } + } else if (eventType & (INPUT_END | INPUT_CANCEL)) { + removePointer = true; + } + + // it not found, so the pointer hasn't been down (so it's probably a hover) + if (storeIndex < 0) { + return; + } + + // update the event in the store + store[storeIndex] = ev; + + this.callback(this.manager, eventType, { + pointers: store, + changedPointers: [ev], + pointerType: pointerType, + srcEvent: ev + }); + + if (removePointer) { + // remove from the store + store.splice(storeIndex, 1); + } + } + }); + + var SINGLE_TOUCH_INPUT_MAP = { + touchstart: INPUT_START, + touchmove: INPUT_MOVE, + touchend: INPUT_END, + touchcancel: INPUT_CANCEL + }; + + var SINGLE_TOUCH_TARGET_EVENTS = 'touchstart'; + var SINGLE_TOUCH_WINDOW_EVENTS = 'touchstart touchmove touchend touchcancel'; + + /** + * Touch events input + * @constructor + * @extends Input + */ + function SingleTouchInput() { + this.evTarget = SINGLE_TOUCH_TARGET_EVENTS; + this.evWin = SINGLE_TOUCH_WINDOW_EVENTS; + this.started = false; + + Input.apply(this, arguments); + } + + inherit(SingleTouchInput, Input, { + handler: function TEhandler(ev) { + var type = SINGLE_TOUCH_INPUT_MAP[ev.type]; + + // should we handle the touch events? + if (type === INPUT_START) { + this.started = true; + } + + if (!this.started) { + return; + } + + var touches = normalizeSingleTouches.call(this, ev, type); + + // when done, reset the started state + if (type & (INPUT_END | INPUT_CANCEL) && touches[0].length - touches[1].length === 0) { + this.started = false; + } + + this.callback(this.manager, type, { + pointers: touches[0], + changedPointers: touches[1], + pointerType: INPUT_TYPE_TOUCH, + srcEvent: ev + }); + } + }); + + /** + * @this {TouchInput} + * @param {Object} ev + * @param {Number} type flag + * @returns {undefined|Array} [all, changed] + */ + function normalizeSingleTouches(ev, type) { + var all = toArray(ev.touches); + var changed = toArray(ev.changedTouches); + + if (type & (INPUT_END | INPUT_CANCEL)) { + all = uniqueArray(all.concat(changed), 'identifier', true); + } + + return [all, changed]; + } + + var TOUCH_INPUT_MAP = { + touchstart: INPUT_START, + touchmove: INPUT_MOVE, + touchend: INPUT_END, + touchcancel: INPUT_CANCEL + }; + + var TOUCH_TARGET_EVENTS = 'touchstart touchmove touchend touchcancel'; + + /** + * Multi-user touch events input + * @constructor + * @extends Input + */ + function TouchInput() { + this.evTarget = TOUCH_TARGET_EVENTS; + this.targetIds = {}; + + Input.apply(this, arguments); + } + + inherit(TouchInput, Input, { + handler: function MTEhandler(ev) { + var type = TOUCH_INPUT_MAP[ev.type]; + var touches = getTouches.call(this, ev, type); + if (!touches) { + return; + } + + this.callback(this.manager, type, { + pointers: touches[0], + changedPointers: touches[1], + pointerType: INPUT_TYPE_TOUCH, + srcEvent: ev + }); + } + }); + + /** + * @this {TouchInput} + * @param {Object} ev + * @param {Number} type flag + * @returns {undefined|Array} [all, changed] + */ + function getTouches(ev, type) { + var allTouches = toArray(ev.touches); + var targetIds = this.targetIds; + + // when there is only one touch, the process can be simplified + if (type & (INPUT_START | INPUT_MOVE) && allTouches.length === 1) { + targetIds[allTouches[0].identifier] = true; + return [allTouches, allTouches]; + } + + var i, + targetTouches, + changedTouches = toArray(ev.changedTouches), + changedTargetTouches = [], + target = this.target; + + // get target touches from touches + targetTouches = allTouches.filter(function(touch) { + return hasParent(touch.target, target); + }); + + // collect touches + if (type === INPUT_START) { + i = 0; + while (i < targetTouches.length) { + targetIds[targetTouches[i].identifier] = true; + i++; + } + } + + // filter changed touches to only contain touches that exist in the collected target ids + i = 0; + while (i < changedTouches.length) { + if (targetIds[changedTouches[i].identifier]) { + changedTargetTouches.push(changedTouches[i]); + } + + // cleanup removed touches + if (type & (INPUT_END | INPUT_CANCEL)) { + delete targetIds[changedTouches[i].identifier]; + } + i++; + } + + if (!changedTargetTouches.length) { + return; + } + + return [ + // merge targetTouches with changedTargetTouches so it contains ALL touches, including 'end' and 'cancel' + uniqueArray(targetTouches.concat(changedTargetTouches), 'identifier', true), + changedTargetTouches + ]; + } + + /** + * Combined touch and mouse input + * + * Touch has a higher priority then mouse, and while touching no mouse events are allowed. + * This because touch devices also emit mouse events while doing a touch. + * + * @constructor + * @extends Input + */ + + var DEDUP_TIMEOUT = 2500; + var DEDUP_DISTANCE = 25; + + function TouchMouseInput() { + Input.apply(this, arguments); + + var handler = bindFn(this.handler, this); + this.touch = new TouchInput(this.manager, handler); + this.mouse = new MouseInput(this.manager, handler); + + this.primaryTouch = null; + this.lastTouches = []; + } + + inherit(TouchMouseInput, Input, { + /** + * handle mouse and touch events + * @param {Hammer} manager + * @param {String} inputEvent + * @param {Object} inputData + */ + handler: function TMEhandler(manager, inputEvent, inputData) { + var isTouch = (inputData.pointerType == INPUT_TYPE_TOUCH), + isMouse = (inputData.pointerType == INPUT_TYPE_MOUSE); + + if (isMouse && inputData.sourceCapabilities && inputData.sourceCapabilities.firesTouchEvents) { + return; + } + + // when we're in a touch event, record touches to de-dupe synthetic mouse event + if (isTouch) { + recordTouches.call(this, inputEvent, inputData); + } else if (isMouse && isSyntheticEvent.call(this, inputData)) { + return; + } + + this.callback(manager, inputEvent, inputData); + }, + + /** + * remove the event listeners + */ + destroy: function destroy() { + this.touch.destroy(); + this.mouse.destroy(); + } + }); + + function recordTouches(eventType, eventData) { + if (eventType & INPUT_START) { + this.primaryTouch = eventData.changedPointers[0].identifier; + setLastTouch.call(this, eventData); + } else if (eventType & (INPUT_END | INPUT_CANCEL)) { + setLastTouch.call(this, eventData); + } + } + + function setLastTouch(eventData) { + var touch = eventData.changedPointers[0]; + + if (touch.identifier === this.primaryTouch) { + var lastTouch = {x: touch.clientX, y: touch.clientY}; + this.lastTouches.push(lastTouch); + var lts = this.lastTouches; + var removeLastTouch = function() { + var i = lts.indexOf(lastTouch); + if (i > -1) { + lts.splice(i, 1); + } + }; + setTimeout(removeLastTouch, DEDUP_TIMEOUT); + } + } + + function isSyntheticEvent(eventData) { + var x = eventData.srcEvent.clientX, y = eventData.srcEvent.clientY; + for (var i = 0; i < this.lastTouches.length; i++) { + var t = this.lastTouches[i]; + var dx = Math.abs(x - t.x), dy = Math.abs(y - t.y); + if (dx <= DEDUP_DISTANCE && dy <= DEDUP_DISTANCE) { + return true; + } + } + return false; + } + + var PREFIXED_TOUCH_ACTION = prefixed(TEST_ELEMENT.style, 'touchAction'); + var NATIVE_TOUCH_ACTION = PREFIXED_TOUCH_ACTION !== undefined; + + // magical touchAction value + var TOUCH_ACTION_COMPUTE = 'compute'; + var TOUCH_ACTION_AUTO = 'auto'; + var TOUCH_ACTION_MANIPULATION = 'manipulation'; // not implemented + var TOUCH_ACTION_NONE = 'none'; + var TOUCH_ACTION_PAN_X = 'pan-x'; + var TOUCH_ACTION_PAN_Y = 'pan-y'; + var TOUCH_ACTION_MAP = getTouchActionProps(); + + /** + * Touch Action + * sets the touchAction property or uses the js alternative + * @param {Manager} manager + * @param {String} value + * @constructor + */ + function TouchAction(manager, value) { + this.manager = manager; + this.set(value); + } + + TouchAction.prototype = { + /** + * set the touchAction value on the element or enable the polyfill + * @param {String} value + */ + set: function(value) { + // find out the touch-action by the event handlers + if (value == TOUCH_ACTION_COMPUTE) { + value = this.compute(); + } + + if (NATIVE_TOUCH_ACTION && this.manager.element.style && TOUCH_ACTION_MAP[value]) { + this.manager.element.style[PREFIXED_TOUCH_ACTION] = value; + } + this.actions = value.toLowerCase().trim(); + }, + + /** + * just re-set the touchAction value + */ + update: function() { + this.set(this.manager.options.touchAction); + }, + + /** + * compute the value for the touchAction property based on the recognizer's settings + * @returns {String} value + */ + compute: function() { + var actions = []; + each(this.manager.recognizers, function(recognizer) { + if (boolOrFn(recognizer.options.enable, [recognizer])) { + actions = actions.concat(recognizer.getTouchAction()); + } + }); + return cleanTouchActions(actions.join(' ')); + }, + + /** + * this method is called on each input cycle and provides the preventing of the browser behavior + * @param {Object} input + */ + preventDefaults: function(input) { + var srcEvent = input.srcEvent; + var direction = input.offsetDirection; + + // if the touch action did prevented once this session + if (this.manager.session.prevented) { + srcEvent.preventDefault(); + return; + } + + var actions = this.actions; + var hasNone = inStr(actions, TOUCH_ACTION_NONE) && !TOUCH_ACTION_MAP[TOUCH_ACTION_NONE]; + var hasPanY = inStr(actions, TOUCH_ACTION_PAN_Y) && !TOUCH_ACTION_MAP[TOUCH_ACTION_PAN_Y]; + var hasPanX = inStr(actions, TOUCH_ACTION_PAN_X) && !TOUCH_ACTION_MAP[TOUCH_ACTION_PAN_X]; + + if (hasNone) { + //do not prevent defaults if this is a tap gesture + + var isTapPointer = input.pointers.length === 1; + var isTapMovement = input.distance < 2; + var isTapTouchTime = input.deltaTime < 250; + + if (isTapPointer && isTapMovement && isTapTouchTime) { + return; + } + } + + if (hasPanX && hasPanY) { + // `pan-x pan-y` means browser handles all scrolling/panning, do not prevent + return; + } + + if (hasNone || + (hasPanY && direction & DIRECTION_HORIZONTAL) || + (hasPanX && direction & DIRECTION_VERTICAL)) { + return this.preventSrc(srcEvent); + } + }, + + /** + * call preventDefault to prevent the browser's default behavior (scrolling in most cases) + * @param {Object} srcEvent + */ + preventSrc: function(srcEvent) { + this.manager.session.prevented = true; + srcEvent.preventDefault(); + } + }; + + /** + * when the touchActions are collected they are not a valid value, so we need to clean things up. * + * @param {String} actions + * @returns {*} + */ + function cleanTouchActions(actions) { + // none + if (inStr(actions, TOUCH_ACTION_NONE)) { + return TOUCH_ACTION_NONE; + } + + var hasPanX = inStr(actions, TOUCH_ACTION_PAN_X); + var hasPanY = inStr(actions, TOUCH_ACTION_PAN_Y); + + // if both pan-x and pan-y are set (different recognizers + // for different directions, e.g. horizontal pan but vertical swipe?) + // we need none (as otherwise with pan-x pan-y combined none of these + // recognizers will work, since the browser would handle all panning + if (hasPanX && hasPanY) { + return TOUCH_ACTION_NONE; + } + + // pan-x OR pan-y + if (hasPanX || hasPanY) { + return hasPanX ? TOUCH_ACTION_PAN_X : TOUCH_ACTION_PAN_Y; + } + + // manipulation + if (inStr(actions, TOUCH_ACTION_MANIPULATION)) { + return TOUCH_ACTION_MANIPULATION; + } + + return TOUCH_ACTION_AUTO; + } + + function getTouchActionProps() { + if (!NATIVE_TOUCH_ACTION) { + return false; + } + var touchMap = {}; + var cssSupports = window.CSS && window.CSS.supports; + ['auto', 'manipulation', 'pan-y', 'pan-x', 'pan-x pan-y', 'none'].forEach(function(val) { + + // If css.supports is not supported but there is native touch-action assume it supports + // all values. This is the case for IE 10 and 11. + touchMap[val] = cssSupports ? window.CSS.supports('touch-action', val) : true; + }); + return touchMap; + } + + /** + * Recognizer flow explained; * + * All recognizers have the initial state of POSSIBLE when a input session starts. + * The definition of a input session is from the first input until the last input, with all it's movement in it. * + * Example session for mouse-input: mousedown -> mousemove -> mouseup + * + * On each recognizing cycle (see Manager.recognize) the .recognize() method is executed + * which determines with state it should be. + * + * If the recognizer has the state FAILED, CANCELLED or RECOGNIZED (equals ENDED), it is reset to + * POSSIBLE to give it another change on the next cycle. + * + * Possible + * | + * +-----+---------------+ + * | | + * +-----+-----+ | + * | | | + * Failed Cancelled | + * +-------+------+ + * | | + * Recognized Began + * | + * Changed + * | + * Ended/Recognized + */ + var STATE_POSSIBLE = 1; + var STATE_BEGAN = 2; + var STATE_CHANGED = 4; + var STATE_ENDED = 8; + var STATE_RECOGNIZED = STATE_ENDED; + var STATE_CANCELLED = 16; + var STATE_FAILED = 32; + + /** + * Recognizer + * Every recognizer needs to extend from this class. + * @constructor + * @param {Object} options + */ + function Recognizer(options) { + this.options = assign({}, this.defaults, options || {}); + + this.id = uniqueId(); + + this.manager = null; + + // default is enable true + this.options.enable = ifUndefined(this.options.enable, true); + + this.state = STATE_POSSIBLE; + + this.simultaneous = {}; + this.requireFail = []; + } + + Recognizer.prototype = { + /** + * @virtual + * @type {Object} + */ + defaults: {}, + + /** + * set options + * @param {Object} options + * @return {Recognizer} + */ + set: function(options) { + assign(this.options, options); + + // also update the touchAction, in case something changed about the directions/enabled state + this.manager && this.manager.touchAction.update(); + return this; + }, + + /** + * recognize simultaneous with an other recognizer. + * @param {Recognizer} otherRecognizer + * @returns {Recognizer} this + */ + recognizeWith: function(otherRecognizer) { + if (invokeArrayArg(otherRecognizer, 'recognizeWith', this)) { + return this; + } + + var simultaneous = this.simultaneous; + otherRecognizer = getRecognizerByNameIfManager(otherRecognizer, this); + if (!simultaneous[otherRecognizer.id]) { + simultaneous[otherRecognizer.id] = otherRecognizer; + otherRecognizer.recognizeWith(this); + } + return this; + }, + + /** + * drop the simultaneous link. it doesnt remove the link on the other recognizer. + * @param {Recognizer} otherRecognizer + * @returns {Recognizer} this + */ + dropRecognizeWith: function(otherRecognizer) { + if (invokeArrayArg(otherRecognizer, 'dropRecognizeWith', this)) { + return this; + } + + otherRecognizer = getRecognizerByNameIfManager(otherRecognizer, this); + delete this.simultaneous[otherRecognizer.id]; + return this; + }, + + /** + * recognizer can only run when an other is failing + * @param {Recognizer} otherRecognizer + * @returns {Recognizer} this + */ + requireFailure: function(otherRecognizer) { + if (invokeArrayArg(otherRecognizer, 'requireFailure', this)) { + return this; + } + + var requireFail = this.requireFail; + otherRecognizer = getRecognizerByNameIfManager(otherRecognizer, this); + if (inArray(requireFail, otherRecognizer) === -1) { + requireFail.push(otherRecognizer); + otherRecognizer.requireFailure(this); + } + return this; + }, + + /** + * drop the requireFailure link. it does not remove the link on the other recognizer. + * @param {Recognizer} otherRecognizer + * @returns {Recognizer} this + */ + dropRequireFailure: function(otherRecognizer) { + if (invokeArrayArg(otherRecognizer, 'dropRequireFailure', this)) { + return this; + } + + otherRecognizer = getRecognizerByNameIfManager(otherRecognizer, this); + var index = inArray(this.requireFail, otherRecognizer); + if (index > -1) { + this.requireFail.splice(index, 1); + } + return this; + }, + + /** + * has require failures boolean + * @returns {boolean} + */ + hasRequireFailures: function() { + return this.requireFail.length > 0; + }, + + /** + * if the recognizer can recognize simultaneous with an other recognizer + * @param {Recognizer} otherRecognizer + * @returns {Boolean} + */ + canRecognizeWith: function(otherRecognizer) { + return !!this.simultaneous[otherRecognizer.id]; + }, + + /** + * You should use `tryEmit` instead of `emit` directly to check + * that all the needed recognizers has failed before emitting. + * @param {Object} input + */ + emit: function(input) { + var self = this; + var state = this.state; + + function emit(event) { + self.manager.emit(event, input); + } + + // 'panstart' and 'panmove' + if (state < STATE_ENDED) { + emit(self.options.event + stateStr(state)); + } + + emit(self.options.event); // simple 'eventName' events + + if (input.additionalEvent) { // additional event(panleft, panright, pinchin, pinchout...) + emit(input.additionalEvent); + } + + // panend and pancancel + if (state >= STATE_ENDED) { + emit(self.options.event + stateStr(state)); + } + }, + + /** + * Check that all the require failure recognizers has failed, + * if true, it emits a gesture event, + * otherwise, setup the state to FAILED. + * @param {Object} input + */ + tryEmit: function(input) { + if (this.canEmit()) { + return this.emit(input); + } + // it's failing anyway + this.state = STATE_FAILED; + }, + + /** + * can we emit? + * @returns {boolean} + */ + canEmit: function() { + var i = 0; + while (i < this.requireFail.length) { + if (!(this.requireFail[i].state & (STATE_FAILED | STATE_POSSIBLE))) { + return false; + } + i++; + } + return true; + }, + + /** + * update the recognizer + * @param {Object} inputData + */ + recognize: function(inputData) { + // make a new copy of the inputData + // so we can change the inputData without messing up the other recognizers + var inputDataClone = assign({}, inputData); + + // is is enabled and allow recognizing? + if (!boolOrFn(this.options.enable, [this, inputDataClone])) { + this.reset(); + this.state = STATE_FAILED; + return; + } + + // reset when we've reached the end + if (this.state & (STATE_RECOGNIZED | STATE_CANCELLED | STATE_FAILED)) { + this.state = STATE_POSSIBLE; + } + + this.state = this.process(inputDataClone); + + // the recognizer has recognized a gesture + // so trigger an event + if (this.state & (STATE_BEGAN | STATE_CHANGED | STATE_ENDED | STATE_CANCELLED)) { + this.tryEmit(inputDataClone); + } + }, + + /** + * return the state of the recognizer + * the actual recognizing happens in this method + * @virtual + * @param {Object} inputData + * @returns {Const} STATE + */ + process: function(inputData) { }, // jshint ignore:line + + /** + * return the preferred touch-action + * @virtual + * @returns {Array} + */ + getTouchAction: function() { }, + + /** + * called when the gesture isn't allowed to recognize + * like when another is being recognized or it is disabled + * @virtual + */ + reset: function() { } + }; + + /** + * get a usable string, used as event postfix + * @param {Const} state + * @returns {String} state + */ + function stateStr(state) { + if (state & STATE_CANCELLED) { + return 'cancel'; + } else if (state & STATE_ENDED) { + return 'end'; + } else if (state & STATE_CHANGED) { + return 'move'; + } else if (state & STATE_BEGAN) { + return 'start'; + } + return ''; + } + + /** + * direction cons to string + * @param {Const} direction + * @returns {String} + */ + function directionStr(direction) { + if (direction == DIRECTION_DOWN) { + return 'down'; + } else if (direction == DIRECTION_UP) { + return 'up'; + } else if (direction == DIRECTION_LEFT) { + return 'left'; + } else if (direction == DIRECTION_RIGHT) { + return 'right'; + } + return ''; + } + + /** + * get a recognizer by name if it is bound to a manager + * @param {Recognizer|String} otherRecognizer + * @param {Recognizer} recognizer + * @returns {Recognizer} + */ + function getRecognizerByNameIfManager(otherRecognizer, recognizer) { + var manager = recognizer.manager; + if (manager) { + return manager.get(otherRecognizer); + } + return otherRecognizer; + } + + /** + * This recognizer is just used as a base for the simple attribute recognizers. + * @constructor + * @extends Recognizer + */ + function AttrRecognizer() { + Recognizer.apply(this, arguments); + } + + inherit(AttrRecognizer, Recognizer, { + /** + * @namespace + * @memberof AttrRecognizer + */ + defaults: { + /** + * @type {Number} + * @default 1 + */ + pointers: 1 + }, + + /** + * Used to check if it the recognizer receives valid input, like input.distance > 10. + * @memberof AttrRecognizer + * @param {Object} input + * @returns {Boolean} recognized + */ + attrTest: function(input) { + var optionPointers = this.options.pointers; + return optionPointers === 0 || input.pointers.length === optionPointers; + }, + + /** + * Process the input and return the state for the recognizer + * @memberof AttrRecognizer + * @param {Object} input + * @returns {*} State + */ + process: function(input) { + var state = this.state; + var eventType = input.eventType; + + var isRecognized = state & (STATE_BEGAN | STATE_CHANGED); + var isValid = this.attrTest(input); + + // on cancel input and we've recognized before, return STATE_CANCELLED + if (isRecognized && (eventType & INPUT_CANCEL || !isValid)) { + return state | STATE_CANCELLED; + } else if (isRecognized || isValid) { + if (eventType & INPUT_END) { + return state | STATE_ENDED; + } else if (!(state & STATE_BEGAN)) { + return STATE_BEGAN; + } + return state | STATE_CHANGED; + } + return STATE_FAILED; + } + }); + + /** + * Pan + * Recognized when the pointer is down and moved in the allowed direction. + * @constructor + * @extends AttrRecognizer + */ + function PanRecognizer() { + AttrRecognizer.apply(this, arguments); + + this.pX = null; + this.pY = null; + } + + inherit(PanRecognizer, AttrRecognizer, { + /** + * @namespace + * @memberof PanRecognizer + */ + defaults: { + event: 'pan', + threshold: 10, + pointers: 1, + direction: DIRECTION_ALL + }, + + getTouchAction: function() { + var direction = this.options.direction; + var actions = []; + if (direction & DIRECTION_HORIZONTAL) { + actions.push(TOUCH_ACTION_PAN_Y); + } + if (direction & DIRECTION_VERTICAL) { + actions.push(TOUCH_ACTION_PAN_X); + } + return actions; + }, + + directionTest: function(input) { + var options = this.options; + var hasMoved = true; + var distance = input.distance; + var direction = input.direction; + var x = input.deltaX; + var y = input.deltaY; + + // lock to axis? + if (!(direction & options.direction)) { + if (options.direction & DIRECTION_HORIZONTAL) { + direction = (x === 0) ? DIRECTION_NONE : (x < 0) ? DIRECTION_LEFT : DIRECTION_RIGHT; + hasMoved = x != this.pX; + distance = Math.abs(input.deltaX); + } else { + direction = (y === 0) ? DIRECTION_NONE : (y < 0) ? DIRECTION_UP : DIRECTION_DOWN; + hasMoved = y != this.pY; + distance = Math.abs(input.deltaY); + } + } + input.direction = direction; + return hasMoved && distance > options.threshold && direction & options.direction; + }, + + attrTest: function(input) { + return AttrRecognizer.prototype.attrTest.call(this, input) && + (this.state & STATE_BEGAN || (!(this.state & STATE_BEGAN) && this.directionTest(input))); + }, + + emit: function(input) { + + this.pX = input.deltaX; + this.pY = input.deltaY; + + var direction = directionStr(input.direction); + + if (direction) { + input.additionalEvent = this.options.event + direction; + } + this._super.emit.call(this, input); + } + }); + + /** + * Pinch + * Recognized when two or more pointers are moving toward (zoom-in) or away from each other (zoom-out). + * @constructor + * @extends AttrRecognizer + */ + function PinchRecognizer() { + AttrRecognizer.apply(this, arguments); + } + + inherit(PinchRecognizer, AttrRecognizer, { + /** + * @namespace + * @memberof PinchRecognizer + */ + defaults: { + event: 'pinch', + threshold: 0, + pointers: 2 + }, + + getTouchAction: function() { + return [TOUCH_ACTION_NONE]; + }, + + attrTest: function(input) { + return this._super.attrTest.call(this, input) && + (Math.abs(input.scale - 1) > this.options.threshold || this.state & STATE_BEGAN); + }, + + emit: function(input) { + if (input.scale !== 1) { + var inOut = input.scale < 1 ? 'in' : 'out'; + input.additionalEvent = this.options.event + inOut; + } + this._super.emit.call(this, input); + } + }); + + /** + * Press + * Recognized when the pointer is down for x ms without any movement. + * @constructor + * @extends Recognizer + */ + function PressRecognizer() { + Recognizer.apply(this, arguments); + + this._timer = null; + this._input = null; + } + + inherit(PressRecognizer, Recognizer, { + /** + * @namespace + * @memberof PressRecognizer + */ + defaults: { + event: 'press', + pointers: 1, + time: 251, // minimal time of the pointer to be pressed + threshold: 9 // a minimal movement is ok, but keep it low + }, + + getTouchAction: function() { + return [TOUCH_ACTION_AUTO]; + }, + + process: function(input) { + var options = this.options; + var validPointers = input.pointers.length === options.pointers; + var validMovement = input.distance < options.threshold; + var validTime = input.deltaTime > options.time; + + this._input = input; + + // we only allow little movement + // and we've reached an end event, so a tap is possible + if (!validMovement || !validPointers || (input.eventType & (INPUT_END | INPUT_CANCEL) && !validTime)) { + this.reset(); + } else if (input.eventType & INPUT_START) { + this.reset(); + this._timer = setTimeoutContext(function() { + this.state = STATE_RECOGNIZED; + this.tryEmit(); + }, options.time, this); + } else if (input.eventType & INPUT_END) { + return STATE_RECOGNIZED; + } + return STATE_FAILED; + }, + + reset: function() { + clearTimeout(this._timer); + }, + + emit: function(input) { + if (this.state !== STATE_RECOGNIZED) { + return; + } + + if (input && (input.eventType & INPUT_END)) { + this.manager.emit(this.options.event + 'up', input); + } else { + this._input.timeStamp = now(); + this.manager.emit(this.options.event, this._input); + } + } + }); + + /** + * Rotate + * Recognized when two or more pointer are moving in a circular motion. + * @constructor + * @extends AttrRecognizer + */ + function RotateRecognizer() { + AttrRecognizer.apply(this, arguments); + } + + inherit(RotateRecognizer, AttrRecognizer, { + /** + * @namespace + * @memberof RotateRecognizer + */ + defaults: { + event: 'rotate', + threshold: 0, + pointers: 2 + }, + + getTouchAction: function() { + return [TOUCH_ACTION_NONE]; + }, + + attrTest: function(input) { + return this._super.attrTest.call(this, input) && + (Math.abs(input.rotation) > this.options.threshold || this.state & STATE_BEGAN); + } + }); + + /** + * Swipe + * Recognized when the pointer is moving fast (velocity), with enough distance in the allowed direction. + * @constructor + * @extends AttrRecognizer + */ + function SwipeRecognizer() { + AttrRecognizer.apply(this, arguments); + } + + inherit(SwipeRecognizer, AttrRecognizer, { + /** + * @namespace + * @memberof SwipeRecognizer + */ + defaults: { + event: 'swipe', + threshold: 10, + velocity: 0.3, + direction: DIRECTION_HORIZONTAL | DIRECTION_VERTICAL, + pointers: 1 + }, + + getTouchAction: function() { + return PanRecognizer.prototype.getTouchAction.call(this); + }, + + attrTest: function(input) { + var direction = this.options.direction; + var velocity; + + if (direction & (DIRECTION_HORIZONTAL | DIRECTION_VERTICAL)) { + velocity = input.overallVelocity; + } else if (direction & DIRECTION_HORIZONTAL) { + velocity = input.overallVelocityX; + } else if (direction & DIRECTION_VERTICAL) { + velocity = input.overallVelocityY; + } + + return this._super.attrTest.call(this, input) && + direction & input.offsetDirection && + input.distance > this.options.threshold && + input.maxPointers == this.options.pointers && + abs(velocity) > this.options.velocity && input.eventType & INPUT_END; + }, + + emit: function(input) { + var direction = directionStr(input.offsetDirection); + if (direction) { + this.manager.emit(this.options.event + direction, input); + } + + this.manager.emit(this.options.event, input); + } + }); + + /** + * A tap is ecognized when the pointer is doing a small tap/click. Multiple taps are recognized if they occur + * between the given interval and position. The delay option can be used to recognize multi-taps without firing + * a single tap. + * + * The eventData from the emitted event contains the property `tapCount`, which contains the amount of + * multi-taps being recognized. + * @constructor + * @extends Recognizer + */ + function TapRecognizer() { + Recognizer.apply(this, arguments); + + // previous time and center, + // used for tap counting + this.pTime = false; + this.pCenter = false; + + this._timer = null; + this._input = null; + this.count = 0; + } + + inherit(TapRecognizer, Recognizer, { + /** + * @namespace + * @memberof PinchRecognizer + */ + defaults: { + event: 'tap', + pointers: 1, + taps: 1, + interval: 300, // max time between the multi-tap taps + time: 250, // max time of the pointer to be down (like finger on the screen) + threshold: 9, // a minimal movement is ok, but keep it low + posThreshold: 10 // a multi-tap can be a bit off the initial position + }, + + getTouchAction: function() { + return [TOUCH_ACTION_MANIPULATION]; + }, + + process: function(input) { + var options = this.options; + + var validPointers = input.pointers.length === options.pointers; + var validMovement = input.distance < options.threshold; + var validTouchTime = input.deltaTime < options.time; + + this.reset(); + + if ((input.eventType & INPUT_START) && (this.count === 0)) { + return this.failTimeout(); + } + + // we only allow little movement + // and we've reached an end event, so a tap is possible + if (validMovement && validTouchTime && validPointers) { + if (input.eventType != INPUT_END) { + return this.failTimeout(); + } + + var validInterval = this.pTime ? (input.timeStamp - this.pTime < options.interval) : true; + var validMultiTap = !this.pCenter || getDistance(this.pCenter, input.center) < options.posThreshold; + + this.pTime = input.timeStamp; + this.pCenter = input.center; + + if (!validMultiTap || !validInterval) { + this.count = 1; + } else { + this.count += 1; + } + + this._input = input; + + // if tap count matches we have recognized it, + // else it has began recognizing... + var tapCount = this.count % options.taps; + if (tapCount === 0) { + // no failing requirements, immediately trigger the tap event + // or wait as long as the multitap interval to trigger + if (!this.hasRequireFailures()) { + return STATE_RECOGNIZED; + } else { + this._timer = setTimeoutContext(function() { + this.state = STATE_RECOGNIZED; + this.tryEmit(); + }, options.interval, this); + return STATE_BEGAN; + } + } + } + return STATE_FAILED; + }, + + failTimeout: function() { + this._timer = setTimeoutContext(function() { + this.state = STATE_FAILED; + }, this.options.interval, this); + return STATE_FAILED; + }, + + reset: function() { + clearTimeout(this._timer); + }, + + emit: function() { + if (this.state == STATE_RECOGNIZED) { + this._input.tapCount = this.count; + this.manager.emit(this.options.event, this._input); + } + } + }); + + /** + * Simple way to create a manager with a default set of recognizers. + * @param {HTMLElement} element + * @param {Object} [options] + * @constructor + */ + function Hammer(element, options) { + options = options || {}; + options.recognizers = ifUndefined(options.recognizers, Hammer.defaults.preset); + return new Manager(element, options); + } + + /** + * @const {string} + */ + Hammer.VERSION = '2.0.7'; + + /** + * default settings + * @namespace + */ + Hammer.defaults = { + /** + * set if DOM events are being triggered. + * But this is slower and unused by simple implementations, so disabled by default. + * @type {Boolean} + * @default false + */ + domEvents: false, + + /** + * The value for the touchAction property/fallback. + * When set to `compute` it will magically set the correct value based on the added recognizers. + * @type {String} + * @default compute + */ + touchAction: TOUCH_ACTION_COMPUTE, + + /** + * @type {Boolean} + * @default true + */ + enable: true, + + /** + * EXPERIMENTAL FEATURE -- can be removed/changed + * Change the parent input target element. + * If Null, then it is being set the to main element. + * @type {Null|EventTarget} + * @default null + */ + inputTarget: null, + + /** + * force an input class + * @type {Null|Function} + * @default null + */ + inputClass: null, + + /** + * Default recognizer setup when calling `Hammer()` + * When creating a new Manager these will be skipped. + * @type {Array} + */ + preset: [ + // RecognizerClass, options, [recognizeWith, ...], [requireFailure, ...] + [RotateRecognizer, {enable: false}], + [PinchRecognizer, {enable: false}, ['rotate']], + [SwipeRecognizer, {direction: DIRECTION_HORIZONTAL}], + [PanRecognizer, {direction: DIRECTION_HORIZONTAL}, ['swipe']], + [TapRecognizer], + [TapRecognizer, {event: 'doubletap', taps: 2}, ['tap']], + [PressRecognizer] + ], + + /** + * Some CSS properties can be used to improve the working of Hammer. + * Add them to this method and they will be set when creating a new Manager. + * @namespace + */ + cssProps: { + /** + * Disables text selection to improve the dragging gesture. Mainly for desktop browsers. + * @type {String} + * @default 'none' + */ + userSelect: 'none', + + /** + * Disable the Windows Phone grippers when pressing an element. + * @type {String} + * @default 'none' + */ + touchSelect: 'none', + + /** + * Disables the default callout shown when you touch and hold a touch target. + * On iOS, when you touch and hold a touch target such as a link, Safari displays + * a callout containing information about the link. This property allows you to disable that callout. + * @type {String} + * @default 'none' + */ + touchCallout: 'none', + + /** + * Specifies whether zooming is enabled. Used by IE10> + * @type {String} + * @default 'none' + */ + contentZooming: 'none', + + /** + * Specifies that an entire element should be draggable instead of its contents. Mainly for desktop browsers. + * @type {String} + * @default 'none' + */ + userDrag: 'none', + + /** + * Overrides the highlight color shown when the user taps a link or a JavaScript + * clickable element in iOS. This property obeys the alpha value, if specified. + * @type {String} + * @default 'rgba(0,0,0,0)' + */ + tapHighlightColor: 'rgba(0,0,0,0)' + } + }; + + var STOP = 1; + var FORCED_STOP = 2; + + /** + * Manager + * @param {HTMLElement} element + * @param {Object} [options] + * @constructor + */ + function Manager(element, options) { + this.options = assign({}, Hammer.defaults, options || {}); + + this.options.inputTarget = this.options.inputTarget || element; + + this.handlers = {}; + this.session = {}; + this.recognizers = []; + this.oldCssProps = {}; + + this.element = element; + this.input = createInputInstance(this); + this.touchAction = new TouchAction(this, this.options.touchAction); + + toggleCssProps(this, true); + + each(this.options.recognizers, function(item) { + var recognizer = this.add(new (item[0])(item[1])); + item[2] && recognizer.recognizeWith(item[2]); + item[3] && recognizer.requireFailure(item[3]); + }, this); + } + + Manager.prototype = { + /** + * set options + * @param {Object} options + * @returns {Manager} + */ + set: function(options) { + assign(this.options, options); + + // Options that need a little more setup + if (options.touchAction) { + this.touchAction.update(); + } + if (options.inputTarget) { + // Clean up existing event listeners and reinitialize + this.input.destroy(); + this.input.target = options.inputTarget; + this.input.init(); + } + return this; + }, + + /** + * stop recognizing for this session. + * This session will be discarded, when a new [input]start event is fired. + * When forced, the recognizer cycle is stopped immediately. + * @param {Boolean} [force] + */ + stop: function(force) { + this.session.stopped = force ? FORCED_STOP : STOP; + }, + + /** + * run the recognizers! + * called by the inputHandler function on every movement of the pointers (touches) + * it walks through all the recognizers and tries to detect the gesture that is being made + * @param {Object} inputData + */ + recognize: function(inputData) { + var session = this.session; + if (session.stopped) { + return; + } + + // run the touch-action polyfill + this.touchAction.preventDefaults(inputData); + + var recognizer; + var recognizers = this.recognizers; + + // this holds the recognizer that is being recognized. + // so the recognizer's state needs to be BEGAN, CHANGED, ENDED or RECOGNIZED + // if no recognizer is detecting a thing, it is set to `null` + var curRecognizer = session.curRecognizer; + + // reset when the last recognizer is recognized + // or when we're in a new session + if (!curRecognizer || (curRecognizer && curRecognizer.state & STATE_RECOGNIZED)) { + curRecognizer = session.curRecognizer = null; + } + + var i = 0; + while (i < recognizers.length) { + recognizer = recognizers[i]; + + // find out if we are allowed try to recognize the input for this one. + // 1. allow if the session is NOT forced stopped (see the .stop() method) + // 2. allow if we still haven't recognized a gesture in this session, or the this recognizer is the one + // that is being recognized. + // 3. allow if the recognizer is allowed to run simultaneous with the current recognized recognizer. + // this can be setup with the `recognizeWith()` method on the recognizer. + if (session.stopped !== FORCED_STOP && ( // 1 + !curRecognizer || recognizer == curRecognizer || // 2 + recognizer.canRecognizeWith(curRecognizer))) { // 3 + recognizer.recognize(inputData); + } else { + recognizer.reset(); + } + + // if the recognizer has been recognizing the input as a valid gesture, we want to store this one as the + // current active recognizer. but only if we don't already have an active recognizer + if (!curRecognizer && recognizer.state & (STATE_BEGAN | STATE_CHANGED | STATE_ENDED)) { + curRecognizer = session.curRecognizer = recognizer; + } + i++; + } + }, + + /** + * get a recognizer by its event name. + * @param {Recognizer|String} recognizer + * @returns {Recognizer|Null} + */ + get: function(recognizer) { + if (recognizer instanceof Recognizer) { + return recognizer; + } + + var recognizers = this.recognizers; + for (var i = 0; i < recognizers.length; i++) { + if (recognizers[i].options.event == recognizer) { + return recognizers[i]; + } + } + return null; + }, + + /** + * add a recognizer to the manager + * existing recognizers with the same event name will be removed + * @param {Recognizer} recognizer + * @returns {Recognizer|Manager} + */ + add: function(recognizer) { + if (invokeArrayArg(recognizer, 'add', this)) { + return this; + } + + // remove existing + var existing = this.get(recognizer.options.event); + if (existing) { + this.remove(existing); + } + + this.recognizers.push(recognizer); + recognizer.manager = this; + + this.touchAction.update(); + return recognizer; + }, + + /** + * remove a recognizer by name or instance + * @param {Recognizer|String} recognizer + * @returns {Manager} + */ + remove: function(recognizer) { + if (invokeArrayArg(recognizer, 'remove', this)) { + return this; + } + + recognizer = this.get(recognizer); + + // let's make sure this recognizer exists + if (recognizer) { + var recognizers = this.recognizers; + var index = inArray(recognizers, recognizer); + + if (index !== -1) { + recognizers.splice(index, 1); + this.touchAction.update(); + } + } + + return this; + }, + + /** + * bind event + * @param {String} events + * @param {Function} handler + * @returns {EventEmitter} this + */ + on: function(events, handler) { + if (events === undefined) { + return; + } + if (handler === undefined) { + return; + } + + var handlers = this.handlers; + each(splitStr(events), function(event) { + handlers[event] = handlers[event] || []; + handlers[event].push(handler); + }); + return this; + }, + + /** + * unbind event, leave emit blank to remove all handlers + * @param {String} events + * @param {Function} [handler] + * @returns {EventEmitter} this + */ + off: function(events, handler) { + if (events === undefined) { + return; + } + + var handlers = this.handlers; + each(splitStr(events), function(event) { + if (!handler) { + delete handlers[event]; + } else { + handlers[event] && handlers[event].splice(inArray(handlers[event], handler), 1); + } + }); + return this; + }, + + /** + * emit event to the listeners + * @param {String} event + * @param {Object} data + */ + emit: function(event, data) { + // we also want to trigger dom events + if (this.options.domEvents) { + triggerDomEvent(event, data); + } + + // no handlers, so skip it all + var handlers = this.handlers[event] && this.handlers[event].slice(); + if (!handlers || !handlers.length) { + return; + } + + data.type = event; + data.preventDefault = function() { + data.srcEvent.preventDefault(); + }; + + var i = 0; + while (i < handlers.length) { + handlers[i](data); + i++; + } + }, + + /** + * destroy the manager and unbinds all events + * it doesn't unbind dom events, that is the user own responsibility + */ + destroy: function() { + this.element && toggleCssProps(this, false); + + this.handlers = {}; + this.session = {}; + this.input.destroy(); + this.element = null; + } + }; + + /** + * add/remove the css properties as defined in manager.options.cssProps + * @param {Manager} manager + * @param {Boolean} add + */ + function toggleCssProps(manager, add) { + var element = manager.element; + if (!element.style) { + return; + } + var prop; + each(manager.options.cssProps, function(value, name) { + prop = prefixed(element.style, name); + if (add) { + manager.oldCssProps[prop] = element.style[prop]; + element.style[prop] = value; + } else { + element.style[prop] = manager.oldCssProps[prop] || ''; + } + }); + if (!add) { + manager.oldCssProps = {}; + } + } + + /** + * trigger dom event + * @param {String} event + * @param {Object} data + */ + function triggerDomEvent(event, data) { + var gestureEvent = document.createEvent('Event'); + gestureEvent.initEvent(event, true, true); + gestureEvent.gesture = data; + data.target.dispatchEvent(gestureEvent); + } + + assign(Hammer, { + INPUT_START: INPUT_START, + INPUT_MOVE: INPUT_MOVE, + INPUT_END: INPUT_END, + INPUT_CANCEL: INPUT_CANCEL, + + STATE_POSSIBLE: STATE_POSSIBLE, + STATE_BEGAN: STATE_BEGAN, + STATE_CHANGED: STATE_CHANGED, + STATE_ENDED: STATE_ENDED, + STATE_RECOGNIZED: STATE_RECOGNIZED, + STATE_CANCELLED: STATE_CANCELLED, + STATE_FAILED: STATE_FAILED, + + DIRECTION_NONE: DIRECTION_NONE, + DIRECTION_LEFT: DIRECTION_LEFT, + DIRECTION_RIGHT: DIRECTION_RIGHT, + DIRECTION_UP: DIRECTION_UP, + DIRECTION_DOWN: DIRECTION_DOWN, + DIRECTION_HORIZONTAL: DIRECTION_HORIZONTAL, + DIRECTION_VERTICAL: DIRECTION_VERTICAL, + DIRECTION_ALL: DIRECTION_ALL, + + Manager: Manager, + Input: Input, + TouchAction: TouchAction, + + TouchInput: TouchInput, + MouseInput: MouseInput, + PointerEventInput: PointerEventInput, + TouchMouseInput: TouchMouseInput, + SingleTouchInput: SingleTouchInput, + + Recognizer: Recognizer, + AttrRecognizer: AttrRecognizer, + Tap: TapRecognizer, + Pan: PanRecognizer, + Swipe: SwipeRecognizer, + Pinch: PinchRecognizer, + Rotate: RotateRecognizer, + Press: PressRecognizer, + + on: addEventListeners, + off: removeEventListeners, + each: each, + merge: merge, + extend: extend, + assign: assign, + inherit: inherit, + bindFn: bindFn, + prefixed: prefixed + }); + + // jquery.hammer.js + // This jQuery plugin is just a small wrapper around the Hammer() class. + // It also extends the Manager.emit method by triggering jQuery events. + // $(element).hammer(options).bind("pan", myPanHandler); + // The Hammer instance is stored at $element.data("hammer"). + // https://github.com/hammerjs/jquery.hammer.js + + (function($, Hammer) { + function hammerify(el, options) { + var $el = $(el); + if (!$el.data('hammer')) { + $el.data('hammer', new Hammer($el[0], options)); + } + } + + $.fn.hammer = function(options) { + return this.each(function() { + hammerify(this, options); + }); + }; + + // extend the emit method to also trigger jQuery events + Hammer.Manager.prototype.emit = (function(originalEmit) { + return function(type, data) { + originalEmit.call(this, type, data); + $(this.element).trigger({ + type: type, + gesture: data + }); + }; + })(Hammer.Manager.prototype.emit); + })($, Hammer); + + module.exports = UI.Hammer = Hammer; + + +/***/ }, +/* 4 */ +/***/ function(module, exports, __webpack_require__) { + + 'use strict'; + + var UI = __webpack_require__(2); + + /** + * Add to Homescreen v3.2.2 + * (c) 2015 Matteo Spinelli + * @license: http://cubiq.org/license + */ + + // Check for addEventListener browser support (prevent errors in IE<9) + var _eventListener = 'addEventListener' in window; + + // Check if document is loaded, needed by autostart + var _DOMReady = false; + if (document.readyState === 'complete') { + _DOMReady = true; + } else if (_eventListener) { + window.addEventListener('load', loaded, false); + } + + function loaded() { + window.removeEventListener('load', loaded, false); + _DOMReady = true; + } + + // regex used to detect if app has been added to the homescreen + var _reSmartURL = /\/ath(\/)?$/; + var _reQueryString = /([\?&]ath=[^&]*$|&ath=[^&]*(&))/; + + // singleton + var _instance; + function ath(options) { + _instance = _instance || new ath.Class(options); + + return _instance; + } + + // message in all supported languages + ath.intl = { + en_us: { + ios: 'To add this web app to the home screen: tap %icon and then Add to Home Screen.', + android: 'To add this web app to the home screen open the browser option menu and tap on Add to homescreen. The menu can be accessed by pressing the menu hardware button if your device has one, or by tapping the top right menu icon icon.' + }, + + zh_cn: { + ios: '如要把应用程式加至主屏幕,请点击%icon, 然后加至主屏幕', + android: 'To add this web app to the home screen open the browser option menu and tap on Add to homescreen. The menu can be accessed by pressing the menu hardware button if your device has one, or by tapping the top right menu icon icon.' + }, + + zh_tw: { + ios: '如要把應用程式加至主屏幕, 請點擊%icon, 然後加至主屏幕.', + android: 'To add this web app to the home screen open the browser option menu and tap on Add to homescreen. The menu can be accessed by pressing the menu hardware button if your device has one, or by tapping the top right menu icon icon.' + } + }; + + // Add 2 characters language support (Android mostly) + for (var lang in ath.intl) { + ath.intl[lang.substr(0, 2)] = ath.intl[lang]; + } + + // default options + ath.defaults = { + appID: 'org.cubiq.addtohome', // local storage name (no need to change) + fontSize: 15, // base font size, used to properly resize the popup based on viewport scale factor + debug: false, // override browser checks + logging: false, // log reasons for showing or not showing to js console; defaults to true when debug is true + modal: false, // prevent further actions until the message is closed + mandatory: false, // you can't proceed if you don't add the app to the homescreen + autostart: true, // show the message automatically + skipFirstVisit: false, // show only to returning visitors (ie: skip the first time you visit) + startDelay: 1, // display the message after that many seconds from page load + lifespan: 15, // life of the message in seconds + displayPace: 1440, // minutes before the message is shown again (0: display every time, default 24 hours) + maxDisplayCount: 0, // absolute maximum number of times the message will be shown to the user (0: no limit) + icon: true, // add touch icon to the message + message: '', // the message can be customized + validLocation: [], // list of pages where the message will be shown (array of regexes) + onInit: null, // executed on instance creation + onShow: null, // executed when the message is shown + onRemove: null, // executed when the message is removed + onAdd: null, // when the application is launched the first time from the homescreen (guesstimate) + onPrivate: null, // executed if user is in private mode + privateModeOverride: false, // show the message even in private mode (very rude) + detectHomescreen: false // try to detect if the site has been added to the homescreen (false | true | 'hash' | 'queryString' | 'smartURL') + }; + + // browser info and capability + var _ua = window.navigator.userAgent; + + var _nav = window.navigator; + _extend(ath, { + hasToken: document.location.hash == '#ath' || _reSmartURL.test(document.location.href) || _reQueryString.test(document.location.search), + isRetina: window.devicePixelRatio && window.devicePixelRatio > 1, + isIDevice: (/iphone|ipod|ipad/i).test(_ua), + isMobileChrome: _ua.indexOf('Android') > -1 && (/Chrome\/[.0-9]*/).test(_ua) && _ua.indexOf("Version") == -1, + isMobileIE: _ua.indexOf('Windows Phone') > -1, + language: _nav.language && _nav.language.toLowerCase().replace('-', '_') || '' + }); + + // falls back to en_us if language is unsupported + ath.language = ath.language && ath.language in ath.intl ? ath.language : 'en_us'; + + ath.isMobileSafari = ath.isIDevice && _ua.indexOf('Safari') > -1 && _ua.indexOf('CriOS') < 0; + ath.OS = ath.isIDevice ? 'ios' : ath.isMobileChrome ? 'android' : ath.isMobileIE ? 'windows' : 'unsupported'; + + ath.OSVersion = _ua.match(/(OS|Android) (\d+[_\.]\d+)/); + ath.OSVersion = ath.OSVersion && ath.OSVersion[2] ? +ath.OSVersion[2].replace('_', '.') : 0; + + ath.isStandalone = 'standalone' in window.navigator && window.navigator.standalone; + ath.isTablet = (ath.isMobileSafari && _ua.indexOf('iPad') > -1) || (ath.isMobileChrome && _ua.indexOf('Mobile') < 0); + + ath.isCompatible = (ath.isMobileSafari && ath.OSVersion >= 6) || ath.isMobileChrome; // TODO: add winphone + + var _defaultSession = { + lastDisplayTime: 0, // last time we displayed the message + returningVisitor: false, // is this the first time you visit + displayCount: 0, // number of times the message has been shown + optedout: false, // has the user opted out + added: false // has been actually added to the homescreen + }; + + ath.removeSession = function(appID) { + try { + if (!localStorage) { + throw new Error('localStorage is not defined'); + } + + localStorage.removeItem(appID || ath.defaults.appID); + } catch (e) { + // we are most likely in private mode + } + }; + + ath.doLog = function(logStr) { + if (this.options.logging) { + console.log(logStr); + } + }; + + ath.Class = function(options) { + // class methods + this.doLog = ath.doLog; + + // merge default options with user config + this.options = _extend({}, ath.defaults); + _extend(this.options, options); + // override defaults that are dependent on each other + if (this.options.debug) { + this.options.logging = true; + } + + // IE<9 so exit (I hate you, really) + if (!_eventListener) { + return; + } + + // normalize some options + this.options.mandatory = this.options.mandatory && ( 'standalone' in window.navigator || this.options.debug ); + this.options.modal = this.options.modal || this.options.mandatory; + if (this.options.mandatory) { + this.options.startDelay = -0.5; // make the popup hasty + } + this.options.detectHomescreen = this.options.detectHomescreen === true ? 'hash' : this.options.detectHomescreen; + + // setup the debug environment + if (this.options.debug) { + ath.isCompatible = true; + ath.OS = typeof this.options.debug == 'string' ? this.options.debug : ath.OS == 'unsupported' ? 'android' : ath.OS; + ath.OSVersion = ath.OS == 'ios' ? '8' : '4'; + } + + // the element the message will be appended to + this.container = document.documentElement; + + // load session + this.session = this.getItem(this.options.appID); + this.session = this.session ? JSON.parse(this.session) : undefined; + + // user most likely came from a direct link containing our token, we don't need it and we remove it + if (ath.hasToken && ( !ath.isCompatible || !this.session )) { + ath.hasToken = false; + _removeToken(); + } + + // the device is not supported + if (!ath.isCompatible) { + this.doLog("Add to homescreen: not displaying callout because device not supported"); + return; + } + + this.session = this.session || _defaultSession; + + // check if we can use the local storage + try { + if (!localStorage) { + throw new Error('localStorage is not defined'); + } + + localStorage.setItem(this.options.appID, JSON.stringify(this.session)); + ath.hasLocalStorage = true; + } catch (e) { + // we are most likely in private mode + ath.hasLocalStorage = false; + + if (this.options.onPrivate) { + this.options.onPrivate.call(this); + } + } + + // check if this is a valid location + var isValidLocation = !this.options.validLocation.length; + for (var i = this.options.validLocation.length; i--;) { + if (this.options.validLocation[i].test(document.location.href)) { + isValidLocation = true; + break; + } + } + + // check compatibility with old versions of add to homescreen. Opt-out if an old session is found + if (this.getItem('addToHome')) { + this.optOut(); + } + + // critical errors: + if (this.session.optedout) { + this.doLog("Add to homescreen: not displaying callout because user opted out"); + return; + } + if (this.session.added) { + this.doLog("Add to homescreen: not displaying callout because already added to the homescreen"); + return; + } + if (!isValidLocation) { + this.doLog("Add to homescreen: not displaying callout because not a valid location"); + return; + } + + // check if the app is in stand alone mode + if (ath.isStandalone) { + // execute the onAdd event if we haven't already + if (!this.session.added) { + this.session.added = true; + this.updateSession(); + + if (this.options.onAdd && ath.hasLocalStorage) { // double check on localstorage to avoid multiple calls to the custom event + this.options.onAdd.call(this); + } + } + + this.doLog("Add to homescreen: not displaying callout because in standalone mode"); + return; + } + + // (try to) check if the page has been added to the homescreen + if (this.options.detectHomescreen) { + // the URL has the token, we are likely coming from the homescreen + if (ath.hasToken) { + _removeToken(); // we don't actually need the token anymore, we remove it to prevent redistribution + + // this is called the first time the user opens the app from the homescreen + if (!this.session.added) { + this.session.added = true; + this.updateSession(); + + if (this.options.onAdd && ath.hasLocalStorage) { // double check on localstorage to avoid multiple calls to the custom event + this.options.onAdd.call(this); + } + } + + this.doLog("Add to homescreen: not displaying callout because URL has token, so we are likely coming from homescreen"); + return; + } + + // URL doesn't have the token, so add it + if (this.options.detectHomescreen == 'hash') { + history.replaceState('', window.document.title, document.location.href + '#ath'); + } else if (this.options.detectHomescreen == 'smartURL') { + history.replaceState('', window.document.title, document.location.href.replace(/(\/)?$/, '/ath$1')); + } else { + history.replaceState('', window.document.title, document.location.href + (document.location.search ? '&' : '?' ) + 'ath='); + } + } + + // check if this is a returning visitor + if (!this.session.returningVisitor) { + this.session.returningVisitor = true; + this.updateSession(); + + // we do not show the message if this is your first visit + if (this.options.skipFirstVisit) { + this.doLog("Add to homescreen: not displaying callout because skipping first visit"); + return; + } + } + + // we do no show the message in private mode + if (!this.options.privateModeOverride && !ath.hasLocalStorage) { + this.doLog("Add to homescreen: not displaying callout because browser is in private mode"); + return; + } + + // all checks passed, ready to display + this.ready = true; + + if (this.options.onInit) { + this.options.onInit.call(this); + } + + if (this.options.autostart) { + this.doLog("Add to homescreen: autostart displaying callout"); + this.show(); + } + }; + + ath.Class.prototype = { + // event type to method conversion + events: { + load: '_delayedShow', + error: '_delayedShow', + orientationchange: 'resize', + resize: 'resize', + scroll: 'resize', + click: 'remove', + touchmove: '_preventDefault', + transitionend: '_removeElements', + webkitTransitionEnd: '_removeElements', + MSTransitionEnd: '_removeElements' + }, + + handleEvent: function(e) { + var type = this.events[e.type]; + if (type) { + this[type](e); + } + }, + + show: function(force) { + // in autostart mode wait for the document to be ready + if (this.options.autostart && !_DOMReady) { + setTimeout(this.show.bind(this), 50); + // we are not displaying callout because DOM not ready, but don't log that because + // it would log too frequently + return; + } + + // message already on screen + if (this.shown) { + this.doLog("Add to homescreen: not displaying callout because already shown on screen"); + return; + } + + var now = Date.now(); + var lastDisplayTime = this.session.lastDisplayTime; + + if (force !== true) { + // this is needed if autostart is disabled and you programmatically call the show() method + if (!this.ready) { + this.doLog("Add to homescreen: not displaying callout because not ready"); + return; + } + + // we obey the display pace (prevent the message to popup too often) + if (now - lastDisplayTime < this.options.displayPace * 60000) { + this.doLog("Add to homescreen: not displaying callout because displayed recently"); + return; + } + + // obey the maximum number of display count + if (this.options.maxDisplayCount && this.session.displayCount >= this.options.maxDisplayCount) { + this.doLog("Add to homescreen: not displaying callout because displayed too many times already"); + return; + } + } + + this.shown = true; + + // increment the display count + this.session.lastDisplayTime = now; + this.session.displayCount++; + this.updateSession(); + + // try to get the highest resolution application icon + if (!this.applicationIcon) { + if (ath.OS == 'ios') { + this.applicationIcon = document.querySelector('head link[rel^=apple-touch-icon][sizes="152x152"],head link[rel^=apple-touch-icon][sizes="144x144"],head link[rel^=apple-touch-icon][sizes="120x120"],head link[rel^=apple-touch-icon][sizes="114x114"],head link[rel^=apple-touch-icon]'); + } else { + this.applicationIcon = document.querySelector('head link[rel^="shortcut icon"][sizes="196x196"],head link[rel^=apple-touch-icon]'); + } + } + + var message = ''; + + if (typeof this.options.message == 'object' && ath.language in this.options.message) { // use custom language message + message = this.options.message[ath.language][ath.OS]; + } else if (typeof this.options.message == 'object' && ath.OS in this.options.message) { // use custom os message + message = this.options.message[ath.OS]; + } else if (this.options.message in ath.intl) { // you can force the locale + message = ath.intl[this.options.message][ath.OS]; + } else if (this.options.message !== '') { // use a custom message + message = this.options.message; + } else if (ath.OS in ath.intl[ath.language]) { // otherwise we use our message + message = ath.intl[ath.language][ath.OS]; + } + + // add the action icon + message = '

' + message.replace('%icon', 'icon') + '

'; + + // create the message container + this.viewport = document.createElement('div'); + this.viewport.className = 'ath-viewport'; + if (this.options.modal) { + this.viewport.className += ' ath-modal'; + } + if (this.options.mandatory) { + this.viewport.className += ' ath-mandatory'; + } + this.viewport.style.position = 'absolute'; + + // create the actual message element + this.element = document.createElement('div'); + this.element.className = 'ath-container ath-' + ath.OS + ' ath-' + ath.OS + (ath.OSVersion + '').substr(0, 1) + ' ath-' + (ath.isTablet ? 'tablet' : 'phone'); + this.element.style.cssText = '-webkit-transition-property:-webkit-transform,opacity;-webkit-transition-duration:0s;-webkit-transition-timing-function:ease-out;transition-property:transform,opacity;transition-duration:0s;transition-timing-function:ease-out;'; + this.element.style.webkitTransform = 'translate3d(0,-' + window.innerHeight + 'px,0)'; + this.element.style.transform = 'translate3d(0,-' + window.innerHeight + 'px,0)'; + + // add the application icon + if (this.options.icon && this.applicationIcon) { + this.element.className += ' ath-icon'; + this.img = document.createElement('img'); + this.img.className = 'ath-application-icon'; + this.img.addEventListener('load', this, false); + this.img.addEventListener('error', this, false); + + this.img.src = this.applicationIcon.href; + this.element.appendChild(this.img); + } + + this.element.innerHTML += message; + + // we are not ready to show, place the message out of sight + this.viewport.style.left = '-99999em'; + + // attach all elements to the DOM + this.viewport.appendChild(this.element); + this.container.appendChild(this.viewport); + + // if we don't have to wait for an image to load, show the message right away + if (this.img) { + this.doLog("Add to homescreen: not displaying callout because waiting for img to load"); + } else { + this._delayedShow(); + } + }, + + _delayedShow: function(e) { + setTimeout(this._show.bind(this), this.options.startDelay * 1000 + 500); + }, + + _show: function() { + var that = this; + + // update the viewport size and orientation + this.updateViewport(); + + // reposition/resize the message on orientation change + window.addEventListener('resize', this, false); + window.addEventListener('scroll', this, false); + window.addEventListener('orientationchange', this, false); + + if (this.options.modal) { + // lock any other interaction + document.addEventListener('touchmove', this, true); + } + + // Enable closing after 1 second + if (!this.options.mandatory) { + setTimeout(function() { + that.element.addEventListener('click', that, true); + }, 1000); + } + + // kick the animation + setTimeout(function() { + that.element.style.webkitTransitionDuration = '1.2s'; + that.element.style.transitionDuration = '1.2s'; + that.element.style.webkitTransform = 'translate3d(0,0,0)'; + that.element.style.transform = 'translate3d(0,0,0)'; + }, 0); + + // set the destroy timer + if (this.options.lifespan) { + this.removeTimer = setTimeout(this.remove.bind(this), this.options.lifespan * 1000); + } + + // fire the custom onShow event + if (this.options.onShow) { + this.options.onShow.call(this); + } + }, + + remove: function() { + clearTimeout(this.removeTimer); + + // clear up the event listeners + if (this.img) { + this.img.removeEventListener('load', this, false); + this.img.removeEventListener('error', this, false); + } + + window.removeEventListener('resize', this, false); + window.removeEventListener('scroll', this, false); + window.removeEventListener('orientationchange', this, false); + document.removeEventListener('touchmove', this, true); + this.element.removeEventListener('click', this, true); + + // remove the message element on transition end + this.element.addEventListener('transitionend', this, false); + this.element.addEventListener('webkitTransitionEnd', this, false); + this.element.addEventListener('MSTransitionEnd', this, false); + + // start the fade out animation + this.element.style.webkitTransitionDuration = '0.3s'; + this.element.style.opacity = '0'; + }, + + _removeElements: function() { + this.element.removeEventListener('transitionend', this, false); + this.element.removeEventListener('webkitTransitionEnd', this, false); + this.element.removeEventListener('MSTransitionEnd', this, false); + + // remove the message from the DOM + this.container.removeChild(this.viewport); + + this.shown = false; + + // fire the custom onRemove event + if (this.options.onRemove) { + this.options.onRemove.call(this); + } + }, + + updateViewport: function() { + if (!this.shown) { + return; + } + + this.viewport.style.width = window.innerWidth + 'px'; + this.viewport.style.height = window.innerHeight + 'px'; + this.viewport.style.left = window.scrollX + 'px'; + this.viewport.style.top = window.scrollY + 'px'; + + var clientWidth = document.documentElement.clientWidth; + + this.orientation = clientWidth > document.documentElement.clientHeight ? 'landscape' : 'portrait'; + + var screenWidth = ath.OS == 'ios' ? this.orientation == 'portrait' ? screen.width : screen.height : screen.width; + this.scale = screen.width > clientWidth ? 1 : screenWidth / window.innerWidth; + + this.element.style.fontSize = this.options.fontSize / this.scale + 'px'; + }, + + resize: function() { + clearTimeout(this.resizeTimer); + this.resizeTimer = setTimeout(this.updateViewport.bind(this), 100); + }, + + updateSession: function() { + if (ath.hasLocalStorage === false) { + return; + } + + if (localStorage) { + localStorage.setItem(this.options.appID, JSON.stringify(this.session)); + } + }, + + clearSession: function() { + this.session = _defaultSession; + this.updateSession(); + }, + + getItem: function(item) { + try { + if (!localStorage) { + throw new Error('localStorage is not defined'); + } + + return localStorage.getItem(item); + } catch (e) { + // Preventing exception for some browsers when fetching localStorage key + ath.hasLocalStorage = false; + } + }, + + optOut: function() { + this.session.optedout = true; + this.updateSession(); + }, + + optIn: function() { + this.session.optedout = false; + this.updateSession(); + }, + + clearDisplayCount: function() { + this.session.displayCount = 0; + this.updateSession(); + }, + + _preventDefault: function(e) { + e.preventDefault(); + e.stopPropagation(); + } + }; + + // utility + function _extend(target, obj) { + for (var i in obj) { + target[i] = obj[i]; + } + + return target; + } + + function _removeToken() { + if (document.location.hash == '#ath') { + history.replaceState('', window.document.title, document.location.href.split('#')[0]); + } + + if (_reSmartURL.test(document.location.href)) { + history.replaceState('', window.document.title, document.location.href.replace(_reSmartURL, '$1')); + } + + if (_reQueryString.test(document.location.search)) { + history.replaceState('', window.document.title, document.location.href.replace(_reQueryString, '$2')); + } + } + + /* jshint +W101, +W106 */ + + ath.VERSION = '3.2.2'; + + module.exports = UI.addToHomescreen = ath; + + +/***/ }, +/* 5 */ +/***/ function(module, exports, __webpack_require__) { + + 'use strict'; + + var $ = __webpack_require__(1); + var UI = __webpack_require__(2); + + /** + * @via https://github.com/Minwe/bootstrap/blob/master/js/alert.js + * @copyright Copyright 2013 Twitter, Inc. + * @license Apache 2.0 + */ + + // Alert Class + // NOTE: removeElement option is unavailable now + var Alert = function(element, options) { + var _this = this; + this.options = $.extend({}, Alert.DEFAULTS, options); + this.$element = $(element); + + this.$element + .addClass('am-fade am-in') + .on('click.alert.amui', '.am-close', function() { + _this.close(); + }); + }; + + Alert.DEFAULTS = { + removeElement: true + }; + + Alert.prototype.close = function() { + var $element = this.$element; + + $element.trigger('close.alert.amui').removeClass('am-in'); + + function processAlert() { + $element.trigger('closed.alert.amui').remove(); + } + + UI.support.transition && $element.hasClass('am-fade') ? + $element + .one(UI.support.transition.end, processAlert) + .emulateTransitionEnd(200) : + processAlert(); + }; + + // plugin + UI.plugin('alert', Alert); + + // Init code + $(document).on('click.alert.amui.data-api', '[data-am-alert]', function(e) { + var $target = $(e.target); + $target.is('.am-close') && $(this).alert('close'); + }); + + module.exports = Alert; + + +/***/ }, +/* 6 */ +/***/ function(module, exports, __webpack_require__) { + + 'use strict'; + + var $ = __webpack_require__(1); + var UI = __webpack_require__(2); + + /** + * @via https://github.com/twbs/bootstrap/blob/master/js/button.js + * @copyright (c) 2011-2014 Twitter, Inc + * @license The MIT License + */ + + var Button = function(element, options) { + this.$element = $(element); + this.options = $.extend({}, Button.DEFAULTS, options); + this.isLoading = false; + this.hasSpinner = false; + }; + + Button.DEFAULTS = { + loadingText: 'loading...', + disabledClassName: 'am-disabled', + activeClassName: 'am-active', + spinner: undefined + }; + + Button.prototype.setState = function(state, stateText) { + var $element = this.$element; + var disabled = 'disabled'; + var data = $element.data(); + var options = this.options; + var val = $element.is('input') ? 'val' : 'html'; + var stateClassName = 'am-btn-' + state + ' ' + options.disabledClassName; + + state += 'Text'; + + if (!options.resetText) { + options.resetText = $element[val](); + } + + // add spinner for element with html() + if (UI.support.animation && options.spinner && + val === 'html' && !this.hasSpinner) { + options.loadingText = '' + options.loadingText; + + this.hasSpinner = true; + } + + stateText = stateText || + (data[state] === undefined ? options[state] : data[state]); + + $element[val](stateText); + + // push to event loop to allow forms to submit + setTimeout($.proxy(function() { + // TODO: add stateClass for other states + if (state === 'loadingText') { + $element.addClass(stateClassName).attr(disabled, disabled); + this.isLoading = true; + } else if (this.isLoading) { + $element.removeClass(stateClassName).removeAttr(disabled); + this.isLoading = false; + } + }, this), 0); + }; + + Button.prototype.toggle = function() { + var changed = true; + var $element = this.$element; + var $parent = this.$element.parent('[class*="am-btn-group"]'); + var activeClassName = Button.DEFAULTS.activeClassName; + + if ($parent.length) { + var $input = this.$element.find('input'); + + if ($input.prop('type') == 'radio') { + if ($input.prop('checked') && $element.hasClass(activeClassName)) { + changed = false; + } else { + $parent.find('.' + activeClassName).removeClass(activeClassName); + } + } + + if (changed) { + $input.prop('checked', + !$element.hasClass(activeClassName)).trigger('change'); + } + } + + if (changed) { + $element.toggleClass(activeClassName); + if (!$element.hasClass(activeClassName)) { + $element.blur(); + } + } + }; + + UI.plugin('button', Button, { + dataOptions: 'data-am-loading', + methodCall: function(args, instance) { + if (args[0] === 'toggle') { + instance.toggle(); + } else if (typeof args[0] === 'string') { + instance.setState.apply(instance, args); + } + } + }); + + // Init code + $(document).on('click.button.amui.data-api', '[data-am-button]', function(e) { + e.preventDefault(); + var $btn = $(e.target); + + if (!$btn.hasClass('am-btn')) { + $btn = $btn.closest('.am-btn'); + } + + $btn.button('toggle'); + }); + + UI.ready(function(context) { + $('[data-am-loading]', context).button(); + + // resolves #866 + $('[data-am-button]', context).find('input:checked').each(function() { + $(this).parent('label').addClass(Button.DEFAULTS.activeClassName); + }); + }); + + module.exports = UI.button = Button; + + +/***/ }, +/* 7 */ +/***/ function(module, exports, __webpack_require__) { + + 'use strict'; + + var $ = __webpack_require__(1); + var UI = __webpack_require__(2); + + /** + * @via https://github.com/twbs/bootstrap/blob/master/js/collapse.js + * @copyright (c) 2011-2014 Twitter, Inc + * @license The MIT License + */ + + var Collapse = function(element, options) { + this.$element = $(element); + this.options = $.extend({}, Collapse.DEFAULTS, options); + this.transitioning = null; + + if (this.options.parent) { + this.$parent = $(this.options.parent); + } + + if (this.options.toggle) { + this.toggle(); + } + }; + + Collapse.DEFAULTS = { + toggle: true + }; + + Collapse.prototype.open = function() { + if (this.transitioning || this.$element.hasClass('am-in')) { + return; + } + + var startEvent = $.Event('open.collapse.amui'); + this.$element.trigger(startEvent); + + if (startEvent.isDefaultPrevented()) { + return; + } + + var actives = this.$parent && this.$parent.find('> .am-panel > .am-in'); + + if (actives && actives.length) { + var hasData = actives.data('amui.collapse'); + + if (hasData && hasData.transitioning) { + return; + } + + Plugin.call(actives, 'close'); + + hasData || actives.data('amui.collapse', null); + } + + this.$element + .removeClass('am-collapse') + .addClass('am-collapsing').height(0); + + this.transitioning = 1; + + var complete = function() { + this.$element + .removeClass('am-collapsing') + .addClass('am-collapse am-in') + .height('') + .trigger('opened.collapse.amui'); + this.transitioning = 0; + }; + + if (!UI.support.transition) { + return complete.call(this); + } + + var scrollHeight = this.$element[0].scrollHeight; + + this.$element + .one(UI.support.transition.end, $.proxy(complete, this)) + .emulateTransitionEnd(300) + .css({height: scrollHeight}); // 当折叠的容器有 padding 时,如果用 height() 只能设置内容的宽度 + }; + + Collapse.prototype.close = function() { + if (this.transitioning || !this.$element.hasClass('am-in')) { + return; + } + + var startEvent = $.Event('close.collapse.amui'); + this.$element.trigger(startEvent); + + if (startEvent.isDefaultPrevented()) { + return; + } + + this.$element.height(this.$element.height()).redraw(); + + this.$element.addClass('am-collapsing'). + removeClass('am-collapse am-in'); + + this.transitioning = 1; + + var complete = function() { + this.transitioning = 0; + this.$element + .trigger('closed.collapse.amui') + .removeClass('am-collapsing') + .addClass('am-collapse'); + // css({height: '0'}); + }; + + if (!UI.support.transition) { + return complete.call(this); + } + + this.$element.height(0) + .one(UI.support.transition.end, $.proxy(complete, this)) + .emulateTransitionEnd(300); + }; + + Collapse.prototype.toggle = function() { + this[this.$element.hasClass('am-in') ? 'close' : 'open'](); + }; + + // Collapse Plugin + function Plugin(option) { + return this.each(function() { + var $this = $(this); + var data = $this.data('amui.collapse'); + var options = $.extend({}, Collapse.DEFAULTS, + UI.utils.options($this.attr('data-am-collapse')), + typeof option == 'object' && option); + + if (!data && options.toggle && option === 'open') { + option = !option; + } + + if (!data) { + $this.data('amui.collapse', (data = new Collapse(this, options))); + } + + if (typeof option == 'string') { + data[option](); + } + }); + } + + $.fn.collapse = Plugin; + + // Init code + $(document).on('click.collapse.amui.data-api', '[data-am-collapse]', + function(e) { + var href; + var $this = $(this); + var options = UI.utils.options($this.attr('data-am-collapse')); + var target = options.target || + e.preventDefault() || + (href = $this.attr('href')) && + href.replace(/.*(?=#[^\s]+$)/, ''); + var $target = $(target); + var data = $target.data('amui.collapse'); + var option = data ? 'toggle' : options; + var parent = options.parent; + var $parent = parent && $(parent); + + if (!data || !data.transitioning) { + if ($parent) { + // '[data-am-collapse*="{parent: \'' + parent + '"] + $parent.find('[data-am-collapse]').not($this).addClass('am-collapsed'); + } + + $this[$target.hasClass('am-in') ? + 'addClass' : 'removeClass']('am-collapsed'); + } + + Plugin.call($target, option); + }); + + module.exports = UI.collapse = Collapse; + + // TODO: 更好的 target 选择方式 + // 折叠的容器必须没有 border/padding 才能正常处理,否则动画会有一些小问题 + // 寻找更好的未知高度 transition 动画解决方案,max-height 之类的就算了 + + +/***/ }, +/* 8 */ +/***/ function(module, exports, __webpack_require__) { + + 'use strict'; + + var $ = __webpack_require__(1); + var UI = __webpack_require__(2); + var $doc = $(document); + + /** + * bootstrap-datepicker.js + * @via http://www.eyecon.ro/bootstrap-datepicker + * @license http://www.apache.org/licenses/LICENSE-2.0 + */ + var Datepicker = function(element, options) { + this.$element = $(element); + this.options = $.extend({}, Datepicker.DEFAULTS, options); + this.format = DPGlobal.parseFormat(this.options.format); + + this.$element.data('date', this.options.date); + this.language = this.getLocale(this.options.locale); + this.theme = this.options.theme; + this.$picker = $(DPGlobal.template).appendTo('body').on({ + click: $.proxy(this.click, this) + // mousedown: $.proxy(this.mousedown, this) + }); + + this.isInput = this.$element.is('input'); + this.component = this.$element.is('.am-datepicker-date') ? + this.$element.find('.am-datepicker-add-on') : false; + + if (this.isInput) { + this.$element.on({ + 'click.datepicker.amui': $.proxy(this.open, this), + // blur: $.proxy(this.close, this), + 'keyup.datepicker.amui': $.proxy(this.update, this) + }); + } else { + if (this.component) { + this.component.on('click.datepicker.amui', $.proxy(this.open, this)); + } else { + this.$element.on('click.datepicker.amui', $.proxy(this.open, this)); + } + } + + this.minViewMode = this.options.minViewMode; + + if (typeof this.minViewMode === 'string') { + switch (this.minViewMode) { + case 'months': + this.minViewMode = 1; + break; + case 'years': + this.minViewMode = 2; + break; + default: + this.minViewMode = 0; + break; + } + } + + this.viewMode = this.options.viewMode; + + if (typeof this.viewMode === 'string') { + switch (this.viewMode) { + case 'months': + this.viewMode = 1; + break; + case 'years': + this.viewMode = 2; + break; + default: + this.viewMode = 0; + break; + } + } + + this.startViewMode = this.viewMode; + this.weekStart = ((this.options.weekStart || + Datepicker.locales[this.language].weekStart || 0) % 7); + this.weekEnd = ((this.weekStart + 6) % 7); + this.onRender = this.options.onRender; + + this.setTheme(); + this.fillDow(); + this.fillMonths(); + this.update(); + this.showMode(); + }; + + Datepicker.DEFAULTS = { + locale: 'zh_CN', + format: 'yyyy-mm-dd', + weekStart: undefined, + viewMode: 0, + minViewMode: 0, + date: '', + theme: '', + autoClose: 1, + onRender: function(date) { + return ''; + } + }; + + Datepicker.prototype.open = function(e) { + this.$picker.show(); + this.height = this.component ? + this.component.outerHeight() : this.$element.outerHeight(); + + this.place(); + $(window).on('resize.datepicker.amui', $.proxy(this.place, this)); + if (e) { + e.stopPropagation(); + e.preventDefault(); + } + var that = this; + $doc.on('mousedown.datapicker.amui touchstart.datepicker.amui', function(ev) { + if ($(ev.target).closest('.am-datepicker').length === 0) { + that.close(); + } + }); + this.$element.trigger({ + type: 'open.datepicker.amui', + date: this.date + }); + }; + + Datepicker.prototype.close = function() { + this.$picker.hide(); + $(window).off('resize.datepicker.amui', this.place); + this.viewMode = this.startViewMode; + this.showMode(); + if (!this.isInput) { + $(document).off('mousedown.datapicker.amui touchstart.datepicker.amui', + this.close); + } + // this.set(); + this.$element.trigger({ + type: 'close.datepicker.amui', + date: this.date + }); + }; + + Datepicker.prototype.set = function() { + var formatted = DPGlobal.formatDate(this.date, this.format); + var $input; + + if (!this.isInput) { + if (this.component) { + $input = this.$element.find('input').attr('value', formatted); + } + + this.$element.data('date', formatted); + } else { + $input = this.$element.attr('value', formatted); + } + + // fixes https://github.com/amazeui/amazeui/issues/711 + $input && $input.trigger('change'); + }; + + Datepicker.prototype.setValue = function(newDate) { + if (typeof newDate === 'string') { + this.date = DPGlobal.parseDate(newDate, this.format); + } else { + this.date = new Date(newDate); + } + this.set(); + + this.viewDate = new Date(this.date.getFullYear(), + this.date.getMonth(), 1, 0, 0, 0, 0); + + this.fill(); + }; + + Datepicker.prototype.place = function() { + var offset = this.component ? + this.component.offset() : this.$element.offset(); + var $width = this.component ? + this.component.width() : this.$element.width(); + var top = offset.top + this.height; + var left = offset.left; + var right = $doc.width() - offset.left - $width; + var isOutView = this.isOutView(); + + this.$picker.removeClass('am-datepicker-right'); + this.$picker.removeClass('am-datepicker-up'); + + if ($doc.width() > 640) { + if (isOutView.outRight) { + this.$picker.addClass('am-datepicker-right'); + this.$picker.css({ + top: top, + left: 'auto', + right: right + }); + return; + } + if (isOutView.outBottom) { + this.$picker.addClass('am-datepicker-up'); + top = offset.top - this.$picker.outerHeight(true); + } + } else { + left = 0; + } + + this.$picker.css({ + top: top, + left: left + }); + }; + + Datepicker.prototype.update = function(newDate) { + this.date = DPGlobal.parseDate( + typeof newDate === 'string' ? newDate : (this.isInput ? + this.$element.prop('value') : this.$element.data('date')), + this.format + ); + this.viewDate = new Date(this.date.getFullYear(), + this.date.getMonth(), 1, 0, 0, 0, 0); + this.fill(); + }; + + // Days of week + Datepicker.prototype.fillDow = function() { + var dowCount = this.weekStart; + var html = '
'; + while (dowCount < this.weekStart + 7) { + // NOTE: do % then add 1 + html += ''; + } + html += ''; + + this.$picker.find('.am-datepicker-days thead').append(html); + }; + + Datepicker.prototype.fillMonths = function() { + var html = ''; + var i = 0; + while (i < 12) { + html += '' + + Datepicker.locales[this.language].monthsShort[i++] + ''; + } + this.$picker.find('.am-datepicker-months td').append(html); + }; + + Datepicker.prototype.fill = function() { + var d = new Date(this.viewDate); + var year = d.getFullYear(); + var month = d.getMonth(); + var currentDate = this.date.valueOf(); + + var prevMonth = new Date(year, month - 1, 28, 0, 0, 0, 0); + var day = DPGlobal + .getDaysInMonth(prevMonth.getFullYear(), prevMonth.getMonth()); + + var daysSelect = this.$picker + .find('.am-datepicker-days .am-datepicker-select'); + + if (this.language === 'zh_CN') { + daysSelect.text(year + Datepicker.locales[this.language].year[0] + + ' ' + Datepicker.locales[this.language].months[month]); + } else { + daysSelect.text(Datepicker.locales[this.language].months[month] + + ' ' + year); + } + + prevMonth.setDate(day); + prevMonth.setDate(day - (prevMonth.getDay() - this.weekStart + 7) % 7); + + var nextMonth = new Date(prevMonth); + nextMonth.setDate(nextMonth.getDate() + 42); + nextMonth = nextMonth.valueOf(); + var html = []; + + var className; + var prevY; + var prevM; + + while (prevMonth.valueOf() < nextMonth) { + if (prevMonth.getDay() === this.weekStart) { + html.push(''); + } + + className = this.onRender(prevMonth, 0); + prevY = prevMonth.getFullYear(); + prevM = prevMonth.getMonth(); + + if ((prevM < month && prevY === year) || prevY < year) { + className += ' am-datepicker-old'; + } else if ((prevM > month && prevY === year) || prevY > year) { + className += ' am-datepicker-new'; + } + + if (prevMonth.valueOf() === currentDate) { + className += ' am-active'; + } + html.push(''); + + if (prevMonth.getDay() === this.weekEnd) { + html.push(''); + } + + prevMonth.setDate(prevMonth.getDate() + 1); + } + + this.$picker.find('.am-datepicker-days tbody') + .empty().append(html.join('')); + + var currentYear = this.date.getFullYear(); + var months = this.$picker.find('.am-datepicker-months') + .find('.am-datepicker-select') + .text(year); + months = months.end() + .find('span').removeClass('am-active').removeClass('am-disabled'); + + var monthLen = 0; + + while (monthLen < 12) { + if (this.onRender(d.setFullYear(year, monthLen), 1)) { + months.eq(monthLen).addClass('am-disabled'); + } + monthLen++; + } + + if (currentYear === year) { + months.eq(this.date.getMonth()) + .removeClass('am-disabled') + .addClass('am-active'); + } + + html = ''; + year = parseInt(year / 10, 10) * 10; + var yearCont = this.$picker + .find('.am-datepicker-years') + .find('.am-datepicker-select') + .text(year + '-' + (year + 9)) + .end() + .find('td'); + var yearClassName; + // fixes https://github.com/amazeui/amazeui/issues/770 + // maybe not need now + var viewDate = new Date(this.viewDate); + + year -= 1; + + for (var i = -1; i < 11; i++) { + yearClassName = this.onRender(viewDate.setFullYear(year), 2); + html += '' + year + ''; + year += 1; + } + yearCont.html(html); + }; + + Datepicker.prototype.click = function(event) { + event.stopPropagation(); + event.preventDefault(); + var month; + var year; + var $dayActive = this.$picker.find('.am-datepicker-days').find('.am-active'); + var $months = this.$picker.find('.am-datepicker-months'); + var $monthIndex = $months.find('.am-active').index(); + + var $target = $(event.target).closest('span, td, th'); + if ($target.length === 1) { + switch ($target[0].nodeName.toLowerCase()) { + case 'th': + switch ($target[0].className) { + case 'am-datepicker-switch': + this.showMode(1); + break; + case 'am-datepicker-prev': + case 'am-datepicker-next': + this.viewDate['set' + DPGlobal.modes[this.viewMode].navFnc].call( + this.viewDate, + this.viewDate + ['get' + DPGlobal.modes[this.viewMode].navFnc] + .call(this.viewDate) + + DPGlobal.modes[this.viewMode].navStep * + ($target[0].className === 'am-datepicker-prev' ? -1 : 1) + ); + this.fill(); + this.set(); + break; + } + break; + case 'span': + if ($target.is('.am-disabled')) { + return; + } + + if ($target.is('.am-datepicker-month')) { + month = $target.parent().find('span').index($target); + + if ($target.is('.am-active')) { + this.viewDate.setMonth(month, $dayActive.text()); + } else { + this.viewDate.setMonth(month); + } + + } else { + year = parseInt($target.text(), 10) || 0; + if ($target.is('.am-active')) { + this.viewDate.setFullYear(year, $monthIndex, $dayActive.text()); + } else { + this.viewDate.setFullYear(year); + } + + } + + if (this.viewMode !== 0) { + this.date = new Date(this.viewDate); + this.$element.trigger({ + type: 'changeDate.datepicker.amui', + date: this.date, + viewMode: DPGlobal.modes[this.viewMode].clsName + }); + } + + this.showMode(-1); + this.fill(); + this.set(); + break; + case 'td': + if ($target.is('.am-datepicker-day') && !$target.is('.am-disabled')) { + var day = parseInt($target.text(), 10) || 1; + month = this.viewDate.getMonth(); + if ($target.is('.am-datepicker-old')) { + month -= 1; + } else if ($target.is('.am-datepicker-new')) { + month += 1; + } + year = this.viewDate.getFullYear(); + this.date = new Date(year, month, day, 0, 0, 0, 0); + this.viewDate = new Date(year, month, Math.min(28, day), 0, 0, 0, 0); + this.fill(); + this.set(); + this.$element.trigger({ + type: 'changeDate.datepicker.amui', + date: this.date, + viewMode: DPGlobal.modes[this.viewMode].clsName + }); + + this.options.autoClose && this.close(); + } + break; + } + } + }; + + Datepicker.prototype.mousedown = function(event) { + event.stopPropagation(); + event.preventDefault(); + }; + + Datepicker.prototype.showMode = function(dir) { + if (dir) { + this.viewMode = Math.max(this.minViewMode, + Math.min(2, this.viewMode + dir)); + } + + this.$picker.find('>div').hide(). + filter('.am-datepicker-' + DPGlobal.modes[this.viewMode].clsName).show(); + }; + + Datepicker.prototype.isOutView = function() { + var offset = this.component ? + this.component.offset() : this.$element.offset(); + var isOutView = { + outRight: false, + outBottom: false + }; + var $picker = this.$picker; + var width = offset.left + $picker.outerWidth(true); + var height = offset.top + $picker.outerHeight(true) + + this.$element.innerHeight(); + + if (width > $doc.width()) { + isOutView.outRight = true; + } + if (height > $doc.height()) { + isOutView.outBottom = true; + } + return isOutView; + }; + + Datepicker.prototype.getLocale = function(locale) { + if (!locale) { + locale = navigator.language && navigator.language.split('-'); + locale[1] = locale[1].toUpperCase(); + locale = locale.join('_'); + } + + if (!Datepicker.locales[locale]) { + locale = 'en_US'; + } + return locale; + }; + + Datepicker.prototype.setTheme = function() { + if (this.theme) { + this.$picker.addClass('am-datepicker-' + this.theme); + } + }; + + // Datepicker locales + Datepicker.locales = { + en_US: { + days: ['Sunday', 'Monday', 'Tuesday', 'Wednesday', 'Thursday', + 'Friday', 'Saturday'], + daysShort: ['Sun', 'Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat'], + daysMin: ['Su', 'Mo', 'Tu', 'We', 'Th', 'Fr', 'Sa'], + months: ['January', 'February', 'March', 'April', 'May', 'June', + 'July', 'August', 'September', 'October', 'November', 'December'], + monthsShort: ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', + 'Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec'], + weekStart: 0 + }, + zh_CN: { + days: ['星期日', '星期一', '星期二', '星期三', '星期四', '星期五', '星期六'], + daysShort: ['周日', '周一', '周二', '周三', '周四', '周五', '周六'], + daysMin: ['日', '一', '二', '三', '四', '五', '六'], + months: ['一月', '二月', '三月', '四月', '五月', '六月', '七月', + '八月', '九月', '十月', '十一月', '十二月'], + monthsShort: ['一月', '二月', '三月', '四月', '五月', '六月', + '七月', '八月', '九月', '十月', '十一月', '十二月'], + weekStart: 1, + year: ['年'] + } + }; + + var DPGlobal = { + modes: [ + { + clsName: 'days', + navFnc: 'Month', + navStep: 1 + }, + { + clsName: 'months', + navFnc: 'FullYear', + navStep: 1 + }, + { + clsName: 'years', + navFnc: 'FullYear', + navStep: 10 + } + ], + + isLeapYear: function(year) { + return (((year % 4 === 0) && (year % 100 !== 0)) || (year % 400 === 0)); + }, + + getDaysInMonth: function(year, month) { + return [31, (DPGlobal.isLeapYear(year) ? 29 : 28), + 31, 30, 31, 30, 31, 31, 30, 31, 30, 31][month]; + }, + + parseFormat: function(format) { + var separator = format.match(/[.\/\-\s].*?/); + var parts = format.split(/\W+/); + + if (!separator || !parts || parts.length === 0) { + throw new Error('Invalid date format.'); + } + + return { + separator: separator, + parts: parts + }; + }, + + parseDate: function(date, format) { + var parts = date.split(format.separator); + var val; + date = new Date(); + + date.setHours(0); + date.setMinutes(0); + date.setSeconds(0); + date.setMilliseconds(0); + + if (parts.length === format.parts.length) { + var year = date.getFullYear(); + var day = date.getDate(); + var month = date.getMonth(); + + for (var i = 0, cnt = format.parts.length; i < cnt; i++) { + val = parseInt(parts[i], 10) || 1; + switch (format.parts[i]) { + case 'dd': + case 'd': + day = val; + date.setDate(val); + break; + case 'mm': + case 'm': + month = val - 1; + date.setMonth(val - 1); + break; + case 'yy': + year = 2000 + val; + date.setFullYear(2000 + val); + break; + case 'yyyy': + year = val; + date.setFullYear(val); + break; + } + } + date = new Date(year, month, day, 0, 0, 0); + } + return date; + }, + + formatDate: function(date, format) { + var val = { + d: date.getDate(), + m: date.getMonth() + 1, + yy: date.getFullYear().toString().substring(2), + yyyy: date.getFullYear() + }; + var dateArray = []; + + val.dd = (val.d < 10 ? '0' : '') + val.d; + val.mm = (val.m < 10 ? '0' : '') + val.m; + + for (var i = 0, cnt = format.parts.length; i < cnt; i++) { + dateArray.push(val[format.parts[i]]); + } + return dateArray.join(format.separator); + }, + + headTemplate: '' + + '' + + '' + + '' + + '', + + contTemplate: '' + }; + + DPGlobal.template = '
' + + '
' + + '
' + + '
").addClass("cw").text("#"));n.isBefore(i.clone().endOf("w"));)t.append(e("").addClass("dow").text(n.format("dd"))),n.add(1,"d");m.find(".datepicker-days thead").append(t)},F=function(e){return a.disabledDates[e.format("YYYY-MM-DD")]===!0},L=function(e){return a.enabledDates[e.format("YYYY-MM-DD")]===!0},W=function(e){return a.disabledHours[e.format("H")]===!0},A=function(e){return a.enabledHours[e.format("H")]===!0},N=function(t,n){if(!t.isValid())return!1;if(a.disabledDates&&"d"===n&&F(t))return!1;if(a.enabledDates&&"d"===n&&!L(t))return!1;if(a.minDate&&t.isBefore(a.minDate,n))return!1;if(a.maxDate&&t.isAfter(a.maxDate,n))return!1;if(a.daysOfWeekDisabled&&"d"===n&&-1!==a.daysOfWeekDisabled.indexOf(t.day()))return!1;if(a.disabledHours&&("h"===n||"m"===n||"s"===n)&&W(t))return!1;if(a.enabledHours&&("h"===n||"m"===n||"s"===n)&&!A(t))return!1;if(a.disabledTimeIntervals&&("h"===n||"m"===n||"s"===n)){var r=!1;if(e.each(a.disabledTimeIntervals,function(){return t.isBetween(this[0],this[1])?(r=!0,!1):void 0}),r)return!1}return!0},Z=function(){for(var t=[],n=i.clone().startOf("y").startOf("d");n.isSame(i,"y");)t.push(e("").attr("data-action","selectMonth").addClass("month").text(n.format("MMM"))),n.add(1,"M");m.find(".datepicker-months td").empty().append(t)},V=function(){var t=m.find(".datepicker-months"),n=t.find("th"),o=t.find("tbody").find("span");n.eq(0).find("span").attr("title",a.tooltips.prevYear),n.eq(1).attr("title",a.tooltips.selectYear),n.eq(2).find("span").attr("title",a.tooltips.nextYear),t.find(".disabled").removeClass("disabled"),N(i.clone().subtract(1,"y"),"y")||n.eq(0).addClass("disabled"),n.eq(1).text(i.year()),N(i.clone().add(1,"y"),"y")||n.eq(2).addClass("disabled"),o.removeClass("active"),r.isSame(i,"y")&&!u&&o.eq(r.month()).addClass("active"),o.each(function(t){N(i.clone().month(t),"M")||e(this).addClass("disabled")})},U=function(){var e=m.find(".datepicker-years"),t=e.find("th"),n=i.clone().subtract(5,"y"),o=i.clone().add(6,"y"),d="";for(t.eq(0).find("span").attr("title",a.tooltips.prevDecade),t.eq(1).attr("title",a.tooltips.selectDecade),t.eq(2).find("span").attr("title",a.tooltips.nextDecade),e.find(".disabled").removeClass("disabled"),a.minDate&&a.minDate.isAfter(n,"y")&&t.eq(0).addClass("disabled"),t.eq(1).text(n.year()+"-"+o.year()),a.maxDate&&a.maxDate.isBefore(o,"y")&&t.eq(2).addClass("disabled");!n.isAfter(o,"y");)d+=''+n.year()+"",n.add(1,"y");e.find("td").html(d)},R=function(){var e=m.find(".datepicker-decades"),n=e.find("th"),o=t({y:i.year()-i.year()%100-1}),d=o.clone().add(100,"y"),s=o.clone(),l="";for(n.eq(0).find("span").attr("title",a.tooltips.prevCentury),n.eq(2).find("span").attr("title",a.tooltips.nextCentury),e.find(".disabled").removeClass("disabled"),(o.isSame(t({y:1900}))||a.minDate&&a.minDate.isAfter(o,"y"))&&n.eq(0).addClass("disabled"),n.eq(1).text(o.year()+"-"+d.year()),(o.isSame(t({y:2e3}))||a.maxDate&&a.maxDate.isBefore(d,"y"))&&n.eq(2).addClass("disabled");!o.isAfter(d,"y");)l+=''+(o.year()+1)+" - "+(o.year()+12)+"",o.add(12,"y");l+="",e.find("td").html(l),n.eq(1).text(s.year()+1+"-"+o.year())},Q=function(){var t,n,o,d,s=m.find(".datepicker-days"),l=s.find("th"),p=[];if(M()){for(l.eq(0).find("span").attr("title",a.tooltips.prevMonth),l.eq(1).attr("title",a.tooltips.selectMonth),l.eq(2).find("span").attr("title",a.tooltips.nextMonth),s.find(".disabled").removeClass("disabled"),l.eq(1).text(i.format(a.dayViewHeaderFormat)),N(i.clone().subtract(1,"M"),"M")||l.eq(0).addClass("disabled"),N(i.clone().add(1,"M"),"M")||l.eq(2).addClass("disabled"),t=i.clone().startOf("M").startOf("w").startOf("d"),d=0;42>d;d++)0===t.weekday()&&(n=e("
'+t.week()+"'+t.date()+"
'+n.format(d?"HH":"hh")+"
'+n.format("mm")+"
'+n.format("ss")+"
' + + Datepicker.locales[this.language].daysMin[(dowCount++) % 7] + + '
' + prevMonth.getDate() + '
' + + '' + + '
' + + '
' + + DPGlobal.headTemplate + + '' + + '
' + + '' + + '
' + + '' + + DPGlobal.headTemplate + + DPGlobal.contTemplate + + '
' + + '
' + + '
' + + '' + + DPGlobal.headTemplate + + DPGlobal.contTemplate + + '
' + + '
' + + ''; + + // jQuery plugin + UI.plugin('datepicker', Datepicker); + + // Init code + UI.ready(function(context) { + $('[data-am-datepicker]').datepicker(); + }); + + module.exports = UI.datepicker = Datepicker; + + // TODO: 1. 载入动画 + // 2. less 优化 + + +/***/ }, +/* 9 */ +/***/ function(module, exports, __webpack_require__) { + + 'use strict'; + + var $ = __webpack_require__(1); + var UI = __webpack_require__(2); + var $doc = $(document); + var transition = UI.support.transition; + + var Dimmer = function() { + this.id = UI.utils.generateGUID('am-dimmer'); + this.$element = $(Dimmer.DEFAULTS.tpl, { + id: this.id + }); + + this.inited = false; + this.scrollbarWidth = 0; + this.$used = $([]); + }; + + Dimmer.DEFAULTS = { + tpl: '
' + }; + + Dimmer.prototype.init = function() { + if (!this.inited) { + $(document.body).append(this.$element); + this.inited = true; + $doc.trigger('init.dimmer.amui'); + this.$element.on('touchmove.dimmer.amui', function(e) { + e.preventDefault(); + }); + } + + return this; + }; + + Dimmer.prototype.open = function(relatedElement) { + if (!this.inited) { + this.init(); + } + + var $element = this.$element; + + // 用于多重调用 + if (relatedElement) { + this.$used = this.$used.add($(relatedElement)); + } + + this.checkScrollbar().setScrollbar(); + + $element.show().trigger('open.dimmer.amui'); + + transition && $element.off(transition.end); + + setTimeout(function() { + $element.addClass('am-active'); + }, 0); + + return this; + }; + + Dimmer.prototype.close = function(relatedElement, force) { + this.$used = this.$used.not($(relatedElement)); + + if (!force && this.$used.length) { + return this; + } + + var $element = this.$element; + + $element.removeClass('am-active').trigger('close.dimmer.amui'); + + function complete() { + $element.hide(); + this.resetScrollbar(); + } + + // transition ? $element.one(transition.end, $.proxy(complete, this)) : + complete.call(this); + + return this; + }; + + Dimmer.prototype.checkScrollbar = function() { + this.scrollbarWidth = UI.utils.measureScrollbar(); + + return this; + }; + + Dimmer.prototype.setScrollbar = function() { + var $body = $(document.body); + var bodyPaddingRight = parseInt(($body.css('padding-right') || 0), 10); + + if (this.scrollbarWidth) { + $body.css('padding-right', bodyPaddingRight + this.scrollbarWidth); + } + + $body.addClass('am-dimmer-active'); + + return this; + }; + + Dimmer.prototype.resetScrollbar = function() { + $(document.body).css('padding-right', '').removeClass('am-dimmer-active'); + + return this; + }; + + module.exports = UI.dimmer = new Dimmer(); + + +/***/ }, +/* 10 */ +/***/ function(module, exports, __webpack_require__) { + + 'use strict'; + + var $ = __webpack_require__(1); + var UI = __webpack_require__(2); + var animation = UI.support.animation; + + /** + * @via https://github.com/Minwe/bootstrap/blob/master/js/dropdown.js + * @copyright (c) 2011-2014 Twitter, Inc + * @license The MIT License + */ + + // var toggle = '[data-am-dropdown] > .am-dropdown-toggle'; + + var Dropdown = function(element, options) { + this.options = $.extend({}, Dropdown.DEFAULTS, options); + + options = this.options; + + this.$element = $(element); + this.$toggle = this.$element.find(options.selector.toggle); + this.$dropdown = this.$element.find(options.selector.dropdown); + this.$boundary = (options.boundary === window) ? $(window) : + this.$element.closest(options.boundary); + this.$justify = (options.justify && $(options.justify).length && + $(options.justify)) || undefined; + + !this.$boundary.length && (this.$boundary = $(window)); + + this.active = this.$element.hasClass('am-active') ? true : false; + this.animating = null; + + this.events(); + }; + + Dropdown.DEFAULTS = { + animation: 'am-animation-slide-top-fixed', + boundary: window, + justify: undefined, + selector: { + dropdown: '.am-dropdown-content', + toggle: '.am-dropdown-toggle' + }, + trigger: 'click' + }; + + Dropdown.prototype.toggle = function() { + this.clear(); + + if (this.animating) { + return; + } + + this[this.active ? 'close' : 'open'](); + }; + + Dropdown.prototype.open = function(e) { + var $toggle = this.$toggle; + var $element = this.$element; + var $dropdown = this.$dropdown; + + if ($toggle.is('.am-disabled, :disabled')) { + return; + } + + if (this.active) { + return; + } + + $element.trigger('open.dropdown.amui').addClass('am-active'); + + $toggle.trigger('focus'); + + this.checkDimensions(e); + + var complete = $.proxy(function() { + $element.trigger('opened.dropdown.amui'); + this.active = true; + this.animating = 0; + }, this); + + if (animation) { + this.animating = 1; + $dropdown.addClass(this.options.animation). + on(animation.end + '.open.dropdown.amui', $.proxy(function() { + complete(); + $dropdown.removeClass(this.options.animation); + }, this)); + } else { + complete(); + } + }; + + Dropdown.prototype.close = function() { + if (!this.active) { + return; + } + + // fix #165 + // var animationName = this.options.animation + ' am-animation-reverse'; + var animationName = 'am-dropdown-animation'; + var $element = this.$element; + var $dropdown = this.$dropdown; + + $element.trigger('close.dropdown.amui'); + + var complete = $.proxy(function complete() { + $element. + removeClass('am-active'). + trigger('closed.dropdown.amui'); + this.active = false; + this.animating = 0; + this.$toggle.blur(); + }, this); + + if (animation) { + $dropdown.removeClass(this.options.animation); + $dropdown.addClass(animationName); + this.animating = 1; + // animation + $dropdown.one(animation.end + '.close.dropdown.amui', function() { + $dropdown.removeClass(animationName); + complete(); + }); + } else { + complete(); + } + }; + + Dropdown.prototype.enable = function() { + this.$toggle.prop('disabled', false); + }, + + Dropdown.prototype.disable = function() { + this.$toggle.prop('disabled', true); + }, + + Dropdown.prototype.checkDimensions = function(e) { + if (!this.$dropdown.length) { + return; + } + + var $dropdown = this.$dropdown; + + // @see #873 + if (e && e.offset) { + $dropdown.offset(e.offset); + } + + var offset = $dropdown.offset(); + var width = $dropdown.outerWidth(); + var boundaryWidth = this.$boundary.width(); + var boundaryOffset = $.isWindow(this.boundary) && this.$boundary.offset() ? + this.$boundary.offset().left : 0; + + if (this.$justify) { + // jQuery.fn.width() is really... + $dropdown.css({'min-width': this.$justify.css('width')}); + } + + if ((width + (offset.left - boundaryOffset)) > boundaryWidth) { + this.$element.addClass('am-dropdown-flip'); + } + }; + + Dropdown.prototype.clear = function() { + $('[data-am-dropdown]').not(this.$element).each(function() { + var data = $(this).data('amui.dropdown'); + data && data.close(); + }); + }; + + Dropdown.prototype.events = function() { + var eventNS = 'dropdown.amui'; + // triggers = this.options.trigger.split(' '), + var $toggle = this.$toggle; + + $toggle.on('click.' + eventNS, $.proxy(function(e) { + e.preventDefault(); + this.toggle(); + }, this)); + + /*for (var i = triggers.length; i--;) { + var trigger = triggers[i]; + + if (trigger === 'click') { + $toggle.on('click.' + eventNS, $.proxy(this.toggle, this)) + } + + if (trigger === 'focus' || trigger === 'hover') { + var eventIn = trigger == 'hover' ? 'mouseenter' : 'focusin'; + var eventOut = trigger == 'hover' ? 'mouseleave' : 'focusout'; + + this.$element.on(eventIn + '.' + eventNS, $.proxy(this.open, this)) + .on(eventOut + '.' + eventNS, $.proxy(this.close, this)); + } + }*/ + + $(document).on('keydown.dropdown.amui', $.proxy(function(e) { + e.keyCode === 27 && this.active && this.close(); + }, this)).on('click.outer.dropdown.amui', $.proxy(function(e) { + // var $target = $(e.target); + + if (this.active && + (this.$element[0] === e.target || !this.$element.find(e.target).length)) { + this.close(); + } + }, this)); + }; + + // Dropdown Plugin + UI.plugin('dropdown', Dropdown); + + // Init code + UI.ready(function(context) { + $('[data-am-dropdown]', context).dropdown(); + }); + + $(document).on('click.dropdown.amui.data-api', '.am-dropdown form', + function(e) { + e.stopPropagation(); + }); + + module.exports = UI.dropdown = Dropdown; + + // TODO: 1. 处理链接 focus + // 2. 增加 mouseenter / mouseleave 选项 + // 3. 宽度适应 + + +/***/ }, +/* 11 */ +/***/ function(module, exports, __webpack_require__) { + + /* WEBPACK VAR INJECTION */(function(setImmediate) {var $ = __webpack_require__(1); + var UI = __webpack_require__(2); + + // MODIFIED: + // - LINE 252: add `` + // - namespace + // - Init code + // TODO: start after x ms when pause on actions + + /* + * jQuery FlexSlider v2.6.1 + * Copyright 2012 WooThemes + * Contributing Author: Tyler Smith + */ + + var focused = true; + + // FlexSlider: Object Instance + $.flexslider = function(el, options) { + var slider = $(el); + + // making variables public + slider.vars = $.extend({}, $.flexslider.defaults, options); + + var namespace = slider.vars.namespace, + msGesture = window.navigator && window.navigator.msPointerEnabled && window.MSGesture, + touch = (( "ontouchstart" in window ) || msGesture || window.DocumentTouch && document instanceof DocumentTouch) && slider.vars.touch, + // depricating this idea, as devices are being released with both of these events + eventType = "click touchend MSPointerUp keyup", + watchedEvent = "", + watchedEventClearTimer, + vertical = slider.vars.direction === "vertical", + reverse = slider.vars.reverse, + carousel = (slider.vars.itemWidth > 0), + fade = slider.vars.animation === "fade", + asNav = slider.vars.asNavFor !== "", + methods = {}; + + // Store a reference to the slider object + $.data(el, 'flexslider', slider); + + // Private slider methods + methods = { + init: function() { + slider.animating = false; + // Get current slide and make sure it is a number + slider.currentSlide = parseInt((slider.vars.startAt ? slider.vars.startAt : 0), 10); + if (isNaN(slider.currentSlide)) { + slider.currentSlide = 0; + } + slider.animatingTo = slider.currentSlide; + slider.atEnd = (slider.currentSlide === 0 || slider.currentSlide === slider.last); + slider.containerSelector = slider.vars.selector.substr(0, slider.vars.selector.search(' ')); + slider.slides = $(slider.vars.selector, slider); + slider.container = $(slider.containerSelector, slider); + slider.count = slider.slides.length; + // SYNC: + slider.syncExists = $(slider.vars.sync).length > 0; + // SLIDE: + if (slider.vars.animation === "slide") { + slider.vars.animation = "swing"; + } + slider.prop = (vertical) ? "top" : "marginLeft"; + slider.args = {}; + // SLIDESHOW: + slider.manualPause = false; + slider.stopped = false; + //PAUSE WHEN INVISIBLE + slider.started = false; + slider.startTimeout = null; + // TOUCH/USECSS: + slider.transitions = !slider.vars.video && !fade && slider.vars.useCSS && (function() { + var obj = document.createElement('div'), + props = ['perspectiveProperty', 'WebkitPerspective', 'MozPerspective', 'OPerspective', 'msPerspective']; + for (var i in props) { + if (obj.style[props[i]] !== undefined) { + slider.pfx = props[i].replace('Perspective', '').toLowerCase(); + slider.prop = "-" + slider.pfx + "-transform"; + return true; + } + } + return false; + }()); + slider.ensureAnimationEnd = ''; + // CONTROLSCONTAINER: + if (slider.vars.controlsContainer !== "") slider.controlsContainer = $(slider.vars.controlsContainer).length > 0 && $(slider.vars.controlsContainer); + // MANUAL: + if (slider.vars.manualControls !== "") slider.manualControls = $(slider.vars.manualControls).length > 0 && $(slider.vars.manualControls); + + // CUSTOM DIRECTION NAV: + if (slider.vars.customDirectionNav !== "") slider.customDirectionNav = $(slider.vars.customDirectionNav).length === 2 && $(slider.vars.customDirectionNav); + + // RANDOMIZE: + if (slider.vars.randomize) { + slider.slides.sort(function() { + return (Math.round(Math.random()) - 0.5); + }); + slider.container.empty().append(slider.slides); + } + + slider.doMath(); + + // INIT + slider.setup("init"); + + // CONTROLNAV: + if (slider.vars.controlNav) { + methods.controlNav.setup(); + } + + // DIRECTIONNAV: + if (slider.vars.directionNav) { + methods.directionNav.setup(); + } + + // KEYBOARD: + if (slider.vars.keyboard && ($(slider.containerSelector).length === 1 || slider.vars.multipleKeyboard)) { + $(document).bind('keyup', function(event) { + var keycode = event.keyCode; + if (!slider.animating && (keycode === 39 || keycode === 37)) { + var target = (keycode === 39) ? slider.getTarget('next') : + (keycode === 37) ? slider.getTarget('prev') : false; + slider.flexAnimate(target, slider.vars.pauseOnAction); + } + }); + } + // MOUSEWHEEL: + if (slider.vars.mousewheel) { + slider.bind('mousewheel', function(event, delta, deltaX, deltaY) { + event.preventDefault(); + var target = (delta < 0) ? slider.getTarget('next') : slider.getTarget('prev'); + slider.flexAnimate(target, slider.vars.pauseOnAction); + }); + } + + // PAUSEPLAY + if (slider.vars.pausePlay) { + methods.pausePlay.setup(); + } + + //PAUSE WHEN INVISIBLE + if (slider.vars.slideshow && slider.vars.pauseInvisible) { + methods.pauseInvisible.init(); + } + + // SLIDSESHOW + if (slider.vars.slideshow) { + if (slider.vars.pauseOnHover) { + slider.hover(function() { + if (!slider.manualPlay && !slider.manualPause) {slider.pause();} + }, function() { + if (!slider.manualPause && !slider.manualPlay && !slider.stopped) {slider.play();} + }); + } + // initialize animation + // If we're visible, or we don't use PageVisibility API + if (!slider.vars.pauseInvisible || !methods.pauseInvisible.isHidden()) { + (slider.vars.initDelay > 0) ? slider.startTimeout = setTimeout(slider.play, slider.vars.initDelay) : slider.play(); + } + } + + // ASNAV: + if (asNav) {methods.asNav.setup();} + + // TOUCH + if (touch && slider.vars.touch) {methods.touch();} + + // FADE&&SMOOTHHEIGHT || SLIDE: + if (!fade || (fade && slider.vars.smoothHeight)) {$(window).bind("resize orientationchange focus", methods.resize);} + + slider.find("img").attr("draggable", "false"); + + // API: start() Callback + setTimeout(function() { + slider.vars.start(slider); + }, 200); + }, + asNav: { + setup: function() { + slider.asNav = true; + slider.animatingTo = Math.floor(slider.currentSlide / slider.move); + slider.currentItem = slider.currentSlide; + slider.slides.removeClass(namespace + "active-slide").eq(slider.currentItem).addClass(namespace + "active-slide"); + if (!msGesture) { + slider.slides.on(eventType, function(e) { + e.preventDefault(); + var $slide = $(this), + target = $slide.index(); + var posFromLeft = $slide.offset().left - $(slider).scrollLeft(); // Find position of slide relative to left of slider container + if (posFromLeft <= 0 && $slide.hasClass(namespace + 'active-slide')) { + slider.flexAnimate(slider.getTarget("prev"), true); + } else if (!$(slider.vars.asNavFor).data('flexslider').animating && !$slide.hasClass(namespace + "active-slide")) { + slider.direction = (slider.currentItem < target) ? "next" : "prev"; + slider.flexAnimate(target, slider.vars.pauseOnAction, false, true, true); + } + }); + } else { + el._slider = slider; + slider.slides.each(function() { + var that = this; + that._gesture = new MSGesture(); + that._gesture.target = that; + that.addEventListener("MSPointerDown", function(e) { + e.preventDefault(); + if (e.currentTarget._gesture) { + e.currentTarget._gesture.addPointer(e.pointerId); + } + }, false); + that.addEventListener("MSGestureTap", function(e) { + e.preventDefault(); + var $slide = $(this), + target = $slide.index(); + if (!$(slider.vars.asNavFor).data('flexslider').animating && !$slide.hasClass('active')) { + slider.direction = (slider.currentItem < target) ? "next" : "prev"; + slider.flexAnimate(target, slider.vars.pauseOnAction, false, true, true); + } + }); + }); + } + } + }, + controlNav: { + setup: function() { + if (!slider.manualControls) { + methods.controlNav.setupPaging(); + } else { // MANUALCONTROLS: + methods.controlNav.setupManual(); + } + }, + setupPaging: function() { + var type = (slider.vars.controlNav === "thumbnails") ? 'control-thumbs' : 'control-paging', + j = 1, + item, + slide; + + slider.controlNavScaffold = $('
    '); + + if (slider.pagingCount > 1) { + for (var i = 0; i < slider.pagingCount; i++) { + slide = slider.slides.eq(i); + if (undefined === slide.attr('data-thumb-alt')) { + slide.attr('data-thumb-alt', ''); + } + var altText = ('' !== slide.attr('data-thumb-alt')) ? altText = ' alt="' + slide.attr('data-thumb-alt') + '"' : ''; + item = (slider.vars.controlNav === "thumbnails") ? '' : '
    ' + j + ''; + if ('thumbnails' === slider.vars.controlNav && true === slider.vars.thumbCaptions) { + var captn = slide.attr('data-thumbcaption'); + if ('' !== captn && undefined !== captn) {item += '' + captn + '';} + } + // slider.controlNavScaffold.append('
  1. ' + item + '
  2. '); + slider.controlNavScaffold.append('
  3. ' + item + '
  4. '); + j++; + } + } + + // CONTROLSCONTAINER: + (slider.controlsContainer) ? $(slider.controlsContainer).append(slider.controlNavScaffold) : slider.append(slider.controlNavScaffold); + methods.controlNav.set(); + + methods.controlNav.active(); + + slider.controlNavScaffold.delegate('a, img', eventType, function(event) { + event.preventDefault(); + + if (watchedEvent === "" || watchedEvent === event.type) { + var $this = $(this), + target = slider.controlNav.index($this); + + if (!$this.hasClass(namespace + 'active')) { + slider.direction = (target > slider.currentSlide) ? "next" : "prev"; + slider.flexAnimate(target, slider.vars.pauseOnAction); + } + } + + // setup flags to prevent event duplication + if (watchedEvent === "") { + watchedEvent = event.type; + } + methods.setToClearWatchedEvent(); + + }); + }, + setupManual: function() { + slider.controlNav = slider.manualControls; + methods.controlNav.active(); + + slider.controlNav.bind(eventType, function(event) { + event.preventDefault(); + + if (watchedEvent === "" || watchedEvent === event.type) { + var $this = $(this), + target = slider.controlNav.index($this); + + if (!$this.hasClass(namespace + 'active')) { + (target > slider.currentSlide) ? slider.direction = "next" : slider.direction = "prev"; + slider.flexAnimate(target, slider.vars.pauseOnAction); + } + } + + // setup flags to prevent event duplication + if (watchedEvent === "") { + watchedEvent = event.type; + } + methods.setToClearWatchedEvent(); + }); + }, + set: function() { + var selector = (slider.vars.controlNav === "thumbnails") ? 'img' : 'a'; + slider.controlNav = $('.' + namespace + 'control-nav li ' + selector, (slider.controlsContainer) ? slider.controlsContainer : slider); + }, + active: function() { + slider.controlNav.removeClass(namespace + "active").eq(slider.animatingTo).addClass(namespace + "active"); + }, + update: function(action, pos) { + if (slider.pagingCount > 1 && action === "add") { + slider.controlNavScaffold.append($('
  5. ' + slider.count + '
  6. ')); + } else if (slider.pagingCount === 1) { + slider.controlNavScaffold.find('li').remove(); + } else { + slider.controlNav.eq(pos).closest('li').remove(); + } + methods.controlNav.set(); + (slider.pagingCount > 1 && slider.pagingCount !== slider.controlNav.length) ? slider.update(pos, action) : methods.controlNav.active(); + } + }, + directionNav: { + setup: function() { + var directionNavScaffold = $(''); + + // CUSTOM DIRECTION NAV: + if (slider.customDirectionNav) { + slider.directionNav = slider.customDirectionNav; + } else if (slider.controlsContainer) { // CONTROLSCONTAINER: + $(slider.controlsContainer).append(directionNavScaffold); + slider.directionNav = $('.' + namespace + 'direction-nav li a', slider.controlsContainer); + } else { + slider.append(directionNavScaffold); + slider.directionNav = $('.' + namespace + 'direction-nav li a', slider); + } + + methods.directionNav.update(); + + slider.directionNav.bind(eventType, function(event) { + event.preventDefault(); + var target; + + if (watchedEvent === "" || watchedEvent === event.type) { + target = ($(this).hasClass(namespace + 'next')) ? slider.getTarget('next') : slider.getTarget('prev'); + slider.flexAnimate(target, slider.vars.pauseOnAction); + } + + // setup flags to prevent event duplication + if (watchedEvent === "") { + watchedEvent = event.type; + } + methods.setToClearWatchedEvent(); + }); + }, + update: function() { + var disabledClass = namespace + 'disabled'; + if (slider.pagingCount === 1) { + slider.directionNav.addClass(disabledClass).attr('tabindex', '-1'); + } else if (!slider.vars.animationLoop) { + if (slider.animatingTo === 0) { + slider.directionNav.removeClass(disabledClass).filter('.' + namespace + "prev").addClass(disabledClass).attr('tabindex', '-1'); + } else if (slider.animatingTo === slider.last) { + slider.directionNav.removeClass(disabledClass).filter('.' + namespace + "next").addClass(disabledClass).attr('tabindex', '-1'); + } else { + slider.directionNav.removeClass(disabledClass).removeAttr('tabindex'); + } + } else { + slider.directionNav.removeClass(disabledClass).removeAttr('tabindex'); + } + } + }, + pausePlay: { + setup: function() { + var pausePlayScaffold = $('
    '); + + // CONTROLSCONTAINER: + if (slider.controlsContainer) { + slider.controlsContainer.append(pausePlayScaffold); + slider.pausePlay = $('.' + namespace + 'pauseplay a', slider.controlsContainer); + } else { + slider.append(pausePlayScaffold); + slider.pausePlay = $('.' + namespace + 'pauseplay a', slider); + } + + methods.pausePlay.update((slider.vars.slideshow) ? namespace + 'pause' : namespace + 'play'); + + slider.pausePlay.bind(eventType, function(event) { + event.preventDefault(); + + if (watchedEvent === "" || watchedEvent === event.type) { + if ($(this).hasClass(namespace + 'pause')) { + slider.manualPause = true; + slider.manualPlay = false; + slider.pause(); + } else { + slider.manualPause = false; + slider.manualPlay = true; + slider.play(); + } + } + + // setup flags to prevent event duplication + if (watchedEvent === "") { + watchedEvent = event.type; + } + methods.setToClearWatchedEvent(); + }); + }, + update: function(state) { + (state === "play") ? slider.pausePlay.removeClass(namespace + 'pause').addClass(namespace + 'play').html(slider.vars.playText) : slider.pausePlay.removeClass(namespace + 'play').addClass(namespace + 'pause').html(slider.vars.pauseText); + } + }, + touch: function() { + var startX, + startY, + offset, + cwidth, + dx, + startT, + onTouchStart, + onTouchMove, + onTouchEnd, + scrolling = false, + localX = 0, + localY = 0, + accDx = 0; + + if (!msGesture) { + onTouchStart = function(e) { + if (slider.animating) { + e.preventDefault(); + } else if (( window.navigator.msPointerEnabled ) || e.touches.length === 1) { + slider.pause(); + // CAROUSEL: + cwidth = (vertical) ? slider.h : slider.w; + startT = Number(new Date()); + // CAROUSEL: + + // Local vars for X and Y points. + localX = e.touches[0].pageX; + localY = e.touches[0].pageY; + + offset = (carousel && reverse && slider.animatingTo === slider.last) ? 0 : + (carousel && reverse) ? slider.limit - (((slider.itemW + slider.vars.itemMargin) * slider.move) * slider.animatingTo) : + (carousel && slider.currentSlide === slider.last) ? slider.limit : + (carousel) ? ((slider.itemW + slider.vars.itemMargin) * slider.move) * slider.currentSlide : + (reverse) ? (slider.last - slider.currentSlide + slider.cloneOffset) * cwidth : (slider.currentSlide + slider.cloneOffset) * cwidth; + startX = (vertical) ? localY : localX; + startY = (vertical) ? localX : localY; + + el.addEventListener('touchmove', onTouchMove, false); + el.addEventListener('touchend', onTouchEnd, false); + } + }; + + onTouchMove = function(e) { + // Local vars for X and Y points. + + localX = e.touches[0].pageX; + localY = e.touches[0].pageY; + + dx = (vertical) ? startX - localY : startX - localX; + scrolling = (vertical) ? (Math.abs(dx) < Math.abs(localX - startY)) : (Math.abs(dx) < Math.abs(localY - startY)); + + var fxms = 500; + + if (!scrolling || Number(new Date()) - startT > fxms) { + e.preventDefault(); + if (!fade && slider.transitions) { + if (!slider.vars.animationLoop) { + dx = dx / ((slider.currentSlide === 0 && dx < 0 || slider.currentSlide === slider.last && dx > 0) ? (Math.abs(dx) / cwidth + 2) : 1); + } + slider.setProps(offset + dx, "setTouch"); + } + } + }; + + onTouchEnd = function(e) { + // finish the touch by undoing the touch session + el.removeEventListener('touchmove', onTouchMove, false); + + if (slider.animatingTo === slider.currentSlide && !scrolling && !(dx === null)) { + var updateDx = (reverse) ? -dx : dx, + target = (updateDx > 0) ? slider.getTarget('next') : slider.getTarget('prev'); + + if (slider.canAdvance(target) && (Number(new Date()) - startT < 550 && Math.abs(updateDx) > 50 || Math.abs(updateDx) > cwidth / 2)) { + slider.flexAnimate(target, slider.vars.pauseOnAction); + } else { + if (!fade) {slider.flexAnimate(slider.currentSlide, slider.vars.pauseOnAction, true);} + } + } + el.removeEventListener('touchend', onTouchEnd, false); + + startX = null; + startY = null; + dx = null; + offset = null; + }; + + el.addEventListener('touchstart', onTouchStart, false); + } else { + el.style.msTouchAction = "none"; + el._gesture = new MSGesture(); + el._gesture.target = el; + el.addEventListener("MSPointerDown", onMSPointerDown, false); + el._slider = slider; + el.addEventListener("MSGestureChange", onMSGestureChange, false); + el.addEventListener("MSGestureEnd", onMSGestureEnd, false); + + function onMSPointerDown(e) { + e.stopPropagation(); + if (slider.animating) { + e.preventDefault(); + } else { + slider.pause(); + el._gesture.addPointer(e.pointerId); + accDx = 0; + cwidth = (vertical) ? slider.h : slider.w; + startT = Number(new Date()); + // CAROUSEL: + + offset = (carousel && reverse && slider.animatingTo === slider.last) ? 0 : + (carousel && reverse) ? slider.limit - (((slider.itemW + slider.vars.itemMargin) * slider.move) * slider.animatingTo) : + (carousel && slider.currentSlide === slider.last) ? slider.limit : + (carousel) ? ((slider.itemW + slider.vars.itemMargin) * slider.move) * slider.currentSlide : + (reverse) ? (slider.last - slider.currentSlide + slider.cloneOffset) * cwidth : (slider.currentSlide + slider.cloneOffset) * cwidth; + } + } + + function onMSGestureChange(e) { + e.stopPropagation(); + var slider = e.target._slider; + if (!slider) { + return; + } + var transX = -e.translationX, + transY = -e.translationY; + + //Accumulate translations. + accDx = accDx + ((vertical) ? transY : transX); + dx = accDx; + scrolling = (vertical) ? (Math.abs(accDx) < Math.abs(-transX)) : (Math.abs(accDx) < Math.abs(-transY)); + + if (e.detail === e.MSGESTURE_FLAG_INERTIA) { + setImmediate(function() { + el._gesture.stop(); + }); + + return; + } + + if (!scrolling || Number(new Date()) - startT > 500) { + e.preventDefault(); + if (!fade && slider.transitions) { + if (!slider.vars.animationLoop) { + dx = accDx / ((slider.currentSlide === 0 && accDx < 0 || slider.currentSlide === slider.last && accDx > 0) ? (Math.abs(accDx) / cwidth + 2) : 1); + } + slider.setProps(offset + dx, "setTouch"); + } + } + } + + function onMSGestureEnd(e) { + e.stopPropagation(); + var slider = e.target._slider; + if (!slider) { + return; + } + if (slider.animatingTo === slider.currentSlide && !scrolling && !(dx === null)) { + var updateDx = (reverse) ? -dx : dx, + target = (updateDx > 0) ? slider.getTarget('next') : slider.getTarget('prev'); + + if (slider.canAdvance(target) && (Number(new Date()) - startT < 550 && Math.abs(updateDx) > 50 || Math.abs(updateDx) > cwidth / 2)) { + slider.flexAnimate(target, slider.vars.pauseOnAction); + } else { + if (!fade) {slider.flexAnimate(slider.currentSlide, slider.vars.pauseOnAction, true);} + } + } + + startX = null; + startY = null; + dx = null; + offset = null; + accDx = 0; + } + } + }, + resize: function() { + if (!slider.animating && slider.is(':visible')) { + if (!carousel) {slider.doMath()}; + + if (fade) { + // SMOOTH HEIGHT: + methods.smoothHeight(); + } else if (carousel) { //CAROUSEL: + slider.slides.width(slider.computedW); + slider.update(slider.pagingCount); + slider.setProps(); + } + else if (vertical) { //VERTICAL: + slider.viewport.height(slider.h); + slider.setProps(slider.h, "setTotal"); + } else { + // SMOOTH HEIGHT: + if (slider.vars.smoothHeight) {methods.smoothHeight();} + slider.newSlides.width(slider.computedW); + slider.setProps(slider.computedW, "setTotal"); + } + } + }, + smoothHeight: function(dur) { + if (!vertical || fade) { + var $obj = (fade) ? slider : slider.viewport; + (dur) ? $obj.animate({"height": slider.slides.eq(slider.animatingTo).innerHeight()}, dur) : $obj.innerHeight(slider.slides.eq(slider.animatingTo).innerHeight()); + } + }, + sync: function(action) { + var $obj = $(slider.vars.sync).data("flexslider"), + target = slider.animatingTo; + + switch (action) { + case "animate": + $obj.flexAnimate(target, slider.vars.pauseOnAction, false, true); + break; + case "play": + if (!$obj.playing && !$obj.asNav) { + $obj.play(); + } + break; + case "pause": + $obj.pause(); + break; + } + }, + uniqueID: function($clone) { + // Append _clone to current level and children elements with id attributes + $clone.filter('[id]').add($clone.find('[id]')).each(function() { + var $this = $(this); + $this.attr('id', $this.attr('id') + '_clone'); + }); + return $clone; + }, + pauseInvisible: { + visProp: null, + init: function() { + var visProp = methods.pauseInvisible.getHiddenProp(); + if (visProp) { + var evtname = visProp.replace(/[H|h]idden/,'') + 'visibilitychange'; + document.addEventListener(evtname, function() { + if (methods.pauseInvisible.isHidden()) { + if(slider.startTimeout) { + clearTimeout(slider.startTimeout); //If clock is ticking, stop timer and prevent from starting while invisible + } else { + slider.pause(); //Or just pause + } + } + else { + if(slider.started) { + slider.play(); //Initiated before, just play + } else { + if (slider.vars.initDelay > 0) { + setTimeout(slider.play, slider.vars.initDelay); + } else { + slider.play(); //Didn't init before: simply init or wait for it + } + } + } + }); + } + }, + isHidden: function() { + var prop = methods.pauseInvisible.getHiddenProp(); + if (!prop) { + return false; + } + return document[prop]; + }, + getHiddenProp: function() { + var prefixes = ['webkit','moz','ms','o']; + // if 'hidden' is natively supported just return it + if ('hidden' in document) { + return 'hidden'; + } + // otherwise loop over all the known prefixes until we find one + for (var i = 0; i < prefixes.length; i++ ) { + if ((prefixes[i] + 'Hidden') in document) { + return prefixes[i] + 'Hidden'; + } + } + // otherwise it's not supported + return null; + } + }, + setToClearWatchedEvent: function() { + clearTimeout(watchedEventClearTimer); + watchedEventClearTimer = setTimeout(function() { + watchedEvent = ""; + }, 3000); + } + }; + + // public methods + slider.flexAnimate = function(target, pause, override, withSync, fromNav) { + if (!slider.vars.animationLoop && target !== slider.currentSlide) { + slider.direction = (target > slider.currentSlide) ? "next" : "prev"; + } + + if (asNav && slider.pagingCount === 1) slider.direction = (slider.currentItem < target) ? "next" : "prev"; + + if (!slider.animating && (slider.canAdvance(target, fromNav) || override) && slider.is(":visible")) { + if (asNav && withSync) { + var master = $(slider.vars.asNavFor).data('flexslider'); + slider.atEnd = target === 0 || target === slider.count - 1; + master.flexAnimate(target, true, false, true, fromNav); + slider.direction = (slider.currentItem < target) ? "next" : "prev"; + master.direction = slider.direction; + + if (Math.ceil((target + 1) / slider.visible) - 1 !== slider.currentSlide && target !== 0) { + slider.currentItem = target; + slider.slides.removeClass(namespace + "active-slide").eq(target).addClass(namespace + "active-slide"); + target = Math.floor(target / slider.visible); + } else { + slider.currentItem = target; + slider.slides.removeClass(namespace + "active-slide").eq(target).addClass(namespace + "active-slide"); + return false; + } + } + + slider.animating = true; + slider.animatingTo = target; + + // SLIDESHOW: + if (pause) {slider.pause();} + + // API: before() animation Callback + slider.vars.before(slider); + + // SYNC: + if (slider.syncExists && !fromNav) {methods.sync("animate");} + + // CONTROLNAV + if (slider.vars.controlNav) {methods.controlNav.active();} + + // !CAROUSEL: + // CANDIDATE: slide active class (for add/remove slide) + if (!carousel) {slider.slides.removeClass(namespace + 'active-slide').eq(target).addClass(namespace + 'active-slide');} + + // INFINITE LOOP: + // CANDIDATE: atEnd + slider.atEnd = target === 0 || target === slider.last; + + // DIRECTIONNAV: + if (slider.vars.directionNav) {methods.directionNav.update();} + + if (target === slider.last) { + // API: end() of cycle Callback + slider.vars.end(slider); + // SLIDESHOW && !INFINITE LOOP: + if (!slider.vars.animationLoop) {slider.pause();} + } + + // SLIDE: + if (!fade) { + var dimension = (vertical) ? slider.slides.filter(':first').height() : slider.computedW, + margin, slideString, calcNext; + + // INFINITE LOOP / REVERSE: + if (carousel) { + //margin = (slider.vars.itemWidth > slider.w) ? slider.vars.itemMargin * 2 : slider.vars.itemMargin; + margin = slider.vars.itemMargin; + calcNext = ((slider.itemW + margin) * slider.move) * slider.animatingTo; + slideString = (calcNext > slider.limit && slider.visible !== 1) ? slider.limit : calcNext; + } else if (slider.currentSlide === 0 && target === slider.count - 1 && slider.vars.animationLoop && slider.direction !== "next") { + slideString = (reverse) ? (slider.count + slider.cloneOffset) * dimension : 0; + } else if (slider.currentSlide === slider.last && target === 0 && slider.vars.animationLoop && slider.direction !== "prev") { + slideString = (reverse) ? 0 : (slider.count + 1) * dimension; + } else { + slideString = (reverse) ? ((slider.count - 1) - target + slider.cloneOffset) * dimension : (target + slider.cloneOffset) * dimension; + } + slider.setProps(slideString, "", slider.vars.animationSpeed); + if (slider.transitions) { + if (!slider.vars.animationLoop || !slider.atEnd) { + slider.animating = false; + slider.currentSlide = slider.animatingTo; + } + + // Unbind previous transitionEnd events and re-bind new transitionEnd event + slider.container.unbind("webkitTransitionEnd transitionend"); + slider.container.bind("webkitTransitionEnd transitionend", function() { + clearTimeout(slider.ensureAnimationEnd); + slider.wrapup(dimension); + }); + + // Insurance for the ever-so-fickle transitionEnd event + clearTimeout(slider.ensureAnimationEnd); + slider.ensureAnimationEnd = setTimeout(function() { + slider.wrapup(dimension); + }, slider.vars.animationSpeed + 100); + + } else { + slider.container.animate(slider.args, slider.vars.animationSpeed, slider.vars.easing, function(){ + slider.wrapup(dimension); + }); + } + } else { // FADE: + if (!touch) { + //slider.slides.eq(slider.currentSlide).fadeOut(slider.vars.animationSpeed, slider.vars.easing); + //slider.slides.eq(target).fadeIn(slider.vars.animationSpeed, slider.vars.easing, slider.wrapup); + + slider.slides.eq(slider.currentSlide).css({"zIndex": 1}).animate({"opacity": 0}, slider.vars.animationSpeed, slider.vars.easing); + slider.slides.eq(target).css({"zIndex": 2}).animate({"opacity": 1}, slider.vars.animationSpeed, slider.vars.easing, slider.wrapup); + + } else { + slider.slides.eq(slider.currentSlide).css({ + "opacity": 0, + "zIndex": 1 + }); + slider.slides.eq(target).css({"opacity": 1, "zIndex": 2}); + slider.wrapup(dimension); + } + } + // SMOOTH HEIGHT: + if (slider.vars.smoothHeight) {methods.smoothHeight(slider.vars.animationSpeed)}; + } + }; + slider.wrapup = function(dimension) { + // SLIDE: + if (!fade && !carousel) { + if (slider.currentSlide === 0 && slider.animatingTo === slider.last && slider.vars.animationLoop) { + slider.setProps(dimension, "jumpEnd"); + } else if (slider.currentSlide === slider.last && slider.animatingTo === 0 && slider.vars.animationLoop) { + slider.setProps(dimension, "jumpStart"); + } + } + slider.animating = false; + slider.currentSlide = slider.animatingTo; + // API: after() animation Callback + slider.vars.after(slider); + }; + + // SLIDESHOW: + slider.animateSlides = function() { + if (!slider.animating && focused) {slider.flexAnimate(slider.getTarget("next"));} + }; + // SLIDESHOW: + slider.pause = function() { + clearInterval(slider.animatedSlides); + slider.animatedSlides = null; + slider.playing = false; + // PAUSEPLAY: + if (slider.vars.pausePlay) {methods.pausePlay.update("play");} + // SYNC: + if (slider.syncExists) {methods.sync("pause");} + }; + // SLIDESHOW: + slider.play = function() { + if (slider.playing) {clearInterval(slider.animatedSlides);} + slider.animatedSlides = slider.animatedSlides || setInterval(slider.animateSlides, slider.vars.slideshowSpeed); + slider.started = slider.playing = true; + // PAUSEPLAY: + if (slider.vars.pausePlay) {methods.pausePlay.update("pause");} + // SYNC: + if (slider.syncExists) {methods.sync("play");} + }; + // STOP: + slider.stop = function() { + slider.pause(); + slider.stopped = true; + }; + slider.canAdvance = function(target, fromNav) { + // ASNAV: + var last = (asNav) ? slider.pagingCount - 1 : slider.last; + return (fromNav) ? true : + (asNav && slider.currentItem === slider.count - 1 && target === 0 && slider.direction === "prev") ? true : + (asNav && slider.currentItem === 0 && target === slider.pagingCount - 1 && slider.direction !== "next") ? false : + (target === slider.currentSlide && !asNav) ? false : + (slider.vars.animationLoop) ? true : + (slider.atEnd && slider.currentSlide === 0 && target === last && slider.direction !== "next") ? false : + (slider.atEnd && slider.currentSlide === last && target === 0 && slider.direction === "next") ? false : + true; + }; + slider.getTarget = function(dir) { + slider.direction = dir; + if (dir === "next") { + return (slider.currentSlide === slider.last) ? 0 : slider.currentSlide + 1; + } else { + return (slider.currentSlide === 0) ? slider.last : slider.currentSlide - 1; + } + }; + + // SLIDE: + slider.setProps = function(pos, special, dur) { + var target = (function() { + var posCheck = (pos) ? pos : ((slider.itemW + slider.vars.itemMargin) * slider.move) * slider.animatingTo, + posCalc = (function() { + if (carousel) { + return (special === "setTouch") ? pos : + (reverse && slider.animatingTo === slider.last) ? 0 : + (reverse) ? slider.limit - (((slider.itemW + slider.vars.itemMargin) * slider.move) * slider.animatingTo) : + (slider.animatingTo === slider.last) ? slider.limit : posCheck; + } else { + switch (special) { + case "setTotal": + return (reverse) ? ((slider.count - 1) - slider.currentSlide + slider.cloneOffset) * pos : (slider.currentSlide + slider.cloneOffset) * pos; + case "setTouch": + return (reverse) ? pos : pos; + case "jumpEnd": + return (reverse) ? pos : slider.count * pos; + case "jumpStart": + return (reverse) ? slider.count * pos : pos; + default: + return pos; + } + } + }()); + + return (posCalc * -1) + "px"; + }()); + + if (slider.transitions) { + target = (vertical) ? "translate3d(0," + target + ",0)" : "translate3d(" + target + ",0,0)"; + dur = (dur !== undefined) ? (dur / 1000) + "s" : "0s"; + slider.container.css("-" + slider.pfx + "-transition-duration", dur); + slider.container.css("transition-duration", dur); + } + + slider.args[slider.prop] = target; + if (slider.transitions || dur === undefined) {slider.container.css(slider.args);} + + slider.container.css('transform', target); + }; + + slider.setup = function(type) { + // SLIDE: + if (!fade) { + var sliderOffset, arr; + + if (type === "init") { + slider.viewport = $('
    ').css({ + "overflow": "hidden", + "position": "relative" + }).appendTo(slider).append(slider.container); + // INFINITE LOOP: + slider.cloneCount = 0; + slider.cloneOffset = 0; + // REVERSE: + if (reverse) { + arr = $.makeArray(slider.slides).reverse(); + slider.slides = $(arr); + slider.container.empty().append(slider.slides); + } + } + // INFINITE LOOP && !CAROUSEL: + if (slider.vars.animationLoop && !carousel) { + slider.cloneCount = 2; + slider.cloneOffset = 1; + // clear out old clones + if (type !== "init") { slider.container.find('.clone').remove(); } + slider.container.append(methods.uniqueID(slider.slides.first().clone().addClass('clone')).attr('aria-hidden', 'true')) + .prepend(methods.uniqueID(slider.slides.last().clone().addClass('clone')).attr('aria-hidden', 'true')); + } + slider.newSlides = $(slider.vars.selector, slider); + + sliderOffset = (reverse) ? slider.count - 1 - slider.currentSlide + slider.cloneOffset : slider.currentSlide + slider.cloneOffset; + // VERTICAL: + if (vertical && !carousel) { + slider.container.height((slider.count + slider.cloneCount) * 200 + "%").css("position", "absolute").width("100%"); + setTimeout(function() { + slider.newSlides.css({"display": "block"}); + slider.doMath(); + slider.viewport.height(slider.h); + slider.setProps(sliderOffset * slider.h, "init"); + }, (type === "init") ? 100 : 0); + } else { + slider.container.width((slider.count + slider.cloneCount) * 200 + "%"); + slider.setProps(sliderOffset * slider.computedW, "init"); + setTimeout(function() { + slider.doMath(); + slider.newSlides.css({"width": slider.computedW, "marginRight" : slider.computedM, "float": "left", "display": "block"}); + + // SMOOTH HEIGHT: + if (slider.vars.smoothHeight) {methods.smoothHeight();} + }, (type === "init") ? 100 : 0); + } + } else { // FADE: + slider.slides.css({ + "width": "100%", + "float": "left", + "marginRight": "-100%", + "position": "relative" + }); + if (type === "init") { + if (!touch) { + //slider.slides.eq(slider.currentSlide).fadeIn(slider.vars.animationSpeed, slider.vars.easing); + if (slider.vars.fadeFirstSlide == false) { + slider.slides.css({ "opacity": 0, "display": "block", "zIndex": 1 }).eq(slider.currentSlide).css({"zIndex": 2}).css({"opacity": 1}); + } else { + slider.slides.css({ "opacity": 0, "display": "block", "zIndex": 1 }).eq(slider.currentSlide).css({"zIndex": 2}).animate({"opacity": 1},slider.vars.animationSpeed,slider.vars.easing); + } + } else { + slider.slides.css({ "opacity": 0, "display": "block", "webkitTransition": "opacity " + slider.vars.animationSpeed / 1000 + "s ease", "zIndex": 1 }).eq(slider.currentSlide).css({ "opacity": 1, "zIndex": 2}); + } + } + // SMOOTH HEIGHT: + if (slider.vars.smoothHeight) {methods.smoothHeight();} + } + // !CAROUSEL: + // CANDIDATE: active slide + if (!carousel) {slider.slides.removeClass(namespace + "active-slide").eq(slider.currentSlide).addClass(namespace + "active-slide");} + + //FlexSlider: init() Callback + slider.vars.init(slider); + }; + + slider.doMath = function() { + var slide = slider.slides.first(), + slideMargin = slider.vars.itemMargin, + minItems = slider.vars.minItems, + maxItems = slider.vars.maxItems; + + slider.w = (slider.viewport === undefined) ? slider.width() : slider.viewport.width(); + slider.h = slide.height(); + slider.boxPadding = slide.outerWidth() - slide.width(); + + // CAROUSEL: + if (carousel) { + slider.itemT = slider.vars.itemWidth + slideMargin; + slider.itemM = slideMargin; + slider.minW = (minItems) ? minItems * slider.itemT : slider.w; + slider.maxW = (maxItems) ? (maxItems * slider.itemT) - slideMargin : slider.w; + slider.itemW = (slider.minW > slider.w) ? (slider.w - (slideMargin * (minItems - 1))) / minItems : + (slider.maxW < slider.w) ? (slider.w - (slideMargin * (maxItems - 1))) / maxItems : + (slider.vars.itemWidth > slider.w) ? slider.w : slider.vars.itemWidth; + + slider.visible = Math.floor(slider.w / (slider.itemW)); + slider.move = (slider.vars.move > 0 && slider.vars.move < slider.visible ) ? slider.vars.move : slider.visible; + slider.pagingCount = Math.ceil(((slider.count - slider.visible) / slider.move) + 1); + slider.last = slider.pagingCount - 1; + slider.limit = (slider.pagingCount === 1) ? 0 : + (slider.vars.itemWidth > slider.w) ? (slider.itemW * (slider.count - 1)) + (slideMargin * (slider.count - 1)) : ((slider.itemW + slideMargin) * slider.count) - slider.w - slideMargin; + } else { + slider.itemW = slider.w; + slider.itemM = slideMargin; + slider.pagingCount = slider.count; + slider.last = slider.count - 1; + } + slider.computedW = slider.itemW - slider.boxPadding; + slider.computedM = slider.itemM; + }; + + slider.update = function(pos, action) { + slider.doMath(); + + // update currentSlide and slider.animatingTo if necessary + if (!carousel) { + if (pos < slider.currentSlide) { + slider.currentSlide += 1; + } else if (pos <= slider.currentSlide && pos !== 0) { + slider.currentSlide -= 1; + } + slider.animatingTo = slider.currentSlide; + } + + // update controlNav + if (slider.vars.controlNav && !slider.manualControls) { + if ((action === "add" && !carousel) || slider.pagingCount > slider.controlNav.length) { + methods.controlNav.update("add"); + } else if ((action === "remove" && !carousel) || slider.pagingCount < slider.controlNav.length) { + if (carousel && slider.currentSlide > slider.last) { + slider.currentSlide -= 1; + slider.animatingTo -= 1; + } + methods.controlNav.update("remove", slider.last); + } + } + // update directionNav + if (slider.vars.directionNav) {methods.directionNav.update();} + + }; + + slider.addSlide = function(obj, pos) { + var $obj = $(obj); + + slider.count += 1; + slider.last = slider.count - 1; + + // append new slide + if (vertical && reverse) { + (pos !== undefined) ? slider.slides.eq(slider.count - pos).after($obj) : slider.container.prepend($obj); + } else { + (pos !== undefined) ? slider.slides.eq(pos).before($obj) : slider.container.append($obj); + } + + // update currentSlide, animatingTo, controlNav, and directionNav + slider.update(pos, "add"); + + // update slider.slides + slider.slides = $(slider.vars.selector + ':not(.clone)', slider); + // re-setup the slider to accomdate new slide + slider.setup(); + + //FlexSlider: added() Callback + slider.vars.added(slider); + }; + slider.removeSlide = function(obj) { + var pos = (isNaN(obj)) ? slider.slides.index($(obj)) : obj; + + // update count + slider.count -= 1; + slider.last = slider.count - 1; + + // remove slide + if (isNaN(obj)) { + $(obj, slider.slides).remove(); + } else { + (vertical && reverse) ? slider.slides.eq(slider.last).remove() : slider.slides.eq(obj).remove(); + } + + // update currentSlide, animatingTo, controlNav, and directionNav + slider.doMath(); + slider.update(pos, "remove"); + + // update slider.slides + slider.slides = $(slider.vars.selector + ':not(.clone)', slider); + // re-setup the slider to accomdate new slide + slider.setup(); + + // FlexSlider: removed() Callback + slider.vars.removed(slider); + }; + + //FlexSlider: Initialize + methods.init(); + }; + + // Ensure the slider isn't focussed if the window loses focus. + $(window).blur(function(e) { + focused = false; + }).focus(function(e) { + focused = true; + }); + + // FlexSlider: Default Settings + $.flexslider.defaults = { + namespace: 'am-', // {NEW} String: Prefix string attached to the class of every element generated by the plugin + selector: '.am-slides > li', // {NEW} Selector: Must match a simple pattern. '{container} > {slide}' -- Ignore pattern at your own peril + animation: 'slide', // String: Select your animation type, 'fade' or 'slide' + easing: 'swing', // {NEW} String: Determines the easing method used in jQuery transitions. jQuery easing plugin is supported! + direction: 'horizontal', // String: Select the sliding direction, "horizontal" or "vertical" + reverse: false, // {NEW} Boolean: Reverse the animation direction + animationLoop: true, // Boolean: Should the animation loop? If false, directionNav will received "disable" classes at either end + smoothHeight: false, // {NEW} Boolean: Allow height of the slider to animate smoothly in horizontal mode + startAt: 0, // Integer: The slide that the slider should start on. Array notation (0 = first slide) + slideshow: true, // Boolean: Animate slider automatically + slideshowSpeed: 5000, // Integer: Set the speed of the slideshow cycling, in milliseconds + animationSpeed: 600, // Integer: Set the speed of animations, in milliseconds + initDelay: 0, // {NEW} Integer: Set an initialization delay, in milliseconds + randomize: false, // Boolean: Randomize slide order + fadeFirstSlide: true, // Boolean: Fade in the first slide when animation type is "fade" + thumbCaptions: false, // Boolean: Whether or not to put captions on thumbnails when using the "thumbnails" controlNav. + + // Usability features + pauseOnAction: true, // Boolean: Pause the slideshow when interacting with control elements, highly recommended. + pauseOnHover: false, // Boolean: Pause the slideshow when hovering over slider, then resume when no longer hovering + pauseInvisible: true, // {NEW} Boolean: Pause the slideshow when tab is invisible, resume when visible. Provides better UX, lower CPU usage. + useCSS: true, // {NEW} Boolean: Slider will use CSS3 transitions if available + touch: true, // {NEW} Boolean: Allow touch swipe navigation of the slider on touch-enabled devices + video: false, // {NEW} Boolean: If using video in the slider, will prevent CSS3 3D Transforms to avoid graphical glitches + + // Primary Controls + controlNav: true, // Boolean: Create navigation for paging control of each slide? Note: Leave true for manualControls usage + directionNav: true, // Boolean: Create navigation for previous/next navigation? (true/false) + prevText: ' ', // String: Set the text for the "previous" directionNav item + nextText: ' ', // String: Set the text for the "next" directionNav item + + // Secondary Navigation + keyboard: true, // Boolean: Allow slider navigating via keyboard left/right keys + multipleKeyboard: false, // {NEW} Boolean: Allow keyboard navigation to affect multiple sliders. Default behavior cuts out keyboard navigation with more than one slider present. + mousewheel: false, // {UPDATED} Boolean: Requires jquery.mousewheel.js (https://github.com/brandonaaron/jquery-mousewheel) - Allows slider navigating via mousewheel + pausePlay: false, // Boolean: Create pause/play dynamic element + pauseText: 'Pause', // String: Set the text for the 'pause' pausePlay item + playText: 'Play', // String: Set the text for the 'play' pausePlay item + + // Special properties + controlsContainer: '', // {UPDATED} jQuery Object/Selector: Declare which container the navigation elements should be appended too. Default container is the FlexSlider element. Example use would be $('.flexslider-container'). Property is ignored if given element is not found. + manualControls: '', // {UPDATED} jQuery Object/Selector: Declare custom control navigation. Examples would be $(".flex-control-nav li") or "#tabs-nav li img", etc. The number of elements in your controlNav should match the number of slides/tabs. + customDirectionNav: '', // {NEW} jQuery Object/Selector: Custom prev / next button. Must be two jQuery elements. In order to make the events work they have to have the classes "prev" and "next" (plus namespace) + sync: '', // {NEW} Selector: Mirror the actions performed on this slider with another slider. Use with care. + asNavFor: '', // {NEW} Selector: Internal property exposed for turning the slider into a thumbnail navigation for another slider + + // Carousel Options + itemWidth: 0, // {NEW} Integer: Box-model width of individual carousel items, including horizontal borders and padding. + itemMargin: 0, // {NEW} Integer: Margin between carousel items. + minItems: 1, // {NEW} Integer: Minimum number of carousel items that should be visible. Items will resize fluidly when below this. + maxItems: 0, // {NEW} Integer: Maxmimum number of carousel items that should be visible. Items will resize fluidly when above this limit. + move: 0, // {NEW} Integer: Number of carousel items that should move on animation. If 0, slider will move all visible items. + allowOneSlide: true, // {NEW} Boolean: Whether or not to allow a slider comprised of a single slide + + // Callback API + start: function() { + }, // Callback: function(slider) - Fires when the slider loads the first slide + before: function() { + }, // Callback: function(slider) - Fires asynchronously with each slider animation + after: function() { + }, // Callback: function(slider) - Fires after each slider animation completes + end: function() { + }, // Callback: function(slider) - Fires when the slider reaches the last slide (asynchronous) + added: function() { + }, // {NEW} Callback: function(slider) - Fires after a slide is added + removed: function() { + }, // {NEW} Callback: function(slider) - Fires after a slide is removed + init: function() { + } // {NEW} Callback: function(slider) - Fires after the slider is initially setup + }; + + // FlexSlider: Plugin Function + $.fn.flexslider = function(options) { + var args = Array.prototype.slice.call(arguments, 1); + if (options === undefined) {options = {};} + + if (typeof options === 'object') { + return this.each(function() { + var $this = $(this); + var selector = (options.selector) ? options.selector : '.am-slides > li'; + var $slides = $this.find(selector); + + if (( $slides.length === 1 && options.allowOneSlide === false) || $slides.length === 0) { + $slides.fadeIn(400); + if (options.start) {options.start($this);} + } else if ($this.data('flexslider') === undefined) { + new $.flexslider(this, options); + } + }); + } else { + // Helper strings to quickly pecdrform functions on the slider + var $slider = $(this).data('flexslider'); + var methodReturn; + switch (options) { + case 'next': + $slider.flexAnimate($slider.getTarget('next'), true); + break; + case 'prev': + case 'previous': + $slider.flexAnimate($slider.getTarget('prev'), true); + break; + default: + if (typeof options === 'number') { + $slider.flexAnimate(options, true); + } else if (typeof options === 'string') { + methodReturn = (typeof $slider[options] === 'function') ? + $slider[options].apply($slider, args) : $slider[options]; + } + } + + return methodReturn === undefined ? this : methodReturn; + } + }; + + // Init code + UI.ready(function(context) { + $('[data-am-flexslider]', context).each(function(i, item) { + var $slider = $(item); + var options = UI.utils.parseOptions($slider.data('amFlexslider')); + + options.before = function(slider) { + if (slider._pausedTimer) { + window.clearTimeout(slider._pausedTimer); + slider._pausedTimer = null; + } + }; + + options.after = function(slider) { + var pauseTime = slider.vars.playAfterPaused; + if (pauseTime && !isNaN(pauseTime) && !slider.playing) { + if (!slider.manualPause && !slider.manualPlay && !slider.stopped) { + slider._pausedTimer = window.setTimeout(function() { + slider.play(); + }, pauseTime); + } + } + }; + + $slider.flexslider(options); + }); + }); + + module.exports = $.flexslider; + + /* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(12).setImmediate)) + +/***/ }, +/* 12 */ +/***/ function(module, exports, __webpack_require__) { + + /* WEBPACK VAR INJECTION */(function(setImmediate, clearImmediate) {var nextTick = __webpack_require__(13).nextTick; + var apply = Function.prototype.apply; + var slice = Array.prototype.slice; + var immediateIds = {}; + var nextImmediateId = 0; + + // DOM APIs, for completeness + + exports.setTimeout = function() { + return new Timeout(apply.call(setTimeout, window, arguments), clearTimeout); + }; + exports.setInterval = function() { + return new Timeout(apply.call(setInterval, window, arguments), clearInterval); + }; + exports.clearTimeout = + exports.clearInterval = function(timeout) { timeout.close(); }; + + function Timeout(id, clearFn) { + this._id = id; + this._clearFn = clearFn; + } + Timeout.prototype.unref = Timeout.prototype.ref = function() {}; + Timeout.prototype.close = function() { + this._clearFn.call(window, this._id); + }; + + // Does not start the time, just sets up the members needed. + exports.enroll = function(item, msecs) { + clearTimeout(item._idleTimeoutId); + item._idleTimeout = msecs; + }; + + exports.unenroll = function(item) { + clearTimeout(item._idleTimeoutId); + item._idleTimeout = -1; + }; + + exports._unrefActive = exports.active = function(item) { + clearTimeout(item._idleTimeoutId); + + var msecs = item._idleTimeout; + if (msecs >= 0) { + item._idleTimeoutId = setTimeout(function onTimeout() { + if (item._onTimeout) + item._onTimeout(); + }, msecs); + } + }; + + // That's not how node.js implements it but the exposed api is the same. + exports.setImmediate = typeof setImmediate === "function" ? setImmediate : function(fn) { + var id = nextImmediateId++; + var args = arguments.length < 2 ? false : slice.call(arguments, 1); + + immediateIds[id] = true; + + nextTick(function onNextTick() { + if (immediateIds[id]) { + // fn.call() is faster so we optimize for the common use-case + // @see http://jsperf.com/call-apply-segu + if (args) { + fn.apply(null, args); + } else { + fn.call(null); + } + // Prevent ids from leaking + exports.clearImmediate(id); + } + }); + + return id; + }; + + exports.clearImmediate = typeof clearImmediate === "function" ? clearImmediate : function(id) { + delete immediateIds[id]; + }; + /* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(12).setImmediate, __webpack_require__(12).clearImmediate)) + +/***/ }, +/* 13 */ +/***/ function(module, exports) { + + // shim for using process in browser + var process = module.exports = {}; + + // cached from whatever global is present so that test runners that stub it + // don't break things. But we need to wrap it in a try catch in case it is + // wrapped in strict mode code which doesn't define any globals. It's inside a + // function because try/catches deoptimize in certain engines. + + var cachedSetTimeout; + var cachedClearTimeout; + + (function () { + try { + cachedSetTimeout = setTimeout; + } catch (e) { + cachedSetTimeout = function () { + throw new Error('setTimeout is not defined'); + } + } + try { + cachedClearTimeout = clearTimeout; + } catch (e) { + cachedClearTimeout = function () { + throw new Error('clearTimeout is not defined'); + } + } + } ()) + function runTimeout(fun) { + if (cachedSetTimeout === setTimeout) { + //normal enviroments in sane situations + return setTimeout(fun, 0); + } + try { + // when when somebody has screwed with setTimeout but no I.E. maddness + return cachedSetTimeout(fun, 0); + } catch(e){ + try { + // When we are in I.E. but the script has been evaled so I.E. doesn't trust the global object when called normally + return cachedSetTimeout.call(null, fun, 0); + } catch(e){ + // same as above but when it's a version of I.E. that must have the global object for 'this', hopfully our context correct otherwise it will throw a global error + return cachedSetTimeout.call(this, fun, 0); + } + } + + + } + function runClearTimeout(marker) { + if (cachedClearTimeout === clearTimeout) { + //normal enviroments in sane situations + return clearTimeout(marker); + } + try { + // when when somebody has screwed with setTimeout but no I.E. maddness + return cachedClearTimeout(marker); + } catch (e){ + try { + // When we are in I.E. but the script has been evaled so I.E. doesn't trust the global object when called normally + return cachedClearTimeout.call(null, marker); + } catch (e){ + // same as above but when it's a version of I.E. that must have the global object for 'this', hopfully our context correct otherwise it will throw a global error. + // Some versions of I.E. have different rules for clearTimeout vs setTimeout + return cachedClearTimeout.call(this, marker); + } + } + + + + } + var queue = []; + var draining = false; + var currentQueue; + var queueIndex = -1; + + function cleanUpNextTick() { + if (!draining || !currentQueue) { + return; + } + draining = false; + if (currentQueue.length) { + queue = currentQueue.concat(queue); + } else { + queueIndex = -1; + } + if (queue.length) { + drainQueue(); + } + } + + function drainQueue() { + if (draining) { + return; + } + var timeout = runTimeout(cleanUpNextTick); + draining = true; + + var len = queue.length; + while(len) { + currentQueue = queue; + queue = []; + while (++queueIndex < len) { + if (currentQueue) { + currentQueue[queueIndex].run(); + } + } + queueIndex = -1; + len = queue.length; + } + currentQueue = null; + draining = false; + runClearTimeout(timeout); + } + + process.nextTick = function (fun) { + var args = new Array(arguments.length - 1); + if (arguments.length > 1) { + for (var i = 1; i < arguments.length; i++) { + args[i - 1] = arguments[i]; + } + } + queue.push(new Item(fun, args)); + if (queue.length === 1 && !draining) { + runTimeout(drainQueue); + } + }; + + // v8 likes predictible objects + function Item(fun, array) { + this.fun = fun; + this.array = array; + } + Item.prototype.run = function () { + this.fun.apply(null, this.array); + }; + process.title = 'browser'; + process.browser = true; + process.env = {}; + process.argv = []; + process.version = ''; // empty string to avoid regexp issues + process.versions = {}; + + function noop() {} + + process.on = noop; + process.addListener = noop; + process.once = noop; + process.off = noop; + process.removeListener = noop; + process.removeAllListeners = noop; + process.emit = noop; + + process.binding = function (name) { + throw new Error('process.binding is not supported'); + }; + + process.cwd = function () { return '/' }; + process.chdir = function (dir) { + throw new Error('process.chdir is not supported'); + }; + process.umask = function() { return 0; }; + + +/***/ }, +/* 14 */ +/***/ function(module, exports, __webpack_require__) { + + 'use strict'; + + var UI = __webpack_require__(2); + + /*! iScroll v5.2.0 + * (c) 2008-2016 Matteo Spinelli + * http://cubiq.org/license + */ + + var rAF = UI.utils.rAF; + + var utils = (function() { + var me = {}; + + var _elementStyle = document.createElement('div').style; + var _vendor = (function() { + var vendors = ['t', 'webkitT', 'MozT', 'msT', 'OT'], + transform, + i = 0, + l = vendors.length; + + for (; i < l; i++) { + transform = vendors[i] + 'ransform'; + if (transform in _elementStyle) return vendors[i].substr(0, vendors[i].length - 1); + } + + return false; + })(); + + function _prefixStyle(style) { + if (_vendor === false) return false; + if (_vendor === '') return style; + return _vendor + style.charAt(0).toUpperCase() + style.substr(1); + } + + me.getTime = Date.now || function getTime() { + return new Date().getTime(); + }; + + me.extend = function(target, obj) { + for (var i in obj) { + target[i] = obj[i]; + } + }; + + me.addEvent = function(el, type, fn, capture) { + el.addEventListener(type, fn, !!capture); + }; + + me.removeEvent = function(el, type, fn, capture) { + el.removeEventListener(type, fn, !!capture); + }; + + me.prefixPointerEvent = function(pointerEvent) { + return window.MSPointerEvent ? + 'MSPointer' + pointerEvent.charAt(7) + .toUpperCase() + pointerEvent.substr(8) : + pointerEvent; + }; + + me.momentum = function(current, start, time, lowerMargin, wrapperSize, deceleration) { + var distance = current - start, + speed = Math.abs(distance) / time, + destination, + duration; + + deceleration = deceleration === undefined ? 0.0006 : deceleration; + + destination = current + ( speed * speed ) / ( 2 * deceleration ) * ( distance < 0 ? -1 : 1 ); + duration = speed / deceleration; + + if (destination < lowerMargin) { + destination = wrapperSize ? lowerMargin - ( wrapperSize / 2.5 * ( speed / 8 ) ) : lowerMargin; + distance = Math.abs(destination - current); + duration = distance / speed; + } else if (destination > 0) { + destination = wrapperSize ? wrapperSize / 2.5 * ( speed / 8 ) : 0; + distance = Math.abs(current) + destination; + duration = distance / speed; + } + + return { + destination: Math.round(destination), + duration: duration + }; + }; + + var _transform = _prefixStyle('transform'); + + me.extend(me, { + hasTransform: _transform !== false, + hasPerspective: _prefixStyle('perspective') in _elementStyle, + hasTouch: 'ontouchstart' in window, + hasPointer: !!(window.PointerEvent || window.MSPointerEvent), // IE10 is prefixed + hasTransition: _prefixStyle('transition') in _elementStyle + }); + + /* + This should find all Android browsers lower than build 535.19 (both stock browser and webview) + - galaxy S2 is ok + - 2.3.6 : `AppleWebKit/533.1 (KHTML, like Gecko) Version/4.0 Mobile Safari/533.1` + - 4.0.4 : `AppleWebKit/534.30 (KHTML, like Gecko) Version/4.0 Mobile Safari/534.30` + - galaxy S3 is badAndroid (stock brower, webview) + `AppleWebKit/534.30 (KHTML, like Gecko) Version/4.0 Mobile Safari/534.30` + - galaxy S4 is badAndroid (stock brower, webview) + `AppleWebKit/534.30 (KHTML, like Gecko) Version/4.0 Mobile Safari/534.30` + - galaxy S5 is OK + `AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Mobile Safari/537.36 (Chrome/)` + - galaxy S6 is OK + `AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Mobile Safari/537.36 (Chrome/)` + */ + me.isBadAndroid = (function() { + var appVersion = window.navigator.appVersion; + // Android browser is not a chrome browser. + if (/Android/.test(appVersion) && !(/Chrome\/\d/.test(appVersion))) { + var safariVersion = appVersion.match(/Safari\/(\d+.\d)/); + if (safariVersion && typeof safariVersion === "object" && safariVersion.length >= 2) { + return parseFloat(safariVersion[1]) < 535.19; + } else { + return true; + } + } else { + return false; + } + })(); + + me.extend(me.style = {}, { + transform: _transform, + transitionTimingFunction: _prefixStyle('transitionTimingFunction'), + transitionDuration: _prefixStyle('transitionDuration'), + transitionDelay: _prefixStyle('transitionDelay'), + transformOrigin: _prefixStyle('transformOrigin') + }); + + me.hasClass = function(e, c) { + var re = new RegExp("(^|\\s)" + c + "(\\s|$)"); + return re.test(e.className); + }; + + me.addClass = function(e, c) { + if (me.hasClass(e, c)) { + return; + } + + var newclass = e.className.split(' '); + newclass.push(c); + e.className = newclass.join(' '); + }; + + me.removeClass = function(e, c) { + if (!me.hasClass(e, c)) { + return; + } + + var re = new RegExp("(^|\\s)" + c + "(\\s|$)", 'g'); + e.className = e.className.replace(re, ' '); + }; + + me.offset = function(el) { + var left = -el.offsetLeft, + top = -el.offsetTop; + + // jshint -W084 + while (el = el.offsetParent) { + left -= el.offsetLeft; + top -= el.offsetTop; + } + // jshint +W084 + + return { + left: left, + top: top + }; + }; + + me.preventDefaultException = function(el, exceptions) { + for (var i in exceptions) { + if (exceptions[i].test(el[i])) { + return true; + } + } + + return false; + }; + + me.extend(me.eventType = {}, { + touchstart: 1, + touchmove: 1, + touchend: 1, + + mousedown: 2, + mousemove: 2, + mouseup: 2, + + pointerdown: 3, + pointermove: 3, + pointerup: 3, + + MSPointerDown: 3, + MSPointerMove: 3, + MSPointerUp: 3 + }); + + me.extend(me.ease = {}, { + quadratic: { + style: 'cubic-bezier(0.25, 0.46, 0.45, 0.94)', + fn: function(k) { + return k * ( 2 - k ); + } + }, + circular: { + style: 'cubic-bezier(0.1, 0.57, 0.1, 1)', // Not properly "circular" but this looks better, it should be (0.075, 0.82, 0.165, 1) + fn: function(k) { + return Math.sqrt(1 - ( --k * k )); + } + }, + back: { + style: 'cubic-bezier(0.175, 0.885, 0.32, 1.275)', + fn: function(k) { + var b = 4; + return ( k = k - 1 ) * k * ( ( b + 1 ) * k + b ) + 1; + } + }, + bounce: { + style: '', + fn: function(k) { + if (( k /= 1 ) < ( 1 / 2.75 )) { + return 7.5625 * k * k; + } else if (k < ( 2 / 2.75 )) { + return 7.5625 * ( k -= ( 1.5 / 2.75 ) ) * k + 0.75; + } else if (k < ( 2.5 / 2.75 )) { + return 7.5625 * ( k -= ( 2.25 / 2.75 ) ) * k + 0.9375; + } else { + return 7.5625 * ( k -= ( 2.625 / 2.75 ) ) * k + 0.984375; + } + } + }, + elastic: { + style: '', + fn: function(k) { + var f = 0.22, + e = 0.4; + + if (k === 0) { + return 0; + } + if (k == 1) { + return 1; + } + + return ( e * Math.pow(2, -10 * k) * Math.sin(( k - f / 4 ) * ( 2 * Math.PI ) / f) + 1 ); + } + } + }); + + me.tap = function(e, eventName) { + var ev = document.createEvent('Event'); + ev.initEvent(eventName, true, true); + ev.pageX = e.pageX; + ev.pageY = e.pageY; + e.target.dispatchEvent(ev); + }; + + me.click = function(e) { + var target = e.target, + ev; + + if (!(/(SELECT|INPUT|TEXTAREA)/i).test(target.tagName)) { + // https://developer.mozilla.org/en-US/docs/Web/API/MouseEvent/initMouseEvent + // initMouseEvent is deprecated. + ev = document.createEvent(window.MouseEvent ? 'MouseEvents' : 'Event'); + ev.initEvent('click', true, true); + ev.view = e.view || window; + ev.detail = 1; + ev.screenX = target.screenX || 0; + ev.screenY = target.screenY || 0; + ev.clientX = target.clientX || 0; + ev.clientY = target.clientY || 0; + ev.ctrlKey = !!e.ctrlKey; + ev.altKey = !!e.altKey; + ev.shiftKey = !!e.shiftKey; + ev.metaKey = !!e.metaKey; + ev.button = 0; + ev.relatedTarget = null; + ev._constructed = true; + target.dispatchEvent(ev); + } + }; + + return me; + })(); + function IScroll(el, options) { + this.wrapper = typeof el == 'string' ? document.querySelector(el) : el; + this.scroller = this.wrapper.children[0]; + this.scrollerStyle = this.scroller.style; // cache style for better performance + + this.options = { + + // INSERT POINT: OPTIONS + disablePointer: !utils.hasPointer, + disableTouch: utils.hasPointer || !utils.hasTouch, + disableMouse: utils.hasPointer || utils.hasTouch, + startX: 0, + startY: 0, + scrollY: true, + directionLockThreshold: 5, + momentum: true, + + bounce: true, + bounceTime: 600, + bounceEasing: '', + + preventDefault: true, + preventDefaultException: {tagName: /^(INPUT|TEXTAREA|BUTTON|SELECT)$/}, + + HWCompositing: true, + useTransition: true, + useTransform: true, + bindToWrapper: typeof window.onmousedown === "undefined" + }; + + for (var i in options) { + this.options[i] = options[i]; + } + + // Normalize options + this.translateZ = this.options.HWCompositing && utils.hasPerspective ? ' translateZ(0)' : ''; + + this.options.useTransition = utils.hasTransition && this.options.useTransition; + this.options.useTransform = utils.hasTransform && this.options.useTransform; + + this.options.eventPassthrough = this.options.eventPassthrough === true ? 'vertical' : this.options.eventPassthrough; + this.options.preventDefault = !this.options.eventPassthrough && this.options.preventDefault; + + // If you want eventPassthrough I have to lock one of the axes + this.options.scrollY = this.options.eventPassthrough == 'vertical' ? false : this.options.scrollY; + this.options.scrollX = this.options.eventPassthrough == 'horizontal' ? false : this.options.scrollX; + + // With eventPassthrough we also need lockDirection mechanism + this.options.freeScroll = this.options.freeScroll && !this.options.eventPassthrough; + this.options.directionLockThreshold = this.options.eventPassthrough ? 0 : this.options.directionLockThreshold; + + this.options.bounceEasing = typeof this.options.bounceEasing == 'string' ? utils.ease[this.options.bounceEasing] || utils.ease.circular : this.options.bounceEasing; + + this.options.resizePolling = this.options.resizePolling === undefined ? 60 : this.options.resizePolling; + + if (this.options.tap === true) { + this.options.tap = 'tap'; + } + + // https://github.com/cubiq/iscroll/issues/1029 + if (!this.options.useTransition && !this.options.useTransform) { + if (!(/relative|absolute/i).test(this.scrollerStyle.position)) { + this.scrollerStyle.position = "relative"; + } + } + + // INSERT POINT: NORMALIZATION + + // Some defaults + this.x = 0; + this.y = 0; + this.directionX = 0; + this.directionY = 0; + this._events = {}; + + // INSERT POINT: DEFAULTS + + this._init(); + this.refresh(); + + this.scrollTo(this.options.startX, this.options.startY); + this.enable(); + } + + IScroll.prototype = { + version: '5.2.0', + + _init: function() { + this._initEvents(); + + // INSERT POINT: _init + + }, + + destroy: function() { + this._initEvents(true); + clearTimeout(this.resizeTimeout); + this.resizeTimeout = null; + this._execEvent('destroy'); + }, + + _transitionEnd: function(e) { + if (e.target != this.scroller || !this.isInTransition) { + return; + } + + this._transitionTime(); + if (!this.resetPosition(this.options.bounceTime)) { + this.isInTransition = false; + this._execEvent('scrollEnd'); + } + }, + + _start: function(e) { + // React to left mouse button only + if (utils.eventType[e.type] != 1) { + // for button property + // http://unixpapa.com/js/mouse.html + var button; + if (!e.which) { + /* IE case */ + button = (e.button < 2) ? 0 : + ((e.button == 4) ? 1 : 2); + } else { + /* All others */ + button = e.button; + } + if (button !== 0) { + return; + } + } + + if (!this.enabled || (this.initiated && utils.eventType[e.type] !== this.initiated)) { + return; + } + + if (this.options.preventDefault && !utils.isBadAndroid && !utils.preventDefaultException(e.target, this.options.preventDefaultException)) { + e.preventDefault(); + } + + var point = e.touches ? e.touches[0] : e, + pos; + + this.initiated = utils.eventType[e.type]; + this.moved = false; + this.distX = 0; + this.distY = 0; + this.directionX = 0; + this.directionY = 0; + this.directionLocked = 0; + + this.startTime = utils.getTime(); + + if (this.options.useTransition && this.isInTransition) { + this._transitionTime(); + this.isInTransition = false; + pos = this.getComputedPosition(); + this._translate(Math.round(pos.x), Math.round(pos.y)); + this._execEvent('scrollEnd'); + } else if (!this.options.useTransition && this.isAnimating) { + this.isAnimating = false; + this._execEvent('scrollEnd'); + } + + this.startX = this.x; + this.startY = this.y; + this.absStartX = this.x; + this.absStartY = this.y; + this.pointX = point.pageX; + this.pointY = point.pageY; + + this._execEvent('beforeScrollStart'); + }, + + _move: function(e) { + if (!this.enabled || utils.eventType[e.type] !== this.initiated) { + return; + } + + if (this.options.preventDefault) { // increases performance on Android? TODO: check! + e.preventDefault(); + } + + var point = e.touches ? e.touches[0] : e, + deltaX = point.pageX - this.pointX, + deltaY = point.pageY - this.pointY, + timestamp = utils.getTime(), + newX, newY, + absDistX, absDistY; + + this.pointX = point.pageX; + this.pointY = point.pageY; + + this.distX += deltaX; + this.distY += deltaY; + absDistX = Math.abs(this.distX); + absDistY = Math.abs(this.distY); + + // We need to move at least 10 pixels for the scrolling to initiate + if (timestamp - this.endTime > 300 && (absDistX < 10 && absDistY < 10)) { + return; + } + + // If you are scrolling in one direction lock the other + if (!this.directionLocked && !this.options.freeScroll) { + if (absDistX > absDistY + this.options.directionLockThreshold) { + this.directionLocked = 'h'; // lock horizontally + } else if (absDistY >= absDistX + this.options.directionLockThreshold) { + this.directionLocked = 'v'; // lock vertically + } else { + this.directionLocked = 'n'; // no lock + } + } + + if (this.directionLocked == 'h') { + if (this.options.eventPassthrough == 'vertical') { + e.preventDefault(); + } else if (this.options.eventPassthrough == 'horizontal') { + this.initiated = false; + return; + } + + deltaY = 0; + } else if (this.directionLocked == 'v') { + if (this.options.eventPassthrough == 'horizontal') { + e.preventDefault(); + } else if (this.options.eventPassthrough == 'vertical') { + this.initiated = false; + return; + } + + deltaX = 0; + } + + deltaX = this.hasHorizontalScroll ? deltaX : 0; + deltaY = this.hasVerticalScroll ? deltaY : 0; + + newX = this.x + deltaX; + newY = this.y + deltaY; + + // Slow down if outside of the boundaries + if (newX > 0 || newX < this.maxScrollX) { + newX = this.options.bounce ? this.x + deltaX / 3 : newX > 0 ? 0 : this.maxScrollX; + } + if (newY > 0 || newY < this.maxScrollY) { + newY = this.options.bounce ? this.y + deltaY / 3 : newY > 0 ? 0 : this.maxScrollY; + } + + this.directionX = deltaX > 0 ? -1 : deltaX < 0 ? 1 : 0; + this.directionY = deltaY > 0 ? -1 : deltaY < 0 ? 1 : 0; + + if (!this.moved) { + this._execEvent('scrollStart'); + } + + this.moved = true; + + this._translate(newX, newY); + + /* REPLACE START: _move */ + + if (timestamp - this.startTime > 300) { + this.startTime = timestamp; + this.startX = this.x; + this.startY = this.y; + } + + /* REPLACE END: _move */ + + }, + + _end: function(e) { + if (!this.enabled || utils.eventType[e.type] !== this.initiated) { + return; + } + + if (this.options.preventDefault && !utils.preventDefaultException(e.target, this.options.preventDefaultException)) { + e.preventDefault(); + } + + var point = e.changedTouches ? e.changedTouches[0] : e, + momentumX, + momentumY, + duration = utils.getTime() - this.startTime, + newX = Math.round(this.x), + newY = Math.round(this.y), + distanceX = Math.abs(newX - this.startX), + distanceY = Math.abs(newY - this.startY), + time = 0, + easing = ''; + + this.isInTransition = 0; + this.initiated = 0; + this.endTime = utils.getTime(); + + // reset if we are outside of the boundaries + if (this.resetPosition(this.options.bounceTime)) { + return; + } + + this.scrollTo(newX, newY); // ensures that the last position is rounded + + // we scrolled less than 10 pixels + if (!this.moved) { + if (this.options.tap) { + utils.tap(e, this.options.tap); + } + + if (this.options.click) { + utils.click(e); + } + + this._execEvent('scrollCancel'); + return; + } + + if (this._events.flick && duration < 200 && distanceX < 100 && distanceY < 100) { + this._execEvent('flick'); + return; + } + + // start momentum animation if needed + if (this.options.momentum && duration < 300) { + momentumX = this.hasHorizontalScroll ? utils.momentum(this.x, this.startX, duration, this.maxScrollX, this.options.bounce ? this.wrapperWidth : 0, this.options.deceleration) : { + destination: newX, + duration: 0 + }; + momentumY = this.hasVerticalScroll ? utils.momentum(this.y, this.startY, duration, this.maxScrollY, this.options.bounce ? this.wrapperHeight : 0, this.options.deceleration) : { + destination: newY, + duration: 0 + }; + newX = momentumX.destination; + newY = momentumY.destination; + time = Math.max(momentumX.duration, momentumY.duration); + this.isInTransition = 1; + } + + // INSERT POINT: _end + + if (newX != this.x || newY != this.y) { + // change easing function when scroller goes out of the boundaries + if (newX > 0 || newX < this.maxScrollX || newY > 0 || newY < this.maxScrollY) { + easing = utils.ease.quadratic; + } + + this.scrollTo(newX, newY, time, easing); + return; + } + + this._execEvent('scrollEnd'); + }, + + _resize: function() { + var that = this; + + clearTimeout(this.resizeTimeout); + + this.resizeTimeout = setTimeout(function() { + that.refresh(); + }, this.options.resizePolling); + }, + + resetPosition: function(time) { + var x = this.x, + y = this.y; + + time = time || 0; + + if (!this.hasHorizontalScroll || this.x > 0) { + x = 0; + } else if (this.x < this.maxScrollX) { + x = this.maxScrollX; + } + + if (!this.hasVerticalScroll || this.y > 0) { + y = 0; + } else if (this.y < this.maxScrollY) { + y = this.maxScrollY; + } + + if (x == this.x && y == this.y) { + return false; + } + + this.scrollTo(x, y, time, this.options.bounceEasing); + + return true; + }, + + disable: function() { + this.enabled = false; + }, + + enable: function() { + this.enabled = true; + }, + + refresh: function() { + var rf = this.wrapper.offsetHeight; // Force reflow + + this.wrapperWidth = this.wrapper.clientWidth; + this.wrapperHeight = this.wrapper.clientHeight; + + /* REPLACE START: refresh */ + + this.scrollerWidth = this.scroller.offsetWidth; + this.scrollerHeight = this.scroller.offsetHeight; + + this.maxScrollX = this.wrapperWidth - this.scrollerWidth; + this.maxScrollY = this.wrapperHeight - this.scrollerHeight; + + /* REPLACE END: refresh */ + + this.hasHorizontalScroll = this.options.scrollX && this.maxScrollX < 0; + this.hasVerticalScroll = this.options.scrollY && this.maxScrollY < 0; + + if (!this.hasHorizontalScroll) { + this.maxScrollX = 0; + this.scrollerWidth = this.wrapperWidth; + } + + if (!this.hasVerticalScroll) { + this.maxScrollY = 0; + this.scrollerHeight = this.wrapperHeight; + } + + this.endTime = 0; + this.directionX = 0; + this.directionY = 0; + + this.wrapperOffset = utils.offset(this.wrapper); + + this._execEvent('refresh'); + + this.resetPosition(); + + // INSERT POINT: _refresh + + }, + + on: function(type, fn) { + if (!this._events[type]) { + this._events[type] = []; + } + + this._events[type].push(fn); + }, + + off: function(type, fn) { + if (!this._events[type]) { + return; + } + + var index = this._events[type].indexOf(fn); + + if (index > -1) { + this._events[type].splice(index, 1); + } + }, + + _execEvent: function(type) { + if (!this._events[type]) { + return; + } + + var i = 0, + l = this._events[type].length; + + if (!l) { + return; + } + + for (; i < l; i++) { + this._events[type][i].apply(this, [].slice.call(arguments, 1)); + } + }, + + scrollBy: function(x, y, time, easing) { + x = this.x + x; + y = this.y + y; + time = time || 0; + + this.scrollTo(x, y, time, easing); + }, + + scrollTo: function(x, y, time, easing) { + easing = easing || utils.ease.circular; + + this.isInTransition = this.options.useTransition && time > 0; + var transitionType = this.options.useTransition && easing.style; + if (!time || transitionType) { + if (transitionType) { + this._transitionTimingFunction(easing.style); + this._transitionTime(time); + } + this._translate(x, y); + } else { + this._animate(x, y, time, easing.fn); + } + }, + + scrollToElement: function(el, time, offsetX, offsetY, easing) { + el = el.nodeType ? el : this.scroller.querySelector(el); + + if (!el) { + return; + } + + var pos = utils.offset(el); + + pos.left -= this.wrapperOffset.left; + pos.top -= this.wrapperOffset.top; + + // if offsetX/Y are true we center the element to the screen + if (offsetX === true) { + offsetX = Math.round(el.offsetWidth / 2 - this.wrapper.offsetWidth / 2); + } + if (offsetY === true) { + offsetY = Math.round(el.offsetHeight / 2 - this.wrapper.offsetHeight / 2); + } + + pos.left -= offsetX || 0; + pos.top -= offsetY || 0; + + pos.left = pos.left > 0 ? 0 : pos.left < this.maxScrollX ? this.maxScrollX : pos.left; + pos.top = pos.top > 0 ? 0 : pos.top < this.maxScrollY ? this.maxScrollY : pos.top; + + time = time === undefined || time === null || time === 'auto' ? Math.max(Math.abs(this.x - pos.left), Math.abs(this.y - pos.top)) : time; + + this.scrollTo(pos.left, pos.top, time, easing); + }, + + _transitionTime: function(time) { + if (!this.options.useTransition) { + return; + } + time = time || 0; + var durationProp = utils.style.transitionDuration; + if (!durationProp) { + return; + } + + this.scrollerStyle[durationProp] = time + 'ms'; + + if (!time && utils.isBadAndroid) { + this.scrollerStyle[durationProp] = '0.0001ms'; + // remove 0.0001ms + var self = this; + rAF(function() { + if (self.scrollerStyle[durationProp] === '0.0001ms') { + self.scrollerStyle[durationProp] = '0s'; + } + }); + } + + // INSERT POINT: _transitionTime + + }, + + _transitionTimingFunction: function(easing) { + this.scrollerStyle[utils.style.transitionTimingFunction] = easing; + + // INSERT POINT: _transitionTimingFunction + + }, + + _translate: function(x, y) { + if (this.options.useTransform) { + + /* REPLACE START: _translate */ + + this.scrollerStyle[utils.style.transform] = 'translate(' + x + 'px,' + y + 'px)' + this.translateZ; + + /* REPLACE END: _translate */ + + } else { + x = Math.round(x); + y = Math.round(y); + this.scrollerStyle.left = x + 'px'; + this.scrollerStyle.top = y + 'px'; + } + + this.x = x; + this.y = y; + + // INSERT POINT: _translate + + }, + + _initEvents: function(remove) { + var eventType = remove ? utils.removeEvent : utils.addEvent, + target = this.options.bindToWrapper ? this.wrapper : window; + + eventType(window, 'orientationchange', this); + eventType(window, 'resize', this); + + if (this.options.click) { + eventType(this.wrapper, 'click', this, true); + } + + if (!this.options.disableMouse) { + eventType(this.wrapper, 'mousedown', this); + eventType(target, 'mousemove', this); + eventType(target, 'mousecancel', this); + eventType(target, 'mouseup', this); + } + + if (utils.hasPointer && !this.options.disablePointer) { + eventType(this.wrapper, utils.prefixPointerEvent('pointerdown'), this); + eventType(target, utils.prefixPointerEvent('pointermove'), this); + eventType(target, utils.prefixPointerEvent('pointercancel'), this); + eventType(target, utils.prefixPointerEvent('pointerup'), this); + } + + if (utils.hasTouch && !this.options.disableTouch) { + eventType(this.wrapper, 'touchstart', this); + eventType(target, 'touchmove', this); + eventType(target, 'touchcancel', this); + eventType(target, 'touchend', this); + } + + eventType(this.scroller, 'transitionend', this); + eventType(this.scroller, 'webkitTransitionEnd', this); + eventType(this.scroller, 'oTransitionEnd', this); + eventType(this.scroller, 'MSTransitionEnd', this); + }, + + getComputedPosition: function() { + var matrix = window.getComputedStyle(this.scroller, null), + x, y; + + if (this.options.useTransform) { + matrix = matrix[utils.style.transform].split(')')[0].split(', '); + x = +(matrix[12] || matrix[4]); + y = +(matrix[13] || matrix[5]); + } else { + x = +matrix.left.replace(/[^-\d.]/g, ''); + y = +matrix.top.replace(/[^-\d.]/g, ''); + } + + return {x: x, y: y}; + }, + _animate: function(destX, destY, duration, easingFn) { + var that = this, + startX = this.x, + startY = this.y, + startTime = utils.getTime(), + destTime = startTime + duration; + + function step() { + var now = utils.getTime(), + newX, newY, + easing; + + if (now >= destTime) { + that.isAnimating = false; + that._translate(destX, destY); + + if (!that.resetPosition(that.options.bounceTime)) { + that._execEvent('scrollEnd'); + } + + return; + } + + now = ( now - startTime ) / duration; + easing = easingFn(now); + newX = ( destX - startX ) * easing + startX; + newY = ( destY - startY ) * easing + startY; + that._translate(newX, newY); + + if (that.isAnimating) { + rAF(step); + } + } + + this.isAnimating = true; + step(); + }, + handleEvent: function(e) { + switch (e.type) { + case 'touchstart': + case 'pointerdown': + case 'MSPointerDown': + case 'mousedown': + this._start(e); + break; + case 'touchmove': + case 'pointermove': + case 'MSPointerMove': + case 'mousemove': + this._move(e); + break; + case 'touchend': + case 'pointerup': + case 'MSPointerUp': + case 'mouseup': + case 'touchcancel': + case 'pointercancel': + case 'MSPointerCancel': + case 'mousecancel': + this._end(e); + break; + case 'orientationchange': + case 'resize': + this._resize(); + break; + case 'transitionend': + case 'webkitTransitionEnd': + case 'oTransitionEnd': + case 'MSTransitionEnd': + this._transitionEnd(e); + break; + case 'wheel': + case 'DOMMouseScroll': + case 'mousewheel': + this._wheel(e); + break; + case 'keydown': + this._key(e); + break; + case 'click': + if (this.enabled && !e._constructed) { + e.preventDefault(); + e.stopPropagation(); + } + break; + } + } + }; + + IScroll.utils = utils; + + module.exports = UI.iScroll = IScroll; + + /* jshint unused: true */ + /* jshint +W101, +W116, +W109 */ + + +/***/ }, +/* 15 */ +/***/ function(module, exports, __webpack_require__) { + + 'use strict'; + + var $ = __webpack_require__(1); + var UI = __webpack_require__(2); + var dimmer = __webpack_require__(9); + var $doc = $(document); + var supportTransition = UI.support.transition; + + /** + * @reference https://github.com/nolimits4web/Framework7/blob/master/src/js/modals.js + * @license https://github.com/nolimits4web/Framework7/blob/master/LICENSE + */ + + var Modal = function(element, options) { + this.options = $.extend({}, Modal.DEFAULTS, options || {}); + this.$element = $(element); + this.$dialog = this.$element.find('.am-modal-dialog'); + + if (!this.$element.attr('id')) { + this.$element.attr('id', UI.utils.generateGUID('am-modal')); + } + + this.isPopup = this.$element.hasClass('am-popup'); + this.isActions = this.$element.hasClass('am-modal-actions'); + this.isPrompt = this.$element.hasClass('am-modal-prompt'); + this.isLoading = this.$element.hasClass('am-modal-loading'); + this.active = this.transitioning = this.relatedTarget = null; + this.dimmer = this.options.dimmer ? dimmer : { + open: function() { + }, + close: function() { + } + }; + + this.events(); + }; + + Modal.DEFAULTS = { + className: { + active: 'am-modal-active', + out: 'am-modal-out' + }, + selector: { + modal: '.am-modal', + active: '.am-modal-active' + }, + closeViaDimmer: true, + cancelable: true, + onConfirm: function() { + }, + onCancel: function() { + }, + closeOnCancel: true, + closeOnConfirm: true, + dimmer: true, + height: undefined, + width: undefined, + duration: 300, // must equal the CSS transition duration + transitionEnd: supportTransition && supportTransition.end + '.modal.amui' + }; + + Modal.prototype.toggle = function(relatedTarget) { + return this.active ? this.close() : this.open(relatedTarget); + }; + + Modal.prototype.open = function(relatedTarget) { + var $element = this.$element; + var options = this.options; + var isPopup = this.isPopup; + var width = options.width; + var height = options.height; + var style = {}; + + if (this.active) { + return; + } + + if (!this.$element.length) { + return; + } + + // callback hook + relatedTarget && (this.relatedTarget = relatedTarget); + + // 判断如果还在动画,就先触发之前的closed事件 + if (this.transitioning) { + clearTimeout($element.transitionEndTimmer); + $element.transitionEndTimmer = null; + $element.trigger(options.transitionEnd) + .off(options.transitionEnd); + } + + isPopup && this.$element.show(); + + this.active = true; + + $element.trigger($.Event('open.modal.amui', {relatedTarget: relatedTarget})); + + this.dimmer.open($element); + + $element.show().redraw(); + + // apply Modal width/height if set + if (!isPopup && !this.isActions) { + if (width) { + style.width = parseInt(width, 10) + 'px'; + } + + if (height) { + style.height = parseInt(height, 10) + 'px'; + } + + this.$dialog.css(style); + } + + $element + .removeClass(options.className.out) + .addClass(options.className.active); + + this.transitioning = 1; + + var complete = function() { + $element.trigger($.Event('opened.modal.amui', { + relatedTarget: relatedTarget + })); + this.transitioning = 0; + + // Prompt auto focus + if (this.isPrompt) { + this.$dialog.find('input').eq(0).focus(); + } + }; + + if (!supportTransition) { + return complete.call(this); + } + + $element + .one(options.transitionEnd, $.proxy(complete, this)) + .emulateTransitionEnd(options.duration); + }; + + Modal.prototype.close = function(relatedTarget) { + if (!this.active) { + return; + } + + var $element = this.$element; + var options = this.options; + var isPopup = this.isPopup; + + // 判断如果还在动画,就先触发之前的opened事件 + if (this.transitioning) { + clearTimeout($element.transitionEndTimmer); + $element.transitionEndTimmer = null; + $element.trigger(options.transitionEnd).off(options.transitionEnd); + this.dimmer.close($element, true); + } + + this.$element.trigger($.Event('close.modal.amui', { + relatedTarget: relatedTarget + })); + + this.transitioning = 1; + + var complete = function() { + $element.trigger('closed.modal.amui'); + isPopup && $element.removeClass(options.className.out); + $element.hide(); + this.transitioning = 0; + // 不强制关闭 Dimmer,以便多个 Modal 可以共享 Dimmer + this.dimmer.close($element, false); + this.active = false; + }; + + $element.removeClass(options.className.active) + .addClass(options.className.out); + + if (!supportTransition) { + return complete.call(this); + } + + $element.one(options.transitionEnd, $.proxy(complete, this)) + .emulateTransitionEnd(options.duration); + }; + + Modal.prototype.events = function() { + var _this = this; + var options = this.options; + var $element = this.$element; + var $dimmer = this.dimmer.$element; + var $ipt = $element.find('.am-modal-prompt-input'); + var $confirm = $element.find('[data-am-modal-confirm]'); + var $cancel = $element.find('[data-am-modal-cancel]'); + var getData = function() { + var data = []; + $ipt.each(function() { + data.push($(this).val()); + }); + + return (data.length === 0) ? undefined : + ((data.length === 1) ? data[0] : data); + }; + + // close via Esc key + if (this.options.cancelable) { + $element.on('keyup.modal.amui', function(e) { + if (_this.active && e.which === 27) { + $element.trigger('cancel.modal.amui'); + _this.close(); + } + }); + } + + // Close Modal when dimmer clicked + if (this.options.dimmer && this.options.closeViaDimmer && !this.isLoading) { + $dimmer.on('click.dimmer.modal.amui', function() { + _this.close(); + }); + } + + // Close Modal when button clicked + $element.on( + 'click.close.modal.amui', + '[data-am-modal-close], .am-modal-btn', + function(e) { + e.preventDefault(); + var $this = $(this); + + if ($this.is($confirm)) { + options.closeOnConfirm && _this.close(); + } else if ($this.is($cancel)) { + options.closeOnCancel && _this.close(); + } else { + _this.close(); + } + } + ) + // trigger dimmer click event if non-dialog area clicked + // fixes #882 caused by https://github.com/amazeui/amazeui/commit/b6be7719681193f1c4cb04af89cb9fd9f4422163 + .on('click', function(e) { + // fixes #900 + // e.stopPropagation(); + $(e.target).is($element) && $dimmer.trigger('click.dimmer.modal.amui'); + }); + + $confirm.on('click.confirm.modal.amui', + function() { + $element.trigger($.Event('confirm.modal.amui', { + trigger: this + })); + }); + + $cancel.on('click.cancel.modal.amui', function() { + $element.trigger($.Event('cancel.modal.amui', { + trigger: this + })); + }); + + $element.on('confirm.modal.amui', function(e) { + e.data = getData(); + _this.options.onConfirm.call(_this, e); + }).on('cancel.modal.amui', function(e) { + e.data = getData(); + _this.options.onCancel.call(_this, e); + }); + }; + + function Plugin(option, relatedTarget) { + return this.each(function() { + var $this = $(this); + var data = $this.data('amui.modal'); + var options = typeof option == 'object' && option; + + if (!data) { + $this.data('amui.modal', (data = new Modal(this, options))); + } + + if (typeof option == 'string') { + data[option] && data[option](relatedTarget); + } else { + data.toggle(option && option.relatedTarget || undefined); + } + }); + } + + $.fn.modal = Plugin; + + // Init + $doc.on('click.modal.amui.data-api', '[data-am-modal]', function() { + var $this = $(this); + var options = UI.utils.parseOptions($this.attr('data-am-modal')); + var $target = $(options.target || + (this.href && this.href.replace(/.*(?=#[^\s]+$)/, ''))); + var option = $target.data('amui.modal') ? 'toggle' : options; + + Plugin.call($target, option, this); + }); + + module.exports = UI.modal = Modal; + + +/***/ }, +/* 16 */ +/***/ function(module, exports, __webpack_require__) { + + 'use strict'; + + var $ = __webpack_require__(1); + var UI = __webpack_require__(2); + __webpack_require__(3); + + var $win = $(window); + var $doc = $(document); + var scrollPos; + + /** + * @via https://github.com/uikit/uikit/blob/master/src/js/offcanvas.js + * @license https://github.com/uikit/uikit/blob/master/LICENSE.md + */ + + var OffCanvas = function(element, options) { + this.$element = $(element); + this.options = $.extend({}, OffCanvas.DEFAULTS, options); + this.active = null; + this.bindEvents(); + }; + + OffCanvas.DEFAULTS = { + duration: 300, + effect: 'overlay' // {push|overlay}, push is too expensive + }; + + OffCanvas.prototype.open = function(relatedElement) { + var _this = this; + var $element = this.$element; + + if (!$element.length || $element.hasClass('am-active')) { + return; + } + + var effect = this.options.effect; + var $html = $('html'); + var $body = $('body'); + var $bar = $element.find('.am-offcanvas-bar').first(); + var dir = $bar.hasClass('am-offcanvas-bar-flip') ? -1 : 1; + + $bar.addClass('am-offcanvas-bar-' + effect); + + scrollPos = {x: window.scrollX, y: window.scrollY}; + + $element.addClass('am-active'); + + $body.css({ + width: window.innerWidth, + height: $win.height() + }).addClass('am-offcanvas-page'); + + if (effect !== 'overlay') { + $body.css({ + 'margin-left': $bar.outerWidth() * dir + }).width(); // force redraw + } + + $html.css('margin-top', scrollPos.y * -1); + + setTimeout(function() { + $bar.addClass('am-offcanvas-bar-active').width(); + }, 0); + + $element.trigger('open.offcanvas.amui'); + + this.active = 1; + + // Close OffCanvas when none content area clicked + $element.on('click.offcanvas.amui', function(e) { + var $target = $(e.target); + + if ($target.hasClass('am-offcanvas-bar')) { + return; + } + + if ($target.parents('.am-offcanvas-bar').first().length) { + return; + } + + // https://developer.mozilla.org/zh-CN/docs/DOM/event.stopImmediatePropagation + e.stopImmediatePropagation(); + + _this.close(); + }); + + $html.on('keydown.offcanvas.amui', function(e) { + (e.keyCode === 27) && _this.close(); + }); + }; + + OffCanvas.prototype.close = function(relatedElement) { + var _this = this; + var $html = $('html'); + var $body = $('body'); + var $element = this.$element; + var $bar = $element.find('.am-offcanvas-bar').first(); + + if (!$element.length || !this.active || !$element.hasClass('am-active')) { + return; + } + + $element.trigger('close.offcanvas.amui'); + + function complete() { + $body + .removeClass('am-offcanvas-page') + .css({ + width: '', + height: '', + 'margin-left': '', + 'margin-right': '' + }); + $element.removeClass('am-active'); + $bar.removeClass('am-offcanvas-bar-active'); + $html.css('margin-top', ''); + window.scrollTo(scrollPos.x, scrollPos.y); + $element.trigger('closed.offcanvas.amui'); + _this.active = 0; + } + + if (UI.support.transition) { + setTimeout(function() { + $bar.removeClass('am-offcanvas-bar-active'); + }, 0); + + $body.css('margin-left', '').one(UI.support.transition.end, function() { + complete(); + }).emulateTransitionEnd(this.options.duration); + } else { + complete(); + } + + $element.off('click.offcanvas.amui'); + $html.off('.offcanvas.amui'); + }; + + OffCanvas.prototype.bindEvents = function() { + var _this = this; + $doc.on('click.offcanvas.amui', '[data-am-dismiss="offcanvas"]', function(e) { + e.preventDefault(); + _this.close(); + }); + + $win.on('resize.offcanvas.amui orientationchange.offcanvas.amui', + function() { + _this.active && _this.close(); + }); + + this.$element.hammer().on('swipeleft swipeleft', function(e) { + e.preventDefault(); + _this.close(); + }); + + return this; + }; + + function Plugin(option, relatedElement) { + var args = Array.prototype.slice.call(arguments, 1); + + return this.each(function() { + var $this = $(this); + var data = $this.data('amui.offcanvas'); + var options = $.extend({}, typeof option == 'object' && option); + + if (!data) { + $this.data('amui.offcanvas', (data = new OffCanvas(this, options))); + (!option || typeof option == 'object') && data.open(relatedElement); + } + + if (typeof option == 'string') { + data[option] && data[option].apply(data, args); + } + }); + } + + $.fn.offCanvas = Plugin; + + // Init code + $doc.on('click.offcanvas.amui', '[data-am-offcanvas]', function(e) { + e.preventDefault(); + var $this = $(this); + var options = UI.utils.parseOptions($this.data('amOffcanvas')); + var $target = $(options.target || + (this.href && this.href.replace(/.*(?=#[^\s]+$)/, ''))); + var option = $target.data('amui.offcanvas') ? 'open' : options; + + Plugin.call($target, option, this); + }); + + module.exports = UI.offcanvas = OffCanvas; + + // TODO: 优化动画效果 + // http://dbushell.github.io/Responsive-Off-Canvas-Menu/step4.html + + +/***/ }, +/* 17 */ +/***/ function(module, exports, __webpack_require__) { + + 'use strict'; + + var $ = __webpack_require__(1); + var UI = __webpack_require__(2); + var requestAnimationFrame = UI.utils.rAF; + + /** + * @via https://github.com/manuelstofer/pinchzoom/blob/master/src/pinchzoom.js + * @license the MIT License. + */ + + var definePinchZoom = function($) { + + /** + * Pinch zoom using jQuery + * @version 0.0.2 + * @author Manuel Stofer + * @param el + * @param options + * @constructor + */ + var PinchZoom = function(el, options) { + this.el = $(el); + this.zoomFactor = 1; + this.lastScale = 1; + this.offset = { + x: 0, + y: 0 + }; + this.options = $.extend({}, this.defaults, options); + this.setupMarkup(); + this.bindEvents(); + this.update(); + // default enable. + this.enable(); + + }, + sum = function(a, b) { + return a + b; + }, + isCloseTo = function(value, expected) { + return value > expected - 0.01 && value < expected + 0.01; + }; + + PinchZoom.prototype = { + + defaults: { + tapZoomFactor: 2, + zoomOutFactor: 1.3, + animationDuration: 300, + maxZoom: 4, + minZoom: 0.5, + lockDragAxis: false, + use2d: true, + zoomStartEventName: 'pz_zoomstart', + zoomEndEventName: 'pz_zoomend', + dragStartEventName: 'pz_dragstart', + dragEndEventName: 'pz_dragend', + doubleTapEventName: 'pz_doubletap' + }, + + /** + * Event handler for 'dragstart' + * @param event + */ + handleDragStart: function(event) { + this.el.trigger(this.options.dragStartEventName); + this.stopAnimation(); + this.lastDragPosition = false; + this.hasInteraction = true; + this.handleDrag(event); + }, + + /** + * Event handler for 'drag' + * @param event + */ + handleDrag: function(event) { + + if (this.zoomFactor > 1.0) { + var touch = this.getTouches(event)[0]; + this.drag(touch, this.lastDragPosition); + this.offset = this.sanitizeOffset(this.offset); + this.lastDragPosition = touch; + } + }, + + handleDragEnd: function() { + this.el.trigger(this.options.dragEndEventName); + this.end(); + }, + + /** + * Event handler for 'zoomstart' + * @param event + */ + handleZoomStart: function(event) { + this.el.trigger(this.options.zoomStartEventName); + this.stopAnimation(); + this.lastScale = 1; + this.nthZoom = 0; + this.lastZoomCenter = false; + this.hasInteraction = true; + }, + + /** + * Event handler for 'zoom' + * @param event + */ + handleZoom: function(event, newScale) { + + // a relative scale factor is used + var touchCenter = this.getTouchCenter(this.getTouches(event)), + scale = newScale / this.lastScale; + this.lastScale = newScale; + + // the first touch events are thrown away since they are not precise + this.nthZoom += 1; + if (this.nthZoom > 3) { + + this.scale(scale, touchCenter); + this.drag(touchCenter, this.lastZoomCenter); + } + this.lastZoomCenter = touchCenter; + }, + + handleZoomEnd: function() { + this.el.trigger(this.options.zoomEndEventName); + this.end(); + }, + + /** + * Event handler for 'doubletap' + * @param event + */ + handleDoubleTap: function(event) { + var center = this.getTouches(event)[0], + zoomFactor = this.zoomFactor > 1 ? 1 : this.options.tapZoomFactor, + startZoomFactor = this.zoomFactor, + updateProgress = (function(progress) { + this.scaleTo(startZoomFactor + progress * (zoomFactor - startZoomFactor), center); + }).bind(this); + + if (this.hasInteraction) { + return; + } + if (startZoomFactor > zoomFactor) { + center = this.getCurrentZoomCenter(); + } + + this.animate(this.options.animationDuration, updateProgress, this.swing); + this.el.trigger(this.options.doubleTapEventName); + }, + + /** + * Max / min values for the offset + * @param offset + * @return {Object} the sanitized offset + */ + sanitizeOffset: function(offset) { + var maxX = (this.zoomFactor - 1) * this.getContainerX(), + maxY = (this.zoomFactor - 1) * this.getContainerY(), + maxOffsetX = Math.max(maxX, 0), + maxOffsetY = Math.max(maxY, 0), + minOffsetX = Math.min(maxX, 0), + minOffsetY = Math.min(maxY, 0); + + return { + x: Math.min(Math.max(offset.x, minOffsetX), maxOffsetX), + y: Math.min(Math.max(offset.y, minOffsetY), maxOffsetY) + }; + }, + + /** + * Scale to a specific zoom factor (not relative) + * @param zoomFactor + * @param center + */ + scaleTo: function(zoomFactor, center) { + this.scale(zoomFactor / this.zoomFactor, center); + }, + + /** + * Scales the element from specified center + * @param scale + * @param center + */ + scale: function(scale, center) { + scale = this.scaleZoomFactor(scale); + this.addOffset({ + x: (scale - 1) * (center.x + this.offset.x), + y: (scale - 1) * (center.y + this.offset.y) + }); + }, + + /** + * Scales the zoom factor relative to current state + * @param scale + * @return the actual scale (can differ because of max min zoom factor) + */ + scaleZoomFactor: function(scale) { + var originalZoomFactor = this.zoomFactor; + this.zoomFactor *= scale; + this.zoomFactor = Math.min(this.options.maxZoom, Math.max(this.zoomFactor, this.options.minZoom)); + return this.zoomFactor / originalZoomFactor; + }, + + /** + * Drags the element + * @param center + * @param lastCenter + */ + drag: function(center, lastCenter) { + if (lastCenter) { + if (this.options.lockDragAxis) { + // lock scroll to position that was changed the most + if (Math.abs(center.x - lastCenter.x) > Math.abs(center.y - lastCenter.y)) { + this.addOffset({ + x: -(center.x - lastCenter.x), + y: 0 + }); + } + else { + this.addOffset({ + y: -(center.y - lastCenter.y), + x: 0 + }); + } + } + else { + this.addOffset({ + y: -(center.y - lastCenter.y), + x: -(center.x - lastCenter.x) + }); + } + } + }, + + /** + * Calculates the touch center of multiple touches + * @param touches + * @return {Object} + */ + getTouchCenter: function(touches) { + return this.getVectorAvg(touches); + }, + + /** + * Calculates the average of multiple vectors (x, y values) + */ + getVectorAvg: function(vectors) { + return { + x: vectors.map(function(v) { + return v.x; + }).reduce(sum) / vectors.length, + y: vectors.map(function(v) { + return v.y; + }).reduce(sum) / vectors.length + }; + }, + + /** + * Adds an offset + * @param offset the offset to add + * @return return true when the offset change was accepted + */ + addOffset: function(offset) { + this.offset = { + x: this.offset.x + offset.x, + y: this.offset.y + offset.y + }; + }, + + sanitize: function() { + if (this.zoomFactor < this.options.zoomOutFactor) { + this.zoomOutAnimation(); + } else if (this.isInsaneOffset(this.offset)) { + this.sanitizeOffsetAnimation(); + } + }, + + /** + * Checks if the offset is ok with the current zoom factor + * @param offset + * @return {Boolean} + */ + isInsaneOffset: function(offset) { + var sanitizedOffset = this.sanitizeOffset(offset); + return sanitizedOffset.x !== offset.x || + sanitizedOffset.y !== offset.y; + }, + + /** + * Creates an animation moving to a sane offset + */ + sanitizeOffsetAnimation: function() { + var targetOffset = this.sanitizeOffset(this.offset), + startOffset = { + x: this.offset.x, + y: this.offset.y + }, + updateProgress = (function(progress) { + this.offset.x = startOffset.x + progress * (targetOffset.x - startOffset.x); + this.offset.y = startOffset.y + progress * (targetOffset.y - startOffset.y); + this.update(); + }).bind(this); + + this.animate( + this.options.animationDuration, + updateProgress, + this.swing + ); + }, + + /** + * Zooms back to the original position, + * (no offset and zoom factor 1) + */ + zoomOutAnimation: function() { + var startZoomFactor = this.zoomFactor, + zoomFactor = 1, + center = this.getCurrentZoomCenter(), + updateProgress = (function(progress) { + this.scaleTo(startZoomFactor + progress * (zoomFactor - startZoomFactor), center); + }).bind(this); + + this.animate( + this.options.animationDuration, + updateProgress, + this.swing + ); + }, + + /** + * Updates the aspect ratio + */ + updateAspectRatio: function() { + this.setContainerY(this.getContainerX() / this.getAspectRatio()); + }, + + /** + * Calculates the initial zoom factor (for the element to fit into the container) + * @return the initial zoom factor + */ + getInitialZoomFactor: function() { + // use .offsetWidth instead of width() + // because jQuery-width() return the original width but Zepto-width() will calculate width with transform. + // the same as .height() + return this.container[0].offsetWidth / this.el[0].offsetWidth; + }, + + /** + * Calculates the aspect ratio of the element + * @return the aspect ratio + */ + getAspectRatio: function() { + return this.el[0].offsetWidth / this.el[0].offsetHeight; + }, + + /** + * Calculates the virtual zoom center for the current offset and zoom factor + * (used for reverse zoom) + * @return {Object} the current zoom center + */ + getCurrentZoomCenter: function() { + + // uses following formula to calculate the zoom center x value + // offset_left / offset_right = zoomcenter_x / (container_x - zoomcenter_x) + var length = this.container[0].offsetWidth * this.zoomFactor, + offsetLeft = this.offset.x, + offsetRight = length - offsetLeft - this.container[0].offsetWidth, + widthOffsetRatio = offsetLeft / offsetRight, + centerX = widthOffsetRatio * this.container[0].offsetWidth / (widthOffsetRatio + 1), + + // the same for the zoomcenter y + height = this.container[0].offsetHeight * this.zoomFactor, + offsetTop = this.offset.y, + offsetBottom = height - offsetTop - this.container[0].offsetHeight, + heightOffsetRatio = offsetTop / offsetBottom, + centerY = heightOffsetRatio * this.container[0].offsetHeight / (heightOffsetRatio + 1); + + // prevents division by zero + if (offsetRight === 0) { + centerX = this.container[0].offsetWidth; + } + if (offsetBottom === 0) { + centerY = this.container[0].offsetHeight; + } + + return { + x: centerX, + y: centerY + }; + }, + + canDrag: function() { + return !isCloseTo(this.zoomFactor, 1); + }, + + /** + * Returns the touches of an event relative to the container offset + * @param event + * @return array touches + */ + getTouches: function(event) { + var position = this.container.offset(); + return Array.prototype.slice.call(event.touches).map(function(touch) { + return { + x: touch.pageX - position.left, + y: touch.pageY - position.top + }; + }); + }, + + /** + * Animation loop + * does not support simultaneous animations + * @param duration + * @param framefn + * @param timefn + * @param callback + */ + animate: function(duration, framefn, timefn, callback) { + var startTime = new Date().getTime(), + renderFrame = (function() { + if (!this.inAnimation) { + return; + } + var frameTime = new Date().getTime() - startTime, + progress = frameTime / duration; + if (frameTime >= duration) { + framefn(1); + if (callback) { + callback(); + } + this.update(); + this.stopAnimation(); + this.update(); + } else { + if (timefn) { + progress = timefn(progress); + } + framefn(progress); + this.update(); + requestAnimationFrame(renderFrame); + } + }).bind(this); + this.inAnimation = true; + requestAnimationFrame(renderFrame); + }, + + /** + * Stops the animation + */ + stopAnimation: function() { + this.inAnimation = false; + }, + + /** + * Swing timing function for animations + * @param p + * @return {Number} + */ + swing: function(p) { + return -Math.cos(p * Math.PI) / 2 + 0.5; + }, + + getContainerX: function() { + return this.container[0].offsetWidth; + }, + + getContainerY: function() { + return this.container[0].offsetHeight; + }, + + setContainerY: function(y) { + return this.container.height(y); + }, + + /** + * Creates the expected html structure + */ + setupMarkup: function() { + this.container = $('
    '); + this.el.before(this.container); + this.container.append(this.el); + + this.container.css({ + 'overflow': 'hidden', + 'position': 'relative' + }); + + // Zepto doesn't recognize `webkitTransform..` style + this.el.css({ + '-webkit-transform-origin': '0% 0%', + '-moz-transform-origin': '0% 0%', + '-ms-transform-origin': '0% 0%', + '-o-transform-origin': '0% 0%', + 'transform-origin': '0% 0%', + 'position': 'absolute' + }); + }, + + end: function() { + this.hasInteraction = false; + this.sanitize(); + this.update(); + }, + + /** + * Binds all required event listeners + */ + bindEvents: function() { + detectGestures(this.container.get(0), this); + // Zepto and jQuery both know about `on` + $(window).on('resize', this.update.bind(this)); + $(this.el).find('img').on('load', this.update.bind(this)); + }, + + /** + * Updates the css values according to the current zoom factor and offset + */ + update: function() { + + if (this.updatePlaned) { + return; + } + this.updatePlaned = true; + + setTimeout((function() { + this.updatePlaned = false; + this.updateAspectRatio(); + + var zoomFactor = this.getInitialZoomFactor() * this.zoomFactor, + offsetX = -this.offset.x / zoomFactor, + offsetY = -this.offset.y / zoomFactor, + transform3d = 'scale3d(' + zoomFactor + ', ' + zoomFactor + ',1) ' + + 'translate3d(' + offsetX + 'px,' + offsetY + 'px,0px)', + transform2d = 'scale(' + zoomFactor + ', ' + zoomFactor + ') ' + + 'translate(' + offsetX + 'px,' + offsetY + 'px)', + removeClone = (function() { + if (this.clone) { + this.clone.remove(); + delete this.clone; + } + }).bind(this); + + // Scale 3d and translate3d are faster (at least on ios) + // but they also reduce the quality. + // PinchZoom uses the 3d transformations during interactions + // after interactions it falls back to 2d transformations + if (!this.options.use2d || this.hasInteraction || this.inAnimation) { + this.is3d = true; + removeClone(); + this.el.css({ + '-webkit-transform': transform3d, + '-o-transform': transform2d, + '-ms-transform': transform2d, + '-moz-transform': transform2d, + 'transform': transform3d + }); + } else { + + // When changing from 3d to 2d transform webkit has some glitches. + // To avoid this, a copy of the 3d transformed element is displayed in the + // foreground while the element is converted from 3d to 2d transform + if (this.is3d) { + this.clone = this.el.clone(); + this.clone.css('pointer-events', 'none'); + this.clone.appendTo(this.container); + setTimeout(removeClone, 200); + } + this.el.css({ + '-webkit-transform': transform2d, + '-o-transform': transform2d, + '-ms-transform': transform2d, + '-moz-transform': transform2d, + 'transform': transform2d + }); + this.is3d = false; + } + }).bind(this), 0); + }, + + /** + * Enables event handling for gestures + */ + enable: function() { + this.enabled = true; + }, + + /** + * Disables event handling for gestures + */ + disable: function() { + this.enabled = false; + } + }; + + var detectGestures = function(el, target) { + var interaction = null, + fingers = 0, + lastTouchStart = null, + startTouches = null, + + setInteraction = function(newInteraction, event) { + if (interaction !== newInteraction) { + + if (interaction && !newInteraction) { + switch (interaction) { + case "zoom": + target.handleZoomEnd(event); + break; + case 'drag': + target.handleDragEnd(event); + break; + } + } + + switch (newInteraction) { + case 'zoom': + target.handleZoomStart(event); + break; + case 'drag': + target.handleDragStart(event); + break; + } + } + interaction = newInteraction; + }, + + updateInteraction = function(event) { + if (fingers === 2) { + setInteraction('zoom'); + } else if (fingers === 1 && target.canDrag()) { + setInteraction('drag', event); + } else { + setInteraction(null, event); + } + }, + + targetTouches = function(touches) { + return Array.prototype.slice.call(touches).map(function(touch) { + return { + x: touch.pageX, + y: touch.pageY + }; + }); + }, + + getDistance = function(a, b) { + var x, y; + x = a.x - b.x; + y = a.y - b.y; + return Math.sqrt(x * x + y * y); + }, + + calculateScale = function(startTouches, endTouches) { + var startDistance = getDistance(startTouches[0], startTouches[1]), + endDistance = getDistance(endTouches[0], endTouches[1]); + return endDistance / startDistance; + }, + + cancelEvent = function(event) { + event.stopPropagation(); + event.preventDefault(); + }, + + detectDoubleTap = function(event) { + var time = (new Date()).getTime(); + + if (fingers > 1) { + lastTouchStart = null; + } + + if (time - lastTouchStart < 300) { + cancelEvent(event); + + target.handleDoubleTap(event); + switch (interaction) { + case 'zoom': + target.handleZoomEnd(event); + break; + case 'drag': + target.handleDragEnd(event); + break; + } + } + + if (fingers === 1) { + lastTouchStart = time; + } + }, + firstMove = true; + + el.addEventListener('touchstart', function(event) { + if (target.enabled) { + firstMove = true; + fingers = event.touches.length; + detectDoubleTap(event); + } + }); + + el.addEventListener('touchmove', function(event) { + if (target.enabled) { + if (firstMove) { + updateInteraction(event); + if (interaction) { + cancelEvent(event); + } + startTouches = targetTouches(event.touches); + } else { + switch (interaction) { + case 'zoom': + target.handleZoom(event, calculateScale(startTouches, targetTouches(event.touches))); + break; + case 'drag': + target.handleDrag(event); + break; + } + if (interaction) { + cancelEvent(event); + target.update(); + } + } + + firstMove = false; + } + }); + + el.addEventListener('touchend', function(event) { + if (target.enabled) { + fingers = event.touches.length; + updateInteraction(event); + } + }); + }; + + return PinchZoom; + }; + + module.exports = UI.pichzoom = definePinchZoom($); + + +/***/ }, +/* 18 */ +/***/ function(module, exports, __webpack_require__) { + + 'use strict'; + + var $ = __webpack_require__(1); + var UI = __webpack_require__(2); + var $w = $(window); + + /** + * @reference https://github.com/nolimits4web/Framework7/blob/master/src/js/modals.js + * @license https://github.com/nolimits4web/Framework7/blob/master/LICENSE + */ + + var Popover = function(element, options) { + this.options = $.extend({}, Popover.DEFAULTS, options); + this.$element = $(element); + this.active = null; + this.$popover = (this.options.target && $(this.options.target)) || null; + + this.init(); + this._bindEvents(); + }; + + Popover.DEFAULTS = { + theme: null, + trigger: 'click', + content: '', + open: false, + target: null, + tpl: '
    ' + + '
    ' + + '
    ' + }; + + Popover.prototype.init = function() { + var _this = this; + var $element = this.$element; + var $popover; + + if (!this.options.target) { + this.$popover = this.getPopover(); + this.setContent(); + } + + $popover = this.$popover; + + $popover.appendTo($('body')); + + this.sizePopover(); + + function sizePopover() { + _this.sizePopover(); + } + + // TODO: 监听页面内容变化,重新调整位置 + + $element.on('open.popover.amui', function() { + $(window).on('resize.popover.amui', UI.utils.debounce(sizePopover, 50)); + }); + + $element.on('close.popover.amui', function() { + $(window).off('resize.popover.amui', sizePopover); + }); + + this.options.open && this.open(); + }; + + Popover.prototype.sizePopover = function sizePopover() { + var $element = this.$element; + var $popover = this.$popover; + + if (!$popover || !$popover.length) { + return; + } + + var popWidth = $popover.outerWidth(); + var popHeight = $popover.outerHeight(); + var $popCaret = $popover.find('.am-popover-caret'); + var popCaretSize = ($popCaret.outerWidth() / 2) || 8; + // 取不到 $popCaret.outerHeight() 的值,所以直接加 8 + var popTotalHeight = popHeight + 8; // $popCaret.outerHeight(); + + var triggerWidth = $element.outerWidth(); + var triggerHeight = $element.outerHeight(); + var triggerOffset = $element.offset(); + var triggerRect = $element[0].getBoundingClientRect(); + + var winHeight = $w.height(); + var winWidth = $w.width(); + var popTop = 0; + var popLeft = 0; + var diff = 0; + var spacing = 2; + var popPosition = 'top'; + + $popover.css({left: '', top: ''}).removeClass('am-popover-left ' + + 'am-popover-right am-popover-top am-popover-bottom'); + + // $popCaret.css({left: '', top: ''}); + + if (popTotalHeight - spacing < triggerRect.top + spacing) { + // Popover on the top of trigger + popTop = triggerOffset.top - popTotalHeight - spacing; + } else if (popTotalHeight < + winHeight - triggerRect.top - triggerRect.height) { + // On bottom + popPosition = 'bottom'; + popTop = triggerOffset.top + triggerHeight + popCaretSize + spacing; + } else { // On middle + popPosition = 'middle'; + popTop = triggerHeight / 2 + triggerOffset.top - popHeight / 2; + } + + // Horizontal Position + if (popPosition === 'top' || popPosition === 'bottom') { + popLeft = triggerWidth / 2 + triggerOffset.left - popWidth / 2; + + diff = popLeft; + + if (popLeft < 5) { + popLeft = 5; + } + + if (popLeft + popWidth > winWidth) { + popLeft = (winWidth - popWidth - 20); + // console.log('left %d, win %d, popw %d', popLeft, winWidth, popWidth); + } + + if (popPosition === 'top') { + // This is the Popover position, NOT caret position + // Popover on the Top of trigger, caret on the bottom of Popover + $popover.addClass('am-popover-top'); + } + + if (popPosition === 'bottom') { + $popover.addClass('am-popover-bottom'); + } + + diff = diff - popLeft; + // $popCaret.css({left: (popWidth / 2 - popCaretSize + diff) + 'px'}); + + } else if (popPosition === 'middle') { + popLeft = triggerOffset.left - popWidth - popCaretSize; + $popover.addClass('am-popover-left'); + if (popLeft < 5) { + popLeft = triggerOffset.left + triggerWidth + popCaretSize; + $popover.removeClass('am-popover-left').addClass('am-popover-right'); + } + + if (popLeft + popWidth > winWidth) { + popLeft = winWidth - popWidth - 5; + $popover.removeClass('am-popover-left').addClass('am-popover-right'); + } + // $popCaret.css({top: (popHeight / 2 - popCaretSize / 2) + 'px'}); + } + + // Apply position style + $popover.css({top: popTop + 'px', left: popLeft + 'px'}); + }; + + Popover.prototype.toggle = function() { + return this[this.active ? 'close' : 'open'](); + }; + + Popover.prototype.open = function() { + var $popover = this.$popover; + + this.$element.trigger('open.popover.amui'); + this.sizePopover(); + $popover.show().addClass('am-active'); + this.active = true; + }; + + Popover.prototype.close = function() { + var $popover = this.$popover; + + this.$element.trigger('close.popover.amui'); + + $popover + .removeClass('am-active') + .trigger('closed.popover.amui') + .hide(); + + this.active = false; + }; + + Popover.prototype.getPopover = function() { + var uid = UI.utils.generateGUID('am-popover'); + var theme = []; + + if (this.options.theme) { + $.each(this.options.theme.split(' '), function(i, item) { + theme.push('am-popover-' + $.trim(item)); + }); + } + + return $(this.options.tpl).attr('id', uid).addClass(theme.join(' ')); + }; + + Popover.prototype.setContent = function(content) { + content = content || this.options.content; + this.$popover && this.$popover.find('.am-popover-inner') + .empty().html(content); + }; + + Popover.prototype._bindEvents = function() { + var eventNS = 'popover.amui'; + var triggers = this.options.trigger.split(' '); + + for (var i = triggers.length; i--;) { + var trigger = triggers[i]; + + if (trigger === 'click') { + this.$element.on('click.' + eventNS, $.proxy(this.toggle, this)); + } else { // hover or focus + var eventIn = trigger == 'hover' ? 'mouseenter' : 'focusin'; + var eventOut = trigger == 'hover' ? 'mouseleave' : 'focusout'; + + this.$element.on(eventIn + '.' + eventNS, $.proxy(this.open, this)); + this.$element.on(eventOut + '.' + eventNS, $.proxy(this.close, this)); + } + } + }; + + Popover.prototype.destroy = function() { + this.$element.off('.popover.amui').removeData('amui.popover'); + this.$popover.remove(); + }; + + UI.plugin('popover', Popover); + + // Init code + UI.ready(function(context) { + $('[data-am-popover]', context).popover(); + }); + + module.exports = Popover; + + // TODO: 允许用户定义位置 + + +/***/ }, +/* 19 */ +/***/ function(module, exports, __webpack_require__) { + + 'use strict'; + + var UI = __webpack_require__(2); + + var Progress = (function() { + /** + * NProgress (c) 2013, Rico Sta. Cruz + * @via http://ricostacruz.com/nprogress + */ + + var NProgress = {}; + + NProgress.version = '0.2.0'; + + var Settings = NProgress.settings = { + minimum: 0.08, + easing: 'ease', + positionUsing: '', + speed: 200, + trickle: true, + trickleRate: 0.02, + trickleSpeed: 800, + showSpinner: true, + parent: 'body', + barSelector: '[role="nprogress-bar"]', + spinnerSelector: '[role="nprogress-spinner"]', + template: '
    ' + + '
    ' + + '
    ' + + '
    ' + }; + + /** + * Updates configuration. + * + * NProgress.configure({ + * minimum: 0.1 + * }); + */ + NProgress.configure = function(options) { + var key, value; + for (key in options) { + value = options[key]; + if (value !== undefined && options.hasOwnProperty(key)) Settings[key] = value; + } + + return this; + }; + + /** + * Last number. + */ + + NProgress.status = null; + + /** + * Sets the progress bar status, where `n` is a number from `0.0` to `1.0`. + * + * NProgress.set(0.4); + * NProgress.set(1.0); + */ + + NProgress.set = function(n) { + var started = NProgress.isStarted(); + + n = clamp(n, Settings.minimum, 1); + NProgress.status = (n === 1 ? null : n); + + var progress = NProgress.render(!started), + bar = progress.querySelector(Settings.barSelector), + speed = Settings.speed, + ease = Settings.easing; + + progress.offsetWidth; /* Repaint */ + + queue(function(next) { + // Set positionUsing if it hasn't already been set + if (Settings.positionUsing === '') Settings.positionUsing = NProgress.getPositioningCSS(); + + // Add transition + css(bar, barPositionCSS(n, speed, ease)); + + if (n === 1) { + // Fade out + css(progress, { + transition: 'none', + opacity: 1 + }); + progress.offsetWidth; /* Repaint */ + + setTimeout(function() { + css(progress, { + transition: 'all ' + speed + 'ms linear', + opacity: 0 + }); + setTimeout(function() { + NProgress.remove(); + next(); + }, speed); + }, speed); + } else { + setTimeout(next, speed); + } + }); + + return this; + }; + + NProgress.isStarted = function() { + return typeof NProgress.status === 'number'; + }; + + /** + * Shows the progress bar. + * This is the same as setting the status to 0%, except that it doesn't go backwards. + * + * NProgress.start(); + * + */ + NProgress.start = function() { + if (!NProgress.status) NProgress.set(0); + + var work = function() { + setTimeout(function() { + if (!NProgress.status) return; + NProgress.trickle(); + work(); + }, Settings.trickleSpeed); + }; + + if (Settings.trickle) work(); + + return this; + }; + + /** + * Hides the progress bar. + * This is the *sort of* the same as setting the status to 100%, with the + * difference being `done()` makes some placebo effect of some realistic motion. + * + * NProgress.done(); + * + * If `true` is passed, it will show the progress bar even if its hidden. + * + * NProgress.done(true); + */ + + NProgress.done = function(force) { + if (!force && !NProgress.status) return this; + + return NProgress.inc(0.3 + 0.5 * Math.random()).set(1); + }; + + /** + * Increments by a random amount. + */ + + NProgress.inc = function(amount) { + var n = NProgress.status; + + if (!n) { + return NProgress.start(); + } else { + if (typeof amount !== 'number') { + amount = (1 - n) * clamp(Math.random() * n, 0.1, 0.95); + } + + n = clamp(n + amount, 0, 0.994); + return NProgress.set(n); + } + }; + + NProgress.trickle = function() { + return NProgress.inc(Math.random() * Settings.trickleRate); + }; + + /** + * Waits for all supplied jQuery promises and + * increases the progress as the promises resolve. + * + * @param $promise jQUery Promise + */ + (function() { + var initial = 0, current = 0; + + NProgress.promise = function($promise) { + if (!$promise || $promise.state() === "resolved") { + return this; + } + + if (current === 0) { + NProgress.start(); + } + + initial++; + current++; + + $promise.always(function() { + current--; + if (current === 0) { + initial = 0; + NProgress.done(); + } else { + NProgress.set((initial - current) / initial); + } + }); + + return this; + }; + + })(); + + /** + * (Internal) renders the progress bar markup based on the `template` + * setting. + */ + + NProgress.render = function(fromStart) { + if (NProgress.isRendered()) return document.getElementById('nprogress'); + + addClass(document.documentElement, 'nprogress-busy'); + + var progress = document.createElement('div'); + progress.id = 'nprogress'; + progress.innerHTML = Settings.template; + + var bar = progress.querySelector(Settings.barSelector), + perc = fromStart ? '-100' : toBarPerc(NProgress.status || 0), + parent = document.querySelector(Settings.parent), + spinner; + + css(bar, { + transition: 'all 0 linear', + transform: 'translate3d(' + perc + '%,0,0)' + }); + + if (!Settings.showSpinner) { + spinner = progress.querySelector(Settings.spinnerSelector); + spinner && removeElement(spinner); + } + + if (parent != document.body) { + addClass(parent, 'nprogress-custom-parent'); + } + + parent.appendChild(progress); + return progress; + }; + + /** + * Removes the element. Opposite of render(). + */ + + NProgress.remove = function() { + removeClass(document.documentElement, 'nprogress-busy'); + removeClass(document.querySelector(Settings.parent), 'nprogress-custom-parent'); + var progress = document.getElementById('nprogress'); + progress && removeElement(progress); + }; + + /** + * Checks if the progress bar is rendered. + */ + + NProgress.isRendered = function() { + return !!document.getElementById('nprogress'); + }; + + /** + * Determine which positioning CSS rule to use. + */ + + NProgress.getPositioningCSS = function() { + // Sniff on document.body.style + var bodyStyle = document.body.style; + + // Sniff prefixes + var vendorPrefix = ('WebkitTransform' in bodyStyle) ? 'Webkit' : + ('MozTransform' in bodyStyle) ? 'Moz' : + ('msTransform' in bodyStyle) ? 'ms' : + ('OTransform' in bodyStyle) ? 'O' : ''; + + if (vendorPrefix + 'Perspective' in bodyStyle) { + // Modern browsers with 3D support, e.g. Webkit, IE10 + return 'translate3d'; + } else if (vendorPrefix + 'Transform' in bodyStyle) { + // Browsers without 3D support, e.g. IE9 + return 'translate'; + } else { + // Browsers without translate() support, e.g. IE7-8 + return 'margin'; + } + }; + + /** + * Helpers + */ + + function clamp(n, min, max) { + if (n < min) return min; + if (n > max) return max; + return n; + } + + /** + * (Internal) converts a percentage (`0..1`) to a bar translateX + * percentage (`-100%..0%`). + */ + + function toBarPerc(n) { + return (-1 + n) * 100; + } + + + /** + * (Internal) returns the correct CSS for changing the bar's + * position given an n percentage, and speed and ease from Settings + */ + + function barPositionCSS(n, speed, ease) { + var barCSS; + + if (Settings.positionUsing === 'translate3d') { + barCSS = { transform: 'translate3d('+toBarPerc(n)+'%,0,0)' }; + } else if (Settings.positionUsing === 'translate') { + barCSS = { transform: 'translate('+toBarPerc(n)+'%,0)' }; + } else { + barCSS = { 'margin-left': toBarPerc(n)+'%' }; + } + + barCSS.transition = 'all '+speed+'ms '+ease; + + return barCSS; + } + + /** + * (Internal) Queues a function to be executed. + */ + + var queue = (function() { + var pending = []; + + function next() { + var fn = pending.shift(); + if (fn) { + fn(next); + } + } + + return function(fn) { + pending.push(fn); + if (pending.length == 1) next(); + }; + })(); + + /** + * (Internal) Applies css properties to an element, similar to the jQuery + * css method. + * + * While this helper does assist with vendor prefixed property names, it + * does not perform any manipulation of values prior to setting styles. + */ + + var css = (function() { + var cssPrefixes = [ 'Webkit', 'O', 'Moz', 'ms' ], + cssProps = {}; + + function camelCase(string) { + return string.replace(/^-ms-/, 'ms-').replace(/-([\da-z])/gi, function(match, letter) { + return letter.toUpperCase(); + }); + } + + function getVendorProp(name) { + var style = document.body.style; + if (name in style) return name; + + var i = cssPrefixes.length, + capName = name.charAt(0).toUpperCase() + name.slice(1), + vendorName; + while (i--) { + vendorName = cssPrefixes[i] + capName; + if (vendorName in style) return vendorName; + } + + return name; + } + + function getStyleProp(name) { + name = camelCase(name); + return cssProps[name] || (cssProps[name] = getVendorProp(name)); + } + + function applyCss(element, prop, value) { + prop = getStyleProp(prop); + element.style[prop] = value; + } + + return function(element, properties) { + var args = arguments, + prop, + value; + + if (args.length == 2) { + for (prop in properties) { + value = properties[prop]; + if (value !== undefined && properties.hasOwnProperty(prop)) applyCss(element, prop, value); + } + } else { + applyCss(element, args[1], args[2]); + } + } + })(); + + /** + * (Internal) Determines if an element or space separated list of class names contains a class name. + */ + + function hasClass(element, name) { + var list = typeof element == 'string' ? element : classList(element); + return list.indexOf(' ' + name + ' ') >= 0; + } + + /** + * (Internal) Adds a class to an element. + */ + + function addClass(element, name) { + var oldList = classList(element), + newList = oldList + name; + + if (hasClass(oldList, name)) return; + + // Trim the opening space. + element.className = newList.substring(1); + } + + /** + * (Internal) Removes a class from an element. + */ + + function removeClass(element, name) { + var oldList = classList(element), + newList; + + if (!hasClass(element, name)) return; + + // Replace the class name. + newList = oldList.replace(' ' + name + ' ', ' '); + + // Trim the opening and closing spaces. + element.className = newList.substring(1, newList.length - 1); + } + + /** + * (Internal) Gets a space separated list of the class names on the element. + * The list is wrapped with a single space on each end to facilitate finding + * matches within the list. + */ + + function classList(element) { + return (' ' + (element.className || '') + ' ').replace(/\s+/gi, ' '); + } + + /** + * (Internal) Removes an element from the DOM. + */ + + function removeElement(element) { + element && element.parentNode && element.parentNode.removeChild(element); + } + + return NProgress; + })(); + + module.exports = UI.progress = Progress; + + +/***/ }, +/* 20 */ +/***/ function(module, exports, __webpack_require__) { + + 'use strict'; + + var $ = __webpack_require__(1); + var UI = __webpack_require__(2); + var PinchZoom = __webpack_require__(17); + var Hammer = __webpack_require__(3); + var animation = UI.support.animation; + var transition = UI.support.transition; + + /** + * PureView + * @desc Image browser for Mobile + * @param element + * @param options + * @constructor + */ + + var PureView = function(element, options) { + this.$element = $(element); + this.$body = $(document.body); + this.options = $.extend({}, PureView.DEFAULTS, options); + this.$pureview = $(this.options.tpl).attr('id', + UI.utils.generateGUID('am-pureview')); + + this.$slides = null; + this.transitioning = null; + this.scrollbarWidth = 0; + + this.init(); + }; + + PureView.DEFAULTS = { + tpl: '
    ' + + '
      ' + + '
        ' + + '
      • ' + + '
      ' + + '
        ' + + '
        ' + + '' + + '
        / ' + + '
        ' + + '
        ' + + '
        ' + + '
        ', + + className: { + prevSlide: 'am-pureview-slide-prev', + nextSlide: 'am-pureview-slide-next', + onlyOne: 'am-pureview-only', + active: 'am-active', + barActive: 'am-pureview-bar-active', + activeBody: 'am-pureview-active' + }, + + selector: { + slider: '.am-pureview-slider', + close: '[data-am-close="pureview"]', + total: '.am-pureview-total', + current: '.am-pureview-current', + title: '.am-pureview-title', + actions: '.am-pureview-actions', + bar: '.am-pureview-bar', + pinchZoom: '.am-pinch-zoom', + nav: '.am-pureview-nav' + }, + + shareBtn: false, + + // press to toggle Toolbar + toggleToolbar: true, + + // 从何处获取图片,img 可以使用 data-rel 指定大图 + target: 'img', + + // 微信 Webview 中调用微信的图片浏览器 + // 实现图片保存、分享好友、收藏图片等功能 + weChatImagePreview: true + }; + + PureView.prototype.init = function() { + var _this = this; + var options = this.options; + var $element = this.$element; + var $pureview = this.$pureview; + + this.refreshSlides(); + + $('body').append($pureview); + + this.$title = $pureview.find(options.selector.title); + this.$current = $pureview.find(options.selector.current); + this.$bar = $pureview.find(options.selector.bar); + this.$actions = $pureview.find(options.selector.actions); + + if (options.shareBtn) { + this.$actions.append(''); + } + + this.$element.on('click.pureview.amui', options.target, function(e) { + e.preventDefault(); + var clicked = _this.$images.index(this); + + // Invoke WeChat ImagePreview in WeChat + // TODO: detect WeChat before init + if (options.weChatImagePreview && window.WeixinJSBridge) { + window.WeixinJSBridge.invoke('imagePreview', { + current: _this.imgUrls[clicked], + urls: _this.imgUrls + }); + } else { + _this.open(clicked); + } + }); + + $pureview.find('.am-pureview-direction'). + on('click.direction.pureview.amui', 'li', function(e) { + e.preventDefault(); + + if ($(this).is('.am-pureview-prev')) { + _this.prevSlide(); + } else { + _this.nextSlide(); + } + }); + + // Nav Contorl + $pureview.find(options.selector.nav).on('click.nav.pureview.amui', 'li', + function() { + var index = _this.$navItems.index($(this)); + _this.activate(_this.$slides.eq(index)); + }); + + // Close Icon + $pureview.find(options.selector.close). + on('click.close.pureview.amui', function(e) { + e.preventDefault(); + _this.close(); + }); + + this.$slider.hammer().on('swipeleft.pureview.amui', function(e) { + e.preventDefault(); + _this.nextSlide(); + }).on('swiperight.pureview.amui', function(e) { + e.preventDefault(); + _this.prevSlide(); + }).on('press.pureview.amui', function(e) { + e.preventDefault(); + options.toggleToolbar && _this.toggleToolBar(); + }); + + this.$slider.data('hammer').get('swipe').set({ + direction: Hammer.DIRECTION_HORIZONTAL, + velocity: 0.35 + }); + + // Observe DOM + $element.DOMObserve({ + childList: true, + subtree: true + }, function(mutations, observer) { + // _this.refreshSlides(); + // console.log('mutations[0].type); + }); + + // NOTE: + // trigger this event manually if MutationObserver not supported + // when new images appended, or call refreshSlides() + // if (!UI.support.mutationobserver) $element.trigger('changed.dom.amui') + $element.on('changed.dom.amui', function(e) { + e.stopPropagation(); + _this.refreshSlides(); + }); + + $(document).on('keydown.pureview.amui', $.proxy(function(e) { + var keyCode = e.keyCode; + if (keyCode == 37) { + this.prevSlide(); + } else if (keyCode == 39) { + this.nextSlide(); + } else if (keyCode == 27) { + this.close(); + } + }, this)); + }; + + PureView.prototype.refreshSlides = function() { + // update images collections + this.$images = this.$element.find(this.options.target); + var _this = this; + var options = this.options; + var $pureview = this.$pureview; + var $slides = $([]); + var $navItems = $([]); + var $images = this.$images; + var total = $images.length; + this.$slider = $pureview.find(options.selector.slider); + this.$nav = $pureview.find(options.selector.nav); + var viewedFlag = 'data-am-pureviewed'; + // for WeChat Image Preview + this.imgUrls = this.imgUrls || []; + + if (!total) { + return; + } + + if (total === 1) { + $pureview.addClass(options.className.onlyOne); + } + + $images.not('[' + viewedFlag + ']').each(function(i, item) { + var src; + var title; + + // get image URI from link's href attribute + if (item.nodeName === 'A') { + src = item.href; // to absolute path + title = item.title || ''; + } else { + // NOTE: `data-rel` should be a full URL, otherwise, + // WeChat images preview will not work + src = $(item).data('rel') || item.src; // + src = UI.utils.getAbsoluteUrl(src); + title = $(item).attr('alt') || ''; + } + + // add pureviewed flag + item.setAttribute(viewedFlag, '1'); + + // hide bar: wechat_webview_type=1 + // http://tmt.io/wechat/ not working? + _this.imgUrls.push(src); + + $slides = $slides.add($('
      1. ')); + $navItems = $navItems.add($('
      2. ' + (i + 1) + '
      3. ')); + }); + + $pureview.find(options.selector.total).text(total); + + this.$slider.append($slides); + this.$nav.append($navItems); + this.$navItems = this.$nav.find('li'); + this.$slides = this.$slider.find('li'); + }; + + PureView.prototype.loadImage = function($slide, callback) { + var appendedFlag = 'image-appended'; + + if (!$slide.data(appendedFlag)) { + var $img = $('', { + src: $slide.data('src'), + alt: $slide.data('title') + }); + + $slide.html($img).wrapInner('
        ').redraw(); + + var $pinchWrapper = $slide.find(this.options.selector.pinchZoom); + $pinchWrapper.data('amui.pinchzoom', new PinchZoom($pinchWrapper[0], {})); + $slide.data('image-appended', true); + } + + callback && callback.call(this); + }; + + PureView.prototype.activate = function($slide) { + var options = this.options; + var $slides = this.$slides; + var activeIndex = $slides.index($slide); + var title = $slide.data('title') || ''; + var active = options.className.active; + + if ($slides.find('.' + active).is($slide)) { + return; + } + + if (this.transitioning) { + return; + } + + this.loadImage($slide, function() { + UI.utils.imageLoader($slide.find('img'), function(image) { + $slide.find('.am-pinch-zoom').addClass('am-pureview-loaded'); + $(image).addClass('am-img-loaded'); + }); + }); + + this.transitioning = 1; + + this.$title.text(title); + this.$current.text(activeIndex + 1); + $slides.removeClass(); + $slide.addClass(active); + $slides.eq(activeIndex - 1).addClass(options.className.prevSlide); + $slides.eq(activeIndex + 1).addClass(options.className.nextSlide); + + this.$navItems.removeClass(). + eq(activeIndex).addClass(options.className.active); + + if (transition) { + $slide.one(transition.end, $.proxy(function() { + this.transitioning = 0; + }, this)).emulateTransitionEnd(300); + } else { + this.transitioning = 0; + } + + // TODO: pre-load next image + }; + + PureView.prototype.nextSlide = function() { + if (this.$slides.length === 1) { + return; + } + + var $slides = this.$slides; + var $active = $slides.filter('.am-active'); + var activeIndex = $slides.index($active); + var rightSpring = 'am-animation-right-spring'; + + if (activeIndex + 1 >= $slides.length) { // last one + animation && $active.addClass(rightSpring).on(animation.end, function() { + $active.removeClass(rightSpring); + }); + } else { + this.activate($slides.eq(activeIndex + 1)); + } + }; + + PureView.prototype.prevSlide = function() { + if (this.$slides.length === 1) { + return; + } + + var $slides = this.$slides; + var $active = $slides.filter('.am-active'); + var activeIndex = this.$slides.index(($active)); + var leftSpring = 'am-animation-left-spring'; + + if (activeIndex === 0) { // first one + animation && $active.addClass(leftSpring).on(animation.end, function() { + $active.removeClass(leftSpring); + }); + } else { + this.activate($slides.eq(activeIndex - 1)); + } + }; + + PureView.prototype.toggleToolBar = function() { + this.$pureview.toggleClass(this.options.className.barActive); + }; + + PureView.prototype.open = function(index) { + var active = index || 0; + this.checkScrollbar(); + this.setScrollbar(); + this.activate(this.$slides.eq(active)); + this.$pureview.show().redraw().addClass(this.options.className.active); + this.$body.addClass(this.options.className.activeBody); + }; + + PureView.prototype.close = function() { + var options = this.options; + + this.$pureview.removeClass(options.className.active); + this.$slides.removeClass(); + + function resetBody() { + this.$pureview.hide(); + this.$body.removeClass(options.className.activeBody); + this.resetScrollbar(); + } + + if (transition) { + this.$pureview.one(transition.end, $.proxy(resetBody, this)). + emulateTransitionEnd(300); + } else { + resetBody.call(this); + } + }; + + PureView.prototype.checkScrollbar = function() { + this.scrollbarWidth = UI.utils.measureScrollbar(); + }; + + PureView.prototype.setScrollbar = function() { + var bodyPaddingRight = parseInt((this.$body.css('padding-right') || 0), 10); + if (this.scrollbarWidth) { + this.$body.css('padding-right', bodyPaddingRight + this.scrollbarWidth); + } + }; + + PureView.prototype.resetScrollbar = function() { + this.$body.css('padding-right', ''); + }; + + UI.plugin('pureview', PureView); + + // Init code + UI.ready(function(context) { + $('[data-am-pureview]', context).pureview(); + }); + + module.exports = PureView; + + // TODO: 1. 动画改进 + // 2. 改变图片的时候恢复 Zoom + // 3. 选项 + // 4. 图片高度问题:由于 PinchZoom 的原因,过高的图片如果设置看了滚动,则放大以后显示不全 + + +/***/ }, +/* 21 */ +/***/ function(module, exports, __webpack_require__) { + + 'use strict'; + + var $ = __webpack_require__(1); + var UI = __webpack_require__(2); + + /** + * @via https://github.com/uikit/uikit/blob/master/src/js/scrollspy.js + * @license https://github.com/uikit/uikit/blob/master/LICENSE.md + */ + + var ScrollSpy = function(element, options) { + if (!UI.support.animation) { + return; + } + + this.options = $.extend({}, ScrollSpy.DEFAULTS, options); + this.$element = $(element); + + var checkViewRAF = function() { + UI.utils.rAF.call(window, $.proxy(this.checkView, this)); + }.bind(this); + + this.$window = $(window).on('scroll.scrollspy.amui', checkViewRAF) + .on('resize.scrollspy.amui orientationchange.scrollspy.amui', + UI.utils.debounce(checkViewRAF, 50)); + + this.timer = this.inViewState = this.initInView = null; + + checkViewRAF(); + }; + + ScrollSpy.DEFAULTS = { + animation: 'fade', + className: { + inView: 'am-scrollspy-inview', + init: 'am-scrollspy-init' + }, + repeat: true, + delay: 0, + topOffset: 0, + leftOffset: 0 + }; + + ScrollSpy.prototype.checkView = function() { + var $element = this.$element; + var options = this.options; + var inView = UI.utils.isInView($element, options); + var animation = options.animation ? + ' am-animation-' + options.animation : ''; + + if (inView && !this.inViewState) { + if (this.timer) { + clearTimeout(this.timer); + } + + if (!this.initInView) { + $element.addClass(options.className.init); + this.offset = $element.offset(); + this.initInView = true; + + $element.trigger('init.scrollspy.amui'); + } + + this.timer = setTimeout(function() { + if (inView) { + $element.addClass(options.className.inView + animation).width(); + } + }, options.delay); + + this.inViewState = true; + $element.trigger('inview.scrollspy.amui'); + } + + if (!inView && this.inViewState && options.repeat) { + $element.removeClass(options.className.inView + animation); + + this.inViewState = false; + + $element.trigger('outview.scrollspy.amui'); + } + }; + + ScrollSpy.prototype.check = function() { + UI.utils.rAF.call(window, $.proxy(this.checkView, this)); + }; + + // Sticky Plugin + UI.plugin('scrollspy', ScrollSpy); + + // Init code + UI.ready(function(context) { + $('[data-am-scrollspy]', context).scrollspy(); + }); + + module.exports = ScrollSpy; + + +/***/ }, +/* 22 */ +/***/ function(module, exports, __webpack_require__) { + + 'use strict'; + + var $ = __webpack_require__(1); + var UI = __webpack_require__(2); + __webpack_require__(23); + + /** + * @via https://github.com/uikit/uikit/ + * @license https://github.com/uikit/uikit/blob/master/LICENSE.md + */ + + // ScrollSpyNav Class + var ScrollSpyNav = function(element, options) { + this.options = $.extend({}, ScrollSpyNav.DEFAULTS, options); + this.$element = $(element); + this.anchors = []; + + this.$links = this.$element.find('a[href^="#"]').each(function(i, link) { + this.anchors.push($(link).attr('href')); + }.bind(this)); + + this.$targets = $(this.anchors.join(', ')); + + var processRAF = function() { + UI.utils.rAF.call(window, $.proxy(this.process, this)); + }.bind(this); + + this.$window = $(window).on('scroll.scrollspynav.amui', processRAF) + .on('resize.scrollspynav.amui orientationchange.scrollspynav.amui', + UI.utils.debounce(processRAF, 50)); + + processRAF(); + this.scrollProcess(); + }; + + ScrollSpyNav.DEFAULTS = { + className: { + active: 'am-active' + }, + closest: false, + smooth: true, + offsetTop: 0 + }; + + ScrollSpyNav.prototype.process = function() { + var scrollTop = this.$window.scrollTop(); + var options = this.options; + var inViews = []; + var $links = this.$links; + + var $targets = this.$targets; + + $targets.each(function(i, target) { + if (UI.utils.isInView(target, options)) { + inViews.push(target); + } + }); + + // console.log(inViews.length); + + if (inViews.length) { + var $target; + + $.each(inViews, function(i, item) { + if ($(item).offset().top >= scrollTop) { + $target = $(item); + return false; // break + } + }); + + if (!$target) { + return; + } + + if (options.closest) { + $links.closest(options.closest).removeClass(options.className.active); + $links.filter('a[href="#' + $target.attr('id') + '"]'). + closest(options.closest).addClass(options.className.active); + } else { + $links.removeClass(options.className.active). + filter('a[href="#' + $target.attr('id') + '"]'). + addClass(options.className.active); + } + } + }; + + ScrollSpyNav.prototype.scrollProcess = function() { + var $links = this.$links; + var options = this.options; + + // smoothScroll + if (options.smooth && $.fn.smoothScroll) { + $links.on('click', function(e) { + e.preventDefault(); + + var $this = $(this); + var $target = $($this.attr('href')); + + if (!$target) { + return; + } + + var offsetTop = options.offsetTop && + !isNaN(parseInt(options.offsetTop)) && parseInt(options.offsetTop) || 0; + + $(window).smoothScroll({position: $target.offset().top - offsetTop}); + }); + } + }; + + // ScrollSpyNav Plugin + UI.plugin('scrollspynav', ScrollSpyNav); + + // Init code + UI.ready(function(context) { + $('[data-am-scrollspynav]', context).scrollspynav(); + }); + + module.exports = ScrollSpyNav; + + // TODO: 1. 算法改进 + // 2. 多级菜单支持 + // 3. smooth scroll pushState + + +/***/ }, +/* 23 */ +/***/ function(module, exports, __webpack_require__) { + + 'use strict'; + + var $ = __webpack_require__(1); + var UI = __webpack_require__(2); + var rAF = UI.utils.rAF; + var cAF = UI.utils.cancelAF; + + /** + * Smooth Scroll + * @param position + * @via http://mir.aculo.us/2014/01/19/scrolling-dom-elements-to-the-top-a-zepto-plugin/ + */ + + // Usage: $(window).smoothScroll([options]) + + // only allow one scroll to top operation to be in progress at a time, + // which is probably what you want + var smoothScrollInProgress = false; + + var SmoothScroll = function(element, options) { + options = options || {}; + + var $this = $(element); + var targetY = parseInt(options.position) || SmoothScroll.DEFAULTS.position; + var initialY = $this.scrollTop(); + var lastY = initialY; + var delta = targetY - initialY; + // duration in ms, make it a bit shorter for short distances + // this is not scientific and you might want to adjust this for + // your preferences + var speed = options.speed || + Math.min(750, Math.min(1500, Math.abs(initialY - targetY))); + // temp variables (t will be a position between 0 and 1, y is the calculated scrollTop) + var start; + var t; + var y; + var cancelScroll = function() { + abort(); + }; + + // abort if already in progress or nothing to scroll + if (smoothScrollInProgress) { + return; + } + + if (delta === 0) { + return; + } + + // quint ease-in-out smoothing, from + // https://github.com/madrobby/scripty2/blob/master/src/effects/transitions/penner.js#L127-L136 + function smooth(pos) { + if ((pos /= 0.5) < 1) { + return 0.5 * Math.pow(pos, 5); + } + + return 0.5 * (Math.pow((pos - 2), 5) + 2); + } + + function abort() { + $this.off('touchstart.smoothscroll.amui', cancelScroll); + smoothScrollInProgress = false; + } + + // when there's a touch detected while scrolling is in progress, abort + // the scrolling (emulates native scrolling behavior) + $this.on('touchstart.smoothscroll.amui', cancelScroll); + smoothScrollInProgress = true; + + // start rendering away! note the function given to frame + // is named "render" so we can reference it again further down + function render(now) { + if (!smoothScrollInProgress) { + return; + } + if (!start) { + start = now; + } + + // calculate t, position of animation in [0..1] + t = Math.min(1, Math.max((now - start) / speed, 0)); + // calculate the new scrollTop position (don't forget to smooth) + y = Math.round(initialY + delta * smooth(t)); + // bracket scrollTop so we're never over-scrolling + if (delta > 0 && y > targetY) { + y = targetY; + } + if (delta < 0 && y < targetY) { + y = targetY; + } + + // only actually set scrollTop if there was a change fromt he last frame + if (lastY != y) { + $this.scrollTop(y); + } + + lastY = y; + // if we're not done yet, queue up an other frame to render, + // or clean up + if (y !== targetY) { + cAF(scrollRAF); + scrollRAF = rAF(render); + } else { + cAF(scrollRAF); + abort(); + } + } + + var scrollRAF = rAF(render); + }; + + SmoothScroll.DEFAULTS = { + position: 0 + }; + + $.fn.smoothScroll = function(option) { + return this.each(function() { + new SmoothScroll(this, option); + }); + }; + + // Init code + $(document).on('click.smoothScroll.amui.data-api', '[data-am-smooth-scroll]', + function(e) { + e.preventDefault(); + var options = UI.utils.parseOptions($(this).data('amSmoothScroll')); + + $(window).smoothScroll(options); + }); + + module.exports = SmoothScroll; + + +/***/ }, +/* 24 */ +/***/ function(module, exports, __webpack_require__) { + + 'use strict'; + + var $ = __webpack_require__(1); + var UI = __webpack_require__(2); + // require('./ui.dropdown'); + + // Make jQuery :contains Case-Insensitive + $.expr[':'].containsNC = function(elem, i, match, array) { + return (elem.textContent || elem.innerText || '').toLowerCase(). + indexOf((match[3] || '').toLowerCase()) >= 0; + }; + + /** + * Selected + * @desc HTML select replacer + * @via https://github.com/silviomoreto/bootstrap-select + * @license https://github.com/silviomoreto/bootstrap-select/blob/master/LICENSE + * @param element + * @param options + * @constructor + */ + + var Selected = function(element, options) { + this.$element = $(element); + this.options = $.extend({}, Selected.DEFAULTS, { + placeholder: element.getAttribute('placeholder') || + Selected.DEFAULTS.placeholder + }, options); + this.$originalOptions = this.$element.find('option'); + this.multiple = element.multiple; + this.$selector = null; + this.initialized = false; + this.init(); + }; + + Selected.DEFAULTS = { + btnWidth: null, + btnSize: null, + btnStyle: 'default', + dropUp: 0, + maxHeight: null, + maxChecked: null, + placeholder: '点击选择...', + selectedClass: 'am-checked', + disabledClass: 'am-disabled', + searchBox: false, + tpl: '
        ' + + ' ' + + '
        ' + + '

        ' + + '返回

        ' + + ' <% if (searchBox) { %>' + + ' ' + + ' <% } %>' + + '
          ' + + ' <% for (var i = 0; i < options.length; i++) { %>' + + ' <% var option = options[i] %>' + + ' <% if (option.header) { %>' + + '
        • ' + + ' <%= option.text %>
        • ' + + ' <% } else { %>' + + '
        • ' + + ' <%= option.text %>' + + '
        • ' + + ' <% } %>' + + ' <% } %>' + + '
        ' + + '
        ' + + '
        ' + + '
        ', + listTpl: '<% for (var i = 0; i < options.length; i++) { %>' + + ' <% var option = options[i] %>' + + ' <% if (option.header) { %>' + + '
      4. ' + + ' <%= option.text %>
      5. ' + + ' <% } else { %>' + + '
      6. ' + + ' <%= option.text %>' + + '
      7. ' + + ' <% } %>' + + ' <% } %>' + }; + + Selected.prototype.init = function() { + var _this = this; + var $element = this.$element; + var options = this.options; + + $element.hide(); + + var data = { + id: UI.utils.generateGUID('am-selected'), + multiple: this.multiple, + options: [], + searchBox: options.searchBox, + dropUp: options.dropUp, + placeholder: options.placeholder + }; + + this.$selector = $(UI.template(this.options.tpl, data)); + // set select button styles + this.$selector.css({width: this.options.btnWidth}); + + this.$list = this.$selector.find('.am-selected-list'); + this.$searchField = this.$selector.find('.am-selected-search input'); + this.$hint = this.$selector.find('.am-selected-hint'); + + var $selectorBtn = this.$selector.find('.am-selected-btn'); + var btnClassNames = []; + + options.btnSize && btnClassNames.push('am-btn-' + options.btnSize); + options.btnStyle && btnClassNames.push('am-btn-' + options.btnStyle); + $selectorBtn.addClass(btnClassNames.join(' ')); + + this.$selector.dropdown({ + justify: $selectorBtn + }); + + // disable Selected instance if is disabled + // should call .disable() after Dropdown initialed + if ($element[0].disabled) { + this.disable(); + } + + // set list height + if (options.maxHeight) { + this.$selector.find('.am-selected-list').css({ + 'max-height': options.maxHeight, + 'overflow-y': 'scroll' + }); + } + + // set hint text + var hint = []; + var min = $element.attr('minchecked'); + var max = $element.attr('maxchecked') || options.maxChecked; + + this.maxChecked = max || Infinity; + + if ($element[0].required) { + hint.push('必选'); + } + + if (min || max) { + min && hint.push('至少选择 ' + min + ' 项'); + max && hint.push('至多选择 ' + max + ' 项'); + } + + this.$hint.text(hint.join(',')); + + // render dropdown list + this.renderOptions(); + + // append $selector after '); + // 计算每个节点的长宽;取整,防止点之间出现分离 + var tileW = -1, tileH = -1, caculateW = -1, caculateH = -1; + tileW = caculateW = Math.floor(this.options.width / qrCodeAlg.getModuleCount()); + tileH = caculateH = Math.floor(this.options.height / qrCodeAlg.getModuleCount()); + if (caculateW <= 0) { + if (qrCodeAlg.getModuleCount() < 80) { + tileW = 2; + } else { + tileW = 1; + } + } + if (caculateH <= 0) { + if (qrCodeAlg.getModuleCount() < 80) { + tileH = 2; + } else { + tileH = 1; + } + } + + // 绘制二维码 + foreTd = '', + backTd = '', + l = qrCodeAlg.getModuleCount(); + + for (var row = 0; row < l; row++) { + s.push(''); + for (var col = 0; col < l; col++) { + s.push(qrCodeAlg.modules[row][col] ? foreTd : backTd); + } + s.push(''); + } + s.push('
        '); + var span = document.createElement("span"); + span.innerHTML = s.join(''); + + return span.firstChild; + }; + + /** + * 使用SVG开绘制二维码 + * @return {} + */ + QRCode.prototype.createSVG = function(qrCodeAlg) { + var x, dx, y, dy, + moduleCount = qrCodeAlg.getModuleCount(), + scale = this.options.height / this.options.width, + svg = '', + rectHead = '', + backRect = ' style="stroke-width:0.5;stroke:' + this.options.background + + ';fill:' + this.options.background + ';">'; + + // draw in the svg + for (var row = 0; row < moduleCount; row++) { + for (var col = 0; col < moduleCount; col++) { + x = col * 10; + y = row * 10 * scale; + dx = (col + 1) * 10; + dy = (row + 1) * 10 * scale; + + svg += rectHead + 'd="M ' + x + ',' + y + + ' L ' + dx + ',' + y + + ' L ' + dx + ',' + dy + + ' L ' + x + ',' + dy + + ' Z"'; + + svg += qrCodeAlg.modules[row][col] ? foreRect : backRect; + } + } + + svg += ''; + + // return just built svg + return $(svg)[0]; + }; + + /** + * 获取单个字符的utf8编码 + * unicode BMP平面约65535个字符 + * @param {num} code + * return {array} + */ + function unicodeFormat8(code) { + // 1 byte + if (code < 128) { + return [code]; + // 2 bytes + } else if (code < 2048) { + c0 = 192 + (code >> 6); + c1 = 128 + (code & 63); + return [c0, c1]; + // 3 bytes + } else { + c0 = 224 + (code >> 12); + c1 = 128 + (code >> 6 & 63); + c2 = 128 + (code & 63); + return [c0, c1, c2]; + } + } + + /** + * 获取字符串的utf8编码字节串 + * @param {string} string + * @return {array} + */ + function getUTF8Bytes(string) { + var utf8codes = []; + for (var i = 0; i < string.length; i++) { + var code = string.charCodeAt(i); + var utf8 = unicodeFormat8(code); + for (var j = 0; j < utf8.length; j++) { + utf8codes.push(utf8[j]); + } + } + return utf8codes; + } + + /** + * 二维码算法实现 + * @param {string} data 要编码的信息字符串 + * @param {num} errorCorrectLevel 纠错等级 + */ + function QRCodeAlg(data, errorCorrectLevel) { + this.typeNumber = -1; // 版本 + this.errorCorrectLevel = errorCorrectLevel; + this.modules = null; // 二维矩阵,存放最终结果 + this.moduleCount = 0; // 矩阵大小 + this.dataCache = null; // 数据缓存 + this.rsBlocks = null; // 版本数据信息 + this.totalDataCount = -1; // 可使用的数据量 + this.data = data; + this.utf8bytes = getUTF8Bytes(data); + this.make(); + } + + QRCodeAlg.prototype = { + constructor: QRCodeAlg, + /** + * 获取二维码矩阵大小 + * @return {num} 矩阵大小 + */ + getModuleCount: function() { + return this.moduleCount; + }, + /** + * 编码 + */ + make: function() { + this.getRightType(); + this.dataCache = this.createData(); + this.createQrcode(); + }, + /** + * 设置二位矩阵功能图形 + * @param {bool} test 表示是否在寻找最好掩膜阶段 + * @param {num} maskPattern 掩膜的版本 + */ + makeImpl: function(maskPattern) { + + this.moduleCount = this.typeNumber * 4 + 17; + this.modules = new Array(this.moduleCount); + + for (var row = 0; row < this.moduleCount; row++) { + + this.modules[row] = new Array(this.moduleCount); + + } + this.setupPositionProbePattern(0, 0); + this.setupPositionProbePattern(this.moduleCount - 7, 0); + this.setupPositionProbePattern(0, this.moduleCount - 7); + this.setupPositionAdjustPattern(); + this.setupTimingPattern(); + this.setupTypeInfo(true, maskPattern); + + if (this.typeNumber >= 7) { + this.setupTypeNumber(true); + } + this.mapData(this.dataCache, maskPattern); + }, + /** + * 设置二维码的位置探测图形 + * @param {num} row 探测图形的中心横坐标 + * @param {num} col 探测图形的中心纵坐标 + */ + setupPositionProbePattern: function(row, col) { + + for (var r = -1; r <= 7; r++) { + + if (row + r <= -1 || this.moduleCount <= row + r) continue; + + for (var c = -1; c <= 7; c++) { + + if (col + c <= -1 || this.moduleCount <= col + c) continue; + + if ((0 <= r && r <= 6 && (c == 0 || c == 6)) || (0 <= c && c <= 6 && (r == 0 || r == 6)) || (2 <= r && r <= 4 && 2 <= c && c <= 4)) { + this.modules[row + r][col + c] = true; + } else { + this.modules[row + r][col + c] = false; + } + } + } + }, + /** + * 创建二维码 + * @return {[type]} [description] + */ + createQrcode: function() { + + var minLostPoint = 0; + var pattern = 0; + var bestModules = null; + + for (var i = 0; i < 8; i++) { + + this.makeImpl(i); + + var lostPoint = QRUtil.getLostPoint(this); + if (i == 0 || minLostPoint > lostPoint) { + minLostPoint = lostPoint; + pattern = i; + bestModules = this.modules; + } + } + this.modules = bestModules; + this.setupTypeInfo(false, pattern); + + if (this.typeNumber >= 7) { + this.setupTypeNumber(false); + } + + }, + /** + * 设置定位图形 + * @return {[type]} [description] + */ + setupTimingPattern: function() { + + for (var r = 8; r < this.moduleCount - 8; r++) { + if (this.modules[r][6] != null) { + continue; + } + this.modules[r][6] = (r % 2 == 0); + + if (this.modules[6][r] != null) { + continue; + } + this.modules[6][r] = (r % 2 == 0); + } + }, + /** + * 设置矫正图形 + * @return {[type]} [description] + */ + setupPositionAdjustPattern: function() { + + var pos = QRUtil.getPatternPosition(this.typeNumber); + + for (var i = 0; i < pos.length; i++) { + + for (var j = 0; j < pos.length; j++) { + + var row = pos[i]; + var col = pos[j]; + + if (this.modules[row][col] != null) { + continue; + } + + for (var r = -2; r <= 2; r++) { + + for (var c = -2; c <= 2; c++) { + + if (r == -2 || r == 2 || c == -2 || c == 2 || (r == 0 && c == 0)) { + this.modules[row + r][col + c] = true; + } else { + this.modules[row + r][col + c] = false; + } + } + } + } + } + }, + /** + * 设置版本信息(7以上版本才有) + * @param {bool} test 是否处于判断最佳掩膜阶段 + * @return {[type]} [description] + */ + setupTypeNumber: function(test) { + + var bits = QRUtil.getBCHTypeNumber(this.typeNumber); + + for (var i = 0; i < 18; i++) { + var mod = (!test && ((bits >> i) & 1) == 1); + this.modules[Math.floor(i / 3)][i % 3 + this.moduleCount - 8 - 3] = mod; + this.modules[i % 3 + this.moduleCount - 8 - 3][Math.floor(i / 3)] = mod; + } + }, + /** + * 设置格式信息(纠错等级和掩膜版本) + * @param {bool} test + * @param {num} maskPattern 掩膜版本 + * @return {} + */ + setupTypeInfo: function(test, maskPattern) { + + var data = (QRErrorCorrectLevel[this.errorCorrectLevel] << 3) | maskPattern; + var bits = QRUtil.getBCHTypeInfo(data); + + // vertical + for (var i = 0; i < 15; i++) { + + var mod = (!test && ((bits >> i) & 1) == 1); + + if (i < 6) { + this.modules[i][8] = mod; + } else if (i < 8) { + this.modules[i + 1][8] = mod; + } else { + this.modules[this.moduleCount - 15 + i][8] = mod; + } + + // horizontal + var mod = (!test && ((bits >> i) & 1) == 1); + + if (i < 8) { + this.modules[8][this.moduleCount - i - 1] = mod; + } else if (i < 9) { + this.modules[8][15 - i - 1 + 1] = mod; + } else { + this.modules[8][15 - i - 1] = mod; + } + } + + // fixed module + this.modules[this.moduleCount - 8][8] = (!test); + + }, + /** + * 数据编码 + * @return {[type]} [description] + */ + createData: function() { + var buffer = new QRBitBuffer(); + var lengthBits = this.typeNumber > 9 ? 16 : 8; + buffer.put(4, 4); //添加模式 + buffer.put(this.utf8bytes.length, lengthBits); + for (var i = 0, l = this.utf8bytes.length; i < l; i++) { + buffer.put(this.utf8bytes[i], 8); + } + if (buffer.length + 4 <= this.totalDataCount * 8) { + buffer.put(0, 4); + } + + // padding + while (buffer.length % 8 != 0) { + buffer.putBit(false); + } + + // padding + while (true) { + + if (buffer.length >= this.totalDataCount * 8) { + break; + } + buffer.put(QRCodeAlg.PAD0, 8); + + if (buffer.length >= this.totalDataCount * 8) { + break; + } + buffer.put(QRCodeAlg.PAD1, 8); + } + return this.createBytes(buffer); + }, + /** + * 纠错码编码 + * @param {buffer} buffer 数据编码 + * @return {[type]} + */ + createBytes: function(buffer) { + + var offset = 0; + + var maxDcCount = 0; + var maxEcCount = 0; + + var length = this.rsBlock.length / 3; + + var rsBlocks = new Array(); + + for (var i = 0; i < length; i++) { + + var count = this.rsBlock[i * 3 + 0]; + var totalCount = this.rsBlock[i * 3 + 1]; + var dataCount = this.rsBlock[i * 3 + 2]; + + for (var j = 0; j < count; j++) { + rsBlocks.push([dataCount, totalCount]); + } + } + + var dcdata = new Array(rsBlocks.length); + var ecdata = new Array(rsBlocks.length); + + for (var r = 0; r < rsBlocks.length; r++) { + + var dcCount = rsBlocks[r][0]; + var ecCount = rsBlocks[r][1] - dcCount; + + maxDcCount = Math.max(maxDcCount, dcCount); + maxEcCount = Math.max(maxEcCount, ecCount); + + dcdata[r] = new Array(dcCount); + + for (var i = 0; i < dcdata[r].length; i++) { + dcdata[r][i] = 0xff & buffer.buffer[i + offset]; + } + offset += dcCount; + + var rsPoly = QRUtil.getErrorCorrectPolynomial(ecCount); + var rawPoly = new QRPolynomial(dcdata[r], rsPoly.getLength() - 1); + + var modPoly = rawPoly.mod(rsPoly); + ecdata[r] = new Array(rsPoly.getLength() - 1); + for (var i = 0; i < ecdata[r].length; i++) { + var modIndex = i + modPoly.getLength() - ecdata[r].length; + ecdata[r][i] = (modIndex >= 0) ? modPoly.get(modIndex) : 0; + } + } + + var data = new Array(this.totalDataCount); + var index = 0; + + for (var i = 0; i < maxDcCount; i++) { + for (var r = 0; r < rsBlocks.length; r++) { + if (i < dcdata[r].length) { + data[index++] = dcdata[r][i]; + } + } + } + + for (var i = 0; i < maxEcCount; i++) { + for (var r = 0; r < rsBlocks.length; r++) { + if (i < ecdata[r].length) { + data[index++] = ecdata[r][i]; + } + } + } + + return data; + + }, + /** + * 布置模块,构建最终信息 + * @param {} data + * @param {} maskPattern + * @return {} + */ + mapData: function(data, maskPattern) { + + var inc = -1; + var row = this.moduleCount - 1; + var bitIndex = 7; + var byteIndex = 0; + + for (var col = this.moduleCount - 1; col > 0; col -= 2) { + + if (col == 6) col--; + + while (true) { + + for (var c = 0; c < 2; c++) { + + if (this.modules[row][col - c] == null) { + + var dark = false; + + if (byteIndex < data.length) { + dark = (((data[byteIndex] >>> bitIndex) & 1) == 1); + } + + var mask = QRUtil.getMask(maskPattern, row, col - c); + + if (mask) { + dark = !dark; + } + + this.modules[row][col - c] = dark; + bitIndex--; + + if (bitIndex == -1) { + byteIndex++; + bitIndex = 7; + } + } + } + + row += inc; + + if (row < 0 || this.moduleCount <= row) { + row -= inc; + inc = -inc; + break; + } + } + } + } + + }; + /** + * 填充字段 + */ + QRCodeAlg.PAD0 = 0xEC; + QRCodeAlg.PAD1 = 0x11; + + + //--------------------------------------------------------------------- + // 纠错等级对应的编码 + //--------------------------------------------------------------------- + + var QRErrorCorrectLevel = [1, 0, 3, 2]; + + //--------------------------------------------------------------------- + // 掩膜版本 + //--------------------------------------------------------------------- + + var QRMaskPattern = { + PATTERN000: 0, + PATTERN001: 1, + PATTERN010: 2, + PATTERN011: 3, + PATTERN100: 4, + PATTERN101: 5, + PATTERN110: 6, + PATTERN111: 7 + }; + + //--------------------------------------------------------------------- + // 工具类 + //--------------------------------------------------------------------- + + var QRUtil = { + + /* + 每个版本矫正图形的位置 + */ + PATTERN_POSITION_TABLE: [ + [], + [6, 18], + [6, 22], + [6, 26], + [6, 30], + [6, 34], + [6, 22, 38], + [6, 24, 42], + [6, 26, 46], + [6, 28, 50], + [6, 30, 54], + [6, 32, 58], + [6, 34, 62], + [6, 26, 46, 66], + [6, 26, 48, 70], + [6, 26, 50, 74], + [6, 30, 54, 78], + [6, 30, 56, 82], + [6, 30, 58, 86], + [6, 34, 62, 90], + [6, 28, 50, 72, 94], + [6, 26, 50, 74, 98], + [6, 30, 54, 78, 102], + [6, 28, 54, 80, 106], + [6, 32, 58, 84, 110], + [6, 30, 58, 86, 114], + [6, 34, 62, 90, 118], + [6, 26, 50, 74, 98, 122], + [6, 30, 54, 78, 102, 126], + [6, 26, 52, 78, 104, 130], + [6, 30, 56, 82, 108, 134], + [6, 34, 60, 86, 112, 138], + [6, 30, 58, 86, 114, 142], + [6, 34, 62, 90, 118, 146], + [6, 30, 54, 78, 102, 126, 150], + [6, 24, 50, 76, 102, 128, 154], + [6, 28, 54, 80, 106, 132, 158], + [6, 32, 58, 84, 110, 136, 162], + [6, 26, 54, 82, 110, 138, 166], + [6, 30, 58, 86, 114, 142, 170] + ], + + G15: (1 << 10) | (1 << 8) | (1 << 5) | (1 << 4) | (1 << 2) | (1 << 1) | (1 << 0), + G18: (1 << 12) | (1 << 11) | (1 << 10) | (1 << 9) | (1 << 8) | (1 << 5) | (1 << 2) | (1 << 0), + G15_MASK: (1 << 14) | (1 << 12) | (1 << 10) | (1 << 4) | (1 << 1), + + /* + BCH编码格式信息 + */ + getBCHTypeInfo: function(data) { + var d = data << 10; + while (QRUtil.getBCHDigit(d) - QRUtil.getBCHDigit(QRUtil.G15) >= 0) { + d ^= (QRUtil.G15 << (QRUtil.getBCHDigit(d) - QRUtil.getBCHDigit(QRUtil.G15))); + } + return ((data << 10) | d) ^ QRUtil.G15_MASK; + }, + /* + BCH编码版本信息 + */ + getBCHTypeNumber: function(data) { + var d = data << 12; + while (QRUtil.getBCHDigit(d) - QRUtil.getBCHDigit(QRUtil.G18) >= 0) { + d ^= (QRUtil.G18 << (QRUtil.getBCHDigit(d) - QRUtil.getBCHDigit(QRUtil.G18))); + } + return (data << 12) | d; + }, + /* + 获取BCH位信息 + */ + getBCHDigit: function(data) { + + var digit = 0; + + while (data != 0) { + digit++; + data >>>= 1; + } + + return digit; + }, + /* + 获取版本对应的矫正图形位置 + */ + getPatternPosition: function(typeNumber) { + return QRUtil.PATTERN_POSITION_TABLE[typeNumber - 1]; + }, + /* + 掩膜算法 + */ + getMask: function(maskPattern, i, j) { + + switch (maskPattern) { + + case QRMaskPattern.PATTERN000: + return (i + j) % 2 == 0; + case QRMaskPattern.PATTERN001: + return i % 2 == 0; + case QRMaskPattern.PATTERN010: + return j % 3 == 0; + case QRMaskPattern.PATTERN011: + return (i + j) % 3 == 0; + case QRMaskPattern.PATTERN100: + return (Math.floor(i / 2) + Math.floor(j / 3)) % 2 == 0; + case QRMaskPattern.PATTERN101: + return (i * j) % 2 + (i * j) % 3 == 0; + case QRMaskPattern.PATTERN110: + return ((i * j) % 2 + (i * j) % 3) % 2 == 0; + case QRMaskPattern.PATTERN111: + return ((i * j) % 3 + (i + j) % 2) % 2 == 0; + + default: + throw new Error("bad maskPattern:" + maskPattern); + } + }, + /* + 获取RS的纠错多项式 + */ + getErrorCorrectPolynomial: function(errorCorrectLength) { + + var a = new QRPolynomial([1], 0); + + for (var i = 0; i < errorCorrectLength; i++) { + a = a.multiply(new QRPolynomial([1, QRMath.gexp(i)], 0)); + } + + return a; + }, + /* + 获取评价 + */ + getLostPoint: function(qrCode) { + + var moduleCount = qrCode.getModuleCount(), + lostPoint = 0, + darkCount = 0; + + for (var row = 0; row < moduleCount; row++) { + + var sameCount = 0; + var head = qrCode.modules[row][0]; + + for (var col = 0; col < moduleCount; col++) { + + var current = qrCode.modules[row][col]; + + //level 3 评价 + if (col < moduleCount - 6) { + if (current && !qrCode.modules[row][col + 1] && qrCode.modules[row][col + 2] && qrCode.modules[row][col + 3] && qrCode.modules[row][col + 4] && !qrCode.modules[row][col + 5] && qrCode.modules[row][col + 6]) { + if (col < moduleCount - 10) { + if (qrCode.modules[row][col + 7] && qrCode.modules[row][col + 8] && qrCode.modules[row][col + 9] && qrCode.modules[row][col + 10]) { + lostPoint += 40; + } + } else if (col > 3) { + if (qrCode.modules[row][col - 1] && qrCode.modules[row][col - 2] && qrCode.modules[row][col - 3] && qrCode.modules[row][col - 4]) { + lostPoint += 40; + } + } + + } + } + + //level 2 评价 + if ((row < moduleCount - 1) && (col < moduleCount - 1)) { + var count = 0; + if (current) count++; + if (qrCode.modules[row + 1][col]) count++; + if (qrCode.modules[row][col + 1]) count++; + if (qrCode.modules[row + 1][col + 1]) count++; + if (count == 0 || count == 4) { + lostPoint += 3; + } + } + + //level 1 评价 + if (head ^ current) { + sameCount++; + } else { + head = current; + if (sameCount >= 5) { + lostPoint += (3 + sameCount - 5); + } + sameCount = 1; + } + + //level 4 评价 + if (current) { + darkCount++; + } + + } + } + + for (var col = 0; col < moduleCount; col++) { + + var sameCount = 0; + var head = qrCode.modules[0][col]; + + for (var row = 0; row < moduleCount; row++) { + + var current = qrCode.modules[row][col]; + + //level 3 评价 + if (row < moduleCount - 6) { + if (current && !qrCode.modules[row + 1][col] && qrCode.modules[row + 2][col] && qrCode.modules[row + 3][col] && qrCode.modules[row + 4][col] && !qrCode.modules[row + 5][col] && qrCode.modules[row + 6][col]) { + if (row < moduleCount - 10) { + if (qrCode.modules[row + 7][col] && qrCode.modules[row + 8][col] && qrCode.modules[row + 9][col] && qrCode.modules[row + 10][col]) { + lostPoint += 40; + } + } else if (row > 3) { + if (qrCode.modules[row - 1][col] && qrCode.modules[row - 2][col] && qrCode.modules[row - 3][col] && qrCode.modules[row - 4][col]) { + lostPoint += 40; + } + } + } + } + + //level 1 评价 + if (head ^ current) { + sameCount++; + } else { + head = current; + if (sameCount >= 5) { + lostPoint += (3 + sameCount - 5); + } + sameCount = 1; + } + + } + } + + // LEVEL4 + + var ratio = Math.abs(100 * darkCount / moduleCount / moduleCount - 50) / 5; + lostPoint += ratio * 10; + + return lostPoint; + } + + }; + + + //--------------------------------------------------------------------- + // QRMath使用的数学工具 + //--------------------------------------------------------------------- + + var QRMath = { + /* + 将n转化为a^m + */ + glog: function(n) { + + if (n < 1) { + throw new Error("glog(" + n + ")"); + } + + return QRMath.LOG_TABLE[n]; + }, + /* + 将a^m转化为n + */ + gexp: function(n) { + + while (n < 0) { + n += 255; + } + + while (n >= 256) { + n -= 255; + } + + return QRMath.EXP_TABLE[n]; + }, + + EXP_TABLE: new Array(256), + + LOG_TABLE: new Array(256) + + }; + + for (var i = 0; i < 8; i++) { + QRMath.EXP_TABLE[i] = 1 << i; + } + for (var i = 8; i < 256; i++) { + QRMath.EXP_TABLE[i] = QRMath.EXP_TABLE[i - 4] ^ QRMath.EXP_TABLE[i - 5] ^ QRMath.EXP_TABLE[i - 6] ^ QRMath.EXP_TABLE[i - 8]; + } + for (var i = 0; i < 255; i++) { + QRMath.LOG_TABLE[QRMath.EXP_TABLE[i]] = i; + } + + //--------------------------------------------------------------------- + // QRPolynomial 多项式 + //--------------------------------------------------------------------- + /** + * 多项式类 + * @param {Array} num 系数 + * @param {num} shift a^shift + */ + function QRPolynomial(num, shift) { + + if (num.length == undefined) { + throw new Error(num.length + "/" + shift); + } + + var offset = 0; + + while (offset < num.length && num[offset] == 0) { + offset++; + } + + this.num = new Array(num.length - offset + shift); + for (var i = 0; i < num.length - offset; i++) { + this.num[i] = num[i + offset]; + } + } + + QRPolynomial.prototype = { + + get: function(index) { + return this.num[index]; + }, + + getLength: function() { + return this.num.length; + }, + /** + * 多项式乘法 + * @param {QRPolynomial} e 被乘多项式 + * @return {[type]} [description] + */ + multiply: function(e) { + + var num = new Array(this.getLength() + e.getLength() - 1); + + for (var i = 0; i < this.getLength(); i++) { + for (var j = 0; j < e.getLength(); j++) { + num[i + j] ^= QRMath.gexp(QRMath.glog(this.get(i)) + QRMath.glog(e.get(j))); + } + } + + return new QRPolynomial(num, 0); + }, + /** + * 多项式模运算 + * @param {QRPolynomial} e 模多项式 + * @return {} + */ + mod: function(e) { + var tl = this.getLength(), + el = e.getLength(); + if (tl - el < 0) { + return this; + } + var num = new Array(tl); + for (var i = 0; i < tl; i++) { + num[i] = this.get(i); + } + while (num.length >= el) { + var ratio = QRMath.glog(num[0]) - QRMath.glog(e.get(0)); + + for (var i = 0; i < e.getLength(); i++) { + num[i] ^= QRMath.gexp(QRMath.glog(e.get(i)) + ratio); + } + while (num[0] == 0) { + num.shift(); + } + } + return new QRPolynomial(num, 0); + } + }; + + //--------------------------------------------------------------------- + // RS_BLOCK_TABLE + //--------------------------------------------------------------------- + /* + 二维码各个版本信息[块数, 每块中的数据块数, 每块中的信息块数] + */ + var RS_BLOCK_TABLE = [ + + // L + // M + // Q + // H + + // 1 + [1, 26, 19], + [1, 26, 16], + [1, 26, 13], + [1, 26, 9], + + // 2 + [1, 44, 34], + [1, 44, 28], + [1, 44, 22], + [1, 44, 16], + + // 3 + [1, 70, 55], + [1, 70, 44], + [2, 35, 17], + [2, 35, 13], + + // 4 + [1, 100, 80], + [2, 50, 32], + [2, 50, 24], + [4, 25, 9], + + // 5 + [1, 134, 108], + [2, 67, 43], + [2, 33, 15, 2, 34, 16], + [2, 33, 11, 2, 34, 12], + + // 6 + [2, 86, 68], + [4, 43, 27], + [4, 43, 19], + [4, 43, 15], + + // 7 + [2, 98, 78], + [4, 49, 31], + [2, 32, 14, 4, 33, 15], + [4, 39, 13, 1, 40, 14], + + // 8 + [2, 121, 97], + [2, 60, 38, 2, 61, 39], + [4, 40, 18, 2, 41, 19], + [4, 40, 14, 2, 41, 15], + + // 9 + [2, 146, 116], + [3, 58, 36, 2, 59, 37], + [4, 36, 16, 4, 37, 17], + [4, 36, 12, 4, 37, 13], + + // 10 + [2, 86, 68, 2, 87, 69], + [4, 69, 43, 1, 70, 44], + [6, 43, 19, 2, 44, 20], + [6, 43, 15, 2, 44, 16], + + // 11 + [4, 101, 81], + [1, 80, 50, 4, 81, 51], + [4, 50, 22, 4, 51, 23], + [3, 36, 12, 8, 37, 13], + + // 12 + [2, 116, 92, 2, 117, 93], + [6, 58, 36, 2, 59, 37], + [4, 46, 20, 6, 47, 21], + [7, 42, 14, 4, 43, 15], + + // 13 + [4, 133, 107], + [8, 59, 37, 1, 60, 38], + [8, 44, 20, 4, 45, 21], + [12, 33, 11, 4, 34, 12], + + // 14 + [3, 145, 115, 1, 146, 116], + [4, 64, 40, 5, 65, 41], + [11, 36, 16, 5, 37, 17], + [11, 36, 12, 5, 37, 13], + + // 15 + [5, 109, 87, 1, 110, 88], + [5, 65, 41, 5, 66, 42], + [5, 54, 24, 7, 55, 25], + [11, 36, 12], + + // 16 + [5, 122, 98, 1, 123, 99], + [7, 73, 45, 3, 74, 46], + [15, 43, 19, 2, 44, 20], + [3, 45, 15, 13, 46, 16], + + // 17 + [1, 135, 107, 5, 136, 108], + [10, 74, 46, 1, 75, 47], + [1, 50, 22, 15, 51, 23], + [2, 42, 14, 17, 43, 15], + + // 18 + [5, 150, 120, 1, 151, 121], + [9, 69, 43, 4, 70, 44], + [17, 50, 22, 1, 51, 23], + [2, 42, 14, 19, 43, 15], + + // 19 + [3, 141, 113, 4, 142, 114], + [3, 70, 44, 11, 71, 45], + [17, 47, 21, 4, 48, 22], + [9, 39, 13, 16, 40, 14], + + // 20 + [3, 135, 107, 5, 136, 108], + [3, 67, 41, 13, 68, 42], + [15, 54, 24, 5, 55, 25], + [15, 43, 15, 10, 44, 16], + + // 21 + [4, 144, 116, 4, 145, 117], + [17, 68, 42], + [17, 50, 22, 6, 51, 23], + [19, 46, 16, 6, 47, 17], + + // 22 + [2, 139, 111, 7, 140, 112], + [17, 74, 46], + [7, 54, 24, 16, 55, 25], + [34, 37, 13], + + // 23 + [4, 151, 121, 5, 152, 122], + [4, 75, 47, 14, 76, 48], + [11, 54, 24, 14, 55, 25], + [16, 45, 15, 14, 46, 16], + + // 24 + [6, 147, 117, 4, 148, 118], + [6, 73, 45, 14, 74, 46], + [11, 54, 24, 16, 55, 25], + [30, 46, 16, 2, 47, 17], + + // 25 + [8, 132, 106, 4, 133, 107], + [8, 75, 47, 13, 76, 48], + [7, 54, 24, 22, 55, 25], + [22, 45, 15, 13, 46, 16], + + // 26 + [10, 142, 114, 2, 143, 115], + [19, 74, 46, 4, 75, 47], + [28, 50, 22, 6, 51, 23], + [33, 46, 16, 4, 47, 17], + + // 27 + [8, 152, 122, 4, 153, 123], + [22, 73, 45, 3, 74, 46], + [8, 53, 23, 26, 54, 24], + [12, 45, 15, 28, 46, 16], + + // 28 + [3, 147, 117, 10, 148, 118], + [3, 73, 45, 23, 74, 46], + [4, 54, 24, 31, 55, 25], + [11, 45, 15, 31, 46, 16], + + // 29 + [7, 146, 116, 7, 147, 117], + [21, 73, 45, 7, 74, 46], + [1, 53, 23, 37, 54, 24], + [19, 45, 15, 26, 46, 16], + + // 30 + [5, 145, 115, 10, 146, 116], + [19, 75, 47, 10, 76, 48], + [15, 54, 24, 25, 55, 25], + [23, 45, 15, 25, 46, 16], + + // 31 + [13, 145, 115, 3, 146, 116], + [2, 74, 46, 29, 75, 47], + [42, 54, 24, 1, 55, 25], + [23, 45, 15, 28, 46, 16], + + // 32 + [17, 145, 115], + [10, 74, 46, 23, 75, 47], + [10, 54, 24, 35, 55, 25], + [19, 45, 15, 35, 46, 16], + + // 33 + [17, 145, 115, 1, 146, 116], + [14, 74, 46, 21, 75, 47], + [29, 54, 24, 19, 55, 25], + [11, 45, 15, 46, 46, 16], + + // 34 + [13, 145, 115, 6, 146, 116], + [14, 74, 46, 23, 75, 47], + [44, 54, 24, 7, 55, 25], + [59, 46, 16, 1, 47, 17], + + // 35 + [12, 151, 121, 7, 152, 122], + [12, 75, 47, 26, 76, 48], + [39, 54, 24, 14, 55, 25], + [22, 45, 15, 41, 46, 16], + + // 36 + [6, 151, 121, 14, 152, 122], + [6, 75, 47, 34, 76, 48], + [46, 54, 24, 10, 55, 25], + [2, 45, 15, 64, 46, 16], + + // 37 + [17, 152, 122, 4, 153, 123], + [29, 74, 46, 14, 75, 47], + [49, 54, 24, 10, 55, 25], + [24, 45, 15, 46, 46, 16], + + // 38 + [4, 152, 122, 18, 153, 123], + [13, 74, 46, 32, 75, 47], + [48, 54, 24, 14, 55, 25], + [42, 45, 15, 32, 46, 16], + + // 39 + [20, 147, 117, 4, 148, 118], + [40, 75, 47, 7, 76, 48], + [43, 54, 24, 22, 55, 25], + [10, 45, 15, 67, 46, 16], + + // 40 + [19, 148, 118, 6, 149, 119], + [18, 75, 47, 31, 76, 48], + [34, 54, 24, 34, 55, 25], + [20, 45, 15, 61, 46, 16] + ]; + + /** + * 根据数据获取对应版本 + * @return {[type]} [description] + */ + QRCodeAlg.prototype.getRightType = function() { + for (var typeNumber = 1; typeNumber < 41; typeNumber++) { + var rsBlock = RS_BLOCK_TABLE[(typeNumber - 1) * 4 + this.errorCorrectLevel]; + if (rsBlock == undefined) { + throw new Error("bad rs block @ typeNumber:" + typeNumber + "/errorCorrectLevel:" + this.errorCorrectLevel); + } + var length = rsBlock.length / 3; + var totalDataCount = 0; + for (var i = 0; i < length; i++) { + var count = rsBlock[i * 3 + 0]; + var dataCount = rsBlock[i * 3 + 2]; + totalDataCount += dataCount * count; + } + + var lengthBytes = typeNumber > 9 ? 2 : 1; + if (this.utf8bytes.length + lengthBytes < totalDataCount || typeNumber == 40) { + this.typeNumber = typeNumber; + this.rsBlock = rsBlock; + this.totalDataCount = totalDataCount; + break; + } + } + }; + + //--------------------------------------------------------------------- + // QRBitBuffer + //--------------------------------------------------------------------- + + function QRBitBuffer() { + this.buffer = new Array(); + this.length = 0; + } + + QRBitBuffer.prototype = { + + get: function(index) { + var bufIndex = Math.floor(index / 8); + return ((this.buffer[bufIndex] >>> (7 - index % 8)) & 1); + }, + + put: function(num, length) { + for (var i = 0; i < length; i++) { + this.putBit(((num >>> (length - i - 1)) & 1)); + } + }, + + putBit: function(bit) { + + var bufIndex = Math.floor(this.length / 8); + if (this.buffer.length <= bufIndex) { + this.buffer.push(0); + } + + if (bit) { + this.buffer[bufIndex] |= (0x80 >>> (this.length % 8)); + } + + this.length++; + } + }; + /** + * 获取单个字符的utf8编码 + * unicode BMP平面约65535个字符 + * @param {num} code + * return {array} + */ + function unicodeFormat8(code) { + // 1 byte + if (code < 128) { + return [code]; + // 2 bytes + } else if (code < 2048) { + c0 = 192 + (code >> 6); + c1 = 128 + (code & 63); + return [c0, c1]; + // 3 bytes + } else { + c0 = 224 + (code >> 12); + c1 = 128 + (code >> 6 & 63); + c2 = 128 + (code & 63); + return [c0, c1, c2]; + } + } + + /** + * 获取字符串的utf8编码字节串 + * @param {string} string + * @return {array} + */ + function getUTF8Bytes(string) { + var utf8codes = []; + for (var i = 0; i < string.length; i++) { + var code = string.charCodeAt(i); + var utf8 = unicodeFormat8(code); + for (var j = 0; j < utf8.length; j++) { + utf8codes.push(utf8[j]); + } + } + return utf8codes; + } + + /** + * 二维码算法实现 + * @param {string} data 要编码的信息字符串 + * @param {num} errorCorrectLevel 纠错等级 + */ + function QRCodeAlg(data, errorCorrectLevel) { + this.typeNumber = -1; //版本 + this.errorCorrectLevel = errorCorrectLevel; + this.modules = null; //二维矩阵,存放最终结果 + this.moduleCount = 0; //矩阵大小 + this.dataCache = null; //数据缓存 + this.rsBlocks = null; //版本数据信息 + this.totalDataCount = -1; //可使用的数据量 + this.data = data; + this.utf8bytes = getUTF8Bytes(data); + this.make(); + } + + QRCodeAlg.prototype = { + constructor: QRCodeAlg, + /** + * 获取二维码矩阵大小 + * @return {num} 矩阵大小 + */ + getModuleCount: function() { + return this.moduleCount; + }, + /** + * 编码 + */ + make: function() { + this.getRightType(); + this.dataCache = this.createData(); + this.createQrcode(); + }, + /** + * 设置二位矩阵功能图形 + * @param {bool} test 表示是否在寻找最好掩膜阶段 + * @param {num} maskPattern 掩膜的版本 + */ + makeImpl: function(maskPattern) { + + this.moduleCount = this.typeNumber * 4 + 17; + this.modules = new Array(this.moduleCount); + + for (var row = 0; row < this.moduleCount; row++) { + + this.modules[row] = new Array(this.moduleCount); + + } + this.setupPositionProbePattern(0, 0); + this.setupPositionProbePattern(this.moduleCount - 7, 0); + this.setupPositionProbePattern(0, this.moduleCount - 7); + this.setupPositionAdjustPattern(); + this.setupTimingPattern(); + this.setupTypeInfo(true, maskPattern); + + if (this.typeNumber >= 7) { + this.setupTypeNumber(true); + } + this.mapData(this.dataCache, maskPattern); + }, + /** + * 设置二维码的位置探测图形 + * @param {num} row 探测图形的中心横坐标 + * @param {num} col 探测图形的中心纵坐标 + */ + setupPositionProbePattern: function(row, col) { + + for (var r = -1; r <= 7; r++) { + + if (row + r <= -1 || this.moduleCount <= row + r) continue; + + for (var c = -1; c <= 7; c++) { + + if (col + c <= -1 || this.moduleCount <= col + c) continue; + + if ((0 <= r && r <= 6 && (c == 0 || c == 6)) || (0 <= c && c <= 6 && (r == 0 || r == 6)) || (2 <= r && r <= 4 && 2 <= c && c <= 4)) { + this.modules[row + r][col + c] = true; + } else { + this.modules[row + r][col + c] = false; + } + } + } + }, + /** + * 创建二维码 + * @return {[type]} [description] + */ + createQrcode: function() { + + var minLostPoint = 0; + var pattern = 0; + var bestModules = null; + + for (var i = 0; i < 8; i++) { + + this.makeImpl(i); + + var lostPoint = QRUtil.getLostPoint(this); + if (i == 0 || minLostPoint > lostPoint) { + minLostPoint = lostPoint; + pattern = i; + bestModules = this.modules; + } + } + this.modules = bestModules; + this.setupTypeInfo(false, pattern); + + if (this.typeNumber >= 7) { + this.setupTypeNumber(false); + } + + }, + /** + * 设置定位图形 + * @return {[type]} [description] + */ + setupTimingPattern: function() { + + for (var r = 8; r < this.moduleCount - 8; r++) { + if (this.modules[r][6] != null) { + continue; + } + this.modules[r][6] = (r % 2 == 0); + + if (this.modules[6][r] != null) { + continue; + } + this.modules[6][r] = (r % 2 == 0); + } + }, + /** + * 设置矫正图形 + * @return {[type]} [description] + */ + setupPositionAdjustPattern: function() { + + var pos = QRUtil.getPatternPosition(this.typeNumber); + + for (var i = 0; i < pos.length; i++) { + + for (var j = 0; j < pos.length; j++) { + + var row = pos[i]; + var col = pos[j]; + + if (this.modules[row][col] != null) { + continue; + } + + for (var r = -2; r <= 2; r++) { + + for (var c = -2; c <= 2; c++) { + + if (r == -2 || r == 2 || c == -2 || c == 2 || (r == 0 && c == 0)) { + this.modules[row + r][col + c] = true; + } else { + this.modules[row + r][col + c] = false; + } + } + } + } + } + }, + /** + * 设置版本信息(7以上版本才有) + * @param {bool} test 是否处于判断最佳掩膜阶段 + * @return {[type]} [description] + */ + setupTypeNumber: function(test) { + + var bits = QRUtil.getBCHTypeNumber(this.typeNumber); + + for (var i = 0; i < 18; i++) { + var mod = (!test && ((bits >> i) & 1) == 1); + this.modules[Math.floor(i / 3)][i % 3 + this.moduleCount - 8 - 3] = mod; + this.modules[i % 3 + this.moduleCount - 8 - 3][Math.floor(i / 3)] = mod; + } + }, + /** + * 设置格式信息(纠错等级和掩膜版本) + * @param {bool} test + * @param {num} maskPattern 掩膜版本 + * @return {} + */ + setupTypeInfo: function(test, maskPattern) { + + var data = (QRErrorCorrectLevel[this.errorCorrectLevel] << 3) | maskPattern; + var bits = QRUtil.getBCHTypeInfo(data); + + // vertical + for (var i = 0; i < 15; i++) { + + var mod = (!test && ((bits >> i) & 1) == 1); + + if (i < 6) { + this.modules[i][8] = mod; + } else if (i < 8) { + this.modules[i + 1][8] = mod; + } else { + this.modules[this.moduleCount - 15 + i][8] = mod; + } + + // horizontal + var mod = (!test && ((bits >> i) & 1) == 1); + + if (i < 8) { + this.modules[8][this.moduleCount - i - 1] = mod; + } else if (i < 9) { + this.modules[8][15 - i - 1 + 1] = mod; + } else { + this.modules[8][15 - i - 1] = mod; + } + } + + // fixed module + this.modules[this.moduleCount - 8][8] = (!test); + + }, + /** + * 数据编码 + * @return {[type]} [description] + */ + createData: function() { + var buffer = new QRBitBuffer(); + var lengthBits = this.typeNumber > 9 ? 16 : 8; + buffer.put(4, 4); //添加模式 + buffer.put(this.utf8bytes.length, lengthBits); + for (var i = 0, l = this.utf8bytes.length; i < l; i++) { + buffer.put(this.utf8bytes[i], 8); + } + if (buffer.length + 4 <= this.totalDataCount * 8) { + buffer.put(0, 4); + } + + // padding + while (buffer.length % 8 != 0) { + buffer.putBit(false); + } + + // padding + while (true) { + + if (buffer.length >= this.totalDataCount * 8) { + break; + } + buffer.put(QRCodeAlg.PAD0, 8); + + if (buffer.length >= this.totalDataCount * 8) { + break; + } + buffer.put(QRCodeAlg.PAD1, 8); + } + return this.createBytes(buffer); + }, + /** + * 纠错码编码 + * @param {buffer} buffer 数据编码 + * @return {[type]} + */ + createBytes: function(buffer) { + + var offset = 0; + + var maxDcCount = 0; + var maxEcCount = 0; + + var length = this.rsBlock.length / 3; + + var rsBlocks = new Array(); + + for (var i = 0; i < length; i++) { + + var count = this.rsBlock[i * 3 + 0]; + var totalCount = this.rsBlock[i * 3 + 1]; + var dataCount = this.rsBlock[i * 3 + 2]; + + for (var j = 0; j < count; j++) { + rsBlocks.push([dataCount, totalCount]); + } + } + + var dcdata = new Array(rsBlocks.length); + var ecdata = new Array(rsBlocks.length); + + for (var r = 0; r < rsBlocks.length; r++) { + + var dcCount = rsBlocks[r][0]; + var ecCount = rsBlocks[r][1] - dcCount; + + maxDcCount = Math.max(maxDcCount, dcCount); + maxEcCount = Math.max(maxEcCount, ecCount); + + dcdata[r] = new Array(dcCount); + + for (var i = 0; i < dcdata[r].length; i++) { + dcdata[r][i] = 0xff & buffer.buffer[i + offset]; + } + offset += dcCount; + + var rsPoly = QRUtil.getErrorCorrectPolynomial(ecCount); + var rawPoly = new QRPolynomial(dcdata[r], rsPoly.getLength() - 1); + + var modPoly = rawPoly.mod(rsPoly); + ecdata[r] = new Array(rsPoly.getLength() - 1); + for (var i = 0; i < ecdata[r].length; i++) { + var modIndex = i + modPoly.getLength() - ecdata[r].length; + ecdata[r][i] = (modIndex >= 0) ? modPoly.get(modIndex) : 0; + } + } + + var data = new Array(this.totalDataCount); + var index = 0; + + for (var i = 0; i < maxDcCount; i++) { + for (var r = 0; r < rsBlocks.length; r++) { + if (i < dcdata[r].length) { + data[index++] = dcdata[r][i]; + } + } + } + + for (var i = 0; i < maxEcCount; i++) { + for (var r = 0; r < rsBlocks.length; r++) { + if (i < ecdata[r].length) { + data[index++] = ecdata[r][i]; + } + } + } + + return data; + + }, + /** + * 布置模块,构建最终信息 + * @param {} data + * @param {} maskPattern + * @return {} + */ + mapData: function(data, maskPattern) { + + var inc = -1; + var row = this.moduleCount - 1; + var bitIndex = 7; + var byteIndex = 0; + + for (var col = this.moduleCount - 1; col > 0; col -= 2) { + + if (col == 6) col--; + + while (true) { + + for (var c = 0; c < 2; c++) { + + if (this.modules[row][col - c] == null) { + + var dark = false; + + if (byteIndex < data.length) { + dark = (((data[byteIndex] >>> bitIndex) & 1) == 1); + } + + var mask = QRUtil.getMask(maskPattern, row, col - c); + + if (mask) { + dark = !dark; + } + + this.modules[row][col - c] = dark; + bitIndex--; + + if (bitIndex == -1) { + byteIndex++; + bitIndex = 7; + } + } + } + + row += inc; + + if (row < 0 || this.moduleCount <= row) { + row -= inc; + inc = -inc; + break; + } + } + } + } + + }; + /** + * 填充字段 + */ + QRCodeAlg.PAD0 = 0xEC; + QRCodeAlg.PAD1 = 0x11; + + + //--------------------------------------------------------------------- + // 纠错等级对应的编码 + //--------------------------------------------------------------------- + + var QRErrorCorrectLevel = [1, 0, 3, 2]; + + //--------------------------------------------------------------------- + // 掩膜版本 + //--------------------------------------------------------------------- + + var QRMaskPattern = { + PATTERN000: 0, + PATTERN001: 1, + PATTERN010: 2, + PATTERN011: 3, + PATTERN100: 4, + PATTERN101: 5, + PATTERN110: 6, + PATTERN111: 7 + }; + + //--------------------------------------------------------------------- + // 工具类 + //--------------------------------------------------------------------- + + var QRUtil = { + + /* + 每个版本矫正图形的位置 + */ + PATTERN_POSITION_TABLE: [ + [], + [6, 18], + [6, 22], + [6, 26], + [6, 30], + [6, 34], + [6, 22, 38], + [6, 24, 42], + [6, 26, 46], + [6, 28, 50], + [6, 30, 54], + [6, 32, 58], + [6, 34, 62], + [6, 26, 46, 66], + [6, 26, 48, 70], + [6, 26, 50, 74], + [6, 30, 54, 78], + [6, 30, 56, 82], + [6, 30, 58, 86], + [6, 34, 62, 90], + [6, 28, 50, 72, 94], + [6, 26, 50, 74, 98], + [6, 30, 54, 78, 102], + [6, 28, 54, 80, 106], + [6, 32, 58, 84, 110], + [6, 30, 58, 86, 114], + [6, 34, 62, 90, 118], + [6, 26, 50, 74, 98, 122], + [6, 30, 54, 78, 102, 126], + [6, 26, 52, 78, 104, 130], + [6, 30, 56, 82, 108, 134], + [6, 34, 60, 86, 112, 138], + [6, 30, 58, 86, 114, 142], + [6, 34, 62, 90, 118, 146], + [6, 30, 54, 78, 102, 126, 150], + [6, 24, 50, 76, 102, 128, 154], + [6, 28, 54, 80, 106, 132, 158], + [6, 32, 58, 84, 110, 136, 162], + [6, 26, 54, 82, 110, 138, 166], + [6, 30, 58, 86, 114, 142, 170] + ], + + G15: (1 << 10) | (1 << 8) | (1 << 5) | (1 << 4) | (1 << 2) | (1 << 1) | (1 << 0), + G18: (1 << 12) | (1 << 11) | (1 << 10) | (1 << 9) | (1 << 8) | (1 << 5) | (1 << 2) | (1 << 0), + G15_MASK: (1 << 14) | (1 << 12) | (1 << 10) | (1 << 4) | (1 << 1), + + /* + BCH编码格式信息 + */ + getBCHTypeInfo: function(data) { + var d = data << 10; + while (QRUtil.getBCHDigit(d) - QRUtil.getBCHDigit(QRUtil.G15) >= 0) { + d ^= (QRUtil.G15 << (QRUtil.getBCHDigit(d) - QRUtil.getBCHDigit(QRUtil.G15))); + } + return ((data << 10) | d) ^ QRUtil.G15_MASK; + }, + /* + BCH编码版本信息 + */ + getBCHTypeNumber: function(data) { + var d = data << 12; + while (QRUtil.getBCHDigit(d) - QRUtil.getBCHDigit(QRUtil.G18) >= 0) { + d ^= (QRUtil.G18 << (QRUtil.getBCHDigit(d) - QRUtil.getBCHDigit(QRUtil.G18))); + } + return (data << 12) | d; + }, + /* + 获取BCH位信息 + */ + getBCHDigit: function(data) { + + var digit = 0; + + while (data != 0) { + digit++; + data >>>= 1; + } + + return digit; + }, + /* + 获取版本对应的矫正图形位置 + */ + getPatternPosition: function(typeNumber) { + return QRUtil.PATTERN_POSITION_TABLE[typeNumber - 1]; + }, + /* + 掩膜算法 + */ + getMask: function(maskPattern, i, j) { + + switch (maskPattern) { + + case QRMaskPattern.PATTERN000: + return (i + j) % 2 == 0; + case QRMaskPattern.PATTERN001: + return i % 2 == 0; + case QRMaskPattern.PATTERN010: + return j % 3 == 0; + case QRMaskPattern.PATTERN011: + return (i + j) % 3 == 0; + case QRMaskPattern.PATTERN100: + return (Math.floor(i / 2) + Math.floor(j / 3)) % 2 == 0; + case QRMaskPattern.PATTERN101: + return (i * j) % 2 + (i * j) % 3 == 0; + case QRMaskPattern.PATTERN110: + return ((i * j) % 2 + (i * j) % 3) % 2 == 0; + case QRMaskPattern.PATTERN111: + return ((i * j) % 3 + (i + j) % 2) % 2 == 0; + + default: + throw new Error("bad maskPattern:" + maskPattern); + } + }, + /* + 获取RS的纠错多项式 + */ + getErrorCorrectPolynomial: function(errorCorrectLength) { + + var a = new QRPolynomial([1], 0); + + for (var i = 0; i < errorCorrectLength; i++) { + a = a.multiply(new QRPolynomial([1, QRMath.gexp(i)], 0)); + } + + return a; + }, + /* + 获取评价 + */ + getLostPoint: function(qrCode) { + + var moduleCount = qrCode.getModuleCount(), + lostPoint = 0, + darkCount = 0; + + for (var row = 0; row < moduleCount; row++) { + + var sameCount = 0; + var head = qrCode.modules[row][0]; + + for (var col = 0; col < moduleCount; col++) { + + var current = qrCode.modules[row][col]; + + //level 3 评价 + if (col < moduleCount - 6) { + if (current && !qrCode.modules[row][col + 1] && qrCode.modules[row][col + 2] && qrCode.modules[row][col + 3] && qrCode.modules[row][col + 4] && !qrCode.modules[row][col + 5] && qrCode.modules[row][col + 6]) { + if (col < moduleCount - 10) { + if (qrCode.modules[row][col + 7] && qrCode.modules[row][col + 8] && qrCode.modules[row][col + 9] && qrCode.modules[row][col + 10]) { + lostPoint += 40; + } + } else if (col > 3) { + if (qrCode.modules[row][col - 1] && qrCode.modules[row][col - 2] && qrCode.modules[row][col - 3] && qrCode.modules[row][col - 4]) { + lostPoint += 40; + } + } + + } + } + + //level 2 评价 + if ((row < moduleCount - 1) && (col < moduleCount - 1)) { + var count = 0; + if (current) count++; + if (qrCode.modules[row + 1][col]) count++; + if (qrCode.modules[row][col + 1]) count++; + if (qrCode.modules[row + 1][col + 1]) count++; + if (count == 0 || count == 4) { + lostPoint += 3; + } + } + + //level 1 评价 + if (head ^ current) { + sameCount++; + } else { + head = current; + if (sameCount >= 5) { + lostPoint += (3 + sameCount - 5); + } + sameCount = 1; + } + + //level 4 评价 + if (current) { + darkCount++; + } + + } + } + + for (var col = 0; col < moduleCount; col++) { + + var sameCount = 0; + var head = qrCode.modules[0][col]; + + for (var row = 0; row < moduleCount; row++) { + + var current = qrCode.modules[row][col]; + + //level 3 评价 + if (row < moduleCount - 6) { + if (current && !qrCode.modules[row + 1][col] && qrCode.modules[row + 2][col] && qrCode.modules[row + 3][col] && qrCode.modules[row + 4][col] && !qrCode.modules[row + 5][col] && qrCode.modules[row + 6][col]) { + if (row < moduleCount - 10) { + if (qrCode.modules[row + 7][col] && qrCode.modules[row + 8][col] && qrCode.modules[row + 9][col] && qrCode.modules[row + 10][col]) { + lostPoint += 40; + } + } else if (row > 3) { + if (qrCode.modules[row - 1][col] && qrCode.modules[row - 2][col] && qrCode.modules[row - 3][col] && qrCode.modules[row - 4][col]) { + lostPoint += 40; + } + } + } + } + + //level 1 评价 + if (head ^ current) { + sameCount++; + } else { + head = current; + if (sameCount >= 5) { + lostPoint += (3 + sameCount - 5); + } + sameCount = 1; + } + + } + } + + // LEVEL4 + + var ratio = Math.abs(100 * darkCount / moduleCount / moduleCount - 50) / 5; + lostPoint += ratio * 10; + + return lostPoint; + } + + }; + + + //--------------------------------------------------------------------- + // QRMath使用的数学工具 + //--------------------------------------------------------------------- + + var QRMath = { + /* + 将n转化为a^m + */ + glog: function(n) { + + if (n < 1) { + throw new Error("glog(" + n + ")"); + } + + return QRMath.LOG_TABLE[n]; + }, + /* + 将a^m转化为n + */ + gexp: function(n) { + + while (n < 0) { + n += 255; + } + + while (n >= 256) { + n -= 255; + } + + return QRMath.EXP_TABLE[n]; + }, + + EXP_TABLE: new Array(256), + + LOG_TABLE: new Array(256) + + }; + + for (var i = 0; i < 8; i++) { + QRMath.EXP_TABLE[i] = 1 << i; + } + for (var i = 8; i < 256; i++) { + QRMath.EXP_TABLE[i] = QRMath.EXP_TABLE[i - 4] ^ QRMath.EXP_TABLE[i - 5] ^ QRMath.EXP_TABLE[i - 6] ^ QRMath.EXP_TABLE[i - 8]; + } + for (var i = 0; i < 255; i++) { + QRMath.LOG_TABLE[QRMath.EXP_TABLE[i]] = i; + } + + //--------------------------------------------------------------------- + // QRPolynomial 多项式 + //--------------------------------------------------------------------- + /** + * 多项式类 + * @param {Array} num 系数 + * @param {num} shift a^shift + */ + function QRPolynomial(num, shift) { + + if (num.length == undefined) { + throw new Error(num.length + "/" + shift); + } + + var offset = 0; + + while (offset < num.length && num[offset] == 0) { + offset++; + } + + this.num = new Array(num.length - offset + shift); + for (var i = 0; i < num.length - offset; i++) { + this.num[i] = num[i + offset]; + } + } + + QRPolynomial.prototype = { + + get: function(index) { + return this.num[index]; + }, + + getLength: function() { + return this.num.length; + }, + /** + * 多项式乘法 + * @param {QRPolynomial} e 被乘多项式 + * @return {[type]} [description] + */ + multiply: function(e) { + + var num = new Array(this.getLength() + e.getLength() - 1); + + for (var i = 0; i < this.getLength(); i++) { + for (var j = 0; j < e.getLength(); j++) { + num[i + j] ^= QRMath.gexp(QRMath.glog(this.get(i)) + QRMath.glog(e.get(j))); + } + } + + return new QRPolynomial(num, 0); + }, + /** + * 多项式模运算 + * @param {QRPolynomial} e 模多项式 + * @return {} + */ + mod: function(e) { + var tl = this.getLength(), + el = e.getLength(); + if (tl - el < 0) { + return this; + } + var num = new Array(tl); + for (var i = 0; i < tl; i++) { + num[i] = this.get(i); + } + while (num.length >= el) { + var ratio = QRMath.glog(num[0]) - QRMath.glog(e.get(0)); + + for (var i = 0; i < e.getLength(); i++) { + num[i] ^= QRMath.gexp(QRMath.glog(e.get(i)) + ratio); + } + while (num[0] == 0) { + num.shift(); + } + } + return new QRPolynomial(num, 0); + } + }; + + //--------------------------------------------------------------------- + // RS_BLOCK_TABLE + //--------------------------------------------------------------------- + /* + 二维码各个版本信息[块数, 每块中的数据块数, 每块中的信息块数] + */ + RS_BLOCK_TABLE = [ + + // L + // M + // Q + // H + + // 1 + [1, 26, 19], + [1, 26, 16], + [1, 26, 13], + [1, 26, 9], + + // 2 + [1, 44, 34], + [1, 44, 28], + [1, 44, 22], + [1, 44, 16], + + // 3 + [1, 70, 55], + [1, 70, 44], + [2, 35, 17], + [2, 35, 13], + + // 4 + [1, 100, 80], + [2, 50, 32], + [2, 50, 24], + [4, 25, 9], + + // 5 + [1, 134, 108], + [2, 67, 43], + [2, 33, 15, 2, 34, 16], + [2, 33, 11, 2, 34, 12], + + // 6 + [2, 86, 68], + [4, 43, 27], + [4, 43, 19], + [4, 43, 15], + + // 7 + [2, 98, 78], + [4, 49, 31], + [2, 32, 14, 4, 33, 15], + [4, 39, 13, 1, 40, 14], + + // 8 + [2, 121, 97], + [2, 60, 38, 2, 61, 39], + [4, 40, 18, 2, 41, 19], + [4, 40, 14, 2, 41, 15], + + // 9 + [2, 146, 116], + [3, 58, 36, 2, 59, 37], + [4, 36, 16, 4, 37, 17], + [4, 36, 12, 4, 37, 13], + + // 10 + [2, 86, 68, 2, 87, 69], + [4, 69, 43, 1, 70, 44], + [6, 43, 19, 2, 44, 20], + [6, 43, 15, 2, 44, 16], + + // 11 + [4, 101, 81], + [1, 80, 50, 4, 81, 51], + [4, 50, 22, 4, 51, 23], + [3, 36, 12, 8, 37, 13], + + // 12 + [2, 116, 92, 2, 117, 93], + [6, 58, 36, 2, 59, 37], + [4, 46, 20, 6, 47, 21], + [7, 42, 14, 4, 43, 15], + + // 13 + [4, 133, 107], + [8, 59, 37, 1, 60, 38], + [8, 44, 20, 4, 45, 21], + [12, 33, 11, 4, 34, 12], + + // 14 + [3, 145, 115, 1, 146, 116], + [4, 64, 40, 5, 65, 41], + [11, 36, 16, 5, 37, 17], + [11, 36, 12, 5, 37, 13], + + // 15 + [5, 109, 87, 1, 110, 88], + [5, 65, 41, 5, 66, 42], + [5, 54, 24, 7, 55, 25], + [11, 36, 12], + + // 16 + [5, 122, 98, 1, 123, 99], + [7, 73, 45, 3, 74, 46], + [15, 43, 19, 2, 44, 20], + [3, 45, 15, 13, 46, 16], + + // 17 + [1, 135, 107, 5, 136, 108], + [10, 74, 46, 1, 75, 47], + [1, 50, 22, 15, 51, 23], + [2, 42, 14, 17, 43, 15], + + // 18 + [5, 150, 120, 1, 151, 121], + [9, 69, 43, 4, 70, 44], + [17, 50, 22, 1, 51, 23], + [2, 42, 14, 19, 43, 15], + + // 19 + [3, 141, 113, 4, 142, 114], + [3, 70, 44, 11, 71, 45], + [17, 47, 21, 4, 48, 22], + [9, 39, 13, 16, 40, 14], + + // 20 + [3, 135, 107, 5, 136, 108], + [3, 67, 41, 13, 68, 42], + [15, 54, 24, 5, 55, 25], + [15, 43, 15, 10, 44, 16], + + // 21 + [4, 144, 116, 4, 145, 117], + [17, 68, 42], + [17, 50, 22, 6, 51, 23], + [19, 46, 16, 6, 47, 17], + + // 22 + [2, 139, 111, 7, 140, 112], + [17, 74, 46], + [7, 54, 24, 16, 55, 25], + [34, 37, 13], + + // 23 + [4, 151, 121, 5, 152, 122], + [4, 75, 47, 14, 76, 48], + [11, 54, 24, 14, 55, 25], + [16, 45, 15, 14, 46, 16], + + // 24 + [6, 147, 117, 4, 148, 118], + [6, 73, 45, 14, 74, 46], + [11, 54, 24, 16, 55, 25], + [30, 46, 16, 2, 47, 17], + + // 25 + [8, 132, 106, 4, 133, 107], + [8, 75, 47, 13, 76, 48], + [7, 54, 24, 22, 55, 25], + [22, 45, 15, 13, 46, 16], + + // 26 + [10, 142, 114, 2, 143, 115], + [19, 74, 46, 4, 75, 47], + [28, 50, 22, 6, 51, 23], + [33, 46, 16, 4, 47, 17], + + // 27 + [8, 152, 122, 4, 153, 123], + [22, 73, 45, 3, 74, 46], + [8, 53, 23, 26, 54, 24], + [12, 45, 15, 28, 46, 16], + + // 28 + [3, 147, 117, 10, 148, 118], + [3, 73, 45, 23, 74, 46], + [4, 54, 24, 31, 55, 25], + [11, 45, 15, 31, 46, 16], + + // 29 + [7, 146, 116, 7, 147, 117], + [21, 73, 45, 7, 74, 46], + [1, 53, 23, 37, 54, 24], + [19, 45, 15, 26, 46, 16], + + // 30 + [5, 145, 115, 10, 146, 116], + [19, 75, 47, 10, 76, 48], + [15, 54, 24, 25, 55, 25], + [23, 45, 15, 25, 46, 16], + + // 31 + [13, 145, 115, 3, 146, 116], + [2, 74, 46, 29, 75, 47], + [42, 54, 24, 1, 55, 25], + [23, 45, 15, 28, 46, 16], + + // 32 + [17, 145, 115], + [10, 74, 46, 23, 75, 47], + [10, 54, 24, 35, 55, 25], + [19, 45, 15, 35, 46, 16], + + // 33 + [17, 145, 115, 1, 146, 116], + [14, 74, 46, 21, 75, 47], + [29, 54, 24, 19, 55, 25], + [11, 45, 15, 46, 46, 16], + + // 34 + [13, 145, 115, 6, 146, 116], + [14, 74, 46, 23, 75, 47], + [44, 54, 24, 7, 55, 25], + [59, 46, 16, 1, 47, 17], + + // 35 + [12, 151, 121, 7, 152, 122], + [12, 75, 47, 26, 76, 48], + [39, 54, 24, 14, 55, 25], + [22, 45, 15, 41, 46, 16], + + // 36 + [6, 151, 121, 14, 152, 122], + [6, 75, 47, 34, 76, 48], + [46, 54, 24, 10, 55, 25], + [2, 45, 15, 64, 46, 16], + + // 37 + [17, 152, 122, 4, 153, 123], + [29, 74, 46, 14, 75, 47], + [49, 54, 24, 10, 55, 25], + [24, 45, 15, 46, 46, 16], + + // 38 + [4, 152, 122, 18, 153, 123], + [13, 74, 46, 32, 75, 47], + [48, 54, 24, 14, 55, 25], + [42, 45, 15, 32, 46, 16], + + // 39 + [20, 147, 117, 4, 148, 118], + [40, 75, 47, 7, 76, 48], + [43, 54, 24, 22, 55, 25], + [10, 45, 15, 67, 46, 16], + + // 40 + [19, 148, 118, 6, 149, 119], + [18, 75, 47, 31, 76, 48], + [34, 54, 24, 34, 55, 25], + [20, 45, 15, 61, 46, 16] + ]; + + /** + * 根据数据获取对应版本 + * @return {[type]} [description] + */ + QRCodeAlg.prototype.getRightType = function() { + for (var typeNumber = 1; typeNumber < 41; typeNumber++) { + var rsBlock = RS_BLOCK_TABLE[(typeNumber - 1) * 4 + this.errorCorrectLevel]; + if (rsBlock == undefined) { + throw new Error('bad rs block @ typeNumber:' + typeNumber + '/errorCorrectLevel:' + this.errorCorrectLevel); + } + var length = rsBlock.length / 3; + var totalDataCount = 0; + for (var i = 0; i < length; i++) { + var count = rsBlock[i * 3 + 0]; + var dataCount = rsBlock[i * 3 + 2]; + totalDataCount += dataCount * count; + } + + var lengthBytes = typeNumber > 9 ? 2 : 1; + if (this.utf8bytes.length + lengthBytes < totalDataCount || typeNumber == 40) { + this.typeNumber = typeNumber; + this.rsBlock = rsBlock; + this.totalDataCount = totalDataCount; + break; + } + } + }; + + // --------------------------------------------------------------------- + // QRBitBuffer + // --------------------------------------------------------------------- + + function QRBitBuffer() { + this.buffer = new Array(); + this.length = 0; + } + + QRBitBuffer.prototype = { + get: function(index) { + var bufIndex = Math.floor(index / 8); + return ((this.buffer[bufIndex] >>> (7 - index % 8)) & 1); + }, + + put: function(num, length) { + for (var i = 0; i < length; i++) { + this.putBit(((num >>> (length - i - 1)) & 1)); + } + }, + + putBit: function(bit) { + + var bufIndex = Math.floor(this.length / 8); + if (this.buffer.length <= bufIndex) { + this.buffer.push(0); + } + + if (bit) { + this.buffer[bufIndex] |= (0x80 >>> (this.length % 8)); + } + + this.length++; + } + }; + + $.fn.qrcode = function QRCodePlugin(option) { + return this.each(function() { + $(this).append(new QRCode(option)); + }); + }; + + module.exports = UI.qrcode = QRCode; + + +/***/ }, +/* 27 */ +/***/ function(module, exports, __webpack_require__) { + + 'use strict'; + + var $ = __webpack_require__(1); + var UI = __webpack_require__(2); + + /** + * @via https://github.com/uikit/uikit/blob/master/src/js/addons/sticky.js + * @license https://github.com/uikit/uikit/blob/master/LICENSE.md + */ + + // Sticky Class + var Sticky = function(element, options) { + var _this = this; + + this.options = $.extend({}, Sticky.DEFAULTS, options); + this.$element = $(element); + this.sticked = null; + this.inited = null; + this.$holder = undefined; + + this.$window = $(window). + on('scroll.sticky.amui', + UI.utils.debounce($.proxy(this.checkPosition, this), 10)). + on('resize.sticky.amui orientationchange.sticky.amui', + UI.utils.debounce(function() { + _this.reset(true, function() { + _this.checkPosition(); + }); + }, 50)). + on('load.sticky.amui', $.proxy(this.checkPosition, this)); + + // the `.offset()` is diff between jQuery & Zepto.js + // jQuery: return `top` and `left` + // Zepto.js: return `top`, `left`, `width`, `height` + this.offset = this.$element.offset(); + + this.init(); + }; + + Sticky.DEFAULTS = { + top: 0, + bottom: 0, + animation: '', + className: { + sticky: 'am-sticky', + resetting: 'am-sticky-resetting', + stickyBtm: 'am-sticky-bottom', + animationRev: 'am-animation-reverse' + } + }; + + Sticky.prototype.init = function() { + var result = this.check(); + + if (!result) { + return false; + } + + var $element = this.$element; + var $elementMargin = ''; + + $.each($element.css( + ['marginTop', 'marginRight', 'marginBottom', 'marginLeft']), + function(name, value) { + return $elementMargin += ' ' + value; + }); + + var $holder = $('
        ').css({ + height: $element.css('position') !== 'absolute' ? + $element.outerHeight() : '', + float: $element.css('float') != 'none' ? $element.css('float') : '', + margin: $elementMargin + }); + + this.$holder = $element.css('margin', 0).wrap($holder).parent(); + this.inited = 1; + + return true; + }; + + Sticky.prototype.reset = function(force, cb) { + var options = this.options; + var $element = this.$element; + var animation = (options.animation) ? + ' am-animation-' + options.animation : ''; + var complete = function() { + $element.css({position: '', top: '', width: '', left: '', margin: 0}); + $element.removeClass([ + animation, + options.className.animationRev, + options.className.sticky, + options.className.resetting + ].join(' ')); + + this.animating = false; + this.sticked = false; + this.offset = $element.offset(); + cb && cb(); + }.bind(this); + + $element.addClass(options.className.resetting); + + if (!force && options.animation && UI.support.animation) { + + this.animating = true; + + $element.removeClass(animation).one(UI.support.animation.end, function() { + complete(); + }).width(); // force redraw + + $element.addClass(animation + ' ' + options.className.animationRev); + } else { + complete(); + } + }; + + Sticky.prototype.check = function() { + if (!this.$element.is(':visible')) { + return false; + } + + var media = this.options.media; + + if (media) { + switch (typeof(media)) { + case 'number': + if (window.innerWidth < media) { + return false; + } + break; + + case 'string': + if (window.matchMedia && !window.matchMedia(media).matches) { + return false; + } + break; + } + } + + return true; + }; + + Sticky.prototype.checkPosition = function() { + if (!this.inited) { + var initialized = this.init(); + if (!initialized) { + return; + } + } + + var options = this.options; + var scrollTop = this.$window.scrollTop(); + var offsetTop = options.top; + var offsetBottom = options.bottom; + var $element = this.$element; + var animation = (options.animation) ? + ' am-animation-' + options.animation : ''; + var className = [options.className.sticky, animation].join(' '); + + if (typeof offsetBottom == 'function') { + offsetBottom = offsetBottom(this.$element); + } + + var checkResult = (scrollTop > this.$holder.offset().top); + + if (!this.sticked && checkResult) { + $element.addClass(className); + } else if (this.sticked && !checkResult) { + this.reset(); + } + + this.$holder.css({ + height: $element.is(':visible') && $element.css('position') !== 'absolute' ? + $element.outerHeight() : '' + }); + + if (checkResult) { + $element.css({ + top: offsetTop, + left: this.$holder.offset().left, + width: this.$holder.width() + }); + + /* + if (offsetBottom) { + // (底部边距 + 元素高度 > 窗口高度) 时定位到底部 + if ((offsetBottom + this.offset.height > $(window).height()) && + (scrollTop + $(window).height() >= scrollHeight - offsetBottom)) { + $element.addClass(options.className.stickyBtm). + css({top: $(window).height() - offsetBottom - this.offset.height}); + } else { + $element.removeClass(options.className.stickyBtm).css({top: offsetTop}); + } + } + */ + } + + this.sticked = checkResult; + }; + + // Sticky Plugin + UI.plugin('sticky', Sticky); + + // Init code + $(window).on('load', function() { + $('[data-am-sticky]').sticky(); + }); + + module.exports = Sticky; + + +/***/ }, +/* 28 */ +/***/ function(module, exports, __webpack_require__) { + + 'use strict'; + + var $ = __webpack_require__(1); + var UI = __webpack_require__(2); + var Hammer = __webpack_require__(3); + var supportTransition = UI.support.transition; + var animation = UI.support.animation; + + /** + * @via https://github.com/twbs/bootstrap/blob/master/js/tab.js + * @copyright 2011-2014 Twitter, Inc. + * @license MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE) + */ + + /** + * Tabs + * @param {HTMLElement} element + * @param {Object} options + * @constructor + */ + var Tabs = function(element, options) { + this.$element = $(element); + this.options = $.extend({}, Tabs.DEFAULTS, options || {}); + this.transitioning = this.activeIndex = null; + + this.refresh(); + this.init(); + }; + + Tabs.DEFAULTS = { + selector: { + nav: '> .am-tabs-nav', + content: '> .am-tabs-bd', + panel: '> .am-tab-panel' + }, + activeClass: 'am-active' + }; + + Tabs.prototype.refresh = function() { + var selector = this.options.selector; + + this.$tabNav = this.$element.find(selector.nav); + this.$navs = this.$tabNav.find('a'); + + this.$content = this.$element.find(selector.content); + this.$tabPanels = this.$content.find(selector.panel); + + var $active = this.$tabNav.find('> .' + this.options.activeClass); + + // Activate the first Tab when no active Tab or multiple active Tabs + if ($active.length !== 1) { + this.open(0); + } else { + this.activeIndex = this.$navs.index($active.children('a')); + } + }; + + Tabs.prototype.init = function() { + var _this = this; + var options = this.options; + + this.$element.on('click.tabs.amui', options.selector.nav + ' a', function(e) { + e.preventDefault(); + _this.open($(this)); + }); + + // TODO: nested Tabs touch events + if (!options.noSwipe) { + if (!this.$content.length) { + return this; + } + + var hammer = new Hammer.Manager(this.$content[0]); + var swipe = new Hammer.Swipe({ + direction: Hammer.DIRECTION_HORIZONTAL + // threshold: 40 + }); + + hammer.add(swipe); + + hammer.on('swipeleft', UI.utils.debounce(function(e) { + e.preventDefault(); + _this.goTo('next'); + }, 100)); + + hammer.on('swiperight', UI.utils.debounce(function(e) { + e.preventDefault(); + _this.goTo('prev'); + }, 100)); + + this._hammer = hammer; + } + }; + + /** + * Open $nav tab + * @param {jQuery|HTMLElement|Number} $nav + * @returns {Tabs} + */ + Tabs.prototype.open = function($nav) { + var activeClass = this.options.activeClass; + var activeIndex = typeof $nav === 'number' ? $nav : this.$navs.index($($nav)); + + $nav = typeof $nav === 'number' ? this.$navs.eq(activeIndex) : $($nav); + + if (!$nav || + !$nav.length || + this.transitioning || + $nav.parent('li').hasClass(activeClass)) { + return; + } + + var $tabNav = this.$tabNav; + var href = $nav.attr('href'); + var regexHash = /^#.+$/; + var $target = regexHash.test(href) && this.$content.find(href) || + this.$tabPanels.eq(activeIndex); + var previous = $tabNav.find('.' + activeClass + ' a')[0]; + var e = $.Event('open.tabs.amui', { + relatedTarget: previous + }); + + $nav.trigger(e); + + if (e.isDefaultPrevented()) { + return; + } + + // activate Tab nav + this.activate($nav.closest('li'), $tabNav); + + // activate Tab content + this.activate($target, this.$content, function() { + $nav.trigger({ + type: 'opened.tabs.amui', + relatedTarget: previous + }); + }); + + this.activeIndex = activeIndex; + }; + + Tabs.prototype.activate = function($element, $container, callback) { + this.transitioning = true; + + var activeClass = this.options.activeClass; + var $active = $container.find('> .' + activeClass); + var transition = callback && supportTransition && !!$active.length; + + $active.removeClass(activeClass + ' am-in'); + + $element.addClass(activeClass); + + if (transition) { + $element.redraw(); // reflow for transition + $element.addClass('am-in'); + } else { + $element.removeClass('am-fade'); + } + + var complete = $.proxy(function complete() { + callback && callback(); + this.transitioning = false; + }, this); + + + + transition && !this.$content.is('.am-tabs-bd-ofv') ? + $active.one(supportTransition.end, complete) : complete(); + }; + + /** + * Go to `next` or `prev` tab + * @param {String} direction - `next` or `prev` + */ + Tabs.prototype.goTo = function(direction) { + var navIndex = this.activeIndex; + var isNext = direction === 'next'; + var spring = isNext ? 'am-animation-right-spring' : + 'am-animation-left-spring'; + + if ((isNext && navIndex + 1 >= this.$navs.length) || // last one + (!isNext && navIndex === 0)) { // first one + var $panel = this.$tabPanels.eq(navIndex); + + animation && $panel.addClass(spring).on(animation.end, function() { + $panel.removeClass(spring); + }); + } else { + this.open(isNext ? navIndex + 1 : navIndex - 1); + } + }; + + Tabs.prototype.destroy = function() { + this.$element.off('.tabs.amui'); + Hammer.off(this.$content[0], 'swipeleft swiperight'); + this._hammer && this._hammer.destroy(); + $.removeData(this.$element, 'amui.tabs'); + }; + + // Plugin + function Plugin(option) { + var args = Array.prototype.slice.call(arguments, 1); + var methodReturn; + + this.each(function() { + var $this = $(this); + var $tabs = $this.is('.am-tabs') && $this || $this.closest('.am-tabs'); + var data = $tabs.data('amui.tabs'); + var options = $.extend({}, UI.utils.parseOptions($this.data('amTabs')), + $.isPlainObject(option) && option); + + if (!data) { + $tabs.data('amui.tabs', (data = new Tabs($tabs[0], options))); + } + + if (typeof option === 'string') { + if (option === 'open' && $this.is('.am-tabs-nav a')) { + data.open($this); + } else { + methodReturn = typeof data[option] === 'function' ? + data[option].apply(data, args) : data[option]; + } + } + }); + + return methodReturn === undefined ? this : methodReturn; + } + + $.fn.tabs = Plugin; + + // Init code + UI.ready(function(context) { + $('[data-am-tabs]', context).tabs(); + }); + + $(document).on('click.tabs.amui.data-api', '[data-am-tabs] .am-tabs-nav a', + function(e) { + e.preventDefault(); + Plugin.call($(this), 'open'); + }); + + module.exports = UI.tabs = Tabs; + + // TODO: 1. Ajax 支持 + // 2. touch 事件处理逻辑优化 + + +/***/ }, +/* 29 */ +/***/ function(module, exports, __webpack_require__) { + + 'use strict'; + + var $ = __webpack_require__(1); + var UI = __webpack_require__(2); + + /** + * UCheck + * @via https://github.com/designmodo/Flat-UI/blob/8ef98df23ba7f5033e596a9bd05b53b535a9fe99/js/radiocheck.js + * @license CC BY 3.0 & MIT + * @param {HTMLElement} element + * @param {object} options + * @constructor + */ + + var UCheck = function(element, options) { + this.options = $.extend({}, UCheck.DEFAULTS, options); + // this.options = $.extend({}, UCheck.DEFAULTS, this.$element.data(), options); + this.$element = $(element); + this.init(); + }; + + UCheck.DEFAULTS = { + checkboxClass: 'am-ucheck-checkbox', + radioClass: 'am-ucheck-radio', + checkboxTpl: '' + + '', + radioTpl: '' + + '' + }; + + UCheck.prototype.init = function() { + var $element = this.$element; + var element = $element[0]; + var options = this.options; + + if (element.type === 'checkbox') { + $element.addClass(options.checkboxClass) + .after(options.checkboxTpl); + } else if (element.type === 'radio') { + $element.addClass(options.radioClass) + .after(options.radioTpl); + } + }; + + UCheck.prototype.check = function() { + this.$element + .prop('checked', true) + .trigger('change.ucheck.amui') + .trigger('checked.ucheck.amui'); + }, + + UCheck.prototype.uncheck = function() { + this.$element + .prop('checked', false) + // trigger `change` event for form validation, etc. + // @see https://forum.jquery.com/topic/should-chk-prop-checked-true-trigger-change-event + .trigger('change') + .trigger('unchecked.ucheck.amui'); + }, + + UCheck.prototype.toggle = function() { + this.$element. + prop('checked', function(i, value) { + return !value; + }) + .trigger('change.ucheck.amui') + .trigger('toggled.ucheck.amui'); + }, + + UCheck.prototype.disable = function() { + this.$element + .prop('disabled', true) + .trigger('change.ucheck.amui') + .trigger('disabled.ucheck.amui'); + }, + + UCheck.prototype.enable = function() { + this.$element.prop('disabled', false); + this.$element.trigger('change.ucheck.amui').trigger('enabled.ucheck.amui'); + }, + + UCheck.prototype.destroy = function() { + this.$element + .removeData('amui.ucheck') + .removeClass(this.options.checkboxClass + ' ' + this.options.radioClass) + .next('.am-ucheck-icons') + .remove() + .end() + .trigger('destroyed.ucheck.amui'); + }; + + UI.plugin('uCheck', UCheck, { + after: function() { + // Adding 'am-nohover' class for touch devices + if (UI.support.touch) { + this.parent().hover(function() { + $(this).addClass('am-nohover'); + }, function() { + $(this).removeClass('am-nohover'); + }); + } + } + }); + + UI.ready(function(context) { + $('[data-am-ucheck]', context).uCheck(); + }); + + module.exports = UCheck; + + // TODO: 与表单验证结合使用的情况 + + +/***/ }, +/* 30 */ +/***/ function(module, exports, __webpack_require__) { + + 'use strict'; + + var $ = __webpack_require__(1); + var UI = __webpack_require__(2); + + var Validator = function(element, options) { + this.options = $.extend({}, Validator.DEFAULTS, options); + this.options.patterns = $.extend({}, Validator.patterns, + this.options.patterns); + var locales = this.options.locales; + !Validator.validationMessages[locales] && (this.options.locales = 'zh_CN'); + this.$element = $(element); + this.init(); + }; + + Validator.DEFAULTS = { + debug: false, + locales: 'zh_CN', + H5validation: false, + H5inputType: ['email', 'url', 'number'], + patterns: {}, + patternClassPrefix: 'js-pattern-', + activeClass: 'am-active', + inValidClass: 'am-field-error', + validClass: 'am-field-valid', + + validateOnSubmit: true, + alwaysRevalidate: false, + // Elements to validate with allValid (only validating visible elements) + // :input: selects all input, textarea, select and button elements. + // @since 2.5: move `:visible` to `ignore` option (became to `:hidden`) + allFields: ':input:not(:submit, :button, :disabled, .am-novalidate)', + + // ignored elements + // @since 2.5 + ignore: ':hidden:not([data-am-selected], .am-validate)', + + // Custom events + customEvents: 'validate', + + // Keyboard events + keyboardFields: ':input:not(:submit, :button, :disabled, .am-novalidate)', + keyboardEvents: 'focusout, change', // keyup, focusin + + // bind `keyup` event to active field + activeKeyup: false, + textareaMaxlenthKeyup: true, + + // Mouse events + pointerFields: 'input[type="range"]:not(:disabled, .am-novalidate), ' + + 'input[type="radio"]:not(:disabled, .am-novalidate), ' + + 'input[type="checkbox"]:not(:disabled, .am-novalidate), ' + + 'select:not(:disabled, .am-novalidate), ' + + 'option:not(:disabled, .am-novalidate)', + pointerEvents: 'click', + + onValid: function(validity) { + }, + + onInValid: function(validity) { + }, + + markValid: function(validity) { + // this is Validator instance + var options = this.options; + var $field = $(validity.field); + var $parent = $field.closest('.am-form-group'); + + $field.addClass(options.validClass).removeClass(options.inValidClass); + $parent.addClass('am-form-success').removeClass('am-form-error'); + options.onValid.call(this, validity); + }, + + markInValid: function(validity) { + var options = this.options; + var $field = $(validity.field); + var $parent = $field.closest('.am-form-group'); + + $field.addClass(options.inValidClass + ' ' + options.activeClass). + removeClass(options.validClass); + $parent.addClass('am-form-error').removeClass('am-form-success'); + options.onInValid.call(this, validity); + }, + + validate: function(validity) { + // return validity; + }, + + submit: null + }; + + Validator.VERSION = '2.7.2'; + + /* jshint -W101 */ + Validator.patterns = { + email: /^((([a-zA-Z]|\d|[!#\$%&'\*\+\-\/=\?\^_`{\|}~]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])+(\.([a-zA-Z]|\d|[!#\$%&'\*\+\-\/=\?\^_`{\|}~]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])+)*)|((\x22)((((\x20|\x09)*(\x0d\x0a))?(\x20|\x09)+)?(([\x01-\x08\x0b\x0c\x0e-\x1f\x7f]|\x21|[\x23-\x5b]|[\x5d-\x7e]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(\\([\x01-\x09\x0b\x0c\x0d-\x7f]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF]))))*(((\x20|\x09)*(\x0d\x0a))?(\x20|\x09)+)?(\x22)))@((([a-zA-Z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(([a-zA-Z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])([a-zA-Z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])*([a-zA-Z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])))\.)+(([a-zA-Z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(([a-zA-Z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])([a-zA-Z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])*([a-zA-Z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])))\.?$/, + + url: /^(https?|ftp):\/\/(((([a-zA-Z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(%[\da-f]{2})|[!\$&'\(\)\*\+,;=]|:)*@)?(((\d|[1-9]\d|1\d\d|2[0-4]\d|25[0-5])\.(\d|[1-9]\d|1\d\d|2[0-4]\d|25[0-5])\.(\d|[1-9]\d|1\d\d|2[0-4]\d|25[0-5])\.(\d|[1-9]\d|1\d\d|2[0-4]\d|25[0-5]))|((([a-zA-Z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(([a-zA-Z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])([a-zA-Z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])*([a-zA-Z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])))\.)+(([a-zA-Z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(([a-zA-Z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])([a-zA-Z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])*([a-zA-Z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])))\.?)(:\d*)?)(\/((([a-zA-Z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(%[\da-f]{2})|[!\$&'\(\)\*\+,;=]|:|@)+(\/(([a-zA-Z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(%[\da-f]{2})|[!\$&'\(\)\*\+,;=]|:|@)*)*)?)?(\?((([a-zA-Z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(%[\da-f]{2})|[!\$&'\(\)\*\+,;=]|:|@)|[\uE000-\uF8FF]|\/|\?)*)?(\#((([a-zA-Z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(%[\da-f]{2})|[!\$&'\(\)\*\+,;=]|:|@)|\/|\?)*)?$/, + + // Number, including positive, negative, and floating decimal + number: /^-?(?:\d+|\d{1,3}(?:,\d{3})+)?(?:\.\d+)?$/, + dateISO: /^\d{4}[\/\-]\d{1,2}[\/\-]\d{1,2}$/, + integer: /^-?\d+$/ + }; + /* jshint +W101 */ + + Validator.validationMessages = { + zh_CN: { + valueMissing: '请填写(选择)此字段', + customError: { + tooShort: '至少填写 %s 个字符', + checkedOverflow: '至多选择 %s 项', + checkedUnderflow: '至少选择 %s 项' + }, + patternMismatch: '请按照要求的格式填写', + rangeOverflow: '请填写小于等于 %s 的值', + rangeUnderflow: '请填写大于等于 %s 的值', + stepMismatch: '', + tooLong: '至多填写 %s 个字符', + typeMismatch: '请按照要求的类型填写' + } + }; + + Validator.ERROR_MAP = { + tooShort: 'minlength', + checkedOverflow: 'maxchecked', + checkedUnderflow: 'minchecked', + rangeOverflow: 'max', + rangeUnderflow: 'min', + tooLong: 'maxlength' + }; + + // TODO: 考虑表单元素不是 form 子元素的情形 + // TODO: change/click/focusout 同时触发时处理重复 + // TODO: 显示提示信息 + + Validator.prototype.init = function() { + var _this = this; + var $element = this.$element; + var options = this.options; + + // using H5 form validation if option set and supported + if (options.H5validation && UI.support.formValidation) { + return false; + } + + // disable HTML5 form validation + $element.attr('novalidate', 'novalidate'); + + function regexToPattern(regex) { + var pattern = regex.toString(); + return pattern.substring(1, pattern.length - 1); + } + + // add pattern to H5 input type + $.each(options.H5inputType, function(i, type) { + var $field = $element.find('input[type=' + type + ']'); + if (!$field.attr('pattern') && + !$field.is('[class*=' + options.patternClassPrefix + ']')) { + $field.attr('pattern', regexToPattern(options.patterns[type])); + } + }); + + // add pattern to .js-pattern-xx + $.each(options.patterns, function(key, value) { + var $field = $element.find('.' + options.patternClassPrefix + key); + !$field.attr('pattern') && $field.attr('pattern', regexToPattern(value)); + }); + + $element.on('submit.validator.amui', function(e) { + // user custom submit handler + if (typeof options.submit === 'function') { + return options.submit.call(_this, e); + } + + if (options.validateOnSubmit) { + var formValidity = _this.isFormValid(); + + // sync validate, return result + if ($.type(formValidity) === 'boolean') { + return formValidity; + } + + if ($element.data('amui.checked')) { + return true; + } else { + $.when(formValidity).then(function() { + // done, submit form + $element.data('amui.checked', true).submit(); + }, function() { + // fail + $element.data('amui.checked', false). + find('.' + options.inValidClass).eq(0).focus(); + }); + return false; + } + } + }); + + function bindEvents(fields, eventFlags, debounce) { + var events = eventFlags.split(','); + var validate = function(e) { + // console.log(e.type); + _this.validate(this); + }; + + if (debounce) { + validate = UI.utils.debounce(validate, debounce); + } + + $.each(events, function(i, event) { + $element.on(event + '.validator.amui', fields, validate); + }); + } + + bindEvents(':input', options.customEvents); + bindEvents(options.keyboardFields, options.keyboardEvents); + bindEvents(options.pointerFields, options.pointerEvents); + + if (options.textareaMaxlenthKeyup) { + bindEvents('textarea[maxlength]', 'keyup', 50); + } + + if (options.activeKeyup) { + bindEvents('.am-active', 'keyup', 50); + } + + /*if (options.errorMessage === 'tooltip') { + this.$tooltip = $('
        ', { + 'class': 'am-validator-message', + id: UI.utils.generateGUID('am-validator-message') + }); + + $(document.body).append(this.$tooltip); + }*/ + }; + + Validator.prototype.isValid = function(field) { + var $field = $(field); + var options = this.options; + // valid field not has been validated + if ($field.data('validity') === undefined || options.alwaysRevalidate) { + this.validate(field); + } + + return $field.data('validity') && $field.data('validity').valid; + }; + + Validator.prototype.validate = function(field) { + var _this = this; + var $element = this.$element; + var options = this.options; + var $field = $(field); + + // Validate equal, e.g. confirm password + var equalTo = $field.data('equalTo'); + if (equalTo) { + $field.attr('pattern', '^' + $element.find(equalTo).val() + '$'); + } + + var pattern = $field.attr('pattern') || false; + var re = new RegExp(pattern); + var $radioGroup = null; + var $checkboxGroup = null; + // if checkbox, return `:chcked` length + // NOTE: checkbox and radio should have name attribute + var value = ($field.is('[type=checkbox]')) ? + ($checkboxGroup = $element.find('input[name="' + field.name + '"]')). + filter(':checked').length : ($field.is('[type=radio]') ? + ($radioGroup = this.$element.find('input[name="' + field.name + '"]')). + filter(':checked').length > 0 : $field.val()); + + // if checkbox, valid the first input of checkbox group + $field = ($checkboxGroup && $checkboxGroup.length) ? + $checkboxGroup.first() : $field; + + var required = ($field.attr('required') !== undefined) && + ($field.attr('required') !== 'false'); + var maxLength = parseInt($field.attr('maxlength'), 10); + var minLength = parseInt($field.attr('minlength'), 10); + var min = Number($field.attr('min')); + var max = Number($field.attr('max')); + var validity = this.createValidity({field: $field[0], valid: true}); + + // Debug + if (options.debug && window.console) { + console.log('Validate: value -> [' + value + ', regex -> [' + re + + '], required -> ' + required); + console.log('Regex test: ' + re.test(value) + ', Pattern: ' + pattern); + } + + // check value length + if (!isNaN(maxLength) && value.length > maxLength) { + validity.valid = false; + validity.tooLong = true; + } + + if (!isNaN(minLength) && value.length < minLength) { + validity.valid = false; + validity.customError = 'tooShort'; + } + + // check minimum and maximum + // https://developer.mozilla.org/en-US/docs/Web/HTML/Element/Input + // TODO: 日期验证最小值和最大值 min/max + if (!isNaN(min) && Number(value) < min) { + validity.valid = false; + validity.rangeUnderflow = true; + } + + if (!isNaN(max) && Number(value) > max) { + validity.valid = false; + validity.rangeOverflow = true; + } + + // check required + if (required && !value) { + validity.valid = false; + validity.valueMissing = true; + } else if (($checkboxGroup || $field.is('select[multiple="multiple"]')) && + value) { + // check checkboxes / multiple select with `minchecked`/`maxchecked` attr + // var $multipleField = $checkboxGroup ? $checkboxGroup.first() : $field; + + // if is select[multiple="multiple"], return selected length + value = $checkboxGroup ? value : value.length; + + // at least checked + var minChecked = parseInt($field.attr('minchecked'), 10); + // at most checked + var maxChecked = parseInt($field.attr('maxchecked'), 10); + + if (!isNaN(minChecked) && value < minChecked) { + // console.log('At least [%d] items checked!', maxChecked); + validity.valid = false; + validity.customError = 'checkedUnderflow'; + } + + if (!isNaN(maxChecked) && value > maxChecked) { + // console.log('At most [%d] items checked!', maxChecked); + validity.valid = false; + validity.customError = 'checkedOverflow'; + } + } else if (pattern && !re.test(value) && value) { // check pattern + validity.valid = false; + validity.patternMismatch = true; + } + + var validateComplete = function(validity) { + this.markField(validity); + + var event = $.Event('validated.field.validator.amui'); + event.validity = validity; + + $field.trigger(event).data('validity', validity); + + // validate the radios/checkboxes with the same name + var $fields = $radioGroup || $checkboxGroup; + if ($fields) { + $fields.not($field).data('validity', validity).each(function() { + validity.field = this; + _this.markField(validity); + }); + } + + return validity; + }; + + // Run custom validate + // NOTE: async custom validate should return Deferred project + var customValidate; + (typeof options.validate === 'function') && + (customValidate = options.validate.call(this, validity)); + + // Deferred + if (customValidate) { + var dfd = new $.Deferred(); + $field.data('amui.dfdValidity', dfd.promise()); + return $.when(customValidate).always(function(validity) { + dfd[validity.valid ? 'resolve' : 'reject'](validity); + validateComplete.call(_this, validity); + }); + } + + validateComplete.call(this, validity); + }; + + Validator.prototype.markField = function(validity) { + var options = this.options; + var flag = 'mark' + (validity.valid ? '' : 'In') + 'Valid'; + options[flag] && options[flag].call(this, validity); + }; + + // check all fields in the form are valid + Validator.prototype.validateForm = function() { + var _this = this; + var $element = this.$element; + var options = this.options; + var $allFields = $element.find(options.allFields).not(options.ignore); + var radioNames = []; + var valid = true; + var formValidity = []; + var $inValidFields = $([]); + var promises = []; + // for async validate + var async = false; + + $element.trigger('validate.form.validator.amui'); + + // Filter radio with the same name and keep only one, + // since they will be checked as a group by validate() + var $filteredFields = $allFields.filter(function(index) { + var name; + if (this.tagName === 'INPUT' && this.type === 'radio') { + name = this.name; + if (radioNames[name] === true) { + return false; + } + radioNames[name] = true; + } + return true; + }); + + $filteredFields.each(function() { + var $this = $(this); + var fieldValid = _this.isValid(this); + var fieldValidity = $this.data('validity'); + + valid = !!fieldValid && valid; + formValidity.push(fieldValidity); + + if (!fieldValid) { + $inValidFields = $inValidFields.add($(this), $element); + } + + // async validity + var promise = $this.data('amui.dfdValidity'); + + if (promise) { + promises.push(promise); + async = true; + } else { + // convert sync validity to Promise + var dfd = new $.Deferred(); + promises.push(dfd.promise()); + dfd[fieldValid ? 'resolve' : 'reject'](fieldValidity); + } + }); + + // NOTE: If there are async validity, the valid may be not exact result. + var validity = { + valid: valid, + $invalidFields: $inValidFields, + validity: formValidity, + promises: promises, + async: async + }; + + $element.trigger('validated.form.validator.amui', validity); + + return validity; + }; + + Validator.prototype.isFormValid = function() { + var _this = this; + var formValidity = this.validateForm(); + var triggerValid = function(type) { + _this.$element.trigger(type + '.validator.amui'); + }; + + if (formValidity.async) { + var masterDfd = new $.Deferred(); + + $.when.apply(null, formValidity.promises).then(function() { + masterDfd.resolve(); + triggerValid('valid'); + }, function() { + masterDfd.reject(); + triggerValid('invalid'); + }); + + return masterDfd.promise(); + } else { + if (!formValidity.valid) { + var $first = formValidity.$invalidFields.first(); + + // Selected plugin support + // @since 2.5 + if ($first.is('[data-am-selected]')) { + $first = $first.next('.am-selected').find('.am-selected-btn'); + } + + $first.focus(); + triggerValid('invalid'); + return false; + } + + triggerValid('valid'); + return true; + } + }; + + // customErrors: + // 1. tooShort + // 2. checkedOverflow + // 3. checkedUnderflow + Validator.prototype.createValidity = function(validity) { + return $.extend({ + customError: validity.customError || false, + patternMismatch: validity.patternMismatch || false, + rangeOverflow: validity.rangeOverflow || false, // higher than maximum + rangeUnderflow: validity.rangeUnderflow || false, // lower than minimum + stepMismatch: validity.stepMismatch || false, + tooLong: validity.tooLong || false, + // value is not in the correct syntax + typeMismatch: validity.typeMismatch || false, + valid: validity.valid || true, + // Returns true if the element has no value but is a required field + valueMissing: validity.valueMissing || false + }, validity); + }; + + Validator.prototype.getValidationMessage = function(validity) { + var messages = Validator.validationMessages[this.options.locales]; + var error; + var message; + var placeholder = '%s'; + var $field = $(validity.field); + + if ($field.is('[type="checkbox"]') || $field.is('[type="radio"]')) { + $field = this.$element.find('[name=' + $field.attr('name') + ']').first(); + } + + // get error name + $.each(validity, function(key, val) { + // skip `field` and `valid` + if (key === 'field' || key === 'valid') { + return key; + } + + // Amaze UI custom error type + if (key === 'customError' && val) { + error = val; + messages = messages.customError; + return false; + } + + // W3C specs error type + if (val === true) { + error = key; + return false; + } + }); + + message = messages[error] || undefined; + + if (message && Validator.ERROR_MAP[error]) { + message = message.replace(placeholder, + $field.attr(Validator.ERROR_MAP[error]) || '规定的'); + } + + return message; + }; + + // remove valid mark + Validator.prototype.removeMark = function() { + this.$element + .find('.am-form-success, .am-form-error, .' + this.options.inValidClass + + ', .' + this.options.validClass) + .removeClass([ + 'am-form-success', + 'am-form-error', + this.options.inValidClass, + this.options.validClass + ].join(' ')); + }; + + // @since 2.5 + Validator.prototype.destroy = function() { + this.removeMark(); + + // Remove data + // - Validator.prototype.init -> $element.data('amui.checked') + // - Validator.prototype.validateForm + // - Validator.prototype.isValid + this.$element.removeData('amui.validator amui.checked') + .off('.validator.amui') + .find(this.options.allFields).removeData('validity amui.dfdValidity'); + }; + + UI.plugin('validator', Validator); + + // init code + UI.ready(function(context) { + $('[data-am-validator]', context).validator(); + }); + + module.exports = Validator; + + +/***/ }, +/* 31 */ +/***/ function(module, exports, __webpack_require__) { + + 'use strict'; + + var UI = __webpack_require__(2); + + var cookie = { + get: function(name) { + var cookieName = encodeURIComponent(name) + '='; + var cookieStart = document.cookie.indexOf(cookieName); + var cookieValue = null; + var cookieEnd; + + if (cookieStart > -1) { + cookieEnd = document.cookie.indexOf(';', cookieStart); + if (cookieEnd == -1) { + cookieEnd = document.cookie.length; + } + cookieValue = decodeURIComponent(document.cookie.substring(cookieStart + + cookieName.length, cookieEnd)); + } + + return cookieValue; + }, + + set: function(name, value, expires, path, domain, secure) { + var cookieText = encodeURIComponent(name) + '=' + + encodeURIComponent(value); + + if (expires instanceof Date) { + cookieText += '; expires=' + expires.toUTCString(); + } + + if (path) { + cookieText += '; path=' + path; + } + + if (domain) { + cookieText += '; domain=' + domain; + } + + if (secure) { + cookieText += '; secure'; + } + + document.cookie = cookieText; + }, + + unset: function(name, path, domain, secure) { + this.set(name, '', new Date(0), path, domain, secure); + } + }; + + UI.utils = UI.utils || {}; + + module.exports = UI.utils.cookie = cookie; + + +/***/ }, +/* 32 */ +/***/ function(module, exports, __webpack_require__) { + + 'use strict'; + + /** + * @see https://github.com/sindresorhus/screenfull.js + * @license MIT © Sindre Sorhus + */ + + var UI = __webpack_require__(2); + var screenfull = (function() { + var keyboardAllowed = typeof Element !== 'undefined' && + 'ALLOW_KEYBOARD_INPUT' in Element; + + var fn = (function() { + var val; + var valLength; + + var fnMap = [ + [ + 'requestFullscreen', + 'exitFullscreen', + 'fullscreenElement', + 'fullscreenEnabled', + 'fullscreenchange', + 'fullscreenerror' + ], + // new WebKit + [ + 'webkitRequestFullscreen', + 'webkitExitFullscreen', + 'webkitFullscreenElement', + 'webkitFullscreenEnabled', + 'webkitfullscreenchange', + 'webkitfullscreenerror' + + ], + // old WebKit (Safari 5.1) + [ + 'webkitRequestFullScreen', + 'webkitCancelFullScreen', + 'webkitCurrentFullScreenElement', + 'webkitCancelFullScreen', + 'webkitfullscreenchange', + 'webkitfullscreenerror' + + ], + [ + 'mozRequestFullScreen', + 'mozCancelFullScreen', + 'mozFullScreenElement', + 'mozFullScreenEnabled', + 'mozfullscreenchange', + 'mozfullscreenerror' + ], + [ + 'msRequestFullscreen', + 'msExitFullscreen', + 'msFullscreenElement', + 'msFullscreenEnabled', + 'MSFullscreenChange', + 'MSFullscreenError' + ] + ]; + + var i = 0; + var l = fnMap.length; + var ret = {}; + + for (; i < l; i++) { + val = fnMap[i]; + if (val && val[1] in document) { + for (i = 0, valLength = val.length; i < valLength; i++) { + ret[fnMap[0][i]] = val[i]; + } + return ret; + } + } + + return false; + })(); + + var screenfull = { + request: function(elem) { + var request = fn.requestFullscreen; + + elem = elem || document.documentElement; + + // Work around Safari 5.1 bug: reports support for + // keyboard in fullscreen even though it doesn't. + // Browser sniffing, since the alternative with + // setTimeout is even worse. + if (/5\.1[\.\d]* Safari/.test(navigator.userAgent)) { + elem[request](); + } else { + elem[request](keyboardAllowed && Element.ALLOW_KEYBOARD_INPUT); + } + }, + exit: function() { + document[fn.exitFullscreen](); + }, + toggle: function(elem) { + if (this.isFullscreen) { + this.exit(); + } else { + this.request(elem); + } + }, + raw: fn + }; + + if (!fn) { + return false; + } + + Object.defineProperties(screenfull, { + isFullscreen: { + get: function() { + return !!document[fn.fullscreenElement]; + } + }, + element: { + enumerable: true, + get: function() { + return document[fn.fullscreenElement]; + } + }, + enabled: { + enumerable: true, + get: function() { + // Coerce to boolean in case of old WebKit + return !!document[fn.fullscreenEnabled]; + } + } + }); + + screenfull.VERSION = '3.0.0'; + + return screenfull; + })(); + + module.exports = UI.fullscreen = screenfull; + + +/***/ }, +/* 33 */ +/***/ function(module, exports, __webpack_require__) { + + 'use strict'; + + var $ = __webpack_require__(1); + var UI = __webpack_require__(2); + UI.support.geolocation = window.navigator && window.navigator.geolocation; + + var geo = UI.support.geolocation; + + var Geolocation = function(options) { + this.options = options || {}; + }; + + Geolocation.MESSAGES = { + unsupportedBrowser: 'Browser does not support location services', + permissionDenied: 'You have rejected access to your location', + positionUnavailable: 'Unable to determine your location', + timeout: 'Service timeout has been reached' + }; + + Geolocation.ERROR_CODE = { + 0: 'unsupportedBrowser', + 1: 'permissionDenied', + 2: 'positionUnavailable', + 3: 'timeout' + }; + + Geolocation.prototype.get = function(options) { + var _this = this; + options = $.extend({}, this.options, options); + var deferred = new $.Deferred(); + + if (geo) { + this.watchID = geo.getCurrentPosition(function(position) { + deferred.resolve.call(_this, position); + }, function(error) { + deferred.reject(Geolocation.MESSAGES[Geolocation.ERROR_CODE[error.code]]); + }, options); + } else { + deferred.reject(Geolocation.MESSAGES.unsupportedBrowser); + } + + return deferred.promise(); + }; + + Geolocation.prototype.watch = function(options) { + if (!geo) { + return; + } + + options = $.extend({}, this.options, options); + + if (!$.isFunction(options.done)) { + return; + } + + this.clearWatch(); + + var fail = $.isFunction(options.fail) ? options.fail : null; + + this.watchID = geo.watchPosition(options.done, fail, options); + + return this.watchID; + }; + + Geolocation.prototype.clearWatch = function() { + if (!geo || !this.watchID) { + return; + } + geo.clearWatch(this.watchID); + this.watchID = null; + }; + + module.exports = UI.Geolocation = Geolocation; + + +/***/ }, +/* 34 */ +/***/ function(module, exports, __webpack_require__) { + + /* WEBPACK VAR INJECTION */(function(global) {'use strict'; + + var UI = __webpack_require__(2); + + /** + * store.js + * @see https://github.com/marcuswestin/store.js + * @license https://github.com/marcuswestin/store.js/blob/master/LICENSE + */ + + var store = {}; + var win = (typeof window != 'undefined' ? window : global); + var localStorageName = 'localStorage'; + var storage; + + store.disabled = false; + store.version = '1.3.20'; + + store.set = function(key, value) { + }; + + store.get = function(key, defaultVal) { + }; + + store.has = function(key) { + return store.get(key) !== undefined; + }; + + store.remove = function(key) { + }; + + store.clear = function() { + }; + + store.transact = function(key, defaultVal, transactionFn) { + if (transactionFn == null) { + transactionFn = defaultVal; + defaultVal = null; + } + if (defaultVal == null) { + defaultVal = {}; + } + + var val = store.get(key, defaultVal); + transactionFn(val); + store.set(key, val); + }; + + store.getAll = function() { + }; + + store.forEach = function() { + }; + + store.serialize = function(value) { + return JSON.stringify(value); + }; + + store.deserialize = function(value) { + if (typeof value != 'string') { + return undefined; + } + + try { + return JSON.parse(value); + } catch (e) { + return value || undefined; + } + }; + + // Functions to encapsulate questionable FireFox 3.6.13 behavior + // when about.config::dom.storage.enabled === false + // See https://github.com/marcuswestin/store.js/issues#issue/13 + function isLocalStorageNameSupported() { + try { + return (localStorageName in win && win[localStorageName]); + } catch (err) { + return false; + } + } + + if (isLocalStorageNameSupported()) { + storage = win[localStorageName]; + + store.set = function(key, val) { + if (val === undefined) { + return store.remove(key); + } + storage.setItem(key, store.serialize(val)); + return val; + }; + + store.get = function(key, defaultVal) { + var val = store.deserialize(storage.getItem(key)); + return (val === undefined ? defaultVal : val); + }; + + store.remove = function(key) { + storage.removeItem(key); + }; + + store.clear = function() { + storage.clear(); + }; + + store.getAll = function() { + var ret = {}; + store.forEach(function(key, val) { + ret[key] = val; + }); + return ret; + }; + + store.forEach = function(callback) { + for (var i = 0; i < storage.length; i++) { + var key = storage.key(i); + callback(key, store.get(key)); + } + }; + } + + try { + var testKey = '__storejs__'; + store.set(testKey, testKey); + if (store.get(testKey) != testKey) { + store.disabled = true; + } + store.remove(testKey); + } catch (e) { + store.disabled = true; + } + + store.enabled = !store.disabled; + + module.exports = UI.store = store; + + /* WEBPACK VAR INJECTION */}.call(exports, (function() { return this; }()))) + +/***/ }, +/* 35 */ +/***/ function(module, exports, __webpack_require__) { + + 'use strict'; + + var $ = __webpack_require__(1); + var UI = __webpack_require__(2); + __webpack_require__(7); + + function accordionInit() { + var $accordion = $('[data-am-widget="accordion"]'); + var selector = { + item: '.am-accordion-item', + title: '.am-accordion-title', + body: '.am-accordion-bd', + disabled: '.am-disabled' + }; + + $accordion.each(function(i, item) { + var options = UI.utils.parseOptions($(item).attr('data-am-accordion')); + var $title = $(item).find(selector.title); + + $title.on('click.accordion.amui', function() { + var $collapse = $(this).next(selector.body); + var $parent = $(this).parent(selector.item); + var data = $collapse.data('amui.collapse'); + + if ($parent.is(selector.disabled)) { + return; + } + + $parent.toggleClass('am-active'); + + if (!data) { + $collapse.collapse(); + } else { + $collapse.collapse('toggle'); + } + + !options.multiple && + $(item).children('.am-active'). + not($parent).not(selector.disabled).removeClass('am-active'). + find(selector.body + '.am-in').collapse('close'); + }); + }); + } + + // Init on DOM ready + $(accordionInit); + + module.exports = UI.accordion = { + VERSION: '2.1.0', + init: accordionInit + }; + + +/***/ }, +/* 36 */ +/***/ function(module, exports) { + + 'use strict'; + + module.exports = { + VERSION: '2.0.1' + }; + + +/***/ }, +/* 37 */ +/***/ function(module, exports, __webpack_require__) { + + 'use strict'; + + var $ = __webpack_require__(1); + var UI = __webpack_require__(2); + + function duoshuoInit() { + var $dsThread = $('.ds-thread'); + var dsShortName = $dsThread.parent('[data-am-widget="duoshuo"]'). + attr('data-ds-short-name'); + var dsSrc = (document.location.protocol == 'https:' ? 'https:' : 'http:') + + '//static.duoshuo.com/embed.js'; + + if (!$dsThread.length || !dsShortName) { + return; + } + + window.duoshuoQuery = { + short_name: dsShortName + }; + + // 已经有多说脚本 + if ($('script[src="' + dsSrc + '"]').length) { + return; + } + + var $dsJS = $('