@pierre/diffs 1.3.0-beta.5 → 1.3.0-beta.7

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 (643) hide show
  1. package/README.md +9 -9
  2. package/dist/components/CodeView.d.ts +13 -11
  3. package/dist/components/CodeView.d.ts.map +1 -1
  4. package/dist/components/CodeView.js +53 -14
  5. package/dist/components/CodeView.js.map +1 -1
  6. package/dist/components/File.d.ts +4 -5
  7. package/dist/components/File.d.ts.map +1 -1
  8. package/dist/components/File.js +37 -19
  9. package/dist/components/File.js.map +1 -1
  10. package/dist/components/FileDiff.d.ts +49 -36
  11. package/dist/components/FileDiff.d.ts.map +1 -1
  12. package/dist/components/FileDiff.js +173 -75
  13. package/dist/components/FileDiff.js.map +1 -1
  14. package/dist/components/FileStream.d.ts +0 -1
  15. package/dist/components/FileStream.d.ts.map +1 -1
  16. package/dist/components/FileStream.js +4 -4
  17. package/dist/components/FileStream.js.map +1 -1
  18. package/dist/components/UnresolvedFile.d.ts +3 -3
  19. package/dist/components/UnresolvedFile.d.ts.map +1 -1
  20. package/dist/components/UnresolvedFile.js +7 -5
  21. package/dist/components/UnresolvedFile.js.map +1 -1
  22. package/dist/components/VirtualizedFile.d.ts +0 -1
  23. package/dist/components/VirtualizedFile.d.ts.map +1 -1
  24. package/dist/components/VirtualizedFile.js +22 -25
  25. package/dist/components/VirtualizedFile.js.map +1 -1
  26. package/dist/components/VirtualizedFileDiff.d.ts +12 -7
  27. package/dist/components/VirtualizedFileDiff.d.ts.map +1 -1
  28. package/dist/components/VirtualizedFileDiff.js +192 -64
  29. package/dist/components/VirtualizedFileDiff.js.map +1 -1
  30. package/dist/components/Virtualizer.d.ts +1 -1
  31. package/dist/components/Virtualizer.d.ts.map +1 -1
  32. package/dist/components/Virtualizer.js +23 -24
  33. package/dist/components/Virtualizer.js.map +1 -1
  34. package/dist/components/VirtulizerDevelopment.d.ts.map +1 -1
  35. package/dist/components/web-components.d.ts.map +1 -1
  36. package/dist/components/web-components.js +2 -3
  37. package/dist/components/web-components.js.map +1 -1
  38. package/dist/constants.d.ts +3 -2
  39. package/dist/constants.d.ts.map +1 -1
  40. package/dist/constants.js +3 -2
  41. package/dist/constants.js.map +1 -1
  42. package/dist/editor/command.d.ts +2 -1
  43. package/dist/editor/command.d.ts.map +1 -1
  44. package/dist/editor/command.js +7 -3
  45. package/dist/editor/command.js.map +1 -1
  46. package/dist/editor/editStack.d.ts +7 -1
  47. package/dist/editor/editStack.d.ts.map +1 -1
  48. package/dist/editor/editStack.js +3 -3
  49. package/dist/editor/editStack.js.map +1 -1
  50. package/dist/editor/editor.d.ts +28 -4
  51. package/dist/editor/editor.d.ts.map +1 -1
  52. package/dist/editor/editor.js +669 -313
  53. package/dist/editor/editor.js.map +1 -1
  54. package/dist/editor/editor2.js +3 -3
  55. package/dist/editor/editor2.js.map +1 -1
  56. package/dist/editor/index.js +1 -2
  57. package/dist/editor/lineAnnotations.d.ts.map +1 -1
  58. package/dist/editor/lineAnnotations.js +2 -3
  59. package/dist/editor/lineAnnotations.js.map +1 -1
  60. package/dist/editor/marker.d.ts +2 -1
  61. package/dist/editor/marker.d.ts.map +1 -1
  62. package/dist/editor/marker.js +28 -11
  63. package/dist/editor/marker.js.map +1 -1
  64. package/dist/editor/pieceTable.d.ts +4 -2
  65. package/dist/editor/pieceTable.d.ts.map +1 -1
  66. package/dist/editor/pieceTable.js +138 -128
  67. package/dist/editor/pieceTable.js.map +1 -1
  68. package/dist/editor/platform.d.ts +8 -1
  69. package/dist/editor/platform.d.ts.map +1 -1
  70. package/dist/editor/platform.js +16 -5
  71. package/dist/editor/platform.js.map +1 -1
  72. package/dist/editor/searchPanel.d.ts +1 -0
  73. package/dist/editor/searchPanel.d.ts.map +1 -1
  74. package/dist/editor/searchPanel.js +75 -62
  75. package/dist/editor/searchPanel.js.map +1 -1
  76. package/dist/editor/selection.d.ts +42 -5
  77. package/dist/editor/selection.d.ts.map +1 -1
  78. package/dist/editor/selection.js +504 -114
  79. package/dist/editor/selection.js.map +1 -1
  80. package/dist/editor/selectionAction.d.ts +4 -5
  81. package/dist/editor/selectionAction.d.ts.map +1 -1
  82. package/dist/editor/selectionAction.js +14 -64
  83. package/dist/editor/selectionAction.js.map +1 -1
  84. package/dist/editor/sprite.d.ts +2 -2
  85. package/dist/editor/sprite.d.ts.map +1 -1
  86. package/dist/editor/sprite.js +7 -14
  87. package/dist/editor/sprite.js.map +1 -1
  88. package/dist/editor/textDocument.d.ts +5 -4
  89. package/dist/editor/textDocument.d.ts.map +1 -1
  90. package/dist/editor/textDocument.js +26 -15
  91. package/dist/editor/textDocument.js.map +1 -1
  92. package/dist/editor/textMeasure.d.ts +36 -3
  93. package/dist/editor/textMeasure.d.ts.map +1 -1
  94. package/dist/editor/textMeasure.js +104 -17
  95. package/dist/editor/textMeasure.js.map +1 -1
  96. package/dist/editor/tokenzier.d.ts +3 -0
  97. package/dist/editor/tokenzier.d.ts.map +1 -1
  98. package/dist/editor/tokenzier.js +27 -16
  99. package/dist/editor/tokenzier.js.map +1 -1
  100. package/dist/editor/utils.d.ts +4 -1
  101. package/dist/editor/utils.d.ts.map +1 -1
  102. package/dist/editor/utils.js +19 -3
  103. package/dist/editor/utils.js.map +1 -1
  104. package/dist/highlighter/languages/areLanguagesAttached.d.ts.map +1 -1
  105. package/dist/highlighter/languages/areLanguagesAttached.js +1 -2
  106. package/dist/highlighter/languages/areLanguagesAttached.js.map +1 -1
  107. package/dist/highlighter/languages/attachResolvedLanguages.d.ts +0 -2
  108. package/dist/highlighter/languages/attachResolvedLanguages.d.ts.map +1 -1
  109. package/dist/highlighter/languages/attachResolvedLanguages.js +1 -2
  110. package/dist/highlighter/languages/attachResolvedLanguages.js.map +1 -1
  111. package/dist/highlighter/languages/cleanUpResolvedLanguages.d.ts.map +1 -1
  112. package/dist/highlighter/languages/cleanUpResolvedLanguages.js +1 -2
  113. package/dist/highlighter/languages/cleanUpResolvedLanguages.js.map +1 -1
  114. package/dist/highlighter/languages/constants.d.ts +0 -1
  115. package/dist/highlighter/languages/constants.d.ts.map +1 -1
  116. package/dist/highlighter/languages/constants.js +1 -1
  117. package/dist/highlighter/languages/constants.js.map +1 -1
  118. package/dist/highlighter/languages/getResolvedLanguages.d.ts +0 -2
  119. package/dist/highlighter/languages/getResolvedLanguages.d.ts.map +1 -1
  120. package/dist/highlighter/languages/getResolvedLanguages.js +1 -2
  121. package/dist/highlighter/languages/getResolvedLanguages.js.map +1 -1
  122. package/dist/highlighter/languages/getResolvedOrResolveLanguage.d.ts +0 -2
  123. package/dist/highlighter/languages/getResolvedOrResolveLanguage.d.ts.map +1 -1
  124. package/dist/highlighter/languages/getResolvedOrResolveLanguage.js +1 -2
  125. package/dist/highlighter/languages/getResolvedOrResolveLanguage.js.map +1 -1
  126. package/dist/highlighter/languages/hasResolvedLanguages.d.ts.map +1 -1
  127. package/dist/highlighter/languages/hasResolvedLanguages.js +1 -2
  128. package/dist/highlighter/languages/hasResolvedLanguages.js.map +1 -1
  129. package/dist/highlighter/languages/registerCustomLanguage.d.ts +0 -1
  130. package/dist/highlighter/languages/registerCustomLanguage.d.ts.map +1 -1
  131. package/dist/highlighter/languages/registerCustomLanguage.js +1 -2
  132. package/dist/highlighter/languages/registerCustomLanguage.js.map +1 -1
  133. package/dist/highlighter/languages/resolveLanguage.d.ts +0 -2
  134. package/dist/highlighter/languages/resolveLanguage.d.ts.map +1 -1
  135. package/dist/highlighter/languages/resolveLanguage.js +4 -5
  136. package/dist/highlighter/languages/resolveLanguage.js.map +1 -1
  137. package/dist/highlighter/languages/resolveLanguages.d.ts +0 -2
  138. package/dist/highlighter/languages/resolveLanguages.d.ts.map +1 -1
  139. package/dist/highlighter/languages/resolveLanguages.js +1 -2
  140. package/dist/highlighter/languages/resolveLanguages.js.map +1 -1
  141. package/dist/highlighter/shared_highlighter.d.ts.map +1 -1
  142. package/dist/highlighter/shared_highlighter.js +3 -4
  143. package/dist/highlighter/shared_highlighter.js.map +1 -1
  144. package/dist/highlighter/themes/areThemesAttached.d.ts.map +1 -1
  145. package/dist/highlighter/themes/areThemesAttached.js +1 -2
  146. package/dist/highlighter/themes/areThemesAttached.js.map +1 -1
  147. package/dist/highlighter/themes/attachResolvedThemes.d.ts.map +1 -1
  148. package/dist/highlighter/themes/attachResolvedThemes.js +1 -2
  149. package/dist/highlighter/themes/attachResolvedThemes.js.map +1 -1
  150. package/dist/highlighter/themes/cleanUpResolvedThemes.d.ts.map +1 -1
  151. package/dist/highlighter/themes/cleanUpResolvedThemes.js +1 -2
  152. package/dist/highlighter/themes/cleanUpResolvedThemes.js.map +1 -1
  153. package/dist/highlighter/themes/constants.d.ts.map +1 -1
  154. package/dist/highlighter/themes/constants.js +1 -1
  155. package/dist/highlighter/themes/constants.js.map +1 -1
  156. package/dist/highlighter/themes/getResolvedOrResolveTheme.d.ts.map +1 -1
  157. package/dist/highlighter/themes/getResolvedOrResolveTheme.js +1 -2
  158. package/dist/highlighter/themes/getResolvedOrResolveTheme.js.map +1 -1
  159. package/dist/highlighter/themes/getResolvedThemes.d.ts.map +1 -1
  160. package/dist/highlighter/themes/getResolvedThemes.js +1 -2
  161. package/dist/highlighter/themes/getResolvedThemes.js.map +1 -1
  162. package/dist/highlighter/themes/hasResolvedThemes.d.ts.map +1 -1
  163. package/dist/highlighter/themes/hasResolvedThemes.js +1 -2
  164. package/dist/highlighter/themes/hasResolvedThemes.js.map +1 -1
  165. package/dist/highlighter/themes/registerCustomCSSVariableTheme.d.ts.map +1 -1
  166. package/dist/highlighter/themes/registerCustomCSSVariableTheme.js +1 -2
  167. package/dist/highlighter/themes/registerCustomCSSVariableTheme.js.map +1 -1
  168. package/dist/highlighter/themes/registerCustomTheme.d.ts.map +1 -1
  169. package/dist/highlighter/themes/registerCustomTheme.js +1 -2
  170. package/dist/highlighter/themes/registerCustomTheme.js.map +1 -1
  171. package/dist/highlighter/themes/resolveTheme.d.ts.map +1 -1
  172. package/dist/highlighter/themes/resolveTheme.js +1 -2
  173. package/dist/highlighter/themes/resolveTheme.js.map +1 -1
  174. package/dist/highlighter/themes/resolveThemes.d.ts.map +1 -1
  175. package/dist/highlighter/themes/resolveThemes.js +1 -2
  176. package/dist/highlighter/themes/resolveThemes.js.map +1 -1
  177. package/dist/highlighter/themes/themeResolution.d.ts.map +1 -1
  178. package/dist/highlighter/themes/themeResolution.js +1 -2
  179. package/dist/highlighter/themes/themeResolution.js.map +1 -1
  180. package/dist/highlighter/themes/themeResolver.d.ts +2 -2
  181. package/dist/highlighter/themes/themeResolver.d.ts.map +1 -1
  182. package/dist/highlighter/themes/themeResolver.js +1 -2
  183. package/dist/highlighter/themes/themeResolver.js.map +1 -1
  184. package/dist/index.d.ts +12 -10
  185. package/dist/index.js +4 -3
  186. package/dist/managers/InteractionManager.d.ts +7 -0
  187. package/dist/managers/InteractionManager.d.ts.map +1 -1
  188. package/dist/managers/InteractionManager.js +25 -4
  189. package/dist/managers/InteractionManager.js.map +1 -1
  190. package/dist/managers/ResizeManager.d.ts.map +1 -1
  191. package/dist/managers/ResizeManager.js +1 -1
  192. package/dist/managers/ResizeManager.js.map +1 -1
  193. package/dist/managers/ScrollSyncManager.d.ts.map +1 -1
  194. package/dist/managers/ScrollSyncManager.js +1 -1
  195. package/dist/managers/ScrollSyncManager.js.map +1 -1
  196. package/dist/managers/UniversalRenderingManager.d.ts.map +1 -1
  197. package/dist/managers/UniversalRenderingManager.js +2 -2
  198. package/dist/managers/UniversalRenderingManager.js.map +1 -1
  199. package/dist/node_modules/.pnpm/@types_hast@3.0.4/node_modules/@types/hast/index.d.ts +228 -0
  200. package/dist/node_modules/.pnpm/@types_hast@3.0.4/node_modules/@types/hast/index.d.ts.map +1 -0
  201. package/dist/node_modules/.pnpm/@types_unist@3.0.3/node_modules/@types/unist/index.d.ts +84 -0
  202. package/dist/node_modules/.pnpm/@types_unist@3.0.3/node_modules/@types/unist/index.d.ts.map +1 -0
  203. package/dist/react/CodeView.d.ts +1 -1
  204. package/dist/react/CodeView.d.ts.map +1 -1
  205. package/dist/react/CodeView.js +17 -16
  206. package/dist/react/CodeView.js.map +1 -1
  207. package/dist/react/EditorContext.d.ts +0 -1
  208. package/dist/react/EditorContext.d.ts.map +1 -1
  209. package/dist/react/EditorContext.js +2 -5
  210. package/dist/react/EditorContext.js.map +1 -1
  211. package/dist/react/File.d.ts +1 -0
  212. package/dist/react/File.d.ts.map +1 -1
  213. package/dist/react/File.js +4 -6
  214. package/dist/react/File.js.map +1 -1
  215. package/dist/react/FileDiff.d.ts +1 -0
  216. package/dist/react/FileDiff.d.ts.map +1 -1
  217. package/dist/react/FileDiff.js +4 -6
  218. package/dist/react/FileDiff.js.map +1 -1
  219. package/dist/react/MultiFileDiff.d.ts +4 -4
  220. package/dist/react/MultiFileDiff.d.ts.map +1 -1
  221. package/dist/react/MultiFileDiff.js +4 -6
  222. package/dist/react/MultiFileDiff.js.map +1 -1
  223. package/dist/react/PatchDiff.d.ts +1 -0
  224. package/dist/react/PatchDiff.d.ts.map +1 -1
  225. package/dist/react/PatchDiff.js +4 -6
  226. package/dist/react/PatchDiff.js.map +1 -1
  227. package/dist/react/UnresolvedFile.d.ts +2 -1
  228. package/dist/react/UnresolvedFile.d.ts.map +1 -1
  229. package/dist/react/UnresolvedFile.js +4 -6
  230. package/dist/react/UnresolvedFile.js.map +1 -1
  231. package/dist/react/Virtualizer.d.ts.map +1 -1
  232. package/dist/react/Virtualizer.js +2 -5
  233. package/dist/react/Virtualizer.js.map +1 -1
  234. package/dist/react/WorkerPoolContext.d.ts +0 -1
  235. package/dist/react/WorkerPoolContext.d.ts.map +1 -1
  236. package/dist/react/WorkerPoolContext.js +2 -5
  237. package/dist/react/WorkerPoolContext.js.map +1 -1
  238. package/dist/react/constants.d.ts.map +1 -1
  239. package/dist/react/constants.js +1 -1
  240. package/dist/react/constants.js.map +1 -1
  241. package/dist/react/index.d.ts +2 -2
  242. package/dist/react/index.js +1 -2
  243. package/dist/react/jsx.d.ts +0 -2
  244. package/dist/react/jsx.d.ts.map +1 -1
  245. package/dist/react/types.d.ts +2 -0
  246. package/dist/react/types.d.ts.map +1 -1
  247. package/dist/react/utils/renderDiffChildren.d.ts +2 -0
  248. package/dist/react/utils/renderDiffChildren.d.ts.map +1 -1
  249. package/dist/react/utils/renderDiffChildren.js +18 -11
  250. package/dist/react/utils/renderDiffChildren.js.map +1 -1
  251. package/dist/react/utils/renderFileChildren.d.ts +2 -0
  252. package/dist/react/utils/renderFileChildren.d.ts.map +1 -1
  253. package/dist/react/utils/renderFileChildren.js +18 -11
  254. package/dist/react/utils/renderFileChildren.js.map +1 -1
  255. package/dist/react/utils/templateRender.d.ts.map +1 -1
  256. package/dist/react/utils/templateRender.js +1 -2
  257. package/dist/react/utils/templateRender.js.map +1 -1
  258. package/dist/react/utils/useFileDiffInstance.d.ts.map +1 -1
  259. package/dist/react/utils/useFileDiffInstance.js +15 -18
  260. package/dist/react/utils/useFileDiffInstance.js.map +1 -1
  261. package/dist/react/utils/useFileInstance.d.ts.map +1 -1
  262. package/dist/react/utils/useFileInstance.js +1 -2
  263. package/dist/react/utils/useFileInstance.js.map +1 -1
  264. package/dist/react/utils/useStableCallback.d.ts.map +1 -1
  265. package/dist/react/utils/useStableCallback.js +1 -2
  266. package/dist/react/utils/useStableCallback.js.map +1 -1
  267. package/dist/react/utils/useUnresolvedFileInstance.d.ts.map +1 -1
  268. package/dist/react/utils/useUnresolvedFileInstance.js +10 -11
  269. package/dist/react/utils/useUnresolvedFileInstance.js.map +1 -1
  270. package/dist/renderers/DiffHunksRenderer.d.ts +2 -3
  271. package/dist/renderers/DiffHunksRenderer.d.ts.map +1 -1
  272. package/dist/renderers/DiffHunksRenderer.js +52 -33
  273. package/dist/renderers/DiffHunksRenderer.js.map +1 -1
  274. package/dist/renderers/FileRenderer.d.ts +1 -3
  275. package/dist/renderers/FileRenderer.d.ts.map +1 -1
  276. package/dist/renderers/FileRenderer.js +14 -11
  277. package/dist/renderers/FileRenderer.js.map +1 -1
  278. package/dist/renderers/UnresolvedFileHunksRenderer.d.ts +1 -2
  279. package/dist/renderers/UnresolvedFileHunksRenderer.d.ts.map +1 -1
  280. package/dist/renderers/UnresolvedFileHunksRenderer.js +1 -2
  281. package/dist/renderers/UnresolvedFileHunksRenderer.js.map +1 -1
  282. package/dist/shiki-stream/index.js +1 -2
  283. package/dist/shiki-stream/stream.d.ts +0 -1
  284. package/dist/shiki-stream/stream.d.ts.map +1 -1
  285. package/dist/shiki-stream/stream.js +1 -2
  286. package/dist/shiki-stream/stream.js.map +1 -1
  287. package/dist/shiki-stream/tokenizer.d.ts.map +1 -1
  288. package/dist/shiki-stream/tokenizer.js +1 -1
  289. package/dist/shiki-stream/tokenizer.js.map +1 -1
  290. package/dist/shiki-stream/types.d.ts +0 -1
  291. package/dist/shiki-stream/types.d.ts.map +1 -1
  292. package/dist/sprite.d.ts.map +1 -1
  293. package/dist/sprite.js +1 -1
  294. package/dist/ssr/FileDiffReact.d.ts.map +1 -1
  295. package/dist/ssr/FileDiffReact.js +5 -8
  296. package/dist/ssr/FileDiffReact.js.map +1 -1
  297. package/dist/ssr/index.d.ts +2 -2
  298. package/dist/ssr/index.js +1 -2
  299. package/dist/ssr/preloadDiffs.d.ts +12 -11
  300. package/dist/ssr/preloadDiffs.d.ts.map +1 -1
  301. package/dist/ssr/preloadDiffs.js +15 -8
  302. package/dist/ssr/preloadDiffs.js.map +1 -1
  303. package/dist/ssr/preloadFile.d.ts.map +1 -1
  304. package/dist/ssr/preloadFile.js +1 -2
  305. package/dist/ssr/preloadFile.js.map +1 -1
  306. package/dist/ssr/preloadPatchFile.d.ts.map +1 -1
  307. package/dist/ssr/preloadPatchFile.js +2 -3
  308. package/dist/ssr/preloadPatchFile.js.map +1 -1
  309. package/dist/ssr/renderHTML.d.ts +1 -1
  310. package/dist/ssr/renderHTML.d.ts.map +1 -1
  311. package/dist/ssr/renderHTML.js +1 -2
  312. package/dist/ssr/renderHTML.js.map +1 -1
  313. package/dist/string-import.d.ts +4 -0
  314. package/dist/string-import.d.ts.map +1 -1
  315. package/dist/style.js +3 -3
  316. package/dist/style.js.map +1 -1
  317. package/dist/types.d.ts +67 -7
  318. package/dist/types.d.ts.map +1 -1
  319. package/dist/utils/areDiffLineAnnotationsEqual.d.ts.map +1 -1
  320. package/dist/utils/areDiffLineAnnotationsEqual.js +1 -1
  321. package/dist/utils/areDiffLineAnnotationsEqual.js.map +1 -1
  322. package/dist/utils/areDiffRenderOptionsEqual.d.ts.map +1 -1
  323. package/dist/utils/areDiffRenderOptionsEqual.js +1 -2
  324. package/dist/utils/areDiffRenderOptionsEqual.js.map +1 -1
  325. package/dist/utils/areDiffTargetsEqual.d.ts.map +1 -1
  326. package/dist/utils/areDiffTargetsEqual.js +1 -1
  327. package/dist/utils/areDiffTargetsEqual.js.map +1 -1
  328. package/dist/utils/areFileRenderOptionsEqual.d.ts.map +1 -1
  329. package/dist/utils/areFileRenderOptionsEqual.js +1 -2
  330. package/dist/utils/areFileRenderOptionsEqual.js.map +1 -1
  331. package/dist/utils/areFilesEqual.d.ts.map +1 -1
  332. package/dist/utils/areFilesEqual.js +1 -1
  333. package/dist/utils/areFilesEqual.js.map +1 -1
  334. package/dist/utils/areHunkDataEqual.d.ts.map +1 -1
  335. package/dist/utils/areHunkDataEqual.js +2 -2
  336. package/dist/utils/areHunkDataEqual.js.map +1 -1
  337. package/dist/utils/areLineAnnotationsEqual.d.ts.map +1 -1
  338. package/dist/utils/areLineAnnotationsEqual.js +1 -1
  339. package/dist/utils/areLineAnnotationsEqual.js.map +1 -1
  340. package/dist/utils/areManagedSnapshotsEqual.d.ts.map +1 -1
  341. package/dist/utils/areManagedSnapshotsEqual.js +1 -1
  342. package/dist/utils/areManagedSnapshotsEqual.js.map +1 -1
  343. package/dist/utils/areMergeConflictActionsEqual.d.ts.map +1 -1
  344. package/dist/utils/areMergeConflictActionsEqual.js +1 -1
  345. package/dist/utils/areMergeConflictActionsEqual.js.map +1 -1
  346. package/dist/utils/areObjectsEqual.d.ts.map +1 -1
  347. package/dist/utils/areObjectsEqual.js +1 -1
  348. package/dist/utils/areObjectsEqual.js.map +1 -1
  349. package/dist/utils/areOptionsEqual.d.ts +0 -2
  350. package/dist/utils/areOptionsEqual.d.ts.map +1 -1
  351. package/dist/utils/areOptionsEqual.js +1 -2
  352. package/dist/utils/areOptionsEqual.js.map +1 -1
  353. package/dist/utils/arePrePropertiesEqual.d.ts.map +1 -1
  354. package/dist/utils/arePrePropertiesEqual.js +1 -1
  355. package/dist/utils/arePrePropertiesEqual.js.map +1 -1
  356. package/dist/utils/areRenderRangesEqual.d.ts.map +1 -1
  357. package/dist/utils/areRenderRangesEqual.js +1 -1
  358. package/dist/utils/areRenderRangesEqual.js.map +1 -1
  359. package/dist/utils/areSelectionPointsEqual.d.ts.map +1 -1
  360. package/dist/utils/areSelectionPointsEqual.js +1 -1
  361. package/dist/utils/areSelectionPointsEqual.js.map +1 -1
  362. package/dist/utils/areSelectionsEqual.d.ts.map +1 -1
  363. package/dist/utils/areSelectionsEqual.js +1 -1
  364. package/dist/utils/areSelectionsEqual.js.map +1 -1
  365. package/dist/utils/areThemesEqual.d.ts.map +1 -1
  366. package/dist/utils/areThemesEqual.js +1 -1
  367. package/dist/utils/areThemesEqual.js.map +1 -1
  368. package/dist/utils/areVirtualWindowSpecsEqual.d.ts.map +1 -1
  369. package/dist/utils/areVirtualWindowSpecsEqual.js +1 -1
  370. package/dist/utils/areVirtualWindowSpecsEqual.js.map +1 -1
  371. package/dist/utils/areWorkerStatsEqual.d.ts +0 -2
  372. package/dist/utils/areWorkerStatsEqual.d.ts.map +1 -1
  373. package/dist/utils/areWorkerStatsEqual.js +1 -1
  374. package/dist/utils/areWorkerStatsEqual.js.map +1 -1
  375. package/dist/utils/awaitWithTimeout.d.ts +5 -0
  376. package/dist/utils/awaitWithTimeout.d.ts.map +1 -0
  377. package/dist/utils/awaitWithTimeout.js +15 -0
  378. package/dist/utils/awaitWithTimeout.js.map +1 -0
  379. package/dist/utils/cleanLastNewline.d.ts.map +1 -1
  380. package/dist/utils/cleanLastNewline.js +1 -1
  381. package/dist/utils/cleanLastNewline.js.map +1 -1
  382. package/dist/utils/cloneFileDiffMetadata.d.ts +7 -0
  383. package/dist/utils/cloneFileDiffMetadata.d.ts.map +1 -0
  384. package/dist/utils/cloneFileDiffMetadata.js +16 -0
  385. package/dist/utils/cloneFileDiffMetadata.js.map +1 -0
  386. package/dist/utils/computeEstimatedDiffHeights.d.ts +3 -1
  387. package/dist/utils/computeEstimatedDiffHeights.d.ts.map +1 -1
  388. package/dist/utils/computeEstimatedDiffHeights.js +9 -3
  389. package/dist/utils/computeEstimatedDiffHeights.js.map +1 -1
  390. package/dist/utils/computeFileOffsets.d.ts +9 -1
  391. package/dist/utils/computeFileOffsets.d.ts.map +1 -1
  392. package/dist/utils/computeFileOffsets.js +20 -2
  393. package/dist/utils/computeFileOffsets.js.map +1 -1
  394. package/dist/utils/computeVirtualFileMetrics.d.ts.map +1 -1
  395. package/dist/utils/computeVirtualFileMetrics.js +1 -2
  396. package/dist/utils/computeVirtualFileMetrics.js.map +1 -1
  397. package/dist/utils/createAnnotationElement.d.ts +1 -1
  398. package/dist/utils/createAnnotationElement.d.ts.map +1 -1
  399. package/dist/utils/createAnnotationElement.js +1 -2
  400. package/dist/utils/createAnnotationElement.js.map +1 -1
  401. package/dist/utils/createAnnotationWrapperNode.d.ts.map +1 -1
  402. package/dist/utils/createAnnotationWrapperNode.js +1 -1
  403. package/dist/utils/createAnnotationWrapperNode.js.map +1 -1
  404. package/dist/utils/createContentColumn.d.ts +1 -1
  405. package/dist/utils/createContentColumn.d.ts.map +1 -1
  406. package/dist/utils/createContentColumn.js +1 -2
  407. package/dist/utils/createContentColumn.js.map +1 -1
  408. package/dist/utils/createEmptyRowBuffer.d.ts +1 -1
  409. package/dist/utils/createEmptyRowBuffer.d.ts.map +1 -1
  410. package/dist/utils/createEmptyRowBuffer.js +1 -2
  411. package/dist/utils/createEmptyRowBuffer.js.map +1 -1
  412. package/dist/utils/createFileHeaderElement.d.ts +1 -1
  413. package/dist/utils/createFileHeaderElement.d.ts.map +1 -1
  414. package/dist/utils/createFileHeaderElement.js +6 -3
  415. package/dist/utils/createFileHeaderElement.js.map +1 -1
  416. package/dist/utils/createGutterUtilityContentNode.d.ts.map +1 -1
  417. package/dist/utils/createGutterUtilityContentNode.js +1 -1
  418. package/dist/utils/createGutterUtilityContentNode.js.map +1 -1
  419. package/dist/utils/createGutterUtilityElement.d.ts +1 -1
  420. package/dist/utils/createGutterUtilityElement.d.ts.map +1 -1
  421. package/dist/utils/createGutterUtilityElement.js +1 -2
  422. package/dist/utils/createGutterUtilityElement.js.map +1 -1
  423. package/dist/utils/createNoNewlineElement.d.ts +1 -1
  424. package/dist/utils/createNoNewlineElement.d.ts.map +1 -1
  425. package/dist/utils/createNoNewlineElement.js +1 -2
  426. package/dist/utils/createNoNewlineElement.js.map +1 -1
  427. package/dist/utils/createPreElement.d.ts +1 -1
  428. package/dist/utils/createPreElement.d.ts.map +1 -1
  429. package/dist/utils/createPreElement.js +1 -3
  430. package/dist/utils/createPreElement.js.map +1 -1
  431. package/dist/utils/createRowNodes.d.ts.map +1 -1
  432. package/dist/utils/createRowNodes.js +1 -1
  433. package/dist/utils/createRowNodes.js.map +1 -1
  434. package/dist/utils/createSeparator.d.ts +1 -1
  435. package/dist/utils/createSeparator.d.ts.map +1 -1
  436. package/dist/utils/createSeparator.js +1 -2
  437. package/dist/utils/createSeparator.js.map +1 -1
  438. package/dist/utils/createSpanNodeFromToken.d.ts.map +1 -1
  439. package/dist/utils/createSpanNodeFromToken.js +1 -2
  440. package/dist/utils/createSpanNodeFromToken.js.map +1 -1
  441. package/dist/utils/createStyleElement.d.ts +1 -1
  442. package/dist/utils/createStyleElement.d.ts.map +1 -1
  443. package/dist/utils/createStyleElement.js +1 -2
  444. package/dist/utils/createStyleElement.js.map +1 -1
  445. package/dist/utils/createTransformerWithState.d.ts.map +1 -1
  446. package/dist/utils/createTransformerWithState.js +1 -2
  447. package/dist/utils/createTransformerWithState.js.map +1 -1
  448. package/dist/utils/createUnsafeCSSStyleNode.d.ts.map +1 -1
  449. package/dist/utils/createUnsafeCSSStyleNode.js +1 -2
  450. package/dist/utils/createUnsafeCSSStyleNode.js.map +1 -1
  451. package/dist/utils/createWindowFromScrollPosition.d.ts.map +1 -1
  452. package/dist/utils/createWindowFromScrollPosition.js +5 -5
  453. package/dist/utils/createWindowFromScrollPosition.js.map +1 -1
  454. package/dist/utils/cssWrappers.d.ts.map +1 -1
  455. package/dist/utils/cssWrappers.js +2 -3
  456. package/dist/utils/cssWrappers.js.map +1 -1
  457. package/dist/utils/detachString.d.ts.map +1 -1
  458. package/dist/utils/detachString.js +1 -1
  459. package/dist/utils/detachString.js.map +1 -1
  460. package/dist/utils/diffAcceptRejectHunk.d.ts.map +1 -1
  461. package/dist/utils/diffAcceptRejectHunk.js +1 -2
  462. package/dist/utils/diffAcceptRejectHunk.js.map +1 -1
  463. package/dist/utils/formatCSSVariablePrefix.d.ts.map +1 -1
  464. package/dist/utils/formatCSSVariablePrefix.js +1 -1
  465. package/dist/utils/formatCSSVariablePrefix.js.map +1 -1
  466. package/dist/utils/getDiffFileInput.d.ts +14 -0
  467. package/dist/utils/getDiffFileInput.d.ts.map +1 -0
  468. package/dist/utils/getDiffFileInput.js +24 -0
  469. package/dist/utils/getDiffFileInput.js.map +1 -0
  470. package/dist/utils/getDiffHunksRendererOptions.d.ts.map +1 -1
  471. package/dist/utils/getDiffHunksRendererOptions.js +2 -1
  472. package/dist/utils/getDiffHunksRendererOptions.js.map +1 -1
  473. package/dist/utils/getFileRendererOptions.d.ts.map +1 -1
  474. package/dist/utils/getFileRendererOptions.js +1 -1
  475. package/dist/utils/getFileRendererOptions.js.map +1 -1
  476. package/dist/utils/getFiletypeFromFileName.d.ts.map +1 -1
  477. package/dist/utils/getFiletypeFromFileName.js +3 -1
  478. package/dist/utils/getFiletypeFromFileName.js.map +1 -1
  479. package/dist/utils/getHighlighterOptions.d.ts.map +1 -1
  480. package/dist/utils/getHighlighterOptions.js +1 -2
  481. package/dist/utils/getHighlighterOptions.js.map +1 -1
  482. package/dist/utils/getHighlighterThemeStyles.d.ts.map +1 -1
  483. package/dist/utils/getHighlighterThemeStyles.js +1 -2
  484. package/dist/utils/getHighlighterThemeStyles.js.map +1 -1
  485. package/dist/utils/getHunkSeparatorSlotName.d.ts.map +1 -1
  486. package/dist/utils/getHunkSeparatorSlotName.js +1 -1
  487. package/dist/utils/getHunkSeparatorSlotName.js.map +1 -1
  488. package/dist/utils/getIconForType.d.ts.map +1 -1
  489. package/dist/utils/getIconForType.js +1 -1
  490. package/dist/utils/getIconForType.js.map +1 -1
  491. package/dist/utils/getLineAnnotationName.d.ts.map +1 -1
  492. package/dist/utils/getLineAnnotationName.js +1 -1
  493. package/dist/utils/getLineAnnotationName.js.map +1 -1
  494. package/dist/utils/getLineEndingType.d.ts.map +1 -1
  495. package/dist/utils/getLineEndingType.js +1 -1
  496. package/dist/utils/getLineEndingType.js.map +1 -1
  497. package/dist/utils/getLineNodes.d.ts +1 -1
  498. package/dist/utils/getLineNodes.d.ts.map +1 -1
  499. package/dist/utils/getLineNodes.js +1 -1
  500. package/dist/utils/getLineNodes.js.map +1 -1
  501. package/dist/utils/getMergeConflictActionSlotName.d.ts.map +1 -1
  502. package/dist/utils/getMergeConflictActionSlotName.js +1 -1
  503. package/dist/utils/getMergeConflictActionSlotName.js.map +1 -1
  504. package/dist/utils/getMergeConflictLineTypes.d.ts.map +1 -1
  505. package/dist/utils/getMergeConflictLineTypes.js +1 -2
  506. package/dist/utils/getMergeConflictLineTypes.js.map +1 -1
  507. package/dist/utils/getOrCreateCodeNode.d.ts.map +1 -1
  508. package/dist/utils/getOrCreateCodeNode.js +1 -1
  509. package/dist/utils/getOrCreateCodeNode.js.map +1 -1
  510. package/dist/utils/getSingularPatch.d.ts.map +1 -1
  511. package/dist/utils/getSingularPatch.js +1 -2
  512. package/dist/utils/getSingularPatch.js.map +1 -1
  513. package/dist/utils/getThemes.d.ts.map +1 -1
  514. package/dist/utils/getThemes.js +1 -2
  515. package/dist/utils/getThemes.js.map +1 -1
  516. package/dist/utils/getTotalLineCountFromHunks.d.ts.map +1 -1
  517. package/dist/utils/getTotalLineCountFromHunks.js +1 -1
  518. package/dist/utils/getTotalLineCountFromHunks.js.map +1 -1
  519. package/dist/utils/hast_utils.d.ts +1 -1
  520. package/dist/utils/hast_utils.d.ts.map +1 -1
  521. package/dist/utils/hast_utils.js +1 -1
  522. package/dist/utils/hast_utils.js.map +1 -1
  523. package/dist/utils/hostTheme.d.ts.map +1 -1
  524. package/dist/utils/hostTheme.js +1 -2
  525. package/dist/utils/hostTheme.js.map +1 -1
  526. package/dist/utils/hydratePartialDiff.d.ts +10 -0
  527. package/dist/utils/hydratePartialDiff.d.ts.map +1 -0
  528. package/dist/utils/hydratePartialDiff.js +140 -0
  529. package/dist/utils/hydratePartialDiff.js.map +1 -0
  530. package/dist/utils/includesFileAnnotations.d.ts.map +1 -1
  531. package/dist/utils/includesFileAnnotations.js +5 -5
  532. package/dist/utils/includesFileAnnotations.js.map +1 -1
  533. package/dist/utils/isDefaultRenderRange.d.ts.map +1 -1
  534. package/dist/utils/isDefaultRenderRange.js +1 -1
  535. package/dist/utils/isDefaultRenderRange.js.map +1 -1
  536. package/dist/utils/isDiffPlainText.d.ts.map +1 -1
  537. package/dist/utils/isDiffPlainText.js +1 -2
  538. package/dist/utils/isDiffPlainText.js.map +1 -1
  539. package/dist/utils/isFilePlainText.d.ts.map +1 -1
  540. package/dist/utils/isFilePlainText.js +1 -2
  541. package/dist/utils/isFilePlainText.js.map +1 -1
  542. package/dist/utils/isStyleNode.d.ts.map +1 -1
  543. package/dist/utils/isStyleNode.js +1 -1
  544. package/dist/utils/isStyleNode.js.map +1 -1
  545. package/dist/utils/isWorkerContext.d.ts.map +1 -1
  546. package/dist/utils/isWorkerContext.js +1 -1
  547. package/dist/utils/isWorkerContext.js.map +1 -1
  548. package/dist/utils/iterateOverDiff.d.ts.map +1 -1
  549. package/dist/utils/iterateOverDiff.js +47 -48
  550. package/dist/utils/iterateOverDiff.js.map +1 -1
  551. package/dist/utils/normalizeDiffResolution.d.ts.map +1 -1
  552. package/dist/utils/normalizeDiffResolution.js +1 -1
  553. package/dist/utils/normalizeDiffResolution.js.map +1 -1
  554. package/dist/utils/parseDiffDecorations.d.ts.map +1 -1
  555. package/dist/utils/parseDiffDecorations.js +1 -2
  556. package/dist/utils/parseDiffDecorations.js.map +1 -1
  557. package/dist/utils/parseDiffFromFile.d.ts +1 -2
  558. package/dist/utils/parseDiffFromFile.d.ts.map +1 -1
  559. package/dist/utils/parseDiffFromFile.js +27 -7
  560. package/dist/utils/parseDiffFromFile.js.map +1 -1
  561. package/dist/utils/parseLineType.d.ts.map +1 -1
  562. package/dist/utils/parseLineType.js +1 -1
  563. package/dist/utils/parseLineType.js.map +1 -1
  564. package/dist/utils/parseMergeConflictDiffFromFile.d.ts.map +1 -1
  565. package/dist/utils/parseMergeConflictDiffFromFile.js +5 -5
  566. package/dist/utils/parseMergeConflictDiffFromFile.js.map +1 -1
  567. package/dist/utils/parsePatchFiles.d.ts.map +1 -1
  568. package/dist/utils/parsePatchFiles.js +6 -7
  569. package/dist/utils/parsePatchFiles.js.map +1 -1
  570. package/dist/utils/prefersReducedMotion.d.ts.map +1 -1
  571. package/dist/utils/prefersReducedMotion.js +1 -1
  572. package/dist/utils/prefersReducedMotion.js.map +1 -1
  573. package/dist/utils/prerenderHTMLIfNecessary.d.ts.map +1 -1
  574. package/dist/utils/prerenderHTMLIfNecessary.js +1 -1
  575. package/dist/utils/prerenderHTMLIfNecessary.js.map +1 -1
  576. package/dist/utils/processLine.d.ts +1 -1
  577. package/dist/utils/processLine.d.ts.map +1 -1
  578. package/dist/utils/processLine.js +1 -2
  579. package/dist/utils/processLine.js.map +1 -1
  580. package/dist/utils/renderDiffWithHighlighter.d.ts.map +1 -1
  581. package/dist/utils/renderDiffWithHighlighter.js +4 -5
  582. package/dist/utils/renderDiffWithHighlighter.js.map +1 -1
  583. package/dist/utils/renderFileWithHighlighter.d.ts.map +1 -1
  584. package/dist/utils/renderFileWithHighlighter.js +1 -2
  585. package/dist/utils/renderFileWithHighlighter.js.map +1 -1
  586. package/dist/utils/resolveConflict.d.ts.map +1 -1
  587. package/dist/utils/resolveConflict.js +1 -2
  588. package/dist/utils/resolveConflict.js.map +1 -1
  589. package/dist/utils/resolveRegion.d.ts.map +1 -1
  590. package/dist/utils/resolveRegion.js +1 -1
  591. package/dist/utils/resolveRegion.js.map +1 -1
  592. package/dist/utils/roundToDevicePixel.d.ts.map +1 -1
  593. package/dist/utils/roundToDevicePixel.js +1 -1
  594. package/dist/utils/roundToDevicePixel.js.map +1 -1
  595. package/dist/utils/scrollbarGutter.d.ts.map +1 -1
  596. package/dist/utils/scrollbarGutter.js +1 -2
  597. package/dist/utils/scrollbarGutter.js.map +1 -1
  598. package/dist/utils/setLanguageOverride.d.ts.map +1 -1
  599. package/dist/utils/setLanguageOverride.js +1 -1
  600. package/dist/utils/setLanguageOverride.js.map +1 -1
  601. package/dist/utils/setWrapperNodeProps.d.ts.map +1 -1
  602. package/dist/utils/setWrapperNodeProps.js +1 -2
  603. package/dist/utils/setWrapperNodeProps.js.map +1 -1
  604. package/dist/utils/shouldUseTokenTransformer.d.ts.map +1 -1
  605. package/dist/utils/shouldUseTokenTransformer.js +1 -1
  606. package/dist/utils/shouldUseTokenTransformer.js.map +1 -1
  607. package/dist/utils/splitFileContents.d.ts.map +1 -1
  608. package/dist/utils/splitFileContents.js +1 -2
  609. package/dist/utils/splitFileContents.js.map +1 -1
  610. package/dist/utils/trimPatchContext.d.ts.map +1 -1
  611. package/dist/utils/trimPatchContext.js +1 -2
  612. package/dist/utils/trimPatchContext.js.map +1 -1
  613. package/dist/utils/updateDiffHunks.d.ts +6 -1
  614. package/dist/utils/updateDiffHunks.d.ts.map +1 -1
  615. package/dist/utils/updateDiffHunks.js +44 -3
  616. package/dist/utils/updateDiffHunks.js.map +1 -1
  617. package/dist/utils/virtualDiffLayout.d.ts.map +1 -1
  618. package/dist/utils/virtualDiffLayout.js +1 -2
  619. package/dist/utils/virtualDiffLayout.js.map +1 -1
  620. package/dist/utils/wrapTokenFragments.d.ts +1 -1
  621. package/dist/utils/wrapTokenFragments.d.ts.map +1 -1
  622. package/dist/utils/wrapTokenFragments.js +1 -2
  623. package/dist/utils/wrapTokenFragments.js.map +1 -1
  624. package/dist/worker/WorkerPoolManager.d.ts +7 -2
  625. package/dist/worker/WorkerPoolManager.d.ts.map +1 -1
  626. package/dist/worker/WorkerPoolManager.js +83 -20
  627. package/dist/worker/WorkerPoolManager.js.map +1 -1
  628. package/dist/worker/getOrCreateWorkerPoolSingleton.d.ts.map +1 -1
  629. package/dist/worker/getOrCreateWorkerPoolSingleton.js +1 -2
  630. package/dist/worker/getOrCreateWorkerPoolSingleton.js.map +1 -1
  631. package/dist/worker/index.d.ts +2 -2
  632. package/dist/worker/index.js +1 -2
  633. package/dist/worker/types.d.ts +7 -1
  634. package/dist/worker/types.d.ts.map +1 -1
  635. package/dist/worker/wasm-B9ZqxnKj.js +8 -0
  636. package/dist/worker/wasm-B9ZqxnKj.js.map +1 -0
  637. package/dist/worker/worker-portable.js +2784 -6406
  638. package/dist/worker/worker-portable.js.map +1 -1
  639. package/dist/worker/worker.js +94 -126
  640. package/dist/worker/worker.js.map +1 -1
  641. package/package.json +13 -14
  642. package/dist/worker/wasm-qE0LgnY3.js +0 -10
  643. package/dist/worker/wasm-qE0LgnY3.js.map +0 -1
@@ -1,15 +1,18 @@
1
- import { DEFAULT_COLLAPSED_CONTEXT_THRESHOLD } from "../constants.js";
1
+ import "../constants.js";
2
2
  import { areObjectsEqual } from "../utils/areObjectsEqual.js";
3
3
  import { areOptionsEqual } from "../utils/areOptionsEqual.js";
4
+ import { areFilesEqual } from "../utils/areFilesEqual.js";
4
5
  import { computeVirtualFileMetrics, getVirtualFileHeaderRegion, getVirtualFilePaddingBottom } from "../utils/computeVirtualFileMetrics.js";
5
- import { FILE_ANNOTATION_DOM_KEY, FILE_ANNOTATION_LINE_NUMBER, includesFileAnnotations, shouldRenderFileAnnotations } from "../utils/includesFileAnnotations.js";
6
+ import { FILE_ANNOTATION_DOM_KEY, includesFileAnnotations, shouldRenderFileAnnotations } from "../utils/includesFileAnnotations.js";
6
7
  import { areDiffTargetsEqual } from "../utils/areDiffTargetsEqual.js";
8
+ import { awaitWithTimeout } from "../utils/awaitWithTimeout.js";
7
9
  import { getExpandedRegion, getLeadingHunkSeparatorLayout, getTrailingExpandedRegion, getTrailingHunkSeparatorLayout } from "../utils/virtualDiffLayout.js";
8
10
  import { computeEstimatedDiffHeights } from "../utils/computeEstimatedDiffHeights.js";
11
+ import { getDiffFileInput } from "../utils/getDiffFileInput.js";
12
+ import { hydratePartialDiff } from "../utils/hydratePartialDiff.js";
9
13
  import { iterateOverDiff } from "../utils/iterateOverDiff.js";
10
14
  import { parseDiffFromFile } from "../utils/parseDiffFromFile.js";
11
15
  import { FileDiff } from "./FileDiff.js";
12
-
13
16
  //#region src/components/VirtualizedFileDiff.ts
14
17
  const LAYOUT_CHECKPOINT_INTERVAL = 5e3;
15
18
  let instanceId = -1;
@@ -33,6 +36,8 @@ var VirtualizedFileDiff = class extends FileDiff {
33
36
  layoutDirty = true;
34
37
  forceRenderOverride;
35
38
  currentCollapsed;
39
+ pendingHydratedDiff;
40
+ pendingExpansions;
36
41
  constructor(options, virtualizer, metrics, workerManager, isContainerManaged = false) {
37
42
  super(options, workerManager, isContainerManaged);
38
43
  this.virtualizer = virtualizer;
@@ -62,7 +67,7 @@ var VirtualizedFileDiff = class extends FileDiff {
62
67
  hasFileAnnotations(fileDiff = this.fileDiff) {
63
68
  if (fileDiff == null || !includesFileAnnotations(this.lineAnnotations)) return false;
64
69
  return this.lineAnnotations.some((annotation) => {
65
- if (annotation.lineNumber !== FILE_ANNOTATION_LINE_NUMBER) return false;
70
+ if (annotation.lineNumber !== 0) return false;
66
71
  if (fileDiff.type === "new") return annotation.side === "additions";
67
72
  if (fileDiff.type === "deleted") return annotation.side === "deletions";
68
73
  return true;
@@ -93,19 +98,23 @@ var VirtualizedFileDiff = class extends FileDiff {
93
98
  if (this.isAdvancedMode()) throw new Error("VirtualizedFileDiff.setThemeType cannot be used inside CodeView. Update CodeView options instead.");
94
99
  super.setThemeType(themeType);
95
100
  }
96
- resetLayoutCache({ forceSimpleRecompute = false, includeEstimatedHeights = false } = {}) {
101
+ resetLayoutCache({ forceSimpleRecompute = false, includeEstimatedHeights = false, resetRenderRange = true } = {}) {
97
102
  this.layoutDirty = true;
98
103
  this.cache.fileAnnotationHeight = 0;
99
104
  if (this.cache.heightDeltas.size > 0) this.cache.heightDeltas.clear();
100
105
  if (this.cache.measuredHeightDeltaTotal !== 0) this.cache.measuredHeightDeltaTotal = 0;
106
+ this.invalidateDerivedLayoutCache(includeEstimatedHeights, resetRenderRange);
107
+ if (forceSimpleRecompute && this.isSimpleMode()) this.computeApproximateSize();
108
+ }
109
+ invalidateDerivedLayoutCache(includeEstimatedHeights, resetRenderRange = true) {
110
+ this.layoutDirty = true;
101
111
  if (this.cache.checkpoints.length > 0) this.cache.checkpoints.length = 0;
102
112
  if (this.cache.totalLines !== 0) this.cache.totalLines = 0;
103
113
  if (includeEstimatedHeights) {
104
114
  this.cache.estimatedSplitHeight = void 0;
105
115
  this.cache.estimatedUnifiedHeight = void 0;
106
116
  }
107
- if (this.renderRange != null) this.renderRange = void 0;
108
- if (forceSimpleRecompute && this.isSimpleMode()) this.computeApproximateSize();
117
+ if (this.renderRange != null && resetRenderRange) this.renderRange = void 0;
109
118
  }
110
119
  reconcileHeights() {
111
120
  let hasHeightChange = false;
@@ -182,7 +191,7 @@ var VirtualizedFileDiff = class extends FileDiff {
182
191
  if (this.fileDiff == null || lineNumber < 1) return;
183
192
  const targetLineIndexes = this.getLineIndex(lineNumber, side);
184
193
  if (targetLineIndexes == null) return;
185
- const { disableFileHeader = false, expandUnchanged = false, collapsed = false, collapsedContextThreshold = DEFAULT_COLLAPSED_CONTEXT_THRESHOLD } = this.options;
194
+ const { disableFileHeader = false, expandUnchanged = false, collapsed = false, collapsedContextThreshold = 1 } = this.options;
186
195
  const diffStyle = this.getDiffStyle();
187
196
  const hunkSeparators = this.getHunkSeparatorType();
188
197
  const targetLineIndex = diffStyle === "split" ? targetLineIndexes[1] : targetLineIndexes[0];
@@ -255,7 +264,7 @@ var VirtualizedFileDiff = class extends FileDiff {
255
264
  }
256
265
  getNumericScrollAnchor(localViewportTop) {
257
266
  if (this.fileDiff == null) return;
258
- const { disableFileHeader = false, expandUnchanged = false, collapsed = false, collapsedContextThreshold = DEFAULT_COLLAPSED_CONTEXT_THRESHOLD } = this.options;
267
+ const { disableFileHeader = false, expandUnchanged = false, collapsed = false, collapsedContextThreshold = 1 } = this.options;
259
268
  if (collapsed) return;
260
269
  const diffStyle = this.getDiffStyle();
261
270
  const hunkSeparators = this.getHunkSeparatorType();
@@ -332,17 +341,88 @@ var VirtualizedFileDiff = class extends FileDiff {
332
341
  }
333
342
  cleanUp(recycle = false) {
334
343
  if (this.fileContainer != null && this.isSimpleMode()) this.getSimpleVirtualizer()?.disconnect(this.fileContainer);
335
- if (!recycle) this.resetLayoutCache({ includeEstimatedHeights: true });
344
+ if (!recycle) {
345
+ this.resetLayoutCache({ includeEstimatedHeights: true });
346
+ this.pendingExpansions = void 0;
347
+ this.pendingHydratedDiff = void 0;
348
+ }
336
349
  this.isSetup = false;
337
350
  super.cleanUp(recycle);
338
351
  }
339
352
  expandHunk = (hunkIndex, direction, expansionLineCountOverride) => {
340
- this.hunksRenderer.expandHunk(hunkIndex, direction, expansionLineCountOverride);
353
+ if (this.fileDiff == null) return;
354
+ if (this.isAdvancedMode()) {
355
+ this.pendingExpansions ??= [];
356
+ this.pendingExpansions.push({
357
+ hunkIndex,
358
+ direction,
359
+ expansionLineCountOverride
360
+ });
361
+ } else {
362
+ this.hunksRenderer.expandHunk(hunkIndex, direction, expansionLineCountOverride);
363
+ this.resetLayoutCache({ includeEstimatedHeights: true });
364
+ this.computeApproximateSize();
365
+ }
366
+ this.loadFilesIfNecessary();
341
367
  this.forceRenderOverride = true;
342
- this.resetLayoutCache({ includeEstimatedHeights: true });
343
- if (this.isSimpleMode()) this.computeApproximateSize();
344
368
  this.virtualizer.instanceChanged(this, true);
345
369
  };
370
+ async handleFilesLoaded(expectedDiff, files) {
371
+ if (this.fileDiff !== expectedDiff || !expectedDiff.isPartial) return;
372
+ if (this.isAdvancedMode()) {
373
+ const nextDiff = hydratePartialDiff("clone", expectedDiff, files);
374
+ await awaitWithTimeout(() => this.primeHighlightCache(nextDiff));
375
+ if (!this.enabled || this.fileDiff !== expectedDiff) return;
376
+ this.pendingHydratedDiff = {
377
+ expectedDiff,
378
+ nextDiff,
379
+ files
380
+ };
381
+ } else {
382
+ hydratePartialDiff("merge", expectedDiff, files);
383
+ this.setHydratedState(files);
384
+ await awaitWithTimeout(() => this.primeHighlightCache(expectedDiff));
385
+ if (!this.enabled || this.fileDiff !== expectedDiff) return;
386
+ this.resetLayoutCache({ includeEstimatedHeights: true });
387
+ this.computeApproximateSize();
388
+ }
389
+ this.forceRenderOverride = true;
390
+ this.virtualizer.instanceChanged(this, true);
391
+ }
392
+ consumeCodeViewLayoutChanges(expectedFileDiff) {
393
+ let hasLayoutChange = false;
394
+ let nextDiff;
395
+ const { pendingExpansions, pendingHydratedDiff } = this;
396
+ if (pendingExpansions != null) {
397
+ this.pendingExpansions = void 0;
398
+ for (const pendingExpansion of pendingExpansions) {
399
+ this.hunksRenderer.expandHunk(pendingExpansion.hunkIndex, pendingExpansion.direction, pendingExpansion.expansionLineCountOverride);
400
+ hasLayoutChange = true;
401
+ }
402
+ }
403
+ if (pendingHydratedDiff != null) {
404
+ this.pendingHydratedDiff = void 0;
405
+ if (pendingHydratedDiff.expectedDiff === expectedFileDiff) {
406
+ this.setHydratedState(pendingHydratedDiff.files);
407
+ nextDiff = pendingHydratedDiff.nextDiff;
408
+ }
409
+ }
410
+ if (nextDiff != null) {
411
+ this.forceRenderOverride = true;
412
+ this.resetLayoutCache({ includeEstimatedHeights: true });
413
+ } else if (hasLayoutChange) {
414
+ this.forceRenderOverride = true;
415
+ this.invalidateDerivedLayoutCache(true);
416
+ }
417
+ return nextDiff;
418
+ }
419
+ loadFilesIfNecessary() {
420
+ if (this.pendingHydratedDiff != null) {
421
+ if (this.pendingHydratedDiff.expectedDiff === this.fileDiff) return;
422
+ this.pendingHydratedDiff = void 0;
423
+ }
424
+ super.loadFilesIfNecessary();
425
+ }
346
426
  setVisibility(visible) {
347
427
  if (this.isAdvancedMode() || this.fileContainer == null) return;
348
428
  this.renderRange = void 0;
@@ -365,22 +445,24 @@ var VirtualizedFileDiff = class extends FileDiff {
365
445
  this.getSimpleVirtualizer()?.markDOMDirty();
366
446
  this.resetLayoutCache({
367
447
  forceSimpleRecompute: this.isSimpleMode(),
368
- includeEstimatedHeights: true
448
+ includeEstimatedHeights: true,
449
+ resetRenderRange: false
369
450
  });
451
+ if (!this.isSimpleMode()) this.computeApproximateSize(true);
370
452
  if (shouldUpdateBuffer && previousRenderRange !== void 0 && this.fileDiff !== void 0) {
371
453
  const windowSpecs = this.virtualizer.getWindowSpecs();
372
454
  const renderRange = this.computeRenderRangeFromWindow(this.fileDiff, this.top ?? 0, windowSpecs);
373
455
  if (renderRange.bufferAfter !== previousRenderRange.bufferAfter) this.updateBuffers(renderRange);
374
456
  }
375
457
  }
376
- computeApproximateSize(force = false) {
458
+ computeApproximateSize(force = false, fileDiff = this.fileDiff) {
377
459
  const shouldValidateSize = this.isResizeDebuggingEnabled();
378
460
  if (!force && !this.layoutDirty && !shouldValidateSize) return;
379
461
  const isFirstCompute = this.height === 0;
380
462
  this.height = 0;
381
463
  this.cache.checkpoints = [];
382
464
  this.cache.totalLines = 0;
383
- if (this.fileDiff == null) {
465
+ if (fileDiff == null) {
384
466
  this.layoutDirty = false;
385
467
  return;
386
468
  }
@@ -391,59 +473,70 @@ var VirtualizedFileDiff = class extends FileDiff {
391
473
  this.layoutDirty = false;
392
474
  return;
393
475
  }
394
- this.height = this.getActiveEstimatedHeight() + this.cache.measuredHeightDeltaTotal;
395
- if (shouldValidateSize && !isFirstCompute) this.validateComputedHeight();
476
+ this.height = this.getActiveEstimatedHeight(fileDiff) + this.cache.measuredHeightDeltaTotal;
477
+ if (shouldValidateSize && !isFirstCompute) this.validateComputedHeight(fileDiff);
396
478
  this.layoutDirty = false;
397
479
  }
398
- getActiveEstimatedHeight() {
399
- this.ensureEstimatedDiffHeights();
480
+ getActiveEstimatedHeight(fileDiff = this.fileDiff) {
481
+ this.ensureEstimatedDiffHeights(fileDiff);
400
482
  const estimatedHeight = this.getDiffStyle() === "split" ? this.cache.estimatedSplitHeight : this.cache.estimatedUnifiedHeight;
401
483
  if (estimatedHeight == null) throw new Error("VirtualizedFileDiff.getActiveEstimatedHeight: missing estimated height");
402
484
  return estimatedHeight;
403
485
  }
404
- ensureEstimatedDiffHeights() {
405
- if (this.fileDiff == null) {
486
+ ensureEstimatedDiffHeights(fileDiff = this.fileDiff) {
487
+ if (fileDiff == null) {
406
488
  this.cache.estimatedSplitHeight = void 0;
407
489
  this.cache.estimatedUnifiedHeight = void 0;
408
490
  return;
409
491
  }
410
492
  if (this.cache.estimatedSplitHeight != null && this.cache.estimatedUnifiedHeight != null) return;
411
- const { disableFileHeader = false, expandUnchanged = false, collapsedContextThreshold = DEFAULT_COLLAPSED_CONTEXT_THRESHOLD } = this.options;
493
+ const { disableFileHeader = false, expandUnchanged = false, collapsedContextThreshold = 1 } = this.options;
412
494
  const { splitHeight, unifiedHeight } = computeEstimatedDiffHeights({
413
- fileDiff: this.fileDiff,
495
+ fileDiff,
414
496
  metrics: this.metrics,
415
497
  disableFileHeader,
416
498
  hunkSeparators: this.getHunkSeparatorType(),
417
499
  expandUnchanged,
418
500
  expandedHunks: this.hunksRenderer.getExpandedHunksMap(),
419
- collapsedContextThreshold
501
+ collapsedContextThreshold,
502
+ canHydratePartialDiff: canHydrateCollapsedContext(fileDiff, this.options.loadDiffFiles != null)
420
503
  });
421
504
  this.cache.estimatedSplitHeight = splitHeight;
422
505
  this.cache.estimatedUnifiedHeight = unifiedHeight;
423
506
  }
424
- validateComputedHeight() {
425
- if (this.fileContainer == null || this.fileDiff == null) return;
507
+ validateComputedHeight(fileDiff = this.fileDiff) {
508
+ if (this.fileContainer == null || fileDiff == null) return;
426
509
  const rect = this.fileContainer.getBoundingClientRect();
427
510
  if (rect.height !== this.height) console.log("VirtualizedFileDiff.computeApproximateSize: computed height doesnt match", {
428
- name: this.fileDiff.name,
511
+ name: fileDiff.name,
429
512
  elementHeight: rect.height,
430
513
  computedHeight: this.height
431
514
  });
432
515
  else console.log("VirtualizedFileDiff.computeApproximateSize: computed height IS CORRECT");
433
516
  }
434
- render({ fileContainer, oldFile, newFile, fileDiff, forceRender = false, lineAnnotations,...props } = {}) {
517
+ render({ fileContainer, fileDiff, forceRender = false, lineAnnotations, ...fileInputProps } = {}) {
518
+ const fileInput = getDiffFileInput(fileInputProps, "VirtualizedFileDiff.render");
519
+ const hasFileInput = fileInput != null;
520
+ const oldFile = fileInput?.oldFile;
521
+ const newFile = fileInput?.newFile;
522
+ const filesDidChange = hasFileInput && (!areOptionalFilesEqual(oldFile, this.deletionFile) || !areOptionalFilesEqual(newFile, this.additionFile));
523
+ let nextFileDiff = fileDiff ?? this.fileDiff;
524
+ if (fileDiff == null && hasFileInput && (filesDidChange || this.fileDiff == null)) nextFileDiff = parseDiffFromFile(fileInput.oldFile, fileInput.newFile, this.options.parseDiffOptions);
435
525
  const { forceRenderOverride, isSetup } = this;
436
526
  this.forceRenderOverride = void 0;
437
527
  const annotationsChanged = this.syncLineAnnotations(lineAnnotations);
438
528
  if (annotationsChanged) this.resetLayoutCache({ includeEstimatedHeights: false });
439
- this.fileDiff ??= fileDiff ?? (oldFile != null && newFile != null ? parseDiffFromFile(oldFile, newFile, this.options.parseDiffOptions) : void 0);
529
+ const diffInputChanged = fileDiff != null && fileDiff !== this.fileDiff;
530
+ const targetChanged = nextFileDiff != null && !areDiffTargetsEqual(this.fileDiff, nextFileDiff);
531
+ const dataChanged = diffInputChanged || filesDidChange;
532
+ if (targetChanged) this.resetLayoutCache({ includeEstimatedHeights: true });
440
533
  fileContainer = this.getOrCreateFileContainer(fileContainer);
441
- if (this.fileDiff == null) {
534
+ if (nextFileDiff == null) {
442
535
  console.error("VirtualizedFileDiff.render: attempting to virtually render when we dont have the correct data");
443
536
  return false;
444
537
  }
445
538
  if (!isSetup) {
446
- this.computeApproximateSize();
539
+ this.computeApproximateSize(false, nextFileDiff);
447
540
  const virtualizer = this.getSimpleVirtualizer();
448
541
  this.top ??= this.getVirtualizedTop();
449
542
  if (this.isAdvancedMode()) this.isVisible = true;
@@ -453,20 +546,30 @@ var VirtualizedFileDiff = class extends FileDiff {
453
546
  this.isVisible = virtualizer.isInstanceVisible(this.top ?? 0, this.height);
454
547
  }
455
548
  this.isSetup = true;
456
- } else this.top ??= this.getVirtualizedTop();
457
- if (!this.isVisible && this.isSimpleMode()) return this.renderPlaceholder(this.height);
549
+ } else {
550
+ this.top ??= this.getVirtualizedTop();
551
+ if (targetChanged) this.computeApproximateSize(false, nextFileDiff);
552
+ }
553
+ if (!this.isVisible && this.isSimpleMode() && (!dataChanged || !isSetup)) {
554
+ this.fileDiff = nextFileDiff;
555
+ if (fileInput != null) {
556
+ this.deletionFile = oldFile;
557
+ this.additionFile = newFile;
558
+ }
559
+ if (targetChanged) this.cachedHeaderHTML = void 0;
560
+ return this.renderPlaceholder(this.height);
561
+ }
458
562
  const windowSpecs = this.virtualizer.getWindowSpecs();
459
563
  const fileTop = this.top ?? 0;
460
- const renderRange = this.computeRenderRangeFromWindow(this.fileDiff, fileTop, windowSpecs);
564
+ const renderRange = this.computeRenderRangeFromWindow(nextFileDiff, fileTop, windowSpecs);
461
565
  return super.render({
462
- fileDiff: this.fileDiff,
566
+ fileDiff: nextFileDiff,
463
567
  fileContainer,
464
568
  renderRange,
465
- oldFile,
466
- newFile,
467
569
  lineAnnotations,
468
- forceRender: (forceRenderOverride ?? forceRender) || annotationsChanged,
469
- ...props
570
+ forceRender: (forceRenderOverride ?? forceRender) || annotationsChanged || targetChanged,
571
+ ...fileInput,
572
+ ...fileInputProps
470
573
  });
471
574
  }
472
575
  syncVirtualizedTop() {
@@ -497,10 +600,11 @@ var VirtualizedFileDiff = class extends FileDiff {
497
600
  getHunkSeparatorType() {
498
601
  return getOptionHunkSeparatorType(this.options.hunkSeparators);
499
602
  }
500
- approximateLayoutCheckpoints() {
501
- if (this.cache.checkpoints.length > 0 || this.fileDiff == null || this.fileDiff.hunks.length === 0 || this.options.collapsed === true) return;
502
- const { disableFileHeader = false, expandUnchanged = false, collapsedContextThreshold = DEFAULT_COLLAPSED_CONTEXT_THRESHOLD } = this.options;
503
- const finalHunkIndex = this.fileDiff.hunks.length - 1;
603
+ approximateLayoutCheckpoints(fileDiff = this.fileDiff) {
604
+ if (!this.layoutDirty && this.cache.checkpoints.length > 0 || fileDiff == null || fileDiff.hunks.length === 0 || this.options.collapsed === true) return;
605
+ const { disableFileHeader = false, expandUnchanged = false, collapsedContextThreshold = 1 } = this.options;
606
+ const finalHunkIndex = fileDiff.hunks.length - 1;
607
+ const canHydratePartialDiff = canHydrateCollapsedContext(fileDiff, this.options.loadDiffFiles != null);
504
608
  const diffStyle = this.getDiffStyle();
505
609
  const hunkSeparators = this.getHunkSeparatorType();
506
610
  const expandedHunks = expandUnchanged ? true : this.hunksRenderer.getExpandedHunksMap();
@@ -525,11 +629,11 @@ var VirtualizedFileDiff = class extends FileDiff {
525
629
  top += preSeparatorHeight + rowCount * this.metrics.lineHeight + metadataOffsets.length * this.metrics.lineHeight + sumHeightDeltas(heightDeltaPrefix, startLineIndex, startLineIndex + rowCount) + postSeparatorHeight;
526
630
  renderedLineIndex = blockEnd;
527
631
  };
528
- for (let hunkIndex = 0; hunkIndex < this.fileDiff.hunks.length; hunkIndex++) {
529
- const hunk = this.fileDiff.hunks[hunkIndex];
632
+ for (let hunkIndex = 0; hunkIndex < fileDiff.hunks.length; hunkIndex++) {
633
+ const hunk = fileDiff.hunks[hunkIndex];
530
634
  if (hunk == null) throw new Error("VirtualizedFileDiff.approximateLayoutCheckpoints: invalid hunk index");
531
635
  const leadingRegion = getExpandedRegion({
532
- isPartial: this.fileDiff.isPartial,
636
+ isPartial: fileDiff.isPartial,
533
637
  rangeSize: hunk.collapsedBefore,
534
638
  expandedHunks,
535
639
  hunkIndex,
@@ -553,7 +657,7 @@ var VirtualizedFileDiff = class extends FileDiff {
553
657
  });
554
658
  if (leadingRegion.fromEnd > 0) pendingLeadingSeparatorHeight = 0;
555
659
  const trailingRegion = hunkIndex === finalHunkIndex ? getTrailingExpandedRegion({
556
- fileDiff: this.fileDiff,
660
+ fileDiff,
557
661
  hunkIndex,
558
662
  expandedHunks,
559
663
  collapsedContextThreshold,
@@ -562,6 +666,9 @@ var VirtualizedFileDiff = class extends FileDiff {
562
666
  const trailingSeparatorHeight = trailingRegion != null && trailingRegion.collapsedLines > 0 ? getTrailingHunkSeparatorLayout({
563
667
  type: hunkSeparators,
564
668
  metrics: this.metrics
669
+ })?.totalHeight ?? 0 : hunkIndex === finalHunkIndex && canHydratePartialDiff ? getTrailingHunkSeparatorLayout({
670
+ type: hunkSeparators,
671
+ metrics: this.metrics
565
672
  })?.totalHeight ?? 0 : 0;
566
673
  const trailingExpandedCount = trailingRegion != null ? trailingRegion.fromStart + trailingRegion.fromEnd : 0;
567
674
  const hunkBodyRowCount = diffStyle === "split" ? hunk.splitLineCount : hunk.unifiedLineCount;
@@ -627,7 +734,7 @@ var VirtualizedFileDiff = class extends FileDiff {
627
734
  for (const hunk of fileDiff.hunks) count += diffStyle === "split" ? hunk.splitLineCount : hunk.unifiedLineCount;
628
735
  return count;
629
736
  }
630
- const { expandUnchanged = false, collapsedContextThreshold = DEFAULT_COLLAPSED_CONTEXT_THRESHOLD } = this.options;
737
+ const { expandUnchanged = false, collapsedContextThreshold = 1 } = this.options;
631
738
  const expandedHunks = expandUnchanged ? true : this.hunksRenderer.getExpandedHunksMap();
632
739
  for (const [hunkIndex, hunk] of fileDiff.hunks.entries()) {
633
740
  const hunkCount = diffStyle === "split" ? hunk.splitLineCount : hunk.unifiedLineCount;
@@ -652,13 +759,19 @@ var VirtualizedFileDiff = class extends FileDiff {
652
759
  if (trailingRegion != null) count += trailingRegion.fromStart + trailingRegion.fromEnd;
653
760
  return count;
654
761
  }
762
+ getLayoutLineCount(fileDiff, diffStyle) {
763
+ const expandedLineCount = this.getExpandedLineCount(fileDiff, diffStyle);
764
+ const metadataLineCount = diffStyle === "split" ? fileDiff.splitLineCount : fileDiff.unifiedLineCount;
765
+ return Math.max(expandedLineCount, metadataLineCount, fileDiff.additionLines.length, fileDiff.deletionLines.length, this.cache.totalLines);
766
+ }
655
767
  computeRenderRangeFromWindow(fileDiff, fileTop, { top, bottom }) {
656
- const { disableFileHeader = false, expandUnchanged = false, collapsedContextThreshold = DEFAULT_COLLAPSED_CONTEXT_THRESHOLD } = this.options;
768
+ const { disableFileHeader = false, expandUnchanged = false, collapsedContextThreshold = 1 } = this.options;
657
769
  const { hunkLineCount, lineHeight } = this.metrics;
658
770
  const diffStyle = this.getDiffStyle();
659
771
  const hunkSeparators = this.getHunkSeparatorType();
772
+ const canHydratePartialDiff = canHydrateCollapsedContext(fileDiff, this.options.loadDiffFiles != null);
660
773
  const fileHeight = this.height;
661
- let lineCount = this.cache.totalLines > 0 ? this.cache.totalLines : this.getExpandedLineCount(fileDiff, diffStyle);
774
+ let lineCount = this.getLayoutLineCount(fileDiff, diffStyle);
662
775
  const headerRegion = getVirtualFileHeaderRegion(this.metrics, disableFileHeader);
663
776
  const paddingBottom = fileDiff.hunks.length > 0 ? getVirtualFilePaddingBottom(this.metrics) : 0;
664
777
  const { fileAnnotationHeight } = this.cache;
@@ -679,8 +792,8 @@ var VirtualizedFileDiff = class extends FileDiff {
679
792
  bufferBefore: 0,
680
793
  bufferAfter: 0
681
794
  };
682
- this.approximateLayoutCheckpoints();
683
- lineCount = this.cache.totalLines > 0 ? this.cache.totalLines : lineCount;
795
+ this.approximateLayoutCheckpoints(fileDiff);
796
+ lineCount = this.getLayoutLineCount(fileDiff, diffStyle);
684
797
  const estimatedTargetLines = Math.ceil(Math.max(bottom - top, 0) / lineHeight);
685
798
  const totalLines = Math.ceil(estimatedTargetLines / hunkLineCount) * hunkLineCount + hunkLineCount;
686
799
  const totalHunks = totalLines / hunkLineCount;
@@ -703,6 +816,7 @@ var VirtualizedFileDiff = class extends FileDiff {
703
816
  const splitLineIndex = additionLine != null ? additionLine.splitLineIndex : deletionLine.splitLineIndex;
704
817
  const unifiedLineIndex = additionLine != null ? additionLine.unifiedLineIndex : deletionLine.unifiedLineIndex;
705
818
  const hasMetadata = (additionLine?.noEOFCR ?? false) || (deletionLine?.noEOFCR ?? false);
819
+ const isFinalHunkRow = hunkIndex === fileDiff.hunks.length - 1 && hunk != null && (diffStyle === "split" ? splitLineIndex === hunk.splitLineStart + hunk.splitLineCount - 1 : unifiedLineIndex === hunk.unifiedLineStart + hunk.unifiedLineCount - 1);
706
820
  const gapAdjustment = (collapsedBefore > 0 ? getLeadingHunkSeparatorLayout({
707
821
  type: hunkSeparators,
708
822
  metrics: this.metrics,
@@ -719,16 +833,23 @@ var VirtualizedFileDiff = class extends FileDiff {
719
833
  overflowCounter--;
720
834
  }
721
835
  }
722
- const lineHeight$1 = this.getLineHeight(diffStyle === "split" ? splitLineIndex : unifiedLineIndex, hasMetadata);
723
- if (absoluteLineTop > top - lineHeight$1 && absoluteLineTop < bottom) firstVisibleHunk ??= currentHunk;
724
- if (centerHunk == null && absoluteLineTop + lineHeight$1 > viewportCenter) centerHunk = currentHunk;
836
+ const lineHeight = this.getLineHeight(diffStyle === "split" ? splitLineIndex : unifiedLineIndex, hasMetadata);
837
+ if (absoluteLineTop > top - lineHeight && absoluteLineTop < bottom) firstVisibleHunk ??= currentHunk;
838
+ if (centerHunk == null && absoluteLineTop + lineHeight > viewportCenter) centerHunk = currentHunk;
725
839
  if (overflowCounter == null && absoluteLineTop >= bottom && isAtHunkBoundary) overflowCounter = overflowHunks;
726
840
  currentLine++;
727
- absoluteLineTop += lineHeight$1;
728
- if (collapsedAfter > 0) absoluteLineTop += getTrailingHunkSeparatorLayout({
729
- type: hunkSeparators,
730
- metrics: this.metrics
731
- })?.totalHeight ?? 0;
841
+ absoluteLineTop += lineHeight;
842
+ if (collapsedAfter > 0 || isFinalHunkRow && canHydratePartialDiff) {
843
+ const trailingSeparator = getTrailingHunkSeparatorLayout({
844
+ type: hunkSeparators,
845
+ metrics: this.metrics
846
+ });
847
+ if (trailingSeparator != null) {
848
+ if (absoluteLineTop < bottom && absoluteLineTop + trailingSeparator.totalHeight > top) firstVisibleHunk ??= currentHunk;
849
+ if (centerHunk == null && absoluteLineTop + trailingSeparator.totalHeight > viewportCenter) centerHunk = currentHunk;
850
+ absoluteLineTop += trailingSeparator.totalHeight;
851
+ }
852
+ }
732
853
  return false;
733
854
  }
734
855
  });
@@ -828,19 +949,26 @@ function getHunkMetadataOffsets({ diffStyle, hunk, rowCount }) {
828
949
  return offsets;
829
950
  }
830
951
  function hasDiffLayoutOptionChanged(previousOptions, nextOptions) {
831
- return (previousOptions.diffStyle ?? "split") !== (nextOptions.diffStyle ?? "split") || (previousOptions.overflow ?? "scroll") !== (nextOptions.overflow ?? "scroll") || (previousOptions.collapsed ?? false) !== (nextOptions.collapsed ?? false) || (previousOptions.disableLineNumbers ?? false) !== (nextOptions.disableLineNumbers ?? false) || (previousOptions.disableFileHeader ?? false) !== (nextOptions.disableFileHeader ?? false) || (previousOptions.diffIndicators ?? "bars") !== (nextOptions.diffIndicators ?? "bars") || (previousOptions.hunkSeparators ?? "line-info") !== (nextOptions.hunkSeparators ?? "line-info") || (previousOptions.expandUnchanged ?? false) !== (nextOptions.expandUnchanged ?? false) || (previousOptions.collapsedContextThreshold ?? DEFAULT_COLLAPSED_CONTEXT_THRESHOLD) !== (nextOptions.collapsedContextThreshold ?? DEFAULT_COLLAPSED_CONTEXT_THRESHOLD) || previousOptions.unsafeCSS !== nextOptions.unsafeCSS;
952
+ return (previousOptions.diffStyle ?? "split") !== (nextOptions.diffStyle ?? "split") || (previousOptions.overflow ?? "scroll") !== (nextOptions.overflow ?? "scroll") || (previousOptions.collapsed ?? false) !== (nextOptions.collapsed ?? false) || (previousOptions.disableLineNumbers ?? false) !== (nextOptions.disableLineNumbers ?? false) || (previousOptions.disableFileHeader ?? false) !== (nextOptions.disableFileHeader ?? false) || (previousOptions.diffIndicators ?? "bars") !== (nextOptions.diffIndicators ?? "bars") || (previousOptions.hunkSeparators ?? "line-info") !== (nextOptions.hunkSeparators ?? "line-info") || Boolean(previousOptions.loadDiffFiles) !== Boolean(nextOptions.loadDiffFiles) || (previousOptions.expandUnchanged ?? false) !== (nextOptions.expandUnchanged ?? false) || (previousOptions.collapsedContextThreshold ?? 1) !== (nextOptions.collapsedContextThreshold ?? 1) || previousOptions.unsafeCSS !== nextOptions.unsafeCSS;
832
953
  }
833
954
  function hasDiffEstimateOptionChanged(previousOptions, nextOptions) {
834
- return (previousOptions.disableFileHeader ?? false) !== (nextOptions.disableFileHeader ?? false) || (previousOptions.hunkSeparators ?? "line-info") !== (nextOptions.hunkSeparators ?? "line-info") || (previousOptions.expandUnchanged ?? false) !== (nextOptions.expandUnchanged ?? false) || (previousOptions.collapsedContextThreshold ?? DEFAULT_COLLAPSED_CONTEXT_THRESHOLD) !== (nextOptions.collapsedContextThreshold ?? DEFAULT_COLLAPSED_CONTEXT_THRESHOLD);
955
+ return (previousOptions.disableFileHeader ?? false) !== (nextOptions.disableFileHeader ?? false) || (previousOptions.hunkSeparators ?? "line-info") !== (nextOptions.hunkSeparators ?? "line-info") || Boolean(previousOptions.loadDiffFiles) !== Boolean(nextOptions.loadDiffFiles) || (previousOptions.expandUnchanged ?? false) !== (nextOptions.expandUnchanged ?? false) || (previousOptions.collapsedContextThreshold ?? 1) !== (nextOptions.collapsedContextThreshold ?? 1);
956
+ }
957
+ function canHydrateCollapsedContext(fileDiff, hasFileLoader) {
958
+ return fileDiff.isPartial && hasFileLoader && (fileDiff.type === "change" || fileDiff.type === "rename-changed");
835
959
  }
836
960
  function getOptionHunkSeparatorType(hunkSeparators) {
837
961
  return typeof hunkSeparators === "function" ? "custom" : hunkSeparators ?? "line-info";
838
962
  }
963
+ function areOptionalFilesEqual(fileA, fileB) {
964
+ if (fileA == null || fileB == null) return fileA == null && fileB == null;
965
+ return areFilesEqual(fileA, fileB);
966
+ }
839
967
  function parseLineIndex(lineIndexAttr, diffStyle) {
840
968
  const [unifiedIndex, splitIndex] = lineIndexAttr.split(",").map(Number);
841
969
  return diffStyle === "split" ? splitIndex : unifiedIndex;
842
970
  }
843
-
844
971
  //#endregion
845
972
  export { VirtualizedFileDiff };
973
+
846
974
  //# sourceMappingURL=VirtualizedFileDiff.js.map