From 7791054ca055f7836692e1468192c55cdd48b3d3 Mon Sep 17 00:00:00 2001 From: Jules Neny Date: Mon, 11 May 2026 18:40:50 +0200 Subject: [PATCH] =?UTF-8?q?feat(v12-q):=20iframe=20AEP=20forc=C3=A9=20desk?= =?UTF-8?q?top=20via=20transform=20scale=20+=20viewport=201440px?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/components/vue/EmbedDynamique.vue | 33 ++++++++++++++++++++++++--- 1 file changed, 30 insertions(+), 3 deletions(-) diff --git a/src/components/vue/EmbedDynamique.vue b/src/components/vue/EmbedDynamique.vue index f4b289a..949c0d6 100644 --- a/src/components/vue/EmbedDynamique.vue +++ b/src/components/vue/EmbedDynamique.vue @@ -14,8 +14,27 @@ interface JournalItem { const selectedItem = ref(null) const iframeRef = ref(null) +const wrapperRef = ref(null) const skeletonHidden = ref(false) +// Force rendu desktop de l'iframe AEP : viewport simulée 1440px + scale dynamique +const VIEWPORT_W = 1440 +const iframeScale = ref(0.42) +let resizeObs: ResizeObserver | null = null + +const updateScale = () => { + if (!wrapperRef.value) return + const w = wrapperRef.value.clientWidth + if (w > 0) iframeScale.value = w / VIEWPORT_W +} + +const iframeStyle = computed(() => ({ + width: VIEWPORT_W + 'px', + height: (100 / iframeScale.value) + '%', + transform: `scale(${iframeScale.value})`, + transformOrigin: '0 0', +})) + const onJournalItemClick = (e: Event) => { const ce = e as CustomEvent if (ce.detail?.item) selectedItem.value = ce.detail.item @@ -23,9 +42,16 @@ const onJournalItemClick = (e: Event) => { onMounted(() => { window.addEventListener('journal-item-click', onJournalItemClick as EventListener) + if (wrapperRef.value && typeof ResizeObserver !== 'undefined') { + updateScale() + resizeObs = new ResizeObserver(updateScale) + resizeObs.observe(wrapperRef.value) + } }) onUnmounted(() => { window.removeEventListener('journal-item-click', onJournalItemClick as EventListener) + resizeObs?.disconnect() + resizeObs = null }) const reset = () => { @@ -89,18 +115,19 @@ const formatDate = (iso: string) => {
-
+
Chargement de la carte AEP...