govuk_publishing_components 23.5.1 → 23.7.3

Sign up to get free protection for your applications and to get access to all the features.
Files changed (28) hide show
  1. checksums.yaml +4 -4
  2. data/app/assets/javascripts/govuk_publishing_components/lib/govspeak/magna-charta.js +2 -3
  3. data/app/assets/stylesheets/govuk_publishing_components/_all_components.scss +1 -0
  4. data/app/assets/stylesheets/govuk_publishing_components/component_support.scss +1 -0
  5. data/app/assets/stylesheets/govuk_publishing_components/components/_contextual-sidebar.scss +2 -0
  6. data/app/assets/stylesheets/govuk_publishing_components/components/_search.scss +1 -1
  7. data/app/assets/stylesheets/govuk_publishing_components/components/_transition-countdown.scss +125 -0
  8. data/app/assets/stylesheets/govuk_publishing_components/components/govspeak/_charts.scss +2 -2
  9. data/app/assets/stylesheets/govuk_publishing_components/components/mixins/_govuk-template-link-focus-override.scss +1 -1
  10. data/app/assets/stylesheets/govuk_publishing_components/components/print/_accordion.scss +3 -3
  11. data/app/views/govuk_publishing_components/component_guide/show.html.erb +1 -2
  12. data/app/views/govuk_publishing_components/components/_attachment.html.erb +5 -4
  13. data/app/views/govuk_publishing_components/components/_contextual_sidebar.html.erb +17 -1
  14. data/app/views/govuk_publishing_components/components/_related_navigation.html.erb +3 -1
  15. data/app/views/govuk_publishing_components/components/_transition_countdown.html.erb +35 -0
  16. data/app/views/govuk_publishing_components/components/docs/attachment.yml +10 -0
  17. data/app/views/govuk_publishing_components/components/docs/contextual_sidebar.yml +0 -1
  18. data/app/views/govuk_publishing_components/components/docs/govspeak.yml +41 -0
  19. data/app/views/govuk_publishing_components/components/docs/transition_countdown.yml +17 -0
  20. data/app/views/govuk_publishing_components/components/related_navigation/_section.html.erb +1 -1
  21. data/config/locales/cy.yml +5 -0
  22. data/config/locales/en.yml +4 -1
  23. data/lib/govuk_publishing_components.rb +1 -0
  24. data/lib/govuk_publishing_components/app_helpers/countdown_helper.rb +33 -0
  25. data/lib/govuk_publishing_components/presenters/related_navigation_helper.rb +0 -40
  26. data/lib/govuk_publishing_components/presenters/shared_helper.rb +42 -0
  27. data/lib/govuk_publishing_components/version.rb +1 -1
  28. metadata +6 -2
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 68acf2ab68688ebffe315cfe437a0e5bbaecb52c9b5e5e7b651730ff7470ad39
4
- data.tar.gz: cf7739918f368db0190aab556f648bfeea71e68f735b6f6bdab63a6c3adae7c9
3
+ metadata.gz: 75f61bf34f923cb81dd2f54ac1d0b13e57654e901f8e82823adb6752c0bf3039
4
+ data.tar.gz: 7237262c7552db55b7f73861ec5f81e4c30b7806b9f409e7bbda73ca02ee6cc6
5
5
  SHA512:
6
- metadata.gz: 3a68c2256473279092d1c77fd0f5aa3333eb7b6481b6137a2a3edae7ff96a74261b1ed0dc423715e82b9c0c1a7498b3ed6f27deb2f515fd163c7260e765b9333
7
- data.tar.gz: 470d0f9f8fac2694021524c2f04b5e1618f5391ea10af5cad91fa7fe22faa39dc6b8a4dfe5029945455c18ad76254b9e6aa6cf0300cde1fc5b9351a0f3c98620
6
+ metadata.gz: 0c4ff693cf242a5f6d5bb23d5d95a426bd097ad2e94af4519756b9b91e2af61db15e6ebb9a79de9bb3f569ca77762b052cd07aeeab2e2ca257d5084bc0baaf11
7
+ data.tar.gz: c0a26d3c76e16881fc348ab176e3cf6c65702b942214435d64e9af22a51cb82cf9e123711e164bd96e1f93f5e4135448f23d033a7560008333638de4661f17a7
@@ -215,8 +215,7 @@ window.GOVUK.Modules = window.GOVUK.Modules || {};
215
215
  return !isNaN(parseFloat(val))
216
216
  },
217
217
  stripValue: function (val) {
218
- var re = new RegExp('\\,|£|%|[a-z]', 'gi')
219
- return val.replace(re, '')
218
+ return val.replace(/,|£|%|[a-z]/gi, '')
220
219
  },
221
220
  returnMax: function (values) {
222
221
  var max = 0
@@ -413,7 +412,7 @@ window.GOVUK.Modules = window.GOVUK.Modules || {};
413
412
  }
414
413
  } else {
415
414
  // if it's a stacked graph
416
- if (spanWidth > cellWidth && cellVal > 0) {
415
+ if ((spanWidth > cellWidth && cellVal > 0) || (cellVal < 1)) {
417
416
  $cell.classList.add('mc-value-overflow')
418
417
  }
419
418
  }
@@ -73,4 +73,5 @@
73
73
  @import "components/textarea";
74
74
  @import "components/title";
75
75
  @import "components/translation-nav";
76
+ @import "components/transition-countdown";
76
77
  @import "components/warning-text";
@@ -9,6 +9,7 @@
9
9
  @import "govuk_publishing_components/components/helpers/variables";
10
10
  @import "govuk_publishing_components/components/helpers/brand-colours";
11
11
  @import "govuk_publishing_components/components/helpers/link";
12
+ @import "govuk_publishing_components/components/helpers/px-to-em";
12
13
  @import "govuk_publishing_components/components/mixins/govuk-template-link-focus-override";
13
14
  @import "govuk_publishing_components/components/mixins/media-down";
14
15
  @import "govuk_publishing_components/components/mixins/margins";
@@ -1,3 +1,5 @@
1
+ @import 'transition-countdown';
2
+
1
3
  .gem-c-contextual-sidebar__brexit-cta {
2
4
  border-top: 2px solid $govuk-brand-colour;
3
5
  }
@@ -39,7 +39,7 @@ $large-input-size: 50px;
39
39
  padding: 6px;
40
40
  margin: 0;
41
41
  width: 100%;
42
- height: $input-size;
42
+ height: em(34, 16);
43
43
  border: $govuk-border-width-form-element solid $govuk-input-border-colour;
44
44
  background: govuk-colour("white");
45
45
  border-radius: 0; //otherwise iphones apply an automatic border radius
@@ -0,0 +1,125 @@
1
+ $transition-campaign-red: #ff003b;
2
+ $transition-campaign-dark-blue: #1e1348;
3
+
4
+ .gem-c-transition-countdown {
5
+ @include govuk-font(19);
6
+ margin-bottom: govuk-spacing(6);
7
+ }
8
+
9
+ .gem-c-transition-countdown--cta {
10
+ background-color: govuk-colour('light-grey', $legacy: 'grey-4');
11
+ border-top: 4px solid $transition-campaign-red;
12
+ display: block;
13
+ padding: govuk-spacing(3);
14
+ text-decoration: none;
15
+ }
16
+
17
+ .gem-c-transition-countdown__title {
18
+ @extend %govuk-heading-m;
19
+ color: $transition-campaign-dark-blue;
20
+ }
21
+
22
+ .gem-c-transition-countdown__countdown {
23
+ margin-top: 0;
24
+ margin-bottom: govuk-spacing(2);
25
+
26
+ @include govuk-media-query($from: tablet) {
27
+ margin-bottom: govuk-spacing(0);
28
+ }
29
+ }
30
+
31
+ .gem-c-transition-countdown__countdown-number {
32
+ @include govuk-font($size: 80, $weight: bold, $line-height: 60px);
33
+
34
+ min-width: 50px;
35
+ text-align: center;
36
+ display: inline-block;
37
+ background: $transition-campaign-dark-blue;
38
+ color: govuk-colour('white');
39
+ position: relative;
40
+ margin-bottom: govuk-spacing(2);
41
+
42
+ @include govuk-media-query($from: tablet) {
43
+ padding: govuk-spacing(2) govuk-spacing(1);
44
+ }
45
+
46
+ &:after {
47
+ position: absolute;
48
+ left: 0;
49
+ top: 50%;
50
+ margin-top: -1px;
51
+ height: 3px;
52
+ background: govuk-colour('white');
53
+ content: '';
54
+ width: 100%;
55
+ display: block;
56
+ }
57
+
58
+ &:first-child {
59
+ margin-right: 3px;
60
+ }
61
+
62
+ &:nth-child(2) {
63
+ margin-right: govuk-spacing(2);
64
+ }
65
+ }
66
+
67
+ .gem-c-transition-countdown__countdown-text {
68
+ @extend %govuk-heading-m;
69
+
70
+ display: inline-block;
71
+ margin-bottom: 0;
72
+ height: 45px;
73
+ vertical-align: middle;
74
+ color: $transition-campaign-dark-blue;
75
+
76
+ @include govuk-media-query($from: tablet) {
77
+ height: 80px;
78
+ }
79
+
80
+ &:after {
81
+ content: '' / '.'; // Wrap up the countdown-text element in a statement for screen readers
82
+ }
83
+ }
84
+
85
+ .gem-c-transition-countdown__text {
86
+ @extend %govuk-link;
87
+
88
+ margin-top: 0;
89
+ margin-bottom: 0;
90
+ text-decoration: underline;
91
+
92
+ @include govuk-media-query($from: tablet) {
93
+ margin-bottom: govuk-spacing(2);
94
+ }
95
+ }
96
+
97
+ .gem-c-transition-countdown:focus {
98
+ .gem-c-transition-countdown__countdown-number:after {
99
+ background-color: $govuk-focus-colour;
100
+ }
101
+
102
+ .gem-c-transition-countdown__text {
103
+ text-decoration: none;
104
+ }
105
+ }
106
+
107
+ @include govuk-compatibility(govuk_template) {
108
+ .gem-c-transition-countdown__title {
109
+ margin-bottom: govuk-spacing(3);
110
+ }
111
+
112
+ .gem-c-transition-countdown__countdown-number {
113
+ padding: govuk-spacing(1) 0 0;
114
+
115
+ @include govuk-media-query($from: tablet) {
116
+ padding: govuk-spacing(3) govuk-spacing(1) govuk-spacing(1);
117
+ }
118
+ }
119
+
120
+ .gem-c-transition-countdown__countdown-text {
121
+ @include govuk-media-query($from: tablet) {
122
+ height: 75px;
123
+ }
124
+ }
125
+ }
@@ -152,7 +152,7 @@
152
152
  }
153
153
 
154
154
  .mc-value-overflow {
155
- text-indent: -99999px !important;
155
+ text-indent: -99999px !important; // stylelint-disable-line declaration-no-important
156
156
  }
157
157
 
158
158
  // Bar labels
@@ -178,7 +178,7 @@
178
178
 
179
179
  .mc-stacked-total {
180
180
  padding: $bar-padding 0;
181
- background-color: transparent !important;
181
+ background-color: transparent !important; // stylelint-disable-line declaration-no-important
182
182
  color: govuk-colour("black");
183
183
  display: inline-block;
184
184
  text-indent: 5px;
@@ -9,6 +9,6 @@
9
9
  &:link:focus,
10
10
  &:visited:focus {
11
11
  @include govuk-focused-text;
12
- color: govuk-colour("black") !important;
12
+ color: govuk-colour("black") !important; // stylelint-disable-line declaration-no-important
13
13
  }
14
14
  }
@@ -6,12 +6,12 @@
6
6
 
7
7
  // Open all of the accordion sections.
8
8
  .govuk-accordion__section-content {
9
- display: block !important;
9
+ display: block !important; // stylelint-disable-line declaration-no-important
10
10
  }
11
11
 
12
12
  // Change the colour from the blue link colour to black.
13
13
  .govuk-accordion__section-button {
14
- color: govuk-colour("black") !important;
14
+ color: govuk-colour("black") !important; // stylelint-disable-line declaration-no-important
15
15
  }
16
16
 
17
17
  // Change the summary subheading size.
@@ -27,5 +27,5 @@
27
27
  // Hide the unusable "Open all" button and the "+" icons.
28
28
  .govuk-accordion__open-all,
29
29
  .govuk-accordion__icon {
30
- display: none !important;
30
+ display: none !important; // stylelint-disable-line declaration-no-important
31
31
  }
@@ -22,10 +22,9 @@
22
22
  <div class="component-markdown">
23
23
  <%= raw(@component_doc.html_body) %>
24
24
  </div>
25
-
26
- <p class="govuk-body"><%= link_to "Search for usage of this component on GitHub", @component_doc.github_search_url, class: "govuk-link" %></p>
27
25
  </div>
28
26
  <% end %>
27
+ <p class="govuk-body"><%= link_to "Search for usage of this component on GitHub", @component_doc.github_search_url, class: "govuk-link" %></p>
29
28
  </div>
30
29
  </div>
31
30
 
@@ -5,6 +5,7 @@
5
5
  hide_order_copy_link ||= false
6
6
  attributes = []
7
7
  data_attributes ||= {}
8
+ shared_helper = GovukPublishingComponents::Presenters::SharedHelper.new(local_assigns)
8
9
 
9
10
  if attachment.content_type_name
10
11
  content = if attachment.content_type_abbr
@@ -50,11 +51,11 @@
50
51
  <% end %>
51
52
 
52
53
  <%= tag.div class: "gem-c-attachment__details" do %>
53
- <%= tag.h2 class: "gem-c-attachment__title" do %>
54
+ <%= content_tag(shared_helper.get_heading_level, class: "gem-c-attachment__title") do %>
54
55
  <%= link_to attachment.title, attachment.url,
55
- class: "govuk-link gem-c-attachment__link",
56
- target: target,
57
- data: data_attributes %>
56
+ class: "govuk-link gem-c-attachment__link",
57
+ target: target,
58
+ data: data_attributes %>
58
59
  <% end %>
59
60
 
60
61
  <% if attachment.reference.present? %>
@@ -1,8 +1,24 @@
1
1
  <% navigation = GovukPublishingComponents::Presenters::ContextualNavigation.new(content_item, request) %>
2
+ <% shared_helper = GovukPublishingComponents::Presenters::SharedHelper.new(local_assigns) %>
2
3
 
3
4
  <div class="gem-c-contextual-sidebar">
4
- <% if navigation.show_brexit_cta? && navigation.step_by_step_count.eql?(0) %>
5
+ <% if navigation.show_brexit_cta? && navigation.step_by_step_count.zero? %>
5
6
  <%= render 'govuk_publishing_components/components/contextual_sidebar/brexit_cta' %>
7
+ <% elsif navigation.step_by_step_count.zero? %>
8
+ <%= render 'govuk_publishing_components/components/transition_countdown', {
9
+ title: t("components.related_navigation.transition.title"),
10
+ url: t("components.related_navigation.transition.link_path"),
11
+ text: t("components.related_navigation.transition.link_text"),
12
+ data_attributes: {
13
+ "module": "track-click",
14
+ "track-category": "relatedLinkClicked",
15
+ "track-action": "1.0 Transition",
16
+ "track-label": t("components.related_navigation.transition.link_path"),
17
+ "track-dimension": t("components.related_navigation.transition.link_text"),
18
+ "track-dimension-index": "29",
19
+ },
20
+ lang: shared_helper.t_locale("components.related_navigation.transition.title"),
21
+ } %>
6
22
  <% end %>
7
23
 
8
24
  <% if navigation.content_tagged_to_a_reasonable_number_of_step_by_steps? %>
@@ -1,4 +1,5 @@
1
1
  <% related_nav_helper = GovukPublishingComponents::Presenters::RelatedNavigationHelper.new(local_assigns) %>
2
+ <% shared_helper = GovukPublishingComponents::Presenters::SharedHelper.new(local_assigns) %>
2
3
 
3
4
  <% if related_nav_helper.related_navigation? %>
4
5
  <% random = SecureRandom.hex(4) %>
@@ -8,7 +9,7 @@
8
9
  <h2 id="related-nav-related_items-<%= random %>"
9
10
  class="gem-c-related-navigation__main-heading"
10
11
  data-track-count="sidebarRelatedItemSection"
11
- <%= related_nav_helper.t_lang(
12
+ <%= shared_helper.t_lang(
12
13
  "components.related_#{local_assigns[:context]}_navigation.related_content",
13
14
  default: 'components.related_navigation.related_content'
14
15
  )
@@ -28,6 +29,7 @@
28
29
 
29
30
  <%= render 'govuk_publishing_components/components/related_navigation/section',
30
31
  related_nav_helper: related_nav_helper,
32
+ shared_helper: shared_helper,
31
33
  section_title: section_title,
32
34
  links: links,
33
35
  section_index: section_index,
@@ -0,0 +1,35 @@
1
+ <%
2
+ countdown_clock = GovukPublishingComponents::AppHelpers::CountdownHelper.new
3
+ shared_helper = GovukPublishingComponents::Presenters::SharedHelper.new(local_assigns)
4
+
5
+ heading_level ||= 2
6
+ title ||= nil
7
+ text ||= nil
8
+ url ||= nil
9
+ data_attributes ||= {}
10
+ lang ||= "en"
11
+ direction ||= "ltr"
12
+ css_classes = %w(gem-c-transition-countdown)
13
+ css_classes << "gem-c-transition-countdown--cta" if url
14
+ css_classes << "govuk-link" if url
15
+ %>
16
+
17
+ <% countdown = capture do %>
18
+ <%= content_tag(shared_helper.get_heading_level, title, class: "gem-c-transition-countdown__title") if title %>
19
+ <% if countdown_clock.show? %>
20
+ <%= tag.p class: "gem-c-transition-countdown__countdown" do %>
21
+ <%= tag.span countdown_clock.days_left.first, class: "gem-c-transition-countdown__countdown-number" %><%= tag.span countdown_clock.days_left.last, class: "gem-c-transition-countdown__countdown-number" %> <%= tag.span countdown_clock.days_text, class: "gem-c-transition-countdown__countdown-text" %>
22
+ <% end %>
23
+ <% end %>
24
+ <%= tag.p text, class: "gem-c-transition-countdown__text" if text %>
25
+ <% end %>
26
+
27
+ <% if url %>
28
+ <%= link_to url, class: css_classes, data: data_attributes, lang: lang, dir: direction do %>
29
+ <%= countdown %>
30
+ <% end %>
31
+ <% else %>
32
+ <%= tag.div class: css_classes, lang: lang, dir: direction do %>
33
+ <%= countdown %>
34
+ <% end %>
35
+ <% end %>
@@ -158,3 +158,13 @@ examples:
158
158
  unique_reference: "2942"
159
159
  unnumbered_hoc_paper: true
160
160
  hide_order_copy_link: true
161
+ with_custom_heading_level:
162
+ description: Default is `h2`.
163
+ data:
164
+ heading_level: 3
165
+ attachment:
166
+ title: "Department for Transport information asset register"
167
+ url: https://assets.publishing.service.gov.uk/government/uploads/system/uploads/attachment_data/file/747661/department-for-transport-information-asset-register.csv
168
+ filename: department-for-transport-information-asset-register.csv
169
+ content_type: text/csv
170
+ file_size: 20000
@@ -144,4 +144,3 @@ examples:
144
144
  - text: Find out what you’ll get
145
145
  href: "/settled-status-eu-citizens-families/what-settled-and-presettled-status-means"
146
146
  optional: false
147
-
@@ -236,6 +236,47 @@ examples:
236
236
  </tr>
237
237
  </tbody>
238
238
  </table>
239
+ stacked_chart:
240
+ data:
241
+ block: |
242
+ <table class="js-barchart-table mc-stacked mc-auto-outdent">
243
+ <thead>
244
+ <tr>
245
+ <th scope="col">Colours</th>
246
+ <th scope="col">Fruits</th>
247
+ <th scope="col">Vegetables</th>
248
+ <th scope="col">Beans</th>
249
+ <th scope="col">Nuts</th>
250
+ <th scope="col">Total</th>
251
+ </tr>
252
+ </thead>
253
+ <tbody>
254
+ <tr>
255
+ <td>Red</td>
256
+ <td>23</td>
257
+ <td>9</td>
258
+ <td>2</td>
259
+ <td>1</td>
260
+ <td>35</td>
261
+ </tr>
262
+ <tr>
263
+ <td>Green</td>
264
+ <td>5</td>
265
+ <td>33</td>
266
+ <td>8</td>
267
+ <td>0</td>
268
+ <td>46</td>
269
+ </tr>
270
+ <tr>
271
+ <td>Yellow</td>
272
+ <td>2</td>
273
+ <td>10</td>
274
+ <td>0</td>
275
+ <td>15</td>
276
+ <td>27</td>
277
+ </tr>
278
+ </tbody>
279
+ </table>
239
280
  chart_with_multiple_headings:
240
281
  data:
241
282
  block: |
@@ -0,0 +1,17 @@
1
+ name: Transition countdown
2
+ description: A countdown to 01 January 2021 used in the Brexit transition campaign
3
+ body: When a URL is set it acts as a link to actions users need to take to prepare for brexit during the transition period
4
+ shared_accessibility_criteria:
5
+ - link
6
+ examples:
7
+ default:
8
+ data:
9
+ call_to_action:
10
+ data:
11
+ title: Brexit transition
12
+ text: Check you’re ready for 2021
13
+ url: "https://www.gov.uk/transition"
14
+ data_attributes:
15
+ "track-category": "Transition"
16
+ "track-action": "Brexit transition"
17
+ "track-label": "Check you’re ready for 2021"
@@ -28,7 +28,7 @@
28
28
  link[:path],
29
29
  class: related_nav_helper.section_css_class("gem-c-related-navigation__section-link", section_title, link, (index >= section_link_limit)),
30
30
  rel: link[:rel],
31
- lang: related_nav_helper.t_locale_check(link[:locale]),
31
+ lang: shared_helper.t_locale_check(link[:locale]),
32
32
  data: {
33
33
  track_category: 'relatedLinkClicked',
34
34
  track_action: "#{section_index}.#{index} #{related_nav_helper.construct_section_heading(section_title) || t('components.related_navigation.related_content')}",
@@ -10,4 +10,9 @@ cy:
10
10
  contents: Cynnwys
11
11
  related_navigation:
12
12
  transition:
13
+ title: "Pontio Brexit"
13
14
  link_path: "/transition.cy"
15
+ link_text: "Gwiriwch eich bod chi'n barod ar gyfer 2021"
16
+ transition_countdown:
17
+ day_to_go: "diwrnod i fynd"
18
+ days_to_go: "diwrnod i fynd"
@@ -74,7 +74,7 @@ en:
74
74
  transition:
75
75
  title: "Brexit transition"
76
76
  link_path: "/transition"
77
- link_text: "Find out what it means for you"
77
+ link_text: "Check you’re ready for 2021"
78
78
  related_footer_navigation:
79
79
  collections: "Collections"
80
80
  policies: "Policies"
@@ -98,3 +98,6 @@ en:
98
98
  summary_list:
99
99
  edit: "Change"
100
100
  delete: "Delete"
101
+ transition_countdown:
102
+ day_to_go: "day to go"
103
+ days_to_go: "days to go"
@@ -34,6 +34,7 @@ require "govuk_publishing_components/presenters/taxonomy_list_helper"
34
34
  require "govuk_publishing_components/app_helpers/taxon_breadcrumbs"
35
35
  require "govuk_publishing_components/app_helpers/table_helper"
36
36
  require "govuk_publishing_components/app_helpers/brand_helper"
37
+ require "govuk_publishing_components/app_helpers/countdown_helper"
37
38
  require "govuk_publishing_components/app_helpers/environment"
38
39
 
39
40
  # Add view and i18n paths for usage outside of a Rails app
@@ -0,0 +1,33 @@
1
+ module GovukPublishingComponents
2
+ module AppHelpers
3
+ class CountdownHelper
4
+ END_OF_TRANSITION_PERIOD = Date.new(2021, 1, 1)
5
+
6
+ def days_left
7
+ sprintf "%02d", days_left_integer
8
+ end
9
+
10
+ def show?
11
+ days_left_integer.positive?
12
+ end
13
+
14
+ def days_text
15
+ if days_left_integer == 1
16
+ I18n.t!("components.transition_countdown.day_to_go")
17
+ else
18
+ I18n.t!("components.transition_countdown.days_to_go")
19
+ end
20
+ end
21
+
22
+ private
23
+
24
+ def days_left_integer
25
+ (END_OF_TRANSITION_PERIOD - today_in_london).to_i
26
+ end
27
+
28
+ def today_in_london
29
+ Time.find_zone("Europe/London").today
30
+ end
31
+ end
32
+ end
33
+ end
@@ -97,48 +97,8 @@ module GovukPublishingComponents
97
97
  related_navigation.flat_map(&:last).any?
98
98
  end
99
99
 
100
- def t_locale(content, options = {})
101
- # Check if the content string has a translation
102
- content_translation_available = translation_present?(content)
103
-
104
- # True, return locale
105
- this_locale = I18n.locale if content_translation_available
106
- # If false, return default locale
107
- this_locale = I18n.default_locale unless content_translation_available
108
-
109
- # Check if default string passed in
110
- if options[:default].present?
111
- # Check if the default string has a translation
112
- default_translation_available = translation_present?(options[:default])
113
- # If true, return locale
114
- this_locale = I18n.locale if default_translation_available
115
- # If false, return default_locale
116
- this_locale = I18n.default_locale unless default_translation_available
117
- end
118
-
119
- this_locale
120
- end
121
-
122
- def t_lang(content, options = {})
123
- locale = t_locale(content, options)
124
- "lang=#{locale}" unless locale.eql?(I18n.locale)
125
- end
126
-
127
- def t_locale_check(locale)
128
- locale.presence unless locale.to_s.eql?(I18n.locale.to_s)
129
- end
130
-
131
100
  private
132
101
 
133
- def translation_present?(content)
134
- 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."
135
- I18n.translate(
136
- content,
137
- default: default_string,
138
- fallback: false,
139
- ) != default_string
140
- end
141
-
142
102
  def related_items
143
103
  related_quick_links = content_item_details_for("quick_links")
144
104
 
@@ -30,6 +30,48 @@ module GovukPublishingComponents
30
30
 
31
31
  "span"
32
32
  end
33
+
34
+ def t_locale(content, options = {})
35
+ # Check if the content string has a translation
36
+ content_translation_available = translation_present?(content)
37
+
38
+ # True, return locale
39
+ this_locale = I18n.locale if content_translation_available
40
+ # If false, return default locale
41
+ this_locale = I18n.default_locale unless content_translation_available
42
+
43
+ # Check if default string passed in
44
+ if options[:default].present?
45
+ # Check if the default string has a translation
46
+ default_translation_available = translation_present?(options[:default])
47
+ # If true, return locale
48
+ this_locale = I18n.locale if default_translation_available
49
+ # If false, return default_locale
50
+ this_locale = I18n.default_locale unless default_translation_available
51
+ end
52
+
53
+ this_locale
54
+ end
55
+
56
+ def t_lang(content, options = {})
57
+ locale = t_locale(content, options)
58
+ "lang=#{locale}" unless locale.eql?(I18n.locale)
59
+ end
60
+
61
+ def t_locale_check(locale)
62
+ locale.presence unless locale.to_s.eql?(I18n.locale.to_s)
63
+ end
64
+
65
+ private
66
+
67
+ def translation_present?(content)
68
+ 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."
69
+ I18n.translate(
70
+ content,
71
+ default: default_string,
72
+ fallback: false,
73
+ ) != default_string
74
+ end
33
75
  end
34
76
  end
35
77
  end
@@ -1,3 +1,3 @@
1
1
  module GovukPublishingComponents
2
- VERSION = "23.5.1".freeze
2
+ VERSION = "23.7.3".freeze
3
3
  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: 23.5.1
4
+ version: 23.7.3
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: 2020-11-12 00:00:00.000000000 Z
11
+ date: 2020-11-27 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: govuk_app_config
@@ -522,6 +522,7 @@ files:
522
522
  - app/assets/stylesheets/govuk_publishing_components/components/_taxonomy-list.scss
523
523
  - app/assets/stylesheets/govuk_publishing_components/components/_textarea.scss
524
524
  - app/assets/stylesheets/govuk_publishing_components/components/_title.scss
525
+ - app/assets/stylesheets/govuk_publishing_components/components/_transition-countdown.scss
525
526
  - app/assets/stylesheets/govuk_publishing_components/components/_translation-nav.scss
526
527
  - app/assets/stylesheets/govuk_publishing_components/components/_warning-text.scss
527
528
  - app/assets/stylesheets/govuk_publishing_components/components/govspeak/_advisory.scss
@@ -673,6 +674,7 @@ files:
673
674
  - app/views/govuk_publishing_components/components/_taxonomy_list.html.erb
674
675
  - app/views/govuk_publishing_components/components/_textarea.html.erb
675
676
  - app/views/govuk_publishing_components/components/_title.html.erb
677
+ - app/views/govuk_publishing_components/components/_transition_countdown.html.erb
676
678
  - app/views/govuk_publishing_components/components/_translation-nav.html.erb
677
679
  - app/views/govuk_publishing_components/components/_warning_text.html.erb
678
680
  - app/views/govuk_publishing_components/components/attachment/_thumbnail_document.svg
@@ -751,6 +753,7 @@ files:
751
753
  - app/views/govuk_publishing_components/components/docs/taxonomy_list.yml
752
754
  - app/views/govuk_publishing_components/components/docs/textarea.yml
753
755
  - app/views/govuk_publishing_components/components/docs/title.yml
756
+ - app/views/govuk_publishing_components/components/docs/transition_countdown.yml
754
757
  - app/views/govuk_publishing_components/components/docs/translation-nav.yml
755
758
  - app/views/govuk_publishing_components/components/docs/warning_text.yml
756
759
  - app/views/govuk_publishing_components/components/feedback/_problem_form.html.erb
@@ -775,6 +778,7 @@ files:
775
778
  - lib/generators/govuk_publishing_components/templates/component.yml.erb
776
779
  - lib/govuk_publishing_components.rb
777
780
  - lib/govuk_publishing_components/app_helpers/brand_helper.rb
781
+ - lib/govuk_publishing_components/app_helpers/countdown_helper.rb
778
782
  - lib/govuk_publishing_components/app_helpers/environment.rb
779
783
  - lib/govuk_publishing_components/app_helpers/table_helper.rb
780
784
  - lib/govuk_publishing_components/app_helpers/taxon_breadcrumbs.rb