Sha256: a114175b94c7f8ff4370eb67c1de89ce6b6960c71e4af59c8434e3695362ca51

Contents?: true

Size: 1.45 KB

Versions: 1

Compression:

Stored size: 1.45 KB

Contents

require_relative '../checkbox'

module CCS::Components
  module GovUK
    class Field < Base
      class Inputs < Field
        class Item < Base
          class Checkbox < Item
            # = GOV.UK Field Inputs Checkbox form tag
            #
            # This is used to generate an individual checkbox item using +form.check_box+

            class Form < Checkbox
              # @param (see CCS::Components::GovUK::Field::Items::Item::Checkbox#initialize)
              #
              # @option (see CCS::Components::GovUK::Field::Items::Item::Checkbox#initialize)

              def initialize(attribute:, label:, **options)
                super(attribute: attribute, label: label, **options)

                (label[:attributes] ||= {})[:value] = @value
                label[:attributes][:for] = @options[:attributes][:id] if @options[:attributes][:id]

                @options[:attributes][:multiple] = true
                @options[:attributes][:include_hidden] = false

                @label = Label.new(attribute: attribute, form: @options[:form], context: @context, **label)
              end

              # Generates the HTML for the checkbox input
              #
              # @return [ActiveSupport::SafeBuffer]

              def render
                super() do
                  @options[:form].check_box(@attribute, @options[:attributes], @value)
                end
              end
            end
          end
        end
      end
    end
  end
end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
ccs-frontend_helpers-0.1.0.rc.2 lib/ccs/components/govuk/field/inputs/item/checkbox/form.rb