Sha256: a8aa24f7ef1c624aac0ffabe5d6a695ffb9e14d51afa75d0c587f49fc52bc70e

Contents?: true

Size: 1.85 KB

Versions: 442

Compression:

Stored size: 1.85 KB

Contents

# frozen_string_literal: true

module Playbook
  module PbAdvancedTable
    class TableBody < Playbook::KitBase
      prop :id, type: Playbook::Props::String,
                default: ""
      prop :table_data, type: Playbook::Props::Array,
                        default: []
      prop :column_definitions, type: Playbook::Props::Array,
                                default: []
      prop :enable_toggle_expansion, type: Playbook::Props::Enum,
                                     values: %w[all header none],
                                     default: "header"
      prop :subrow_headers, type: Playbook::Props::Array,
                            default: []

      def render_row_and_children(row, column_definitions, current_depth, first_parent_child)
        output = ActiveSupport::SafeBuffer.new
        is_first_child_of_subrow = current_depth.positive? && first_parent_child && subrow_headers[current_depth - 1].present?

        output << pb_rails("advanced_table/table_subrow_header", props: { row: row, column_definitions: column_definitions, depth: current_depth, subrow_header: subrow_headers[current_depth - 1] }) if is_first_child_of_subrow && enable_toggle_expansion == "all"

        output << pb_rails("advanced_table/table_row", props: { id: id, row: row, column_definitions: column_definitions, depth: current_depth })

        if row[:children].present?
          output << content_tag(:div, class: "toggle-content", data: { advanced_table_content: row.object_id.to_s + id }) do
            row[:children].map do |child_row|
              render_row_and_children(child_row, column_definitions, current_depth + 1, row.children.first == child_row)
            end.join.html_safe
          end
        end

        output
      end

      def classname
        generate_classname("pb_advanced_table_body", "pb_table_tbody", separator: " ")
      end
    end
  end
end

Version data entries

442 entries across 442 versions & 1 rubygems

Version Path
playbook_ui-14.1.0.pre.alpha.PBNTR455ganttchartPOC3569 app/pb_kits/playbook/pb_advanced_table/table_body.rb
playbook_ui-14.1.0.pre.alpha.fixaction3547 app/pb_kits/playbook/pb_advanced_table/table_body.rb
playbook_ui-14.1.0.pre.alpha.PA1477timestampkit3536 app/pb_kits/playbook/pb_advanced_table/table_body.rb
playbook_ui-14.0.0.pre.alpha.testthemeexport3533 app/pb_kits/playbook/pb_advanced_table/table_body.rb
playbook_ui-14.0.0.pre.alpha.updateviewcomponentgem3527 app/pb_kits/playbook/pb_advanced_table/table_body.rb
playbook_ui-14.0.0.pre.alpha.PLAY15063526 app/pb_kits/playbook/pb_advanced_table/table_body.rb
playbook_ui-14.0.0.pre.alpha.PLAY15063525 app/pb_kits/playbook/pb_advanced_table/table_body.rb
playbook_ui-14.0.0.pre.alpha.PLAY15063524 app/pb_kits/playbook/pb_advanced_table/table_body.rb
playbook_ui-14.0.0.pre.alpha.PLAY15063523 app/pb_kits/playbook/pb_advanced_table/table_body.rb
playbook_ui-14.0.0.pre.alpha.PLAY15063522 app/pb_kits/playbook/pb_advanced_table/table_body.rb
playbook_ui-14.0.0.pre.alpha.PBNTR416formpillsizes3521 app/pb_kits/playbook/pb_advanced_table/table_body.rb
playbook_ui-14.0.0.pre.alpha.PLAY15063520 app/pb_kits/playbook/pb_advanced_table/table_body.rb
playbook_ui-14.0.0.pre.alpha.PLAY14923518 app/pb_kits/playbook/pb_advanced_table/table_body.rb
playbook_ui-14.0.0.pre.alpha.PLAY15063511 app/pb_kits/playbook/pb_advanced_table/table_body.rb
playbook_ui-14.0.0.pre.alpha.PA1477timestampkit3509 app/pb_kits/playbook/pb_advanced_table/table_body.rb
playbook_ui-14.0.0.pre.alpha.PLAY14733507 app/pb_kits/playbook/pb_advanced_table/table_body.rb
playbook_ui-14.0.0.pre.alpha.PBNTR416formpillsizes3506 app/pb_kits/playbook/pb_advanced_table/table_body.rb
playbook_ui-14.0.0.pre.alpha.PA1477timestampkit3502 app/pb_kits/playbook/pb_advanced_table/table_body.rb
playbook_ui-14.0.0.pre.alpha.PBNTR415starratingform3493 app/pb_kits/playbook/pb_advanced_table/table_body.rb
playbook_ui-14.0.0.pre.alpha.PBNTR415starratingform3492 app/pb_kits/playbook/pb_advanced_table/table_body.rb