Sha256: 4e7258b78278c8b9f481bc7a543ae262ac743176b069e617cd54f2b16f389da1

Contents?: true

Size: 1012 Bytes

Versions: 24

Compression:

Stored size: 1012 Bytes

Contents

# frozen_string_literal: true

module Maglev
  class BlockComponent < BaseComponent
    include TagHelper

    extend Forwardable
    def_delegators :section, :site, :config

    attr_reader :section, :id, :name, :type, :settings, :attributes, :definition
    attr_accessor :children

    # rubocop:disable Lint/MissingSuper
    def initialize(section:, attributes:, definition:)
      @section = section
      @id = attributes[:id]
      @name = attributes[:name]
      @type = attributes[:type]
      @children = children
      @definition = definition

      @settings = settings_proxy(
        build_settings_map(attributes[:settings])
      )
    end
    # rubocop:enable Lint/MissingSuper

    def children?
      children.present?
    end

    def dom_id
      "block-#{id}"
    end

    # rubocop:disable Rails/OutputSafety
    def dom_data
      "data-maglev-block-id=\"#{id}\"".html_safe
    end
    # rubocop:enable Rails/OutputSafety

    def tag_data
      { maglev_block_id: id }
    end
  end
end

Version data entries

24 entries across 24 versions & 1 rubygems

Version Path
maglevcms-1.7.3 app/components/maglev/block_component.rb
maglevcms-1.7.2 app/components/maglev/block_component.rb
maglevcms-1.7.1 app/components/maglev/block_component.rb
maglevcms-1.7.0 app/components/maglev/block_component.rb
maglevcms-1.6.1 app/components/maglev/block_component.rb
maglevcms-1.6.0 app/components/maglev/block_component.rb
maglevcms-1.5.1 app/components/maglev/block_component.rb
maglevcms-1.4.0 app/components/maglev/block_component.rb
maglevcms-1.3.0 app/components/maglev/block_component.rb
maglevcms-1.2.2 app/components/maglev/block_component.rb
maglevcms-1.2.1 app/components/maglev/block_component.rb
maglevcms-1.2.0 app/components/maglev/block_component.rb
maglevcms-1.1.7 app/components/maglev/block_component.rb
maglevcms-1.1.6 app/components/maglev/block_component.rb
maglevcms-1.1.5 app/components/maglev/block_component.rb
maglevcms-1.1.4 app/components/maglev/block_component.rb
maglevcms-1.1.3 app/components/maglev/block_component.rb
maglevcms-1.1.2 app/components/maglev/block_component.rb
maglevcms-1.1.1 app/components/maglev/block_component.rb
maglevcms-1.1.0 app/components/maglev/block_component.rb