templates/frontoffice_bundle/base/index.html.twig line 1

  1. {% extends 'frontoffice_bundle/base.html.twig' %}
  2. {% block activeIndex %}class="active"{% endblock %}
  3. {% block body %}
  4. <style>
  5.     .voir_plus:hover{color:rgb(1 122 8 / 59%);}
  6. </style>
  7.     {# <div class="modal fade" id="searchModal" tabindex="-1" aria-labelledby="exampleModalLabel" aria-hidden="true">
  8.         <div class="modal-dialog modal-fullscreen">
  9.             
  10.                 <div class="modal-content rounded-0">
  11.                     <div class="modal-header">
  12.                         <h5 class="modal-title" id="exampleModalLabel">Recherche par mot-clé</h5>
  13.                         <button type="button" class="btn-close" data-bs-dismiss="modal" aria-label="Close"></button>
  14.                     </div>
  15.                     <form action="/search/" method="GET">
  16.                     <div class="modal-body d-flex align-items-center">
  17.                         <div class="input-group w-75 mx-auto d-flex">
  18.                             <input type="search" class="form-control p-3" placeholder="mot-clé" aria-describedby="search-icon-1" name="name">
  19.                             <button type="submit" id="search-icon-1" class="input-group-text p-3"><i class="fa fa-search"></i></button>
  20.                         </div>
  21.                     </div>
  22.                     </form>
  23.                 </div>
  24.             
  25.         </div>
  26.     </div> #}
  27.     <div class="container-fluid py-1 mb-5 hero-header">
  28.         <div class="container py-5">
  29.             <div class="row g-5 align-items-center">
  30.                 <div class="col-md-12 col-lg-7">
  31.                     <h4 class="mb-3 text-secondary">Aliments 100%</h4>
  32.                     <h1 class="mb-5 display-3 text-primary">Légumes et fruits</h1>
  33.                     <div class="position-relative mx-auto">
  34.                     <form action="/search/" method="GET">
  35.                         <input class="form-control border-2 border-secondary w-75 py-3 px-4 rounded-pill" type="text" placeholder="Recherche" name="name" >
  36.                         <button type="submit" class="btn btn-primary border-2 border-secondary py-3 px-4 position-absolute rounded-pill text-white h-100" style="top: 0; right: 25%;">Envoyer maintenant</button>
  37.                     </form>
  38.                     </div>
  39.                 </div>
  40.                 <div class="col-md-12 col-lg-5">
  41.                     <div id="carouselId" class="carousel slide position-relative" data-bs-ride="carousel">
  42.                         {% set counter = 0 %}
  43.                         <div class="carousel-inner" role="listbox">
  44.                             {% for slide in sliders %}
  45.                                 <div class="carousel-item rounded {% if counter == 0 %}active{% endif %}">
  46.                                     <img src="{{ asset(slide.img) }}" class="img-fluid w-100 h-100 bg-secondary rounded" alt="Diapositive">
  47.                                     <a href="{{ slide.url }}" class="btn px-4 py-2 text-white rounded">{{ slide.titre }}</a>
  48.                                 </div>
  49.                                 {% set counter = counter + 1 %}
  50.                             {% endfor %}
  51.                         </div>
  52.                         {#<div class="carousel-inner" role="listbox">#}
  53.                         {#    <div class="carousel-item active rounded">#}
  54.                         {#        <img src="{{ asset("bundles/Frontoffice/img/hero-img-1.png")}}" class="img-fluid w-100 h-100 bg-secondary rounded" alt="Première diapositive">#}
  55.                         {#        <a href="/products/Fruits/2/" class="btn px-4 py-2 text-white rounded">Fruits</a>#}
  56.                         {#    </div>#}
  57.                         {#    <div class="carousel-item rounded">#}
  58.                         {#        <img src="{{ asset("bundles/Frontoffice/img/hero-img-2.jpg")}}" class="img-fluid w-100 h-100 rounded" alt="Deuxième diapositive">#}
  59.                         {#        <a href="/products/Légumes/1/" class="btn px-4 py-2 text-white rounded">Légumes</a>#}
  60.                         {#    </div>#}
  61.                         {#    <div class="carousel-item rounded">#}
  62.                         {#        <img src="{{ asset("bundles/Frontoffice/img/hero-img-333.jpg")}}" class="img-fluid w-100 h-100 rounded" alt="Deuxième diapositive">#}
  63.                         {#        <a href="/products/Poissons/3/" class="btn px-4 py-2 text-white rounded">Poissons</a>#}
  64.                         {#    </div>#}
  65.                         {#</div>#}
  66.                         <button class="carousel-control-prev" type="button" data-bs-target="#carouselId" data-bs-slide="prev">
  67.                             <span class="carousel-control-prev-icon" aria-hidden="true"></span>
  68.                             <span class="visually-hidden">Précédent</span>
  69.                         </button>
  70.                         <button class="carousel-control-next" type="button" data-bs-target="#carouselId" data-bs-slide="next">
  71.                             <span class="carousel-control-next-icon" aria-hidden="true"></span>
  72.                             <span class="visually-hidden">Suivant</span>
  73.                         </button>
  74.                     </div>
  75.                 </div>
  76.             </div>
  77.         </div>
  78.     </div>
  79.     <div class="container-fluid featurs py-1">
  80.         <div class="container py-5">
  81.             <div class="row g-4">
  82.                 <div class="col-md-6 col-lg-3">
  83.                     <div class="featurs-item text-center rounded bg-light p-4">
  84.                         <div class="featurs-icon btn-square rounded-circle bg-secondary mb-5 mx-auto">
  85.                             <i class="fas fa-car-side fa-3x text-white"></i>
  86.                         </div>
  87.                         <div class="featurs-content text-center">
  88.                             <h5>Livraison gratuite</h5>
  89.                             <p class="mb-0">Gratuite pour toute commande de plus de 300 $</p>
  90.                         </div>
  91.                     </div>
  92.                 </div>
  93.                 <div class="col-md-6 col-lg-3 text-center rounded bg-light">
  94.                     <div class="featurs-item  p-4">
  95.                         <div class="featurs-icon btn-square rounded-circle bg-secondary mb-5 mx-auto">
  96.                             <i class="fas fa-user-shield fa-3x text-white"></i>
  97.                         </div>
  98.                         <div class="featurs-content text-center">
  99.                             <h5>Paiement sécurisé</h5>
  100.                             <p class="mb-0">Paiement 100% sécurisé</p>
  101.                         </div>
  102.                     </div>
  103.                 </div>
  104.                 <div class="col-md-6 col-lg-3">
  105.                     <div class="featurs-item text-center rounded bg-light p-4">
  106.                         <div class="featurs-icon btn-square rounded-circle bg-secondary mb-5 mx-auto">
  107.                             <i class="fas fa-exchange-alt fa-3x text-white"></i>
  108.                         </div>
  109.                         <div class="featurs-content text-center">
  110.                             <h5>Retour sous 30 jours</h5>
  111.                             <p class="mb-0">Garantie de remboursement sous 30 jours</p>
  112.                         </div>
  113.                     </div>
  114.                 </div>
  115.                 <div class="col-md-6 col-lg-3 text-center rounded bg-light">
  116.                     <div class="featurs-item p-4">
  117.                         <div class="featurs-icon btn-square rounded-circle bg-secondary mb-5 mx-auto">
  118.                             <i class="fa fa-phone-alt fa-3x text-white"></i>
  119.                         </div>
  120.                         <div class="featurs-content text-center">
  121.                             <h5>Support 24/7</h5>
  122.                             <p class="mb-0">Support rapide à tout moment</p>
  123.                         </div>
  124.                     </div>
  125.                 </div>
  126.             </div>
  127.         </div>
  128.     </div>
  129.     <div class="container-fluid fruite py-1" id="produits">
  130.         <div class="container py-5">
  131.             <div class="tab-class text-center">
  132.                     <div class="row g-4">
  133.             <div class="col-lg-4 text-start">
  134.                 <h1>Nos Produits</h1>
  135.                     </div>
  136.                     <div class="col-lg-8 text-end">
  137.                         <ul class="nav nav-pills d-inline-flex text-center mb-5">
  138.                             <li class="nav-item">
  139.                                 <a class="d-flex m-2 py-2 bg-light rounded-pill active" data-bs-toggle="pill" href="#tab-0">
  140.                                     <span class="text-dark" style="width: 180px;">Tous les produits</span>
  141.                                 </a>
  142.                             </li>
  143.                                 {% for cat in categories %}
  144.                                 <li class="nav-item">
  145.                                     <a class="d-flex py-2 m-2 bg-light rounded-pill" data-bs-toggle="pill" href="#tab-{{ loop.index }}">
  146.                                         <span class="text-dark" style="width: 130px;">{{cat.titre}} </span>
  147.                                     </a>
  148.                                 </li>
  149.                                 {% endfor %}
  150.                         </ul>
  151.                     </div>
  152.                 </div>
  153.                 <div class="tab-content">
  154.                     <div id="tab-0" class="tab-pane fade show p-0 active">
  155.                         <div class="row g-4">
  156.                             <div class="col-lg-12">
  157.                                 <div class="row g-4">
  158.                                     {% for a in articles %}
  159.                                         <div class="col-md-6 col-lg-4 col-xl-3" >
  160.                                             <div class="rounded position-relative fruite-item  border border-secondary rounded-bottom">
  161.                                                 <div class="fruite-img">
  162.                                                     <a href="/product/{{ a["titreCat"] }}/{{ a["titreCat"] }}/{{ a[0].id }}/">
  163.                                                     <img src="{{ asset(a[0].imgPrincipale) }}"  class="img-fluid w-100 rounded-top" alt="" 
  164.                                                         style="
  165.                                                         height: 210px !important;
  166.                                                         padding-left: 20px;
  167.                                                         padding-right: 20px;
  168.                                                         padding-top: 20px;"
  169.                                                     ></a>
  170.                                                 </div>
  171.                                                 <div class="text-white bg-secondary px-3 py-1 rounded position-absolute" style="top: 10px; left: 10px;"> {{a["titreCat"]}} </div>
  172.                                                 <div class="p-4">
  173.                                                     
  174.                                                     <h4><a href="/product/{{ a["titreCat"] }}/{{ a["titreCat"] }}/{{ a[0].id }}/" style='color:#45595b'>{{a[0].titre}}</a></h4>
  175.                                                     <p>{{a[0].description | raw}}</p>
  176.                                                         <div class="input-group" style="width: 60%;margin-top:10px;margin-bottom: 10px;margin-left: auto;margin-right: auto;">
  177.                                                             <div class="input-group-btn">
  178.                                                                 <button type="button" class="btn btn-default btn-number" disabled="disabled" data-type="minus" data-field="quant-{{ a[0].id }}">
  179.                                                                     <i class="fa fa-minus"></i>
  180.                                                                 </button>
  181.                                                             </div>
  182.                                                             <input type="text" name="quant-{{ a[0].id }}" class="form-control input-number" id="quant-{{ a[0].id }}" value="{{ a[0].minQte }}" min="{{ a[0].minQte }}" max="150" unite="{{ a[0].unite }}">
  183.                                                             <div class="input-group-btn">
  184.                                                                 <button type="button" class="btn btn-default btn-number" data-type="plus" data-field="quant-{{ a[0].id }}">
  185.                                                                     <i class="fa fa-plus"></i>
  186.                                                                 </button>
  187.                                                             </div>
  188.                                                         </div>
  189.                                                     <div class="d-flex justify-content-between flex-lg-wrap">
  190.                                                         <p class="text-dark fs-5 fw-bold mb-0">{{a[0].prixTtc}} DH</p>
  191.                                                         <button type="button" class="btn border border-secondary rounded-pill px-3 text-primary" onClick='addToPanierArticle({{ a[0].id }});'><i class="fa fa-cart-plus me-2 text-primary"></i> Au panier</button>
  192.                                                     </div>
  193.                                                 </div>
  194.                                             </div>
  195.                                         </div>
  196.                                     {% endfor %}
  197.                                 </div>
  198.                             </div>
  199.                         </div>
  200.                     </div>
  201.                     {% for cat in categories %}
  202.                         <div id="tab-{{loop.index}}" class="tab-pane fade show p-0">
  203.                             <div class="row g-4">
  204.                                 <div class="col-lg-12">
  205.                                     <div class="row g-4">
  206.                                         {% for a in articles %}
  207.                                             {% if a[0].idSousCategorie == cat.id %}
  208.                                                 <div class="col-md-6 col-lg-4 col-xl-3">
  209.                                                     <div class="rounded position-relative fruite-item border border-secondary rounded-bottom">
  210.                                                         <div class="fruite-img">
  211.                                                             <a href="/product/{{ a["titreCat"] }}/{{ a["titreCat"] }}/{{ a[0].id }}/">
  212.                                                                 <img src="{{ asset(a[0].imgPrincipale) }}" class="img-fluid w-100 rounded-top" alt="" 
  213.                                                                 style="height: 210px !important;padding-left: 20px;padding-right: 20px;padding-top: 20px;">
  214.                                                             </a>
  215.                                                         </div>
  216.                                                         <div class="text-white bg-secondary px-3 py-1 rounded position-absolute" style="top: 10px; left: 10px;"> {{a["titreCat"]}} </div>
  217.                                                         <div class="p-4">
  218.                                                             <h4>{{a[0].titre}}</h4>
  219.                                                             <p>{{a[0].description | raw}}</p>
  220.                                                             <div class="d-flex justify-content-between flex-lg-wrap">
  221.                                                                 <p class="text-dark fs-5 fw-bold mb-0">{{a[0].prixTtc}} DH</p>
  222.                                                                 <button type="button" class="btn border border-secondary rounded-pill px-3 text-primary" onClick='addToPanierArticle({{ a[0].id }});'><i class="fa fa-cart-plus me-2 text-primary"></i> Au panier</button>
  223.                                                             </div>
  224.                                                         </div>
  225.                                                     </div>
  226.                                                 </div>
  227.                                             {% endif %}
  228.                                         {% endfor %}
  229.                                     </div>
  230.                                 </div>
  231.                             </div>
  232.                         </div>
  233.                     {% endfor %}
  234.                 </div>
  235.             </div>      
  236.         </div>
  237.     </div>
  238.     <div class="container-fluid service py-1">
  239.         <div class="container py-5">
  240.             <div class="row g-4 justify-content-center">
  241.                 <div class="col-md-6 col-lg-4">
  242.                     <a href="#">
  243.                         <div class="service-item bg-secondary rounded border border-secondary">
  244.                             <img src="{{ asset("bundles/Frontoffice/img/featur-1.jpg")}}" class="img-fluid rounded-top w-100" alt="">
  245.                             <div class="px-4 rounded-bottom">
  246.                                 <div class="service-content bg-primary text-center p-4 rounded">
  247.                                     <h5 class="text-white">Pommes Fraîches</h5>
  248.                                     <h3 class="mb-0 text-secondary">20% de réduction</h3>
  249.                                 </div>
  250.                             </div>
  251.                         </div>
  252.                     </a>
  253.                 </div>
  254.                 <div class="col-md-6 col-lg-4">
  255.                     <a href="#">
  256.                         <div class="service-item bg-dark rounded border border-dark">
  257.                             <img src="{{ asset("bundles/Frontoffice/img/featur-2.jpg")}}" class="img-fluid rounded-top w-100" alt="">
  258.                             <div class="px-4 rounded-bottom">
  259.                                 <div class="service-content bg-light text-center p-4 rounded">
  260.                                     <h5 class="text-primary">Fruits Savoureux</h5>
  261.                                     <h3 class="mb-0">Livraison gratuite</h3>
  262.                                 </div>
  263.                             </div>
  264.                         </div>
  265.                     </a>
  266.                 </div>
  267.                 <div class="col-md-6 col-lg-4">
  268.                     <a href="#">
  269.                         <div class="service-item bg-primary rounded border border-primary">
  270.                             <img src="{{ asset("bundles/Frontoffice/img/featur-3.jpg")}}" class="img-fluid rounded-top w-100" alt="">
  271.                             <div class="px-4 rounded-bottom">
  272.                                 <div class="service-content bg-secondary text-center p-4 rounded">
  273.                                     <h5 class="text-white">Légume Exotique</h5>
  274.                                     <h3 class="mb-0 text-primary">30% de réduction</h3>
  275.                                 </div>
  276.                             </div>
  277.                         </div>
  278.                     </a>
  279.                 </div>
  280.             </div>
  281.         </div>
  282.     </div>
  283.     <div class="container-fluid banner my-1" style="background-color:rgb(1 122 8 / 59%) ;">{# #107aa280#}
  284.         <div class="container py-4">
  285.             <div class="row g-4 align-items-center">
  286.             <div class="col-lg-6">
  287.                 <div class="py-4">
  288.                     <h2 class="display-3 text-white">Fruits Exotiques Frais</h2>
  289.                     <p class="fw-normal display-3 text-dark mb-4">dans notre magasin</p>
  290.                     <p class="mb-4 text-dark">{{ArticlePromo[0].description | raw}}</p> {#href="/promotions"#}
  291.                     <a onClick='addToPanier({{ ArticlePromo[0].id  }},{{ ArticlePromo[0].minQte  }});'  class="banner-btn btn border-2 border-white rounded-pill text-dark py-3 px-5">ACHETER</a>
  292.                 </div>
  293.             </div>
  294.                 <div class="col-lg-6">
  295.                     <div class="position-relative">
  296.                         <img src="{{ asset(ArticlePromo[0].imgPrincipale) }}"  class="img-fluid w-100 rounded" alt="">
  297.                         <div class="d-flex align-items-center justify-content-center bg-white rounded-circle position-absolute" style="width: 140px; height: 140px; top: 0; left: 0;">
  298.                             <h2 style="font-size: 100px;padding-left:10px;">{{ArticlePromo[0].minQte}}</h2>
  299.                             <div class="d-flex flex-column">
  300.                                 {% if typeCompte == "PARTICULIER" %}
  301.                                     <span class="h3 mb-0">{{ArticlePromo[0].prixHT}} DH</span>
  302.                                 {% else %}
  303.                                     <span class="h3 mb-0">{{ArticlePromo[0].prixPro}} DH</span>
  304.                                 {% endif %}
  305.                                 <span class="h4 text-muted mb-0">{{ArticlePromo[0].unite}}</span>
  306.                             </div>
  307.                         </div>
  308.                     </div>
  309.                 </div>
  310.             </div>
  311.         </div>
  312.     </div>
  313.     <div class="container-fluid vesitable py-1">
  314.         <div class="container py-5">
  315.             <div style="display: flex;"><h1 class="mb-0">Nos Promotions</h1> <a href="/promotions"  class="voir_plus mt-3"> &nbsp;&nbsp; ( Voir plus )</a></div>
  316.             <div class="owl-carousel vegetable-carousel justify-content-center">
  317.             {% for a in ArticlesPromotions %}
  318.                 <div class="border border-primary rounded position-relative vesitable-item">
  319.                     <div class="vesitable-img">
  320.                         <a href="/product/{{ a["titreCat"] }}/{{ a["titreCat"] }}/{{ a[0].id }}/"><img src="{{ asset(a[0].imgPrincipale) }}" class="img-fluid w-100 rounded-top" alt="" 
  321.                         style="
  322.                             height: 210px !important;
  323.                             padding-left: 20px;
  324.                             padding-right: 20px;
  325.                             padding-top: 20px;"></a>
  326.                     </div>
  327.                     <div class="text-white bg-primary px-3 py-1 rounded position-absolute" style="top: 10px; right: 10px;">{{a["titreCat"]}} </div>
  328.                     <div class="p-4 rounded-bottom">
  329.                         <h4>{{a[0].titre}}</h4>
  330.                         <p>{{a[0].description | raw}}</p>
  331.                         <div class="d-flex justify-content-between flex-lg-wrap">
  332.                             <p class="text-dark fs-5 fw-bold mb-0">{{a[0].prixTtc}} DH</p>
  333.                             <input type="text" style="display:none;" name="quant-{{ a[0].id }}" class="form-control input-number" id="quant-{{ a[0].id }}" value="{{ a[0].minQte }}" min="{{ a[0].minQte }}" max="150" unite="{{ a[0].unite }}">
  334.                             <button class="btn border border-secondary rounded-pill px-3 py-1 mb-4 text-primary" onClick='addToPanierArticle({{ a[0].id }});'>Ajouter au <i class="fa fa-shopping-cart"></i></button>                                    
  335.                         </div>
  336.                     </div>
  337.                 </div>
  338.             {% endfor %}
  339.             </div>
  340.         </div>
  341.     </div>
  342. {% endblock %}
  343. {% block js %}
  344.     <script src='https://cdn.jsdelivr.net/jquery.slick/1.5.9/slick.min.js'></script>
  345.     <script src='https://cdnjs.cloudflare.com/ajax/libs/gsap/1.18.2/TweenMax.min.js'></script>
  346.     
  347.     <script type="text/javascript">
  348.         var listOfProduct = {{ articlesJson|json_encode|raw }};
  349.         function addArtPan(){
  350.             var qte = document.getElementById("qte").value;
  351.             var id = document.getElementById("idArticle").value;
  352.             addToPanier(id,qte);
  353.             var lastPan = parseInt(document.getElementById("nbrArticle").innerText);
  354.             var nbrPan = lastPan+1;
  355.             document.getElementById("nbrArticle").innerText = nbrPan;
  356.         }
  357.         function addToPanierArticle(id){
  358.             var qte = document.getElementById("quant-"+id).value;
  359.             addToPanier(id,qte);
  360.             var lastPan = parseInt(document.getElementById("nbrArticle").innerText);
  361.             var nbrPan = lastPan+1;
  362.             document.getElementById("nbrArticle").innerText = nbrPan;
  363.         }
  364.         function goToPage(url){
  365.             window.location = url;
  366.         }
  367.         /*---------slider----------*/
  368.         var $slider = $('.slider');
  369.         var $slickTrack = $('.slick-track');
  370.         var $slickCurrent = $('.slick-current');
  371.         var slideDuration = 900;
  372.         //RESET ANIMATIONS
  373.         // On init slide change
  374.         $slider.on('init', function(slick){
  375.             TweenMax.to($('.slick-track'), 0.9, {
  376.                 marginLeft: 0
  377.             });
  378.             TweenMax.to($('.slick-active'), 0.9, {
  379.                 x: 0,
  380.                 zIndex: 2
  381.             });
  382.         });
  383.         // On before slide change
  384.         $slider.on('beforeChange', function(event, slick, currentSlide, nextSlide){
  385.             TweenMax.to($('.slick-track'), 0.9, {
  386.                 marginLeft: 0
  387.             });
  388.             TweenMax.to($('.slick-active'), 0.9, {
  389.                 x: 0
  390.             });
  391.         });
  392.         // On after slide change
  393.         $slider.on('afterChange', function(event, slick, currentSlide){
  394.             TweenMax.to($('.slick-track'), 0.9, {
  395.                 marginLeft: 0
  396.             });
  397.             $('.slick-slide').css('z-index','1');
  398.             TweenMax.to($('.slick-active'), 0.9, {
  399.                 x: 0,
  400.                 zIndex: 2
  401.             });
  402.         });
  403.         //SLICK INIT
  404.         $slider.slick({
  405.             speed: slideDuration,
  406.             dots: true,
  407.             waitForAnimate: true,
  408.             useTransform: true,
  409.             cssEase: 'cubic-bezier(0.455, 0.030, 0.130, 1.000)',
  410.             autoplay: true,
  411.             autoplaySpeed: 3000
  412.         })
  413.         //PREV
  414.         $('.slick-prev').on('mouseenter', function(){
  415.             TweenMax.to($('.slick-track'), 0.6, {
  416.                 marginLeft: "180px",
  417.                 ease: Quad.easeOut
  418.             });
  419.             TweenMax.to($('.slick-current'), 0.6, {
  420.                 x: -100,
  421.                 ease: Quad.easeOut
  422.             });
  423.         });
  424.         $('.slick-prev').on('mouseleave', function(){
  425.             TweenMax.to($('.slick-track'), 0.4, {
  426.                 marginLeft: 0,
  427.                 ease: Sine.easeInOut
  428.             });
  429.             TweenMax.to($('.slick-current'), 0.4, {
  430.                 x: 0,
  431.                 ease: Sine.easeInOut
  432.             });
  433.         });
  434.         //NEXT
  435.         $('.slick-next').on('mouseenter', function(){
  436.             TweenMax.to($('.slick-track'), 0.6, {
  437.                 marginLeft: "-180px",
  438.                 ease: Quad.easeOut
  439.             });
  440.             TweenMax.to($('.slick-current'), 0.6, {
  441.                 x: 100,
  442.                 ease: Quad.easeOut
  443.             });
  444.         });
  445.         $('.slick-next').on('mouseleave', function(){
  446.             TweenMax.to($('.slick-track'), 0.4, {
  447.                 marginLeft: 0,
  448.                 ease: Quad.easeInOut
  449.             });
  450.             TweenMax.to($('.slick-current'), 0.4, {
  451.                 x: 0,
  452.                 ease: Quad.easeInOut
  453.             });
  454.         });
  455.     </script>
  456.     <script src='{{ asset("bundles/Frontoffice/js/products.js") }}'></script>
  457. {% endblock %}