govuk_publishing_components 23.6.0 → 23.7.4
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/README.md +2 -1
- data/app/assets/javascripts/govuk_publishing_components/lib/govspeak/magna-charta.js +1 -2
- data/app/assets/stylesheets/govuk_publishing_components/_all_components.scss +1 -0
- data/app/assets/stylesheets/govuk_publishing_components/component_support.scss +1 -0
- data/app/assets/stylesheets/govuk_publishing_components/components/_contextual-sidebar.scss +2 -0
- data/app/assets/stylesheets/govuk_publishing_components/components/_search.scss +1 -1
- data/app/assets/stylesheets/govuk_publishing_components/components/_transition-countdown.scss +125 -0
- data/app/assets/stylesheets/govuk_publishing_components/components/govspeak/_charts.scss +2 -2
- data/app/assets/stylesheets/govuk_publishing_components/components/govspeak/_steps.scss +3 -3
- data/app/assets/stylesheets/govuk_publishing_components/components/mixins/_govuk-template-link-focus-override.scss +1 -1
- data/app/assets/stylesheets/govuk_publishing_components/components/print/_accordion.scss +3 -3
- data/app/views/govuk_publishing_components/components/_contextual_sidebar.html.erb +17 -1
- data/app/views/govuk_publishing_components/components/_related_navigation.html.erb +3 -1
- data/app/views/govuk_publishing_components/components/_transition_countdown.html.erb +35 -0
- data/app/views/govuk_publishing_components/components/docs/contextual_sidebar.yml +0 -1
- data/app/views/govuk_publishing_components/components/docs/transition_countdown.yml +17 -0
- data/app/views/govuk_publishing_components/components/related_navigation/_section.html.erb +1 -1
- data/config/locales/cy.yml +5 -0
- data/config/locales/en.yml +4 -1
- data/lib/govuk_publishing_components.rb +1 -0
- data/lib/govuk_publishing_components/app_helpers/countdown_helper.rb +33 -0
- data/lib/govuk_publishing_components/presenters/related_navigation_helper.rb +0 -40
- data/lib/govuk_publishing_components/presenters/shared_helper.rb +42 -0
- data/lib/govuk_publishing_components/version.rb +1 -1
- metadata +6 -2
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA256:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: 4a170790240f4967c7bd50f70aadd5d681827a5404aa89118fc31ba8e31172c1
|
|
4
|
+
data.tar.gz: 3c1cc8d6330980e3fb50eec03589fadfd25fdec08dffd71f3f3eaa2243c151af
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: a52e2d1c9970312f01e2f29a639639d39ab66e50bfd525c85454c037553f3df6817aad71c7ad8854de9d67d865f775944fe2f3ce02e99aa354c42adc573a3cdf
|
|
7
|
+
data.tar.gz: 49bbfff1576f9bff66c07908e5564e20efad8ee0e5a635b07cd06494e4962f8203c1f028bf49ba3e4499297cf143f40c8c29ec314208c000559a98dd90c31dd6
|
data/README.md
CHANGED
|
@@ -22,6 +22,7 @@ Components should be added to this gem if they are required in more than one app
|
|
|
22
22
|
- [Run the component guide](/docs/run-component-guide.md)
|
|
23
23
|
- [Move a component from an application to the gem](/docs/moving-components-upstream-into-this-gem.md)
|
|
24
24
|
- [Publish/release a new version of the gem](/docs/publishing-to-rubygems.md)
|
|
25
|
+
- [Keep this gem in sync with the Design System](/docs/upgrade-govuk-frontend.md)
|
|
25
26
|
|
|
26
27
|
## Architecture / structure
|
|
27
28
|
|
|
@@ -39,13 +40,13 @@ There are 2 types of helper classes in this app:
|
|
|
39
40
|
GOV.UK Publishing Components also makes [GOV.UK Design System](https://design-system.service.gov.uk/) styles and components available to GOV.UK's frontend applications. This gem consumes [GOV.UK Frontend](https://github.com/alphagov/govuk-frontend) via [Yarn](https://classic.yarnpkg.com/).
|
|
40
41
|
|
|
41
42
|
## Browser and assistive technology support
|
|
43
|
+
|
|
42
44
|
GOV.UK Publishing Components shares the same standards in terms of browser and assistive technology support with [GOV.UK Frontend](https://github.com/alphagov/govuk-frontend#browser-and-assistive-technology-support).
|
|
43
45
|
|
|
44
46
|
## Documentation
|
|
45
47
|
|
|
46
48
|
[See the rubydoc.info documentation](http://www.rubydoc.info/gems/govuk_publishing_components)
|
|
47
49
|
|
|
48
|
-
|
|
49
50
|
## Working locally
|
|
50
51
|
|
|
51
52
|
### Install dependencies
|
|
@@ -215,8 +215,7 @@ window.GOVUK.Modules = window.GOVUK.Modules || {};
|
|
|
215
215
|
return !isNaN(parseFloat(val))
|
|
216
216
|
},
|
|
217
217
|
stripValue: function (val) {
|
|
218
|
-
|
|
219
|
-
return val.replace(re, '')
|
|
218
|
+
return val.replace(/,|£|%|[a-z]/gi, '')
|
|
220
219
|
},
|
|
221
220
|
returnMax: function (values) {
|
|
222
221
|
var max = 0
|
|
@@ -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";
|
|
@@ -39,7 +39,7 @@ $large-input-size: 50px;
|
|
|
39
39
|
padding: 6px;
|
|
40
40
|
margin: 0;
|
|
41
41
|
width: 100%;
|
|
42
|
-
height:
|
|
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;
|
|
@@ -12,10 +12,10 @@
|
|
|
12
12
|
|
|
13
13
|
@for $i from 1 through 30 {
|
|
14
14
|
&:nth-child(#{$i}) {
|
|
15
|
-
background-image: url("data:image/svg+xml
|
|
15
|
+
background-image: url("data:image/svg+xml, %3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 250 250' preserveAspectRatio='xMinYMin meet'%3E%3Cg%3E%3Ccircle r='50%25' cx='50%25' cy='50%25' class='circle-back'%3E%3C/circle%3E%3Ctext x='50%25' y='50%25' text-anchor='middle' dy='0.3em' font-family='nta,arial,sans-serif' font-size='8rem' fill='%23ffffff'%3E#{$i}%3C/text%3E%3C/g%3E%3C/svg%3E ");
|
|
16
16
|
background-repeat: no-repeat;
|
|
17
|
-
background-position:
|
|
18
|
-
background-size:
|
|
17
|
+
background-position: .2em .7em;
|
|
18
|
+
background-size: 1.4em 1.4em;
|
|
19
19
|
}
|
|
20
20
|
}
|
|
21
21
|
}
|
|
@@ -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
|
}
|
|
@@ -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.
|
|
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
|
-
<%=
|
|
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 %>
|
|
@@ -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:
|
|
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')}",
|
data/config/locales/cy.yml
CHANGED
|
@@ -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"
|
data/config/locales/en.yml
CHANGED
|
@@ -74,7 +74,7 @@ en:
|
|
|
74
74
|
transition:
|
|
75
75
|
title: "Brexit transition"
|
|
76
76
|
link_path: "/transition"
|
|
77
|
-
link_text: "
|
|
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
|
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.
|
|
4
|
+
version: 23.7.4
|
|
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
|
+
date: 2020-12-02 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
|