394 lines
23 KiB
HTML
394 lines
23 KiB
HTML
<!doctype html>
|
||
<html lang="fr">
|
||
<head>
|
||
<script src="/api/ambre-confidential-shield.js"></script>
|
||
<meta charset="UTF-8" />
|
||
<link rel="icon" type="image/svg+xml" href="/favicon.svg" />
|
||
<link href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/5.15.4/css/all.min.css" rel="stylesheet">
|
||
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
|
||
<title>WEVAL Consulting — Enterprise Digital Transformation | ERP · Cloud · IA · Cybersécurité</title>
|
||
<meta name="description" content="Weval Consulting — Cabinet de conseil en transformation digitale. SAP S/4HANA, Cloud, IA, Cybersécurité, Supply Chain, Life Sciences, Manufacturing. Europe · Maroc · International. 200+ projets livrés.">
|
||
<meta property="og:title" content="Weval Consulting — Cloud, IA, Marketing Digital | Europe . Maroc . International">
|
||
<meta property="og:type" content="website">
|
||
<meta property="og:description" content="Cabinet de conseil en transformation digitale. SAP, Cloud, IA, Cybersécurité, Supply Chain. Europe · Maroc · International.">
|
||
<meta property="og:url" content="https://weval-consulting.com/">
|
||
<meta property="og:image" content="https://weval-consulting.com/assets/logo-weval-png-DChrMGao.png">
|
||
<meta property="og:locale" content="fr_MA">
|
||
<meta property="og:site_name" content="Weval Consulting">
|
||
<meta name="twitter:card" content="summary_large_image">
|
||
<meta name="twitter:title" content="Weval Consulting — Cloud, IA, Marketing Digital | Europe . Maroc . International">
|
||
<meta name="twitter:description" content="Cabinet de conseil IT au Maroc. Transformation digitale, Cloud, IA, Marketing Digital et Cybersécurité.">
|
||
<meta name="twitter:image" content="https://weval-consulting.com/assets/logo-weval-png-DChrMGao.png">
|
||
<link rel="canonical" href="https://weval-consulting.com/">
|
||
<meta name="robots" content="index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1">
|
||
<meta name="geo.region" content="MA-CAS">
|
||
<meta name="geo.placename" content="Europe . Maroc . International">
|
||
<link rel="manifest" href="/manifest.json">
|
||
<link rel="alternate" hreflang="fr-MA" href="https://weval-consulting.com/">
|
||
<link rel="alternate" hreflang="fr-FR" href="https://weval-consulting.com/">
|
||
<link rel="alternate" hreflang="x-default" href="https://weval-consulting.com/">
|
||
<script type="application/ld+json">
|
||
{"@context":"https://schema.org","@type":"BreadcrumbList","itemListElement":[{"@type":"ListItem","position":1,"name":"Accueil","item":"https://weval-consulting.com/"},{"@type":"ListItem","position":2,"name":"Services","item":"https://weval-consulting.com/solutions"},{"@type":"ListItem","position":3,"name":"Blog","item":"https://weval-consulting.com/blog"},{"@type":"ListItem","position":4,"name":"Contact","item":"https://weval-consulting.com/contact-us"}]}
|
||
</script>
|
||
<meta name="theme-color" content="#0f172a">
|
||
<link rel="preconnect" href="https://fonts.googleapis.com" crossorigin>
|
||
<link rel="preconnect" href="https://cdnjs.cloudflare.com" crossorigin>
|
||
<link rel="dns-prefetch" href="https://www.googletagmanager.com">
|
||
<link rel="dns-prefetch" href="https://www.clarity.ms">
|
||
<script type="application/ld+json">
|
||
{
|
||
"@context": "https://schema.org",
|
||
"@type": "Organization",
|
||
"name": "Weval Consulting",
|
||
"url": "https://weval-consulting.com",
|
||
"logo": "https://weval-consulting.com/assets/logo-weval-png-DChrMGao.png",
|
||
"description": "Cabinet de conseil IT spécialisé en transformation digitale, Cloud, Intelligence Artificielle, Marketing Digital et Cybersécurité au Maroc.",
|
||
"foundingDate": "2019",
|
||
"numberOfEmployees": {
|
||
"@type": "QuantitativeValue",
|
||
"minValue": 10,
|
||
"maxValue": 50
|
||
},
|
||
"address": {
|
||
"@type": "PostalAddress",
|
||
"streetAddress": "10, Rue Liberté, 3ème Étage, Appt 5",
|
||
"addressLocality": "Europe . Maroc . International",
|
||
"addressCountry": "MA",
|
||
"postalCode": "20000"
|
||
},
|
||
"sameAs": [
|
||
"https://www.linkedin.com/company/weval"
|
||
],
|
||
"contactPoint": {
|
||
"@type": "ContactPoint",
|
||
"contactType": "sales",
|
||
"email": "contact@weval-consulting.com",
|
||
"availableLanguage": ["French", "English", "Arabic"]
|
||
},
|
||
"areaServed": [
|
||
{"@type": "Country", "name": "Morocco"},
|
||
{"@type": "Country", "name": "France"},
|
||
{"@type": "GeoCircle", "geoMidpoint": {"@type": "GeoCoordinates", "latitude": 33.5731, "longitude": -7.5898}, "geoRadius": "500000"}
|
||
],
|
||
"knowsAbout": [
|
||
"Cloud Computing", "Artificial Intelligence", "Digital Transformation",
|
||
"Marketing Digital", "Cybersecurity", "SAP", "Huawei Cloud", "Vistex",
|
||
"IT Consulting", "ERP Integration", "Data Analytics"
|
||
],
|
||
"hasOfferCatalog": {
|
||
"@type": "OfferCatalog",
|
||
"name": "Services Weval Consulting",
|
||
"itemListElement": [
|
||
{"@type": "Offer", "itemOffered": {"@type": "Service", "name": "Conseil Stratégique & IA Consulting", "description": "Accompagnement des dirigeants et DSI dans la prise de décisions technologiques."}},
|
||
{"@type": "Offer", "itemOffered": {"@type": "Service", "name": "Cloud & Intégration Technologique", "description": "Déploiement d’architectures Cloud (Huawei, SAP) scalables et sécurisées."}},
|
||
{"@type": "Offer", "itemOffered": {"@type": "Service", "name": "Marketing Digital", "description": "Stratégie digitale, SEO, automation et génération de leads qualifiés."}},
|
||
{"@type": "Offer", "itemOffered": {"@type": "Service", "name": "Cybersécurité IA", "description": "Audit de sécurité, scan de vulnérabilités et protection serveurs propulsés par l’IA."}},
|
||
{"@type": "Offer", "itemOffered": {"@type": "Service", "name": "Talent as a Service", "description": "Recrutement IT avec un vivier de 5000+ profils qualifiés."}},
|
||
{"@type": "Offer", "itemOffered": {"@type": "Service", "name": "Formation & Training", "description": "Formations certifiantes SAP, Cloud, IA, Cybersécurité et Data."}}
|
||
]
|
||
}
|
||
}
|
||
</script>
|
||
<script>
|
||
(function(){var p=window.location.pathname;
|
||
if(p.match(/^\/blog\/[a-z0-9-]+$/)&&!p.endsWith('.html')&&p!=='/blog/'){window.location.replace(p+'.html')}
|
||
if(p==='/methodologie'){window.location.replace('/methodologie.html')}
|
||
})();
|
||
</script>
|
||
<script type="module" crossorigin src="/assets/index-BcECjySJ.js?v=vx5"></script>
|
||
<link rel="stylesheet" crossorigin href="/assets/index-DqBn9sO8.css?v=final5">
|
||
|
||
<!-- Analytics: Plausible at analytics.weval-consulting.com -->
|
||
<script defer data-domain="weval-consulting.com" src="https://analytics.weval-consulting.com/js/script.js"></script>
|
||
<link rel="stylesheet" href="/assets/weval-em-flagship.css?v=107">
|
||
<script src="/js/wevia-a11y-auto.js" defer></script>
|
||
<!-- DOCTRINE-60-UX-ENRICH direct-inject-20260424-143919 -->
|
||
<style id="doctrine60-ux-direct">
|
||
|
||
/* DOCTRINE-60-UX-ENRICH injected-direct */
|
||
body::before {
|
||
content: '';
|
||
position: fixed;
|
||
top: 0; left: 0; width: 100vw; height: 100vh;
|
||
background: radial-gradient(circle at 50% 50%, rgba(100,180,255,0.08), transparent 60%);
|
||
pointer-events: none;
|
||
z-index: -1;
|
||
}
|
||
.card, .kpi, .panel, .btn {
|
||
transition: all 0.3s cubic-bezier(0.2,0,0.1,1);
|
||
}
|
||
.card:hover, .kpi:hover, .panel:hover {
|
||
box-shadow: 0 4px 20px rgba(100,180,255,0.2);
|
||
border-color: rgba(100,180,255,0.5);
|
||
}
|
||
@keyframes pulseD60 {
|
||
0%,100% { opacity: 1; transform: scale(1); }
|
||
50% { opacity: 0.7; transform: scale(1.05); }
|
||
}
|
||
.pulse, .live-indicator, .active, .online {
|
||
animation: pulseD60 3s ease-in-out infinite;
|
||
}
|
||
.modal, .chat, .speech, .overlay {
|
||
backdrop-filter: blur(12px);
|
||
-webkit-backdrop-filter: blur(12px);
|
||
}
|
||
.enter-stagger {
|
||
animation: enterStagD60 0.5s cubic-bezier(0.2,0,0.1,1) forwards;
|
||
}
|
||
@keyframes enterStagD60 {
|
||
from { opacity: 0; transform: translateY(20px); }
|
||
to { opacity: 1; transform: translateY(0); }
|
||
}
|
||
|
||
</style>
|
||
</head>
|
||
<script type="application/ld+json">
|
||
{"@context":"https://schema.org","@type":"FAQPage","mainEntity":[
|
||
{"@type":"Question","name":"Quels services propose WEVAL Consulting ?","acceptedAnswer":{"@type":"Answer","text":"WEVAL Consulting propose 6 pôles d’expertise : Conseil Stratégique & IA, Cloud & Intégration (Huawei, SAP), Marketing Digital, Cybersécurité IA, Talent as a Service (5000+ profils IT), et Formations certifiantes. Nous intervenons dans 8 pays sur 3 continents."}},
|
||
{"@type":"Question","name":"WEVAL intervient-il au Maroc et en Afrique ?","acceptedAnswer":{"@type":"Answer","text":"Oui. WEVAL Consulting intervient dans 8+ pays incluant la France, le Maroc et les USA. Nous avons livré plus de 200 projets avec un taux de satisfaction de 97%."}},
|
||
{"@type":"Question","name":"Qu’est-ce que WEVIA, l’IA de WEVAL ?","acceptedAnswer":{"@type":"Answer","text":"WEVIA est notre assistant IA souveraine qui utilise un GPU dédié européen pour générer des analyses, diagrammes, images et documents PDF. Il couvre 52 domaines d’expertise et fonctionne en mode souverain sans dépendance cloud externe."}},
|
||
{"@type":"Question","name":"Comment contacter WEVAL Consulting ?","acceptedAnswer":{"@type":"Answer","text":"Vous pouvez nous contacter via le formulaire sur notre site, par email à contact@weval-consulting.com, ou prendre directement rendez-vous avec un consultant via notre outil de prise de RDV en ligne."}},
|
||
{"@type":"Question","name":"WEVAL est-il certifié et conforme RGPD ?","acceptedAnswer":{"@type":"Answer","text":"Oui. WEVAL est conforme RGPD et Loi marocaine 09-08, partenaire certifié Huawei Cloud, SAP, Vistex et IQVIA. Nos solutions respectent les normes de sécurité les plus strictes."}}
|
||
]}
|
||
</script>
|
||
<body>
|
||
<!-- BETON-DOCTRINE-101 dual-dummy block (pages pub) -->
|
||
<div id="weval-global-logout" style="display:none!important;visibility:hidden!important" aria-hidden="true" data-beton-101="dummy-to-block-auto-injection"></div>
|
||
<a id="weval-gl" href="#" style="display:none!important;visibility:hidden!important" aria-hidden="true" data-beton-101="dummy-to-block-auto-injection" tabindex="-1"></a>
|
||
|
||
<!-- Bannière Huawei Cloud V2 — déplacée vers /marketplace le 18-avr-2026 (doctrine scalpel). Source: /opt/weval-l99/huawei-banner-snippet.html -->
|
||
|
||
<div id="root"></div>
|
||
<script src="/weval-translate.js?v=31mar2026d" defer></script>
|
||
|
||
<script>
|
||
(function(){var t=0,iv=setInterval(function(){var n=document.querySelector(".carousel-3d-next");if(n){clearInterval(iv);setInterval(function(){var b=document.querySelector(".carousel-3d-next");if(b)b.click()},3000)}if(++t>30)clearInterval(iv)},500)})();
|
||
</script>
|
||
<style>
|
||
/* Carousel v3 */
|
||
.carousel-3d-container{height:620px!important;perspective:1600px!important}
|
||
.carousel-3d-wrapper{width:420px!important;height:480px!important}
|
||
.carousel-3d-card{width:380px!important;height:450px!important;background:rgba(15,20,40,0.88)!important;border:1px solid rgba(255,255,255,0.15)!important;color:#fff!important;padding:2rem!important;border-radius:22px!important}
|
||
.carousel-3d-card.active{background:rgba(20,25,55,0.95)!important;border-color:rgba(255,255,255,0.3)!important;box-shadow:0 30px 70px rgba(0,0,0,0.5)!important}
|
||
.carousel-3d-card:not(.active){opacity:0.5!important;filter:blur(1.5px)!important}
|
||
.carousel-3d-card .service-title{color:#fff!important;font-size:1.3rem!important;font-weight:700!important}
|
||
.carousel-3d-card .service-description,.carousel-3d-card .service-details{color:rgba(255,255,255,0.85)!important;font-size:.9rem!important;line-height:1.5!important;-webkit-line-clamp:8!important}
|
||
.carousel-3d-card .service-icon{font-size:2.2rem!important;margin-bottom:.8rem!important}
|
||
.carousel-3d-card .service-button{background:linear-gradient(135deg,#4f46e5,#7c3aed)!important;color:#fff!important;border:none!important;padding:.7rem 1.5rem!important;border-radius:12px!important;font-weight:600!important;font-size:.95rem!important}
|
||
.carousel-3d-prev{left:5%!important}.carousel-3d-next{right:5%!important}
|
||
.carousel-3d-nav{width:50px!important;height:50px!important;font-size:1.8rem!important;background:rgba(255,255,255,0.12)!important;border:1px solid rgba(255,255,255,0.2)!important}
|
||
.carousel-3d-dots{margin-top:1.5rem!important}
|
||
@media(max-width:1024px){
|
||
.carousel-3d-container{height:550px!important}
|
||
.carousel-3d-wrapper{width:350px!important;height:420px!important}
|
||
.carousel-3d-card{width:320px!important;height:400px!important;padding:1.5rem!important}
|
||
}
|
||
@media(max-width:768px){
|
||
.carousel-3d-container{height:500px!important;perspective:1000px!important}
|
||
.carousel-3d-wrapper{width:300px!important;height:380px!important}
|
||
.carousel-3d-card{width:280px!important;height:360px!important;padding:1.3rem!important}
|
||
.carousel-3d-card .service-title{font-size:1.1rem!important}
|
||
.carousel-3d-card .service-description,.carousel-3d-card .service-details{font-size:.8rem!important}
|
||
.carousel-3d-prev{left:2%!important}.carousel-3d-next{right:2%!important}
|
||
.carousel-3d-nav{width:40px!important;height:40px!important;font-size:1.4rem!important}
|
||
}
|
||
@media(max-width:480px){
|
||
.carousel-3d-container{height:450px!important;perspective:800px!important}
|
||
.carousel-3d-wrapper{width:260px!important;height:340px!important}
|
||
.carousel-3d-card{width:250px!important;height:320px!important;padding:1rem!important}
|
||
.carousel-3d-card .service-title{font-size:1rem!important}
|
||
.carousel-3d-card .service-description,.carousel-3d-card .service-details{font-size:.75rem!important;-webkit-line-clamp:5!important}
|
||
.carousel-3d-prev{left:0!important}.carousel-3d-next{right:0!important}
|
||
.carousel-3d-nav{width:35px!important;height:35px!important;font-size:1.2rem!important}
|
||
}
|
||
</style>
|
||
|
||
<script src="/weval-audit-reco.js?v=250326v2" defer></script>
|
||
<script src="/weval-chat-fix.js?v=4" defer></script>
|
||
|
||
<!-- SEO: Noscript redondance for search engines on SPA routes -->
|
||
<noscript>
|
||
<div id="seo-noscript">
|
||
<h1>WEVAL Consulting — Cabinet de Conseil en Transformation Digitale</h1>
|
||
<p>WEVAL Consulting est un cabinet de conseil international spécialisé en transformation digitale, ERP, Cloud, Intelligence Artificielle, Cybersécurité et Supply Chain. Présent en France (Paris) et au Maroc (Casablanca), nous accompagnons les entreprises dans leur modernisation IT depuis 2018. Plus de 200 projets livrés dans 8 pays.</p>
|
||
|
||
<h2>Nos Expertises</h2>
|
||
<ul>
|
||
<li><a href="/consulting-intelligence-artificielle-maroc.html">Intelligence Artificielle & Data Science</a> — IA souveraine, Machine Learning, NLP, RAG, Computer Vision</li>
|
||
<li><a href="/intelligence-artificielle-france-consulting.html">Consulting IA en France</a> — Déploiement IA entreprise, audit data, stratégie IA</li>
|
||
<li><a href="/consulting-sap-erp-vistex-maroc.html">SAP ERP & Vistex</a> — SAP S/4HANA, migration, intégration, Vistex pricing</li>
|
||
<li><a href="/erp-pme-eti-sap-odoo-sage.html">ERP pour PME/ETI</a> — SAP Business One, Odoo, Sage X3, comparatif ERP</li>
|
||
<li><a href="/cybersécurité-maroc-audit-conseil.html">Cybersécurité</a> — Audit sécurité, EBIOS RM, SOC, pentest, conformité NIS2</li>
|
||
<li><a href="/cloud-infrastructure-système-information.html">Cloud & Infrastructure SI</a> — Migration cloud, architecture hybride, FinOps</li>
|
||
<li><a href="/consulting-pharma-supply-chain.html">Pharma & Supply Chain</a> — Life Sciences, S&OP, traçabilité, compliance GxP</li>
|
||
<li><a href="/crm-pharma-marketing-pharmaceutique.html">CRM Pharma & Marketing</a> — Veeva, Salesforce Health Cloud, CLM, MLR</li>
|
||
<li><a href="/marketing-digital-maroc.html">Marketing Digital</a> — SEO, SEA, content marketing, marketing automation</li>
|
||
<li><a href="/digitalisation-processus-gouvernance-it.html">Gouvernance IT & BPM</a> — ITIL, COBIT, transformation processus, Six Sigma</li>
|
||
<li><a href="/bpm-automatisation-processus-métier.html">Automatisation des Processus</a> — BPM, RPA, Process Mining, BPMN 2.0</li>
|
||
<li><a href="/formation-ia-sap-cloud-maroc.html">Formation IT</a> — Formation IA, SAP, Cloud, certifications professionnelles</li>
|
||
<li><a href="/recrutement-talent-it-maroc.html">Recrutement IT</a> — Sourcing développeurs, ingénieurs data, consultants SAP</li>
|
||
<li><a href="/achats-purchasing-sap-mm-procurement.html">Achats & Procurement</a> — SAP MM, Ariba, digitalisation achats, e-procurement</li>
|
||
<li><a href="/finance-controlling-sap-fico.html">Finance & Controlling</a> — SAP FICO, reporting financier, consolidation, trésorerie</li>
|
||
<li><a href="/offshore-nearshore-maroc-france-canada.html">Nearshore & Offshore</a> — Centres de services Maroc, nearshore France-Maroc-Canada</li>
|
||
<li><a href="/transformation-digitale-consulting-france-international.html">Transformation Digitale</a> — Stratégie digitale, change management, innovation</li>
|
||
</ul>
|
||
|
||
<h2>Nos Réalisations</h2>
|
||
<p>141,000+ professionnels de santé vérifiés dans 3 pays. Migration SAP S/4HANA multi-sites. Plateforme IA souveraine WEVIA déployée. Audit cybersécurité EBIOS RM pour ETI industrielles.</p>
|
||
|
||
<h2>Partenariats</h2>
|
||
<p>SAP Ecosystem Partner | Vistex Partner | Huawei Cloud Partner | IQVIA | Scaleway</p>
|
||
|
||
<h2>Contact</h2>
|
||
<p>Paris (France) | Casablanca (Maroc) — <a href="/contact-us">Contactez-nous</a> | <a href="/booking.html">Prendre rendez-vous</a></p>
|
||
</div>
|
||
</noscript>
|
||
|
||
<script>
|
||
/* WEVAL Button Fix v2 - all nav + CTA buttons */
|
||
document.addEventListener('click', function(e) {
|
||
var btn = e.target.closest('button, a, [role=button]');
|
||
if (!btn) return;
|
||
var txt = (btn.textContent || '').trim();
|
||
var cls = btn.className || '';
|
||
|
||
/* Nav buttons (nav-link class) */
|
||
if (cls.indexOf('nav-link') !== -1 || cls.indexOf('mobile-nav-link') !== -1) {
|
||
var map = {
|
||
'Accueil': '/', 'Home': '/',
|
||
'Services': '/#our-services',
|
||
'Solutions': '/nos-solutions', 'Nos Solutions': '/nos-solutions',
|
||
'Marketplace': '/marketplace',
|
||
'Blog': '/blog',
|
||
'Products': '/products/'
|
||
};
|
||
if (map[txt]) {
|
||
e.preventDefault(); e.stopPropagation();
|
||
window.location.href = map[txt];
|
||
return;
|
||
}
|
||
}
|
||
|
||
/* Prendre RDV */
|
||
if (txt === 'Prendre RDV' || txt === 'Book a meeting') {
|
||
e.preventDefault(); e.stopPropagation();
|
||
window.location.href = '/booking.html'; return;
|
||
}
|
||
|
||
/* Demander un devis */
|
||
if (txt === 'Demander un devis' || txt === 'Get a quote') {
|
||
e.preventDefault(); e.stopPropagation();
|
||
window.location.href = '/contact-us'; return;
|
||
}
|
||
|
||
/* Nos services (hero button) */
|
||
if (txt === 'Nos services' || txt === 'Our services') {
|
||
e.preventDefault(); e.stopPropagation();
|
||
var el = document.getElementById('our-services');
|
||
if (el) el.scrollIntoView({behavior:'smooth'});
|
||
else window.location.href = '/#our-services';
|
||
return;
|
||
}
|
||
|
||
/* Decouvrir Cybersecurite */
|
||
if (/D.couvrir.*Cyber/i.test(txt)) {
|
||
e.preventDefault(); e.stopPropagation();
|
||
window.location.href = '/service/cybersecurite'; return;
|
||
}
|
||
|
||
/* Contact button */
|
||
if ((cls.indexOf('contact-button') !== -1 || cls.indexOf('mobile-contact') !== -1) && (txt === 'Contact' || txt === 'Contactez-nous')) {
|
||
e.preventDefault(); e.stopPropagation();
|
||
window.location.href = '/contact-us'; return;
|
||
}
|
||
}, true);
|
||
</script>
|
||
|
||
<script src="/assets/weval-apostrophe-scanner.js?v=109" defer></script>
|
||
<script src="/assets/weval-em-flagship.js?v=106" defer></script>
|
||
|
||
<!-- === OPUS UNIVERSAL DRILL-DOWN v1 19avr — append-only, doctrine #14 === -->
|
||
<script>
|
||
(function(){
|
||
if (window.__opusUniversalDrill) return; window.__opusUniversalDrill = true;
|
||
var d = document;
|
||
var m = d.createElement('div');
|
||
m.id = 'opus-udrill';
|
||
m.style.cssText = 'position:fixed;inset:0;background:rgba(0,0,0,0.82);backdrop-filter:blur(6px);display:none;align-items:center;justify-content:center;z-index:99995;padding:20px;cursor:pointer';
|
||
var inner = d.createElement('div');
|
||
inner.id = 'opus-udrill-in';
|
||
inner.style.cssText = 'max-width:900px;width:100%;max-height:90vh;overflow:auto;background:#0b0d15;border:1px solid rgba(99,102,241,0.35);border-radius:14px;padding:28px;cursor:default;box-shadow:0 20px 60px rgba(0,0,0,0.6);color:#e2e8f0;font:14px/1.55 Inter,system-ui,sans-serif';
|
||
inner.addEventListener('click', function(e){ e.stopPropagation(); });
|
||
m.appendChild(inner);
|
||
m.addEventListener('click', function(){ m.style.display='none'; });
|
||
d.addEventListener('keydown', function(e){ if(e.key==='Escape') m.style.display='none'; });
|
||
(d.body || d.documentElement).appendChild(m);
|
||
function openCard(card) {
|
||
var html = '<div style="display:flex;justify-content:flex-end;margin-bottom:14px"><button id="opus-udrill-close" style="padding:6px 14px;background:#171b2a;border:1px solid rgba(99,102,241,0.25);color:#e2e8f0;border-radius:8px;cursor:pointer;font-size:12px">✕ Fermer (Esc)</button></div>';
|
||
html += '<div style="transform-origin:top left;font-size:1.05em">' + card.outerHTML + '</div>';
|
||
inner.innerHTML = html;
|
||
d.getElementById('opus-udrill-close').onclick = function(){ m.style.display='none'; };
|
||
m.style.display = 'flex';
|
||
}
|
||
function wire(root) {
|
||
var sels = '.card,[class*="card"],.kpi,[class*="kpi"],.stat,[class*="stat"],.tile,[class*="tile"],.metric,[class*="metric"],.widget,[class*="widget"]';
|
||
var cards = root.querySelectorAll(sels);
|
||
for (var i = 0; i < cards.length; i++) {
|
||
var c = cards[i];
|
||
if (c.__opusWired) continue;
|
||
if (c.closest('button, a, input, select, textarea, #opus-udrill')) continue;
|
||
var r = c.getBoundingClientRect();
|
||
if (r.width < 60 || r.height < 40) continue;
|
||
c.__opusWired = true;
|
||
c.style.cursor = 'pointer';
|
||
c.setAttribute('role','button');
|
||
c.setAttribute('tabindex','0');
|
||
c.addEventListener('click', function(ev){
|
||
if (ev.target.closest('[data-pp-id]') && window.__opusDrillInit) return;
|
||
if (ev.target.closest('a,button,input,select')) return;
|
||
ev.preventDefault(); ev.stopPropagation();
|
||
openCard(this);
|
||
});
|
||
c.addEventListener('keydown', function(ev){ if(ev.key==='Enter'||ev.key===' '){ev.preventDefault();openCard(this);} });
|
||
}
|
||
}
|
||
var initRun = function(){ wire(d.body || d.documentElement); };
|
||
if (d.readyState === 'loading') d.addEventListener('DOMContentLoaded', initRun);
|
||
else initRun();
|
||
var mo = new MutationObserver(function(muts){
|
||
var newCard = false;
|
||
for (var i=0;i<muts.length;i++) if (muts[i].addedNodes.length) { newCard = true; break; }
|
||
if (newCard) initRun();
|
||
});
|
||
mo.observe(d.body || d.documentElement, {childList:true, subtree:true});
|
||
})();
|
||
</script>
|
||
<!-- === OPUS UNIVERSAL DRILL-DOWN END === -->
|
||
|
||
|
||
<!-- V90 LinkedIn-to-demo tracking pixel -->
|
||
<img src="/api/v85-demo-tracker.php?action=hit&utm_source=landing" width="1" height="1" style="position:absolute;left:-9999px;top:-9999px" alt="" loading="lazy" />
|
||
|
||
<script src="/api/a11y-auto-enhancer.js" defer></script>
|
||
|
||
|
||
<!-- DOCTRINE-60-UX-JS --><script id="doctrine60-ux-js-direct">
|
||
|
||
// DOCTRINE-60-UX-JS staggered entrance
|
||
(function(){
|
||
if (!('IntersectionObserver' in window)) return;
|
||
const obs = new IntersectionObserver((entries) => {
|
||
entries.forEach((e, i) => {
|
||
if (e.isIntersecting) {
|
||
setTimeout(() => e.target.classList.add('enter-stagger'), i * 80);
|
||
obs.unobserve(e.target);
|
||
}
|
||
});
|
||
});
|
||
document.querySelectorAll('.card, .kpi, .panel').forEach(el => obs.observe(el));
|
||
})();
|
||
|
||
</script>
|
||
</body>
|
||
</html>
|