@pierre/diffs 1.2.2 → 1.2.4
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.
- package/dist/components/CodeView.d.ts +22 -7
- package/dist/components/CodeView.d.ts.map +1 -1
- package/dist/components/CodeView.js +202 -105
- package/dist/components/CodeView.js.map +1 -1
- package/dist/components/File.d.ts +7 -3
- package/dist/components/File.d.ts.map +1 -1
- package/dist/components/File.js +38 -14
- package/dist/components/File.js.map +1 -1
- package/dist/components/FileDiff.d.ts +10 -5
- package/dist/components/FileDiff.d.ts.map +1 -1
- package/dist/components/FileDiff.js +37 -11
- package/dist/components/FileDiff.js.map +1 -1
- package/dist/components/UnresolvedFile.d.ts +4 -3
- package/dist/components/UnresolvedFile.d.ts.map +1 -1
- package/dist/components/UnresolvedFile.js +2 -0
- package/dist/components/UnresolvedFile.js.map +1 -1
- package/dist/components/VirtualizedFile.d.ts +4 -2
- package/dist/components/VirtualizedFile.d.ts.map +1 -1
- package/dist/components/VirtualizedFile.js +23 -6
- package/dist/components/VirtualizedFile.js.map +1 -1
- package/dist/components/VirtualizedFileDiff.d.ts +9 -8
- package/dist/components/VirtualizedFileDiff.d.ts.map +1 -1
- package/dist/components/VirtualizedFileDiff.js +329 -142
- package/dist/components/VirtualizedFileDiff.js.map +1 -1
- package/dist/index.d.ts +3 -3
- package/dist/index.js +3 -3
- package/dist/react/UnresolvedFile.d.ts +2 -2
- package/dist/react/UnresolvedFile.d.ts.map +1 -1
- package/dist/react/UnresolvedFile.js.map +1 -1
- package/dist/react/index.d.ts +2 -2
- package/dist/react/jsx.d.ts.map +1 -1
- package/dist/renderers/DiffHunksRenderer.d.ts +1 -0
- package/dist/renderers/DiffHunksRenderer.d.ts.map +1 -1
- package/dist/renderers/DiffHunksRenderer.js +12 -5
- package/dist/renderers/DiffHunksRenderer.js.map +1 -1
- package/dist/renderers/FileRenderer.d.ts +1 -0
- package/dist/renderers/FileRenderer.d.ts.map +1 -1
- package/dist/renderers/FileRenderer.js +4 -1
- package/dist/renderers/FileRenderer.js.map +1 -1
- package/dist/ssr/index.d.ts +2 -2
- package/dist/types.d.ts +8 -1
- package/dist/types.d.ts.map +1 -1
- package/dist/utils/computeEstimatedDiffHeights.d.ts +28 -0
- package/dist/utils/computeEstimatedDiffHeights.d.ts.map +1 -0
- package/dist/utils/computeEstimatedDiffHeights.js +111 -0
- package/dist/utils/computeEstimatedDiffHeights.js.map +1 -0
- package/dist/utils/getDiffHunksRendererOptions.d.ts +8 -0
- package/dist/utils/getDiffHunksRendererOptions.d.ts.map +1 -0
- package/dist/utils/getDiffHunksRendererOptions.js +31 -0
- package/dist/utils/getDiffHunksRendererOptions.js.map +1 -0
- package/dist/utils/getFileRendererOptions.d.ts +8 -0
- package/dist/utils/getFileRendererOptions.d.ts.map +1 -0
- package/dist/utils/getFileRendererOptions.js +24 -0
- package/dist/utils/getFileRendererOptions.js.map +1 -0
- package/dist/utils/iterateOverDiff.js +29 -30
- package/dist/utils/iterateOverDiff.js.map +1 -1
- package/dist/utils/parsePatchFiles.js +8 -1
- package/dist/utils/parsePatchFiles.js.map +1 -1
- package/dist/utils/virtualDiffLayout.d.ts +65 -0
- package/dist/utils/virtualDiffLayout.d.ts.map +1 -0
- package/dist/utils/virtualDiffLayout.js +94 -0
- package/dist/utils/virtualDiffLayout.js.map +1 -0
- package/dist/worker/WorkerPoolManager.d.ts +4 -1
- package/dist/worker/WorkerPoolManager.d.ts.map +1 -1
- package/dist/worker/WorkerPoolManager.js +49 -24
- package/dist/worker/WorkerPoolManager.js.map +1 -1
- package/dist/worker/types.d.ts +2 -0
- package/dist/worker/types.d.ts.map +1 -1
- package/dist/worker/worker-portable.js +154 -34
- package/dist/worker/worker-portable.js.map +1 -1
- package/dist/worker/worker.js +60 -30
- package/dist/worker/worker.js.map +1 -1
- package/package.json +1 -1
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { AnnotationSide, AppliedThemeStyleCache, BaseDiffOptions, CustomPreProperties, DiffLineAnnotation, ExpansionDirections, FileContents, FileDiffMetadata, HunkData, HunkSeparators, PrePropertiesConfig, RenderHeaderMetadataCallback, RenderHeaderPrefixCallback, RenderRange, SelectedLineRange, ThemeTypes } from "../types.js";
|
|
1
|
+
import { AnnotationSide, AppliedThemeStyleCache, BaseDiffOptions, CustomPreProperties, DiffLineAnnotation, ExpansionDirections, FileContents, FileDiffMetadata, HunkData, HunkSeparators, PostRenderPhase, PrePropertiesConfig, RenderHeaderMetadataCallback, RenderHeaderPrefixCallback, RenderRange, SelectedLineRange, ThemeTypes } from "../types.js";
|
|
2
2
|
import { GetHoveredLineResult, GetLineIndexUtility, InteractionManager, InteractionManagerBaseOptions, SelectionWriteOptions } from "../managers/InteractionManager.js";
|
|
3
3
|
import { WorkerPoolManager } from "../worker/WorkerPoolManager.js";
|
|
4
4
|
import "../worker/index.js";
|
|
@@ -24,6 +24,7 @@ interface FileDiffHydrationProps<LAnnotation> extends Omit<FileDiffRenderProps<L
|
|
|
24
24
|
fileContainer: HTMLElement;
|
|
25
25
|
prerenderedHTML?: string;
|
|
26
26
|
}
|
|
27
|
+
type FileDiffType = 'file-diff' | 'unresolved-file';
|
|
27
28
|
interface FileDiffOptions<LAnnotation> extends Omit<BaseDiffOptions, 'hunkSeparators'>, InteractionManagerBaseOptions<'diff'> {
|
|
28
29
|
hunkSeparators?: Exclude<HunkSeparators, 'custom'> /**
|
|
29
30
|
* @deprecated Custom hunk separator functions are deprecated and will be
|
|
@@ -41,7 +42,7 @@ interface FileDiffOptions<LAnnotation> extends Omit<BaseDiffOptions, 'hunkSepara
|
|
|
41
42
|
disableErrorHandling?: boolean;
|
|
42
43
|
renderAnnotation?(annotation: DiffLineAnnotation<LAnnotation>): HTMLElement | undefined;
|
|
43
44
|
renderGutterUtility?(getHoveredRow: () => GetHoveredLineResult<'diff'> | undefined): HTMLElement | null | undefined;
|
|
44
|
-
onPostRender?(node: HTMLElement, instance: FileDiff<LAnnotation
|
|
45
|
+
onPostRender?(node: HTMLElement, instance: FileDiff<LAnnotation>, phase: PostRenderPhase): unknown;
|
|
45
46
|
}
|
|
46
47
|
interface AnnotationElementCache<LAnnotation> {
|
|
47
48
|
element: HTMLElement;
|
|
@@ -63,6 +64,7 @@ declare class FileDiff<LAnnotation = undefined> {
|
|
|
63
64
|
protected isContainerManaged: boolean;
|
|
64
65
|
static LoadedCustomComponent: boolean;
|
|
65
66
|
readonly __id: string;
|
|
67
|
+
readonly type: FileDiffType;
|
|
66
68
|
protected fileContainer: HTMLElement | undefined;
|
|
67
69
|
protected spriteSVG: SVGElement | undefined;
|
|
68
70
|
protected pre: HTMLPreElement | undefined;
|
|
@@ -93,12 +95,13 @@ declare class FileDiff<LAnnotation = undefined> {
|
|
|
93
95
|
protected managersDirty: boolean;
|
|
94
96
|
protected deletionFile: FileContents | undefined;
|
|
95
97
|
protected additionFile: FileContents | undefined;
|
|
96
|
-
|
|
98
|
+
fileDiff: FileDiffMetadata | undefined;
|
|
97
99
|
protected renderRange: RenderRange | undefined;
|
|
98
100
|
protected appliedPreAttributes: PrePropertiesConfig | undefined;
|
|
99
101
|
protected lastRenderedHeaderHTML: string | undefined;
|
|
100
102
|
protected cachedHeaderHTML: string | undefined;
|
|
101
103
|
protected lastRowCount: number | undefined;
|
|
104
|
+
private mounted;
|
|
102
105
|
protected enabled: boolean;
|
|
103
106
|
constructor(options?: FileDiffOptions<LAnnotation>, workerManager?: WorkerPoolManager | undefined, isContainerManaged?: boolean);
|
|
104
107
|
protected handleHighlightRender: () => void;
|
|
@@ -106,6 +109,7 @@ declare class FileDiff<LAnnotation = undefined> {
|
|
|
106
109
|
protected createHunksRenderer(options: FileDiffOptions<LAnnotation>): DiffHunksRenderer<LAnnotation>;
|
|
107
110
|
getLineIndex: GetLineIndexUtility;
|
|
108
111
|
setOptions(options: FileDiffOptions<LAnnotation> | undefined): void;
|
|
112
|
+
protected syncInteractionOptions(): void;
|
|
109
113
|
private mergeOptions;
|
|
110
114
|
setThemeType(themeType: ThemeTypes): void;
|
|
111
115
|
private applyCachedThemeState;
|
|
@@ -129,6 +133,7 @@ declare class FileDiff<LAnnotation = undefined> {
|
|
|
129
133
|
lineAnnotations
|
|
130
134
|
}: HydrationSetup<LAnnotation>): void;
|
|
131
135
|
rerender(): void;
|
|
136
|
+
onThemeChange(): void;
|
|
132
137
|
handleExpandHunk: (hunkIndex: number, direction: ExpansionDirections, expansionLineCountOverride?: number | undefined) => void;
|
|
133
138
|
expandHunk: (hunkIndex: number, direction: ExpansionDirections, expansionLineCountOverride?: number | undefined) => void;
|
|
134
139
|
render({
|
|
@@ -143,7 +148,7 @@ declare class FileDiff<LAnnotation = undefined> {
|
|
|
143
148
|
containerWrapper,
|
|
144
149
|
renderRange
|
|
145
150
|
}: FileDiffRenderProps<LAnnotation>): boolean;
|
|
146
|
-
protected emitPostRender(): void;
|
|
151
|
+
protected emitPostRender(unmount?: boolean): void;
|
|
147
152
|
private removeRenderedCode;
|
|
148
153
|
private clearAuxiliaryNodes;
|
|
149
154
|
renderPlaceholder(height: number): boolean;
|
|
@@ -187,5 +192,5 @@ declare class FileDiff<LAnnotation = undefined> {
|
|
|
187
192
|
private cleanupErrorWrapper;
|
|
188
193
|
}
|
|
189
194
|
//#endregion
|
|
190
|
-
export { FileDiff, FileDiffHydrationProps, FileDiffOptions, FileDiffRenderProps };
|
|
195
|
+
export { FileDiff, FileDiffHydrationProps, FileDiffOptions, FileDiffRenderProps, FileDiffType };
|
|
191
196
|
//# sourceMappingURL=FileDiff.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"FileDiff.d.ts","names":["GetHoveredLineResult","GetLineIndexUtility","InteractionManager","InteractionManagerBaseOptions","SelectionWriteOptions","ResizeManager","ScrollSyncManager","DiffHunksRenderer","DiffHunksRendererOptions","HunksRenderResult","AppliedThemeStyleCache","BaseDiffOptions","CustomPreProperties","DiffLineAnnotation","ExpansionDirections","FileContents","FileDiffMetadata","HunkData","HunkSeparators","PrePropertiesConfig","RenderHeaderMetadataCallback","RenderHeaderPrefixCallback","RenderRange","SelectedLineRange","ThemeTypes","WorkerPoolManager","FileDiffRenderProps","LAnnotation","HTMLElement","FileDiffHydrationProps","Omit","FileDiffOptions","Exclude","FileDiff","DocumentFragment","AnnotationElementCache","CustomHunkElementCache","HydrationSetup","SVGElement","HTMLPreElement","HTMLStyleElement","Map","__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, ExpansionDirections, FileContents, FileDiffMetadata, HunkData, HunkSeparators, 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 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>): 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> {\n options: FileDiffOptions<LAnnotation>;\n protected workerManager?: WorkerPoolManager | undefined;\n protected isContainerManaged: boolean;\n static LoadedCustomComponent: boolean;\n readonly __id: string;\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 protected 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 protected enabled: boolean;\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 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 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(): void;\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":";;;;;;;;;;UAMiB0B;aACFV;YACDD;YACAA;EAHGW,aAAAA,CAAAA,EAAAA,OAAmB;EACrBV,WAAAA,CAAAA,EAAAA,OAAAA;EACDD,WAAAA,CAAAA,EAAAA,OAAAA;EACAA,aAAAA,CAAAA,EAIMa,WAJNb;EAIMa,gBAAAA,CAAAA,EACGA,WADHA;EACGA,eAAAA,CAAAA,EACDf,kBADCe,CACkBD,WADlBC,CAAAA,EAAAA;EACkBD,WAAAA,CAAAA,EACvBL,WADuBK;;AACvBL,UAEDO,sBAFCP,CAAAA,WAAAA,CAAAA,SAE2CQ,IAF3CR,CAEgDI,mBAFhDJ,CAEoEK,WAFpEL,CAAAA,EAAAA,eAAAA,CAAAA,CAAAA;EAAW,aAAA,EAGVM,WAHU;EAEZC,eAAAA,CAAAA,EAAAA,MAAAA;;AAAiDH,UAIjDK,eAJiDL,CAAAA,WAAAA,CAAAA,SAIZI,IAJYJ,CAIPf,eAJOe,EAAAA,gBAAAA,CAAAA,EAI6BvB,6BAJ7BuB,CAAAA,MAAAA,CAAAA,CAAAA;EAC/CE,cAAAA,CAAAA,EAIEI,OAJFJ,CAIUV,cAJVU,EAAAA,QAAAA,CAAAA,CAAAA;;;AAGnB,uDAHmBA,GAGFG,CAAAA,CAAAA,IAAAA,EAIGd,QAJY,EAAAU,QAAAA,EAIQM,QAJR,CAIiBN,WAJjB,CAAA,EAAA,GAIkCC,WAJlC,GAIgDM,gBAJhD,GAAA,IAAA,GAAA,SAAA,CAAA;EAA2BvB,iBAAAA,CAAAA,EAAAA,OAAAA;EAC9BO,kBAAAA,CAAAA,EAKJG,0BALIH;EAARc,oBAAAA,CAAAA,EAMMZ,4BANNY;EAGDf,kBAAAA,CAAAA,EAIKG,4BAJLH;EAA6BU;;;;;EAGtBP,oBAAAA,CAAAA,EAAAA,OAAAA;EACFA,gBAAAA,EAAAA,UAAAA,EAOSP,kBAPTO,CAO4BO,WAP5BP,CAAAA,CAAAA,EAO2CQ,WAP3CR,GAAAA,SAAAA;EAO4BO,mBAAAA,EAAAA,aAAAA,EAAAA,GAAAA,GACP3B,oBADO2B,CAAAA,MAAAA,CAAAA,GAAAA,SAAAA,CAAAA,EACoCC,WADpCD,GAAAA,IAAAA,GAAAA,SAAAA;EAAnBd,YAAAA,EAAAA,IAAAA,EAEVe,WAFUf,EAAAA,QAAAA,EAEaoB,QAFbpB,CAEsBc,WAFtBd,CAAAA,CAAAA,EAAAA,OAAAA;;UAIxBsB,sBAHoCnC,CAAAA,WAAAA,CAAAA,CAAAA;EAA2C4B,OAAAA,EAI5EA,WAJ4EA;EACjEA,UAAAA,EAIRf,kBAJQe,CAIWD,WAJXC,CAAAA;;UAMdQ,sBAAAA,CANqCH;EAjBOH,OAAAA,EAwBzCF,WAxByCE;EAAyC3B,QAAAA,EAyBjFc,QAzBiFd;;AAkB9F,UASSkC,cARAF,CAAAA,WAAsBR,CAAAA,CAAAA;EACnBC,QAAAA,EAQCZ,gBARDY,GAAAA,SAAAA;EACsBD,eAAAA,EAQdd,kBARcc,CAQKA,WARLA,CAAAA,EAAAA,GAAAA,SAAAA;EAAnBd,OAAAA,CAAAA,EASFE,YATEF;EAAkB,OAAA,CAAA,EAUpBE,YAVoB;AAAA;AAMxBsB,cAMWJ,QANGN,CAAAA,cAAA,SAAA,CAAA,CAAA;EACVX,OAAAA,EAMDe,eANCf,CAMeW,WANfX,CAAAA;EAC0BW,UAAAA,aAAAA,CAAAA,EAMVF,iBANUE,GAAAA,SAAAA;EAAnBd,UAAAA,kBAAAA,EAAAA,OAAAA;EACPE,OAAAA,qBAAAA,EAAAA,OAAAA;EACAA,SAAAA,IAAAA,EAAAA,MAAAA;EAAY,UAAA,aAAA,EAQGa,WARH,GAAA,SAAA;EAELK,UAAAA,SAAQN,EAOJW,UAPIX,GAAA,SAAA;EACAA,UAAAA,GAAAA,EAOVY,cAPUZ,GAAAA,SAAAA;EAAhBI,UAAAA,WAAAA,EAQcH,WARdG,GAAAA,SAAAA;EACiBN,UAAAA,aAAAA,EAQDG,WARCH,GAAAA,SAAAA;EAIDG,UAAAA,aAAAA,EAKAA,WALAA,GAAAA,SAAAA;EACJU,UAAAA,YAAAA,EAKGV,WALHU,GAAAA,SAAAA;EACNC,UAAAA,WAAAA,EAKQX,WALRW,GAAAA,SAAAA;EACQX,UAAAA,aAAAA,EAKEY,gBALFZ,GAAAA,SAAAA;EACEA,UAAAA,eAAAA,EAKElB,sBALFkB,GAAAA,SAAAA;EACAA,UAAAA,kBAAAA,EAAAA,OAAAA;EACDA,UAAAA,cAAAA,EAKEY,gBALFZ,GAAAA,SAAAA;EACDA,UAAAA,gBAAAA,EAAAA,MAAAA,GAAAA,SAAAA;EACEY,UAAAA,oBAAAA,EAKOZ,WALPY,GAAAA,SAAAA;EACE9B,UAAAA,aAAAA,EAKFkB,WALElB,GAAAA,SAAAA;EAED8B,UAAAA,YAAAA,EAIFZ,WAJEY,GAAAA,SAAAA;EAEMZ,UAAAA,cAAAA,EAGNA,WAHMA,GAAAA,SAAAA;EACPA,UAAAA,YAAAA,EAGDA,WAHCA,GAAAA,SAAAA;EACDA,UAAAA,cAAAA,EAGEa,GAHFb,CAAAA,MAAAA,EAGcQ,sBAHdR,CAAAA;EACEA,UAAAA,YAAAA,EAGFA,WAHEA,GAAAA,SAAAA;EACFA,UAAAA,WAAAA,EAGDA,WAHCA,GAAAA,SAAAA;EACcQ,UAAAA,aAAAA,EAGb7B,iBAHa6B,CAGKT,WAHLS,CAAAA;EAAZK,UAAAA,aAAAA,EAIDpC,aAJCoC;EACFb,UAAAA,iBAAAA,EAIKtB,iBAJLsB;EACDA,UAAAA,kBAAAA,EAIO1B,kBAJP0B,CAAAA,MAAAA,CAAAA;EACoBD,UAAAA,eAAAA,EAIhBc,GAJgBd,CAAAA,MAAAA,EAIJQ,sBAJIR,CAImBA,WAJnBA,CAAAA,CAAAA;EAAlBpB,UAAAA,eAAAA,EAKEM,kBALFN,CAKqBoB,WALrBpB,CAAAA,EAAAA;EACAF,UAAAA,aAAAA,EAAAA,OAAAA;EACIC,UAAAA,YAAAA,EAKLS,YALKT,GAAAA,SAAAA;EACCJ,UAAAA,YAAAA,EAKNa,YALMb,GAAAA,SAAAA;EACgCyB,UAAAA,QAAAA,EAK1CX,gBAL0CW,GAAAA,SAAAA;EAAvBQ,UAAAA,WAAAA,EAMhBb,WANgBa,GAAAA,SAAAA;EAAZM,UAAAA,oBAAAA,EAOKtB,mBAPLsB,GAAAA,SAAAA;EACmBd,UAAAA,sBAAAA,EAAAA,MAAAA,GAAAA,SAAAA;EAAnBd,UAAAA,gBAAAA,EAAAA,MAAAA,GAAAA,SAAAA;EAEHE,UAAAA,YAAAA,EAAAA,MAAAA,GAAAA,SAAAA;EACAA,UAAAA,OAAAA,EAAAA,OAAAA;EACJC,WAAAA,CAAAA,OAAAA,CAAAA,EAOEe,eAPFf,CAOkBW,WAPlBX,CAAAA,EAAAA,aAAAA,CAAAA,EAOgDS,iBAPhDT,GAAAA,SAAAA,EAAAA,kBAAAA,CAAAA,EAAAA,OAAAA;EACGM,UAAAA,qBAAAA,EAAAA,GAAAA,GAAAA,IAAAA;EACSH,UAAAA,uBAAAA,CAAAA,OAAAA,EAOWY,eAPXZ,CAO2BQ,WAP3BR,CAAAA,CAAAA,EAO0CX,wBAP1CW;EAKMQ,UAAAA,mBAAAA,CAAAA,OAAAA,EAGCI,eAHDJ,CAGiBA,WAHjBA,CAAAA,CAAAA,EAGgCpB,iBAHhCoB,CAGkDA,WAHlDA,CAAAA;EAAhBI,YAAAA,EAIR9B,mBAJQ8B;EAA8CN,UAAAA,CAAAA,OAAAA,EAKhDM,eALgDN,CAKhCE,WALgCF,CAAAA,GAAAA,SAAAA,CAAAA,EAAAA,IAAAA;EAETE,QAAAA,YAAAA;EAAhBI,YAAAA,CAAAA,SAAAA,EAKnBP,UALmBO,CAAAA,EAAAA,IAAAA;EAA+BvB,QAAAA,qBAAAA;EACnBmB,QAAAA,eAAAA;EAAhBI,cAAAA,EAAAA,GAAAA,GAAAA;IAAiDJ,UAAAA,EAAAA,MAAAA;IAAlBpB,IAAAA,EAIpCmC,cAJoCnC;EACxDN,CAAAA,GAAAA,SAAAA;EACsB0B,kBAAAA,CAAAA,eAAAA,EASAd,kBATAc,CASmBA,WATnBA,CAAAA,EAAAA,CAAAA,EAAAA,IAAAA;EAAhBI,QAAAA,kBAAAA;EAEIP,gBAAAA,CAAAA,KAAAA,EASAD,iBATAC,GAAAA,IAAAA,EAAAA,OAAAA,CAAAA,EASoCpB,qBATpCoB,CAAAA,EAAAA,IAAAA;EAAUkB,aAAAA,CAAAA,CAAAA,EAAAA,IAAAA;EAOqBf,OAAAA,CAAAA,OAAAA,CAAAA,EAAAA,OAAAA,CAAAA,EAAAA,IAAAA;EAAnBd,gBAAAA,CAAAA,CAAAA,EAAAA,IAAAA;EAEZU,OAAAA,CAAAA,KAAAA,EAITM,sBAJSN,CAIcI,WAJdJ,CAAAA,CAAAA,EAAAA,IAAAA;EAAoCnB,UAAAA,eAAAA,CAAAA,aAAAA,EAKnBwB,WALmBxB,EAAAA,eAAAA,EAAAA,MAAAA,GAAAA,SAAAA,CAAAA,EAAAA,IAAAA;EAItBuB,UAAAA,cAAAA,CAAAA;IAAAA,QAAAA;IAAAA,OAAAA;IAAAA,OAAAA;IAAAA;EAAAA,CAAAA,EAEoCU,cAFpCV,CAEmDA,WAFnDA,CAAAA,CAAAA,EAAAA,IAAAA;EAAvBE,QAAAA,CAAAA,CAAAA,EAAAA,IAAAA;EAC0BD,gBAAAA,EAAAA,CAAAA,SAAAA,EAAAA,MAAAA,EAAAA,SAAAA,EAGQd,mBAHRc,EAAAA,0BAAAA,CAAAA,EAAAA,MAAAA,GAAAA,SAAAA,EAAAA,GAAAA,IAAAA;EACdgB,UAAAA,EAAAA,CAAAA,SAAAA,EAAAA,MAAAA,EAAAA,SAAAA,EAGgB9B,mBAHhB8B,EAAAA,0BAAAA,CAAAA,EAAAA,MAAAA,GAAAA,SAAAA,EAAAA,GAAAA,IAAAA;EAAUC,MAAAA,CAAAA;IAAAA,OAAAA;IAAAA,OAAAA;IAAAA,QAAAA;IAAAA,aAAAA;IAAAA,WAAAA;IAAAA,WAAAA;IAAAA,eAAAA;IAAAA,aAAAA;IAAAA,gBAAAA;IAAAA;EAAAA,CAAAA,EAI0GnB,mBAJ1GmB,CAI8HlB,WAJ9HkB,CAAAA,CAAAA,EAAAA,OAAAA;EAASC,UAAAA,cAAAA,CAAAA,CAAAA,EAAAA,IAAAA;EAASC,QAAAA,kBAAAA;EAAkCpB,QAAAA,mBAAAA;EAAfU,iBAAAA,CAAAA,MAAAA,EAAAA,MAAAA,CAAAA,EAAAA,OAAAA;EAEzBvB,mBAAAA,CAAAA,CAAAA,EAAAA,IAAAA;EACNA,QAAAA,eAAAA;EAClC+B,QAAAA,gBAAAA;EAASC,UAAAA,iBAAAA,CAAAA,CAAAA,EAAAA,IAAAA;EAASF,UAAAA,mBAAAA,CAAAA,CAAAA,EAAAA,IAAAA;EAAUI,UAAAA,wBAAAA,CAAAA,aAAAA,CAAAA,EAUcpB,WAVdoB,EAAAA,UAAAA,CAAAA,EAUwCpB,WAVxCoB,CAAAA,EAUsDpB,WAVtDoB;EAAeC,QAAAA,0BAAAA;EAAaC,QAAAA,eAAAA;EAAaH,QAAAA,kBAAAA;EAAiBI,UAAAA,oBAAAA,CAAAA,GAAAA,EAc3DZ,cAd2DY,CAAAA,EAAAA,IAAAA;EAAeC,QAAAA,gBAAAA;EAAkBC,QAAAA,gBAAAA;EAAmC1B,QAAAA,uBAAAA;EAApBD,QAAAA,wBAAAA;EAU5FE,QAAAA,uBAAAA;EAA0BA,UAAAA,eAAAA,CAAAA,CAAAA,EAAAA,IAAAA;EAAcA,QAAAA,eAAAA;EAIvDW,QAAAA,wBAAAA;EAsBEA,QAAAA,eAAAA;EAAkBe,QAAAA,kBAAAA;EAAqBC,QAAAA,iBAAAA;EAAqBC,QAAAA,mBAAAA;EAAc/C,QAAAA,uBAAAA;EAAsCG,QAAAA,YAAAA;EAAmB,QAAA,cAAA;;;;;;;wCAAnI2B;;;;KAA0E9B,sCAAsCG"}
|
|
1
|
+
{"version":3,"file":"FileDiff.d.ts","names":["GetHoveredLineResult","GetLineIndexUtility","InteractionManager","InteractionManagerBaseOptions","SelectionWriteOptions","ResizeManager","ScrollSyncManager","DiffHunksRenderer","DiffHunksRendererOptions","HunksRenderResult","AppliedThemeStyleCache","BaseDiffOptions","CustomPreProperties","DiffLineAnnotation","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","__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, 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> {\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 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 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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"}
|
|
@@ -24,6 +24,7 @@ import { isDiffPlainText } from "../utils/isDiffPlainText.js";
|
|
|
24
24
|
import { DiffHunksRenderer } from "../renderers/DiffHunksRenderer.js";
|
|
25
25
|
import { areDiffLineAnnotationsEqual } from "../utils/areDiffLineAnnotationsEqual.js";
|
|
26
26
|
import { areHunkDataEqual } from "../utils/areHunkDataEqual.js";
|
|
27
|
+
import { getDiffHunksRendererOptions } from "../utils/getDiffHunksRendererOptions.js";
|
|
27
28
|
import { toHtml } from "hast-util-to-html";
|
|
28
29
|
|
|
29
30
|
//#region src/components/FileDiff.ts
|
|
@@ -31,6 +32,7 @@ let instanceId = -1;
|
|
|
31
32
|
var FileDiff = class {
|
|
32
33
|
static LoadedCustomComponent = DiffsContainerLoaded;
|
|
33
34
|
__id = `file-diff:${++instanceId}`;
|
|
35
|
+
type = "file-diff";
|
|
34
36
|
fileContainer;
|
|
35
37
|
spriteSVG;
|
|
36
38
|
pre;
|
|
@@ -67,6 +69,7 @@ var FileDiff = class {
|
|
|
67
69
|
lastRenderedHeaderHTML;
|
|
68
70
|
cachedHeaderHTML;
|
|
69
71
|
lastRowCount;
|
|
72
|
+
mounted = false;
|
|
70
73
|
enabled = true;
|
|
71
74
|
constructor(options = { theme: DEFAULT_THEMES }, workerManager, isContainerManaged = false) {
|
|
72
75
|
this.options = options;
|
|
@@ -83,11 +86,7 @@ var FileDiff = class {
|
|
|
83
86
|
this.rerender();
|
|
84
87
|
};
|
|
85
88
|
getHunksRendererOptions(options) {
|
|
86
|
-
return
|
|
87
|
-
...options,
|
|
88
|
-
headerRenderMode: options.renderCustomHeader != null ? "custom" : "default",
|
|
89
|
-
hunkSeparators: typeof options.hunkSeparators === "function" ? "custom" : options.hunkSeparators
|
|
90
|
-
};
|
|
89
|
+
return getDiffHunksRendererOptions(options);
|
|
91
90
|
}
|
|
92
91
|
createHunksRenderer(options) {
|
|
93
92
|
return new DiffHunksRenderer(this.getHunksRendererOptions(options), this.handleHighlightRender, this.workerManager);
|
|
@@ -150,7 +149,10 @@ var FileDiff = class {
|
|
|
150
149
|
this.options = options;
|
|
151
150
|
this.cachedHeaderHTML = void 0;
|
|
152
151
|
this.hunksRenderer.setOptions(this.getHunksRendererOptions(options));
|
|
153
|
-
this.
|
|
152
|
+
this.syncInteractionOptions();
|
|
153
|
+
}
|
|
154
|
+
syncInteractionOptions() {
|
|
155
|
+
this.interactionManager.setOptions(pluckInteractionOptions(this.options, typeof this.options.hunkSeparators === "function" || (this.options.hunkSeparators ?? "line-info") === "line-info" || this.options.hunkSeparators === "line-info-basic" ? this.handleExpandHunk : void 0, this.getLineIndex));
|
|
154
156
|
}
|
|
155
157
|
mergeOptions(options) {
|
|
156
158
|
this.options = {
|
|
@@ -199,6 +201,7 @@ var FileDiff = class {
|
|
|
199
201
|
this.managersDirty = false;
|
|
200
202
|
}
|
|
201
203
|
cleanUp(recycle = false) {
|
|
204
|
+
this.emitPostRender(true);
|
|
202
205
|
this.resizeManager.cleanUp();
|
|
203
206
|
this.interactionManager.cleanUp();
|
|
204
207
|
this.scrollSyncManager.cleanUp();
|
|
@@ -207,6 +210,7 @@ var FileDiff = class {
|
|
|
207
210
|
this.renderRange = void 0;
|
|
208
211
|
if (!this.isContainerManaged) this.fileContainer?.remove();
|
|
209
212
|
this.fileContainer = void 0;
|
|
213
|
+
this.mounted = false;
|
|
210
214
|
this.lineAnnotations = [];
|
|
211
215
|
this.clearAuxiliaryNodes();
|
|
212
216
|
this.annotationCache.clear();
|
|
@@ -270,6 +274,7 @@ var FileDiff = class {
|
|
|
270
274
|
if (!preventEmit) this.emitPostRender();
|
|
271
275
|
}
|
|
272
276
|
hydrateElements(fileContainer, prerenderedHTML) {
|
|
277
|
+
if (this.fileContainer !== fileContainer) this.emitPostRender(true);
|
|
273
278
|
prerenderHTMLIfNecessary(fileContainer, prerenderedHTML);
|
|
274
279
|
for (const element of fileContainer.shadowRoot?.children ?? []) {
|
|
275
280
|
if (element instanceof SVGElement) {
|
|
@@ -314,6 +319,7 @@ var FileDiff = class {
|
|
|
314
319
|
this.deletionFile = oldFile;
|
|
315
320
|
this.fileDiff = fileDiff ?? (oldFile != null && newFile != null ? parseDiffFromFile(oldFile, newFile, this.options.parseDiffOptions) : void 0);
|
|
316
321
|
if (this.pre == null) return;
|
|
322
|
+
this.syncInteractionOptions();
|
|
317
323
|
this.hunksRenderer.hydrate(this.fileDiff);
|
|
318
324
|
this.renderAnnotations();
|
|
319
325
|
this.renderGutterUtility();
|
|
@@ -328,6 +334,10 @@ var FileDiff = class {
|
|
|
328
334
|
renderRange: this.renderRange
|
|
329
335
|
});
|
|
330
336
|
}
|
|
337
|
+
onThemeChange() {
|
|
338
|
+
this.hunksRenderer.clearRenderCache();
|
|
339
|
+
this.rerender();
|
|
340
|
+
}
|
|
331
341
|
handleExpandHunk = (hunkIndex, direction, expansionLineCountOverride) => {
|
|
332
342
|
this.expandHunk(hunkIndex, direction, expansionLineCountOverride);
|
|
333
343
|
};
|
|
@@ -357,6 +367,7 @@ var FileDiff = class {
|
|
|
357
367
|
if (lineAnnotations != null) this.setLineAnnotations(lineAnnotations);
|
|
358
368
|
if (this.fileDiff == null) return false;
|
|
359
369
|
this.hunksRenderer.setOptions(this.getHunksRendererOptions(this.options));
|
|
370
|
+
this.syncInteractionOptions();
|
|
360
371
|
this.hunksRenderer.setLineAnnotations(this.lineAnnotations);
|
|
361
372
|
const { disableErrorHandling = false, disableFileHeader = false } = this.options;
|
|
362
373
|
if (disableFileHeader) {
|
|
@@ -420,8 +431,19 @@ var FileDiff = class {
|
|
|
420
431
|
if (!preventEmit) this.emitPostRender();
|
|
421
432
|
return true;
|
|
422
433
|
}
|
|
423
|
-
emitPostRender() {
|
|
424
|
-
|
|
434
|
+
emitPostRender(unmount = false) {
|
|
435
|
+
const { fileContainer, options: { onPostRender } } = this;
|
|
436
|
+
if (unmount) {
|
|
437
|
+
if (!this.mounted) return;
|
|
438
|
+
this.mounted = false;
|
|
439
|
+
if (fileContainer == null) return;
|
|
440
|
+
this.options.onPostRender?.(fileContainer, this, "unmount");
|
|
441
|
+
return;
|
|
442
|
+
}
|
|
443
|
+
if (fileContainer == null) return;
|
|
444
|
+
const phase = this.mounted ? "update" : "mount";
|
|
445
|
+
this.mounted = true;
|
|
446
|
+
onPostRender?.(fileContainer, this, phase);
|
|
425
447
|
}
|
|
426
448
|
removeRenderedCode() {
|
|
427
449
|
this.resizeManager.cleanUp();
|
|
@@ -452,6 +474,7 @@ var FileDiff = class {
|
|
|
452
474
|
}
|
|
453
475
|
renderPlaceholder(height) {
|
|
454
476
|
if (this.fileContainer == null) return false;
|
|
477
|
+
this.emitPostRender(true);
|
|
455
478
|
this.cleanChildNodes();
|
|
456
479
|
if (this.placeHolder == null) {
|
|
457
480
|
const shadowRoot = this.fileContainer.shadowRoot ?? this.fileContainer.attachShadow({ mode: "open" });
|
|
@@ -507,6 +530,7 @@ var FileDiff = class {
|
|
|
507
530
|
this.appliedUnsafeCSS = void 0;
|
|
508
531
|
this.lastRenderedHeaderHTML = void 0;
|
|
509
532
|
this.lastRowCount = void 0;
|
|
533
|
+
this.mounted = false;
|
|
510
534
|
}
|
|
511
535
|
renderSeparators(hunkData) {
|
|
512
536
|
const { hunkSeparators } = this.options;
|
|
@@ -590,9 +614,11 @@ var FileDiff = class {
|
|
|
590
614
|
this.gutterUtilityContent = gutterUtilityContent;
|
|
591
615
|
}
|
|
592
616
|
getOrCreateFileContainer(fileContainer, parentNode) {
|
|
593
|
-
const previousContainer = this
|
|
594
|
-
|
|
595
|
-
const containerChanged = previousContainer !==
|
|
617
|
+
const { fileContainer: previousContainer } = this;
|
|
618
|
+
const nextContainer = fileContainer ?? previousContainer ?? document.createElement(DIFFS_TAG_NAME);
|
|
619
|
+
const containerChanged = previousContainer !== nextContainer;
|
|
620
|
+
if (containerChanged) this.emitPostRender(true);
|
|
621
|
+
this.fileContainer = nextContainer;
|
|
596
622
|
if (previousContainer != null && containerChanged) {
|
|
597
623
|
this.lastRenderedHeaderHTML = void 0;
|
|
598
624
|
this.headerElement = void 0;
|