Sha256: 3e79d5aef074ec644f39468a295980bf17b96fe3b54740b0dbd6ff13259d6006
Contents?: true
Size: 1.49 KB
Versions: 7
Compression:
Stored size: 1.49 KB
Contents
# frozen_string_literal: true module Playbook module PbAdvancedTable class TableRow < Playbook::KitBase prop :id, type: Playbook::Props::String, default: "" prop :column_definitions, type: Playbook::Props::Array, default: [] prop :row prop :depth prop :collapsible_trail, type: Playbook::Props::Boolean, default: true def classname generate_classname("pb_table_tr", "bg-white", subrow_depth_classname, separator: " ") end def td_classname(column) classes = %w[id-cell chrome-styles] classes << "last-cell" if column[:is_last_in_group] classes.join(" ") end def depth_accessors column_definitions.flat_map do |column| column[:cellAccessors] if column.key?(:cellAccessors) end.compact end private def custom_renderer_value(column, index) return nil unless column[:accessor].present? if index.zero? if depth.zero? row[column[:accessor].to_sym] else depth_accessors.each_with_index do |item, accessor_index| key = item.to_sym return row[key] if depth - 1 == accessor_index end nil end else row[column[:accessor].to_sym] end end def subrow_depth_classname depth.positive? ? "depth-sub-row-#{depth}" : "" end end end end
Version data entries
7 entries across 7 versions & 1 rubygems