ccs-frontend_helpers 1.0.0 → 1.1.0.beta0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/.rubocop.yml +74 -61
- data/.ruby-version +1 -1
- data/CHANGELOG.md +10 -0
- data/Gemfile +2 -1
- data/Gemfile.lock +66 -71
- data/README.md +3 -2
- data/lib/ccs/components/ccs/contact_us.rb +70 -0
- data/lib/ccs/components/ccs/footer.rb +1 -1
- data/lib/ccs/components/ccs/header.rb +1 -1
- data/lib/ccs/components/ccs/logo.rb +1 -1
- data/lib/ccs/components/ccs/password_strength/test.rb +62 -0
- data/lib/ccs/components/ccs/password_strength.rb +53 -0
- data/lib/ccs/frontend_helpers/ccs_frontend/contact_us.rb +28 -0
- data/lib/ccs/frontend_helpers/ccs_frontend/footer.rb +1 -1
- data/lib/ccs/frontend_helpers/ccs_frontend/header.rb +1 -1
- data/lib/ccs/frontend_helpers/ccs_frontend/logo.rb +1 -1
- data/lib/ccs/frontend_helpers/ccs_frontend/password_strength.rb +28 -0
- data/lib/ccs/frontend_helpers/ccs_frontend.rb +4 -0
- data/lib/ccs/frontend_helpers/version.rb +1 -1
- data/package.json +1 -1
- data/yarn.lock +4 -4
- metadata +8 -3
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 268588c1c5fea8b4aef3d3ef718cc6e60b7107653fd75453ea4226391fdeffcb
|
4
|
+
data.tar.gz: 11b35cc9d15251648e4c2db1192648fac15fdbfd5e6357f580f2fe892786cca3
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 609c90727c1e653a44b112e358b2541a2fd4d95de810aded4dc032e96cac12f1f9b612d5953a34501abe3f8b3486c8b12f1670f440c55dd363ca3001ec357436
|
7
|
+
data.tar.gz: 8fd4c28172ea2a8e62fc32d9ef4742414d0dce8f0b86c8c109ebb77bbb0fca41234c764e871b935e353fc223655714ee7b2162a629a9ecc8e2ab7fc86fb94cd9
|
data/.rubocop.yml
CHANGED
@@ -1,18 +1,77 @@
|
|
1
1
|
---
|
2
2
|
require:
|
3
|
-
|
4
|
-
|
5
|
-
|
6
|
-
|
3
|
+
- rubocop-capybara
|
4
|
+
- rubocop-rspec
|
5
|
+
- rubocop-rails
|
6
|
+
- rubocop-rake
|
7
7
|
|
8
8
|
AllCops:
|
9
9
|
NewCops: enable
|
10
10
|
TargetRubyVersion: 3.0
|
11
11
|
Exclude:
|
12
|
-
-
|
13
|
-
-
|
14
|
-
-
|
12
|
+
- "bin/**/*"
|
13
|
+
- "tmp/**/*"
|
14
|
+
- "vendor/**/*"
|
15
15
|
|
16
|
+
# Capyabara rubocop config
|
17
|
+
Capybara:
|
18
|
+
Enabled: true
|
19
|
+
|
20
|
+
# Rails rubocop config
|
21
|
+
Rails:
|
22
|
+
Enabled: true
|
23
|
+
|
24
|
+
Rails/HelperInstanceVariable:
|
25
|
+
Enabled: false
|
26
|
+
|
27
|
+
Rails/DynamicFindBy:
|
28
|
+
Whitelist:
|
29
|
+
- find_by_id
|
30
|
+
|
31
|
+
Rails/FilePath:
|
32
|
+
Enabled: false
|
33
|
+
|
34
|
+
Rails/OutputSafety:
|
35
|
+
Exclude:
|
36
|
+
- "spec/ccs/frontend_helpers/**/*fixtures_spec.rb"
|
37
|
+
|
38
|
+
# RSpec rubocop config
|
39
|
+
RSpec:
|
40
|
+
Enabled: true
|
41
|
+
|
42
|
+
RSpec/ContextWording:
|
43
|
+
Prefixes:
|
44
|
+
- when
|
45
|
+
- with
|
46
|
+
- without
|
47
|
+
- and
|
48
|
+
|
49
|
+
RSpec/MultipleMemoizedHelpers:
|
50
|
+
Enabled: false
|
51
|
+
|
52
|
+
RSpec/VariableName:
|
53
|
+
Enabled: false
|
54
|
+
|
55
|
+
RSpec/VerifiedDoubleReference:
|
56
|
+
Enabled: false
|
57
|
+
|
58
|
+
RSpec/NestedGroups:
|
59
|
+
Max: 5
|
60
|
+
|
61
|
+
RSpec/ExampleLength:
|
62
|
+
Exclude:
|
63
|
+
- "spec/ccs/frontend_helpers/**/*"
|
64
|
+
- "spec/ccs/components/**/*"
|
65
|
+
|
66
|
+
RSpec/MultipleExpectations:
|
67
|
+
Max: 3
|
68
|
+
|
69
|
+
RSpec/SpecFilePathFormat:
|
70
|
+
CustomTransform:
|
71
|
+
GovUKFrontend: govuk_frontend
|
72
|
+
GovUK: govuk
|
73
|
+
|
74
|
+
# Standard rubocop config
|
16
75
|
Bundler/OrderedGems:
|
17
76
|
Enabled: false
|
18
77
|
|
@@ -47,7 +106,7 @@ Style/ClassAndModuleChildren:
|
|
47
106
|
Enabled: false
|
48
107
|
|
49
108
|
Layout/EndOfLine:
|
50
|
-
|
109
|
+
EnforcedStyle: lf
|
51
110
|
|
52
111
|
Layout/TrailingEmptyLines:
|
53
112
|
Enabled: true
|
@@ -56,9 +115,9 @@ Layout/LineLength:
|
|
56
115
|
Max: 120
|
57
116
|
Enabled: false
|
58
117
|
AllowedPatterns:
|
59
|
-
-
|
60
|
-
-
|
61
|
-
-
|
118
|
+
- "it .* do$"
|
119
|
+
- "context .* do$"
|
120
|
+
- "scenario .* do$"
|
62
121
|
|
63
122
|
Metrics/ClassLength:
|
64
123
|
Enabled: false
|
@@ -70,30 +129,17 @@ Metrics/MethodLength:
|
|
70
129
|
Metrics/AbcSize:
|
71
130
|
Max: 25 # TODO: Restore to '20'
|
72
131
|
Exclude:
|
73
|
-
-
|
132
|
+
- "spec/**/*"
|
74
133
|
|
75
134
|
Metrics/BlockLength:
|
76
135
|
Max: 40
|
77
136
|
Exclude:
|
78
|
-
-
|
79
|
-
|
80
|
-
RSpec/ContextWording:
|
81
|
-
Prefixes:
|
82
|
-
- when
|
83
|
-
- with
|
84
|
-
- without
|
85
|
-
- and
|
137
|
+
- "spec/**/*"
|
86
138
|
|
87
139
|
Metrics/ModuleLength:
|
88
140
|
Exclude:
|
89
|
-
-
|
90
|
-
-
|
91
|
-
|
92
|
-
RSpec/MultipleMemoizedHelpers:
|
93
|
-
Enabled: false
|
94
|
-
|
95
|
-
RSpec/VariableName:
|
96
|
-
Enabled: false
|
141
|
+
- "spec/ccs/frontend_helpers/**/*"
|
142
|
+
- "spec/ccs/components/**/*"
|
97
143
|
|
98
144
|
Naming/VariableNumber:
|
99
145
|
Enabled: false
|
@@ -101,38 +147,5 @@ Naming/VariableNumber:
|
|
101
147
|
Lint/MissingSuper:
|
102
148
|
Enabled: false
|
103
149
|
|
104
|
-
Rails/HelperInstanceVariable:
|
105
|
-
Enabled: false
|
106
|
-
|
107
150
|
Style/OptionalBooleanParameter:
|
108
151
|
Enabled: false
|
109
|
-
|
110
|
-
RSpec/VerifiedDoubleReference:
|
111
|
-
Enabled: false
|
112
|
-
|
113
|
-
RSpec/NestedGroups:
|
114
|
-
Max: 5
|
115
|
-
|
116
|
-
RSpec/ExampleLength:
|
117
|
-
Exclude:
|
118
|
-
- 'spec/ccs/frontend_helpers/**/*'
|
119
|
-
- 'spec/ccs/components/**/*'
|
120
|
-
|
121
|
-
Rails/DynamicFindBy:
|
122
|
-
Whitelist:
|
123
|
-
- find_by_id
|
124
|
-
|
125
|
-
RSpec/MultipleExpectations:
|
126
|
-
Max: 3
|
127
|
-
|
128
|
-
RSpec/FilePath:
|
129
|
-
Enabled: false
|
130
|
-
|
131
|
-
RSpec/SpecFilePathFormat:
|
132
|
-
CustomTransform:
|
133
|
-
GovUKFrontend: govuk_frontend
|
134
|
-
GovUK: govuk
|
135
|
-
|
136
|
-
Rails/OutputSafety:
|
137
|
-
Exclude:
|
138
|
-
- 'spec/ccs/frontend_helpers/**/*fixtures_spec.rb'
|
data/.ruby-version
CHANGED
@@ -1 +1 @@
|
|
1
|
-
3.
|
1
|
+
3.3.1
|
data/CHANGELOG.md
CHANGED
@@ -7,6 +7,16 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
|
|
7
7
|
|
8
8
|
## [Unreleased]
|
9
9
|
|
10
|
+
## [1.1.0-beta0] - 2024-06-28
|
11
|
+
|
12
|
+
### Added
|
13
|
+
|
14
|
+
- Update to CCS Frontend v1.1
|
15
|
+
|
16
|
+
- The following CCS helpers have been added:
|
17
|
+
- Contact Us
|
18
|
+
- Password Strength
|
19
|
+
|
10
20
|
## [1.0.0] - 2024-06-07
|
11
21
|
|
12
22
|
### Changed
|
data/Gemfile
CHANGED
@@ -17,9 +17,10 @@ gem 'nokogiri-diff', '~> 0.3.0'
|
|
17
17
|
|
18
18
|
# Gems for linting/formatting the package
|
19
19
|
gem 'rubocop', '~> 1.64'
|
20
|
+
gem 'rubocop-capybara', '~> 2.20'
|
20
21
|
gem 'rubocop-rails', '~> 2.25'
|
21
22
|
gem 'rubocop-rake', '~> 0.6'
|
22
|
-
gem 'rubocop-rspec', '~>
|
23
|
+
gem 'rubocop-rspec', '~> 3.0'
|
23
24
|
|
24
25
|
# Gems for documenting the package
|
25
26
|
gem 'yard', '~> 0.9'
|
data/Gemfile.lock
CHANGED
@@ -1,41 +1,41 @@
|
|
1
1
|
PATH
|
2
2
|
remote: .
|
3
3
|
specs:
|
4
|
-
ccs-frontend_helpers (1.0.
|
4
|
+
ccs-frontend_helpers (1.1.0.beta0)
|
5
5
|
rails (>= 6.0)
|
6
6
|
|
7
7
|
GEM
|
8
8
|
remote: https://rubygems.org/
|
9
9
|
specs:
|
10
|
-
actioncable (7.1.3.
|
11
|
-
actionpack (= 7.1.3.
|
12
|
-
activesupport (= 7.1.3.
|
10
|
+
actioncable (7.1.3.4)
|
11
|
+
actionpack (= 7.1.3.4)
|
12
|
+
activesupport (= 7.1.3.4)
|
13
13
|
nio4r (~> 2.0)
|
14
14
|
websocket-driver (>= 0.6.1)
|
15
15
|
zeitwerk (~> 2.6)
|
16
|
-
actionmailbox (7.1.3.
|
17
|
-
actionpack (= 7.1.3.
|
18
|
-
activejob (= 7.1.3.
|
19
|
-
activerecord (= 7.1.3.
|
20
|
-
activestorage (= 7.1.3.
|
21
|
-
activesupport (= 7.1.3.
|
16
|
+
actionmailbox (7.1.3.4)
|
17
|
+
actionpack (= 7.1.3.4)
|
18
|
+
activejob (= 7.1.3.4)
|
19
|
+
activerecord (= 7.1.3.4)
|
20
|
+
activestorage (= 7.1.3.4)
|
21
|
+
activesupport (= 7.1.3.4)
|
22
22
|
mail (>= 2.7.1)
|
23
23
|
net-imap
|
24
24
|
net-pop
|
25
25
|
net-smtp
|
26
|
-
actionmailer (7.1.3.
|
27
|
-
actionpack (= 7.1.3.
|
28
|
-
actionview (= 7.1.3.
|
29
|
-
activejob (= 7.1.3.
|
30
|
-
activesupport (= 7.1.3.
|
26
|
+
actionmailer (7.1.3.4)
|
27
|
+
actionpack (= 7.1.3.4)
|
28
|
+
actionview (= 7.1.3.4)
|
29
|
+
activejob (= 7.1.3.4)
|
30
|
+
activesupport (= 7.1.3.4)
|
31
31
|
mail (~> 2.5, >= 2.5.4)
|
32
32
|
net-imap
|
33
33
|
net-pop
|
34
34
|
net-smtp
|
35
35
|
rails-dom-testing (~> 2.2)
|
36
|
-
actionpack (7.1.3.
|
37
|
-
actionview (= 7.1.3.
|
38
|
-
activesupport (= 7.1.3.
|
36
|
+
actionpack (7.1.3.4)
|
37
|
+
actionview (= 7.1.3.4)
|
38
|
+
activesupport (= 7.1.3.4)
|
39
39
|
nokogiri (>= 1.8.5)
|
40
40
|
racc
|
41
41
|
rack (>= 2.2.4)
|
@@ -43,35 +43,35 @@ GEM
|
|
43
43
|
rack-test (>= 0.6.3)
|
44
44
|
rails-dom-testing (~> 2.2)
|
45
45
|
rails-html-sanitizer (~> 1.6)
|
46
|
-
actiontext (7.1.3.
|
47
|
-
actionpack (= 7.1.3.
|
48
|
-
activerecord (= 7.1.3.
|
49
|
-
activestorage (= 7.1.3.
|
50
|
-
activesupport (= 7.1.3.
|
46
|
+
actiontext (7.1.3.4)
|
47
|
+
actionpack (= 7.1.3.4)
|
48
|
+
activerecord (= 7.1.3.4)
|
49
|
+
activestorage (= 7.1.3.4)
|
50
|
+
activesupport (= 7.1.3.4)
|
51
51
|
globalid (>= 0.6.0)
|
52
52
|
nokogiri (>= 1.8.5)
|
53
|
-
actionview (7.1.3.
|
54
|
-
activesupport (= 7.1.3.
|
53
|
+
actionview (7.1.3.4)
|
54
|
+
activesupport (= 7.1.3.4)
|
55
55
|
builder (~> 3.1)
|
56
56
|
erubi (~> 1.11)
|
57
57
|
rails-dom-testing (~> 2.2)
|
58
58
|
rails-html-sanitizer (~> 1.6)
|
59
|
-
activejob (7.1.3.
|
60
|
-
activesupport (= 7.1.3.
|
59
|
+
activejob (7.1.3.4)
|
60
|
+
activesupport (= 7.1.3.4)
|
61
61
|
globalid (>= 0.3.6)
|
62
|
-
activemodel (7.1.3.
|
63
|
-
activesupport (= 7.1.3.
|
64
|
-
activerecord (7.1.3.
|
65
|
-
activemodel (= 7.1.3.
|
66
|
-
activesupport (= 7.1.3.
|
62
|
+
activemodel (7.1.3.4)
|
63
|
+
activesupport (= 7.1.3.4)
|
64
|
+
activerecord (7.1.3.4)
|
65
|
+
activemodel (= 7.1.3.4)
|
66
|
+
activesupport (= 7.1.3.4)
|
67
67
|
timeout (>= 0.4.0)
|
68
|
-
activestorage (7.1.3.
|
69
|
-
actionpack (= 7.1.3.
|
70
|
-
activejob (= 7.1.3.
|
71
|
-
activerecord (= 7.1.3.
|
72
|
-
activesupport (= 7.1.3.
|
68
|
+
activestorage (7.1.3.4)
|
69
|
+
actionpack (= 7.1.3.4)
|
70
|
+
activejob (= 7.1.3.4)
|
71
|
+
activerecord (= 7.1.3.4)
|
72
|
+
activesupport (= 7.1.3.4)
|
73
73
|
marcel (~> 1.0)
|
74
|
-
activesupport (7.1.3.
|
74
|
+
activesupport (7.1.3.4)
|
75
75
|
base64
|
76
76
|
bigdecimal
|
77
77
|
concurrent-ruby (~> 1.0, >= 1.0.2)
|
@@ -96,7 +96,7 @@ GEM
|
|
96
96
|
rack-test (>= 0.6.3)
|
97
97
|
regexp_parser (>= 1.5, < 3.0)
|
98
98
|
xpath (~> 3.2)
|
99
|
-
concurrent-ruby (1.2
|
99
|
+
concurrent-ruby (1.3.2)
|
100
100
|
connection_pool (2.4.1)
|
101
101
|
crass (1.0.6)
|
102
102
|
date (3.3.4)
|
@@ -125,7 +125,7 @@ GEM
|
|
125
125
|
marcel (1.0.4)
|
126
126
|
matrix (0.4.2)
|
127
127
|
mini_mime (1.1.5)
|
128
|
-
minitest (5.23.
|
128
|
+
minitest (5.23.1)
|
129
129
|
mutex_m (0.2.0)
|
130
130
|
net-imap (0.4.12)
|
131
131
|
date
|
@@ -144,8 +144,8 @@ GEM
|
|
144
144
|
nokogiri-diff (0.3.0)
|
145
145
|
nokogiri (~> 1.5)
|
146
146
|
tdiff (~> 0.4)
|
147
|
-
parallel (1.
|
148
|
-
parser (3.3.
|
147
|
+
parallel (1.25.1)
|
148
|
+
parser (3.3.3.0)
|
149
149
|
ast (~> 2.4.1)
|
150
150
|
racc
|
151
151
|
psych (5.1.2)
|
@@ -160,20 +160,20 @@ GEM
|
|
160
160
|
rackup (2.1.0)
|
161
161
|
rack (>= 3)
|
162
162
|
webrick (~> 1.8)
|
163
|
-
rails (7.1.3.
|
164
|
-
actioncable (= 7.1.3.
|
165
|
-
actionmailbox (= 7.1.3.
|
166
|
-
actionmailer (= 7.1.3.
|
167
|
-
actionpack (= 7.1.3.
|
168
|
-
actiontext (= 7.1.3.
|
169
|
-
actionview (= 7.1.3.
|
170
|
-
activejob (= 7.1.3.
|
171
|
-
activemodel (= 7.1.3.
|
172
|
-
activerecord (= 7.1.3.
|
173
|
-
activestorage (= 7.1.3.
|
174
|
-
activesupport (= 7.1.3.
|
163
|
+
rails (7.1.3.4)
|
164
|
+
actioncable (= 7.1.3.4)
|
165
|
+
actionmailbox (= 7.1.3.4)
|
166
|
+
actionmailer (= 7.1.3.4)
|
167
|
+
actionpack (= 7.1.3.4)
|
168
|
+
actiontext (= 7.1.3.4)
|
169
|
+
actionview (= 7.1.3.4)
|
170
|
+
activejob (= 7.1.3.4)
|
171
|
+
activemodel (= 7.1.3.4)
|
172
|
+
activerecord (= 7.1.3.4)
|
173
|
+
activestorage (= 7.1.3.4)
|
174
|
+
activesupport (= 7.1.3.4)
|
175
175
|
bundler (>= 1.15.0)
|
176
|
-
railties (= 7.1.3.
|
176
|
+
railties (= 7.1.3.4)
|
177
177
|
rails-dom-testing (2.2.0)
|
178
178
|
activesupport (>= 5.0.0)
|
179
179
|
minitest
|
@@ -181,9 +181,9 @@ GEM
|
|
181
181
|
rails-html-sanitizer (1.6.0)
|
182
182
|
loofah (~> 2.21)
|
183
183
|
nokogiri (~> 1.14)
|
184
|
-
railties (7.1.3.
|
185
|
-
actionpack (= 7.1.3.
|
186
|
-
activesupport (= 7.1.3.
|
184
|
+
railties (7.1.3.4)
|
185
|
+
actionpack (= 7.1.3.4)
|
186
|
+
activesupport (= 7.1.3.4)
|
187
187
|
irb
|
188
188
|
rackup (>= 1.0.0)
|
189
189
|
rake (>= 12.2)
|
@@ -196,8 +196,8 @@ GEM
|
|
196
196
|
regexp_parser (2.9.2)
|
197
197
|
reline (0.5.8)
|
198
198
|
io-console (~> 0.5)
|
199
|
-
rexml (3.
|
200
|
-
strscan
|
199
|
+
rexml (3.3.0)
|
200
|
+
strscan
|
201
201
|
rspec (3.13.0)
|
202
202
|
rspec-core (~> 3.13.0)
|
203
203
|
rspec-expectations (~> 3.13.0)
|
@@ -224,9 +224,7 @@ GEM
|
|
224
224
|
unicode-display_width (>= 2.4.0, < 3.0)
|
225
225
|
rubocop-ast (1.31.3)
|
226
226
|
parser (>= 3.3.1.0)
|
227
|
-
rubocop-capybara (2.
|
228
|
-
rubocop (~> 1.41)
|
229
|
-
rubocop-factory_bot (2.25.1)
|
227
|
+
rubocop-capybara (2.21.0)
|
230
228
|
rubocop (~> 1.41)
|
231
229
|
rubocop-rails (2.25.0)
|
232
230
|
activesupport (>= 4.2.0)
|
@@ -235,13 +233,8 @@ GEM
|
|
235
233
|
rubocop-ast (>= 1.31.1, < 2.0)
|
236
234
|
rubocop-rake (0.6.0)
|
237
235
|
rubocop (~> 1.0)
|
238
|
-
rubocop-rspec (
|
239
|
-
rubocop (~> 1.
|
240
|
-
rubocop-capybara (~> 2.17)
|
241
|
-
rubocop-factory_bot (~> 2.22)
|
242
|
-
rubocop-rspec_rails (~> 2.28)
|
243
|
-
rubocop-rspec_rails (2.28.3)
|
244
|
-
rubocop (~> 1.40)
|
236
|
+
rubocop-rspec (3.0.1)
|
237
|
+
rubocop (~> 1.61)
|
245
238
|
ruby-progressbar (1.13.0)
|
246
239
|
simplecov (0.22.0)
|
247
240
|
docile (~> 1.1)
|
@@ -269,6 +262,7 @@ GEM
|
|
269
262
|
PLATFORMS
|
270
263
|
x86_64-darwin-19
|
271
264
|
x86_64-darwin-20
|
265
|
+
x86_64-darwin-22
|
272
266
|
x86_64-linux
|
273
267
|
|
274
268
|
DEPENDENCIES
|
@@ -279,9 +273,10 @@ DEPENDENCIES
|
|
279
273
|
rake (~> 13.2)
|
280
274
|
rspec (~> 3.13)
|
281
275
|
rubocop (~> 1.64)
|
276
|
+
rubocop-capybara (~> 2.20)
|
282
277
|
rubocop-rails (~> 2.25)
|
283
278
|
rubocop-rake (~> 0.6)
|
284
|
-
rubocop-rspec (~>
|
279
|
+
rubocop-rspec (~> 3.0)
|
285
280
|
simplecov (~> 0.21)
|
286
281
|
yard (~> 0.9)
|
287
282
|
|
data/README.md
CHANGED
@@ -1,6 +1,6 @@
|
|
1
1
|
# CCS Frontend Helpers
|
2
2
|
|
3
|
-
[![Ruby](https://github.com/Crown-Commercial-Service/ccs-frontend_helpers/actions/workflows/
|
3
|
+
[![Ruby](https://github.com/Crown-Commercial-Service/ccs-frontend_helpers/actions/workflows/release.yml/badge.svg)](https://github.com/Crown-Commercial-Service/ccs-frontend_helpers/actions/workflows/release.yml)
|
4
4
|
[![Gem Version](https://badge.fury.io/rb/ccs-frontend_helpers.svg)](https://badge.fury.io/rb/ccs-frontend_helpers)
|
5
5
|
|
6
6
|
The CCS Frontend Helpers gem was created for use in the Crown Marketplace projects at the Crown Commercial Service.
|
@@ -14,7 +14,8 @@ The following table shows the version of CCS Frontend Helpers that you should us
|
|
14
14
|
|
15
15
|
| CCS Frontend Helpers Version | Target GOV.UK Frontend Version | Target CCS Frontend Version |
|
16
16
|
| ----------------------------- | ------------------------------ | --------------------------- |
|
17
|
-
| [1.0.
|
17
|
+
| [1.1.0.beta0](https://github.com/Crown-Commercial-Service/ccs-frontend_helpers/releases/tag/v[1.1.0.beta0) | [5.4.0](https://github.com/alphagov/govuk-frontend/releases/tag/v5.4.0) | [1.1.0-beta.2](https://github.com/Crown-Commercial-Service/ccs-frontend-project/releases/tag/1.1.0-beta.2) |
|
18
|
+
| [1.0.0](https://github.com/Crown-Commercial-Service/ccs-frontend_helpers/releases/tag/v1.0.0) | [5.4.0](https://github.com/alphagov/govuk-frontend/releases/tag/v5.4.0) | [1.0.0](https://github.com/Crown-Commercial-Service/ccs-frontend-project/releases/tag/v1.0.0) |
|
18
19
|
| [0.4.0](https://github.com/Crown-Commercial-Service/ccs-frontend_helpers/releases/tag/v0.4.0) | [5.4.0](https://github.com/alphagov/govuk-frontend/releases/tag/v5.4.0) | N/A |
|
19
20
|
| [0.3.0](https://github.com/Crown-Commercial-Service/ccs-frontend_helpers/releases/tag/v0.3.0) | [5.3.0](https://github.com/alphagov/govuk-frontend/releases/tag/v5.3.0) | N/A |
|
20
21
|
| [0.2.0](https://github.com/Crown-Commercial-Service/ccs-frontend_helpers/releases/tag/v0.2.0) | [5.2.0](https://github.com/alphagov/govuk-frontend/releases/tag/v5.2.0) | N/A |
|
@@ -0,0 +1,70 @@
|
|
1
|
+
require_relative '../base'
|
2
|
+
|
3
|
+
module CCS
|
4
|
+
module Components
|
5
|
+
module CCS
|
6
|
+
# = CCS Contract Us
|
7
|
+
#
|
8
|
+
# This is used for generating the contact us component from the
|
9
|
+
# {https://github.com/Crown-Commercial-Service/ccs-frontend-project/tree/main/packages/ccs-frontend/src/ccs/components/header CCS - Components - Contact Us}
|
10
|
+
#
|
11
|
+
# @!attribute [r] contact_us_link_href
|
12
|
+
# @return [String] Contact us link href
|
13
|
+
# @!attribute [r] contact_us_link_text
|
14
|
+
# @return [String] Contact us link text
|
15
|
+
# @!attribute [r] having_problems_text
|
16
|
+
# @return [String] Having problem text
|
17
|
+
# @!attribute [r] contact_us_text
|
18
|
+
# @return [String] Contact use text
|
19
|
+
|
20
|
+
class ContactUs < Base
|
21
|
+
private
|
22
|
+
|
23
|
+
attr_reader :contact_us_link_href, :contact_us_link_text, :having_problems_text, :contact_us_text
|
24
|
+
|
25
|
+
public
|
26
|
+
|
27
|
+
# @param contact_us_link_href [String] Contact us link href
|
28
|
+
# @param contact_us_link_text [String] Contact us link text, defaults to "Contact us (opens in a new tab)"
|
29
|
+
# @param having_problems_text [String] Having problem text, defaults to "Having problems with this service?"
|
30
|
+
# @param contact_us_text [String] Contact use text, defaults to "for support."
|
31
|
+
#
|
32
|
+
# @option options [String] :classes additional CSS classes for the contact us HTML
|
33
|
+
# @option options [Hash] :attributes additional attributes that will added as part of the contact us HTML
|
34
|
+
|
35
|
+
def initialize(contact_us_link_href:, having_problems_text: nil, contact_us_link_text: nil, contact_us_text: nil, **options)
|
36
|
+
super(**options)
|
37
|
+
|
38
|
+
@contact_us_link_href = contact_us_link_href
|
39
|
+
@contact_us_link_text = contact_us_link_text || 'Contact us (opens in a new tab)'
|
40
|
+
@having_problems_text = having_problems_text || 'Having problems with this service?'
|
41
|
+
@contact_us_text = contact_us_text || 'for support.'
|
42
|
+
end
|
43
|
+
|
44
|
+
# Generates the HTML for the CCS Contact Us component
|
45
|
+
#
|
46
|
+
# @return [ActiveSupport::SafeBuffer]
|
47
|
+
|
48
|
+
def render
|
49
|
+
tag.div(**options[:attributes]) do
|
50
|
+
tag.div(class: 'govuk-width-container') do
|
51
|
+
tag.div(class: 'govuk-grid-row') do
|
52
|
+
tag.div(class: 'govuk-grid-column-full') do
|
53
|
+
tag.p(class: 'ccs-contact-us-body') do
|
54
|
+
concat(tag.strong(having_problems_text, class: 'ccs-contact-us-body__problems'))
|
55
|
+
concat(link_to(contact_us_link_text, contact_us_link_href, class: 'govuk-link', rel: 'noreferrer noopener', target: '_blank'))
|
56
|
+
concat(contact_us_text)
|
57
|
+
end
|
58
|
+
end
|
59
|
+
end
|
60
|
+
end
|
61
|
+
end
|
62
|
+
end
|
63
|
+
|
64
|
+
# The default attributes for contact us
|
65
|
+
|
66
|
+
DEFAULT_ATTRIBUTES = { class: 'ccs-contact-us' }.freeze
|
67
|
+
end
|
68
|
+
end
|
69
|
+
end
|
70
|
+
end
|
@@ -9,7 +9,7 @@ module CCS
|
|
9
9
|
# = CCS Footer
|
10
10
|
#
|
11
11
|
# This is used for generating the footer component from the
|
12
|
-
# {https://github.com/
|
12
|
+
# {https://github.com/Crown-Commercial-Service/ccs-frontend-project/tree/main/packages/ccs-frontend/src/ccs/components/footer CCS - Components - Footer}
|
13
13
|
#
|
14
14
|
# @!attribute [r] logo
|
15
15
|
# @return [Logo] The initialised Logo component
|
@@ -9,7 +9,7 @@ module CCS
|
|
9
9
|
# = CCS Header
|
10
10
|
#
|
11
11
|
# This is used for generating the header component from the
|
12
|
-
# {https://github.com/
|
12
|
+
# {https://github.com/Crown-Commercial-Service/ccs-frontend-project/tree/main/packages/ccs-frontend/src/ccs/components/header CCS - Components - Header}
|
13
13
|
#
|
14
14
|
# @!attribute [r] logo
|
15
15
|
# @return [Logo] The initialised Logo component
|
@@ -6,7 +6,7 @@ module CCS
|
|
6
6
|
# = CCS Logo
|
7
7
|
#
|
8
8
|
# This is used for generating the logo component from the
|
9
|
-
# {https://github.com/
|
9
|
+
# {https://github.com/Crown-Commercial-Service/ccs-frontend-project/tree/main/packages/ccs-frontend/src/ccs/components/logo CCS - Components - Logo}
|
10
10
|
|
11
11
|
class Logo < Base
|
12
12
|
# Generates the HTML for the CCS Logo.
|
@@ -0,0 +1,62 @@
|
|
1
|
+
require_relative '../../base'
|
2
|
+
|
3
|
+
module CCS
|
4
|
+
module Components
|
5
|
+
module CCS
|
6
|
+
class PasswordStrength < Base
|
7
|
+
# = CCS Password Strength Test
|
8
|
+
#
|
9
|
+
# The individual test within the password strength list
|
10
|
+
#
|
11
|
+
# @!attribute [r] text
|
12
|
+
# @return [Symbol] Text for the tes
|
13
|
+
|
14
|
+
class Test < Base
|
15
|
+
private
|
16
|
+
|
17
|
+
attr_reader :text
|
18
|
+
|
19
|
+
public
|
20
|
+
|
21
|
+
# @param type [Symbol] The type of the test, one of: length, symbol, number, uppercase, lowercase
|
22
|
+
# @param text [String] Optional text for the test. If not given then a default will be used
|
23
|
+
# @param text [value] This is required if type is length and is the required length of the password.
|
24
|
+
# This is required if type is symbol and is the list of allowed symbols.
|
25
|
+
|
26
|
+
def initialize(context:, type:, text: nil, value: nil)
|
27
|
+
super(context: context, attributes: { data: { 'test-type': type } })
|
28
|
+
|
29
|
+
default_text = case type
|
30
|
+
when :length
|
31
|
+
@options[:attributes][:data]['test-value'] = value
|
32
|
+
"at least #{value} characters"
|
33
|
+
when :symbol
|
34
|
+
@options[:attributes][:data]['test-value'] = value
|
35
|
+
'at least one symbol (eg ?, !, £, %)'
|
36
|
+
when :number
|
37
|
+
'at least one number'
|
38
|
+
when :uppercase
|
39
|
+
'at least one capital letter'
|
40
|
+
when :lowercase
|
41
|
+
'at least one lowercase letter'
|
42
|
+
end
|
43
|
+
|
44
|
+
@text = text || default_text
|
45
|
+
end
|
46
|
+
|
47
|
+
# Generates the HTML for the CCS Password Strength Test
|
48
|
+
#
|
49
|
+
# @return [ActiveSupport::SafeBuffer]
|
50
|
+
|
51
|
+
def render
|
52
|
+
tag.li(text, **options[:attributes])
|
53
|
+
end
|
54
|
+
|
55
|
+
# The default attributes for the password strength test
|
56
|
+
|
57
|
+
DEFAULT_ATTRIBUTES = { class: 'ccs-password-strength-test' }.freeze
|
58
|
+
end
|
59
|
+
end
|
60
|
+
end
|
61
|
+
end
|
62
|
+
end
|
@@ -0,0 +1,53 @@
|
|
1
|
+
require_relative '../base'
|
2
|
+
require_relative 'password_strength/test'
|
3
|
+
|
4
|
+
module CCS
|
5
|
+
module Components
|
6
|
+
module CCS
|
7
|
+
# = CCS Password Strength
|
8
|
+
#
|
9
|
+
# This is used for generating the contact us component from the
|
10
|
+
# {https://github.com/Crown-Commercial-Service/ccs-frontend-project/tree/main/packages/ccs-frontend/src/ccs/components/password-strength CCS - Components - Password strength}
|
11
|
+
#
|
12
|
+
# @!attribute [r] password_strength_tests
|
13
|
+
# @return [Array<Test>] An array of the initialised password strength tests
|
14
|
+
|
15
|
+
class PasswordStrength < Base
|
16
|
+
private
|
17
|
+
|
18
|
+
attr_reader :password_strength_tests
|
19
|
+
|
20
|
+
public
|
21
|
+
|
22
|
+
# @param password_id [String] The ID for the password element that will be checked against
|
23
|
+
# @param password_strength_tests [Array<Hash>] An array of options for the password strength tests,
|
24
|
+
# See {Components::CCS::PasswordStrength::Test#initialize Test#initialize} for details of the items in the array.
|
25
|
+
#
|
26
|
+
# @option options [String] :classes additional CSS classes for the password strength HTML
|
27
|
+
# @option options [Hash] :attributes any additional attributes that will added as part of the HTML
|
28
|
+
|
29
|
+
def initialize(password_id:, password_strength_tests:, **options)
|
30
|
+
super(**options)
|
31
|
+
|
32
|
+
@options[:attributes][:data][:target] = password_id
|
33
|
+
|
34
|
+
@password_strength_tests = password_strength_tests.map { |password_strength_test| Test.new(context: @context, **password_strength_test) }
|
35
|
+
end
|
36
|
+
|
37
|
+
# Generates the HTML for the CCS password strength component
|
38
|
+
#
|
39
|
+
# @return [ActiveSupport::SafeBuffer]
|
40
|
+
|
41
|
+
def render
|
42
|
+
tag.ul(**options[:attributes]) do
|
43
|
+
password_strength_tests.each { |password_strength_test| concat(password_strength_test.render) }
|
44
|
+
end
|
45
|
+
end
|
46
|
+
|
47
|
+
# The default attributes for password strength
|
48
|
+
|
49
|
+
DEFAULT_ATTRIBUTES = { class: 'ccs-password-strength', data: { module: 'ccs-password-strength' } }.freeze
|
50
|
+
end
|
51
|
+
end
|
52
|
+
end
|
53
|
+
end
|
@@ -0,0 +1,28 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
require_relative '../../components/ccs/contact_us'
|
4
|
+
|
5
|
+
module CCS
|
6
|
+
module FrontendHelpers
|
7
|
+
module CCSFrontend
|
8
|
+
# = CCS Contact Us
|
9
|
+
#
|
10
|
+
# This helper is used for generating the contact us component from the
|
11
|
+
# {https://github.com/Crown-Commercial-Service/ccs-frontend-project/tree/main/packages/ccs-frontend/src/ccs/components/contact-us CCS - Components - Contact Us}
|
12
|
+
|
13
|
+
module ContactUs
|
14
|
+
# Generates the HTML for the CCS Contact Us component
|
15
|
+
#
|
16
|
+
# @param (see CCS::Components::CCS::ContactUs#initialize)
|
17
|
+
#
|
18
|
+
# @option (see CCS::Components::CCS::ContactUs#initialize)
|
19
|
+
#
|
20
|
+
# @return (see CCS::Components::CCS::ContactUs#render)
|
21
|
+
|
22
|
+
def ccs_contact_us(contact_us_link_href, **options)
|
23
|
+
Components::CCS::ContactUs.new(contact_us_link_href: contact_us_link_href, context: self, **options).render
|
24
|
+
end
|
25
|
+
end
|
26
|
+
end
|
27
|
+
end
|
28
|
+
end
|
@@ -8,7 +8,7 @@ module CCS
|
|
8
8
|
# = CCS Footer
|
9
9
|
#
|
10
10
|
# This helper is used for generating the footer component from the
|
11
|
-
# {https://github.com/
|
11
|
+
# {https://github.com/Crown-Commercial-Service/ccs-frontend-project/tree/main/packages/ccs-frontend/src/ccs/components/footer CCS - Components - Footer}
|
12
12
|
|
13
13
|
module Footer
|
14
14
|
# Generates the HTML for the CCS Footer component
|
@@ -8,7 +8,7 @@ module CCS
|
|
8
8
|
# = CCS Header
|
9
9
|
#
|
10
10
|
# This helper is used for generating the header component from the
|
11
|
-
# {https://github.com/
|
11
|
+
# {https://github.com/Crown-Commercial-Service/ccs-frontend-project/tree/main/packages/ccs-frontend/src/ccs/components/header CCS - Components - Header}
|
12
12
|
|
13
13
|
module Header
|
14
14
|
# Generates the HTML for the CCS Header component
|
@@ -8,7 +8,7 @@ module CCS
|
|
8
8
|
# = CCS Logo
|
9
9
|
#
|
10
10
|
# This helper is used for generating the logo component from the
|
11
|
-
# {https://github.com/
|
11
|
+
# {https://github.com/Crown-Commercial-Service/ccs-frontend-project/tree/main/packages/ccs-frontend/src/ccs/components/logo CCS - Components - Logo}
|
12
12
|
|
13
13
|
module Logo
|
14
14
|
# Generates the HTML for the CCS Logo component
|
@@ -0,0 +1,28 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
require_relative '../../components/ccs/password_strength'
|
4
|
+
|
5
|
+
module CCS
|
6
|
+
module FrontendHelpers
|
7
|
+
module CCSFrontend
|
8
|
+
# = CCS Password Strength
|
9
|
+
#
|
10
|
+
# This helper is used for generating the password strength component from the
|
11
|
+
# {https://github.com/Crown-Commercial-Service/ccs-frontend-project/tree/main/packages/ccs-frontend/src/ccs/components/contact-us CCS - Components - Password Strength}
|
12
|
+
|
13
|
+
module PasswordStrength
|
14
|
+
# Generates the HTML for the CCS Password Strength component
|
15
|
+
#
|
16
|
+
# @param (see CCS::Components::CCS::PasswordStrength#initialize)
|
17
|
+
#
|
18
|
+
# @option (see CCS::Components::CCS::PasswordStrength#initialize)
|
19
|
+
#
|
20
|
+
# @return (see CCS::Components::CCS::PasswordStrength#render)
|
21
|
+
|
22
|
+
def ccs_password_strength(password_id, password_strength_tests, **options)
|
23
|
+
Components::CCS::PasswordStrength.new(password_id: password_id, password_strength_tests: password_strength_tests, context: self, **options).render
|
24
|
+
end
|
25
|
+
end
|
26
|
+
end
|
27
|
+
end
|
28
|
+
end
|
@@ -1,9 +1,11 @@
|
|
1
1
|
# frozen_string_literal: true
|
2
2
|
|
3
|
+
require_relative 'ccs_frontend/contact_us'
|
3
4
|
require_relative 'ccs_frontend/dashboard_section'
|
4
5
|
require_relative 'ccs_frontend/footer'
|
5
6
|
require_relative 'ccs_frontend/header'
|
6
7
|
require_relative 'ccs_frontend/logo'
|
8
|
+
require_relative 'ccs_frontend/password_strength'
|
7
9
|
|
8
10
|
module CCS
|
9
11
|
module FrontendHelpers
|
@@ -11,10 +13,12 @@ module CCS
|
|
11
13
|
# These are a collection of view helpers to help render CCS components
|
12
14
|
|
13
15
|
module CCSFrontend
|
16
|
+
include ContactUs
|
14
17
|
include DashboardSection
|
15
18
|
include Footer
|
16
19
|
include Header
|
17
20
|
include Logo
|
21
|
+
include PasswordStrength
|
18
22
|
end
|
19
23
|
end
|
20
24
|
end
|
data/package.json
CHANGED
data/yarn.lock
CHANGED
@@ -2,10 +2,10 @@
|
|
2
2
|
# yarn lockfile v1
|
3
3
|
|
4
4
|
|
5
|
-
ccs-frontend@^1.0.
|
6
|
-
version "1.0.
|
7
|
-
resolved "https://registry.yarnpkg.com/ccs-frontend/-/ccs-frontend-1.
|
8
|
-
integrity sha512-
|
5
|
+
ccs-frontend@^1.1.0-beta.2:
|
6
|
+
version "1.1.0-beta.2"
|
7
|
+
resolved "https://registry.yarnpkg.com/ccs-frontend/-/ccs-frontend-1.1.0-beta.2.tgz#6d99e856a8c93fed0269e387f2da5b9101b4967a"
|
8
|
+
integrity sha512-JtdsweeoAIZhxGiO/KCmp9Pd6Rije0TOGAx7yP5/Sdgqbl+SffctX/SJlG4woUY0XK3mgglcHudjTBCGfBF+cg==
|
9
9
|
|
10
10
|
govuk-frontend@^5.4.0:
|
11
11
|
version "5.4.0"
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: ccs-frontend_helpers
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.0.
|
4
|
+
version: 1.1.0.beta0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Crown Commercial Service
|
8
8
|
autorequire:
|
9
9
|
bindir: exe
|
10
10
|
cert_chain: []
|
11
|
-
date: 2024-06-
|
11
|
+
date: 2024-06-28 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: rails
|
@@ -41,6 +41,7 @@ files:
|
|
41
41
|
- Rakefile
|
42
42
|
- ccs-frontend_helpers.gemspec
|
43
43
|
- lib/ccs/components/base.rb
|
44
|
+
- lib/ccs/components/ccs/contact_us.rb
|
44
45
|
- lib/ccs/components/ccs/dashboard_section.rb
|
45
46
|
- lib/ccs/components/ccs/dashboard_section/panel.rb
|
46
47
|
- lib/ccs/components/ccs/footer.rb
|
@@ -52,6 +53,8 @@ files:
|
|
52
53
|
- lib/ccs/components/ccs/header/navigation.rb
|
53
54
|
- lib/ccs/components/ccs/header/service_authentication.rb
|
54
55
|
- lib/ccs/components/ccs/logo.rb
|
56
|
+
- lib/ccs/components/ccs/password_strength.rb
|
57
|
+
- lib/ccs/components/ccs/password_strength/test.rb
|
55
58
|
- lib/ccs/components/govuk/accordion.rb
|
56
59
|
- lib/ccs/components/govuk/accordion/section.rb
|
57
60
|
- lib/ccs/components/govuk/accordion/section/content.rb
|
@@ -148,10 +151,12 @@ files:
|
|
148
151
|
- lib/ccs/components/govuk/warning_text.rb
|
149
152
|
- lib/ccs/frontend_helpers.rb
|
150
153
|
- lib/ccs/frontend_helpers/ccs_frontend.rb
|
154
|
+
- lib/ccs/frontend_helpers/ccs_frontend/contact_us.rb
|
151
155
|
- lib/ccs/frontend_helpers/ccs_frontend/dashboard_section.rb
|
152
156
|
- lib/ccs/frontend_helpers/ccs_frontend/footer.rb
|
153
157
|
- lib/ccs/frontend_helpers/ccs_frontend/header.rb
|
154
158
|
- lib/ccs/frontend_helpers/ccs_frontend/logo.rb
|
159
|
+
- lib/ccs/frontend_helpers/ccs_frontend/password_strength.rb
|
155
160
|
- lib/ccs/frontend_helpers/govuk_frontend.rb
|
156
161
|
- lib/ccs/frontend_helpers/govuk_frontend/accordion.rb
|
157
162
|
- lib/ccs/frontend_helpers/govuk_frontend/back_link.rb
|
@@ -217,7 +222,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
217
222
|
- !ruby/object:Gem::Version
|
218
223
|
version: '0'
|
219
224
|
requirements: []
|
220
|
-
rubygems_version: 3.
|
225
|
+
rubygems_version: 3.5.9
|
221
226
|
signing_key:
|
222
227
|
specification_version: 4
|
223
228
|
summary: Gem containing view helpers for CCS Ruby on Rails projects
|