Sha256: 91bbf6e6c0c47f06462981f0ce9506490ed6661c7df8affc1fa975fc278df457

Contents?: true

Size: 1.21 KB

Versions: 21

Compression:

Stored size: 1.21 KB

Contents

module Formstrap
  class TextareaView < ViewModel
    include Formstrap::Hintable
    include Formstrap::InputGroupable
    include Formstrap::Labelable
    include Formstrap::Placeholderable
    include Formstrap::Validatable
    include Formstrap::Wrappable

    def input_options
      keys = attributes - %i[attribute float form input_group label validate wrapper]
      options = to_h.slice(*keys)
      default_input_options.deep_merge(options)
    end

    def input_group_options
      default_input_group_options
        .deep_merge(label_input_group_options)
        .deep_merge(@input_group || {})
    end

    def wrapper_options
      default_wrapper_options.deep_merge({
        class: ["mb-3", ("form-floating" if float)],
        data: {controller: :textarea}
      }).deep_merge(@wrapper || {})
    end

    private

    def default_input_options
      {
        aria: {describedby: validation_id},
        class: [form_control_class, validation_class],
        data: {
          textarea_target: :textarea,
          action: "input->textarea#update"
        },
        placeholder: placeholder
      }
    end

    def form_control_class
      plaintext ? "form-control-plaintext" : "form-control"
    end
  end
end

Version data entries

21 entries across 21 versions & 1 rubygems

Version Path
formstrap-0.4.10 app/models/formstrap/textarea_view.rb
formstrap-0.4.9 app/models/formstrap/textarea_view.rb
formstrap-0.4.8 app/models/formstrap/textarea_view.rb
formstrap-0.4.7 app/models/formstrap/textarea_view.rb
formstrap-0.4.6 app/models/formstrap/textarea_view.rb
formstrap-0.4.5 app/models/formstrap/textarea_view.rb
formstrap-0.4.4 app/models/formstrap/textarea_view.rb
formstrap-0.4.3 app/models/formstrap/textarea_view.rb
formstrap-0.4.2 app/models/formstrap/textarea_view.rb
formstrap-0.3.5 app/models/formstrap/textarea_view.rb
formstrap-0.3.4 app/models/formstrap/textarea_view.rb
formstrap-0.3.3 app/models/formstrap/textarea_view.rb
formstrap-0.3.2 app/models/formstrap/textarea_view.rb
formstrap-0.3.1 app/models/formstrap/textarea_view.rb
formstrap-0.3.0 app/models/formstrap/textarea_view.rb
formstrap-0.2.1 app/models/formstrap/textarea_view.rb
formstrap-0.2.0 app/models/formstrap/textarea_view.rb
formstrap-0.1.3 app/models/formstrap/textarea_view.rb
formstrap-0.1.2 app/models/formstrap/textarea_view.rb
formstrap-0.1.1 app/models/formstrap/textarea_view.rb