govuk_design_system_formbuilder 2.0.0 → 2.1.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/lib/govuk_design_system_formbuilder.rb +2 -2
- data/lib/govuk_design_system_formbuilder/builder.rb +17 -10
- data/lib/govuk_design_system_formbuilder/containers/fieldset.rb +13 -2
- data/lib/govuk_design_system_formbuilder/elements/check_boxes/fieldset_check_box.rb +2 -13
- data/lib/govuk_design_system_formbuilder/elements/error_summary.rb +10 -5
- data/lib/govuk_design_system_formbuilder/elements/hint.rb +1 -1
- data/lib/govuk_design_system_formbuilder/elements/legend.rb +29 -42
- data/lib/govuk_design_system_formbuilder/elements/null.rb +19 -0
- data/lib/govuk_design_system_formbuilder/elements/radios/fieldset_radio_button.rb +2 -17
- data/lib/govuk_design_system_formbuilder/traits/caption.rb +5 -5
- data/lib/govuk_design_system_formbuilder/traits/fieldset_item.rb +31 -0
- data/lib/govuk_design_system_formbuilder/traits/hint.rb +5 -3
- data/lib/govuk_design_system_formbuilder/traits/label.rb +5 -1
- data/lib/govuk_design_system_formbuilder/version.rb +1 -1
- metadata +8 -6
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA256:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: 2b243fcaf512a7b1edd2455a06cb36368db533c9aa76661fc907d8725a916ecc
|
|
4
|
+
data.tar.gz: 2ac392952f097e0730dc1d10b4b159d273a17335682ddcf8c8a5d589c7d0e53f
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: b4ff3afdcc29348497365e6e04f4a2848c9db92e57fe6db4098a011d5cefd00e3f0a6e38240e7eb4b5776b79a29f36f64785bbfdeb0181b9efed8d5c46813359
|
|
7
|
+
data.tar.gz: 28c9f927dbfbe0b7176184ececf28c6de7ad229613728f7e57d5aed9d5f93c2d49d2d81ff474bad47a809a85dd847a4658d0af9695cdfa5a10a9705272ed926c
|
|
@@ -21,7 +21,7 @@ module GOVUKDesignSystemFormBuilder
|
|
|
21
21
|
# Can be either +xl+, +l+, +m+ or +s+.
|
|
22
22
|
#
|
|
23
23
|
# * +:default_legend_tag+ controls the default tag that legends are
|
|
24
|
-
# wrapped in. Defaults to +
|
|
24
|
+
# wrapped in. Defaults to +nil+.
|
|
25
25
|
#
|
|
26
26
|
# * +:default_submit_button_text+ sets the value assigned to +govuk_submit+,
|
|
27
27
|
# defaults to 'Continue'.
|
|
@@ -47,7 +47,7 @@ module GOVUKDesignSystemFormBuilder
|
|
|
47
47
|
brand: 'govuk',
|
|
48
48
|
|
|
49
49
|
default_legend_size: 'm',
|
|
50
|
-
default_legend_tag:
|
|
50
|
+
default_legend_tag: nil,
|
|
51
51
|
default_caption_size: 'm',
|
|
52
52
|
default_submit_button_text: 'Continue',
|
|
53
53
|
default_radio_divider_text: 'or',
|
|
@@ -459,7 +459,7 @@ module GOVUKDesignSystemFormBuilder
|
|
|
459
459
|
# @param classes [Array,String] Classes to add to the radio button container.
|
|
460
460
|
# @option legend text [String] the fieldset legend's text content
|
|
461
461
|
# @option legend size [String] the size of the fieldset legend font, can be +xl+, +l+, +m+ or +s+
|
|
462
|
-
# @option legend tag [Symbol,String] the tag used for the fieldset's header, defaults to +h1
|
|
462
|
+
# @option legend tag [Symbol,String] the tag used for the fieldset's header, defaults to +h1+.
|
|
463
463
|
# @option legend hidden [Boolean] control the visibility of the legend. Hidden legends will still be read by screenreaders
|
|
464
464
|
# @option legend kwargs [Hash] additional arguments are applied as attributes on the +legend+ element
|
|
465
465
|
# @param caption [Hash] configures or sets the caption content which is inserted above the legend
|
|
@@ -538,7 +538,7 @@ module GOVUKDesignSystemFormBuilder
|
|
|
538
538
|
# @param small [Boolean] controls whether small radio buttons are used instead of regular-sized ones
|
|
539
539
|
# @option legend text [String] the fieldset legend's text content
|
|
540
540
|
# @option legend size [String] the size of the fieldset legend font, can be +xl+, +l+, +m+ or +s+
|
|
541
|
-
# @option legend tag [Symbol,String] the tag used for the fieldset's header, defaults to +h1
|
|
541
|
+
# @option legend tag [Symbol,String] the tag used for the fieldset's header, defaults to +h1+.
|
|
542
542
|
# @option legend hidden [Boolean] control the visibility of the legend. Hidden legends will still be read by screenreaders
|
|
543
543
|
# @option legend kwargs [Hash] additional arguments are applied as attributes on the +legend+ element
|
|
544
544
|
# @param caption [Hash] configures or sets the caption content which is inserted above the legend
|
|
@@ -635,7 +635,7 @@ module GOVUKDesignSystemFormBuilder
|
|
|
635
635
|
# @param legend [NilClass,Hash,Proc] options for configuring the legend. Legend will be omitted if +nil+.
|
|
636
636
|
# @option legend text [String] the fieldset legend's text content
|
|
637
637
|
# @option legend size [String] the size of the fieldset legend font, can be +xl+, +l+, +m+ or +s+
|
|
638
|
-
# @option legend tag [Symbol,String] the tag used for the fieldset's header, defaults to +h1
|
|
638
|
+
# @option legend tag [Symbol,String] the tag used for the fieldset's header, defaults to +h1+.
|
|
639
639
|
# @option legend hidden [Boolean] control the visibility of the legend. Hidden legends will still be read by screenreaders
|
|
640
640
|
# @param caption [Hash] configures or sets the caption content which is inserted above the legend
|
|
641
641
|
# @option caption text [String] the caption text
|
|
@@ -713,7 +713,7 @@ module GOVUKDesignSystemFormBuilder
|
|
|
713
713
|
# @param legend [NilClass,Hash,Proc] options for configuring the legend. Legend will be omitted if +nil+.
|
|
714
714
|
# @option legend text [String] the fieldset legend's text content
|
|
715
715
|
# @option legend size [String] the size of the fieldset legend font, can be +xl+, +l+, +m+ or +s+
|
|
716
|
-
# @option legend tag [Symbol,String] the tag used for the fieldset's header, defaults to +h1
|
|
716
|
+
# @option legend tag [Symbol,String] the tag used for the fieldset's header, defaults to +h1+.
|
|
717
717
|
# @option legend hidden [Boolean] control the visibility of the legend. Hidden legends will still be read by screenreaders
|
|
718
718
|
# @option legend kwargs [Hash] additional arguments are applied as attributes on the +legend+ element
|
|
719
719
|
# @param caption [Hash] configures or sets the caption content which is inserted above the legend
|
|
@@ -816,6 +816,8 @@ module GOVUKDesignSystemFormBuilder
|
|
|
816
816
|
# @return [ActiveSupport::SafeBuffer] HTML output
|
|
817
817
|
# @note Only the first additional button or link (passed in via a block) will be given the
|
|
818
818
|
# correct left margin, subsequent buttons will need to be manually accounted for
|
|
819
|
+
# @note This helper always renders an +<input type='submit'>+ tag, HTML content is not supported inside. You
|
|
820
|
+
# can place +<button>+ tags inside the form to have the same effect
|
|
819
821
|
# @see https://design-system.service.gov.uk/components/button/#stop-users-from-accidentally-sending-information-more-than-once
|
|
820
822
|
# GOV.UK double click prevention
|
|
821
823
|
#
|
|
@@ -840,7 +842,7 @@ module GOVUKDesignSystemFormBuilder
|
|
|
840
842
|
# @param legend [NilClass,Hash,Proc] options for configuring the legend. Legend will be omitted if +nil+.
|
|
841
843
|
# @option legend text [String] the fieldset legend's text content
|
|
842
844
|
# @option legend size [String] the size of the fieldset legend font, can be +xl+, +l+, +m+ or +s+
|
|
843
|
-
# @option legend tag [Symbol,String] the tag used for the fieldset's header, defaults to +h1
|
|
845
|
+
# @option legend tag [Symbol,String] the tag used for the fieldset's header, defaults to +h1+.
|
|
844
846
|
# @option legend hidden [Boolean] control the visibility of the legend. Hidden legends will still be read by screenreaders
|
|
845
847
|
# @option legend kwargs [Hash] additional arguments are applied as attributes on the +legend+ element
|
|
846
848
|
# @param caption [Hash] configures or sets the caption content which is inserted above the legend
|
|
@@ -878,13 +880,18 @@ module GOVUKDesignSystemFormBuilder
|
|
|
878
880
|
# part of the form that contains the error
|
|
879
881
|
#
|
|
880
882
|
# @param title [String] the error summary heading
|
|
883
|
+
# @param link_base_errors_to [Symbol,String] set the field that errors on +:base+ are linked
|
|
884
|
+
# to, as there won't be a field representing the object base.
|
|
885
|
+
#
|
|
886
|
+
# @note Only the first error in the +#errors+ array for each attribute will
|
|
887
|
+
# be included.
|
|
881
888
|
#
|
|
882
889
|
# @example An error summary with a custom title
|
|
883
890
|
# = f.govuk_error_summary 'Uh-oh, spaghettios'
|
|
884
891
|
#
|
|
885
892
|
# @see https://design-system.service.gov.uk/components/error-summary/ GOV.UK error summary
|
|
886
|
-
def govuk_error_summary(title = config.default_error_summary_title)
|
|
887
|
-
Elements::ErrorSummary.new(self, object_name, title).html
|
|
893
|
+
def govuk_error_summary(title = config.default_error_summary_title, link_base_errors_to: nil)
|
|
894
|
+
Elements::ErrorSummary.new(self, object_name, title, link_base_errors_to: link_base_errors_to).html
|
|
888
895
|
end
|
|
889
896
|
|
|
890
897
|
# Generates a fieldset containing the contents of the block
|
|
@@ -893,7 +900,7 @@ module GOVUKDesignSystemFormBuilder
|
|
|
893
900
|
# @param described_by [Array<String>] the ids of the elements that describe this fieldset, usually hints and errors
|
|
894
901
|
# @option legend text [String] the fieldset legend's text content
|
|
895
902
|
# @option legend size [String] the size of the fieldset legend font, can be +xl+, +l+, +m+ or +s+
|
|
896
|
-
# @option legend tag [Symbol,String] the tag used for the fieldset's header, defaults to +h1
|
|
903
|
+
# @option legend tag [Symbol,String] the tag used for the fieldset's header, defaults to +h1+.
|
|
897
904
|
# @option legend hidden [Boolean] control the visibility of the legend. Hidden legends will still be read by screenreaders
|
|
898
905
|
# @option legend kwargs [Hash] additional arguments are applied as attributes on the +legend+ element
|
|
899
906
|
# @param caption [Hash] configures or sets the caption content which is inserted above the label
|
|
@@ -902,13 +909,13 @@ module GOVUKDesignSystemFormBuilder
|
|
|
902
909
|
# @option caption kwargs [Hash] additional arguments are applied as attributes on the caption +span+ element
|
|
903
910
|
#
|
|
904
911
|
# @example A fieldset containing address fields
|
|
905
|
-
# = f.govuk_fieldset legend: { text: 'Address' }
|
|
912
|
+
# = f.govuk_fieldset legend: { text: 'Address' } do
|
|
906
913
|
# = f.govuk_text_field :street
|
|
907
914
|
# = f.govuk_text_field :town
|
|
908
915
|
# = f.govuk_text_field :city
|
|
909
916
|
#
|
|
910
917
|
# @example A fieldset with the legend as a proc
|
|
911
|
-
# = f.govuk_fieldset legend: -> { tag.h3('Skills') }
|
|
918
|
+
# = f.govuk_fieldset legend: -> { tag.h3('Skills') } do
|
|
912
919
|
# = f.govuk_text_area :physical
|
|
913
920
|
# = f.govuk_text_area :mental
|
|
914
921
|
#
|
|
@@ -30,11 +30,22 @@ module GOVUKDesignSystemFormBuilder
|
|
|
30
30
|
end
|
|
31
31
|
|
|
32
32
|
def legend_element
|
|
33
|
-
@legend_element ||=
|
|
33
|
+
@legend_element ||= if @legend.nil?
|
|
34
|
+
Elements::Null.new
|
|
35
|
+
else
|
|
36
|
+
Elements::Legend.new(@builder, @object_name, @attribute_name, **legend_options)
|
|
37
|
+
end
|
|
34
38
|
end
|
|
35
39
|
|
|
36
40
|
def legend_options
|
|
37
|
-
|
|
41
|
+
case @legend
|
|
42
|
+
when Hash
|
|
43
|
+
@legend.merge(caption: @caption)
|
|
44
|
+
when Proc
|
|
45
|
+
{ content: @legend }
|
|
46
|
+
else
|
|
47
|
+
fail(ArgumentError, %(legend must be a Proc or Hash))
|
|
48
|
+
end
|
|
38
49
|
end
|
|
39
50
|
end
|
|
40
51
|
end
|
|
@@ -6,6 +6,7 @@ module GOVUKDesignSystemFormBuilder
|
|
|
6
6
|
|
|
7
7
|
include Traits::Label
|
|
8
8
|
include Traits::Hint
|
|
9
|
+
include Traits::FieldsetItem
|
|
9
10
|
include Traits::Conditional
|
|
10
11
|
|
|
11
12
|
def initialize(builder, object_name, attribute_name, value, unchecked_value, label:, hint:, link_errors:, multiple:, &block)
|
|
@@ -54,19 +55,7 @@ module GOVUKDesignSystemFormBuilder
|
|
|
54
55
|
%w(checkboxes__input).prefix(brand)
|
|
55
56
|
end
|
|
56
57
|
|
|
57
|
-
def
|
|
58
|
-
@label_element ||= Elements::Label.new(@builder, @object_name, @attribute_name, **label_content, **label_options)
|
|
59
|
-
end
|
|
60
|
-
|
|
61
|
-
def label_options
|
|
62
|
-
{ checkbox: true, value: @value, link_errors: @link_errors }
|
|
63
|
-
end
|
|
64
|
-
|
|
65
|
-
def hint_element
|
|
66
|
-
@hint_element ||= Elements::Hint.new(@builder, @object_name, @attribute_name, **hint_options, **hint_content)
|
|
67
|
-
end
|
|
68
|
-
|
|
69
|
-
def hint_options
|
|
58
|
+
def fieldset_options
|
|
70
59
|
{ checkbox: true }
|
|
71
60
|
end
|
|
72
61
|
|
|
@@ -3,10 +3,11 @@ module GOVUKDesignSystemFormBuilder
|
|
|
3
3
|
class ErrorSummary < Base
|
|
4
4
|
include Traits::Error
|
|
5
5
|
|
|
6
|
-
def initialize(builder, object_name, title)
|
|
7
|
-
@builder
|
|
8
|
-
@object_name
|
|
9
|
-
@title
|
|
6
|
+
def initialize(builder, object_name, title, link_base_errors_to:)
|
|
7
|
+
@builder = builder
|
|
8
|
+
@object_name = object_name
|
|
9
|
+
@title = title
|
|
10
|
+
@link_base_errors_to = link_base_errors_to
|
|
10
11
|
end
|
|
11
12
|
|
|
12
13
|
def html
|
|
@@ -54,7 +55,11 @@ module GOVUKDesignSystemFormBuilder
|
|
|
54
55
|
end
|
|
55
56
|
|
|
56
57
|
def field_id(attribute)
|
|
57
|
-
|
|
58
|
+
if attribute.eql?(:base) && @link_base_errors_to.present?
|
|
59
|
+
build_id('field', attribute_name: @link_base_errors_to)
|
|
60
|
+
else
|
|
61
|
+
build_id('field-error', attribute_name: attribute)
|
|
62
|
+
end
|
|
58
63
|
end
|
|
59
64
|
|
|
60
65
|
def summary_title_id
|
|
@@ -4,46 +4,45 @@ module GOVUKDesignSystemFormBuilder
|
|
|
4
4
|
include Traits::Caption
|
|
5
5
|
include Traits::Localisation
|
|
6
6
|
|
|
7
|
-
def initialize(builder, object_name, attribute_name,
|
|
7
|
+
def initialize(builder, object_name, attribute_name, text: nil, size: config.default_legend_size, hidden: false, tag: config.default_legend_tag, caption: nil, content: nil, **kwargs)
|
|
8
8
|
super(builder, object_name, attribute_name)
|
|
9
9
|
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
case legend
|
|
13
|
-
when NilClass
|
|
14
|
-
@active = false
|
|
15
|
-
when Proc
|
|
16
|
-
@raw = capture { legend.call }
|
|
17
|
-
when Hash
|
|
18
|
-
defaults.merge(legend).tap do |l|
|
|
19
|
-
@text = retrieve_text(l.dig(:text))
|
|
20
|
-
@hidden = l.dig(:hidden)
|
|
21
|
-
@tag = l.dig(:tag)
|
|
22
|
-
@size = l.dig(:size)
|
|
23
|
-
@caption = caption
|
|
24
|
-
end
|
|
10
|
+
if content
|
|
11
|
+
@content = capture { content.call }
|
|
25
12
|
else
|
|
26
|
-
|
|
13
|
+
@text = retrieve_text(text)
|
|
14
|
+
@tag = tag
|
|
15
|
+
@size_class = size_class(size)
|
|
16
|
+
@tag = tag
|
|
17
|
+
@caption = caption
|
|
18
|
+
@hidden = hidden
|
|
19
|
+
@html_attributes = kwargs
|
|
27
20
|
end
|
|
28
21
|
end
|
|
29
22
|
|
|
30
23
|
def html
|
|
31
|
-
@
|
|
24
|
+
@content || legend
|
|
32
25
|
end
|
|
33
26
|
|
|
34
27
|
private
|
|
35
28
|
|
|
36
29
|
def active?
|
|
37
|
-
[@text, @
|
|
30
|
+
[@text, @content].any?(&:present?)
|
|
31
|
+
end
|
|
32
|
+
|
|
33
|
+
def legend
|
|
34
|
+
return unless active?
|
|
35
|
+
|
|
36
|
+
tag.legend(legend_content, class: classes, **@html_attributes)
|
|
38
37
|
end
|
|
39
38
|
|
|
40
|
-
def
|
|
41
|
-
|
|
39
|
+
def legend_content
|
|
40
|
+
caption_and_text = safe_join([caption_element, @text])
|
|
42
41
|
|
|
43
|
-
tag.
|
|
44
|
-
content_tag(@tag, class: heading_classes)
|
|
45
|
-
|
|
46
|
-
|
|
42
|
+
if @tag.present?
|
|
43
|
+
content_tag(@tag, class: heading_classes) { caption_and_text }
|
|
44
|
+
else
|
|
45
|
+
caption_and_text
|
|
47
46
|
end
|
|
48
47
|
end
|
|
49
48
|
|
|
@@ -52,17 +51,14 @@ module GOVUKDesignSystemFormBuilder
|
|
|
52
51
|
end
|
|
53
52
|
|
|
54
53
|
def classes
|
|
55
|
-
[%(#{brand}-fieldset__legend), size_class, visually_hidden_class].compact
|
|
54
|
+
[%(#{brand}-fieldset__legend), @size_class, visually_hidden_class].compact
|
|
56
55
|
end
|
|
57
56
|
|
|
58
|
-
def size_class
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
when 'l' then %(#{brand}-fieldset__legend--l)
|
|
62
|
-
when 'm' then %(#{brand}-fieldset__legend--m)
|
|
63
|
-
when 's' then %(#{brand}-fieldset__legend--s)
|
|
57
|
+
def size_class(size)
|
|
58
|
+
if size.in?(%w(xl l m s))
|
|
59
|
+
%(#{brand}-fieldset__legend--#{size})
|
|
64
60
|
else
|
|
65
|
-
fail "invalid size '#{
|
|
61
|
+
fail "invalid size '#{size}', must be xl, l, m or s"
|
|
66
62
|
end
|
|
67
63
|
end
|
|
68
64
|
|
|
@@ -73,15 +69,6 @@ module GOVUKDesignSystemFormBuilder
|
|
|
73
69
|
def heading_classes
|
|
74
70
|
%(#{brand}-fieldset__heading)
|
|
75
71
|
end
|
|
76
|
-
|
|
77
|
-
def defaults
|
|
78
|
-
{
|
|
79
|
-
hidden: false,
|
|
80
|
-
text: nil,
|
|
81
|
-
tag: config.default_legend_tag,
|
|
82
|
-
size: config.default_legend_size
|
|
83
|
-
}
|
|
84
|
-
end
|
|
85
72
|
end
|
|
86
73
|
end
|
|
87
74
|
end
|
|
@@ -6,6 +6,7 @@ module GOVUKDesignSystemFormBuilder
|
|
|
6
6
|
|
|
7
7
|
include Traits::Label
|
|
8
8
|
include Traits::Hint
|
|
9
|
+
include Traits::FieldsetItem
|
|
9
10
|
include Traits::Conditional
|
|
10
11
|
|
|
11
12
|
def initialize(builder, object_name, attribute_name, value, label:, hint:, link_errors:, &block)
|
|
@@ -34,26 +35,10 @@ module GOVUKDesignSystemFormBuilder
|
|
|
34
35
|
end
|
|
35
36
|
end
|
|
36
37
|
|
|
37
|
-
def
|
|
38
|
+
def fieldset_options
|
|
38
39
|
{ radio: true }
|
|
39
40
|
end
|
|
40
41
|
|
|
41
|
-
def label_element
|
|
42
|
-
@label_element ||= Elements::Label.new(@builder, @object_name, @attribute_name, **label_content, **label_options)
|
|
43
|
-
end
|
|
44
|
-
|
|
45
|
-
def label_options
|
|
46
|
-
{ value: @value, link_errors: @link_errors }.merge(radio_options)
|
|
47
|
-
end
|
|
48
|
-
|
|
49
|
-
def hint_element
|
|
50
|
-
@hint_element ||= Elements::Hint.new(@builder, @object_name, @attribute_name, **hint_options, **hint_content)
|
|
51
|
-
end
|
|
52
|
-
|
|
53
|
-
def hint_options
|
|
54
|
-
{ value: @value }.merge(radio_options)
|
|
55
|
-
end
|
|
56
|
-
|
|
57
42
|
def input
|
|
58
43
|
@builder.radio_button(@attribute_name, @value, **options)
|
|
59
44
|
end
|
|
@@ -4,11 +4,11 @@ module GOVUKDesignSystemFormBuilder
|
|
|
4
4
|
private
|
|
5
5
|
|
|
6
6
|
def caption_element
|
|
7
|
-
@caption_element ||=
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
7
|
+
@caption_element ||= if @caption.nil?
|
|
8
|
+
Elements::Null.new
|
|
9
|
+
else
|
|
10
|
+
Elements::Caption.new(@builder, @object_name, @attribute_name, **@caption)
|
|
11
|
+
end
|
|
12
12
|
end
|
|
13
13
|
end
|
|
14
14
|
end
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
module GOVUKDesignSystemFormBuilder
|
|
2
|
+
module Traits
|
|
3
|
+
module FieldsetItem
|
|
4
|
+
private
|
|
5
|
+
|
|
6
|
+
def label_element
|
|
7
|
+
@label_element ||= if @label.nil?
|
|
8
|
+
Elements::Null.new
|
|
9
|
+
else
|
|
10
|
+
Elements::Label.new(@builder, @object_name, @attribute_name, **label_content, **label_options)
|
|
11
|
+
end
|
|
12
|
+
end
|
|
13
|
+
|
|
14
|
+
def label_options
|
|
15
|
+
{ value: @value, link_errors: @link_errors }.merge(fieldset_options)
|
|
16
|
+
end
|
|
17
|
+
|
|
18
|
+
def hint_element
|
|
19
|
+
@hint_element ||= if @hint.nil?
|
|
20
|
+
Elements::Null.new
|
|
21
|
+
else
|
|
22
|
+
Elements::Hint.new(@builder, @object_name, @attribute_name, **hint_options, **hint_content)
|
|
23
|
+
end
|
|
24
|
+
end
|
|
25
|
+
|
|
26
|
+
def hint_options
|
|
27
|
+
{ value: @value }.merge(fieldset_options)
|
|
28
|
+
end
|
|
29
|
+
end
|
|
30
|
+
end
|
|
31
|
+
end
|
|
@@ -10,13 +10,15 @@ module GOVUKDesignSystemFormBuilder
|
|
|
10
10
|
private
|
|
11
11
|
|
|
12
12
|
def hint_element
|
|
13
|
-
@hint_element ||=
|
|
13
|
+
@hint_element ||= if @hint.nil?
|
|
14
|
+
Elements::Null.new
|
|
15
|
+
else
|
|
16
|
+
Elements::Hint.new(@builder, @object_name, @attribute_name, **hint_content)
|
|
17
|
+
end
|
|
14
18
|
end
|
|
15
19
|
|
|
16
20
|
def hint_content
|
|
17
21
|
case @hint
|
|
18
|
-
when NilClass
|
|
19
|
-
{}
|
|
20
22
|
when Hash
|
|
21
23
|
@hint
|
|
22
24
|
when Proc
|
|
@@ -4,7 +4,11 @@ module GOVUKDesignSystemFormBuilder
|
|
|
4
4
|
private
|
|
5
5
|
|
|
6
6
|
def label_element
|
|
7
|
-
@label_element ||=
|
|
7
|
+
@label_element ||= if @label.nil?
|
|
8
|
+
Elements::Null.new
|
|
9
|
+
else
|
|
10
|
+
Elements::Label.new(@builder, @object_name, @attribute_name, caption: @caption, **label_content)
|
|
11
|
+
end
|
|
8
12
|
end
|
|
9
13
|
|
|
10
14
|
def label_content
|
metadata
CHANGED
|
@@ -1,14 +1,14 @@
|
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
|
2
2
|
name: govuk_design_system_formbuilder
|
|
3
3
|
version: !ruby/object:Gem::Version
|
|
4
|
-
version: 2.
|
|
4
|
+
version: 2.1.4
|
|
5
5
|
platform: ruby
|
|
6
6
|
authors:
|
|
7
7
|
- Peter Yates
|
|
8
8
|
autorequire:
|
|
9
9
|
bindir: bin
|
|
10
10
|
cert_chain: []
|
|
11
|
-
date: 2020-
|
|
11
|
+
date: 2020-11-07 00:00:00.000000000 Z
|
|
12
12
|
dependencies:
|
|
13
13
|
- !ruby/object:Gem::Dependency
|
|
14
14
|
name: actionview
|
|
@@ -58,14 +58,14 @@ dependencies:
|
|
|
58
58
|
requirements:
|
|
59
59
|
- - '='
|
|
60
60
|
- !ruby/object:Gem::Version
|
|
61
|
-
version: 3.17.
|
|
61
|
+
version: 3.17.2
|
|
62
62
|
type: :development
|
|
63
63
|
prerelease: false
|
|
64
64
|
version_requirements: !ruby/object:Gem::Requirement
|
|
65
65
|
requirements:
|
|
66
66
|
- - '='
|
|
67
67
|
- !ruby/object:Gem::Version
|
|
68
|
-
version: 3.17.
|
|
68
|
+
version: 3.17.2
|
|
69
69
|
- !ruby/object:Gem::Dependency
|
|
70
70
|
name: pry
|
|
71
71
|
requirement: !ruby/object:Gem::Requirement
|
|
@@ -176,14 +176,14 @@ dependencies:
|
|
|
176
176
|
requirements:
|
|
177
177
|
- - "~>"
|
|
178
178
|
- !ruby/object:Gem::Version
|
|
179
|
-
version: 3.
|
|
179
|
+
version: 3.24.0
|
|
180
180
|
type: :development
|
|
181
181
|
prerelease: false
|
|
182
182
|
version_requirements: !ruby/object:Gem::Requirement
|
|
183
183
|
requirements:
|
|
184
184
|
- - "~>"
|
|
185
185
|
- !ruby/object:Gem::Version
|
|
186
|
-
version: 3.
|
|
186
|
+
version: 3.24.0
|
|
187
187
|
- !ruby/object:Gem::Dependency
|
|
188
188
|
name: rubypants
|
|
189
189
|
requirement: !ruby/object:Gem::Requirement
|
|
@@ -278,6 +278,7 @@ files:
|
|
|
278
278
|
- lib/govuk_design_system_formbuilder/elements/inputs/url.rb
|
|
279
279
|
- lib/govuk_design_system_formbuilder/elements/label.rb
|
|
280
280
|
- lib/govuk_design_system_formbuilder/elements/legend.rb
|
|
281
|
+
- lib/govuk_design_system_formbuilder/elements/null.rb
|
|
281
282
|
- lib/govuk_design_system_formbuilder/elements/radios/collection.rb
|
|
282
283
|
- lib/govuk_design_system_formbuilder/elements/radios/collection_radio_button.rb
|
|
283
284
|
- lib/govuk_design_system_formbuilder/elements/radios/fieldset_radio_button.rb
|
|
@@ -288,6 +289,7 @@ files:
|
|
|
288
289
|
- lib/govuk_design_system_formbuilder/traits/collection_item.rb
|
|
289
290
|
- lib/govuk_design_system_formbuilder/traits/conditional.rb
|
|
290
291
|
- lib/govuk_design_system_formbuilder/traits/error.rb
|
|
292
|
+
- lib/govuk_design_system_formbuilder/traits/fieldset_item.rb
|
|
291
293
|
- lib/govuk_design_system_formbuilder/traits/hint.rb
|
|
292
294
|
- lib/govuk_design_system_formbuilder/traits/input.rb
|
|
293
295
|
- lib/govuk_design_system_formbuilder/traits/label.rb
|