Sha256: 8b814d210eea2879318cd5f87519cf96f30aeb0dcd6b97443e0324f418f4dbd8

Contents?: true

Size: 1.58 KB

Versions: 129

Compression:

Stored size: 1.58 KB

Contents

<%
  options ||= []
  id ||= false
  label ||= false
  full_width ||= false
  name ||= id
  is_page_heading ||= false
  heading_size = false unless ['s', 'm', 'l', 'xl'].include?(heading_size)
  error_message ||= nil
  error_id ||= nil

  if error_message || error_id
    error_id = "error-#{SecureRandom.hex(4)}" unless error_id
    aria_describedby = { describedby: error_id }
  end

  css_classes = %w(govuk-form-group gem-c-select)
  css_classes << "govuk-form-group--error" if error_message

  select_classes = %w(govuk-select)
  select_classes << "gem-c-select__select--full-width" if full_width
  select_classes << "govuk-select--error" if error_id

  label_classes = %w(govuk-label)
  label_classes << "govuk-label--#{heading_size}" if heading_size

  select_helper = GovukPublishingComponents::Presenters::SelectHelper.new(options)
  data_module = { module: "track-select-change" } unless select_helper.data_tracking?.eql?(false)
%>
<% if options.any? && id && label %>
  <%= content_tag :div, class: css_classes do %>
    <% if is_page_heading %>
      <%= tag.h1 label_tag(id, label, class: label_classes), class: "gem-c-title__text" %>
    <% else %>
      <%= label_tag(id, label, class: label_classes) %>
    <% end %>

    <% if error_message %>
      <%= render "govuk_publishing_components/components/error_message", {
        id: error_id,
        text: error_message
      } %>
    <% end %>

    <%= select_tag name, options_for_select(select_helper.option_markup, select_helper.selected_option), id: id, class: select_classes, data: data_module, aria: aria_describedby %>
  <% end %>
<% end %>

Version data entries

129 entries across 129 versions & 1 rubygems

Version Path
govuk_publishing_components-25.0.0 app/views/govuk_publishing_components/components/_select.html.erb
govuk_publishing_components-24.21.1 app/views/govuk_publishing_components/components/_select.html.erb
govuk_publishing_components-24.21.0 app/views/govuk_publishing_components/components/_select.html.erb
govuk_publishing_components-24.20.0 app/views/govuk_publishing_components/components/_select.html.erb
govuk_publishing_components-24.19.0 app/views/govuk_publishing_components/components/_select.html.erb
govuk_publishing_components-24.18.5 app/views/govuk_publishing_components/components/_select.html.erb
govuk_publishing_components-24.18.4 app/views/govuk_publishing_components/components/_select.html.erb
govuk_publishing_components-24.18.3 app/views/govuk_publishing_components/components/_select.html.erb
govuk_publishing_components-24.18.2 app/views/govuk_publishing_components/components/_select.html.erb
govuk_publishing_components-24.18.1 app/views/govuk_publishing_components/components/_select.html.erb
govuk_publishing_components-24.18.0 app/views/govuk_publishing_components/components/_select.html.erb
govuk_publishing_components-24.17.0 app/views/govuk_publishing_components/components/_select.html.erb
govuk_publishing_components-24.16.1 app/views/govuk_publishing_components/components/_select.html.erb
govuk_publishing_components-24.16.0 app/views/govuk_publishing_components/components/_select.html.erb
govuk_publishing_components-24.15.3 app/views/govuk_publishing_components/components/_select.html.erb
govuk_publishing_components-24.15.2 app/views/govuk_publishing_components/components/_select.html.erb
govuk_publishing_components-24.15.1 app/views/govuk_publishing_components/components/_select.html.erb
govuk_publishing_components-24.15.0 app/views/govuk_publishing_components/components/_select.html.erb
govuk_publishing_components-24.14.1 app/views/govuk_publishing_components/components/_select.html.erb
govuk_publishing_components-24.14.0 app/views/govuk_publishing_components/components/_select.html.erb