{"version":3,"file":"MultiFileDiff.js","names":[],"sources":["../../src/react/MultiFileDiff.tsx"],"sourcesContent":["'use client';\n\nimport { useMemo } from 'react';\n\nimport { DIFFS_TAG_NAME } from '../constants';\nimport type { FileContents } from '../types';\nimport { parseDiffFromFile } from '../utils/parseDiffFromFile';\nimport type { DiffBasePropsReact } from './types';\nimport { renderDiffChildren } from './utils/renderDiffChildren';\nimport { templateRender } from './utils/templateRender';\nimport { useFileDiffInstance } from './utils/useFileDiffInstance';\n\nexport type { FileContents };\n\nexport interface MultiFileDiffProps<\n  LAnnotation,\n> extends DiffBasePropsReact<LAnnotation> {\n  oldFile: FileContents;\n  newFile: FileContents;\n  disableWorkerPool?: boolean;\n}\n\nexport function MultiFileDiff<LAnnotation = undefined>({\n  oldFile,\n  newFile,\n  options,\n  metrics,\n  lineAnnotations,\n  selectedLines,\n  className,\n  style,\n  prerenderedHTML,\n  renderAnnotation,\n  renderCustomHeader,\n  renderHeaderPrefix,\n  renderHeaderMetadata,\n  renderGutterUtility,\n  renderHoverUtility,\n  disableWorkerPool = false,\n}: MultiFileDiffProps<LAnnotation>): React.JSX.Element {\n  const fileDiff = useMemo(() => {\n    return parseDiffFromFile(oldFile, newFile, options?.parseDiffOptions);\n  }, [oldFile, newFile, options?.parseDiffOptions]);\n  const { ref, getHoveredLine } = useFileDiffInstance({\n    fileDiff,\n    options,\n    metrics,\n    lineAnnotations,\n    selectedLines,\n    prerenderedHTML,\n    hasGutterRenderUtility:\n      renderGutterUtility != null || renderHoverUtility != null,\n    hasCustomHeader: renderCustomHeader != null,\n    disableWorkerPool,\n  });\n  const children = renderDiffChildren({\n    fileDiff,\n    renderCustomHeader,\n    renderHeaderPrefix,\n    renderHeaderMetadata,\n    renderAnnotation,\n    lineAnnotations,\n    renderGutterUtility,\n    renderHoverUtility,\n    getHoveredLine,\n  });\n  return (\n    <DIFFS_TAG_NAME ref={ref} className={className} style={style}>\n      {templateRender(children, prerenderedHTML)}\n    </DIFFS_TAG_NAME>\n  );\n}\n"],"mappings":";;;;;;;;;;;;AAsBA,SAAgB,cAAuC,EACrD,SACA,SACA,SACA,SACA,iBACA,eACA,WACA,OACA,iBACA,kBACA,oBACA,oBACA,sBACA,qBACA,oBACA,oBAAoB,SACiC;CACrD,MAAM,WAAW,cAAc;AAC7B,SAAO,kBAAkB,SAAS,SAAS,SAAS,iBAAiB;IACpE;EAAC;EAAS;EAAS,SAAS;EAAiB,CAAC;CACjD,MAAM,EAAE,KAAK,mBAAmB,oBAAoB;EAClD;EACA;EACA;EACA;EACA;EACA;EACA,wBACE,uBAAuB,QAAQ,sBAAsB;EACvD,iBAAiB,sBAAsB;EACvC;EACD,CAAC;AAYF,QACE,oBAAC;EAAoB;EAAgB;EAAkB;YACpD,eAbY,mBAAmB;GAClC;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACD,CAAC,EAG4B,gBAAgB;GAC3B"}