Par

Publié hier à 18h29, mis à jour à 00h18

${goToRubricText} ${goToRubricLink}

${detailsPanelParagraph1}

${detailsPanelParagraph2}

${detailsPanelParagraph3}

`
/* Position the bar below the header */
const $headerWrapper = document.querySelector(‘div#Header’)
const $nav = document.querySelector(‘nav#Nav’)
const headerWrapperHeight = $headerWrapper?.getBoundingClientRect().height ?? 0
const navHeight = $nav?.getBoundingClientRect().height ?? 0
const stickyBarOffset = Math.max(headerWrapperHeight, navHeight)
$stickyBar.style.top = `${stickyBarOffset}px`

/* Remove from the DOM the current sticky bar if there’s one */
const $body = document.querySelector(‘body’)
const isInApp = window.location.href.match(/apps.([a-z]+-)?lemonde.fr/)
const $main = document.querySelector(‘main.main’)
const $article = document.querySelector(‘article.article-longform’)
const $currentStickyBar = $body.querySelector(‘div.custom-sticky-bar’)
if ($currentStickyBar) $currentStickyBar.remove()
if (!isInApp) {
$body.insertBefore($stickyBar, $main.nextSibling)
} else {
$article.insertBefore($stickyBar, $article.firstChild)
}

/* Set the correct height for the details panel */
const stickyBarHeight = $stickyBar
.querySelector(‘.custom-sticky-bar__main’)
.getBoundingClientRect()
.height
const viewportHeight = document.documentElement.clientHeight
const $stickyBarDetails = $stickyBar.querySelector(‘.custom-sticky-bar__details’)
const $stickyBarDetailsInner = $stickyBar.querySelector(‘.custom-sticky-bar__details-inner’)
console.log(state)
const stickyBarDetailsMaxHeight = state.display === ‘sm’
? 0.85 * (viewportHeight – stickyBarHeight – stickyBarOffset)
: 0.8 * (viewportHeight – stickyBarHeight – stickyBarOffset)
$stickyBarDetails.style.maxHeight = `${stickyBarDetailsMaxHeight}px`
$stickyBarDetailsInner.style.maxHeight = `${stickyBarDetailsMaxHeight}px`

/* Add an offset to the article content */
if (!isInApp) $main.style.marginTop = `${stickyBarHeight}px`
else $article.style.marginTop = `${stickyBarHeight}px`
}

/* Open detail panels in header */
function openDetails () {
setState({ details_are_open: true })
}

/* Open detail panels in header */
function closeDetails () {
setState({ details_are_open: false })
}

/* Inject footer stuff */
function injectFooter (state) {
const logoUrl = (state.sheet_data.find(line => line.key === ‘logo_img_url’) ?? {}).text
const goToRubricText = (state.sheet_data.find(line => line.key === ‘go_to_rubric_text’) ?? {}).text
const goToRubricLink = (state.sheet_data.find(line => line.key === ‘go_to_rubric_link’) ?? {}).text
const goToRubricLinkUrl = (state.sheet_data.find(line => line.key === ‘go_to_rubric_link_url’) ?? {}).text
const footerHeadline = (state.sheet_data.find(line => line.key === ‘footer_headline’) ?? {}).text
const articles = (state.sheet_data.filter(line => line.key === ‘article’))

const $customFooter = document.createElement(‘div’)
const customFooterMainClass = ‘custom-footer’
const customFooterClasses = [customFooterMainClass]
$customFooter.classList.add(…customFooterClasses)
$customFooter.innerHTML = `

`

const isInApp = window.location.href.match(/apps.([a-z]+-)?lemonde.fr/)
const $body = document.querySelector(‘body’)
const $main = document.querySelector(‘main.main’)
const $article = document.querySelector(‘article.article-longform’)
const $paywall = document.querySelector(‘section.paywall’)

const $currentCustomFooter = $body.querySelector(‘div.custom-footer’)
if ($currentCustomFooter) $currentCustomFooter.remove()

// WEB
if (!isInApp) {
// Si présence d’une section avec la classe .pawall–abo,
// alors on considère que le lecteur est connecté
const isConnected = document.querySelector(‘section.paywall.paywall–longform.paywall–abo’)
// S’il est connecté, on injecte le footer
if (isConnected) $body.insertBefore($customFooter, $main.nextSibling)
else return
// Sinon on fait rien

// APP
} else {
// Si présence d’une DIV avec classe paywall-container et id bloc_paywall
// alors, on est PAS connecté
const isNotConnected = document.querySelector(‘div.paywall-container#bloc_paywall’)
// Donc on est connecté si on est pas PAS connecté
const isConnected = !isNotConnected
// Si on est pas connecté, alors on « return » c’est à dire on execute pas
// le code en dessous
if (!isConnected) return

// Du coup ici on est connecté
// La je récupère la taille du padding article dans l’app
const articleLeftPadding = window.getComputedStyle($article).paddingLeft
const articleRightPadding = window.getComputedStyle($article).paddingRight

// Je compense le padding auquel on est contraint dans article
// via une marge négative sur le footer
$customFooter.style.marginLeft = `calc(-1 * ${articleLeftPadding})`
$customFooter.style.marginRight = `calc(-1 * ${articleRightPadding})`

// On injecte ENFIN ce satané footer
$article.insertBefore($customFooter, $article.lastChild.nextSibling)
}
}

Jamais elle n’avait été aussi proche de la liberté que cette nuit de février 2018… Ce soir-là, la princesse Latifa Al-Maktoum, alors âgée de 32 ans, fille de Mohammed Ben Rachid Al-Maktoum, l’émir de Dubaï, s’est approchée très près de sa destination, le Sri Lanka, à bord du Nostromo, un deux-mâts battant pavillon américain, habituellement affrété pour des croisières de luxe en Asie du Sud.

Pour cette jeune femme, Dubaï est une prison dorée. Latifa dit y souffrir d’une vie régentée par les services de son autocrate de père. Lasse de cette existence dorée mais oisive, frustrée de ne pouvoir voyager à l’étranger ou étudier la médecine comme elle en rêve, elle a décidé de fuguer. « Il n’y a pas de justice, ici. Surtout si vous êtes une femme. Tout ce dont se préoccupe mon père, c’est sa réputation. Il est prêt à tuer des gens pour la protéger », explique-t-elle dans une vidéo envoyée à ses amis.

Trois ans à chercher la faille

A bord du voilier, les passagers sont allés se coucher quand des bruits se font entendre et qu’une onde secoue la coque. A l’approche de l’Inde, au large de Goa, un commando héliporté des forces spéciales de la marine indienne – accompagnée d’Emiriens – prend le bateau d’assaut en usant de fumigènes, pendant que, dans le ciel, un avion brouille les communications.

« Nous dormions dans nos cabines quand nous avons entendu des tirs. Nous nous sommes réfugiés dans les toilettes, terrorisés. Puis, on a été obligés de monter sur le pont, car une fumée nous asphyxiait. En empruntant l’escalier, des armes munies de viseurs lasers étaient pointées sur nous », racontera en avril 2018 Tiina Jauhiainen, l’amie finlandaise de Latifa Al-Maktoum, sa professeure de capoeira. « J’ai été jetée par terre et menottée, puis ils m’ont traînée au bord du bateau, m’ont collé le visage près de la surface de l’eau et m’ont dit : “Ferme les yeux, respire profondément une toute dernière fois, on va te faire exploser la cervelle.” »

A quelques mètres, la princesse Latifa implore une dernière fois ses ravisseurs : « Tirez sur moi ici, mais ne me ramenez pas », alors que des soldats la traînent hors du bateau.

Le skipper, un Français, Hervé Jaubert, ancien membre de la DGSE, est ramené aux Emirats, où il est incarcéré un mois. La princesse, elle, disparaît. Latifa Al-Maktoum, qui a économisé 300 000 dollars pour son projet de fuite, a engagé le Français parce que l’homme d’affaires avait lui-même réussi à fuir l’émirat après des démêlées avec les autorités locales. Il avait été accusé de détournements de fonds – qu’il nie.

Il vous reste 62.7% de cet article à lire. La suite est réservée aux abonnés.

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *

Translate »