{"version":3,"sources":["webpack:///./node_modules/html-react-parser/index.js","webpack:///./node_modules/html-dom-parser/lib/client/html-to-dom.mjs","webpack:///./node_modules/html-dom-parser/lib/client/domparser.js","webpack:///./node_modules/html-dom-parser/lib/client/utilities.js","webpack:///./node_modules/html-dom-parser/lib/client/constants.js","webpack:///./node_modules/react-property/lib/index.js","webpack:///./node_modules/react-property/lib/possibleStandardNamesOptimized.js","webpack:///./node_modules/style-to-js/cjs/index.js","webpack:///./node_modules/style-to-js/node_modules/style-to-object/index.mjs","webpack:///./node_modules/style-to-js/node_modules/style-to-object/index.js","webpack:///./node_modules/inline-style-parser/index.js","webpack:///./node_modules/style-to-js/cjs/utilities.js","webpack:///./node_modules/html-react-parser/lib/dom-to-react.js","webpack:///./node_modules/prop-types/index.js","webpack:///./node_modules/prop-types/factoryWithThrowingShims.js","webpack:///./node_modules/prop-types/lib/ReactPropTypesSecret.js","webpack:///./node_modules/html-react-parser/index.mjs","webpack:///./node_modules/html-react-parser/lib/attributes-to-props.js","webpack:///./node_modules/html-react-parser/lib/utilities.js","webpack:///./node_modules/domhandler/node_modules/domelementtype/lib/esm/index.js","webpack:///./node_modules/domhandler/lib/esm/node.js","webpack:///./node_modules/domhandler/lib/esm/index.js"],"names":["domhandler","htmlToDOM","attributesToProps","domToReact","default","domParserOptions","lowerCaseAttributeNames","HTMLReactParser","html","options","TypeError","htmlparser2","Comment","Element","ProcessingInstruction","Text","module","exports","formatDOM","DIRECTIVE_REGEX","HTMLDOMParser","directive","match","FIRST_TAG_REGEX","HEAD_TAG_REGEX","BODY_TAG_REGEX","parseFromDocument","Error","parseFromString","DOMParser","window","domParser","tagName","document","implementation","doc","createHTMLDocument","documentElement","querySelector","innerHTML","parseFromTemplate","template","createElement","content","childNodes","firstTagName","element","elements","toLowerCase","test","parentNode","removeChild","querySelectorAll","CASE_SENSITIVE_TAG_NAMES","caseSensitiveTagNamesMap","i","len","length","formatAttributes","attributes","attribute","result","name","value","formatTagName","caseSensitiveTagName","getCaseSensitiveTagName","nodes","parent","index","current","node","nodeType","nodeName","children","nodeValue","prev","next","push","substring","indexOf","unshift","_slicedToArray","arr","Array","isArray","_arrayWithHoles","_i","Symbol","iterator","_s","_e","_arr","_n","_d","call","done","err","_iterableToArrayLimit","o","minLen","_arrayLikeToArray","n","Object","prototype","toString","slice","constructor","from","_unsupportedIterableToArray","_nonIterableRest","arr2","defineProperty","PropertyInfoRecord","type","mustUseProperty","attributeName","attributeNamespace","sanitizeURL","removeEmptyString","this","acceptsBooleans","propertyName","properties","forEach","_ref","_ref2","CAMELIZE","capitalize","token","toUpperCase","replace","_require","CAMELCASE","SAME","possibleStandardNamesOptimized","possibleStandardNames","isCustomAttribute","RegExp","bind","keys","reduce","accumulator","standardName","propName","BOOLEAN","BOOLEANISH_STRING","NUMERIC","OVERLOADED_BOOLEAN","POSITIVE_NUMERIC","RESERVED","STRING","getPropertyInfo","hasOwnProperty","accept","acceptCharset","accessKey","action","allowFullScreen","alt","as","async","autoCapitalize","autoComplete","autoCorrect","autoFocus","autoPlay","autoSave","capture","cellPadding","cellSpacing","challenge","charSet","checked","cite","class","classID","className","cols","colSpan","contentEditable","contextMenu","controls","controlsList","coords","crossOrigin","dangerouslySetInnerHTML","data","dateTime","defaultChecked","defaultValue","defer","dir","disabled","disablePictureInPicture","disableRemotePlayback","download","draggable","encType","enterKeyHint","for","form","formMethod","formAction","formEncType","formNoValidate","formTarget","frameBorder","headers","height","hidden","high","href","hrefLang","htmlFor","httpEquiv","icon","id","inputMode","integrity","is","itemID","itemProp","itemRef","itemScope","itemType","keyParams","keyType","kind","label","lang","list","loop","low","manifest","marginWidth","marginHeight","max","maxLength","media","mediaGroup","method","min","minLength","multiple","muted","noModule","nonce","noValidate","open","optimum","pattern","placeholder","playsInline","poster","preload","profile","radioGroup","readOnly","referrerPolicy","rel","required","reversed","role","rows","rowSpan","sandbox","scope","scoped","scrolling","seamless","selected","shape","size","sizes","span","spellCheck","src","srcDoc","srcLang","srcSet","start","step","style","summary","tabIndex","target","title","useMap","width","wmode","wrap","about","accentHeight","accumulate","additive","alignmentBaseline","allowReorder","alphabetic","amplitude","arabicForm","ascent","attributeType","autoReverse","azimuth","baseFrequency","baselineShift","baseProfile","bbox","begin","bias","by","calcMode","capHeight","clip","clipPath","clipPathUnits","clipRule","color","colorInterpolation","colorInterpolationFilters","colorProfile","colorRendering","contentScriptType","contentStyleType","cursor","cx","cy","d","datatype","decelerate","descent","diffuseConstant","direction","display","divisor","dominantBaseline","dur","dx","dy","edgeMode","elevation","enableBackground","end","exponent","externalResourcesRequired","fill","fillOpacity","fillRule","filter","filterRes","filterUnits","floodOpacity","floodColor","focusable","fontFamily","fontSize","fontSizeAdjust","fontStretch","fontStyle","fontVariant","fontWeight","format","fx","fy","g1","g2","glyphName","glyphOrientationHorizontal","glyphOrientationVertical","glyphRef","gradientTransform","gradientUnits","hanging","horizAdvX","horizOriginX","ideographic","imageRendering","in2","in","inlist","intercept","k1","k2","k3","k4","k","kernelMatrix","kernelUnitLength","kerning","keyPoints","keySplines","keyTimes","lengthAdjust","letterSpacing","lightingColor","limitingConeAngle","local","markerEnd","markerHeight","markerMid","markerStart","markerUnits","markerWidth","mask","maskContentUnits","maskUnits","mathematical","mode","numOctaves","offset","opacity","operator","order","orient","orientation","origin","overflow","overlinePosition","overlineThickness","paintOrder","panose1","pathLength","patternContentUnits","patternTransform","patternUnits","pointerEvents","points","pointsAtX","pointsAtY","pointsAtZ","prefix","preserveAlpha","preserveAspectRatio","primitiveUnits","property","r","radius","refX","refY","renderingIntent","repeatCount","repeatDur","requiredExtensions","requiredFeatures","resource","restart","results","rotate","rx","ry","scale","security","seed","shapeRendering","slope","spacing","specularConstant","specularExponent","speed","spreadMethod","startOffset","stdDeviation","stemh","stemv","stitchTiles","stopColor","stopOpacity","strikethroughPosition","strikethroughThickness","string","stroke","strokeDasharray","strokeDashoffset","strokeLinecap","strokeLinejoin","strokeMiterlimit","strokeWidth","strokeOpacity","suppressContentEditableWarning","suppressHydrationWarning","surfaceScale","systemLanguage","tableValues","targetX","targetY","textAnchor","textDecoration","textLength","textRendering","to","transform","typeof","u1","u2","underlinePosition","underlineThickness","unicode","unicodeBidi","unicodeRange","unitsPerEm","unselectable","vAlphabetic","values","vectorEffect","version","vertAdvY","vertOriginX","vertOriginY","vHanging","vIdeographic","viewBox","viewTarget","visibility","vMathematical","vocab","widths","wordSpacing","writingMode","x1","x2","x","xChannelSelector","xHeight","xlinkActuate","xlinkArcrole","xlinkHref","xlinkRole","xlinkShow","xlinkTitle","xlinkType","xmlBase","xmlLang","xmlns","xmlnsXlink","xmlSpace","y1","y2","y","yChannelSelector","z","zoomAndPan","__importDefault","mod","__esModule","style_to_object_1","utilities_1","output","camelCase","parse","StyleToObject","declaration","declarations","hasIterator","COMMENT_REGEX","NEWLINE_REGEX","WHITESPACE_REGEX","PROPERTY_REGEX","COLON_REGEX","VALUE_REGEX","SEMICOLON_REGEX","TRIM_REGEX","trim","str","lineno","column","updatePosition","lines","lastIndexOf","position","line","Position","whitespace","source","errorsList","error","msg","reason","filename","silent","re","m","exec","comments","rules","c","comment","pos","charAt","prop","val","ret","decl","decls","CUSTOM_PROPERTY_REGEX","HYPHEN_REGEX","NO_HYPHEN_REGEX","VENDOR_PREFIX_REGEX","MS_VENDOR_PREFIX_REGEX","character","trimHyphen","concat","skipCamelCase","reactCompat","React","utilities","setStyleProp","canTextBeChildOfNode","skipAttributesToProps","PRESERVE_CUSTOM_ATTRIBUTES","isCustomComponent","attribs","isWhitespace","replaceElement","props","library","cloneElement","isValidElement","hasReplace","returnFirstArg","key","__html","ReactPropTypesSecret","emptyFunction","emptyFunctionWithReset","resetWarningCache","shim","componentName","location","propFullName","secret","getShim","isRequired","ReactPropTypes","array","bool","func","number","object","symbol","any","arrayOf","elementType","instanceOf","objectOf","oneOf","oneOfType","exact","checkPropTypes","PropTypes","reactProperty","UNCONTROLLED_COMPONENT_ATTRIBUTES","UNCONTROLLED_COMPONENT_NAMES","VALUE_ONLY_INPUTS","reset","submit","getPropName","attributeNameLowerCased","attributeValue","propertyInfo","inputIsValueOnly","styleToJS","RESERVED_SVG_MATHML_ELEMENTS","Set","STYLE_TO_JS_OPTIONS","split","ELEMENTS_WITH_NO_TEXT_CHILDREN","invertObject","obj","override","isOverridePresent","overrides","has","arg","ElementType","Root","Directive","Script","Style","Tag","CDATA","Doctype","Node","startIndex","endIndex","recursive","cloneNode","DataNode","super","arguments","NodeWithChildren","_a","map","_b","namespace","elem","isCDATA","isText","isComment","isDirective","isDocument","hasChildren","cloneChildren","clone","child","instruction","sourceCodeLocation","childs","defaultOpts","withStartIndices","withEndIndices","xmlMode","callback","elementCB","dom","root","tagStack","lastNode","parser","undefined","handleCallback","pop","addNode","text","previousSibling"],"mappings":"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","file":"4.525664b3262c45d3d942.js","sourcesContent":["var domhandler = require('domhandler');\nvar htmlToDOM = require('html-dom-parser');\n\nvar attributesToProps = require('./lib/attributes-to-props');\nvar domToReact = require('./lib/dom-to-react');\n\n// support backwards compatibility for ES Module\nhtmlToDOM =\n  /* istanbul ignore next */\n  typeof htmlToDOM.default === 'function' ? htmlToDOM.default : htmlToDOM;\n\nvar domParserOptions = { lowerCaseAttributeNames: false };\n\n/**\n * Converts HTML string to React elements.\n *\n * @param {string} html - HTML string.\n * @param {object} [options] - Parser options.\n * @param {object} [options.htmlparser2] - htmlparser2 options.\n * @param {object} [options.library] - Library for React, Preact, etc.\n * @param {Function} [options.replace] - Replace method.\n * @returns {JSX.Element|JSX.Element[]|string} - React element(s), empty array, or string.\n */\nfunction HTMLReactParser(html, options) {\n  if (typeof html !== 'string') {\n    throw new TypeError('First argument must be a string');\n  }\n  if (html === '') {\n    return [];\n  }\n  options = options || {};\n  return domToReact(\n    htmlToDOM(html, options.htmlparser2 || domParserOptions),\n    options\n  );\n}\n\nHTMLReactParser.domToReact = domToReact;\nHTMLReactParser.htmlToDOM = htmlToDOM;\nHTMLReactParser.attributesToProps = attributesToProps;\n\n// domhandler\nHTMLReactParser.Comment = domhandler.Comment;\nHTMLReactParser.Element = domhandler.Element;\nHTMLReactParser.ProcessingInstruction = domhandler.ProcessingInstruction;\nHTMLReactParser.Text = domhandler.Text;\n\n// support CommonJS and ES Modules\nmodule.exports = HTMLReactParser;\nHTMLReactParser.default = HTMLReactParser;\n","import domparser from './domparser.js';\nimport utilities from './utilities.js';\n\nvar formatDOM = utilities.formatDOM;\n\nvar DIRECTIVE_REGEX = /<(![a-zA-Z\\s]+)>/; // e.g., <!doctype html>\n\n/**\n * Parses HTML string to DOM nodes in browser.\n *\n * @param  {string} html  - HTML markup.\n * @return {DomElement[]} - DOM elements.\n */\nexport default function HTMLDOMParser(html) {\n  if (typeof html !== 'string') {\n    throw new TypeError('First argument must be a string');\n  }\n\n  if (html === '') {\n    return [];\n  }\n\n  // match directive\n  var match = html.match(DIRECTIVE_REGEX);\n  var directive;\n\n  if (match && match[1]) {\n    directive = match[1];\n  }\n\n  return formatDOM(domparser(html), null, directive);\n}\n","// constants\nvar HTML = 'html';\nvar HEAD = 'head';\nvar BODY = 'body';\nvar FIRST_TAG_REGEX = /<([a-zA-Z]+[0-9]?)/; // e.g., <h1>\n// match-all-characters in case of newlines (DOTALL)\nvar HEAD_TAG_REGEX = /<head[^]*>/i;\nvar BODY_TAG_REGEX = /<body[^]*>/i;\n\n// falls back to `parseFromString` if `createHTMLDocument` cannot be used\nvar parseFromDocument = function () {\n  throw new Error(\n    'This browser does not support `document.implementation.createHTMLDocument`'\n  );\n};\n\nvar parseFromString = function () {\n  throw new Error(\n    'This browser does not support `DOMParser.prototype.parseFromString`'\n  );\n};\n\nvar DOMParser = typeof window === 'object' && window.DOMParser;\n\n/**\n * DOMParser (performance: slow).\n *\n * @see https://developer.mozilla.org/docs/Web/API/DOMParser#Parsing_an_SVG_or_HTML_document\n */\nif (typeof DOMParser === 'function') {\n  var domParser = new DOMParser();\n  var mimeType = 'text/html';\n\n  /**\n   * Creates an HTML document using `DOMParser.parseFromString`.\n   *\n   * @param  {string} html      - The HTML string.\n   * @param  {string} [tagName] - The element to render the HTML (with 'body' as fallback).\n   * @return {HTMLDocument}\n   */\n  parseFromString = function (html, tagName) {\n    if (tagName) {\n      html = '<' + tagName + '>' + html + '</' + tagName + '>';\n    }\n\n    return domParser.parseFromString(html, mimeType);\n  };\n\n  parseFromDocument = parseFromString;\n}\n\n/**\n * DOMImplementation (performance: fair).\n *\n * @see https://developer.mozilla.org/docs/Web/API/DOMImplementation/createHTMLDocument\n */\nif (typeof document === 'object' && document.implementation) {\n  var doc = document.implementation.createHTMLDocument();\n\n  /**\n   * Use HTML document created by `document.implementation.createHTMLDocument`.\n   *\n   * @param  {string} html      - The HTML string.\n   * @param  {string} [tagName] - The element to render the HTML (with 'body' as fallback).\n   * @return {HTMLDocument}\n   */\n  parseFromDocument = function (html, tagName) {\n    if (tagName) {\n      var element = doc.documentElement.querySelector(tagName);\n      element.innerHTML = html;\n      return doc;\n    }\n\n    doc.documentElement.innerHTML = html;\n    return doc;\n  };\n}\n\n/**\n * Template (performance: fast).\n *\n * @see https://developer.mozilla.org/docs/Web/HTML/Element/template\n */\nvar template =\n  typeof document === 'object' ? document.createElement('template') : {};\n\nvar parseFromTemplate;\n\nif (template.content) {\n  /**\n   * Uses a template element (content fragment) to parse HTML.\n   *\n   * @param  {string} html - The HTML string.\n   * @return {NodeList}\n   */\n  parseFromTemplate = function (html) {\n    template.innerHTML = html;\n    return template.content.childNodes;\n  };\n}\n\n/**\n * Parses HTML string to DOM nodes.\n *\n * @param  {string}   html - HTML markup.\n * @return {NodeList}\n */\nfunction domparser(html) {\n  var firstTagName;\n  var match = html.match(FIRST_TAG_REGEX);\n\n  if (match && match[1]) {\n    firstTagName = match[1].toLowerCase();\n  }\n\n  var doc;\n  var element;\n  var elements;\n\n  switch (firstTagName) {\n    case HTML:\n      doc = parseFromString(html);\n\n      // the created document may come with filler head/body elements,\n      // so make sure to remove them if they don't actually exist\n      if (!HEAD_TAG_REGEX.test(html)) {\n        element = doc.querySelector(HEAD);\n        if (element) {\n          element.parentNode.removeChild(element);\n        }\n      }\n\n      if (!BODY_TAG_REGEX.test(html)) {\n        element = doc.querySelector(BODY);\n        if (element) {\n          element.parentNode.removeChild(element);\n        }\n      }\n\n      return doc.querySelectorAll(HTML);\n\n    case HEAD:\n    case BODY:\n      doc = parseFromDocument(html);\n      elements = doc.querySelectorAll(firstTagName);\n\n      // if there's a sibling element, then return both elements\n      if (BODY_TAG_REGEX.test(html) && HEAD_TAG_REGEX.test(html)) {\n        return elements[0].parentNode.childNodes;\n      }\n      return elements;\n\n    // low-level tag or text\n    default:\n      if (parseFromTemplate) {\n        return parseFromTemplate(html);\n      }\n      element = parseFromDocument(html, BODY).querySelector(BODY);\n      return element.childNodes;\n  }\n}\n\nmodule.exports = domparser;\n","var domhandler = require('domhandler');\nvar constants = require('./constants');\n\nvar CASE_SENSITIVE_TAG_NAMES = constants.CASE_SENSITIVE_TAG_NAMES;\n\nvar Comment = domhandler.Comment;\nvar Element = domhandler.Element;\nvar ProcessingInstruction = domhandler.ProcessingInstruction;\nvar Text = domhandler.Text;\n\nvar caseSensitiveTagNamesMap = {};\nvar tagName;\n\nfor (var i = 0, len = CASE_SENSITIVE_TAG_NAMES.length; i < len; i++) {\n  tagName = CASE_SENSITIVE_TAG_NAMES[i];\n  caseSensitiveTagNamesMap[tagName.toLowerCase()] = tagName;\n}\n\n/**\n * Gets case-sensitive tag name.\n *\n * @param {string} tagName - Tag name in lowercase.\n * @returns {string|undefined} - Case-sensitive tag name.\n */\nfunction getCaseSensitiveTagName(tagName) {\n  return caseSensitiveTagNamesMap[tagName];\n}\n\n/**\n * Formats DOM attributes to a hash map.\n *\n * @param {NamedNodeMap} attributes - List of attributes.\n * @returns {object} - Map of attribute name to value.\n */\nfunction formatAttributes(attributes) {\n  var result = {};\n  var attribute;\n  // `NamedNodeMap` is array-like\n  for (var i = 0, len = attributes.length; i < len; i++) {\n    attribute = attributes[i];\n    result[attribute.name] = attribute.value;\n  }\n  return result;\n}\n\n/**\n * Corrects the tag name if it is case-sensitive (SVG).\n * Otherwise, returns the lowercase tag name (HTML).\n *\n * @param {string} tagName - Lowercase tag name.\n * @returns {string} - Formatted tag name.\n */\nfunction formatTagName(tagName) {\n  tagName = tagName.toLowerCase();\n  var caseSensitiveTagName = getCaseSensitiveTagName(tagName);\n  if (caseSensitiveTagName) {\n    return caseSensitiveTagName;\n  }\n  return tagName;\n}\n\n/**\n * Transforms DOM nodes to `domhandler` nodes.\n *\n * @param {NodeList} nodes - DOM nodes.\n * @param {Element|null} [parent=null] - Parent node.\n * @param {string} [directive] - Directive.\n * @returns {Array<Comment|Element|ProcessingInstruction|Text>}\n */\nfunction formatDOM(nodes, parent, directive) {\n  parent = parent || null;\n  var result = [];\n  var tagName;\n\n  for (var index = 0, len = nodes.length; index < len; index++) {\n    var node = nodes[index];\n    var current;\n\n    // set the node data given the type\n    switch (node.nodeType) {\n      case 1:\n        tagName = formatTagName(node.nodeName);\n        // script, style, or tag\n        current = new Element(tagName, formatAttributes(node.attributes));\n        current.children = formatDOM(\n          // template children are on content\n          tagName === 'template' ? node.content.childNodes : node.childNodes,\n          current\n        );\n        break;\n\n      case 3:\n        current = new Text(node.nodeValue);\n        break;\n\n      case 8:\n        current = new Comment(node.nodeValue);\n        break;\n\n      default:\n        continue;\n    }\n\n    // set previous node next\n    var prev = result[index - 1] || null;\n    if (prev) {\n      prev.next = current;\n    }\n\n    // set properties for current node\n    current.parent = parent;\n    current.prev = prev;\n    current.next = null;\n\n    result.push(current);\n  }\n\n  if (directive) {\n    current = new ProcessingInstruction(\n      directive.substring(0, directive.indexOf(' ')).toLowerCase(),\n      directive\n    );\n    current.next = result[0] || null;\n    current.parent = parent;\n    result.unshift(current);\n\n    if (result[1]) {\n      result[1].prev = result[0];\n    }\n  }\n\n  return result;\n}\n\nexports.formatAttributes = formatAttributes;\nexports.formatDOM = formatDOM;\n","/**\n * SVG elements are case-sensitive.\n *\n * @see {@link https://developer.mozilla.org/docs/Web/SVG/Element#svg_elements_a_to_z}\n */\nexports.CASE_SENSITIVE_TAG_NAMES = [\n  'animateMotion',\n  'animateTransform',\n  'clipPath',\n  'feBlend',\n  'feColorMatrix',\n  'feComponentTransfer',\n  'feComposite',\n  'feConvolveMatrix',\n  'feDiffuseLighting',\n  'feDisplacementMap',\n  'feDropShadow',\n  'feFlood',\n  'feFuncA',\n  'feFuncB',\n  'feFuncG',\n  'feFuncR',\n  'feGaussianBlur',\n  'feImage',\n  'feMerge',\n  'feMergeNode',\n  'feMorphology',\n  'feOffset',\n  'fePointLight',\n  'feSpecularLighting',\n  'feSpotLight',\n  'feTile',\n  'feTurbulence',\n  'foreignObject',\n  'linearGradient',\n  'radialGradient',\n  'textPath'\n];\n","'use strict';\n\nObject.defineProperty(exports, '__esModule', { value: true });\n\nfunction _slicedToArray(arr, i) {\n  return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest();\n}\n\nfunction _arrayWithHoles(arr) {\n  if (Array.isArray(arr)) return arr;\n}\n\nfunction _iterableToArrayLimit(arr, i) {\n  var _i = arr == null ? null : typeof Symbol !== \"undefined\" && arr[Symbol.iterator] || arr[\"@@iterator\"];\n\n  if (_i == null) return;\n  var _arr = [];\n  var _n = true;\n  var _d = false;\n\n  var _s, _e;\n\n  try {\n    for (_i = _i.call(arr); !(_n = (_s = _i.next()).done); _n = true) {\n      _arr.push(_s.value);\n\n      if (i && _arr.length === i) break;\n    }\n  } catch (err) {\n    _d = true;\n    _e = err;\n  } finally {\n    try {\n      if (!_n && _i[\"return\"] != null) _i[\"return\"]();\n    } finally {\n      if (_d) throw _e;\n    }\n  }\n\n  return _arr;\n}\n\nfunction _unsupportedIterableToArray(o, minLen) {\n  if (!o) return;\n  if (typeof o === \"string\") return _arrayLikeToArray(o, minLen);\n  var n = Object.prototype.toString.call(o).slice(8, -1);\n  if (n === \"Object\" && o.constructor) n = o.constructor.name;\n  if (n === \"Map\" || n === \"Set\") return Array.from(o);\n  if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen);\n}\n\nfunction _arrayLikeToArray(arr, len) {\n  if (len == null || len > arr.length) len = arr.length;\n\n  for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i];\n\n  return arr2;\n}\n\nfunction _nonIterableRest() {\n  throw new TypeError(\"Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\");\n}\n\n// A reserved attribute.\n// It is handled by React separately and shouldn't be written to the DOM.\nvar RESERVED = 0; // A simple string attribute.\n// Attributes that aren't in the filter are presumed to have this type.\n\nvar STRING = 1; // A string attribute that accepts booleans in React. In HTML, these are called\n// \"enumerated\" attributes with \"true\" and \"false\" as possible values.\n// When true, it should be set to a \"true\" string.\n// When false, it should be set to a \"false\" string.\n\nvar BOOLEANISH_STRING = 2; // A real boolean attribute.\n// When true, it should be present (set either to an empty string or its name).\n// When false, it should be omitted.\n\nvar BOOLEAN = 3; // An attribute that can be used as a flag as well as with a value.\n// When true, it should be present (set either to an empty string or its name).\n// When false, it should be omitted.\n// For any other value, should be present with that value.\n\nvar OVERLOADED_BOOLEAN = 4; // An attribute that must be numeric or parse as a numeric.\n// When falsy, it should be removed.\n\nvar NUMERIC = 5; // An attribute that must be positive numeric or parse as a positive numeric.\n// When falsy, it should be removed.\n\nvar POSITIVE_NUMERIC = 6;\nfunction getPropertyInfo(name) {\n  return properties.hasOwnProperty(name) ? properties[name] : null;\n}\n\nfunction PropertyInfoRecord(name, type, mustUseProperty, attributeName, attributeNamespace, sanitizeURL, removeEmptyString) {\n  this.acceptsBooleans = type === BOOLEANISH_STRING || type === BOOLEAN || type === OVERLOADED_BOOLEAN;\n  this.attributeName = attributeName;\n  this.attributeNamespace = attributeNamespace;\n  this.mustUseProperty = mustUseProperty;\n  this.propertyName = name;\n  this.type = type;\n  this.sanitizeURL = sanitizeURL;\n  this.removeEmptyString = removeEmptyString;\n} // When adding attributes to this list, be sure to also add them to\n// the `possibleStandardNames` module to ensure casing and incorrect\n// name warnings.\n\n\nvar properties = {}; // These props are reserved by React. They shouldn't be written to the DOM.\n\nvar reservedProps = ['children', 'dangerouslySetInnerHTML', // TODO: This prevents the assignment of defaultValue to regular\n// elements (not just inputs). Now that ReactDOMInput assigns to the\n// defaultValue property -- do we need this?\n'defaultValue', 'defaultChecked', 'innerHTML', 'suppressContentEditableWarning', 'suppressHydrationWarning', 'style'];\nreservedProps.forEach(function (name) {\n  properties[name] = new PropertyInfoRecord(name, RESERVED, false, // mustUseProperty\n  name, // attributeName\n  null, // attributeNamespace\n  false, // sanitizeURL\n  false);\n}); // A few React string attributes have a different name.\n// This is a mapping from React prop names to the attribute names.\n\n[['acceptCharset', 'accept-charset'], ['className', 'class'], ['htmlFor', 'for'], ['httpEquiv', 'http-equiv']].forEach(function (_ref) {\n  var _ref2 = _slicedToArray(_ref, 2),\n      name = _ref2[0],\n      attributeName = _ref2[1];\n\n  properties[name] = new PropertyInfoRecord(name, STRING, false, // mustUseProperty\n  attributeName, // attributeName\n  null, // attributeNamespace\n  false, // sanitizeURL\n  false);\n}); // These are \"enumerated\" HTML attributes that accept \"true\" and \"false\".\n// In React, we let users pass `true` and `false` even though technically\n// these aren't boolean attributes (they are coerced to strings).\n\n['contentEditable', 'draggable', 'spellCheck', 'value'].forEach(function (name) {\n  properties[name] = new PropertyInfoRecord(name, BOOLEANISH_STRING, false, // mustUseProperty\n  name.toLowerCase(), // attributeName\n  null, // attributeNamespace\n  false, // sanitizeURL\n  false);\n}); // These are \"enumerated\" SVG attributes that accept \"true\" and \"false\".\n// In React, we let users pass `true` and `false` even though technically\n// these aren't boolean attributes (they are coerced to strings).\n// Since these are SVG attributes, their attribute names are case-sensitive.\n\n['autoReverse', 'externalResourcesRequired', 'focusable', 'preserveAlpha'].forEach(function (name) {\n  properties[name] = new PropertyInfoRecord(name, BOOLEANISH_STRING, false, // mustUseProperty\n  name, // attributeName\n  null, // attributeNamespace\n  false, // sanitizeURL\n  false);\n}); // These are HTML boolean attributes.\n\n['allowFullScreen', 'async', // Note: there is a special case that prevents it from being written to the DOM\n// on the client side because the browsers are inconsistent. Instead we call focus().\n'autoFocus', 'autoPlay', 'controls', 'default', 'defer', 'disabled', 'disablePictureInPicture', 'disableRemotePlayback', 'formNoValidate', 'hidden', 'loop', 'noModule', 'noValidate', 'open', 'playsInline', 'readOnly', 'required', 'reversed', 'scoped', 'seamless', // Microdata\n'itemScope'].forEach(function (name) {\n  properties[name] = new PropertyInfoRecord(name, BOOLEAN, false, // mustUseProperty\n  name.toLowerCase(), // attributeName\n  null, // attributeNamespace\n  false, // sanitizeURL\n  false);\n}); // These are the few React props that we set as DOM properties\n// rather than attributes. These are all booleans.\n\n['checked', // Note: `option.selected` is not updated if `select.multiple` is\n// disabled with `removeAttribute`. We have special logic for handling this.\n'multiple', 'muted', 'selected' // NOTE: if you add a camelCased prop to this list,\n// you'll need to set attributeName to name.toLowerCase()\n// instead in the assignment below.\n].forEach(function (name) {\n  properties[name] = new PropertyInfoRecord(name, BOOLEAN, true, // mustUseProperty\n  name, // attributeName\n  null, // attributeNamespace\n  false, // sanitizeURL\n  false);\n}); // These are HTML attributes that are \"overloaded booleans\": they behave like\n// booleans, but can also accept a string value.\n\n['capture', 'download' // NOTE: if you add a camelCased prop to this list,\n// you'll need to set attributeName to name.toLowerCase()\n// instead in the assignment below.\n].forEach(function (name) {\n  properties[name] = new PropertyInfoRecord(name, OVERLOADED_BOOLEAN, false, // mustUseProperty\n  name, // attributeName\n  null, // attributeNamespace\n  false, // sanitizeURL\n  false);\n}); // These are HTML attributes that must be positive numbers.\n\n['cols', 'rows', 'size', 'span' // NOTE: if you add a camelCased prop to this list,\n// you'll need to set attributeName to name.toLowerCase()\n// instead in the assignment below.\n].forEach(function (name) {\n  properties[name] = new PropertyInfoRecord(name, POSITIVE_NUMERIC, false, // mustUseProperty\n  name, // attributeName\n  null, // attributeNamespace\n  false, // sanitizeURL\n  false);\n}); // These are HTML attributes that must be numbers.\n\n['rowSpan', 'start'].forEach(function (name) {\n  properties[name] = new PropertyInfoRecord(name, NUMERIC, false, // mustUseProperty\n  name.toLowerCase(), // attributeName\n  null, // attributeNamespace\n  false, // sanitizeURL\n  false);\n});\nvar CAMELIZE = /[\\-\\:]([a-z])/g;\n\nvar capitalize = function capitalize(token) {\n  return token[1].toUpperCase();\n}; // This is a list of all SVG attributes that need special casing, namespacing,\n// or boolean value assignment. Regular attributes that just accept strings\n// and have the same names are omitted, just like in the HTML attribute filter.\n// Some of these attributes can be hard to find. This list was created by\n// scraping the MDN documentation.\n\n\n['accent-height', 'alignment-baseline', 'arabic-form', 'baseline-shift', 'cap-height', 'clip-path', 'clip-rule', 'color-interpolation', 'color-interpolation-filters', 'color-profile', 'color-rendering', 'dominant-baseline', 'enable-background', 'fill-opacity', 'fill-rule', 'flood-color', 'flood-opacity', 'font-family', 'font-size', 'font-size-adjust', 'font-stretch', 'font-style', 'font-variant', 'font-weight', 'glyph-name', 'glyph-orientation-horizontal', 'glyph-orientation-vertical', 'horiz-adv-x', 'horiz-origin-x', 'image-rendering', 'letter-spacing', 'lighting-color', 'marker-end', 'marker-mid', 'marker-start', 'overline-position', 'overline-thickness', 'paint-order', 'panose-1', 'pointer-events', 'rendering-intent', 'shape-rendering', 'stop-color', 'stop-opacity', 'strikethrough-position', 'strikethrough-thickness', 'stroke-dasharray', 'stroke-dashoffset', 'stroke-linecap', 'stroke-linejoin', 'stroke-miterlimit', 'stroke-opacity', 'stroke-width', 'text-anchor', 'text-decoration', 'text-rendering', 'underline-position', 'underline-thickness', 'unicode-bidi', 'unicode-range', 'units-per-em', 'v-alphabetic', 'v-hanging', 'v-ideographic', 'v-mathematical', 'vector-effect', 'vert-adv-y', 'vert-origin-x', 'vert-origin-y', 'word-spacing', 'writing-mode', 'xmlns:xlink', 'x-height' // NOTE: if you add a camelCased prop to this list,\n// you'll need to set attributeName to name.toLowerCase()\n// instead in the assignment below.\n].forEach(function (attributeName) {\n  var name = attributeName.replace(CAMELIZE, capitalize);\n  properties[name] = new PropertyInfoRecord(name, STRING, false, // mustUseProperty\n  attributeName, null, // attributeNamespace\n  false, // sanitizeURL\n  false);\n}); // String SVG attributes with the xlink namespace.\n\n['xlink:actuate', 'xlink:arcrole', 'xlink:role', 'xlink:show', 'xlink:title', 'xlink:type' // NOTE: if you add a camelCased prop to this list,\n// you'll need to set attributeName to name.toLowerCase()\n// instead in the assignment below.\n].forEach(function (attributeName) {\n  var name = attributeName.replace(CAMELIZE, capitalize);\n  properties[name] = new PropertyInfoRecord(name, STRING, false, // mustUseProperty\n  attributeName, 'http://www.w3.org/1999/xlink', false, // sanitizeURL\n  false);\n}); // String SVG attributes with the xml namespace.\n\n['xml:base', 'xml:lang', 'xml:space' // NOTE: if you add a camelCased prop to this list,\n// you'll need to set attributeName to name.toLowerCase()\n// instead in the assignment below.\n].forEach(function (attributeName) {\n  var name = attributeName.replace(CAMELIZE, capitalize);\n  properties[name] = new PropertyInfoRecord(name, STRING, false, // mustUseProperty\n  attributeName, 'http://www.w3.org/XML/1998/namespace', false, // sanitizeURL\n  false);\n}); // These attribute exists both in HTML and SVG.\n// The attribute name is case-sensitive in SVG so we can't just use\n// the React name like we do for attributes that exist only in HTML.\n\n['tabIndex', 'crossOrigin'].forEach(function (attributeName) {\n  properties[attributeName] = new PropertyInfoRecord(attributeName, STRING, false, // mustUseProperty\n  attributeName.toLowerCase(), // attributeName\n  null, // attributeNamespace\n  false, // sanitizeURL\n  false);\n}); // These attributes accept URLs. These must not allow javascript: URLS.\n// These will also need to accept Trusted Types object in the future.\n\nvar xlinkHref = 'xlinkHref';\nproperties[xlinkHref] = new PropertyInfoRecord('xlinkHref', STRING, false, // mustUseProperty\n'xlink:href', 'http://www.w3.org/1999/xlink', true, // sanitizeURL\nfalse);\n['src', 'href', 'action', 'formAction'].forEach(function (attributeName) {\n  properties[attributeName] = new PropertyInfoRecord(attributeName, STRING, false, // mustUseProperty\n  attributeName.toLowerCase(), // attributeName\n  null, // attributeNamespace\n  true, // sanitizeURL\n  true);\n});\n\nvar _require = require('../lib/possibleStandardNamesOptimized'),\n    CAMELCASE = _require.CAMELCASE,\n    SAME = _require.SAME,\n    possibleStandardNamesOptimized = _require.possibleStandardNames;\n\nvar ATTRIBUTE_NAME_START_CHAR = \":A-Z_a-z\\\\u00C0-\\\\u00D6\\\\u00D8-\\\\u00F6\\\\u00F8-\\\\u02FF\\\\u0370-\\\\u037D\\\\u037F-\\\\u1FFF\\\\u200C-\\\\u200D\\\\u2070-\\\\u218F\\\\u2C00-\\\\u2FEF\\\\u3001-\\\\uD7FF\\\\uF900-\\\\uFDCF\\\\uFDF0-\\\\uFFFD\";\nvar ATTRIBUTE_NAME_CHAR = ATTRIBUTE_NAME_START_CHAR + \"\\\\-.0-9\\\\u00B7\\\\u0300-\\\\u036F\\\\u203F-\\\\u2040\";\n/**\n * Checks whether a property name is a custom attribute.\n *\n * @see {@link https://github.com/facebook/react/blob/15-stable/src/renderers/dom/shared/HTMLDOMPropertyConfig.js#L23-L25}\n *\n * @param {string}\n * @return {boolean}\n */\n\nvar isCustomAttribute = RegExp.prototype.test.bind( // eslint-disable-next-line no-misleading-character-class\nnew RegExp('^(data|aria)-[' + ATTRIBUTE_NAME_CHAR + ']*$'));\nvar possibleStandardNames = Object.keys(possibleStandardNamesOptimized).reduce(function (accumulator, standardName) {\n  var propName = possibleStandardNamesOptimized[standardName];\n\n  if (propName === SAME) {\n    accumulator[standardName] = standardName;\n  } else if (propName === CAMELCASE) {\n    accumulator[standardName.toLowerCase()] = standardName;\n  } else {\n    accumulator[standardName] = propName;\n  }\n\n  return accumulator;\n}, {});\n\nexports.BOOLEAN = BOOLEAN;\nexports.BOOLEANISH_STRING = BOOLEANISH_STRING;\nexports.NUMERIC = NUMERIC;\nexports.OVERLOADED_BOOLEAN = OVERLOADED_BOOLEAN;\nexports.POSITIVE_NUMERIC = POSITIVE_NUMERIC;\nexports.RESERVED = RESERVED;\nexports.STRING = STRING;\nexports.getPropertyInfo = getPropertyInfo;\nexports.isCustomAttribute = isCustomAttribute;\nexports.possibleStandardNames = possibleStandardNames;\n","// An attribute in which the DOM/SVG standard name is the same as the React prop name (e.g., 'accept').\nvar SAME = 0;\nexports.SAME = SAME;\n\n// An attribute in which the React prop name is the camelcased version of the DOM/SVG standard name (e.g., 'acceptCharset').\nvar CAMELCASE = 1;\nexports.CAMELCASE = CAMELCASE;\n\nexports.possibleStandardNames = {\n  accept: 0,\n  acceptCharset: 1,\n  'accept-charset': 'acceptCharset',\n  accessKey: 1,\n  action: 0,\n  allowFullScreen: 1,\n  alt: 0,\n  as: 0,\n  async: 0,\n  autoCapitalize: 1,\n  autoComplete: 1,\n  autoCorrect: 1,\n  autoFocus: 1,\n  autoPlay: 1,\n  autoSave: 1,\n  capture: 0,\n  cellPadding: 1,\n  cellSpacing: 1,\n  challenge: 0,\n  charSet: 1,\n  checked: 0,\n  children: 0,\n  cite: 0,\n  class: 'className',\n  classID: 1,\n  className: 1,\n  cols: 0,\n  colSpan: 1,\n  content: 0,\n  contentEditable: 1,\n  contextMenu: 1,\n  controls: 0,\n  controlsList: 1,\n  coords: 0,\n  crossOrigin: 1,\n  dangerouslySetInnerHTML: 1,\n  data: 0,\n  dateTime: 1,\n  default: 0,\n  defaultChecked: 1,\n  defaultValue: 1,\n  defer: 0,\n  dir: 0,\n  disabled: 0,\n  disablePictureInPicture: 1,\n  disableRemotePlayback: 1,\n  download: 0,\n  draggable: 0,\n  encType: 1,\n  enterKeyHint: 1,\n  for: 'htmlFor',\n  form: 0,\n  formMethod: 1,\n  formAction: 1,\n  formEncType: 1,\n  formNoValidate: 1,\n  formTarget: 1,\n  frameBorder: 1,\n  headers: 0,\n  height: 0,\n  hidden: 0,\n  high: 0,\n  href: 0,\n  hrefLang: 1,\n  htmlFor: 1,\n  httpEquiv: 1,\n  'http-equiv': 'httpEquiv',\n  icon: 0,\n  id: 0,\n  innerHTML: 1,\n  inputMode: 1,\n  integrity: 0,\n  is: 0,\n  itemID: 1,\n  itemProp: 1,\n  itemRef: 1,\n  itemScope: 1,\n  itemType: 1,\n  keyParams: 1,\n  keyType: 1,\n  kind: 0,\n  label: 0,\n  lang: 0,\n  list: 0,\n  loop: 0,\n  low: 0,\n  manifest: 0,\n  marginWidth: 1,\n  marginHeight: 1,\n  max: 0,\n  maxLength: 1,\n  media: 0,\n  mediaGroup: 1,\n  method: 0,\n  min: 0,\n  minLength: 1,\n  multiple: 0,\n  muted: 0,\n  name: 0,\n  noModule: 1,\n  nonce: 0,\n  noValidate: 1,\n  open: 0,\n  optimum: 0,\n  pattern: 0,\n  placeholder: 0,\n  playsInline: 1,\n  poster: 0,\n  preload: 0,\n  profile: 0,\n  radioGroup: 1,\n  readOnly: 1,\n  referrerPolicy: 1,\n  rel: 0,\n  required: 0,\n  reversed: 0,\n  role: 0,\n  rows: 0,\n  rowSpan: 1,\n  sandbox: 0,\n  scope: 0,\n  scoped: 0,\n  scrolling: 0,\n  seamless: 0,\n  selected: 0,\n  shape: 0,\n  size: 0,\n  sizes: 0,\n  span: 0,\n  spellCheck: 1,\n  src: 0,\n  srcDoc: 1,\n  srcLang: 1,\n  srcSet: 1,\n  start: 0,\n  step: 0,\n  style: 0,\n  summary: 0,\n  tabIndex: 1,\n  target: 0,\n  title: 0,\n  type: 0,\n  useMap: 1,\n  value: 0,\n  width: 0,\n  wmode: 0,\n  wrap: 0,\n  about: 0,\n  accentHeight: 1,\n  'accent-height': 'accentHeight',\n  accumulate: 0,\n  additive: 0,\n  alignmentBaseline: 1,\n  'alignment-baseline': 'alignmentBaseline',\n  allowReorder: 1,\n  alphabetic: 0,\n  amplitude: 0,\n  arabicForm: 1,\n  'arabic-form': 'arabicForm',\n  ascent: 0,\n  attributeName: 1,\n  attributeType: 1,\n  autoReverse: 1,\n  azimuth: 0,\n  baseFrequency: 1,\n  baselineShift: 1,\n  'baseline-shift': 'baselineShift',\n  baseProfile: 1,\n  bbox: 0,\n  begin: 0,\n  bias: 0,\n  by: 0,\n  calcMode: 1,\n  capHeight: 1,\n  'cap-height': 'capHeight',\n  clip: 0,\n  clipPath: 1,\n  'clip-path': 'clipPath',\n  clipPathUnits: 1,\n  clipRule: 1,\n  'clip-rule': 'clipRule',\n  color: 0,\n  colorInterpolation: 1,\n  'color-interpolation': 'colorInterpolation',\n  colorInterpolationFilters: 1,\n  'color-interpolation-filters': 'colorInterpolationFilters',\n  colorProfile: 1,\n  'color-profile': 'colorProfile',\n  colorRendering: 1,\n  'color-rendering': 'colorRendering',\n  contentScriptType: 1,\n  contentStyleType: 1,\n  cursor: 0,\n  cx: 0,\n  cy: 0,\n  d: 0,\n  datatype: 0,\n  decelerate: 0,\n  descent: 0,\n  diffuseConstant: 1,\n  direction: 0,\n  display: 0,\n  divisor: 0,\n  dominantBaseline: 1,\n  'dominant-baseline': 'dominantBaseline',\n  dur: 0,\n  dx: 0,\n  dy: 0,\n  edgeMode: 1,\n  elevation: 0,\n  enableBackground: 1,\n  'enable-background': 'enableBackground',\n  end: 0,\n  exponent: 0,\n  externalResourcesRequired: 1,\n  fill: 0,\n  fillOpacity: 1,\n  'fill-opacity': 'fillOpacity',\n  fillRule: 1,\n  'fill-rule': 'fillRule',\n  filter: 0,\n  filterRes: 1,\n  filterUnits: 1,\n  floodOpacity: 1,\n  'flood-opacity': 'floodOpacity',\n  floodColor: 1,\n  'flood-color': 'floodColor',\n  focusable: 0,\n  fontFamily: 1,\n  'font-family': 'fontFamily',\n  fontSize: 1,\n  'font-size': 'fontSize',\n  fontSizeAdjust: 1,\n  'font-size-adjust': 'fontSizeAdjust',\n  fontStretch: 1,\n  'font-stretch': 'fontStretch',\n  fontStyle: 1,\n  'font-style': 'fontStyle',\n  fontVariant: 1,\n  'font-variant': 'fontVariant',\n  fontWeight: 1,\n  'font-weight': 'fontWeight',\n  format: 0,\n  from: 0,\n  fx: 0,\n  fy: 0,\n  g1: 0,\n  g2: 0,\n  glyphName: 1,\n  'glyph-name': 'glyphName',\n  glyphOrientationHorizontal: 1,\n  'glyph-orientation-horizontal': 'glyphOrientationHorizontal',\n  glyphOrientationVertical: 1,\n  'glyph-orientation-vertical': 'glyphOrientationVertical',\n  glyphRef: 1,\n  gradientTransform: 1,\n  gradientUnits: 1,\n  hanging: 0,\n  horizAdvX: 1,\n  'horiz-adv-x': 'horizAdvX',\n  horizOriginX: 1,\n  'horiz-origin-x': 'horizOriginX',\n  ideographic: 0,\n  imageRendering: 1,\n  'image-rendering': 'imageRendering',\n  in2: 0,\n  in: 0,\n  inlist: 0,\n  intercept: 0,\n  k1: 0,\n  k2: 0,\n  k3: 0,\n  k4: 0,\n  k: 0,\n  kernelMatrix: 1,\n  kernelUnitLength: 1,\n  kerning: 0,\n  keyPoints: 1,\n  keySplines: 1,\n  keyTimes: 1,\n  lengthAdjust: 1,\n  letterSpacing: 1,\n  'letter-spacing': 'letterSpacing',\n  lightingColor: 1,\n  'lighting-color': 'lightingColor',\n  limitingConeAngle: 1,\n  local: 0,\n  markerEnd: 1,\n  'marker-end': 'markerEnd',\n  markerHeight: 1,\n  markerMid: 1,\n  'marker-mid': 'markerMid',\n  markerStart: 1,\n  'marker-start': 'markerStart',\n  markerUnits: 1,\n  markerWidth: 1,\n  mask: 0,\n  maskContentUnits: 1,\n  maskUnits: 1,\n  mathematical: 0,\n  mode: 0,\n  numOctaves: 1,\n  offset: 0,\n  opacity: 0,\n  operator: 0,\n  order: 0,\n  orient: 0,\n  orientation: 0,\n  origin: 0,\n  overflow: 0,\n  overlinePosition: 1,\n  'overline-position': 'overlinePosition',\n  overlineThickness: 1,\n  'overline-thickness': 'overlineThickness',\n  paintOrder: 1,\n  'paint-order': 'paintOrder',\n  panose1: 0,\n  'panose-1': 'panose1',\n  pathLength: 1,\n  patternContentUnits: 1,\n  patternTransform: 1,\n  patternUnits: 1,\n  pointerEvents: 1,\n  'pointer-events': 'pointerEvents',\n  points: 0,\n  pointsAtX: 1,\n  pointsAtY: 1,\n  pointsAtZ: 1,\n  prefix: 0,\n  preserveAlpha: 1,\n  preserveAspectRatio: 1,\n  primitiveUnits: 1,\n  property: 0,\n  r: 0,\n  radius: 0,\n  refX: 1,\n  refY: 1,\n  renderingIntent: 1,\n  'rendering-intent': 'renderingIntent',\n  repeatCount: 1,\n  repeatDur: 1,\n  requiredExtensions: 1,\n  requiredFeatures: 1,\n  resource: 0,\n  restart: 0,\n  result: 0,\n  results: 0,\n  rotate: 0,\n  rx: 0,\n  ry: 0,\n  scale: 0,\n  security: 0,\n  seed: 0,\n  shapeRendering: 1,\n  'shape-rendering': 'shapeRendering',\n  slope: 0,\n  spacing: 0,\n  specularConstant: 1,\n  specularExponent: 1,\n  speed: 0,\n  spreadMethod: 1,\n  startOffset: 1,\n  stdDeviation: 1,\n  stemh: 0,\n  stemv: 0,\n  stitchTiles: 1,\n  stopColor: 1,\n  'stop-color': 'stopColor',\n  stopOpacity: 1,\n  'stop-opacity': 'stopOpacity',\n  strikethroughPosition: 1,\n  'strikethrough-position': 'strikethroughPosition',\n  strikethroughThickness: 1,\n  'strikethrough-thickness': 'strikethroughThickness',\n  string: 0,\n  stroke: 0,\n  strokeDasharray: 1,\n  'stroke-dasharray': 'strokeDasharray',\n  strokeDashoffset: 1,\n  'stroke-dashoffset': 'strokeDashoffset',\n  strokeLinecap: 1,\n  'stroke-linecap': 'strokeLinecap',\n  strokeLinejoin: 1,\n  'stroke-linejoin': 'strokeLinejoin',\n  strokeMiterlimit: 1,\n  'stroke-miterlimit': 'strokeMiterlimit',\n  strokeWidth: 1,\n  'stroke-width': 'strokeWidth',\n  strokeOpacity: 1,\n  'stroke-opacity': 'strokeOpacity',\n  suppressContentEditableWarning: 1,\n  suppressHydrationWarning: 1,\n  surfaceScale: 1,\n  systemLanguage: 1,\n  tableValues: 1,\n  targetX: 1,\n  targetY: 1,\n  textAnchor: 1,\n  'text-anchor': 'textAnchor',\n  textDecoration: 1,\n  'text-decoration': 'textDecoration',\n  textLength: 1,\n  textRendering: 1,\n  'text-rendering': 'textRendering',\n  to: 0,\n  transform: 0,\n  typeof: 0,\n  u1: 0,\n  u2: 0,\n  underlinePosition: 1,\n  'underline-position': 'underlinePosition',\n  underlineThickness: 1,\n  'underline-thickness': 'underlineThickness',\n  unicode: 0,\n  unicodeBidi: 1,\n  'unicode-bidi': 'unicodeBidi',\n  unicodeRange: 1,\n  'unicode-range': 'unicodeRange',\n  unitsPerEm: 1,\n  'units-per-em': 'unitsPerEm',\n  unselectable: 0,\n  vAlphabetic: 1,\n  'v-alphabetic': 'vAlphabetic',\n  values: 0,\n  vectorEffect: 1,\n  'vector-effect': 'vectorEffect',\n  version: 0,\n  vertAdvY: 1,\n  'vert-adv-y': 'vertAdvY',\n  vertOriginX: 1,\n  'vert-origin-x': 'vertOriginX',\n  vertOriginY: 1,\n  'vert-origin-y': 'vertOriginY',\n  vHanging: 1,\n  'v-hanging': 'vHanging',\n  vIdeographic: 1,\n  'v-ideographic': 'vIdeographic',\n  viewBox: 1,\n  viewTarget: 1,\n  visibility: 0,\n  vMathematical: 1,\n  'v-mathematical': 'vMathematical',\n  vocab: 0,\n  widths: 0,\n  wordSpacing: 1,\n  'word-spacing': 'wordSpacing',\n  writingMode: 1,\n  'writing-mode': 'writingMode',\n  x1: 0,\n  x2: 0,\n  x: 0,\n  xChannelSelector: 1,\n  xHeight: 1,\n  'x-height': 'xHeight',\n  xlinkActuate: 1,\n  'xlink:actuate': 'xlinkActuate',\n  xlinkArcrole: 1,\n  'xlink:arcrole': 'xlinkArcrole',\n  xlinkHref: 1,\n  'xlink:href': 'xlinkHref',\n  xlinkRole: 1,\n  'xlink:role': 'xlinkRole',\n  xlinkShow: 1,\n  'xlink:show': 'xlinkShow',\n  xlinkTitle: 1,\n  'xlink:title': 'xlinkTitle',\n  xlinkType: 1,\n  'xlink:type': 'xlinkType',\n  xmlBase: 1,\n  'xml:base': 'xmlBase',\n  xmlLang: 1,\n  'xml:lang': 'xmlLang',\n  xmlns: 0,\n  'xml:space': 'xmlSpace',\n  xmlnsXlink: 1,\n  'xmlns:xlink': 'xmlnsXlink',\n  xmlSpace: 1,\n  y1: 0,\n  y2: 0,\n  y: 0,\n  yChannelSelector: 1,\n  z: 0,\n  zoomAndPan: 1\n};\n","\"use strict\";\nvar __importDefault = (this && this.__importDefault) || function (mod) {\n    return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar style_to_object_1 = __importDefault(require(\"style-to-object\"));\nvar utilities_1 = require(\"./utilities\");\nfunction StyleToJS(style, options) {\n    var output = {};\n    if (!style || typeof style !== 'string') {\n        return output;\n    }\n    (0, style_to_object_1.default)(style, function (property, value) {\n        if (property && value) {\n            output[(0, utilities_1.camelCase)(property, options)] = value;\n        }\n    });\n    return output;\n}\nexports.default = StyleToJS;\n","import StyleToObject from './index.js';\n\nexport default StyleToObject;\n","var parse = require('inline-style-parser');\n\n/**\n * Parses inline style to object.\n *\n * @example\n * // returns { 'line-height': '42' }\n * StyleToObject('line-height: 42;');\n *\n * @param  {String}      style      - The inline style.\n * @param  {Function}    [iterator] - The iterator function.\n * @return {null|Object}\n */\nfunction StyleToObject(style, iterator) {\n  var output = null;\n  if (!style || typeof style !== 'string') {\n    return output;\n  }\n\n  var declaration;\n  var declarations = parse(style);\n  var hasIterator = typeof iterator === 'function';\n  var property;\n  var value;\n\n  for (var i = 0, len = declarations.length; i < len; i++) {\n    declaration = declarations[i];\n    property = declaration.property;\n    value = declaration.value;\n\n    if (hasIterator) {\n      iterator(property, value, declaration);\n    } else if (value) {\n      output || (output = {});\n      output[property] = value;\n    }\n  }\n\n  return output;\n}\n\nmodule.exports = StyleToObject;\nmodule.exports.default = StyleToObject; // ESM support\n","// http://www.w3.org/TR/CSS21/grammar.html\n// https://github.com/visionmedia/css-parse/pull/49#issuecomment-30088027\nvar COMMENT_REGEX = /\\/\\*[^*]*\\*+([^/*][^*]*\\*+)*\\//g;\n\nvar NEWLINE_REGEX = /\\n/g;\nvar WHITESPACE_REGEX = /^\\s*/;\n\n// declaration\nvar PROPERTY_REGEX = /^(\\*?[-#/*\\\\\\w]+(\\[[0-9a-z_-]+\\])?)\\s*/;\nvar COLON_REGEX = /^:\\s*/;\nvar VALUE_REGEX = /^((?:'(?:\\\\'|.)*?'|\"(?:\\\\\"|.)*?\"|\\([^)]*?\\)|[^};])+)/;\nvar SEMICOLON_REGEX = /^[;\\s]*/;\n\n// https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/String/Trim#Polyfill\nvar TRIM_REGEX = /^\\s+|\\s+$/g;\n\n// strings\nvar NEWLINE = '\\n';\nvar FORWARD_SLASH = '/';\nvar ASTERISK = '*';\nvar EMPTY_STRING = '';\n\n// types\nvar TYPE_COMMENT = 'comment';\nvar TYPE_DECLARATION = 'declaration';\n\n/**\n * @param {String} style\n * @param {Object} [options]\n * @return {Object[]}\n * @throws {TypeError}\n * @throws {Error}\n */\nmodule.exports = function(style, options) {\n  if (typeof style !== 'string') {\n    throw new TypeError('First argument must be a string');\n  }\n\n  if (!style) return [];\n\n  options = options || {};\n\n  /**\n   * Positional.\n   */\n  var lineno = 1;\n  var column = 1;\n\n  /**\n   * Update lineno and column based on `str`.\n   *\n   * @param {String} str\n   */\n  function updatePosition(str) {\n    var lines = str.match(NEWLINE_REGEX);\n    if (lines) lineno += lines.length;\n    var i = str.lastIndexOf(NEWLINE);\n    column = ~i ? str.length - i : column + str.length;\n  }\n\n  /**\n   * Mark position and patch `node.position`.\n   *\n   * @return {Function}\n   */\n  function position() {\n    var start = { line: lineno, column: column };\n    return function(node) {\n      node.position = new Position(start);\n      whitespace();\n      return node;\n    };\n  }\n\n  /**\n   * Store position information for a node.\n   *\n   * @constructor\n   * @property {Object} start\n   * @property {Object} end\n   * @property {undefined|String} source\n   */\n  function Position(start) {\n    this.start = start;\n    this.end = { line: lineno, column: column };\n    this.source = options.source;\n  }\n\n  /**\n   * Non-enumerable source string.\n   */\n  Position.prototype.content = style;\n\n  var errorsList = [];\n\n  /**\n   * Error `msg`.\n   *\n   * @param {String} msg\n   * @throws {Error}\n   */\n  function error(msg) {\n    var err = new Error(\n      options.source + ':' + lineno + ':' + column + ': ' + msg\n    );\n    err.reason = msg;\n    err.filename = options.source;\n    err.line = lineno;\n    err.column = column;\n    err.source = style;\n\n    if (options.silent) {\n      errorsList.push(err);\n    } else {\n      throw err;\n    }\n  }\n\n  /**\n   * Match `re` and return captures.\n   *\n   * @param {RegExp} re\n   * @return {undefined|Array}\n   */\n  function match(re) {\n    var m = re.exec(style);\n    if (!m) return;\n    var str = m[0];\n    updatePosition(str);\n    style = style.slice(str.length);\n    return m;\n  }\n\n  /**\n   * Parse whitespace.\n   */\n  function whitespace() {\n    match(WHITESPACE_REGEX);\n  }\n\n  /**\n   * Parse comments.\n   *\n   * @param {Object[]} [rules]\n   * @return {Object[]}\n   */\n  function comments(rules) {\n    var c;\n    rules = rules || [];\n    while ((c = comment())) {\n      if (c !== false) {\n        rules.push(c);\n      }\n    }\n    return rules;\n  }\n\n  /**\n   * Parse comment.\n   *\n   * @return {Object}\n   * @throws {Error}\n   */\n  function comment() {\n    var pos = position();\n    if (FORWARD_SLASH != style.charAt(0) || ASTERISK != style.charAt(1)) return;\n\n    var i = 2;\n    while (\n      EMPTY_STRING != style.charAt(i) &&\n      (ASTERISK != style.charAt(i) || FORWARD_SLASH != style.charAt(i + 1))\n    ) {\n      ++i;\n    }\n    i += 2;\n\n    if (EMPTY_STRING === style.charAt(i - 1)) {\n      return error('End of comment missing');\n    }\n\n    var str = style.slice(2, i - 2);\n    column += 2;\n    updatePosition(str);\n    style = style.slice(i);\n    column += 2;\n\n    return pos({\n      type: TYPE_COMMENT,\n      comment: str\n    });\n  }\n\n  /**\n   * Parse declaration.\n   *\n   * @return {Object}\n   * @throws {Error}\n   */\n  function declaration() {\n    var pos = position();\n\n    // prop\n    var prop = match(PROPERTY_REGEX);\n    if (!prop) return;\n    comment();\n\n    // :\n    if (!match(COLON_REGEX)) return error(\"property missing ':'\");\n\n    // val\n    var val = match(VALUE_REGEX);\n\n    var ret = pos({\n      type: TYPE_DECLARATION,\n      property: trim(prop[0].replace(COMMENT_REGEX, EMPTY_STRING)),\n      value: val\n        ? trim(val[0].replace(COMMENT_REGEX, EMPTY_STRING))\n        : EMPTY_STRING\n    });\n\n    // ;\n    match(SEMICOLON_REGEX);\n\n    return ret;\n  }\n\n  /**\n   * Parse declarations.\n   *\n   * @return {Object[]}\n   */\n  function declarations() {\n    var decls = [];\n\n    comments(decls);\n\n    // declarations\n    var decl;\n    while ((decl = declaration())) {\n      if (decl !== false) {\n        decls.push(decl);\n        comments(decls);\n      }\n    }\n\n    return decls;\n  }\n\n  whitespace();\n  return declarations();\n};\n\n/**\n * Trim `str`.\n *\n * @param {String} str\n * @return {String}\n */\nfunction trim(str) {\n  return str ? str.replace(TRIM_REGEX, EMPTY_STRING) : EMPTY_STRING;\n}\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.camelCase = void 0;\nvar CUSTOM_PROPERTY_REGEX = /^--[a-zA-Z0-9-]+$/;\nvar HYPHEN_REGEX = /-([a-z])/g;\nvar NO_HYPHEN_REGEX = /^[^-]+$/;\nvar VENDOR_PREFIX_REGEX = /^-(webkit|moz|ms|o|khtml)-/;\nvar MS_VENDOR_PREFIX_REGEX = /^-(ms)-/;\nvar skipCamelCase = function (property) {\n    return !property ||\n        NO_HYPHEN_REGEX.test(property) ||\n        CUSTOM_PROPERTY_REGEX.test(property);\n};\nvar capitalize = function (match, character) {\n    return character.toUpperCase();\n};\nvar trimHyphen = function (match, prefix) { return \"\".concat(prefix, \"-\"); };\nvar camelCase = function (property, options) {\n    if (options === void 0) { options = {}; }\n    if (skipCamelCase(property)) {\n        return property;\n    }\n    property = property.toLowerCase();\n    if (options.reactCompat) {\n        property = property.replace(MS_VENDOR_PREFIX_REGEX, trimHyphen);\n    }\n    else {\n        property = property.replace(VENDOR_PREFIX_REGEX, trimHyphen);\n    }\n    return property.replace(HYPHEN_REGEX, capitalize);\n};\nexports.camelCase = camelCase;\n","var React = require('react');\nvar attributesToProps = require('./attributes-to-props');\nvar utilities = require('./utilities');\n\nvar setStyleProp = utilities.setStyleProp;\nvar canTextBeChildOfNode = utilities.canTextBeChildOfNode;\n\n/**\n * Converts DOM nodes to JSX element(s).\n *\n * @param {DomElement[]} nodes - DOM nodes.\n * @param {object} [options={}] - Options.\n * @param {Function} [options.replace] - Replacer.\n * @param {Function} [options.transform] - Transform.\n * @param {object} [options.library] - Library (React, Preact, etc.).\n * @returns - String or JSX element(s).\n */\nfunction domToReact(nodes, options) {\n  options = options || {};\n\n  var library = options.library || React;\n  var cloneElement = library.cloneElement;\n  var createElement = library.createElement;\n  var isValidElement = library.isValidElement;\n\n  var result = [];\n  var node;\n  var isWhitespace;\n  var hasReplace = typeof options.replace === 'function';\n  var transform = options.transform || utilities.returnFirstArg;\n  var replaceElement;\n  var props;\n  var children;\n  var trim = options.trim;\n\n  for (var i = 0, len = nodes.length; i < len; i++) {\n    node = nodes[i];\n\n    // replace with custom React element (if present)\n    if (hasReplace) {\n      replaceElement = options.replace(node);\n\n      if (isValidElement(replaceElement)) {\n        // set \"key\" prop for sibling elements\n        // https://fb.me/react-warning-keys\n        if (len > 1) {\n          replaceElement = cloneElement(replaceElement, {\n            key: replaceElement.key || i\n          });\n        }\n        result.push(transform(replaceElement, node, i));\n        continue;\n      }\n    }\n\n    if (node.type === 'text') {\n      isWhitespace = !node.data.trim().length;\n\n      if (isWhitespace && node.parent && !canTextBeChildOfNode(node.parent)) {\n        // We have a whitespace node that can't be nested in its parent\n        // so skip it\n        continue;\n      }\n\n      if (trim && isWhitespace) {\n        // Trim is enabled and we have a whitespace node\n        // so skip it\n        continue;\n      }\n\n      // We have a text node that's not whitespace and it can be nested\n      // in its parent so add it to the results\n      result.push(transform(node.data, node, i));\n      continue;\n    }\n\n    props = node.attribs;\n    if (skipAttributesToProps(node)) {\n      setStyleProp(props.style, props);\n    } else if (props) {\n      props = attributesToProps(props, node.name);\n    }\n\n    children = null;\n\n    switch (node.type) {\n      case 'script':\n      case 'style':\n        // prevent text in <script> or <style> from being escaped\n        // https://reactjs.org/docs/dom-elements.html#dangerouslysetinnerhtml\n        if (node.children[0]) {\n          props.dangerouslySetInnerHTML = {\n            __html: node.children[0].data\n          };\n        }\n        break;\n\n      case 'tag':\n        // setting textarea value in children is an antipattern in React\n        // https://reactjs.org/docs/forms.html#the-textarea-tag\n        if (node.name === 'textarea' && node.children[0]) {\n          props.defaultValue = node.children[0].data;\n        } else if (node.children && node.children.length) {\n          // continue recursion of creating React elements (if applicable)\n          children = domToReact(node.children, options);\n        }\n        break;\n\n      // skip all other cases (e.g., comment)\n      default:\n        continue;\n    }\n\n    // set \"key\" prop for sibling elements\n    // https://fb.me/react-warning-keys\n    if (len > 1) {\n      props.key = i;\n    }\n\n    result.push(transform(createElement(node.name, props, children), node, i));\n  }\n\n  return result.length === 1 ? result[0] : result;\n}\n\n/**\n * Determines whether DOM element attributes should be transformed to props.\n * Web Components should not have their attributes transformed except for `style`.\n *\n * @param {DomElement} node\n * @returns - Whether node attributes should be converted to props.\n */\nfunction skipAttributesToProps(node) {\n  return (\n    utilities.PRESERVE_CUSTOM_ATTRIBUTES &&\n    node.type === 'tag' &&\n    utilities.isCustomComponent(node.name, node.attribs)\n  );\n}\n\nmodule.exports = domToReact;\n","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\nif (process.env.NODE_ENV !== 'production') {\n  var ReactIs = require('react-is');\n\n  // By explicitly using `prop-types` you are opting into new development behavior.\n  // http://fb.me/prop-types-in-prod\n  var throwOnDirectAccess = true;\n  module.exports = require('./factoryWithTypeCheckers')(ReactIs.isElement, throwOnDirectAccess);\n} else {\n  // By explicitly using `prop-types` you are opting into new production behavior.\n  // http://fb.me/prop-types-in-prod\n  module.exports = require('./factoryWithThrowingShims')();\n}\n","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n'use strict';\n\nvar ReactPropTypesSecret = require('./lib/ReactPropTypesSecret');\n\nfunction emptyFunction() {}\nfunction emptyFunctionWithReset() {}\nemptyFunctionWithReset.resetWarningCache = emptyFunction;\n\nmodule.exports = function() {\n  function shim(props, propName, componentName, location, propFullName, secret) {\n    if (secret === ReactPropTypesSecret) {\n      // It is still safe when called from React.\n      return;\n    }\n    var err = new Error(\n      'Calling PropTypes validators directly is not supported by the `prop-types` package. ' +\n      'Use PropTypes.checkPropTypes() to call them. ' +\n      'Read more at http://fb.me/use-check-prop-types'\n    );\n    err.name = 'Invariant Violation';\n    throw err;\n  };\n  shim.isRequired = shim;\n  function getShim() {\n    return shim;\n  };\n  // Important!\n  // Keep this list in sync with production version in `./factoryWithTypeCheckers.js`.\n  var ReactPropTypes = {\n    array: shim,\n    bool: shim,\n    func: shim,\n    number: shim,\n    object: shim,\n    string: shim,\n    symbol: shim,\n\n    any: shim,\n    arrayOf: getShim,\n    element: shim,\n    elementType: shim,\n    instanceOf: getShim,\n    node: shim,\n    objectOf: getShim,\n    oneOf: getShim,\n    oneOfType: getShim,\n    shape: getShim,\n    exact: getShim,\n\n    checkPropTypes: emptyFunctionWithReset,\n    resetWarningCache: emptyFunction\n  };\n\n  ReactPropTypes.PropTypes = ReactPropTypes;\n\n  return ReactPropTypes;\n};\n","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n'use strict';\n\nvar ReactPropTypesSecret = 'SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED';\n\nmodule.exports = ReactPropTypesSecret;\n","import HTMLReactParser from './index.js';\n\nexport var domToReact = HTMLReactParser.domToReact;\nexport var htmlToDOM = HTMLReactParser.htmlToDOM;\nexport var attributesToProps = HTMLReactParser.attributesToProps;\n\n// domhandler\nexport var Comment = HTMLReactParser.Comment;\nexport var Element = HTMLReactParser.Element;\nexport var ProcessingInstruction = HTMLReactParser.ProcessingInstruction;\nexport var Text = HTMLReactParser.Text;\n\nexport default HTMLReactParser;\n","var reactProperty = require('react-property');\nvar utilities = require('./utilities');\n\n// https://reactjs.org/docs/uncontrolled-components.html\n// https://developer.mozilla.org/docs/Web/HTML/Attributes\nvar UNCONTROLLED_COMPONENT_ATTRIBUTES = ['checked', 'value'];\nvar UNCONTROLLED_COMPONENT_NAMES = ['input', 'select', 'textarea'];\n\nvar VALUE_ONLY_INPUTS = {\n  reset: true,\n  submit: true\n};\n\n/**\n * Converts HTML/SVG DOM attributes to React props.\n *\n * @param {object} [attributes={}] - HTML/SVG DOM attributes.\n * @param {string} [nodeName] - DOM node name.\n * @returns - React props.\n */\nmodule.exports = function attributesToProps(attributes, nodeName) {\n  attributes = attributes || {};\n\n  var attributeName;\n  var attributeNameLowerCased;\n  var attributeValue;\n  var propName;\n  var propertyInfo;\n  var props = {};\n  var inputIsValueOnly = attributes.type && VALUE_ONLY_INPUTS[attributes.type];\n\n  for (attributeName in attributes) {\n    attributeValue = attributes[attributeName];\n\n    // ARIA (aria-*) or custom data (data-*) attribute\n    if (reactProperty.isCustomAttribute(attributeName)) {\n      props[attributeName] = attributeValue;\n      continue;\n    }\n\n    // convert HTML/SVG attribute to React prop\n    attributeNameLowerCased = attributeName.toLowerCase();\n    propName = getPropName(attributeNameLowerCased);\n\n    if (propName) {\n      propertyInfo = reactProperty.getPropertyInfo(propName);\n\n      // convert attribute to uncontrolled component prop (e.g., `value` to `defaultValue`)\n      if (\n        UNCONTROLLED_COMPONENT_ATTRIBUTES.indexOf(propName) !== -1 &&\n        UNCONTROLLED_COMPONENT_NAMES.indexOf(nodeName) !== -1 &&\n        !inputIsValueOnly\n      ) {\n        propName = getPropName('default' + attributeNameLowerCased);\n      }\n\n      props[propName] = attributeValue;\n\n      switch (propertyInfo && propertyInfo.type) {\n        case reactProperty.BOOLEAN:\n          props[propName] = true;\n          break;\n        case reactProperty.OVERLOADED_BOOLEAN:\n          if (attributeValue === '') {\n            props[propName] = true;\n          }\n          break;\n      }\n      continue;\n    }\n\n    // preserve custom attribute if React >=16\n    if (utilities.PRESERVE_CUSTOM_ATTRIBUTES) {\n      props[attributeName] = attributeValue;\n    }\n  }\n\n  // transform inline style to object\n  utilities.setStyleProp(attributes.style, props);\n\n  return props;\n};\n\n/**\n * Gets prop name from lowercased attribute name.\n *\n * @param {string} attributeName - Lowercased attribute name.\n * @returns - Prop name.\n */\nfunction getPropName(attributeName) {\n  return reactProperty.possibleStandardNames[attributeName];\n}\n","var React = require('react');\nvar styleToJS = require('style-to-js').default;\n\n/**\n * Swap key with value in an object.\n *\n * @param {object} obj - The object.\n * @param {Function} [override] - The override method.\n * @returns - The inverted object.\n */\nfunction invertObject(obj, override) {\n  if (!obj || typeof obj !== 'object') {\n    throw new TypeError('First argument must be an object');\n  }\n\n  var isOverridePresent = typeof override === 'function';\n  var overrides = {};\n  var result = {};\n\n  for (var key in obj) {\n    var value = obj[key];\n\n    if (isOverridePresent) {\n      overrides = override(key, value);\n      if (overrides && overrides.length === 2) {\n        result[overrides[0]] = overrides[1];\n        continue;\n      }\n    }\n\n    if (typeof value === 'string') {\n      result[value] = key;\n    }\n  }\n\n  return result;\n}\n\nvar RESERVED_SVG_MATHML_ELEMENTS = new Set([\n  'annotation-xml',\n  'color-profile',\n  'font-face',\n  'font-face-src',\n  'font-face-uri',\n  'font-face-format',\n  'font-face-name',\n  'missing-glyph'\n]);\n\n/**\n * Check if a given tag is a custom component.\n *\n * @see {@link https://github.com/facebook/react/blob/v16.6.3/packages/react-dom/src/shared/isCustomComponent.js}\n *\n * @param {string} tagName - The name of the html tag.\n * @param {object} props - The props being passed to the element.\n * @returns {boolean} - Whether tag is custom component.\n */\nfunction isCustomComponent(tagName, props) {\n  if (tagName.indexOf('-') === -1) {\n    return props && typeof props.is === 'string';\n  }\n  // These are reserved SVG and MathML elements.\n  // We don't mind this whitelist too much because we expect it to never grow.\n  // The alternative is to track the namespace in a few places which is convoluted.\n  // https://w3c.github.io/webcomponents/spec/custom/#custom-elements-core-concepts\n  if (RESERVED_SVG_MATHML_ELEMENTS.has(tagName)) {\n    return false;\n  }\n  return true;\n}\n\n// styleToJSOptions\nvar STYLE_TO_JS_OPTIONS = { reactCompat: true };\n\n/**\n * Sets style prop.\n *\n * @param {null|undefined|string} style\n * @param {object} props\n */\nfunction setStyleProp(style, props) {\n  if (style === null || style === undefined) {\n    return;\n  }\n  try {\n    props.style = styleToJS(style, STYLE_TO_JS_OPTIONS);\n  } catch (err) {\n    props.style = {};\n  }\n}\n\n/**\n * @constant {boolean}\n * @see {@link https://reactjs.org/blog/2017/09/08/dom-attributes-in-react-16.html}\n */\nvar PRESERVE_CUSTOM_ATTRIBUTES = React.version.split('.')[0] >= 16;\n\n// Taken from\n// https://github.com/facebook/react/blob/cae635054e17a6f107a39d328649137b83f25972/packages/react-dom/src/client/validateDOMNesting.js#L213\nvar ELEMENTS_WITH_NO_TEXT_CHILDREN = new Set([\n  'tr',\n  'tbody',\n  'thead',\n  'tfoot',\n  'colgroup',\n  'table',\n  'head',\n  'html',\n  'frameset'\n]);\n\n/**\n * Checks if the given node can contain text nodes\n *\n * @param {DomElement} node - Node.\n * @returns - Whether node can contain text nodes.\n */\nfunction canTextBeChildOfNode(node) {\n  return !ELEMENTS_WITH_NO_TEXT_CHILDREN.has(node.name);\n}\n\n/**\n * Returns the first argument as is.\n *\n * @param {any} arg - The argument to be returned.\n * @returns {any} The input argument `arg`.\n */\nfunction returnFirstArg(arg) {\n  return arg;\n}\n\nmodule.exports = {\n  PRESERVE_CUSTOM_ATTRIBUTES: PRESERVE_CUSTOM_ATTRIBUTES,\n  ELEMENTS_WITH_NO_TEXT_CHILDREN: ELEMENTS_WITH_NO_TEXT_CHILDREN,\n  invertObject: invertObject,\n  isCustomComponent: isCustomComponent,\n  setStyleProp: setStyleProp,\n  canTextBeChildOfNode: canTextBeChildOfNode,\n  returnFirstArg: returnFirstArg\n};\n","/** Types of elements found in htmlparser2's DOM */\nexport var ElementType;\n(function (ElementType) {\n    /** Type for the root element of a document */\n    ElementType[\"Root\"] = \"root\";\n    /** Type for Text */\n    ElementType[\"Text\"] = \"text\";\n    /** Type for <? ... ?> */\n    ElementType[\"Directive\"] = \"directive\";\n    /** Type for <!-- ... --> */\n    ElementType[\"Comment\"] = \"comment\";\n    /** Type for <script> tags */\n    ElementType[\"Script\"] = \"script\";\n    /** Type for <style> tags */\n    ElementType[\"Style\"] = \"style\";\n    /** Type for Any tag */\n    ElementType[\"Tag\"] = \"tag\";\n    /** Type for <![CDATA[ ... ]]> */\n    ElementType[\"CDATA\"] = \"cdata\";\n    /** Type for <!doctype ...> */\n    ElementType[\"Doctype\"] = \"doctype\";\n})(ElementType || (ElementType = {}));\n/**\n * Tests whether an element is a tag or not.\n *\n * @param elem Element to test\n */\nexport function isTag(elem) {\n    return (elem.type === ElementType.Tag ||\n        elem.type === ElementType.Script ||\n        elem.type === ElementType.Style);\n}\n// Exports for backwards compatibility\n/** Type for the root element of a document */\nexport const Root = ElementType.Root;\n/** Type for Text */\nexport const Text = ElementType.Text;\n/** Type for <? ... ?> */\nexport const Directive = ElementType.Directive;\n/** Type for <!-- ... --> */\nexport const Comment = ElementType.Comment;\n/** Type for <script> tags */\nexport const Script = ElementType.Script;\n/** Type for <style> tags */\nexport const Style = ElementType.Style;\n/** Type for Any tag */\nexport const Tag = ElementType.Tag;\n/** Type for <![CDATA[ ... ]]> */\nexport const CDATA = ElementType.CDATA;\n/** Type for <!doctype ...> */\nexport const Doctype = ElementType.Doctype;\n","import { ElementType, isTag as isTagRaw } from \"domelementtype\";\n/**\n * This object will be used as the prototype for Nodes when creating a\n * DOM-Level-1-compliant structure.\n */\nexport class Node {\n    constructor() {\n        /** Parent of the node */\n        this.parent = null;\n        /** Previous sibling */\n        this.prev = null;\n        /** Next sibling */\n        this.next = null;\n        /** The start index of the node. Requires `withStartIndices` on the handler to be `true. */\n        this.startIndex = null;\n        /** The end index of the node. Requires `withEndIndices` on the handler to be `true. */\n        this.endIndex = null;\n    }\n    // Read-write aliases for properties\n    /**\n     * Same as {@link parent}.\n     * [DOM spec](https://dom.spec.whatwg.org)-compatible alias.\n     */\n    get parentNode() {\n        return this.parent;\n    }\n    set parentNode(parent) {\n        this.parent = parent;\n    }\n    /**\n     * Same as {@link prev}.\n     * [DOM spec](https://dom.spec.whatwg.org)-compatible alias.\n     */\n    get previousSibling() {\n        return this.prev;\n    }\n    set previousSibling(prev) {\n        this.prev = prev;\n    }\n    /**\n     * Same as {@link next}.\n     * [DOM spec](https://dom.spec.whatwg.org)-compatible alias.\n     */\n    get nextSibling() {\n        return this.next;\n    }\n    set nextSibling(next) {\n        this.next = next;\n    }\n    /**\n     * Clone this node, and optionally its children.\n     *\n     * @param recursive Clone child nodes as well.\n     * @returns A clone of the node.\n     */\n    cloneNode(recursive = false) {\n        return cloneNode(this, recursive);\n    }\n}\n/**\n * A node that contains some data.\n */\nexport class DataNode extends Node {\n    /**\n     * @param data The content of the data node\n     */\n    constructor(data) {\n        super();\n        this.data = data;\n    }\n    /**\n     * Same as {@link data}.\n     * [DOM spec](https://dom.spec.whatwg.org)-compatible alias.\n     */\n    get nodeValue() {\n        return this.data;\n    }\n    set nodeValue(data) {\n        this.data = data;\n    }\n}\n/**\n * Text within the document.\n */\nexport class Text extends DataNode {\n    constructor() {\n        super(...arguments);\n        this.type = ElementType.Text;\n    }\n    get nodeType() {\n        return 3;\n    }\n}\n/**\n * Comments within the document.\n */\nexport class Comment extends DataNode {\n    constructor() {\n        super(...arguments);\n        this.type = ElementType.Comment;\n    }\n    get nodeType() {\n        return 8;\n    }\n}\n/**\n * Processing instructions, including doc types.\n */\nexport class ProcessingInstruction extends DataNode {\n    constructor(name, data) {\n        super(data);\n        this.name = name;\n        this.type = ElementType.Directive;\n    }\n    get nodeType() {\n        return 1;\n    }\n}\n/**\n * A `Node` that can have children.\n */\nexport class NodeWithChildren extends Node {\n    /**\n     * @param children Children of the node. Only certain node types can have children.\n     */\n    constructor(children) {\n        super();\n        this.children = children;\n    }\n    // Aliases\n    /** First child of the node. */\n    get firstChild() {\n        var _a;\n        return (_a = this.children[0]) !== null && _a !== void 0 ? _a : null;\n    }\n    /** Last child of the node. */\n    get lastChild() {\n        return this.children.length > 0\n            ? this.children[this.children.length - 1]\n            : null;\n    }\n    /**\n     * Same as {@link children}.\n     * [DOM spec](https://dom.spec.whatwg.org)-compatible alias.\n     */\n    get childNodes() {\n        return this.children;\n    }\n    set childNodes(children) {\n        this.children = children;\n    }\n}\nexport class CDATA extends NodeWithChildren {\n    constructor() {\n        super(...arguments);\n        this.type = ElementType.CDATA;\n    }\n    get nodeType() {\n        return 4;\n    }\n}\n/**\n * The root node of the document.\n */\nexport class Document extends NodeWithChildren {\n    constructor() {\n        super(...arguments);\n        this.type = ElementType.Root;\n    }\n    get nodeType() {\n        return 9;\n    }\n}\n/**\n * An element within the DOM.\n */\nexport class Element extends NodeWithChildren {\n    /**\n     * @param name Name of the tag, eg. `div`, `span`.\n     * @param attribs Object mapping attribute names to attribute values.\n     * @param children Children of the node.\n     */\n    constructor(name, attribs, children = [], type = name === \"script\"\n        ? ElementType.Script\n        : name === \"style\"\n            ? ElementType.Style\n            : ElementType.Tag) {\n        super(children);\n        this.name = name;\n        this.attribs = attribs;\n        this.type = type;\n    }\n    get nodeType() {\n        return 1;\n    }\n    // DOM Level 1 aliases\n    /**\n     * Same as {@link name}.\n     * [DOM spec](https://dom.spec.whatwg.org)-compatible alias.\n     */\n    get tagName() {\n        return this.name;\n    }\n    set tagName(name) {\n        this.name = name;\n    }\n    get attributes() {\n        return Object.keys(this.attribs).map((name) => {\n            var _a, _b;\n            return ({\n                name,\n                value: this.attribs[name],\n                namespace: (_a = this[\"x-attribsNamespace\"]) === null || _a === void 0 ? void 0 : _a[name],\n                prefix: (_b = this[\"x-attribsPrefix\"]) === null || _b === void 0 ? void 0 : _b[name],\n            });\n        });\n    }\n}\n/**\n * @param node Node to check.\n * @returns `true` if the node is a `Element`, `false` otherwise.\n */\nexport function isTag(node) {\n    return isTagRaw(node);\n}\n/**\n * @param node Node to check.\n * @returns `true` if the node has the type `CDATA`, `false` otherwise.\n */\nexport function isCDATA(node) {\n    return node.type === ElementType.CDATA;\n}\n/**\n * @param node Node to check.\n * @returns `true` if the node has the type `Text`, `false` otherwise.\n */\nexport function isText(node) {\n    return node.type === ElementType.Text;\n}\n/**\n * @param node Node to check.\n * @returns `true` if the node has the type `Comment`, `false` otherwise.\n */\nexport function isComment(node) {\n    return node.type === ElementType.Comment;\n}\n/**\n * @param node Node to check.\n * @returns `true` if the node has the type `ProcessingInstruction`, `false` otherwise.\n */\nexport function isDirective(node) {\n    return node.type === ElementType.Directive;\n}\n/**\n * @param node Node to check.\n * @returns `true` if the node has the type `ProcessingInstruction`, `false` otherwise.\n */\nexport function isDocument(node) {\n    return node.type === ElementType.Root;\n}\n/**\n * @param node Node to check.\n * @returns `true` if the node has children, `false` otherwise.\n */\nexport function hasChildren(node) {\n    return Object.prototype.hasOwnProperty.call(node, \"children\");\n}\n/**\n * Clone a node, and optionally its children.\n *\n * @param recursive Clone child nodes as well.\n * @returns A clone of the node.\n */\nexport function cloneNode(node, recursive = false) {\n    let result;\n    if (isText(node)) {\n        result = new Text(node.data);\n    }\n    else if (isComment(node)) {\n        result = new Comment(node.data);\n    }\n    else if (isTag(node)) {\n        const children = recursive ? cloneChildren(node.children) : [];\n        const clone = new Element(node.name, { ...node.attribs }, children);\n        children.forEach((child) => (child.parent = clone));\n        if (node.namespace != null) {\n            clone.namespace = node.namespace;\n        }\n        if (node[\"x-attribsNamespace\"]) {\n            clone[\"x-attribsNamespace\"] = { ...node[\"x-attribsNamespace\"] };\n        }\n        if (node[\"x-attribsPrefix\"]) {\n            clone[\"x-attribsPrefix\"] = { ...node[\"x-attribsPrefix\"] };\n        }\n        result = clone;\n    }\n    else if (isCDATA(node)) {\n        const children = recursive ? cloneChildren(node.children) : [];\n        const clone = new CDATA(children);\n        children.forEach((child) => (child.parent = clone));\n        result = clone;\n    }\n    else if (isDocument(node)) {\n        const children = recursive ? cloneChildren(node.children) : [];\n        const clone = new Document(children);\n        children.forEach((child) => (child.parent = clone));\n        if (node[\"x-mode\"]) {\n            clone[\"x-mode\"] = node[\"x-mode\"];\n        }\n        result = clone;\n    }\n    else if (isDirective(node)) {\n        const instruction = new ProcessingInstruction(node.name, node.data);\n        if (node[\"x-name\"] != null) {\n            instruction[\"x-name\"] = node[\"x-name\"];\n            instruction[\"x-publicId\"] = node[\"x-publicId\"];\n            instruction[\"x-systemId\"] = node[\"x-systemId\"];\n        }\n        result = instruction;\n    }\n    else {\n        throw new Error(`Not implemented yet: ${node.type}`);\n    }\n    result.startIndex = node.startIndex;\n    result.endIndex = node.endIndex;\n    if (node.sourceCodeLocation != null) {\n        result.sourceCodeLocation = node.sourceCodeLocation;\n    }\n    return result;\n}\nfunction cloneChildren(childs) {\n    const children = childs.map((child) => cloneNode(child, true));\n    for (let i = 1; i < children.length; i++) {\n        children[i].prev = children[i - 1];\n        children[i - 1].next = children[i];\n    }\n    return children;\n}\n","import { ElementType } from \"domelementtype\";\nimport { Element, Text, Comment, CDATA, Document, ProcessingInstruction, } from \"./node.js\";\nexport * from \"./node.js\";\n// Default options\nconst defaultOpts = {\n    withStartIndices: false,\n    withEndIndices: false,\n    xmlMode: false,\n};\nexport class DomHandler {\n    /**\n     * @param callback Called once parsing has completed.\n     * @param options Settings for the handler.\n     * @param elementCB Callback whenever a tag is closed.\n     */\n    constructor(callback, options, elementCB) {\n        /** The elements of the DOM */\n        this.dom = [];\n        /** The root element for the DOM */\n        this.root = new Document(this.dom);\n        /** Indicated whether parsing has been completed. */\n        this.done = false;\n        /** Stack of open tags. */\n        this.tagStack = [this.root];\n        /** A data node that is still being written to. */\n        this.lastNode = null;\n        /** Reference to the parser instance. Used for location information. */\n        this.parser = null;\n        // Make it possible to skip arguments, for backwards-compatibility\n        if (typeof options === \"function\") {\n            elementCB = options;\n            options = defaultOpts;\n        }\n        if (typeof callback === \"object\") {\n            options = callback;\n            callback = undefined;\n        }\n        this.callback = callback !== null && callback !== void 0 ? callback : null;\n        this.options = options !== null && options !== void 0 ? options : defaultOpts;\n        this.elementCB = elementCB !== null && elementCB !== void 0 ? elementCB : null;\n    }\n    onparserinit(parser) {\n        this.parser = parser;\n    }\n    // Resets the handler back to starting state\n    onreset() {\n        this.dom = [];\n        this.root = new Document(this.dom);\n        this.done = false;\n        this.tagStack = [this.root];\n        this.lastNode = null;\n        this.parser = null;\n    }\n    // Signals the handler that parsing is done\n    onend() {\n        if (this.done)\n            return;\n        this.done = true;\n        this.parser = null;\n        this.handleCallback(null);\n    }\n    onerror(error) {\n        this.handleCallback(error);\n    }\n    onclosetag() {\n        this.lastNode = null;\n        const elem = this.tagStack.pop();\n        if (this.options.withEndIndices) {\n            elem.endIndex = this.parser.endIndex;\n        }\n        if (this.elementCB)\n            this.elementCB(elem);\n    }\n    onopentag(name, attribs) {\n        const type = this.options.xmlMode ? ElementType.Tag : undefined;\n        const element = new Element(name, attribs, undefined, type);\n        this.addNode(element);\n        this.tagStack.push(element);\n    }\n    ontext(data) {\n        const { lastNode } = this;\n        if (lastNode && lastNode.type === ElementType.Text) {\n            lastNode.data += data;\n            if (this.options.withEndIndices) {\n                lastNode.endIndex = this.parser.endIndex;\n            }\n        }\n        else {\n            const node = new Text(data);\n            this.addNode(node);\n            this.lastNode = node;\n        }\n    }\n    oncomment(data) {\n        if (this.lastNode && this.lastNode.type === ElementType.Comment) {\n            this.lastNode.data += data;\n            return;\n        }\n        const node = new Comment(data);\n        this.addNode(node);\n        this.lastNode = node;\n    }\n    oncommentend() {\n        this.lastNode = null;\n    }\n    oncdatastart() {\n        const text = new Text(\"\");\n        const node = new CDATA([text]);\n        this.addNode(node);\n        text.parent = node;\n        this.lastNode = text;\n    }\n    oncdataend() {\n        this.lastNode = null;\n    }\n    onprocessinginstruction(name, data) {\n        const node = new ProcessingInstruction(name, data);\n        this.addNode(node);\n    }\n    handleCallback(error) {\n        if (typeof this.callback === \"function\") {\n            this.callback(error, this.dom);\n        }\n        else if (error) {\n            throw error;\n        }\n    }\n    addNode(node) {\n        const parent = this.tagStack[this.tagStack.length - 1];\n        const previousSibling = parent.children[parent.children.length - 1];\n        if (this.options.withStartIndices) {\n            node.startIndex = this.parser.startIndex;\n        }\n        if (this.options.withEndIndices) {\n            node.endIndex = this.parser.endIndex;\n        }\n        parent.children.push(node);\n        if (previousSibling) {\n            node.prev = previousSibling;\n            previousSibling.next = node;\n        }\n        node.parent = parent;\n        this.lastNode = null;\n    }\n}\nexport default DomHandler;\n"],"sourceRoot":""}