@pierre/diffs 1.1.0-beta.6 → 1.1.0-beta.8

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (291) hide show
  1. package/dist/components/AdvancedVirtualizedFileDiff.d.ts +40 -0
  2. package/dist/components/AdvancedVirtualizedFileDiff.d.ts.map +1 -0
  3. package/dist/components/AdvancedVirtualizedFileDiff.js +145 -0
  4. package/dist/components/AdvancedVirtualizedFileDiff.js.map +1 -0
  5. package/dist/components/AdvancedVirtualizer.d.ts +38 -0
  6. package/dist/components/AdvancedVirtualizer.d.ts.map +1 -0
  7. package/dist/components/AdvancedVirtualizer.js +201 -0
  8. package/dist/components/AdvancedVirtualizer.js.map +1 -0
  9. package/dist/components/File.d.ts +58 -33
  10. package/dist/components/File.d.ts.map +1 -1
  11. package/dist/components/File.js +223 -22
  12. package/dist/components/File.js.map +1 -1
  13. package/dist/components/FileDiff.d.ts +42 -16
  14. package/dist/components/FileDiff.d.ts.map +1 -1
  15. package/dist/components/FileDiff.js +505 -65
  16. package/dist/components/FileDiff.js.map +1 -1
  17. package/dist/components/FileStream.d.ts +5 -0
  18. package/dist/components/FileStream.d.ts.map +1 -1
  19. package/dist/components/FileStream.js +66 -8
  20. package/dist/components/FileStream.js.map +1 -1
  21. package/dist/components/VirtualizedFile.d.ts +33 -0
  22. package/dist/components/VirtualizedFile.d.ts.map +1 -0
  23. package/dist/components/VirtualizedFile.js +227 -0
  24. package/dist/components/VirtualizedFile.js.map +1 -0
  25. package/dist/components/VirtualizedFileDiff.d.ts +39 -0
  26. package/dist/components/VirtualizedFileDiff.d.ts.map +1 -0
  27. package/dist/components/VirtualizedFileDiff.js +316 -0
  28. package/dist/components/VirtualizedFileDiff.js.map +1 -0
  29. package/dist/components/Virtualizer.d.ts +63 -0
  30. package/dist/components/Virtualizer.d.ts.map +1 -0
  31. package/dist/components/Virtualizer.js +369 -0
  32. package/dist/components/Virtualizer.js.map +1 -0
  33. package/dist/components/VirtulizerDevelopment.d.ts +14 -0
  34. package/dist/components/VirtulizerDevelopment.d.ts.map +1 -0
  35. package/dist/components/web-components.d.ts +1 -1
  36. package/dist/components/web-components.d.ts.map +1 -1
  37. package/dist/constants.d.ts +4 -7
  38. package/dist/constants.d.ts.map +1 -1
  39. package/dist/constants.js +14 -6
  40. package/dist/constants.js.map +1 -1
  41. package/dist/highlighter/languages/areLanguagesAttached.d.ts.map +1 -1
  42. package/dist/highlighter/languages/attachResolvedLanguages.d.ts.map +1 -1
  43. package/dist/highlighter/languages/cleanUpResolvedLanguages.d.ts.map +1 -1
  44. package/dist/highlighter/languages/constants.d.ts.map +1 -1
  45. package/dist/highlighter/languages/getResolvedLanguages.d.ts.map +1 -1
  46. package/dist/highlighter/languages/getResolvedOrResolveLanguage.d.ts +1 -1
  47. package/dist/highlighter/languages/getResolvedOrResolveLanguage.d.ts.map +1 -1
  48. package/dist/highlighter/languages/hasResolvedLanguages.d.ts.map +1 -1
  49. package/dist/highlighter/languages/registerCustomLanguage.d.ts +11 -4
  50. package/dist/highlighter/languages/registerCustomLanguage.d.ts.map +1 -1
  51. package/dist/highlighter/languages/resolveLanguage.d.ts +1 -1
  52. package/dist/highlighter/languages/resolveLanguage.d.ts.map +1 -1
  53. package/dist/highlighter/languages/resolveLanguages.d.ts.map +1 -1
  54. package/dist/highlighter/shared_highlighter.d.ts.map +1 -1
  55. package/dist/highlighter/shared_highlighter.js.map +1 -1
  56. package/dist/highlighter/themes/areThemesAttached.d.ts.map +1 -1
  57. package/dist/highlighter/themes/attachResolvedThemes.d.ts.map +1 -1
  58. package/dist/highlighter/themes/cleanUpResolvedThemes.d.ts.map +1 -1
  59. package/dist/highlighter/themes/constants.d.ts.map +1 -1
  60. package/dist/highlighter/themes/getResolvedOrResolveTheme.d.ts.map +1 -1
  61. package/dist/highlighter/themes/getResolvedThemes.d.ts.map +1 -1
  62. package/dist/highlighter/themes/hasResolvedThemes.d.ts.map +1 -1
  63. package/dist/highlighter/themes/registerCustomCSSVariableTheme.d.ts.map +1 -1
  64. package/dist/highlighter/themes/registerCustomTheme.d.ts.map +1 -1
  65. package/dist/highlighter/themes/resolveTheme.d.ts.map +1 -1
  66. package/dist/highlighter/themes/resolveThemes.d.ts.map +1 -1
  67. package/dist/index.d.ts +13 -10
  68. package/dist/index.js +10 -7
  69. package/dist/managers/LineSelectionManager.d.ts +14 -15
  70. package/dist/managers/LineSelectionManager.d.ts.map +1 -1
  71. package/dist/managers/LineSelectionManager.js +60 -71
  72. package/dist/managers/LineSelectionManager.js.map +1 -1
  73. package/dist/managers/MouseEventManager.d.ts +13 -6
  74. package/dist/managers/MouseEventManager.d.ts.map +1 -1
  75. package/dist/managers/MouseEventManager.js +161 -47
  76. package/dist/managers/MouseEventManager.js.map +1 -1
  77. package/dist/managers/ResizeManager.d.ts +6 -1
  78. package/dist/managers/ResizeManager.d.ts.map +1 -1
  79. package/dist/managers/ResizeManager.js +114 -64
  80. package/dist/managers/ResizeManager.js.map +1 -1
  81. package/dist/managers/ScrollSyncManager.d.ts.map +1 -1
  82. package/dist/managers/UniversalRenderingManager.d.ts.map +1 -1
  83. package/dist/react/File.d.ts +1 -0
  84. package/dist/react/File.d.ts.map +1 -1
  85. package/dist/react/File.js +2 -1
  86. package/dist/react/File.js.map +1 -1
  87. package/dist/react/FileDiff.d.ts +1 -0
  88. package/dist/react/FileDiff.d.ts.map +1 -1
  89. package/dist/react/FileDiff.js +2 -1
  90. package/dist/react/FileDiff.js.map +1 -1
  91. package/dist/react/MultiFileDiff.d.ts +1 -0
  92. package/dist/react/MultiFileDiff.d.ts.map +1 -1
  93. package/dist/react/MultiFileDiff.js +2 -1
  94. package/dist/react/MultiFileDiff.js.map +1 -1
  95. package/dist/react/PatchDiff.d.ts +1 -0
  96. package/dist/react/PatchDiff.d.ts.map +1 -1
  97. package/dist/react/PatchDiff.js +3 -2
  98. package/dist/react/PatchDiff.js.map +1 -1
  99. package/dist/react/Virtualizer.d.ts +25 -0
  100. package/dist/react/Virtualizer.d.ts.map +1 -0
  101. package/dist/react/Virtualizer.js +38 -0
  102. package/dist/react/Virtualizer.js.map +1 -0
  103. package/dist/react/WorkerPoolContext.d.ts.map +1 -1
  104. package/dist/react/WorkerPoolContext.js +1 -1
  105. package/dist/react/WorkerPoolContext.js.map +1 -1
  106. package/dist/react/constants.d.ts.map +1 -1
  107. package/dist/react/index.d.ts +3 -2
  108. package/dist/react/index.js +2 -1
  109. package/dist/react/jsx.d.ts.map +1 -1
  110. package/dist/react/types.d.ts +5 -3
  111. package/dist/react/types.d.ts.map +1 -1
  112. package/dist/react/utils/renderDiffChildren.d.ts +5 -5
  113. package/dist/react/utils/renderDiffChildren.d.ts.map +1 -1
  114. package/dist/react/utils/renderFileChildren.d.ts +5 -5
  115. package/dist/react/utils/renderFileChildren.d.ts.map +1 -1
  116. package/dist/react/utils/templateRender.d.ts.map +1 -1
  117. package/dist/react/utils/useFileDiffInstance.d.ts +5 -3
  118. package/dist/react/utils/useFileDiffInstance.d.ts.map +1 -1
  119. package/dist/react/utils/useFileDiffInstance.js +6 -2
  120. package/dist/react/utils/useFileDiffInstance.js.map +1 -1
  121. package/dist/react/utils/useFileInstance.d.ts +5 -3
  122. package/dist/react/utils/useFileInstance.d.ts.map +1 -1
  123. package/dist/react/utils/useFileInstance.js +6 -2
  124. package/dist/react/utils/useFileInstance.js.map +1 -1
  125. package/dist/react/utils/useStableCallback.d.ts.map +1 -1
  126. package/dist/react/utils/useStableCallback.js.map +1 -1
  127. package/dist/renderers/DiffHunksRenderer.d.ts +15 -10
  128. package/dist/renderers/DiffHunksRenderer.d.ts.map +1 -1
  129. package/dist/renderers/DiffHunksRenderer.js +240 -136
  130. package/dist/renderers/DiffHunksRenderer.js.map +1 -1
  131. package/dist/renderers/FileRenderer.d.ts +12 -5
  132. package/dist/renderers/FileRenderer.d.ts.map +1 -1
  133. package/dist/renderers/FileRenderer.js +90 -31
  134. package/dist/renderers/FileRenderer.js.map +1 -1
  135. package/dist/shiki-stream/stream.d.ts +2 -2
  136. package/dist/shiki-stream/stream.d.ts.map +1 -1
  137. package/dist/shiki-stream/stream.js.map +1 -1
  138. package/dist/shiki-stream/tokenizer.d.ts +2 -2
  139. package/dist/shiki-stream/tokenizer.d.ts.map +1 -1
  140. package/dist/shiki-stream/tokenizer.js.map +1 -1
  141. package/dist/shiki-stream/types.d.ts +18 -18
  142. package/dist/shiki-stream/types.d.ts.map +1 -1
  143. package/dist/sprite.d.ts +1 -1
  144. package/dist/sprite.d.ts.map +1 -1
  145. package/dist/ssr/FileDiffReact.d.ts.map +1 -1
  146. package/dist/ssr/FileDiffReact.js +1 -1
  147. package/dist/ssr/index.d.ts +2 -2
  148. package/dist/ssr/preloadDiffs.d.ts.map +1 -1
  149. package/dist/ssr/preloadFile.d.ts.map +1 -1
  150. package/dist/ssr/preloadPatchFile.d.ts.map +1 -1
  151. package/dist/ssr/preloadPatchFile.js.map +1 -1
  152. package/dist/ssr/renderHTML.d.ts.map +1 -1
  153. package/dist/style.js +1 -1
  154. package/dist/style.js.map +1 -1
  155. package/dist/types.d.ts +191 -172
  156. package/dist/types.d.ts.map +1 -1
  157. package/dist/utils/areDiffLineAnnotationsEqual.d.ts.map +1 -1
  158. package/dist/utils/areDiffLineAnnotationsEqual.js.map +1 -1
  159. package/dist/utils/areFilesEqual.d.ts.map +1 -1
  160. package/dist/utils/areHunkDataEqual.d.ts.map +1 -1
  161. package/dist/utils/areLineAnnotationsEqual.d.ts.map +1 -1
  162. package/dist/utils/areObjectsEqual.d.ts.map +1 -1
  163. package/dist/utils/areOptionsEqual.d.ts +1 -1
  164. package/dist/utils/areOptionsEqual.d.ts.map +1 -1
  165. package/dist/utils/arePrePropertiesEqual.d.ts.map +1 -1
  166. package/dist/utils/arePrePropertiesEqual.js +1 -1
  167. package/dist/utils/arePrePropertiesEqual.js.map +1 -1
  168. package/dist/utils/areRenderRangesEqual.d.ts.map +1 -1
  169. package/dist/utils/areSelectionsEqual.d.ts.map +1 -1
  170. package/dist/utils/areThemesEqual.d.ts.map +1 -1
  171. package/dist/utils/areVirtualWindowSpecsEqual.d.ts.map +1 -1
  172. package/dist/utils/areWorkerStatsEqual.d.ts.map +1 -1
  173. package/dist/utils/cleanLastNewline.d.ts.map +1 -1
  174. package/dist/utils/createAnnotationElement.d.ts.map +1 -1
  175. package/dist/utils/createAnnotationWrapperNode.d.ts.map +1 -1
  176. package/dist/utils/createContentColumn.d.ts +7 -0
  177. package/dist/utils/createContentColumn.d.ts.map +1 -0
  178. package/dist/utils/createContentColumn.js +17 -0
  179. package/dist/utils/createContentColumn.js.map +1 -0
  180. package/dist/utils/createEmptyRowBuffer.d.ts.map +1 -1
  181. package/dist/utils/createEmptyRowBuffer.js +2 -1
  182. package/dist/utils/createEmptyRowBuffer.js.map +1 -1
  183. package/dist/utils/createFileHeaderElement.d.ts.map +1 -1
  184. package/dist/utils/createHoverContentNode.d.ts.map +1 -1
  185. package/dist/utils/createNoNewlineElement.d.ts +2 -1
  186. package/dist/utils/createNoNewlineElement.d.ts.map +1 -1
  187. package/dist/utils/createNoNewlineElement.js +3 -6
  188. package/dist/utils/createNoNewlineElement.js.map +1 -1
  189. package/dist/utils/createPreElement.d.ts +2 -1
  190. package/dist/utils/createPreElement.d.ts.map +1 -1
  191. package/dist/utils/createPreElement.js +4 -3
  192. package/dist/utils/createPreElement.js.map +1 -1
  193. package/dist/utils/createRowNodes.d.ts.map +1 -1
  194. package/dist/utils/createSeparator.d.ts.map +1 -1
  195. package/dist/utils/createSeparator.js +1 -1
  196. package/dist/utils/createSeparator.js.map +1 -1
  197. package/dist/utils/createSpanNodeFromToken.d.ts.map +1 -1
  198. package/dist/utils/createSpanNodeFromToken.js.map +1 -1
  199. package/dist/utils/createStyleElement.d.ts.map +1 -1
  200. package/dist/utils/createTransformerWithState.d.ts.map +1 -1
  201. package/dist/utils/createUnsafeCSSStyleNode.d.ts.map +1 -1
  202. package/dist/utils/createWindowFromScrollPosition.d.ts.map +1 -1
  203. package/dist/utils/cssWrappers.d.ts.map +1 -1
  204. package/dist/utils/diffAcceptRejectHunk.d.ts +1 -1
  205. package/dist/utils/diffAcceptRejectHunk.d.ts.map +1 -1
  206. package/dist/utils/formatCSSVariablePrefix.d.ts +1 -1
  207. package/dist/utils/formatCSSVariablePrefix.d.ts.map +1 -1
  208. package/dist/utils/getFiletypeFromFileName.d.ts.map +1 -1
  209. package/dist/utils/getHighlighterOptions.d.ts.map +1 -1
  210. package/dist/utils/getHighlighterThemeStyles.d.ts.map +1 -1
  211. package/dist/utils/getHunkSeparatorSlotName.d.ts +3 -1
  212. package/dist/utils/getHunkSeparatorSlotName.d.ts.map +1 -1
  213. package/dist/utils/getHunkSeparatorSlotName.js.map +1 -1
  214. package/dist/utils/getIconForType.d.ts +1 -1
  215. package/dist/utils/getIconForType.d.ts.map +1 -1
  216. package/dist/utils/getLineAnnotationName.d.ts.map +1 -1
  217. package/dist/utils/getLineEndingType.d.ts +1 -1
  218. package/dist/utils/getLineEndingType.d.ts.map +1 -1
  219. package/dist/utils/getLineNodes.d.ts.map +1 -1
  220. package/dist/utils/getOrCreateCodeNode.d.ts +4 -2
  221. package/dist/utils/getOrCreateCodeNode.d.ts.map +1 -1
  222. package/dist/utils/getOrCreateCodeNode.js +9 -6
  223. package/dist/utils/getOrCreateCodeNode.js.map +1 -1
  224. package/dist/utils/getSingularPatch.d.ts.map +1 -1
  225. package/dist/utils/getThemes.d.ts.map +1 -1
  226. package/dist/utils/getTotalLineCountFromHunks.d.ts.map +1 -1
  227. package/dist/utils/hast_utils.d.ts +6 -3
  228. package/dist/utils/hast_utils.d.ts.map +1 -1
  229. package/dist/utils/hast_utils.js +28 -4
  230. package/dist/utils/hast_utils.js.map +1 -1
  231. package/dist/utils/isDefaultRenderRange.d.ts.map +1 -1
  232. package/dist/utils/isWorkerContext.d.ts.map +1 -1
  233. package/dist/utils/iterateOverDiff.d.ts +26 -13
  234. package/dist/utils/iterateOverDiff.d.ts.map +1 -1
  235. package/dist/utils/iterateOverDiff.js +94 -55
  236. package/dist/utils/iterateOverDiff.js.map +1 -1
  237. package/dist/utils/iterateOverFile.d.ts +50 -0
  238. package/dist/utils/iterateOverFile.d.ts.map +1 -0
  239. package/dist/utils/iterateOverFile.js +49 -0
  240. package/dist/utils/iterateOverFile.js.map +1 -0
  241. package/dist/utils/parseDiffDecorations.d.ts.map +1 -1
  242. package/dist/utils/parseDiffFromFile.d.ts +6 -6
  243. package/dist/utils/parseDiffFromFile.d.ts.map +1 -1
  244. package/dist/utils/parseDiffFromFile.js +3 -2
  245. package/dist/utils/parseDiffFromFile.js.map +1 -1
  246. package/dist/utils/parseLineType.d.ts +1 -1
  247. package/dist/utils/parseLineType.d.ts.map +1 -1
  248. package/dist/utils/parsePatchFiles.d.ts +12 -10
  249. package/dist/utils/parsePatchFiles.d.ts.map +1 -1
  250. package/dist/utils/parsePatchFiles.js +16 -9
  251. package/dist/utils/parsePatchFiles.js.map +1 -1
  252. package/dist/utils/prerenderHTMLIfNecessary.d.ts.map +1 -1
  253. package/dist/utils/processLine.d.ts.map +1 -1
  254. package/dist/utils/processLine.js +7 -24
  255. package/dist/utils/processLine.js.map +1 -1
  256. package/dist/utils/renderDiffWithHighlighter.d.ts +2 -2
  257. package/dist/utils/renderDiffWithHighlighter.d.ts.map +1 -1
  258. package/dist/utils/renderDiffWithHighlighter.js +15 -14
  259. package/dist/utils/renderDiffWithHighlighter.js.map +1 -1
  260. package/dist/utils/renderFileWithHighlighter.d.ts +7 -2
  261. package/dist/utils/renderFileWithHighlighter.d.ts.map +1 -1
  262. package/dist/utils/renderFileWithHighlighter.js +30 -4
  263. package/dist/utils/renderFileWithHighlighter.js.map +1 -1
  264. package/dist/utils/resolveVirtualFileMetrics.d.ts +7 -0
  265. package/dist/utils/resolveVirtualFileMetrics.d.ts.map +1 -0
  266. package/dist/utils/resolveVirtualFileMetrics.js +24 -0
  267. package/dist/utils/resolveVirtualFileMetrics.js.map +1 -0
  268. package/dist/utils/setLanguageOverride.d.ts.map +1 -1
  269. package/dist/utils/setWrapperNodeProps.d.ts +1 -0
  270. package/dist/utils/setWrapperNodeProps.d.ts.map +1 -1
  271. package/dist/utils/setWrapperNodeProps.js +19 -12
  272. package/dist/utils/setWrapperNodeProps.js.map +1 -1
  273. package/dist/utils/splitFileContents.d.ts +12 -0
  274. package/dist/utils/splitFileContents.d.ts.map +1 -0
  275. package/dist/utils/splitFileContents.js +17 -0
  276. package/dist/utils/splitFileContents.js.map +1 -0
  277. package/dist/utils/trimPatchContext.d.ts +5 -5
  278. package/dist/utils/trimPatchContext.d.ts.map +1 -1
  279. package/dist/worker/WorkerPoolManager.d.ts +2 -2
  280. package/dist/worker/WorkerPoolManager.d.ts.map +1 -1
  281. package/dist/worker/WorkerPoolManager.js +36 -24
  282. package/dist/worker/WorkerPoolManager.js.map +1 -1
  283. package/dist/worker/getOrCreateWorkerPoolSingleton.d.ts.map +1 -1
  284. package/dist/worker/getOrCreateWorkerPoolSingleton.js.map +1 -1
  285. package/dist/worker/types.d.ts +26 -26
  286. package/dist/worker/types.d.ts.map +1 -1
  287. package/dist/worker/worker-portable.js +323 -143
  288. package/dist/worker/worker-portable.js.map +1 -1
  289. package/dist/worker/worker.js +206 -106
  290. package/dist/worker/worker.js.map +1 -1
  291. package/package.json +52 -53
@@ -1,4 +1,4 @@
1
- import { AnnotationLineMap, AnnotationSide, AnnotationSpan, BaseCodeOptions, BaseDiffOptions, BundledLanguage, ChangeContent, ChangeTypes, CodeToHastOptions, ContextContent, DecorationItem, DiffLineAnnotation, DiffLineEventBaseProps, DiffsHighlighter, DiffsThemeNames, ExpansionDirections, ExtensionFormatMap, FileContents, FileDiffMetadata, ForcePlainTextOptions, GapSpan, Hunk, HunkData, HunkExpansionRegion, HunkLineType, HunkSeparators, LanguageRegistration, LineAnnotation, LineDiffTypes, LineEventBaseProps, LineInfo, LineSpans, LineTypes, ObservedAnnotationNodes, ObservedGridNodes, ParsedPatch, PrePropertiesConfig, RenderDiffFilesResult, RenderDiffOptions, RenderDiffResult, RenderFileMetadata, RenderFileOptions, RenderFileResult, RenderHeaderMetadataCallback, RenderHeaderMetadataProps, RenderRange, RenderWindow, RenderedDiffASTCache, RenderedFileASTCache, SharedRenderState, ShikiTransformer, SupportedLanguages, ThemeRegistrationResolved, ThemeTypes, ThemedDiffResult, ThemedFileResult, ThemedToken, ThemesType, VirtualWindowSpecs } from "../types.js";
1
+ import { AnnotationLineMap, AnnotationSide, AnnotationSpan, BaseCodeOptions, BaseDiffOptions, BundledLanguage, ChangeContent, ChangeTypes, CodeColumnType, CodeToHastOptions, ContextContent, DecorationItem, DiffLineAnnotation, DiffLineEventBaseProps, DiffsHighlighter, DiffsThemeNames, ExpansionDirections, ExtensionFormatMap, FileContents, FileDiffMetadata, ForceDiffPlainTextOptions, ForceFilePlainTextOptions, GapSpan, Hunk, HunkData, HunkExpansionRegion, HunkLineType, HunkSeparators, LanguageRegistration, LineAnnotation, LineDiffTypes, LineEventBaseProps, LineInfo, LineSpans, LineTypes, ObservedAnnotationNodes, ObservedGridNodes, ParsedPatch, PrePropertiesConfig, RenderDiffFilesResult, RenderDiffOptions, RenderDiffResult, RenderFileMetadata, RenderFileOptions, RenderFileResult, RenderHeaderMetadataCallback, RenderHeaderMetadataProps, RenderRange, RenderWindow, RenderedDiffASTCache, RenderedFileASTCache, SelectionSide, SharedRenderState, ShikiTransformer, SupportedLanguages, ThemeRegistrationResolved, ThemeTypes, ThemedDiffResult, ThemedFileResult, ThemedToken, ThemesType, VirtualFileMetrics, VirtualWindowSpecs } from "../types.js";
2
2
  import { WorkerInitializationRenderOptions, WorkerPoolOptions } from "../worker/types.js";
3
3
  import { FileOptions } from "../components/File.js";
4
4
  import { DiffBasePropsReact, FileProps } from "./types.js";
@@ -6,6 +6,7 @@ import { File } from "./File.js";
6
6
  import { FileDiff, FileDiffProps } from "./FileDiff.js";
7
7
  import { MultiFileDiff, MultiFileDiffProps } from "./MultiFileDiff.js";
8
8
  import { PatchDiff, PatchDiffProps } from "./PatchDiff.js";
9
+ import { Virtualizer, VirtualizerContext, useVirtualizer } from "./Virtualizer.js";
9
10
  import { WorkerPoolContext, WorkerPoolContextProvider, useWorkerPool } from "./WorkerPoolContext.js";
10
11
  import { HoverSlotStyles } from "./constants.js";
11
12
  import { renderDiffChildren } from "./utils/renderDiffChildren.js";
@@ -14,4 +15,4 @@ import { templateRender } from "./utils/templateRender.js";
14
15
  import { useFileDiffInstance } from "./utils/useFileDiffInstance.js";
15
16
  import { useFileInstance } from "./utils/useFileInstance.js";
16
17
  import { useStableCallback } from "./utils/useStableCallback.js";
17
- export { AnnotationLineMap, AnnotationSide, AnnotationSpan, BaseCodeOptions, BaseDiffOptions, BundledLanguage, ChangeContent, ChangeTypes, CodeToHastOptions, ContextContent, DecorationItem, DiffBasePropsReact, DiffLineAnnotation, DiffLineEventBaseProps, DiffsHighlighter, DiffsThemeNames, ExpansionDirections, ExtensionFormatMap, File, FileContents, FileDiff, FileDiffMetadata, FileDiffProps, FileOptions, FileProps, ForcePlainTextOptions, GapSpan, HoverSlotStyles, Hunk, HunkData, HunkExpansionRegion, HunkLineType, HunkSeparators, LanguageRegistration, LineAnnotation, LineDiffTypes, LineEventBaseProps, LineInfo, LineSpans, LineTypes, MultiFileDiff, MultiFileDiffProps, ObservedAnnotationNodes, ObservedGridNodes, ParsedPatch, PatchDiff, PatchDiffProps, PrePropertiesConfig, RenderDiffFilesResult, RenderDiffOptions, RenderDiffResult, RenderFileMetadata, RenderFileOptions, RenderFileResult, RenderHeaderMetadataCallback, RenderHeaderMetadataProps, RenderRange, RenderWindow, RenderedDiffASTCache, RenderedFileASTCache, SharedRenderState, ShikiTransformer, SupportedLanguages, ThemeRegistrationResolved, ThemeTypes, ThemedDiffResult, ThemedFileResult, ThemedToken, ThemesType, VirtualWindowSpecs, WorkerInitializationRenderOptions, WorkerPoolContext, WorkerPoolContextProvider, WorkerPoolOptions, renderDiffChildren, renderFileChildren, templateRender, useFileDiffInstance, useFileInstance, useStableCallback, useWorkerPool };
18
+ export { AnnotationLineMap, AnnotationSide, AnnotationSpan, BaseCodeOptions, BaseDiffOptions, BundledLanguage, ChangeContent, ChangeTypes, CodeColumnType, CodeToHastOptions, ContextContent, DecorationItem, DiffBasePropsReact, DiffLineAnnotation, DiffLineEventBaseProps, DiffsHighlighter, DiffsThemeNames, ExpansionDirections, ExtensionFormatMap, File, FileContents, FileDiff, FileDiffMetadata, FileDiffProps, FileOptions, FileProps, ForceDiffPlainTextOptions, ForceFilePlainTextOptions, GapSpan, HoverSlotStyles, Hunk, HunkData, HunkExpansionRegion, HunkLineType, HunkSeparators, LanguageRegistration, LineAnnotation, LineDiffTypes, LineEventBaseProps, LineInfo, LineSpans, LineTypes, MultiFileDiff, MultiFileDiffProps, ObservedAnnotationNodes, ObservedGridNodes, ParsedPatch, PatchDiff, PatchDiffProps, PrePropertiesConfig, RenderDiffFilesResult, RenderDiffOptions, RenderDiffResult, RenderFileMetadata, RenderFileOptions, RenderFileResult, RenderHeaderMetadataCallback, RenderHeaderMetadataProps, RenderRange, RenderWindow, RenderedDiffASTCache, RenderedFileASTCache, SelectionSide, SharedRenderState, ShikiTransformer, SupportedLanguages, ThemeRegistrationResolved, ThemeTypes, ThemedDiffResult, ThemedFileResult, ThemedToken, ThemesType, VirtualFileMetrics, VirtualWindowSpecs, Virtualizer, VirtualizerContext, WorkerInitializationRenderOptions, WorkerPoolContext, WorkerPoolContextProvider, WorkerPoolOptions, renderDiffChildren, renderFileChildren, templateRender, useFileDiffInstance, useFileInstance, useStableCallback, useVirtualizer, useWorkerPool };
@@ -1,6 +1,7 @@
1
1
  import { HoverSlotStyles } from "./constants.js";
2
2
  import { renderFileChildren } from "./utils/renderFileChildren.js";
3
3
  import { templateRender } from "./utils/templateRender.js";
4
+ import { Virtualizer, VirtualizerContext, useVirtualizer } from "./Virtualizer.js";
4
5
  import { WorkerPoolContext, WorkerPoolContextProvider, useWorkerPool } from "./WorkerPoolContext.js";
5
6
  import { useStableCallback } from "./utils/useStableCallback.js";
6
7
  import { useFileInstance } from "./utils/useFileInstance.js";
@@ -11,4 +12,4 @@ import { FileDiff } from "./FileDiff.js";
11
12
  import { MultiFileDiff } from "./MultiFileDiff.js";
12
13
  import { PatchDiff } from "./PatchDiff.js";
13
14
 
14
- export { File, FileDiff, HoverSlotStyles, MultiFileDiff, PatchDiff, WorkerPoolContext, WorkerPoolContextProvider, renderDiffChildren, renderFileChildren, templateRender, useFileDiffInstance, useFileInstance, useStableCallback, useWorkerPool };
15
+ export { File, FileDiff, HoverSlotStyles, MultiFileDiff, PatchDiff, Virtualizer, VirtualizerContext, WorkerPoolContext, WorkerPoolContextProvider, renderDiffChildren, renderFileChildren, templateRender, useFileDiffInstance, useFileInstance, useStableCallback, useVirtualizer, useWorkerPool };
@@ -1 +1 @@
1
- {"version":3,"file":"jsx.d.ts","names":["DIFFS_TAG_NAME","_0","HTMLElement","React","HTMLAttributes","DetailedHTMLProps","sideEffect"],"sources":["../../src/react/jsx.d.ts"],"sourcesContent":["import 'react';\n\nimport type { DIFFS_TAG_NAME } from '../constants';\n\ndeclare module 'react' {\n namespace JSX {\n interface IntrinsicElements {\n [DIFFS_TAG_NAME]: React.DetailedHTMLProps<\n React.HTMLAttributes<HTMLElement>,\n HTMLElement\n >;\n }\n }\n}\n"],"mappings":";;;;AAEmD,eAAA,OAAA,CAAA;EAAA,UAAA,GAAA,CAAA;cAAA,iBAAA,CAAA;MAMtBE,CADtBF,cAAAA,CACsBE,EADLC,KAAAA,CAAME,iBACDH,CAArBC,KAAAA,CAAMC,cAAAA,CAAeF,WAAfE,CAAAA,EACNF,WAAAA,CAFgBC;IAAjBH;EAAc"}
1
+ {"version":3,"file":"jsx.d.ts","names":["DIFFS_TAG_NAME","_1","HTMLElement","React","HTMLAttributes","DetailedHTMLProps","sideEffect"],"sources":["../../src/react/jsx.d.ts"],"sourcesContent":["import 'react';\nimport type { DIFFS_TAG_NAME } from '../constants';\n\ndeclare module 'react' {\n namespace JSX {\n interface IntrinsicElements {\n [DIFFS_TAG_NAME]: React.DetailedHTMLProps<\n React.HTMLAttributes<HTMLElement>,\n HTMLElement\n >;\n }\n }\n}\n"],"mappings":";;;;;EACmD,UAAA,GAAA,CAAA;IAAA,UAAA,iBAAA,CAAA;OAK5CA,cAAAA,CAL4C,EAK3BG,KAAAA,CAAME,iBALqB,CAM3CF,KAAAA,CAAMC,cAAeF,CAAAA,WAAAA,CAAAA,EACrBA,WADME,CACNF;IAFgBC;EAAjBH"}
@@ -1,4 +1,4 @@
1
- import { DiffLineAnnotation, FileContents, LineAnnotation, RenderHeaderMetadataProps } from "../types.js";
1
+ import { DiffLineAnnotation, FileContents, LineAnnotation, RenderHeaderMetadataProps, VirtualFileMetrics } from "../types.js";
2
2
  import { SelectedLineRange } from "../managers/LineSelectionManager.js";
3
3
  import { GetHoveredLineResult } from "../managers/MouseEventManager.js";
4
4
  import { FileOptions } from "../components/File.js";
@@ -8,11 +8,12 @@ import { CSSProperties, ReactNode } from "react";
8
8
  //#region src/react/types.d.ts
9
9
  interface DiffBasePropsReact<LAnnotation> {
10
10
  options?: FileDiffOptions<LAnnotation>;
11
+ metrics?: VirtualFileMetrics;
11
12
  lineAnnotations?: DiffLineAnnotation<LAnnotation>[];
12
13
  selectedLines?: SelectedLineRange | null;
13
14
  renderAnnotation?(annotations: DiffLineAnnotation<LAnnotation>): ReactNode;
14
15
  renderHeaderMetadata?(props: RenderHeaderMetadataProps): ReactNode;
15
- renderHoverUtility?(getHoveredLine: () => GetHoveredLineResult<"diff"> | undefined): ReactNode;
16
+ renderHoverUtility?(getHoveredLine: () => GetHoveredLineResult<'diff'> | undefined): ReactNode;
16
17
  className?: string;
17
18
  style?: CSSProperties;
18
19
  prerenderedHTML?: string;
@@ -20,11 +21,12 @@ interface DiffBasePropsReact<LAnnotation> {
20
21
  interface FileProps<LAnnotation> {
21
22
  file: FileContents;
22
23
  options?: FileOptions<LAnnotation>;
24
+ metrics?: VirtualFileMetrics;
23
25
  lineAnnotations?: LineAnnotation<LAnnotation>[];
24
26
  selectedLines?: SelectedLineRange | null;
25
27
  renderAnnotation?(annotations: LineAnnotation<LAnnotation>): ReactNode;
26
28
  renderHeaderMetadata?(file: FileContents): ReactNode;
27
- renderHoverUtility?(getHoveredLine: () => GetHoveredLineResult<"file"> | undefined): ReactNode;
29
+ renderHoverUtility?(getHoveredLine: () => GetHoveredLineResult<'file'> | undefined): ReactNode;
28
30
  className?: string;
29
31
  style?: CSSProperties;
30
32
  prerenderedHTML?: string;
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","names":[],"sources":["../../src/react/types.ts"],"sourcesContent":[],"mappings":";;;;;;;;UAaiB;YACL,gBAAgB;EAD5B,eAAiB,CAAA,EAEG,kBAFH,CAEsB,WAFtB,CAAA,EAAA;EACW,aAAA,CAAA,EAEV,iBAFU,GAAA,IAAA;EAAhB,gBAAA,EAAA,WAAA,EAGqB,kBAHrB,CAGwC,WAHxC,CAAA,CAAA,EAGuD,SAHvD;EAC2B,oBAAA,EAAA,KAAA,EAGR,yBAHQ,CAAA,EAGoB,SAHpB;EAAnB,kBAAA,EAAA,cAAA,EAAA,GAAA,GAKM,oBALN,CAAA,MAAA,CAAA,GAAA,SAAA,CAAA,EAMf,SANe;EACF,SAAA,CAAA,EAAA,MAAA;EACkC,KAAA,CAAA,EAM1C,aAN0C;EAAnB,eAAA,CAAA,EAAA,MAAA;;AACF,UASd,SATc,CAAA,WAAA,CAAA,CAAA;EAA4B,IAAA,EAUnD,YAVmD;EAEjC,OAAA,CAAA,EASd,WATc,CASF,WATE,CAAA;EACrB,eAAA,CAAA,EASe,cATf,CAS8B,WAT9B,CAAA,EAAA;EAEK,aAAA,CAAA,EAQQ,iBARR,GAAA,IAAA;EAAA,gBAAA,EAAA,WAAA,EASuB,cATvB,CASsC,WATtC,CAAA,CAAA,EASqD,SATrD;EAIV,oBAAiB,EAAA,IAAA,EAMa,YANb,CAAA,EAM4B,SAN5B;EACT,kBAAA,EAAA,cAAA,EAAA,GAAA,GAOkB,oBAPlB,CAAA,MAAA,CAAA,GAAA,SAAA,CAAA,EAQH,SARG;EACgB,SAAA,CAAA,EAAA,MAAA;EAAZ,KAAA,CAAA,EASF,aATE;EACuB,eAAA,CAAA,EAAA,MAAA"}
1
+ {"version":3,"file":"types.d.ts","names":["CSSProperties","ReactNode","FileOptions","FileDiffOptions","SelectedLineRange","GetHoveredLineResult","DiffLineAnnotation","FileContents","LineAnnotation","RenderHeaderMetadataProps","VirtualFileMetrics","DiffBasePropsReact","LAnnotation","FileProps"],"sources":["../../src/react/types.d.ts"],"sourcesContent":["import { type CSSProperties, type ReactNode } from 'react';\nimport type { FileOptions } from '../components/File';\nimport type { FileDiffOptions } from '../components/FileDiff';\nimport type { SelectedLineRange } from '../managers/LineSelectionManager';\nimport type { GetHoveredLineResult } from '../managers/MouseEventManager';\nimport type { DiffLineAnnotation, FileContents, LineAnnotation, RenderHeaderMetadataProps, VirtualFileMetrics } from '../types';\nexport interface DiffBasePropsReact<LAnnotation> {\n options?: FileDiffOptions<LAnnotation>;\n metrics?: VirtualFileMetrics;\n lineAnnotations?: DiffLineAnnotation<LAnnotation>[];\n selectedLines?: SelectedLineRange | null;\n renderAnnotation?(annotations: DiffLineAnnotation<LAnnotation>): ReactNode;\n renderHeaderMetadata?(props: RenderHeaderMetadataProps): ReactNode;\n renderHoverUtility?(getHoveredLine: () => GetHoveredLineResult<'diff'> | undefined): ReactNode;\n className?: string;\n style?: CSSProperties;\n prerenderedHTML?: string;\n}\nexport interface FileProps<LAnnotation> {\n file: FileContents;\n options?: FileOptions<LAnnotation>;\n metrics?: VirtualFileMetrics;\n lineAnnotations?: LineAnnotation<LAnnotation>[];\n selectedLines?: SelectedLineRange | null;\n renderAnnotation?(annotations: LineAnnotation<LAnnotation>): ReactNode;\n renderHeaderMetadata?(file: FileContents): ReactNode;\n renderHoverUtility?(getHoveredLine: () => GetHoveredLineResult<'file'> | undefined): ReactNode;\n className?: string;\n style?: CSSProperties;\n prerenderedHTML?: string;\n}\n//# sourceMappingURL=types.d.ts.map"],"mappings":";;;;;;;;UAMiBW;YACHR,gBAAgBS;EADbD,OAAAA,CAAAA,EAEHD,kBAFqBE;EACLA,eAAAA,CAAAA,EAERN,kBAFQM,CAEWA,WAFXA,CAAAA,EAAAA;EAAhBT,aAAAA,CAAAA,EAGMC,iBAHND,GAAAA,IAAAA;EACAO,gBAAAA,EAAAA,WAAAA,EAGqBJ,kBAHrBI,CAGwCE,WAHxCF,CAAAA,CAAAA,EAGuDT,SAHvDS;EAC2BE,oBAAAA,EAAAA,KAAAA,EAGRH,yBAHQG,CAAAA,EAGoBX,SAHpBW;EAAnBN,kBAAAA,EAAAA,cAAAA,EAAAA,GAAAA,GAIwBD,oBAJxBC,CAAAA,MAAAA,CAAAA,GAAAA,SAAAA,CAAAA,EAImEL,SAJnEK;EACFF,SAAAA,CAAAA,EAAAA,MAAAA;EACkCQ,KAAAA,CAAAA,EAI1CZ,aAJ0CY;EAAnBN,eAAAA,CAAAA,EAAAA,MAAAA;;AACFG,UAMhBI,SANgBJ,CAAAA,WAAAA,CAAAA,CAAAA;EAA4BR,IAAAA,EAOnDM,YAPmDN;EACfI,OAAAA,CAAAA,EAOhCH,WAPgCG,CAOpBO,WAPoBP,CAAAA;EAA2CJ,OAAAA,CAAAA,EAQ3ES,kBAR2ET;EAE7ED,eAAAA,CAAAA,EAOUQ,cAPVR,CAOyBY,WAPzBZ,CAAAA,EAAAA;EAAa,aAAA,CAAA,EAQLI,iBARK,GAAA,IAAA;EAGRS,gBAAS,EAAA,WAAAD,EAMSJ,cANT,CAMwBI,WANxB,CAAA,CAAA,EAMuCX,SANvC;EAChBM,oBAAAA,EAAAA,IAAAA,EAMsBA,YANtBA,CAAAA,EAMqCN,SANrCM;EACgBK,kBAAAA,EAAAA,cAAAA,EAAAA,GAAAA,GAMoBP,oBANpBO,CAAAA,MAAAA,CAAAA,GAAAA,SAAAA,CAAAA,EAM+DX,SAN/DW;EAAZV,SAAAA,CAAAA,EAAAA,MAAAA;EACAQ,KAAAA,CAAAA,EAOFV,aAPEU;EACuBE,eAAAA,CAAAA,EAAAA,MAAAA"}
@@ -8,11 +8,11 @@ interface RenderDiffChildrenProps<LAnnotation> {
8
8
  fileDiff?: FileDiffMetadata;
9
9
  deletionFile?: FileContents;
10
10
  additionFile?: FileContents;
11
- renderHeaderMetadata: DiffBasePropsReact<LAnnotation>["renderHeaderMetadata"];
12
- renderAnnotation: DiffBasePropsReact<LAnnotation>["renderAnnotation"];
13
- renderHoverUtility: DiffBasePropsReact<LAnnotation>["renderHoverUtility"];
14
- lineAnnotations: DiffBasePropsReact<LAnnotation>["lineAnnotations"];
15
- getHoveredLine(): GetHoveredLineResult<"diff"> | undefined;
11
+ renderHeaderMetadata: DiffBasePropsReact<LAnnotation>['renderHeaderMetadata'];
12
+ renderAnnotation: DiffBasePropsReact<LAnnotation>['renderAnnotation'];
13
+ renderHoverUtility: DiffBasePropsReact<LAnnotation>['renderHoverUtility'];
14
+ lineAnnotations: DiffBasePropsReact<LAnnotation>['lineAnnotations'];
15
+ getHoveredLine(): GetHoveredLineResult<'diff'> | undefined;
16
16
  }
17
17
  declare function renderDiffChildren<LAnnotation>({
18
18
  fileDiff,
@@ -1 +1 @@
1
- {"version":3,"file":"renderDiffChildren.d.ts","names":[],"sources":["../../../src/react/utils/renderDiffChildren.tsx"],"sourcesContent":[],"mappings":";;;;;;UASU;aACG;EAH2B,YAE9B,CAAA,EAEO,YAFP;EACG,YAAA,CAAA,EAEI,YAFJ;EACI,oBAAA,EAEO,kBAFP,CAE0B,WAF1B,CAAA,CAAA,sBAAA,CAAA;EACA,gBAAA,EAEG,kBAFH,CAEsB,WAFtB,CAAA,CAAA,kBAAA,CAAA;EAC0B,kBAAA,EAErB,kBAFqB,CAEF,WAFE,CAAA,CAAA,oBAAA,CAAA;EAAnB,eAAA,EAGL,kBAHK,CAGc,WAHd,CAAA,CAAA,iBAAA,CAAA;EACe,cAAA,EAAA,EAGnB,oBAHmB,CAAA,MAAA,CAAA,GAAA,SAAA;;AACE,iBAKzB,kBALyB,CAAA,WAAA,CAAA,CAAA;EAAA,QAAA;EAAA,YAAA;EAAA,YAAA;EAAA,oBAAA;EAAA,gBAAA;EAAA,kBAAA;EAAA,eAAA;EAAA;AAAA,CAAA,EActC,uBAdsC,CAcd,WAdc,CAAA,CAAA,EAcC,SAdD"}
1
+ {"version":3,"file":"renderDiffChildren.d.ts","names":["ReactNode","GetHoveredLineResult","FileContents","FileDiffMetadata","DiffBasePropsReact","RenderDiffChildrenProps","LAnnotation","renderDiffChildren","fileDiff","deletionFile","additionFile","renderHeaderMetadata","renderAnnotation","renderHoverUtility","lineAnnotations","getHoveredLine"],"sources":["../../../src/react/utils/renderDiffChildren.d.ts"],"sourcesContent":["import type { ReactNode } from 'react';\nimport type { GetHoveredLineResult } from '../../managers/MouseEventManager';\nimport type { FileContents, FileDiffMetadata } from '../../types';\nimport type { DiffBasePropsReact } from '../types';\ninterface RenderDiffChildrenProps<LAnnotation> {\n fileDiff?: FileDiffMetadata;\n deletionFile?: FileContents;\n additionFile?: FileContents;\n renderHeaderMetadata: DiffBasePropsReact<LAnnotation>['renderHeaderMetadata'];\n renderAnnotation: DiffBasePropsReact<LAnnotation>['renderAnnotation'];\n renderHoverUtility: DiffBasePropsReact<LAnnotation>['renderHoverUtility'];\n lineAnnotations: DiffBasePropsReact<LAnnotation>['lineAnnotations'];\n getHoveredLine(): GetHoveredLineResult<'diff'> | undefined;\n}\nexport declare function renderDiffChildren<LAnnotation>({ fileDiff, deletionFile, additionFile, renderHeaderMetadata, renderAnnotation, renderHoverUtility, lineAnnotations, getHoveredLine }: RenderDiffChildrenProps<LAnnotation>): ReactNode;\nexport {};\n//# sourceMappingURL=renderDiffChildren.d.ts.map"],"mappings":";;;;;;UAIUK;aACKF;EADLE,YAAAA,CAAAA,EAESH,YAFc;EAClBC,YAAAA,CAAAA,EAEID,YAFJC;EACID,oBAAAA,EAEOE,kBAFPF,CAE0BI,WAF1BJ,CAAAA,CAAAA,sBAAAA,CAAAA;EACAA,gBAAAA,EAEGE,kBAFHF,CAEsBI,WAFtBJ,CAAAA,CAAAA,kBAAAA,CAAAA;EAC0BI,kBAAAA,EAErBF,kBAFqBE,CAEFA,WAFEA,CAAAA,CAAAA,oBAAAA,CAAAA;EAAnBF,eAAAA,EAGLA,kBAHKA,CAGcE,WAHdF,CAAAA,CAAAA,iBAAAA,CAAAA;EACeE,cAAAA,EAAAA,EAGnBL,oBAHmBK,CAAAA,MAAAA,CAAAA,GAAAA,SAAAA;;AACEA,iBAInBC,kBAJmBD,CAAAA,WAAAA,CAAAA,CAAAA;EAAAA,QAAAA;EAAAA,YAAAA;EAAAA,YAAAA;EAAAA,oBAAAA;EAAAA,gBAAAA;EAAAA,kBAAAA;EAAAA,eAAAA;EAAAA;AAAAA,CAAAA,EAIoJD,uBAJpJC,CAI4KA,WAJ5KA,CAAAA,CAAAA,EAI2LN,SAJ3LM"}
@@ -6,11 +6,11 @@ import { ReactNode } from "react";
6
6
  //#region src/react/utils/renderFileChildren.d.ts
7
7
  interface RenderFileChildrenProps<LAnnotation> {
8
8
  file: FileContents;
9
- renderHeaderMetadata: FileProps<LAnnotation>["renderHeaderMetadata"];
10
- renderAnnotation: FileProps<LAnnotation>["renderAnnotation"];
11
- lineAnnotations: FileProps<LAnnotation>["lineAnnotations"];
12
- renderHoverUtility: FileProps<LAnnotation>["renderHoverUtility"];
13
- getHoveredLine(): GetHoveredLineResult<"file"> | undefined;
9
+ renderHeaderMetadata: FileProps<LAnnotation>['renderHeaderMetadata'];
10
+ renderAnnotation: FileProps<LAnnotation>['renderAnnotation'];
11
+ lineAnnotations: FileProps<LAnnotation>['lineAnnotations'];
12
+ renderHoverUtility: FileProps<LAnnotation>['renderHoverUtility'];
13
+ getHoveredLine(): GetHoveredLineResult<'file'> | undefined;
14
14
  }
15
15
  declare function renderFileChildren<LAnnotation>({
16
16
  file,
@@ -1 +1 @@
1
- {"version":3,"file":"renderFileChildren.d.ts","names":[],"sources":["../../../src/react/utils/renderFileChildren.tsx"],"sourcesContent":[],"mappings":";;;;;;UASU;QACF;EAHuB,oBAErB,EAEc,SAFd,CAEwB,WAFxB,CAAA,CAAA,sBAAA,CAAA;EACF,gBAAA,EAEY,SAFZ,CAEsB,WAFtB,CAAA,CAAA,kBAAA,CAAA;EAC0B,eAAA,EAEf,SAFe,CAEL,WAFK,CAAA,CAAA,iBAAA,CAAA;EAAV,kBAAA,EAGF,SAHE,CAGQ,WAHR,CAAA,CAAA,oBAAA,CAAA;EACM,cAAA,EAAA,EAGV,oBAHU,CAAA,MAAA,CAAA,GAAA,SAAA;;AACD,iBAKb,kBALa,CAAA,WAAA,CAAA,CAAA;EAAA,IAAA;EAAA,oBAAA;EAAA,gBAAA;EAAA,eAAA;EAAA,kBAAA;EAAA;AAAA,CAAA,EAY1B,uBAZ0B,CAYF,WAZE,CAAA,CAAA,EAYa,SAZb"}
1
+ {"version":3,"file":"renderFileChildren.d.ts","names":["ReactNode","GetHoveredLineResult","FileContents","FileProps","RenderFileChildrenProps","LAnnotation","renderFileChildren","file","renderHeaderMetadata","renderAnnotation","lineAnnotations","renderHoverUtility","getHoveredLine"],"sources":["../../../src/react/utils/renderFileChildren.d.ts"],"sourcesContent":["import type { ReactNode } from 'react';\nimport type { GetHoveredLineResult } from '../../managers/MouseEventManager';\nimport type { FileContents } from '../../types';\nimport type { FileProps } from '../types';\ninterface RenderFileChildrenProps<LAnnotation> {\n file: FileContents;\n renderHeaderMetadata: FileProps<LAnnotation>['renderHeaderMetadata'];\n renderAnnotation: FileProps<LAnnotation>['renderAnnotation'];\n lineAnnotations: FileProps<LAnnotation>['lineAnnotations'];\n renderHoverUtility: FileProps<LAnnotation>['renderHoverUtility'];\n getHoveredLine(): GetHoveredLineResult<'file'> | undefined;\n}\nexport declare function renderFileChildren<LAnnotation>({ file, renderHeaderMetadata, renderAnnotation, lineAnnotations, renderHoverUtility, getHoveredLine }: RenderFileChildrenProps<LAnnotation>): ReactNode;\nexport {};\n//# sourceMappingURL=renderFileChildren.d.ts.map"],"mappings":";;;;;;UAIUI;QACAF;EADAE,oBAAAA,EAEgBD,SAFO,CAEGE,WAFHA,CAAAA,CAAAA,sBAAA,CAAA;EACvBH,gBAAAA,EAEYC,SAFZD,CAEsBG,WAFtBH,CAAAA,CAAAA,kBAAAA,CAAAA;EAC0BG,eAAAA,EAEfF,SAFeE,CAELA,WAFKA,CAAAA,CAAAA,iBAAAA,CAAAA;EAAVF,kBAAAA,EAGFA,SAHEA,CAGQE,WAHRF,CAAAA,CAAAA,oBAAAA,CAAAA;EACME,cAAAA,EAAAA,EAGVJ,oBAHUI,CAAAA,MAAAA,CAAAA,GAAAA,SAAAA;;AACDA,iBAIPC,kBAJOD,CAAAA,WAAAA,CAAAA,CAAAA;EAAAA,IAAAA;EAAAA,oBAAAA;EAAAA,gBAAAA;EAAAA,eAAAA;EAAAA,kBAAAA;EAAAA;AAAAA,CAAAA,EAIgID,uBAJhIC,CAIwJA,WAJxJA,CAAAA,CAAAA,EAIuKL,SAJvKK"}
@@ -1 +1 @@
1
- {"version":3,"file":"templateRender.d.ts","names":[],"sources":["../../../src/react/utils/templateRender.tsx"],"sourcesContent":[],"mappings":";;;iBAEgB,cAAA,WACJ,wCAET"}
1
+ {"version":3,"file":"templateRender.d.ts","names":["ReactNode","templateRender"],"sources":["../../../src/react/utils/templateRender.d.ts"],"sourcesContent":["import type { ReactNode } from 'react';\nexport declare function templateRender(children: ReactNode, __html: string | undefined): ReactNode;\n//# sourceMappingURL=templateRender.d.ts.map"],"mappings":";;;iBACwBC,cAAAA,WAAyBD,wCAAwCA"}
@@ -1,4 +1,4 @@
1
- import { DiffLineAnnotation, FileContents, FileDiffMetadata } from "../../types.js";
1
+ import { DiffLineAnnotation, FileContents, FileDiffMetadata, VirtualFileMetrics } from "../../types.js";
2
2
  import { SelectedLineRange } from "../../managers/LineSelectionManager.js";
3
3
  import { GetHoveredLineResult } from "../../managers/MouseEventManager.js";
4
4
  import { FileDiffOptions } from "../../components/FileDiff.js";
@@ -12,10 +12,11 @@ interface UseFileDiffInstanceProps<LAnnotation> {
12
12
  lineAnnotations: DiffLineAnnotation<LAnnotation>[] | undefined;
13
13
  selectedLines: SelectedLineRange | null | undefined;
14
14
  prerenderedHTML: string | undefined;
15
+ metrics?: VirtualFileMetrics;
15
16
  }
16
17
  interface UseFileDiffInstanceReturn {
17
18
  ref(node: HTMLElement | null): void;
18
- getHoveredLine(): GetHoveredLineResult<"diff"> | undefined;
19
+ getHoveredLine(): GetHoveredLineResult<'diff'> | undefined;
19
20
  }
20
21
  declare function useFileDiffInstance<LAnnotation>({
21
22
  oldFile,
@@ -24,7 +25,8 @@ declare function useFileDiffInstance<LAnnotation>({
24
25
  options,
25
26
  lineAnnotations,
26
27
  selectedLines,
27
- prerenderedHTML
28
+ prerenderedHTML,
29
+ metrics
28
30
  }: UseFileDiffInstanceProps<LAnnotation>): UseFileDiffInstanceReturn;
29
31
  //#endregion
30
32
  export { useFileDiffInstance };
@@ -1 +1 @@
1
- {"version":3,"file":"useFileDiffInstance.d.ts","names":[],"sources":["../../../src/react/utils/useFileDiffInstance.ts"],"sourcesContent":[],"mappings":";;;;;;UAuBU;YACE;EATL,OAQG,CAAA,EAEE,YAFF;EACE,QAAA,CAAA,EAEC,gBAFD;EACA,OAAA,EAED,eAFC,CAEe,WAFf,CAAA,GAAA,SAAA;EACC,eAAA,EAEM,kBAFN,CAEyB,WAFzB,CAAA,EAAA,GAAA,SAAA;EACc,aAAA,EAEV,iBAFU,GAAA,IAAA,GAAA,SAAA;EAAhB,eAAA,EAAA,MAAA,GAAA,SAAA;;UAMD,yBAAA,CALS;EACF,GAAA,CAAA,IAAA,EAKL,WALK,GAAA,IAAA,CAAA,EAAA,IAAA;EAAA,cAAA,EAAA,EAMG,oBANH,CAAA,MAAA,CAAA,GAAA,SAAA;AAAA;AASD,iBAAA,mBAAA,CAAA,WAAA,CAAA,CAAA;EAAA,OAAA;EAAA,OAAA;EAAA,QAAA;EAAA,OAAA;EAAA,eAAA;EAAA,aAAA;EAAA;AAAA,CAAA,EAQb,wBARa,CAQY,WARZ,CAAA,CAAA,EAQ2B,yBAR3B"}
1
+ {"version":3,"file":"useFileDiffInstance.d.ts","names":["FileDiffOptions","SelectedLineRange","GetHoveredLineResult","DiffLineAnnotation","FileContents","FileDiffMetadata","VirtualFileMetrics","UseFileDiffInstanceProps","LAnnotation","UseFileDiffInstanceReturn","HTMLElement","useFileDiffInstance","oldFile","newFile","fileDiff","options","lineAnnotations","selectedLines","prerenderedHTML","metrics"],"sources":["../../../src/react/utils/useFileDiffInstance.d.ts"],"sourcesContent":["import { type FileDiffOptions } from '../../components/FileDiff';\nimport type { SelectedLineRange } from '../../managers/LineSelectionManager';\nimport type { GetHoveredLineResult } from '../../managers/MouseEventManager';\nimport type { DiffLineAnnotation, FileContents, FileDiffMetadata, VirtualFileMetrics } from '../../types';\ninterface UseFileDiffInstanceProps<LAnnotation> {\n oldFile?: FileContents;\n newFile?: FileContents;\n fileDiff?: FileDiffMetadata;\n options: FileDiffOptions<LAnnotation> | undefined;\n lineAnnotations: DiffLineAnnotation<LAnnotation>[] | undefined;\n selectedLines: SelectedLineRange | null | undefined;\n prerenderedHTML: string | undefined;\n metrics?: VirtualFileMetrics;\n}\ninterface UseFileDiffInstanceReturn {\n ref(node: HTMLElement | null): void;\n getHoveredLine(): GetHoveredLineResult<'diff'> | undefined;\n}\nexport declare function useFileDiffInstance<LAnnotation>({ oldFile, newFile, fileDiff, options, lineAnnotations, selectedLines, prerenderedHTML, metrics }: UseFileDiffInstanceProps<LAnnotation>): UseFileDiffInstanceReturn;\nexport {};\n//# sourceMappingURL=useFileDiffInstance.d.ts.map"],"mappings":";;;;;;UAIUO;YACIH;EADJG,OAAAA,CAAAA,EAEIH,YAFJG;EACIH,QAAAA,CAAAA,EAECC,gBAFDD;EACAA,OAAAA,EAEDJ,eAFCI,CAEeI,WAFfJ,CAAAA,GAAAA,SAAAA;EACCC,eAAAA,EAEMF,kBAFNE,CAEyBG,WAFzBH,CAAAA,EAAAA,GAAAA,SAAAA;EACcG,aAAAA,EAEVP,iBAFUO,GAAAA,IAAAA,GAAAA,SAAAA;EAAhBR,eAAAA,EAAAA,MAAAA,GAAAA,SAAAA;EAC2BQ,OAAAA,CAAAA,EAG1BF,kBAH0BE;;UAK9BC,yBAAAA,CAJSR;EAELK,GAAAA,CAAAA,IAAAA,EAGAI,WAHAJ,GAAAA,IAAAA,CAAAA,EAAAA,IAAAA;EAAkB,cAAA,EAAA,EAIVJ,oBAJU,CAAA,MAAA,CAAA,GAAA,SAAA;AAAA;AAMRS,iBAAAA,mBAAmBH,CAAAA,WAAA,CAAA,CAAA;EAAA,OAAA;EAAA,OAAA;EAAA,QAAA;EAAA,OAAA;EAAA,eAAA;EAAA,aAAA;EAAA,eAAA;EAAA;AAAA,CAAA,EAAiHD,wBAAjH,CAA0IC,WAA1I,CAAA,CAAA,EAAyJC,yBAAzJ"}
@@ -1,18 +1,22 @@
1
1
  import { FileDiff } from "../../components/FileDiff.js";
2
+ import { VirtualizedFileDiff } from "../../components/VirtualizedFileDiff.js";
2
3
  import { areOptionsEqual } from "../../utils/areOptionsEqual.js";
4
+ import { useVirtualizer } from "../Virtualizer.js";
3
5
  import { WorkerPoolContext } from "../WorkerPoolContext.js";
4
6
  import { useStableCallback } from "./useStableCallback.js";
5
7
  import { useCallback, useContext, useEffect, useLayoutEffect, useRef } from "react";
6
8
 
7
9
  //#region src/react/utils/useFileDiffInstance.ts
8
10
  const useIsometricEffect = typeof window === "undefined" ? useEffect : useLayoutEffect;
9
- function useFileDiffInstance({ oldFile, newFile, fileDiff, options, lineAnnotations, selectedLines, prerenderedHTML }) {
11
+ function useFileDiffInstance({ oldFile, newFile, fileDiff, options, lineAnnotations, selectedLines, prerenderedHTML, metrics }) {
12
+ const simpleVirtualizer = useVirtualizer();
10
13
  const poolManager = useContext(WorkerPoolContext);
11
14
  const instanceRef = useRef(null);
12
15
  const ref = useStableCallback((fileContainer) => {
13
16
  if (fileContainer != null) {
14
17
  if (instanceRef.current != null) throw new Error("useFileDiffInstance: An instance should not already exist when a node is created");
15
- instanceRef.current = new FileDiff(options, poolManager, true);
18
+ if (simpleVirtualizer != null) instanceRef.current = new VirtualizedFileDiff(options, simpleVirtualizer, metrics, poolManager, true);
19
+ else instanceRef.current = new FileDiff(options, poolManager, true);
16
20
  instanceRef.current.hydrate({
17
21
  fileDiff,
18
22
  oldFile,
@@ -1 +1 @@
1
- {"version":3,"file":"useFileDiffInstance.js","names":[],"sources":["../../../src/react/utils/useFileDiffInstance.ts"],"sourcesContent":["import {\n useCallback,\n useContext,\n useEffect,\n useLayoutEffect,\n useRef,\n} from 'react';\n\nimport { FileDiff, type FileDiffOptions } from '../../components/FileDiff';\nimport type { SelectedLineRange } from '../../managers/LineSelectionManager';\nimport type { GetHoveredLineResult } from '../../managers/MouseEventManager';\nimport type {\n DiffLineAnnotation,\n FileContents,\n FileDiffMetadata,\n} from '../../types';\nimport { areOptionsEqual } from '../../utils/areOptionsEqual';\nimport { WorkerPoolContext } from '../WorkerPoolContext';\nimport { useStableCallback } from './useStableCallback';\n\nconst useIsometricEffect =\n typeof window === 'undefined' ? useEffect : useLayoutEffect;\n\ninterface UseFileDiffInstanceProps<LAnnotation> {\n oldFile?: FileContents;\n newFile?: FileContents;\n fileDiff?: FileDiffMetadata;\n options: FileDiffOptions<LAnnotation> | undefined;\n lineAnnotations: DiffLineAnnotation<LAnnotation>[] | undefined;\n selectedLines: SelectedLineRange | null | undefined;\n prerenderedHTML: string | undefined;\n}\n\ninterface UseFileDiffInstanceReturn {\n ref(node: HTMLElement | null): void;\n getHoveredLine(): GetHoveredLineResult<'diff'> | undefined;\n}\n\nexport function useFileDiffInstance<LAnnotation>({\n oldFile,\n newFile,\n fileDiff,\n options,\n lineAnnotations,\n selectedLines,\n prerenderedHTML,\n}: UseFileDiffInstanceProps<LAnnotation>): UseFileDiffInstanceReturn {\n const poolManager = useContext(WorkerPoolContext);\n const instanceRef = useRef<FileDiff<LAnnotation> | null>(null);\n const ref = useStableCallback((fileContainer: HTMLElement | null) => {\n if (fileContainer != null) {\n if (instanceRef.current != null) {\n throw new Error(\n 'useFileDiffInstance: An instance should not already exist when a node is created'\n );\n }\n instanceRef.current = new FileDiff(options, poolManager, true);\n void instanceRef.current.hydrate({\n fileDiff,\n oldFile,\n newFile,\n fileContainer,\n lineAnnotations,\n prerenderedHTML,\n });\n } else {\n if (instanceRef.current == null) {\n throw new Error(\n 'useFileDiffInstance: A FileDiff instance should exist when unmounting'\n );\n }\n instanceRef.current.cleanUp();\n instanceRef.current = null;\n }\n });\n\n useIsometricEffect(() => {\n if (instanceRef.current == null) return;\n const instance = instanceRef.current;\n const forceRender = !areOptionsEqual(instance.options, options);\n instance.setOptions(options);\n void instance.render({\n forceRender,\n fileDiff,\n oldFile,\n newFile,\n lineAnnotations,\n });\n if (selectedLines !== undefined) {\n instance.setSelectedLines(selectedLines);\n }\n });\n\n const getHoveredLine = useCallback(():\n | GetHoveredLineResult<'diff'>\n | undefined => {\n return instanceRef.current?.getHoveredLine();\n }, []);\n\n return { ref, getHoveredLine };\n}\n"],"mappings":";;;;;;;AAoBA,MAAM,qBACJ,OAAO,WAAW,cAAc,YAAY;AAiB9C,SAAgB,oBAAiC,EAC/C,SACA,SACA,UACA,SACA,iBACA,eACA,mBACmE;CACnE,MAAM,cAAc,WAAW,kBAAkB;CACjD,MAAM,cAAc,OAAqC,KAAK;CAC9D,MAAM,MAAM,mBAAmB,kBAAsC;AACnE,MAAI,iBAAiB,MAAM;AACzB,OAAI,YAAY,WAAW,KACzB,OAAM,IAAI,MACR,mFACD;AAEH,eAAY,UAAU,IAAI,SAAS,SAAS,aAAa,KAAK;AAC9D,GAAK,YAAY,QAAQ,QAAQ;IAC/B;IACA;IACA;IACA;IACA;IACA;IACD,CAAC;SACG;AACL,OAAI,YAAY,WAAW,KACzB,OAAM,IAAI,MACR,wEACD;AAEH,eAAY,QAAQ,SAAS;AAC7B,eAAY,UAAU;;GAExB;AAEF,0BAAyB;AACvB,MAAI,YAAY,WAAW,KAAM;EACjC,MAAM,WAAW,YAAY;EAC7B,MAAM,cAAc,CAAC,gBAAgB,SAAS,SAAS,QAAQ;AAC/D,WAAS,WAAW,QAAQ;AAC5B,EAAK,SAAS,OAAO;GACnB;GACA;GACA;GACA;GACA;GACD,CAAC;AACF,MAAI,kBAAkB,OACpB,UAAS,iBAAiB,cAAc;GAE1C;AAQF,QAAO;EAAE;EAAK,gBANS,kBAEN;AACf,UAAO,YAAY,SAAS,gBAAgB;KAC3C,EAAE,CAAC;EAEwB"}
1
+ {"version":3,"file":"useFileDiffInstance.js","names":[],"sources":["../../../src/react/utils/useFileDiffInstance.ts"],"sourcesContent":["import {\n useCallback,\n useContext,\n useEffect,\n useLayoutEffect,\n useRef,\n} from 'react';\n\nimport { FileDiff, type FileDiffOptions } from '../../components/FileDiff';\nimport { VirtualizedFileDiff } from '../../components/VirtualizedFileDiff';\nimport type { SelectedLineRange } from '../../managers/LineSelectionManager';\nimport type { GetHoveredLineResult } from '../../managers/MouseEventManager';\nimport type {\n DiffLineAnnotation,\n FileContents,\n FileDiffMetadata,\n VirtualFileMetrics,\n} from '../../types';\nimport { areOptionsEqual } from '../../utils/areOptionsEqual';\nimport { useVirtualizer } from '../Virtualizer';\nimport { WorkerPoolContext } from '../WorkerPoolContext';\nimport { useStableCallback } from './useStableCallback';\n\nconst useIsometricEffect =\n typeof window === 'undefined' ? useEffect : useLayoutEffect;\n\ninterface UseFileDiffInstanceProps<LAnnotation> {\n oldFile?: FileContents;\n newFile?: FileContents;\n fileDiff?: FileDiffMetadata;\n options: FileDiffOptions<LAnnotation> | undefined;\n lineAnnotations: DiffLineAnnotation<LAnnotation>[] | undefined;\n selectedLines: SelectedLineRange | null | undefined;\n prerenderedHTML: string | undefined;\n metrics?: VirtualFileMetrics;\n}\n\ninterface UseFileDiffInstanceReturn {\n ref(node: HTMLElement | null): void;\n getHoveredLine(): GetHoveredLineResult<'diff'> | undefined;\n}\n\nexport function useFileDiffInstance<LAnnotation>({\n oldFile,\n newFile,\n fileDiff,\n options,\n lineAnnotations,\n selectedLines,\n prerenderedHTML,\n metrics,\n}: UseFileDiffInstanceProps<LAnnotation>): UseFileDiffInstanceReturn {\n const simpleVirtualizer = useVirtualizer();\n const poolManager = useContext(WorkerPoolContext);\n const instanceRef = useRef<\n FileDiff<LAnnotation> | VirtualizedFileDiff<LAnnotation> | null\n >(null);\n const ref = useStableCallback((fileContainer: HTMLElement | null) => {\n if (fileContainer != null) {\n if (instanceRef.current != null) {\n throw new Error(\n 'useFileDiffInstance: An instance should not already exist when a node is created'\n );\n }\n if (simpleVirtualizer != null) {\n instanceRef.current = new VirtualizedFileDiff(\n options,\n simpleVirtualizer,\n metrics,\n poolManager,\n true\n );\n } else {\n instanceRef.current = new FileDiff(options, poolManager, true);\n }\n void instanceRef.current.hydrate({\n fileDiff,\n oldFile,\n newFile,\n fileContainer,\n lineAnnotations,\n prerenderedHTML,\n });\n } else {\n if (instanceRef.current == null) {\n throw new Error(\n 'useFileDiffInstance: A FileDiff instance should exist when unmounting'\n );\n }\n instanceRef.current.cleanUp();\n instanceRef.current = null;\n }\n });\n\n useIsometricEffect(() => {\n if (instanceRef.current == null) return;\n const instance = instanceRef.current;\n const forceRender = !areOptionsEqual(instance.options, options);\n instance.setOptions(options);\n void instance.render({\n forceRender,\n fileDiff,\n oldFile,\n newFile,\n lineAnnotations,\n });\n if (selectedLines !== undefined) {\n instance.setSelectedLines(selectedLines);\n }\n });\n\n const getHoveredLine = useCallback(():\n | GetHoveredLineResult<'diff'>\n | undefined => {\n return instanceRef.current?.getHoveredLine();\n }, []);\n\n return { ref, getHoveredLine };\n}\n"],"mappings":";;;;;;;;;AAuBA,MAAM,qBACJ,OAAO,WAAW,cAAc,YAAY;AAkB9C,SAAgB,oBAAiC,EAC/C,SACA,SACA,UACA,SACA,iBACA,eACA,iBACA,WACmE;CACnE,MAAM,oBAAoB,gBAAgB;CAC1C,MAAM,cAAc,WAAW,kBAAkB;CACjD,MAAM,cAAc,OAElB,KAAK;CACP,MAAM,MAAM,mBAAmB,kBAAsC;AACnE,MAAI,iBAAiB,MAAM;AACzB,OAAI,YAAY,WAAW,KACzB,OAAM,IAAI,MACR,mFACD;AAEH,OAAI,qBAAqB,KACvB,aAAY,UAAU,IAAI,oBACxB,SACA,mBACA,SACA,aACA,KACD;OAED,aAAY,UAAU,IAAI,SAAS,SAAS,aAAa,KAAK;AAEhE,GAAK,YAAY,QAAQ,QAAQ;IAC/B;IACA;IACA;IACA;IACA;IACA;IACD,CAAC;SACG;AACL,OAAI,YAAY,WAAW,KACzB,OAAM,IAAI,MACR,wEACD;AAEH,eAAY,QAAQ,SAAS;AAC7B,eAAY,UAAU;;GAExB;AAEF,0BAAyB;AACvB,MAAI,YAAY,WAAW,KAAM;EACjC,MAAM,WAAW,YAAY;EAC7B,MAAM,cAAc,CAAC,gBAAgB,SAAS,SAAS,QAAQ;AAC/D,WAAS,WAAW,QAAQ;AAC5B,EAAK,SAAS,OAAO;GACnB;GACA;GACA;GACA;GACA;GACD,CAAC;AACF,MAAI,kBAAkB,OACpB,UAAS,iBAAiB,cAAc;GAE1C;AAQF,QAAO;EAAE;EAAK,gBANS,kBAEN;AACf,UAAO,YAAY,SAAS,gBAAgB;KAC3C,EAAE,CAAC;EAEwB"}
@@ -1,4 +1,4 @@
1
- import { FileContents, LineAnnotation } from "../../types.js";
1
+ import { FileContents, LineAnnotation, VirtualFileMetrics } from "../../types.js";
2
2
  import { SelectedLineRange } from "../../managers/LineSelectionManager.js";
3
3
  import { GetHoveredLineResult } from "../../managers/MouseEventManager.js";
4
4
  import { FileOptions } from "../../components/File.js";
@@ -10,17 +10,19 @@ interface UseFileInstanceProps<LAnnotation> {
10
10
  lineAnnotations: LineAnnotation<LAnnotation>[] | undefined;
11
11
  selectedLines: SelectedLineRange | null | undefined;
12
12
  prerenderedHTML: string | undefined;
13
+ metrics?: VirtualFileMetrics;
13
14
  }
14
15
  interface UseFileInstanceReturn {
15
16
  ref(node: HTMLElement | null): void;
16
- getHoveredLine(): GetHoveredLineResult<"file"> | undefined;
17
+ getHoveredLine(): GetHoveredLineResult<'file'> | undefined;
17
18
  }
18
19
  declare function useFileInstance<LAnnotation>({
19
20
  file,
20
21
  options,
21
22
  lineAnnotations,
22
23
  selectedLines,
23
- prerenderedHTML
24
+ prerenderedHTML,
25
+ metrics
24
26
  }: UseFileInstanceProps<LAnnotation>): UseFileInstanceReturn;
25
27
  //#endregion
26
28
  export { useFileInstance };
@@ -1 +1 @@
1
- {"version":3,"file":"useFileInstance.d.ts","names":[],"sources":["../../../src/react/utils/useFileInstance.ts"],"sourcesContent":[],"mappings":";;;;;;UAmBU;QACF;EAT0C,OAQxC,EAEC,WAFD,CAEa,WAFb,CAAA,GAAA,SAAA;EACF,eAAA,EAEW,cAFX,CAE0B,WAF1B,CAAA,EAAA,GAAA,SAAA;EACe,aAAA,EAEN,iBAFM,GAAA,IAAA,GAAA,SAAA;EAAZ,eAAA,EAAA,MAAA,GAAA,SAAA;;UAMD,qBAAA,CALS;EACF,GAAA,CAAA,IAAA,EAKL,WALK,GAAA,IAAA,CAAA,EAAA,IAAA;EAAA,cAAA,EAAA,EAMG,oBANH,CAAA,MAAA,CAAA,GAAA,SAAA;AAAA;AASD,iBAAA,eAAA,CAAA,WAAA,CAAA,CAAA;EAAA,IAAA;EAAA,OAAA;EAAA,eAAA;EAAA,aAAA;EAAA;AAAA,CAAA,EAMb,oBANa,CAMQ,WANR,CAAA,CAAA,EAMuB,qBANvB"}
1
+ {"version":3,"file":"useFileInstance.d.ts","names":["FileOptions","SelectedLineRange","GetHoveredLineResult","FileContents","LineAnnotation","VirtualFileMetrics","UseFileInstanceProps","LAnnotation","UseFileInstanceReturn","HTMLElement","useFileInstance","file","options","lineAnnotations","selectedLines","prerenderedHTML","metrics"],"sources":["../../../src/react/utils/useFileInstance.d.ts"],"sourcesContent":["import { type FileOptions } from '../../components/File';\nimport type { SelectedLineRange } from '../../managers/LineSelectionManager';\nimport type { GetHoveredLineResult } from '../../managers/MouseEventManager';\nimport type { FileContents, LineAnnotation, VirtualFileMetrics } from '../../types';\ninterface UseFileInstanceProps<LAnnotation> {\n file: FileContents;\n options: FileOptions<LAnnotation> | undefined;\n lineAnnotations: LineAnnotation<LAnnotation>[] | undefined;\n selectedLines: SelectedLineRange | null | undefined;\n prerenderedHTML: string | undefined;\n metrics?: VirtualFileMetrics;\n}\ninterface UseFileInstanceReturn {\n ref(node: HTMLElement | null): void;\n getHoveredLine(): GetHoveredLineResult<'file'> | undefined;\n}\nexport declare function useFileInstance<LAnnotation>({ file, options, lineAnnotations, selectedLines, prerenderedHTML, metrics }: UseFileInstanceProps<LAnnotation>): UseFileInstanceReturn;\nexport {};\n//# sourceMappingURL=useFileInstance.d.ts.map"],"mappings":";;;;;;UAIUM;QACAH;EADAG,OAAAA,EAEGN,WAFHM,CAEeC,WAFKA,CAAAA,GAAAA,SAAAA;EACpBJ,eAAAA,EAEWC,cAFXD,CAE0BI,WAF1BJ,CAAAA,EAAAA,GAAAA,SAAAA;EACeI,aAAAA,EAENN,iBAFMM,GAAAA,IAAAA,GAAAA,SAAAA;EAAZP,eAAAA,EAAAA,MAAAA,GAAAA,SAAAA;EACuBO,OAAAA,CAAAA,EAGtBF,kBAHsBE;;UAK1BC,qBAAAA,CAJSP;EAELI,GAAAA,CAAAA,IAAAA,EAGAI,WAHAJ,GAAAA,IAAAA,CAAAA,EAAAA,IAAAA;EAAkB,cAAA,EAAA,EAIVH,oBAJU,CAAA,MAAA,CAAA,GAAA,SAAA;AAAA;AAMRQ,iBAAAA,eAAeH,CAAAA,WAAA,CAAA,CAAA;EAAA,IAAA;EAAA,OAAA;EAAA,eAAA;EAAA,aAAA;EAAA,eAAA;EAAA;AAAA,CAAA,EAA2FD,oBAA3F,CAAgHC,WAAhH,CAAA,CAAA,EAA+HC,qBAA/H"}
@@ -1,18 +1,22 @@
1
1
  import { File } from "../../components/File.js";
2
+ import { VirtualizedFile } from "../../components/VirtualizedFile.js";
2
3
  import { areOptionsEqual } from "../../utils/areOptionsEqual.js";
4
+ import { useVirtualizer } from "../Virtualizer.js";
3
5
  import { WorkerPoolContext } from "../WorkerPoolContext.js";
4
6
  import { useStableCallback } from "./useStableCallback.js";
5
7
  import { useCallback, useContext, useEffect, useLayoutEffect, useRef } from "react";
6
8
 
7
9
  //#region src/react/utils/useFileInstance.ts
8
10
  const useIsometricEffect = typeof window === "undefined" ? useEffect : useLayoutEffect;
9
- function useFileInstance({ file, options, lineAnnotations, selectedLines, prerenderedHTML }) {
11
+ function useFileInstance({ file, options, lineAnnotations, selectedLines, prerenderedHTML, metrics }) {
12
+ const simpleVirtualizer = useVirtualizer();
10
13
  const poolManager = useContext(WorkerPoolContext);
11
14
  const instanceRef = useRef(null);
12
15
  const ref = useStableCallback((node) => {
13
16
  if (node != null) {
14
17
  if (instanceRef.current != null) throw new Error("File: An instance should not already exist when a node is created");
15
- instanceRef.current = new File(options, poolManager, true);
18
+ if (simpleVirtualizer != null) instanceRef.current = new VirtualizedFile(options, simpleVirtualizer, metrics, poolManager, true);
19
+ else instanceRef.current = new File(options, poolManager, true);
16
20
  instanceRef.current.hydrate({
17
21
  file,
18
22
  fileContainer: node,
@@ -1 +1 @@
1
- {"version":3,"file":"useFileInstance.js","names":[],"sources":["../../../src/react/utils/useFileInstance.ts"],"sourcesContent":["import {\n useCallback,\n useContext,\n useEffect,\n useLayoutEffect,\n useRef,\n} from 'react';\n\nimport { File, type FileOptions } from '../../components/File';\nimport type { SelectedLineRange } from '../../managers/LineSelectionManager';\nimport type { GetHoveredLineResult } from '../../managers/MouseEventManager';\nimport type { FileContents, LineAnnotation } from '../../types';\nimport { areOptionsEqual } from '../../utils/areOptionsEqual';\nimport { WorkerPoolContext } from '../WorkerPoolContext';\nimport { useStableCallback } from './useStableCallback';\n\nconst useIsometricEffect =\n typeof window === 'undefined' ? useEffect : useLayoutEffect;\n\ninterface UseFileInstanceProps<LAnnotation> {\n file: FileContents;\n options: FileOptions<LAnnotation> | undefined;\n lineAnnotations: LineAnnotation<LAnnotation>[] | undefined;\n selectedLines: SelectedLineRange | null | undefined;\n prerenderedHTML: string | undefined;\n}\n\ninterface UseFileInstanceReturn {\n ref(node: HTMLElement | null): void;\n getHoveredLine(): GetHoveredLineResult<'file'> | undefined;\n}\n\nexport function useFileInstance<LAnnotation>({\n file,\n options,\n lineAnnotations,\n selectedLines,\n prerenderedHTML,\n}: UseFileInstanceProps<LAnnotation>): UseFileInstanceReturn {\n const poolManager = useContext(WorkerPoolContext);\n const instanceRef = useRef<File<LAnnotation> | null>(null);\n const ref = useStableCallback((node: HTMLElement | null) => {\n if (node != null) {\n if (instanceRef.current != null) {\n throw new Error(\n 'File: An instance should not already exist when a node is created'\n );\n }\n // FIXME: Ideally we don't use FileUI here, and instead amalgamate\n // the renderers manually\n instanceRef.current = new File(options, poolManager, true);\n void instanceRef.current.hydrate({\n file,\n fileContainer: node,\n lineAnnotations,\n prerenderedHTML,\n });\n } else {\n if (instanceRef.current == null) {\n throw new Error('File: A File instance should exist when unmounting');\n }\n instanceRef.current.cleanUp();\n instanceRef.current = null;\n }\n });\n\n useIsometricEffect(() => {\n if (instanceRef.current == null) return;\n const forceRender = !areOptionsEqual(instanceRef.current.options, options);\n instanceRef.current.setOptions(options);\n void instanceRef.current.render({ file, lineAnnotations, forceRender });\n if (selectedLines !== undefined) {\n instanceRef.current.setSelectedLines(selectedLines);\n }\n });\n\n const getHoveredLine = useCallback(():\n | GetHoveredLineResult<'file'>\n | undefined => {\n return instanceRef.current?.getHoveredLine();\n }, []);\n return { ref, getHoveredLine };\n}\n"],"mappings":";;;;;;;AAgBA,MAAM,qBACJ,OAAO,WAAW,cAAc,YAAY;AAe9C,SAAgB,gBAA6B,EAC3C,MACA,SACA,iBACA,eACA,mBAC2D;CAC3D,MAAM,cAAc,WAAW,kBAAkB;CACjD,MAAM,cAAc,OAAiC,KAAK;CAC1D,MAAM,MAAM,mBAAmB,SAA6B;AAC1D,MAAI,QAAQ,MAAM;AAChB,OAAI,YAAY,WAAW,KACzB,OAAM,IAAI,MACR,oEACD;AAIH,eAAY,UAAU,IAAI,KAAK,SAAS,aAAa,KAAK;AAC1D,GAAK,YAAY,QAAQ,QAAQ;IAC/B;IACA,eAAe;IACf;IACA;IACD,CAAC;SACG;AACL,OAAI,YAAY,WAAW,KACzB,OAAM,IAAI,MAAM,qDAAqD;AAEvE,eAAY,QAAQ,SAAS;AAC7B,eAAY,UAAU;;GAExB;AAEF,0BAAyB;AACvB,MAAI,YAAY,WAAW,KAAM;EACjC,MAAM,cAAc,CAAC,gBAAgB,YAAY,QAAQ,SAAS,QAAQ;AAC1E,cAAY,QAAQ,WAAW,QAAQ;AACvC,EAAK,YAAY,QAAQ,OAAO;GAAE;GAAM;GAAiB;GAAa,CAAC;AACvE,MAAI,kBAAkB,OACpB,aAAY,QAAQ,iBAAiB,cAAc;GAErD;AAOF,QAAO;EAAE;EAAK,gBALS,kBAEN;AACf,UAAO,YAAY,SAAS,gBAAgB;KAC3C,EAAE,CAAC;EACwB"}
1
+ {"version":3,"file":"useFileInstance.js","names":[],"sources":["../../../src/react/utils/useFileInstance.ts"],"sourcesContent":["import {\n useCallback,\n useContext,\n useEffect,\n useLayoutEffect,\n useRef,\n} from 'react';\n\nimport { File, type FileOptions } from '../../components/File';\nimport { VirtualizedFile } from '../../components/VirtualizedFile';\nimport type { SelectedLineRange } from '../../managers/LineSelectionManager';\nimport type { GetHoveredLineResult } from '../../managers/MouseEventManager';\nimport type {\n FileContents,\n LineAnnotation,\n VirtualFileMetrics,\n} from '../../types';\nimport { areOptionsEqual } from '../../utils/areOptionsEqual';\nimport { useVirtualizer } from '../Virtualizer';\nimport { WorkerPoolContext } from '../WorkerPoolContext';\nimport { useStableCallback } from './useStableCallback';\n\nconst useIsometricEffect =\n typeof window === 'undefined' ? useEffect : useLayoutEffect;\n\ninterface UseFileInstanceProps<LAnnotation> {\n file: FileContents;\n options: FileOptions<LAnnotation> | undefined;\n lineAnnotations: LineAnnotation<LAnnotation>[] | undefined;\n selectedLines: SelectedLineRange | null | undefined;\n prerenderedHTML: string | undefined;\n metrics?: VirtualFileMetrics;\n}\n\ninterface UseFileInstanceReturn {\n ref(node: HTMLElement | null): void;\n getHoveredLine(): GetHoveredLineResult<'file'> | undefined;\n}\n\nexport function useFileInstance<LAnnotation>({\n file,\n options,\n lineAnnotations,\n selectedLines,\n prerenderedHTML,\n metrics,\n}: UseFileInstanceProps<LAnnotation>): UseFileInstanceReturn {\n const simpleVirtualizer = useVirtualizer();\n const poolManager = useContext(WorkerPoolContext);\n const instanceRef = useRef<\n File<LAnnotation> | VirtualizedFile<LAnnotation> | null\n >(null);\n const ref = useStableCallback((node: HTMLElement | null) => {\n if (node != null) {\n if (instanceRef.current != null) {\n throw new Error(\n 'File: An instance should not already exist when a node is created'\n );\n }\n if (simpleVirtualizer != null) {\n instanceRef.current = new VirtualizedFile(\n options,\n simpleVirtualizer,\n metrics,\n poolManager,\n true\n );\n } else {\n instanceRef.current = new File(options, poolManager, true);\n }\n void instanceRef.current.hydrate({\n file,\n fileContainer: node,\n lineAnnotations,\n prerenderedHTML,\n });\n } else {\n if (instanceRef.current == null) {\n throw new Error('File: A File instance should exist when unmounting');\n }\n instanceRef.current.cleanUp();\n instanceRef.current = null;\n }\n });\n\n useIsometricEffect(() => {\n if (instanceRef.current == null) return;\n const forceRender = !areOptionsEqual(instanceRef.current.options, options);\n instanceRef.current.setOptions(options);\n void instanceRef.current.render({ file, lineAnnotations, forceRender });\n if (selectedLines !== undefined) {\n instanceRef.current.setSelectedLines(selectedLines);\n }\n });\n\n const getHoveredLine = useCallback(():\n | GetHoveredLineResult<'file'>\n | undefined => {\n return instanceRef.current?.getHoveredLine();\n }, []);\n return { ref, getHoveredLine };\n}\n"],"mappings":";;;;;;;;;AAsBA,MAAM,qBACJ,OAAO,WAAW,cAAc,YAAY;AAgB9C,SAAgB,gBAA6B,EAC3C,MACA,SACA,iBACA,eACA,iBACA,WAC2D;CAC3D,MAAM,oBAAoB,gBAAgB;CAC1C,MAAM,cAAc,WAAW,kBAAkB;CACjD,MAAM,cAAc,OAElB,KAAK;CACP,MAAM,MAAM,mBAAmB,SAA6B;AAC1D,MAAI,QAAQ,MAAM;AAChB,OAAI,YAAY,WAAW,KACzB,OAAM,IAAI,MACR,oEACD;AAEH,OAAI,qBAAqB,KACvB,aAAY,UAAU,IAAI,gBACxB,SACA,mBACA,SACA,aACA,KACD;OAED,aAAY,UAAU,IAAI,KAAK,SAAS,aAAa,KAAK;AAE5D,GAAK,YAAY,QAAQ,QAAQ;IAC/B;IACA,eAAe;IACf;IACA;IACD,CAAC;SACG;AACL,OAAI,YAAY,WAAW,KACzB,OAAM,IAAI,MAAM,qDAAqD;AAEvE,eAAY,QAAQ,SAAS;AAC7B,eAAY,UAAU;;GAExB;AAEF,0BAAyB;AACvB,MAAI,YAAY,WAAW,KAAM;EACjC,MAAM,cAAc,CAAC,gBAAgB,YAAY,QAAQ,SAAS,QAAQ;AAC1E,cAAY,QAAQ,WAAW,QAAQ;AACvC,EAAK,YAAY,QAAQ,OAAO;GAAE;GAAM;GAAiB;GAAa,CAAC;AACvE,MAAI,kBAAkB,OACpB,aAAY,QAAQ,iBAAiB,cAAc;GAErD;AAOF,QAAO;EAAE;EAAK,gBALS,kBAEN;AACf,UAAO,YAAY,SAAS,gBAAgB;KAC3C,EAAE,CAAC;EACwB"}
@@ -1 +1 @@
1
- {"version":3,"file":"useStableCallback.d.ts","names":[],"sources":["../../../src/react/utils/useStableCallback.ts"],"sourcesContent":[],"mappings":";iBAGgB,+DACJ,IACT"}
1
+ {"version":3,"file":"useStableCallback.d.ts","names":["useStableCallback","T"],"sources":["../../../src/react/utils/useStableCallback.d.ts"],"sourcesContent":["export declare function useStableCallback<T extends (...args: any[]) => any>(callback: T): T;\n//# sourceMappingURL=useStableCallback.d.ts.map"],"mappings":";iBAAwBA,+DAA+DC,IAAIA"}
@@ -1 +1 @@
1
- {"version":3,"file":"useStableCallback.js","names":[],"sources":["../../../src/react/utils/useStableCallback.ts"],"sourcesContent":["import { useCallback, useInsertionEffect, useRef } from 'react';\n\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nexport function useStableCallback<T extends (...args: any[]) => any>(\n callback: T\n): T {\n const callbackRef = useRef(callback);\n useInsertionEffect(() => void (callbackRef.current = callback));\n return useCallback((...args: Parameters<T>): ReturnType<T> => {\n // eslint-disable-next-line @typescript-eslint/no-unsafe-return\n return callbackRef.current(...args);\n }, []) as T;\n}\n"],"mappings":";;;AAGA,SAAgB,kBACd,UACG;CACH,MAAM,cAAc,OAAO,SAAS;AACpC,0BAAyB,MAAM,YAAY,UAAU,UAAU;AAC/D,QAAO,aAAa,GAAG,SAAuC;AAE5D,SAAO,YAAY,QAAQ,GAAG,KAAK;IAClC,EAAE,CAAC"}
1
+ {"version":3,"file":"useStableCallback.js","names":[],"sources":["../../../src/react/utils/useStableCallback.ts"],"sourcesContent":["import { useCallback, useInsertionEffect, useRef } from 'react';\n\n// oxlint-disable-next-line typescript/no-explicit-any\nexport function useStableCallback<T extends (...args: any[]) => any>(\n callback: T\n): T {\n const callbackRef = useRef(callback);\n useInsertionEffect(() => void (callbackRef.current = callback));\n return useCallback((...args: Parameters<T>): ReturnType<T> => {\n // oxlint-disable-next-line typescript/no-unsafe-return\n return callbackRef.current(...args);\n }, []) as T;\n}\n"],"mappings":";;;AAGA,SAAgB,kBACd,UACG;CACH,MAAM,cAAc,OAAO,SAAS;AACpC,0BAAyB,MAAM,YAAY,UAAU,UAAU;AAC/D,QAAO,aAAa,GAAG,SAAuC;AAE5D,SAAO,YAAY,QAAQ,GAAG,KAAK;IAClC,EAAE,CAAC"}
@@ -1,21 +1,26 @@
1
- import { BaseDiffOptions, DiffLineAnnotation, DiffsHighlighter, ExpansionDirections, FileDiffMetadata, HunkData, HunkExpansionRegion, RenderDiffOptions, RenderRange, ThemeTypes, ThemedDiffResult } from "../types.js";
1
+ import { BaseDiffOptions, DiffLineAnnotation, ExpansionDirections, FileDiffMetadata, HunkData, HunkExpansionRegion, RenderDiffOptions, RenderRange, ThemeTypes, ThemedDiffResult } from "../types.js";
2
2
  import { WorkerPoolManager } from "../worker/WorkerPoolManager.js";
3
3
  import "../worker/index.js";
4
4
  import { Element, ElementContent } from "hast";
5
5
 
6
6
  //#region src/renderers/DiffHunksRenderer.d.ts
7
- type OptionsWithDefaults = Required<Omit<BaseDiffOptions, "lang" | "unsafeCSS">>;
8
7
  interface HunksRenderResult {
9
- additionsAST: ElementContent[] | undefined;
10
- deletionsAST: ElementContent[] | undefined;
11
- unifiedAST: ElementContent[] | undefined;
8
+ unifiedGutterAST: ElementContent[] | undefined;
9
+ unifiedContentAST: ElementContent[] | undefined;
10
+ deletionsGutterAST: ElementContent[] | undefined;
11
+ deletionsContentAST: ElementContent[] | undefined;
12
+ additionsGutterAST: ElementContent[] | undefined;
13
+ additionsContentAST: ElementContent[] | undefined;
12
14
  hunkData: HunkData[];
13
15
  css: string;
14
16
  preNode: Element;
15
17
  headerElement: Element | undefined;
16
18
  totalLines: number;
17
19
  themeStyles: string;
18
- baseThemeType: "light" | "dark" | undefined;
20
+ baseThemeType: 'light' | 'dark' | undefined;
21
+ rowCount: number;
22
+ bufferBefore: number;
23
+ bufferAfter: number;
19
24
  }
20
25
  declare class DiffHunksRenderer<LAnnotation = undefined> {
21
26
  options: BaseDiffOptions;
@@ -39,8 +44,8 @@ declare class DiffHunksRenderer<LAnnotation = undefined> {
39
44
  getExpandedHunk(hunkIndex: number): HunkExpansionRegion;
40
45
  getExpandedHunksMap(): Map<number, HunkExpansionRegion>;
41
46
  setLineAnnotations(lineAnnotations: DiffLineAnnotation<LAnnotation>[]): void;
42
- getOptionsWithDefaults(): OptionsWithDefaults;
43
- initializeHighlighter(): Promise<DiffsHighlighter>;
47
+ private getOptionsWithDefaults;
48
+ private initializeHighlighter;
44
49
  hydrate(diff: FileDiffMetadata | undefined): void;
45
50
  private getRenderOptions;
46
51
  renderDiff(diff?: FileDiffMetadata | undefined, renderRange?: RenderRange): HunksRenderResult | undefined;
@@ -51,10 +56,10 @@ declare class DiffHunksRenderer<LAnnotation = undefined> {
51
56
  onHighlightSuccess(diff: FileDiffMetadata, result: ThemedDiffResult, options: RenderDiffOptions): void;
52
57
  onHighlightError(error: unknown): void;
53
58
  private processDiffResult;
59
+ renderCodeAST(type: 'unified' | 'deletions' | 'additions', result: HunksRenderResult): ElementContent[] | undefined;
54
60
  renderFullAST(result: HunksRenderResult, children?: ElementContent[]): Element;
55
61
  renderFullHTML(result: HunksRenderResult, tempChildren?: ElementContent[]): string;
56
- renderPartialHTML(children: ElementContent[], columnType?: "unified" | "deletions" | "additions"): string;
57
- private getAnnotations;
62
+ renderPartialHTML(children: ElementContent[], columnType?: 'unified' | 'deletions' | 'additions'): string;
58
63
  private getAnnotations;
59
64
  private renderHeader;
60
65
  }
@@ -1 +1 @@
1
- {"version":3,"file":"DiffHunksRenderer.d.ts","names":["options: BaseDiffOptions","onRenderUpdate?: () => unknown","workerManager?: WorkerPoolManager | undefined"],"sources":["../../src/renderers/DiffHunksRenderer.ts"],"sourcesContent":[],"mappings":";;;;;;KAgGK,mBAAA,GAAsB,SACzB,KAAK;UAGU,iBAAA;gBACD;EAnDuB,YA8ClC,EAMW,cANX,EAAA,GAAA,SAAA;EACE,UAAA,EAMO,cANP,EAAA,GAAA,SAAA;EAAL,QAAA,EAOU,QAPV,EAAA;EADyB,GAAA,EAAA,MAAA;EAAA,OAAA,EAUhB,OAVgB;EAI3B,aAAiB,EAOA,OAPA,GAAA,SAAA;EACD,UAAA,EAAA,MAAA;EACA,WAAA,EAAA,MAAA;EACF,aAAA,EAAA,OAAA,GAAA,MAAA,GAAA,SAAA;;AAGH,cASE,iBATF,CAAA,cAAA,SAAA,CAAA,CAAA;EACM,OAAA,EAuBG,eAvBH;EAAA,QAAA,cAAA;EAQjB,QAAa,aAAA;EAeO,SAAA,IAAA,EAAA,MAAA;EAAA,QAAA,WAAA;EAEQ,QAAA,IAAA;EAyBN,QAAA,aAAA;EAQI,QAAA,mBAAA;EAOa,QAAA,mBAAA;EAiBD,QAAA,YAAA;EAID,QAAA,WAAA;EAAZ,WAAA,CAAA,OAAA,CAAA,EA/DL,eA+DK,EAAA,cAAA,CAAA,EAAA,CAAA,GAAA,GAAA,OAAA,CAAA,GAAA,SAAA,EAAA,aAAA,CAAA,EA7DG,iBA6DH,GAAA,SAAA;EAIgC,OAAA,CAAA,CAAA,EAAA,IAAA;EAAnB,OAAA,CAAA,CAAA,EAAA,IAAA;EAkBV,UAAA,CAAA,OAAA,EA1DN,eA0DM,CAAA,EAAA,IAAA;EAyCa,QAAA,YAAA;EAAR,YAAA,CAAA,SAAA,EA3FP,UA2FO,CAAA,EAAA,IAAA;EAOjB,UAAA,CAAA,KAAA,EAAA,MAAA,EAAA,SAAA,EA3FuB,mBA2FvB,CAAA,EAAA,IAAA;EAuDN,eAAA,CAAA,SAAA,EAAA,MAAA,CAAA,EAjI4B,mBAiI5B;EACO,mBAAA,CAAA,CAAA,EA9HQ,GA8HR,CAAA,MAAA,EA9HoB,mBA8HpB,CAAA;EACZ,kBAAA,CAAA,eAAA,EA3HiC,kBA2HjC,CA3HoD,WA2HpD,CAAA,EAAA,CAAA,EAAA,IAAA;EAuGK,sBAAA,CAAA,CAAA,EAhNkB,mBAgNlB;EACO,qBAAA,CAAA,CAAA,EAxKgB,OAwKhB,CAxKwB,gBAwKxB,CAAA;EACJ,OAAA,CAAA,IAAA,EAlKG,gBAkKH,GAAA,SAAA,CAAA,EAAA,IAAA;EAAR,QAAA,gBAAA;EA+DK,UAAA,CAAA,IAAA,CAAA,EA1KA,gBA0KA,GAAA,SAAA,EAAA,WAAA,CAAA,EAzKO,WAyKP,CAAA,EAxKL,iBAwKK,GAAA,SAAA;EACE,WAAA,CAAA,IAAA,EAlEF,gBAkEE,EAAA,WAAA,CAAA,EAjEK,WAiEL,CAAA,EAhEP,OAgEO,CAhEC,iBAgED,CAAA;EACC,QAAA,gBAAA;EAuXD,QAAA,cAAA;EACE,QAAA,yBAAA;EACT,kBAAA,CAAA,IAAA,EA3XK,gBA2XL,EAAA,MAAA,EA1XO,gBA0XP,EAAA,OAAA,EAzXQ,iBAyXR,CAAA,EAAA,IAAA;EAyCO,gBAAA,CAAA,KAAA,EAAA,OAAA,CAAA,EAAA,IAAA;EACM,QAAA,iBAAA;EAMJ,aAAA,CAAA,MAAA,EAlDF,iBAkDE,EAAA,QAAA,CAAA,EAjDA,cAiDA,EAAA,CAAA,EAhDT,OAgDS;EAAA,cAAA,CAAA,MAAA,EAPF,iBAOE,EAAA,YAAA,CAAA,EANI,cAMJ,EAAA,CAAA,EAAA,MAAA;8BAAA"}
1
+ {"version":3,"file":"DiffHunksRenderer.d.ts","names":["ElementContent","Element","HASTElement","BaseDiffOptions","DiffLineAnnotation","ExpansionDirections","FileDiffMetadata","HunkData","HunkExpansionRegion","RenderDiffOptions","RenderRange","ThemedDiffResult","ThemeTypes","WorkerPoolManager","HunksRenderResult","DiffHunksRenderer","LAnnotation","Map","Promise"],"sources":["../../src/renderers/DiffHunksRenderer.d.ts"],"sourcesContent":["import type { ElementContent, Element as HASTElement } from 'hast';\nimport type { BaseDiffOptions, DiffLineAnnotation, ExpansionDirections, FileDiffMetadata, HunkData, HunkExpansionRegion, RenderDiffOptions, RenderRange, ThemedDiffResult, ThemeTypes } from '../types';\nimport type { WorkerPoolManager } from '../worker';\nexport interface HunksRenderResult {\n unifiedGutterAST: ElementContent[] | undefined;\n unifiedContentAST: ElementContent[] | undefined;\n deletionsGutterAST: ElementContent[] | undefined;\n deletionsContentAST: ElementContent[] | undefined;\n additionsGutterAST: ElementContent[] | undefined;\n additionsContentAST: ElementContent[] | undefined;\n hunkData: HunkData[];\n css: string;\n preNode: HASTElement;\n headerElement: HASTElement | undefined;\n totalLines: number;\n themeStyles: string;\n baseThemeType: 'light' | 'dark' | undefined;\n rowCount: number;\n bufferBefore: number;\n bufferAfter: number;\n}\nexport declare class DiffHunksRenderer<LAnnotation = undefined> {\n options: BaseDiffOptions;\n private onRenderUpdate?;\n private workerManager?;\n readonly __id: string;\n private highlighter;\n private diff;\n private expandedHunks;\n private deletionAnnotations;\n private additionAnnotations;\n private computedLang;\n private renderCache;\n constructor(options?: BaseDiffOptions, onRenderUpdate?: (() => unknown) | undefined, workerManager?: WorkerPoolManager | undefined);\n cleanUp(): void;\n recycle(): void;\n setOptions(options: BaseDiffOptions): void;\n private mergeOptions;\n setThemeType(themeType: ThemeTypes): void;\n expandHunk(index: number, direction: ExpansionDirections): void;\n getExpandedHunk(hunkIndex: number): HunkExpansionRegion;\n getExpandedHunksMap(): Map<number, HunkExpansionRegion>;\n setLineAnnotations(lineAnnotations: DiffLineAnnotation<LAnnotation>[]): void;\n private getOptionsWithDefaults;\n private initializeHighlighter;\n hydrate(diff: FileDiffMetadata | undefined): void;\n private getRenderOptions;\n renderDiff(diff?: FileDiffMetadata | undefined, renderRange?: RenderRange): HunksRenderResult | undefined;\n asyncRender(diff: FileDiffMetadata, renderRange?: RenderRange): Promise<HunksRenderResult>;\n private createPreElement;\n private asyncHighlight;\n private renderDiffWithHighlighter;\n onHighlightSuccess(diff: FileDiffMetadata, result: ThemedDiffResult, options: RenderDiffOptions): void;\n onHighlightError(error: unknown): void;\n private processDiffResult;\n renderCodeAST(type: 'unified' | 'deletions' | 'additions', result: HunksRenderResult): ElementContent[] | undefined;\n renderFullAST(result: HunksRenderResult, children?: ElementContent[]): HASTElement;\n renderFullHTML(result: HunksRenderResult, tempChildren?: ElementContent[]): string;\n renderPartialHTML(children: ElementContent[], columnType?: 'unified' | 'deletions' | 'additions'): string;\n private getAnnotations;\n private renderHeader;\n}\n//# sourceMappingURL=DiffHunksRenderer.d.ts.map"],"mappings":";;;;;;UAGiBc,iBAAAA;oBACKd;qBACCA;EAFNc,kBAAAA,EAGOd,cAHU,EAAA,GAAA,SAAA;EACZA,mBAAAA,EAGGA,cAHHA,EAAAA,GAAAA,SAAAA;EACCA,kBAAAA,EAGCA,cAHDA,EAAAA,GAAAA,SAAAA;EACCA,mBAAAA,EAGCA,cAHDA,EAAAA,GAAAA,SAAAA;EACCA,QAAAA,EAGXO,QAHWP,EAAAA;EACDA,GAAAA,EAAAA,MAAAA;EACCA,OAAAA,EAGZE,OAHYF;EACXO,aAAAA,EAGKL,OAHLK,GAAAA,SAAAA;EAEDL,UAAAA,EAAAA,MAAAA;EACMA,WAAAA,EAAAA,MAAAA;EAAW,aAAA,EAAA,OAAA,GAAA,MAAA,GAAA,SAAA;EAQTa,QAAAA,EAAAA,MAAAA;EACRZ,YAAAA,EAAAA,MAAAA;EAWaA,WAAAA,EAAAA,MAAAA;;AAGFA,cAfHY,iBAeGZ,CAAAA,cAAAA,SAAAA,CAAAA,CAAAA;EAEIS,OAAAA,EAhBfT,eAgBeS;EACaP,QAAAA,cAAAA;EACDG,QAAAA,aAAAA;EACDA,SAAAA,IAAAA,EAAAA,MAAAA;EAAZS,QAAAA,WAAAA;EACgCD,QAAAA,IAAAA;EAAnBZ,QAAAA,aAAAA;EAGtBE,QAAAA,mBAAAA;EAEIA,QAAAA,mBAAAA;EAA4CI,QAAAA,YAAAA;EAAcI,QAAAA,WAAAA;EAC1DR,WAAAA,CAAAA,OAAAA,CAAAA,EAfIH,eAeJG,EAAAA,cAAAA,CAAAA,EAAAA,CAAAA,GAAAA,GAAAA,OAAAA,CAAAA,GAAAA,SAAAA,EAAAA,aAAAA,CAAAA,EAfmFO,iBAenFP,GAAAA,SAAAA;EAAgCI,OAAAA,CAAAA,CAAAA,EAAAA,IAAAA;EAAsBI,OAAAA,CAAAA,CAAAA,EAAAA,IAAAA;EAARI,UAAAA,CAAAA,OAAAA,EAZ5Cf,eAY4Ce,CAAAA,EAAAA,IAAAA;EAIvCZ,QAAAA,YAAAA;EAA0BK,YAAAA,CAAAA,SAAAA,EAd3BC,UAc2BD,CAAAA,EAAAA,IAAAA;EAA2BF,UAAAA,CAAAA,KAAAA,EAAAA,MAAAA,EAAAA,SAAAA,EAbzCJ,mBAayCI,CAAAA,EAAAA,IAAAA;EAGXK,eAAAA,CAAAA,SAAAA,EAAAA,MAAAA,CAAAA,EAf/BN,mBAe+BM;EAAoBd,mBAAAA,CAAAA,CAAAA,EAdhEiB,GAcgEjB,CAAAA,MAAAA,EAdpDQ,mBAcoDR,CAAAA;EACjEc,kBAAAA,CAAAA,eAAAA,EAdcV,kBAcdU,CAdiCE,WAcjCF,CAAAA,EAAAA,CAAAA,EAAAA,IAAAA;EAA8Bd,QAAAA,sBAAAA;EAAmBE,QAAAA,qBAAAA;EAChDY,OAAAA,CAAAA,IAAAA,EAZTR,gBAYSQ,GAAAA,SAAAA,CAAAA,EAAAA,IAAAA;EAAkCd,QAAAA,gBAAAA;EAC7BA,UAAAA,CAAAA,IAAAA,CAAAA,EAXVM,gBAWUN,GAAAA,SAAAA,EAAAA,WAAAA,CAAAA,EAXkCU,WAWlCV,CAAAA,EAXgDc,iBAWhDd,GAAAA,SAAAA;EAAc,WAAA,CAAA,IAAA,EAVxBM,gBAUwB,EAAA,WAAA,CAAA,EAVQI,WAUR,CAAA,EAVsBQ,OAUtB,CAV8BJ,iBAU9B,CAAA;;;;2BANjBR,0BAA0BK,2BAA2BF;;;qEAGXK,oBAAoBd;wBACjEc,8BAA8Bd,mBAAmBE;yBAChDY,kCAAkCd;8BAC7BA"}