@pierre/diffs 1.2.0-beta.6 → 1.2.0
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 +16 -4
- package/dist/components/CodeView.d.ts.map +1 -1
- package/dist/components/CodeView.js +108 -31
- package/dist/components/CodeView.js.map +1 -1
- package/dist/components/File.d.ts +5 -0
- package/dist/components/File.d.ts.map +1 -1
- package/dist/components/File.js +54 -10
- package/dist/components/File.js.map +1 -1
- package/dist/components/FileDiff.d.ts +5 -1
- package/dist/components/FileDiff.d.ts.map +1 -1
- package/dist/components/FileDiff.js +56 -14
- package/dist/components/FileDiff.js.map +1 -1
- package/dist/components/FileStream.js +1 -0
- package/dist/components/FileStream.js.map +1 -1
- package/dist/components/UnresolvedFile.d.ts.map +1 -1
- package/dist/components/UnresolvedFile.js +1 -1
- package/dist/components/VirtualizedFileDiff.js +2 -2
- package/dist/components/VirtualizedFileDiff.js.map +1 -1
- package/dist/components/Virtualizer.js +1 -1
- package/dist/components/Virtualizer.js.map +1 -1
- package/dist/constants.d.ts.map +1 -1
- package/dist/highlighter/shared_highlighter.js +14 -0
- package/dist/highlighter/shared_highlighter.js.map +1 -1
- package/dist/index.d.ts +5 -1
- package/dist/index.js +7 -3
- package/dist/react/constants.d.ts.map +1 -1
- package/dist/renderers/DiffHunksRenderer.d.ts +2 -0
- package/dist/renderers/DiffHunksRenderer.d.ts.map +1 -1
- package/dist/renderers/DiffHunksRenderer.js +34 -21
- package/dist/renderers/DiffHunksRenderer.js.map +1 -1
- package/dist/renderers/FileRenderer.d.ts +3 -0
- package/dist/renderers/FileRenderer.d.ts.map +1 -1
- package/dist/renderers/FileRenderer.js +37 -23
- package/dist/renderers/FileRenderer.js.map +1 -1
- package/dist/style.js +1 -1
- package/dist/style.js.map +1 -1
- package/dist/types.d.ts +1 -1
- package/dist/types.d.ts.map +1 -1
- package/dist/utils/areDiffTargetsEqual.d.ts +7 -0
- package/dist/utils/areDiffTargetsEqual.d.ts.map +1 -0
- package/dist/utils/areDiffTargetsEqual.js +8 -0
- package/dist/utils/areDiffTargetsEqual.js.map +1 -0
- package/dist/utils/areFileRenderOptionsEqual.d.ts +7 -0
- package/dist/utils/areFileRenderOptionsEqual.d.ts.map +1 -0
- package/dist/utils/areFileRenderOptionsEqual.js +10 -0
- package/dist/utils/areFileRenderOptionsEqual.js.map +1 -0
- package/dist/utils/areWorkerStatsEqual.js +1 -1
- package/dist/utils/areWorkerStatsEqual.js.map +1 -1
- package/dist/utils/detachString.d.ts +2 -1
- package/dist/utils/detachString.d.ts.map +1 -1
- package/dist/utils/detachString.js +12 -10
- package/dist/utils/detachString.js.map +1 -1
- package/dist/utils/isStyleNode.d.ts +5 -0
- package/dist/utils/isStyleNode.d.ts.map +1 -0
- package/dist/utils/isStyleNode.js +10 -0
- package/dist/utils/isStyleNode.js.map +1 -0
- package/dist/utils/parsePatchFiles.d.ts +1 -7
- package/dist/utils/parsePatchFiles.d.ts.map +1 -1
- package/dist/utils/parsePatchFiles.js +18 -4
- package/dist/utils/parsePatchFiles.js.map +1 -1
- package/dist/utils/prefersReducedMotion.d.ts +5 -0
- package/dist/utils/prefersReducedMotion.d.ts.map +1 -0
- package/dist/utils/prefersReducedMotion.js +9 -0
- package/dist/utils/prefersReducedMotion.js.map +1 -0
- package/dist/worker/WorkerPoolManager.d.ts +33 -5
- package/dist/worker/WorkerPoolManager.d.ts.map +1 -1
- package/dist/worker/WorkerPoolManager.js +278 -79
- package/dist/worker/WorkerPoolManager.js.map +1 -1
- package/dist/worker/types.d.ts +7 -3
- package/dist/worker/types.d.ts.map +1 -1
- package/dist/worker/worker-portable.js +9 -9
- package/dist/worker/worker-portable.js.map +1 -1
- package/dist/worker/worker.js +3 -0
- package/dist/worker/worker.js.map +1 -1
- package/package.json +2 -6
|
@@ -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 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 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 private cleanChildNodes;\n private renderSeparators;\n protected renderAnnotations(): void;\n protected renderGutterUtility(): void;\n protected getOrCreateFileContainer(fileContainer?: HTMLElement, parentNode?: HTMLElement): HTMLElement;\n protected getFileContainer(): HTMLElement | undefined;\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","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,QAJYU,EAAAA,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,11 +1,12 @@
|
|
|
1
|
-
import { CUSTOM_HEADER_SLOT_ID, DEFAULT_THEMES, DIFFS_TAG_NAME, EMPTY_RENDER_RANGE, HEADER_METADATA_SLOT_ID, HEADER_PREFIX_SLOT_ID, THEME_CSS_ATTRIBUTE, UNSAFE_CSS_ATTRIBUTE } from "../constants.js";
|
|
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
2
|
import { areThemesEqual } from "../utils/areThemesEqual.js";
|
|
3
|
+
import { isStyleNode } from "../utils/isStyleNode.js";
|
|
3
4
|
import { InteractionManager, pluckInteractionOptions } from "../managers/InteractionManager.js";
|
|
4
5
|
import { ResizeManager } from "../managers/ResizeManager.js";
|
|
6
|
+
import { areFilesEqual } from "../utils/areFilesEqual.js";
|
|
5
7
|
import { areRenderRangesEqual } from "../utils/areRenderRangesEqual.js";
|
|
6
8
|
import { getLineAnnotationName } from "../utils/getLineAnnotationName.js";
|
|
7
9
|
import { SVGSpriteSheet } from "../sprite.js";
|
|
8
|
-
import { areFilesEqual } from "../utils/areFilesEqual.js";
|
|
9
10
|
import { arePrePropertiesEqual } from "../utils/arePrePropertiesEqual.js";
|
|
10
11
|
import { createAnnotationWrapperNode } from "../utils/createAnnotationWrapperNode.js";
|
|
11
12
|
import { createGutterUtilityContentNode } from "../utils/createGutterUtilityContentNode.js";
|
|
@@ -19,6 +20,7 @@ import { setPreNodeProperties } from "../utils/setWrapperNodeProps.js";
|
|
|
19
20
|
import { DiffsContainerLoaded } from "./web-components.js";
|
|
20
21
|
import { parseDiffFromFile } from "../utils/parseDiffFromFile.js";
|
|
21
22
|
import { ScrollSyncManager } from "../managers/ScrollSyncManager.js";
|
|
23
|
+
import { isDiffPlainText } from "../utils/isDiffPlainText.js";
|
|
22
24
|
import { DiffHunksRenderer } from "../renderers/DiffHunksRenderer.js";
|
|
23
25
|
import { areDiffLineAnnotationsEqual } from "../utils/areDiffLineAnnotationsEqual.js";
|
|
24
26
|
import { areHunkDataEqual } from "../utils/areHunkDataEqual.js";
|
|
@@ -39,6 +41,7 @@ var FileDiff = class {
|
|
|
39
41
|
bufferAfter;
|
|
40
42
|
themeCSSStyle;
|
|
41
43
|
appliedThemeCSS;
|
|
44
|
+
hasAdoptedThemeCSS = false;
|
|
42
45
|
unsafeCSSStyle;
|
|
43
46
|
appliedUnsafeCSS;
|
|
44
47
|
gutterUtilityContent;
|
|
@@ -62,6 +65,7 @@ var FileDiff = class {
|
|
|
62
65
|
renderRange;
|
|
63
66
|
appliedPreAttributes;
|
|
64
67
|
lastRenderedHeaderHTML;
|
|
68
|
+
cachedHeaderHTML;
|
|
65
69
|
lastRowCount;
|
|
66
70
|
enabled = true;
|
|
67
71
|
constructor(options = { theme: DEFAULT_THEMES }, workerManager, isContainerManaged = false) {
|
|
@@ -144,6 +148,7 @@ var FileDiff = class {
|
|
|
144
148
|
setOptions(options) {
|
|
145
149
|
if (options == null) return;
|
|
146
150
|
this.options = options;
|
|
151
|
+
this.cachedHeaderHTML = void 0;
|
|
147
152
|
this.hunksRenderer.setOptions(this.getHunksRendererOptions(options));
|
|
148
153
|
this.interactionManager.setOptions(pluckInteractionOptions(options, typeof options.hunkSeparators === "function" || (options.hunkSeparators ?? "line-info") === "line-info" || options.hunkSeparators === "line-info-basic" ? this.handleExpandHunk : void 0, this.getLineIndex));
|
|
149
154
|
}
|
|
@@ -203,6 +208,7 @@ var FileDiff = class {
|
|
|
203
208
|
if (!this.isContainerManaged) this.fileContainer?.remove();
|
|
204
209
|
this.fileContainer = void 0;
|
|
205
210
|
this.lineAnnotations = [];
|
|
211
|
+
this.clearAuxiliaryNodes();
|
|
206
212
|
this.annotationCache.clear();
|
|
207
213
|
this.pre = void 0;
|
|
208
214
|
this.codeUnified = void 0;
|
|
@@ -215,12 +221,15 @@ var FileDiff = class {
|
|
|
215
221
|
this.headerPrefix = void 0;
|
|
216
222
|
this.headerMetadata = void 0;
|
|
217
223
|
this.headerCustom = void 0;
|
|
224
|
+
this.placeHolder = void 0;
|
|
218
225
|
this.lastRenderedHeaderHTML = void 0;
|
|
226
|
+
if (!recycle) this.cachedHeaderHTML = void 0;
|
|
219
227
|
this.errorWrapper = void 0;
|
|
220
228
|
this.spriteSVG = void 0;
|
|
221
229
|
this.lastRowCount = void 0;
|
|
222
230
|
this.themeCSSStyle = void 0;
|
|
223
231
|
this.appliedThemeCSS = void 0;
|
|
232
|
+
this.hasAdoptedThemeCSS = false;
|
|
224
233
|
this.unsafeCSSStyle = void 0;
|
|
225
234
|
this.appliedUnsafeCSS = void 0;
|
|
226
235
|
if (recycle) this.hunksRenderer.recycle();
|
|
@@ -344,6 +353,7 @@ var FileDiff = class {
|
|
|
344
353
|
diffDidChange = true;
|
|
345
354
|
this.fileDiff = parseDiffFromFile(oldFile, newFile, this.options.parseDiffOptions);
|
|
346
355
|
}
|
|
356
|
+
if (diffDidChange) this.cachedHeaderHTML = void 0;
|
|
347
357
|
if (lineAnnotations != null) this.setLineAnnotations(lineAnnotations);
|
|
348
358
|
if (this.fileDiff == null) return false;
|
|
349
359
|
this.hunksRenderer.setOptions(this.getHunksRendererOptions(this.options));
|
|
@@ -452,10 +462,18 @@ var FileDiff = class {
|
|
|
452
462
|
this.placeHolder.style.setProperty("height", `${height}px`);
|
|
453
463
|
return true;
|
|
454
464
|
}
|
|
465
|
+
primeHighlightCache() {
|
|
466
|
+
const { fileDiff, workerManager } = this;
|
|
467
|
+
if (fileDiff == null || workerManager == null || isDiffPlainText(fileDiff)) return;
|
|
468
|
+
const tokenizeMaxLength = this.options.tokenizeMaxLength ?? DEFAULT_TOKENIZE_MAX_LENGTH;
|
|
469
|
+
if (Math.max(fileDiff.additionLines.length, fileDiff.deletionLines.length) > tokenizeMaxLength) return;
|
|
470
|
+
workerManager.primeDiffHighlightCache(fileDiff);
|
|
471
|
+
}
|
|
455
472
|
cleanChildNodes() {
|
|
456
473
|
this.resizeManager.cleanUp();
|
|
457
474
|
this.scrollSyncManager.cleanUp();
|
|
458
475
|
this.interactionManager.cleanUp();
|
|
476
|
+
this.clearAuxiliaryNodes();
|
|
459
477
|
this.bufferAfter?.remove();
|
|
460
478
|
this.bufferBefore?.remove();
|
|
461
479
|
this.codeAdditions?.remove();
|
|
@@ -463,7 +481,6 @@ var FileDiff = class {
|
|
|
463
481
|
this.codeUnified?.remove();
|
|
464
482
|
this.errorWrapper?.remove();
|
|
465
483
|
this.headerElement?.remove();
|
|
466
|
-
this.gutterUtilityContent?.remove();
|
|
467
484
|
this.headerPrefix?.remove();
|
|
468
485
|
this.headerMetadata?.remove();
|
|
469
486
|
this.headerCustom?.remove();
|
|
@@ -478,7 +495,6 @@ var FileDiff = class {
|
|
|
478
495
|
this.codeUnified = void 0;
|
|
479
496
|
this.errorWrapper = void 0;
|
|
480
497
|
this.headerElement = void 0;
|
|
481
|
-
this.gutterUtilityContent = void 0;
|
|
482
498
|
this.headerPrefix = void 0;
|
|
483
499
|
this.headerMetadata = void 0;
|
|
484
500
|
this.headerCustom = void 0;
|
|
@@ -486,6 +502,7 @@ var FileDiff = class {
|
|
|
486
502
|
this.spriteSVG = void 0;
|
|
487
503
|
this.themeCSSStyle = void 0;
|
|
488
504
|
this.appliedThemeCSS = void 0;
|
|
505
|
+
this.hasAdoptedThemeCSS = false;
|
|
489
506
|
this.unsafeCSSStyle = void 0;
|
|
490
507
|
this.appliedUnsafeCSS = void 0;
|
|
491
508
|
this.lastRenderedHeaderHTML = void 0;
|
|
@@ -575,24 +592,37 @@ var FileDiff = class {
|
|
|
575
592
|
getOrCreateFileContainer(fileContainer, parentNode) {
|
|
576
593
|
const previousContainer = this.fileContainer;
|
|
577
594
|
this.fileContainer = fileContainer ?? this.fileContainer ?? document.createElement(DIFFS_TAG_NAME);
|
|
578
|
-
|
|
595
|
+
const containerChanged = previousContainer !== this.fileContainer;
|
|
596
|
+
if (previousContainer != null && containerChanged) {
|
|
579
597
|
this.lastRenderedHeaderHTML = void 0;
|
|
580
598
|
this.headerElement = void 0;
|
|
581
599
|
}
|
|
582
600
|
if (parentNode != null && this.fileContainer.parentNode !== parentNode) parentNode.appendChild(this.fileContainer);
|
|
601
|
+
if (containerChanged) this.adoptReusableShellElements(this.fileContainer);
|
|
602
|
+
this.ensureSpriteSVG(this.fileContainer);
|
|
603
|
+
return this.fileContainer;
|
|
604
|
+
}
|
|
605
|
+
adoptReusableShellElements(fileContainer) {
|
|
606
|
+
const { shadowRoot } = fileContainer;
|
|
607
|
+
if (shadowRoot == null) return;
|
|
608
|
+
for (const element of shadowRoot.children) if (element instanceof SVGElement) this.spriteSVG ??= element;
|
|
609
|
+
else if (isStyleNode(element) && element.hasAttribute(THEME_CSS_ATTRIBUTE)) {
|
|
610
|
+
this.themeCSSStyle ??= element;
|
|
611
|
+
this.hasAdoptedThemeCSS = true;
|
|
612
|
+
} else if (isStyleNode(element) && element.hasAttribute(UNSAFE_CSS_ATTRIBUTE)) {
|
|
613
|
+
this.unsafeCSSStyle ??= element;
|
|
614
|
+
this.appliedUnsafeCSS ??= this.options.unsafeCSS ?? void 0;
|
|
615
|
+
}
|
|
616
|
+
}
|
|
617
|
+
ensureSpriteSVG(fileContainer) {
|
|
618
|
+
const shadowRoot = fileContainer.shadowRoot ?? fileContainer.attachShadow({ mode: "open" });
|
|
583
619
|
if (this.spriteSVG == null) {
|
|
584
620
|
const fragment = document.createElement("div");
|
|
585
621
|
fragment.innerHTML = SVGSpriteSheet;
|
|
586
622
|
const firstChild = fragment.firstChild;
|
|
587
|
-
if (firstChild instanceof SVGElement)
|
|
588
|
-
this.spriteSVG = firstChild;
|
|
589
|
-
this.fileContainer.shadowRoot?.appendChild(this.spriteSVG);
|
|
590
|
-
}
|
|
623
|
+
if (firstChild instanceof SVGElement) this.spriteSVG = firstChild;
|
|
591
624
|
}
|
|
592
|
-
|
|
593
|
-
}
|
|
594
|
-
getFileContainer() {
|
|
595
|
-
return this.fileContainer;
|
|
625
|
+
if (this.spriteSVG != null && this.spriteSVG.parentNode !== shadowRoot) shadowRoot.appendChild(this.spriteSVG);
|
|
596
626
|
}
|
|
597
627
|
getOrCreatePreNode(container) {
|
|
598
628
|
const shadowRoot = container.shadowRoot ?? container.attachShadow({ mode: "open" });
|
|
@@ -627,7 +657,8 @@ var FileDiff = class {
|
|
|
627
657
|
this.placeHolder?.remove();
|
|
628
658
|
this.placeHolder = void 0;
|
|
629
659
|
const { fileDiff } = this;
|
|
630
|
-
const headerHTML = toHtml(headerAST);
|
|
660
|
+
const headerHTML = this.cachedHeaderHTML ?? toHtml(headerAST);
|
|
661
|
+
this.cachedHeaderHTML = headerHTML;
|
|
631
662
|
if (headerHTML !== this.lastRenderedHeaderHTML) {
|
|
632
663
|
const tempDiv = document.createElement("div");
|
|
633
664
|
tempDiv.innerHTML = headerHTML;
|
|
@@ -712,6 +743,17 @@ var FileDiff = class {
|
|
|
712
743
|
this.appliedThemeCSS.theme = theme;
|
|
713
744
|
return;
|
|
714
745
|
}
|
|
746
|
+
if (this.hasAdoptedThemeCSS && this.themeCSSStyle?.parentNode === shadowRoot) {
|
|
747
|
+
this.hasAdoptedThemeCSS = false;
|
|
748
|
+
this.appliedThemeCSS = {
|
|
749
|
+
theme,
|
|
750
|
+
themeStyles,
|
|
751
|
+
themeType: effectiveThemeType,
|
|
752
|
+
baseThemeType,
|
|
753
|
+
scrollbarGutter
|
|
754
|
+
};
|
|
755
|
+
return;
|
|
756
|
+
}
|
|
715
757
|
this.themeCSSStyle = upsertHostThemeStyle({
|
|
716
758
|
shadowRoot,
|
|
717
759
|
currentNode: this.themeCSSStyle,
|