Sha256: c6bdd7afd0f0f816a7585f195d8ef99191d0249c342786ee0e07817d3c1dd8f7

Contents?: true

Size: 1.44 KB

Versions: 19

Compression:

Stored size: 1.44 KB

Contents

module GOVUKDesignSystemFormBuilder
  module Elements
    module CheckBoxes
      class CollectionCheckBox < Base
        include Traits::CollectionItem
        include Traits::Hint

        def initialize(builder, object_name, attribute_name, checkbox, hint_method = nil, link_errors: false)
          super(builder, object_name, attribute_name)

          @checkbox    = checkbox
          @item        = checkbox.object
          @value       = checkbox.value
          @hint        = { text: retrieve(@item, hint_method) }
          @link_errors = link_errors
        end

        def html
          tag.div(class: %(#{brand}-checkboxes__item)) do
            safe_join([check_box, label_element, hint_element])
          end
        end

      private

        def check_box
          @checkbox.check_box(**options)
        end

        def options
          {
            id: field_id(link_errors: @link_errors),
            class: %(#{brand}-checkboxes__input),
            aria: { describedby: hint_id }
          }
        end

        def label_element
          @label_element ||= Label.new(@builder, @object_name, @attribute_name, @checkbox, value: @value, link_errors: @link_errors)
        end

        def hint_element
          @hint_element ||= Elements::Hint.new(@builder, @object_name, @attribute_name, **hint_options, **hint_content)
        end

        def hint_options
          { value: @value, checkbox: true }
        end
      end
    end
  end
end

Version data entries

19 entries across 19 versions & 1 rubygems

Version Path
govuk_design_system_formbuilder-2.3.0b1 lib/govuk_design_system_formbuilder/elements/check_boxes/collection_check_box.rb
govuk_design_system_formbuilder-2.2.0 lib/govuk_design_system_formbuilder/elements/check_boxes/collection_check_box.rb
govuk_design_system_formbuilder-2.1.9 lib/govuk_design_system_formbuilder/elements/check_boxes/collection_check_box.rb
govuk_design_system_formbuilder-2.1.8 lib/govuk_design_system_formbuilder/elements/check_boxes/collection_check_box.rb
govuk_design_system_formbuilder-2.1.7 lib/govuk_design_system_formbuilder/elements/check_boxes/collection_check_box.rb
govuk_design_system_formbuilder-2.1.7b2 lib/govuk_design_system_formbuilder/elements/check_boxes/collection_check_box.rb
govuk_design_system_formbuilder-2.1.7b1 lib/govuk_design_system_formbuilder/elements/check_boxes/collection_check_box.rb
govuk_design_system_formbuilder-2.1.6 lib/govuk_design_system_formbuilder/elements/check_boxes/collection_check_box.rb
govuk_design_system_formbuilder-2.1.5 lib/govuk_design_system_formbuilder/elements/check_boxes/collection_check_box.rb
govuk_design_system_formbuilder-2.1.4 lib/govuk_design_system_formbuilder/elements/check_boxes/collection_check_box.rb
govuk_design_system_formbuilder-2.1.3 lib/govuk_design_system_formbuilder/elements/check_boxes/collection_check_box.rb
govuk_design_system_formbuilder-2.1.2 lib/govuk_design_system_formbuilder/elements/check_boxes/collection_check_box.rb
govuk_design_system_formbuilder-2.1.1 lib/govuk_design_system_formbuilder/elements/check_boxes/collection_check_box.rb
govuk_design_system_formbuilder-2.1.0 lib/govuk_design_system_formbuilder/elements/check_boxes/collection_check_box.rb
govuk_design_system_formbuilder-2.0.0 lib/govuk_design_system_formbuilder/elements/check_boxes/collection_check_box.rb
govuk_design_system_formbuilder-2.0.0b4 lib/govuk_design_system_formbuilder/elements/check_boxes/collection_check_box.rb
govuk_design_system_formbuilder-2.0.0b3 lib/govuk_design_system_formbuilder/elements/check_boxes/collection_check_box.rb
govuk_design_system_formbuilder-2.0.0b2 lib/govuk_design_system_formbuilder/elements/check_boxes/collection_check_box.rb
govuk_design_system_formbuilder-2.0.0b1 lib/govuk_design_system_formbuilder/elements/check_boxes/collection_check_box.rb