| Server IP : 38.190.208.107 / Your IP : 216.73.216.219 Web Server : nginx/1.28.1 System : Linux ht2026040333114 6.1.0-10-amd64 #1 SMP PREEMPT_DYNAMIC Debian 6.1.37-1 (2023-07-03) x86_64 User : www ( 1000) PHP Version : 8.2.28 Disable Function : passthru,exec,system,putenv,chroot,chgrp,chown,shell_exec,popen,proc_open,pcntl_exec,ini_alter,ini_restore,dl,openlog,syslog,readlink,symlink,popepassthru,pcntl_alarm,pcntl_fork,pcntl_waitpid,pcntl_wait,pcntl_wifexited,pcntl_wifstopped,pcntl_wifsignaled,pcntl_wifcontinued,pcntl_wexitstatus,pcntl_wtermsig,pcntl_wstopsig,pcntl_signal,pcntl_signal_dispatch,pcntl_get_last_error,pcntl_strerror,pcntl_sigprocmask,pcntl_sigwaitinfo,pcntl_sigtimedwait,pcntl_exec,pcntl_getpriority,pcntl_setpriority,imap_open,apache_setenv,eval,assert,passthru,system,exec,shell_exec,popen,proc_open MySQL : OFF | cURL : ON | WGET : OFF | Perl : OFF | Python : OFF | Sudo : OFF | Pkexec : OFF Directory : /www/wwwroot/wp.3/wp-content/plugins/wp-statistics/assets/dev/javascript/pages/ |
Upload File : |
/**
* Configuration for horizontal bar charts
*/
let data;
let skipConfigs = false;
try {
if (typeof Wp_Statistics_Visitors_Object !== 'undefined' && Wp_Statistics_Visitors_Object) {
data = Wp_Statistics_Visitors_Object;
} else {
skipConfigs = true;
}
} catch (error) {
skipConfigs = true;
}
const barChartConfigs = skipConfigs ? [] : [
{
elementId: 'visitors-logged-in-users',
data: data?.logged_in_users,
},
{
elementId: 'visitors-device-categories',
data: data?.devices,
},
{
elementId: 'visitors-top-countries',
data: data?.countries,
},
{
elementId: 'visitors-top-browsers',
data: data?.browsers,
},
];
/**
* Configuration for line charts
*/
const trafficChart = skipConfigs ? null : data?.traffic;
const lineChartConfigs = skipConfigs ? [] : [
{
elementId: 'trafficTrendsChart',
dataSource: () => Wp_Statistics_Visitors_Object?.traffic_chart_data,
},
{
elementId: 'trafficChart',
dataSource: () => trafficChart,
},
{
elementId: 'LoggedInUsersChart',
dataSource: () => Wp_Statistics_Visitors_Object?.logged_in_chart_data,
},
];
/**
* Configuration for vector map
*/
const vectorMapConfig = skipConfigs ? {} : {
elementId: 'wp-statistics-visitors-map',
data: data?.map,
};
/**
* Utility to check if a nested property exists
* @param {Object} obj - The object to check
* @param {...string} keys - The nested keys to check
* @returns {boolean} - Whether the property exists
*/
const isPropertySet = (obj, ...keys) => {
return keys.reduce((current, key) => current && typeof current === 'object' && key in current, obj);
};
/**
* Render a horizontal bar chart
* @param {Object} config - Configuration object with elementId and data
*/
const renderBarChart = ({elementId, data}) => {
const element = document.getElementById(elementId);
if (!element) {
return;
}
if (!data?.data?.length) {
jQuery(element).parent().html(wps_js.no_results());
return;
}
try {
wps_js.horizontal_bar(elementId, data.labels, data.data, data.icons);
} catch (error) {
jQuery(element).parent().html(wps_js.no_results());
}
};
/**
* Render a line chart
* @param {Object} config - Configuration object with elementId and dataSource
*/
const renderLineChart = ({elementId, dataSource}) => {
const element = document.getElementById(elementId);
if (!element) {
return;
}
const data = dataSource();
if (!data) {
jQuery(element).parent().html(wps_js.no_results());
return;
}
try {
wps_js.new_line_chart(data, elementId, null);
} catch (error) {
jQuery(element).parent().html(wps_js.no_results());
}
};
/**
* Render the vector map
* @param {Object} config - Configuration object with elementId and data
*/
const renderVectorMap = ({elementId, data}) => {
const element = document.getElementById(elementId);
if (!element) {
return;
}
if (!data?.labels?.length || !data?.data?.length) {
jQuery(element).parent().html(wps_js.no_results());
return;
}
try {
wps_js.vectorMap(data);
} catch (error) {
jQuery(element).parent().html(wps_js.no_results());
}
};
/**
* Initialize all visualizations
*/
const initializeVisualizations = () => {
if (typeof Wp_Statistics_Visitors_Object === 'undefined' || !Wp_Statistics_Visitors_Object) {
return;
}
if (!wps_js.isset(wps_js.global, 'request_params', 'page') || wps_js.global.request_params.page !== "visitors") {
return;
}
barChartConfigs.forEach(renderBarChart);
lineChartConfigs.forEach(renderLineChart);
renderVectorMap(vectorMapConfig);
};
initializeVisualizations();