class Playbook::PbTable::Table

def classname

def classname
  generate_classname(
    "pb_table", "table-#{size_class}", single_line_class, dark_class,
    disable_hover_class, container_class, data_table_class, sticky_class, sticky_left_column_class,
    sticky_right_column_class, collapse_class, vertical_border_class, striped_class, outer_padding_class,
    "table-responsive-#{responsive}", header_style_class, separator: " "
  )
end

def collapse_class

def collapse_class
  effective_collapse = variant == "with_filter" && collapse == "sm" ? "md" : collapse
  responsive != "none" ? "table-collapse-#{effective_collapse}" : ""
end

def container_class

def container_class
  effective_container = variant == "with_filter" ? false : container
  effective_container ? "table-card" : nil
end

def dark_class

def dark_class
  dark ? "table-dark" : nil
end

def data_table_class

def data_table_class
  data_table ? "data_table" : nil
end

def disable_hover_class

def disable_hover_class
  disable_hover ? "no-hover" : nil
end

def header_style_class

def header_style_class
  case header_style
  when "borderless"
    "header-borderless"
  when "floating"
    "header-floating"
  end
end

def outer_padding_class

def outer_padding_class
  if outer_padding.nil?
    outer_padding
  else
    space_css_name = outer_padding != "none" ? "space_" : ""
    outer_padding.present? ? "outer_padding_#{space_css_name}#{outer_padding}" : nil
  end
end

def responsive_classname

def responsive_classname
  responsive ? "table-responsive-#{responsive}" : nil
end

def single_line_class

def single_line_class
  single_line ? "single-line" : nil
end

def size_class

def size_class
  variant === "with_filter" && size == "md" ? "sm" : size
end

def sticky_class

def sticky_class
  sticky ? "sticky-header" : nil
end

def sticky_left_column_class

def sticky_left_column_class
  if sticky_left_column.empty?
    nil
  else
    sticky_col_classname = "sticky-left-column sticky-left-columns-ids"
    sticky_left_column.each do |id|
      sticky_col_classname += "-#{id}"
    end
    sticky_col_classname
  end
end

def sticky_right_column_class

def sticky_right_column_class
  if sticky_right_column.empty?
    nil
  else
    sticky_col_classname = "sticky-right-column sticky-right-columns-ids"
    sticky_right_column.each do |id|
      sticky_col_classname += "-#{id}"
    end
    sticky_col_classname
  end
end

def striped_class

def striped_class
  striped ? "striped" : nil
end

def vertical_border_class

def vertical_border_class
  vertical_border ? "vertical-border" : nil
end

def with_filter_variant?

def with_filter_variant?
  variant == "with_filter"
end