kaan1233/bistelligence-api
0
1
2// ==================== API ====================
3// Dinamik URL: Localhost'ta da, canlı sunucuda da sorunsuz çalışır.
4const API_BASE = (window.location.origin.includes('onrender.com') || window.location.protocol === 'file:' || window.location.hostname === 'localhost' || window.location.hostname === '127.0.0.1')
5 ? 'https://kaan1233-bistelligence-api.hf.space/api'
6 : window.location.origin + '/api';
7
8// ==================== Formatters ====================
9const formatTL = (num) => new Intl.NumberFormat('tr-TR', { minimumFractionDigits: 2, maximumFractionDigits: 2 }).format(num) + ' TL';
10const formatCurrency = formatTL;
11const formatPct = (num) => '%' + new Intl.NumberFormat('tr-TR', { minimumFractionDigits: 2, maximumFractionDigits: 2 }).format(num);
12const getColor = (val) => val > 0 ? 'var(--success)' : val < 0 ? 'var(--danger)' : 'var(--text-primary)';
13const getTrendClass = (val) => val > 0 ? 'text-success' : val < 0 ? 'text-danger' : '';
14
15function getScoreColor(score) {
16 if (score >= 75) return 'var(--success)';
17 if (score >= 60) return '#22c55e';
18 if (score >= 40) return 'var(--warning)';
19 if (score >= 25) return '#f97316';
20 return 'var(--danger)';
21}
22
23function createSignalBadge(signal) {
24 if (!signal || !signal.label) return '';
25 const classMap = {
26 'GÜÇLÜ AL': 'strong-buy',
27 'AL': 'buy',
28 'TUT': 'hold',
29 'SAT': 'sell',
30 'GÜÇLÜ SAT': 'strong-sell',
31 };
32 const cls = classMap[signal.label] || 'hold';
33 return `<span class="signal-badge ${cls}">${signal.label}</span>`;
34}
35
36function createScoreBar(score) {
37 const color = getScoreColor(score);
38 return `<div class="score-bar-container">
39 <div class="score-bar" style="width:${score}%; background:${color};"></div>
40 </div>`;
41}
42
43function getRotationTagClass(signal) {
44 const map = {
45 'Para Girişi': 'inflow',
46 'Para Çıkışı': 'outflow',
47 'Güçleniyor': 'strong',
48 'Zayıflıyor': 'weak',
49 'Nötr': 'neutral',
50 };
51 return map[signal] || 'neutral';
52}
53
54let pfChartInstance = null;
55let singleBtChartInstance = null;
56let modalChartInstance = null;
57 