Sha256: c1f525e1f351a893ae31c293ddbd5e65f817a4f6fae1dd242a04fd5424339784

Contents?: true

Size: 1.07 KB

Versions: 3

Compression:

Stored size: 1.07 KB

Contents

# frozen_string_literal: true

module Playbook
  module PbFlex
    class FlexItem
      include Playbook::Props

      partial "pb_flex/flex_item"

      prop :fixed_size, default: nil
      prop :grow, type: Playbook::Props::Boolean,
                  default: false
      prop :shrink, type: Playbook::Props::Boolean,
                    default: false
      prop :flex, type: Playbook::Props::Enum,
                  values: %w[0 1 2 3 4 5 6 7 8 9 10 11 12 none],
                  default: "none"

      def classname
        generate_classname("pb_flex_item_kit", fixed_size_class, grow_class, shrink_class, flex_class)
      end

      def style_value
        "flex-basis: #{fixed_size};" if fixed_size.present?
      end

    private

      def fixed_size_class
        fixed_size.present? ? "fixed_size" : nil
      end

      def grow_class
        grow ? "grow" : nil
      end

      def shrink_class
        shrink ? "shrink" : nil
      end

      def flex_class
        if flex == "none"
          nil
        else
          "flex_#{flex}"
        end
      end
    end
  end
end

Version data entries

3 entries across 3 versions & 1 rubygems

Version Path
playbook_ui-7.14.0.pre.alpha1 app/pb_kits/playbook/pb_flex/flex_item.rb
playbook_ui-7.15.1 app/pb_kits/playbook/pb_flex/flex_item.rb
playbook_ui-7.15.0 app/pb_kits/playbook/pb_flex/flex_item.rb