govuk_publishing_components 5.2.3 → 5.3.0
Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: b4902da197a494c6f39c5ed16ecb9ef84a8c8f56cf037a14130793141048274d
|
4
|
+
data.tar.gz: 0c614a237b36b5e919a705805de3bbedf2503efab958da940dd78abb74fb8b28
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: da1bfcf8e9bf7ec67e07e2f90b901905ac214311bfd503d6d1a15756965befca953be7afa9921fa216236bb52b858bf7b35961eb4b40c25c7a2556e158b056f6
|
7
|
+
data.tar.gz: 3043a55019d7ebc3c91fc6f7bd600e4720ef4d8e140e2731fb1c79a5c336197f600533180846508ae25e417125b511070bd09ac36a713b190da7c5332e29e08a
|
@@ -3,5 +3,8 @@ require "govuk_publishing_components/engine"
|
|
3
3
|
require "govuk_publishing_components/components/step_by_step_nav_helper"
|
4
4
|
require "govuk_publishing_components/components/related_navigation_helper"
|
5
5
|
|
6
|
+
require "govuk_publishing_components/step_nav"
|
7
|
+
require "govuk_publishing_components/step_nav_helper"
|
8
|
+
|
6
9
|
module GovukPublishingComponents
|
7
10
|
end
|
@@ -0,0 +1,23 @@
|
|
1
|
+
module GovukPublishingComponents
|
2
|
+
class StepNav
|
3
|
+
def initialize(content_item)
|
4
|
+
@content_item = content_item.deep_symbolize_keys
|
5
|
+
end
|
6
|
+
|
7
|
+
def title
|
8
|
+
content_item[:title]
|
9
|
+
end
|
10
|
+
|
11
|
+
def base_path
|
12
|
+
content_item[:base_path]
|
13
|
+
end
|
14
|
+
|
15
|
+
def content
|
16
|
+
@content ||= content_item.dig(:details, :step_by_step_nav)
|
17
|
+
end
|
18
|
+
|
19
|
+
private
|
20
|
+
|
21
|
+
attr_reader :content_item
|
22
|
+
end
|
23
|
+
end
|
@@ -0,0 +1,86 @@
|
|
1
|
+
module GovukPublishingComponents
|
2
|
+
class StepNavHelper
|
3
|
+
def initialize(content_store_response, current_path)
|
4
|
+
@content_item = content_store_response.to_h
|
5
|
+
@current_path = current_path
|
6
|
+
end
|
7
|
+
|
8
|
+
def step_navs
|
9
|
+
@step_navs ||= parsed_step_navs.map do |step_nav|
|
10
|
+
StepNav.new(step_nav)
|
11
|
+
end
|
12
|
+
end
|
13
|
+
|
14
|
+
def show_sidebar?
|
15
|
+
step_navs.count == 1
|
16
|
+
end
|
17
|
+
alias_method :show_header?, :show_sidebar?
|
18
|
+
|
19
|
+
def show_related_links?
|
20
|
+
step_navs.any? && step_navs.count < 5
|
21
|
+
end
|
22
|
+
|
23
|
+
def related_links
|
24
|
+
step_navs.map do |step_nav|
|
25
|
+
{
|
26
|
+
href: step_nav.base_path,
|
27
|
+
text: step_nav.title
|
28
|
+
}
|
29
|
+
end
|
30
|
+
end
|
31
|
+
|
32
|
+
def sidebar
|
33
|
+
if show_sidebar?
|
34
|
+
@sidebar ||= first_step_nav.content.tap do |sb|
|
35
|
+
configure_for_sidebar(sb)
|
36
|
+
sb.merge!(small: true, heading_level: 3)
|
37
|
+
end
|
38
|
+
end
|
39
|
+
end
|
40
|
+
|
41
|
+
def header
|
42
|
+
if show_header?
|
43
|
+
{
|
44
|
+
title: first_step_nav.title,
|
45
|
+
path: first_step_nav.base_path
|
46
|
+
}
|
47
|
+
else
|
48
|
+
{}
|
49
|
+
end
|
50
|
+
end
|
51
|
+
|
52
|
+
private
|
53
|
+
|
54
|
+
attr_reader :content_item, :current_path
|
55
|
+
|
56
|
+
def first_step_nav
|
57
|
+
step_navs.first
|
58
|
+
end
|
59
|
+
|
60
|
+
def steps
|
61
|
+
@steps ||= step_nav[:steps]
|
62
|
+
end
|
63
|
+
|
64
|
+
def parsed_step_navs
|
65
|
+
content_item.dig("links", "part_of_step_navs").to_a
|
66
|
+
end
|
67
|
+
|
68
|
+
def configure_for_sidebar(step_nav_content)
|
69
|
+
step_nav_content[:steps].each_with_index do |step, step_index|
|
70
|
+
step[:contents].each do |content|
|
71
|
+
next unless content[:contents]
|
72
|
+
|
73
|
+
content[:contents].each do |link|
|
74
|
+
if link[:href] == current_path
|
75
|
+
link[:active] = true
|
76
|
+
step_nav_content[:show_step] = step_index + 1
|
77
|
+
step_nav_content[:highlight_step] = step_index + 1
|
78
|
+
return step_nav_content
|
79
|
+
end
|
80
|
+
end
|
81
|
+
end
|
82
|
+
end
|
83
|
+
step_nav_content
|
84
|
+
end
|
85
|
+
end
|
86
|
+
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: 5.
|
4
|
+
version: 5.3.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: 2018-
|
11
|
+
date: 2018-03-05 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: rails
|
@@ -206,6 +206,20 @@ dependencies:
|
|
206
206
|
- - "~>"
|
207
207
|
- !ruby/object:Gem::Version
|
208
208
|
version: '0.64'
|
209
|
+
- !ruby/object:Gem::Dependency
|
210
|
+
name: gds-api-adapters
|
211
|
+
requirement: !ruby/object:Gem::Requirement
|
212
|
+
requirements:
|
213
|
+
- - ">="
|
214
|
+
- !ruby/object:Gem::Version
|
215
|
+
version: '0'
|
216
|
+
type: :development
|
217
|
+
prerelease: false
|
218
|
+
version_requirements: !ruby/object:Gem::Requirement
|
219
|
+
requirements:
|
220
|
+
- - ">="
|
221
|
+
- !ruby/object:Gem::Version
|
222
|
+
version: '0'
|
209
223
|
- !ruby/object:Gem::Dependency
|
210
224
|
name: govuk_schemas
|
211
225
|
requirement: !ruby/object:Gem::Requirement
|
@@ -234,6 +248,20 @@ dependencies:
|
|
234
248
|
- - "~>"
|
235
249
|
- !ruby/object:Gem::Version
|
236
250
|
version: 3.0.1
|
251
|
+
- !ruby/object:Gem::Dependency
|
252
|
+
name: pry-byebug
|
253
|
+
requirement: !ruby/object:Gem::Requirement
|
254
|
+
requirements:
|
255
|
+
- - ">="
|
256
|
+
- !ruby/object:Gem::Version
|
257
|
+
version: '0'
|
258
|
+
type: :development
|
259
|
+
prerelease: false
|
260
|
+
version_requirements: !ruby/object:Gem::Requirement
|
261
|
+
requirements:
|
262
|
+
- - ">="
|
263
|
+
- !ruby/object:Gem::Version
|
264
|
+
version: '0'
|
237
265
|
description: A gem to document components in GOV.UK frontend applications
|
238
266
|
email:
|
239
267
|
- govuk-dev@digital.cabinet-office.gov.uk
|
@@ -327,6 +355,8 @@ files:
|
|
327
355
|
- lib/govuk_publishing_components/config.rb
|
328
356
|
- lib/govuk_publishing_components/engine.rb
|
329
357
|
- lib/govuk_publishing_components/minitest/component_guide_test.rb
|
358
|
+
- lib/govuk_publishing_components/step_nav.rb
|
359
|
+
- lib/govuk_publishing_components/step_nav_helper.rb
|
330
360
|
- lib/govuk_publishing_components/version.rb
|
331
361
|
- lib/tasks/govuk_publishing_components_tasks.rake
|
332
362
|
homepage: https://github.com/alphagov/govuk_publishing_components
|