class Playbook::PbTextInput::TextInput
def add_on_class
def add_on_class has_add_on? ? "text_input_wrapper_add_on" : nil end
def add_on_props
def add_on_props { dark: dark }.merge(add_on || {}) end
def all_input_options
def all_input_options { autocomplete: autocomplete ? nil : "off", class: "text_input #{input_options.dig(:classname) || ''}", data: validation_data, disabled: disabled, id: input_options.dig(:id) || id, name: mask.present? ? "" : name, pattern: validation_pattern || mask_pattern, placeholder: placeholder, required: required, type: type, value: value, mask: mask, }.merge(input_options) end
def classname
def classname default_margin_bottom = margin_bottom.present? ? "" : " mb_sm" generate_classname("pb_text_input_kit") + default_margin_bottom + error_class + inline_class end
def error_class
def error_class error ? " error" : "" end
def has_add_on?
def has_add_on? add_on.present? end
def inline_class
def inline_class inline ? " inline" : "" end
def input_tag
def input_tag tag(:input, all_input_options) end
def mask_data
def mask_data return {} unless mask raise ArgumentError, "mask must be one of: #{VALID_MASKS.join(', ')}" unless VALID_MASKS.include?(mask) { mask: mask } end
def mask_pattern
def mask_pattern return nil unless mask MASK_PATTERNS[mask] end
def sanitized_id
def sanitized_id "#{object.id}-sanitized" if id.present? end
def validation_data
def validation_data fields = input_options.dig(:data) || {} fields[:message] = validation_message unless validation_message.blank? mask ? fields.merge(pb_input_mask: true) : fields end
def validation_message
def validation_message validation[:message] || "" end
def validation_pattern
def validation_pattern validation[:pattern] || nil end