@openeuropa/bcl-theme-default 0.12.0 → 0.16.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 +4 -0
- package/css/oe-bcl-default.css +1604 -63
- 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 +53 -21
- 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.min.js.map +1 -1
- package/js/oe-bcl-default.umd.js +61 -24
- 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 +6 -5
- package/src/scss/_badge.scss +17 -1
- package/src/scss/_banners.scss +9 -7
- package/src/scss/_bcl-offcanvas.scss +4 -4
- package/src/scss/_footer.scss +16 -7
- package/src/scss/_header.scss +68 -17
- package/src/scss/_inpage-navigation.scss +19 -0
- package/src/scss/_multiselect.scss +3 -2
- package/src/scss/_timeline.scss +78 -0
- package/src/scss/_utilities.scss +70 -0
- package/src/scss/_variables.scss +27 -15
- package/src/scss/oe-bcl-default.scss +2 -14
- package/templates/bcl-badge/badge.html.twig +9 -1
- package/templates/bcl-banner/banner.html.twig +22 -5
- package/templates/bcl-base-templates/content-type.html.twig +116 -0
- package/templates/bcl-base-templates/listing-page.html.twig +63 -0
- package/templates/{bcl-group-landing-listing/group-landing-listing-offcanvas.html.twig → bcl-base-templates/sidebar-search.html.twig} +0 -1
- package/templates/bcl-breadcrumb/breadcrumb.html.twig +2 -2
- package/templates/bcl-card/card.html.twig +43 -42
- package/templates/bcl-content-banner/content-banner.html.twig +103 -0
- package/templates/bcl-date-block/date-block.html.twig +42 -0
- package/templates/bcl-description-list/description-list.html.twig +110 -0
- package/templates/bcl-event/event.html.twig +41 -0
- package/templates/bcl-fact-figures/fact-figures.html.twig +115 -0
- package/templates/bcl-featured-media/featured-media.html.twig +49 -5
- package/templates/bcl-file/file.html.twig +205 -0
- package/templates/bcl-footer/footer.html.twig +4 -2
- package/templates/bcl-group/group-landing.html.twig +101 -0
- package/templates/bcl-group/group.html.twig +27 -0
- package/templates/bcl-header/header.html.twig +11 -2
- package/templates/bcl-inpage-navigation/inpage-navigation.html.twig +42 -0
- package/templates/bcl-landing-page/landing-page.html.twig +59 -0
- package/templates/bcl-link/link.html.twig +5 -0
- package/templates/bcl-links-block/links-block.html.twig +5 -2
- package/templates/bcl-listing/listing.html.twig +67 -38
- package/templates/bcl-navbar/navbar.html.twig +22 -20
- package/templates/bcl-navigation/navigation.html.twig +135 -110
- package/templates/bcl-page/page.html.twig +64 -0
- package/templates/bcl-recent-activities/recent-activities.html.twig +1 -1
- package/templates/bcl-timeline/timeline.html.twig +109 -0
- package/templates/bcl-user/user-edit.html.twig +38 -0
- package/templates/{bcl-user-view → bcl-user}/user-view-compact.html.twig +2 -2
- package/templates/bcl-user/user-view.html.twig +96 -0
- package/templates/bcl-group-landing/group-landing.html.twig +0 -106
- package/templates/bcl-group-landing-listing/group-landing-listing.html.twig +0 -74
- package/templates/bcl-search/search-offcanvas.html.twig +0 -8
- package/templates/bcl-search/search.html.twig +0 -48
- package/templates/bcl-user-edit/edit-contents.html.twig +0 -32
- package/templates/bcl-user-edit/user-edit.html.twig +0 -19
- package/templates/bcl-user-listing/user-listing-offcanvas.html.twig +0 -8
- package/templates/bcl-user-listing/user-listing.html.twig +0 -48
- package/templates/bcl-user-view/user-view.html.twig +0 -106
|
@@ -0,0 +1,115 @@
|
|
|
1
|
+
{% spaceless %}
|
|
2
|
+
|
|
3
|
+
{#
|
|
4
|
+
Parameters:
|
|
5
|
+
- "title" (string) (default: '')
|
|
6
|
+
- "title_tag" (string) (default: 'h4')
|
|
7
|
+
- "variant" (string) (default: '') options:
|
|
8
|
+
[ default, block ]
|
|
9
|
+
- "display_icons" (boolean) (default: true)
|
|
10
|
+
- "items" (array) (default: []):
|
|
11
|
+
- "icon" (associate array) (default: { size: 'm' })
|
|
12
|
+
- "subtitle" (string) (default: '')
|
|
13
|
+
- "title" (string) (default: '')
|
|
14
|
+
- "description" (string) (default:'')
|
|
15
|
+
- "grid_columns" (int) (default: 1)
|
|
16
|
+
- "responsiveness" (string) (default: 'md')
|
|
17
|
+
- "responsive_columns" (integer) (default: 3)
|
|
18
|
+
- "gutter" (int) (default: 4)
|
|
19
|
+
- "equal_height" (boolean) (default: false)
|
|
20
|
+
- "cols_extra_classes" (string) (default: '')
|
|
21
|
+
- "icons_path" (string) (default: '')
|
|
22
|
+
- "link_more" (object of type link) (default {})
|
|
23
|
+
#}
|
|
24
|
+
|
|
25
|
+
{# Parameters #}
|
|
26
|
+
|
|
27
|
+
{% set _title = title|default('') %}
|
|
28
|
+
{% set _title_tag = title_tag|default('h4') %}
|
|
29
|
+
{% set _variant = variant|default('default') %}
|
|
30
|
+
{% set _css_classes = ['bcl-fact-figures', 'bcl-fact-figures--' ~ _variant] %}
|
|
31
|
+
{% set _display_icons = display_icons ?? true %}
|
|
32
|
+
{% set _items = items|default([]) %}
|
|
33
|
+
{% set _grid_columns = grid_columns|default(1) %}
|
|
34
|
+
{% set _responsiveness = responsiveness|default('md') %}
|
|
35
|
+
{% set _responsive_columns = responsive_columns|default(3) %}
|
|
36
|
+
{% set _gutter = gutter|default(4) %}
|
|
37
|
+
{% set _equal_height = equal_height|default(false) %}
|
|
38
|
+
{% set _cols_extra_classes = cols_extra_classes|default('') %}
|
|
39
|
+
{% set _cols_classes = 'col' %}
|
|
40
|
+
{% set _icons_path = icons_path|default('') %}
|
|
41
|
+
{% set _link_more = link_more|default({}) %}
|
|
42
|
+
{% set _wrapper_classes = [] %}
|
|
43
|
+
|
|
44
|
+
{% set _grid_classes = [
|
|
45
|
+
'row-cols-' ~ _responsiveness ~ '-' ~ _responsive_columns,
|
|
46
|
+
'row', 'row-cols-' ~ _grid_columns
|
|
47
|
+
] %}
|
|
48
|
+
{% if _responsive_columns == 3 %}
|
|
49
|
+
{% set _grid_classes = _grid_classes|merge(['row-cols-sm-2']) %}
|
|
50
|
+
{% endif %}
|
|
51
|
+
{% if _variant == 'block' or _variant == 'block-primary' %}
|
|
52
|
+
{% set _wrapper_classes = _wrapper_classes|merge(['bg-light p-3-5 pt-0']) %}
|
|
53
|
+
{% endif %}
|
|
54
|
+
{% if _gutter is not empty %}
|
|
55
|
+
{% set _grid_classes = _grid_classes|merge(['g-' ~ _gutter]) %}
|
|
56
|
+
{% endif %}
|
|
57
|
+
{% if _title is not empty %}
|
|
58
|
+
{% set _grid_classes = _grid_classes|merge(['mt-3']) %}
|
|
59
|
+
{% endif %}
|
|
60
|
+
{% if _equal_height %}
|
|
61
|
+
{% set _cols_classes = _cols_classes ~ ' h-100' %}
|
|
62
|
+
{% endif %}
|
|
63
|
+
{% set attributes = attributes.addClass(_css_classes) %}
|
|
64
|
+
|
|
65
|
+
<div {{ attributes }}>
|
|
66
|
+
{% if _title is not empty %}
|
|
67
|
+
{% set _title_classes = 'fw-bold' %}
|
|
68
|
+
<{{ _title_tag }} class="{{ _title_classes }}">{{ _title }}</{{ _title_tag }}>
|
|
69
|
+
{% endif %}
|
|
70
|
+
<div
|
|
71
|
+
{% if _wrapper_classes is not empty %}
|
|
72
|
+
class="{{ _wrapper_classes|join(' ') }}"
|
|
73
|
+
{% endif %}
|
|
74
|
+
>
|
|
75
|
+
<div class="{{ _grid_classes|join(' ') }}">
|
|
76
|
+
{% if _items is defined and _items is not empty and _items is iterable %}
|
|
77
|
+
{% for _item in _items %}
|
|
78
|
+
<div class="{{ _cols_classes }}">
|
|
79
|
+
{% if _item.icon is defined and _item.icon is not empty and _display_icons %}
|
|
80
|
+
{% set _item = _item|merge({
|
|
81
|
+
icon: _item.icon|merge({
|
|
82
|
+
path: _icons_path,
|
|
83
|
+
size: 'l',
|
|
84
|
+
})
|
|
85
|
+
}) %}
|
|
86
|
+
{% include '@oe-bcl/bcl-icon/icon.html.twig' with _item.icon only %}
|
|
87
|
+
{% endif %}
|
|
88
|
+
{% if _item.title is defined and _item.title is not empty %}
|
|
89
|
+
<h3 class="text-capitalize fw-bold mt-2">
|
|
90
|
+
{{- _item.title -}}
|
|
91
|
+
</h3>
|
|
92
|
+
{% endif %}
|
|
93
|
+
{% if _item.subtitle is defined and _item.subtitle is not empty %}
|
|
94
|
+
<h5 class="fw-bold">
|
|
95
|
+
{{- _item.subtitle -}}
|
|
96
|
+
</h5>
|
|
97
|
+
{% endif %}
|
|
98
|
+
{% if _item.description is defined and _item.description is not empty %}
|
|
99
|
+
<p>
|
|
100
|
+
{{- _item.description -}}
|
|
101
|
+
</p>
|
|
102
|
+
{% endif %}
|
|
103
|
+
</div>
|
|
104
|
+
{% endfor %}
|
|
105
|
+
{% endif %}
|
|
106
|
+
</div>
|
|
107
|
+
{% if _link_more is defined and _link_more is not empty %}
|
|
108
|
+
<div class="border-top d-block pt-3 mt-3">
|
|
109
|
+
{% include '@oe-bcl/bcl-link/link.html.twig' with _link_more only %}
|
|
110
|
+
</div>
|
|
111
|
+
{% endif %}
|
|
112
|
+
</div>
|
|
113
|
+
</div>
|
|
114
|
+
|
|
115
|
+
{% endspaceless %}
|
|
@@ -1,10 +1,16 @@
|
|
|
1
1
|
{% spaceless %}
|
|
2
2
|
|
|
3
3
|
{# Parameters:
|
|
4
|
+
- with_text (boolean) (default: false)
|
|
5
|
+
- title: (string) (default: '')
|
|
6
|
+
- title_tag: (string) (default: 'h3')
|
|
4
7
|
- image: (string) (default: "")
|
|
5
8
|
- poster_image: (string) (default: "")
|
|
6
9
|
- content: (string) (default: "")
|
|
10
|
+
- wrapper_classes: (default: '')
|
|
7
11
|
- content_classes: (string) (default: "")
|
|
12
|
+
- read_more (object) (default: {})
|
|
13
|
+
- description (string) (default: '')
|
|
8
14
|
- ratio: (string) (default: "16x9")
|
|
9
15
|
- options ["1x1", "4x3", "16x9", "21x9"]
|
|
10
16
|
- sources: (array of sources) (default: []) format: [
|
|
@@ -26,15 +32,47 @@
|
|
|
26
32
|
- "embedded_media"
|
|
27
33
|
#}
|
|
28
34
|
|
|
35
|
+
{% set _title = title|default('') %}
|
|
36
|
+
{% set _title_tag = title_tag|default('h4') %}
|
|
37
|
+
{% set _with_text = with_text|default(false) %}
|
|
38
|
+
{% set _wrapper_classes = 'bcl-featured-item' %}
|
|
39
|
+
{% set _description = description|default('') %}
|
|
29
40
|
{% set _embedded_media = embedded_media|default('') %}
|
|
30
|
-
{% set _image = image|default(
|
|
31
|
-
{% set _poster_image = poster_image|default(
|
|
32
|
-
{% set _content = content|default(
|
|
33
|
-
{% set
|
|
34
|
-
{% set
|
|
41
|
+
{% set _image = image|default('') %}
|
|
42
|
+
{% set _poster_image = poster_image|default('') %}
|
|
43
|
+
{% set _content = content|default('') %}
|
|
44
|
+
{% set _alignment = alignment|default('right') %}
|
|
45
|
+
{% set _content_classes = content_classes|default('') %}
|
|
46
|
+
{% set _ratio = ratio|default('16x9') %}
|
|
35
47
|
{% set _sources = sources|default([]) %}
|
|
36
48
|
{% set _tracks = tracks|default([]) %}
|
|
49
|
+
{% set _col_classes = 'col-12 col-md-6' %}
|
|
50
|
+
{% set _read_more = read_more|default({}) %}
|
|
37
51
|
|
|
52
|
+
{% if wrapper_classes is defined and wrapper_classes is not empty %}
|
|
53
|
+
{% set _wrapper_classes = _wrapper_classes ~ ' ' ~ wrapper_classes %}
|
|
54
|
+
{% endif %}
|
|
55
|
+
|
|
56
|
+
{% if _with_text %}
|
|
57
|
+
<div class="{{ _wrapper_classes }}">
|
|
58
|
+
|
|
59
|
+
{% if _title is not empty %}
|
|
60
|
+
{% set _title_classes = 'fw-bold mb-4' %}
|
|
61
|
+
<{{ _title_tag }} class="{{ _title_classes }}">
|
|
62
|
+
{{- _title -}}
|
|
63
|
+
</{{ _title_tag }}>
|
|
64
|
+
{% endif %}
|
|
65
|
+
|
|
66
|
+
<div class="row">
|
|
67
|
+
<div class="{{ _col_classes }} order-{{ _alignment == "right" ? '1' : '2' }}">
|
|
68
|
+
{{- _description|default('') -}}
|
|
69
|
+
|
|
70
|
+
{% if _read_more is not empty %}
|
|
71
|
+
{% include '@oe-bcl/bcl-link/link.html.twig' with _read_more only %}
|
|
72
|
+
{% endif %}
|
|
73
|
+
</div>
|
|
74
|
+
<div class="{{ _col_classes }} order-{{ _alignment == "right" ? '2' : '1' }}">
|
|
75
|
+
{% endif %}
|
|
38
76
|
|
|
39
77
|
<figure
|
|
40
78
|
{{ attributes }}
|
|
@@ -79,4 +117,10 @@
|
|
|
79
117
|
{% endif %}
|
|
80
118
|
</figure>
|
|
81
119
|
|
|
120
|
+
{% if _with_text %}
|
|
121
|
+
</div>
|
|
122
|
+
</div>
|
|
123
|
+
</div>
|
|
124
|
+
{% endif %}
|
|
125
|
+
|
|
82
126
|
{% endspaceless %}
|
|
@@ -0,0 +1,205 @@
|
|
|
1
|
+
{% spaceless %}
|
|
2
|
+
|
|
3
|
+
{#
|
|
4
|
+
Parameters:
|
|
5
|
+
- title (string) (default: '')
|
|
6
|
+
- title_tag (string) (default: 'h4')
|
|
7
|
+
- item_title (string) (default: '')
|
|
8
|
+
- icon (icon Object) (default: {})
|
|
9
|
+
- text (string) (default: '')
|
|
10
|
+
- content (string) (default: '')
|
|
11
|
+
- image (object) (default: {}) - format: {
|
|
12
|
+
path:"",
|
|
13
|
+
alt: "",
|
|
14
|
+
}
|
|
15
|
+
- badges (array of badges Object) (default: [])
|
|
16
|
+
- meta (string) (default: '')
|
|
17
|
+
- language (string) (default: '')
|
|
18
|
+
- variant (string) (default: 'default')
|
|
19
|
+
- options: ['default', 'card']
|
|
20
|
+
- download (link Object) (default: {})
|
|
21
|
+
- translation (object) (default: {}) format: {
|
|
22
|
+
id: "",
|
|
23
|
+
label: {}, - link Object
|
|
24
|
+
items: [
|
|
25
|
+
{
|
|
26
|
+
extension: "",
|
|
27
|
+
language: "",
|
|
28
|
+
size: "",
|
|
29
|
+
download: {}, - link Object
|
|
30
|
+
},
|
|
31
|
+
}
|
|
32
|
+
- icon_path (string) (default: '')
|
|
33
|
+
#}
|
|
34
|
+
|
|
35
|
+
{# Internal properties #}
|
|
36
|
+
|
|
37
|
+
{% set _icon = icon|default({}) %}
|
|
38
|
+
{% set _title = title|default('') %}
|
|
39
|
+
{% set _title_tag = title_tag|default('h4') %}
|
|
40
|
+
{% set _item_title = item_title|default('') %}
|
|
41
|
+
{% set _text = text|default('') %}
|
|
42
|
+
{% set _content = content|default('') %}
|
|
43
|
+
{% set _image = image|default({}) %}
|
|
44
|
+
{% set _badges = badges|default([]) %}
|
|
45
|
+
{% set _meta = meta|default('') %}
|
|
46
|
+
{% set _language = language|default('') %}
|
|
47
|
+
{% set _variant = variant|default('default') %}
|
|
48
|
+
{% set _download = download|default({}) %}
|
|
49
|
+
{% set _translation = translation|default({}) %}
|
|
50
|
+
{% set _icon_path = icon_path|default({}) %}
|
|
51
|
+
|
|
52
|
+
{% set _container_classes = 'w-100 d-md-flex' %}
|
|
53
|
+
{% if _icon is not empty %}
|
|
54
|
+
{% set _container_classes = _container_classes ~ ' ms-2-5' %}
|
|
55
|
+
{% set _icon = _icon|merge({
|
|
56
|
+
attributes: create_attribute().addClass(['mt-1', 'text-secondary'])
|
|
57
|
+
}) %}
|
|
58
|
+
{% endif %}
|
|
59
|
+
|
|
60
|
+
{% if _title is not empty %}
|
|
61
|
+
{% set _title_classes = 'fw-bold mb-4' %}
|
|
62
|
+
<{{ _title_tag }} class="{{ _title_classes }}">
|
|
63
|
+
{{- _title -}}
|
|
64
|
+
</{{ _title_tag }}>
|
|
65
|
+
{% endif %}
|
|
66
|
+
|
|
67
|
+
{% if _variant == 'card' %}
|
|
68
|
+
{% set attributes = attributes.addClass(['border', 'rounded-bottom']) %}
|
|
69
|
+
{% set _image = _image|merge({
|
|
70
|
+
position: "top",
|
|
71
|
+
classes: "mb-3"
|
|
72
|
+
}) %}
|
|
73
|
+
{% include '@oe-bcl/bcl-card/card.html.twig' with {
|
|
74
|
+
horizontal: true,
|
|
75
|
+
horizontal_grid: {
|
|
76
|
+
left_col_classes: "col-12 col-md-4 order-md-2",
|
|
77
|
+
right_col_classes: "col-12 col-md-8",
|
|
78
|
+
},
|
|
79
|
+
badges: _badges,
|
|
80
|
+
title: {
|
|
81
|
+
content: _item_title,
|
|
82
|
+
},
|
|
83
|
+
text: {
|
|
84
|
+
content: _text,
|
|
85
|
+
classes: "mb-2",
|
|
86
|
+
},
|
|
87
|
+
content: _content,
|
|
88
|
+
image: _image,
|
|
89
|
+
extra_classes_body: "p-0",
|
|
90
|
+
attributes: create_attribute().addClass(['rounded-0', 'rounded-top', 'p-4', 'border-bottom-0'])
|
|
91
|
+
} only %}
|
|
92
|
+
{% else %}
|
|
93
|
+
{% set attributes = attributes.addClass(['border', 'rounded']) %}
|
|
94
|
+
{% endif %}
|
|
95
|
+
|
|
96
|
+
<div
|
|
97
|
+
{{ attributes }}
|
|
98
|
+
>
|
|
99
|
+
<div class="px-3-5 py-3">
|
|
100
|
+
<div class="d-flex">
|
|
101
|
+
{% if _icon is not empty %}
|
|
102
|
+
{%- include '@oe-bcl/bcl-icon/icon.html.twig' with _icon|merge({
|
|
103
|
+
path: _icon_path,
|
|
104
|
+
}) only -%}
|
|
105
|
+
{% endif %}
|
|
106
|
+
<div class="{{ _container_classes }}">
|
|
107
|
+
<div class="flex-grow-1">
|
|
108
|
+
{% if _item_title is not empty and _variant == 'default' %}
|
|
109
|
+
<p class="fw-bold m-0">{{ _item_title }}</p>
|
|
110
|
+
{% endif %}
|
|
111
|
+
{% if _language is not empty or _meta is not empty %}
|
|
112
|
+
<small class="fw-bold m-0">
|
|
113
|
+
{%- if _language is not empty -%}
|
|
114
|
+
{{- _language -}}
|
|
115
|
+
{%- endif -%}
|
|
116
|
+
{%- if _meta is not empty -%}
|
|
117
|
+
<span class="fw-normal">
|
|
118
|
+
{{- ' ' ~ _meta -}}
|
|
119
|
+
</span>
|
|
120
|
+
{%- endif -%}
|
|
121
|
+
</small>
|
|
122
|
+
{% endif %}
|
|
123
|
+
</div>
|
|
124
|
+
{% set _download = _download|merge({
|
|
125
|
+
icon_position: "after",
|
|
126
|
+
icon: {
|
|
127
|
+
name: "download",
|
|
128
|
+
size: "fluid",
|
|
129
|
+
path: _icon_path,
|
|
130
|
+
},
|
|
131
|
+
attributes: create_attribute()
|
|
132
|
+
.setAttribute('download', _download.url)
|
|
133
|
+
.addClass(['text-underline-hover', 'align-self-center', 'd-inline-block', 'mt-1', 'mt-md-0'])
|
|
134
|
+
}) %}
|
|
135
|
+
{% include '@oe-bcl/bcl-link/link.html.twig' with _download only %}
|
|
136
|
+
</div>
|
|
137
|
+
</div>
|
|
138
|
+
</div>
|
|
139
|
+
{% if _translation is not empty %}
|
|
140
|
+
<div class="bg-lighter py-3 px-4 border-top">
|
|
141
|
+
{% set _id = _translation.id|default('language-dropdown' ~ random(1000)) %}
|
|
142
|
+
<div class="text-end text-md-center">
|
|
143
|
+
{% include '@oe-bcl/bcl-link/link.html.twig' with _translation.label|merge({
|
|
144
|
+
path: '#' ~ _id,
|
|
145
|
+
attributes: create_attribute()
|
|
146
|
+
.addClass(['text-underline-hover'])
|
|
147
|
+
.setAttribute('aria-controls', _id)
|
|
148
|
+
.setAttribute('data-bs-toggle', 'collapse')
|
|
149
|
+
.setAttribute('aria-expanded', 'false')
|
|
150
|
+
.setAttribute('role', 'button'),
|
|
151
|
+
}) only %}
|
|
152
|
+
</div>
|
|
153
|
+
{% if _translation.items is not empty and _translation.items is iterable %}
|
|
154
|
+
<div class="collapse" id="{{ _id }}">
|
|
155
|
+
{% for _item in _translation.items %}
|
|
156
|
+
{% set _item_classes = loop.last ? 'pt-3' : 'py-3 border-bottom' %}
|
|
157
|
+
<div class="{{ _item_classes }}">
|
|
158
|
+
{% if _item.type == 'content' %}
|
|
159
|
+
{{ _item.content }}
|
|
160
|
+
{% else %}
|
|
161
|
+
<div class="row">
|
|
162
|
+
<div class="col-12 col-md-9">
|
|
163
|
+
{% if _item.title is not empty %}
|
|
164
|
+
<p class="fw-bold m-0">{{ _item.title }}</p>
|
|
165
|
+
{% endif %}
|
|
166
|
+
{% if _item.title is not empty %}
|
|
167
|
+
<p class="m-0">{{ _item.description }}</p>
|
|
168
|
+
{% endif %}
|
|
169
|
+
{% if _item.language is not empty or _item.meta is not empty %}
|
|
170
|
+
<small class="fw-bold m-0">
|
|
171
|
+
{%- if _item.language is not empty -%}
|
|
172
|
+
{{- _item.language -}}
|
|
173
|
+
{%- endif -%}
|
|
174
|
+
{%- if _item.meta is not empty -%}
|
|
175
|
+
<span class="fw-normal">
|
|
176
|
+
{{- ' ' ~ _item.meta -}}
|
|
177
|
+
</span>
|
|
178
|
+
{%- endif -%}
|
|
179
|
+
</small>
|
|
180
|
+
{% endif %}
|
|
181
|
+
</div>
|
|
182
|
+
<div class="col-12 col-md-3 align-self-end text-md-end">
|
|
183
|
+
{% include '@oe-bcl/bcl-link/link.html.twig' with _item.download|merge({
|
|
184
|
+
icon_position: "after",
|
|
185
|
+
icon: {
|
|
186
|
+
name: "download",
|
|
187
|
+
size: "fluid",
|
|
188
|
+
path: _icon_path,
|
|
189
|
+
},
|
|
190
|
+
attributes: create_attribute()
|
|
191
|
+
.setAttribute("download", _item.download.url)
|
|
192
|
+
.addClass(['d-block', 'text-underline-hover', 'mt-1'])
|
|
193
|
+
}) only %}
|
|
194
|
+
</div>
|
|
195
|
+
</div>
|
|
196
|
+
{% endif %}
|
|
197
|
+
</div>
|
|
198
|
+
{% endfor %}
|
|
199
|
+
</div>
|
|
200
|
+
{% endif %}
|
|
201
|
+
</div>
|
|
202
|
+
{% endif %}
|
|
203
|
+
</div>
|
|
204
|
+
|
|
205
|
+
{% endspaceless %}
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
{% spaceless %}
|
|
2
2
|
|
|
3
3
|
{# Parameters:
|
|
4
|
+
- variant (string) (default: 'neutral')
|
|
4
5
|
- rows (default: []) - Array of predefined objects - format:
|
|
5
6
|
[
|
|
6
7
|
{
|
|
@@ -30,12 +31,13 @@
|
|
|
30
31
|
]
|
|
31
32
|
#}
|
|
32
33
|
|
|
34
|
+
{% set _variant = variant|default('neutral') %}
|
|
33
35
|
{% set _rows = rows|default([]) %}
|
|
34
36
|
|
|
35
37
|
{% if attributes is empty %}
|
|
36
38
|
{% set attributes = create_attribute() %}
|
|
37
39
|
{% endif %}
|
|
38
|
-
{% set attributes = attributes.addClass('bcl-footer') %}
|
|
40
|
+
{% set attributes = attributes.addClass(['bcl-footer', 'bcl-footer--' ~ _variant]) %}
|
|
39
41
|
|
|
40
42
|
<footer
|
|
41
43
|
{{ attributes }}
|
|
@@ -67,7 +69,7 @@
|
|
|
67
69
|
{% if item.type == 'links' %}
|
|
68
70
|
{% for link in item.links %}
|
|
69
71
|
{% include '@oe-bcl/bcl-link/link.html.twig' with link|merge({
|
|
70
|
-
attributes: create_attribute().addClass(['d-block', 'text-
|
|
72
|
+
attributes: create_attribute().addClass(['d-block', 'text-underline-hover', 'mb-1'])
|
|
71
73
|
}) only %}
|
|
72
74
|
{% endfor %}
|
|
73
75
|
{% endif %}
|
|
@@ -0,0 +1,101 @@
|
|
|
1
|
+
{% extends "@oe-bcl/bcl-base-templates/content-type.html.twig" %}
|
|
2
|
+
|
|
3
|
+
{% block banner %}
|
|
4
|
+
<div class="container">
|
|
5
|
+
{% if banner is not empty %}
|
|
6
|
+
<div class="mt-4 mt-md-5">
|
|
7
|
+
{% if banner.image is not empty %}
|
|
8
|
+
<img
|
|
9
|
+
src="{{ banner.image.path }}"
|
|
10
|
+
{% if banner.image.alt is not empty %}
|
|
11
|
+
alt="{{ banner.image.alt }}"
|
|
12
|
+
{% endif %}
|
|
13
|
+
{% if banner.image.class is not empty %}
|
|
14
|
+
class="{{ banner.image.class }}"
|
|
15
|
+
{% endif %}
|
|
16
|
+
/>
|
|
17
|
+
{% endif %}
|
|
18
|
+
{% if banner.title is not empty %}
|
|
19
|
+
<div class="p-md-3-5 pt-3 bg-lighter d-md-flex n-mx-container">
|
|
20
|
+
<h2 class="mb-0 d-inline-block fw-bold">{{ banner.title }}</h2>
|
|
21
|
+
{% if banner.actions is not empty and banner.actions is iterable %}
|
|
22
|
+
<div class="d-grid d-md-block ms-auto">
|
|
23
|
+
{% for _action in banner.actions %}
|
|
24
|
+
{% if _action.type == "link" %}
|
|
25
|
+
{% include '@oe-bcl/bcl-link/link.html.twig' with _action only %}
|
|
26
|
+
{% elseif _action.type == "button" %}
|
|
27
|
+
{% include '@oe-bcl/bcl-button/button.html.twig' with _action only %}
|
|
28
|
+
{% elseif _action.type == "dropdown" %}
|
|
29
|
+
{% include '@oe-bcl/bcl-dropdown/dropdown.html.twig' with _action only %}
|
|
30
|
+
{% endif %}
|
|
31
|
+
{% endfor %}
|
|
32
|
+
</div>
|
|
33
|
+
{% endif %}
|
|
34
|
+
</div>
|
|
35
|
+
{% endif %}
|
|
36
|
+
</div>
|
|
37
|
+
{% endif %}
|
|
38
|
+
{% include '@oe-bcl/bcl-navigation/navigation.html.twig' with navigation only %}
|
|
39
|
+
{% if banner_description is not empty and contact is not empty %}
|
|
40
|
+
{% include '@oe-bcl/bcl-link/link.html.twig' with banner_description.collapse_trigger only %}
|
|
41
|
+
<div class="collapse d-md-block" id="banner-description">
|
|
42
|
+
<div class="row mt-md-4 mb-md-5 pb-md-5">
|
|
43
|
+
<div class="col-md-8">
|
|
44
|
+
<div class="ps-md-3">
|
|
45
|
+
{% if banner_description.metas is not empty and banner_description.metas is iterable %}
|
|
46
|
+
<div class="d-block">
|
|
47
|
+
{% for _meta in banner_description.metas %}
|
|
48
|
+
<p class="mb-0 me-4 d-inline-block text-muted">
|
|
49
|
+
{% include '@oe-bcl/bcl-icon/icon.html.twig' with _meta.icon only %}
|
|
50
|
+
{{- _meta.label -}}
|
|
51
|
+
</p>
|
|
52
|
+
{% endfor %}
|
|
53
|
+
</div>
|
|
54
|
+
{% endif %}
|
|
55
|
+
{{ banner_description.content }}
|
|
56
|
+
</div>
|
|
57
|
+
</div>
|
|
58
|
+
<div class="col-md-4">
|
|
59
|
+
<h4 class="mb-3 pb-2">{{ contact.title }}</h4>
|
|
60
|
+
{% if contact.profiles is not empty and contact.profiles is iterable %}
|
|
61
|
+
{% for _profile in contact.profiles %}
|
|
62
|
+
{% include '@oe-bcl/bcl-user/user-view-compact.html.twig' with _profile only %}
|
|
63
|
+
{% endfor %}
|
|
64
|
+
{% endif %}
|
|
65
|
+
{% if contact.more_link is not empty %}
|
|
66
|
+
{% include '@oe-bcl/bcl-link/link.html.twig' with contact.more_link only %}
|
|
67
|
+
{% endif %}
|
|
68
|
+
</div>
|
|
69
|
+
</div>
|
|
70
|
+
</div>
|
|
71
|
+
{% endif %}
|
|
72
|
+
</div>
|
|
73
|
+
{% endblock %}
|
|
74
|
+
|
|
75
|
+
{% block content %}
|
|
76
|
+
{% if recent is not empty and members is not empty %}
|
|
77
|
+
<div class="row mt-3">
|
|
78
|
+
<div class="col-md-8">
|
|
79
|
+
<h4 class="mb-4 pb-2">{{ recent.title }}</h4>
|
|
80
|
+
{% include '@oe-bcl/bcl-recent-activities/recent-activities.html.twig' with recent.block_data only %}
|
|
81
|
+
</div>
|
|
82
|
+
<div class="col-md-4">
|
|
83
|
+
<h4 class="mt-4 mt-md-0 mb-4 pb-2">{{ members.title}}</h4>
|
|
84
|
+
{% if members.profiles is not empty and members.profiles is iterable %}
|
|
85
|
+
{% for _profile in members.profiles %}
|
|
86
|
+
{% include '@oe-bcl/bcl-user/user-view-compact.html.twig' with _profile only %}
|
|
87
|
+
{% endfor %}
|
|
88
|
+
{% endif %}
|
|
89
|
+
{% if members.more_link is not empty %}
|
|
90
|
+
{% include '@oe-bcl/bcl-link/link.html.twig' with members.more_link only %}
|
|
91
|
+
{% endif %}
|
|
92
|
+
</div>
|
|
93
|
+
</div>
|
|
94
|
+
{% endif %}
|
|
95
|
+
{% if contributions is not empty %}
|
|
96
|
+
<h4 class="my-4 pt-3 pb-2">{{ contributions.title}}</h4>
|
|
97
|
+
{% if contributions.listing is not empty %}
|
|
98
|
+
{% include '@oe-bcl/bcl-listing/listing.html.twig' with contributions.listing only %}
|
|
99
|
+
{% endif %}
|
|
100
|
+
{% endif %}
|
|
101
|
+
{% endblock %}
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
{% extends "@oe-bcl/bcl-base-templates/listing-page.html.twig" %}
|
|
2
|
+
|
|
3
|
+
{% block banner %}
|
|
4
|
+
<div class="container mt-4 mt-md-5">
|
|
5
|
+
<div class="col-xxl-11">
|
|
6
|
+
<div class="p-md-3-5 pt-3 bg-lighter d-md-flex n-mx-container">
|
|
7
|
+
<h2 class="mb-0 d-inline-block fw-bold">{{ banner.title }}</h2>
|
|
8
|
+
{% if banner.actions is not empty and banner.actions is iterable %}
|
|
9
|
+
<div class="d-grid d-md-block ms-auto">
|
|
10
|
+
{% for _action in banner.actions %}
|
|
11
|
+
{% if _action.type == "link" %}
|
|
12
|
+
{% include '@oe-bcl/bcl-link/link.html.twig' with _action only %}
|
|
13
|
+
{% elseif _action.type == "button" %}
|
|
14
|
+
{% include '@oe-bcl/bcl-button/button.html.twig' with _action only %}
|
|
15
|
+
{% elseif _action.type == "dropdown" %}
|
|
16
|
+
{% include '@oe-bcl/bcl-dropdown/dropdown.html.twig' with _action only %}
|
|
17
|
+
{% endif %}
|
|
18
|
+
{% endfor %}
|
|
19
|
+
</div>
|
|
20
|
+
{% endif %}
|
|
21
|
+
</div>
|
|
22
|
+
{% if navigation is not empty %}
|
|
23
|
+
{% include '@oe-bcl/bcl-navigation/navigation.html.twig' with navigation only %}
|
|
24
|
+
{% endif %}
|
|
25
|
+
</div>
|
|
26
|
+
</div>
|
|
27
|
+
{% endblock %}
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
{% spaceless %}
|
|
2
2
|
|
|
3
3
|
{# Parameters:
|
|
4
|
+
- variant (string) (default: 'neutral')
|
|
4
5
|
- navbar (Navbar object) (default: {})
|
|
5
6
|
- project_logo (object) (default: {})
|
|
6
7
|
format: {
|
|
@@ -15,9 +16,11 @@
|
|
|
15
16
|
- modals (Array of modal objects) (default: [])
|
|
16
17
|
#}
|
|
17
18
|
|
|
19
|
+
{% set _variant = variant|default('neutral') %}
|
|
18
20
|
{% set _navbar = navbar|default({}) %}
|
|
19
21
|
{% set _project_logo = project_logo|default({}) %}
|
|
20
22
|
{% set _site_name = site_name|default('') %}
|
|
23
|
+
{% set _site_name_classes = 'bcl-header__site-name' %}
|
|
21
24
|
{% set _head = head|default({}) %}
|
|
22
25
|
{% set _breadcrumbs = breadcrumbs|default({}) %}
|
|
23
26
|
{% set _modals = modals|default([]) %}
|
|
@@ -27,7 +30,11 @@
|
|
|
27
30
|
{% set attributes = create_attribute() %}
|
|
28
31
|
{% endif %}
|
|
29
32
|
|
|
30
|
-
{% set attributes = attributes.addClass(
|
|
33
|
+
{% set attributes = attributes.addClass(['bcl-header', 'bcl-header--' ~ _variant]) %}
|
|
34
|
+
|
|
35
|
+
{% if site_name_classes is not empty %}
|
|
36
|
+
{% set _site_name_classes = _site_name_classes ~ ' ' ~ site_name_classes %}
|
|
37
|
+
{% endif %}
|
|
31
38
|
|
|
32
39
|
{% set _project_classes = 'bcl-header__project' %}
|
|
33
40
|
{% if _light is not empty %}
|
|
@@ -60,7 +67,9 @@
|
|
|
60
67
|
/>
|
|
61
68
|
{% endif %}
|
|
62
69
|
{% if _site_name is not empty %}
|
|
63
|
-
<
|
|
70
|
+
<div class="{{ _site_name_classes }}">
|
|
71
|
+
{{- _site_name -}}
|
|
72
|
+
</div>
|
|
64
73
|
{% endif %}
|
|
65
74
|
</div>
|
|
66
75
|
</div>
|
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
{% spaceless %}
|
|
2
|
+
|
|
3
|
+
{#
|
|
4
|
+
Parameters:
|
|
5
|
+
- "title": (string) (default: '')
|
|
6
|
+
- "full_layout": (boolean) (default: false)
|
|
7
|
+
- "links": (array of link objects) (default: [])
|
|
8
|
+
- "content": (string) (default: '')
|
|
9
|
+
#}
|
|
10
|
+
|
|
11
|
+
{# Internal properties #}
|
|
12
|
+
{% set _title = title|default('') %}
|
|
13
|
+
{% set _links = links|default([]) %}
|
|
14
|
+
{% set _content = content|default('') %}
|
|
15
|
+
{% set _id = id|default('bcl-inpage-navigation-' ~ random(5)) %}
|
|
16
|
+
{% set _full_layout = full_layout|default(false) %}
|
|
17
|
+
{% set attributes = attributes.addClass(['bcl-inpage-navigation', 'position-sticky']).setAttribute('id', _id) %}
|
|
18
|
+
|
|
19
|
+
{# Print the result #}
|
|
20
|
+
{% if _full_layout %}
|
|
21
|
+
<div class="row">
|
|
22
|
+
<div class="col-md-3 d-none d-md-block">
|
|
23
|
+
{% endif %}
|
|
24
|
+
<nav {{ attributes }}>
|
|
25
|
+
{% if _title is defined and _title is not empty %}
|
|
26
|
+
<h5>{{ _title }}</h5>
|
|
27
|
+
{% endif %}
|
|
28
|
+
{% include '@oe-bcl/bcl-navigation/navigation.html.twig' with {
|
|
29
|
+
'pills': true,
|
|
30
|
+
'vertical': true,
|
|
31
|
+
'items': _links,
|
|
32
|
+
} only %}
|
|
33
|
+
</nav>
|
|
34
|
+
{% if _full_layout %}
|
|
35
|
+
</div>
|
|
36
|
+
<div class="col-md-9">
|
|
37
|
+
{{ _content }}
|
|
38
|
+
</div>
|
|
39
|
+
</div>
|
|
40
|
+
{% endif %}
|
|
41
|
+
|
|
42
|
+
{% endspaceless %}
|