@docsvision/webclient
Version:
Type definitions for DocsVision WebClient scripts and extensions.
151 lines (150 loc) • 7.48 kB
TypeScript
import { FileListAttachedElements } from "@docsvision/webclient/BackOffice/FileListAttachElements";
import { FileListItem } from "@docsvision/webclient/BackOffice/FileListItem";
import { FileListControlParams } from "@docsvision/webclient/BackOffice/FileListControl";
import { FileListControlLogic } from "@docsvision/webclient/BackOffice/FileListControlLogic";
import { FileSign } from '@docsvision/webclient/BackOffice/FileSign';
import { GenModels } from "@docsvision/webclient/Generated/DocsVision.WebClient.Models";
import { IFileSignInfo } from "@docsvision/webclient/Legacy/IFileSingInfo";
import { BaseControlImpl, BaseControlImplState } from "@docsvision/webclient/System/BaseControlImpl";
import { IRealTimeCommunicationMessage } from "@docsvision/webclient/System/IRealTimeCommunicationMessage";
import React from "react";
import { ControlSelector } from '@docsvision/webclient/Helpers/ControlSelector/ControlSelector';
import { RequestHelper } from '@docsvision/webclient/System/RequestHelper';
import { LayoutControl } from '@docsvision/webclient/System/BaseControl';
import { FileListFormType } from '@docsvision/webclient/BackOffice/FileListFormType';
import { AdaptiveMenuBar } from "@docsvision/webclient/Helpers/Menu/AdaptiveMenuBar";
/** @internal */
export interface FileListControlState extends BaseControlImplState, FileListControlParams {
fileListOperationModels: GenModels.ControlModel[];
fileListOperations: LayoutControl[];
logic: FileListControlLogic;
autoUpload: boolean;
/** Загружены ли оставшиеся файлы в данный момент */
isLeftFilesLoaded: boolean;
childCommandBarExpanded: boolean;
}
export declare type FileListImplState = FileListControlState;
export declare const WEB_DAV_FILE_CLOSED_MESSAGE_TYPE = "FileClosed";
export declare const WEB_DAV_FILE_OPENED_FOR_READING_MESSAGE_TYPE = "FileOpenForReading";
export declare const WEB_DAV_FILE_OPENED_FOR_EDITING_MESSAGE_TYPE = "FileOpenForWriting";
export declare const FILE_CHANGED_AND_SAVED_MESSAGE_TYPE = "NewFileVersionAdded";
export interface ICardOpenedByWebDavMessage {
CardId: string;
FileId: string;
FileName: string;
}
export interface ICardChangedByWebDavMessage {
OwnerCardId: string;
}
export interface ICardOpenedByWebDavMessage {
CardId: string;
FileId: string;
FileName: string;
}
/** Сервис для переопределения реализации FileListLogic */
export interface IFileListOptions {
getFileListLogic?(params: FileListControlParams): FileListControlLogic;
}
export interface ISortFilesOption {
displayString: string;
key: GenModels.SortingFiles;
}
export declare type $FileListOptions = {
fileListOptions?: IFileListOptions;
};
export declare const $FileListOptions: string | ((model?: $FileListOptions) => IFileListOptions);
/** @internal */
export declare class FileListControlImpl extends BaseControlImpl<FileListControlParams, FileListControlState> {
mainAttach: FileListAttachedElements;
extraAttach: FileListAttachedElements;
signButton: HTMLElement;
viewSignButton: HTMLElement;
fileSignLogic: FileSign;
fileControlContainer: HTMLElement;
dropZoneContainer: HTMLElement;
fileTableMain: HTMLElement;
fileTableExtra: HTMLElement;
dragCounter: number;
requestHelper: RequestHelper;
filesHeader: HTMLElement;
wasToggled: boolean;
sortingLocalStorageKey: string;
sortingMenu: AdaptiveMenuBar;
get logic(): FileListControlLogic;
constructor(props: FileListControlParams, state: FileListControlState);
UNSAFE_componentWillMount(): void;
componentDidMount(): void;
componentWillUnmount(): void;
getOperations(children: React.ReactNode): GenModels.ControlModel[];
init(): Promise<void>;
registerFilesInService(files: FileListItem[]): void;
protected onDocumentChangedByWebdav(msg: IRealTimeCommunicationMessage<ICardChangedByWebDavMessage>): void;
protected onDocumentChangedAndSavedByWebdav: (msg: IRealTimeCommunicationMessage<ICardOpenedByWebDavMessage>) => void;
protected getCssClass(): string;
get isEditMode(): boolean;
protected getFilesSignInfo(): IFileSignInfo[];
set extraFilesExpanded(val: boolean);
set fileCommandBarExpanded(val: boolean);
/** @deprecated */
get isLeftFilesLoaded(): boolean;
set isLeftFilesLoaded(val: boolean);
set isLeftFilesLoading(val: any);
set mainFilesExpanded(val: boolean);
set signCommandBarExpanded(val: boolean);
renderUploadForm(attach: FileListAttachedElements, action: string, main: boolean, type: FileListFormType, fileItem?: FileListItem, accept?: string): JSX.Element;
private sortFiles;
private compareFileName;
private compareFileTime;
protected onDropzoneClick(): void;
protected renderEditModeTitle(mainFiles: boolean): JSX.Element;
protected renderEditModeCommandBar(): JSX.Element;
protected onDocumentClick(ev: any): void;
protected onDragEnter(ev: React.DragEvent<any>): void;
protected onDragLeave(ev: any): void;
protected onDrop(ev: any): void;
onToggleTableClick(main: boolean): void;
onCommandBarButtonClick(ev?: React.MouseEvent<any>): void;
onIconFolderClick(ev?: React.MouseEvent<any>): void;
onToggleCommandBarClick(ev?: React.MouseEvent<any>): void;
onAddClick(main: boolean, ev?: React.MouseEvent<any>): void;
protected attachFileControlContainer(elem: HTMLInputElement): void;
protected attachDropZoneContainer(elem: HTMLInputElement): void;
protected attachFileTableMain(elem: HTMLInputElement): void;
protected attachFileTableExtra(elem: HTMLInputElement): void;
protected attachSignButton(element: HTMLElement): void;
protected attachViewSignButton(element: HTMLElement): void;
protected attachOperation: (selector: ControlSelector) => Promise<void>;
protected onSignButtonClick(ev: React.MouseEvent<any>): void;
onToggleSignPanelClick(ev?: React.MouseEvent<any>): void;
protected renderViewModeTitle(mainFiles: boolean): JSX.Element;
onHeaderClick: (e?: any) => void;
protected onCollapsed(): void;
protected onExpanded(): void;
onToggleRowClass(fileItem: FileListItem, style: string): void;
set isExpanded(value: boolean);
attachHeader: (elem: HTMLElement) => void;
protected renderHeaderTitle(): JSX.Element;
private getHeaderTitle;
private getFolderButtonTitle;
protected renderViewModeCommandBar(): JSX.Element;
protected renderViewModeSignPanel(): JSX.Element;
protected renderSortingOption(): JSX.Element;
selectSorting(sortOption: ISortFilesOption): void;
openSortingMenu: () => void;
closeSortingMenu: () => void;
toggleSortingMenu: () => void;
protected onSortMenuKeyDown: (event: React.KeyboardEvent) => void;
protected renderViewModeFilesHeader(): JSX.Element;
selectFile(file: FileListItem): void;
highlightSelectedFile(): void;
protected renderViewModeFiles(main: boolean): JSX.Element;
protected renderPlaceholders(): any[];
protected getLoaderWidth(i: number): number;
protected changeFileTypeAllowed(isMain: boolean): boolean;
protected onDropFileItem(e: any): Promise<void>;
protected renderViewModeMain(): JSX.Element;
protected renderViewModeExtra(): JSX.Element;
protected renderDropZone(): JSX.Element;
protected renderDropZoneContainer(): JSX.Element;
renderControl(): JSX.Element;
}