add icons for Character groups
266
www/analytics/plugins/UserCountryMap/Controller.php
Normal file
|
|
@ -0,0 +1,266 @@
|
|||
<?php
|
||||
/**
|
||||
* Piwik - Open source web analytics
|
||||
*
|
||||
* @link http://piwik.org
|
||||
* @license http://www.gnu.org/licenses/gpl-3.0.html GPL v3 or later
|
||||
*
|
||||
*/
|
||||
namespace Piwik\Plugins\UserCountryMap;
|
||||
|
||||
use Exception;
|
||||
use Piwik\API\Request;
|
||||
use Piwik\Common;
|
||||
use Piwik\Config;
|
||||
use Piwik\Piwik;
|
||||
use Piwik\Plugins\Goals\API as APIGoals;
|
||||
use Piwik\Site;
|
||||
use Piwik\View;
|
||||
|
||||
/**
|
||||
*
|
||||
*/
|
||||
class Controller extends \Piwik\Plugin\Controller
|
||||
{
|
||||
|
||||
// By default plot up to the last 30 days of visitors on the map, for low traffic sites
|
||||
const REAL_TIME_WINDOW = 'last30';
|
||||
|
||||
public function visitorMap($fetch = false, $segmentOverride = false)
|
||||
{
|
||||
$this->checkUserCountryPluginEnabled();
|
||||
|
||||
$idSite = Common::getRequestVar('idSite', 1, 'int');
|
||||
Piwik::checkUserHasViewAccess($idSite);
|
||||
|
||||
$period = Common::getRequestVar('period');
|
||||
$date = Common::getRequestVar('date');
|
||||
$segment = $segmentOverride ? : Request::getRawSegmentFromRequest() ? : '';
|
||||
$token_auth = Piwik::getCurrentUserTokenAuth();
|
||||
|
||||
$view = new View('@UserCountryMap/visitorMap');
|
||||
|
||||
// request visits summary
|
||||
$request = new Request(
|
||||
'method=VisitsSummary.get&format=PHP'
|
||||
. '&idSite=' . $idSite
|
||||
. '&period=' . $period
|
||||
. '&date=' . $date
|
||||
. '&segment=' . $segment
|
||||
. '&token_auth=' . $token_auth
|
||||
. '&filter_limit=-1'
|
||||
);
|
||||
$config = array();
|
||||
$config['visitsSummary'] = unserialize($request->process());
|
||||
$config['countryDataUrl'] = $this->_report('UserCountry', 'getCountry',
|
||||
$idSite, $period, $date, $token_auth, false, $segment);
|
||||
$config['regionDataUrl'] = $this->_report('UserCountry', 'getRegion',
|
||||
$idSite, $period, $date, $token_auth, true, $segment);
|
||||
$config['cityDataUrl'] = $this->_report('UserCountry', 'getCity',
|
||||
$idSite, $period, $date, $token_auth, true, $segment);
|
||||
$config['countrySummaryUrl'] = $this->getApiRequestUrl('VisitsSummary', 'get',
|
||||
$idSite, $period, $date, $token_auth, true, $segment);
|
||||
$view->defaultMetric = 'nb_visits';
|
||||
|
||||
// some translations
|
||||
$view->localeJSON = Common::json_encode(array(
|
||||
'nb_visits' => Piwik::translate('General_NVisits'),
|
||||
'one_visit' => Piwik::translate('General_OneVisit'),
|
||||
'no_visit' => Piwik::translate('UserCountryMap_NoVisit'),
|
||||
'nb_actions' => Piwik::translate('VisitsSummary_NbActionsDescription'),
|
||||
'nb_actions_per_visit' => Piwik::translate('VisitsSummary_NbActionsPerVisit'),
|
||||
'bounce_rate' => Piwik::translate('VisitsSummary_NbVisitsBounced'),
|
||||
'avg_time_on_site' => Piwik::translate('VisitsSummary_AverageVisitDuration'),
|
||||
'and_n_others' => Piwik::translate('UserCountryMap_AndNOthers'),
|
||||
'no_data' => Piwik::translate('CoreHome_ThereIsNoDataForThisReport'),
|
||||
'nb_uniq_visitors' => Piwik::translate('VisitsSummary_NbUniqueVisitors')
|
||||
));
|
||||
|
||||
$view->reqParamsJSON = $this->getEnrichedRequest($params = array(
|
||||
'period' => $period,
|
||||
'idSite' => $idSite,
|
||||
'date' => $date,
|
||||
'segment' => $segment,
|
||||
'token_auth' => $token_auth,
|
||||
'enable_filter_excludelowpop' => 1,
|
||||
'filter_excludelowpop_value' => -1
|
||||
));
|
||||
|
||||
$view->metrics = $config['metrics'] = $this->getMetrics($idSite, $period, $date, $token_auth);
|
||||
$config['svgBasePath'] = 'plugins/UserCountryMap/svg/';
|
||||
$config['mapCssPath'] = 'plugins/UserCountryMap/stylesheets/map.css';
|
||||
$view->config = Common::json_encode($config);
|
||||
$view->noData = empty($config['visitsSummary']['nb_visits']);
|
||||
|
||||
return $view->render();
|
||||
}
|
||||
|
||||
/**
|
||||
* Used to build the report Visitor > Real time map
|
||||
*/
|
||||
public function realtimeWorldMap()
|
||||
{
|
||||
return $this->realtimeMap($standalone = true);
|
||||
}
|
||||
|
||||
/**
|
||||
* @param bool $standalone When set to true, the Top controls will be hidden to provide better full screen view
|
||||
* @param bool $fetch
|
||||
* @param bool|string $segmentOverride
|
||||
*
|
||||
* @return string
|
||||
*/
|
||||
public function realtimeMap($standalone = false, $fetch = false, $segmentOverride = false)
|
||||
{
|
||||
$this->checkUserCountryPluginEnabled();
|
||||
|
||||
$idSite = Common::getRequestVar('idSite', 1, 'int');
|
||||
Piwik::checkUserHasViewAccess($idSite);
|
||||
|
||||
$token_auth = Piwik::getCurrentUserTokenAuth();
|
||||
$view = new View('@UserCountryMap/realtimeMap');
|
||||
|
||||
$view->mapIsStandaloneNotWidget = $standalone;
|
||||
|
||||
$view->metrics = $this->getMetrics($idSite, 'range', self::REAL_TIME_WINDOW, $token_auth);
|
||||
$view->defaultMetric = 'nb_visits';
|
||||
$liveRefreshAfterMs = (int)Config::getInstance()->General['live_widget_refresh_after_seconds'] * 1000;
|
||||
|
||||
$goals = APIGoals::getInstance()->getGoals($idSite);
|
||||
$site = new Site($idSite);
|
||||
$hasGoals = !empty($goals) || $site->isEcommerceEnabled();
|
||||
|
||||
// maximum number of visits to be displayed in the map
|
||||
$maxVisits = Common::getRequestVar('filter_limit', 100, 'int');
|
||||
|
||||
// some translations
|
||||
$locale = array(
|
||||
'nb_actions' => Piwik::translate('VisitsSummary_NbActionsDescription'),
|
||||
'local_time' => Piwik::translate('VisitTime_ColumnLocalTime'),
|
||||
'from' => Piwik::translate('General_FromReferrer'),
|
||||
'seconds' => Piwik::translate('UserCountryMap_Seconds'),
|
||||
'seconds_ago' => Piwik::translate('UserCountryMap_SecondsAgo'),
|
||||
'minutes' => Piwik::translate('UserCountryMap_Minutes'),
|
||||
'minutes_ago' => Piwik::translate('UserCountryMap_MinutesAgo'),
|
||||
'hours' => Piwik::translate('UserCountryMap_Hours'),
|
||||
'hours_ago' => Piwik::translate('UserCountryMap_HoursAgo'),
|
||||
'days_ago' => Piwik::translate('UserCountryMap_DaysAgo'),
|
||||
'actions' => Piwik::translate('VisitsSummary_NbPageviewsDescription'),
|
||||
'searches' => Piwik::translate('UserCountryMap_Searches'),
|
||||
'goal_conversions' => Piwik::translate('UserCountryMap_GoalConversions'),
|
||||
);
|
||||
|
||||
$segment = $segmentOverride ? : Request::getRawSegmentFromRequest() ? : '';
|
||||
$params = array(
|
||||
'period' => 'range',
|
||||
'idSite' => $idSite,
|
||||
'segment' => $segment,
|
||||
'token_auth' => $token_auth,
|
||||
);
|
||||
|
||||
$realtimeWindow = Common::getRequestVar('realtimeWindow', self::REAL_TIME_WINDOW, 'string');
|
||||
if ($realtimeWindow != 'false') { // handle special value
|
||||
$params['date'] = $realtimeWindow;
|
||||
}
|
||||
|
||||
$reqParams = $this->getEnrichedRequest($params, $encode = false);
|
||||
|
||||
$view->config = array(
|
||||
'metrics' => array(),
|
||||
'svgBasePath' => $view->piwikUrl . 'plugins/UserCountryMap/svg/',
|
||||
'liveRefreshAfterMs' => $liveRefreshAfterMs,
|
||||
'_' => $locale,
|
||||
'reqParams' => $reqParams,
|
||||
'siteHasGoals' => $hasGoals,
|
||||
'maxVisits' => $maxVisits,
|
||||
'changeVisitAlpha' => Common::getRequestVar('changeVisitAlpha', true, 'int'),
|
||||
'removeOldVisits' => Common::getRequestVar('removeOldVisits', true, 'int'),
|
||||
'showFooterMessage' => Common::getRequestVar('showFooterMessage', true, 'int'),
|
||||
'showDateTime' => Common::getRequestVar('showDateTime', true, 'int'),
|
||||
'doNotRefreshVisits' => Common::getRequestVar('doNotRefreshVisits', false, 'int'),
|
||||
'enableAnimation' => Common::getRequestVar('enableAnimation', true, 'int'),
|
||||
'forceNowValue' => Common::getRequestVar('forceNowValue', false, 'int')
|
||||
);
|
||||
|
||||
return $view->render();
|
||||
}
|
||||
|
||||
private function getEnrichedRequest($params, $encode = true)
|
||||
{
|
||||
$params['format'] = 'json';
|
||||
$params['showRawMetrics'] = 1;
|
||||
if (empty($params['segment'])) {
|
||||
$segment = \Piwik\API\Request::getRawSegmentFromRequest();
|
||||
if (!empty($segment)) {
|
||||
$params['segment'] = urldecode($segment);
|
||||
}
|
||||
}
|
||||
|
||||
if ($encode) {
|
||||
$params = Common::json_encode($params);
|
||||
}
|
||||
return $params;
|
||||
}
|
||||
|
||||
private function checkUserCountryPluginEnabled()
|
||||
{
|
||||
if (!\Piwik\Plugin\Manager::getInstance()->isPluginActivated('UserCountry')) {
|
||||
throw new Exception(Piwik::translate('General_Required', 'Plugin UserCountry'));
|
||||
}
|
||||
}
|
||||
|
||||
private function getMetrics($idSite, $period, $date, $token_auth)
|
||||
{
|
||||
$request = new Request(
|
||||
'method=API.getMetadata&format=PHP'
|
||||
. '&apiModule=UserCountry&apiAction=getCountry'
|
||||
. '&idSite=' . $idSite
|
||||
. '&period=' . $period
|
||||
. '&date=' . $date
|
||||
. '&token_auth=' . $token_auth
|
||||
. '&filter_limit=-1'
|
||||
);
|
||||
$metaData = $request->process();
|
||||
|
||||
$metrics = array();
|
||||
foreach ($metaData[0]['metrics'] as $id => $val) {
|
||||
if (Common::getRequestVar('period') == 'day' || $id != 'nb_uniq_visitors') {
|
||||
$metrics[] = array($id, $val);
|
||||
}
|
||||
}
|
||||
foreach ($metaData[0]['processedMetrics'] as $id => $val) {
|
||||
$metrics[] = array($id, $val);
|
||||
}
|
||||
return $metrics;
|
||||
}
|
||||
|
||||
private function getApiRequestUrl($module, $action, $idSite, $period, $date, $token_auth, $filter_by_country = false, $segmentOverride = false)
|
||||
{
|
||||
// use processed reports
|
||||
$url = "?module=" . $module
|
||||
. "&method=" . $module . "." . $action . "&format=JSON"
|
||||
. "&idSite=" . $idSite
|
||||
. "&period=" . $period
|
||||
. "&date=" . $date
|
||||
. "&token_auth=" . $token_auth
|
||||
. "&segment=" . ($segmentOverride ? : Request::getRawSegmentFromRequest())
|
||||
. "&enable_filter_excludelowpop=1"
|
||||
. "&showRawMetrics=1";
|
||||
|
||||
if ($filter_by_country) {
|
||||
$url .= "&filter_column=country"
|
||||
. "&filter_sort_column=nb_visits"
|
||||
. "&filter_limit=-1"
|
||||
. "&filter_pattern=";
|
||||
} else {
|
||||
$url .= "&filter_limit=-1";
|
||||
}
|
||||
return $url;
|
||||
}
|
||||
|
||||
private function _report($module, $action, $idSite, $period, $date, $token_auth, $filter_by_country = false, $segmentOverride = false)
|
||||
{
|
||||
return $this->getApiRequestUrl('API', 'getProcessedReport&apiModule=' . $module . '&apiAction=' . $action,
|
||||
$idSite, $period, $date, $token_auth, $filter_by_country, $segmentOverride);
|
||||
}
|
||||
}
|
||||
81
www/analytics/plugins/UserCountryMap/UserCountryMap.php
Normal file
|
|
@ -0,0 +1,81 @@
|
|||
<?php
|
||||
/**
|
||||
* Piwik - Open source web analytics
|
||||
*
|
||||
* @link http://piwik.org
|
||||
* @license http://www.gnu.org/licenses/gpl-3.0.html GPL v3 or later
|
||||
*
|
||||
*/
|
||||
namespace Piwik\Plugins\UserCountryMap;
|
||||
|
||||
use Piwik\FrontController;
|
||||
use Piwik\Menu\MenuMain;
|
||||
use Piwik\Piwik;
|
||||
use Piwik\Version;
|
||||
use Piwik\WidgetsList;
|
||||
|
||||
/**
|
||||
*/
|
||||
class UserCountryMap extends \Piwik\Plugin
|
||||
{
|
||||
/**
|
||||
* @see Piwik\Plugin::getInformation
|
||||
*/
|
||||
public function getInformation()
|
||||
{
|
||||
return array(
|
||||
'name' => 'User Country Map',
|
||||
'description' => 'This plugin provides the widgets Visitor Map and Real-time Map. Note: Requires the UserCountry plugin enabled.',
|
||||
'authors' => array(array('name' => 'Piwik', 'homepage' => 'http://piwik.org/')),
|
||||
'version' => Version::VERSION,
|
||||
'license' => 'GPL v3+',
|
||||
'license_homepage' => 'http://www.gnu.org/licenses/gpl.html'
|
||||
);
|
||||
}
|
||||
|
||||
public function postLoad()
|
||||
{
|
||||
WidgetsList::add('General_Visitors', Piwik::translate('UserCountryMap_VisitorMap'), 'UserCountryMap', 'visitorMap');
|
||||
WidgetsList::add('Live!', Piwik::translate('UserCountryMap_RealTimeMap'), 'UserCountryMap', 'realtimeMap');
|
||||
|
||||
Piwik::addAction('Template.leftColumnUserCountry', array('Piwik\Plugins\UserCountryMap\UserCountryMap', 'insertMapInLocationReport'));
|
||||
}
|
||||
|
||||
static public function insertMapInLocationReport(&$out)
|
||||
{
|
||||
$out = '<h2>' . Piwik::translate('UserCountryMap_VisitorMap') . '</h2>';
|
||||
$out .= FrontController::getInstance()->fetchDispatch('UserCountryMap', 'visitorMap');
|
||||
}
|
||||
|
||||
public function getListHooksRegistered()
|
||||
{
|
||||
$hooks = array(
|
||||
'AssetManager.getJavaScriptFiles' => 'getJsFiles',
|
||||
'AssetManager.getStylesheetFiles' => 'getStylesheetFiles',
|
||||
'Menu.Reporting.addItems' => 'addMenu'
|
||||
);
|
||||
return $hooks;
|
||||
}
|
||||
|
||||
public function addMenu()
|
||||
{
|
||||
MenuMain::getInstance()->add('General_Visitors', 'UserCountryMap_RealTimeMap',
|
||||
array('module' => 'UserCountryMap', 'action' => 'realtimeWorldMap'), true, $order = 70);
|
||||
}
|
||||
|
||||
public function getJsFiles(&$jsFiles)
|
||||
{
|
||||
$jsFiles[] = "plugins/UserCountryMap/javascripts/vendor/raphael.min.js";
|
||||
$jsFiles[] = "plugins/UserCountryMap/javascripts/vendor/jquery.qtip.min.js";
|
||||
$jsFiles[] = "plugins/UserCountryMap/javascripts/vendor/kartograph.min.js";
|
||||
$jsFiles[] = "plugins/UserCountryMap/javascripts/vendor/chroma.min.js";
|
||||
$jsFiles[] = "plugins/UserCountryMap/javascripts/visitor-map.js";
|
||||
$jsFiles[] = "plugins/UserCountryMap/javascripts/realtime-map.js";
|
||||
}
|
||||
|
||||
public function getStylesheetFiles(&$stylesheets)
|
||||
{
|
||||
$stylesheets[] = "plugins/UserCountryMap/stylesheets/visitor-map.less";
|
||||
$stylesheets[] = "plugins/UserCountryMap/stylesheets/realtime-map.less";
|
||||
}
|
||||
}
|
||||
BIN
www/analytics/plugins/UserCountryMap/images/cities.png
Normal file
|
After Width: | Height: | Size: 267 B |
|
After Width: | Height: | Size: 308 B |
BIN
www/analytics/plugins/UserCountryMap/images/regions.png
Normal file
|
After Width: | Height: | Size: 296 B |
|
After Width: | Height: | Size: 270 B |
640
www/analytics/plugins/UserCountryMap/javascripts/realtime-map.js
Normal file
|
|
@ -0,0 +1,640 @@
|
|||
/*!
|
||||
* Piwik - Web Analytics
|
||||
*
|
||||
* Real time visitors map
|
||||
* Using Kartograph.js http://kartograph.org/
|
||||
*
|
||||
* @link http://piwik.org
|
||||
* @license http://www.gnu.org/licenses/gpl-3.0.html GPL v3 or later
|
||||
*/
|
||||
|
||||
(function () {
|
||||
|
||||
var UIControl = require('piwik/UI').UIControl;
|
||||
|
||||
var RealtimeMap = window.UserCountryMap.RealtimeMap = function (element) {
|
||||
UIControl.call(this, element);
|
||||
this._init();
|
||||
this.run();
|
||||
};
|
||||
|
||||
RealtimeMap.initElements = function () {
|
||||
UIControl.initElements(this, '.RealTimeMap');
|
||||
};
|
||||
|
||||
$.extend(RealtimeMap.prototype, UIControl.prototype, {
|
||||
|
||||
_init: function () {
|
||||
var $element = this.$element;
|
||||
|
||||
this.config = JSON.parse($element.attr('data-config'));
|
||||
|
||||
// If the map is loaded from the menu, do a few tweaks to clean up the display
|
||||
if ($element.attr('data-standalone') == 1) {
|
||||
this._initStandaloneMap();
|
||||
}
|
||||
|
||||
// handle widgetry
|
||||
if ($('#dashboardWidgetsArea').length) {
|
||||
var $widgetContent = $element.closest('.widgetContent');
|
||||
|
||||
var self = this;
|
||||
$widgetContent.on('widget:maximise', function () {
|
||||
self.resize();
|
||||
}).on('widget:minimise', function () {
|
||||
self.resize();
|
||||
});
|
||||
}
|
||||
|
||||
// set unique ID for kartograph map div
|
||||
this.uniqueId = 'RealTimeMap_map-' + this._controlId;
|
||||
$('.RealTimeMap_map', $element).attr('id', this.uniqueId);
|
||||
|
||||
// create the map
|
||||
this.map = Kartograph.map('#' + this.uniqueId);
|
||||
|
||||
$element.focus();
|
||||
},
|
||||
|
||||
_initStandaloneMap: function () {
|
||||
$('.top_controls').hide();
|
||||
$('.Menu--dashboard').on('piwikSwitchPage', function (event, item) {
|
||||
var clickedMenuIsNotMap = ($(item).attr('href').indexOf('module=UserCountryMap&action=realtimeWorldMap') == -1);
|
||||
if (clickedMenuIsNotMap) {
|
||||
$('.top_controls').show();
|
||||
}
|
||||
});
|
||||
$('.realTimeMap_overlay').css('top', '0px');
|
||||
$('.realTimeMap_datetime').css('top', '20px');
|
||||
},
|
||||
|
||||
run: function () {
|
||||
var debug = 0;
|
||||
|
||||
var self = this,
|
||||
config = self.config,
|
||||
_ = config._,
|
||||
map = self.map,
|
||||
main = $('.RealTimeMap_container', this.$element),
|
||||
worldTotalVisits = 0,
|
||||
maxVisits = config.maxVisits || 100,
|
||||
changeVisitAlpha = typeof config.changeVisitAlpha === 'undefined' ? true : config.changeVisitAlpha,
|
||||
removeOldVisits = typeof config.removeOldVisits === 'undefined' ? true : config.removeOldVisits,
|
||||
doNotRefreshVisits = typeof config.doNotRefreshVisits === 'undefined' ? false : config.doNotRefreshVisits,
|
||||
enableAnimation = typeof config.enableAnimation === 'undefined' ? true : config.enableAnimation,
|
||||
forceNowValue = typeof config.forceNowValue === 'undefined' ? false : +config.forceNowValue,
|
||||
width = main.width(),
|
||||
lastTimestamp = -1,
|
||||
lastVisits = [],
|
||||
visitSymbols,
|
||||
tokenAuth = '' + config.reqParams.token_auth,
|
||||
oldest,
|
||||
isFullscreenWidget = $('.widget').parent().get(0) == document.body,
|
||||
now,
|
||||
nextReqTimer,
|
||||
symbolFadeInTimer = [],
|
||||
colorMode = 'default',
|
||||
currentMap = 'world',
|
||||
yesterday = false,
|
||||
colorManager = piwik.ColorManager,
|
||||
colors = colorManager.getColors('realtime-map', ['white-bg', 'white-fill', 'black-bg', 'black-fill', 'visit-stroke',
|
||||
'website-referrer-color', 'direct-referrer-color', 'search-referrer-color',
|
||||
'live-widget-highlight', 'live-widget-unhighlight', 'symbol-animate-fill']),
|
||||
currentTheme = 'white',
|
||||
colorTheme = {
|
||||
white: {
|
||||
bg: colors['white-bg'],
|
||||
fill: colors['white-fill']
|
||||
},
|
||||
black: {
|
||||
bg: colors['black-bg'],
|
||||
fill: colors['black-fill']
|
||||
}
|
||||
},
|
||||
visitStrokeColor = colors['visit-stroke'],
|
||||
referrerColorWebsite = colors['referrer-color-website'],
|
||||
referrerColorDirect = colors['referrer-color-direct'],
|
||||
referrerColorSearch = colors['referrer-color-search'],
|
||||
liveWidgetHighlightColor = colors['live-widget-highlight'],
|
||||
liveWidgetUnhighlightColor = colors['live-widget-unhighlight'],
|
||||
symbolAnimateFill = colors['symbol-animate-fill']
|
||||
;
|
||||
|
||||
self.widget = $('#widgetRealTimeMaprealtimeMap').parent();
|
||||
|
||||
var preset = self.widget.dashboardWidget('getWidgetObject').parameters;
|
||||
if (preset) {
|
||||
currentTheme = preset.colorTheme;
|
||||
colorMode = preset.colorMode;
|
||||
currentMap = preset.lastMap;
|
||||
}
|
||||
|
||||
/*
|
||||
* returns the parameters for API calls, extended from
|
||||
* self.reqParams which is set in template
|
||||
*/
|
||||
function _reportParams(firstRun) {
|
||||
return $.extend(config.reqParams, {
|
||||
module: 'API',
|
||||
method: 'Live.getLastVisitsDetails',
|
||||
filter_limit: maxVisits,
|
||||
showColumns: ['latitude', 'longitude', 'actions', 'lastActionTimestamp',
|
||||
'visitLocalTime', 'city', 'country', 'referrerType', 'referrerName',
|
||||
'referrerTypeName', 'browserIcon', 'operatingSystemIcon',
|
||||
'countryFlag', 'idVisit', 'actionDetails', 'continentCode',
|
||||
'actions', 'searches', 'goalConversions', 'visitorId'].join(','),
|
||||
minTimestamp: firstRun ? -1 : lastTimestamp
|
||||
});
|
||||
}
|
||||
|
||||
/*
|
||||
* wrapper around jQuery.ajax, moves token_auth parameter
|
||||
* to POST data while keeping other parameters as GET
|
||||
*/
|
||||
function ajax(params) {
|
||||
delete params['token_auth'];
|
||||
return $.ajax({
|
||||
url: 'index.php?' + $.param(params),
|
||||
dataType: 'json',
|
||||
data: { token_auth: tokenAuth },
|
||||
type: 'POST'
|
||||
});
|
||||
}
|
||||
|
||||
/*
|
||||
* updateMap is called by renderCountryMap() and renderWorldMap()
|
||||
*/
|
||||
function _updateMap(svgUrl, callback) {
|
||||
if (svgUrl === undefined) return;
|
||||
map.loadMap(config.svgBasePath + svgUrl, function () {
|
||||
map.clear();
|
||||
self.resize();
|
||||
callback();
|
||||
$('.ui-tooltip').remove(); // remove all existing tooltips
|
||||
}, { padding: -3});
|
||||
}
|
||||
|
||||
/*
|
||||
* to ensure that onResize is not called a hundred times
|
||||
* while resizing the browser window, this functions
|
||||
* makes sure to only call onResize at the end
|
||||
*/
|
||||
function onResizeLazy() {
|
||||
clearTimeout(self._resizeTimer);
|
||||
self._resizeTimer = setTimeout(self.resize.bind(self), 300);
|
||||
}
|
||||
|
||||
/*
|
||||
* returns value betwddn 0..1, where 1 means that the
|
||||
* visit is fresh, and 0 means the visit is almost gone
|
||||
* from the map
|
||||
*/
|
||||
function age(r) {
|
||||
var nowSecs = Math.floor(now);
|
||||
var o = (r.lastActionTimestamp - oldest) / (nowSecs - oldest);
|
||||
return Math.min(1, Math.max(0, o));
|
||||
}
|
||||
|
||||
function relativeTime(ds) {
|
||||
var val = function (val) { return '<strong>' + Math.round(val) + '</strong>'; };
|
||||
return (ds < 90 ? _.seconds_ago.replace('%s', val(ds))
|
||||
: ds < 5400 ? _.minutes_ago.replace('%s', val(ds / 60))
|
||||
: ds < 129600 ? _.hours_ago.replace('%s', val(ds / 3600))
|
||||
: _.days_ago.replace('%s', val(ds / 86400)));
|
||||
}
|
||||
|
||||
/*
|
||||
* returns the content of the tooltip displayed for each
|
||||
* visitor on the map
|
||||
*/
|
||||
function visitTooltip(r) {
|
||||
var ds = new Date().getTime() / 1000 - r.lastActionTimestamp,
|
||||
ad = r.actionDetails,
|
||||
ico = function (src) { return '<img src="' + src + '" alt="" class="icon" /> '; };
|
||||
return '<h3>' + (r.city ? r.city + ' / ' : '') + r.country + '</h3>' +
|
||||
// icons
|
||||
ico(r.countryFlag) + ico(r.browserIcon) + ico(r.operatingSystemIcon) + '<br/>' +
|
||||
// last action
|
||||
(ad && ad.length && ad[ad.length - 1].pageTitle ? '<em>' + ad[ad.length - 1].pageTitle + '</em><br/>' : '') +
|
||||
// time of visit
|
||||
'<div class="rel-time" data-actiontime="' + r.lastActionTimestamp + '">' + relativeTime(ds) + '</div>' +
|
||||
// either from or direct
|
||||
(r.referrerType == "direct" ? r.referrerTypeName :
|
||||
_.from + ': ' + r.referrerName) + '<br />' +
|
||||
// local time
|
||||
'<small>' + _.local_time + ': ' + r.visitLocalTime + '</small><br />' +
|
||||
// goals, if available
|
||||
(self.config.siteHasGoals && r.goalConversions ? '<small>' + _.goal_conversions.replace('%s', '<strong>' + r.goalConversions + '</strong>') +
|
||||
(r.searches > 0 ? ', ' + _.searches.replace('%s', r.searches) : '') + '</small><br />' : '') +
|
||||
// actions and searches
|
||||
'<small>' + _.actions.replace('%s', '<strong>' + r.actions + '</strong>') +
|
||||
(r.searches > 0 ? ', ' + _.searches.replace('%s', '<strong>' + r.searches + '</strong>') : '') + '</small>';
|
||||
}
|
||||
|
||||
/*
|
||||
* the radius of the symbol depends on the lastActionTimestamp
|
||||
*/
|
||||
function visitRadius(r) {
|
||||
return Math.pow(age(r), 4) * (self.maxRad - self.minRad) + self.minRad;
|
||||
}
|
||||
|
||||
/*
|
||||
* defines the color of the map symbols.
|
||||
* depends on colorMode, which is set to 'default'
|
||||
* unless you type Shift+Alt+C
|
||||
*/
|
||||
function visitColor(r) {
|
||||
var col,
|
||||
engaged = self.config.siteHasGoals ? r.goalConversions > 0 : r.actions > 4;
|
||||
if (colorMode == 'referrerType') {
|
||||
col = ({
|
||||
website: referrerColorWebsite,
|
||||
direct: referrerColorDirect,
|
||||
search: referrerColorSearch
|
||||
})[r.referrerType];
|
||||
}
|
||||
// defu
|
||||
else col = chroma.hsl(
|
||||
42 * age(r), // hue
|
||||
Math.sqrt(age(r)), // saturation
|
||||
(engaged ? 0.65 : 0.5) - (1 - age(r)) * 0.45 // lightness
|
||||
);
|
||||
return col;
|
||||
}
|
||||
|
||||
/*
|
||||
* attributes of the map symbols
|
||||
*/
|
||||
function visitSymbolAttrs(r) {
|
||||
var result = {
|
||||
fill: visitColor(r).hex(),
|
||||
stroke: visitStrokeColor,
|
||||
'stroke-width': 1 * age(r),
|
||||
r: visitRadius(r),
|
||||
cursor: 'pointer'
|
||||
};
|
||||
if (changeVisitAlpha) {
|
||||
result['fill-opacity'] = Math.pow(age(r), 2) * 0.8 + 0.2;
|
||||
result['stroke-opacity'] = Math.pow(age(r), 1.7) * 0.8 + 0.2;
|
||||
}
|
||||
return result;
|
||||
}
|
||||
|
||||
/*
|
||||
* eventually highlights the row in LiveVisitors widget
|
||||
* that corresponds to a visit on the map
|
||||
*/
|
||||
function highlightVisit(r) {
|
||||
$('#visitsLive').find('li#' + r.idVisit + ' .datetime')
|
||||
.css('background', liveWidgetHighlightColor);
|
||||
}
|
||||
|
||||
/*
|
||||
* removes the highlight after the mouse left
|
||||
* the visit marker on the map
|
||||
*/
|
||||
function unhighlightVisit(r) {
|
||||
$('#visitsLive').find('li#' + r.idVisit + ' .datetime')
|
||||
.css({ background: liveWidgetUnhighlightColor });
|
||||
}
|
||||
|
||||
/*
|
||||
* create a nice popping animation for appearing
|
||||
* visit symbols.
|
||||
*/
|
||||
function animateSymbol(s) {
|
||||
// create a white outline and explode it
|
||||
var c = map.paper.circle().attr(s.path.attrs);
|
||||
c.insertBefore(s.path);
|
||||
c.attr({ fill: false });
|
||||
c.animate({ r: c.attrs.r * 3, 'stroke-width': 7, opacity: 0 }, 2500,
|
||||
'linear', function () { c.remove(); });
|
||||
// ..and pop the bubble itself
|
||||
var col = s.path.attrs.fill,
|
||||
rad = s.path.attrs.r;
|
||||
s.path.show();
|
||||
s.path.attr({ fill: symbolAnimateFill, r: 0.1, opacity: 1 });
|
||||
s.path.animate({ fill: col, r: rad }, 700, 'bounce');
|
||||
|
||||
}
|
||||
|
||||
// default click behavior. if a visit is clicked, the visitor profile is launched,
|
||||
// otherwise zoom in or out.
|
||||
// TODO: visitor profile launching logic should probably be contained in
|
||||
// visitorProfile.js. not sure how to do that, though...
|
||||
this.$element.on('mapClick', function (e, visit, mapPath) {
|
||||
var VisitorProfileControl = require('piwik/UI').VisitorProfileControl;
|
||||
if (visit
|
||||
&& VisitorProfileControl
|
||||
&& !self.$element.closest('.visitor-profile').length
|
||||
) {
|
||||
VisitorProfileControl.showPopover(visit.visitorId);
|
||||
} else {
|
||||
var cont = UserCountryMap.cont2cont[mapPath.data.continentCode];
|
||||
if (cont && cont != currentMap) {
|
||||
updateMap(cont);
|
||||
}
|
||||
}
|
||||
});
|
||||
|
||||
/*
|
||||
* this function requests new data from Live.getLastVisitsDetails
|
||||
* and updates the symbols on the map. Then, it sets a timeout
|
||||
* to call itself after the refresh time set by Piwik
|
||||
*
|
||||
* If firstRun is true, the SymbolGroup is initialized
|
||||
*/
|
||||
function refreshVisits(firstRun) {
|
||||
if (lastTimestamp != -1
|
||||
&& doNotRefreshVisits
|
||||
&& !firstRun
|
||||
) {
|
||||
return;
|
||||
}
|
||||
|
||||
/*
|
||||
* this is called after new visit reports came in
|
||||
*/
|
||||
function gotNewReport(report) {
|
||||
// if the map has been destroyed, do nothing
|
||||
if (!self.map) {
|
||||
return;
|
||||
}
|
||||
|
||||
// successful request, so set timeout for next API call
|
||||
nextReqTimer = setTimeout(refreshVisits, config.liveRefreshAfterMs);
|
||||
|
||||
// hide loading indicator
|
||||
$('.realTimeMap_overlay img').hide();
|
||||
$('.realTimeMap_overlay .loading_data').hide();
|
||||
|
||||
// store current timestamp
|
||||
now = forceNowValue || (new Date().getTime() / 1000);
|
||||
|
||||
if (firstRun) { // if we run this the first time, we initialiize the map symbols
|
||||
visitSymbols = map.addSymbols({
|
||||
data: [],
|
||||
type: Kartograph.Bubble,
|
||||
/*title: function(d) {
|
||||
return visitRadius(d) > 15 && d.actions > 1 ? d.actions : '';
|
||||
},
|
||||
labelattrs: {
|
||||
fill: '#fff',
|
||||
'font-weight': 'bold',
|
||||
'font-size': 11,
|
||||
stroke: false,
|
||||
cursor: 'pointer'
|
||||
},*/
|
||||
sortBy: function (r) { return r.lastActionTimestamp; },
|
||||
radius: visitRadius,
|
||||
location: function (r) { return [r.longitude, r.latitude]; },
|
||||
attrs: visitSymbolAttrs,
|
||||
tooltip: visitTooltip,
|
||||
mouseenter: highlightVisit,
|
||||
mouseleave: unhighlightVisit,
|
||||
click: function (visit, mapPath, evt) {
|
||||
evt.stopPropagation();
|
||||
self.$element.trigger('mapClick', [visit, mapPath]);
|
||||
}
|
||||
});
|
||||
|
||||
// clear existing report
|
||||
lastVisits = [];
|
||||
}
|
||||
|
||||
if (report.length) {
|
||||
// filter results without location
|
||||
report = $.grep(report, function (r) {
|
||||
return r.latitude !== null;
|
||||
});
|
||||
}
|
||||
|
||||
// check wether we got any geolocated visits left
|
||||
if (!report.length) {
|
||||
$('.realTimeMap_overlay .showing_visits_of').hide();
|
||||
$('.realTimeMap_overlay .no_data').show();
|
||||
return;
|
||||
} else {
|
||||
$('.realTimeMap_overlay .showing_visits_of').show();
|
||||
$('.realTimeMap_overlay .no_data').hide();
|
||||
|
||||
if (yesterday === false) {
|
||||
yesterday = report[0].lastActionTimestamp - 24 * 60 * 60;
|
||||
}
|
||||
|
||||
lastVisits = [].concat(report).concat(lastVisits).slice(0, maxVisits);
|
||||
oldest = Math.max(lastVisits[lastVisits.length - 1].lastActionTimestamp, yesterday);
|
||||
|
||||
// let's try a different strategy
|
||||
// remove symbols that are too old
|
||||
var _removed = 0;
|
||||
if (removeOldVisits) {
|
||||
visitSymbols.remove(function (r) {
|
||||
if (r.lastActionTimestamp < oldest) _removed++;
|
||||
return r.lastActionTimestamp < oldest;
|
||||
});
|
||||
}
|
||||
|
||||
// update symbols that remain
|
||||
visitSymbols.update({
|
||||
radius: function (d) { return visitSymbolAttrs(d).r; },
|
||||
attrs: visitSymbolAttrs
|
||||
}, true);
|
||||
|
||||
// add new symbols
|
||||
var newSymbols = [];
|
||||
$.each(report, function (i, r) {
|
||||
newSymbols.push(visitSymbols.add(r));
|
||||
});
|
||||
|
||||
visitSymbols.layout().render();
|
||||
|
||||
if (enableAnimation) {
|
||||
$.each(newSymbols, function (i, s) {
|
||||
if (i > 10) return false;
|
||||
|
||||
s.path.hide(); // hide new symbol at first
|
||||
var t = setTimeout(function () { animateSymbol(s); },
|
||||
1000 * (s.data.lastActionTimestamp - now) + config.liveRefreshAfterMs);
|
||||
symbolFadeInTimer.push(t);
|
||||
});
|
||||
}
|
||||
|
||||
lastTimestamp = report[0].lastActionTimestamp;
|
||||
|
||||
// show
|
||||
var dur = lastTimestamp - oldest, d;
|
||||
if (dur < 60) d = dur + ' ' + _.seconds;
|
||||
else if (dur < 3600) d = Math.ceil(dur / 60) + ' ' + _.minutes;
|
||||
else d = Math.ceil(dur / 3600) + ' ' + _.hours;
|
||||
$('.realTimeMap_timeSpan').html(d);
|
||||
|
||||
}
|
||||
firstRun = false;
|
||||
}
|
||||
|
||||
if (firstRun && lastVisits.length) {
|
||||
// zoom changed, use cached report data
|
||||
gotNewReport(lastVisits.slice());
|
||||
} else {
|
||||
// request API for new data
|
||||
$('.realTimeMap_overlay img').show();
|
||||
ajax(_reportParams(firstRun)).done(gotNewReport);
|
||||
}
|
||||
}
|
||||
|
||||
/*
|
||||
* Set up the base map after loading of the SVG. Adds a single layer
|
||||
* that shows countries in gray with white outlines. Also this is where
|
||||
* the zoom behaviour is initialized.
|
||||
*/
|
||||
function initMap() {
|
||||
$('#widgetRealTimeMapliveMap .loadingPiwik, .RealTimeMap .loadingPiwik').hide();
|
||||
map.addLayer('countries', {
|
||||
styles: {
|
||||
fill: colorTheme[currentTheme].fill,
|
||||
stroke: colorTheme[currentTheme].bg,
|
||||
'stroke-width': 0.2
|
||||
},
|
||||
click: function (d, p, evt) {
|
||||
evt.stopPropagation();
|
||||
if (currentMap != 'world') { // zoom out if zoomed in
|
||||
updateMap('world');
|
||||
} else { // or zoom to continent view otherwise
|
||||
updateMap(UserCountryMap.ISO3toCONT[d.iso]);
|
||||
}
|
||||
},
|
||||
title: function (d) {
|
||||
// return the country name for educational purpose
|
||||
return d.name;
|
||||
}
|
||||
});
|
||||
|
||||
var lastVisitId = -1,
|
||||
lastReport = [];
|
||||
refreshVisits(true);
|
||||
}
|
||||
|
||||
function storeSettings() {
|
||||
self.widget.dashboardWidget('setParameters', {
|
||||
lastMap: currentMap, theme: colorTheme, colorMode: colorMode
|
||||
});
|
||||
}
|
||||
|
||||
/*
|
||||
* updates the map view (after changing the zoom)
|
||||
* clears all existing timeouts
|
||||
*/
|
||||
function updateMap(_map) {
|
||||
clearTimeout(nextReqTimer);
|
||||
$.each(symbolFadeInTimer, function (i, t) {
|
||||
clearTimeout(t);
|
||||
});
|
||||
symbolFadeInTimer = [];
|
||||
try {
|
||||
map.removeSymbols();
|
||||
} catch (e) {}
|
||||
currentMap = _map;
|
||||
_updateMap(currentMap + '.svg', initMap);
|
||||
storeSettings();
|
||||
}
|
||||
|
||||
updateMap(location.hash && (location.hash == '#world' || location.hash.match(/^#[A-Z][A-Z]$/)) ? location.hash.substr(1) : 'world'); // TODO: restore last state
|
||||
|
||||
// clicking on map background zooms out
|
||||
$('.RealTimeMap_map', this.$element).off('click').click(function () {
|
||||
if (currentMap != 'world') updateMap('world');
|
||||
});
|
||||
|
||||
// secret gimmick shortcuts
|
||||
this.$element.on('keydown', function (evt) {
|
||||
// shift+alt+C changes color mode
|
||||
if (evt.shiftKey && evt.altKey && evt.keyCode == 67) {
|
||||
colorMode = ({
|
||||
'default': 'referrerType',
|
||||
referrerType: 'default'
|
||||
})[colorMode];
|
||||
storeSettings();
|
||||
}
|
||||
|
||||
function switchTheme() {
|
||||
self.$element.css({ background: colorTheme[currentTheme].bg });
|
||||
if (isFullscreenWidget) {
|
||||
$('body').css({ background: colorTheme[currentTheme].bg });
|
||||
$('.widget').css({ 'border-width': 1 });
|
||||
}
|
||||
map.getLayer('countries')
|
||||
.style('fill', colorTheme[currentTheme].fill)
|
||||
.style('stroke', colorTheme[currentTheme].bg);
|
||||
|
||||
storeSettings();
|
||||
}
|
||||
|
||||
// shift+alt+B: switch to black background
|
||||
if (evt.shiftKey && evt.altKey && evt.keyCode == 66) {
|
||||
currentTheme = 'black';
|
||||
switchTheme();
|
||||
}
|
||||
|
||||
// shift+alt+W: return to white background
|
||||
if (evt.shiftKey && evt.altKey && evt.keyCode == 87) {
|
||||
currentTheme = 'white';
|
||||
switchTheme();
|
||||
}
|
||||
});
|
||||
|
||||
// make sure the map adapts to the widget size
|
||||
$(window).on('resize.' + this.uniqueId, onResizeLazy);
|
||||
|
||||
// setup automatic tooltip updates
|
||||
this._tooltipUpdateInterval = setInterval(function () {
|
||||
$('.qtip .rel-time').each(function (i, el) {
|
||||
el = $(el);
|
||||
var ds = new Date().getTime() / 1000 - el.data('actiontime');
|
||||
el.html(relativeTime(ds));
|
||||
});
|
||||
var d = new Date(), datetime = d.toTimeString().substr(0, 8);
|
||||
$('.realTimeMap_datetime').html(datetime);
|
||||
}, 1000);
|
||||
},
|
||||
|
||||
/*
|
||||
* resizes the map to widget dimensions
|
||||
*/
|
||||
resize: function () {
|
||||
var ratio, w, h, map = this.map;
|
||||
ratio = map.viewAB.width / map.viewAB.height;
|
||||
w = map.container.width();
|
||||
h = Math.min(w / ratio, $(window).height() - 30);
|
||||
|
||||
var radScale = Math.pow((h * ratio * h) / 130000, 0.3);
|
||||
this.maxRad = 10 * radScale;
|
||||
this.minRad = 4 * radScale;
|
||||
|
||||
map.container.height(h - 2);
|
||||
map.resize(w, h);
|
||||
if (map.symbolGroups && map.symbolGroups.length > 0) {
|
||||
map.symbolGroups[0].update();
|
||||
}
|
||||
|
||||
if (w < 355) $('.tableIcon span').hide();
|
||||
else $('.tableIcon span').show();
|
||||
},
|
||||
|
||||
_destroy: function () {
|
||||
UIControl.prototype._destroy.call(this);
|
||||
|
||||
if (this._tooltipUpdateInterval) {
|
||||
clearInterval(this._tooltipUpdateInterval);
|
||||
}
|
||||
|
||||
$(window).off('resize.' + this.uniqueId);
|
||||
|
||||
this.map.clear();
|
||||
$(this.map.container).html('');
|
||||
delete this.map;
|
||||
}
|
||||
|
||||
});
|
||||
|
||||
}());
|
||||
33
www/analytics/plugins/UserCountryMap/javascripts/vendor/chroma.min.js
vendored
Normal file
14
www/analytics/plugins/UserCountryMap/javascripts/vendor/jquery.qtip.min.js
vendored
Normal file
21
www/analytics/plugins/UserCountryMap/javascripts/vendor/kartograph.min.js
vendored
Normal file
10
www/analytics/plugins/UserCountryMap/javascripts/vendor/raphael.min.js
vendored
Normal file
1366
www/analytics/plugins/UserCountryMap/javascripts/visitor-map.js
Normal file
84
www/analytics/plugins/UserCountryMap/stylesheets/map.css
Normal file
|
|
@ -0,0 +1,84 @@
|
|||
/*
|
||||
* Stylesheets for Kartograph map
|
||||
*/
|
||||
|
||||
.UserCountryMap_map svg path {
|
||||
stroke-linejoin: round;
|
||||
}
|
||||
|
||||
.UserCountryMap_map svg .countries {
|
||||
cursor: pointer;
|
||||
stroke-width: 0.5px;
|
||||
stroke: #545C6D;
|
||||
}
|
||||
|
||||
.UserCountryMap_map svg .context {
|
||||
stroke: #BBBBBB;
|
||||
fill: #F6F5F3;
|
||||
stroke-width: 0.5px;
|
||||
}
|
||||
|
||||
.UserCountryMap_map svg .context-clickable {
|
||||
cursor: pointer;
|
||||
stroke: #BBBBBB;
|
||||
fill: #F2F1ED;
|
||||
stroke-width: 0.5px;
|
||||
}
|
||||
|
||||
.UserCountryMap_map svg .context-clickable:hover {
|
||||
fill: #E4E2D7;
|
||||
}
|
||||
|
||||
.UserCountryMap_map svg .regionBG {
|
||||
stroke-width: 6px;
|
||||
stroke: #fff;
|
||||
fill: none;
|
||||
}
|
||||
|
||||
.UserCountryMap_map svg .regionBG-fill {
|
||||
stroke: #555;
|
||||
stroke-width: 0.2px;
|
||||
fill: #F6F5F3;
|
||||
}
|
||||
|
||||
.UserCountryMap_map svg .regionBG-3 {
|
||||
stroke: #ccc;
|
||||
fill: #F2F1ED;
|
||||
stroke-width: 1px;
|
||||
}
|
||||
|
||||
.UserCountryMap_map svg .countryBG {
|
||||
stroke: #fff;
|
||||
fill: #fff;
|
||||
stroke-width: 4px;
|
||||
}
|
||||
|
||||
.UserCountryMap_map svg .regions {
|
||||
stroke-width: 1px;
|
||||
}
|
||||
|
||||
.UserCountryMap_map svg .regions2 {
|
||||
stroke-width: 1px;
|
||||
stroke: #aaa;
|
||||
fill: #fff;
|
||||
}
|
||||
|
||||
.UserCountryMap_map svg .countryLabelBg {
|
||||
font-weight: bold;
|
||||
font-size: 10px;
|
||||
font-family: Arial, Verdana, Helvetica, sans-serif;
|
||||
fill: #F6F5F3;
|
||||
stroke: #F6F5F3;
|
||||
stroke-width: 3px;
|
||||
stroke-linejoin: round;
|
||||
stroke-linecap: round;
|
||||
}
|
||||
|
||||
.UserCountryMap_map svg .countryLabel {
|
||||
font-weight: bold;
|
||||
font-size: 10px;
|
||||
font-family: Arial, Verdana, Helvetica, sans-serif;
|
||||
fill: #808888;
|
||||
}
|
||||
|
||||
|
||||
|
|
@ -0,0 +1,146 @@
|
|||
/* this should me moved to TableView css sometimes */
|
||||
.dataTableFooterIcons .inactiveIcon:hover {
|
||||
background-color: #F2F1ED;
|
||||
}
|
||||
|
||||
.dataTableFooterIcons .inactiveIcon {
|
||||
cursor: default;
|
||||
}
|
||||
|
||||
.dataTableFooterIcons .inactiveIcon img {
|
||||
opacity: 0.3;
|
||||
-moz-opacity: 0.3;
|
||||
filter: alpha(opacity=3);
|
||||
}
|
||||
|
||||
.RealTimeMap-black {
|
||||
position: absolute;
|
||||
right: 0;
|
||||
left: 0;
|
||||
z-index: 10001;
|
||||
width: 1000px;
|
||||
height: 1000px;
|
||||
background: #D5D3C8;
|
||||
}
|
||||
|
||||
.RealTimeMap .loadingPiwik {
|
||||
position: absolute !important;
|
||||
top: 42% !important;
|
||||
right: 10px !important;
|
||||
left: 10px !important;
|
||||
z-index: 10002 !important;
|
||||
display: block;
|
||||
color: #000;
|
||||
vertical-align: middle !important;
|
||||
text-align: center;
|
||||
text-shadow: 0 0 5px #fff;
|
||||
}
|
||||
|
||||
.tableIcon.inactiveIcon {
|
||||
color: #99a;
|
||||
}
|
||||
|
||||
.RealTimeMap-overlay,
|
||||
.RealTimeMap-tooltip {
|
||||
display: block;
|
||||
position: absolute;
|
||||
z-index: 1000;
|
||||
}
|
||||
|
||||
.RealTimeMap-overlay .content,
|
||||
.RealTimeMap-tooltip .content {
|
||||
padding: 5px;
|
||||
border-radius: 3px;
|
||||
background: rgba(255, 255, 255, 0.9);
|
||||
}
|
||||
|
||||
.RealTimeMap-title {
|
||||
top: 5px;
|
||||
left: 5px;
|
||||
}
|
||||
|
||||
.RealTimeMap-legend {
|
||||
right: 5px;
|
||||
font-size: 9px;
|
||||
bottom: 40px;
|
||||
}
|
||||
|
||||
.RealTimeMap-info {
|
||||
left: 5px;
|
||||
font-size: 11px;
|
||||
bottom: 60px;
|
||||
max-width: 42%;
|
||||
}
|
||||
|
||||
.RealTimeMap-info-btn {
|
||||
background-image: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAMAAAAoLQ9TAAAAA3NCSVQICAjb4U/gAAAAOVBMVEX///8AAAAAAABXV1dSUlKsrKzExMTd3d3V1dXp6end3d3p6enz8/P7+/v39/f///+vqZ6oopWUjH2LPulWAAAAE3RSTlMAESIzM2Z3mZmqqrvd7u7/////UUgTXgAAAAlwSFlzAAALEgAACxIB0t1+/AAAABx0RVh0U29mdHdhcmUAQWRvYmUgRmlyZXdvcmtzIENTNXG14zYAAAAYdEVYdENyZWF0aW9uIFRpbWUAMDMuMDEuMjAxM8rVeD8AAABnSURBVBiVhY/LFoAgCEQZ0p4W6f9/bIJ4slV3oTIeBoaICGADIAO8ibEwWn2IcwVovev7znqmCYRon9kEWUFvg3IysXyIXSil3fOvELupC9XUx7pQx/piDV1sVFLwMNF80sw97hj/AXRPCjtYdmhtAAAAAElFTkSuQmCC);
|
||||
width: 16px;
|
||||
height: 16px;
|
||||
cursor: pointer;
|
||||
left: 5px;
|
||||
bottom: 40px;
|
||||
position: absolute;
|
||||
z-index: 1000;
|
||||
opacity: 0.9;
|
||||
|
||||
}
|
||||
|
||||
.realTimeMap_overlay {
|
||||
position: absolute;
|
||||
left: 10px;
|
||||
bottom: 6px;
|
||||
font-size: 12px;
|
||||
z-index: 10;
|
||||
text-shadow: 1px 1px 1px #FFFFFF, -1px 1px 1px #FFFFFF, 1px -1px 1px #FFFFFF, -1px -1px 1px #FFFFFF, 1px 1px 1px #FFFFFF, -1px 1px 1px #FFFFFF, 1px -1px 1px #FFFFFF, -1px -1px 1px #FFFFFF;
|
||||
}
|
||||
|
||||
.realTimeMap_datetime {
|
||||
bottom: 24px;
|
||||
color: #887;
|
||||
font-size: 14px;
|
||||
}
|
||||
|
||||
// realtime map colors (for theming)
|
||||
.realtime-map[data-name=white-bg] {
|
||||
color: #fff;
|
||||
}
|
||||
|
||||
.realtime-map[data-name=white-fill] {
|
||||
color: #aa9;
|
||||
}
|
||||
|
||||
.realtime-map[data-name=black-bg] {
|
||||
color: #000;
|
||||
}
|
||||
|
||||
.realtime-map[data-name=black-fill] {
|
||||
color: #444440;
|
||||
}
|
||||
|
||||
.realtime-map[data-name=visit-stroke] {
|
||||
color: #fff;
|
||||
}
|
||||
|
||||
.realtime-map[data-name=website-referrer-color] {
|
||||
color: #F29007;
|
||||
}
|
||||
|
||||
.realtime-map[data-name=direct-referrer-color] {
|
||||
color: #5170AE;
|
||||
}
|
||||
|
||||
.realtime-map[data-name=search-referrer-color] {
|
||||
color: #CC3399;
|
||||
}
|
||||
|
||||
.realtime-map[data-name=live-widget-highlight] {
|
||||
color: #E4CD74;
|
||||
}
|
||||
|
||||
.realtime-map[data-name=live-widget-unhighlight] {
|
||||
color: #E4E2D7;
|
||||
}
|
||||
|
||||
.realtime-map[data-name=symbol-animate-fill] {
|
||||
color: #fdb;
|
||||
}
|
||||
|
|
@ -0,0 +1,222 @@
|
|||
.UserCountryMap-black {
|
||||
position: absolute;
|
||||
right: 0;
|
||||
left: 0;
|
||||
z-index: 900;
|
||||
width: 1000px;
|
||||
height: 1000px;
|
||||
background: #D5D3C8;
|
||||
}
|
||||
|
||||
.UserCountryMap .loadingPiwik {
|
||||
position: absolute !important;
|
||||
top: 42% !important;
|
||||
right: 10px !important;
|
||||
left: 10px !important;
|
||||
z-index: 100 !important;
|
||||
display: block;
|
||||
font-size: 12px;
|
||||
color: #000;
|
||||
vertical-align: middle !important;
|
||||
text-align: center;
|
||||
text-shadow: 0 0 5px #fff;
|
||||
}
|
||||
|
||||
.tableIcon.inactiveIcon {
|
||||
color: #99a;
|
||||
}
|
||||
|
||||
.UserCountryMap .UserCountryMap-legend {
|
||||
opacity: 0;
|
||||
}
|
||||
|
||||
.UserCountryMap:hover .UserCountryMap-legend {
|
||||
opacity: 1;
|
||||
}
|
||||
|
||||
.UserCountryMap-overlay,
|
||||
.UserCountryMap-tooltip {
|
||||
display: block;
|
||||
position: absolute;
|
||||
z-index: 9;
|
||||
}
|
||||
|
||||
.UserCountryMap-overlay .content,
|
||||
.UserCountryMap-tooltip .content {
|
||||
padding: 5px;
|
||||
border-radius: 3px;
|
||||
background: rgba(255, 255, 255, 0.9);
|
||||
}
|
||||
|
||||
.UserCountryMap-title {
|
||||
top: 5px;
|
||||
left: 5px;
|
||||
}
|
||||
|
||||
.UserCountryMap-legend {
|
||||
right: 5px;
|
||||
font-size: 9px;
|
||||
bottom: 40px;
|
||||
}
|
||||
|
||||
.UserCountryMap-info {
|
||||
left: 5px;
|
||||
font-size: 11px;
|
||||
bottom: 60px;
|
||||
max-width: 42%;
|
||||
}
|
||||
|
||||
.UserCountryMap-info-btn {
|
||||
background-image: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAMAAAAoLQ9TAAAAA3NCSVQICAjb4U/gAAAAOVBMVEX///8AAAAAAABXV1dSUlKsrKzExMTd3d3V1dXp6end3d3p6enz8/P7+/v39/f///+vqZ6oopWUjH2LPulWAAAAE3RSTlMAESIzM2Z3mZmqqrvd7u7/////UUgTXgAAAAlwSFlzAAALEgAACxIB0t1+/AAAABx0RVh0U29mdHdhcmUAQWRvYmUgRmlyZXdvcmtzIENTNXG14zYAAAAYdEVYdENyZWF0aW9uIFRpbWUAMDMuMDEuMjAxM8rVeD8AAABnSURBVBiVhY/LFoAgCEQZ0p4W6f9/bIJ4slV3oTIeBoaICGADIAO8ibEwWn2IcwVovev7znqmCYRon9kEWUFvg3IysXyIXSil3fOvELupC9XUx7pQx/piDV1sVFLwMNF80sw97hj/AXRPCjtYdmhtAAAAAElFTkSuQmCC);
|
||||
width: 16px;
|
||||
height: 16px;
|
||||
cursor: pointer;
|
||||
left: 5px;
|
||||
bottom: 40px;
|
||||
position: absolute;
|
||||
z-index: 700;
|
||||
opacity: 0.9;
|
||||
}
|
||||
|
||||
/* this should me moved to TableView css sometimes */
|
||||
.dataTableFooterIcons .inactiveIcon:hover {
|
||||
background-color: #F2F1ED;
|
||||
}
|
||||
|
||||
.dataTableFooterIcons .inactiveIcon {
|
||||
cursor: default;
|
||||
}
|
||||
|
||||
.dataTableFooterIcons .inactiveIcon img {
|
||||
opacity: 0.3;
|
||||
-moz-opacity: 0.3;
|
||||
filter: alpha(opacity=3);
|
||||
}
|
||||
|
||||
.mapWidgetStatus {
|
||||
padding-bottom: 24px;
|
||||
}
|
||||
|
||||
.widgetUserCountryMapvisitorMap .widgetTop .button {
|
||||
z-index: 3;
|
||||
position: relative;
|
||||
}
|
||||
|
||||
.widgetUserCountryMapvisitorMap .widgetName {
|
||||
white-space: nowrap;
|
||||
text-overflow: ellipsis;
|
||||
}
|
||||
|
||||
.widgetUserCountryMapvisitorMap.widgetHover .widgetName {
|
||||
width: 75%;
|
||||
overflow: hidden;
|
||||
}
|
||||
|
||||
// visitor map colors
|
||||
.visitor-map[data-name=no-data-color] {
|
||||
color: #E4E2D7;
|
||||
}
|
||||
|
||||
.visitor-map[data-name=one-country-color] {
|
||||
color: #CDDAEF;
|
||||
}
|
||||
|
||||
.visitor-map[data-name=color-range-start-choropleth] {
|
||||
color: #CDDAEF;
|
||||
}
|
||||
|
||||
.visitor-map[data-name=color-range-start-normal] {
|
||||
color: #385993;
|
||||
}
|
||||
|
||||
.visitor-map[data-name=color-range-end-choropleth] {
|
||||
color: #385993;
|
||||
}
|
||||
|
||||
.visitor-map[data-name=color-range-end-normal] {
|
||||
color: #385993;
|
||||
}
|
||||
|
||||
.visitor-map[data-name=country-highlight-color] {
|
||||
color: #f4f45b;
|
||||
}
|
||||
|
||||
.visitor-map[data-name=country-selected-color] {
|
||||
color: #f4f45b;
|
||||
}
|
||||
|
||||
.visitor-map[data-name=unknown-region-fill-color] {
|
||||
color: #fff;
|
||||
}
|
||||
|
||||
.visitor-map[data-name=unknown-region-stroke-color] {
|
||||
color: #bbb;
|
||||
}
|
||||
|
||||
.visitor-map[data-name=region-stroke-color] {
|
||||
color: #3C6FB6;
|
||||
}
|
||||
|
||||
.visitor-map[data-name=region-selected-color] {
|
||||
color: #f4f45b;
|
||||
}
|
||||
|
||||
.visitor-map[data-name=region-highlight-color] {
|
||||
color: #f4f45b;
|
||||
}
|
||||
|
||||
.visitor-map[data-name=invisible-region-background] {
|
||||
color: #fff;
|
||||
}
|
||||
|
||||
.visitor-map[data-name=city-label-color] {
|
||||
color: #fff;
|
||||
}
|
||||
|
||||
.visitor-map[data-name=city-stroke-color] {
|
||||
color: #fff;
|
||||
}
|
||||
|
||||
.visitor-map[data-name=city-highlight-stroke-color] {
|
||||
color: #000000;
|
||||
}
|
||||
|
||||
.visitor-map[data-name=city-highlight-fill-color] {
|
||||
color: #f4f45b;
|
||||
}
|
||||
|
||||
.visitor-map[data-name=city-highlight-label-color] {
|
||||
color: #000;
|
||||
}
|
||||
|
||||
.visitor-map[data-name=city-label-fill-color] {
|
||||
color: #fff;
|
||||
}
|
||||
|
||||
.visitor-map[data-name=city-selected-color] {
|
||||
color: #f4f45b;
|
||||
}
|
||||
|
||||
.visitor-map[data-name=city-selected-label-color] {
|
||||
color: #000;
|
||||
}
|
||||
|
||||
.visitor-map[data-name=region-layer-stroke-color] {
|
||||
color: #aaa;
|
||||
}
|
||||
|
||||
.visitor-map[data-name=special-metrics-color-scale-1] {
|
||||
color: #385993;
|
||||
}
|
||||
|
||||
.visitor-map[data-name=special-metrics-color-scale-2] {
|
||||
color: #385993;
|
||||
}
|
||||
|
||||
.visitor-map[data-name=special-metrics-color-scale-3] {
|
||||
color: #E87500;
|
||||
}
|
||||
|
||||
.visitor-map[data-name=special-metrics-color-scale-4] {
|
||||
color: #E87500;
|
||||
}
|
||||
2
www/analytics/plugins/UserCountryMap/svg/AF.svg
Normal file
|
After Width: | Height: | Size: 40 KiB |
2
www/analytics/plugins/UserCountryMap/svg/AFG.svg
Normal file
|
After Width: | Height: | Size: 23 KiB |
2
www/analytics/plugins/UserCountryMap/svg/AGO.svg
Normal file
|
After Width: | Height: | Size: 12 KiB |
2
www/analytics/plugins/UserCountryMap/svg/ALB.svg
Normal file
|
After Width: | Height: | Size: 9.7 KiB |
2
www/analytics/plugins/UserCountryMap/svg/ARE.svg
Normal file
|
After Width: | Height: | Size: 8.1 KiB |
2
www/analytics/plugins/UserCountryMap/svg/ARG.svg
Normal file
|
After Width: | Height: | Size: 15 KiB |
2
www/analytics/plugins/UserCountryMap/svg/ARM.svg
Normal file
|
After Width: | Height: | Size: 9 KiB |
1
www/analytics/plugins/UserCountryMap/svg/AS.svg
Normal file
|
After Width: | Height: | Size: 49 KiB |
2
www/analytics/plugins/UserCountryMap/svg/AUS.svg
Normal file
|
After Width: | Height: | Size: 8 KiB |
2
www/analytics/plugins/UserCountryMap/svg/AUT.svg
Normal file
|
After Width: | Height: | Size: 11 KiB |
2
www/analytics/plugins/UserCountryMap/svg/AZE.svg
Normal file
|
After Width: | Height: | Size: 26 KiB |
2
www/analytics/plugins/UserCountryMap/svg/BDI.svg
Normal file
|
After Width: | Height: | Size: 8.9 KiB |
1
www/analytics/plugins/UserCountryMap/svg/BEL.svg
Normal file
|
After Width: | Height: | Size: 13 KiB |
2
www/analytics/plugins/UserCountryMap/svg/BEN.svg
Normal file
|
After Width: | Height: | Size: 7.3 KiB |
2
www/analytics/plugins/UserCountryMap/svg/BFA.svg
Normal file
|
After Width: | Height: | Size: 22 KiB |
1
www/analytics/plugins/UserCountryMap/svg/BGD.svg
Normal file
|
After Width: | Height: | Size: 16 KiB |
2
www/analytics/plugins/UserCountryMap/svg/BGR.svg
Normal file
|
After Width: | Height: | Size: 18 KiB |
2
www/analytics/plugins/UserCountryMap/svg/BIH.svg
Normal file
|
After Width: | Height: | Size: 12 KiB |
2
www/analytics/plugins/UserCountryMap/svg/BLR.svg
Normal file
|
After Width: | Height: | Size: 11 KiB |
2
www/analytics/plugins/UserCountryMap/svg/BLZ.svg
Normal file
|
|
@ -0,0 +1,2 @@
|
|||
<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE svg PUBLIC '-//W3C//DTD SVG 1.1//EN' 'http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd'><svg enable_background="new 0 0 450 301" height="301px" style="stroke-linejoin: round; stroke:#000; fill:#f6f3f0;" version="1.1" viewBox="0 0 450 301" width="450px" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink"><defs><style type="text/css"><![CDATA[path { fill-rule: evenodd; }
|
||||
#context path { fill: #eee; stroke: #bbb; } ]]></style></defs><metadata><views><view h="301.0" padding="0.06" w="450"><proj id="laea" lat0="17.5383871525" lon0="-88.4327421438"/><bbox h="34.28" w="19.26" x="989.42" y="987.21"/><llbbox lat0="-90" lat1="90" lon0="-180" lon1="180"/></view></views></metadata><g id="context"><path d="M293,124L298,118L299,113L296,111L295,115L292,120L288,124L284,135L285,139L293,124Z M283,70L293,47L292,45L288,45L282,62L282,66L278,72L283,70Z M247,11L239,10L230,11L224,14L218,31L201,54L195,66L190,69L186,71L170,62L162,65L159,72L159,82L158,108L150,288L150,289L163,288L181,289L186,289L184,282L187,275L206,250L220,246L230,230L236,225L246,209L251,173L248,149L248,136L250,127L257,114L250,104L255,89L256,78L268,49L269,37L264,24L252,24L247,25L242,23L247,11Z " data-iso="BLZ"/><path d="M186,289L181,289L163,288L150,289L150,288L158,108L159,82L137,82L54,81L0,80L0,202L4,208L6,215L6,221L12,226L23,229L28,234L28,238L25,248L24,259L25,268L0,268L0,299L207,299L205,298L195,292L191,291L186,289Z M243,299L217,282L216,285L219,288L223,293L218,299L243,299Z " data-iso="GTM"/><path d="M331,299L325,295L318,287L309,287L291,290L288,292L278,299L331,299Z M375,299L352,295L343,296L333,299L375,299Z M446,299L435,298L407,299L405,299L446,299Z M450,229L439,232L427,237L420,244L425,244L441,235L450,232L450,229Z " data-iso="HND"/><path d="M273,0L272,5L273,10L282,14L290,32L293,33L298,23L302,14L304,0L273,0Z M159,82L159,72L162,65L170,62L186,71L190,69L195,66L201,54L218,31L224,14L230,11L239,10L247,11L249,6L253,0L0,0L0,80L54,81L137,82L159,82Z M0,268L25,268L24,259L25,248L28,238L28,234L23,229L12,226L6,221L6,215L4,208L0,202L0,268Z " data-iso="MEX"/></g><g fill="red" fill-opacity="0.35" id="regions"><path d="M298,135L299,134L297,128L296,126L296,138L298,138L298,135Z M270,115L269,116L269,120L271,117L270,115Z M299,112L295,111L298,114L297,119L296,119L292,119L286,125L286,130L284,138L285,139L287,135L288,127L292,123L294,125L297,120L300,116L299,112Z M273,110L272,104L270,100L271,106L273,110Z M264,97L267,96L269,94L270,90L261,97L264,97Z M261,66L248,65L226,71L220,74L220,82L219,85L219,92L213,99L212,105L213,121L216,120L218,119L219,140L220,147L221,152L220,155L218,157L216,158L243,158L247,156L248,155L248,155L247,150L248,133L253,119L254,116L259,116L261,114L260,113L255,113L254,110L249,107L248,104L256,86L257,77L256,75L261,66Z M293,45L292,43L290,45L287,45L284,54L282,61L282,64L284,64L282,69L277,72L277,72L281,71L284,68L286,64L293,47L293,45Z " data-fips="BH01" data-fips-="" data-iso3="BLZ" data-name="Belize"/><path d="M213,121L212,120L201,125L191,125L188,125L183,128L171,129L163,132L156,138L152,237L154,235L160,228L167,226L172,222L179,222L180,220L182,218L184,218L191,213L194,209L193,208L196,204L198,204L198,202L203,192L208,190L209,179L215,173L219,166L219,165L215,159L216,158L218,157L220,155L221,152L220,147L219,140L218,119L216,120L213,121Z " data-fips="BH02" data-fips-="" data-iso3="BLZ" data-name="Cayo"/><path d="M215,35L222,38L227,42L234,52L248,65L261,66L261,66L262,65L268,49L269,39L268,26L263,27L267,24L268,22L263,23L260,25L251,23L244,26L243,28L245,21L240,24L238,22L238,20L246,15L248,12L246,10L239,10L236,9L231,10L227,10L223,14L219,26L216,30L215,35L215,35Z " data-fips="BH03" data-fips-="" data-iso3="BLZ" data-name="Corozal"/><path d="M248,65L234,52L227,42L222,38L215,35L214,36L212,39L206,43L207,44L203,55L198,60L196,64L189,73L187,74L181,67L177,67L172,63L170,62L159,68L159,72L158,88L156,138L163,132L171,129L183,128L188,125L191,125L201,125L212,120L213,121L212,105L213,99L219,92L219,85L220,82L220,74L226,71L248,65Z " data-fips="BH04" data-fips-="" data-iso3="BLZ" data-name="Orange Walk"/><path d="M237,223L239,217L240,214L243,207L243,209L240,221L241,223L242,221L242,218L244,210L246,207L247,199L247,194L250,190L252,190L249,181L253,175L255,174L254,163L250,160L248,156L248,155L247,156L243,158L216,158L215,159L219,165L219,166L215,173L209,179L208,190L203,192L198,202L198,204L201,203L213,203L216,205L217,210L221,216L221,222L225,222L233,222L235,222L238,224L237,223Z " data-fips="BH05" data-fips-="" data-iso3="BLZ" data-name="Stann Creek"/><path d="M198,204L196,204L193,208L194,209L191,213L184,218L182,218L180,220L179,222L172,222L167,226L160,228L154,235L152,237L150,287L151,290L156,288L164,288L170,288L179,290L184,286L182,281L182,279L187,275L189,274L190,271L197,263L199,263L201,258L201,254L203,252L206,250L210,250L211,247L215,249L217,249L218,246L218,251L219,248L223,247L228,239L229,236L232,231L234,230L236,226L238,224L238,224L235,222L233,222L225,222L221,222L221,216L217,210L216,205L213,203L201,203L198,204Z " data-fips="BH06" data-fips-="" data-iso3="BLZ" data-name="Toledo"/></g></svg>
|
||||
|
After Width: | Height: | Size: 4.9 KiB |
2
www/analytics/plugins/UserCountryMap/svg/BOL.svg
Normal file
|
After Width: | Height: | Size: 11 KiB |
2
www/analytics/plugins/UserCountryMap/svg/BRA.svg
Normal file
|
After Width: | Height: | Size: 20 KiB |
2
www/analytics/plugins/UserCountryMap/svg/BRB.svg
Normal file
|
|
@ -0,0 +1,2 @@
|
|||
<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE svg PUBLIC '-//W3C//DTD SVG 1.1//EN' 'http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd'><svg enable_background="new 0 0 450 301" height="301px" style="stroke-linejoin: round; stroke:#000; fill:#f6f3f0;" version="1.1" viewBox="0 0 450 301" width="450px" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink"><defs><style type="text/css"><![CDATA[path { fill-rule: evenodd; }
|
||||
#context path { fill: #eee; stroke: #bbb; } ]]></style></defs><metadata><views><view h="301.0" padding="0.06" w="450"><proj id="laea" lat0="13.0902865665" lon0="-59.5334721681"/><bbox h="3.95" w="3.06" x="998.39" y="996.7"/><llbbox lat0="-90" lat1="90" lon0="-180" lon1="180"/></view></views></metadata><g id="context"><path d="M268,258L328,192L273,150L179,38L128,51L132,194L161,239L242,276L268,258Z " data-iso="BRB"/></g><g fill="red" fill-opacity="0.35" id="regions"><path d="M250,213L198,233L199,239L199,241L199,241L171,256L183,257L203,261L220,271L229,287L235,283L241,282L247,282L254,281L273,261L284,254L279,247L270,244L268,240L261,220L258,216L250,213Z " data-fips="BB01" data-fips-="" data-iso3="BRB" data-name="Christ Church"/><path d="M217,102L199,64L191,64L189,65L183,66L179,70L172,71L169,70L166,77L165,108L170,132L181,132L184,133L188,138L198,116L201,112L203,113L207,113L218,107L220,107L217,102Z " data-fips="BB02" data-fips-="" data-iso3="BRB" data-name="Saint Andrew"/><path d="M246,184L244,182L225,164L225,164L212,166L206,174L204,175L183,184L198,233L250,213L254,198L246,184Z " data-fips="BB03" data-fips-="" data-iso3="BRB" data-name="Saint George"/><path d="M146,105L130,113L125,111L129,184L134,202L136,202L141,206L144,206L149,204L151,201L161,194L155,171L149,164L148,163L151,159L157,143L165,139L170,132L165,108L146,105Z " data-fips="BB04" data-fips-="" data-iso3="BRB" data-name="Saint James"/><path d="M283,157L269,149L245,131L243,132L228,146L226,149L225,164L244,182L246,184L254,198L266,182L273,179L290,162L291,160L283,157Z " data-fips="BB05" data-fips-="" data-iso3="BRB" data-name="Saint John"/><path d="M229,118L220,107L218,107L207,113L203,113L201,112L198,116L188,138L201,146L202,148L205,150L212,166L225,164L225,164L226,149L228,146L243,132L245,131L229,118Z " data-fips="BB06" data-fips-="" data-iso3="BRB" data-name="Saint Joseph"/><path d="M188,40L176,22L159,12L143,19L130,32L123,44L122,59L123,78L126,78L143,66L192,50L193,50L188,40Z " data-fips="BB07" data-fips-="" data-iso3="BRB" data-name="Saint Lucy"/><path d="M183,184L177,190L175,191L161,194L151,201L149,204L144,206L141,206L136,202L134,202L141,226L151,247L163,255L171,256L199,241L199,241L199,239L198,233L183,184Z " data-fips="BB08" data-fips-="" data-iso3="BRB" data-name="Saint Michael"/><path d="M193,50L192,50L143,66L126,78L123,78L125,111L130,113L146,105L165,108L166,77L169,70L172,71L179,70L183,66L189,65L191,64L199,64L193,50Z " data-fips="BB09" data-fips-="" data-iso3="BRB" data-name="Saint Peter"/><path d="M302,241L326,217L328,184L318,171L301,163L291,160L290,162L273,179L266,182L254,198L250,213L258,216L261,220L268,240L270,244L279,247L284,254L302,241Z " data-fips="BB10" data-fips-="" data-iso3="BRB" data-name="Saint Philip"/><path d="M184,133L181,132L170,132L165,139L157,143L151,159L148,163L149,164L155,171L161,194L175,191L177,190L183,184L204,175L206,174L212,166L205,150L202,148L201,146L188,138L184,133Z " data-fips="BB11" data-fips-="BB04" data-iso3="BRB" data-name="Saint Thomas"/></g></svg>
|
||||
|
After Width: | Height: | Size: 3.3 KiB |
2
www/analytics/plugins/UserCountryMap/svg/BRN.svg
Normal file
|
|
@ -0,0 +1,2 @@
|
|||
<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE svg PUBLIC '-//W3C//DTD SVG 1.1//EN' 'http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd'><svg enable_background="new 0 0 450 301" height="301px" style="stroke-linejoin: round; stroke:#000; fill:#f6f3f0;" version="1.1" viewBox="0 0 450 301" width="450px" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink"><defs><style type="text/css"><![CDATA[path { fill-rule: evenodd; }
|
||||
#context path { fill: #eee; stroke: #bbb; } ]]></style></defs><metadata><views><view h="301.0" padding="0.06" w="450"><proj id="laea" lat0="4.3490630152" lon0="114.515106167"/><bbox h="14.85" w="18.76" x="992.64" y="990.25"/><llbbox lat0="-90" lat1="90" lon0="-180" lon1="180"/></view></views></metadata><g id="context"><path d="M311,59L311,79L311,111L317,138L331,186L347,192L365,197L376,195L383,192L385,188L374,169L370,125L361,96L346,68L339,59L311,59Z M316,44L316,30L303,29L265,48L240,64L217,85L192,103L162,119L131,132L101,136L72,136L80,142L98,152L112,164L121,180L128,195L128,207L137,218L160,219L167,232L184,255L198,271L207,277L219,274L236,259L249,241L257,217L251,213L263,195L265,185L259,176L252,168L250,146L245,117L242,105L251,95L271,84L291,70L311,59L316,44Z " data-iso="BRN"/><path d="M450,299L450,292L445,298L445,299L450,299Z " data-iso="IDN"/><path d="M450,0L444,0L441,11L433,22L410,42L397,51L339,59L346,68L361,96L370,125L374,169L385,188L383,192L376,195L365,197L347,192L331,186L317,138L311,111L311,79L311,59L291,70L271,84L251,95L242,105L245,117L250,146L252,168L259,176L265,185L263,195L251,213L257,217L249,241L236,259L219,274L207,277L198,271L184,255L167,232L160,219L137,218L128,207L128,195L121,180L112,164L98,152L80,142L72,136L70,136L60,140L53,147L54,163L54,178L45,211L38,222L0,266L0,299L445,299L445,298L450,292L450,0Z " data-iso="MYS"/></g><g fill="red" fill-opacity="0.35" id="regions"><path d="M155,123L138,132L119,136L72,141L86,143L91,146L99,152L105,155L108,157L110,162L117,163L119,169L122,171L123,174L125,181L125,188L128,193L130,204L129,207L125,211L125,215L127,217L135,218L146,220L156,218L161,218L164,222L169,237L171,242L175,247L190,261L196,265L201,276L202,278L224,272L247,250L248,247L250,236L252,231L257,223L259,218L250,212L252,210L253,208L244,203L240,197L238,189L234,182L229,176L223,170L218,164L212,158L204,153L203,147L204,139L201,134L191,133L187,129L184,125L179,114L155,123Z " data-fips="BX01" data-fips-="" data-iso3="BRN" data-name="Belait"/><path d="M245,60L245,66L245,72L244,79L242,84L241,89L239,97L241,101L243,99L252,96L256,93L264,85L268,82L274,81L283,82L291,79L293,76L294,68L300,62L302,58L310,51L316,35L318,31L326,28L330,25L329,22L325,20L319,21L287,34L245,60Z " data-fips="BX02" data-fips-="" data-iso3="BRN" data-name="Brunei and Muara"/><path d="M356,78L349,69L343,65L341,63L340,57L334,58L333,60L335,64L337,68L337,71L331,72L326,75L321,81L316,84L310,99L311,119L313,129L321,148L324,158L327,182L329,186L332,188L346,193L352,194L359,193L361,194L365,197L367,199L372,198L379,202L385,205L394,201L393,196L389,190L381,182L375,175L372,165L370,154L370,145L372,135L373,131L372,125L356,78Z " data-fips="BX03" data-fips-="" data-iso3="BRN" data-name="Temburong"/><path d="M236,65L206,89L197,98L193,105L188,111L179,114L184,125L187,129L191,133L201,134L204,139L203,147L204,153L212,158L218,164L223,170L229,176L234,182L238,189L240,197L244,203L253,208L259,203L262,198L264,194L266,185L267,178L265,176L261,177L256,175L252,168L250,159L249,130L248,125L247,120L242,110L240,106L240,102L241,101L239,97L241,89L242,84L244,79L245,72L245,66L245,60L236,65Z " data-fips="BX04" data-fips-="" data-iso3="BRN" data-name="Tutong"/></g></svg>
|
||||
|
After Width: | Height: | Size: 3.5 KiB |
2
www/analytics/plugins/UserCountryMap/svg/BTN.svg
Normal file
|
After Width: | Height: | Size: 25 KiB |
2
www/analytics/plugins/UserCountryMap/svg/BWA.svg
Normal file
|
After Width: | Height: | Size: 6.5 KiB |
2
www/analytics/plugins/UserCountryMap/svg/CAF.svg
Normal file
|
After Width: | Height: | Size: 12 KiB |
2
www/analytics/plugins/UserCountryMap/svg/CAN.svg
Normal file
|
After Width: | Height: | Size: 36 KiB |
2
www/analytics/plugins/UserCountryMap/svg/CHE.svg
Normal file
|
After Width: | Height: | Size: 18 KiB |
2
www/analytics/plugins/UserCountryMap/svg/CHL.svg
Normal file
|
After Width: | Height: | Size: 17 KiB |
1
www/analytics/plugins/UserCountryMap/svg/CHN.svg
Normal file
|
After Width: | Height: | Size: 35 KiB |
2
www/analytics/plugins/UserCountryMap/svg/CIV.svg
Normal file
|
After Width: | Height: | Size: 14 KiB |
2
www/analytics/plugins/UserCountryMap/svg/CMR.svg
Normal file
|
After Width: | Height: | Size: 9.9 KiB |
2
www/analytics/plugins/UserCountryMap/svg/COD.svg
Normal file
|
After Width: | Height: | Size: 14 KiB |
2
www/analytics/plugins/UserCountryMap/svg/COG.svg
Normal file
|
After Width: | Height: | Size: 11 KiB |
2
www/analytics/plugins/UserCountryMap/svg/COL.svg
Normal file
|
After Width: | Height: | Size: 21 KiB |
2
www/analytics/plugins/UserCountryMap/svg/CRI.svg
Normal file
|
After Width: | Height: | Size: 7.9 KiB |
2
www/analytics/plugins/UserCountryMap/svg/CUB.svg
Normal file
|
After Width: | Height: | Size: 10 KiB |
2
www/analytics/plugins/UserCountryMap/svg/CYP.svg
Normal file
|
|
@ -0,0 +1,2 @@
|
|||
<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE svg PUBLIC '-//W3C//DTD SVG 1.1//EN' 'http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd'><svg enable_background="new 0 0 450 301" height="301px" style="stroke-linejoin: round; stroke:#000; fill:#f6f3f0;" version="1.1" viewBox="0 0 450 301" width="450px" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink"><defs><style type="text/css"><![CDATA[path { fill-rule: evenodd; }
|
||||
#context path { fill: #eee; stroke: #bbb; } ]]></style></defs><metadata><views><view h="301.0" padding="0.06" w="450"><proj id="laea" lat0="34.8758560247" lon0="33.3819793127"/><bbox h="9.17" w="20.68" x="987.68" y="995.02"/><llbbox lat0="-90" lat1="90" lon0="-180" lon1="180"/></view></views></metadata><g id="context"><path d="M121,78L123,85L137,93L155,100L166,101L181,93L201,85L226,78L239,83L256,83L268,81L277,87L284,97L286,123L289,125L300,114L319,118L333,120L344,115L351,114L358,112L367,106L375,99L383,101L396,109L405,107L389,87L383,70L391,46L450,3L450,0L408,0L317,30L285,34L252,33L211,28L172,20L168,50L158,76L134,81L121,78Z " data-iso="CYN"/><path d="M108,75L87,82L69,100L50,110L31,101L34,136L55,183L62,196L75,203L116,218L128,219L154,215L165,222L171,238L185,240L189,232L189,222L197,212L209,206L223,206L249,200L275,192L297,177L338,133L351,132L365,134L390,132L415,127L409,112L405,107L396,109L383,101L375,99L367,106L358,112L351,114L344,115L333,120L319,118L300,114L289,125L286,123L284,97L277,87L268,81L256,83L239,83L226,78L201,85L181,93L166,101L155,100L137,93L123,85L121,78L108,75Z " data-iso="CYP"/></g><g fill="red" fill-opacity="0.35" id="regions"><path d="M354,127L354,130L359,130L358,129L354,127Z M348,124L349,123L349,121L347,121L347,124L348,124Z M295,116L299,125L297,125L293,134L287,134L281,136L277,134L276,134L273,142L272,143L260,145L256,142L254,143L249,147L242,153L241,154L236,150L228,151L227,149L224,149L215,153L214,155L213,157L213,162L214,163L230,168L240,178L242,181L244,187L243,195L244,203L246,202L249,200L266,197L272,193L272,186L275,190L287,185L297,182L304,174L307,174L314,173L317,172L320,166L323,164L324,162L323,157L324,152L326,143L329,138L334,134L338,132L335,125L329,124L320,120L317,121L314,120L312,119L310,121L308,124L304,126L301,125L300,121L300,115L298,113L296,115L295,116Z " data-fips="CY03" data-fips-="" data-iso3="CYP" data-name="Larnaca"/><path d="M293,118L292,125L291,130L285,131L283,128L282,124L285,113L285,104L285,97L277,90L277,82L275,82L266,83L262,82L261,83L256,88L253,90L250,94L245,93L242,91L237,84L234,83L226,81L222,81L217,85L211,89L206,89L200,88L194,87L192,88L190,90L181,95L173,103L170,105L167,105L160,100L158,101L153,107L148,108L144,107L142,105L142,99L139,97L130,92L124,90L121,88L119,85L116,76L116,75L109,74L107,81L104,83L101,83L98,83L95,81L93,78L89,78L89,78L89,79L98,88L98,90L103,96L102,105L98,107L99,110L102,115L107,118L111,126L112,139L111,140L109,147L112,151L114,153L117,151L118,153L123,152L125,149L127,148L133,150L133,147L135,139L141,137L144,139L156,142L163,142L167,141L175,136L179,135L180,136L185,143L193,149L196,154L204,153L213,157L214,155L215,153L224,149L227,149L228,151L236,150L241,154L242,153L249,147L254,143L256,142L260,145L272,143L273,142L276,134L277,134L281,136L287,134L293,134L297,125L299,125L295,116L293,118Z " data-fips="CY04" data-fips-="" data-iso3="CYP" data-name="Nicosia"/><path d="M87,76L86,76L84,79L81,82L78,86L75,94L70,101L63,108L55,112L46,112L42,111L38,108L32,100L27,97L25,99L24,104L25,110L27,115L31,123L32,128L33,137L37,144L35,147L35,151L40,159L47,164L52,178L53,182L54,190L56,191L64,198L68,201L72,202L81,203L86,205L90,206L101,214L105,215L105,209L107,203L108,201L112,199L117,195L119,194L120,188L119,181L122,176L127,172L132,163L136,159L134,154L133,150L127,148L125,149L123,152L118,153L117,151L114,153L112,151L109,147L111,140L112,139L111,126L107,118L102,115L99,110L98,107L102,105L103,96L98,90L98,88L89,79L89,78L87,76Z " data-fips="CY06" data-fips-="" data-iso3="CYP" data-name="Paphos"/><path d="M387,110L381,108L377,105L372,110L369,111L366,108L361,111L360,114L365,116L367,118L369,126L373,127L373,131L371,132L368,134L370,135L374,134L380,137L384,132L395,129L407,128L409,129L412,132L417,133L426,133L423,132L420,127L418,123L415,115L412,112L409,109L404,111L399,109L396,109L392,111L387,110Z " data-fips="CY01" data-fips-="" data-iso3="CYP" data-name="Famagusta"/><path d="M204,153L196,154L193,149L185,143L180,136L179,135L175,136L167,141L163,142L156,142L144,139L141,137L135,139L133,147L133,150L134,154L136,159L132,163L127,172L122,176L119,181L120,188L119,194L117,195L112,199L108,201L107,203L105,209L105,215L110,217L119,219L128,218L131,217L131,213L132,211L139,213L141,209L147,205L153,205L153,208L154,211L160,215L164,217L165,214L170,216L171,214L174,211L181,212L181,220L177,220L176,218L174,220L174,224L175,225L177,223L182,223L187,223L189,218L200,209L203,207L206,206L222,204L238,206L241,205L244,203L243,195L244,187L242,181L240,178L230,168L214,163L213,162L213,157L204,153Z " data-fips="CY05" data-fips-="" data-iso3="CYP" data-name="Limassol"/></g></svg>
|
||||
|
After Width: | Height: | Size: 4.8 KiB |
1
www/analytics/plugins/UserCountryMap/svg/CZE.svg
Normal file
|
After Width: | Height: | Size: 12 KiB |
1
www/analytics/plugins/UserCountryMap/svg/DEU.svg
Normal file
|
After Width: | Height: | Size: 22 KiB |
2
www/analytics/plugins/UserCountryMap/svg/DJI.svg
Normal file
|
|
@ -0,0 +1,2 @@
|
|||
<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE svg PUBLIC '-//W3C//DTD SVG 1.1//EN' 'http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd'><svg enable_background="new 0 0 450 301" height="301px" style="stroke-linejoin: round; stroke:#000; fill:#f6f3f0;" version="1.1" viewBox="0 0 450 301" width="450px" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink"><defs><style type="text/css"><![CDATA[path { fill-rule: evenodd; }
|
||||
#context path { fill: #eee; stroke: #bbb; } ]]></style></defs><metadata><views><view h="301.0" padding="0.06" w="450"><proj id="laea" lat0="11.2285397407" lon0="42.8569994876"/><bbox h="24.35" w="22.6" x="985.39" y="980.53"/><llbbox lat0="-90" lat1="90" lon0="-180" lon1="180"/></view></views></metadata><g id="context"><path d="M311,188L293,185L274,185L256,189L235,197L225,198L219,197L216,187L233,189L257,162L294,148L327,127L337,118L343,108L348,93L339,66L331,52L306,22L304,15L288,22L270,28L267,28L261,36L252,58L243,65L238,65L210,44L205,43L199,47L195,51L180,73L138,135L131,144L111,164L108,169L104,184L103,211L108,276L119,280L132,282L146,278L163,275L184,273L207,267L221,261L236,262L248,267L255,272L264,274L275,274L294,244L311,218L323,198L311,188Z " data-iso="DJI"/><path d="M195,51L199,47L205,43L210,44L238,65L243,65L252,58L261,36L267,28L270,28L288,22L304,15L300,0L150,0L159,5L172,22L182,36L195,51Z " data-iso="ERI"/><path d="M275,274L264,274L255,272L248,267L236,262L221,261L207,267L184,273L163,275L146,278L132,282L119,280L108,276L103,211L104,184L108,169L111,164L131,144L138,135L180,73L195,51L182,36L172,22L159,5L150,0L0,0L0,299L257,299L259,297L267,288L273,280L275,274Z " data-iso="ETH"/><path d="M323,198L311,218L294,244L275,274L273,280L267,288L259,297L257,299L408,299L381,268L352,221L323,198Z " data-iso="SOL"/><path d="M357,0L359,16L381,9L410,20L424,28L436,30L450,25L450,0L357,0Z " data-iso="YEM"/></g><g fill="red" fill-opacity="0.35" id="regions"><path d="M243,234L231,240L229,245L229,260L229,260L230,260L240,263L244,263L247,264L250,272L253,274L262,276L266,277L270,276L272,274L276,274L315,212L300,203L296,201L274,206L267,219L262,222L243,234Z " data-fips="DJ01" data-fips-="GM15" data-iso3="DJI" data-name="Ali Sabieh"/><path d="M312,191L310,183L309,181L305,186L302,186L299,184L293,185L272,185L280,194L289,195L294,195L313,192L312,191Z " data-fips="DJ07" data-fips-="DJ03|GM15" data-iso3="DJI" data-name="Djibouti"/><path d="M193,175L193,181L197,198L200,210L212,228L243,234L262,222L267,219L274,206L296,201L300,203L315,212L323,200L321,198L316,195L314,194L313,192L294,195L289,195L280,194L272,185L268,185L266,183L258,187L248,188L241,191L238,193L237,196L240,198L238,201L234,200L230,202L218,197L218,194L217,191L200,183L198,181L193,175Z " data-fips="" data-fips-="" data-iso3="DJI" data-name="Arta"/><path d="M229,260L229,260L229,245L231,240L243,234L212,228L200,210L197,198L193,181L193,175L167,149L161,146L137,141L135,140L129,148L123,152L122,153L117,158L110,162L108,167L106,178L101,192L101,200L105,218L107,234L106,263L105,270L103,274L104,276L108,278L126,282L127,284L131,282L140,282L144,281L148,276L152,275L161,274L168,276L171,276L178,273L184,273L188,271L196,273L223,261L229,260Z " data-fips="DJ06" data-fips-="DJ02|GM15" data-iso3="DJI" data-name="Dikhil"/><path d="M242,65L242,70L240,72L239,77L244,86L252,93L258,95L289,129L291,132L295,141L300,147L301,146L301,146L313,132L317,129L320,128L327,128L330,127L334,125L343,121L346,118L348,113L349,108L348,97L348,88L348,85L342,78L340,64L337,58L336,56L336,48L333,50L331,49L329,47L325,41L311,25L307,16L304,15L272,29L267,27L265,29L261,38L255,44L255,48L257,53L256,57L250,59L246,63L242,65Z " data-fips="DJ04" data-fips-="GM15" data-iso3="DJI" data-name="Obock"/><path d="M135,140L137,141L161,146L167,149L193,175L198,181L200,183L217,191L217,191L217,185L220,185L222,188L233,189L240,185L250,166L254,163L258,160L272,155L274,155L278,156L285,153L293,153L298,147L300,147L295,141L291,132L289,129L258,95L252,93L244,86L239,77L240,72L242,70L242,65L241,65L239,68L216,47L209,44L205,43L203,43L195,51L186,64L181,73L162,100L158,108L155,110L153,111L147,123L135,140Z " data-fips="DJ05" data-fips-="GM15" data-iso3="DJI" data-name="Tadjourah"/></g></svg>
|
||||
|
After Width: | Height: | Size: 4 KiB |
2
www/analytics/plugins/UserCountryMap/svg/DMA.svg
Normal file
|
|
@ -0,0 +1,2 @@
|
|||
<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE svg PUBLIC '-//W3C//DTD SVG 1.1//EN' 'http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd'><svg enable_background="new 0 0 450 301" height="301px" style="stroke-linejoin: round; stroke:#000; fill:#f6f3f0;" version="1.1" viewBox="0 0 450 301" width="450px" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink"><defs><style type="text/css"><![CDATA[path { fill-rule: evenodd; }
|
||||
#context path { fill: #eee; stroke: #bbb; } ]]></style></defs><metadata><views><view h="301.0" padding="0.06" w="450"><proj id="laea" lat0="15.5389872301" lon0="-61.3536410472"/><bbox h="5.67" w="3.19" x="998.22" y="998.66"/><llbbox lat0="-90" lat1="90" lon0="-180" lon1="180"/></view></views></metadata><g id="context"><path d="M280,259L299,179L283,79L256,41L169,9L162,29L155,80L196,161L221,273L280,259Z " data-iso="DMA"/></g><g fill="red" fill-opacity="0.35" id="regions"><path d="M278,76L269,59L265,49L263,45L232,32L225,34L215,39L207,33L197,18L189,13L182,10L175,9L180,34L182,37L186,41L189,44L193,45L194,52L194,71L194,75L198,78L199,81L201,94L202,100L210,108L215,111L226,108L232,111L238,112L244,115L254,123L257,132L269,121L272,119L274,119L276,117L280,115L284,112L284,94L288,90L278,76Z " data-fips="DO02" data-fips-="" data-iso3="DMA" data-name="Saint Andrew"/><path d="M296,184L300,160L297,159L294,157L292,156L296,138L295,114L289,91L288,90L284,94L284,112L280,115L276,117L274,119L272,119L269,121L257,132L247,158L251,169L251,197L261,203L263,205L263,206L264,212L263,215L268,211L271,210L297,205L296,184Z " data-fips="DO03" data-fips-="" data-iso3="DMA" data-name="Saint David"/><path d="M264,212L263,206L263,205L261,203L251,197L225,210L223,215L219,218L210,217L210,221L211,229L219,238L223,245L222,248L222,252L233,256L242,243L248,238L258,231L266,218L265,217L263,215L264,212Z " data-fips="DO04" data-fips-="" data-iso3="DMA" data-name="Saint George"/><path d="M162,9L155,37L150,45L155,45L162,48L167,49L163,55L153,62L150,67L150,73L152,76L153,77L156,74L165,75L166,75L201,94L199,81L198,78L194,75L194,71L194,52L193,45L189,44L186,41L182,37L180,34L175,9L162,9Z " data-fips="DO05" data-fips-="" data-iso3="DMA" data-name="Saint John"/><path d="M254,123L244,115L238,112L232,111L226,108L215,111L210,108L202,100L191,101L186,103L181,109L171,118L172,119L174,126L176,132L178,137L192,152L194,157L196,168L203,165L210,165L221,168L226,168L247,158L257,132L254,123Z " data-fips="DO06" data-fips-="" data-iso3="DMA" data-name="Saint Joseph"/><path d="M222,252L223,267L223,268L223,268L233,263L233,256L222,252Z " data-fips="DO07" data-fips-="" data-iso3="DMA" data-name="Saint Luke"/><path d="M233,263L223,268L223,268L221,283L222,288L229,290L236,288L239,284L233,263Z " data-fips="DO08" data-fips-="" data-iso3="DMA" data-name="Saint Mark"/><path d="M240,283L242,278L250,275L254,266L257,263L261,262L266,263L278,262L283,258L296,236L297,210L297,205L271,210L268,211L263,215L265,217L266,218L258,231L248,238L242,243L233,256L233,263L239,284L240,283Z " data-fips="DO09" data-fips-="" data-iso3="DMA" data-name="Saint Patrick"/><path d="M251,169L247,158L226,168L221,168L210,165L203,165L196,168L196,169L197,174L206,193L209,205L210,217L219,218L223,215L225,210L251,197L251,169Z " data-fips="DO10" data-fips-="" data-iso3="DMA" data-name="Saint Paul"/><path d="M166,75L165,75L156,74L153,77L156,79L158,84L159,100L160,108L165,112L168,114L171,118L181,109L186,103L191,101L202,100L201,94L166,75Z " data-fips="DO11" data-fips-="" data-iso3="DMA" data-name="Saint Peter"/></g></svg>
|
||||
|
After Width: | Height: | Size: 3.4 KiB |
1
www/analytics/plugins/UserCountryMap/svg/DNK.svg
Normal file
|
After Width: | Height: | Size: 9.7 KiB |
2
www/analytics/plugins/UserCountryMap/svg/DOM.svg
Normal file
|
After Width: | Height: | Size: 14 KiB |
2
www/analytics/plugins/UserCountryMap/svg/DZA.svg
Normal file
|
After Width: | Height: | Size: 18 KiB |
2
www/analytics/plugins/UserCountryMap/svg/ECU.svg
Normal file
|
After Width: | Height: | Size: 12 KiB |
2
www/analytics/plugins/UserCountryMap/svg/EGY.svg
Normal file
|
After Width: | Height: | Size: 11 KiB |
2
www/analytics/plugins/UserCountryMap/svg/ERI.svg
Normal file
|
After Width: | Height: | Size: 6.8 KiB |
2
www/analytics/plugins/UserCountryMap/svg/ESP.svg
Normal file
|
After Width: | Height: | Size: 12 KiB |
2
www/analytics/plugins/UserCountryMap/svg/EST.svg
Normal file
|
After Width: | Height: | Size: 12 KiB |
2
www/analytics/plugins/UserCountryMap/svg/ETH.svg
Normal file
|
After Width: | Height: | Size: 14 KiB |
2
www/analytics/plugins/UserCountryMap/svg/EU.svg
Normal file
|
After Width: | Height: | Size: 37 KiB |
2
www/analytics/plugins/UserCountryMap/svg/FIN.svg
Normal file
|
After Width: | Height: | Size: 21 KiB |
2
www/analytics/plugins/UserCountryMap/svg/FJI.svg
Normal file
|
|
@ -0,0 +1,2 @@
|
|||
<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE svg PUBLIC '-//W3C//DTD SVG 1.1//EN' 'http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd'><svg enable_background="new 0 0 450 301" height="301px" style="stroke-linejoin: round; stroke:#000; fill:#f6f3f0;" version="1.1" viewBox="0 0 450 301" width="450px" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink"><defs><style type="text/css"><![CDATA[path { fill-rule: evenodd; }
|
||||
#context path { fill: #eee; stroke: #bbb; } ]]></style></defs><metadata><views><view h="301.0" padding="0.06" w="450"><proj id="laea" lat0="-17.9116970759" lon0="178.289753188"/><bbox h="124.32" w="93.19" x="952.55" y="927.99"/><llbbox lat0="-90" lat1="90" lon0="-180" lon1="180"/></view></views></metadata><g id="context"><path d="M233,205L225,205L220,210L223,209L227,206L229,207L233,206L233,205Z M257,179L256,174L254,177L257,179Z M325,175L323,173L322,174L325,175Z M227,157L226,156L217,158L214,158L208,160L202,165L203,168L198,173L198,175L204,180L209,181L215,183L223,183L228,180L238,178L234,164L230,162L227,157Z M259,157L260,155L258,154L259,157Z M197,151L199,148L196,149L197,151Z M276,145L276,140L274,143L276,145Z M276,144L279,142L281,139L279,137L276,140L276,144Z M276,122L270,123L268,123L261,125L258,128L243,133L242,135L237,136L235,135L233,140L236,140L239,145L249,141L253,138L256,138L257,139L260,140L274,139L273,136L274,132L272,132L263,139L263,135L265,132L269,130L276,122Z " data-iso="FJI"/><path d="M415,277L413,280L415,282L415,277Z M408,273L404,270L403,271L408,276L408,273Z M445,199L442,199L444,201L445,199Z " data-iso="TON"/><path d="M332,68L328,66L329,67L332,68Z " data-iso="WLF"/></g><g fill="red" fill-opacity="0.35" id="regions"><path d="M214,183L220,184L226,181L235,180L238,178L236,175L237,172L236,166L232,162L232,162L230,166L219,166L218,171L219,174L218,176L214,175L214,179L213,182L214,183Z " data-fips="FJ01" data-fips-="" data-iso3="FJI" data-name="Central"/><path d="M230,203L228,204L224,207L221,207L218,209L222,210L224,210L224,207L228,206L229,207L233,206L233,204L230,203Z M273,194L274,192L271,193L273,194Z M256,174L254,174L254,177L256,179L257,177L256,174Z M324,176L324,173L322,173L324,176Z M242,168L243,165L242,164L242,168Z M259,157L260,153L258,154L259,157Z " data-fips="FJ02" data-fips-="" data-iso3="FJI" data-name="Eastern"/><path d="M274,146L276,145L276,140L272,145L274,146Z M279,142L281,140L279,137L277,144L279,142Z M273,124L275,121L272,123L268,122L265,124L264,124L261,125L256,129L253,129L246,130L245,132L243,133L242,135L241,134L238,136L235,135L233,141L237,140L239,146L242,145L243,142L248,143L249,140L254,137L257,139L256,140L260,141L264,140L273,137L271,136L274,131L274,131L268,135L266,137L261,139L263,135L273,124Z " data-fips="FJ03" data-fips-="" data-iso3="FJI" data-name="Northern"/><path d="M213,182L214,179L214,175L218,176L219,174L218,171L219,166L230,166L232,162L231,162L226,156L215,158L214,159L209,159L209,161L202,166L203,168L201,171L198,172L198,175L200,179L210,182L213,182Z M199,148L197,148L196,150L199,148Z M204,140L206,138L203,140L204,140Z " data-fips="FJ05" data-fips-="" data-iso3="FJI" data-name="Western"/></g></svg>
|
||||
|
After Width: | Height: | Size: 3 KiB |
1
www/analytics/plugins/UserCountryMap/svg/FRA.svg
Normal file
|
After Width: | Height: | Size: 21 KiB |
2
www/analytics/plugins/UserCountryMap/svg/FRO.svg
Normal file
|
|
@ -0,0 +1,2 @@
|
|||
<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE svg PUBLIC '-//W3C//DTD SVG 1.1//EN' 'http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd'><svg enable_background="new 0 0 450 301" height="301px" style="stroke-linejoin: round; stroke:#000; fill:#f6f3f0;" version="1.1" viewBox="0 0 450 301" width="450px" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink"><defs><style type="text/css"><![CDATA[path { fill-rule: evenodd; }
|
||||
#context path { fill: #eee; stroke: #bbb; } ]]></style></defs><metadata><views><view h="301.0" padding="0.06" w="450"><proj id="laea" lat0="62.1992528346" lon0="-6.78808412278"/><bbox h="13.35" w="8.83" x="994.58" y="997.06"/><llbbox lat0="-90" lat1="90" lon0="-180" lon1="180"/></view></views></metadata><g id="context"><path d="M259,274L259,260L254,249L254,240L250,236L235,231L232,223L228,222L229,231L234,250L250,272L259,282L262,283L259,274Z M269,175L269,169L264,159L247,150L240,148L235,149L238,159L241,165L251,172L263,185L266,185L269,175Z M196,82L190,79L177,82L165,82L171,100L187,108L197,110L205,108L212,101L207,93L196,82Z M268,58L245,47L226,33L198,42L218,95L245,127L256,134L257,131L256,124L245,99L241,95L241,88L243,82L250,85L259,95L265,95L268,58Z M297,49L288,40L277,23L278,44L277,59L279,64L281,66L291,69L297,49Z " data-iso="FRO"/></g><g fill="red" fill-opacity="0.35" id="regions"><path d="M234,225L233,225L235,220L233,218L231,218L226,221L227,224L225,224L227,234L230,241L234,247L237,252L237,259L242,267L254,278L259,286L262,288L265,288L266,285L266,280L264,276L261,275L262,271L256,270L254,271L252,275L252,272L248,269L248,267L251,268L253,267L258,265L262,265L263,262L257,259L258,257L257,252L252,252L248,245L245,244L246,242L250,243L254,247L256,246L257,244L257,240L254,237L246,236L243,231L231,233L231,231L237,225L234,225Z M240,149L235,146L232,146L233,150L236,157L237,165L241,168L253,170L255,172L263,190L265,190L268,185L269,173L270,170L270,168L266,164L265,160L263,158L253,155L252,154L247,149L243,149L240,149Z M149,94L148,91L144,88L140,89L137,91L137,93L148,94L149,94Z M199,84L196,83L191,79L192,75L183,78L179,81L178,85L172,84L167,79L164,80L165,85L167,91L170,94L177,96L183,100L171,100L171,102L173,102L178,106L186,108L192,112L193,111L193,109L189,104L191,102L193,104L195,111L194,115L196,113L204,110L199,108L201,106L208,108L211,106L215,96L213,92L209,92L206,92L203,91L199,84Z M307,52L310,48L309,43L313,39L313,37L311,36L307,36L303,40L301,41L299,43L303,53L307,52Z M196,35L195,34L193,45L193,50L196,55L194,56L192,64L190,66L190,71L193,75L198,79L203,76L205,79L203,80L202,83L204,86L206,87L216,89L222,95L223,97L224,105L225,107L232,110L239,122L247,128L250,134L254,138L259,136L258,132L259,126L255,123L254,119L257,112L253,108L245,108L240,106L240,104L248,104L249,103L244,92L233,93L238,89L239,87L239,80L232,78L225,71L220,70L221,64L214,51L213,44L211,41L207,38L196,35Z M235,32L233,32L229,28L228,28L222,29L217,33L215,34L210,32L209,36L213,41L218,55L226,68L233,76L238,76L248,89L254,93L256,87L255,80L251,75L247,72L244,68L248,67L252,71L255,76L258,81L259,88L259,95L260,101L265,104L264,102L266,98L266,96L264,95L265,92L273,91L273,89L268,84L266,82L263,81L263,79L270,82L276,83L272,78L256,70L256,68L258,67L266,68L271,67L271,65L265,61L258,58L253,61L248,57L248,55L251,54L253,51L254,48L253,47L243,45L246,43L244,40L241,40L231,43L231,46L232,55L230,52L229,41L230,39L235,35L235,32Z M299,49L292,45L287,39L282,32L279,21L280,19L276,21L275,25L276,30L279,46L278,53L275,51L274,53L274,58L275,62L280,68L282,72L284,71L280,58L282,57L284,60L287,67L289,70L292,70L297,68L297,66L295,58L292,60L290,58L285,51L286,49L289,52L293,54L297,53L299,49Z M274,47L272,37L267,24L265,20L263,17L261,20L261,26L262,32L270,47L272,49L274,47Z M266,55L267,52L256,30L252,21L249,16L247,17L248,21L251,30L259,47L260,51L262,54L264,56L266,55Z M290,31L288,24L286,21L284,14L282,12L279,11L277,13L278,16L280,18L281,25L283,30L286,35L290,39L294,41L297,39L298,35L297,32L294,31L292,33L290,31Z " data-fips="FO00" data-fips-="" data-iso3="FRO" data-name="Eysturoyar"/></g></svg>
|
||||
|
After Width: | Height: | Size: 3.8 KiB |
2
www/analytics/plugins/UserCountryMap/svg/GAB.svg
Normal file
|
After Width: | Height: | Size: 9 KiB |
1
www/analytics/plugins/UserCountryMap/svg/GBR.svg
Normal file
|
After Width: | Height: | Size: 18 KiB |
2
www/analytics/plugins/UserCountryMap/svg/GEO.svg
Normal file
|
After Width: | Height: | Size: 9.8 KiB |
2
www/analytics/plugins/UserCountryMap/svg/GHA.svg
Normal file
|
After Width: | Height: | Size: 12 KiB |
2
www/analytics/plugins/UserCountryMap/svg/GIN.svg
Normal file
|
After Width: | Height: | Size: 11 KiB |
2
www/analytics/plugins/UserCountryMap/svg/GMB.svg
Normal file
|
|
@ -0,0 +1,2 @@
|
|||
<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE svg PUBLIC '-//W3C//DTD SVG 1.1//EN' 'http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd'><svg enable_background="new 0 0 450 301" height="301px" style="stroke-linejoin: round; stroke:#000; fill:#f6f3f0;" version="1.1" viewBox="0 0 450 301" width="450px" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink"><defs><style type="text/css"><![CDATA[path { fill-rule: evenodd; }
|
||||
#context path { fill: #eee; stroke: #bbb; } ]]></style></defs><metadata><views><view h="301.0" padding="0.06" w="450"><proj id="laea" lat0="13.5716008571" lon0="-14.8021772893"/><bbox h="13.57" w="40.48" x="973.49" y="994.76"/><llbbox lat0="-90" lat1="90" lon0="-180" lon1="180"/></view></views></metadata><g id="context"><path d="M438,255L438,266L446,282L445,294L443,299L450,299L450,256L438,255Z " data-iso="GIN"/><path d="M64,147L76,162L88,163L117,149L155,147L192,142L210,144L211,146L205,148L186,147L161,152L137,154L114,158L110,165L110,171L99,170L80,173L61,168L55,161L53,150L46,145L35,151L25,163L32,189L33,201L41,193L48,189L104,188L157,189L160,166L181,162L204,159L230,156L236,152L240,144L243,137L248,134L265,140L275,146L312,163L343,174L369,178L400,170L422,165L425,155L421,145L405,136L382,137L375,139L365,142L358,144L348,142L334,134L326,126L314,123L300,119L277,103L265,100L254,99L232,102L211,111L200,130L94,128L60,129L64,147Z " data-iso="GMB"/><path d="M438,255L393,255L274,255L242,255L191,281L156,288L115,285L102,287L78,297L66,299L443,299L445,294L446,282L438,266L438,255Z M40,299L62,299L46,297L39,298L40,299Z " data-iso="GNB"/><path d="M438,255L450,256L450,0L0,0L0,12L6,17L18,44L29,60L30,72L37,72L46,68L53,67L50,72L38,78L33,86L36,94L49,104L57,115L60,129L94,128L200,130L211,111L232,102L254,99L265,100L277,103L300,119L314,123L326,126L334,134L348,142L358,144L365,142L375,139L382,137L405,136L421,145L425,155L422,165L400,170L369,178L343,174L312,163L275,146L265,140L248,134L243,137L240,144L236,152L230,156L204,159L181,162L160,166L157,189L104,188L48,189L41,193L33,201L33,212L32,226L33,251L30,255L32,261L35,267L40,264L44,262L49,253L54,249L61,256L73,261L75,264L74,268L69,267L60,264L44,270L32,275L29,282L34,292L39,298L46,297L62,299L66,299L78,297L102,287L115,285L156,288L191,281L242,255L274,255L393,255L438,255Z " data-iso="SEN"/></g><g fill="red" fill-opacity="0.35" id="regions"><path d="M202,123L210,124L218,124L219,125L219,133L220,137L229,141L237,137L244,134L246,132L250,130L254,132L260,138L266,143L275,147L279,148L298,154L300,158L304,161L309,163L313,164L323,162L324,163L328,166L332,158L337,156L336,156L333,149L335,147L340,140L339,139L338,138L335,130L334,127L329,123L324,120L318,120L313,121L304,126L301,126L295,121L292,112L289,107L284,104L280,102L266,101L258,98L255,98L246,102L236,108L228,103L222,102L216,105L210,109L206,113L202,122L202,123Z " data-fips="GA03" data-fips-="" data-iso3="GMB" data-name="Maccarthy Island"/><path d="M340,140L335,147L333,149L336,156L337,156L332,158L328,166L329,168L333,169L337,169L340,171L344,175L353,178L356,179L364,178L371,179L378,178L384,173L388,172L394,170L400,170L405,168L415,167L422,164L425,159L424,148L421,144L418,142L415,136L413,134L406,132L401,131L397,134L392,134L383,138L373,141L366,145L355,149L350,147L340,140Z " data-fips="GA04" data-fips-="" data-iso3="GMB" data-name="Upper River"/><path d="M158,176L139,172L129,173L127,173L123,176L122,175L119,171L116,170L114,171L115,171L115,172L110,175L107,176L104,175L105,170L104,167L100,166L98,166L85,174L83,171L76,172L76,173L79,173L84,181L81,179L79,181L79,175L75,174L71,171L69,170L62,170L56,163L56,161L55,157L54,153L52,151L53,150L57,149L56,147L50,144L48,146L45,143L44,142L41,145L33,154L27,158L25,162L24,163L25,171L29,177L28,185L31,192L31,194L30,198L34,201L35,196L38,193L40,188L45,187L157,189L158,188L158,179L158,176Z " data-fips="GA05" data-fips-="GA01" data-iso3="GMB" data-name="Banjul"/><path d="M244,134L237,137L229,141L229,143L228,148L223,150L217,150L212,148L208,143L206,143L202,144L196,141L194,141L190,146L188,147L184,148L179,145L174,148L166,151L164,151L155,150L152,150L148,152L145,152L136,154L117,153L113,151L111,155L106,159L105,161L108,174L108,175L113,171L114,171L116,170L119,171L122,175L123,176L127,173L129,173L139,172L158,176L158,167L161,164L170,163L176,161L187,162L199,158L203,158L218,161L223,161L235,156L238,152L239,140L241,137L244,134Z M202,124L201,130L199,131L124,130L60,129L62,135L61,140L66,148L68,155L65,161L70,161L80,164L92,163L95,162L94,158L96,154L97,156L96,160L102,158L107,153L116,148L123,150L166,147L170,145L176,142L181,142L185,144L187,143L192,139L194,138L206,141L213,146L221,148L224,148L228,145L220,137L219,133L219,125L218,124L210,124L202,123L202,124Z " data-fips="GA02" data-fips-="" data-iso3="GMB" data-name="Lower River"/></g></svg>
|
||||
|
After Width: | Height: | Size: 4.6 KiB |
2
www/analytics/plugins/UserCountryMap/svg/GNB.svg
Normal file
|
After Width: | Height: | Size: 9.8 KiB |
2
www/analytics/plugins/UserCountryMap/svg/GNQ.svg
Normal file
|
|
@ -0,0 +1,2 @@
|
|||
<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE svg PUBLIC '-//W3C//DTD SVG 1.1//EN' 'http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd'><svg enable_background="new 0 0 450 301" height="301px" style="stroke-linejoin: round; stroke:#000; fill:#f6f3f0;" version="1.1" viewBox="0 0 450 301" width="450px" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink"><defs><style type="text/css"><![CDATA[path { fill-rule: evenodd; }
|
||||
#context path { fill: #eee; stroke: #bbb; } ]]></style></defs><metadata><views><view h="301.0" padding="0.06" w="450"><proj id="laea" lat0="-1.44572539656" lon0="5.63310697886"/><bbox h="73.22" w="79.09" x="995.5" y="931.39"/><llbbox lat0="-90" lat1="90" lon0="-180" lon1="180"/></view></views></metadata><g id="context"><path d="M292,91L295,96L301,98L357,98L369,98L369,95L370,92L380,91L399,92L421,92L446,94L450,94L450,0L251,0L251,1L266,7L267,9L275,9L276,6L276,3L282,4L285,2L284,8L288,12L289,13L283,12L279,16L282,21L284,25L290,25L285,29L295,41L297,44L299,52L296,60L295,70L293,79L292,91Z " data-iso="CMR"/><path d="M369,98L369,110L369,157L303,157L297,159L290,153L287,153L281,155L281,157L283,168L283,176L280,178L279,174L276,174L268,177L268,180L272,183L275,189L279,193L291,198L299,196L302,198L292,201L292,205L289,203L280,200L275,199L272,197L269,190L267,193L269,210L266,225L258,236L251,239L249,242L243,243L239,238L237,237L244,253L249,261L255,273L262,277L269,274L266,282L271,285L274,284L278,288L272,290L268,290L253,273L254,277L259,284L264,294L265,299L450,299L450,94L446,94L421,92L399,92L380,91L370,92L369,95L369,98Z " data-iso="GAB"/><path d="M369,98L357,98L301,98L295,96L292,91L291,103L292,110L288,117L283,129L281,130L276,135L273,142L271,150L277,151L282,154L281,155L287,153L290,153L297,159L303,157L369,157L369,110L369,98Z M238,18L235,19L233,23L232,27L230,32L224,34L223,41L225,43L234,45L237,45L239,41L241,36L249,25L249,21L247,18L238,18Z " data-iso="GNQ"/><path d="M134,201L138,195L138,191L135,187L132,187L127,190L124,193L124,196L128,205L134,201Z M172,128L174,125L172,122L167,127L170,130L172,128Z " data-iso="STP"/></g><g fill="red" fill-opacity="0.35" id="regions"><path d="M311,98L312,104L311,106L307,110L307,116L302,125L298,129L307,132L308,133L309,143L315,151L313,152L307,153L302,157L303,157L323,157L350,157L351,155L347,148L341,143L341,141L345,135L348,130L348,128L340,127L337,129L331,127L332,124L331,122L332,119L333,116L329,113L328,111L328,111L324,106L323,101L322,98L311,98Z " data-fips="EK06" data-fips-="" data-iso3="GNQ" data-name="Centro Sur"/><path d="M322,98L323,101L324,106L328,111L328,111L334,108L337,107L343,110L346,110L349,108L350,109L352,119L353,120L360,120L364,119L369,120L369,100L368,98L337,98L322,98Z " data-fips="EK07" data-fips-="" data-iso3="GNQ" data-name="Ki-Ntem"/><path d="M302,157L307,153L313,152L315,151L309,143L308,133L307,132L298,129L302,125L307,116L307,110L311,106L312,104L311,98L301,98L294,95L291,90L290,91L291,94L291,100L290,101L292,108L290,113L287,119L282,125L285,129L283,127L280,132L275,136L271,146L269,148L270,150L273,152L274,151L280,152L281,154L284,154L290,152L297,160L300,160L301,157L302,157Z " data-fips="EK08" data-fips-="" data-iso3="GNQ" data-name="Litoral"/><path d="M328,111L329,113L333,116L332,119L331,122L332,124L331,127L337,129L340,127L348,128L348,130L345,135L341,141L341,143L347,148L351,155L350,157L369,157L369,157L369,120L364,119L360,120L353,120L352,119L350,109L349,108L346,110L343,110L337,107L334,108L328,111Z " data-fips="EK09" data-fips-="" data-iso3="GNQ" data-name="Wele-Nzs"/><path d="M246,28L250,22L249,20L245,19L236,18L235,20L233,24L233,24L242,27L243,28L245,30L246,28Z " data-fips="EK05" data-fips-="EK04" data-iso3="GNQ" data-name="Bioko Norte"/><path d="M232,28L229,33L225,33L223,36L223,38L224,42L229,45L235,46L240,40L241,36L242,35L244,30L245,30L243,28L242,27L233,24L232,28Z " data-fips="EK04" data-fips-="EK05" data-iso3="GNQ" data-name="Bioko Sur"/></g></svg>
|
||||
|
After Width: | Height: | Size: 3.8 KiB |
2
www/analytics/plugins/UserCountryMap/svg/GRC.svg
Normal file
|
After Width: | Height: | Size: 21 KiB |
2
www/analytics/plugins/UserCountryMap/svg/GRL.svg
Normal file
|
After Width: | Height: | Size: 29 KiB |
2
www/analytics/plugins/UserCountryMap/svg/GTM.svg
Normal file
|
After Width: | Height: | Size: 11 KiB |
2
www/analytics/plugins/UserCountryMap/svg/GUY.svg
Normal file
|
After Width: | Height: | Size: 10 KiB |
2
www/analytics/plugins/UserCountryMap/svg/HND.svg
Normal file
|
After Width: | Height: | Size: 12 KiB |
2
www/analytics/plugins/UserCountryMap/svg/HRV.svg
Normal file
|
After Width: | Height: | Size: 17 KiB |
2
www/analytics/plugins/UserCountryMap/svg/HTI.svg
Normal file
|
After Width: | Height: | Size: 8 KiB |
2
www/analytics/plugins/UserCountryMap/svg/HUN.svg
Normal file
|
After Width: | Height: | Size: 15 KiB |
2
www/analytics/plugins/UserCountryMap/svg/IDN.svg
Normal file
|
After Width: | Height: | Size: 21 KiB |
1
www/analytics/plugins/UserCountryMap/svg/IND.svg
Normal file
|
After Width: | Height: | Size: 32 KiB |
2
www/analytics/plugins/UserCountryMap/svg/IRL.svg
Normal file
|
After Width: | Height: | Size: 21 KiB |
2
www/analytics/plugins/UserCountryMap/svg/IRN.svg
Normal file
|
After Width: | Height: | Size: 19 KiB |
2
www/analytics/plugins/UserCountryMap/svg/IRQ.svg
Normal file
|
After Width: | Height: | Size: 11 KiB |
2
www/analytics/plugins/UserCountryMap/svg/ISL.svg
Normal file
|
After Width: | Height: | Size: 15 KiB |
2
www/analytics/plugins/UserCountryMap/svg/ISR.svg
Normal file
|
After Width: | Height: | Size: 6.5 KiB |
2
www/analytics/plugins/UserCountryMap/svg/ITA.svg
Normal file
|
After Width: | Height: | Size: 20 KiB |
2
www/analytics/plugins/UserCountryMap/svg/JAM.svg
Normal file
|
After Width: | Height: | Size: 5.6 KiB |
2
www/analytics/plugins/UserCountryMap/svg/JOR.svg
Normal file
|
After Width: | Height: | Size: 6.7 KiB |
1
www/analytics/plugins/UserCountryMap/svg/JPN.svg
Normal file
|
After Width: | Height: | Size: 13 KiB |
2
www/analytics/plugins/UserCountryMap/svg/KAZ.svg
Normal file
|
After Width: | Height: | Size: 16 KiB |