var/cache/dev/twig/e5/e556f7b94b4d4f3e761909d6146d9b2389859efe886ecb159aa9c25eec82afe4.php line 90

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