@bebranded/bb-contents 1.0.149 → 1.0.151

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (2) hide show
  1. package/bb-contents.js +58 -2
  2. package/package.json +1 -1
package/bb-contents.js CHANGED
@@ -32,7 +32,7 @@
32
32
  window._bbContentsInitialized = true;
33
33
 
34
34
  // Log de démarrage simple (une seule fois)
35
- console.log('bb-contents | v1.0.149');
35
+ console.log('bb-contents | v1.0.151');
36
36
 
37
37
  // Configuration
38
38
  const config = {
@@ -572,10 +572,66 @@
572
572
  });
573
573
  };
574
574
 
575
+ // NOUVEAU: Forcer le rendu complet en déplaçant temporairement le conteneur
576
+ // pour que toutes les parties soient visibles (même brièvement)
577
+ // Cela force le navigateur à rendre même les parties très larges sur grands écrans
578
+ // Pour "left", on force le rendu de la partie DROITE (où les copies apparaîtront)
579
+ // Pour "right", on force le rendu de la partie GAUCHE
580
+ const forceFullRender = function() {
581
+ return new Promise(function(resolve) {
582
+ // Calculer la largeur totale des copies
583
+ const totalWidth = Math.max(
584
+ repeatBlock1.offsetWidth || 0,
585
+ repeatBlock2.offsetWidth || 0
586
+ );
587
+
588
+ if (totalWidth > 0 && totalWidth > window.innerWidth) {
589
+ // Déplacer temporairement le conteneur pour forcer le rendu
590
+ tempContainer.style.left = '0px';
591
+ tempContainer.style.width = totalWidth + 'px';
592
+ tempContainer.style.overflow = 'visible';
593
+
594
+ // Forcer un reflow pour que le navigateur calcule les dimensions
595
+ void tempContainer.offsetWidth;
596
+
597
+ // NOUVEAU: Pour "left", déplacer pour que la FIN soit visible (partie droite)
598
+ // Pour "right", déplacer pour que le DÉBUT soit visible (partie gauche)
599
+ // On va faire les deux pour être sûr que tout est rendu
600
+ const translateXEnd = Math.max(0, totalWidth - window.innerWidth);
601
+ const translateXStart = 0;
602
+
603
+ // D'abord rendre la fin (pour "left" - où les copies apparaîtront)
604
+ tempContainer.style.transform = 'translateX(-' + translateXEnd + 'px)';
605
+ void tempContainer.offsetWidth;
606
+ requestAnimationFrame(function() {
607
+ // Ensuite rendre le début (pour "right" - où les copies apparaîtront)
608
+ tempContainer.style.transform = 'translateX(-' + translateXStart + 'px)';
609
+ void tempContainer.offsetWidth;
610
+ requestAnimationFrame(function() {
611
+ // Revenir à la position initiale
612
+ tempContainer.style.transform = '';
613
+ tempContainer.style.left = '-9999px';
614
+ tempContainer.style.width = 'auto';
615
+ void tempContainer.offsetWidth;
616
+ requestAnimationFrame(function() {
617
+ requestAnimationFrame(resolve);
618
+ });
619
+ });
620
+ });
621
+ } else {
622
+ // Si pas besoin de déplacement, juste attendre un frame
623
+ requestAnimationFrame(function() {
624
+ requestAnimationFrame(resolve);
625
+ });
626
+ }
627
+ });
628
+ };
629
+
575
630
  // Attendre que toutes les images soient rendues dans les copies
576
631
  Promise.all([
577
632
  waitForImagesRender(repeatBlock1),
578
- waitForImagesRender(repeatBlock2)
633
+ waitForImagesRender(repeatBlock2),
634
+ forceFullRender() // NOUVEAU: Forcer le rendu complet
579
635
  ]).then(function() {
580
636
  // Retirer les copies du conteneur temporaire
581
637
  document.body.removeChild(tempContainer);
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@bebranded/bb-contents",
3
- "version": "1.0.149",
3
+ "version": "1.0.151",
4
4
  "description": "Contenus additionnels français pour Webflow",
5
5
  "main": "bb-contents.js",
6
6
  "scripts": {