Sha256: e3e58b32cf96464ed10ae0f8ba75a7cab2cb57c7f0533dc4bc2400a4fb31c7e0

Contents?: true

Size: 1.48 KB

Versions: 104

Compression:

Stored size: 1.48 KB

Contents

# frozen_string_literal: true

require "action_view"

module Playbook
  module PbSelect
    class Select
      include ActionView::Helpers::FormTagHelper
      include ActionView::Context
      include Playbook::Props

      partial "pb_select/select"

      prop :blank_selection
      prop :disabled, type: Playbook::Props::Boolean, default: false
      prop :error
      prop :include_blank
      prop :label
      prop :multiple, type: Playbook::Props::Boolean, default: false
      prop :name
      prop :onchange
      prop :options, type: Playbook::Props::HashArray, required: false, default: []
      prop :required, type: Playbook::Props::Boolean, default: false

      def classname
        generate_classname("pb_select")
      end

      def select_wrapper_class
        "pb_select_kit_wrapper" + error_class
      end

      def options_to_array
        options.map { |option| [option[:value_text] || option[:value], option[:value]] }
      end

      def selected
        selections = options.map { |option| option[:value] if option[:selected] == true }.compact
        if selections.empty?
          nil
        else
          selections
        end
      end

      def disabled_options
        disabled_options = options.map { |option| option[:value] if option[:disabled] == true }.compact
        if disabled_options.empty?
          nil
        else
          disabled_options
        end
      end

    private

      def error_class
        error ? " error" : ""
      end
    end
  end
end

Version data entries

104 entries across 104 versions & 1 rubygems

Version Path
playbook_ui-7.14.0.pre.alpha1 app/pb_kits/playbook/pb_select/select.rb
playbook_ui-7.16.0 app/pb_kits/playbook/pb_select/select.rb
playbook_ui-7.15.1 app/pb_kits/playbook/pb_select/select.rb
playbook_ui-7.15.0 app/pb_kits/playbook/pb_select/select.rb
playbook_ui-7.14.0 app/pb_kits/playbook/pb_select/select.rb
playbook_ui-7.13.0.pre.alpha1 app/pb_kits/playbook/pb_select/select.rb
playbook_ui-7.13.0 app/pb_kits/playbook/pb_select/select.rb
playbook_ui-7.12.1 app/pb_kits/playbook/pb_select/select.rb
playbook_ui-7.12.0 app/pb_kits/playbook/pb_select/select.rb
playbook_ui-7.11.1 app/pb_kits/playbook/pb_select/select.rb
playbook_ui-7.11.0 app/pb_kits/playbook/pb_select/select.rb
playbook_ui-7.11.0.pre.alpha1 app/pb_kits/playbook/pb_select/select.rb
playbook_ui-7.10.0 app/pb_kits/playbook/pb_select/select.rb
playbook_ui-7.9.0 app/pb_kits/playbook/pb_select/select.rb
playbook_ui-7.8.4 app/pb_kits/playbook/pb_select/select.rb
playbook_ui-7.8.3 app/pb_kits/playbook/pb_select/select.rb
playbook_ui-7.8.2 app/pb_kits/playbook/pb_select/select.rb
playbook_ui-7.8.1 app/pb_kits/playbook/pb_select/select.rb
playbook_ui-7.8.0 app/pb_kits/playbook/pb_select/select.rb
playbook_ui-7.7.0.pre.alpha1 app/pb_kits/playbook/pb_select/select.rb