var/cache/dev/twig/68/6834ef60f43006c29575df6da219155e.php line 42

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. /* product/index.html.twig */
  14. class __TwigTemplate_107778ef668f0abde2106e97076a899f 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.             'PAGE_CSS' => [$this'block_PAGE_CSS'],
  24.             'CONTENT_MID' => [$this'block_CONTENT_MID'],
  25.             'PAGE_JS' => [$this'block_PAGE_JS'],
  26.         ];
  27.         $this->sandbox $this->env->getExtension('\Twig\Extension\SandboxExtension');
  28.         $this->checkSecurity();
  29.     }
  30.     protected function doGetParent(array $context)
  31.     {
  32.         // line 1
  33.         return "layout/app.html.twig";
  34.     }
  35.     protected function doDisplay(array $context, array $blocks = [])
  36.     {
  37.         $macros $this->macros;
  38.         $__internal_5a27a8ba21ca79b61932376b2fa922d2 $this->extensions["Symfony\\Bundle\\WebProfilerBundle\\Twig\\WebProfilerExtension"];
  39.         $__internal_5a27a8ba21ca79b61932376b2fa922d2->enter($__internal_5a27a8ba21ca79b61932376b2fa922d2_prof = new \Twig\Profiler\Profile($this->getTemplateName(), "template""product/index.html.twig"));
  40.         $__internal_6f47bbe9983af81f1e7450e9a3e3768f $this->extensions["Symfony\\Bridge\\Twig\\Extension\\ProfilerExtension"];
  41.         $__internal_6f47bbe9983af81f1e7450e9a3e3768f->enter($__internal_6f47bbe9983af81f1e7450e9a3e3768f_prof = new \Twig\Profiler\Profile($this->getTemplateName(), "template""product/index.html.twig"));
  42.         $this->parent $this->loadTemplate("layout/app.html.twig""product/index.html.twig"1);
  43.         $this->parent->display($contextarray_merge($this->blocks$blocks));
  44.         
  45.         $__internal_5a27a8ba21ca79b61932376b2fa922d2->leave($__internal_5a27a8ba21ca79b61932376b2fa922d2_prof);
  46.         
  47.         $__internal_6f47bbe9983af81f1e7450e9a3e3768f->leave($__internal_6f47bbe9983af81f1e7450e9a3e3768f_prof);
  48.     }
  49.     // line 3
  50.     public function block_PAGE_CSS($context, array $blocks = [])
  51.     {
  52.         $macros $this->macros;
  53.         $__internal_5a27a8ba21ca79b61932376b2fa922d2 $this->extensions["Symfony\\Bundle\\WebProfilerBundle\\Twig\\WebProfilerExtension"];
  54.         $__internal_5a27a8ba21ca79b61932376b2fa922d2->enter($__internal_5a27a8ba21ca79b61932376b2fa922d2_prof = new \Twig\Profiler\Profile($this->getTemplateName(), "block""PAGE_CSS"));
  55.         $__internal_6f47bbe9983af81f1e7450e9a3e3768f $this->extensions["Symfony\\Bridge\\Twig\\Extension\\ProfilerExtension"];
  56.         $__internal_6f47bbe9983af81f1e7450e9a3e3768f->enter($__internal_6f47bbe9983af81f1e7450e9a3e3768f_prof = new \Twig\Profiler\Profile($this->getTemplateName(), "block""PAGE_CSS"));
  57.         
  58.         $__internal_6f47bbe9983af81f1e7450e9a3e3768f->leave($__internal_6f47bbe9983af81f1e7450e9a3e3768f_prof);
  59.         
  60.         $__internal_5a27a8ba21ca79b61932376b2fa922d2->leave($__internal_5a27a8ba21ca79b61932376b2fa922d2_prof);
  61.     }
  62.     // line 6
  63.     public function block_CONTENT_MID($context, array $blocks = [])
  64.     {
  65.         $macros $this->macros;
  66.         $__internal_5a27a8ba21ca79b61932376b2fa922d2 $this->extensions["Symfony\\Bundle\\WebProfilerBundle\\Twig\\WebProfilerExtension"];
  67.         $__internal_5a27a8ba21ca79b61932376b2fa922d2->enter($__internal_5a27a8ba21ca79b61932376b2fa922d2_prof = new \Twig\Profiler\Profile($this->getTemplateName(), "block""CONTENT_MID"));
  68.         $__internal_6f47bbe9983af81f1e7450e9a3e3768f $this->extensions["Symfony\\Bridge\\Twig\\Extension\\ProfilerExtension"];
  69.         $__internal_6f47bbe9983af81f1e7450e9a3e3768f->enter($__internal_6f47bbe9983af81f1e7450e9a3e3768f_prof = new \Twig\Profiler\Profile($this->getTemplateName(), "block""CONTENT_MID"));
  70.         // line 7
  71.         echo "    <div x-data=\"{ showMobileFilter: false }\">
  72.         <div x-cloak x-show=\"showMobileFilter\" class=\"relative z-40 lg:hidden\" role=\"dialog\" aria-modal=\"true\">
  73.             <div x-transition:enter=\"transition-opacity ease-linear duration-300\"
  74.                  x-transition:enter-start=\"opacity-0\"
  75.                  x-transition:enter-end=\"opacity-100\"
  76.                  x-transition:leave=\"transition-opacity ease-linear duration-300\"
  77.                  x-transition:leave-start=\"opacity-100\"
  78.                  x-transition:leave-end=\"opacity-0\"
  79.                  class=\"fixed inset-0 bg-black bg-opacity-25\"></div>
  80.             <div class=\"fixed inset-0 z-40 flex\">
  81.                 <div x-transition:enter=\"transition ease-in-out duration-300 transform\"
  82.                      x-transition:enter-start=\"translate-x-full\"
  83.                      x-transition:enter-end=\"translate-x-0\"
  84.                      x-transition:leave=\"transition ease-in-out duration-300 transform\"
  85.                      x-transition:leave-start=\"translate-x-0\"
  86.                      x-transition:leave-end=\"translate-x-full\"
  87.                     class=\"relative ml-auto flex h-full w-full max-w-xs flex-col overflow-y-auto bg-white py-4 pb-6 shadow-xl\">
  88.                     <div class=\"flex items-center justify-between px-4\">
  89.                         <h2 class=\"text-lg font-medium text-gray-900\">Filters</h2>
  90.                         <button @click=\"showMobileFilter = false\" type=\"button\" class=\"-mr-2 flex h-10 w-10 items-center justify-center p-2 text-gray-400 hover:text-gray-500\">
  91.                             <span class=\"sr-only\">Close menu</span>
  92.                             <!-- Heroicon name: outline/x-mark -->
  93.                             <svg class=\"h-6 w-6\" xmlns=\"http://www.w3.org/2000/svg\" fill=\"none\" viewBox=\"0 0 24 24\" stroke-width=\"1.5\" stroke=\"currentColor\" aria-hidden=\"true\">
  94.                                 <path stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M6 18L18 6M6 6l12 12\" />
  95.                             </svg>
  96.                         </button>
  97.                     </div>
  98.                     <!-- Filters -->
  99.                     <form id=\"mobileFilters\" class=\"mt-4\">
  100.                         <div class=\"space-y-2 px-4\">
  101.                             ";
  102.         // line 42
  103.         if ((twig_length_filter($this->env, (isset($context["currentFilter"]) || array_key_exists("currentFilter"$context) ? $context["currentFilter"] : (function () { throw new RuntimeError('Variable "currentFilter" does not exist.'42$this->source); })())) > 0)) {
  104.             // line 43
  105.             echo "                                ";
  106.             $context['_parent'] = $context;
  107.             $context['_seq'] = twig_ensure_traversable((isset($context["currentFilter"]) || array_key_exists("currentFilter"$context) ? $context["currentFilter"] : (function () { throw new RuntimeError('Variable "currentFilter" does not exist.'43$this->source); })()));
  108.             foreach ($context['_seq'] as $context["key"] => $context["filter"]) {
  109.                 // line 44
  110.                 echo "                                    ";
  111.                 if (( !(null === $context["filter"]) &&  !twig_test_empty($context["filter"]))) {
  112.                     // line 45
  113.                     echo "                                        ";
  114.                     if (twig_test_iterable($context["filter"])) {
  115.                         // line 46
  116.                         echo "                                            ";
  117.                         $context['_parent'] = $context;
  118.                         $context['_seq'] = twig_ensure_traversable($context["filter"]);
  119.                         foreach ($context['_seq'] as $context["_key"] => $context["f"]) {
  120.                             // line 47
  121.                             echo "                                                <button data-filter=\"";
  122.                             echo twig_escape_filter($this->envtwig_replace_filter(($this->sandbox->ensureToStringAllowed($context["key"], 47$this->source) . $this->sandbox->ensureToStringAllowed($context["f"], 47$this->source)), [" " => ""]), "html"nulltrue);
  123.                             echo "\" type=\"button\" class=\"removeMobileFilter w-full inline-flex items-center py-2 px-3 bg-gray-100 hover:bg-brand-50 text-sm font-medium text-gray-600 hover:text-brand-600 border border-transparent hover:border-brand-600 rounded-md space-x-2 cursor-pointer select-none transition ease duration-300 group text-left\">
  124.                                                     <span class=\"flex-shrink-0\">
  125.                                                         <svg class=\"h-2 w-2\" stroke=\"currentColor\" fill=\"none\" viewBox=\"0 0 8 8\">
  126.                                                             <path stroke-linecap=\"round\" stroke-width=\"1.5\" d=\"M1 1l6 6m0-6L1 7\" />
  127.                                                         </svg>
  128.                                                     </span>
  129.                                                     <span>
  130.                                                         ";
  131.                             // line 54
  132.                             echo twig_escape_filter($this->env$this->extensions['Symfony\Bridge\Twig\Extension\TranslationExtension']->trans(twig_lower_filter($this->env, ("general.filter." $this->sandbox->ensureToStringAllowed($context["key"], 54$this->source)))), "html"nulltrue);
  133.                             echo ": ";
  134.                             echo twig_escape_filter($this->env$this->extensions['Symfony\Bridge\Twig\Extension\TranslationExtension']->trans(twig_lower_filter($this->env$this->sandbox->ensureToStringAllowed($context["f"], 54$this->source))), "html"nulltrue);
  135.                             echo "
  136.                                                     </span>
  137.                                                 </button>
  138.                                             ";
  139.                         }
  140.                         $_parent $context['_parent'];
  141.                         unset($context['_seq'], $context['_iterated'], $context['_key'], $context['f'], $context['_parent'], $context['loop']);
  142.                         $context array_intersect_key($context$_parent) + $_parent;
  143.                         // line 58
  144.                         echo "                                        ";
  145.                     } else {
  146.                         // line 59
  147.                         echo "                                            <button data-filter=\"";
  148.                         echo twig_escape_filter($this->envtwig_replace_filter(($this->sandbox->ensureToStringAllowed($context["key"], 59$this->source) . $this->sandbox->ensureToStringAllowed($context["filter"], 59$this->source)), [" " => ""]), "html"nulltrue);
  149.                         echo "\" type=\"button\" class=\"removeMobileFilter w-full inline-flex items-center py-2 px-3 bg-gray-100 hover:bg-brand-50 text-sm font-medium text-gray-600 hover:text-brand-600 border border-transparent hover:border-brand-600 rounded-md space-x-2 cursor-pointer select-none transition ease duration-300 group text-left\">
  150.                                                 <span class=\"flex-shrink-0\">
  151.                                                     <svg class=\"h-2 w-2\" stroke=\"currentColor\" fill=\"none\" viewBox=\"0 0 8 8\">
  152.                                                         <path stroke-linecap=\"round\" stroke-width=\"1.5\" d=\"M1 1l6 6m0-6L1 7\" />
  153.                                                     </svg>
  154.                                                 </span>
  155.                                                 <span>
  156.                                                     ";
  157.                         // line 66
  158.                         echo twig_escape_filter($this->env$this->extensions['Symfony\Bridge\Twig\Extension\TranslationExtension']->trans(twig_lower_filter($this->env, ("general.filter." $this->sandbox->ensureToStringAllowed($context["key"], 66$this->source)))), "html"nulltrue);
  159.                         echo ": ";
  160.                         echo twig_escape_filter($this->env$this->extensions['Symfony\Bridge\Twig\Extension\TranslationExtension']->trans(twig_lower_filter($this->env$this->sandbox->ensureToStringAllowed($context["filter"], 66$this->source))), "html"nulltrue);
  161.                         echo "
  162.                                                 </span>
  163.                                             </button>
  164.                                         ";
  165.                     }
  166.                     // line 70
  167.                     echo "                                    ";
  168.                 }
  169.                 // line 71
  170.                 echo "                                ";
  171.             }
  172.             $_parent $context['_parent'];
  173.             unset($context['_seq'], $context['_iterated'], $context['key'], $context['filter'], $context['_parent'], $context['loop']);
  174.             $context array_intersect_key($context$_parent) + $_parent;
  175.             // line 72
  176.             echo "                            ";
  177.         }
  178.         // line 73
  179.         echo "                        </div>
  180.                         <div class=\"mt-4\">
  181.                             <div class=\"divide-y divide-gray-200\">
  182.                                 ";
  183.         // line 77
  184.         if ((twig_length_filter($this->envtwig_get_attribute($this->env$this->source, (isset($context["filterDefinition"]) || array_key_exists("filterDefinition"$context) ? $context["filterDefinition"] : (function () { throw new RuntimeError('Variable "filterDefinition" does not exist.'77$this->source); })()), "filters", [], "any"falsefalsetrue77)) > 0)) {
  185.             // line 78
  186.             echo "                                    ";
  187.             $context['_parent'] = $context;
  188.             $context['_seq'] = twig_ensure_traversable(twig_get_attribute($this->env$this->source, (isset($context["filterDefinition"]) || array_key_exists("filterDefinition"$context) ? $context["filterDefinition"] : (function () { throw new RuntimeError('Variable "filterDefinition" does not exist.'78$this->source); })()), "filters", [], "any"falsefalsetrue78));
  189.             foreach ($context['_seq'] as $context["_key"] => $context["filter"]) {
  190.                 // line 79
  191.                 echo "                                        ";
  192.                 $context["filterMarkup"] = twig_get_attribute($this->env$this->source, (isset($context["filterService"]) || array_key_exists("filterService"$context) ? $context["filterService"] : (function () { throw new RuntimeError('Variable "filterService" does not exist.'79$this->source); })()), "filterFrontend", [=> $context["filter"], => (isset($context["productListing"]) || array_key_exists("productListing"$context) ? $context["productListing"] : (function () { throw new RuntimeError('Variable "productListing" does not exist.'79$this->source); })()), => (isset($context["currentFilter"]) || array_key_exists("currentFilter"$context) ? $context["currentFilter"] : (function () { throw new RuntimeError('Variable "currentFilter" does not exist.'79$this->source); })())], "method"falsefalsetrue79);
  193.                 // line 80
  194.                 echo "                                        ";
  195.                 echo $this->sandbox->ensureToStringAllowed((isset($context["filterMarkup"]) || array_key_exists("filterMarkup"$context) ? $context["filterMarkup"] : (function () { throw new RuntimeError('Variable "filterMarkup" does not exist.'80$this->source); })()), 80$this->source);
  196.                 echo "
  197.                                     ";
  198.             }
  199.             $_parent $context['_parent'];
  200.             unset($context['_seq'], $context['_iterated'], $context['_key'], $context['filter'], $context['_parent'], $context['loop']);
  201.             $context array_intersect_key($context$_parent) + $_parent;
  202.             // line 82
  203.             echo "                                ";
  204.         }
  205.         // line 83
  206.         echo "                            </div>
  207.                         </div>
  208.                     </form>
  209.                 </div>
  210.             </div>
  211.         </div>
  212.         <nav aria-label=\"Breadcrumb\" class=\"pt-4\">
  213.             <ol role=\"list\" class=\"mx-auto flex max-w-2xl items-center space-x-2 px-4 sm:px-6 lg:max-w-7xl lg:px-8\">
  214.                 <li>
  215.                     <div class=\"flex items-center\">
  216.                         <a href=\"/\" class=\"mr-2 text-sm font-medium text-gray-900\">Home</a>
  217.                         <svg width=\"16\" height=\"20\" viewBox=\"0 0 16 20\" fill=\"currentColor\" xmlns=\"http://www.w3.org/2000/svg\" aria-hidden=\"true\" class=\"h-5 w-4 text-gray-300\">
  218.                             <path d=\"M5.697 4.34L8.98 16.532h1.327L7.025 4.341H5.697z\" />
  219.                         </svg>
  220.                     </div>
  221.                 </li>
  222.                 <li class=\"text-sm\">
  223.                     <a href=\"";
  224.         // line 102
  225.         echo twig_escape_filter($this->env$this->sandbox->ensureToStringAllowed((isset($context["navStartNode"]) || array_key_exists("navStartNode"$context) ? $context["navStartNode"] : (function () { throw new RuntimeError('Variable "navStartNode" does not exist.'102$this->source); })()), 102$this->source), "html"nulltrue);
  226.         echo "\" aria-current=\"page\" class=\"font-medium text-brand-600 hover:text-gray-600\">";
  227.         echo twig_escape_filter($this->env$this->extensions['Symfony\Bridge\Twig\Extension\TranslationExtension']->trans("Produkte"), "html"nulltrue);
  228.         echo "</a>
  229.                 </li>
  230.             </ol>
  231.         </nav>
  232.         <main class=\"mx-auto max-w-2xl px-4 lg:max-w-7xl lg:px-8\">
  233.             <form id=\"filters\">
  234.                 <div class=\"pt-12 pb-24 lg:grid lg:grid-cols-3 lg:gap-x-8 xl:grid-cols-4\">
  235.                     <aside>
  236.                         <div class=\"flex items-baseline justify-between hidden lg:block\">
  237.                             <h3 class=\"text-2xl mb-4 font-bold tracking-tight text-gray-900\">Filter</h3>
  238.                         </div>
  239.                         <div class=\"space-y-2 hidden lg:block\">
  240.                             ";
  241.         // line 116
  242.         if ((twig_length_filter($this->env, (isset($context["currentFilter"]) || array_key_exists("currentFilter"$context) ? $context["currentFilter"] : (function () { throw new RuntimeError('Variable "currentFilter" does not exist.'116$this->source); })())) > 0)) {
  243.             // line 117
  244.             echo "                                ";
  245.             $context['_parent'] = $context;
  246.             $context['_seq'] = twig_ensure_traversable((isset($context["currentFilter"]) || array_key_exists("currentFilter"$context) ? $context["currentFilter"] : (function () { throw new RuntimeError('Variable "currentFilter" does not exist.'117$this->source); })()));
  247.             foreach ($context['_seq'] as $context["key"] => $context["filter"]) {
  248.                 // line 118
  249.                 echo "                                    ";
  250.                 if ((( !(null === $context["filter"]) &&  !twig_test_empty($context["filter"])) && !twig_in_filter($context["key"], [=> "productGroup"=> "parentCategoryIds"=> "materialThickness"]))) {
  251.                     // line 119
  252.                     echo "                                        ";
  253.                     if (twig_test_iterable($context["filter"])) {
  254.                         // line 120
  255.                         echo "                                            ";
  256.                         $context['_parent'] = $context;
  257.                         $context['_seq'] = twig_ensure_traversable($context["filter"]);
  258.                         foreach ($context['_seq'] as $context["_key"] => $context["f"]) {
  259.                             // line 121
  260.                             echo "                                                <button data-filter=\"";
  261.                             echo twig_escape_filter($this->envtwig_replace_filter(($this->sandbox->ensureToStringAllowed($context["key"], 121$this->source) . $this->sandbox->ensureToStringAllowed($context["f"], 121$this->source)), [" " => ""]), "html"nulltrue);
  262.                             echo "\" type=\"button\" class=\"removeFilter w-full inline-flex items-center py-2 px-3 bg-gray-100 hover:bg-brand-50 text-sm font-medium text-gray-600 hover:text-brand-600 border border-transparent hover:border-brand-600 rounded-md space-x-2 cursor-pointer select-none transition ease duration-300 group text-left\">
  263.                                                     <span class=\"flex-shrink-0\">
  264.                                                         <svg class=\"h-2 w-2\" stroke=\"currentColor\" fill=\"none\" viewBox=\"0 0 8 8\">
  265.                                                             <path stroke-linecap=\"round\" stroke-width=\"1.5\" d=\"M1 1l6 6m0-6L1 7\" />
  266.                                                         </svg>
  267.                                                     </span>
  268.                                                     <span>
  269.                                                         ";
  270.                             // line 128
  271.                             echo twig_escape_filter($this->env$this->extensions['Symfony\Bridge\Twig\Extension\TranslationExtension']->trans(twig_lower_filter($this->env, ("general.filter." $this->sandbox->ensureToStringAllowed($context["key"], 128$this->source)))), "html"nulltrue);
  272.                             echo ": ";
  273.                             echo twig_escape_filter($this->env$this->extensions['Symfony\Bridge\Twig\Extension\TranslationExtension']->trans(twig_lower_filter($this->env$this->sandbox->ensureToStringAllowed($context["f"], 128$this->source))), "html"nulltrue);
  274.                             echo "
  275.                                                     </span>
  276.                                                 </button>
  277.                                             ";
  278.                         }
  279.                         $_parent $context['_parent'];
  280.                         unset($context['_seq'], $context['_iterated'], $context['_key'], $context['f'], $context['_parent'], $context['loop']);
  281.                         $context array_intersect_key($context$_parent) + $_parent;
  282.                         // line 132
  283.                         echo "                                        ";
  284.                     } else {
  285.                         // line 133
  286.                         echo "                                            <button data-filter=\"";
  287.                         echo twig_escape_filter($this->envtwig_replace_filter(($this->sandbox->ensureToStringAllowed($context["key"], 133$this->source) . $this->sandbox->ensureToStringAllowed($context["filter"], 133$this->source)), [" " => ""]), "html"nulltrue);
  288.                         echo "\" type=\"button\" class=\"removeFilter w-full inline-flex items-center py-2 px-3 bg-gray-100 hover:bg-brand-50 text-sm font-medium text-gray-600 hover:text-brand-600 border border-transparent hover:border-brand-600 rounded-md space-x-2 cursor-pointer select-none transition ease duration-300 group text-left\">
  289.                                                 <span class=\"flex-shrink-0\">
  290.                                                     <svg class=\"h-2 w-2\" stroke=\"currentColor\" fill=\"none\" viewBox=\"0 0 8 8\">
  291.                                                         <path stroke-linecap=\"round\" stroke-width=\"1.5\" d=\"M1 1l6 6m0-6L1 7\" />
  292.                                                     </svg>
  293.                                                 </span>
  294.                                                 <span>
  295.                                                     ";
  296.                         // line 140
  297.                         echo twig_escape_filter($this->env$this->extensions['Symfony\Bridge\Twig\Extension\TranslationExtension']->trans(twig_lower_filter($this->env, ("general.filter." $this->sandbox->ensureToStringAllowed($context["key"], 140$this->source)))), "html"nulltrue);
  298.                         echo ": ";
  299.                         echo twig_escape_filter($this->env$this->extensions['Symfony\Bridge\Twig\Extension\TranslationExtension']->trans(twig_lower_filter($this->env$this->sandbox->ensureToStringAllowed($context["filter"], 140$this->source))), "html"nulltrue);
  300.                         echo "
  301.                                                 </span>
  302.                                             </button>
  303.                                         ";
  304.                     }
  305.                     // line 144
  306.                     echo "                                    ";
  307.                 }
  308.                 // line 145
  309.                 echo "                                ";
  310.             }
  311.             $_parent $context['_parent'];
  312.             unset($context['_seq'], $context['_iterated'], $context['key'], $context['filter'], $context['_parent'], $context['loop']);
  313.             $context array_intersect_key($context$_parent) + $_parent;
  314.             // line 146
  315.             echo "                            ";
  316.         }
  317.         // line 147
  318.         echo "                        </div>
  319.                         <div class=\"mt-4 hidden lg:block\">
  320.                             <div class=\"divide-y divide-gray-200\">
  321.                                 ";
  322.         // line 151
  323.         if ((twig_length_filter($this->envtwig_get_attribute($this->env$this->source, (isset($context["filterDefinition"]) || array_key_exists("filterDefinition"$context) ? $context["filterDefinition"] : (function () { throw new RuntimeError('Variable "filterDefinition" does not exist.'151$this->source); })()), "filters", [], "any"falsefalsetrue151)) > 0)) {
  324.             // line 152
  325.             echo "                                    ";
  326.             $context['_parent'] = $context;
  327.             $context['_seq'] = twig_ensure_traversable(twig_get_attribute($this->env$this->source, (isset($context["filterDefinition"]) || array_key_exists("filterDefinition"$context) ? $context["filterDefinition"] : (function () { throw new RuntimeError('Variable "filterDefinition" does not exist.'152$this->source); })()), "filters", [], "any"falsefalsetrue152));
  328.             foreach ($context['_seq'] as $context["_key"] => $context["filter"]) {
  329.                 // line 153
  330.                 echo "                                        ";
  331.                 $context["filterMarkup"] = twig_get_attribute($this->env$this->source, (isset($context["filterService"]) || array_key_exists("filterService"$context) ? $context["filterService"] : (function () { throw new RuntimeError('Variable "filterService" does not exist.'153$this->source); })()), "filterFrontend", [=> $context["filter"], => (isset($context["productListing"]) || array_key_exists("productListing"$context) ? $context["productListing"] : (function () { throw new RuntimeError('Variable "productListing" does not exist.'153$this->source); })()), => (isset($context["currentFilter"]) || array_key_exists("currentFilter"$context) ? $context["currentFilter"] : (function () { throw new RuntimeError('Variable "currentFilter" does not exist.'153$this->source); })())], "method"falsefalsetrue153);
  332.                 // line 154
  333.                 echo "                                        ";
  334.                 echo $this->sandbox->ensureToStringAllowed((isset($context["filterMarkup"]) || array_key_exists("filterMarkup"$context) ? $context["filterMarkup"] : (function () { throw new RuntimeError('Variable "filterMarkup" does not exist.'154$this->source); })()), 154$this->source);
  335.                 echo "
  336.                                     ";
  337.             }
  338.             $_parent $context['_parent'];
  339.             unset($context['_seq'], $context['_iterated'], $context['_key'], $context['filter'], $context['_parent'], $context['loop']);
  340.             $context array_intersect_key($context$_parent) + $_parent;
  341.             // line 156
  342.             echo "                                ";
  343.         }
  344.         // line 157
  345.         echo "                            </div>
  346.                         </div>
  347.                     </aside>
  348.                     <section aria-labelledby=\"product-heading\" class=\"mt-6 lg:col-span-2 lg:mt-0 xl:col-span-3\">
  349.                         <div class=\"flex justify-between mb-4 items-center\">
  350.                             <h3 class=\"text-2xl font-bold tracking-tight text-gray-900\">";
  351.         // line 163
  352.         echo twig_escape_filter($this->env$this->extensions['Symfony\Bridge\Twig\Extension\TranslationExtension']->trans("Produkte"), "html"nulltrue);
  353.         echo "</h3>
  354.                             <div class=\"flex items-center\">
  355.                                 <button @click=\"showMobileFilter = true\" type=\"button\" class=\"mr-4 p-2 text-gray-400 hover:text-gray-500 sm:ml-6 lg:hidden\">
  356.                                     <span class=\"sr-only\">Filters</span>
  357.                                     <svg class=\"h-5 w-5\" aria-hidden=\"true\" viewBox=\"0 0 20 20\" fill=\"currentColor\">
  358.                                         <path fill-rule=\"evenodd\" d=\"M2.628 1.601C5.028 1.206 7.49 1 10 1s4.973.206 7.372.601a.75.75 0 01.628.74v2.288a2.25 2.25 0 01-.659 1.59l-4.682 4.683a2.25 2.25 0 00-.659 1.59v3.037c0 .684-.31 1.33-.844 1.757l-1.937 1.55A.75.75 0 018 18.25v-5.757a2.25 2.25 0 00-.659-1.591L2.659 6.22A2.25 2.25 0 012 4.629V2.34a.75.75 0 01.628-.74z\" clip-rule=\"evenodd\" />
  359.                                     </svg>
  360.                                 </button>
  361.                                 <div class=\"relative inline-block text-left\" x-data=\"{ isOpen: false }\">
  362.                                     <div>
  363.                                         <button type=\"button\" x-on:click=\"isOpen = ! isOpen\" class=\"inline-flex w-full justify-center py-2 px-3 bg-gray-100 text-sm font-semibold text-gray-900 space-x-1.5 rounded-md focus:outline-none\" id=\"menu-button\" aria-expanded=\"true\" aria-haspopup=\"true\">
  364.                                             <span>";
  365.         // line 174
  366.         echo twig_escape_filter($this->env$this->extensions['Symfony\Bridge\Twig\Extension\TranslationExtension']->trans("Sortieren nach"), "html"nulltrue);
  367.         echo "</span>
  368.                                             <svg class=\"-mr-1 h-5 w-5 text-gray-400\" viewBox=\"0 0 20 20\" fill=\"currentColor\" aria-hidden=\"true\">
  369.                                                 <path fill-rule=\"evenodd\" d=\"M5.23 7.21a.75.75 0 011.06.02L10 11.168l3.71-3.938a.75.75 0 111.08 1.04l-4.25 4.5a.75.75 0 01-1.08 0l-4.25-4.5a.75.75 0 01.02-1.06z\" clip-rule=\"evenodd\" />
  370.                                             </svg>
  371.                                         </button>
  372.                                     </div>
  373.                                     <!--
  374.                                       Dropdown menu, show/hide based on menu state.
  375.                                       Entering: \"transition ease-out duration-100\"
  376.                                         From: \"transform opacity-0 scale-95\"
  377.                                         To: \"transform opacity-100 scale-100\"
  378.                                       Leaving: \"transition ease-in duration-75\"
  379.                                         From: \"transform opacity-100 scale-100\"
  380.                                         To: \"transform opacity-0 scale-95\"
  381.                                     -->
  382.                                     <div
  383.                                         x-cloak x-show=\"isOpen\"
  384.                                         @click.outside=\"isOpen = false\"
  385.                                         x-transition:enter=\"transition ease-out duration-100\"
  386.                                         x-transition:enter-start=\"transform opacity-0 scale-95\"
  387.                                         x-transition:enter-end=\"transform opacity-0 scale-100\"
  388.                                         x-transition:leave=\"transition ease-in duration-75\"
  389.                                         x-transition:leave-start=\"transform opacity-100 scale-100\"
  390.                                         x-transition:leave-end=\"transform opacity-0 scale-95\"
  391.                                         class=\"absolute right-0 z-10 mt-2 w-56 origin-top-right rounded-md bg-gray-50 shadow-lg focus:outline-none\" role=\"menu\" aria-orientation=\"vertical\" aria-labelledby=\"menu-button\" tabindex=\"-1\">
  392.                                         <div class=\"py-1\" role=\"none\">
  393.                                             <!--<button name=\"sort\" value=\"name-asc\" class=\"w-full block py-2 px-4 hover:bg-gray-100 text-sm text-gray-700 hover:text-gray-900 text-left\" role=\"menuitem\" tabindex=\"-1\" id=\"menu-item-0\">";
  394.         // line 202
  395.         echo twig_escape_filter($this->env$this->extensions['Symfony\Bridge\Twig\Extension\TranslationExtension']->trans("Artikelname"), "html"nulltrue);
  396.         echo "</button>-->
  397.                                             <button name=\"sort\" value=\"code-asc\" class=\"w-full block py-2 px-4 hover:bg-gray-100 text-sm text-gray-700 hover:text-gray-900 text-left\" role=\"menuitem\" tabindex=\"-1\" id=\"menu-item-1\">";
  398.         // line 203
  399.         echo twig_escape_filter($this->env$this->extensions['Symfony\Bridge\Twig\Extension\TranslationExtension']->trans("Produktcode (aufsteigend)"), "html"nulltrue);
  400.         echo "</button>
  401.                                             <button name=\"sort\" value=\"code-desc\" class=\"w-full block py-2 px-4 hover:bg-gray-100 text-sm text-gray-700 hover:text-gray-900 text-left\" role=\"menuitem\" tabindex=\"-1\" id=\"menu-item-1\">";
  402.         // line 204
  403.         echo twig_escape_filter($this->env$this->extensions['Symfony\Bridge\Twig\Extension\TranslationExtension']->trans("Produktcode (absteigend)"), "html"nulltrue);
  404.         echo "</button>
  405.                                             <button name=\"sort\" value=\"materialThickness-asc\" class=\"w-full block py-2 px-4 hover:bg-gray-100 text-sm text-gray-700 hover:text-gray-900 text-left\" role=\"menuitem\" tabindex=\"-1\" id=\"menu-item-1\">";
  406.         // line 205
  407.         echo twig_escape_filter($this->env$this->extensions['Symfony\Bridge\Twig\Extension\TranslationExtension']->trans("Materialstärke (aufsteigend)"), "html"nulltrue);
  408.         echo "</button>
  409.                                             <button name=\"sort\" value=\"materialThickness-desc\" class=\"w-full block py-2 px-4 hover:bg-gray-100 text-sm text-gray-700 hover:text-gray-900 text-left\" role=\"menuitem\" tabindex=\"-1\" id=\"menu-item-1\">";
  410.         // line 206
  411.         echo twig_escape_filter($this->env$this->extensions['Symfony\Bridge\Twig\Extension\TranslationExtension']->trans("Materialstärke (absteigend)"), "html"nulltrue);
  412.         echo "</button>
  413.                                         </div>
  414.                                     </div>
  415.                                 </div>
  416.                             </div>
  417.                         </div>
  418.                         <div class=\"grid grid-cols-1 gap-y-4 sm:grid-cols-3 sm:gap-x-6 sm:gap-y-10 lg:gap-x-8 xl:grid-cols-4\">
  419.                             ";
  420.         // line 214
  421.         $context['_parent'] = $context;
  422.         $context['_seq'] = twig_ensure_traversable((isset($context["results"]) || array_key_exists("results"$context) ? $context["results"] : (function () { throw new RuntimeError('Variable "results" does not exist.'214$this->source); })()));
  423.         $context['_iterated'] = false;
  424.         $context['loop'] = [
  425.           'parent' => $context['_parent'],
  426.           'index0' => 0,
  427.           'index'  => 1,
  428.           'first'  => true,
  429.         ];
  430.         if (is_array($context['_seq']) || (is_object($context['_seq']) && $context['_seq'] instanceof \Countable)) {
  431.             $length count($context['_seq']);
  432.             $context['loop']['revindex0'] = $length 1;
  433.             $context['loop']['revindex'] = $length;
  434.             $context['loop']['length'] = $length;
  435.             $context['loop']['last'] = === $length;
  436.         }
  437.         foreach ($context['_seq'] as $context["_key"] => $context["item"]) {
  438.             // line 215
  439.             echo "                                ";
  440.             $this->loadTemplate("product/product_teaser.html.twig""product/index.html.twig"215)->display(twig_array_merge($context, ["product" => $context["item"]]));
  441.             // line 216
  442.             echo "                            ";
  443.             $context['_iterated'] = true;
  444.             ++$context['loop']['index0'];
  445.             ++$context['loop']['index'];
  446.             $context['loop']['first'] = false;
  447.             if (isset($context['loop']['length'])) {
  448.                 --$context['loop']['revindex0'];
  449.                 --$context['loop']['revindex'];
  450.                 $context['loop']['last'] = === $context['loop']['revindex0'];
  451.             }
  452.         }
  453.         if (!$context['_iterated']) {
  454.             // line 217
  455.             echo "                                <div class=\"p-4 my-4 text-sm text-brand-600 rounded-lg bg-brand-50 col-span-4\" role=\"alert\">
  456.                                     ";
  457.             // line 218
  458.             echo "Leider wurden keine Ergebnisse gefunden";
  459.             echo "
  460.                                 </div>
  461.                             ";
  462.         }
  463.         $_parent $context['_parent'];
  464.         unset($context['_seq'], $context['_iterated'], $context['_key'], $context['item'], $context['_parent'], $context['loop']);
  465.         $context array_intersect_key($context$_parent) + $_parent;
  466.         // line 221
  467.         echo "                        </div>
  468.                         <div class=\"mt-10\">
  469.                             ";
  470.         // line 223
  471.         $this->loadTemplate("_partials/pagination.html.twig""product/index.html.twig"223)->display($context);
  472.         // line 224
  473.         echo "                        </div>
  474.                     </section>
  475.                 </div>
  476.             </form>
  477.         </main>
  478.     </div>
  479. ";
  480.         
  481.         $__internal_6f47bbe9983af81f1e7450e9a3e3768f->leave($__internal_6f47bbe9983af81f1e7450e9a3e3768f_prof);
  482.         
  483.         $__internal_5a27a8ba21ca79b61932376b2fa922d2->leave($__internal_5a27a8ba21ca79b61932376b2fa922d2_prof);
  484.     }
  485.     // line 232
  486.     public function block_PAGE_JS($context, array $blocks = [])
  487.     {
  488.         $macros $this->macros;
  489.         $__internal_5a27a8ba21ca79b61932376b2fa922d2 $this->extensions["Symfony\\Bundle\\WebProfilerBundle\\Twig\\WebProfilerExtension"];
  490.         $__internal_5a27a8ba21ca79b61932376b2fa922d2->enter($__internal_5a27a8ba21ca79b61932376b2fa922d2_prof = new \Twig\Profiler\Profile($this->getTemplateName(), "block""PAGE_JS"));
  491.         $__internal_6f47bbe9983af81f1e7450e9a3e3768f $this->extensions["Symfony\\Bridge\\Twig\\Extension\\ProfilerExtension"];
  492.         $__internal_6f47bbe9983af81f1e7450e9a3e3768f->enter($__internal_6f47bbe9983af81f1e7450e9a3e3768f_prof = new \Twig\Profiler\Profile($this->getTemplateName(), "block""PAGE_JS"));
  493.         
  494.         $__internal_6f47bbe9983af81f1e7450e9a3e3768f->leave($__internal_6f47bbe9983af81f1e7450e9a3e3768f_prof);
  495.         
  496.         $__internal_5a27a8ba21ca79b61932376b2fa922d2->leave($__internal_5a27a8ba21ca79b61932376b2fa922d2_prof);
  497.     }
  498.     public function getTemplateName()
  499.     {
  500.         return "product/index.html.twig";
  501.     }
  502.     public function isTraitable()
  503.     {
  504.         return false;
  505.     }
  506.     public function getDebugInfo()
  507.     {
  508.         return array (  523 => 232,  507 => 224,  505 => 223,  501 => 221,  492 => 218,  489 => 217,  476 => 216,  473 => 215,  455 => 214,  444 => 206,  440 => 205,  436 => 204,  432 => 203,  428 => 202,  397 => 174,  383 => 163,  375 => 157,  372 => 156,  363 => 154,  360 => 153,  355 => 152,  353 => 151,  347 => 147,  344 => 146,  338 => 145,  335 => 144,  326 => 140,  315 => 133,  312 => 132,  300 => 128,  289 => 121,  284 => 120,  281 => 119,  278 => 118,  273 => 117,  271 => 116,  252 => 102,  231 => 83,  228 => 82,  219 => 80,  216 => 79,  211 => 78,  209 => 77,  203 => 73,  200 => 72,  194 => 71,  191 => 70,  182 => 66,  171 => 59,  168 => 58,  156 => 54,  145 => 47,  140 => 46,  137 => 45,  134 => 44,  129 => 43,  127 => 42,  90 => 7,  80 => 6,  62 => 3,  39 => 1,);
  509.     }
  510.     public function getSourceContext()
  511.     {
  512.         return new Source("{% extends 'layout/app.html.twig' %}
  513. {% block PAGE_CSS %}
  514. {% endblock %}
  515. {% block CONTENT_MID %}
  516.     <div x-data=\"{ showMobileFilter: false }\">
  517.         <div x-cloak x-show=\"showMobileFilter\" class=\"relative z-40 lg:hidden\" role=\"dialog\" aria-modal=\"true\">
  518.             <div x-transition:enter=\"transition-opacity ease-linear duration-300\"
  519.                  x-transition:enter-start=\"opacity-0\"
  520.                  x-transition:enter-end=\"opacity-100\"
  521.                  x-transition:leave=\"transition-opacity ease-linear duration-300\"
  522.                  x-transition:leave-start=\"opacity-100\"
  523.                  x-transition:leave-end=\"opacity-0\"
  524.                  class=\"fixed inset-0 bg-black bg-opacity-25\"></div>
  525.             <div class=\"fixed inset-0 z-40 flex\">
  526.                 <div x-transition:enter=\"transition ease-in-out duration-300 transform\"
  527.                      x-transition:enter-start=\"translate-x-full\"
  528.                      x-transition:enter-end=\"translate-x-0\"
  529.                      x-transition:leave=\"transition ease-in-out duration-300 transform\"
  530.                      x-transition:leave-start=\"translate-x-0\"
  531.                      x-transition:leave-end=\"translate-x-full\"
  532.                     class=\"relative ml-auto flex h-full w-full max-w-xs flex-col overflow-y-auto bg-white py-4 pb-6 shadow-xl\">
  533.                     <div class=\"flex items-center justify-between px-4\">
  534.                         <h2 class=\"text-lg font-medium text-gray-900\">Filters</h2>
  535.                         <button @click=\"showMobileFilter = false\" type=\"button\" class=\"-mr-2 flex h-10 w-10 items-center justify-center p-2 text-gray-400 hover:text-gray-500\">
  536.                             <span class=\"sr-only\">Close menu</span>
  537.                             <!-- Heroicon name: outline/x-mark -->
  538.                             <svg class=\"h-6 w-6\" xmlns=\"http://www.w3.org/2000/svg\" fill=\"none\" viewBox=\"0 0 24 24\" stroke-width=\"1.5\" stroke=\"currentColor\" aria-hidden=\"true\">
  539.                                 <path stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M6 18L18 6M6 6l12 12\" />
  540.                             </svg>
  541.                         </button>
  542.                     </div>
  543.                     <!-- Filters -->
  544.                     <form id=\"mobileFilters\" class=\"mt-4\">
  545.                         <div class=\"space-y-2 px-4\">
  546.                             {% if(currentFilter|length > 0) %}
  547.                                 {% for key,filter in currentFilter %}
  548.                                     {% if(filter is not null and filter is not empty) %}
  549.                                         {% if filter is iterable %}
  550.                                             {% for f in filter %}
  551.                                                 <button data-filter=\"{{ (key ~ f)|replace({' ': ''}) }}\" type=\"button\" class=\"removeMobileFilter w-full inline-flex items-center py-2 px-3 bg-gray-100 hover:bg-brand-50 text-sm font-medium text-gray-600 hover:text-brand-600 border border-transparent hover:border-brand-600 rounded-md space-x-2 cursor-pointer select-none transition ease duration-300 group text-left\">
  552.                                                     <span class=\"flex-shrink-0\">
  553.                                                         <svg class=\"h-2 w-2\" stroke=\"currentColor\" fill=\"none\" viewBox=\"0 0 8 8\">
  554.                                                             <path stroke-linecap=\"round\" stroke-width=\"1.5\" d=\"M1 1l6 6m0-6L1 7\" />
  555.                                                         </svg>
  556.                                                     </span>
  557.                                                     <span>
  558.                                                         {{ ('general.filter.' ~ key)|lower|trans }}: {{ (f)|lower|trans }}
  559.                                                     </span>
  560.                                                 </button>
  561.                                             {% endfor %}
  562.                                         {% else %}
  563.                                             <button data-filter=\"{{ (key ~ filter)|replace({' ': ''}) }}\" type=\"button\" class=\"removeMobileFilter w-full inline-flex items-center py-2 px-3 bg-gray-100 hover:bg-brand-50 text-sm font-medium text-gray-600 hover:text-brand-600 border border-transparent hover:border-brand-600 rounded-md space-x-2 cursor-pointer select-none transition ease duration-300 group text-left\">
  564.                                                 <span class=\"flex-shrink-0\">
  565.                                                     <svg class=\"h-2 w-2\" stroke=\"currentColor\" fill=\"none\" viewBox=\"0 0 8 8\">
  566.                                                         <path stroke-linecap=\"round\" stroke-width=\"1.5\" d=\"M1 1l6 6m0-6L1 7\" />
  567.                                                     </svg>
  568.                                                 </span>
  569.                                                 <span>
  570.                                                     {{ ('general.filter.' ~ key)|lower|trans }}: {{ (filter)|lower|trans }}
  571.                                                 </span>
  572.                                             </button>
  573.                                         {% endif %}
  574.                                     {% endif %}
  575.                                 {% endfor %}
  576.                             {% endif %}
  577.                         </div>
  578.                         <div class=\"mt-4\">
  579.                             <div class=\"divide-y divide-gray-200\">
  580.                                 {% if(filterDefinition.filters|length > 0) %}
  581.                                     {% for filter in filterDefinition.filters %}
  582.                                         {% set filterMarkup = filterService.filterFrontend(filter, productListing, currentFilter) %}
  583.                                         {{ filterMarkup | raw  }}
  584.                                     {% endfor %}
  585.                                 {% endif %}
  586.                             </div>
  587.                         </div>
  588.                     </form>
  589.                 </div>
  590.             </div>
  591.         </div>
  592.         <nav aria-label=\"Breadcrumb\" class=\"pt-4\">
  593.             <ol role=\"list\" class=\"mx-auto flex max-w-2xl items-center space-x-2 px-4 sm:px-6 lg:max-w-7xl lg:px-8\">
  594.                 <li>
  595.                     <div class=\"flex items-center\">
  596.                         <a href=\"/\" class=\"mr-2 text-sm font-medium text-gray-900\">Home</a>
  597.                         <svg width=\"16\" height=\"20\" viewBox=\"0 0 16 20\" fill=\"currentColor\" xmlns=\"http://www.w3.org/2000/svg\" aria-hidden=\"true\" class=\"h-5 w-4 text-gray-300\">
  598.                             <path d=\"M5.697 4.34L8.98 16.532h1.327L7.025 4.341H5.697z\" />
  599.                         </svg>
  600.                     </div>
  601.                 </li>
  602.                 <li class=\"text-sm\">
  603.                     <a href=\"{{ navStartNode }}\" aria-current=\"page\" class=\"font-medium text-brand-600 hover:text-gray-600\">{{ 'Produkte' | trans }}</a>
  604.                 </li>
  605.             </ol>
  606.         </nav>
  607.         <main class=\"mx-auto max-w-2xl px-4 lg:max-w-7xl lg:px-8\">
  608.             <form id=\"filters\">
  609.                 <div class=\"pt-12 pb-24 lg:grid lg:grid-cols-3 lg:gap-x-8 xl:grid-cols-4\">
  610.                     <aside>
  611.                         <div class=\"flex items-baseline justify-between hidden lg:block\">
  612.                             <h3 class=\"text-2xl mb-4 font-bold tracking-tight text-gray-900\">Filter</h3>
  613.                         </div>
  614.                         <div class=\"space-y-2 hidden lg:block\">
  615.                             {% if(currentFilter|length > 0) %}
  616.                                 {% for key,filter in currentFilter %}
  617.                                     {% if(filter is not null and filter is not empty and key not in [\"productGroup\", \"parentCategoryIds\", \"materialThickness\"]) %}
  618.                                         {% if filter is iterable %}
  619.                                             {% for f in filter %}
  620.                                                 <button data-filter=\"{{ (key ~ f)|replace({' ': ''}) }}\" type=\"button\" class=\"removeFilter w-full inline-flex items-center py-2 px-3 bg-gray-100 hover:bg-brand-50 text-sm font-medium text-gray-600 hover:text-brand-600 border border-transparent hover:border-brand-600 rounded-md space-x-2 cursor-pointer select-none transition ease duration-300 group text-left\">
  621.                                                     <span class=\"flex-shrink-0\">
  622.                                                         <svg class=\"h-2 w-2\" stroke=\"currentColor\" fill=\"none\" viewBox=\"0 0 8 8\">
  623.                                                             <path stroke-linecap=\"round\" stroke-width=\"1.5\" d=\"M1 1l6 6m0-6L1 7\" />
  624.                                                         </svg>
  625.                                                     </span>
  626.                                                     <span>
  627.                                                         {{ ('general.filter.' ~ key)|lower|trans }}: {{ (f)|lower|trans }}
  628.                                                     </span>
  629.                                                 </button>
  630.                                             {% endfor %}
  631.                                         {% else %}
  632.                                             <button data-filter=\"{{ (key ~ filter)|replace({' ': ''}) }}\" type=\"button\" class=\"removeFilter w-full inline-flex items-center py-2 px-3 bg-gray-100 hover:bg-brand-50 text-sm font-medium text-gray-600 hover:text-brand-600 border border-transparent hover:border-brand-600 rounded-md space-x-2 cursor-pointer select-none transition ease duration-300 group text-left\">
  633.                                                 <span class=\"flex-shrink-0\">
  634.                                                     <svg class=\"h-2 w-2\" stroke=\"currentColor\" fill=\"none\" viewBox=\"0 0 8 8\">
  635.                                                         <path stroke-linecap=\"round\" stroke-width=\"1.5\" d=\"M1 1l6 6m0-6L1 7\" />
  636.                                                     </svg>
  637.                                                 </span>
  638.                                                 <span>
  639.                                                     {{ ('general.filter.' ~ key)|lower|trans }}: {{ (filter)|lower|trans }}
  640.                                                 </span>
  641.                                             </button>
  642.                                         {% endif %}
  643.                                     {% endif %}
  644.                                 {% endfor %}
  645.                             {% endif %}
  646.                         </div>
  647.                         <div class=\"mt-4 hidden lg:block\">
  648.                             <div class=\"divide-y divide-gray-200\">
  649.                                 {% if(filterDefinition.filters|length > 0) %}
  650.                                     {% for filter in filterDefinition.filters %}
  651.                                         {% set filterMarkup = filterService.filterFrontend(filter, productListing, currentFilter) %}
  652.                                         {{ filterMarkup | raw  }}
  653.                                     {% endfor %}
  654.                                 {% endif %}
  655.                             </div>
  656.                         </div>
  657.                     </aside>
  658.                     <section aria-labelledby=\"product-heading\" class=\"mt-6 lg:col-span-2 lg:mt-0 xl:col-span-3\">
  659.                         <div class=\"flex justify-between mb-4 items-center\">
  660.                             <h3 class=\"text-2xl font-bold tracking-tight text-gray-900\">{{ 'Produkte' | trans }}</h3>
  661.                             <div class=\"flex items-center\">
  662.                                 <button @click=\"showMobileFilter = true\" type=\"button\" class=\"mr-4 p-2 text-gray-400 hover:text-gray-500 sm:ml-6 lg:hidden\">
  663.                                     <span class=\"sr-only\">Filters</span>
  664.                                     <svg class=\"h-5 w-5\" aria-hidden=\"true\" viewBox=\"0 0 20 20\" fill=\"currentColor\">
  665.                                         <path fill-rule=\"evenodd\" d=\"M2.628 1.601C5.028 1.206 7.49 1 10 1s4.973.206 7.372.601a.75.75 0 01.628.74v2.288a2.25 2.25 0 01-.659 1.59l-4.682 4.683a2.25 2.25 0 00-.659 1.59v3.037c0 .684-.31 1.33-.844 1.757l-1.937 1.55A.75.75 0 018 18.25v-5.757a2.25 2.25 0 00-.659-1.591L2.659 6.22A2.25 2.25 0 012 4.629V2.34a.75.75 0 01.628-.74z\" clip-rule=\"evenodd\" />
  666.                                     </svg>
  667.                                 </button>
  668.                                 <div class=\"relative inline-block text-left\" x-data=\"{ isOpen: false }\">
  669.                                     <div>
  670.                                         <button type=\"button\" x-on:click=\"isOpen = ! isOpen\" class=\"inline-flex w-full justify-center py-2 px-3 bg-gray-100 text-sm font-semibold text-gray-900 space-x-1.5 rounded-md focus:outline-none\" id=\"menu-button\" aria-expanded=\"true\" aria-haspopup=\"true\">
  671.                                             <span>{{ 'Sortieren nach' | trans }}</span>
  672.                                             <svg class=\"-mr-1 h-5 w-5 text-gray-400\" viewBox=\"0 0 20 20\" fill=\"currentColor\" aria-hidden=\"true\">
  673.                                                 <path fill-rule=\"evenodd\" d=\"M5.23 7.21a.75.75 0 011.06.02L10 11.168l3.71-3.938a.75.75 0 111.08 1.04l-4.25 4.5a.75.75 0 01-1.08 0l-4.25-4.5a.75.75 0 01.02-1.06z\" clip-rule=\"evenodd\" />
  674.                                             </svg>
  675.                                         </button>
  676.                                     </div>
  677.                                     <!--
  678.                                       Dropdown menu, show/hide based on menu state.
  679.                                       Entering: \"transition ease-out duration-100\"
  680.                                         From: \"transform opacity-0 scale-95\"
  681.                                         To: \"transform opacity-100 scale-100\"
  682.                                       Leaving: \"transition ease-in duration-75\"
  683.                                         From: \"transform opacity-100 scale-100\"
  684.                                         To: \"transform opacity-0 scale-95\"
  685.                                     -->
  686.                                     <div
  687.                                         x-cloak x-show=\"isOpen\"
  688.                                         @click.outside=\"isOpen = false\"
  689.                                         x-transition:enter=\"transition ease-out duration-100\"
  690.                                         x-transition:enter-start=\"transform opacity-0 scale-95\"
  691.                                         x-transition:enter-end=\"transform opacity-0 scale-100\"
  692.                                         x-transition:leave=\"transition ease-in duration-75\"
  693.                                         x-transition:leave-start=\"transform opacity-100 scale-100\"
  694.                                         x-transition:leave-end=\"transform opacity-0 scale-95\"
  695.                                         class=\"absolute right-0 z-10 mt-2 w-56 origin-top-right rounded-md bg-gray-50 shadow-lg focus:outline-none\" role=\"menu\" aria-orientation=\"vertical\" aria-labelledby=\"menu-button\" tabindex=\"-1\">
  696.                                         <div class=\"py-1\" role=\"none\">
  697.                                             <!--<button name=\"sort\" value=\"name-asc\" class=\"w-full block py-2 px-4 hover:bg-gray-100 text-sm text-gray-700 hover:text-gray-900 text-left\" role=\"menuitem\" tabindex=\"-1\" id=\"menu-item-0\">{{ 'Artikelname' | trans }}</button>-->
  698.                                             <button name=\"sort\" value=\"code-asc\" class=\"w-full block py-2 px-4 hover:bg-gray-100 text-sm text-gray-700 hover:text-gray-900 text-left\" role=\"menuitem\" tabindex=\"-1\" id=\"menu-item-1\">{{ 'Produktcode (aufsteigend)' | trans }}</button>
  699.                                             <button name=\"sort\" value=\"code-desc\" class=\"w-full block py-2 px-4 hover:bg-gray-100 text-sm text-gray-700 hover:text-gray-900 text-left\" role=\"menuitem\" tabindex=\"-1\" id=\"menu-item-1\">{{ 'Produktcode (absteigend)' | trans }}</button>
  700.                                             <button name=\"sort\" value=\"materialThickness-asc\" class=\"w-full block py-2 px-4 hover:bg-gray-100 text-sm text-gray-700 hover:text-gray-900 text-left\" role=\"menuitem\" tabindex=\"-1\" id=\"menu-item-1\">{{ 'Materialstärke (aufsteigend)' | trans }}</button>
  701.                                             <button name=\"sort\" value=\"materialThickness-desc\" class=\"w-full block py-2 px-4 hover:bg-gray-100 text-sm text-gray-700 hover:text-gray-900 text-left\" role=\"menuitem\" tabindex=\"-1\" id=\"menu-item-1\">{{ 'Materialstärke (absteigend)' | trans }}</button>
  702.                                         </div>
  703.                                     </div>
  704.                                 </div>
  705.                             </div>
  706.                         </div>
  707.                         <div class=\"grid grid-cols-1 gap-y-4 sm:grid-cols-3 sm:gap-x-6 sm:gap-y-10 lg:gap-x-8 xl:grid-cols-4\">
  708.                             {%  for item in results %}
  709.                                 {% include 'product/product_teaser.html.twig' with {'product': item} %}
  710.                             {% else %}
  711.                                 <div class=\"p-4 my-4 text-sm text-brand-600 rounded-lg bg-brand-50 col-span-4\" role=\"alert\">
  712.                                     {{ 'Leider wurden keine Ergebnisse gefunden' }}
  713.                                 </div>
  714.                             {% endfor %}
  715.                         </div>
  716.                         <div class=\"mt-10\">
  717.                             {% include '_partials/pagination.html.twig' %}
  718.                         </div>
  719.                     </section>
  720.                 </div>
  721.             </form>
  722.         </main>
  723.     </div>
  724. {% endblock %}
  725. {% block PAGE_JS %}
  726. {% endblock %}""product/index.html.twig""/var/www/html/templates/product/index.html.twig");
  727.     }
  728.     
  729.     public function checkSecurity()
  730.     {
  731.         static $tags = array("if" => 42"for" => 43"set" => 79"include" => 215);
  732.         static $filters = array("length" => 42"escape" => 47"replace" => 47"trans" => 54"lower" => 54"raw" => 80);
  733.         static $functions = array();
  734.         try {
  735.             $this->sandbox->checkSecurity(
  736.                 ['if''for''set''include'],
  737.                 ['length''escape''replace''trans''lower''raw'],
  738.                 []
  739.             );
  740.         } catch (SecurityError $e) {
  741.             $e->setSourceContext($this->source);
  742.             if ($e instanceof SecurityNotAllowedTagError && isset($tags[$e->getTagName()])) {
  743.                 $e->setTemplateLine($tags[$e->getTagName()]);
  744.             } elseif ($e instanceof SecurityNotAllowedFilterError && isset($filters[$e->getFilterName()])) {
  745.                 $e->setTemplateLine($filters[$e->getFilterName()]);
  746.             } elseif ($e instanceof SecurityNotAllowedFunctionError && isset($functions[$e->getFunctionName()])) {
  747.                 $e->setTemplateLine($functions[$e->getFunctionName()]);
  748.             }
  749.             throw $e;
  750.         }
  751.     }
  752. }