Sha256: 4de2f0b59c63c3800afb9aee8fdc82de9f690bd4e3509e6573553edd8d632019

Contents?: true

Size: 1.58 KB

Versions: 6

Compression:

Stored size: 1.58 KB

Contents

# frozen_string_literal: true

module Playbook
  module PbFlex
    class FlexItem < Playbook::KitBase
      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"
      prop :overflow, type: Playbook::Props::Enum,
                      values: %w[auto hidden inherit initial scroll visible] + [nil],
                      default: nil

      prop :order, type: Playbook::Props::Enum,
                   values: %w[1 2 3 4 5 6 7 8 9 10 11 12 first none],
                   default: "none"

      def classname
        generate_classname("pb_flex_item_kit", fixed_size_class, grow_class, shrink_class, flex_class) + overflow_class + order_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 overflow_class
        overflow ? " overflow_#{overflow}" : ""
      end

      def shrink_class
        shrink ? "shrink" : nil
      end

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

      def order_class
        if order == "none"
          ""
        else
          "order_#{order}"
        end
      end
    end
  end
end

Version data entries

6 entries across 6 versions & 1 rubygems

Version Path
playbook_ui-10.16.0 app/pb_kits/playbook/pb_flex/flex_item.rb
playbook_ui-10.15.1 app/pb_kits/playbook/pb_flex/flex_item.rb
playbook_ui-10.15.1.pre.alpha.rubocop.deps app/pb_kits/playbook/pb_flex/flex_item.rb
playbook_ui-10.15.0 app/pb_kits/playbook/pb_flex/flex_item.rb
playbook_ui-10.14.1.pre.alpha2 app/pb_kits/playbook/pb_flex/flex_item.rb
playbook_ui-10.14.1.pre.alpha1 app/pb_kits/playbook/pb_flex/flex_item.rb