govuk_publishing_components 18.0.1 → 18.1.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.
- checksums.yaml +4 -4
- data/app/assets/stylesheets/govuk_publishing_components/components/_related-navigation.scss +2 -2
- data/app/assets/stylesheets/govuk_publishing_components/components/_share-links.scss +13 -1
- data/app/views/govuk_publishing_components/components/_related_navigation.html.erb +7 -1
- data/app/views/govuk_publishing_components/components/_share_links.html.erb +14 -2
- data/app/views/govuk_publishing_components/components/docs/related_navigation.yml +46 -0
- data/app/views/govuk_publishing_components/components/docs/share_links.yml +41 -0
- data/app/views/govuk_publishing_components/components/related_navigation/_section.html.erb +1 -0
- data/lib/govuk_publishing_components/presenters/related_navigation_helper.rb +47 -1
- data/lib/govuk_publishing_components/version.rb +1 -1
- metadata +2 -2
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA256:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: 0aea274f30d9c743a631169bf2e4793b3887a3479d0b48ef928ae9b6654483da
|
|
4
|
+
data.tar.gz: 994fe267ee6273b160defdc4f124c78773956147e3021f98b952b79db1483ecd
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: 0e5512c8f700cfe2cdb3c8e69096012878d0cc0c4eb57153c8e9890a91082615b435121bb2937db094f9a7c4377acbe9c2315149c8dbf6617691d279128bb543
|
|
7
|
+
data.tar.gz: ad3f9632302f2e583029842fcdb105be963f475b280023f97e6c26c07926cc58d316a9fca07058583229bc87dfbb983dcf598484fdde2ffbb50ecdcf20699cad
|
|
@@ -42,10 +42,10 @@
|
|
|
42
42
|
.gem-c-related-navigation__link {
|
|
43
43
|
list-style-type: none;
|
|
44
44
|
margin-top: govuk-spacing(3);
|
|
45
|
-
@include govuk-font($size: 16, $weight: regular, $line-height: 1.
|
|
45
|
+
@include govuk-font($size: 16, $weight: regular, $line-height: 1.45);
|
|
46
46
|
|
|
47
47
|
@include govuk-media-query($from: tablet) {
|
|
48
|
-
|
|
48
|
+
line-height: 1.28;
|
|
49
49
|
}
|
|
50
50
|
}
|
|
51
51
|
|
|
@@ -13,6 +13,7 @@ $share-button-height: 32px;
|
|
|
13
13
|
display: inline-block;
|
|
14
14
|
min-height: $share-button-height;
|
|
15
15
|
padding-left: ($share-button-width + govuk-spacing(2));
|
|
16
|
+
padding-right: govuk-spacing(1);
|
|
16
17
|
margin-bottom: govuk-spacing(2);
|
|
17
18
|
font-size: $share-button-height / 2;
|
|
18
19
|
line-height: $share-button-height;
|
|
@@ -48,7 +49,7 @@ $share-button-height: 32px;
|
|
|
48
49
|
}
|
|
49
50
|
|
|
50
51
|
.gem-c-share-links__list-item {
|
|
51
|
-
padding-left:
|
|
52
|
+
padding-left: govuk-spacing(1);
|
|
52
53
|
padding-right: ($share-button-width + govuk-spacing(2));
|
|
53
54
|
}
|
|
54
55
|
|
|
@@ -58,6 +59,17 @@ $share-button-height: 32px;
|
|
|
58
59
|
}
|
|
59
60
|
}
|
|
60
61
|
|
|
62
|
+
.gem-c-share-links--columns {
|
|
63
|
+
.gem-c-share-links__list {
|
|
64
|
+
display: flex;
|
|
65
|
+
flex-wrap: wrap;
|
|
66
|
+
}
|
|
67
|
+
|
|
68
|
+
.gem-c-share-links__list-item {
|
|
69
|
+
flex: 0 0 200px;
|
|
70
|
+
}
|
|
71
|
+
}
|
|
72
|
+
|
|
61
73
|
.gem-c-share-links--stacked {
|
|
62
74
|
.gem-c-share-links__list-item {
|
|
63
75
|
display: block;
|
|
@@ -7,7 +7,13 @@
|
|
|
7
7
|
<% if local_assigns[:context] != :footer %>
|
|
8
8
|
<h2 id="related-nav-related_items-<%= random %>"
|
|
9
9
|
class="gem-c-related-navigation__main-heading"
|
|
10
|
-
data-track-count="sidebarRelatedItemSection"
|
|
10
|
+
data-track-count="sidebarRelatedItemSection"
|
|
11
|
+
<%= related_nav_helper.t_lang(
|
|
12
|
+
"components.related_#{local_assigns[:context]}_navigation.related_content",
|
|
13
|
+
default: 'components.related_navigation.related_content'
|
|
14
|
+
)
|
|
15
|
+
%>
|
|
16
|
+
>
|
|
11
17
|
<%= t("components.related_#{local_assigns[:context]}_navigation.related_content",
|
|
12
18
|
default: t('components.related_navigation.related_content')) %>
|
|
13
19
|
</h2>
|
|
@@ -3,12 +3,21 @@
|
|
|
3
3
|
title ||= false
|
|
4
4
|
track_as_sharing ||= false
|
|
5
5
|
stacked ||= false
|
|
6
|
+
columns ||= false
|
|
6
7
|
|
|
7
8
|
brand ||= false
|
|
8
9
|
brand_helper = GovukPublishingComponents::AppHelpers::BrandHelper.new(brand)
|
|
10
|
+
|
|
11
|
+
classes = %w(gem-c-share-links)
|
|
12
|
+
classes << "gem-c-share-links--stacked" if stacked
|
|
13
|
+
classes << "gem-c-share-links--columns" if columns
|
|
14
|
+
classes << brand_helper.brand_class
|
|
15
|
+
|
|
16
|
+
data_attributes ||= {}
|
|
17
|
+
data_attributes[:module] = 'track-click'
|
|
9
18
|
%>
|
|
10
19
|
<% if links.any? %>
|
|
11
|
-
|
|
20
|
+
<%= tag.div(class: classes, data: data_attributes) do %>
|
|
12
21
|
<% if title %>
|
|
13
22
|
<h2 class="gem-c-share-links__title"><%= title %></h2>
|
|
14
23
|
<% end %>
|
|
@@ -62,6 +71,9 @@
|
|
|
62
71
|
<% elsif link[:icon] == 'youtube' %>
|
|
63
72
|
<svg xmlns="http://www.w3.org/2000/svg" width="32" height="32" viewBox="9 9 32 32"><path fill="currentColor" d="M9 9h32v32H9V9z"/><path fill="#FFF" d="M19.88 33.32V16.68L33.32 25l-13.44 8.32z"/></svg>
|
|
64
73
|
|
|
74
|
+
<% elsif link[:icon] == 'whatsapp' %>
|
|
75
|
+
<svg xmlns="http://www.w3.org/2000/svg" width="32" height="32"><path d="M0 32V0h32v32H0zm20.839-13.894c-.263-.131-1.555-.766-1.796-.854-.24-.088-.416-.132-.59.131-.176.263-.68.855-.833 1.03-.153.176-.307.198-.57.066-.262-.131-1.109-.41-2.113-1.304-.78-.697-1.308-1.557-1.461-1.82-.153-.263-.016-.406.115-.536.118-.118.263-.308.394-.46.131-.154.175-.264.263-.44.088-.174.044-.328-.022-.46-.066-.131-.591-1.424-.81-1.95-.214-.513-.43-.443-.59-.452a10.506 10.506 0 0 0-.505-.009.964.964 0 0 0-.7.329c-.241.263-.92.899-.92 2.192 0 1.293.942 2.542 1.073 2.718.131.176 1.852 2.83 4.489 3.967.626.27 1.116.433 1.497.554.63.2 1.202.172 1.655.104.505-.075 1.555-.636 1.774-1.25.219-.613.219-1.14.153-1.25-.066-.108-.24-.174-.503-.306zm-4.795 6.547h-.003a8.73 8.73 0 0 1-4.449-1.219l-.319-.19-3.308.869.883-3.226-.208-.33a8.718 8.718 0 0 1-1.336-4.652c.001-4.819 3.922-8.74 8.744-8.74a8.68 8.68 0 0 1 6.179 2.564 8.686 8.686 0 0 1 2.557 6.183c-.002 4.82-3.922 8.74-8.74 8.74zm7.44-16.18a10.449 10.449 0 0 0-7.44-3.084c-5.796 0-10.513 4.717-10.516 10.516 0 1.853.484 3.662 1.404 5.256l-1.492 5.45 5.574-1.463a10.504 10.504 0 0 0 5.026 1.28h.004c5.796 0 10.514-4.717 10.516-10.515a10.455 10.455 0 0 0-3.077-7.44z" fill="currentColor"/></svg>
|
|
76
|
+
|
|
65
77
|
<% else %>
|
|
66
78
|
<svg xmlns="http://www.w3.org/2000/svg" width="32" height="32" viewBox="9 9 32 32"><path fill="currentColor" d="M9 9h32v32H9V9z"/><path fill="#FFF" d="M12.84 14.12v19.2h5.76l5.76 5.76v-5.76h12.8v-19.2H12.84zm3.2 8.32H28.2V25H16.04v-2.56zm16 7.68h-16v-2.56h16v2.56zm1.92-10.24H16.04v-2.56h17.92v2.56z"/></svg>
|
|
67
79
|
|
|
@@ -70,5 +82,5 @@
|
|
|
70
82
|
</li>
|
|
71
83
|
<% end %>
|
|
72
84
|
</ul>
|
|
73
|
-
|
|
85
|
+
<% end %>
|
|
74
86
|
<% end %>
|
|
@@ -206,6 +206,52 @@ examples:
|
|
|
206
206
|
- title: Pest Control
|
|
207
207
|
base_path: /pest-control
|
|
208
208
|
document_type: contact
|
|
209
|
+
with_different_languages:
|
|
210
|
+
description: |
|
|
211
|
+
Each link can have a `locale` parameter to set the correct `lang` attribute.
|
|
212
|
+
|
|
213
|
+
If the link locale is the same as the document locale, then the lang attribute won't be used. For example, `lang="en"` won't appear on a page written in English.
|
|
214
|
+
data:
|
|
215
|
+
content_item:
|
|
216
|
+
links:
|
|
217
|
+
ordered_related_items:
|
|
218
|
+
- title: Find an apprenticeship (French)
|
|
219
|
+
base_path: /apply-apprenticeship.fr
|
|
220
|
+
locale: fr
|
|
221
|
+
topics:
|
|
222
|
+
- title: Apprenticeships, 14 to 19 education and training for work (Korean)
|
|
223
|
+
base_path: /browse/education/find-course.ko
|
|
224
|
+
document_type: topic
|
|
225
|
+
locale: ko
|
|
226
|
+
topical_events:
|
|
227
|
+
- title: UK-China High-Level People to People Dialogue 2017 (Spanish)
|
|
228
|
+
base_path: /government/topical-events/uk-china-high-level-people-to-people-dialogue-2017.es
|
|
229
|
+
document_type: topical_event
|
|
230
|
+
locale: es
|
|
231
|
+
related:
|
|
232
|
+
- title: Jam producers (Spanish)
|
|
233
|
+
base_path: /jam-producers.es
|
|
234
|
+
document_type: contact
|
|
235
|
+
locale: es
|
|
236
|
+
related_statistical_data_sets:
|
|
237
|
+
- title: International road fuel prices (Italian)
|
|
238
|
+
base_path: /government/statistical-data-sets/comparisons-of-industrial-and-domestic-energy-prices-monthly-figures.it
|
|
239
|
+
document_type: statistical_data_set
|
|
240
|
+
locale: it
|
|
241
|
+
document_collections:
|
|
242
|
+
- title: Recruit an apprentice (formerly apprenticeship vacancies)
|
|
243
|
+
base_path: /government/collections/apprenticeship-vacancies
|
|
244
|
+
document_type: document_collection
|
|
245
|
+
locale: en
|
|
246
|
+
world_locations:
|
|
247
|
+
- title: South Sudan (Arabic)
|
|
248
|
+
base_path: /world/south-sudan/news.ar
|
|
249
|
+
locale: ar
|
|
250
|
+
details:
|
|
251
|
+
external_related_links:
|
|
252
|
+
- url: "http://media.slc.co.uk/sfe/1718/ft/sfe_terms_and_conditions_guide_1718_d.pdf"
|
|
253
|
+
title: "Student loans: terms and conditions 2017 to 2018 (PDF, 136KB)"
|
|
254
|
+
locale: en
|
|
209
255
|
with_all_related-content:
|
|
210
256
|
data:
|
|
211
257
|
content_item:
|
|
@@ -91,6 +91,42 @@ examples:
|
|
|
91
91
|
icon: 'twitter'
|
|
92
92
|
},
|
|
93
93
|
]
|
|
94
|
+
arrange_in_columns:
|
|
95
|
+
description: Share links are arranged in even columns that adjust according to the available space. This option uses flexbox, which is not fully supported in IE <= 10, so in those browsers the columns are not even.
|
|
96
|
+
data:
|
|
97
|
+
columns: true
|
|
98
|
+
links: [
|
|
99
|
+
{
|
|
100
|
+
href: '/facebook-share-link',
|
|
101
|
+
text: 'Facebook',
|
|
102
|
+
icon: 'facebook'
|
|
103
|
+
},
|
|
104
|
+
{
|
|
105
|
+
href: '/twitter-share-link',
|
|
106
|
+
text: 'Twitter',
|
|
107
|
+
icon: 'twitter'
|
|
108
|
+
},
|
|
109
|
+
{
|
|
110
|
+
href: '/email-share-link',
|
|
111
|
+
text: 'Email',
|
|
112
|
+
icon: 'email'
|
|
113
|
+
},
|
|
114
|
+
{
|
|
115
|
+
href: '/flickr-share-link',
|
|
116
|
+
text: 'Flickr',
|
|
117
|
+
icon: 'flickr'
|
|
118
|
+
},
|
|
119
|
+
{
|
|
120
|
+
href: '/instagram-share-link',
|
|
121
|
+
text: 'Instagram',
|
|
122
|
+
icon: 'instagram'
|
|
123
|
+
},
|
|
124
|
+
{
|
|
125
|
+
href: '/linkedin-share-link',
|
|
126
|
+
text: 'Linkedin',
|
|
127
|
+
icon: 'linkedin'
|
|
128
|
+
},
|
|
129
|
+
]
|
|
94
130
|
with_all_icons:
|
|
95
131
|
data:
|
|
96
132
|
stacked: true
|
|
@@ -126,6 +162,11 @@ examples:
|
|
|
126
162
|
text: 'Linkedin',
|
|
127
163
|
icon: 'linkedin'
|
|
128
164
|
},
|
|
165
|
+
{
|
|
166
|
+
href: '/whatsapp-share-link',
|
|
167
|
+
text: 'WhatsApp',
|
|
168
|
+
icon: 'whatsapp'
|
|
169
|
+
},
|
|
129
170
|
{
|
|
130
171
|
href: '/other-share-link',
|
|
131
172
|
text: 'Anything else that might be included that could have quite a long name',
|
|
@@ -28,6 +28,7 @@
|
|
|
28
28
|
link[:path],
|
|
29
29
|
class: related_nav_helper.section_css_class("gem-c-related-navigation__section-link", section_title, link),
|
|
30
30
|
rel: link[:rel],
|
|
31
|
+
lang: related_nav_helper.t_locale_check(link[:locale]),
|
|
31
32
|
data: {
|
|
32
33
|
track_category: 'relatedLinkClicked',
|
|
33
34
|
track_action: "#{section_index}.#{index} #{related_nav_helper.construct_section_heading(section_title) || t('components.related_navigation.related_content')}",
|
|
@@ -90,8 +90,48 @@ module GovukPublishingComponents
|
|
|
90
90
|
related_navigation.flat_map(&:last).any?
|
|
91
91
|
end
|
|
92
92
|
|
|
93
|
+
def t_locale(content, options = {})
|
|
94
|
+
# Check if the content string has a translation
|
|
95
|
+
content_translation_available = translation_present?(content)
|
|
96
|
+
|
|
97
|
+
# True, return locale
|
|
98
|
+
this_locale = I18n.locale if content_translation_available
|
|
99
|
+
# If false, return default locale
|
|
100
|
+
this_locale = I18n.default_locale unless content_translation_available
|
|
101
|
+
|
|
102
|
+
# Check if default string passed in
|
|
103
|
+
if options[:default].present?
|
|
104
|
+
# Check if the default string has a translation
|
|
105
|
+
default_translation_available = translation_present?(options[:default])
|
|
106
|
+
# If true, return locale
|
|
107
|
+
this_locale = I18n.locale if default_translation_available
|
|
108
|
+
# If false, return default_locale
|
|
109
|
+
this_locale = I18n.default_locale unless default_translation_available
|
|
110
|
+
end
|
|
111
|
+
|
|
112
|
+
this_locale
|
|
113
|
+
end
|
|
114
|
+
|
|
115
|
+
def t_lang(content, options = {})
|
|
116
|
+
locale = t_locale(content, options)
|
|
117
|
+
"lang=#{locale}" unless locale.eql?(I18n.locale)
|
|
118
|
+
end
|
|
119
|
+
|
|
120
|
+
def t_locale_check(locale)
|
|
121
|
+
locale.presence unless locale.to_s.eql?(I18n.locale.to_s)
|
|
122
|
+
end
|
|
123
|
+
|
|
93
124
|
private
|
|
94
125
|
|
|
126
|
+
def translation_present?(content)
|
|
127
|
+
default_string = 'This is a string to act as a default for the `I18n.translate` method. Comparing the result reveals if there is a translation in the i18n files.'
|
|
128
|
+
I18n.translate(
|
|
129
|
+
content,
|
|
130
|
+
default: default_string,
|
|
131
|
+
fallback: false
|
|
132
|
+
) != default_string
|
|
133
|
+
end
|
|
134
|
+
|
|
95
135
|
def related_items
|
|
96
136
|
related_quick_links = content_item_details_for('quick_links')
|
|
97
137
|
|
|
@@ -184,7 +224,13 @@ module GovukPublishingComponents
|
|
|
184
224
|
links = links.find_all { |link| link['document_type'] == only }
|
|
185
225
|
end
|
|
186
226
|
|
|
187
|
-
links.map { |link|
|
|
227
|
+
links.map { |link|
|
|
228
|
+
{
|
|
229
|
+
path: link['base_path'],
|
|
230
|
+
text: link['title'],
|
|
231
|
+
locale: link['locale'],
|
|
232
|
+
}
|
|
233
|
+
}
|
|
188
234
|
end
|
|
189
235
|
end
|
|
190
236
|
end
|
metadata
CHANGED
|
@@ -1,14 +1,14 @@
|
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
|
2
2
|
name: govuk_publishing_components
|
|
3
3
|
version: !ruby/object:Gem::Version
|
|
4
|
-
version: 18.0
|
|
4
|
+
version: 18.1.0
|
|
5
5
|
platform: ruby
|
|
6
6
|
authors:
|
|
7
7
|
- GOV.UK Dev
|
|
8
8
|
autorequire:
|
|
9
9
|
bindir: bin
|
|
10
10
|
cert_chain: []
|
|
11
|
-
date: 2019-08-
|
|
11
|
+
date: 2019-08-14 00:00:00.000000000 Z
|
|
12
12
|
dependencies:
|
|
13
13
|
- !ruby/object:Gem::Dependency
|
|
14
14
|
name: gds-api-adapters
|