@pierre/diffs
Version:
1 lines • 13.4 kB
Source Map (JSON)
{"version":3,"file":"InteractionManager.d.ts","names":["AnnotationSide","DiffLineEventBaseProps","DiffTokenEventBaseProps","ExpansionDirections","LineEventBaseProps","MergeConflictResolution","SelectedLineRange","SelectionSide","TokenEventBase","LogTypes","InteractionManagerMode","OnLineClickProps","PointerEvent","OnLineEnterLeaveProps","OnDiffLineClickProps","OnDiffLineEnterLeaveProps","SelectionWriteOptions","GetLineIndexUtility","EventClickProps","TMode","PointerEventEnterLeaveProps","OnTokenEventProps","GetHoveredLineResult","MergeConflictActionTarget","InteractionManagerBaseOptions","MouseEvent","InteractionManagerOptions","InteractionManager","HTMLPreElement","InteractionPluckOptions","HTMLElement","pluckInteractionOptions","enableTokenInteractionsOnWhitespace","enableGutterUtility","lineHoverHighlight","onGutterUtilityClick","onLineClick","onLineEnter","onLineLeave","onLineNumberClick","onTokenClick","onTokenEnter","onTokenLeave","renderGutterUtility","__debugPointerEvents","enableLineSelection","controlledSelection","onLineSelected","onLineSelectionStart","onLineSelectionChange","onLineSelectionEnd"],"sources":["../../src/managers/InteractionManager.d.ts"],"sourcesContent":["import type { AnnotationSide, DiffLineEventBaseProps, DiffTokenEventBaseProps, ExpansionDirections, LineEventBaseProps, MergeConflictResolution, SelectedLineRange, 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 SelectionWriteOptions {\n notify?: boolean;\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 controlledSelection?: 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 gutterUtilityLine;\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 proposedSelectedRange;\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, options?: SelectionWriteOptions): 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 revealUtilityFromGutterPath;\n private placeUtility;\n private placeUtilityFromSelection;\n private showUtilityOnLine;\n private hideUtility;\n private currentSelectionEnds;\n private selectionEnds;\n private selectionPointRowIndex;\n private targetForSelectionPoint;\n private attachDocumentPointerListeners;\n private detachDocumentPointerListeners;\n private clearPointerSession;\n private clearPendingSingleLineState;\n private selectionInfoFromPath;\n private resolveSelectionInfo;\n private selectionPointFromPath;\n private resolveSelectionPoint;\n private resolveSelectionPath;\n private pathFromCoordinates;\n private pathFromEventPath;\n private pathFromElement;\n private pathFromAnnotationSlot;\n private hitTest;\n private getLineIndex;\n private getCurrentSelectionRange;\n private clearProposedSelection;\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 renderGutterUtility?(getHoveredRow: () => GetHoveredLineResult<TMode> | undefined): HTMLElement | null | undefined;\n};\nexport declare function pluckInteractionOptions<TMode extends InteractionManagerMode>({ enableTokenInteractionsOnWhitespace, enableGutterUtility, lineHoverHighlight, onGutterUtilityClick, onLineClick, onLineEnter, onLineLeave, onLineNumberClick, onTokenClick, onTokenEnter, onTokenLeave, renderGutterUtility, __debugPointerEvents, enableLineSelection, controlledSelection, onLineSelected, onLineSelectionStart, onLineSelectionChange, onLineSelectionEnd }: InteractionPluckOptions<TMode>, onHunkExpand?: (hunkIndex: number, direction: ExpansionDirections, expansionLineCountOverride?: number) => unknown, getLineIndex?: GetLineIndexUtility, onMergeConflictActionClick?: (target: MergeConflictActionTarget) => void): InteractionManagerOptions<TMode>;\nexport {};\n//# sourceMappingURL=InteractionManager.d.ts.map"],"mappings":"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"}