@openeuropa/bcl-theme-default 1.10.7 → 1.10.9
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/css/color-scheme.min.css +1 -1
- package/css/color-scheme.min.css.map +1 -1
- package/css/oe-bcl-ckeditor5.min.css +1 -1
- package/css/oe-bcl-ckeditor5.min.css.map +1 -1
- package/css/oe-bcl-default.css +315 -174
- package/css/oe-bcl-default.css.map +1 -1
- package/css/oe-bcl-default.min.css +1 -1
- package/css/oe-bcl-default.min.css.map +1 -1
- package/icons/bcl-default-icons.svg +1 -1
- package/icons/bootstrap-icons.svg +1 -1
- package/js/oe-bcl-default.bundle.js +86 -14
- package/js/oe-bcl-default.bundle.js.map +1 -1
- package/js/oe-bcl-default.bundle.min.js +1 -1
- package/js/oe-bcl-default.bundle.min.js.map +1 -1
- package/js/oe-bcl-default.esm.js +85 -14
- package/js/oe-bcl-default.esm.js.map +1 -1
- package/js/oe-bcl-default.esm.min.js +1 -1
- package/js/oe-bcl-default.esm.min.js.map +1 -1
- package/js/oe-bcl-default.umd.js +86 -14
- package/js/oe-bcl-default.umd.js.map +1 -1
- package/js/oe-bcl-default.umd.min.js +1 -1
- package/js/oe-bcl-default.umd.min.js.map +1 -1
- package/package.json +7 -7
- package/src/icons/icons.js +2 -0
- package/src/js/accordion-toggle/accordion-toggle.js +24 -9
- package/src/js/header/header.js +91 -0
- package/src/js/index.esm.js +2 -0
- package/src/js/index.umd.js +2 -0
- package/src/scss/_header.scss +27 -82
- package/src/scss/_input.scss +72 -31
- package/src/scss/_mega-menu.scss +50 -61
- package/src/scss/_multiselect-2.scss +33 -11
- package/src/scss/_pagination-v2.scss +86 -0
- package/src/scss/_pagination.scss +1 -0
- package/src/scss/_search-form.scss +4 -0
- package/src/scss/base/_mixins.scss +21 -0
- package/src/scss/base/_utilities.scss +8 -0
- package/src/scss/base/_variables.scss +3 -0
- package/src/scss/oe-bcl-default.scss +1 -0
- package/templates/bcl-base-templates/listing-page.html.twig +17 -19
- package/templates/bcl-contact-form/contact-form.html.twig +3 -3
- package/templates/bcl-content-banner/content-banner.html.twig +3 -0
- package/templates/bcl-dropdown/dropdown.html.twig +12 -7
- package/templates/bcl-event/event.html.twig +5 -5
- package/templates/bcl-file/file.html.twig +1 -1
- package/templates/bcl-glossary/glossary-detail.html.twig +4 -5
- package/templates/bcl-glossary/glossary-listing.html.twig +5 -5
- package/templates/bcl-group/group-landing.html.twig +5 -5
- package/templates/bcl-group/group.html.twig +3 -3
- package/templates/bcl-header/header.html.twig +43 -50
- package/templates/bcl-landing-page/landing-page.html.twig +5 -8
- package/templates/bcl-language-list/language-list-modal.html.twig +58 -5
- package/templates/bcl-links-block/links-block.html.twig +1 -1
- package/templates/bcl-mega-menu/mega-menu-submenu.html.twig +10 -7
- package/templates/bcl-modal/modal.html.twig +20 -7
- package/templates/bcl-navigation/navigation.html.twig +8 -0
- package/templates/bcl-page/page.html.twig +5 -5
- package/templates/bcl-pagination-v2/pagination-item.html.twig +90 -0
- package/templates/bcl-pagination-v2/pagination.html.twig +213 -0
- package/templates/bcl-person/person.html.twig +5 -5
- package/templates/bcl-project/project.html.twig +7 -7
- package/templates/bcl-project-status/project-contributions.html.twig +1 -1
- package/templates/bcl-search/search.html.twig +3 -3
- package/templates/bcl-subscription/subscription.html.twig +5 -5
- package/templates/{bcl-toast → bcl-toasts}/toasts.html.twig +17 -8
- package/templates/bcl-user/user-terms.html.twig +3 -3
- package/templates/bcl-user/user.html.twig +3 -3
|
@@ -17,6 +17,8 @@
|
|
|
17
17
|
- language_modal (object) (default: {})
|
|
18
18
|
- light (boolean) (default: false)
|
|
19
19
|
- modals (modal[]) (default: [])
|
|
20
|
+
- toggler_attributes (drupal attrs)
|
|
21
|
+
- icon_path (string) (default: '')
|
|
20
22
|
- attributes (drupal attrs)
|
|
21
23
|
#}
|
|
22
24
|
|
|
@@ -30,6 +32,8 @@
|
|
|
30
32
|
{% set _breadcrumbs = breadcrumbs|default({}) %}
|
|
31
33
|
{% set _language_modal = language_modal|default({}) %}
|
|
32
34
|
{% set _light = light ?? false %}
|
|
35
|
+
{% set _toggler_attributes = toggler_attributes ?: create_attribute() %}
|
|
36
|
+
{% set _icon_path = icon_path|default('') %}
|
|
33
37
|
{% set _modals = modals|default([]) %}
|
|
34
38
|
|
|
35
39
|
{% set _site_name_classes = 'bcl-header__site-name' %}
|
|
@@ -38,7 +42,7 @@
|
|
|
38
42
|
{% set attributes = create_attribute() %}
|
|
39
43
|
{% endif %}
|
|
40
44
|
|
|
41
|
-
{% set attributes = attributes.addClass(['bcl-header', 'bcl-header--' ~ _variant]) %}
|
|
45
|
+
{% set attributes = attributes.addClass(['bcl-header', 'bcl-header--' ~ _variant, 'shadow-sm']) %}
|
|
42
46
|
|
|
43
47
|
{% if site_name_classes is not empty %}
|
|
44
48
|
{% set _site_name_classes = _site_name_classes ~ ' ' ~ site_name_classes %}
|
|
@@ -49,6 +53,33 @@
|
|
|
49
53
|
{% set _project_classes = _project_classes ~ ' light' %}
|
|
50
54
|
{% endif %}
|
|
51
55
|
|
|
56
|
+
{% set toggler_attributes = _toggler_attributes.addClass(['bcl-navbar-toggler', 'd-lg-none'])
|
|
57
|
+
.setAttribute('type', 'button')
|
|
58
|
+
.setAttribute('data-bs-toggle', 'collapse')
|
|
59
|
+
.setAttribute('data-bs-target', '#' ~ navbar_id)
|
|
60
|
+
.setAttribute('aria-controls', navbar_id)
|
|
61
|
+
.setAttribute('aria-expanded', 'false')
|
|
62
|
+
%}
|
|
63
|
+
|
|
64
|
+
{% set navbar_toggle_button %}
|
|
65
|
+
<button
|
|
66
|
+
{{ toggler_attributes }}
|
|
67
|
+
>
|
|
68
|
+
{% include '@oe-bcl/bcl-icon/icon.html.twig' with {
|
|
69
|
+
name: 'list',
|
|
70
|
+
size: 'fluid',
|
|
71
|
+
path: _icon_path,
|
|
72
|
+
attributes: create_attribute().addClass(['default-icon']),
|
|
73
|
+
} only %}
|
|
74
|
+
{% include '@oe-bcl/bcl-icon/icon.html.twig' with {
|
|
75
|
+
name: 'x',
|
|
76
|
+
size: 'fluid',
|
|
77
|
+
path: _icon_path,
|
|
78
|
+
attributes: create_attribute().addClass(['active-icon']),
|
|
79
|
+
} only %}
|
|
80
|
+
</button>
|
|
81
|
+
{% endset %}
|
|
82
|
+
|
|
52
83
|
<header
|
|
53
84
|
{{ attributes }}
|
|
54
85
|
>
|
|
@@ -70,54 +101,16 @@
|
|
|
70
101
|
{% endfor %}
|
|
71
102
|
</a>
|
|
72
103
|
{% endif %}
|
|
73
|
-
|
|
74
|
-
class="navbar-toggler bcl-navbar-toggler"
|
|
75
|
-
type="button"
|
|
76
|
-
data-bs-toggle="collapse"
|
|
77
|
-
data-bs-target='#{{ _navbar_id }}'
|
|
78
|
-
aria-controls='{{ _navbar_id }}'
|
|
79
|
-
aria-expanded="false"
|
|
80
|
-
aria-label="Toggle navigation"
|
|
81
|
-
>
|
|
82
|
-
<span class="navbar-toggler-icon"></span>
|
|
83
|
-
</button>
|
|
104
|
+
{{ navbar_toggle_button }}
|
|
84
105
|
</div>
|
|
85
106
|
</nav>
|
|
86
107
|
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
{% if _project_logo is not empty or _site_name is not empty %}
|
|
90
|
-
<div class="{{ _project_classes }}">
|
|
108
|
+
<!-- site name -->
|
|
109
|
+
<div class="bcl-header__site-name" id="site-name-heading">
|
|
91
110
|
<div class="container">
|
|
92
|
-
|
|
93
|
-
<a
|
|
94
|
-
href="{{ _project_link }}"
|
|
95
|
-
>
|
|
96
|
-
{% endif %}
|
|
97
|
-
{% if _project_logo is not empty %}
|
|
98
|
-
<img
|
|
99
|
-
{% if _project_logo.path is not empty %}
|
|
100
|
-
src="{{ _project_logo.path }}"
|
|
101
|
-
{% endif %}
|
|
102
|
-
{% if _project_logo.alt is not empty %}
|
|
103
|
-
alt="{{ _project_logo.alt }}"
|
|
104
|
-
{% endif %}
|
|
105
|
-
{% if _project_logo.classes is not empty %}
|
|
106
|
-
class="{{ _project_logo.classes }}"
|
|
107
|
-
{% endif %}
|
|
108
|
-
/>
|
|
109
|
-
{% endif %}
|
|
110
|
-
{% if _site_name is not empty %}
|
|
111
|
-
<span class="{{ _site_name_classes }}">
|
|
112
|
-
{{- _site_name -}}
|
|
113
|
-
</span>
|
|
114
|
-
{% endif %}
|
|
115
|
-
{% if _project_link is not empty %}
|
|
116
|
-
</a>
|
|
117
|
-
{% endif %}
|
|
111
|
+
<span class="h5 py-3-5 border-top-subtle mb-0 d-block">{{ _site_name }}</span>
|
|
118
112
|
</div>
|
|
119
113
|
</div>
|
|
120
|
-
{% endif %}
|
|
121
114
|
|
|
122
115
|
<!-- navbar -->
|
|
123
116
|
{% if _navbar is not empty %}
|
|
@@ -126,15 +119,15 @@
|
|
|
126
119
|
attributes: create_attribute().addClass('bcl-header__navbar collapse navbar-collapse').setAttribute('id', _navbar_id).setAttribute('aria-label', 'Main Navigation'),
|
|
127
120
|
}) only %}
|
|
128
121
|
{% endif %}
|
|
129
|
-
|
|
130
|
-
<!-- breadcrumbs -->
|
|
131
|
-
{% if _breadcrumbs is not empty %}
|
|
132
|
-
<div class="container">
|
|
133
|
-
{% include '@oe-bcl/bcl-breadcrumb/breadcrumb.html.twig' with _breadcrumbs only %}
|
|
134
|
-
</div>
|
|
135
|
-
{% endif %}
|
|
136
122
|
</header>
|
|
137
123
|
|
|
124
|
+
<!-- breadcrumbs -->
|
|
125
|
+
{% if _breadcrumbs is not empty %}
|
|
126
|
+
<div class="container">
|
|
127
|
+
{% include '@oe-bcl/bcl-breadcrumb/breadcrumb.html.twig' with _breadcrumbs only %}
|
|
128
|
+
</div>
|
|
129
|
+
{% endif %}
|
|
130
|
+
|
|
138
131
|
{% for modal in _modals %}
|
|
139
132
|
{% include '@oe-bcl/bcl-modal/modal.html.twig' with modal only %}
|
|
140
133
|
{% endfor %}
|
|
@@ -1,13 +1,11 @@
|
|
|
1
|
-
{% extends "@oe-bcl/bcl-base-templates/content-type.html.twig"
|
|
1
|
+
{% extends "@oe-bcl/bcl-base-templates/content-type.html.twig" -%}
|
|
2
2
|
|
|
3
|
-
{
|
|
3
|
+
{%- block banner %}
|
|
4
4
|
{% if banner is defined %}
|
|
5
5
|
{% include '@oe-bcl/bcl-banner/banner.html.twig' with banner only %}
|
|
6
6
|
{% endif %}
|
|
7
|
-
{
|
|
8
|
-
|
|
9
|
-
{% block content %}
|
|
10
|
-
|
|
7
|
+
{%- endblock -%}
|
|
8
|
+
{%- block content %}
|
|
11
9
|
<div class="container">
|
|
12
10
|
{% if featured_section is defined %}
|
|
13
11
|
<div class="my-4">
|
|
@@ -55,5 +53,4 @@
|
|
|
55
53
|
</div>
|
|
56
54
|
{% endif %}
|
|
57
55
|
</div>
|
|
58
|
-
|
|
59
|
-
{% endblock %}
|
|
56
|
+
{%- endblock -%}
|
|
@@ -19,7 +19,7 @@
|
|
|
19
19
|
{% block header %}
|
|
20
20
|
{% if size == 'fullscreen' %}
|
|
21
21
|
<div class="container">
|
|
22
|
-
{% if
|
|
22
|
+
{% if _variant == 'eu' or _variant == 'ec' %}
|
|
23
23
|
<div class="border-bottom mx-n3 px-3 px-md-0 pt-md-4-5">
|
|
24
24
|
<div class="py-3-5 px-3 px-sm-0 px-md-3">
|
|
25
25
|
{% endif %}
|
|
@@ -43,7 +43,7 @@
|
|
|
43
43
|
></button>
|
|
44
44
|
{% if size == 'fullscreen' %}
|
|
45
45
|
</div>
|
|
46
|
-
{% if
|
|
46
|
+
{% if _variant == 'eu' or _variant == 'ec' %}
|
|
47
47
|
</div>
|
|
48
48
|
</div>
|
|
49
49
|
{% endif %}
|
|
@@ -52,7 +52,60 @@
|
|
|
52
52
|
{% endblock %}
|
|
53
53
|
|
|
54
54
|
{% block body %}
|
|
55
|
-
{%
|
|
56
|
-
|
|
57
|
-
|
|
55
|
+
{% set attributes = create_attribute().addClass(['bcl-language-list', 'bcl-language-list--' ~ _variant]) %}
|
|
56
|
+
<div
|
|
57
|
+
{{ attributes }}
|
|
58
|
+
>
|
|
59
|
+
{% if _logo is not empty %}
|
|
60
|
+
<div class="container">
|
|
61
|
+
{% if _title is empty %}
|
|
62
|
+
<div class="text-center">
|
|
63
|
+
{% endif %}
|
|
64
|
+
<div class="d-inline-flex align-items-center">
|
|
65
|
+
<img
|
|
66
|
+
{% if _logo.path is not empty %}
|
|
67
|
+
src="{{ _logo.path }}"
|
|
68
|
+
{% endif %}
|
|
69
|
+
{% if _logo.alt is not empty %}
|
|
70
|
+
alt="{{ _logo.alt }}"
|
|
71
|
+
{% endif %}
|
|
72
|
+
{% if _logo.class is not empty %}
|
|
73
|
+
class="{{ _logo.class }}"
|
|
74
|
+
{% endif %}
|
|
75
|
+
/>
|
|
76
|
+
{% if _title is not empty %}
|
|
77
|
+
<h5 class="h5 ms-4">{{ _title }}</h5>
|
|
78
|
+
{% endif %}
|
|
79
|
+
</div>
|
|
80
|
+
{% if _title is empty %}
|
|
81
|
+
</div>
|
|
82
|
+
{% endif %}
|
|
83
|
+
</div>
|
|
84
|
+
{% endif %}
|
|
85
|
+
|
|
86
|
+
{% if _items is not empty or _non_eu_items is not empty %}
|
|
87
|
+
<div class="main pt-4">
|
|
88
|
+
{% if not (_variant == 'neutral' and _inside_container) %}
|
|
89
|
+
<div class="container">
|
|
90
|
+
{% endif %}
|
|
91
|
+
{% if _items is not empty and _items is iterable %}
|
|
92
|
+
{% include '@oe-bcl/bcl-language-list/language-list-grid.html.twig' with {
|
|
93
|
+
items: _items,
|
|
94
|
+
icon_path: _icon_path,
|
|
95
|
+
category: eu_category,
|
|
96
|
+
} only %}
|
|
97
|
+
{% endif %}
|
|
98
|
+
{% if _non_eu_items is not empty and _non_eu_items is iterable %}
|
|
99
|
+
{% include '@oe-bcl/bcl-language-list/language-list-grid.html.twig' with {
|
|
100
|
+
items: _non_eu_items,
|
|
101
|
+
icon_path: _icon_path,
|
|
102
|
+
category: non_eu_category,
|
|
103
|
+
} only %}
|
|
104
|
+
{% endif %}
|
|
105
|
+
{% if not (_variant == 'neutral' and _inside_container) %}
|
|
106
|
+
</div>
|
|
107
|
+
{% endif %}
|
|
108
|
+
</div>
|
|
109
|
+
{% endif %}
|
|
110
|
+
</div>
|
|
58
111
|
{% endblock %}
|
|
@@ -56,7 +56,7 @@
|
|
|
56
56
|
{% endif %}
|
|
57
57
|
{% set _link = _link|merge({
|
|
58
58
|
clean_class: true,
|
|
59
|
-
attributes: _link.attributes.addClass(['
|
|
59
|
+
attributes: _link.attributes.addClass(['mb-3', 'd-inline-block', 'standalone'])
|
|
60
60
|
}) %}
|
|
61
61
|
{% set _list_item_classes = 'list-unstyled' %}
|
|
62
62
|
{% if _variant == 'horizontal' %}
|
|
@@ -21,30 +21,28 @@
|
|
|
21
21
|
}) %}
|
|
22
22
|
{% include '@oe-bcl/bcl-button/button.html.twig' with _trigger only %}
|
|
23
23
|
|
|
24
|
-
{
|
|
24
|
+
{% set _see_all_link = null %}
|
|
25
|
+
{# Prepare an optional "See all" link rendered outside the list. #}
|
|
25
26
|
{% if _see_all is not empty %}
|
|
26
|
-
{# Wrap the label for an ellipsis. #}
|
|
27
27
|
{% set _see_all_label %}
|
|
28
28
|
<span>{{- _see_all.label -}}</span>
|
|
29
29
|
{% endset %}
|
|
30
30
|
{% set _see_all_attr = (_see_all.attributes is defined ? _see_all.attributes : create_attribute()) %}
|
|
31
|
-
{% set
|
|
31
|
+
{% set _see_all_link = _see_all|merge({
|
|
32
32
|
label: _see_all_label,
|
|
33
33
|
icon: {
|
|
34
|
+
size: 'xs',
|
|
34
35
|
name: 'arrow-right',
|
|
35
36
|
path: _icon_path,
|
|
36
37
|
},
|
|
37
|
-
li_attributes: create_attribute()
|
|
38
|
-
.addClass('__see_all'),
|
|
39
38
|
attributes: _see_all_attr
|
|
40
39
|
.addClass(['see-all-button'])
|
|
41
40
|
.setAttribute('aria-label', 'See all items in ‘' ~ _trigger.label ~ '’')
|
|
42
41
|
}) %}
|
|
43
|
-
{% set _items = _items|merge([_see_all]) %}
|
|
44
42
|
{% endif %}
|
|
45
43
|
{% set submenu_attributes = create_attribute()
|
|
46
44
|
.setAttribute('id', _panel_id)
|
|
47
|
-
.setAttribute('hidden',
|
|
45
|
+
.setAttribute('hidden', true)
|
|
48
46
|
.setAttribute('role', 'group')
|
|
49
47
|
.setAttribute('aria-labelledby', _trigger_id)
|
|
50
48
|
.addClass('bcl-mega-menu__submenu', '__level-' ~ _level)
|
|
@@ -60,6 +58,11 @@
|
|
|
60
58
|
icon_path: _icon_path,
|
|
61
59
|
level: _level,
|
|
62
60
|
} only %}
|
|
61
|
+
{% if _see_all_link %}
|
|
62
|
+
<div class="__see_all">
|
|
63
|
+
{% include '@oe-bcl/bcl-link/link.html.twig' with _see_all_link only %}
|
|
64
|
+
</div>
|
|
65
|
+
{% endif %}
|
|
63
66
|
</div>
|
|
64
67
|
|
|
65
68
|
{% endapply %}
|
|
@@ -7,14 +7,18 @@
|
|
|
7
7
|
- fullscreen_responsive (string) (default: '')
|
|
8
8
|
options: sm, md, lg, xl, xxl
|
|
9
9
|
- static_backdrop (boolean) (default: false)
|
|
10
|
-
-
|
|
10
|
+
- vertically_centered (boolean) (default: false)
|
|
11
|
+
- verticaly_centered (boolean) (default: false) // deprecated typo
|
|
11
12
|
- scrollable (boolean) (default: false)
|
|
12
13
|
- header (block) (default: '')
|
|
13
14
|
- messages (block) (default: '')
|
|
14
15
|
- body (block) (default: '')
|
|
15
16
|
- footer (block) (default: '')
|
|
16
17
|
- attributes (drupal attrs)
|
|
17
|
-
|
|
18
|
+
- header_attributes (drupal attrs)
|
|
19
|
+
- body_attributes (drupal attrs)
|
|
20
|
+
- footer_attributes (drupal attrs)
|
|
21
|
+
|
|
18
22
|
Blocks
|
|
19
23
|
- header
|
|
20
24
|
- messages
|
|
@@ -26,12 +30,15 @@
|
|
|
26
30
|
{% set _id = id|default('modal-' ~ random(10000)) %}
|
|
27
31
|
{% set _fullscreen_responsive = fullscreen_responsive|default('') %}
|
|
28
32
|
{% set _static_backdrop = static_backdrop ?? false %}
|
|
29
|
-
{% set
|
|
33
|
+
{% set _vertically_centered = vertically_centered ?? verticaly_centered ?? false %}
|
|
30
34
|
{% set _scrollable = scrollable ?? false %}
|
|
31
35
|
{% set _header = header|default('') %}
|
|
36
|
+
{% set _header_attributes = header_attributes ?: create_attribute() %}
|
|
32
37
|
{% set _messages = messages|default('') %}
|
|
33
38
|
{% set _body = body|default('') %}
|
|
39
|
+
{% set _body_attributes = body_attributes ?: create_attribute() %}
|
|
34
40
|
{% set _footer = footer|default('') %}
|
|
41
|
+
{% set _footer_attributes = footer_attributes ?: create_attribute() %}
|
|
35
42
|
|
|
36
43
|
{% set _classes = ['modal', 'fade'] %}
|
|
37
44
|
|
|
@@ -57,21 +64,27 @@
|
|
|
57
64
|
<div class="modal-dialog
|
|
58
65
|
{{- _size ? ' modal-' ~ size -}}
|
|
59
66
|
{{- _fullscreen_responsive ? ' modal-fullscreen-' ~ _fullscreen_responsive ~ '-down' -}}
|
|
60
|
-
{{-
|
|
67
|
+
{{- _vertically_centered ? ' modal-dialog-centered' -}}
|
|
61
68
|
{{- _scrollable ? ' modal-dialog-scrollable' -}}"
|
|
62
69
|
>
|
|
63
70
|
<div class="modal-content">
|
|
64
71
|
{% if header is not empty %}
|
|
65
|
-
<div
|
|
72
|
+
<div
|
|
73
|
+
{{- _header_attributes.addClass(['modal-header']) -}}
|
|
74
|
+
>
|
|
66
75
|
{%- block header _header -%}
|
|
67
76
|
</div>
|
|
68
77
|
{% endif %}
|
|
69
78
|
{%- block messages _messages -%}
|
|
70
|
-
<div
|
|
79
|
+
<div
|
|
80
|
+
{{- _body_attributes.addClass(['modal-body']) -}}
|
|
81
|
+
>
|
|
71
82
|
{%- block body _body -%}
|
|
72
83
|
</div>
|
|
73
84
|
{% if footer is not empty %}
|
|
74
|
-
<div
|
|
85
|
+
<div
|
|
86
|
+
{{- _footer_attributes.addClass(['modal-footer']) -}}
|
|
87
|
+
>
|
|
75
88
|
{%- block footer _footer -%}
|
|
76
89
|
</div>
|
|
77
90
|
{% endif %}
|
|
@@ -121,6 +121,14 @@
|
|
|
121
121
|
%}
|
|
122
122
|
{% endif %}
|
|
123
123
|
{% if _item.dropdown is defined %}
|
|
124
|
+
{% if _tabs %}
|
|
125
|
+
{% set _item = _item|merge({
|
|
126
|
+
inside_navigation: true,
|
|
127
|
+
trigger: _item.trigger|merge({
|
|
128
|
+
attributes: _item.trigger.attributes.setAttribute("role", "tab"),
|
|
129
|
+
}),
|
|
130
|
+
}) %}
|
|
131
|
+
{% endif %}
|
|
124
132
|
{% include '@oe-bcl/bcl-dropdown/dropdown.html.twig' with _item only %}
|
|
125
133
|
{% elseif _item.button is defined %}
|
|
126
134
|
{% include '@oe-bcl/bcl-button/button.html.twig' with _item only %}
|
|
@@ -1,10 +1,10 @@
|
|
|
1
|
-
{% extends '@oe-bcl/bcl-base-templates/content-type.html.twig'
|
|
1
|
+
{% extends '@oe-bcl/bcl-base-templates/content-type.html.twig' -%}
|
|
2
2
|
|
|
3
|
-
{
|
|
3
|
+
{%- block sidebar %}
|
|
4
4
|
{% include '@oe-bcl/bcl-inpage-navigation/inpage-navigation.html.twig' with sidebar only %}
|
|
5
|
-
{
|
|
5
|
+
{%- endblock -%}
|
|
6
6
|
|
|
7
|
-
{
|
|
7
|
+
{%- block content %}
|
|
8
8
|
<p id="content">{{ get_dummy_text(6) }}
|
|
9
9
|
</p>
|
|
10
10
|
<h2 id="item-1" class="my-4">Section 1</h2>
|
|
@@ -42,4 +42,4 @@
|
|
|
42
42
|
|
|
43
43
|
{% include '@oe-bcl/bcl-file/file.html.twig' with files[0] only %}
|
|
44
44
|
{% include '@oe-bcl/bcl-file/file.html.twig' with files[1] only %}
|
|
45
|
-
{
|
|
45
|
+
{%- endblock -%}
|
|
@@ -0,0 +1,90 @@
|
|
|
1
|
+
{% apply spaceless %}
|
|
2
|
+
|
|
3
|
+
{# Parameters:
|
|
4
|
+
- path (string) (default: '')
|
|
5
|
+
- label (string) (default: '')
|
|
6
|
+
- disabled (boolean) (default: false)
|
|
7
|
+
- active (boolean) (default: false)
|
|
8
|
+
- icon (icon object) (default: {})
|
|
9
|
+
- attributes (drupal attrs)
|
|
10
|
+
#}
|
|
11
|
+
|
|
12
|
+
{% set _path = path|default('') %}
|
|
13
|
+
{% set _label = label|default('') %}
|
|
14
|
+
{% set _disabled = disabled ?? false %}
|
|
15
|
+
{% set _active = active ?? false %}
|
|
16
|
+
{% set _aria_label = aria_label|default('') %}
|
|
17
|
+
{% set _icon = icon|default({}) %}
|
|
18
|
+
{% set _icon_path = icon_path|default('') %}
|
|
19
|
+
{% set _icon_name = icon_name|default('') %}
|
|
20
|
+
{% set _icon_html = icon_html|default('') %}
|
|
21
|
+
{% set _icon_position = icon_position|default('after') %}
|
|
22
|
+
{% set _current_mobile_label = current_mobile_label|default('') %}
|
|
23
|
+
{% set _classes = ['page-link'] %}
|
|
24
|
+
|
|
25
|
+
{% if _icon_path is not empty and _icon is empty %}
|
|
26
|
+
{% if _icon_name is not empty %}
|
|
27
|
+
{% set _icon = _icon|merge({
|
|
28
|
+
name: _icon_name,
|
|
29
|
+
path: _icon_path,
|
|
30
|
+
size: "fluid"
|
|
31
|
+
}) %}
|
|
32
|
+
{% set _label = "" %}
|
|
33
|
+
{% endif %}
|
|
34
|
+
{% else %}
|
|
35
|
+
{% if _icon_html is not empty %}
|
|
36
|
+
{% set _label %}
|
|
37
|
+
<span aria-hidden="true">{{- _icon_html -}}</span>
|
|
38
|
+
{% endset %}
|
|
39
|
+
{% endif %}
|
|
40
|
+
{% endif %}
|
|
41
|
+
|
|
42
|
+
{% if _icon is not empty %}
|
|
43
|
+
{% set _icon = _icon|merge({
|
|
44
|
+
path: _icon_path,
|
|
45
|
+
}) %}
|
|
46
|
+
{% endif %}
|
|
47
|
+
|
|
48
|
+
{% if attributes is empty %}
|
|
49
|
+
{% set attributes = create_attribute() %}
|
|
50
|
+
{% endif %}
|
|
51
|
+
|
|
52
|
+
{% if _aria_label is not empty %}
|
|
53
|
+
{% set attributes = attributes.setAttribute('aria-label', _aria_label) %}
|
|
54
|
+
{% endif %}
|
|
55
|
+
|
|
56
|
+
{% if _active %}
|
|
57
|
+
{% set attributes = attributes.setAttribute('aria-current', 'page') %}
|
|
58
|
+
{% set attributes = attributes.setAttribute('tabindex', '0') %}
|
|
59
|
+
{% endif %}
|
|
60
|
+
|
|
61
|
+
{% set attributes = attributes.addClass(_classes) %}
|
|
62
|
+
|
|
63
|
+
{% if _path and not _active %}
|
|
64
|
+
{% if _disabled %}
|
|
65
|
+
{% set attributes = attributes.setAttribute('aria-disabled', 'true') %}
|
|
66
|
+
{% endif %}
|
|
67
|
+
{% set attributes = attributes.setAttribute('aria-hidden', 'false') %}
|
|
68
|
+
|
|
69
|
+
{%- include '@oe-bcl/bcl-link/link.html.twig' with {
|
|
70
|
+
label: _label,
|
|
71
|
+
path: _path,
|
|
72
|
+
disabled: _disabled,
|
|
73
|
+
icon: _icon,
|
|
74
|
+
icon_position: _icon_position,
|
|
75
|
+
attributes: attributes,
|
|
76
|
+
} only -%}
|
|
77
|
+
{% else %}
|
|
78
|
+
<div{{ attributes }}>
|
|
79
|
+
{% if _current_mobile_label %}
|
|
80
|
+
<span class="d-none d-md-inline-block">{{- _label -}}</span>
|
|
81
|
+
<span class="d-inline-block d-md-none">{{- _current_mobile_label -}}</span>
|
|
82
|
+
{% else %}
|
|
83
|
+
<span class="d-inline-block">
|
|
84
|
+
{{- _label -}}
|
|
85
|
+
</span>
|
|
86
|
+
{% endif %}
|
|
87
|
+
</div>
|
|
88
|
+
{% endif %}
|
|
89
|
+
|
|
90
|
+
{% endapply %}
|