@openeuropa/bcl-theme-default 0.15.0 → 0.19.0
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/bcl-builder.config.js +14 -0
- package/css/oe-bcl-default.css +552 -327
- 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/icons-flag.svg +1 -0
- package/js/oe-bcl-default.bundle.js +117 -72
- 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.umd.js +117 -72
- 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/js/slimselect.min.js +1 -1
- package/logos/ec/logo-ec--ar.svg +82 -0
- package/logos/ec/logo-ec--bg.svg +233 -0
- package/logos/ec/logo-ec--ca.svg +87 -0
- package/logos/ec/logo-ec--cs.svg +207 -0
- package/logos/ec/logo-ec--da.svg +235 -0
- package/logos/ec/logo-ec--de.svg +243 -0
- package/logos/ec/logo-ec--el.svg +204 -0
- package/logos/ec/logo-ec--en.svg +233 -0
- package/logos/ec/logo-ec--es.svg +210 -0
- package/logos/ec/logo-ec--et.svg +207 -0
- package/logos/ec/logo-ec--fi.svg +219 -0
- package/logos/ec/logo-ec--fr.svg +1 -0
- package/logos/ec/logo-ec--ga.svg +221 -0
- package/logos/ec/logo-ec--hr.svg +216 -0
- package/logos/ec/logo-ec--hu.svg +218 -0
- package/logos/ec/logo-ec--is.svg +105 -0
- package/logos/ec/logo-ec--it.svg +241 -0
- package/logos/ec/logo-ec--lt.svg +203 -0
- package/logos/ec/logo-ec--lv.svg +212 -0
- package/logos/ec/logo-ec--mt.svg +239 -0
- package/logos/ec/logo-ec--mute.svg +52 -0
- package/logos/ec/logo-ec--nl.svg +231 -0
- package/logos/ec/logo-ec--no.svg +89 -0
- package/logos/ec/logo-ec--pl.svg +225 -0
- package/logos/ec/logo-ec--pt.svg +228 -0
- package/logos/ec/logo-ec--ro.svg +225 -0
- package/logos/ec/logo-ec--sk.svg +217 -0
- package/logos/ec/logo-ec--sl.svg +216 -0
- package/logos/ec/logo-ec--sv.svg +254 -0
- package/logos/ec/logo-ec--tr.svg +87 -0
- package/logos/ec/negative/logo-ec--ar.svg +83 -0
- package/logos/ec/negative/logo-ec--bg.svg +59 -0
- package/logos/ec/negative/logo-ec--ca.svg +88 -0
- package/logos/ec/negative/logo-ec--cs.svg +86 -0
- package/logos/ec/negative/logo-ec--da.svg +91 -0
- package/logos/ec/negative/logo-ec--de.svg +93 -0
- package/logos/ec/negative/logo-ec--el.svg +89 -0
- package/logos/ec/negative/logo-ec--en.svg +90 -0
- package/logos/ec/negative/logo-ec--es.svg +87 -0
- package/logos/ec/negative/logo-ec--et.svg +87 -0
- package/logos/ec/negative/logo-ec--fi.svg +88 -0
- package/logos/ec/negative/logo-ec--fr.svg +92 -0
- package/logos/ec/negative/logo-ec--ga.svg +90 -0
- package/logos/ec/negative/logo-ec--hr.svg +88 -0
- package/logos/ec/negative/logo-ec--hu.svg +58 -0
- package/logos/ec/negative/logo-ec--is.svg +105 -0
- package/logos/ec/negative/logo-ec--it.svg +95 -0
- package/logos/ec/negative/logo-ec--lt.svg +87 -0
- package/logos/ec/negative/logo-ec--lv.svg +87 -0
- package/logos/ec/negative/logo-ec--mt.svg +98 -0
- package/logos/ec/negative/logo-ec--nl.svg +89 -0
- package/logos/ec/negative/logo-ec--no.svg +90 -0
- package/logos/ec/negative/logo-ec--pl.svg +89 -0
- package/logos/ec/negative/logo-ec--pt.svg +58 -0
- package/logos/ec/negative/logo-ec--ro.svg +94 -0
- package/logos/ec/negative/logo-ec--sk.svg +87 -0
- package/logos/ec/negative/logo-ec--sl.svg +88 -0
- package/logos/ec/negative/logo-ec--sv.svg +94 -0
- package/logos/ec/negative/logo-ec--tr.svg +87 -0
- package/logos/eu/condensed-version/positive/logo-eu--ar.svg +29 -0
- package/logos/eu/condensed-version/positive/logo-eu--bg.svg +20 -0
- package/logos/eu/condensed-version/positive/logo-eu--ca.svg +16 -0
- package/logos/eu/condensed-version/positive/logo-eu--cs.svg +20 -0
- package/logos/eu/condensed-version/positive/logo-eu--da.svg +20 -0
- package/logos/eu/condensed-version/positive/logo-eu--de.svg +20 -0
- package/logos/eu/condensed-version/positive/logo-eu--el.svg +20 -0
- package/logos/eu/condensed-version/positive/logo-eu--en.svg +20 -0
- package/logos/eu/condensed-version/positive/logo-eu--es.svg +20 -0
- package/logos/eu/condensed-version/positive/logo-eu--et.svg +20 -0
- package/logos/eu/condensed-version/positive/logo-eu--fi.svg +20 -0
- package/logos/eu/condensed-version/positive/logo-eu--fr.svg +20 -0
- package/logos/eu/condensed-version/positive/logo-eu--ga.svg +20 -0
- package/logos/eu/condensed-version/positive/logo-eu--hr.svg +20 -0
- package/logos/eu/condensed-version/positive/logo-eu--hu.svg +20 -0
- package/logos/eu/condensed-version/positive/logo-eu--is.svg +17 -0
- package/logos/eu/condensed-version/positive/logo-eu--it.svg +20 -0
- package/logos/eu/condensed-version/positive/logo-eu--lt.svg +20 -0
- package/logos/eu/condensed-version/positive/logo-eu--lv.svg +20 -0
- package/logos/eu/condensed-version/positive/logo-eu--mt.svg +20 -0
- package/logos/eu/condensed-version/positive/logo-eu--nl.svg +20 -0
- package/logos/eu/condensed-version/positive/logo-eu--no.svg +16 -0
- package/logos/eu/condensed-version/positive/logo-eu--pl.svg +20 -0
- package/logos/eu/condensed-version/positive/logo-eu--pt.svg +20 -0
- package/logos/eu/condensed-version/positive/logo-eu--ro.svg +20 -0
- package/logos/eu/condensed-version/positive/logo-eu--sk.svg +20 -0
- package/logos/eu/condensed-version/positive/logo-eu--sl.svg +20 -0
- package/logos/eu/condensed-version/positive/logo-eu--sv.svg +20 -0
- package/logos/eu/condensed-version/positive/logo-eu--tr.svg +16 -0
- package/logos/eu/logo-eu--mute.svg +10 -0
- package/logos/eu/standard-version/positive/logo-eu--ar.svg +27 -0
- package/logos/eu/standard-version/positive/logo-eu--bg.svg +34 -0
- package/logos/eu/standard-version/positive/logo-eu--ca.svg +27 -0
- package/logos/eu/standard-version/positive/logo-eu--cs.svg +32 -0
- package/logos/eu/standard-version/positive/logo-eu--da.svg +38 -0
- package/logos/eu/standard-version/positive/logo-eu--de.svg +36 -0
- package/logos/eu/standard-version/positive/logo-eu--el.svg +34 -0
- package/logos/eu/standard-version/positive/logo-eu--en.svg +33 -0
- package/logos/eu/standard-version/positive/logo-eu--es.svg +32 -0
- package/logos/eu/standard-version/positive/logo-eu--et.svg +31 -0
- package/logos/eu/standard-version/positive/logo-eu--fi.svg +34 -0
- package/logos/eu/standard-version/positive/logo-eu--fr.svg +35 -0
- package/logos/eu/standard-version/positive/logo-eu--ga.svg +36 -0
- package/logos/eu/standard-version/positive/logo-eu--hr.svg +33 -0
- package/logos/eu/standard-version/positive/logo-eu--hu.svg +31 -0
- package/logos/eu/standard-version/positive/logo-eu--is.svg +31 -0
- package/logos/eu/standard-version/positive/logo-eu--it.svg +33 -0
- package/logos/eu/standard-version/positive/logo-eu--lt.svg +34 -0
- package/logos/eu/standard-version/positive/logo-eu--lv.svg +36 -0
- package/logos/eu/standard-version/positive/logo-eu--mt.svg +34 -0
- package/logos/eu/standard-version/positive/logo-eu--nl.svg +32 -0
- package/logos/eu/standard-version/positive/logo-eu--no.svg +31 -0
- package/logos/eu/standard-version/positive/logo-eu--pl.svg +34 -0
- package/logos/eu/standard-version/positive/logo-eu--pt.svg +33 -0
- package/logos/eu/standard-version/positive/logo-eu--ro.svg +36 -0
- package/logos/eu/standard-version/positive/logo-eu--sk.svg +32 -0
- package/logos/eu/standard-version/positive/logo-eu--sl.svg +33 -0
- package/logos/eu/standard-version/positive/logo-eu--sv.svg +37 -0
- package/logos/eu/standard-version/positive/logo-eu--tr.svg +29 -0
- package/package.json +10 -7
- package/src/scss/_badge.scss +15 -0
- package/src/scss/_bcl-offcanvas.scss +4 -4
- package/src/scss/_breadcrumb.scss +1 -0
- package/src/scss/_button.scss +6 -0
- package/src/scss/_footer.scss +19 -7
- package/src/scss/_header.scss +90 -19
- package/src/scss/_icon.scss +2 -5
- package/src/scss/_inpage-navigation.scss +5 -1
- package/src/scss/_multiselect.scss +3 -2
- package/src/scss/base/_colors.scss +12 -0
- package/src/scss/{_utilities.scss → base/_utilities.scss} +14 -0
- package/src/scss/{_variables.scss → base/_variables.scss} +16 -8
- package/src/scss/oe-bcl-default.scss +7 -2
- package/templates/bcl-accordion/accordion.html.twig +16 -2
- package/templates/bcl-alert/alert.html.twig +5 -1
- package/templates/bcl-badge/badge.html.twig +10 -2
- package/templates/bcl-banner/banner.html.twig +5 -0
- package/templates/bcl-base-templates/content-type.html.twig +53 -10
- package/templates/bcl-base-templates/listing-page.html.twig +24 -21
- package/templates/bcl-blockquote/blockquote.html.twig +22 -3
- package/templates/bcl-breadcrumb/breadcrumb.html.twig +6 -2
- package/templates/bcl-button/button.html.twig +8 -2
- package/templates/bcl-button-group/button-group.html.twig +4 -0
- package/templates/bcl-card/card.html.twig +30 -18
- package/templates/bcl-card-layout/card-layout.html.twig +4 -0
- package/templates/bcl-carousel/carousel.html.twig +4 -0
- package/templates/bcl-contact-form/contact-form.html.twig +5 -0
- package/templates/bcl-content-banner/content-banner.html.twig +5 -2
- package/templates/bcl-date-block/date-block.html.twig +7 -4
- package/templates/bcl-description-list/description-list.html.twig +35 -13
- package/templates/bcl-event/event.html.twig +5 -22
- package/templates/bcl-fact-figures/fact-figures.html.twig +8 -4
- package/templates/bcl-featured-media/featured-media.html.twig +9 -3
- package/templates/bcl-file/file.html.twig +9 -4
- package/templates/bcl-footer/footer.html.twig +4 -1
- package/templates/bcl-form/form.html.twig +30 -0
- package/templates/bcl-group/group.html.twig +6 -4
- package/templates/bcl-header/header.html.twig +13 -4
- package/templates/bcl-inpage-navigation/inpage-navigation.html.twig +6 -1
- package/templates/bcl-links-block/links-block.html.twig +4 -4
- package/templates/bcl-list-group/list-group.html.twig +6 -0
- package/templates/bcl-listing/listing.html.twig +34 -15
- package/templates/bcl-navbar/navbar.html.twig +22 -20
- package/templates/bcl-navigation/navigation.html.twig +141 -111
- package/templates/bcl-offcanvas/offcanvas.html.twig +4 -0
- package/templates/bcl-pagination/pagination.html.twig +13 -1
- package/templates/bcl-placeholder/placeholder.html.twig +43 -0
- package/templates/bcl-progress/progress.html.twig +10 -1
- package/templates/bcl-project/project.html.twig +60 -0
- package/templates/bcl-project-status/project-status.html.twig +109 -0
- package/templates/bcl-recent-activities/recent-activities.html.twig +5 -1
- package/templates/bcl-search/search.html.twig +15 -0
- package/templates/bcl-search-form/search-form.html.twig +52 -0
- package/templates/bcl-select/select.html.twig +6 -0
- package/templates/bcl-table/table.html.twig +4 -0
- package/templates/bcl-timeline/timeline.html.twig +6 -2
- package/templates/bcl-toast/toasts.html.twig +5 -0
- package/templates/bcl-user/user-view-compact.html.twig +5 -1
- package/templates/bcl-user/user-view.html.twig +2 -2
|
@@ -1,8 +1,9 @@
|
|
|
1
|
+
{% import _self as navigation %}
|
|
1
2
|
{% spaceless %}
|
|
2
3
|
|
|
3
4
|
{# Parameters:
|
|
4
5
|
- pills (boolean) (default: false)
|
|
5
|
-
- tabs (boolean) (default: false)
|
|
6
|
+
- tabs (boolean) (default: false) - If tabs is set to true, the nav should also be set to true for accessibility reasons
|
|
6
7
|
- vertical (boolean) (default: false)
|
|
7
8
|
- full_width (boolean) (default: false)
|
|
8
9
|
- alignment (string) (default: '')
|
|
@@ -17,131 +18,160 @@
|
|
|
17
18
|
- active (boolean)
|
|
18
19
|
- button (boolean) - set to button
|
|
19
20
|
- content (string) - content for tab
|
|
21
|
+
- navigation (navigation Object) - set for multiple level or navigation, items inside is required
|
|
20
22
|
}
|
|
21
23
|
]
|
|
22
24
|
#}
|
|
23
25
|
|
|
24
|
-
{
|
|
25
|
-
{%
|
|
26
|
-
{%
|
|
27
|
-
{%
|
|
28
|
-
{% set _alignment = alignment|default('') %}
|
|
29
|
-
{% set _id = id|default('') %}
|
|
30
|
-
{% set _tabs_content = tabs_content|default(false) %}
|
|
31
|
-
{% set _nav = nav|default(false) %}
|
|
32
|
-
{% set _navbar = navbar|default(false) %}
|
|
33
|
-
{% set _items = items|default([]) %}
|
|
26
|
+
{# Define main macro #}
|
|
27
|
+
{% macro render(items, pills, tabs, tabs_content, vertical, full_width, alignment, id, nav, navbar, attributes) %}
|
|
28
|
+
{% spaceless %}
|
|
29
|
+
{% import _self as navigation %}
|
|
34
30
|
|
|
35
|
-
{%
|
|
36
|
-
{% set
|
|
37
|
-
{%
|
|
38
|
-
{% set
|
|
39
|
-
{%
|
|
40
|
-
{%
|
|
41
|
-
{% set
|
|
42
|
-
{%
|
|
43
|
-
{%
|
|
44
|
-
{% set
|
|
45
|
-
{% endif %}
|
|
46
|
-
{% if _vertical %}
|
|
47
|
-
{% set _classes = _classes|merge(['flex-column']) %}
|
|
48
|
-
{% endif %}
|
|
49
|
-
{% if _full_width %}
|
|
50
|
-
{% set _classes = _classes|merge(['nav-fill']) %}
|
|
51
|
-
{% endif %}
|
|
52
|
-
{% if _alignment is not empty %}
|
|
53
|
-
{% set _classes = _classes|merge(['justify-content-' ~ _alignment]) %}
|
|
54
|
-
{% endif %}
|
|
31
|
+
{% set _pills = pills|default(false) %}
|
|
32
|
+
{% set _tabs = tabs|default(false) %}
|
|
33
|
+
{% set _vertical = vertical|default(false) %}
|
|
34
|
+
{% set _full_width = full_width|default(false) %}
|
|
35
|
+
{% set _alignment = alignment|default('') %}
|
|
36
|
+
{% set _id = id|default('') %}
|
|
37
|
+
{% set _tabs_content = tabs_content|default(false) %}
|
|
38
|
+
{% set _nav = nav|default(false) %}
|
|
39
|
+
{% set _navbar = navbar|default(false) %}
|
|
40
|
+
{% set _items = items|default([]) %}
|
|
55
41
|
|
|
56
|
-
{% if
|
|
57
|
-
|
|
58
|
-
{%
|
|
42
|
+
{% if _navbar %}
|
|
43
|
+
{% set _classes = ['navbar-nav'] %}
|
|
44
|
+
{% else %}
|
|
45
|
+
{% set _classes = ['nav'] %}
|
|
46
|
+
{% endif %}
|
|
47
|
+
{% if _pills %}
|
|
48
|
+
{% set _classes = _classes|merge(['nav-pills']) %}
|
|
49
|
+
{% endif %}
|
|
50
|
+
{% if _tabs %}
|
|
51
|
+
{% set _classes = _classes|merge(['nav-tabs']) %}
|
|
52
|
+
{% endif %}
|
|
53
|
+
{% if _vertical %}
|
|
54
|
+
{% set _classes = _classes|merge(['flex-column']) %}
|
|
55
|
+
{% endif %}
|
|
56
|
+
{% if _full_width %}
|
|
57
|
+
{% set _classes = _classes|merge(['nav-fill']) %}
|
|
58
|
+
{% endif %}
|
|
59
|
+
{% if _alignment is not empty %}
|
|
60
|
+
{% set _classes = _classes|merge(['justify-content-' ~ _alignment]) %}
|
|
61
|
+
{% endif %}
|
|
59
62
|
|
|
60
|
-
{% if
|
|
61
|
-
|
|
62
|
-
{% endif %}
|
|
63
|
+
{% if attributes is empty %}
|
|
64
|
+
{% set attributes = create_attribute() %}
|
|
65
|
+
{% endif %}
|
|
63
66
|
|
|
64
|
-
{% if
|
|
65
|
-
|
|
66
|
-
{% endif %}
|
|
67
|
+
{% if _id is not empty %}
|
|
68
|
+
{% set attributes = attributes.setAttribute('id', _id) %}
|
|
69
|
+
{% endif %}
|
|
67
70
|
|
|
68
|
-
{%
|
|
71
|
+
{% if _tabs %}
|
|
72
|
+
{% set attributes = attributes.setAttribute('role', 'tablist') %}
|
|
73
|
+
{% endif %}
|
|
74
|
+
{% set attributes = attributes.addClass(_classes) %}
|
|
69
75
|
|
|
70
|
-
{% if _nav %}
|
|
71
|
-
<nav
|
|
72
|
-
|
|
73
|
-
>
|
|
74
|
-
{% else %}
|
|
75
|
-
<ul
|
|
76
|
-
|
|
77
|
-
>
|
|
78
|
-
{% endif %}
|
|
79
|
-
{% if _items is not empty and _items is iterable %}
|
|
80
|
-
{% for _item in _items %}
|
|
81
|
-
{% set _nav_class = 'nav-item' %}
|
|
82
|
-
{% if _item.dropdown %}
|
|
83
|
-
{% set _nav_class = _nav_class ~ ' dropdown' %}
|
|
84
|
-
{% set _item = _item|merge({remove_wrapper: true}) %}
|
|
85
|
-
{% endif %}
|
|
86
|
-
{% if _item.dropdown %}
|
|
87
|
-
{% set _item_classes = [] %}
|
|
88
|
-
{% else %}
|
|
89
|
-
{% set _item_classes = ['nav-link'] %}
|
|
90
|
-
{% endif %}
|
|
91
|
-
{% if _item.active %}
|
|
92
|
-
{% set _item_classes = _item_classes|merge(['active']) %}
|
|
93
|
-
{% endif %}
|
|
94
|
-
{% if _item.attributes is empty %}
|
|
95
|
-
{% set _item = _item|merge({
|
|
96
|
-
attributes: create_attribute()
|
|
97
|
-
}) %}
|
|
98
|
-
{% endif %}
|
|
99
|
-
{% set _item = _item|merge({
|
|
100
|
-
attributes: _item.attributes.addClass(_item_classes),
|
|
101
|
-
clean_class: true}) %}
|
|
102
|
-
{% if not _nav %}
|
|
103
|
-
<li
|
|
104
|
-
class="{{ _nav_class }}"
|
|
105
|
-
{% if _tabs %}
|
|
106
|
-
role="presentation"
|
|
107
|
-
{% endif %}
|
|
108
|
-
>
|
|
109
|
-
{% endif %}
|
|
110
|
-
{% if _item.dropdown is defined %}
|
|
111
|
-
{% include '@oe-bcl/bcl-dropdown/dropdown.html.twig' with _item only %}
|
|
112
|
-
{% elseif _item.button is defined %}
|
|
113
|
-
{% include '@oe-bcl/bcl-button/button.html.twig' with _item only %}
|
|
114
|
-
{% else %}
|
|
115
|
-
{% include '@oe-bcl/bcl-link/link.html.twig' with _item only %}
|
|
116
|
-
{% endif %}
|
|
117
|
-
{% if not _nav %}
|
|
118
|
-
</li>
|
|
119
|
-
{% endif %}
|
|
120
|
-
{% endfor %}
|
|
76
|
+
{% if _nav %}
|
|
77
|
+
<nav
|
|
78
|
+
{{ attributes }}
|
|
79
|
+
>
|
|
80
|
+
{% else %}
|
|
81
|
+
<ul
|
|
82
|
+
{{ attributes }}
|
|
83
|
+
>
|
|
121
84
|
{% endif %}
|
|
122
|
-
{% if _nav %}
|
|
123
|
-
</nav>
|
|
124
|
-
{% else %}
|
|
125
|
-
</ul>
|
|
126
|
-
{% endif %}
|
|
127
|
-
{% if _tabs_content %}
|
|
128
|
-
<div class="tab-content">
|
|
129
|
-
{%- block contents -%}
|
|
130
85
|
{% if _items is not empty and _items is iterable %}
|
|
131
|
-
{% for _item in
|
|
132
|
-
{%
|
|
133
|
-
|
|
134
|
-
{%
|
|
135
|
-
|
|
86
|
+
{% for _item in items %}
|
|
87
|
+
{% set _nav_class = 'nav-item' %}
|
|
88
|
+
{% if _item.dropdown %}
|
|
89
|
+
{% set _nav_class = _nav_class ~ ' dropdown' %}
|
|
90
|
+
{% set _item = _item|merge({remove_wrapper: true}) %}
|
|
91
|
+
{% endif %}
|
|
92
|
+
{% if _item.dropdown %}
|
|
93
|
+
{% set _item_classes = [] %}
|
|
94
|
+
{% else %}
|
|
95
|
+
{% set _item_classes = ['nav-link'] %}
|
|
96
|
+
{% endif %}
|
|
97
|
+
{% if _item.active %}
|
|
98
|
+
{% set _item_classes = _item_classes|merge(['active']) %}
|
|
99
|
+
{% endif %}
|
|
100
|
+
{% if _item.attributes is empty %}
|
|
101
|
+
{% set _item = _item|merge({
|
|
102
|
+
attributes: create_attribute()
|
|
103
|
+
}) %}
|
|
104
|
+
{% endif %}
|
|
105
|
+
{% set _item = _item|merge({
|
|
106
|
+
attributes: _item.attributes.addClass(_item_classes),
|
|
107
|
+
clean_class: true}) %}
|
|
108
|
+
{% if not _nav %}
|
|
109
|
+
<li
|
|
110
|
+
class="{{ _nav_class }}"
|
|
111
|
+
{% if _tabs %}
|
|
112
|
+
role="tab"
|
|
136
113
|
{% endif %}
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
114
|
+
>
|
|
115
|
+
{% elseif _tabs %}
|
|
116
|
+
{% set _item = _item|merge({
|
|
117
|
+
attributes: _item.attributes.setAttribute("role", "tab"),
|
|
118
|
+
})
|
|
119
|
+
%}
|
|
120
|
+
{% endif %}
|
|
121
|
+
{% if _item.dropdown is defined %}
|
|
122
|
+
{% include '@oe-bcl/bcl-dropdown/dropdown.html.twig' with _item only %}
|
|
123
|
+
{% elseif _item.button is defined %}
|
|
124
|
+
{% include '@oe-bcl/bcl-button/button.html.twig' with _item only %}
|
|
125
|
+
{% else %}
|
|
126
|
+
{% include '@oe-bcl/bcl-link/link.html.twig' with _item only %}
|
|
127
|
+
{% endif %}
|
|
128
|
+
{% if _item.navigation is defined and _item.navigation.items is not empty and _item.navigation.items is iterable %}
|
|
129
|
+
{{ navigation.render(
|
|
130
|
+
_item.navigation.items,
|
|
131
|
+
_item.navigation.pills,
|
|
132
|
+
_item.navigation.tabs,
|
|
133
|
+
_item.navigation.tabs_content,
|
|
134
|
+
_item.navigation.vertical,
|
|
135
|
+
_item.navigation.full_width,
|
|
136
|
+
_item.navigation.alignment,
|
|
137
|
+
_item.navigation.id,
|
|
138
|
+
_item.navigation.nav,
|
|
139
|
+
_item.navigation.navbar,
|
|
140
|
+
_item.navigation.attributes
|
|
141
|
+
) }}
|
|
142
|
+
{% endif %}
|
|
143
|
+
{% if not _nav %}
|
|
144
|
+
</li>
|
|
140
145
|
{% endif %}
|
|
141
146
|
{% endfor %}
|
|
142
147
|
{% endif %}
|
|
143
|
-
{
|
|
144
|
-
</
|
|
145
|
-
{%
|
|
148
|
+
{% if _nav %}
|
|
149
|
+
</nav>
|
|
150
|
+
{% else %}
|
|
151
|
+
</ul>
|
|
152
|
+
{% endif %}
|
|
153
|
+
{% if _tabs_content %}
|
|
154
|
+
<div class="tab-content">
|
|
155
|
+
{%- block contents -%}
|
|
156
|
+
{% if _items is not empty and _items is iterable %}
|
|
157
|
+
{% for _item in _items %}
|
|
158
|
+
{% if _item.content is not empty %}
|
|
159
|
+
{% set _content_class = 'tab-pane fade' %}
|
|
160
|
+
{% if _item.active %}
|
|
161
|
+
{% set _content_class = _content_class ~ ' show active' %}
|
|
162
|
+
{% endif %}
|
|
163
|
+
<div class="{{ _content_class }}" id="{{ _item.target }}" role="tabpanel" aria-labelledby="{{ _item.id }}">
|
|
164
|
+
{{- _item.content -}}
|
|
165
|
+
</div>
|
|
166
|
+
{% endif %}
|
|
167
|
+
{% endfor %}
|
|
168
|
+
{% endif %}
|
|
169
|
+
{%- endblock -%}
|
|
170
|
+
</div>
|
|
171
|
+
{% endif %}
|
|
172
|
+
{% endspaceless %}
|
|
173
|
+
{% endmacro %}
|
|
174
|
+
|
|
175
|
+
{{ navigation.render(items, pills, tabs, tabs_content, vertical, full_width, alignment, id, nav, navbar, attributes) }}
|
|
146
176
|
|
|
147
177
|
{% endspaceless %}
|
|
@@ -41,6 +41,10 @@
|
|
|
41
41
|
{% set _aria_labelled = _title.id|default('') %}
|
|
42
42
|
{% endif %}
|
|
43
43
|
|
|
44
|
+
{% if attributes is empty %}
|
|
45
|
+
{% set attributes = create_attribute() %}
|
|
46
|
+
{% endif %}
|
|
47
|
+
|
|
44
48
|
{% if _aria_labelled is defined and _aria_labelled is not empty %}
|
|
45
49
|
{% set attributes = attributes.setAttribute('aria-labelledby', _aria_labelled) %}
|
|
46
50
|
{% endif %}
|
|
@@ -12,6 +12,7 @@
|
|
|
12
12
|
- path (string)
|
|
13
13
|
- label (string)
|
|
14
14
|
- disabled (boolean)
|
|
15
|
+
- aria_label (string)
|
|
15
16
|
- icon (Icon component)
|
|
16
17
|
}
|
|
17
18
|
- next (object)
|
|
@@ -19,6 +20,7 @@
|
|
|
19
20
|
- path (string)
|
|
20
21
|
- label (string)
|
|
21
22
|
- disabled (boolean)
|
|
23
|
+
- aria_label (string)
|
|
22
24
|
- icon (Icon component)
|
|
23
25
|
}
|
|
24
26
|
- items (array of objects)
|
|
@@ -47,11 +49,15 @@
|
|
|
47
49
|
{% set _classes = _classes ~ ' justify-content-' ~ _alignment %}
|
|
48
50
|
{% endif %}
|
|
49
51
|
|
|
52
|
+
{% if attributes is empty %}
|
|
53
|
+
{% set attributes = create_attribute() %}
|
|
54
|
+
{% endif %}
|
|
55
|
+
|
|
50
56
|
{% if _aria_label is not empty %}
|
|
51
57
|
{% set attributes = attributes.setAttribute('aria-label', aria_label) %}
|
|
52
58
|
{% endif %}
|
|
53
59
|
{% if _extra_classes is not empty %}
|
|
54
|
-
{% set _class = _class ~ ' ' ~ _extra_classes %}
|
|
60
|
+
{% set _class = _class ~ ' ' ~ _extra_classes %}
|
|
55
61
|
{% endif %}
|
|
56
62
|
|
|
57
63
|
<nav
|
|
@@ -71,6 +77,9 @@
|
|
|
71
77
|
tabindex="-1"
|
|
72
78
|
aria-disabled="true"
|
|
73
79
|
{% endif %}
|
|
80
|
+
{%- if _prev.aria_label -%}
|
|
81
|
+
aria-label="{{ _prev.aria_label }}"
|
|
82
|
+
{%- endif -%}
|
|
74
83
|
>
|
|
75
84
|
{%- if _enable_icon -%}
|
|
76
85
|
{%- if _prev.icon is not empty -%}
|
|
@@ -123,6 +132,9 @@
|
|
|
123
132
|
tabindex="-1"
|
|
124
133
|
aria-disabled="true"
|
|
125
134
|
{% endif %}
|
|
135
|
+
{%- if _next.aria_label -%}
|
|
136
|
+
aria-label="{{ _next.aria_label }}"
|
|
137
|
+
{%- endif -%}
|
|
126
138
|
>
|
|
127
139
|
{%- if _enable_icon -%}
|
|
128
140
|
{%- if _next.icon is not empty -%}
|
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
{% spaceless %}
|
|
2
|
+
|
|
3
|
+
{# Parameters:
|
|
4
|
+
- width (int) (default: 0) - between 0-100
|
|
5
|
+
- variant (string) (default: '')
|
|
6
|
+
- options : ["primary", "secondary", "success", "danger", "warning", "info", "light", "dark"]
|
|
7
|
+
- size (string) (default: '')
|
|
8
|
+
- options : ["xs", "lg"]
|
|
9
|
+
- animation (string) (default: '')
|
|
10
|
+
- options : ["glow", "wave"]
|
|
11
|
+
#}
|
|
12
|
+
|
|
13
|
+
{% set _width = width|default(0) %}
|
|
14
|
+
{% set _variant = variant|default('') %}
|
|
15
|
+
{% set _size = size|default('') %}
|
|
16
|
+
{% set _animation = animation|default('') %}
|
|
17
|
+
{% set _classes = ['placeholder'] %}
|
|
18
|
+
|
|
19
|
+
{% if _size is not empty %}
|
|
20
|
+
{% set _classes = _classes|merge(['placeholder-' ~ _size]) %}
|
|
21
|
+
{% endif %}
|
|
22
|
+
|
|
23
|
+
{% if _variant is not empty %}
|
|
24
|
+
{% set _classes = _classes|merge(['bg-' ~ _variant]) %}
|
|
25
|
+
{% endif %}
|
|
26
|
+
|
|
27
|
+
{% if attributes is empty %}
|
|
28
|
+
{% set attributes = create_attribute() %}
|
|
29
|
+
{% endif %}
|
|
30
|
+
|
|
31
|
+
{% set attributes = attributes.addClass(_classes) %}
|
|
32
|
+
{% set attributes = attributes.setAttribute('style', 'width: ' ~ _width ~ '%;') %}
|
|
33
|
+
|
|
34
|
+
{% if _animation is not empty %}
|
|
35
|
+
<p class="placeholder-{{ _animation }}">
|
|
36
|
+
{% endif %}
|
|
37
|
+
<span {{- attributes -}} >
|
|
38
|
+
</span>
|
|
39
|
+
{% if _animation is not empty %}
|
|
40
|
+
</p>
|
|
41
|
+
{% endif %}
|
|
42
|
+
|
|
43
|
+
{% endspaceless %}
|
|
@@ -6,6 +6,7 @@
|
|
|
6
6
|
- max (int) (default: 100)
|
|
7
7
|
- striped (boolean) (default: false)
|
|
8
8
|
- animated (boolean) (default: false)
|
|
9
|
+
- hidden_label (boolean) (default: false)
|
|
9
10
|
- label (string) (default: '')
|
|
10
11
|
- bar_label (string) (default: '')
|
|
11
12
|
- variant (string) (default: '')
|
|
@@ -17,6 +18,7 @@
|
|
|
17
18
|
{% set _max = max|default(100) %}
|
|
18
19
|
{% set _striped = striped|default(false) %}
|
|
19
20
|
{% set _animated = animated|default(false) %}
|
|
21
|
+
{% set _hidden_label = hidden_label|default(false) %}
|
|
20
22
|
{% set _label = label|default('') %}
|
|
21
23
|
{% set _bar_label = bar_label|default('') %}
|
|
22
24
|
{% set _variant = variant|default('') %}
|
|
@@ -32,6 +34,10 @@
|
|
|
32
34
|
{% set _classes = _classes ~ ' bg-' ~ _variant %}
|
|
33
35
|
{% endif %}
|
|
34
36
|
|
|
37
|
+
{% if attributes is empty %}
|
|
38
|
+
{% set attributes = create_attribute() %}
|
|
39
|
+
{% endif %}
|
|
40
|
+
|
|
35
41
|
{% set attributes = attributes.addClass(['progress']) %}
|
|
36
42
|
|
|
37
43
|
{% if _bar_label is empty %}
|
|
@@ -49,10 +55,13 @@
|
|
|
49
55
|
role="progressbar"
|
|
50
56
|
style="width: {{ _progress }}%"
|
|
51
57
|
aria-valuenow="{{ _progress }}"
|
|
58
|
+
aria-label="{{ _progress }}"
|
|
52
59
|
aria-valuemin="{{ _min }}"
|
|
53
60
|
aria-valuemax="{{ _max }}"
|
|
54
61
|
>
|
|
55
|
-
{
|
|
62
|
+
{%- if not _hidden_label -%}
|
|
63
|
+
{{- _bar_label -}}
|
|
64
|
+
{%- endif -%}
|
|
56
65
|
</div>
|
|
57
66
|
</div>
|
|
58
67
|
{% if _message is not empty %}
|
|
@@ -0,0 +1,60 @@
|
|
|
1
|
+
{% extends '@oe-bcl/bcl-base-templates/content-type.html.twig' %}
|
|
2
|
+
|
|
3
|
+
{% block sidebar %}
|
|
4
|
+
{% include '@oe-bcl/bcl-inpage-navigation/inpage-navigation.html.twig' with sidebar only %}
|
|
5
|
+
{% endblock %}
|
|
6
|
+
|
|
7
|
+
{% block content %}
|
|
8
|
+
{% include '@oe-bcl/bcl-project-status/project-status.html.twig' with project_details|merge({ charts: charts }) %}
|
|
9
|
+
|
|
10
|
+
<div class="border-bottom mb-4">
|
|
11
|
+
{% include '@oe-bcl/bcl-description-list/description-list.html.twig' with details_list only %}
|
|
12
|
+
</div>
|
|
13
|
+
|
|
14
|
+
{% include '@oe-bcl/bcl-description-list/description-list.html.twig' with coordinator_list only %}
|
|
15
|
+
|
|
16
|
+
{% for paragraph in paragraphs %}
|
|
17
|
+
<h3
|
|
18
|
+
class="fw-bold mb-4 pt-3"
|
|
19
|
+
id="{{ paragraph.title_id }}"
|
|
20
|
+
>
|
|
21
|
+
{{ paragraph.title }}
|
|
22
|
+
</h3>
|
|
23
|
+
|
|
24
|
+
{{ paragraph.content }}
|
|
25
|
+
{% endfor %}
|
|
26
|
+
|
|
27
|
+
<h3
|
|
28
|
+
class="fw-bold mb-4 pt-2"
|
|
29
|
+
id="{{ contributors.main_title_id }}"
|
|
30
|
+
>
|
|
31
|
+
{{ contributors.main_title }}
|
|
32
|
+
</h3>
|
|
33
|
+
|
|
34
|
+
{% for contributor in contributors.listing %}
|
|
35
|
+
<h4 class="fw-bold mb-3">{{ contributor.title }}</h4>
|
|
36
|
+
|
|
37
|
+
{% include '@oe-bcl/bcl-description-list/description-list.html.twig' with contributor.list only %}
|
|
38
|
+
|
|
39
|
+
{% endfor %}
|
|
40
|
+
|
|
41
|
+
{% for achievement in achievements %}
|
|
42
|
+
<h3
|
|
43
|
+
class="fw-bold mb-4 pt-2"
|
|
44
|
+
id="{{ achievement.title_id }}"
|
|
45
|
+
>
|
|
46
|
+
{{ achievement.title }}
|
|
47
|
+
</h3>
|
|
48
|
+
{{ achievement.content }}
|
|
49
|
+
{% endfor %}
|
|
50
|
+
|
|
51
|
+
<h3
|
|
52
|
+
class="fw-bold mb-4 pt-2"
|
|
53
|
+
id="{{ gallery.title_id }}"
|
|
54
|
+
>
|
|
55
|
+
{{ gallery.title }}
|
|
56
|
+
</h3>
|
|
57
|
+
|
|
58
|
+
{% include '@oe-bcl/bcl-featured-media/featured-media.html.twig' with gallery.featured only %}
|
|
59
|
+
{% include '@oe-bcl/bcl-carousel/carousel.html.twig' with gallery.carousel only %}
|
|
60
|
+
{% endblock %}
|
|
@@ -0,0 +1,109 @@
|
|
|
1
|
+
{% spaceless %}
|
|
2
|
+
|
|
3
|
+
{# Parameters:
|
|
4
|
+
- title_id (string) (default: "")
|
|
5
|
+
- title (string) (default: "")
|
|
6
|
+
- title_tag (string) (default: "h3")
|
|
7
|
+
- status (string) (default: 'planned')
|
|
8
|
+
- start_date (string) (default: '')
|
|
9
|
+
- start_label (string) (default: '')
|
|
10
|
+
- end_date (string) (default: '')
|
|
11
|
+
- end_label (string) (default: '')
|
|
12
|
+
- label (string) (default: '')
|
|
13
|
+
- badge (string) (default: ''),
|
|
14
|
+
- progress (string) (default: '')
|
|
15
|
+
|
|
16
|
+
Blocks - charts
|
|
17
|
+
#}
|
|
18
|
+
|
|
19
|
+
{% set _title_id = title_id|default('') %}
|
|
20
|
+
{% set _title = title|default('') %}
|
|
21
|
+
{% set _label = label|default('') %}
|
|
22
|
+
{% set _title_tag = title_tag|default('h3') %}
|
|
23
|
+
{% set _status = status|default('planned') %}
|
|
24
|
+
{% set _charts = charts|default('') %}
|
|
25
|
+
{% set _badge = badge|default('') %}
|
|
26
|
+
{% set _start_date = start_date|default('') %}
|
|
27
|
+
{% set _end_date = end_date|default('') %}
|
|
28
|
+
{% set _start_label = start_label|default('') %}
|
|
29
|
+
{% set _end_label = end_label|default('') %}
|
|
30
|
+
{% set _progress = progress|default('') %}
|
|
31
|
+
|
|
32
|
+
{% set _bgs = {
|
|
33
|
+
ongoing: 'info',
|
|
34
|
+
closed: 'dark',
|
|
35
|
+
planned: 'secondary',
|
|
36
|
+
} %}
|
|
37
|
+
{% set _bg = _bgs[_status]|default('secondary') %}
|
|
38
|
+
|
|
39
|
+
|
|
40
|
+
<{{ _title_tag }}
|
|
41
|
+
class="fw-bold mb-4"
|
|
42
|
+
{% if title_id is not empty %}
|
|
43
|
+
id="{{ title_id }}"
|
|
44
|
+
{% endif %}
|
|
45
|
+
>
|
|
46
|
+
{{- title -}}
|
|
47
|
+
</{{ _title_tag }}>
|
|
48
|
+
|
|
49
|
+
<div class="border-bottom pb-4 mb-4">
|
|
50
|
+
<div class="row">
|
|
51
|
+
<div class="col-12 col-md-3">
|
|
52
|
+
{% if _label is not empty %}
|
|
53
|
+
<p class="fw-bold">{{ _label }}</p>
|
|
54
|
+
{% endif %}
|
|
55
|
+
|
|
56
|
+
{% if _badge is not empty %}
|
|
57
|
+
{% include '@oe-bcl/bcl-badge/badge.html.twig' with {
|
|
58
|
+
label: _badge,
|
|
59
|
+
background: _bg,
|
|
60
|
+
attributes: create_attribute().addClass(['mb-3', 'mb-md-0']),
|
|
61
|
+
} only %}
|
|
62
|
+
{% endif %}
|
|
63
|
+
|
|
64
|
+
</div>
|
|
65
|
+
|
|
66
|
+
<div class="col-12 col-md-9">
|
|
67
|
+
<div class="d-flex justify-content-between">
|
|
68
|
+
|
|
69
|
+
{% if _start_date is not empty and _start_label is not empty %}
|
|
70
|
+
<p class="fw-bold">
|
|
71
|
+
{{- _start_label -}} <br>
|
|
72
|
+
<span class="fw-normal">
|
|
73
|
+
{{- _start_date -}}
|
|
74
|
+
</span>
|
|
75
|
+
</p>
|
|
76
|
+
{% endif %}
|
|
77
|
+
|
|
78
|
+
{% if _end_date is not empty and _end_label is not empty %}
|
|
79
|
+
<p class="fw-bold text-end">
|
|
80
|
+
{{- _end_label -}} <br>
|
|
81
|
+
<span class="fw-normal">
|
|
82
|
+
{{- _end_date -}}
|
|
83
|
+
</span>
|
|
84
|
+
</p>
|
|
85
|
+
{% endif %}
|
|
86
|
+
</div>
|
|
87
|
+
|
|
88
|
+
{% if _progress is not empty or _status != 'ongoing' %}
|
|
89
|
+
{% if _progress is empty %}
|
|
90
|
+
{% set _progress = _status == 'closed' ? 100 : 0 %}
|
|
91
|
+
{% endif %}
|
|
92
|
+
{% include '@oe-bcl/bcl-progress/progress.html.twig' with {
|
|
93
|
+
variant: _bg,
|
|
94
|
+
hidden_label: true,
|
|
95
|
+
progress: _progress,
|
|
96
|
+
} only %}
|
|
97
|
+
{% endif %}
|
|
98
|
+
|
|
99
|
+
</div>
|
|
100
|
+
</div>
|
|
101
|
+
</div>
|
|
102
|
+
|
|
103
|
+
{% if _charts is not empty %}
|
|
104
|
+
<div class="border-bottom pb-4 mb-4">
|
|
105
|
+
{%- block charts _charts -%}
|
|
106
|
+
</div>
|
|
107
|
+
{% endif %}
|
|
108
|
+
|
|
109
|
+
{% endspaceless %}
|
|
@@ -23,12 +23,16 @@
|
|
|
23
23
|
|
|
24
24
|
{% set _activities = activities|default([]) %}
|
|
25
25
|
|
|
26
|
+
{% if attributes is empty %}
|
|
27
|
+
{% set attributes = create_attribute() %}
|
|
28
|
+
{% endif %}
|
|
29
|
+
|
|
26
30
|
<div
|
|
27
31
|
{{ attributes }}
|
|
28
32
|
>
|
|
29
33
|
{% if _activities is not empty and _activities is iterable %}
|
|
30
34
|
{% for _activity in _activities %}
|
|
31
|
-
<div class="d-flex bg-lighter py-3 px-3 px-md-3-5 mb-3-5">
|
|
35
|
+
<div class="d-flex bg-lighter py-3 px-3 px-md-3-5 mb-3-5 rounded-2">
|
|
32
36
|
{% if _activity.image is not empty %}
|
|
33
37
|
<div>
|
|
34
38
|
{{- _activity.image -}}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
{% extends "@oe-bcl/bcl-base-templates/listing-page.html.twig" %}
|
|
2
|
+
|
|
3
|
+
{% block banner %}
|
|
4
|
+
{% if banner.search_bar is defined %}
|
|
5
|
+
<div class="bg-lighter py-4 py-lg-3">
|
|
6
|
+
<div class="container">
|
|
7
|
+
<div class="row">
|
|
8
|
+
<div class="col-12 col-lg-6 offset-lg-3">
|
|
9
|
+
{% include '@oe-bcl/bcl-search-form/search-form.html.twig' with banner.search_bar only %}
|
|
10
|
+
</div>
|
|
11
|
+
</div>
|
|
12
|
+
</div>
|
|
13
|
+
</div>
|
|
14
|
+
{% endif %}
|
|
15
|
+
{% endblock %}
|
|
@@ -0,0 +1,52 @@
|
|
|
1
|
+
{% spaceless %}
|
|
2
|
+
|
|
3
|
+
{# Parameters:
|
|
4
|
+
- pill: (boolean) (default: false)
|
|
5
|
+
- icon: (icon Object) (default: {})
|
|
6
|
+
- submit: (button Object) (default: {})
|
|
7
|
+
- input: (form input Object) (default: {})
|
|
8
|
+
]
|
|
9
|
+
#}
|
|
10
|
+
|
|
11
|
+
{% set _pill = pill|default(false) %}
|
|
12
|
+
{% set _icon = icon|default({}) %}
|
|
13
|
+
{% set _submit = submit|default({}) %}
|
|
14
|
+
{% set _input = input|default({}) %}
|
|
15
|
+
|
|
16
|
+
{% set _classes = ["bcl-search-form"] %}
|
|
17
|
+
|
|
18
|
+
{% if _pill %}
|
|
19
|
+
{% set _classes = _classes|merge(['rounded']) %}
|
|
20
|
+
{% endif %}
|
|
21
|
+
|
|
22
|
+
{% if _submit is not empty %}
|
|
23
|
+
{% set _classes = _classes|merge(['submittable']) %}
|
|
24
|
+
{% endif %}
|
|
25
|
+
|
|
26
|
+
{% if _icon is not empty %}
|
|
27
|
+
{% set _input = _input|merge({
|
|
28
|
+
attributes: _input.attributes.addClass("ps-5")
|
|
29
|
+
}) %}
|
|
30
|
+
{% endif %}
|
|
31
|
+
|
|
32
|
+
{% if attributes is empty %}
|
|
33
|
+
{% set attributes = create_attribute() %}
|
|
34
|
+
{% endif %}
|
|
35
|
+
|
|
36
|
+
{% set attributes = attributes.addClass( _classes ) %}
|
|
37
|
+
|
|
38
|
+
<form
|
|
39
|
+
{{ attributes }}
|
|
40
|
+
>
|
|
41
|
+
<div class="bcl-search-form__group">
|
|
42
|
+
{% if _icon is not empty %}
|
|
43
|
+
{% include '@oe-bcl/bcl-icon/icon.html.twig' with _icon only %}
|
|
44
|
+
{% endif %}
|
|
45
|
+
{% include '@oe-bcl/bcl-form-input/form-input.html.twig' with _input only %}
|
|
46
|
+
{% if _submit is not empty %}
|
|
47
|
+
{% include '@oe-bcl/bcl-button/button.html.twig' with _submit only %}
|
|
48
|
+
{% endif %}
|
|
49
|
+
</div>
|
|
50
|
+
</form>
|
|
51
|
+
|
|
52
|
+
{% endspaceless %}
|