{"version":3,"file":"UnresolvedFile.js","names":[],"sources":["../../src/react/UnresolvedFile.tsx"],"sourcesContent":["'use client';\n\nimport type { ReactNode } from 'react';\n\nimport type { FileDiffOptions } from '../components/FileDiff';\nimport type { UnresolvedFile as UnresolvedFileClass } from '../components/UnresolvedFile';\nimport { DIFFS_TAG_NAME } from '../constants';\nimport type { UnresolvedFileHunksRendererOptions } from '../renderers/UnresolvedFileHunksRenderer';\nimport type {\n  FileContents,\n  HunkSeparators,\n  MergeConflictResolution,\n} from '../types';\nimport { type MergeConflictDiffAction } from '../utils/parseMergeConflictDiffFromFile';\nimport type { FileDiffProps } from './FileDiff';\nimport { renderDiffChildren } from './utils/renderDiffChildren';\nimport { templateRender } from './utils/templateRender';\nimport { useUnresolvedFileInstance } from './utils/useUnresolvedFileInstance';\n\nexport interface RenderMergeConflictActionContext {\n  resolveConflict(resolution: MergeConflictResolution): void;\n}\n\nexport type RenderMergeConflictActions = (\n  action: MergeConflictDiffAction,\n  context: RenderMergeConflictActionContext\n) => ReactNode;\n\nexport type MergeConflictActionsTypeOption =\n  | 'none'\n  | 'default'\n  | RenderMergeConflictActions;\n\nexport interface UnresolvedFileReactOptions<LAnnotation>\n  extends\n    Omit<\n      FileDiffOptions<LAnnotation>,\n      'hunkSeparators' | 'diffStyle' | 'onMergeConflictAction' | 'onPostRender'\n    >,\n    UnresolvedFileHunksRendererOptions {\n  hunkSeparators?: HunkSeparators;\n  onPostRender?(\n    node: HTMLElement,\n    instance: UnresolvedFileClass<LAnnotation>\n  ): unknown;\n  maxContextLines?: number;\n}\n\nexport interface UnresolvedFileProps<LAnnotation> extends Omit<\n  FileDiffProps<LAnnotation>,\n  'fileDiff' | 'options'\n> {\n  file: FileContents;\n  options?: UnresolvedFileReactOptions<LAnnotation>;\n  renderMergeConflictUtility?(\n    action: MergeConflictDiffAction,\n    getInstance: () => UnresolvedFileClass<LAnnotation> | undefined\n  ): ReactNode;\n  disableWorkerPool?: boolean;\n}\n\nexport function UnresolvedFile<LAnnotation = undefined>({\n  file,\n  options,\n  lineAnnotations,\n  selectedLines,\n  className,\n  style,\n  prerenderedHTML,\n  renderAnnotation,\n  renderCustomHeader,\n  renderHeaderPrefix,\n  renderHeaderMetadata,\n  renderGutterUtility,\n  renderHoverUtility,\n  renderMergeConflictUtility,\n  disableWorkerPool = false,\n}: UnresolvedFileProps<LAnnotation>): React.JSX.Element {\n  const { ref, getHoveredLine, fileDiff, actions, getInstance } =\n    useUnresolvedFileInstance({\n      file,\n      options,\n      lineAnnotations,\n      selectedLines,\n      prerenderedHTML,\n      hasConflictUtility: renderMergeConflictUtility != null,\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    renderGutterUtility,\n    renderHoverUtility,\n    lineAnnotations,\n    getHoveredLine,\n    actions,\n    renderMergeConflictUtility,\n    getInstance,\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":";;;;;;;;;;AA6DA,SAAgB,eAAwC,EACtD,MACA,SACA,iBACA,eACA,WACA,OACA,iBACA,kBACA,oBACA,oBACA,sBACA,qBACA,oBACA,4BACA,oBAAoB,SACkC;CACtD,MAAM,EAAE,KAAK,gBAAgB,UAAU,SAAS,gBAC9C,0BAA0B;EACxB;EACA;EACA;EACA;EACA;EACA,oBAAoB,8BAA8B;EAClD,wBACE,uBAAuB,QAAQ,sBAAsB;EACvD,iBAAiB,sBAAsB;EACvC;EACD,CAAC;AAeJ,QACE,oBAAC;EAAoB;EAAgB;EAAkB;YACpD,eAhBY,mBAAmB;GAClC;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACD,CAAC,EAG4B,gBAAgB;GAC3B"}