@pierre/diffs 1.1.0-beta.9 → 1.1.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/README.md +7 -18
- package/dist/components/AdvancedVirtualizedFileDiff.d.ts.map +1 -1
- package/dist/components/AdvancedVirtualizedFileDiff.js +2 -7
- package/dist/components/AdvancedVirtualizedFileDiff.js.map +1 -1
- package/dist/components/AdvancedVirtualizer.js +1 -1
- package/dist/components/AdvancedVirtualizer.js.map +1 -1
- package/dist/components/File.d.ts +17 -7
- package/dist/components/File.d.ts.map +1 -1
- package/dist/components/File.js +111 -54
- package/dist/components/File.js.map +1 -1
- package/dist/components/FileDiff.d.ts +32 -14
- package/dist/components/FileDiff.d.ts.map +1 -1
- package/dist/components/FileDiff.js +156 -81
- package/dist/components/FileDiff.js.map +1 -1
- package/dist/components/UnresolvedFile.d.ts +60 -0
- package/dist/components/UnresolvedFile.d.ts.map +1 -0
- package/dist/components/UnresolvedFile.js +280 -0
- package/dist/components/UnresolvedFile.js.map +1 -0
- package/dist/components/VirtualizedFile.js +8 -5
- package/dist/components/VirtualizedFile.js.map +1 -1
- package/dist/components/VirtualizedFileDiff.d.ts +1 -1
- package/dist/components/VirtualizedFileDiff.d.ts.map +1 -1
- package/dist/components/VirtualizedFileDiff.js +15 -11
- package/dist/components/VirtualizedFileDiff.js.map +1 -1
- package/dist/components/Virtualizer.d.ts +3 -1
- package/dist/components/Virtualizer.d.ts.map +1 -1
- package/dist/components/Virtualizer.js +50 -24
- package/dist/components/Virtualizer.js.map +1 -1
- package/dist/constants.d.ts +3 -1
- package/dist/constants.d.ts.map +1 -1
- package/dist/constants.js +8 -1
- package/dist/constants.js.map +1 -1
- package/dist/highlighter/shared_highlighter.d.ts +4 -2
- package/dist/highlighter/shared_highlighter.d.ts.map +1 -1
- package/dist/highlighter/shared_highlighter.js +15 -7
- package/dist/highlighter/shared_highlighter.js.map +1 -1
- package/dist/index.d.ts +9 -7
- package/dist/index.js +8 -6
- package/dist/managers/InteractionManager.d.ts +146 -0
- package/dist/managers/InteractionManager.d.ts.map +1 -0
- package/dist/managers/InteractionManager.js +813 -0
- package/dist/managers/InteractionManager.js.map +1 -0
- package/dist/managers/ResizeManager.d.ts +0 -2
- package/dist/managers/ResizeManager.d.ts.map +1 -1
- package/dist/managers/ResizeManager.js +43 -32
- package/dist/managers/ResizeManager.js.map +1 -1
- package/dist/react/File.d.ts +2 -0
- package/dist/react/File.d.ts.map +1 -1
- package/dist/react/File.js +3 -1
- package/dist/react/File.js.map +1 -1
- package/dist/react/FileDiff.d.ts +2 -0
- package/dist/react/FileDiff.d.ts.map +1 -1
- package/dist/react/FileDiff.js +3 -1
- package/dist/react/FileDiff.js.map +1 -1
- package/dist/react/MultiFileDiff.d.ts +2 -0
- package/dist/react/MultiFileDiff.d.ts.map +1 -1
- package/dist/react/MultiFileDiff.js +3 -1
- package/dist/react/MultiFileDiff.js.map +1 -1
- package/dist/react/PatchDiff.d.ts +2 -0
- package/dist/react/PatchDiff.d.ts.map +1 -1
- package/dist/react/PatchDiff.js +3 -1
- package/dist/react/PatchDiff.js.map +1 -1
- package/dist/react/UnresolvedFile.d.ts +36 -0
- package/dist/react/UnresolvedFile.d.ts.map +1 -0
- package/dist/react/UnresolvedFile.js +42 -0
- package/dist/react/UnresolvedFile.js.map +1 -0
- package/dist/react/constants.d.ts +3 -2
- package/dist/react/constants.d.ts.map +1 -1
- package/dist/react/constants.js +3 -2
- package/dist/react/constants.js.map +1 -1
- package/dist/react/index.d.ts +4 -3
- package/dist/react/index.js +3 -2
- package/dist/react/types.d.ts +11 -2
- package/dist/react/types.d.ts.map +1 -1
- package/dist/react/utils/renderDiffChildren.d.ts +16 -5
- package/dist/react/utils/renderDiffChildren.d.ts.map +1 -1
- package/dist/react/utils/renderDiffChildren.js +34 -7
- package/dist/react/utils/renderDiffChildren.js.map +1 -1
- package/dist/react/utils/renderFileChildren.d.ts +5 -1
- package/dist/react/utils/renderFileChildren.d.ts.map +1 -1
- package/dist/react/utils/renderFileChildren.js +13 -7
- package/dist/react/utils/renderFileChildren.js.map +1 -1
- package/dist/react/utils/useFileDiffInstance.d.ts +1 -2
- package/dist/react/utils/useFileDiffInstance.d.ts.map +1 -1
- package/dist/react/utils/useFileDiffInstance.js +2 -2
- package/dist/react/utils/useFileDiffInstance.js.map +1 -1
- package/dist/react/utils/useFileInstance.d.ts +1 -2
- package/dist/react/utils/useFileInstance.d.ts.map +1 -1
- package/dist/react/utils/useFileInstance.js.map +1 -1
- package/dist/react/utils/useUnresolvedFileInstance.d.ts +33 -0
- package/dist/react/utils/useUnresolvedFileInstance.d.ts.map +1 -0
- package/dist/react/utils/useUnresolvedFileInstance.js +87 -0
- package/dist/react/utils/useUnresolvedFileInstance.js.map +1 -0
- package/dist/renderers/DiffHunksRenderer.d.ts +50 -6
- package/dist/renderers/DiffHunksRenderer.d.ts.map +1 -1
- package/dist/renderers/DiffHunksRenderer.js +145 -45
- package/dist/renderers/DiffHunksRenderer.js.map +1 -1
- package/dist/renderers/FileRenderer.js +1 -1
- package/dist/renderers/UnresolvedFileHunksRenderer.d.ts +46 -0
- package/dist/renderers/UnresolvedFileHunksRenderer.d.ts.map +1 -0
- package/dist/renderers/UnresolvedFileHunksRenderer.js +207 -0
- package/dist/renderers/UnresolvedFileHunksRenderer.js.map +1 -0
- package/dist/shiki-stream/stream.d.ts +1 -1
- package/dist/shiki-stream/stream.d.ts.map +1 -1
- package/dist/shiki-stream/stream.js.map +1 -1
- package/dist/shiki-stream/tokenizer.d.ts +1 -1
- package/dist/shiki-stream/tokenizer.d.ts.map +1 -1
- package/dist/shiki-stream/tokenizer.js.map +1 -1
- package/dist/shiki-stream/types.d.ts +1 -1
- package/dist/shiki-stream/types.d.ts.map +1 -1
- package/dist/sprite.d.ts +2 -2
- package/dist/sprite.d.ts.map +1 -1
- package/dist/sprite.js +3 -0
- package/dist/sprite.js.map +1 -1
- package/dist/ssr/index.d.ts +3 -3
- package/dist/ssr/index.js +2 -2
- package/dist/ssr/preloadDiffs.d.ts +23 -14
- package/dist/ssr/preloadDiffs.d.ts.map +1 -1
- package/dist/ssr/preloadDiffs.js +40 -14
- package/dist/ssr/preloadDiffs.js.map +1 -1
- package/dist/style.js +1 -1
- package/dist/style.js.map +1 -1
- package/dist/types.d.ts +29 -2
- package/dist/types.d.ts.map +1 -1
- package/dist/utils/areMergeConflictActionsEqual.d.ts +7 -0
- package/dist/utils/areMergeConflictActionsEqual.d.ts.map +1 -0
- package/dist/utils/areMergeConflictActionsEqual.js +11 -0
- package/dist/utils/areMergeConflictActionsEqual.js.map +1 -0
- package/dist/utils/arePrePropertiesEqual.js +10 -1
- package/dist/utils/arePrePropertiesEqual.js.map +1 -1
- package/dist/utils/areSelectionPointsEqual.d.ts +7 -0
- package/dist/utils/areSelectionPointsEqual.d.ts.map +1 -0
- package/dist/utils/areSelectionPointsEqual.js +8 -0
- package/dist/utils/areSelectionPointsEqual.js.map +1 -0
- package/dist/utils/areSelectionsEqual.d.ts +1 -1
- package/dist/utils/areSelectionsEqual.d.ts.map +1 -1
- package/dist/utils/areSelectionsEqual.js.map +1 -1
- package/dist/utils/createFileHeaderElement.js +5 -2
- package/dist/utils/createFileHeaderElement.js.map +1 -1
- package/dist/utils/createGutterUtilityContentNode.d.ts +5 -0
- package/dist/utils/createGutterUtilityContentNode.d.ts.map +1 -0
- package/dist/utils/createGutterUtilityContentNode.js +15 -0
- package/dist/utils/createGutterUtilityContentNode.js.map +1 -0
- package/dist/utils/createGutterUtilityElement.d.ts +7 -0
- package/dist/utils/createGutterUtilityElement.d.ts.map +1 -0
- package/dist/utils/createGutterUtilityElement.js +20 -0
- package/dist/utils/createGutterUtilityElement.js.map +1 -0
- package/dist/utils/createPreElement.d.ts +2 -1
- package/dist/utils/createPreElement.d.ts.map +1 -1
- package/dist/utils/createPreElement.js +2 -1
- package/dist/utils/createPreElement.js.map +1 -1
- package/dist/utils/createSeparator.js +1 -1
- package/dist/utils/createSeparator.js.map +1 -1
- package/dist/utils/createWindowFromScrollPosition.js +12 -11
- package/dist/utils/createWindowFromScrollPosition.js.map +1 -1
- package/dist/utils/getHighlighterOptions.d.ts +7 -2
- package/dist/utils/getHighlighterOptions.d.ts.map +1 -1
- package/dist/utils/getHighlighterOptions.js +3 -2
- package/dist/utils/getHighlighterOptions.js.map +1 -1
- package/dist/utils/getMergeConflictActionSlotName.d.ts +16 -0
- package/dist/utils/getMergeConflictActionSlotName.d.ts.map +1 -0
- package/dist/utils/getMergeConflictActionSlotName.js +8 -0
- package/dist/utils/getMergeConflictActionSlotName.js.map +1 -0
- package/dist/utils/getMergeConflictLineTypes.d.ts +15 -0
- package/dist/utils/getMergeConflictLineTypes.d.ts.map +1 -0
- package/dist/utils/getMergeConflictLineTypes.js +81 -0
- package/dist/utils/getMergeConflictLineTypes.js.map +1 -0
- package/dist/utils/getOrCreateCodeNode.d.ts +3 -1
- package/dist/utils/getOrCreateCodeNode.d.ts.map +1 -1
- package/dist/utils/getOrCreateCodeNode.js +5 -3
- package/dist/utils/getOrCreateCodeNode.js.map +1 -1
- package/dist/utils/hast_utils.d.ts +2 -2
- package/dist/utils/hast_utils.d.ts.map +1 -1
- package/dist/utils/hast_utils.js +3 -2
- package/dist/utils/hast_utils.js.map +1 -1
- package/dist/utils/parseMergeConflictDiffFromFile.d.ts +26 -0
- package/dist/utils/parseMergeConflictDiffFromFile.d.ts.map +1 -0
- package/dist/utils/parseMergeConflictDiffFromFile.js +143 -0
- package/dist/utils/parseMergeConflictDiffFromFile.js.map +1 -0
- package/dist/utils/resolveMergeConflict.d.ts +7 -0
- package/dist/utils/resolveMergeConflict.d.ts.map +1 -0
- package/dist/utils/resolveMergeConflict.js +30 -0
- package/dist/utils/resolveMergeConflict.js.map +1 -0
- package/dist/utils/resolveVirtualFileMetrics.js +1 -0
- package/dist/utils/resolveVirtualFileMetrics.js.map +1 -1
- package/dist/utils/setWrapperNodeProps.d.ts +2 -1
- package/dist/utils/setWrapperNodeProps.d.ts.map +1 -1
- package/dist/utils/setWrapperNodeProps.js +5 -1
- package/dist/utils/setWrapperNodeProps.js.map +1 -1
- package/dist/worker/WorkerPoolManager.d.ts +4 -2
- package/dist/worker/WorkerPoolManager.d.ts.map +1 -1
- package/dist/worker/WorkerPoolManager.js +16 -9
- package/dist/worker/WorkerPoolManager.js.map +1 -1
- package/dist/worker/types.d.ts +3 -1
- package/dist/worker/types.d.ts.map +1 -1
- package/dist/worker/wasm-BlUZCxHM.js +10 -0
- package/dist/worker/wasm-BlUZCxHM.js.map +1 -0
- package/dist/worker/worker-portable.js +10546 -10106
- package/dist/worker/worker-portable.js.map +1 -1
- package/dist/worker/worker.js +27 -19
- package/dist/worker/worker.js.map +1 -1
- package/package.json +3 -7
- package/dist/managers/LineSelectionManager.d.ts +0 -64
- package/dist/managers/LineSelectionManager.d.ts.map +0 -1
- package/dist/managers/LineSelectionManager.js +0 -270
- package/dist/managers/LineSelectionManager.js.map +0 -1
- package/dist/managers/MouseEventManager.d.ts +0 -71
- package/dist/managers/MouseEventManager.d.ts.map +0 -1
- package/dist/managers/MouseEventManager.js +0 -358
- package/dist/managers/MouseEventManager.js.map +0 -1
- package/dist/themes/pierre-dark.js +0 -1328
- package/dist/themes/pierre-dark.js.map +0 -1
- package/dist/themes/pierre-light.js +0 -1328
- package/dist/themes/pierre-light.js.map +0 -1
- package/dist/utils/createHoverContentNode.d.ts +0 -5
- package/dist/utils/createHoverContentNode.d.ts.map +0 -1
- package/dist/utils/createHoverContentNode.js +0 -15
- package/dist/utils/createHoverContentNode.js.map +0 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useFileInstance.js","names":[],"sources":["../../../src/react/utils/useFileInstance.ts"],"sourcesContent":["import {\n useCallback,\n useContext,\n useEffect,\n useLayoutEffect,\n useRef,\n} from 'react';\n\nimport { File, type FileOptions } from '../../components/File';\nimport { VirtualizedFile } from '../../components/VirtualizedFile';\nimport type {
|
|
1
|
+
{"version":3,"file":"useFileInstance.js","names":[],"sources":["../../../src/react/utils/useFileInstance.ts"],"sourcesContent":["import {\n useCallback,\n useContext,\n useEffect,\n useLayoutEffect,\n useRef,\n} from 'react';\n\nimport { File, type FileOptions } from '../../components/File';\nimport { VirtualizedFile } from '../../components/VirtualizedFile';\nimport type {\n GetHoveredLineResult,\n SelectedLineRange,\n} from '../../managers/InteractionManager';\nimport type {\n FileContents,\n LineAnnotation,\n VirtualFileMetrics,\n} from '../../types';\nimport { areOptionsEqual } from '../../utils/areOptionsEqual';\nimport { useVirtualizer } from '../Virtualizer';\nimport { WorkerPoolContext } from '../WorkerPoolContext';\nimport { useStableCallback } from './useStableCallback';\n\nconst useIsometricEffect =\n typeof window === 'undefined' ? useEffect : useLayoutEffect;\n\ninterface UseFileInstanceProps<LAnnotation> {\n file: FileContents;\n options: FileOptions<LAnnotation> | undefined;\n lineAnnotations: LineAnnotation<LAnnotation>[] | undefined;\n selectedLines: SelectedLineRange | null | undefined;\n prerenderedHTML: string | undefined;\n metrics?: VirtualFileMetrics;\n}\n\ninterface UseFileInstanceReturn {\n ref(node: HTMLElement | null): void;\n getHoveredLine(): GetHoveredLineResult<'file'> | undefined;\n}\n\nexport function useFileInstance<LAnnotation>({\n file,\n options,\n lineAnnotations,\n selectedLines,\n prerenderedHTML,\n metrics,\n}: UseFileInstanceProps<LAnnotation>): UseFileInstanceReturn {\n const simpleVirtualizer = useVirtualizer();\n const poolManager = useContext(WorkerPoolContext);\n const instanceRef = useRef<\n File<LAnnotation> | VirtualizedFile<LAnnotation> | null\n >(null);\n const ref = useStableCallback((node: HTMLElement | null) => {\n if (node != null) {\n if (instanceRef.current != null) {\n throw new Error(\n 'File: An instance should not already exist when a node is created'\n );\n }\n if (simpleVirtualizer != null) {\n instanceRef.current = new VirtualizedFile(\n options,\n simpleVirtualizer,\n metrics,\n poolManager,\n true\n );\n } else {\n instanceRef.current = new File(options, poolManager, true);\n }\n void instanceRef.current.hydrate({\n file,\n fileContainer: node,\n lineAnnotations,\n prerenderedHTML,\n });\n } else {\n if (instanceRef.current == null) {\n throw new Error('File: A File instance should exist when unmounting');\n }\n instanceRef.current.cleanUp();\n instanceRef.current = null;\n }\n });\n\n useIsometricEffect(() => {\n if (instanceRef.current == null) return;\n const forceRender = !areOptionsEqual(instanceRef.current.options, options);\n instanceRef.current.setOptions(options);\n void instanceRef.current.render({ file, lineAnnotations, forceRender });\n if (selectedLines !== undefined) {\n instanceRef.current.setSelectedLines(selectedLines);\n }\n });\n\n const getHoveredLine = useCallback(():\n | GetHoveredLineResult<'file'>\n | undefined => {\n return instanceRef.current?.getHoveredLine();\n }, []);\n return { ref, getHoveredLine };\n}\n"],"mappings":";;;;;;;;;AAwBA,MAAM,qBACJ,OAAO,WAAW,cAAc,YAAY;AAgB9C,SAAgB,gBAA6B,EAC3C,MACA,SACA,iBACA,eACA,iBACA,WAC2D;CAC3D,MAAM,oBAAoB,gBAAgB;CAC1C,MAAM,cAAc,WAAW,kBAAkB;CACjD,MAAM,cAAc,OAElB,KAAK;CACP,MAAM,MAAM,mBAAmB,SAA6B;AAC1D,MAAI,QAAQ,MAAM;AAChB,OAAI,YAAY,WAAW,KACzB,OAAM,IAAI,MACR,oEACD;AAEH,OAAI,qBAAqB,KACvB,aAAY,UAAU,IAAI,gBACxB,SACA,mBACA,SACA,aACA,KACD;OAED,aAAY,UAAU,IAAI,KAAK,SAAS,aAAa,KAAK;AAE5D,GAAK,YAAY,QAAQ,QAAQ;IAC/B;IACA,eAAe;IACf;IACA;IACD,CAAC;SACG;AACL,OAAI,YAAY,WAAW,KACzB,OAAM,IAAI,MAAM,qDAAqD;AAEvE,eAAY,QAAQ,SAAS;AAC7B,eAAY,UAAU;;GAExB;AAEF,0BAAyB;AACvB,MAAI,YAAY,WAAW,KAAM;EACjC,MAAM,cAAc,CAAC,gBAAgB,YAAY,QAAQ,SAAS,QAAQ;AAC1E,cAAY,QAAQ,WAAW,QAAQ;AACvC,EAAK,YAAY,QAAQ,OAAO;GAAE;GAAM;GAAiB;GAAa,CAAC;AACvE,MAAI,kBAAkB,OACpB,aAAY,QAAQ,iBAAiB,cAAc;GAErD;AAOF,QAAO;EAAE;EAAK,gBALS,kBAEN;AACf,UAAO,YAAY,SAAS,gBAAgB;KAC3C,EAAE,CAAC;EACwB"}
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
import { DiffLineAnnotation, FileContents, FileDiffMetadata } from "../../types.js";
|
|
2
|
+
import { GetHoveredLineResult, SelectedLineRange } from "../../managers/InteractionManager.js";
|
|
3
|
+
import { MergeConflictDiffAction } from "../../utils/parseMergeConflictDiffFromFile.js";
|
|
4
|
+
import { UnresolvedFileHunksRendererOptions } from "../../renderers/UnresolvedFileHunksRenderer.js";
|
|
5
|
+
import { UnresolvedFile } from "../../components/UnresolvedFile.js";
|
|
6
|
+
|
|
7
|
+
//#region src/react/utils/useUnresolvedFileInstance.d.ts
|
|
8
|
+
interface UseUnresolvedFileInstanceProps<LAnnotation> {
|
|
9
|
+
file: FileContents;
|
|
10
|
+
options?: Omit<UnresolvedFileHunksRendererOptions, 'onMergeConflictAction'>;
|
|
11
|
+
lineAnnotations: DiffLineAnnotation<LAnnotation>[] | undefined;
|
|
12
|
+
selectedLines: SelectedLineRange | null | undefined;
|
|
13
|
+
prerenderedHTML: string | undefined;
|
|
14
|
+
hasConflictUtility: boolean;
|
|
15
|
+
}
|
|
16
|
+
interface UseUnresolvedFileInstanceReturn<LAnnotation> {
|
|
17
|
+
fileDiff: FileDiffMetadata;
|
|
18
|
+
actions: MergeConflictDiffAction[];
|
|
19
|
+
ref(node: HTMLElement | null): void;
|
|
20
|
+
getHoveredLine(): GetHoveredLineResult<'diff'> | undefined;
|
|
21
|
+
getInstance(): UnresolvedFile<LAnnotation> | undefined;
|
|
22
|
+
}
|
|
23
|
+
declare function useUnresolvedFileInstance<LAnnotation>({
|
|
24
|
+
file,
|
|
25
|
+
options,
|
|
26
|
+
lineAnnotations,
|
|
27
|
+
selectedLines,
|
|
28
|
+
prerenderedHTML,
|
|
29
|
+
hasConflictUtility
|
|
30
|
+
}: UseUnresolvedFileInstanceProps<LAnnotation>): UseUnresolvedFileInstanceReturn<LAnnotation>;
|
|
31
|
+
//#endregion
|
|
32
|
+
export { useUnresolvedFileInstance };
|
|
33
|
+
//# sourceMappingURL=useUnresolvedFileInstance.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"useUnresolvedFileInstance.d.ts","names":["UnresolvedFile","GetHoveredLineResult","SelectedLineRange","UnresolvedFileHunksRendererOptions","DiffLineAnnotation","FileContents","FileDiffMetadata","MergeConflictDiffAction","UseUnresolvedFileInstanceProps","LAnnotation","Omit","UseUnresolvedFileInstanceReturn","HTMLElement","useUnresolvedFileInstance","file","options","lineAnnotations","selectedLines","prerenderedHTML","hasConflictUtility"],"sources":["../../../src/react/utils/useUnresolvedFileInstance.d.ts"],"sourcesContent":["import { UnresolvedFile } from '../../components/UnresolvedFile';\nimport type { GetHoveredLineResult, SelectedLineRange } from '../../managers/InteractionManager';\nimport type { UnresolvedFileHunksRendererOptions } from '../../renderers/UnresolvedFileHunksRenderer';\nimport type { DiffLineAnnotation, FileContents, FileDiffMetadata } from '../../types';\nimport { type MergeConflictDiffAction } from '../../utils/parseMergeConflictDiffFromFile';\ninterface UseUnresolvedFileInstanceProps<LAnnotation> {\n file: FileContents;\n options?: Omit<UnresolvedFileHunksRendererOptions, 'onMergeConflictAction'>;\n lineAnnotations: DiffLineAnnotation<LAnnotation>[] | undefined;\n selectedLines: SelectedLineRange | null | undefined;\n prerenderedHTML: string | undefined;\n hasConflictUtility: boolean;\n}\ninterface UseUnresolvedFileInstanceReturn<LAnnotation> {\n fileDiff: FileDiffMetadata;\n actions: MergeConflictDiffAction[];\n ref(node: HTMLElement | null): void;\n getHoveredLine(): GetHoveredLineResult<'diff'> | undefined;\n getInstance(): UnresolvedFile<LAnnotation> | undefined;\n}\nexport declare function useUnresolvedFileInstance<LAnnotation>({ file, options, lineAnnotations, selectedLines, prerenderedHTML, hasConflictUtility }: UseUnresolvedFileInstanceProps<LAnnotation>): UseUnresolvedFileInstanceReturn<LAnnotation>;\nexport {};\n//# sourceMappingURL=useUnresolvedFileInstance.d.ts.map"],"mappings":";;;;;;;UAKUQ;QACAH;EADAG,OAAAA,CAAAA,EAEIE,IAFJF,CAESL,kCAFqBM,EAAAA,uBAAA,CAAA;EAC9BJ,eAAAA,EAEWD,kBAFXC,CAE8BI,WAF9BJ,CAAAA,EAAAA,GAAAA,SAAAA;EACSF,aAAAA,EAEAD,iBAFAC,GAAAA,IAAAA,GAAAA,SAAAA;EAALO,eAAAA,EAAAA,MAAAA,GAAAA,SAAAA;EAC0BD,kBAAAA,EAAAA,OAAAA;;UAK9BE,+BAJST,CAAAA,WAAAA,CAAAA,CAAAA;EAAiB,QAAA,EAKtBI,gBALsB;EAI1BK,OAAAA,EAEGJ,uBAFHI,EAA+B;EAC3BL,GAAAA,CAAAA,IAAAA,EAEAM,WAFAN,GAAAA,IAAAA,CAAAA,EAAAA,IAAAA;EACDC,cAAAA,EAAAA,EAESN,oBAFTM,CAAAA,MAAAA,CAAAA,GAAAA,SAAAA;EACCK,WAAAA,EAAAA,EAEKZ,cAFLY,CAEoBH,WAFpBG,CAAAA,GAAAA,SAAAA;;AAEoBH,iBAEVI,yBAFUJ,CAAAA,WAAAA,CAAAA,CAAAA;EAAAA,IAAAA;EAAAA,OAAAA;EAAAA,eAAAA;EAAAA,aAAAA;EAAAA,eAAAA;EAAAA;AAAAA,CAAAA,EAEqHD,8BAFrHC,CAEoJA,WAFpJA,CAAAA,CAAAA,EAEmKE,+BAFnKF,CAEmMA,WAFnMA,CAAAA"}
|
|
@@ -0,0 +1,87 @@
|
|
|
1
|
+
import { parseMergeConflictDiffFromFile } from "../../utils/parseMergeConflictDiffFromFile.js";
|
|
2
|
+
import { UnresolvedFile } from "../../components/UnresolvedFile.js";
|
|
3
|
+
import { areOptionsEqual } from "../../utils/areOptionsEqual.js";
|
|
4
|
+
import { WorkerPoolContext } from "../WorkerPoolContext.js";
|
|
5
|
+
import { useStableCallback } from "./useStableCallback.js";
|
|
6
|
+
import { useCallback, useContext, useEffect, useLayoutEffect, useRef, useState } from "react";
|
|
7
|
+
|
|
8
|
+
//#region src/react/utils/useUnresolvedFileInstance.ts
|
|
9
|
+
const useIsometricEffect = typeof window === "undefined" ? useEffect : useLayoutEffect;
|
|
10
|
+
function useUnresolvedFileInstance({ file, options, lineAnnotations, selectedLines, prerenderedHTML, hasConflictUtility }) {
|
|
11
|
+
const [{ fileDiff, actions }, setState] = useState(() => {
|
|
12
|
+
const { fileDiff: fileDiff$1, actions: actions$1 } = parseMergeConflictDiffFromFile(file);
|
|
13
|
+
return {
|
|
14
|
+
fileDiff: fileDiff$1,
|
|
15
|
+
actions: actions$1
|
|
16
|
+
};
|
|
17
|
+
});
|
|
18
|
+
const activeFileRef = useRef(file);
|
|
19
|
+
const onMergeConflictAction = useStableCallback((payload, instance) => {
|
|
20
|
+
const activeFile = activeFileRef.current;
|
|
21
|
+
const newFile = instance.resolveConflict(payload.conflict.conflictIndex, payload.resolution, activeFile);
|
|
22
|
+
if (newFile == null) return;
|
|
23
|
+
activeFileRef.current = newFile;
|
|
24
|
+
const { fileDiff: fileDiff$1, actions: actions$1 } = parseMergeConflictDiffFromFile(newFile);
|
|
25
|
+
setState({
|
|
26
|
+
fileDiff: fileDiff$1,
|
|
27
|
+
actions: actions$1
|
|
28
|
+
});
|
|
29
|
+
});
|
|
30
|
+
const poolManager = useContext(WorkerPoolContext);
|
|
31
|
+
const instanceRef = useRef(null);
|
|
32
|
+
const ref = useStableCallback((fileContainer) => {
|
|
33
|
+
if (fileContainer != null) {
|
|
34
|
+
if (instanceRef.current != null) throw new Error("useUnresolvedFileInstance: An instance should not already exist when a node is created");
|
|
35
|
+
instanceRef.current = new UnresolvedFile(mergeUnresolvedOptions(options, onMergeConflictAction, hasConflictUtility), poolManager, true);
|
|
36
|
+
instanceRef.current.hydrate({
|
|
37
|
+
fileDiff,
|
|
38
|
+
actions,
|
|
39
|
+
fileContainer,
|
|
40
|
+
lineAnnotations,
|
|
41
|
+
prerenderedHTML
|
|
42
|
+
});
|
|
43
|
+
} else {
|
|
44
|
+
if (instanceRef.current == null) throw new Error("useUnresolvedFileInstance: A UnresolvedFile instance should exist when unmounting");
|
|
45
|
+
instanceRef.current.cleanUp();
|
|
46
|
+
instanceRef.current = null;
|
|
47
|
+
}
|
|
48
|
+
});
|
|
49
|
+
useIsometricEffect(() => {
|
|
50
|
+
if (instanceRef.current == null) return;
|
|
51
|
+
const instance = instanceRef.current;
|
|
52
|
+
const newOptions = mergeUnresolvedOptions(options, onMergeConflictAction, hasConflictUtility);
|
|
53
|
+
const forceRender = !areOptionsEqual(instance.options, newOptions);
|
|
54
|
+
instance.setOptions(newOptions);
|
|
55
|
+
instance.render({
|
|
56
|
+
fileDiff,
|
|
57
|
+
actions,
|
|
58
|
+
lineAnnotations,
|
|
59
|
+
forceRender
|
|
60
|
+
});
|
|
61
|
+
if (selectedLines !== void 0) instance.setSelectedLines(selectedLines);
|
|
62
|
+
});
|
|
63
|
+
return {
|
|
64
|
+
ref,
|
|
65
|
+
getHoveredLine: useCallback(() => {
|
|
66
|
+
return instanceRef.current?.getHoveredLine();
|
|
67
|
+
}, []),
|
|
68
|
+
fileDiff,
|
|
69
|
+
actions,
|
|
70
|
+
getInstance: useCallback(() => {
|
|
71
|
+
return instanceRef.current ?? void 0;
|
|
72
|
+
}, [])
|
|
73
|
+
};
|
|
74
|
+
}
|
|
75
|
+
function mergeUnresolvedOptions(options, onMergeConflictAction, hasConflictUtility) {
|
|
76
|
+
return {
|
|
77
|
+
...options,
|
|
78
|
+
onMergeConflictAction,
|
|
79
|
+
hunkSeparators: options?.hunkSeparators === "custom" ? emptyRender : options?.hunkSeparators,
|
|
80
|
+
mergeConflictActionsType: hasConflictUtility || options?.mergeConflictActionsType === "custom" ? emptyRender : options?.mergeConflictActionsType
|
|
81
|
+
};
|
|
82
|
+
}
|
|
83
|
+
function emptyRender() {}
|
|
84
|
+
|
|
85
|
+
//#endregion
|
|
86
|
+
export { useUnresolvedFileInstance };
|
|
87
|
+
//# sourceMappingURL=useUnresolvedFileInstance.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"useUnresolvedFileInstance.js","names":["UnresolvedFileClass"],"sources":["../../../src/react/utils/useUnresolvedFileInstance.ts"],"sourcesContent":["import {\n useCallback,\n useContext,\n useEffect,\n useLayoutEffect,\n useRef,\n useState,\n} from 'react';\n\nimport {\n UnresolvedFile,\n UnresolvedFile as UnresolvedFileClass,\n type UnresolvedFileOptions,\n} from '../../components/UnresolvedFile';\nimport type {\n GetHoveredLineResult,\n SelectedLineRange,\n} from '../../managers/InteractionManager';\nimport type { UnresolvedFileHunksRendererOptions } from '../../renderers/UnresolvedFileHunksRenderer';\nimport type {\n DiffLineAnnotation,\n FileContents,\n FileDiffMetadata,\n MergeConflictActionPayload,\n} from '../../types';\nimport { areOptionsEqual } from '../../utils/areOptionsEqual';\nimport {\n type MergeConflictDiffAction,\n parseMergeConflictDiffFromFile,\n} from '../../utils/parseMergeConflictDiffFromFile';\nimport { WorkerPoolContext } from '../WorkerPoolContext';\nimport { useStableCallback } from './useStableCallback';\n\nconst useIsometricEffect =\n typeof window === 'undefined' ? useEffect : useLayoutEffect;\n\ninterface UseUnresolvedFileInstanceProps<LAnnotation> {\n file: FileContents;\n options?: Omit<UnresolvedFileHunksRendererOptions, 'onMergeConflictAction'>;\n lineAnnotations: DiffLineAnnotation<LAnnotation>[] | undefined;\n selectedLines: SelectedLineRange | null | undefined;\n prerenderedHTML: string | undefined;\n hasConflictUtility: boolean;\n}\n\ninterface UseUnresolvedFileInstanceReturn<LAnnotation> {\n fileDiff: FileDiffMetadata;\n actions: MergeConflictDiffAction[];\n ref(node: HTMLElement | null): void;\n getHoveredLine(): GetHoveredLineResult<'diff'> | undefined;\n getInstance(): UnresolvedFile<LAnnotation> | undefined;\n}\n\nexport function useUnresolvedFileInstance<LAnnotation>({\n file,\n options,\n lineAnnotations,\n selectedLines,\n prerenderedHTML,\n hasConflictUtility,\n}: UseUnresolvedFileInstanceProps<LAnnotation>): UseUnresolvedFileInstanceReturn<LAnnotation> {\n const [{ fileDiff, actions }, setState] = useState(() => {\n const { fileDiff, actions } = parseMergeConflictDiffFromFile(file);\n return { fileDiff, actions };\n });\n // UnresolvedFile is intentionally uncontrolled in React. Keep an internal\n // source-of-truth file so sequential conflict actions apply to the latest\n // resolved contents rather than the initial prop value.\n const activeFileRef = useRef(file);\n const onMergeConflictAction = useStableCallback(\n (\n payload: MergeConflictActionPayload,\n instance: UnresolvedFile<LAnnotation>\n ) => {\n const activeFile = activeFileRef.current;\n const newFile = instance.resolveConflict(\n payload.conflict.conflictIndex,\n payload.resolution,\n activeFile\n );\n if (newFile == null) return;\n activeFileRef.current = newFile;\n const { fileDiff, actions } = parseMergeConflictDiffFromFile(newFile);\n setState({ fileDiff, actions });\n }\n );\n const poolManager = useContext(WorkerPoolContext);\n const instanceRef = useRef<UnresolvedFileClass<LAnnotation> | null>(null);\n const ref = useStableCallback((fileContainer: HTMLElement | null) => {\n if (fileContainer != null) {\n if (instanceRef.current != null) {\n throw new Error(\n 'useUnresolvedFileInstance: An instance should not already exist when a node is created'\n );\n }\n instanceRef.current = new UnresolvedFileClass(\n mergeUnresolvedOptions(\n options,\n onMergeConflictAction,\n hasConflictUtility\n ),\n poolManager,\n true\n );\n void instanceRef.current.hydrate({\n fileDiff,\n actions,\n fileContainer,\n lineAnnotations,\n prerenderedHTML,\n });\n } else {\n if (instanceRef.current == null) {\n throw new Error(\n 'useUnresolvedFileInstance: A UnresolvedFile instance should exist when unmounting'\n );\n }\n instanceRef.current.cleanUp();\n instanceRef.current = null;\n }\n });\n\n useIsometricEffect(() => {\n if (instanceRef.current == null) return;\n const instance = instanceRef.current;\n const newOptions = mergeUnresolvedOptions(\n options,\n onMergeConflictAction,\n hasConflictUtility\n );\n const forceRender = !areOptionsEqual(instance.options, newOptions);\n instance.setOptions(newOptions);\n void instance.render({\n fileDiff,\n actions,\n lineAnnotations,\n forceRender,\n });\n if (selectedLines !== undefined) {\n instance.setSelectedLines(selectedLines);\n }\n });\n\n const getHoveredLine = useCallback(():\n | GetHoveredLineResult<'diff'>\n | undefined => {\n return instanceRef.current?.getHoveredLine();\n }, []);\n\n const getInstance = useCallback(() => {\n return instanceRef.current ?? undefined;\n }, []);\n\n return { ref, getHoveredLine, fileDiff, actions, getInstance };\n}\n\nfunction mergeUnresolvedOptions<LAnnotation>(\n options: UnresolvedFileHunksRendererOptions | undefined,\n onMergeConflictAction: UnresolvedFileOptions<LAnnotation>['onMergeConflictAction'],\n hasConflictUtility: boolean\n): UnresolvedFileOptions<LAnnotation> {\n return {\n ...options,\n onMergeConflictAction,\n hunkSeparators:\n options?.hunkSeparators === 'custom'\n ? emptyRender\n : options?.hunkSeparators,\n // Add a placeholder type for the custom render\n mergeConflictActionsType:\n hasConflictUtility || options?.mergeConflictActionsType === 'custom'\n ? emptyRender\n : options?.mergeConflictActionsType,\n };\n}\n\nfunction emptyRender() {\n return undefined;\n}\n"],"mappings":";;;;;;;;AAiCA,MAAM,qBACJ,OAAO,WAAW,cAAc,YAAY;AAmB9C,SAAgB,0BAAuC,EACrD,MACA,SACA,iBACA,eACA,iBACA,sBAC4F;CAC5F,MAAM,CAAC,EAAE,UAAU,WAAW,YAAY,eAAe;EACvD,MAAM,EAAE,sBAAU,uBAAY,+BAA+B,KAAK;AAClE,SAAO;GAAE;GAAU;GAAS;GAC5B;CAIF,MAAM,gBAAgB,OAAO,KAAK;CAClC,MAAM,wBAAwB,mBAE1B,SACA,aACG;EACH,MAAM,aAAa,cAAc;EACjC,MAAM,UAAU,SAAS,gBACvB,QAAQ,SAAS,eACjB,QAAQ,YACR,WACD;AACD,MAAI,WAAW,KAAM;AACrB,gBAAc,UAAU;EACxB,MAAM,EAAE,sBAAU,uBAAY,+BAA+B,QAAQ;AACrE,WAAS;GAAE;GAAU;GAAS,CAAC;GAElC;CACD,MAAM,cAAc,WAAW,kBAAkB;CACjD,MAAM,cAAc,OAAgD,KAAK;CACzE,MAAM,MAAM,mBAAmB,kBAAsC;AACnE,MAAI,iBAAiB,MAAM;AACzB,OAAI,YAAY,WAAW,KACzB,OAAM,IAAI,MACR,yFACD;AAEH,eAAY,UAAU,IAAIA,eACxB,uBACE,SACA,uBACA,mBACD,EACD,aACA,KACD;AACD,GAAK,YAAY,QAAQ,QAAQ;IAC/B;IACA;IACA;IACA;IACA;IACD,CAAC;SACG;AACL,OAAI,YAAY,WAAW,KACzB,OAAM,IAAI,MACR,oFACD;AAEH,eAAY,QAAQ,SAAS;AAC7B,eAAY,UAAU;;GAExB;AAEF,0BAAyB;AACvB,MAAI,YAAY,WAAW,KAAM;EACjC,MAAM,WAAW,YAAY;EAC7B,MAAM,aAAa,uBACjB,SACA,uBACA,mBACD;EACD,MAAM,cAAc,CAAC,gBAAgB,SAAS,SAAS,WAAW;AAClE,WAAS,WAAW,WAAW;AAC/B,EAAK,SAAS,OAAO;GACnB;GACA;GACA;GACA;GACD,CAAC;AACF,MAAI,kBAAkB,OACpB,UAAS,iBAAiB,cAAc;GAE1C;AAYF,QAAO;EAAE;EAAK,gBAVS,kBAEN;AACf,UAAO,YAAY,SAAS,gBAAgB;KAC3C,EAAE,CAAC;EAMwB;EAAU;EAAS,aAJ7B,kBAAkB;AACpC,UAAO,YAAY,WAAW;KAC7B,EAAE,CAAC;EAEwD;;AAGhE,SAAS,uBACP,SACA,uBACA,oBACoC;AACpC,QAAO;EACL,GAAG;EACH;EACA,gBACE,SAAS,mBAAmB,WACxB,cACA,SAAS;EAEf,0BACE,sBAAsB,SAAS,6BAA6B,WACxD,cACA,SAAS;EAChB;;AAGH,SAAS,cAAc"}
|
|
@@ -1,9 +1,43 @@
|
|
|
1
|
-
import { BaseDiffOptions, DiffLineAnnotation, ExpansionDirections, FileDiffMetadata, HunkData, HunkExpansionRegion, RenderDiffOptions, RenderRange, ThemeTypes, ThemedDiffResult } from "../types.js";
|
|
1
|
+
import { AnnotationSpan, BaseDiffOptions, BaseDiffOptionsWithDefaults, CustomPreProperties, DiffLineAnnotation, ExpansionDirections, FileDiffMetadata, HunkData, HunkExpansionRegion, LineTypes, RenderDiffOptions, RenderRange, ThemeTypes, ThemedDiffResult } from "../types.js";
|
|
2
2
|
import { WorkerPoolManager } from "../worker/WorkerPoolManager.js";
|
|
3
3
|
import "../worker/index.js";
|
|
4
|
-
import {
|
|
4
|
+
import { DiffLineMetadata } from "../utils/iterateOverDiff.js";
|
|
5
|
+
import { Element, ElementContent, Properties } from "hast";
|
|
5
6
|
|
|
6
7
|
//#region src/renderers/DiffHunksRenderer.d.ts
|
|
8
|
+
interface UnifiedLineDecorationProps {
|
|
9
|
+
type: 'context' | 'context-expanded' | 'change';
|
|
10
|
+
lineType: LineTypes;
|
|
11
|
+
additionLineIndex: number | undefined;
|
|
12
|
+
deletionLineIndex: number | undefined;
|
|
13
|
+
}
|
|
14
|
+
interface SplitLineDecorationProps {
|
|
15
|
+
side: 'deletions' | 'additions';
|
|
16
|
+
type: 'context' | 'context-expanded' | 'change';
|
|
17
|
+
lineIndex: number | undefined;
|
|
18
|
+
}
|
|
19
|
+
interface LineDecoration {
|
|
20
|
+
gutterLineType: LineTypes;
|
|
21
|
+
gutterProperties?: Properties;
|
|
22
|
+
contentProperties?: Properties;
|
|
23
|
+
}
|
|
24
|
+
interface RenderedLineContext {
|
|
25
|
+
type: 'context' | 'context-expanded' | 'change';
|
|
26
|
+
hunkIndex: number;
|
|
27
|
+
lineIndex: number;
|
|
28
|
+
unifiedLineIndex: number;
|
|
29
|
+
splitLineIndex: number;
|
|
30
|
+
deletionLine?: DiffLineMetadata;
|
|
31
|
+
additionLine?: DiffLineMetadata;
|
|
32
|
+
}
|
|
33
|
+
interface InlineRow {
|
|
34
|
+
content: Element;
|
|
35
|
+
gutter: Element;
|
|
36
|
+
}
|
|
37
|
+
interface SplitInlineRow {
|
|
38
|
+
deletion: InlineRow | undefined;
|
|
39
|
+
addition: InlineRow | undefined;
|
|
40
|
+
}
|
|
7
41
|
interface HunksRenderResult {
|
|
8
42
|
unifiedGutterAST: ElementContent[] | undefined;
|
|
9
43
|
unifiedContentAST: ElementContent[] | undefined;
|
|
@@ -40,17 +74,27 @@ declare class DiffHunksRenderer<LAnnotation = undefined> {
|
|
|
40
74
|
setOptions(options: BaseDiffOptions): void;
|
|
41
75
|
private mergeOptions;
|
|
42
76
|
setThemeType(themeType: ThemeTypes): void;
|
|
43
|
-
expandHunk(index: number, direction: ExpansionDirections): void;
|
|
77
|
+
expandHunk(index: number, direction: ExpansionDirections, expansionLineCount?: number): void;
|
|
44
78
|
getExpandedHunk(hunkIndex: number): HunkExpansionRegion;
|
|
45
79
|
getExpandedHunksMap(): Map<number, HunkExpansionRegion>;
|
|
46
80
|
setLineAnnotations(lineAnnotations: DiffLineAnnotation<LAnnotation>[]): void;
|
|
47
|
-
|
|
81
|
+
protected getUnifiedLineDecoration({
|
|
82
|
+
lineType
|
|
83
|
+
}: UnifiedLineDecorationProps): LineDecoration;
|
|
84
|
+
protected getSplitLineDecoration({
|
|
85
|
+
side,
|
|
86
|
+
type
|
|
87
|
+
}: SplitLineDecorationProps): LineDecoration;
|
|
88
|
+
protected createAnnotationElement(span: AnnotationSpan): Element;
|
|
89
|
+
protected getUnifiedInlineRowsForLine?: (ctx: RenderedLineContext) => InlineRow[] | undefined;
|
|
90
|
+
protected getSplitInlineRowsForLine?: (ctx: RenderedLineContext) => SplitInlineRow[] | undefined;
|
|
91
|
+
protected getOptionsWithDefaults(): BaseDiffOptionsWithDefaults;
|
|
48
92
|
private initializeHighlighter;
|
|
49
93
|
hydrate(diff: FileDiffMetadata | undefined): void;
|
|
50
94
|
private getRenderOptions;
|
|
51
95
|
renderDiff(diff?: FileDiffMetadata | undefined, renderRange?: RenderRange): HunksRenderResult | undefined;
|
|
52
96
|
asyncRender(diff: FileDiffMetadata, renderRange?: RenderRange): Promise<HunksRenderResult>;
|
|
53
|
-
|
|
97
|
+
protected createPreElement(split: boolean, totalLines: number, themeStyles: string, baseThemeType: 'light' | 'dark' | undefined, customProperties?: CustomPreProperties): Element;
|
|
54
98
|
private asyncHighlight;
|
|
55
99
|
private renderDiffWithHighlighter;
|
|
56
100
|
onHighlightSuccess(diff: FileDiffMetadata, result: ThemedDiffResult, options: RenderDiffOptions): void;
|
|
@@ -64,5 +108,5 @@ declare class DiffHunksRenderer<LAnnotation = undefined> {
|
|
|
64
108
|
private renderHeader;
|
|
65
109
|
}
|
|
66
110
|
//#endregion
|
|
67
|
-
export { DiffHunksRenderer, HunksRenderResult };
|
|
111
|
+
export { DiffHunksRenderer, HunksRenderResult, InlineRow, LineDecoration, RenderedLineContext, SplitInlineRow, SplitLineDecorationProps, UnifiedLineDecorationProps };
|
|
68
112
|
//# sourceMappingURL=DiffHunksRenderer.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"DiffHunksRenderer.d.ts","names":["ElementContent","Element","HASTElement","BaseDiffOptions","DiffLineAnnotation","ExpansionDirections","FileDiffMetadata","HunkData","HunkExpansionRegion","RenderDiffOptions","RenderRange","ThemedDiffResult","ThemeTypes","WorkerPoolManager","HunksRenderResult","DiffHunksRenderer","LAnnotation","Map","Promise"],"sources":["../../src/renderers/DiffHunksRenderer.d.ts"],"sourcesContent":["import type { ElementContent, Element as HASTElement } from 'hast';\nimport type { BaseDiffOptions, DiffLineAnnotation, ExpansionDirections, FileDiffMetadata, HunkData, HunkExpansionRegion, RenderDiffOptions, RenderRange, ThemedDiffResult, ThemeTypes } from '../types';\nimport type { WorkerPoolManager } from '../worker';\nexport interface HunksRenderResult {\n unifiedGutterAST: ElementContent[] | undefined;\n unifiedContentAST: ElementContent[] | undefined;\n deletionsGutterAST: ElementContent[] | undefined;\n deletionsContentAST: ElementContent[] | undefined;\n additionsGutterAST: ElementContent[] | undefined;\n additionsContentAST: ElementContent[] | undefined;\n hunkData: HunkData[];\n css: string;\n preNode: HASTElement;\n headerElement: HASTElement | undefined;\n totalLines: number;\n themeStyles: string;\n baseThemeType: 'light' | 'dark' | undefined;\n rowCount: number;\n bufferBefore: number;\n bufferAfter: number;\n}\nexport declare class DiffHunksRenderer<LAnnotation = undefined> {\n options: BaseDiffOptions;\n private onRenderUpdate?;\n private workerManager?;\n readonly __id: string;\n private highlighter;\n private diff;\n private expandedHunks;\n private deletionAnnotations;\n private additionAnnotations;\n private computedLang;\n private renderCache;\n constructor(options?: BaseDiffOptions, onRenderUpdate?: (() => unknown) | undefined, workerManager?: WorkerPoolManager | undefined);\n cleanUp(): void;\n recycle(): void;\n setOptions(options: BaseDiffOptions): void;\n private mergeOptions;\n setThemeType(themeType: ThemeTypes): void;\n expandHunk(index: number, direction: ExpansionDirections): void;\n getExpandedHunk(hunkIndex: number): HunkExpansionRegion;\n getExpandedHunksMap(): Map<number, HunkExpansionRegion>;\n setLineAnnotations(lineAnnotations: DiffLineAnnotation<LAnnotation>[]): void;\n
|
|
1
|
+
{"version":3,"file":"DiffHunksRenderer.d.ts","names":["ElementContent","Element","HASTElement","Properties","AnnotationSpan","BaseDiffOptions","BaseDiffOptionsWithDefaults","CustomPreProperties","DiffLineAnnotation","ExpansionDirections","FileDiffMetadata","HunkData","HunkExpansionRegion","LineTypes","RenderDiffOptions","RenderRange","ThemedDiffResult","ThemeTypes","DiffLineMetadata","WorkerPoolManager","UnifiedLineDecorationProps","SplitLineDecorationProps","LineDecoration","RenderedLineContext","InlineRow","SplitInlineRow","HunksRenderResult","DiffHunksRenderer","LAnnotation","Map","lineType","side","type","Promise"],"sources":["../../src/renderers/DiffHunksRenderer.d.ts"],"sourcesContent":["import type { ElementContent, Element as HASTElement, Properties } from 'hast';\nimport type { AnnotationSpan, BaseDiffOptions, BaseDiffOptionsWithDefaults, CustomPreProperties, DiffLineAnnotation, ExpansionDirections, FileDiffMetadata, HunkData, HunkExpansionRegion, LineTypes, RenderDiffOptions, RenderRange, ThemedDiffResult, ThemeTypes } from '../types';\nimport type { DiffLineMetadata } from '../utils/iterateOverDiff';\nimport type { WorkerPoolManager } from '../worker';\nexport interface UnifiedLineDecorationProps {\n type: 'context' | 'context-expanded' | 'change';\n lineType: LineTypes;\n additionLineIndex: number | undefined;\n deletionLineIndex: number | undefined;\n}\nexport interface SplitLineDecorationProps {\n side: 'deletions' | 'additions';\n type: 'context' | 'context-expanded' | 'change';\n lineIndex: number | undefined;\n}\nexport interface LineDecoration {\n gutterLineType: LineTypes;\n gutterProperties?: Properties;\n contentProperties?: Properties;\n}\nexport interface RenderedLineContext {\n type: 'context' | 'context-expanded' | 'change';\n hunkIndex: number;\n lineIndex: number;\n unifiedLineIndex: number;\n splitLineIndex: number;\n deletionLine?: DiffLineMetadata;\n additionLine?: DiffLineMetadata;\n}\nexport interface InlineRow {\n content: HASTElement;\n gutter: HASTElement;\n}\nexport interface SplitInlineRow {\n deletion: InlineRow | undefined;\n addition: InlineRow | undefined;\n}\nexport interface HunksRenderResult {\n unifiedGutterAST: ElementContent[] | undefined;\n unifiedContentAST: ElementContent[] | undefined;\n deletionsGutterAST: ElementContent[] | undefined;\n deletionsContentAST: ElementContent[] | undefined;\n additionsGutterAST: ElementContent[] | undefined;\n additionsContentAST: ElementContent[] | undefined;\n hunkData: HunkData[];\n css: string;\n preNode: HASTElement;\n headerElement: HASTElement | undefined;\n totalLines: number;\n themeStyles: string;\n baseThemeType: 'light' | 'dark' | undefined;\n rowCount: number;\n bufferBefore: number;\n bufferAfter: number;\n}\nexport declare class DiffHunksRenderer<LAnnotation = undefined> {\n options: BaseDiffOptions;\n private onRenderUpdate?;\n private workerManager?;\n readonly __id: string;\n private highlighter;\n private diff;\n private expandedHunks;\n private deletionAnnotations;\n private additionAnnotations;\n private computedLang;\n private renderCache;\n constructor(options?: BaseDiffOptions, onRenderUpdate?: (() => unknown) | undefined, workerManager?: WorkerPoolManager | undefined);\n cleanUp(): void;\n recycle(): void;\n setOptions(options: BaseDiffOptions): void;\n private mergeOptions;\n setThemeType(themeType: ThemeTypes): void;\n expandHunk(index: number, direction: ExpansionDirections, expansionLineCount?: number): void;\n getExpandedHunk(hunkIndex: number): HunkExpansionRegion;\n getExpandedHunksMap(): Map<number, HunkExpansionRegion>;\n setLineAnnotations(lineAnnotations: DiffLineAnnotation<LAnnotation>[]): void;\n protected getUnifiedLineDecoration({ lineType }: UnifiedLineDecorationProps): LineDecoration;\n protected getSplitLineDecoration({ side, type }: SplitLineDecorationProps): LineDecoration;\n protected createAnnotationElement(span: AnnotationSpan): HASTElement;\n protected getUnifiedInlineRowsForLine?: (ctx: RenderedLineContext) => InlineRow[] | undefined;\n protected getSplitInlineRowsForLine?: (ctx: RenderedLineContext) => SplitInlineRow[] | undefined;\n protected getOptionsWithDefaults(): BaseDiffOptionsWithDefaults;\n private initializeHighlighter;\n hydrate(diff: FileDiffMetadata | undefined): void;\n private getRenderOptions;\n renderDiff(diff?: FileDiffMetadata | undefined, renderRange?: RenderRange): HunksRenderResult | undefined;\n asyncRender(diff: FileDiffMetadata, renderRange?: RenderRange): Promise<HunksRenderResult>;\n protected createPreElement(split: boolean, totalLines: number, themeStyles: string, baseThemeType: 'light' | 'dark' | undefined, customProperties?: CustomPreProperties): HASTElement;\n private asyncHighlight;\n private renderDiffWithHighlighter;\n onHighlightSuccess(diff: FileDiffMetadata, result: ThemedDiffResult, options: RenderDiffOptions): void;\n onHighlightError(error: unknown): void;\n private processDiffResult;\n renderCodeAST(type: 'unified' | 'deletions' | 'additions', result: HunksRenderResult): ElementContent[] | undefined;\n renderFullAST(result: HunksRenderResult, children?: ElementContent[]): HASTElement;\n renderFullHTML(result: HunksRenderResult, tempChildren?: ElementContent[]): string;\n renderPartialHTML(children: ElementContent[], columnType?: 'unified' | 'deletions' | 'additions'): string;\n private getAnnotations;\n private renderHeader;\n}\n//# sourceMappingURL=DiffHunksRenderer.d.ts.map"],"mappings":"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"}
|