{"version":3,"file":"InteractionManager.d.ts","names":["AnnotationSide","DiffLineEventBaseProps","DiffTokenEventBaseProps","ExpansionDirections","LineEventBaseProps","MergeConflictResolution","SelectionSide","TokenEventBase","LogTypes","InteractionManagerMode","OnLineClickProps","PointerEvent","OnLineEnterLeaveProps","OnDiffLineClickProps","OnDiffLineEnterLeaveProps","SelectedLineRange","GetLineIndexUtility","EventClickProps","TMode","PointerEventEnterLeaveProps","OnTokenEventProps","GetHoveredLineResult","MergeConflictActionTarget","InteractionManagerBaseOptions","MouseEvent","InteractionManagerOptions","InteractionManager","HTMLPreElement","InteractionPluckOptions","HTMLElement","pluckInteractionOptions","enableTokenInteractionsOnWhitespace","enableGutterUtility","enableHoverUtility","lineHoverHighlight","onGutterUtilityClick","onLineClick","onLineEnter","onLineLeave","onLineNumberClick","onTokenClick","onTokenEnter","onTokenLeave","renderGutterUtility","renderHoverUtility","__debugPointerEvents","enableLineSelection","onLineSelected","onLineSelectionStart","onLineSelectionChange","onLineSelectionEnd"],"sources":["../../src/managers/InteractionManager.d.ts"],"sourcesContent":["import type { AnnotationSide, DiffLineEventBaseProps, DiffTokenEventBaseProps, ExpansionDirections, LineEventBaseProps, MergeConflictResolution, SelectionSide, TokenEventBase } 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 OnTokenEventProps<TMode extends InteractionManagerMode> = TMode extends 'file' ? TokenEventBase : DiffTokenEventBaseProps;\nexport type GetHoveredLineResult<TMode extends InteractionManagerMode> = TMode extends 'file' ? {\n    lineNumber: number;\n} : {\n    lineNumber: number;\n    side: AnnotationSide;\n};\nexport interface MergeConflictActionTarget {\n    kind: 'merge-conflict-action';\n    resolution: MergeConflictResolution;\n    conflictIndex: number;\n}\nexport interface InteractionManagerBaseOptions<TMode extends InteractionManagerMode> {\n    lineHoverHighlight?: 'disabled' | 'both' | 'number' | 'line';\n    enableTokenInteractionsOnWhitespace?: boolean;\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    onTokenClick?(props: OnTokenEventProps<TMode>, event: MouseEvent): unknown;\n    onTokenEnter?(props: OnTokenEventProps<TMode>, event: PointerEvent): unknown;\n    onTokenLeave?(props: OnTokenEventProps<TMode>, event: PointerEvent): 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, expansionLineCountOverride?: number): unknown;\n    onMergeConflictActionClick?(target: MergeConflictActionTarget): void;\n}\nexport declare class InteractionManager<TMode extends InteractionManagerMode> {\n    private mode;\n    private options;\n    private hoveredLine;\n    private hoveredToken;\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 clearHoveredToken;\n    private setHoveredToken;\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 toTokenEventBaseProps;\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 | undefined;\n    renderHoverUtility?(getHoveredRow: () => GetHoveredLineResult<TMode> | undefined): HTMLElement | null | undefined;\n};\nexport declare function pluckInteractionOptions<TMode extends InteractionManagerMode>({ enableTokenInteractionsOnWhitespace, enableGutterUtility, enableHoverUtility, lineHoverHighlight, onGutterUtilityClick, onLineClick, onLineEnter, onLineLeave, onLineNumberClick, onTokenClick, onTokenEnter, onTokenLeave, renderGutterUtility, renderHoverUtility, __debugPointerEvents, enableLineSelection, onLineSelected, onLineSelectionStart, onLineSelectionChange, onLineSelectionEnd }: InteractionPluckOptions<TMode>, onHunkExpand?: (hunkIndex: number, direction: ExpansionDirections, expansionLineCount?: number) => unknown, getLineIndex?: GetLineIndexUtility, onMergeConflictActionClick?: (target: MergeConflictActionTarget) => void): InteractionManagerOptions<TMode>;\nexport {};\n//# sourceMappingURL=InteractionManager.d.ts.map"],"mappings":"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"}