{"version":3,"sources":["../../src/HTML2React/index.ts"],"names":["noop","createElement"],"mappings":"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","file":"chunk-WCEFR3FG.cjs","sourcesContent":["import { createElement, type FC, type PropsWithChildren } from 'react';\nimport type {\n  AnyComponent,\n  HTML2ReactProps,\n  Meta,\n  MetaProps,\n  Segment,\n} from '../types';\nimport noop from 'lodash.noop';\n\nexport { type HTML2ReactProps, type MetaProps };\n\nconst NON_WHITESPACE_CHARACTER = /\\S/;\n\nconst HTML_SPECIAL_CHAR = /[\\s>/]/;\n\nconst HTML_ATTRIBUTE_CHAR = /[=\\s>/]/;\n\nconst VOID_TAGS = new Set([\n  'area',\n  'base',\n  'br',\n  'col',\n  'embed',\n  'hr',\n  'img',\n  'input',\n  'link',\n  'meta',\n  'param',\n  'source',\n  'track',\n  'wbr',\n]);\n\nconst _isVoidTag: (tag: string) => boolean = VOID_TAGS.has.bind(VOID_TAGS);\n\nconst _handleIndex = (index: number) => {\n  if (index < 0) {\n    throw new Error('invalid html');\n  }\n\n  return index;\n};\n\nconst createComponentGetter = (\n  components: HTML2ReactProps['components']\n): ((tag: string) => AnyComponent | void) => {\n  if (components) {\n    const map = new Map<string, AnyComponent>();\n\n    const keys = Object.keys(components);\n\n    for (let i = keys.length; i--; ) {\n      const key = keys[i];\n\n      map.set(key.toLowerCase(), components[key]);\n    }\n\n    return map.get.bind(map);\n  }\n\n  return noop;\n};\n\nconst handleSegment = (\n  segment: Segment,\n  nodesChildren: NodeChildren[],\n  parentMeta: Meta | false | undefined\n) => {\n  if ((segment && segment !== true) || segment === 0) {\n    const typeofSegment = typeof segment;\n\n    let l = nodesChildren.length;\n\n    if (typeofSegment == 'object') {\n      nodesChildren.push({ ...(segment as JSX.Element), key: l as any });\n\n      if (parentMeta) {\n        parentMeta.children!.push({\n          index: l,\n          type: (segment as JSX.Element).type,\n          parent: parentMeta,\n        });\n      }\n    } else {\n      if (l && typeof nodesChildren[--l] != 'object') {\n        nodesChildren[l] += segment as string;\n      } else {\n        nodesChildren.push(\n          typeofSegment != 'number' ? (segment as string) : '' + segment\n        );\n\n        if (parentMeta) {\n          parentMeta.children!.length++;\n        }\n      }\n    }\n  }\n};\n\ntype NodeChildren = JSX.Element | string;\n\nconst HTML2React: FC<HTML2ReactProps> = ({\n  html,\n  components,\n  attributes = {},\n  converters = {},\n  processTextSegment,\n  getComponent = noop,\n  shouldBeIgnored,\n  withMeta,\n}) => {\n  let start = 0;\n\n  let currentNodeChildren: NodeChildren[] = [];\n\n  let currentMeta = withMeta && ({ index: 0, children: [] } as Meta);\n\n  const _getComponent = createComponentGetter(components);\n\n  const rootNodeChildren = currentNodeChildren;\n\n  const tagsQueue: string[] = [];\n\n  const metaQueue = [currentMeta];\n\n  const nodesChildrenQueue = [rootNodeChildren];\n\n  const substring: String['substring'] = html.substring.bind(html);\n\n  const _indexOf: String['indexOf'] = html.indexOf.bind(html);\n\n  const search = (index: number, regexp: RegExp) =>\n    index + _handleIndex(substring(index).search(regexp));\n\n  const indexOf = (item: string, index: number) =>\n    _handleIndex(_indexOf(item, index));\n\n  const handleTextSegment: (\n    nodesChildren: NodeChildren[],\n    parentMeta: Meta | false | undefined,\n    text: string\n  ) => void = processTextSegment\n    ? (nodesChildren, parentMeta, text) => {\n        const segment = processTextSegment(text, parentMeta as Meta);\n\n        if (Array.isArray(segment)) {\n          for (let i = 0; i < segment.length; i++) {\n            handleSegment(segment[i], nodesChildren, parentMeta);\n          }\n        } else {\n          handleSegment(segment, nodesChildren, parentMeta);\n        }\n      }\n    : (nodesChildren, parentMeta, text) => {\n        nodesChildren.push(text);\n\n        if (parentMeta) {\n          parentMeta.children!.length++;\n        }\n      };\n\n  for (\n    let index = _indexOf('<'),\n      char: string,\n      end: number,\n      _next: number,\n      tag: string,\n      normalizedTag: string,\n      attribute: string,\n      value: string,\n      props: PropsWithChildren<\n        { key: number; [key: string]: any } & Partial<MetaProps>\n      >,\n      component: AnyComponent | string,\n      meta: Meta,\n      parentChildren = currentNodeChildren;\n    index != -1;\n    parentChildren = currentNodeChildren\n  ) {\n    end = _indexOf('>', index + 1);\n\n    if (end > 0) {\n      while (true) {\n        _next = _indexOf('<', index + 1);\n\n        if (_next > 0 && _next < end) {\n          index = _next;\n        } else {\n          break;\n        }\n      }\n    } else {\n      break;\n    }\n\n    if (start != index) {\n      handleTextSegment(\n        currentNodeChildren,\n        currentMeta,\n        substring(start, index)\n      );\n    }\n\n    char = html[++index];\n\n    if (char == '/') {\n      tag = substring(index + 1, end).trim();\n\n      for (let j = tagsQueue.length; j--; ) {\n        if (tagsQueue[j] == tag) {\n          metaQueue.length = nodesChildrenQueue.length = j + 1;\n\n          tagsQueue.length = j;\n\n          currentNodeChildren = nodesChildrenQueue[j];\n\n          currentMeta = metaQueue[j];\n\n          if (\n            shouldBeIgnored &&\n            shouldBeIgnored(\n              tag,\n              (\n                currentNodeChildren[\n                  (j = currentNodeChildren.length - 1)\n                ] as JSX.Element\n              ).props\n            )\n          ) {\n            currentNodeChildren.length = j;\n\n            if (currentMeta) {\n              currentMeta.children!.length = j;\n            }\n          }\n\n          break;\n        }\n      }\n    } else if (char != '!') {\n      tag = substring(\n        index,\n        (index = search(index + 1, HTML_SPECIAL_CHAR))\n      ).trim();\n\n      normalizedTag = tag.toLowerCase();\n\n      props = {\n        key: currentNodeChildren.length,\n      };\n\n      component = _getComponent(normalizedTag) || getComponent(tag) || tag;\n\n      if (currentMeta) {\n        meta = {\n          type: component,\n          index: props.key,\n          parent: currentMeta,\n        };\n\n        currentMeta.children!.push(meta);\n\n        if (typeof component != 'string') {\n          props._meta = meta;\n        }\n      }\n\n      index = search(index, NON_WHITESPACE_CHARACTER);\n\n      while (end != index && html[index] != '/') {\n        attribute = substring(\n          index,\n          (index = search(index + 1, HTML_ATTRIBUTE_CHAR))\n        ).trim();\n\n        if (attribute in attributes) {\n          attribute = attributes[attribute];\n        }\n\n        char = html[index];\n\n        if (char != '=' && char != '/' && char != '>') {\n          index = search(index + 1, NON_WHITESPACE_CHARACTER);\n        }\n\n        if (html[index] == '=') {\n          char = html[(index = search(index + 1, NON_WHITESPACE_CHARACTER))];\n\n          const isWrapped = char == \"'\" || char == '\"';\n\n          const next = isWrapped\n            ? indexOf(char, ++index)\n            : search(index + 1, HTML_SPECIAL_CHAR);\n\n          value = substring(index, next);\n\n          index = search(next + (isWrapped as any), NON_WHITESPACE_CHARACTER);\n        } else {\n          value = 'true';\n        }\n\n        props[attribute] =\n          attribute in converters ? converters[attribute](value, tag) : value;\n      }\n\n      if (normalizedTag != 'script') {\n        if (!_isVoidTag(normalizedTag)) {\n          tagsQueue.push(tag);\n\n          nodesChildrenQueue.push((currentNodeChildren = props.children = []));\n\n          if (currentMeta) {\n            meta!.children = [];\n\n            metaQueue.push((currentMeta = meta!));\n          }\n        }\n      } else {\n        const str = substring(end + 1);\n\n        const scriptClosingTag = /<\\/\\s*script\\s*>/.exec(str);\n\n        if (scriptClosingTag) {\n          const indexOfNextScriptOpenTag = str.search(/<\\s*script\\s*>/);\n\n          const indexOfScriptClosingTag = scriptClosingTag.index;\n\n          if (\n            indexOfNextScriptOpenTag == -1 ||\n            indexOfScriptClosingTag < indexOfNextScriptOpenTag\n          ) {\n            const code = str.substring(0, indexOfScriptClosingTag);\n\n            if (code) {\n              (\n                props as JSX.IntrinsicElements['script']\n              ).dangerouslySetInnerHTML = { __html: code };\n            }\n\n            end += indexOfScriptClosingTag + scriptClosingTag[0].length;\n          }\n        }\n      }\n\n      parentChildren.push(createElement(component, props));\n    } else if (html[++index] == '-' && html[++index] == '-') {\n      end = indexOf('-->', index) + 2;\n    }\n\n    start = end + 1;\n\n    index = _next;\n  }\n\n  if (start < html.length) {\n    handleTextSegment(currentNodeChildren, currentMeta, substring(start));\n  }\n\n  return rootNodeChildren.length\n    ? rootNodeChildren.length > 1\n      ? rootNodeChildren\n      : rootNodeChildren[0]\n    : null;\n};\n\nexport default HTML2React;\n"]}