Class: HakumiComponents::Input::Component

Inherits:
BaseComponent
  • Object
show all
Extended by:
T::Sig
Includes:
Concerns::InputControl
Defined in:
app/components/hakumi_components/input/component.rb

Direct Known Subclasses

Password::Component

Constant Summary collapse

InputType =
T.type_alias { Types::HtmlKey }
IconName =
T.type_alias { BaseComponent::SymbolInput }
AffixContent =
T.type_alias { Types::RenderedContent }

Constants inherited from BaseComponent

BaseComponent::ControllerOptions, BaseComponent::DateInput, BaseComponent::DateLikeValue, BaseComponent::DimensionInput, BaseComponent::HtmlPayloadInput, BaseComponent::I18nOptionValue, BaseComponent::PresenceArray, BaseComponent::PresenceScalar, BaseComponent::PresenceValue, BaseComponent::RawHtmlInput, BaseComponent::SIZES, BaseComponent::SizeValue, BaseComponent::SymbolInput

Instance Method Summary collapse

Methods included from Concerns::InputControl

#input_control_contract, #input_control_disabled, #input_control_has_value?, #input_control_placeholder, #input_control_readonly, #input_control_size, #input_control_value

Methods included from Concerns::InputControlInterface

#input_control_contract, #input_control_disabled, #input_control_has_value?, #input_control_placeholder, #input_control_readonly, #input_control_size, #input_control_value

Methods included from Concerns::FormField

#describedby_ids, #error?, #error_message, #form_field_caption, #form_field_contract, #form_field_errors, #form_field_html_options, #form_field_label, #form_field_name, #form_field_required, #form_field_rules, #form_field_standalone, #form_item_attributes, #form_item_classes, #input_id, #render_caption, #render_error, #render_explain, #render_label, #standalone?

Methods included from Concerns::FormFieldInterface

#form_field_contract

Methods inherited from BaseComponent

#append_data_token, boolean_html_param, #build_inline_style, cast_boolean, #cast_boolean, #class_names, #component_classes, #data_attributes_from, #dimension_to_css, #ensure_dom_id!, float_html_param, #generate_id, #html_classes, html_param, html_primitive_param, #html_style, #i18n_scope, integer_html_param, #merge_attributes, #render_value, #size_to_pixels, #stimulus_attrs, string_html_param, string_or_symbol_array_html_param, symbol_html_param, #t_default, #translate_with_default, #validate_inclusion!, #validate_required!, #value_present?

Constructor Details

#initialize(name:, label: nil, caption: nil, value: nil, placeholder: nil, type: :text, size: :default, disabled: false, readonly: false, required: false, prefix: nil, suffix: nil, prefix_icon: nil, suffix_icon: nil, allow_clear: false, maxlength: nil, standalone: true, rules: nil, errors: [], **html_options) ⇒ Component

Returns a new instance of Component.



39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
# File 'app/components/hakumi_components/input/component.rb', line 39

def initialize(
  name:,
  label: nil,
  caption: nil,
  value: nil,
  placeholder: nil,
  type: :text,
  size: :default,
  disabled: false,
  readonly: false,
  required: false,
  prefix: nil,
  suffix: nil,
  prefix_icon: nil,
  suffix_icon: nil,
  allow_clear: false,
  maxlength: nil,
  standalone: true,
  rules: nil,
  errors: [],
  **html_options
)
  @name = T.let(name, Types::FormFieldName)
  @label = label
  @caption = caption
  @value = value
  @placeholder = placeholder
  @type = T.let(type, InputType)
  @size = size
  @disabled = disabled
  @readonly = readonly
  @required = required
  @prefix = prefix
  @suffix = suffix
  @prefix_icon = prefix_icon
  @suffix_icon = suffix_icon
  @allow_clear = allow_clear
  @maxlength = maxlength
  @standalone = standalone
  @rules = T.let(rules, T.nilable(T::Array[Types::ValidationRule]))
  @errors = T.let(errors, Types::FormFieldErrors)
  @html_options = T.let(html_options, Types::HtmlAttributes)
  initialize_input_control_contract!(
    name: @name,
    label: @label,
    caption: @caption,
    value: @value,
    placeholder: @placeholder,
    size: @size,
    disabled: @disabled,
    readonly: @readonly,
    errors: @errors,
    standalone: @standalone,
    required: @required,
    html_options: @html_options,
    rules: @rules
  )
  validate_props!
end