diff --git a/app/Controller/Api/GitHub.php b/app/Controller/Api/GitHub.php index 211d1f3c..9f3c8c22 100644 --- a/app/Controller/Api/GitHub.php +++ b/app/Controller/Api/GitHub.php @@ -35,7 +35,7 @@ class GitHub extends Controller\Controller { $return->version->delta = null; $return->version->dev = false; - $releases = $f3->gitHubClient()->getProjectReleases('exodus4d/pathfinder', $releaseCount); + $releases = $f3->gitHubClient()->send('getProjectReleases', 'exodus4d/pathfinder', $releaseCount); foreach($releases as $key => &$release){ // check version ------------------------------------------------------------------------------------------ @@ -67,7 +67,7 @@ class GitHub extends Controller\Controller { // convert Markdown to HTML -> use either gitHub API (in oder to create abs, issue links) // -> or F3´s markdown as fallback - $html = $f3->gitHubClient()->markdownToHtml('exodus4d/pathfinder', $body); + $html = $f3->gitHubClient()->send('markdownToHtml', 'exodus4d/pathfinder', $body); if(!empty($html)){ $body = $html; diff --git a/app/Controller/Api/Map.php b/app/Controller/Api/Map.php index 48760da6..11d26915 100644 --- a/app/Controller/Api/Map.php +++ b/app/Controller/Api/Map.php @@ -179,7 +179,8 @@ class Map extends Controller\AccessController { 'zKillboard' => Config::getPathfinderData('api.z_killboard'), 'eveeye' => Config::getPathfinderData('api.eveeye'), 'dotlan' => Config::getPathfinderData('api.dotlan'), - 'anoik' => Config::getPathfinderData('api.anoik') + 'anoik' => Config::getPathfinderData('api.anoik'), + 'eveScout' => Config::getPathfinderData('api.eve_scout') ]; // get Plugin config -------------------------------------------------------------------------------------- diff --git a/app/Controller/Api/Rest/Connection.php b/app/Controller/Api/Rest/Connection.php index b73666ae..3b430aaf 100644 --- a/app/Controller/Api/Rest/Connection.php +++ b/app/Controller/Api/Rest/Connection.php @@ -93,10 +93,16 @@ class Connection extends AbstractRestController { $connection->mapId = $map; $connection->source = $source; $connection->target = $target; - $connection->copyfrom($connectionData, ['scope', 'type']); - // change the default type for the new connection - $connection->setDefaultTypeData(); + // if scope + type data send -> use them ... + if($requestData['scope'] && !empty($requestData['type'])){ + $connection->copyfrom($requestData, ['scope', 'type']); + } + + // ... set/change default scope + type + if(!$requestData['disableAutoScope']){ + $connection->setAutoScopeAndType(); + } if($connection->save($activeCharacter)){ $connectionData = $connection->getData(); diff --git a/app/Controller/Api/Rest/Route.php b/app/Controller/Api/Rest/Route.php index c0aa9b2a..af7998a4 100644 --- a/app/Controller/Api/Rest/Route.php +++ b/app/Controller/Api/Rest/Route.php @@ -14,7 +14,7 @@ class Route extends AbstractRestController { /** * cache key for current Thera connections from eve-scout.com */ - const CACHE_KEY_THERA_CONNECTIONS = 'CACHED_THERA_CONNECTIONS'; + const CACHE_KEY_THERA_JUMP_DATA = 'CACHED_THERA_JUMP_DATA'; /** * route search depth @@ -260,9 +260,9 @@ class Route extends AbstractRestController { * -> Connected wormholes pulled from eve-scout.com */ private function setTheraJumpData(){ - if(!$this->getF3()->exists(self::CACHE_KEY_THERA_CONNECTIONS, $jumpData)){ + if(!$this->getF3()->exists(self::CACHE_KEY_THERA_JUMP_DATA, $jumpData)){ $jumpData = []; - $connectionsData = $this->getF3()->eveScoutClient()->getTheraConnections(); + $connectionsData = $this->getF3()->eveScoutClient()->send('getTheraConnections'); if(!empty($connectionsData) && !isset($connectionsData['error'])){ /** @@ -294,12 +294,12 @@ class Route extends AbstractRestController { }; foreach((array)$connectionsData['connections'] as $connectionData){ - $enrichJumpData($connectionData, 'source', 'target'); - $enrichJumpData($connectionData, 'target', 'source'); + $enrichJumpData($connectionData, 'source', 'target'); + $enrichJumpData($connectionData, 'target', 'source'); } if(!empty($jumpData)){ - $this->getF3()->set(self::CACHE_KEY_THERA_CONNECTIONS, $jumpData, $this->theraJumpDataCacheTime); + $this->getF3()->set(self::CACHE_KEY_THERA_JUMP_DATA, $jumpData, $this->theraJumpDataCacheTime); } } } @@ -337,7 +337,7 @@ class Route extends AbstractRestController { if( !is_array($this->jumpArray[$systemId]) ){ $this->jumpArray[$systemId] = []; } - $this->jumpArray[$systemId] = array_merge($row['jumpNodes'], $this->jumpArray[$systemId]); + $this->jumpArray[$systemId] = array_merge((array)$row['jumpNodes'], $this->jumpArray[$systemId]); // add systemName to end (if not already there) if(end($this->jumpArray[$systemId]) != $systemName){ @@ -668,7 +668,7 @@ class Route extends AbstractRestController { 'connections' => $connections ]; - $result = $this->getF3()->ccpClient()->getRouteData($systemFromId, $systemToId, $options); + $result = $this->getF3()->ccpClient()->send('getRoute', $systemFromId, $systemToId, $options); // format result ------------------------------------------------------------------------------------------ diff --git a/app/Controller/Api/Rest/SystemThera.php b/app/Controller/Api/Rest/SystemThera.php new file mode 100644 index 00000000..d428ca8b --- /dev/null +++ b/app/Controller/Api/Rest/SystemThera.php @@ -0,0 +1,131 @@ +exists(self::CACHE_KEY_THERA_CONNECTIONS, $connectionsData)){ + $connectionsData = $this->getEveScoutTheraConnections(); + $f3->set(self::CACHE_KEY_THERA_CONNECTIONS, $connectionsData, $ttl); + } + + $f3->expire(Config::ttlLeft($exists, $ttl)); + + $this->out($connectionsData); + } + + /** + * get Thera connections data from EveScout API + * -> map response to Pathfinder format + * @return array + */ + protected function getEveScoutTheraConnections() : array { + $connectionsData = []; + + /** + * map system data from eveScout response to Pathfinder´s 'system' format + * @param string $key + * @param array $eveScoutConnection + * @param array $connectionData + */ + $enrichWithSystemData = function(string $key, array $eveScoutConnection, array &$connectionData) : void { + $eveScoutSystem = (array)$eveScoutConnection[$key]; + $systemData = [ + 'id' => (int)$eveScoutSystem['id'], + 'name' => (string)$eveScoutSystem['name'], + 'trueSec' => round((float)$eveScoutSystem['security'], 4) + ]; + if(!empty($eveScoutSystem['constellationID'])){ + $systemData['constellation'] = ['id' => (int)$eveScoutSystem['constellationID']]; + } + if(!empty($region = (array)$eveScoutSystem['region']) && !empty($region['id'])){ + $systemData['region'] = ['id' => (int)$region['id'], 'name' => (string)$region['name']]; + } + $connectionData[$key] = $systemData; + }; + + /** + * @param string $key + * @param array $eveScoutConnection + * @param array $connectionData + */ + $enrichWithSignatureData = function(string $key, array $eveScoutConnection, array &$connectionData) : void { + $eveScoutSignature = (array)$eveScoutConnection[$key]; + $signatureData = [ + 'name' => $eveScoutSignature['name'] ? : null + ]; + if(!empty($sigType = (array)$eveScoutSignature['type']) && !empty($sigType['name'])){ + $signatureData['type'] = ['name' => strtoupper((string)$sigType['name'])]; + } + $connectionData[$key] = $signatureData; + }; + + /** + * map wormhole data from eveScout to Pathfinder´s connection format + * @param array $wormholeData + * @param array $connectionsData + */ + $enrichWithWormholeData = function(array $wormholeData, array &$connectionsData) : void { + $type = []; + if($wormholeData['mass'] === 'reduced'){ + $type[] = 'wh_reduced'; + }else if($wormholeData['mass'] === 'critical'){ + $type[] = 'wh_critical'; + }else{ + $type[] = 'wh_fresh'; + } + + if($wormholeData['eol'] === 'critical'){ + $type[] = 'wh_eol'; + } + $connectionsData['type'] = $type; + $connectionsData['estimatedEol'] = $wormholeData['estimatedEol']; + }; + + $eveScoutResponse = $this->getF3()->eveScoutClient()->send('getTheraConnections'); + if(!empty($eveScoutResponse) && !isset($eveScoutResponse['error'])){ + foreach((array)$eveScoutResponse['connections'] as $eveScoutConnection){ + if( + $eveScoutConnection['type'] === 'wormhole' && + isset($eveScoutConnection['source']) && isset($eveScoutConnection['target']) + ){ + try{ + $data = [ + 'id' => (int)$eveScoutConnection['id'], + 'scope' => 'wh', + 'created' => [ + 'created' => (new \DateTime($eveScoutConnection['created']))->getTimestamp(), + 'character' => (array)$eveScoutConnection['character'] + ], + 'updated' => (new \DateTime($eveScoutConnection['updated']))->getTimestamp() + ]; + $enrichWithWormholeData((array)$eveScoutConnection['wormhole'], $data); + $enrichWithSystemData('source', $eveScoutConnection, $data); + $enrichWithSystemData('target', $eveScoutConnection, $data); + $enrichWithSignatureData('sourceSignature', $eveScoutConnection, $data); + $enrichWithSignatureData('targetSignature', $eveScoutConnection, $data); + $connectionsData[] = $data; + }catch(\Exception $e){ + // new \DateTime Exception -> skip this data + } + } + } + } + + return $connectionsData; + } +} \ No newline at end of file diff --git a/app/Controller/Api/System.php b/app/Controller/Api/System.php index d2314f63..97c021ce 100644 --- a/app/Controller/Api/System.php +++ b/app/Controller/Api/System.php @@ -39,7 +39,7 @@ class System extends Controller\AccessController { ]; foreach($destData as $data){ - $response = $f3->ccpClient()->setWaypoint((int)$data['id'], $accessToken, $options); + $response = $f3->ccpClient()->send('setWaypoint', (int)$data['id'], $accessToken, $options); if(empty($response)){ $return->destData[] = $data; diff --git a/app/Controller/Api/User.php b/app/Controller/Api/User.php index 4158f9a2..8f05c12f 100644 --- a/app/Controller/Api/User.php +++ b/app/Controller/Api/User.php @@ -215,7 +215,7 @@ class User extends Controller\Controller{ if( $targetId = (int)$data['targetId']){ $activeCharacter = $this->getCharacter(); - $response = $f3->ccpClient()->openWindow($targetId, $activeCharacter->getAccessToken()); + $response = $f3->ccpClient()->send('openWindow', $targetId, $activeCharacter->getAccessToken()); if(empty($response)){ $return->targetId = $targetId; diff --git a/app/Controller/Ccp/Sso.php b/app/Controller/Ccp/Sso.php index fbb30bea..542e007b 100644 --- a/app/Controller/Ccp/Sso.php +++ b/app/Controller/Ccp/Sso.php @@ -390,7 +390,7 @@ class Sso extends Api\User{ $accessData->refreshToken = null; $accessData->esiAccessTokenExpires = 0; - $authCodeRequestData = $this->getF3()->ssoClient()->getAccessData($this->getAuthorizationData(), $requestParams); + $authCodeRequestData = $this->getF3()->ssoClient()->send('getAccess', $this->getAuthorizationData(), $requestParams); if( !empty($authCodeRequestData) ){ if( !empty($authCodeRequestData['accessToken']) ){ @@ -429,7 +429,7 @@ class Sso extends Api\User{ * @return array */ public function verifyCharacterData(string $accessToken) : array { - $characterData = $this->getF3()->ssoClient()->getVerifyCharacterData($accessToken); + $characterData = $this->getF3()->ssoClient()->send('getVerifyCharacter', $accessToken); if( !empty($characterData) ){ // convert string with scopes to array @@ -451,8 +451,7 @@ class Sso extends Api\User{ $characterData = (object) []; if($characterId){ - $characterDataBasic = $this->getF3()->ccpClient()->getCharacterData($characterId); - + $characterDataBasic = $this->getF3()->ccpClient()->send('getCharacter', $characterId); if( !empty($characterDataBasic) ){ // remove some "unwanted" data -> not relevant for Pathfinder $characterData->character = array_filter($characterDataBasic, function($key){ diff --git a/app/Controller/Ccp/Universe.php b/app/Controller/Ccp/Universe.php index 471d87d2..fe6a1e3b 100644 --- a/app/Controller/Ccp/Universe.php +++ b/app/Controller/Ccp/Universe.php @@ -22,7 +22,7 @@ class Universe extends Controller\Controller { $regionsWhitelist = [ 10000002 // The Forge (13 constellations -> 93 systems) ]; - $regionIds = $f3->ccpClient()->getUniverseRegions(); + $regionIds = $f3->ccpClient()->send('getUniverseRegions'); $regionIds = array_intersect($regionsWhitelist, $regionIds); $region = Model\Universe\AbstractUniverseModel::getNew('RegionModel'); @@ -43,7 +43,7 @@ class Universe extends Controller\Controller { $constellationsWhitelist = [ 20000014 // Mal (11 systems) ]; - $constellationIds = $f3->ccpClient()->getUniverseConstellations(); + $constellationIds = $f3->ccpClient()->send('getUniverseConstellations'); $constellationIds = array_intersect($constellationsWhitelist, $constellationIds); $constellation = Model\Universe\AbstractUniverseModel::getNew('ConstellationModel'); foreach($constellationIds as $constellationId){ @@ -306,13 +306,13 @@ class Universe extends Controller\Controller { $f3 = \Base::instance(); $universeNameData = []; if( !empty($categories) && !empty($search)){ - $universeIds = $f3->ccpClient()->search($categories, $search, $strict); + $universeIds = $f3->ccpClient()->send('search', $categories, $search, $strict); if(isset($universeIds['error'])){ // ESI error $universeNameData = $universeIds; }elseif( !empty($universeIds) ){ $universeIds = Util::arrayFlattenByValue($universeIds); - $universeNameData = $f3->ccpClient()->getUniverseNamesData($universeIds); + $universeNameData = $f3->ccpClient()->send('getUniverseNames', $universeIds); } } return $universeNameData; diff --git a/app/Controller/Controllerr.php b/app/Controller/Controllerr.php index 8a1a27dd..cdc13399 100644 --- a/app/Controller/Controllerr.php +++ b/app/Controller/Controllerr.php @@ -565,7 +565,7 @@ class Controller { 'routes' => [] ]; - $serverStatus = $client->getServerStatus(); + $serverStatus = $client->send('getServerStatus'); if( !isset($serverStatus['error']) ){ $statusData = $serverStatus['status']; // calculate time diff since last server restart @@ -587,7 +587,7 @@ class Controller { $return->error[] = (new PathfinderException($serverStatus['error'], 500))->getError(); } - $apiStatus = $client->getStatusForRoutes('latest'); + $apiStatus = $client->send('getStatus', 'latest', true); if( !isset($apiStatus['error']) ){ // find top status $status = 'OK'; diff --git a/app/Cron/CcpSystemsUpdate.php b/app/Cron/CcpSystemsUpdate.php index a88757b6..c9880f42 100644 --- a/app/Cron/CcpSystemsUpdate.php +++ b/app/Cron/CcpSystemsUpdate.php @@ -119,13 +119,13 @@ class CcpSystemsUpdate extends AbstractCron { // get current jump data -------------------------------------------------------------------------------------- $time_start = microtime(true); - $jumpData = $f3->ccpClient()->getUniverseJumps(); + $jumpData = $f3->ccpClient()->send('getUniverseJumps'); $time_end = microtime(true); $execTimeGetJumpData = $time_end - $time_start; // get current kill data -------------------------------------------------------------------------------------- $time_start = microtime(true); - $killData = $f3->ccpClient()->getUniverseKills(); + $killData = $f3->ccpClient()->send('getUniverseKills'); $time_end = microtime(true); $execTimeGetKillData = $time_end - $time_start; diff --git a/app/Cron/Universe.php b/app/Cron/Universe.php index e3c71992..2caa9368 100644 --- a/app/Cron/Universe.php +++ b/app/Cron/Universe.php @@ -186,7 +186,7 @@ class Universe extends AbstractCron { switch($type){ case 'system': // load systems + dependencies (planets, star, types,...) - $ids = $f3->ccpClient()->getUniverseSystems(); + $ids = $f3->ccpClient()->send('getUniverseSystems'); $modelClass = 'SystemModel'; $setupModel = function(Model\Universe\SystemModel &$model, int $id){ $model->loadById($id); @@ -195,7 +195,7 @@ class Universe extends AbstractCron { break; case 'stargate': // load all stargates. Systems must be present first! - $ids = $f3->ccpClient()->getUniverseSystems(); + $ids = $f3->ccpClient()->send('getUniverseSystems'); $modelClass = 'SystemModel'; $setupModel = function(Model\Universe\SystemModel &$model, int $id){ $model->loadById($id); @@ -203,7 +203,7 @@ class Universe extends AbstractCron { }; break; case 'station': - $ids = $f3->ccpClient()->getUniverseSystems(); + $ids = $f3->ccpClient()->send('getUniverseSystems'); $modelClass = 'SystemModel'; $setupModel = function(Model\Universe\SystemModel &$model, int $id){ if($model->getById($id)){ @@ -216,7 +216,7 @@ class Universe extends AbstractCron { break; case 'sovereignty': // load sovereignty map data. Systems must be present first! - $sovData = $f3->ccpClient()->getSovereigntyMap(); + $sovData = $f3->ccpClient()->send('getSovereigntyMap'); $ids = !empty($sovData = $sovData['map']) ? array_keys($sovData): []; $modelClass = 'SystemModel'; $setupModel = function(Model\Universe\SystemModel &$model, int $id) use ($sovData) { @@ -229,7 +229,7 @@ class Universe extends AbstractCron { }; break; case 'faction_war_systems': - $fwSystems = $f3->ccpClient()->getFactionWarSystems(); + $fwSystems = $f3->ccpClient()->send('getFactionWarSystems'); $ids = !empty($fwSystems = $fwSystems['systems']) ? array_keys($fwSystems): []; $modelClass = 'SystemModel'; $setupModel = function(Model\Universe\SystemModel &$model, int $id) use ($fwSystems) { @@ -243,7 +243,7 @@ class Universe extends AbstractCron { break; case 'index_system': // setup system index, Systems must be present first! - $ids = $f3->ccpClient()->getUniverseSystems(); + $ids = $f3->ccpClient()->send('getUniverseSystems'); $modelClass = 'SystemModel'; $setupModel = function(Model\Universe\SystemModel &$model, int $id){ $model->getById($id); // no loadById() here! would take "forever" when system not exists and must be build up first... @@ -310,8 +310,8 @@ class Universe extends AbstractCron { */ $system = Model\Universe\AbstractUniverseModel::getNew('SystemModel'); - $sovData = $f3->ccpClient()->getSovereigntyMap(); - $fwSystems = $f3->ccpClient()->getFactionWarSystems(); + $sovData = $f3->ccpClient()->send('getSovereigntyMap'); + $fwSystems = $f3->ccpClient()->send('getFactionWarSystems'); $fwSystems = $fwSystems['systems']; $ids = !empty($sovData = $sovData['map']) ? array_keys($sovData): []; sort($ids, SORT_NUMERIC); diff --git a/app/Lib/Api/AbstractClient.php b/app/Lib/Api/AbstractClient.php index 2d9157d2..4a2ce932 100644 --- a/app/Lib/Api/AbstractClient.php +++ b/app/Lib/Api/AbstractClient.php @@ -298,8 +298,8 @@ abstract class AbstractClient extends \Prefab { public function __call(string $name, array $arguments = []){ $return = []; if(is_object($this->client)){ - if( method_exists($this->client, $name) ){ - $return = call_user_func_array([$this->client, $name], $arguments); + if(method_exists($this->client, $name)){ + $return = call_user_func_array([$this->client, $name], $arguments); }else{ $errorMsg = $this->getMissingMethodError(get_class($this->client), $name); $this->getLogger('ERROR')->write($errorMsg); @@ -336,18 +336,20 @@ abstract class AbstractClient extends \Prefab { $client->setNewLog($this->newLog()); $client->setIsLoggable($this->isLoggable($f3)); - $client->setLogStats(true); // add cURL stats (e.g. transferTime) to logged requests - $client->setLogCache(true); // add cache info (e.g. from cached) to logged requests - //$client->setLogAllStatus(true); // log all requests regardless of response HTTP status code - $client->setLogFile('esi_requests');// + $client->setLogStats(true); // add cURL stats (e.g. transferTime) to loggable requests + $client->setLogCache(true); // add cache info (e.g. from cached) to loggable requests + $client->setLogAllStatus(false); // log all requests regardless of response HTTP status code + $client->setLogRequestHeaders(false); // add request HTTP headers to loggable requests + $client->setLogResponseHeaders(false); // add response HTTP headers to loggable requests + $client->setLogFile('esi_requests'); $client->setRetryLogFile('esi_retry_requests'); $client->setCacheDebug(true); $client->setCachePool($this->getCachePool($f3)); - // use local proxy server for debugging requests - //$client->setProxy('127.0.0.1:8888'); + + //$client->setProxy('127.0.0.1:8888'); // use local proxy server for debugging requests // disable SSL certificate verification -> allow proxy to decode(view) request //$client->setVerify(false); diff --git a/app/Lib/Api/CcpClient.php b/app/Lib/Api/CcpClient.php index d056c87f..0d7c8933 100644 --- a/app/Lib/Api/CcpClient.php +++ b/app/Lib/Api/CcpClient.php @@ -11,14 +11,13 @@ namespace Exodus4D\Pathfinder\Lib\Api; use Exodus4D\Pathfinder\Lib\Config; use Exodus4D\ESI\Client\ApiInterface; use Exodus4D\ESI\Client\Ccp\Esi\Esi as Client; -use Exodus4D\ESI\Client\Ccp\Esi\EsiInterface as ClientInterface; /** * Class CcpClient * @package lib\api * - * @method ClientInterface getServerStatus() - * @method ClientInterface getStatusForRoutes(string $version) + * @method ApiInterface send(string $requestHandler, ...$handlerParams) + * @method ApiInterface sendBatch(array $configs) */ class CcpClient extends AbstractClient { diff --git a/app/Lib/Api/EveScoutClient.php b/app/Lib/Api/EveScoutClient.php index 0a869f3f..1d124a33 100644 --- a/app/Lib/Api/EveScoutClient.php +++ b/app/Lib/Api/EveScoutClient.php @@ -6,13 +6,13 @@ namespace Exodus4D\Pathfinder\Lib\Api; use Exodus4D\Pathfinder\Lib\Config; use Exodus4D\ESI\Client\ApiInterface; use Exodus4D\ESI\Client\EveScout\EveScout as Client; -use Exodus4D\ESI\Client\EveScout\EveScoutInterface as ClientInterface; /** * Class EveScoutClient * @package lib\api * - * @method ClientInterface getTheraConnections() + * @method ApiInterface send(string $requestHandler, ...$handlerParams) + * @method ApiInterface sendBatch(array $configs) */ class EveScoutClient extends AbstractClient { diff --git a/app/Lib/Api/GitHubClient.php b/app/Lib/Api/GitHubClient.php index 0008ae06..d87d6c23 100644 --- a/app/Lib/Api/GitHubClient.php +++ b/app/Lib/Api/GitHubClient.php @@ -11,14 +11,13 @@ namespace Exodus4D\Pathfinder\Lib\Api; use Exodus4D\Pathfinder\Lib\Config; use Exodus4D\ESI\Client\ApiInterface; use Exodus4D\ESI\Client\GitHub\GitHub as Client; -use Exodus4D\ESI\Client\GitHub\GitHubInterface as ClientInterface; /** * Class GitHubClient * @package lib\api * - * @method ClientInterface getProjectReleases(string $projectName, int $count) : array - * @method ClientInterface markdownToHtml(string $context, string $markdown) : string + * @method ApiInterface send(string $requestHandler, ...$handlerParams) + * @method ApiInterface sendBatch(array $configs) */ class GitHubClient extends AbstractClient { diff --git a/app/Model/Pathfinder/AllianceModel.php b/app/Model/Pathfinder/AllianceModel.php index 66f7736a..7d9e408d 100644 --- a/app/Model/Pathfinder/AllianceModel.php +++ b/app/Model/Pathfinder/AllianceModel.php @@ -150,7 +150,7 @@ class AllianceModel extends AbstractPathfinderModel { $loaded = parent::getById($id, $ttl, $isActive); if($this->isOutdated()){ // request alliance data - $allianceData = self::getF3()->ccpClient()->getAllianceData($id); + $allianceData = self::getF3()->ccpClient()->send('getAlliance', $id); if(!empty($allianceData) && !isset($allianceData['error'])){ $this->copyfrom($allianceData, ['id', 'name', 'ticker']); $this->save(); diff --git a/app/Model/Pathfinder/CharacterModel.php b/app/Model/Pathfinder/CharacterModel.php index 3a13fa0e..a4050fe8 100644 --- a/app/Model/Pathfinder/CharacterModel.php +++ b/app/Model/Pathfinder/CharacterModel.php @@ -792,7 +792,7 @@ class CharacterModel extends AbstractPathfinderModel { */ public function updateCloneData(){ if($accessToken = $this->getAccessToken()){ - $clonesData = self::getF3()->ccpClient()->getCharacterClonesData($this->_id, $accessToken); + $clonesData = self::getF3()->ccpClient()->send('getCharacterClones', $this->_id, $accessToken); if(!isset($clonesData['error'])){ if(!empty($homeLocationData = $clonesData['home']['location'])){ // clone home location data @@ -816,7 +816,7 @@ class CharacterModel extends AbstractPathfinderModel { * @return array */ protected function getOnlineData(string $accessToken) : array { - return self::getF3()->ccpClient()->getCharacterOnlineData($this->_id, $accessToken); + return self::getF3()->ccpClient()->send('getCharacterOnline', $this->_id, $accessToken); } /** @@ -855,7 +855,7 @@ class CharacterModel extends AbstractPathfinderModel { // Try to pull data from API if($accessToken = $this->getAccessToken()){ if($this->isOnline($accessToken)){ - $locationData = self::getF3()->ccpClient()->getCharacterLocationData($this->_id, $accessToken); + $locationData = self::getF3()->ccpClient()->send('getCharacterLocation', $this->_id, $accessToken); if(!empty($locationData['system']['id'])){ // character is currently in-game @@ -886,7 +886,7 @@ class CharacterModel extends AbstractPathfinderModel { // get "more" data for systemId --------------------------------------------------------------- if(!empty($lookupUniverseIds)){ // get "more" information for some Ids (e.g. name) - $universeData = self::getF3()->ccpClient()->getUniverseNamesData($lookupUniverseIds); + $universeData = self::getF3()->ccpClient()->send('getUniverseNames', $lookupUniverseIds); if(!empty($universeData) && !isset($universeData['error'])){ // We expect max ONE system AND/OR station data, not an array of e.g. systems @@ -967,7 +967,7 @@ class CharacterModel extends AbstractPathfinderModel { // check ship data for changes ---------------------------------------------------------------- if(!$deleteLog){ - $shipData = self::getF3()->ccpClient()->getCharacterShipData($this->_id, $accessToken); + $shipData = self::getF3()->ccpClient()->send('getCharacterShip', $this->_id, $accessToken); // IDs for "shipTypeId" that require more data $lookupShipTypeId = 0; diff --git a/app/Model/Pathfinder/ConnectionModel.php b/app/Model/Pathfinder/ConnectionModel.php index 25675887..11919d7d 100644 --- a/app/Model/Pathfinder/ConnectionModel.php +++ b/app/Model/Pathfinder/ConnectionModel.php @@ -130,7 +130,7 @@ class ConnectionModel extends AbstractMapTrackingModel { $connectionData->source = $this->source->id; $connectionData->target = $this->target->id; $connectionData->scope = $this->scope; - $connectionData->type = $this->type; + $connectionData->type = (array)json_decode($this->get('type', true)); $connectionData->updated = strtotime($this->updated); $connectionData->created = strtotime($this->created); $connectionData->eolUpdated = strtotime($this->eolUpdated); @@ -219,10 +219,10 @@ class ConnectionModel extends AbstractMapTrackingModel { } /** - * set default connection type by search route between endpoints + * set default connection scope + type by search route between endpoints * @throws \Exception */ - public function setDefaultTypeData(){ + public function setAutoScopeAndType(){ if( is_object($this->source) && is_object($this->target) @@ -233,15 +233,16 @@ class ConnectionModel extends AbstractMapTrackingModel { ){ $this->scope = 'abyssal'; $this->type = ['abyssal']; + }elseif( + $this->source->isKspace() && + $this->target->isKspace() && + (new Route())->searchRoute($this->source->systemId, $this->target->systemId, 1)['routePossible'] + ){ + $this->scope = 'stargate'; + $this->type = ['stargate']; }else{ - $route = (new Route())->searchRoute($this->source->systemId, $this->target->systemId, 1); - if($route['routePossible']){ - $this->scope = 'stargate'; - $this->type = ['stargate']; - }else{ - $this->scope = 'wh'; - $this->type = ['wh_fresh']; - } + $this->scope = 'wh'; + $this->type = ['wh_fresh']; } } } @@ -294,7 +295,7 @@ class ConnectionModel extends AbstractMapTrackingModel { !$this->scope || empty($types) ){ - $this->setDefaultTypeData(); + $this->setAutoScopeAndType(); } return $this->isValid() ? parent::beforeInsertEvent($self, $pkeys) : false; diff --git a/app/Model/Pathfinder/CorporationModel.php b/app/Model/Pathfinder/CorporationModel.php index 12482080..b8abb17d 100644 --- a/app/Model/Pathfinder/CorporationModel.php +++ b/app/Model/Pathfinder/CorporationModel.php @@ -292,7 +292,7 @@ class CorporationModel extends AbstractPathfinderModel { !empty($accessToken) && !$this->isNPC ){ - $response = self::getF3()->ccpClient()->getCorporationRoles($this->_id, $accessToken); + $response = self::getF3()->ccpClient()->send('getCorporationRoles', $this->_id, $accessToken); if( !empty($response['roles']) ){ $characterRolesData = (array)$response['roles']; } @@ -356,10 +356,10 @@ class CorporationModel extends AbstractPathfinderModel { $loaded = parent::getById($id, $ttl, $isActive); if($this->isOutdated()){ // request corporation data - $corporationData = self::getF3()->ccpClient()->getCorporationData($id); + $corporationData = self::getF3()->ccpClient()->send('getCorporation', $id); if(!empty($corporationData) && !isset($corporationData['error'])){ // check for NPC corporation - $corporationData['isNPC'] = self::getF3()->ccpClient()->isNpcCorporation($id); + $corporationData['isNPC'] = in_array($id, self::getF3()->ccpClient()->send('getNpcCorporations')); $this->copyfrom($corporationData, ['id', 'name', 'ticker', 'memberCount', 'isNPC']); $this->save(); diff --git a/app/Model/Universe/AllianceModel.php b/app/Model/Universe/AllianceModel.php index d72ded47..325f4745 100644 --- a/app/Model/Universe/AllianceModel.php +++ b/app/Model/Universe/AllianceModel.php @@ -85,7 +85,7 @@ class AllianceModel extends AbstractUniverseModel { * @param array $additionalOptions */ protected function loadData(int $id, string $accessToken = '', array $additionalOptions = []){ - $data = self::getF3()->ccpClient()->getAllianceData($id); + $data = self::getF3()->ccpClient()->send('getAlliance', $id); if(!empty($data) && !isset($data['error'])){ if($data['factionId']){ /** diff --git a/app/Model/Universe/CategoryModel.php b/app/Model/Universe/CategoryModel.php index cf32f1e0..df0b7f3e 100644 --- a/app/Model/Universe/CategoryModel.php +++ b/app/Model/Universe/CategoryModel.php @@ -178,14 +178,14 @@ class CategoryModel extends AbstractUniverseModel { * @return array */ public static function getUniverseCategoryData(int $id) : array { - return self::getF3()->ccpClient()->getUniverseCategoryData($id); + return self::getF3()->ccpClient()->send('getUniverseCategory', $id); } /** * @return array */ public static function getUniverseCategories() : array { - return self::getF3()->ccpClient()->getUniverseCategories(); + return self::getF3()->ccpClient()->send('getUniverseCategories'); } /** diff --git a/app/Model/Universe/ConstellationModel.php b/app/Model/Universe/ConstellationModel.php index 4fff75b6..9abd2af5 100644 --- a/app/Model/Universe/ConstellationModel.php +++ b/app/Model/Universe/ConstellationModel.php @@ -80,7 +80,7 @@ class ConstellationModel extends AbstractUniverseModel { * @param array $additionalOptions */ protected function loadData(int $id, string $accessToken = '', array $additionalOptions = []){ - $data = self::getF3()->ccpClient()->getUniverseConstellationData($id); + $data = self::getF3()->ccpClient()->send('getUniverseConstellation', $id); if(!empty($data)){ /** * @var $region RegionModel @@ -99,7 +99,7 @@ class ConstellationModel extends AbstractUniverseModel { */ public function loadSystemsData(){ if( !$this->dry() ){ - $data = self::getF3()->ccpClient()->getUniverseConstellationData($this->_id); + $data = self::getF3()->ccpClient()->send('getUniverseConstellation', $this->_id); if(!empty($data)){ foreach((array)$data['systems'] as $systemId){ /** diff --git a/app/Model/Universe/CorporationModel.php b/app/Model/Universe/CorporationModel.php index 3c6faf9e..447f06f9 100644 --- a/app/Model/Universe/CorporationModel.php +++ b/app/Model/Universe/CorporationModel.php @@ -105,10 +105,10 @@ class CorporationModel extends AbstractUniverseModel { * @param array $additionalOptions */ protected function loadData(int $id, string $accessToken = '', array $additionalOptions = []){ - $data = self::getF3()->ccpClient()->getCorporationData($id); + $data = self::getF3()->ccpClient()->send('getCorporation', $id); if(!empty($data) && !isset($data['error'])){ // check for NPC corporation - $data['isNPC'] = self::getF3()->ccpClient()->isNpcCorporation($id); + $data['isNPC'] = in_array($id, self::getF3()->ccpClient()->send('getNpcCorporations')); if($data['factionId']){ /** diff --git a/app/Model/Universe/DogmaAttributeModel.php b/app/Model/Universe/DogmaAttributeModel.php index 75575126..e06c2851 100644 --- a/app/Model/Universe/DogmaAttributeModel.php +++ b/app/Model/Universe/DogmaAttributeModel.php @@ -88,7 +88,7 @@ class DogmaAttributeModel extends AbstractUniverseModel { * @param array $additionalOptions */ protected function loadData(int $id, string $accessToken = '', array $additionalOptions = []){ - $data = self::getF3()->ccpClient()->getDogmaAttributeData($id); + $data = self::getF3()->ccpClient()->send('getDogmaAttribute', $id); if(!empty($data) && !isset($data['error'])){ $this->copyfrom($data, ['id', 'name', 'displayName', 'description', 'published', 'stackable', 'highIsGood', 'defaultValue', 'iconId', 'unitId']); $this->save(); diff --git a/app/Model/Universe/FactionModel.php b/app/Model/Universe/FactionModel.php index 6469bbdf..a4b46661 100644 --- a/app/Model/Universe/FactionModel.php +++ b/app/Model/Universe/FactionModel.php @@ -84,7 +84,7 @@ class FactionModel extends AbstractUniverseModel { * @param array $additionalOptions */ protected function loadData(int $id, string $accessToken = '', array $additionalOptions = []){ - $data = self::getF3()->ccpClient()->getUniverseFactionData($id); + $data = self::getF3()->ccpClient()->send('getUniverseFaction', $id); if(!empty($data) && !isset($data['error'])){ $this->copyfrom($data, ['id', 'name', 'description', 'sizeFactor', 'stationCount', 'stationSystemCount']); $this->save(); diff --git a/app/Model/Universe/GroupModel.php b/app/Model/Universe/GroupModel.php index 1b73be6b..69010a01 100644 --- a/app/Model/Universe/GroupModel.php +++ b/app/Model/Universe/GroupModel.php @@ -178,14 +178,14 @@ class GroupModel extends AbstractUniverseModel { * @return array */ public static function getUniverseGroupData(int $id) : array { - return self::getF3()->ccpClient()->getUniverseGroupData($id); + return self::getF3()->ccpClient()->send('getUniverseGroup', $id); } /** * @return array */ public static function getUniverseGroups() : array { - return self::getF3()->ccpClient()->getUniverseGroups(); + return self::getF3()->ccpClient()->send('getUniverseGroups'); } /** diff --git a/app/Model/Universe/PlanetModel.php b/app/Model/Universe/PlanetModel.php index cdc9a944..3d07ab83 100644 --- a/app/Model/Universe/PlanetModel.php +++ b/app/Model/Universe/PlanetModel.php @@ -87,7 +87,7 @@ class PlanetModel extends AbstractUniverseModel { * @param array $additionalOptions */ protected function loadData(int $id, string $accessToken = '', array $additionalOptions = []){ - $data = self::getF3()->ccpClient()->getUniversePlanetData($id); + $data = self::getF3()->ccpClient()->send('getUniversePlanet', $id); if(!empty($data)){ /** * @var $system SystemModel diff --git a/app/Model/Universe/RaceModel.php b/app/Model/Universe/RaceModel.php index 680875d5..45c265ff 100644 --- a/app/Model/Universe/RaceModel.php +++ b/app/Model/Universe/RaceModel.php @@ -66,7 +66,7 @@ class RaceModel extends AbstractUniverseModel { * @param array $additionalOptions */ protected function loadData(int $id, string $accessToken = '', array $additionalOptions = []){ - $data = self::getF3()->ccpClient()->getUniverseRaceData($id); + $data = self::getF3()->ccpClient()->send('getUniverseRace', $id); if(!empty($data) && !isset($data['error'])){ /** * @var $faction FactionModel diff --git a/app/Model/Universe/RegionModel.php b/app/Model/Universe/RegionModel.php index ae238adf..a5b72f67 100644 --- a/app/Model/Universe/RegionModel.php +++ b/app/Model/Universe/RegionModel.php @@ -56,7 +56,7 @@ class RegionModel extends AbstractUniverseModel { * @param array $additionalOptions */ protected function loadData(int $id, string $accessToken = '', array $additionalOptions = []){ - $data = self::getF3()->ccpClient()->getUniverseRegionData($id); + $data = self::getF3()->ccpClient()->send('getUniverseRegion', $id); if(!empty($data)){ $this->copyfrom($data, ['id', 'name', 'description']); $this->save(); @@ -68,7 +68,7 @@ class RegionModel extends AbstractUniverseModel { */ public function loadConstellationsData(){ if( !$this->dry() ){ - $data = self::getF3()->ccpClient()->getUniverseRegionData($this->_id); + $data = self::getF3()->ccpClient()->send('getUniverseRegion', $this->_id); if(!empty($data)){ foreach((array)$data['constellations'] as $constellationsId){ /** diff --git a/app/Model/Universe/StarModel.php b/app/Model/Universe/StarModel.php index 5a12d9f5..197273e5 100644 --- a/app/Model/Universe/StarModel.php +++ b/app/Model/Universe/StarModel.php @@ -86,7 +86,7 @@ class StarModel extends AbstractUniverseModel { * @param array $additionalOptions */ protected function loadData(int $id, string $accessToken = '', array $additionalOptions = []){ - $data = self::getF3()->ccpClient()->getUniverseStarData($id); + $data = self::getF3()->ccpClient()->send('getUniverseStar', $id); if(!empty($data)){ /** * @var $type TypeModel diff --git a/app/Model/Universe/StargateModel.php b/app/Model/Universe/StargateModel.php index 03e8c2f2..f8915d7b 100644 --- a/app/Model/Universe/StargateModel.php +++ b/app/Model/Universe/StargateModel.php @@ -94,7 +94,7 @@ class StargateModel extends AbstractUniverseModel { * @param array $additionalOptions */ protected function loadData(int $id, string $accessToken = '', array $additionalOptions = []){ - $data = self::getF3()->ccpClient()->getUniverseStargateData($id); + $data = self::getF3()->ccpClient()->send('getUniverseStargate', $id); if(!empty($data)){ diff --git a/app/Model/Universe/StationModel.php b/app/Model/Universe/StationModel.php index daae2bc6..daafb4a3 100644 --- a/app/Model/Universe/StationModel.php +++ b/app/Model/Universe/StationModel.php @@ -123,7 +123,7 @@ class StationModel extends AbstractUniverseModel { * @param array $additionalOptions */ protected function loadData(int $id, string $accessToken = '', array $additionalOptions = []){ - $data = self::getF3()->ccpClient()->getUniverseStationData($id); + $data = self::getF3()->ccpClient()->send('getUniverseStation', $id); if(!empty($data) && !isset($data['error'])){ /** * @var $system SystemModel diff --git a/app/Model/Universe/StructureModel.php b/app/Model/Universe/StructureModel.php index 17b48b21..3ea0828a 100644 --- a/app/Model/Universe/StructureModel.php +++ b/app/Model/Universe/StructureModel.php @@ -90,7 +90,7 @@ class StructureModel extends AbstractUniverseModel { * @param array $additionalOptions */ protected function loadData(int $id, string $accessToken = '', array $additionalOptions = []){ - $data = self::getF3()->ccpClient()->getUniverseStructureData($id, $accessToken); + $data = self::getF3()->ccpClient()->send('getUniverseStructure', $id, $accessToken); if(!empty($data) && !isset($data['error'])){ /** * @var $type TypeModel diff --git a/app/Model/Universe/SystemModel.php b/app/Model/Universe/SystemModel.php index 7b035676..3775e027 100644 --- a/app/Model/Universe/SystemModel.php +++ b/app/Model/Universe/SystemModel.php @@ -491,7 +491,7 @@ class SystemModel extends AbstractUniverseModel { * @param array $additionalOptions */ protected function loadData(int $id, string $accessToken = '', array $additionalOptions = []){ - $data = self::getF3()->ccpClient()->getUniverseSystemData($id); + $data = self::getF3()->ccpClient()->send('getUniverseSystem', $id); if(!empty($data)){ /** @@ -521,7 +521,7 @@ class SystemModel extends AbstractUniverseModel { */ public function loadPlanetsData(){ if($this->valid()){ - $data = self::getF3()->ccpClient()->getUniverseSystemData($this->_id); + $data = self::getF3()->ccpClient()->send('getUniverseSystem', $this->_id); if($data['planets']){ // planets are optional since ESI v4 (e.g. Abyssal systems) foreach((array)$data['planets'] as $planetData){ @@ -542,7 +542,7 @@ class SystemModel extends AbstractUniverseModel { */ public function loadStargatesData(){ if($this->valid()){ - $data = self::getF3()->ccpClient()->getUniverseSystemData($this->_id); + $data = self::getF3()->ccpClient()->send('getUniverseSystem', $this->_id); if($data['stargates']){ foreach((array)$data['stargates'] as $stargateId){ /** @@ -561,7 +561,7 @@ class SystemModel extends AbstractUniverseModel { */ public function loadStationsData(){ if($this->valid()){ - $data = self::getF3()->ccpClient()->getUniverseSystemData($this->_id); + $data = self::getF3()->ccpClient()->send('getUniverseSystem', $this->_id); if($data['stations']){ foreach((array)$data['stations'] as $stationId){ /** diff --git a/app/Model/Universe/TypeModel.php b/app/Model/Universe/TypeModel.php index e9d9045c..88b78f75 100644 --- a/app/Model/Universe/TypeModel.php +++ b/app/Model/Universe/TypeModel.php @@ -352,7 +352,7 @@ class TypeModel extends AbstractUniverseModel { * @param array $additionalOptions */ protected function loadData(int $id, string $accessToken = '', array $additionalOptions = []){ - $data = self::getF3()->ccpClient()->getUniverseTypesData($id); + $data = self::getF3()->ccpClient()->send('getUniverseType', $id); if(!empty($data)){ $this->manipulateDogmaAttributes($data); diff --git a/composer-dev.json b/composer-dev.json index e38cfe9b..933df363 100644 --- a/composer-dev.json +++ b/composer-dev.json @@ -49,7 +49,7 @@ "cache/namespaced-cache": "1.0.*", "react/socket": "1.3.*", "react/promise-stream": "1.2.*", - "clue/ndjson-react": "1.0.*", + "clue/ndjson-react": "1.1.*", "exodus4d/pathfinder_esi": "dev-develop as 0.0.x-dev" }, "suggest": { diff --git a/composer.json b/composer.json index b7c984ed..34049977 100644 --- a/composer.json +++ b/composer.json @@ -49,8 +49,8 @@ "cache/namespaced-cache": "1.0.*", "react/socket": "1.3.*", "react/promise-stream": "1.2.*", - "clue/ndjson-react": "1.0.*", - "exodus4d/pathfinder_esi": "1.3.3" + "clue/ndjson-react": "1.1.*", + "exodus4d/pathfinder_esi": "2.0.0" }, "suggest": { "ext-redis": "Redis can be used as cache backend." diff --git a/gulpfile.js b/gulpfile.js index cc31a28f..6df592b6 100644 --- a/gulpfile.js +++ b/gulpfile.js @@ -516,7 +516,7 @@ gulp.task('task:hintJS', () => { * concat/build JS files by modules */ gulp.task('task:concatJS', () => { - let modules = ['login', 'mappage', 'setup', 'admin', 'PNotify.loader', 'datatables.loader']; + let modules = ['login', 'mappage', 'setup', 'admin', 'pnotify.loader', 'datatables.loader', 'summernote.loader']; let srcModules = ['./js/app/*(' + modules.join('|') + ').js']; return gulp.src(srcModules, {base: 'js'}) diff --git a/js/app.js b/js/app.js index bd9913f4..e49e90f3 100644 --- a/js/app.js +++ b/js/app.js @@ -70,16 +70,16 @@ requirejs.config({ 'datatables.net-buttons': 'lib/datatables/Buttons-1.5.6/js/dataTables.buttons.min', 'datatables.net-buttons-html': 'lib/datatables/Buttons-1.5.6/js/buttons.html5.min', 'datatables.net-responsive': 'lib/datatables/Responsive-2.2.2/js/dataTables.responsive.min', + 'datatables.net-rowgroup': 'lib/datatables/RowGroup-1.1.1/js/dataTables.rowGroup.min', 'datatables.net-select': 'lib/datatables/Select-1.3.0/js/dataTables.select.min', 'datatables.plugins.render.ellipsis': 'lib/datatables/plugins/render/ellipsis', // PNotify // v4.0.0 PNotify - notification core file - https://sciactive.com/pnotify - 'PNotify.loader': './app/pnotify.loader', + 'pnotify.loader': './app/pnotify.loader', 'PNotify': 'lib/pnotify/PNotify', 'PNotifyButtons': 'lib/pnotify/PNotifyButtons', - 'PNotifyNonBlock': 'lib/pnotify/PNotifyNonBlock', - 'PNotifyDesktop': 'lib/pnotify/PNotifyDesktop', 'PNotifyCallbacks': 'lib/pnotify/PNotifyCallbacks', + 'PNotifyDesktop': 'lib/pnotify/PNotifyDesktop', 'NonBlock': 'lib/pnotify/NonBlock' // v1.0.8 NonBlock.js - for PNotify "nonblock" feature }, shim: { @@ -116,6 +116,9 @@ requirejs.config({ 'datatables.net-responsive': { deps: ['datatables.net'] }, + 'datatables.net-rowgroup': { + deps: ['datatables.net'] + }, 'datatables.net-select': { deps: ['datatables.net'] }, diff --git a/js/app/counter.js b/js/app/counter.js index 866c92c9..4e2d0fc8 100644 --- a/js/app/counter.js +++ b/js/app/counter.js @@ -107,7 +107,7 @@ define([ updateDateDiff(element, date, round); } }; - Cron.set(counterTask); + counterTask.start(); element.attr(config.counterTaskAttr, taskName); } @@ -138,7 +138,7 @@ define([ counterTask.task = timer => { tableApi.cells(null, columnSelector).every(cellUpdate); }; - Cron.set(counterTask); + counterTask.start(); tableElement.attr(config.counterTaskAttr, taskName); }; diff --git a/js/app/datatables.loader.js b/js/app/datatables.loader.js index 202f3f51..b2b008d7 100644 --- a/js/app/datatables.loader.js +++ b/js/app/datatables.loader.js @@ -8,7 +8,8 @@ define([ 'datatables.net-select', 'datatables.net-buttons', 'datatables.net-buttons-html', - 'datatables.net-responsive' + 'datatables.net-responsive', + 'datatables.net-rowgroup' ], ($, Init, Counter, DeferredPromise, TimeoutPromise) => { 'use strict'; diff --git a/js/app/lib/cache.js b/js/app/lib/cache.js index de8cb11a..2b541343 100644 --- a/js/app/lib/cache.js +++ b/js/app/lib/cache.js @@ -5,7 +5,7 @@ define([], () => { * Abstract Cache Strategy class * @type {AbstractStrategy} */ - let AbstractStrategy = class AbstractStrategy { + class AbstractStrategy { constructor(){ if(new.target === AbstractStrategy){ throw new TypeError('Cannot construct AbstractStrategy instances directly'); @@ -19,7 +19,7 @@ define([], () => { static create(){ return new this(); } - }; + } /** * LIFO Cache Strategy - First In First Out @@ -27,7 +27,7 @@ define([], () => { * without any regard to how often or how many times they were accessed before. * @type {StrategyFIFO} */ - let StrategyFIFO = class StrategyFIFO extends AbstractStrategy { + class StrategyFIFO extends AbstractStrategy { valueToCompare(metaData){ return metaData.age(); } @@ -35,7 +35,7 @@ define([], () => { compare(a, b){ return b - a; } - }; + } /** * LFU Cache Strategy - Least Frequently Used @@ -43,7 +43,7 @@ define([], () => { * Those that are used least often are discarded first * @type {StrategyLFU} */ - let StrategyLFU = class StrategyLFU extends AbstractStrategy { + class StrategyLFU extends AbstractStrategy { valueToCompare(metaData){ return metaData.hitCount; } @@ -51,7 +51,7 @@ define([], () => { compare(a, b){ return a - b; } - }; + } /** * LRU Cache Strategy - Least Recently Used @@ -59,7 +59,7 @@ define([], () => { * No matter how often they have been accessed. * @type {StrategyLRU} */ - let StrategyLRU = class StrategyLRU extends AbstractStrategy { + class StrategyLRU extends AbstractStrategy { valueToCompare(metaData){ return metaData.hits[metaData.hits.length - 1] || metaData.set; } @@ -67,26 +67,26 @@ define([], () => { compare(a, b){ return a - b; } - }; + } /** * Each entry in cache also has its own instance of CacheEntryMeta * -> The configured Cache Strategy use this meta data for eviction policy * @type {CacheEntryMeta} */ - let CacheEntryMeta = class CacheEntryMeta { + class CacheEntryMeta { constructor(ttl, tSet){ - this.ttl = ttl; - this.tSet = tSet || this.constructor.now(); - this.tHits = []; + this._ttl = ttl; // ttl < 0 => no expire + this._tSet = tSet || this.constructor.now(); + this._tHits = []; } get set(){ - return this.tSet; + return this._tSet; } get hits(){ - return this.tHits; + return this._tHits; } get hitCount(){ @@ -94,15 +94,15 @@ define([], () => { } newHit(current){ - this.tHits.push(current || this.constructor.now()); + this._tHits.push(current || this.constructor.now()); } age(current){ - return (current || this.constructor.now()) - this.tSet; + return (current || this.constructor.now()) - this._tSet; } expired(current){ - return this.ttl < this.age(current); + return this._ttl < 0 ? false : this._ttl < this.age(current); } static now(){ @@ -112,7 +112,7 @@ define([], () => { static create(ttl, tSet){ return new this(ttl, tSet); } - }; + } /** * Each instance of Cache represents a key value in memory data store @@ -123,26 +123,18 @@ define([], () => { * if cache reaches maxSize limit, to increase performance. * @type {Cache} */ - let Cache = class Cache { + class Cache { - constructor(config){ - this.config = Object.assign({},{ - name: 'Default', // custom unique name for identification - ttl: 3600, // default ttl for cache entries - maxSize: 600, // max cache entries - bufferSize: 10, // cache entry count in percent to be removed if maxSize reached - strategy: 'FIFO', // cache strategy policy - debug: false // debug output in console - }, config); - - this.store = new Map(); - this.metaStore = new WeakMap(); - this.strategy = this.constructor.setStrategy(this.config.strategy); + constructor(config = {}){ + this._config = Object.assign({}, Cache.defaultConfig, config); + this._store = new Map(); + this._metaStore = new WeakMap(); + this._strategy = this.constructor.setStrategy(this._config.strategy); this.debug = (msg,...data) => { - if(this.config.debug){ + if(this._config.debug){ data = (data || []); - data.unshift(this.config.name); + data.unshift(this._config.name); console.debug('debug: CACHE %o | ' + msg, ...data); } }; @@ -151,34 +143,34 @@ define([], () => { } get size(){ - return this.store.size; + return this._store.size; } isFull(){ - return this.size>= this.config.maxSize; + return this.size>= this._config.maxSize; } set(key, value, ttl){ - if(this.store.has(key)){ + if(this._store.has(key)){ this.debug('SET key %o, UPDATE value %o', key, value); - this.store.set(key, value); + this._store.set(key, value); }else{ this.debug('SET key %o, NEW value %o', key, value); if(this.isFull()){ this.debug(' ↪ FULL trim cache…'); this.trim(this.trimCount(1)); } - this.store.set(key, value); + this._store.set(key, value); } - this.metaStore.set(value, CacheEntryMeta.create(ttl || this.config.ttl)); + this._metaStore.set(value, CacheEntryMeta.create(ttl || this._config.ttl)); } get(key){ - if(this.store.has(key)){ - let value = this.store.get(key); + if(this._store.has(key)){ + let value = this._store.get(key); if(value){ - let metaData = this.metaStore.get(value); + let metaData = this._metaStore.get(value); if(metaData.expired()){ this.debug('EXPIRED key %o delete', key); this.delete(key); @@ -199,8 +191,8 @@ define([], () => { keysForTrim(count){ let trimKeys = []; let compare = []; - for(let [key, value] of this.store){ - let metaData = this.metaStore.get(value); + for(let [key, value] of this._store){ + let metaData = this._metaStore.get(value); if(metaData.expired()){ trimKeys.push(key); if(count === trimKeys.length){ @@ -209,14 +201,14 @@ define([], () => { }else{ compare.push({ key: key, - value: this.strategy.valueToCompare(metaData) + value: this._strategy.valueToCompare(metaData) }); } } let countLeft = count - trimKeys.length; if(countLeft > 0){ - compare = compare.sort((a, b) => this.strategy.compare(a.value, b.value)); + compare = compare.sort((a, b) => this._strategy.compare(a.value, b.value)); trimKeys = trimKeys.concat(compare.splice(0, countLeft).map(a => a.key)); } @@ -224,20 +216,20 @@ define([], () => { } keys(){ - return this.store.keys(); + return this._store.keys(); } delete(key){ - return this.store.delete(key); + return this._store.delete(key); } clear(){ - this.store.clear(); + this._store.clear(); } trimCount(spaceLeft){ - let bufferSize = Math.max(Math.round(this.config.maxSize / 100 * this.config.bufferSize), spaceLeft); - return Math.min(Math.max(this.size - this.config.maxSize + bufferSize, 0), this.size); + let bufferSize = Math.max(Math.round(this._config.maxSize / 100 * this._config.bufferSize), spaceLeft); + return Math.min(Math.max(this.size - this._config.maxSize + bufferSize, 0), this.size); } trim(count){ @@ -253,9 +245,9 @@ define([], () => { status(){ return { - config: this.config, - store: this.store, - metaStore: this.metaStore + config: this._config, + store: this._store, + metaStore: this._metaStore }; } @@ -269,6 +261,15 @@ define([], () => { } } + } + + Cache.defaultConfig = { + name: 'Default', // custom unique name for identification + ttl: 3600, // default ttl for cache entries + maxSize: 600, // max cache entries + bufferSize: 10, // cache entry count in percent to be removed if maxSize reached + strategy: 'FIFO', // cache strategy policy + debug: false // debug output in console }; return Cache; diff --git a/js/app/lib/cron.js b/js/app/lib/cron.js index 70f9a8bd..2775a442 100644 --- a/js/app/lib/cron.js +++ b/js/app/lib/cron.js @@ -11,7 +11,7 @@ define([ console.info('task1 function():', timer.getTotalTimeValues()); return 'OK'; }; - Cron.set(task1); + task1.start(); Example2 run task every 3 seconds --------------------------------------------------------------------------------- let task1 = Cron.new('task1', {precision: 'seconds', interval: 3, timeout: 100}); @@ -19,7 +19,7 @@ define([ console.info('task1 function():', timer.getTotalTimeValues()); return 'OK'; }; - Cron.set(task1); + task1.start(); Example3 resolve Promise on run ---------------------------------------------------------------------------------- let task1 = Cron.new('task1', {precision: 'seconds', interval: 1, timeout: 100}); @@ -35,14 +35,14 @@ define([ }); }); }; - Cron.set(task1); + task1.start(); Example4 run task once at given Date() -------------------------------------------------------------------------- let dueDate = new Date(); dueDate.setSeconds(dueDate.getSeconds() + 5); let task2 = Cron.new('task2', {precision: 'seconds', timeout: 100, dueDate: dueDate}); task2.task = () => 'OK task2'; - Cron.set(task2); + task2.start(); */ /** @@ -51,35 +51,42 @@ define([ * @type {Task} */ let Task = class Task { - constructor(name, config){ + /** + * + * @param {string} name + * @param {{}} config + * @param {CronManager} manager + */ + constructor(name, config, manager = null){ if(typeof name !== 'string'){ throw new TypeError('Task "name" must be instance of String, Type of "' + typeof name + '" given'); } this._config = Object.assign({}, this.constructor.defaultConfig, config); this._name = name; // unique name for identification - this._task = undefined; // task to run, instanceof Function, can also return a Promise - this._manager = undefined; // reference to CronManager() that handles this task + this._task = (timer, task) => {}; // task to run, instanceof Function, can also return a Promise + this._manager = manager; // reference to CronManager() that handles this task + this._runCount = 0; // counter for run() calls this._runQueue = new Map(); // current run() processes. > 1 requires config.isParallel: true - this._runCount = 0; // total run counter for this task this._lastTotalTimeValues = undefined; // time values of last run() } + /** + * @returns {string} + */ get name(){ return this._name; } - get task(){ + /** + * @returns {(function())} task + */ + get task() { return this._task; } - get runCount(){ - return this._runCount; - } - - get precision(){ - return this._config.precision; - } - + /** + * @param {(function())} task + */ set task(task){ if(task instanceof Function){ this._task = task; @@ -88,34 +95,120 @@ define([ } } + /** + * @returns {number} + */ + get runCount(){ + return this._runCount; + } + + /** + * @returns {string} + */ + get precision(){ + return this.get('precision'); + } + + /** + * @returns {boolean} + */ + get paused(){ + return this.get('paused'); + } + + /** + * @returns {boolean} + */ + get targetAchieved(){ + return this.get('targetRunCount') ? this.runCount >= this.get('targetRunCount') : false; + } + + /** + * @returns {number} + */ + get targetProgress(){ + return parseFloat( + parseFloat( + (!this.get('targetRunCount') || !this.runCount) ? + 0 : + (100 / this.get('targetRunCount') * this.runCount) + ).toFixed(2)); + } + + /** + * @param option + * @returns {*} + */ get(option){ return this._config[option]; } + /** + * @param {string} option + * @param {*} value + */ set(option, value){ this._config[option] = value; } - setManager(manager){ - this._manager = manager; + /** + * connect CronManager with instance + * @param {CronManager} manager + */ + connect(manager = this._manager){ + if(manager instanceof CronManager){ + if(manager !== this._manager){ + // disconnect from current manager (if exists) + this.disconnect(); + this._manager = manager; + } + this._manager.set(this); + }else{ + throw new TypeError('Parameter must be instance of CronManager. Type of "' + typeof manager + '" given'); + } } + /** + * disconnect from CronManager + * @param {CronManager} manager + */ + disconnect(manager = this._manager){ + if(manager instanceof CronManager){ + if(this.isConnected(manager)){ + this._manager.delete(this._name); + } + }else{ + throw new TypeError('Parameter must be instance of CronManager. Type of "' + typeof manager + '" given'); + } + } + + /** + * checks if CronManager is connected with instance + * @param {CronManager} manager + * @returns {boolean} + */ + isConnected(manager = this._manager){ + return (manager instanceof CronManager) && + manager === this._manager && + manager.has(this._name); + } + + /** + * if task is currently running + * @returns {boolean} + */ isRunning(){ return !!this._runQueue.size; } - delete(){ - let isDeleted = false; - if(this._manager){ - isDeleted = this._manager.delete(this._name); - } - return isDeleted; - } - + /** + * @param timer + * @returns {boolean} + */ isDue(timer){ - if(this._config.dueDate instanceof Date){ + if(this.get('dueDate') instanceof Date){ // run once at dueDate - if(new Date().getTime() >= this._config.dueDate.getTime()){ + if(new Date().getTime() >= this.get('dueDate').getTime()){ return true; } }else{ @@ -124,8 +217,8 @@ define([ let totalTimeValuePrecision = totalTimeValues[this.precision]; totalTimeValuePrecision -= this._lastTotalTimeValues ? this._lastTotalTimeValues[this.precision] : 0; if( - this._config.interval === 1 || - totalTimeValuePrecision % this._config.interval === 0 + this.get('interval') === 1 || + totalTimeValuePrecision % this.get('interval') === 0 ){ return true; } @@ -133,23 +226,30 @@ define([ return false; } + /** + * @param timer + */ invoke(timer){ if( + !this.paused && this.isDue(timer) && - (!this.isRunning() || this._config.isParallel) + (!this.isRunning() || this.get('isParallel')) ){ this.run(timer); } } + /** + * @param timer + */ run(timer){ this._lastTotalTimeValues = Object.assign({}, timer.getTotalTimeValues()); let runId = 'run_' + (++this._runCount); let runExec = resolve => { - resolve(this.task(timer, this)); + resolve(this._task(timer, this)); }; - let myProm = this._config.timeout > 0 ? new TimeoutPromise(runExec, this._config.timeout) : new Promise(runExec); + let myProm = this.get('timeout') > 0 ? new TimeoutPromise(runExec, this.get('timeout')) : new Promise(runExec); myProm.then(payload => { // resolved within timeout -> wait for finally() block }).catch(error => { @@ -162,14 +262,37 @@ define([ // -> remove from _runQueue this._runQueue.delete(runId); - // remove this task from store after run - if(this._config.dueDate instanceof Date){ - this.delete(); + if(this.get('dueDate') instanceof Date){ + this.disconnect(); + } + + if(this.targetAchieved){ + this.stop(); } }); this._runQueue.set(runId, myProm); } + + // Task controls ---------------------------------------------------------------------------------------------- + + start(){ + this.set('paused', false); + this.connect(); + } + + stop(){ + this.reset(); + this.disconnect(); + } + + pause(){ + this.set('paused', true); + } + + reset(){ + this._runCount = 0; + } }; Task.defaultConfig = { @@ -177,7 +300,9 @@ define([ isParallel: false, // if true this task can run parallel, e.g. if prev execution has not finished interval: 1, // relates to 'precision'. 'interval' = 3 and 'precision' = "seconds" -> run every 3 seconds dueDate: undefined, // if Date() instance is set, task only runs once at dueDate - timeout: 50 // if > 0, execution time that exceeds timeout (ms) throw error + timeout: 50, // if > 0, execution time that exceeds timeout (ms) throw error + paused: false, // if true this task will not run() but will be invoce()´ed + targetRunCount: 0 // if > 0, task will stop if targetRunCount is reached }; @@ -188,6 +313,9 @@ define([ */ let CronManager = class CronManager { + /** + * @param {{}} config + */ constructor(config){ this._config = Object.assign({}, this.constructor.defaultConfig, config); this._timerConfig = Object.assign({}, this.constructor.defaultTimerConfig); @@ -211,47 +339,75 @@ define([ }; } + /** + * @param {string} name + * @param {{}} config + * @returns {Task} + */ new(name, config){ - return new Task(name, config); + return new Task(name, config, this); } + /** + * @param {Task} task + */ set(task){ if(task instanceof Task){ - // check for unique task name, or update existing task - if(!this.has(task.name) || (this.get(task.name) === task)){ - // set new or update existing task - task.setManager(this); + // check for unique task name + if(!this.has(task.name)){ + // connect new task + // -> must be before connect(this)! (prevents infinite loop) this._tasks.set(task.name, task); + task.connect(this); + this.debug('SET/UPDATE task: %o config: %o', task.name, task); // start timer (if it is not already running) this.auto(); - }else{ - console.warn('FAILED to set task. Task name %o already exists', task.name); } }else{ throw new TypeError('Parameter must be instance of Task'); } } + /** + * @param {string} name + * @param {{}} config + */ setNew(name, config){ this.set(this.new(name, config)); } + /** + * @param {string} name + * @returns {Task|undefined} + */ get(name){ return this._tasks.get(name); } + /** + * @param {string} name + * @returns {boolean} + */ has(name){ return this._tasks.has(name); } + /** + * @param {string} name + */ delete(name){ - let isDeleted = this._tasks.delete(name); - if(isDeleted){ + if(this.has(name)){ + let task = this._tasks.get(name); + // disconnect task + // -> must be before disconnect(this)! (prevents infinite loop) + this._tasks.delete(name); + task.disconnect(this); + this.debug('DELETE task: %o', name); + // stop timer (if no more tasks connected) this.auto(); } - return isDeleted; } clear(){ @@ -260,6 +416,10 @@ define([ this.auto(); } + /** + * @param {string} precision + * @returns {Task[]} + */ tasksByPrecision(precision){ let tasks = []; this._tasks.forEach(task => { diff --git a/js/app/lib/dataStore.js b/js/app/lib/dataStore.js index 3c8d81ee..3a52c853 100644 --- a/js/app/lib/dataStore.js +++ b/js/app/lib/dataStore.js @@ -34,7 +34,7 @@ define([], () => { } get(obj, key) { - return this._store.has(obj) && this._store.get(obj).get(key); + return this._store.has(obj) && (key ? this._store.get(obj).get(key) : this._store.get(obj)); } has(obj, key) { @@ -45,6 +45,8 @@ define([], () => { let ret = false; if (this._store.has(obj)) { ret = this._store.get(obj).delete(key); + // remove obj if store is empty + // -> 'size' property is does not exist if valueStore is WeakMap if (!this._store.get(obj).size) { this._store.delete(obj); } diff --git a/js/app/lib/localStore.js b/js/app/lib/localStore.js index 6df7828b..68283d22 100644 --- a/js/app/lib/localStore.js +++ b/js/app/lib/localStore.js @@ -193,10 +193,10 @@ define([ } /** - * set LocalStoreManager for this instance + * connect LocalStoreManager with instance * @param {LocalStoreManager} manager */ - setManager(manager){ + connect(manager){ if(manager instanceof LocalStoreManager){ this._manager = manager; }else{ @@ -299,7 +299,7 @@ define([ /** * check var for Object * @param obj - * @returns {boolean|boolean} + * @returns {boolean} */ static isObject(obj){ return (!!obj) && (obj.constructor === Object); @@ -372,7 +372,7 @@ define([ }, { name: LocalStore.buildDbName(name) }); - store.setManager(this); + store.connect(this); this._store.set(name, store); } return this._store.get(name); diff --git a/js/app/lib/prototypes.js b/js/app/lib/prototypes.js index b63e10eb..23182801 100644 --- a/js/app/lib/prototypes.js +++ b/js/app/lib/prototypes.js @@ -103,14 +103,9 @@ define([ * @returns {number} */ String.prototype.hashCode = function(){ - let hash = 0, i, chr; - if(this.length === 0) return hash; - for(i = 0; i < this.length; i++){ - chr = this.charCodeAt(i); - hash = ((hash << 5) - hash) + chr; - hash |= 0; // Convert to 32bit integer - } - return hash; + let hash = this.split('').reduce((a,b) => (((a << 5) - a) + b.charCodeAt(0))|0, 0); + // make positive + return (hash + 2147483647) + 1; }; String.prototype.trimLeftChars = function(charList){ diff --git a/js/app/map/contextmenu.js b/js/app/map/contextmenu.js index 502b043a..f2622862 100644 --- a/js/app/map/contextmenu.js +++ b/js/app/map/contextmenu.js @@ -222,7 +222,7 @@ define([ * @param excludeMenu */ let closeMenus = excludeMenu => { - let allMenus = $('.' + config.contextMenuClass + '[role="menu"]'); + let allMenus = $('.' + config.contextMenuClass + '[role="menu"][style*="display: block"]'); if(excludeMenu){ allMenus = allMenus.not(excludeMenu); } @@ -291,17 +291,15 @@ define([ /** * default config (skeleton) for valid context menu configuration - * @returns {{hidden: Array, active: Array, disabled: Array, id: string, selectCallback: null}} + * @returns {{hidden: [], active: [], disabled: [], id: string, selectCallback: null}} */ - let defaultMenuOptionConfig = () => { - return { - 'id': '', - 'selectCallback': null, - 'hidden': [], - 'active': [], - 'disabled': [] - }; - }; + let defaultMenuOptionConfig = () => ({ + 'id': '', + 'selectCallback': null, + 'hidden': [], + 'active': [], + 'disabled': [] + }); return { config: config, diff --git a/js/app/map/map.js b/js/app/map/map.js index e379e6d8..6e61c9d1 100644 --- a/js/app/map/map.js +++ b/js/app/map/map.js @@ -29,7 +29,6 @@ define([ mapIdPrefix: 'pf-map-', // id prefix for all maps systemClass: 'pf-system', // class for all systems - systemActiveClass: 'pf-system-active', // class for an active system on a map systemSelectedClass: 'pf-system-selected', // class for selected systems on a map systemHeadClass: 'pf-system-head', // class for system head systemHeadNameClass: 'pf-system-head-name', // class for system name @@ -116,7 +115,7 @@ define([ }, connectionsDetachable: true, // dragOptions are set -> allow detaching them maxConnections: 10, // due to isTarget is true, this is the max count of !out!-going connections - // isSource:true + //isSource:true }, target: { filter: filterSystemHeadEvent, @@ -125,10 +124,10 @@ define([ //allowLoopBack: false, // loopBack connections are not allowed cssClass: config.endpointTargetClass, dropOptions: { - hoverClass: config.systemActiveClass, + //hoverClass: '', activeClass: 'dragActive' }, - // uniqueEndpoint: false + //uniqueEndpoint: false }, endpointTypes: Init.endpointTypes, connectionTypes: Init.connectionTypes @@ -876,23 +875,23 @@ define([ * connect two systems * @param map * @param connectionData - * @returns new connection + * @returns {Promise} */ - let drawConnection = (map, connectionData) => { + let drawConnection = (map, connectionData) => new Promise((resolve, reject) => { let mapContainer = $(map.getContainer()); let mapId = mapContainer.data('id'); let connectionId = connectionData.id || 0; - let connection; let sourceSystem = $('#' + MapUtil.getSystemId(mapId, connectionData.source)); let targetSystem = $('#' + MapUtil.getSystemId(mapId, connectionData.target)); // check if both systems exists // (If not -> something went wrong e.g. DB-Foreign keys for "ON DELETE",...) - if( - sourceSystem.length && - targetSystem.length - ){ - connection = map.connect({ + if(!sourceSystem.length){ + reject(new Error(`drawConnection(): source system (id: ${connectionData.source}) not found`)); + }else if(!targetSystem.length){ + reject(new Error(`drawConnection(): target system (id: ${connectionData.target}) not found`)); + }else{ + let connection = map.connect({ source: sourceSystem[0], target: targetSystem[0], scope: connectionData.scope || map.Defaults.Scope, @@ -948,18 +947,18 @@ define([ } } } - } - }else{ - if( !sourceSystem.length ){ - console.warn('drawConnection(): source system (id: ' + connectionData.source + ') not found'); - } - if( !targetSystem.length ){ - console.warn('drawConnection(): target system (id: ' + connectionData.target + ') not found'); + + resolve({ + action: 'drawConnection', + data: { + connection: connection + } + }); + }else{ + reject(new Error(`drawConnection(): connection must be instanceof jsPlumb.Connection`)); } } - - return connection; - }; + }); /** * compares the current data and new data of a connection and updates status @@ -1233,168 +1232,178 @@ define([ * @param reject */ let updateMapExecutor = (resolve, reject) => { - // jsPlumb needs to be initialized. This is not the case when switching between map tabs right after refresh - let mapContainer = mapConfig.map ? $(mapConfig.map.getContainer()) : null; - if(mapContainer){ - let mapId = mapConfig.config.id; - - // add additional information for this map - if(mapContainer.data('updated') !== mapConfig.config.updated.updated){ - mapContainer.data('name', mapConfig.config.name); - mapContainer.data('scopeId', mapConfig.config.scope.id); - mapContainer.data('typeId', mapConfig.config.type.id); - mapContainer.data('typeName', mapConfig.config.type.name); - mapContainer.data('icon', mapConfig.config.icon); - mapContainer.data('created', mapConfig.config.created.created); - mapContainer.data('updated', mapConfig.config.updated.updated); - } - - // get map data - let mapData = getMapDataForSync(mapContainer, [], true); - - - if(mapData !== false){ - // map data available -> map not locked by update counter :) - let currentSystemData = mapData.data.systems; - let currentConnectionData = mapData.data.connections; - - // update systems ================================================================================= - for(let i = 0; i < mapConfig.data.systems.length; i++){ - let systemData = mapConfig.data.systems[i]; - - // add system - let addNewSystem = true; - - for(let k = 0; k < currentSystemData.length; k++){ - if(currentSystemData[k].id === systemData.id){ - if(currentSystemData[k].updated.updated < systemData.updated.updated){ - // system changed -> update - mapContainer.getSystem(mapConfig.map, systemData); - } - - addNewSystem = false; - break; - } - } - - if(addNewSystem === true){ - drawSystem(mapConfig.map, systemData); - } - } - - // check for systems that are gone -> delete system - for(let a = 0; a < currentSystemData.length; a++){ - let deleteThisSystem = true; - - for(let b = 0; b < mapConfig.data.systems.length; b++){ - let deleteSystemData = mapConfig.data.systems[b]; - - if(deleteSystemData.id === currentSystemData[a].id){ - deleteThisSystem = false; - break; - } - } - - if(deleteThisSystem === true){ - let deleteSystem = $('#' + MapUtil.getSystemId(mapContainer.data('id'), currentSystemData[a].id)); - - // system not found -> delete system - System.removeSystems(mapConfig.map, deleteSystem); - } - } - - // update connections ============================================================================= - - // jsPlumb batch() is used, otherwise there are some "strange" visual bugs - // when switching maps (Endpoints are not displayed correctly) - mapConfig.map.batch(function(){ - - for(let j = 0; j < mapConfig.data.connections.length; j++){ - let connectionData = mapConfig.data.connections[j]; - - // add connection - let addNewConnection= true; - - for(let c = 0; c < currentConnectionData.length; c++){ - if(currentConnectionData[c].id === connectionData.id){ - // connection already exists -> check for updates - if(currentConnectionData[c].updated < connectionData.updated){ - // connection changed -> update - updateConnection(currentConnectionData[c].connection, connectionData); - } - - addNewConnection = false; - break; - }else if( - currentConnectionData[c].id === 0 && - currentConnectionData[c].source === connectionData.source && - currentConnectionData[c].target === connectionData.target - ){ - // if ids don´t match -> check for unsaved connection - updateConnection(currentConnectionData[c].connection, connectionData); - - addNewConnection = false; - break; - } - } - - if(addNewConnection === true){ - drawConnection(mapConfig.map, connectionData); - } - } - - // check for connections that are gone -> delete connection - for(let d = 0; d < currentConnectionData.length; d++){ - // skip connections with id = 0 -> they might get updated before - if(currentConnectionData[d].id === 0){ - continue; - } - - let deleteThisConnection = true; - - for(let e = 0; e < mapConfig.data.connections.length;e++){ - let deleteConnectionData = mapConfig.data.connections[e]; - - if(deleteConnectionData.id === currentConnectionData[d].id){ - deleteThisConnection = false; - break; - } - } - - if(deleteThisConnection === true){ - // connection not found -> delete connection - let deleteConnection = currentConnectionData[d].connection; - - if(deleteConnection){ - // check if "source" and "target" still exist before remove - // this is NOT the case if the system was removed previous - if( - deleteConnection.source && - deleteConnection.target - ){ - mapConfig.map.deleteConnection(deleteConnection, {fireEvent: false}); - } - } - } - } - }); - - // update local connection cache - updateConnectionsCache(mapConfig.map); - }else{ - // map is currently logged -> queue update for this map until unlock - if( mapUpdateQueue.indexOf(mapId) === -1 ){ - mapUpdateQueue.push(mapId); - } - } - } - - resolve({ + let payload = { action: 'updateMap', data: { mapConfig: mapConfig } - }); + }; + + // jsPlumb needs to be initialized. This is not the case when switching between map tabs right after refresh + let mapContainer = mapConfig.map ? mapConfig.map.getContainer() : null; + if(!mapContainer){ + return resolve(payload); + } + + let mapId = mapConfig.config.id; + + // mapData == false -> map locked by update counter. Skip update + let mapData = getMapDataForSync(mapContainer, [], true); + + if(!mapData){ + // map is currently locked -> queue update for this map until unlock + if(mapUpdateQueue.indexOf(mapId) === -1){ + mapUpdateQueue.push(mapId); + } + return resolve(payload); + } + + mapContainer = $(mapContainer); + + // add additional information for this map + if(mapContainer.data('updated') !== mapConfig.config.updated.updated){ + mapContainer.data('name', mapConfig.config.name); + mapContainer.data('scopeId', mapConfig.config.scope.id); + mapContainer.data('typeId', mapConfig.config.type.id); + mapContainer.data('typeName', mapConfig.config.type.name); + mapContainer.data('icon', mapConfig.config.icon); + mapContainer.data('created', mapConfig.config.created.created); + mapContainer.data('updated', mapConfig.config.updated.updated); + } + + // map data available -> map not locked by update counter :) + let currentSystemData = mapData.data.systems; + let currentConnectionData = mapData.data.connections; + + // update systems ========================================================================================= + for(let i = 0; i < mapConfig.data.systems.length; i++){ + let systemData = mapConfig.data.systems[i]; + + // add system + let addNewSystem = true; + + for(let k = 0; k < currentSystemData.length; k++){ + if(currentSystemData[k].id === systemData.id){ + if(currentSystemData[k].updated.updated < systemData.updated.updated){ + // system changed -> update + mapContainer.getSystem(mapConfig.map, systemData); + } + + addNewSystem = false; + break; + } + } + + if(addNewSystem === true){ + drawSystem(mapConfig.map, systemData).catch(console.warn); + } + } + + // check for systems that are gone -> delete system + for(let a = 0; a < currentSystemData.length; a++){ + let deleteThisSystem = true; + + for(let b = 0; b < mapConfig.data.systems.length; b++){ + let deleteSystemData = mapConfig.data.systems[b]; + + if(deleteSystemData.id === currentSystemData[a].id){ + deleteThisSystem = false; + break; + } + } + + if(deleteThisSystem === true){ + let deleteSystem = $('#' + MapUtil.getSystemId(mapContainer.data('id'), currentSystemData[a].id)); + + // system not found -> delete system + System.removeSystems(mapConfig.map, deleteSystem); + } + } + + // update connections ===================================================================================== + + // jsPlumb setSuspendDrawing() (batch() did not work because it async 'scopes' out updates). + // -> Otherwise there are some "strange" visual bugs when switching maps (Endpoints are not displayed correctly) + // -> needs to be "disabled" later in this method. + mapConfig.map.setSuspendDrawing(true); + + for(let j = 0; j < mapConfig.data.connections.length; j++){ + let connectionData = mapConfig.data.connections[j]; + + // add connection + let addNewConnection= true; + + for(let c = 0; c < currentConnectionData.length; c++){ + if(currentConnectionData[c].id === connectionData.id){ + // connection already exists -> check for updates + if(currentConnectionData[c].updated < connectionData.updated){ + // connection changed -> update + updateConnection(currentConnectionData[c].connection, connectionData); + } + + addNewConnection = false; + break; + }else if( + currentConnectionData[c].id === 0 && + currentConnectionData[c].source === connectionData.source && + currentConnectionData[c].target === connectionData.target + ){ + // if ids don´t match -> check for unsaved connection + updateConnection(currentConnectionData[c].connection, connectionData); + + addNewConnection = false; + break; + } + } + + if(addNewConnection === true){ + drawConnection(mapConfig.map, connectionData).catch(console.warn); + } + } + + // check for connections that are gone -> delete connection + for(let d = 0; d < currentConnectionData.length; d++){ + // skip connections with id = 0 -> they might get updated before + if(currentConnectionData[d].id === 0){ + continue; + } + + let deleteThisConnection = true; + + for(let e = 0; e < mapConfig.data.connections.length;e++){ + let deleteConnectionData = mapConfig.data.connections[e]; + + if(deleteConnectionData.id === currentConnectionData[d].id){ + deleteThisConnection = false; + break; + } + } + + if(deleteThisConnection === true){ + // connection not found -> delete connection + let deleteConnection = currentConnectionData[d].connection; + + if(deleteConnection){ + // check if "source" and "target" still exist before remove + // this is NOT the case if the system was removed previous + if( + deleteConnection.source && + deleteConnection.target + ){ + mapConfig.map.deleteConnection(deleteConnection, {fireEvent: false}); + } + } + } + } + + mapConfig.map.setSuspendDrawing(false, true); + + // update local connection cache + updateConnectionsCache(mapConfig.map); + + + + return resolve(payload); }; /** @@ -1402,44 +1411,53 @@ define([ * @param payload * @returns {Promise} */ - let filterMapByScopes = payload => { - let filterMapByScopesExecutor = resolve => { - Util.getLocalStore('map').getItem(payload.data.mapConfig.config.id).then(dataStore => { - let scopes = []; - if(dataStore && dataStore.filterScopes){ - scopes = dataStore.filterScopes; - } - - MapUtil.filterMapByScopes(payload.data.mapConfig.map, scopes); - resolve(payload); - }); - }; - - return new Promise(filterMapByScopesExecutor); - }; + let filterMapByScopes = payload => new Promise(resolve => { + Util.getLocalStore('map').getItem(payload.data.mapConfig.config.id).then(dataStore => { + let scopes = []; + if(dataStore && dataStore.filterScopes){ + scopes = dataStore.filterScopes; + } + MapUtil.filterMapByScopes(payload.data.mapConfig.map, scopes); + resolve(payload); + }); + }); /** * show signature overlays * @param payload * @returns {Promise} */ - let showInfoSignatureOverlays = payload => { - let showInfoSignatureOverlaysExecutor = resolve => { - Util.getLocalStore('map').getItem(payload.data.mapConfig.config.id).then(dataStore => { - if(dataStore && dataStore.mapSignatureOverlays){ - MapOverlay.showInfoSignatureOverlays($(payload.data.mapConfig.map.getContainer())); - } + let showInfoSignatureOverlays = payload => new Promise(resolve => { + Util.getLocalStore('map').getItem(payload.data.mapConfig.config.id).then(dataStore => { + if(dataStore && dataStore.mapSignatureOverlays){ + MapOverlay.showInfoSignatureOverlays($(payload.data.mapConfig.map.getContainer())); + } + resolve(payload); + }); + }); - resolve(payload); + /** + * after map update is complete + * -> trigger update event for 'global' modules + * @param payload + * @returns {Promise} + */ + let afterUpdate = payload => new Promise(resolve => { + // in rare cases there is a bug where map is undefined (hard to reproduce + let map = Util.getObjVal(payload, 'data.mapConfig.map'); + if(map){ + let tabContentEl = map.getContainer().closest(`.${Util.config.mapTabContentClass}`); + $(tabContentEl).trigger('pf:updateGlobalModules', { + payload: Util.getObjVal(payload, 'data.mapConfig.config.id') }); - }; - - return new Promise(showInfoSignatureOverlaysExecutor); - }; + } + resolve(payload); + }); return new Promise(updateMapExecutor) .then(showInfoSignatureOverlays) - .then(filterMapByScopes); + .then(filterMapByScopes) + .then(afterUpdate); }; /** @@ -1530,28 +1548,22 @@ define([ * @param systemData * @returns {boolean} */ - let isValidSystem = systemData => { - let isValid = true; - if( - !systemData.hasOwnProperty('name') || - systemData.name.length === 0 - ){ - return false; - } - - return isValid; - }; + let isValidSystem = systemData => (Util.getObjVal(systemData, 'name') || '').length > 0; /** * draw a system with its data to a map * @param map * @param systemData * @param connectedSystem + * @param connectionData + * @returns {Promise} */ - let drawSystem = (map, systemData, connectedSystem) => { - - // check if systemData is valid + let drawSystem = (map, systemData, connectedSystem, connectionData = null) => new Promise((resolve, reject) => { if(isValidSystem(systemData)){ + let payloadDrawSystem = { + action: 'drawSystem' + }; + let mapContainer = $(map.getContainer()); // get System Element by data @@ -1575,24 +1587,37 @@ define([ // register system to "magnetizer" Magnetizer.addElement(systemData.mapId, newSystem[0]); + payloadDrawSystem.data = { + system: newSystem + }; + // connect new system (if connection data is given) if(connectedSystem){ - // hint: "scope + type" might be changed automatically when it gets saved // -> based on jump distance,.. - let connectionData = { + connectionData = Object.assign({}, { source: $(connectedSystem).data('id'), target: newSystem.data('id'), scope: map.Defaults.Scope, type: [MapUtil.getDefaultConnectionTypeByScope(map.Defaults.Scope)] - }; - let connection = drawConnection(map, connectionData); + }, connectionData); - // store connection - saveConnection(connection); + drawConnection(map, connectionData) + .then(payload => saveConnection(payload.data.connection, Boolean(connectionData.disableAutoScope))) + .then(payload => { + payloadDrawSystem.data = { + connection: payload.data.connection + }; + resolve(payloadDrawSystem); + }) + .catch(reject); + }else{ + resolve(payloadDrawSystem); } + }else{ + reject(new Error(`drawSystem() failed. Invalid systemData`)); } - }; + }); /** * make a system name/alias editable by x-editable @@ -1656,56 +1681,69 @@ define([ /** * stores a connection in database * @param connection + * @param disableAutoScope + * @returns {Promise} */ - let saveConnection = connection => { - if(connection instanceof jsPlumb.Connection){ - connection.addType('state_process'); - - let map = connection._jsPlumb.instance; - let mapContainer = $(map.getContainer()); - let mapId = mapContainer.data('id'); - - let connectionData = MapUtil.getDataByConnection(connection); - connectionData.mapId = mapId; - - Util.request('PUT', 'connection', [], connectionData, { - connection: connection, - map: map, - mapId: mapId, - oldConnectionData: connectionData - }).then( - payload => { - let newConnectionData = payload.data; - - if(!$.isEmptyObject(newConnectionData)){ - // update connection data e.g. "scope" has auto detected - connection = updateConnection(payload.context.connection, newConnectionData); - - // new/updated connection should be cached immediately! - updateConnectionCache(payload.context.mapId, connection); - - // connection scope - let scope = MapUtil.getScopeInfoForConnection(newConnectionData.scope, 'label'); - - let title = 'New connection established'; - if(payload.context.oldConnectionData.id > 0){ - title = 'Connection switched'; - } - - Util.showNotify({title: title, text: 'Scope: ' + scope, type: 'success'}); - }else{ - // some save errors - payload.context.map.deleteConnection(payload.context.connection, {fireEvent: false}); - } - }, - payload => { - // remove this connection from map - payload.context.map.deleteConnection(payload.context.connection, {fireEvent: false}); - Util.handleAjaxErrorResponse(payload); - } - ); + let saveConnection = (connection, disableAutoScope = false) => new Promise((resolve, reject) => { + if(!(connection instanceof jsPlumb.Connection)){ + reject(new Error(`saveConnection(): connection must be instanceof jsPlumb.Connection`)); } - }; + + connection.addType('state_process'); + + let map = connection._jsPlumb.instance; + let mapContainer = $(map.getContainer()); + let mapId = mapContainer.data('id'); + + let connectionData = MapUtil.getDataByConnection(connection); + connectionData.mapId = mapId; + connectionData.disableAutoScope = disableAutoScope; + + Util.request('PUT', 'connection', [], connectionData, { + connection: connection, + map: map, + mapId: mapId, + oldConnectionData: connectionData + }).then( + payload => { + let newConnectionData = payload.data; + + if(!$.isEmptyObject(newConnectionData)){ + // update connection data e.g. "scope" has auto detected + connection = updateConnection(payload.context.connection, newConnectionData); + + // new/updated connection should be cached immediately! + updateConnectionCache(payload.context.mapId, connection); + + // connection scope + let scope = MapUtil.getScopeInfoForConnection(newConnectionData.scope, 'label'); + + let title = 'New connection established'; + if(payload.context.oldConnectionData.id > 0){ + title = 'Connection switched'; + } + + Util.showNotify({title: title, text: 'Scope: ' + scope, type: 'success'}); + resolve({ + action: 'saveConnection', + data: { + connection: connection + } + }); + }else{ + // some save errors + payload.context.map.deleteConnection(payload.context.connection, {fireEvent: false}); + reject(new Error(`saveConnection(): response error`)); + } + }, + payload => { + // remove this connection from map + payload.context.map.deleteConnection(payload.context.connection, {fireEvent: false}); + Util.handleAjaxErrorResponse(payload); + reject(new Error(`saveConnection(): request error`)); + } + ); + }); /** * get context menu config for a map component (e.g. system, connection,..) @@ -1742,7 +1780,7 @@ define([ options.hidden.push('delete_system'); } - if( !mapContainer.find('.' + config.systemActiveClass).length){ + if( !mapContainer.find('.' + MapUtil.config.systemActiveClass).length){ options.hidden.push('find_route'); } @@ -1755,7 +1793,7 @@ define([ } // disabled menu actions - if(system.hasClass(config.systemActiveClass)){ + if(system.hasClass(MapUtil.config.systemActiveClass)){ options.disabled.push('find_route'); } @@ -1898,6 +1936,8 @@ define([ // map overlay will be set on "drag" start let mapOverlayTimer = null; + let debounceDrag = false; + // make system draggable map.draggable(system, { containment: 'parent', @@ -1907,7 +1947,7 @@ define([ snapThreshold: MapUtil.config.mapSnapToGridDimension, // distance for grid snapping "magnet" effect (optional) start: function(params){ let dragSystem = $(params.el); - + dragSystem.css('pointer-events','none'); mapOverlayTimer = MapOverlayUtil.getMapOverlay(dragSystem, 'timer'); // start map update timer @@ -1920,9 +1960,6 @@ define([ delete( params.drag.params.grid ); } - // stop "system click event" right after drop event is finished - dragSystem.addClass('no-click'); - // drag system is not always selected let selectedSystems = mapContainer.getSelectedSystems().get(); selectedSystems = selectedSystems.concat(dragSystem.get()); @@ -1938,12 +1975,19 @@ define([ $(selectedSystems).updateSystemZIndex(); }, drag: function(p){ - // start map update timer - mapOverlayTimer.startMapUpdateCounter(); + if(!debounceDrag) { + requestAnimationFrame(() => { + // start map update timer + mapOverlayTimer.startMapUpdateCounter(); - // update system positions for "all" systems that are effected by drag&drop - // this requires "magnet" feature to be active! (optional) - Magnetizer.executeAtEvent(map, p.e); + // update system positions for "all" systems that are effected by drag&drop + // this requires "magnet" feature to be active! (optional) + Magnetizer.executeAtEvent(map, p.e); + + debounceDrag = false; + }); + } + debounceDrag = true; }, stop: function(params){ let dragSystem = $(params.el); @@ -1951,10 +1995,6 @@ define([ // start map update timer mapOverlayTimer.startMapUpdateCounter(); - setTimeout(function(){ - dragSystem.removeClass('no-click'); - }, Init.timer.DBL_CLICK + 50); - // show tooltip dragSystem.toggleSystemTooltip('show', {show: true}); @@ -1975,7 +2015,7 @@ define([ // update all dragged systems -> added to DragSelection params.selection.forEach(elData => { - MapUtil.markAsChanged($(elData[0])); + MapUtil.markAsChanged($(elData[0]).css('pointer-events','initial')); }); } }); @@ -2016,23 +2056,20 @@ define([ if(!popoverClick){ let system = $(this); - // check if system is locked for "click" events - if(!system.hasClass('no-click')){ - // left mouse button - if(e.which === 1){ - if(e.ctrlKey === true){ - // select system - MapUtil.toggleSystemsSelect(map, [system]); - }else{ - MapUtil.showSystemInfo(map, system); - } + // left mouse button + if(e.which === 1){ + if(e.ctrlKey === true){ + // select system + MapUtil.toggleSystemsSelect(map, [system]); + }else{ + MapUtil.showSystemInfo(map, system); } } } }; - Util.singleDoubleClick(system, single, double); + Util.singleDoubleClick(system[0], single, double); }; /** @@ -2040,10 +2077,10 @@ define([ * @param map * @param newSystemData * @param sourceSystem + * @param connectionData + * @returns {Promise} */ - let saveSystemCallback = (map, newSystemData, sourceSystem) => { - drawSystem(map, newSystemData, sourceSystem); - }; + let saveSystemCallback = (map, newSystemData, sourceSystem, connectionData = null) => drawSystem(map, newSystemData, sourceSystem, connectionData); /** * select all (selectable) systems on a mapElement @@ -2193,17 +2230,8 @@ define([ return false; } - // lock the target system for "click" events - // to prevent loading system information let sourceSystem = $('#' + sourceId); let targetSystem = $('#' + targetId); - sourceSystem.addClass('no-click'); - targetSystem.addClass('no-click'); - - setTimeout(() => { - sourceSystem.removeClass('no-click'); - targetSystem.removeClass('no-click'); - }, Init.timer.DBL_CLICK + 50); // switch connection type to "abyss" in case source OR target system belongs to "a-space" if(sourceSystem.data('typeId') === 3 || targetSystem.data('typeId') === 3){ @@ -2227,7 +2255,7 @@ define([ } // always save the new connection - saveConnection(connection); + saveConnection(connection).catch(console.warn); return true; }); @@ -2721,7 +2749,7 @@ define([ selectSystem(mapContainer, data); break; case 'AddSystem': - System.showNewSystemDialog(map, data, saveSystemCallback); + System.showNewSystemDialog(map, data, typeof data.callback === 'function' ? data.callback : saveSystemCallback); break; default: console.warn('Unknown menuAction %o event name', action); @@ -2938,16 +2966,16 @@ define([ /** * collect all map data from client for server or client sync - * @param mapContainer + * @param {HTMLElement} mapContainer * @param filter * @param minimal - * @returns {boolean} + * @returns {boolean|{}} */ let getMapDataForSync = (mapContainer, filter = [], minimal = false) => { let mapData = false; // check if there is an active map counter that prevents collecting map data (locked map) - if(!MapOverlayUtil.getMapOverlayInterval(mapContainer)){ - mapData = mapContainer.getMapDataFromClient(filter, minimal); + if(!MapOverlayUtil.isMapCounterOverlayActive(mapContainer)){ + mapData = $(mapContainer).getMapDataFromClient(filter, minimal); } return mapData; }; @@ -2957,6 +2985,7 @@ define([ * this function returns the "client" data NOT the "server" data for a map * @param filter * @param minimal + * @returns {{}} */ $.fn.getMapDataFromClient = function(filter = [], minimal = false){ let mapContainer = $(this); @@ -3099,34 +3128,29 @@ define([ * @param options * @returns {Promise} */ - let initMapOptions = (mapConfig, options) => { - - let initMapOptionsExecutor = (resolve, reject) => { - let payload = { - action: 'initMapOptions', - data: { - mapConfig: mapConfig - } - }; - - if(options.showAnimation){ - let mapElement = $(mapConfig.map.getContainer()); - MapUtil.setMapDefaultOptions(mapElement, mapConfig.config) - .then(payload => MapUtil.visualizeMap(mapElement, 'show')) - .then(payload => MapUtil.zoomToDefaultScale(mapConfig.map)) - .then(payload => MapUtil.scrollToDefaultPosition(mapConfig.map)) - .then(payload => { - Util.showNotify({title: 'Map initialized', text: mapConfig.config.name + ' - loaded', type: 'success'}); - }) - .then(() => resolve(payload)); - }else{ - // nothing to do here... - resolve(payload); + let initMapOptions = (mapConfig, options) => new Promise((resolve, reject) => { + let payload = { + action: 'initMapOptions', + data: { + mapConfig: mapConfig } }; - return new Promise(initMapOptionsExecutor); - }; + if(options.showAnimation){ + let mapElement = $(mapConfig.map.getContainer()); + MapUtil.setMapDefaultOptions(mapElement, mapConfig.config) + .then(payload => MapUtil.visualizeMap(mapElement, 'show')) + .then(payload => MapUtil.zoomToDefaultScale(mapConfig.map)) + .then(payload => MapUtil.scrollToDefaultPosition(mapConfig.map)) + .then(payload => { + Util.showNotify({title: 'Map initialized', text: mapConfig.config.name + ' - loaded', type: 'success'}); + }) + .then(() => resolve(payload)); + }else{ + // nothing to do here... + resolve(payload); + } + }); /** * load OR updates system map @@ -3136,6 +3160,9 @@ define([ * @returns {Promise} */ let loadMap = (areaMap, mapConfig, options) => { + // whether map gets loaded (initialized) for the first time + // or just updated an existing map + let isFirstLoad = false; /** * load map promise @@ -3150,6 +3177,7 @@ define([ if(mapConfig.map.getContainer() === undefined){ // map not loaded -> create & update + isFirstLoad = true; newMapElement(areaMap, mapConfig) .then(payload => updateMap(payload.data.mapConfig)) .then(payload => resolve(payload)); @@ -3162,7 +3190,12 @@ define([ }; return new Promise(loadMapExecutor) - .then(payload => initMapOptions(payload.data.mapConfig, options)); + .then(payload => initMapOptions(payload.data.mapConfig, options)) + .then(payload => ({ + action: 'loadMap', + data: payload.data, + isFirstLoad + })); }; /** @@ -3330,7 +3363,9 @@ define([ loadMap: loadMap, updateUserData: updateUserData, getMapDataForSync: getMapDataForSync, - saveSystemCallback: saveSystemCallback + saveSystemCallback: saveSystemCallback, + drawConnection: drawConnection, + saveConnection: saveConnection }; }); \ No newline at end of file diff --git a/js/app/map/overlay/overlay.js b/js/app/map/overlay/overlay.js index f5e0b988..550dbe04 100644 --- a/js/app/map/overlay/overlay.js +++ b/js/app/map/overlay/overlay.js @@ -7,8 +7,9 @@ define([ 'app/init', 'app/util', 'app/map/overlay/util', - 'app/map/util' -], ($, Init, Util, MapOverlayUtil, MapUtil) => { + 'app/map/util', + 'app/lib/cron' +], ($, Init, Util, MapOverlayUtil, MapUtil, Cron) => { 'use strict'; /** @@ -107,119 +108,120 @@ define([ let type = 'info_signature'; connectionsData = Util.arrayToObject(connectionsData); - map.batch(() => { - map.getAllConnections().forEach(connection => { - let connectionId = connection.getParameter('connectionId'); - let sourceEndpoint = connection.endpoints[0]; - let targetEndpoint = connection.endpoints[1]; + map.setSuspendDrawing(true); - let connectionData = connectionsData.hasOwnProperty(connectionId) ? connectionsData[connectionId] : undefined; - let signatureTypeData = MapUtil.getConnectionDataFromSignatures(connection, connectionData); + map.getAllConnections().forEach(connection => { + let connectionId = connection.getParameter('connectionId'); + let sourceEndpoint = connection.endpoints[0]; + let targetEndpoint = connection.endpoints[1]; - let sizeLockedBySignature = false; + let connectionData = Util.getObjVal(connectionsData, `${connectionId}`); + let signatureTypeData = MapUtil.getConnectionDataFromSignatures(connection, connectionData); - if(connection.scope === 'wh'){ - if(!connection.hasType(type)){ - connection.addType(type); - } + let sizeLockedBySignature = false; - let overlayArrow = connection.getOverlay(MapOverlayUtil.config.connectionOverlayArrowId); + if(connection.scope === 'wh'){ + if(!connection.hasType(type)){ + connection.addType(type); + } - // Arrow overlay needs to be cleared() (removed) if 'info_signature' gets removed! - // jsPlumb does not handle overlay updates for Arrow overlays... so we need to re-apply the the overlay manually - if(overlayArrow.path && !overlayArrow.path.isConnected){ - connection.canvas.appendChild(overlayArrow.path); - } + let overlayArrow = connection.getOverlay(MapOverlayUtil.config.connectionOverlayArrowId); - // since there "could" be multiple sig labels on each endpoint, - // there can only one "primary label picked up for wormhole jump mass detection! - let primLabel; + // Arrow overlay needs to be cleared() (removed) if 'info_signature' gets removed! + // jsPlumb does not handle overlay updates for Arrow overlays... so we need to re-apply the the overlay manually + if(overlayArrow.path && !overlayArrow.path.isConnected){ + connection.canvas.appendChild(overlayArrow.path); + } - let overlayType = 'diamond'; // not specified - let arrowDirection = 1; + // since there "could" be multiple sig labels on each endpoint, + // there can only one "primary label picked up for wormhole jump mass detection! + let primeLabel; - if(connectionData && connectionData.signatures){ - // signature data found for current connection - let sourceLabel = signatureTypeData.source.labels; - let targetLabel = signatureTypeData.target.labels; + let overlayType = 'diamond'; // not specified + let arrowDirection = 1; - // add arrow (connection) overlay that points from "XXX" => "K162" ---------------------------- - if( - (sourceLabel.includes('K162') && targetLabel.includes('K162')) || - (sourceLabel.length === 0 && targetLabel.length === 0) || - ( - sourceLabel.length > 0 && targetLabel.length > 0 && - !sourceLabel.includes('K162') && !targetLabel.includes('K162') - ) - ){ - // unknown direction -> show default 'diamond' overlay - overlayType = 'diamond'; - }else if( - (sourceLabel.includes('K162')) || - (sourceLabel.length === 0 && !targetLabel.includes('K162')) - ){ - // convert default arrow direction - overlayType = 'arrow'; - arrowDirection = -1; + if(connectionData && connectionData.signatures){ + // signature data found for current connection + let sourceLabel = signatureTypeData.source.labels; + let targetLabel = signatureTypeData.target.labels; - primLabel = targetLabel.find(label => label !== 'K162'); - }else{ - // default arrow direction is fine - overlayType = 'arrow'; + // add arrow (connection) overlay that points from "XXX" => "K162" ---------------------------- + if( + (sourceLabel.includes('K162') && targetLabel.includes('K162')) || + (sourceLabel.length === 0 && targetLabel.length === 0) || + ( + sourceLabel.length > 0 && targetLabel.length > 0 && + !sourceLabel.includes('K162') && !targetLabel.includes('K162') + ) + ){ + // unknown direction -> show default 'diamond' overlay + overlayType = 'diamond'; + }else if( + (sourceLabel.includes('K162')) || + (sourceLabel.length === 0 && !targetLabel.includes('K162')) + ){ + // convert default arrow direction + overlayType = 'arrow'; + arrowDirection = -1; - primLabel = sourceLabel.find(label => label !== 'K162'); - } - } - - // class changes must be done on "connection" itself not on "overlayArrow" - // -> because Arrow might not be rendered to map at this point (if it does not exist already) - if(overlayType === 'arrow'){ - connection.updateClasses( - MapOverlayUtil.config.connectionArrowOverlaySuccessClass, - MapOverlayUtil.config.connectionArrowOverlayDangerClass - ); + primeLabel = targetLabel.find(label => label !== 'K162'); }else{ - connection.updateClasses( - MapOverlayUtil.config.connectionArrowOverlayDangerClass, - MapOverlayUtil.config.connectionArrowOverlaySuccessClass - ); - } + // default arrow direction is fine + overlayType = 'arrow'; - overlayArrow.updateFrom(getConnectionArrowOverlayParams(overlayType, arrowDirection)); - - // update/add endpoint overlays ------------------------------------------------------------------- - updateEndpointOverlaySignatureLabel(sourceEndpoint, signatureTypeData.source); - updateEndpointOverlaySignatureLabel(targetEndpoint, signatureTypeData.target); - - // fix/overwrite existing jump mass connection type ----------------------------------------------- - // if a connection type for "jump mass" (e.g. S, M, L, XL) is set for this connection - // we should check/compare it with the current primary signature label from signature mapping - // and change it if necessary - if(Init.wormholes.hasOwnProperty(primLabel)){ - // connection size from mapped signature - sizeLockedBySignature = true; - - let wormholeData = Object.assign({}, Init.wormholes[primLabel]); - // get 'connection mass type' from wormholeData - let massType = Util.getObjVal(wormholeData, 'size.type'); - - if(massType && !connection.hasType(massType)){ - MapOverlayUtil.getMapOverlay(connection.canvas, 'timer').startMapUpdateCounter(); - MapUtil.setConnectionJumpMassType(connection, wormholeData.size.type); - MapUtil.markAsChanged(connection); - } - } - }else{ - // connection is not 'wh' scope - if(connection.hasType(type)){ - connection.removeType(type); + primeLabel = sourceLabel.find(label => label !== 'K162'); } } - // lock/unlock connection for manual size changes (from contextmenu) - connection.setParameter('sizeLocked', sizeLockedBySignature); - }); + // class changes must be done on "connection" itself not on "overlayArrow" + // -> because Arrow might not be rendered to map at this point (if it does not exist already) + if(overlayType === 'arrow'){ + connection.updateClasses( + MapOverlayUtil.config.connectionArrowOverlaySuccessClass, + MapOverlayUtil.config.connectionArrowOverlayDangerClass + ); + }else{ + connection.updateClasses( + MapOverlayUtil.config.connectionArrowOverlayDangerClass, + MapOverlayUtil.config.connectionArrowOverlaySuccessClass + ); + } + + overlayArrow.updateFrom(getConnectionArrowOverlayParams(overlayType, arrowDirection)); + + // update/add endpoint overlays ------------------------------------------------------------------- + updateEndpointOverlaySignatureLabel(sourceEndpoint, signatureTypeData.source); + updateEndpointOverlaySignatureLabel(targetEndpoint, signatureTypeData.target); + + // fix/overwrite existing jump mass connection type ----------------------------------------------- + // if a connection type for "jump mass" (e.g. S, M, L, XL) is set for this connection + // we should check/compare it with the current primary signature label from signature mapping + // and change it if necessary + if(Init.wormholes.hasOwnProperty(primeLabel)){ + // connection size from mapped signature + sizeLockedBySignature = true; + + // get 'connection mass type' from wormholeData + let massType = Util.getObjVal(Object.assign({}, Init.wormholes[primeLabel]), 'size.type'); + + if(massType && !connection.hasType(massType)){ + MapOverlayUtil.getMapOverlay(connection.canvas, 'timer').startMapUpdateCounter(); + MapUtil.setConnectionJumpMassType(connection, massType); + MapUtil.markAsChanged(connection); + } + } + }else{ + // connection is not 'wh' scope + if(connection.hasType(type)){ + connection.removeType(type); + } + } + + // lock/unlock connection for manual size changes (from contextmenu) + connection.setParameter('sizeLocked', sizeLockedBySignature); }); + + map.setSuspendDrawing(false, true); }; /** @@ -291,21 +293,23 @@ define([ let map = MapUtil.getMapInstance(mapId); let type = 'info_signature'; - map.batch(() => { - map.getAllConnections().forEach(connection => { - let overlayArrow = connection.getOverlay(MapOverlayUtil.config.connectionOverlayArrowId); + map.setSuspendDrawing(true); - if(overlayArrow){ - overlayArrow.cleanup(); - } + map.getAllConnections().forEach(connection => { + let overlayArrow = connection.getOverlay(MapOverlayUtil.config.connectionOverlayArrowId); - if(connection.hasType(type)){ - connection.removeType(type, {}, true); - } - }); + if(overlayArrow){ + overlayArrow.cleanup(); + } - map.selectEndpoints().removeOverlay(MapOverlayUtil.config.endpointOverlayId); + if(connection.hasType(type)){ + connection.removeType(type, {}, true); + } }); + + map.selectEndpoints().removeOverlay(MapOverlayUtil.config.endpointOverlayId); + + map.setSuspendDrawing(false, true); }; /** @@ -321,7 +325,7 @@ define([ trigger: 'active', class: 'pf-map-overlay-filter', iconClass: ['fas', 'fa-fw', 'fa-filter'], - onClick: function(e){ + onClick: function(e){ // clear all filter let mapElement = MapOverlayUtil.getMapElementFromOverlay(this); let map = getMapObjectFromOverlayIcon(this); @@ -484,108 +488,96 @@ define([ * @param mapOverlayTimer * @param percent * @param value - * @returns {*} */ - let setMapUpdateCounter = (mapOverlayTimer, percent, value) => { + let setMapUpdateCounter = (mapOverlayTimer, percent, value = '') => { // check if counter already exists - let counterChart = MapOverlayUtil.getMapCounter(mapOverlayTimer); - - if(counterChart.length === 0){ + if(!MapOverlayUtil.getMapCounter(mapOverlayTimer)){ // create new counter + let chartEl = Object.assign(document.createElement('div'), { + className: `${Init.classes.pieChart.class} ${Init.classes.pieChart.pieChartMapCounterClass}` + }); - counterChart = $('
', { - class: [Init.classes.pieChart.class, Init.classes.pieChart.pieChartMapCounterClass].join(' ') - }).attr('data-percent', percent).append( - $('', { - text: value - }) - ); + let chartInnerEl = Object.assign(document.createElement('span'), { + textContent: value + }); + let iconEl = Object.assign(document.createElement('i'), { + className: ['fas', 'fa-fw', 'fa-lock'].join(' ') + }); - mapOverlayTimer.append(counterChart); + chartInnerEl.append(iconEl); + chartEl.append(chartInnerEl); + mapOverlayTimer.append(chartEl); // init counter - counterChart.initMapUpdateCounter(); + $(chartEl).initMapUpdateCounter(); // set tooltip - mapOverlayTimer.attr('data-placement', 'left'); - mapOverlayTimer.attr('title', 'update counter'); - mapOverlayTimer.tooltip(); + mapOverlayTimer.dataset.placement = 'left'; + mapOverlayTimer.setAttribute('title', 'update counter'); + $(mapOverlayTimer).tooltip(); } - - return counterChart; }; /** * start the map update counter or reset */ $.fn.startMapUpdateCounter = function(){ - let mapOverlayTimer = $(this); - let counterChart = MapOverlayUtil.getMapCounter(mapOverlayTimer); - - let maxSeconds = MapOverlayUtil.config.logTimerCount; - - let counterChartLabel = counterChart.find('span'); - - let percentPerCount = 100 / maxSeconds; - - // update counter - let updateChart = tempSeconds => { - let pieChart = counterChart.data('easyPieChart'); - - if(pieChart !== undefined){ - counterChart.data('easyPieChart').update( percentPerCount * tempSeconds); - } - counterChartLabel.text(tempSeconds); - }; - - // main timer function is called on any counter update - let timer = mapUpdateCounter => { - // decrease timer - let currentSeconds = counterChart.data('currentSeconds'); - currentSeconds--; - counterChart.data('currentSeconds', currentSeconds); - - if(currentSeconds >= 0){ - // update counter - updateChart(currentSeconds); - }else{ - // hide counter and reset - clearInterval(mapUpdateCounter); - - mapOverlayTimer.velocity('transition.whirlOut', { - duration: Init.animationSpeed.mapOverlay, - complete: function(){ - counterChart.data('interval', false); - MapOverlayUtil.getMapElementFromOverlay(mapOverlayTimer).trigger('pf:unlocked'); - } - }); - } - }; - - // get current seconds (in case the timer is already running) - let currentSeconds = counterChart.data('currentSeconds'); - - // start values for timer and chart - counterChart.data('currentSeconds', maxSeconds); - updateChart(maxSeconds); - - if( - currentSeconds === undefined || - currentSeconds < 0 - ){ - // start timer - let mapUpdateCounter = setInterval(() => { - timer(mapUpdateCounter); - }, 1000); - - // store counter interval - counterChart.data('interval', mapUpdateCounter); - - // show overlay - if(mapOverlayTimer.is(':hidden')){ - mapOverlayTimer.velocity('stop').velocity('transition.whirlIn', { duration: Init.animationSpeed.mapOverlay }); - } + if(!this.length){ + console.warn('startMapUpdateCounter() failed. Missing DOM node'); + return; } + let mapOverlayTimer = this[0]; + let counterChart = MapOverlayUtil.getMapCounter(mapOverlayTimer); + let pieChart = $(counterChart).data('easyPieChart'); + + if(!pieChart){ + console.warn('startMapUpdateCounter() failed. easyPieChart not initialized'); + return; + } + + let updateChart = (percent = 0) => { + if(pieChart){ + pieChart.update(percent); + } + }; + + let task = counterChart.getData('counterTask'); + if(!task){ + let tabContentEl = mapOverlayTimer.closest(`.${Util.config.mapTabContentClass}`); + let mapId = parseInt(tabContentEl.dataset.mapId) || 0; + task = Cron.new(`mapUpdateCounter_${mapId}`, { + precision: 'secondTenths', + isParallel: true, + targetRunCount: 10 * MapOverlayUtil.config.logTimerCount + }); + + task.task = (timer, task) => { + // debounce 80% (reduce repaint) + if(task.runCount % 5 === 0){ + let progress = Math.round(task.targetProgress); + updateChart(100 - progress); + } + + if(task.targetAchieved){ + $(mapOverlayTimer).velocity('transition.whirlOut', { + duration: Init.animationSpeed.mapOverlay, + complete: function(){ + MapOverlayUtil.getMapElementFromOverlay(mapOverlayTimer).trigger('pf:unlocked'); + } + }); + } + }; + + counterChart.setData('counterTask', task); + } + + // task is not connected if: 'targetAchieved' or not started + if(!task.isConnected()){ + $(mapOverlayTimer).velocity('stop').velocity('transition.whirlIn', { duration: Init.animationSpeed.mapOverlay }); + } + updateChart(100); + task.reset(); + task.start(); }; /** @@ -836,36 +828,35 @@ define([ }); // add all overlay elements - for(let prop in options){ - if(options.hasOwnProperty(prop)){ - let icon = $('', { - class: options[prop].iconClass.concat( ['pull-right', options[prop].class] ).join(' ') - }).attr('title', options[prop].title).tooltip({ - placement: 'bottom', - container: 'body', - delay: 150 - }); + Object.entries(options).forEach(([key, option]) => { + let icon = $('', { + class: option.iconClass.concat(['pull-right', option.class]).join(' ') + }).attr('title', option.title).tooltip({ + placement: 'bottom', + container: 'body', + delay: 150 + }); - // add "hover" action for some icons - if( - options[prop].trigger === 'hover' || - options[prop].trigger === 'refresh' - ){ - icon.hoverIntent(options[prop].hoverIntent); - } - - // add "click" handler for some icons - if(options[prop].hasOwnProperty('onClick')){ - icon.on('click', options[prop].onClick); - } - - mapOverlayInfo.append(icon); + // add "hover" action for some icons + if( + option.trigger === 'hover' || + option.trigger === 'refresh' + ){ + icon.hoverIntent(option.hoverIntent); } - } + + // add "click" handler for some icons + if(option.hasOwnProperty('onClick')){ + icon.on('click', option.onClick); + } + + mapOverlayInfo.append(icon); + }); + parentElement.append(mapOverlayInfo); // reset map update timer - setMapUpdateCounter(mapOverlayTimer, 100, MapOverlayUtil.config.logTimerCount); + setMapUpdateCounter(mapOverlayTimer[0], 100); }); }; diff --git a/js/app/map/overlay/util.js b/js/app/map/overlay/util.js index 379a5e02..10b5a9bc 100644 --- a/js/app/map/overlay/util.js +++ b/js/app/map/overlay/util.js @@ -84,22 +84,32 @@ define([ /** * get the map counter chart from overlay * @param element - * @returns {jQuery} + * @returns {Element} */ - let getMapCounter = element => $(element).find('.' + Init.classes.pieChart.pieChartMapCounterClass); + let getMapCounter = element => element.querySelector(`.${Init.classes.pieChart.pieChartMapCounterClass}`); /** - * get interval value from map timer overlay - * @param element - * @returns {*} + * if there is an "active" (connected) counter task + * -> lock overlay + * @param {HTMLElement} element + * @returns {boolean} */ - let getMapOverlayInterval = element => getMapCounter(getMapOverlay(element, 'timer')).data('interval'); + let isMapCounterOverlayActive = element => { + let mapOverlay = getMapOverlay(element, 'timer'); + if(mapOverlay){ + let mapCounter = getMapCounter(mapOverlay[0]); + if(mapCounter && mapCounter.getData('counterTask')){ + return mapCounter.getData('counterTask').isConnected(); + } + } + return false; + }; return { config: config, getMapOverlay: getMapOverlay, getMapElementFromOverlay: getMapElementFromOverlay, getMapCounter: getMapCounter, - getMapOverlayInterval: getMapOverlayInterval + isMapCounterOverlayActive: isMapCounterOverlayActive }; }); \ No newline at end of file diff --git a/js/app/map/system.js b/js/app/map/system.js index bc6daf9c..c5ab8fba 100644 --- a/js/app/map/system.js +++ b/js/app/map/system.js @@ -23,7 +23,6 @@ define([ systemHeadInfoLeftClass: 'pf-system-head-info-left', // class for left system info systemHeadInfoRightClass: 'pf-system-head-info-right', // class for right system info - systemActiveClass: 'pf-system-active', // class for an active system on a map systemTooltipInnerIdPrefix: 'pf-system-tooltip-inner-', // id prefix for system tooltip content systemTooltipInnerClass: 'pf-system-tooltip-inner', // class for system tooltip content @@ -231,24 +230,26 @@ define([ if(formValid === false) return false; // calculate new system position ---------------------------------------------------------- - let newPosition = { - x: 0, - y: 0 - }; + let newPosition; // add new position let sourceSystem = null; + let connectionData = null; if(options.sourceSystem !== undefined){ + // new position based on sourceSystem´s position sourceSystem = options.sourceSystem; + connectionData = options.connectionData || null; - // get new position newPosition = newSystemPositionBySystem(sourceSystem); }else if(options.position){ - // check mouse cursor position (add system to map) + // new position based on coordinated (e.g. mouse event) newPosition = { x: options.position.x, y: options.position.y }; + }else{ + // new position based on current map scroll offset + newPosition = MapUtil.newSystemPositionsByMapOffset(mapContainer)[0]; } formData.position = newPosition; @@ -262,7 +263,8 @@ define([ systemDialog: systemDialog, formElement: form, map: map, - sourceSystem: sourceSystem + sourceSystem: sourceSystem, + connectionData: connectionData }, context => { // always do context.systemDialog.find('.modal-content').hideLoadingAnimation(); @@ -270,7 +272,7 @@ define([ payload => { Util.showNotify({title: 'New system', text: payload.data.name, type: 'success'}); - callback(payload.context.map, payload.data, payload.context.sourceSystem); + callback(payload.context.map, payload.data, payload.context.sourceSystem, payload.context.connectionData); bootbox.hideAll(); }, Util.handleAjaxErrorResponse @@ -699,10 +701,12 @@ define([ for(let system of systems){ system = $(system); + let mapId = parseInt(system.data('mapid')) || 0; // check if system is "active" - if(system.hasClass(config.systemActiveClass)){ - delete Init.currentSystemData; + if(system.hasClass(MapUtil.config.systemActiveClass)){ + Util.deleteCurrentSystemData(mapId); + // get parent Tab Content and fire clear modules event let tabContentElement = MapUtil.getTabContentElementByMapElement(system); $(tabContentElement).trigger('pf:removeSystemModules'); @@ -712,7 +716,7 @@ define([ map.deleteConnectionsForElement(system, {fireEvent: false}); // unregister from "magnetizer" - Magnetizer.removeElement(system.data('mapid'), system[0]); + Magnetizer.removeElement(mapId, system[0]); // destroy tooltip/popover system.toggleSystemTooltip('destroy', {}); diff --git a/js/app/map/util.js b/js/app/map/util.js index 31f424eb..42040a04 100644 --- a/js/app/map/util.js +++ b/js/app/map/util.js @@ -186,25 +186,50 @@ define([ * @param mapData * @param value * @param key - * @returns {any} + * @returns {{}|boolean} */ let getSystemDataFromMapData = (mapData, value, key = 'id') => { - return mapData ? mapData.data.systems.find(system => system[key] === value) || false : false; + return (Util.getObjVal(mapData, `data.systems`) || []) + .find(systemData => systemData[key] === value) || false; }; /** - * get system data by mapId system data selector + * get system data by mapId + system data selector * -> e.g. value = 2 and key = 'id' * -> e.g. value = 30002187 and key = 'systemId' => looks for 'Amarr' CCP systemId * @param mapId * @param value * @param key - * @returns {any} + * @returns {{}|boolean} */ let getSystemData = (mapId, value, key = 'id') => { return getSystemDataFromMapData(Util.getCurrentMapData(mapId), value, key); }; + /** + * get connection data from mapData + * @see getConnectionData + * @param mapData + * @param value + * @param key + * @returns {{}|boolean} + */ + let getConnectionDataFromMapData = (mapData, value, key = 'id') => { + return (Util.getObjVal(mapData, `data.connections`) || []) + .find(connectionData => connectionData[key] === value) || false; + }; + + /** + * get connection data by mapId + connection data selector + * @param mapId + * @param value + * @param key + * @returns {{}|boolean} + */ + let getConnectionData = (mapId, value, key = 'id') => { + return getConnectionDataFromMapData(Util.getCurrentMapData(mapId), value, key); + }; + /** * get system type information * @param {number} systemTypeId @@ -212,14 +237,7 @@ define([ * @returns {string} */ let getSystemTypeInfo = (systemTypeId, option) => { - let systemTypeInfo = ''; - $.each(Init.systemType, function(prop, data){ - if(systemTypeId === data.id){ - systemTypeInfo = data[option]; - return; - } - }); - return systemTypeInfo; + return (Object.values(Init.systemType).find(data => data.id === systemTypeId) || {})[option] || ''; }; /** @@ -229,11 +247,7 @@ define([ * @returns {string} */ let getEffectInfoForSystem = (effect, option) => { - let effectInfo = ''; - if( Init.classes.systemEffects.hasOwnProperty(effect) ){ - effectInfo = Init.classes.systemEffects[effect][option]; - } - return effectInfo; + return Util.getObjVal(Init.classes.systemEffects, `${effect}.${option}`) || ''; }; /** @@ -478,13 +492,16 @@ define([ let getConnectionDataFromSignatures = (connection, connectionData) => { let signatureTypeData = { source: { + ids: [], names: [], labels: [] }, target: { + ids: [], names: [], labels: [] - } + }, + hash: false // unique hash key build from all relevant signature for connection }; if( @@ -501,41 +518,50 @@ define([ let sourceId = sourceSystem.data('id'); let targetId = targetSystem.data('id'); + // in case connection is currently "dragged" between systems, sourceId and/or targetId is undefined + if(!sourceId || !targetId){ + return signatureTypeData; + } + + let hash = []; // ... collect overlay/label data from signatures for(let signatureData of connectionData.signatures){ - // ... typeId is required to get a valid name - if(signatureData.typeId > 0){ + hash.push(Util.getObjVal(signatureData, 'updated.updated')); - // whether "source" or "target" system is relevant for current connection and current signature... - let tmpSystem = null; - let tmpSystemType = null; + // whether "source" or "target" system is relevant for current connection and current signature... + let tmpSystem = null; + let tmpSystemType = null; - if(signatureData.system.id === sourceId){ - // relates to "source" endpoint - tmpSystemType = 'source'; - tmpSystem = sourceSystem; - }else if(signatureData.system.id === targetId){ - // relates to "target" endpoint - tmpSystemType = 'target'; - tmpSystem = targetSystem; - } + if(signatureData.system.id === sourceId){ + // relates to "source" endpoint + tmpSystemType = 'source'; + tmpSystem = sourceSystem; + }else if(signatureData.system.id === targetId){ + // relates to "target" endpoint + tmpSystemType = 'target'; + tmpSystem = targetSystem; + } - // ... get endpoint label for source || target system - if(tmpSystem && tmpSystem){ - // ... get all available signature type (wormholes) names - let availableSigTypeNames = SystemSignatureModule.getSignatureTypeOptionsBySystem(tmpSystem, 5); - let flattenSigTypeNames = Util.flattenXEditableSelectArray(availableSigTypeNames); + signatureTypeData[tmpSystemType].ids.push(signatureData.id); + signatureTypeData[tmpSystemType].names.push(signatureData.name.toUpperCase()); - if(flattenSigTypeNames.hasOwnProperty(signatureData.typeId)){ - let label = flattenSigTypeNames[signatureData.typeId]; - // shorten label, just take the ingame name - label = label.substr(0, label.indexOf(' ')); - signatureTypeData[tmpSystemType].names.push(signatureData.name); - signatureTypeData[tmpSystemType].labels.push(label); - } + // ... typeId is required to get a valid labels + // ... get endpoint label for source || target system + if(signatureData.typeId > 0 && tmpSystem && tmpSystem){ + // ... get all available signature type (wormholes) names + let availableSigTypeNames = SystemSignatureModule.getSignatureTypeOptionsBySystem(tmpSystem, 5); + let flattenSigTypeNames = Util.flattenXEditableSelectArray(availableSigTypeNames); + + if(flattenSigTypeNames.hasOwnProperty(signatureData.typeId)){ + let label = flattenSigTypeNames[signatureData.typeId]; + // shorten label, just take the ingame name + label = label.substr(0, label.indexOf(' ')); + signatureTypeData[tmpSystemType].labels.push(label); } } } + // ... build unique hash + signatureTypeData.hash = hash.join().hashCode(); } return signatureTypeData; @@ -621,64 +647,66 @@ define([ */ let filterMapByScopes = (map, scopes) => { if(map){ - map.batch(() => { - let mapElement = $(map.getContainer()); - let allSystems = mapElement.getSystems(); - let allConnections = map.getAllConnections(); + map.setSuspendDrawing(true); - if(scopes && scopes.length){ - // filter connections ------------------------------------------------------------------------------------- - let visibleSystems = []; - let visibleConnections = searchConnectionsByScopeAndType(map, scopes); + let mapElement = $(map.getContainer()); + let allSystems = mapElement.getSystems(); + let allConnections = map.getAllConnections(); - for(let connection of allConnections){ - if(visibleConnections.indexOf(connection) >= 0){ - setConnectionVisible(connection, true); - // source/target system should always be visible -> even if filter scope not matches system type - if(visibleSystems.indexOf(connection.endpoints[0].element) < 0){ - visibleSystems.push(connection.endpoints[0].element); - } - if(visibleSystems.indexOf(connection.endpoints[1].element) < 0){ - visibleSystems.push(connection.endpoints[1].element); - } - }else{ - setConnectionVisible(connection, false); - } - } + if(scopes && scopes.length){ + // filter connections ------------------------------------------------------------------------------------- + let visibleSystems = []; + let visibleConnections = searchConnectionsByScopeAndType(map, scopes); - // filter systems ----------------------------------------------------------------------------------------- - let visibleTypeIds = []; - if(scopes.indexOf('wh') >= 0){ - visibleTypeIds.push(1); - } - if(scopes.indexOf('abyssal') >= 0){ - visibleTypeIds.push(4); - } - - for(let system of allSystems){ - if( - visibleTypeIds.indexOf($(system).data('typeId')) >= 0 || - visibleSystems.indexOf(system) >= 0 - ){ - setSystemVisible(system, map, true); - }else{ - setSystemVisible(system, map, false); - } - } - - MapOverlayUtil.getMapOverlay(mapElement, 'info').updateOverlayIcon('filter', 'show'); - }else{ - // clear filter - for(let system of allSystems){ - setSystemVisible(system, map, true); - } - for(let connection of allConnections){ + for(let connection of allConnections){ + if(visibleConnections.indexOf(connection) >= 0){ setConnectionVisible(connection, true); + // source/target system should always be visible -> even if filter scope not matches system type + if(visibleSystems.indexOf(connection.endpoints[0].element) < 0){ + visibleSystems.push(connection.endpoints[0].element); + } + if(visibleSystems.indexOf(connection.endpoints[1].element) < 0){ + visibleSystems.push(connection.endpoints[1].element); + } + }else{ + setConnectionVisible(connection, false); } - - MapOverlayUtil.getMapOverlay(mapElement, 'info').updateOverlayIcon('filter', 'hide'); } - }); + + // filter systems ----------------------------------------------------------------------------------------- + let visibleTypeIds = []; + if(scopes.indexOf('wh') >= 0){ + visibleTypeIds.push(1); + } + if(scopes.indexOf('abyssal') >= 0){ + visibleTypeIds.push(4); + } + + for(let system of allSystems){ + if( + visibleTypeIds.indexOf($(system).data('typeId')) >= 0 || + visibleSystems.indexOf(system) >= 0 + ){ + setSystemVisible(system, map, true); + }else{ + setSystemVisible(system, map, false); + } + } + + MapOverlayUtil.getMapOverlay(mapElement, 'info').updateOverlayIcon('filter', 'show'); + }else{ + // clear filter + for(let system of allSystems){ + setSystemVisible(system, map, true); + } + for(let connection of allConnections){ + setConnectionVisible(connection, true); + } + + MapOverlayUtil.getMapOverlay(mapElement, 'info').updateOverlayIcon('filter', 'hide'); + } + + map.setSuspendDrawing(false, true); } }; @@ -792,17 +820,19 @@ define([ */ let setSystemActive = (map, system) => { // deselect all selected systems on map - let mapContainer = $( map.getContainer() ); - mapContainer.find('.' + config.systemClass).removeClass(config.systemActiveClass); + let mapContainer = map.getContainer(); + [...mapContainer.getElementsByClassName(config.systemClass)] + .forEach(systemEl => + systemEl.classList.remove(config.systemActiveClass) + ); // set current system active system.addClass(config.systemActiveClass); - // collect all required data from map module to update the info element - // store them global and assessable for each module + // collect all required systemData from map module -> cache let systemData = system.getSystemData(); systemData.mapId = parseInt(system.attr('data-mapid')) || 0; - Util.setCurrentSystemData(systemData); + Util.setCurrentSystemData(systemData.mapId, systemData); }; /** @@ -913,20 +943,22 @@ define([ * @param connections */ let setConnectionsActive = (map, connections) => { - map.batch(() => { - // set all inactive - for(let connection of getConnectionsByType(map, 'state_active')){ - if(!connections.includes(connection)){ - removeConnectionType(connection, 'state_active'); - } - } + map.setSuspendDrawing(true); - for(let connection of connections){ - if(!connection.hasType('state_active')){ - addConnectionType(connection, 'state_active'); - } + // set all inactive + for(let connection of getConnectionsByType(map, 'state_active')){ + if(!connections.includes(connection)){ + removeConnectionType(connection, 'state_active'); } - }); + } + + for(let connection of connections){ + if(!connection.hasType('state_active')){ + addConnectionType(connection, 'state_active'); + } + } + + map.setSuspendDrawing(false, true); }; /** @@ -969,21 +1001,38 @@ define([ let toggleConnectionActive = (map, connections) => { let selectedConnections = []; let deselectedConnections = []; - map.batch(() => { - for(let connection of connections){ - if(connection.hasType('state_active')){ - removeConnectionType(connection, 'state_active'); - deselectedConnections.push(connection); - }else{ - addConnectionType(connection, 'state_active'); - selectedConnections.push(connection); - } + + map.setSuspendDrawing(true); + + for(let connection of connections){ + if(connection.hasType('state_active')){ + removeConnectionType(connection, 'state_active'); + deselectedConnections.push(connection); + }else{ + addConnectionType(connection, 'state_active'); + selectedConnections.push(connection); } - }); + } + + map.setSuspendDrawing(false, true); updateConnectionInfo(map, selectedConnections, deselectedConnections); }; + /** + * show global map info panels + * @param map + */ + let showMapInfo = map => { + // get parent Tab Content and fire update event + let mapContainer = $(map.getContainer()); + + getTabContentElementByMapElement(mapContainer).trigger('pf:renderGlobalModules', { + mapId: parseInt(mapContainer.data('id')), + payload: null + }); + }; + /** * show system info panels * @param map @@ -994,10 +1043,11 @@ define([ // get parent Tab Content and fire update event let mapContainer = $(map.getContainer()); + let mapId = parseInt(mapContainer.data('id')) || 0; getTabContentElementByMapElement(mapContainer).trigger('pf:renderSystemModules', { - mapId: parseInt(mapContainer.data('id')), - payload: Util.getCurrentSystemData() + mapId: mapId, + payload: Util.getCurrentSystemData(mapId) }); }; @@ -1238,10 +1288,12 @@ define([ let setUniqueConnectionType = (connection, type, types) => { type = types.includes(type) ? [type] : []; - connection._jsPlumb.instance.batch(() => { - removeConnectionTypes(connection, types.diff(type)); - addConnectionTypes(connection, type); - }); + connection._jsPlumb.instance.setSuspendDrawing(true); + + removeConnectionTypes(connection, types.diff(type)); + addConnectionTypes(connection, type); + + connection._jsPlumb.instance.setSuspendDrawing(false, true); }; /** @@ -2074,6 +2126,40 @@ define([ return findNonOverlappingDimensions(options, maxResults, findChain); }; + /** + * calculate the x/y coordinates for a new system - relative to current map scroll offset + * @param mapContainer + * @param maxResults + * @returns {[{x: number, y: number}]} + */ + let newSystemPositionsByMapOffset = (mapContainer, maxResults = 1) => { + let scrollPosition = { + x: Math.abs(parseInt(mapContainer.attr('data-scroll-left')) || 0), + y: Math.abs(parseInt(mapContainer.attr('data-scroll-top')) || 0) + }; + + // space new positions from map top (e.g. used for tooltips) + scrollPosition.y = Math.max(scrollPosition.y, 30); + + // default position -> current map section top/left + let positions = [scrollPosition]; + + // check default position for overlapping + let dimensions = newSystemPositionByCoordinates(mapContainer, { + center: [scrollPosition.x, scrollPosition.y], + minX: scrollPosition.x, + minY: scrollPosition.y + }, maxResults, true); + + if(dimensions.length){ + positions = dimensions.map(dim => ({ + x: parseInt(dim.left) || 0, + y: parseInt(dim.top) || 0 + })); + } + return positions; + }; + /** * * @param mapContainer @@ -2083,30 +2169,8 @@ define([ if(mapContainer){ let mapId = mapContainer.data('id'); - let scrollPosition = { - x: Math.abs(parseInt(mapContainer.attr('data-scroll-left')) || 0), - y: Math.abs(parseInt(mapContainer.attr('data-scroll-top')) || 0) - }; - // space new positions from map top (e.g. used for tooltips) - scrollPosition.y = Math.max(scrollPosition.y, 30); - - // default position -> current map section top/left ------------------------------------------------------- - positions.defaults = [scrollPosition]; - - // check default position for overlapping ----------------------------------------------------------------- - let dimensions = newSystemPositionByCoordinates(mapContainer, { - center: [scrollPosition.x, scrollPosition.y], - minX: scrollPosition.x, - minY: scrollPosition.y - }, 2, true); - - if(dimensions.length){ - positions.defaults = dimensions.map(dim => ({ - x: parseInt(dim.left) || 0, - y: parseInt(dim.top) || 0 - })); - } + positions.defaults = newSystemPositionsByMapOffset(mapContainer, 2); // -> calc possible coordinates for new system that should be used based on current user location --------- let currentLocationData = Util.getCurrentLocationData(); @@ -2162,6 +2226,8 @@ define([ getInfoForSystem: getInfoForSystem, getSystemDataFromMapData: getSystemDataFromMapData, getSystemData: getSystemData, + getConnectionDataFromMapData: getConnectionDataFromMapData, + getConnectionData: getConnectionData, getSystemTypeInfo: getSystemTypeInfo, getEffectInfoForSystem: getEffectInfoForSystem, markAsChanged: markAsChanged, @@ -2172,6 +2238,7 @@ define([ toggleConnectionType: toggleConnectionType, toggleConnectionActive: toggleConnectionActive, setSystemActive: setSystemActive, + showMapInfo: showMapInfo, showSystemInfo: showSystemInfo, showConnectionInfo: showConnectionInfo, showFindRouteDialog: showFindRouteDialog, @@ -2180,6 +2247,7 @@ define([ getConnectionsByType: getConnectionsByType, getEndpointsDataByConnection: getEndpointsDataByConnection, getDataByConnection: getDataByConnection, + getDataByConnections: getDataByConnections, searchConnectionsBySystems: searchConnectionsBySystems, searchConnectionsByScopeAndType: searchConnectionsByScopeAndType, getConnectionInfo: getConnectionInfo, @@ -2191,7 +2259,6 @@ define([ setConnectionMassStatusType: setConnectionMassStatusType, setConnectionJumpMassType: setConnectionJumpMassType, getScopeInfoForConnection: getScopeInfoForConnection, - getDataByConnections: getDataByConnections, deleteConnections: deleteConnections, getConnectionDataFromSignatures: getConnectionDataFromSignatures, getEndpointOverlaySignatureLocation: getEndpointOverlaySignatureLocation, @@ -2212,6 +2279,7 @@ define([ checkRight: checkRight, newSystemPositionBySystem: newSystemPositionBySystem, newSystemPositionByCoordinates: newSystemPositionByCoordinates, + newSystemPositionsByMapOffset: newSystemPositionsByMapOffset, newSystemPositionsByMap: newSystemPositionsByMap, getMapDeeplinkUrl: getMapDeeplinkUrl }; diff --git a/js/app/mappage.js b/js/app/mappage.js index f0cf008f..c11a760e 100644 --- a/js/app/mappage.js +++ b/js/app/mappage.js @@ -308,15 +308,14 @@ define([ /** - * clear both main update timeouts + * clear both main update timeouts, and reset values * -> stop program from working -> shutdown */ let clearUpdateTimeouts = () => { - for(let intervalKey in updateTimeouts){ - if(updateTimeouts.hasOwnProperty(intervalKey)){ - clearTimeout(updateTimeouts[intervalKey]); - } - } + Object.keys(updateTimeouts).forEach(intervalKey => { + clearTimeout(updateTimeouts[intervalKey]); + updateTimeouts[intervalKey] = 0; + }); }; @@ -417,20 +416,20 @@ define([ // IMPORTANT: Get user data for ONE map that is currently visible // On later releases this can be easy changed to "full update" all maps for a user - let mapIds = []; + let mapId; let newSystemPositions = null; let activeMap = Util.getMapModule().getActiveMap(); if(activeMap){ - mapIds = [activeMap.data('id')]; + mapId = activeMap.data('id'); newSystemPositions = MapUtil.newSystemPositionsByMap(activeMap); } let updatedUserData = { - mapIds: mapIds, + mapIds: mapId ? [mapId] : [], getMapUserData: Util.getSyncType() === 'webSocket' ? 0 : 1, mapTracking: locationToggle.is(':checked') ? 1 : 0, // location tracking - systemData: Util.getCurrentSystemData() + systemData: Util.getCurrentSystemData(mapId) }; if(newSystemPositions){ diff --git a/js/app/module_map.js b/js/app/module_map.js index dab760b1..092575bd 100644 --- a/js/app/module_map.js +++ b/js/app/module_map.js @@ -13,6 +13,7 @@ define([ 'module/system_route', 'module/system_intel', 'module/system_killboard', + 'module/global_thera', 'module/connection_info', 'app/counter' ], ( @@ -30,6 +31,7 @@ define([ SystemRouteModule, SystemIntelModule, SystemKillboardModule, + TheraModule, ConnectionInfoModule ) => { 'use strict'; @@ -56,6 +58,7 @@ define([ // editable 'settings' popover editableSettingsClass: 'pf-editable-settings', + editableHeadlineClass: 'pf-editable-headline', editableToggleClass: 'pf-editable-toggle', editableToggleItemClass: 'pf-editable-toggle-item', @@ -65,13 +68,6 @@ define([ let mapTabChangeBlocked = false; // flag for preventing map tab switch - /** - * get all maps for a maps module - * @param mapModule - * @returns {jQuery} - */ - let getMaps = mapModule => $(mapModule).find('.' + Util.config.mapClass); - /** * get the current active mapElement * @returns {bool|jQuery} @@ -90,6 +86,12 @@ define([ * @param tabContentWrapperEl */ let setMapTabContentWrapperObserver = tabContentWrapperEl => { + $(tabContentWrapperEl).on('pf:renderGlobalModules', `.${Util.config.mapTabContentClass}`, function(e, data){ + getModules() + .then(modules => filterModules(modules, 'global')) + .then(modules => renderModules(modules, e.target, data)); + }); + $(tabContentWrapperEl).on('pf:renderSystemModules', `.${Util.config.mapTabContentClass}`, function(e, data){ getModules() .then(modules => filterModules(modules, 'system')) @@ -114,6 +116,12 @@ define([ .then(modules => removeModules(modules, e.target)); }); + $(tabContentWrapperEl).on('pf:updateGlobalModules', `.${Util.config.mapTabContentClass}`, (e, data) => { + getModules() + .then(modules => filterModules(modules, 'global')) + .then(modules => updateModules(modules, e.target, data)); + }); + $(tabContentWrapperEl).on('pf:updateSystemModules', `.${Util.config.mapTabContentClass}`, (e, data) => { getModules() .then(modules => filterModules(modules, true, 'fullDataUpdate')) @@ -141,6 +149,7 @@ define([ SystemRouteModule, SystemIntelModule, SystemKillboardModule, + TheraModule, ConnectionInfoModule ]; @@ -361,7 +370,7 @@ define([ }); }; - removeModule(Module, gridArea, true).then(abc => render(Module, gridArea, defaultPosition, mapId, payload)); + removeModule(Module, gridArea, false).then(abc => render(Module, gridArea, defaultPosition, mapId, payload)); }; return new Promise(renderModuleExecutor); @@ -533,7 +542,7 @@ define([ let updateSystemModulesData = (mapModule, systemData) => { if(systemData){ // check if current open system is still the requested info system - let currentSystemData = Util.getCurrentSystemData(); + let currentSystemData = Util.getCurrentSystemData(systemData.mapId); if( currentSystemData && @@ -556,6 +565,7 @@ define([ let setTabContentObserver = (tabContent, mapId) => { let defaultSortableOptions = { + invertSwap: true, animation: Init.animationSpeed.mapModule, handle: '.' + config.sortableHandleClass, draggable: '.' + config.moduleClass, @@ -926,10 +936,11 @@ define([ let mapId = parseInt(linkEl.dataset.mapId) || 0; let defaultSystemId = parseInt(linkEl.dataset.defaultSystemId) || 0; let tabMapData = Util.getCurrentMapData(mapId); + let tabContentEl = document.getElementById(config.mapTabIdPrefix + mapId); - if(tabMapData !== false){ + // tabContentEl does not exist in case of error where all map elements got removed + if(tabMapData !== false && tabContentEl){ // load map - let tabContentEl = document.getElementById(config.mapTabIdPrefix + mapId); let areaMap = tabContentEl.querySelector(`.${Util.getMapTabContentAreaClass('map')}`); Map.loadMap(areaMap, tabMapData, {showAnimation: true}).then(payload => { // "wake up" scrollbar for map and get previous state back @@ -938,6 +949,11 @@ define([ let areaMap = mapElement.closest('.mCustomScrollbar'); $(areaMap).mCustomScrollbar('update'); + // show "global" map panels of map was initial loaded + if(payload.isFirstLoad){ + MapUtil.showMapInfo(mapConfig.map); + } + // if there is an already an "active" system -> setCurrentSystemData for that again let activeSystemEl = mapElement.querySelector(`.${MapUtil.config.systemActiveClass}`); if(activeSystemEl){ @@ -973,9 +989,6 @@ define([ // skip "add button" if(newMapId > 0){ - // delete currentSystemData -> will be set for new map (if there is is an active system) - delete Init.currentSystemData; - let currentTabContentEl = document.getElementById(config.mapTabIdPrefix + oldMapId); // disable scrollbar for map that will be hidden. "freeze" current state @@ -991,90 +1004,81 @@ define([ * @param options * @returns {Promise} */ - let updateTabData = (tabLinkEl, options) => { + let updateTabData = (tabLinkEl, options) => new Promise(resolve => { + // set "main" data + tabLinkEl.dataset.mapId = options.id; - /** - * update tab promise - * @param resolve - */ - let updateTabExecutor = resolve => { - // set "main" data - tabLinkEl.dataset.mapId = options.id; + // add updated timestamp (not available for "add" tab + if(Util.getObjVal(options, 'updated.updated')){ + tabLinkEl.dataset.updated = options.updated.updated; + } - // add updated timestamp (not available for "add" tab - if(Util.getObjVal(options, 'updated.updated')){ - tabLinkEl.dataset.updated = options.updated.updated; + // change "tab" link + tabLinkEl.setAttribute('href', `#${config.mapTabIdPrefix}${options.id}`); + + // change "map" icon + let mapIconEl = tabLinkEl.querySelector(`.${config.mapTabIconClass}`); + mapIconEl.classList.remove(...mapIconEl.classList); + mapIconEl.classList.add(config.mapTabIconClass, 'fas', 'fa-fw', options.icon); + + // change "shared" icon + let mapSharedIconEl = tabLinkEl.querySelector(`.${config.mapTabSharedIconClass}`); + mapSharedIconEl.style.display = 'none'; + + // check if the map is a "shared" map + if(options.access){ + if( + options.access.character.length > 1 || + options.access.corporation.length > 1 || + options.access.alliance.length > 1 + ){ + mapSharedIconEl.style.display = 'initial'; } + } - // change "tab" link - tabLinkEl.setAttribute('href', `#${config.mapTabIdPrefix}${options.id}`); + // change map name label + let textEl = tabLinkEl.querySelector(`.${config.mapTabLinkTextClass}`); + textEl.textContent = options.name; - // change "map" icon - let mapIconEl = tabLinkEl.querySelector(`.${config.mapTabIconClass}`); - mapIconEl.classList.remove(...mapIconEl.classList); - mapIconEl.classList.add(config.mapTabIconClass, 'fas', 'fa-fw', options.icon); + // change tabClass + let listEl = tabLinkEl.parentNode; - // change "shared" icon - let mapSharedIconEl = tabLinkEl.querySelector(`.${config.mapTabSharedIconClass}`); - mapSharedIconEl.style.display = 'none'; + // new tab classes + let tabClasses = [config.mapTabClass, options.type.classTab]; - // check if the map is a "shared" map - if(options.access){ - if( - options.access.character.length > 1 || - options.access.corporation.length > 1 || - options.access.alliance.length > 1 - ){ - mapSharedIconEl.style.display = 'initial'; - } - } + if(options.draggable === false){ + tabClasses.push('noSort'); + } - // change map name label - let textEl = tabLinkEl.querySelector(`.${config.mapTabLinkTextClass}`); - textEl.textContent = options.name; + // check if tab was "active" before + if(listEl.classList.contains('active')){ + tabClasses.push('active'); + } + listEl.classList.remove(...listEl.classList); + listEl.classList.add(...tabClasses); - // change tabClass - let listEl = tabLinkEl.parentNode; + // set title for tooltip + if(options.type.name !== undefined){ + textEl.setAttribute('title', `${options.type.name} map`); + } - // new tab classes - let tabClasses = [config.mapTabClass, options.type.classTab]; - - if(options.draggable === false){ - tabClasses.push('noSort'); - } - - // check if tab was "active" before - if(listEl.classList.contains('active')){ - tabClasses.push('active'); - } - listEl.classList.remove(...listEl.classList); - listEl.classList.add(...tabClasses); - - // set title for tooltip - if(options.type.name !== undefined){ - textEl.setAttribute('title', `${options.type.name} map`); - } - - let mapTooltipOptions = { - placement: 'bottom', - container: 'body', - trigger: 'hover', - delay: 150 - }; - - $(listEl.querySelector('[title]')).tooltip(mapTooltipOptions).tooltip('fixTitle'); - - resolve({ - action: 'update', - data: { - mapId: options.id, - mapName: options.name - } - }); + let mapTooltipOptions = { + placement: 'bottom', + container: 'body', + trigger: 'hover', + delay: 150 }; - return new Promise(updateTabExecutor); - }; + $(listEl.querySelector('[title]')).tooltip(mapTooltipOptions).tooltip('fixTitle'); + + resolve({ + action: 'update', + data: { + mapId: options.id, + mapName: options.name + } + }); + }); /** * add a new tab to tab-map-module end return promise @@ -1545,10 +1549,14 @@ define([ setMapTabLayout(tabEl, layoutCurrent); // prepare select options for modules - let sourceOptions = modules.sort((a, b) => a.isPlugin - b.isPlugin).map(Module => ({ + let modulePrioCounts = Array(BaseModule.scopeOrder.length).fill(0); + let sourceOptions = modules.sort((a, b) => a.getOrderPrio() - b.getOrderPrio()).map(Module => ({ value: Module.name, - text: `(${Module.scope.substring(0, 3)}) ${Module.label}`, + text: Module.label, metaData: { + scope: Module.scope, + orderPrio: Module.getOrderPrio(), + prioCount: ++modulePrioCounts[Module.getOrderPrio()], isPlugin: Module.isPlugin } })); @@ -1628,6 +1636,19 @@ define([ } } }, {passive: false}); + + // add "headlines" to Modules checklist ------------------------------------------------------- + anchorEl.childNodes.forEach((gridItem, i) => { + if(sourceOptions[i].metaData.prioCount === 1){ + gridItem.classList.add(config.editableHeadlineClass); + gridItem.setAttribute('data-count', + modulePrioCounts[sourceOptions[i].metaData.orderPrio] + ); + gridItem.setAttribute('data-headline', + BaseModule.scopeOrder[sourceOptions[i].metaData.orderPrio] + ); + } + }); }); settingsLinkEl.on('save', {sourceOptions: sourceOptions}, (e, params) => { @@ -1644,15 +1665,23 @@ define([ let showModules = filterModules(modules, params.newValue.diff(oldValue), 'name'); removeModules(hideModules, tabContentEl).then(payload => { + let showGlobalModules = showModules.filter(Module => Module.scope === 'global'); let showSystemModules = showModules.filter(Module => Module.scope === 'system'); let showConnectionModules = showModules.filter(Module => Module.scope === 'connection'); + if(showGlobalModules.length){ + renderModules(showGlobalModules, tabContentEl, { + mapId: activeMapId, + payload: null + }); + } + if( showSystemModules.length && - Util.getCurrentSystemData() + Util.getCurrentSystemData(activeMapId) ){ renderModules(showSystemModules, tabContentEl, { mapId: activeMapId, - payload: Util.getCurrentSystemData() + payload: Util.getCurrentSystemData(activeMapId) }); } @@ -1706,28 +1735,24 @@ define([ /** * collect all data (systems/connections) for export/save from each active map in the map module * if no change detected -> do not attach map data to return array - * @param mapModule + * @param {HTMLElement} mapModule * @param filter - * @returns {Array} + * @returns {[]} */ let getMapModuleDataForUpdate = (mapModule, filter = ['hasId', 'hasChanged']) => { - // get all active map elements for module - let mapElements = getMaps(mapModule); - let data = []; - for(let i = 0; i < mapElements.length; i++){ + [...mapModule.getElementsByClassName(Util.config.mapClass)].forEach(mapElement => { // get all changed (system / connection) data from this map - let mapData = Map.getMapDataForSync($(mapElements[i]), filter); - if(mapData !== false){ - if( - mapData.data.systems.length > 0 || - mapData.data.connections.length > 0 - ){ - data.push(mapData); - } + let mapData = Map.getMapDataForSync(mapElement, filter); + if( + mapData && ( + (Util.getObjVal(mapData, 'data.systems') || []).length || + (Util.getObjVal(mapData, 'data.connections') || []).length + ) + ){ + data.push(mapData); } - } - + }); return data; }; diff --git a/js/app/page.js b/js/app/page.js index ffcc7b8c..fad16239 100644 --- a/js/app/page.js +++ b/js/app/page.js @@ -1293,47 +1293,35 @@ define([ let mapUserUpdateKey = 'UPDATE_SERVER_USER_DATA'; // Set the name of the hidden property and the change event for visibility - let hidden, visibilityChange; - if(typeof document.hidden !== 'undefined'){ // Opera 12.10 and Firefox 18 and later support - hidden = 'hidden'; + let visibilityState, visibilityChange; + if(typeof document.visibilityState !== 'undefined'){ // Opera 12.10 and Firefox 18 and later support + visibilityState = 'visibilityState'; visibilityChange = 'visibilitychange'; - }else if(typeof document.mozHidden !== 'undefined'){ - hidden = 'mozHidden'; - visibilityChange = 'mozvisibilitychange'; - }else if(typeof document.msHidden !== 'undefined'){ - hidden = 'msHidden'; - visibilityChange = 'msvisibilitychange'; - }else if(typeof document.webkitHidden !== 'undefined'){ - hidden = 'webkitHidden'; - visibilityChange = 'webkitvisibilitychange'; } // function is called if the tab becomes active/inactive let handleVisibilityChange = () => { - if(document[hidden]){ - // tab is invisible - // globally store current visibility status - window.isVisible = false; - - Util.getCurrentTriggerDelay( mapUpdateKey, increaseTimer ); - Util.getCurrentTriggerDelay( mapUserUpdateKey, increaseTimer ); - }else{ + if(document[visibilityState] === 'visible'){ // tab is visible // globally store current visibility status window.isVisible = true; - Util.getCurrentTriggerDelay( mapUpdateKey, -increaseTimer ); - Util.getCurrentTriggerDelay( mapUserUpdateKey, -increaseTimer ); + Util.getCurrentTriggerDelay(mapUpdateKey, -increaseTimer); + Util.getCurrentTriggerDelay(mapUserUpdateKey, -increaseTimer); // stop blinking tab from previous notifications Util.stopTabBlink(); + }else{ + // tab is invisible + // globally store current visibility status + window.isVisible = false; + + Util.getCurrentTriggerDelay(mapUpdateKey, increaseTimer); + Util.getCurrentTriggerDelay(mapUserUpdateKey, increaseTimer); } }; - if( - typeof document.addEventListener !== 'undefined' && - typeof document[hidden] !== 'undefined' - ){ + if(visibilityState && visibilityChange){ // the current browser supports this feature // Handle page visibility change diff --git a/js/app/pnotify.loader.js b/js/app/pnotify.loader.js index 6c69050e..d6d13e23 100644 --- a/js/app/pnotify.loader.js +++ b/js/app/pnotify.loader.js @@ -1,7 +1,8 @@ define([ 'PNotify', - 'PNotifyDesktop', + 'PNotifyButtons', 'PNotifyCallbacks', + 'PNotifyDesktop', 'NonBlock' ], (PNotify) => { 'use strict'; @@ -30,6 +31,9 @@ define([ } }; + /** + * default PNotify config + */ let initDefaultPNotifyConfig = () => { PNotify.defaults.styling = 'bootstrap3'; PNotify.defaults.icons = 'fontawesome5'; @@ -54,7 +58,6 @@ define([ config.modules = { Desktop: Object.assign({}, {desktop: true}, options.desktop) }; - startTabBlink(config.title); // make browser tab blink } switch(config.type){ @@ -99,60 +102,7 @@ define([ initDefaultPNotifyConfig(); - // browser tab blink ============================================================================================== - // initial page title (cached) - let initialPageTitle = document.title; - - // global blink timeout cache - let blinkTimer; - - /** - * change document.title and make the browsers tab blink - * @param blinkTitle - */ - let startTabBlink = blinkTitle => { - let initBlink = (function(){ - // count blinks if tab is currently active - let activeTabBlinkCount = 0; - - let blink = (blinkTitle) => { - // number of "blinks" should be limited if tab is currently active - if(window.isVisible){ - activeTabBlinkCount++; - } - - // toggle page title - document.title = (document.title === blinkTitle) ? initialPageTitle : blinkTitle; - - if(activeTabBlinkCount > 10){ - stopTabBlink(); - } - }; - - return () => { - if(!blinkTimer){ - blinkTimer = setInterval(blink, 1000, blinkTitle); - } - }; - }(blinkTitle)); - - initBlink(); - }; - - /** - * stop blinking document.title - */ - let stopTabBlink = () => { - if(blinkTimer){ - clearInterval(blinkTimer); - document.title = initialPageTitle; - blinkTimer = null; - } - }; - return { - showNotify: showNotify, - startTabBlink: startTabBlink, - stopTabBlink: stopTabBlink + showNotify: showNotify }; }); \ No newline at end of file diff --git a/js/app/ui/dialog/map_info.js b/js/app/ui/dialog/map_info.js index b0f817f9..c5b23c16 100644 --- a/js/app/ui/dialog/map_info.js +++ b/js/app/ui/dialog/map_info.js @@ -212,7 +212,7 @@ define([ let systemsElement = $(this); let systemTable = $('', { - id: Util.getTableId(config.tableId, 'systems', mapData.config.id, ''), + id: Util.getTableId(config.tableId, 'systems', mapData.config.id), class: ['compact', 'stripe', 'order-column', 'row-border'].join(' ') }); systemsElement.append(systemTable); @@ -469,7 +469,7 @@ define([ let confirmationSettings = { placement: 'left', - title: 'Delete system', + title: '---', template: Util.getConfirmationTemplate(null, { size: 'small', noTitle: true @@ -535,7 +535,7 @@ define([ let connectionsElement = $(this); let connectionTable = $('
', { - id: Util.getTableId(config.tableId, 'connections', mapData.config.id, ''), + id: Util.getTableId(config.tableId, 'connections', mapData.config.id), class: ['compact', 'stripe', 'order-column', 'row-border'].join(' ') }); connectionsElement.append(connectionTable); @@ -678,7 +678,7 @@ define([ let confirmationSettings = { placement: 'left', - title: 'Delete connection', + title: '---', template: Util.getConfirmationTemplate(null, { size: 'small', noTitle: true @@ -686,9 +686,7 @@ define([ onConfirm: function(e, target){ let deleteRowElement = $(target).parents('tr'); - // deleteSignatures(row); let connection = $().getConnectionById(mapData.config.id, rowData.id); - MapUtil.deleteConnections([connection], () => { // callback function after ajax "delete" success // remove table row diff --git a/js/app/ui/form_element.js b/js/app/ui/form_element.js index 9817cc7d..adb2a253 100644 --- a/js/app/ui/form_element.js +++ b/js/app/ui/form_element.js @@ -90,8 +90,7 @@ define([ let name = parts[0]; let sizeLabel; if(Util.getObjVal(customOptions, 'showWhSizeLabel')){ - let wormholeSizeData = Util.getObjVal(Init, 'wormholes.' + name + '.size'); - sizeLabel = Util.getObjVal(wormholeSizeData, 'label') || ''; + sizeLabel = Util.getObjVal(Init, `wormholes.${name}.size.label`) || ''; } let securityClass = Util.getSecurityClassForSystem(getSystemSecurityFromLabel(parts[1])); @@ -102,19 +101,17 @@ define([ let classes = [securityClass, Util.config.popoverTriggerClass, Util.config.helpDefaultClass]; - markup += '' + name + ''; + markup += `${name}`; if(sizeLabel !== undefined){ - markup += '' + sizeLabel + ''; - }else{ - markup += '  '; + markup += `${sizeLabel}`; } markup += ''; - markup += '  ' + label + ''; + markup += `  ${label}`; if(suffix.length){ - markup += ' ' + suffix + ''; + markup += ` ${suffix}`; } }else{ - markup += '' + state.text + ''; + markup += `${state.text}`; } return $(markup); @@ -203,10 +200,10 @@ define([ } let securityClass = Util.getSecurityClassForSystem(parts[1]); - markup += '' + parts[0] + '  '; - markup += '' + parts[1] + ''; + markup += `${parts[0]}`; + markup += `  ${parts[1]}`; }else{ - markup += '' + state.text + ''; + markup += `${state.text}`; } return $(markup); diff --git a/js/app/ui/module/base.js b/js/app/ui/module/base.js index 846fc7dd..edfa3447 100644 --- a/js/app/ui/module/base.js +++ b/js/app/ui/module/base.js @@ -2,9 +2,11 @@ define([ 'jquery', 'app/init', 'app/util', + 'app/map/util', + 'app/lib/cache', 'app/promises/promise.deferred', 'app/promises/promise.queue' -], ($, Init, Util, DeferredPromise, PromiseQueue) => { +], ($, Init, Util, MapUtil, Cache, DeferredPromise, PromiseQueue) => { 'use strict'; /** @@ -127,6 +129,34 @@ define([ }); } + /** + * label element + * @param text + * @param cls + * @returns {HTMLSpanElement} + */ + newLabelElement(text, cls = []){ + let labelEl = document.createElement('span'); + labelEl.classList.add('label', 'center-block', ...cls); + labelEl.textContent = text || ''; + return labelEl; + } + + /** + * control button element + * @param text + * @param cls + * @param iconCls + * @returns {HTMLDivElement} + */ + newControlElement(text, cls = [], iconCls = ['fa-sync']){ + let controlEl = document.createElement('div'); + controlEl.classList.add(...[BaseModule.Util.config.dynamicAreaClass, this._config.controlAreaClass, ...cls]); + controlEl.insertAdjacentHTML('beforeend', `  ${text}`); + controlEl.prepend(this.newIconElement(iconCls)); + return controlEl; + } + /** * HTTP request handler for internal (Pathfinder) ajax calls * @param args @@ -245,6 +275,188 @@ define([ } } + /** + * get a unique cache key name for "source"/"target"-name + * @param sourceName + * @param targetName + * @returns {string|boolean} + */ + static getConnectionDataCacheKey(sourceName, targetName){ + let key = false; + if(sourceName && targetName){ + // names can be "undefined" in case system is currently in drag/drop state + // sort() is important -> ignore direction + key = `con_` + `${ [String(sourceName).toLowerCase(), String(targetName).toLowerCase()].sort() }`.hashCode(); + } + return key; + } + + /** + * get a connectionsData object that holds all connections for given mapIds (used as cache for route search) + * @param mapIds + * @returns {{}} + */ + static getConnectionsDataFromMaps(mapIds){ + let data = {}; + for(let mapId of mapIds){ + let map = MapUtil.getMapInstance(mapId); + if(map){ + let cacheKey = `map_${mapId}`; + let cache = BaseModule.getCache('mapConnections'); + let mapConnectionsData = cache.get(cacheKey); + + if(!mapConnectionsData){ + mapConnectionsData = this.getConnectionsDataFromConnections(mapId, map.getAllConnections()); + // update cache + cache.set(cacheKey, mapConnectionsData); + } + Object.assign(data, mapConnectionsData); + } + } + return data; + } + + /** + * get a connectionsData object for all connections + * @param mapId + * @param connections + * @returns {{}} + */ + static getConnectionsDataFromConnections(mapId = 0, connections = []){ + let data = {}; + if(connections.length){ + let connectionsData = MapUtil.getDataByConnections(connections); + for(let connectionData of connectionsData){ + let connectionDataCacheKey = BaseModule.getConnectionDataCacheKey(connectionData.sourceName, connectionData.targetName); + + // skip double connections between same systems + if(connectionDataCacheKey && !Object.keys(data).includes(connectionDataCacheKey)){ + data[connectionDataCacheKey] = { + map: { + id: mapId + }, + connection: { + id: connectionData.id, + type: connectionData.type, + scope: connectionData.scope, + updated: connectionData.updated + }, + source: { + id: connectionData.source, + name: connectionData.sourceName, + alias: connectionData.sourceAlias + }, + target: { + id: connectionData.target, + name: connectionData.targetName, + alias: connectionData.targetAlias + } + }; + } + } + } + return data; + } + + /** + * search for a specific connection by "source"/"target"-name inside connectionsData cache + * @param connectionsData + * @param sourceName + * @param targetName + * @returns {*} + */ + static findConnectionsData(connectionsData, sourceName, targetName){ + return this.Util.getObjVal(connectionsData, this.getConnectionDataCacheKey(sourceName, targetName)); + } + + /** + * get fake connection data (default connection type in case connection was not found on a map) + * @param sourceSystemData + * @param targetSystemData + * @param scope + * @param types + * @returns {{connection: {scope: string, id: number, type: [*]}, source: {name: number, alias: number, id: number}, target: {name: number, alias: number, id: number}}} + */ + static getFakeConnectionData(sourceSystemData, targetSystemData, scope = 'stargate', types = []){ + return { + connection: { + id: 0, + scope: scope, + type: types.length ? types : [MapUtil.getDefaultConnectionTypeByScope(scope)], + updated: 0 + }, + source: { + id: 0, + name: sourceSystemData.system, + alias: sourceSystemData.system + }, + target: { + id: 0, + name: targetSystemData.system, + alias: targetSystemData.system + } + }; + } + + /** + * get fake connection Element + * @param connectionData + * @returns {string} + */ + static getFakeConnectionElement(connectionData){ + let mapId = this.Util.getObjVal(connectionData, 'map.id') || 0; + let connectionId = this.Util.getObjVal(connectionData, 'connection.id') || 0; + let scope = this.Util.getObjVal(connectionData, 'connection.scope') || ''; + let classes = MapUtil.getConnectionFakeClassesByTypes(this.Util.getObjVal(connectionData, 'connection.type') || []); + let disabled = !mapId || !connectionId; + + let connectionElement = '
'; + return connectionElement; + } + + /** + * get static instance of in-memory Cache() store by 'name' + * -> not persistent across page reloads + * -> persistent across module instances (different and same maps) + * @param name + * @returns {Cache} + */ + static getCache(name){ + let key = `CACHE-${name}`; + if(!this.Util.getObjVal(this, key)){ + let configKey = `cacheConfig.${name}`; + let cacheConfig = this.Util.getObjVal(this, configKey); + if(!cacheConfig){ + console.warn('Missing Cache config for %o. Expected at %o. Default config loaded…', + name, `${this.name}.${configKey}` + ); + cacheConfig = {}; + }else{ + // set cache name + cacheConfig.name = name; + } + + this[key] = new Cache(cacheConfig); + } + return this[key]; + } + + static now(){ + return new Date().getTime() / 1000; + } + + static getOrderPrio(){ + return this.isPlugin ? + this.scopeOrder.indexOf('plugin') : + (this.scopeOrder.indexOf(this.scope) !== -1 ? + this.scopeOrder.indexOf(this.scope) : + this.scopeOrder.length - 1 + ); + } + static newDeferredPromise(){ return new DeferredPromise(); } @@ -259,6 +471,14 @@ define([ BaseModule.fullDataUpdate = false; // static module requires additional data (e.g. system description,...) BaseModule.Util = Util; // static access to Pathfinders Util object + BaseModule.scopeOrder = [ + 'system', + 'connection', + 'global', + 'plugin', + 'undefined' + ]; + BaseModule.handler = [ 'render', 'init', @@ -268,6 +488,14 @@ define([ 'onSortableEvent' ]; + BaseModule.cacheConfig = { + mapConnections: { + ttl: 5, + maxSize: 600, + debug: false + } + }; + BaseModule.defaultConfig = { position: 1, className: 'pf-base-module', // class for module @@ -276,6 +504,7 @@ define([ sortTargetAreas: ['a', 'b', 'c'], // sortable areas where module can be dragged into headline: 'Base headline', // module headline bodyClassName: 'pf-module-body', // class for module body [optional: can be used] + controlAreaClass: 'pf-module-control-area', // class for "control" areas moduleHeadlineIconClass: 'pf-module-icon-button' // class for toolbar icons in the head }; diff --git a/js/app/ui/module/connection_info.js b/js/app/ui/module/connection_info.js index 8af78b43..d3b09b0c 100644 --- a/js/app/ui/module/connection_info.js +++ b/js/app/ui/module/connection_info.js @@ -78,11 +78,9 @@ define([ */ newInfoPanelControlEl(mapId){ let connectionEl = this.newConnectionElement(mapId); - - let controlEl = document.createElement('div'); - controlEl.classList.add(Util.config.dynamicAreaClass, this._config.controlAreaClass); - controlEl.insertAdjacentHTML('beforeend', ' add connection  ctrl + click'); - connectionEl.append(controlEl); + connectionEl.append( + this.newControlElement('add connection  ctrl + click', [], ['fa-plus']) + ); return connectionEl; } @@ -267,9 +265,12 @@ define([ }, context => { // hide loading animation for(let contextData of context.connectionsData){ - let tableEls = this.moduleElement.querySelector('#' + this.getConnectionElementId(contextData.id)) - .getElementsByTagName('table'); - $(tableEls).hideLoadingAnimation(); + let connectionEl = this.moduleElement.querySelector('#' + this.getConnectionElementId(contextData.id)); + // connectionEl might be removed in meantime ( e.g. module removed) + if(connectionEl){ + let tableEls = connectionEl.getElementsByTagName('table'); + $(tableEls).hideLoadingAnimation(); + } } }); } @@ -351,7 +352,7 @@ define([ let scopeLabel = MapUtil.getScopeInfoForConnection(connectionData.scope, 'label'); let element = document.createElement('div'); - element.classList.add(Util.config.dynamicAreaClass, this._config.controlAreaClass); + element.classList.add(BaseModule.Util.config.dynamicAreaClass, this._config.controlAreaClass); $(element).append( $('
', { @@ -990,7 +991,7 @@ define([ if(rowData.active){ let confirmationSettings = { - title: 'delete jump log', + title: '---', template: Util.getConfirmationTemplate(null, { size: 'small', noTitle: true @@ -1251,7 +1252,6 @@ define([ // body connectionInfoPanelClass: 'pf-connection-info-panel', // class for connection info panels - controlAreaClass: 'pf-module-control-area', // class for "control" areas // info table moduleTableClass: 'pf-module-table', // class for module tables diff --git a/js/app/ui/module/demo.js b/js/app/ui/module/demo.js index ceef22f4..5bf82148 100644 --- a/js/app/ui/module/demo.js +++ b/js/app/ui/module/demo.js @@ -249,7 +249,7 @@ define([ // dependencies for this module } }; - DemoModule.isPlugin = true; // module is defined as 'plugin' + DemoModule.isPlugin = true; // module is defined as 'plugin' DemoModule.scope = 'system'; // module scope controls how module gets updated and what type of data is injected DemoModule.sortArea = 'a'; // default sortable area DemoModule.position = 10; // default sort/order position within sortable area diff --git a/js/app/ui/module/global_thera.js b/js/app/ui/module/global_thera.js new file mode 100644 index 00000000..bcd4640d --- /dev/null +++ b/js/app/ui/module/global_thera.js @@ -0,0 +1,1028 @@ +define([ + 'jquery', + 'app/init', + 'app/util', + 'module/base', + 'app/map/map', + 'app/map/util', + 'app/ui/form_element' +], ($, Init, Util, BaseModule, Map, MapUtil, FormElement) => { + 'use strict'; + + /** + * TheraModule class + * @type {TheraModule} + */ + let TheraModule = class TheraModule extends BaseModule { + constructor(config = {}) { + config.eveScoutUrl = new URL(Init.url.eveScout); + super(Object.assign({}, new.target.defaultConfig, config)); + } + + /** + * get icon for undefined/missing cell value + * @returns {string} + */ + getIconForUndefinedCellValue(){ + return ''; + } + + /** + * get icon for "syncStatus" (connection is mapped) cell value + * @param status + * @returns {string} + */ + getIconForStatusCellValue(status = ''){ + let title = ''; + switch(status){ + case 'warning': + title = `not in ${this._config.eveScoutUrl.hostname.replace('www.', '')} connections`; + break; + case 'success': + title = `in ${this._config.eveScoutUrl.hostname.replace('www.', '')} connections`; + break; + case 'hint': + title += `sync connections/signatures`; + break; + default: + title = `not mapped`; + } + + return ``; + } + + /** + * get dataTable id + * @param {...string} parts e.g. 'tableType', 'mapId', 'systemId' + * @returns {string} + */ + getTableId(...parts){ + return BaseModule.Util.getTableId(this._config.theraTableId, ...parts); + } + + /** + * get dataTable row id + * @param tableType + * @param id + * @returns {string} + */ + getRowId(tableType, id){ + return BaseModule.Util.getTableRowId(this._config.theraTableRowIdPrefix, tableType, id); + } + + /** + * get DOM id by id + * @param tableApi + * @param id + * @returns {*} + */ + getRowById(tableApi, id){ + return tableApi.rows().ids().toArray().find(rowId => + rowId === this.getRowId(BaseModule.Util.getObjVal(this.getTableMetaData(tableApi), 'type'), id) + ); + } + + /** + * get custom "metaData" from dataTables API + * @param tableApi + * @returns {*} + */ + getTableMetaData(tableApi){ + return tableApi ? tableApi.init().pfMeta : null; + } + + /** + * initial module render method + * -> implementation is enforced by BaseModule + * -> must return a single node element + * @param mapId + * @returns {HTMLElement} + */ + render(mapId){ + this._mapId = mapId; + + // ... append your custom module body + this._bodyEl = Object.assign(document.createElement('div'), { + className: this._config.bodyClassName + }); + + this.moduleElement.append(this._bodyEl); + + this._bodyEl.append( + this.newControlElement( + 'Thera not found on map. Click here to add', + [this._config.moduleHeadlineIconClass, this._config.controlAreaTheraClass, 'hidden'], + ['fa-plus'] + ) + ); + + $(this.moduleElement).showLoadingAnimation(); + + this.initTheraTable(); + + this.setModuleObserver(); + + return this.moduleElement; + } + + /** + * init 'Thera connections' table (EveScout) + */ + initTheraTable(){ + let module = this; + + let tableEl = document.createElement('table'); + tableEl.id = module.getTableId('thera', module._mapId); + tableEl.classList.add('compact', 'stripe', 'order-column', 'row-border', 'pf-table-fixed', module._config.globalTheraTableClass); + this._bodyEl.append(tableEl); + + this._tableApi = $(tableEl).DataTable( { + pfMeta: { + type: 'theraConnection' + }, + paging: false, + ordering: true, + order: [[0, 'desc'], [8, 'desc']], + orderFixed: [[ 10, 'desc']], + info: false, + searching: false, + hover: false, + autoWidth: false, + rowId: rowData => module.getRowId('theraConnection', rowData.id), + select: { + style: 'os', + selector: 'td:not(.' + module._config.tableCellActionClass + ')' + }, + language: { + emptyTable: 'No Thera connections found' + }, + columnDefs: [ + { + targets: 0, + name: 'syncStatus', + title: '', + width: 2, + className: 'text-center', + data: 'syncStatus', + defaultContent: module.getIconForStatusCellValue(), + render: { + display: (cellData, type, rowData, meta) => { + return module.getIconForStatusCellValue(cellData); + }, + sort: syncStatus => ['warning', 'hint', 'success'].indexOf(syncStatus) + } + },{ + targets: 1, + name: 'trueSec', + title: 'sec', + width: 15, + className:'text-center', + data: 'target.trueSec', + defaultContent: module.getIconForUndefinedCellValue(), + render: { + display: (cellData, type, rowData, meta) => { + if(cellData !== undefined){ + let systemTrueSecClass = BaseModule.Util.getTrueSecClassForSystem(cellData); + return '' + cellData.toFixed(1) + ''; + } + } + } + },{ + targets: 2, + name: 'systemName', + title: 'system', + className: module._config.tableCellEllipsisClass, + data: 'target', + defaultContent: module.getIconForUndefinedCellValue(), + render: { + display: (cellData, type, rowData, meta) => { + let systemId = cellData.id || ''; + let cls = ( + cellData.name && ( + BaseModule.Util.getObjVal(rowData, 'relRowId') || // secondary table + BaseModule.Util.getObjVal(rowData, 'connectionId') // primary table + ) + ) ? module._config.linkClass : ''; + return `${cellData.name || ''}`; + }, + sort: 'name' + } + },{ + targets: 3, + name: 'region', + title: 'region', + className: module._config.tableCellEllipsisClass, + data: 'target', + defaultContent: module.getIconForUndefinedCellValue(), + render: { + _: 'region.name' + } + },{ + targets: 4, + name: 'outSig', + title: '', + width: 12, + className: ['text-center', module._config.fontUppercaseClass].join(' '), + data: 'sourceSignature', + defaultContent: module.getIconForUndefinedCellValue(), + render: { + _: 'name' + } + },{ + targets: 5, + name: 'fakeConnection', + title: 'con.', + orderable: false, + width: 30, + className: 'text-center', + data: 'fakeConnection', + defaultContent: '' + },{ + targets: 6, + name: 'inSig', + title: '', + width: 12, + className: ['text-center', module._config.fontUppercaseClass].join(' '), + data: 'targetSignature', + defaultContent: module.getIconForUndefinedCellValue(), + render: { + _: 'name' + } + },{ + targets: 7, + name: 'wormholeLabel', + title: 'type', + width: 50, + className: module._config.tableCellTypeClass, + data: 'wormholeLabel', + defaultContent: module.getIconForUndefinedCellValue(), + render: { + display: (cellData, type, rowData, meta) => { + if(cellData){ + let wormholeData = BaseModule.Util.getObjVal(Init, `wormholes.${cellData}`); + let security = BaseModule.Util.getObjVal(wormholeData, `security`); + let typeNodes = FormElement.formatSignatureTypeSelectionData({text: `${cellData} - ${security}`}, undefined, {showWhSizeLabel: false}); + return [...typeNodes].reduce((acc, node) => { + acc += node.outerHTML; + return acc; + }, ''); + } + } + } + },{ + targets: 8, + name: 'estimatedLife', + title: '', + width: 15, + className: 'text-right', + data: 'estimatedEol', + defaultContent: module.getIconForUndefinedCellValue(), + render: { + display: (cellData, type, rowData, meta) => { + try{ + let timeNow = (new Date()).getTime(); + let timeEol = Date.parse(cellData); + if(!isNaN(timeNow) && !isNaN(timeEol) ){ + let diff = (timeEol - timeNow) / 1000; + diff /= (60 * 60); + return `< ${Math.ceil(diff)}h`; + } + }catch(e){} + }, + sort: dateVal => Date.parse(dateVal) + } + },{ + targets: 9, + name: 'action', + title: '', + orderable: false, + width: 10, + className: ['text-center', module._config.tableCellActionClass, module._config.moduleHeadlineIconClass].join(' '), + data: null, + render: { + display: data => { + let icon = ''; + if(data.connectionId){ + icon = ''; + }else if(!data.syncStatus){ + icon = ''; + } + return icon; + } + }, + createdCell: function(cell, cellData, rowData, rowIndex, colIndex){ + let tableApi = this.api(); + + cell.addEventListener('click', e => { + e.stopPropagation(); + + let rowClicked = tableApi.row(e.target.closest('tr')); + rowData = rowClicked.data(); + + if(rowData.connectionId){ + // delete row(s) ------------------------------------------------------------------ + let deleteData = { + systemIds: [], + connectionIds: [], + }; + + let value, label; + // check if multiple rows are selected + current row is one of them -> bulk edit + let rowsSelected = tableApi.rows({selected: true}); + if(rowsSelected.count() > 1 && tableApi.row(rowIndex, {selected: true}).count()){ + deleteData = rowsSelected.data().toArray() + .reduce((acc, rowData) => { + acc.systemIds.push(BaseModule.Util.getObjVal(rowData, 'target.realId')); + acc.connectionIds.push(BaseModule.Util.getObjVal(rowData, 'connectionId')); + return acc; + }, deleteData); + label = `delete ${deleteData.systemIds.length} systems`; + }else{ + // get current row data (important!) + // -> "rowData" param is not current state, values are "on createCell()" state + rowsSelected = tableApi.row( $(cell).parents('tr')); + rowData = rowsSelected.data(); + deleteData.systemIds.push(BaseModule.Util.getObjVal(rowData, 'target.realId') || 0); + deleteData.connectionIds.push(BaseModule.Util.getObjVal(rowData, 'connectionId') || 0); + label = `delete '${BaseModule.Util.getObjVal(rowData, 'target.name')}'`; + } + + let confirmationSettings = { + title: '---', + template: BaseModule.Util.getConfirmationTemplate(BaseModule.Util.getConfirmationContent([{ + name: 'deleteSystems', + value: 1, + label: label, + class: 'pf-editable-warn', + checked: false + }]), { + size: 'small', + noTitle: true + }), + trigger: 'manual', + onConfirm : function(e, target){ + // stop scroll to top + e.preventDefault(); + + // get form data (check if form tag is not hidden!) from confirmation popover + let tip = target.data('bs.confirmation').tip(); + let form = tip.find('form:not(.hidden)').first(); + let formData = form.getFormValues(); + let deleteSystems = BaseModule.Util.getObjVal(formData, 'deleteSystems'); + + if(deleteSystems){ + // delete systems -> connections get auto removed as well + let activeMap = BaseModule.Util.getMapModule().getActiveMap(); + let systems = deleteData.systemIds.map(systemId => + document.getElementById(MapUtil.getSystemId(module._mapId, systemId)) + ).filter(Boolean); + + $(module.moduleElement).showLoadingAnimation(); + activeMap.trigger('pf:deleteSystems', [{ + systems: systems, + callback: deletedSystems => { + // callback function after ajax "delete" success + // check if system was deleted + if(deletedSystems.length){ + // remove table row + rowsSelected.remove().draw(); + }else{ + // error + this.showNotify({title: 'Failed to delete system', type: 'error'}); + } + $(module.moduleElement).hideLoadingAnimation(); + } + }]); + }else{ + // just delete connections + let connections = deleteData.connectionIds.map(connectionId => + $().getConnectionById(module._mapId, connectionId) + ).filter(Boolean); + + $(module.moduleElement).showLoadingAnimation(); + MapUtil.deleteConnections(connections, () => { + // callback function after ajax "delete" success + // remove table row + rowsSelected.remove().draw(); + $(module.moduleElement).hideLoadingAnimation(); + }); + } + } + }; + + // init confirmation dialog + $(cell).confirmation('destroy').confirmation(confirmationSettings).confirmation('show'); + }else if(!rowData.syncStatus){ + // add row ------------------------------------------------------------------------ + + let systemDataThera = MapUtil.getSystemData(module._mapId, TheraModule.systemIdThera, 'systemId'); + let systemDataSource = MapUtil.getSystemData(module._mapId, BaseModule.Util.getObjVal(rowData, 'target.id'), 'systemId'); + + if(systemDataThera && systemDataSource){ + // source & target system are already on map -> just draw connection + let map = MapUtil.getMapInstance(module._mapId); + let connectionData = { + source: systemDataThera.id, + target: systemDataSource.id, + scope: rowData.scope, + type: rowData.type + }; + + $(module.moduleElement).showLoadingAnimation(); + + Map.drawConnection(map, connectionData) + .then(payload => Map.saveConnection(payload.data.connection, true)) + .catch(console.warn); + }else{ + let options = { + systemData: { + id: BaseModule.Util.getObjVal(rowData, 'target.id'), + name: BaseModule.Util.getObjVal(rowData, 'target.name') + } + }; + + if(systemDataThera){ + let systemThera = document.getElementById(MapUtil.getSystemId(systemDataThera.mapId, systemDataThera.id)); + if(systemThera){ + options.sourceSystem = $(systemThera); + options.connectionData = { + scope: rowData.scope, + type: rowData.type, + disableAutoScope: true + }; + } + } + + module.showNewSystemDialog(options); + } + } + }); + } + },{ + targets: 10, + name: 'rowGroupData', + className: 'never', // never show this column. see: https://datatables.net/extensions/responsive/classes + data: 'rowGroupData', + defaultContent: 0, + visible: false, + render: { + sort: 'id' + } + } + ], + drawCallback: function(settings){ + let animationRows = this.api().rows().nodes().to$().filter(function(){ + return ( + $(this).data('animationStatus') || + $(this).data('animationTimer') + ); + }); + + animationRows.initTooltips(); + + for(let i = 0; i < animationRows.length; i++){ + let animationRow = $(animationRows[i]); + animationRow.pulseBackgroundColor(animationRow.data('animationStatus')); + animationRow.removeData('animationStatus'); + } + }, + initComplete: function(settings, json){ + module.getTheraConnectionsData('callbackUpdateTableRows'); + + // hover effect ----------------------------------------------------------------------------------- + let tableApi = this.api(); + let relRowId = null; + tableApi.tables().nodes().to$().on('mouseenter', 'td', function(){ + relRowId = BaseModule.Util.getObjVal(tableApi.row(this.parentElement).data(), 'relRowId') || null; + if(relRowId){ + let colIndex = tableApi.cell(this).index().column; + if(colIndex <= 8){ + let cell = tableApi.cell(this); + let relCell = tableApi.cell( + `#${module.getRowById(tableApi, relRowId)}`, + colIndex + ); + cell.nodes().to$().addClass('cellHighlight'); + relCell.nodes().to$().addClass('cellHighlight'); + + if([4,5,6,7,8].includes(colIndex)){ + let cellNode = cell.node(); + let relCellNode = relCell.node(); // might not exist if relRow was recently removed + if( + cellNode && relCellNode && + cellNode.innerHTML !== relCellNode.innerHTML + ){ + cellNode.dataset.origValue = cellNode.innerHTML; + cellNode.innerHTML = relCellNode.innerHTML; + } + } + } + } + }).on('mouseleave', 'td', function(){ + if(relRowId){ + if(this.dataset.origValue){ + this.innerHTML = this.dataset.origValue; + delete this.dataset.origValue; + } + tableApi.cells().nodes().to$().removeClass('cellHighlight'); + relRowId = null; + } + }); + + // click on "fake connection" --------------------------------------------------------------------- + $(this).on('click', '.pf-fake-connection', function(){ + let rowData = tableApi.row(this.closest('tr')).data(); + if(rowData.connectionId){ + let connection = $().getConnectionById(module._mapId, rowData.connectionId); + if(connection){ + let map = connection._jsPlumb.instance; + MapUtil.showConnectionInfo(map, [connection]); + } + } + }); + + // click on "target system name" ------------------------------------------------------------------ + $(this).on('click', `.${module._config.linkClass}[data-systemid]:not([data-systemid=''])`, e => { + BaseModule.Util.triggerMenuAction( + BaseModule.Util.getMapModule().getActiveMap(), + 'SelectSystem', + {systemId: MapUtil.getSystemData(module._mapId, parseInt(e.target.dataset.systemid), 'systemId').id} + ); + }); + }, + data: [] // will be added dynamic + }); + + let buttons = new $.fn.dataTable.Buttons(this._tableApi, { + dom: { + container: { + tag: 'h5', + className: 'pull-right' + }, + button: { + tag: 'i', + className: ['fas', 'fa-fw', module._config.moduleHeadlineIconClass].join(' '), + }, + buttonLiner: { + tag: null + } + }, + name: 'tableTools', + buttons: [ + { + name: 'eveScout', + className: 'fa-external-link-alt', + titleAttr: module._config.eveScoutUrl.hostname.replace('www.', ''), + attr: { + 'data-toggle': 'tooltip', + 'data-html': true + }, + action: function(e, tableApi, node, config){ + e.stopPropagation(); + window.open(`//${module._config.eveScoutUrl.hostname}`, '_blank'); + } + }, { + name: 'refresh', + className: 'fa-sync', + titleAttr: 'refresh', + attr: { + 'data-toggle': 'tooltip', + 'data-html': true + }, + action: function(e, tableApi, node, config){ + $(module.moduleElement).showLoadingAnimation(); + module.getTheraConnectionsData('callbackUpdateTableRows'); + } + } + ] + }); + + // "RowGroup" Datatables Plugin + this._tableApi.buttons().container().appendTo(module.moduleElement.querySelector('.' + module._config.headClassName)); + + new $.fn.dataTable.RowGroup(this._tableApi, { + dataSrc: 'rowGroupData.name', + startRender: function(rows, group, level){ + return `
` + + `${group}` + + `${rows.count()}` + + `
`; + } + }); + + // "Select" Datatables Plugin + this._tableApi.select(); + + this._tableApi.on('user-select', function(e, tableApi, type, cell, originalEvent){ + let rowData = tableApi.row(cell.index().row).data(); + if(!BaseModule.Util.getObjVal(rowData, 'connectionId')){ + e.preventDefault(); + } + }); + } + + /** + * @param options + * @param isThera + */ + showNewSystemDialog(options = {}, isThera = false){ + let activeMap = BaseModule.Util.getMapModule().getActiveMap(); + + // custom callback -> refresh Thera table + options.callback = (map, newSystemData, sourceSystem, connectionData) => { + $(this.moduleElement).showLoadingAnimation(); + + Map.saveSystemCallback(map, newSystemData, sourceSystem, connectionData); + }; + BaseModule.Util.triggerMenuAction(activeMap, 'AddSystem', options); + } + + /** + * get thera connections data + * @param callback + * @param system + */ + getTheraConnectionsData(callback, system = null){ + + this.getLocalStore().getItem('eveScout') + .then(cacheEntry => new Promise(resolve => { + + if( + cacheEntry && cacheEntry.tSet && + TheraModule.ttlEveScoutResponse > BaseModule.now() - cacheEntry.tSet + ){ + $(this.moduleElement).hideLoadingAnimation(); + resolve(cacheEntry.value); + }else{ + this.request('GET', 'systemThera', [], {}, this, context => { + $(this.moduleElement).hideLoadingAnimation(); + }).then(payload => { + let cacheEntry = { + tSet: BaseModule.now(), + value: Array.isArray(payload.data) ? payload.data : [] + }; + this.getLocalStore().setItem('eveScout', cacheEntry) + .then(cacheEntry => resolve(cacheEntry.value)); + }).catch(payload => { + let reason = payload.data.status + ' ' + payload.data.error; + this.showNotify({ + title: payload.data.jqXHR.status + ': Thera connections data', + text: reason, + type: 'warning' + }); + resolve([]); + }); + } + })) + .then(connectionsData => this[callback](connectionsData, system)); + } + + /** + * update thera table with data + * @param connectionsData + * @param systemThera + */ + callbackUpdateTableRows(connectionsData = [], systemThera = null){ + if(!this._tableApi){ + return; + } + + connectionsData = Array.isArray(connectionsData) ? connectionsData : []; + + let getGroupedRowId = (groupData, rowId) => { + return `${groupData.id}-${rowId}`; + }; + + let touchedRows = []; + let hadData = this._tableApi.rows().any(); + let notificationCounter = { + added: 0, + changed: 0, + deleted: 0 + }; + + let map = MapUtil.getMapInstance(this._mapId); + let currentMapData = BaseModule.Util.getCurrentMapData(this._mapId); + if(map && currentMapData){ + let groupDataMap = { + id: this._mapId, + name: BaseModule.Util.getObjVal(currentMapData, 'config.name') + }; + + let groupDataEveScout = { + id: 0, + name: 'eve-scout.com' + }; + + // get data from all Thera connections from current map ----------------------------------------------- + let currentConnectionsData = {}; + let systemTheraFound = false; + if(systemThera){ + systemTheraFound = true; + let currentConnections = MapUtil.searchConnectionsBySystems(map, [systemThera], '*'); + currentConnectionsData = BaseModule.getConnectionsDataFromConnections(this._mapId, currentConnections); + }else{ + let systemDataThera = MapUtil.getSystemData(this._mapId, TheraModule.systemIdThera, 'systemId'); + if(systemDataThera){ + systemTheraFound = true; + let systemIdThera = MapUtil.getSystemId(this._mapId, systemDataThera.id); + let currentConnections = MapUtil.searchConnectionsBySystems(map, [systemIdThera], '*'); + currentConnectionsData = BaseModule.getConnectionsDataFromConnections(this._mapId, currentConnections); + } + } + + this._bodyEl.querySelector(`.${this._config.controlAreaTheraClass}`).classList.toggle('hidden', systemTheraFound); + + let dateNow = new Date(); + + let tableDataPrimary = []; + let tableDataSecondary = []; + + let formatSignatureData = data => ({ + id: data.ids, + name: data.names.length ? data.names.map(name => name.substring(0, 3)).join(', ') : null, + type: { + name: data.labels.length ? data.labels.join(', ') : null + } + }); + + let equalPropVal = (val, prop = 'id') => b => b[prop] === val; + + // add mapped Thera connections (primary) ------------------------------------------------------------- + for(let currentConnectionData of Object.values(currentConnectionsData)){ + let connectionId = BaseModule.Util.getObjVal(currentConnectionData, 'connection.id') || 0; + let updated = BaseModule.Util.getObjVal(currentConnectionData, 'connection.updated') || 0; + let source = currentConnectionData.source; + let target = currentConnectionData.target; + let connectionHash = BaseModule.getConnectionDataCacheKey(source.name, target.name); + + // mapped connection not exists in eveScout data + let currentConnectionDataFull = MapUtil.getConnectionDataFromMapData(currentMapData, connectionId); + let connection = $().getConnectionById(this._mapId, connectionId); + let signatureTypeNames = MapUtil.getConnectionDataFromSignatures(connection, currentConnectionDataFull); + + let sourceSignature = formatSignatureData(signatureTypeNames.source); + let targetSignature = formatSignatureData(signatureTypeNames.target); + + // swap source <-> target. 'Thera' should be the source system + // -> In order to match the eve-scout response format for connections + if(target.name.toLowerCase() === 'thera'){ + [source, target] = [target, source]; + [sourceSignature, targetSignature] = [targetSignature, sourceSignature]; + } + + let whLabel = null; + let whSigId = 0; + for(let data of Object.values(signatureTypeNames)){ + if(!data.labels){ + continue; + } + let i = data.labels.findIndex(label => label !== 'K162'); + if(i !== -1){ + whLabel = data.labels[i]; + whSigId = data.ids[i]; + break; + } + } + + // to calc the remaining lifetime of the wormhole, we need the 'created' date of linked sig. + // -> This is "hacky"! We re-search all signatures by whSigId === id... :( + let estimatedEol; + let maxStableTime = BaseModule.Util.getObjVal(Object.assign({}, Init.wormholes[whLabel]), 'maxStableTime'); + if(maxStableTime && whSigId){ + let whSignatureData = (BaseModule.Util.getObjVal(currentConnectionDataFull, 'signatures') || []) + .find(equalPropVal(whSigId)); + let whSignatureCreated = BaseModule.Util.getObjVal(whSignatureData, 'created.created') || 0; + if(whSignatureCreated){ + let createdDate = new Date( whSignatureCreated * 1000); + createdDate.setHours(createdDate.getHours() + maxStableTime); + //estimatedEol = Math.floor(createdDate.getTime() / 1000); + estimatedEol = createdDate.toISOString(); + } + } + + let rowData = { + id: getGroupedRowId(groupDataMap, connectionHash), + hash: connectionHash, + scope: BaseModule.Util.getObjVal(currentConnectionData, 'connection.scope'), + type: BaseModule.Util.getObjVal(currentConnectionData, 'connection.type'), + source: (({id:realId, systemId:id, name, trueSec, constellation, region}) => + ({ + realId, + id, + name, + trueSec, + constellation, + region + }))(MapUtil.getSystemDataFromMapData(currentMapData, source.id)), + target: (({id:realId, systemId:id, name, trueSec, constellation, region}) => + ({ + realId, + id, + name, + trueSec, + constellation, + region + }))(MapUtil.getSystemDataFromMapData(currentMapData, target.id)), + sourceSignature: sourceSignature, + targetSignature: targetSignature, + wormholeLabel: whLabel, + syncStatus: 'warning', + rowGroupData: groupDataMap, + connectionId: connectionId, + fakeConnection: BaseModule.getFakeConnectionElement(currentConnectionData), + estimatedEol: estimatedEol, + updated: updated, + updatedHash: [updated, signatureTypeNames.hash].join().hashCode() + }; + + tableDataPrimary.push(rowData); + } + + // add EveScout Thera connections (secondary) --------------------------------------------------------- + for(let rowData of connectionsData){ + let systemNameSource = BaseModule.Util.getObjVal(rowData, 'source.name'); + let systemNameTarget = BaseModule.Util.getObjVal(rowData, 'target.name'); + let connectionHash = BaseModule.getConnectionDataCacheKey(systemNameSource, systemNameTarget); + + let whLabel = BaseModule.Util.getObjVal(rowData, 'sourceSignature.type.name') || null; + if(!whLabel){ + whLabel = BaseModule.Util.getObjVal(rowData, 'targetSignature.type.name') || null; + } + + let massType = BaseModule.Util.getObjVal(Object.assign({}, Init.wormholes[whLabel]), 'size.type'); + let connectionType = [...rowData.type, massType]; + + // overwrite eveScout id with new id (hash) + rowData.id = getGroupedRowId(groupDataEveScout, connectionHash); + rowData.hash = connectionHash; + rowData.wormholeLabel = whLabel; + rowData.syncStatus = null; + rowData.rowGroupData = groupDataEveScout; + rowData.connectionId = null; + rowData.type = connectionType; + rowData.fakeConnection = BaseModule.getFakeConnectionElement(BaseModule.getFakeConnectionData( + {system: systemNameSource}, + {system: systemNameTarget}, + rowData.scope, + rowData.type + )); + rowData.updatedHash = String(rowData.updated).hashCode(); + tableDataSecondary.push(rowData); + } + + // + Merge Primary + Secondary table data ------------------------------------------------------------- + for(let primaryRowData of tableDataPrimary){ + let secondaryIndex = tableDataSecondary.findIndex(equalPropVal(primaryRowData.hash, 'hash')); + if(secondaryIndex !== -1){ + // get a new hash key from both 'updated' values (primary + secondary) tableData + // -> if a signature gets updated on map, table row should be updated, too + // -> so we can check it later on if either prim. or sec. data has changed... + let updatedHash = [ + primaryRowData.updatedHash, + tableDataSecondary[secondaryIndex].updatedHash + ].join().hashCode(); + + primaryRowData.syncStatus = 'success'; + primaryRowData.relRowId = tableDataSecondary[secondaryIndex].id; + primaryRowData.updatedHash = updatedHash; + + // remove from secondary table data -> no duplicated rows + //tableDataSecondary.splice(secondaryIndex, 1); + + tableDataSecondary[secondaryIndex].syncStatus = 'hint'; + tableDataSecondary[secondaryIndex].relRowId = primaryRowData.id; + tableDataSecondary[secondaryIndex].updatedHash = updatedHash; + } + } + + let tableData = [...tableDataPrimary, ...tableDataSecondary]; + + // update table data ---------------------------------------------------------------------------------- + for(let rowData of tableData){ + let rowId = this.getRowById(this._tableApi, rowData.id); + + if(rowId){ + // update row + let api = this._tableApi.row('#' + rowId); + let rowDataCurrent = api.data(); + + // check for update + if( + BaseModule.Util.getObjVal(rowDataCurrent, 'updatedHash') !== + BaseModule.Util.getObjVal(rowData, 'updatedHash') + ){ + // row data changed -> update + api.data(rowData); + api.nodes().to$().data('animationStatus', 'changed'); + notificationCounter.changed++; + } + + touchedRows.push(api.id()); + }else{ + // insert new row + let api = this._tableApi.row.add(rowData); + api.nodes().to$().data('animationStatus', 'added'); + notificationCounter.added++; + + touchedRows.push(api.id()); + } + } + + let api = this._tableApi.rows((idx, data, node) => !touchedRows.includes(node.id)); + notificationCounter.deleted += api.ids().count(); + api.remove(); + + if(Math.max(...Object.values(notificationCounter))){ + this._tableApi.draw(); + } + + // show notification ---------------------------------------------------------------------------------- + let notification = Object.keys(notificationCounter).reduce((acc, key) => { + return `${acc}${notificationCounter[key] ? `${notificationCounter[key]} ${key}
` : ''}`; + }, ''); + + if(hadData && notification.length){ + this.showNotify({title: 'Thera connections updated', text: notification, type: 'success', textTrusted: true}); + } + }else{ + console.warn('Table update failed for Thera connections. MapData is missing'); + } + } + + /** + * set module observer + */ + setModuleObserver(){ + + // add Thera system + this._bodyEl.querySelector(`.${this._config.controlAreaTheraClass}`).addEventListener('click', e => { + this.showNewSystemDialog({ + systemData: { + id: TheraModule.systemIdThera, + name: 'Thera' + } + }, true); + }, false); + + // signature column - "type" popover + MapUtil.initWormholeInfoTooltip( + $(this.moduleElement).find('.' + this._config.globalTheraTableClass), + `.${this._config.tableCellTypeClass} span[class^="pf-system-sec-"]` + ); + + // init tooltips + $(this.moduleElement).initTooltips(); + } + + /** + * update module + * compare data and update module + * @param mapId + * @returns {Promise} + */ + update(mapId){ + return super.update(mapId).then(mapId => new Promise(resolve => { + this.getTheraConnectionsData('callbackUpdateTableRows'); + + resolve({ + action: 'update', + data: { + module: this + } + }); + })); + } + }; + + TheraModule.isPlugin = false; // module is defined as 'plugin' + TheraModule.scope = 'global'; // module scope controls how module gets updated and what type of data is injected + TheraModule.sortArea = 'b'; // default sortable area + TheraModule.position = 3; // default sort/order position within sortable area + TheraModule.label = 'Thera'; // static module label (e.g. description) + TheraModule.systemIdThera = 31000005; + TheraModule.ttlEveScoutResponse = 120; + + TheraModule.defaultConfig = { + className: 'pf-global-thera-module', // class for module + sortTargetAreas: ['a', 'b', 'c'], // sortable areas where module can be dragged into + headline: 'Thera Connection', + + // Thera module + theraTableId: 'pf-thera-table-', // id prefix for all tables in module + theraTableRowIdPrefix: 'pf-thera-row-', // id prefix for table rows + globalTheraTableClass: 'pf-global-thera-table', // class for NPC owned stations table + controlAreaTheraClass: 'pf-global-thera-control', // class for "thera system exists" label + + // fonts + fontUppercaseClass: 'pf-font-uppercase', // class for "uppercase" font + linkClass: 'pf-link', + + // Thera connections table + tableCellTypeClass: 'pf-table-type-cell', // class for "type" cells + tableCellEllipsisClass: 'pf-table-cell-ellipses-auto', // class for table "ellipsis" cells + tableCellActionClass: 'pf-table-action-cell' + }; + + return TheraModule; +}); \ No newline at end of file diff --git a/js/app/ui/module/system_intel.js b/js/app/ui/module/system_intel.js index 4ccf53d4..a191cb87 100644 --- a/js/app/ui/module/system_intel.js +++ b/js/app/ui/module/system_intel.js @@ -42,18 +42,16 @@ define([ * @returns {*} */ getDataTableInstance(mapId, systemId, tableType){ - return Util.getDataTableInstance(this._config.intelTableId, mapId, systemId, tableType); + return BaseModule.Util.getDataTableInstance(this._config.intelTableId, mapId, systemId, tableType); } /** * get dataTable id - * @param mapId - * @param systemId - * @param tableType + * @param {...string} parts e.g. 'tableType', 'mapId', 'systemId' * @returns {string} */ - getTableId(tableType, mapId, systemId){ - return Util.getTableId(this._config.intelTableId, tableType, mapId, systemId); + getTableId(...parts){ + return BaseModule.Util.getTableId(this._config.intelTableId, ...parts); } /** @@ -63,7 +61,7 @@ define([ * @returns {string} */ getRowId(tableType, id){ - return Util.getTableRowId(this._config.intelTableRowIdPrefix, tableType, id); + return BaseModule.Util.getTableRowId(this._config.intelTableRowIdPrefix, tableType, id); } /** @@ -73,7 +71,7 @@ define([ * @returns {*} */ getRowById(tableApi, id){ - return tableApi.rows().ids().toArray().find(rowId => rowId === this.getRowId(Util.getObjVal(this.getTableMetaData(tableApi), 'type'), id)); + return tableApi.rows().ids().toArray().find(rowId => rowId === this.getRowId(BaseModule.Util.getObjVal(this.getTableMetaData(tableApi), 'type'), id)); } /** @@ -85,7 +83,6 @@ define([ return tableApi ? tableApi.init().pfMeta : null; } - /** * vormat roman numeric string to int * -> e.g. 'VII' => 7 @@ -331,7 +328,7 @@ define([ $(cell).find('i').tooltip(); }else{ let confirmationSettings = { - title: 'delete structure', + title: '---', template: Util.getConfirmationTemplate(null, { size: 'small', noTitle: true @@ -397,7 +394,6 @@ define([ // "Select" Datatables Plugin tableApiStructure.select(); - // "Buttons" Datatables Plugin tableApiStructure.on('user-select', function(e, tableApi, type, cell, originalEvent){ let rowData = tableApi.row(cell.index().row).data(); if(Util.getObjVal(rowData, 'rowGroupData.id') !== corporationId){ @@ -405,6 +401,7 @@ define([ } }); + // "Buttons" Datatables Plugin let buttons = new $.fn.dataTable.Buttons(tableApiStructure, { dom: { container: { @@ -421,6 +418,18 @@ define([ }, name: 'tableTools', buttons: [ + { + name: 'add', + className: 'fa-plus', + titleAttr: 'add', + attr: { + 'data-toggle': 'tooltip', + 'data-html': true + }, + action: function(e, tableApi, node, config){ + module.showStructureDialog(tableApi); + } + }, { name: 'selectToggle', className: ['fa-check-double'].join(' '), @@ -445,18 +454,6 @@ define([ } } }, - { - name: 'add', - className: 'fa-plus', - titleAttr: 'add', - attr: { - 'data-toggle': 'tooltip', - 'data-html': true - }, - action: function(e, tableApi, node, config){ - module.showStructureDialog(tableApi); - } - }, { name: 'dScan', className: 'fa-paste', @@ -1066,22 +1063,17 @@ define([ api.remove(); } - if( - notificationCounter.added > 0 || - notificationCounter.changed > 0 || - notificationCounter.deleted > 0 - ){ + if(Math.max(...Object.values(notificationCounter))){ context.tableApi.draw(); } - // show notification ------------------------------------------------------------------------------------------ - let notification = ''; - notification += notificationCounter.added > 0 ? notificationCounter.added + ' added
' : ''; - notification += notificationCounter.changed > 0 ? notificationCounter.changed + ' changed
' : ''; - notification += notificationCounter.deleted > 0 ? notificationCounter.deleted + ' deleted
' : ''; + // show notification -------------------------------------------------------------------------------------- + let notification = Object.keys(notificationCounter).reduce((acc, key) => { + return `${acc}${notificationCounter[key] ? `${notificationCounter[key]} ${key}
` : ''}`; + }, ''); if(hadData && notification.length){ - this.showNotify({title: 'Structures updated', text: notification, type: 'success'}); + this.showNotify({title: 'Structures updated', text: notification, type: 'success', textTrusted: true}); } } @@ -1291,7 +1283,7 @@ define([ */ update(systemData){ return super.update(systemData).then(systemData => new Promise(resolve => { - // update structure table data -------------------------------------------------------------------------------- + // update structure table data ------------------------------------------------------------------------ let structureContext = { tableApi: $(this.moduleElement.querySelector('.' + this._config.systemStructuresTableClass)).DataTable(), removeMissing: true @@ -1299,7 +1291,7 @@ define([ this.callbackUpdateTableRows(structureContext, Util.getObjVal(systemData, 'structures')); - // update station table data ---------------------------------------------------------------------------------- + // update station table data -------------------------------------------------------------------------- let stationContext = { tableApi: $(this.moduleElement.querySelector('.' + this._config.systemStationsTableClass)).DataTable(), removeMissing: false diff --git a/js/app/ui/module/system_killboard.js b/js/app/ui/module/system_killboard.js index 77ccfbd6..b7c53215 100644 --- a/js/app/ui/module/system_killboard.js +++ b/js/app/ui/module/system_killboard.js @@ -7,9 +7,8 @@ define([ 'app/init', 'app/util', 'module/base', - 'app/lib/cache', 'app/map/util' -], ($, Init, Util, BaseModule, Cache, MapUtil) => { +], ($, Init, Util, BaseModule, MapUtil) => { 'use strict'; let SystemKillboardModule = class SystemKillboardModule extends BaseModule { @@ -99,7 +98,7 @@ define([ getSystemKillsData(){ // check for cached responses "short term cache" let cacheKey = SystemKillboardModule.getCacheKey('systemId', this._systemData.systemId); - let result = SystemKillboardModule.zkbCache.get(cacheKey); + let result = SystemKillboardModule.getCache('zkb').get(cacheKey); if(result){ // could also be an empty array! return Promise.resolve(result); @@ -125,7 +124,7 @@ define([ return Promise.reject(result); }else{ // zkb result needs to be cached and becomes reduced on "load more" - SystemKillboardModule.zkbCache.set(cacheKey, result); + SystemKillboardModule.getCache('zkb').set(cacheKey, result); return result; } }).then(result => resolve(result)).catch(e => { @@ -186,15 +185,10 @@ define([ this._killboardEl = document.createElement('ul'); this._killboardEl.classList.add(this._config.systemKillboardListClass); - let controlEl = document.createElement('div'); - controlEl.classList.add(Util.config.dynamicAreaClass, this._config.controlAreaClass, this._config.moduleHeadlineIconClass); - controlEl.insertAdjacentHTML('beforeend', '  load more'); - controlEl.prepend(this.newIconElement(['fa-sync'])); - this._bodyEl.append( this._killboardLabelEl, this._killboardEl, - controlEl + this.newControlElement('load more', [this._config.moduleHeadlineIconClass]) ); // set a "local" copy of all indexes from cached response @@ -228,7 +222,7 @@ define([ showKills(chunkSize){ if(chunkSize){ let cacheKey = SystemKillboardModule.getCacheKey('systemId', this._systemData.systemId); - let result = SystemKillboardModule.zkbCache.get(cacheKey); + let result = SystemKillboardModule.getCache('zkb').get(cacheKey); if( this._killboardEl.children.length < this._config.maxCountKillHistoric && @@ -263,7 +257,7 @@ define([ */ loadKillmailData(requestData, context, callback){ let cacheKey = SystemKillboardModule.getCacheKey('killmail', requestData.killId); - let cacheItem = SystemKillboardModule.killmailCache.get(cacheKey); + let cacheItem = SystemKillboardModule.getCache('killmail').get(cacheKey); if(cacheItem){ // ... already cached -> show cache killmail this[callback](cacheItem.zkb, cacheItem.killmailData, cacheItem.systemData, context.chunkSize) @@ -275,7 +269,7 @@ define([ this.request(url).then(killmailData => { let systemData = SystemKillboardModule.getSystemDataForCache(this._systemData); - SystemKillboardModule.killmailCache.set(cacheKey, {zkb: context.zkb, killmailData: killmailData, systemData: systemData}); + SystemKillboardModule.getCache('killmail').set(cacheKey, {zkb: context.zkb, killmailData: killmailData, systemData: systemData}); this[callback](context.zkb, killmailData, systemData, context.chunkSize) .then(payload => this.showKills(payload.data.chunkSize)) @@ -445,18 +439,6 @@ define([ return url; } - /** - * @param text - * @param cls - * @returns {HTMLSpanElement} - */ - newLabelElement(text, cls = []){ - let labelEl = document.createElement('span'); - labelEl.classList.add('label', 'center-block', ...cls); - labelEl.textContent = text || ''; - return labelEl; - } - /** * Li headline (devider) * @param text @@ -668,7 +650,7 @@ define([ */ static getWsRelevantSystemsFromMaps(){ let cacheKey = SystemKillboardModule.getCacheKey('tempSystemsData', 1); - let systemsData = SystemKillboardModule.zkbCache.get(cacheKey); + let systemsData = SystemKillboardModule.getCache('zkb').get(cacheKey); if(!systemsData){ // KB cache ist for all maps (not just the current one) @@ -683,7 +665,7 @@ define([ ), {}) ), {}); - SystemKillboardModule.zkbCache.set(cacheKey, systemsData); + SystemKillboardModule.getCache('zkb').set(cacheKey, systemsData); } return systemsData; } @@ -705,7 +687,7 @@ define([ // system is on map! -> cache systemData = BaseModule.Util.getObjVal(systemsData, String(killmailData.solar_system_id)); let cacheKey = SystemKillboardModule.getCacheKey('killmail', killmailData.killmail_id); - SystemKillboardModule.killmailCache.set(cacheKey, { + SystemKillboardModule.getCache('killmail').set(cacheKey, { zkb: zkbData, killmailData: killmailData, systemData: systemData @@ -800,19 +782,17 @@ define([ SystemKillboardModule.label = 'Killboard'; // static module label (e.g. description) SystemKillboardModule.wsStatus = undefined; SystemKillboardModule.serverTime = BaseModule.Util.getServerTime(); // static Date() with current EVE server time - SystemKillboardModule.zkbCache = new Cache({ // cache for "zKillboard" responses -> short term cache - name: 'zkb', - ttl: 60 * 3, - maxSize: 50, - debug: false - }); - SystemKillboardModule.killmailCache = new Cache({ // cache for "Killmail" data -> long term cache - name: 'ccpKillmails', - ttl: 60 * 30, - maxSize: 500, - debug: false - }); SystemKillboardModule.wsSubscribtions = []; // static container for all KB module instances (from multiple maps) for WS responses + SystemKillboardModule.cacheConfig = { + zkb: { // cache for "zKillboard" responses -> short term cache + ttl: 60 * 3, + maxSize: 50 + }, + killmail: { // cache for "Killmail" data -> long term cache + ttl: 60 * 30, + maxSize: 500 + } + }; SystemKillboardModule.defaultConfig = { className: 'pf-system-killboard-module', // class for module @@ -829,7 +809,6 @@ define([ wsStatusWrapperClass: 'pf-system-killboard-wsStatusWrapper', // class for WebSocket "status" wrapper wsStatusClass: 'pf-system-killboard-wsStatus', // class for WebSocket "status" headline labelRecentKillsClass: 'pf-system-killboard-label-recent', // class for "recent kills" label - controlAreaClass: 'pf-module-control-area', // class for "control" areas minCountKills: 5, chunkCountKills: 5, diff --git a/js/app/ui/module/system_route.js b/js/app/ui/module/system_route.js index fd22f59f..49eaa6a5 100644 --- a/js/app/ui/module/system_route.js +++ b/js/app/ui/module/system_route.js @@ -12,12 +12,6 @@ define([ ], ($, Init, Util, bootbox, MapUtil, BaseModule) => { 'use strict'; - // cache for system routes - let cache = { - systemRoutes: {}, // jump information between solar systems - mapConnections: {} // connection data read from UI - }; - let SystemRouteModule = class SystemRouteModule extends BaseModule { constructor(config = {}) { super(Object.assign({}, new.target.defaultConfig, config)); @@ -275,7 +269,7 @@ define([ let tempTableElement = this; let confirmationSettings = { - title: 'delete route', + title: '---', template: Util.getConfirmationTemplate(null, { size: 'small', noTitle: true @@ -434,7 +428,7 @@ define([ if(systemFromData.name !== systemToData.name){ // check for cached rowData let cacheKey = this.getRouteDataCacheKey([mapId], systemFromData.name, systemToData.name); - let rowData = this.getCacheData('systemRoutes', cacheKey); + let rowData = SystemRouteModule.getCache('routes').get(cacheKey); if(rowData){ // route data is cached (client side) rowElements.push(this.addRow(rowData)); @@ -479,29 +473,7 @@ define([ * @returns {string} */ getRouteDataCacheKey(mapIds, sourceName, targetName){ - return [mapIds.join('_'), sourceName.toLowerCase(), targetName.toLowerCase()].join('###'); - } - - /** - * get cache data - * @param cacheType - * @param cacheKey - * @returns {null} - */ - getCacheData(cacheType, cacheKey){ - let cachedData = null; - let currentTimestamp = Util.getServerTime().getTime(); - - if( - cache[cacheType].hasOwnProperty(cacheKey) && - Math.round( - ( currentTimestamp - (new Date( cache[cacheType][cacheKey].updated * 1000).getTime())) / 1000 - ) <= this._config.routeCacheTTL - ){ - cachedData = cache[cacheType][cacheKey].data; - } - - return cachedData; + return `route_` + `${mapIds.join('_')}${sourceName}${targetName}`.hashCode(); } /** @@ -578,7 +550,7 @@ define([ if(rowData.route){ // update route cache let cacheKey = this.getRouteDataCacheKey(rowData.mapIds, routeData.systemFromData.name, routeData.systemToData.name); - this.setCacheData('systemRoutes', cacheKey, rowData); + SystemRouteModule.getCache('routes').set(cacheKey, rowData); this.addRow(rowData); } @@ -731,7 +703,7 @@ define([ let routeJumpElements = []; let avgSecTemp = 0; - let connectionsData = this.getConnectionsDataFromMaps(routeData.mapIds); + let connectionsData = BaseModule.getConnectionsDataFromMaps(routeData.mapIds); let prevRouteNodeData = null; // loop all systems on this route for(let i = 0; i < routeData.route.length; i++){ @@ -740,11 +712,11 @@ define([ // fake connection elements between systems ----------------------------------------------------------- if(prevRouteNodeData){ - let connectionData = this.findConnectionsData(connectionsData, prevRouteNodeData.system, systemName); - if(!connectionData.hasOwnProperty('connection')){ - connectionData = this.getFakeConnectionData(prevRouteNodeData, routeNodeData, isWormholeSystemName(systemName) ? 'wh' : 'stargate'); + let connectionData = BaseModule.findConnectionsData(connectionsData, prevRouteNodeData.system, systemName); + if(!connectionData){ + connectionData = BaseModule.getFakeConnectionData(prevRouteNodeData, routeNodeData, isWormholeSystemName(systemName) ? 'wh' : 'stargate'); } - let connectionElement = this.getFakeConnectionElement(connectionData); + let connectionElement = BaseModule.getFakeConnectionElement(connectionData); routeJumpElements.push(connectionElement); } @@ -809,153 +781,6 @@ define([ return tableRowData; } - /** - * get a connectionsData object that holds all connections for given mapIds (used as cache for route search) - * @param mapIds - * @returns {{}} - */ - getConnectionsDataFromMaps(mapIds){ - let connectionsData = {}; - for(let mapId of mapIds){ - let map = MapUtil.getMapInstance(mapId); - if(map){ - let cacheKey = 'map_' + mapId; - let mapConnectionsData = this.getCacheData('mapConnections', cacheKey); - - if(!mapConnectionsData){ - mapConnectionsData = {}; - let connections = map.getAllConnections(); - if(connections.length){ - let connectionsData = MapUtil.getDataByConnections(connections); - for(let connectionData of connectionsData){ - let connectionDataCacheKey = this.getConnectionDataCacheKey(connectionData.sourceName, connectionData.targetName); - - // skip double connections between same systems - if(!mapConnectionsData.hasOwnProperty(connectionDataCacheKey)){ - mapConnectionsData[connectionDataCacheKey] = { - map: { - id: mapId - }, - connection: { - id: connectionData.id, - type: connectionData.type, - scope: connectionData.scope - }, - source: { - id: connectionData.source, - name: connectionData.sourceName, - alias: connectionData.sourceAlias - }, - target: { - id: connectionData.target, - name: connectionData.targetName, - alias: connectionData.targetAlias - } - }; - } - } - } - - // update cache - this.setCacheData('mapConnections', cacheKey, mapConnectionsData); - } - - if(connectionsData !== null){ - connectionsData = Object.assign({}, mapConnectionsData, connectionsData); - } - } - } - - return connectionsData; - } - - /** - * get fake connection data (default connection type in case connection was not found on a map) - * @param sourceRouteNodeData - * @param targetRouteNodeData - * @param scope - * @returns {{connection: {id: number, type: string[], scope: string}, source: {id: number, name, alias}, target: {id: number, name, alias}}} - */ - getFakeConnectionData(sourceRouteNodeData, targetRouteNodeData, scope = 'stargate'){ - return { - connection: { - id: 0, - type: [MapUtil.getDefaultConnectionTypeByScope(scope)], - scope: scope - }, - source: { - id: 0, - name: sourceRouteNodeData.system, - alias: sourceRouteNodeData.system - }, - target: { - id: 0, - name: targetRouteNodeData.system, - alias: targetRouteNodeData.system - } - }; - } - - /** - * get fake connection Element - * @param connectionData - * @returns {string} - */ - getFakeConnectionElement(connectionData){ - let mapId = Util.getObjVal(connectionData, 'map.id') | 0; - let connectionId = Util.getObjVal(connectionData, 'connection.id') | 0; - let scope = Util.getObjVal(connectionData, 'connection.scope'); - let classes = MapUtil.getConnectionFakeClassesByTypes(connectionData.connection.type); - let disabled = !mapId || !connectionId; - - let connectionElement = '
'; - return connectionElement; - } - - /** - * search for a specific connection by "source"/"target"-name inside connectionsData cache - * @param connectionsData - * @param sourceName - * @param targetName - * @returns {{}} - */ - findConnectionsData(connectionsData, sourceName, targetName){ - let connectionDataCacheKey = this.getConnectionDataCacheKey(sourceName, targetName); - return connectionsData.hasOwnProperty(connectionDataCacheKey) ? - connectionsData[connectionDataCacheKey] : {}; - } - - /** - * get a unique cache key name for "source"/"target"-name - * @param sourceName - * @param targetName - * @returns {*} - */ - getConnectionDataCacheKey(sourceName, targetName){ - let key = false; - if(sourceName && targetName){ - // names can be "undefined" in case system is currently on drag/drop - key = [sourceName.toLowerCase(), targetName.toLowerCase()].sort().join('###'); - } - return key; - } - - /** - * set cache data - * @param cacheType - * @param cacheKey - * @param data - */ - setCacheData(cacheType, cacheKey, data){ - cache[cacheType][cacheKey] = { - data: data, - updated: Util.getServerTime().getTime() / 1000 - }; - } - /** * * @param mapId @@ -1351,6 +1176,12 @@ define([ SystemRouteModule.sortArea = 'b'; // default sortable area SystemRouteModule.position = 1; // default sort/order position within sortable area SystemRouteModule.label = 'Routes'; // static module label (e.g. description) + SystemRouteModule.cacheConfig = { + routes: { + ttl: 5, + maxSize: 100 + } + }; SystemRouteModule.defaultConfig = { className: 'pf-system-route-module', // class for module @@ -1373,8 +1204,6 @@ define([ systemSecurityClassPrefix: 'pf-system-security-', // prefix class for system security level (color) rallyClass: 'pf-rally', // class for "rally point" style - - routeCacheTTL: 5 // route cache timer (client) in seconds }; return SystemRouteModule; diff --git a/js/app/ui/module/system_signature.js b/js/app/ui/module/system_signature.js index 7603c4f5..0253c3d6 100644 --- a/js/app/ui/module/system_signature.js +++ b/js/app/ui/module/system_signature.js @@ -11,9 +11,8 @@ define([ 'app/counter', 'app/map/map', 'app/map/util', - 'app/lib/cache', 'app/ui/form_element' -], ($, Init, Util, BaseModule, bootbox, Counter, Map, MapUtil, Cache, FormElement) => { +], ($, Init, Util, BaseModule, bootbox, Counter, Map, MapUtil, FormElement) => { 'use strict'; let SystemSignatureModule = class SystemSignatureModule extends BaseModule { @@ -32,13 +31,11 @@ define([ /** * get dataTable id - * @param mapId - * @param systemId - * @param tableType + * @param {...string} parts e.g. 'tableType', 'mapId', 'systemId' * @returns {string} */ - getTableId(tableType, mapId, systemId){ - return Util.getTableId(this._config.sigTableId, tableType, mapId, systemId); + getTableId(...parts){ + return Util.getTableId(this._config.sigTableId, ...parts); } /** @@ -1006,8 +1003,14 @@ define([ if(rowData.id){ // delete signature ----------------------------------------------------------------------- let confirmationSettings = { - title: 'Delete signature', - template: Util.getConfirmationTemplate(module.getConfirmationContent(), { + title: '---', + template: Util.getConfirmationTemplate(Util.getConfirmationContent([{ + name: 'deleteConnection', + value: '1', + label: 'delete connection', + class: 'pf-editable-warn', + checked: true + }]), { size: 'small', noTitle: true }), @@ -1882,47 +1885,6 @@ define([ } } - /** - * get HTML for "delete connection" confirmation popover - * @returns {string} - */ - getConfirmationContent(){ - let checkOptions = [{ - name: 'deleteConnection', - value: '1', - label: 'delete connection', - class: 'pf-editable-warn', - checked: true - }]; - - let getChecklist = checkOptions => { - let html = ''; - html += '
'; - html += '
'; - html += '
'; - - for(let option of checkOptions){ - html += '
'; - } - - html += '
'; - html += '
'; - html += '
'; - html += ''; - - return html; - }; - - let html = ''; - html += getChecklist(checkOptions); - - return html; - } - /** * open xEditable input field in "new Signature" table */ @@ -2723,18 +2685,12 @@ define([ return acc; }, Object.assign({}, SystemSignatureModule.emptySignatureReaderCounterData)); - let notification = ''; - if(notificationCounter.added > 0){ - notification += notificationCounter.added + ' added
'; - } - if(notificationCounter.changed > 0){ - notification += notificationCounter.changed + ' updated
'; - } - if(notificationCounter.deleted > 0){ - notification += notificationCounter.deleted + ' deleted
'; - } + let notification = Object.keys(notificationCounter).reduce((acc, key) => { + return `${acc}${notificationCounter[key] ? `${notificationCounter[key]} ${key}
` : ''}`; + }, ''); + if(notification.length){ - Util.showNotify({title: 'Signatures updated', text: notification, type: 'success'}); + Util.showNotify({title: 'Signatures updated', text: notification, type: 'success', textTrusted: true}); } } @@ -2917,7 +2873,7 @@ define([ let cacheKey = [systemTypeId, ...areaIds, groupId].join('_'); - let newSelectOptions = SystemSignatureModule.sigTypeOptionsCache.get(cacheKey); + let newSelectOptions = SystemSignatureModule.getCache('sigTypeOptions').get(cacheKey); // check for cached signature names if(Array.isArray(newSelectOptions)){ @@ -3014,7 +2970,7 @@ define([ } // update cache (clone array) -> further manipulation to this array, should not be cached - SystemSignatureModule.sigTypeOptionsCache.set(cacheKey, newSelectOptions.slice(0)); + SystemSignatureModule.getCache('sigTypeOptions').set(cacheKey, newSelectOptions.slice(0)); } // static wormholes (DO NOT CACHE) (not all C2 WHs have the same statics..) @@ -3120,13 +3076,12 @@ define([ SystemSignatureModule.position = 4; // default sort/order position within sortable area SystemSignatureModule.label = 'Signatures'; // static module label (e.g. description) SystemSignatureModule.fullDataUpdate = true; // static module requires additional data (e.g. system description,...) - - SystemSignatureModule.sigTypeOptionsCache = new Cache({ // cache signature names - name: 'sigTypeOptions', - ttl: 60 * 5, - maxSize: 100, - debug: false - }); + SystemSignatureModule.cacheConfig = { + sigTypeOptions: { // cache signature names + ttl: 60 * 5, + maxSize: 100 + } + }; SystemSignatureModule.validSignatureNames = [ // allowed signature type/names 'Cosmic Anomaly', diff --git a/js/app/util.js b/js/app/util.js index ee5fc1a0..442db7e0 100644 --- a/js/app/util.js +++ b/js/app/util.js @@ -6,6 +6,7 @@ define([ 'app/init', 'app/lib/prototypes', 'app/lib/console', + 'app/lib/cache', 'app/lib/localStore', 'conf/system_effect', 'conf/signature_type', @@ -20,7 +21,7 @@ define([ 'bootstrapConfirmation', 'bootstrapToggle', 'select2' -], ($, Init, Proto, Con, LocalStoreManager, SystemEffect, SignatureType, bootbox) => { +], ($, Init, Proto, Con, Cache, LocalStoreManager, SystemEffect, SignatureType, bootbox) => { 'use strict'; @@ -102,8 +103,17 @@ define([ localStoreNames: ['default', 'character', 'map', 'module'] // Allowed name identifiers for DB names }; - let stopTimerCache = {}; // cache for stopwatch timer + let currentSystemDataCache = new Cache({ + name: 'currentSystemData', + ttl: -1, + maxSize: 20 + }); + // browser tab blink + let initialPageTitle = document.title; // initial page title (cached) + let blinkTimer; // global blink timeout cache + + let stopTimerCache = {}; // cache for stopwatch timer let animationTimerCache = {}; // cache for table row animation timeout /* @@ -402,22 +412,57 @@ define([ $.fn.initMapUpdateCounter = function(){ let counterChart = $(this); - counterChart.easyPieChart({ - barColor: function(percent){ - let color = '#568a89'; - if(percent <= 30){ - color = '#d9534f'; - }else if(percent <= 50){ - color = '#f0ad4e'; - } + let gradient = [ + [0, [217,83,79]], + [10, [217,83,79]], + [50, [240, 173, 78]], + [75, [79,158,79]], + [100, [86, 138, 137]] + ]; - return color; - }, + let gradientWidth = 500; + + let getColor = percent => { + percent = percent || 1; + let colorRangeEnd = gradient.findIndex(value => percent <= value[0]); + let colorRange = [colorRangeEnd - 1, colorRangeEnd]; + + //Get the two closest colors + let colorFirst = gradient[colorRange[0]][1]; + let colorSecond = gradient[colorRange[1]][1]; + + //Calculate ratio between the two closest colors + let colorFirstX = gradientWidth * (gradient[colorRange[0]][0] / 100); + let colorSecondX = gradientWidth * (gradient[colorRange[1]][0] / 100) - colorFirstX; + let weightX = gradientWidth * (percent / 100) - colorFirstX; + let weight = weightX / colorSecondX; + + //Get the color with pickHex(thx, less.js's mix function!) + let result = pickHex(colorSecond, colorFirst, weight); + return `rgb(${result.join()})`; + }; + + let pickHex = (color1, color2, weight) => { + let w1 = weight; + let w2 = 1 - w1; + return [Math.round(color1[0] * w1 + color2[0] * w2), + Math.round(color1[1] * w1 + color2[1] * w2), + Math.round(color1[2] * w1 + color2[2] * w2)]; + }; + + counterChart.easyPieChart({ + barColor: percent => getColor(Number(Number(percent).toFixed(1))), trackColor: '#2b2b2b', size: 30, scaleColor: false, lineWidth: 2, - animate: 1000 + animate: { + duration: 550, + enabled: true + }, + easing: function (x, t, b, c, d) { // easeInOutSine - jQuery Easing + return -c/2 * (Math.cos(Math.PI*t/d) - 1) + b; + } }); }; @@ -1172,6 +1217,39 @@ define([ return html; }; + /** + * get HTML for "delete connection" confirmation popover + * @returns {string} + */ + let getConfirmationContent = checkOptions => { + let getChecklist = checkOptions => { + let html = ''; + html += '
'; + html += '
'; + html += '
'; + + for(let option of checkOptions){ + html += '
'; + } + + html += '
'; + html += '
'; + html += '
'; + html += ''; + + return html; + }; + + let html = ''; + html += getChecklist(checkOptions); + + return html; + }; + /** * convert XEditable Select
").attr("colspan",this._colspan()).append(b))).addClass(this.c.className).addClass(g).addClass("dtrg-level-"+c)}});h.defaults={className:"dtrg-group",dataSrc:0,emptyDataGroup:"No group",enable:!0,endClassName:"dtrg-end",endRender:null,startClassName:"dtrg-start",startRender:function(b,a){return a}};h.version="1.1.1";a.fn.dataTable.RowGroup=h;a.fn.DataTable.RowGroup= + h;f.Api.register("rowGroup()",function(){return this});f.Api.register("rowGroup().disable()",function(){return this.iterator("table",function(a){a.rowGroup&&a.rowGroup.enable(!1)})});f.Api.register("rowGroup().enable()",function(a){return this.iterator("table",function(b){b.rowGroup&&b.rowGroup.enable(a===e?!0:a)})});f.Api.register("rowGroup().dataSrc()",function(a){return a===e?this.context[0].rowGroup.dataSrc():this.iterator("table",function(b){b.rowGroup&&b.rowGroup.dataSrc(a)})});a(c).on("preInit.dt.dtrg", + function(b,c,d){"dt"===b.namespace&&(b=c.oInit.rowGroup,d=f.defaults.rowGroup,b||d)&&(d=a.extend({},d,b),!1!==b&&new h(c,d))});return h}); diff --git a/js/lib/pnotify/PNotify.js b/js/lib/pnotify/PNotify.js index c5028cea..d5db1ca1 100644 --- a/js/lib/pnotify/PNotify.js +++ b/js/lib/pnotify/PNotify.js @@ -2036,5 +2036,4 @@ var _typeof = typeof Symbol === "function" && typeof Symbol.iterator === "symbol function noop() {} return PNotify_1; -}); -//# sourceMappingURL=PNotify.js.map \ No newline at end of file +}); \ No newline at end of file diff --git a/js/lib/pnotify/PNotifyButtons.js b/js/lib/pnotify/PNotifyButtons.js index 89935eaa..dae828a1 100644 --- a/js/lib/pnotify/PNotifyButtons.js +++ b/js/lib/pnotify/PNotifyButtons.js @@ -557,5 +557,4 @@ var _typeof = typeof Symbol === "function" && typeof Symbol.iterator === "symbol function noop() {} return PNotifyButtons; -}); -//# sourceMappingURL=PNotifyButtons.js.map \ No newline at end of file +}); \ No newline at end of file diff --git a/js/lib/pnotify/PNotifyCallbacks.js b/js/lib/pnotify/PNotifyCallbacks.js index c00e0412..38651c88 100644 --- a/js/lib/pnotify/PNotifyCallbacks.js +++ b/js/lib/pnotify/PNotifyCallbacks.js @@ -253,5 +253,4 @@ var _typeof = typeof Symbol === "function" && typeof Symbol.iterator === "symbol } return PNotifyCallbacks; -}); -//# sourceMappingURL=PNotifyCallbacks.js.map \ No newline at end of file +}); \ No newline at end of file diff --git a/js/lib/pnotify/PNotifyDesktop.js b/js/lib/pnotify/PNotifyDesktop.js index bd3c544c..baf91d65 100644 --- a/js/lib/pnotify/PNotifyDesktop.js +++ b/js/lib/pnotify/PNotifyDesktop.js @@ -460,5 +460,4 @@ var _typeof = typeof Symbol === "function" && typeof Symbol.iterator === "symbol } return PNotifyDesktop; -}); -//# sourceMappingURL=PNotifyDesktop.js.map \ No newline at end of file +}); \ No newline at end of file diff --git a/public/css/v2.0.0/pathfinder.css b/public/css/v2.0.0/pathfinder.css index 58f3a111..41d4aa7d 100644 --- a/public/css/v2.0.0/pathfinder.css +++ b/public/css/v2.0.0/pathfinder.css @@ -27,7 +27,7 @@ */@font-face{font-family:'Font Awesome 5 Free';font-style:normal;font-weight:900;font-display:auto;src:url("../../fonts/fa-solid-900.eot");src:url("../../fonts/fa-solid-900.eot?#iefix") format("embedded-opentype"),url("../../fonts/fa-solid-900.woff2") format("woff2"),url("../../fonts/fa-solid-900.woff") format("woff"),url("../../fonts/fa-solid-900.ttf") format("truetype"),url("../../fonts/fa-solid-900.svg#fontawesome") format("svg")}.fa,.fas,.pf-landing .pf-landing-list li>i{font-family:'Font Awesome 5 Free';font-weight:900}/*! * Font Awesome Free 5.9.0 by @fontawesome - https://fontawesome.com * License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) - */@font-face{font-family:'Font Awesome 5 Brands';font-style:normal;font-weight:normal;font-display:auto;src:url("../../fonts/fa-brands-400.eot");src:url("../../fonts/fa-brands-400.eot?#iefix") format("embedded-opentype"),url("../../fonts/fa-brands-400.woff2") format("woff2"),url("../../fonts/fa-brands-400.woff") format("woff"),url("../../fonts/fa-brands-400.ttf") format("truetype"),url("../../fonts/fa-brands-400.svg#fontawesome") format("svg")}.fab{font-family:'Font Awesome 5 Brands'}.mCustomScrollbar{-ms-touch-action:pinch-zoom;touch-action:pinch-zoom}.mCustomScrollbar.mCS_no_scrollbar,.mCustomScrollbar.mCS_touch_action{-ms-touch-action:auto;touch-action:auto}.mCustomScrollBox{position:relative;overflow:hidden;height:100%;max-width:100%;outline:none;direction:ltr}.mCSB_container{overflow:hidden;width:auto;height:auto}.mCSB_inside>.mCSB_container{margin-right:20px}.mCSB_container.mCS_no_scrollbar_y.mCS_y_hidden{margin-right:0}.mCS-dir-rtl>.mCSB_inside>.mCSB_container{margin-right:0;margin-left:20px}.mCS-dir-rtl>.mCSB_inside>.mCSB_container.mCS_no_scrollbar_y.mCS_y_hidden{margin-left:0}.mCSB_scrollTools{position:absolute;width:16px;height:auto;left:auto;top:0;right:0;bottom:0}.mCSB_outside+.mCSB_scrollTools{right:-26px}.mCS-dir-rtl>.mCSB_inside>.mCSB_scrollTools,.mCS-dir-rtl>.mCSB_outside+.mCSB_scrollTools{right:auto;left:0}.mCS-dir-rtl>.mCSB_outside+.mCSB_scrollTools{left:-26px}.mCSB_scrollTools .mCSB_draggerContainer{position:absolute;top:0;left:0;bottom:0;right:0;height:auto}.mCSB_scrollTools a+.mCSB_draggerContainer{margin:20px 0}.mCSB_scrollTools .mCSB_draggerRail{width:2px;height:100%;margin:0 auto;-webkit-border-radius:16px;-moz-border-radius:16px;border-radius:16px}.mCSB_scrollTools .mCSB_dragger{cursor:pointer;width:100%;height:30px;z-index:1}.mCSB_scrollTools .mCSB_dragger .mCSB_dragger_bar{position:relative;width:4px;height:100%;margin:0 auto;-webkit-border-radius:16px;-moz-border-radius:16px;border-radius:16px;text-align:center}.mCSB_scrollTools_vertical.mCSB_scrollTools_onDrag_expand .mCSB_dragger.mCSB_dragger_onDrag_expanded .mCSB_dragger_bar,.mCSB_scrollTools_vertical.mCSB_scrollTools_onDrag_expand .mCSB_draggerContainer:hover .mCSB_dragger .mCSB_dragger_bar{width:12px}.mCSB_scrollTools_vertical.mCSB_scrollTools_onDrag_expand .mCSB_dragger.mCSB_dragger_onDrag_expanded+.mCSB_draggerRail,.mCSB_scrollTools_vertical.mCSB_scrollTools_onDrag_expand .mCSB_draggerContainer:hover .mCSB_draggerRail{width:8px}.mCSB_scrollTools .mCSB_buttonUp,.mCSB_scrollTools .mCSB_buttonDown{display:block;position:absolute;height:20px;width:100%;overflow:hidden;margin:0 auto;cursor:pointer}.mCSB_scrollTools .mCSB_buttonDown{bottom:0}.mCSB_horizontal.mCSB_inside>.mCSB_container{margin-right:0;margin-bottom:20px}.mCSB_horizontal.mCSB_outside>.mCSB_container{min-height:100%}.mCSB_horizontal>.mCSB_container.mCS_no_scrollbar_x.mCS_x_hidden{margin-bottom:0}.mCSB_scrollTools.mCSB_scrollTools_horizontal{width:auto;height:16px;top:auto;right:0;bottom:0;left:0}.mCustomScrollBox+.mCSB_scrollTools.mCSB_scrollTools_horizontal,.mCustomScrollBox+.mCSB_scrollTools+.mCSB_scrollTools.mCSB_scrollTools_horizontal{bottom:-26px}.mCSB_scrollTools.mCSB_scrollTools_horizontal a+.mCSB_draggerContainer{margin:0 20px}.mCSB_scrollTools.mCSB_scrollTools_horizontal .mCSB_draggerRail{width:100%;height:2px;margin:7px 0}.mCSB_scrollTools.mCSB_scrollTools_horizontal .mCSB_dragger{width:30px;height:100%;left:0}.mCSB_scrollTools.mCSB_scrollTools_horizontal .mCSB_dragger .mCSB_dragger_bar{width:100%;height:4px;margin:6px auto}.mCSB_scrollTools_horizontal.mCSB_scrollTools_onDrag_expand .mCSB_dragger.mCSB_dragger_onDrag_expanded .mCSB_dragger_bar,.mCSB_scrollTools_horizontal.mCSB_scrollTools_onDrag_expand .mCSB_draggerContainer:hover .mCSB_dragger .mCSB_dragger_bar{height:12px;margin:2px auto}.mCSB_scrollTools_horizontal.mCSB_scrollTools_onDrag_expand .mCSB_dragger.mCSB_dragger_onDrag_expanded+.mCSB_draggerRail,.mCSB_scrollTools_horizontal.mCSB_scrollTools_onDrag_expand .mCSB_draggerContainer:hover .mCSB_draggerRail{height:8px;margin:4px 0}.mCSB_scrollTools.mCSB_scrollTools_horizontal .mCSB_buttonLeft,.mCSB_scrollTools.mCSB_scrollTools_horizontal .mCSB_buttonRight{display:block;position:absolute;width:20px;height:100%;overflow:hidden;margin:0 auto;cursor:pointer}.mCSB_scrollTools.mCSB_scrollTools_horizontal .mCSB_buttonLeft{left:0}.mCSB_scrollTools.mCSB_scrollTools_horizontal .mCSB_buttonRight{right:0}.mCSB_container_wrapper{position:absolute;height:auto;width:auto;overflow:hidden;top:0;left:0;right:0;bottom:0;margin-right:20px;margin-bottom:20px}.mCSB_container_wrapper>.mCSB_container{padding-right:20px;padding-bottom:20px;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}.mCSB_vertical_horizontal>.mCSB_scrollTools.mCSB_scrollTools_vertical{bottom:20px}.mCSB_vertical_horizontal>.mCSB_scrollTools.mCSB_scrollTools_horizontal{right:20px}.mCSB_container_wrapper.mCS_no_scrollbar_x.mCS_x_hidden+.mCSB_scrollTools.mCSB_scrollTools_vertical{bottom:0}.mCSB_container_wrapper.mCS_no_scrollbar_y.mCS_y_hidden+.mCSB_scrollTools ~ .mCSB_scrollTools.mCSB_scrollTools_horizontal,.mCS-dir-rtl>.mCustomScrollBox.mCSB_vertical_horizontal.mCSB_inside>.mCSB_scrollTools.mCSB_scrollTools_horizontal{right:0}.mCS-dir-rtl>.mCustomScrollBox.mCSB_vertical_horizontal.mCSB_inside>.mCSB_scrollTools.mCSB_scrollTools_horizontal{left:20px}.mCS-dir-rtl>.mCustomScrollBox.mCSB_vertical_horizontal.mCSB_inside>.mCSB_container_wrapper.mCS_no_scrollbar_y.mCS_y_hidden+.mCSB_scrollTools ~ .mCSB_scrollTools.mCSB_scrollTools_horizontal{left:0}.mCS-dir-rtl>.mCSB_inside>.mCSB_container_wrapper{margin-right:0;margin-left:20px}.mCSB_container_wrapper.mCS_no_scrollbar_y.mCS_y_hidden>.mCSB_container{padding-right:0}.mCSB_container_wrapper.mCS_no_scrollbar_x.mCS_x_hidden>.mCSB_container{padding-bottom:0}.mCustomScrollBox.mCSB_vertical_horizontal.mCSB_inside>.mCSB_container_wrapper.mCS_no_scrollbar_y.mCS_y_hidden{margin-right:0;margin-left:0}.mCustomScrollBox.mCSB_vertical_horizontal.mCSB_inside>.mCSB_container_wrapper.mCS_no_scrollbar_x.mCS_x_hidden{margin-bottom:0}.mCSB_scrollTools,.mCSB_scrollTools .mCSB_dragger .mCSB_dragger_bar,.mCSB_scrollTools .mCSB_buttonUp,.mCSB_scrollTools .mCSB_buttonDown,.mCSB_scrollTools .mCSB_buttonLeft,.mCSB_scrollTools .mCSB_buttonRight{-webkit-transition:opacity .2s ease-in-out, background-color .2s ease-in-out;-moz-transition:opacity .2s ease-in-out, background-color .2s ease-in-out;-o-transition:opacity .2s ease-in-out, background-color .2s ease-in-out;transition:opacity .2s ease-in-out, background-color .2s ease-in-out}.mCSB_scrollTools_vertical.mCSB_scrollTools_onDrag_expand .mCSB_dragger_bar,.mCSB_scrollTools_vertical.mCSB_scrollTools_onDrag_expand .mCSB_draggerRail,.mCSB_scrollTools_horizontal.mCSB_scrollTools_onDrag_expand .mCSB_dragger_bar,.mCSB_scrollTools_horizontal.mCSB_scrollTools_onDrag_expand .mCSB_draggerRail{-webkit-transition:width .2s ease-out .2s, height .2s ease-out .2s, margin-left .2s ease-out .2s, margin-right .2s ease-out .2s, margin-top .2s ease-out .2s, margin-bottom .2s ease-out .2s, opacity .2s ease-in-out, background-color .2s ease-in-out;-moz-transition:width .2s ease-out .2s, height .2s ease-out .2s, margin-left .2s ease-out .2s, margin-right .2s ease-out .2s, margin-top .2s ease-out .2s, margin-bottom .2s ease-out .2s, opacity .2s ease-in-out, background-color .2s ease-in-out;-o-transition:width .2s ease-out .2s, height .2s ease-out .2s, margin-left .2s ease-out .2s, margin-right .2s ease-out .2s, margin-top .2s ease-out .2s, margin-bottom .2s ease-out .2s, opacity .2s ease-in-out, background-color .2s ease-in-out;transition:width .2s ease-out .2s, height .2s ease-out .2s, margin-left .2s ease-out .2s, margin-right .2s ease-out .2s, margin-top .2s ease-out .2s, margin-bottom .2s ease-out .2s, opacity .2s ease-in-out, background-color .2s ease-in-out}.mCSB_scrollTools{opacity:0.75;filter:"alpha(opacity=75)";-ms-filter:"alpha(opacity=75)"}.mCS-autoHide>.mCustomScrollBox>.mCSB_scrollTools,.mCS-autoHide>.mCustomScrollBox ~ .mCSB_scrollTools{opacity:0;filter:"alpha(opacity=0)";-ms-filter:"alpha(opacity=0)"}.mCustomScrollbar>.mCustomScrollBox>.mCSB_scrollTools.mCSB_scrollTools_onDrag,.mCustomScrollbar>.mCustomScrollBox ~ .mCSB_scrollTools.mCSB_scrollTools_onDrag,.mCustomScrollBox:hover>.mCSB_scrollTools,.mCustomScrollBox:hover ~ .mCSB_scrollTools,.mCS-autoHide:hover>.mCustomScrollBox>.mCSB_scrollTools,.mCS-autoHide:hover>.mCustomScrollBox ~ .mCSB_scrollTools{opacity:1;filter:"alpha(opacity=100)";-ms-filter:"alpha(opacity=100)"}.mCSB_scrollTools .mCSB_draggerRail{background-color:#000;background-color:rgba(0,0,0,0.4);filter:"alpha(opacity=40)";-ms-filter:"alpha(opacity=40)"}.mCSB_scrollTools .mCSB_dragger .mCSB_dragger_bar{background-color:#adadad;background-color:rgba(173,173,173,0.75);filter:"alpha(opacity=75)";-ms-filter:"alpha(opacity=75)"}.mCSB_scrollTools .mCSB_dragger:hover .mCSB_dragger_bar{background-color:#e28a0d;background-color:rgba(226,138,13,0.85);filter:"alpha(opacity=85)";-ms-filter:"alpha(opacity=85)"}.mCSB_scrollTools .mCSB_dragger:active .mCSB_dragger_bar,.mCSB_scrollTools .mCSB_dragger.mCSB_dragger_onDrag .mCSB_dragger_bar{background-color:#e28a0d;background-color:rgba(226,138,13,0.9);filter:"alpha(opacity=90)";-ms-filter:"alpha(opacity=90)"}.mCSB_scrollTools .mCSB_buttonUp,.mCSB_scrollTools .mCSB_buttonDown,.mCSB_scrollTools .mCSB_buttonLeft,.mCSB_scrollTools .mCSB_buttonRight{background:url('data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAKAAAACQCAYAAACPtWCAAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAA2hpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuNS1jMDE0IDc5LjE1MTQ4MSwgMjAxMy8wMy8xMy0xMjowOToxNSAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wTU09Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9tbS8iIHhtbG5zOnN0UmVmPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvc1R5cGUvUmVzb3VyY2VSZWYjIiB4bWxuczp4bXA9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC8iIHhtcE1NOk9yaWdpbmFsRG9jdW1lbnRJRD0ieG1wLmRpZDoxMURDMzE5NzIzQkNFMTExOTY0QkYwNzFDNzkwNTlDNCIgeG1wTU06RG9jdW1lbnRJRD0ieG1wLmRpZDpDOTMwRUZENEMxMUUxMUUzOUYxQkJGN0E1MDMzNTg1MCIgeG1wTU06SW5zdGFuY2VJRD0ieG1wLmlpZDpDOTMwRUZEM0MxMUUxMUUzOUYxQkJGN0E1MDMzNTg1MCIgeG1wOkNyZWF0b3JUb29sPSJBZG9iZSBQaG90b3Nob3AgQ1M1IFdpbmRvd3MiPiA8eG1wTU06RGVyaXZlZEZyb20gc3RSZWY6aW5zdGFuY2VJRD0ieG1wLmlpZDo1MGJlMjMyZC1hNzgzLTI1NGQtOTI4Yy02NDI0YmQxNTg0YWEiIHN0UmVmOmRvY3VtZW50SUQ9InhtcC5kaWQ6MTFEQzMxOTcyM0JDRTExMTk2NEJGMDcxQzc5MDU5QzQiLz4gPC9yZGY6RGVzY3Jp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');background-repeat:no-repeat;opacity:0.4;filter:"alpha(opacity=40)";-ms-filter:"alpha(opacity=40)"}.mCSB_scrollTools .mCSB_buttonUp{background-position:0 0}.mCSB_scrollTools .mCSB_buttonDown{background-position:0 -20px}.mCSB_scrollTools .mCSB_buttonLeft{background-position:0 -40px}.mCSB_scrollTools .mCSB_buttonRight{background-position:0 -56px}.mCSB_scrollTools .mCSB_buttonUp:hover,.mCSB_scrollTools .mCSB_buttonDown:hover,.mCSB_scrollTools .mCSB_buttonLeft:hover,.mCSB_scrollTools .mCSB_buttonRight:hover{opacity:0.75;filter:"alpha(opacity=75)";-ms-filter:"alpha(opacity=75)"}.mCSB_scrollTools .mCSB_buttonUp:active,.mCSB_scrollTools .mCSB_buttonDown:active,.mCSB_scrollTools .mCSB_buttonLeft:active,.mCSB_scrollTools .mCSB_buttonRight:active{opacity:0.9;filter:"alpha(opacity=90)";-ms-filter:"alpha(opacity=90)"}.mCS-light-3.mCSB_scrollTools .mCSB_draggerRail,.mCS-dark-3.mCSB_scrollTools .mCSB_draggerRail{width:6px;background-color:#000;background-color:rgba(0,0,0,0.2)}.mCS-light-3.mCSB_scrollTools .mCSB_dragger .mCSB_dragger_bar,.mCS-dark-3.mCSB_scrollTools .mCSB_dragger .mCSB_dragger_bar{width:6px}.mCS-light-3.mCSB_scrollTools_horizontal .mCSB_dragger .mCSB_dragger_bar,.mCS-dark-3.mCSB_scrollTools_horizontal .mCSB_dragger .mCSB_dragger_bar,.mCS-light-3.mCSB_scrollTools_horizontal .mCSB_draggerRail,.mCS-dark-3.mCSB_scrollTools_horizontal .mCSB_draggerRail{width:100%;height:6px;margin:5px 0}.mCS-light-3.mCSB_scrollTools_vertical.mCSB_scrollTools_onDrag_expand .mCSB_dragger.mCSB_dragger_onDrag_expanded+.mCSB_draggerRail,.mCS-light-3.mCSB_scrollTools_vertical.mCSB_scrollTools_onDrag_expand .mCSB_draggerContainer:hover .mCSB_draggerRail,.mCS-dark-3.mCSB_scrollTools_vertical.mCSB_scrollTools_onDrag_expand .mCSB_dragger.mCSB_dragger_onDrag_expanded+.mCSB_draggerRail,.mCS-dark-3.mCSB_scrollTools_vertical.mCSB_scrollTools_onDrag_expand .mCSB_draggerContainer:hover .mCSB_draggerRail{width:12px}.mCS-light-3.mCSB_scrollTools_horizontal.mCSB_scrollTools_onDrag_expand .mCSB_dragger.mCSB_dragger_onDrag_expanded+.mCSB_draggerRail,.mCS-light-3.mCSB_scrollTools_horizontal.mCSB_scrollTools_onDrag_expand .mCSB_draggerContainer:hover .mCSB_draggerRail,.mCS-dark-3.mCSB_scrollTools_horizontal.mCSB_scrollTools_onDrag_expand .mCSB_dragger.mCSB_dragger_onDrag_expanded+.mCSB_draggerRail,.mCS-dark-3.mCSB_scrollTools_horizontal.mCSB_scrollTools_onDrag_expand .mCSB_draggerContainer:hover .mCSB_draggerRail{height:12px;margin:2px 0}.mCS-light-3.mCSB_scrollTools .mCSB_buttonUp{background-position:-32px -72px}.mCS-light-3.mCSB_scrollTools .mCSB_buttonDown{background-position:-32px -92px}.mCS-light-3.mCSB_scrollTools .mCSB_buttonLeft{background-position:-40px -112px}.mCS-light-3.mCSB_scrollTools .mCSB_buttonRight{background-position:-40px -128px}table.dataTable{width:100%;margin:0 auto;clear:both;border-collapse:separate;border-spacing:0}table.dataTable thead th,table.dataTable tfoot th{font-weight:bold}table.dataTable thead th,table.dataTable thead td{padding:10px 18px;border-bottom:1px solid #3c3f41}table.dataTable thead th:active,table.dataTable thead td:active{outline:none}table.dataTable tfoot th,table.dataTable tfoot td{padding:10px 18px 6px 18px;border-top:1px solid #3c3f41}table.dataTable thead .sorting,table.dataTable thead .sorting_asc,table.dataTable thead .sorting_desc,table.dataTable thead .sorting_asc_disabled,table.dataTable thead .sorting_desc_disabled{cursor:pointer;*cursor:hand;background-repeat:no-repeat;background-position:center right}table.dataTable thead .sorting{background-image:url("../img/data-tables/sort_both.png")}table.dataTable thead .sorting_asc{background-image:url("../img/data-tables/sort_asc.png")}table.dataTable thead .sorting_desc{background-image:url("../img/data-tables/sort_desc.png")}table.dataTable thead .sorting_asc_disabled{background-image:url("../img/data-tables/sort_asc_disabled.png")}table.dataTable thead .sorting_desc_disabled{background-image:url("../img/data-tables/sort_desc_disabled.png")}table.dataTable tbody tr{background-color:#212121}table.dataTable tbody tr.selected{background-color:#1b2326}table.dataTable tbody th,table.dataTable tbody td{padding:8px 10px}table.dataTable.row-border tbody th,table.dataTable.row-border tbody td,table.dataTable.display tbody th,table.dataTable.display tbody td{border-top:1px solid #3c3f41}table.dataTable.row-border tbody tr:first-child th,table.dataTable.row-border tbody tr:first-child td,table.dataTable.display tbody tr:first-child th,table.dataTable.display tbody tr:first-child td{border-top:none}table.dataTable.cell-border tbody th,table.dataTable.cell-border tbody td{border-top:1px solid #ddd;border-right:1px solid #ddd}table.dataTable.cell-border tbody tr th:first-child,table.dataTable.cell-border tbody tr td:first-child{border-left:1px solid #ddd}table.dataTable.cell-border tbody tr:first-child th,table.dataTable.cell-border tbody tr:first-child td{border-top:none}table.dataTable.stripe tbody tr.odd,table.dataTable.display tbody tr.odd{background-color:#2b2b2b}table.dataTable.stripe tbody tr.odd.selected,table.dataTable.display tbody tr.odd.selected{background-color:#1b2326}table.dataTable.hover tbody tr:hover,table.dataTable.display tbody tr:hover{outline:1px solid #c2760c;outline-offset:-1px}table.dataTable.hover tbody tr:hover td,table.dataTable.display tbody tr:hover td{background-color:rgba(194,118,12,0.08)}table.dataTable.hover tbody tr:hover.selected,table.dataTable.display tbody tr:hover.selected{background-color:#925909}table.dataTable.order-column tbody tr>.sorting_1,table.dataTable.order-column tbody tr>.sorting_2,table.dataTable.order-column tbody tr>.sorting_3,table.dataTable.display tbody tr>.sorting_1,table.dataTable.display tbody tr>.sorting_2,table.dataTable.display tbody tr>.sorting_3{background-color:#2b2b2b}table.dataTable.order-column tbody tr.selected>.sorting_1,table.dataTable.order-column tbody tr.selected>.sorting_2,table.dataTable.order-column tbody tr.selected>.sorting_3,table.dataTable.display tbody tr.selected>.sorting_1,table.dataTable.display tbody tr.selected>.sorting_2,table.dataTable.display tbody tr.selected>.sorting_3{background-color:#acbad5}table.dataTable.display tbody tr.odd>.sorting_1,table.dataTable.order-column.stripe tbody tr.odd>.sorting_1{background-color:#212C30}table.dataTable.display tbody tr.odd>.sorting_2,table.dataTable.order-column.stripe tbody tr.odd>.sorting_2{background-color:#1b2326}table.dataTable.display tbody tr.odd>.sorting_3,table.dataTable.order-column.stripe tbody tr.odd>.sorting_3{background-color:#101517}table.dataTable.display tbody tr.odd.selected>.sorting_1,table.dataTable.order-column.stripe tbody tr.odd.selected>.sorting_1{background-color:#171e20}table.dataTable.display tbody tr.odd.selected>.sorting_2,table.dataTable.order-column.stripe tbody tr.odd.selected>.sorting_2{background-color:#a8b5cf}table.dataTable.display tbody tr.odd.selected>.sorting_3,table.dataTable.order-column.stripe tbody tr.odd.selected>.sorting_3{background-color:#a9b7d1}table.dataTable.display tbody tr.even>.sorting_1,table.dataTable.order-column.stripe tbody tr.even>.sorting_1{background-color:#212C30}table.dataTable.display tbody tr.even>.sorting_2,table.dataTable.order-column.stripe tbody tr.even>.sorting_2{background-color:#1b2326}table.dataTable.display tbody tr.even>.sorting_3,table.dataTable.order-column.stripe tbody tr.even>.sorting_3{background-color:#101517}table.dataTable.display tbody tr.even.selected>.sorting_1,table.dataTable.order-column.stripe tbody tr.even.selected>.sorting_1{background-color:#171e20}table.dataTable.display tbody tr.even.selected>.sorting_2,table.dataTable.order-column.stripe tbody tr.even.selected>.sorting_2{background-color:#aebcd6}table.dataTable.display tbody tr.even.selected>.sorting_3,table.dataTable.order-column.stripe tbody tr.even.selected>.sorting_3{background-color:#afbdd8}table.dataTable.display tbody tr:hover>.sorting_1,table.dataTable.order-column.hover tbody tr:hover>.sorting_1{background-color:rgba(2,1,0,0.2)}table.dataTable.display tbody tr:hover>.sorting_2,table.dataTable.order-column.hover tbody tr:hover>.sorting_2{background-color:rgba(0,0,0,0.2)}table.dataTable.display tbody tr:hover>.sorting_3,table.dataTable.order-column.hover tbody tr:hover>.sorting_3{background-color:rgba(0,0,0,0.2)}table.dataTable.display tbody tr:hover.selected>.sorting_1,table.dataTable.order-column.hover tbody tr:hover.selected>.sorting_1{background-color:#885308}table.dataTable.display tbody tr:hover.selected>.sorting_2,table.dataTable.order-column.hover tbody tr:hover.selected>.sorting_2{background-color:#a3b0c9}table.dataTable.display tbody tr:hover.selected>.sorting_3,table.dataTable.order-column.hover tbody tr:hover.selected>.sorting_3{background-color:#a5b2cb}table.dataTable.no-footer{border-bottom:1px solid #3c3f41}table.dataTable.nowrap th,table.dataTable.nowrap td{white-space:nowrap}table.dataTable.compact thead th,table.dataTable.compact thead td{padding:4px 4px 4px 4px}table.dataTable.compact tfoot th,table.dataTable.compact tfoot td{padding:4px}table.dataTable.compact tbody th,table.dataTable.compact tbody td{padding:4px}table.dataTable th.dt-left,table.dataTable td.dt-left{text-align:left}table.dataTable th.dt-center,table.dataTable td.dt-center,table.dataTable td.dataTables_empty{text-align:center}table.dataTable th.dt-right,table.dataTable td.dt-right{text-align:right}table.dataTable th.dt-justify,table.dataTable td.dt-justify{text-align:justify}table.dataTable th.dt-nowrap,table.dataTable td.dt-nowrap{white-space:nowrap}table.dataTable thead th.dt-head-left,table.dataTable thead td.dt-head-left,table.dataTable tfoot th.dt-head-left,table.dataTable tfoot td.dt-head-left{text-align:left}table.dataTable thead th.dt-head-center,table.dataTable thead td.dt-head-center,table.dataTable tfoot th.dt-head-center,table.dataTable tfoot td.dt-head-center{text-align:center}table.dataTable thead th.dt-head-right,table.dataTable thead td.dt-head-right,table.dataTable tfoot th.dt-head-right,table.dataTable tfoot td.dt-head-right{text-align:right}table.dataTable thead th.dt-head-justify,table.dataTable thead td.dt-head-justify,table.dataTable tfoot th.dt-head-justify,table.dataTable tfoot td.dt-head-justify{text-align:justify}table.dataTable thead th.dt-head-nowrap,table.dataTable thead td.dt-head-nowrap,table.dataTable tfoot th.dt-head-nowrap,table.dataTable tfoot td.dt-head-nowrap{white-space:nowrap}table.dataTable tbody th.dt-body-left,table.dataTable tbody td.dt-body-left{text-align:left}table.dataTable tbody th.dt-body-center,table.dataTable tbody td.dt-body-center{text-align:center}table.dataTable tbody th.dt-body-right,table.dataTable tbody td.dt-body-right{text-align:right}table.dataTable tbody th.dt-body-justify,table.dataTable tbody td.dt-body-justify{text-align:justify}table.dataTable tbody th.dt-body-nowrap,table.dataTable tbody td.dt-body-nowrap{white-space:nowrap}table.dataTable,table.dataTable th,table.dataTable td{box-sizing:content-box}.dataTables_wrapper{position:relative;clear:both;*zoom:1;zoom:1}.dataTables_wrapper .dataTables_length{float:left}.dataTables_wrapper .dataTables_filter{float:right;text-align:right}.dataTables_wrapper .dataTables_filter input{margin-left:0.5em}.dataTables_wrapper .dataTables_info{clear:both;float:left;padding-top:0.9em}.dataTables_wrapper .dataTables_paginate{float:right;text-align:right;padding-top:0.5em}.dataTables_wrapper .dataTables_paginate .paginate_button{box-sizing:border-box;display:inline-block;min-width:1.5em;padding:0.3em 0.8em;margin-left:2px;text-align:center;text-decoration:none !important;cursor:pointer;*cursor:hand;color:#6f7477 !important;border:1px solid transparent;border-radius:2px}.dataTables_wrapper .dataTables_paginate .paginate_button.current,.dataTables_wrapper .dataTables_paginate .paginate_button.current:hover{color:#adadad !important;border:1px solid transparent;background-color:#313335;background:-webkit-gradient(linear, left top, left bottom, color-stop(0%, #313335), color-stop(100%, #2b2b2b));background:-webkit-linear-gradient(top, #313335 0%, #2b2b2b 100%);background:-moz-linear-gradient(top, #313335 0%, #2b2b2b 100%);background:-ms-linear-gradient(top, #313335 0%, #2b2b2b 100%);background:-o-linear-gradient(top, #313335 0%, #2b2b2b 100%);background:linear-gradient(to bottom, #313335 0%,#2b2b2b 100%)}.dataTables_wrapper .dataTables_paginate .paginate_button.disabled,.dataTables_wrapper .dataTables_paginate .paginate_button.disabled:hover,.dataTables_wrapper .dataTables_paginate .paginate_button.disabled:active{cursor:default;color:#4f5355 !important;border:1px solid transparent;background:transparent;box-shadow:none;pointer-events:all;cursor:not-allowed}.dataTables_wrapper .dataTables_paginate .paginate_button:hover{color:#313335 !important;border:1px solid transparent;background-color:#c2760c;background:-webkit-gradient(linear, left top, left bottom, color-stop(0%, #c2760c), color-stop(100%, #c2760c));background:-webkit-linear-gradient(top, #c2760c 0%, #c2760c 100%);background:-moz-linear-gradient(top, #c2760c 0%, #c2760c 100%);background:-ms-linear-gradient(top, #c2760c 0%, #c2760c 100%);background:-o-linear-gradient(top, #c2760c 0%, #c2760c 100%);background:linear-gradient(to bottom, #c2760c 0%,#c2760c 100%)}.dataTables_wrapper .dataTables_paginate .paginate_button:active{outline:none;background-color:#c2760c;background:-webkit-gradient(linear, left top, left bottom, color-stop(0%, #c2760c), color-stop(100%, #c2760c));background:-webkit-linear-gradient(top, #c2760c 0%, #c2760c 100%);background:-moz-linear-gradient(top, #c2760c 0%, #c2760c 100%);background:-ms-linear-gradient(top, #c2760c 0%, #c2760c 100%);background:-o-linear-gradient(top, #c2760c 0%, #c2760c 100%);background:linear-gradient(to bottom, #c2760c 0%,#c2760c 100%);box-shadow:inset 0 0 3px #111}.dataTables_wrapper .dataTables_paginate .ellipsis{padding:0 1em}.dataTables_wrapper .dataTables_processing{position:absolute;top:50%;left:50%;width:100%;height:40px;margin-left:-50%;margin-top:-25px;padding-top:20px;text-align:center;font-size:1.2em;background-color:white;background:-webkit-gradient(linear, left top, right top, color-stop(0%, rgba(255,255,255,0)), color-stop(25%, rgba(255,255,255,0.9)), color-stop(75%, rgba(255,255,255,0.9)), color-stop(100%, rgba(255,255,255,0)));background:-webkit-linear-gradient(left, rgba(255,255,255,0) 0%, rgba(255,255,255,0.9) 25%, rgba(255,255,255,0.9) 75%, rgba(255,255,255,0) 100%);background:-moz-linear-gradient(left, rgba(255,255,255,0) 0%, rgba(255,255,255,0.9) 25%, rgba(255,255,255,0.9) 75%, rgba(255,255,255,0) 100%);background:-ms-linear-gradient(left, rgba(255,255,255,0) 0%, rgba(255,255,255,0.9) 25%, rgba(255,255,255,0.9) 75%, rgba(255,255,255,0) 100%);background:-o-linear-gradient(left, rgba(255,255,255,0) 0%, rgba(255,255,255,0.9) 25%, rgba(255,255,255,0.9) 75%, rgba(255,255,255,0) 100%);background:linear-gradient(to right, rgba(255,255,255,0) 0%,rgba(255,255,255,0.9) 25%,rgba(255,255,255,0.9) 75%,rgba(255,255,255,0) 100%)}.dataTables_wrapper .dataTables_length,.dataTables_wrapper .dataTables_filter,.dataTables_wrapper .dataTables_info,.dataTables_wrapper .dataTables_processing,.dataTables_wrapper .dataTables_paginate{color:#63676a}.dataTables_wrapper .dataTables_scroll{clear:both}.dataTables_wrapper .dataTables_scroll div.dataTables_scrollBody{*margin-top:-1px;-webkit-overflow-scrolling:touch}.dataTables_wrapper .dataTables_scroll div.dataTables_scrollBody>table>thead>tr>th,.dataTables_wrapper .dataTables_scroll div.dataTables_scrollBody>table>thead>tr>td,.dataTables_wrapper .dataTables_scroll div.dataTables_scrollBody>table>tbody>tr>th,.dataTables_wrapper .dataTables_scroll div.dataTables_scrollBody>table>tbody>tr>td{vertical-align:middle}.dataTables_wrapper .dataTables_scroll div.dataTables_scrollBody>table>thead>tr>th>div.dataTables_sizing,.dataTables_wrapper .dataTables_scroll div.dataTables_scrollBody>table>thead>tr>td>div.dataTables_sizing,.dataTables_wrapper .dataTables_scroll div.dataTables_scrollBody>table>tbody>tr>th>div.dataTables_sizing,.dataTables_wrapper .dataTables_scroll div.dataTables_scrollBody>table>tbody>tr>td>div.dataTables_sizing{height:0;overflow:hidden;margin:0 !important;padding:0 !important}.dataTables_wrapper.no-footer .dataTables_scrollBody{border-bottom:1px solid #111}.dataTables_wrapper.no-footer div.dataTables_scrollHead table.dataTable,.dataTables_wrapper.no-footer div.dataTables_scrollBody>table{border-bottom:none}.dataTables_wrapper:after{visibility:hidden;display:block;content:"";clear:both;height:0}@media screen and (max-width: 767px){.dataTables_wrapper .dataTables_info,.dataTables_wrapper .dataTables_paginate{float:none}}@media screen and (max-width: 640px){.dataTables_wrapper .dataTables_length,.dataTables_wrapper .dataTables_filter{float:none;text-align:center}.dataTables_wrapper .dataTables_filter{margin-top:0.5em}}@keyframes dtb-spinner{100%{transform:rotate(360deg)}}@-o-keyframes dtb-spinner{100%{-o-transform:rotate(360deg);transform:rotate(360deg)}}@-ms-keyframes dtb-spinner{100%{-ms-transform:rotate(360deg);transform:rotate(360deg)}}@-webkit-keyframes dtb-spinner{100%{-webkit-transform:rotate(360deg);transform:rotate(360deg)}}@-moz-keyframes dtb-spinner{100%{-moz-transform:rotate(360deg);transform:rotate(360deg)}}div.dt-button-info{position:fixed;top:50%;left:50%;width:400px;margin-top:-100px;margin-left:-200px;background-color:white;border:2px solid #111;box-shadow:3px 3px 8px rgba(0,0,0,0.3);border-radius:3px;text-align:center;z-index:21}div.dt-button-info h2{padding:0.5em;margin:0;font-weight:normal;border-bottom:1px solid #ddd;background-color:#f3f3f3}div.dt-button-info>div{padding:1em}div.dt-button-collection-title{text-align:center;padding:0.3em 0 0.5em;font-size:0.9em}div.dt-button-collection-title:empty{display:none}button.dt-button,div.dt-button,a.dt-button{position:relative;display:inline-block;box-sizing:border-box;margin-right:0.333em;margin-bottom:0.333em;padding:0.5em 1em;cursor:pointer;font-size:0.88em;line-height:1.6em;white-space:nowrap;overflow:hidden;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;text-decoration:none;outline:none}.dt-button embed{outline:none}div.dt-buttons{position:relative;float:left}div.dt-buttons.buttons-right{float:right}div.dt-button-collection{position:absolute;top:0;left:0;width:150px;margin-top:3px;padding:8px 8px 4px 8px;border:1px solid #ccc;border:1px solid rgba(0,0,0,0.4);background-color:white;overflow:hidden;z-index:2002;border-radius:5px;box-shadow:3px 3px 5px rgba(0,0,0,0.3);-webkit-column-gap:8px;-moz-column-gap:8px;-ms-column-gap:8px;-o-column-gap:8px;column-gap:8px}div.dt-button-collection button.dt-button,div.dt-button-collection div.dt-button,div.dt-button-collection a.dt-button{position:relative;left:0;right:0;width:100%;display:block;float:none;margin-bottom:4px;margin-right:0}div.dt-button-collection button.dt-button:active:not(.disabled),div.dt-button-collection button.dt-button.active:not(.disabled),div.dt-button-collection div.dt-button:active:not(.disabled),div.dt-button-collection div.dt-button.active:not(.disabled),div.dt-button-collection a.dt-button:active:not(.disabled),div.dt-button-collection a.dt-button.active:not(.disabled){background-color:#dadada;background-image:-webkit-linear-gradient(top, #f0f0f0 0%, #dadada 100%);background-image:-moz-linear-gradient(top, #f0f0f0 0%, #dadada 100%);background-image:-ms-linear-gradient(top, #f0f0f0 0%, #dadada 100%);background-image:-o-linear-gradient(top, #f0f0f0 0%, #dadada 100%);background-image:linear-gradient(to bottom, #f0f0f0 0%,#dadada 100%);filter:progid:DXImageTransform.Microsoft.gradient(GradientType=0,StartColorStr='#f0f0f0', EndColorStr='#dadada');box-shadow:inset 1px 1px 3px #666}div.dt-button-collection.fixed{position:fixed;top:50%;left:50%;margin-left:-75px;border-radius:0}div.dt-button-collection.fixed.two-column{margin-left:-150px}div.dt-button-collection.fixed.three-column{margin-left:-225px}div.dt-button-collection.fixed.four-column{margin-left:-300px}div.dt-button-collection>*{-webkit-column-break-inside:avoid;break-inside:avoid}div.dt-button-collection.two-column{width:300px;padding-bottom:1px;-webkit-column-count:2;-moz-column-count:2;-ms-column-count:2;-o-column-count:2;column-count:2}div.dt-button-collection.three-column{width:450px;padding-bottom:1px;-webkit-column-count:3;-moz-column-count:3;-ms-column-count:3;-o-column-count:3;column-count:3}div.dt-button-collection.four-column{width:600px;padding-bottom:1px;-webkit-column-count:4;-moz-column-count:4;-ms-column-count:4;-o-column-count:4;column-count:4}div.dt-button-collection .dt-button{border-radius:0}div.dt-button-background{position:fixed;top:0;left:0;width:100%;height:100%;background:rgba(0,0,0,0.7);background:-ms-radial-gradient(center, ellipse farthest-corner, rgba(0,0,0,0.3) 0%, rgba(0,0,0,0.7) 100%);background:-moz-radial-gradient(center, ellipse farthest-corner, rgba(0,0,0,0.3) 0%, rgba(0,0,0,0.7) 100%);background:-o-radial-gradient(center, ellipse farthest-corner, rgba(0,0,0,0.3) 0%, rgba(0,0,0,0.7) 100%);background:-webkit-gradient(radial, center center, 0, center center, 497, color-stop(0, rgba(0,0,0,0.3)), color-stop(1, rgba(0,0,0,0.7)));background:-webkit-radial-gradient(center, ellipse farthest-corner, rgba(0,0,0,0.3) 0%, rgba(0,0,0,0.7) 100%);background:radial-gradient(ellipse farthest-corner at center, rgba(0,0,0,0.3) 0%,rgba(0,0,0,0.7) 100%);z-index:2001}@media screen and (max-width: 640px){div.dt-buttons{float:none !important;text-align:center}}button.dt-button.processing,div.dt-button.processing,a.dt-button.processing{color:rgba(0,0,0,0.2)}button.dt-button.processing:after,div.dt-button.processing:after,a.dt-button.processing:after{position:absolute;top:50%;left:50%;width:16px;height:16px;margin:-8px 0 0 -8px;box-sizing:border-box;display:block;content:' ';border:2px solid #282828;border-radius:50%;border-left-color:transparent;border-right-color:transparent;animation:dtb-spinner 1500ms infinite linear;-o-animation:dtb-spinner 1500ms infinite linear;-ms-animation:dtb-spinner 1500ms infinite linear;-webkit-animation:dtb-spinner 1500ms infinite linear;-moz-animation:dtb-spinner 1500ms infinite linear}table.dataTable.dtr-inline.collapsed>tbody>tr>td.child,table.dataTable.dtr-inline.collapsed>tbody>tr>th.child,table.dataTable.dtr-inline.collapsed>tbody>tr>td.dataTables_empty{cursor:default !important}table.dataTable.dtr-inline.collapsed>tbody>tr>td.child:before,table.dataTable.dtr-inline.collapsed>tbody>tr>th.child:before,table.dataTable.dtr-inline.collapsed>tbody>tr>td.dataTables_empty:before{display:none !important}table.dataTable.dtr-inline.collapsed>tbody>tr[role="row"]>td:first-child,table.dataTable.dtr-inline.collapsed>tbody>tr[role="row"]>th:first-child{position:relative;padding-left:30px;cursor:pointer}table.dataTable.dtr-inline.collapsed>tbody>tr[role="row"]>td:first-child:before,table.dataTable.dtr-inline.collapsed>tbody>tr[role="row"]>th:first-child:before{top:9px;left:4px;height:14px;width:14px;display:block;position:absolute;color:#fff;border:2px solid white;border-radius:14px;box-shadow:0 0 3px #444;box-sizing:content-box;text-align:center;text-indent:0 !important;font-family:'Courier New', Courier, monospace;line-height:14px;content:'+';background-color:#31b131}table.dataTable.dtr-inline.collapsed>tbody>tr.parent>td:first-child:before,table.dataTable.dtr-inline.collapsed>tbody>tr.parent>th:first-child:before{content:'-';background-color:#d33333}table.dataTable.dtr-inline.collapsed.compact>tbody>tr>td:first-child,table.dataTable.dtr-inline.collapsed.compact>tbody>tr>th:first-child{padding-left:27px}table.dataTable.dtr-inline.collapsed.compact>tbody>tr>td:first-child:before,table.dataTable.dtr-inline.collapsed.compact>tbody>tr>th:first-child:before{top:5px;left:4px;height:14px;width:14px;border-radius:14px;line-height:14px;text-indent:3px}table.dataTable.dtr-column>tbody>tr>td.control,table.dataTable.dtr-column>tbody>tr>th.control{position:relative;cursor:pointer}table.dataTable.dtr-column>tbody>tr>td.control:before,table.dataTable.dtr-column>tbody>tr>th.control:before{top:50%;left:50%;height:16px;width:16px;margin-top:-10px;margin-left:-10px;display:block;position:absolute;color:#fff;border:2px solid white;border-radius:14px;box-shadow:0 0 3px #444;box-sizing:content-box;text-align:center;text-indent:0 !important;font-family:'Courier New', Courier, monospace;line-height:14px;content:'+';background-color:#31b131}table.dataTable.dtr-column>tbody>tr.parent td.control:before,table.dataTable.dtr-column>tbody>tr.parent th.control:before{content:'-';background-color:#d33333}table.dataTable>tbody>tr.child{padding:0.5em 1em}table.dataTable>tbody>tr.child:hover{background:transparent !important}table.dataTable>tbody>tr.child ul.dtr-details{display:inline-block;list-style-type:none;margin:0;padding:0}table.dataTable>tbody>tr.child ul.dtr-details>li{border-bottom:1px solid #efefef;padding:0.5em 0}table.dataTable>tbody>tr.child ul.dtr-details>li:first-child{padding-top:0}table.dataTable>tbody>tr.child ul.dtr-details>li:last-child{border-bottom:none}table.dataTable>tbody>tr.child span.dtr-title{display:inline-block;min-width:75px;font-weight:bold}div.dtr-modal{position:fixed;box-sizing:border-box;top:0;left:0;height:100%;width:100%;z-index:100;padding:10em 1em}div.dtr-modal div.dtr-modal-display{position:absolute;top:0;left:0;bottom:0;right:0;width:50%;height:50%;overflow:auto;margin:auto;z-index:102;overflow:auto;background-color:#f5f5f7;border:1px solid black;border-radius:0.5em;box-shadow:0 12px 30px rgba(0,0,0,0.6)}div.dtr-modal div.dtr-modal-content{position:relative;padding:1em}div.dtr-modal div.dtr-modal-close{position:absolute;top:6px;right:6px;width:22px;height:22px;border:1px solid #eaeaea;background-color:#f9f9f9;text-align:center;border-radius:3px;cursor:pointer;z-index:12}div.dtr-modal div.dtr-modal-close:hover{background-color:#eaeaea}div.dtr-modal div.dtr-modal-background{position:fixed;top:0;left:0;right:0;bottom:0;z-index:101;background:rgba(0,0,0,0.6)}@media screen and (max-width: 767px){div.dtr-modal div.dtr-modal-display{width:95%}}table.dataTable tbody>tr.selected,table.dataTable tbody>tr>.selected{background-color:#1b2326}table.dataTable.stripe tbody>tr.odd.selected,table.dataTable.stripe tbody>tr.odd>.selected,table.dataTable.display tbody>tr.odd.selected,table.dataTable.display tbody>tr.odd>.selected{background-color:#182022}table.dataTable.hover tbody>tr.selected:hover,table.dataTable.hover tbody>tr>.selected:hover,table.dataTable.display tbody>tr.selected:hover,table.dataTable.display tbody>tr>.selected:hover{background-color:#1a2225}table.dataTable.order-column tbody>tr.selected>.sorting_1,table.dataTable.order-column tbody>tr.selected>.sorting_2,table.dataTable.order-column tbody>tr.selected>.sorting_3,table.dataTable.order-column tbody>tr>.selected,table.dataTable.display tbody>tr.selected>.sorting_1,table.dataTable.display tbody>tr.selected>.sorting_2,table.dataTable.display tbody>tr.selected>.sorting_3,table.dataTable.display tbody>tr>.selected{background-color:#1a2225}table.dataTable.display tbody>tr.odd.selected>.sorting_1,table.dataTable.order-column.stripe tbody>tr.odd.selected>.sorting_1{background-color:#1a2124}table.dataTable.display tbody>tr.odd.selected>.sorting_2,table.dataTable.order-column.stripe tbody>tr.odd.selected>.sorting_2{background-color:#1a2124}table.dataTable.display tbody>tr.odd.selected>.sorting_3,table.dataTable.order-column.stripe tbody>tr.odd.selected>.sorting_3{background-color:#1a2225}table.dataTable.display tbody>tr.even.selected>.sorting_1,table.dataTable.order-column.stripe tbody>tr.even.selected>.sorting_1{background-color:#171e20}table.dataTable.display tbody>tr.even.selected>.sorting_2,table.dataTable.order-column.stripe tbody>tr.even.selected>.sorting_2{background-color:#1b2326}table.dataTable.display tbody>tr.even.selected>.sorting_3,table.dataTable.order-column.stripe tbody>tr.even.selected>.sorting_3{background-color:#1b2326}table.dataTable.display tbody>tr.odd>.selected,table.dataTable.order-column.stripe tbody>tr.odd>.selected{background-color:#1a2124}table.dataTable.display tbody>tr.even>.selected,table.dataTable.order-column.stripe tbody>tr.even>.selected{background-color:#1a2225}table.dataTable.display tbody>tr.selected:hover>.sorting_1,table.dataTable.order-column.hover tbody>tr.selected:hover>.sorting_1{background-color:#192023}table.dataTable.display tbody>tr.selected:hover>.sorting_2,table.dataTable.order-column.hover tbody>tr.selected:hover>.sorting_2{background-color:#192023}table.dataTable.display tbody>tr.selected:hover>.sorting_3,table.dataTable.order-column.hover tbody>tr.selected:hover>.sorting_3{background-color:#192124}table.dataTable.display tbody>tr:hover>.selected,table.dataTable.display tbody>tr>.selected:hover,table.dataTable.order-column.hover tbody>tr:hover>.selected,table.dataTable.order-column.hover tbody>tr>.selected:hover{background-color:#192023}table.dataTable tbody td.select-checkbox,table.dataTable tbody th.select-checkbox{position:relative}table.dataTable tbody td.select-checkbox:before,table.dataTable tbody td.select-checkbox:after,table.dataTable tbody th.select-checkbox:before,table.dataTable tbody th.select-checkbox:after{display:block;position:absolute;top:1.2em;left:50%;width:12px;height:12px;box-sizing:border-box}table.dataTable tbody td.select-checkbox:before,table.dataTable tbody th.select-checkbox:before{content:' ';margin-top:-6px;margin-left:-6px;border:1px solid black;border-radius:3px}table.dataTable tr.selected td.select-checkbox:after,table.dataTable tr.selected th.select-checkbox:after{content:'\2714';margin-top:-11px;margin-left:-4px;text-align:center;text-shadow:1px 1px #B0BED9, -1px -1px #B0BED9, 1px -1px #B0BED9, -1px 1px #B0BED9}div.dataTables_wrapper span.select-info,div.dataTables_wrapper span.select-item{margin-left:0.5em}@media screen and (max-width: 640px){div.dataTables_wrapper span.select-info,div.dataTables_wrapper span.select-item{margin-left:0;display:block}}/*! + */@font-face{font-family:'Font Awesome 5 Brands';font-style:normal;font-weight:normal;font-display:auto;src:url("../../fonts/fa-brands-400.eot");src:url("../../fonts/fa-brands-400.eot?#iefix") format("embedded-opentype"),url("../../fonts/fa-brands-400.woff2") format("woff2"),url("../../fonts/fa-brands-400.woff") format("woff"),url("../../fonts/fa-brands-400.ttf") format("truetype"),url("../../fonts/fa-brands-400.svg#fontawesome") format("svg")}.fab{font-family:'Font Awesome 5 Brands'}.mCustomScrollbar{-ms-touch-action:pinch-zoom;touch-action:pinch-zoom}.mCustomScrollbar.mCS_no_scrollbar,.mCustomScrollbar.mCS_touch_action{-ms-touch-action:auto;touch-action:auto}.mCustomScrollBox{position:relative;overflow:hidden;height:100%;max-width:100%;outline:none;direction:ltr}.mCSB_container{overflow:hidden;width:auto;height:auto}.mCSB_inside>.mCSB_container{margin-right:20px}.mCSB_container.mCS_no_scrollbar_y.mCS_y_hidden{margin-right:0}.mCS-dir-rtl>.mCSB_inside>.mCSB_container{margin-right:0;margin-left:20px}.mCS-dir-rtl>.mCSB_inside>.mCSB_container.mCS_no_scrollbar_y.mCS_y_hidden{margin-left:0}.mCSB_scrollTools{position:absolute;width:16px;height:auto;left:auto;top:0;right:0;bottom:0}.mCSB_outside+.mCSB_scrollTools{right:-26px}.mCS-dir-rtl>.mCSB_inside>.mCSB_scrollTools,.mCS-dir-rtl>.mCSB_outside+.mCSB_scrollTools{right:auto;left:0}.mCS-dir-rtl>.mCSB_outside+.mCSB_scrollTools{left:-26px}.mCSB_scrollTools .mCSB_draggerContainer{position:absolute;top:0;left:0;bottom:0;right:0;height:auto}.mCSB_scrollTools a+.mCSB_draggerContainer{margin:20px 0}.mCSB_scrollTools .mCSB_draggerRail{width:2px;height:100%;margin:0 auto;-webkit-border-radius:16px;-moz-border-radius:16px;border-radius:16px}.mCSB_scrollTools .mCSB_dragger{cursor:pointer;width:100%;height:30px;z-index:1}.mCSB_scrollTools .mCSB_dragger .mCSB_dragger_bar{position:relative;width:4px;height:100%;margin:0 auto;-webkit-border-radius:16px;-moz-border-radius:16px;border-radius:16px;text-align:center}.mCSB_scrollTools_vertical.mCSB_scrollTools_onDrag_expand .mCSB_dragger.mCSB_dragger_onDrag_expanded .mCSB_dragger_bar,.mCSB_scrollTools_vertical.mCSB_scrollTools_onDrag_expand .mCSB_draggerContainer:hover .mCSB_dragger .mCSB_dragger_bar{width:12px}.mCSB_scrollTools_vertical.mCSB_scrollTools_onDrag_expand .mCSB_dragger.mCSB_dragger_onDrag_expanded+.mCSB_draggerRail,.mCSB_scrollTools_vertical.mCSB_scrollTools_onDrag_expand .mCSB_draggerContainer:hover .mCSB_draggerRail{width:8px}.mCSB_scrollTools .mCSB_buttonUp,.mCSB_scrollTools .mCSB_buttonDown{display:block;position:absolute;height:20px;width:100%;overflow:hidden;margin:0 auto;cursor:pointer}.mCSB_scrollTools .mCSB_buttonDown{bottom:0}.mCSB_horizontal.mCSB_inside>.mCSB_container{margin-right:0;margin-bottom:20px}.mCSB_horizontal.mCSB_outside>.mCSB_container{min-height:100%}.mCSB_horizontal>.mCSB_container.mCS_no_scrollbar_x.mCS_x_hidden{margin-bottom:0}.mCSB_scrollTools.mCSB_scrollTools_horizontal{width:auto;height:16px;top:auto;right:0;bottom:0;left:0}.mCustomScrollBox+.mCSB_scrollTools.mCSB_scrollTools_horizontal,.mCustomScrollBox+.mCSB_scrollTools+.mCSB_scrollTools.mCSB_scrollTools_horizontal{bottom:-26px}.mCSB_scrollTools.mCSB_scrollTools_horizontal a+.mCSB_draggerContainer{margin:0 20px}.mCSB_scrollTools.mCSB_scrollTools_horizontal .mCSB_draggerRail{width:100%;height:2px;margin:7px 0}.mCSB_scrollTools.mCSB_scrollTools_horizontal .mCSB_dragger{width:30px;height:100%;left:0}.mCSB_scrollTools.mCSB_scrollTools_horizontal .mCSB_dragger .mCSB_dragger_bar{width:100%;height:4px;margin:6px auto}.mCSB_scrollTools_horizontal.mCSB_scrollTools_onDrag_expand .mCSB_dragger.mCSB_dragger_onDrag_expanded .mCSB_dragger_bar,.mCSB_scrollTools_horizontal.mCSB_scrollTools_onDrag_expand .mCSB_draggerContainer:hover .mCSB_dragger .mCSB_dragger_bar{height:12px;margin:2px auto}.mCSB_scrollTools_horizontal.mCSB_scrollTools_onDrag_expand .mCSB_dragger.mCSB_dragger_onDrag_expanded+.mCSB_draggerRail,.mCSB_scrollTools_horizontal.mCSB_scrollTools_onDrag_expand .mCSB_draggerContainer:hover .mCSB_draggerRail{height:8px;margin:4px 0}.mCSB_scrollTools.mCSB_scrollTools_horizontal .mCSB_buttonLeft,.mCSB_scrollTools.mCSB_scrollTools_horizontal .mCSB_buttonRight{display:block;position:absolute;width:20px;height:100%;overflow:hidden;margin:0 auto;cursor:pointer}.mCSB_scrollTools.mCSB_scrollTools_horizontal .mCSB_buttonLeft{left:0}.mCSB_scrollTools.mCSB_scrollTools_horizontal .mCSB_buttonRight{right:0}.mCSB_container_wrapper{position:absolute;height:auto;width:auto;overflow:hidden;top:0;left:0;right:0;bottom:0;margin-right:20px;margin-bottom:20px}.mCSB_container_wrapper>.mCSB_container{padding-right:20px;padding-bottom:20px;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}.mCSB_vertical_horizontal>.mCSB_scrollTools.mCSB_scrollTools_vertical{bottom:20px}.mCSB_vertical_horizontal>.mCSB_scrollTools.mCSB_scrollTools_horizontal{right:20px}.mCSB_container_wrapper.mCS_no_scrollbar_x.mCS_x_hidden+.mCSB_scrollTools.mCSB_scrollTools_vertical{bottom:0}.mCSB_container_wrapper.mCS_no_scrollbar_y.mCS_y_hidden+.mCSB_scrollTools ~ .mCSB_scrollTools.mCSB_scrollTools_horizontal,.mCS-dir-rtl>.mCustomScrollBox.mCSB_vertical_horizontal.mCSB_inside>.mCSB_scrollTools.mCSB_scrollTools_horizontal{right:0}.mCS-dir-rtl>.mCustomScrollBox.mCSB_vertical_horizontal.mCSB_inside>.mCSB_scrollTools.mCSB_scrollTools_horizontal{left:20px}.mCS-dir-rtl>.mCustomScrollBox.mCSB_vertical_horizontal.mCSB_inside>.mCSB_container_wrapper.mCS_no_scrollbar_y.mCS_y_hidden+.mCSB_scrollTools ~ .mCSB_scrollTools.mCSB_scrollTools_horizontal{left:0}.mCS-dir-rtl>.mCSB_inside>.mCSB_container_wrapper{margin-right:0;margin-left:20px}.mCSB_container_wrapper.mCS_no_scrollbar_y.mCS_y_hidden>.mCSB_container{padding-right:0}.mCSB_container_wrapper.mCS_no_scrollbar_x.mCS_x_hidden>.mCSB_container{padding-bottom:0}.mCustomScrollBox.mCSB_vertical_horizontal.mCSB_inside>.mCSB_container_wrapper.mCS_no_scrollbar_y.mCS_y_hidden{margin-right:0;margin-left:0}.mCustomScrollBox.mCSB_vertical_horizontal.mCSB_inside>.mCSB_container_wrapper.mCS_no_scrollbar_x.mCS_x_hidden{margin-bottom:0}.mCSB_scrollTools,.mCSB_scrollTools .mCSB_dragger .mCSB_dragger_bar,.mCSB_scrollTools .mCSB_buttonUp,.mCSB_scrollTools .mCSB_buttonDown,.mCSB_scrollTools .mCSB_buttonLeft,.mCSB_scrollTools .mCSB_buttonRight{-webkit-transition:opacity .2s ease-in-out, background-color .2s ease-in-out;-moz-transition:opacity .2s ease-in-out, background-color .2s ease-in-out;-o-transition:opacity .2s ease-in-out, background-color .2s ease-in-out;transition:opacity .2s ease-in-out, background-color .2s ease-in-out}.mCSB_scrollTools_vertical.mCSB_scrollTools_onDrag_expand .mCSB_dragger_bar,.mCSB_scrollTools_vertical.mCSB_scrollTools_onDrag_expand .mCSB_draggerRail,.mCSB_scrollTools_horizontal.mCSB_scrollTools_onDrag_expand .mCSB_dragger_bar,.mCSB_scrollTools_horizontal.mCSB_scrollTools_onDrag_expand .mCSB_draggerRail{-webkit-transition:width .2s ease-out .2s, height .2s ease-out .2s, margin-left .2s ease-out .2s, margin-right .2s ease-out .2s, margin-top .2s ease-out .2s, margin-bottom .2s ease-out .2s, opacity .2s ease-in-out, background-color .2s ease-in-out;-moz-transition:width .2s ease-out .2s, height .2s ease-out .2s, margin-left .2s ease-out .2s, margin-right .2s ease-out .2s, margin-top .2s ease-out .2s, margin-bottom .2s ease-out .2s, opacity .2s ease-in-out, background-color .2s ease-in-out;-o-transition:width .2s ease-out .2s, height .2s ease-out .2s, margin-left .2s ease-out .2s, margin-right .2s ease-out .2s, margin-top .2s ease-out .2s, margin-bottom .2s ease-out .2s, opacity .2s ease-in-out, background-color .2s ease-in-out;transition:width .2s ease-out .2s, height .2s ease-out .2s, margin-left .2s ease-out .2s, margin-right .2s ease-out .2s, margin-top .2s ease-out .2s, margin-bottom .2s ease-out .2s, opacity .2s ease-in-out, background-color .2s ease-in-out}.mCSB_scrollTools{opacity:0.75;filter:"alpha(opacity=75)";-ms-filter:"alpha(opacity=75)"}.mCS-autoHide>.mCustomScrollBox>.mCSB_scrollTools,.mCS-autoHide>.mCustomScrollBox ~ .mCSB_scrollTools{opacity:0;filter:"alpha(opacity=0)";-ms-filter:"alpha(opacity=0)"}.mCustomScrollbar>.mCustomScrollBox>.mCSB_scrollTools.mCSB_scrollTools_onDrag,.mCustomScrollbar>.mCustomScrollBox ~ .mCSB_scrollTools.mCSB_scrollTools_onDrag,.mCustomScrollBox:hover>.mCSB_scrollTools,.mCustomScrollBox:hover ~ .mCSB_scrollTools,.mCS-autoHide:hover>.mCustomScrollBox>.mCSB_scrollTools,.mCS-autoHide:hover>.mCustomScrollBox ~ .mCSB_scrollTools{opacity:1;filter:"alpha(opacity=100)";-ms-filter:"alpha(opacity=100)"}.mCSB_scrollTools .mCSB_draggerRail{background-color:#000;background-color:rgba(0,0,0,0.4);filter:"alpha(opacity=40)";-ms-filter:"alpha(opacity=40)"}.mCSB_scrollTools .mCSB_dragger .mCSB_dragger_bar{background-color:#adadad;background-color:rgba(173,173,173,0.75);filter:"alpha(opacity=75)";-ms-filter:"alpha(opacity=75)"}.mCSB_scrollTools .mCSB_dragger:hover .mCSB_dragger_bar{background-color:#e28a0d;background-color:rgba(226,138,13,0.85);filter:"alpha(opacity=85)";-ms-filter:"alpha(opacity=85)"}.mCSB_scrollTools .mCSB_dragger:active .mCSB_dragger_bar,.mCSB_scrollTools .mCSB_dragger.mCSB_dragger_onDrag .mCSB_dragger_bar{background-color:#e28a0d;background-color:rgba(226,138,13,0.9);filter:"alpha(opacity=90)";-ms-filter:"alpha(opacity=90)"}.mCSB_scrollTools .mCSB_buttonUp,.mCSB_scrollTools .mCSB_buttonDown,.mCSB_scrollTools .mCSB_buttonLeft,.mCSB_scrollTools .mCSB_buttonRight{background:url('data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAKAAAACQCAYAAACPtWCAAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAA2hpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuNS1jMDE0IDc5LjE1MTQ4MSwgMjAxMy8wMy8xMy0xMjowOToxNSAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wTU09Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9tbS8iIHhtbG5zOnN0UmVmPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvc1R5cGUvUmVzb3VyY2VSZWYjIiB4bWxuczp4bXA9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC8iIHhtcE1NOk9yaWdpbmFsRG9jdW1lbnRJRD0ieG1wLmRpZDoxMURDMzE5NzIzQkNFMTExOTY0QkYwNzFDNzkwNTlDNCIgeG1wTU06RG9jdW1lbnRJRD0ieG1wLmRpZDpDOTMwRUZENEMxMUUxMUUzOUYxQkJGN0E1MDMzNTg1MCIgeG1wTU06SW5zdGFuY2VJRD0ieG1wLmlpZDpDOTMwRUZEM0MxMUUxMUUzOUYxQkJGN0E1MDMzNTg1MCIgeG1wOkNyZWF0b3JUb29sPSJBZG9iZSBQaG90b3Nob3AgQ1M1IFdpbmRvd3MiPiA8eG1wTU06RGVyaXZlZEZyb20gc3RSZWY6aW5zdGFuY2VJRD0ieG1wLmlpZDo1MGJlMjMyZC1hNzgzLTI1NGQtOTI4Yy02NDI0YmQxNTg0YWEiIHN0UmVmOmRvY3VtZW50SUQ9InhtcC5kaWQ6MTFEQzMxOTcyM0JDRTExMTk2NEJGMDcxQzc5MDU5QzQiLz4gPC9yZGY6RGVzY3Jp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');background-repeat:no-repeat;opacity:0.4;filter:"alpha(opacity=40)";-ms-filter:"alpha(opacity=40)"}.mCSB_scrollTools .mCSB_buttonUp{background-position:0 0}.mCSB_scrollTools .mCSB_buttonDown{background-position:0 -20px}.mCSB_scrollTools .mCSB_buttonLeft{background-position:0 -40px}.mCSB_scrollTools .mCSB_buttonRight{background-position:0 -56px}.mCSB_scrollTools .mCSB_buttonUp:hover,.mCSB_scrollTools .mCSB_buttonDown:hover,.mCSB_scrollTools .mCSB_buttonLeft:hover,.mCSB_scrollTools .mCSB_buttonRight:hover{opacity:0.75;filter:"alpha(opacity=75)";-ms-filter:"alpha(opacity=75)"}.mCSB_scrollTools .mCSB_buttonUp:active,.mCSB_scrollTools .mCSB_buttonDown:active,.mCSB_scrollTools .mCSB_buttonLeft:active,.mCSB_scrollTools .mCSB_buttonRight:active{opacity:0.9;filter:"alpha(opacity=90)";-ms-filter:"alpha(opacity=90)"}.mCS-light-3.mCSB_scrollTools .mCSB_draggerRail,.mCS-dark-3.mCSB_scrollTools .mCSB_draggerRail{width:6px;background-color:#000;background-color:rgba(0,0,0,0.2)}.mCS-light-3.mCSB_scrollTools .mCSB_dragger .mCSB_dragger_bar,.mCS-dark-3.mCSB_scrollTools .mCSB_dragger .mCSB_dragger_bar{width:6px}.mCS-light-3.mCSB_scrollTools_horizontal .mCSB_dragger .mCSB_dragger_bar,.mCS-dark-3.mCSB_scrollTools_horizontal .mCSB_dragger .mCSB_dragger_bar,.mCS-light-3.mCSB_scrollTools_horizontal .mCSB_draggerRail,.mCS-dark-3.mCSB_scrollTools_horizontal .mCSB_draggerRail{width:100%;height:6px;margin:5px 0}.mCS-light-3.mCSB_scrollTools_vertical.mCSB_scrollTools_onDrag_expand .mCSB_dragger.mCSB_dragger_onDrag_expanded+.mCSB_draggerRail,.mCS-light-3.mCSB_scrollTools_vertical.mCSB_scrollTools_onDrag_expand .mCSB_draggerContainer:hover .mCSB_draggerRail,.mCS-dark-3.mCSB_scrollTools_vertical.mCSB_scrollTools_onDrag_expand .mCSB_dragger.mCSB_dragger_onDrag_expanded+.mCSB_draggerRail,.mCS-dark-3.mCSB_scrollTools_vertical.mCSB_scrollTools_onDrag_expand .mCSB_draggerContainer:hover .mCSB_draggerRail{width:12px}.mCS-light-3.mCSB_scrollTools_horizontal.mCSB_scrollTools_onDrag_expand .mCSB_dragger.mCSB_dragger_onDrag_expanded+.mCSB_draggerRail,.mCS-light-3.mCSB_scrollTools_horizontal.mCSB_scrollTools_onDrag_expand .mCSB_draggerContainer:hover .mCSB_draggerRail,.mCS-dark-3.mCSB_scrollTools_horizontal.mCSB_scrollTools_onDrag_expand .mCSB_dragger.mCSB_dragger_onDrag_expanded+.mCSB_draggerRail,.mCS-dark-3.mCSB_scrollTools_horizontal.mCSB_scrollTools_onDrag_expand .mCSB_draggerContainer:hover .mCSB_draggerRail{height:12px;margin:2px 0}.mCS-light-3.mCSB_scrollTools .mCSB_buttonUp{background-position:-32px -72px}.mCS-light-3.mCSB_scrollTools .mCSB_buttonDown{background-position:-32px -92px}.mCS-light-3.mCSB_scrollTools .mCSB_buttonLeft{background-position:-40px -112px}.mCS-light-3.mCSB_scrollTools .mCSB_buttonRight{background-position:-40px -128px}table.dataTable{width:100%;margin:0 auto;clear:both;border-collapse:separate;border-spacing:0}table.dataTable thead th,table.dataTable tfoot th{font-weight:bold}table.dataTable thead th,table.dataTable thead td{padding:10px 18px;border-bottom:1px solid #3c3f41}table.dataTable thead th:active,table.dataTable thead td:active{outline:none}table.dataTable tfoot th,table.dataTable tfoot td{padding:10px 18px 6px 18px;border-top:1px solid #3c3f41}table.dataTable thead .sorting,table.dataTable thead .sorting_asc,table.dataTable thead .sorting_desc,table.dataTable thead .sorting_asc_disabled,table.dataTable thead .sorting_desc_disabled{cursor:pointer;*cursor:hand;background-repeat:no-repeat;background-position:center right}table.dataTable thead .sorting{background-image:url("../img/data-tables/sort_both.png")}table.dataTable thead .sorting_asc{background-image:url("../img/data-tables/sort_asc.png")}table.dataTable thead .sorting_desc{background-image:url("../img/data-tables/sort_desc.png")}table.dataTable thead .sorting_asc_disabled{background-image:url("../img/data-tables/sort_asc_disabled.png")}table.dataTable thead .sorting_desc_disabled{background-image:url("../img/data-tables/sort_desc_disabled.png")}table.dataTable tbody tr{background-color:#212121}table.dataTable tbody tr.selected{background-color:#1b2326}table.dataTable tbody th,table.dataTable tbody td{padding:8px 10px}table.dataTable.row-border tbody th,table.dataTable.row-border tbody td,table.dataTable.display tbody th,table.dataTable.display tbody td{border-top:1px solid #3c3f41}table.dataTable.row-border tbody tr:first-child th,table.dataTable.row-border tbody tr:first-child td,table.dataTable.display tbody tr:first-child th,table.dataTable.display tbody tr:first-child td{border-top:none}table.dataTable.cell-border tbody th,table.dataTable.cell-border tbody td{border-top:1px solid #ddd;border-right:1px solid #ddd}table.dataTable.cell-border tbody tr th:first-child,table.dataTable.cell-border tbody tr td:first-child{border-left:1px solid #ddd}table.dataTable.cell-border tbody tr:first-child th,table.dataTable.cell-border tbody tr:first-child td{border-top:none}table.dataTable.stripe tbody tr.odd,table.dataTable.display tbody tr.odd{background-color:#2b2b2b}table.dataTable.stripe tbody tr.odd.selected,table.dataTable.display tbody tr.odd.selected{background-color:#1b2326}table.dataTable.hover tbody tr:hover,table.dataTable.display tbody tr:hover{outline:1px solid #c2760c;outline-offset:-1px}table.dataTable.hover tbody tr:hover td,table.dataTable.display tbody tr:hover td{background-color:rgba(194,118,12,0.08)}table.dataTable.hover tbody tr:hover.selected,table.dataTable.display tbody tr:hover.selected{background-color:#925909}table.dataTable.order-column tbody tr>.sorting_1,table.dataTable.order-column tbody tr>.sorting_2,table.dataTable.order-column tbody tr>.sorting_3,table.dataTable.display tbody tr>.sorting_1,table.dataTable.display tbody tr>.sorting_2,table.dataTable.display tbody tr>.sorting_3{background-color:#2b2b2b}table.dataTable.order-column tbody tr.selected>.sorting_1,table.dataTable.order-column tbody tr.selected>.sorting_2,table.dataTable.order-column tbody tr.selected>.sorting_3,table.dataTable.display tbody tr.selected>.sorting_1,table.dataTable.display tbody tr.selected>.sorting_2,table.dataTable.display tbody tr.selected>.sorting_3{background-color:#acbad5}table.dataTable.display tbody tr.odd>.sorting_1,table.dataTable.order-column.stripe tbody tr.odd>.sorting_1{background-color:#212C30}table.dataTable.display tbody tr.odd>.sorting_2,table.dataTable.order-column.stripe tbody tr.odd>.sorting_2{background-color:#1b2326}table.dataTable.display tbody tr.odd>.sorting_3,table.dataTable.order-column.stripe tbody tr.odd>.sorting_3{background-color:#101517}table.dataTable.display tbody tr.odd.selected>.sorting_1,table.dataTable.order-column.stripe tbody tr.odd.selected>.sorting_1{background-color:#171e20}table.dataTable.display tbody tr.odd.selected>.sorting_2,table.dataTable.order-column.stripe tbody tr.odd.selected>.sorting_2{background-color:#a8b5cf}table.dataTable.display tbody tr.odd.selected>.sorting_3,table.dataTable.order-column.stripe tbody tr.odd.selected>.sorting_3{background-color:#a9b7d1}table.dataTable.display tbody tr.even>.sorting_1,table.dataTable.order-column.stripe tbody tr.even>.sorting_1{background-color:#212C30}table.dataTable.display tbody tr.even>.sorting_2,table.dataTable.order-column.stripe tbody tr.even>.sorting_2{background-color:#1b2326}table.dataTable.display tbody tr.even>.sorting_3,table.dataTable.order-column.stripe tbody tr.even>.sorting_3{background-color:#101517}table.dataTable.display tbody tr.even.selected>.sorting_1,table.dataTable.order-column.stripe tbody tr.even.selected>.sorting_1{background-color:#171e20}table.dataTable.display tbody tr.even.selected>.sorting_2,table.dataTable.order-column.stripe tbody tr.even.selected>.sorting_2{background-color:#aebcd6}table.dataTable.display tbody tr.even.selected>.sorting_3,table.dataTable.order-column.stripe tbody tr.even.selected>.sorting_3{background-color:#afbdd8}table.dataTable.display tbody tr:hover>.sorting_1,table.dataTable.order-column.hover tbody tr:hover>.sorting_1{background-color:rgba(2,1,0,0.2)}table.dataTable.display tbody tr:hover>.sorting_2,table.dataTable.order-column.hover tbody tr:hover>.sorting_2{background-color:rgba(0,0,0,0.2)}table.dataTable.display tbody tr:hover>.sorting_3,table.dataTable.order-column.hover tbody tr:hover>.sorting_3{background-color:rgba(0,0,0,0.2)}table.dataTable.display tbody tr:hover.selected>.sorting_1,table.dataTable.order-column.hover tbody tr:hover.selected>.sorting_1{background-color:#885308}table.dataTable.display tbody tr:hover.selected>.sorting_2,table.dataTable.order-column.hover tbody tr:hover.selected>.sorting_2{background-color:#a3b0c9}table.dataTable.display tbody tr:hover.selected>.sorting_3,table.dataTable.order-column.hover tbody tr:hover.selected>.sorting_3{background-color:#a5b2cb}table.dataTable.no-footer{border-bottom:1px solid #3c3f41}table.dataTable.nowrap th,table.dataTable.nowrap td{white-space:nowrap}table.dataTable.compact thead th,table.dataTable.compact thead td{padding:4px 4px 4px 4px}table.dataTable.compact tfoot th,table.dataTable.compact tfoot td{padding:4px}table.dataTable.compact tbody th,table.dataTable.compact tbody td{padding:4px}table.dataTable th.dt-left,table.dataTable td.dt-left{text-align:left}table.dataTable th.dt-center,table.dataTable td.dt-center,table.dataTable td.dataTables_empty{text-align:center}table.dataTable th.dt-right,table.dataTable td.dt-right{text-align:right}table.dataTable th.dt-justify,table.dataTable td.dt-justify{text-align:justify}table.dataTable th.dt-nowrap,table.dataTable td.dt-nowrap{white-space:nowrap}table.dataTable thead th.dt-head-left,table.dataTable thead td.dt-head-left,table.dataTable tfoot th.dt-head-left,table.dataTable tfoot td.dt-head-left{text-align:left}table.dataTable thead th.dt-head-center,table.dataTable thead td.dt-head-center,table.dataTable tfoot th.dt-head-center,table.dataTable tfoot td.dt-head-center{text-align:center}table.dataTable thead th.dt-head-right,table.dataTable thead td.dt-head-right,table.dataTable tfoot th.dt-head-right,table.dataTable tfoot td.dt-head-right{text-align:right}table.dataTable thead th.dt-head-justify,table.dataTable thead td.dt-head-justify,table.dataTable tfoot th.dt-head-justify,table.dataTable tfoot td.dt-head-justify{text-align:justify}table.dataTable thead th.dt-head-nowrap,table.dataTable thead td.dt-head-nowrap,table.dataTable tfoot th.dt-head-nowrap,table.dataTable tfoot td.dt-head-nowrap{white-space:nowrap}table.dataTable tbody th.dt-body-left,table.dataTable tbody td.dt-body-left{text-align:left}table.dataTable tbody th.dt-body-center,table.dataTable tbody td.dt-body-center{text-align:center}table.dataTable tbody th.dt-body-right,table.dataTable tbody td.dt-body-right{text-align:right}table.dataTable tbody th.dt-body-justify,table.dataTable tbody td.dt-body-justify{text-align:justify}table.dataTable tbody th.dt-body-nowrap,table.dataTable tbody td.dt-body-nowrap{white-space:nowrap}table.dataTable,table.dataTable th,table.dataTable td{box-sizing:content-box}.dataTables_wrapper{position:relative;clear:both;*zoom:1;zoom:1}.dataTables_wrapper .dataTables_length{float:left}.dataTables_wrapper .dataTables_filter{float:right;text-align:right}.dataTables_wrapper .dataTables_filter input{margin-left:0.5em}.dataTables_wrapper .dataTables_info{clear:both;float:left;padding-top:0.9em}.dataTables_wrapper .dataTables_paginate{float:right;text-align:right;padding-top:0.5em}.dataTables_wrapper .dataTables_paginate .paginate_button{box-sizing:border-box;display:inline-block;min-width:1.5em;padding:0.3em 0.8em;margin-left:2px;text-align:center;text-decoration:none !important;cursor:pointer;*cursor:hand;color:#6f7477 !important;border:1px solid transparent;border-radius:2px}.dataTables_wrapper .dataTables_paginate .paginate_button.current,.dataTables_wrapper .dataTables_paginate .paginate_button.current:hover{color:#adadad !important;border:1px solid transparent;background-color:#313335;background:-webkit-gradient(linear, left top, left bottom, color-stop(0%, #313335), color-stop(100%, #2b2b2b));background:-webkit-linear-gradient(top, #313335 0%, #2b2b2b 100%);background:-moz-linear-gradient(top, #313335 0%, #2b2b2b 100%);background:-ms-linear-gradient(top, #313335 0%, #2b2b2b 100%);background:-o-linear-gradient(top, #313335 0%, #2b2b2b 100%);background:linear-gradient(to bottom, #313335 0%,#2b2b2b 100%)}.dataTables_wrapper .dataTables_paginate .paginate_button.disabled,.dataTables_wrapper .dataTables_paginate .paginate_button.disabled:hover,.dataTables_wrapper .dataTables_paginate .paginate_button.disabled:active{cursor:default;color:#4f5355 !important;border:1px solid transparent;background:transparent;box-shadow:none;pointer-events:all;cursor:not-allowed}.dataTables_wrapper .dataTables_paginate .paginate_button:hover{color:#313335 !important;border:1px solid transparent;background-color:#c2760c;background:-webkit-gradient(linear, left top, left bottom, color-stop(0%, #c2760c), color-stop(100%, #c2760c));background:-webkit-linear-gradient(top, #c2760c 0%, #c2760c 100%);background:-moz-linear-gradient(top, #c2760c 0%, #c2760c 100%);background:-ms-linear-gradient(top, #c2760c 0%, #c2760c 100%);background:-o-linear-gradient(top, #c2760c 0%, #c2760c 100%);background:linear-gradient(to bottom, #c2760c 0%,#c2760c 100%)}.dataTables_wrapper .dataTables_paginate .paginate_button:active{outline:none;background-color:#c2760c;background:-webkit-gradient(linear, left top, left bottom, color-stop(0%, #c2760c), color-stop(100%, #c2760c));background:-webkit-linear-gradient(top, #c2760c 0%, #c2760c 100%);background:-moz-linear-gradient(top, #c2760c 0%, #c2760c 100%);background:-ms-linear-gradient(top, #c2760c 0%, #c2760c 100%);background:-o-linear-gradient(top, #c2760c 0%, #c2760c 100%);background:linear-gradient(to bottom, #c2760c 0%,#c2760c 100%);box-shadow:inset 0 0 3px #111}.dataTables_wrapper .dataTables_paginate .ellipsis{padding:0 1em}.dataTables_wrapper .dataTables_processing{position:absolute;top:50%;left:50%;width:100%;height:40px;margin-left:-50%;margin-top:-25px;padding-top:20px;text-align:center;font-size:1.2em;background-color:white;background:-webkit-gradient(linear, left top, right top, color-stop(0%, rgba(255,255,255,0)), color-stop(25%, rgba(255,255,255,0.9)), color-stop(75%, rgba(255,255,255,0.9)), color-stop(100%, rgba(255,255,255,0)));background:-webkit-linear-gradient(left, rgba(255,255,255,0) 0%, rgba(255,255,255,0.9) 25%, rgba(255,255,255,0.9) 75%, rgba(255,255,255,0) 100%);background:-moz-linear-gradient(left, rgba(255,255,255,0) 0%, rgba(255,255,255,0.9) 25%, rgba(255,255,255,0.9) 75%, rgba(255,255,255,0) 100%);background:-ms-linear-gradient(left, rgba(255,255,255,0) 0%, rgba(255,255,255,0.9) 25%, rgba(255,255,255,0.9) 75%, rgba(255,255,255,0) 100%);background:-o-linear-gradient(left, rgba(255,255,255,0) 0%, rgba(255,255,255,0.9) 25%, rgba(255,255,255,0.9) 75%, rgba(255,255,255,0) 100%);background:linear-gradient(to right, rgba(255,255,255,0) 0%,rgba(255,255,255,0.9) 25%,rgba(255,255,255,0.9) 75%,rgba(255,255,255,0) 100%)}.dataTables_wrapper .dataTables_length,.dataTables_wrapper .dataTables_filter,.dataTables_wrapper .dataTables_info,.dataTables_wrapper .dataTables_processing,.dataTables_wrapper .dataTables_paginate{color:#63676a}.dataTables_wrapper .dataTables_scroll{clear:both}.dataTables_wrapper .dataTables_scroll div.dataTables_scrollBody{*margin-top:-1px;-webkit-overflow-scrolling:touch}.dataTables_wrapper .dataTables_scroll div.dataTables_scrollBody>table>thead>tr>th,.dataTables_wrapper .dataTables_scroll div.dataTables_scrollBody>table>thead>tr>td,.dataTables_wrapper .dataTables_scroll div.dataTables_scrollBody>table>tbody>tr>th,.dataTables_wrapper .dataTables_scroll div.dataTables_scrollBody>table>tbody>tr>td{vertical-align:middle}.dataTables_wrapper .dataTables_scroll div.dataTables_scrollBody>table>thead>tr>th>div.dataTables_sizing,.dataTables_wrapper .dataTables_scroll div.dataTables_scrollBody>table>thead>tr>td>div.dataTables_sizing,.dataTables_wrapper .dataTables_scroll div.dataTables_scrollBody>table>tbody>tr>th>div.dataTables_sizing,.dataTables_wrapper .dataTables_scroll div.dataTables_scrollBody>table>tbody>tr>td>div.dataTables_sizing{height:0;overflow:hidden;margin:0 !important;padding:0 !important}.dataTables_wrapper.no-footer .dataTables_scrollBody{border-bottom:1px solid #111}.dataTables_wrapper.no-footer div.dataTables_scrollHead table.dataTable,.dataTables_wrapper.no-footer div.dataTables_scrollBody>table{border-bottom:none}.dataTables_wrapper:after{visibility:hidden;display:block;content:"";clear:both;height:0}@media screen and (max-width: 767px){.dataTables_wrapper .dataTables_info,.dataTables_wrapper .dataTables_paginate{float:none}}@media screen and (max-width: 640px){.dataTables_wrapper .dataTables_length,.dataTables_wrapper .dataTables_filter{float:none;text-align:center}.dataTables_wrapper .dataTables_filter{margin-top:0.5em}}@keyframes dtb-spinner{100%{transform:rotate(360deg)}}@-o-keyframes dtb-spinner{100%{-o-transform:rotate(360deg);transform:rotate(360deg)}}@-ms-keyframes dtb-spinner{100%{-ms-transform:rotate(360deg);transform:rotate(360deg)}}@-webkit-keyframes dtb-spinner{100%{-webkit-transform:rotate(360deg);transform:rotate(360deg)}}@-moz-keyframes dtb-spinner{100%{-moz-transform:rotate(360deg);transform:rotate(360deg)}}div.dt-button-info{position:fixed;top:50%;left:50%;width:400px;margin-top:-100px;margin-left:-200px;background-color:white;border:2px solid #111;box-shadow:3px 3px 8px rgba(0,0,0,0.3);border-radius:3px;text-align:center;z-index:21}div.dt-button-info h2{padding:0.5em;margin:0;font-weight:normal;border-bottom:1px solid #ddd;background-color:#f3f3f3}div.dt-button-info>div{padding:1em}div.dt-button-collection-title{text-align:center;padding:0.3em 0 0.5em;font-size:0.9em}div.dt-button-collection-title:empty{display:none}button.dt-button,div.dt-button,a.dt-button{position:relative;display:inline-block;box-sizing:border-box;margin-right:0.333em;margin-bottom:0.333em;padding:0.5em 1em;cursor:pointer;font-size:0.88em;line-height:1.6em;white-space:nowrap;overflow:hidden;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;text-decoration:none;outline:none}.dt-button embed{outline:none}div.dt-buttons{position:relative;float:left}div.dt-buttons.buttons-right{float:right}div.dt-button-collection{position:absolute;top:0;left:0;width:150px;margin-top:3px;padding:8px 8px 4px 8px;border:1px solid #ccc;border:1px solid rgba(0,0,0,0.4);background-color:white;overflow:hidden;z-index:2002;border-radius:5px;box-shadow:3px 3px 5px rgba(0,0,0,0.3);-webkit-column-gap:8px;-moz-column-gap:8px;-ms-column-gap:8px;-o-column-gap:8px;column-gap:8px}div.dt-button-collection button.dt-button,div.dt-button-collection div.dt-button,div.dt-button-collection a.dt-button{position:relative;left:0;right:0;width:100%;display:block;float:none;margin-bottom:4px;margin-right:0}div.dt-button-collection button.dt-button:active:not(.disabled),div.dt-button-collection button.dt-button.active:not(.disabled),div.dt-button-collection div.dt-button:active:not(.disabled),div.dt-button-collection div.dt-button.active:not(.disabled),div.dt-button-collection a.dt-button:active:not(.disabled),div.dt-button-collection a.dt-button.active:not(.disabled){background-color:#dadada;background-image:-webkit-linear-gradient(top, #f0f0f0 0%, #dadada 100%);background-image:-moz-linear-gradient(top, #f0f0f0 0%, #dadada 100%);background-image:-ms-linear-gradient(top, #f0f0f0 0%, #dadada 100%);background-image:-o-linear-gradient(top, #f0f0f0 0%, #dadada 100%);background-image:linear-gradient(to bottom, #f0f0f0 0%,#dadada 100%);filter:progid:DXImageTransform.Microsoft.gradient(GradientType=0,StartColorStr='#f0f0f0', EndColorStr='#dadada');box-shadow:inset 1px 1px 3px #666}div.dt-button-collection.fixed{position:fixed;top:50%;left:50%;margin-left:-75px;border-radius:0}div.dt-button-collection.fixed.two-column{margin-left:-150px}div.dt-button-collection.fixed.three-column{margin-left:-225px}div.dt-button-collection.fixed.four-column{margin-left:-300px}div.dt-button-collection>*{-webkit-column-break-inside:avoid;break-inside:avoid}div.dt-button-collection.two-column{width:300px;padding-bottom:1px;-webkit-column-count:2;-moz-column-count:2;-ms-column-count:2;-o-column-count:2;column-count:2}div.dt-button-collection.three-column{width:450px;padding-bottom:1px;-webkit-column-count:3;-moz-column-count:3;-ms-column-count:3;-o-column-count:3;column-count:3}div.dt-button-collection.four-column{width:600px;padding-bottom:1px;-webkit-column-count:4;-moz-column-count:4;-ms-column-count:4;-o-column-count:4;column-count:4}div.dt-button-collection .dt-button{border-radius:0}div.dt-button-background{position:fixed;top:0;left:0;width:100%;height:100%;background:rgba(0,0,0,0.7);background:-ms-radial-gradient(center, ellipse farthest-corner, rgba(0,0,0,0.3) 0%, rgba(0,0,0,0.7) 100%);background:-moz-radial-gradient(center, ellipse farthest-corner, rgba(0,0,0,0.3) 0%, rgba(0,0,0,0.7) 100%);background:-o-radial-gradient(center, ellipse farthest-corner, rgba(0,0,0,0.3) 0%, rgba(0,0,0,0.7) 100%);background:-webkit-gradient(radial, center center, 0, center center, 497, color-stop(0, rgba(0,0,0,0.3)), color-stop(1, rgba(0,0,0,0.7)));background:-webkit-radial-gradient(center, ellipse farthest-corner, rgba(0,0,0,0.3) 0%, rgba(0,0,0,0.7) 100%);background:radial-gradient(ellipse farthest-corner at center, rgba(0,0,0,0.3) 0%,rgba(0,0,0,0.7) 100%);z-index:2001}@media screen and (max-width: 640px){div.dt-buttons{float:none !important;text-align:center}}button.dt-button.processing,div.dt-button.processing,a.dt-button.processing{color:rgba(0,0,0,0.2)}button.dt-button.processing:after,div.dt-button.processing:after,a.dt-button.processing:after{position:absolute;top:50%;left:50%;width:16px;height:16px;margin:-8px 0 0 -8px;box-sizing:border-box;display:block;content:' ';border:2px solid #282828;border-radius:50%;border-left-color:transparent;border-right-color:transparent;animation:dtb-spinner 1500ms infinite linear;-o-animation:dtb-spinner 1500ms infinite linear;-ms-animation:dtb-spinner 1500ms infinite linear;-webkit-animation:dtb-spinner 1500ms infinite linear;-moz-animation:dtb-spinner 1500ms infinite linear}table.dataTable.dtr-inline.collapsed>tbody>tr>td.child,table.dataTable.dtr-inline.collapsed>tbody>tr>th.child,table.dataTable.dtr-inline.collapsed>tbody>tr>td.dataTables_empty{cursor:default !important}table.dataTable.dtr-inline.collapsed>tbody>tr>td.child:before,table.dataTable.dtr-inline.collapsed>tbody>tr>th.child:before,table.dataTable.dtr-inline.collapsed>tbody>tr>td.dataTables_empty:before{display:none !important}table.dataTable.dtr-inline.collapsed>tbody>tr[role="row"]>td:first-child,table.dataTable.dtr-inline.collapsed>tbody>tr[role="row"]>th:first-child{position:relative;padding-left:30px;cursor:pointer}table.dataTable.dtr-inline.collapsed>tbody>tr[role="row"]>td:first-child:before,table.dataTable.dtr-inline.collapsed>tbody>tr[role="row"]>th:first-child:before{top:9px;left:4px;height:14px;width:14px;display:block;position:absolute;color:#fff;border:2px solid white;border-radius:14px;box-shadow:0 0 3px #444;box-sizing:content-box;text-align:center;text-indent:0 !important;font-family:'Courier New', Courier, monospace;line-height:14px;content:'+';background-color:#31b131}table.dataTable.dtr-inline.collapsed>tbody>tr.parent>td:first-child:before,table.dataTable.dtr-inline.collapsed>tbody>tr.parent>th:first-child:before{content:'-';background-color:#d33333}table.dataTable.dtr-inline.collapsed.compact>tbody>tr>td:first-child,table.dataTable.dtr-inline.collapsed.compact>tbody>tr>th:first-child{padding-left:27px}table.dataTable.dtr-inline.collapsed.compact>tbody>tr>td:first-child:before,table.dataTable.dtr-inline.collapsed.compact>tbody>tr>th:first-child:before{top:5px;left:4px;height:14px;width:14px;border-radius:14px;line-height:14px;text-indent:3px}table.dataTable.dtr-column>tbody>tr>td.control,table.dataTable.dtr-column>tbody>tr>th.control{position:relative;cursor:pointer}table.dataTable.dtr-column>tbody>tr>td.control:before,table.dataTable.dtr-column>tbody>tr>th.control:before{top:50%;left:50%;height:16px;width:16px;margin-top:-10px;margin-left:-10px;display:block;position:absolute;color:#fff;border:2px solid white;border-radius:14px;box-shadow:0 0 3px #444;box-sizing:content-box;text-align:center;text-indent:0 !important;font-family:'Courier New', Courier, monospace;line-height:14px;content:'+';background-color:#31b131}table.dataTable.dtr-column>tbody>tr.parent td.control:before,table.dataTable.dtr-column>tbody>tr.parent th.control:before{content:'-';background-color:#d33333}table.dataTable>tbody>tr.child{padding:0.5em 1em}table.dataTable>tbody>tr.child:hover{background:transparent !important}table.dataTable>tbody>tr.child ul.dtr-details{display:inline-block;list-style-type:none;margin:0;padding:0}table.dataTable>tbody>tr.child ul.dtr-details>li{border-bottom:1px solid #efefef;padding:0.5em 0}table.dataTable>tbody>tr.child ul.dtr-details>li:first-child{padding-top:0}table.dataTable>tbody>tr.child ul.dtr-details>li:last-child{border-bottom:none}table.dataTable>tbody>tr.child span.dtr-title{display:inline-block;min-width:75px;font-weight:bold}div.dtr-modal{position:fixed;box-sizing:border-box;top:0;left:0;height:100%;width:100%;z-index:100;padding:10em 1em}div.dtr-modal div.dtr-modal-display{position:absolute;top:0;left:0;bottom:0;right:0;width:50%;height:50%;overflow:auto;margin:auto;z-index:102;overflow:auto;background-color:#f5f5f7;border:1px solid black;border-radius:0.5em;box-shadow:0 12px 30px rgba(0,0,0,0.6)}div.dtr-modal div.dtr-modal-content{position:relative;padding:1em}div.dtr-modal div.dtr-modal-close{position:absolute;top:6px;right:6px;width:22px;height:22px;border:1px solid #eaeaea;background-color:#f9f9f9;text-align:center;border-radius:3px;cursor:pointer;z-index:12}div.dtr-modal div.dtr-modal-close:hover{background-color:#eaeaea}div.dtr-modal div.dtr-modal-background{position:fixed;top:0;left:0;right:0;bottom:0;z-index:101;background:rgba(0,0,0,0.6)}@media screen and (max-width: 767px){div.dtr-modal div.dtr-modal-display{width:95%}}table.dataTable tbody>tr.selected,table.dataTable tbody>tr>.selected{background-color:#1b2326}table.dataTable.stripe tbody>tr.odd.selected,table.dataTable.stripe tbody>tr.odd>.selected,table.dataTable.display tbody>tr.odd.selected,table.dataTable.display tbody>tr.odd>.selected{background-color:#182022}table.dataTable.hover tbody>tr.selected:hover,table.dataTable.hover tbody>tr>.selected:hover,table.dataTable.display tbody>tr.selected:hover,table.dataTable.display tbody>tr>.selected:hover{background-color:#1a2225}table.dataTable.order-column tbody>tr.selected>.sorting_1,table.dataTable.order-column tbody>tr.selected>.sorting_2,table.dataTable.order-column tbody>tr.selected>.sorting_3,table.dataTable.order-column tbody>tr>.selected,table.dataTable.display tbody>tr.selected>.sorting_1,table.dataTable.display tbody>tr.selected>.sorting_2,table.dataTable.display tbody>tr.selected>.sorting_3,table.dataTable.display tbody>tr>.selected{background-color:#1a2225}table.dataTable.display tbody>tr.odd.selected>.sorting_1,table.dataTable.order-column.stripe tbody>tr.odd.selected>.sorting_1{background-color:#1a2124}table.dataTable.display tbody>tr.odd.selected>.sorting_2,table.dataTable.order-column.stripe tbody>tr.odd.selected>.sorting_2{background-color:#1a2124}table.dataTable.display tbody>tr.odd.selected>.sorting_3,table.dataTable.order-column.stripe tbody>tr.odd.selected>.sorting_3{background-color:#1a2225}table.dataTable.display tbody>tr.even.selected>.sorting_1,table.dataTable.order-column.stripe tbody>tr.even.selected>.sorting_1{background-color:#171e20}table.dataTable.display tbody>tr.even.selected>.sorting_2,table.dataTable.order-column.stripe tbody>tr.even.selected>.sorting_2{background-color:#1b2326}table.dataTable.display tbody>tr.even.selected>.sorting_3,table.dataTable.order-column.stripe tbody>tr.even.selected>.sorting_3{background-color:#1b2326}table.dataTable.display tbody>tr.odd>.selected,table.dataTable.order-column.stripe tbody>tr.odd>.selected{background-color:#1a2124}table.dataTable.display tbody>tr.even>.selected,table.dataTable.order-column.stripe tbody>tr.even>.selected{background-color:#1a2225}table.dataTable.display tbody>tr.selected:hover>.sorting_1,table.dataTable.order-column.hover tbody>tr.selected:hover>.sorting_1{background-color:#192023}table.dataTable.display tbody>tr.selected:hover>.sorting_2,table.dataTable.order-column.hover tbody>tr.selected:hover>.sorting_2{background-color:#192023}table.dataTable.display tbody>tr.selected:hover>.sorting_3,table.dataTable.order-column.hover tbody>tr.selected:hover>.sorting_3{background-color:#192124}table.dataTable.display tbody>tr:hover>.selected,table.dataTable.display tbody>tr>.selected:hover,table.dataTable.order-column.hover tbody>tr:hover>.selected,table.dataTable.order-column.hover tbody>tr>.selected:hover{background-color:#192023}table.dataTable tbody td.select-checkbox,table.dataTable tbody th.select-checkbox{position:relative}table.dataTable tbody td.select-checkbox:before,table.dataTable tbody td.select-checkbox:after,table.dataTable tbody th.select-checkbox:before,table.dataTable tbody th.select-checkbox:after{display:block;position:absolute;top:1.2em;left:50%;width:12px;height:12px;box-sizing:border-box}table.dataTable tbody td.select-checkbox:before,table.dataTable tbody th.select-checkbox:before{content:' ';margin-top:-6px;margin-left:-6px;border:1px solid black;border-radius:3px}table.dataTable tr.selected td.select-checkbox:after,table.dataTable tr.selected th.select-checkbox:after{content:'\2714';margin-top:-11px;margin-left:-4px;text-align:center;text-shadow:1px 1px #B0BED9, -1px -1px #B0BED9, 1px -1px #B0BED9, -1px 1px #B0BED9}div.dataTables_wrapper span.select-info,div.dataTables_wrapper span.select-item{margin-left:0.5em}@media screen and (max-width: 640px){div.dataTables_wrapper span.select-info,div.dataTables_wrapper span.select-item{margin-left:0;display:block}}table.dataTable tr.dtrg-group{background-color:rgba(43,43,43,0.4)}table.dataTable tr.dtrg-group.dtrg-level-0 td{font-weight:bold}table.dataTable tr.dtrg-group.dtrg-level-1 td,table.dataTable tr.dtrg-group.dtrg-level-2 td{background-color:#f0f0f0;padding-top:0.25em;padding-bottom:0.25em;padding-left:2em;font-size:0.9em}table.dataTable tr.dtrg-group.dtrg-level-2 td{background-color:#f3f3f3}/*! * DataTables + Font Awesome integration * License: MIT - http://datatables.net/license */table.dataTable thead th{position:relative;background-image:none !important}table.dataTable thead th.sorting:after,table.dataTable thead th.sorting_asc:after,table.dataTable thead th.sorting_desc:after{position:absolute;top:12px;right:5px;display:block;font-family:'Font Awesome 5 Free';margin-top:-8px}table.dataTable thead th.sorting:after{content:"\f0dc";font-size:0.8em;margin-top:-8px}table.dataTable thead th.sorting_asc:after{content:"\f0de";color:#5cb85c}table.dataTable thead th.sorting_desc:after{content:"\f0dd";color:#5cb85c}div.dataTables_scrollBody table.dataTable thead th.sorting:after,div.dataTables_scrollBody table.dataTable thead th.sorting_asc:after,div.dataTables_scrollBody table.dataTable thead th.sorting_desc:after{content:""}div.dataTables_paginate a.paginate_button.first,div.dataTables_paginate a.paginate_button.previous{position:relative;padding-left:24px}div.dataTables_paginate a.paginate_button.next,div.dataTables_paginate a.paginate_button.last{position:relative;padding-right:24px}div.dataTables_paginate a.first:before,div.dataTables_paginate a.previous:before{position:absolute;top:4px;left:10px;display:block;font-weight:bold;font-family:'Font Awesome 5 Free'}div.dataTables_paginate a.next:after,div.dataTables_paginate a.last:after{position:absolute;top:4px;right:10px;display:block;font-weight:bold;font-family:'Font Awesome 5 Free'}div.dataTables_paginate a.first:before{content:"\f100"}div.dataTables_paginate a.previous:before{content:"\f104"}div.dataTables_paginate a.next:after{content:"\f105"}div.dataTables_paginate a.last:after{content:"\f101"}/*! X-editable - v1.5.0 @@ -49,11 +49,11 @@ * Author url: http://www.adchsm.com/ * License: MIT * License url: http://www.adchsm.com/slidebars/license/ - */html,body,[canvas=container],[off-canvas]{margin:0;padding:0;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}html,body{width:100%;height:100%}[canvas]{z-index:1}[canvas=container]{width:100%;min-height:100%;overflow-y:auto;position:relative;background-color:white;-webkit-overflow-scrolling:touch}[canvas=container]:before,[canvas=container]:after{clear:both;content:'';display:table}[off-canvas]{display:none;position:fixed;overflow:hidden;overflow-y:auto;background-color:black;color:white;-webkit-overflow-scrolling:touch}[off-canvas*=top]{width:100%;height:255px;top:0}[off-canvas*=right]{width:255px;height:100%;top:0;right:0}[off-canvas*=bottom]{width:100%;height:255px;bottom:0}[off-canvas*=left]{width:255px;height:100%;top:0;left:0}[off-canvas*=reveal]{z-index:0}[off-canvas*=push]{z-index:1}[off-canvas*=overlay]{z-index:9999}[off-canvas*=shift]{z-index:0}[canvas],[off-canvas]{-webkit-transform:translate(0px, 0px);-ms-transform:translate(0px, 0px);transform:translate(0px, 0px);-webkit-transition:-webkit-transform 300ms;transition:transform 300ms ease-in-out;-webkit-backface-visibility:hidden}[off-canvas*=shift][off-canvas*=top]{-webkit-transform:translate(0px, 50%);transform:translate(0px, 50%)}[off-canvas*=shift][off-canvas*=right]{-webkit-transform:translate(-50%, 0px);transform:translate(-50%, 0px)}[off-canvas*=shift][off-canvas*=bottom]{-webkit-transform:translate(0px, -50%);transform:translate(0px, -50%)}[off-canvas*=shift][off-canvas*=left]{-webkit-transform:translate(50%, 0px);transform:translate(50%, 0px)}@media print{[canvas]{-webkit-transform:translate(0px, 0px) !important;-ms-transform:translate(0px, 0px) !important;transform:translate(0px, 0px) !important}[off-canvas]{display:none !important}}.pf-pie-chart{position:relative !important;display:table-cell;text-align:center;vertical-align:middle}.pf-pie-chart span{display:inline-block}.pf-pie-chart canvas{position:absolute;top:0;left:0}.pf-pie-chart-map-timer{width:36px;height:36px;margin:3px}.pf-pie-chart-map-timer canvas{top:3px;left:3px}.pf-pie-chart-map-timer span{font-size:10px}.pf-pie-chart-map-timer span:after{content:'s';margin-left:1px}.select2-container{box-sizing:border-box;display:inline-block;margin:0;position:relative;vertical-align:middle}.select2-container .select2-selection--single{box-sizing:border-box;cursor:pointer;display:block;height:28px;user-select:none;-webkit-user-select:none}.select2-container .select2-selection--single .select2-selection__rendered{display:block;padding-left:8px;padding-right:20px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.select2-container[dir="rtl"] .select2-selection--single .select2-selection__rendered{padding-right:8px;padding-left:20px}.select2-container .select2-selection--multiple{box-sizing:border-box;cursor:pointer;display:block;min-height:32px;user-select:none;-webkit-user-select:none}.select2-container .select2-selection--multiple .select2-selection__rendered{display:inline-block;overflow:hidden;padding-left:8px;text-overflow:ellipsis;white-space:nowrap}.select2-container .select2-search--inline{float:left}.select2-container .select2-search--inline .select2-search__field{box-sizing:border-box;border:none;font-size:100%;margin-top:5px}.select2-container .select2-search--inline .select2-search__field::-webkit-search-cancel-button{-webkit-appearance:none}.select2-dropdown{background-color:white;border:1px solid #aaa;border-radius:4px;box-sizing:border-box;display:block;position:absolute;left:-100000px;width:100%;z-index:1080}.select2-results{display:block}.select2-results__options{list-style:none;margin:0;padding:0}.select2-results__option{padding:6px;color:#adadad;user-select:none;-webkit-user-select:none}.select2-results__option[aria-selected]{cursor:pointer}.select2-container--open .select2-dropdown{left:0}.select2-container--open .select2-dropdown--above{border-bottom:none;border-bottom-left-radius:0;border-bottom-right-radius:0}.select2-container--open .select2-dropdown--below{border-top:none;border-top-left-radius:0;border-top-right-radius:0}.select2-search--dropdown{display:block;padding:4px}.select2-search--dropdown .select2-search__field{padding:4px;width:100%;box-sizing:border-box}.select2-search--dropdown .select2-search__field::-webkit-search-cancel-button{-webkit-appearance:none}.select2-search--dropdown.select2-search--hide{display:none}.select2-close-mask{border:0;margin:0;padding:0;display:block;position:fixed;left:0;top:0;min-height:100%;min-width:100%;height:auto;width:auto;opacity:0;z-index:99;background-color:#fff;filter:alpha(opacity=0)}.select2-hidden-accessible{border:0;clip:rect(0 0 0 0);height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;width:1px;pointer-events:none}.select2-container--pathfinder .select2-selection--single{background-color:#313335;border:1px solid #63676a;border-radius:0px;outline:0;height:32px;padding:6px 16px}.select2-container--pathfinder .select2-selection--single:focus{border:1px solid #568a89}.select2-container--pathfinder .select2-selection--single .select2-selection__rendered{font-family:'Oxygen Bold';color:#adadad;line-height:1.5;padding:0 10px 0 0}.select2-container--pathfinder .select2-selection--single .select2-selection__rendered div[class^='col-']:first-child{padding-left:0}.select2-container--pathfinder .select2-selection--single .select2-selection__clear{color:#a52521;cursor:pointer;float:right;font-weight:bold;margin-right:3px;margin-left:10px}.select2-container--pathfinder .select2-selection--single .select2-selection__clear:hover{color:#58100d}.select2-container--pathfinder .select2-selection--single .select2-selection__placeholder{color:#63676a}.select2-container--pathfinder .select2-selection--single .select2-selection__arrow{background-color:#313335;border:none;border-left:none;border-top-right-radius:0px;border-bottom-right-radius:0px;height:30px;position:absolute;top:1px;right:1px;width:20px}.select2-container--pathfinder .select2-selection--single .select2-selection__arrow b{border-color:#888 transparent transparent transparent;border-style:solid;border-width:5px 4px 0 4px;height:0;left:50%;margin-left:-4px;margin-top:-2px;position:absolute;top:50%;width:0}.select2-container--pathfinder[dir="rtl"] .select2-selection--single .select2-selection__clear{float:left}.select2-container--pathfinder[dir="rtl"] .select2-selection--single .select2-selection__arrow{border:none;border-right:1px solid #63676a;border-radius:0;border-top-left-radius:0px;border-bottom-left-radius:0px;left:1px;right:auto}.select2-container--pathfinder.select2-container--open .select2-selection--single{border:1px solid #568a89}.select2-container--pathfinder.select2-container--open .select2-selection--single .select2-selection__arrow{background:transparent;border:none}.select2-container--pathfinder.select2-container--open .select2-selection--single .select2-selection__arrow b{border-color:transparent transparent #888 transparent;border-width:0 4px 5px 4px}.select2-container--pathfinder.select2-container--open.select2-container--above .select2-selection--single{border-top:none;border-top-left-radius:0;border-top-right-radius:0}.select2-container--pathfinder.select2-container--open.select2-container--below .select2-selection--single{border-bottom:none;border-bottom-left-radius:0;border-bottom-right-radius:0}.select2-container--pathfinder .select2-selection--multiple{background-color:#313335;color:#313335;border:1px solid #63676a;border-radius:0px;cursor:text;outline:0}.select2-container--pathfinder .select2-selection--multiple:focus{border:1px solid #568a89}.select2-container--pathfinder .select2-selection--multiple .select2-selection__rendered{list-style:none;margin:0;padding:0 5px;width:100%}.select2-container--pathfinder .select2-selection--multiple .select2-selection__clear{display:none}.select2-container--pathfinder .select2-selection--multiple .select2-selection__choice{background-color:#adadad;border:1px solid #63676a;border-radius:2px;cursor:default;float:left;margin-right:5px;margin-top:5px;padding:0 5px}.select2-container--pathfinder .select2-selection--multiple .select2-selection__choice__remove{color:#a52521;cursor:pointer;display:inline-block;font-weight:bold;margin-right:4px}.select2-container--pathfinder .select2-selection--multiple .select2-selection__choice__remove:hover{color:#58100d}.select2-container--pathfinder .select2-selection--multiple .select2-selection__placeholder{color:#63676a}.select2-container--pathfinder[dir="rtl"] .select2-selection--multiple .select2-selection__choice{float:right}.select2-container--pathfinder[dir="rtl"] .select2-selection--multiple .select2-selection__choice{margin-left:5px;margin-right:auto}.select2-container--pathfinder[dir="rtl"] .select2-selection--multiple .select2-selection__choice__remove{margin-left:2px;margin-right:auto}.select2-container--pathfinder.select2-container--open .select2-selection--multiple{border:1px solid #568a89}.select2-container--pathfinder.select2-container--open.select2-container--above .select2-selection--multiple{border-top:none;border-top-left-radius:0;border-top-right-radius:0}.select2-container--pathfinder.select2-container--open.select2-container--below .select2-selection--multiple{border-bottom:none;border-bottom-left-radius:0;border-bottom-right-radius:0}.select2-container--pathfinder .select2-search--dropdown .select2-search__field{border:1px solid #63676a;outline:0}.select2-container--pathfinder .select2-search--inline .select2-search__field{outline:0}.select2-container--pathfinder .select2-search--inline .select2-search__field::-moz-placeholder{color:#63676a;opacity:1}.select2-container--pathfinder .select2-search--inline .select2-search__field:-ms-input-placeholder{color:#63676a}.select2-container--pathfinder .select2-search--inline .select2-search__field::-webkit-input-placeholder{color:#63676a}.select2-container--pathfinder .select2-dropdown{background-color:#313335;border:1px solid transparent;overflow:hidden;-webkit-box-shadow:0 6px 12px rgba(0,0,0,0.3);box-shadow:0 6px 12px rgba(0,0,0,0.3)}.select2-container--pathfinder .select2-dropdown img{image-rendering:-webkit-optimize-contrast;width:21px}.select2-container--pathfinder .select2-dropdown--above{border-bottom:none}.select2-container--pathfinder .select2-dropdown--below{border-top:none}.select2-container--pathfinder .select2-results{max-height:200px;overflow-y:auto}.select2-container--pathfinder .select2-results__option{padding:3px 6px;min-height:24px}.select2-container--pathfinder .select2-results__option[role=group]{padding:0}.select2-container--pathfinder .select2-results__option[aria-disabled=true],.select2-container--pathfinder .select2-results__option[aria-selected=true]{color:#63676a;background-color:#3c3f41}.select2-container--pathfinder .select2-results__option[aria-disabled=true] .pf-select-item-anchor,.select2-container--pathfinder .select2-results__option[aria-selected=true] .pf-select-item-anchor{padding-left:15px}.select2-container--pathfinder .select2-results__option[aria-disabled=true] .pf-select-item-anchor:before,.select2-container--pathfinder .select2-results__option[aria-selected=true] .pf-select-item-anchor:before{content:"\f05e";font-family:"Font Awesome 5 Free";font-weight:bold;font-size:9px;position:absolute;left:2px;top:0;color:#63676a}.select2-container--pathfinder .select2-results__option--highlighted[aria-selected]{background-color:#adadad;color:#313335}.select2-container--pathfinder .select2-results__group{cursor:default;display:block;padding:3px 6px;background-color:#3c3f41;text-transform:capitalize}.select2-container--pathfinder.select2-container--open .select2-dropdown{border-color:#568a89}.select2-container--pathfinder.select2-container--disabled .select2-selection{background-color:#3c3f41;cursor:not-allowed;border:1px solid #63676a}.select2-container--pathfinder.select2-container--disabled .select2-selection .select2-selection__arrow{background-color:#3c3f41}.select2-container--pathfinder.select2-container--disabled .select2-selection .select2-selection__clear{display:none}select.select2-hidden-accessible{-moz-appearance:none;-webkit-appearance:none}select[readonly].select2-hidden-accessible+.select2-container{pointer-events:none;touch-action:none}select[readonly].select2-hidden-accessible+.select2-container .select2-selection{background-color:#3c3f41}select[readonly].select2-hidden-accessible+.select2-container .select2-selection .select2-selection__arrow{background-color:#3c3f41}select[readonly].select2-hidden-accessible+.select2-container .select2-selection .select2-selection__clear{display:none}.blueimp-gallery,.blueimp-gallery>.slides>.slide>.slide-content{position:absolute;top:0;right:0;bottom:0;left:0;-moz-backface-visibility:hidden}.blueimp-gallery>.slides>.slide>.slide-content{margin:auto;width:auto;height:auto;max-width:100%;max-height:100%;opacity:1}.blueimp-gallery{position:fixed;z-index:999999;overflow:hidden;background:#000;background:rgba(0,0,0,0.3);opacity:0;display:none;direction:ltr;-ms-touch-action:none;touch-action:none}.blueimp-gallery-carousel{position:relative;z-index:auto;margin:1em auto;padding-bottom:56.25%;-webkit-box-shadow:0 4px 10px rgba(0,0,0,0.4);box-shadow:0 4px 10px rgba(0,0,0,0.4);-moz-border-radius:5px;-webkit-border-radius:5px;border-radius:5px;-ms-touch-action:pan-y;touch-action:pan-y}.blueimp-gallery-display{display:block;opacity:1}.blueimp-gallery>.slides{position:relative;height:100%;overflow:hidden}.blueimp-gallery-carousel>.slides{position:absolute}.blueimp-gallery>.slides>.slide{position:relative;float:left;height:100%;text-align:center;will-change:all;-webkit-transition-timing-function:cubic-bezier(0.645, 0.045, 0.355, 1);-moz-transition-timing-function:cubic-bezier(0.645, 0.045, 0.355, 1);-ms-transition-timing-function:cubic-bezier(0.645, 0.045, 0.355, 1);-o-transition-timing-function:cubic-bezier(0.645, 0.045, 0.355, 1);transition-timing-function:cubic-bezier(0.645, 0.045, 0.355, 1)}.blueimp-gallery,.blueimp-gallery>.slides>.slide>.slide-content{-webkit-transition:opacity 0.15s linear;-moz-transition:opacity 0.15s linear;-ms-transition:opacity 0.15s linear;-o-transition:opacity 0.15s linear;transition:opacity 0.15s linear}.blueimp-gallery>.slides>.slide-loading{background-size:64px 64px}.blueimp-gallery>.slides>.slide-loading>.slide-content{opacity:0}.blueimp-gallery>.slides>.slide-error>.slide-content{display:none}.blueimp-gallery>.prev,.blueimp-gallery>.next{position:absolute;top:50%;left:15px;width:35px;height:35px;margin-top:-17px;font-size:22px;line-height:35px;color:#63676a;text-decoration:none;text-align:center;background:rgba(0,0,0,0.2);-moz-border-radius:5px;-webkit-border-radius:5px;border-radius:5px;-webkit-box-sizing:content-box;-moz-box-sizing:content-box;box-sizing:content-box;-webkit-transition:color 0.09s linear;transition:color 0.09s linear;will-change:color;opacity:1;cursor:pointer;display:none}.blueimp-gallery>.next{left:auto;right:15px}.blueimp-gallery>.close,.blueimp-gallery>.title{position:absolute;bottom:15px;left:15px;margin:0 40px 0 0;font-size:14px;line-height:14px;font-font:"Oxygen Bold","Helvetica Neue",Helvetica,Arial,sans-serif;color:#63676a;text-shadow:0 1px 3px #1d1d1d;opacity:1;display:none}.blueimp-gallery>.title{margin-left:20px}.blueimp-gallery>.title:before{content:'\f101';font-family:'Font Awesome 5 Free';font-weight:bold;position:absolute;top:-1px;left:-20px;height:14px;width:14px}.blueimp-gallery>.close{padding:15px;right:15px;left:auto;margin:-15px;font-size:30px;text-decoration:none;cursor:pointer}.blueimp-gallery>.play-pause{position:absolute;right:15px;bottom:15px;width:35px;height:35px;font-size:22px;line-height:35px;text-align:center;background:rgba(0,0,0,0.2);-moz-border-radius:5px;-webkit-border-radius:5px;border-radius:5px;-webkit-box-sizing:content-box;-moz-box-sizing:content-box;box-sizing:content-box;-webkit-transition:color 0.09s linear;transition:color 0.09s linear;will-change:color;color:#e28a0d;cursor:pointer;opacity:1;display:none}.blueimp-gallery-playing>.play-pause{color:#2b2b2b}.blueimp-gallery>.prev:hover,.blueimp-gallery>.next:hover,.blueimp-gallery>.close:hover,.blueimp-gallery>.play-pause:hover{color:#e28a0d}.blueimp-gallery-controls>.prev,.blueimp-gallery-controls>.next,.blueimp-gallery-controls>.close,.blueimp-gallery-controls>.title,.blueimp-gallery-controls>.play-pause{display:block;-webkit-transform:translateZ(0);-moz-transform:translateZ(0);-ms-transform:translateZ(0);-o-transform:translateZ(0);transform:translateZ(0)}.blueimp-gallery-single>.prev,.blueimp-gallery-left>.prev,.blueimp-gallery-single>.next,.blueimp-gallery-right>.next,.blueimp-gallery-single>.play-pause{display:none}.blueimp-gallery>.slides>.slide>.slide-content,.blueimp-gallery>.prev,.blueimp-gallery>.next,.blueimp-gallery>.close,.blueimp-gallery>.play-pause{-webkit-user-select:none;-khtml-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}body:last-child .blueimp-gallery-playing>.play-pause{background-position:-20px 0}*+html .blueimp-gallery>.slides>.slide{min-height:300px}*+html .blueimp-gallery>.slides>.slide>.slide-content{position:relative}.blueimp-gallery>.slides>.slide>.text-content{overflow:auto;margin:0 auto;overflow:hidden;text-align:left}.blueimp-gallery .modal-body{position:relative;text-align:center;padding:0 0 56.25% 0;overflow:hidden;cursor:pointer}.blueimp-gallery .modal-footer{margin:0}.blueimp-gallery .modal-body img,.blueimp-gallery .modal-body .video-content video,.blueimp-gallery .modal-body .video-content iframe,.blueimp-gallery .modal-body .video-content a{max-width:100%;max-height:100%;margin:auto;position:absolute;top:0;right:0;bottom:0;left:0}.blueimp-gallery .modal-body .video-content video{display:none}.blueimp-gallery .modal-body .video-playing video{display:block}.blueimp-gallery .modal-body .video-content iframe{width:100%;height:100%;border:none;left:100%}.blueimp-gallery .modal-body .video-playing iframe{left:0}.blueimp-gallery .modal-body .video-playing img,.blueimp-gallery .modal-body .video-playing a{display:none}.blueimp-gallery .modal-body .video-content a{cursor:pointer}.blueimp-gallery .modal-body .video-content a:after{font-family:"Glyphicons Halflings";-webkit-font-smoothing:antialiased;content:"\e029";font-size:64px;line-height:64px;width:64px;height:64px;position:absolute;top:50%;margin:-32px 0 0 -32px}.blueimp-gallery .modal-body .video-loading a{background:url(../img/loading.gif) center no-repeat;background-size:64px 64px}.blueimp-gallery .modal-body .video-loading a:after{content:none}@media screen and (min-width: 768px){.blueimp-gallery .modal-dialog{right:auto;left:auto;width:auto;max-width:1200px;padding-left:5%;padding-right:5%}}/*! ======================================================================== + */html,body,[canvas=container],[off-canvas]{margin:0;padding:0;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}html,body{width:100%;height:100%}[canvas]{z-index:1}[canvas=container]{width:100%;min-height:100%;overflow-y:auto;position:relative;background-color:white;-webkit-overflow-scrolling:touch}[canvas=container]:before,[canvas=container]:after{clear:both;content:'';display:table}[off-canvas]{display:none;position:fixed;overflow:hidden;overflow-y:auto;background-color:black;color:white;-webkit-overflow-scrolling:touch}[off-canvas*=top]{width:100%;height:255px;top:0}[off-canvas*=right]{width:255px;height:100%;top:0;right:0}[off-canvas*=bottom]{width:100%;height:255px;bottom:0}[off-canvas*=left]{width:255px;height:100%;top:0;left:0}[off-canvas*=reveal]{z-index:0}[off-canvas*=push]{z-index:1}[off-canvas*=overlay]{z-index:9999}[off-canvas*=shift]{z-index:0}[canvas],[off-canvas]{-webkit-transform:translate(0px, 0px);-ms-transform:translate(0px, 0px);transform:translate(0px, 0px);-webkit-transition:-webkit-transform 300ms;transition:transform 300ms ease-in-out;-webkit-backface-visibility:hidden}[off-canvas*=shift][off-canvas*=top]{-webkit-transform:translate(0px, 50%);transform:translate(0px, 50%)}[off-canvas*=shift][off-canvas*=right]{-webkit-transform:translate(-50%, 0px);transform:translate(-50%, 0px)}[off-canvas*=shift][off-canvas*=bottom]{-webkit-transform:translate(0px, -50%);transform:translate(0px, -50%)}[off-canvas*=shift][off-canvas*=left]{-webkit-transform:translate(50%, 0px);transform:translate(50%, 0px)}@media print{[canvas]{-webkit-transform:translate(0px, 0px) !important;-ms-transform:translate(0px, 0px) !important;transform:translate(0px, 0px) !important}[off-canvas]{display:none !important}}.pf-pie-chart{position:relative !important;display:table-cell;text-align:center;vertical-align:middle}.pf-pie-chart span{display:inline-block}.pf-pie-chart canvas{position:absolute;top:0;left:0}.pf-pie-chart-map-timer{width:36px;height:36px;margin:3px}.pf-pie-chart-map-timer canvas{top:3px;left:3px}.pf-pie-chart-map-timer span{font-size:10px;color:#3c3f41}.select2-container{box-sizing:border-box;display:inline-block;margin:0;position:relative;vertical-align:middle}.select2-container .select2-selection--single{box-sizing:border-box;cursor:pointer;display:block;height:28px;user-select:none;-webkit-user-select:none}.select2-container .select2-selection--single .select2-selection__rendered{display:block;padding-left:8px;padding-right:20px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.select2-container[dir="rtl"] .select2-selection--single .select2-selection__rendered{padding-right:8px;padding-left:20px}.select2-container .select2-selection--multiple{box-sizing:border-box;cursor:pointer;display:block;min-height:32px;user-select:none;-webkit-user-select:none}.select2-container .select2-selection--multiple .select2-selection__rendered{display:inline-block;overflow:hidden;padding-left:8px;text-overflow:ellipsis;white-space:nowrap}.select2-container .select2-search--inline{float:left}.select2-container .select2-search--inline .select2-search__field{box-sizing:border-box;border:none;font-size:100%;margin-top:5px}.select2-container .select2-search--inline .select2-search__field::-webkit-search-cancel-button{-webkit-appearance:none}.select2-dropdown{background-color:white;border:1px solid #aaa;border-radius:4px;box-sizing:border-box;display:block;position:absolute;left:-100000px;width:100%;z-index:1080}.select2-results{display:block}.select2-results__options{list-style:none;margin:0;padding:0}.select2-results__option{padding:6px;color:#adadad;user-select:none;-webkit-user-select:none}.select2-results__option[aria-selected]{cursor:pointer}.select2-container--open .select2-dropdown{left:0}.select2-container--open .select2-dropdown--above{border-bottom:none;border-bottom-left-radius:0;border-bottom-right-radius:0}.select2-container--open .select2-dropdown--below{border-top:none;border-top-left-radius:0;border-top-right-radius:0}.select2-search--dropdown{display:block;padding:4px}.select2-search--dropdown .select2-search__field{padding:4px;width:100%;box-sizing:border-box}.select2-search--dropdown .select2-search__field::-webkit-search-cancel-button{-webkit-appearance:none}.select2-search--dropdown.select2-search--hide{display:none}.select2-close-mask{border:0;margin:0;padding:0;display:block;position:fixed;left:0;top:0;min-height:100%;min-width:100%;height:auto;width:auto;opacity:0;z-index:99;background-color:#fff;filter:alpha(opacity=0)}.select2-hidden-accessible{border:0;clip:rect(0 0 0 0);height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;width:1px;pointer-events:none}.select2-container--pathfinder .select2-selection--single{background-color:#313335;border:1px solid #63676a;border-radius:0px;outline:0;height:32px;padding:6px 16px}.select2-container--pathfinder .select2-selection--single:focus{border:1px solid #568a89}.select2-container--pathfinder .select2-selection--single .select2-selection__rendered{font-family:'Oxygen Bold';color:#adadad;line-height:1.5;padding:0 10px 0 0}.select2-container--pathfinder .select2-selection--single .select2-selection__rendered div[class^='col-']:first-child{padding-left:0}.select2-container--pathfinder .select2-selection--single .select2-selection__clear{color:#a52521;cursor:pointer;float:right;font-weight:bold;margin-right:3px;margin-left:10px}.select2-container--pathfinder .select2-selection--single .select2-selection__clear:hover{color:#58100d}.select2-container--pathfinder .select2-selection--single .select2-selection__placeholder{color:#63676a}.select2-container--pathfinder .select2-selection--single .select2-selection__arrow{background-color:#313335;border:none;border-left:none;border-top-right-radius:0px;border-bottom-right-radius:0px;height:30px;position:absolute;top:1px;right:1px;width:20px}.select2-container--pathfinder .select2-selection--single .select2-selection__arrow b{border-color:#888 transparent transparent transparent;border-style:solid;border-width:5px 4px 0 4px;height:0;left:50%;margin-left:-4px;margin-top:-2px;position:absolute;top:50%;width:0}.select2-container--pathfinder[dir="rtl"] .select2-selection--single .select2-selection__clear{float:left}.select2-container--pathfinder[dir="rtl"] .select2-selection--single .select2-selection__arrow{border:none;border-right:1px solid #63676a;border-radius:0;border-top-left-radius:0px;border-bottom-left-radius:0px;left:1px;right:auto}.select2-container--pathfinder.select2-container--open .select2-selection--single{border:1px solid #568a89}.select2-container--pathfinder.select2-container--open .select2-selection--single .select2-selection__arrow{background:transparent;border:none}.select2-container--pathfinder.select2-container--open .select2-selection--single .select2-selection__arrow b{border-color:transparent transparent #888 transparent;border-width:0 4px 5px 4px}.select2-container--pathfinder.select2-container--open.select2-container--above .select2-selection--single{border-top:none;border-top-left-radius:0;border-top-right-radius:0}.select2-container--pathfinder.select2-container--open.select2-container--below .select2-selection--single{border-bottom:none;border-bottom-left-radius:0;border-bottom-right-radius:0}.select2-container--pathfinder .select2-selection--multiple{background-color:#313335;color:#313335;border:1px solid #63676a;border-radius:0px;cursor:text;outline:0}.select2-container--pathfinder .select2-selection--multiple:focus{border:1px solid #568a89}.select2-container--pathfinder .select2-selection--multiple .select2-selection__rendered{list-style:none;margin:0;padding:0 5px;width:100%}.select2-container--pathfinder .select2-selection--multiple .select2-selection__clear{display:none}.select2-container--pathfinder .select2-selection--multiple .select2-selection__choice{background-color:#adadad;border:1px solid #63676a;border-radius:2px;cursor:default;float:left;margin-right:5px;margin-top:5px;padding:0 5px}.select2-container--pathfinder .select2-selection--multiple .select2-selection__choice__remove{color:#a52521;cursor:pointer;display:inline-block;font-weight:bold;margin-right:4px}.select2-container--pathfinder .select2-selection--multiple .select2-selection__choice__remove:hover{color:#58100d}.select2-container--pathfinder .select2-selection--multiple .select2-selection__placeholder{color:#63676a}.select2-container--pathfinder[dir="rtl"] .select2-selection--multiple .select2-selection__choice{float:right}.select2-container--pathfinder[dir="rtl"] .select2-selection--multiple .select2-selection__choice{margin-left:5px;margin-right:auto}.select2-container--pathfinder[dir="rtl"] .select2-selection--multiple .select2-selection__choice__remove{margin-left:2px;margin-right:auto}.select2-container--pathfinder.select2-container--open .select2-selection--multiple{border:1px solid #568a89}.select2-container--pathfinder.select2-container--open.select2-container--above .select2-selection--multiple{border-top:none;border-top-left-radius:0;border-top-right-radius:0}.select2-container--pathfinder.select2-container--open.select2-container--below .select2-selection--multiple{border-bottom:none;border-bottom-left-radius:0;border-bottom-right-radius:0}.select2-container--pathfinder .select2-search--dropdown .select2-search__field{border:1px solid #63676a;outline:0}.select2-container--pathfinder .select2-search--inline .select2-search__field{outline:0}.select2-container--pathfinder .select2-search--inline .select2-search__field::-moz-placeholder{color:#63676a;opacity:1}.select2-container--pathfinder .select2-search--inline .select2-search__field:-ms-input-placeholder{color:#63676a}.select2-container--pathfinder .select2-search--inline .select2-search__field::-webkit-input-placeholder{color:#63676a}.select2-container--pathfinder .select2-dropdown{background-color:#313335;border:1px solid transparent;overflow:hidden;-webkit-box-shadow:0 6px 12px rgba(0,0,0,0.3);box-shadow:0 6px 12px rgba(0,0,0,0.3)}.select2-container--pathfinder .select2-dropdown img{image-rendering:-webkit-optimize-contrast;width:21px}.select2-container--pathfinder .select2-dropdown--above{border-bottom:none}.select2-container--pathfinder .select2-dropdown--below{border-top:none}.select2-container--pathfinder .select2-results{max-height:200px;overflow-y:auto}.select2-container--pathfinder .select2-results__option{padding:3px 6px;min-height:24px}.select2-container--pathfinder .select2-results__option[role=group]{padding:0}.select2-container--pathfinder .select2-results__option[aria-disabled=true],.select2-container--pathfinder .select2-results__option[aria-selected=true]{color:#63676a;background-color:#3c3f41}.select2-container--pathfinder .select2-results__option[aria-disabled=true] .pf-select-item-anchor,.select2-container--pathfinder .select2-results__option[aria-selected=true] .pf-select-item-anchor{padding-left:15px}.select2-container--pathfinder .select2-results__option[aria-disabled=true] .pf-select-item-anchor:before,.select2-container--pathfinder .select2-results__option[aria-selected=true] .pf-select-item-anchor:before{content:"\f05e";font-family:"Font Awesome 5 Free";font-weight:bold;font-size:9px;position:absolute;left:2px;top:0;color:#63676a}.select2-container--pathfinder .select2-results__option--highlighted[aria-selected]{background-color:#adadad;color:#313335}.select2-container--pathfinder .select2-results__group{cursor:default;display:block;padding:3px 6px;background-color:#3c3f41;text-transform:capitalize}.select2-container--pathfinder.select2-container--open .select2-dropdown{border-color:#568a89}.select2-container--pathfinder.select2-container--disabled .select2-selection{background-color:#3c3f41;cursor:not-allowed;border:1px solid #63676a}.select2-container--pathfinder.select2-container--disabled .select2-selection .select2-selection__arrow{background-color:#3c3f41}.select2-container--pathfinder.select2-container--disabled .select2-selection .select2-selection__clear{display:none}select.select2-hidden-accessible{-moz-appearance:none;-webkit-appearance:none}select[readonly].select2-hidden-accessible+.select2-container{pointer-events:none;touch-action:none}select[readonly].select2-hidden-accessible+.select2-container .select2-selection{background-color:#3c3f41}select[readonly].select2-hidden-accessible+.select2-container .select2-selection .select2-selection__arrow{background-color:#3c3f41}select[readonly].select2-hidden-accessible+.select2-container .select2-selection .select2-selection__clear{display:none}.blueimp-gallery,.blueimp-gallery>.slides>.slide>.slide-content{position:absolute;top:0;right:0;bottom:0;left:0;-moz-backface-visibility:hidden}.blueimp-gallery>.slides>.slide>.slide-content{margin:auto;width:auto;height:auto;max-width:100%;max-height:100%;opacity:1}.blueimp-gallery{position:fixed;z-index:999999;overflow:hidden;background:#000;background:rgba(0,0,0,0.3);opacity:0;display:none;direction:ltr;-ms-touch-action:none;touch-action:none}.blueimp-gallery-carousel{position:relative;z-index:auto;margin:1em auto;padding-bottom:56.25%;-webkit-box-shadow:0 4px 10px rgba(0,0,0,0.4);box-shadow:0 4px 10px rgba(0,0,0,0.4);-moz-border-radius:5px;-webkit-border-radius:5px;border-radius:5px;-ms-touch-action:pan-y;touch-action:pan-y}.blueimp-gallery-display{display:block;opacity:1}.blueimp-gallery>.slides{position:relative;height:100%;overflow:hidden}.blueimp-gallery-carousel>.slides{position:absolute}.blueimp-gallery>.slides>.slide{position:relative;float:left;height:100%;text-align:center;will-change:all;-webkit-transition-timing-function:cubic-bezier(0.645, 0.045, 0.355, 1);-moz-transition-timing-function:cubic-bezier(0.645, 0.045, 0.355, 1);-ms-transition-timing-function:cubic-bezier(0.645, 0.045, 0.355, 1);-o-transition-timing-function:cubic-bezier(0.645, 0.045, 0.355, 1);transition-timing-function:cubic-bezier(0.645, 0.045, 0.355, 1)}.blueimp-gallery,.blueimp-gallery>.slides>.slide>.slide-content{-webkit-transition:opacity 0.15s linear;-moz-transition:opacity 0.15s linear;-ms-transition:opacity 0.15s linear;-o-transition:opacity 0.15s linear;transition:opacity 0.15s linear}.blueimp-gallery>.slides>.slide-loading{background-size:64px 64px}.blueimp-gallery>.slides>.slide-loading>.slide-content{opacity:0}.blueimp-gallery>.slides>.slide-error>.slide-content{display:none}.blueimp-gallery>.prev,.blueimp-gallery>.next{position:absolute;top:50%;left:15px;width:35px;height:35px;margin-top:-17px;font-size:22px;line-height:35px;color:#63676a;text-decoration:none;text-align:center;background:rgba(0,0,0,0.2);-moz-border-radius:5px;-webkit-border-radius:5px;border-radius:5px;-webkit-box-sizing:content-box;-moz-box-sizing:content-box;box-sizing:content-box;-webkit-transition:color 0.09s linear;transition:color 0.09s linear;will-change:color;opacity:1;cursor:pointer;display:none}.blueimp-gallery>.next{left:auto;right:15px}.blueimp-gallery>.close,.blueimp-gallery>.title{position:absolute;bottom:15px;left:15px;margin:0 40px 0 0;font-size:14px;line-height:14px;font-font:"Oxygen Bold","Helvetica Neue",Helvetica,Arial,sans-serif;color:#63676a;text-shadow:0 1px 3px #1d1d1d;opacity:1;display:none}.blueimp-gallery>.title{margin-left:20px}.blueimp-gallery>.title:before{content:'\f101';font-family:'Font Awesome 5 Free';font-weight:bold;position:absolute;top:-1px;left:-20px;height:14px;width:14px}.blueimp-gallery>.close{padding:15px;right:15px;left:auto;margin:-15px;font-size:30px;text-decoration:none;cursor:pointer}.blueimp-gallery>.play-pause{position:absolute;right:15px;bottom:15px;width:35px;height:35px;font-size:22px;line-height:35px;text-align:center;background:rgba(0,0,0,0.2);-moz-border-radius:5px;-webkit-border-radius:5px;border-radius:5px;-webkit-box-sizing:content-box;-moz-box-sizing:content-box;box-sizing:content-box;-webkit-transition:color 0.09s linear;transition:color 0.09s linear;will-change:color;color:#e28a0d;cursor:pointer;opacity:1;display:none}.blueimp-gallery-playing>.play-pause{color:#2b2b2b}.blueimp-gallery>.prev:hover,.blueimp-gallery>.next:hover,.blueimp-gallery>.close:hover,.blueimp-gallery>.play-pause:hover{color:#e28a0d}.blueimp-gallery-controls>.prev,.blueimp-gallery-controls>.next,.blueimp-gallery-controls>.close,.blueimp-gallery-controls>.title,.blueimp-gallery-controls>.play-pause{display:block;-webkit-transform:translateZ(0);-moz-transform:translateZ(0);-ms-transform:translateZ(0);-o-transform:translateZ(0);transform:translateZ(0)}.blueimp-gallery-single>.prev,.blueimp-gallery-left>.prev,.blueimp-gallery-single>.next,.blueimp-gallery-right>.next,.blueimp-gallery-single>.play-pause{display:none}.blueimp-gallery>.slides>.slide>.slide-content,.blueimp-gallery>.prev,.blueimp-gallery>.next,.blueimp-gallery>.close,.blueimp-gallery>.play-pause{-webkit-user-select:none;-khtml-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}body:last-child .blueimp-gallery-playing>.play-pause{background-position:-20px 0}*+html .blueimp-gallery>.slides>.slide{min-height:300px}*+html .blueimp-gallery>.slides>.slide>.slide-content{position:relative}.blueimp-gallery>.slides>.slide>.text-content{overflow:auto;margin:0 auto;overflow:hidden;text-align:left}.blueimp-gallery .modal-body{position:relative;text-align:center;padding:0 0 56.25% 0;overflow:hidden;cursor:pointer}.blueimp-gallery .modal-footer{margin:0}.blueimp-gallery .modal-body img,.blueimp-gallery .modal-body .video-content video,.blueimp-gallery .modal-body .video-content iframe,.blueimp-gallery .modal-body .video-content a{max-width:100%;max-height:100%;margin:auto;position:absolute;top:0;right:0;bottom:0;left:0}.blueimp-gallery .modal-body .video-content video{display:none}.blueimp-gallery .modal-body .video-playing video{display:block}.blueimp-gallery .modal-body .video-content iframe{width:100%;height:100%;border:none;left:100%}.blueimp-gallery .modal-body .video-playing iframe{left:0}.blueimp-gallery .modal-body .video-playing img,.blueimp-gallery .modal-body .video-playing a{display:none}.blueimp-gallery .modal-body .video-content a{cursor:pointer}.blueimp-gallery .modal-body .video-content a:after{font-family:"Glyphicons Halflings";-webkit-font-smoothing:antialiased;content:"\e029";font-size:64px;line-height:64px;width:64px;height:64px;position:absolute;top:50%;margin:-32px 0 0 -32px}.blueimp-gallery .modal-body .video-loading a{background:url(../img/loading.gif) center no-repeat;background-size:64px 64px}.blueimp-gallery .modal-body .video-loading a:after{content:none}@media screen and (min-width: 768px){.blueimp-gallery .modal-dialog{right:auto;left:auto;width:auto;max-width:1200px;padding-left:5%;padding-right:5%}}/*! ======================================================================== * Bootstrap Toggle: bootstrap-toggle.css v2.2.0 * http://www.bootstraptoggle.com * ======================================================================== * Copyright 2014 Min Hur, The New York Times Company * Licensed under MIT - * ======================================================================== */.checkbox label .toggle,.editable-input .editable-checklist>div>label label .toggle,.editable-input .editable-checklist>div>label>span .toggle,.checkbox-inline .toggle{margin-left:-20px;margin-right:5px}.toggle{position:relative;overflow:hidden}.toggle input[type="checkbox"]{display:none}.toggle-group{position:absolute;width:200%;top:0;bottom:0;left:0;transition:left 0.18s ease-in-out;-webkit-transition:left 0.18s ease-in-out;-moz-user-select:none;-webkit-user-select:none}.toggle.off .toggle-group{left:-100%}.toggle-on{position:absolute;top:0;bottom:0;left:0;right:50%;margin:0;border:0;border-radius:0}.toggle-off{position:absolute;top:0;bottom:0;left:50%;right:0;margin:0;border:0;border-radius:0}.toggle-handle{position:relative;margin:0 auto;padding-top:0;padding-bottom:0;height:100%;width:0;border-width:0 1px;background:#54585a}.toggle.btn{min-width:59px;min-height:34px}.toggle-on.btn{padding-right:24px}.toggle-off.btn{padding-left:24px}.toggle.btn-lg,.btn-group-lg>.toggle.btn{min-width:79px;min-height:45px}.toggle-on.btn-lg,.btn-group-lg>.toggle-on.btn{padding-right:31px}.toggle-off.btn-lg,.btn-group-lg>.toggle-off.btn{padding-left:31px}.toggle-handle.btn-lg,.btn-group-lg>.toggle-handle.btn{width:40px}.toggle.btn-sm,.btn-group-sm>.toggle.btn{min-width:50px;min-height:28px}.toggle-on.btn-sm,.btn-group-sm>.toggle-on.btn{padding-right:10px;padding-left:0}.toggle-off.btn-sm,.btn-group-sm>.toggle-off.btn{padding-left:10px;padding-right:0}.toggle.btn-xs,.btn-group-xs>.toggle.btn{min-width:35px;min-height:22px}.toggle-on.btn-xs,.btn-group-xs>.toggle-on.btn{padding-right:5px}.toggle-off.btn-xs,.btn-group-xs>.toggle-off.btn{padding-left:5px}.checkbox,.editable-input .editable-checklist>div>label{padding-left:20px}.checkbox label,.editable-input .editable-checklist>div>label label,.editable-input .editable-checklist>div>label>span{display:inline-block;vertical-align:middle;position:relative;padding-left:5px}.checkbox label::before,.editable-input .editable-checklist>div>label label::before,.editable-input .editable-checklist>div>label>span::before{content:"";display:inline-block;position:absolute;width:17px;height:17px;left:0;margin-left:-20px;border:1px solid #63676a;border-radius:3px;background-color:#313335;-webkit-transition:border 0.18s ease,color 0.18s ease,background-color 0.18s ease;transition:border 0.18s ease,color 0.18s ease,background-color 0.18s ease}.checkbox label::after,.editable-input .editable-checklist>div>label label::after,.editable-input .editable-checklist>div>label>span::after{font-family:"Font Awesome 5 Free";content:"\f00c";font-weight:bold;display:inline-block;position:absolute;width:16px;height:16px;left:0;top:0;opacity:0;transform:scale(2) rotateZ(-20deg);transition:all .18s ease-out;will-change:transform, opacity;margin-left:-20px;padding-left:3px;padding-top:1px;font-size:calc(100% - 1px);color:#adadad}.checkbox input[type="checkbox"],.editable-input .editable-checklist>div>label input[type="checkbox"],.checkbox input[type="radio"],.editable-input .editable-checklist>div>label input[type="radio"]{opacity:0;z-index:1;cursor:pointer}.checkbox input[type="checkbox"]:checked+label::after,.editable-input .editable-checklist>div>label input[type="checkbox"]:checked+label::after,.editable-input .editable-checklist>div>label>input[type="checkbox"]:checked+span::after,.checkbox input[type="radio"]:checked+label::after,.editable-input .editable-checklist>div>label input[type="radio"]:checked+label::after,.editable-input .editable-checklist>div>label>input[type="radio"]:checked+span::after{font-family:"Font Awesome 5 Free";content:"\f00c"}.checkbox input[type="checkbox"]:checked+label::after,.editable-input .editable-checklist>div>label input[type="checkbox"]:checked+label::after,.editable-input .editable-checklist>div>label>input[type="checkbox"]:checked+span::after,.checkbox input[type="radio"]:checked+label::after,.editable-input .editable-checklist>div>label input[type="radio"]:checked+label::after,.editable-input .editable-checklist>div>label>input[type="radio"]:checked+span::after{transform:scale(1) rotateZ(0deg);opacity:1}.checkbox input[type="checkbox"]:indeterminate+label::after,.editable-input .editable-checklist>div>label input[type="checkbox"]:indeterminate+label::after,.editable-input .editable-checklist>div>label>input[type="checkbox"]:indeterminate+span::after,.checkbox input[type="radio"]:indeterminate+label::after,.editable-input .editable-checklist>div>label input[type="radio"]:indeterminate+label::after,.editable-input .editable-checklist>div>label>input[type="radio"]:indeterminate+span::after{display:block;content:"";width:10px;height:3px;background-color:#555555;border-radius:2px;margin-left:-16.5px;margin-top:7px}.checkbox input[type="checkbox"]:disabled+label,.editable-input .editable-checklist>div>label input[type="checkbox"]:disabled+label,.editable-input .editable-checklist>div>label>input[type="checkbox"]:disabled+span,.checkbox input[type="radio"]:disabled+label,.editable-input .editable-checklist>div>label input[type="radio"]:disabled+label,.editable-input .editable-checklist>div>label>input[type="radio"]:disabled+span{opacity:0.65}.checkbox input[type="checkbox"]:disabled+label::before,.editable-input .editable-checklist>div>label input[type="checkbox"]:disabled+label::before,.editable-input .editable-checklist>div>label>input[type="checkbox"]:disabled+span::before,.checkbox input[type="radio"]:disabled+label::before,.editable-input .editable-checklist>div>label input[type="radio"]:disabled+label::before,.editable-input .editable-checklist>div>label>input[type="radio"]:disabled+span::before{background-color:#3c3f41;cursor:not-allowed}.checkbox.checkbox-circle label::before,.editable-input .editable-checklist>div>label.checkbox-circle label::before,.checkbox.checkbox-circle .editable-input .editable-checklist>div>label>span::before,.editable-input .checkbox.checkbox-circle .editable-checklist>div>label>span::before,.editable-input .editable-checklist>div>label.checkbox-circle .editable-checklist>div>label>span::before{border-radius:50%}.checkbox.checkbox-inline,.editable-input .editable-checklist>div>label.checkbox-inline{margin-top:0}.checkbox-primary input[type="checkbox"]:checked+label::before,.checkbox-primary .editable-input .editable-checklist>div>label>input[type="checkbox"]:checked+span::before,.editable-input .checkbox-primary .editable-checklist>div>label>input[type="checkbox"]:checked+span::before,.checkbox-primary input[type="radio"]:checked+label::before,.checkbox-primary .editable-input .editable-checklist>div>label>input[type="radio"]:checked+span::before,.editable-input .checkbox-primary .editable-checklist>div>label>input[type="radio"]:checked+span::before{background-color:#375959;border-color:#375959}.checkbox-primary input[type="checkbox"]:checked+label::after,.checkbox-primary .editable-input .editable-checklist>div>label>input[type="checkbox"]:checked+span::after,.editable-input .checkbox-primary .editable-checklist>div>label>input[type="checkbox"]:checked+span::after,.checkbox-primary input[type="radio"]:checked+label::after,.checkbox-primary .editable-input .editable-checklist>div>label>input[type="radio"]:checked+span::after,.editable-input .checkbox-primary .editable-checklist>div>label>input[type="radio"]:checked+span::after{color:#fff}.checkbox-danger input[type="checkbox"]:checked+label::before,.checkbox-danger .editable-input .editable-checklist>div>label>input[type="checkbox"]:checked+span::before,.editable-input .checkbox-danger .editable-checklist>div>label>input[type="checkbox"]:checked+span::before,.checkbox-danger input[type="radio"]:checked+label::before,.checkbox-danger .editable-input .editable-checklist>div>label>input[type="radio"]:checked+span::before,.editable-input .checkbox-danger .editable-checklist>div>label>input[type="radio"]:checked+span::before{background-color:#a52521;border-color:#a52521}.checkbox-danger input[type="checkbox"]:checked+label::after,.checkbox-danger .editable-input .editable-checklist>div>label>input[type="checkbox"]:checked+span::after,.editable-input .checkbox-danger .editable-checklist>div>label>input[type="checkbox"]:checked+span::after,.checkbox-danger input[type="radio"]:checked+label::after,.checkbox-danger .editable-input .editable-checklist>div>label>input[type="radio"]:checked+span::after,.editable-input .checkbox-danger .editable-checklist>div>label>input[type="radio"]:checked+span::after{color:#fff}.checkbox-info input[type="checkbox"]:checked+label::before,.checkbox-info .editable-input .editable-checklist>div>label>input[type="checkbox"]:checked+span::before,.editable-input .checkbox-info .editable-checklist>div>label>input[type="checkbox"]:checked+span::before,.checkbox-info input[type="radio"]:checked+label::before,.checkbox-info .editable-input .editable-checklist>div>label>input[type="radio"]:checked+span::before,.editable-input .checkbox-info .editable-checklist>div>label>input[type="radio"]:checked+span::before{background-color:#316490;border-color:#316490}.checkbox-info input[type="checkbox"]:checked+label::after,.checkbox-info .editable-input .editable-checklist>div>label>input[type="checkbox"]:checked+span::after,.editable-input .checkbox-info .editable-checklist>div>label>input[type="checkbox"]:checked+span::after,.checkbox-info input[type="radio"]:checked+label::after,.checkbox-info .editable-input .editable-checklist>div>label>input[type="radio"]:checked+span::after,.editable-input .checkbox-info .editable-checklist>div>label>input[type="radio"]:checked+span::after{color:#fff}.checkbox-warning input[type="checkbox"]:checked+label::before,.checkbox-warning .editable-input .editable-checklist>div>label>input[type="checkbox"]:checked+span::before,.editable-input .checkbox-warning .editable-checklist>div>label>input[type="checkbox"]:checked+span::before,.checkbox-warning input[type="radio"]:checked+label::before,.checkbox-warning .editable-input .editable-checklist>div>label>input[type="radio"]:checked+span::before,.editable-input .checkbox-warning .editable-checklist>div>label>input[type="radio"]:checked+span::before{background-color:#e28a0d;border-color:#e28a0d}.checkbox-warning input[type="checkbox"]:checked+label::after,.checkbox-warning .editable-input .editable-checklist>div>label>input[type="checkbox"]:checked+span::after,.editable-input .checkbox-warning .editable-checklist>div>label>input[type="checkbox"]:checked+span::after,.checkbox-warning input[type="radio"]:checked+label::after,.checkbox-warning .editable-input .editable-checklist>div>label>input[type="radio"]:checked+span::after,.editable-input .checkbox-warning .editable-checklist>div>label>input[type="radio"]:checked+span::after{color:#fff}.checkbox-success input[type="checkbox"]:checked+label::before,.checkbox-success .editable-input .editable-checklist>div>label>input[type="checkbox"]:checked+span::before,.editable-input .checkbox-success .editable-checklist>div>label>input[type="checkbox"]:checked+span::before,.checkbox-success input[type="radio"]:checked+label::before,.checkbox-success .editable-input .editable-checklist>div>label>input[type="radio"]:checked+span::before,.editable-input .checkbox-success .editable-checklist>div>label>input[type="radio"]:checked+span::before{background-color:#4f9e4f;border-color:#4f9e4f}.checkbox-success input[type="checkbox"]:checked+label::after,.checkbox-success .editable-input .editable-checklist>div>label>input[type="checkbox"]:checked+span::after,.editable-input .checkbox-success .editable-checklist>div>label>input[type="checkbox"]:checked+span::after,.checkbox-success input[type="radio"]:checked+label::after,.checkbox-success .editable-input .editable-checklist>div>label>input[type="radio"]:checked+span::after,.editable-input .checkbox-success .editable-checklist>div>label>input[type="radio"]:checked+span::after{color:#fff}.checkbox-primary input[type="checkbox"]:indeterminate+label::before,.checkbox-primary .editable-input .editable-checklist>div>label>input[type="checkbox"]:indeterminate+span::before,.editable-input .checkbox-primary .editable-checklist>div>label>input[type="checkbox"]:indeterminate+span::before,.checkbox-primary input[type="radio"]:indeterminate+label::before,.checkbox-primary .editable-input .editable-checklist>div>label>input[type="radio"]:indeterminate+span::before,.editable-input .checkbox-primary .editable-checklist>div>label>input[type="radio"]:indeterminate+span::before{background-color:#375959;border-color:#375959}.checkbox-primary input[type="checkbox"]:indeterminate+label::after,.checkbox-primary .editable-input .editable-checklist>div>label>input[type="checkbox"]:indeterminate+span::after,.editable-input .checkbox-primary .editable-checklist>div>label>input[type="checkbox"]:indeterminate+span::after,.checkbox-primary input[type="radio"]:indeterminate+label::after,.checkbox-primary .editable-input .editable-checklist>div>label>input[type="radio"]:indeterminate+span::after,.editable-input .checkbox-primary .editable-checklist>div>label>input[type="radio"]:indeterminate+span::after{background-color:#fff}.checkbox-danger input[type="checkbox"]:indeterminate+label::before,.checkbox-danger .editable-input .editable-checklist>div>label>input[type="checkbox"]:indeterminate+span::before,.editable-input .checkbox-danger .editable-checklist>div>label>input[type="checkbox"]:indeterminate+span::before,.checkbox-danger input[type="radio"]:indeterminate+label::before,.checkbox-danger .editable-input .editable-checklist>div>label>input[type="radio"]:indeterminate+span::before,.editable-input .checkbox-danger .editable-checklist>div>label>input[type="radio"]:indeterminate+span::before{background-color:#a52521;border-color:#a52521}.checkbox-danger input[type="checkbox"]:indeterminate+label::after,.checkbox-danger .editable-input .editable-checklist>div>label>input[type="checkbox"]:indeterminate+span::after,.editable-input .checkbox-danger .editable-checklist>div>label>input[type="checkbox"]:indeterminate+span::after,.checkbox-danger input[type="radio"]:indeterminate+label::after,.checkbox-danger .editable-input .editable-checklist>div>label>input[type="radio"]:indeterminate+span::after,.editable-input .checkbox-danger .editable-checklist>div>label>input[type="radio"]:indeterminate+span::after{background-color:#fff}.checkbox-info input[type="checkbox"]:indeterminate+label::before,.checkbox-info .editable-input .editable-checklist>div>label>input[type="checkbox"]:indeterminate+span::before,.editable-input .checkbox-info .editable-checklist>div>label>input[type="checkbox"]:indeterminate+span::before,.checkbox-info input[type="radio"]:indeterminate+label::before,.checkbox-info .editable-input .editable-checklist>div>label>input[type="radio"]:indeterminate+span::before,.editable-input .checkbox-info .editable-checklist>div>label>input[type="radio"]:indeterminate+span::before{background-color:#316490;border-color:#316490}.checkbox-info input[type="checkbox"]:indeterminate+label::after,.checkbox-info .editable-input .editable-checklist>div>label>input[type="checkbox"]:indeterminate+span::after,.editable-input .checkbox-info .editable-checklist>div>label>input[type="checkbox"]:indeterminate+span::after,.checkbox-info input[type="radio"]:indeterminate+label::after,.checkbox-info .editable-input .editable-checklist>div>label>input[type="radio"]:indeterminate+span::after,.editable-input .checkbox-info .editable-checklist>div>label>input[type="radio"]:indeterminate+span::after{background-color:#fff}.checkbox-warning input[type="checkbox"]:indeterminate+label::before,.checkbox-warning .editable-input .editable-checklist>div>label>input[type="checkbox"]:indeterminate+span::before,.editable-input .checkbox-warning .editable-checklist>div>label>input[type="checkbox"]:indeterminate+span::before,.checkbox-warning input[type="radio"]:indeterminate+label::before,.checkbox-warning .editable-input .editable-checklist>div>label>input[type="radio"]:indeterminate+span::before,.editable-input .checkbox-warning .editable-checklist>div>label>input[type="radio"]:indeterminate+span::before{background-color:#e28a0d;border-color:#e28a0d}.checkbox-warning input[type="checkbox"]:indeterminate+label::after,.checkbox-warning .editable-input .editable-checklist>div>label>input[type="checkbox"]:indeterminate+span::after,.editable-input .checkbox-warning .editable-checklist>div>label>input[type="checkbox"]:indeterminate+span::after,.checkbox-warning input[type="radio"]:indeterminate+label::after,.checkbox-warning .editable-input .editable-checklist>div>label>input[type="radio"]:indeterminate+span::after,.editable-input .checkbox-warning .editable-checklist>div>label>input[type="radio"]:indeterminate+span::after{background-color:#fff}.checkbox-success input[type="checkbox"]:indeterminate+label::before,.checkbox-success .editable-input .editable-checklist>div>label>input[type="checkbox"]:indeterminate+span::before,.editable-input .checkbox-success .editable-checklist>div>label>input[type="checkbox"]:indeterminate+span::before,.checkbox-success input[type="radio"]:indeterminate+label::before,.checkbox-success .editable-input .editable-checklist>div>label>input[type="radio"]:indeterminate+span::before,.editable-input .checkbox-success .editable-checklist>div>label>input[type="radio"]:indeterminate+span::before{background-color:#4f9e4f;border-color:#4f9e4f}.checkbox-success input[type="checkbox"]:indeterminate+label::after,.checkbox-success .editable-input .editable-checklist>div>label>input[type="checkbox"]:indeterminate+span::after,.editable-input .checkbox-success .editable-checklist>div>label>input[type="checkbox"]:indeterminate+span::after,.checkbox-success input[type="radio"]:indeterminate+label::after,.checkbox-success .editable-input .editable-checklist>div>label>input[type="radio"]:indeterminate+span::after,.editable-input .checkbox-success .editable-checklist>div>label>input[type="radio"]:indeterminate+span::after{background-color:#fff}.radio{padding-left:20px}.radio label,.radio .editable-input .editable-checklist>div>label>span,.editable-input .radio .editable-checklist>div>label>span{display:inline-block;vertical-align:middle;position:relative;padding-left:5px}.radio label::before,.radio .editable-input .editable-checklist>div>label>span::before,.editable-input .radio .editable-checklist>div>label>span::before{content:"";display:inline-block;position:absolute;width:17px;height:17px;left:0;margin-left:-20px;border:1px solid #63676a;border-radius:50%;background-color:#313335;-webkit-transition:border 0.18s ease,color 0.18s ease;transition:border 0.18s ease,color 0.18s ease}.radio label::after,.radio .editable-input .editable-checklist>div>label>span::after,.editable-input .radio .editable-checklist>div>label>span::after{display:inline-block;position:absolute;content:" ";width:11px;height:11px;left:3px;top:3px;opacity:0;transform:scale(2) rotateZ(-20deg);transition:all .18s ease;will-change:transform, opacity;margin-left:-20px;border-radius:50%;background-color:#adadad;-webkit-transform:scale(0,0);-ms-transform:scale(0,0);transform:scale(0,0);-webkit-transition:-webkit-transform 0.18s cubic-bezier(0.8, -0.33, 0.2, 1.33);-moz-transition:-moz-transform 0.18s cubic-bezier(0.8, -0.33, 0.2, 1.33);-o-transition:-o-transform 0.18s cubic-bezier(0.8, -0.33, 0.2, 1.33);transition:transform 0.18s cubic-bezier(0.8, -0.33, 0.2, 1.33)}.radio input[type="radio"]{opacity:0;z-index:1;cursor:pointer}.radio input[type="radio"]:checked+label::after,.radio .editable-input .editable-checklist>div>label>input[type="radio"]:checked+span::after,.editable-input .radio .editable-checklist>div>label>input[type="radio"]:checked+span::after{-webkit-transform:scale(1,1);-ms-transform:scale(1,1);transform:scale(1,1);opacity:1}.radio input[type="radio"]:disabled+label,.radio .editable-input .editable-checklist>div>label>input[type="radio"]:disabled+span,.editable-input .radio .editable-checklist>div>label>input[type="radio"]:disabled+span{opacity:0.65}.radio input[type="radio"]:disabled+label::before,.radio .editable-input .editable-checklist>div>label>input[type="radio"]:disabled+span::before,.editable-input .radio .editable-checklist>div>label>input[type="radio"]:disabled+span::before{cursor:not-allowed}.radio.radio-inline{margin-top:0}.radio-primary input[type="radio"]+label::after,.radio-primary .editable-input .editable-checklist>div>label>input[type="radio"]+span::after,.editable-input .radio-primary .editable-checklist>div>label>input[type="radio"]+span::after{background-color:#375959}.radio-primary input[type="radio"]:checked+label::before,.radio-primary .editable-input .editable-checklist>div>label>input[type="radio"]:checked+span::before,.editable-input .radio-primary .editable-checklist>div>label>input[type="radio"]:checked+span::before{border-color:#375959}.radio-primary input[type="radio"]:checked+label::after,.radio-primary .editable-input .editable-checklist>div>label>input[type="radio"]:checked+span::after,.editable-input .radio-primary .editable-checklist>div>label>input[type="radio"]:checked+span::after{background-color:#375959}.radio-danger input[type="radio"]+label::after,.radio-danger .editable-input .editable-checklist>div>label>input[type="radio"]+span::after,.editable-input .radio-danger .editable-checklist>div>label>input[type="radio"]+span::after{background-color:#a52521}.radio-danger input[type="radio"]:checked+label::before,.radio-danger .editable-input .editable-checklist>div>label>input[type="radio"]:checked+span::before,.editable-input .radio-danger .editable-checklist>div>label>input[type="radio"]:checked+span::before{border-color:#a52521}.radio-danger input[type="radio"]:checked+label::after,.radio-danger .editable-input .editable-checklist>div>label>input[type="radio"]:checked+span::after,.editable-input .radio-danger .editable-checklist>div>label>input[type="radio"]:checked+span::after{background-color:#a52521}.radio-info input[type="radio"]+label::after,.radio-info .editable-input .editable-checklist>div>label>input[type="radio"]+span::after,.editable-input .radio-info .editable-checklist>div>label>input[type="radio"]+span::after{background-color:#316490}.radio-info input[type="radio"]:checked+label::before,.radio-info .editable-input .editable-checklist>div>label>input[type="radio"]:checked+span::before,.editable-input .radio-info .editable-checklist>div>label>input[type="radio"]:checked+span::before{border-color:#316490}.radio-info input[type="radio"]:checked+label::after,.radio-info .editable-input .editable-checklist>div>label>input[type="radio"]:checked+span::after,.editable-input .radio-info .editable-checklist>div>label>input[type="radio"]:checked+span::after{background-color:#316490}.radio-warning input[type="radio"]+label::after,.radio-warning .editable-input .editable-checklist>div>label>input[type="radio"]+span::after,.editable-input .radio-warning .editable-checklist>div>label>input[type="radio"]+span::after{background-color:#e28a0d}.radio-warning input[type="radio"]:checked+label::before,.radio-warning .editable-input .editable-checklist>div>label>input[type="radio"]:checked+span::before,.editable-input .radio-warning .editable-checklist>div>label>input[type="radio"]:checked+span::before{border-color:#e28a0d}.radio-warning input[type="radio"]:checked+label::after,.radio-warning .editable-input .editable-checklist>div>label>input[type="radio"]:checked+span::after,.editable-input .radio-warning .editable-checklist>div>label>input[type="radio"]:checked+span::after{background-color:#e28a0d}.radio-success input[type="radio"]+label::after,.radio-success .editable-input .editable-checklist>div>label>input[type="radio"]+span::after,.editable-input .radio-success .editable-checklist>div>label>input[type="radio"]+span::after{background-color:#4f9e4f}.radio-success input[type="radio"]:checked+label::before,.radio-success .editable-input .editable-checklist>div>label>input[type="radio"]:checked+span::before,.editable-input .radio-success .editable-checklist>div>label>input[type="radio"]:checked+span::before{border-color:#4f9e4f}.radio-success input[type="radio"]:checked+label::after,.radio-success .editable-input .editable-checklist>div>label>input[type="radio"]:checked+span::after,.editable-input .radio-success .editable-checklist>div>label>input[type="radio"]:checked+span::after{background-color:#4f9e4f}input[type="checkbox"].styled:checked+label:after,.editable-input .editable-checklist>div>label>input[type="checkbox"].styled:checked+span:after,input[type="radio"].styled:checked+label:after,.editable-input .editable-checklist>div>label>input[type="radio"].styled:checked+span:after{font-family:"Font Awesome 5 Free";content:"\f00c"}input[type="checkbox"] .styled:checked+label::before,input[type="checkbox"] .editable-input .editable-checklist>div>label>.styled:checked+span::before,.editable-input input[type="checkbox"] .editable-checklist>div>label>.styled:checked+span::before,input[type="radio"] .styled:checked+label::before,input[type="radio"] .editable-input .editable-checklist>div>label>.styled:checked+span::before,.editable-input input[type="radio"] .editable-checklist>div>label>.styled:checked+span::before{color:#fff}input[type="checkbox"] .styled:checked+label::after,input[type="checkbox"] .editable-input .editable-checklist>div>label>.styled:checked+span::after,.editable-input input[type="checkbox"] .editable-checklist>div>label>.styled:checked+span::after,input[type="radio"] .styled:checked+label::after,input[type="radio"] .editable-input .editable-checklist>div>label>.styled:checked+span::after,.editable-input input[type="radio"] .editable-checklist>div>label>.styled:checked+span::after{color:#fff}@font-face{font-family:"summernote";font-style:normal;font-weight:normal;src:url("../../fonts/summernote.eot?dbafe969167589eda84514394d126413");src:url("../../fonts/summernote.eot?#iefix") format("embedded-opentype"),url("../../fonts/summernote.woff?dbafe969167589eda84514394d126413") format("woff"),url("../../fonts/summernote.ttf?dbafe969167589eda84514394d126413") format("truetype")}[class^="note-icon-"]:before,[class*=" note-icon-"]:before{display:inline-block;font:normal normal normal 14px summernote;font-size:inherit;-webkit-font-smoothing:antialiased;text-decoration:inherit;text-rendering:auto;text-transform:none;vertical-align:middle;speak:none;-moz-osx-font-smoothing:grayscale}.note-icon-align-center:before,.note-icon-align-indent:before,.note-icon-align-justify:before,.note-icon-align-left:before,.note-icon-align-outdent:before,.note-icon-align-right:before,.note-icon-align:before,.note-icon-arrow-circle-down:before,.note-icon-arrow-circle-left:before,.note-icon-arrow-circle-right:before,.note-icon-arrow-circle-up:before,.note-icon-arrows-alt:before,.note-icon-arrows-h:before,.note-icon-arrows-v:before,.note-icon-bold:before,.note-icon-caret:before,.note-icon-chain-broken:before,.note-icon-circle:before,.note-icon-close:before,.note-icon-code:before,.note-icon-col-after:before,.note-icon-col-before:before,.note-icon-col-remove:before,.note-icon-eraser:before,.note-icon-font:before,.note-icon-frame:before,.note-icon-italic:before,.note-icon-link:before,.note-icon-magic:before,.note-icon-menu-check:before,.note-icon-minus:before,.note-icon-orderedlist:before,.note-icon-pencil:before,.note-icon-picture:before,.note-icon-question:before,.note-icon-redo:before,.note-icon-row-above:before,.note-icon-row-below:before,.note-icon-row-remove:before,.note-icon-special-character:before,.note-icon-square:before,.note-icon-strikethrough:before,.note-icon-subscript:before,.note-icon-summernote:before,.note-icon-superscript:before,.note-icon-table:before,.note-icon-text-height:before,.note-icon-trash:before,.note-icon-underline:before,.note-icon-undo:before,.note-icon-unorderedlist:before,.note-icon-video:before{display:inline-block;font-family:"summernote";font-style:normal;font-weight:normal;text-decoration:inherit}.note-icon-align-center:before{content:""}.note-icon-align-indent:before{content:""}.note-icon-align-justify:before{content:""}.note-icon-align-left:before{content:""}.note-icon-align-outdent:before{content:""}.note-icon-align-right:before{content:""}.note-icon-align:before{content:""}.note-icon-arrow-circle-down:before{content:""}.note-icon-arrow-circle-left:before{content:""}.note-icon-arrow-circle-right:before{content:""}.note-icon-arrow-circle-up:before{content:""}.note-icon-arrows-alt:before{content:""}.note-icon-arrows-h:before{content:""}.note-icon-arrows-v:before{content:""}.note-icon-bold:before{content:""}.note-icon-caret:before{content:""}.note-icon-chain-broken:before{content:""}.note-icon-circle:before{content:""}.note-icon-close:before{content:""}.note-icon-code:before{content:""}.note-icon-col-after:before{content:""}.note-icon-col-before:before{content:""}.note-icon-col-remove:before{content:""}.note-icon-eraser:before{content:""}.note-icon-font:before{content:""}.note-icon-frame:before{content:""}.note-icon-italic:before{content:""}.note-icon-link:before{content:""}.note-icon-magic:before{content:""}.note-icon-menu-check:before{content:""}.note-icon-minus:before{content:""}.note-icon-orderedlist:before{content:""}.note-icon-pencil:before{content:""}.note-icon-picture:before{content:""}.note-icon-question:before{content:""}.note-icon-redo:before{content:""}.note-icon-row-above:before{content:""}.note-icon-row-below:before{content:""}.note-icon-row-remove:before{content:""}.note-icon-special-character:before{content:""}.note-icon-square:before{content:""}.note-icon-strikethrough:before{content:""}.note-icon-subscript:before{content:""}.note-icon-summernote:before{content:""}.note-icon-superscript:before{content:""}.note-icon-table:before{content:""}.note-icon-text-height:before{content:""}.note-icon-trash:before{content:""}.note-icon-underline:before{content:""}.note-icon-undo:before{content:""}.note-icon-unorderedlist:before{content:""}.note-icon-video:before{content:""}.note-editor{position:relative}.note-editor .note-dropzone{position:absolute;z-index:100;display:none;color:#87cefa;background-color:#fff;opacity:0.95}.note-editor .note-dropzone .note-dropzone-message{display:table-cell;font-size:28px;font-weight:700;text-align:center;vertical-align:middle}.note-editor .note-dropzone.hover{color:#098ddf}.note-editor.dragover .note-dropzone{display:table}.note-editor .note-editing-area{position:relative}.note-editor .note-editing-area .note-editable{outline:0}.note-editor .note-editing-area .note-editable sup{vertical-align:super}.note-editor .note-editing-area .note-editable sub{vertical-align:sub}.note-editor .note-editing-area img.note-float-left{margin-right:10px}.note-editor .note-editing-area img.note-float-right{margin-left:10px}.note-editor.note-frame{border:1px solid #a9a9a9}.note-editor.note-frame.codeview .note-editing-area .note-editable{display:none}.note-editor.note-frame.codeview .note-editing-area .note-codable{display:block}.note-editor.note-frame .note-editing-area{overflow:hidden}.note-editor.note-frame .note-editing-area .note-editable{padding:10px;overflow:auto;color:#000;word-wrap:break-word;background-color:#fff}.note-editor.note-frame .note-editing-area .note-editable[contenteditable="false"]{background-color:#e5e5e5}.note-editor.note-frame .note-editing-area .note-codable{display:none;width:100%;padding:10px;margin-bottom:0;font-family:Menlo, Monaco, monospace, sans-serif;font-size:14px;color:#ccc;background-color:#222;border:0;-webkit-border-radius:0;-moz-border-radius:0;border-radius:0;box-shadow:none;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;-ms-box-sizing:border-box;box-sizing:border-box;resize:none}.note-editor.note-frame.fullscreen{position:fixed;top:0;left:0;z-index:1050;width:100% !important}.note-editor.note-frame.fullscreen .note-editable{background-color:#fff}.note-editor.note-frame.fullscreen .note-resizebar{display:none}.note-editor.note-frame .note-status-output{display:block;width:100%;height:20px;margin-bottom:0;font-size:14px;line-height:1.42857143;color:#000;border:0;border-top:1px solid #e2e2e2}.note-editor.note-frame .note-status-output:empty{height:0;border-top:0 solid transparent;padding-top:0}.note-editor.note-frame .note-statusbar{background-color:#f5f5f5;border-top:1px solid #ddd;border-bottom-right-radius:4px;border-bottom-left-radius:4px}.note-editor.note-frame .note-statusbar .note-resizebar{width:100%;height:9px;padding-top:1px;cursor:ns-resize}.note-editor.note-frame .note-statusbar .note-resizebar .note-icon-bar{width:20px;margin:1px auto;border-top:1px solid #a9a9a9}.note-editor.note-frame .note-statusbar.locked .note-resizebar{cursor:default}.note-editor.note-frame .note-statusbar.locked .note-resizebar .note-icon-bar{display:none}.note-editor.note-frame .note-placeholder{padding:10px}.note-popover.popover{max-width:none}.note-popover.popover .popover-content a{display:inline-block;max-width:200px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;vertical-align:middle;margin-top:5px}.note-popover.popover .arrow{left:20px !important}.note-toolbar{position:relative;z-index:500}.note-popover .popover-content,.panel-heading.note-toolbar{padding:0 0 5px 5px;margin:0}.note-popover .popover-content>.btn-group,.panel-heading.note-toolbar>.btn-group{margin-top:5px;margin-right:5px;margin-left:0}.note-popover .popover-content .btn-group .note-table,.panel-heading.note-toolbar .btn-group .note-table{min-width:0;padding:5px}.note-popover .popover-content .btn-group .note-table .note-dimension-picker,.panel-heading.note-toolbar .btn-group .note-table .note-dimension-picker{font-size:18px}.note-popover .popover-content .btn-group .note-table .note-dimension-picker .note-dimension-picker-mousecatcher,.panel-heading.note-toolbar .btn-group .note-table .note-dimension-picker .note-dimension-picker-mousecatcher{position:absolute !important;z-index:3;width:10em;height:10em;cursor:pointer}.note-popover .popover-content .btn-group .note-table .note-dimension-picker .note-dimension-picker-unhighlighted,.panel-heading.note-toolbar .btn-group .note-table .note-dimension-picker .note-dimension-picker-unhighlighted{position:relative !important;z-index:1;width:5em;height:5em;opacity:0.75;background:url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABIAAAASAgMAAAAroGbEAAAACVBMVEUAAIj4+Pjp6ekKlAqjAAAAAXRSTlMAQObYZgAAAAFiS0dEAIgFHUgAAAAJcEhZcwAACxMAAAsTAQCanBgAAAAHdElNRQfYAR0BKhmnaJzPAAAAG0lEQVQI12NgAAOtVatWMTCohoaGUY+EmIkEAEruEzK2J7tvAAAAAElFTkSuQmCC") repeat}.note-popover .popover-content .btn-group .note-table .note-dimension-picker .note-dimension-picker-highlighted,.panel-heading.note-toolbar .btn-group .note-table .note-dimension-picker .note-dimension-picker-highlighted{position:absolute !important;z-index:2;width:1em;height:1em;background:url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABIAAAASAgMAAAAroGbEAAAACVBMVEUAAIjd6vvD2f9LKLW+AAAAAXRSTlMAQObYZgAAAAFiS0dEAIgFHUgAAAAJcEhZcwAACxMAAAsTAQCanBgAAAAHdElNRQfYAR0BKwNDEVT0AAAAG0lEQVQI12NgAAOtVatWMTCohoaGUY+EmIkEAEruEzK2J7tvAAAAAElFTkSuQmCC") repeat}.note-popover .popover-content .note-style .dropdown-style blockquote,.panel-heading.note-toolbar .note-style .dropdown-style blockquote,.note-popover .popover-content .note-style .dropdown-style pre,.panel-heading.note-toolbar .note-style .dropdown-style pre{padding:5px 10px;margin:0}.note-popover .popover-content .note-style .dropdown-style h1,.panel-heading.note-toolbar .note-style .dropdown-style h1,.note-popover .popover-content .note-style .dropdown-style h2,.panel-heading.note-toolbar .note-style .dropdown-style h2,.note-popover .popover-content .note-style .dropdown-style h3,.panel-heading.note-toolbar .note-style .dropdown-style h3,.note-popover .popover-content .note-style .dropdown-style h4,.panel-heading.note-toolbar .note-style .dropdown-style h4,.note-popover .popover-content .note-style .dropdown-style h5,.panel-heading.note-toolbar .note-style .dropdown-style h5,.note-popover .popover-content .note-style .dropdown-style h6,.panel-heading.note-toolbar .note-style .dropdown-style h6,.note-popover .popover-content .note-style .dropdown-style p,.panel-heading.note-toolbar .note-style .dropdown-style p{padding:0;margin:0}.note-popover .popover-content .note-color .dropdown-toggle,.panel-heading.note-toolbar .note-color .dropdown-toggle{width:20px;padding-left:5px}.note-popover .popover-content .note-color .dropdown-menu,.panel-heading.note-toolbar .note-color .dropdown-menu{min-width:337px}.note-popover .popover-content .note-color .dropdown-menu .note-palette,.panel-heading.note-toolbar .note-color .dropdown-menu .note-palette{display:inline-block;width:160px;margin:0}.note-popover .popover-content .note-color .dropdown-menu .note-palette:first-child,.panel-heading.note-toolbar .note-color .dropdown-menu .note-palette:first-child{margin:0 5px}.note-popover .popover-content .note-color .dropdown-menu .note-palette .note-palette-title,.panel-heading.note-toolbar .note-color .dropdown-menu .note-palette .note-palette-title{margin:2px 7px;font-size:12px;text-align:center;border-bottom:1px solid #63676a}.note-popover .popover-content .note-color .dropdown-menu .note-palette .note-color-reset,.panel-heading.note-toolbar .note-color .dropdown-menu .note-palette .note-color-reset{width:100%;padding:0 3px;margin:3px;font-size:11px;cursor:pointer;-webkit-border-radius:5px;-moz-border-radius:5px;border-radius:5px}.note-popover .popover-content .note-color .dropdown-menu .note-palette .note-color-row,.panel-heading.note-toolbar .note-color .dropdown-menu .note-palette .note-color-row{height:20px}.note-popover .popover-content .note-color .dropdown-menu .note-palette .note-color-reset:hover,.panel-heading.note-toolbar .note-color .dropdown-menu .note-palette .note-color-reset:hover{background:#eee}.note-popover .popover-content .note-para .dropdown-menu,.panel-heading.note-toolbar .note-para .dropdown-menu{min-width:216px;padding:5px}.note-popover .popover-content .note-para .dropdown-menu>div:first-child,.panel-heading.note-toolbar .note-para .dropdown-menu>div:first-child{margin-right:5px}.note-popover .popover-content .dropdown-menu,.panel-heading.note-toolbar .dropdown-menu{min-width:90px}.note-popover .popover-content .dropdown-menu:not(.dropdown-style),.panel-heading.note-toolbar .dropdown-menu:not(.dropdown-style){color:#adadad;background-color:#3c3f41}.note-popover .popover-content .dropdown-menu.right,.panel-heading.note-toolbar .dropdown-menu.right{right:0;left:auto}.note-popover .popover-content .dropdown-menu.right::before,.panel-heading.note-toolbar .dropdown-menu.right::before{right:9px;left:auto !important}.note-popover .popover-content .dropdown-menu.right::after,.panel-heading.note-toolbar .dropdown-menu.right::after{right:10px;left:auto !important}.note-popover .popover-content .dropdown-menu.note-check li a i,.panel-heading.note-toolbar .dropdown-menu.note-check li a i{color:deepskyblue;visibility:hidden}.note-popover .popover-content .dropdown-menu.note-check li a.checked i,.panel-heading.note-toolbar .dropdown-menu.note-check li a.checked i{visibility:visible}.note-popover .popover-content .note-fontsize-10,.panel-heading.note-toolbar .note-fontsize-10{font-size:10px}.note-popover .popover-content .note-color-palette,.panel-heading.note-toolbar .note-color-palette{line-height:1}.note-popover .popover-content .note-color-palette div .note-color-btn,.panel-heading.note-toolbar .note-color-palette div .note-color-btn{width:20px;height:20px;padding:0;margin:0;border:1px solid #63676a;cursor:pointer}.note-popover .popover-content .note-color-palette div .note-color-btn:hover,.panel-heading.note-toolbar .note-color-palette div .note-color-btn:hover{border:1px solid #3c3f41}.note-dialog>div{display:none}.note-dialog .form-group{margin-right:0;margin-left:0}.note-dialog .note-modal-form{margin:0}.note-dialog .note-image-dialog .note-dropzone{min-height:100px;margin-bottom:10px;font-size:30px;line-height:4;color:lightgray;text-align:center;border:4px dashed #d3d3d3}@-moz-document url-prefix(){.note-image-input{height:auto}}.note-placeholder{position:absolute;display:none;color:gray}.note-handle .note-control-selection{position:absolute;display:none;border:1px solid #000}.note-handle .note-control-selection>div{position:absolute}.note-handle .note-control-selection .note-control-selection-bg{width:100%;height:100%;background-color:#000;-webkit-opacity:.3;-khtml-opacity:.3;-moz-opacity:.3;opacity:.3;-ms-filter:alpha(opacity=30);filter:alpha(opacity=30)}.note-handle .note-control-selection .note-control-handle{width:7px;height:7px;border:1px solid #000}.note-handle .note-control-selection .note-control-holder{width:7px;height:7px;border:1px solid #000}.note-handle .note-control-selection .note-control-sizing{width:7px;height:7px;background-color:#fff;border:1px solid #000}.note-handle .note-control-selection .note-control-nw{top:-5px;left:-5px;border-right:0;border-bottom:0}.note-handle .note-control-selection .note-control-ne{top:-5px;right:-5px;border-bottom:0;border-left:none}.note-handle .note-control-selection .note-control-sw{bottom:-5px;left:-5px;border-top:0;border-right:0}.note-handle .note-control-selection .note-control-se{right:-5px;bottom:-5px;cursor:se-resize}.note-handle .note-control-selection .note-control-se.note-control-holder{cursor:default;border-top:0;border-left:none}.note-handle .note-control-selection .note-control-selection-info{right:0;bottom:0;padding:5px;margin:5px;font-size:12px;color:#fff;background-color:#000;-webkit-border-radius:5px;-moz-border-radius:5px;border-radius:5px;-webkit-opacity:.7;-khtml-opacity:.7;-moz-opacity:.7;opacity:.7;-ms-filter:alpha(opacity=70);filter:alpha(opacity=70)}.note-hint-popover{min-width:100px;padding:2px}.note-hint-popover .popover-content{max-height:150px;padding:3px;overflow:auto}.note-hint-popover .popover-content .note-hint-group .note-hint-item{display:block !important;padding:3px}.note-hint-popover .popover-content .note-hint-group .note-hint-item.active,.note-hint-popover .popover-content .note-hint-group .note-hint-item:hover{display:block;clear:both;font-weight:400;line-height:1.4;color:#fff;text-decoration:none;white-space:nowrap;cursor:pointer;background-color:#428bca;outline:0}html{margin:0;padding:0;height:100%;position:relative}body{margin:0;padding:0;min-height:100%;direction:ltr}body.mobile-view-activated.hidden-menu{overflow-x:hidden}body.modal-open{overflow:hidden !important}a:hover,a:active,a:focus,button,button:active,button:focus,object,embed,input::-moz-focus-inner{outline:0}h1,h3,h4{margin:0;font-family:"Oxygen Bold","Helvetica Neue",Helvetica,Arial,sans-serif}.page-title{margin:12px 0 28px}.page-title span{font-size:15px;color:#313335;display:inline-block;vertical-align:1px}label,.editable-input .editable-checklist>div>label>span{font-weight:normal}*:not(td):focus{outline:0 !important}a,input,button{-ms-touch-action:none !important}textarea:focus,select:focus,input[type="text"]:focus,input[type="password"]:focus,input[type="datetime"]:focus,input[type="datetime-local"]:focus,input[type="date"]:focus,input[type="month"]:focus,input[type="time"]:focus,input[type="week"]:focus,input[type="number"]:focus,input[type="email"]:focus,input[type="url"]:focus,input[type="search"]:focus,input[type="tel"]:focus,input[type="color"]:focus,.uneditable-input:focus{outline:0;outline:thin dotted \9;box-shadow:inset -1px 1px 5px 0 rgba(0,0,0,0.8) !important}.input-sm,.input-group-sm>.form-control,.input-group-sm>.input-group-addon,.input-group-sm>.input-group-btn>.btn,.input-lg,.input-group-lg>.form-control,.input-group-lg>.input-group-addon,.input-group-lg>.input-group-btn>.btn,.input-xs,.form-control{border-radius:0px !important;-webkit-border-radius:0px !important;-moz-border-radius:0px !important}.input-xs{height:24px;padding:2px 10px;font-size:11px;line-height:1.5}.btn-xs,.btn-group-xs>.btn{padding:0px 2px;font-size:10px;line-height:1.3}.btn-sm,.btn-group-sm>.btn{padding:5px 8px 4px}.btn-lg,.btn-group-lg>.btn{padding:10px 16px}.no-space{margin:0}.no-space>[class*="col-"]{margin:0 !important;padding-right:0;padding-left:0}.h1,.h2,.h3,.h4,.h5,.h6{display:inline-block}h1,.h1{letter-spacing:-1px;font-size:22px;margin:10px 0}h1 small,h1 .small,.h1 small,.h1 .small{font-size:12px;font-weight:300;letter-spacing:-1px}h2,.h2{font-size:20px;margin:20px 0;line-height:normal}h3,.h3{display:block;font-size:17px;font-weight:400;margin:20px 0;line-height:normal}h4,.h4{line-height:normal;margin:20px 0 10px 0}h5,.h5{font-size:14px;font-weight:300;margin-top:0;margin-bottom:10px;line-height:normal}h6,.h6{font-size:13px;margin:10px 0;font-weight:bold;line-height:normal}.row-seperator-header{margin:15px 14px 20px;border-bottom:none;display:block;color:#303133;font-size:20px;font-weight:400}.center-canvas,.center-child-canvas>canvas{display:block !important;margin:0 auto !important}.form-control{box-shadow:none !important;-webkit-box-shadow:none !important;-moz-box-shadow:none !important}.form hr{margin-left:-13px;margin-right:-13px;border-color:rgba(0,0,0,0.1);margin-top:20px;margin-bottom:20px}.form fieldset{display:block;border:none;background:rgba(255,255,255,0.9);position:relative}fieldset{position:relative}.popover-content .form-actions{margin:0 -14px -9px;border-radius:0 0 3px 3px;padding:9px 14px}.no-padding .form .form-actions{margin:0;display:block;padding:13px 14px 15px;border-top:1px solid rgba(0,0,0,0.1);background:rgba(248,248,248,0.9);text-align:right;margin-top:25px}.form header,legend{display:block;padding:8px 0;border-bottom:1px dashed rgba(0,0,0,0.2);background:#fff;font-size:16px;font-weight:300;color:#2b2b2b;margin:25px 0px 20px}.no-padding .form header{margin:25px 14px 0}.form header:first-child{margin-top:10px}legend{font-weight:400;margin-top:0px;background:none}.input-group-addon{padding:6px 10px;will-change:background-color, border-color;-moz-border-radius:0;-webkit-border-radius:0;border-radius:0;-webkit-transition:all ease-out 0.15s;transition:all ease-out 0.15s}.input-group-addon .fa{font-size:14px}.input-group-addon .fa-lg,.input-group-addon .fa-tree-child,.input-group-addon .fa-2x{font-size:2em}.input-group-addon .fa-3x,.input-group-addon .fa-4x,.input-group-addon .fa-5x{font-size:30px}input[type="text"]:focus+.input-group-addon,input[type="password"]:focus+.input-group-addon,input[type="email"]:focus+.input-group-addon{border-color:#568a89;color:#568a89}.has-warning input[type="text"],.has-warning input[type="text"]+.input-group-addon{border-color:#e28a0d}.has-warning input[type="text"]+.input-group-addon{background-color:#fbe3c0;color:#2b2b2b}.has-warning input[type="text"]:focus,.has-warning input[type="text"]:focus+.input-group-addon{border-color:#e28a0d}.has-warning input[type="text"]:focus+.input-group-addon{background-color:#e28a0d;color:#fff}.has-error .input-group-addon{border-color:#d9534f !important;background:#d9534f !important;color:#2b2b2b !important}.has-success .input-group-addon{border-color:#4f9e4f !important;background-color:#2b2b2b !important;color:#4f9e4f !important}.form fieldset .form-group:last-child,.form fieldset .form-group:last-child .note,.form .form-group:last-child,.form .form-group:last-child .note{margin-bottom:0}.note{margin-top:6px;padding:0 1px;font-size:11px;line-height:15px;color:#7c8184}.input-icon-right{position:relative}.input-icon-right>i,.input-icon-left>i{position:absolute;right:10px;top:10px;font-size:12px;color:#63676a}.input-icon-left>i{right:auto;left:24px}.input-icon-right .form-control{padding-right:27px}.input-icon-left .form-control{padding-left:29px}input[type="text"].ui-autocomplete-loading,input[type="password"].ui-autocomplete-loading,input[type="datetime"].ui-autocomplete-loading,input[type="datetime-local"].ui-autocomplete-loading,input[type="date"].ui-autocomplete-loading,input[type="month"].ui-autocomplete-loading,input[type="time"].ui-autocomplete-loading,input[type="week"].ui-autocomplete-loading,input[type="number"].ui-autocomplete-loading,input[type="email"].ui-autocomplete-loading,input[type="url"].ui-autocomplete-loading,input[type="search"].ui-autocomplete-loading,input[type="tel"].ui-autocomplete-loading,input[type="color"].ui-autocomplete-loading{background-image:url("../../img/select2-spinner.gif") !important;background-repeat:no-repeat;background-position:99% 50%;padding-right:27px}.input-group-addon .checkbox,.input-group-addon .editable-input .editable-checklist>div>label,.editable-input .input-group-addon .editable-checklist>div>label,.input-group-addon .radio{min-height:0px;margin-right:0px !important;padding-top:0}.input-group-addon label input[type="checkbox"].checkbox+span,.input-group-addon .editable-input .editable-checklist>div>label>span input[type="checkbox"].checkbox+span,.editable-input .input-group-addon .editable-checklist>div>label>span input[type="checkbox"].checkbox+span,.input-group-addon label input[type="radio"].radiobox+span,.input-group-addon .editable-input .editable-checklist>div>label>span input[type="radio"].radiobox+span,.editable-input .input-group-addon .editable-checklist>div>label>span input[type="radio"].radiobox+span,.input-group-addon label input[type="radio"].radiobox+span:before,.input-group-addon .editable-input .editable-checklist>div>label>span input[type="radio"].radiobox+span:before,.editable-input .input-group-addon .editable-checklist>div>label>span input[type="radio"].radiobox+span:before,.input-group-addon label input[type="checkbox"].checkbox+span:before,.input-group-addon .editable-input .editable-checklist>div>label>span input[type="checkbox"].checkbox+span:before,.editable-input .input-group-addon .editable-checklist>div>label>span input[type="checkbox"].checkbox+span:before{margin-right:0px}.alert{margin-bottom:10px;margin-top:0px;padding:5px 15px 5px 34px;color:#675100;border-width:0px;border-left-width:3px;padding:10px}.alert .ui-pnotify-title{line-height:12px}.alert .ui-pnotify-text{font-size:10px}.alert .close{top:0px;right:-5px;line-height:18px}.alert-heading{font-weight:600}.alert-danger{border-color:#a52521;color:#2b2b2b;background:#f6d1d0;text-shadow:none}.alert-danger .ui-pnotify-icon{color:#a52521}.alert-warning{border-color:#e28a0d;color:#2b2b2b;background:#fdedd8}.alert-warning .ui-pnotify-icon{color:#e28a0d}.alert-success{border-color:#4f9e4f;color:#2b2b2b;background:#d1e8d1}.alert-success .ui-pnotify-icon{color:#4f9e4f}.alert-info{border-color:#316490;color:#2b2b2b;background:#abc9e2}.alert-info .ui-pnotify-icon{color:#316490}.progress-micro{height:2px !important;line-height:2px !important}.progress-xs{height:7px !important;line-height:7px !important}.progress-sm{height:14px !important;line-height:14px !important}.progress-lg{height:30px !important;line-height:30px !important}.progress .progress-bar{position:absolute;overflow:hidden;line-height:18px}.progress .progressbar-back-text{position:absolute;width:100%;height:100%;font-size:12px;line-height:20px;text-align:center}.progress .progressbar-front-text{display:block;width:100%;font-size:12px;line-height:20px;text-align:center}.progress.right .progress-bar{right:0}.progress.right .progressbar-front-text{position:absolute;right:0}.progress.vertical{width:25px;height:100%;min-height:150px;margin-right:20px;display:inline-block;margin-bottom:0px}.progress.wide-bar{width:40px}.progress.vertical.bottom{position:relative}.progress.vertical.bottom .progressbar-front-text{position:absolute;bottom:0}.progress.vertical .progress-bar{width:100%;height:0;-webkit-transition:height 0.6s ease;transition:height 0.6s ease}.progress.vertical.bottom .progress-bar{position:absolute;bottom:0}@-webkit-keyframes progress-bar-stripes{from{background-position:40px 0}to{background-position:0 0}}@-moz-keyframes progress-bar-stripes{from{background-position:40px 0}to{background-position:0 0}}@-o-keyframes progress-bar-stripes{from{background-position:0 0}to{background-position:40px 0}}@keyframes progress-bar-stripes{from{background-position:40px 0}to{background-position:0 0}}.progress{position:relative;margin-bottom:20px;overflow:hidden;height:18px;background:#63676a;-webkit-box-shadow:0 1px 0 transparent,0 0 0 1px #63676a inset;box-shadow:0 1px 0 transparent,0 0 0 1px #63676a inset;-moz-border-radius:0px;-webkit-border-radius:0px;border-radius:0px}.progress-bar{float:left;width:0;height:100%;font-size:11px;color:#fff;text-align:center;background-color:#428bca;font-weight:bold;-webkit-transition:width 1s ease-in-out,background-color 1s ease-in-out;transition:width 1s ease-in-out,background-color 1s ease-in-out}.progress-striped .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));background-image:-webkit-linear-gradient(45deg, rgba(255,255,255,0.15) 25%, transparent 25%, transparent 50%, rgba(255,255,255,0.15) 50%, rgba(255,255,255,0.15) 75%, transparent 75%, transparent);background-image:-moz-linear-gradient(45deg, rgba(255,255,255,0.15) 25%, transparent 25%, transparent 50%, rgba(255,255,255,0.15) 50%, rgba(255,255,255,0.15) 75%, transparent 75%, transparent);background-image:linear-gradient(45deg, rgba(255,255,255,0.15) 25%,rgba(0,0,0,0) 25%,rgba(0,0,0,0) 50%,rgba(255,255,255,0.15) 50%,rgba(255,255,255,0.15) 75%,rgba(0,0,0,0) 75%,rgba(0,0,0,0));background-size:40px 40px}.progress.active .progress-bar{-webkit-animation:progress-bar-stripes 2s linear infinite;-moz-animation:progress-bar-stripes 2s linear infinite;-ms-animation:progress-bar-stripes 2s linear infinite;-o-animation:progress-bar-stripes 2s linear infinite;animation:progress-bar-stripes 2s linear infinite}.progress-bar-danger{background-color:#a52521}.progress-striped .progress-bar-danger{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));background-image:-webkit-linear-gradient(45deg, rgba(255,255,255,0.15) 25%, transparent 25%, transparent 50%, rgba(255,255,255,0.15) 50%, rgba(255,255,255,0.15) 75%, transparent 75%, transparent);background-image:-moz-linear-gradient(45deg, rgba(255,255,255,0.15) 25%, transparent 25%, transparent 50%, rgba(255,255,255,0.15) 50%, rgba(255,255,255,0.15) 75%, transparent 75%, transparent);background-image:linear-gradient(45deg, rgba(255,255,255,0.15) 25%,rgba(0,0,0,0) 25%,rgba(0,0,0,0) 50%,rgba(255,255,255,0.15) 50%,rgba(255,255,255,0.15) 75%,rgba(0,0,0,0) 75%,rgba(0,0,0,0))}.progress-bar-success{background-color:#4f9e4f}.progress-striped .progress-bar-success{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));background-image:-webkit-linear-gradient(45deg, rgba(255,255,255,0.15) 25%, transparent 25%, transparent 50%, rgba(255,255,255,0.15) 50%, rgba(255,255,255,0.15) 75%, transparent 75%, transparent);background-image:-moz-linear-gradient(45deg, rgba(255,255,255,0.15) 25%, transparent 25%, transparent 50%, rgba(255,255,255,0.15) 50%, rgba(255,255,255,0.15) 75%, transparent 75%, transparent);background-image:linear-gradient(45deg, rgba(255,255,255,0.15) 25%,rgba(0,0,0,0) 25%,rgba(0,0,0,0) 50%,rgba(255,255,255,0.15) 50%,rgba(255,255,255,0.15) 75%,rgba(0,0,0,0) 75%,rgba(0,0,0,0))}.progress-bar-warning{background-color:#e28a0d}.progress-striped .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));background-image:-webkit-linear-gradient(45deg, rgba(255,255,255,0.15) 25%, transparent 25%, transparent 50%, rgba(255,255,255,0.15) 50%, rgba(255,255,255,0.15) 75%, transparent 75%, transparent);background-image:-moz-linear-gradient(45deg, rgba(255,255,255,0.15) 25%, transparent 25%, transparent 50%, rgba(255,255,255,0.15) 50%, rgba(255,255,255,0.15) 75%, transparent 75%, transparent);background-image:linear-gradient(45deg, rgba(255,255,255,0.15) 25%,rgba(0,0,0,0) 25%,rgba(0,0,0,0) 50%,rgba(255,255,255,0.15) 50%,rgba(255,255,255,0.15) 75%,rgba(0,0,0,0) 75%,rgba(0,0,0,0))}.progress-bar-info{background-color:#316490}.progress-striped .progress-bar-info{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));background-image:-webkit-linear-gradient(45deg, rgba(255,255,255,0.15) 25%, transparent 25%, transparent 50%, rgba(255,255,255,0.15) 50%, rgba(255,255,255,0.15) 75%, transparent 75%, transparent);background-image:-moz-linear-gradient(45deg, rgba(255,255,255,0.15) 25%, transparent 25%, transparent 50%, rgba(255,255,255,0.15) 50%, rgba(255,255,255,0.15) 75%, transparent 75%, transparent);background-image:linear-gradient(45deg, rgba(255,255,255,0.15) 25%,rgba(0,0,0,0) 25%,rgba(0,0,0,0) 50%,rgba(255,255,255,0.15) 50%,rgba(255,255,255,0.15) 75%,rgba(0,0,0,0) 75%,rgba(0,0,0,0))}.progress-info .bar,.progress .bar-info{background:#316490}.vertical-bars{padding:0;margin:0}.vertical-bars:after{content:"";display:block;height:0;clear:both}.vertical-bars li{padding:14px 0;width:25%;display:block;float:left;text-align:center}.vertical-bars li:first-child{border-left:none}.vertical-bars>li>.progress.vertical:first-child{margin-left:auto}.vertical-bars>li>.progress.vertical{margin:0 auto;float:none}.nav-tabs{border-bottom:none}.nav-tabs>li>a .badge{font-size:11px;padding:3px 5px 3px 5px;opacity:.5;margin-left:5px;min-width:17px;font-weight:normal}.tabs-left .nav-tabs>li>a .badge{margin-right:5px;margin-left:0px}.nav-tabs>li>a .label{display:inline-block;font-size:11px;margin-left:5px;opacity:.5}.nav-tabs>li>a{color:#63676a;font-family:"Oxygen Bold","Helvetica Neue",Helvetica,Arial,sans-serif}.nav-tabs>li>a:hover{color:#adadad;border-color:transparent transparent #63676a transparent;margin-top:1px;border-top-width:0}.nav-tabs>li.active>a{background-color:#adadad;color:#1d1d1d;border-top-width:0px !important;margin-top:1px !important;font-weight:bold}.tabs-left .nav-tabs>li.active>a{-webkit-box-shadow:-2px 0 0 #428bca;-moz-box-shadow:-2px 0 0 #428bca;box-shadow:-2px 0 0 #428bca;border-top-width:1px !important;border-left:none !important;margin-left:1px !important}.tabs-left .nav-pills>li.active>a{border:none !important;box-shadow:none !important;-webkit-box-shadow:none !important;-moz-box-shadow:none !important}.tabs-right .nav-tabs>li.active>a{-webkit-box-shadow:2px 0 0 #428bca;-moz-box-shadow:2px 0 0 #428bca;box-shadow:2px 0 0 #428bca;border-top-width:1px !important;border-right:none !important;margin-right:1px !important}.tabs-below .nav-tabs>li.active>a{-webkit-box-shadow:0 2px 0 #428bca;-moz-box-shadow:0 2px 0 #428bca;box-shadow:0 2px 0 #428bca;border-bottom-width:0px !important;border-top:none !important;margin-top:0px !important}.tabs-below>.nav-tabs,.tabs-right>.nav-tabs,.tabs-left>.nav-tabs{border-bottom:0}.tab-content>.tab-pane,.pill-content>.pill-pane{display:none}.tab-content>.active,.pill-content>.active{display:block}.tabs-below>.nav-tabs{border-top:1px solid #9b9b9b}.tabs-below>.nav-tabs>li{margin-top:-1px;margin-bottom:0}.tabs-left>.nav-tabs>li,.tabs-right>.nav-tabs>li,.tabs-left>.nav-pills>li,.tabs-right>.nav-pills>li{float:none}.tabs-left>.nav-tabs>li>a,.tabs-right>.nav-tabs>li>a,.tabs-left>.nav-pills>li>a,.tabs-right>.nav-pills>li>a{min-width:74px;margin-right:0;margin-bottom:3px}.tabs-left>.nav-tabs,.tabs-left>.nav-pills{float:left;margin-right:19px;border-right:1px solid #9b9b9b}.tabs-left>.nav-pills{border-right:none}.tabs-left>.nav-tabs>li>a{margin-right:-1px}.tabs-left>.nav-tabs>li>a:hover,.tabs-left>.nav-tabs>li>a:focus{border-color:#adadad #949494 #adadad #adadad}.tabs-left>.nav-tabs .active>a,.tabs-left>.nav-tabs .active>a:hover,.tabs-left>.nav-tabs .active>a:focus{border-color:#949494 transparent #949494 #9b9b9b;*border-right-color:#fff}.tabs-left>.tab-content{margin-left:109px}.tabs-right>.nav-tabs{float:right;margin-left:19px;border-left:1px solid #9b9b9b}.tabs-right>.nav-tabs>li>a{margin-left:-1px}.tabs-right>.nav-tabs>li>a:hover,.tabs-right>.nav-tabs>li>a:focus{border-color:#adadad #adadad #adadad #9b9b9b}.tabs-right>.nav-tabs .active>a,.tabs-right>.nav-tabs .active>a:hover,.tabs-right>.nav-tabs .active>a:focus{border-color:#9b9b9b #9b9b9b #9b9b9b transparent;*border-left-color:#fff}.tabs-below>.nav-tabs,.tabs-right>.nav-tabs,.tabs-left>.nav-tabs{border-bottom:0}.tab-content>.tab-pane,.pill-content>.pill-pane{display:none}.tab-content>.active,.pill-content>.active{display:block}.tabs-below>.nav-tabs{border-top:1px solid #9b9b9b}.tabs-below>.nav-tabs>li{margin-top:-1px;margin-bottom:0}.tabs-below>.nav-tabs>li>a:hover,.tabs-below>.nav-tabs>li>a:focus{border-top-color:#9b9b9b;border-bottom-color:transparent}.tabs-below>.nav-tabs>.active>a,.tabs-below>.nav-tabs>.active>a:hover,.tabs-below>.nav-tabs>.active>a:focus{border-color:transparent #9b9b9b #9b9b9b #9b9b9b}.nav-tabs.bordered{background:#fff;border:1px solid #9b9b9b}.nav-tabs.bordered>:first-child a{border-left-width:0px !important}.nav-tabs.bordered+.tab-content{border:1px solid #9b9b9b;border-top:none}.tabs-pull-right.nav-tabs>li,.tabs-pull-right.nav-pills>li{float:right}.tabs-pull-right.nav-tabs>li:first-child>a,.tabs-pull-right.nav-pills>li:first-child>a{margin-right:1px}.tabs-pull-right.bordered.nav-tabs>li:first-child>a,.tabs-pull-right.bordered.nav-pills>li:first-child>a{border-left-width:1px !important;margin-right:0px;border-right-width:0px}.dropdown-menu-xs{min-width:37px}.dropdown-menu-xs>li>a{padding:3px 10px}.dropdown-menu-xs>li>a:hover i{color:#fff !important}.dropdown-submenu{position:relative}.dropdown-submenu>.dropdown-menu{top:0;left:100%;margin-top:-6px;margin-left:-1px}.dropdown-submenu:hover>.dropdown-menu{display:block}.dropdown-submenu:hover>a{background-color:#63676a;color:#1d1d1d}.dropdown-submenu:hover a:after{border-left-color:#5cb85c}.dropdown-submenu>a:after{content:" ";display:block;position:absolute;right:5px;top:7px;width:0;height:0;border-color:transparent;border-style:solid;border-width:5px 0 5px 5px;border-left-color:#2b2b2b}.dropdown-submenu>a:hover:after{border-left-color:#adadad}.dropdown-submenu.disabled>a:after{border-left-color:#63676a}.dropdown-submenu.pull-left{float:none}.dropdown-submenu.pull-left>.dropdown-menu{left:-100%;margin-left:10px}.pagination>li>a,.pagination>li>span{box-shadow:inset 0 -2px 0 rgba(0,0,0,0.05);-moz-box-shadow:inset 0 -2px 0 rgba(0,0,0,0.05);-webkit-box-shadow:inset 0 -2px 0 rgba(0,0,0,0.05)}.btn-default.disabled{color:#adadad}.btn{font-family:"Oxygen Bold","Helvetica Neue",Helvetica,Arial,sans-serif;will-change:background-color, border-color;-moz-border-radius:2px;-webkit-border-radius:2px;border-radius:2px;-webkit-transition:color 0.18s ease-in-out,background-color 0.18s ease-in-out,border-color 0.18s ease-in-out,box-shadow 0.18s ease-in-out;transition:color 0.18s ease-in-out,background-color 0.18s ease-in-out,border-color 0.18s ease-in-out,box-shadow 0.18s ease-in-out}.btn.btn-ribbon{background-color:#707070;background-image:-moz-linear-gradient(top, #777, #666);background-image:-webkit-gradient(linear, 0 0, 0 100%, from(#777), to(#666));background-image:-webkit-linear-gradient(top, #777, #666);background-image:-o-linear-gradient(top, #777, #666);background-image:linear-gradient(to bottom, #777777,#666666);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff777777', endColorstr='#ff666666', GradientType=0);color:white;padding:0 5px;line-height:20px;vertical-align:middle;height:20px;display:block;border:none;float:left;margin:0 8px 0 0;cursor:pointer}.btn.btn-ribbon>i{font-size:111%}.ribbon-button-alignment{padding-top:10px;display:inline-block}.ribbon-button-alignment.pull-right>.btn.btn-ribbon{margin:0 0 0 8px}.panel-purple{border-color:#6e587a}.panel-purple>.panel-heading{color:#fff;background-color:#6e587a;border-color:#6e587a}.panel-greenLight{border-color:#71843f}.panel-greenLight>.panel-heading{color:#fff;background-color:#71843f;border-color:#71843f}.panel-greenDark{border-color:#496949}.panel-greenDark>.panel-heading{color:#fff;background-color:#496949;border-color:#496949}.panel-darken{border-color:#313335}.panel-darken>.panel-heading{color:#fff;background-color:#404040;border-color:#404040}.panel-green{border-color:#5cb85c}.panel-green>.panel-heading{color:#fff;background-color:#5cb85c;border-color:#5cb85c}.panel-red{border-color:#d9534f}.panel-red>.panel-heading{color:#fff;background-color:#d9534f;border-color:#d9534f}.panel-teal{border-color:#568a89}.panel-teal>.panel-heading{color:#fff;background-color:#568a89;border-color:#568a89}.panel-orange{border-color:#e28a0d}.panel-orange>.panel-heading{color:#fff;background-color:#e28a0d;border-color:#e28a0d}.panel-blueDark{border-color:#4c4f53}.panel-blueDark>.panel-heading{color:#fff;background-color:#4c4f53;border-color:#4c4f53}.panel-magenta{border-color:#6e3671}.panel-magenta>.panel-heading{color:#fff;background-color:#6e3671;border-color:#6e3671}.panel-blue{border-color:#428bca}.panel-blue>.panel-heading{color:#fff;background-color:#428bca;border-color:#428bca}.panel-footer>.btn-block{border-radius:0px;-moz-border-radius:0px;-webkit-border-radius:0px;border-bottom:none;border-left:none;border-right:none}.btn-circle{width:30px;height:30px;text-align:center;padding:6px 0;font-size:12px;line-height:18px;border-radius:50%;-moz-border-radius:50%;-webkit-border-radius:50%;-webkit-box-shadow:0 1px 6px 0 rgba(0,0,0,0.12),0 1px 6px 0 rgba(0,0,0,0.12);box-shadow:0 1px 6px 0 rgba(0,0,0,0.12),0 1px 6px 0 rgba(0,0,0,0.12)}.btn-circle.btn-sm,.btn-group-sm>.btn-circle.btn{width:22px;height:22px;padding:4px 0;font-size:12px;line-height:14px;border-radius:50%;-moz-border-radius:50%;-webkit-border-radius:50%}.btn-circle.btn-lg,.btn-group-lg>.btn-circle.btn{width:50px;height:50px;padding:10px 15px;font-size:18px;line-height:30px;border-radius:50%;-moz-border-radius:50%;-webkit-border-radius:50%}.btn-circle.btn-xl{width:70px;height:70px;padding:10px 15px;font-size:24px;line-height:50px;border-radius:50%;-moz-border-radius:50%;-webkit-border-radius:50%}.btn-label{position:relative;left:-8px;display:inline-block;padding:5px 8px;background:rgba(0,0,0,0.15);border-radius:2px 0 0 2px}.btn-labeled{padding-top:0;padding-bottom:0;padding-left:8px}.btn-link{box-shadow:none;-webkit-box-shadow:none;font-size:13px}.morris-hover.morris-default-style{border-radius:5px;padding:5px;color:#666;background:rgba(29,29,29,0.85);font-family:'Oxygen Bold';font-size:10px;text-align:left;-webkit-box-shadow:0 6px 12px rgba(0,0,0,0.4);box-shadow:0 6px 12px rgba(0,0,0,0.4)}.morris-hover.morris-default-style .morris-hover-row-label{font-weight:bold}.morris-hover.morris-default-style .morris-hover-point{white-space:nowrap}.morris-hover{position:absolute;z-index:903}.fixed-page-footer .morris-hover{z-index:900}.txt-color.txt-color-blue,.txt-color-blue.pf-help-light,.pf-help-light:hover,.txt-color-blue.pf-help,.pf-help:hover,.txt-color.pf-help-default:hover,.dataTable td.pf-help-default.pf-table-link-cell:hover,.dataTable td.pf-table-link-cell.pf-help-light:hover,.dataTable td.pf-table-link-cell.pf-help:hover,.dataTable td.pf-table-action-cell>.pf-help-default.pf-table-action-icon-cell:hover,.dataTable td.pf-table-action-cell>.pf-table-action-icon-cell.pf-help-light:hover,.dataTable td.pf-table-action-cell>.pf-table-action-icon-cell.pf-help:hover,.pf-landing .pf-landing-list li>i.pf-help-default:hover,.pf-landing .pf-landing-list li>i.pf-help-light:hover,.pf-landing .pf-landing-list li>i.pf-help:hover,.dataTable td.txt-color-blue.pf-table-link-cell,.dataTable td.pf-table-action-cell>.txt-color-blue.pf-table-action-icon-cell,.pf-landing .pf-landing-list li>i.txt-color-blue{color:#428bca !important}.txt-color.txt-color-blueLight,.txt-color-blueLight.pf-help-light,.txt-color-blueLight.pf-help,.dataTable td.txt-color-blueLight.pf-table-link-cell,.dataTable td.pf-table-action-cell>.txt-color-blueLight.pf-table-action-icon-cell,.pf-landing .pf-landing-list li>i.txt-color-blueLight{color:#92a2a8 !important}.txt-color.txt-color-blueDark,.txt-color-blueDark.pf-help-light,.txt-color-blueDark.pf-help,.dataTable td.txt-color-blueDark.pf-table-link-cell,.dataTable td.pf-table-action-cell>.txt-color-blueDark.pf-table-action-icon-cell,.pf-landing .pf-landing-list li>i.txt-color-blueDark{color:#4c4f53 !important}.txt-color.txt-color-grayLightest,.txt-color-grayLightest.pf-help-light,.txt-color-grayLightest.pf-help,.dataTable td.txt-color-grayLightest.pf-table-link-cell,.dataTable td.pf-table-action-cell>.txt-color-grayLightest.pf-table-action-icon-cell,.pf-landing .pf-landing-list li>i.txt-color-grayLightest{color:#eaeaea !important}.txt-color.txt-color-grayLighter,.txt-color-grayLighter.pf-help-light,.txt-color-grayLighter.pf-help,.dataTable td.txt-color-grayLighter.pf-table-link-cell,.dataTable td.pf-table-action-cell>.txt-color-grayLighter.pf-table-action-icon-cell,.pf-landing .pf-landing-list li>i.txt-color-grayLighter{color:#adadad !important}.txt-color.txt-color-grayLight,.pf-help-light,.txt-color-grayLight.pf-help,.dataTable td.txt-color-grayLight.pf-table-link-cell,.dataTable td.pf-table-link-cell.pf-help-light,.dataTable td.pf-table-action-cell>.txt-color-grayLight.pf-table-action-icon-cell,.dataTable td.pf-table-action-cell>.pf-table-action-icon-cell.pf-help-light,.pf-landing .pf-landing-list li>i.txt-color-grayLight,.pf-landing .pf-landing-list li>i.pf-help-light{color:#63676a !important}.txt-color.txt-color-gray,.txt-color-gray.pf-help-light,.pf-help,.dataTable td.txt-color-gray.pf-table-link-cell,.dataTable td.pf-table-link-cell.pf-help,.dataTable td.pf-table-action-cell>.pf-table-action-icon-cell,.pf-landing .pf-landing-list li>i.txt-color-gray,.pf-landing .pf-landing-list li>i.pf-help{color:#3c3f41 !important}.txt-color.txt-color-grayDark,.txt-color-grayDark.pf-help-light,.txt-color-grayDark.pf-help,.dataTable td.txt-color-grayDark.pf-table-link-cell,.dataTable td.pf-table-action-cell>.txt-color-grayDark.pf-table-action-icon-cell,.pf-landing .pf-landing-list li>i.txt-color-grayDark{color:#313335 !important}.txt-color.txt-color-greenLight,.txt-color-greenLight.pf-help-light,.txt-color-greenLight.pf-help,.dataTable td.txt-color-greenLight.pf-table-link-cell,.dataTable td.pf-table-action-cell>.txt-color-greenLight.pf-table-action-icon-cell,.pf-landing .pf-landing-list li>i.txt-color-greenLight{color:#66c84f !important}.txt-color.txt-color-green,.txt-color-green.pf-help-light,.pf-help-light.pf-log-info,.txt-color-green.pf-help,.pf-help.pf-log-info,.dataTable td.txt-color-green.pf-table-link-cell,.dataTable td.pf-table-link-cell.pf-log-info,.dataTable td.pf-table-action-cell>.txt-color-green.pf-table-action-icon-cell,.dataTable td.pf-table-action-cell>.pf-table-action-icon-cell.pf-log-info,.txt-color.pf-log-info,.pf-landing .pf-landing-list li>i.pf-log-info,.pf-landing .pf-landing-list li>i.txt-color-green{color:#5cb85c !important}.txt-color.txt-color-greenDark,.txt-color-greenDark.pf-help-light,.txt-color-greenDark.pf-help,.dataTable td.txt-color-greenDark.pf-table-link-cell,.dataTable td.pf-table-action-cell>.txt-color-greenDark.pf-table-action-icon-cell,.pf-landing .pf-landing-list li>i.txt-color-greenDark{color:#4f9e4f !important}.txt-color.txt-color-redLight,.txt-color-redLight.pf-help-light,.txt-color-redLight.pf-help,.dataTable td.txt-color-redLight.pf-table-link-cell,.dataTable td.pf-table-action-cell>.txt-color-redLight.pf-table-action-icon-cell,.pf-landing .pf-landing-list li>i.txt-color-redLight{color:#a65858 !important}.txt-color.txt-color-red,.txt-color-red.pf-help-light,.pf-help-light.pf-log-error,.txt-color-red.pf-help,.pf-help.pf-log-error,.dataTable td.txt-color-red.pf-table-link-cell,.dataTable td.pf-table-link-cell.pf-log-error,.dataTable td.pf-table-action-cell>.txt-color-red.pf-table-action-icon-cell,.dataTable td.pf-table-action-cell>.pf-table-action-icon-cell.pf-log-error,.txt-color.pf-log-error,.pf-landing .pf-landing-list li>i.pf-log-error,.pf-landing .pf-landing-list li>i.txt-color-red{color:#d9534f !important}.txt-color.txt-color-redDark,.txt-color-redDark.pf-help-light,.txt-color-redDark.pf-help,.dataTable td.txt-color-redDark.pf-table-link-cell,.dataTable td.pf-table-action-cell>.txt-color-redDark.pf-table-action-icon-cell,.pf-landing .pf-landing-list li>i.txt-color-redDark{color:#a52521 !important}.txt-color.txt-color-redDarker,.txt-color-redDarker.pf-help-light,.txt-color-redDarker.pf-help,.dataTable td.txt-color-redDarker.pf-table-link-cell,.dataTable td.pf-table-action-cell>.txt-color-redDarker.pf-table-action-icon-cell,.pf-landing .pf-landing-list li>i.txt-color-redDarker{color:#58100d !important}.txt-color.txt-color-yellow,.txt-color-yellow.pf-help-light,.txt-color-yellow.pf-help,.dataTable td.txt-color-yellow.pf-table-link-cell,.dataTable td.pf-table-action-cell>.txt-color-yellow.pf-table-action-icon-cell,.pf-landing .pf-landing-list li>i.txt-color-yellow{color:#e2ce48 !important}.txt-color.txt-color-yellowDark,.txt-color-yellowDark.pf-help-light,.txt-color-yellowDark.pf-help,.dataTable td.txt-color-yellowDark.pf-table-link-cell,.dataTable td.pf-table-action-cell>.txt-color-yellowDark.pf-table-action-icon-cell,.pf-landing .pf-landing-list li>i.txt-color-yellowDark{color:#c8b847 !important}.txt-color.txt-color-orangeLight,.txt-color-orangeLight.pf-help-light,.txt-color-orangeLight.pf-help,.dataTable td.txt-color-orangeLight.pf-table-link-cell,.dataTable td.pf-table-action-cell>.txt-color-orangeLight.pf-table-action-icon-cell,.pf-landing .pf-landing-list li>i.txt-color-orangeLight{color:#f0ad4e !important}.txt-color.txt-color-orange,.txt-color-orange.pf-help-light,.txt-color-orange.pf-help,.dataTable td.txt-color-orange.pf-table-link-cell,.dataTable td.pf-table-action-cell>.txt-color-orange.pf-table-action-icon-cell,.dataTable td.pf-table-action-cell:hover>.pf-table-action-icon-cell,.pf-landing .pf-landing-list li>i.txt-color-orange{color:#e28a0d !important}.txt-color.txt-color-orangeDark,.txt-color-orangeDark.pf-help-light,.txt-color-orangeDark.pf-help,.dataTable td.txt-color-orangeDark.pf-table-link-cell,.dataTable td.pf-table-action-cell>.txt-color-orangeDark.pf-table-action-icon-cell,.pf-landing .pf-landing-list li>i.txt-color-orangeDark{color:#c2760c !important}.txt-color.txt-color-pink,.txt-color-pink.pf-help-light,.txt-color-pink.pf-help,.dataTable td.txt-color-pink.pf-table-link-cell,.dataTable td.pf-table-action-cell>.txt-color-pink.pf-table-action-icon-cell,.pf-landing .pf-landing-list li>i.txt-color-pink{color:#e06fdf !important}.txt-color.txt-color-pinkDark,.txt-color-pinkDark.pf-help-light,.txt-color-pinkDark.pf-help,.dataTable td.txt-color-pinkDark.pf-table-link-cell,.dataTable td.pf-table-action-cell>.txt-color-pinkDark.pf-table-action-icon-cell,.pf-landing .pf-landing-list li>i.txt-color-pinkDark{color:#a8829f !important}.txt-color.txt-color-purple,.txt-color-purple.pf-help-light,.txt-color-purple.pf-help,.dataTable td.txt-color-purple.pf-table-link-cell,.dataTable td.pf-table-action-cell>.txt-color-purple.pf-table-action-icon-cell,.pf-landing .pf-landing-list li>i.txt-color-purple{color:#6e587a !important}.txt-color.txt-color-darken,.txt-color-darken.pf-help-light,.txt-color-darken.pf-help,.dataTable td.txt-color-darken.pf-table-link-cell,.dataTable td.pf-table-action-cell>.txt-color-darken.pf-table-action-icon-cell,.pf-landing .pf-landing-list li>i.txt-color-darken{color:#404040 !important}.txt-color.txt-color-lighten,.txt-color-lighten.pf-help-light,.txt-color-lighten.pf-help,.dataTable td.txt-color-lighten.pf-table-link-cell,.dataTable td.pf-table-action-cell>.txt-color-lighten.pf-table-action-icon-cell,.pf-landing .pf-landing-list li>i.txt-color-lighten{color:#d5e7ec !important}.txt-color.txt-color-white,.txt-color-white.pf-help-light,.txt-color-white.pf-help,.dataTable td.txt-color-white.pf-table-link-cell,.dataTable td.pf-table-action-cell>.txt-color-white.pf-table-action-icon-cell,.pf-landing .pf-landing-list li>i.txt-color-white{color:#fff !important}.txt-color.txt-color-magenta,.txt-color-magenta.pf-help-light,.txt-color-magenta.pf-help,.dataTable td.txt-color-magenta.pf-table-link-cell,.dataTable td.pf-table-action-cell>.txt-color-magenta.pf-table-action-icon-cell,.pf-landing .pf-landing-list li>i.txt-color-magenta{color:#6e3671 !important}.txt-color.txt-color-tealLightest,.txt-color-tealLightest.pf-help-light,.txt-color-tealLightest.pf-help,.dataTable td.txt-color-tealLightest.pf-table-link-cell,.dataTable td.pf-table-link-cell:hover,.dataTable td.pf-table-action-cell>.txt-color-tealLightest.pf-table-action-icon-cell,.pf-landing .pf-landing-list li>i.txt-color-tealLightest{color:#6caead !important}.txt-color.txt-color-tealLighter,.txt-color-tealLighter.pf-help-light,.txt-color-tealLighter.pf-help,.dataTable td.txt-color-tealLighter.pf-table-link-cell,.dataTable td.pf-table-action-cell>.txt-color-tealLighter.pf-table-action-icon-cell,.pf-landing .pf-landing-list li>i{color:#568a89 !important}.txt-color.txt-color-teal,.txt-color-teal.pf-help-light,.txt-color-teal.pf-help,.dataTable td.pf-table-link-cell,.dataTable td.pf-table-action-cell>.txt-color-teal.pf-table-action-icon-cell,.dataTable td.pf-table-action-cell>td.pf-table-action-icon-cell.pf-table-link-cell,.pf-landing .pf-landing-list li>i.txt-color-teal{color:#477372 !important}.txt-color.txt-color-indigoDark,.txt-color-indigoDark.pf-help-light,.txt-color-indigoDark.pf-help,.dataTable td.txt-color-indigoDark.pf-table-link-cell,.dataTable td.pf-table-action-cell>.txt-color-indigoDark.pf-table-action-icon-cell,.pf-landing .pf-landing-list li>i.txt-color-indigoDark{color:#5c6bc0 !important}.txt-color.txt-color-indigoDarkest,.txt-color-indigoDarkest.pf-help-light,.txt-color-indigoDarkest.pf-help,.dataTable td.txt-color-indigoDarkest.pf-table-link-cell,.dataTable td.pf-table-action-cell>.txt-color-indigoDarkest.pf-table-action-icon-cell,.pf-landing .pf-landing-list li>i.txt-color-indigoDarkest{color:#313966 !important}.txt-color.txt-color-gold,.txt-color-gold.pf-help-light,.txt-color-gold.pf-help,.dataTable td.txt-color-gold.pf-table-link-cell,.dataTable td.pf-table-action-cell>.txt-color-gold.pf-table-action-icon-cell,.pf-landing .pf-landing-list li>i.txt-color-gold{color:#cfb53b !important}.txt-color.txt-color-silver,.txt-color-silver.pf-help-light,.txt-color-silver.pf-help,.dataTable td.txt-color-silver.pf-table-link-cell,.dataTable td.pf-table-action-cell>.txt-color-silver.pf-table-action-icon-cell,.pf-landing .pf-landing-list li>i.txt-color-silver{color:silver !important}.txt-color.txt-color-bronze,.txt-color-bronze.pf-help-light,.txt-color-bronze.pf-help,.dataTable td.txt-color-bronze.pf-table-link-cell,.dataTable td.pf-table-action-cell>.txt-color-bronze.pf-table-action-icon-cell,.pf-landing .pf-landing-list li>i.txt-color-bronze{color:#8c7853 !important}.txt-color.txt-color-primary,.txt-color-primary.pf-help-light,.txt-color-primary.pf-help,.dataTable td.txt-color-primary.pf-table-link-cell,.dataTable td.pf-table-action-cell>.txt-color-primary.pf-table-action-icon-cell,.pf-landing .pf-landing-list li>i.txt-color-primary{color:#375959 !important}.txt-color.txt-color-success,.txt-color-success.pf-help-light,.txt-color-success.pf-help,.dataTable td.txt-color-success.pf-table-link-cell,.dataTable td.pf-table-action-cell>.txt-color-success.pf-table-action-icon-cell,.pf-landing .pf-landing-list li>i.txt-color-success{color:#4f9e4f !important}.txt-color.txt-color-information,.txt-color-information.pf-help-light,.txt-color-information.pf-help,.dataTable td.txt-color-information.pf-table-link-cell,.dataTable td.pf-table-action-cell>.txt-color-information.pf-table-action-icon-cell,.pf-landing .pf-landing-list li>i.txt-color-information{color:#316490 !important}.txt-color.txt-color-info,.txt-color-info.pf-help-light,.txt-color-info.pf-help,.dataTable td.txt-color-info.pf-table-link-cell,.dataTable td.pf-table-action-cell>.txt-color-info.pf-table-action-icon-cell,.pf-landing .pf-landing-list li>i.txt-color-info{color:#316490 !important}.txt-color.txt-color-warning,.txt-color-warning.pf-help-light,.pf-help-light.pf-log-warning,.txt-color-warning.pf-help,.pf-help.pf-log-warning,.dataTable td.txt-color-warning.pf-table-link-cell,.dataTable td.pf-table-link-cell.pf-log-warning,.dataTable td.pf-table-action-cell>.txt-color-warning.pf-table-action-icon-cell,.dataTable td.pf-table-action-cell>.pf-table-action-icon-cell.pf-log-warning,.txt-color.pf-log-warning,.pf-landing .pf-landing-list li>i.pf-log-warning,.pf-landing .pf-landing-list li>i.txt-color-warning{color:#e28a0d !important}.txt-color.txt-color-danger,.txt-color-danger.pf-help-light,.txt-color-danger.pf-help,.dataTable td.txt-color-danger.pf-table-link-cell,.dataTable td.pf-table-action-cell>.txt-color-danger.pf-table-action-icon-cell,.pf-landing .pf-landing-list li>i.txt-color-danger{color:#a52521 !important}.txt-color.txt-color-hint,.txt-color-hint.pf-help-light,.txt-color-hint.pf-help,.dataTable td.txt-color-hint.pf-table-link-cell,.dataTable td.pf-table-action-cell>.txt-color-hint.pf-table-action-icon-cell,.pf-landing .pf-landing-list li>i.txt-color-hint{color:#c8b847 !important}.bg-color.bg-color-blue{background-color:#428bca !important}.bg-color.bg-color-blueLight{background-color:#92a2a8 !important}.bg-color.bg-color-blueDark{background-color:#4c4f53 !important}.bg-color.bg-color-green{background-color:#5cb85c !important}.bg-color.bg-color-greenLight{background-color:#71843f !important}.bg-color.bg-color-greenDark{background-color:#496949 !important}.bg-color.bg-color-red{background-color:#d9534f !important}.bg-color.bg-color-yellow{background-color:#e2ce48 !important}.bg-color.bg-color-orange{background-color:#e28a0d !important}.bg-color.bg-color-orangeDark{background-color:#c2760c !important}.bg-color.bg-color-pink{background-color:#e06fdf !important}.bg-color.bg-color-pinkDark{background-color:#a8829f !important}.bg-color.bg-color-purple{background-color:#6e587a !important}.bg-color.bg-color-darken{background-color:#404040 !important}.bg-color.bg-color-lighten{background-color:#d5e7ec !important}.bg-color.bg-color-white{background-color:#fff !important}.bg-color.bg-color-gray{background-color:#3c3f41 !important}.bg-color.bg-color-grayDark{background-color:#313335 !important}.bg-color.bg-color-grayDarker{background-color:#2b2b2b !important}.bg-color.bg-color-magenta{background-color:#6e3671 !important}.bg-color.bg-color-tealLighter{background-color:#568a89 !important}.bg-color.bg-color-tealDark{background-color:#375959 !important}.bg-color.bg-color-tealDarker{background-color:#212C30 !important}.bg-color.bg-color-tealDarkest{background-color:#1b2326 !important}.bg-color.bg-color-redLight{background-color:#a65858 !important}.pf-animation-slide-in{-moz-animation-duration:1.2s;-webkit-animation-duration:1.2s;-moz-animation-name:pfSlideIn;-webkit-animation-name:pfSlideIn;position:relative}@-webkit-keyframes pfSlideIn{from{opacity:0;top:-20px}to{opacity:1;top:0px}}@-moz-keyframes pfSlideIn{from{opacity:0;top:-20px}to{opacity:1;top:0px}}@-ms-keyframes pfSlideIn{from{opacity:0;top:-20px}to{opacity:1;top:0px}}@keyframes pfSlideIn{from{opacity:0;top:-20px}to{opacity:1;top:0px}}.pf-animation-path-draw{stroke-dasharray:500;stroke-dashoffset:500;animation:pfPathDraw 3s linear alternate infinite}@-webkit-keyframes pfPathDraw{from{stroke-dashoffset:500}to{stroke-dashoffset:0}}@-moz-keyframes pfPathDraw{from{stroke-dashoffset:500}to{stroke-dashoffset:0}}@-ms-keyframes pfPathDraw{from{stroke-dashoffset:500}to{stroke-dashoffset:0}}@keyframes pfPathDraw{from{stroke-dashoffset:500}to{stroke-dashoffset:0}}@-webkit-keyframes pfBubbleWobble{from{transform:scale(1, 1)}6.5%{transform:scale(1, 1.4)}13%{transform:scale(1.4, 1)}20%{transform:scale(1, 1)}to{transform:scale(1, 1)}}@-moz-keyframes pfBubbleWobble{from{transform:scale(1, 1)}6.5%{transform:scale(1, 1.4)}13%{transform:scale(1.4, 1)}20%{transform:scale(1, 1)}to{transform:scale(1, 1)}}@-ms-keyframes pfBubbleWobble{from{transform:scale(1, 1)}6.5%{transform:scale(1, 1.4)}13%{transform:scale(1.4, 1)}20%{transform:scale(1, 1)}to{transform:scale(1, 1)}}@keyframes pfBubbleWobble{from{transform:scale(1, 1)}6.5%{transform:scale(1, 1.4)}13%{transform:scale(1.4, 1)}20%{transform:scale(1, 1)}to{transform:scale(1, 1)}}@-webkit-keyframes pfBubblePop{from{opacity:1;transform:translateZ(0) scale(1, 1)}to{opacity:0;transform:translateZ(0) scale(1.75, 1.75)}}@-moz-keyframes pfBubblePop{from{opacity:1;transform:translateZ(0) scale(1, 1)}to{opacity:0;transform:translateZ(0) scale(1.75, 1.75)}}@-ms-keyframes pfBubblePop{from{opacity:1;transform:translateZ(0) scale(1, 1)}to{opacity:0;transform:translateZ(0) scale(1.75, 1.75)}}@keyframes pfBubblePop{from{opacity:1;transform:translateZ(0) scale(1, 1)}to{opacity:0;transform:translateZ(0) scale(1.75, 1.75)}}@-webkit-keyframes pfPulseDanger{0%{fill:#d9534f}50%{fill:#58100d}100%{fill:#d9534f}}@-moz-keyframes pfPulseDanger{0%{fill:#d9534f}50%{fill:#58100d}100%{fill:#d9534f}}@-ms-keyframes pfPulseDanger{0%{fill:#d9534f}50%{fill:#58100d}100%{fill:#d9534f}}@keyframes pfPulseDanger{0%{fill:#d9534f}50%{fill:#58100d}100%{fill:#d9534f}}@-webkit-keyframes pulseBackgroundSuccess{10%{background-color:#4f9e4f;color:#313335}}@-moz-keyframes pulseBackgroundSuccess{10%{background-color:#4f9e4f;color:#313335}}@-ms-keyframes pulseBackgroundSuccess{10%{background-color:#4f9e4f;color:#313335}}@keyframes pulseBackgroundSuccess{10%{background-color:#4f9e4f;color:#313335}}@-webkit-keyframes pulseBackgroundSuccessActive{10%{background-color:#478d47;color:#313335}}@-moz-keyframes pulseBackgroundSuccessActive{10%{background-color:#478d47;color:#313335}}@-ms-keyframes pulseBackgroundSuccessActive{10%{background-color:#478d47;color:#313335}}@keyframes pulseBackgroundSuccessActive{10%{background-color:#478d47;color:#313335}}.pf-animation-pulse-success{-webkit-animation:pulseBackgroundSuccess 1s 1;animation:pulseBackgroundSuccess 1s 1;-webkit-animation-timing-function:cubic-bezier(0.53, -0.03, 0.68, 0.38);animation-timing-function:cubic-bezier(0.53, -0.03, 0.68, 0.38);will-change:color, background-color;animation-fill-mode:forwards}.pf-animation-pulse-success .sorting_1{-webkit-animation:pulseBackgroundSuccessActive 1s 1;animation:pulseBackgroundSuccessActive 1s 1;-webkit-animation-timing-function:cubic-bezier(0.53, -0.03, 0.68, 0.38);animation-timing-function:cubic-bezier(0.53, -0.03, 0.68, 0.38);will-change:color, background-color;animation-fill-mode:forwards}@-webkit-keyframes pulseBackgroundSuccessKeep{0%{color:inherit}10%{background-color:#4f9e4f;color:#313335}100%{background-color:rgba(79,158,79,0.3)}}@-moz-keyframes pulseBackgroundSuccessKeep{0%{color:inherit}10%{background-color:#4f9e4f;color:#313335}100%{background-color:rgba(79,158,79,0.3)}}@-ms-keyframes pulseBackgroundSuccessKeep{0%{color:inherit}10%{background-color:#4f9e4f;color:#313335}100%{background-color:rgba(79,158,79,0.3)}}@keyframes pulseBackgroundSuccessKeep{0%{color:inherit}10%{background-color:#4f9e4f;color:#313335}100%{background-color:rgba(79,158,79,0.3)}}@-webkit-keyframes pulseBackgroundSuccessActiveKeep{0%{color:inherit}10%{background-color:#478d47;color:#313335}100%{background-color:rgba(71,141,71,0.3)}}@-moz-keyframes pulseBackgroundSuccessActiveKeep{0%{color:inherit}10%{background-color:#478d47;color:#313335}100%{background-color:rgba(71,141,71,0.3)}}@-ms-keyframes pulseBackgroundSuccessActiveKeep{0%{color:inherit}10%{background-color:#478d47;color:#313335}100%{background-color:rgba(71,141,71,0.3)}}@keyframes pulseBackgroundSuccessActiveKeep{0%{color:inherit}10%{background-color:#478d47;color:#313335}100%{background-color:rgba(71,141,71,0.3)}}.pf-animation-pulse-success-keep{-webkit-animation:pulseBackgroundSuccessKeep 1s 1;animation:pulseBackgroundSuccessKeep 1s 1;-webkit-animation-timing-function:cubic-bezier(0.53, -0.03, 0.68, 0.38);animation-timing-function:cubic-bezier(0.53, -0.03, 0.68, 0.38);will-change:color, background-color;animation-fill-mode:forwards}.pf-animation-pulse-success-keep .sorting_1{-webkit-animation:pulseBackgroundSuccessActiveKeep 1s 1;animation:pulseBackgroundSuccessActiveKeep 1s 1;-webkit-animation-timing-function:cubic-bezier(0.53, -0.03, 0.68, 0.38);animation-timing-function:cubic-bezier(0.53, -0.03, 0.68, 0.38);will-change:color, background-color;animation-fill-mode:forwards}@-webkit-keyframes pulseBackgroundWarning{10%{background-color:#e28a0d;color:#2b2b2b}}@-moz-keyframes pulseBackgroundWarning{10%{background-color:#e28a0d;color:#2b2b2b}}@-ms-keyframes pulseBackgroundWarning{10%{background-color:#e28a0d;color:#2b2b2b}}@keyframes pulseBackgroundWarning{10%{background-color:#e28a0d;color:#2b2b2b}}@-webkit-keyframes pulseBackgroundWarningActive{10%{background-color:#ca7b0c;color:#2b2b2b}}@-moz-keyframes pulseBackgroundWarningActive{10%{background-color:#ca7b0c;color:#2b2b2b}}@-ms-keyframes pulseBackgroundWarningActive{10%{background-color:#ca7b0c;color:#2b2b2b}}@keyframes pulseBackgroundWarningActive{10%{background-color:#ca7b0c;color:#2b2b2b}}.pf-animation-pulse-warning{-webkit-animation:pulseBackgroundWarning 1s 1;animation:pulseBackgroundWarning 1s 1;-webkit-animation-timing-function:cubic-bezier(0.53, -0.03, 0.68, 0.38);animation-timing-function:cubic-bezier(0.53, -0.03, 0.68, 0.38);will-change:color, background-color;animation-fill-mode:forwards}.pf-animation-pulse-warning .sorting_1{-webkit-animation:pulseBackgroundWarningActive 1s 1;animation:pulseBackgroundWarningActive 1s 1;-webkit-animation-timing-function:cubic-bezier(0.53, -0.03, 0.68, 0.38);animation-timing-function:cubic-bezier(0.53, -0.03, 0.68, 0.38);will-change:color, background-color;animation-fill-mode:forwards}@-webkit-keyframes pulseBackgroundWarningKeep{0%{color:inherit}10%{background-color:#e28a0d;color:#2b2b2b}100%{background-color:rgba(226,138,13,0.3)}}@-moz-keyframes pulseBackgroundWarningKeep{0%{color:inherit}10%{background-color:#e28a0d;color:#2b2b2b}100%{background-color:rgba(226,138,13,0.3)}}@-ms-keyframes pulseBackgroundWarningKeep{0%{color:inherit}10%{background-color:#e28a0d;color:#2b2b2b}100%{background-color:rgba(226,138,13,0.3)}}@keyframes pulseBackgroundWarningKeep{0%{color:inherit}10%{background-color:#e28a0d;color:#2b2b2b}100%{background-color:rgba(226,138,13,0.3)}}@-webkit-keyframes pulseBackgroundWarningActiveKeep{0%{color:inherit}10%{background-color:#ca7b0c;color:#2b2b2b}100%{background-color:rgba(202,123,12,0.3)}}@-moz-keyframes pulseBackgroundWarningActiveKeep{0%{color:inherit}10%{background-color:#ca7b0c;color:#2b2b2b}100%{background-color:rgba(202,123,12,0.3)}}@-ms-keyframes pulseBackgroundWarningActiveKeep{0%{color:inherit}10%{background-color:#ca7b0c;color:#2b2b2b}100%{background-color:rgba(202,123,12,0.3)}}@keyframes pulseBackgroundWarningActiveKeep{0%{color:inherit}10%{background-color:#ca7b0c;color:#2b2b2b}100%{background-color:rgba(202,123,12,0.3)}}.pf-animation-pulse-warning-keep{-webkit-animation:pulseBackgroundWarningKeep 1s 1;animation:pulseBackgroundWarningKeep 1s 1;-webkit-animation-timing-function:cubic-bezier(0.53, -0.03, 0.68, 0.38);animation-timing-function:cubic-bezier(0.53, -0.03, 0.68, 0.38);will-change:color, background-color;animation-fill-mode:forwards}.pf-animation-pulse-warning-keep .sorting_1{-webkit-animation:pulseBackgroundWarningActiveKeep 1s 1;animation:pulseBackgroundWarningActiveKeep 1s 1;-webkit-animation-timing-function:cubic-bezier(0.53, -0.03, 0.68, 0.38);animation-timing-function:cubic-bezier(0.53, -0.03, 0.68, 0.38);will-change:color, background-color;animation-fill-mode:forwards}@-webkit-keyframes pulseBackgroundDanger{10%{background-color:#d9534f;color:#2b2b2b}}@-moz-keyframes pulseBackgroundDanger{10%{background-color:#d9534f;color:#2b2b2b}}@-ms-keyframes pulseBackgroundDanger{10%{background-color:#d9534f;color:#2b2b2b}}@keyframes pulseBackgroundDanger{10%{background-color:#d9534f;color:#2b2b2b}}@-webkit-keyframes pulseBackgroundDangerActive{10%{background-color:#d43f3a;color:#2b2b2b}}@-moz-keyframes pulseBackgroundDangerActive{10%{background-color:#d43f3a;color:#2b2b2b}}@-ms-keyframes pulseBackgroundDangerActive{10%{background-color:#d43f3a;color:#2b2b2b}}@keyframes pulseBackgroundDangerActive{10%{background-color:#d43f3a;color:#2b2b2b}}.pf-animation-pulse-danger{-webkit-animation:pulseBackgroundDanger 1s 1;animation:pulseBackgroundDanger 1s 1;-webkit-animation-timing-function:cubic-bezier(0.53, -0.03, 0.68, 0.38);animation-timing-function:cubic-bezier(0.53, -0.03, 0.68, 0.38);will-change:color, background-color;animation-fill-mode:forwards}.pf-animation-pulse-danger .sorting_1{-webkit-animation:pulseBackgroundDangerActive 1s 1;animation:pulseBackgroundDangerActive 1s 1;-webkit-animation-timing-function:cubic-bezier(0.53, -0.03, 0.68, 0.38);animation-timing-function:cubic-bezier(0.53, -0.03, 0.68, 0.38);will-change:color, background-color;animation-fill-mode:forwards}@-webkit-keyframes pulseBackgroundDangerKeep{0%{color:inherit}10%{background-color:#d9534f;color:#2b2b2b}100%{background-color:rgba(217,83,79,0.3)}}@-moz-keyframes pulseBackgroundDangerKeep{0%{color:inherit}10%{background-color:#d9534f;color:#2b2b2b}100%{background-color:rgba(217,83,79,0.3)}}@-ms-keyframes pulseBackgroundDangerKeep{0%{color:inherit}10%{background-color:#d9534f;color:#2b2b2b}100%{background-color:rgba(217,83,79,0.3)}}@keyframes pulseBackgroundDangerKeep{0%{color:inherit}10%{background-color:#d9534f;color:#2b2b2b}100%{background-color:rgba(217,83,79,0.3)}}@-webkit-keyframes pulseBackgroundDangerActiveKeep{0%{color:inherit}10%{background-color:#d43f3a;color:#2b2b2b}100%{background-color:rgba(212,63,58,0.3)}}@-moz-keyframes pulseBackgroundDangerActiveKeep{0%{color:inherit}10%{background-color:#d43f3a;color:#2b2b2b}100%{background-color:rgba(212,63,58,0.3)}}@-ms-keyframes pulseBackgroundDangerActiveKeep{0%{color:inherit}10%{background-color:#d43f3a;color:#2b2b2b}100%{background-color:rgba(212,63,58,0.3)}}@keyframes pulseBackgroundDangerActiveKeep{0%{color:inherit}10%{background-color:#d43f3a;color:#2b2b2b}100%{background-color:rgba(212,63,58,0.3)}}.pf-animation-pulse-danger-keep{-webkit-animation:pulseBackgroundDangerKeep 1s 1;animation:pulseBackgroundDangerKeep 1s 1;-webkit-animation-timing-function:cubic-bezier(0.53, -0.03, 0.68, 0.38);animation-timing-function:cubic-bezier(0.53, -0.03, 0.68, 0.38);will-change:color, background-color;animation-fill-mode:forwards}.pf-animation-pulse-danger-keep .sorting_1{-webkit-animation:pulseBackgroundDangerActiveKeep 1s 1;animation:pulseBackgroundDangerActiveKeep 1s 1;-webkit-animation-timing-function:cubic-bezier(0.53, -0.03, 0.68, 0.38);animation-timing-function:cubic-bezier(0.53, -0.03, 0.68, 0.38);will-change:color, background-color;animation-fill-mode:forwards}.pf-animate-rotate,.modal-content h2[data-toggle="collapse"]:after,.modal-content h4[data-toggle="collapse"]:after,.panel-body h2[data-toggle="collapse"]:after,.panel-body h4[data-toggle="collapse"]:after{-webkit-transition:all 0.08s linear;transition:all 0.08s linear}.pf-animate-rotate.right,.modal-content h2.right[data-toggle="collapse"]:after,.modal-content h4.right[data-toggle="collapse"]:after,.panel-body h2.right[data-toggle="collapse"]:after,.panel-body h4.right[data-toggle="collapse"]:after{-webkit-transform:rotate(90deg);-ms-transform:rotate(90deg);transform:rotate(90deg)}.pf-animate-rotate.left,.modal-content h2.left[data-toggle="collapse"]:after,.modal-content h4.left[data-toggle="collapse"]:after,.panel-body h2.left[data-toggle="collapse"]:after,.panel-body h4.left[data-toggle="collapse"]:after{-webkit-transform:rotate(-90deg);-ms-transform:rotate(-90deg);transform:rotate(-90deg)}@keyframes rotateRainbow{0%{background-position-x:0}100%{background-position-x:100vw}}@font-face{font-family:'Triglavian';font-style:normal;font-weight:900;src:url("../../fonts/triglavian-regular.eot");src:url("../../fonts/triglavian-regular.eot?#iefix") format("embedded-opentype"),url("../../fonts/triglavian-regular.woff2") format("woff2"),url("../../fonts/triglavian-regular.woff") format("woff"),url("../../fonts/triglavian-regular.ttf") format("truetype");font-display:swap}.pf-triglivian{font-family:'Triglavian';font-weight:900}:fullscreen{overflow-y:scroll}body{-webkit-touch-callout:none;-webkit-user-select:none;-khtml-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;cursor:default}a,.pf-link{color:#477372;will-change:color;text-decoration:none;cursor:pointer;-webkit-transition:color 0.08s ease-out,background-color 0.08s ease-out;transition:color 0.08s ease-out,background-color 0.08s ease-out}a:hover,.pf-link:hover{color:#6caead;text-decoration:none}a:focus,.pf-link:focus{color:#477372}a.disabled,.pf-link.disabled{color:#777;pointer-events:none;cursor:default}em,.pf-font-italic{font-style:italic}em.pf-brand,.pf-font-italic.pf-brand{text-transform:uppercase}.pf-font-uppercase{text-transform:uppercase}.pf-font-capitalize{text-transform:capitalize}.pf-font-line-through{text-decoration:line-through}.fa-char:before{font-family:Arial, sans-serif;font-weight:bold;content:attr(data-char-content)}.fa-tree-child{color:#63676a;padding-right:5px}.no-scroll{overflow:hidden}.no-padding{padding:0 !important}.no-margin{margin:0}.pf-hidden-by-attr[data-attr='']{display:none}.pf-hidden-by-attr:not([data-attr='']){display:initial}.pf-hidden-by-attr:before{content:attr(data-attr) " " attr(data-attr-label)}.pf-shown-by-attr[data-attr='']{display:initial}.pf-shown-by-attr:not([data-attr='']){display:none}.pf-shown-by-attr:before{content:attr(data-attr) " " attr(data-attr-label)}::-webkit-scrollbar{display:none;width:16px;height:16px}::-webkit-scrollbar-track{background-color:#2b2b2b;border-left:1px solid #313335;border-radius:2px;-webkit-transition:background-color 0.5s;transition:background-color 0.5s}::-webkit-scrollbar-thumb{height:6px;border:5px solid transparent;background-clip:padding-box;-webkit-border-radius:8px;background-color:#868c90}::-webkit-scrollbar-thumb:hover{background-color:#a1a5a8}::-webkit-scrollbar-button{width:0;height:0;display:none}::-webkit-scrollbar-corner{background-color:transparent}::selection{background:#adadad;color:#1d1d1d}::-moz-selection{background:#adadad;color:#1d1d1d}.row--reverse{display:flex;flex-direction:column-reverse}.pf-container-flex-end{display:flex;justify-content:flex-end}.well.well-text-number{font-family:Oxygen, Arial, sans-serif;font-weight:bold;letter-spacing:.02em;line-height:16px;text-rendering:geometricPrecision;text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.collapse{will-change:height}.pf-help-default,.pf-help-light,.pf-help{cursor:help;pointer-events:auto;-webkit-transition:color 0.08s ease-out;transition:color 0.08s ease-out}.pf-dialog-icon-button,.pf-system-signature-module .pf-sig-table .fa-plus,.pf-system-route-module .pf-system-route-table td .fa-sync,.pf-system-route-module .pf-system-route-table td .fa-search,.pf-connection-info-module .pf-connection-info-table td .fa-plus{cursor:pointer;margin-top:2px;-webkit-transition:color 0.15s ease-out;transition:color 0.15s ease-out}.pf-dialog-icon-button:not(.collapsed),.pf-system-signature-module .pf-sig-table .fa-plus:not(.collapsed),.pf-system-route-module .pf-system-route-table td .fa-sync:not(.collapsed),.pf-system-route-module .pf-system-route-table td .fa-search:not(.collapsed),.pf-connection-info-module .pf-connection-info-table td .fa-plus:not(.collapsed),.pf-dialog-icon-button:hover,.pf-system-signature-module .pf-sig-table .fa-plus:hover,.pf-system-route-module .pf-system-route-table td .fa-sync:hover,.pf-system-route-module .pf-system-route-table td .fa-search:hover,.pf-connection-info-module .pf-connection-info-table td .fa-plus:hover{color:#e28a0d}.pf-module-icon-button{position:relative;cursor:pointer;color:#63676a;-webkit-transition:color 0.15s ease-out;transition:color 0.15s ease-out}.pf-module-icon-button:hover,.pf-module-icon-button.active{color:#e28a0d !important}.pf-module-icon-button.editable{border-bottom:none !important}.pf-module-icon-button[data-badge]:after{content:attr(data-badge);position:absolute;top:-8px;left:calc(100% - 5px);color:#e28a0d;border-radius:9px;padding:3px 4px;font-size:11px;font-weight:bold;line-height:1;vertical-align:baseline;white-space:nowrap;text-align:center;font-family:Oxygen, Arial, sans-serif}.pf-module-icon-button-copy{cursor:copy;-moz-user-select:text;user-select:text}.pf-bg-icon-inline,.editable-input .pf-editable-toggle .pf-editable-toggle-item,table td.pf-table-cell-bg-image .pf-table-cell-bg-image-wrapper,table th.pf-table-cell-bg-image .pf-table-cell-bg-image-wrapper{background-size:contain;background-origin:content-box;background-repeat:no-repeat;background-image:var(--bg-image);background-position:bottom 0 right 0;image-rendering:-webkit-optimize-contrast}.pf-bg-icon-inline{display:inline-block;width:20px;height:20px;margin:-5px 5px;outline:1px solid;outline-color:transparent;outline-offset:2px;-webkit-transition:outline-color 0.15s ease-out;transition:outline-color 0.15s ease-out}.pf-bg-icon-inline:hover{outline-color:#477372}.alert{will-change:opacity, transform}.editable-input optgroup[label]{background-color:#3c3f41;color:#63676a}.editable-input optgroup[label] option{background-color:#313335;color:#adadad;font-family:Consolas,monospace,Menlo,Monaco,"Courier New"}.editable-input .editable-checklist>div>label{display:block !important;padding-left:20px !important;color:#adadad}.editable-input .editable-checklist>div>label>span:after{top:-2px}.editable-input .editable-checklist.pf-editable-settings{display:grid;column-gap:15px;grid-template-columns:repeat(2, auto);align-items:end}.editable-input .editable-checklist.pf-editable-settings>div:nth-child(7){grid-column:span 2}.editable-input .editable-checklist.pf-editable-settings>div:nth-child(1):before,.editable-input .editable-checklist.pf-editable-settings>div:nth-child(8):before{display:block;font-weight:bold;line-height:18px;margin-bottom:5px;margin-top:5px;color:#7c8184;padding-left:25px}.editable-input .editable-checklist.pf-editable-settings>div:nth-child(1):before{content:'Modules'}.editable-input .editable-checklist.pf-editable-settings>div:nth-child(8):before{content:'Plugins'}.editable-input .editable-checklist .pf-editable-unknown[value='0']+span{color:#d9534f}.editable-input .editable-checklist .pf-editable-warn+span{color:#e28a0d}.editable-input .pf-editable-toggle{display:flex;margin-bottom:5px;justify-content:space-between;align-items:center}.editable-input .pf-editable-toggle .pf-editable-toggle-item{width:98px;height:68px;background-color:#7c8184;padding:3px;border-radius:4px;border:1px solid #313335;cursor:pointer;-webkit-transition:background-color 0.08s ease-out;transition:background-color 0.08s ease-out;will-change:background-color}.editable-input .pf-editable-toggle .pf-editable-toggle-item.active{background-color:#477372}.editable-input .pf-editable-toggle .pf-editable-toggle-item:hover{background-color:#568a89}select:active,select:hover{outline:none}select:active,select:hover{outline-color:red}.select2-results .select2-results__options--nested .select2-results__option{padding-left:10px}.select2-results [class*="col-"]{padding-left:3px;padding-right:3px}.select2-results [class*="col-"]:first-child{padding-left:0}.select2-results [class*="col-"]:last-child{padding-right:0}.select2-results .clearfix.pf-result-image [class*="col-"]{line-height:22px}.select2 ::-webkit-search-cancel-button{-webkit-appearance:none !important}.select2 .select2-selection__choice__remove{float:left}.select2 .select2-selection--multiple input{box-shadow:none !important}.dataTables_wrapper .dataTables_length select{margin:0 3px;padding:1px}.dataTables_wrapper .pf-table-toolbar-status{text-align:center;line-height:22px;color:#63676a}.dataTables_wrapper .dataTables_filter{margin-top:0}@media (max-width: 779px){.dataTables_wrapper .dataTables_filter input[type='search']{width:100px}}.dataTables_wrapper .dt-buttons,.dataTables_wrapper .dt-stats{display:inline-block}.dataTables_wrapper .dt-buttons .dt-button,.dataTables_wrapper .dt-stats .dt-button{padding:0 5px;line-height:22px;margin-bottom:0}.dataTables_wrapper .dt-buttons .dt-button:not(:last-child),.dataTables_wrapper .dt-stats .dt-button:not(:last-child){margin-right:5px}.dataTables_wrapper .dt-buttons .dt-button .fas,.dataTables_wrapper .dt-buttons .dt-button .pf-landing .pf-landing-list li>i,.pf-landing .pf-landing-list .dataTables_wrapper .dt-buttons .dt-button li>i,.dataTables_wrapper .dt-buttons .dt-stat .fas,.dataTables_wrapper .dt-buttons .dt-stat .pf-landing .pf-landing-list li>i,.pf-landing .pf-landing-list .dataTables_wrapper .dt-buttons .dt-stat li>i,.dataTables_wrapper .dt-stats .dt-button .fas,.dataTables_wrapper .dt-stats .dt-button .pf-landing .pf-landing-list li>i,.pf-landing .pf-landing-list .dataTables_wrapper .dt-stats .dt-button li>i,.dataTables_wrapper .dt-stats .dt-stat .fas,.dataTables_wrapper .dt-stats .dt-stat .pf-landing .pf-landing-list li>i,.pf-landing .pf-landing-list .dataTables_wrapper .dt-stats .dt-stat li>i{margin-right:5px}.dataTables_wrapper .dt-buttons .dt-button.disabled,.dataTables_wrapper .dt-buttons .dt-stat.disabled,.dataTables_wrapper .dt-stats .dt-button.disabled,.dataTables_wrapper .dt-stats .dt-stat.disabled{color:#4f5355}.dataTables_wrapper .dt-buttons .dt-button.processing:after,.dataTables_wrapper .dt-buttons .dt-stat.processing:after,.dataTables_wrapper .dt-stats .dt-button.processing:after,.dataTables_wrapper .dt-stats .dt-stat.processing:after{border:2px solid #4f5355;border-left-color:#e28a0d;border-right-color:#e28a0d}.pf-dataTable-condensed-toolbar{padding-top:3px}.pf-dataTable-condensed-toolbar .dataTables_info{padding-top:0;text-align:left}.pf-dataTable-condensed-toolbar .dataTables_paginate{padding-top:0;margin-top:0}.pf-dataTable-condensed-toolbar .dataTables_paginate .paginate_button{padding:0;height:13px;border:0 !important}.pf-dataTable-condensed-toolbar .dataTables_paginate .paginate_button:before,.pf-dataTable-condensed-toolbar .dataTables_paginate .paginate_button:after{top:0}.pf-dataTable-condensed-toolbar .dataTables_paginate .paginate_button:hover{background:transparent !important;color:#e28a0d !important}.pf-dataTable-condensed-toolbar .dt-buttons{text-align:right;margin-bottom:0;float:right !important}.pf-dataTable-condensed-toolbar .dt-buttons .dt-button{line-height:18px;padding-right:0}.pf-dataTable-condensed-toolbar .dt-buttons .dt-button .fa{margin-right:0}.dataTable th.pf-table-image-cell,.dataTable th.pf-table-image-small-cell,.dataTable th.pf-table-image-smaller-cell{padding-left:0 !important;padding-right:0 !important;image-rendering:-webkit-optimize-contrast}.dataTable th.sorting,.dataTable th.sorting_asc,.dataTable th.sorting_desc{padding-right:18px !important}.dataTable tr.group{background-color:rgba(43,43,43,0.4)}.dataTable td.editable-disabled:focus{outline:none;background-color:transparent}.dataTable td.editable-click:not(.editable-disabled){cursor:pointer}.dataTable td:focus,.dataTable td.editable-open{outline:1px solid #c2760c;outline-offset:-1px;background-color:rgba(194,118,12,0.08)}.dataTable td>.fa-circle{font-size:9px !important}.dataTable td>.label{font-size:80%}.dataTable td.pf-table-link-cell{cursor:pointer;-webkit-transition:color 0.08s ease-out;transition:color 0.08s ease-out}.dataTable td.pf-table-action-cell{cursor:pointer}.dataTable td.pf-table-action-cell>.pf-table-action-icon-cell{-webkit-transition:color 0.08s ease-out;transition:color 0.08s ease-out}.dataTable td.pf-table-type-cell>span:first-child{display:inline-block;width:28px}.dataTable td.pf-table-type-cell>span:nth-child(2){display:inline-block;width:22px}.dataTable td.pf-table-type-cell>span:nth-child(2) kbd:empty{display:none}.dataTable td.pf-table-image-cell{padding:0 !important;image-rendering:-webkit-optimize-contrast}.dataTable td.pf-table-image-cell img{width:26px;box-sizing:content-box;border-left:1px solid #3c3f41;border-right:1px solid #3c3f41}.dataTable td.pf-table-image-small-cell img{width:24px;border-left:1px solid transparent;border-right:1px solid transparent}.dataTable td.pf-table-image-smaller-cell{padding:0 !important;border-right:1px solid transparent}.dataTable td.pf-table-image-smaller-cell img{width:23px}.dataTable td.pf-table-button-sm-cell{padding:0 5px}.dataTable td.pf-table-counter-cell{color:#63676a}.dataTable td.pf-table-counter-cell .pf-digit-counter-small{width:20px;display:inline-block;font-size:10px}.dataTable td.pf-table-counter-cell .pf-digit-counter-large{width:26px;display:inline-block;font-size:10px}.dataTable td .pf-table-unknown-cell{color:#d9534f;font-style:italic}.dataTable td .pf-table-cell-ellipsis{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.dataTable td .pf-table-cell-80{width:90px}.dataTable td .pf-table-cell-90{width:100px}.dataTable td .pf-table-cell-100{width:110px}.dataTable td .pf-endpoint-bubble{width:15px;height:15px}.dataTable td .pf-endpoint-bubble:after{width:15px;height:15px}.dataTable td.separator-right,.dataTable th.separator-right{border-right:1px solid #3c3f41}.dataTable td svg.peity,.dataTable th svg.peity{display:block}.dataTable thead th.colHighlight{border-bottom:1px solid #c2760c}.dataTable tbody td.colHighlight{border-left:1px solid #c2760c;border-right:1px solid #c2760c;background-color:rgba(194,118,12,0.08)}.dataTable tbody tr:first-child td.colHighlight{border-top:1px solid #c2760c}.dataTable tbody tr:last-child td.colHighlight{border-bottom:1px solid #c2760c}table.pf-table-fixed{width:100%;table-layout:fixed}table.collapsing{-webkit-transition:height 0.01s ease;transition:height 0.01s ease}table.collapse.in{display:table}table tr.collapsing{-webkit-transition:height 0.01s ease;transition:height 0.01s ease}table tr.collapse.in{display:table-row !important}table td.separator-right,table th.separator-right{border-right:1px solid #313335}table td.pf-table-cell-10,table th.pf-table-cell-10{width:10px}table td.pf-table-cell-20,table th.pf-table-cell-20{width:20px}table td.pf-table-cell-50,table th.pf-table-cell-50{width:50px}table td.pf-table-cell-100,table th.pf-table-cell-100{max-width:100px}table td.pf-table-cell-ellipses-auto,table th.pf-table-cell-ellipses-auto{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}table td.pf-table-cell-bg-image,table th.pf-table-cell-bg-image{padding:0 0 0 5px !important;vertical-align:middle !important;border-top-color:transparent !important}table td.pf-table-cell-bg-image .pf-table-cell-bg-image-wrapper,table th.pf-table-cell-bg-image .pf-table-cell-bg-image-wrapper{display:block;width:auto;height:40px;padding:2px 0}table td.pf-table-cell-bg-image .pf-table-cell-bg-image-wrapper.smaller,table th.pf-table-cell-bg-image .pf-table-cell-bg-image-wrapper.smaller{height:30px}table td.pf-table-cell-chart,table th.pf-table-cell-chart{position:relative}table td.pf-table-cell-chart svg.peity,table th.pf-table-cell-chart svg.peity{display:block;position:absolute;margin-top:-2px}table td.pf-table-cell-progress,table th.pf-table-cell-progress{position:relative}table td.pf-table-cell-progress:before,table th.pf-table-cell-progress:before{content:'';position:absolute;bottom:0;left:0;width:0;width:calc(var(--width) * 1%);height:1px;border-top:1px solid #428bca}table td.pf-table-cell-progress:after,table th.pf-table-cell-progress:after{content:'';position:absolute;bottom:0;left:0;width:100%;height:1px;border-width:0 2px;border-style:solid;border-color:#adadad}.pf-table-tools{height:45px}.pf-table-tools>.btn-labeled:not(:last-child){margin-right:10px}.pf-table-tools-action{will-change:height, opacity;opacity:0;display:none;height:0;overflow:hidden}.pf-loading-overlay{position:absolute;width:100%;height:100%;top:0;left:0;opacity:0;background:#2b2b2b;z-index:1060;-moz-border-radius:5px;-webkit-border-radius:5px;border-radius:5px}.pf-loading-overlay .pf-loading-overlay-wrapper{width:25px;height:25px;margin:auto;text-align:center;position:absolute;top:0;left:0;bottom:0;right:0}.pf-loading-overlay .pf-loading-overlay-wrapper i{padding:3px}.navbar-header-block{width:100%}.navbar-header-block .navbar-nav{width:100%}.modal .navbar-nav li:not(.disabled){position:relative}.modal .navbar-nav li:not(.disabled):before{content:'';position:absolute;top:0;background-color:#5cb85c;opacity:0;-webkit-transition:top 0.15s ease-out,opacity 0.15s ease-out;transition:top 0.15s ease-out,opacity 0.15s ease-out;will-change:opacity,top;width:100%;height:2px}.modal .navbar-nav li:not(.disabled):hover:before,.modal .navbar-nav li:not(.disabled).active:before{top:-4px;opacity:1}.navbar-fixed-top .navbar-nav li:not(.disabled){position:relative}.navbar-fixed-top .navbar-nav li:not(.disabled):before{content:'';position:absolute;bottom:0;background-color:#5cb85c;opacity:0;-webkit-transition:bottom 0.15s ease-out,opacity 0.15s ease-out;transition:bottom 0.15s ease-out,opacity 0.15s ease-out;will-change:opacity,bottom;width:100%;height:2px}.navbar-fixed-top .navbar-nav li:not(.disabled):hover:before,.navbar-fixed-top .navbar-nav li:not(.disabled).active:before{bottom:-4px;opacity:1}.pf-navbar-version-info{cursor:pointer}.pf-site{background-color:#05050a;background-repeat:no-repeat}.pf-menu{color:#63676a;background-color:#313335;width:150px;transition-duration:180ms;will-change:transform}.pf-menu-left .list-group-item{cursor:pointer;-webkit-box-shadow:inset -10px 0px 5px -5px rgba(0,0,0,0.4);box-shadow:inset -10px 0px 5px -5px rgba(0,0,0,0.4)}.pf-menu-right .list-group-item{cursor:pointer;-webkit-box-shadow:inset 10px 0px 5px -5px rgba(0,0,0,0.4);box-shadow:inset 10px 0px 5px -5px rgba(0,0,0,0.4)}.list-group-item.disabled:after{content:'\f023';font-family:'Font Awesome 5 Free';font-weight:bold;color:#2b2b2b;position:absolute;right:8px}.list-group-item.loading{pointer-events:none;color:#777}.list-group-item.loading:after{content:'\f021';font-family:'Font Awesome 5 Free';font-weight:bold;position:absolute;right:8px;animation:fa-spin 2s infinite linear}.mCSB_container,.mCSB_dragger{will-change:top, left, height, width;transition:height .18s linear, width .18s linear}.mCSB_container{overflow-x:visible !important;overflow-y:visible !important}.pf-timestamp-counter{visibility:hidden}.pf-map-type-private{color:#7986cb}.pf-map-type-corporation{color:#5cb85c}.pf-map-type-alliance{color:#428bca}.pf-map-type-global{color:#568a89}.pf-user-status{color:#a52521}.pf-user-status-corp{color:#5cb85c}.pf-user-status-ally{color:#428bca}.pf-user-status-own{color:#7986cb}.pf-endpoint-bubble{display:inline-block;position:relative;width:18px;height:18px}.pf-endpoint-bubble:after{content:url("../../img/bubble.svg");display:inline-block;pointer-events:none;width:18px;height:18px;vertical-align:top}.pf-system-effect{display:none;color:#adadad;cursor:help}.pf-system-effect-magnetar{color:#e06fdf;display:inline-block}.pf-system-effect-redgiant{color:#d9534f;display:inline-block}.pf-system-effect-pulsar{color:#428bca;display:inline-block}.pf-system-effect-wolfrayet{color:#e28a0d;display:inline-block}.pf-system-effect-cataclysmic{color:#ffb;display:inline-block}.pf-system-effect-blackhole{color:#000;display:inline-block}.pf-rally,.pf-system-info-rally .pf-system-head{text-shadow:1px 1px 2px #1d1d1d;background-color:#782d77;background-image:url('data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgiPz4gPHN2ZyB2ZXJzaW9uPSIxLjEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PGRlZnM+PGxpbmVhckdyYWRpZW50IGlkPSJncmFkIiBncmFkaWVudFVuaXRzPSJvYmplY3RCb3VuZGluZ0JveCIgeDE9IjEuMCIgeTE9IjEuMCIgeDI9IjAuMCIgeTI9IjAuMCI+PHN0b3Agb2Zmc2V0PSIyNSUiIHN0b3AtY29sb3I9IiMzZTI2NGUiLz48c3RvcCBvZmZzZXQ9IjI1JSIgc3RvcC1jb2xvcj0iIzAwMDAwMCIgc3RvcC1vcGFjaXR5PSIwLjAiLz48c3RvcCBvZmZzZXQ9IjUwJSIgc3RvcC1jb2xvcj0iIzAwMDAwMCIgc3RvcC1vcGFjaXR5PSIwLjAiLz48c3RvcCBvZmZzZXQ9IjUwJSIgc3RvcC1jb2xvcj0iIzNlMjY0ZSIvPjxzdG9wIG9mZnNldD0iNzUlIiBzdG9wLWNvbG9yPSIjM2UyNjRlIi8+PHN0b3Agb2Zmc2V0PSI3NSUiIHN0b3AtY29sb3I9IiMwMDAwMDAiIHN0b3Atb3BhY2l0eT0iMC4wIi8+PHN0b3Agb2Zmc2V0PSIxMDAlIiBzdG9wLWNvbG9yPSIjMDAwMDAwIiBzdG9wLW9wYWNpdHk9IjAuMCIvPjwvbGluZWFyR3JhZGllbnQ+PC9kZWZzPjxyZWN0IHg9IjAiIHk9IjAiIHdpZHRoPSIxMDAlIiBoZWlnaHQ9IjEwMCUiIGZpbGw9InVybCgjZ3JhZCkiIC8+PC9zdmc+IA==');background-size:100%;background-image:-moz-linear-gradient(135deg, #3e264e 25%,rgba(0,0,0,0) 25%,rgba(0,0,0,0) 50%,#3e264e 50%,#3e264e 75%,rgba(0,0,0,0) 75%,rgba(0,0,0,0));background-image:-webkit-linear-gradient(135deg, #3e264e 25%,rgba(0,0,0,0) 25%,rgba(0,0,0,0) 50%,#3e264e 50%,#3e264e 75%,rgba(0,0,0,0) 75%,rgba(0,0,0,0));background-image:linear-gradient(-45deg, #3e264e 25%,rgba(0,0,0,0) 25%,rgba(0,0,0,0) 50%,#3e264e 50%,#3e264e 75%,rgba(0,0,0,0) 75%,rgba(0,0,0,0));background-size:25px 25px;-webkit-animation:move 2.5s linear infinite;-moz-animation:move 2.5s linear infinite;-ms-animation:move 2.5s linear infinite;animation:move 2.5s linear infinite}.pf-system-security-0-0{color:#be0000}.pf-system-security-0-1{color:#ab2600}.pf-system-security-0-2{color:#be3900}.pf-system-security-0-3{color:#c24e02}.pf-system-security-0-4{color:#ab5f00}.pf-system-security-0-5{color:#bebe00}.pf-system-security-0-6{color:#73bf26}.pf-system-security-0-7{color:#00bf00}.pf-system-security-0-8{color:#00bf39}.pf-system-security-0-9{color:#39bf99}.pf-system-security-1-0{color:#28c0bf}.pf-system-sec{margin-right:5px;cursor:-moz-grab;cursor:-webkit-grab;cursor:grab}.pf-system-sec-highSec{color:#5cb85c}.pf-system-sec-lowSec{color:#e28a0d}.pf-system-sec-nullSec{color:#d9534f}.pf-system-sec-high{color:#d9534f}.pf-system-sec-mid{color:#e28a0d}.pf-system-sec-low{color:#428bca}.pf-system-sec-unknown{color:#7986cb}.pf-system-sec-abyssal{color:#e06fdf}.pf-system-sec-special{color:#c8b847}.pf-system-sec-drifter{color:#44aa82}.pf-system-status-friendly{border-color:#428bca !important;color:#428bca}.pf-system-status-occupied{border-color:#e28a0d !important;color:#e28a0d}.pf-system-status-hostile{border-color:#d9534f !important;color:#d9534f}.pf-system-status-empty{border-color:#5cb85c !important;color:#5cb85c}.pf-system-status-unscanned{border-color:#568a89 !important;color:#568a89}.pf-system-info-status-label{background-color:#63676a;color:#000;will-change:background-color;-webkit-transition:background-color 0.3s ease-out;transition:background-color 0.3s ease-out}.pf-system-info-status-label.pf-system-status-friendly{background-color:#428bca}.pf-system-info-status-label.pf-system-status-occupied{background-color:#e28a0d}.pf-system-info-status-label.pf-system-status-hostile{background-color:#d9534f}.pf-system-info-status-label.pf-system-status-empty{background-color:#5cb85c}.pf-system-info-status-label.pf-system-status-unscanned{background-color:#568a89}.pf-system-hidden{opacity:0.15 !important;pointer-events:none}.pf-system-effect-dialog .clearfix+.col-md-6{margin-top:10px}.pf-system-effect-dialog .clearfix+.col-md-6+.col-md-6{margin-top:10px}.pf-planet-barren{color:#755e48}.pf-planet-gas{color:#a4b2b2}.pf-planet-ice{color:#aacada}.pf-planet-lava{color:#891c08}.pf-planet-oceanic{color:#4d7999}.pf-planet-plasma{color:#28576e}.pf-planet-shattered{color:#7986cb}.pf-planet-storm{color:#38556a}.pf-planet-temperate{color:#4c593c}.pf-fake-connection{box-sizing:content-box;display:inline-block;width:70px;height:4px;max-width:100%;border-top:2px solid #63676a;border-bottom:2px solid #63676a;background-color:#3c3f41;position:relative;font-size:10px;font-family:"Oxygen","Helvetica Neue",Helvetica,Arial,sans-serif}.pf-fake-connection.pf-map-connection-stargate{background-color:#313966;border-color:#63676a}.pf-fake-connection.pf-map-connection-jumpbridge{background-color:#6caead;border-color:#3c3f41;background:repeating-linear-gradient(to right, #6caead, #6caead 10px, #3c3f41 10px, #3c3f41 20px)}.pf-fake-connection.pf-map-connection-abyssal{background-color:#5a225a;border-color:#3c3f41;background:repeating-linear-gradient(to right, #5a225a, #5a225a 5px, #3c3f41 5px, #3c3f41 10px)}.pf-fake-connection.pf-map-connection-wh-eol{border-color:#d747d6}.pf-fake-connection.pf-map-connection-wh-reduced{background-color:#e28a0d}.pf-fake-connection.pf-map-connection-wh-critical{background-color:#a52521}.pf-fake-connection.pf-map-connection-wh-size-s:after,.pf-fake-connection.pf-map-connection-wh-size-m:after,.pf-fake-connection.pf-map-connection-wh-size-l:after,.pf-fake-connection.pf-map-connection-wh-size-xl:after,.pf-fake-connection.pf-map-connection-preserve-mass:after{content:'?';background-color:#3c3f41;color:#adadad;padding:1px 2px;position:absolute;left:calc(50% - 7px);top:-5px;font-family:Arial, sans-serif;font-size:11px;line-height:12px;min-width:14px;text-align:center;-moz-border-radius:3px;-webkit-border-radius:3px;border-radius:3px;-webkit-box-shadow:0 3px 6px rgba(0,0,0,0.3);box-shadow:0 3px 6px rgba(0,0,0,0.3)}.pf-fake-connection.pf-map-connection-wh-size-s{border-style:dotted}.pf-fake-connection.pf-map-connection-wh-size-s:after{content:'S'}.pf-fake-connection.pf-map-connection-wh-size-m{border-style:dashed}.pf-fake-connection.pf-map-connection-wh-size-m:after{content:'M'}.pf-fake-connection.pf-map-connection-wh-size-l:after{content:'L'}.pf-fake-connection.pf-map-connection-wh-size-xl:after{content:'XL'}.pf-fake-connection.pf-map-connection-preserve-mass:after{content:'save mass';background-color:#a52521;color:#eaeaea;left:calc(50% - 28px)}.pf-fake-connection-text{padding:0 2px;border-style:solid;border-color:#575a5d;border-width:2px;border-left:none;border-right:none}.pf-fake-connection-text.pf-wh-eol{border-color:#d747d6}.pf-fake-connection-text.pf-wh-reduced{background-color:#e28a0d;color:#000}.pf-fake-connection-text.pf-wh-critical{background-color:#a52521;color:#000}.pf-fake-connection-text.pf-wh-frig{border-top-style:dotted;border-bottom-style:dotted}.pf-structure-status-unknown{color:#568a89}.pf-structure-status-online{color:#5cb85c}.pf-structure-status-offline{color:#a52521}.tooltip-inner{color:#adadad;background-color:#3c3f41;font-family:"Oxygen Bold","Helvetica Neue",Helvetica,Arial,sans-serif;padding:5px 5px;-moz-border-radius:3px;-webkit-border-radius:3px;border-radius:3px;-webkit-box-shadow:0 6px 12px rgba(0,0,0,0.4);box-shadow:0 6px 12px rgba(0,0,0,0.4)}.modal .tooltip{z-index:1060}.modal .tooltip .tooltip-inner{color:#313335;background-color:#adadad}.tooltip.top .tooltip-arrow{border-top-color:#63676a}.tooltip.right .tooltip-arrow{border-right-color:#63676a}.tooltip.bottom .tooltip-arrow{border-bottom-color:#63676a}.tooltip.left .tooltip-arrow{border-left-color:#63676a}td.pf-popover-trigger:hover{color:#477372}.pf-notransition{-webkit-transition:none !important;-moz-transition:none !important;-o-transition:none !important;transition:none !important}.pf-dynamic-area{padding:10px;min-height:100px;position:relative;background-color:#313335;overflow:hidden;-moz-border-radius:5px;-webkit-border-radius:5px;border-radius:5px}.pf-dynamic-area .dl-horizontal{margin-bottom:0}.pf-dynamic-area .dl-horizontal dd{min-width:100px}.pf-dynamic-area .dl-horizontal dd.txt-color,.pf-dynamic-area .dl-horizontal dd.pf-help-light,.pf-dynamic-area .dl-horizontal dd.pf-help,.pf-dynamic-area .dl-horizontal .dataTable td.pf-table-action-cell>dd.pf-table-action-icon-cell,.dataTable .pf-dynamic-area .dl-horizontal td.pf-table-action-cell>dd.pf-table-action-icon-cell{font-weight:bold}.pf-dynamic-area>[class~='alert']:last-of-type{margin-bottom:0}.pf-dynamic-area[data-resizebar]{padding-bottom:15px}.pf-dynamic-area[data-resizebar]:hover .pf-resizearea{-webkit-transition-delay:.15s;transition-delay:.15s;height:40px;opacity:1}.pf-dynamic-area[data-resizebar]:hover .pf-resizebar-bar{border-top:1px solid #e28a0d !important}.pf-dynamic-area:not([data-resizebar]) .pf-dynamic-area-resizebar{display:none}.pf-dynamic-area .pf-resizearea{height:0;opacity:0;-webkit-transition:height 0.12s ease-out,opacity 0.12s ease-out;transition:height 0.12s ease-out,opacity 0.12s ease-out;will-change:height, opacity}.pf-dynamic-area .pf-dynamic-area-statusbar{position:absolute;left:0;bottom:0;width:100%;background-color:#313335;padding:1px 0}.pf-dynamic-area .pf-dynamic-area-statusbar .pf-dynamic-area-resizebar{width:100%;height:9px;padding-top:1px;cursor:row-resize}.pf-dynamic-area .pf-dynamic-area-statusbar .pf-dynamic-area-resizebar:hover .pf-resizebar-bar{border-top:1px solid #e28a0d}.pf-dynamic-area .pf-dynamic-area-statusbar .pf-dynamic-area-resizebar .pf-resizebar-bar{border-top:1px solid #63676a;transition:border-top 0.15s ease-out;width:20px;margin:1px auto}.pf-code-ObjectBrace{color:#b042ae;font-weight:bold}.pf-code-ArrayBrace{color:#6caead;font-weight:bold}.pf-code-PropertyName{color:#898d91;font-weight:bold}.pf-code-String{color:#e28a0d}.pf-code-Number{color:#5cb85c}.pf-code-Boolean{color:#7986cb;font-weight:bold}.pf-code-Function{color:#898d91;font-style:italic;white-space:pre}.pf-code-Null{color:#d9534f;font-weight:bold}.pf-code-Comma{color:#898d91;font-weight:bold}.pf-code-Date{color:#898d91;font-style:italic}pre .fa-ul{display:flex;flex-direction:column;margin-left:15px}pre>ul{margin-top:10px}code .fas,code .pf-landing .pf-landing-list li>i,.pf-landing .pf-landing-list code li>i,code .far,code .fab{color:#63676a;cursor:pointer;margin:0 3px}code section{border-radius:5px}code section:not(:last-child){border-bottom:1px dashed #3c3f41;padding-bottom:5px}.pf-logo-wrapper{display:block}#pf-head{margin-bottom:0px}#pf-head a{-webkit-transition:color 0.15s ease-out;transition:color 0.15s ease-out;will-change:color}#pf-head a:focus{color:#477372}#pf-head a:focus img{border-color:#3c3f41}#pf-head a:hover{text-decoration:none}#pf-head a:hover .badge{color:#6caead}#pf-head a:hover img{border-color:#568a89}#pf-head i{margin-right:2px}#pf-head .pf-brand-desc{margin:6px 10px 0 90px;width:180px}#pf-head .pf-head-menu{padding:3px 10px;line-height:24px}#pf-head .pf-head-menu .pf-head-menu-logo{width:24px;height:24px;display:inline-block;float:left}#pf-head .pf-head-user-character{opacity:0;visibility:hidden}#pf-head .pf-head-active-users{cursor:pointer}#pf-head .pf-head-active-users{display:none}#pf-head .pf-head-active-users .badge{-webkit-transition:color 0.3s ease-out;transition:color 0.3s ease-out}#pf-head .pf-head-image{display:inline-block;margin-top:-6px;margin-bottom:-6px;width:27px;border:1px solid #3c3f41;image-rendering:-webkit-optimize-contrast;-webkit-transition:border-color 0.15s ease-out;transition:border-color 0.15s ease-out;will-change:border-color}#pf-head .pf-head-image.--left{margin-right:3px}#pf-head .pf-head-image.--right{margin-left:8px}#pf-head .pf-head-program-status{cursor:pointer}#pf-head .pf-head-map-tracking{margin-bottom:4px;margin-top:4px}#pf-head .tooltip .tooltip-inner{color:#adadad}.pf-head{-webkit-box-shadow:0 6px 12px rgba(0,0,0,0.4);box-shadow:0 6px 12px rgba(0,0,0,0.4)}.pf-head .badge{background-color:#3c3f41;color:#adadad}.pf-head .badge:empty{display:none}.pf-head small{font-family:"Oxygen Bold","Helvetica Neue",Helvetica,Arial,sans-serif}#pf-footer{display:flex;position:absolute;bottom:0;left:0;width:100%;margin:0;background:rgba(60,63,65,0.3);padding:1px 0}#pf-footer a{font-family:"Oxygen Bold","Helvetica Neue",Helvetica,Arial,sans-serif;color:#375959}#pf-footer a:hover{color:#477372;text-decoration:none}#pf-footer .pf-footer-left{display:flex;flex:none;justify-content:flex-start}#pf-footer .pf-footer-center{display:flex;flex:1;padding:0 20px}#pf-footer .pf-footer-right{display:flex;flex:none;justify-content:flex-end}.navbar-fixed-bottom{padding:2px 0}.navbar-fixed-bottom .container-fluid{padding-left:0;padding-right:0}.flex-row{display:flex;flex:0 1 auto;flex-direction:row;flex-wrap:wrap}.flex-col{flex:0 0 auto}.flex-grow{flex-grow:1;flex-basis:0;max-width:100%}.flex-between{justify-content:space-between}#pf-global-info{width:100%;margin-bottom:0;border:none;padding:9px 10px}#pf-global-info .ui-pnotify-title{margin-bottom:0}.panel-reverse-order{display:table;width:100%}.panel-reverse-order .reverse-order-header{display:table-header-group}.panel-reverse-order .reverse-order-footer{display:table-footer-group}@-webkit-keyframes move{0%{background-position:0 0}100%{background-position:50px 50px}}@-moz-keyframes move{0%{background-position:0 0}100%{background-position:50px 50px}}@-ms-keyframes move{0%{background-position:0 0}100%{background-position:50px 50px}}@keyframes move{0%{background-position:0 0}100%{background-position:50px 50px}}.pf-animate{visibility:hidden;opacity:0}.pf-color-line{position:fixed;top:0;left:0;width:100%;height:3px;background:repeating-linear-gradient(-45deg, #66c84f 0%, #568a89 12.5%, #6caead 25%, #5cb85c 37.5%, #66c84f 50%);background-size:100vw 100vw;-webkit-animation:rotateRainbow 3s infinite linear forwards;animation:rotateRainbow 3s infinite linear forwards}.pf-color-line.warning{background-image:url('data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgiPz4gPHN2ZyB2ZXJzaW9uPSIxLjEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PGRlZnM+PGxpbmVhckdyYWRpZW50IGlkPSJncmFkIiBncmFkaWVudFVuaXRzPSJvYmplY3RCb3VuZGluZ0JveCIgeDE9IjAuMCIgeTE9IjAuNSIgeDI9IjEuMCIgeTI9IjAuNSI+PHN0b3Agb2Zmc2V0PSIwJSIgc3RvcC1jb2xvcj0iI2UyOGEwZCIvPjxzdG9wIG9mZnNldD0iMTAwJSIgc3RvcC1jb2xvcj0iI2UyOGEwZCIvPjwvbGluZWFyR3JhZGllbnQ+PC9kZWZzPjxyZWN0IHg9IjAiIHk9IjAiIHdpZHRoPSIxMDAlIiBoZWlnaHQ9IjEwMCUiIGZpbGw9InVybCgjZ3JhZCkiIC8+PC9zdmc+IA==');background-size:100%;background-image:-webkit-gradient(linear, 0% 50%, 100% 50%, color-stop(0%, #e28a0d),color-stop(100%, #e28a0d));background-image:-moz-linear-gradient(left, #e28a0d,#e28a0d 100%);background-image:-webkit-linear-gradient(left, #e28a0d,#e28a0d 100%);background-image:linear-gradient(to right, #e28a0d,#e28a0d 100%)}.pf-color-line.danger{background-image:url('data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgiPz4gPHN2ZyB2ZXJzaW9uPSIxLjEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PGRlZnM+PGxpbmVhckdyYWRpZW50IGlkPSJncmFkIiBncmFkaWVudFVuaXRzPSJvYmplY3RCb3VuZGluZ0JveCIgeDE9IjAuMCIgeTE9IjAuNSIgeDI9IjEuMCIgeTI9IjAuNSI+PHN0b3Agb2Zmc2V0PSIwJSIgc3RvcC1jb2xvcj0iI2E1MjUyMSIvPjxzdG9wIG9mZnNldD0iMTAwJSIgc3RvcC1jb2xvcj0iI2E1MjUyMSIvPjwvbGluZWFyR3JhZGllbnQ+PC9kZWZzPjxyZWN0IHg9IjAiIHk9IjAiIHdpZHRoPSIxMDAlIiBoZWlnaHQ9IjEwMCUiIGZpbGw9InVybCgjZ3JhZCkiIC8+PC9zdmc+IA==');background-size:100%;background-image:-webkit-gradient(linear, 0% 50%, 100% 50%, color-stop(0%, #a52521),color-stop(100%, #a52521));background-image:-moz-linear-gradient(left, #a52521,#a52521 100%);background-image:-webkit-linear-gradient(left, #a52521,#a52521 100%);background-image:linear-gradient(to right, #a52521,#a52521 100%)}.pf-splash{position:fixed;z-index:2000;background-color:#1d1d1d;color:#63676a;top:0;bottom:0;left:0;right:0;will-change:opacity}.pf-splash:not(.pf-splash-warning):not(.pf-splash-error){cursor:wait}.pf-splash .pf-splash-title{position:fixed;left:50%;top:30%;text-align:center;max-width:500px;padding:20px;-moz-transform:translate(-50%, -50%);-ms-transform:translate(-50%, -50%);-webkit-transform:translate(-50%, -50%);transform:translate(-50%, -50%)}.pf-splash .pf-splash-debug{position:absolute;bottom:0;width:100%}.pf-splash .pf-splash-debug .pf-splash-debug-headline{padding:0 10px}.pf-splash .pf-splash-debug .pf-splash-pre{margin-bottom:0}@media (max-width: 1200px){.pf-landing #pf-logo-container{margin:5px auto}.pf-landing .pf-brand-desc{display:none}.pf-landing .navbar .navbar-brand{margin-left:10px}}.pf-landing section:not(:last-of-type){border-bottom:1px solid #2b2b2b}.pf-landing section{min-height:200px;padding:20px 0 40px 0}.pf-landing section h4:not(.pf-dynamic-area){font-size:18px;font-family:"Oxygen","Helvetica Neue",Helvetica,Arial,sans-serif;margin:5px 0 10px 0;border-bottom:1px solid #2b2b2b;line-height:34px}.pf-landing .container>.row{margin-bottom:30px}.pf-landing .alert{box-shadow:0 4px 10px rgba(0,0,0,0.4)}.pf-landing a[data-gallery]{position:relative;display:inline-block;overflow:hidden;margin:5px 0 15px 0;box-shadow:0 4px 10px rgba(0,0,0,0.4)}.pf-landing a[data-gallery]:before{content:'\f06e';font-family:'Font Awesome 5 Free';font-size:20px;color:#e28a0d;position:absolute;height:100%;width:100%;z-index:10;-webkit-transition:transform 0.1s ease-out,opacity 0.1s ease-out;transition:transform 0.1s ease-out,opacity 0.1s ease-out;will-change:transform, opacity;transform:scale(1.3, 1.3);opacity:0;display:flex;flex-direction:column;justify-content:center;align-items:center}.pf-landing a[data-gallery]:hover img{border-color:#6caead;-webkit-filter:brightness(50%);filter:brightness(50%)}.pf-landing a[data-gallery]:hover:before{-webkit-transition-delay:.05s;transition-delay:.05s;transform:scale(1, 1);opacity:1}.pf-landing a[data-gallery] .pf-landing-image-preview{border-width:1px;border-style:solid;border-color:#1d1d1d;display:inline-block;will-change:all;-webkit-filter:brightness(100%);filter:brightness(100%);-webkit-transition:all 0.2s ease-out;transition:all 0.2s ease-out}.pf-landing a[data-gallery] .pf-landing-image-preview.pf-landing-image-preview-small{height:160px}.pf-landing a[data-gallery] .pf-landing-image-preview.pf-landing-image-preview-medium{height:256px}#pf-landing-top{height:355px;border-bottom:1px solid #313335;position:relative}#pf-landing-top:before{content:'';width:100%;height:100%;position:absolute;background:url("../../img/pf-bg.jpg") #05050a;background-repeat:no-repeat;background-position:0 0;-webkit-filter:brightness(.9);filter:brightness(.9)}#pf-landing-top #pf-logo-container{-moz-transform:scale3d(0.8, 0.8, 1);-ms-transform:scale3d(0.8, 0.8, 1);-webkit-transform:scale3d(0.8, 0.8, 1);transform:scale3d(0.8, 0.8, 1)}#pf-landing-top #pf-header-container{position:absolute;width:100%;background-position:center center}#pf-landing-top #pf-header-container #pf-header-canvas{position:absolute;visibility:hidden;top:0;left:0}#pf-landing-top #pf-header-container #pf-logo-container{z-index:110}#pf-landing-top #pf-header-container #pf-header-preview-container{position:absolute;left:400px;width:590px;height:350px;top:37px}#pf-landing-top #pf-header-container #pf-header-preview-container .pf-header-preview-element{position:relative;margin-left:12px;margin-top:12px;height:155px;width:180px;padding:7px;opacity:0;-moz-border-radius:5px;-webkit-border-radius:5px;border-radius:5px;background-color:rgba(43,43,43,0.5)}#pf-landing-top #pf-header-container #pf-header-preview-container .pf-header-preview-element:nth-child(n+4){box-shadow:0 4px 10px rgba(0,0,0,0.4)}#pf-landing-top #pf-header-container #pf-header-preview-container .pf-header-preview-element:after{content:'';position:absolute;width:calc(100% - 14px);height:calc(100% - 14px);-moz-border-radius:3px;-webkit-border-radius:3px;border-radius:3px;background-repeat:no-repeat;background-position:50% 50%;background-color:rgba(29,29,29,0.75)}#pf-landing-top .container{position:relative;margin-top:10px}#pf-header-preview-intel:after{background-image:url("../../img/landing/intel.png")}#pf-header-preview-map:after{background-image:url("../../img/landing/map.png")}#pf-header-preview-scope:after{background-image:url("../../img/landing/scope.png")}#pf-header-preview-signature:after{background-image:url("../../img/landing/signature.png")}#pf-header-preview-data:after{background-image:url("../../img/landing/data.png")}#pf-header-preview-gameplay:after{background-image:url("../../img/landing/gameplay.png")}#pf-landing-login{padding-top:40px;padding-bottom:30px}@media (max-width: 1199px){#pf-landing-login{padding-top:10px}}#pf-landing-login .row{margin-bottom:0}#pf-landing-login .pf-character-selection>div:not(.pf-character-row-animate){-webkit-transition:width 0.2s ease,margin 0.2s ease;transition:width 0.2s ease,margin 0.2s ease}#pf-landing-login .pf-dynamic-area{display:inline-block;margin:10px 5px 20px 5px;padding:10px 10px 5px 10px;min-width:155px;min-height:184px;-moz-border-radius:10px;-webkit-border-radius:10px;border-radius:10px;-webkit-box-shadow:0 4px 10px rgba(0,0,0,0.4);box-shadow:0 4px 10px rgba(0,0,0,0.4)}#pf-landing-login .pf-dynamic-area .ribbon-wrapper{z-index:5}#pf-landing-login .pf-dynamic-area .pf-character-image-wrapper{opacity:0;width:128px;border:2px solid #63676a;-moz-border-radius:8px;-webkit-border-radius:8px;border-radius:8px;-webkit-transition:border-color 0.2s ease-out,box-shadow 0.2s ease-out;transition:border-color 0.2s ease-out,box-shadow 0.2s ease-out;-moz-transform:translate3d(0, 0, 0);-ms-transform:translate3d(0, 0, 0);-webkit-transform:translate3d(0, 0, 0);transform:translate3d(0, 0, 0);will-change:border-color, transition;overflow:hidden;cursor:pointer;display:inline-block;background-color:#2b2b2b;box-sizing:content-box}#pf-landing-login .pf-dynamic-area .pf-character-image-wrapper:hover{border-color:#4f9e4f}#pf-landing-login .pf-dynamic-area .pf-character-image-wrapper:hover .pf-character-name{color:#4f9e4f}#pf-landing-login .pf-dynamic-area .pf-character-image-wrapper:hover .pf-character-image{-webkit-filter:grayscale(50%);filter:grayscale(50%)}#pf-landing-login .pf-dynamic-area .pf-character-image-wrapper.pf-character-active:after{font-family:"Font Awesome 5 Free";content:"\f111";font-weight:bold;position:absolute;top:5px;left:5px;height:14px;width:14px;color:#5cb85c;font-size:10px}#pf-landing-login .pf-dynamic-area .pf-character-image-wrapper .pf-character-select-image{overflow:hidden;width:128px;height:128px;position:relative}#pf-landing-login .pf-dynamic-area .pf-character-image-wrapper .pf-character-select-image .pf-character-info{position:absolute;top:0;left:0;width:0;height:100%;color:#adadad;background:rgba(60,63,65,0.8);overflow:hidden;will-change:width, transition;padding:5px 0}#pf-landing-login .pf-dynamic-area .pf-character-image-wrapper .pf-character-select-image .pf-character-info .pf-character-info-img{width:36px}#pf-landing-login .pf-dynamic-area .pf-character-image-wrapper .pf-character-select-image .pf-character-info .pf-character-info-text{line-height:25px}#pf-landing-login .pf-dynamic-area .pf-character-image-wrapper .pf-character-name{font-size:13px;line-height:30px;border-top:1px solid #313335;color:#adadad;-webkit-transition:color 0.2s ease-out;transition:color 0.2s ease-out}#pf-landing-login .pf-dynamic-area .pf-character-image-wrapper .pf-character-image{border-top-left-radius:8px;border-top-right-radius:8px;-webkit-transition:all 0.3s ease-out;transition:all 0.3s ease-out;-webkit-filter:grayscale(0%);filter:grayscale(0%)}#pf-landing-login .pf-sso-login-button{position:relative;display:inline-block;width:270px;height:45px;border:none;margin-bottom:10px;background-color:transparent;background-image:url("../../img/landing/eve_sso_login_buttons_large_black_hover.png");cursor:pointer;box-shadow:0 2px 5px rgba(0,0,0,0.2)}#pf-landing-login .pf-sso-login-button:before{content:' ';position:absolute;top:0;right:0;bottom:0;left:0;box-shadow:0 4px 5px rgba(0,0,0,0.2);opacity:0;-webkit-transition:opacity 0.12s ease-in-out;transition:opacity 0.12s ease-in-out;will-change:opacity}#pf-landing-login .pf-sso-login-button:after{content:' ';position:absolute;width:270px;height:45px;left:0;top:0;background-image:url("../../img/landing/eve_sso_login_buttons_large_black.png");-webkit-transition:opacity 0.12s ease-in-out;transition:opacity 0.12s ease-in-out;will-change:opacity}#pf-landing-login .pf-sso-login-button:hover:before{opacity:1}#pf-landing-login .pf-sso-login-button:hover:after{opacity:0}#pf-landing-login .pf-sso-login-button.disabled{pointer-events:auto}#pf-landing-login #pf-notification-panel{display:none}#pf-header-map{position:relative;margin:0 auto;height:380px;width:600px;pointer-events:none}#pf-header-map .pf-header-svg-layer{position:absolute;top:0;left:0;right:0;bottom:0}#pf-header-map #pf-header-systems{z-index:100}#pf-header-map #pf-header-connectors{z-index:90}#pf-header-map #pf-header-connections{z-index:80}#pf-header-map #pf-header-background{z-index:70}#pf-header-map #pf-header-background .pf-header-system{display:none}#pf-header-map-bg{position:absolute;left:0;top:0;width:100%;height:100%;pointer-events:none}#pf-header-map-bg img{pointer-events:none}#pf-header-map-bg #pf-map-bg-image{opacity:0;position:absolute;bottom:0;right:0;width:100%;height:100%}#pf-header-map-bg #pf-map-neocom{opacity:0;height:665px;width:21px}#pf-header-map-bg #pf-map-browser{opacity:0;position:absolute;top:110px;left:21px;height:560px;width:515px}#pf-landing-gallery-carousel{background-image:url("../../img/pf-header-bg.jpg")}#pf-landing-gallery-carousel .slide-content{border-radius:5px;pointer-events:none}#pf-landing-gallery-carousel h3{width:100%;text-align:left}.pf-landing-pricing-panel{margin-top:20px}.pricing-big{position:relative;-webkit-box-shadow:0 4px 10px rgba(0,0,0,0.4);box-shadow:0 4px 10px rgba(0,0,0,0.4)}.pricing-big .panel-heading{border-color:#3c3f41}.pricing-big .the-price{padding:1px 0;background:#2d3031;text-align:center}.pricing-big .the-price .subscript{font-size:12px;color:#63676a}.pricing-big .price-features{background:#3c3f41;color:#adadad;padding:20px 15px;line-height:22px}.pricing-big .price-features:not(.price-features-fluid){min-height:205px}.pricing-big .price-features .list-unstyled.text-left li,.pricing-big .price-features .text-left.list-inline li{text-indent:-1em;padding-left:1.5em}.pricing-big .price-features .list-unstyled.text-left li .fa,.pricing-big .price-features .text-left.list-inline li .fa{text-indent:0}.pricing-big .badge{color:#adadad;background-color:#2b2b2b}.pricing-big table tr td{line-height:1}.pricing-big table tr td .btn-group .btn{border-radius:0;padding-top:4px;padding-bottom:4px}#pf-landing-admin .pf-landing-admin-login{margin-bottom:0}#pf-landing-about .pf-landing-about-me{width:256px;height:256px;border:none;-webkit-box-shadow:0 4px 10px rgba(0,0,0,0.4);box-shadow:0 4px 10px rgba(0,0,0,0.4)}.pf-landing-footer{padding:30px 0;font-family:"Oxygen Bold","Helvetica Neue",Helvetica,Arial,sans-serif;background-color:#171717}.pf-landing-footer .row{margin-bottom:0 !important}.pf-landing-footer .pf-social-networks>li{display:inline-block;line-height:1}.pf-landing-footer .pf-social-networks>li a{display:inline-block;background:rgba(99,103,106,0.5);line-height:24px;text-align:center;font-size:14px;margin-right:3px;padding:6px 6px 2px 6px;width:36px}.pf-body[data-script='admin'] .navbar-brand:hover{color:#777}.pf-body[data-script='admin'] .panel{text-align:initial}.pf-body[data-script='admin'] .panel h3 img{position:absolute;right:0;top:0;margin:4px 14px 0 0;border-radius:30%}.pf-body[data-script='admin'] .form-horizontal .panel{color:#adadad}.pf-body[data-script='setup']{user-select:text}.pf-body[data-script='setup'] .navbar-brand:hover{color:#777}.pf-body[data-script='setup'] section{min-height:auto;padding-top:10px;padding-bottom:0;border-bottom:0}.pf-body[data-script='setup'] section:first-of-type{padding-top:60px}.pf-body[data-script='setup'] section:last-of-type{padding-bottom:60px}@media (min-width: 780px){.pf-body[data-script='setup'] section .container{width:760px}}@media (min-width: 1200px){.pf-body[data-script='setup'] section .container{width:1160px}}@media (min-width: 1600px){.pf-body[data-script='setup'] section .container{width:1360px}}.pf-body[data-script='setup'] section .container>.row{margin-bottom:0}.pf-body[data-script='setup'] .pf-landing-pricing-panel{margin-top:10px}.pf-body[data-script='setup'] .panel-heading{padding-right:8px}.pf-body[data-script='setup'] .pf-setup-body-cronjob .panel-footer{display:flex;justify-content:space-around}.pf-body[data-script='setup'] .pf-cron-row-active td:not(:last-child){background-color:#212C30}.pf-body[data-script='setup'] .pf-cron-row-active td:first-child{background-color:#1b2326}.pf-head-breadcrumb{display:inline-block;margin:0}.pf-head-breadcrumb li{display:inline-block;position:relative;cursor:pointer}.pf-head-breadcrumb li:before{content:"";position:absolute;right:-9px;top:-1px;z-index:20;border-left:10px solid #272728;border-top:15px solid transparent;border-bottom:15px solid transparent;transition:0.3s ease}.pf-head-breadcrumb li:after{content:"";position:absolute;right:-10px;top:-1px;z-index:10;border-left:10px solid #63676a;border-top:15px solid transparent;border-bottom:15px solid transparent}.pf-head-breadcrumb li:hover .pf-head-breadcrumb-item{color:#568a89}.pf-head-breadcrumb li:hover .pf-head-breadcrumb-item>img{border-color:#568a89 !important}.pf-head-breadcrumb li:hover:not(:last-of-type) .pf-head-breadcrumb-item{max-width:135px}.pf-head-breadcrumb li:first-of-type .pf-head-breadcrumb-item{padding-left:10px}.pf-head-breadcrumb li:last-of-type .pf-head-breadcrumb-item{padding-right:10px}.pf-head-breadcrumb li:last-of-type:before{display:none}.pf-head-breadcrumb li:last-of-type:after{display:none}.pf-head-breadcrumb li:not(:last-of-type) .pf-head-breadcrumb-item{max-width:60px}.pf-head-breadcrumb li.--empty{pointer-events:none}.pf-head-breadcrumb .pf-head-breadcrumb-item{display:inline-block;vertical-align:middle;overflow:hidden;white-space:nowrap;text-overflow:ellipsis;padding:0 5px 0 15px;line-height:30px;width:auto;-webkit-transition:color 0.15s ease-out,max-width 0.15s ease-in-out;transition:color 0.15s ease-out,max-width 0.15s ease-in-out;will-change:color, max-width}.pf-head-breadcrumb .pf-head-breadcrumb-item [class^="pf-system-sec-"]{margin-right:5px}.pf-head-breadcrumb .pf-head-breadcrumb-item>.fas:last-of-type,.pf-head-breadcrumb .pf-landing .pf-landing-list li.pf-head-breadcrumb-item>i:last-of-type,.pf-landing .pf-landing-list .pf-head-breadcrumb li.pf-head-breadcrumb-item>i:last-of-type{margin-right:5px !important}#pf-static-logo-svg{opacity:0;position:absolute;z-index:105;overflow:visible}#pf-static-logo-svg path{will-change:fill, opacity, transform, translateZ, translateX, translateY;pointer-events:all;-moz-transform:translate3d(0, 0, 0);-ms-transform:translate3d(0, 0, 0);-webkit-transform:translate3d(0, 0, 0);transform:translate3d(0, 0, 0)}.logo-ploygon-top-right{fill:#477372;fill-rule:evenodd;stroke:#477372;stroke-width:0px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;fill-opacity:1}.logo-ploygon-bottom-left{fill:#5cb85c;fill-rule:evenodd;stroke:#5cb85c;stroke-width:0px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;fill-opacity:1}.logo-ploygon-bottom-right{fill:#375959;fill-rule:evenodd;stroke:#375959;stroke-width:0px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;fill-opacity:1}.logo-ploygon-top-left{fill:#63676a;fill-opacity:1;fill-rule:evenodd;stroke:#63676a;stroke-width:0px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1}#pf-map-module{margin:15px 10px 52px 10px}#pf-map-tab-element{max-width:3354px;margin:0 auto;display:grid;grid-column-gap:10px;grid-template:"tabs1" max-content "wrapper" minmax(38px, 1fr)/1fr}@media screen and (min-width: 1600px){#pf-map-tab-element{grid-template-areas:"tabs1 tabs1 tabs1 tabs1" "wrapper wrapper wrapper wrapper";grid-template-columns:1fr 1fr 1fr minmax(444px, 1fr)}}#pf-map-tab-element #pf-map-tab-bar-left{grid-area:tabs1}#pf-map-tab-element .pf-map-tab-content-wrapper{grid-area:wrapper;z-index:100}@media screen and (min-width: 1600px){#pf-map-tab-element.left{grid-template-areas:". tabs1 tabs1 tabs1" "wrapper wrapper wrapper wrapper";grid-template-columns:minmax(444px, 1fr) 1fr 1fr 1fr}}@media screen and (min-width: 1600px){#pf-map-tab-element.left .pf-map-tab-content{grid-template-areas:"area2 map map map" "area2 area1 area1 area3";grid-template-columns:minmax(444px, 1fr) 1fr minmax(444px, 1fr) 1fr}}.pf-map-tab-bar{display:flex;position:relative}.pf-map-tab-bar:after{border-radius:0 !important;font-size:14px !important}.pf-map-tab-bar .pf-map-tab{z-index:10;flex:0 0 auto}.pf-map-tab-bar .pf-map-tab:last-child{margin-right:0}.pf-map-tab-bar .pf-map-tab>a[data-badge]:after{content:attr(data-badge);position:absolute;top:-4px;left:60%;background:#313335;color:#e28a0d;border-radius:9px;padding:3px 4px;font-size:11px;font-weight:bold;line-height:1;vertical-align:baseline;white-space:nowrap;text-align:center}.pf-map-tab-bar .noSort{margin-left:auto}.pf-map-tab-bar .pf-map-type-tab-default{border-top:2px solid transparent}.pf-map-tab-bar .pf-map-type-tab-default>a:hover,.pf-map-tab-bar .pf-map-type-tab-default>a:focus,.pf-map-tab-bar .pf-map-type-tab-default>a.editable-open{color:#e28a0d;background-color:transparent;border-color:transparent}.pf-map-tab-bar .pf-map-type-tab-private{border-top:2px solid #7986cb}.pf-map-tab-bar .pf-map-type-tab-corporation{border-top:2px solid #5cb85c}.pf-map-tab-bar .pf-map-type-tab-alliance{border-top:2px solid #428bca}.pf-map-tab-bar .pf-map-type-tab-global{border-top:2px solid #568a89}.pf-map-tab-bar .pf-map-tab-icon+.nav-tabs-link:not(:empty){margin-left:3px}.pf-map-tab-bar .pf-map-tab-shared-icon{margin-left:3px}.pf-map-tab-content{display:grid;grid-gap:10px;grid-template:"map" max-content "area1" minmax(38px, max-content) "area2" minmax(38px, max-content) "area3" minmax(38px, max-content)/1fr}@media screen and (min-width: 780px){.pf-map-tab-content{grid-template:"map map" max-content "area1 area1" minmax(38px, min-content) "area2 area3" minmax(38px, min-content)/1fr 1fr}}@media screen and (min-width: 1200px){.pf-map-tab-content{grid-template:"map map map" max-content "area1 area1 area2" minmax(38px, max-content) "area1 area1 area3" minmax(38px, 1fr)/1fr 1fr minmax(444px, 1fr)}}@media screen and (min-width: 1600px){.pf-map-tab-content{grid-template:"map map map area2" max-content "area1 area1 area3 area2" minmax(38px, 1fr)/1fr 1fr minmax(444px, 1fr) minmax(444px, 1fr)}}.pf-map-tab-content.active{display:grid}.pf-map-tab-content-area{position:relative;border-radius:5px}.pf-map-tab-content-area-map{grid-area:map;position:relative;resize:vertical;width:100%;height:558px;min-height:300px;max-height:1000px;overflow:hidden;padding:5px;background:rgba(43,43,43,0.93);box-shadow:inset -3px 3px 10px 0 rgba(0,0,0,0.3);will-change:width, height;border-top-right-radius:0px;border-top-left-radius:0px;border-width:1px;border-style:solid;border-color:#313335}.pf-map-tab-content-area-map:before{content:'';position:absolute;bottom:0;right:0;border-style:solid;border-width:14px 14px 0 0;border-color:transparent #313335 transparent transparent;cursor:row-resize}.pf-map-tab-content-area-map:focus,.pf-map-tab-content-area-map:hover{border:1px solid #3c3f41}.pf-map-tab-content-area-map:focus:before,.pf-map-tab-content-area-map:hover:before{border-color:transparent #3c3f41 transparent transparent}.pf-map-tab-content-area-a{grid-area:area1;display:grid;grid-gap:10px;grid-auto-rows:max-content}.pf-map-tab-content-area-b{grid-area:area2;display:grid;grid-gap:10px;grid-auto-rows:max-content}.pf-map-tab-content-area-c{grid-area:area3;display:grid;grid-gap:10px;grid-auto-rows:max-content}.pf-module{font-family:"Oxygen Bold","Helvetica Neue",Helvetica,Arial,sans-serif;background:rgba(60,63,65,0.27);padding:10px;width:100%;overflow:hidden;-moz-border-radius:5px;-webkit-border-radius:5px;border-radius:5px;border-top-left-radius:0;opacity:0;will-change:opacity, transform, height}.pf-module:before{content:'';position:absolute;top:0;left:0;border-style:solid;border-width:0 0 9px 9px;border-color:transparent transparent transparent #3c3f41;cursor:row-resize}.pf-module .label:not(:last-child){margin-bottom:10px}.pf-module .pf-module-head h5{display:inline-block;line-height:16px;margin-bottom:0}.pf-module .pf-module-head h5 .pf-module-icon-button{margin-left:4px}.pf-module .pf-module-head+.pf-module-body:not(:empty):not(.hidden){margin-top:10px}.pf-module .grid{display:grid;grid-gap:10px;grid-template-columns:repeat(auto-fit, minmax(200px, 1fr))}.pf-module .pf-module-table{font-size:11px;white-space:nowrap}.pf-module .pf-dynamic-area{background:rgba(43,43,43,0.4);min-height:initial}.pf-module .pf-module-control-area{display:flex;justify-content:center;align-items:center;min-height:inherit}.pf-module .pf-module-control-area:hover .fa-sync{-moz-transform:rotateZ(720deg);-ms-transform:rotateZ(720deg);-webkit-transform:rotateZ(720deg);transform:rotateZ(720deg)}.pf-module .pf-module-control-area .fa-sync{-webkit-transition:transform 1.6s ease-out;transition:transform 1.6s ease-out}.pf-module-spacer{margin-bottom:10px}@-webkit-keyframes bounce{0%, 20%, 50%, 80%, 100%{transform:translateY(0)}40%{transform:translateY(-8px)}60%{transform:translateY(-4px)}}@-moz-keyframes bounce{0%, 20%, 50%, 80%, 100%{transform:translateY(0)}40%{transform:translateY(-8px)}60%{transform:translateY(-4px)}}@-ms-keyframes bounce{0%, 20%, 50%, 80%, 100%{transform:translateY(0)}40%{transform:translateY(-8px)}60%{transform:translateY(-4px)}}@keyframes bounce{0%, 20%, 50%, 80%, 100%{transform:translateY(0)}40%{transform:translateY(-8px)}60%{transform:translateY(-4px)}}.pf-map-overlay{position:absolute;display:none;z-index:10000;background:rgba(0,0,0,0.25);-moz-border-radius:5px;-webkit-border-radius:5px;border-radius:5px}.pf-map-overlay.pf-map-overlay-timer{right:25px;bottom:25px;width:36px;height:38px}.pf-map-overlay.pf-map-overlay-zoom{bottom:25px;left:5px;width:26px;height:52px;padding:2px 4px;display:block}.pf-map-overlay.pf-map-overlay-zoom .pf-zoom-overlay-up,.pf-map-overlay.pf-map-overlay-zoom .pf-zoom-overlay-down{display:block;text-align:center;font-size:16px;cursor:pointer;-webkit-transition:color 0.18s ease-in-out;transition:color 0.18s ease-in-out;will-change:color}.pf-map-overlay.pf-map-overlay-zoom .pf-zoom-overlay-up:hover,.pf-map-overlay.pf-map-overlay-zoom .pf-zoom-overlay-down:hover{color:#c2760c}.pf-map-overlay.pf-map-overlay-zoom .pf-zoom-overlay-up.disabled,.pf-map-overlay.pf-map-overlay-zoom .pf-zoom-overlay-down.disabled{cursor:not-allowed;color:#2b2b2b}.pf-map-overlay.pf-map-overlay-zoom .pf-zoom-overlay-value{display:block;margin-top:2px;text-align:center;font-size:11px;line-height:13px;-webkit-transition:color 0.18s ease-in-out;transition:color 0.18s ease-in-out;will-change:color}.pf-map-overlay.pf-map-overlay-zoom .active{color:#c2760c}.pf-map-overlay.pf-map-overlay-info{top:8px;right:25px;height:36px;min-height:36px;min-width:36px;padding:3px 3px 3px 8px;line-height:26px}.pf-map-overlay.pf-map-overlay-info i{margin:0;margin-top:5px;width:0;height:26px;opacity:0;color:#63676a;transform:scale(0);transform-origin:50% 50% 0px;-webkit-transition:color 0.18s ease-in-out;transition:color 0.18s ease-in-out;cursor:help;will-change:all}.pf-map-overlay.pf-map-overlay-info i.fas,.pf-map-overlay.pf-map-overlay-info .pf-landing .pf-landing-list li>i,.pf-landing .pf-landing-list .pf-map-overlay.pf-map-overlay-info li>i,.pf-map-overlay.pf-map-overlay-info i.far{font-size:20px}.pf-map-overlay.pf-map-overlay-info i.glyphicon{margin-top:1px;font-size:22px;padding-left:3px}.pf-map-overlay.pf-map-overlay-info i.active,.pf-map-overlay.pf-map-overlay-info i:hover{color:#c2760c}.pf-map-overlay.pf-map-overlay-local{top:54px;right:25px;min-height:80px;width:32px;display:block;will-change:width}.pf-map-overlay.pf-map-overlay-local .pf-map-overlay-local-content{margin-right:36px;padding:5px 0 5px 5px;overflow:hidden}.pf-map-overlay.pf-map-overlay-local .pf-map-overlay-local-content .pf-map-overlay-headline{font-size:12px;font-family:"Oxygen Bold","Helvetica Neue",Helvetica,Arial,sans-serif;white-space:nowrap}.pf-map-overlay.pf-map-overlay-local .pf-map-overlay-local-content .pf-map-overlay-headline .badge{margin-left:5px}.pf-map-overlay.pf-map-overlay-local .pf-map-overlay-local-content .pf-map-overlay-headline .pf-system-sec{cursor:default}.pf-map-overlay.pf-map-overlay-local .pf-map-overlay-local-content .pf-local-table{font-size:10px}.pf-map-overlay.pf-map-overlay-local .pf-map-overlay-local-content .pf-local-table.no-footer{border-bottom:1px solid transparent}.pf-map-overlay.pf-map-overlay-local .pf-map-overlay-local-content .pf-local-table td{white-space:nowrap}.pf-map-overlay.pf-map-overlay-local .pf-map-overlay-local-content .dataTables_paginate,.pf-map-overlay.pf-map-overlay-local .pf-map-overlay-local-content .dataTables_empty{white-space:nowrap;padding-top:3px}.pf-map-overlay.pf-map-overlay-local .pf-map-overlay-local-content .pf-map-overlay-toolbar .pf-map-overlay-toolbar-icon{vertical-align:0;margin-top:14px}.pf-map-overlay.pf-map-overlay-local .pf-map-overlay-local-content .pf-map-overlay-toolbar .pf-map-overlay-toolbar-checkbox{display:inline-block;margin-bottom:0}.pf-map-overlay.pf-map-overlay-local .pf-map-overlay-local-main{position:absolute;top:0;right:0;height:100%;padding:3px;width:32px;cursor:pointer;text-align:center;border-left:1px solid #2b2b2b}.pf-map-overlay.pf-map-overlay-local .pf-map-overlay-local-main .pf-map-overlay-local-trigger{margin-bottom:10px}.pf-map-overlay.pf-map-overlay-local .pf-map-overlay-local-main .pf-map-overlay-local-trigger:hover,.pf-map-overlay.pf-map-overlay-local .pf-map-overlay-local-main .pf-map-overlay-local-trigger.right{color:#c2760c}.pf-map-overlay.pf-map-overlay-local .pf-map-overlay-local-main i{font-size:12px}.pf-map-overlay.pf-map-overlay-local .pf-map-overlay-local-jumps{position:absolute;bottom:5px;width:calc(100% - 6px)}.pf-map-overlay.pf-map-overlay-local .badge{font-family:Arial, sans-serif;background-color:#2b2b2b}.pf-grid-small:before{content:' ';display:block;position:absolute;left:0;top:0;width:100%;height:100%;opacity:0.6;background:url('data:image/png;base64,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') !important}.jtk-drag-select .pf-map{cursor:grab !important}.jtk-drag-select .pf-map .pf-system{cursor:grab !important}.jtk-drag-select .pf-map .pf-system .pf-system-head{cursor:grab !important}.pf-map{width:2500px;height:1500px;position:relative;font-family:"Oxygen Bold","Helvetica Neue",Helvetica,Arial,sans-serif;will-change:transform}.pf-map.pf-map-move{cursor:move !important}.pf-map .jtk-hover:not(.jtk-overlay){animation-duration:1s;animation-delay:0.5s;animation-fill-mode:both;animation-timing-function:linear;animation-iteration-count:infinite;animation-name:bounce}.pf-map .jtk-source-hover,.pf-map .jtk-target-hover{animation-duration:1s;animation-delay:0.5s;animation-fill-mode:both;animation-timing-function:linear;animation-iteration-count:infinite;animation-name:bounce;-webkit-box-shadow:0 6px 12px rgba(0,0,0,0.3);box-shadow:0 6px 12px rgba(0,0,0,0.3)}.pf-map .pf-system{position:absolute;min-width:60px;height:auto;overflow:hidden;background-color:#313335;font-family:"Oxygen Bold","Helvetica Neue",Helvetica,Arial,sans-serif;z-index:100;will-change:top, left, opacity, transform;border-width:2px;border-style:solid;border-color:#63676a;-moz-border-radius:5px;-webkit-border-radius:5px;border-radius:5px;-webkit-transition:border-color 0.2s ease-out,box-shadow 0.12s ease-out,opacity 0.12s ease-out;transition:border-color 0.2s ease-out,box-shadow 0.12s ease-out,opacity 0.12s ease-out;-moz-transform:translate3d(0, 0, 0);-ms-transform:translate3d(0, 0, 0);-webkit-transform:translate3d(0, 0, 0);transform:translate3d(0, 0, 0)}.pf-map .pf-system:hover{-webkit-box-shadow:0 6px 12px rgba(0,0,0,0.3);box-shadow:0 6px 12px rgba(0,0,0,0.3);-moz-transform:translate3d(0, -1px, 0) !important;-ms-transform:translate3d(0, -1px, 0) !important;-webkit-transform:translate3d(0, -1px, 0) !important;transform:translate3d(0, -1px, 0) !important}.pf-map .pf-system .pf-system-head{padding:0 3px 0 3px;cursor:pointer;font-family:Arial, sans-serif;font-weight:bold;white-space:nowrap}.pf-map .pf-system .pf-system-head .pf-system-head-name{border:none;display:inline-block;min-width:50px;color:#adadad;margin-right:2px}.pf-map .pf-system .pf-system-head .pf-system-head-counter{display:inline-block;text-align:right;min-width:8px;margin-right:1px;color:#5cb85c;cursor:help}.pf-map .pf-system .pf-system-head .pf-system-head-counter:empty{display:none}.pf-map .pf-system .pf-system-head .pf-system-effect{font-size:11px}.pf-map .pf-system .pf-system-head .fa-lock{font-size:11px;display:none}.pf-map .pf-system .pf-system-head .pf-system-head-expand{margin-left:2px;color:#63676a;width:10px;display:none}.pf-map .pf-system .pf-system-head .editable-empty{font-style:normal}.pf-map .pf-system .pf-system-head-info{display:flex;color:#7c8184;font-size:10px;line-height:10px;padding-right:1px;margin-bottom:2px}.pf-map .pf-system .pf-system-head-info [class^="pf-system-sec-"]{cursor:help}.pf-map .pf-system .pf-system-head-info-left{flex:1}.pf-map .pf-system .pf-system-head-info-right{flex:1;text-align:right}.pf-map .pf-system .pf-system-body{height:0px;width:100%;overflow:hidden;cursor:-moz-grab;cursor:-webkit-grab;cursor:grab;padding:0 4px;white-space:nowrap;display:none;will-change:width;border-top-width:1px;border-top-style:dashed;border-top-color:#63676a}.pf-map .pf-system .pf-system-body .pf-system-body-item{position:relative;color:#7c8184;font-size:10px;line-height:16px;height:16px}.pf-map .pf-system .pf-system-body .pf-system-body-item .pf-system-body-right{float:right;color:#f0ad4e;width:50px;overflow:hidden;white-space:nowrap;text-overflow:ellipsis;display:none}.pf-map .pf-system .pf-system-body .pf-system-body-item .pf-user-status{font-size:6px;width:10px;vertical-align:middle}.pf-map .pf-system .pf-system-body .pf-system-body-item .pf-system-body-item-name{position:absolute;display:inline-block;width:calc(100% - 10px);overflow:hidden;white-space:nowrap;text-overflow:ellipsis}.pf-map .pf-system .tooltip.in{opacity:1}.pf-map .pf-system .tooltip .tooltip-inner{color:#313335;background-color:#adadad;padding:3px 3px}.pf-map .pf-system-active:not(.pf-map-endpoint-source):not(.pf-map-endpoint-target){-webkit-box-shadow:#ffb 0px 0px 8px 0px;box-shadow:#ffb 0px 0px 8px 0px}.pf-map .pf-system-selected:not(.pf-map-endpoint-source):not(.pf-map-endpoint-target),.pf-map .jtk-drag:not(.pf-map-endpoint-source):not(.pf-map-endpoint-target){-webkit-box-shadow:#58100d 0px 0px 8px 0px;box-shadow:#58100d 0px 0px 8px 0px;background-color:#58100d}.pf-map .pf-system-selected:not(.pf-map-endpoint-source):not(.pf-map-endpoint-target) .pf-system-head,.pf-map .jtk-drag:not(.pf-map-endpoint-source):not(.pf-map-endpoint-target) .pf-system-head,.pf-map .pf-system-selected:not(.pf-map-endpoint-source):not(.pf-map-endpoint-target) .pf-system-body,.pf-map .jtk-drag:not(.pf-map-endpoint-source):not(.pf-map-endpoint-target) .pf-system-body{background-color:#58100d}.pf-map .pf-system-locked .pf-system-sec{cursor:default !important}.pf-map .pf-system-locked .pf-system-body{cursor:default !important}.pf-map .pf-system-locked .fa-lock{color:#63676a !important;display:inline-block !important}.pf-map .pf-system-debug{position:absolute;color:#fff;font-size:10px;line-height:22px;text-align:center;pointer-events:none;font-family:Oxygen, Arial, sans-serif;z-index:500}.pf-map .pf-system-debug:before{content:attr(data-depth);font-family:Oxygen, Arial, sans-serif;position:absolute;line-height:10px;top:1px;left:2px;color:#000}.pf-map .jtk-endpoint{z-index:90}.pf-map .jtk-endpoint svg circle{-webkit-transition:stroke 0.18s ease-out,fill 0.18s ease-out;transition:stroke 0.18s ease-out,fill 0.18s ease-out}.pf-map .jtk-endpoint svg *{stroke:#63676a;cursor:pointer}.pf-map .jtk-endpoint:hover circle{stroke:#e28a0d !important}.pf-map .jtk-endpoint.jtk-hover{z-index:95}.pf-map .jtk-endpoint.jtk-hover.pf-map-endpoint-bubble:after{filter:drop-shadow(-3px 3px 4px rgba(0,0,0,0.3));animation-iteration-count:infinite;animation-delay:0.5s}.pf-map .jtk-endpoint:after{content:url("../../img/bubble.svg");position:absolute;display:block;pointer-events:none;top:-8px;left:-8px;width:30px;height:30px;z-index:-1;will-change:opacity, transform;animation-name:pfBubblePop;animation-duration:0.09s;animation-timing-function:cubic-bezier(0.16, 0.87, 0.48, 0.99);animation-fill-mode:forwards;animation-iteration-count:1}.pf-map .pf-map-endpoint-bubble:after{display:block;animation-name:pfBubbleWobble;animation-duration:1s;animation-timing-function:linear;animation-iteration-count:1;animation-fill-mode:both}.pf-map .jtk-endpoint-drop-allowed circle{stroke:#5cb85c !important;fill:#5cb85c !important}.pf-map .jtk-endpoint-drop-forbidden circle{stroke:#a52521 !important;fill:#a52521 !important}.pf-map .jtk-connector{z-index:40;cursor:pointer;overflow:unset;-webkit-transition:stroke 0.18s ease-out,opacity 0.18s ease-out;transition:stroke 0.18s ease-out,opacity 0.18s ease-out;will-change:all}.pf-map .jtk-connector path{-webkit-transition:stroke 0.18s ease-out;transition:stroke 0.18s ease-out}.pf-map .jtk-connector.jtk-hover{z-index:80;filter:drop-shadow(-3px 3px 4px rgba(0,0,0,0.3))}.pf-map .jtk-connector.jtk-hover path:first-child{stroke:#eaeaea}.pf-map .jtk-connector.jtk-dragging{z-index:80;opacity:0.4}.pf-map .pf-map-connection-abyssal{z-index:40}.pf-map .pf-map-connection-abyssal path:first-child{stroke:rgba(255,255,255,0)}.pf-map .pf-map-connection-abyssal path:nth-child(2){stroke:#5a225a}.pf-map .pf-map-connection-abyssal.jtk-hover path:first-child{stroke:rgba(255,255,255,0)}.pf-map .pf-map-connection-abyssal.jtk-hover path:nth-child(2){stroke:#eaeaea}.pf-map .pf-map-connection-jumpbridge{z-index:50}.pf-map .pf-map-connection-jumpbridge path:first-child{stroke:rgba(255,255,255,0)}.pf-map .pf-map-connection-jumpbridge path:nth-child(2){stroke:#568a89}.pf-map .pf-map-connection-jumpbridge.jtk-hover path:first-child{stroke:rgba(255,255,255,0)}.pf-map .pf-map-connection-jumpbridge.jtk-hover path:nth-child(2){stroke:#eaeaea}.pf-map .pf-map-connection-stargate{z-index:60}.pf-map .pf-map-connection-stargate path:first-child{stroke:#63676a}.pf-map .pf-map-connection-stargate path:nth-child(2){stroke:#313966}.pf-map .pf-map-connection-wh-fresh,.pf-map .pf-map-connection-wh-reduced,.pf-map .pf-map-connection-wh-critical,.pf-map .pf-map-connection-wh-eol{z-index:70}.pf-map .pf-map-connection-wh-eol path:first-child{stroke:#d747d6}.pf-map .pf-map-connection-wh-reduced path:nth-child(2){stroke:#e28a0d}.pf-map .pf-map-connection-wh-critical path:nth-child(2){stroke:#a52521}.pf-map .pf-map-connection-wh-size-s path:nth-child(2),.pf-map .pf-map-connection-wh-size-m path:nth-child(2){stroke-linecap:square !important}.pf-map .pf-map-connection-active{filter:drop-shadow(0px 0px 3px #ffb) !important}.pf-map .pf-map-connection-process{opacity:0.4 !important}.pf-map .pf-map-connection-process path{pointer-events:none}.pf-map .jtk-overlay{opacity:1;pointer-events:none;will-change:opacity;-webkit-transition:opacity 0.18s ease-out;transition:opacity 0.18s ease-out}.pf-map .jtk-overlay.jtk-hover:not(.debug){opacity:0 !important}.pf-map .pf-map-component-overlay,.pf-map .pf-map-connection-state-overlay{font-size:11px;z-index:1020;background-color:#3c3f41;color:#adadad}.pf-map .pf-map-component-overlay{line-height:14px;padding:1px 4px;-moz-border-radius:6px;-webkit-border-radius:6px;border-radius:6px;-webkit-box-shadow:0 3px 6px rgba(0,0,0,0.3);box-shadow:0 3px 6px rgba(0,0,0,0.3)}.pf-map .pf-map-component-overlay.small{-webkit-font-smoothing:antialiased;font-family:Arial, sans-serif;padding:1px 2px;line-height:12px;min-width:14px;-moz-border-radius:3px;-webkit-border-radius:3px;border-radius:3px}.pf-map .pf-map-component-overlay.icon{font-size:12px;line-height:12px;padding:0;width:12px;height:12px;overflow:hidden;text-align:center;-moz-border-radius:50%;-webkit-border-radius:50%;border-radius:50%}.pf-map .pf-map-component-overlay.debug{background-color:#3e264e;opacity:0.8}.pf-map .pf-map-connection-state-overlay{background-color:transparent;font-size:12px;width:15px;height:15px;opacity:0.4 !important;z-index:1030}.pf-map .frig{background-color:#f0ad4e;color:#1d1d1d}.pf-map .mass{background-color:#a52521;color:#eaeaea}.pf-map .eol{background-color:#3c3f41;color:#d747d6}.pf-map .pf-map-connection-arrow-overlay-success .pf-map-connection-arrow-overlay{stroke:#313335;fill:#5cb85c}.pf-map .pf-map-connection-arrow-overlay-danger .pf-map-connection-arrow-overlay{stroke:#313335;fill:#d9534f;animation-name:pfPulseDanger;animation-duration:4s;animation-iteration-count:infinite}.pf-map-drag-to-select{background:#375959 !important;display:block;visibility:hidden;opacity:0;z-index:9000;border:1px dashed #adadad;pointer-events:none;will-change:left, top, width, height, opacity;-moz-border-radius:5px;-webkit-border-radius:5px;border-radius:5px;-webkit-transition:opacity 0.15s linear;transition:opacity 0.15s linear}.pf-map-drag-to-select.active{visibility:visible;opacity:0.3}.ui-dialog-content label,.ui-dialog-content .editable-input .editable-checklist>div>label>span,.editable-input .ui-dialog-content .editable-checklist>div>label>span{min-width:60px}.dropdown-menu{min-width:150px;font-family:"Oxygen Bold","Helvetica Neue",Helvetica,Arial,sans-serif;z-index:1050;will-change:opacity, top, left, transform}.dropdown-menu a{cursor:pointer}.dropdown-menu i{width:20px;pointer-events:none}.dropdown-menu i.fa-char:before{font-weight:bolder}.dropdown-menu:not(.dropdown-submenu-left) .dropdown-menu{border-top-left-radius:0;border-bottom-left-radius:0;clip-path:inset(-12px -12px -12px 0px)}.dropdown-menu[role]>li:not(.disabled){position:relative}.dropdown-menu[role]>li:not(.disabled):before{content:'';position:absolute;left:0;background-color:#5cb85c;opacity:0;-webkit-transition:left 0.15s ease-out,opacity 0.15s ease-out;transition:left 0.15s ease-out,opacity 0.15s ease-out;will-change:opacity,left;width:2px;height:100%}.dropdown-menu[role]>li:not(.disabled):hover:before,.dropdown-menu[role]>li:not(.disabled).active:before{left:-4px;opacity:1}.dropdown-menu>li.disabled{cursor:not-allowed;pointer-events:none}.dropdown-menu>li>a{padding:3px 8px}.dropdown-menu.dropdown-submenu-left>.dropdown-submenu>.dropdown-menu{left:-100%;border-top-right-radius:0;border-bottom-right-radius:0;clip-path:inset(-12px 0 -12px -12px)}.pf-system-tooltip-inner{color:#adadad;padding:2px 4px;min-width:25px;-webkit-transition:color 0.2s ease-out;transition:color 0.2s ease-out}.pf-system-demo-module .pf-module-body{grid-template:"info info " min-content "userData mapData " min-content "trigger sortableJs" min-content / 1fr 1fr}.pf-system-demo-module .pf-module-body>.pf-dynamic-area{margin:0}.pf-system-demo-module .pf-module-body>.pf-dynamic-area[data-area="info"]{grid-area:info;max-height:800px}.pf-system-demo-module .pf-module-body>.pf-dynamic-area[data-area="userData"]{grid-area:userData}.pf-system-demo-module .pf-module-body>.pf-dynamic-area[data-area="mapData"]{grid-area:mapData}.pf-system-demo-module .pf-module-body>.pf-dynamic-area[data-area="trigger"]{grid-area:trigger}.pf-system-demo-module .pf-module-body>.pf-dynamic-area[data-area="sortableJs"]{grid-area:sortableJs}.pf-system-demo-module .pf-module-body>.pf-dynamic-area>h5{margin-bottom:0}.pf-system-demo-module .pf-module-body>.pf-dynamic-area>h5+code:not(:empty){margin-top:10px}.pf-map-tab-content-area-a .pf-system-demo-module .pf-module-body{grid-template:"info userData mapData" minmax(200px, min-content) "info userData mapData" minmax(auto, min-content) "trigger sortableJs mapData" minmax(38px, min-content)/minmax(38px, 1fr) minmax(210px, max-content) minmax(38px, 1fr)}.pf-map-tab-content-area-a .pf-system-demo-module .pf-module-body>.pf-dynamic-area[data-area="userData"]{max-width:100%;min-width:210px;max-height:800px;min-height:210px;resize:both}.pf-map-tab-content-area-a .pf-system-demo-module .pf-module-body>.pf-dynamic-area[data-area="userData"]:after{content:'';position:absolute;bottom:0;right:0;border-style:solid;border-width:9px 9px 0 0;border-color:transparent #3c3f41 transparent transparent;cursor:se-resize}.pf-system-info-module h5{text-transform:capitalize}.pf-system-info-module .pf-module-head .fa-angle-double-right{width:20px}.pf-system-info-module .pf-module-body{grid-template-columns:repeat(auto-fit, minmax(165px, 1fr))}.pf-system-info-module .pf-system-info-section .pf-dynamic-area{height:calc(100% - 23px)}.pf-system-info-module .pf-system-info-name-cell{user-select:all}.pf-system-info-module .pf-system-info-svg{position:absolute;margin:2px 0}.pf-system-info-module .pf-system-sov-fw-percentage{border-top-color:transparent}.pf-system-info-module .pf-system-sov-fw-status-icon{margin-left:20px;color:var(--color)}.pf-system-info-module .pf-system-sov-fw-contested-row,.pf-system-info-module .pf-system-sov-fw-occupation-row{display:none}.pf-system-info-module .pf-system-description-section{grid-column:span 2}.pf-system-info-module .pf-system-info-description-area{height:100%;min-height:100px;padding:0}.pf-system-info-module .pf-system-info-description-area .pf-system-info-description-button{position:absolute;right:10px;top:13px}.pf-system-info-module .pf-system-info-description-area .pf-system-info-description{padding:10px;user-select:text}.pf-system-info-module .pf-system-info-description-area .note-toolbar kbd{padding:3px 4px}.pf-system-info-module .pf-system-info-description-area .note-toolbar .note-customBtn{float:right}.pf-system-info-module .pf-system-info-description-area .note-toolbar:before,.pf-system-info-module .pf-system-info-description-area .note-toolbar:after{content:" ";display:table}.pf-system-info-module .pf-system-info-description-area .note-toolbar:after{clear:both}.pf-system-info-module .pf-system-info-description>h2:first-child,.pf-system-info-module .pf-system-info-description>h3:first-child,.pf-system-info-module .note-editable>h2:first-child,.pf-system-info-module .note-editable>h3:first-child{margin-top:0 !important}.pf-system-info-module .pf-system-info-description h2:before,.pf-system-info-module .pf-system-info-description h3:before,.pf-system-info-module .note-editable h2:before,.pf-system-info-module .note-editable h3:before{font-family:"Font Awesome 5 Free";content:"\f105";font-weight:bold;display:inline-block;margin-right:3px}.pf-system-info-module .pf-system-info-description h2,.pf-system-info-module .note-editable h2{font-size:16px;margin:15px 0}.pf-system-info-module .pf-system-info-description h3,.pf-system-info-module .note-editable h3{font-size:14px;margin:10px 0}.pf-system-info-module .pf-system-info-description a:after,.pf-system-info-module .note-editable a:after{font-family:"Font Awesome 5 Free";content:"\f35d";font-size:70%;vertical-align:top;font-weight:bold;display:inline-block;margin-left:2px}.pf-system-info-module .pf-system-info-description hr,.pf-system-info-module .note-editable hr{border-top:1px solid #313335}.pf-system-info-module .pf-system-info-description blockquote,.pf-system-info-module .note-editable blockquote{padding:5px 10px;margin:0 0 10px;font-size:13px;border-left:3px solid #477372}.pf-system-info-module .pf-system-info-description ol,.pf-system-info-module .pf-system-info-description ul,.pf-system-info-module .note-editable ol,.pf-system-info-module .note-editable ul{padding-left:20px}.pf-system-info-module .pf-system-info-description ul,.pf-system-info-module .note-editable ul{list-style:disc}.pf-system-info-module .pf-system-info-description ol,.pf-system-info-module .note-editable ol{list-style:decimal}.pf-map-tab-content-area-b .pf-system-info-module .pf-module-body-small .pf-system-info-section,.pf-map-tab-content-area-c .pf-system-info-module .pf-module-body-small .pf-system-info-section{grid-column:span 2}.modal.link-dialog .checkbox,.modal.link-dialog .editable-input .editable-checklist>div>label,.editable-input .modal.link-dialog .editable-checklist>div>label{display:none}.pf-system-graph-module .pf-module-head h5.pull-right{margin-right:5px}.pf-system-graph-module .pf-module-body{grid-template-columns:repeat(auto-fit, minmax(165px, 1fr))}.pf-system-graph-module .pf-system-graph{position:relative;width:100%;height:100px;display:flex;justify-content:center;align-items:center;margin-top:10px;-webkit-transition:height 0.18s ease-out;transition:height 0.18s ease-out}.pf-system-signature-module .progress-label-right{margin-right:20px;margin-left:10px;vertical-align:middle;font-size:11px}.pf-system-signature-module .pf-system-progress-scanned{display:inline-block;margin-left:20px;width:calc(100% - 230px)}.pf-system-signature-module .pf-system-progress-scanned .progress{margin-bottom:3px}.pf-system-signature-module .pf-sig-table-clear-button{will-change:color;color:#a52521}.pf-system-signature-module .pf-sig-table{font-size:10px}.pf-system-signature-module .pf-sig-table .editable-container.editable-inline{display:inline}.pf-system-signature-module .pf-sig-table .editable-container.editable-inline .control-group{display:inline}.pf-system-signature-module .pf-sig-table .editable-container.editable-inline .control-group .editable-input{display:inline}.pf-system-signature-module .pf-sig-table .pf-editable-description{width:100%;background-color:#2b2b2b;max-height:300px;font-size:11px;line-height:14px;padding:3px 6px}.pf-system-signature-module .pf-sig-table-secondary th{pointer-events:none}.pf-system-signature-module .pf-sig-table-secondary th:after{display:none !important}.pf-system-signature-module .pf-sig-table-secondary th.pf-table-counter-cell{color:transparent}.pf-system-route-module .pf-system-route-table{width:100%;font-size:10px}.pf-system-route-module .pf-system-route-table td{text-transform:capitalize}.pf-system-route-module .pf-system-route-table td .pf-fake-connection{display:none;width:12px;height:3px;cursor:pointer}.pf-system-route-module .pf-system-route-table td .pf-fake-connection[data-disabled]{cursor:initial}.pf-system-route-module .pf-system-route-table td .pf-fake-connection[class*=' pf-map-connection-wh-size-']{width:25px}.pf-system-route-module .pf-system-route-table td .pf-fake-connection:after{font-size:10px}.pf-system-route-module .pf-system-route-table td .pf-fake-connection.pf-map-connection-preserve-mass:after{content:"\f071";font-family:"Font Awesome 5 Free";font-style:normal;font-weight:bold;left:calc(50% - 7px)}.pf-system-route-module .pf-system-route-table td.pf-table-jump-cell .pf-fake-connection{display:inline-block}.pf-system-intel-module .pf-system-station-table,.pf-system-intel-module .pf-system-structure-table{font-size:10px}.pf-system-intel-module .pf-module-head:not(:first-child){margin-top:15px;margin-bottom:5px}.pf-system-killboard-module .pf-system-killboard-wsStatusWrapper{margin-left:8px;font-size:60%;line-height:100%;vertical-align:middle}.pf-system-killboard-module .pf-system-killboard-list{margin-bottom:0}.pf-system-killboard-module .pf-system-killboard-list>li{padding-left:0;overflow:visible;min-height:50px;will-change:transform, opacity, margin-left;-webkit-transition:padding-left 0.12s cubic-bezier(0.3, 0.8, 0.8, 1.7);transition:padding-left 0.12s cubic-bezier(0.3, 0.8, 0.8, 1.7)}.pf-system-killboard-module .pf-system-killboard-list>li h3{white-space:nowrap}.pf-system-killboard-module .pf-system-killboard-list>li>.flex-col{align-self:center;position:relative}.pf-system-killboard-module .pf-system-killboard-list>li>.flex-col:last-child{display:flex;flex-direction:column;align-content:space-between;min-width:110px}.pf-system-killboard-module .pf-system-killboard-list>li a:hover>img{border-color:#568a89}.pf-system-killboard-module .pf-system-killboard-list>li.media{margin-top:10px}.pf-system-killboard-module .pf-system-killboard-list>li.pf-system-killboard-list-head{min-height:20px}.pf-system-killboard-module .pf-system-killboard-list>li.pf-system-killboard-list-head h5{margin-bottom:0;min-width:auto !important}.pf-system-killboard-module .pf-system-killboard-list>li.pf-system-killboard-list-head h5:first-child>i{margin-right:5px}.pf-system-killboard-module .pf-system-killboard-list>li.pf-system-killboard-list-head h5:last-child>i{margin-left:5px}.pf-system-killboard-module .pf-system-killboard-list>li .media-heading-location{margin:0;font-size:11px;line-height:13px}.pf-system-killboard-module .pf-system-killboard-list>li .media-heading-isk{margin:0;font-size:11px;line-height:25px}.pf-system-killboard-module .pf-system-killboard-list>li .media-heading-date{margin:0;font-size:10px;line-height:12px}.pf-system-killboard-module .pf-system-killboard-list>li .pf-system-killboard-img-l{height:50px;width:50px;min-width:50px;max-width:50px;min-height:50px;max-height:50px;margin-right:10px;border:1px solid #2b2b2b;overflow:hidden;will-change:border-color;-moz-border-radius:50%;-webkit-border-radius:50%;border-radius:50%;-webkit-transition:border-color 0.12s ease-out;transition:border-color 0.12s ease-out}.pf-system-killboard-module .pf-system-killboard-list>li .pf-system-killboard-img-m{display:inline;height:32px;width:32px;min-width:32px;max-width:32px;min-height:32px;max-height:32px;margin-right:10px;border:1px solid #2b2b2b;overflow:hidden;will-change:border-color;-moz-border-radius:50%;-webkit-border-radius:50%;border-radius:50%;-webkit-transition:border-color 0.12s ease-out;transition:border-color 0.12s ease-out;align-self:center}.pf-system-killboard-module .pf-system-killboard-list>li .pf-system-killboard-img-s{display:inline;height:20px;width:20px;min-width:20px;max-width:20px;min-height:20px;max-height:20px;margin-right:10px;border:1px solid #2b2b2b;overflow:hidden;will-change:border-color;-moz-border-radius:50%;-webkit-border-radius:50%;border-radius:50%;-webkit-transition:border-color 0.12s ease-out;transition:border-color 0.12s ease-out}.pf-system-killboard-module .pf-system-killboard-list>li:before{content:"\f054";font-family:"Font Awesome 5 Free";font-weight:bold;position:absolute;z-index:10;left:-18px;top:16px;color:#477372;opacity:0;will-change:opacity, left;-webkit-transition:all 0.12s ease-out;transition:all 0.12s ease-out}.pf-system-killboard-module .pf-system-killboard-list>li:not(.pf-system-killboard-list-head):hover{padding-left:10px}.pf-system-killboard-module .pf-system-killboard-list>li:not(.pf-system-killboard-list-head):hover:before{opacity:1;left:-3px}.pf-system-killboard-module .pf-system-killboard-list>li .badge-victim:after{content:"\f714";font-family:"Font Awesome 5 Free";font-style:normal;font-weight:bold;font-size:13px;color:#a52521;position:absolute;bottom:-6px;left:20px}.pf-system-killboard-module .pf-system-killboard-list>li .badge-attacker:after{content:var(--label);font-style:normal;font-weight:bold;font-size:11px;color:var(--color);background-color:#313335;line-height:1;border-radius:9px;padding:3px 4px;position:absolute;bottom:-2px;left:30px}.pf-system-killboard-module .pf-module-control-area{margin-top:15px}.pf-connection-info-module .pf-module-body{grid-template-columns:repeat(auto-fit, minmax(200px, 1fr))}.pf-connection-info-module .pf-connection-info-table{width:100%;font-size:10px}input,select{background-color:#313335;color:#adadad;border:1px solid #63676a;font-family:"Oxygen Bold","Helvetica Neue",Helvetica,Arial,sans-serif}input:focus,select:focus{border-color:#568a89}input:-webkit-autofill,select:-webkit-autofill{background-color:#313335 !important;-webkit-box-shadow:0 0 0 50px #313335 inset !important;box-shadow:0 0 0 50px #313335 inset !important;-webkit-text-fill-color:#adadad}input:-webkit-autofill:focus,select:-webkit-autofill:focus{-webkit-box-shadow:0 0 0 50px #313335 inset !important;box-shadow:0 0 0 50px #313335 inset !important;-webkit-text-fill-color:#adadad}input[disabled]::-moz-placeholder,select[disabled]::-moz-placeholder{color:transparent;opacity:1}input[disabled]:-ms-input-placeholder,select[disabled]:-ms-input-placeholder{color:transparent}input[disabled]::-webkit-input-placeholder,select[disabled]::-webkit-input-placeholder{color:transparent}input.pf-select2,select.pf-select2{height:32px;padding:6px 12px}input[type='number']::-webkit-inner-spin-button,input[type='number']::-webkit-outer-spin-button{-webkit-appearance:none;-moz-appearance:none;appearance:none;margin:0;display:none}input[type='file']::-webkit-file-upload-button{background-color:transparent;border:none;color:#63676a;outline:none}textarea{min-height:32px;max-height:400px;resize:vertical}fieldset[disabled] .form-control{color:#63676a}fieldset[disabled] .form-control::-moz-placeholder{color:transparent;opacity:1}fieldset[disabled] .form-control:-ms-input-placeholder{color:transparent}fieldset[disabled] .form-control::-webkit-input-placeholder{color:transparent}fieldset[disabled] .input-icon-left .fa-stack i:last-child,fieldset[disabled] .input-icon-right .fa-stack i:last-child{color:#3c3f41}#select2-pf-map-dialog-edit-icon-select-container,#select2-pf-map-dialog-new-icon-select-container,#select2-pf-map-dialog-new-icon-select-results,#select2-pf-map-dialog-edit-icon-select-results,.pf-form-icon-field{font-family:"Font Awesome 5 Free";font-weight:bold}#select2-pf-map-dialog-edit-icon-select-container option,#select2-pf-map-dialog-new-icon-select-container option,#select2-pf-map-dialog-new-icon-select-results option,#select2-pf-map-dialog-edit-icon-select-results option,.pf-form-icon-field option{font-family:inherit;font-weight:inherit}.input-icon-left:not(.input-icon-right) .fa-stack:first-child{left:14px}.input-icon-right:not(.input-icon-left) .fa-stack:first-child{right:14px}.input-icon-left.input-icon-right .fa-stack:first-child{left:14px}.input-icon-left.input-icon-right .fa-stack:nth-child(2){right:14px}.input-icon-left .fa-stack,.input-icon-right .fa-stack{position:absolute;top:4px}.input-icon-left .fa-stack i:first-child,.input-icon-right .fa-stack i:first-child{color:#63676a}.input-icon-left .fa-stack i:last-child,.input-icon-right .fa-stack i:last-child{color:#313335}.btn .btn-progress{position:absolute;display:block;height:100%;background-color:rgba(92,184,92,0.2);max-width:100%;width:0;top:0;left:0;overflow:hidden;line-height:30px;color:#f0ad4e;font-size:10px;text-align:left;-webkit-transition:width 0.1s linear;transition:width 0.1s linear}.pf-form-dropzone{border:2px dashed #2b2b2b;height:100px;background-color:#353739;text-align:center;font-size:20px;line-height:100px;margin:15px 0;color:#2b2b2b;-moz-border-radius:10px;-webkit-border-radius:10px;border-radius:10px;-webkit-transition:color 0.18s ease-out,border-color 0.18s ease-out;transition:color 0.18s ease-out,border-color 0.18s ease-out}.pf-form-dropzone:hover{color:#568a89;border-color:#568a89;cursor:-moz-grabbing;cursor:-webkit-grabbing;cursor:grabbing}.toggle.btn:active{box-shadow:none}.pf-form-field-char-count{display:block;margin-top:10px}.modal-content h2,.panel-body h2{font-family:"Oxygen","Helvetica Neue",Helvetica,Arial,sans-serif;letter-spacing:0;font-size:14px;margin:20px 0 10px 0;line-height:normal}.modal-content h2.pf-dynamic-area,.modal-content h4.pf-dynamic-area,.panel-body h2.pf-dynamic-area,.panel-body h4.pf-dynamic-area{min-height:0;margin:0 0 10px 0}.modal-content h2.pf-dynamic-area>img,.modal-content h4.pf-dynamic-area>img,.panel-body h2.pf-dynamic-area>img,.panel-body h4.pf-dynamic-area>img{margin:-10px 5px -10px -10px;width:35px}.modal-content h2[data-toggle="collapse"],.modal-content h4[data-toggle="collapse"],.panel-body h2[data-toggle="collapse"],.panel-body h4[data-toggle="collapse"]{cursor:pointer}.modal-content h2[data-toggle="collapse"]:hover:after,.modal-content h4[data-toggle="collapse"]:hover:after,.panel-body h2[data-toggle="collapse"]:hover:after,.panel-body h4[data-toggle="collapse"]:hover:after{color:#e28a0d !important}.modal-content h2[data-toggle="collapse"]:after,.modal-content h4[data-toggle="collapse"]:after,.panel-body h2[data-toggle="collapse"]:after,.panel-body h4[data-toggle="collapse"]:after{content:"\f078";font-family:"Font Awesome 5 Free";font-style:normal;font-weight:bold;font-size:13px;padding-right:10px;position:absolute;color:#e28a0d;top:10px;right:6px;will-change:transform, color}.modal-content h2[data-toggle="collapse"].collapsed:after,.modal-content h4[data-toggle="collapse"].collapsed:after,.panel-body h2[data-toggle="collapse"].collapsed:after,.panel-body h4[data-toggle="collapse"].collapsed:after{top:13px;right:5px;color:#63676a;-webkit-transform:rotate(90deg);-ms-transform:rotate(90deg);transform:rotate(90deg)}.modal-content .dataTables_wrapper+.alert{margin-top:10px}.modal-content .dataTable,.modal-content .table{font-size:10px;font-family:"Oxygen Bold","Helvetica Neue",Helvetica,Arial,sans-serif}.modal-content hr{margin:5px 0 15px 0;border-color:#63676a}.modal-content .well{margin-bottom:0}.modal-content .well .list-inline{margin-bottom:0}@media (min-width: 780px){.modal-content .fa-tree-child+.checkbox,.modal-content .editable-input .editable-checklist>div>.fa-tree-child+label,.editable-input .modal-content .editable-checklist>div>.fa-tree-child+label{margin-left:5px;display:inline-block;float:none;width:unset}}.modal-content .pf-wizard-navigation{margin:0}.modal-content .pf-wizard-navigation li:not(:last-child):before{border-top:1px solid #63676a;content:"";display:block;font-size:0;overflow:hidden;position:relative;top:12px;left:71px;right:1px;width:100%}.modal-content .pf-wizard-navigation li.finished:before{-moz-border-image:-moz-linear-gradient(left, #375959,#375959) 1 1%;-moz-border-image:linear-gradient(to right, #375959,#375959) 1 1%;-o-border-image:linear-gradient(to right, #375959,#375959) 1 1%;-webkit-border-image:-webkit-linear-gradient(left, #375959,#375959) 1 1%;-webkit-border-image:linear-gradient(to right, #375959,#375959) 1 1%;border-image:-moz-linear-gradient(left, #375959,#375959) 1 1%;border-image:-webkit-linear-gradient(left, #375959,#375959) 1 1%;border-image:linear-gradient(to right, #375959,#375959) 1 1%;border-bottom:0}.modal-content .pf-wizard-navigation li.active:before{-moz-border-image:-moz-linear-gradient(left, #4f9e4f,#63676a) 1 1%;-moz-border-image:linear-gradient(to right, #4f9e4f,#63676a) 1 1%;-o-border-image:linear-gradient(to right, #4f9e4f,#63676a) 1 1%;-webkit-border-image:-webkit-linear-gradient(left, #4f9e4f,#63676a) 1 1%;-webkit-border-image:linear-gradient(to right, #4f9e4f,#63676a) 1 1%;border-image:-moz-linear-gradient(left, #4f9e4f,#63676a) 1 1%;border-image:-webkit-linear-gradient(left, #4f9e4f,#63676a) 1 1%;border-image:linear-gradient(to right, #4f9e4f,#63676a) 1 1%;border-bottom:0}.modal-content .pf-wizard-navigation li>h6{color:#63676a;font-size:11px;margin:5px}.modal-content .pf-wizard-navigation li a:hover+h6{color:#adadad}.modal-content .pf-wizard-navigation li.active a:not(.btn-danger)+h6{color:#adadad}#pf-settings-dialog .form-group .btn-sm,#pf-settings-dialog .form-group .btn-group-sm>.btn{padding:4px 7px 3px}#pf-settings-dialog #pf-dialog-captcha-wrapper{margin:0;padding:3px 0}#pf-map-dialog #pf-map-dialog-character-select,#pf-map-dialog #pf-map-dialog-corporation-select,#pf-map-dialog #pf-map-dialog-alliance-select{width:535px}#pf-route-dialog #pf-route-dialog-map-select{width:300px !important}#pf-shortcuts-dialog td kbd+i{width:16px}#pf-shortcuts-dialog td kbd:last-of-type+i{display:none}#pf-manual-scrollspy{position:relative;height:700px;overflow:auto}#pf-manual-scrollspy .list-unstyled.well,#pf-manual-scrollspy .well.list-inline{display:inline-block}#pf-system-dialog .form-control-static.pf-dynamic-area{padding:7px;min-height:32px}.pf-system-dialog-select{width:300px !important}#pf-task-dialog .pf-task-dialog-status{min-height:inherit}#pf-task-dialog h4>small.pull-right{font-family:Arial, sans-serif;font-weight:bold;margin-top:-5px}#pf-map-info-logs{margin-bottom:10px}#pf-stats-dialog .pf-dynamic-area{margin-bottom:10px}#pf-structure-dialog #pf-structure-dialog-corporation-select,#pf-structure-dialog #pf-structure-dialog-type-select{width:267px !important}#pf-connection-info-dialog #pf-connection-info-dialog-type-select,#pf-connection-info-dialog #pf-connection-info-dialog-character-select{width:310px !important}.pf-sig-reader-dialog h4{margin-top:8px}.pf-sig-reader-dialog h4 .pf-system-progress-scanned{display:inline-block;margin-left:20px;width:calc(100% - 255px)}.pf-sig-reader-dialog h4 .pf-system-progress-scanned .progress{margin-bottom:2px}.pf-sig-reader-dialog h4 .progress-label-right{margin-left:8px;vertical-align:middle;font-size:11px;opacity:0.65}.pf-sig-reader-dialog #pf-sig-info{margin-bottom:10px}.pf-sig-reader-dialog .pf-sig-table-info tbody{pointer-events:none}.pf-sig-reader-dialog .pf-sig-table-info .editable-click.editable-disabled{color:inherit}.pf-jump-info-dialog blockquote{margin-top:15px;margin-bottom:5px}.pf-changelog-dialog .pf-dynamic-message-container{margin-bottom:20px}.pf-system-effect-dialog .dataTable{border-collapse:collapse}.pf-credits-dialog .pf-credits-logo-background{overflow:visible;background:url("../../img/logo_bg.png");background-size:cover;padding:20px;margin-bottom:20px}.pf-credits-dialog #pf-logo-container{width:355px;height:366px;margin:0 auto}.pf-credits-dialog .pf-dynamic-area{min-height:50px}.pf-credits-dialog .dl-horizontal{display:inline-block;width:48%}.pf-credits-dialog .btn{padding:0}.pf-credits-dialog blockquote{font-size:14px}.pf-sortable-handle:before{content:'\22EE\22EE\00A0';display:inline-block;cursor:-moz-grab !important;cursor:-webkit-grab !important;cursor:grab !important;color:#63676a;width:12px;transition:color 0.15s ease-out}.pf-sortable-handle:hover:before{color:#f0ad4e}.pf-sortable-ghost{opacity:0.7 !important}.pf-sortable-ghost .pf-sortable-handle{color:#f0ad4e}.pf-sortable-chosen{background:rgba(226,138,13,0.2)}.pf-sortable-dropzone:after{content:attr(data-area);display:flex;justify-content:center;align-items:center;height:100%;background-color:rgba(40,51,67,0.25);color:#c2760c;font-size:20px;text-transform:uppercase;font-weight:bold;position:absolute;top:0;left:0;width:100%;pointer-events:none;border:1px dashed #375959;border-radius:5px;border-top-left-radius:0;z-index:1}.pf-log-graph{height:100px;width:100%}.timeline{list-style:none;position:relative}.timeline:before{top:0;bottom:0;position:absolute;content:" ";width:1px;left:50%;margin-top:20px;background-image:url('data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgiPz4gPHN2ZyB2ZXJzaW9uPSIxLjEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PGRlZnM+PGxpbmVhckdyYWRpZW50IGlkPSJncmFkIiBncmFkaWVudFVuaXRzPSJvYmplY3RCb3VuZGluZ0JveCIgeDE9IjAuNSIgeTE9IjAuMCIgeDI9IjAuNSIgeTI9IjEuMCI+PHN0b3Agb2Zmc2V0PSIwJSIgc3RvcC1jb2xvcj0iIzRmOWU0ZiIvPjxzdG9wIG9mZnNldD0iMjUlIiBzdG9wLWNvbG9yPSIjNjM2NzZhIi8+PC9saW5lYXJHcmFkaWVudD48L2RlZnM+PHJlY3QgeD0iMCIgeT0iMCIgd2lkdGg9IjEwMCUiIGhlaWdodD0iMTAwJSIgZmlsbD0idXJsKCNncmFkKSIgLz48L3N2Zz4g');background-size:100%;background-image:-webkit-gradient(linear, 50% 0%, 50% 100%, color-stop(0%, #4f9e4f),color-stop(25%, #63676a));background-image:-moz-linear-gradient(top, #4f9e4f,#63676a 25%);background-image:-webkit-linear-gradient(top, #4f9e4f,#63676a 25%);background-image:linear-gradient(to bottom, #4f9e4f,#63676a 25%)}.timeline>li{margin-bottom:20px;position:relative}.timeline>li.timeline-first .timeline-title{color:#4f9e4f}.timeline>li.timeline-first .timeline-badge{background-color:#4f9e4f}.timeline>li:before,.timeline>li:after{content:" ";display:table}.timeline>li:after{clear:both}.timeline>li:before,.timeline>li:after{content:" ";display:table}.timeline>li:after{clear:both}.timeline>li>.timeline-panel{width:47%;float:left;border:1px solid #313335;padding:8px;position:relative;background-color:#313335;font-size:11px;-webkit-box-shadow:0 4px 10px rgba(0,0,0,0.4);box-shadow:0 4px 10px rgba(0,0,0,0.4);-moz-border-radius:5px;-webkit-border-radius:5px;border-radius:5px}.timeline>li>.timeline-panel:before{content:" ";position:absolute;top:10px;right:-8px;display:inline-block;border-top:7px solid transparent;border-left:7px solid #63676a;border-right:0 solid #63676a;border-bottom:7px solid transparent}.timeline>li>.timeline-panel:after{content:" ";position:absolute;top:10px;right:-8px;display:inline-block;border-top:7px solid transparent;border-left:7px solid #63676a;border-right:0 solid #63676a;border-bottom:7px solid transparent}.timeline>li>.timeline-badge{color:#2b2b2b;width:23px;height:23px;line-height:23px;text-align:center;position:absolute;top:6px;left:50%;margin-left:-11px;background-color:#63676a;z-index:100;-moz-border-radius:50%;-webkit-border-radius:50%;border-radius:50%}.timeline>li>.timeline-badge>i{vertical-align:middle}.timeline>li.timeline-inverted>.timeline-panel{float:right}.timeline>li.timeline-inverted>.timeline-panel:before{border-left-width:0;border-right-width:7px;left:-8px;right:auto}.timeline>li.timeline-inverted>.timeline-panel:after{border-left-width:0;border-right-width:8px;left:-9px;right:auto}.timeline-title{margin-top:0;color:inherit}.timeline-body>hr{display:none}.timeline-body>hr ~ *{display:none}.timeline-body>p,.timeline-body>ul{margin-bottom:0;list-style-type:disc;margin-left:15px}.timeline-body>p+p{margin-top:5px}.timeline-footer>.timeline-title{margin-top:10px;margin-bottom:0}@media (max-width: 1200px){ul.timeline:before{left:40px}ul.timeline>li>.timeline-panel{width:calc(100% - 62px)}ul.timeline>li>.timeline-badge{left:29px;margin-left:0;top:6px}ul.timeline>li>.timeline-panel{float:right}ul.timeline>li>.timeline-panel:before{border-left-width:0;border-right-width:7px;left:-8px;right:auto}ul.timeline>li>.timeline-panel:after{border-left-width:0;border-right-width:7px;left:-8px;right:auto}}.popover{z-index:1060;max-width:600px}.popover .arrow{pointer-events:none}.popover .popover-title{text-transform:capitalize;font-family:"Arial","Oxygen Bold","Helvetica Neue",Helvetica,sans-serif;font-weight:bold}.popover .popover-title kbd{line-height:90%;vertical-align:middle;box-shadow:none}.popover .popover-content{font-family:"Arial","Oxygen Bold","Helvetica Neue",Helvetica,sans-serif}.popover .popover-content>.hidden+.popover-footer,.popover .popover-content>.popover-footer:first-child{border-top-right-radius:5px;border-top-left-radius:5px}.popover .popover-footer{margin:0;padding:8px 14px;background-color:#353739;border-top:1px solid #303234;border-bottom-right-radius:5px;border-bottom-left-radius:5px}.popover img{-moz-border-radius:3px;-webkit-border-radius:3px;border-radius:3px}.popover h4{color:#adadad}.popover table{color:#adadad;line-height:16px;font-size:11px}.popover table td{padding:0 4px;vertical-align:middle !important}.popover .select2-container{margin-top:-1px;margin-left:-1px}.popover-small .popover-title{padding:4px 6px}.popover-small .popover-content{padding:4px 2px 4px}.popover-small .popover-content-inner{padding:7px 6px 0}.popover-small .popover-footer{padding:6px 6px}.pf-popover{display:initial}.pf-popover .popover-content{padding:0}.pf-popover h6{white-space:nowrap;margin-right:50px}.pf-popover h6:before,.pf-popover h6:after{content:" ";display:table}.pf-popover h6:after{clear:both}.pf-popover .well{margin-top:7px;margin-bottom:10px}.pf-popover .list-group{margin:0}.pf-popover .list-group .list-group-item{color:#313335}.pf-popover .list-group .list-group-item:hover{color:#1d1d1d}.pf-popover .list-group .list-group-item.disabled{background-color:#3c3f41;color:#63676a;cursor:not-allowed}.pf-popover .list-group .list-group-item img{width:30px;margin:-8px 10px -6px -8px;border-radius:0}.pf-popover .list-group .list-group-item i{margin-right:20px}.pf-popover .pf-popover-list-icon{width:28px;margin:5px 0}.pf-popover .pf-popover-list-icon:first-child{margin-left:8px}.pf-popover .pf-popover-list-icon:last-child{margin-right:8px}.pf-popover-character .table>tbody>tr>td{border:none;white-space:nowrap}.pf-popover-character .table>tbody>tr>td:first-child+td{padding:0 5px}.pf-popover-character .well{margin-bottom:0;line-height:13px}.ribbon-wrapper{width:72px;height:88px;overflow:hidden;position:absolute;top:-3px;right:-3px;pointer-events:none}.ribbon{font:bold 12px "Oxygen Bold","Helvetica Neue",Helvetica,Arial,sans-serif;color:#2b2b2b;text-align:center;text-shadow:rgba(255,255,255,0.2) 0px 1px 0px;position:relative;padding:3px 0;left:-4px;top:16px;width:99px;-webkit-box-shadow:2px 3px 3px rgba(0,0,0,0.2);box-shadow:2px 3px 3px rgba(0,0,0,0.2);-moz-transform:rotate(45deg);-ms-transform:rotate(45deg);-webkit-transform:rotate(45deg);transform:rotate(45deg)}.ribbon:before,.ribbon:after{content:"";border-left:3px solid transparent;border-right:3px solid transparent;position:absolute;bottom:-3px}.ribbon.ribbon-default{color:#adadad;background-color:#353739;background-image:url('data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgiPz4gPHN2ZyB2ZXJzaW9uPSIxLjEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PGRlZnM+PGxpbmVhckdyYWRpZW50IGlkPSJncmFkIiBncmFkaWVudFVuaXRzPSJvYmplY3RCb3VuZGluZ0JveCIgeDE9IjAuNSIgeTE9IjAuMCIgeDI9IjAuNSIgeTI9IjEuMCI+PHN0b3Agb2Zmc2V0PSIwJSIgc3RvcC1jb2xvcj0iIzJkMzAzMSIvPjxzdG9wIG9mZnNldD0iMTAwJSIgc3RvcC1jb2xvcj0iIzJhMmIyZCIvPjwvbGluZWFyR3JhZGllbnQ+PC9kZWZzPjxyZWN0IHg9IjAiIHk9IjAiIHdpZHRoPSIxMDAlIiBoZWlnaHQ9IjEwMCUiIGZpbGw9InVybCgjZ3JhZCkiIC8+PC9zdmc+IA==');background-size:100%;background-image:-webkit-gradient(linear, 50% 0%, 50% 100%, color-stop(0%, #2d3031),color-stop(100%, #2a2b2d));background-image:-moz-linear-gradient(top, #2d3031,#2a2b2d);background-image:-webkit-linear-gradient(top, #2d3031,#2a2b2d);background-image:linear-gradient(to bottom, #2d3031,#2a2b2d)}.ribbon.ribbon-default:before,.ribbon.ribbon-default:after{border-top:3px solid #000}.ribbon.ribbon-green{background-color:#5cb85c;background-image:url('data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgiPz4gPHN2ZyB2ZXJzaW9uPSIxLjEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PGRlZnM+PGxpbmVhckdyYWRpZW50IGlkPSJncmFkIiBncmFkaWVudFVuaXRzPSJvYmplY3RCb3VuZGluZ0JveCIgeDE9IjAuNSIgeTE9IjAuMCIgeDI9IjAuNSIgeTI9IjEuMCI+PHN0b3Agb2Zmc2V0PSIwJSIgc3RvcC1jb2xvcj0iIzUxYjM1MSIvPjxzdG9wIG9mZnNldD0iMTAwJSIgc3RvcC1jb2xvcj0iIzRhOTQ0YSIvPjwvbGluZWFyR3JhZGllbnQ+PC9kZWZzPjxyZWN0IHg9IjAiIHk9IjAiIHdpZHRoPSIxMDAlIiBoZWlnaHQ9IjEwMCUiIGZpbGw9InVybCgjZ3JhZCkiIC8+PC9zdmc+IA==');background-size:100%;background-image:-webkit-gradient(linear, 50% 0%, 50% 100%, color-stop(0%, #51b351),color-stop(100%, #4a944a));background-image:-moz-linear-gradient(top, #51b351,#4a944a);background-image:-webkit-linear-gradient(top, #51b351,#4a944a);background-image:linear-gradient(to bottom, #51b351,#4a944a)}.ribbon.ribbon-green:before,.ribbon.ribbon-green:after{border-top:3px solid #285028}.ribbon.ribbon-orange{background-color:#e28a0d;background-image:url('data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgiPz4gPHN2ZyB2ZXJzaW9uPSIxLjEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PGRlZnM+PGxpbmVhckdyYWRpZW50IGlkPSJncmFkIiBncmFkaWVudFVuaXRzPSJvYmplY3RCb3VuZGluZ0JveCIgeDE9IjAuNSIgeTE9IjAuMCIgeDI9IjAuNSIgeTI9IjEuMCI+PHN0b3Agb2Zmc2V0PSIwJSIgc3RvcC1jb2xvcj0iI2Q0ODEwYyIvPjxzdG9wIG9mZnNldD0iMTAwJSIgc3RvcC1jb2xvcj0iI2I0NmQwYiIvPjwvbGluZWFyR3JhZGllbnQ+PC9kZWZzPjxyZWN0IHg9IjAiIHk9IjAiIHdpZHRoPSIxMDAlIiBoZWlnaHQ9IjEwMCUiIGZpbGw9InVybCgjZ3JhZCkiIC8+PC9zdmc+IA==');background-size:100%;background-image:-webkit-gradient(linear, 50% 0%, 50% 100%, color-stop(0%, #d4810c),color-stop(100%, #b46d0b));background-image:-moz-linear-gradient(top, #d4810c,#b46d0b);background-image:-webkit-linear-gradient(top, #d4810c,#b46d0b);background-image:linear-gradient(to bottom, #d4810c,#b46d0b)}.ribbon.ribbon-orange:before,.ribbon.ribbon-orange:after{border-top:3px solid #6c4107}.ribbon.ribbon-red{background-color:#d9534f;background-image:url('data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgiPz4gPHN2ZyB2ZXJzaW9uPSIxLjEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PGRlZnM+PGxpbmVhckdyYWRpZW50IGlkPSJncmFkIiBncmFkaWVudFVuaXRzPSJvYmplY3RCb3VuZGluZ0JveCIgeDE9IjAuNSIgeTE9IjAuMCIgeDI9IjAuNSIgeTI9IjEuMCI+PHN0b3Agb2Zmc2V0PSIwJSIgc3RvcC1jb2xvcj0iI2M5MzAyYyIvPjxzdG9wIG9mZnNldD0iMTAwJSIgc3RvcC1jb2xvcj0iI2E4MjgyNCIvPjwvbGluZWFyR3JhZGllbnQ+PC9kZWZzPjxyZWN0IHg9IjAiIHk9IjAiIHdpZHRoPSIxMDAlIiBoZWlnaHQ9IjEwMCUiIGZpbGw9InVybCgjZ3JhZCkiIC8+PC9zdmc+IA==');background-size:100%;background-image:-webkit-gradient(linear, 50% 0%, 50% 100%, color-stop(0%, #c9302c),color-stop(100%, #a82824));background-image:-moz-linear-gradient(top, #c9302c,#a82824);background-image:-webkit-linear-gradient(top, #c9302c,#a82824);background-image:linear-gradient(to bottom, #c9302c,#a82824)}.ribbon.ribbon-red:before,.ribbon.ribbon-red:after{border-top:3px solid #541412}.ribbon.ribbon-blue{background-color:#428bca;background-image:url('data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgiPz4gPHN2ZyB2ZXJzaW9uPSIxLjEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PGRlZnM+PGxpbmVhckdyYWRpZW50IGlkPSJncmFkIiBncmFkaWVudFVuaXRzPSJvYmplY3RCb3VuZGluZ0JveCIgeDE9IjAuNSIgeTE9IjAuMCIgeDI9IjAuNSIgeTI9IjEuMCI+PHN0b3Agb2Zmc2V0PSIwJSIgc3RvcC1jb2xvcj0iIzM3ODRjNSIvPjxzdG9wIG9mZnNldD0iMTAwJSIgc3RvcC1jb2xvcj0iIzJkNWM4NSIvPjwvbGluZWFyR3JhZGllbnQ+PC9kZWZzPjxyZWN0IHg9IjAiIHk9IjAiIHdpZHRoPSIxMDAlIiBoZWlnaHQ9IjEwMCUiIGZpbGw9InVybCgjZ3JhZCkiIC8+PC9zdmc+IA==');background-size:100%;background-image:-webkit-gradient(linear, 50% 0%, 50% 100%, color-stop(0%, #3784c5),color-stop(100%, #2d5c85));background-image:-moz-linear-gradient(top, #3784c5,#2d5c85);background-image:-webkit-linear-gradient(top, #3784c5,#2d5c85);background-image:linear-gradient(to bottom, #3784c5,#2d5c85)}.ribbon.ribbon-blue:before,.ribbon.ribbon-blue:after{border-top:3px solid #1a344c}.ribbon:before{left:0}.ribbon:after{right:0}.pf-loading-bars-container{position:relative;z-index:4;margin:0 auto;left:5px;right:19px;width:70px;height:50px;list-style:none}.pf-loading-bars-container .pf-loading-bars-loader{position:absolute;z-index:3;margin:0 auto;left:0;right:0;top:50%;margin-top:-19px;width:56px;height:37px;list-style:none}.pf-loading-bars-container .pf-loading-bars-loader li{background-color:#5cb85c;width:6px;height:6px;float:right;margin-right:3px !important;-webkit-box-shadow:0px 12px 6px rgba(0,0,0,0.2);box-shadow:0px 12px 6px rgba(0,0,0,0.2)}.pf-loading-bars-container .pf-loading-bars-loader li:first-child{-webkit-animation:cssload-loadbars 1.75s cubic-bezier(0.645, 0.045, 0.355, 1) infinite 0s;animation:cssload-loadbars 1.75s cubic-bezier(0.645, 0.045, 0.355, 1) infinite 0s}.pf-loading-bars-container .pf-loading-bars-loader li:nth-child(2){-webkit-animation:cssload-loadbars 1.75s ease-in-out infinite -0.35s;animation:cssload-loadbars 1.75s ease-in-out infinite -0.35s}.pf-loading-bars-container .pf-loading-bars-loader li:nth-child(3){-webkit-animation:cssload-loadbars 1.75s ease-in-out infinite -0.7s;animation:cssload-loadbars 1.75s ease-in-out infinite -0.7s}.pf-loading-bars-container .pf-loading-bars-loader li:nth-child(4){-webkit-animation:cssload-loadbars 1.75s ease-in-out infinite -1.05s;animation:cssload-loadbars 1.75s ease-in-out infinite -1.05s}.pf-loading-bars-container .pf-loading-bars-loader li:nth-child(5){-webkit-animation:cssload-loadbars 1.75s ease-in-out infinite -1.4s;animation:cssload-loadbars 1.75s ease-in-out infinite -1.4s}.pf-loading-bars-container .pf-loading-bars-loader li:nth-child(6){-webkit-animation:cssload-loadbars 1.75s ease-in-out infinite -1.75s;animation:cssload-loadbars 1.75s ease-in-out infinite -1.75s}@-webkit-keyframes cssload-loadbars{0%{height:6px;margin-top:16px}33%{height:6px;margin-top:16px}66%{height:31px;margin-top:0px}100%{height:6px;margin-top:16px}}@-moz-keyframes cssload-loadbars{0%{height:6px;margin-top:16px}33%{height:6px;margin-top:16px}66%{height:31px;margin-top:0px}100%{height:6px;margin-top:16px}}@-ms-keyframes cssload-loadbars{0%{height:6px;margin-top:16px}33%{height:6px;margin-top:16px}66%{height:31px;margin-top:0px}100%{height:6px;margin-top:16px}}@keyframes cssload-loadbars{0%{height:6px;margin-top:16px}33%{height:6px;margin-top:16px}66%{height:31px;margin-top:0px}100%{height:6px;margin-top:16px}}.pf-landing-sticky-panel{position:fixed;min-width:65px;border-radius:5px;padding:8px 10px;box-shadow:0 4px 10px rgba(0,0,0,0.4);text-shadow:#000000b8 0 1px 1px;z-index:100;background-color:rgba(43,43,43,0.75)}.pf-landing-sticky-panel h4{margin:5px 0 10px 0}.pf-landing-sticky-panel ul{margin-bottom:0;margin-left:25px}.pf-landing-sticky-panel ul+h4{margin-top:10px}.pf-landing-sticky-panel--top{top:50px}.pf-landing-sticky-panel--bottom{bottom:10px}.pf-landing-sticky-panel--left{left:10px}.pf-landing-sticky-panel--right{right:10px}.panel-heading.note-toolbar{background-color:#313335}.panel-heading.note-toolbar .dropdown-toggle>i+span{margin-left:3px}.panel-heading.note-toolbar .dropdown-menu>.note-btn-group:first-child{margin-bottom:3px}.note-editor.note-frame{border:none;background-color:transparent;margin-bottom:0}.note-editor.note-frame .note-editing-area .note-editable{color:#63676a;background-color:transparent;will-change:height;border:1px solid transparent}.note-editor.note-frame .note-editing-area .note-editable.has-error{border-color:#d9534f}.note-editor.note-frame .note-statusbar{background-color:#313335;padding:1px 0;border-top:0}.note-editor.note-frame .note-statusbar .note-resizebar:hover .note-icon-bar{border-top:1px solid #e28a0d}.note-editor.note-frame .note-statusbar .note-resizebar .note-icon-bar{border-top:1px solid #63676a;-webkit-transition:border-top 0.15s ease-out;transition:border-top 0.15s ease-out}[ui-pnotify].ui-pnotify.stack-bar-bottom{width:70%}.youtube{background-position:center;background-repeat:no-repeat;position:relative;display:inline-block;overflow:hidden;transition:all 200ms ease-out;cursor:pointer}.youtube .play{background:url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAEAAAABACAYAAACqaXHeAAAERklEQVR4nOWbTWhcVRTHb1IJVoxGtNCNdal2JYJReC6GWuO83PM/59yUS3FRFARdFlwYP1CfiojQWt36sRCUurRIdVFXIn41lAoVdRGrG1M01YpKrWjiYmaSl8ybZJL3cd+YA//NLObd3++eO8x79z5jSq5Gw+8kov0AP8vMR5l1BtBZQM4B8ks75wCdZdYZZj5qLZ4hov2Nht9Z9vhKKSIaB/gI4M4w62KeAO6Mte4lYOq20FxrlqqOibhHmeWbvNC9ZfDX1mLae391aN6limO/gwgvAPJbWeAZuSDingdwXTBw7/0IsyaA/Fkh+KqOkD+YNfHej1QKD+y7iVlOhgLvFqFfNJvNGyuBJ+KDAF8MDd0tgS8y64OlgSdJMsysL4cG7SOHkyQZLhTee7+d2R2rAVy/S+Jd7/32ouBHAP4gNNRGQyTHc/84NhqNywZp5rvjjnnvt21aABFeCQ+RLwAf2hQ8s7sv9OCLk6AHNgQvIrvbfzKCD76g/O6cu7lf/iER/aQGgy448pExZmhdegAPhR9sObFWH1gT3lp7DaA/5bkIgJhZPgsNmz02novj+KqeApj1ubwXWe4kdyeznAgNvTpE/HQmvKqOMeuFogTUVQSRno+iaLRLAJF7uIgL9O4ubgL8aWgB7S44mNX+35YpICUiAvS9sBLkq1WzT+NFffl6AuoiApi6NT37h6sWkBIRZGkQ8YtLgyji6e1mBYTqCEBPG2Naz+0BWQgtoGoRgCzEsd9hAN1X5BfnFZASUfrSAFQNsyZ1FJASUVpHiLinDJG8U2cBZYogkrcNs5waBAGdstbeU9zdqpw0gPwwSAI6VUxHyFlDpOcHUUBBIuYNs14aZAE5RVwyzPr3/0EAEY0TyfGNjBWQvwZ +CTSbehfAH29mrID8bET0+0EUkAd8WYDOmqJ3ecsG30yr9wqRfm6Y+a1BEFDEjHfHvWmY9ck6CygHvBVr8Xhtb4ZE5HZA3y8DvBNA1TjnrmXWf+sioMwZX5V/VHXMGGMMoKdDCxCRvRWBdzKzdHEO+EisilbPyopHYqp6S9UCAsz4iojI7hUDAtyXVQgIDd6KnOoaWNkbI6FaPSuZGyMArsi7MZoloB4zviI/Nhr3X95jltwTRQmoIfgisy5ai+me67OI7fE4nrqjrqfK1t0eby0FPRB6oGVlchL3rgnfrq19RKbVBdhV9IOSwJmfmJi4vi/4ThERitwyCxVAFqydshuCX5awhQ9KtmuIWd8IDZED/nXT77rvVVv6sHRKwjYi91poqP7Dr+Y6JJ1VSZIMA3wkPNy6bX+o8Bcm0sXMdwM8Fxo0A3xORPaWBp6uPXsmbxCRD0NDL0dOANhVCXy6iAjMcjbcrMt3RITKwdMVRdFo+y5yvkL4eWZ+zHt/ZVD4dEVRNGotpst+dZZZH8k86lqn2pIvT/eqrNfn2xuyqYPZ8mv7s8pfn/8Pybm4TIjanscAAAAASUVORK5CYII=") no-repeat center center;background-size:64px 64px;position:absolute;height:100%;width:100%;opacity:.8;filter:alpha(opacity=80);transition:all 0.2s ease-out}.youtube .play:hover{opacity:1;filter:alpha(opacity=100)} + * ======================================================================== */.checkbox label .toggle,.editable-input .editable-checklist>div>label label .toggle,.editable-input .editable-checklist>div>label>span .toggle,.checkbox-inline .toggle{margin-left:-20px;margin-right:5px}.toggle{position:relative;overflow:hidden}.toggle input[type="checkbox"]{display:none}.toggle-group{position:absolute;width:200%;top:0;bottom:0;left:0;transition:left 0.18s ease-in-out;-webkit-transition:left 0.18s ease-in-out;-moz-user-select:none;-webkit-user-select:none}.toggle.off .toggle-group{left:-100%}.toggle-on{position:absolute;top:0;bottom:0;left:0;right:50%;margin:0;border:0;border-radius:0}.toggle-off{position:absolute;top:0;bottom:0;left:50%;right:0;margin:0;border:0;border-radius:0}.toggle-handle{position:relative;margin:0 auto;padding-top:0;padding-bottom:0;height:100%;width:0;border-width:0 1px;background:#54585a}.toggle.btn{min-width:59px;min-height:34px}.toggle-on.btn{padding-right:24px}.toggle-off.btn{padding-left:24px}.toggle.btn-lg,.btn-group-lg>.toggle.btn{min-width:79px;min-height:45px}.toggle-on.btn-lg,.btn-group-lg>.toggle-on.btn{padding-right:31px}.toggle-off.btn-lg,.btn-group-lg>.toggle-off.btn{padding-left:31px}.toggle-handle.btn-lg,.btn-group-lg>.toggle-handle.btn{width:40px}.toggle.btn-sm,.btn-group-sm>.toggle.btn{min-width:50px;min-height:28px}.toggle-on.btn-sm,.btn-group-sm>.toggle-on.btn{padding-right:10px;padding-left:0}.toggle-off.btn-sm,.btn-group-sm>.toggle-off.btn{padding-left:10px;padding-right:0}.toggle.btn-xs,.btn-group-xs>.toggle.btn{min-width:35px;min-height:22px}.toggle-on.btn-xs,.btn-group-xs>.toggle-on.btn{padding-right:5px}.toggle-off.btn-xs,.btn-group-xs>.toggle-off.btn{padding-left:5px}.checkbox,.editable-input .editable-checklist>div>label{padding-left:20px}.checkbox label,.editable-input .editable-checklist>div>label label,.editable-input .editable-checklist>div>label>span{display:inline-block;vertical-align:middle;position:relative;padding-left:5px}.checkbox label::before,.editable-input .editable-checklist>div>label label::before,.editable-input .editable-checklist>div>label>span::before{content:"";display:inline-block;position:absolute;width:17px;height:17px;left:0;margin-left:-20px;border:1px solid #63676a;border-radius:3px;background-color:#313335;-webkit-transition:border 0.18s ease,color 0.18s ease,background-color 0.18s ease;transition:border 0.18s ease,color 0.18s ease,background-color 0.18s ease}.checkbox label::after,.editable-input .editable-checklist>div>label label::after,.editable-input .editable-checklist>div>label>span::after{font-family:"Font Awesome 5 Free";content:"\f00c";font-weight:bold;display:inline-block;position:absolute;width:16px;height:16px;left:0;top:0;opacity:0;transform:scale(2) rotateZ(-20deg);transition:all .18s ease-out;will-change:transform, opacity;margin-left:-20px;padding-left:3px;padding-top:1px;font-size:calc(100% - 1px);color:#adadad}.checkbox input[type="checkbox"],.editable-input .editable-checklist>div>label input[type="checkbox"],.checkbox input[type="radio"],.editable-input .editable-checklist>div>label input[type="radio"]{opacity:0;z-index:1;cursor:pointer}.checkbox input[type="checkbox"]:checked+label::after,.editable-input .editable-checklist>div>label input[type="checkbox"]:checked+label::after,.editable-input .editable-checklist>div>label>input[type="checkbox"]:checked+span::after,.checkbox input[type="radio"]:checked+label::after,.editable-input .editable-checklist>div>label input[type="radio"]:checked+label::after,.editable-input .editable-checklist>div>label>input[type="radio"]:checked+span::after{font-family:"Font Awesome 5 Free";content:"\f00c"}.checkbox input[type="checkbox"]:checked+label::after,.editable-input .editable-checklist>div>label input[type="checkbox"]:checked+label::after,.editable-input .editable-checklist>div>label>input[type="checkbox"]:checked+span::after,.checkbox input[type="radio"]:checked+label::after,.editable-input .editable-checklist>div>label input[type="radio"]:checked+label::after,.editable-input .editable-checklist>div>label>input[type="radio"]:checked+span::after{transform:scale(1) rotateZ(0deg);opacity:1}.checkbox input[type="checkbox"]:indeterminate+label::after,.editable-input .editable-checklist>div>label input[type="checkbox"]:indeterminate+label::after,.editable-input .editable-checklist>div>label>input[type="checkbox"]:indeterminate+span::after,.checkbox input[type="radio"]:indeterminate+label::after,.editable-input .editable-checklist>div>label input[type="radio"]:indeterminate+label::after,.editable-input .editable-checklist>div>label>input[type="radio"]:indeterminate+span::after{display:block;content:"";width:10px;height:3px;background-color:#555555;border-radius:2px;margin-left:-16.5px;margin-top:7px}.checkbox input[type="checkbox"]:disabled+label,.editable-input .editable-checklist>div>label input[type="checkbox"]:disabled+label,.editable-input .editable-checklist>div>label>input[type="checkbox"]:disabled+span,.checkbox input[type="radio"]:disabled+label,.editable-input .editable-checklist>div>label input[type="radio"]:disabled+label,.editable-input .editable-checklist>div>label>input[type="radio"]:disabled+span{opacity:0.65}.checkbox input[type="checkbox"]:disabled+label::before,.editable-input .editable-checklist>div>label input[type="checkbox"]:disabled+label::before,.editable-input .editable-checklist>div>label>input[type="checkbox"]:disabled+span::before,.checkbox input[type="radio"]:disabled+label::before,.editable-input .editable-checklist>div>label input[type="radio"]:disabled+label::before,.editable-input .editable-checklist>div>label>input[type="radio"]:disabled+span::before{background-color:#3c3f41;cursor:not-allowed}.checkbox.checkbox-circle label::before,.editable-input .editable-checklist>div>label.checkbox-circle label::before,.checkbox.checkbox-circle .editable-input .editable-checklist>div>label>span::before,.editable-input .checkbox.checkbox-circle .editable-checklist>div>label>span::before,.editable-input .editable-checklist>div>label.checkbox-circle .editable-checklist>div>label>span::before{border-radius:50%}.checkbox.checkbox-inline,.editable-input .editable-checklist>div>label.checkbox-inline{margin-top:0}.checkbox-primary input[type="checkbox"]:checked+label::before,.checkbox-primary .editable-input .editable-checklist>div>label>input[type="checkbox"]:checked+span::before,.editable-input .checkbox-primary .editable-checklist>div>label>input[type="checkbox"]:checked+span::before,.checkbox-primary input[type="radio"]:checked+label::before,.checkbox-primary .editable-input .editable-checklist>div>label>input[type="radio"]:checked+span::before,.editable-input .checkbox-primary .editable-checklist>div>label>input[type="radio"]:checked+span::before{background-color:#375959;border-color:#375959}.checkbox-primary input[type="checkbox"]:checked+label::after,.checkbox-primary .editable-input .editable-checklist>div>label>input[type="checkbox"]:checked+span::after,.editable-input .checkbox-primary .editable-checklist>div>label>input[type="checkbox"]:checked+span::after,.checkbox-primary input[type="radio"]:checked+label::after,.checkbox-primary .editable-input .editable-checklist>div>label>input[type="radio"]:checked+span::after,.editable-input .checkbox-primary .editable-checklist>div>label>input[type="radio"]:checked+span::after{color:#fff}.checkbox-danger input[type="checkbox"]:checked+label::before,.checkbox-danger .editable-input .editable-checklist>div>label>input[type="checkbox"]:checked+span::before,.editable-input .checkbox-danger .editable-checklist>div>label>input[type="checkbox"]:checked+span::before,.checkbox-danger input[type="radio"]:checked+label::before,.checkbox-danger .editable-input .editable-checklist>div>label>input[type="radio"]:checked+span::before,.editable-input .checkbox-danger .editable-checklist>div>label>input[type="radio"]:checked+span::before{background-color:#a52521;border-color:#a52521}.checkbox-danger input[type="checkbox"]:checked+label::after,.checkbox-danger .editable-input .editable-checklist>div>label>input[type="checkbox"]:checked+span::after,.editable-input .checkbox-danger .editable-checklist>div>label>input[type="checkbox"]:checked+span::after,.checkbox-danger input[type="radio"]:checked+label::after,.checkbox-danger .editable-input .editable-checklist>div>label>input[type="radio"]:checked+span::after,.editable-input .checkbox-danger .editable-checklist>div>label>input[type="radio"]:checked+span::after{color:#fff}.checkbox-info input[type="checkbox"]:checked+label::before,.checkbox-info .editable-input .editable-checklist>div>label>input[type="checkbox"]:checked+span::before,.editable-input .checkbox-info .editable-checklist>div>label>input[type="checkbox"]:checked+span::before,.checkbox-info input[type="radio"]:checked+label::before,.checkbox-info .editable-input .editable-checklist>div>label>input[type="radio"]:checked+span::before,.editable-input .checkbox-info .editable-checklist>div>label>input[type="radio"]:checked+span::before{background-color:#316490;border-color:#316490}.checkbox-info input[type="checkbox"]:checked+label::after,.checkbox-info .editable-input .editable-checklist>div>label>input[type="checkbox"]:checked+span::after,.editable-input .checkbox-info .editable-checklist>div>label>input[type="checkbox"]:checked+span::after,.checkbox-info input[type="radio"]:checked+label::after,.checkbox-info .editable-input .editable-checklist>div>label>input[type="radio"]:checked+span::after,.editable-input .checkbox-info .editable-checklist>div>label>input[type="radio"]:checked+span::after{color:#fff}.checkbox-warning input[type="checkbox"]:checked+label::before,.checkbox-warning .editable-input .editable-checklist>div>label>input[type="checkbox"]:checked+span::before,.editable-input .checkbox-warning .editable-checklist>div>label>input[type="checkbox"]:checked+span::before,.checkbox-warning input[type="radio"]:checked+label::before,.checkbox-warning .editable-input .editable-checklist>div>label>input[type="radio"]:checked+span::before,.editable-input .checkbox-warning .editable-checklist>div>label>input[type="radio"]:checked+span::before{background-color:#e28a0d;border-color:#e28a0d}.checkbox-warning input[type="checkbox"]:checked+label::after,.checkbox-warning .editable-input .editable-checklist>div>label>input[type="checkbox"]:checked+span::after,.editable-input .checkbox-warning .editable-checklist>div>label>input[type="checkbox"]:checked+span::after,.checkbox-warning input[type="radio"]:checked+label::after,.checkbox-warning .editable-input .editable-checklist>div>label>input[type="radio"]:checked+span::after,.editable-input .checkbox-warning .editable-checklist>div>label>input[type="radio"]:checked+span::after{color:#fff}.checkbox-success input[type="checkbox"]:checked+label::before,.checkbox-success .editable-input .editable-checklist>div>label>input[type="checkbox"]:checked+span::before,.editable-input .checkbox-success .editable-checklist>div>label>input[type="checkbox"]:checked+span::before,.checkbox-success input[type="radio"]:checked+label::before,.checkbox-success .editable-input .editable-checklist>div>label>input[type="radio"]:checked+span::before,.editable-input .checkbox-success .editable-checklist>div>label>input[type="radio"]:checked+span::before{background-color:#4f9e4f;border-color:#4f9e4f}.checkbox-success input[type="checkbox"]:checked+label::after,.checkbox-success .editable-input .editable-checklist>div>label>input[type="checkbox"]:checked+span::after,.editable-input .checkbox-success .editable-checklist>div>label>input[type="checkbox"]:checked+span::after,.checkbox-success input[type="radio"]:checked+label::after,.checkbox-success .editable-input .editable-checklist>div>label>input[type="radio"]:checked+span::after,.editable-input .checkbox-success .editable-checklist>div>label>input[type="radio"]:checked+span::after{color:#fff}.checkbox-primary input[type="checkbox"]:indeterminate+label::before,.checkbox-primary .editable-input .editable-checklist>div>label>input[type="checkbox"]:indeterminate+span::before,.editable-input .checkbox-primary .editable-checklist>div>label>input[type="checkbox"]:indeterminate+span::before,.checkbox-primary input[type="radio"]:indeterminate+label::before,.checkbox-primary .editable-input .editable-checklist>div>label>input[type="radio"]:indeterminate+span::before,.editable-input .checkbox-primary .editable-checklist>div>label>input[type="radio"]:indeterminate+span::before{background-color:#375959;border-color:#375959}.checkbox-primary input[type="checkbox"]:indeterminate+label::after,.checkbox-primary .editable-input .editable-checklist>div>label>input[type="checkbox"]:indeterminate+span::after,.editable-input .checkbox-primary .editable-checklist>div>label>input[type="checkbox"]:indeterminate+span::after,.checkbox-primary input[type="radio"]:indeterminate+label::after,.checkbox-primary .editable-input .editable-checklist>div>label>input[type="radio"]:indeterminate+span::after,.editable-input .checkbox-primary .editable-checklist>div>label>input[type="radio"]:indeterminate+span::after{background-color:#fff}.checkbox-danger input[type="checkbox"]:indeterminate+label::before,.checkbox-danger .editable-input .editable-checklist>div>label>input[type="checkbox"]:indeterminate+span::before,.editable-input .checkbox-danger .editable-checklist>div>label>input[type="checkbox"]:indeterminate+span::before,.checkbox-danger input[type="radio"]:indeterminate+label::before,.checkbox-danger .editable-input .editable-checklist>div>label>input[type="radio"]:indeterminate+span::before,.editable-input .checkbox-danger .editable-checklist>div>label>input[type="radio"]:indeterminate+span::before{background-color:#a52521;border-color:#a52521}.checkbox-danger input[type="checkbox"]:indeterminate+label::after,.checkbox-danger .editable-input .editable-checklist>div>label>input[type="checkbox"]:indeterminate+span::after,.editable-input .checkbox-danger .editable-checklist>div>label>input[type="checkbox"]:indeterminate+span::after,.checkbox-danger input[type="radio"]:indeterminate+label::after,.checkbox-danger .editable-input .editable-checklist>div>label>input[type="radio"]:indeterminate+span::after,.editable-input .checkbox-danger .editable-checklist>div>label>input[type="radio"]:indeterminate+span::after{background-color:#fff}.checkbox-info input[type="checkbox"]:indeterminate+label::before,.checkbox-info .editable-input .editable-checklist>div>label>input[type="checkbox"]:indeterminate+span::before,.editable-input .checkbox-info .editable-checklist>div>label>input[type="checkbox"]:indeterminate+span::before,.checkbox-info input[type="radio"]:indeterminate+label::before,.checkbox-info .editable-input .editable-checklist>div>label>input[type="radio"]:indeterminate+span::before,.editable-input .checkbox-info .editable-checklist>div>label>input[type="radio"]:indeterminate+span::before{background-color:#316490;border-color:#316490}.checkbox-info input[type="checkbox"]:indeterminate+label::after,.checkbox-info .editable-input .editable-checklist>div>label>input[type="checkbox"]:indeterminate+span::after,.editable-input .checkbox-info .editable-checklist>div>label>input[type="checkbox"]:indeterminate+span::after,.checkbox-info input[type="radio"]:indeterminate+label::after,.checkbox-info .editable-input .editable-checklist>div>label>input[type="radio"]:indeterminate+span::after,.editable-input .checkbox-info .editable-checklist>div>label>input[type="radio"]:indeterminate+span::after{background-color:#fff}.checkbox-warning input[type="checkbox"]:indeterminate+label::before,.checkbox-warning .editable-input .editable-checklist>div>label>input[type="checkbox"]:indeterminate+span::before,.editable-input .checkbox-warning .editable-checklist>div>label>input[type="checkbox"]:indeterminate+span::before,.checkbox-warning input[type="radio"]:indeterminate+label::before,.checkbox-warning .editable-input .editable-checklist>div>label>input[type="radio"]:indeterminate+span::before,.editable-input .checkbox-warning .editable-checklist>div>label>input[type="radio"]:indeterminate+span::before{background-color:#e28a0d;border-color:#e28a0d}.checkbox-warning input[type="checkbox"]:indeterminate+label::after,.checkbox-warning .editable-input .editable-checklist>div>label>input[type="checkbox"]:indeterminate+span::after,.editable-input .checkbox-warning .editable-checklist>div>label>input[type="checkbox"]:indeterminate+span::after,.checkbox-warning input[type="radio"]:indeterminate+label::after,.checkbox-warning .editable-input .editable-checklist>div>label>input[type="radio"]:indeterminate+span::after,.editable-input .checkbox-warning .editable-checklist>div>label>input[type="radio"]:indeterminate+span::after{background-color:#fff}.checkbox-success input[type="checkbox"]:indeterminate+label::before,.checkbox-success .editable-input .editable-checklist>div>label>input[type="checkbox"]:indeterminate+span::before,.editable-input .checkbox-success .editable-checklist>div>label>input[type="checkbox"]:indeterminate+span::before,.checkbox-success input[type="radio"]:indeterminate+label::before,.checkbox-success .editable-input .editable-checklist>div>label>input[type="radio"]:indeterminate+span::before,.editable-input .checkbox-success .editable-checklist>div>label>input[type="radio"]:indeterminate+span::before{background-color:#4f9e4f;border-color:#4f9e4f}.checkbox-success input[type="checkbox"]:indeterminate+label::after,.checkbox-success .editable-input .editable-checklist>div>label>input[type="checkbox"]:indeterminate+span::after,.editable-input .checkbox-success .editable-checklist>div>label>input[type="checkbox"]:indeterminate+span::after,.checkbox-success input[type="radio"]:indeterminate+label::after,.checkbox-success .editable-input .editable-checklist>div>label>input[type="radio"]:indeterminate+span::after,.editable-input .checkbox-success .editable-checklist>div>label>input[type="radio"]:indeterminate+span::after{background-color:#fff}.radio{padding-left:20px}.radio label,.radio .editable-input .editable-checklist>div>label>span,.editable-input .radio .editable-checklist>div>label>span{display:inline-block;vertical-align:middle;position:relative;padding-left:5px}.radio label::before,.radio .editable-input .editable-checklist>div>label>span::before,.editable-input .radio .editable-checklist>div>label>span::before{content:"";display:inline-block;position:absolute;width:17px;height:17px;left:0;margin-left:-20px;border:1px solid #63676a;border-radius:50%;background-color:#313335;-webkit-transition:border 0.18s ease,color 0.18s ease;transition:border 0.18s ease,color 0.18s ease}.radio label::after,.radio .editable-input .editable-checklist>div>label>span::after,.editable-input .radio .editable-checklist>div>label>span::after{display:inline-block;position:absolute;content:" ";width:11px;height:11px;left:3px;top:3px;opacity:0;transform:scale(2) rotateZ(-20deg);transition:all .18s ease;will-change:transform, opacity;margin-left:-20px;border-radius:50%;background-color:#adadad;-webkit-transform:scale(0,0);-ms-transform:scale(0,0);transform:scale(0,0);-webkit-transition:-webkit-transform 0.18s cubic-bezier(0.8, -0.33, 0.2, 1.33);-moz-transition:-moz-transform 0.18s cubic-bezier(0.8, -0.33, 0.2, 1.33);-o-transition:-o-transform 0.18s cubic-bezier(0.8, -0.33, 0.2, 1.33);transition:transform 0.18s cubic-bezier(0.8, -0.33, 0.2, 1.33)}.radio input[type="radio"]{opacity:0;z-index:1;cursor:pointer}.radio input[type="radio"]:checked+label::after,.radio .editable-input .editable-checklist>div>label>input[type="radio"]:checked+span::after,.editable-input .radio .editable-checklist>div>label>input[type="radio"]:checked+span::after{-webkit-transform:scale(1,1);-ms-transform:scale(1,1);transform:scale(1,1);opacity:1}.radio input[type="radio"]:disabled+label,.radio .editable-input .editable-checklist>div>label>input[type="radio"]:disabled+span,.editable-input .radio .editable-checklist>div>label>input[type="radio"]:disabled+span{opacity:0.65}.radio input[type="radio"]:disabled+label::before,.radio .editable-input .editable-checklist>div>label>input[type="radio"]:disabled+span::before,.editable-input .radio .editable-checklist>div>label>input[type="radio"]:disabled+span::before{cursor:not-allowed}.radio.radio-inline{margin-top:0}.radio-primary input[type="radio"]+label::after,.radio-primary .editable-input .editable-checklist>div>label>input[type="radio"]+span::after,.editable-input .radio-primary .editable-checklist>div>label>input[type="radio"]+span::after{background-color:#375959}.radio-primary input[type="radio"]:checked+label::before,.radio-primary .editable-input .editable-checklist>div>label>input[type="radio"]:checked+span::before,.editable-input .radio-primary .editable-checklist>div>label>input[type="radio"]:checked+span::before{border-color:#375959}.radio-primary input[type="radio"]:checked+label::after,.radio-primary .editable-input .editable-checklist>div>label>input[type="radio"]:checked+span::after,.editable-input .radio-primary .editable-checklist>div>label>input[type="radio"]:checked+span::after{background-color:#375959}.radio-danger input[type="radio"]+label::after,.radio-danger .editable-input .editable-checklist>div>label>input[type="radio"]+span::after,.editable-input .radio-danger .editable-checklist>div>label>input[type="radio"]+span::after{background-color:#a52521}.radio-danger input[type="radio"]:checked+label::before,.radio-danger .editable-input .editable-checklist>div>label>input[type="radio"]:checked+span::before,.editable-input .radio-danger .editable-checklist>div>label>input[type="radio"]:checked+span::before{border-color:#a52521}.radio-danger input[type="radio"]:checked+label::after,.radio-danger .editable-input .editable-checklist>div>label>input[type="radio"]:checked+span::after,.editable-input .radio-danger .editable-checklist>div>label>input[type="radio"]:checked+span::after{background-color:#a52521}.radio-info input[type="radio"]+label::after,.radio-info .editable-input .editable-checklist>div>label>input[type="radio"]+span::after,.editable-input .radio-info .editable-checklist>div>label>input[type="radio"]+span::after{background-color:#316490}.radio-info input[type="radio"]:checked+label::before,.radio-info .editable-input .editable-checklist>div>label>input[type="radio"]:checked+span::before,.editable-input .radio-info .editable-checklist>div>label>input[type="radio"]:checked+span::before{border-color:#316490}.radio-info input[type="radio"]:checked+label::after,.radio-info .editable-input .editable-checklist>div>label>input[type="radio"]:checked+span::after,.editable-input .radio-info .editable-checklist>div>label>input[type="radio"]:checked+span::after{background-color:#316490}.radio-warning input[type="radio"]+label::after,.radio-warning .editable-input .editable-checklist>div>label>input[type="radio"]+span::after,.editable-input .radio-warning .editable-checklist>div>label>input[type="radio"]+span::after{background-color:#e28a0d}.radio-warning input[type="radio"]:checked+label::before,.radio-warning .editable-input .editable-checklist>div>label>input[type="radio"]:checked+span::before,.editable-input .radio-warning .editable-checklist>div>label>input[type="radio"]:checked+span::before{border-color:#e28a0d}.radio-warning input[type="radio"]:checked+label::after,.radio-warning .editable-input .editable-checklist>div>label>input[type="radio"]:checked+span::after,.editable-input .radio-warning .editable-checklist>div>label>input[type="radio"]:checked+span::after{background-color:#e28a0d}.radio-success input[type="radio"]+label::after,.radio-success .editable-input .editable-checklist>div>label>input[type="radio"]+span::after,.editable-input .radio-success .editable-checklist>div>label>input[type="radio"]+span::after{background-color:#4f9e4f}.radio-success input[type="radio"]:checked+label::before,.radio-success .editable-input .editable-checklist>div>label>input[type="radio"]:checked+span::before,.editable-input .radio-success .editable-checklist>div>label>input[type="radio"]:checked+span::before{border-color:#4f9e4f}.radio-success input[type="radio"]:checked+label::after,.radio-success .editable-input .editable-checklist>div>label>input[type="radio"]:checked+span::after,.editable-input .radio-success .editable-checklist>div>label>input[type="radio"]:checked+span::after{background-color:#4f9e4f}input[type="checkbox"].styled:checked+label:after,.editable-input .editable-checklist>div>label>input[type="checkbox"].styled:checked+span:after,input[type="radio"].styled:checked+label:after,.editable-input .editable-checklist>div>label>input[type="radio"].styled:checked+span:after{font-family:"Font Awesome 5 Free";content:"\f00c"}input[type="checkbox"] .styled:checked+label::before,input[type="checkbox"] .editable-input .editable-checklist>div>label>.styled:checked+span::before,.editable-input input[type="checkbox"] .editable-checklist>div>label>.styled:checked+span::before,input[type="radio"] .styled:checked+label::before,input[type="radio"] .editable-input .editable-checklist>div>label>.styled:checked+span::before,.editable-input input[type="radio"] .editable-checklist>div>label>.styled:checked+span::before{color:#fff}input[type="checkbox"] .styled:checked+label::after,input[type="checkbox"] .editable-input .editable-checklist>div>label>.styled:checked+span::after,.editable-input input[type="checkbox"] .editable-checklist>div>label>.styled:checked+span::after,input[type="radio"] .styled:checked+label::after,input[type="radio"] .editable-input .editable-checklist>div>label>.styled:checked+span::after,.editable-input input[type="radio"] .editable-checklist>div>label>.styled:checked+span::after{color:#fff}@font-face{font-family:"summernote";font-style:normal;font-weight:normal;src:url("../../fonts/summernote.eot?dbafe969167589eda84514394d126413");src:url("../../fonts/summernote.eot?#iefix") format("embedded-opentype"),url("../../fonts/summernote.woff?dbafe969167589eda84514394d126413") format("woff"),url("../../fonts/summernote.ttf?dbafe969167589eda84514394d126413") format("truetype")}[class^="note-icon-"]:before,[class*=" note-icon-"]:before{display:inline-block;font:normal normal normal 14px summernote;font-size:inherit;-webkit-font-smoothing:antialiased;text-decoration:inherit;text-rendering:auto;text-transform:none;vertical-align:middle;speak:none;-moz-osx-font-smoothing:grayscale}.note-icon-align-center:before,.note-icon-align-indent:before,.note-icon-align-justify:before,.note-icon-align-left:before,.note-icon-align-outdent:before,.note-icon-align-right:before,.note-icon-align:before,.note-icon-arrow-circle-down:before,.note-icon-arrow-circle-left:before,.note-icon-arrow-circle-right:before,.note-icon-arrow-circle-up:before,.note-icon-arrows-alt:before,.note-icon-arrows-h:before,.note-icon-arrows-v:before,.note-icon-bold:before,.note-icon-caret:before,.note-icon-chain-broken:before,.note-icon-circle:before,.note-icon-close:before,.note-icon-code:before,.note-icon-col-after:before,.note-icon-col-before:before,.note-icon-col-remove:before,.note-icon-eraser:before,.note-icon-font:before,.note-icon-frame:before,.note-icon-italic:before,.note-icon-link:before,.note-icon-magic:before,.note-icon-menu-check:before,.note-icon-minus:before,.note-icon-orderedlist:before,.note-icon-pencil:before,.note-icon-picture:before,.note-icon-question:before,.note-icon-redo:before,.note-icon-row-above:before,.note-icon-row-below:before,.note-icon-row-remove:before,.note-icon-special-character:before,.note-icon-square:before,.note-icon-strikethrough:before,.note-icon-subscript:before,.note-icon-summernote:before,.note-icon-superscript:before,.note-icon-table:before,.note-icon-text-height:before,.note-icon-trash:before,.note-icon-underline:before,.note-icon-undo:before,.note-icon-unorderedlist:before,.note-icon-video:before{display:inline-block;font-family:"summernote";font-style:normal;font-weight:normal;text-decoration:inherit}.note-icon-align-center:before{content:""}.note-icon-align-indent:before{content:""}.note-icon-align-justify:before{content:""}.note-icon-align-left:before{content:""}.note-icon-align-outdent:before{content:""}.note-icon-align-right:before{content:""}.note-icon-align:before{content:""}.note-icon-arrow-circle-down:before{content:""}.note-icon-arrow-circle-left:before{content:""}.note-icon-arrow-circle-right:before{content:""}.note-icon-arrow-circle-up:before{content:""}.note-icon-arrows-alt:before{content:""}.note-icon-arrows-h:before{content:""}.note-icon-arrows-v:before{content:""}.note-icon-bold:before{content:""}.note-icon-caret:before{content:""}.note-icon-chain-broken:before{content:""}.note-icon-circle:before{content:""}.note-icon-close:before{content:""}.note-icon-code:before{content:""}.note-icon-col-after:before{content:""}.note-icon-col-before:before{content:""}.note-icon-col-remove:before{content:""}.note-icon-eraser:before{content:""}.note-icon-font:before{content:""}.note-icon-frame:before{content:""}.note-icon-italic:before{content:""}.note-icon-link:before{content:""}.note-icon-magic:before{content:""}.note-icon-menu-check:before{content:""}.note-icon-minus:before{content:""}.note-icon-orderedlist:before{content:""}.note-icon-pencil:before{content:""}.note-icon-picture:before{content:""}.note-icon-question:before{content:""}.note-icon-redo:before{content:""}.note-icon-row-above:before{content:""}.note-icon-row-below:before{content:""}.note-icon-row-remove:before{content:""}.note-icon-special-character:before{content:""}.note-icon-square:before{content:""}.note-icon-strikethrough:before{content:""}.note-icon-subscript:before{content:""}.note-icon-summernote:before{content:""}.note-icon-superscript:before{content:""}.note-icon-table:before{content:""}.note-icon-text-height:before{content:""}.note-icon-trash:before{content:""}.note-icon-underline:before{content:""}.note-icon-undo:before{content:""}.note-icon-unorderedlist:before{content:""}.note-icon-video:before{content:""}.note-editor{position:relative}.note-editor .note-dropzone{position:absolute;z-index:100;display:none;color:#87cefa;background-color:#fff;opacity:0.95}.note-editor .note-dropzone .note-dropzone-message{display:table-cell;font-size:28px;font-weight:700;text-align:center;vertical-align:middle}.note-editor .note-dropzone.hover{color:#098ddf}.note-editor.dragover .note-dropzone{display:table}.note-editor .note-editing-area{position:relative}.note-editor .note-editing-area .note-editable{outline:0}.note-editor .note-editing-area .note-editable sup{vertical-align:super}.note-editor .note-editing-area .note-editable sub{vertical-align:sub}.note-editor .note-editing-area img.note-float-left{margin-right:10px}.note-editor .note-editing-area img.note-float-right{margin-left:10px}.note-editor.note-frame{border:1px solid #a9a9a9}.note-editor.note-frame.codeview .note-editing-area .note-editable{display:none}.note-editor.note-frame.codeview .note-editing-area .note-codable{display:block}.note-editor.note-frame .note-editing-area{overflow:hidden}.note-editor.note-frame .note-editing-area .note-editable{padding:10px;overflow:auto;color:#000;word-wrap:break-word;background-color:#fff}.note-editor.note-frame .note-editing-area .note-editable[contenteditable="false"]{background-color:#e5e5e5}.note-editor.note-frame .note-editing-area .note-codable{display:none;width:100%;padding:10px;margin-bottom:0;font-family:Menlo, Monaco, monospace, sans-serif;font-size:14px;color:#ccc;background-color:#222;border:0;-webkit-border-radius:0;-moz-border-radius:0;border-radius:0;box-shadow:none;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;-ms-box-sizing:border-box;box-sizing:border-box;resize:none}.note-editor.note-frame.fullscreen{position:fixed;top:0;left:0;z-index:1050;width:100% !important}.note-editor.note-frame.fullscreen .note-editable{background-color:#fff}.note-editor.note-frame.fullscreen .note-resizebar{display:none}.note-editor.note-frame .note-status-output{display:block;width:100%;height:20px;margin-bottom:0;font-size:14px;line-height:1.42857143;color:#000;border:0;border-top:1px solid #e2e2e2}.note-editor.note-frame .note-status-output:empty{height:0;border-top:0 solid transparent;padding-top:0}.note-editor.note-frame .note-statusbar{background-color:#f5f5f5;border-top:1px solid #ddd;border-bottom-right-radius:4px;border-bottom-left-radius:4px}.note-editor.note-frame .note-statusbar .note-resizebar{width:100%;height:9px;padding-top:1px;cursor:ns-resize}.note-editor.note-frame .note-statusbar .note-resizebar .note-icon-bar{width:20px;margin:1px auto;border-top:1px solid #a9a9a9}.note-editor.note-frame .note-statusbar.locked .note-resizebar{cursor:default}.note-editor.note-frame .note-statusbar.locked .note-resizebar .note-icon-bar{display:none}.note-editor.note-frame .note-placeholder{padding:10px}.note-popover.popover{max-width:none}.note-popover.popover .popover-content a{display:inline-block;max-width:200px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;vertical-align:middle;margin-top:5px}.note-popover.popover .arrow{left:20px !important}.note-toolbar{position:relative;z-index:500}.note-popover .popover-content,.panel-heading.note-toolbar{padding:0 0 5px 5px;margin:0}.note-popover .popover-content>.btn-group,.panel-heading.note-toolbar>.btn-group{margin-top:5px;margin-right:5px;margin-left:0}.note-popover .popover-content .btn-group .note-table,.panel-heading.note-toolbar .btn-group .note-table{min-width:0;padding:5px}.note-popover .popover-content .btn-group .note-table .note-dimension-picker,.panel-heading.note-toolbar .btn-group .note-table .note-dimension-picker{font-size:18px}.note-popover .popover-content .btn-group .note-table .note-dimension-picker .note-dimension-picker-mousecatcher,.panel-heading.note-toolbar .btn-group .note-table .note-dimension-picker .note-dimension-picker-mousecatcher{position:absolute !important;z-index:3;width:10em;height:10em;cursor:pointer}.note-popover .popover-content .btn-group .note-table .note-dimension-picker .note-dimension-picker-unhighlighted,.panel-heading.note-toolbar .btn-group .note-table .note-dimension-picker .note-dimension-picker-unhighlighted{position:relative !important;z-index:1;width:5em;height:5em;opacity:0.75;background:url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABIAAAASAgMAAAAroGbEAAAACVBMVEUAAIj4+Pjp6ekKlAqjAAAAAXRSTlMAQObYZgAAAAFiS0dEAIgFHUgAAAAJcEhZcwAACxMAAAsTAQCanBgAAAAHdElNRQfYAR0BKhmnaJzPAAAAG0lEQVQI12NgAAOtVatWMTCohoaGUY+EmIkEAEruEzK2J7tvAAAAAElFTkSuQmCC") repeat}.note-popover .popover-content .btn-group .note-table .note-dimension-picker .note-dimension-picker-highlighted,.panel-heading.note-toolbar .btn-group .note-table .note-dimension-picker .note-dimension-picker-highlighted{position:absolute !important;z-index:2;width:1em;height:1em;background:url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABIAAAASAgMAAAAroGbEAAAACVBMVEUAAIjd6vvD2f9LKLW+AAAAAXRSTlMAQObYZgAAAAFiS0dEAIgFHUgAAAAJcEhZcwAACxMAAAsTAQCanBgAAAAHdElNRQfYAR0BKwNDEVT0AAAAG0lEQVQI12NgAAOtVatWMTCohoaGUY+EmIkEAEruEzK2J7tvAAAAAElFTkSuQmCC") repeat}.note-popover .popover-content .note-style .dropdown-style blockquote,.panel-heading.note-toolbar .note-style .dropdown-style blockquote,.note-popover .popover-content .note-style .dropdown-style pre,.panel-heading.note-toolbar .note-style .dropdown-style pre{padding:5px 10px;margin:0}.note-popover .popover-content .note-style .dropdown-style h1,.panel-heading.note-toolbar .note-style .dropdown-style h1,.note-popover .popover-content .note-style .dropdown-style h2,.panel-heading.note-toolbar .note-style .dropdown-style h2,.note-popover .popover-content .note-style .dropdown-style h3,.panel-heading.note-toolbar .note-style .dropdown-style h3,.note-popover .popover-content .note-style .dropdown-style h4,.panel-heading.note-toolbar .note-style .dropdown-style h4,.note-popover .popover-content .note-style .dropdown-style h5,.panel-heading.note-toolbar .note-style .dropdown-style h5,.note-popover .popover-content .note-style .dropdown-style h6,.panel-heading.note-toolbar .note-style .dropdown-style h6,.note-popover .popover-content .note-style .dropdown-style p,.panel-heading.note-toolbar .note-style .dropdown-style p{padding:0;margin:0}.note-popover .popover-content .note-color .dropdown-toggle,.panel-heading.note-toolbar .note-color .dropdown-toggle{width:20px;padding-left:5px}.note-popover .popover-content .note-color .dropdown-menu,.panel-heading.note-toolbar .note-color .dropdown-menu{min-width:337px}.note-popover .popover-content .note-color .dropdown-menu .note-palette,.panel-heading.note-toolbar .note-color .dropdown-menu .note-palette{display:inline-block;width:160px;margin:0}.note-popover .popover-content .note-color .dropdown-menu .note-palette:first-child,.panel-heading.note-toolbar .note-color .dropdown-menu .note-palette:first-child{margin:0 5px}.note-popover .popover-content .note-color .dropdown-menu .note-palette .note-palette-title,.panel-heading.note-toolbar .note-color .dropdown-menu .note-palette .note-palette-title{margin:2px 7px;font-size:12px;text-align:center;border-bottom:1px solid #63676a}.note-popover .popover-content .note-color .dropdown-menu .note-palette .note-color-reset,.panel-heading.note-toolbar .note-color .dropdown-menu .note-palette .note-color-reset{width:100%;padding:0 3px;margin:3px;font-size:11px;cursor:pointer;-webkit-border-radius:5px;-moz-border-radius:5px;border-radius:5px}.note-popover .popover-content .note-color .dropdown-menu .note-palette .note-color-row,.panel-heading.note-toolbar .note-color .dropdown-menu .note-palette .note-color-row{height:20px}.note-popover .popover-content .note-color .dropdown-menu .note-palette .note-color-reset:hover,.panel-heading.note-toolbar .note-color .dropdown-menu .note-palette .note-color-reset:hover{background:#eee}.note-popover .popover-content .note-para .dropdown-menu,.panel-heading.note-toolbar .note-para .dropdown-menu{min-width:216px;padding:5px}.note-popover .popover-content .note-para .dropdown-menu>div:first-child,.panel-heading.note-toolbar .note-para .dropdown-menu>div:first-child{margin-right:5px}.note-popover .popover-content .dropdown-menu,.panel-heading.note-toolbar .dropdown-menu{min-width:90px}.note-popover .popover-content .dropdown-menu:not(.dropdown-style),.panel-heading.note-toolbar .dropdown-menu:not(.dropdown-style){color:#adadad;background-color:#3c3f41}.note-popover .popover-content .dropdown-menu.right,.panel-heading.note-toolbar .dropdown-menu.right{right:0;left:auto}.note-popover .popover-content .dropdown-menu.right::before,.panel-heading.note-toolbar .dropdown-menu.right::before{right:9px;left:auto !important}.note-popover .popover-content .dropdown-menu.right::after,.panel-heading.note-toolbar .dropdown-menu.right::after{right:10px;left:auto !important}.note-popover .popover-content .dropdown-menu.note-check li a i,.panel-heading.note-toolbar .dropdown-menu.note-check li a i{color:deepskyblue;visibility:hidden}.note-popover .popover-content .dropdown-menu.note-check li a.checked i,.panel-heading.note-toolbar .dropdown-menu.note-check li a.checked i{visibility:visible}.note-popover .popover-content .note-fontsize-10,.panel-heading.note-toolbar .note-fontsize-10{font-size:10px}.note-popover .popover-content .note-color-palette,.panel-heading.note-toolbar .note-color-palette{line-height:1}.note-popover .popover-content .note-color-palette div .note-color-btn,.panel-heading.note-toolbar .note-color-palette div .note-color-btn{width:20px;height:20px;padding:0;margin:0;border:1px solid #63676a;cursor:pointer}.note-popover .popover-content .note-color-palette div .note-color-btn:hover,.panel-heading.note-toolbar .note-color-palette div .note-color-btn:hover{border:1px solid #3c3f41}.note-dialog>div{display:none}.note-dialog .form-group{margin-right:0;margin-left:0}.note-dialog .note-modal-form{margin:0}.note-dialog .note-image-dialog .note-dropzone{min-height:100px;margin-bottom:10px;font-size:30px;line-height:4;color:lightgray;text-align:center;border:4px dashed #d3d3d3}@-moz-document url-prefix(){.note-image-input{height:auto}}.note-placeholder{position:absolute;display:none;color:gray}.note-handle .note-control-selection{position:absolute;display:none;border:1px solid #000}.note-handle .note-control-selection>div{position:absolute}.note-handle .note-control-selection .note-control-selection-bg{width:100%;height:100%;background-color:#000;-webkit-opacity:.3;-khtml-opacity:.3;-moz-opacity:.3;opacity:.3;-ms-filter:alpha(opacity=30);filter:alpha(opacity=30)}.note-handle .note-control-selection .note-control-handle{width:7px;height:7px;border:1px solid #000}.note-handle .note-control-selection .note-control-holder{width:7px;height:7px;border:1px solid #000}.note-handle .note-control-selection .note-control-sizing{width:7px;height:7px;background-color:#fff;border:1px solid #000}.note-handle .note-control-selection .note-control-nw{top:-5px;left:-5px;border-right:0;border-bottom:0}.note-handle .note-control-selection .note-control-ne{top:-5px;right:-5px;border-bottom:0;border-left:none}.note-handle .note-control-selection .note-control-sw{bottom:-5px;left:-5px;border-top:0;border-right:0}.note-handle .note-control-selection .note-control-se{right:-5px;bottom:-5px;cursor:se-resize}.note-handle .note-control-selection .note-control-se.note-control-holder{cursor:default;border-top:0;border-left:none}.note-handle .note-control-selection .note-control-selection-info{right:0;bottom:0;padding:5px;margin:5px;font-size:12px;color:#fff;background-color:#000;-webkit-border-radius:5px;-moz-border-radius:5px;border-radius:5px;-webkit-opacity:.7;-khtml-opacity:.7;-moz-opacity:.7;opacity:.7;-ms-filter:alpha(opacity=70);filter:alpha(opacity=70)}.note-hint-popover{min-width:100px;padding:2px}.note-hint-popover .popover-content{max-height:150px;padding:3px;overflow:auto}.note-hint-popover .popover-content .note-hint-group .note-hint-item{display:block !important;padding:3px}.note-hint-popover .popover-content .note-hint-group .note-hint-item.active,.note-hint-popover .popover-content .note-hint-group .note-hint-item:hover{display:block;clear:both;font-weight:400;line-height:1.4;color:#fff;text-decoration:none;white-space:nowrap;cursor:pointer;background-color:#428bca;outline:0}html{margin:0;padding:0;height:100%;position:relative}body{margin:0;padding:0;min-height:100%;direction:ltr}body.mobile-view-activated.hidden-menu{overflow-x:hidden}body.modal-open{overflow:hidden !important}a:hover,a:active,a:focus,button,button:active,button:focus,object,embed,input::-moz-focus-inner{outline:0}h1,h3,h4{margin:0;font-family:"Oxygen Bold","Helvetica Neue",Helvetica,Arial,sans-serif}.page-title{margin:12px 0 28px}.page-title span{font-size:15px;color:#313335;display:inline-block;vertical-align:1px}label,.editable-input .editable-checklist>div>label>span{font-weight:normal}*:not(td):focus{outline:0 !important}a,input,button{-ms-touch-action:none !important}textarea:focus,select:focus,input[type="text"]:focus,input[type="password"]:focus,input[type="datetime"]:focus,input[type="datetime-local"]:focus,input[type="date"]:focus,input[type="month"]:focus,input[type="time"]:focus,input[type="week"]:focus,input[type="number"]:focus,input[type="email"]:focus,input[type="url"]:focus,input[type="search"]:focus,input[type="tel"]:focus,input[type="color"]:focus,.uneditable-input:focus{outline:0;outline:thin dotted \9;box-shadow:inset -1px 1px 5px 0 rgba(0,0,0,0.8) !important}.input-sm,.input-group-sm>.form-control,.input-group-sm>.input-group-addon,.input-group-sm>.input-group-btn>.btn,.input-lg,.input-group-lg>.form-control,.input-group-lg>.input-group-addon,.input-group-lg>.input-group-btn>.btn,.input-xs,.form-control{border-radius:0px !important;-webkit-border-radius:0px !important;-moz-border-radius:0px !important}.input-xs{height:24px;padding:2px 10px;font-size:11px;line-height:1.5}.btn-xs,.btn-group-xs>.btn{padding:0px 2px;font-size:10px;line-height:1.3}.btn-sm,.btn-group-sm>.btn{padding:5px 8px 4px}.btn-lg,.btn-group-lg>.btn{padding:10px 16px}.no-space{margin:0}.no-space>[class*="col-"]{margin:0 !important;padding-right:0;padding-left:0}.h1,.h2,.h3,.h4,.h5,.h6{display:inline-block}h1,.h1{letter-spacing:-1px;font-size:22px;margin:10px 0}h1 small,h1 .small,.h1 small,.h1 .small{font-size:12px;font-weight:300;letter-spacing:-1px}h2,.h2{font-size:20px;margin:20px 0;line-height:normal}h3,.h3{display:block;font-size:17px;font-weight:400;margin:20px 0;line-height:normal}h4,.h4{line-height:normal;margin:20px 0 10px 0}h5,.h5{font-size:14px;font-weight:300;margin-top:0;margin-bottom:10px;line-height:normal}h6,.h6{font-size:13px;margin:10px 0;font-weight:bold;line-height:normal}.row-seperator-header{margin:15px 14px 20px;border-bottom:none;display:block;color:#303133;font-size:20px;font-weight:400}.center-canvas,.center-child-canvas>canvas{display:block !important;margin:0 auto !important}.form-control{box-shadow:none !important;-webkit-box-shadow:none !important;-moz-box-shadow:none !important}.form hr{margin-left:-13px;margin-right:-13px;border-color:rgba(0,0,0,0.1);margin-top:20px;margin-bottom:20px}.form fieldset{display:block;border:none;background:rgba(255,255,255,0.9);position:relative}fieldset{position:relative}.popover-content .form-actions{margin:0 -14px -9px;border-radius:0 0 3px 3px;padding:9px 14px}.no-padding .form .form-actions{margin:0;display:block;padding:13px 14px 15px;border-top:1px solid rgba(0,0,0,0.1);background:rgba(248,248,248,0.9);text-align:right;margin-top:25px}.form header,legend{display:block;padding:8px 0;border-bottom:1px dashed rgba(0,0,0,0.2);background:#fff;font-size:16px;font-weight:300;color:#2b2b2b;margin:25px 0px 20px}.no-padding .form header{margin:25px 14px 0}.form header:first-child{margin-top:10px}legend{font-weight:400;margin-top:0px;background:none}.input-group-addon{padding:6px 10px;will-change:background-color, border-color;-moz-border-radius:0;-webkit-border-radius:0;border-radius:0;-webkit-transition:all ease-out 0.15s;transition:all ease-out 0.15s}.input-group-addon .fa{font-size:14px}.input-group-addon .fa-lg,.input-group-addon .fa-tree-child,.input-group-addon .fa-2x{font-size:2em}.input-group-addon .fa-3x,.input-group-addon .fa-4x,.input-group-addon .fa-5x{font-size:30px}input[type="text"]:focus+.input-group-addon,input[type="password"]:focus+.input-group-addon,input[type="email"]:focus+.input-group-addon{border-color:#568a89;color:#568a89}.has-warning input[type="text"],.has-warning input[type="text"]+.input-group-addon{border-color:#e28a0d}.has-warning input[type="text"]+.input-group-addon{background-color:#fbe3c0;color:#2b2b2b}.has-warning input[type="text"]:focus,.has-warning input[type="text"]:focus+.input-group-addon{border-color:#e28a0d}.has-warning input[type="text"]:focus+.input-group-addon{background-color:#e28a0d;color:#fff}.has-error .input-group-addon{border-color:#d9534f !important;background:#d9534f !important;color:#2b2b2b !important}.has-success .input-group-addon{border-color:#4f9e4f !important;background-color:#2b2b2b !important;color:#4f9e4f !important}.form fieldset .form-group:last-child,.form fieldset .form-group:last-child .note,.form .form-group:last-child,.form .form-group:last-child .note{margin-bottom:0}.note{margin-top:6px;padding:0 1px;font-size:11px;line-height:15px;color:#7c8184}.input-icon-right{position:relative}.input-icon-right>i,.input-icon-left>i{position:absolute;right:10px;top:10px;font-size:12px;color:#63676a}.input-icon-left>i{right:auto;left:24px}.input-icon-right .form-control{padding-right:27px}.input-icon-left .form-control{padding-left:29px}input[type="text"].ui-autocomplete-loading,input[type="password"].ui-autocomplete-loading,input[type="datetime"].ui-autocomplete-loading,input[type="datetime-local"].ui-autocomplete-loading,input[type="date"].ui-autocomplete-loading,input[type="month"].ui-autocomplete-loading,input[type="time"].ui-autocomplete-loading,input[type="week"].ui-autocomplete-loading,input[type="number"].ui-autocomplete-loading,input[type="email"].ui-autocomplete-loading,input[type="url"].ui-autocomplete-loading,input[type="search"].ui-autocomplete-loading,input[type="tel"].ui-autocomplete-loading,input[type="color"].ui-autocomplete-loading{background-image:url("../../img/select2-spinner.gif") !important;background-repeat:no-repeat;background-position:99% 50%;padding-right:27px}.input-group-addon .checkbox,.input-group-addon .editable-input .editable-checklist>div>label,.editable-input .input-group-addon .editable-checklist>div>label,.input-group-addon .radio{min-height:0px;margin-right:0px !important;padding-top:0}.input-group-addon label input[type="checkbox"].checkbox+span,.input-group-addon .editable-input .editable-checklist>div>label>span input[type="checkbox"].checkbox+span,.editable-input .input-group-addon .editable-checklist>div>label>span input[type="checkbox"].checkbox+span,.input-group-addon label input[type="radio"].radiobox+span,.input-group-addon .editable-input .editable-checklist>div>label>span input[type="radio"].radiobox+span,.editable-input .input-group-addon .editable-checklist>div>label>span input[type="radio"].radiobox+span,.input-group-addon label input[type="radio"].radiobox+span:before,.input-group-addon .editable-input .editable-checklist>div>label>span input[type="radio"].radiobox+span:before,.editable-input .input-group-addon .editable-checklist>div>label>span input[type="radio"].radiobox+span:before,.input-group-addon label input[type="checkbox"].checkbox+span:before,.input-group-addon .editable-input .editable-checklist>div>label>span input[type="checkbox"].checkbox+span:before,.editable-input .input-group-addon .editable-checklist>div>label>span input[type="checkbox"].checkbox+span:before{margin-right:0px}.alert{margin-bottom:10px;margin-top:0px;padding:5px 15px 5px 34px;color:#675100;border-width:0px;border-left-width:3px;padding:10px}.alert .ui-pnotify-title{line-height:12px}.alert .ui-pnotify-text{font-size:10px}.alert .close{top:0px;right:-5px;line-height:18px}.alert-heading{font-weight:600}.alert-danger{border-color:#a52521;color:#2b2b2b;background:#f6d1d0;text-shadow:none}.alert-danger .ui-pnotify-icon{color:#a52521}.alert-warning{border-color:#e28a0d;color:#2b2b2b;background:#fdedd8}.alert-warning .ui-pnotify-icon{color:#e28a0d}.alert-success{border-color:#4f9e4f;color:#2b2b2b;background:#d1e8d1}.alert-success .ui-pnotify-icon{color:#4f9e4f}.alert-info{border-color:#316490;color:#2b2b2b;background:#abc9e2}.alert-info .ui-pnotify-icon{color:#316490}.progress-micro{height:2px !important;line-height:2px !important}.progress-xs{height:7px !important;line-height:7px !important}.progress-sm{height:14px !important;line-height:14px !important}.progress-lg{height:30px !important;line-height:30px !important}.progress .progress-bar{position:absolute;overflow:hidden;line-height:18px}.progress .progressbar-back-text{position:absolute;width:100%;height:100%;font-size:12px;line-height:20px;text-align:center}.progress .progressbar-front-text{display:block;width:100%;font-size:12px;line-height:20px;text-align:center}.progress.right .progress-bar{right:0}.progress.right .progressbar-front-text{position:absolute;right:0}.progress.vertical{width:25px;height:100%;min-height:150px;margin-right:20px;display:inline-block;margin-bottom:0px}.progress.wide-bar{width:40px}.progress.vertical.bottom{position:relative}.progress.vertical.bottom .progressbar-front-text{position:absolute;bottom:0}.progress.vertical .progress-bar{width:100%;height:0;-webkit-transition:height 0.6s ease;transition:height 0.6s ease}.progress.vertical.bottom .progress-bar{position:absolute;bottom:0}@-webkit-keyframes progress-bar-stripes{from{background-position:40px 0}to{background-position:0 0}}@-moz-keyframes progress-bar-stripes{from{background-position:40px 0}to{background-position:0 0}}@-o-keyframes progress-bar-stripes{from{background-position:0 0}to{background-position:40px 0}}@keyframes progress-bar-stripes{from{background-position:40px 0}to{background-position:0 0}}.progress{position:relative;margin-bottom:20px;overflow:hidden;height:18px;background:#63676a;-webkit-box-shadow:0 1px 0 transparent,0 0 0 1px #63676a inset;box-shadow:0 1px 0 transparent,0 0 0 1px #63676a inset;-moz-border-radius:0px;-webkit-border-radius:0px;border-radius:0px}.progress-bar{float:left;width:0;height:100%;font-size:11px;color:#fff;text-align:center;background-color:#428bca;font-weight:bold;-webkit-transition:width 1s ease-in-out,background-color 1s ease-in-out;transition:width 1s ease-in-out,background-color 1s ease-in-out}.progress-striped .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));background-image:-webkit-linear-gradient(45deg, rgba(255,255,255,0.15) 25%, transparent 25%, transparent 50%, rgba(255,255,255,0.15) 50%, rgba(255,255,255,0.15) 75%, transparent 75%, transparent);background-image:-moz-linear-gradient(45deg, rgba(255,255,255,0.15) 25%, transparent 25%, transparent 50%, rgba(255,255,255,0.15) 50%, rgba(255,255,255,0.15) 75%, transparent 75%, transparent);background-image:linear-gradient(45deg, rgba(255,255,255,0.15) 25%,rgba(0,0,0,0) 25%,rgba(0,0,0,0) 50%,rgba(255,255,255,0.15) 50%,rgba(255,255,255,0.15) 75%,rgba(0,0,0,0) 75%,rgba(0,0,0,0));background-size:40px 40px}.progress.active .progress-bar{-webkit-animation:progress-bar-stripes 2s linear infinite;-moz-animation:progress-bar-stripes 2s linear infinite;-ms-animation:progress-bar-stripes 2s linear infinite;-o-animation:progress-bar-stripes 2s linear infinite;animation:progress-bar-stripes 2s linear infinite}.progress-bar-danger{background-color:#a52521}.progress-striped .progress-bar-danger{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));background-image:-webkit-linear-gradient(45deg, rgba(255,255,255,0.15) 25%, transparent 25%, transparent 50%, rgba(255,255,255,0.15) 50%, rgba(255,255,255,0.15) 75%, transparent 75%, transparent);background-image:-moz-linear-gradient(45deg, rgba(255,255,255,0.15) 25%, transparent 25%, transparent 50%, rgba(255,255,255,0.15) 50%, rgba(255,255,255,0.15) 75%, transparent 75%, transparent);background-image:linear-gradient(45deg, rgba(255,255,255,0.15) 25%,rgba(0,0,0,0) 25%,rgba(0,0,0,0) 50%,rgba(255,255,255,0.15) 50%,rgba(255,255,255,0.15) 75%,rgba(0,0,0,0) 75%,rgba(0,0,0,0))}.progress-bar-success{background-color:#4f9e4f}.progress-striped .progress-bar-success{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));background-image:-webkit-linear-gradient(45deg, rgba(255,255,255,0.15) 25%, transparent 25%, transparent 50%, rgba(255,255,255,0.15) 50%, rgba(255,255,255,0.15) 75%, transparent 75%, transparent);background-image:-moz-linear-gradient(45deg, rgba(255,255,255,0.15) 25%, transparent 25%, transparent 50%, rgba(255,255,255,0.15) 50%, rgba(255,255,255,0.15) 75%, transparent 75%, transparent);background-image:linear-gradient(45deg, rgba(255,255,255,0.15) 25%,rgba(0,0,0,0) 25%,rgba(0,0,0,0) 50%,rgba(255,255,255,0.15) 50%,rgba(255,255,255,0.15) 75%,rgba(0,0,0,0) 75%,rgba(0,0,0,0))}.progress-bar-warning{background-color:#e28a0d}.progress-striped .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));background-image:-webkit-linear-gradient(45deg, rgba(255,255,255,0.15) 25%, transparent 25%, transparent 50%, rgba(255,255,255,0.15) 50%, rgba(255,255,255,0.15) 75%, transparent 75%, transparent);background-image:-moz-linear-gradient(45deg, rgba(255,255,255,0.15) 25%, transparent 25%, transparent 50%, rgba(255,255,255,0.15) 50%, rgba(255,255,255,0.15) 75%, transparent 75%, transparent);background-image:linear-gradient(45deg, rgba(255,255,255,0.15) 25%,rgba(0,0,0,0) 25%,rgba(0,0,0,0) 50%,rgba(255,255,255,0.15) 50%,rgba(255,255,255,0.15) 75%,rgba(0,0,0,0) 75%,rgba(0,0,0,0))}.progress-bar-info{background-color:#316490}.progress-striped .progress-bar-info{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));background-image:-webkit-linear-gradient(45deg, rgba(255,255,255,0.15) 25%, transparent 25%, transparent 50%, rgba(255,255,255,0.15) 50%, rgba(255,255,255,0.15) 75%, transparent 75%, transparent);background-image:-moz-linear-gradient(45deg, rgba(255,255,255,0.15) 25%, transparent 25%, transparent 50%, rgba(255,255,255,0.15) 50%, rgba(255,255,255,0.15) 75%, transparent 75%, transparent);background-image:linear-gradient(45deg, rgba(255,255,255,0.15) 25%,rgba(0,0,0,0) 25%,rgba(0,0,0,0) 50%,rgba(255,255,255,0.15) 50%,rgba(255,255,255,0.15) 75%,rgba(0,0,0,0) 75%,rgba(0,0,0,0))}.progress-info .bar,.progress .bar-info{background:#316490}.vertical-bars{padding:0;margin:0}.vertical-bars:after{content:"";display:block;height:0;clear:both}.vertical-bars li{padding:14px 0;width:25%;display:block;float:left;text-align:center}.vertical-bars li:first-child{border-left:none}.vertical-bars>li>.progress.vertical:first-child{margin-left:auto}.vertical-bars>li>.progress.vertical{margin:0 auto;float:none}.nav-tabs{border-bottom:none}.nav-tabs>li>a .badge{font-size:11px;padding:3px 5px 3px 5px;opacity:.5;margin-left:5px;min-width:17px;font-weight:normal}.tabs-left .nav-tabs>li>a .badge{margin-right:5px;margin-left:0px}.nav-tabs>li>a .label{display:inline-block;font-size:11px;margin-left:5px;opacity:.5}.nav-tabs>li>a{color:#63676a;font-family:"Oxygen Bold","Helvetica Neue",Helvetica,Arial,sans-serif}.nav-tabs>li>a:hover{color:#adadad;border-color:transparent transparent #63676a transparent;margin-top:1px;border-top-width:0}.nav-tabs>li.active>a{background-color:#adadad;color:#1d1d1d;border-top-width:0px !important;margin-top:1px !important;font-weight:bold}.tabs-left .nav-tabs>li.active>a{-webkit-box-shadow:-2px 0 0 #428bca;-moz-box-shadow:-2px 0 0 #428bca;box-shadow:-2px 0 0 #428bca;border-top-width:1px !important;border-left:none !important;margin-left:1px !important}.tabs-left .nav-pills>li.active>a{border:none !important;box-shadow:none !important;-webkit-box-shadow:none !important;-moz-box-shadow:none !important}.tabs-right .nav-tabs>li.active>a{-webkit-box-shadow:2px 0 0 #428bca;-moz-box-shadow:2px 0 0 #428bca;box-shadow:2px 0 0 #428bca;border-top-width:1px !important;border-right:none !important;margin-right:1px !important}.tabs-below .nav-tabs>li.active>a{-webkit-box-shadow:0 2px 0 #428bca;-moz-box-shadow:0 2px 0 #428bca;box-shadow:0 2px 0 #428bca;border-bottom-width:0px !important;border-top:none !important;margin-top:0px !important}.tabs-below>.nav-tabs,.tabs-right>.nav-tabs,.tabs-left>.nav-tabs{border-bottom:0}.tab-content>.tab-pane,.pill-content>.pill-pane{display:none}.tab-content>.active,.pill-content>.active{display:block}.tabs-below>.nav-tabs{border-top:1px solid #9b9b9b}.tabs-below>.nav-tabs>li{margin-top:-1px;margin-bottom:0}.tabs-left>.nav-tabs>li,.tabs-right>.nav-tabs>li,.tabs-left>.nav-pills>li,.tabs-right>.nav-pills>li{float:none}.tabs-left>.nav-tabs>li>a,.tabs-right>.nav-tabs>li>a,.tabs-left>.nav-pills>li>a,.tabs-right>.nav-pills>li>a{min-width:74px;margin-right:0;margin-bottom:3px}.tabs-left>.nav-tabs,.tabs-left>.nav-pills{float:left;margin-right:19px;border-right:1px solid #9b9b9b}.tabs-left>.nav-pills{border-right:none}.tabs-left>.nav-tabs>li>a{margin-right:-1px}.tabs-left>.nav-tabs>li>a:hover,.tabs-left>.nav-tabs>li>a:focus{border-color:#adadad #949494 #adadad #adadad}.tabs-left>.nav-tabs .active>a,.tabs-left>.nav-tabs .active>a:hover,.tabs-left>.nav-tabs .active>a:focus{border-color:#949494 transparent #949494 #9b9b9b;*border-right-color:#fff}.tabs-left>.tab-content{margin-left:109px}.tabs-right>.nav-tabs{float:right;margin-left:19px;border-left:1px solid #9b9b9b}.tabs-right>.nav-tabs>li>a{margin-left:-1px}.tabs-right>.nav-tabs>li>a:hover,.tabs-right>.nav-tabs>li>a:focus{border-color:#adadad #adadad #adadad #9b9b9b}.tabs-right>.nav-tabs .active>a,.tabs-right>.nav-tabs .active>a:hover,.tabs-right>.nav-tabs .active>a:focus{border-color:#9b9b9b #9b9b9b #9b9b9b transparent;*border-left-color:#fff}.tabs-below>.nav-tabs,.tabs-right>.nav-tabs,.tabs-left>.nav-tabs{border-bottom:0}.tab-content>.tab-pane,.pill-content>.pill-pane{display:none}.tab-content>.active,.pill-content>.active{display:block}.tabs-below>.nav-tabs{border-top:1px solid #9b9b9b}.tabs-below>.nav-tabs>li{margin-top:-1px;margin-bottom:0}.tabs-below>.nav-tabs>li>a:hover,.tabs-below>.nav-tabs>li>a:focus{border-top-color:#9b9b9b;border-bottom-color:transparent}.tabs-below>.nav-tabs>.active>a,.tabs-below>.nav-tabs>.active>a:hover,.tabs-below>.nav-tabs>.active>a:focus{border-color:transparent #9b9b9b #9b9b9b #9b9b9b}.nav-tabs.bordered{background:#fff;border:1px solid #9b9b9b}.nav-tabs.bordered>:first-child a{border-left-width:0px !important}.nav-tabs.bordered+.tab-content{border:1px solid #9b9b9b;border-top:none}.tabs-pull-right.nav-tabs>li,.tabs-pull-right.nav-pills>li{float:right}.tabs-pull-right.nav-tabs>li:first-child>a,.tabs-pull-right.nav-pills>li:first-child>a{margin-right:1px}.tabs-pull-right.bordered.nav-tabs>li:first-child>a,.tabs-pull-right.bordered.nav-pills>li:first-child>a{border-left-width:1px !important;margin-right:0px;border-right-width:0px}.dropdown-menu-xs{min-width:37px}.dropdown-menu-xs>li>a{padding:3px 10px}.dropdown-menu-xs>li>a:hover i{color:#fff !important}.dropdown-submenu{position:relative}.dropdown-submenu>.dropdown-menu{top:0;left:100%;margin-top:-6px;margin-left:-1px}.dropdown-submenu:hover>.dropdown-menu{display:block}.dropdown-submenu:hover>a{background-color:#63676a;color:#1d1d1d}.dropdown-submenu:hover a:after{border-left-color:#5cb85c}.dropdown-submenu>a:after{content:" ";display:block;position:absolute;right:5px;top:7px;width:0;height:0;border-color:transparent;border-style:solid;border-width:5px 0 5px 5px;border-left-color:#2b2b2b}.dropdown-submenu>a:hover:after{border-left-color:#adadad}.dropdown-submenu.disabled>a:after{border-left-color:#63676a}.dropdown-submenu.pull-left{float:none}.dropdown-submenu.pull-left>.dropdown-menu{left:-100%;margin-left:10px}.pagination>li>a,.pagination>li>span{box-shadow:inset 0 -2px 0 rgba(0,0,0,0.05);-moz-box-shadow:inset 0 -2px 0 rgba(0,0,0,0.05);-webkit-box-shadow:inset 0 -2px 0 rgba(0,0,0,0.05)}.btn-default.disabled{color:#adadad}.btn{font-family:"Oxygen Bold","Helvetica Neue",Helvetica,Arial,sans-serif;will-change:background-color, border-color;-moz-border-radius:2px;-webkit-border-radius:2px;border-radius:2px;-webkit-transition:color 0.18s ease-in-out,background-color 0.18s ease-in-out,border-color 0.18s ease-in-out,box-shadow 0.18s ease-in-out;transition:color 0.18s ease-in-out,background-color 0.18s ease-in-out,border-color 0.18s ease-in-out,box-shadow 0.18s ease-in-out}.btn.btn-ribbon{background-color:#707070;background-image:-moz-linear-gradient(top, #777, #666);background-image:-webkit-gradient(linear, 0 0, 0 100%, from(#777), to(#666));background-image:-webkit-linear-gradient(top, #777, #666);background-image:-o-linear-gradient(top, #777, #666);background-image:linear-gradient(to bottom, #777777,#666666);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff777777', endColorstr='#ff666666', GradientType=0);color:white;padding:0 5px;line-height:20px;vertical-align:middle;height:20px;display:block;border:none;float:left;margin:0 8px 0 0;cursor:pointer}.btn.btn-ribbon>i{font-size:111%}.ribbon-button-alignment{padding-top:10px;display:inline-block}.ribbon-button-alignment.pull-right>.btn.btn-ribbon{margin:0 0 0 8px}.panel-purple{border-color:#6e587a}.panel-purple>.panel-heading{color:#fff;background-color:#6e587a;border-color:#6e587a}.panel-greenLight{border-color:#71843f}.panel-greenLight>.panel-heading{color:#fff;background-color:#71843f;border-color:#71843f}.panel-greenDark{border-color:#496949}.panel-greenDark>.panel-heading{color:#fff;background-color:#496949;border-color:#496949}.panel-darken{border-color:#313335}.panel-darken>.panel-heading{color:#fff;background-color:#404040;border-color:#404040}.panel-green{border-color:#5cb85c}.panel-green>.panel-heading{color:#fff;background-color:#5cb85c;border-color:#5cb85c}.panel-red{border-color:#d9534f}.panel-red>.panel-heading{color:#fff;background-color:#d9534f;border-color:#d9534f}.panel-teal{border-color:#568a89}.panel-teal>.panel-heading{color:#fff;background-color:#568a89;border-color:#568a89}.panel-orange{border-color:#e28a0d}.panel-orange>.panel-heading{color:#fff;background-color:#e28a0d;border-color:#e28a0d}.panel-blueDark{border-color:#4c4f53}.panel-blueDark>.panel-heading{color:#fff;background-color:#4c4f53;border-color:#4c4f53}.panel-magenta{border-color:#6e3671}.panel-magenta>.panel-heading{color:#fff;background-color:#6e3671;border-color:#6e3671}.panel-blue{border-color:#428bca}.panel-blue>.panel-heading{color:#fff;background-color:#428bca;border-color:#428bca}.panel-footer>.btn-block{border-radius:0px;-moz-border-radius:0px;-webkit-border-radius:0px;border-bottom:none;border-left:none;border-right:none}.btn-circle{width:30px;height:30px;text-align:center;padding:6px 0;font-size:12px;line-height:18px;border-radius:50%;-moz-border-radius:50%;-webkit-border-radius:50%;-webkit-box-shadow:0 1px 6px 0 rgba(0,0,0,0.12),0 1px 6px 0 rgba(0,0,0,0.12);box-shadow:0 1px 6px 0 rgba(0,0,0,0.12),0 1px 6px 0 rgba(0,0,0,0.12)}.btn-circle.btn-sm,.btn-group-sm>.btn-circle.btn{width:22px;height:22px;padding:4px 0;font-size:12px;line-height:14px;border-radius:50%;-moz-border-radius:50%;-webkit-border-radius:50%}.btn-circle.btn-lg,.btn-group-lg>.btn-circle.btn{width:50px;height:50px;padding:10px 15px;font-size:18px;line-height:30px;border-radius:50%;-moz-border-radius:50%;-webkit-border-radius:50%}.btn-circle.btn-xl{width:70px;height:70px;padding:10px 15px;font-size:24px;line-height:50px;border-radius:50%;-moz-border-radius:50%;-webkit-border-radius:50%}.btn-label{position:relative;left:-8px;display:inline-block;padding:5px 8px;background:rgba(0,0,0,0.15);border-radius:2px 0 0 2px}.btn-labeled{padding-top:0;padding-bottom:0;padding-left:8px}.btn-link{box-shadow:none;-webkit-box-shadow:none;font-size:13px}.morris-hover.morris-default-style{border-radius:5px;padding:5px;color:#666;background:rgba(29,29,29,0.85);font-family:'Oxygen Bold';font-size:10px;text-align:left;-webkit-box-shadow:0 6px 12px rgba(0,0,0,0.4);box-shadow:0 6px 12px rgba(0,0,0,0.4)}.morris-hover.morris-default-style .morris-hover-row-label{font-weight:bold}.morris-hover.morris-default-style .morris-hover-point{white-space:nowrap}.morris-hover{position:absolute;z-index:903}.fixed-page-footer .morris-hover{z-index:900}.txt-color.txt-color-blue,.txt-color-blue.pf-help-light,.pf-help-light:hover,.txt-color-blue.pf-help,.pf-help:hover,.txt-color.pf-help-default:hover,.dataTable td.pf-help-default.pf-table-link-cell:hover,.dataTable td.pf-table-link-cell.pf-help-light:hover,.dataTable td.pf-table-link-cell.pf-help:hover,.dataTable td.pf-table-action-cell>.pf-help-default.pf-table-action-icon-cell:hover,.dataTable td.pf-table-action-cell>.pf-table-action-icon-cell.pf-help-light:hover,.dataTable td.pf-table-action-cell>.pf-table-action-icon-cell.pf-help:hover,.pf-landing .pf-landing-list li>i.pf-help-default:hover,.pf-landing .pf-landing-list li>i.pf-help-light:hover,.pf-landing .pf-landing-list li>i.pf-help:hover,.dataTable td.txt-color-blue.pf-table-link-cell,.dataTable td.pf-table-action-cell>.txt-color-blue.pf-table-action-icon-cell,.pf-landing .pf-landing-list li>i.txt-color-blue{color:#428bca !important}.txt-color.txt-color-blueLight,.txt-color-blueLight.pf-help-light,.txt-color-blueLight.pf-help,.dataTable td.txt-color-blueLight.pf-table-link-cell,.dataTable td.pf-table-action-cell>.txt-color-blueLight.pf-table-action-icon-cell,.pf-landing .pf-landing-list li>i.txt-color-blueLight{color:#92a2a8 !important}.txt-color.txt-color-blueDark,.txt-color-blueDark.pf-help-light,.txt-color-blueDark.pf-help,.dataTable td.txt-color-blueDark.pf-table-link-cell,.dataTable td.pf-table-action-cell>.txt-color-blueDark.pf-table-action-icon-cell,.pf-landing .pf-landing-list li>i.txt-color-blueDark{color:#4c4f53 !important}.txt-color.txt-color-grayLightest,.txt-color-grayLightest.pf-help-light,.txt-color-grayLightest.pf-help,.dataTable td.txt-color-grayLightest.pf-table-link-cell,.dataTable td.pf-table-action-cell>.txt-color-grayLightest.pf-table-action-icon-cell,.pf-landing .pf-landing-list li>i.txt-color-grayLightest{color:#eaeaea !important}.txt-color.txt-color-grayLighter,.txt-color-grayLighter.pf-help-light,.txt-color-grayLighter.pf-help,.dataTable td.txt-color-grayLighter.pf-table-link-cell,.dataTable td.pf-table-action-cell>.txt-color-grayLighter.pf-table-action-icon-cell,.pf-landing .pf-landing-list li>i.txt-color-grayLighter{color:#adadad !important}.txt-color.txt-color-grayLight,.pf-help-light,.txt-color-grayLight.pf-help,.dataTable td.txt-color-grayLight.pf-table-link-cell,.dataTable td.pf-table-link-cell.pf-help-light,.dataTable td.pf-table-action-cell>.txt-color-grayLight.pf-table-action-icon-cell,.dataTable td.pf-table-action-cell>.pf-table-action-icon-cell.pf-help-light,.pf-landing .pf-landing-list li>i.txt-color-grayLight,.pf-landing .pf-landing-list li>i.pf-help-light{color:#63676a !important}.txt-color.txt-color-gray,.txt-color-gray.pf-help-light,.pf-help,.dataTable td.txt-color-gray.pf-table-link-cell,.dataTable td.pf-table-link-cell.pf-help,.dataTable td.pf-table-action-cell>.pf-table-action-icon-cell,.pf-landing .pf-landing-list li>i.txt-color-gray,.pf-landing .pf-landing-list li>i.pf-help{color:#3c3f41 !important}.txt-color.txt-color-grayDark,.txt-color-grayDark.pf-help-light,.txt-color-grayDark.pf-help,.dataTable td.txt-color-grayDark.pf-table-link-cell,.dataTable td.pf-table-action-cell>.txt-color-grayDark.pf-table-action-icon-cell,.pf-landing .pf-landing-list li>i.txt-color-grayDark{color:#313335 !important}.txt-color.txt-color-greenLight,.txt-color-greenLight.pf-help-light,.txt-color-greenLight.pf-help,.dataTable td.txt-color-greenLight.pf-table-link-cell,.dataTable td.pf-table-action-cell>.txt-color-greenLight.pf-table-action-icon-cell,.pf-landing .pf-landing-list li>i.txt-color-greenLight{color:#66c84f !important}.txt-color.txt-color-green,.txt-color-green.pf-help-light,.pf-help-light.pf-log-info,.txt-color-green.pf-help,.pf-help.pf-log-info,.dataTable td.txt-color-green.pf-table-link-cell,.dataTable td.pf-table-link-cell.pf-log-info,.dataTable td.pf-table-action-cell>.txt-color-green.pf-table-action-icon-cell,.dataTable td.pf-table-action-cell>.pf-table-action-icon-cell.pf-log-info,.txt-color.pf-log-info,.pf-landing .pf-landing-list li>i.pf-log-info,.pf-landing .pf-landing-list li>i.txt-color-green{color:#5cb85c !important}.txt-color.txt-color-greenDark,.txt-color-greenDark.pf-help-light,.txt-color-greenDark.pf-help,.dataTable td.txt-color-greenDark.pf-table-link-cell,.dataTable td.pf-table-action-cell>.txt-color-greenDark.pf-table-action-icon-cell,.pf-landing .pf-landing-list li>i.txt-color-greenDark{color:#4f9e4f !important}.txt-color.txt-color-redLight,.txt-color-redLight.pf-help-light,.txt-color-redLight.pf-help,.dataTable td.txt-color-redLight.pf-table-link-cell,.dataTable td.pf-table-action-cell>.txt-color-redLight.pf-table-action-icon-cell,.pf-landing .pf-landing-list li>i.txt-color-redLight{color:#a65858 !important}.txt-color.txt-color-red,.txt-color-red.pf-help-light,.pf-help-light.pf-log-error,.txt-color-red.pf-help,.pf-help.pf-log-error,.dataTable td.txt-color-red.pf-table-link-cell,.dataTable td.pf-table-link-cell.pf-log-error,.dataTable td.pf-table-action-cell>.txt-color-red.pf-table-action-icon-cell,.dataTable td.pf-table-action-cell>.pf-table-action-icon-cell.pf-log-error,.txt-color.pf-log-error,.pf-landing .pf-landing-list li>i.pf-log-error,.pf-landing .pf-landing-list li>i.txt-color-red{color:#d9534f !important}.txt-color.txt-color-redDark,.txt-color-redDark.pf-help-light,.txt-color-redDark.pf-help,.dataTable td.txt-color-redDark.pf-table-link-cell,.dataTable td.pf-table-action-cell>.txt-color-redDark.pf-table-action-icon-cell,.pf-landing .pf-landing-list li>i.txt-color-redDark{color:#a52521 !important}.txt-color.txt-color-redDarker,.txt-color-redDarker.pf-help-light,.txt-color-redDarker.pf-help,.dataTable td.txt-color-redDarker.pf-table-link-cell,.dataTable td.pf-table-action-cell>.txt-color-redDarker.pf-table-action-icon-cell,.pf-landing .pf-landing-list li>i.txt-color-redDarker{color:#58100d !important}.txt-color.txt-color-yellow,.txt-color-yellow.pf-help-light,.txt-color-yellow.pf-help,.dataTable td.txt-color-yellow.pf-table-link-cell,.dataTable td.pf-table-action-cell>.txt-color-yellow.pf-table-action-icon-cell,.pf-landing .pf-landing-list li>i.txt-color-yellow{color:#e2ce48 !important}.txt-color.txt-color-yellowDark,.txt-color-yellowDark.pf-help-light,.txt-color-yellowDark.pf-help,.dataTable td.txt-color-yellowDark.pf-table-link-cell,.dataTable td.pf-table-action-cell>.txt-color-yellowDark.pf-table-action-icon-cell,.pf-landing .pf-landing-list li>i.txt-color-yellowDark{color:#c8b847 !important}.txt-color.txt-color-orangeLight,.txt-color-orangeLight.pf-help-light,.txt-color-orangeLight.pf-help,.dataTable td.txt-color-orangeLight.pf-table-link-cell,.dataTable td.pf-table-action-cell>.txt-color-orangeLight.pf-table-action-icon-cell,.pf-landing .pf-landing-list li>i.txt-color-orangeLight{color:#f0ad4e !important}.txt-color.txt-color-orange,.txt-color-orange.pf-help-light,.txt-color-orange.pf-help,.dataTable td.txt-color-orange.pf-table-link-cell,.dataTable td.pf-table-action-cell>.txt-color-orange.pf-table-action-icon-cell,.dataTable td.pf-table-action-cell:hover>.pf-table-action-icon-cell,.pf-landing .pf-landing-list li>i.txt-color-orange{color:#e28a0d !important}.txt-color.txt-color-orangeDark,.txt-color-orangeDark.pf-help-light,.txt-color-orangeDark.pf-help,.dataTable td.txt-color-orangeDark.pf-table-link-cell,.dataTable td.pf-table-action-cell>.txt-color-orangeDark.pf-table-action-icon-cell,.pf-landing .pf-landing-list li>i.txt-color-orangeDark{color:#c2760c !important}.txt-color.txt-color-pink,.txt-color-pink.pf-help-light,.txt-color-pink.pf-help,.dataTable td.txt-color-pink.pf-table-link-cell,.dataTable td.pf-table-action-cell>.txt-color-pink.pf-table-action-icon-cell,.pf-landing .pf-landing-list li>i.txt-color-pink{color:#e06fdf !important}.txt-color.txt-color-pinkDark,.txt-color-pinkDark.pf-help-light,.txt-color-pinkDark.pf-help,.dataTable td.txt-color-pinkDark.pf-table-link-cell,.dataTable td.pf-table-action-cell>.txt-color-pinkDark.pf-table-action-icon-cell,.pf-landing .pf-landing-list li>i.txt-color-pinkDark{color:#a8829f !important}.txt-color.txt-color-purple,.txt-color-purple.pf-help-light,.txt-color-purple.pf-help,.dataTable td.txt-color-purple.pf-table-link-cell,.dataTable td.pf-table-action-cell>.txt-color-purple.pf-table-action-icon-cell,.pf-landing .pf-landing-list li>i.txt-color-purple{color:#6e587a !important}.txt-color.txt-color-darken,.txt-color-darken.pf-help-light,.txt-color-darken.pf-help,.dataTable td.txt-color-darken.pf-table-link-cell,.dataTable td.pf-table-action-cell>.txt-color-darken.pf-table-action-icon-cell,.pf-landing .pf-landing-list li>i.txt-color-darken{color:#404040 !important}.txt-color.txt-color-lighten,.txt-color-lighten.pf-help-light,.txt-color-lighten.pf-help,.dataTable td.txt-color-lighten.pf-table-link-cell,.dataTable td.pf-table-action-cell>.txt-color-lighten.pf-table-action-icon-cell,.pf-landing .pf-landing-list li>i.txt-color-lighten{color:#d5e7ec !important}.txt-color.txt-color-white,.txt-color-white.pf-help-light,.txt-color-white.pf-help,.dataTable td.txt-color-white.pf-table-link-cell,.dataTable td.pf-table-action-cell>.txt-color-white.pf-table-action-icon-cell,.pf-landing .pf-landing-list li>i.txt-color-white{color:#fff !important}.txt-color.txt-color-magenta,.txt-color-magenta.pf-help-light,.txt-color-magenta.pf-help,.dataTable td.txt-color-magenta.pf-table-link-cell,.dataTable td.pf-table-action-cell>.txt-color-magenta.pf-table-action-icon-cell,.pf-landing .pf-landing-list li>i.txt-color-magenta{color:#6e3671 !important}.txt-color.txt-color-tealLightest,.txt-color-tealLightest.pf-help-light,.txt-color-tealLightest.pf-help,.dataTable td.txt-color-tealLightest.pf-table-link-cell,.dataTable td.pf-table-link-cell:hover,.dataTable td.pf-table-action-cell>.txt-color-tealLightest.pf-table-action-icon-cell,.pf-landing .pf-landing-list li>i.txt-color-tealLightest{color:#6caead !important}.txt-color.txt-color-tealLighter,.txt-color-tealLighter.pf-help-light,.txt-color-tealLighter.pf-help,.dataTable td.txt-color-tealLighter.pf-table-link-cell,.dataTable td.pf-table-action-cell>.txt-color-tealLighter.pf-table-action-icon-cell,.pf-landing .pf-landing-list li>i{color:#568a89 !important}.txt-color.txt-color-teal,.txt-color-teal.pf-help-light,.txt-color-teal.pf-help,.dataTable td.pf-table-link-cell,.dataTable td.pf-table-action-cell>.txt-color-teal.pf-table-action-icon-cell,.dataTable td.pf-table-action-cell>td.pf-table-action-icon-cell.pf-table-link-cell,.pf-landing .pf-landing-list li>i.txt-color-teal{color:#477372 !important}.txt-color.txt-color-indigoDark,.txt-color-indigoDark.pf-help-light,.txt-color-indigoDark.pf-help,.dataTable td.txt-color-indigoDark.pf-table-link-cell,.dataTable td.pf-table-action-cell>.txt-color-indigoDark.pf-table-action-icon-cell,.pf-landing .pf-landing-list li>i.txt-color-indigoDark{color:#5c6bc0 !important}.txt-color.txt-color-indigoDarkest,.txt-color-indigoDarkest.pf-help-light,.txt-color-indigoDarkest.pf-help,.dataTable td.txt-color-indigoDarkest.pf-table-link-cell,.dataTable td.pf-table-action-cell>.txt-color-indigoDarkest.pf-table-action-icon-cell,.pf-landing .pf-landing-list li>i.txt-color-indigoDarkest{color:#313966 !important}.txt-color.txt-color-gold,.txt-color-gold.pf-help-light,.txt-color-gold.pf-help,.dataTable td.txt-color-gold.pf-table-link-cell,.dataTable td.pf-table-action-cell>.txt-color-gold.pf-table-action-icon-cell,.pf-landing .pf-landing-list li>i.txt-color-gold{color:#cfb53b !important}.txt-color.txt-color-silver,.txt-color-silver.pf-help-light,.txt-color-silver.pf-help,.dataTable td.txt-color-silver.pf-table-link-cell,.dataTable td.pf-table-action-cell>.txt-color-silver.pf-table-action-icon-cell,.pf-landing .pf-landing-list li>i.txt-color-silver{color:silver !important}.txt-color.txt-color-bronze,.txt-color-bronze.pf-help-light,.txt-color-bronze.pf-help,.dataTable td.txt-color-bronze.pf-table-link-cell,.dataTable td.pf-table-action-cell>.txt-color-bronze.pf-table-action-icon-cell,.pf-landing .pf-landing-list li>i.txt-color-bronze{color:#8c7853 !important}.txt-color.txt-color-primary,.txt-color-primary.pf-help-light,.txt-color-primary.pf-help,.dataTable td.txt-color-primary.pf-table-link-cell,.dataTable td.pf-table-action-cell>.txt-color-primary.pf-table-action-icon-cell,.pf-landing .pf-landing-list li>i.txt-color-primary{color:#375959 !important}.txt-color.txt-color-success,.txt-color-success.pf-help-light,.txt-color-success.pf-help,.dataTable td.txt-color-success.pf-table-link-cell,.dataTable td.pf-table-action-cell>.txt-color-success.pf-table-action-icon-cell,.pf-landing .pf-landing-list li>i.txt-color-success{color:#4f9e4f !important}.txt-color.txt-color-information,.txt-color-information.pf-help-light,.txt-color-information.pf-help,.dataTable td.txt-color-information.pf-table-link-cell,.dataTable td.pf-table-action-cell>.txt-color-information.pf-table-action-icon-cell,.pf-landing .pf-landing-list li>i.txt-color-information{color:#316490 !important}.txt-color.txt-color-info,.txt-color-info.pf-help-light,.txt-color-info.pf-help,.dataTable td.txt-color-info.pf-table-link-cell,.dataTable td.pf-table-action-cell>.txt-color-info.pf-table-action-icon-cell,.pf-landing .pf-landing-list li>i.txt-color-info{color:#316490 !important}.txt-color.txt-color-warning,.txt-color-warning.pf-help-light,.pf-help-light.pf-log-warning,.txt-color-warning.pf-help,.pf-help.pf-log-warning,.dataTable td.txt-color-warning.pf-table-link-cell,.dataTable td.pf-table-link-cell.pf-log-warning,.dataTable td.pf-table-action-cell>.txt-color-warning.pf-table-action-icon-cell,.dataTable td.pf-table-action-cell>.pf-table-action-icon-cell.pf-log-warning,.txt-color.pf-log-warning,.pf-landing .pf-landing-list li>i.pf-log-warning,.pf-landing .pf-landing-list li>i.txt-color-warning{color:#e28a0d !important}.txt-color.txt-color-danger,.txt-color-danger.pf-help-light,.txt-color-danger.pf-help,.dataTable td.txt-color-danger.pf-table-link-cell,.dataTable td.pf-table-action-cell>.txt-color-danger.pf-table-action-icon-cell,.pf-landing .pf-landing-list li>i.txt-color-danger{color:#a52521 !important}.txt-color.txt-color-hint,.txt-color-hint.pf-help-light,.txt-color-hint.pf-help,.dataTable td.txt-color-hint.pf-table-link-cell,.dataTable td.pf-table-action-cell>.txt-color-hint.pf-table-action-icon-cell,.pf-landing .pf-landing-list li>i.txt-color-hint{color:#c8b847 !important}.bg-color.bg-color-blue{background-color:#428bca !important}.bg-color.bg-color-blueLight{background-color:#92a2a8 !important}.bg-color.bg-color-blueDark{background-color:#4c4f53 !important}.bg-color.bg-color-green{background-color:#5cb85c !important}.bg-color.bg-color-greenLight{background-color:#71843f !important}.bg-color.bg-color-greenDark{background-color:#496949 !important}.bg-color.bg-color-red{background-color:#d9534f !important}.bg-color.bg-color-yellow{background-color:#e2ce48 !important}.bg-color.bg-color-orange{background-color:#e28a0d !important}.bg-color.bg-color-orangeDark{background-color:#c2760c !important}.bg-color.bg-color-pink{background-color:#e06fdf !important}.bg-color.bg-color-pinkDark{background-color:#a8829f !important}.bg-color.bg-color-purple{background-color:#6e587a !important}.bg-color.bg-color-darken{background-color:#404040 !important}.bg-color.bg-color-lighten{background-color:#d5e7ec !important}.bg-color.bg-color-white{background-color:#fff !important}.bg-color.bg-color-gray{background-color:#3c3f41 !important}.bg-color.bg-color-grayDark{background-color:#313335 !important}.bg-color.bg-color-grayDarker{background-color:#2b2b2b !important}.bg-color.bg-color-magenta{background-color:#6e3671 !important}.bg-color.bg-color-tealLighter{background-color:#568a89 !important}.bg-color.bg-color-tealDark{background-color:#375959 !important}.bg-color.bg-color-tealDarker{background-color:#212C30 !important}.bg-color.bg-color-tealDarkest{background-color:#1b2326 !important}.bg-color.bg-color-redLight{background-color:#a65858 !important}.pf-animation-slide-in{-moz-animation-duration:1.2s;-webkit-animation-duration:1.2s;-moz-animation-name:pfSlideIn;-webkit-animation-name:pfSlideIn;position:relative}@-webkit-keyframes pfSlideIn{from{opacity:0;top:-20px}to{opacity:1;top:0px}}@-moz-keyframes pfSlideIn{from{opacity:0;top:-20px}to{opacity:1;top:0px}}@-ms-keyframes pfSlideIn{from{opacity:0;top:-20px}to{opacity:1;top:0px}}@keyframes pfSlideIn{from{opacity:0;top:-20px}to{opacity:1;top:0px}}.pf-animation-path-draw{stroke-dasharray:500;stroke-dashoffset:500;animation:pfPathDraw 3s linear alternate infinite}@-webkit-keyframes pfPathDraw{from{stroke-dashoffset:500}to{stroke-dashoffset:0}}@-moz-keyframes pfPathDraw{from{stroke-dashoffset:500}to{stroke-dashoffset:0}}@-ms-keyframes pfPathDraw{from{stroke-dashoffset:500}to{stroke-dashoffset:0}}@keyframes pfPathDraw{from{stroke-dashoffset:500}to{stroke-dashoffset:0}}@-webkit-keyframes pfBubbleWobble{from{transform:scale(1, 1)}6.5%{transform:scale(1, 1.4)}13%{transform:scale(1.4, 1)}20%{transform:scale(1, 1)}to{transform:scale(1, 1)}}@-moz-keyframes pfBubbleWobble{from{transform:scale(1, 1)}6.5%{transform:scale(1, 1.4)}13%{transform:scale(1.4, 1)}20%{transform:scale(1, 1)}to{transform:scale(1, 1)}}@-ms-keyframes pfBubbleWobble{from{transform:scale(1, 1)}6.5%{transform:scale(1, 1.4)}13%{transform:scale(1.4, 1)}20%{transform:scale(1, 1)}to{transform:scale(1, 1)}}@keyframes pfBubbleWobble{from{transform:scale(1, 1)}6.5%{transform:scale(1, 1.4)}13%{transform:scale(1.4, 1)}20%{transform:scale(1, 1)}to{transform:scale(1, 1)}}@-webkit-keyframes pfBubblePop{from{opacity:1;transform:translateZ(0) scale(1, 1)}to{opacity:0;transform:translateZ(0) scale(1.75, 1.75)}}@-moz-keyframes pfBubblePop{from{opacity:1;transform:translateZ(0) scale(1, 1)}to{opacity:0;transform:translateZ(0) scale(1.75, 1.75)}}@-ms-keyframes pfBubblePop{from{opacity:1;transform:translateZ(0) scale(1, 1)}to{opacity:0;transform:translateZ(0) scale(1.75, 1.75)}}@keyframes pfBubblePop{from{opacity:1;transform:translateZ(0) scale(1, 1)}to{opacity:0;transform:translateZ(0) scale(1.75, 1.75)}}@-webkit-keyframes pfPulseDanger{0%{fill:#d9534f}50%{fill:#58100d}100%{fill:#d9534f}}@-moz-keyframes pfPulseDanger{0%{fill:#d9534f}50%{fill:#58100d}100%{fill:#d9534f}}@-ms-keyframes pfPulseDanger{0%{fill:#d9534f}50%{fill:#58100d}100%{fill:#d9534f}}@keyframes pfPulseDanger{0%{fill:#d9534f}50%{fill:#58100d}100%{fill:#d9534f}}@-webkit-keyframes pulseBackgroundSuccess{10%{background-color:#4f9e4f;color:#313335}}@-moz-keyframes pulseBackgroundSuccess{10%{background-color:#4f9e4f;color:#313335}}@-ms-keyframes pulseBackgroundSuccess{10%{background-color:#4f9e4f;color:#313335}}@keyframes pulseBackgroundSuccess{10%{background-color:#4f9e4f;color:#313335}}@-webkit-keyframes pulseBackgroundSuccessActive{10%{background-color:#478d47;color:#313335}}@-moz-keyframes pulseBackgroundSuccessActive{10%{background-color:#478d47;color:#313335}}@-ms-keyframes pulseBackgroundSuccessActive{10%{background-color:#478d47;color:#313335}}@keyframes pulseBackgroundSuccessActive{10%{background-color:#478d47;color:#313335}}.pf-animation-pulse-success{-webkit-animation:pulseBackgroundSuccess 1s 1;animation:pulseBackgroundSuccess 1s 1;-webkit-animation-timing-function:cubic-bezier(0.53, -0.03, 0.68, 0.38);animation-timing-function:cubic-bezier(0.53, -0.03, 0.68, 0.38);will-change:color, background-color;animation-fill-mode:forwards}.pf-animation-pulse-success .sorting_1{-webkit-animation:pulseBackgroundSuccessActive 1s 1;animation:pulseBackgroundSuccessActive 1s 1;-webkit-animation-timing-function:cubic-bezier(0.53, -0.03, 0.68, 0.38);animation-timing-function:cubic-bezier(0.53, -0.03, 0.68, 0.38);will-change:color, background-color;animation-fill-mode:forwards}@-webkit-keyframes pulseBackgroundSuccessKeep{0%{color:inherit}10%{background-color:#4f9e4f;color:#313335}100%{background-color:rgba(79,158,79,0.3)}}@-moz-keyframes pulseBackgroundSuccessKeep{0%{color:inherit}10%{background-color:#4f9e4f;color:#313335}100%{background-color:rgba(79,158,79,0.3)}}@-ms-keyframes pulseBackgroundSuccessKeep{0%{color:inherit}10%{background-color:#4f9e4f;color:#313335}100%{background-color:rgba(79,158,79,0.3)}}@keyframes pulseBackgroundSuccessKeep{0%{color:inherit}10%{background-color:#4f9e4f;color:#313335}100%{background-color:rgba(79,158,79,0.3)}}@-webkit-keyframes pulseBackgroundSuccessActiveKeep{0%{color:inherit}10%{background-color:#478d47;color:#313335}100%{background-color:rgba(71,141,71,0.3)}}@-moz-keyframes pulseBackgroundSuccessActiveKeep{0%{color:inherit}10%{background-color:#478d47;color:#313335}100%{background-color:rgba(71,141,71,0.3)}}@-ms-keyframes pulseBackgroundSuccessActiveKeep{0%{color:inherit}10%{background-color:#478d47;color:#313335}100%{background-color:rgba(71,141,71,0.3)}}@keyframes pulseBackgroundSuccessActiveKeep{0%{color:inherit}10%{background-color:#478d47;color:#313335}100%{background-color:rgba(71,141,71,0.3)}}.pf-animation-pulse-success-keep{-webkit-animation:pulseBackgroundSuccessKeep 1s 1;animation:pulseBackgroundSuccessKeep 1s 1;-webkit-animation-timing-function:cubic-bezier(0.53, -0.03, 0.68, 0.38);animation-timing-function:cubic-bezier(0.53, -0.03, 0.68, 0.38);will-change:color, background-color;animation-fill-mode:forwards}.pf-animation-pulse-success-keep .sorting_1{-webkit-animation:pulseBackgroundSuccessActiveKeep 1s 1;animation:pulseBackgroundSuccessActiveKeep 1s 1;-webkit-animation-timing-function:cubic-bezier(0.53, -0.03, 0.68, 0.38);animation-timing-function:cubic-bezier(0.53, -0.03, 0.68, 0.38);will-change:color, background-color;animation-fill-mode:forwards}@-webkit-keyframes pulseBackgroundWarning{10%{background-color:#e28a0d;color:#2b2b2b}}@-moz-keyframes pulseBackgroundWarning{10%{background-color:#e28a0d;color:#2b2b2b}}@-ms-keyframes pulseBackgroundWarning{10%{background-color:#e28a0d;color:#2b2b2b}}@keyframes pulseBackgroundWarning{10%{background-color:#e28a0d;color:#2b2b2b}}@-webkit-keyframes pulseBackgroundWarningActive{10%{background-color:#ca7b0c;color:#2b2b2b}}@-moz-keyframes pulseBackgroundWarningActive{10%{background-color:#ca7b0c;color:#2b2b2b}}@-ms-keyframes pulseBackgroundWarningActive{10%{background-color:#ca7b0c;color:#2b2b2b}}@keyframes pulseBackgroundWarningActive{10%{background-color:#ca7b0c;color:#2b2b2b}}.pf-animation-pulse-warning{-webkit-animation:pulseBackgroundWarning 1s 1;animation:pulseBackgroundWarning 1s 1;-webkit-animation-timing-function:cubic-bezier(0.53, -0.03, 0.68, 0.38);animation-timing-function:cubic-bezier(0.53, -0.03, 0.68, 0.38);will-change:color, background-color;animation-fill-mode:forwards}.pf-animation-pulse-warning .sorting_1{-webkit-animation:pulseBackgroundWarningActive 1s 1;animation:pulseBackgroundWarningActive 1s 1;-webkit-animation-timing-function:cubic-bezier(0.53, -0.03, 0.68, 0.38);animation-timing-function:cubic-bezier(0.53, -0.03, 0.68, 0.38);will-change:color, background-color;animation-fill-mode:forwards}@-webkit-keyframes pulseBackgroundWarningKeep{0%{color:inherit}10%{background-color:#e28a0d;color:#2b2b2b}100%{background-color:rgba(226,138,13,0.3)}}@-moz-keyframes pulseBackgroundWarningKeep{0%{color:inherit}10%{background-color:#e28a0d;color:#2b2b2b}100%{background-color:rgba(226,138,13,0.3)}}@-ms-keyframes pulseBackgroundWarningKeep{0%{color:inherit}10%{background-color:#e28a0d;color:#2b2b2b}100%{background-color:rgba(226,138,13,0.3)}}@keyframes pulseBackgroundWarningKeep{0%{color:inherit}10%{background-color:#e28a0d;color:#2b2b2b}100%{background-color:rgba(226,138,13,0.3)}}@-webkit-keyframes pulseBackgroundWarningActiveKeep{0%{color:inherit}10%{background-color:#ca7b0c;color:#2b2b2b}100%{background-color:rgba(202,123,12,0.3)}}@-moz-keyframes pulseBackgroundWarningActiveKeep{0%{color:inherit}10%{background-color:#ca7b0c;color:#2b2b2b}100%{background-color:rgba(202,123,12,0.3)}}@-ms-keyframes pulseBackgroundWarningActiveKeep{0%{color:inherit}10%{background-color:#ca7b0c;color:#2b2b2b}100%{background-color:rgba(202,123,12,0.3)}}@keyframes pulseBackgroundWarningActiveKeep{0%{color:inherit}10%{background-color:#ca7b0c;color:#2b2b2b}100%{background-color:rgba(202,123,12,0.3)}}.pf-animation-pulse-warning-keep{-webkit-animation:pulseBackgroundWarningKeep 1s 1;animation:pulseBackgroundWarningKeep 1s 1;-webkit-animation-timing-function:cubic-bezier(0.53, -0.03, 0.68, 0.38);animation-timing-function:cubic-bezier(0.53, -0.03, 0.68, 0.38);will-change:color, background-color;animation-fill-mode:forwards}.pf-animation-pulse-warning-keep .sorting_1{-webkit-animation:pulseBackgroundWarningActiveKeep 1s 1;animation:pulseBackgroundWarningActiveKeep 1s 1;-webkit-animation-timing-function:cubic-bezier(0.53, -0.03, 0.68, 0.38);animation-timing-function:cubic-bezier(0.53, -0.03, 0.68, 0.38);will-change:color, background-color;animation-fill-mode:forwards}@-webkit-keyframes pulseBackgroundDanger{10%{background-color:#d9534f;color:#2b2b2b}}@-moz-keyframes pulseBackgroundDanger{10%{background-color:#d9534f;color:#2b2b2b}}@-ms-keyframes pulseBackgroundDanger{10%{background-color:#d9534f;color:#2b2b2b}}@keyframes pulseBackgroundDanger{10%{background-color:#d9534f;color:#2b2b2b}}@-webkit-keyframes pulseBackgroundDangerActive{10%{background-color:#d43f3a;color:#2b2b2b}}@-moz-keyframes pulseBackgroundDangerActive{10%{background-color:#d43f3a;color:#2b2b2b}}@-ms-keyframes pulseBackgroundDangerActive{10%{background-color:#d43f3a;color:#2b2b2b}}@keyframes pulseBackgroundDangerActive{10%{background-color:#d43f3a;color:#2b2b2b}}.pf-animation-pulse-danger{-webkit-animation:pulseBackgroundDanger 1s 1;animation:pulseBackgroundDanger 1s 1;-webkit-animation-timing-function:cubic-bezier(0.53, -0.03, 0.68, 0.38);animation-timing-function:cubic-bezier(0.53, -0.03, 0.68, 0.38);will-change:color, background-color;animation-fill-mode:forwards}.pf-animation-pulse-danger .sorting_1{-webkit-animation:pulseBackgroundDangerActive 1s 1;animation:pulseBackgroundDangerActive 1s 1;-webkit-animation-timing-function:cubic-bezier(0.53, -0.03, 0.68, 0.38);animation-timing-function:cubic-bezier(0.53, -0.03, 0.68, 0.38);will-change:color, background-color;animation-fill-mode:forwards}@-webkit-keyframes pulseBackgroundDangerKeep{0%{color:inherit}10%{background-color:#d9534f;color:#2b2b2b}100%{background-color:rgba(217,83,79,0.3)}}@-moz-keyframes pulseBackgroundDangerKeep{0%{color:inherit}10%{background-color:#d9534f;color:#2b2b2b}100%{background-color:rgba(217,83,79,0.3)}}@-ms-keyframes pulseBackgroundDangerKeep{0%{color:inherit}10%{background-color:#d9534f;color:#2b2b2b}100%{background-color:rgba(217,83,79,0.3)}}@keyframes pulseBackgroundDangerKeep{0%{color:inherit}10%{background-color:#d9534f;color:#2b2b2b}100%{background-color:rgba(217,83,79,0.3)}}@-webkit-keyframes pulseBackgroundDangerActiveKeep{0%{color:inherit}10%{background-color:#d43f3a;color:#2b2b2b}100%{background-color:rgba(212,63,58,0.3)}}@-moz-keyframes pulseBackgroundDangerActiveKeep{0%{color:inherit}10%{background-color:#d43f3a;color:#2b2b2b}100%{background-color:rgba(212,63,58,0.3)}}@-ms-keyframes pulseBackgroundDangerActiveKeep{0%{color:inherit}10%{background-color:#d43f3a;color:#2b2b2b}100%{background-color:rgba(212,63,58,0.3)}}@keyframes pulseBackgroundDangerActiveKeep{0%{color:inherit}10%{background-color:#d43f3a;color:#2b2b2b}100%{background-color:rgba(212,63,58,0.3)}}.pf-animation-pulse-danger-keep{-webkit-animation:pulseBackgroundDangerKeep 1s 1;animation:pulseBackgroundDangerKeep 1s 1;-webkit-animation-timing-function:cubic-bezier(0.53, -0.03, 0.68, 0.38);animation-timing-function:cubic-bezier(0.53, -0.03, 0.68, 0.38);will-change:color, background-color;animation-fill-mode:forwards}.pf-animation-pulse-danger-keep .sorting_1{-webkit-animation:pulseBackgroundDangerActiveKeep 1s 1;animation:pulseBackgroundDangerActiveKeep 1s 1;-webkit-animation-timing-function:cubic-bezier(0.53, -0.03, 0.68, 0.38);animation-timing-function:cubic-bezier(0.53, -0.03, 0.68, 0.38);will-change:color, background-color;animation-fill-mode:forwards}.pf-animate-rotate,.modal-content h2[data-toggle="collapse"]:after,.modal-content h4[data-toggle="collapse"]:after,.panel-body h2[data-toggle="collapse"]:after,.panel-body h4[data-toggle="collapse"]:after{-webkit-transition:all 0.08s linear;transition:all 0.08s linear}.pf-animate-rotate.right,.modal-content h2.right[data-toggle="collapse"]:after,.modal-content h4.right[data-toggle="collapse"]:after,.panel-body h2.right[data-toggle="collapse"]:after,.panel-body h4.right[data-toggle="collapse"]:after{-webkit-transform:rotate(90deg);-ms-transform:rotate(90deg);transform:rotate(90deg)}.pf-animate-rotate.left,.modal-content h2.left[data-toggle="collapse"]:after,.modal-content h4.left[data-toggle="collapse"]:after,.panel-body h2.left[data-toggle="collapse"]:after,.panel-body h4.left[data-toggle="collapse"]:after{-webkit-transform:rotate(-90deg);-ms-transform:rotate(-90deg);transform:rotate(-90deg)}@keyframes rotateRainbow{0%{background-position-x:0}100%{background-position-x:100vw}}@font-face{font-family:'Triglavian';font-style:normal;font-weight:900;src:url("../../fonts/triglavian-regular.eot");src:url("../../fonts/triglavian-regular.eot?#iefix") format("embedded-opentype"),url("../../fonts/triglavian-regular.woff2") format("woff2"),url("../../fonts/triglavian-regular.woff") format("woff"),url("../../fonts/triglavian-regular.ttf") format("truetype");font-display:swap}.pf-triglivian{font-family:'Triglavian';font-weight:900}:fullscreen{overflow-y:scroll}body{-webkit-touch-callout:none;-webkit-user-select:none;-khtml-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;cursor:default}a,.pf-link{color:#477372;will-change:color;text-decoration:none;cursor:pointer;-webkit-transition:color 0.08s ease-out,background-color 0.08s ease-out;transition:color 0.08s ease-out,background-color 0.08s ease-out}a:hover,.pf-link:hover{color:#6caead;text-decoration:none}a:focus,.pf-link:focus{color:#477372}a.disabled,.pf-link.disabled{color:#777;pointer-events:none;cursor:default}em,.pf-font-italic{font-style:italic}em.pf-brand,.pf-font-italic.pf-brand{text-transform:uppercase}.pf-font-uppercase{text-transform:uppercase}.pf-font-capitalize{text-transform:capitalize}.pf-font-line-through{text-decoration:line-through}.fa-char:before{font-family:Arial, sans-serif;font-weight:bold;content:attr(data-char-content)}.fa-tree-child{color:#63676a;padding-right:5px}.no-scroll{overflow:hidden}.no-padding{padding:0 !important}.no-margin{margin:0}.pf-hidden-by-attr[data-attr='']{display:none}.pf-hidden-by-attr:not([data-attr='']){display:initial}.pf-hidden-by-attr:before{content:attr(data-attr) " " attr(data-attr-label)}.pf-shown-by-attr[data-attr='']{display:initial}.pf-shown-by-attr:not([data-attr='']){display:none}.pf-shown-by-attr:before{content:attr(data-attr) " " attr(data-attr-label)}::-webkit-scrollbar{display:none;width:16px;height:16px}::-webkit-scrollbar-track{background-color:#2b2b2b;border-left:1px solid #313335;border-radius:2px;-webkit-transition:background-color 0.5s;transition:background-color 0.5s}::-webkit-scrollbar-thumb{height:6px;border:5px solid transparent;background-clip:padding-box;-webkit-border-radius:8px;background-color:#868c90}::-webkit-scrollbar-thumb:hover{background-color:#a1a5a8}::-webkit-scrollbar-button{width:0;height:0;display:none}::-webkit-scrollbar-corner{background-color:transparent}::selection{background:#adadad;color:#1d1d1d}::-moz-selection{background:#adadad;color:#1d1d1d}.row--reverse{display:flex;flex-direction:column-reverse}.pf-container-flex-end{display:flex;justify-content:flex-end}.well.well-text-number{font-family:Oxygen, Arial, sans-serif;font-weight:bold;letter-spacing:.02em;line-height:16px;text-rendering:geometricPrecision;text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.collapse{will-change:height}.pf-help-default,.pf-help-light,.pf-help{cursor:help;pointer-events:auto;-webkit-transition:color 0.08s ease-out;transition:color 0.08s ease-out}.pf-dialog-icon-button,.pf-system-signature-module .pf-sig-table .fa-plus,.pf-system-route-module .pf-system-route-table td .fa-sync,.pf-system-route-module .pf-system-route-table td .fa-search,.pf-connection-info-module .pf-connection-info-table td .fa-plus{cursor:pointer;margin-top:2px;-webkit-transition:color 0.15s ease-out;transition:color 0.15s ease-out}.pf-dialog-icon-button:not(.collapsed),.pf-system-signature-module .pf-sig-table .fa-plus:not(.collapsed),.pf-system-route-module .pf-system-route-table td .fa-sync:not(.collapsed),.pf-system-route-module .pf-system-route-table td .fa-search:not(.collapsed),.pf-connection-info-module .pf-connection-info-table td .fa-plus:not(.collapsed),.pf-dialog-icon-button:hover,.pf-system-signature-module .pf-sig-table .fa-plus:hover,.pf-system-route-module .pf-system-route-table td .fa-sync:hover,.pf-system-route-module .pf-system-route-table td .fa-search:hover,.pf-connection-info-module .pf-connection-info-table td .fa-plus:hover{color:#e28a0d}.pf-module-icon-button{cursor:pointer;color:#63676a;-webkit-transition:color 0.15s ease-out;transition:color 0.15s ease-out}.pf-module-icon-button.fas,.pf-landing .pf-landing-list li>i.pf-module-icon-button{position:relative}.pf-module-icon-button:hover,.pf-module-icon-button.active{color:#e28a0d !important}.pf-module-icon-button.editable{border-bottom:none !important}.pf-module-icon-button[data-badge]:after{content:attr(data-badge);position:absolute;top:-8px;left:calc(100% - 5px);color:#e28a0d;border-radius:9px;padding:3px 4px;font-size:11px;font-weight:bold;line-height:1;vertical-align:baseline;white-space:nowrap;text-align:center;font-family:Oxygen, Arial, sans-serif}.pf-module-icon-button-copy{cursor:copy;-moz-user-select:text;user-select:text}.pf-bg-icon-inline,.editable-input .pf-editable-toggle .pf-editable-toggle-item,table td.pf-table-cell-bg-image .pf-table-cell-bg-image-wrapper,table th.pf-table-cell-bg-image .pf-table-cell-bg-image-wrapper{background-size:contain;background-origin:content-box;background-repeat:no-repeat;background-image:var(--bg-image);background-position:bottom 0 right 0;image-rendering:-webkit-optimize-contrast}.pf-bg-icon-inline{display:inline-block;width:20px;height:20px;margin:-5px 5px;outline:1px solid;outline-color:transparent;outline-offset:2px;-webkit-transition:outline-color 0.15s ease-out;transition:outline-color 0.15s ease-out}.pf-bg-icon-inline:hover{outline-color:#477372}.alert{will-change:opacity, transform}.editable-input optgroup[label]{background-color:#3c3f41;color:#63676a}.editable-input optgroup[label] option{background-color:#313335;color:#adadad;font-family:Consolas,monospace,Menlo,Monaco,"Courier New"}.editable-input .editable-checklist>div>label{display:block !important;padding-left:20px !important;color:#adadad}.editable-input .editable-checklist>div>label>span:after{top:-2px}.editable-input .editable-checklist.pf-editable-settings{display:grid;column-gap:15px;grid-template-columns:repeat(2, auto);align-items:end}.editable-input .editable-checklist.pf-editable-settings>.pf-editable-headline{grid-column:1}.editable-input .editable-checklist.pf-editable-settings>.pf-editable-headline:before{content:attr(data-headline);display:block;text-transform:capitalize;font-weight:bold;line-height:18px;margin-bottom:5px;margin-top:5px;color:#7c8184;padding-left:25px}.editable-input .editable-checklist.pf-editable-settings>.pf-editable-headline+.pf-editable-headline[data-count='1']{grid-column:2}.editable-input .editable-checklist .pf-editable-unknown[value='0']+span{color:#d9534f}.editable-input .editable-checklist .pf-editable-warn+span{color:#e28a0d}.editable-input .pf-editable-toggle{display:flex;margin-bottom:5px;justify-content:space-between;align-items:center}.editable-input .pf-editable-toggle .pf-editable-toggle-item{width:98px;height:68px;background-color:#7c8184;padding:3px;border-radius:4px;border:1px solid #313335;cursor:pointer;-webkit-transition:background-color 0.08s ease-out;transition:background-color 0.08s ease-out;will-change:background-color}.editable-input .pf-editable-toggle .pf-editable-toggle-item.active{background-color:#477372}.editable-input .pf-editable-toggle .pf-editable-toggle-item:hover{background-color:#568a89}.editable-input .pf-editable-toggle .pf-editable-toggle-item+.fas,.editable-input .pf-editable-toggle .pf-landing .pf-landing-list li>.pf-editable-toggle-item+i,.pf-landing .pf-landing-list .editable-input .pf-editable-toggle li>.pf-editable-toggle-item+i{margin:0 10px}select:active,select:hover{outline:none}select:active,select:hover{outline-color:red}.select2-results .select2-results__options--nested .select2-results__option{padding-left:10px}.select2-results [class*="col-"]{padding-left:3px;padding-right:3px}.select2-results [class*="col-"]:first-child{padding-left:0}.select2-results [class*="col-"]:last-child{padding-right:0}.select2-results .clearfix.pf-result-image [class*="col-"]{line-height:22px}.select2 ::-webkit-search-cancel-button{-webkit-appearance:none !important}.select2 .select2-selection__choice__remove{float:left}.select2 .select2-selection--multiple input{box-shadow:none !important}.dataTables_wrapper .dataTables_length select{margin:0 3px;padding:1px}.dataTables_wrapper .pf-table-toolbar-status{text-align:center;line-height:22px;color:#63676a}.dataTables_wrapper .dataTables_filter{margin-top:0}@media (max-width: 779px){.dataTables_wrapper .dataTables_filter input[type='search']{width:100px}}.dataTables_wrapper .dt-buttons,.dataTables_wrapper .dt-stats{display:inline-block}.dataTables_wrapper .dt-buttons .dt-button,.dataTables_wrapper .dt-stats .dt-button{padding:0 5px;line-height:22px;margin-bottom:0}.dataTables_wrapper .dt-buttons .dt-button:not(:last-child),.dataTables_wrapper .dt-stats .dt-button:not(:last-child){margin-right:5px}.dataTables_wrapper .dt-buttons .dt-button .fas,.dataTables_wrapper .dt-buttons .dt-button .pf-landing .pf-landing-list li>i,.pf-landing .pf-landing-list .dataTables_wrapper .dt-buttons .dt-button li>i,.dataTables_wrapper .dt-buttons .dt-stat .fas,.dataTables_wrapper .dt-buttons .dt-stat .pf-landing .pf-landing-list li>i,.pf-landing .pf-landing-list .dataTables_wrapper .dt-buttons .dt-stat li>i,.dataTables_wrapper .dt-stats .dt-button .fas,.dataTables_wrapper .dt-stats .dt-button .pf-landing .pf-landing-list li>i,.pf-landing .pf-landing-list .dataTables_wrapper .dt-stats .dt-button li>i,.dataTables_wrapper .dt-stats .dt-stat .fas,.dataTables_wrapper .dt-stats .dt-stat .pf-landing .pf-landing-list li>i,.pf-landing .pf-landing-list .dataTables_wrapper .dt-stats .dt-stat li>i{margin-right:5px}.dataTables_wrapper .dt-buttons .dt-button.disabled,.dataTables_wrapper .dt-buttons .dt-stat.disabled,.dataTables_wrapper .dt-stats .dt-button.disabled,.dataTables_wrapper .dt-stats .dt-stat.disabled{color:#4f5355}.dataTables_wrapper .dt-buttons .dt-button.processing:after,.dataTables_wrapper .dt-buttons .dt-stat.processing:after,.dataTables_wrapper .dt-stats .dt-button.processing:after,.dataTables_wrapper .dt-stats .dt-stat.processing:after{border:2px solid #4f5355;border-left-color:#e28a0d;border-right-color:#e28a0d}.pf-dataTable-condensed-toolbar{padding-top:3px}.pf-dataTable-condensed-toolbar .dataTables_info{padding-top:0;text-align:left}.pf-dataTable-condensed-toolbar .dataTables_paginate{padding-top:0;margin-top:0}.pf-dataTable-condensed-toolbar .dataTables_paginate .paginate_button{padding:0;height:13px;border:0 !important}.pf-dataTable-condensed-toolbar .dataTables_paginate .paginate_button:before,.pf-dataTable-condensed-toolbar .dataTables_paginate .paginate_button:after{top:0}.pf-dataTable-condensed-toolbar .dataTables_paginate .paginate_button:hover{background:transparent !important;color:#e28a0d !important}.pf-dataTable-condensed-toolbar .dt-buttons{text-align:right;margin-bottom:0;float:right !important}.pf-dataTable-condensed-toolbar .dt-buttons .dt-button{line-height:18px;padding-right:0}.pf-dataTable-condensed-toolbar .dt-buttons .dt-button .fa{margin-right:0}.dataTable th.pf-table-image-cell,.dataTable th.pf-table-image-small-cell,.dataTable th.pf-table-image-smaller-cell{padding-left:0 !important;padding-right:0 !important;image-rendering:-webkit-optimize-contrast}.dataTable th.sorting,.dataTable th.sorting_asc,.dataTable th.sorting_desc{padding-right:18px !important}.dataTable tr.group{background-color:rgba(43,43,43,0.4)}.dataTable td.editable-disabled:focus{outline:none;background-color:transparent}.dataTable td.editable-click:not(.editable-disabled){cursor:pointer}.dataTable td:focus,.dataTable td.editable-open,.dataTable td.cellHighlight{outline:1px solid #c2760c;outline-offset:-1px;background-color:rgba(194,118,12,0.08)}.dataTable td>.fa-circle{font-size:9px !important}.dataTable td>.label{font-size:80%}.dataTable td>.pf-fake-connection{height:3px}.dataTable td.pf-table-link-cell{cursor:pointer;-webkit-transition:color 0.08s ease-out;transition:color 0.08s ease-out}.dataTable td.pf-table-action-cell{cursor:pointer}.dataTable td.pf-table-action-cell>.fas{pointer-events:none}.dataTable td.pf-table-action-cell>.pf-table-action-icon-cell{-webkit-transition:color 0.08s ease-out;transition:color 0.08s ease-out}.dataTable td.pf-table-type-cell>span:first-child{display:inline-block;width:28px}.dataTable td.pf-table-type-cell>span:nth-child(2){display:inline-block;width:22px}.dataTable td.pf-table-type-cell>span:nth-child(2) kbd:empty{display:none}.dataTable td.pf-table-image-cell{padding:0 !important;image-rendering:-webkit-optimize-contrast}.dataTable td.pf-table-image-cell img{width:26px;box-sizing:content-box;border-left:1px solid #3c3f41;border-right:1px solid #3c3f41}.dataTable td.pf-table-image-small-cell img{width:24px;border-left:1px solid transparent;border-right:1px solid transparent}.dataTable td.pf-table-image-smaller-cell{padding:0 !important;border-right:1px solid transparent}.dataTable td.pf-table-image-smaller-cell img{width:23px}.dataTable td.pf-table-button-sm-cell{padding:0 5px}.dataTable td.pf-table-counter-cell{color:#63676a}.dataTable td.pf-table-counter-cell .pf-digit-counter-small{width:20px;display:inline-block;font-size:10px}.dataTable td.pf-table-counter-cell .pf-digit-counter-large{width:26px;display:inline-block;font-size:10px}.dataTable td .pf-table-unknown-cell{color:#d9534f;font-style:italic}.dataTable td .pf-table-cell-ellipsis{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.dataTable td .pf-table-cell-80{width:90px}.dataTable td .pf-table-cell-90{width:100px}.dataTable td .pf-table-cell-100{width:110px}.dataTable td .pf-endpoint-bubble{width:15px;height:15px}.dataTable td .pf-endpoint-bubble:after{width:15px;height:15px}.dataTable td.separator-right,.dataTable th.separator-right{border-right:1px solid #3c3f41}.dataTable td svg.peity,.dataTable th svg.peity{display:block}.dataTable thead th.colHighlight{border-bottom:1px solid #c2760c}.dataTable tbody td.colHighlight{border-left:1px solid #c2760c;border-right:1px solid #c2760c;background-color:rgba(194,118,12,0.08)}.dataTable tbody tr:first-child td.colHighlight{border-top:1px solid #c2760c}.dataTable tbody tr:last-child td.colHighlight{border-bottom:1px solid #c2760c}table.pf-table-fixed{width:100%;table-layout:fixed}table.collapsing{-webkit-transition:height 0.01s ease;transition:height 0.01s ease}table.collapse.in{display:table}table tr.collapsing{-webkit-transition:height 0.01s ease;transition:height 0.01s ease}table tr.collapse.in{display:table-row !important}table td.separator-right,table th.separator-right{border-right:1px solid #313335}table td.pf-table-cell-10,table th.pf-table-cell-10{width:10px}table td.pf-table-cell-20,table th.pf-table-cell-20{width:20px}table td.pf-table-cell-50,table th.pf-table-cell-50{width:50px}table td.pf-table-cell-100,table th.pf-table-cell-100{max-width:100px}table td.pf-table-cell-ellipses-auto,table th.pf-table-cell-ellipses-auto{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}table td.pf-table-cell-bg-image,table th.pf-table-cell-bg-image{padding:0 0 0 5px !important;vertical-align:middle !important;border-top-color:transparent !important}table td.pf-table-cell-bg-image .pf-table-cell-bg-image-wrapper,table th.pf-table-cell-bg-image .pf-table-cell-bg-image-wrapper{display:block;width:auto;height:40px;padding:2px 0}table td.pf-table-cell-bg-image .pf-table-cell-bg-image-wrapper.smaller,table th.pf-table-cell-bg-image .pf-table-cell-bg-image-wrapper.smaller{height:30px}table td.pf-table-cell-chart,table th.pf-table-cell-chart{position:relative}table td.pf-table-cell-chart svg.peity,table th.pf-table-cell-chart svg.peity{display:block;position:absolute;margin-top:-2px}table td.pf-table-cell-progress,table th.pf-table-cell-progress{position:relative}table td.pf-table-cell-progress:before,table th.pf-table-cell-progress:before{content:'';position:absolute;bottom:0;left:0;width:0;width:calc(var(--width) * 1%);height:1px;border-top:1px solid #428bca}table td.pf-table-cell-progress:after,table th.pf-table-cell-progress:after{content:'';position:absolute;bottom:0;left:0;width:100%;height:1px;border-width:0 2px;border-style:solid;border-color:#adadad}.pf-table-tools{height:45px}.pf-table-tools>.btn-labeled:not(:last-child){margin-right:10px}.pf-table-tools-action{will-change:height, opacity;opacity:0;display:none;height:0;overflow:hidden}.pf-loading-overlay{position:absolute;width:100%;height:100%;top:0;left:0;opacity:0;background:#2b2b2b;z-index:1060;-moz-border-radius:5px;-webkit-border-radius:5px;border-radius:5px}.pf-loading-overlay .pf-loading-overlay-wrapper{width:25px;height:25px;margin:auto;text-align:center;position:absolute;top:0;left:0;bottom:0;right:0}.pf-loading-overlay .pf-loading-overlay-wrapper i{padding:3px}.navbar-header-block{width:100%}.navbar-header-block .navbar-nav{width:100%}.modal .navbar-nav li:not(.disabled){position:relative}.modal .navbar-nav li:not(.disabled):before{content:'';position:absolute;top:0;background-color:#5cb85c;opacity:0;-webkit-transition:top 0.15s ease-out,opacity 0.15s ease-out;transition:top 0.15s ease-out,opacity 0.15s ease-out;will-change:opacity,top;width:100%;height:2px}.modal .navbar-nav li:not(.disabled):hover:before,.modal .navbar-nav li:not(.disabled).active:before{top:-4px;opacity:1}.navbar-fixed-top .navbar-nav li:not(.disabled){position:relative}.navbar-fixed-top .navbar-nav li:not(.disabled):before{content:'';position:absolute;bottom:0;background-color:#5cb85c;opacity:0;-webkit-transition:bottom 0.15s ease-out,opacity 0.15s ease-out;transition:bottom 0.15s ease-out,opacity 0.15s ease-out;will-change:opacity,bottom;width:100%;height:2px}.navbar-fixed-top .navbar-nav li:not(.disabled):hover:before,.navbar-fixed-top .navbar-nav li:not(.disabled).active:before{bottom:-4px;opacity:1}.pf-navbar-version-info{cursor:pointer}.pf-site{background-color:#05050a;background-repeat:no-repeat}.pf-menu{color:#63676a;background-color:#313335;width:150px;transition-duration:180ms;will-change:transform}.pf-menu-left .list-group-item{cursor:pointer;-webkit-box-shadow:inset -10px 0px 5px -5px rgba(0,0,0,0.4);box-shadow:inset -10px 0px 5px -5px rgba(0,0,0,0.4)}.pf-menu-right .list-group-item{cursor:pointer;-webkit-box-shadow:inset 10px 0px 5px -5px rgba(0,0,0,0.4);box-shadow:inset 10px 0px 5px -5px rgba(0,0,0,0.4)}.list-group-item.disabled:after{content:'\f023';font-family:'Font Awesome 5 Free';font-weight:bold;color:#2b2b2b;position:absolute;right:8px}.list-group-item.loading{pointer-events:none;color:#777}.list-group-item.loading:after{content:'\f021';font-family:'Font Awesome 5 Free';font-weight:bold;position:absolute;right:8px;animation:fa-spin 2s infinite linear}.mCSB_container,.mCSB_dragger{will-change:top, left, height, width;transition:height .18s linear, width .18s linear}.mCSB_container{overflow-x:visible !important;overflow-y:visible !important}.pf-timestamp-counter{visibility:hidden}.pf-map-type-private{color:#7986cb}.pf-map-type-corporation{color:#5cb85c}.pf-map-type-alliance{color:#428bca}.pf-map-type-global{color:#568a89}.pf-user-status{color:#a52521}.pf-user-status-corp{color:#5cb85c}.pf-user-status-ally{color:#428bca}.pf-user-status-own{color:#7986cb}.pf-endpoint-bubble{display:inline-block;position:relative;width:18px;height:18px}.pf-endpoint-bubble:after{content:url("../../img/bubble.svg");display:inline-block;pointer-events:none;width:18px;height:18px;vertical-align:top}.pf-system-effect{display:none;color:#adadad;cursor:help}.pf-system-effect-magnetar{color:#e06fdf;display:inline-block}.pf-system-effect-redgiant{color:#d9534f;display:inline-block}.pf-system-effect-pulsar{color:#428bca;display:inline-block}.pf-system-effect-wolfrayet{color:#e28a0d;display:inline-block}.pf-system-effect-cataclysmic{color:#ffb;display:inline-block}.pf-system-effect-blackhole{color:#000;display:inline-block}.pf-rally,.pf-system-info-rally .pf-system-head{text-shadow:1px 1px 2px #1d1d1d;background-color:#782d77;background-image:url('data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgiPz4gPHN2ZyB2ZXJzaW9uPSIxLjEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PGRlZnM+PGxpbmVhckdyYWRpZW50IGlkPSJncmFkIiBncmFkaWVudFVuaXRzPSJvYmplY3RCb3VuZGluZ0JveCIgeDE9IjEuMCIgeTE9IjEuMCIgeDI9IjAuMCIgeTI9IjAuMCI+PHN0b3Agb2Zmc2V0PSIyNSUiIHN0b3AtY29sb3I9IiMzZTI2NGUiLz48c3RvcCBvZmZzZXQ9IjI1JSIgc3RvcC1jb2xvcj0iIzAwMDAwMCIgc3RvcC1vcGFjaXR5PSIwLjAiLz48c3RvcCBvZmZzZXQ9IjUwJSIgc3RvcC1jb2xvcj0iIzAwMDAwMCIgc3RvcC1vcGFjaXR5PSIwLjAiLz48c3RvcCBvZmZzZXQ9IjUwJSIgc3RvcC1jb2xvcj0iIzNlMjY0ZSIvPjxzdG9wIG9mZnNldD0iNzUlIiBzdG9wLWNvbG9yPSIjM2UyNjRlIi8+PHN0b3Agb2Zmc2V0PSI3NSUiIHN0b3AtY29sb3I9IiMwMDAwMDAiIHN0b3Atb3BhY2l0eT0iMC4wIi8+PHN0b3Agb2Zmc2V0PSIxMDAlIiBzdG9wLWNvbG9yPSIjMDAwMDAwIiBzdG9wLW9wYWNpdHk9IjAuMCIvPjwvbGluZWFyR3JhZGllbnQ+PC9kZWZzPjxyZWN0IHg9IjAiIHk9IjAiIHdpZHRoPSIxMDAlIiBoZWlnaHQ9IjEwMCUiIGZpbGw9InVybCgjZ3JhZCkiIC8+PC9zdmc+IA==');background-size:100%;background-image:-moz-linear-gradient(135deg, #3e264e 25%,rgba(0,0,0,0) 25%,rgba(0,0,0,0) 50%,#3e264e 50%,#3e264e 75%,rgba(0,0,0,0) 75%,rgba(0,0,0,0));background-image:-webkit-linear-gradient(135deg, #3e264e 25%,rgba(0,0,0,0) 25%,rgba(0,0,0,0) 50%,#3e264e 50%,#3e264e 75%,rgba(0,0,0,0) 75%,rgba(0,0,0,0));background-image:linear-gradient(-45deg, #3e264e 25%,rgba(0,0,0,0) 25%,rgba(0,0,0,0) 50%,#3e264e 50%,#3e264e 75%,rgba(0,0,0,0) 75%,rgba(0,0,0,0));background-size:25px 25px;-webkit-animation:move 2.5s linear infinite;-moz-animation:move 2.5s linear infinite;-ms-animation:move 2.5s linear infinite;animation:move 2.5s linear infinite}.pf-system-security-0-0{color:#be0000}.pf-system-security-0-1{color:#ab2600}.pf-system-security-0-2{color:#be3900}.pf-system-security-0-3{color:#c24e02}.pf-system-security-0-4{color:#ab5f00}.pf-system-security-0-5{color:#bebe00}.pf-system-security-0-6{color:#73bf26}.pf-system-security-0-7{color:#00bf00}.pf-system-security-0-8{color:#00bf39}.pf-system-security-0-9{color:#39bf99}.pf-system-security-1-0{color:#28c0bf}.pf-system-sec{display:inline-block;transform:translateY(0);-webkit-font-smoothing:antialiased;margin-right:5px;cursor:-moz-grab;cursor:-webkit-grab;cursor:grab}.pf-system-sec-highSec{color:#5cb85c}.pf-system-sec-lowSec{color:#e28a0d}.pf-system-sec-nullSec{color:#d9534f}.pf-system-sec-high{color:#d9534f}.pf-system-sec-mid{color:#e28a0d}.pf-system-sec-low{color:#428bca}.pf-system-sec-unknown{color:#7986cb}.pf-system-sec-abyssal{color:#e06fdf}.pf-system-sec-special{color:#c8b847}.pf-system-sec-drifter{color:#44aa82}.pf-system-status-friendly{border-color:#428bca !important;color:#428bca}.pf-system-status-occupied{border-color:#e28a0d !important;color:#e28a0d}.pf-system-status-hostile{border-color:#d9534f !important;color:#d9534f}.pf-system-status-empty{border-color:#5cb85c !important;color:#5cb85c}.pf-system-status-unscanned{border-color:#568a89 !important;color:#568a89}.pf-system-info-status-label{background-color:#63676a;color:#000;will-change:background-color;-webkit-transition:background-color 0.3s ease-out;transition:background-color 0.3s ease-out}.pf-system-info-status-label.pf-system-status-friendly{background-color:#428bca}.pf-system-info-status-label.pf-system-status-occupied{background-color:#e28a0d}.pf-system-info-status-label.pf-system-status-hostile{background-color:#d9534f}.pf-system-info-status-label.pf-system-status-empty{background-color:#5cb85c}.pf-system-info-status-label.pf-system-status-unscanned{background-color:#568a89}.pf-system-hidden{opacity:0.15 !important;pointer-events:none}.pf-system-effect-dialog .clearfix+.col-md-6{margin-top:10px}.pf-system-effect-dialog .clearfix+.col-md-6+.col-md-6{margin-top:10px}.pf-planet-barren{color:#755e48}.pf-planet-gas{color:#a4b2b2}.pf-planet-ice{color:#aacada}.pf-planet-lava{color:#891c08}.pf-planet-oceanic{color:#4d7999}.pf-planet-plasma{color:#28576e}.pf-planet-shattered{color:#7986cb}.pf-planet-storm{color:#38556a}.pf-planet-temperate{color:#4c593c}.pf-fake-connection{box-sizing:content-box;display:inline-block;width:70px;height:4px;max-width:100%;border-top:2px solid #63676a;border-bottom:2px solid #63676a;background-color:#3c3f41;position:relative;font-size:10px;font-family:"Oxygen","Helvetica Neue",Helvetica,Arial,sans-serif}.pf-fake-connection.pf-map-connection-stargate{background-color:#313966;border-color:#63676a}.pf-fake-connection.pf-map-connection-jumpbridge{background-color:#6caead;border-color:#3c3f41;background:repeating-linear-gradient(to right, #6caead, #6caead 10px, #3c3f41 10px, #3c3f41 20px)}.pf-fake-connection.pf-map-connection-abyssal{background-color:#5a225a;border-color:#3c3f41;background:repeating-linear-gradient(to right, #5a225a, #5a225a 5px, #3c3f41 5px, #3c3f41 10px)}.pf-fake-connection.pf-map-connection-wh-eol{border-color:#d747d6}.pf-fake-connection.pf-map-connection-wh-reduced{background-color:#e28a0d}.pf-fake-connection.pf-map-connection-wh-critical{background-color:#a52521}.pf-fake-connection.pf-map-connection-wh-size-s:after,.pf-fake-connection.pf-map-connection-wh-size-m:after,.pf-fake-connection.pf-map-connection-wh-size-l:after,.pf-fake-connection.pf-map-connection-wh-size-xl:after,.pf-fake-connection.pf-map-connection-preserve-mass:after{content:'?';background-color:#3c3f41;color:#adadad;padding:1px 2px;position:absolute;left:calc(50% - 12px);top:-5px;font-family:Arial, sans-serif;font-size:11px;line-height:12px;min-width:14px;text-align:center;-moz-border-radius:3px;-webkit-border-radius:3px;border-radius:3px;-webkit-box-shadow:0 3px 6px rgba(0,0,0,0.3);box-shadow:0 3px 6px rgba(0,0,0,0.3)}.pf-fake-connection.pf-map-connection-wh-size-s{border-style:dotted}.pf-fake-connection.pf-map-connection-wh-size-s:after{content:'S'}.pf-fake-connection.pf-map-connection-wh-size-m{border-style:dashed}.pf-fake-connection.pf-map-connection-wh-size-m:after{content:'M'}.pf-fake-connection.pf-map-connection-wh-size-l:after{content:'L'}.pf-fake-connection.pf-map-connection-wh-size-xl:after{content:'XL'}.pf-fake-connection.pf-map-connection-preserve-mass:after{content:'save mass';background-color:#a52521;color:#eaeaea;left:calc(50% - 28px)}.pf-fake-connection-text{padding:0 2px;border-style:solid;border-color:#575a5d;border-width:2px;border-left:none;border-right:none}.pf-fake-connection-text.pf-wh-eol{border-color:#d747d6}.pf-fake-connection-text.pf-wh-reduced{background-color:#e28a0d;color:#000}.pf-fake-connection-text.pf-wh-critical{background-color:#a52521;color:#000}.pf-fake-connection-text.pf-wh-frig{border-top-style:dotted;border-bottom-style:dotted}.pf-structure-status-unknown{color:#568a89}.pf-structure-status-online{color:#5cb85c}.pf-structure-status-offline{color:#a52521}.tooltip-inner{color:#adadad;background-color:#3c3f41;font-family:"Oxygen Bold","Helvetica Neue",Helvetica,Arial,sans-serif;padding:5px 5px;-moz-border-radius:3px;-webkit-border-radius:3px;border-radius:3px;-webkit-box-shadow:0 6px 12px rgba(0,0,0,0.4);box-shadow:0 6px 12px rgba(0,0,0,0.4)}.modal .tooltip{z-index:1060}.modal .tooltip .tooltip-inner{color:#313335;background-color:#adadad}.tooltip.top .tooltip-arrow{border-top-color:#63676a}.tooltip.right .tooltip-arrow{border-right-color:#63676a}.tooltip.bottom .tooltip-arrow{border-bottom-color:#63676a}.tooltip.left .tooltip-arrow{border-left-color:#63676a}td.pf-popover-trigger:hover{color:#477372}.pf-notransition{-webkit-transition:none !important;-moz-transition:none !important;-o-transition:none !important;transition:none !important}.pf-dynamic-area{padding:10px;min-height:100px;position:relative;background-color:#313335;overflow:hidden;-moz-border-radius:5px;-webkit-border-radius:5px;border-radius:5px}.pf-dynamic-area .dl-horizontal{margin-bottom:0}.pf-dynamic-area .dl-horizontal dd{min-width:100px}.pf-dynamic-area .dl-horizontal dd.txt-color,.pf-dynamic-area .dl-horizontal dd.pf-help-light,.pf-dynamic-area .dl-horizontal dd.pf-help,.pf-dynamic-area .dl-horizontal .dataTable td.pf-table-action-cell>dd.pf-table-action-icon-cell,.dataTable .pf-dynamic-area .dl-horizontal td.pf-table-action-cell>dd.pf-table-action-icon-cell{font-weight:bold}.pf-dynamic-area>[class~='alert']:last-of-type{margin-bottom:0}.pf-dynamic-area[data-resizebar]{padding-bottom:15px}.pf-dynamic-area[data-resizebar]:hover .pf-resizearea{-webkit-transition-delay:.15s;transition-delay:.15s;height:40px;opacity:1}.pf-dynamic-area[data-resizebar]:hover .pf-resizebar-bar{border-top:1px solid #e28a0d !important}.pf-dynamic-area:not([data-resizebar]) .pf-dynamic-area-resizebar{display:none}.pf-dynamic-area .pf-resizearea{height:0;opacity:0;-webkit-transition:height 0.12s ease-out,opacity 0.12s ease-out;transition:height 0.12s ease-out,opacity 0.12s ease-out;will-change:height, opacity}.pf-dynamic-area .pf-dynamic-area-statusbar{position:absolute;left:0;bottom:0;width:100%;background-color:#313335;padding:1px 0}.pf-dynamic-area .pf-dynamic-area-statusbar .pf-dynamic-area-resizebar{width:100%;height:9px;padding-top:1px;cursor:row-resize}.pf-dynamic-area .pf-dynamic-area-statusbar .pf-dynamic-area-resizebar:hover .pf-resizebar-bar{border-top:1px solid #e28a0d}.pf-dynamic-area .pf-dynamic-area-statusbar .pf-dynamic-area-resizebar .pf-resizebar-bar{border-top:1px solid #63676a;transition:border-top 0.15s ease-out;width:20px;margin:1px auto}.pf-code-ObjectBrace{color:#b042ae;font-weight:bold}.pf-code-ArrayBrace{color:#6caead;font-weight:bold}.pf-code-PropertyName{color:#898d91;font-weight:bold}.pf-code-String{color:#e28a0d}.pf-code-Number{color:#5cb85c}.pf-code-Boolean{color:#7986cb;font-weight:bold}.pf-code-Function{color:#898d91;font-style:italic;white-space:pre}.pf-code-Null{color:#d9534f;font-weight:bold}.pf-code-Comma{color:#898d91;font-weight:bold}.pf-code-Date{color:#898d91;font-style:italic}pre .fa-ul{display:flex;flex-direction:column;margin-left:15px}pre>ul{margin-top:10px}code .fas,code .pf-landing .pf-landing-list li>i,.pf-landing .pf-landing-list code li>i,code .far,code .fab{color:#63676a;cursor:pointer;margin:0 3px}code section{border-radius:5px}code section:not(:last-child){border-bottom:1px dashed #3c3f41;padding-bottom:5px}.pf-logo-wrapper{display:block}#pf-head{margin-bottom:0px}#pf-head a{-webkit-transition:color 0.15s ease-out;transition:color 0.15s ease-out;will-change:color}#pf-head a:focus{color:#477372}#pf-head a:focus img{border-color:#3c3f41}#pf-head a:hover{text-decoration:none}#pf-head a:hover .badge{color:#6caead}#pf-head a:hover img{border-color:#568a89}#pf-head i{margin-right:2px}#pf-head .pf-brand-desc{margin:6px 10px 0 90px;width:180px}#pf-head .pf-head-menu{padding:3px 10px;line-height:24px}#pf-head .pf-head-menu .pf-head-menu-logo{width:24px;height:24px;display:inline-block;float:left}#pf-head .pf-head-user-character{opacity:0;visibility:hidden}#pf-head .pf-head-active-users{cursor:pointer}#pf-head .pf-head-active-users{display:none}#pf-head .pf-head-active-users .badge{-webkit-transition:color 0.3s ease-out;transition:color 0.3s ease-out}#pf-head .pf-head-image{display:inline-block;margin-top:-6px;margin-bottom:-6px;width:27px;border:1px solid #3c3f41;image-rendering:-webkit-optimize-contrast;-webkit-transition:border-color 0.15s ease-out;transition:border-color 0.15s ease-out;will-change:border-color}#pf-head .pf-head-image.--left{margin-right:3px}#pf-head .pf-head-image.--right{margin-left:8px}#pf-head .pf-head-program-status{cursor:pointer}#pf-head .pf-head-map-tracking{margin-bottom:4px;margin-top:4px}#pf-head .tooltip .tooltip-inner{color:#adadad}.pf-head{-webkit-box-shadow:0 6px 12px rgba(0,0,0,0.4);box-shadow:0 6px 12px rgba(0,0,0,0.4)}.pf-head .badge{background-color:#3c3f41;color:#adadad}.pf-head .badge:empty{display:none}.pf-head small{font-family:"Oxygen Bold","Helvetica Neue",Helvetica,Arial,sans-serif}#pf-footer{display:flex;position:absolute;bottom:0;left:0;width:100%;margin:0;background:rgba(60,63,65,0.3);padding:1px 0}#pf-footer a{font-family:"Oxygen Bold","Helvetica Neue",Helvetica,Arial,sans-serif;color:#375959}#pf-footer a:hover{color:#477372;text-decoration:none}#pf-footer .pf-footer-left{display:flex;flex:none;justify-content:flex-start}#pf-footer .pf-footer-center{display:flex;flex:1;padding:0 20px}#pf-footer .pf-footer-right{display:flex;flex:none;justify-content:flex-end}.navbar-fixed-bottom{padding:2px 0}.navbar-fixed-bottom .container-fluid{padding-left:0;padding-right:0}.flex-row{display:flex;flex:0 1 auto;flex-direction:row;flex-wrap:wrap}.flex-col{flex:0 0 auto}.flex-grow{flex-grow:1;flex-basis:0;max-width:100%}.flex-between{justify-content:space-between}#pf-global-info{width:100%;margin-bottom:0;border:none;padding:9px 10px}#pf-global-info .ui-pnotify-title{margin-bottom:0}.panel-reverse-order{display:table;width:100%}.panel-reverse-order .reverse-order-header{display:table-header-group}.panel-reverse-order .reverse-order-footer{display:table-footer-group}@-webkit-keyframes move{0%{background-position:0 0}100%{background-position:50px 50px}}@-moz-keyframes move{0%{background-position:0 0}100%{background-position:50px 50px}}@-ms-keyframes move{0%{background-position:0 0}100%{background-position:50px 50px}}@keyframes move{0%{background-position:0 0}100%{background-position:50px 50px}}.pf-animate{visibility:hidden;opacity:0}.pf-color-line{position:fixed;top:0;left:0;width:100%;height:3px;background:repeating-linear-gradient(-45deg, #66c84f 0%, #568a89 12.5%, #6caead 25%, #5cb85c 37.5%, #66c84f 50%);background-size:100vw 100vw;-webkit-animation:rotateRainbow 3s infinite linear forwards;animation:rotateRainbow 3s infinite linear forwards}.pf-color-line.warning{background-image:url('data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgiPz4gPHN2ZyB2ZXJzaW9uPSIxLjEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PGRlZnM+PGxpbmVhckdyYWRpZW50IGlkPSJncmFkIiBncmFkaWVudFVuaXRzPSJvYmplY3RCb3VuZGluZ0JveCIgeDE9IjAuMCIgeTE9IjAuNSIgeDI9IjEuMCIgeTI9IjAuNSI+PHN0b3Agb2Zmc2V0PSIwJSIgc3RvcC1jb2xvcj0iI2UyOGEwZCIvPjxzdG9wIG9mZnNldD0iMTAwJSIgc3RvcC1jb2xvcj0iI2UyOGEwZCIvPjwvbGluZWFyR3JhZGllbnQ+PC9kZWZzPjxyZWN0IHg9IjAiIHk9IjAiIHdpZHRoPSIxMDAlIiBoZWlnaHQ9IjEwMCUiIGZpbGw9InVybCgjZ3JhZCkiIC8+PC9zdmc+IA==');background-size:100%;background-image:-webkit-gradient(linear, 0% 50%, 100% 50%, color-stop(0%, #e28a0d),color-stop(100%, #e28a0d));background-image:-moz-linear-gradient(left, #e28a0d,#e28a0d 100%);background-image:-webkit-linear-gradient(left, #e28a0d,#e28a0d 100%);background-image:linear-gradient(to right, #e28a0d,#e28a0d 100%)}.pf-color-line.danger{background-image:url('data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgiPz4gPHN2ZyB2ZXJzaW9uPSIxLjEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PGRlZnM+PGxpbmVhckdyYWRpZW50IGlkPSJncmFkIiBncmFkaWVudFVuaXRzPSJvYmplY3RCb3VuZGluZ0JveCIgeDE9IjAuMCIgeTE9IjAuNSIgeDI9IjEuMCIgeTI9IjAuNSI+PHN0b3Agb2Zmc2V0PSIwJSIgc3RvcC1jb2xvcj0iI2E1MjUyMSIvPjxzdG9wIG9mZnNldD0iMTAwJSIgc3RvcC1jb2xvcj0iI2E1MjUyMSIvPjwvbGluZWFyR3JhZGllbnQ+PC9kZWZzPjxyZWN0IHg9IjAiIHk9IjAiIHdpZHRoPSIxMDAlIiBoZWlnaHQ9IjEwMCUiIGZpbGw9InVybCgjZ3JhZCkiIC8+PC9zdmc+IA==');background-size:100%;background-image:-webkit-gradient(linear, 0% 50%, 100% 50%, color-stop(0%, #a52521),color-stop(100%, #a52521));background-image:-moz-linear-gradient(left, #a52521,#a52521 100%);background-image:-webkit-linear-gradient(left, #a52521,#a52521 100%);background-image:linear-gradient(to right, #a52521,#a52521 100%)}.pf-splash{position:fixed;z-index:2000;background-color:#1d1d1d;color:#63676a;top:0;bottom:0;left:0;right:0;will-change:opacity}.pf-splash:not(.pf-splash-warning):not(.pf-splash-error){cursor:wait}.pf-splash .pf-splash-title{position:fixed;left:50%;top:30%;text-align:center;max-width:500px;padding:20px;-moz-transform:translate(-50%, -50%);-ms-transform:translate(-50%, -50%);-webkit-transform:translate(-50%, -50%);transform:translate(-50%, -50%)}.pf-splash .pf-splash-debug{position:absolute;bottom:0;width:100%}.pf-splash .pf-splash-debug .pf-splash-debug-headline{padding:0 10px}.pf-splash .pf-splash-debug .pf-splash-pre{margin-bottom:0}@media (max-width: 1200px){.pf-landing #pf-logo-container{margin:5px auto}.pf-landing .pf-brand-desc{display:none}.pf-landing .navbar .navbar-brand{margin-left:10px}}.pf-landing section:not(:last-of-type){border-bottom:1px solid #2b2b2b}.pf-landing section{min-height:200px;padding:20px 0 40px 0}.pf-landing section h4:not(.pf-dynamic-area){font-size:18px;font-family:"Oxygen","Helvetica Neue",Helvetica,Arial,sans-serif;margin:5px 0 10px 0;border-bottom:1px solid #2b2b2b;line-height:34px}.pf-landing .container>.row{margin-bottom:30px}.pf-landing .alert{box-shadow:0 4px 10px rgba(0,0,0,0.4)}.pf-landing a[data-gallery]{position:relative;display:inline-block;overflow:hidden;margin:5px 0 15px 0;box-shadow:0 4px 10px rgba(0,0,0,0.4)}.pf-landing a[data-gallery]:before{content:'\f06e';font-family:'Font Awesome 5 Free';font-size:20px;color:#e28a0d;position:absolute;height:100%;width:100%;z-index:10;-webkit-transition:transform 0.1s ease-out,opacity 0.1s ease-out;transition:transform 0.1s ease-out,opacity 0.1s ease-out;will-change:transform, opacity;transform:scale(1.3, 1.3);opacity:0;display:flex;flex-direction:column;justify-content:center;align-items:center}.pf-landing a[data-gallery]:hover img{border-color:#6caead;-webkit-filter:brightness(50%);filter:brightness(50%)}.pf-landing a[data-gallery]:hover:before{-webkit-transition-delay:.05s;transition-delay:.05s;transform:scale(1, 1);opacity:1}.pf-landing a[data-gallery] .pf-landing-image-preview{border-width:1px;border-style:solid;border-color:#1d1d1d;display:inline-block;will-change:all;-webkit-filter:brightness(100%);filter:brightness(100%);-webkit-transition:all 0.2s ease-out;transition:all 0.2s ease-out}.pf-landing a[data-gallery] .pf-landing-image-preview.pf-landing-image-preview-small{height:160px}.pf-landing a[data-gallery] .pf-landing-image-preview.pf-landing-image-preview-medium{height:256px}#pf-landing-top{height:355px;border-bottom:1px solid #313335;position:relative}#pf-landing-top:before{content:'';width:100%;height:100%;position:absolute;background:url("../../img/pf-bg.jpg") #05050a;background-repeat:no-repeat;background-position:0 0;-webkit-filter:brightness(.9);filter:brightness(.9)}#pf-landing-top #pf-logo-container{-moz-transform:scale3d(0.8, 0.8, 1);-ms-transform:scale3d(0.8, 0.8, 1);-webkit-transform:scale3d(0.8, 0.8, 1);transform:scale3d(0.8, 0.8, 1)}#pf-landing-top #pf-header-container{position:absolute;width:100%;background-position:center center}#pf-landing-top #pf-header-container #pf-header-canvas{position:absolute;visibility:hidden;top:0;left:0}#pf-landing-top #pf-header-container #pf-logo-container{z-index:110}#pf-landing-top #pf-header-container #pf-header-preview-container{position:absolute;left:400px;width:590px;height:350px;top:37px}#pf-landing-top #pf-header-container #pf-header-preview-container .pf-header-preview-element{position:relative;margin-left:12px;margin-top:12px;height:155px;width:180px;padding:7px;opacity:0;-moz-border-radius:5px;-webkit-border-radius:5px;border-radius:5px;background-color:rgba(43,43,43,0.5)}#pf-landing-top #pf-header-container #pf-header-preview-container .pf-header-preview-element:nth-child(n+4){box-shadow:0 4px 10px rgba(0,0,0,0.4)}#pf-landing-top #pf-header-container #pf-header-preview-container .pf-header-preview-element:after{content:'';position:absolute;width:calc(100% - 14px);height:calc(100% - 14px);-moz-border-radius:3px;-webkit-border-radius:3px;border-radius:3px;background-repeat:no-repeat;background-position:50% 50%;background-color:rgba(29,29,29,0.75)}#pf-landing-top .container{position:relative;margin-top:10px}#pf-header-preview-intel:after{background-image:url("../../img/landing/intel.png")}#pf-header-preview-map:after{background-image:url("../../img/landing/map.png")}#pf-header-preview-scope:after{background-image:url("../../img/landing/scope.png")}#pf-header-preview-signature:after{background-image:url("../../img/landing/signature.png")}#pf-header-preview-data:after{background-image:url("../../img/landing/data.png")}#pf-header-preview-gameplay:after{background-image:url("../../img/landing/gameplay.png")}#pf-landing-login{padding-top:40px;padding-bottom:30px}@media (max-width: 1199px){#pf-landing-login{padding-top:10px}}#pf-landing-login .row{margin-bottom:0}#pf-landing-login .pf-character-selection>div:not(.pf-character-row-animate){-webkit-transition:width 0.2s ease,margin 0.2s ease;transition:width 0.2s ease,margin 0.2s ease}#pf-landing-login .pf-dynamic-area{display:inline-block;margin:10px 5px 20px 5px;padding:10px 10px 5px 10px;min-width:155px;min-height:184px;-moz-border-radius:10px;-webkit-border-radius:10px;border-radius:10px;-webkit-box-shadow:0 4px 10px rgba(0,0,0,0.4);box-shadow:0 4px 10px rgba(0,0,0,0.4)}#pf-landing-login .pf-dynamic-area .ribbon-wrapper{z-index:5}#pf-landing-login .pf-dynamic-area .pf-character-image-wrapper{opacity:0;width:128px;border:2px solid #63676a;-moz-border-radius:8px;-webkit-border-radius:8px;border-radius:8px;-webkit-transition:border-color 0.2s ease-out,box-shadow 0.2s ease-out;transition:border-color 0.2s ease-out,box-shadow 0.2s ease-out;-moz-transform:translate3d(0, 0, 0);-ms-transform:translate3d(0, 0, 0);-webkit-transform:translate3d(0, 0, 0);transform:translate3d(0, 0, 0);will-change:border-color, transition;overflow:hidden;cursor:pointer;display:inline-block;background-color:#2b2b2b;box-sizing:content-box}#pf-landing-login .pf-dynamic-area .pf-character-image-wrapper:hover{border-color:#4f9e4f}#pf-landing-login .pf-dynamic-area .pf-character-image-wrapper:hover .pf-character-name{color:#4f9e4f}#pf-landing-login .pf-dynamic-area .pf-character-image-wrapper:hover .pf-character-image{-webkit-filter:grayscale(50%);filter:grayscale(50%)}#pf-landing-login .pf-dynamic-area .pf-character-image-wrapper.pf-character-active:after{font-family:"Font Awesome 5 Free";content:"\f111";font-weight:bold;position:absolute;top:5px;left:5px;height:14px;width:14px;color:#5cb85c;font-size:10px}#pf-landing-login .pf-dynamic-area .pf-character-image-wrapper .pf-character-select-image{overflow:hidden;width:128px;height:128px;position:relative}#pf-landing-login .pf-dynamic-area .pf-character-image-wrapper .pf-character-select-image .pf-character-info{position:absolute;top:0;left:0;width:0;height:100%;color:#adadad;background:rgba(60,63,65,0.8);overflow:hidden;will-change:width, transition;padding:5px 0}#pf-landing-login .pf-dynamic-area .pf-character-image-wrapper .pf-character-select-image .pf-character-info .pf-character-info-img{width:36px}#pf-landing-login .pf-dynamic-area .pf-character-image-wrapper .pf-character-select-image .pf-character-info .pf-character-info-text{line-height:25px}#pf-landing-login .pf-dynamic-area .pf-character-image-wrapper .pf-character-name{font-size:13px;line-height:30px;border-top:1px solid #313335;color:#adadad;-webkit-transition:color 0.2s ease-out;transition:color 0.2s ease-out}#pf-landing-login .pf-dynamic-area .pf-character-image-wrapper .pf-character-image{border-top-left-radius:8px;border-top-right-radius:8px;-webkit-transition:all 0.3s ease-out;transition:all 0.3s ease-out;-webkit-filter:grayscale(0%);filter:grayscale(0%)}#pf-landing-login .pf-sso-login-button{position:relative;display:inline-block;width:270px;height:45px;border:none;margin-bottom:10px;background-color:transparent;background-image:url("../../img/landing/eve_sso_login_buttons_large_black_hover.png");cursor:pointer;box-shadow:0 2px 5px rgba(0,0,0,0.2)}#pf-landing-login .pf-sso-login-button:before{content:' ';position:absolute;top:0;right:0;bottom:0;left:0;box-shadow:0 4px 5px rgba(0,0,0,0.2);opacity:0;-webkit-transition:opacity 0.12s ease-in-out;transition:opacity 0.12s ease-in-out;will-change:opacity}#pf-landing-login .pf-sso-login-button:after{content:' ';position:absolute;width:270px;height:45px;left:0;top:0;background-image:url("../../img/landing/eve_sso_login_buttons_large_black.png");-webkit-transition:opacity 0.12s ease-in-out;transition:opacity 0.12s ease-in-out;will-change:opacity}#pf-landing-login .pf-sso-login-button:hover:before{opacity:1}#pf-landing-login .pf-sso-login-button:hover:after{opacity:0}#pf-landing-login .pf-sso-login-button.disabled{pointer-events:auto}#pf-landing-login #pf-notification-panel{display:none}#pf-header-map{position:relative;margin:0 auto;height:380px;width:600px;pointer-events:none}#pf-header-map .pf-header-svg-layer{position:absolute;top:0;left:0;right:0;bottom:0}#pf-header-map #pf-header-systems{z-index:100}#pf-header-map #pf-header-connectors{z-index:90}#pf-header-map #pf-header-connections{z-index:80}#pf-header-map #pf-header-background{z-index:70}#pf-header-map #pf-header-background .pf-header-system{display:none}#pf-header-map-bg{position:absolute;left:0;top:0;width:100%;height:100%;pointer-events:none}#pf-header-map-bg img{pointer-events:none}#pf-header-map-bg #pf-map-bg-image{opacity:0;position:absolute;bottom:0;right:0;width:100%;height:100%}#pf-header-map-bg #pf-map-neocom{opacity:0;height:665px;width:21px}#pf-header-map-bg #pf-map-browser{opacity:0;position:absolute;top:110px;left:21px;height:560px;width:515px}#pf-landing-gallery-carousel{background-image:url("../../img/pf-header-bg.jpg")}#pf-landing-gallery-carousel .slide-content{border-radius:5px;pointer-events:none}#pf-landing-gallery-carousel h3{width:100%;text-align:left}.pf-landing-pricing-panel{margin-top:20px}.pricing-big{position:relative;-webkit-box-shadow:0 4px 10px rgba(0,0,0,0.4);box-shadow:0 4px 10px rgba(0,0,0,0.4)}.pricing-big .panel-heading{border-color:#3c3f41}.pricing-big .the-price{padding:1px 0;background:#2d3031;text-align:center}.pricing-big .the-price .subscript{font-size:12px;color:#63676a}.pricing-big .price-features{background:#3c3f41;color:#adadad;padding:20px 15px;line-height:22px}.pricing-big .price-features:not(.price-features-fluid){min-height:205px}.pricing-big .price-features .list-unstyled.text-left li,.pricing-big .price-features .text-left.list-inline li{text-indent:-1em;padding-left:1.5em}.pricing-big .price-features .list-unstyled.text-left li .fa,.pricing-big .price-features .text-left.list-inline li .fa{text-indent:0}.pricing-big .badge{color:#adadad;background-color:#2b2b2b}.pricing-big table tr td{line-height:1}.pricing-big table tr td .btn-group .btn{border-radius:0;padding-top:4px;padding-bottom:4px}#pf-landing-admin .pf-landing-admin-login{margin-bottom:0}#pf-landing-about .pf-landing-about-me{width:256px;height:256px;border:none;-webkit-box-shadow:0 4px 10px rgba(0,0,0,0.4);box-shadow:0 4px 10px rgba(0,0,0,0.4)}.pf-landing-footer{padding:30px 0;font-family:"Oxygen Bold","Helvetica Neue",Helvetica,Arial,sans-serif;background-color:#171717}.pf-landing-footer .row{margin-bottom:0 !important}.pf-landing-footer .pf-social-networks>li{display:inline-block;line-height:1}.pf-landing-footer .pf-social-networks>li a{display:inline-block;background:rgba(99,103,106,0.5);line-height:24px;text-align:center;font-size:14px;margin-right:3px;padding:6px 6px 2px 6px;width:36px}.pf-body[data-script='admin'] .navbar-brand:hover{color:#777}.pf-body[data-script='admin'] .panel{text-align:initial}.pf-body[data-script='admin'] .panel h3 img{position:absolute;right:0;top:0;margin:4px 14px 0 0;border-radius:30%}.pf-body[data-script='admin'] .form-horizontal .panel{color:#adadad}.pf-body[data-script='setup']{user-select:text}.pf-body[data-script='setup'] .navbar-brand:hover{color:#777}.pf-body[data-script='setup'] section{min-height:auto;padding-top:10px;padding-bottom:0;border-bottom:0}.pf-body[data-script='setup'] section:first-of-type{padding-top:60px}.pf-body[data-script='setup'] section:last-of-type{padding-bottom:60px}@media (min-width: 780px){.pf-body[data-script='setup'] section .container{width:760px}}@media (min-width: 1200px){.pf-body[data-script='setup'] section .container{width:1160px}}@media (min-width: 1600px){.pf-body[data-script='setup'] section .container{width:1360px}}.pf-body[data-script='setup'] section .container>.row{margin-bottom:0}.pf-body[data-script='setup'] .pf-landing-pricing-panel{margin-top:10px}.pf-body[data-script='setup'] .panel-heading{padding-right:8px}.pf-body[data-script='setup'] .pf-setup-body-cronjob .panel-footer{display:flex;justify-content:space-around}.pf-body[data-script='setup'] .pf-cron-row-active td:not(:last-child){background-color:#212C30}.pf-body[data-script='setup'] .pf-cron-row-active td:first-child{background-color:#1b2326}.pf-head-breadcrumb{display:inline-block;margin:0}.pf-head-breadcrumb li{display:inline-block;position:relative;cursor:pointer}.pf-head-breadcrumb li:before{content:"";position:absolute;right:-9px;top:-1px;z-index:20;border-left:10px solid #272728;border-top:15px solid transparent;border-bottom:15px solid transparent;transition:0.3s ease}.pf-head-breadcrumb li:after{content:"";position:absolute;right:-10px;top:-1px;z-index:10;border-left:10px solid #63676a;border-top:15px solid transparent;border-bottom:15px solid transparent}.pf-head-breadcrumb li:hover .pf-head-breadcrumb-item{color:#568a89}.pf-head-breadcrumb li:hover .pf-head-breadcrumb-item>img{border-color:#568a89 !important}.pf-head-breadcrumb li:hover:not(:last-of-type) .pf-head-breadcrumb-item{max-width:135px}.pf-head-breadcrumb li:first-of-type .pf-head-breadcrumb-item{padding-left:10px}.pf-head-breadcrumb li:last-of-type .pf-head-breadcrumb-item{padding-right:10px}.pf-head-breadcrumb li:last-of-type:before{display:none}.pf-head-breadcrumb li:last-of-type:after{display:none}.pf-head-breadcrumb li:not(:last-of-type) .pf-head-breadcrumb-item{max-width:60px}.pf-head-breadcrumb li.--empty{pointer-events:none}.pf-head-breadcrumb .pf-head-breadcrumb-item{display:inline-block;vertical-align:middle;overflow:hidden;white-space:nowrap;text-overflow:ellipsis;padding:0 5px 0 15px;line-height:30px;width:auto;-webkit-transition:color 0.15s ease-out,max-width 0.15s ease-in-out;transition:color 0.15s ease-out,max-width 0.15s ease-in-out;will-change:color, max-width}.pf-head-breadcrumb .pf-head-breadcrumb-item [class^="pf-system-sec-"]{margin-right:5px}.pf-head-breadcrumb .pf-head-breadcrumb-item>.fas:last-of-type,.pf-head-breadcrumb .pf-landing .pf-landing-list li.pf-head-breadcrumb-item>i:last-of-type,.pf-landing .pf-landing-list .pf-head-breadcrumb li.pf-head-breadcrumb-item>i:last-of-type{margin-right:5px !important}#pf-static-logo-svg{opacity:0;position:absolute;z-index:105;overflow:visible}#pf-static-logo-svg path{will-change:fill, opacity, transform, translateZ, translateX, translateY;pointer-events:all;-moz-transform:translate3d(0, 0, 0);-ms-transform:translate3d(0, 0, 0);-webkit-transform:translate3d(0, 0, 0);transform:translate3d(0, 0, 0)}.logo-ploygon-top-right{fill:#477372;fill-rule:evenodd;stroke:#477372;stroke-width:0px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;fill-opacity:1}.logo-ploygon-bottom-left{fill:#5cb85c;fill-rule:evenodd;stroke:#5cb85c;stroke-width:0px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;fill-opacity:1}.logo-ploygon-bottom-right{fill:#375959;fill-rule:evenodd;stroke:#375959;stroke-width:0px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;fill-opacity:1}.logo-ploygon-top-left{fill:#63676a;fill-opacity:1;fill-rule:evenodd;stroke:#63676a;stroke-width:0px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1}#pf-map-module{margin:15px 10px 52px 10px}#pf-map-tab-element{max-width:3354px;margin:0 auto;display:grid;grid-column-gap:10px;grid-template:"tabs1" max-content "wrapper" minmax(38px, 1fr)/1fr}@media screen and (min-width: 1600px){#pf-map-tab-element{grid-template-areas:"tabs1 tabs1 tabs1 tabs1" "wrapper wrapper wrapper wrapper";grid-template-columns:1fr 1fr 1fr minmax(444px, 1fr)}}#pf-map-tab-element #pf-map-tab-bar-left{grid-area:tabs1}#pf-map-tab-element .pf-map-tab-content-wrapper{grid-area:wrapper;z-index:100}@media screen and (min-width: 1600px){#pf-map-tab-element.left{grid-template-areas:". tabs1 tabs1 tabs1" "wrapper wrapper wrapper wrapper";grid-template-columns:minmax(444px, 1fr) 1fr 1fr 1fr}}@media screen and (min-width: 1600px){#pf-map-tab-element.left .pf-map-tab-content{grid-template-areas:"area2 map map map" "area2 area1 area1 area3";grid-template-columns:minmax(444px, 1fr) 1fr minmax(444px, 1fr) 1fr}}.pf-map-tab-bar{display:flex;position:relative}.pf-map-tab-bar:after{border-radius:0 !important;font-size:14px !important}.pf-map-tab-bar .pf-map-tab{z-index:10;flex:0 0 auto}.pf-map-tab-bar .pf-map-tab:last-child{margin-right:0}.pf-map-tab-bar .pf-map-tab>a[data-badge]:after{content:attr(data-badge);position:absolute;top:-4px;left:60%;background:#313335;color:#e28a0d;border-radius:9px;padding:3px 4px;font-size:11px;font-weight:bold;line-height:1;vertical-align:baseline;white-space:nowrap;text-align:center}.pf-map-tab-bar .noSort{margin-left:auto}.pf-map-tab-bar .pf-map-type-tab-default{border-top:2px solid transparent}.pf-map-tab-bar .pf-map-type-tab-default>a:hover,.pf-map-tab-bar .pf-map-type-tab-default>a:focus,.pf-map-tab-bar .pf-map-type-tab-default>a.editable-open{color:#e28a0d;background-color:transparent;border-color:transparent}.pf-map-tab-bar .pf-map-type-tab-private{border-top:2px solid #7986cb}.pf-map-tab-bar .pf-map-type-tab-corporation{border-top:2px solid #5cb85c}.pf-map-tab-bar .pf-map-type-tab-alliance{border-top:2px solid #428bca}.pf-map-tab-bar .pf-map-type-tab-global{border-top:2px solid #568a89}.pf-map-tab-bar .pf-map-tab-icon+.nav-tabs-link:not(:empty){margin-left:3px}.pf-map-tab-bar .pf-map-tab-shared-icon{margin-left:3px}.pf-map-tab-content{display:grid;grid-column-gap:10px;grid-template:"map" max-content "area1" minmax(0, max-content) "area2" minmax(0, max-content) "area3" minmax(0, max-content)/1fr}@media screen and (min-width: 780px){.pf-map-tab-content{grid-template:"map map" max-content "area1 area1" minmax(0, min-content) "area2 area3" minmax(0, min-content)/1fr 1fr}}@media screen and (min-width: 1200px){.pf-map-tab-content{grid-template:"map map map" max-content "area1 area1 area2" minmax(0, max-content) "area1 area1 area3" minmax(0, 1fr)/1fr 1fr minmax(444px, 1fr)}}@media screen and (min-width: 1600px){.pf-map-tab-content{grid-template:"map map map area2" minmax(0, max-content) "area1 area1 area3 area2" minmax(0, max-content) "area1 area1 area3 area2" minmax(0, 1fr)/1fr 1fr minmax(444px, 1fr) minmax(444px, 1fr)}}.pf-map-tab-content.active{display:grid}.pf-map-tab-content-area{position:relative;border-radius:5px;min-height:0;-webkit-transition:min-height 0.3s ease;transition:min-height 0.3s ease}.pf-map-tab-content-area-map{grid-area:map;position:relative;resize:vertical;width:100%;height:558px;min-height:300px;max-height:1000px;overflow:hidden;padding:5px;background:rgba(43,43,43,0.93);box-shadow:inset -3px 3px 10px 0 rgba(0,0,0,0.3);will-change:width, height;border-top-right-radius:0px;border-top-left-radius:0px;border-width:1px;border-style:solid;border-color:#313335}.pf-map-tab-content-area-map:before{content:'';position:absolute;bottom:0;right:0;border-style:solid;border-width:14px 14px 0 0;border-color:transparent #313335 transparent transparent;cursor:row-resize}.pf-map-tab-content-area-map:focus,.pf-map-tab-content-area-map:hover{border:1px solid #3c3f41}.pf-map-tab-content-area-map:focus:before,.pf-map-tab-content-area-map:hover:before{border-color:transparent #3c3f41 transparent transparent}.pf-map-tab-content-area-a,.pf-map-tab-content-area-b,.pf-map-tab-content-area-c{display:grid;grid-gap:10px;grid-auto-rows:max-content}.pf-map-tab-content-area-a:not(:empty),.pf-map-tab-content-area-b:not(:empty),.pf-map-tab-content-area-c:not(:empty){margin-top:10px}.pf-map-tab-content-area-a{grid-area:area1}.pf-map-tab-content-area-b{grid-area:area2}@media screen and (min-width: 1600px){.pf-map-tab-content-area-b{margin-top:0 !important}}.pf-map-tab-content-area-c{grid-area:area3}.pf-map-tab-content .pf-sortable-dropzone{margin-top:10px;min-height:38px}.pf-module{font-family:"Oxygen Bold","Helvetica Neue",Helvetica,Arial,sans-serif;background:rgba(60,63,65,0.27);padding:10px;width:100%;overflow:hidden;-moz-border-radius:5px;-webkit-border-radius:5px;border-radius:5px;border-top-left-radius:0;opacity:0;will-change:opacity, transform, height}.pf-module:before{content:'';position:absolute;top:0;left:0;border-style:solid;border-width:0 0 9px 9px;border-color:transparent transparent transparent #3c3f41;cursor:row-resize}.pf-module .label:not(:last-child){margin-bottom:10px}.pf-module .pf-module-head h5{display:inline-block;line-height:16px;margin-bottom:0}.pf-module .pf-module-head h5 .pf-module-icon-button{margin-left:4px}.pf-module .pf-module-head+.pf-module-body:not(:empty):not(.hidden){margin-top:10px}.pf-module .grid{display:grid;grid-gap:10px;grid-template-columns:repeat(auto-fit, minmax(200px, 1fr))}.pf-module .pf-module-table{font-size:11px;white-space:nowrap}.pf-module .dataTable{font-size:10px}.pf-module .pf-dynamic-area{background:rgba(43,43,43,0.4);min-height:initial}.pf-module .pf-module-control-area{display:flex;justify-content:center;align-items:center;min-height:inherit}.pf-module .pf-module-control-area:hover .fa-sync{-moz-transform:rotateZ(720deg);-ms-transform:rotateZ(720deg);-webkit-transform:rotateZ(720deg);transform:rotateZ(720deg)}.pf-module .pf-module-control-area .fa-sync{-webkit-transition:transform 1.6s ease-out;transition:transform 1.6s ease-out}.pf-module-spacer{margin-bottom:10px}@-webkit-keyframes bounce{0%, 20%, 50%, 80%, 100%{transform:translateY(0)}40%{transform:translateY(-8px)}60%{transform:translateY(-4px)}}@-moz-keyframes bounce{0%, 20%, 50%, 80%, 100%{transform:translateY(0)}40%{transform:translateY(-8px)}60%{transform:translateY(-4px)}}@-ms-keyframes bounce{0%, 20%, 50%, 80%, 100%{transform:translateY(0)}40%{transform:translateY(-8px)}60%{transform:translateY(-4px)}}@keyframes bounce{0%, 20%, 50%, 80%, 100%{transform:translateY(0)}40%{transform:translateY(-8px)}60%{transform:translateY(-4px)}}.pf-map-overlay{position:absolute;display:none;z-index:10000;background:rgba(0,0,0,0.25);-moz-border-radius:5px;-webkit-border-radius:5px;border-radius:5px}.pf-map-overlay.pf-map-overlay-timer{right:25px;bottom:25px;width:36px;height:36px}.pf-map-overlay.pf-map-overlay-zoom{bottom:25px;left:5px;width:26px;height:52px;padding:2px 4px;display:block}.pf-map-overlay.pf-map-overlay-zoom .pf-zoom-overlay-up,.pf-map-overlay.pf-map-overlay-zoom .pf-zoom-overlay-down{display:block;text-align:center;font-size:16px;cursor:pointer;-webkit-transition:color 0.18s ease-in-out;transition:color 0.18s ease-in-out;will-change:color}.pf-map-overlay.pf-map-overlay-zoom .pf-zoom-overlay-up:hover,.pf-map-overlay.pf-map-overlay-zoom .pf-zoom-overlay-down:hover{color:#c2760c}.pf-map-overlay.pf-map-overlay-zoom .pf-zoom-overlay-up.disabled,.pf-map-overlay.pf-map-overlay-zoom .pf-zoom-overlay-down.disabled{cursor:not-allowed;color:#2b2b2b}.pf-map-overlay.pf-map-overlay-zoom .pf-zoom-overlay-value{display:block;margin-top:2px;text-align:center;font-size:11px;line-height:13px;-webkit-transition:color 0.18s ease-in-out;transition:color 0.18s ease-in-out;will-change:color}.pf-map-overlay.pf-map-overlay-zoom .active{color:#c2760c}.pf-map-overlay.pf-map-overlay-info{top:8px;right:25px;height:36px;min-height:36px;min-width:36px;padding:3px 3px 3px 8px;line-height:26px}.pf-map-overlay.pf-map-overlay-info i{margin:0;margin-top:5px;width:0;height:26px;opacity:0;color:#63676a;transform:scale(0);transform-origin:50% 50% 0px;-webkit-transition:color 0.18s ease-in-out;transition:color 0.18s ease-in-out;cursor:help;will-change:all}.pf-map-overlay.pf-map-overlay-info i.fas,.pf-map-overlay.pf-map-overlay-info .pf-landing .pf-landing-list li>i,.pf-landing .pf-landing-list .pf-map-overlay.pf-map-overlay-info li>i,.pf-map-overlay.pf-map-overlay-info i.far{font-size:20px}.pf-map-overlay.pf-map-overlay-info i.glyphicon{margin-top:1px;font-size:22px;padding-left:3px}.pf-map-overlay.pf-map-overlay-info i.active,.pf-map-overlay.pf-map-overlay-info i:hover{color:#c2760c}.pf-map-overlay.pf-map-overlay-local{top:54px;right:25px;min-height:80px;width:32px;display:block;will-change:width}.pf-map-overlay.pf-map-overlay-local .pf-map-overlay-local-content{margin-right:36px;padding:5px 0 5px 5px;overflow:hidden}.pf-map-overlay.pf-map-overlay-local .pf-map-overlay-local-content .pf-map-overlay-headline{font-size:12px;font-family:"Oxygen Bold","Helvetica Neue",Helvetica,Arial,sans-serif;white-space:nowrap}.pf-map-overlay.pf-map-overlay-local .pf-map-overlay-local-content .pf-map-overlay-headline .badge{margin-left:5px}.pf-map-overlay.pf-map-overlay-local .pf-map-overlay-local-content .pf-map-overlay-headline .pf-system-sec{cursor:default}.pf-map-overlay.pf-map-overlay-local .pf-map-overlay-local-content .pf-local-table{font-size:10px}.pf-map-overlay.pf-map-overlay-local .pf-map-overlay-local-content .pf-local-table.no-footer{border-bottom:1px solid transparent}.pf-map-overlay.pf-map-overlay-local .pf-map-overlay-local-content .pf-local-table td{white-space:nowrap}.pf-map-overlay.pf-map-overlay-local .pf-map-overlay-local-content .dataTables_paginate,.pf-map-overlay.pf-map-overlay-local .pf-map-overlay-local-content .dataTables_empty{white-space:nowrap;padding-top:3px}.pf-map-overlay.pf-map-overlay-local .pf-map-overlay-local-content .pf-map-overlay-toolbar .pf-map-overlay-toolbar-icon{vertical-align:0;margin-top:14px}.pf-map-overlay.pf-map-overlay-local .pf-map-overlay-local-content .pf-map-overlay-toolbar .pf-map-overlay-toolbar-checkbox{display:inline-block;margin-bottom:0}.pf-map-overlay.pf-map-overlay-local .pf-map-overlay-local-main{position:absolute;top:0;right:0;height:100%;padding:3px;width:32px;cursor:pointer;text-align:center;border-left:1px solid #2b2b2b}.pf-map-overlay.pf-map-overlay-local .pf-map-overlay-local-main .pf-map-overlay-local-trigger{margin-bottom:10px}.pf-map-overlay.pf-map-overlay-local .pf-map-overlay-local-main .pf-map-overlay-local-trigger:hover,.pf-map-overlay.pf-map-overlay-local .pf-map-overlay-local-main .pf-map-overlay-local-trigger.right{color:#c2760c}.pf-map-overlay.pf-map-overlay-local .pf-map-overlay-local-main i{font-size:12px}.pf-map-overlay.pf-map-overlay-local .pf-map-overlay-local-jumps{position:absolute;bottom:5px;width:calc(100% - 6px)}.pf-map-overlay.pf-map-overlay-local .badge{font-family:Arial, sans-serif;background-color:#2b2b2b}.pf-grid-small:before{content:' ';display:block;position:absolute;left:0;top:0;width:100%;height:100%;opacity:0.6;background:url('data:image/png;base64,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') !important}.jtk-drag-select .pf-map{cursor:grab !important}.jtk-drag-select .pf-map .pf-system{cursor:grab !important}.jtk-drag-select .pf-map .pf-system .pf-system-head{cursor:grab !important}.pf-map{width:2500px;height:1500px;position:relative;font-family:"Oxygen Bold","Helvetica Neue",Helvetica,Arial,sans-serif;will-change:transform}.pf-map.pf-map-move{cursor:move !important}.pf-map .jtk-hover:not(.jtk-overlay){animation-duration:1s;animation-delay:0.5s;animation-fill-mode:both;animation-timing-function:linear;animation-iteration-count:infinite;animation-name:bounce}.pf-map .jtk-source-hover,.pf-map .jtk-target-hover{animation-duration:1s;animation-delay:0.5s;animation-fill-mode:both;animation-timing-function:linear;animation-iteration-count:infinite;animation-name:bounce;-webkit-box-shadow:0 6px 12px rgba(0,0,0,0.3);box-shadow:0 6px 12px rgba(0,0,0,0.3)}.pf-map .jtk-drag-active{-webkit-transition:box-shadow 0.12s ease-out,transform 0.08s ease-out !important;transition:box-shadow 0.12s ease-out,transform 0.08s ease-out !important}.pf-map .jtk-drag-hover.jtk-drag-active{-webkit-box-shadow:0 6px 12px rgba(0,0,0,0.3);box-shadow:0 6px 12px rgba(0,0,0,0.3);-moz-transform:translate3d(0, -1px, 0) scale(1.1) !important;-ms-transform:translate3d(0, -1px, 0) scale(1.1) !important;-webkit-transform:translate3d(0, -1px, 0) scale(1.1) !important;transform:translate3d(0, -1px, 0) scale(1.1) !important}.pf-map .pf-system{position:absolute;min-width:60px;height:auto;overflow:hidden;background-color:#313335;font-family:"Oxygen Bold","Helvetica Neue",Helvetica,Arial,sans-serif;z-index:100;will-change:top, left, opacity, transform;border-width:2px;border-style:solid;border-color:#63676a;-moz-border-radius:5px;-webkit-border-radius:5px;border-radius:5px;-webkit-transition:border-color 0.2s ease-out,box-shadow 0.12s ease-out,opacity 0.12s ease-out;transition:border-color 0.2s ease-out,box-shadow 0.12s ease-out,opacity 0.12s ease-out;-moz-transform:translate3d(0, 0, 0);-ms-transform:translate3d(0, 0, 0);-webkit-transform:translate3d(0, 0, 0);transform:translate3d(0, 0, 0)}.pf-map .pf-system:not(.jtk-drag-hover):hover{-webkit-box-shadow:0 6px 12px rgba(0,0,0,0.3);box-shadow:0 6px 12px rgba(0,0,0,0.3);-moz-transform:translate3d(0, -1px, 0) !important;-ms-transform:translate3d(0, -1px, 0) !important;-webkit-transform:translate3d(0, -1px, 0) !important;transform:translate3d(0, -1px, 0) !important}.pf-map .pf-system .pf-system-head{padding:0 3px 0 3px;cursor:pointer;font-family:Arial, sans-serif;font-weight:bold;white-space:nowrap;backface-visibility:hidden}.pf-map .pf-system .pf-system-head .pf-system-head-name{border:none;display:inline-block;min-width:50px;color:#adadad;margin-right:2px;-webkit-font-smoothing:antialiased;transform:translateY(0)}.pf-map .pf-system .pf-system-head .pf-system-head-counter{display:inline-block;text-align:right;min-width:8px;margin-right:1px;color:#5cb85c;cursor:help}.pf-map .pf-system .pf-system-head .pf-system-head-counter:empty{display:none}.pf-map .pf-system .pf-system-head .pf-system-effect{font-size:11px;transform:translateY(0)}.pf-map .pf-system .pf-system-head .fa-lock{font-size:11px;display:none;transform:translateY(0)}.pf-map .pf-system .pf-system-head .pf-system-head-expand{margin-left:2px;color:#63676a;width:10px;display:none;transform:translateY(0)}.pf-map .pf-system .pf-system-head .editable-empty{font-style:normal}.pf-map .pf-system .pf-system-head-info{display:flex;color:#7c8184;font-size:10px;line-height:10px;padding-right:1px;margin-bottom:2px;transform:translateY(0)}.pf-map .pf-system .pf-system-head-info [class^="pf-system-sec-"]{cursor:help}.pf-map .pf-system .pf-system-head-info-left{flex:1}.pf-map .pf-system .pf-system-head-info-right{flex:1;text-align:right}.pf-map .pf-system .pf-system-body{height:0px;width:100%;overflow:hidden;cursor:-moz-grab;cursor:-webkit-grab;cursor:grab;padding:0 4px;white-space:nowrap;display:none;will-change:width;border-top-width:1px;border-top-style:dashed;border-top-color:#63676a}.pf-map .pf-system .pf-system-body .pf-system-body-item{position:relative;color:#7c8184;font-size:10px;line-height:16px;height:16px}.pf-map .pf-system .pf-system-body .pf-system-body-item .pf-system-body-right{float:right;color:#f0ad4e;width:50px;overflow:hidden;white-space:nowrap;text-overflow:ellipsis;display:none}.pf-map .pf-system .pf-system-body .pf-system-body-item .pf-user-status{font-size:6px;width:10px;vertical-align:middle}.pf-map .pf-system .pf-system-body .pf-system-body-item .pf-system-body-item-name{position:absolute;display:inline-block;width:calc(100% - 10px);overflow:hidden;white-space:nowrap;text-overflow:ellipsis}.pf-map .pf-system .tooltip.in{opacity:1}.pf-map .pf-system .tooltip .tooltip-inner{color:#313335;background-color:#adadad;padding:3px 3px}.pf-map .pf-system-active:not(.pf-map-endpoint-source):not(.pf-map-endpoint-target){-webkit-box-shadow:#ffb 0px 0px 8px 0px;box-shadow:#ffb 0px 0px 8px 0px}.pf-map .pf-system-selected:not(.pf-map-endpoint-source):not(.pf-map-endpoint-target),.pf-map .jtk-drag:not(.pf-map-endpoint-source):not(.pf-map-endpoint-target){-webkit-box-shadow:#58100d 0px 0px 8px 0px;box-shadow:#58100d 0px 0px 8px 0px;background-color:#58100d}.pf-map .pf-system-selected:not(.pf-map-endpoint-source):not(.pf-map-endpoint-target) .pf-system-head,.pf-map .jtk-drag:not(.pf-map-endpoint-source):not(.pf-map-endpoint-target) .pf-system-head,.pf-map .pf-system-selected:not(.pf-map-endpoint-source):not(.pf-map-endpoint-target) .pf-system-body,.pf-map .jtk-drag:not(.pf-map-endpoint-source):not(.pf-map-endpoint-target) .pf-system-body{background-color:#58100d}.pf-map .pf-system-locked .pf-system-sec{cursor:default !important}.pf-map .pf-system-locked .pf-system-body{cursor:default !important}.pf-map .pf-system-locked .fa-lock{color:#63676a !important;display:inline-block !important}.pf-map .pf-system-debug{position:absolute;color:#fff;font-size:10px;line-height:22px;text-align:center;pointer-events:none;font-family:Oxygen, Arial, sans-serif;z-index:500}.pf-map .pf-system-debug:before{content:attr(data-depth);font-family:Oxygen, Arial, sans-serif;position:absolute;line-height:10px;top:1px;left:2px;color:#000}.pf-map .jtk-endpoint{z-index:90}.pf-map .jtk-endpoint svg circle{-webkit-transition:stroke 0.18s ease-out,fill 0.18s ease-out;transition:stroke 0.18s ease-out,fill 0.18s ease-out}.pf-map .jtk-endpoint svg *{stroke:#63676a;cursor:pointer}.pf-map .jtk-endpoint:hover circle{stroke:#e28a0d !important}.pf-map .jtk-endpoint.jtk-hover{z-index:95}.pf-map .jtk-endpoint.jtk-hover.pf-map-endpoint-bubble:after{filter:drop-shadow(-3px 3px 4px rgba(0,0,0,0.3));animation-iteration-count:infinite;animation-delay:0.5s}.pf-map .jtk-endpoint:after{content:url("../../img/bubble.svg");position:absolute;display:block;pointer-events:none;top:-8px;left:-8px;width:30px;height:30px;z-index:-1;will-change:opacity, transform;animation-name:pfBubblePop;animation-duration:0.09s;animation-timing-function:cubic-bezier(0.16, 0.87, 0.48, 0.99);animation-fill-mode:forwards;animation-iteration-count:1}.pf-map .pf-map-endpoint-bubble:after{display:block;animation-name:pfBubbleWobble;animation-duration:1s;animation-timing-function:linear;animation-iteration-count:1;animation-fill-mode:both}.pf-map .jtk-endpoint-drop-allowed circle{stroke:#5cb85c !important;fill:#5cb85c !important}.pf-map .jtk-endpoint-drop-forbidden circle{stroke:#a52521 !important;fill:#a52521 !important}.pf-map .jtk-connector{z-index:40;cursor:pointer;overflow:unset;-webkit-transition:stroke 0.18s ease-out,opacity 0.18s ease-out;transition:stroke 0.18s ease-out,opacity 0.18s ease-out;will-change:all}.pf-map .jtk-connector path{-webkit-transition:stroke 0.18s ease-out;transition:stroke 0.18s ease-out}.pf-map .jtk-connector.jtk-hover{z-index:80;filter:drop-shadow(-3px 3px 4px rgba(0,0,0,0.3))}.pf-map .jtk-connector.jtk-hover path:first-child{stroke:#eaeaea}.pf-map .jtk-connector.jtk-dragging{z-index:80;opacity:0.4}.pf-map .pf-map-connection-abyssal{z-index:40}.pf-map .pf-map-connection-abyssal path:first-child{stroke:rgba(255,255,255,0)}.pf-map .pf-map-connection-abyssal path:nth-child(2){stroke:#5a225a}.pf-map .pf-map-connection-abyssal.jtk-hover path:first-child{stroke:rgba(255,255,255,0)}.pf-map .pf-map-connection-abyssal.jtk-hover path:nth-child(2){stroke:#eaeaea}.pf-map .pf-map-connection-jumpbridge{z-index:50}.pf-map .pf-map-connection-jumpbridge path:first-child{stroke:rgba(255,255,255,0)}.pf-map .pf-map-connection-jumpbridge path:nth-child(2){stroke:#568a89}.pf-map .pf-map-connection-jumpbridge.jtk-hover path:first-child{stroke:rgba(255,255,255,0)}.pf-map .pf-map-connection-jumpbridge.jtk-hover path:nth-child(2){stroke:#eaeaea}.pf-map .pf-map-connection-stargate{z-index:60}.pf-map .pf-map-connection-stargate path:first-child{stroke:#63676a}.pf-map .pf-map-connection-stargate path:nth-child(2){stroke:#313966}.pf-map .pf-map-connection-wh-fresh,.pf-map .pf-map-connection-wh-reduced,.pf-map .pf-map-connection-wh-critical,.pf-map .pf-map-connection-wh-eol{z-index:70}.pf-map .pf-map-connection-wh-eol path:first-child{stroke:#d747d6}.pf-map .pf-map-connection-wh-reduced path:nth-child(2){stroke:#e28a0d}.pf-map .pf-map-connection-wh-critical path:nth-child(2){stroke:#a52521}.pf-map .pf-map-connection-wh-size-s path:nth-child(2),.pf-map .pf-map-connection-wh-size-m path:nth-child(2){stroke-linecap:square !important}.pf-map .pf-map-connection-active{filter:drop-shadow(0px 0px 3px #ffb) !important}.pf-map .pf-map-connection-process{opacity:0.4 !important}.pf-map .pf-map-connection-process path{pointer-events:none}.pf-map .jtk-overlay{opacity:1;pointer-events:none;will-change:opacity;-webkit-transition:opacity 0.18s ease-out;transition:opacity 0.18s ease-out}.pf-map .jtk-overlay.jtk-hover:not(.debug){opacity:0 !important}.pf-map .pf-map-component-overlay,.pf-map .pf-map-connection-state-overlay{font-size:11px;z-index:1020;background-color:#3c3f41;color:#adadad}.pf-map .pf-map-component-overlay{line-height:14px;padding:1px 4px;-moz-border-radius:6px;-webkit-border-radius:6px;border-radius:6px;-webkit-box-shadow:0 3px 6px rgba(0,0,0,0.3);box-shadow:0 3px 6px rgba(0,0,0,0.3)}.pf-map .pf-map-component-overlay.small{-webkit-font-smoothing:antialiased;font-family:Arial, sans-serif;padding:1px 2px;line-height:12px;min-width:14px;-moz-border-radius:3px;-webkit-border-radius:3px;border-radius:3px}.pf-map .pf-map-component-overlay.icon{font-size:12px;line-height:12px;padding:0;width:12px;height:12px;overflow:hidden;text-align:center;-moz-border-radius:50%;-webkit-border-radius:50%;border-radius:50%}.pf-map .pf-map-component-overlay.debug{background-color:#3e264e;opacity:0.8}.pf-map .pf-map-connection-state-overlay{background-color:transparent;font-size:12px;width:15px;height:15px;opacity:0.4 !important;z-index:1030}.pf-map .frig{background-color:#f0ad4e;color:#1d1d1d}.pf-map .mass{background-color:#a52521;color:#eaeaea}.pf-map .eol{background-color:#3c3f41;color:#d747d6}.pf-map .pf-map-connection-arrow-overlay-success .pf-map-connection-arrow-overlay{stroke:#313335;fill:#5cb85c}.pf-map .pf-map-connection-arrow-overlay-danger .pf-map-connection-arrow-overlay{stroke:#313335;fill:#d9534f;animation-name:pfPulseDanger;animation-duration:4s;animation-iteration-count:infinite}.pf-map-drag-to-select{background:#375959 !important;display:block;visibility:hidden;opacity:0;z-index:9000;border:1px dashed #adadad;pointer-events:none;will-change:left, top, width, height, opacity;-moz-border-radius:5px;-webkit-border-radius:5px;border-radius:5px;-webkit-transition:opacity 0.15s linear;transition:opacity 0.15s linear}.pf-map-drag-to-select.active{visibility:visible;opacity:0.3}.ui-dialog-content label,.ui-dialog-content .editable-input .editable-checklist>div>label>span,.editable-input .ui-dialog-content .editable-checklist>div>label>span{min-width:60px}.dropdown-menu{min-width:150px;font-family:"Oxygen Bold","Helvetica Neue",Helvetica,Arial,sans-serif;z-index:1050;will-change:opacity, top, left, transform}.dropdown-menu a{cursor:pointer}.dropdown-menu i{width:20px;pointer-events:none}.dropdown-menu i.fa-char:before{font-weight:bolder}.dropdown-menu:not(.dropdown-submenu-left) .dropdown-menu{border-top-left-radius:0;border-bottom-left-radius:0;clip-path:inset(-12px -12px -12px 0px)}.dropdown-menu[role]>li:not(.disabled){position:relative}.dropdown-menu[role]>li:not(.disabled):before{content:'';position:absolute;left:0;background-color:#5cb85c;opacity:0;-webkit-transition:left 0.15s ease-out,opacity 0.15s ease-out;transition:left 0.15s ease-out,opacity 0.15s ease-out;will-change:opacity,left;width:2px;height:100%}.dropdown-menu[role]>li:not(.disabled):hover:before,.dropdown-menu[role]>li:not(.disabled).active:before{left:-4px;opacity:1}.dropdown-menu>li.disabled{cursor:not-allowed;pointer-events:none}.dropdown-menu>li>a{padding:3px 8px}.dropdown-menu.dropdown-submenu-left>.dropdown-submenu>.dropdown-menu{left:-100%;border-top-right-radius:0;border-bottom-right-radius:0;clip-path:inset(-12px 0 -12px -12px)}.pf-system-tooltip-inner{color:#adadad;padding:2px 4px;min-width:25px;-webkit-transition:color 0.2s ease-out;transition:color 0.2s ease-out}.pf-system-demo-module .pf-module-body{grid-template:"info info " min-content "userData mapData " min-content "trigger sortableJs" min-content / 1fr 1fr}.pf-system-demo-module .pf-module-body>.pf-dynamic-area{margin:0}.pf-system-demo-module .pf-module-body>.pf-dynamic-area[data-area="info"]{grid-area:info;max-height:800px}.pf-system-demo-module .pf-module-body>.pf-dynamic-area[data-area="userData"]{grid-area:userData}.pf-system-demo-module .pf-module-body>.pf-dynamic-area[data-area="mapData"]{grid-area:mapData}.pf-system-demo-module .pf-module-body>.pf-dynamic-area[data-area="trigger"]{grid-area:trigger}.pf-system-demo-module .pf-module-body>.pf-dynamic-area[data-area="sortableJs"]{grid-area:sortableJs}.pf-system-demo-module .pf-module-body>.pf-dynamic-area>h5{margin-bottom:0}.pf-system-demo-module .pf-module-body>.pf-dynamic-area>h5+code:not(:empty){margin-top:10px}.pf-map-tab-content-area-a .pf-system-demo-module .pf-module-body{grid-template:"info userData mapData" minmax(200px, min-content) "info userData mapData" minmax(auto, min-content) "trigger sortableJs mapData" minmax(38px, min-content)/minmax(38px, 1fr) minmax(210px, max-content) minmax(38px, 1fr)}.pf-map-tab-content-area-a .pf-system-demo-module .pf-module-body>.pf-dynamic-area[data-area="userData"]{max-width:100%;min-width:210px;max-height:800px;min-height:210px;resize:both}.pf-map-tab-content-area-a .pf-system-demo-module .pf-module-body>.pf-dynamic-area[data-area="userData"]:after{content:'';position:absolute;bottom:0;right:0;border-style:solid;border-width:9px 9px 0 0;border-color:transparent #3c3f41 transparent transparent;cursor:se-resize}.pf-system-info-module h5{text-transform:capitalize}.pf-system-info-module .pf-module-head .fa-angle-double-right{width:20px}.pf-system-info-module .pf-module-body{grid-template-columns:repeat(auto-fit, minmax(165px, 1fr))}.pf-system-info-module .pf-system-info-section .pf-dynamic-area{height:calc(100% - 23px)}.pf-system-info-module .pf-system-info-name-cell{user-select:all}.pf-system-info-module .pf-system-info-svg{position:absolute;margin:2px 0}.pf-system-info-module .pf-system-sov-fw-percentage{border-top-color:transparent}.pf-system-info-module .pf-system-sov-fw-status-icon{margin-left:20px;color:var(--color)}.pf-system-info-module .pf-system-sov-fw-contested-row,.pf-system-info-module .pf-system-sov-fw-occupation-row{display:none}.pf-system-info-module .pf-system-description-section{grid-column:span 2}.pf-system-info-module .pf-system-info-description-area{height:100%;min-height:100px;padding:0}.pf-system-info-module .pf-system-info-description-area .pf-system-info-description-button{position:absolute;right:10px;top:13px}.pf-system-info-module .pf-system-info-description-area .pf-system-info-description{padding:10px;user-select:text}.pf-system-info-module .pf-system-info-description-area .note-toolbar kbd{padding:3px 4px}.pf-system-info-module .pf-system-info-description-area .note-toolbar .note-customBtn{float:right}.pf-system-info-module .pf-system-info-description-area .note-toolbar:before,.pf-system-info-module .pf-system-info-description-area .note-toolbar:after{content:" ";display:table}.pf-system-info-module .pf-system-info-description-area .note-toolbar:after{clear:both}.pf-system-info-module .pf-system-info-description>h2:first-child,.pf-system-info-module .pf-system-info-description>h3:first-child,.pf-system-info-module .note-editable>h2:first-child,.pf-system-info-module .note-editable>h3:first-child{margin-top:0 !important}.pf-system-info-module .pf-system-info-description h2:before,.pf-system-info-module .pf-system-info-description h3:before,.pf-system-info-module .note-editable h2:before,.pf-system-info-module .note-editable h3:before{font-family:"Font Awesome 5 Free";content:"\f105";font-weight:bold;display:inline-block;margin-right:3px}.pf-system-info-module .pf-system-info-description h2,.pf-system-info-module .note-editable h2{font-size:16px;margin:15px 0}.pf-system-info-module .pf-system-info-description h3,.pf-system-info-module .note-editable h3{font-size:14px;margin:10px 0}.pf-system-info-module .pf-system-info-description a:after,.pf-system-info-module .note-editable a:after{font-family:"Font Awesome 5 Free";content:"\f35d";font-size:70%;vertical-align:top;font-weight:bold;display:inline-block;margin-left:2px}.pf-system-info-module .pf-system-info-description hr,.pf-system-info-module .note-editable hr{border-top:1px solid #313335}.pf-system-info-module .pf-system-info-description blockquote,.pf-system-info-module .note-editable blockquote{padding:5px 10px;margin:0 0 10px;font-size:13px;border-left:3px solid #477372}.pf-system-info-module .pf-system-info-description ol,.pf-system-info-module .pf-system-info-description ul,.pf-system-info-module .note-editable ol,.pf-system-info-module .note-editable ul{padding-left:20px}.pf-system-info-module .pf-system-info-description ul,.pf-system-info-module .note-editable ul{list-style:disc}.pf-system-info-module .pf-system-info-description ol,.pf-system-info-module .note-editable ol{list-style:decimal}.pf-map-tab-content-area-b .pf-system-info-module .pf-module-body-small .pf-system-info-section,.pf-map-tab-content-area-c .pf-system-info-module .pf-module-body-small .pf-system-info-section{grid-column:span 2}.modal.link-dialog .checkbox,.modal.link-dialog .editable-input .editable-checklist>div>label,.editable-input .modal.link-dialog .editable-checklist>div>label{display:none}.pf-system-graph-module .pf-module-head h5.pull-right{margin-right:5px}.pf-system-graph-module .pf-module-body{grid-template-columns:repeat(auto-fit, minmax(165px, 1fr))}.pf-system-graph-module .pf-system-graph{position:relative;width:100%;height:100px;display:flex;justify-content:center;align-items:center;margin-top:10px;-webkit-transition:height 0.18s ease-out;transition:height 0.18s ease-out}.pf-system-signature-module .progress-label-right{margin-right:20px;margin-left:10px;vertical-align:middle;font-size:11px}.pf-system-signature-module .pf-system-progress-scanned{display:inline-block;margin-left:20px;width:calc(100% - 230px)}.pf-system-signature-module .pf-system-progress-scanned .progress{margin-bottom:3px}.pf-system-signature-module .pf-sig-table-clear-button{will-change:color;color:#a52521}.pf-system-signature-module .pf-sig-table .editable-container.editable-inline{display:inline}.pf-system-signature-module .pf-sig-table .editable-container.editable-inline .control-group{display:inline}.pf-system-signature-module .pf-sig-table .editable-container.editable-inline .control-group .editable-input{display:inline}.pf-system-signature-module .pf-sig-table .pf-editable-description{width:100%;background-color:#2b2b2b;max-height:300px;font-size:11px;line-height:14px;padding:3px 6px}.pf-system-signature-module .pf-sig-table-secondary th{pointer-events:none}.pf-system-signature-module .pf-sig-table-secondary th:after{display:none !important}.pf-system-signature-module .pf-sig-table-secondary th.pf-table-counter-cell{color:transparent}.pf-system-route-module .pf-system-route-table{width:100%}.pf-system-route-module .pf-system-route-table td{text-transform:capitalize}.pf-system-route-module .pf-system-route-table td .pf-fake-connection{display:none;width:12px;cursor:pointer}.pf-system-route-module .pf-system-route-table td .pf-fake-connection[data-disabled]{cursor:initial}.pf-system-route-module .pf-system-route-table td .pf-fake-connection[class*=' pf-map-connection-wh-size-']{width:25px}.pf-system-route-module .pf-system-route-table td .pf-fake-connection:after{font-size:10px}.pf-system-route-module .pf-system-route-table td .pf-fake-connection.pf-map-connection-preserve-mass:after{content:"\f071";font-family:"Font Awesome 5 Free";font-style:normal;font-weight:bold;left:calc(50% - 7px)}.pf-system-route-module .pf-system-route-table td.pf-table-jump-cell .pf-fake-connection{display:inline-block}.pf-system-intel-module .pf-module-head:not(:first-child){margin-top:15px;margin-bottom:5px}.pf-system-killboard-module .pf-system-killboard-wsStatusWrapper{margin-left:8px;font-size:60%;line-height:100%;vertical-align:middle}.pf-system-killboard-module .pf-system-killboard-list{margin-bottom:0}.pf-system-killboard-module .pf-system-killboard-list>li{padding-left:0;overflow:visible;min-height:50px;will-change:transform, opacity, margin-left;-webkit-transition:padding-left 0.12s cubic-bezier(0.3, 0.8, 0.8, 1.7);transition:padding-left 0.12s cubic-bezier(0.3, 0.8, 0.8, 1.7)}.pf-system-killboard-module .pf-system-killboard-list>li h3{white-space:nowrap}.pf-system-killboard-module .pf-system-killboard-list>li>.flex-col{align-self:center;position:relative}.pf-system-killboard-module .pf-system-killboard-list>li>.flex-col:last-child{display:flex;flex-direction:column;align-content:space-between;min-width:110px}.pf-system-killboard-module .pf-system-killboard-list>li a:hover>img{border-color:#568a89}.pf-system-killboard-module .pf-system-killboard-list>li.media{margin-top:10px}.pf-system-killboard-module .pf-system-killboard-list>li.pf-system-killboard-list-head{min-height:20px}.pf-system-killboard-module .pf-system-killboard-list>li.pf-system-killboard-list-head h5{margin-bottom:0;min-width:auto !important}.pf-system-killboard-module .pf-system-killboard-list>li.pf-system-killboard-list-head h5:first-child>i{margin-right:5px}.pf-system-killboard-module .pf-system-killboard-list>li.pf-system-killboard-list-head h5:last-child>i{margin-left:5px}.pf-system-killboard-module .pf-system-killboard-list>li .media-heading-location{margin:0;font-size:11px;line-height:13px}.pf-system-killboard-module .pf-system-killboard-list>li .media-heading-isk{margin:0;font-size:11px;line-height:25px}.pf-system-killboard-module .pf-system-killboard-list>li .media-heading-date{margin:0;font-size:10px;line-height:12px}.pf-system-killboard-module .pf-system-killboard-list>li .pf-system-killboard-img-l{height:50px;width:50px;min-width:50px;max-width:50px;min-height:50px;max-height:50px;margin-right:10px;border:1px solid #2b2b2b;overflow:hidden;will-change:border-color;-moz-border-radius:50%;-webkit-border-radius:50%;border-radius:50%;-webkit-transition:border-color 0.12s ease-out;transition:border-color 0.12s ease-out}.pf-system-killboard-module .pf-system-killboard-list>li .pf-system-killboard-img-m{display:inline;height:32px;width:32px;min-width:32px;max-width:32px;min-height:32px;max-height:32px;margin-right:10px;border:1px solid #2b2b2b;overflow:hidden;will-change:border-color;-moz-border-radius:50%;-webkit-border-radius:50%;border-radius:50%;-webkit-transition:border-color 0.12s ease-out;transition:border-color 0.12s ease-out;align-self:center}.pf-system-killboard-module .pf-system-killboard-list>li .pf-system-killboard-img-s{display:inline;height:20px;width:20px;min-width:20px;max-width:20px;min-height:20px;max-height:20px;margin-right:10px;border:1px solid #2b2b2b;overflow:hidden;will-change:border-color;-moz-border-radius:50%;-webkit-border-radius:50%;border-radius:50%;-webkit-transition:border-color 0.12s ease-out;transition:border-color 0.12s ease-out}.pf-system-killboard-module .pf-system-killboard-list>li:before{content:"\f054";font-family:"Font Awesome 5 Free";font-weight:bold;position:absolute;z-index:10;left:-18px;top:16px;color:#477372;opacity:0;will-change:opacity, left;-webkit-transition:all 0.12s ease-out;transition:all 0.12s ease-out}.pf-system-killboard-module .pf-system-killboard-list>li:not(.pf-system-killboard-list-head):hover{padding-left:10px}.pf-system-killboard-module .pf-system-killboard-list>li:not(.pf-system-killboard-list-head):hover:before{opacity:1;left:-3px}.pf-system-killboard-module .pf-system-killboard-list>li .badge-victim:after{content:"\f714";font-family:"Font Awesome 5 Free";font-style:normal;font-weight:bold;font-size:13px;color:#a52521;position:absolute;bottom:-6px;left:20px}.pf-system-killboard-module .pf-system-killboard-list>li .badge-attacker:after{content:var(--label);font-style:normal;font-weight:bold;font-size:11px;color:var(--color);background-color:#313335;line-height:1;border-radius:9px;padding:3px 4px;position:absolute;bottom:-2px;left:30px}.pf-system-killboard-module .pf-module-control-area{margin-top:15px}.pf-connection-info-module .pf-module-body{grid-template-columns:repeat(auto-fit, minmax(200px, 1fr))}.pf-connection-info-module .pf-connection-info-table{width:100%}.pf-global-thera-module .pf-global-thera-control{margin-bottom:10px}.pf-global-thera-module .pf-global-thera-table .pf-fake-connection{width:100%}input,select{background-color:#313335;color:#adadad;border:1px solid #63676a;font-family:"Oxygen Bold","Helvetica Neue",Helvetica,Arial,sans-serif}input:focus,select:focus{border-color:#568a89}input:-webkit-autofill,select:-webkit-autofill{background-color:#313335 !important;-webkit-box-shadow:0 0 0 50px #313335 inset !important;box-shadow:0 0 0 50px #313335 inset !important;-webkit-text-fill-color:#adadad}input:-webkit-autofill:focus,select:-webkit-autofill:focus{-webkit-box-shadow:0 0 0 50px #313335 inset !important;box-shadow:0 0 0 50px #313335 inset !important;-webkit-text-fill-color:#adadad}input[disabled]::-moz-placeholder,select[disabled]::-moz-placeholder{color:transparent;opacity:1}input[disabled]:-ms-input-placeholder,select[disabled]:-ms-input-placeholder{color:transparent}input[disabled]::-webkit-input-placeholder,select[disabled]::-webkit-input-placeholder{color:transparent}input.pf-select2,select.pf-select2{height:32px;padding:6px 12px}input[type='number']::-webkit-inner-spin-button,input[type='number']::-webkit-outer-spin-button{-webkit-appearance:none;-moz-appearance:none;appearance:none;margin:0;display:none}input[type='file']::-webkit-file-upload-button{background-color:transparent;border:none;color:#63676a;outline:none}textarea{min-height:32px;max-height:400px;resize:vertical}fieldset[disabled] .form-control{color:#63676a}fieldset[disabled] .form-control::-moz-placeholder{color:transparent;opacity:1}fieldset[disabled] .form-control:-ms-input-placeholder{color:transparent}fieldset[disabled] .form-control::-webkit-input-placeholder{color:transparent}fieldset[disabled] .input-icon-left .fa-stack i:last-child,fieldset[disabled] .input-icon-right .fa-stack i:last-child{color:#3c3f41}#select2-pf-map-dialog-edit-icon-select-container,#select2-pf-map-dialog-new-icon-select-container,#select2-pf-map-dialog-new-icon-select-results,#select2-pf-map-dialog-edit-icon-select-results,.pf-form-icon-field{font-family:"Font Awesome 5 Free";font-weight:bold}#select2-pf-map-dialog-edit-icon-select-container option,#select2-pf-map-dialog-new-icon-select-container option,#select2-pf-map-dialog-new-icon-select-results option,#select2-pf-map-dialog-edit-icon-select-results option,.pf-form-icon-field option{font-family:inherit;font-weight:inherit}.input-icon-left:not(.input-icon-right) .fa-stack:first-child{left:14px}.input-icon-right:not(.input-icon-left) .fa-stack:first-child{right:14px}.input-icon-left.input-icon-right .fa-stack:first-child{left:14px}.input-icon-left.input-icon-right .fa-stack:nth-child(2){right:14px}.input-icon-left .fa-stack,.input-icon-right .fa-stack{position:absolute;top:4px}.input-icon-left .fa-stack i:first-child,.input-icon-right .fa-stack i:first-child{color:#63676a}.input-icon-left .fa-stack i:last-child,.input-icon-right .fa-stack i:last-child{color:#313335}.btn .btn-progress{position:absolute;display:block;height:100%;background-color:rgba(92,184,92,0.2);max-width:100%;width:0;top:0;left:0;overflow:hidden;line-height:30px;color:#f0ad4e;font-size:10px;text-align:left;-webkit-transition:width 0.1s linear;transition:width 0.1s linear}.pf-form-dropzone{border:2px dashed #2b2b2b;height:100px;background-color:#353739;text-align:center;font-size:20px;line-height:100px;margin:15px 0;color:#2b2b2b;-moz-border-radius:10px;-webkit-border-radius:10px;border-radius:10px;-webkit-transition:color 0.18s ease-out,border-color 0.18s ease-out;transition:color 0.18s ease-out,border-color 0.18s ease-out}.pf-form-dropzone:hover{color:#568a89;border-color:#568a89;cursor:-moz-grabbing;cursor:-webkit-grabbing;cursor:grabbing}.toggle.btn:active{box-shadow:none}.pf-form-field-char-count{display:block;margin-top:10px}.modal-content h2,.panel-body h2{font-family:"Oxygen","Helvetica Neue",Helvetica,Arial,sans-serif;letter-spacing:0;font-size:14px;margin:20px 0 10px 0;line-height:normal}.modal-content h2.pf-dynamic-area,.modal-content h4.pf-dynamic-area,.panel-body h2.pf-dynamic-area,.panel-body h4.pf-dynamic-area{min-height:0;margin:0 0 10px 0}.modal-content h2.pf-dynamic-area>img,.modal-content h4.pf-dynamic-area>img,.panel-body h2.pf-dynamic-area>img,.panel-body h4.pf-dynamic-area>img{margin:-10px 5px -10px -10px;width:35px}.modal-content h2[data-toggle="collapse"],.modal-content h4[data-toggle="collapse"],.panel-body h2[data-toggle="collapse"],.panel-body h4[data-toggle="collapse"]{cursor:pointer}.modal-content h2[data-toggle="collapse"]:hover:after,.modal-content h4[data-toggle="collapse"]:hover:after,.panel-body h2[data-toggle="collapse"]:hover:after,.panel-body h4[data-toggle="collapse"]:hover:after{color:#e28a0d !important}.modal-content h2[data-toggle="collapse"]:after,.modal-content h4[data-toggle="collapse"]:after,.panel-body h2[data-toggle="collapse"]:after,.panel-body h4[data-toggle="collapse"]:after{content:"\f078";font-family:"Font Awesome 5 Free";font-style:normal;font-weight:bold;font-size:13px;padding-right:10px;position:absolute;color:#e28a0d;top:10px;right:6px;will-change:transform, color}.modal-content h2[data-toggle="collapse"].collapsed:after,.modal-content h4[data-toggle="collapse"].collapsed:after,.panel-body h2[data-toggle="collapse"].collapsed:after,.panel-body h4[data-toggle="collapse"].collapsed:after{top:13px;right:5px;color:#63676a;-webkit-transform:rotate(90deg);-ms-transform:rotate(90deg);transform:rotate(90deg)}.modal-content .dataTables_wrapper+.alert{margin-top:10px}.modal-content .dataTable,.modal-content .table{font-size:10px;font-family:"Oxygen Bold","Helvetica Neue",Helvetica,Arial,sans-serif}.modal-content hr{margin:5px 0 15px 0;border-color:#63676a}.modal-content .well{margin-bottom:0}.modal-content .well .list-inline{margin-bottom:0}@media (min-width: 780px){.modal-content .fa-tree-child+.checkbox,.modal-content .editable-input .editable-checklist>div>.fa-tree-child+label,.editable-input .modal-content .editable-checklist>div>.fa-tree-child+label{margin-left:5px;display:inline-block;float:none;width:unset}}.modal-content .pf-wizard-navigation{margin:0}.modal-content .pf-wizard-navigation li:not(:last-child):before{border-top:1px solid #63676a;content:"";display:block;font-size:0;overflow:hidden;position:relative;top:12px;left:71px;right:1px;width:100%}.modal-content .pf-wizard-navigation li.finished:before{-moz-border-image:-moz-linear-gradient(left, #375959,#375959) 1 1%;-moz-border-image:linear-gradient(to right, #375959,#375959) 1 1%;-o-border-image:linear-gradient(to right, #375959,#375959) 1 1%;-webkit-border-image:-webkit-linear-gradient(left, #375959,#375959) 1 1%;-webkit-border-image:linear-gradient(to right, #375959,#375959) 1 1%;border-image:-moz-linear-gradient(left, #375959,#375959) 1 1%;border-image:-webkit-linear-gradient(left, #375959,#375959) 1 1%;border-image:linear-gradient(to right, #375959,#375959) 1 1%;border-bottom:0}.modal-content .pf-wizard-navigation li.active:before{-moz-border-image:-moz-linear-gradient(left, #4f9e4f,#63676a) 1 1%;-moz-border-image:linear-gradient(to right, #4f9e4f,#63676a) 1 1%;-o-border-image:linear-gradient(to right, #4f9e4f,#63676a) 1 1%;-webkit-border-image:-webkit-linear-gradient(left, #4f9e4f,#63676a) 1 1%;-webkit-border-image:linear-gradient(to right, #4f9e4f,#63676a) 1 1%;border-image:-moz-linear-gradient(left, #4f9e4f,#63676a) 1 1%;border-image:-webkit-linear-gradient(left, #4f9e4f,#63676a) 1 1%;border-image:linear-gradient(to right, #4f9e4f,#63676a) 1 1%;border-bottom:0}.modal-content .pf-wizard-navigation li>h6{color:#63676a;font-size:11px;margin:5px}.modal-content .pf-wizard-navigation li a:hover+h6{color:#adadad}.modal-content .pf-wizard-navigation li.active a:not(.btn-danger)+h6{color:#adadad}#pf-settings-dialog .form-group .btn-sm,#pf-settings-dialog .form-group .btn-group-sm>.btn{padding:4px 7px 3px}#pf-settings-dialog #pf-dialog-captcha-wrapper{margin:0;padding:3px 0}#pf-map-dialog #pf-map-dialog-character-select,#pf-map-dialog #pf-map-dialog-corporation-select,#pf-map-dialog #pf-map-dialog-alliance-select{width:535px}#pf-route-dialog #pf-route-dialog-map-select{width:300px !important}#pf-shortcuts-dialog td kbd+i{width:16px}#pf-shortcuts-dialog td kbd:last-of-type+i{display:none}#pf-manual-scrollspy{position:relative;height:700px;overflow:auto}#pf-manual-scrollspy .list-unstyled.well,#pf-manual-scrollspy .well.list-inline{display:inline-block}#pf-system-dialog .form-control-static.pf-dynamic-area{padding:7px;min-height:32px}.pf-system-dialog-select{width:300px !important}#pf-task-dialog .pf-task-dialog-status{min-height:inherit}#pf-task-dialog h4>small.pull-right{font-family:Arial, sans-serif;font-weight:bold;margin-top:-5px}#pf-map-info-logs{margin-bottom:10px}#pf-stats-dialog .pf-dynamic-area{margin-bottom:10px}#pf-structure-dialog #pf-structure-dialog-corporation-select,#pf-structure-dialog #pf-structure-dialog-type-select{width:267px !important}#pf-connection-info-dialog #pf-connection-info-dialog-type-select,#pf-connection-info-dialog #pf-connection-info-dialog-character-select{width:310px !important}.pf-sig-reader-dialog h4{margin-top:8px}.pf-sig-reader-dialog h4 .pf-system-progress-scanned{display:inline-block;margin-left:20px;width:calc(100% - 255px)}.pf-sig-reader-dialog h4 .pf-system-progress-scanned .progress{margin-bottom:2px}.pf-sig-reader-dialog h4 .progress-label-right{margin-left:8px;vertical-align:middle;font-size:11px;opacity:0.65}.pf-sig-reader-dialog #pf-sig-info{margin-bottom:10px}.pf-sig-reader-dialog .pf-sig-table-info tbody{pointer-events:none}.pf-sig-reader-dialog .pf-sig-table-info .editable-click.editable-disabled{color:inherit}.pf-jump-info-dialog blockquote{margin-top:15px;margin-bottom:5px}.pf-changelog-dialog .pf-dynamic-message-container{margin-bottom:20px}.pf-system-effect-dialog .dataTable{border-collapse:collapse}.pf-credits-dialog .pf-credits-logo-background{overflow:visible;background:url("../../img/logo_bg.png");background-size:cover;padding:20px;margin-bottom:20px}.pf-credits-dialog #pf-logo-container{width:355px;height:366px;margin:0 auto}.pf-credits-dialog .pf-dynamic-area{min-height:50px}.pf-credits-dialog .dl-horizontal{display:inline-block;width:48%}.pf-credits-dialog .btn{padding:0}.pf-credits-dialog blockquote{font-size:14px}.pf-sortable-handle:before{content:'\22EE\22EE\00A0';display:inline-block;cursor:-moz-grab !important;cursor:-webkit-grab !important;cursor:grab !important;color:#63676a;width:12px;transition:color 0.15s ease-out}.pf-sortable-handle:hover:before{color:#f0ad4e}.pf-sortable-ghost{opacity:0.7 !important}.pf-sortable-ghost .pf-sortable-handle{color:#f0ad4e}.pf-sortable-chosen{background:rgba(226,138,13,0.2)}.pf-sortable-dropzone:after{content:attr(data-area);display:flex;justify-content:center;align-items:center;height:100%;background-color:rgba(40,51,67,0.25);color:#c2760c;font-size:20px;text-transform:uppercase;font-weight:bold;position:absolute;top:0;left:0;width:100%;pointer-events:none;border:1px dashed #375959;border-radius:5px;border-top-left-radius:0;overflow:hidden;z-index:1}.pf-log-graph{height:100px;width:100%}.timeline{list-style:none;position:relative}.timeline:before{top:0;bottom:0;position:absolute;content:" ";width:1px;left:50%;margin-top:20px;background-image:url('data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgiPz4gPHN2ZyB2ZXJzaW9uPSIxLjEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PGRlZnM+PGxpbmVhckdyYWRpZW50IGlkPSJncmFkIiBncmFkaWVudFVuaXRzPSJvYmplY3RCb3VuZGluZ0JveCIgeDE9IjAuNSIgeTE9IjAuMCIgeDI9IjAuNSIgeTI9IjEuMCI+PHN0b3Agb2Zmc2V0PSIwJSIgc3RvcC1jb2xvcj0iIzRmOWU0ZiIvPjxzdG9wIG9mZnNldD0iMjUlIiBzdG9wLWNvbG9yPSIjNjM2NzZhIi8+PC9saW5lYXJHcmFkaWVudD48L2RlZnM+PHJlY3QgeD0iMCIgeT0iMCIgd2lkdGg9IjEwMCUiIGhlaWdodD0iMTAwJSIgZmlsbD0idXJsKCNncmFkKSIgLz48L3N2Zz4g');background-size:100%;background-image:-webkit-gradient(linear, 50% 0%, 50% 100%, color-stop(0%, #4f9e4f),color-stop(25%, #63676a));background-image:-moz-linear-gradient(top, #4f9e4f,#63676a 25%);background-image:-webkit-linear-gradient(top, #4f9e4f,#63676a 25%);background-image:linear-gradient(to bottom, #4f9e4f,#63676a 25%)}.timeline>li{margin-bottom:20px;position:relative}.timeline>li.timeline-first .timeline-title{color:#4f9e4f}.timeline>li.timeline-first .timeline-badge{background-color:#4f9e4f}.timeline>li:before,.timeline>li:after{content:" ";display:table}.timeline>li:after{clear:both}.timeline>li:before,.timeline>li:after{content:" ";display:table}.timeline>li:after{clear:both}.timeline>li>.timeline-panel{width:47%;float:left;border:1px solid #313335;padding:8px;position:relative;background-color:#313335;font-size:11px;-webkit-box-shadow:0 4px 10px rgba(0,0,0,0.4);box-shadow:0 4px 10px rgba(0,0,0,0.4);-moz-border-radius:5px;-webkit-border-radius:5px;border-radius:5px}.timeline>li>.timeline-panel:before{content:" ";position:absolute;top:10px;right:-8px;display:inline-block;border-top:7px solid transparent;border-left:7px solid #63676a;border-right:0 solid #63676a;border-bottom:7px solid transparent}.timeline>li>.timeline-panel:after{content:" ";position:absolute;top:10px;right:-8px;display:inline-block;border-top:7px solid transparent;border-left:7px solid #63676a;border-right:0 solid #63676a;border-bottom:7px solid transparent}.timeline>li>.timeline-badge{color:#2b2b2b;width:23px;height:23px;line-height:23px;text-align:center;position:absolute;top:6px;left:50%;margin-left:-11px;background-color:#63676a;z-index:100;-moz-border-radius:50%;-webkit-border-radius:50%;border-radius:50%}.timeline>li>.timeline-badge>i{vertical-align:middle}.timeline>li.timeline-inverted>.timeline-panel{float:right}.timeline>li.timeline-inverted>.timeline-panel:before{border-left-width:0;border-right-width:7px;left:-8px;right:auto}.timeline>li.timeline-inverted>.timeline-panel:after{border-left-width:0;border-right-width:8px;left:-9px;right:auto}.timeline-title{margin-top:0;color:inherit}.timeline-body>hr{display:none}.timeline-body>hr ~ *{display:none}.timeline-body>p,.timeline-body>ul{margin-bottom:0;list-style-type:disc;margin-left:15px}.timeline-body>p+p{margin-top:5px}.timeline-footer>.timeline-title{margin-top:10px;margin-bottom:0}@media (max-width: 1200px){ul.timeline:before{left:40px}ul.timeline>li>.timeline-panel{width:calc(100% - 62px)}ul.timeline>li>.timeline-badge{left:29px;margin-left:0;top:6px}ul.timeline>li>.timeline-panel{float:right}ul.timeline>li>.timeline-panel:before{border-left-width:0;border-right-width:7px;left:-8px;right:auto}ul.timeline>li>.timeline-panel:after{border-left-width:0;border-right-width:7px;left:-8px;right:auto}}.popover{z-index:1060;max-width:600px}.popover .arrow{pointer-events:none}.popover .popover-title{text-transform:capitalize;font-family:"Arial","Oxygen Bold","Helvetica Neue",Helvetica,sans-serif;font-weight:bold}.popover .popover-title kbd{line-height:90%;vertical-align:middle;box-shadow:none}.popover .popover-content{font-family:"Arial","Oxygen Bold","Helvetica Neue",Helvetica,sans-serif}.popover .popover-content>.hidden+.popover-footer,.popover .popover-content>.popover-footer:first-child{border-top-right-radius:5px;border-top-left-radius:5px}.popover .popover-footer{margin:0;padding:8px 14px;background-color:#353739;border-top:1px solid #303234;border-bottom-right-radius:5px;border-bottom-left-radius:5px}.popover img{-moz-border-radius:3px;-webkit-border-radius:3px;border-radius:3px}.popover h4{color:#adadad}.popover table{color:#adadad;line-height:16px;font-size:11px}.popover table td{padding:0 4px;vertical-align:middle !important}.popover .select2-container{margin-top:-1px;margin-left:-1px}.popover-small .popover-title{padding:4px 6px}.popover-small .popover-content{padding:4px 2px 4px}.popover-small .popover-content-inner{padding:7px 6px 0}.popover-small .popover-footer{padding:6px 6px}.pf-popover{display:initial}.pf-popover .popover-content{padding:0}.pf-popover h6{white-space:nowrap;margin-right:50px}.pf-popover h6:before,.pf-popover h6:after{content:" ";display:table}.pf-popover h6:after{clear:both}.pf-popover .well{margin-top:7px;margin-bottom:10px}.pf-popover .list-group{margin:0}.pf-popover .list-group .list-group-item{color:#313335}.pf-popover .list-group .list-group-item:hover{color:#1d1d1d}.pf-popover .list-group .list-group-item.disabled{background-color:#3c3f41;color:#63676a;cursor:not-allowed}.pf-popover .list-group .list-group-item img{width:30px;margin:-8px 10px -6px -8px;border-radius:0}.pf-popover .list-group .list-group-item i{margin-right:20px}.pf-popover .pf-popover-list-icon{width:28px;margin:5px 0}.pf-popover .pf-popover-list-icon:first-child{margin-left:8px}.pf-popover .pf-popover-list-icon:last-child{margin-right:8px}.pf-popover-character .table>tbody>tr>td{border:none;white-space:nowrap}.pf-popover-character .table>tbody>tr>td:first-child+td{padding:0 5px}.pf-popover-character .well{margin-bottom:0;line-height:13px}.ribbon-wrapper{width:72px;height:88px;overflow:hidden;position:absolute;top:-3px;right:-3px;pointer-events:none}.ribbon{font:bold 12px "Oxygen Bold","Helvetica Neue",Helvetica,Arial,sans-serif;color:#2b2b2b;text-align:center;text-shadow:rgba(255,255,255,0.2) 0px 1px 0px;position:relative;padding:3px 0;left:-4px;top:16px;width:99px;-webkit-box-shadow:2px 3px 3px rgba(0,0,0,0.2);box-shadow:2px 3px 3px rgba(0,0,0,0.2);-moz-transform:rotate(45deg);-ms-transform:rotate(45deg);-webkit-transform:rotate(45deg);transform:rotate(45deg)}.ribbon:before,.ribbon:after{content:"";border-left:3px solid transparent;border-right:3px solid transparent;position:absolute;bottom:-3px}.ribbon.ribbon-default{color:#adadad;background-color:#353739;background-image:url('data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgiPz4gPHN2ZyB2ZXJzaW9uPSIxLjEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PGRlZnM+PGxpbmVhckdyYWRpZW50IGlkPSJncmFkIiBncmFkaWVudFVuaXRzPSJvYmplY3RCb3VuZGluZ0JveCIgeDE9IjAuNSIgeTE9IjAuMCIgeDI9IjAuNSIgeTI9IjEuMCI+PHN0b3Agb2Zmc2V0PSIwJSIgc3RvcC1jb2xvcj0iIzJkMzAzMSIvPjxzdG9wIG9mZnNldD0iMTAwJSIgc3RvcC1jb2xvcj0iIzJhMmIyZCIvPjwvbGluZWFyR3JhZGllbnQ+PC9kZWZzPjxyZWN0IHg9IjAiIHk9IjAiIHdpZHRoPSIxMDAlIiBoZWlnaHQ9IjEwMCUiIGZpbGw9InVybCgjZ3JhZCkiIC8+PC9zdmc+IA==');background-size:100%;background-image:-webkit-gradient(linear, 50% 0%, 50% 100%, color-stop(0%, #2d3031),color-stop(100%, #2a2b2d));background-image:-moz-linear-gradient(top, #2d3031,#2a2b2d);background-image:-webkit-linear-gradient(top, #2d3031,#2a2b2d);background-image:linear-gradient(to bottom, #2d3031,#2a2b2d)}.ribbon.ribbon-default:before,.ribbon.ribbon-default:after{border-top:3px solid #000}.ribbon.ribbon-green{background-color:#5cb85c;background-image:url('data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgiPz4gPHN2ZyB2ZXJzaW9uPSIxLjEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PGRlZnM+PGxpbmVhckdyYWRpZW50IGlkPSJncmFkIiBncmFkaWVudFVuaXRzPSJvYmplY3RCb3VuZGluZ0JveCIgeDE9IjAuNSIgeTE9IjAuMCIgeDI9IjAuNSIgeTI9IjEuMCI+PHN0b3Agb2Zmc2V0PSIwJSIgc3RvcC1jb2xvcj0iIzUxYjM1MSIvPjxzdG9wIG9mZnNldD0iMTAwJSIgc3RvcC1jb2xvcj0iIzRhOTQ0YSIvPjwvbGluZWFyR3JhZGllbnQ+PC9kZWZzPjxyZWN0IHg9IjAiIHk9IjAiIHdpZHRoPSIxMDAlIiBoZWlnaHQ9IjEwMCUiIGZpbGw9InVybCgjZ3JhZCkiIC8+PC9zdmc+IA==');background-size:100%;background-image:-webkit-gradient(linear, 50% 0%, 50% 100%, color-stop(0%, #51b351),color-stop(100%, #4a944a));background-image:-moz-linear-gradient(top, #51b351,#4a944a);background-image:-webkit-linear-gradient(top, #51b351,#4a944a);background-image:linear-gradient(to bottom, #51b351,#4a944a)}.ribbon.ribbon-green:before,.ribbon.ribbon-green:after{border-top:3px solid #285028}.ribbon.ribbon-orange{background-color:#e28a0d;background-image:url('data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgiPz4gPHN2ZyB2ZXJzaW9uPSIxLjEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PGRlZnM+PGxpbmVhckdyYWRpZW50IGlkPSJncmFkIiBncmFkaWVudFVuaXRzPSJvYmplY3RCb3VuZGluZ0JveCIgeDE9IjAuNSIgeTE9IjAuMCIgeDI9IjAuNSIgeTI9IjEuMCI+PHN0b3Agb2Zmc2V0PSIwJSIgc3RvcC1jb2xvcj0iI2Q0ODEwYyIvPjxzdG9wIG9mZnNldD0iMTAwJSIgc3RvcC1jb2xvcj0iI2I0NmQwYiIvPjwvbGluZWFyR3JhZGllbnQ+PC9kZWZzPjxyZWN0IHg9IjAiIHk9IjAiIHdpZHRoPSIxMDAlIiBoZWlnaHQ9IjEwMCUiIGZpbGw9InVybCgjZ3JhZCkiIC8+PC9zdmc+IA==');background-size:100%;background-image:-webkit-gradient(linear, 50% 0%, 50% 100%, color-stop(0%, #d4810c),color-stop(100%, #b46d0b));background-image:-moz-linear-gradient(top, #d4810c,#b46d0b);background-image:-webkit-linear-gradient(top, #d4810c,#b46d0b);background-image:linear-gradient(to bottom, #d4810c,#b46d0b)}.ribbon.ribbon-orange:before,.ribbon.ribbon-orange:after{border-top:3px solid #6c4107}.ribbon.ribbon-red{background-color:#d9534f;background-image:url('data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgiPz4gPHN2ZyB2ZXJzaW9uPSIxLjEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PGRlZnM+PGxpbmVhckdyYWRpZW50IGlkPSJncmFkIiBncmFkaWVudFVuaXRzPSJvYmplY3RCb3VuZGluZ0JveCIgeDE9IjAuNSIgeTE9IjAuMCIgeDI9IjAuNSIgeTI9IjEuMCI+PHN0b3Agb2Zmc2V0PSIwJSIgc3RvcC1jb2xvcj0iI2M5MzAyYyIvPjxzdG9wIG9mZnNldD0iMTAwJSIgc3RvcC1jb2xvcj0iI2E4MjgyNCIvPjwvbGluZWFyR3JhZGllbnQ+PC9kZWZzPjxyZWN0IHg9IjAiIHk9IjAiIHdpZHRoPSIxMDAlIiBoZWlnaHQ9IjEwMCUiIGZpbGw9InVybCgjZ3JhZCkiIC8+PC9zdmc+IA==');background-size:100%;background-image:-webkit-gradient(linear, 50% 0%, 50% 100%, color-stop(0%, #c9302c),color-stop(100%, #a82824));background-image:-moz-linear-gradient(top, #c9302c,#a82824);background-image:-webkit-linear-gradient(top, #c9302c,#a82824);background-image:linear-gradient(to bottom, #c9302c,#a82824)}.ribbon.ribbon-red:before,.ribbon.ribbon-red:after{border-top:3px solid #541412}.ribbon.ribbon-blue{background-color:#428bca;background-image:url('data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgiPz4gPHN2ZyB2ZXJzaW9uPSIxLjEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PGRlZnM+PGxpbmVhckdyYWRpZW50IGlkPSJncmFkIiBncmFkaWVudFVuaXRzPSJvYmplY3RCb3VuZGluZ0JveCIgeDE9IjAuNSIgeTE9IjAuMCIgeDI9IjAuNSIgeTI9IjEuMCI+PHN0b3Agb2Zmc2V0PSIwJSIgc3RvcC1jb2xvcj0iIzM3ODRjNSIvPjxzdG9wIG9mZnNldD0iMTAwJSIgc3RvcC1jb2xvcj0iIzJkNWM4NSIvPjwvbGluZWFyR3JhZGllbnQ+PC9kZWZzPjxyZWN0IHg9IjAiIHk9IjAiIHdpZHRoPSIxMDAlIiBoZWlnaHQ9IjEwMCUiIGZpbGw9InVybCgjZ3JhZCkiIC8+PC9zdmc+IA==');background-size:100%;background-image:-webkit-gradient(linear, 50% 0%, 50% 100%, color-stop(0%, #3784c5),color-stop(100%, #2d5c85));background-image:-moz-linear-gradient(top, #3784c5,#2d5c85);background-image:-webkit-linear-gradient(top, #3784c5,#2d5c85);background-image:linear-gradient(to bottom, #3784c5,#2d5c85)}.ribbon.ribbon-blue:before,.ribbon.ribbon-blue:after{border-top:3px solid #1a344c}.ribbon:before{left:0}.ribbon:after{right:0}.pf-loading-bars-container{position:relative;z-index:4;margin:0 auto;left:5px;right:19px;width:70px;height:50px;list-style:none}.pf-loading-bars-container .pf-loading-bars-loader{position:absolute;z-index:3;margin:0 auto;left:0;right:0;top:50%;margin-top:-19px;width:56px;height:37px;list-style:none}.pf-loading-bars-container .pf-loading-bars-loader li{background-color:#5cb85c;width:6px;height:6px;float:right;margin-right:3px !important;-webkit-box-shadow:0px 12px 6px rgba(0,0,0,0.2);box-shadow:0px 12px 6px rgba(0,0,0,0.2)}.pf-loading-bars-container .pf-loading-bars-loader li:first-child{-webkit-animation:cssload-loadbars 1.75s cubic-bezier(0.645, 0.045, 0.355, 1) infinite 0s;animation:cssload-loadbars 1.75s cubic-bezier(0.645, 0.045, 0.355, 1) infinite 0s}.pf-loading-bars-container .pf-loading-bars-loader li:nth-child(2){-webkit-animation:cssload-loadbars 1.75s ease-in-out infinite -0.35s;animation:cssload-loadbars 1.75s ease-in-out infinite -0.35s}.pf-loading-bars-container .pf-loading-bars-loader li:nth-child(3){-webkit-animation:cssload-loadbars 1.75s ease-in-out infinite -0.7s;animation:cssload-loadbars 1.75s ease-in-out infinite -0.7s}.pf-loading-bars-container .pf-loading-bars-loader li:nth-child(4){-webkit-animation:cssload-loadbars 1.75s ease-in-out infinite -1.05s;animation:cssload-loadbars 1.75s ease-in-out infinite -1.05s}.pf-loading-bars-container .pf-loading-bars-loader li:nth-child(5){-webkit-animation:cssload-loadbars 1.75s ease-in-out infinite -1.4s;animation:cssload-loadbars 1.75s ease-in-out infinite -1.4s}.pf-loading-bars-container .pf-loading-bars-loader li:nth-child(6){-webkit-animation:cssload-loadbars 1.75s ease-in-out infinite -1.75s;animation:cssload-loadbars 1.75s ease-in-out infinite -1.75s}@-webkit-keyframes cssload-loadbars{0%{height:6px;margin-top:16px}33%{height:6px;margin-top:16px}66%{height:31px;margin-top:0px}100%{height:6px;margin-top:16px}}@-moz-keyframes cssload-loadbars{0%{height:6px;margin-top:16px}33%{height:6px;margin-top:16px}66%{height:31px;margin-top:0px}100%{height:6px;margin-top:16px}}@-ms-keyframes cssload-loadbars{0%{height:6px;margin-top:16px}33%{height:6px;margin-top:16px}66%{height:31px;margin-top:0px}100%{height:6px;margin-top:16px}}@keyframes cssload-loadbars{0%{height:6px;margin-top:16px}33%{height:6px;margin-top:16px}66%{height:31px;margin-top:0px}100%{height:6px;margin-top:16px}}.pf-landing-sticky-panel{position:fixed;min-width:65px;border-radius:5px;padding:8px 10px;box-shadow:0 4px 10px rgba(0,0,0,0.4);text-shadow:#000000b8 0 1px 1px;z-index:100;background-color:rgba(43,43,43,0.75)}.pf-landing-sticky-panel h4{margin:5px 0 10px 0}.pf-landing-sticky-panel ul{margin-bottom:0;margin-left:25px}.pf-landing-sticky-panel ul+h4{margin-top:10px}.pf-landing-sticky-panel--top{top:50px}.pf-landing-sticky-panel--bottom{bottom:10px}.pf-landing-sticky-panel--left{left:10px}.pf-landing-sticky-panel--right{right:10px}.panel-heading.note-toolbar{background-color:#313335}.panel-heading.note-toolbar .dropdown-toggle>i+span{margin-left:3px}.panel-heading.note-toolbar .dropdown-menu>.note-btn-group:first-child{margin-bottom:3px}.note-editor.note-frame{border:none;background-color:transparent;margin-bottom:0}.note-editor.note-frame .note-editing-area .note-editable{color:#63676a;background-color:transparent;will-change:height;border:1px solid transparent}.note-editor.note-frame .note-editing-area .note-editable.has-error{border-color:#d9534f}.note-editor.note-frame .note-statusbar{background-color:#313335;padding:1px 0;border-top:0}.note-editor.note-frame .note-statusbar .note-resizebar:hover .note-icon-bar{border-top:1px solid #e28a0d}.note-editor.note-frame .note-statusbar .note-resizebar .note-icon-bar{border-top:1px solid #63676a;-webkit-transition:border-top 0.15s ease-out;transition:border-top 0.15s ease-out}[ui-pnotify].ui-pnotify.stack-bar-bottom{width:70%}.youtube{background-position:center;background-repeat:no-repeat;position:relative;display:inline-block;overflow:hidden;transition:all 200ms ease-out;cursor:pointer}.youtube .play{background:url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAEAAAABACAYAAACqaXHeAAAERklEQVR4nOWbTWhcVRTHb1IJVoxGtNCNdal2JYJReC6GWuO83PM/59yUS3FRFARdFlwYP1CfiojQWt36sRCUurRIdVFXIn41lAoVdRGrG1M01YpKrWjiYmaSl8ybZJL3cd+YA//NLObd3++eO8x79z5jSq5Gw+8kov0AP8vMR5l1BtBZQM4B8ks75wCdZdYZZj5qLZ4hov2Nht9Z9vhKKSIaB/gI4M4w62KeAO6Mte4lYOq20FxrlqqOibhHmeWbvNC9ZfDX1mLae391aN6limO/gwgvAPJbWeAZuSDingdwXTBw7/0IsyaA/Fkh+KqOkD+YNfHej1QKD+y7iVlOhgLvFqFfNJvNGyuBJ+KDAF8MDd0tgS8y64OlgSdJMsysL4cG7SOHkyQZLhTee7+d2R2rAVy/S+Jd7/32ouBHAP4gNNRGQyTHc/84NhqNywZp5rvjjnnvt21aABFeCQ+RLwAf2hQ8s7sv9OCLk6AHNgQvIrvbfzKCD76g/O6cu7lf/iER/aQGgy448pExZmhdegAPhR9sObFWH1gT3lp7DaA/5bkIgJhZPgsNmz02novj+KqeApj1ubwXWe4kdyeznAgNvTpE/HQmvKqOMeuFogTUVQSRno+iaLRLAJF7uIgL9O4ubgL8aWgB7S44mNX+35YpICUiAvS9sBLkq1WzT+NFffl6AuoiApi6NT37h6sWkBIRZGkQ8YtLgyji6e1mBYTqCEBPG2Naz+0BWQgtoGoRgCzEsd9hAN1X5BfnFZASUfrSAFQNsyZ1FJASUVpHiLinDJG8U2cBZYogkrcNs5waBAGdstbeU9zdqpw0gPwwSAI6VUxHyFlDpOcHUUBBIuYNs14aZAE5RVwyzPr3/0EAEY0TyfGNjBWQvwZ +CTSbehfAH29mrID8bET0+0EUkAd8WYDOmqJ3ecsG30yr9wqRfm6Y+a1BEFDEjHfHvWmY9ck6CygHvBVr8Xhtb4ZE5HZA3y8DvBNA1TjnrmXWf+sioMwZX5V/VHXMGGMMoKdDCxCRvRWBdzKzdHEO+EisilbPyopHYqp6S9UCAsz4iojI7hUDAtyXVQgIDd6KnOoaWNkbI6FaPSuZGyMArsi7MZoloB4zviI/Nhr3X95jltwTRQmoIfgisy5ai+me67OI7fE4nrqjrqfK1t0eby0FPRB6oGVlchL3rgnfrq19RKbVBdhV9IOSwJmfmJi4vi/4ThERitwyCxVAFqydshuCX5awhQ9KtmuIWd8IDZED/nXT77rvVVv6sHRKwjYi91poqP7Dr+Y6JJ1VSZIMA3wkPNy6bX+o8Bcm0sXMdwM8Fxo0A3xORPaWBp6uPXsmbxCRD0NDL0dOANhVCXy6iAjMcjbcrMt3RITKwdMVRdFo+y5yvkL4eWZ+zHt/ZVD4dEVRNGotpst+dZZZH8k86lqn2pIvT/eqrNfn2xuyqYPZ8mv7s8pfn/8Pybm4TIjanscAAAAASUVORK5CYII=") no-repeat center center;background-size:64px 64px;position:absolute;height:100%;width:100%;opacity:.8;filter:alpha(opacity=80);transition:all 0.2s ease-out}.youtube .play:hover{opacity:1;filter:alpha(opacity=100)} /*# sourceMappingURL=pathfinder.css.map */ diff --git a/public/css/v2.0.0/pathfinder.css.map b/public/css/v2.0.0/pathfinder.css.map index 3bbe2b5a..b1696cd8 100644 --- a/public/css/v2.0.0/pathfinder.css.map +++ b/public/css/v2.0.0/pathfinder.css.map @@ -1,7 +1,7 @@ { "version": 3, -"mappings": "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", -"sources": ["../../../sass/pathfinder.scss","file:///C:/Ruby25-x64/lib/ruby/gems/2.5.0/gems/compass-core-1.0.3/stylesheets/compass/reset/_utilities.scss","../../../sass/_variables.scss","../../../sass/_bootstrap.scss","../../../sass/bootstrap/_scaffolding.scss","../../../sass/bootstrap/_mixins.scss","../../../sass/bootstrap/_type.scss","../../../sass/bootstrap/_code.scss","../../../sass/bootstrap/_grid.scss","../../../sass/bootstrap/_tables.scss","../../../sass/bootstrap/_forms.scss","../../../sass/_colors.scss","../../../sass/bootstrap/_buttons.scss","../../../sass/bootstrap/_component-animations.scss","../../../sass/bootstrap/_dropdowns.scss","file:///C:/Ruby25-x64/lib/ruby/gems/2.5.0/gems/compass-core-1.0.3/stylesheets/compass/_support.scss","file:///C:/Ruby25-x64/lib/ruby/gems/2.5.0/gems/compass-core-1.0.3/stylesheets/compass/css3/_border-radius.scss","../../../sass/bootstrap/_button-groups.scss","../../../sass/bootstrap/_input-groups.scss","../../../sass/bootstrap/_navs.scss","../../../sass/bootstrap/_navbar.scss","../../../sass/bootstrap/_breadcrumbs.scss","../../../sass/bootstrap/_pagination.scss","../../../sass/bootstrap/_pager.scss","../../../sass/bootstrap/_labels.scss","../../../sass/bootstrap/_badges.scss","../../../sass/bootstrap/_thumbnails.scss","../../../sass/bootstrap/_alerts.scss","../../../sass/bootstrap/_progress-bars.scss","../../../sass/bootstrap/_media.scss","../../../sass/bootstrap/_list-group.scss","../../../sass/bootstrap/_panels.scss","../../../sass/bootstrap/_wells.scss","../../../sass/bootstrap/_close.scss","../../../sass/bootstrap/_modals.scss","../../../sass/bootstrap/_tooltip.scss","../../../sass/bootstrap/_popovers.scss","../../../sass/bootstrap/_utilities.scss","../../../sass/bootstrap/_responsive-utilities.scss","../../../sass/library/fontawesome/_fontawesome.scss","../../../sass/library/fontawesome/_core.scss","../../../sass/library/fontawesome/_larger.scss","../../../sass/library/fontawesome/_fixed-width.scss","../../../sass/library/fontawesome/_variables.scss","../../../sass/library/fontawesome/_list.scss","../../../sass/library/fontawesome/_bordered-pulled.scss","../../../sass/library/fontawesome/_animated.scss","../../../sass/library/fontawesome/_rotated-flipped.scss","../../../sass/library/fontawesome/_mixins.scss","../../../sass/library/fontawesome/_stacked.scss","../../../sass/library/fontawesome/_icons.scss","../../../sass/library/fontawesome/_screen-reader.scss","../../../sass/library/fontawesome/_regular.scss","../../../sass/library/fontawesome/_solid.scss","../../../sass/library/fontawesome/_brands.scss","../../../sass/library/custom-scrollbar/_mCustomScrollbar.scss","../../../sass/library/data-tables/DataTables-1.10.18/_jquery.dataTables.scss","../../../sass/library/data-tables/Buttons-1.5.6/_mixins.scss","../../../sass/library/data-tables/Buttons-1.5.6/_common.scss","../../../sass/library/data-tables/Buttons-1.5.6/_buttons.dataTables.scss","../../../sass/library/data-tables/Responsive-2.2.2/_responsive.dataTables.scss","../../../sass/library/data-tables/Select-1.3.0/_select.dataTables.scss","../../../sass/library/data-tables/_dataTables-fontAwesome.scss","../../../sass/library/x-editable/_bootstrap-editable.scss","../../../sass/library/slidebars/_slidebars.scss","../../../sass/library/easy-pie-chart/_easyPieChart.scss","../../../sass/library/select2/_core.scss","../../../sass/library/select2/_single.scss","../../../sass/library/select2/_multiple.scss","../../../sass/library/select2/_dropdown.scss","../../../sass/library/select2/theme/pathfinder/_single.scss","../../../sass/library/select2/theme/pathfinder/_defaults.scss","../../../sass/library/select2/theme/pathfinder/_multiple.scss","../../../sass/library/select2/theme/pathfinder/_layout.scss","file:///C:/Ruby25-x64/lib/ruby/gems/2.5.0/gems/compass-core-1.0.3/stylesheets/compass/css3/_appearance.scss","../../../sass/library/blue-imp-gallery/_blueimp-gallery.scss","../../../sass/library/blue-imp-gallery/_bootstrap-image-gallery.scss","../../../sass/library/bootstrap-toggle/_bootstrap-toggle.scss","../../../sass/library/bootstrap-checkbox/_awesome-bootstrap-checkbox.scss","../../../sass/library/summernote/_summernote.scss","../../../sass/_main.scss","../../../sass/_main-colorpallet.scss","../../../sass/layout/_animation.scss","../../../sass/layout/_fonts.scss","../../../sass/layout/_main.scss","file:///C:/Ruby25-x64/lib/ruby/gems/2.5.0/gems/compass-core-1.0.3/stylesheets/compass/css3/_images.scss","../../../sass/layout/_landing.scss","../../../sass/layout/_breadcrumb.scss","../../../sass/layout/_logo.scss","../../../sass/layout/_map_module.scss","../../../sass/layout/_map.scss","../../../sass/layout/module/_demo.scss","../../../sass/layout/module/_system_info.scss","../../../sass/layout/module/_system_graph.scss","../../../sass/layout/module/_system_signature.scss","../../../sass/layout/module/_system_route.scss","../../../sass/layout/module/_system_intel.scss","../../../sass/layout/module/_system_killboard.scss","../../../sass/layout/module/_connection_info.scss","../../../sass/layout/_forms.scss","../../../sass/layout/_dialogs.scss","../../../sass/layout/_sortable.scss","../../../sass/layout/_log.scss","../../../sass/layout/_timeline.scss","../../../sass/layout/_popover.scss","../../../sass/layout/_ribbon.scss","../../../sass/layout/_loading_bar.scss","../../../sass/layout/_sticky_panel.scss","../../../sass/layout/_summernote.scss","../../../sass/layout/_pnotify.scss","../../../sass/layout/_youtube.scss"], +"mappings": "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", +"sources": ["../../../sass/pathfinder.scss","file:///C:/Ruby25-x64/lib/ruby/gems/2.5.0/gems/compass-core-1.0.3/stylesheets/compass/reset/_utilities.scss","../../../sass/_variables.scss","../../../sass/_bootstrap.scss","../../../sass/bootstrap/_scaffolding.scss","../../../sass/bootstrap/_mixins.scss","../../../sass/bootstrap/_type.scss","../../../sass/bootstrap/_code.scss","../../../sass/bootstrap/_grid.scss","../../../sass/bootstrap/_tables.scss","../../../sass/bootstrap/_forms.scss","../../../sass/_colors.scss","../../../sass/bootstrap/_buttons.scss","../../../sass/bootstrap/_component-animations.scss","../../../sass/bootstrap/_dropdowns.scss","file:///C:/Ruby25-x64/lib/ruby/gems/2.5.0/gems/compass-core-1.0.3/stylesheets/compass/_support.scss","file:///C:/Ruby25-x64/lib/ruby/gems/2.5.0/gems/compass-core-1.0.3/stylesheets/compass/css3/_border-radius.scss","../../../sass/bootstrap/_button-groups.scss","../../../sass/bootstrap/_input-groups.scss","../../../sass/bootstrap/_navs.scss","../../../sass/bootstrap/_navbar.scss","../../../sass/bootstrap/_breadcrumbs.scss","../../../sass/bootstrap/_pagination.scss","../../../sass/bootstrap/_pager.scss","../../../sass/bootstrap/_labels.scss","../../../sass/bootstrap/_badges.scss","../../../sass/bootstrap/_thumbnails.scss","../../../sass/bootstrap/_alerts.scss","../../../sass/bootstrap/_progress-bars.scss","../../../sass/bootstrap/_media.scss","../../../sass/bootstrap/_list-group.scss","../../../sass/bootstrap/_panels.scss","../../../sass/bootstrap/_wells.scss","../../../sass/bootstrap/_close.scss","../../../sass/bootstrap/_modals.scss","../../../sass/bootstrap/_tooltip.scss","../../../sass/bootstrap/_popovers.scss","../../../sass/bootstrap/_utilities.scss","../../../sass/bootstrap/_responsive-utilities.scss","../../../sass/library/fontawesome/_fontawesome.scss","../../../sass/library/fontawesome/_core.scss","../../../sass/library/fontawesome/_larger.scss","../../../sass/library/fontawesome/_fixed-width.scss","../../../sass/library/fontawesome/_variables.scss","../../../sass/library/fontawesome/_list.scss","../../../sass/library/fontawesome/_bordered-pulled.scss","../../../sass/library/fontawesome/_animated.scss","../../../sass/library/fontawesome/_rotated-flipped.scss","../../../sass/library/fontawesome/_mixins.scss","../../../sass/library/fontawesome/_stacked.scss","../../../sass/library/fontawesome/_icons.scss","../../../sass/library/fontawesome/_screen-reader.scss","../../../sass/library/fontawesome/_regular.scss","../../../sass/library/fontawesome/_solid.scss","../../../sass/library/fontawesome/_brands.scss","../../../sass/library/custom-scrollbar/_mCustomScrollbar.scss","../../../sass/library/data-tables/DataTables-1.10.18/_jquery.dataTables.scss","../../../sass/library/data-tables/Buttons-1.5.6/_mixins.scss","../../../sass/library/data-tables/Buttons-1.5.6/_common.scss","../../../sass/library/data-tables/Buttons-1.5.6/_buttons.dataTables.scss","../../../sass/library/data-tables/Responsive-2.2.2/_responsive.dataTables.scss","../../../sass/library/data-tables/Select-1.3.0/_select.dataTables.scss","../../../sass/library/data-tables/RowGroup-1.1.1/_rowGroup.dataTables.scss","../../../sass/library/data-tables/_dataTables-fontAwesome.scss","../../../sass/library/x-editable/_bootstrap-editable.scss","../../../sass/library/slidebars/_slidebars.scss","../../../sass/library/easy-pie-chart/_easyPieChart.scss","../../../sass/library/select2/_core.scss","../../../sass/library/select2/_single.scss","../../../sass/library/select2/_multiple.scss","../../../sass/library/select2/_dropdown.scss","../../../sass/library/select2/theme/pathfinder/_single.scss","../../../sass/library/select2/theme/pathfinder/_defaults.scss","../../../sass/library/select2/theme/pathfinder/_multiple.scss","../../../sass/library/select2/theme/pathfinder/_layout.scss","file:///C:/Ruby25-x64/lib/ruby/gems/2.5.0/gems/compass-core-1.0.3/stylesheets/compass/css3/_appearance.scss","../../../sass/library/blue-imp-gallery/_blueimp-gallery.scss","../../../sass/library/blue-imp-gallery/_bootstrap-image-gallery.scss","../../../sass/library/bootstrap-toggle/_bootstrap-toggle.scss","../../../sass/library/bootstrap-checkbox/_awesome-bootstrap-checkbox.scss","../../../sass/library/summernote/_summernote.scss","../../../sass/_main.scss","../../../sass/_main-colorpallet.scss","../../../sass/layout/_animation.scss","../../../sass/layout/_fonts.scss","../../../sass/layout/_main.scss","file:///C:/Ruby25-x64/lib/ruby/gems/2.5.0/gems/compass-core-1.0.3/stylesheets/compass/css3/_images.scss","../../../sass/layout/_landing.scss","../../../sass/layout/_breadcrumb.scss","../../../sass/layout/_logo.scss","../../../sass/layout/_map_module.scss","../../../sass/layout/_map.scss","../../../sass/layout/module/_demo.scss","../../../sass/layout/module/_system_info.scss","../../../sass/layout/module/_system_graph.scss","../../../sass/layout/module/_system_signature.scss","../../../sass/layout/module/_system_route.scss","../../../sass/layout/module/_system_intel.scss","../../../sass/layout/module/_system_killboard.scss","../../../sass/layout/module/_connection_info.scss","../../../sass/layout/module/_global_thera.scss","../../../sass/layout/_forms.scss","../../../sass/layout/_dialogs.scss","../../../sass/layout/_sortable.scss","../../../sass/layout/_log.scss","../../../sass/layout/_timeline.scss","../../../sass/layout/_popover.scss","../../../sass/layout/_ribbon.scss","../../../sass/layout/_loading_bar.scss","../../../sass/layout/_sticky_panel.scss","../../../sass/layout/_summernote.scss","../../../sass/layout/_pnotify.scss","../../../sass/layout/_youtube.scss"], "names": [], "file": "pathfinder.css" } \ No newline at end of file diff --git a/public/js/v1.5.6/lib/pnotify/pnotify.js b/public/js/v1.5.6/lib/pnotify/pnotify.js deleted file mode 100644 index c5028cea..00000000 --- a/public/js/v1.5.6/lib/pnotify/pnotify.js +++ /dev/null @@ -1,2040 +0,0 @@ -var _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; - -var _typeof = typeof Symbol === "function" && typeof Symbol.iterator === "symbol" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; - -/* src/PNotify.html generated by Svelte v2.16.1 */ -(function (global, factory) { - (typeof exports === "undefined" ? "undefined" : _typeof(exports)) === "object" && typeof module !== "undefined" ? module.exports = factory() : typeof define === "function" && define.amd ? define('PNotify', factory) : global.PNotify = factory(); -})(this, function () { - "use strict"; - - var PNotify = void 0; - - var posTimer = void 0; // Position all timer. - - // These actions need to be done once the DOM is ready. - var onDocumentLoaded = function onDocumentLoaded() { - PNotify.defaultStack.context = document.body; - // Reposition the notices when the window resizes. - window.addEventListener('resize', function () { - if (posTimer) { - clearTimeout(posTimer); - } - posTimer = setTimeout(function () { - PNotify.positionAll(); - }, 10); - }); - }; - - // Creates the background overlay for modal stacks. - var createStackOverlay = function createStackOverlay(stack) { - var overlay = document.createElement('div'); - overlay.classList.add('ui-pnotify-modal-overlay'); - if (stack.context !== document.body) { - overlay.style.height = stack.context.scrollHeight + 'px'; - overlay.style.width = stack.context.scrollWidth + 'px'; - } - // Close the notices on overlay click. - overlay.addEventListener('click', function () { - if (stack.overlayClose) { - PNotify.closeStack(stack); - } - }); - stack.overlay = overlay; - }; - - var insertStackOverlay = function insertStackOverlay(stack) { - if (stack.overlay.parentNode !== stack.context) { - stack.overlay = stack.context.insertBefore(stack.overlay, stack.context.firstChild); - } - }; - - var removeStackOverlay = function removeStackOverlay(stack) { - if (stack.overlay.parentNode) { - stack.overlay.parentNode.removeChild(stack.overlay); - } - }; - - // Default arguments for the new notice helper functions. - var getDefaultArgs = function getDefaultArgs(options, type) { - if ((typeof options === "undefined" ? "undefined" : _typeof(options)) !== 'object') { - options = { 'text': options }; - } - - // Only assign the type if it was requested, so we don't overwrite - // options.type if it has something assigned. - if (type) { - options.type = type; - } - - return { target: document.body, data: options }; - }; - - function _styles(_ref) { - var styling = _ref.styling; - - return (typeof styling === "undefined" ? "undefined" : _typeof(styling)) === 'object' ? styling : PNotify.styling[styling]; - } - - function _icons(_ref2) { - var icons = _ref2.icons; - - return (typeof icons === "undefined" ? "undefined" : _typeof(icons)) === 'object' ? icons : PNotify.icons[icons]; - } - - function _widthStyle(_ref3) { - var width = _ref3.width; - - return typeof width === 'string' ? 'width: ' + width + ';' : ''; - } - - function _minHeightStyle(_ref4) { - var minHeight = _ref4.minHeight; - - return typeof minHeight === 'string' ? 'min-height: ' + minHeight + ';' : ''; - } - - function data() { - var data = _extends({ - '_state': 'initializing', // The state can be 'initializing', 'opening', 'open', 'closing', and 'closed'. - '_timer': null, // Auto close timer. - '_animTimer': null, // Animation timer. - '_animating': false, // Stores what is currently being animated (in or out). - '_animatingClass': '', // Stores the class that adds entry/exit animation effects. - '_moveClass': '', // Stores the class that adds movement animation effects. - '_timerHide': false, // Stores whether the notice was hidden by a timer. - '_moduleClasses': [], // Modules can add classes here to be added to the notice element. (They should play nice and not remove classes that aren't theirs.) - '_moduleIsNoticeOpen': false, // Modules that change how the notice displays (causing the notice element to not appear) can set this to true to make PNotify assume the notice has opened. - '_modules': {}, // Stores the instances of the modules. - '_modulesPrependContainer': PNotify.modulesPrependContainer, - '_modulesAppendContainer': PNotify.modulesAppendContainer - }, PNotify.defaults); - data.modules = _extends({}, PNotify.defaults.modules); - return data; - }; - - var methods = { - // This runs an event on all the modules. - runModules: function runModules(event) { - if (event === 'init') { - // Initializing a module should only be done if it has an init - // function, which means it's not rendered in the template. - for (var key in PNotify.modules) { - if (!PNotify.modules.hasOwnProperty(key)) { - continue; - } - if (typeof PNotify.modules[key].init === 'function') { - var _module = PNotify.modules[key].init(this); - this.initModule(_module); - } - } - } else { - var _get = this.get(), - _modules = _get._modules; - - for (var _module2 in _modules) { - if (!_modules.hasOwnProperty(_module2)) { - continue; - } - var moduleOptions = _extends({ - '_notice': this, - '_options': this.get() - }, this.get().modules[_module2]); - _modules[_module2].set(moduleOptions); - if (typeof _modules[_module2][event] === 'function') { - _modules[_module2][event](); - } - } - } - }, - - - // This passes module options to a module. - initModule: function initModule(module) { - var _get2 = this.get(), - modules = _get2.modules; - - if (!modules.hasOwnProperty(module.constructor.key)) { - modules[module.constructor.key] = {}; - } - var moduleOptions = _extends({ - '_notice': this, - '_options': this.get() - }, modules[module.constructor.key]); - module.initModule(moduleOptions); - - // Now save the module instance. - - var _get3 = this.get(), - _modules = _get3._modules; - - _modules[module.constructor.key] = module; - }, - update: function update(options) { - // Save old options. - var oldHide = this.get().hide; - var oldIcon = this.get().icon; - - this.set(options); - - // Run the modules. - this.runModules('update'); - - // Update the timed hiding. - if (!this.get().hide) { - this.cancelClose(); - } else if (!oldHide) { - this.queueClose(); - } - this.queuePosition(); - - // Font Awesome 5 replaces our lovely element with a gross SVG. In order - // to make it play nice with Svelte, we have to clear the element and - // make it again. - - var _get4 = this.get(), - icon = _get4.icon; - - if (icon !== oldIcon && (icon === true && this.get().icons === 'fontawesome5' || typeof icon === 'string' && icon.match(/(^| )fa[srlb]($| )/))) { - this.set({ 'icon': false }); - this.set({ 'icon': icon }); - } - - return this; - }, - - - // Display the notice. - open: function open() { - var _this = this; - - var _get5 = this.get(), - _state = _get5._state, - hide = _get5.hide; - - if (_state === 'opening') { - return; - } - if (_state === 'open') { - if (hide) { - this.queueClose(); - } - return; - } - this.set({ - '_state': 'opening', - // This makes the notice visibity: hidden; so its dimensions can be - // determined. - '_animatingClass': 'ui-pnotify-initial-hidden' - }); - // Run the modules. - this.runModules('beforeOpen'); - - var _get6 = this.get(), - stack = _get6.stack; - // If the notice is not in the DOM, or in the wrong context, append it. - - - if (!this.refs.elem.parentNode || stack && stack.context && stack.context !== this.refs.elem.parentNode) { - if (stack && stack.context) { - stack.context.appendChild(this.refs.elem); - } else if (document.body) { - document.body.appendChild(this.refs.elem); - } else { - throw new Error('No context to open this notice in.'); - } - } - - // Wait until the DOM is updated. - setTimeout(function () { - if (stack) { - // Mark the stack so it won't animate the new notice. - stack.animation = false; - // Now position all the notices. - PNotify.positionAll(); - // Reset animation. - stack.animation = true; - } - - _this.animateIn(function () { - // Now set it to hide. - if (_this.get().hide) { - _this.queueClose(); - } - - _this.set({ '_state': 'open' }); - - // Run the modules. - _this.runModules('afterOpen'); - }); - }, 0); - - return this; - }, - remove: function remove(timerHide) { - return this.close(timerHide); - }, - - - // Remove the notice. - close: function close(timerHide) { - var _this2 = this; - - var _get7 = this.get(), - _state = _get7._state; - - if (_state === 'closing' || _state === 'closed') { - return; - } - this.set({ '_state': 'closing', '_timerHide': !!timerHide }); // Make sure it's a boolean. - // Run the modules. - this.runModules('beforeClose'); - - var _get8 = this.get(), - _timer = _get8._timer; - - if (_timer && clearTimeout) { - clearTimeout(_timer); - this.set({ '_timer': null }); - } - this.animateOut(function () { - _this2.set({ '_state': 'closed' }); - // Run the modules. - _this2.runModules('afterClose'); - _this2.queuePosition(); - // If we're supposed to remove the notice from the DOM, do it. - if (_this2.get().remove) { - _this2.refs.elem.parentNode.removeChild(_this2.refs.elem); - } - // Run the modules. - _this2.runModules('beforeDestroy'); - // Remove object from PNotify.notices to prevent memory leak (issue #49) - // unless destroy is off - if (_this2.get().destroy) { - if (PNotify.notices !== null) { - var idx = PNotify.notices.indexOf(_this2); - if (idx !== -1) { - PNotify.notices.splice(idx, 1); - } - } - } - // Run the modules. - _this2.runModules('afterDestroy'); - }); - - return this; - }, - - - // Animate the notice in. - animateIn: function animateIn(callback) { - var _this3 = this; - - // Declare that the notice is animating in. - this.set({ '_animating': 'in' }); - var finished = function finished() { - _this3.refs.elem.removeEventListener('transitionend', finished); - - var _get9 = _this3.get(), - _animTimer = _get9._animTimer, - _animating = _get9._animating, - _moduleIsNoticeOpen = _get9._moduleIsNoticeOpen; - - if (_animTimer) { - clearTimeout(_animTimer); - } - if (_animating !== 'in') { - return; - } - var visible = _moduleIsNoticeOpen; - if (!visible) { - var domRect = _this3.refs.elem.getBoundingClientRect(); - for (var prop in domRect) { - if (domRect[prop] > 0) { - visible = true; - break; - } - } - } - if (visible) { - if (callback) { - callback.call(); - } - // Declare that the notice has completed animating. - _this3.set({ '_animating': false }); - } else { - _this3.set({ '_animTimer': setTimeout(finished, 40) }); - } - }; - - if (this.get().animation === 'fade') { - this.refs.elem.addEventListener('transitionend', finished); - this.set({ '_animatingClass': 'ui-pnotify-in' }); - // eslint-disable-next-line no-unused-expressions - this.refs.elem.style.opacity; // This line is necessary for some reason. Some notices don't fade without it. - this.set({ '_animatingClass': 'ui-pnotify-in ui-pnotify-fade-in' }); - // Just in case the event doesn't fire, call it after 650 ms. - this.set({ '_animTimer': setTimeout(finished, 650) }); - } else { - this.set({ '_animatingClass': 'ui-pnotify-in' }); - finished(); - } - }, - - - // Animate the notice out. - animateOut: function animateOut(callback) { - var _this4 = this; - - // Declare that the notice is animating out. - this.set({ '_animating': 'out' }); - var finished = function finished() { - _this4.refs.elem.removeEventListener('transitionend', finished); - - var _get10 = _this4.get(), - _animTimer = _get10._animTimer, - _animating = _get10._animating, - _moduleIsNoticeOpen = _get10._moduleIsNoticeOpen; - - if (_animTimer) { - clearTimeout(_animTimer); - } - if (_animating !== 'out') { - return; - } - var visible = _moduleIsNoticeOpen; - if (!visible) { - var domRect = _this4.refs.elem.getBoundingClientRect(); - for (var prop in domRect) { - if (domRect[prop] > 0) { - visible = true; - break; - } - } - } - if (!_this4.refs.elem.style.opacity || _this4.refs.elem.style.opacity === '0' || !visible) { - _this4.set({ '_animatingClass': '' }); - - var _get11 = _this4.get(), - stack = _get11.stack; - - if (stack && stack.overlay) { - // Go through the modal stack to see if any are left open. - // TODO: Rewrite this cause it sucks. - var stillOpen = false; - for (var i = 0; i < PNotify.notices.length; i++) { - var notice = PNotify.notices[i]; - if (notice !== _this4 && notice.get().stack === stack && notice.get()._state !== 'closed') { - stillOpen = true; - break; - } - } - if (!stillOpen) { - removeStackOverlay(stack); - } - } - if (callback) { - callback.call(); - } - // Declare that the notice has completed animating. - _this4.set({ '_animating': false }); - } else { - // In case this was called before the notice finished animating. - _this4.set({ '_animTimer': setTimeout(finished, 40) }); - } - }; - - if (this.get().animation === 'fade') { - this.refs.elem.addEventListener('transitionend', finished); - this.set({ '_animatingClass': 'ui-pnotify-in' }); - // Just in case the event doesn't fire, call it after 650 ms. - this.set({ '_animTimer': setTimeout(finished, 650) }); - } else { - this.set({ '_animatingClass': '' }); - finished(); - } - }, - - - // Position the notice. - position: function position() { - // Get the notice's stack. - var _get12 = this.get(), - stack = _get12.stack; - - var elem = this.refs.elem; - if (!stack) { - return; - } - if (!stack.context) { - stack.context = document.body; - } - if (typeof stack.nextpos1 !== 'number') { - stack.nextpos1 = stack.firstpos1; - } - if (typeof stack.nextpos2 !== 'number') { - stack.nextpos2 = stack.firstpos2; - } - if (typeof stack.addpos2 !== 'number') { - stack.addpos2 = 0; - } - - // Skip this notice if it's not shown. - if (!elem.classList.contains('ui-pnotify-in') && !elem.classList.contains('ui-pnotify-initial-hidden')) { - return this; - } - - if (stack.modal) { - if (!stack.overlay) { - createStackOverlay(stack); - } - insertStackOverlay(stack); - } - - // Read from the DOM to cause refresh. - elem.getBoundingClientRect(); - - if (stack.animation) { - // Add animate class. - this.set({ '_moveClass': 'ui-pnotify-move' }); - } - - var spaceY = stack.context === document.body ? window.innerHeight : stack.context.scrollHeight; - var spaceX = stack.context === document.body ? window.innerWidth : stack.context.scrollWidth; - - var csspos1 = void 0; - - if (stack.dir1) { - csspos1 = { - 'down': 'top', - 'up': 'bottom', - 'left': 'right', - 'right': 'left' - }[stack.dir1]; - - // Calculate the current pos1 value. - var curpos1 = void 0; - switch (stack.dir1) { - case 'down': - curpos1 = elem.offsetTop; - break; - case 'up': - curpos1 = spaceY - elem.scrollHeight - elem.offsetTop; - break; - case 'left': - curpos1 = spaceX - elem.scrollWidth - elem.offsetLeft; - break; - case 'right': - curpos1 = elem.offsetLeft; - break; - } - // Remember the first pos1, so the first notice goes there. - if (typeof stack.firstpos1 === 'undefined') { - stack.firstpos1 = curpos1; - stack.nextpos1 = stack.firstpos1; - } - } - - if (stack.dir1 && stack.dir2) { - var csspos2 = { - 'down': 'top', - 'up': 'bottom', - 'left': 'right', - 'right': 'left' - }[stack.dir2]; - - // Calculate the current pos2 value. - var curpos2 = void 0; - switch (stack.dir2) { - case 'down': - curpos2 = elem.offsetTop; - break; - case 'up': - curpos2 = spaceY - elem.scrollHeight - elem.offsetTop; - break; - case 'left': - curpos2 = spaceX - elem.scrollWidth - elem.offsetLeft; - break; - case 'right': - curpos2 = elem.offsetLeft; - break; - } - // Remember the first pos2, so the first notice goes there. - if (typeof stack.firstpos2 === 'undefined') { - stack.firstpos2 = curpos2; - stack.nextpos2 = stack.firstpos2; - } - - // Check that it's not beyond the viewport edge. - var endY = stack.nextpos1 + elem.offsetHeight + (typeof stack.spacing1 === 'undefined' ? 25 : stack.spacing1); - var endX = stack.nextpos1 + elem.offsetWidth + (typeof stack.spacing1 === 'undefined' ? 25 : stack.spacing1); - if ((stack.dir1 === 'down' || stack.dir1 === 'up') && endY > spaceY || (stack.dir1 === 'left' || stack.dir1 === 'right') && endX > spaceX) { - // If it is, it needs to go back to the first pos1, and over on pos2. - stack.nextpos1 = stack.firstpos1; - stack.nextpos2 += stack.addpos2 + (typeof stack.spacing2 === 'undefined' ? 25 : stack.spacing2); - stack.addpos2 = 0; - } - - // Move the notice on dir2. - if (typeof stack.nextpos2 === 'number') { - elem.style[csspos2] = stack.nextpos2 + 'px'; - if (!stack.animation) { - // eslint-disable-next-line no-unused-expressions - elem.style[csspos2]; // Read from the DOM for update. - } - } - - // Keep track of the widest/tallest notice in the column/row, so we can push the next column/row. - switch (stack.dir2) { - case 'down': - case 'up': - if (elem.offsetHeight + (parseFloat(elem.style.marginTop, 10) || 0) + (parseFloat(elem.style.marginBottom, 10) || 0) > stack.addpos2) { - stack.addpos2 = elem.offsetHeight; - } - break; - case 'left': - case 'right': - if (elem.offsetWidth + (parseFloat(elem.style.marginLeft, 10) || 0) + (parseFloat(elem.style.marginRight, 10) || 0) > stack.addpos2) { - stack.addpos2 = elem.offsetWidth; - } - break; - } - } else if (stack.dir1) { - // Center the notice along dir1 axis, because the stack has no dir2. - var cssMiddle = void 0, - cssposCross = void 0; - switch (stack.dir1) { - case 'down': - case 'up': - cssposCross = ['left', 'right']; - cssMiddle = stack.context.scrollWidth / 2 - elem.offsetWidth / 2; - break; - case 'left': - case 'right': - cssposCross = ['top', 'bottom']; - cssMiddle = spaceY / 2 - elem.offsetHeight / 2; - break; - } - elem.style[cssposCross[0]] = cssMiddle + 'px'; - elem.style[cssposCross[1]] = 'auto'; - if (!stack.animation) { - // eslint-disable-next-line no-unused-expressions - elem.style[cssposCross[0]]; // Read from the DOM for update. - } - } - - if (stack.dir1) { - // Move the notice on dir1. - if (typeof stack.nextpos1 === 'number') { - elem.style[csspos1] = stack.nextpos1 + 'px'; - if (!stack.animation) { - // eslint-disable-next-line no-unused-expressions - elem.style[csspos1]; // Read from the DOM for update. - } - } - - // Calculate the next dir1 position. - switch (stack.dir1) { - case 'down': - case 'up': - stack.nextpos1 += elem.offsetHeight + (typeof stack.spacing1 === 'undefined' ? 25 : stack.spacing1); - break; - case 'left': - case 'right': - stack.nextpos1 += elem.offsetWidth + (typeof stack.spacing1 === 'undefined' ? 25 : stack.spacing1); - break; - } - } else { - // Center the notice on the screen, because the stack has no dir1. - var cssMiddleLeft = spaceX / 2 - elem.offsetWidth / 2; - var cssMiddleTop = spaceY / 2 - elem.offsetHeight / 2; - elem.style.left = cssMiddleLeft + 'px'; - elem.style.top = cssMiddleTop + 'px'; - if (!stack.animation) { - // eslint-disable-next-line no-unused-expressions - elem.style.left; // Read from the DOM for update. - } - } - - return this; - }, - - - // Queue the position all function so it doesn't run repeatedly and - // use up resources. - queuePosition: function queuePosition(milliseconds) { - if (posTimer) { - clearTimeout(posTimer); - } - if (!milliseconds) { - milliseconds = 10; - } - posTimer = setTimeout(function () { - PNotify.positionAll(); - }, milliseconds); - return this; - }, - cancelRemove: function cancelRemove() { - return this.cancelClose(); - }, - - - // Cancel any pending removal timer. - cancelClose: function cancelClose() { - var _get13 = this.get(), - _timer = _get13._timer, - _animTimer = _get13._animTimer, - _state = _get13._state, - animation = _get13.animation; - - if (_timer) { - clearTimeout(_timer); - } - if (_animTimer) { - clearTimeout(_animTimer); - } - if (_state === 'closing') { - // If it's animating out, stop it. - this.set({ - '_state': 'open', - '_animating': false, - '_animatingClass': animation === 'fade' ? 'ui-pnotify-in ui-pnotify-fade-in' : 'ui-pnotify-in' - }); - } - return this; - }, - queueRemove: function queueRemove() { - return this.queueClose(); - }, - - - // Queue a close timer. - queueClose: function queueClose() { - var _this5 = this; - - // Cancel any current close timer. - this.cancelClose(); - this.set({ - '_timer': setTimeout(function () { - return _this5.close(true); - }, isNaN(this.get().delay) ? 0 : this.get().delay) - }); - return this; - }, - addModuleClass: function addModuleClass() { - var _get14 = this.get(), - _moduleClasses = _get14._moduleClasses; - - for (var _len = arguments.length, classNames = Array(_len), _key = 0; _key < _len; _key++) { - classNames[_key] = arguments[_key]; - } - - for (var i = 0; i < classNames.length; i++) { - var className = classNames[i]; - if (_moduleClasses.indexOf(className) === -1) { - _moduleClasses.push(className); - } - } - this.set({ _moduleClasses: _moduleClasses }); - }, - removeModuleClass: function removeModuleClass() { - var _get15 = this.get(), - _moduleClasses = _get15._moduleClasses; - - for (var _len2 = arguments.length, classNames = Array(_len2), _key2 = 0; _key2 < _len2; _key2++) { - classNames[_key2] = arguments[_key2]; - } - - for (var i = 0; i < classNames.length; i++) { - var className = classNames[i]; - var idx = _moduleClasses.indexOf(className); - if (idx !== -1) { - _moduleClasses.splice(idx, 1); - } - } - this.set({ _moduleClasses: _moduleClasses }); - }, - hasModuleClass: function hasModuleClass() { - var _get16 = this.get(), - _moduleClasses = _get16._moduleClasses; - - for (var _len3 = arguments.length, classNames = Array(_len3), _key3 = 0; _key3 < _len3; _key3++) { - classNames[_key3] = arguments[_key3]; - } - - for (var i = 0; i < classNames.length; i++) { - var className = classNames[i]; - if (_moduleClasses.indexOf(className) === -1) { - return false; - } - } - return true; - } - }; - - function oncreate() { - var _this6 = this; - - this.on('mouseenter', function (e) { - // Stop animation, reset the removal timer when the user mouses over. - if (_this6.get().mouseReset && _this6.get()._animating === 'out') { - if (!_this6.get()._timerHide) { - return; - } - _this6.cancelClose(); - } - // Stop the close timer. - if (_this6.get().hide && _this6.get().mouseReset) { - _this6.cancelClose(); - } - }); - - this.on('mouseleave', function (e) { - // Start the close timer. - if (_this6.get().hide && _this6.get().mouseReset && _this6.get()._animating !== 'out') { - _this6.queueClose(); - } - PNotify.positionAll(); - }); - - var _get17 = this.get(), - stack = _get17.stack; - - // Add the notice to the notice array. - - - if (stack && stack.push === 'top') { - PNotify.notices.splice(0, 0, this); - } else { - PNotify.notices.push(this); - } - - // Run the modules. - this.runModules('init'); - - // We're now initialized, but haven't been opened yet. - this.set({ '_state': 'closed' }); - - // Display the notice. - if (this.get().autoDisplay) { - this.open(); - } - }; - - function setup(Component) { - // Add static properties to the PNotify object. - PNotify = Component; - - PNotify.VERSION = '4.0.0'; - - PNotify.defaultStack = { - dir1: 'down', - dir2: 'left', - firstpos1: 25, - firstpos2: 25, - spacing1: 36, - spacing2: 36, - push: 'bottom', - context: window && document.body - }; - - PNotify.defaults = { - // The notice's title. - title: false, - // Whether to trust the title or escape its contents. (Not allow HTML.) - titleTrusted: false, - // The notice's text. - text: false, - // Whether to trust the text or escape its contents. (Not allow HTML.) - textTrusted: false, - // What styling classes to use. (Can be 'brighttheme', 'bootstrap3', 'bootstrap4', or a styling object.) - styling: 'brighttheme', - // What icons to use (Can be 'brighttheme', 'bootstrap3', 'fontawesome4', 'fontawesome5', or an icon object.) - icons: 'brighttheme', - // Additional classes to be added to the notice. (For custom styling.) - addClass: '', - // Class to be added to the notice for corner styling. - cornerClass: '', - // Display the notice when it is created. - autoDisplay: true, - // Width of the notice. - width: '360px', - // Minimum height of the notice. It will expand to fit content. - minHeight: '16px', - // Type of the notice. 'notice', 'info', 'success', or 'error'. - type: 'notice', - // Set icon to true to use the default icon for the selected - // style/type, false for no icon, or a string for your own icon class. - icon: true, - // The animation to use when displaying and hiding the notice. 'none' - // and 'fade' are supported through CSS. Others are supported - // through the Animate module and Animate.css. - animation: 'fade', - // Speed at which the notice animates in and out. 'slow', 'normal', - // or 'fast'. Respectively, 400ms, 250ms, 100ms. - animateSpeed: 'normal', - // Display a drop shadow. - shadow: true, - // After a delay, remove the notice. - hide: true, - // Delay in milliseconds before the notice is removed. - delay: 8000, - // Reset the hide timer if the mouse moves over the notice. - mouseReset: true, - // Remove the notice's elements from the DOM after it is removed. - remove: true, - // Whether to remove the notice from the global array when it is closed. - destroy: true, - // The stack on which the notices will be placed. Also controls the - // direction the notices stack. - stack: PNotify.defaultStack, - // This is where options for modules should be defined. - modules: {} - }; - - // An array of all active notices. - PNotify.notices = []; - - // This object holds all the PNotify modules. They are used to provide - // additional functionality. - PNotify.modules = {}; - - // Modules can add themselves to these to be rendered in the template. - PNotify.modulesPrependContainer = []; - PNotify.modulesAppendContainer = []; - - // Helper function to create a new notice. - PNotify.alert = function (options) { - return new PNotify(getDefaultArgs(options)); - }; - // Helper function to create a new notice (notice type). - PNotify.notice = function (options) { - return new PNotify(getDefaultArgs(options, 'notice')); - }; - // Helper function to create a new notice (info type). - PNotify.info = function (options) { - return new PNotify(getDefaultArgs(options, 'info')); - }; - // Helper function to create a new notice (success type). - PNotify.success = function (options) { - return new PNotify(getDefaultArgs(options, 'success')); - }; - // Helper function to create a new notice (error type). - PNotify.error = function (options) { - return new PNotify(getDefaultArgs(options, 'error')); - }; - - PNotify.removeAll = function () { - PNotify.closeAll(); - }; - - // Close all notices. - PNotify.closeAll = function () { - for (var i = 0; i < PNotify.notices.length; i++) { - if (PNotify.notices[i].close) { - PNotify.notices[i].close(false); - } - } - }; - - PNotify.removeStack = function (stack) { - PNotify.closeStack(stack); - }; - - // Close all notices in a single stack. - PNotify.closeStack = function (stack) { - if (stack === false) { - return; - } - for (var i = 0; i < PNotify.notices.length; i++) { - if (PNotify.notices[i].close && PNotify.notices[i].get().stack === stack) { - PNotify.notices[i].close(false); - } - } - }; - - // Position all notices. - PNotify.positionAll = function () { - // This timer is used for queueing this function so it doesn't run - // repeatedly. - if (posTimer) { - clearTimeout(posTimer); - } - posTimer = null; - // Reset the next position data. - if (PNotify.notices.length > 0) { - for (var i = 0; i < PNotify.notices.length; i++) { - var notice = PNotify.notices[i]; - - var _notice$get = notice.get(), - stack = _notice$get.stack; - - if (!stack) { - continue; - } - if (stack.overlay) { - removeStackOverlay(stack); - } - stack.nextpos1 = stack.firstpos1; - stack.nextpos2 = stack.firstpos2; - stack.addpos2 = 0; - } - for (var _i = 0; _i < PNotify.notices.length; _i++) { - PNotify.notices[_i].position(); - } - } else { - delete PNotify.defaultStack.nextpos1; - delete PNotify.defaultStack.nextpos2; - } - }; - - PNotify.styling = { - brighttheme: { - // Bright Theme doesn't require any UI libraries. - container: 'brighttheme', - notice: 'brighttheme-notice', - info: 'brighttheme-info', - success: 'brighttheme-success', - error: 'brighttheme-error' - }, - bootstrap3: { - container: 'alert', - notice: 'alert-warning', - info: 'alert-info', - success: 'alert-success', - error: 'alert-danger', - icon: 'ui-pnotify-icon-bs3' - }, - bootstrap4: { - container: 'alert', - notice: 'alert-warning', - info: 'alert-info', - success: 'alert-success', - error: 'alert-danger', - icon: 'ui-pnotify-icon-bs4', - title: 'ui-pnotify-title-bs4' - } - }; - - // icons are separate from the style, since bs4 doesn't come with any - PNotify.icons = { - brighttheme: { - notice: 'brighttheme-icon-notice', - info: 'brighttheme-icon-info', - success: 'brighttheme-icon-success', - error: 'brighttheme-icon-error' - }, - bootstrap3: { - notice: 'glyphicon glyphicon-exclamation-sign', - info: 'glyphicon glyphicon-info-sign', - success: 'glyphicon glyphicon-ok-sign', - error: 'glyphicon glyphicon-warning-sign' - }, - // User must have Font Awesome v4.0+ - fontawesome4: { - notice: 'fa fa-exclamation-circle', - info: 'fa fa-info-circle', - success: 'fa fa-check-circle', - error: 'fa fa-exclamation-triangle' - }, - // User must have Font Awesome v5.0+ - fontawesome5: { - notice: 'fas fa-exclamation-circle', - info: 'fas fa-info-circle', - success: 'fas fa-check-circle', - error: 'fas fa-exclamation-triangle' - } - }; - - // Run the deferred actions once the DOM is ready. - if (window && document.body) { - onDocumentLoaded(); - } else { - document.addEventListener('DOMContentLoaded', onDocumentLoaded); - } - } - - function add_css() { - var style = createElement("style"); - style.id = 'svelte-1eldsjg-style'; - style.textContent = "body > .ui-pnotify{position:fixed;z-index:100040}body > .ui-pnotify.ui-pnotify-modal{z-index:100042}.ui-pnotify{position:absolute;height:auto;z-index:1;display:none}.ui-pnotify.ui-pnotify-modal{z-index:3}.ui-pnotify.ui-pnotify-in{display:block}.ui-pnotify.ui-pnotify-initial-hidden{display:block;visibility:hidden}.ui-pnotify.ui-pnotify-move{transition:left .5s ease, top .5s ease, right .5s ease, bottom .5s ease}.ui-pnotify.ui-pnotify-fade-slow{transition:opacity .4s linear;opacity:0}.ui-pnotify.ui-pnotify-fade-slow.ui-pnotify.ui-pnotify-move{transition:opacity .4s linear, left .5s ease, top .5s ease, right .5s ease, bottom .5s ease}.ui-pnotify.ui-pnotify-fade-normal{transition:opacity .25s linear;opacity:0}.ui-pnotify.ui-pnotify-fade-normal.ui-pnotify.ui-pnotify-move{transition:opacity .25s linear, left .5s ease, top .5s ease, right .5s ease, bottom .5s ease}.ui-pnotify.ui-pnotify-fade-fast{transition:opacity .1s linear;opacity:0}.ui-pnotify.ui-pnotify-fade-fast.ui-pnotify.ui-pnotify-move{transition:opacity .1s linear, left .5s ease, top .5s ease, right .5s ease, bottom .5s ease}.ui-pnotify.ui-pnotify-fade-in{opacity:1}.ui-pnotify .ui-pnotify-shadow{-webkit-box-shadow:0px 6px 28px 0px rgba(0,0,0,0.1);-moz-box-shadow:0px 6px 28px 0px rgba(0,0,0,0.1);box-shadow:0px 6px 28px 0px rgba(0,0,0,0.1)}.ui-pnotify-container{background-position:0 0;padding:.8em;height:100%;margin:0}.ui-pnotify-container:after{content:\" \";visibility:hidden;display:block;height:0;clear:both}.ui-pnotify-container.ui-pnotify-sharp{-webkit-border-radius:0;-moz-border-radius:0;border-radius:0}.ui-pnotify-title{display:block;white-space:pre-line;margin-bottom:.4em;margin-top:0}.ui-pnotify.ui-pnotify-with-icon .ui-pnotify-title,.ui-pnotify.ui-pnotify-with-icon .ui-pnotify-text{margin-left:24px}[dir=rtl] .ui-pnotify.ui-pnotify-with-icon .ui-pnotify-title,[dir=rtl] .ui-pnotify.ui-pnotify-with-icon .ui-pnotify-text{margin-right:24px;margin-left:0}.ui-pnotify-title-bs4{font-size:1.2rem}.ui-pnotify-text{display:block;white-space:pre-line}.ui-pnotify-icon,.ui-pnotify-icon span{display:block;float:left}[dir=rtl] .ui-pnotify-icon,[dir=rtl] .ui-pnotify-icon span{float:right}.ui-pnotify-icon-bs3 > span{position:relative;top:2px}.ui-pnotify-icon-bs4 > span{position:relative;top:4px}.ui-pnotify-modal-overlay{background-color:rgba(0, 0, 0, .4);top:0;left:0;position:absolute;height:100%;width:100%;z-index:2}body > .ui-pnotify-modal-overlay{position:fixed;z-index:100041}"; - append(document.head, style); - } - - function get_each1_context(ctx, list, i) { - var child_ctx = Object.create(ctx); - child_ctx.module = list[i]; - return child_ctx; - } - - function get_each0_context(ctx, list, i) { - var child_ctx = Object.create(ctx); - child_ctx.module = list[i]; - return child_ctx; - } - - function create_main_fragment(component, ctx) { - var div1, - div0, - each0_blocks_1 = [], - each0_lookup = blankObject(), - text0, - text1, - text2, - text3, - each1_blocks_1 = [], - each1_lookup = blankObject(), - div0_class_value, - div0_style_value, - div1_class_value; - - var each0_value = ctx._modulesPrependContainer; - - var get_key = function get_key(ctx) { - return ctx.module.key; - }; - - for (var i = 0; i < each0_value.length; i += 1) { - var child_ctx = get_each0_context(ctx, each0_value, i); - var key = get_key(child_ctx); - each0_blocks_1[i] = each0_lookup[key] = create_each_block_1(component, key, child_ctx); - } - - var if_block0 = ctx.icon !== false && create_if_block_4(component, ctx); - - var if_block1 = ctx.title !== false && create_if_block_2(component, ctx); - - var if_block2 = ctx.text !== false && create_if_block(component, ctx); - - var each1_value = ctx._modulesAppendContainer; - - var get_key_1 = function get_key_1(ctx) { - return ctx.module.key; - }; - - for (var i = 0; i < each1_value.length; i += 1) { - var _child_ctx = get_each1_context(ctx, each1_value, i); - var _key4 = get_key_1(_child_ctx); - each1_blocks_1[i] = each1_lookup[_key4] = create_each_block(component, _key4, _child_ctx); - } - - function mouseover_handler(event) { - component.fire("mouseover", event); - } - - function mouseout_handler(event) { - component.fire("mouseout", event); - } - - function mouseenter_handler(event) { - component.fire("mouseenter", event); - } - - function mouseleave_handler(event) { - component.fire("mouseleave", event); - } - - function mousemove_handler(event) { - component.fire("mousemove", event); - } - - function mousedown_handler(event) { - component.fire("mousedown", event); - } - - function mouseup_handler(event) { - component.fire("mouseup", event); - } - - function click_handler(event) { - component.fire("click", event); - } - - function dblclick_handler(event) { - component.fire("dblclick", event); - } - - function focus_handler(event) { - component.fire("focus", event); - } - - function blur_handler(event) { - component.fire("blur", event); - } - - function touchstart_handler(event) { - component.fire("touchstart", event); - } - - function touchmove_handler(event) { - component.fire("touchmove", event); - } - - function touchend_handler(event) { - component.fire("touchend", event); - } - - function touchcancel_handler(event) { - component.fire("touchcancel", event); - } - - return { - c: function c() { - div1 = createElement("div"); - div0 = createElement("div"); - - for (i = 0; i < each0_blocks_1.length; i += 1) { - each0_blocks_1[i].c(); - }text0 = createText("\n "); - if (if_block0) if_block0.c(); - text1 = createText("\n "); - if (if_block1) if_block1.c(); - text2 = createText("\n "); - if (if_block2) if_block2.c(); - text3 = createText("\n "); - - for (i = 0; i < each1_blocks_1.length; i += 1) { - each1_blocks_1[i].c(); - }div0.className = div0_class_value = "\n ui-pnotify-container\n " + (ctx._styles.container ? ctx._styles.container : '') + "\n " + (ctx._styles[ctx.type] ? ctx._styles[ctx.type] : '') + "\n " + ctx.cornerClass + "\n " + (ctx.shadow ? 'ui-pnotify-shadow' : '') + "\n "; - div0.style.cssText = div0_style_value = "" + ctx._widthStyle + " " + ctx._minHeightStyle; - setAttribute(div0, "role", "alert"); - addListener(div1, "mouseover", mouseover_handler); - addListener(div1, "mouseout", mouseout_handler); - addListener(div1, "mouseenter", mouseenter_handler); - addListener(div1, "mouseleave", mouseleave_handler); - addListener(div1, "mousemove", mousemove_handler); - addListener(div1, "mousedown", mousedown_handler); - addListener(div1, "mouseup", mouseup_handler); - addListener(div1, "click", click_handler); - addListener(div1, "dblclick", dblclick_handler); - addListener(div1, "focus", focus_handler); - addListener(div1, "blur", blur_handler); - addListener(div1, "touchstart", touchstart_handler); - addListener(div1, "touchmove", touchmove_handler); - addListener(div1, "touchend", touchend_handler); - addListener(div1, "touchcancel", touchcancel_handler); - div1.className = div1_class_value = "\n ui-pnotify\n " + (ctx.icon !== false ? 'ui-pnotify-with-icon' : '') + "\n " + (ctx._styles.element ? ctx._styles.element : '') + "\n " + ctx.addClass + "\n " + ctx._animatingClass + "\n " + ctx._moveClass + "\n " + (ctx.animation === 'fade' ? 'ui-pnotify-fade-' + ctx.animateSpeed : '') + "\n " + (ctx.stack && ctx.stack.modal ? 'ui-pnotify-modal' : '') + "\n " + ctx._moduleClasses.join(' ') + "\n "; - setAttribute(div1, "aria-live", "assertive"); - setAttribute(div1, "role", "alertdialog"); - setAttribute(div1, "ui-pnotify", true); - }, - m: function m(target, anchor) { - insert(target, div1, anchor); - append(div1, div0); - - for (i = 0; i < each0_blocks_1.length; i += 1) { - each0_blocks_1[i].m(div0, null); - }append(div0, text0); - if (if_block0) if_block0.m(div0, null); - append(div0, text1); - if (if_block1) if_block1.m(div0, null); - append(div0, text2); - if (if_block2) if_block2.m(div0, null); - append(div0, text3); - - for (i = 0; i < each1_blocks_1.length; i += 1) { - each1_blocks_1[i].m(div0, null); - }component.refs.container = div0; - component.refs.elem = div1; - }, - p: function p(changed, ctx) { - var each0_value = ctx._modulesPrependContainer; - each0_blocks_1 = updateKeyedEach(each0_blocks_1, component, changed, get_key, 1, ctx, each0_value, each0_lookup, div0, destroyBlock, create_each_block_1, "m", text0, get_each0_context); - - if (ctx.icon !== false) { - if (if_block0) { - if_block0.p(changed, ctx); - } else { - if_block0 = create_if_block_4(component, ctx); - if_block0.c(); - if_block0.m(div0, text1); - } - } else if (if_block0) { - if_block0.d(1); - if_block0 = null; - } - - if (ctx.title !== false) { - if (if_block1) { - if_block1.p(changed, ctx); - } else { - if_block1 = create_if_block_2(component, ctx); - if_block1.c(); - if_block1.m(div0, text2); - } - } else if (if_block1) { - if_block1.d(1); - if_block1 = null; - } - - if (ctx.text !== false) { - if (if_block2) { - if_block2.p(changed, ctx); - } else { - if_block2 = create_if_block(component, ctx); - if_block2.c(); - if_block2.m(div0, text3); - } - } else if (if_block2) { - if_block2.d(1); - if_block2 = null; - } - - var each1_value = ctx._modulesAppendContainer; - each1_blocks_1 = updateKeyedEach(each1_blocks_1, component, changed, get_key_1, 1, ctx, each1_value, each1_lookup, div0, destroyBlock, create_each_block, "m", null, get_each1_context); - - if ((changed._styles || changed.type || changed.cornerClass || changed.shadow) && div0_class_value !== (div0_class_value = "\n ui-pnotify-container\n " + (ctx._styles.container ? ctx._styles.container : '') + "\n " + (ctx._styles[ctx.type] ? ctx._styles[ctx.type] : '') + "\n " + ctx.cornerClass + "\n " + (ctx.shadow ? 'ui-pnotify-shadow' : '') + "\n ")) { - div0.className = div0_class_value; - } - - if ((changed._widthStyle || changed._minHeightStyle) && div0_style_value !== (div0_style_value = "" + ctx._widthStyle + " " + ctx._minHeightStyle)) { - div0.style.cssText = div0_style_value; - } - - if ((changed.icon || changed._styles || changed.addClass || changed._animatingClass || changed._moveClass || changed.animation || changed.animateSpeed || changed.stack || changed._moduleClasses) && div1_class_value !== (div1_class_value = "\n ui-pnotify\n " + (ctx.icon !== false ? 'ui-pnotify-with-icon' : '') + "\n " + (ctx._styles.element ? ctx._styles.element : '') + "\n " + ctx.addClass + "\n " + ctx._animatingClass + "\n " + ctx._moveClass + "\n " + (ctx.animation === 'fade' ? 'ui-pnotify-fade-' + ctx.animateSpeed : '') + "\n " + (ctx.stack && ctx.stack.modal ? 'ui-pnotify-modal' : '') + "\n " + ctx._moduleClasses.join(' ') + "\n ")) { - div1.className = div1_class_value; - } - }, - d: function d(detach) { - if (detach) { - detachNode(div1); - } - - for (i = 0; i < each0_blocks_1.length; i += 1) { - each0_blocks_1[i].d(); - }if (if_block0) if_block0.d(); - if (if_block1) if_block1.d(); - if (if_block2) if_block2.d(); - - for (i = 0; i < each1_blocks_1.length; i += 1) { - each1_blocks_1[i].d(); - }if (component.refs.container === div0) component.refs.container = null; - removeListener(div1, "mouseover", mouseover_handler); - removeListener(div1, "mouseout", mouseout_handler); - removeListener(div1, "mouseenter", mouseenter_handler); - removeListener(div1, "mouseleave", mouseleave_handler); - removeListener(div1, "mousemove", mousemove_handler); - removeListener(div1, "mousedown", mousedown_handler); - removeListener(div1, "mouseup", mouseup_handler); - removeListener(div1, "click", click_handler); - removeListener(div1, "dblclick", dblclick_handler); - removeListener(div1, "focus", focus_handler); - removeListener(div1, "blur", blur_handler); - removeListener(div1, "touchstart", touchstart_handler); - removeListener(div1, "touchmove", touchmove_handler); - removeListener(div1, "touchend", touchend_handler); - removeListener(div1, "touchcancel", touchcancel_handler); - if (component.refs.elem === div1) component.refs.elem = null; - } - }; - } - - // (53:4) {#each _modulesPrependContainer as module (module.key)} - function create_each_block_1(component, key_1, ctx) { - var first, switch_instance_anchor; - - var switch_value = ctx.module; - - function switch_props(ctx) { - return { - root: component.root, - store: component.store - }; - } - - if (switch_value) { - var switch_instance = new switch_value(switch_props(ctx)); - } - - function switch_instance_init(event) { - component.initModule(event.module); - } - - if (switch_instance) switch_instance.on("init", switch_instance_init); - - return { - key: key_1, - - first: null, - - c: function c() { - first = createComment(); - if (switch_instance) switch_instance._fragment.c(); - switch_instance_anchor = createComment(); - this.first = first; - }, - m: function m(target, anchor) { - insert(target, first, anchor); - - if (switch_instance) { - switch_instance._mount(target, anchor); - } - - insert(target, switch_instance_anchor, anchor); - }, - p: function p(changed, ctx) { - if (switch_value !== (switch_value = ctx.module)) { - if (switch_instance) { - switch_instance.destroy(); - } - - if (switch_value) { - switch_instance = new switch_value(switch_props(ctx)); - switch_instance._fragment.c(); - switch_instance._mount(switch_instance_anchor.parentNode, switch_instance_anchor); - - switch_instance.on("init", switch_instance_init); - } else { - switch_instance = null; - } - } - }, - d: function d(detach) { - if (detach) { - detachNode(first); - detachNode(switch_instance_anchor); - } - - if (switch_instance) switch_instance.destroy(detach); - } - }; - } - - // (56:4) {#if icon !== false} - function create_if_block_4(component, ctx) { - var div, span, span_class_value, div_class_value; - - return { - c: function c() { - div = createElement("div"); - span = createElement("span"); - span.className = span_class_value = ctx.icon === true ? ctx._icons[ctx.type] ? ctx._icons[ctx.type] : '' : ctx.icon; - div.className = div_class_value = "ui-pnotify-icon " + (ctx._styles.icon ? ctx._styles.icon : ''); - }, - m: function m(target, anchor) { - insert(target, div, anchor); - append(div, span); - component.refs.iconContainer = div; - }, - p: function p(changed, ctx) { - if ((changed.icon || changed._icons || changed.type) && span_class_value !== (span_class_value = ctx.icon === true ? ctx._icons[ctx.type] ? ctx._icons[ctx.type] : '' : ctx.icon)) { - span.className = span_class_value; - } - - if (changed._styles && div_class_value !== (div_class_value = "ui-pnotify-icon " + (ctx._styles.icon ? ctx._styles.icon : ''))) { - div.className = div_class_value; - } - }, - d: function d(detach) { - if (detach) { - detachNode(div); - } - - if (component.refs.iconContainer === div) component.refs.iconContainer = null; - } - }; - } - - // (61:4) {#if title !== false} - function create_if_block_2(component, ctx) { - var h4, h4_class_value; - - function select_block_type(ctx) { - if (ctx.titleTrusted) return create_if_block_3; - return create_else_block_1; - } - - var current_block_type = select_block_type(ctx); - var if_block = current_block_type(component, ctx); - - return { - c: function c() { - h4 = createElement("h4"); - if_block.c(); - h4.className = h4_class_value = "ui-pnotify-title " + (ctx._styles.title ? ctx._styles.title : ''); - }, - m: function m(target, anchor) { - insert(target, h4, anchor); - if_block.m(h4, null); - component.refs.titleContainer = h4; - }, - p: function p(changed, ctx) { - if (current_block_type === (current_block_type = select_block_type(ctx)) && if_block) { - if_block.p(changed, ctx); - } else { - if_block.d(1); - if_block = current_block_type(component, ctx); - if_block.c(); - if_block.m(h4, null); - } - - if (changed._styles && h4_class_value !== (h4_class_value = "ui-pnotify-title " + (ctx._styles.title ? ctx._styles.title : ''))) { - h4.className = h4_class_value; - } - }, - d: function d(detach) { - if (detach) { - detachNode(h4); - } - - if_block.d(); - if (component.refs.titleContainer === h4) component.refs.titleContainer = null; - } - }; - } - - // (65:8) {:else} - function create_else_block_1(component, ctx) { - var text; - - return { - c: function c() { - text = createText(ctx.title); - }, - m: function m(target, anchor) { - insert(target, text, anchor); - }, - p: function p(changed, ctx) { - if (changed.title) { - setData(text, ctx.title); - } - }, - d: function d(detach) { - if (detach) { - detachNode(text); - } - } - }; - } - - // (63:8) {#if titleTrusted} - function create_if_block_3(component, ctx) { - var raw_before, raw_after; - - return { - c: function c() { - raw_before = createElement('noscript'); - raw_after = createElement('noscript'); - }, - m: function m(target, anchor) { - insert(target, raw_before, anchor); - raw_before.insertAdjacentHTML("afterend", ctx.title); - insert(target, raw_after, anchor); - }, - p: function p(changed, ctx) { - if (changed.title) { - detachBetween(raw_before, raw_after); - raw_before.insertAdjacentHTML("afterend", ctx.title); - } - }, - d: function d(detach) { - if (detach) { - detachBetween(raw_before, raw_after); - detachNode(raw_before); - detachNode(raw_after); - } - } - }; - } - - // (70:4) {#if text !== false} - function create_if_block(component, ctx) { - var div, div_class_value; - - function select_block_type_1(ctx) { - if (ctx.textTrusted) return create_if_block_1; - return create_else_block; - } - - var current_block_type = select_block_type_1(ctx); - var if_block = current_block_type(component, ctx); - - return { - c: function c() { - div = createElement("div"); - if_block.c(); - div.className = div_class_value = "ui-pnotify-text " + (ctx._styles.text ? ctx._styles.text : ''); - setAttribute(div, "role", "alert"); - }, - m: function m(target, anchor) { - insert(target, div, anchor); - if_block.m(div, null); - component.refs.textContainer = div; - }, - p: function p(changed, ctx) { - if (current_block_type === (current_block_type = select_block_type_1(ctx)) && if_block) { - if_block.p(changed, ctx); - } else { - if_block.d(1); - if_block = current_block_type(component, ctx); - if_block.c(); - if_block.m(div, null); - } - - if (changed._styles && div_class_value !== (div_class_value = "ui-pnotify-text " + (ctx._styles.text ? ctx._styles.text : ''))) { - div.className = div_class_value; - } - }, - d: function d(detach) { - if (detach) { - detachNode(div); - } - - if_block.d(); - if (component.refs.textContainer === div) component.refs.textContainer = null; - } - }; - } - - // (74:8) {:else} - function create_else_block(component, ctx) { - var text; - - return { - c: function c() { - text = createText(ctx.text); - }, - m: function m(target, anchor) { - insert(target, text, anchor); - }, - p: function p(changed, ctx) { - if (changed.text) { - setData(text, ctx.text); - } - }, - d: function d(detach) { - if (detach) { - detachNode(text); - } - } - }; - } - - // (72:8) {#if textTrusted} - function create_if_block_1(component, ctx) { - var raw_before, raw_after; - - return { - c: function c() { - raw_before = createElement('noscript'); - raw_after = createElement('noscript'); - }, - m: function m(target, anchor) { - insert(target, raw_before, anchor); - raw_before.insertAdjacentHTML("afterend", ctx.text); - insert(target, raw_after, anchor); - }, - p: function p(changed, ctx) { - if (changed.text) { - detachBetween(raw_before, raw_after); - raw_before.insertAdjacentHTML("afterend", ctx.text); - } - }, - d: function d(detach) { - if (detach) { - detachBetween(raw_before, raw_after); - detachNode(raw_before); - detachNode(raw_after); - } - } - }; - } - - // (79:4) {#each _modulesAppendContainer as module (module.key)} - function create_each_block(component, key_1, ctx) { - var first, switch_instance_anchor; - - var switch_value = ctx.module; - - function switch_props(ctx) { - return { - root: component.root, - store: component.store - }; - } - - if (switch_value) { - var switch_instance = new switch_value(switch_props(ctx)); - } - - function switch_instance_init(event) { - component.initModule(event.module); - } - - if (switch_instance) switch_instance.on("init", switch_instance_init); - - return { - key: key_1, - - first: null, - - c: function c() { - first = createComment(); - if (switch_instance) switch_instance._fragment.c(); - switch_instance_anchor = createComment(); - this.first = first; - }, - m: function m(target, anchor) { - insert(target, first, anchor); - - if (switch_instance) { - switch_instance._mount(target, anchor); - } - - insert(target, switch_instance_anchor, anchor); - }, - p: function p(changed, ctx) { - if (switch_value !== (switch_value = ctx.module)) { - if (switch_instance) { - switch_instance.destroy(); - } - - if (switch_value) { - switch_instance = new switch_value(switch_props(ctx)); - switch_instance._fragment.c(); - switch_instance._mount(switch_instance_anchor.parentNode, switch_instance_anchor); - - switch_instance.on("init", switch_instance_init); - } else { - switch_instance = null; - } - } - }, - d: function d(detach) { - if (detach) { - detachNode(first); - detachNode(switch_instance_anchor); - } - - if (switch_instance) switch_instance.destroy(detach); - } - }; - } - - function PNotify_1(options) { - var _this7 = this; - - init(this, options); - this.refs = {}; - this._state = assign(data(), options.data); - - this._recompute({ styling: 1, icons: 1, width: 1, minHeight: 1 }, this._state); - this._intro = true; - - if (!document.getElementById("svelte-1eldsjg-style")) add_css(); - - this._fragment = create_main_fragment(this, this._state); - - this.root._oncreate.push(function () { - oncreate.call(_this7); - _this7.fire("update", { changed: assignTrue({}, _this7._state), current: _this7._state }); - }); - - if (options.target) { - this._fragment.c(); - this._mount(options.target, options.anchor); - - flush(this); - } - } - - assign(PNotify_1.prototype, { - destroy: destroy, - get: get, - fire: fire, - on: on, - set: set, - _set: _set, - _stage: _stage, - _mount: _mount, - _differs: _differs - }); - assign(PNotify_1.prototype, methods); - - PNotify_1.prototype._recompute = function _recompute(changed, state) { - if (changed.styling) { - if (this._differs(state._styles, state._styles = _styles(state))) changed._styles = true; - } - - if (changed.icons) { - if (this._differs(state._icons, state._icons = _icons(state))) changed._icons = true; - } - - if (changed.width) { - if (this._differs(state._widthStyle, state._widthStyle = _widthStyle(state))) changed._widthStyle = true; - } - - if (changed.minHeight) { - if (this._differs(state._minHeightStyle, state._minHeightStyle = _minHeightStyle(state))) changed._minHeightStyle = true; - } - }; - - setup(PNotify_1); - - function createElement(name) { - return document.createElement(name); - } - - function append(target, node) { - target.appendChild(node); - } - - function blankObject() { - return Object.create(null); - } - - function createText(data) { - return document.createTextNode(data); - } - - function setAttribute(node, attribute, value) { - if (value == null) node.removeAttribute(attribute);else node.setAttribute(attribute, value); - } - - function addListener(node, event, handler, options) { - node.addEventListener(event, handler, options); - } - - function insert(target, node, anchor) { - target.insertBefore(node, anchor); - } - - function updateKeyedEach(old_blocks, component, changed, get_key, dynamic, ctx, list, lookup, node, destroy, create_each_block, intro_method, next, get_context) { - var o = old_blocks.length; - var n = list.length; - - var i = o; - var old_indexes = {}; - while (i--) { - old_indexes[old_blocks[i].key] = i; - }var new_blocks = []; - var new_lookup = {}; - var deltas = {}; - - var i = n; - while (i--) { - var child_ctx = get_context(ctx, list, i); - var key = get_key(child_ctx); - var block = lookup[key]; - - if (!block) { - block = create_each_block(component, key, child_ctx); - block.c(); - } else if (dynamic) { - block.p(changed, child_ctx); - } - - new_blocks[i] = new_lookup[key] = block; - - if (key in old_indexes) deltas[key] = Math.abs(i - old_indexes[key]); - } - - var will_move = {}; - var did_move = {}; - - function insert(block) { - block[intro_method](node, next); - lookup[block.key] = block; - next = block.first; - n--; - } - - while (o && n) { - var new_block = new_blocks[n - 1]; - var old_block = old_blocks[o - 1]; - var new_key = new_block.key; - var old_key = old_block.key; - - if (new_block === old_block) { - // do nothing - next = new_block.first; - o--; - n--; - } else if (!new_lookup[old_key]) { - // remove old block - destroy(old_block, lookup); - o--; - } else if (!lookup[new_key] || will_move[new_key]) { - insert(new_block); - } else if (did_move[old_key]) { - o--; - } else if (deltas[new_key] > deltas[old_key]) { - did_move[new_key] = true; - insert(new_block); - } else { - will_move[old_key] = true; - o--; - } - } - - while (o--) { - var old_block = old_blocks[o]; - if (!new_lookup[old_block.key]) destroy(old_block, lookup); - } - - while (n) { - insert(new_blocks[n - 1]); - }return new_blocks; - } - - function destroyBlock(block, lookup) { - block.d(1); - lookup[block.key] = null; - } - - function detachNode(node) { - node.parentNode.removeChild(node); - } - - function removeListener(node, event, handler, options) { - node.removeEventListener(event, handler, options); - } - - function createComment() { - return document.createComment(''); - } - - function setData(text, data) { - text.data = '' + data; - } - - function detachBetween(before, after) { - while (before.nextSibling && before.nextSibling !== after) { - before.parentNode.removeChild(before.nextSibling); - } - } - - function init(component, options) { - component._handlers = blankObject(); - component._slots = blankObject(); - component._bind = options._bind; - component._staged = {}; - - component.options = options; - component.root = options.root || component; - component.store = options.store || component.root.store; - - if (!options.root) { - component._beforecreate = []; - component._oncreate = []; - component._aftercreate = []; - } - } - - function assign(tar, src) { - for (var k in src) { - tar[k] = src[k]; - }return tar; - } - - function assignTrue(tar, src) { - for (var k in src) { - tar[k] = 1; - }return tar; - } - - function flush(component) { - component._lock = true; - callAll(component._beforecreate); - callAll(component._oncreate); - callAll(component._aftercreate); - component._lock = false; - } - - function destroy(detach) { - this.destroy = noop; - this.fire('destroy'); - this.set = noop; - - this._fragment.d(detach !== false); - this._fragment = null; - this._state = {}; - } - - function get() { - return this._state; - } - - function fire(eventName, data) { - var handlers = eventName in this._handlers && this._handlers[eventName].slice(); - if (!handlers) return; - - for (var i = 0; i < handlers.length; i += 1) { - var handler = handlers[i]; - - if (!handler.__calling) { - try { - handler.__calling = true; - handler.call(this, data); - } finally { - handler.__calling = false; - } - } - } - } - - function on(eventName, handler) { - var handlers = this._handlers[eventName] || (this._handlers[eventName] = []); - handlers.push(handler); - - return { - cancel: function cancel() { - var index = handlers.indexOf(handler); - if (~index) handlers.splice(index, 1); - } - }; - } - - function set(newState) { - this._set(assign({}, newState)); - if (this.root._lock) return; - flush(this.root); - } - - function _set(newState) { - var oldState = this._state, - changed = {}, - dirty = false; - - newState = assign(this._staged, newState); - this._staged = {}; - - for (var key in newState) { - if (this._differs(newState[key], oldState[key])) changed[key] = dirty = true; - } - if (!dirty) return; - - this._state = assign(assign({}, oldState), newState); - this._recompute(changed, this._state); - if (this._bind) this._bind(changed, this._state); - - if (this._fragment) { - this.fire("state", { changed: changed, current: this._state, previous: oldState }); - this._fragment.p(changed, this._state); - this.fire("update", { changed: changed, current: this._state, previous: oldState }); - } - } - - function _stage(newState) { - assign(this._staged, newState); - } - - function _mount(target, anchor) { - this._fragment[this._fragment.i ? 'i' : 'm'](target, anchor || null); - } - - function _differs(a, b) { - return a != a ? b == b : a !== b || a && (typeof a === "undefined" ? "undefined" : _typeof(a)) === 'object' || typeof a === 'function'; - } - - function callAll(fns) { - while (fns && fns.length) { - fns.shift()(); - } - } - - function noop() {} - - return PNotify_1; -}); -//# sourceMappingURL=PNotify.js.map \ No newline at end of file diff --git a/public/js/v2.0.0/app.js b/public/js/v2.0.0/app.js index bd9913f4..e49e90f3 100644 --- a/public/js/v2.0.0/app.js +++ b/public/js/v2.0.0/app.js @@ -70,16 +70,16 @@ requirejs.config({ 'datatables.net-buttons': 'lib/datatables/Buttons-1.5.6/js/dataTables.buttons.min', 'datatables.net-buttons-html': 'lib/datatables/Buttons-1.5.6/js/buttons.html5.min', 'datatables.net-responsive': 'lib/datatables/Responsive-2.2.2/js/dataTables.responsive.min', + 'datatables.net-rowgroup': 'lib/datatables/RowGroup-1.1.1/js/dataTables.rowGroup.min', 'datatables.net-select': 'lib/datatables/Select-1.3.0/js/dataTables.select.min', 'datatables.plugins.render.ellipsis': 'lib/datatables/plugins/render/ellipsis', // PNotify // v4.0.0 PNotify - notification core file - https://sciactive.com/pnotify - 'PNotify.loader': './app/pnotify.loader', + 'pnotify.loader': './app/pnotify.loader', 'PNotify': 'lib/pnotify/PNotify', 'PNotifyButtons': 'lib/pnotify/PNotifyButtons', - 'PNotifyNonBlock': 'lib/pnotify/PNotifyNonBlock', - 'PNotifyDesktop': 'lib/pnotify/PNotifyDesktop', 'PNotifyCallbacks': 'lib/pnotify/PNotifyCallbacks', + 'PNotifyDesktop': 'lib/pnotify/PNotifyDesktop', 'NonBlock': 'lib/pnotify/NonBlock' // v1.0.8 NonBlock.js - for PNotify "nonblock" feature }, shim: { @@ -116,6 +116,9 @@ requirejs.config({ 'datatables.net-responsive': { deps: ['datatables.net'] }, + 'datatables.net-rowgroup': { + deps: ['datatables.net'] + }, 'datatables.net-select': { deps: ['datatables.net'] }, diff --git a/public/js/v2.0.0/app/counter.js b/public/js/v2.0.0/app/counter.js index 866c92c9..4e2d0fc8 100644 --- a/public/js/v2.0.0/app/counter.js +++ b/public/js/v2.0.0/app/counter.js @@ -107,7 +107,7 @@ define([ updateDateDiff(element, date, round); } }; - Cron.set(counterTask); + counterTask.start(); element.attr(config.counterTaskAttr, taskName); } @@ -138,7 +138,7 @@ define([ counterTask.task = timer => { tableApi.cells(null, columnSelector).every(cellUpdate); }; - Cron.set(counterTask); + counterTask.start(); tableElement.attr(config.counterTaskAttr, taskName); }; diff --git a/public/js/v2.0.0/app/datatables.loader.js b/public/js/v2.0.0/app/datatables.loader.js index 202f3f51..b2b008d7 100644 --- a/public/js/v2.0.0/app/datatables.loader.js +++ b/public/js/v2.0.0/app/datatables.loader.js @@ -8,7 +8,8 @@ define([ 'datatables.net-select', 'datatables.net-buttons', 'datatables.net-buttons-html', - 'datatables.net-responsive' + 'datatables.net-responsive', + 'datatables.net-rowgroup' ], ($, Init, Counter, DeferredPromise, TimeoutPromise) => { 'use strict'; diff --git a/public/js/v2.0.0/app/lib/cache.js b/public/js/v2.0.0/app/lib/cache.js index de8cb11a..2b541343 100644 --- a/public/js/v2.0.0/app/lib/cache.js +++ b/public/js/v2.0.0/app/lib/cache.js @@ -5,7 +5,7 @@ define([], () => { * Abstract Cache Strategy class * @type {AbstractStrategy} */ - let AbstractStrategy = class AbstractStrategy { + class AbstractStrategy { constructor(){ if(new.target === AbstractStrategy){ throw new TypeError('Cannot construct AbstractStrategy instances directly'); @@ -19,7 +19,7 @@ define([], () => { static create(){ return new this(); } - }; + } /** * LIFO Cache Strategy - First In First Out @@ -27,7 +27,7 @@ define([], () => { * without any regard to how often or how many times they were accessed before. * @type {StrategyFIFO} */ - let StrategyFIFO = class StrategyFIFO extends AbstractStrategy { + class StrategyFIFO extends AbstractStrategy { valueToCompare(metaData){ return metaData.age(); } @@ -35,7 +35,7 @@ define([], () => { compare(a, b){ return b - a; } - }; + } /** * LFU Cache Strategy - Least Frequently Used @@ -43,7 +43,7 @@ define([], () => { * Those that are used least often are discarded first * @type {StrategyLFU} */ - let StrategyLFU = class StrategyLFU extends AbstractStrategy { + class StrategyLFU extends AbstractStrategy { valueToCompare(metaData){ return metaData.hitCount; } @@ -51,7 +51,7 @@ define([], () => { compare(a, b){ return a - b; } - }; + } /** * LRU Cache Strategy - Least Recently Used @@ -59,7 +59,7 @@ define([], () => { * No matter how often they have been accessed. * @type {StrategyLRU} */ - let StrategyLRU = class StrategyLRU extends AbstractStrategy { + class StrategyLRU extends AbstractStrategy { valueToCompare(metaData){ return metaData.hits[metaData.hits.length - 1] || metaData.set; } @@ -67,26 +67,26 @@ define([], () => { compare(a, b){ return a - b; } - }; + } /** * Each entry in cache also has its own instance of CacheEntryMeta * -> The configured Cache Strategy use this meta data for eviction policy * @type {CacheEntryMeta} */ - let CacheEntryMeta = class CacheEntryMeta { + class CacheEntryMeta { constructor(ttl, tSet){ - this.ttl = ttl; - this.tSet = tSet || this.constructor.now(); - this.tHits = []; + this._ttl = ttl; // ttl < 0 => no expire + this._tSet = tSet || this.constructor.now(); + this._tHits = []; } get set(){ - return this.tSet; + return this._tSet; } get hits(){ - return this.tHits; + return this._tHits; } get hitCount(){ @@ -94,15 +94,15 @@ define([], () => { } newHit(current){ - this.tHits.push(current || this.constructor.now()); + this._tHits.push(current || this.constructor.now()); } age(current){ - return (current || this.constructor.now()) - this.tSet; + return (current || this.constructor.now()) - this._tSet; } expired(current){ - return this.ttl < this.age(current); + return this._ttl < 0 ? false : this._ttl < this.age(current); } static now(){ @@ -112,7 +112,7 @@ define([], () => { static create(ttl, tSet){ return new this(ttl, tSet); } - }; + } /** * Each instance of Cache represents a key value in memory data store @@ -123,26 +123,18 @@ define([], () => { * if cache reaches maxSize limit, to increase performance. * @type {Cache} */ - let Cache = class Cache { + class Cache { - constructor(config){ - this.config = Object.assign({},{ - name: 'Default', // custom unique name for identification - ttl: 3600, // default ttl for cache entries - maxSize: 600, // max cache entries - bufferSize: 10, // cache entry count in percent to be removed if maxSize reached - strategy: 'FIFO', // cache strategy policy - debug: false // debug output in console - }, config); - - this.store = new Map(); - this.metaStore = new WeakMap(); - this.strategy = this.constructor.setStrategy(this.config.strategy); + constructor(config = {}){ + this._config = Object.assign({}, Cache.defaultConfig, config); + this._store = new Map(); + this._metaStore = new WeakMap(); + this._strategy = this.constructor.setStrategy(this._config.strategy); this.debug = (msg,...data) => { - if(this.config.debug){ + if(this._config.debug){ data = (data || []); - data.unshift(this.config.name); + data.unshift(this._config.name); console.debug('debug: CACHE %o | ' + msg, ...data); } }; @@ -151,34 +143,34 @@ define([], () => { } get size(){ - return this.store.size; + return this._store.size; } isFull(){ - return this.size>= this.config.maxSize; + return this.size>= this._config.maxSize; } set(key, value, ttl){ - if(this.store.has(key)){ + if(this._store.has(key)){ this.debug('SET key %o, UPDATE value %o', key, value); - this.store.set(key, value); + this._store.set(key, value); }else{ this.debug('SET key %o, NEW value %o', key, value); if(this.isFull()){ this.debug(' ↪ FULL trim cache…'); this.trim(this.trimCount(1)); } - this.store.set(key, value); + this._store.set(key, value); } - this.metaStore.set(value, CacheEntryMeta.create(ttl || this.config.ttl)); + this._metaStore.set(value, CacheEntryMeta.create(ttl || this._config.ttl)); } get(key){ - if(this.store.has(key)){ - let value = this.store.get(key); + if(this._store.has(key)){ + let value = this._store.get(key); if(value){ - let metaData = this.metaStore.get(value); + let metaData = this._metaStore.get(value); if(metaData.expired()){ this.debug('EXPIRED key %o delete', key); this.delete(key); @@ -199,8 +191,8 @@ define([], () => { keysForTrim(count){ let trimKeys = []; let compare = []; - for(let [key, value] of this.store){ - let metaData = this.metaStore.get(value); + for(let [key, value] of this._store){ + let metaData = this._metaStore.get(value); if(metaData.expired()){ trimKeys.push(key); if(count === trimKeys.length){ @@ -209,14 +201,14 @@ define([], () => { }else{ compare.push({ key: key, - value: this.strategy.valueToCompare(metaData) + value: this._strategy.valueToCompare(metaData) }); } } let countLeft = count - trimKeys.length; if(countLeft > 0){ - compare = compare.sort((a, b) => this.strategy.compare(a.value, b.value)); + compare = compare.sort((a, b) => this._strategy.compare(a.value, b.value)); trimKeys = trimKeys.concat(compare.splice(0, countLeft).map(a => a.key)); } @@ -224,20 +216,20 @@ define([], () => { } keys(){ - return this.store.keys(); + return this._store.keys(); } delete(key){ - return this.store.delete(key); + return this._store.delete(key); } clear(){ - this.store.clear(); + this._store.clear(); } trimCount(spaceLeft){ - let bufferSize = Math.max(Math.round(this.config.maxSize / 100 * this.config.bufferSize), spaceLeft); - return Math.min(Math.max(this.size - this.config.maxSize + bufferSize, 0), this.size); + let bufferSize = Math.max(Math.round(this._config.maxSize / 100 * this._config.bufferSize), spaceLeft); + return Math.min(Math.max(this.size - this._config.maxSize + bufferSize, 0), this.size); } trim(count){ @@ -253,9 +245,9 @@ define([], () => { status(){ return { - config: this.config, - store: this.store, - metaStore: this.metaStore + config: this._config, + store: this._store, + metaStore: this._metaStore }; } @@ -269,6 +261,15 @@ define([], () => { } } + } + + Cache.defaultConfig = { + name: 'Default', // custom unique name for identification + ttl: 3600, // default ttl for cache entries + maxSize: 600, // max cache entries + bufferSize: 10, // cache entry count in percent to be removed if maxSize reached + strategy: 'FIFO', // cache strategy policy + debug: false // debug output in console }; return Cache; diff --git a/public/js/v2.0.0/app/lib/cron.js b/public/js/v2.0.0/app/lib/cron.js index 70f9a8bd..2775a442 100644 --- a/public/js/v2.0.0/app/lib/cron.js +++ b/public/js/v2.0.0/app/lib/cron.js @@ -11,7 +11,7 @@ define([ console.info('task1 function():', timer.getTotalTimeValues()); return 'OK'; }; - Cron.set(task1); + task1.start(); Example2 run task every 3 seconds --------------------------------------------------------------------------------- let task1 = Cron.new('task1', {precision: 'seconds', interval: 3, timeout: 100}); @@ -19,7 +19,7 @@ define([ console.info('task1 function():', timer.getTotalTimeValues()); return 'OK'; }; - Cron.set(task1); + task1.start(); Example3 resolve Promise on run ---------------------------------------------------------------------------------- let task1 = Cron.new('task1', {precision: 'seconds', interval: 1, timeout: 100}); @@ -35,14 +35,14 @@ define([ }); }); }; - Cron.set(task1); + task1.start(); Example4 run task once at given Date() -------------------------------------------------------------------------- let dueDate = new Date(); dueDate.setSeconds(dueDate.getSeconds() + 5); let task2 = Cron.new('task2', {precision: 'seconds', timeout: 100, dueDate: dueDate}); task2.task = () => 'OK task2'; - Cron.set(task2); + task2.start(); */ /** @@ -51,35 +51,42 @@ define([ * @type {Task} */ let Task = class Task { - constructor(name, config){ + /** + * + * @param {string} name + * @param {{}} config + * @param {CronManager} manager + */ + constructor(name, config, manager = null){ if(typeof name !== 'string'){ throw new TypeError('Task "name" must be instance of String, Type of "' + typeof name + '" given'); } this._config = Object.assign({}, this.constructor.defaultConfig, config); this._name = name; // unique name for identification - this._task = undefined; // task to run, instanceof Function, can also return a Promise - this._manager = undefined; // reference to CronManager() that handles this task + this._task = (timer, task) => {}; // task to run, instanceof Function, can also return a Promise + this._manager = manager; // reference to CronManager() that handles this task + this._runCount = 0; // counter for run() calls this._runQueue = new Map(); // current run() processes. > 1 requires config.isParallel: true - this._runCount = 0; // total run counter for this task this._lastTotalTimeValues = undefined; // time values of last run() } + /** + * @returns {string} + */ get name(){ return this._name; } - get task(){ + /** + * @returns {(function())} task + */ + get task() { return this._task; } - get runCount(){ - return this._runCount; - } - - get precision(){ - return this._config.precision; - } - + /** + * @param {(function())} task + */ set task(task){ if(task instanceof Function){ this._task = task; @@ -88,34 +95,120 @@ define([ } } + /** + * @returns {number} + */ + get runCount(){ + return this._runCount; + } + + /** + * @returns {string} + */ + get precision(){ + return this.get('precision'); + } + + /** + * @returns {boolean} + */ + get paused(){ + return this.get('paused'); + } + + /** + * @returns {boolean} + */ + get targetAchieved(){ + return this.get('targetRunCount') ? this.runCount >= this.get('targetRunCount') : false; + } + + /** + * @returns {number} + */ + get targetProgress(){ + return parseFloat( + parseFloat( + (!this.get('targetRunCount') || !this.runCount) ? + 0 : + (100 / this.get('targetRunCount') * this.runCount) + ).toFixed(2)); + } + + /** + * @param option + * @returns {*} + */ get(option){ return this._config[option]; } + /** + * @param {string} option + * @param {*} value + */ set(option, value){ this._config[option] = value; } - setManager(manager){ - this._manager = manager; + /** + * connect CronManager with instance + * @param {CronManager} manager + */ + connect(manager = this._manager){ + if(manager instanceof CronManager){ + if(manager !== this._manager){ + // disconnect from current manager (if exists) + this.disconnect(); + this._manager = manager; + } + this._manager.set(this); + }else{ + throw new TypeError('Parameter must be instance of CronManager. Type of "' + typeof manager + '" given'); + } } + /** + * disconnect from CronManager + * @param {CronManager} manager + */ + disconnect(manager = this._manager){ + if(manager instanceof CronManager){ + if(this.isConnected(manager)){ + this._manager.delete(this._name); + } + }else{ + throw new TypeError('Parameter must be instance of CronManager. Type of "' + typeof manager + '" given'); + } + } + + /** + * checks if CronManager is connected with instance + * @param {CronManager} manager + * @returns {boolean} + */ + isConnected(manager = this._manager){ + return (manager instanceof CronManager) && + manager === this._manager && + manager.has(this._name); + } + + /** + * if task is currently running + * @returns {boolean} + */ isRunning(){ return !!this._runQueue.size; } - delete(){ - let isDeleted = false; - if(this._manager){ - isDeleted = this._manager.delete(this._name); - } - return isDeleted; - } - + /** + * @param timer + * @returns {boolean} + */ isDue(timer){ - if(this._config.dueDate instanceof Date){ + if(this.get('dueDate') instanceof Date){ // run once at dueDate - if(new Date().getTime() >= this._config.dueDate.getTime()){ + if(new Date().getTime() >= this.get('dueDate').getTime()){ return true; } }else{ @@ -124,8 +217,8 @@ define([ let totalTimeValuePrecision = totalTimeValues[this.precision]; totalTimeValuePrecision -= this._lastTotalTimeValues ? this._lastTotalTimeValues[this.precision] : 0; if( - this._config.interval === 1 || - totalTimeValuePrecision % this._config.interval === 0 + this.get('interval') === 1 || + totalTimeValuePrecision % this.get('interval') === 0 ){ return true; } @@ -133,23 +226,30 @@ define([ return false; } + /** + * @param timer + */ invoke(timer){ if( + !this.paused && this.isDue(timer) && - (!this.isRunning() || this._config.isParallel) + (!this.isRunning() || this.get('isParallel')) ){ this.run(timer); } } + /** + * @param timer + */ run(timer){ this._lastTotalTimeValues = Object.assign({}, timer.getTotalTimeValues()); let runId = 'run_' + (++this._runCount); let runExec = resolve => { - resolve(this.task(timer, this)); + resolve(this._task(timer, this)); }; - let myProm = this._config.timeout > 0 ? new TimeoutPromise(runExec, this._config.timeout) : new Promise(runExec); + let myProm = this.get('timeout') > 0 ? new TimeoutPromise(runExec, this.get('timeout')) : new Promise(runExec); myProm.then(payload => { // resolved within timeout -> wait for finally() block }).catch(error => { @@ -162,14 +262,37 @@ define([ // -> remove from _runQueue this._runQueue.delete(runId); - // remove this task from store after run - if(this._config.dueDate instanceof Date){ - this.delete(); + if(this.get('dueDate') instanceof Date){ + this.disconnect(); + } + + if(this.targetAchieved){ + this.stop(); } }); this._runQueue.set(runId, myProm); } + + // Task controls ---------------------------------------------------------------------------------------------- + + start(){ + this.set('paused', false); + this.connect(); + } + + stop(){ + this.reset(); + this.disconnect(); + } + + pause(){ + this.set('paused', true); + } + + reset(){ + this._runCount = 0; + } }; Task.defaultConfig = { @@ -177,7 +300,9 @@ define([ isParallel: false, // if true this task can run parallel, e.g. if prev execution has not finished interval: 1, // relates to 'precision'. 'interval' = 3 and 'precision' = "seconds" -> run every 3 seconds dueDate: undefined, // if Date() instance is set, task only runs once at dueDate - timeout: 50 // if > 0, execution time that exceeds timeout (ms) throw error + timeout: 50, // if > 0, execution time that exceeds timeout (ms) throw error + paused: false, // if true this task will not run() but will be invoce()´ed + targetRunCount: 0 // if > 0, task will stop if targetRunCount is reached }; @@ -188,6 +313,9 @@ define([ */ let CronManager = class CronManager { + /** + * @param {{}} config + */ constructor(config){ this._config = Object.assign({}, this.constructor.defaultConfig, config); this._timerConfig = Object.assign({}, this.constructor.defaultTimerConfig); @@ -211,47 +339,75 @@ define([ }; } + /** + * @param {string} name + * @param {{}} config + * @returns {Task} + */ new(name, config){ - return new Task(name, config); + return new Task(name, config, this); } + /** + * @param {Task} task + */ set(task){ if(task instanceof Task){ - // check for unique task name, or update existing task - if(!this.has(task.name) || (this.get(task.name) === task)){ - // set new or update existing task - task.setManager(this); + // check for unique task name + if(!this.has(task.name)){ + // connect new task + // -> must be before connect(this)! (prevents infinite loop) this._tasks.set(task.name, task); + task.connect(this); + this.debug('SET/UPDATE task: %o config: %o', task.name, task); // start timer (if it is not already running) this.auto(); - }else{ - console.warn('FAILED to set task. Task name %o already exists', task.name); } }else{ throw new TypeError('Parameter must be instance of Task'); } } + /** + * @param {string} name + * @param {{}} config + */ setNew(name, config){ this.set(this.new(name, config)); } + /** + * @param {string} name + * @returns {Task|undefined} + */ get(name){ return this._tasks.get(name); } + /** + * @param {string} name + * @returns {boolean} + */ has(name){ return this._tasks.has(name); } + /** + * @param {string} name + */ delete(name){ - let isDeleted = this._tasks.delete(name); - if(isDeleted){ + if(this.has(name)){ + let task = this._tasks.get(name); + // disconnect task + // -> must be before disconnect(this)! (prevents infinite loop) + this._tasks.delete(name); + task.disconnect(this); + this.debug('DELETE task: %o', name); + // stop timer (if no more tasks connected) this.auto(); } - return isDeleted; } clear(){ @@ -260,6 +416,10 @@ define([ this.auto(); } + /** + * @param {string} precision + * @returns {Task[]} + */ tasksByPrecision(precision){ let tasks = []; this._tasks.forEach(task => { diff --git a/public/js/v2.0.0/app/lib/dataStore.js b/public/js/v2.0.0/app/lib/dataStore.js index 3c8d81ee..3a52c853 100644 --- a/public/js/v2.0.0/app/lib/dataStore.js +++ b/public/js/v2.0.0/app/lib/dataStore.js @@ -34,7 +34,7 @@ define([], () => { } get(obj, key) { - return this._store.has(obj) && this._store.get(obj).get(key); + return this._store.has(obj) && (key ? this._store.get(obj).get(key) : this._store.get(obj)); } has(obj, key) { @@ -45,6 +45,8 @@ define([], () => { let ret = false; if (this._store.has(obj)) { ret = this._store.get(obj).delete(key); + // remove obj if store is empty + // -> 'size' property is does not exist if valueStore is WeakMap if (!this._store.get(obj).size) { this._store.delete(obj); } diff --git a/public/js/v2.0.0/app/lib/localStore.js b/public/js/v2.0.0/app/lib/localStore.js index 6df7828b..68283d22 100644 --- a/public/js/v2.0.0/app/lib/localStore.js +++ b/public/js/v2.0.0/app/lib/localStore.js @@ -193,10 +193,10 @@ define([ } /** - * set LocalStoreManager for this instance + * connect LocalStoreManager with instance * @param {LocalStoreManager} manager */ - setManager(manager){ + connect(manager){ if(manager instanceof LocalStoreManager){ this._manager = manager; }else{ @@ -299,7 +299,7 @@ define([ /** * check var for Object * @param obj - * @returns {boolean|boolean} + * @returns {boolean} */ static isObject(obj){ return (!!obj) && (obj.constructor === Object); @@ -372,7 +372,7 @@ define([ }, { name: LocalStore.buildDbName(name) }); - store.setManager(this); + store.connect(this); this._store.set(name, store); } return this._store.get(name); diff --git a/public/js/v2.0.0/app/lib/prototypes.js b/public/js/v2.0.0/app/lib/prototypes.js index b63e10eb..23182801 100644 --- a/public/js/v2.0.0/app/lib/prototypes.js +++ b/public/js/v2.0.0/app/lib/prototypes.js @@ -103,14 +103,9 @@ define([ * @returns {number} */ String.prototype.hashCode = function(){ - let hash = 0, i, chr; - if(this.length === 0) return hash; - for(i = 0; i < this.length; i++){ - chr = this.charCodeAt(i); - hash = ((hash << 5) - hash) + chr; - hash |= 0; // Convert to 32bit integer - } - return hash; + let hash = this.split('').reduce((a,b) => (((a << 5) - a) + b.charCodeAt(0))|0, 0); + // make positive + return (hash + 2147483647) + 1; }; String.prototype.trimLeftChars = function(charList){ diff --git a/public/js/v2.0.0/app/map/contextmenu.js b/public/js/v2.0.0/app/map/contextmenu.js index 502b043a..f2622862 100644 --- a/public/js/v2.0.0/app/map/contextmenu.js +++ b/public/js/v2.0.0/app/map/contextmenu.js @@ -222,7 +222,7 @@ define([ * @param excludeMenu */ let closeMenus = excludeMenu => { - let allMenus = $('.' + config.contextMenuClass + '[role="menu"]'); + let allMenus = $('.' + config.contextMenuClass + '[role="menu"][style*="display: block"]'); if(excludeMenu){ allMenus = allMenus.not(excludeMenu); } @@ -291,17 +291,15 @@ define([ /** * default config (skeleton) for valid context menu configuration - * @returns {{hidden: Array, active: Array, disabled: Array, id: string, selectCallback: null}} + * @returns {{hidden: [], active: [], disabled: [], id: string, selectCallback: null}} */ - let defaultMenuOptionConfig = () => { - return { - 'id': '', - 'selectCallback': null, - 'hidden': [], - 'active': [], - 'disabled': [] - }; - }; + let defaultMenuOptionConfig = () => ({ + 'id': '', + 'selectCallback': null, + 'hidden': [], + 'active': [], + 'disabled': [] + }); return { config: config, diff --git a/public/js/v2.0.0/app/map/map.js b/public/js/v2.0.0/app/map/map.js index e379e6d8..6e61c9d1 100644 --- a/public/js/v2.0.0/app/map/map.js +++ b/public/js/v2.0.0/app/map/map.js @@ -29,7 +29,6 @@ define([ mapIdPrefix: 'pf-map-', // id prefix for all maps systemClass: 'pf-system', // class for all systems - systemActiveClass: 'pf-system-active', // class for an active system on a map systemSelectedClass: 'pf-system-selected', // class for selected systems on a map systemHeadClass: 'pf-system-head', // class for system head systemHeadNameClass: 'pf-system-head-name', // class for system name @@ -116,7 +115,7 @@ define([ }, connectionsDetachable: true, // dragOptions are set -> allow detaching them maxConnections: 10, // due to isTarget is true, this is the max count of !out!-going connections - // isSource:true + //isSource:true }, target: { filter: filterSystemHeadEvent, @@ -125,10 +124,10 @@ define([ //allowLoopBack: false, // loopBack connections are not allowed cssClass: config.endpointTargetClass, dropOptions: { - hoverClass: config.systemActiveClass, + //hoverClass: '', activeClass: 'dragActive' }, - // uniqueEndpoint: false + //uniqueEndpoint: false }, endpointTypes: Init.endpointTypes, connectionTypes: Init.connectionTypes @@ -876,23 +875,23 @@ define([ * connect two systems * @param map * @param connectionData - * @returns new connection + * @returns {Promise} */ - let drawConnection = (map, connectionData) => { + let drawConnection = (map, connectionData) => new Promise((resolve, reject) => { let mapContainer = $(map.getContainer()); let mapId = mapContainer.data('id'); let connectionId = connectionData.id || 0; - let connection; let sourceSystem = $('#' + MapUtil.getSystemId(mapId, connectionData.source)); let targetSystem = $('#' + MapUtil.getSystemId(mapId, connectionData.target)); // check if both systems exists // (If not -> something went wrong e.g. DB-Foreign keys for "ON DELETE",...) - if( - sourceSystem.length && - targetSystem.length - ){ - connection = map.connect({ + if(!sourceSystem.length){ + reject(new Error(`drawConnection(): source system (id: ${connectionData.source}) not found`)); + }else if(!targetSystem.length){ + reject(new Error(`drawConnection(): target system (id: ${connectionData.target}) not found`)); + }else{ + let connection = map.connect({ source: sourceSystem[0], target: targetSystem[0], scope: connectionData.scope || map.Defaults.Scope, @@ -948,18 +947,18 @@ define([ } } } - } - }else{ - if( !sourceSystem.length ){ - console.warn('drawConnection(): source system (id: ' + connectionData.source + ') not found'); - } - if( !targetSystem.length ){ - console.warn('drawConnection(): target system (id: ' + connectionData.target + ') not found'); + + resolve({ + action: 'drawConnection', + data: { + connection: connection + } + }); + }else{ + reject(new Error(`drawConnection(): connection must be instanceof jsPlumb.Connection`)); } } - - return connection; - }; + }); /** * compares the current data and new data of a connection and updates status @@ -1233,168 +1232,178 @@ define([ * @param reject */ let updateMapExecutor = (resolve, reject) => { - // jsPlumb needs to be initialized. This is not the case when switching between map tabs right after refresh - let mapContainer = mapConfig.map ? $(mapConfig.map.getContainer()) : null; - if(mapContainer){ - let mapId = mapConfig.config.id; - - // add additional information for this map - if(mapContainer.data('updated') !== mapConfig.config.updated.updated){ - mapContainer.data('name', mapConfig.config.name); - mapContainer.data('scopeId', mapConfig.config.scope.id); - mapContainer.data('typeId', mapConfig.config.type.id); - mapContainer.data('typeName', mapConfig.config.type.name); - mapContainer.data('icon', mapConfig.config.icon); - mapContainer.data('created', mapConfig.config.created.created); - mapContainer.data('updated', mapConfig.config.updated.updated); - } - - // get map data - let mapData = getMapDataForSync(mapContainer, [], true); - - - if(mapData !== false){ - // map data available -> map not locked by update counter :) - let currentSystemData = mapData.data.systems; - let currentConnectionData = mapData.data.connections; - - // update systems ================================================================================= - for(let i = 0; i < mapConfig.data.systems.length; i++){ - let systemData = mapConfig.data.systems[i]; - - // add system - let addNewSystem = true; - - for(let k = 0; k < currentSystemData.length; k++){ - if(currentSystemData[k].id === systemData.id){ - if(currentSystemData[k].updated.updated < systemData.updated.updated){ - // system changed -> update - mapContainer.getSystem(mapConfig.map, systemData); - } - - addNewSystem = false; - break; - } - } - - if(addNewSystem === true){ - drawSystem(mapConfig.map, systemData); - } - } - - // check for systems that are gone -> delete system - for(let a = 0; a < currentSystemData.length; a++){ - let deleteThisSystem = true; - - for(let b = 0; b < mapConfig.data.systems.length; b++){ - let deleteSystemData = mapConfig.data.systems[b]; - - if(deleteSystemData.id === currentSystemData[a].id){ - deleteThisSystem = false; - break; - } - } - - if(deleteThisSystem === true){ - let deleteSystem = $('#' + MapUtil.getSystemId(mapContainer.data('id'), currentSystemData[a].id)); - - // system not found -> delete system - System.removeSystems(mapConfig.map, deleteSystem); - } - } - - // update connections ============================================================================= - - // jsPlumb batch() is used, otherwise there are some "strange" visual bugs - // when switching maps (Endpoints are not displayed correctly) - mapConfig.map.batch(function(){ - - for(let j = 0; j < mapConfig.data.connections.length; j++){ - let connectionData = mapConfig.data.connections[j]; - - // add connection - let addNewConnection= true; - - for(let c = 0; c < currentConnectionData.length; c++){ - if(currentConnectionData[c].id === connectionData.id){ - // connection already exists -> check for updates - if(currentConnectionData[c].updated < connectionData.updated){ - // connection changed -> update - updateConnection(currentConnectionData[c].connection, connectionData); - } - - addNewConnection = false; - break; - }else if( - currentConnectionData[c].id === 0 && - currentConnectionData[c].source === connectionData.source && - currentConnectionData[c].target === connectionData.target - ){ - // if ids don´t match -> check for unsaved connection - updateConnection(currentConnectionData[c].connection, connectionData); - - addNewConnection = false; - break; - } - } - - if(addNewConnection === true){ - drawConnection(mapConfig.map, connectionData); - } - } - - // check for connections that are gone -> delete connection - for(let d = 0; d < currentConnectionData.length; d++){ - // skip connections with id = 0 -> they might get updated before - if(currentConnectionData[d].id === 0){ - continue; - } - - let deleteThisConnection = true; - - for(let e = 0; e < mapConfig.data.connections.length;e++){ - let deleteConnectionData = mapConfig.data.connections[e]; - - if(deleteConnectionData.id === currentConnectionData[d].id){ - deleteThisConnection = false; - break; - } - } - - if(deleteThisConnection === true){ - // connection not found -> delete connection - let deleteConnection = currentConnectionData[d].connection; - - if(deleteConnection){ - // check if "source" and "target" still exist before remove - // this is NOT the case if the system was removed previous - if( - deleteConnection.source && - deleteConnection.target - ){ - mapConfig.map.deleteConnection(deleteConnection, {fireEvent: false}); - } - } - } - } - }); - - // update local connection cache - updateConnectionsCache(mapConfig.map); - }else{ - // map is currently logged -> queue update for this map until unlock - if( mapUpdateQueue.indexOf(mapId) === -1 ){ - mapUpdateQueue.push(mapId); - } - } - } - - resolve({ + let payload = { action: 'updateMap', data: { mapConfig: mapConfig } - }); + }; + + // jsPlumb needs to be initialized. This is not the case when switching between map tabs right after refresh + let mapContainer = mapConfig.map ? mapConfig.map.getContainer() : null; + if(!mapContainer){ + return resolve(payload); + } + + let mapId = mapConfig.config.id; + + // mapData == false -> map locked by update counter. Skip update + let mapData = getMapDataForSync(mapContainer, [], true); + + if(!mapData){ + // map is currently locked -> queue update for this map until unlock + if(mapUpdateQueue.indexOf(mapId) === -1){ + mapUpdateQueue.push(mapId); + } + return resolve(payload); + } + + mapContainer = $(mapContainer); + + // add additional information for this map + if(mapContainer.data('updated') !== mapConfig.config.updated.updated){ + mapContainer.data('name', mapConfig.config.name); + mapContainer.data('scopeId', mapConfig.config.scope.id); + mapContainer.data('typeId', mapConfig.config.type.id); + mapContainer.data('typeName', mapConfig.config.type.name); + mapContainer.data('icon', mapConfig.config.icon); + mapContainer.data('created', mapConfig.config.created.created); + mapContainer.data('updated', mapConfig.config.updated.updated); + } + + // map data available -> map not locked by update counter :) + let currentSystemData = mapData.data.systems; + let currentConnectionData = mapData.data.connections; + + // update systems ========================================================================================= + for(let i = 0; i < mapConfig.data.systems.length; i++){ + let systemData = mapConfig.data.systems[i]; + + // add system + let addNewSystem = true; + + for(let k = 0; k < currentSystemData.length; k++){ + if(currentSystemData[k].id === systemData.id){ + if(currentSystemData[k].updated.updated < systemData.updated.updated){ + // system changed -> update + mapContainer.getSystem(mapConfig.map, systemData); + } + + addNewSystem = false; + break; + } + } + + if(addNewSystem === true){ + drawSystem(mapConfig.map, systemData).catch(console.warn); + } + } + + // check for systems that are gone -> delete system + for(let a = 0; a < currentSystemData.length; a++){ + let deleteThisSystem = true; + + for(let b = 0; b < mapConfig.data.systems.length; b++){ + let deleteSystemData = mapConfig.data.systems[b]; + + if(deleteSystemData.id === currentSystemData[a].id){ + deleteThisSystem = false; + break; + } + } + + if(deleteThisSystem === true){ + let deleteSystem = $('#' + MapUtil.getSystemId(mapContainer.data('id'), currentSystemData[a].id)); + + // system not found -> delete system + System.removeSystems(mapConfig.map, deleteSystem); + } + } + + // update connections ===================================================================================== + + // jsPlumb setSuspendDrawing() (batch() did not work because it async 'scopes' out updates). + // -> Otherwise there are some "strange" visual bugs when switching maps (Endpoints are not displayed correctly) + // -> needs to be "disabled" later in this method. + mapConfig.map.setSuspendDrawing(true); + + for(let j = 0; j < mapConfig.data.connections.length; j++){ + let connectionData = mapConfig.data.connections[j]; + + // add connection + let addNewConnection= true; + + for(let c = 0; c < currentConnectionData.length; c++){ + if(currentConnectionData[c].id === connectionData.id){ + // connection already exists -> check for updates + if(currentConnectionData[c].updated < connectionData.updated){ + // connection changed -> update + updateConnection(currentConnectionData[c].connection, connectionData); + } + + addNewConnection = false; + break; + }else if( + currentConnectionData[c].id === 0 && + currentConnectionData[c].source === connectionData.source && + currentConnectionData[c].target === connectionData.target + ){ + // if ids don´t match -> check for unsaved connection + updateConnection(currentConnectionData[c].connection, connectionData); + + addNewConnection = false; + break; + } + } + + if(addNewConnection === true){ + drawConnection(mapConfig.map, connectionData).catch(console.warn); + } + } + + // check for connections that are gone -> delete connection + for(let d = 0; d < currentConnectionData.length; d++){ + // skip connections with id = 0 -> they might get updated before + if(currentConnectionData[d].id === 0){ + continue; + } + + let deleteThisConnection = true; + + for(let e = 0; e < mapConfig.data.connections.length;e++){ + let deleteConnectionData = mapConfig.data.connections[e]; + + if(deleteConnectionData.id === currentConnectionData[d].id){ + deleteThisConnection = false; + break; + } + } + + if(deleteThisConnection === true){ + // connection not found -> delete connection + let deleteConnection = currentConnectionData[d].connection; + + if(deleteConnection){ + // check if "source" and "target" still exist before remove + // this is NOT the case if the system was removed previous + if( + deleteConnection.source && + deleteConnection.target + ){ + mapConfig.map.deleteConnection(deleteConnection, {fireEvent: false}); + } + } + } + } + + mapConfig.map.setSuspendDrawing(false, true); + + // update local connection cache + updateConnectionsCache(mapConfig.map); + + + + return resolve(payload); }; /** @@ -1402,44 +1411,53 @@ define([ * @param payload * @returns {Promise} */ - let filterMapByScopes = payload => { - let filterMapByScopesExecutor = resolve => { - Util.getLocalStore('map').getItem(payload.data.mapConfig.config.id).then(dataStore => { - let scopes = []; - if(dataStore && dataStore.filterScopes){ - scopes = dataStore.filterScopes; - } - - MapUtil.filterMapByScopes(payload.data.mapConfig.map, scopes); - resolve(payload); - }); - }; - - return new Promise(filterMapByScopesExecutor); - }; + let filterMapByScopes = payload => new Promise(resolve => { + Util.getLocalStore('map').getItem(payload.data.mapConfig.config.id).then(dataStore => { + let scopes = []; + if(dataStore && dataStore.filterScopes){ + scopes = dataStore.filterScopes; + } + MapUtil.filterMapByScopes(payload.data.mapConfig.map, scopes); + resolve(payload); + }); + }); /** * show signature overlays * @param payload * @returns {Promise} */ - let showInfoSignatureOverlays = payload => { - let showInfoSignatureOverlaysExecutor = resolve => { - Util.getLocalStore('map').getItem(payload.data.mapConfig.config.id).then(dataStore => { - if(dataStore && dataStore.mapSignatureOverlays){ - MapOverlay.showInfoSignatureOverlays($(payload.data.mapConfig.map.getContainer())); - } + let showInfoSignatureOverlays = payload => new Promise(resolve => { + Util.getLocalStore('map').getItem(payload.data.mapConfig.config.id).then(dataStore => { + if(dataStore && dataStore.mapSignatureOverlays){ + MapOverlay.showInfoSignatureOverlays($(payload.data.mapConfig.map.getContainer())); + } + resolve(payload); + }); + }); - resolve(payload); + /** + * after map update is complete + * -> trigger update event for 'global' modules + * @param payload + * @returns {Promise} + */ + let afterUpdate = payload => new Promise(resolve => { + // in rare cases there is a bug where map is undefined (hard to reproduce + let map = Util.getObjVal(payload, 'data.mapConfig.map'); + if(map){ + let tabContentEl = map.getContainer().closest(`.${Util.config.mapTabContentClass}`); + $(tabContentEl).trigger('pf:updateGlobalModules', { + payload: Util.getObjVal(payload, 'data.mapConfig.config.id') }); - }; - - return new Promise(showInfoSignatureOverlaysExecutor); - }; + } + resolve(payload); + }); return new Promise(updateMapExecutor) .then(showInfoSignatureOverlays) - .then(filterMapByScopes); + .then(filterMapByScopes) + .then(afterUpdate); }; /** @@ -1530,28 +1548,22 @@ define([ * @param systemData * @returns {boolean} */ - let isValidSystem = systemData => { - let isValid = true; - if( - !systemData.hasOwnProperty('name') || - systemData.name.length === 0 - ){ - return false; - } - - return isValid; - }; + let isValidSystem = systemData => (Util.getObjVal(systemData, 'name') || '').length > 0; /** * draw a system with its data to a map * @param map * @param systemData * @param connectedSystem + * @param connectionData + * @returns {Promise} */ - let drawSystem = (map, systemData, connectedSystem) => { - - // check if systemData is valid + let drawSystem = (map, systemData, connectedSystem, connectionData = null) => new Promise((resolve, reject) => { if(isValidSystem(systemData)){ + let payloadDrawSystem = { + action: 'drawSystem' + }; + let mapContainer = $(map.getContainer()); // get System Element by data @@ -1575,24 +1587,37 @@ define([ // register system to "magnetizer" Magnetizer.addElement(systemData.mapId, newSystem[0]); + payloadDrawSystem.data = { + system: newSystem + }; + // connect new system (if connection data is given) if(connectedSystem){ - // hint: "scope + type" might be changed automatically when it gets saved // -> based on jump distance,.. - let connectionData = { + connectionData = Object.assign({}, { source: $(connectedSystem).data('id'), target: newSystem.data('id'), scope: map.Defaults.Scope, type: [MapUtil.getDefaultConnectionTypeByScope(map.Defaults.Scope)] - }; - let connection = drawConnection(map, connectionData); + }, connectionData); - // store connection - saveConnection(connection); + drawConnection(map, connectionData) + .then(payload => saveConnection(payload.data.connection, Boolean(connectionData.disableAutoScope))) + .then(payload => { + payloadDrawSystem.data = { + connection: payload.data.connection + }; + resolve(payloadDrawSystem); + }) + .catch(reject); + }else{ + resolve(payloadDrawSystem); } + }else{ + reject(new Error(`drawSystem() failed. Invalid systemData`)); } - }; + }); /** * make a system name/alias editable by x-editable @@ -1656,56 +1681,69 @@ define([ /** * stores a connection in database * @param connection + * @param disableAutoScope + * @returns {Promise} */ - let saveConnection = connection => { - if(connection instanceof jsPlumb.Connection){ - connection.addType('state_process'); - - let map = connection._jsPlumb.instance; - let mapContainer = $(map.getContainer()); - let mapId = mapContainer.data('id'); - - let connectionData = MapUtil.getDataByConnection(connection); - connectionData.mapId = mapId; - - Util.request('PUT', 'connection', [], connectionData, { - connection: connection, - map: map, - mapId: mapId, - oldConnectionData: connectionData - }).then( - payload => { - let newConnectionData = payload.data; - - if(!$.isEmptyObject(newConnectionData)){ - // update connection data e.g. "scope" has auto detected - connection = updateConnection(payload.context.connection, newConnectionData); - - // new/updated connection should be cached immediately! - updateConnectionCache(payload.context.mapId, connection); - - // connection scope - let scope = MapUtil.getScopeInfoForConnection(newConnectionData.scope, 'label'); - - let title = 'New connection established'; - if(payload.context.oldConnectionData.id > 0){ - title = 'Connection switched'; - } - - Util.showNotify({title: title, text: 'Scope: ' + scope, type: 'success'}); - }else{ - // some save errors - payload.context.map.deleteConnection(payload.context.connection, {fireEvent: false}); - } - }, - payload => { - // remove this connection from map - payload.context.map.deleteConnection(payload.context.connection, {fireEvent: false}); - Util.handleAjaxErrorResponse(payload); - } - ); + let saveConnection = (connection, disableAutoScope = false) => new Promise((resolve, reject) => { + if(!(connection instanceof jsPlumb.Connection)){ + reject(new Error(`saveConnection(): connection must be instanceof jsPlumb.Connection`)); } - }; + + connection.addType('state_process'); + + let map = connection._jsPlumb.instance; + let mapContainer = $(map.getContainer()); + let mapId = mapContainer.data('id'); + + let connectionData = MapUtil.getDataByConnection(connection); + connectionData.mapId = mapId; + connectionData.disableAutoScope = disableAutoScope; + + Util.request('PUT', 'connection', [], connectionData, { + connection: connection, + map: map, + mapId: mapId, + oldConnectionData: connectionData + }).then( + payload => { + let newConnectionData = payload.data; + + if(!$.isEmptyObject(newConnectionData)){ + // update connection data e.g. "scope" has auto detected + connection = updateConnection(payload.context.connection, newConnectionData); + + // new/updated connection should be cached immediately! + updateConnectionCache(payload.context.mapId, connection); + + // connection scope + let scope = MapUtil.getScopeInfoForConnection(newConnectionData.scope, 'label'); + + let title = 'New connection established'; + if(payload.context.oldConnectionData.id > 0){ + title = 'Connection switched'; + } + + Util.showNotify({title: title, text: 'Scope: ' + scope, type: 'success'}); + resolve({ + action: 'saveConnection', + data: { + connection: connection + } + }); + }else{ + // some save errors + payload.context.map.deleteConnection(payload.context.connection, {fireEvent: false}); + reject(new Error(`saveConnection(): response error`)); + } + }, + payload => { + // remove this connection from map + payload.context.map.deleteConnection(payload.context.connection, {fireEvent: false}); + Util.handleAjaxErrorResponse(payload); + reject(new Error(`saveConnection(): request error`)); + } + ); + }); /** * get context menu config for a map component (e.g. system, connection,..) @@ -1742,7 +1780,7 @@ define([ options.hidden.push('delete_system'); } - if( !mapContainer.find('.' + config.systemActiveClass).length){ + if( !mapContainer.find('.' + MapUtil.config.systemActiveClass).length){ options.hidden.push('find_route'); } @@ -1755,7 +1793,7 @@ define([ } // disabled menu actions - if(system.hasClass(config.systemActiveClass)){ + if(system.hasClass(MapUtil.config.systemActiveClass)){ options.disabled.push('find_route'); } @@ -1898,6 +1936,8 @@ define([ // map overlay will be set on "drag" start let mapOverlayTimer = null; + let debounceDrag = false; + // make system draggable map.draggable(system, { containment: 'parent', @@ -1907,7 +1947,7 @@ define([ snapThreshold: MapUtil.config.mapSnapToGridDimension, // distance for grid snapping "magnet" effect (optional) start: function(params){ let dragSystem = $(params.el); - + dragSystem.css('pointer-events','none'); mapOverlayTimer = MapOverlayUtil.getMapOverlay(dragSystem, 'timer'); // start map update timer @@ -1920,9 +1960,6 @@ define([ delete( params.drag.params.grid ); } - // stop "system click event" right after drop event is finished - dragSystem.addClass('no-click'); - // drag system is not always selected let selectedSystems = mapContainer.getSelectedSystems().get(); selectedSystems = selectedSystems.concat(dragSystem.get()); @@ -1938,12 +1975,19 @@ define([ $(selectedSystems).updateSystemZIndex(); }, drag: function(p){ - // start map update timer - mapOverlayTimer.startMapUpdateCounter(); + if(!debounceDrag) { + requestAnimationFrame(() => { + // start map update timer + mapOverlayTimer.startMapUpdateCounter(); - // update system positions for "all" systems that are effected by drag&drop - // this requires "magnet" feature to be active! (optional) - Magnetizer.executeAtEvent(map, p.e); + // update system positions for "all" systems that are effected by drag&drop + // this requires "magnet" feature to be active! (optional) + Magnetizer.executeAtEvent(map, p.e); + + debounceDrag = false; + }); + } + debounceDrag = true; }, stop: function(params){ let dragSystem = $(params.el); @@ -1951,10 +1995,6 @@ define([ // start map update timer mapOverlayTimer.startMapUpdateCounter(); - setTimeout(function(){ - dragSystem.removeClass('no-click'); - }, Init.timer.DBL_CLICK + 50); - // show tooltip dragSystem.toggleSystemTooltip('show', {show: true}); @@ -1975,7 +2015,7 @@ define([ // update all dragged systems -> added to DragSelection params.selection.forEach(elData => { - MapUtil.markAsChanged($(elData[0])); + MapUtil.markAsChanged($(elData[0]).css('pointer-events','initial')); }); } }); @@ -2016,23 +2056,20 @@ define([ if(!popoverClick){ let system = $(this); - // check if system is locked for "click" events - if(!system.hasClass('no-click')){ - // left mouse button - if(e.which === 1){ - if(e.ctrlKey === true){ - // select system - MapUtil.toggleSystemsSelect(map, [system]); - }else{ - MapUtil.showSystemInfo(map, system); - } + // left mouse button + if(e.which === 1){ + if(e.ctrlKey === true){ + // select system + MapUtil.toggleSystemsSelect(map, [system]); + }else{ + MapUtil.showSystemInfo(map, system); } } } }; - Util.singleDoubleClick(system, single, double); + Util.singleDoubleClick(system[0], single, double); }; /** @@ -2040,10 +2077,10 @@ define([ * @param map * @param newSystemData * @param sourceSystem + * @param connectionData + * @returns {Promise} */ - let saveSystemCallback = (map, newSystemData, sourceSystem) => { - drawSystem(map, newSystemData, sourceSystem); - }; + let saveSystemCallback = (map, newSystemData, sourceSystem, connectionData = null) => drawSystem(map, newSystemData, sourceSystem, connectionData); /** * select all (selectable) systems on a mapElement @@ -2193,17 +2230,8 @@ define([ return false; } - // lock the target system for "click" events - // to prevent loading system information let sourceSystem = $('#' + sourceId); let targetSystem = $('#' + targetId); - sourceSystem.addClass('no-click'); - targetSystem.addClass('no-click'); - - setTimeout(() => { - sourceSystem.removeClass('no-click'); - targetSystem.removeClass('no-click'); - }, Init.timer.DBL_CLICK + 50); // switch connection type to "abyss" in case source OR target system belongs to "a-space" if(sourceSystem.data('typeId') === 3 || targetSystem.data('typeId') === 3){ @@ -2227,7 +2255,7 @@ define([ } // always save the new connection - saveConnection(connection); + saveConnection(connection).catch(console.warn); return true; }); @@ -2721,7 +2749,7 @@ define([ selectSystem(mapContainer, data); break; case 'AddSystem': - System.showNewSystemDialog(map, data, saveSystemCallback); + System.showNewSystemDialog(map, data, typeof data.callback === 'function' ? data.callback : saveSystemCallback); break; default: console.warn('Unknown menuAction %o event name', action); @@ -2938,16 +2966,16 @@ define([ /** * collect all map data from client for server or client sync - * @param mapContainer + * @param {HTMLElement} mapContainer * @param filter * @param minimal - * @returns {boolean} + * @returns {boolean|{}} */ let getMapDataForSync = (mapContainer, filter = [], minimal = false) => { let mapData = false; // check if there is an active map counter that prevents collecting map data (locked map) - if(!MapOverlayUtil.getMapOverlayInterval(mapContainer)){ - mapData = mapContainer.getMapDataFromClient(filter, minimal); + if(!MapOverlayUtil.isMapCounterOverlayActive(mapContainer)){ + mapData = $(mapContainer).getMapDataFromClient(filter, minimal); } return mapData; }; @@ -2957,6 +2985,7 @@ define([ * this function returns the "client" data NOT the "server" data for a map * @param filter * @param minimal + * @returns {{}} */ $.fn.getMapDataFromClient = function(filter = [], minimal = false){ let mapContainer = $(this); @@ -3099,34 +3128,29 @@ define([ * @param options * @returns {Promise} */ - let initMapOptions = (mapConfig, options) => { - - let initMapOptionsExecutor = (resolve, reject) => { - let payload = { - action: 'initMapOptions', - data: { - mapConfig: mapConfig - } - }; - - if(options.showAnimation){ - let mapElement = $(mapConfig.map.getContainer()); - MapUtil.setMapDefaultOptions(mapElement, mapConfig.config) - .then(payload => MapUtil.visualizeMap(mapElement, 'show')) - .then(payload => MapUtil.zoomToDefaultScale(mapConfig.map)) - .then(payload => MapUtil.scrollToDefaultPosition(mapConfig.map)) - .then(payload => { - Util.showNotify({title: 'Map initialized', text: mapConfig.config.name + ' - loaded', type: 'success'}); - }) - .then(() => resolve(payload)); - }else{ - // nothing to do here... - resolve(payload); + let initMapOptions = (mapConfig, options) => new Promise((resolve, reject) => { + let payload = { + action: 'initMapOptions', + data: { + mapConfig: mapConfig } }; - return new Promise(initMapOptionsExecutor); - }; + if(options.showAnimation){ + let mapElement = $(mapConfig.map.getContainer()); + MapUtil.setMapDefaultOptions(mapElement, mapConfig.config) + .then(payload => MapUtil.visualizeMap(mapElement, 'show')) + .then(payload => MapUtil.zoomToDefaultScale(mapConfig.map)) + .then(payload => MapUtil.scrollToDefaultPosition(mapConfig.map)) + .then(payload => { + Util.showNotify({title: 'Map initialized', text: mapConfig.config.name + ' - loaded', type: 'success'}); + }) + .then(() => resolve(payload)); + }else{ + // nothing to do here... + resolve(payload); + } + }); /** * load OR updates system map @@ -3136,6 +3160,9 @@ define([ * @returns {Promise} */ let loadMap = (areaMap, mapConfig, options) => { + // whether map gets loaded (initialized) for the first time + // or just updated an existing map + let isFirstLoad = false; /** * load map promise @@ -3150,6 +3177,7 @@ define([ if(mapConfig.map.getContainer() === undefined){ // map not loaded -> create & update + isFirstLoad = true; newMapElement(areaMap, mapConfig) .then(payload => updateMap(payload.data.mapConfig)) .then(payload => resolve(payload)); @@ -3162,7 +3190,12 @@ define([ }; return new Promise(loadMapExecutor) - .then(payload => initMapOptions(payload.data.mapConfig, options)); + .then(payload => initMapOptions(payload.data.mapConfig, options)) + .then(payload => ({ + action: 'loadMap', + data: payload.data, + isFirstLoad + })); }; /** @@ -3330,7 +3363,9 @@ define([ loadMap: loadMap, updateUserData: updateUserData, getMapDataForSync: getMapDataForSync, - saveSystemCallback: saveSystemCallback + saveSystemCallback: saveSystemCallback, + drawConnection: drawConnection, + saveConnection: saveConnection }; }); \ No newline at end of file diff --git a/public/js/v2.0.0/app/map/overlay/overlay.js b/public/js/v2.0.0/app/map/overlay/overlay.js index f5e0b988..550dbe04 100644 --- a/public/js/v2.0.0/app/map/overlay/overlay.js +++ b/public/js/v2.0.0/app/map/overlay/overlay.js @@ -7,8 +7,9 @@ define([ 'app/init', 'app/util', 'app/map/overlay/util', - 'app/map/util' -], ($, Init, Util, MapOverlayUtil, MapUtil) => { + 'app/map/util', + 'app/lib/cron' +], ($, Init, Util, MapOverlayUtil, MapUtil, Cron) => { 'use strict'; /** @@ -107,119 +108,120 @@ define([ let type = 'info_signature'; connectionsData = Util.arrayToObject(connectionsData); - map.batch(() => { - map.getAllConnections().forEach(connection => { - let connectionId = connection.getParameter('connectionId'); - let sourceEndpoint = connection.endpoints[0]; - let targetEndpoint = connection.endpoints[1]; + map.setSuspendDrawing(true); - let connectionData = connectionsData.hasOwnProperty(connectionId) ? connectionsData[connectionId] : undefined; - let signatureTypeData = MapUtil.getConnectionDataFromSignatures(connection, connectionData); + map.getAllConnections().forEach(connection => { + let connectionId = connection.getParameter('connectionId'); + let sourceEndpoint = connection.endpoints[0]; + let targetEndpoint = connection.endpoints[1]; - let sizeLockedBySignature = false; + let connectionData = Util.getObjVal(connectionsData, `${connectionId}`); + let signatureTypeData = MapUtil.getConnectionDataFromSignatures(connection, connectionData); - if(connection.scope === 'wh'){ - if(!connection.hasType(type)){ - connection.addType(type); - } + let sizeLockedBySignature = false; - let overlayArrow = connection.getOverlay(MapOverlayUtil.config.connectionOverlayArrowId); + if(connection.scope === 'wh'){ + if(!connection.hasType(type)){ + connection.addType(type); + } - // Arrow overlay needs to be cleared() (removed) if 'info_signature' gets removed! - // jsPlumb does not handle overlay updates for Arrow overlays... so we need to re-apply the the overlay manually - if(overlayArrow.path && !overlayArrow.path.isConnected){ - connection.canvas.appendChild(overlayArrow.path); - } + let overlayArrow = connection.getOverlay(MapOverlayUtil.config.connectionOverlayArrowId); - // since there "could" be multiple sig labels on each endpoint, - // there can only one "primary label picked up for wormhole jump mass detection! - let primLabel; + // Arrow overlay needs to be cleared() (removed) if 'info_signature' gets removed! + // jsPlumb does not handle overlay updates for Arrow overlays... so we need to re-apply the the overlay manually + if(overlayArrow.path && !overlayArrow.path.isConnected){ + connection.canvas.appendChild(overlayArrow.path); + } - let overlayType = 'diamond'; // not specified - let arrowDirection = 1; + // since there "could" be multiple sig labels on each endpoint, + // there can only one "primary label picked up for wormhole jump mass detection! + let primeLabel; - if(connectionData && connectionData.signatures){ - // signature data found for current connection - let sourceLabel = signatureTypeData.source.labels; - let targetLabel = signatureTypeData.target.labels; + let overlayType = 'diamond'; // not specified + let arrowDirection = 1; - // add arrow (connection) overlay that points from "XXX" => "K162" ---------------------------- - if( - (sourceLabel.includes('K162') && targetLabel.includes('K162')) || - (sourceLabel.length === 0 && targetLabel.length === 0) || - ( - sourceLabel.length > 0 && targetLabel.length > 0 && - !sourceLabel.includes('K162') && !targetLabel.includes('K162') - ) - ){ - // unknown direction -> show default 'diamond' overlay - overlayType = 'diamond'; - }else if( - (sourceLabel.includes('K162')) || - (sourceLabel.length === 0 && !targetLabel.includes('K162')) - ){ - // convert default arrow direction - overlayType = 'arrow'; - arrowDirection = -1; + if(connectionData && connectionData.signatures){ + // signature data found for current connection + let sourceLabel = signatureTypeData.source.labels; + let targetLabel = signatureTypeData.target.labels; - primLabel = targetLabel.find(label => label !== 'K162'); - }else{ - // default arrow direction is fine - overlayType = 'arrow'; + // add arrow (connection) overlay that points from "XXX" => "K162" ---------------------------- + if( + (sourceLabel.includes('K162') && targetLabel.includes('K162')) || + (sourceLabel.length === 0 && targetLabel.length === 0) || + ( + sourceLabel.length > 0 && targetLabel.length > 0 && + !sourceLabel.includes('K162') && !targetLabel.includes('K162') + ) + ){ + // unknown direction -> show default 'diamond' overlay + overlayType = 'diamond'; + }else if( + (sourceLabel.includes('K162')) || + (sourceLabel.length === 0 && !targetLabel.includes('K162')) + ){ + // convert default arrow direction + overlayType = 'arrow'; + arrowDirection = -1; - primLabel = sourceLabel.find(label => label !== 'K162'); - } - } - - // class changes must be done on "connection" itself not on "overlayArrow" - // -> because Arrow might not be rendered to map at this point (if it does not exist already) - if(overlayType === 'arrow'){ - connection.updateClasses( - MapOverlayUtil.config.connectionArrowOverlaySuccessClass, - MapOverlayUtil.config.connectionArrowOverlayDangerClass - ); + primeLabel = targetLabel.find(label => label !== 'K162'); }else{ - connection.updateClasses( - MapOverlayUtil.config.connectionArrowOverlayDangerClass, - MapOverlayUtil.config.connectionArrowOverlaySuccessClass - ); - } + // default arrow direction is fine + overlayType = 'arrow'; - overlayArrow.updateFrom(getConnectionArrowOverlayParams(overlayType, arrowDirection)); - - // update/add endpoint overlays ------------------------------------------------------------------- - updateEndpointOverlaySignatureLabel(sourceEndpoint, signatureTypeData.source); - updateEndpointOverlaySignatureLabel(targetEndpoint, signatureTypeData.target); - - // fix/overwrite existing jump mass connection type ----------------------------------------------- - // if a connection type for "jump mass" (e.g. S, M, L, XL) is set for this connection - // we should check/compare it with the current primary signature label from signature mapping - // and change it if necessary - if(Init.wormholes.hasOwnProperty(primLabel)){ - // connection size from mapped signature - sizeLockedBySignature = true; - - let wormholeData = Object.assign({}, Init.wormholes[primLabel]); - // get 'connection mass type' from wormholeData - let massType = Util.getObjVal(wormholeData, 'size.type'); - - if(massType && !connection.hasType(massType)){ - MapOverlayUtil.getMapOverlay(connection.canvas, 'timer').startMapUpdateCounter(); - MapUtil.setConnectionJumpMassType(connection, wormholeData.size.type); - MapUtil.markAsChanged(connection); - } - } - }else{ - // connection is not 'wh' scope - if(connection.hasType(type)){ - connection.removeType(type); + primeLabel = sourceLabel.find(label => label !== 'K162'); } } - // lock/unlock connection for manual size changes (from contextmenu) - connection.setParameter('sizeLocked', sizeLockedBySignature); - }); + // class changes must be done on "connection" itself not on "overlayArrow" + // -> because Arrow might not be rendered to map at this point (if it does not exist already) + if(overlayType === 'arrow'){ + connection.updateClasses( + MapOverlayUtil.config.connectionArrowOverlaySuccessClass, + MapOverlayUtil.config.connectionArrowOverlayDangerClass + ); + }else{ + connection.updateClasses( + MapOverlayUtil.config.connectionArrowOverlayDangerClass, + MapOverlayUtil.config.connectionArrowOverlaySuccessClass + ); + } + + overlayArrow.updateFrom(getConnectionArrowOverlayParams(overlayType, arrowDirection)); + + // update/add endpoint overlays ------------------------------------------------------------------- + updateEndpointOverlaySignatureLabel(sourceEndpoint, signatureTypeData.source); + updateEndpointOverlaySignatureLabel(targetEndpoint, signatureTypeData.target); + + // fix/overwrite existing jump mass connection type ----------------------------------------------- + // if a connection type for "jump mass" (e.g. S, M, L, XL) is set for this connection + // we should check/compare it with the current primary signature label from signature mapping + // and change it if necessary + if(Init.wormholes.hasOwnProperty(primeLabel)){ + // connection size from mapped signature + sizeLockedBySignature = true; + + // get 'connection mass type' from wormholeData + let massType = Util.getObjVal(Object.assign({}, Init.wormholes[primeLabel]), 'size.type'); + + if(massType && !connection.hasType(massType)){ + MapOverlayUtil.getMapOverlay(connection.canvas, 'timer').startMapUpdateCounter(); + MapUtil.setConnectionJumpMassType(connection, massType); + MapUtil.markAsChanged(connection); + } + } + }else{ + // connection is not 'wh' scope + if(connection.hasType(type)){ + connection.removeType(type); + } + } + + // lock/unlock connection for manual size changes (from contextmenu) + connection.setParameter('sizeLocked', sizeLockedBySignature); }); + + map.setSuspendDrawing(false, true); }; /** @@ -291,21 +293,23 @@ define([ let map = MapUtil.getMapInstance(mapId); let type = 'info_signature'; - map.batch(() => { - map.getAllConnections().forEach(connection => { - let overlayArrow = connection.getOverlay(MapOverlayUtil.config.connectionOverlayArrowId); + map.setSuspendDrawing(true); - if(overlayArrow){ - overlayArrow.cleanup(); - } + map.getAllConnections().forEach(connection => { + let overlayArrow = connection.getOverlay(MapOverlayUtil.config.connectionOverlayArrowId); - if(connection.hasType(type)){ - connection.removeType(type, {}, true); - } - }); + if(overlayArrow){ + overlayArrow.cleanup(); + } - map.selectEndpoints().removeOverlay(MapOverlayUtil.config.endpointOverlayId); + if(connection.hasType(type)){ + connection.removeType(type, {}, true); + } }); + + map.selectEndpoints().removeOverlay(MapOverlayUtil.config.endpointOverlayId); + + map.setSuspendDrawing(false, true); }; /** @@ -321,7 +325,7 @@ define([ trigger: 'active', class: 'pf-map-overlay-filter', iconClass: ['fas', 'fa-fw', 'fa-filter'], - onClick: function(e){ + onClick: function(e){ // clear all filter let mapElement = MapOverlayUtil.getMapElementFromOverlay(this); let map = getMapObjectFromOverlayIcon(this); @@ -484,108 +488,96 @@ define([ * @param mapOverlayTimer * @param percent * @param value - * @returns {*} */ - let setMapUpdateCounter = (mapOverlayTimer, percent, value) => { + let setMapUpdateCounter = (mapOverlayTimer, percent, value = '') => { // check if counter already exists - let counterChart = MapOverlayUtil.getMapCounter(mapOverlayTimer); - - if(counterChart.length === 0){ + if(!MapOverlayUtil.getMapCounter(mapOverlayTimer)){ // create new counter + let chartEl = Object.assign(document.createElement('div'), { + className: `${Init.classes.pieChart.class} ${Init.classes.pieChart.pieChartMapCounterClass}` + }); - counterChart = $('
', { - class: [Init.classes.pieChart.class, Init.classes.pieChart.pieChartMapCounterClass].join(' ') - }).attr('data-percent', percent).append( - $('', { - text: value - }) - ); + let chartInnerEl = Object.assign(document.createElement('span'), { + textContent: value + }); + let iconEl = Object.assign(document.createElement('i'), { + className: ['fas', 'fa-fw', 'fa-lock'].join(' ') + }); - mapOverlayTimer.append(counterChart); + chartInnerEl.append(iconEl); + chartEl.append(chartInnerEl); + mapOverlayTimer.append(chartEl); // init counter - counterChart.initMapUpdateCounter(); + $(chartEl).initMapUpdateCounter(); // set tooltip - mapOverlayTimer.attr('data-placement', 'left'); - mapOverlayTimer.attr('title', 'update counter'); - mapOverlayTimer.tooltip(); + mapOverlayTimer.dataset.placement = 'left'; + mapOverlayTimer.setAttribute('title', 'update counter'); + $(mapOverlayTimer).tooltip(); } - - return counterChart; }; /** * start the map update counter or reset */ $.fn.startMapUpdateCounter = function(){ - let mapOverlayTimer = $(this); - let counterChart = MapOverlayUtil.getMapCounter(mapOverlayTimer); - - let maxSeconds = MapOverlayUtil.config.logTimerCount; - - let counterChartLabel = counterChart.find('span'); - - let percentPerCount = 100 / maxSeconds; - - // update counter - let updateChart = tempSeconds => { - let pieChart = counterChart.data('easyPieChart'); - - if(pieChart !== undefined){ - counterChart.data('easyPieChart').update( percentPerCount * tempSeconds); - } - counterChartLabel.text(tempSeconds); - }; - - // main timer function is called on any counter update - let timer = mapUpdateCounter => { - // decrease timer - let currentSeconds = counterChart.data('currentSeconds'); - currentSeconds--; - counterChart.data('currentSeconds', currentSeconds); - - if(currentSeconds >= 0){ - // update counter - updateChart(currentSeconds); - }else{ - // hide counter and reset - clearInterval(mapUpdateCounter); - - mapOverlayTimer.velocity('transition.whirlOut', { - duration: Init.animationSpeed.mapOverlay, - complete: function(){ - counterChart.data('interval', false); - MapOverlayUtil.getMapElementFromOverlay(mapOverlayTimer).trigger('pf:unlocked'); - } - }); - } - }; - - // get current seconds (in case the timer is already running) - let currentSeconds = counterChart.data('currentSeconds'); - - // start values for timer and chart - counterChart.data('currentSeconds', maxSeconds); - updateChart(maxSeconds); - - if( - currentSeconds === undefined || - currentSeconds < 0 - ){ - // start timer - let mapUpdateCounter = setInterval(() => { - timer(mapUpdateCounter); - }, 1000); - - // store counter interval - counterChart.data('interval', mapUpdateCounter); - - // show overlay - if(mapOverlayTimer.is(':hidden')){ - mapOverlayTimer.velocity('stop').velocity('transition.whirlIn', { duration: Init.animationSpeed.mapOverlay }); - } + if(!this.length){ + console.warn('startMapUpdateCounter() failed. Missing DOM node'); + return; } + let mapOverlayTimer = this[0]; + let counterChart = MapOverlayUtil.getMapCounter(mapOverlayTimer); + let pieChart = $(counterChart).data('easyPieChart'); + + if(!pieChart){ + console.warn('startMapUpdateCounter() failed. easyPieChart not initialized'); + return; + } + + let updateChart = (percent = 0) => { + if(pieChart){ + pieChart.update(percent); + } + }; + + let task = counterChart.getData('counterTask'); + if(!task){ + let tabContentEl = mapOverlayTimer.closest(`.${Util.config.mapTabContentClass}`); + let mapId = parseInt(tabContentEl.dataset.mapId) || 0; + task = Cron.new(`mapUpdateCounter_${mapId}`, { + precision: 'secondTenths', + isParallel: true, + targetRunCount: 10 * MapOverlayUtil.config.logTimerCount + }); + + task.task = (timer, task) => { + // debounce 80% (reduce repaint) + if(task.runCount % 5 === 0){ + let progress = Math.round(task.targetProgress); + updateChart(100 - progress); + } + + if(task.targetAchieved){ + $(mapOverlayTimer).velocity('transition.whirlOut', { + duration: Init.animationSpeed.mapOverlay, + complete: function(){ + MapOverlayUtil.getMapElementFromOverlay(mapOverlayTimer).trigger('pf:unlocked'); + } + }); + } + }; + + counterChart.setData('counterTask', task); + } + + // task is not connected if: 'targetAchieved' or not started + if(!task.isConnected()){ + $(mapOverlayTimer).velocity('stop').velocity('transition.whirlIn', { duration: Init.animationSpeed.mapOverlay }); + } + updateChart(100); + task.reset(); + task.start(); }; /** @@ -836,36 +828,35 @@ define([ }); // add all overlay elements - for(let prop in options){ - if(options.hasOwnProperty(prop)){ - let icon = $('', { - class: options[prop].iconClass.concat( ['pull-right', options[prop].class] ).join(' ') - }).attr('title', options[prop].title).tooltip({ - placement: 'bottom', - container: 'body', - delay: 150 - }); + Object.entries(options).forEach(([key, option]) => { + let icon = $('', { + class: option.iconClass.concat(['pull-right', option.class]).join(' ') + }).attr('title', option.title).tooltip({ + placement: 'bottom', + container: 'body', + delay: 150 + }); - // add "hover" action for some icons - if( - options[prop].trigger === 'hover' || - options[prop].trigger === 'refresh' - ){ - icon.hoverIntent(options[prop].hoverIntent); - } - - // add "click" handler for some icons - if(options[prop].hasOwnProperty('onClick')){ - icon.on('click', options[prop].onClick); - } - - mapOverlayInfo.append(icon); + // add "hover" action for some icons + if( + option.trigger === 'hover' || + option.trigger === 'refresh' + ){ + icon.hoverIntent(option.hoverIntent); } - } + + // add "click" handler for some icons + if(option.hasOwnProperty('onClick')){ + icon.on('click', option.onClick); + } + + mapOverlayInfo.append(icon); + }); + parentElement.append(mapOverlayInfo); // reset map update timer - setMapUpdateCounter(mapOverlayTimer, 100, MapOverlayUtil.config.logTimerCount); + setMapUpdateCounter(mapOverlayTimer[0], 100); }); }; diff --git a/public/js/v2.0.0/app/map/overlay/util.js b/public/js/v2.0.0/app/map/overlay/util.js index 379a5e02..10b5a9bc 100644 --- a/public/js/v2.0.0/app/map/overlay/util.js +++ b/public/js/v2.0.0/app/map/overlay/util.js @@ -84,22 +84,32 @@ define([ /** * get the map counter chart from overlay * @param element - * @returns {jQuery} + * @returns {Element} */ - let getMapCounter = element => $(element).find('.' + Init.classes.pieChart.pieChartMapCounterClass); + let getMapCounter = element => element.querySelector(`.${Init.classes.pieChart.pieChartMapCounterClass}`); /** - * get interval value from map timer overlay - * @param element - * @returns {*} + * if there is an "active" (connected) counter task + * -> lock overlay + * @param {HTMLElement} element + * @returns {boolean} */ - let getMapOverlayInterval = element => getMapCounter(getMapOverlay(element, 'timer')).data('interval'); + let isMapCounterOverlayActive = element => { + let mapOverlay = getMapOverlay(element, 'timer'); + if(mapOverlay){ + let mapCounter = getMapCounter(mapOverlay[0]); + if(mapCounter && mapCounter.getData('counterTask')){ + return mapCounter.getData('counterTask').isConnected(); + } + } + return false; + }; return { config: config, getMapOverlay: getMapOverlay, getMapElementFromOverlay: getMapElementFromOverlay, getMapCounter: getMapCounter, - getMapOverlayInterval: getMapOverlayInterval + isMapCounterOverlayActive: isMapCounterOverlayActive }; }); \ No newline at end of file diff --git a/public/js/v2.0.0/app/map/system.js b/public/js/v2.0.0/app/map/system.js index bc6daf9c..c5ab8fba 100644 --- a/public/js/v2.0.0/app/map/system.js +++ b/public/js/v2.0.0/app/map/system.js @@ -23,7 +23,6 @@ define([ systemHeadInfoLeftClass: 'pf-system-head-info-left', // class for left system info systemHeadInfoRightClass: 'pf-system-head-info-right', // class for right system info - systemActiveClass: 'pf-system-active', // class for an active system on a map systemTooltipInnerIdPrefix: 'pf-system-tooltip-inner-', // id prefix for system tooltip content systemTooltipInnerClass: 'pf-system-tooltip-inner', // class for system tooltip content @@ -231,24 +230,26 @@ define([ if(formValid === false) return false; // calculate new system position ---------------------------------------------------------- - let newPosition = { - x: 0, - y: 0 - }; + let newPosition; // add new position let sourceSystem = null; + let connectionData = null; if(options.sourceSystem !== undefined){ + // new position based on sourceSystem´s position sourceSystem = options.sourceSystem; + connectionData = options.connectionData || null; - // get new position newPosition = newSystemPositionBySystem(sourceSystem); }else if(options.position){ - // check mouse cursor position (add system to map) + // new position based on coordinated (e.g. mouse event) newPosition = { x: options.position.x, y: options.position.y }; + }else{ + // new position based on current map scroll offset + newPosition = MapUtil.newSystemPositionsByMapOffset(mapContainer)[0]; } formData.position = newPosition; @@ -262,7 +263,8 @@ define([ systemDialog: systemDialog, formElement: form, map: map, - sourceSystem: sourceSystem + sourceSystem: sourceSystem, + connectionData: connectionData }, context => { // always do context.systemDialog.find('.modal-content').hideLoadingAnimation(); @@ -270,7 +272,7 @@ define([ payload => { Util.showNotify({title: 'New system', text: payload.data.name, type: 'success'}); - callback(payload.context.map, payload.data, payload.context.sourceSystem); + callback(payload.context.map, payload.data, payload.context.sourceSystem, payload.context.connectionData); bootbox.hideAll(); }, Util.handleAjaxErrorResponse @@ -699,10 +701,12 @@ define([ for(let system of systems){ system = $(system); + let mapId = parseInt(system.data('mapid')) || 0; // check if system is "active" - if(system.hasClass(config.systemActiveClass)){ - delete Init.currentSystemData; + if(system.hasClass(MapUtil.config.systemActiveClass)){ + Util.deleteCurrentSystemData(mapId); + // get parent Tab Content and fire clear modules event let tabContentElement = MapUtil.getTabContentElementByMapElement(system); $(tabContentElement).trigger('pf:removeSystemModules'); @@ -712,7 +716,7 @@ define([ map.deleteConnectionsForElement(system, {fireEvent: false}); // unregister from "magnetizer" - Magnetizer.removeElement(system.data('mapid'), system[0]); + Magnetizer.removeElement(mapId, system[0]); // destroy tooltip/popover system.toggleSystemTooltip('destroy', {}); diff --git a/public/js/v2.0.0/app/map/util.js b/public/js/v2.0.0/app/map/util.js index 31f424eb..42040a04 100644 --- a/public/js/v2.0.0/app/map/util.js +++ b/public/js/v2.0.0/app/map/util.js @@ -186,25 +186,50 @@ define([ * @param mapData * @param value * @param key - * @returns {any} + * @returns {{}|boolean} */ let getSystemDataFromMapData = (mapData, value, key = 'id') => { - return mapData ? mapData.data.systems.find(system => system[key] === value) || false : false; + return (Util.getObjVal(mapData, `data.systems`) || []) + .find(systemData => systemData[key] === value) || false; }; /** - * get system data by mapId system data selector + * get system data by mapId + system data selector * -> e.g. value = 2 and key = 'id' * -> e.g. value = 30002187 and key = 'systemId' => looks for 'Amarr' CCP systemId * @param mapId * @param value * @param key - * @returns {any} + * @returns {{}|boolean} */ let getSystemData = (mapId, value, key = 'id') => { return getSystemDataFromMapData(Util.getCurrentMapData(mapId), value, key); }; + /** + * get connection data from mapData + * @see getConnectionData + * @param mapData + * @param value + * @param key + * @returns {{}|boolean} + */ + let getConnectionDataFromMapData = (mapData, value, key = 'id') => { + return (Util.getObjVal(mapData, `data.connections`) || []) + .find(connectionData => connectionData[key] === value) || false; + }; + + /** + * get connection data by mapId + connection data selector + * @param mapId + * @param value + * @param key + * @returns {{}|boolean} + */ + let getConnectionData = (mapId, value, key = 'id') => { + return getConnectionDataFromMapData(Util.getCurrentMapData(mapId), value, key); + }; + /** * get system type information * @param {number} systemTypeId @@ -212,14 +237,7 @@ define([ * @returns {string} */ let getSystemTypeInfo = (systemTypeId, option) => { - let systemTypeInfo = ''; - $.each(Init.systemType, function(prop, data){ - if(systemTypeId === data.id){ - systemTypeInfo = data[option]; - return; - } - }); - return systemTypeInfo; + return (Object.values(Init.systemType).find(data => data.id === systemTypeId) || {})[option] || ''; }; /** @@ -229,11 +247,7 @@ define([ * @returns {string} */ let getEffectInfoForSystem = (effect, option) => { - let effectInfo = ''; - if( Init.classes.systemEffects.hasOwnProperty(effect) ){ - effectInfo = Init.classes.systemEffects[effect][option]; - } - return effectInfo; + return Util.getObjVal(Init.classes.systemEffects, `${effect}.${option}`) || ''; }; /** @@ -478,13 +492,16 @@ define([ let getConnectionDataFromSignatures = (connection, connectionData) => { let signatureTypeData = { source: { + ids: [], names: [], labels: [] }, target: { + ids: [], names: [], labels: [] - } + }, + hash: false // unique hash key build from all relevant signature for connection }; if( @@ -501,41 +518,50 @@ define([ let sourceId = sourceSystem.data('id'); let targetId = targetSystem.data('id'); + // in case connection is currently "dragged" between systems, sourceId and/or targetId is undefined + if(!sourceId || !targetId){ + return signatureTypeData; + } + + let hash = []; // ... collect overlay/label data from signatures for(let signatureData of connectionData.signatures){ - // ... typeId is required to get a valid name - if(signatureData.typeId > 0){ + hash.push(Util.getObjVal(signatureData, 'updated.updated')); - // whether "source" or "target" system is relevant for current connection and current signature... - let tmpSystem = null; - let tmpSystemType = null; + // whether "source" or "target" system is relevant for current connection and current signature... + let tmpSystem = null; + let tmpSystemType = null; - if(signatureData.system.id === sourceId){ - // relates to "source" endpoint - tmpSystemType = 'source'; - tmpSystem = sourceSystem; - }else if(signatureData.system.id === targetId){ - // relates to "target" endpoint - tmpSystemType = 'target'; - tmpSystem = targetSystem; - } + if(signatureData.system.id === sourceId){ + // relates to "source" endpoint + tmpSystemType = 'source'; + tmpSystem = sourceSystem; + }else if(signatureData.system.id === targetId){ + // relates to "target" endpoint + tmpSystemType = 'target'; + tmpSystem = targetSystem; + } - // ... get endpoint label for source || target system - if(tmpSystem && tmpSystem){ - // ... get all available signature type (wormholes) names - let availableSigTypeNames = SystemSignatureModule.getSignatureTypeOptionsBySystem(tmpSystem, 5); - let flattenSigTypeNames = Util.flattenXEditableSelectArray(availableSigTypeNames); + signatureTypeData[tmpSystemType].ids.push(signatureData.id); + signatureTypeData[tmpSystemType].names.push(signatureData.name.toUpperCase()); - if(flattenSigTypeNames.hasOwnProperty(signatureData.typeId)){ - let label = flattenSigTypeNames[signatureData.typeId]; - // shorten label, just take the ingame name - label = label.substr(0, label.indexOf(' ')); - signatureTypeData[tmpSystemType].names.push(signatureData.name); - signatureTypeData[tmpSystemType].labels.push(label); - } + // ... typeId is required to get a valid labels + // ... get endpoint label for source || target system + if(signatureData.typeId > 0 && tmpSystem && tmpSystem){ + // ... get all available signature type (wormholes) names + let availableSigTypeNames = SystemSignatureModule.getSignatureTypeOptionsBySystem(tmpSystem, 5); + let flattenSigTypeNames = Util.flattenXEditableSelectArray(availableSigTypeNames); + + if(flattenSigTypeNames.hasOwnProperty(signatureData.typeId)){ + let label = flattenSigTypeNames[signatureData.typeId]; + // shorten label, just take the ingame name + label = label.substr(0, label.indexOf(' ')); + signatureTypeData[tmpSystemType].labels.push(label); } } } + // ... build unique hash + signatureTypeData.hash = hash.join().hashCode(); } return signatureTypeData; @@ -621,64 +647,66 @@ define([ */ let filterMapByScopes = (map, scopes) => { if(map){ - map.batch(() => { - let mapElement = $(map.getContainer()); - let allSystems = mapElement.getSystems(); - let allConnections = map.getAllConnections(); + map.setSuspendDrawing(true); - if(scopes && scopes.length){ - // filter connections ------------------------------------------------------------------------------------- - let visibleSystems = []; - let visibleConnections = searchConnectionsByScopeAndType(map, scopes); + let mapElement = $(map.getContainer()); + let allSystems = mapElement.getSystems(); + let allConnections = map.getAllConnections(); - for(let connection of allConnections){ - if(visibleConnections.indexOf(connection) >= 0){ - setConnectionVisible(connection, true); - // source/target system should always be visible -> even if filter scope not matches system type - if(visibleSystems.indexOf(connection.endpoints[0].element) < 0){ - visibleSystems.push(connection.endpoints[0].element); - } - if(visibleSystems.indexOf(connection.endpoints[1].element) < 0){ - visibleSystems.push(connection.endpoints[1].element); - } - }else{ - setConnectionVisible(connection, false); - } - } + if(scopes && scopes.length){ + // filter connections ------------------------------------------------------------------------------------- + let visibleSystems = []; + let visibleConnections = searchConnectionsByScopeAndType(map, scopes); - // filter systems ----------------------------------------------------------------------------------------- - let visibleTypeIds = []; - if(scopes.indexOf('wh') >= 0){ - visibleTypeIds.push(1); - } - if(scopes.indexOf('abyssal') >= 0){ - visibleTypeIds.push(4); - } - - for(let system of allSystems){ - if( - visibleTypeIds.indexOf($(system).data('typeId')) >= 0 || - visibleSystems.indexOf(system) >= 0 - ){ - setSystemVisible(system, map, true); - }else{ - setSystemVisible(system, map, false); - } - } - - MapOverlayUtil.getMapOverlay(mapElement, 'info').updateOverlayIcon('filter', 'show'); - }else{ - // clear filter - for(let system of allSystems){ - setSystemVisible(system, map, true); - } - for(let connection of allConnections){ + for(let connection of allConnections){ + if(visibleConnections.indexOf(connection) >= 0){ setConnectionVisible(connection, true); + // source/target system should always be visible -> even if filter scope not matches system type + if(visibleSystems.indexOf(connection.endpoints[0].element) < 0){ + visibleSystems.push(connection.endpoints[0].element); + } + if(visibleSystems.indexOf(connection.endpoints[1].element) < 0){ + visibleSystems.push(connection.endpoints[1].element); + } + }else{ + setConnectionVisible(connection, false); } - - MapOverlayUtil.getMapOverlay(mapElement, 'info').updateOverlayIcon('filter', 'hide'); } - }); + + // filter systems ----------------------------------------------------------------------------------------- + let visibleTypeIds = []; + if(scopes.indexOf('wh') >= 0){ + visibleTypeIds.push(1); + } + if(scopes.indexOf('abyssal') >= 0){ + visibleTypeIds.push(4); + } + + for(let system of allSystems){ + if( + visibleTypeIds.indexOf($(system).data('typeId')) >= 0 || + visibleSystems.indexOf(system) >= 0 + ){ + setSystemVisible(system, map, true); + }else{ + setSystemVisible(system, map, false); + } + } + + MapOverlayUtil.getMapOverlay(mapElement, 'info').updateOverlayIcon('filter', 'show'); + }else{ + // clear filter + for(let system of allSystems){ + setSystemVisible(system, map, true); + } + for(let connection of allConnections){ + setConnectionVisible(connection, true); + } + + MapOverlayUtil.getMapOverlay(mapElement, 'info').updateOverlayIcon('filter', 'hide'); + } + + map.setSuspendDrawing(false, true); } }; @@ -792,17 +820,19 @@ define([ */ let setSystemActive = (map, system) => { // deselect all selected systems on map - let mapContainer = $( map.getContainer() ); - mapContainer.find('.' + config.systemClass).removeClass(config.systemActiveClass); + let mapContainer = map.getContainer(); + [...mapContainer.getElementsByClassName(config.systemClass)] + .forEach(systemEl => + systemEl.classList.remove(config.systemActiveClass) + ); // set current system active system.addClass(config.systemActiveClass); - // collect all required data from map module to update the info element - // store them global and assessable for each module + // collect all required systemData from map module -> cache let systemData = system.getSystemData(); systemData.mapId = parseInt(system.attr('data-mapid')) || 0; - Util.setCurrentSystemData(systemData); + Util.setCurrentSystemData(systemData.mapId, systemData); }; /** @@ -913,20 +943,22 @@ define([ * @param connections */ let setConnectionsActive = (map, connections) => { - map.batch(() => { - // set all inactive - for(let connection of getConnectionsByType(map, 'state_active')){ - if(!connections.includes(connection)){ - removeConnectionType(connection, 'state_active'); - } - } + map.setSuspendDrawing(true); - for(let connection of connections){ - if(!connection.hasType('state_active')){ - addConnectionType(connection, 'state_active'); - } + // set all inactive + for(let connection of getConnectionsByType(map, 'state_active')){ + if(!connections.includes(connection)){ + removeConnectionType(connection, 'state_active'); } - }); + } + + for(let connection of connections){ + if(!connection.hasType('state_active')){ + addConnectionType(connection, 'state_active'); + } + } + + map.setSuspendDrawing(false, true); }; /** @@ -969,21 +1001,38 @@ define([ let toggleConnectionActive = (map, connections) => { let selectedConnections = []; let deselectedConnections = []; - map.batch(() => { - for(let connection of connections){ - if(connection.hasType('state_active')){ - removeConnectionType(connection, 'state_active'); - deselectedConnections.push(connection); - }else{ - addConnectionType(connection, 'state_active'); - selectedConnections.push(connection); - } + + map.setSuspendDrawing(true); + + for(let connection of connections){ + if(connection.hasType('state_active')){ + removeConnectionType(connection, 'state_active'); + deselectedConnections.push(connection); + }else{ + addConnectionType(connection, 'state_active'); + selectedConnections.push(connection); } - }); + } + + map.setSuspendDrawing(false, true); updateConnectionInfo(map, selectedConnections, deselectedConnections); }; + /** + * show global map info panels + * @param map + */ + let showMapInfo = map => { + // get parent Tab Content and fire update event + let mapContainer = $(map.getContainer()); + + getTabContentElementByMapElement(mapContainer).trigger('pf:renderGlobalModules', { + mapId: parseInt(mapContainer.data('id')), + payload: null + }); + }; + /** * show system info panels * @param map @@ -994,10 +1043,11 @@ define([ // get parent Tab Content and fire update event let mapContainer = $(map.getContainer()); + let mapId = parseInt(mapContainer.data('id')) || 0; getTabContentElementByMapElement(mapContainer).trigger('pf:renderSystemModules', { - mapId: parseInt(mapContainer.data('id')), - payload: Util.getCurrentSystemData() + mapId: mapId, + payload: Util.getCurrentSystemData(mapId) }); }; @@ -1238,10 +1288,12 @@ define([ let setUniqueConnectionType = (connection, type, types) => { type = types.includes(type) ? [type] : []; - connection._jsPlumb.instance.batch(() => { - removeConnectionTypes(connection, types.diff(type)); - addConnectionTypes(connection, type); - }); + connection._jsPlumb.instance.setSuspendDrawing(true); + + removeConnectionTypes(connection, types.diff(type)); + addConnectionTypes(connection, type); + + connection._jsPlumb.instance.setSuspendDrawing(false, true); }; /** @@ -2074,6 +2126,40 @@ define([ return findNonOverlappingDimensions(options, maxResults, findChain); }; + /** + * calculate the x/y coordinates for a new system - relative to current map scroll offset + * @param mapContainer + * @param maxResults + * @returns {[{x: number, y: number}]} + */ + let newSystemPositionsByMapOffset = (mapContainer, maxResults = 1) => { + let scrollPosition = { + x: Math.abs(parseInt(mapContainer.attr('data-scroll-left')) || 0), + y: Math.abs(parseInt(mapContainer.attr('data-scroll-top')) || 0) + }; + + // space new positions from map top (e.g. used for tooltips) + scrollPosition.y = Math.max(scrollPosition.y, 30); + + // default position -> current map section top/left + let positions = [scrollPosition]; + + // check default position for overlapping + let dimensions = newSystemPositionByCoordinates(mapContainer, { + center: [scrollPosition.x, scrollPosition.y], + minX: scrollPosition.x, + minY: scrollPosition.y + }, maxResults, true); + + if(dimensions.length){ + positions = dimensions.map(dim => ({ + x: parseInt(dim.left) || 0, + y: parseInt(dim.top) || 0 + })); + } + return positions; + }; + /** * * @param mapContainer @@ -2083,30 +2169,8 @@ define([ if(mapContainer){ let mapId = mapContainer.data('id'); - let scrollPosition = { - x: Math.abs(parseInt(mapContainer.attr('data-scroll-left')) || 0), - y: Math.abs(parseInt(mapContainer.attr('data-scroll-top')) || 0) - }; - // space new positions from map top (e.g. used for tooltips) - scrollPosition.y = Math.max(scrollPosition.y, 30); - - // default position -> current map section top/left ------------------------------------------------------- - positions.defaults = [scrollPosition]; - - // check default position for overlapping ----------------------------------------------------------------- - let dimensions = newSystemPositionByCoordinates(mapContainer, { - center: [scrollPosition.x, scrollPosition.y], - minX: scrollPosition.x, - minY: scrollPosition.y - }, 2, true); - - if(dimensions.length){ - positions.defaults = dimensions.map(dim => ({ - x: parseInt(dim.left) || 0, - y: parseInt(dim.top) || 0 - })); - } + positions.defaults = newSystemPositionsByMapOffset(mapContainer, 2); // -> calc possible coordinates for new system that should be used based on current user location --------- let currentLocationData = Util.getCurrentLocationData(); @@ -2162,6 +2226,8 @@ define([ getInfoForSystem: getInfoForSystem, getSystemDataFromMapData: getSystemDataFromMapData, getSystemData: getSystemData, + getConnectionDataFromMapData: getConnectionDataFromMapData, + getConnectionData: getConnectionData, getSystemTypeInfo: getSystemTypeInfo, getEffectInfoForSystem: getEffectInfoForSystem, markAsChanged: markAsChanged, @@ -2172,6 +2238,7 @@ define([ toggleConnectionType: toggleConnectionType, toggleConnectionActive: toggleConnectionActive, setSystemActive: setSystemActive, + showMapInfo: showMapInfo, showSystemInfo: showSystemInfo, showConnectionInfo: showConnectionInfo, showFindRouteDialog: showFindRouteDialog, @@ -2180,6 +2247,7 @@ define([ getConnectionsByType: getConnectionsByType, getEndpointsDataByConnection: getEndpointsDataByConnection, getDataByConnection: getDataByConnection, + getDataByConnections: getDataByConnections, searchConnectionsBySystems: searchConnectionsBySystems, searchConnectionsByScopeAndType: searchConnectionsByScopeAndType, getConnectionInfo: getConnectionInfo, @@ -2191,7 +2259,6 @@ define([ setConnectionMassStatusType: setConnectionMassStatusType, setConnectionJumpMassType: setConnectionJumpMassType, getScopeInfoForConnection: getScopeInfoForConnection, - getDataByConnections: getDataByConnections, deleteConnections: deleteConnections, getConnectionDataFromSignatures: getConnectionDataFromSignatures, getEndpointOverlaySignatureLocation: getEndpointOverlaySignatureLocation, @@ -2212,6 +2279,7 @@ define([ checkRight: checkRight, newSystemPositionBySystem: newSystemPositionBySystem, newSystemPositionByCoordinates: newSystemPositionByCoordinates, + newSystemPositionsByMapOffset: newSystemPositionsByMapOffset, newSystemPositionsByMap: newSystemPositionsByMap, getMapDeeplinkUrl: getMapDeeplinkUrl }; diff --git a/public/js/v2.0.0/app/mappage.js b/public/js/v2.0.0/app/mappage.js index f0cf008f..c11a760e 100644 --- a/public/js/v2.0.0/app/mappage.js +++ b/public/js/v2.0.0/app/mappage.js @@ -308,15 +308,14 @@ define([ /** - * clear both main update timeouts + * clear both main update timeouts, and reset values * -> stop program from working -> shutdown */ let clearUpdateTimeouts = () => { - for(let intervalKey in updateTimeouts){ - if(updateTimeouts.hasOwnProperty(intervalKey)){ - clearTimeout(updateTimeouts[intervalKey]); - } - } + Object.keys(updateTimeouts).forEach(intervalKey => { + clearTimeout(updateTimeouts[intervalKey]); + updateTimeouts[intervalKey] = 0; + }); }; @@ -417,20 +416,20 @@ define([ // IMPORTANT: Get user data for ONE map that is currently visible // On later releases this can be easy changed to "full update" all maps for a user - let mapIds = []; + let mapId; let newSystemPositions = null; let activeMap = Util.getMapModule().getActiveMap(); if(activeMap){ - mapIds = [activeMap.data('id')]; + mapId = activeMap.data('id'); newSystemPositions = MapUtil.newSystemPositionsByMap(activeMap); } let updatedUserData = { - mapIds: mapIds, + mapIds: mapId ? [mapId] : [], getMapUserData: Util.getSyncType() === 'webSocket' ? 0 : 1, mapTracking: locationToggle.is(':checked') ? 1 : 0, // location tracking - systemData: Util.getCurrentSystemData() + systemData: Util.getCurrentSystemData(mapId) }; if(newSystemPositions){ diff --git a/public/js/v2.0.0/app/module_map.js b/public/js/v2.0.0/app/module_map.js index dab760b1..092575bd 100644 --- a/public/js/v2.0.0/app/module_map.js +++ b/public/js/v2.0.0/app/module_map.js @@ -13,6 +13,7 @@ define([ 'module/system_route', 'module/system_intel', 'module/system_killboard', + 'module/global_thera', 'module/connection_info', 'app/counter' ], ( @@ -30,6 +31,7 @@ define([ SystemRouteModule, SystemIntelModule, SystemKillboardModule, + TheraModule, ConnectionInfoModule ) => { 'use strict'; @@ -56,6 +58,7 @@ define([ // editable 'settings' popover editableSettingsClass: 'pf-editable-settings', + editableHeadlineClass: 'pf-editable-headline', editableToggleClass: 'pf-editable-toggle', editableToggleItemClass: 'pf-editable-toggle-item', @@ -65,13 +68,6 @@ define([ let mapTabChangeBlocked = false; // flag for preventing map tab switch - /** - * get all maps for a maps module - * @param mapModule - * @returns {jQuery} - */ - let getMaps = mapModule => $(mapModule).find('.' + Util.config.mapClass); - /** * get the current active mapElement * @returns {bool|jQuery} @@ -90,6 +86,12 @@ define([ * @param tabContentWrapperEl */ let setMapTabContentWrapperObserver = tabContentWrapperEl => { + $(tabContentWrapperEl).on('pf:renderGlobalModules', `.${Util.config.mapTabContentClass}`, function(e, data){ + getModules() + .then(modules => filterModules(modules, 'global')) + .then(modules => renderModules(modules, e.target, data)); + }); + $(tabContentWrapperEl).on('pf:renderSystemModules', `.${Util.config.mapTabContentClass}`, function(e, data){ getModules() .then(modules => filterModules(modules, 'system')) @@ -114,6 +116,12 @@ define([ .then(modules => removeModules(modules, e.target)); }); + $(tabContentWrapperEl).on('pf:updateGlobalModules', `.${Util.config.mapTabContentClass}`, (e, data) => { + getModules() + .then(modules => filterModules(modules, 'global')) + .then(modules => updateModules(modules, e.target, data)); + }); + $(tabContentWrapperEl).on('pf:updateSystemModules', `.${Util.config.mapTabContentClass}`, (e, data) => { getModules() .then(modules => filterModules(modules, true, 'fullDataUpdate')) @@ -141,6 +149,7 @@ define([ SystemRouteModule, SystemIntelModule, SystemKillboardModule, + TheraModule, ConnectionInfoModule ]; @@ -361,7 +370,7 @@ define([ }); }; - removeModule(Module, gridArea, true).then(abc => render(Module, gridArea, defaultPosition, mapId, payload)); + removeModule(Module, gridArea, false).then(abc => render(Module, gridArea, defaultPosition, mapId, payload)); }; return new Promise(renderModuleExecutor); @@ -533,7 +542,7 @@ define([ let updateSystemModulesData = (mapModule, systemData) => { if(systemData){ // check if current open system is still the requested info system - let currentSystemData = Util.getCurrentSystemData(); + let currentSystemData = Util.getCurrentSystemData(systemData.mapId); if( currentSystemData && @@ -556,6 +565,7 @@ define([ let setTabContentObserver = (tabContent, mapId) => { let defaultSortableOptions = { + invertSwap: true, animation: Init.animationSpeed.mapModule, handle: '.' + config.sortableHandleClass, draggable: '.' + config.moduleClass, @@ -926,10 +936,11 @@ define([ let mapId = parseInt(linkEl.dataset.mapId) || 0; let defaultSystemId = parseInt(linkEl.dataset.defaultSystemId) || 0; let tabMapData = Util.getCurrentMapData(mapId); + let tabContentEl = document.getElementById(config.mapTabIdPrefix + mapId); - if(tabMapData !== false){ + // tabContentEl does not exist in case of error where all map elements got removed + if(tabMapData !== false && tabContentEl){ // load map - let tabContentEl = document.getElementById(config.mapTabIdPrefix + mapId); let areaMap = tabContentEl.querySelector(`.${Util.getMapTabContentAreaClass('map')}`); Map.loadMap(areaMap, tabMapData, {showAnimation: true}).then(payload => { // "wake up" scrollbar for map and get previous state back @@ -938,6 +949,11 @@ define([ let areaMap = mapElement.closest('.mCustomScrollbar'); $(areaMap).mCustomScrollbar('update'); + // show "global" map panels of map was initial loaded + if(payload.isFirstLoad){ + MapUtil.showMapInfo(mapConfig.map); + } + // if there is an already an "active" system -> setCurrentSystemData for that again let activeSystemEl = mapElement.querySelector(`.${MapUtil.config.systemActiveClass}`); if(activeSystemEl){ @@ -973,9 +989,6 @@ define([ // skip "add button" if(newMapId > 0){ - // delete currentSystemData -> will be set for new map (if there is is an active system) - delete Init.currentSystemData; - let currentTabContentEl = document.getElementById(config.mapTabIdPrefix + oldMapId); // disable scrollbar for map that will be hidden. "freeze" current state @@ -991,90 +1004,81 @@ define([ * @param options * @returns {Promise} */ - let updateTabData = (tabLinkEl, options) => { + let updateTabData = (tabLinkEl, options) => new Promise(resolve => { + // set "main" data + tabLinkEl.dataset.mapId = options.id; - /** - * update tab promise - * @param resolve - */ - let updateTabExecutor = resolve => { - // set "main" data - tabLinkEl.dataset.mapId = options.id; + // add updated timestamp (not available for "add" tab + if(Util.getObjVal(options, 'updated.updated')){ + tabLinkEl.dataset.updated = options.updated.updated; + } - // add updated timestamp (not available for "add" tab - if(Util.getObjVal(options, 'updated.updated')){ - tabLinkEl.dataset.updated = options.updated.updated; + // change "tab" link + tabLinkEl.setAttribute('href', `#${config.mapTabIdPrefix}${options.id}`); + + // change "map" icon + let mapIconEl = tabLinkEl.querySelector(`.${config.mapTabIconClass}`); + mapIconEl.classList.remove(...mapIconEl.classList); + mapIconEl.classList.add(config.mapTabIconClass, 'fas', 'fa-fw', options.icon); + + // change "shared" icon + let mapSharedIconEl = tabLinkEl.querySelector(`.${config.mapTabSharedIconClass}`); + mapSharedIconEl.style.display = 'none'; + + // check if the map is a "shared" map + if(options.access){ + if( + options.access.character.length > 1 || + options.access.corporation.length > 1 || + options.access.alliance.length > 1 + ){ + mapSharedIconEl.style.display = 'initial'; } + } - // change "tab" link - tabLinkEl.setAttribute('href', `#${config.mapTabIdPrefix}${options.id}`); + // change map name label + let textEl = tabLinkEl.querySelector(`.${config.mapTabLinkTextClass}`); + textEl.textContent = options.name; - // change "map" icon - let mapIconEl = tabLinkEl.querySelector(`.${config.mapTabIconClass}`); - mapIconEl.classList.remove(...mapIconEl.classList); - mapIconEl.classList.add(config.mapTabIconClass, 'fas', 'fa-fw', options.icon); + // change tabClass + let listEl = tabLinkEl.parentNode; - // change "shared" icon - let mapSharedIconEl = tabLinkEl.querySelector(`.${config.mapTabSharedIconClass}`); - mapSharedIconEl.style.display = 'none'; + // new tab classes + let tabClasses = [config.mapTabClass, options.type.classTab]; - // check if the map is a "shared" map - if(options.access){ - if( - options.access.character.length > 1 || - options.access.corporation.length > 1 || - options.access.alliance.length > 1 - ){ - mapSharedIconEl.style.display = 'initial'; - } - } + if(options.draggable === false){ + tabClasses.push('noSort'); + } - // change map name label - let textEl = tabLinkEl.querySelector(`.${config.mapTabLinkTextClass}`); - textEl.textContent = options.name; + // check if tab was "active" before + if(listEl.classList.contains('active')){ + tabClasses.push('active'); + } + listEl.classList.remove(...listEl.classList); + listEl.classList.add(...tabClasses); - // change tabClass - let listEl = tabLinkEl.parentNode; + // set title for tooltip + if(options.type.name !== undefined){ + textEl.setAttribute('title', `${options.type.name} map`); + } - // new tab classes - let tabClasses = [config.mapTabClass, options.type.classTab]; - - if(options.draggable === false){ - tabClasses.push('noSort'); - } - - // check if tab was "active" before - if(listEl.classList.contains('active')){ - tabClasses.push('active'); - } - listEl.classList.remove(...listEl.classList); - listEl.classList.add(...tabClasses); - - // set title for tooltip - if(options.type.name !== undefined){ - textEl.setAttribute('title', `${options.type.name} map`); - } - - let mapTooltipOptions = { - placement: 'bottom', - container: 'body', - trigger: 'hover', - delay: 150 - }; - - $(listEl.querySelector('[title]')).tooltip(mapTooltipOptions).tooltip('fixTitle'); - - resolve({ - action: 'update', - data: { - mapId: options.id, - mapName: options.name - } - }); + let mapTooltipOptions = { + placement: 'bottom', + container: 'body', + trigger: 'hover', + delay: 150 }; - return new Promise(updateTabExecutor); - }; + $(listEl.querySelector('[title]')).tooltip(mapTooltipOptions).tooltip('fixTitle'); + + resolve({ + action: 'update', + data: { + mapId: options.id, + mapName: options.name + } + }); + }); /** * add a new tab to tab-map-module end return promise @@ -1545,10 +1549,14 @@ define([ setMapTabLayout(tabEl, layoutCurrent); // prepare select options for modules - let sourceOptions = modules.sort((a, b) => a.isPlugin - b.isPlugin).map(Module => ({ + let modulePrioCounts = Array(BaseModule.scopeOrder.length).fill(0); + let sourceOptions = modules.sort((a, b) => a.getOrderPrio() - b.getOrderPrio()).map(Module => ({ value: Module.name, - text: `(${Module.scope.substring(0, 3)}) ${Module.label}`, + text: Module.label, metaData: { + scope: Module.scope, + orderPrio: Module.getOrderPrio(), + prioCount: ++modulePrioCounts[Module.getOrderPrio()], isPlugin: Module.isPlugin } })); @@ -1628,6 +1636,19 @@ define([ } } }, {passive: false}); + + // add "headlines" to Modules checklist ------------------------------------------------------- + anchorEl.childNodes.forEach((gridItem, i) => { + if(sourceOptions[i].metaData.prioCount === 1){ + gridItem.classList.add(config.editableHeadlineClass); + gridItem.setAttribute('data-count', + modulePrioCounts[sourceOptions[i].metaData.orderPrio] + ); + gridItem.setAttribute('data-headline', + BaseModule.scopeOrder[sourceOptions[i].metaData.orderPrio] + ); + } + }); }); settingsLinkEl.on('save', {sourceOptions: sourceOptions}, (e, params) => { @@ -1644,15 +1665,23 @@ define([ let showModules = filterModules(modules, params.newValue.diff(oldValue), 'name'); removeModules(hideModules, tabContentEl).then(payload => { + let showGlobalModules = showModules.filter(Module => Module.scope === 'global'); let showSystemModules = showModules.filter(Module => Module.scope === 'system'); let showConnectionModules = showModules.filter(Module => Module.scope === 'connection'); + if(showGlobalModules.length){ + renderModules(showGlobalModules, tabContentEl, { + mapId: activeMapId, + payload: null + }); + } + if( showSystemModules.length && - Util.getCurrentSystemData() + Util.getCurrentSystemData(activeMapId) ){ renderModules(showSystemModules, tabContentEl, { mapId: activeMapId, - payload: Util.getCurrentSystemData() + payload: Util.getCurrentSystemData(activeMapId) }); } @@ -1706,28 +1735,24 @@ define([ /** * collect all data (systems/connections) for export/save from each active map in the map module * if no change detected -> do not attach map data to return array - * @param mapModule + * @param {HTMLElement} mapModule * @param filter - * @returns {Array} + * @returns {[]} */ let getMapModuleDataForUpdate = (mapModule, filter = ['hasId', 'hasChanged']) => { - // get all active map elements for module - let mapElements = getMaps(mapModule); - let data = []; - for(let i = 0; i < mapElements.length; i++){ + [...mapModule.getElementsByClassName(Util.config.mapClass)].forEach(mapElement => { // get all changed (system / connection) data from this map - let mapData = Map.getMapDataForSync($(mapElements[i]), filter); - if(mapData !== false){ - if( - mapData.data.systems.length > 0 || - mapData.data.connections.length > 0 - ){ - data.push(mapData); - } + let mapData = Map.getMapDataForSync(mapElement, filter); + if( + mapData && ( + (Util.getObjVal(mapData, 'data.systems') || []).length || + (Util.getObjVal(mapData, 'data.connections') || []).length + ) + ){ + data.push(mapData); } - } - + }); return data; }; diff --git a/public/js/v2.0.0/app/page.js b/public/js/v2.0.0/app/page.js index ffcc7b8c..fad16239 100644 --- a/public/js/v2.0.0/app/page.js +++ b/public/js/v2.0.0/app/page.js @@ -1293,47 +1293,35 @@ define([ let mapUserUpdateKey = 'UPDATE_SERVER_USER_DATA'; // Set the name of the hidden property and the change event for visibility - let hidden, visibilityChange; - if(typeof document.hidden !== 'undefined'){ // Opera 12.10 and Firefox 18 and later support - hidden = 'hidden'; + let visibilityState, visibilityChange; + if(typeof document.visibilityState !== 'undefined'){ // Opera 12.10 and Firefox 18 and later support + visibilityState = 'visibilityState'; visibilityChange = 'visibilitychange'; - }else if(typeof document.mozHidden !== 'undefined'){ - hidden = 'mozHidden'; - visibilityChange = 'mozvisibilitychange'; - }else if(typeof document.msHidden !== 'undefined'){ - hidden = 'msHidden'; - visibilityChange = 'msvisibilitychange'; - }else if(typeof document.webkitHidden !== 'undefined'){ - hidden = 'webkitHidden'; - visibilityChange = 'webkitvisibilitychange'; } // function is called if the tab becomes active/inactive let handleVisibilityChange = () => { - if(document[hidden]){ - // tab is invisible - // globally store current visibility status - window.isVisible = false; - - Util.getCurrentTriggerDelay( mapUpdateKey, increaseTimer ); - Util.getCurrentTriggerDelay( mapUserUpdateKey, increaseTimer ); - }else{ + if(document[visibilityState] === 'visible'){ // tab is visible // globally store current visibility status window.isVisible = true; - Util.getCurrentTriggerDelay( mapUpdateKey, -increaseTimer ); - Util.getCurrentTriggerDelay( mapUserUpdateKey, -increaseTimer ); + Util.getCurrentTriggerDelay(mapUpdateKey, -increaseTimer); + Util.getCurrentTriggerDelay(mapUserUpdateKey, -increaseTimer); // stop blinking tab from previous notifications Util.stopTabBlink(); + }else{ + // tab is invisible + // globally store current visibility status + window.isVisible = false; + + Util.getCurrentTriggerDelay(mapUpdateKey, increaseTimer); + Util.getCurrentTriggerDelay(mapUserUpdateKey, increaseTimer); } }; - if( - typeof document.addEventListener !== 'undefined' && - typeof document[hidden] !== 'undefined' - ){ + if(visibilityState && visibilityChange){ // the current browser supports this feature // Handle page visibility change diff --git a/public/js/v2.0.0/app/pnotify.loader.js b/public/js/v2.0.0/app/pnotify.loader.js index 6c69050e..d6d13e23 100644 --- a/public/js/v2.0.0/app/pnotify.loader.js +++ b/public/js/v2.0.0/app/pnotify.loader.js @@ -1,7 +1,8 @@ define([ 'PNotify', - 'PNotifyDesktop', + 'PNotifyButtons', 'PNotifyCallbacks', + 'PNotifyDesktop', 'NonBlock' ], (PNotify) => { 'use strict'; @@ -30,6 +31,9 @@ define([ } }; + /** + * default PNotify config + */ let initDefaultPNotifyConfig = () => { PNotify.defaults.styling = 'bootstrap3'; PNotify.defaults.icons = 'fontawesome5'; @@ -54,7 +58,6 @@ define([ config.modules = { Desktop: Object.assign({}, {desktop: true}, options.desktop) }; - startTabBlink(config.title); // make browser tab blink } switch(config.type){ @@ -99,60 +102,7 @@ define([ initDefaultPNotifyConfig(); - // browser tab blink ============================================================================================== - // initial page title (cached) - let initialPageTitle = document.title; - - // global blink timeout cache - let blinkTimer; - - /** - * change document.title and make the browsers tab blink - * @param blinkTitle - */ - let startTabBlink = blinkTitle => { - let initBlink = (function(){ - // count blinks if tab is currently active - let activeTabBlinkCount = 0; - - let blink = (blinkTitle) => { - // number of "blinks" should be limited if tab is currently active - if(window.isVisible){ - activeTabBlinkCount++; - } - - // toggle page title - document.title = (document.title === blinkTitle) ? initialPageTitle : blinkTitle; - - if(activeTabBlinkCount > 10){ - stopTabBlink(); - } - }; - - return () => { - if(!blinkTimer){ - blinkTimer = setInterval(blink, 1000, blinkTitle); - } - }; - }(blinkTitle)); - - initBlink(); - }; - - /** - * stop blinking document.title - */ - let stopTabBlink = () => { - if(blinkTimer){ - clearInterval(blinkTimer); - document.title = initialPageTitle; - blinkTimer = null; - } - }; - return { - showNotify: showNotify, - startTabBlink: startTabBlink, - stopTabBlink: stopTabBlink + showNotify: showNotify }; }); \ No newline at end of file diff --git a/public/js/v2.0.0/app/ui/dialog/map_info.js b/public/js/v2.0.0/app/ui/dialog/map_info.js index b0f817f9..c5b23c16 100644 --- a/public/js/v2.0.0/app/ui/dialog/map_info.js +++ b/public/js/v2.0.0/app/ui/dialog/map_info.js @@ -212,7 +212,7 @@ define([ let systemsElement = $(this); let systemTable = $('', { - id: Util.getTableId(config.tableId, 'systems', mapData.config.id, ''), + id: Util.getTableId(config.tableId, 'systems', mapData.config.id), class: ['compact', 'stripe', 'order-column', 'row-border'].join(' ') }); systemsElement.append(systemTable); @@ -469,7 +469,7 @@ define([ let confirmationSettings = { placement: 'left', - title: 'Delete system', + title: '---', template: Util.getConfirmationTemplate(null, { size: 'small', noTitle: true @@ -535,7 +535,7 @@ define([ let connectionsElement = $(this); let connectionTable = $('
', { - id: Util.getTableId(config.tableId, 'connections', mapData.config.id, ''), + id: Util.getTableId(config.tableId, 'connections', mapData.config.id), class: ['compact', 'stripe', 'order-column', 'row-border'].join(' ') }); connectionsElement.append(connectionTable); @@ -678,7 +678,7 @@ define([ let confirmationSettings = { placement: 'left', - title: 'Delete connection', + title: '---', template: Util.getConfirmationTemplate(null, { size: 'small', noTitle: true @@ -686,9 +686,7 @@ define([ onConfirm: function(e, target){ let deleteRowElement = $(target).parents('tr'); - // deleteSignatures(row); let connection = $().getConnectionById(mapData.config.id, rowData.id); - MapUtil.deleteConnections([connection], () => { // callback function after ajax "delete" success // remove table row diff --git a/public/js/v2.0.0/app/ui/form_element.js b/public/js/v2.0.0/app/ui/form_element.js index 9817cc7d..adb2a253 100644 --- a/public/js/v2.0.0/app/ui/form_element.js +++ b/public/js/v2.0.0/app/ui/form_element.js @@ -90,8 +90,7 @@ define([ let name = parts[0]; let sizeLabel; if(Util.getObjVal(customOptions, 'showWhSizeLabel')){ - let wormholeSizeData = Util.getObjVal(Init, 'wormholes.' + name + '.size'); - sizeLabel = Util.getObjVal(wormholeSizeData, 'label') || ''; + sizeLabel = Util.getObjVal(Init, `wormholes.${name}.size.label`) || ''; } let securityClass = Util.getSecurityClassForSystem(getSystemSecurityFromLabel(parts[1])); @@ -102,19 +101,17 @@ define([ let classes = [securityClass, Util.config.popoverTriggerClass, Util.config.helpDefaultClass]; - markup += '' + name + ''; + markup += `${name}`; if(sizeLabel !== undefined){ - markup += '' + sizeLabel + ''; - }else{ - markup += '  '; + markup += `${sizeLabel}`; } markup += ''; - markup += '  ' + label + ''; + markup += `  ${label}`; if(suffix.length){ - markup += ' ' + suffix + ''; + markup += ` ${suffix}`; } }else{ - markup += '' + state.text + ''; + markup += `${state.text}`; } return $(markup); @@ -203,10 +200,10 @@ define([ } let securityClass = Util.getSecurityClassForSystem(parts[1]); - markup += '' + parts[0] + '  '; - markup += '' + parts[1] + ''; + markup += `${parts[0]}`; + markup += `  ${parts[1]}`; }else{ - markup += '' + state.text + ''; + markup += `${state.text}`; } return $(markup); diff --git a/public/js/v2.0.0/app/ui/module/base.js b/public/js/v2.0.0/app/ui/module/base.js index 846fc7dd..edfa3447 100644 --- a/public/js/v2.0.0/app/ui/module/base.js +++ b/public/js/v2.0.0/app/ui/module/base.js @@ -2,9 +2,11 @@ define([ 'jquery', 'app/init', 'app/util', + 'app/map/util', + 'app/lib/cache', 'app/promises/promise.deferred', 'app/promises/promise.queue' -], ($, Init, Util, DeferredPromise, PromiseQueue) => { +], ($, Init, Util, MapUtil, Cache, DeferredPromise, PromiseQueue) => { 'use strict'; /** @@ -127,6 +129,34 @@ define([ }); } + /** + * label element + * @param text + * @param cls + * @returns {HTMLSpanElement} + */ + newLabelElement(text, cls = []){ + let labelEl = document.createElement('span'); + labelEl.classList.add('label', 'center-block', ...cls); + labelEl.textContent = text || ''; + return labelEl; + } + + /** + * control button element + * @param text + * @param cls + * @param iconCls + * @returns {HTMLDivElement} + */ + newControlElement(text, cls = [], iconCls = ['fa-sync']){ + let controlEl = document.createElement('div'); + controlEl.classList.add(...[BaseModule.Util.config.dynamicAreaClass, this._config.controlAreaClass, ...cls]); + controlEl.insertAdjacentHTML('beforeend', `  ${text}`); + controlEl.prepend(this.newIconElement(iconCls)); + return controlEl; + } + /** * HTTP request handler for internal (Pathfinder) ajax calls * @param args @@ -245,6 +275,188 @@ define([ } } + /** + * get a unique cache key name for "source"/"target"-name + * @param sourceName + * @param targetName + * @returns {string|boolean} + */ + static getConnectionDataCacheKey(sourceName, targetName){ + let key = false; + if(sourceName && targetName){ + // names can be "undefined" in case system is currently in drag/drop state + // sort() is important -> ignore direction + key = `con_` + `${ [String(sourceName).toLowerCase(), String(targetName).toLowerCase()].sort() }`.hashCode(); + } + return key; + } + + /** + * get a connectionsData object that holds all connections for given mapIds (used as cache for route search) + * @param mapIds + * @returns {{}} + */ + static getConnectionsDataFromMaps(mapIds){ + let data = {}; + for(let mapId of mapIds){ + let map = MapUtil.getMapInstance(mapId); + if(map){ + let cacheKey = `map_${mapId}`; + let cache = BaseModule.getCache('mapConnections'); + let mapConnectionsData = cache.get(cacheKey); + + if(!mapConnectionsData){ + mapConnectionsData = this.getConnectionsDataFromConnections(mapId, map.getAllConnections()); + // update cache + cache.set(cacheKey, mapConnectionsData); + } + Object.assign(data, mapConnectionsData); + } + } + return data; + } + + /** + * get a connectionsData object for all connections + * @param mapId + * @param connections + * @returns {{}} + */ + static getConnectionsDataFromConnections(mapId = 0, connections = []){ + let data = {}; + if(connections.length){ + let connectionsData = MapUtil.getDataByConnections(connections); + for(let connectionData of connectionsData){ + let connectionDataCacheKey = BaseModule.getConnectionDataCacheKey(connectionData.sourceName, connectionData.targetName); + + // skip double connections between same systems + if(connectionDataCacheKey && !Object.keys(data).includes(connectionDataCacheKey)){ + data[connectionDataCacheKey] = { + map: { + id: mapId + }, + connection: { + id: connectionData.id, + type: connectionData.type, + scope: connectionData.scope, + updated: connectionData.updated + }, + source: { + id: connectionData.source, + name: connectionData.sourceName, + alias: connectionData.sourceAlias + }, + target: { + id: connectionData.target, + name: connectionData.targetName, + alias: connectionData.targetAlias + } + }; + } + } + } + return data; + } + + /** + * search for a specific connection by "source"/"target"-name inside connectionsData cache + * @param connectionsData + * @param sourceName + * @param targetName + * @returns {*} + */ + static findConnectionsData(connectionsData, sourceName, targetName){ + return this.Util.getObjVal(connectionsData, this.getConnectionDataCacheKey(sourceName, targetName)); + } + + /** + * get fake connection data (default connection type in case connection was not found on a map) + * @param sourceSystemData + * @param targetSystemData + * @param scope + * @param types + * @returns {{connection: {scope: string, id: number, type: [*]}, source: {name: number, alias: number, id: number}, target: {name: number, alias: number, id: number}}} + */ + static getFakeConnectionData(sourceSystemData, targetSystemData, scope = 'stargate', types = []){ + return { + connection: { + id: 0, + scope: scope, + type: types.length ? types : [MapUtil.getDefaultConnectionTypeByScope(scope)], + updated: 0 + }, + source: { + id: 0, + name: sourceSystemData.system, + alias: sourceSystemData.system + }, + target: { + id: 0, + name: targetSystemData.system, + alias: targetSystemData.system + } + }; + } + + /** + * get fake connection Element + * @param connectionData + * @returns {string} + */ + static getFakeConnectionElement(connectionData){ + let mapId = this.Util.getObjVal(connectionData, 'map.id') || 0; + let connectionId = this.Util.getObjVal(connectionData, 'connection.id') || 0; + let scope = this.Util.getObjVal(connectionData, 'connection.scope') || ''; + let classes = MapUtil.getConnectionFakeClassesByTypes(this.Util.getObjVal(connectionData, 'connection.type') || []); + let disabled = !mapId || !connectionId; + + let connectionElement = '
'; + return connectionElement; + } + + /** + * get static instance of in-memory Cache() store by 'name' + * -> not persistent across page reloads + * -> persistent across module instances (different and same maps) + * @param name + * @returns {Cache} + */ + static getCache(name){ + let key = `CACHE-${name}`; + if(!this.Util.getObjVal(this, key)){ + let configKey = `cacheConfig.${name}`; + let cacheConfig = this.Util.getObjVal(this, configKey); + if(!cacheConfig){ + console.warn('Missing Cache config for %o. Expected at %o. Default config loaded…', + name, `${this.name}.${configKey}` + ); + cacheConfig = {}; + }else{ + // set cache name + cacheConfig.name = name; + } + + this[key] = new Cache(cacheConfig); + } + return this[key]; + } + + static now(){ + return new Date().getTime() / 1000; + } + + static getOrderPrio(){ + return this.isPlugin ? + this.scopeOrder.indexOf('plugin') : + (this.scopeOrder.indexOf(this.scope) !== -1 ? + this.scopeOrder.indexOf(this.scope) : + this.scopeOrder.length - 1 + ); + } + static newDeferredPromise(){ return new DeferredPromise(); } @@ -259,6 +471,14 @@ define([ BaseModule.fullDataUpdate = false; // static module requires additional data (e.g. system description,...) BaseModule.Util = Util; // static access to Pathfinders Util object + BaseModule.scopeOrder = [ + 'system', + 'connection', + 'global', + 'plugin', + 'undefined' + ]; + BaseModule.handler = [ 'render', 'init', @@ -268,6 +488,14 @@ define([ 'onSortableEvent' ]; + BaseModule.cacheConfig = { + mapConnections: { + ttl: 5, + maxSize: 600, + debug: false + } + }; + BaseModule.defaultConfig = { position: 1, className: 'pf-base-module', // class for module @@ -276,6 +504,7 @@ define([ sortTargetAreas: ['a', 'b', 'c'], // sortable areas where module can be dragged into headline: 'Base headline', // module headline bodyClassName: 'pf-module-body', // class for module body [optional: can be used] + controlAreaClass: 'pf-module-control-area', // class for "control" areas moduleHeadlineIconClass: 'pf-module-icon-button' // class for toolbar icons in the head }; diff --git a/public/js/v2.0.0/app/ui/module/connection_info.js b/public/js/v2.0.0/app/ui/module/connection_info.js index 8af78b43..d3b09b0c 100644 --- a/public/js/v2.0.0/app/ui/module/connection_info.js +++ b/public/js/v2.0.0/app/ui/module/connection_info.js @@ -78,11 +78,9 @@ define([ */ newInfoPanelControlEl(mapId){ let connectionEl = this.newConnectionElement(mapId); - - let controlEl = document.createElement('div'); - controlEl.classList.add(Util.config.dynamicAreaClass, this._config.controlAreaClass); - controlEl.insertAdjacentHTML('beforeend', ' add connection  ctrl + click'); - connectionEl.append(controlEl); + connectionEl.append( + this.newControlElement('add connection  ctrl + click', [], ['fa-plus']) + ); return connectionEl; } @@ -267,9 +265,12 @@ define([ }, context => { // hide loading animation for(let contextData of context.connectionsData){ - let tableEls = this.moduleElement.querySelector('#' + this.getConnectionElementId(contextData.id)) - .getElementsByTagName('table'); - $(tableEls).hideLoadingAnimation(); + let connectionEl = this.moduleElement.querySelector('#' + this.getConnectionElementId(contextData.id)); + // connectionEl might be removed in meantime ( e.g. module removed) + if(connectionEl){ + let tableEls = connectionEl.getElementsByTagName('table'); + $(tableEls).hideLoadingAnimation(); + } } }); } @@ -351,7 +352,7 @@ define([ let scopeLabel = MapUtil.getScopeInfoForConnection(connectionData.scope, 'label'); let element = document.createElement('div'); - element.classList.add(Util.config.dynamicAreaClass, this._config.controlAreaClass); + element.classList.add(BaseModule.Util.config.dynamicAreaClass, this._config.controlAreaClass); $(element).append( $('
', { @@ -990,7 +991,7 @@ define([ if(rowData.active){ let confirmationSettings = { - title: 'delete jump log', + title: '---', template: Util.getConfirmationTemplate(null, { size: 'small', noTitle: true @@ -1251,7 +1252,6 @@ define([ // body connectionInfoPanelClass: 'pf-connection-info-panel', // class for connection info panels - controlAreaClass: 'pf-module-control-area', // class for "control" areas // info table moduleTableClass: 'pf-module-table', // class for module tables diff --git a/public/js/v2.0.0/app/ui/module/demo.js b/public/js/v2.0.0/app/ui/module/demo.js index ceef22f4..5bf82148 100644 --- a/public/js/v2.0.0/app/ui/module/demo.js +++ b/public/js/v2.0.0/app/ui/module/demo.js @@ -249,7 +249,7 @@ define([ // dependencies for this module } }; - DemoModule.isPlugin = true; // module is defined as 'plugin' + DemoModule.isPlugin = true; // module is defined as 'plugin' DemoModule.scope = 'system'; // module scope controls how module gets updated and what type of data is injected DemoModule.sortArea = 'a'; // default sortable area DemoModule.position = 10; // default sort/order position within sortable area diff --git a/public/js/v2.0.0/app/ui/module/global_thera.js b/public/js/v2.0.0/app/ui/module/global_thera.js new file mode 100644 index 00000000..bcd4640d --- /dev/null +++ b/public/js/v2.0.0/app/ui/module/global_thera.js @@ -0,0 +1,1028 @@ +define([ + 'jquery', + 'app/init', + 'app/util', + 'module/base', + 'app/map/map', + 'app/map/util', + 'app/ui/form_element' +], ($, Init, Util, BaseModule, Map, MapUtil, FormElement) => { + 'use strict'; + + /** + * TheraModule class + * @type {TheraModule} + */ + let TheraModule = class TheraModule extends BaseModule { + constructor(config = {}) { + config.eveScoutUrl = new URL(Init.url.eveScout); + super(Object.assign({}, new.target.defaultConfig, config)); + } + + /** + * get icon for undefined/missing cell value + * @returns {string} + */ + getIconForUndefinedCellValue(){ + return ''; + } + + /** + * get icon for "syncStatus" (connection is mapped) cell value + * @param status + * @returns {string} + */ + getIconForStatusCellValue(status = ''){ + let title = ''; + switch(status){ + case 'warning': + title = `not in ${this._config.eveScoutUrl.hostname.replace('www.', '')} connections`; + break; + case 'success': + title = `in ${this._config.eveScoutUrl.hostname.replace('www.', '')} connections`; + break; + case 'hint': + title += `sync connections/signatures`; + break; + default: + title = `not mapped`; + } + + return ``; + } + + /** + * get dataTable id + * @param {...string} parts e.g. 'tableType', 'mapId', 'systemId' + * @returns {string} + */ + getTableId(...parts){ + return BaseModule.Util.getTableId(this._config.theraTableId, ...parts); + } + + /** + * get dataTable row id + * @param tableType + * @param id + * @returns {string} + */ + getRowId(tableType, id){ + return BaseModule.Util.getTableRowId(this._config.theraTableRowIdPrefix, tableType, id); + } + + /** + * get DOM id by id + * @param tableApi + * @param id + * @returns {*} + */ + getRowById(tableApi, id){ + return tableApi.rows().ids().toArray().find(rowId => + rowId === this.getRowId(BaseModule.Util.getObjVal(this.getTableMetaData(tableApi), 'type'), id) + ); + } + + /** + * get custom "metaData" from dataTables API + * @param tableApi + * @returns {*} + */ + getTableMetaData(tableApi){ + return tableApi ? tableApi.init().pfMeta : null; + } + + /** + * initial module render method + * -> implementation is enforced by BaseModule + * -> must return a single node element + * @param mapId + * @returns {HTMLElement} + */ + render(mapId){ + this._mapId = mapId; + + // ... append your custom module body + this._bodyEl = Object.assign(document.createElement('div'), { + className: this._config.bodyClassName + }); + + this.moduleElement.append(this._bodyEl); + + this._bodyEl.append( + this.newControlElement( + 'Thera not found on map. Click here to add', + [this._config.moduleHeadlineIconClass, this._config.controlAreaTheraClass, 'hidden'], + ['fa-plus'] + ) + ); + + $(this.moduleElement).showLoadingAnimation(); + + this.initTheraTable(); + + this.setModuleObserver(); + + return this.moduleElement; + } + + /** + * init 'Thera connections' table (EveScout) + */ + initTheraTable(){ + let module = this; + + let tableEl = document.createElement('table'); + tableEl.id = module.getTableId('thera', module._mapId); + tableEl.classList.add('compact', 'stripe', 'order-column', 'row-border', 'pf-table-fixed', module._config.globalTheraTableClass); + this._bodyEl.append(tableEl); + + this._tableApi = $(tableEl).DataTable( { + pfMeta: { + type: 'theraConnection' + }, + paging: false, + ordering: true, + order: [[0, 'desc'], [8, 'desc']], + orderFixed: [[ 10, 'desc']], + info: false, + searching: false, + hover: false, + autoWidth: false, + rowId: rowData => module.getRowId('theraConnection', rowData.id), + select: { + style: 'os', + selector: 'td:not(.' + module._config.tableCellActionClass + ')' + }, + language: { + emptyTable: 'No Thera connections found' + }, + columnDefs: [ + { + targets: 0, + name: 'syncStatus', + title: '', + width: 2, + className: 'text-center', + data: 'syncStatus', + defaultContent: module.getIconForStatusCellValue(), + render: { + display: (cellData, type, rowData, meta) => { + return module.getIconForStatusCellValue(cellData); + }, + sort: syncStatus => ['warning', 'hint', 'success'].indexOf(syncStatus) + } + },{ + targets: 1, + name: 'trueSec', + title: 'sec', + width: 15, + className:'text-center', + data: 'target.trueSec', + defaultContent: module.getIconForUndefinedCellValue(), + render: { + display: (cellData, type, rowData, meta) => { + if(cellData !== undefined){ + let systemTrueSecClass = BaseModule.Util.getTrueSecClassForSystem(cellData); + return '' + cellData.toFixed(1) + ''; + } + } + } + },{ + targets: 2, + name: 'systemName', + title: 'system', + className: module._config.tableCellEllipsisClass, + data: 'target', + defaultContent: module.getIconForUndefinedCellValue(), + render: { + display: (cellData, type, rowData, meta) => { + let systemId = cellData.id || ''; + let cls = ( + cellData.name && ( + BaseModule.Util.getObjVal(rowData, 'relRowId') || // secondary table + BaseModule.Util.getObjVal(rowData, 'connectionId') // primary table + ) + ) ? module._config.linkClass : ''; + return `${cellData.name || ''}`; + }, + sort: 'name' + } + },{ + targets: 3, + name: 'region', + title: 'region', + className: module._config.tableCellEllipsisClass, + data: 'target', + defaultContent: module.getIconForUndefinedCellValue(), + render: { + _: 'region.name' + } + },{ + targets: 4, + name: 'outSig', + title: '', + width: 12, + className: ['text-center', module._config.fontUppercaseClass].join(' '), + data: 'sourceSignature', + defaultContent: module.getIconForUndefinedCellValue(), + render: { + _: 'name' + } + },{ + targets: 5, + name: 'fakeConnection', + title: 'con.', + orderable: false, + width: 30, + className: 'text-center', + data: 'fakeConnection', + defaultContent: '' + },{ + targets: 6, + name: 'inSig', + title: '', + width: 12, + className: ['text-center', module._config.fontUppercaseClass].join(' '), + data: 'targetSignature', + defaultContent: module.getIconForUndefinedCellValue(), + render: { + _: 'name' + } + },{ + targets: 7, + name: 'wormholeLabel', + title: 'type', + width: 50, + className: module._config.tableCellTypeClass, + data: 'wormholeLabel', + defaultContent: module.getIconForUndefinedCellValue(), + render: { + display: (cellData, type, rowData, meta) => { + if(cellData){ + let wormholeData = BaseModule.Util.getObjVal(Init, `wormholes.${cellData}`); + let security = BaseModule.Util.getObjVal(wormholeData, `security`); + let typeNodes = FormElement.formatSignatureTypeSelectionData({text: `${cellData} - ${security}`}, undefined, {showWhSizeLabel: false}); + return [...typeNodes].reduce((acc, node) => { + acc += node.outerHTML; + return acc; + }, ''); + } + } + } + },{ + targets: 8, + name: 'estimatedLife', + title: '', + width: 15, + className: 'text-right', + data: 'estimatedEol', + defaultContent: module.getIconForUndefinedCellValue(), + render: { + display: (cellData, type, rowData, meta) => { + try{ + let timeNow = (new Date()).getTime(); + let timeEol = Date.parse(cellData); + if(!isNaN(timeNow) && !isNaN(timeEol) ){ + let diff = (timeEol - timeNow) / 1000; + diff /= (60 * 60); + return `< ${Math.ceil(diff)}h`; + } + }catch(e){} + }, + sort: dateVal => Date.parse(dateVal) + } + },{ + targets: 9, + name: 'action', + title: '', + orderable: false, + width: 10, + className: ['text-center', module._config.tableCellActionClass, module._config.moduleHeadlineIconClass].join(' '), + data: null, + render: { + display: data => { + let icon = ''; + if(data.connectionId){ + icon = ''; + }else if(!data.syncStatus){ + icon = ''; + } + return icon; + } + }, + createdCell: function(cell, cellData, rowData, rowIndex, colIndex){ + let tableApi = this.api(); + + cell.addEventListener('click', e => { + e.stopPropagation(); + + let rowClicked = tableApi.row(e.target.closest('tr')); + rowData = rowClicked.data(); + + if(rowData.connectionId){ + // delete row(s) ------------------------------------------------------------------ + let deleteData = { + systemIds: [], + connectionIds: [], + }; + + let value, label; + // check if multiple rows are selected + current row is one of them -> bulk edit + let rowsSelected = tableApi.rows({selected: true}); + if(rowsSelected.count() > 1 && tableApi.row(rowIndex, {selected: true}).count()){ + deleteData = rowsSelected.data().toArray() + .reduce((acc, rowData) => { + acc.systemIds.push(BaseModule.Util.getObjVal(rowData, 'target.realId')); + acc.connectionIds.push(BaseModule.Util.getObjVal(rowData, 'connectionId')); + return acc; + }, deleteData); + label = `delete ${deleteData.systemIds.length} systems`; + }else{ + // get current row data (important!) + // -> "rowData" param is not current state, values are "on createCell()" state + rowsSelected = tableApi.row( $(cell).parents('tr')); + rowData = rowsSelected.data(); + deleteData.systemIds.push(BaseModule.Util.getObjVal(rowData, 'target.realId') || 0); + deleteData.connectionIds.push(BaseModule.Util.getObjVal(rowData, 'connectionId') || 0); + label = `delete '${BaseModule.Util.getObjVal(rowData, 'target.name')}'`; + } + + let confirmationSettings = { + title: '---', + template: BaseModule.Util.getConfirmationTemplate(BaseModule.Util.getConfirmationContent([{ + name: 'deleteSystems', + value: 1, + label: label, + class: 'pf-editable-warn', + checked: false + }]), { + size: 'small', + noTitle: true + }), + trigger: 'manual', + onConfirm : function(e, target){ + // stop scroll to top + e.preventDefault(); + + // get form data (check if form tag is not hidden!) from confirmation popover + let tip = target.data('bs.confirmation').tip(); + let form = tip.find('form:not(.hidden)').first(); + let formData = form.getFormValues(); + let deleteSystems = BaseModule.Util.getObjVal(formData, 'deleteSystems'); + + if(deleteSystems){ + // delete systems -> connections get auto removed as well + let activeMap = BaseModule.Util.getMapModule().getActiveMap(); + let systems = deleteData.systemIds.map(systemId => + document.getElementById(MapUtil.getSystemId(module._mapId, systemId)) + ).filter(Boolean); + + $(module.moduleElement).showLoadingAnimation(); + activeMap.trigger('pf:deleteSystems', [{ + systems: systems, + callback: deletedSystems => { + // callback function after ajax "delete" success + // check if system was deleted + if(deletedSystems.length){ + // remove table row + rowsSelected.remove().draw(); + }else{ + // error + this.showNotify({title: 'Failed to delete system', type: 'error'}); + } + $(module.moduleElement).hideLoadingAnimation(); + } + }]); + }else{ + // just delete connections + let connections = deleteData.connectionIds.map(connectionId => + $().getConnectionById(module._mapId, connectionId) + ).filter(Boolean); + + $(module.moduleElement).showLoadingAnimation(); + MapUtil.deleteConnections(connections, () => { + // callback function after ajax "delete" success + // remove table row + rowsSelected.remove().draw(); + $(module.moduleElement).hideLoadingAnimation(); + }); + } + } + }; + + // init confirmation dialog + $(cell).confirmation('destroy').confirmation(confirmationSettings).confirmation('show'); + }else if(!rowData.syncStatus){ + // add row ------------------------------------------------------------------------ + + let systemDataThera = MapUtil.getSystemData(module._mapId, TheraModule.systemIdThera, 'systemId'); + let systemDataSource = MapUtil.getSystemData(module._mapId, BaseModule.Util.getObjVal(rowData, 'target.id'), 'systemId'); + + if(systemDataThera && systemDataSource){ + // source & target system are already on map -> just draw connection + let map = MapUtil.getMapInstance(module._mapId); + let connectionData = { + source: systemDataThera.id, + target: systemDataSource.id, + scope: rowData.scope, + type: rowData.type + }; + + $(module.moduleElement).showLoadingAnimation(); + + Map.drawConnection(map, connectionData) + .then(payload => Map.saveConnection(payload.data.connection, true)) + .catch(console.warn); + }else{ + let options = { + systemData: { + id: BaseModule.Util.getObjVal(rowData, 'target.id'), + name: BaseModule.Util.getObjVal(rowData, 'target.name') + } + }; + + if(systemDataThera){ + let systemThera = document.getElementById(MapUtil.getSystemId(systemDataThera.mapId, systemDataThera.id)); + if(systemThera){ + options.sourceSystem = $(systemThera); + options.connectionData = { + scope: rowData.scope, + type: rowData.type, + disableAutoScope: true + }; + } + } + + module.showNewSystemDialog(options); + } + } + }); + } + },{ + targets: 10, + name: 'rowGroupData', + className: 'never', // never show this column. see: https://datatables.net/extensions/responsive/classes + data: 'rowGroupData', + defaultContent: 0, + visible: false, + render: { + sort: 'id' + } + } + ], + drawCallback: function(settings){ + let animationRows = this.api().rows().nodes().to$().filter(function(){ + return ( + $(this).data('animationStatus') || + $(this).data('animationTimer') + ); + }); + + animationRows.initTooltips(); + + for(let i = 0; i < animationRows.length; i++){ + let animationRow = $(animationRows[i]); + animationRow.pulseBackgroundColor(animationRow.data('animationStatus')); + animationRow.removeData('animationStatus'); + } + }, + initComplete: function(settings, json){ + module.getTheraConnectionsData('callbackUpdateTableRows'); + + // hover effect ----------------------------------------------------------------------------------- + let tableApi = this.api(); + let relRowId = null; + tableApi.tables().nodes().to$().on('mouseenter', 'td', function(){ + relRowId = BaseModule.Util.getObjVal(tableApi.row(this.parentElement).data(), 'relRowId') || null; + if(relRowId){ + let colIndex = tableApi.cell(this).index().column; + if(colIndex <= 8){ + let cell = tableApi.cell(this); + let relCell = tableApi.cell( + `#${module.getRowById(tableApi, relRowId)}`, + colIndex + ); + cell.nodes().to$().addClass('cellHighlight'); + relCell.nodes().to$().addClass('cellHighlight'); + + if([4,5,6,7,8].includes(colIndex)){ + let cellNode = cell.node(); + let relCellNode = relCell.node(); // might not exist if relRow was recently removed + if( + cellNode && relCellNode && + cellNode.innerHTML !== relCellNode.innerHTML + ){ + cellNode.dataset.origValue = cellNode.innerHTML; + cellNode.innerHTML = relCellNode.innerHTML; + } + } + } + } + }).on('mouseleave', 'td', function(){ + if(relRowId){ + if(this.dataset.origValue){ + this.innerHTML = this.dataset.origValue; + delete this.dataset.origValue; + } + tableApi.cells().nodes().to$().removeClass('cellHighlight'); + relRowId = null; + } + }); + + // click on "fake connection" --------------------------------------------------------------------- + $(this).on('click', '.pf-fake-connection', function(){ + let rowData = tableApi.row(this.closest('tr')).data(); + if(rowData.connectionId){ + let connection = $().getConnectionById(module._mapId, rowData.connectionId); + if(connection){ + let map = connection._jsPlumb.instance; + MapUtil.showConnectionInfo(map, [connection]); + } + } + }); + + // click on "target system name" ------------------------------------------------------------------ + $(this).on('click', `.${module._config.linkClass}[data-systemid]:not([data-systemid=''])`, e => { + BaseModule.Util.triggerMenuAction( + BaseModule.Util.getMapModule().getActiveMap(), + 'SelectSystem', + {systemId: MapUtil.getSystemData(module._mapId, parseInt(e.target.dataset.systemid), 'systemId').id} + ); + }); + }, + data: [] // will be added dynamic + }); + + let buttons = new $.fn.dataTable.Buttons(this._tableApi, { + dom: { + container: { + tag: 'h5', + className: 'pull-right' + }, + button: { + tag: 'i', + className: ['fas', 'fa-fw', module._config.moduleHeadlineIconClass].join(' '), + }, + buttonLiner: { + tag: null + } + }, + name: 'tableTools', + buttons: [ + { + name: 'eveScout', + className: 'fa-external-link-alt', + titleAttr: module._config.eveScoutUrl.hostname.replace('www.', ''), + attr: { + 'data-toggle': 'tooltip', + 'data-html': true + }, + action: function(e, tableApi, node, config){ + e.stopPropagation(); + window.open(`//${module._config.eveScoutUrl.hostname}`, '_blank'); + } + }, { + name: 'refresh', + className: 'fa-sync', + titleAttr: 'refresh', + attr: { + 'data-toggle': 'tooltip', + 'data-html': true + }, + action: function(e, tableApi, node, config){ + $(module.moduleElement).showLoadingAnimation(); + module.getTheraConnectionsData('callbackUpdateTableRows'); + } + } + ] + }); + + // "RowGroup" Datatables Plugin + this._tableApi.buttons().container().appendTo(module.moduleElement.querySelector('.' + module._config.headClassName)); + + new $.fn.dataTable.RowGroup(this._tableApi, { + dataSrc: 'rowGroupData.name', + startRender: function(rows, group, level){ + return `
` + + `${group}` + + `${rows.count()}` + + `
`; + } + }); + + // "Select" Datatables Plugin + this._tableApi.select(); + + this._tableApi.on('user-select', function(e, tableApi, type, cell, originalEvent){ + let rowData = tableApi.row(cell.index().row).data(); + if(!BaseModule.Util.getObjVal(rowData, 'connectionId')){ + e.preventDefault(); + } + }); + } + + /** + * @param options + * @param isThera + */ + showNewSystemDialog(options = {}, isThera = false){ + let activeMap = BaseModule.Util.getMapModule().getActiveMap(); + + // custom callback -> refresh Thera table + options.callback = (map, newSystemData, sourceSystem, connectionData) => { + $(this.moduleElement).showLoadingAnimation(); + + Map.saveSystemCallback(map, newSystemData, sourceSystem, connectionData); + }; + BaseModule.Util.triggerMenuAction(activeMap, 'AddSystem', options); + } + + /** + * get thera connections data + * @param callback + * @param system + */ + getTheraConnectionsData(callback, system = null){ + + this.getLocalStore().getItem('eveScout') + .then(cacheEntry => new Promise(resolve => { + + if( + cacheEntry && cacheEntry.tSet && + TheraModule.ttlEveScoutResponse > BaseModule.now() - cacheEntry.tSet + ){ + $(this.moduleElement).hideLoadingAnimation(); + resolve(cacheEntry.value); + }else{ + this.request('GET', 'systemThera', [], {}, this, context => { + $(this.moduleElement).hideLoadingAnimation(); + }).then(payload => { + let cacheEntry = { + tSet: BaseModule.now(), + value: Array.isArray(payload.data) ? payload.data : [] + }; + this.getLocalStore().setItem('eveScout', cacheEntry) + .then(cacheEntry => resolve(cacheEntry.value)); + }).catch(payload => { + let reason = payload.data.status + ' ' + payload.data.error; + this.showNotify({ + title: payload.data.jqXHR.status + ': Thera connections data', + text: reason, + type: 'warning' + }); + resolve([]); + }); + } + })) + .then(connectionsData => this[callback](connectionsData, system)); + } + + /** + * update thera table with data + * @param connectionsData + * @param systemThera + */ + callbackUpdateTableRows(connectionsData = [], systemThera = null){ + if(!this._tableApi){ + return; + } + + connectionsData = Array.isArray(connectionsData) ? connectionsData : []; + + let getGroupedRowId = (groupData, rowId) => { + return `${groupData.id}-${rowId}`; + }; + + let touchedRows = []; + let hadData = this._tableApi.rows().any(); + let notificationCounter = { + added: 0, + changed: 0, + deleted: 0 + }; + + let map = MapUtil.getMapInstance(this._mapId); + let currentMapData = BaseModule.Util.getCurrentMapData(this._mapId); + if(map && currentMapData){ + let groupDataMap = { + id: this._mapId, + name: BaseModule.Util.getObjVal(currentMapData, 'config.name') + }; + + let groupDataEveScout = { + id: 0, + name: 'eve-scout.com' + }; + + // get data from all Thera connections from current map ----------------------------------------------- + let currentConnectionsData = {}; + let systemTheraFound = false; + if(systemThera){ + systemTheraFound = true; + let currentConnections = MapUtil.searchConnectionsBySystems(map, [systemThera], '*'); + currentConnectionsData = BaseModule.getConnectionsDataFromConnections(this._mapId, currentConnections); + }else{ + let systemDataThera = MapUtil.getSystemData(this._mapId, TheraModule.systemIdThera, 'systemId'); + if(systemDataThera){ + systemTheraFound = true; + let systemIdThera = MapUtil.getSystemId(this._mapId, systemDataThera.id); + let currentConnections = MapUtil.searchConnectionsBySystems(map, [systemIdThera], '*'); + currentConnectionsData = BaseModule.getConnectionsDataFromConnections(this._mapId, currentConnections); + } + } + + this._bodyEl.querySelector(`.${this._config.controlAreaTheraClass}`).classList.toggle('hidden', systemTheraFound); + + let dateNow = new Date(); + + let tableDataPrimary = []; + let tableDataSecondary = []; + + let formatSignatureData = data => ({ + id: data.ids, + name: data.names.length ? data.names.map(name => name.substring(0, 3)).join(', ') : null, + type: { + name: data.labels.length ? data.labels.join(', ') : null + } + }); + + let equalPropVal = (val, prop = 'id') => b => b[prop] === val; + + // add mapped Thera connections (primary) ------------------------------------------------------------- + for(let currentConnectionData of Object.values(currentConnectionsData)){ + let connectionId = BaseModule.Util.getObjVal(currentConnectionData, 'connection.id') || 0; + let updated = BaseModule.Util.getObjVal(currentConnectionData, 'connection.updated') || 0; + let source = currentConnectionData.source; + let target = currentConnectionData.target; + let connectionHash = BaseModule.getConnectionDataCacheKey(source.name, target.name); + + // mapped connection not exists in eveScout data + let currentConnectionDataFull = MapUtil.getConnectionDataFromMapData(currentMapData, connectionId); + let connection = $().getConnectionById(this._mapId, connectionId); + let signatureTypeNames = MapUtil.getConnectionDataFromSignatures(connection, currentConnectionDataFull); + + let sourceSignature = formatSignatureData(signatureTypeNames.source); + let targetSignature = formatSignatureData(signatureTypeNames.target); + + // swap source <-> target. 'Thera' should be the source system + // -> In order to match the eve-scout response format for connections + if(target.name.toLowerCase() === 'thera'){ + [source, target] = [target, source]; + [sourceSignature, targetSignature] = [targetSignature, sourceSignature]; + } + + let whLabel = null; + let whSigId = 0; + for(let data of Object.values(signatureTypeNames)){ + if(!data.labels){ + continue; + } + let i = data.labels.findIndex(label => label !== 'K162'); + if(i !== -1){ + whLabel = data.labels[i]; + whSigId = data.ids[i]; + break; + } + } + + // to calc the remaining lifetime of the wormhole, we need the 'created' date of linked sig. + // -> This is "hacky"! We re-search all signatures by whSigId === id... :( + let estimatedEol; + let maxStableTime = BaseModule.Util.getObjVal(Object.assign({}, Init.wormholes[whLabel]), 'maxStableTime'); + if(maxStableTime && whSigId){ + let whSignatureData = (BaseModule.Util.getObjVal(currentConnectionDataFull, 'signatures') || []) + .find(equalPropVal(whSigId)); + let whSignatureCreated = BaseModule.Util.getObjVal(whSignatureData, 'created.created') || 0; + if(whSignatureCreated){ + let createdDate = new Date( whSignatureCreated * 1000); + createdDate.setHours(createdDate.getHours() + maxStableTime); + //estimatedEol = Math.floor(createdDate.getTime() / 1000); + estimatedEol = createdDate.toISOString(); + } + } + + let rowData = { + id: getGroupedRowId(groupDataMap, connectionHash), + hash: connectionHash, + scope: BaseModule.Util.getObjVal(currentConnectionData, 'connection.scope'), + type: BaseModule.Util.getObjVal(currentConnectionData, 'connection.type'), + source: (({id:realId, systemId:id, name, trueSec, constellation, region}) => + ({ + realId, + id, + name, + trueSec, + constellation, + region + }))(MapUtil.getSystemDataFromMapData(currentMapData, source.id)), + target: (({id:realId, systemId:id, name, trueSec, constellation, region}) => + ({ + realId, + id, + name, + trueSec, + constellation, + region + }))(MapUtil.getSystemDataFromMapData(currentMapData, target.id)), + sourceSignature: sourceSignature, + targetSignature: targetSignature, + wormholeLabel: whLabel, + syncStatus: 'warning', + rowGroupData: groupDataMap, + connectionId: connectionId, + fakeConnection: BaseModule.getFakeConnectionElement(currentConnectionData), + estimatedEol: estimatedEol, + updated: updated, + updatedHash: [updated, signatureTypeNames.hash].join().hashCode() + }; + + tableDataPrimary.push(rowData); + } + + // add EveScout Thera connections (secondary) --------------------------------------------------------- + for(let rowData of connectionsData){ + let systemNameSource = BaseModule.Util.getObjVal(rowData, 'source.name'); + let systemNameTarget = BaseModule.Util.getObjVal(rowData, 'target.name'); + let connectionHash = BaseModule.getConnectionDataCacheKey(systemNameSource, systemNameTarget); + + let whLabel = BaseModule.Util.getObjVal(rowData, 'sourceSignature.type.name') || null; + if(!whLabel){ + whLabel = BaseModule.Util.getObjVal(rowData, 'targetSignature.type.name') || null; + } + + let massType = BaseModule.Util.getObjVal(Object.assign({}, Init.wormholes[whLabel]), 'size.type'); + let connectionType = [...rowData.type, massType]; + + // overwrite eveScout id with new id (hash) + rowData.id = getGroupedRowId(groupDataEveScout, connectionHash); + rowData.hash = connectionHash; + rowData.wormholeLabel = whLabel; + rowData.syncStatus = null; + rowData.rowGroupData = groupDataEveScout; + rowData.connectionId = null; + rowData.type = connectionType; + rowData.fakeConnection = BaseModule.getFakeConnectionElement(BaseModule.getFakeConnectionData( + {system: systemNameSource}, + {system: systemNameTarget}, + rowData.scope, + rowData.type + )); + rowData.updatedHash = String(rowData.updated).hashCode(); + tableDataSecondary.push(rowData); + } + + // + Merge Primary + Secondary table data ------------------------------------------------------------- + for(let primaryRowData of tableDataPrimary){ + let secondaryIndex = tableDataSecondary.findIndex(equalPropVal(primaryRowData.hash, 'hash')); + if(secondaryIndex !== -1){ + // get a new hash key from both 'updated' values (primary + secondary) tableData + // -> if a signature gets updated on map, table row should be updated, too + // -> so we can check it later on if either prim. or sec. data has changed... + let updatedHash = [ + primaryRowData.updatedHash, + tableDataSecondary[secondaryIndex].updatedHash + ].join().hashCode(); + + primaryRowData.syncStatus = 'success'; + primaryRowData.relRowId = tableDataSecondary[secondaryIndex].id; + primaryRowData.updatedHash = updatedHash; + + // remove from secondary table data -> no duplicated rows + //tableDataSecondary.splice(secondaryIndex, 1); + + tableDataSecondary[secondaryIndex].syncStatus = 'hint'; + tableDataSecondary[secondaryIndex].relRowId = primaryRowData.id; + tableDataSecondary[secondaryIndex].updatedHash = updatedHash; + } + } + + let tableData = [...tableDataPrimary, ...tableDataSecondary]; + + // update table data ---------------------------------------------------------------------------------- + for(let rowData of tableData){ + let rowId = this.getRowById(this._tableApi, rowData.id); + + if(rowId){ + // update row + let api = this._tableApi.row('#' + rowId); + let rowDataCurrent = api.data(); + + // check for update + if( + BaseModule.Util.getObjVal(rowDataCurrent, 'updatedHash') !== + BaseModule.Util.getObjVal(rowData, 'updatedHash') + ){ + // row data changed -> update + api.data(rowData); + api.nodes().to$().data('animationStatus', 'changed'); + notificationCounter.changed++; + } + + touchedRows.push(api.id()); + }else{ + // insert new row + let api = this._tableApi.row.add(rowData); + api.nodes().to$().data('animationStatus', 'added'); + notificationCounter.added++; + + touchedRows.push(api.id()); + } + } + + let api = this._tableApi.rows((idx, data, node) => !touchedRows.includes(node.id)); + notificationCounter.deleted += api.ids().count(); + api.remove(); + + if(Math.max(...Object.values(notificationCounter))){ + this._tableApi.draw(); + } + + // show notification ---------------------------------------------------------------------------------- + let notification = Object.keys(notificationCounter).reduce((acc, key) => { + return `${acc}${notificationCounter[key] ? `${notificationCounter[key]} ${key}
` : ''}`; + }, ''); + + if(hadData && notification.length){ + this.showNotify({title: 'Thera connections updated', text: notification, type: 'success', textTrusted: true}); + } + }else{ + console.warn('Table update failed for Thera connections. MapData is missing'); + } + } + + /** + * set module observer + */ + setModuleObserver(){ + + // add Thera system + this._bodyEl.querySelector(`.${this._config.controlAreaTheraClass}`).addEventListener('click', e => { + this.showNewSystemDialog({ + systemData: { + id: TheraModule.systemIdThera, + name: 'Thera' + } + }, true); + }, false); + + // signature column - "type" popover + MapUtil.initWormholeInfoTooltip( + $(this.moduleElement).find('.' + this._config.globalTheraTableClass), + `.${this._config.tableCellTypeClass} span[class^="pf-system-sec-"]` + ); + + // init tooltips + $(this.moduleElement).initTooltips(); + } + + /** + * update module + * compare data and update module + * @param mapId + * @returns {Promise} + */ + update(mapId){ + return super.update(mapId).then(mapId => new Promise(resolve => { + this.getTheraConnectionsData('callbackUpdateTableRows'); + + resolve({ + action: 'update', + data: { + module: this + } + }); + })); + } + }; + + TheraModule.isPlugin = false; // module is defined as 'plugin' + TheraModule.scope = 'global'; // module scope controls how module gets updated and what type of data is injected + TheraModule.sortArea = 'b'; // default sortable area + TheraModule.position = 3; // default sort/order position within sortable area + TheraModule.label = 'Thera'; // static module label (e.g. description) + TheraModule.systemIdThera = 31000005; + TheraModule.ttlEveScoutResponse = 120; + + TheraModule.defaultConfig = { + className: 'pf-global-thera-module', // class for module + sortTargetAreas: ['a', 'b', 'c'], // sortable areas where module can be dragged into + headline: 'Thera Connection', + + // Thera module + theraTableId: 'pf-thera-table-', // id prefix for all tables in module + theraTableRowIdPrefix: 'pf-thera-row-', // id prefix for table rows + globalTheraTableClass: 'pf-global-thera-table', // class for NPC owned stations table + controlAreaTheraClass: 'pf-global-thera-control', // class for "thera system exists" label + + // fonts + fontUppercaseClass: 'pf-font-uppercase', // class for "uppercase" font + linkClass: 'pf-link', + + // Thera connections table + tableCellTypeClass: 'pf-table-type-cell', // class for "type" cells + tableCellEllipsisClass: 'pf-table-cell-ellipses-auto', // class for table "ellipsis" cells + tableCellActionClass: 'pf-table-action-cell' + }; + + return TheraModule; +}); \ No newline at end of file diff --git a/public/js/v2.0.0/app/ui/module/system_intel.js b/public/js/v2.0.0/app/ui/module/system_intel.js index 4ccf53d4..a191cb87 100644 --- a/public/js/v2.0.0/app/ui/module/system_intel.js +++ b/public/js/v2.0.0/app/ui/module/system_intel.js @@ -42,18 +42,16 @@ define([ * @returns {*} */ getDataTableInstance(mapId, systemId, tableType){ - return Util.getDataTableInstance(this._config.intelTableId, mapId, systemId, tableType); + return BaseModule.Util.getDataTableInstance(this._config.intelTableId, mapId, systemId, tableType); } /** * get dataTable id - * @param mapId - * @param systemId - * @param tableType + * @param {...string} parts e.g. 'tableType', 'mapId', 'systemId' * @returns {string} */ - getTableId(tableType, mapId, systemId){ - return Util.getTableId(this._config.intelTableId, tableType, mapId, systemId); + getTableId(...parts){ + return BaseModule.Util.getTableId(this._config.intelTableId, ...parts); } /** @@ -63,7 +61,7 @@ define([ * @returns {string} */ getRowId(tableType, id){ - return Util.getTableRowId(this._config.intelTableRowIdPrefix, tableType, id); + return BaseModule.Util.getTableRowId(this._config.intelTableRowIdPrefix, tableType, id); } /** @@ -73,7 +71,7 @@ define([ * @returns {*} */ getRowById(tableApi, id){ - return tableApi.rows().ids().toArray().find(rowId => rowId === this.getRowId(Util.getObjVal(this.getTableMetaData(tableApi), 'type'), id)); + return tableApi.rows().ids().toArray().find(rowId => rowId === this.getRowId(BaseModule.Util.getObjVal(this.getTableMetaData(tableApi), 'type'), id)); } /** @@ -85,7 +83,6 @@ define([ return tableApi ? tableApi.init().pfMeta : null; } - /** * vormat roman numeric string to int * -> e.g. 'VII' => 7 @@ -331,7 +328,7 @@ define([ $(cell).find('i').tooltip(); }else{ let confirmationSettings = { - title: 'delete structure', + title: '---', template: Util.getConfirmationTemplate(null, { size: 'small', noTitle: true @@ -397,7 +394,6 @@ define([ // "Select" Datatables Plugin tableApiStructure.select(); - // "Buttons" Datatables Plugin tableApiStructure.on('user-select', function(e, tableApi, type, cell, originalEvent){ let rowData = tableApi.row(cell.index().row).data(); if(Util.getObjVal(rowData, 'rowGroupData.id') !== corporationId){ @@ -405,6 +401,7 @@ define([ } }); + // "Buttons" Datatables Plugin let buttons = new $.fn.dataTable.Buttons(tableApiStructure, { dom: { container: { @@ -421,6 +418,18 @@ define([ }, name: 'tableTools', buttons: [ + { + name: 'add', + className: 'fa-plus', + titleAttr: 'add', + attr: { + 'data-toggle': 'tooltip', + 'data-html': true + }, + action: function(e, tableApi, node, config){ + module.showStructureDialog(tableApi); + } + }, { name: 'selectToggle', className: ['fa-check-double'].join(' '), @@ -445,18 +454,6 @@ define([ } } }, - { - name: 'add', - className: 'fa-plus', - titleAttr: 'add', - attr: { - 'data-toggle': 'tooltip', - 'data-html': true - }, - action: function(e, tableApi, node, config){ - module.showStructureDialog(tableApi); - } - }, { name: 'dScan', className: 'fa-paste', @@ -1066,22 +1063,17 @@ define([ api.remove(); } - if( - notificationCounter.added > 0 || - notificationCounter.changed > 0 || - notificationCounter.deleted > 0 - ){ + if(Math.max(...Object.values(notificationCounter))){ context.tableApi.draw(); } - // show notification ------------------------------------------------------------------------------------------ - let notification = ''; - notification += notificationCounter.added > 0 ? notificationCounter.added + ' added
' : ''; - notification += notificationCounter.changed > 0 ? notificationCounter.changed + ' changed
' : ''; - notification += notificationCounter.deleted > 0 ? notificationCounter.deleted + ' deleted
' : ''; + // show notification -------------------------------------------------------------------------------------- + let notification = Object.keys(notificationCounter).reduce((acc, key) => { + return `${acc}${notificationCounter[key] ? `${notificationCounter[key]} ${key}
` : ''}`; + }, ''); if(hadData && notification.length){ - this.showNotify({title: 'Structures updated', text: notification, type: 'success'}); + this.showNotify({title: 'Structures updated', text: notification, type: 'success', textTrusted: true}); } } @@ -1291,7 +1283,7 @@ define([ */ update(systemData){ return super.update(systemData).then(systemData => new Promise(resolve => { - // update structure table data -------------------------------------------------------------------------------- + // update structure table data ------------------------------------------------------------------------ let structureContext = { tableApi: $(this.moduleElement.querySelector('.' + this._config.systemStructuresTableClass)).DataTable(), removeMissing: true @@ -1299,7 +1291,7 @@ define([ this.callbackUpdateTableRows(structureContext, Util.getObjVal(systemData, 'structures')); - // update station table data ---------------------------------------------------------------------------------- + // update station table data -------------------------------------------------------------------------- let stationContext = { tableApi: $(this.moduleElement.querySelector('.' + this._config.systemStationsTableClass)).DataTable(), removeMissing: false diff --git a/public/js/v2.0.0/app/ui/module/system_killboard.js b/public/js/v2.0.0/app/ui/module/system_killboard.js index 77ccfbd6..b7c53215 100644 --- a/public/js/v2.0.0/app/ui/module/system_killboard.js +++ b/public/js/v2.0.0/app/ui/module/system_killboard.js @@ -7,9 +7,8 @@ define([ 'app/init', 'app/util', 'module/base', - 'app/lib/cache', 'app/map/util' -], ($, Init, Util, BaseModule, Cache, MapUtil) => { +], ($, Init, Util, BaseModule, MapUtil) => { 'use strict'; let SystemKillboardModule = class SystemKillboardModule extends BaseModule { @@ -99,7 +98,7 @@ define([ getSystemKillsData(){ // check for cached responses "short term cache" let cacheKey = SystemKillboardModule.getCacheKey('systemId', this._systemData.systemId); - let result = SystemKillboardModule.zkbCache.get(cacheKey); + let result = SystemKillboardModule.getCache('zkb').get(cacheKey); if(result){ // could also be an empty array! return Promise.resolve(result); @@ -125,7 +124,7 @@ define([ return Promise.reject(result); }else{ // zkb result needs to be cached and becomes reduced on "load more" - SystemKillboardModule.zkbCache.set(cacheKey, result); + SystemKillboardModule.getCache('zkb').set(cacheKey, result); return result; } }).then(result => resolve(result)).catch(e => { @@ -186,15 +185,10 @@ define([ this._killboardEl = document.createElement('ul'); this._killboardEl.classList.add(this._config.systemKillboardListClass); - let controlEl = document.createElement('div'); - controlEl.classList.add(Util.config.dynamicAreaClass, this._config.controlAreaClass, this._config.moduleHeadlineIconClass); - controlEl.insertAdjacentHTML('beforeend', '  load more'); - controlEl.prepend(this.newIconElement(['fa-sync'])); - this._bodyEl.append( this._killboardLabelEl, this._killboardEl, - controlEl + this.newControlElement('load more', [this._config.moduleHeadlineIconClass]) ); // set a "local" copy of all indexes from cached response @@ -228,7 +222,7 @@ define([ showKills(chunkSize){ if(chunkSize){ let cacheKey = SystemKillboardModule.getCacheKey('systemId', this._systemData.systemId); - let result = SystemKillboardModule.zkbCache.get(cacheKey); + let result = SystemKillboardModule.getCache('zkb').get(cacheKey); if( this._killboardEl.children.length < this._config.maxCountKillHistoric && @@ -263,7 +257,7 @@ define([ */ loadKillmailData(requestData, context, callback){ let cacheKey = SystemKillboardModule.getCacheKey('killmail', requestData.killId); - let cacheItem = SystemKillboardModule.killmailCache.get(cacheKey); + let cacheItem = SystemKillboardModule.getCache('killmail').get(cacheKey); if(cacheItem){ // ... already cached -> show cache killmail this[callback](cacheItem.zkb, cacheItem.killmailData, cacheItem.systemData, context.chunkSize) @@ -275,7 +269,7 @@ define([ this.request(url).then(killmailData => { let systemData = SystemKillboardModule.getSystemDataForCache(this._systemData); - SystemKillboardModule.killmailCache.set(cacheKey, {zkb: context.zkb, killmailData: killmailData, systemData: systemData}); + SystemKillboardModule.getCache('killmail').set(cacheKey, {zkb: context.zkb, killmailData: killmailData, systemData: systemData}); this[callback](context.zkb, killmailData, systemData, context.chunkSize) .then(payload => this.showKills(payload.data.chunkSize)) @@ -445,18 +439,6 @@ define([ return url; } - /** - * @param text - * @param cls - * @returns {HTMLSpanElement} - */ - newLabelElement(text, cls = []){ - let labelEl = document.createElement('span'); - labelEl.classList.add('label', 'center-block', ...cls); - labelEl.textContent = text || ''; - return labelEl; - } - /** * Li headline (devider) * @param text @@ -668,7 +650,7 @@ define([ */ static getWsRelevantSystemsFromMaps(){ let cacheKey = SystemKillboardModule.getCacheKey('tempSystemsData', 1); - let systemsData = SystemKillboardModule.zkbCache.get(cacheKey); + let systemsData = SystemKillboardModule.getCache('zkb').get(cacheKey); if(!systemsData){ // KB cache ist for all maps (not just the current one) @@ -683,7 +665,7 @@ define([ ), {}) ), {}); - SystemKillboardModule.zkbCache.set(cacheKey, systemsData); + SystemKillboardModule.getCache('zkb').set(cacheKey, systemsData); } return systemsData; } @@ -705,7 +687,7 @@ define([ // system is on map! -> cache systemData = BaseModule.Util.getObjVal(systemsData, String(killmailData.solar_system_id)); let cacheKey = SystemKillboardModule.getCacheKey('killmail', killmailData.killmail_id); - SystemKillboardModule.killmailCache.set(cacheKey, { + SystemKillboardModule.getCache('killmail').set(cacheKey, { zkb: zkbData, killmailData: killmailData, systemData: systemData @@ -800,19 +782,17 @@ define([ SystemKillboardModule.label = 'Killboard'; // static module label (e.g. description) SystemKillboardModule.wsStatus = undefined; SystemKillboardModule.serverTime = BaseModule.Util.getServerTime(); // static Date() with current EVE server time - SystemKillboardModule.zkbCache = new Cache({ // cache for "zKillboard" responses -> short term cache - name: 'zkb', - ttl: 60 * 3, - maxSize: 50, - debug: false - }); - SystemKillboardModule.killmailCache = new Cache({ // cache for "Killmail" data -> long term cache - name: 'ccpKillmails', - ttl: 60 * 30, - maxSize: 500, - debug: false - }); SystemKillboardModule.wsSubscribtions = []; // static container for all KB module instances (from multiple maps) for WS responses + SystemKillboardModule.cacheConfig = { + zkb: { // cache for "zKillboard" responses -> short term cache + ttl: 60 * 3, + maxSize: 50 + }, + killmail: { // cache for "Killmail" data -> long term cache + ttl: 60 * 30, + maxSize: 500 + } + }; SystemKillboardModule.defaultConfig = { className: 'pf-system-killboard-module', // class for module @@ -829,7 +809,6 @@ define([ wsStatusWrapperClass: 'pf-system-killboard-wsStatusWrapper', // class for WebSocket "status" wrapper wsStatusClass: 'pf-system-killboard-wsStatus', // class for WebSocket "status" headline labelRecentKillsClass: 'pf-system-killboard-label-recent', // class for "recent kills" label - controlAreaClass: 'pf-module-control-area', // class for "control" areas minCountKills: 5, chunkCountKills: 5, diff --git a/public/js/v2.0.0/app/ui/module/system_route.js b/public/js/v2.0.0/app/ui/module/system_route.js index fd22f59f..49eaa6a5 100644 --- a/public/js/v2.0.0/app/ui/module/system_route.js +++ b/public/js/v2.0.0/app/ui/module/system_route.js @@ -12,12 +12,6 @@ define([ ], ($, Init, Util, bootbox, MapUtil, BaseModule) => { 'use strict'; - // cache for system routes - let cache = { - systemRoutes: {}, // jump information between solar systems - mapConnections: {} // connection data read from UI - }; - let SystemRouteModule = class SystemRouteModule extends BaseModule { constructor(config = {}) { super(Object.assign({}, new.target.defaultConfig, config)); @@ -275,7 +269,7 @@ define([ let tempTableElement = this; let confirmationSettings = { - title: 'delete route', + title: '---', template: Util.getConfirmationTemplate(null, { size: 'small', noTitle: true @@ -434,7 +428,7 @@ define([ if(systemFromData.name !== systemToData.name){ // check for cached rowData let cacheKey = this.getRouteDataCacheKey([mapId], systemFromData.name, systemToData.name); - let rowData = this.getCacheData('systemRoutes', cacheKey); + let rowData = SystemRouteModule.getCache('routes').get(cacheKey); if(rowData){ // route data is cached (client side) rowElements.push(this.addRow(rowData)); @@ -479,29 +473,7 @@ define([ * @returns {string} */ getRouteDataCacheKey(mapIds, sourceName, targetName){ - return [mapIds.join('_'), sourceName.toLowerCase(), targetName.toLowerCase()].join('###'); - } - - /** - * get cache data - * @param cacheType - * @param cacheKey - * @returns {null} - */ - getCacheData(cacheType, cacheKey){ - let cachedData = null; - let currentTimestamp = Util.getServerTime().getTime(); - - if( - cache[cacheType].hasOwnProperty(cacheKey) && - Math.round( - ( currentTimestamp - (new Date( cache[cacheType][cacheKey].updated * 1000).getTime())) / 1000 - ) <= this._config.routeCacheTTL - ){ - cachedData = cache[cacheType][cacheKey].data; - } - - return cachedData; + return `route_` + `${mapIds.join('_')}${sourceName}${targetName}`.hashCode(); } /** @@ -578,7 +550,7 @@ define([ if(rowData.route){ // update route cache let cacheKey = this.getRouteDataCacheKey(rowData.mapIds, routeData.systemFromData.name, routeData.systemToData.name); - this.setCacheData('systemRoutes', cacheKey, rowData); + SystemRouteModule.getCache('routes').set(cacheKey, rowData); this.addRow(rowData); } @@ -731,7 +703,7 @@ define([ let routeJumpElements = []; let avgSecTemp = 0; - let connectionsData = this.getConnectionsDataFromMaps(routeData.mapIds); + let connectionsData = BaseModule.getConnectionsDataFromMaps(routeData.mapIds); let prevRouteNodeData = null; // loop all systems on this route for(let i = 0; i < routeData.route.length; i++){ @@ -740,11 +712,11 @@ define([ // fake connection elements between systems ----------------------------------------------------------- if(prevRouteNodeData){ - let connectionData = this.findConnectionsData(connectionsData, prevRouteNodeData.system, systemName); - if(!connectionData.hasOwnProperty('connection')){ - connectionData = this.getFakeConnectionData(prevRouteNodeData, routeNodeData, isWormholeSystemName(systemName) ? 'wh' : 'stargate'); + let connectionData = BaseModule.findConnectionsData(connectionsData, prevRouteNodeData.system, systemName); + if(!connectionData){ + connectionData = BaseModule.getFakeConnectionData(prevRouteNodeData, routeNodeData, isWormholeSystemName(systemName) ? 'wh' : 'stargate'); } - let connectionElement = this.getFakeConnectionElement(connectionData); + let connectionElement = BaseModule.getFakeConnectionElement(connectionData); routeJumpElements.push(connectionElement); } @@ -809,153 +781,6 @@ define([ return tableRowData; } - /** - * get a connectionsData object that holds all connections for given mapIds (used as cache for route search) - * @param mapIds - * @returns {{}} - */ - getConnectionsDataFromMaps(mapIds){ - let connectionsData = {}; - for(let mapId of mapIds){ - let map = MapUtil.getMapInstance(mapId); - if(map){ - let cacheKey = 'map_' + mapId; - let mapConnectionsData = this.getCacheData('mapConnections', cacheKey); - - if(!mapConnectionsData){ - mapConnectionsData = {}; - let connections = map.getAllConnections(); - if(connections.length){ - let connectionsData = MapUtil.getDataByConnections(connections); - for(let connectionData of connectionsData){ - let connectionDataCacheKey = this.getConnectionDataCacheKey(connectionData.sourceName, connectionData.targetName); - - // skip double connections between same systems - if(!mapConnectionsData.hasOwnProperty(connectionDataCacheKey)){ - mapConnectionsData[connectionDataCacheKey] = { - map: { - id: mapId - }, - connection: { - id: connectionData.id, - type: connectionData.type, - scope: connectionData.scope - }, - source: { - id: connectionData.source, - name: connectionData.sourceName, - alias: connectionData.sourceAlias - }, - target: { - id: connectionData.target, - name: connectionData.targetName, - alias: connectionData.targetAlias - } - }; - } - } - } - - // update cache - this.setCacheData('mapConnections', cacheKey, mapConnectionsData); - } - - if(connectionsData !== null){ - connectionsData = Object.assign({}, mapConnectionsData, connectionsData); - } - } - } - - return connectionsData; - } - - /** - * get fake connection data (default connection type in case connection was not found on a map) - * @param sourceRouteNodeData - * @param targetRouteNodeData - * @param scope - * @returns {{connection: {id: number, type: string[], scope: string}, source: {id: number, name, alias}, target: {id: number, name, alias}}} - */ - getFakeConnectionData(sourceRouteNodeData, targetRouteNodeData, scope = 'stargate'){ - return { - connection: { - id: 0, - type: [MapUtil.getDefaultConnectionTypeByScope(scope)], - scope: scope - }, - source: { - id: 0, - name: sourceRouteNodeData.system, - alias: sourceRouteNodeData.system - }, - target: { - id: 0, - name: targetRouteNodeData.system, - alias: targetRouteNodeData.system - } - }; - } - - /** - * get fake connection Element - * @param connectionData - * @returns {string} - */ - getFakeConnectionElement(connectionData){ - let mapId = Util.getObjVal(connectionData, 'map.id') | 0; - let connectionId = Util.getObjVal(connectionData, 'connection.id') | 0; - let scope = Util.getObjVal(connectionData, 'connection.scope'); - let classes = MapUtil.getConnectionFakeClassesByTypes(connectionData.connection.type); - let disabled = !mapId || !connectionId; - - let connectionElement = '
'; - return connectionElement; - } - - /** - * search for a specific connection by "source"/"target"-name inside connectionsData cache - * @param connectionsData - * @param sourceName - * @param targetName - * @returns {{}} - */ - findConnectionsData(connectionsData, sourceName, targetName){ - let connectionDataCacheKey = this.getConnectionDataCacheKey(sourceName, targetName); - return connectionsData.hasOwnProperty(connectionDataCacheKey) ? - connectionsData[connectionDataCacheKey] : {}; - } - - /** - * get a unique cache key name for "source"/"target"-name - * @param sourceName - * @param targetName - * @returns {*} - */ - getConnectionDataCacheKey(sourceName, targetName){ - let key = false; - if(sourceName && targetName){ - // names can be "undefined" in case system is currently on drag/drop - key = [sourceName.toLowerCase(), targetName.toLowerCase()].sort().join('###'); - } - return key; - } - - /** - * set cache data - * @param cacheType - * @param cacheKey - * @param data - */ - setCacheData(cacheType, cacheKey, data){ - cache[cacheType][cacheKey] = { - data: data, - updated: Util.getServerTime().getTime() / 1000 - }; - } - /** * * @param mapId @@ -1351,6 +1176,12 @@ define([ SystemRouteModule.sortArea = 'b'; // default sortable area SystemRouteModule.position = 1; // default sort/order position within sortable area SystemRouteModule.label = 'Routes'; // static module label (e.g. description) + SystemRouteModule.cacheConfig = { + routes: { + ttl: 5, + maxSize: 100 + } + }; SystemRouteModule.defaultConfig = { className: 'pf-system-route-module', // class for module @@ -1373,8 +1204,6 @@ define([ systemSecurityClassPrefix: 'pf-system-security-', // prefix class for system security level (color) rallyClass: 'pf-rally', // class for "rally point" style - - routeCacheTTL: 5 // route cache timer (client) in seconds }; return SystemRouteModule; diff --git a/public/js/v2.0.0/app/ui/module/system_signature.js b/public/js/v2.0.0/app/ui/module/system_signature.js index 7603c4f5..0253c3d6 100644 --- a/public/js/v2.0.0/app/ui/module/system_signature.js +++ b/public/js/v2.0.0/app/ui/module/system_signature.js @@ -11,9 +11,8 @@ define([ 'app/counter', 'app/map/map', 'app/map/util', - 'app/lib/cache', 'app/ui/form_element' -], ($, Init, Util, BaseModule, bootbox, Counter, Map, MapUtil, Cache, FormElement) => { +], ($, Init, Util, BaseModule, bootbox, Counter, Map, MapUtil, FormElement) => { 'use strict'; let SystemSignatureModule = class SystemSignatureModule extends BaseModule { @@ -32,13 +31,11 @@ define([ /** * get dataTable id - * @param mapId - * @param systemId - * @param tableType + * @param {...string} parts e.g. 'tableType', 'mapId', 'systemId' * @returns {string} */ - getTableId(tableType, mapId, systemId){ - return Util.getTableId(this._config.sigTableId, tableType, mapId, systemId); + getTableId(...parts){ + return Util.getTableId(this._config.sigTableId, ...parts); } /** @@ -1006,8 +1003,14 @@ define([ if(rowData.id){ // delete signature ----------------------------------------------------------------------- let confirmationSettings = { - title: 'Delete signature', - template: Util.getConfirmationTemplate(module.getConfirmationContent(), { + title: '---', + template: Util.getConfirmationTemplate(Util.getConfirmationContent([{ + name: 'deleteConnection', + value: '1', + label: 'delete connection', + class: 'pf-editable-warn', + checked: true + }]), { size: 'small', noTitle: true }), @@ -1882,47 +1885,6 @@ define([ } } - /** - * get HTML for "delete connection" confirmation popover - * @returns {string} - */ - getConfirmationContent(){ - let checkOptions = [{ - name: 'deleteConnection', - value: '1', - label: 'delete connection', - class: 'pf-editable-warn', - checked: true - }]; - - let getChecklist = checkOptions => { - let html = ''; - html += '
'; - html += '
'; - html += '
'; - - for(let option of checkOptions){ - html += '
'; - } - - html += '
'; - html += '
'; - html += '
'; - html += ''; - - return html; - }; - - let html = ''; - html += getChecklist(checkOptions); - - return html; - } - /** * open xEditable input field in "new Signature" table */ @@ -2723,18 +2685,12 @@ define([ return acc; }, Object.assign({}, SystemSignatureModule.emptySignatureReaderCounterData)); - let notification = ''; - if(notificationCounter.added > 0){ - notification += notificationCounter.added + ' added
'; - } - if(notificationCounter.changed > 0){ - notification += notificationCounter.changed + ' updated
'; - } - if(notificationCounter.deleted > 0){ - notification += notificationCounter.deleted + ' deleted
'; - } + let notification = Object.keys(notificationCounter).reduce((acc, key) => { + return `${acc}${notificationCounter[key] ? `${notificationCounter[key]} ${key}
` : ''}`; + }, ''); + if(notification.length){ - Util.showNotify({title: 'Signatures updated', text: notification, type: 'success'}); + Util.showNotify({title: 'Signatures updated', text: notification, type: 'success', textTrusted: true}); } } @@ -2917,7 +2873,7 @@ define([ let cacheKey = [systemTypeId, ...areaIds, groupId].join('_'); - let newSelectOptions = SystemSignatureModule.sigTypeOptionsCache.get(cacheKey); + let newSelectOptions = SystemSignatureModule.getCache('sigTypeOptions').get(cacheKey); // check for cached signature names if(Array.isArray(newSelectOptions)){ @@ -3014,7 +2970,7 @@ define([ } // update cache (clone array) -> further manipulation to this array, should not be cached - SystemSignatureModule.sigTypeOptionsCache.set(cacheKey, newSelectOptions.slice(0)); + SystemSignatureModule.getCache('sigTypeOptions').set(cacheKey, newSelectOptions.slice(0)); } // static wormholes (DO NOT CACHE) (not all C2 WHs have the same statics..) @@ -3120,13 +3076,12 @@ define([ SystemSignatureModule.position = 4; // default sort/order position within sortable area SystemSignatureModule.label = 'Signatures'; // static module label (e.g. description) SystemSignatureModule.fullDataUpdate = true; // static module requires additional data (e.g. system description,...) - - SystemSignatureModule.sigTypeOptionsCache = new Cache({ // cache signature names - name: 'sigTypeOptions', - ttl: 60 * 5, - maxSize: 100, - debug: false - }); + SystemSignatureModule.cacheConfig = { + sigTypeOptions: { // cache signature names + ttl: 60 * 5, + maxSize: 100 + } + }; SystemSignatureModule.validSignatureNames = [ // allowed signature type/names 'Cosmic Anomaly', diff --git a/public/js/v2.0.0/app/util.js b/public/js/v2.0.0/app/util.js index ee5fc1a0..442db7e0 100644 --- a/public/js/v2.0.0/app/util.js +++ b/public/js/v2.0.0/app/util.js @@ -6,6 +6,7 @@ define([ 'app/init', 'app/lib/prototypes', 'app/lib/console', + 'app/lib/cache', 'app/lib/localStore', 'conf/system_effect', 'conf/signature_type', @@ -20,7 +21,7 @@ define([ 'bootstrapConfirmation', 'bootstrapToggle', 'select2' -], ($, Init, Proto, Con, LocalStoreManager, SystemEffect, SignatureType, bootbox) => { +], ($, Init, Proto, Con, Cache, LocalStoreManager, SystemEffect, SignatureType, bootbox) => { 'use strict'; @@ -102,8 +103,17 @@ define([ localStoreNames: ['default', 'character', 'map', 'module'] // Allowed name identifiers for DB names }; - let stopTimerCache = {}; // cache for stopwatch timer + let currentSystemDataCache = new Cache({ + name: 'currentSystemData', + ttl: -1, + maxSize: 20 + }); + // browser tab blink + let initialPageTitle = document.title; // initial page title (cached) + let blinkTimer; // global blink timeout cache + + let stopTimerCache = {}; // cache for stopwatch timer let animationTimerCache = {}; // cache for table row animation timeout /* @@ -402,22 +412,57 @@ define([ $.fn.initMapUpdateCounter = function(){ let counterChart = $(this); - counterChart.easyPieChart({ - barColor: function(percent){ - let color = '#568a89'; - if(percent <= 30){ - color = '#d9534f'; - }else if(percent <= 50){ - color = '#f0ad4e'; - } + let gradient = [ + [0, [217,83,79]], + [10, [217,83,79]], + [50, [240, 173, 78]], + [75, [79,158,79]], + [100, [86, 138, 137]] + ]; - return color; - }, + let gradientWidth = 500; + + let getColor = percent => { + percent = percent || 1; + let colorRangeEnd = gradient.findIndex(value => percent <= value[0]); + let colorRange = [colorRangeEnd - 1, colorRangeEnd]; + + //Get the two closest colors + let colorFirst = gradient[colorRange[0]][1]; + let colorSecond = gradient[colorRange[1]][1]; + + //Calculate ratio between the two closest colors + let colorFirstX = gradientWidth * (gradient[colorRange[0]][0] / 100); + let colorSecondX = gradientWidth * (gradient[colorRange[1]][0] / 100) - colorFirstX; + let weightX = gradientWidth * (percent / 100) - colorFirstX; + let weight = weightX / colorSecondX; + + //Get the color with pickHex(thx, less.js's mix function!) + let result = pickHex(colorSecond, colorFirst, weight); + return `rgb(${result.join()})`; + }; + + let pickHex = (color1, color2, weight) => { + let w1 = weight; + let w2 = 1 - w1; + return [Math.round(color1[0] * w1 + color2[0] * w2), + Math.round(color1[1] * w1 + color2[1] * w2), + Math.round(color1[2] * w1 + color2[2] * w2)]; + }; + + counterChart.easyPieChart({ + barColor: percent => getColor(Number(Number(percent).toFixed(1))), trackColor: '#2b2b2b', size: 30, scaleColor: false, lineWidth: 2, - animate: 1000 + animate: { + duration: 550, + enabled: true + }, + easing: function (x, t, b, c, d) { // easeInOutSine - jQuery Easing + return -c/2 * (Math.cos(Math.PI*t/d) - 1) + b; + } }); }; @@ -1172,6 +1217,39 @@ define([ return html; }; + /** + * get HTML for "delete connection" confirmation popover + * @returns {string} + */ + let getConfirmationContent = checkOptions => { + let getChecklist = checkOptions => { + let html = ''; + html += '
'; + html += '
'; + html += '
'; + + for(let option of checkOptions){ + html += '
'; + } + + html += '
'; + html += '
'; + html += '
'; + html += ''; + + return html; + }; + + let html = ''; + html += getChecklist(checkOptions); + + return html; + }; + /** * convert XEditable Select
").attr("colspan",this._colspan()).append(b))).addClass(this.c.className).addClass(g).addClass("dtrg-level-"+c)}});h.defaults={className:"dtrg-group",dataSrc:0,emptyDataGroup:"No group",enable:!0,endClassName:"dtrg-end",endRender:null,startClassName:"dtrg-start",startRender:function(b,a){return a}};h.version="1.1.1";a.fn.dataTable.RowGroup=h;a.fn.DataTable.RowGroup= + h;f.Api.register("rowGroup()",function(){return this});f.Api.register("rowGroup().disable()",function(){return this.iterator("table",function(a){a.rowGroup&&a.rowGroup.enable(!1)})});f.Api.register("rowGroup().enable()",function(a){return this.iterator("table",function(b){b.rowGroup&&b.rowGroup.enable(a===e?!0:a)})});f.Api.register("rowGroup().dataSrc()",function(a){return a===e?this.context[0].rowGroup.dataSrc():this.iterator("table",function(b){b.rowGroup&&b.rowGroup.dataSrc(a)})});a(c).on("preInit.dt.dtrg", + function(b,c,d){"dt"===b.namespace&&(b=c.oInit.rowGroup,d=f.defaults.rowGroup,b||d)&&(d=a.extend({},d,b),!1!==b&&new h(c,d))});return h}); diff --git a/public/js/v2.0.0/lib/pnotify/PNotify.js b/public/js/v2.0.0/lib/pnotify/PNotify.js index c5028cea..d5db1ca1 100644 --- a/public/js/v2.0.0/lib/pnotify/PNotify.js +++ b/public/js/v2.0.0/lib/pnotify/PNotify.js @@ -2036,5 +2036,4 @@ var _typeof = typeof Symbol === "function" && typeof Symbol.iterator === "symbol function noop() {} return PNotify_1; -}); -//# sourceMappingURL=PNotify.js.map \ No newline at end of file +}); \ No newline at end of file diff --git a/public/js/v2.0.0/lib/pnotify/PNotifyButtons.js b/public/js/v2.0.0/lib/pnotify/PNotifyButtons.js index 89935eaa..dae828a1 100644 --- a/public/js/v2.0.0/lib/pnotify/PNotifyButtons.js +++ b/public/js/v2.0.0/lib/pnotify/PNotifyButtons.js @@ -557,5 +557,4 @@ var _typeof = typeof Symbol === "function" && typeof Symbol.iterator === "symbol function noop() {} return PNotifyButtons; -}); -//# sourceMappingURL=PNotifyButtons.js.map \ No newline at end of file +}); \ No newline at end of file diff --git a/public/js/v2.0.0/lib/pnotify/PNotifyCallbacks.js b/public/js/v2.0.0/lib/pnotify/PNotifyCallbacks.js index c00e0412..38651c88 100644 --- a/public/js/v2.0.0/lib/pnotify/PNotifyCallbacks.js +++ b/public/js/v2.0.0/lib/pnotify/PNotifyCallbacks.js @@ -253,5 +253,4 @@ var _typeof = typeof Symbol === "function" && typeof Symbol.iterator === "symbol } return PNotifyCallbacks; -}); -//# sourceMappingURL=PNotifyCallbacks.js.map \ No newline at end of file +}); \ No newline at end of file diff --git a/public/js/v2.0.0/lib/pnotify/PNotifyDesktop.js b/public/js/v2.0.0/lib/pnotify/PNotifyDesktop.js index bd3c544c..baf91d65 100644 --- a/public/js/v2.0.0/lib/pnotify/PNotifyDesktop.js +++ b/public/js/v2.0.0/lib/pnotify/PNotifyDesktop.js @@ -460,5 +460,4 @@ var _typeof = typeof Symbol === "function" && typeof Symbol.iterator === "symbol } return PNotifyDesktop; -}); -//# sourceMappingURL=PNotifyDesktop.js.map \ No newline at end of file +}); \ No newline at end of file diff --git a/sass/layout/_main.scss b/sass/layout/_main.scss index a144550a..e334999e 100644 --- a/sass/layout/_main.scss +++ b/sass/layout/_main.scss @@ -233,11 +233,14 @@ em, } .pf-module-icon-button{ - position: relative; // for absolut positioned [data-badge]:after elements cursor: pointer; color: $gray-light; // overwrite xEditable button style @include transition(color 0.15s ease-out); + &.fas { + position: relative; // for absolute positioned [data-badge]:after elements + } + &:hover, &.active{ color: $orange !important; } @@ -336,13 +339,13 @@ em, grid-template-columns: repeat(2, auto); align-items: end; - > div:nth-child(7) { - grid-column: span 2; - } + > .pf-editable-headline { + grid-column: 1; - > div:nth-child(1), > div:nth-child(8) { &:before { + content: attr(data-headline); display: block; + text-transform: capitalize; font-weight: bold; line-height: 18px; margin-bottom: 5px; @@ -350,17 +353,9 @@ em, color: lighten($gray-light, 10%); padding-left: 25px; } - } - > div:nth-child(1) { - &:before { - content: 'Modules'; - } - } - - > div:nth-child(8) { - &:before { - content: 'Plugins'; + + .pf-editable-headline[data-count='1'] { + grid-column: 2; } } } @@ -381,7 +376,7 @@ em, justify-content: space-between; align-items: center; - .pf-editable-toggle-item{ + .pf-editable-toggle-item { @extend %pf-bg-image-wrapper; width: 98px; height: 68px; @@ -400,6 +395,10 @@ em, &:hover { background-color: $teal-lighter; } + + + .fas { + margin: 0 10px; + } } } } @@ -598,7 +597,7 @@ select:active, select:hover { cursor: pointer; } - &:focus, &.editable-open{ + &:focus, &.editable-open, &.cellHighlight { // set td as :focus even is td content is focused outline: 1px solid $orange-dark; outline-offset: -1px; @@ -613,6 +612,10 @@ select:active, select:hover { font-size: 80%; } + > .pf-fake-connection { + height: 3px; + } + &.pf-table-link-cell{ cursor: pointer; @extend .txt-color; @@ -627,6 +630,10 @@ select:active, select:hover { &.pf-table-action-cell{ cursor: pointer; + > .fas { + pointer-events: none; // event listeners are on parent -> ignore icon in e.target + } + // icon within cell content that should be highlighted on hover > .pf-table-action-icon-cell{ @extend .txt-color; @@ -1215,6 +1222,9 @@ table{ // system security level ========================================================================== .pf-system-sec{ + display: inline-block; // fixed "blurry" text in scaled parent + transform: translateY(0); // s.o. + -webkit-font-smoothing: antialiased; // s.o. margin-right: 5px; cursor: -moz-grab; cursor: -webkit-grab; @@ -1452,7 +1462,7 @@ table{ color: $gray-lighter; padding: 1px 2px; position: absolute; - left: calc(50% - 7px); + left: calc(50% - 12px); top: -5px; font-family: Arial, sans-serif; font-size: 11px; diff --git a/sass/layout/_map.scss b/sass/layout/_map.scss index 2a8550f5..7855c1a2 100644 --- a/sass/layout/_map.scss +++ b/sass/layout/_map.scss @@ -33,7 +33,7 @@ $mapBubbleWidth: 30px; right: $mapOverlayRight; bottom: $mapOverlayBottom; width: 36px; - height: 38px; + height: 36px; } &.pf-map-overlay-zoom{ @@ -253,19 +253,40 @@ $mapBubbleWidth: 30px; } // jsPlumb classes ================================================================================================== + // gets applied to system that is currently being dragged .jtk-drag{ @extend .pf-system-selected; } + // gets applied to "endpoints", "overlays" and ´s if is hovered .jtk-hover:not(.jtk-overlay){ @include bounce-up-down; // label should not bounce } + // gets applied to source/target (system) if or endpoint is hovered .jtk-source-hover, .jtk-target-hover{ @include bounce-up-down; @include box-shadow(0 6px 12px rgba(0,0,0,.3)); } + // gets applied to *all* systems that are target for a drop of current element + .jtk-drag-active{ + @include transition(box-shadow 0.12s ease-out, transform 0.08s ease-out !important); + + } + + // gets applied to any drop target over which the current element is hovering. + // When the mouse is released the element having this class will be the recipient of an on drop event + .jtk-drag-hover{ + + &.jtk-drag-active{ + // @see .pf-system:hover style. We want the same hover style for systems that are active drop-target + @include box-shadow(0 6px 12px rgba(0,0,0, 0.3)); + @include transform(translate3d(0, -1px, 0) scale(1.1) !important); + } + + } + // ================================================================================================================== .pf-system{ position: absolute; @@ -286,10 +307,10 @@ $mapBubbleWidth: 30px; @include border-radius(5px); // change border color with transition - @include transition( border-color 0.2s ease-out, box-shadow 0.12s ease-out, opacity 0.12s ease-out ); + @include transition( border-color 0.2s ease-out, box-shadow 0.12s ease-out, opacity 0.12s ease-out); @include transform( translate3d(0, 0, 0) ); - &:hover{ + &:not(.jtk-drag-hover):hover{ // makes the systems "flying" :) @include box-shadow(0 6px 12px rgba(0,0,0, 0.3)); @include transform(translate3d(0, -1px, 0) !important); @@ -301,6 +322,7 @@ $mapBubbleWidth: 30px; font-family: Arial, sans-serif; // fix for element width on custom font family font-weight: bold; white-space: nowrap; + backface-visibility: hidden; // fixed blurry text on system scale() -> requires display: inline-block; transform: translateY(0); for child nodes .pf-system-head-name{ border: none; @@ -308,6 +330,8 @@ $mapBubbleWidth: 30px; min-width: 50px; color: $gray-lighter; margin-right: 2px; + -webkit-font-smoothing: antialiased; + transform: translateY(0); // fixed "blurry" text in scaled parent } .pf-system-head-counter{ @@ -325,11 +349,13 @@ $mapBubbleWidth: 30px; .pf-system-effect{ font-size: 11px; + transform: translateY(0); // fixed "blurry" text in scaled parent } .fa-lock{ font-size: 11px; display: none; // triggered by system-lock class + transform: translateY(0); // fixed "blurry" text in scaled parent } .pf-system-head-expand{ @@ -337,6 +363,7 @@ $mapBubbleWidth: 30px; color: $gray-light; width: 10px; display: none; // triggered by JS + transform: translateY(0); // fixed "blurry" text in scaled parent } // overwrites "xEditable" style for empty values @@ -353,6 +380,7 @@ $mapBubbleWidth: 30px; line-height: 10px; padding-right: 1px; // bring right aligned text in line with wh "effect" icon margin-bottom: 2px; + transform: translateY(0); // fixed "blurry" text in scaled parent [class^="pf-system-sec-"]{ cursor: help; diff --git a/sass/layout/_map_module.scss b/sass/layout/_map_module.scss index 0f280fcf..923fa3d5 100644 --- a/sass/layout/_map_module.scss +++ b/sass/layout/_map_module.scss @@ -8,6 +8,7 @@ $mapAreaMinHeight: 300px; $mapAreaMaxHeight: 1000px; // no vertical scrollbar: $mapHeight + 38px; $mapModuleMaxWidth: floor(4 * ($mapWidth + 16) / 3); +$mapModuleGridGap: 10px; $mapModuleGridRowMinHeight: 38px; #pf-map-module { @@ -149,46 +150,49 @@ $mapModuleGridRowMinHeight: 38px; // Tab content grid =================================================================================================== .pf-map-tab-content { display: grid; - grid-gap: 10px; + grid-column-gap: 10px; // "row-gap" is created by margin-top of areas. Because an area could be empty (invisible) grid-template: "map" max-content - "area1" minmax($mapModuleGridRowMinHeight, max-content) - "area2" minmax($mapModuleGridRowMinHeight, max-content) - "area3" minmax($mapModuleGridRowMinHeight, max-content) / + "area1" minmax(0, max-content) + "area2" minmax(0, max-content) + "area3" minmax(0, max-content) / 1fr; @media screen and (min-width: $screen-sm){ grid-template: "map map" max-content - "area1 area1" minmax($mapModuleGridRowMinHeight, min-content) - "area2 area3" minmax($mapModuleGridRowMinHeight, min-content) / + "area1 area1" minmax(0, min-content) + "area2 area3" minmax(0, min-content) / 1fr 1fr; } @media screen and (min-width: $screen-md){ grid-template: "map map map" max-content - "area1 area1 area2" minmax($mapModuleGridRowMinHeight, max-content) - "area1 area1 area3" minmax($mapModuleGridRowMinHeight, 1fr) / + "area1 area1 area2" minmax(0, max-content) + "area1 area1 area3" minmax(0, 1fr) / 1fr 1fr minmax($colMinWidth, 1fr); } @media screen and (min-width: $screen-lg){ grid-template: - "map map map area2" max-content - "area1 area1 area3 area2" minmax($mapModuleGridRowMinHeight, 1fr) / + "map map map area2" minmax(0, max-content) + "area1 area1 area3 area2" minmax(0, max-content) + "area1 area1 area3 area2" minmax(0, 1fr) / 1fr 1fr minmax($colMinWidth, 1fr) minmax($colMinWidth, 1fr); } &.active { - display: grid; + display: grid; // overwrites default display: block; of .tab-content } &-area { position: relative; border-radius: 5px; + min-height: 0; // animated for drop-zone + @include transition(min-height 0.3s ease); &-map { grid-area: map; @@ -232,27 +236,37 @@ $mapModuleGridRowMinHeight: 38px; } } - &-a { - grid-area: area1; + &-a, &-b, &-c { display: grid; grid-gap: 10px; grid-auto-rows: max-content; + + &:not(:empty) { + margin-top: $mapModuleGridGap; + } + } + + &-a { + grid-area: area1; } &-b { grid-area: area2; - display: grid; - grid-gap: 10px; - grid-auto-rows: max-content; + + @media screen and (min-width: $screen-lg){ + margin-top: 0 !important; + } } &-c { grid-area: area3; - display: grid; - grid-gap: 10px; - grid-auto-rows: max-content; } } + + .pf-sortable-dropzone { + margin-top: $mapModuleGridGap; + min-height: $mapModuleGridRowMinHeight; + } } // Module (panel) ===================================================================================================== @@ -313,6 +327,10 @@ $mapModuleGridRowMinHeight: 38px; white-space: nowrap; } + .dataTable { + font-size: 10px; + } + .pf-dynamic-area { background: rgba($gray-darker, 0.4); min-height: initial; diff --git a/sass/layout/_sortable.scss b/sass/layout/_sortable.scss index 6c5df856..07b161c0 100644 --- a/sass/layout/_sortable.scss +++ b/sass/layout/_sortable.scss @@ -51,6 +51,7 @@ border: 1px dashed $teal-dark; border-radius: 5px; border-top-left-radius: 0; + overflow: hidden; z-index: 1; } } \ No newline at end of file diff --git a/sass/layout/module/_all.scss b/sass/layout/module/_all.scss index a55a094c..3210019e 100644 --- a/sass/layout/module/_all.scss +++ b/sass/layout/module/_all.scss @@ -5,4 +5,5 @@ @import "_system_route"; @import "_system_intel"; @import "_system_killboard"; -@import "_connection_info"; \ No newline at end of file +@import "_connection_info"; +@import "_global_thera"; \ No newline at end of file diff --git a/sass/layout/module/_connection_info.scss b/sass/layout/module/_connection_info.scss index deace6c3..9175534f 100644 --- a/sass/layout/module/_connection_info.scss +++ b/sass/layout/module/_connection_info.scss @@ -6,7 +6,6 @@ .pf-connection-info-table { width: 100%; - font-size: 10px; td { .fa-plus { diff --git a/sass/layout/module/_global_thera.scss b/sass/layout/module/_global_thera.scss new file mode 100644 index 00000000..e982fe90 --- /dev/null +++ b/sass/layout/module/_global_thera.scss @@ -0,0 +1,12 @@ +.pf-global-thera-module { + + .pf-global-thera-control { + margin-bottom: 10px; + } + + .pf-global-thera-table { + .pf-fake-connection { + width: 100%; + } + } +} \ No newline at end of file diff --git a/sass/layout/module/_system_intel.scss b/sass/layout/module/_system_intel.scss index 02ae4d7a..5b54e667 100644 --- a/sass/layout/module/_system_intel.scss +++ b/sass/layout/module/_system_intel.scss @@ -1,10 +1,5 @@ .pf-system-intel-module { - .pf-system-station-table, - .pf-system-structure-table { - font-size: 10px; - } - .pf-module-head:not(:first-child) { margin-top: 15px; margin-bottom: 5px; diff --git a/sass/layout/module/_system_route.scss b/sass/layout/module/_system_route.scss index 6d2305ff..5d616c64 100644 --- a/sass/layout/module/_system_route.scss +++ b/sass/layout/module/_system_route.scss @@ -2,7 +2,6 @@ .pf-system-route-table { width: 100%; - font-size: 10px; td { text-transform: capitalize; @@ -14,7 +13,6 @@ .pf-fake-connection { display: none; // toggled by js see .pf-table-jump-cell width: 12px; - height: 3px; cursor: pointer; &[data-disabled] { diff --git a/sass/layout/module/_system_signature.scss b/sass/layout/module/_system_signature.scss index 89cd8cd1..0ca14390 100644 --- a/sass/layout/module/_system_signature.scss +++ b/sass/layout/module/_system_signature.scss @@ -25,8 +25,6 @@ } .pf-sig-table { - font-size: 10px; - // textarea field // overwrite some styles in order to make