/*
* =============================================================================
* VibeQuant (vquant) — AI-Powered Financial Intelligence Platform
* -----------------------------------------------------------------------------
* File: client/src/components/explore/ownership-view.tsx
*
* Author: Simon-Pierre Boucher
* Contact: contact@spboucher.ai
* Website: https://www.spboucher.ai
* Demo: https://www.vquant.ai
* License: MIT (see LICENSE)
*
* Copyright © 2026 Simon-Pierre Boucher. All rights reserved.
* =============================================================================
*/
import { Card, CardContent, CardDescription, CardHeader, CardTitle } from "@/components/ui/card";
import { Badge } from "@/components/ui/badge";
import { Table, TableBody, TableCell, TableHead, TableHeader, TableRow } from "@/components/ui/table";
import { Building2, TrendingUp, TrendingDown, Percent, Calendar } from "lucide-react";
interface InstitutionalHolder {
holder: string;
shares: number;
dateReported: string;
change: number;
[key: string]: any;
}
interface OwnershipViewProps {
institutionalHolders?: InstitutionalHolder[];
}
export function OwnershipView({ institutionalHolders }: OwnershipViewProps) {
const formatNumber = (value: number) => {
if (!value) return "N/A";
if (value >= 1e9) return `${(value / 1e9).toFixed(2)}B`;
if (value >= 1e6) return `${(value / 1e6).toFixed(2)}M`;
if (value >= 1e3) return `${(value / 1e3).toFixed(2)}K`;
return value.toLocaleString();
};
const formatDate = (dateString: string) => {
return new Date(dateString).toLocaleDateString('fr-FR', {
year: 'numeric',
month: 'long',
day: 'numeric'
});
};
if (!institutionalHolders || institutionalHolders.length === 0) {
return (
Aucune donnée d'actionnariat disponible