govuk_publishing_components 5.2.3 → 5.3.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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 783e6b85b53649ff2075bf833cfe3713ce018789f6ca8569a6d0fd5383628646
4
- data.tar.gz: efe68ac7148834ab878113d659110abc33ef5c8a0f71667830f25cd585bb4d44
3
+ metadata.gz: b4902da197a494c6f39c5ed16ecb9ef84a8c8f56cf037a14130793141048274d
4
+ data.tar.gz: 0c614a237b36b5e919a705805de3bbedf2503efab958da940dd78abb74fb8b28
5
5
  SHA512:
6
- metadata.gz: 1c6d4212608687f381b8084441552f1ea632e23fdc872862e809fcbf452b7b03f8fa4bc55344cd37bbdb5f07e5d127072d07b37fa1b94bdb785f35031b8fad31
7
- data.tar.gz: 40afc265848b6c40680f0a3429ed683987caaad74c6f564a42689c21fa4423a09d7a072fbe1f84564809dc7e79398963d0435c35bc527ab0cd5c489f2b41a415
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
@@ -1,3 +1,3 @@
1
1
  module GovukPublishingComponents
2
- VERSION = '5.2.3'.freeze
2
+ VERSION = '5.3.0'.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: 5.2.3
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-02-27 00:00:00.000000000 Z
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