Sha256: a94918a61aa642678b03bc20af5e644f7ae9ec06150f685dcc14c7ac9a9a5861

Contents?: true

Size: 1.25 KB

Versions: 1

Compression:

Stored size: 1.25 KB

Contents

module GOVUKDesignSystemFormBuilder
  module Elements
    module CheckBoxes
      class FieldsetCheckBox < Base
        include Traits::Label
        include Traits::Hint
        include Traits::HTMLAttributes
        include Traits::FieldsetItem

        def initialize(builder, object_name, attribute_name, value, unchecked_value, label:, hint:, link_errors:, multiple:, exclusive:, **kwargs, &block)
          super(builder, object_name, attribute_name)

          @value           = value
          @unchecked_value = unchecked_value
          @label           = label
          @hint            = hint
          @multiple        = multiple
          @link_errors     = link_errors
          @html_attributes = kwargs
          @exclusive       = exclusive

          conditional_content(&block)
        end

      private

        def input_type
          :checkboxes
        end

        def input
          @builder.check_box(@attribute_name, attributes(@html_attributes.deep_merge(exclusive_options)), @value, @unchecked_value)
        end

        def fieldset_options
          { checkbox: true }
        end

        def exclusive_options
          return {} unless @exclusive

          { data: { behaviour: 'exclusive' } }
        end
      end
    end
  end
end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
govuk_design_system_formbuilder-2.7.1 lib/govuk_design_system_formbuilder/elements/check_boxes/fieldset_check_box.rb