(open: number, close: number)
| 63 | } |
| 64 | |
| 65 | function formatPercentChange(open: number, close: number): string { |
| 66 | if (!Number.isFinite(open) || !Number.isFinite(close)) return EM_DASH; |
| 67 | if (open === 0) return EM_DASH; // Avoid division by zero |
| 68 | |
| 69 | const change = ((close - open) / open) * 100; |
| 70 | if (!Number.isFinite(change)) return EM_DASH; |
| 71 | |
| 72 | const sign = change > 0 ? '+' : ''; |
| 73 | return `${sign}${change.toFixed(2)}%`; |
| 74 | } |
| 75 | |
| 76 | function formatRowHtml(params: TooltipParams, valueText: string): string { |
| 77 | const safeName = escapeHtml(resolveSeriesName(params)); |
no outgoing calls
no test coverage detected