///
///
import { DisposableCollection } from '@theia/core';
import { OpenerService, StatefulWidget, WidgetManager, ApplicationShell } from '@theia/core/lib/browser';
import { Message } from '@theia/core/shared/@lumino/messaging';
import { VirtuosoHandle } from '@theia/core/shared/react-virtuoso';
import { ScmFileChange, ScmFileChangeNode } from '../scm-file-change-node';
import { ScmAvatarService } from '@theia/scm/lib/browser/scm-avatar-service';
import { ScmNavigableListWidget } from '../scm-navigable-list-widget';
import * as React from '@theia/core/shared/react';
import { FileService } from '@theia/filesystem/lib/browser/file-service';
import { HistoryWidgetOptions, ScmCommitNode, ScmHistoryListNode, ScmHistorySupport } from './scm-history-constants';
export { HistoryWidgetOptions, ScmCommitNode, ScmHistoryListNode, ScmHistorySupport };
export declare class ScmHistoryWidget extends ScmNavigableListWidget implements StatefulWidget {
protected readonly openerService: OpenerService;
protected readonly shell: ApplicationShell;
protected readonly fileService: FileService;
protected readonly avatarService: ScmAvatarService;
protected readonly widgetManager: WidgetManager;
protected options: HistoryWidgetOptions;
protected singleFileMode: boolean;
private cancelIndicator;
protected listView: ScmHistoryList | undefined;
protected hasMoreCommits: boolean;
protected allowScrollToSelected: boolean;
protected status: {
state: 'loading';
} | {
state: 'ready';
commits: ScmCommitNode[];
} | {
state: 'error';
errorMessage: React.ReactNode;
};
protected readonly toDisposeOnRepositoryChange: DisposableCollection;
protected historySupport: ScmHistorySupport | undefined;
constructor(openerService: OpenerService, shell: ApplicationShell, fileService: FileService, avatarService: ScmAvatarService, widgetManager: WidgetManager);
protected init(): void;
protected refreshOnRepositoryChange(): void;
protected createHistoryOptions(): HistoryWidgetOptions;
protected readonly toDisposeOnRefresh: DisposableCollection;
protected refresh(): void;
protected onAfterAttach(msg: Message): void;
setContent: import("lodash").DebouncedFuncLeading<(options?: HistoryWidgetOptions) => Promise>;
protected doSetContent(options?: HistoryWidgetOptions): Promise;
protected resetState(options?: HistoryWidgetOptions): void;
protected addCommits(options?: HistoryWidgetOptions): Promise;
protected addOrRemoveFileChangeNodes(commit: ScmCommitNode): Promise;
protected addFileChangeNodes(commit: ScmCommitNode, scmNodesArrayIndex: number): Promise;
protected removeFileChangeNodes(commit: ScmCommitNode, scmNodesArrayIndex: number): void;
storeState(): object;
restoreState(oldState: any): void;
protected onDataReady(): void;
protected render(): React.ReactNode;
protected renderHistoryHeader(): React.ReactNode;
protected renderCommitList(): React.ReactNode;
protected readonly loadMoreRows: (index: number) => Promise;
protected doLoadMoreRows(index: number): Promise;
protected readonly renderCommit: (commit: ScmCommitNode) => React.ReactNode;
protected doRenderCommit(commit: ScmCommitNode): React.ReactNode;
protected openDetailWidget(commitNode: ScmCommitNode): Promise;
protected readonly renderFileChangeList: (fileChange: ScmFileChangeNode) => React.ReactNode;
protected doRenderFileChangeList(fileChange: ScmFileChangeNode): React.ReactNode;
protected renderScmItem(change: ScmFileChangeNode, commitSha: string): React.ReactNode;
protected navigateLeft(): void;
protected navigateRight(): void;
protected handleListEnter(): void;
protected openFile(change: ScmFileChange): void;
}
export declare namespace ScmHistoryList {
interface Props {
readonly rows: ScmHistoryListNode[];
readonly hasMoreRows: boolean;
readonly loadMoreRows: (index: number) => Promise;
readonly renderCommit: (commit: ScmCommitNode) => React.ReactNode;
readonly renderFileChangeList: (fileChange: ScmFileChangeNode) => React.ReactNode;
}
}
export declare class ScmHistoryList extends React.Component {
list: VirtuosoHandle | undefined;
protected readonly checkIfRowIsLoaded: (opts: {
index: number;
}) => boolean;
protected doCheckIfRowIsLoaded(opts: {
index: number;
}): boolean;
render(): React.ReactNode;
protected renderRow(index: number): React.ReactNode;
}
//# sourceMappingURL=scm-history-widget.d.ts.map