Sha256: 887326d2bda91939ea22c46b1b7d936fc92e6e451125a85f206f42c20a132867
Contents?: true
Size: 1.38 KB
Versions: 250
Compression:
Stored size: 1.38 KB
Contents
# frozen_string_literal: true module Playbook module PbDropdown class Dropdown < Playbook::KitBase prop :options, type: Playbook::Props::Array, default: [] prop :label, type: Playbook::Props::String prop :name, type: Playbook::Props::String prop :error, type: Playbook::Props::String prop :required, type: Playbook::Props::Boolean, default: false prop :default_value prop :blank_selection, type: Playbook::Props::String, default: "" prop :variant, type: Playbook::Props::Enum, values: %w[default subtle], default: "default" prop :separators, type: Playbook::Props::Boolean, default: true def data Hash(prop(:data)).merge(pb_dropdown: true) end def classname generate_classname("pb_dropdown", variant, separators_class) end private def error_class error.present? ? " error" : "" end def input_default_value default_value.present? ? default_value.transform_keys(&:to_s)["id"] : "" end def separators_class separators ? nil : "separators_hidden" end def options_with_blank blank_selection.present? ? [{ id: "", value: "", label: blank_selection }] + options : options end end end end
Version data entries
250 entries across 250 versions & 1 rubygems