@pierre/diffs 1.1.0-beta.16 → 1.1.0-beta.18
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/AdvancedVirtualizedFileDiff.d.ts.map +1 -1
- package/dist/components/AdvancedVirtualizedFileDiff.js +2 -7
- package/dist/components/AdvancedVirtualizedFileDiff.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 +98 -41
- package/dist/components/File.js.map +1 -1
- package/dist/components/FileDiff.d.ts +20 -9
- package/dist/components/FileDiff.d.ts.map +1 -1
- package/dist/components/FileDiff.js +119 -42
- package/dist/components/FileDiff.js.map +1 -1
- package/dist/components/VirtualizedFile.js +4 -2
- package/dist/components/VirtualizedFile.js.map +1 -1
- package/dist/components/VirtualizedFileDiff.d.ts +1 -0
- package/dist/components/VirtualizedFileDiff.d.ts.map +1 -1
- package/dist/components/VirtualizedFileDiff.js +10 -2
- package/dist/components/VirtualizedFileDiff.js.map +1 -1
- package/dist/components/Virtualizer.js +2 -1
- 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.js +12 -4
- package/dist/highlighter/shared_highlighter.js.map +1 -1
- package/dist/index.d.ts +6 -6
- package/dist/index.js +6 -6
- package/dist/managers/InteractionManager.d.ts +140 -0
- package/dist/managers/InteractionManager.d.ts.map +1 -0
- package/dist/managers/InteractionManager.js +789 -0
- package/dist/managers/InteractionManager.js.map +1 -0
- 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/constants.d.ts +2 -2
- package/dist/react/constants.d.ts.map +1 -1
- package/dist/react/constants.js +2 -2
- package/dist/react/constants.js.map +1 -1
- package/dist/react/index.d.ts +3 -3
- package/dist/react/index.js +2 -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 +5 -1
- package/dist/react/utils/renderDiffChildren.d.ts.map +1 -1
- package/dist/react/utils/renderDiffChildren.js +17 -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.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/renderers/DiffHunksRenderer.d.ts +1 -0
- package/dist/renderers/DiffHunksRenderer.d.ts.map +1 -1
- package/dist/renderers/DiffHunksRenderer.js +10 -2
- package/dist/renderers/DiffHunksRenderer.js.map +1 -1
- package/dist/renderers/FileRenderer.js +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 +2 -2
- package/dist/style.js +1 -1
- package/dist/style.js.map +1 -1
- package/dist/types.d.ts +7 -1
- package/dist/types.d.ts.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/hast_utils.d.ts +1 -1
- package/dist/utils/hast_utils.d.ts.map +1 -1
- package/dist/utils/hast_utils.js.map +1 -1
- package/dist/worker/worker-portable.js +7 -0
- package/dist/worker/worker-portable.js.map +1 -1
- package/dist/worker/worker.js.map +1 -1
- package/package.json +2 -1
- 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
package/dist/index.js
CHANGED
|
@@ -1,7 +1,8 @@
|
|
|
1
|
-
import { ALTERNATE_FILE_NAMES_GIT, COMMIT_METADATA_SPLIT, CORE_CSS_ATTRIBUTE, DEFAULT_COLLAPSED_CONTEXT_THRESHOLD, DEFAULT_EXPANDED_REGION, DEFAULT_RENDER_RANGE, DEFAULT_THEMES, DEFAULT_VIRTUAL_FILE_METRICS, DIFFS_TAG_NAME, FILENAME_HEADER_REGEX, FILENAME_HEADER_REGEX_GIT, FILE_CONTEXT_BLOB, GIT_DIFF_FILE_BREAK_REGEX, HEADER_METADATA_SLOT_ID, HUNK_HEADER, INDEX_LINE_METADATA, SPLIT_WITH_NEWLINES, UNIFIED_DIFF_FILE_BREAK_REGEX, UNSAFE_CSS_ATTRIBUTE } from "./constants.js";
|
|
1
|
+
import { ALTERNATE_FILE_NAMES_GIT, COMMIT_METADATA_SPLIT, CORE_CSS_ATTRIBUTE, DEFAULT_COLLAPSED_CONTEXT_THRESHOLD, DEFAULT_EXPANDED_REGION, DEFAULT_RENDER_RANGE, DEFAULT_THEMES, DEFAULT_VIRTUAL_FILE_METRICS, DIFFS_TAG_NAME, EMPTY_RENDER_RANGE, FILENAME_HEADER_REGEX, FILENAME_HEADER_REGEX_GIT, FILE_CONTEXT_BLOB, GIT_DIFF_FILE_BREAK_REGEX, HEADER_METADATA_SLOT_ID, HEADER_PREFIX_SLOT_ID, HUNK_HEADER, INDEX_LINE_METADATA, SPLIT_WITH_NEWLINES, UNIFIED_DIFF_FILE_BREAK_REGEX, UNSAFE_CSS_ATTRIBUTE } from "./constants.js";
|
|
2
2
|
import { areSelectionsEqual } from "./utils/areSelectionsEqual.js";
|
|
3
|
-
import {
|
|
4
|
-
import {
|
|
3
|
+
import { createGutterGap, createGutterItem, createGutterWrapper, createHastElement, createIconElement, createTextNodeElement, findCodeElement } from "./utils/hast_utils.js";
|
|
4
|
+
import { createGutterUtilityElement } from "./utils/createGutterUtilityElement.js";
|
|
5
|
+
import { InteractionManager, pluckInteractionOptions } from "./managers/InteractionManager.js";
|
|
5
6
|
import { ResizeManager } from "./managers/ResizeManager.js";
|
|
6
7
|
import { AttachedLanguages, RegisteredCustomLanguages, ResolvedLanguages, ResolvingLanguages } from "./highlighter/languages/constants.js";
|
|
7
8
|
import { areLanguagesAttached } from "./highlighter/languages/areLanguagesAttached.js";
|
|
@@ -22,7 +23,6 @@ import { areThemesAttached } from "./highlighter/themes/areThemesAttached.js";
|
|
|
22
23
|
import { hasResolvedThemes } from "./highlighter/themes/hasResolvedThemes.js";
|
|
23
24
|
import { areRenderRangesEqual } from "./utils/areRenderRangesEqual.js";
|
|
24
25
|
import { areThemesEqual } from "./utils/areThemesEqual.js";
|
|
25
|
-
import { createGutterGap, createGutterItem, createGutterWrapper, createHastElement, createIconElement, createTextNodeElement, findCodeElement } from "./utils/hast_utils.js";
|
|
26
26
|
import { createAnnotationElement } from "./utils/createAnnotationElement.js";
|
|
27
27
|
import { getIconForType } from "./utils/getIconForType.js";
|
|
28
28
|
import { createFileHeaderElement } from "./utils/createFileHeaderElement.js";
|
|
@@ -43,7 +43,7 @@ import { areFilesEqual } from "./utils/areFilesEqual.js";
|
|
|
43
43
|
import { areLineAnnotationsEqual } from "./utils/areLineAnnotationsEqual.js";
|
|
44
44
|
import { arePrePropertiesEqual } from "./utils/arePrePropertiesEqual.js";
|
|
45
45
|
import { createAnnotationWrapperNode } from "./utils/createAnnotationWrapperNode.js";
|
|
46
|
-
import {
|
|
46
|
+
import { createGutterUtilityContentNode } from "./utils/createGutterUtilityContentNode.js";
|
|
47
47
|
import { createUnsafeCSSStyleNode } from "./utils/createUnsafeCSSStyleNode.js";
|
|
48
48
|
import { wrapCoreCSS, wrapUnsafeCSS } from "./utils/cssWrappers.js";
|
|
49
49
|
import { getOrCreateCodeNode } from "./utils/getOrCreateCodeNode.js";
|
|
@@ -95,4 +95,4 @@ import { setLanguageOverride } from "./utils/setLanguageOverride.js";
|
|
|
95
95
|
import { trimPatchContext } from "./utils/trimPatchContext.js";
|
|
96
96
|
import { codeToHtml, createCssVariablesTheme as createCSSVariablesTheme } from "shiki";
|
|
97
97
|
|
|
98
|
-
export { ALTERNATE_FILE_NAMES_GIT, AttachedLanguages, AttachedThemes, COMMIT_METADATA_SPLIT, CORE_CSS_ATTRIBUTE, CUSTOM_EXTENSION_TO_FILE_FORMAT, CodeToTokenTransformStream, DEFAULT_COLLAPSED_CONTEXT_THRESHOLD, DEFAULT_EXPANDED_REGION, DEFAULT_RENDER_RANGE, DEFAULT_THEMES, DEFAULT_VIRTUAL_FILE_METRICS, DIFFS_TAG_NAME, DiffHunksRenderer, EXTENSION_TO_FILE_FORMAT, FILENAME_HEADER_REGEX, FILENAME_HEADER_REGEX_GIT, FILE_CONTEXT_BLOB, File, FileDiff, FileRenderer, FileStream, GIT_DIFF_FILE_BREAK_REGEX, HEADER_METADATA_SLOT_ID, HUNK_HEADER, INDEX_LINE_METADATA,
|
|
98
|
+
export { ALTERNATE_FILE_NAMES_GIT, AttachedLanguages, AttachedThemes, COMMIT_METADATA_SPLIT, CORE_CSS_ATTRIBUTE, CUSTOM_EXTENSION_TO_FILE_FORMAT, CodeToTokenTransformStream, DEFAULT_COLLAPSED_CONTEXT_THRESHOLD, DEFAULT_EXPANDED_REGION, DEFAULT_RENDER_RANGE, DEFAULT_THEMES, DEFAULT_VIRTUAL_FILE_METRICS, DIFFS_TAG_NAME, DiffHunksRenderer, EMPTY_RENDER_RANGE, EXTENSION_TO_FILE_FORMAT, FILENAME_HEADER_REGEX, FILENAME_HEADER_REGEX_GIT, FILE_CONTEXT_BLOB, File, FileDiff, FileRenderer, FileStream, GIT_DIFF_FILE_BREAK_REGEX, HEADER_METADATA_SLOT_ID, HEADER_PREFIX_SLOT_ID, HUNK_HEADER, INDEX_LINE_METADATA, InteractionManager, RegisteredCustomLanguages, RegisteredCustomThemes, ResizeManager, ResolvedLanguages, ResolvedThemes, ResolvingLanguages, ResolvingThemes, SPLIT_WITH_NEWLINES, SVGSpriteSheet, ScrollSyncManager, ShikiStreamTokenizer, UNIFIED_DIFF_FILE_BREAK_REGEX, UNSAFE_CSS_ATTRIBUTE, VirtualizedFile, VirtualizedFileDiff, Virtualizer, areDiffLineAnnotationsEqual, areFilesEqual, areHunkDataEqual, areLanguagesAttached, areLineAnnotationsEqual, areObjectsEqual, areOptionsEqual, arePrePropertiesEqual, areRenderRangesEqual, areSelectionsEqual, areThemesAttached, areThemesEqual, areVirtualWindowSpecsEqual, areWorkerStatsEqual, attachResolvedLanguages, attachResolvedThemes, cleanLastNewline, cleanUpResolvedLanguages, cleanUpResolvedThemes, codeToHtml, createAnnotationElement, createAnnotationWrapperNode, createCSSVariablesTheme, createDiffSpanDecoration, createEmptyRowBuffer, createFileHeaderElement, createGutterGap, createGutterItem, createGutterUtilityContentNode, createGutterUtilityElement, createGutterWrapper, createHastElement, createIconElement, createNoNewlineElement, createPreElement, createPreWrapperProperties, createRowNodes, createSeparator, createSpanFromToken, createStyleElement, createTextNodeElement, createTransformerWithState, createUnsafeCSSStyleNode, createWindowFromScrollPosition, diffAcceptRejectHunk, disposeHighlighter, extendFileFormatMap, findCodeElement, formatCSSVariablePrefix, getFiletypeFromFileName, getHighlighterIfLoaded, getHighlighterOptions, getHighlighterThemeStyles, getHunkSeparatorSlotName, getIconForType, getLineAnnotationName, getLineEndingType, getLineNodes, getOrCreateCodeNode, getResolvedLanguages, getResolvedOrResolveLanguage, getResolvedOrResolveTheme, getResolvedThemes, getSharedHighlighter, getSingularPatch, getThemes, getTotalLineCountFromHunks, hasResolvedLanguages, hasResolvedThemes, isDefaultRenderRange, isHighlighterLoaded, isHighlighterLoading, isHighlighterNull, isWorkerContext, parseDiffFromFile, parseLineType, parsePatchFiles, pluckInteractionOptions, preloadHighlighter, prerenderHTMLIfNecessary, processFile, processLine, processPatch, pushOrJoinSpan, queueRender, registerCustomCSSVariableTheme, registerCustomLanguage, registerCustomTheme, renderDiffWithHighlighter, renderFileWithHighlighter, resolveLanguage, resolveLanguages, resolveTheme, resolveThemes, setLanguageOverride, setPreNodeProperties, trimPatchContext, wrapCoreCSS, wrapUnsafeCSS };
|
|
@@ -0,0 +1,140 @@
|
|
|
1
|
+
import { AnnotationSide, DiffLineEventBaseProps, ExpansionDirections, LineEventBaseProps, SelectionSide } from "../types.js";
|
|
2
|
+
|
|
3
|
+
//#region src/managers/InteractionManager.d.ts
|
|
4
|
+
type LogTypes = 'click' | 'move' | 'both' | 'none';
|
|
5
|
+
type InteractionManagerMode = 'file' | 'diff';
|
|
6
|
+
interface OnLineClickProps extends LineEventBaseProps {
|
|
7
|
+
event: PointerEvent;
|
|
8
|
+
}
|
|
9
|
+
interface OnLineEnterLeaveProps extends LineEventBaseProps {
|
|
10
|
+
event: PointerEvent;
|
|
11
|
+
}
|
|
12
|
+
interface OnDiffLineClickProps extends DiffLineEventBaseProps {
|
|
13
|
+
event: PointerEvent;
|
|
14
|
+
}
|
|
15
|
+
interface OnDiffLineEnterLeaveProps extends DiffLineEventBaseProps {
|
|
16
|
+
event: PointerEvent;
|
|
17
|
+
}
|
|
18
|
+
interface SelectedLineRange {
|
|
19
|
+
start: number;
|
|
20
|
+
side?: SelectionSide;
|
|
21
|
+
end: number;
|
|
22
|
+
endSide?: SelectionSide;
|
|
23
|
+
}
|
|
24
|
+
type GetLineIndexUtility = (lineNumber: number, side?: SelectionSide) => [number, number] | undefined;
|
|
25
|
+
type EventClickProps<TMode extends InteractionManagerMode> = TMode extends 'file' ? OnLineClickProps : OnDiffLineClickProps;
|
|
26
|
+
type PointerEventEnterLeaveProps<TMode extends InteractionManagerMode> = TMode extends 'file' ? OnLineEnterLeaveProps : OnDiffLineEnterLeaveProps;
|
|
27
|
+
type GetHoveredLineResult<TMode extends InteractionManagerMode> = TMode extends 'file' ? {
|
|
28
|
+
lineNumber: number;
|
|
29
|
+
} : {
|
|
30
|
+
lineNumber: number;
|
|
31
|
+
side: AnnotationSide;
|
|
32
|
+
};
|
|
33
|
+
interface InteractionManagerBaseOptions<TMode extends InteractionManagerMode> {
|
|
34
|
+
lineHoverHighlight?: 'disabled' | 'both' | 'number' | 'line';
|
|
35
|
+
enableGutterUtility?: boolean;
|
|
36
|
+
onGutterUtilityClick?(range: SelectedLineRange): unknown;
|
|
37
|
+
onLineClick?(props: EventClickProps<TMode>): unknown;
|
|
38
|
+
onLineNumberClick?(props: EventClickProps<TMode>): unknown;
|
|
39
|
+
onLineEnter?(props: PointerEventEnterLeaveProps<TMode>): unknown;
|
|
40
|
+
onLineLeave?(props: PointerEventEnterLeaveProps<TMode>): unknown;
|
|
41
|
+
__debugPointerEvents?: LogTypes;
|
|
42
|
+
enableLineSelection?: boolean;
|
|
43
|
+
onLineSelected?: (range: SelectedLineRange | null) => void;
|
|
44
|
+
onLineSelectionStart?: (range: SelectedLineRange | null) => void;
|
|
45
|
+
onLineSelectionChange?: (range: SelectedLineRange | null) => void;
|
|
46
|
+
onLineSelectionEnd?: (range: SelectedLineRange | null) => void;
|
|
47
|
+
getLineIndex?: GetLineIndexUtility;
|
|
48
|
+
}
|
|
49
|
+
interface InteractionManagerOptions<TMode extends InteractionManagerMode> extends InteractionManagerBaseOptions<TMode> {
|
|
50
|
+
usesCustomGutterUtility?: boolean;
|
|
51
|
+
onHunkExpand?(hunkIndex: number, direction: ExpansionDirections, expandFully?: boolean): unknown;
|
|
52
|
+
}
|
|
53
|
+
declare class InteractionManager<TMode extends InteractionManagerMode> {
|
|
54
|
+
private mode;
|
|
55
|
+
private options;
|
|
56
|
+
private hoveredLine;
|
|
57
|
+
private pre;
|
|
58
|
+
private gutterUtilityContainer;
|
|
59
|
+
private gutterUtilityButton;
|
|
60
|
+
private gutterUtilitySlot;
|
|
61
|
+
private interactiveLinesAttr;
|
|
62
|
+
private interactiveLineNumbersAttr;
|
|
63
|
+
private hasPointerListeners;
|
|
64
|
+
private hasDocumentPointerListeners;
|
|
65
|
+
private selectedRange;
|
|
66
|
+
private renderedSelectionRange;
|
|
67
|
+
private selectionAnchor;
|
|
68
|
+
private queuedSelectionRender;
|
|
69
|
+
private pointerSession;
|
|
70
|
+
constructor(mode: TMode, options: InteractionManagerOptions<TMode>);
|
|
71
|
+
setOptions(options: InteractionManagerOptions<TMode>): void;
|
|
72
|
+
cleanUp(): void;
|
|
73
|
+
setup(pre: HTMLPreElement): void;
|
|
74
|
+
setSelectionDirty(): void;
|
|
75
|
+
isSelectionDirty(): boolean;
|
|
76
|
+
setSelection(range: SelectedLineRange | null): void;
|
|
77
|
+
getSelection(): SelectedLineRange | null;
|
|
78
|
+
getHoveredLine: () => GetHoveredLineResult<TMode> | undefined;
|
|
79
|
+
handlePointerClick: (event: MouseEvent) => void;
|
|
80
|
+
handlePointerMove: (event: PointerEvent) => void;
|
|
81
|
+
handlePointerLeave: (event: PointerEvent) => void;
|
|
82
|
+
private handlePointerEvent;
|
|
83
|
+
private syncPointerListeners;
|
|
84
|
+
private updateInteractiveLineAttributes;
|
|
85
|
+
private handlePointerDown;
|
|
86
|
+
private startLineSelectionFromPointerDown;
|
|
87
|
+
private startGutterSelectionFromPointerDown;
|
|
88
|
+
private handleDocumentPointerMove;
|
|
89
|
+
private handleDocumentPointerUp;
|
|
90
|
+
private handleDocumentPointerCancel;
|
|
91
|
+
private clearHoveredLine;
|
|
92
|
+
private setHoveredLine;
|
|
93
|
+
private ensureGutterUtilityNode;
|
|
94
|
+
private attachDocumentPointerListeners;
|
|
95
|
+
private detachDocumentPointerListeners;
|
|
96
|
+
private clearPointerSession;
|
|
97
|
+
private clearPendingSingleLineState;
|
|
98
|
+
private getSelectionPointerInfo;
|
|
99
|
+
private getSelectionPointFromPath;
|
|
100
|
+
private getLineIndex;
|
|
101
|
+
private updateSelection;
|
|
102
|
+
private getIndexesFromSelection;
|
|
103
|
+
private renderSelection;
|
|
104
|
+
private notifySelectionCommitted;
|
|
105
|
+
private notifySelectionChangeDelta;
|
|
106
|
+
private notifySelectionStart;
|
|
107
|
+
private notifySelectionEnd;
|
|
108
|
+
private toEventBaseProps;
|
|
109
|
+
private buildSelectedLineRange;
|
|
110
|
+
private buildSelectionRange;
|
|
111
|
+
private resolvePointerTarget;
|
|
112
|
+
private isSplitDiff;
|
|
113
|
+
private parseLineIndex;
|
|
114
|
+
}
|
|
115
|
+
type InteractionPluckOptions<TMode extends InteractionManagerMode> = InteractionManagerBaseOptions<TMode> & {
|
|
116
|
+
enableHoverUtility?: boolean;
|
|
117
|
+
renderGutterUtility?(getHoveredRow: () => GetHoveredLineResult<TMode> | undefined): HTMLElement | null;
|
|
118
|
+
renderHoverUtility?(getHoveredRow: () => GetHoveredLineResult<TMode> | undefined): HTMLElement | null;
|
|
119
|
+
};
|
|
120
|
+
declare function pluckInteractionOptions<TMode extends InteractionManagerMode>({
|
|
121
|
+
enableGutterUtility,
|
|
122
|
+
enableHoverUtility,
|
|
123
|
+
lineHoverHighlight,
|
|
124
|
+
onGutterUtilityClick,
|
|
125
|
+
onLineClick,
|
|
126
|
+
onLineEnter,
|
|
127
|
+
onLineLeave,
|
|
128
|
+
onLineNumberClick,
|
|
129
|
+
renderGutterUtility,
|
|
130
|
+
renderHoverUtility,
|
|
131
|
+
__debugPointerEvents,
|
|
132
|
+
enableLineSelection,
|
|
133
|
+
onLineSelected,
|
|
134
|
+
onLineSelectionStart,
|
|
135
|
+
onLineSelectionChange,
|
|
136
|
+
onLineSelectionEnd
|
|
137
|
+
}: InteractionPluckOptions<TMode>, onHunkExpand?: (hunkIndex: number, direction: ExpansionDirections, expandFully?: boolean) => unknown, getLineIndex?: GetLineIndexUtility): InteractionManagerOptions<TMode>;
|
|
138
|
+
//#endregion
|
|
139
|
+
export { GetHoveredLineResult, GetLineIndexUtility, InteractionManager, InteractionManagerBaseOptions, InteractionManagerMode, InteractionManagerOptions, LogTypes, OnDiffLineClickProps, OnDiffLineEnterLeaveProps, OnLineClickProps, OnLineEnterLeaveProps, SelectedLineRange, pluckInteractionOptions };
|
|
140
|
+
//# sourceMappingURL=InteractionManager.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"InteractionManager.d.ts","names":["AnnotationSide","DiffLineEventBaseProps","ExpansionDirections","LineEventBaseProps","SelectionSide","LogTypes","InteractionManagerMode","OnLineClickProps","PointerEvent","OnLineEnterLeaveProps","OnDiffLineClickProps","OnDiffLineEnterLeaveProps","SelectedLineRange","GetLineIndexUtility","EventClickProps","TMode","PointerEventEnterLeaveProps","GetHoveredLineResult","InteractionManagerBaseOptions","InteractionManagerOptions","InteractionManager","HTMLPreElement","MouseEvent","InteractionPluckOptions","HTMLElement","pluckInteractionOptions","enableGutterUtility","enableHoverUtility","lineHoverHighlight","onGutterUtilityClick","onLineClick","onLineEnter","onLineLeave","onLineNumberClick","renderGutterUtility","renderHoverUtility","__debugPointerEvents","enableLineSelection","onLineSelected","onLineSelectionStart","onLineSelectionChange","onLineSelectionEnd"],"sources":["../../src/managers/InteractionManager.d.ts"],"sourcesContent":["import type { AnnotationSide, DiffLineEventBaseProps, ExpansionDirections, LineEventBaseProps, SelectionSide } from '../types';\nexport type LogTypes = 'click' | 'move' | 'both' | 'none';\nexport type InteractionManagerMode = 'file' | 'diff';\nexport interface OnLineClickProps extends LineEventBaseProps {\n event: PointerEvent;\n}\nexport interface OnLineEnterLeaveProps extends LineEventBaseProps {\n event: PointerEvent;\n}\nexport interface OnDiffLineClickProps extends DiffLineEventBaseProps {\n event: PointerEvent;\n}\nexport interface OnDiffLineEnterLeaveProps extends DiffLineEventBaseProps {\n event: PointerEvent;\n}\nexport interface SelectedLineRange {\n start: number;\n side?: SelectionSide;\n end: number;\n endSide?: SelectionSide;\n}\nexport type GetLineIndexUtility = (lineNumber: number, side?: SelectionSide) => [number, number] | undefined;\ntype EventClickProps<TMode extends InteractionManagerMode> = TMode extends 'file' ? OnLineClickProps : OnDiffLineClickProps;\ntype PointerEventEnterLeaveProps<TMode extends InteractionManagerMode> = TMode extends 'file' ? OnLineEnterLeaveProps : OnDiffLineEnterLeaveProps;\nexport type GetHoveredLineResult<TMode extends InteractionManagerMode> = TMode extends 'file' ? {\n lineNumber: number;\n} : {\n lineNumber: number;\n side: AnnotationSide;\n};\nexport interface InteractionManagerBaseOptions<TMode extends InteractionManagerMode> {\n lineHoverHighlight?: 'disabled' | 'both' | 'number' | 'line';\n enableGutterUtility?: boolean;\n onGutterUtilityClick?(range: SelectedLineRange): unknown;\n onLineClick?(props: EventClickProps<TMode>): unknown;\n onLineNumberClick?(props: EventClickProps<TMode>): unknown;\n onLineEnter?(props: PointerEventEnterLeaveProps<TMode>): unknown;\n onLineLeave?(props: PointerEventEnterLeaveProps<TMode>): unknown;\n __debugPointerEvents?: LogTypes;\n enableLineSelection?: boolean;\n onLineSelected?: (range: SelectedLineRange | null) => void;\n onLineSelectionStart?: (range: SelectedLineRange | null) => void;\n onLineSelectionChange?: (range: SelectedLineRange | null) => void;\n onLineSelectionEnd?: (range: SelectedLineRange | null) => void;\n getLineIndex?: GetLineIndexUtility;\n}\nexport interface InteractionManagerOptions<TMode extends InteractionManagerMode> extends InteractionManagerBaseOptions<TMode> {\n usesCustomGutterUtility?: boolean;\n onHunkExpand?(hunkIndex: number, direction: ExpansionDirections, expandFully?: boolean): unknown;\n}\nexport declare class InteractionManager<TMode extends InteractionManagerMode> {\n private mode;\n private options;\n private hoveredLine;\n private pre;\n private gutterUtilityContainer;\n private gutterUtilityButton;\n private gutterUtilitySlot;\n private interactiveLinesAttr;\n private interactiveLineNumbersAttr;\n private hasPointerListeners;\n private hasDocumentPointerListeners;\n private selectedRange;\n private renderedSelectionRange;\n private selectionAnchor;\n private queuedSelectionRender;\n private pointerSession;\n constructor(mode: TMode, options: InteractionManagerOptions<TMode>);\n setOptions(options: InteractionManagerOptions<TMode>): void;\n cleanUp(): void;\n setup(pre: HTMLPreElement): void;\n setSelectionDirty(): void;\n isSelectionDirty(): boolean;\n setSelection(range: SelectedLineRange | null): void;\n getSelection(): SelectedLineRange | null;\n getHoveredLine: () => GetHoveredLineResult<TMode> | undefined;\n handlePointerClick: (event: MouseEvent) => void;\n handlePointerMove: (event: PointerEvent) => void;\n handlePointerLeave: (event: PointerEvent) => void;\n private handlePointerEvent;\n private syncPointerListeners;\n private updateInteractiveLineAttributes;\n private handlePointerDown;\n private startLineSelectionFromPointerDown;\n private startGutterSelectionFromPointerDown;\n private handleDocumentPointerMove;\n private handleDocumentPointerUp;\n private handleDocumentPointerCancel;\n private clearHoveredLine;\n private setHoveredLine;\n private ensureGutterUtilityNode;\n private attachDocumentPointerListeners;\n private detachDocumentPointerListeners;\n private clearPointerSession;\n private clearPendingSingleLineState;\n private getSelectionPointerInfo;\n private getSelectionPointFromPath;\n private getLineIndex;\n private updateSelection;\n private getIndexesFromSelection;\n private renderSelection;\n private notifySelectionCommitted;\n private notifySelectionChangeDelta;\n private notifySelectionStart;\n private notifySelectionEnd;\n private toEventBaseProps;\n private buildSelectedLineRange;\n private buildSelectionRange;\n private resolvePointerTarget;\n private isSplitDiff;\n private parseLineIndex;\n}\ntype InteractionPluckOptions<TMode extends InteractionManagerMode> = InteractionManagerBaseOptions<TMode> & {\n enableHoverUtility?: boolean;\n renderGutterUtility?(getHoveredRow: () => GetHoveredLineResult<TMode> | undefined): HTMLElement | null;\n renderHoverUtility?(getHoveredRow: () => GetHoveredLineResult<TMode> | undefined): HTMLElement | null;\n};\nexport declare function pluckInteractionOptions<TMode extends InteractionManagerMode>({ enableGutterUtility, enableHoverUtility, lineHoverHighlight, onGutterUtilityClick, onLineClick, onLineEnter, onLineLeave, onLineNumberClick, renderGutterUtility, renderHoverUtility, __debugPointerEvents, enableLineSelection, onLineSelected, onLineSelectionStart, onLineSelectionChange, onLineSelectionEnd }: InteractionPluckOptions<TMode>, onHunkExpand?: (hunkIndex: number, direction: ExpansionDirections, expandFully?: boolean) => unknown, getLineIndex?: GetLineIndexUtility): InteractionManagerOptions<TMode>;\nexport {};\n//# sourceMappingURL=InteractionManager.d.ts.map"],"mappings":"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"}
|