@openeuropa/bcl-theme-joinup 0.19.0 → 0.22.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.
Files changed (152) hide show
  1. package/bcl-builder.config.js +11 -4
  2. package/css/oe-bcl-joinup.css +998 -110
  3. package/css/oe-bcl-joinup.css.map +1 -1
  4. package/css/oe-bcl-joinup.min.css +1 -1
  5. package/css/oe-bcl-joinup.min.css.map +1 -1
  6. package/icons/bcl-default-icons.svg +1 -0
  7. package/icons/icons-flag.svg +1 -1
  8. package/js/oe-bcl-joinup.bundle.js +241 -76
  9. package/js/oe-bcl-joinup.bundle.js.map +1 -1
  10. package/js/oe-bcl-joinup.bundle.min.js +1 -1
  11. package/js/oe-bcl-joinup.bundle.min.js.map +1 -1
  12. package/js/oe-bcl-joinup.esm.js +235 -74
  13. package/js/oe-bcl-joinup.esm.js.map +1 -1
  14. package/js/oe-bcl-joinup.esm.min.js +1 -1
  15. package/js/oe-bcl-joinup.esm.min.js.map +1 -1
  16. package/js/oe-bcl-joinup.umd.js +241 -76
  17. package/js/oe-bcl-joinup.umd.js.map +1 -1
  18. package/js/oe-bcl-joinup.umd.min.js +1 -1
  19. package/js/oe-bcl-joinup.umd.min.js.map +1 -1
  20. package/logos/ec/{logo-ec--ar.svg → positive/logo-ec--ar.svg} +0 -0
  21. package/logos/ec/{logo-ec--bg.svg → positive/logo-ec--bg.svg} +0 -0
  22. package/logos/ec/{logo-ec--ca.svg → positive/logo-ec--ca.svg} +0 -0
  23. package/logos/ec/{logo-ec--cs.svg → positive/logo-ec--cs.svg} +0 -0
  24. package/logos/ec/{logo-ec--da.svg → positive/logo-ec--da.svg} +0 -0
  25. package/logos/ec/{logo-ec--de.svg → positive/logo-ec--de.svg} +0 -0
  26. package/logos/ec/{logo-ec--el.svg → positive/logo-ec--el.svg} +0 -0
  27. package/logos/ec/{logo-ec--en.svg → positive/logo-ec--en.svg} +0 -0
  28. package/logos/ec/{logo-ec--es.svg → positive/logo-ec--es.svg} +0 -0
  29. package/logos/ec/{logo-ec--et.svg → positive/logo-ec--et.svg} +0 -0
  30. package/logos/ec/{logo-ec--fi.svg → positive/logo-ec--fi.svg} +0 -0
  31. package/logos/ec/{logo-ec--fr.svg → positive/logo-ec--fr.svg} +0 -0
  32. package/logos/ec/{logo-ec--ga.svg → positive/logo-ec--ga.svg} +0 -0
  33. package/logos/ec/{logo-ec--hr.svg → positive/logo-ec--hr.svg} +0 -0
  34. package/logos/ec/{logo-ec--hu.svg → positive/logo-ec--hu.svg} +0 -0
  35. package/logos/ec/{logo-ec--is.svg → positive/logo-ec--is.svg} +0 -0
  36. package/logos/ec/{logo-ec--it.svg → positive/logo-ec--it.svg} +0 -0
  37. package/logos/ec/{logo-ec--lt.svg → positive/logo-ec--lt.svg} +0 -0
  38. package/logos/ec/{logo-ec--lv.svg → positive/logo-ec--lv.svg} +0 -0
  39. package/logos/ec/{logo-ec--mt.svg → positive/logo-ec--mt.svg} +0 -0
  40. package/logos/ec/{logo-ec--nl.svg → positive/logo-ec--nl.svg} +0 -0
  41. package/logos/ec/{logo-ec--no.svg → positive/logo-ec--no.svg} +0 -0
  42. package/logos/ec/{logo-ec--pl.svg → positive/logo-ec--pl.svg} +0 -0
  43. package/logos/ec/{logo-ec--pt.svg → positive/logo-ec--pt.svg} +0 -0
  44. package/logos/ec/{logo-ec--ro.svg → positive/logo-ec--ro.svg} +0 -0
  45. package/logos/ec/{logo-ec--sk.svg → positive/logo-ec--sk.svg} +0 -0
  46. package/logos/ec/{logo-ec--sl.svg → positive/logo-ec--sl.svg} +0 -0
  47. package/logos/ec/{logo-ec--sv.svg → positive/logo-ec--sv.svg} +0 -0
  48. package/logos/ec/{logo-ec--tr.svg → positive/logo-ec--tr.svg} +0 -0
  49. package/logos/eu/condensed-version/negative/logo-eu--ar.svg +18 -0
  50. package/logos/eu/condensed-version/negative/logo-eu--bg.svg +7 -0
  51. package/logos/eu/condensed-version/negative/logo-eu--ca.svg +7 -0
  52. package/logos/eu/condensed-version/negative/logo-eu--cs.svg +7 -0
  53. package/logos/eu/condensed-version/negative/logo-eu--da.svg +7 -0
  54. package/logos/eu/condensed-version/negative/logo-eu--de.svg +7 -0
  55. package/logos/eu/condensed-version/negative/logo-eu--el.svg +7 -0
  56. package/logos/eu/condensed-version/negative/logo-eu--en.svg +7 -0
  57. package/logos/eu/condensed-version/negative/logo-eu--es.svg +7 -0
  58. package/logos/eu/condensed-version/negative/logo-eu--et.svg +7 -0
  59. package/logos/eu/condensed-version/negative/logo-eu--fi.svg +7 -0
  60. package/logos/eu/condensed-version/negative/logo-eu--fr.svg +7 -0
  61. package/logos/eu/condensed-version/negative/logo-eu--ga.svg +7 -0
  62. package/logos/eu/condensed-version/negative/logo-eu--hr.svg +7 -0
  63. package/logos/eu/condensed-version/negative/logo-eu--hu.svg +7 -0
  64. package/logos/eu/condensed-version/negative/logo-eu--is.svg +8 -0
  65. package/logos/eu/condensed-version/negative/logo-eu--it.svg +7 -0
  66. package/logos/eu/condensed-version/negative/logo-eu--lt.svg +7 -0
  67. package/logos/eu/condensed-version/negative/logo-eu--lv.svg +7 -0
  68. package/logos/eu/condensed-version/negative/logo-eu--mt.svg +7 -0
  69. package/logos/eu/condensed-version/negative/logo-eu--nl.svg +7 -0
  70. package/logos/eu/condensed-version/negative/logo-eu--no.svg +7 -0
  71. package/logos/eu/condensed-version/negative/logo-eu--pl.svg +7 -0
  72. package/logos/eu/condensed-version/negative/logo-eu--pt.svg +7 -0
  73. package/logos/eu/condensed-version/negative/logo-eu--ro.svg +7 -0
  74. package/logos/eu/condensed-version/negative/logo-eu--sk.svg +7 -0
  75. package/logos/eu/condensed-version/negative/logo-eu--sl.svg +7 -0
  76. package/logos/eu/condensed-version/negative/logo-eu--sv.svg +7 -0
  77. package/logos/eu/condensed-version/negative/logo-eu--tr.svg +7 -0
  78. package/logos/eu/standard-version/negative/logo-eu--ar.svg +18 -0
  79. package/logos/eu/standard-version/negative/logo-eu--bg.svg +17 -0
  80. package/logos/eu/standard-version/negative/logo-eu--ca.svg +16 -0
  81. package/logos/eu/standard-version/negative/logo-eu--cs.svg +17 -0
  82. package/logos/eu/standard-version/negative/logo-eu--da.svg +23 -0
  83. package/logos/eu/standard-version/negative/logo-eu--de.svg +21 -0
  84. package/logos/eu/standard-version/negative/logo-eu--el.svg +19 -0
  85. package/logos/eu/standard-version/negative/logo-eu--en.svg +18 -0
  86. package/logos/eu/standard-version/negative/logo-eu--es.svg +17 -0
  87. package/logos/eu/standard-version/negative/logo-eu--et.svg +16 -0
  88. package/logos/eu/standard-version/negative/logo-eu--fi.svg +19 -0
  89. package/logos/eu/standard-version/negative/logo-eu--fr.svg +20 -0
  90. package/logos/eu/standard-version/negative/logo-eu--ga.svg +21 -0
  91. package/logos/eu/standard-version/negative/logo-eu--hr.svg +18 -0
  92. package/logos/eu/standard-version/negative/logo-eu--hu.svg +16 -0
  93. package/logos/eu/standard-version/negative/logo-eu--is.svg +20 -0
  94. package/logos/eu/standard-version/negative/logo-eu--it.svg +18 -0
  95. package/logos/eu/standard-version/negative/logo-eu--lt.svg +19 -0
  96. package/logos/eu/standard-version/negative/logo-eu--lv.svg +21 -0
  97. package/logos/eu/standard-version/negative/logo-eu--mt.svg +19 -0
  98. package/logos/eu/standard-version/negative/logo-eu--nl.svg +17 -0
  99. package/logos/eu/standard-version/negative/logo-eu--no.svg +20 -0
  100. package/logos/eu/standard-version/negative/logo-eu--pl.svg +19 -0
  101. package/logos/eu/standard-version/negative/logo-eu--pt.svg +18 -0
  102. package/logos/eu/standard-version/negative/logo-eu--ro.svg +21 -0
  103. package/logos/eu/standard-version/negative/logo-eu--sk.svg +17 -0
  104. package/logos/eu/standard-version/negative/logo-eu--sl.svg +18 -0
  105. package/logos/eu/standard-version/negative/logo-eu--sv.svg +22 -0
  106. package/logos/eu/standard-version/negative/logo-eu--tr.svg +18 -0
  107. package/package.json +20 -15
  108. package/src/js/index.esm.js +1 -0
  109. package/src/js/index.umd.js +1 -0
  110. package/src/scss/oe-bcl-joinup.scss +5 -0
  111. package/templates/bcl-alert/alert.html.twig +13 -5
  112. package/templates/bcl-badge/badge.html.twig +4 -4
  113. package/templates/bcl-banner/banner.html.twig +16 -9
  114. package/templates/bcl-base-templates/listing-page.html.twig +13 -13
  115. package/templates/bcl-breadcrumb/breadcrumb.html.twig +2 -2
  116. package/templates/bcl-card/card.html.twig +42 -20
  117. package/templates/bcl-card-layout/card-layout.html.twig +6 -1
  118. package/templates/bcl-carousel/carousel.html.twig +26 -5
  119. package/templates/bcl-content-banner/content-banner.html.twig +39 -33
  120. package/templates/bcl-date-block/date-block.html.twig +29 -9
  121. package/templates/bcl-description-list/description-list.html.twig +23 -12
  122. package/templates/bcl-fact-figures/fact-figures.html.twig +9 -5
  123. package/templates/bcl-file/file.html.twig +11 -8
  124. package/templates/bcl-footer/footer.html.twig +3 -1
  125. package/templates/bcl-form/form.html.twig +7 -4
  126. package/templates/bcl-gallery/gallery.html.twig +206 -0
  127. package/templates/bcl-header/header.html.twig +31 -15
  128. package/templates/bcl-heading/heading.html.twig +42 -0
  129. package/templates/bcl-language-list/language-list-grid.html.twig +68 -0
  130. package/templates/bcl-language-list/language-list-modal.html.twig +58 -0
  131. package/templates/bcl-language-list/language-list.html.twig +111 -0
  132. package/templates/bcl-language-switcher/language-switcher.html.twig +44 -0
  133. package/templates/bcl-link/link.html.twig +1 -1
  134. package/templates/bcl-links-block/links-block.html.twig +9 -3
  135. package/templates/bcl-listing/listing.html.twig +12 -8
  136. package/templates/bcl-modal/modal.html.twig +12 -1
  137. package/templates/bcl-navbar/navbar.html.twig +39 -28
  138. package/templates/bcl-page/page.html.twig +1 -1
  139. package/templates/bcl-pagination/pagination.html.twig +123 -9
  140. package/templates/bcl-person/person.html.twig +44 -0
  141. package/templates/bcl-project/project-lists.html.twig +67 -0
  142. package/templates/bcl-project/project.html.twig +84 -49
  143. package/templates/bcl-project-status/project-contributions.html.twig +56 -0
  144. package/templates/bcl-project-status/project-status.html.twig +13 -24
  145. package/templates/bcl-select/select.html.twig +13 -3
  146. package/templates/bcl-subscription/subscription-modal.html.twig +24 -0
  147. package/templates/bcl-subscription/subscription.html.twig +10 -0
  148. package/templates/bcl-subscription-block/subscription-block.html.twig +36 -0
  149. package/templates/bcl-timeline/timeline.html.twig +10 -7
  150. package/templates/bcl-user/user-view-compact.html.twig +9 -2
  151. package/templates/bcl-user/user-view.html.twig +0 -10
  152. package/icons/bootstrap-icons.svg +0 -1
@@ -5,6 +5,7 @@
5
5
  [ default-1-col, highlight-1-col, default-2-col, default-3-col, highlight-2-col, highlight-3-col ]
6
6
  - title: (string) (default: "")
7
7
  - title_tag: (string) (default: "h2")
8
+ - title_attributes (drupal attrs)
8
9
  - items: (array of objects of type card)
9
10
  - link: (object of type link)
10
11
  - alignment: (string) (default: '') options:
@@ -15,6 +16,7 @@
15
16
  {% set _variant = variant|default('default-1-col') %}
16
17
  {% set _title = title|default('') %}
17
18
  {% set _title_tag = title_tag|default('h2') %}
19
+ {% set _title_attributes = title_attributes ?: create_attribute() %}
18
20
  {% set _alignment = alignment|default('') %}
19
21
  {% set _link = link|default({}) %}
20
22
  {% set _classes = ['bcl-listing', 'bcl-listing--' ~ _variant] %}
@@ -35,10 +37,11 @@
35
37
  <div {{ attributes }}>
36
38
 
37
39
  {% if _title is not empty %}
38
- {% set _title_classes = 'fw-bold mb-4' %}
39
- <{{ _title_tag }} class="{{ _title_classes }}">
40
- {{- _title -}}
41
- </{{ _title_tag }}>
40
+ {% include '@oe-bcl/bcl-heading/heading.html.twig' with {
41
+ title: _title,
42
+ title_tag: _title_tag,
43
+ title_attributes: _title_attributes,
44
+ } only %}
42
45
  {% endif %}
43
46
 
44
47
  {% if _items is not empty %}
@@ -47,15 +50,16 @@
47
50
  {% set _max_width = '' %}
48
51
  {% set _image = {} %}
49
52
  {% if _card.image is not empty %}
50
- {% set _max_width = 'mw-listing-img' %}
53
+ {% set _image_classes = _card.image.classes ?: '' %}
51
54
  {% if not _alignment == 'center' %}
52
- {% set _image_classes = _card.image.classes ? _card.image.classes ~ ' mb-3' : 'mb-3' %}
55
+ {% set _image_classes = _image_classes ? _image_classes ~ ' mb-3' : 'mb-3' %}
53
56
  {% endif %}
57
+ {% set _max_width = 'mw-listing-img' %}
54
58
  {% set _card = _card|merge({image: _card.image|merge({
55
- classes: _image_classes
59
+ classes: _image_classes,
56
60
  })}) %}
57
61
  {% elseif _card.date is not empty %}
58
- {% set _max_width = 'mw-date mb-3' %}
62
+ {% set _max_width = 'mw-col-date mb-3' %}
59
63
  {% endif %}
60
64
  {% if _alignment is not empty %}
61
65
  {% set _alignment_class = ' align-self-' ~ _alignment %}
@@ -3,17 +3,22 @@
3
3
  {# Parameters:
4
4
  - size (string) (sm, lg, xl, fullscreen) default('')
5
5
  - id (boolean) (default: 'modal-' ~ random(1000))
6
+ - fullscreen_responsive (string) (default: '')
7
+ options: sm, md, lg, xl, xxl
6
8
  - static_backdrop (boolean) (default: false)
7
9
  - verticaly_centered (boolean) (default: false)
8
10
  - scrollable (boolean) (default: false)
9
11
  - header (block) (default: '')
12
+ - messages (block) (default: '')
10
13
  - body (block) (default: '')
11
14
  - footer (block) (default: '')
12
15
  #}
13
16
  {% set _size = size|default('') %}
14
17
  {% set _id = id|default('modal-' ~ random(1000)) %}
18
+ {% set _fullscreen_responsive = fullscreen_responsive|default('') %}
15
19
  {% set _header = header|default('') %}
16
20
  {% set _body = body|default('') %}
21
+ {% set _messages = messages|default('') %}
17
22
  {% set _static_backdrop = static_backdrop|default(false) %}
18
23
  {% set _verticaly_centered = verticaly_centered|default(false) %}
19
24
  {% set _scrollable = scrollable|default(false) %}
@@ -28,7 +33,7 @@
28
33
  .setAttribute('id', _id)
29
34
  .setAttribute('tabindex', '-1')
30
35
  .setAttribute('aria-hidden', 'true')
31
- .setAttribute('aria-labelledby', _id ~ 'Label')
36
+ .setAttribute('aria-label', _id ~ 'Label')
32
37
  .addClass(_classes)
33
38
  %}
34
39
 
@@ -37,20 +42,26 @@
37
42
  >
38
43
  <div class="modal-dialog
39
44
  {{- _size ? ' modal-' ~ size -}}
45
+ {{- _fullscreen_responsive ? ' modal-fullscreen-' ~ _fullscreen_responsive ~ '-down' -}}
40
46
  {{- _verticaly_centered ? ' modal-dialog-centered' -}}
41
47
  {{- _scrollable ? ' modal-dialog-scrollable' -}}"
42
48
  {{- _static_backdrop ? ' data-bs-backdrop="static"' -}}
43
49
  >
44
50
  <div class="modal-content">
51
+ {% if header is not empty %}
45
52
  <div class="modal-header">
46
53
  {%- block header _header -%}
47
54
  </div>
55
+ {% endif %}
56
+ {%- block messages _messages -%}
48
57
  <div class="modal-body">
49
58
  {%- block body _body -%}
50
59
  </div>
60
+ {% if footer is not empty %}
51
61
  <div class="modal-footer">
52
62
  {%- block footer _footer -%}
53
63
  </div>
64
+ {% endif %}
54
65
  </div>
55
66
  </div>
56
67
  </div>
@@ -18,6 +18,11 @@
18
18
  - color_set (string) (default: 'light')
19
19
  options ['light', 'dark']
20
20
  - disable_collapse (boolean) (default: false)
21
+
22
+ Blocks
23
+ - branding
24
+ - navigation
25
+ - right
21
26
  #}
22
27
  {% set _collapse_id = collapse_id|default('') %}
23
28
  {% set _background = background|default('') %}
@@ -45,26 +50,28 @@
45
50
  {{ attributes }}
46
51
  >
47
52
  <div class='container'>
48
- {% if _brand is not empty %}
49
- <a class='navbar-brand' href='{{ _brand.link }}'>
50
- {% for logo in _brand.logos %}
51
- <img
52
- src='{{ logo.src }}'
53
- {% if logo.alt is not empty %}
54
- alt='{{ logo.alt }}'
55
- {% endif %}
56
- {% if logo.class is not empty %}
57
- class='{{ logo.class }}'
58
- {% endif %}
59
- />
60
- {% endfor %}
61
- {%- if _brand.label is defined -%}
62
- <div class="h5 ms-4-5 d-none d-lg-inline-block">
63
- {{- _brand.label -}}
64
- </div>
65
- {% endif %}
66
- </a>
67
- {% endif %}
53
+ {% block branding %}
54
+ {% if _brand is not empty %}
55
+ <a class='navbar-brand' href='{{ _brand.link }}'>
56
+ {% for logo in _brand.logos %}
57
+ <img
58
+ src='{{ logo.src }}'
59
+ {% if logo.alt is not empty %}
60
+ alt='{{ logo.alt }}'
61
+ {% endif %}
62
+ {% if logo.class is not empty %}
63
+ class='{{ logo.class }}'
64
+ {% endif %}
65
+ />
66
+ {% endfor %}
67
+ {%- if _brand.label is defined -%}
68
+ <div class="h5 ms-4-5 d-none d-lg-inline-block">
69
+ {{- _brand.label -}}
70
+ </div>
71
+ {% endif %}
72
+ </a>
73
+ {% endif %}
74
+ {% endblock %}
68
75
 
69
76
  {% if not _disable_collapse %}
70
77
  <button
@@ -79,16 +86,20 @@
79
86
  <span class='navbar-toggler-icon'></span>
80
87
  </button>
81
88
  <div class='collapse navbar-collapse' id='{{ _collapse_id }}'>
89
+ {% endif %}
90
+ {% block navigation %}
91
+ {% if _navigation is not empty %}
92
+ {% include '@oe-bcl/bcl-navigation/navigation.html.twig' with _navigation only %}
82
93
  {% endif %}
83
- {% if _navigation is not empty %}
84
- {% include '@oe-bcl/bcl-navigation/navigation.html.twig' with _navigation only %}
85
- {% endif %}
86
- {% if _form is not empty %}
87
- {% include '@oe-bcl/bcl-form/form.html.twig' with _form only %}
88
- {% endif %}
89
- {% if not _disable_collapse %}
90
- </div>
94
+ {% endblock %}
95
+ {% block right %}
96
+ {% if _form is not empty %}
97
+ {% include '@oe-bcl/bcl-form/form.html.twig' with _form only %}
91
98
  {% endif %}
99
+ {% endblock %}
100
+ {% if not _disable_collapse %}
101
+ </div>
102
+ {% endif %}
92
103
  </div>
93
104
  </nav>
94
105
 
@@ -5,7 +5,7 @@
5
5
  {% endblock %}
6
6
 
7
7
  {% block content %}
8
- <p>Lorem ipsum dolor sit amet, consectetur adipiscing elit. Morbi sit amet eleifend tortor. In facilisis eros vitae turpis ullamcorper,
8
+ <p id="content">Lorem ipsum dolor sit amet, consectetur adipiscing elit. Morbi sit amet eleifend tortor. In facilisis eros vitae turpis ullamcorper,
9
9
  a euismod dolor lacinia. Nam facilisis ipsum et sollicitudin imperdiet. Curabitur a efficitur ante. Phasellus non felis laoreet,
10
10
  posuere ante ut, rhoncus tortor. Proin sed erat vel nisl luctus vulputate. Nunc tristique ultricies turpis, eu dictum enim ultrices vel.
11
11
  Sed posuere at leo sit amet placerat. Sed dapibus viverra urna ac pretium. Praesent et laoreet erat, eget volutpat metus. Duis ac augue
@@ -6,7 +6,16 @@
6
6
  - alignment (string) (default: '')
7
7
  - options ["end", "center"]
8
8
  - aria_label (string) (default: '')
9
- - enable_icon (boolean) (default: false)
9
+ - enable_prev_next_icon (boolean) (default: false)
10
+ - enable_first_last_icon (boolean) (default: true)
11
+ - first (object)
12
+ format: {
13
+ - path (string)
14
+ - label (string)
15
+ - disabled (boolean)
16
+ - aria_label (string)
17
+ - icon (Icon component)
18
+ }
10
19
  - prev (object)
11
20
  format: {
12
21
  - path (string)
@@ -23,6 +32,14 @@
23
32
  - aria_label (string)
24
33
  - icon (Icon component)
25
34
  }
35
+ - last (object)
36
+ format: {
37
+ - path (string)
38
+ - label (string)
39
+ - disabled (boolean)
40
+ - aria_label (string)
41
+ - icon (Icon component)
42
+ }
26
43
  - items (array of objects)
27
44
  format: [
28
45
  {
@@ -31,16 +48,21 @@
31
48
  - disabled (boolean)
32
49
  - active (boolean)
33
50
  }
51
+ - icon_path (string) (default: '')
34
52
  - extra_classes (string) (default: '')
35
53
  #}
36
54
 
37
55
  {% set _size = size|default('') %}
38
56
  {% set _alignment = alignment|default('') %}
39
57
  {% set _aria_label = aria_label|default('') %}
40
- {% set _enable_icon = enable_icon|default(false) %}
58
+ {% set _enable_prev_next_icon = enable_prev_next_icon|default(false) %}
59
+ {% set _enable_first_last_icon = enable_first_last_icon ?? true %}
41
60
  {% set _items = items|default([]) %}
61
+ {% set _first = first|default({}) %}
42
62
  {% set _next = next|default({}) %}
43
63
  {% set _prev = prev|default({}) %}
64
+ {% set _last = last|default({}) %}
65
+ {% set _icon_path = icon_path|default({}) %}
44
66
  {% set _classes = 'pagination' %}
45
67
  {% if _size is not empty %}
46
68
  {% set _classes = _classes ~ ' pagination-' ~ _size %}
@@ -53,6 +75,8 @@
53
75
  {% set attributes = create_attribute() %}
54
76
  {% endif %}
55
77
 
78
+ {% set attributes = attributes.setAttribute('role', 'navigation') %}
79
+
56
80
  {% if _aria_label is not empty %}
57
81
  {% set attributes = attributes.setAttribute('aria-label', aria_label) %}
58
82
  {% endif %}
@@ -64,6 +88,43 @@
64
88
  {{ attributes }}
65
89
  >
66
90
  <ul class="{{ _classes }}">
91
+ {% if _first is not empty %}
92
+ {% set _first_class = 'page-item' %}
93
+ {% if _first.disabled %}
94
+ {% set _first_class = _first_class ~ ' disabled' %}
95
+ {% endif %}
96
+ <li class="{{ _first_class }}">
97
+ <a
98
+ class="page-link"
99
+ href="{{ _first.path }}"
100
+ {% if _first.disabled %}
101
+ tabindex="-1"
102
+ aria-disabled="true"
103
+ {% endif %}
104
+ {%- if _first.aria_label -%}
105
+ aria-label="{{ _first.aria_label }}"
106
+ {%- endif -%}
107
+ >
108
+ {%- if _enable_first_last_icon -%}
109
+ {%- if _first.icon is not empty -%}
110
+ {%- include '@oe-bcl/bcl-icon/icon.html.twig' with _first.icon only -%}
111
+ {%- else -%}
112
+ {%- if _icon_path is not empty -%}
113
+ {% include '@oe-bcl/bcl-icon/icon.html.twig' with {
114
+ name: "chevron-double-left",
115
+ size: "fluid",
116
+ path: _icon_path,
117
+ } only %}
118
+ {%- else -%}
119
+ <span aria-hidden="true">&laquo;</span>
120
+ {%- endif -%}
121
+ {%- endif -%}
122
+ {%- else -%}
123
+ {{- _first.label -}}
124
+ {%- endif -%}
125
+ </a>
126
+ </li>
127
+ {% endif %}
67
128
  {% if _prev is not empty %}
68
129
  {% set _prev_class = 'page-item' %}
69
130
  {% if _prev.disabled %}
@@ -81,14 +142,22 @@
81
142
  aria-label="{{ _prev.aria_label }}"
82
143
  {%- endif -%}
83
144
  >
84
- {%- if _enable_icon -%}
145
+ {%- if _enable_prev_next_icon -%}
85
146
  {%- if _prev.icon is not empty -%}
86
- {%- include '@oe-bcl/bcl-icon/icon.html.twig' with _prev.icon only -%}
147
+ {%- include '@oe-bcl/bcl-icon/icon.html.twig' with _prev.icon only -%}
87
148
  {%- else -%}
88
- <span aria-hidden="true">&laquo;</span>
149
+ {%- if _icon_path is not empty -%}
150
+ {% include '@oe-bcl/bcl-icon/icon.html.twig' with {
151
+ name: "chevron-left",
152
+ size: "fluid",
153
+ path: _icon_path,
154
+ } only %}
155
+ {%- else -%}
156
+ <span aria-hidden="true">&lsaquo;</span>
157
+ {%- endif -%}
89
158
  {%- endif -%}
90
159
  {%- else -%}
91
- {{- _prev.label -}}
160
+ {{- _prev.label -}}
92
161
  {%- endif -%}
93
162
  </a>
94
163
  </li>
@@ -136,14 +205,59 @@
136
205
  aria-label="{{ _next.aria_label }}"
137
206
  {%- endif -%}
138
207
  >
139
- {%- if _enable_icon -%}
208
+ {%- if _enable_prev_next_icon -%}
140
209
  {%- if _next.icon is not empty -%}
141
- {%- include '@oe-bcl/bcl-icon/icon.html.twig' with _next.icon only -%}
210
+ {%- include '@oe-bcl/bcl-icon/icon.html.twig' with _next.icon only -%}
142
211
  {%- else -%}
143
- <span aria-hidden="true">&raquo;</span>
212
+ {%- if _icon_path is not empty -%}
213
+ {% include '@oe-bcl/bcl-icon/icon.html.twig' with {
214
+ name: "chevron-right",
215
+ size: "fluid",
216
+ path: _icon_path,
217
+ } only %}
218
+ {%- else -%}
219
+ <span aria-hidden="true">&rsaquo;</span>
220
+ {%- endif -%}
144
221
  {%- endif -%}
145
222
  {%- else -%}
146
223
  {{- _next.label -}}
224
+ {%- endif -%}
225
+ </a>
226
+ </li>
227
+ {% endif %}
228
+ {% if _last is not empty %}
229
+ {% set _last_class = 'page-item' %}
230
+ {% if _last.disabled %}
231
+ {% set _last_class = _last_class ~ ' disabled' %}
232
+ {% endif %}
233
+ <li class="{{ _last_class }}">
234
+ <a
235
+ class="page-link"
236
+ href="{{ _last.path }}"
237
+ {% if _last.disabled %}
238
+ tabindex="-1"
239
+ aria-disabled="true"
240
+ {% endif %}
241
+ {%- if _last.aria_label -%}
242
+ aria-label="{{ _last.aria_label }}"
243
+ {%- endif -%}
244
+ >
245
+ {%- if _enable_first_last_icon -%}
246
+ {%- if _last.icon is not empty -%}
247
+ {%- include '@oe-bcl/bcl-icon/icon.html.twig' with _last.icon only -%}
248
+ {%- else -%}
249
+ {%- if _icon_path is not empty -%}
250
+ {% include '@oe-bcl/bcl-icon/icon.html.twig' with {
251
+ name: "chevron-double-right",
252
+ size: "fluid",
253
+ path: _icon_path,
254
+ } only %}
255
+ {%- else -%}
256
+ <span aria-hidden="true">&raquo;</span>
257
+ {%- endif -%}
258
+ {%- endif -%}
259
+ {%- else -%}
260
+ {{- _last.label -}}
147
261
  {%- endif -%}
148
262
  </a>
149
263
  </li>
@@ -0,0 +1,44 @@
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
+ {% if social_media.main_title is not empty %}
9
+ <h3
10
+ class="fw-bold mb-4"
11
+ >{{- social_media.main_title -}}</h3>
12
+ {% endif %}
13
+ {% if social_media.links is defined and social_media.links is not empty %}
14
+ <div class="mb-4-5">
15
+ {% for link in social_media.links %}
16
+ {% include '@oe-bcl/bcl-link/link.html.twig' with link only %}
17
+ {% endfor %}
18
+ </div>
19
+ {% endif %}
20
+
21
+ {% if information.main_title is not empty %}
22
+ <h3
23
+ class="fw-bold mb-4"
24
+ >{{- information.main_title -}}</h3>
25
+ {% endif %}
26
+ {% if information.content is not empty %}
27
+ <div class="mb-4-5">
28
+ {{- information.content -}}
29
+ </div>
30
+ {% endif %}
31
+
32
+ {% if files.main_title is not empty %}
33
+ <h3
34
+ class="fw-bold mb-4"
35
+ >{{- files.main_title -}}</h3>
36
+ {% endif %}
37
+ {% if files.listing is defined and files.listing is not empty %}
38
+ <div class="mb-4-5">
39
+ {% for file in files.listing %}
40
+ {% include '@oe-bcl/bcl-file/file.html.twig' with file only %}
41
+ {% endfor %}
42
+ </div>
43
+ {% endif %}
44
+ {% endblock %}
@@ -0,0 +1,67 @@
1
+ {% spaceless %}
2
+
3
+
4
+ {#
5
+ Parameters:
6
+ - title (heading object) (default: {})
7
+ - items (array) (default: [])
8
+ {
9
+ title: (heading object),
10
+ content: [
11
+ description list object
12
+ ]
13
+ }
14
+ #}
15
+
16
+ {% set _title = title|default('') %}
17
+ {% set _title_tag = title_tag|default('h3') %}
18
+ {% set _title_attributes = title_attributes ?: create_attribute() %}
19
+ {% set _items = items|default([]) %}
20
+
21
+ {% if attributes is empty %}
22
+ {% set attributes = create_attribute() %}
23
+ {% endif %}
24
+
25
+ {% set _title_classes = ['fw-bold', 'my-4-5'] %}
26
+ {% set _title_attributes = _title_attributes.addClass(_title_classes) %}
27
+
28
+ <div
29
+ {{ attributes }}
30
+ >
31
+ {% if _title is not empty %}
32
+ {% include '@oe-bcl/bcl-heading/heading.html.twig' with {
33
+ title: _title,
34
+ title_tag: _title_tag,
35
+ attributes: _title_attributes,
36
+ } only %}
37
+ {% endif %}
38
+ {% if _items is defined and _items is not empty %}
39
+ {% for _item in _items %}
40
+ {% if _item.title is not empty %}
41
+ {% set _item_title_attributes = _item.title_attributes ?: create_attribute() %}
42
+ {% set _item_title_attributes = _item_title_attributes.addClass(['fw-bold', 'mb-3']) %}
43
+ {% include '@oe-bcl/bcl-heading/heading.html.twig' with {
44
+ title: _item.title,
45
+ title_tag: _item.title_tag|default('h4'),
46
+ attributes: _item_title_attributes,
47
+ } only %}
48
+ {% endif %}
49
+ {% for _list in _item.content %}
50
+ {% if _list.attributes is empty %}
51
+ {% set _list = _list|merge({
52
+ attributes: create_attribute()
53
+ }) %}
54
+ {% endif %}
55
+ {% if not loop.last %}
56
+ {% set _list = _list|merge({
57
+ attributes: _list.attributes.addClass(['border-bottom', 'pb-3'])
58
+ })
59
+ %}
60
+ {% endif %}
61
+ {% include '@oe-bcl/bcl-description-list/description-list.html.twig' with _list only %}
62
+ {% endfor %}
63
+ {% endfor %}
64
+ {% endif %}
65
+ </div>
66
+
67
+ {% endspaceless %}
@@ -5,56 +5,91 @@
5
5
  {% endblock %}
6
6
 
7
7
  {% block content %}
8
- {% include '@oe-bcl/bcl-project-status/project-status.html.twig' with project_details|merge({ charts: charts }) %}
8
+ {% if project_status_title is not empty %}
9
+ {% set _project_title_attributes = create_attribute().addClass(['fw-bold', 'mb-4']) %}
10
+ {% if project_status_id is not empty %}
11
+ {% set _project_title_attributes = _project_title_attributes.setAttribute('id', project_status_id) %}
12
+ {% endif %}
13
+ {% include '@oe-bcl/bcl-heading/heading.html.twig' with {
14
+ title: project_status_title,
15
+ title_tag: 'h3',
16
+ attributes: _project_title_attributes,
17
+ } only %}
18
+ {% endif %}
19
+ {% if project_status is not empty %}
20
+ {% include '@oe-bcl/bcl-project-status/project-status.html.twig' with project_status %}
21
+ {% endif %}
22
+ {% if project_contributions is not empty %}
23
+ {% include '@oe-bcl/bcl-project-status/project-contributions.html.twig' with project_contributions %}
24
+ {% endif %}
9
25
 
10
- <div class="border-bottom mb-4">
11
- {% include '@oe-bcl/bcl-description-list/description-list.html.twig' with details_list only %}
26
+ {% if status_lists is not empty %}
27
+ {% include '@oe-bcl/bcl-project/project-lists.html.twig' with status_lists only %}
28
+ {% endif %}
29
+
30
+ {% if first_paragraphs is defined and first_paragraphs is not empty %}
31
+ {% for _paragraph in first_paragraphs %}
32
+ {% include '@oe-bcl/bcl-heading/heading.html.twig' with {
33
+ title: _paragraph.title,
34
+ title_tag: 'h3',
35
+ attributes: create_attribute().addClass(['fw-bold', 'mb-4', 'pt-3'])
36
+ .setAttribute('id', _paragraph.title_id),
37
+ } only %}
38
+ {{- _paragraph.content -}}
39
+ {% endfor %}
40
+ {% endif %}
41
+
42
+ {% if featured_lists is not empty %}
43
+ {% include '@oe-bcl/bcl-project/project-lists.html.twig' with featured_lists only %}
44
+ {% endif %}
45
+
46
+ {% if content_lists is not empty %}
47
+ {% include '@oe-bcl/bcl-project/project-lists.html.twig' with content_lists only %}
48
+ {% endif %}
49
+
50
+ {% if second_paragraphs is defined and second_paragraphs is not empty %}
51
+ {% for _paragraph in second_paragraphs %}
52
+ {% include '@oe-bcl/bcl-heading/heading.html.twig' with {
53
+ title: _paragraph.title,
54
+ title_tag: 'h3',
55
+ attributes: create_attribute().addClass(['fw-bold', 'mb-4', 'pt-3'])
56
+ .setAttribute('id', _paragraph.title_id),
57
+ } only %}
58
+ {{- _paragraph.content -}}
59
+ {% endfor %}
60
+ {% endif %}
61
+
62
+ {% if gallery.main_title is not empty %}
63
+ {% set _gallery_title_attributes = create_attribute().addClass(['fw-bold', 'my-4']) %}
64
+ {% if gallery.main_title_id is not empty %}
65
+ {% set _gallery_title_attributes = _gallery_title_attributes.setAttribute('id', gallery.main_title_id) %}
66
+ {% endif %}
67
+ {% include '@oe-bcl/bcl-heading/heading.html.twig' with {
68
+ title: gallery.main_title,
69
+ title_tag: 'h3',
70
+ attributes: _gallery_title_attributes,
71
+ } only %}
72
+ {% endif %}
73
+ {% if gallery.items is defined and gallery.items is not empty %}
74
+ <div class="mt-3">
75
+ {% for _showcase in gallery.items %}
76
+ <div class="mb-2-5 pb-4">
77
+ {% if _showcase.carousel %}
78
+ {% include '@oe-bcl/bcl-carousel/carousel.html.twig' with _showcase only %}
79
+ {% else %}
80
+ {% include '@oe-bcl/bcl-featured-media/featured-media.html.twig' with _showcase only %}
81
+ {% endif %}
82
+ </div>
83
+ {% endfor %}
12
84
  </div>
85
+ {% endif %}
86
+
87
+ {% if social_block is not empty %}
88
+ {% block social_block %}
89
+ {{ social_buttons }}
90
+ {% include '@oe-bcl/bcl-button/button.html.twig' with button_social_modal only %}
91
+ {% include '@oe-bcl/bcl-modal/modal.html.twig' with social_modal only %}
92
+ {% endblock %}
93
+ {% endif %}
13
94
 
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
95
  {% endblock %}