feat: add Gulf FDI investment database and panel component

772-line database of Saudi Arabia and UAE foreign direct investments in
global critical infrastructure (ports, energy, data centers, railways, etc.)
with filterable/sortable table panel.

Originally contributed as standalone 'infra' variant in PR #61.
This commit is contained in:
aa5064
2026-02-17 15:31:37 +04:00
committed by Elie Habib
parent 8c8fb0ae0a
commit cfbd1ad8a1
2 changed files with 1000 additions and 0 deletions

View File

@@ -0,0 +1,228 @@
import { Panel } from './Panel';
import { GULF_INVESTMENTS } from '@/config/gulf-fdi';
import type {
GulfInvestment,
GulfInvestmentSector,
GulfInvestorCountry,
GulfInvestingEntity,
GulfInvestmentStatus,
} from '@/types';
import { escapeHtml } from '@/utils/sanitize';
interface InvestmentFilters {
investingCountry: GulfInvestorCountry | 'ALL';
sector: GulfInvestmentSector | 'ALL';
entity: GulfInvestingEntity | 'ALL';
status: GulfInvestmentStatus | 'ALL';
search: string;
}
const SECTOR_LABELS: Record<GulfInvestmentSector, string> = {
ports: 'Ports',
pipelines: 'Pipelines',
energy: 'Energy',
datacenters: 'Data Centers',
airports: 'Airports',
railways: 'Railways',
telecoms: 'Telecoms',
water: 'Water',
logistics: 'Logistics',
mining: 'Mining',
'real-estate': 'Real Estate',
manufacturing: 'Manufacturing',
};
const STATUS_COLORS: Record<GulfInvestmentStatus, string> = {
'operational': '#22c55e',
'under-construction': '#f59e0b',
'announced': '#60a5fa',
'rumoured': '#a78bfa',
'cancelled': '#ef4444',
'divested': '#6b7280',
};
const FLAG: Record<string, string> = {
SA: '🇸🇦',
UAE: '🇦🇪',
};
function formatUSD(usd?: number): string {
if (usd === undefined) return 'Undisclosed';
if (usd >= 100000) return `$${(usd / 1000).toFixed(0)}B`;
if (usd >= 1000) return `$${(usd / 1000).toFixed(1)}B`;
return `$${usd.toLocaleString()}M`;
}
export class InvestmentsPanel extends Panel {
private filters: InvestmentFilters = {
investingCountry: 'ALL',
sector: 'ALL',
entity: 'ALL',
status: 'ALL',
search: '',
};
private sortKey: keyof GulfInvestment = 'assetName';
private sortAsc = true;
private onInvestmentClick?: (inv: GulfInvestment) => void;
constructor(onInvestmentClick?: (inv: GulfInvestment) => void) {
super({
id: 'gcc-investments',
title: 'GCC Investments',
showCount: true,
infoTooltip: 'Database of Saudi Arabia and UAE foreign direct investments in global critical infrastructure. Click a row to fly to the investment on the map.',
});
this.onInvestmentClick = onInvestmentClick;
this.render();
}
private getFiltered(): GulfInvestment[] {
const { investingCountry, sector, entity, status, search } = this.filters;
const q = search.toLowerCase();
return GULF_INVESTMENTS
.filter(inv => {
if (investingCountry !== 'ALL' && inv.investingCountry !== investingCountry) return false;
if (sector !== 'ALL' && inv.sector !== sector) return false;
if (entity !== 'ALL' && inv.investingEntity !== entity) return false;
if (status !== 'ALL' && inv.status !== status) return false;
if (q && !inv.assetName.toLowerCase().includes(q)
&& !inv.targetCountry.toLowerCase().includes(q)
&& !inv.description.toLowerCase().includes(q)
&& !inv.investingEntity.toLowerCase().includes(q)) return false;
return true;
})
.sort((a, b) => {
const key = this.sortKey;
const av = a[key] ?? '';
const bv = b[key] ?? '';
const cmp = av < bv ? -1 : av > bv ? 1 : 0;
return this.sortAsc ? cmp : -cmp;
});
}
private render(): void {
const filtered = this.getFiltered();
// Build unique entity list for dropdown
const entities = Array.from(new Set(GULF_INVESTMENTS.map(i => i.investingEntity))).sort();
const sectors = Array.from(new Set(GULF_INVESTMENTS.map(i => i.sector))).sort();
const sortArrow = (key: keyof GulfInvestment) =>
this.sortKey === key ? (this.sortAsc ? ' ↑' : ' ↓') : '';
const rows = filtered.map(inv => {
const statusColor = STATUS_COLORS[inv.status] || '#6b7280';
const flag = FLAG[inv.investingCountry] || '';
const sector = SECTOR_LABELS[inv.sector] || inv.sector;
return `
<tr class="fdi-row" data-id="${escapeHtml(inv.id)}" style="cursor:pointer">
<td class="fdi-asset">
<span class="fdi-flag">${flag}</span>
<strong>${escapeHtml(inv.assetName)}</strong>
<div class="fdi-entity-sub">${escapeHtml(inv.investingEntity)}</div>
</td>
<td>${escapeHtml(inv.targetCountry)}</td>
<td><span class="fdi-sector-badge">${escapeHtml(sector)}</span></td>
<td><span class="fdi-status-dot" style="background:${statusColor}"></span>${escapeHtml(inv.status)}</td>
<td class="fdi-usd">${escapeHtml(formatUSD(inv.investmentUSD))}</td>
<td>${inv.yearAnnounced ?? inv.yearOperational ?? '—'}</td>
</tr>`;
}).join('');
const html = `
<div class="fdi-toolbar">
<input
class="fdi-search"
type="text"
placeholder="Search assets, countries, entities…"
value="${escapeHtml(this.filters.search)}"
/>
<select class="fdi-filter" data-filter="investingCountry">
<option value="ALL">🌐 All Countries</option>
<option value="SA" ${this.filters.investingCountry === 'SA' ? 'selected' : ''}>🇸🇦 Saudi Arabia</option>
<option value="UAE" ${this.filters.investingCountry === 'UAE' ? 'selected' : ''}>🇦🇪 UAE</option>
</select>
<select class="fdi-filter" data-filter="sector">
<option value="ALL">All Sectors</option>
${sectors.map(s => `<option value="${s}" ${this.filters.sector === s ? 'selected' : ''}>${escapeHtml(SECTOR_LABELS[s as GulfInvestmentSector] || s)}</option>`).join('')}
</select>
<select class="fdi-filter" data-filter="entity">
<option value="ALL">All Entities</option>
${entities.map(e => `<option value="${escapeHtml(e)}" ${this.filters.entity === e ? 'selected' : ''}>${escapeHtml(e)}</option>`).join('')}
</select>
<select class="fdi-filter" data-filter="status">
<option value="ALL">All Statuses</option>
<option value="operational" ${this.filters.status === 'operational' ? 'selected' : ''}>Operational</option>
<option value="under-construction" ${this.filters.status === 'under-construction' ? 'selected' : ''}>Under Construction</option>
<option value="announced" ${this.filters.status === 'announced' ? 'selected' : ''}>Announced</option>
<option value="rumoured" ${this.filters.status === 'rumoured' ? 'selected' : ''}>Rumoured</option>
<option value="divested" ${this.filters.status === 'divested' ? 'selected' : ''}>Divested</option>
</select>
</div>
<div class="fdi-table-wrap">
<table class="fdi-table">
<thead>
<tr>
<th class="fdi-sort" data-sort="assetName">Asset${sortArrow('assetName')}</th>
<th class="fdi-sort" data-sort="targetCountry">Country${sortArrow('targetCountry')}</th>
<th class="fdi-sort" data-sort="sector">Sector${sortArrow('sector')}</th>
<th class="fdi-sort" data-sort="status">Status${sortArrow('status')}</th>
<th class="fdi-sort" data-sort="investmentUSD">Investment${sortArrow('investmentUSD')}</th>
<th class="fdi-sort" data-sort="yearAnnounced">Year${sortArrow('yearAnnounced')}</th>
</tr>
</thead>
<tbody>${rows || '<tr><td colspan="6" class="fdi-empty">No investments match filters</td></tr>'}</tbody>
</table>
</div>`;
this.setContent(html);
if (this.countEl) this.countEl.textContent = String(filtered.length);
this.attachListeners();
}
private attachListeners(): void {
const content = this.content;
// Search input
const searchEl = content.querySelector<HTMLInputElement>('.fdi-search');
searchEl?.addEventListener('input', () => {
this.filters.search = searchEl.value;
this.render();
});
// Filter dropdowns
content.querySelectorAll<HTMLSelectElement>('.fdi-filter').forEach(sel => {
sel.addEventListener('change', () => {
const key = sel.dataset.filter as keyof InvestmentFilters;
(this.filters as unknown as Record<string, string>)[key] = sel.value;
this.render();
});
});
// Sort headers
content.querySelectorAll<HTMLElement>('.fdi-sort').forEach(th => {
th.addEventListener('click', () => {
const key = th.dataset.sort as keyof GulfInvestment;
if (this.sortKey === key) {
this.sortAsc = !this.sortAsc;
} else {
this.sortKey = key;
this.sortAsc = true;
}
this.render();
});
});
// Row click → fly to map
content.querySelectorAll<HTMLElement>('.fdi-row').forEach(row => {
row.addEventListener('click', () => {
const inv = GULF_INVESTMENTS.find(i => i.id === row.dataset.id);
if (inv && this.onInvestmentClick) {
this.onInvestmentClick(inv);
}
});
});
}
}

772
src/config/gulf-fdi.ts Normal file
View File

@@ -0,0 +1,772 @@
import type { GulfInvestment } from '@/types';
/**
* Gulf FDI Critical Infrastructure Database
* Static seed data for Saudi Arabia and UAE foreign direct investment
* in critical infrastructure globally.
*
* Key entities tracked:
* UAE: DP World, AD Ports, Mubadala, ADIA, ADNOC, Masdar, Emirates Global Aluminium
* SA: PIF, Saudi Aramco, ACWA Power, STC, Mawani, NEOM
*/
export const GULF_INVESTMENTS: GulfInvestment[] = [
// ─── DP WORLD (UAE) ──────────────────────────────────────────────────────
{
id: 'dpw-london-gateway',
investingEntity: 'DP World',
investingCountry: 'UAE',
targetCountry: 'United Kingdom',
targetCountryIso: 'GB',
sector: 'ports',
assetType: 'Container Terminal',
assetName: 'London Gateway Port',
lat: 51.503, lon: 0.500,
investmentUSD: 1500,
stakePercent: 100,
status: 'operational',
yearAnnounced: 2007,
yearOperational: 2013,
description: 'Largest UK container port development in 50 years. 3.5M TEU capacity on the Thames Estuary. DP World fully owns and operates.',
sourceUrl: 'https://www.londongatewaydock.co.uk',
tags: ['UK logistics', 'Thames Estuary'],
},
{
id: 'dpw-mundra',
investingEntity: 'DP World',
investingCountry: 'UAE',
targetCountry: 'India',
targetCountryIso: 'IN',
sector: 'ports',
assetType: 'Container Terminal',
assetName: 'Mundra International Container Terminal',
lat: 22.839, lon: 69.706,
investmentUSD: 500,
stakePercent: 74,
status: 'operational',
yearAnnounced: 2001,
yearOperational: 2003,
description: "Largest private container terminal in India at Mundra Port, Gujarat. Part of Adani Ports joint venture.",
tags: ['India infrastructure', 'South Asia'],
},
{
id: 'dpw-dakar',
investingEntity: 'DP World',
investingCountry: 'UAE',
targetCountry: 'Senegal',
targetCountryIso: 'SN',
sector: 'ports',
assetType: 'Container Terminal',
assetName: 'Port of Dakar Terminal',
lat: 14.696, lon: -17.433,
investmentUSD: 1050,
stakePercent: 90,
status: 'operational',
yearAnnounced: 2007,
yearOperational: 2008,
description: '25-year concession. Primary gateway for West African trade corridor.',
tags: ['West Africa', 'Maritime logistics'],
},
{
id: 'dpw-berbera',
investingEntity: 'DP World',
investingCountry: 'UAE',
targetCountry: 'Somaliland',
targetCountryIso: 'SO',
sector: 'ports',
assetType: 'Container Terminal',
assetName: 'Port of Berbera',
lat: 10.438, lon: 44.999,
investmentUSD: 442,
stakePercent: 51,
status: 'operational',
yearAnnounced: 2016,
yearOperational: 2021,
description: 'DP World 30-year concession. Critical Red Sea/Gulf of Aden access point and free trade zone.',
tags: ['Horn of Africa', 'Red Sea', 'Strategic'],
},
{
id: 'dpw-lagos-apapa',
investingEntity: 'DP World',
investingCountry: 'UAE',
targetCountry: 'Nigeria',
targetCountryIso: 'NG',
sector: 'ports',
assetType: 'Container Terminal',
assetName: 'Apapa Container Terminal',
lat: 6.447, lon: 3.380,
stakePercent: 25,
status: 'operational',
yearOperational: 2006,
description: "DP World minority stake in Nigeria's primary container gateway through Apapa Port.",
tags: ['West Africa', 'Nigeria'],
},
{
id: 'dpw-rotterdam-euromax',
investingEntity: 'DP World',
investingCountry: 'UAE',
targetCountry: 'Netherlands',
targetCountryIso: 'NL',
sector: 'ports',
assetType: 'Container Terminal',
assetName: 'Euromax Terminal Rotterdam',
lat: 51.948, lon: 4.052,
investmentUSD: 900,
stakePercent: 35,
status: 'operational',
yearOperational: 2008,
description: "DP World 35% stake in Euromax, one of Europe's most automated deep-water terminals.",
tags: ['Europe', 'Netherlands', 'Automation'],
},
{
id: 'dpw-jeddah',
investingEntity: 'DP World',
investingCountry: 'UAE',
targetCountry: 'Saudi Arabia',
targetCountryIso: 'SA',
sector: 'ports',
assetType: 'Container Terminal',
assetName: 'Jeddah South Container Terminal',
lat: 21.475, lon: 39.161,
investmentUSD: 340,
stakePercent: 33,
status: 'operational',
yearOperational: 2009,
description: "DP World manages Jeddah South, Red Sea's largest container terminal. 33% stake.",
tags: ['Red Sea', 'Saudi Arabia'],
},
{
id: 'dpw-caucedo-dr',
investingEntity: 'DP World',
investingCountry: 'UAE',
targetCountry: 'Dominican Republic',
targetCountryIso: 'DO',
sector: 'ports',
assetType: 'Container Terminal',
assetName: 'Terminal Caucedo',
lat: 18.500, lon: -69.594,
stakePercent: 100,
status: 'operational',
yearOperational: 2003,
description: 'DP World-operated Caribbean transshipment hub serving Latin American trade routes.',
tags: ['Caribbean', 'Americas'],
},
{
id: 'dpw-lirquen-chile',
investingEntity: 'DP World',
investingCountry: 'UAE',
targetCountry: 'Chile',
targetCountryIso: 'CL',
sector: 'ports',
assetType: 'Container Terminal',
assetName: 'Terminal Lirquen',
lat: -36.713, lon: -73.010,
stakePercent: 100,
status: 'operational',
yearOperational: 2015,
description: "DP World operates Chile's Lirquen port for South American logistics gateway.",
tags: ['South America', 'Chile'],
},
{
id: 'dpw-maputo-mozambique',
investingEntity: 'DP World',
investingCountry: 'UAE',
targetCountry: 'Mozambique',
targetCountryIso: 'MZ',
sector: 'ports',
assetType: 'Container Terminal',
assetName: 'Port of Maputo',
lat: -25.921, lon: 32.584,
investmentUSD: 160,
stakePercent: 48,
status: 'operational',
yearOperational: 2003,
description: 'DP World manages Maputo container terminal. Gateway for landlocked Southern African countries.',
tags: ['Southern Africa', 'Mozambique'],
},
// ─── ABU DHABI PORTS / AD PORTS GROUP (UAE) ──────────────────────────────
{
id: 'adports-khalifa-uae',
investingEntity: 'AD Ports',
investingCountry: 'UAE',
targetCountry: 'UAE',
targetCountryIso: 'AE',
sector: 'ports',
assetType: 'Industrial Port',
assetName: 'Khalifa Port',
lat: 24.811, lon: 54.618,
investmentUSD: 7000,
stakePercent: 100,
status: 'operational',
yearOperational: 2012,
description: 'Flagship Abu Dhabi deepwater port. 3M+ TEU capacity. Regional container and industrial hub with automated terminal.',
tags: ['UAE anchor asset', 'Industrial', 'Automation'],
},
{
id: 'adports-sokhna-egypt',
investingEntity: 'AD Ports',
investingCountry: 'UAE',
targetCountry: 'Egypt',
targetCountryIso: 'EG',
sector: 'ports',
assetType: 'Multi-Purpose Terminal',
assetName: 'Al-Sokhna Port Terminal',
lat: 29.600, lon: 32.340,
investmentUSD: 660,
stakePercent: 80,
status: 'operational',
yearAnnounced: 2022,
yearOperational: 2023,
description: 'AD Ports 80% stake in Suez Canal economic corridor terminal. Strategic Red Sea/Mediterranean gateway.',
tags: ['Suez', 'Egypt', 'Red Sea corridor'],
},
{
id: 'adports-karachi-pakistan',
investingEntity: 'AD Ports',
investingCountry: 'UAE',
targetCountry: 'Pakistan',
targetCountryIso: 'PK',
sector: 'ports',
assetType: 'Container Terminal',
assetName: 'Karachi Gateway Terminal',
lat: 24.838, lon: 66.991,
investmentUSD: 200,
stakePercent: 70,
status: 'operational',
yearAnnounced: 2021,
yearOperational: 2023,
description: "AD Ports 70% stake in new Karachi container terminal. Pakistan's primary gateway port.",
tags: ['South Asia', 'Pakistan'],
},
{
id: 'adports-luanda-angola',
investingEntity: 'AD Ports',
investingCountry: 'UAE',
targetCountry: 'Angola',
targetCountryIso: 'AO',
sector: 'ports',
assetType: 'Container Terminal',
assetName: 'Porto de Luanda Terminal',
lat: -8.805, lon: 13.252,
investmentUSD: 260,
stakePercent: 70,
status: 'operational',
yearAnnounced: 2021,
yearOperational: 2022,
description: 'AD Ports 70% stake in Luanda container terminal. Strategic position in oil-rich Angola.',
tags: ['Southern Africa', 'Angola', 'Energy corridor'],
},
// ─── MUBADALA INVESTMENT COMPANY (UAE) ───────────────────────────────────
{
id: 'mubadala-borealis-austria',
investingEntity: 'Mubadala',
investingCountry: 'UAE',
targetCountry: 'Austria',
targetCountryIso: 'AT',
sector: 'energy',
assetType: 'Petrochemicals',
assetName: 'Borealis (European Petrochemicals)',
lat: 48.210, lon: 16.363,
investmentUSD: 5500,
stakePercent: 75,
status: 'operational',
yearAnnounced: 2020,
description: 'Mubadala 75% stake in Borealis, a major European plastics and chemicals producer. Manufacturing assets in Austria, Belgium, Germany, Finland.',
tags: ['Europe', 'Chemicals', 'Pipeline feedstock'],
},
{
id: 'mubadala-globalfoundries-us',
investingEntity: 'Mubadala',
investingCountry: 'UAE',
targetCountry: 'United States',
targetCountryIso: 'US',
sector: 'manufacturing',
assetType: 'Semiconductor Fab',
assetName: 'GlobalFoundries (NYSE: GFS)',
lat: 42.848, lon: -73.766,
investmentUSD: 8000,
stakePercent: 82,
status: 'operational',
yearAnnounced: 2009,
description: 'Mubadala owns ~82% of GlobalFoundries, the world\'s third-largest semiconductor foundry. Fab facilities in New York, Vermont, Germany, Singapore.',
tags: ['Semiconductors', 'Critical Technology', 'US', 'Strategic'],
},
{
id: 'mubadala-cepsa-spain',
investingEntity: 'Mubadala',
investingCountry: 'UAE',
targetCountry: 'Spain',
targetCountryIso: 'ES',
sector: 'energy',
assetType: 'Integrated Energy Company',
assetName: 'Cepsa (Compañía Española de Petróleos)',
lat: 40.416, lon: -3.703,
investmentUSD: 4000,
stakePercent: 63,
status: 'operational',
yearAnnounced: 2011,
description: "Mubadala 63% stake in Cepsa, Spain's second-largest oil company with refining and pipeline assets across Spain and Portugal.",
tags: ['Europe', 'Spain', 'Refining', 'Pipelines'],
},
// ─── ADNOC (UAE) ──────────────────────────────────────────────────────────
{
id: 'adnoc-covestro-germany',
investingEntity: 'ADNOC',
investingCountry: 'UAE',
targetCountry: 'Germany',
targetCountryIso: 'DE',
sector: 'energy',
assetType: 'Chemicals Company',
assetName: 'Covestro AG',
lat: 51.165, lon: 6.948,
investmentUSD: 14800,
stakePercent: 100,
status: 'operational',
yearAnnounced: 2023,
yearOperational: 2024,
description: 'ADNOC full acquisition of Covestro (Leverkusen, Germany) — major European specialty chemicals and materials producer. Critical input supplier to automotive, construction, electronics.',
tags: ['Germany', 'Chemicals', 'Critical infrastructure input'],
},
{
id: 'adnoc-omv-austria',
investingEntity: 'ADNOC',
investingCountry: 'UAE',
targetCountry: 'Austria',
targetCountryIso: 'AT',
sector: 'energy',
assetType: 'Integrated Oil Company',
assetName: 'OMV AG Stake',
lat: 48.210, lon: 16.363,
investmentUSD: 4500,
stakePercent: 24.9,
status: 'operational',
yearAnnounced: 2022,
description: 'ADNOC 24.9% stake in OMV (Austria). Provides access to Central European pipeline networks and refining infrastructure.',
tags: ['Europe', 'Pipeline networks', 'Austria', 'Strategic'],
},
{
id: 'adnoc-ruwais-lng-uae',
investingEntity: 'ADNOC',
investingCountry: 'UAE',
targetCountry: 'UAE',
targetCountryIso: 'AE',
sector: 'energy',
assetType: 'LNG Export Terminal',
assetName: 'Ruwais LNG',
lat: 24.093, lon: 52.729,
investmentUSD: 6000,
stakePercent: 100,
status: 'under-construction',
yearAnnounced: 2023,
yearOperational: 2028,
description: "New 9.6 mtpa LNG export facility at Ruwais Industrial City. UAE's first large-scale LNG export terminal, targeting European and Asian markets.",
tags: ['LNG', 'Energy export', 'UAE'],
},
// ─── MASDAR / ABU DHABI FUTURE ENERGY (UAE) ──────────────────────────────
{
id: 'masdar-hornsea-uk',
investingEntity: 'Masdar',
investingCountry: 'UAE',
targetCountry: 'United Kingdom',
targetCountryIso: 'GB',
sector: 'energy',
assetType: 'Offshore Wind Farm',
assetName: 'Hornsea Wind Project (stake)',
lat: 53.920, lon: 1.900,
investmentUSD: 750,
stakePercent: 25,
status: 'operational',
yearOperational: 2019,
description: "Masdar minority stake in Hornsea offshore wind development. Part of the UK's largest offshore wind zone.",
tags: ['Renewable energy', 'UK', 'Offshore wind'],
},
{
id: 'masdar-london-array-uk',
investingEntity: 'Masdar',
investingCountry: 'UAE',
targetCountry: 'United Kingdom',
targetCountryIso: 'GB',
sector: 'energy',
assetType: 'Offshore Wind Farm',
assetName: 'London Array Offshore Wind Farm',
lat: 51.625, lon: 1.376,
investmentUSD: 400,
stakePercent: 20,
status: 'operational',
yearOperational: 2013,
description: 'Masdar 20% stake in 630MW London Array. Previously Europe\'s largest offshore wind farm.',
tags: ['UK', 'Offshore wind', 'Thames Estuary'],
},
{
id: 'masdar-zarafshan-uzbekistan',
investingEntity: 'Masdar',
investingCountry: 'UAE',
targetCountry: 'Uzbekistan',
targetCountryIso: 'UZ',
sector: 'energy',
assetType: 'Wind Farm',
assetName: 'Zarafshan Wind Farm',
lat: 41.554, lon: 64.193,
investmentUSD: 1000,
stakePercent: 100,
status: 'operational',
yearAnnounced: 2021,
yearOperational: 2023,
description: '500MW wind project in Uzbekistan. Central Asia\'s largest wind farm at time of completion.',
tags: ['Central Asia', 'Wind energy', 'Uzbekistan'],
},
{
id: 'masdar-gulf-suez-wind-egypt',
investingEntity: 'Masdar',
investingCountry: 'UAE',
targetCountry: 'Egypt',
targetCountryIso: 'EG',
sector: 'energy',
assetType: 'Wind Farm',
assetName: 'Gulf of Suez Wind Project',
lat: 28.500, lon: 32.500,
investmentUSD: 600,
stakePercent: 50,
status: 'under-construction',
yearAnnounced: 2022,
yearOperational: 2026,
description: '500MW wind farm in the Gulf of Suez corridor. Joint venture with TAQA. Part of Egypt-UAE energy cooperation.',
tags: ['Africa', 'Renewables', 'Suez corridor'],
},
{
id: 'masdar-us-solar',
investingEntity: 'Masdar',
investingCountry: 'UAE',
targetCountry: 'United States',
targetCountryIso: 'US',
sector: 'energy',
assetType: 'Solar Farm',
assetName: 'US Solar Portfolio',
lat: 37.090, lon: -95.713,
investmentUSD: 1200,
stakePercent: 50,
status: 'operational',
yearAnnounced: 2020,
description: 'Masdar joint venture solar assets across multiple US states. Part of broader clean energy FDI strategy.',
tags: ['US', 'Solar', 'Clean energy'],
},
// ─── EMIRATES GLOBAL ALUMINIUM (UAE) ─────────────────────────────────────
{
id: 'ega-guinea-alumina',
investingEntity: 'Emirates Global Aluminium',
investingCountry: 'UAE',
targetCountry: 'Guinea',
targetCountryIso: 'GN',
sector: 'mining',
assetType: 'Bauxite Mine',
assetName: 'Guinea Alumina Corporation (GAC)',
lat: 10.945, lon: -14.300,
investmentUSD: 1400,
stakePercent: 100,
status: 'operational',
yearOperational: 2019,
description: 'EGA owns Guinea Alumina Corporation — a major bauxite mining operation feeding UAE aluminium smelters. Feeds 12M tonnes/year from West Africa.',
tags: ['Mining', 'Critical minerals', 'Africa', 'Bauxite'],
},
// ─── PIF — PUBLIC INVESTMENT FUND (SAUDI ARABIA) ─────────────────────────
{
id: 'pif-lucid-motors-us',
investingEntity: 'PIF',
investingCountry: 'SA',
targetCountry: 'United States',
targetCountryIso: 'US',
sector: 'manufacturing',
assetType: 'EV Manufacturing',
assetName: 'Lucid Group (LCID)',
lat: 37.388, lon: -122.016,
investmentUSD: 4500,
stakePercent: 60,
status: 'operational',
yearAnnounced: 2018,
description: 'PIF majority stake in Lucid Motors EV manufacturer. Plans for Lucid manufacturing facility in Saudi Arabia under Vision 2030.',
tags: ['EV', 'US tech', 'Vision 2030', 'Manufacturing'],
},
{
id: 'pif-telecom-italia',
investingEntity: 'PIF',
investingCountry: 'SA',
targetCountry: 'Italy',
targetCountryIso: 'IT',
sector: 'telecoms',
assetType: 'Telecoms Network',
assetName: 'Telecom Italia NetCo Stake',
lat: 41.902, lon: 12.496,
investmentUSD: 2000,
stakePercent: 20,
status: 'announced',
yearAnnounced: 2024,
description: "PIF interest in Italy's national fixed network (NetCo) spun out from Telecom Italia. Subject to regulatory review by Italian government.",
tags: ['Europe', 'Telecoms', 'Italy', 'Critical infrastructure'],
},
{
id: 'pif-alat-electronics-sa',
investingEntity: 'PIF',
investingCountry: 'SA',
targetCountry: 'Saudi Arabia',
targetCountryIso: 'SA',
sector: 'manufacturing',
assetType: 'Electronics Manufacturing Platform',
assetName: 'Alat (Advanced Electronics)',
lat: 24.688, lon: 46.724,
investmentUSD: 100000,
stakePercent: 100,
status: 'announced',
yearAnnounced: 2024,
description: "PIF's $100B electronics and technology manufacturing venture. Aims to build domestic semiconductor, consumer electronics, and EV capabilities in Saudi Arabia.",
tags: ['Manufacturing', 'Technology', 'Vision 2030', 'Semiconductors'],
},
{
id: 'pif-datacenter-cloud-sa',
investingEntity: 'PIF',
investingCountry: 'SA',
targetCountry: 'Saudi Arabia',
targetCountryIso: 'SA',
sector: 'datacenters',
assetType: 'Data Center Zone',
assetName: 'Saudi National Cloud / Hyperscale DC',
lat: 24.688, lon: 46.724,
investmentUSD: 6000,
stakePercent: 100,
status: 'under-construction',
yearAnnounced: 2022,
yearOperational: 2026,
description: 'PIF-funded national cloud and hyperscale data center infrastructure as part of Vision 2030 digital economy strategy. Partnerships with Google, Microsoft, AWS.',
tags: ['Digital infrastructure', 'Cloud', 'Vision 2030'],
},
// ─── NEOM (SAUDI ARABIA) ──────────────────────────────────────────────────
{
id: 'neom-the-line-sa',
investingEntity: 'NEOM',
investingCountry: 'SA',
targetCountry: 'Saudi Arabia',
targetCountryIso: 'SA',
sector: 'railways',
assetType: 'Linear City / High-Speed Rail',
assetName: 'THE LINE (NEOM)',
lat: 28.100, lon: 35.900,
investmentUSD: 500000,
stakePercent: 100,
status: 'under-construction',
yearAnnounced: 2021,
yearOperational: 2030,
description: '170km linear smart city with integrated high-speed rail along the spine. PIF/Saudi Vision 2030 flagship mega-infrastructure project in Tabuk region.',
tags: ['NEOM', 'Vision 2030', 'Megaproject', 'Rail', 'Smart City'],
},
{
id: 'neom-hydrogen-sa',
investingEntity: 'NEOM',
investingCountry: 'SA',
targetCountry: 'Saudi Arabia',
targetCountryIso: 'SA',
sector: 'energy',
assetType: 'Green Hydrogen Plant',
assetName: 'NEOM Green Hydrogen-Ammonia Plant',
lat: 27.800, lon: 35.600,
investmentUSD: 8400,
stakePercent: 34,
status: 'under-construction',
yearAnnounced: 2020,
yearOperational: 2026,
description: "World's planned largest green hydrogen-ammonia export facility. Joint venture: ACWA Power 26%, Air Products 26%, NEOM 34%.",
tags: ['NEOM', 'Green hydrogen', 'Vision 2030', 'Clean energy'],
},
// ─── ACWA POWER (SAUDI ARABIA) ───────────────────────────────────────────
{
id: 'acwa-benban-solar-egypt',
investingEntity: 'ACWA Power',
investingCountry: 'SA',
targetCountry: 'Egypt',
targetCountryIso: 'EG',
sector: 'energy',
assetType: 'Solar Farm',
assetName: 'Benban Solar Park (Stake)',
lat: 24.455, lon: 32.750,
investmentUSD: 400,
stakePercent: 35,
status: 'operational',
yearOperational: 2019,
description: 'ACWA Power stake in Benban — one of the world\'s largest solar parks (1.6GW total). In Aswan, Upper Egypt.',
tags: ['Africa', 'Solar', 'Egypt'],
},
{
id: 'acwa-noor-uzbekistan',
investingEntity: 'ACWA Power',
investingCountry: 'SA',
targetCountry: 'Uzbekistan',
targetCountryIso: 'UZ',
sector: 'energy',
assetType: 'Solar Farm',
assetName: 'Nur Navoi Solar Plant',
lat: 40.084, lon: 65.379,
investmentUSD: 280,
stakePercent: 100,
status: 'operational',
yearOperational: 2021,
description: "100MW utility-scale solar project in Uzbekistan's Navoi region. ACWA Power's first Central Asia project.",
tags: ['Central Asia', 'Solar', 'Uzbekistan'],
},
{
id: 'acwa-south-africa-redstone',
investingEntity: 'ACWA Power',
investingCountry: 'SA',
targetCountry: 'South Africa',
targetCountryIso: 'ZA',
sector: 'energy',
assetType: 'Concentrated Solar / Wind Portfolio',
assetName: 'Redstone CSP & Renewable Portfolio',
lat: -29.049, lon: 23.081,
investmentUSD: 900,
stakePercent: 49,
status: 'operational',
yearOperational: 2023,
description: "ACWA Power's renewable energy portfolio in South Africa under REIPPPP (Renewable Energy Independent Power Producer Procurement Programme).",
tags: ['Africa', 'Renewables', 'South Africa'],
},
{
id: 'acwa-oman-wind',
investingEntity: 'ACWA Power',
investingCountry: 'SA',
targetCountry: 'Oman',
targetCountryIso: 'OM',
sector: 'energy',
assetType: 'Wind Farm',
assetName: 'Dhofar Wind Farm',
lat: 17.050, lon: 54.100,
investmentUSD: 125,
stakePercent: 49,
status: 'operational',
yearOperational: 2019,
description: "50MW Dhofar wind farm — Oman's first and the Arab world's first utility-scale wind farm.",
tags: ['Oman', 'Wind energy', 'Gulf region'],
},
// ─── SAUDI ARAMCO (SAUDI ARABIA) ─────────────────────────────────────────
{
id: 'aramco-motiva-usa',
investingEntity: 'Saudi Aramco',
investingCountry: 'SA',
targetCountry: 'United States',
targetCountryIso: 'US',
sector: 'energy',
assetType: 'Oil Refinery',
assetName: 'Motiva Port Arthur Refinery',
lat: 29.849, lon: -93.916,
investmentUSD: 12000,
stakePercent: 100,
status: 'operational',
description: "World's largest US oil refinery (630,000 bpd). Fully Aramco-owned via Motiva Enterprises. Critical Gulf Coast downstream asset.",
tags: ['US energy infrastructure', 'Downstream', 'Gulf Coast'],
},
{
id: 'aramco-panjin-china',
investingEntity: 'Saudi Aramco',
investingCountry: 'SA',
targetCountry: 'China',
targetCountryIso: 'CN',
sector: 'energy',
assetType: 'Refinery & Petrochemicals',
assetName: 'Rongsheng/Panjin Refinery Stake',
lat: 41.119, lon: 122.075,
investmentUSD: 10000,
stakePercent: 30,
status: 'operational',
yearAnnounced: 2023,
description: "Saudi Aramco 30% stake in Rongsheng Petrochemical's Panjin refinery in Liaoning Province. One of China's largest private refineries.",
tags: ['China', 'Downstream energy', 'Petrochemicals'],
},
{
id: 'aramco-sabic-global',
investingEntity: 'Saudi Aramco',
investingCountry: 'SA',
targetCountry: 'Saudi Arabia',
targetCountryIso: 'SA',
sector: 'manufacturing',
assetType: 'Chemicals Conglomerate',
assetName: 'SABIC (Global Operations)',
lat: 24.688, lon: 46.724,
investmentUSD: 69100,
stakePercent: 70,
status: 'operational',
yearAnnounced: 2019,
description: 'Aramco acquired 70% of SABIC in 2020. SABIC has manufacturing in Netherlands, Germany, US, India, China — global chemicals infrastructure.',
tags: ['Chemicals', 'Global manufacturing', 'Vision 2030', 'Netherlands', 'Germany'],
},
// ─── MAWANI / SAUDI PORTS AUTHORITY (SAUDI ARABIA) ───────────────────────
{
id: 'mawani-king-abdulaziz-sa',
investingEntity: 'Mawani',
investingCountry: 'SA',
targetCountry: 'Saudi Arabia',
targetCountryIso: 'SA',
sector: 'ports',
assetType: 'Container Port',
assetName: 'King Abdulaziz Port Dammam',
lat: 26.455, lon: 50.008,
investmentUSD: 2000,
stakePercent: 100,
status: 'operational',
description: "Saudi Ports Authority flagship Eastern Province gateway on the Persian Gulf. Expanding toward 7.5M TEU annual capacity.",
tags: ['Saudi Arabia', 'Persian Gulf', 'Container'],
},
{
id: 'mawani-king-fahad-sa',
investingEntity: 'Mawani',
investingCountry: 'SA',
targetCountry: 'Saudi Arabia',
targetCountryIso: 'SA',
sector: 'ports',
assetType: 'Industrial Port',
assetName: 'King Fahad Industrial Port Jubail',
lat: 27.007, lon: 49.659,
investmentUSD: 3500,
stakePercent: 100,
status: 'operational',
description: 'Largest industrial port in the world by area. Services Jubail Industrial City petrochemical complex.',
tags: ['Saudi Arabia', 'Persian Gulf', 'Industrial', 'Petrochemicals'],
},
// ─── STC (SAUDI TELECOM COMPANY) ─────────────────────────────────────────
{
id: 'stc-telefonica-spain',
investingEntity: 'STC',
investingCountry: 'SA',
targetCountry: 'Spain',
targetCountryIso: 'ES',
sector: 'telecoms',
assetType: 'Telecoms Operator Stake',
assetName: 'Telefónica S.A. Stake',
lat: 40.416, lon: -3.703,
investmentUSD: 2100,
stakePercent: 9.9,
status: 'operational',
yearAnnounced: 2023,
description: "STC acquired 9.9% stake in Spain's Telefónica, becoming a top-3 shareholder. Gives Saudi Arabia indirect access to Telefónica's critical telecoms infrastructure across Europe and Latin America.",
tags: ['Europe', 'Telecoms', 'Spain', 'Latin America', 'Critical infrastructure'],
},
];