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

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 (161) hide show
  1. package/README.md +6 -6
  2. package/dist/components/CodeView.js +6 -6
  3. package/dist/components/CodeView.js.map +1 -1
  4. package/dist/components/File.d.ts +3 -2
  5. package/dist/components/File.d.ts.map +1 -1
  6. package/dist/components/File.js +35 -21
  7. package/dist/components/File.js.map +1 -1
  8. package/dist/components/FileDiff.d.ts +8 -4
  9. package/dist/components/FileDiff.d.ts.map +1 -1
  10. package/dist/components/FileDiff.js +66 -56
  11. package/dist/components/FileDiff.js.map +1 -1
  12. package/dist/components/FileStream.js +4 -2
  13. package/dist/components/FileStream.js.map +1 -1
  14. package/dist/components/UnresolvedFile.js +1 -1
  15. package/dist/components/VirtualizedFile.d.ts +6 -2
  16. package/dist/components/VirtualizedFile.d.ts.map +1 -1
  17. package/dist/components/VirtualizedFile.js +89 -24
  18. package/dist/components/VirtualizedFile.js.map +1 -1
  19. package/dist/components/VirtualizedFileDiff.d.ts +8 -2
  20. package/dist/components/VirtualizedFileDiff.d.ts.map +1 -1
  21. package/dist/components/VirtualizedFileDiff.js +91 -15
  22. package/dist/components/VirtualizedFileDiff.js.map +1 -1
  23. package/dist/editor/command.d.ts +1 -1
  24. package/dist/editor/command.d.ts.map +1 -1
  25. package/dist/editor/command.js +3 -3
  26. package/dist/editor/command.js.map +1 -1
  27. package/dist/editor/editStack.d.ts +1 -1
  28. package/dist/editor/editor.d.ts +37 -9
  29. package/dist/editor/editor.d.ts.map +1 -1
  30. package/dist/editor/editor.js +558 -449
  31. package/dist/editor/editor.js.map +1 -1
  32. package/dist/editor/editor2.js +1 -1
  33. package/dist/editor/editor2.js.map +1 -1
  34. package/dist/editor/index.d.ts +2 -2
  35. package/dist/editor/lineAnnotations.d.ts +2 -1
  36. package/dist/editor/lineAnnotations.d.ts.map +1 -1
  37. package/dist/editor/lineAnnotations.js +111 -1
  38. package/dist/editor/lineAnnotations.js.map +1 -1
  39. package/dist/editor/marker.d.ts +33 -0
  40. package/dist/editor/marker.d.ts.map +1 -0
  41. package/dist/editor/marker.js +185 -0
  42. package/dist/editor/marker.js.map +1 -0
  43. package/dist/editor/pieceTable.d.ts +8 -3
  44. package/dist/editor/pieceTable.d.ts.map +1 -1
  45. package/dist/editor/pieceTable.js +74 -12
  46. package/dist/editor/pieceTable.js.map +1 -1
  47. package/dist/editor/searchPanel.d.ts +12 -3
  48. package/dist/editor/searchPanel.d.ts.map +1 -1
  49. package/dist/editor/searchPanel.js +168 -54
  50. package/dist/editor/searchPanel.js.map +1 -1
  51. package/dist/editor/selection.d.ts +19 -3
  52. package/dist/editor/selection.d.ts.map +1 -1
  53. package/dist/editor/selection.js +188 -37
  54. package/dist/editor/selection.js.map +1 -1
  55. package/dist/editor/{quickEdit.d.ts → selectionAction.d.ts} +8 -8
  56. package/dist/editor/selectionAction.d.ts.map +1 -0
  57. package/dist/editor/{quickEdit.js → selectionAction.js} +18 -18
  58. package/dist/editor/selectionAction.js.map +1 -0
  59. package/dist/editor/sprite.d.ts +4 -3
  60. package/dist/editor/sprite.d.ts.map +1 -1
  61. package/dist/editor/sprite.js +19 -5
  62. package/dist/editor/sprite.js.map +1 -1
  63. package/dist/editor/textDocument.d.ts +4 -4
  64. package/dist/editor/textDocument.d.ts.map +1 -1
  65. package/dist/editor/textDocument.js +7 -7
  66. package/dist/editor/textDocument.js.map +1 -1
  67. package/dist/editor/textMeasure.d.ts +1 -0
  68. package/dist/editor/textMeasure.d.ts.map +1 -1
  69. package/dist/editor/textMeasure.js +6 -0
  70. package/dist/editor/textMeasure.js.map +1 -1
  71. package/dist/editor/tokenzier.js +20 -9
  72. package/dist/editor/tokenzier.js.map +1 -1
  73. package/dist/editor/utils.d.ts +3 -1
  74. package/dist/editor/utils.d.ts.map +1 -1
  75. package/dist/editor/utils.js +16 -1
  76. package/dist/editor/utils.js.map +1 -1
  77. package/dist/highlighter/shared_highlighter.js +3 -29
  78. package/dist/highlighter/shared_highlighter.js.map +1 -1
  79. package/dist/highlighter/themes/attachResolvedThemes.js +4 -3
  80. package/dist/highlighter/themes/attachResolvedThemes.js.map +1 -1
  81. package/dist/highlighter/themes/cleanUpResolvedThemes.js +3 -2
  82. package/dist/highlighter/themes/cleanUpResolvedThemes.js.map +1 -1
  83. package/dist/highlighter/themes/constants.d.ts +1 -7
  84. package/dist/highlighter/themes/constants.d.ts.map +1 -1
  85. package/dist/highlighter/themes/constants.js +1 -4
  86. package/dist/highlighter/themes/constants.js.map +1 -1
  87. package/dist/highlighter/themes/getResolvedOrResolveTheme.js +2 -2
  88. package/dist/highlighter/themes/getResolvedOrResolveTheme.js.map +1 -1
  89. package/dist/highlighter/themes/getResolvedThemes.js +2 -8
  90. package/dist/highlighter/themes/getResolvedThemes.js.map +1 -1
  91. package/dist/highlighter/themes/hasResolvedThemes.js +2 -3
  92. package/dist/highlighter/themes/hasResolvedThemes.js.map +1 -1
  93. package/dist/highlighter/themes/registerCustomCSSVariableTheme.js +1 -1
  94. package/dist/highlighter/themes/registerCustomTheme.d.ts +5 -3
  95. package/dist/highlighter/themes/registerCustomTheme.d.ts.map +1 -1
  96. package/dist/highlighter/themes/registerCustomTheme.js +15 -5
  97. package/dist/highlighter/themes/registerCustomTheme.js.map +1 -1
  98. package/dist/highlighter/themes/resolveTheme.js +6 -27
  99. package/dist/highlighter/themes/resolveTheme.js.map +1 -1
  100. package/dist/highlighter/themes/resolveThemes.js +5 -12
  101. package/dist/highlighter/themes/resolveThemes.js.map +1 -1
  102. package/dist/highlighter/themes/themeResolution.d.ts +8 -0
  103. package/dist/highlighter/themes/themeResolution.d.ts.map +1 -0
  104. package/dist/highlighter/themes/themeResolution.js +22 -0
  105. package/dist/highlighter/themes/themeResolution.js.map +1 -0
  106. package/dist/highlighter/themes/themeResolver.d.ts +8 -0
  107. package/dist/highlighter/themes/themeResolver.d.ts.map +1 -0
  108. package/dist/highlighter/themes/themeResolver.js +8 -0
  109. package/dist/highlighter/themes/themeResolver.js.map +1 -0
  110. package/dist/index.d.ts +4 -4
  111. package/dist/index.js +3 -3
  112. package/dist/managers/InteractionManager.js +1 -1
  113. package/dist/managers/InteractionManager.js.map +1 -1
  114. package/dist/managers/ResizeManager.js +1 -1
  115. package/dist/managers/ResizeManager.js.map +1 -1
  116. package/dist/react/CodeView.js +1 -1
  117. package/dist/react/index.d.ts +2 -2
  118. package/dist/react/utils/useFileDiffInstance.js +1 -0
  119. package/dist/react/utils/useFileDiffInstance.js.map +1 -1
  120. package/dist/renderers/DiffHunksRenderer.d.ts +6 -2
  121. package/dist/renderers/DiffHunksRenderer.d.ts.map +1 -1
  122. package/dist/renderers/DiffHunksRenderer.js +183 -12
  123. package/dist/renderers/DiffHunksRenderer.js.map +1 -1
  124. package/dist/renderers/FileRenderer.d.ts +2 -2
  125. package/dist/renderers/FileRenderer.d.ts.map +1 -1
  126. package/dist/renderers/FileRenderer.js +17 -5
  127. package/dist/renderers/FileRenderer.js.map +1 -1
  128. package/dist/ssr/FileDiffReact.js +1 -1
  129. package/dist/ssr/index.d.ts +2 -2
  130. package/dist/types.d.ts +25 -8
  131. package/dist/types.d.ts.map +1 -1
  132. package/dist/utils/getHighlighterThemeStyles.js +16 -12
  133. package/dist/utils/getHighlighterThemeStyles.js.map +1 -1
  134. package/dist/utils/includesFileAnnotations.d.ts +17 -0
  135. package/dist/utils/includesFileAnnotations.d.ts.map +1 -0
  136. package/dist/utils/includesFileAnnotations.js +19 -0
  137. package/dist/utils/includesFileAnnotations.js.map +1 -0
  138. package/dist/utils/parseMergeConflictDiffFromFile.js.map +1 -1
  139. package/dist/utils/parsePatchFiles.js +93 -4
  140. package/dist/utils/parsePatchFiles.js.map +1 -1
  141. package/dist/utils/renderDiffWithHighlighter.js +4 -2
  142. package/dist/utils/renderDiffWithHighlighter.js.map +1 -1
  143. package/dist/utils/renderFileWithHighlighter.js +4 -2
  144. package/dist/utils/renderFileWithHighlighter.js.map +1 -1
  145. package/dist/utils/updateDiffHunks.d.ts +13 -0
  146. package/dist/utils/updateDiffHunks.d.ts.map +1 -0
  147. package/dist/utils/updateDiffHunks.js +171 -0
  148. package/dist/utils/updateDiffHunks.js.map +1 -0
  149. package/dist/utils/virtualDiffLayout.d.ts +2 -1
  150. package/dist/utils/virtualDiffLayout.d.ts.map +1 -1
  151. package/dist/utils/virtualDiffLayout.js +9 -1
  152. package/dist/utils/virtualDiffLayout.js.map +1 -1
  153. package/dist/worker/{wasm-BaDzIkIn.js → wasm-qE0LgnY3.js} +2 -2
  154. package/dist/worker/{wasm-BaDzIkIn.js.map → wasm-qE0LgnY3.js.map} +1 -1
  155. package/dist/worker/worker-portable.js +1016 -275
  156. package/dist/worker/worker-portable.js.map +1 -1
  157. package/dist/worker/worker.js +31 -19
  158. package/dist/worker/worker.js.map +1 -1
  159. package/package.json +5 -10
  160. package/dist/editor/quickEdit.d.ts.map +0 -1
  161. package/dist/editor/quickEdit.js.map +0 -1
@@ -1 +1 @@
1
- {"version":3,"file":"FileDiff.d.ts","names":["GetHoveredLineResult","GetLineIndexUtility","InteractionManager","InteractionManagerBaseOptions","SelectionWriteOptions","ResizeManager","ScrollSyncManager","DiffHunksRenderer","DiffHunksRendererOptions","HunksRenderResult","AppliedThemeStyleCache","BaseDiffOptions","CustomPreProperties","DiffLineAnnotation","DiffsEditableComponent","DiffsEditor","DiffsTextDocument","ExpansionDirections","FileContents","FileDiffMetadata","HunkData","HunkSeparators","PostRenderPhase","PrePropertiesConfig","RenderHeaderMetadataCallback","RenderHeaderPrefixCallback","RenderRange","SelectedLineRange","ThemeTypes","WorkerPoolManager","FileDiffRenderProps","LAnnotation","HTMLElement","FileDiffHydrationProps","Omit","FileDiffType","FileDiffOptions","Exclude","FileDiff","DocumentFragment","AnnotationElementCache","CustomHunkElementCache","HydrationSetup","SVGElement","HTMLPreElement","HTMLStyleElement","Map","setTimeout","ReturnType","__0","AnnotationSide","fileDiff","oldFile","newFile","lineAnnotations","deferManagers","forceRender","preventEmit","fileContainer","containerWrapper","renderRange","additionsContentAST","deletionsContentAST","totalLines"],"sources":["../../src/components/FileDiff.d.ts"],"sourcesContent":["import { type GetHoveredLineResult, type GetLineIndexUtility, InteractionManager, type InteractionManagerBaseOptions, type SelectionWriteOptions } from '../managers/InteractionManager';\nimport { ResizeManager } from '../managers/ResizeManager';\nimport { ScrollSyncManager } from '../managers/ScrollSyncManager';\nimport { DiffHunksRenderer, type DiffHunksRendererOptions, type HunksRenderResult } from '../renderers/DiffHunksRenderer';\nimport type { AppliedThemeStyleCache, BaseDiffOptions, CustomPreProperties, DiffLineAnnotation, DiffsEditableComponent, DiffsEditor, DiffsTextDocument, ExpansionDirections, FileContents, FileDiffMetadata, HunkData, HunkSeparators, PostRenderPhase, PrePropertiesConfig, RenderHeaderMetadataCallback, RenderHeaderPrefixCallback, RenderRange, SelectedLineRange, ThemeTypes } from '../types';\nimport type { WorkerPoolManager } from '../worker';\nexport interface FileDiffRenderProps<LAnnotation> {\n fileDiff?: FileDiffMetadata;\n oldFile?: FileContents;\n newFile?: FileContents;\n deferManagers?: boolean;\n forceRender?: boolean;\n preventEmit?: boolean;\n fileContainer?: HTMLElement;\n containerWrapper?: HTMLElement;\n lineAnnotations?: DiffLineAnnotation<LAnnotation>[];\n renderRange?: RenderRange;\n}\nexport interface FileDiffHydrationProps<LAnnotation> extends Omit<FileDiffRenderProps<LAnnotation>, 'fileContainer'> {\n fileContainer: HTMLElement;\n prerenderedHTML?: string;\n}\nexport type FileDiffType = 'file-diff' | 'unresolved-file';\nexport interface FileDiffOptions<LAnnotation> extends Omit<BaseDiffOptions, 'hunkSeparators'>, InteractionManagerBaseOptions<'diff'> {\n hunkSeparators?: Exclude<HunkSeparators, 'custom'> /**\n * @deprecated Custom hunk separator functions are deprecated and will be\n * removed in a future version.\n */ | ((hunk: HunkData, instance: FileDiff<LAnnotation>) => HTMLElement | DocumentFragment | null | undefined);\n disableFileHeader?: boolean;\n renderHeaderPrefix?: RenderHeaderPrefixCallback;\n renderHeaderMetadata?: RenderHeaderMetadataCallback;\n renderCustomHeader?: RenderHeaderMetadataCallback;\n /**\n * When true, errors during rendering are rethrown instead of being caught\n * and displayed in the DOM. Useful for testing or when you want to handle\n * errors yourself.\n */\n disableErrorHandling?: boolean;\n renderAnnotation?(annotation: DiffLineAnnotation<LAnnotation>): HTMLElement | undefined;\n renderGutterUtility?(getHoveredRow: () => GetHoveredLineResult<'diff'> | undefined): HTMLElement | null | undefined;\n onPostRender?(node: HTMLElement, instance: FileDiff<LAnnotation>, phase: PostRenderPhase): unknown;\n}\ninterface AnnotationElementCache<LAnnotation> {\n element: HTMLElement;\n annotation: DiffLineAnnotation<LAnnotation>;\n}\ninterface CustomHunkElementCache {\n element: HTMLElement;\n hunkData: HunkData;\n}\ninterface HydrationSetup<LAnnotation> {\n fileDiff: FileDiffMetadata | undefined;\n lineAnnotations: DiffLineAnnotation<LAnnotation>[] | undefined;\n oldFile?: FileContents;\n newFile?: FileContents;\n}\nexport declare class FileDiff<LAnnotation = undefined> implements DiffsEditableComponent<LAnnotation> {\n options: FileDiffOptions<LAnnotation>;\n protected workerManager?: WorkerPoolManager | undefined;\n protected isContainerManaged: boolean;\n static LoadedCustomComponent: boolean;\n readonly __id: string;\n readonly type: FileDiffType;\n protected fileContainer: HTMLElement | undefined;\n protected spriteSVG: SVGElement | undefined;\n protected pre: HTMLPreElement | undefined;\n protected codeUnified: HTMLElement | undefined;\n protected codeDeletions: HTMLElement | undefined;\n protected codeAdditions: HTMLElement | undefined;\n protected bufferBefore: HTMLElement | undefined;\n protected bufferAfter: HTMLElement | undefined;\n protected themeCSSStyle: HTMLStyleElement | undefined;\n protected appliedThemeCSS: AppliedThemeStyleCache | undefined;\n protected hasAdoptedThemeCSS: boolean;\n protected unsafeCSSStyle: HTMLStyleElement | undefined;\n protected appliedUnsafeCSS: string | undefined;\n protected gutterUtilityContent: HTMLElement | undefined;\n protected headerElement: HTMLElement | undefined;\n protected headerPrefix: HTMLElement | undefined;\n protected headerMetadata: HTMLElement | undefined;\n protected headerCustom: HTMLElement | undefined;\n protected separatorCache: Map<string, CustomHunkElementCache>;\n protected errorWrapper: HTMLElement | undefined;\n protected placeHolder: HTMLElement | undefined;\n protected hunksRenderer: DiffHunksRenderer<LAnnotation>;\n protected resizeManager: ResizeManager;\n protected scrollSyncManager: ScrollSyncManager;\n protected interactionManager: InteractionManager<'diff'>;\n protected annotationCache: Map<string, AnnotationElementCache<LAnnotation>>;\n protected lineAnnotations: DiffLineAnnotation<LAnnotation>[];\n protected managersDirty: boolean;\n protected deletionFile: FileContents | undefined;\n protected additionFile: FileContents | undefined;\n fileDiff: FileDiffMetadata | undefined;\n protected renderRange: RenderRange | undefined;\n protected appliedPreAttributes: PrePropertiesConfig | undefined;\n protected lastRenderedHeaderHTML: string | undefined;\n protected cachedHeaderHTML: string | undefined;\n protected lastRowCount: number | undefined;\n private mounted;\n protected enabled: boolean;\n protected editor: DiffsEditor<LAnnotation> | undefined;\n protected rerenderTimeout: ReturnType<typeof setTimeout> | undefined;\n constructor(options?: FileDiffOptions<LAnnotation>, workerManager?: WorkerPoolManager | undefined, isContainerManaged?: boolean);\n protected handleHighlightRender: () => void;\n protected getHunksRendererOptions(options: FileDiffOptions<LAnnotation>): DiffHunksRendererOptions;\n protected createHunksRenderer(options: FileDiffOptions<LAnnotation>): DiffHunksRenderer<LAnnotation>;\n getLineIndex: GetLineIndexUtility;\n setOptions(options: FileDiffOptions<LAnnotation> | undefined): void;\n protected syncInteractionOptions(): void;\n private mergeOptions;\n setThemeType(themeType: ThemeTypes): void;\n private applyCachedThemeState;\n private hasThemeChanged;\n getHoveredLine: () => {\n lineNumber: number;\n side: import(\"..\").AnnotationSide;\n } | undefined;\n setLineAnnotations(lineAnnotations: DiffLineAnnotation<LAnnotation>[]): void;\n private canPartiallyRender;\n setSelectedLines(range: SelectedLineRange | null, options?: SelectionWriteOptions): void;\n flushManagers(): void;\n cleanUp(recycle?: boolean): void;\n virtualizedSetup(): void;\n hydrate(props: FileDiffHydrationProps<LAnnotation>): void;\n protected hydrateElements(fileContainer: HTMLElement, prerenderedHTML: string | undefined): void;\n protected hydrationSetup({ fileDiff, oldFile, newFile, lineAnnotations }: HydrationSetup<LAnnotation>): void;\n rerender(): void;\n onThemeChange(): void;\n handleExpandHunk: (hunkIndex: number, direction: ExpansionDirections, expansionLineCountOverride?: number | undefined) => void;\n expandHunk: (hunkIndex: number, direction: ExpansionDirections, expansionLineCountOverride?: number | undefined) => void;\n render({ oldFile, newFile, fileDiff, deferManagers, forceRender, preventEmit, lineAnnotations, fileContainer, containerWrapper, renderRange }: FileDiffRenderProps<LAnnotation>): boolean;\n protected emitPostRender(unmount?: boolean): void;\n applyLayoutChange(textDocument: DiffsTextDocument, newLineAnnotations?: DiffLineAnnotation<LAnnotation>[]): void;\n attachEditor(editor: DiffsEditor<LAnnotation>): () => void;\n private getDeletionFile;\n private getAdditionFile;\n private removeRenderedCode;\n private clearAuxiliaryNodes;\n renderPlaceholder(height: number): boolean;\n primeHighlightCache(): void;\n private cleanChildNodes;\n private renderSeparators;\n protected renderAnnotations(): void;\n protected renderGutterUtility(): void;\n protected getOrCreateFileContainer(fileContainer?: HTMLElement, parentNode?: HTMLElement): HTMLElement;\n private adoptReusableShellElements;\n private ensureSpriteSVG;\n private getOrCreatePreNode;\n protected syncCodeNodesFromPre(pre: HTMLPreElement): void;\n private applyHeaderToDOM;\n private clearHeaderSlots;\n private upsertHeaderSlotElement;\n private replaceHeaderSlotContent;\n private createHeaderSlotElement;\n protected injectUnsafeCSS(): void;\n private applyThemeState;\n private hydrateMeasuredScrollbar;\n private applyHunksToDOM;\n private applyPartialRender;\n private insertPartialHTML;\n private renderPartialColumn;\n private mergeBuffersIfNecessary;\n private applyRowSpan;\n private trimColumnRows;\n private trimColumns;\n private getBufferSize;\n private updateBufferSize;\n private getCodeColumns;\n private applyBuffers;\n protected shouldDisableVirtualizationBuffers(): boolean;\n protected applyPreNodeAttributes(pre: HTMLPreElement, { additionsContentAST, deletionsContentAST, totalLines }: HunksRenderResult, customProperties?: CustomPreProperties): void;\n private applyErrorToDOM;\n private cleanupErrorWrapper;\n}\nexport {};\n//# sourceMappingURL=FileDiff.d.ts.map"],"mappings":"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"}
1
+ {"version":3,"file":"FileDiff.d.ts","names":["GetHoveredLineResult","GetLineIndexUtility","InteractionManager","InteractionManagerBaseOptions","SelectionWriteOptions","ResizeManager","ScrollSyncManager","DiffHunksRenderer","DiffHunksRendererOptions","HunksRenderResult","AppliedThemeStyleCache","BaseDiffOptions","CustomPreProperties","DiffLineAnnotation","DiffsEditableComponent","DiffsEditor","DiffsTextDocument","ExpansionDirections","FileContents","FileDiffMetadata","HighlightedToken","HunkData","HunkSeparators","PostRenderPhase","PrePropertiesConfig","RenderHeaderMetadataCallback","RenderHeaderPrefixCallback","RenderRange","SelectedLineRange","ThemeTypes","WorkerPoolManager","FileDiffRenderProps","LAnnotation","HTMLElement","FileDiffHydrationProps","Omit","FileDiffType","FileDiffOptions","Exclude","FileDiff","DocumentFragment","AnnotationElementCache","CustomHunkElementCache","HydrationSetup","SVGElement","HTMLPreElement","HTMLStyleElement","Map","__0","AnnotationSide","fileDiff","oldFile","newFile","lineAnnotations","deferManagers","didEdit","forceRender","preventEmit","fileContainer","containerWrapper","renderRange","Array","additionsContentAST","deletionsContentAST","totalLines"],"sources":["../../src/components/FileDiff.d.ts"],"sourcesContent":["import { type GetHoveredLineResult, type GetLineIndexUtility, InteractionManager, type InteractionManagerBaseOptions, type SelectionWriteOptions } from '../managers/InteractionManager';\nimport { ResizeManager } from '../managers/ResizeManager';\nimport { ScrollSyncManager } from '../managers/ScrollSyncManager';\nimport { DiffHunksRenderer, type DiffHunksRendererOptions, type HunksRenderResult } from '../renderers/DiffHunksRenderer';\nimport type { AppliedThemeStyleCache, BaseDiffOptions, CustomPreProperties, DiffLineAnnotation, DiffsEditableComponent, DiffsEditor, DiffsTextDocument, ExpansionDirections, FileContents, FileDiffMetadata, HighlightedToken, HunkData, HunkSeparators, PostRenderPhase, PrePropertiesConfig, RenderHeaderMetadataCallback, RenderHeaderPrefixCallback, RenderRange, SelectedLineRange, ThemeTypes } from '../types';\nimport type { WorkerPoolManager } from '../worker';\nexport interface FileDiffRenderProps<LAnnotation> {\n fileDiff?: FileDiffMetadata;\n oldFile?: FileContents;\n newFile?: FileContents;\n deferManagers?: boolean;\n didEdit?: boolean;\n forceRender?: boolean;\n preventEmit?: boolean;\n fileContainer?: HTMLElement;\n containerWrapper?: HTMLElement;\n lineAnnotations?: DiffLineAnnotation<LAnnotation>[];\n renderRange?: RenderRange;\n}\nexport interface FileDiffHydrationProps<LAnnotation> extends Omit<FileDiffRenderProps<LAnnotation>, 'fileContainer'> {\n fileContainer: HTMLElement;\n prerenderedHTML?: string;\n}\nexport type FileDiffType = 'file-diff' | 'unresolved-file';\nexport interface FileDiffOptions<LAnnotation> extends Omit<BaseDiffOptions, 'hunkSeparators'>, InteractionManagerBaseOptions<'diff'> {\n hunkSeparators?: Exclude<HunkSeparators, 'custom'> /**\n * @deprecated Custom hunk separator functions are deprecated and will be\n * removed in a future version.\n */ | ((hunk: HunkData, instance: FileDiff<LAnnotation>) => HTMLElement | DocumentFragment | null | undefined);\n disableFileHeader?: boolean;\n renderHeaderPrefix?: RenderHeaderPrefixCallback;\n renderHeaderMetadata?: RenderHeaderMetadataCallback;\n renderCustomHeader?: RenderHeaderMetadataCallback;\n /**\n * When true, errors during rendering are rethrown instead of being caught\n * and displayed in the DOM. Useful for testing or when you want to handle\n * errors yourself.\n */\n disableErrorHandling?: boolean;\n renderAnnotation?(annotation: DiffLineAnnotation<LAnnotation>): HTMLElement | undefined;\n renderGutterUtility?(getHoveredRow: () => GetHoveredLineResult<'diff'> | undefined): HTMLElement | null | undefined;\n onPostRender?(node: HTMLElement, instance: FileDiff<LAnnotation>, phase: PostRenderPhase): unknown;\n}\ninterface AnnotationElementCache<LAnnotation> {\n element: HTMLElement;\n annotation: DiffLineAnnotation<LAnnotation>;\n}\ninterface CustomHunkElementCache {\n element: HTMLElement;\n hunkData: HunkData;\n}\ninterface HydrationSetup<LAnnotation> {\n fileDiff: FileDiffMetadata | undefined;\n lineAnnotations: DiffLineAnnotation<LAnnotation>[] | undefined;\n oldFile?: FileContents;\n newFile?: FileContents;\n}\nexport declare class FileDiff<LAnnotation = undefined> implements DiffsEditableComponent<LAnnotation> {\n options: FileDiffOptions<LAnnotation>;\n protected workerManager?: WorkerPoolManager | undefined;\n protected isContainerManaged: boolean;\n static LoadedCustomComponent: boolean;\n readonly __id: string;\n readonly type: FileDiffType;\n protected fileContainer: HTMLElement | undefined;\n protected spriteSVG: SVGElement | undefined;\n protected pre: HTMLPreElement | undefined;\n protected codeUnified: HTMLElement | undefined;\n protected codeDeletions: HTMLElement | undefined;\n protected codeAdditions: HTMLElement | undefined;\n protected bufferBefore: HTMLElement | undefined;\n protected bufferAfter: HTMLElement | undefined;\n protected themeCSSStyle: HTMLStyleElement | undefined;\n protected appliedThemeCSS: AppliedThemeStyleCache | undefined;\n protected hasAdoptedThemeCSS: boolean;\n protected unsafeCSSStyle: HTMLStyleElement | undefined;\n protected appliedUnsafeCSS: string | undefined;\n protected gutterUtilityContent: HTMLElement | undefined;\n protected headerElement: HTMLElement | undefined;\n protected headerPrefix: HTMLElement | undefined;\n protected headerMetadata: HTMLElement | undefined;\n protected headerCustom: HTMLElement | undefined;\n protected separatorCache: Map<string, CustomHunkElementCache>;\n protected errorWrapper: HTMLElement | undefined;\n protected placeHolder: HTMLElement | undefined;\n protected hunksRenderer: DiffHunksRenderer<LAnnotation>;\n protected resizeManager: ResizeManager;\n protected scrollSyncManager: ScrollSyncManager;\n protected interactionManager: InteractionManager<'diff'>;\n protected annotationCache: Map<string, AnnotationElementCache<LAnnotation>>;\n protected lineAnnotations: DiffLineAnnotation<LAnnotation>[];\n protected managersDirty: boolean;\n protected deletionFile: FileContents | undefined;\n protected additionFile: FileContents | undefined;\n fileDiff: FileDiffMetadata | undefined;\n protected renderRange: RenderRange | undefined;\n protected appliedPreAttributes: PrePropertiesConfig | undefined;\n protected lastRenderedHeaderHTML: string | undefined;\n protected cachedHeaderHTML: string | undefined;\n protected lastRowCount: number | undefined;\n private mounted;\n protected enabled: boolean;\n protected editor: DiffsEditor<LAnnotation> | undefined;\n constructor(options?: FileDiffOptions<LAnnotation>, workerManager?: WorkerPoolManager | undefined, isContainerManaged?: boolean);\n protected handleHighlightRender: () => void;\n protected getHunksRendererOptions(options: FileDiffOptions<LAnnotation>): DiffHunksRendererOptions;\n protected createHunksRenderer(options: FileDiffOptions<LAnnotation>): DiffHunksRenderer<LAnnotation>;\n getLineIndex: GetLineIndexUtility;\n setOptions(options: FileDiffOptions<LAnnotation> | undefined): void;\n protected syncInteractionOptions(): void;\n private mergeOptions;\n setThemeType(themeType: ThemeTypes): void;\n private applyCachedThemeState;\n private hasThemeChanged;\n getHoveredLine: () => {\n lineNumber: number;\n side: import(\"..\").AnnotationSide;\n } | undefined;\n setLineAnnotations(lineAnnotations: DiffLineAnnotation<LAnnotation>[]): void;\n private canPartiallyRender;\n setSelectedLines(range: SelectedLineRange | null, options?: SelectionWriteOptions): void;\n flushManagers(): void;\n cleanUp(recycle?: boolean): void;\n virtualizedSetup(): void;\n hydrate(props: FileDiffHydrationProps<LAnnotation>): void;\n protected hydrateElements(fileContainer: HTMLElement, prerenderedHTML: string | undefined): void;\n protected hydrationSetup({ fileDiff, oldFile, newFile, lineAnnotations }: HydrationSetup<LAnnotation>): void;\n rerender(): void;\n onThemeChange(): void;\n handleExpandHunk: (hunkIndex: number, direction: ExpansionDirections, expansionLineCountOverride?: number | undefined) => void;\n expandHunk: (hunkIndex: number, direction: ExpansionDirections, expansionLineCountOverride?: number | undefined) => void;\n render({ oldFile, newFile, fileDiff, deferManagers, didEdit, forceRender, preventEmit, lineAnnotations, fileContainer, containerWrapper, renderRange }: FileDiffRenderProps<LAnnotation>): boolean;\n protected emitPostRender(unmount?: boolean): void;\n private syncRenderView;\n attachEditor(editor: DiffsEditor<LAnnotation>): () => void;\n applyDocumentChange(textDocument: DiffsTextDocument, newLineAnnotations?: DiffLineAnnotation<LAnnotation>[]): void;\n updateRenderCache(dirtyLines: Map<number, Array<HighlightedToken>>, themeType: 'dark' | 'light', shouldRerender?: boolean): void;\n private getAdditionFile;\n private removeRenderedCode;\n private clearAuxiliaryNodes;\n renderPlaceholder(height: number): boolean;\n primeHighlightCache(): void;\n private cleanChildNodes;\n private renderSeparators;\n protected renderAnnotations(): void;\n protected renderGutterUtility(): void;\n protected getOrCreateFileContainer(fileContainer?: HTMLElement, parentNode?: HTMLElement): HTMLElement;\n private adoptReusableShellElements;\n private ensureSpriteSVG;\n private getOrCreatePreNode;\n protected syncCodeNodesFromPre(pre: HTMLPreElement): void;\n private applyHeaderToDOM;\n private clearHeaderSlots;\n private upsertHeaderSlotElement;\n private replaceHeaderSlotContent;\n private createHeaderSlotElement;\n protected injectUnsafeCSS(): void;\n private applyThemeState;\n private hydrateMeasuredScrollbar;\n private applyHunksToDOM;\n private applyPartialRender;\n private insertPartialHTML;\n private updateLineType;\n private renderPartialColumn;\n private mergeBuffersIfNecessary;\n private applyRowSpan;\n private trimColumnRows;\n private trimColumns;\n private getBufferSize;\n private updateBufferSize;\n private getCodeColumns;\n protected updateBuffers(renderRange: RenderRange): void;\n private applyBuffers;\n protected shouldDisableVirtualizationBuffers(): boolean;\n protected applyPreNodeAttributes(pre: HTMLPreElement, { additionsContentAST, deletionsContentAST, totalLines }: HunksRenderResult, customProperties?: CustomPreProperties): void;\n private applyErrorToDOM;\n private cleanupErrorWrapper;\n}\nexport {};\n//# sourceMappingURL=FileDiff.d.ts.map"],"mappings":"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"}
@@ -1,4 +1,5 @@
1
1
  import { CUSTOM_HEADER_SLOT_ID, DEFAULT_THEMES, DEFAULT_TOKENIZE_MAX_LENGTH, DIFFS_TAG_NAME, EMPTY_RENDER_RANGE, HEADER_METADATA_SLOT_ID, HEADER_PREFIX_SLOT_ID, THEME_CSS_ATTRIBUTE, UNSAFE_CSS_ATTRIBUTE } from "../constants.js";
2
+ import { queueRender } from "../managers/UniversalRenderingManager.js";
2
3
  import { areThemesEqual } from "../utils/areThemesEqual.js";
3
4
  import { isStyleNode } from "../utils/isStyleNode.js";
4
5
  import { areFilesEqual } from "../utils/areFilesEqual.js";
@@ -72,7 +73,6 @@ var FileDiff = class {
72
73
  mounted = false;
73
74
  enabled = true;
74
75
  editor;
75
- rerenderTimeout;
76
76
  constructor(options = { theme: DEFAULT_THEMES }, workerManager, isContainerManaged = false) {
77
77
  this.options = options;
78
78
  this.workerManager = workerManager;
@@ -94,11 +94,12 @@ var FileDiff = class {
94
94
  return new DiffHunksRenderer(this.getHunksRendererOptions(options), this.handleHighlightRender, this.workerManager);
95
95
  }
96
96
  getLineIndex = (lineNumber, side = "additions") => {
97
- if (this.fileDiff == null) return;
98
- const lastHunk = this.fileDiff.hunks.at(-1);
97
+ const fileDiff = this.hunksRenderer.getRenderDiff() ?? this.fileDiff;
98
+ if (fileDiff == null) return;
99
+ const lastHunk = fileDiff.hunks.at(-1);
99
100
  let targetUnifiedIndex;
100
101
  let targetSplitIndex;
101
- hunkIterator: for (const hunk of this.fileDiff.hunks) {
102
+ hunkIterator: for (const hunk of fileDiff.hunks) {
102
103
  let currentLineNumber = side === "deletions" ? hunk.deletionStart : hunk.additionStart;
103
104
  const hunkCount = side === "deletions" ? hunk.deletionCount : hunk.additionCount;
104
105
  let splitIndex = hunk.splitLineStart;
@@ -183,7 +184,8 @@ var FileDiff = class {
183
184
  setLineAnnotations(lineAnnotations) {
184
185
  this.lineAnnotations = lineAnnotations;
185
186
  }
186
- canPartiallyRender(forceRender, annotationsChanged, didContentChange) {
187
+ canPartiallyRender(forceRender, annotationsChanged, didContentChange, didEdit) {
188
+ if (didEdit) return true;
187
189
  if (forceRender || annotationsChanged || didContentChange || typeof this.options.hunkSeparators === "function") return false;
188
190
  return true;
189
191
  }
@@ -213,7 +215,7 @@ var FileDiff = class {
213
215
  if (!this.isContainerManaged) this.fileContainer?.remove();
214
216
  this.fileContainer = void 0;
215
217
  this.mounted = false;
216
- this.lineAnnotations = [];
218
+ if (!recycle) this.lineAnnotations = [];
217
219
  this.clearAuxiliaryNodes();
218
220
  this.annotationCache.clear();
219
221
  this.pre = void 0;
@@ -249,8 +251,6 @@ var FileDiff = class {
249
251
  this.enabled = false;
250
252
  this.editor?.cleanUp();
251
253
  this.editor = void 0;
252
- if (this.rerenderTimeout !== void 0) clearTimeout(this.rerenderTimeout);
253
- this.rerenderTimeout = void 0;
254
254
  }
255
255
  virtualizedSetup() {
256
256
  this.enabled = true;
@@ -351,16 +351,16 @@ var FileDiff = class {
351
351
  this.hunksRenderer.expandHunk(hunkIndex, direction, expansionLineCountOverride);
352
352
  this.rerender();
353
353
  };
354
- render({ oldFile, newFile, fileDiff, deferManagers = false, forceRender = false, preventEmit = false, lineAnnotations, fileContainer, containerWrapper, renderRange }) {
354
+ render({ oldFile, newFile, fileDiff, deferManagers = false, didEdit = false, forceRender = false, preventEmit = false, lineAnnotations, fileContainer, containerWrapper, renderRange }) {
355
355
  if (!this.enabled) throw new Error("FileDiff.render: attempting to call render after cleaned up");
356
- this.editor?.postponeBackgroundTokenizeToNextFrame();
356
+ this.editor?.__postponeBackgroundTokenizeToNextFrame();
357
357
  const { collapsed = false, themeType = "system" } = this.options;
358
358
  const nextRenderRange = collapsed ? void 0 : renderRange;
359
359
  const themeChanged = this.hasThemeChanged();
360
360
  const filesDidChange = oldFile != null && newFile != null && (!areFilesEqual(oldFile, this.deletionFile) || !areFilesEqual(newFile, this.additionFile));
361
361
  let diffDidChange = fileDiff != null && fileDiff !== this.fileDiff;
362
362
  const annotationsChanged = lineAnnotations != null && (lineAnnotations.length > 0 || this.lineAnnotations.length > 0) ? lineAnnotations !== this.lineAnnotations : false;
363
- if (!collapsed && areRenderRangesEqual(nextRenderRange, this.renderRange) && !forceRender && !annotationsChanged && !themeChanged && (fileDiff != null && fileDiff === this.fileDiff || fileDiff == null && !filesDidChange)) return this.applyCachedThemeState(themeType);
363
+ if (!collapsed && areRenderRangesEqual(nextRenderRange, this.renderRange) && !didEdit && !forceRender && !annotationsChanged && !themeChanged && (fileDiff != null && fileDiff === this.fileDiff || fileDiff == null && !filesDidChange)) return this.applyCachedThemeState(themeType);
364
364
  const { renderRange: previousRenderRange } = this;
365
365
  this.renderRange = nextRenderRange;
366
366
  this.deletionFile = oldFile;
@@ -406,7 +406,7 @@ var FileDiff = class {
406
406
  }
407
407
  try {
408
408
  const pre = this.getOrCreatePreNode(fileContainer);
409
- if (!(this.canPartiallyRender(forceRender, annotationsChanged, filesDidChange || diffDidChange || themeChanged) && this.applyPartialRender({
409
+ if (!(this.canPartiallyRender(forceRender, annotationsChanged, filesDidChange || diffDidChange || themeChanged, didEdit) && this.applyPartialRender({
410
410
  previousRenderRange,
411
411
  renderRange: nextRenderRange
412
412
  }))) {
@@ -423,18 +423,14 @@ var FileDiff = class {
423
423
  this.pre = void 0;
424
424
  }
425
425
  this.renderSeparators(hunksResult.hunkData);
426
- }
426
+ } else if (didEdit && nextRenderRange != null) this.updateLineType(nextRenderRange);
427
427
  this.applyBuffers(pre, nextRenderRange);
428
428
  this.injectUnsafeCSS();
429
429
  this.renderAnnotations();
430
430
  this.renderGutterUtility();
431
431
  this.managersDirty = true;
432
432
  if (!deferManagers) this.flushManagers();
433
- const editor = this.editor;
434
- const file = this.getAdditionFile();
435
- if (editor != null && file != null) this.hunksRenderer.initializeHighlighter().then((highlighter) => {
436
- editor.syncToRenderedView(highlighter, "diff", fileContainer, file, this.lineAnnotations, this.renderRange);
437
- });
433
+ if (this.editor != null) queueRender(this.syncRenderView);
438
434
  } catch (error) {
439
435
  if (disableErrorHandling) throw error;
440
436
  console.error(error);
@@ -457,53 +453,41 @@ var FileDiff = class {
457
453
  this.mounted = true;
458
454
  onPostRender?.(fileContainer, this, phase);
459
455
  }
460
- applyLayoutChange(textDocument, newLineAnnotations) {
461
- if (newLineAnnotations !== void 0 && newLineAnnotations !== this.lineAnnotations) {
462
- this.setLineAnnotations(newLineAnnotations);
463
- this.hunksRenderer.setLineAnnotations(this.lineAnnotations);
464
- }
465
- const deletionFile = this.getDeletionFile();
466
- if (deletionFile != null) {
467
- const { name, lang } = deletionFile;
468
- const newFile = {
469
- name,
470
- lang,
471
- cacheKey: name + "-" + Date.now()
472
- };
473
- Object.defineProperty(newFile, "contents", { get: () => textDocument.getText() });
474
- if (this.rerenderTimeout !== void 0) clearTimeout(this.rerenderTimeout);
475
- this.rerenderTimeout = setTimeout(() => {
476
- this.fileDiff = parseDiffFromFile(deletionFile, newFile, this.options.parseDiffOptions);
477
- this.hunksRenderer.renderDiff(this.fileDiff, this.renderRange);
478
- }, 500);
479
- }
480
- }
481
- attachEditor(editor) {
482
- this.editor?.cleanUp();
456
+ syncRenderView = () => {
457
+ const editor = this.editor;
483
458
  const fileContainer = this.fileContainer;
484
459
  const file = this.getAdditionFile();
485
- if (fileContainer != null && file != null) this.hunksRenderer.initializeHighlighter().then((highlighter) => {
486
- editor.syncToRenderedView(highlighter, "diff", fileContainer, file, this.lineAnnotations, this.renderRange);
460
+ if (editor != null && fileContainer != null && file != null) this.hunksRenderer.initializeHighlighter().then((highlighter) => {
461
+ editor.__syncRenderView(highlighter, fileContainer, file, this.lineAnnotations, this.renderRange);
487
462
  });
463
+ };
464
+ attachEditor(editor) {
465
+ this.editor?.cleanUp();
488
466
  this.editor = editor;
467
+ queueRender(this.syncRenderView);
489
468
  return () => {
490
469
  this.editor = void 0;
491
470
  };
492
471
  }
493
- getDeletionFile() {
494
- if (this.deletionFile != null) return this.deletionFile;
495
- const fileDiff = this.fileDiff;
496
- if (fileDiff != null && !fileDiff.isPartial) {
497
- const { name, lang, cacheKey } = fileDiff;
498
- const file = {
499
- name,
500
- lang,
501
- cacheKey
502
- };
503
- Object.defineProperty(file, "contents", { get: () => fileDiff.deletionLines.join("") });
504
- return file;
472
+ applyDocumentChange(textDocument, newLineAnnotations) {
473
+ this.hunksRenderer.applyDocumentChange(textDocument);
474
+ const renderDiff = this.hunksRenderer.getRenderDiff();
475
+ if (renderDiff != null) this.fileDiff = renderDiff;
476
+ this.rerender();
477
+ this.interactionManager.setSelectionDirty();
478
+ if (newLineAnnotations !== void 0 && newLineAnnotations !== this.lineAnnotations) {
479
+ this.setLineAnnotations(newLineAnnotations);
480
+ this.hunksRenderer.setLineAnnotations(this.lineAnnotations);
481
+ this.renderAnnotations();
505
482
  }
506
483
  }
484
+ updateRenderCache(dirtyLines, themeType, shouldRerender) {
485
+ this.hunksRenderer.updateRenderCache(dirtyLines, themeType);
486
+ if (shouldRerender === true) this.render({
487
+ didEdit: true,
488
+ renderRange: this.renderRange
489
+ });
490
+ }
507
491
  getAdditionFile() {
508
492
  if (this.additionFile != null) return this.additionFile;
509
493
  const fileDiff = this.fileDiff;
@@ -514,7 +498,10 @@ var FileDiff = class {
514
498
  lang,
515
499
  cacheKey
516
500
  };
517
- Object.defineProperty(file, "contents", { get: () => fileDiff.additionLines.join("") });
501
+ Object.defineProperty(file, "contents", {
502
+ enumerable: true,
503
+ get: () => fileDiff.additionLines.join("")
504
+ });
518
505
  return file;
519
506
  }
520
507
  }
@@ -1007,6 +994,26 @@ var FileDiff = class {
1007
994
  this.renderPartialColumn(columns[1], additionsAST, insertPosition);
1008
995
  } else throw new Error("FileDiff.insertPartialHTML: Invalid argument composition");
1009
996
  }
997
+ updateLineType(renderRange) {
998
+ if (this.options.diffStyle === "unified") return;
999
+ const hunksResult = this.hunksRenderer.renderDiff(this.fileDiff, renderRange);
1000
+ if (hunksResult == null) return;
1001
+ const columns = this.getCodeColumns("split", this.codeUnified, this.codeDeletions, this.codeAdditions);
1002
+ if (columns == null || !Array.isArray(columns)) return;
1003
+ const applyLineType = (type, column) => {
1004
+ if (column == null) return;
1005
+ const ast = this.hunksRenderer.renderCodeAST(type, hunksResult);
1006
+ const gutterChildren = getElementChildren(ast?.[0]);
1007
+ const contentChildren = getElementChildren(ast?.[1]);
1008
+ for (const [el, astChildren] of [[column.gutter, gutterChildren], [column.content, contentChildren]]) if (astChildren != null && el.childElementCount === astChildren.length) for (let i = 0; i < astChildren.length; i++) {
1009
+ const gutterElement = el.children[i];
1010
+ const lineType = astChildren[i].properties["data-line-type"];
1011
+ if (lineType != null && gutterElement.dataset.lineType !== lineType) gutterElement.dataset.lineType = lineType;
1012
+ }
1013
+ };
1014
+ applyLineType("deletions", columns[0]);
1015
+ applyLineType("additions", columns[1]);
1016
+ }
1010
1017
  renderPartialColumn(column, ast, insertPosition) {
1011
1018
  if (column == null || ast == null) return;
1012
1019
  const gutterChildren = getElementChildren(ast[0]);
@@ -1206,6 +1213,9 @@ var FileDiff = class {
1206
1213
  return deletions != null || additions != null ? [deletions, additions] : void 0;
1207
1214
  }
1208
1215
  }
1216
+ updateBuffers(renderRange) {
1217
+ if (this.pre != null) this.applyBuffers(this.pre, renderRange);
1218
+ }
1209
1219
  applyBuffers(pre, renderRange) {
1210
1220
  if (renderRange == null || this.shouldDisableVirtualizationBuffers()) {
1211
1221
  if (this.bufferBefore != null) {