var/cache/dev/twig/62/620a852c76046e5a903bda15cf75d438e0502146274135cfc0de055b6ba5a4c2.php line 41

Open in your IDE?
  1. <?php
  2. use Twig\Environment;
  3. use Twig\Error\LoaderError;
  4. use Twig\Error\RuntimeError;
  5. use Twig\Extension\CoreExtension;
  6. use Twig\Extension\SandboxExtension;
  7. use Twig\Markup;
  8. use Twig\Sandbox\SecurityError;
  9. use Twig\Sandbox\SecurityNotAllowedTagError;
  10. use Twig\Sandbox\SecurityNotAllowedFilterError;
  11. use Twig\Sandbox\SecurityNotAllowedFunctionError;
  12. use Twig\Source;
  13. use Twig\Template;
  14. /* project.html.twig */
  15. class __TwigTemplate_837712e9a882b2b3384aaeba74346a34aa91f959fee069ee43c1e6c32e9a7e7f extends Template
  16. {
  17.     private $source;
  18.     private $macros = [];
  19.     public function __construct(Environment $env)
  20.     {
  21.         parent::__construct($env);
  22.         $this->source $this->getSourceContext();
  23.         $this->blocks = [
  24.             'title' => [$this'block_title'],
  25.             'metaDescription' => [$this'block_metaDescription'],
  26.             'body' => [$this'block_body'],
  27.         ];
  28.     }
  29.     protected function doGetParent(array $context)
  30.     {
  31.         // line 1
  32.         return "base.html.twig";
  33.     }
  34.     protected function doDisplay(array $context, array $blocks = [])
  35.     {
  36.         $macros $this->macros;
  37.         $__internal_085b0142806202599c7fe3b329164a92397d8978207a37e79d70b8c52599e33e $this->extensions["Symfony\\Bundle\\WebProfilerBundle\\Twig\\WebProfilerExtension"];
  38.         $__internal_085b0142806202599c7fe3b329164a92397d8978207a37e79d70b8c52599e33e->enter($__internal_085b0142806202599c7fe3b329164a92397d8978207a37e79d70b8c52599e33e_prof = new \Twig\Profiler\Profile($this->getTemplateName(), "template""project.html.twig"));
  39.         $__internal_319393461309892924ff6e74d6d6e64287df64b63545b994e100d4ab223aed02 $this->extensions["Symfony\\Bridge\\Twig\\Extension\\ProfilerExtension"];
  40.         $__internal_319393461309892924ff6e74d6d6e64287df64b63545b994e100d4ab223aed02->enter($__internal_319393461309892924ff6e74d6d6e64287df64b63545b994e100d4ab223aed02_prof = new \Twig\Profiler\Profile($this->getTemplateName(), "template""project.html.twig"));
  41.         $this->parent $this->loadTemplate("base.html.twig""project.html.twig"1);
  42.         yield from $this->parent->unwrap()->yield($contextarray_merge($this->blocks$blocks));
  43.         
  44.         $__internal_085b0142806202599c7fe3b329164a92397d8978207a37e79d70b8c52599e33e->leave($__internal_085b0142806202599c7fe3b329164a92397d8978207a37e79d70b8c52599e33e_prof);
  45.         
  46.         $__internal_319393461309892924ff6e74d6d6e64287df64b63545b994e100d4ab223aed02->leave($__internal_319393461309892924ff6e74d6d6e64287df64b63545b994e100d4ab223aed02_prof);
  47.     }
  48.     // line 3
  49.     public function block_title($context, array $blocks = [])
  50.     {
  51.         $macros $this->macros;
  52.         $__internal_085b0142806202599c7fe3b329164a92397d8978207a37e79d70b8c52599e33e $this->extensions["Symfony\\Bundle\\WebProfilerBundle\\Twig\\WebProfilerExtension"];
  53.         $__internal_085b0142806202599c7fe3b329164a92397d8978207a37e79d70b8c52599e33e->enter($__internal_085b0142806202599c7fe3b329164a92397d8978207a37e79d70b8c52599e33e_prof = new \Twig\Profiler\Profile($this->getTemplateName(), "block""title"));
  54.         $__internal_319393461309892924ff6e74d6d6e64287df64b63545b994e100d4ab223aed02 $this->extensions["Symfony\\Bridge\\Twig\\Extension\\ProfilerExtension"];
  55.         $__internal_319393461309892924ff6e74d6d6e64287df64b63545b994e100d4ab223aed02->enter($__internal_319393461309892924ff6e74d6d6e64287df64b63545b994e100d4ab223aed02_prof = new \Twig\Profiler\Profile($this->getTemplateName(), "block""title"));
  56.         yield "Projets";
  57.         
  58.         $__internal_319393461309892924ff6e74d6d6e64287df64b63545b994e100d4ab223aed02->leave($__internal_319393461309892924ff6e74d6d6e64287df64b63545b994e100d4ab223aed02_prof);
  59.         
  60.         $__internal_085b0142806202599c7fe3b329164a92397d8978207a37e79d70b8c52599e33e->leave($__internal_085b0142806202599c7fe3b329164a92397d8978207a37e79d70b8c52599e33e_prof);
  61.         return; yield '';
  62.     }
  63.     // line 4
  64.     public function block_metaDescription($context, array $blocks = [])
  65.     {
  66.         $macros $this->macros;
  67.         $__internal_085b0142806202599c7fe3b329164a92397d8978207a37e79d70b8c52599e33e $this->extensions["Symfony\\Bundle\\WebProfilerBundle\\Twig\\WebProfilerExtension"];
  68.         $__internal_085b0142806202599c7fe3b329164a92397d8978207a37e79d70b8c52599e33e->enter($__internal_085b0142806202599c7fe3b329164a92397d8978207a37e79d70b8c52599e33e_prof = new \Twig\Profiler\Profile($this->getTemplateName(), "block""metaDescription"));
  69.         $__internal_319393461309892924ff6e74d6d6e64287df64b63545b994e100d4ab223aed02 $this->extensions["Symfony\\Bridge\\Twig\\Extension\\ProfilerExtension"];
  70.         $__internal_319393461309892924ff6e74d6d6e64287df64b63545b994e100d4ab223aed02->enter($__internal_319393461309892924ff6e74d6d6e64287df64b63545b994e100d4ab223aed02_prof = new \Twig\Profiler\Profile($this->getTemplateName(), "block""metaDescription"));
  71.         // line 5
  72.         yield "    ";
  73.         $context["headerContent"] = $this->extensions['App\Twig\ContentExtension']->Content("Projets""Header");
  74.         // line 6
  75.         yield "    <meta name=\"description\" content=\"
  76.     ";
  77.         // line 7
  78.         if (CoreExtension::getAttribute($this->env$this->source, ($context["headerContent"] ?? null), "content", [], "any"truetruefalse7)) {
  79.             // line 8
  80.             yield "        ";
  81.             yield $this->env->getRuntime('Twig\Runtime\EscaperRuntime')->escape(Twig\Extension\CoreExtension::striptags(CoreExtension::getAttribute($this->env$this->source, (isset($context["headerContent"]) || array_key_exists("headerContent"$context) ? $context["headerContent"] : (function () { throw new RuntimeError('Variable "headerContent" does not exist.'8$this->source); })()), "content", [], "any"falsefalsefalse8)), "html"nulltrue);
  82.             yield "
  83.     ";
  84.         } else {
  85.             // line 10
  86.             yield "         Tracol Immobilier propose une large offre en immobilier neuf (logements, bureaux, commerces), qui se caractérise par une architecture résolument contemporaine, des matériaux de qualité, et le soin apporté à chaque détail.
  87.     ";
  88.         }
  89.         // line 12
  90.         yield "    \">
  91. ";
  92.         
  93.         $__internal_319393461309892924ff6e74d6d6e64287df64b63545b994e100d4ab223aed02->leave($__internal_319393461309892924ff6e74d6d6e64287df64b63545b994e100d4ab223aed02_prof);
  94.         
  95.         $__internal_085b0142806202599c7fe3b329164a92397d8978207a37e79d70b8c52599e33e->leave($__internal_085b0142806202599c7fe3b329164a92397d8978207a37e79d70b8c52599e33e_prof);
  96.         return; yield '';
  97.     }
  98.     // line 15
  99.     public function block_body($context, array $blocks = [])
  100.     {
  101.         $macros $this->macros;
  102.         $__internal_085b0142806202599c7fe3b329164a92397d8978207a37e79d70b8c52599e33e $this->extensions["Symfony\\Bundle\\WebProfilerBundle\\Twig\\WebProfilerExtension"];
  103.         $__internal_085b0142806202599c7fe3b329164a92397d8978207a37e79d70b8c52599e33e->enter($__internal_085b0142806202599c7fe3b329164a92397d8978207a37e79d70b8c52599e33e_prof = new \Twig\Profiler\Profile($this->getTemplateName(), "block""body"));
  104.         $__internal_319393461309892924ff6e74d6d6e64287df64b63545b994e100d4ab223aed02 $this->extensions["Symfony\\Bridge\\Twig\\Extension\\ProfilerExtension"];
  105.         $__internal_319393461309892924ff6e74d6d6e64287df64b63545b994e100d4ab223aed02->enter($__internal_319393461309892924ff6e74d6d6e64287df64b63545b994e100d4ab223aed02_prof = new \Twig\Profiler\Profile($this->getTemplateName(), "block""body"));
  106.         // line 16
  107.         yield "
  108.     ";
  109.         // line 17
  110.         $context["headerContent"] = $this->extensions['App\Twig\ContentExtension']->Content("Projets""Header");
  111.         // line 18
  112.         yield "
  113.     ";
  114.         // line 19
  115.         if ((CoreExtension::getAttribute($this->env$this->source, ($context["headerContent"] ?? null), "picture", [], "any"truetruefalse19) &&  !Twig\Extension\CoreExtension::testEmpty(CoreExtension::getAttribute($this->env$this->source, (isset($context["headerContent"]) || array_key_exists("headerContent"$context) ? $context["headerContent"] : (function () { throw new RuntimeError('Variable "headerContent" does not exist.'19$this->source); })()), "picture", [], "any"falsefalsefalse19)))) {
  116.             // line 20
  117.             yield "        ";
  118.             $context["backgroundImage"] = ("/uploads/images/" CoreExtension::getAttribute($this->env$this->sourceCoreExtension::getAttribute($this->env$this->sourceCoreExtension::getAttribute($this->env$this->source, (isset($context["headerContent"]) || array_key_exists("headerContent"$context) ? $context["headerContent"] : (function () { throw new RuntimeError('Variable "headerContent" does not exist.'20$this->source); })()), "picture", [], "any"falsefalsefalse20), 0, [], "array"falsefalsefalse20), "path", [], "any"falsefalsefalse20));
  119.             // line 21
  120.             yield "    ";
  121.         } else {
  122.             // line 22
  123.             yield "        ";
  124.             $context["backgroundImage"] = "img/projets_header.jpg";
  125.             // line 23
  126.             yield "    ";
  127.         }
  128.         // line 24
  129.         yield "
  130.     <header class=\"header-tracol col-lg-8 mx-auto\" style=\"background-image: url(";
  131.         // line 25
  132.         yield $this->env->getRuntime('Twig\Runtime\EscaperRuntime')->escape((isset($context["backgroundImage"]) || array_key_exists("backgroundImage"$context) ? $context["backgroundImage"] : (function () { throw new RuntimeError('Variable "backgroundImage" does not exist.'25$this->source); })()), "html"nulltrue);
  133.         yield ");margin-top: 165px!important;\">
  134.         <div class=\"col-lg-8 mx-auto div-svg-header\">
  135.             <div id=\"header-project\" class=\"header-habiter-div\">
  136.                 ";
  137.         // line 28
  138.         if ((CoreExtension::getAttribute($this->env$this->source, ($context["headerContent"] ?? null), "name", [], "any"truetruefalse28) && CoreExtension::getAttribute($this->env$this->source, (isset($context["headerContent"]) || array_key_exists("headerContent"$context) ? $context["headerContent"] : (function () { throw new RuntimeError('Variable "headerContent" does not exist.'28$this->source); })()), "name", [], "any"falsefalsefalse28))) {
  139.             // line 29
  140.             yield "                    <svg id=\"svg-habiter\" width=\"10\" height=\"16\" xmlns=\"http://www.w3.org/2000/svg\" version=\"1.1\" xmlns:xlink=\"http://www.w3.org/1999/xlink\" xmlns:avocode=\"https://avocode.com/\" viewBox=\"0 0 10 16\"><defs></defs><desc>Generated with Avocode.</desc><g><g><title>Tracé 76</title><path d=\"M9.08929,0.51465v0h-9.08929v0v14.77002v0l9.08929,-1.93109v0z\" fill=\"#f6a400\" fill-opacity=\"1\"></path></g></g></svg>
  141.                     <h2 class=\"header-habiter-title col-lg-6\">";
  142.             // line 30
  143.             if (CoreExtension::getAttribute($this->env$this->source, ($context["headerContent"] ?? null), "name", [], "any"truetruefalse30)) {
  144.                 yield $this->env->getRuntime('Twig\Runtime\EscaperRuntime')->escape(CoreExtension::getAttribute($this->env$this->source, (isset($context["headerContent"]) || array_key_exists("headerContent"$context) ? $context["headerContent"] : (function () { throw new RuntimeError('Variable "headerContent" does not exist.'30$this->source); })()), "name", [], "any"falsefalsefalse30), "html"nulltrue);
  145.             }
  146.             yield "</h2>
  147.                     <div class=\"col-lg-8 header-content\">
  148.                         ";
  149.             // line 32
  150.             if (CoreExtension::getAttribute($this->env$this->source, ($context["headerContent"] ?? null), "content", [], "any"truetruefalse32)) {
  151.                 // line 33
  152.                 yield "                            ";
  153.                 yield CoreExtension::getAttribute($this->env$this->source, (isset($context["headerContent"]) || array_key_exists("headerContent"$context) ? $context["headerContent"] : (function () { throw new RuntimeError('Variable "headerContent" does not exist.'33$this->source); })()), "content", [], "any"falsefalsefalse33);
  154.                 yield "
  155.                         ";
  156.             } else {
  157.                 // line 35
  158.                 yield "                            <p>Fort de plusieurs années d’expérience, Tracol Immobilier propose des projets adaptés aux besoins de chacun. Répondant aux plus hautes exigences et s’inscrivant dans le temps, ils se caractérisent par une architecture résolument contemporaine, des matériaux de qualité et le soin apporté à chaque détail.</p>
  159.                         ";
  160.             }
  161.             // line 37
  162.             yield "                    </div>
  163.                 ";
  164.         }
  165.         // line 39
  166.         yield "            </div>
  167.         </div>
  168.     </header>
  169.     <div class=\"container-fluid project-page\">
  170.         ";
  171.         // line 44
  172.         $context["sectionContent1"] = $this->extensions['App\Twig\ContentExtension']->Content("Projets""Section-1");
  173.         // line 45
  174.         yield "        <div class=\"col-lg-8 mx-auto div-svg-header pre-section\">
  175.             <div class=\"col-lg-4\" style=\"font-size: 2.3em;display: flex;flex-direction: column;margin-left: 10px;\">
  176.                 <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"9.089\" height=\"14.77\" viewBox=\"0 0 9.089 14.77\">
  177.                     <path id=\"Tracé_76\" data-name=\"Tracé 76\" d=\"M682.759,232.441h-9.089v14.77l9.089-1.931Z\" transform=\"translate(-673.669 -232.441)\" fill=\"#f6a400\"/>
  178.                 </svg>
  179.                 ";
  180.         // line 50
  181.         if ((=== CoreExtension::compare(Twig\Extension\CoreExtension::length($this->env->getCharset(), (isset($context["projects"]) || array_key_exists("projects"$context) ? $context["projects"] : (function () { throw new RuntimeError('Variable "projects" does not exist.'50$this->source); })())), 0))) {
  182.             // line 51
  183.             yield "                    <h1 class=\"project-title\">pas de projet</h1>
  184.                 ";
  185.         } elseif ((=== CoreExtension::compare(Twig\Extension\CoreExtension::length($this->env->getCharset(),         // line 52
  186. (isset($context["projects"]) || array_key_exists("projects"$context) ? $context["projects"] : (function () { throw new RuntimeError('Variable "projects" does not exist.'52$this->source); })())), 1))) {
  187.             // line 53
  188.             yield "                    <h1 class=\"project-title\">";
  189.             yield $this->env->getRuntime('Twig\Runtime\EscaperRuntime')->escape(Twig\Extension\CoreExtension::length($this->env->getCharset(), (isset($context["projects"]) || array_key_exists("projects"$context) ? $context["projects"] : (function () { throw new RuntimeError('Variable "projects" does not exist.'53$this->source); })())), "html"nulltrue);
  190.             yield " projet</h1>
  191.                 ";
  192.         } else {
  193.             // line 55
  194.             yield "                    <h1 class=\"project-title\">";
  195.             yield $this->env->getRuntime('Twig\Runtime\EscaperRuntime')->escape(Twig\Extension\CoreExtension::length($this->env->getCharset(), (isset($context["projects"]) || array_key_exists("projects"$context) ? $context["projects"] : (function () { throw new RuntimeError('Variable "projects" does not exist.'55$this->source); })())), "html"nulltrue);
  196.             yield " projets</h1>
  197.                 ";
  198.         }
  199.         // line 57
  200.         yield "            </div>
  201.             <div class=\"separator\"></div>
  202.             <div id=\"section-1-project\" class=\"col-lg-6 pre-section-content\">
  203.                 ";
  204.         // line 60
  205.         if (CoreExtension::getAttribute($this->env$this->source, ($context["headerContent"] ?? null), "content", [], "any"truetruefalse60)) {
  206.             // line 61
  207.             yield "                    ";
  208.             yield CoreExtension::getAttribute($this->env$this->source, (isset($context["sectionContent1"]) || array_key_exists("sectionContent1"$context) ? $context["sectionContent1"] : (function () { throw new RuntimeError('Variable "sectionContent1" does not exist.'61$this->source); })()), "content", [], "any"falsefalsefalse61);
  209.             yield "
  210.                 ";
  211.         } else {
  212.             // line 63
  213.             yield "                    Fort de plusieurs années d’expérience, Tracol Immobilier propose des projets adaptés aux besoins de chacun. Répondant aux plus hautes exigences et s’inscrivant dans le temps, ils se caractérisent par une architecture résolument contemporaine, des matériaux de qualité et le soin apporté à chaque détail.";
  214.         }
  215.         // line 64
  216.         yield "            </div>
  217.         </div>
  218.         <section class=\"project filter mt-5\" style=\"margin-bottom: 40px\">
  219.             <div id=\"button-project-page\" class=\"col-lg-4 div-svg-header mb-4\" style=\"display: flex; align-items: center; padding-left:25px\">
  220.                 <div class=\"input-filter col-lg-3 d-flex\">
  221.                     <label for=\"all-projects\" style=\"margin-right:10px\">TOUS</label>
  222.                     <input data-id=\"all\" type=\"radio\" name=\"type\" id=\"all-projects\" class=\"mr-3 projectButton\">
  223.                 </div>
  224.                 <div class=\"input-filter col-lg-3 d-flex\">
  225.                     <label for=\"futur-projects\" style=\"margin-right:10px\">À VENIR</label>
  226.                     <input data-id=\"futur\" type=\"radio\" name=\"type\" id=\"futur-projects\" class=\"mr-3 projectButton\">
  227.                 </div>
  228.                 <div class=\"input-filter col-lg-3 d-flex\">
  229.                     <label for=\"construction-projects\" style=\"margin-right:10px\">EN COURS</label>
  230.                     <input data-id=\"construction\" type=\"radio\" name=\"type\" id=\"construction-projects\" class=\" projectButton\">
  231.                 </div>
  232.                 ";
  233.         // line 89
  234.         yield "            </div>
  235.             <div id=\"button-project-page-mobile\" class=\"col-lg-8 mx-auto div-svg-header\" style=\"display: none; align-items: center\">
  236.                 <div  class=\"flicking-viewport\">
  237.                     <div class=\"flicking-camera\">
  238.                         <div class=\"input-filter\">
  239.                             <label for=\"all-projects-mobile\">TOUS</label>
  240.                             <input data-id=\"all\" type=\"radio\" name=\"type\" id=\"all-projects-mobile\" class=\"mr-3 projectButton\">
  241.                         </div>
  242.                         <div class=\"input-filter\">
  243.                             <label for=\"futur-projects-mobile\">À VENIR</label>
  244.                             <input data-id=\"futur\" type=\"radio\" name=\"type\" id=\"futur-projects-mobile\" class=\"mr-3 projectButton\">
  245.                         </div>
  246.                         <div class=\"input-filter\">
  247.                             <label for=\"construction-projects-mobile\">EN COURS</label>
  248.                             <input data-id=\"construction\" type=\"radio\" name=\"type\" id=\"construction-projects-mobile\" class=\" projectButton\">
  249.                         </div>
  250.                         ";
  251.         // line 110
  252.         yield "
  253.                     </div>
  254.                 </div>
  255.             </div>
  256.             <div class=\"col-lg-8 mx-auto div-svg-header\" style=\"display: flex; justify-content: center; flex-direction: column;\">
  257.                 ";
  258.         // line 137
  259.         yield "
  260.                 ";
  261.         // line 144
  262.         yield "
  263.                 <div id=\"projects\" class=\"row\">
  264.                     ";
  265.         // line 178
  266.         yield "
  267.                     <div class=\"col-lg-12 project-desktop\" style=\"display: flex; flex-wrap: wrap; flex-direction: row\">
  268.                         ";
  269.         // line 180
  270.         $context['_parent'] = $context;
  271.         $context['_seq'] = CoreExtension::ensureTraversable((isset($context["projects"]) || array_key_exists("projects"$context) ? $context["projects"] : (function () { throw new RuntimeError('Variable "projects" does not exist.'180$this->source); })()));
  272.         foreach ($context['_seq'] as $context["key"] => $context["property"]) {
  273.             // line 181
  274.             yield "                            <div  class=\"item2 col-12 col-xl-6 col-lg-6 col-md-12 col-sm-12\" style=\"position:relative;cursor: pointer\">
  275.                                 ";
  276.             // line 182
  277.             if ( !Twig\Extension\CoreExtension::testEmpty(CoreExtension::getAttribute($this->env$this->source$context["property"], "pictures", [], "any"falsefalsefalse182))) {
  278.                 // line 183
  279.                 yield "                                    <div class=\"position-relative properties-slide img-wrapper\">
  280.                                             ";
  281.                 // line 184
  282.                 $context["url"] = ((CoreExtension::inFilter("http"CoreExtension::getAttribute($this->env$this->sourceCoreExtension::getAttribute($this->env$this->sourceCoreExtension::getAttribute($this->env$this->source$context["property"], "pictures", [], "any"falsefalsefalse184), 0, [], "any"falsefalsefalse184), "url", [], "any"falsefalsefalse184))) ? (CoreExtension::getAttribute($this->env$this->sourceCoreExtension::getAttribute($this->env$this->sourceCoreExtension::getAttribute($this->env$this->source$context["property"], "pictures", [], "any"falsefalsefalse184), 0, [], "any"falsefalsefalse184), "url", [], "any"falsefalsefalse184)) : ($this->extensions['Symfony\Bridge\Twig\Extension\AssetExtension']->getAssetUrl(((("uploads/images/properties/" CoreExtension::getAttribute($this->env$this->source$context["property"], "id", [], "any"falsefalsefalse184)) . "/") . CoreExtension::getAttribute($this->env$this->sourceCoreExtension::getAttribute($this->env$this->sourceCoreExtension::getAttribute($this->env$this->source$context["property"], "pictures", [], "any"falsefalsefalse184), 0, [], "any"falsefalsefalse184), "url", [], "any"falsefalsefalse184)))));
  283.                 // line 185
  284.                 yield "                                            <div class=\"img\" style=\"background-image: url('";
  285.                 yield $this->env->getRuntime('Twig\Runtime\EscaperRuntime')->escape((isset($context["url"]) || array_key_exists("url"$context) ? $context["url"] : (function () { throw new RuntimeError('Variable "url" does not exist.'185$this->source); })()), "html"nulltrue);
  286.                 yield "')\"  onclick=\"location.href='";
  287.                 yield $this->env->getRuntime('Twig\Runtime\EscaperRuntime')->escape($this->extensions['Symfony\Bridge\Twig\Extension\RoutingExtension']->getPath("project-detail", ["id" => CoreExtension::getAttribute($this->env$this->source$context["property"], "id", [], "any"falsefalsefalse185)]), "html"nulltrue);
  288.                 yield "'\">
  289.                                             </div>
  290.                                     </div>
  291.                                 ";
  292.             } else {
  293.                 // line 190
  294.                 yield "                                <div class=\"img-wrapper\">
  295.                                     <div class=\"img\" style=\"background-image: url('";
  296.                 // line 191
  297.                 yield $this->env->getRuntime('Twig\Runtime\EscaperRuntime')->escape($this->extensions['Symfony\Bridge\Twig\Extension\AssetExtension']->getAssetUrl("build/Maisons_H_R1.jpg"), "html"nulltrue);
  298.                 yield "')\"></div>
  299.                                 </div>
  300.                                 ";
  301.             }
  302.             // line 194
  303.             yield "                                ";
  304.             // line 206
  305.             yield "
  306.                                 <p class=\"city\">";
  307.             // line 207
  308.             yield $this->env->getRuntime('Twig\Runtime\EscaperRuntime')->escape(CoreExtension::getAttribute($this->env$this->sourceCoreExtension::getAttribute($this->env$this->source$context["property"], "city", [], "any"falsefalsefalse207), "name", [], "any"falsefalsefalse207), "html"nulltrue);
  309.             yield "</p>
  310.                                 <p class=\"project-name\">";
  311.             // line 208
  312.             yield $this->env->getRuntime('Twig\Runtime\EscaperRuntime')->escape(CoreExtension::getAttribute($this->env$this->source$context["property"], "reference", [], "any"falsefalsefalse208), "html"nulltrue);
  313.             yield "</p>
  314.                                 <div class=\"tag-ref-projet-2\"><span class=\"text-tag-ref\">";
  315.             // line 209
  316.             yield $this->env->getRuntime('Twig\Runtime\EscaperRuntime')->escape($this->extensions['App\Twig\ContentExtension']->typeProject(CoreExtension::getAttribute($this->env$this->sourceCoreExtension::getAttribute($this->env$this->source$context["property"], "construction", [], "any"falsefalsefalse209), "construction_step", [], "any"falsefalsefalse209)), "html"nulltrue);
  317.             yield "</span></div>
  318.                             </div>
  319.                         ";
  320.         }
  321.         $_parent $context['_parent'];
  322.         unset($context['_seq'], $context['_iterated'], $context['key'], $context['property'], $context['_parent'], $context['loop']);
  323.         $context array_intersect_key($context$_parent) + $_parent;
  324.         // line 212
  325.         yield "                    </div>
  326.                 </div>
  327.                 <div class=\"text-center text-capitalize more-projects\">
  328.                     <p>AFFICHER PLUS DE PROJETS</p>
  329.                 </div>
  330.             </div>
  331.             ";
  332.         // line 251
  333.         yield "
  334.         </section>
  335.     </div>
  336.     <div id=\"img-property-section\" class=\"container-fluid\" style=\"display: none\">
  337.         <div class=\"col-lg-6 habiter-img\">
  338.             <img style=\"padding: 0px;\" height=\"430px\" class=\"img-100\" ";
  339.         // line 256
  340.         if ((CoreExtension::getAttribute($this->env$this->source, ($context["sectionContent1"] ?? null), "picture", [], "any"truetruefalse256) && CoreExtension::getAttribute($this->env$this->sourceCoreExtension::getAttribute($this->env$this->source, ($context["sectionContent1"] ?? null), "picture", [], "any"falsetruefalse256), 0, [], "array"truetruefalse256))) {
  341.             yield "src=\"/uploads/images/";
  342.             yield $this->env->getRuntime('Twig\Runtime\EscaperRuntime')->escape(CoreExtension::getAttribute($this->env$this->sourceCoreExtension::getAttribute($this->env$this->sourceCoreExtension::getAttribute($this->env$this->source, (isset($context["sectionContent1"]) || array_key_exists("sectionContent1"$context) ? $context["sectionContent1"] : (function () { throw new RuntimeError('Variable "sectionContent1" does not exist.'256$this->source); })()), "picture", [], "any"falsefalsefalse256), 0, [], "array"falsefalsefalse256), "path", [], "any"falsefalsefalse256), "html"nulltrue);
  343.             yield "\"";
  344.         }
  345.         yield ">
  346.         </div>
  347.     </div>
  348.     <script>
  349.         const futurProjects = document.getElementById('projects')
  350.         let buttons = document.getElementsByClassName('projectButton')
  351.         for (const eElement of buttons) {
  352.             eElement.addEventListener('click', function (e) {
  353.                 e.preventDefault()
  354.                 for (let button of buttons) {
  355.                     if (button.classList.contains('all')){
  356.                         button.classList.remove('all')
  357.                         //button.classList.add('come')
  358.                         //button.querySelector('span').classList.replace('span-all', 'span-projects')
  359.                     }
  360.                 }
  361.                 eElement.classList.remove('come')
  362.                 //eElement.classList.add('all')
  363.                 //eElement.querySelector('span').classList.replace('span-projects', 'span-all')
  364.                 fetch('projects/display/'+this.dataset.id, {
  365.                     method: 'GET',
  366.                 })
  367.                     .then(response => response.json())
  368.                     .then(data => {
  369.                         futurProjects.innerHTML = ''
  370.                         futurProjects.innerHTML = data.data
  371.                         _ww = \$(window).width();
  372.                         var lightbox = \$('.lightbox'),
  373.                             item = 0;
  374.                         \$('.lightbox-on').click(function(e){
  375.                             e.stopPropagation();
  376.                             item = 0;
  377.                             var id = \$(this).attr('data-id'),
  378.                                 max = 0;
  379.                             \$('#'+id).toggle();
  380.                             \$('#'+id).animate({opacity: 1}, 300);
  381.                             \$('#'+id).find('img').each(function( i ) {
  382.                                 max = i;
  383.                                 item = 1;
  384.                                 counter(item, max+1);
  385.                                 itemWidth(\$(this));
  386.                             });
  387.                         });
  388.                         lightbox.click(function(e) {
  389.                             e.stopPropagation();
  390.                             \$(this).animate({opacity: 0}, 300, function(){
  391.                                 \$(this).toggle();
  392.                             });
  393.                         });
  394.                         \$('.closer').on('click', function (e) {
  395.                             e.stopPropagation();
  396.                             \$(this).parent().animate(
  397.                                 {opacity: 0},
  398.                                 300,
  399.                                 function(){
  400.                                     \$(this).toggle();
  401.                                 }
  402.                             );
  403.                         });
  404.                         function itemWidth(img){
  405.                             img.closest('.items').width(img.width());
  406.                         }
  407.                         function counter(item, max){
  408.                             \$('.counter').text(item + ' / ' + max);
  409.                         }
  410.                         \$('.item', lightbox).on('click, swipeleft', function (e) {
  411.                             var wd = \$(this).width(),
  412.                                 last = \$(this).parent().find('.item').last(),
  413.                                 img = \$(this).find('.img');
  414.                             itemWidth(img);
  415.                             \$(this).animate(
  416.                                 {marginLeft: -wd, opacity: 0},
  417.                                 500,
  418.                                 'swing',
  419.                                 function(){
  420.                                     \$(this).insertAfter(last);
  421.                                     \$(this).css({marginLeft: 0, opacity: 1});
  422.                                 }
  423.                             );
  424.                         });
  425.                         \$('.item', lightbox).on('swiperight', function (e) {
  426.                             var wd = \$(this).width(),
  427.                                 first = \$(this).parent().find('.item').first(),
  428.                                 last = \$(this).parent().find('.item').last(),
  429.                                 img = \$(this).find('.img');
  430.                             itemWidth(img);
  431.                             \$(last).insertBefore(\$(this));
  432.                             \$(last).css({marginLeft: -wd, opacity: 0});
  433.                             \$(this).parent().find('.item').eq(0).animate(
  434.                                 {marginLeft: 0, opacity: 1},
  435.                                 500,
  436.                                 'swing'
  437.                             );
  438.                         });
  439.                         \$('.arrows', lightbox).on('click', function (e) {
  440.                             e.stopPropagation();
  441.                             var wd = \$(this).siblings('.items').find('.item').eq(0).width(),
  442.                                 max = \$(this)
  443.                                     .siblings('.items').find('.item').length,
  444.                                 first = \$(this).siblings('.items').find('.item').first(),
  445.                                 last = \$(this).siblings('.items').find('.item').last(),
  446.                                 isRight = \$(this).hasClass('right'),
  447.                                 marginL = isRight ? -wd : 0,
  448.                                 marginL0 = isRight ? 0: -wd,
  449.                                 opacOn = isRight ? 1 : 0,
  450.                                 opacOff = isRight ? 0 : 1;
  451.                             if (!isRight){
  452.                                 \$(last).insertBefore(first);
  453.                                 \$(last).css({marginLeft: -wd, opacity: 0});
  454.                                 item++;
  455.                                 if (item == max+1) {item = 1};
  456.                             } else {
  457.                                 item--;
  458.                                 if (item == 0) {item = max};
  459.                             };
  460.                             counter(item, max);
  461.                             var img = \$(this).siblings('.items').find('.item').eq(0).find('.img');
  462.                             itemWidth(img);
  463.                             \$(this).siblings('.items').find('.item').eq(1).animate(
  464.                                 {opacity: opacOn},
  465.                                 500,
  466.                                 'swing');
  467.                             \$(this).siblings('.items').find('.item').eq(0).animate(
  468.                                 {marginLeft: marginL, opacity: 1},
  469.                                 500,
  470.                                 'swing',
  471.                                 function(){
  472.                                     if (isRight){
  473.                                         \$(this).insertAfter(last);
  474.                                         \$(this).css({ marginLeft: 0, opacity: 1});
  475.                                     }
  476.                                 }
  477.                             );
  478.                         });
  479.                         if (_ww > 768){
  480.                             \$('.div-img-hover-2').hover(function (e) {
  481.                                 \$(this).find('.project-arrow-2').animate({opacity: 1}, 150);
  482.                                 var htext = \$(this).find('.project-content').height();
  483.                                 if (htext == undefined){htext = 0};
  484.                                 \$(this).find('.div-hover-2').animate({height : htext+180}, 150);
  485.                                 \$(this).find('.project-content').css({'visibility': 'visible'});
  486.                                 \$(this).find('.project-content').animate({opacity: 1}, 150);
  487.                             }, function() {
  488.                                 \$(this).find('.div-hover-2').animate({height : 85}, 150);
  489.                                 \$(this).find('.project-arrow-2').animate({opacity: 0}, 150);
  490.                                 \$(this).find('.project-content').animate({opacity: 0}, 150, function(){
  491.                                     \$(this).find('.project-content').css({'visibility': 'hidden'});
  492.                                 });
  493.                             });
  494.                         } else {
  495.                             \$('.div-img-hover-2').on( \"tap\", function( event ) {
  496.                                 var opened = \$(this).find('.div-hover-2').hasClass('open'),
  497.                                     ht = opened ? 85 : '100%',
  498.                                     vis = opened ? 0 : 1;
  499.                                 \$(this).find('.div-hover-2').toggleClass('open');
  500.                                 \$(this).find('.div-hover-2').animate({height : ht}, 150);
  501.                                 \$(this).find('.project-arrow-2').animate({opacity: vis}, 150);
  502.                             });
  503.                         }
  504.                         \$('.div-hover').hover(function (e) {
  505.                             \$(this).find('.project-arrow-2').animate({opacity: 1}, 150);
  506.                         }, function() {
  507.                             \$(this).find('.project-arrow-2').animate({opacity: 0}, 50);
  508.                         });
  509.                     })
  510.                     .catch((error) => {
  511.                         console.error('Error:', error);
  512.                     });
  513.             })
  514.         }
  515.         if (window.matchMedia(\"(max-width: 768px)\").matches) {
  516.             const test = document.getElementsByClassName('select-filter')
  517.             for (const testElement of test) {
  518.                 testElement.addEventListener('click', function (e) {
  519.                     e.preventDefault()
  520.                     testElement.classList.toggle('select-projet-active')
  521.                     const infos = document.querySelector('.projectButton.all')
  522.                     const dataId = []
  523.                     const tests = document.querySelectorAll('.select-filter.select-projet-active')
  524.                     for (const test1 of tests) {
  525.                         dataId.push(parseFloat(test1.dataset.id))
  526.                     }
  527.                     fetch('projects/display/'+infos.dataset.id+'/params/' + JSON.stringify(dataId), {
  528.                         method: 'GET'
  529.                     })
  530.                         .then(response => response.json())
  531.                         .then(data => {
  532.                             futurProjects.innerHTML = data.data
  533.                         })
  534.                         .catch((error) => {
  535.                             console.error('Error:', error);
  536.                         });
  537.                 })
  538.             }
  539.         } else {
  540.             const test = document.getElementsByClassName('select-projet')
  541.             for (const testElement of test) {
  542.                 testElement.addEventListener('click', function (e) {
  543.                     displayLoading()
  544.                     e.preventDefault()
  545.                     testElement.classList.toggle('select-projet-active')
  546.                     const infos = document.querySelector('.projectButton.all')
  547.                     const dataId = []
  548.                     const tests = document.querySelectorAll('.select-projet.select-projet-active')
  549.                     for (const test1 of tests) {
  550.                         dataId.push(parseFloat(test1.dataset.id))
  551.                     }
  552.                     fetch('projects/display/'+infos.dataset.id+'/params/' + JSON.stringify(dataId), {
  553.                         method: 'GET'
  554.                     })
  555.                         .then(response => response.json())
  556.                         .then(data => {
  557.                             hideLoading()
  558.                             futurProjects.innerHTML = data.data
  559.                             _ww = \$(window).width();
  560.                             var lightbox = \$('.lightbox'),
  561.                                 item = 0;
  562.                             \$('.lightbox-on').click(function(e){
  563.                                 e.stopPropagation();
  564.                                 item = 0;
  565.                                 var id = \$(this).attr('data-id'),
  566.                                     max = 0;
  567.                                 \$('#'+id).toggle();
  568.                                 \$('#'+id).animate({opacity: 1}, 300);
  569.                                 \$('#'+id).find('img').each(function( i ) {
  570.                                     max = i;
  571.                                     item = 1;
  572.                                     counter(item, max+1);
  573.                                     itemWidth(\$(this));
  574.                                 });
  575.                             });
  576.                             lightbox.click(function(e) {
  577.                                 e.stopPropagation();
  578.                                 \$(this).animate({opacity: 0}, 300, function(){
  579.                                     \$(this).toggle();
  580.                                 });
  581.                             });
  582.                             \$('.closer').on('click', function (e) {
  583.                                 e.stopPropagation();
  584.                                 \$(this).parent().animate(
  585.                                     {opacity: 0},
  586.                                     300,
  587.                                     function(){
  588.                                         \$(this).toggle();
  589.                                     }
  590.                                 );
  591.                             });
  592.                             function itemWidth(img){
  593.                                 img.closest('.items').width(img.width());
  594.                             }
  595.                             function counter(item, max){
  596.                                 \$('.counter').text(item + ' / ' + max);
  597.                             }
  598.                             \$('.item', lightbox).on('click, swipeleft', function (e) {
  599.                                 var wd = \$(this).width(),
  600.                                     last = \$(this).parent().find('.item').last(),
  601.                                     img = \$(this).find('.img');
  602.                                 itemWidth(img);
  603.                                 \$(this).animate(
  604.                                     {marginLeft: -wd, opacity: 0},
  605.                                     500,
  606.                                     'swing',
  607.                                     function(){
  608.                                         \$(this).insertAfter(last);
  609.                                         \$(this).css({marginLeft: 0, opacity: 1});
  610.                                     }
  611.                                 );
  612.                             });
  613.                             \$('.item', lightbox).on('swiperight', function (e) {
  614.                                 var wd = \$(this).width(),
  615.                                     first = \$(this).parent().find('.item').first(),
  616.                                     last = \$(this).parent().find('.item').last(),
  617.                                     img = \$(this).find('.img');
  618.                                 itemWidth(img);
  619.                                 \$(last).insertBefore(\$(this));
  620.                                 \$(last).css({marginLeft: -wd, opacity: 0});
  621.                                 \$(this).parent().find('.item').eq(0).animate(
  622.                                     {marginLeft: 0, opacity: 1},
  623.                                     500,
  624.                                     'swing'
  625.                                 );
  626.                             });
  627.                             \$('.arrows', lightbox).on('click', function (e) {
  628.                                 e.stopPropagation();
  629.                                 var wd = \$(this).siblings('.items').find('.item').eq(0).width(),
  630.                                     max = \$(this)
  631.                                         .siblings('.items').find('.item').length,
  632.                                     first = \$(this).siblings('.items').find('.item').first(),
  633.                                     last = \$(this).siblings('.items').find('.item').last(),
  634.                                     isRight = \$(this).hasClass('right'),
  635.                                     marginL = isRight ? -wd : 0,
  636.                                     marginL0 = isRight ? 0: -wd,
  637.                                     opacOn = isRight ? 1 : 0,
  638.                                     opacOff = isRight ? 0 : 1;
  639.                                 if (!isRight){
  640.                                     \$(last).insertBefore(first);
  641.                                     \$(last).css({marginLeft: -wd, opacity: 0});
  642.                                     item++;
  643.                                     if (item == max+1) {item = 1};
  644.                                 } else {
  645.                                     item--;
  646.                                     if (item == 0) {item = max};
  647.                                 };
  648.                                 counter(item, max);
  649.                                 var img = \$(this).siblings('.items').find('.item').eq(0).find('.img');
  650.                                 itemWidth(img);
  651.                                 \$(this).siblings('.items').find('.item').eq(1).animate(
  652.                                     {opacity: opacOn},
  653.                                     500,
  654.                                     'swing');
  655.                                 \$(this).siblings('.items').find('.item').eq(0).animate(
  656.                                     {marginLeft: marginL, opacity: 1},
  657.                                     500,
  658.                                     'swing',
  659.                                     function(){
  660.                                         if (isRight){
  661.                                             \$(this).insertAfter(last);
  662.                                             \$(this).css({ marginLeft: 0, opacity: 1});
  663.                                         }
  664.                                     }
  665.                                 );
  666.                             });
  667.                             if (_ww > 768){
  668.                                 \$('.div-img-hover-2').hover(function (e) {
  669.                                     \$(this).find('.project-arrow-2').animate({opacity: 1}, 150);
  670.                                     var htext = \$(this).find('.project-content').height();
  671.                                     if (htext == undefined){htext = 0};
  672.                                     \$(this).find('.div-hover-2').animate({height : htext+180}, 150);
  673.                                     \$(this).find('.project-content').css({'visibility': 'visible'});
  674.                                     \$(this).find('.project-content').animate({opacity: 1}, 150);
  675.                                 }, function() {
  676.                                     \$(this).find('.div-hover-2').animate({height : 85}, 150);
  677.                                     \$(this).find('.project-arrow-2').animate({opacity: 0}, 150);
  678.                                     \$(this).find('.project-content').animate({opacity: 0}, 150, function(){
  679.                                         \$(this).find('.project-content').css({'visibility': 'hidden'});
  680.                                     });
  681.                                 });
  682.                             } else {
  683.                                 \$('.div-hover-2').on( \"click\", function( event ) {
  684.                                     var opened = \$(this).find('.div-hover-2').hasClass('open'),
  685.                                         ht = opened ? 85 : '100%',
  686.                                         vis = opened ? 0 : 1;
  687.                                     \$(this).find('.div-hover-2').toggleClass('open');
  688.                                     \$(this).find('.div-hover-2').animate({height : ht}, 150);
  689.                                     \$(this).find('.project-arrow-2').animate({opacity: vis}, 150);
  690.                                 });
  691.                             }
  692.                             \$('.div-hover').hover(function (e) {
  693.                                 \$(this).find('.project-arrow-2').animate({opacity: 1}, 150);
  694.                             }, function() {
  695.                                 \$(this).find('.project-arrow-2').animate({opacity: 0}, 50);
  696.                             });
  697.                         })
  698.                         .catch((error) => {
  699.                             console.error('Error:', error);
  700.                         });
  701.                 })
  702.             }
  703.         }
  704.         const buttonFilter = document.getElementsByClassName('select-projet')
  705.         for (const buttonFilterElement of buttonFilter) {
  706.             buttonFilterElement.addEventListener('click', function () {
  707.             })
  708.         }
  709.         if (window.matchMedia(\"(max-width: 768px)\").matches) {
  710.             const flick = document.getElementById(\"flick4\")
  711.             if(flick){
  712.                 new Flicking(\"#flick4\", {
  713.                     moveType: \"freeScroll\",
  714.                     bound: true
  715.                 })
  716.             }
  717.         }
  718.         const filter = document.getElementById('filters')
  719.         const filterElement = document.getElementById('form-search-filter-ajax')
  720.         filter.addEventListener('click', function (e) {
  721.             e.preventDefault()
  722.             filterElement.classList.toggle('show')
  723.         })
  724.         const loader = document.querySelector(\"#loading\");
  725.         function displayLoading() {
  726.             loader.classList.add(\"display\");
  727.             // to stop loading after some time
  728.             setTimeout(() => {
  729.                 loader.classList.remove(\"display\");
  730.             }, 5000);
  731.         }
  732.         // hiding loading
  733.         function hideLoading() {
  734.             loader.classList.remove(\"display\");
  735.         }
  736.     </script>
  737. ";
  738.         
  739.         $__internal_319393461309892924ff6e74d6d6e64287df64b63545b994e100d4ab223aed02->leave($__internal_319393461309892924ff6e74d6d6e64287df64b63545b994e100d4ab223aed02_prof);
  740.         
  741.         $__internal_085b0142806202599c7fe3b329164a92397d8978207a37e79d70b8c52599e33e->leave($__internal_085b0142806202599c7fe3b329164a92397d8978207a37e79d70b8c52599e33e_prof);
  742.         return; yield '';
  743.     }
  744.     /**
  745.      * @codeCoverageIgnore
  746.      */
  747.     public function getTemplateName()
  748.     {
  749.         return "project.html.twig";
  750.     }
  751.     /**
  752.      * @codeCoverageIgnore
  753.      */
  754.     public function isTraitable()
  755.     {
  756.         return false;
  757.     }
  758.     /**
  759.      * @codeCoverageIgnore
  760.      */
  761.     public function getDebugInfo()
  762.     {
  763.         return array (  375 => 256,  368 => 251,  358 => 212,  349 => 209,  345 => 208,  341 => 207,  338 => 206,  336 => 194,  330 => 191,  327 => 190,  316 => 185,  314 => 184,  311 => 183,  309 => 182,  306 => 181,  302 => 180,  298 => 178,  294 => 144,  290 => 137,  281 => 110,  263 => 89,  241 => 64,  238 => 63,  232 => 61,  230 => 60,  225 => 57,  219 => 55,  213 => 53,  211 => 52,  208 => 51,  206 => 50,  199 => 45,  197 => 44,  190 => 39,  186 => 37,  182 => 35,  176 => 33,  174 => 32,  167 => 30,  164 => 29,  162 => 28,  156 => 25,  153 => 24,  150 => 23,  147 => 22,  144 => 21,  141 => 20,  139 => 19,  136 => 18,  134 => 17,  131 => 16,  121 => 15,  109 => 12,  105 => 10,  99 => 8,  97 => 7,  94 => 6,  91 => 5,  81 => 4,  61 => 3,  38 => 1,);
  764.     }
  765.     public function getSourceContext()
  766.     {
  767.         return new Source("{% extends 'base.html.twig' %}
  768. {% block title %}Projets{% endblock %}
  769. {% block metaDescription %}
  770.     {% set headerContent = content('Projets', 'Header') %}
  771.     <meta name=\"description\" content=\"
  772.     {% if headerContent.content is defined %}
  773.         {{ headerContent.content|striptags }}
  774.     {% else %}
  775.          Tracol Immobilier propose une large offre en immobilier neuf (logements, bureaux, commerces), qui se caractérise par une architecture résolument contemporaine, des matériaux de qualité, et le soin apporté à chaque détail.
  776.     {% endif %}
  777.     \">
  778. {% endblock %}
  779. {% block body %}
  780.     {% set headerContent = content('Projets', 'Header') %}
  781.     {% if headerContent.picture is defined and headerContent.picture is not empty %}
  782.         {% set backgroundImage = '/uploads/images/'~headerContent.picture[0].path %}
  783.     {% else %}
  784.         {% set backgroundImage = 'img/projets_header.jpg' %}
  785.     {% endif %}
  786.     <header class=\"header-tracol col-lg-8 mx-auto\" style=\"background-image: url({{ backgroundImage }});margin-top: 165px!important;\">
  787.         <div class=\"col-lg-8 mx-auto div-svg-header\">
  788.             <div id=\"header-project\" class=\"header-habiter-div\">
  789.                 {% if headerContent.name is defined and headerContent.name %}
  790.                     <svg id=\"svg-habiter\" width=\"10\" height=\"16\" xmlns=\"http://www.w3.org/2000/svg\" version=\"1.1\" xmlns:xlink=\"http://www.w3.org/1999/xlink\" xmlns:avocode=\"https://avocode.com/\" viewBox=\"0 0 10 16\"><defs></defs><desc>Generated with Avocode.</desc><g><g><title>Tracé 76</title><path d=\"M9.08929,0.51465v0h-9.08929v0v14.77002v0l9.08929,-1.93109v0z\" fill=\"#f6a400\" fill-opacity=\"1\"></path></g></g></svg>
  791.                     <h2 class=\"header-habiter-title col-lg-6\">{% if headerContent.name is defined %}{{ headerContent.name }}{% endif %}</h2>
  792.                     <div class=\"col-lg-8 header-content\">
  793.                         {% if headerContent.content is defined %}
  794.                             {{ headerContent.content|raw }}
  795.                         {% else %}
  796.                             <p>Fort de plusieurs années d’expérience, Tracol Immobilier propose des projets adaptés aux besoins de chacun. Répondant aux plus hautes exigences et s’inscrivant dans le temps, ils se caractérisent par une architecture résolument contemporaine, des matériaux de qualité et le soin apporté à chaque détail.</p>
  797.                         {% endif %}
  798.                     </div>
  799.                 {% endif %}
  800.             </div>
  801.         </div>
  802.     </header>
  803.     <div class=\"container-fluid project-page\">
  804.         {% set sectionContent1 = content('Projets', 'Section-1') %}
  805.         <div class=\"col-lg-8 mx-auto div-svg-header pre-section\">
  806.             <div class=\"col-lg-4\" style=\"font-size: 2.3em;display: flex;flex-direction: column;margin-left: 10px;\">
  807.                 <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"9.089\" height=\"14.77\" viewBox=\"0 0 9.089 14.77\">
  808.                     <path id=\"Tracé_76\" data-name=\"Tracé 76\" d=\"M682.759,232.441h-9.089v14.77l9.089-1.931Z\" transform=\"translate(-673.669 -232.441)\" fill=\"#f6a400\"/>
  809.                 </svg>
  810.                 {% if projects|length == 0 %}
  811.                     <h1 class=\"project-title\">pas de projet</h1>
  812.                 {% elseif projects|length == 1  %}
  813.                     <h1 class=\"project-title\">{{ projects|length }} projet</h1>
  814.                 {% else %}
  815.                     <h1 class=\"project-title\">{{ projects|length }} projets</h1>
  816.                 {% endif %}
  817.             </div>
  818.             <div class=\"separator\"></div>
  819.             <div id=\"section-1-project\" class=\"col-lg-6 pre-section-content\">
  820.                 {% if headerContent.content is defined %}
  821.                     {{ sectionContent1.content|raw }}
  822.                 {% else %}
  823.                     Fort de plusieurs années d’expérience, Tracol Immobilier propose des projets adaptés aux besoins de chacun. Répondant aux plus hautes exigences et s’inscrivant dans le temps, ils se caractérisent par une architecture résolument contemporaine, des matériaux de qualité et le soin apporté à chaque détail.{% endif %}
  824.             </div>
  825.         </div>
  826.         <section class=\"project filter mt-5\" style=\"margin-bottom: 40px\">
  827.             <div id=\"button-project-page\" class=\"col-lg-4 div-svg-header mb-4\" style=\"display: flex; align-items: center; padding-left:25px\">
  828.                 <div class=\"input-filter col-lg-3 d-flex\">
  829.                     <label for=\"all-projects\" style=\"margin-right:10px\">TOUS</label>
  830.                     <input data-id=\"all\" type=\"radio\" name=\"type\" id=\"all-projects\" class=\"mr-3 projectButton\">
  831.                 </div>
  832.                 <div class=\"input-filter col-lg-3 d-flex\">
  833.                     <label for=\"futur-projects\" style=\"margin-right:10px\">À VENIR</label>
  834.                     <input data-id=\"futur\" type=\"radio\" name=\"type\" id=\"futur-projects\" class=\"mr-3 projectButton\">
  835.                 </div>
  836.                 <div class=\"input-filter col-lg-3 d-flex\">
  837.                     <label for=\"construction-projects\" style=\"margin-right:10px\">EN COURS</label>
  838.                     <input data-id=\"construction\" type=\"radio\" name=\"type\" id=\"construction-projects\" class=\" projectButton\">
  839.                 </div>
  840.                 {#
  841.                 <button data-id=\"all\" class=\"btn btn-primary all border-radius projectButton\"><span class=\"span-all\">TOUS</span></button>
  842.                 <button data-id=\"futur\" class=\"btn btn-primary come border-radius projectButton\"><span class=\"span-projects\">A VENIR</span></button>
  843.                 <button data-id=\"construction\" class=\"btn btn-primary come border-radius projectButton\"><span class=\"span-projects\">EN COURS</span></button>
  844.                 #}
  845.             </div>
  846.             <div id=\"button-project-page-mobile\" class=\"col-lg-8 mx-auto div-svg-header\" style=\"display: none; align-items: center\">
  847.                 <div  class=\"flicking-viewport\">
  848.                     <div class=\"flicking-camera\">
  849.                         <div class=\"input-filter\">
  850.                             <label for=\"all-projects-mobile\">TOUS</label>
  851.                             <input data-id=\"all\" type=\"radio\" name=\"type\" id=\"all-projects-mobile\" class=\"mr-3 projectButton\">
  852.                         </div>
  853.                         <div class=\"input-filter\">
  854.                             <label for=\"futur-projects-mobile\">À VENIR</label>
  855.                             <input data-id=\"futur\" type=\"radio\" name=\"type\" id=\"futur-projects-mobile\" class=\"mr-3 projectButton\">
  856.                         </div>
  857.                         <div class=\"input-filter\">
  858.                             <label for=\"construction-projects-mobile\">EN COURS</label>
  859.                             <input data-id=\"construction\" type=\"radio\" name=\"type\" id=\"construction-projects-mobile\" class=\" projectButton\">
  860.                         </div>
  861.                         {#
  862.                         <button data-id=\"all\" class=\"btn btn-primary all border-radius projectButton\"><span class=\"span-all\">TOUS</span></button>
  863.                         <button data-id=\"futur\" class=\"btn btn-primary come border-radius projectButton\"><span class=\"span-projects\">A VENIR</span></button>
  864.                         <button data-id=\"construction\" class=\"btn btn-primary come border-radius projectButton\"><span class=\"span-projects\">EN COURS</span></button>
  865.                         #}
  866.                     </div>
  867.                 </div>
  868.             </div>
  869.             <div class=\"col-lg-8 mx-auto div-svg-header\" style=\"display: flex; justify-content: center; flex-direction: column;\">
  870.                 {#
  871.                 <div id=\"filter-project-desktop\">
  872.                     {% for key, subType in getSubTypeProject() %}
  873.                         <button data-id=\"{{ key }}\" class=\"select-projet\">{{ subType }} <i class=\"fas fa-times\"></i></button>
  874.                     {% endfor %}
  875.                 </div>
  876.                 <div id=\"filter-project-mobile\" class=\"col-lg-3 div-form selectSubFilter\" style=\"display: none\">
  877.                     <div class=\"input-group dropdown show\">
  878.                         <label class=\"label-search-filter\" for=\"location\">Filtrer par Type</label>
  879.                         <input style=\"height: 75px; width: 60px;\" type=\"text\" autocomplete=\"off\" name=\"filters\" id=\"filters\"
  880.                                class=\"form-control\" aria-expanded=\"false\">
  881.                         <ul id=\"form-search-filter-ajax\" class=\"dropdown-menu form-search-filter-ajax\" aria-labelledby=\"\">
  882.                             {% for key, subType in getSubTypeProject() %}
  883.                                 <li value=\"{{ key }}\" data-id=\"{{ key }}\" class=\"select-filter\"><i class=\"fas fa-times\"></i>{{ subType }}</li>
  884.                             {% endfor %}
  885.                         </ul>
  886.                     </div>
  887.                 </div>
  888.                 #}
  889.                 {#
  890.                 <div id=\"loading\">
  891.                     <h1 id=\"showOutput\"></h1>
  892.                 </div>
  893.                 #}
  894.                 <div id=\"projects\" class=\"row\">
  895.                     {#
  896.                     {% for key, project in projects|slice(0,5) %}
  897.                         <div onclick=\"location.href='{{ path('project-detail', {'id': project.id}) }}'\" data-id=\"{{ path('project-detail', {'id': project.id}) }}\" class=\"col-lg-12 div-img-hover-2 project-desktop\" style=\"cursor: pointer\">
  898.                             {% if key == 0 %}
  899.                                 <div class=\"div-hover-2\" id=\"div-hover-2\" style=\"position: absolute; bottom: 8px; left: 8px; background-color: #242424; color: white; width: 291px; height: 85px\">
  900.                                     <p class=\"city\">{{ project.city.name }}</p>
  901.                                     <p class=\"project-name\">{{ project.reference }}</p>
  902.                                     {% if project.comments[0].comment is not empty %}
  903.                                         <p class=\"project-content\">
  904.                                             {{ project.comments[0].comment|slice(0, 250) }}</p>
  905.                                         <a  href=\"{{ path('project-detail', {'id': project.id}) }}\" class=\"project-arrow-2\">
  906.                                             <span class=\"galerry-ref\"></span><i class=\"fas fa-arrow-right project-svg-arrow-2\"></i>
  907.                                         </a>
  908.                                     {% else %}
  909.                                         <a style=\"margin-top: 180px\" href=\"{{ path('project-detail', {'id': project.id}) }}\" class=\"project-arrow-2\">
  910.                                             <span class=\"galerry-ref\"></span><i class=\"fas fa-arrow-right project-svg-arrow-2\"></i>
  911.                                         </a>
  912.                                     {% endif %}
  913.                                 </div>
  914.                                 <div class=\"tag-ref-projet-2\"><span class=\"text-tag-ref\">{{ typeProject(project.construction.construction_step) }}</span></div>
  915.                                 {% if project.pictures is not empty %}
  916.                                     {% for picture in project.pictures|slice(0,1) %}
  917.                                         <div class=\"img\" style=\"background-image: url('{{ picture.url }}')\"></div>
  918.                                     {% endfor %}
  919.                                 {% else %}
  920.                                     <div class=\"img\" style=\"background-image: url('{{ asset('build/Hudson_Ontario2.png') }}')\"></div>
  921.                                 {% endif %}
  922.                             {% endif %}
  923.                         </div>
  924.                     {% endfor %}
  925.                     #}
  926.                     <div class=\"col-lg-12 project-desktop\" style=\"display: flex; flex-wrap: wrap; flex-direction: row\">
  927.                         {% for key, property in projects %}
  928.                             <div  class=\"item2 col-12 col-xl-6 col-lg-6 col-md-12 col-sm-12\" style=\"position:relative;cursor: pointer\">
  929.                                 {% if property.pictures is not empty %}
  930.                                     <div class=\"position-relative properties-slide img-wrapper\">
  931.                                             {% set url = 'http' in property.pictures.0.url ? property.pictures.0.url : asset('uploads/images/properties/'~property.id~'/'~property.pictures.0.url) %}
  932.                                             <div class=\"img\" style=\"background-image: url('{{ url }}')\"  onclick=\"location.href='{{ path('project-detail', {'id': property.id}) }}'\">
  933.                                             </div>
  934.                                     </div>
  935.                                 {% else %}
  936.                                 <div class=\"img-wrapper\">
  937.                                     <div class=\"img\" style=\"background-image: url('{{ asset('build/Maisons_H_R1.jpg') }}')\"></div>
  938.                                 </div>
  939.                                 {% endif %}
  940.                                 {#
  941.                                 <div class=\"row col-md-12 justify-content-between\">
  942.                                     <ul class=\"col-md-4 items\">
  943.                                         <li class=\"item surface\">
  944.                                             <img src=\"{{ asset('img/surface.svg') }}\" class=\"surface-logo\"> {{ property.area.value == null ? '' : property.area.value ~ areaConversion(property.area.unit) }}
  945.                                         </li>
  946.                                     </ul>
  947.                                     <div class=\"col-md-8 properties-price d-flex justify-content-end\">
  948.                                         {{ property.price.value == null ? '<span style=\"font-size: 14px !important;\">sur demande</span>' : property.price.value|number_format(2, ',', ' ') ~  property.price.currency|replace({\"EUR\": \" €\"})  }}
  949.                                     </div>
  950.                                 </div>
  951.                                 #}
  952.                                 <p class=\"city\">{{ property.city.name }}</p>
  953.                                 <p class=\"project-name\">{{ property.reference }}</p>
  954.                                 <div class=\"tag-ref-projet-2\"><span class=\"text-tag-ref\">{{ typeProject(property.construction.construction_step) }}</span></div>
  955.                             </div>
  956.                         {% endfor %}
  957.                     </div>
  958.                 </div>
  959.                 <div class=\"text-center text-capitalize more-projects\">
  960.                     <p>AFFICHER PLUS DE PROJETS</p>
  961.                 </div>
  962.             </div>
  963.             {#
  964.             <div class=\"col-lg-8 mx-auto div-svg-header content-projet\">
  965.                 {% set sectionContent1 = content('Projets', 'Section-2') %}
  966.                 <div id=\"section-2-project\" class=\"col-lg-6 habiter-content\">
  967.                     <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"9.089\" height=\"14.77\" viewBox=\"0 0 9.089 14.77\">
  968.                         <path id=\"Tracé_76\" data-name=\"Tracé 76\" d=\"M682.759,232.441h-9.089v14.77l9.089-1.931Z\" transform=\"translate(-673.669 -232.441)\" fill=\"#f6a400\"/>
  969.                     </svg>
  970.                     <div class=\"col-lg-9\">
  971.                         <h1 class=\"habiter-title mb-5\">
  972.                             {% if sectionContent1.name is defined %}{{ sectionContent1.name }}{% else %}INVESTIR À LUXEMBOURG{% endif %}
  973.                         </h1>
  974.                         {% if sectionContent1.content is defined %}{{ sectionContent1.content|raw }}{% else %}La demande locative est très importante au Luxembourg. En choisissant d’investir dans nos projets, vous avez l’assurance de louer très vite votre bien immobilier sans souci de devoir partir à la recherche de locataires potentiels. Votre investissement devient rapidement rentable. De plus, notre service de gestion locative peut vous accompagner dans votre démarche de A à Z.{% endif %}
  975.                     </div>
  976.                 </div>
  977.                 <div id=\"display-none-mobile\" class=\"col-lg-6 habiter-img\" {% if sectionContent1.picture is defined %}style=\"background-image: url('/uploads/images/{{ sectionContent1.picture[0].path }}')\"{% endif %}>
  978.                 </div>
  979.             </div>
  980.             <div class=\"col-lg-12 div-svg-header last-section-project\">
  981.                 <div id=\"section-projet-margin\" class=\"offset-lg-2 col-lg-2\" style=\"display: flex; justify-content: flex-start;\">
  982.                     <a id=\"link-more\" class=\"property-span-arrow\" href=\"{{ path('invest') }}\">EN SAVOIR PLUS
  983.                         <i class=\"fas fa-arrow-right property-arrow\"></i>
  984.                     </a>
  985.                 </div>
  986.                 <div class=\"col-lg-3\" style=\"display: flex;justify-content: flex-start;margin-left: 0;\">
  987.                     <a href=\"{{ path('location-management') }}\" class=\"property-span-arrow\">LA GESTION LOCATIVE
  988.                         <i class=\"fas fa-arrow-right property-arrow\"></i>
  989.                     </a>
  990.                 </div>
  991.             </div>
  992.             #}
  993.         </section>
  994.     </div>
  995.     <div id=\"img-property-section\" class=\"container-fluid\" style=\"display: none\">
  996.         <div class=\"col-lg-6 habiter-img\">
  997.             <img style=\"padding: 0px;\" height=\"430px\" class=\"img-100\" {% if sectionContent1.picture is defined and sectionContent1.picture[0] is defined %}src=\"/uploads/images/{{ sectionContent1.picture[0].path }}\"{% endif %}>
  998.         </div>
  999.     </div>
  1000.     <script>
  1001.         const futurProjects = document.getElementById('projects')
  1002.         let buttons = document.getElementsByClassName('projectButton')
  1003.         for (const eElement of buttons) {
  1004.             eElement.addEventListener('click', function (e) {
  1005.                 e.preventDefault()
  1006.                 for (let button of buttons) {
  1007.                     if (button.classList.contains('all')){
  1008.                         button.classList.remove('all')
  1009.                         //button.classList.add('come')
  1010.                         //button.querySelector('span').classList.replace('span-all', 'span-projects')
  1011.                     }
  1012.                 }
  1013.                 eElement.classList.remove('come')
  1014.                 //eElement.classList.add('all')
  1015.                 //eElement.querySelector('span').classList.replace('span-projects', 'span-all')
  1016.                 fetch('projects/display/'+this.dataset.id, {
  1017.                     method: 'GET',
  1018.                 })
  1019.                     .then(response => response.json())
  1020.                     .then(data => {
  1021.                         futurProjects.innerHTML = ''
  1022.                         futurProjects.innerHTML = data.data
  1023.                         _ww = \$(window).width();
  1024.                         var lightbox = \$('.lightbox'),
  1025.                             item = 0;
  1026.                         \$('.lightbox-on').click(function(e){
  1027.                             e.stopPropagation();
  1028.                             item = 0;
  1029.                             var id = \$(this).attr('data-id'),
  1030.                                 max = 0;
  1031.                             \$('#'+id).toggle();
  1032.                             \$('#'+id).animate({opacity: 1}, 300);
  1033.                             \$('#'+id).find('img').each(function( i ) {
  1034.                                 max = i;
  1035.                                 item = 1;
  1036.                                 counter(item, max+1);
  1037.                                 itemWidth(\$(this));
  1038.                             });
  1039.                         });
  1040.                         lightbox.click(function(e) {
  1041.                             e.stopPropagation();
  1042.                             \$(this).animate({opacity: 0}, 300, function(){
  1043.                                 \$(this).toggle();
  1044.                             });
  1045.                         });
  1046.                         \$('.closer').on('click', function (e) {
  1047.                             e.stopPropagation();
  1048.                             \$(this).parent().animate(
  1049.                                 {opacity: 0},
  1050.                                 300,
  1051.                                 function(){
  1052.                                     \$(this).toggle();
  1053.                                 }
  1054.                             );
  1055.                         });
  1056.                         function itemWidth(img){
  1057.                             img.closest('.items').width(img.width());
  1058.                         }
  1059.                         function counter(item, max){
  1060.                             \$('.counter').text(item + ' / ' + max);
  1061.                         }
  1062.                         \$('.item', lightbox).on('click, swipeleft', function (e) {
  1063.                             var wd = \$(this).width(),
  1064.                                 last = \$(this).parent().find('.item').last(),
  1065.                                 img = \$(this).find('.img');
  1066.                             itemWidth(img);
  1067.                             \$(this).animate(
  1068.                                 {marginLeft: -wd, opacity: 0},
  1069.                                 500,
  1070.                                 'swing',
  1071.                                 function(){
  1072.                                     \$(this).insertAfter(last);
  1073.                                     \$(this).css({marginLeft: 0, opacity: 1});
  1074.                                 }
  1075.                             );
  1076.                         });
  1077.                         \$('.item', lightbox).on('swiperight', function (e) {
  1078.                             var wd = \$(this).width(),
  1079.                                 first = \$(this).parent().find('.item').first(),
  1080.                                 last = \$(this).parent().find('.item').last(),
  1081.                                 img = \$(this).find('.img');
  1082.                             itemWidth(img);
  1083.                             \$(last).insertBefore(\$(this));
  1084.                             \$(last).css({marginLeft: -wd, opacity: 0});
  1085.                             \$(this).parent().find('.item').eq(0).animate(
  1086.                                 {marginLeft: 0, opacity: 1},
  1087.                                 500,
  1088.                                 'swing'
  1089.                             );
  1090.                         });
  1091.                         \$('.arrows', lightbox).on('click', function (e) {
  1092.                             e.stopPropagation();
  1093.                             var wd = \$(this).siblings('.items').find('.item').eq(0).width(),
  1094.                                 max = \$(this)
  1095.                                     .siblings('.items').find('.item').length,
  1096.                                 first = \$(this).siblings('.items').find('.item').first(),
  1097.                                 last = \$(this).siblings('.items').find('.item').last(),
  1098.                                 isRight = \$(this).hasClass('right'),
  1099.                                 marginL = isRight ? -wd : 0,
  1100.                                 marginL0 = isRight ? 0: -wd,
  1101.                                 opacOn = isRight ? 1 : 0,
  1102.                                 opacOff = isRight ? 0 : 1;
  1103.                             if (!isRight){
  1104.                                 \$(last).insertBefore(first);
  1105.                                 \$(last).css({marginLeft: -wd, opacity: 0});
  1106.                                 item++;
  1107.                                 if (item == max+1) {item = 1};
  1108.                             } else {
  1109.                                 item--;
  1110.                                 if (item == 0) {item = max};
  1111.                             };
  1112.                             counter(item, max);
  1113.                             var img = \$(this).siblings('.items').find('.item').eq(0).find('.img');
  1114.                             itemWidth(img);
  1115.                             \$(this).siblings('.items').find('.item').eq(1).animate(
  1116.                                 {opacity: opacOn},
  1117.                                 500,
  1118.                                 'swing');
  1119.                             \$(this).siblings('.items').find('.item').eq(0).animate(
  1120.                                 {marginLeft: marginL, opacity: 1},
  1121.                                 500,
  1122.                                 'swing',
  1123.                                 function(){
  1124.                                     if (isRight){
  1125.                                         \$(this).insertAfter(last);
  1126.                                         \$(this).css({ marginLeft: 0, opacity: 1});
  1127.                                     }
  1128.                                 }
  1129.                             );
  1130.                         });
  1131.                         if (_ww > 768){
  1132.                             \$('.div-img-hover-2').hover(function (e) {
  1133.                                 \$(this).find('.project-arrow-2').animate({opacity: 1}, 150);
  1134.                                 var htext = \$(this).find('.project-content').height();
  1135.                                 if (htext == undefined){htext = 0};
  1136.                                 \$(this).find('.div-hover-2').animate({height : htext+180}, 150);
  1137.                                 \$(this).find('.project-content').css({'visibility': 'visible'});
  1138.                                 \$(this).find('.project-content').animate({opacity: 1}, 150);
  1139.                             }, function() {
  1140.                                 \$(this).find('.div-hover-2').animate({height : 85}, 150);
  1141.                                 \$(this).find('.project-arrow-2').animate({opacity: 0}, 150);
  1142.                                 \$(this).find('.project-content').animate({opacity: 0}, 150, function(){
  1143.                                     \$(this).find('.project-content').css({'visibility': 'hidden'});
  1144.                                 });
  1145.                             });
  1146.                         } else {
  1147.                             \$('.div-img-hover-2').on( \"tap\", function( event ) {
  1148.                                 var opened = \$(this).find('.div-hover-2').hasClass('open'),
  1149.                                     ht = opened ? 85 : '100%',
  1150.                                     vis = opened ? 0 : 1;
  1151.                                 \$(this).find('.div-hover-2').toggleClass('open');
  1152.                                 \$(this).find('.div-hover-2').animate({height : ht}, 150);
  1153.                                 \$(this).find('.project-arrow-2').animate({opacity: vis}, 150);
  1154.                             });
  1155.                         }
  1156.                         \$('.div-hover').hover(function (e) {
  1157.                             \$(this).find('.project-arrow-2').animate({opacity: 1}, 150);
  1158.                         }, function() {
  1159.                             \$(this).find('.project-arrow-2').animate({opacity: 0}, 50);
  1160.                         });
  1161.                     })
  1162.                     .catch((error) => {
  1163.                         console.error('Error:', error);
  1164.                     });
  1165.             })
  1166.         }
  1167.         if (window.matchMedia(\"(max-width: 768px)\").matches) {
  1168.             const test = document.getElementsByClassName('select-filter')
  1169.             for (const testElement of test) {
  1170.                 testElement.addEventListener('click', function (e) {
  1171.                     e.preventDefault()
  1172.                     testElement.classList.toggle('select-projet-active')
  1173.                     const infos = document.querySelector('.projectButton.all')
  1174.                     const dataId = []
  1175.                     const tests = document.querySelectorAll('.select-filter.select-projet-active')
  1176.                     for (const test1 of tests) {
  1177.                         dataId.push(parseFloat(test1.dataset.id))
  1178.                     }
  1179.                     fetch('projects/display/'+infos.dataset.id+'/params/' + JSON.stringify(dataId), {
  1180.                         method: 'GET'
  1181.                     })
  1182.                         .then(response => response.json())
  1183.                         .then(data => {
  1184.                             futurProjects.innerHTML = data.data
  1185.                         })
  1186.                         .catch((error) => {
  1187.                             console.error('Error:', error);
  1188.                         });
  1189.                 })
  1190.             }
  1191.         } else {
  1192.             const test = document.getElementsByClassName('select-projet')
  1193.             for (const testElement of test) {
  1194.                 testElement.addEventListener('click', function (e) {
  1195.                     displayLoading()
  1196.                     e.preventDefault()
  1197.                     testElement.classList.toggle('select-projet-active')
  1198.                     const infos = document.querySelector('.projectButton.all')
  1199.                     const dataId = []
  1200.                     const tests = document.querySelectorAll('.select-projet.select-projet-active')
  1201.                     for (const test1 of tests) {
  1202.                         dataId.push(parseFloat(test1.dataset.id))
  1203.                     }
  1204.                     fetch('projects/display/'+infos.dataset.id+'/params/' + JSON.stringify(dataId), {
  1205.                         method: 'GET'
  1206.                     })
  1207.                         .then(response => response.json())
  1208.                         .then(data => {
  1209.                             hideLoading()
  1210.                             futurProjects.innerHTML = data.data
  1211.                             _ww = \$(window).width();
  1212.                             var lightbox = \$('.lightbox'),
  1213.                                 item = 0;
  1214.                             \$('.lightbox-on').click(function(e){
  1215.                                 e.stopPropagation();
  1216.                                 item = 0;
  1217.                                 var id = \$(this).attr('data-id'),
  1218.                                     max = 0;
  1219.                                 \$('#'+id).toggle();
  1220.                                 \$('#'+id).animate({opacity: 1}, 300);
  1221.                                 \$('#'+id).find('img').each(function( i ) {
  1222.                                     max = i;
  1223.                                     item = 1;
  1224.                                     counter(item, max+1);
  1225.                                     itemWidth(\$(this));
  1226.                                 });
  1227.                             });
  1228.                             lightbox.click(function(e) {
  1229.                                 e.stopPropagation();
  1230.                                 \$(this).animate({opacity: 0}, 300, function(){
  1231.                                     \$(this).toggle();
  1232.                                 });
  1233.                             });
  1234.                             \$('.closer').on('click', function (e) {
  1235.                                 e.stopPropagation();
  1236.                                 \$(this).parent().animate(
  1237.                                     {opacity: 0},
  1238.                                     300,
  1239.                                     function(){
  1240.                                         \$(this).toggle();
  1241.                                     }
  1242.                                 );
  1243.                             });
  1244.                             function itemWidth(img){
  1245.                                 img.closest('.items').width(img.width());
  1246.                             }
  1247.                             function counter(item, max){
  1248.                                 \$('.counter').text(item + ' / ' + max);
  1249.                             }
  1250.                             \$('.item', lightbox).on('click, swipeleft', function (e) {
  1251.                                 var wd = \$(this).width(),
  1252.                                     last = \$(this).parent().find('.item').last(),
  1253.                                     img = \$(this).find('.img');
  1254.                                 itemWidth(img);
  1255.                                 \$(this).animate(
  1256.                                     {marginLeft: -wd, opacity: 0},
  1257.                                     500,
  1258.                                     'swing',
  1259.                                     function(){
  1260.                                         \$(this).insertAfter(last);
  1261.                                         \$(this).css({marginLeft: 0, opacity: 1});
  1262.                                     }
  1263.                                 );
  1264.                             });
  1265.                             \$('.item', lightbox).on('swiperight', function (e) {
  1266.                                 var wd = \$(this).width(),
  1267.                                     first = \$(this).parent().find('.item').first(),
  1268.                                     last = \$(this).parent().find('.item').last(),
  1269.                                     img = \$(this).find('.img');
  1270.                                 itemWidth(img);
  1271.                                 \$(last).insertBefore(\$(this));
  1272.                                 \$(last).css({marginLeft: -wd, opacity: 0});
  1273.                                 \$(this).parent().find('.item').eq(0).animate(
  1274.                                     {marginLeft: 0, opacity: 1},
  1275.                                     500,
  1276.                                     'swing'
  1277.                                 );
  1278.                             });
  1279.                             \$('.arrows', lightbox).on('click', function (e) {
  1280.                                 e.stopPropagation();
  1281.                                 var wd = \$(this).siblings('.items').find('.item').eq(0).width(),
  1282.                                     max = \$(this)
  1283.                                         .siblings('.items').find('.item').length,
  1284.                                     first = \$(this).siblings('.items').find('.item').first(),
  1285.                                     last = \$(this).siblings('.items').find('.item').last(),
  1286.                                     isRight = \$(this).hasClass('right'),
  1287.                                     marginL = isRight ? -wd : 0,
  1288.                                     marginL0 = isRight ? 0: -wd,
  1289.                                     opacOn = isRight ? 1 : 0,
  1290.                                     opacOff = isRight ? 0 : 1;
  1291.                                 if (!isRight){
  1292.                                     \$(last).insertBefore(first);
  1293.                                     \$(last).css({marginLeft: -wd, opacity: 0});
  1294.                                     item++;
  1295.                                     if (item == max+1) {item = 1};
  1296.                                 } else {
  1297.                                     item--;
  1298.                                     if (item == 0) {item = max};
  1299.                                 };
  1300.                                 counter(item, max);
  1301.                                 var img = \$(this).siblings('.items').find('.item').eq(0).find('.img');
  1302.                                 itemWidth(img);
  1303.                                 \$(this).siblings('.items').find('.item').eq(1).animate(
  1304.                                     {opacity: opacOn},
  1305.                                     500,
  1306.                                     'swing');
  1307.                                 \$(this).siblings('.items').find('.item').eq(0).animate(
  1308.                                     {marginLeft: marginL, opacity: 1},
  1309.                                     500,
  1310.                                     'swing',
  1311.                                     function(){
  1312.                                         if (isRight){
  1313.                                             \$(this).insertAfter(last);
  1314.                                             \$(this).css({ marginLeft: 0, opacity: 1});
  1315.                                         }
  1316.                                     }
  1317.                                 );
  1318.                             });
  1319.                             if (_ww > 768){
  1320.                                 \$('.div-img-hover-2').hover(function (e) {
  1321.                                     \$(this).find('.project-arrow-2').animate({opacity: 1}, 150);
  1322.                                     var htext = \$(this).find('.project-content').height();
  1323.                                     if (htext == undefined){htext = 0};
  1324.                                     \$(this).find('.div-hover-2').animate({height : htext+180}, 150);
  1325.                                     \$(this).find('.project-content').css({'visibility': 'visible'});
  1326.                                     \$(this).find('.project-content').animate({opacity: 1}, 150);
  1327.                                 }, function() {
  1328.                                     \$(this).find('.div-hover-2').animate({height : 85}, 150);
  1329.                                     \$(this).find('.project-arrow-2').animate({opacity: 0}, 150);
  1330.                                     \$(this).find('.project-content').animate({opacity: 0}, 150, function(){
  1331.                                         \$(this).find('.project-content').css({'visibility': 'hidden'});
  1332.                                     });
  1333.                                 });
  1334.                             } else {
  1335.                                 \$('.div-hover-2').on( \"click\", function( event ) {
  1336.                                     var opened = \$(this).find('.div-hover-2').hasClass('open'),
  1337.                                         ht = opened ? 85 : '100%',
  1338.                                         vis = opened ? 0 : 1;
  1339.                                     \$(this).find('.div-hover-2').toggleClass('open');
  1340.                                     \$(this).find('.div-hover-2').animate({height : ht}, 150);
  1341.                                     \$(this).find('.project-arrow-2').animate({opacity: vis}, 150);
  1342.                                 });
  1343.                             }
  1344.                             \$('.div-hover').hover(function (e) {
  1345.                                 \$(this).find('.project-arrow-2').animate({opacity: 1}, 150);
  1346.                             }, function() {
  1347.                                 \$(this).find('.project-arrow-2').animate({opacity: 0}, 50);
  1348.                             });
  1349.                         })
  1350.                         .catch((error) => {
  1351.                             console.error('Error:', error);
  1352.                         });
  1353.                 })
  1354.             }
  1355.         }
  1356.         const buttonFilter = document.getElementsByClassName('select-projet')
  1357.         for (const buttonFilterElement of buttonFilter) {
  1358.             buttonFilterElement.addEventListener('click', function () {
  1359.             })
  1360.         }
  1361.         if (window.matchMedia(\"(max-width: 768px)\").matches) {
  1362.             const flick = document.getElementById(\"flick4\")
  1363.             if(flick){
  1364.                 new Flicking(\"#flick4\", {
  1365.                     moveType: \"freeScroll\",
  1366.                     bound: true
  1367.                 })
  1368.             }
  1369.         }
  1370.         const filter = document.getElementById('filters')
  1371.         const filterElement = document.getElementById('form-search-filter-ajax')
  1372.         filter.addEventListener('click', function (e) {
  1373.             e.preventDefault()
  1374.             filterElement.classList.toggle('show')
  1375.         })
  1376.         const loader = document.querySelector(\"#loading\");
  1377.         function displayLoading() {
  1378.             loader.classList.add(\"display\");
  1379.             // to stop loading after some time
  1380.             setTimeout(() => {
  1381.                 loader.classList.remove(\"display\");
  1382.             }, 5000);
  1383.         }
  1384.         // hiding loading
  1385.         function hideLoading() {
  1386.             loader.classList.remove(\"display\");
  1387.         }
  1388.     </script>
  1389. {% endblock %}
  1390. ""project.html.twig""/home/fuzxzwq/www/templates/project.html.twig");
  1391.     }
  1392. }