textInputAttrs function

Map<String, String> textInputAttrs({
  1. ArcaneInteraction? onChange,
  2. ArcaneInteraction? onSubmit,
  3. String? formId,
  4. String? fieldName,
  5. String? fieldType,
  6. String? fieldValidate,
  7. bool required = false,
  8. bool disabled = false,
})

Implementation

Map<String, String> textInputAttrs({
  ArcaneInteraction? onChange,
  ArcaneInteraction? onSubmit,
  String? formId,
  String? fieldName,
  String? fieldType,
  String? fieldValidate,
  bool required = false,
  bool disabled = false,
}) {
  final Map<String, String> out = <String, String>{};
  if (onChange != null) {
    out['data-arcane-input'] = encodeArcaneAction(onChange);
    out['data-arcane-change'] = encodeArcaneAction(onChange);
  }
  if (onSubmit != null) {
    out['data-arcane-submit'] = encodeArcaneAction(onSubmit);
  }
  if (formId != null && formId.isNotEmpty &&
      fieldName != null && fieldName.isNotEmpty) {
    out['data-arcane-form'] = formId;
    out['data-arcane-field'] = fieldName;
    if (required) out['data-arcane-field-required'] = 'true';
    if (disabled) out['data-arcane-field-disabled'] = 'true';
    if (fieldType != null && fieldType.isNotEmpty) {
      out['data-arcane-field-type'] = fieldType;
    }
    if (fieldValidate != null && fieldValidate.isNotEmpty) {
      out['data-arcane-field-validate'] = fieldValidate;
    }
  }
  return out;
}