'X (Twitter)',
'linkedin' => 'LinkedIn',
'facebook' => 'Facebook',
'telegram' => 'Telegram',
'whatsapp' => 'WhatsApp',
'email' => 'Email',
'raindrop' => 'Raindrop',
'reddit' => 'Reddit',
'bluesky' => 'Bluesky',
'line' => 'LINE',
'claude' => 'Claude',
'chatgpt' => 'ChatGPT',
'google_ai' => 'Google AI',
'gemini' => 'Gemini',
'grok' => 'Grok',
'perplexity' => 'Perplexity',
'deepseek' => 'DeepSeek',
'mistral' => 'Mistral',
'copilot' => 'Copilot',
);
}
/**
* Prepare sparkline data with all days filled
*
* @param array $timeline Raw timeline data.
* @param string $start_date Start date.
* @param string $end_date End date.
* @return array Associative array of date => count.
*/
private static function ayudawp_prepare_sparkline_data( $timeline, $start_date, $end_date ) {
$data = array();
$current = strtotime( $start_date );
$end = strtotime( $end_date );
while ( $current <= $end ) {
$date_key = gmdate( 'Y-m-d', $current );
$data[ $date_key ] = 0;
$current = strtotime( '+1 day', $current );
}
foreach ( $timeline as $row ) {
if ( isset( $data[ $row['date'] ] ) ) {
$data[ $row['date'] ] = (int) $row['click_count'];
}
}
return $data;
}
/**
* Render sparkline chart
*
* @param array $data Sparkline data.
*/
private static function ayudawp_render_sparkline( $data ) {
$values = array_values( $data );
$dates = array_keys( $data );
$max = max( $values );
if ( 0 === $max ) {
$max = 1;
}
?>