From f5bf093808abfeafe04ed9f21e963a67de57146c Mon Sep 17 00:00:00 2001 From: Pierre Dureau <31905-pdureau@users.noreply.drupalcode.org> Date: Mon, 27 Mar 2023 07:44:46 +0000 Subject: [PATCH] Issue #3347943 by pdureau, Grimreaper: Better variants to HTML class conversions --- .../patterns/accordion/pattern-accordion.html.twig | 7 ++----- templates/patterns/alert/pattern-alert.html.twig | 7 ++----- templates/patterns/button/pattern-button.html.twig | 10 ++++------ .../button_group/pattern-button-group.html.twig | 4 ++-- templates/patterns/carousel/pattern-carousel.html.twig | 8 +++----- templates/patterns/dropdown/pattern-dropdown.html.twig | 8 +++----- .../dropdown_item/pattern-dropdown-item.html.twig | 7 ++----- templates/patterns/list/pattern-list.html.twig | 2 +- .../patterns/list_group/pattern-list-group.html.twig | 2 +- .../list_group_item/pattern-list-group-item.html.twig | 7 ++----- templates/patterns/nav/pattern-nav.html.twig | 8 +++----- templates/patterns/navbar/pattern-navbar.html.twig | 9 ++++----- .../patterns/navbar_nav/pattern-navbar-nav.html.twig | 8 +++----- .../patterns/pagination/pattern-pagination.html.twig | 4 ++-- templates/patterns/progress/pattern-progress.html.twig | 8 +++----- templates/patterns/table/pattern-table.html.twig | 10 ++++------ 16 files changed, 41 insertions(+), 68 deletions(-) diff --git a/templates/patterns/accordion/pattern-accordion.html.twig b/templates/patterns/accordion/pattern-accordion.html.twig index ce6739a3..d6a8c296 100644 --- a/templates/patterns/accordion/pattern-accordion.html.twig +++ b/templates/patterns/accordion/pattern-accordion.html.twig @@ -1,8 +1,5 @@ -{% if variant != '' and variant|lower != 'default' %} - {% set variants = variant|split('__') %} - {% for variant in variants %} - {% set attributes = attributes.addClass('accordion-' ~ variant|lower|replace({'_': '-'})) %} - {% endfor %} +{% if variant and variant|lower != 'default' %} + {% set attributes = attributes.addClass('accordion-' ~ variant|lower|replace({'_': '-'})) %} {% endif %} {% set attributes = attributes.addClass('accordion') %} {% set attributes = accordion_id ? attributes.setAttribute('id', accordion_id) : attributes %} diff --git a/templates/patterns/alert/pattern-alert.html.twig b/templates/patterns/alert/pattern-alert.html.twig index 3c6a3bd2..5e883166 100644 --- a/templates/patterns/alert/pattern-alert.html.twig +++ b/templates/patterns/alert/pattern-alert.html.twig @@ -1,8 +1,5 @@ -{% if variant != '' and variant|lower != 'default' %} - {% set variants = variant|split('__') %} - {% for variant in variants %} - {% set attributes = attributes.addClass('alert-' ~ variant|lower|replace({'_': '-'})) %} - {% endfor %} +{% if variant and variant|lower != 'default' %} + {% set attributes = attributes.addClass('alert-' ~ variant|lower|replace({'_': '-'})) %} {% endif %} {% if dismissible %} diff --git a/templates/patterns/button/pattern-button.html.twig b/templates/patterns/button/pattern-button.html.twig index 8b0e4feb..5a0f47b6 100644 --- a/templates/patterns/button/pattern-button.html.twig +++ b/templates/patterns/button/pattern-button.html.twig @@ -1,12 +1,10 @@ -{% if variant != '' and variant|lower != 'default' and variant|lower != 'dropdown_item' %} - {% set variants = variant|split('__') %} - {% for variant in variants %} - {% set attributes = attributes.addClass('btn-' ~ variant|lower|replace({'_': '-'})) %} - {% endfor %} +{% if variant and variant|lower != 'default' and variant|lower != 'dropdown_item' %} + {% set variants = variant|split('__')|map(v => v|lower|replace({(v): 'btn-' ~ v})|replace({'_': '-'})) %} + {% set attributes = attributes.addClass(variants) %} {% set attributes = attributes.addClass('btn') %} {% endif %} -{% set attributes = variant|lower == 'dropdown_item' ? attributes.addClass('dropdown-item') : attributes %} +{% set attributes = (variant|lower == 'dropdown_item') ? attributes.addClass('dropdown-item') : attributes %} {% if label_visually_hidden %} {% set label %} diff --git a/templates/patterns/button_group/pattern-button-group.html.twig b/templates/patterns/button_group/pattern-button-group.html.twig index 3034edf6..d88c731f 100644 --- a/templates/patterns/button_group/pattern-button-group.html.twig +++ b/templates/patterns/button_group/pattern-button-group.html.twig @@ -1,8 +1,8 @@ -{% if variant != '' and variant|lower != 'default' %} +{% if variant and variant|lower != 'default' %} {% set attributes = attributes.addClass('btn-group-' ~ variant|lower|replace({'_': '-'})) %} {% endif %} -{% if variant != '' and variant|lower != 'vertical' %} +{% if variant and variant|lower != 'vertical' %} {% set attributes = attributes.addClass('btn-group') %} {% endif %} diff --git a/templates/patterns/carousel/pattern-carousel.html.twig b/templates/patterns/carousel/pattern-carousel.html.twig index 79e2e6d6..9ef0a99e 100644 --- a/templates/patterns/carousel/pattern-carousel.html.twig +++ b/templates/patterns/carousel/pattern-carousel.html.twig @@ -1,8 +1,6 @@ -{% if variant != '' and variant|lower != 'default' %} - {% set variants = variant|split('__') %} - {% for variant in variants %} - {% set attributes = attributes.addClass('carousel-' ~ variant|lower|replace({'_': '-'})) %} - {% endfor %} +{% if variant and variant|lower != 'default' %} + {% set variants = variant|split('__')|map(v => v|lower|replace({(v): 'carousel-' ~ v})|replace({'_': '-'})) %} + {% set attributes = attributes.addClass(variants) %} {% endif %} {% if not with_touch %} diff --git a/templates/patterns/dropdown/pattern-dropdown.html.twig b/templates/patterns/dropdown/pattern-dropdown.html.twig index 52d964a1..e6cb3473 100644 --- a/templates/patterns/dropdown/pattern-dropdown.html.twig +++ b/templates/patterns/dropdown/pattern-dropdown.html.twig @@ -1,8 +1,6 @@ -{% if variant != '' and variant|lower != 'default' %} - {% set variants = variant|split('__') %} - {% for variant in variants %} - {% set attributes = attributes.addClass(variant|lower|replace({'_': '-'})) %} - {% endfor %} +{% if variant and variant|lower != 'default' %} + {% set variants = variant|split('__')|map(v => v|lower|replace({'_': '-'})) %} + {% set attributes = attributes.addClass(variants) %} {% endif %} {% set button_type = button_type|default('button') %} diff --git a/templates/patterns/dropdown_item/pattern-dropdown-item.html.twig b/templates/patterns/dropdown_item/pattern-dropdown-item.html.twig index 213fa4d5..9e87fc98 100644 --- a/templates/patterns/dropdown_item/pattern-dropdown-item.html.twig +++ b/templates/patterns/dropdown_item/pattern-dropdown-item.html.twig @@ -1,8 +1,5 @@ -{% if variant != '' and variant|lower != 'default' %} - {% set variants = variant|split('__') %} - {% for variant in variants %} - {% set attributes = attributes.addClass(variant|lower|replace({'_': '-'})) %} - {% endfor %} +{% if variant and variant|lower != 'default' %} + {% set attributes = attributes.addClass(variant|lower|replace({'_': '-'})) %} {% endif %} {% if variant|lower == 'dropdown_divider' %} diff --git a/templates/patterns/list/pattern-list.html.twig b/templates/patterns/list/pattern-list.html.twig index 2c923755..f6de36cf 100644 --- a/templates/patterns/list/pattern-list.html.twig +++ b/templates/patterns/list/pattern-list.html.twig @@ -1,4 +1,4 @@ -{% if variant != '' and variant|lower != 'default' %} +{% if variant and variant|lower != 'default' %} {% set attributes = attributes.addClass('list-' ~ variant|lower|replace({'_': '-'})) %} {% endif %} diff --git a/templates/patterns/list_group/pattern-list-group.html.twig b/templates/patterns/list_group/pattern-list-group.html.twig index 96a189e9..d248b00c 100644 --- a/templates/patterns/list_group/pattern-list-group.html.twig +++ b/templates/patterns/list_group/pattern-list-group.html.twig @@ -1,4 +1,4 @@ -{% if variant != '' and variant|lower != 'default' %} +{% if variant and variant|lower != 'default' %} {% set attributes = attributes.addClass('list-group-' ~ variant|lower|replace({'_': '-'})) %} {% endif %} diff --git a/templates/patterns/list_group_item/pattern-list-group-item.html.twig b/templates/patterns/list_group_item/pattern-list-group-item.html.twig index 866828e0..aa6a02d8 100644 --- a/templates/patterns/list_group_item/pattern-list-group-item.html.twig +++ b/templates/patterns/list_group_item/pattern-list-group-item.html.twig @@ -1,8 +1,5 @@ -{% if variant != '' and variant|lower != 'default' %} - {% set variants = variant|split('__') %} - {% for variant in variants %} - {% set attributes = attributes.addClass('list-group-item-' ~ variant|lower|replace({'_': '-'})) %} - {% endfor %} +{% if variant and variant|lower != 'default' %} + {% set attributes = attributes.addClass('list-group-item-' ~ variant|lower|replace({'_': '-'})) %} {% endif %} {% set attributes = attributes.addClass('list-group-item') %} diff --git a/templates/patterns/nav/pattern-nav.html.twig b/templates/patterns/nav/pattern-nav.html.twig index 27d90388..9a6eee59 100644 --- a/templates/patterns/nav/pattern-nav.html.twig +++ b/templates/patterns/nav/pattern-nav.html.twig @@ -1,8 +1,6 @@ -{% if variant != '' and variant|lower != 'default' %} - {% set variants = variant|split('__') %} - {% for variant in variants %} - {% set attributes = attributes.addClass('nav-' ~ variant|lower|replace({'_': '-'})) %} - {% endfor %} +{% if variant and variant|lower != 'default' %} + {% set variants = variant|split('__')|map(v => v|lower|replace({(v): 'nav-' ~ v})|replace({'_': '-'})) %} + {% set attributes = attributes.addClass(variants) %} {% endif %} {% set nav_type = nav_type|default('ul') %} diff --git a/templates/patterns/navbar/pattern-navbar.html.twig b/templates/patterns/navbar/pattern-navbar.html.twig index fedb27aa..f8bc667a 100644 --- a/templates/patterns/navbar/pattern-navbar.html.twig +++ b/templates/patterns/navbar/pattern-navbar.html.twig @@ -1,9 +1,8 @@ -{% if variant != '' and variant|lower != 'default' %} - {% set variants = variant|split('__') %} - {% for variant in variants %} - {% set attributes = attributes.addClass('navbar-' ~ variant|lower|replace({'_': '-'})) %} - {% endfor %} +{% if variant and variant|lower != 'default' %} + {% set variants = variant|split('__')|map(v => v|lower|replace({(v): 'navbar-' ~ v})|replace({'_': '-'})) %} + {% set attributes = attributes.addClass(variants) %} {% endif %} + {% set attributes = attributes.addClass('navbar') %} {% set placement = placement|default('default') %} diff --git a/templates/patterns/navbar_nav/pattern-navbar-nav.html.twig b/templates/patterns/navbar_nav/pattern-navbar-nav.html.twig index 40d48f0b..4c575938 100644 --- a/templates/patterns/navbar_nav/pattern-navbar-nav.html.twig +++ b/templates/patterns/navbar_nav/pattern-navbar-nav.html.twig @@ -1,9 +1,7 @@ -{% if variant != '' and variant|lower != 'default' %} - {% set variants = variant|split('__') %} - {% for variant in variants %} - {% set attributes = attributes.addClass('navbar-nav-' ~ variant|lower|replace({'_': '-'})) %} - {% endfor %} +{% if variant and variant|lower != 'default' %} + {% set attributes = attributes.addClass('navbar-nav-' ~ variant|lower|replace({'_': '-'})) %} {% endif %} + {% set attributes = attributes.addClass('navbar-nav') %} {% set dark = dark|default(false) %} diff --git a/templates/patterns/pagination/pattern-pagination.html.twig b/templates/patterns/pagination/pattern-pagination.html.twig index 6da16997..790b8da8 100644 --- a/templates/patterns/pagination/pattern-pagination.html.twig +++ b/templates/patterns/pagination/pattern-pagination.html.twig @@ -1,4 +1,4 @@ -{% if variant != '' and variant|lower != 'default' %} +{% if variant and variant|lower != 'default' %} {% set attributes = attributes.addClass('pagination-' ~ variant|lower|replace({'_': '-'})) %} {% endif %} @@ -49,7 +49,7 @@ {% set attributes = attributes ?: create_attribute() %} {% set attributes = aria_label ? attributes.setAttribute('aria-label', aria_label) : attributes %} <a{{ attributes.addClass('page-link').setAttribute('href', href) }}> - {% if aria_label is not empty %} + {% if aria_label %} <span aria-hidden="true">{{ text }}</span> {% else %} {{ text }} diff --git a/templates/patterns/progress/pattern-progress.html.twig b/templates/patterns/progress/pattern-progress.html.twig index 9429babd..b7bc09f6 100644 --- a/templates/patterns/progress/pattern-progress.html.twig +++ b/templates/patterns/progress/pattern-progress.html.twig @@ -1,8 +1,6 @@ -{% if variant != '' and variant|lower != 'default' %} - {% set variants = variant|split('__') %} - {% for variant in variants %} - {% set attributes = attributes.addClass('progress-bar-' ~ variant|lower|replace({'_': '-'})) %} - {% endfor %} +{% if variant and variant|lower != 'default' %} + {% set variants = variant|split('__')|map(v => v|lower|replace({(v): 'progress-bar-' ~ v})|replace({'_': '-'})) %} + {% set attributes = attributes.addClass(variants) %} {% endif %} {% set wrapper_attributes = create_attribute() %} diff --git a/templates/patterns/table/pattern-table.html.twig b/templates/patterns/table/pattern-table.html.twig index 88de5219..66cf21bb 100644 --- a/templates/patterns/table/pattern-table.html.twig +++ b/templates/patterns/table/pattern-table.html.twig @@ -4,11 +4,9 @@ {% set tfoot_attributes = create_attribute() %} {% set attributes = attributes.addClass('table') %} -{% if variant != '' and variant|lower != 'default' %} - {% set variants = variant|split('__') %} - {% for variant in variants %} - {% set attributes = attributes.addClass('table-' ~ variant|lower|replace({'_': '-'})) %} - {% endfor %} +{% if variant and variant|lower != 'default' %} + {% set variants = variant|split('__')|map(v => v|lower|replace({(v): 'table-' ~ v})|replace({'_': '-'})) %} + {% set attributes = attributes.addClass(variants) %} {% endif %} {% if stripes %} @@ -44,7 +42,7 @@ * be applied to the correct table group. */ #} -{% if divider is not empty %} +{% if divider %} {% if 'thead' in divider %} {% set thead_attributes = thead_attributes.addClass('table-group-divider') %} {% endif %} -- GitLab