
/**
 * This code was generated by [react-native-codegen](https://www.npmjs.com/package/react-native-codegen).
 *
 * Do not edit this file as changes may cause incorrect behavior and will be lost
 * once the code is regenerated.
 *
 * @generated by codegen project: GeneratePropsH.js
 */
#pragma once

#include <folly/dynamic.h>
#include <react/renderer/components/view/ViewProps.h>
#include <react/renderer/core/PropsParserContext.h>
#include <react/renderer/core/propsConversions.h>
#include <react/renderer/graphics/Color.h>
#include <vector>

namespace facebook::react {

struct EnrichedTextInputViewHtmlStyleH1Struct {
  Float fontSize{0.0};
  bool bold{false};

#ifdef RN_SERIALIZABLE_STATE
  bool operator==(const EnrichedTextInputViewHtmlStyleH1Struct&) const = default;

  folly::dynamic toDynamic() const {
    folly::dynamic result = folly::dynamic::object();
    result["fontSize"] = fontSize;
    result["bold"] = bold;
    return result;
  }
#endif
};

static inline void fromRawValue(const PropsParserContext& context, const RawValue &value, EnrichedTextInputViewHtmlStyleH1Struct &result) {
  auto map = (std::unordered_map<std::string, RawValue>)value;

  auto tmp_fontSize = map.find("fontSize");
  if (tmp_fontSize != map.end()) {
    fromRawValue(context, tmp_fontSize->second, result.fontSize);
  }
  auto tmp_bold = map.find("bold");
  if (tmp_bold != map.end()) {
    fromRawValue(context, tmp_bold->second, result.bold);
  }
}

static inline std::string toString(const EnrichedTextInputViewHtmlStyleH1Struct &value) {
  return "[Object EnrichedTextInputViewHtmlStyleH1Struct]";
}

#ifdef RN_SERIALIZABLE_STATE
static inline folly::dynamic toDynamic(const EnrichedTextInputViewHtmlStyleH1Struct &value) {
  return value.toDynamic();
}
#endif

struct EnrichedTextInputViewHtmlStyleH2Struct {
  Float fontSize{0.0};
  bool bold{false};

#ifdef RN_SERIALIZABLE_STATE
  bool operator==(const EnrichedTextInputViewHtmlStyleH2Struct&) const = default;

  folly::dynamic toDynamic() const {
    folly::dynamic result = folly::dynamic::object();
    result["fontSize"] = fontSize;
    result["bold"] = bold;
    return result;
  }
#endif
};

static inline void fromRawValue(const PropsParserContext& context, const RawValue &value, EnrichedTextInputViewHtmlStyleH2Struct &result) {
  auto map = (std::unordered_map<std::string, RawValue>)value;

  auto tmp_fontSize = map.find("fontSize");
  if (tmp_fontSize != map.end()) {
    fromRawValue(context, tmp_fontSize->second, result.fontSize);
  }
  auto tmp_bold = map.find("bold");
  if (tmp_bold != map.end()) {
    fromRawValue(context, tmp_bold->second, result.bold);
  }
}

static inline std::string toString(const EnrichedTextInputViewHtmlStyleH2Struct &value) {
  return "[Object EnrichedTextInputViewHtmlStyleH2Struct]";
}

#ifdef RN_SERIALIZABLE_STATE
static inline folly::dynamic toDynamic(const EnrichedTextInputViewHtmlStyleH2Struct &value) {
  return value.toDynamic();
}
#endif

struct EnrichedTextInputViewHtmlStyleH3Struct {
  Float fontSize{0.0};
  bool bold{false};

#ifdef RN_SERIALIZABLE_STATE
  bool operator==(const EnrichedTextInputViewHtmlStyleH3Struct&) const = default;

  folly::dynamic toDynamic() const {
    folly::dynamic result = folly::dynamic::object();
    result["fontSize"] = fontSize;
    result["bold"] = bold;
    return result;
  }
#endif
};

static inline void fromRawValue(const PropsParserContext& context, const RawValue &value, EnrichedTextInputViewHtmlStyleH3Struct &result) {
  auto map = (std::unordered_map<std::string, RawValue>)value;

  auto tmp_fontSize = map.find("fontSize");
  if (tmp_fontSize != map.end()) {
    fromRawValue(context, tmp_fontSize->second, result.fontSize);
  }
  auto tmp_bold = map.find("bold");
  if (tmp_bold != map.end()) {
    fromRawValue(context, tmp_bold->second, result.bold);
  }
}

static inline std::string toString(const EnrichedTextInputViewHtmlStyleH3Struct &value) {
  return "[Object EnrichedTextInputViewHtmlStyleH3Struct]";
}

#ifdef RN_SERIALIZABLE_STATE
static inline folly::dynamic toDynamic(const EnrichedTextInputViewHtmlStyleH3Struct &value) {
  return value.toDynamic();
}
#endif

struct EnrichedTextInputViewHtmlStyleH4Struct {
  Float fontSize{0.0};
  bool bold{false};

#ifdef RN_SERIALIZABLE_STATE
  bool operator==(const EnrichedTextInputViewHtmlStyleH4Struct&) const = default;

  folly::dynamic toDynamic() const {
    folly::dynamic result = folly::dynamic::object();
    result["fontSize"] = fontSize;
    result["bold"] = bold;
    return result;
  }
#endif
};

static inline void fromRawValue(const PropsParserContext& context, const RawValue &value, EnrichedTextInputViewHtmlStyleH4Struct &result) {
  auto map = (std::unordered_map<std::string, RawValue>)value;

  auto tmp_fontSize = map.find("fontSize");
  if (tmp_fontSize != map.end()) {
    fromRawValue(context, tmp_fontSize->second, result.fontSize);
  }
  auto tmp_bold = map.find("bold");
  if (tmp_bold != map.end()) {
    fromRawValue(context, tmp_bold->second, result.bold);
  }
}

static inline std::string toString(const EnrichedTextInputViewHtmlStyleH4Struct &value) {
  return "[Object EnrichedTextInputViewHtmlStyleH4Struct]";
}

#ifdef RN_SERIALIZABLE_STATE
static inline folly::dynamic toDynamic(const EnrichedTextInputViewHtmlStyleH4Struct &value) {
  return value.toDynamic();
}
#endif

struct EnrichedTextInputViewHtmlStyleH5Struct {
  Float fontSize{0.0};
  bool bold{false};

#ifdef RN_SERIALIZABLE_STATE
  bool operator==(const EnrichedTextInputViewHtmlStyleH5Struct&) const = default;

  folly::dynamic toDynamic() const {
    folly::dynamic result = folly::dynamic::object();
    result["fontSize"] = fontSize;
    result["bold"] = bold;
    return result;
  }
#endif
};

static inline void fromRawValue(const PropsParserContext& context, const RawValue &value, EnrichedTextInputViewHtmlStyleH5Struct &result) {
  auto map = (std::unordered_map<std::string, RawValue>)value;

  auto tmp_fontSize = map.find("fontSize");
  if (tmp_fontSize != map.end()) {
    fromRawValue(context, tmp_fontSize->second, result.fontSize);
  }
  auto tmp_bold = map.find("bold");
  if (tmp_bold != map.end()) {
    fromRawValue(context, tmp_bold->second, result.bold);
  }
}

static inline std::string toString(const EnrichedTextInputViewHtmlStyleH5Struct &value) {
  return "[Object EnrichedTextInputViewHtmlStyleH5Struct]";
}

#ifdef RN_SERIALIZABLE_STATE
static inline folly::dynamic toDynamic(const EnrichedTextInputViewHtmlStyleH5Struct &value) {
  return value.toDynamic();
}
#endif

struct EnrichedTextInputViewHtmlStyleH6Struct {
  Float fontSize{0.0};
  bool bold{false};

#ifdef RN_SERIALIZABLE_STATE
  bool operator==(const EnrichedTextInputViewHtmlStyleH6Struct&) const = default;

  folly::dynamic toDynamic() const {
    folly::dynamic result = folly::dynamic::object();
    result["fontSize"] = fontSize;
    result["bold"] = bold;
    return result;
  }
#endif
};

static inline void fromRawValue(const PropsParserContext& context, const RawValue &value, EnrichedTextInputViewHtmlStyleH6Struct &result) {
  auto map = (std::unordered_map<std::string, RawValue>)value;

  auto tmp_fontSize = map.find("fontSize");
  if (tmp_fontSize != map.end()) {
    fromRawValue(context, tmp_fontSize->second, result.fontSize);
  }
  auto tmp_bold = map.find("bold");
  if (tmp_bold != map.end()) {
    fromRawValue(context, tmp_bold->second, result.bold);
  }
}

static inline std::string toString(const EnrichedTextInputViewHtmlStyleH6Struct &value) {
  return "[Object EnrichedTextInputViewHtmlStyleH6Struct]";
}

#ifdef RN_SERIALIZABLE_STATE
static inline folly::dynamic toDynamic(const EnrichedTextInputViewHtmlStyleH6Struct &value) {
  return value.toDynamic();
}
#endif

struct EnrichedTextInputViewHtmlStyleBlockquoteStruct {
  SharedColor borderColor{};
  Float borderWidth{0.0};
  Float gapWidth{0.0};
  SharedColor color{};

#ifdef RN_SERIALIZABLE_STATE
  bool operator==(const EnrichedTextInputViewHtmlStyleBlockquoteStruct&) const = default;

  folly::dynamic toDynamic() const {
    folly::dynamic result = folly::dynamic::object();
    result["borderColor"] = ::facebook::react::toDynamic(borderColor);
    result["borderWidth"] = borderWidth;
    result["gapWidth"] = gapWidth;
    result["color"] = ::facebook::react::toDynamic(color);
    return result;
  }
#endif
};

static inline void fromRawValue(const PropsParserContext& context, const RawValue &value, EnrichedTextInputViewHtmlStyleBlockquoteStruct &result) {
  auto map = (std::unordered_map<std::string, RawValue>)value;

  auto tmp_borderColor = map.find("borderColor");
  if (tmp_borderColor != map.end()) {
    fromRawValue(context, tmp_borderColor->second, result.borderColor);
  }
  auto tmp_borderWidth = map.find("borderWidth");
  if (tmp_borderWidth != map.end()) {
    fromRawValue(context, tmp_borderWidth->second, result.borderWidth);
  }
  auto tmp_gapWidth = map.find("gapWidth");
  if (tmp_gapWidth != map.end()) {
    fromRawValue(context, tmp_gapWidth->second, result.gapWidth);
  }
  auto tmp_color = map.find("color");
  if (tmp_color != map.end()) {
    fromRawValue(context, tmp_color->second, result.color);
  }
}

static inline std::string toString(const EnrichedTextInputViewHtmlStyleBlockquoteStruct &value) {
  return "[Object EnrichedTextInputViewHtmlStyleBlockquoteStruct]";
}

#ifdef RN_SERIALIZABLE_STATE
static inline folly::dynamic toDynamic(const EnrichedTextInputViewHtmlStyleBlockquoteStruct &value) {
  return value.toDynamic();
}
#endif

struct EnrichedTextInputViewHtmlStyleCodeblockStruct {
  SharedColor color{};
  Float borderRadius{0.0};
  SharedColor backgroundColor{};

#ifdef RN_SERIALIZABLE_STATE
  bool operator==(const EnrichedTextInputViewHtmlStyleCodeblockStruct&) const = default;

  folly::dynamic toDynamic() const {
    folly::dynamic result = folly::dynamic::object();
    result["color"] = ::facebook::react::toDynamic(color);
    result["borderRadius"] = borderRadius;
    result["backgroundColor"] = ::facebook::react::toDynamic(backgroundColor);
    return result;
  }
#endif
};

static inline void fromRawValue(const PropsParserContext& context, const RawValue &value, EnrichedTextInputViewHtmlStyleCodeblockStruct &result) {
  auto map = (std::unordered_map<std::string, RawValue>)value;

  auto tmp_color = map.find("color");
  if (tmp_color != map.end()) {
    fromRawValue(context, tmp_color->second, result.color);
  }
  auto tmp_borderRadius = map.find("borderRadius");
  if (tmp_borderRadius != map.end()) {
    fromRawValue(context, tmp_borderRadius->second, result.borderRadius);
  }
  auto tmp_backgroundColor = map.find("backgroundColor");
  if (tmp_backgroundColor != map.end()) {
    fromRawValue(context, tmp_backgroundColor->second, result.backgroundColor);
  }
}

static inline std::string toString(const EnrichedTextInputViewHtmlStyleCodeblockStruct &value) {
  return "[Object EnrichedTextInputViewHtmlStyleCodeblockStruct]";
}

#ifdef RN_SERIALIZABLE_STATE
static inline folly::dynamic toDynamic(const EnrichedTextInputViewHtmlStyleCodeblockStruct &value) {
  return value.toDynamic();
}
#endif

struct EnrichedTextInputViewHtmlStyleCodeStruct {
  SharedColor color{};
  SharedColor backgroundColor{};

#ifdef RN_SERIALIZABLE_STATE
  bool operator==(const EnrichedTextInputViewHtmlStyleCodeStruct&) const = default;

  folly::dynamic toDynamic() const {
    folly::dynamic result = folly::dynamic::object();
    result["color"] = ::facebook::react::toDynamic(color);
    result["backgroundColor"] = ::facebook::react::toDynamic(backgroundColor);
    return result;
  }
#endif
};

static inline void fromRawValue(const PropsParserContext& context, const RawValue &value, EnrichedTextInputViewHtmlStyleCodeStruct &result) {
  auto map = (std::unordered_map<std::string, RawValue>)value;

  auto tmp_color = map.find("color");
  if (tmp_color != map.end()) {
    fromRawValue(context, tmp_color->second, result.color);
  }
  auto tmp_backgroundColor = map.find("backgroundColor");
  if (tmp_backgroundColor != map.end()) {
    fromRawValue(context, tmp_backgroundColor->second, result.backgroundColor);
  }
}

static inline std::string toString(const EnrichedTextInputViewHtmlStyleCodeStruct &value) {
  return "[Object EnrichedTextInputViewHtmlStyleCodeStruct]";
}

#ifdef RN_SERIALIZABLE_STATE
static inline folly::dynamic toDynamic(const EnrichedTextInputViewHtmlStyleCodeStruct &value) {
  return value.toDynamic();
}
#endif

struct EnrichedTextInputViewHtmlStyleAStruct {
  SharedColor color{};
  std::string textDecorationLine{};

#ifdef RN_SERIALIZABLE_STATE
  bool operator==(const EnrichedTextInputViewHtmlStyleAStruct&) const = default;

  folly::dynamic toDynamic() const {
    folly::dynamic result = folly::dynamic::object();
    result["color"] = ::facebook::react::toDynamic(color);
    result["textDecorationLine"] = textDecorationLine;
    return result;
  }
#endif
};

static inline void fromRawValue(const PropsParserContext& context, const RawValue &value, EnrichedTextInputViewHtmlStyleAStruct &result) {
  auto map = (std::unordered_map<std::string, RawValue>)value;

  auto tmp_color = map.find("color");
  if (tmp_color != map.end()) {
    fromRawValue(context, tmp_color->second, result.color);
  }
  auto tmp_textDecorationLine = map.find("textDecorationLine");
  if (tmp_textDecorationLine != map.end()) {
    fromRawValue(context, tmp_textDecorationLine->second, result.textDecorationLine);
  }
}

static inline std::string toString(const EnrichedTextInputViewHtmlStyleAStruct &value) {
  return "[Object EnrichedTextInputViewHtmlStyleAStruct]";
}

#ifdef RN_SERIALIZABLE_STATE
static inline folly::dynamic toDynamic(const EnrichedTextInputViewHtmlStyleAStruct &value) {
  return value.toDynamic();
}
#endif

struct EnrichedTextInputViewHtmlStyleOlStruct {
  Float gapWidth{0.0};
  Float marginLeft{0.0};
  std::string markerFontWeight{};
  SharedColor markerColor{};

#ifdef RN_SERIALIZABLE_STATE
  bool operator==(const EnrichedTextInputViewHtmlStyleOlStruct&) const = default;

  folly::dynamic toDynamic() const {
    folly::dynamic result = folly::dynamic::object();
    result["gapWidth"] = gapWidth;
    result["marginLeft"] = marginLeft;
    result["markerFontWeight"] = markerFontWeight;
    result["markerColor"] = ::facebook::react::toDynamic(markerColor);
    return result;
  }
#endif
};

static inline void fromRawValue(const PropsParserContext& context, const RawValue &value, EnrichedTextInputViewHtmlStyleOlStruct &result) {
  auto map = (std::unordered_map<std::string, RawValue>)value;

  auto tmp_gapWidth = map.find("gapWidth");
  if (tmp_gapWidth != map.end()) {
    fromRawValue(context, tmp_gapWidth->second, result.gapWidth);
  }
  auto tmp_marginLeft = map.find("marginLeft");
  if (tmp_marginLeft != map.end()) {
    fromRawValue(context, tmp_marginLeft->second, result.marginLeft);
  }
  auto tmp_markerFontWeight = map.find("markerFontWeight");
  if (tmp_markerFontWeight != map.end()) {
    fromRawValue(context, tmp_markerFontWeight->second, result.markerFontWeight);
  }
  auto tmp_markerColor = map.find("markerColor");
  if (tmp_markerColor != map.end()) {
    fromRawValue(context, tmp_markerColor->second, result.markerColor);
  }
}

static inline std::string toString(const EnrichedTextInputViewHtmlStyleOlStruct &value) {
  return "[Object EnrichedTextInputViewHtmlStyleOlStruct]";
}

#ifdef RN_SERIALIZABLE_STATE
static inline folly::dynamic toDynamic(const EnrichedTextInputViewHtmlStyleOlStruct &value) {
  return value.toDynamic();
}
#endif

struct EnrichedTextInputViewHtmlStyleUlStruct {
  SharedColor bulletColor{};
  Float bulletSize{0.0};
  Float marginLeft{0.0};
  Float gapWidth{0.0};

#ifdef RN_SERIALIZABLE_STATE
  bool operator==(const EnrichedTextInputViewHtmlStyleUlStruct&) const = default;

  folly::dynamic toDynamic() const {
    folly::dynamic result = folly::dynamic::object();
    result["bulletColor"] = ::facebook::react::toDynamic(bulletColor);
    result["bulletSize"] = bulletSize;
    result["marginLeft"] = marginLeft;
    result["gapWidth"] = gapWidth;
    return result;
  }
#endif
};

static inline void fromRawValue(const PropsParserContext& context, const RawValue &value, EnrichedTextInputViewHtmlStyleUlStruct &result) {
  auto map = (std::unordered_map<std::string, RawValue>)value;

  auto tmp_bulletColor = map.find("bulletColor");
  if (tmp_bulletColor != map.end()) {
    fromRawValue(context, tmp_bulletColor->second, result.bulletColor);
  }
  auto tmp_bulletSize = map.find("bulletSize");
  if (tmp_bulletSize != map.end()) {
    fromRawValue(context, tmp_bulletSize->second, result.bulletSize);
  }
  auto tmp_marginLeft = map.find("marginLeft");
  if (tmp_marginLeft != map.end()) {
    fromRawValue(context, tmp_marginLeft->second, result.marginLeft);
  }
  auto tmp_gapWidth = map.find("gapWidth");
  if (tmp_gapWidth != map.end()) {
    fromRawValue(context, tmp_gapWidth->second, result.gapWidth);
  }
}

static inline std::string toString(const EnrichedTextInputViewHtmlStyleUlStruct &value) {
  return "[Object EnrichedTextInputViewHtmlStyleUlStruct]";
}

#ifdef RN_SERIALIZABLE_STATE
static inline folly::dynamic toDynamic(const EnrichedTextInputViewHtmlStyleUlStruct &value) {
  return value.toDynamic();
}
#endif

struct EnrichedTextInputViewHtmlStyleUlCheckboxStruct {
  Float gapWidth{0.0};
  Float boxSize{0.0};
  Float marginLeft{0.0};
  SharedColor boxColor{};

#ifdef RN_SERIALIZABLE_STATE
  bool operator==(const EnrichedTextInputViewHtmlStyleUlCheckboxStruct&) const = default;

  folly::dynamic toDynamic() const {
    folly::dynamic result = folly::dynamic::object();
    result["gapWidth"] = gapWidth;
    result["boxSize"] = boxSize;
    result["marginLeft"] = marginLeft;
    result["boxColor"] = ::facebook::react::toDynamic(boxColor);
    return result;
  }
#endif
};

static inline void fromRawValue(const PropsParserContext& context, const RawValue &value, EnrichedTextInputViewHtmlStyleUlCheckboxStruct &result) {
  auto map = (std::unordered_map<std::string, RawValue>)value;

  auto tmp_gapWidth = map.find("gapWidth");
  if (tmp_gapWidth != map.end()) {
    fromRawValue(context, tmp_gapWidth->second, result.gapWidth);
  }
  auto tmp_boxSize = map.find("boxSize");
  if (tmp_boxSize != map.end()) {
    fromRawValue(context, tmp_boxSize->second, result.boxSize);
  }
  auto tmp_marginLeft = map.find("marginLeft");
  if (tmp_marginLeft != map.end()) {
    fromRawValue(context, tmp_marginLeft->second, result.marginLeft);
  }
  auto tmp_boxColor = map.find("boxColor");
  if (tmp_boxColor != map.end()) {
    fromRawValue(context, tmp_boxColor->second, result.boxColor);
  }
}

static inline std::string toString(const EnrichedTextInputViewHtmlStyleUlCheckboxStruct &value) {
  return "[Object EnrichedTextInputViewHtmlStyleUlCheckboxStruct]";
}

#ifdef RN_SERIALIZABLE_STATE
static inline folly::dynamic toDynamic(const EnrichedTextInputViewHtmlStyleUlCheckboxStruct &value) {
  return value.toDynamic();
}
#endif

struct EnrichedTextInputViewHtmlStyleStruct {
  EnrichedTextInputViewHtmlStyleH1Struct h1{};
  EnrichedTextInputViewHtmlStyleH2Struct h2{};
  EnrichedTextInputViewHtmlStyleH3Struct h3{};
  EnrichedTextInputViewHtmlStyleH4Struct h4{};
  EnrichedTextInputViewHtmlStyleH5Struct h5{};
  EnrichedTextInputViewHtmlStyleH6Struct h6{};
  EnrichedTextInputViewHtmlStyleBlockquoteStruct blockquote{};
  EnrichedTextInputViewHtmlStyleCodeblockStruct codeblock{};
  EnrichedTextInputViewHtmlStyleCodeStruct code{};
  EnrichedTextInputViewHtmlStyleAStruct a{};
  folly::dynamic mention{};
  EnrichedTextInputViewHtmlStyleOlStruct ol{};
  EnrichedTextInputViewHtmlStyleUlStruct ul{};
  EnrichedTextInputViewHtmlStyleUlCheckboxStruct ulCheckbox{};

#ifdef RN_SERIALIZABLE_STATE
  bool operator==(const EnrichedTextInputViewHtmlStyleStruct&) const = default;

  folly::dynamic toDynamic() const {
    folly::dynamic result = folly::dynamic::object();
    result["h1"] = ::facebook::react::toDynamic(h1);
    result["h2"] = ::facebook::react::toDynamic(h2);
    result["h3"] = ::facebook::react::toDynamic(h3);
    result["h4"] = ::facebook::react::toDynamic(h4);
    result["h5"] = ::facebook::react::toDynamic(h5);
    result["h6"] = ::facebook::react::toDynamic(h6);
    result["blockquote"] = ::facebook::react::toDynamic(blockquote);
    result["codeblock"] = ::facebook::react::toDynamic(codeblock);
    result["code"] = ::facebook::react::toDynamic(code);
    result["a"] = ::facebook::react::toDynamic(a);
    result["mention"] = mention;
    result["ol"] = ::facebook::react::toDynamic(ol);
    result["ul"] = ::facebook::react::toDynamic(ul);
    result["ulCheckbox"] = ::facebook::react::toDynamic(ulCheckbox);
    return result;
  }
#endif
};

static inline void fromRawValue(const PropsParserContext& context, const RawValue &value, EnrichedTextInputViewHtmlStyleStruct &result) {
  auto map = (std::unordered_map<std::string, RawValue>)value;

  auto tmp_h1 = map.find("h1");
  if (tmp_h1 != map.end()) {
    fromRawValue(context, tmp_h1->second, result.h1);
  }
  auto tmp_h2 = map.find("h2");
  if (tmp_h2 != map.end()) {
    fromRawValue(context, tmp_h2->second, result.h2);
  }
  auto tmp_h3 = map.find("h3");
  if (tmp_h3 != map.end()) {
    fromRawValue(context, tmp_h3->second, result.h3);
  }
  auto tmp_h4 = map.find("h4");
  if (tmp_h4 != map.end()) {
    fromRawValue(context, tmp_h4->second, result.h4);
  }
  auto tmp_h5 = map.find("h5");
  if (tmp_h5 != map.end()) {
    fromRawValue(context, tmp_h5->second, result.h5);
  }
  auto tmp_h6 = map.find("h6");
  if (tmp_h6 != map.end()) {
    fromRawValue(context, tmp_h6->second, result.h6);
  }
  auto tmp_blockquote = map.find("blockquote");
  if (tmp_blockquote != map.end()) {
    fromRawValue(context, tmp_blockquote->second, result.blockquote);
  }
  auto tmp_codeblock = map.find("codeblock");
  if (tmp_codeblock != map.end()) {
    fromRawValue(context, tmp_codeblock->second, result.codeblock);
  }
  auto tmp_code = map.find("code");
  if (tmp_code != map.end()) {
    fromRawValue(context, tmp_code->second, result.code);
  }
  auto tmp_a = map.find("a");
  if (tmp_a != map.end()) {
    fromRawValue(context, tmp_a->second, result.a);
  }
  auto tmp_mention = map.find("mention");
  if (tmp_mention != map.end()) {
    fromRawValue(context, tmp_mention->second, result.mention);
  }
  auto tmp_ol = map.find("ol");
  if (tmp_ol != map.end()) {
    fromRawValue(context, tmp_ol->second, result.ol);
  }
  auto tmp_ul = map.find("ul");
  if (tmp_ul != map.end()) {
    fromRawValue(context, tmp_ul->second, result.ul);
  }
  auto tmp_ulCheckbox = map.find("ulCheckbox");
  if (tmp_ulCheckbox != map.end()) {
    fromRawValue(context, tmp_ulCheckbox->second, result.ulCheckbox);
  }
}

static inline std::string toString(const EnrichedTextInputViewHtmlStyleStruct &value) {
  return "[Object EnrichedTextInputViewHtmlStyleStruct]";
}

#ifdef RN_SERIALIZABLE_STATE
static inline folly::dynamic toDynamic(const EnrichedTextInputViewHtmlStyleStruct &value) {
  return value.toDynamic();
}
#endif

struct EnrichedTextInputViewLinkRegexStruct {
  std::string pattern{};
  bool caseInsensitive{false};
  bool dotAll{false};
  bool isDisabled{false};
  bool isDefault{false};

#ifdef RN_SERIALIZABLE_STATE
  bool operator==(const EnrichedTextInputViewLinkRegexStruct&) const = default;

  folly::dynamic toDynamic() const {
    folly::dynamic result = folly::dynamic::object();
    result["pattern"] = pattern;
    result["caseInsensitive"] = caseInsensitive;
    result["dotAll"] = dotAll;
    result["isDisabled"] = isDisabled;
    result["isDefault"] = isDefault;
    return result;
  }
#endif
};

static inline void fromRawValue(const PropsParserContext& context, const RawValue &value, EnrichedTextInputViewLinkRegexStruct &result) {
  auto map = (std::unordered_map<std::string, RawValue>)value;

  auto tmp_pattern = map.find("pattern");
  if (tmp_pattern != map.end()) {
    fromRawValue(context, tmp_pattern->second, result.pattern);
  }
  auto tmp_caseInsensitive = map.find("caseInsensitive");
  if (tmp_caseInsensitive != map.end()) {
    fromRawValue(context, tmp_caseInsensitive->second, result.caseInsensitive);
  }
  auto tmp_dotAll = map.find("dotAll");
  if (tmp_dotAll != map.end()) {
    fromRawValue(context, tmp_dotAll->second, result.dotAll);
  }
  auto tmp_isDisabled = map.find("isDisabled");
  if (tmp_isDisabled != map.end()) {
    fromRawValue(context, tmp_isDisabled->second, result.isDisabled);
  }
  auto tmp_isDefault = map.find("isDefault");
  if (tmp_isDefault != map.end()) {
    fromRawValue(context, tmp_isDefault->second, result.isDefault);
  }
}

static inline std::string toString(const EnrichedTextInputViewLinkRegexStruct &value) {
  return "[Object EnrichedTextInputViewLinkRegexStruct]";
}

#ifdef RN_SERIALIZABLE_STATE
static inline folly::dynamic toDynamic(const EnrichedTextInputViewLinkRegexStruct &value) {
  return value.toDynamic();
}
#endif

struct EnrichedTextInputViewContextMenuItemsStruct {
  std::string text{};

#ifdef RN_SERIALIZABLE_STATE
  bool operator==(const EnrichedTextInputViewContextMenuItemsStruct&) const = default;

  folly::dynamic toDynamic() const {
    folly::dynamic result = folly::dynamic::object();
    result["text"] = text;
    return result;
  }
#endif
};

static inline void fromRawValue(const PropsParserContext& context, const RawValue &value, EnrichedTextInputViewContextMenuItemsStruct &result) {
  auto map = (std::unordered_map<std::string, RawValue>)value;

  auto tmp_text = map.find("text");
  if (tmp_text != map.end()) {
    fromRawValue(context, tmp_text->second, result.text);
  }
}

static inline std::string toString(const EnrichedTextInputViewContextMenuItemsStruct &value) {
  return "[Object EnrichedTextInputViewContextMenuItemsStruct]";
}

#ifdef RN_SERIALIZABLE_STATE
static inline folly::dynamic toDynamic(const EnrichedTextInputViewContextMenuItemsStruct &value) {
  return value.toDynamic();
}
#endif

static inline void fromRawValue(const PropsParserContext& context, const RawValue &value, std::vector<EnrichedTextInputViewContextMenuItemsStruct> &result) {
  auto items = (std::vector<RawValue>)value;
  for (const auto &item : items) {
    EnrichedTextInputViewContextMenuItemsStruct newItem;
    fromRawValue(context, item, newItem);
    result.emplace_back(newItem);
  }
}


struct EnrichedTextInputViewTextShortcutsStruct {
  std::string trigger{};
  std::string style{};

#ifdef RN_SERIALIZABLE_STATE
  bool operator==(const EnrichedTextInputViewTextShortcutsStruct&) const = default;

  folly::dynamic toDynamic() const {
    folly::dynamic result = folly::dynamic::object();
    result["trigger"] = trigger;
    result["style"] = style;
    return result;
  }
#endif
};

static inline void fromRawValue(const PropsParserContext& context, const RawValue &value, EnrichedTextInputViewTextShortcutsStruct &result) {
  auto map = (std::unordered_map<std::string, RawValue>)value;

  auto tmp_trigger = map.find("trigger");
  if (tmp_trigger != map.end()) {
    fromRawValue(context, tmp_trigger->second, result.trigger);
  }
  auto tmp_style = map.find("style");
  if (tmp_style != map.end()) {
    fromRawValue(context, tmp_style->second, result.style);
  }
}

static inline std::string toString(const EnrichedTextInputViewTextShortcutsStruct &value) {
  return "[Object EnrichedTextInputViewTextShortcutsStruct]";
}

#ifdef RN_SERIALIZABLE_STATE
static inline folly::dynamic toDynamic(const EnrichedTextInputViewTextShortcutsStruct &value) {
  return value.toDynamic();
}
#endif

static inline void fromRawValue(const PropsParserContext& context, const RawValue &value, std::vector<EnrichedTextInputViewTextShortcutsStruct> &result) {
  auto items = (std::vector<RawValue>)value;
  for (const auto &item : items) {
    EnrichedTextInputViewTextShortcutsStruct newItem;
    fromRawValue(context, item, newItem);
    result.emplace_back(newItem);
  }
}

class EnrichedTextInputViewProps final : public ViewProps {
 public:
  EnrichedTextInputViewProps() = default;
  EnrichedTextInputViewProps(const PropsParserContext& context, const EnrichedTextInputViewProps &sourceProps, const RawProps &rawProps);

#pragma mark - Props

  bool autoFocus{false};
  bool editable{false};
  std::string defaultValue{};
  std::string placeholder{};
  SharedColor placeholderTextColor{};
  std::vector<std::string> mentionIndicators{};
  SharedColor cursorColor{};
  SharedColor selectionColor{};
  std::string autoCapitalize{};
  EnrichedTextInputViewHtmlStyleStruct htmlStyle{};
  bool scrollEnabled{false};
  EnrichedTextInputViewLinkRegexStruct linkRegex{};
  std::vector<EnrichedTextInputViewContextMenuItemsStruct> contextMenuItems{};
  std::vector<EnrichedTextInputViewTextShortcutsStruct> textShortcuts{};
  std::string returnKeyType{};
  std::string returnKeyLabel{};
  std::string submitBehavior{};
  bool allowFontScaling{false};
  SharedColor color{};
  Float fontSize{0.0};
  Float lineHeight{0.0};
  std::string fontFamily{};
  std::string fontWeight{};
  std::string fontStyle{};
  bool isOnChangeHtmlSet{false};
  bool isOnChangeTextSet{false};
  bool androidExperimentalSynchronousEvents{false};
  bool useHtmlNormalizer{false};

  #ifdef RN_SERIALIZABLE_STATE
  ComponentName getDiffPropsImplementationTarget() const override;

  folly::dynamic getDiffProps(const Props* prevProps) const override;
  #endif
};

struct EnrichedTextViewHtmlStyleH1Struct {
  Float fontSize{0.0};
  bool bold{false};

#ifdef RN_SERIALIZABLE_STATE
  bool operator==(const EnrichedTextViewHtmlStyleH1Struct&) const = default;

  folly::dynamic toDynamic() const {
    folly::dynamic result = folly::dynamic::object();
    result["fontSize"] = fontSize;
    result["bold"] = bold;
    return result;
  }
#endif
};

static inline void fromRawValue(const PropsParserContext& context, const RawValue &value, EnrichedTextViewHtmlStyleH1Struct &result) {
  auto map = (std::unordered_map<std::string, RawValue>)value;

  auto tmp_fontSize = map.find("fontSize");
  if (tmp_fontSize != map.end()) {
    fromRawValue(context, tmp_fontSize->second, result.fontSize);
  }
  auto tmp_bold = map.find("bold");
  if (tmp_bold != map.end()) {
    fromRawValue(context, tmp_bold->second, result.bold);
  }
}

static inline std::string toString(const EnrichedTextViewHtmlStyleH1Struct &value) {
  return "[Object EnrichedTextViewHtmlStyleH1Struct]";
}

#ifdef RN_SERIALIZABLE_STATE
static inline folly::dynamic toDynamic(const EnrichedTextViewHtmlStyleH1Struct &value) {
  return value.toDynamic();
}
#endif

struct EnrichedTextViewHtmlStyleH2Struct {
  Float fontSize{0.0};
  bool bold{false};

#ifdef RN_SERIALIZABLE_STATE
  bool operator==(const EnrichedTextViewHtmlStyleH2Struct&) const = default;

  folly::dynamic toDynamic() const {
    folly::dynamic result = folly::dynamic::object();
    result["fontSize"] = fontSize;
    result["bold"] = bold;
    return result;
  }
#endif
};

static inline void fromRawValue(const PropsParserContext& context, const RawValue &value, EnrichedTextViewHtmlStyleH2Struct &result) {
  auto map = (std::unordered_map<std::string, RawValue>)value;

  auto tmp_fontSize = map.find("fontSize");
  if (tmp_fontSize != map.end()) {
    fromRawValue(context, tmp_fontSize->second, result.fontSize);
  }
  auto tmp_bold = map.find("bold");
  if (tmp_bold != map.end()) {
    fromRawValue(context, tmp_bold->second, result.bold);
  }
}

static inline std::string toString(const EnrichedTextViewHtmlStyleH2Struct &value) {
  return "[Object EnrichedTextViewHtmlStyleH2Struct]";
}

#ifdef RN_SERIALIZABLE_STATE
static inline folly::dynamic toDynamic(const EnrichedTextViewHtmlStyleH2Struct &value) {
  return value.toDynamic();
}
#endif

struct EnrichedTextViewHtmlStyleH3Struct {
  Float fontSize{0.0};
  bool bold{false};

#ifdef RN_SERIALIZABLE_STATE
  bool operator==(const EnrichedTextViewHtmlStyleH3Struct&) const = default;

  folly::dynamic toDynamic() const {
    folly::dynamic result = folly::dynamic::object();
    result["fontSize"] = fontSize;
    result["bold"] = bold;
    return result;
  }
#endif
};

static inline void fromRawValue(const PropsParserContext& context, const RawValue &value, EnrichedTextViewHtmlStyleH3Struct &result) {
  auto map = (std::unordered_map<std::string, RawValue>)value;

  auto tmp_fontSize = map.find("fontSize");
  if (tmp_fontSize != map.end()) {
    fromRawValue(context, tmp_fontSize->second, result.fontSize);
  }
  auto tmp_bold = map.find("bold");
  if (tmp_bold != map.end()) {
    fromRawValue(context, tmp_bold->second, result.bold);
  }
}

static inline std::string toString(const EnrichedTextViewHtmlStyleH3Struct &value) {
  return "[Object EnrichedTextViewHtmlStyleH3Struct]";
}

#ifdef RN_SERIALIZABLE_STATE
static inline folly::dynamic toDynamic(const EnrichedTextViewHtmlStyleH3Struct &value) {
  return value.toDynamic();
}
#endif

struct EnrichedTextViewHtmlStyleH4Struct {
  Float fontSize{0.0};
  bool bold{false};

#ifdef RN_SERIALIZABLE_STATE
  bool operator==(const EnrichedTextViewHtmlStyleH4Struct&) const = default;

  folly::dynamic toDynamic() const {
    folly::dynamic result = folly::dynamic::object();
    result["fontSize"] = fontSize;
    result["bold"] = bold;
    return result;
  }
#endif
};

static inline void fromRawValue(const PropsParserContext& context, const RawValue &value, EnrichedTextViewHtmlStyleH4Struct &result) {
  auto map = (std::unordered_map<std::string, RawValue>)value;

  auto tmp_fontSize = map.find("fontSize");
  if (tmp_fontSize != map.end()) {
    fromRawValue(context, tmp_fontSize->second, result.fontSize);
  }
  auto tmp_bold = map.find("bold");
  if (tmp_bold != map.end()) {
    fromRawValue(context, tmp_bold->second, result.bold);
  }
}

static inline std::string toString(const EnrichedTextViewHtmlStyleH4Struct &value) {
  return "[Object EnrichedTextViewHtmlStyleH4Struct]";
}

#ifdef RN_SERIALIZABLE_STATE
static inline folly::dynamic toDynamic(const EnrichedTextViewHtmlStyleH4Struct &value) {
  return value.toDynamic();
}
#endif

struct EnrichedTextViewHtmlStyleH5Struct {
  Float fontSize{0.0};
  bool bold{false};

#ifdef RN_SERIALIZABLE_STATE
  bool operator==(const EnrichedTextViewHtmlStyleH5Struct&) const = default;

  folly::dynamic toDynamic() const {
    folly::dynamic result = folly::dynamic::object();
    result["fontSize"] = fontSize;
    result["bold"] = bold;
    return result;
  }
#endif
};

static inline void fromRawValue(const PropsParserContext& context, const RawValue &value, EnrichedTextViewHtmlStyleH5Struct &result) {
  auto map = (std::unordered_map<std::string, RawValue>)value;

  auto tmp_fontSize = map.find("fontSize");
  if (tmp_fontSize != map.end()) {
    fromRawValue(context, tmp_fontSize->second, result.fontSize);
  }
  auto tmp_bold = map.find("bold");
  if (tmp_bold != map.end()) {
    fromRawValue(context, tmp_bold->second, result.bold);
  }
}

static inline std::string toString(const EnrichedTextViewHtmlStyleH5Struct &value) {
  return "[Object EnrichedTextViewHtmlStyleH5Struct]";
}

#ifdef RN_SERIALIZABLE_STATE
static inline folly::dynamic toDynamic(const EnrichedTextViewHtmlStyleH5Struct &value) {
  return value.toDynamic();
}
#endif

struct EnrichedTextViewHtmlStyleH6Struct {
  Float fontSize{0.0};
  bool bold{false};

#ifdef RN_SERIALIZABLE_STATE
  bool operator==(const EnrichedTextViewHtmlStyleH6Struct&) const = default;

  folly::dynamic toDynamic() const {
    folly::dynamic result = folly::dynamic::object();
    result["fontSize"] = fontSize;
    result["bold"] = bold;
    return result;
  }
#endif
};

static inline void fromRawValue(const PropsParserContext& context, const RawValue &value, EnrichedTextViewHtmlStyleH6Struct &result) {
  auto map = (std::unordered_map<std::string, RawValue>)value;

  auto tmp_fontSize = map.find("fontSize");
  if (tmp_fontSize != map.end()) {
    fromRawValue(context, tmp_fontSize->second, result.fontSize);
  }
  auto tmp_bold = map.find("bold");
  if (tmp_bold != map.end()) {
    fromRawValue(context, tmp_bold->second, result.bold);
  }
}

static inline std::string toString(const EnrichedTextViewHtmlStyleH6Struct &value) {
  return "[Object EnrichedTextViewHtmlStyleH6Struct]";
}

#ifdef RN_SERIALIZABLE_STATE
static inline folly::dynamic toDynamic(const EnrichedTextViewHtmlStyleH6Struct &value) {
  return value.toDynamic();
}
#endif

struct EnrichedTextViewHtmlStyleBlockquoteStruct {
  SharedColor borderColor{};
  Float borderWidth{0.0};
  Float gapWidth{0.0};
  SharedColor color{};

#ifdef RN_SERIALIZABLE_STATE
  bool operator==(const EnrichedTextViewHtmlStyleBlockquoteStruct&) const = default;

  folly::dynamic toDynamic() const {
    folly::dynamic result = folly::dynamic::object();
    result["borderColor"] = ::facebook::react::toDynamic(borderColor);
    result["borderWidth"] = borderWidth;
    result["gapWidth"] = gapWidth;
    result["color"] = ::facebook::react::toDynamic(color);
    return result;
  }
#endif
};

static inline void fromRawValue(const PropsParserContext& context, const RawValue &value, EnrichedTextViewHtmlStyleBlockquoteStruct &result) {
  auto map = (std::unordered_map<std::string, RawValue>)value;

  auto tmp_borderColor = map.find("borderColor");
  if (tmp_borderColor != map.end()) {
    fromRawValue(context, tmp_borderColor->second, result.borderColor);
  }
  auto tmp_borderWidth = map.find("borderWidth");
  if (tmp_borderWidth != map.end()) {
    fromRawValue(context, tmp_borderWidth->second, result.borderWidth);
  }
  auto tmp_gapWidth = map.find("gapWidth");
  if (tmp_gapWidth != map.end()) {
    fromRawValue(context, tmp_gapWidth->second, result.gapWidth);
  }
  auto tmp_color = map.find("color");
  if (tmp_color != map.end()) {
    fromRawValue(context, tmp_color->second, result.color);
  }
}

static inline std::string toString(const EnrichedTextViewHtmlStyleBlockquoteStruct &value) {
  return "[Object EnrichedTextViewHtmlStyleBlockquoteStruct]";
}

#ifdef RN_SERIALIZABLE_STATE
static inline folly::dynamic toDynamic(const EnrichedTextViewHtmlStyleBlockquoteStruct &value) {
  return value.toDynamic();
}
#endif

struct EnrichedTextViewHtmlStyleCodeblockStruct {
  SharedColor color{};
  Float borderRadius{0.0};
  SharedColor backgroundColor{};

#ifdef RN_SERIALIZABLE_STATE
  bool operator==(const EnrichedTextViewHtmlStyleCodeblockStruct&) const = default;

  folly::dynamic toDynamic() const {
    folly::dynamic result = folly::dynamic::object();
    result["color"] = ::facebook::react::toDynamic(color);
    result["borderRadius"] = borderRadius;
    result["backgroundColor"] = ::facebook::react::toDynamic(backgroundColor);
    return result;
  }
#endif
};

static inline void fromRawValue(const PropsParserContext& context, const RawValue &value, EnrichedTextViewHtmlStyleCodeblockStruct &result) {
  auto map = (std::unordered_map<std::string, RawValue>)value;

  auto tmp_color = map.find("color");
  if (tmp_color != map.end()) {
    fromRawValue(context, tmp_color->second, result.color);
  }
  auto tmp_borderRadius = map.find("borderRadius");
  if (tmp_borderRadius != map.end()) {
    fromRawValue(context, tmp_borderRadius->second, result.borderRadius);
  }
  auto tmp_backgroundColor = map.find("backgroundColor");
  if (tmp_backgroundColor != map.end()) {
    fromRawValue(context, tmp_backgroundColor->second, result.backgroundColor);
  }
}

static inline std::string toString(const EnrichedTextViewHtmlStyleCodeblockStruct &value) {
  return "[Object EnrichedTextViewHtmlStyleCodeblockStruct]";
}

#ifdef RN_SERIALIZABLE_STATE
static inline folly::dynamic toDynamic(const EnrichedTextViewHtmlStyleCodeblockStruct &value) {
  return value.toDynamic();
}
#endif

struct EnrichedTextViewHtmlStyleCodeStruct {
  SharedColor color{};
  SharedColor backgroundColor{};

#ifdef RN_SERIALIZABLE_STATE
  bool operator==(const EnrichedTextViewHtmlStyleCodeStruct&) const = default;

  folly::dynamic toDynamic() const {
    folly::dynamic result = folly::dynamic::object();
    result["color"] = ::facebook::react::toDynamic(color);
    result["backgroundColor"] = ::facebook::react::toDynamic(backgroundColor);
    return result;
  }
#endif
};

static inline void fromRawValue(const PropsParserContext& context, const RawValue &value, EnrichedTextViewHtmlStyleCodeStruct &result) {
  auto map = (std::unordered_map<std::string, RawValue>)value;

  auto tmp_color = map.find("color");
  if (tmp_color != map.end()) {
    fromRawValue(context, tmp_color->second, result.color);
  }
  auto tmp_backgroundColor = map.find("backgroundColor");
  if (tmp_backgroundColor != map.end()) {
    fromRawValue(context, tmp_backgroundColor->second, result.backgroundColor);
  }
}

static inline std::string toString(const EnrichedTextViewHtmlStyleCodeStruct &value) {
  return "[Object EnrichedTextViewHtmlStyleCodeStruct]";
}

#ifdef RN_SERIALIZABLE_STATE
static inline folly::dynamic toDynamic(const EnrichedTextViewHtmlStyleCodeStruct &value) {
  return value.toDynamic();
}
#endif

struct EnrichedTextViewHtmlStyleAStruct {
  SharedColor color{};
  std::string textDecorationLine{};
  SharedColor pressColor{};
  std::string pressTextDecorationLine{};

#ifdef RN_SERIALIZABLE_STATE
  bool operator==(const EnrichedTextViewHtmlStyleAStruct&) const = default;

  folly::dynamic toDynamic() const {
    folly::dynamic result = folly::dynamic::object();
    result["color"] = ::facebook::react::toDynamic(color);
    result["textDecorationLine"] = textDecorationLine;
    result["pressColor"] = ::facebook::react::toDynamic(pressColor);
    result["pressTextDecorationLine"] = pressTextDecorationLine;
    return result;
  }
#endif
};

static inline void fromRawValue(const PropsParserContext& context, const RawValue &value, EnrichedTextViewHtmlStyleAStruct &result) {
  auto map = (std::unordered_map<std::string, RawValue>)value;

  auto tmp_color = map.find("color");
  if (tmp_color != map.end()) {
    fromRawValue(context, tmp_color->second, result.color);
  }
  auto tmp_textDecorationLine = map.find("textDecorationLine");
  if (tmp_textDecorationLine != map.end()) {
    fromRawValue(context, tmp_textDecorationLine->second, result.textDecorationLine);
  }
  auto tmp_pressColor = map.find("pressColor");
  if (tmp_pressColor != map.end()) {
    fromRawValue(context, tmp_pressColor->second, result.pressColor);
  }
  auto tmp_pressTextDecorationLine = map.find("pressTextDecorationLine");
  if (tmp_pressTextDecorationLine != map.end()) {
    fromRawValue(context, tmp_pressTextDecorationLine->second, result.pressTextDecorationLine);
  }
}

static inline std::string toString(const EnrichedTextViewHtmlStyleAStruct &value) {
  return "[Object EnrichedTextViewHtmlStyleAStruct]";
}

#ifdef RN_SERIALIZABLE_STATE
static inline folly::dynamic toDynamic(const EnrichedTextViewHtmlStyleAStruct &value) {
  return value.toDynamic();
}
#endif

struct EnrichedTextViewHtmlStyleOlStruct {
  Float gapWidth{0.0};
  Float marginLeft{0.0};
  std::string markerFontWeight{};
  SharedColor markerColor{};

#ifdef RN_SERIALIZABLE_STATE
  bool operator==(const EnrichedTextViewHtmlStyleOlStruct&) const = default;

  folly::dynamic toDynamic() const {
    folly::dynamic result = folly::dynamic::object();
    result["gapWidth"] = gapWidth;
    result["marginLeft"] = marginLeft;
    result["markerFontWeight"] = markerFontWeight;
    result["markerColor"] = ::facebook::react::toDynamic(markerColor);
    return result;
  }
#endif
};

static inline void fromRawValue(const PropsParserContext& context, const RawValue &value, EnrichedTextViewHtmlStyleOlStruct &result) {
  auto map = (std::unordered_map<std::string, RawValue>)value;

  auto tmp_gapWidth = map.find("gapWidth");
  if (tmp_gapWidth != map.end()) {
    fromRawValue(context, tmp_gapWidth->second, result.gapWidth);
  }
  auto tmp_marginLeft = map.find("marginLeft");
  if (tmp_marginLeft != map.end()) {
    fromRawValue(context, tmp_marginLeft->second, result.marginLeft);
  }
  auto tmp_markerFontWeight = map.find("markerFontWeight");
  if (tmp_markerFontWeight != map.end()) {
    fromRawValue(context, tmp_markerFontWeight->second, result.markerFontWeight);
  }
  auto tmp_markerColor = map.find("markerColor");
  if (tmp_markerColor != map.end()) {
    fromRawValue(context, tmp_markerColor->second, result.markerColor);
  }
}

static inline std::string toString(const EnrichedTextViewHtmlStyleOlStruct &value) {
  return "[Object EnrichedTextViewHtmlStyleOlStruct]";
}

#ifdef RN_SERIALIZABLE_STATE
static inline folly::dynamic toDynamic(const EnrichedTextViewHtmlStyleOlStruct &value) {
  return value.toDynamic();
}
#endif

struct EnrichedTextViewHtmlStyleUlStruct {
  SharedColor bulletColor{};
  Float bulletSize{0.0};
  Float marginLeft{0.0};
  Float gapWidth{0.0};

#ifdef RN_SERIALIZABLE_STATE
  bool operator==(const EnrichedTextViewHtmlStyleUlStruct&) const = default;

  folly::dynamic toDynamic() const {
    folly::dynamic result = folly::dynamic::object();
    result["bulletColor"] = ::facebook::react::toDynamic(bulletColor);
    result["bulletSize"] = bulletSize;
    result["marginLeft"] = marginLeft;
    result["gapWidth"] = gapWidth;
    return result;
  }
#endif
};

static inline void fromRawValue(const PropsParserContext& context, const RawValue &value, EnrichedTextViewHtmlStyleUlStruct &result) {
  auto map = (std::unordered_map<std::string, RawValue>)value;

  auto tmp_bulletColor = map.find("bulletColor");
  if (tmp_bulletColor != map.end()) {
    fromRawValue(context, tmp_bulletColor->second, result.bulletColor);
  }
  auto tmp_bulletSize = map.find("bulletSize");
  if (tmp_bulletSize != map.end()) {
    fromRawValue(context, tmp_bulletSize->second, result.bulletSize);
  }
  auto tmp_marginLeft = map.find("marginLeft");
  if (tmp_marginLeft != map.end()) {
    fromRawValue(context, tmp_marginLeft->second, result.marginLeft);
  }
  auto tmp_gapWidth = map.find("gapWidth");
  if (tmp_gapWidth != map.end()) {
    fromRawValue(context, tmp_gapWidth->second, result.gapWidth);
  }
}

static inline std::string toString(const EnrichedTextViewHtmlStyleUlStruct &value) {
  return "[Object EnrichedTextViewHtmlStyleUlStruct]";
}

#ifdef RN_SERIALIZABLE_STATE
static inline folly::dynamic toDynamic(const EnrichedTextViewHtmlStyleUlStruct &value) {
  return value.toDynamic();
}
#endif

struct EnrichedTextViewHtmlStyleUlCheckboxStruct {
  Float gapWidth{0.0};
  Float boxSize{0.0};
  Float marginLeft{0.0};
  SharedColor boxColor{};

#ifdef RN_SERIALIZABLE_STATE
  bool operator==(const EnrichedTextViewHtmlStyleUlCheckboxStruct&) const = default;

  folly::dynamic toDynamic() const {
    folly::dynamic result = folly::dynamic::object();
    result["gapWidth"] = gapWidth;
    result["boxSize"] = boxSize;
    result["marginLeft"] = marginLeft;
    result["boxColor"] = ::facebook::react::toDynamic(boxColor);
    return result;
  }
#endif
};

static inline void fromRawValue(const PropsParserContext& context, const RawValue &value, EnrichedTextViewHtmlStyleUlCheckboxStruct &result) {
  auto map = (std::unordered_map<std::string, RawValue>)value;

  auto tmp_gapWidth = map.find("gapWidth");
  if (tmp_gapWidth != map.end()) {
    fromRawValue(context, tmp_gapWidth->second, result.gapWidth);
  }
  auto tmp_boxSize = map.find("boxSize");
  if (tmp_boxSize != map.end()) {
    fromRawValue(context, tmp_boxSize->second, result.boxSize);
  }
  auto tmp_marginLeft = map.find("marginLeft");
  if (tmp_marginLeft != map.end()) {
    fromRawValue(context, tmp_marginLeft->second, result.marginLeft);
  }
  auto tmp_boxColor = map.find("boxColor");
  if (tmp_boxColor != map.end()) {
    fromRawValue(context, tmp_boxColor->second, result.boxColor);
  }
}

static inline std::string toString(const EnrichedTextViewHtmlStyleUlCheckboxStruct &value) {
  return "[Object EnrichedTextViewHtmlStyleUlCheckboxStruct]";
}

#ifdef RN_SERIALIZABLE_STATE
static inline folly::dynamic toDynamic(const EnrichedTextViewHtmlStyleUlCheckboxStruct &value) {
  return value.toDynamic();
}
#endif

struct EnrichedTextViewHtmlStyleStruct {
  EnrichedTextViewHtmlStyleH1Struct h1{};
  EnrichedTextViewHtmlStyleH2Struct h2{};
  EnrichedTextViewHtmlStyleH3Struct h3{};
  EnrichedTextViewHtmlStyleH4Struct h4{};
  EnrichedTextViewHtmlStyleH5Struct h5{};
  EnrichedTextViewHtmlStyleH6Struct h6{};
  EnrichedTextViewHtmlStyleBlockquoteStruct blockquote{};
  EnrichedTextViewHtmlStyleCodeblockStruct codeblock{};
  EnrichedTextViewHtmlStyleCodeStruct code{};
  EnrichedTextViewHtmlStyleAStruct a{};
  folly::dynamic mention{};
  EnrichedTextViewHtmlStyleOlStruct ol{};
  EnrichedTextViewHtmlStyleUlStruct ul{};
  EnrichedTextViewHtmlStyleUlCheckboxStruct ulCheckbox{};

#ifdef RN_SERIALIZABLE_STATE
  bool operator==(const EnrichedTextViewHtmlStyleStruct&) const = default;

  folly::dynamic toDynamic() const {
    folly::dynamic result = folly::dynamic::object();
    result["h1"] = ::facebook::react::toDynamic(h1);
    result["h2"] = ::facebook::react::toDynamic(h2);
    result["h3"] = ::facebook::react::toDynamic(h3);
    result["h4"] = ::facebook::react::toDynamic(h4);
    result["h5"] = ::facebook::react::toDynamic(h5);
    result["h6"] = ::facebook::react::toDynamic(h6);
    result["blockquote"] = ::facebook::react::toDynamic(blockquote);
    result["codeblock"] = ::facebook::react::toDynamic(codeblock);
    result["code"] = ::facebook::react::toDynamic(code);
    result["a"] = ::facebook::react::toDynamic(a);
    result["mention"] = mention;
    result["ol"] = ::facebook::react::toDynamic(ol);
    result["ul"] = ::facebook::react::toDynamic(ul);
    result["ulCheckbox"] = ::facebook::react::toDynamic(ulCheckbox);
    return result;
  }
#endif
};

static inline void fromRawValue(const PropsParserContext& context, const RawValue &value, EnrichedTextViewHtmlStyleStruct &result) {
  auto map = (std::unordered_map<std::string, RawValue>)value;

  auto tmp_h1 = map.find("h1");
  if (tmp_h1 != map.end()) {
    fromRawValue(context, tmp_h1->second, result.h1);
  }
  auto tmp_h2 = map.find("h2");
  if (tmp_h2 != map.end()) {
    fromRawValue(context, tmp_h2->second, result.h2);
  }
  auto tmp_h3 = map.find("h3");
  if (tmp_h3 != map.end()) {
    fromRawValue(context, tmp_h3->second, result.h3);
  }
  auto tmp_h4 = map.find("h4");
  if (tmp_h4 != map.end()) {
    fromRawValue(context, tmp_h4->second, result.h4);
  }
  auto tmp_h5 = map.find("h5");
  if (tmp_h5 != map.end()) {
    fromRawValue(context, tmp_h5->second, result.h5);
  }
  auto tmp_h6 = map.find("h6");
  if (tmp_h6 != map.end()) {
    fromRawValue(context, tmp_h6->second, result.h6);
  }
  auto tmp_blockquote = map.find("blockquote");
  if (tmp_blockquote != map.end()) {
    fromRawValue(context, tmp_blockquote->second, result.blockquote);
  }
  auto tmp_codeblock = map.find("codeblock");
  if (tmp_codeblock != map.end()) {
    fromRawValue(context, tmp_codeblock->second, result.codeblock);
  }
  auto tmp_code = map.find("code");
  if (tmp_code != map.end()) {
    fromRawValue(context, tmp_code->second, result.code);
  }
  auto tmp_a = map.find("a");
  if (tmp_a != map.end()) {
    fromRawValue(context, tmp_a->second, result.a);
  }
  auto tmp_mention = map.find("mention");
  if (tmp_mention != map.end()) {
    fromRawValue(context, tmp_mention->second, result.mention);
  }
  auto tmp_ol = map.find("ol");
  if (tmp_ol != map.end()) {
    fromRawValue(context, tmp_ol->second, result.ol);
  }
  auto tmp_ul = map.find("ul");
  if (tmp_ul != map.end()) {
    fromRawValue(context, tmp_ul->second, result.ul);
  }
  auto tmp_ulCheckbox = map.find("ulCheckbox");
  if (tmp_ulCheckbox != map.end()) {
    fromRawValue(context, tmp_ulCheckbox->second, result.ulCheckbox);
  }
}

static inline std::string toString(const EnrichedTextViewHtmlStyleStruct &value) {
  return "[Object EnrichedTextViewHtmlStyleStruct]";
}

#ifdef RN_SERIALIZABLE_STATE
static inline folly::dynamic toDynamic(const EnrichedTextViewHtmlStyleStruct &value) {
  return value.toDynamic();
}
#endif
class EnrichedTextViewProps final : public ViewProps {
 public:
  EnrichedTextViewProps() = default;
  EnrichedTextViewProps(const PropsParserContext& context, const EnrichedTextViewProps &sourceProps, const RawProps &rawProps);

#pragma mark - Props

  std::string text{};
  EnrichedTextViewHtmlStyleStruct htmlStyle{};
  bool useHtmlNormalizer{false};
  bool allowFontScaling{false};
  std::string ellipsizeMode{};
  int numberOfLines{0};
  bool selectable{false};
  SharedColor selectionColor{};
  SharedColor color{};
  Float fontSize{0.0};
  std::string fontFamily{};
  std::string fontWeight{};
  std::string fontStyle{};

  #ifdef RN_SERIALIZABLE_STATE
  ComponentName getDiffPropsImplementationTarget() const override;

  folly::dynamic getDiffProps(const Props* prevProps) const override;
  #endif
};

} // namespace facebook::react
