metadata_presenter 2.16.10 → 2.16.13
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/app/controllers/metadata_presenter/engine_controller.rb +25 -0
- data/app/models/metadata_presenter/component.rb +8 -0
- data/app/validators/metadata_presenter/base_validator.rb +10 -5
- data/app/validators/metadata_presenter/date_validator.rb +8 -0
- data/app/views/layouts/metadata_presenter/application.html.erb +9 -1
- data/app/views/metadata_presenter/analytics/_cookie_banner.html.erb +63 -0
- data/app/views/metadata_presenter/analytics/_ga4.html.erb +10 -0
- data/app/views/metadata_presenter/analytics/_google.html.erb +5 -0
- data/app/views/metadata_presenter/analytics/_gtm.html.erb +7 -0
- data/app/views/metadata_presenter/analytics/_ua.html.erb +11 -0
- data/app/views/metadata_presenter/analytics/analytics.html.erb +3 -0
- data/app/views/metadata_presenter/component/_textarea.html.erb +3 -3
- data/config/initializers/supported_analytics.rb +1 -0
- data/config/locales/en.yml +12 -0
- data/default_metadata/component/autocomplete.json +12 -0
- data/default_metadata/string/error.accept.json +1 -1
- data/default_metadata/string/error.date.json +1 -1
- data/default_metadata/string/error.date_after.json +1 -1
- data/default_metadata/string/error.date_before.json +1 -1
- data/default_metadata/string/error.max_length.json +1 -1
- data/default_metadata/string/error.max_word.json +1 -1
- data/default_metadata/string/error.maximum.json +1 -1
- data/default_metadata/string/error.min_length.json +1 -1
- data/default_metadata/string/error.min_word.json +1 -1
- data/default_metadata/string/error.minimum.json +1 -1
- data/default_metadata/string/error.number.json +1 -1
- data/default_metadata/string/error.required.json +2 -2
- data/default_metadata/string/error.virus_scan.json +1 -1
- data/lib/metadata_presenter/version.rb +1 -1
- data/schemas/component/autocomplete.json +17 -0
- data/schemas/definition/select.json +29 -0
- data/schemas/definition/select_option.json +34 -0
- metadata +14 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: f654eb8910e6b544c20c7b4966c923dfaa60fe94bf2afb0602ba6522b22c897b
|
4
|
+
data.tar.gz: fdaf6374f850ecd62c1b41fb2c985d98e5fd422943012e437344086a7fd9ad07
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: bd349181c6279c3f338b6004a8730d4b6f9f5624be90d99712875e16c799827936837c66b24d99738440588b26ee8ab67213bf18cabfb35e788da8e7734f49d7
|
7
|
+
data.tar.gz: ae76a89d85d486dfea4f4154e5bfd3da23455501eec8ac6c9b8ec28a015fa87253e5d093afcdec60e9e0928cdeff4b43072376f8f2c3ba0d1bb572168d7ef223
|
@@ -35,6 +35,21 @@ module MetadataPresenter
|
|
35
35
|
end
|
36
36
|
helper_method :answered?
|
37
37
|
|
38
|
+
def analytics_cookie_name
|
39
|
+
@analytics_cookie_name ||= "analytics-#{service.service_name.parameterize}"
|
40
|
+
end
|
41
|
+
helper_method :analytics_cookie_name
|
42
|
+
|
43
|
+
def allow_analytics?
|
44
|
+
no_analytics_cookie? || cookies[analytics_cookie_name] == 'accepted'
|
45
|
+
end
|
46
|
+
helper_method :allow_analytics?
|
47
|
+
|
48
|
+
def show_cookie_banner?
|
49
|
+
no_analytics_cookie? && analytics_tags_present?
|
50
|
+
end
|
51
|
+
helper_method :show_cookie_banner?
|
52
|
+
|
38
53
|
private
|
39
54
|
|
40
55
|
def not_found
|
@@ -44,5 +59,15 @@ module MetadataPresenter
|
|
44
59
|
def redirect_to_page(url)
|
45
60
|
redirect_to File.join(request.script_name, url)
|
46
61
|
end
|
62
|
+
|
63
|
+
def analytics_tags_present?
|
64
|
+
Rails.application.config.supported_analytics.values.flatten.any? do |analytic|
|
65
|
+
ENV[analytic].present?
|
66
|
+
end
|
67
|
+
end
|
68
|
+
|
69
|
+
def no_analytics_cookie?
|
70
|
+
cookies[analytics_cookie_name].blank?
|
71
|
+
end
|
47
72
|
end
|
48
73
|
end
|
@@ -6,6 +6,10 @@ class MetadataPresenter::Component < MetadataPresenter::Metadata
|
|
6
6
|
'textarea' => 'string'
|
7
7
|
}.freeze
|
8
8
|
|
9
|
+
# Used for max_length and max_word validations.
|
10
|
+
# Threshold percentage at which the remaining count is shown
|
11
|
+
VALIDATION_STRING_LENGTH_THRESHOLD = 75
|
12
|
+
|
9
13
|
def to_partial_path
|
10
14
|
"metadata_presenter/component/#{type}"
|
11
15
|
end
|
@@ -46,6 +50,10 @@ class MetadataPresenter::Component < MetadataPresenter::Metadata
|
|
46
50
|
.keys
|
47
51
|
end
|
48
52
|
|
53
|
+
def validation_threshold
|
54
|
+
VALIDATION_STRING_LENGTH_THRESHOLD
|
55
|
+
end
|
56
|
+
|
49
57
|
private
|
50
58
|
|
51
59
|
def validation_bundle_key
|
@@ -75,10 +75,9 @@ module MetadataPresenter
|
|
75
75
|
# is not present
|
76
76
|
def default_error_message
|
77
77
|
default_error_message_key = "error.#{schema_key}"
|
78
|
-
default_message = Rails
|
79
|
-
|
80
|
-
|
81
|
-
.default_metadata[default_error_message_key]
|
78
|
+
default_message = Rails.application
|
79
|
+
.config
|
80
|
+
.default_metadata[default_error_message_key]
|
82
81
|
|
83
82
|
if default_message.present?
|
84
83
|
default_message['value'] % error_message_hash
|
@@ -116,10 +115,16 @@ module MetadataPresenter
|
|
116
115
|
def error_message_hash
|
117
116
|
{
|
118
117
|
control: component.humanised_title,
|
119
|
-
schema_key.to_sym =>
|
118
|
+
schema_key.to_sym => validation_value
|
120
119
|
}
|
121
120
|
end
|
122
121
|
|
122
|
+
# The validation configuration value
|
123
|
+
# Override if additional formatting of the value is required
|
124
|
+
def validation_value
|
125
|
+
component.validation[schema_key]
|
126
|
+
end
|
127
|
+
|
123
128
|
# Method signature to be overwrite in the subclass if you do not want to allow
|
124
129
|
# blank values. We should not allow blank when performing the required
|
125
130
|
# validation.
|
@@ -1,5 +1,7 @@
|
|
1
1
|
module MetadataPresenter
|
2
2
|
class DateValidator < BaseValidator
|
3
|
+
DATE_STRING_VALIDATIONS = %w[date_after date_before].freeze
|
4
|
+
|
3
5
|
def invalid_answer?
|
4
6
|
Date.strptime(
|
5
7
|
"#{user_answer.year}-#{user_answer.month}-#{user_answer.day}",
|
@@ -10,5 +12,11 @@ module MetadataPresenter
|
|
10
12
|
rescue Date::Error
|
11
13
|
true
|
12
14
|
end
|
15
|
+
|
16
|
+
def validation_value
|
17
|
+
return unless schema_key.in?(DATE_STRING_VALIDATIONS)
|
18
|
+
|
19
|
+
Date.parse(component.validation[schema_key]).strftime('%d %m %Y')
|
20
|
+
end
|
13
21
|
end
|
14
22
|
end
|
@@ -4,7 +4,7 @@
|
|
4
4
|
<title><%= service.service_name %></title>
|
5
5
|
<%= csrf_meta_tags %>
|
6
6
|
<%= csp_meta_tag %>
|
7
|
-
|
7
|
+
|
8
8
|
<meta name="viewport" content="width=device-width, initial-scale=1, viewport-fit=cover">
|
9
9
|
<link rel="shortcut icon" sizes="16x16 32x32 48x48" href="<%= asset_pack_url('media/images/favicon.ico') %>" type="image/x-icon" />
|
10
10
|
<link rel="mask-icon" href="<%= asset_pack_url('media/images/govuk-mask-icon.svg') %>" color="blue">
|
@@ -15,9 +15,17 @@
|
|
15
15
|
|
16
16
|
<%= stylesheet_pack_tag 'govuk' %>
|
17
17
|
<%= stylesheet_link_tag 'application', media: 'all' %>
|
18
|
+
|
19
|
+
<% if allow_analytics? %>
|
20
|
+
<%= render template: 'metadata_presenter/analytics/analytics' %>
|
21
|
+
<% end %>
|
18
22
|
</head>
|
19
23
|
|
20
24
|
<body class="govuk-template__body">
|
25
|
+
<% if show_cookie_banner? %>
|
26
|
+
<%= render partial: 'metadata_presenter/analytics/cookie_banner' %>
|
27
|
+
<% end %>
|
28
|
+
|
21
29
|
<%= render template: 'metadata_presenter/header/show' %>
|
22
30
|
<div class="govuk-width-container govuk-body-m">
|
23
31
|
<main class="govuk-main-wrapper govuk-main-wrapper--auto-spacing" id="main-content" role="main">
|
@@ -0,0 +1,63 @@
|
|
1
|
+
<div class="govuk-cookie-banner" id="govuk-cookie-banner" data-nosnippet role="region" aria-label="<%= t('analytics.heading', service_name: service.service_name) %>">
|
2
|
+
<div class="govuk-cookie-banner__message govuk-width-container" id="govuk-cookie-banner-message">
|
3
|
+
|
4
|
+
<div class="govuk-grid-row">
|
5
|
+
<div class="govuk-grid-column-two-thirds">
|
6
|
+
<h2 class="govuk-cookie-banner__heading govuk-heading-m">
|
7
|
+
<%= t('analytics.heading', service_name: service.service_name) %>
|
8
|
+
</h2>
|
9
|
+
|
10
|
+
<div class="govuk-cookie-banner__content">
|
11
|
+
<p class="govuk-body"><%= t('analytics.body_1') %></p>
|
12
|
+
<p class="govuk-body"><%= t('analytics.body_2') %></p>
|
13
|
+
</div>
|
14
|
+
</div>
|
15
|
+
</div>
|
16
|
+
|
17
|
+
<div class="govuk-button-group">
|
18
|
+
<button type="button" class="govuk-button" data-module="govuk-button" onclick='analytics.accept("<%= analytics_cookie_name %>")'>
|
19
|
+
<%= t('analytics.accept') %>
|
20
|
+
</button>
|
21
|
+
<button type="button" class="govuk-button" data-module="govuk-button" onclick='analytics.reject("<%= analytics_cookie_name %>")'>
|
22
|
+
<%= t('analytics.reject') %>
|
23
|
+
</button>
|
24
|
+
<a class="govuk-link" href="/cookies"><%= t('analytics.view_cookies') %></a>
|
25
|
+
</div>
|
26
|
+
</div>
|
27
|
+
|
28
|
+
<div class="govuk-cookie-banner__message govuk-width-container" id="govuk-cookie-banner-message-accepted" role="alert" style="display: none;">
|
29
|
+
<div class="govuk-grid-row">
|
30
|
+
<div class="govuk-grid-column-two-thirds">
|
31
|
+
<div class="govuk-cookie-banner__content">
|
32
|
+
<p class="govuk-body">
|
33
|
+
<%= t('analytics.confirmation', action: t('analytics.accepted')) %>
|
34
|
+
</p>
|
35
|
+
</div>
|
36
|
+
</div>
|
37
|
+
</div>
|
38
|
+
|
39
|
+
<div class="govuk-button-group">
|
40
|
+
<button class="govuk-button" data-module="govuk-button" onclick="analytics.hideCookieBanner()">
|
41
|
+
<%= t('analytics.hide') %>
|
42
|
+
</button>
|
43
|
+
</div>
|
44
|
+
</div>
|
45
|
+
|
46
|
+
<div class="govuk-cookie-banner__message govuk-width-container" id="govuk-cookie-banner-message-rejected" role="alert" style="display: none;">
|
47
|
+
<div class="govuk-grid-row">
|
48
|
+
<div class="govuk-grid-column-two-thirds">
|
49
|
+
<div class="govuk-cookie-banner__content">
|
50
|
+
<p class="govuk-body">
|
51
|
+
<%= t('analytics.confirmation', action: t('analytics.rejected')) %>
|
52
|
+
</p>
|
53
|
+
</div>
|
54
|
+
</div>
|
55
|
+
</div>
|
56
|
+
|
57
|
+
<div class="govuk-button-group">
|
58
|
+
<button class="govuk-button" data-module="govuk-button" onclick="analytics.hideCookieBanner()">
|
59
|
+
<%= t('analytics.hide') %>
|
60
|
+
</button>
|
61
|
+
</div>
|
62
|
+
</div>
|
63
|
+
</div>
|
@@ -0,0 +1,10 @@
|
|
1
|
+
<!-- Global site tag (gtag.js) - Google Analytics -->
|
2
|
+
<script async src="https://www.googletagmanager.com/gtag/js?id=<%= analytic_tag %>"></script>
|
3
|
+
<script>
|
4
|
+
window.dataLayer = window.dataLayer || [];
|
5
|
+
function gtag(){dataLayer.push(arguments);}
|
6
|
+
gtag('js', new Date());
|
7
|
+
|
8
|
+
gtag('config', <%= analytic_tag %>);
|
9
|
+
</script>
|
10
|
+
<!-- End Global site tag (gtag.js) - Google Analytics -->
|
@@ -0,0 +1,7 @@
|
|
1
|
+
<!-- Google Tag Manager -->
|
2
|
+
<script>(function(w,d,s,l,i){w[l]=w[l]||[];w[l].push({'gtm.start':
|
3
|
+
new Date().getTime(),event:'gtm.js'});var f=d.getElementsByTagName(s)[0],
|
4
|
+
j=d.createElement(s),dl=l!='dataLayer'?'&l='+l:'';j.async=true;j.src=
|
5
|
+
'https://www.googletagmanager.com/gtm.js?id='+i+dl;f.parentNode.insertBefore(j,f);
|
6
|
+
})(window,document,'script','dataLayer',<%= analytic_tag %>);</script>
|
7
|
+
<!-- End Google Tag Manager -->
|
@@ -0,0 +1,11 @@
|
|
1
|
+
<!-- Google Universal Analytics -->
|
2
|
+
<script>
|
3
|
+
(function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
|
4
|
+
(i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
|
5
|
+
m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
|
6
|
+
})(window,document,'script','https://www.google-analytics.com/analytics.js','ga');
|
7
|
+
|
8
|
+
ga('create', <%= analytic_tag %>, 'auto');
|
9
|
+
ga('send', 'pageview');
|
10
|
+
</script>
|
11
|
+
<!-- End Google Universal Analytics -->
|
@@ -6,8 +6,8 @@
|
|
6
6
|
text: component.hint
|
7
7
|
},
|
8
8
|
name: "answers[#{component.name}]",
|
9
|
-
max_chars: component.
|
10
|
-
max_words: component.
|
11
|
-
threshold: component.
|
9
|
+
max_chars: component.validation['max_length'],
|
10
|
+
max_words: component.validation['max_word'],
|
11
|
+
threshold: component.validation_threshold,
|
12
12
|
rows: component.rows
|
13
13
|
%>
|
@@ -0,0 +1 @@
|
|
1
|
+
Rails.application.config.supported_analytics = { google: %w[UA GTM GA4] }
|
@@ -0,0 +1,12 @@
|
|
1
|
+
en:
|
2
|
+
analytics:
|
3
|
+
heading: Cookies on %{service_name}
|
4
|
+
body_1: We use some essential cookies to make this service work.
|
5
|
+
body_2: We'd also like to use analytics cookies so we can understand how you use the service and make improvements.
|
6
|
+
accept: Accept analytics cookies
|
7
|
+
reject: Reject analytics cookies
|
8
|
+
view_cookies: View cookies
|
9
|
+
accepted: accepted
|
10
|
+
rejected: rejected
|
11
|
+
confirmation: You've %{action} analytics cookies.
|
12
|
+
hide: Hide this message
|
@@ -2,5 +2,5 @@
|
|
2
2
|
"_id": "error.max_length",
|
3
3
|
"_type": "string.error",
|
4
4
|
"description": "Input (string) is too long",
|
5
|
-
"value": "Your answer for
|
5
|
+
"value": "Your answer for \"%{control}\" must be %{max_length} characters or fewer"
|
6
6
|
}
|
@@ -2,5 +2,5 @@
|
|
2
2
|
"_id": "error.max_word",
|
3
3
|
"_type": "string.error",
|
4
4
|
"description": "Input (number) is higher than the maximum number of words allowed",
|
5
|
-
"value": "
|
5
|
+
"value": "Your answer for \"%{control}\" must be %{max_word} words or fewer"
|
6
6
|
}
|
@@ -2,5 +2,5 @@
|
|
2
2
|
"_id": "error.min_length",
|
3
3
|
"_type": "string.error",
|
4
4
|
"description": "Input (string) is too short",
|
5
|
-
"value": "Your answer for
|
5
|
+
"value": "Your answer for \"%{control}\" must be %{min_length} characters or more"
|
6
6
|
}
|
@@ -2,5 +2,5 @@
|
|
2
2
|
"_id": "error.min_word",
|
3
3
|
"_type": "string.error",
|
4
4
|
"description": "Input (number) is lower than the minimum number of words allowed",
|
5
|
-
"value": "
|
5
|
+
"value": "Your answer for \"%{control}\" must be %{min_word} words or more"
|
6
6
|
}
|
@@ -2,6 +2,6 @@
|
|
2
2
|
"_id": "error.required",
|
3
3
|
"_type": "string.error",
|
4
4
|
"description": "Input is required",
|
5
|
-
"value": "Enter an answer for %{control}",
|
6
|
-
"value:cy": "Rhowch ateb i {control}"
|
5
|
+
"value": "Enter an answer for \"%{control}\"",
|
6
|
+
"value:cy": "Rhowch ateb i \"{control}\""
|
7
7
|
}
|
@@ -2,6 +2,6 @@
|
|
2
2
|
"_id": "error.virus_scan",
|
3
3
|
"_type": "string.error",
|
4
4
|
"description": "File uploaded contains virus",
|
5
|
-
"value": "%{control} was not uploaded successfully because it contains a virus"
|
5
|
+
"value": "\"%{control}\" was not uploaded successfully because it contains a virus"
|
6
6
|
}
|
7
7
|
|
@@ -0,0 +1,17 @@
|
|
1
|
+
{
|
2
|
+
"$id": "http://gov.uk/schema/v1.0.0/autocomplete",
|
3
|
+
"_name": "autocomplete",
|
4
|
+
"title": "Autocomplete",
|
5
|
+
"description": "Let users select one option from an auto-completing list",
|
6
|
+
"type": "object",
|
7
|
+
"allOf": [
|
8
|
+
{
|
9
|
+
"$ref": "definition.select"
|
10
|
+
}
|
11
|
+
],
|
12
|
+
"properties": {
|
13
|
+
"_type": {
|
14
|
+
"const": "autocomplete"
|
15
|
+
}
|
16
|
+
}
|
17
|
+
}
|
@@ -0,0 +1,29 @@
|
|
1
|
+
{
|
2
|
+
"$id": "http://gov.uk/schema/v1.0.0/definition/select",
|
3
|
+
"_name": "definition.select",
|
4
|
+
"title": "Select component definition",
|
5
|
+
"allOf": [
|
6
|
+
{
|
7
|
+
"$ref": "definition.field"
|
8
|
+
},
|
9
|
+
{
|
10
|
+
"$ref": "definition.width_class.input"
|
11
|
+
}
|
12
|
+
],
|
13
|
+
"properties": {
|
14
|
+
"items": {
|
15
|
+
"title": "Options",
|
16
|
+
"description": "Items that users can select",
|
17
|
+
"type": "array",
|
18
|
+
"items": {
|
19
|
+
"$ref": "definition.select_option"
|
20
|
+
}
|
21
|
+
}
|
22
|
+
},
|
23
|
+
"required": [
|
24
|
+
"items"
|
25
|
+
],
|
26
|
+
"category": [
|
27
|
+
"select"
|
28
|
+
]
|
29
|
+
}
|
@@ -0,0 +1,34 @@
|
|
1
|
+
{
|
2
|
+
"$id": "http://gov.uk/schema/v1.0.0/definition/select_option",
|
3
|
+
"_name": "definition.select_option",
|
4
|
+
"title": "Select option",
|
5
|
+
"description": "Component that provides a select option",
|
6
|
+
"type": "object",
|
7
|
+
"properties": {
|
8
|
+
"_type": {
|
9
|
+
"const": "select_option"
|
10
|
+
},
|
11
|
+
"text": {
|
12
|
+
"title": "Option text",
|
13
|
+
"description": "Text displayed to users for that option",
|
14
|
+
"type": "string",
|
15
|
+
"content": true
|
16
|
+
},
|
17
|
+
"value": {
|
18
|
+
"title": "Option value",
|
19
|
+
"description": "Value assigned when users select option",
|
20
|
+
"type": "string"
|
21
|
+
}
|
22
|
+
},
|
23
|
+
"allOf": [
|
24
|
+
{
|
25
|
+
"$ref": "definition.component"
|
26
|
+
}
|
27
|
+
],
|
28
|
+
"required": [
|
29
|
+
"value"
|
30
|
+
],
|
31
|
+
"category": [
|
32
|
+
"select_option"
|
33
|
+
]
|
34
|
+
}
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: metadata_presenter
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 2.16.
|
4
|
+
version: 2.16.13
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- MoJ Forms
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2022-
|
11
|
+
date: 2022-06-08 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: govuk_design_system_formbuilder
|
@@ -333,6 +333,12 @@ files:
|
|
333
333
|
- app/validators/metadata_presenter/word_count.rb
|
334
334
|
- app/views/errors/404.html
|
335
335
|
- app/views/layouts/metadata_presenter/application.html.erb
|
336
|
+
- app/views/metadata_presenter/analytics/_cookie_banner.html.erb
|
337
|
+
- app/views/metadata_presenter/analytics/_ga4.html.erb
|
338
|
+
- app/views/metadata_presenter/analytics/_google.html.erb
|
339
|
+
- app/views/metadata_presenter/analytics/_gtm.html.erb
|
340
|
+
- app/views/metadata_presenter/analytics/_ua.html.erb
|
341
|
+
- app/views/metadata_presenter/analytics/analytics.html.erb
|
336
342
|
- app/views/metadata_presenter/attribute/_body.html.erb
|
337
343
|
- app/views/metadata_presenter/attribute/_heading.html.erb
|
338
344
|
- app/views/metadata_presenter/attribute/_lede.html.erb
|
@@ -363,8 +369,11 @@ files:
|
|
363
369
|
- config/initializers/default_text.rb
|
364
370
|
- config/initializers/inflections.rb
|
365
371
|
- config/initializers/schemas.rb
|
372
|
+
- config/initializers/supported_analytics.rb
|
366
373
|
- config/initializers/supported_components.rb
|
374
|
+
- config/locales/en.yml
|
367
375
|
- config/routes.rb
|
376
|
+
- default_metadata/component/autocomplete.json
|
368
377
|
- default_metadata/component/checkboxes.json
|
369
378
|
- default_metadata/component/content.json
|
370
379
|
- default_metadata/component/date.json
|
@@ -448,6 +457,7 @@ files:
|
|
448
457
|
- lib/metadata_presenter/test_helpers.rb
|
449
458
|
- lib/metadata_presenter/version.rb
|
450
459
|
- lib/tasks/metadata_presenter_tasks.rake
|
460
|
+
- schemas/component/autocomplete.json
|
451
461
|
- schemas/component/checkboxes.json
|
452
462
|
- schemas/component/content.json
|
453
463
|
- schemas/component/date.json
|
@@ -493,6 +503,8 @@ files:
|
|
493
503
|
- schemas/definition/page.json
|
494
504
|
- schemas/definition/radio.json
|
495
505
|
- schemas/definition/repeatable.json
|
506
|
+
- schemas/definition/select.json
|
507
|
+
- schemas/definition/select_option.json
|
496
508
|
- schemas/definition/width_class.input.json
|
497
509
|
- schemas/definition/width_class.json
|
498
510
|
- schemas/errors/errors.json
|