@docsvision/webclient
Version:
Type definitions for DocsVision WebClient scripts and extensions.
151 lines (150 loc) • 7.74 kB
TypeScript
import { FileListAttachedElements } from "@docsvision/webclient/BackOffice/FileListAttachElements";
import { LinkItem } from "@docsvision/webclient/BackOffice/LinkItem";
import { LinkSelectionItem } from '@docsvision/webclient/BackOffice/LinkSelectionItem';
import { LoadingLinkItem } from "@docsvision/webclient/BackOffice/LoadingLinkItem";
import { LinksParams } from "@docsvision/webclient/BackOffice/Links";
import { GenModels } from "@docsvision/webclient/Generated/DocsVision.WebClient.Models";
import { Popover } from "@docsvision/webclient/Helpers/PopoverHelpers/Popover";
import { PerformOnce } from "@docsvision/webclient/Legacy/Utils";
import { PanelImpl, IPanelState } from '@docsvision/webclient/Platform/PanelImpl';
import { IBindingResult } from '@docsvision/webclient/System/IBindingResult';
import { RequestHelper } from "@docsvision/webclient/System/RequestHelper";
import React from "react";
import { $LinksSearchCards } from '@docsvision/webclient/BackOffice/$LinksSearchCardsService';
import { $LayoutLinksController } from '@docsvision/webclient/Generated/DocsVision.WebClient.Controllers';
import { $CardTimestamp, $CardId } from '@docsvision/webclient/System/LayoutServices';
/** @internal */
export interface LinksState extends LinksParams, IPanelState {
modifiedRows: string[];
sourceLayoutMode: string;
model: GenModels.LinksDataModel;
bindingInfo: GenModels.SimpleBindingInfo;
binding: IBindingResult<any>;
createLinkBinding: IBindingResult<any>;
addLinkBinding: IBindingResult<any>;
addUrlBinding: IBindingResult<any>;
addFileBinding: IBindingResult<any>;
deleteLinkBinding: IBindingResult<any>;
editLinkBinding: IBindingResult<any>;
loadingLinks: LoadingLinkItem[];
totalLinksCount: number;
linksLoaded: boolean;
isAddUrlDialogShown: boolean;
editOperationAllowed: boolean;
lastMaximized: boolean;
}
/** @internal */
export declare type LinksImplState = LinksState;
/** @internal */
export declare class LinksImpl extends PanelImpl<LinksParams, LinksState> {
fileUploadAttach: FileListAttachedElements;
requestHelper: RequestHelper;
headerSelectionCheckbox: HTMLInputElement;
addLinkOnce: PerformOnce;
linkInfoPopover: Popover;
constructor(props: LinksParams, state: LinksState);
UNSAFE_componentWillMount(): void;
componentDidMount(): void;
componentDidUpdate(preProps: any, prevState: any, snapshot: any): void;
componentWillUnmount(): void;
private attachLinkInfoPopover;
private attachHeaderSelectionCheckbox;
protected getCssClass(): string;
protected isBatchModeAvailable(): boolean;
protected getColumnsLocalStorageKey(): string;
protected initFileUpload: (attach: FileListAttachedElements) => void;
protected openFileSelectDialog(): Promise<void>;
protected onFilesAdded(data: any): Promise<void>;
protected setFiles(files: File[]): Promise<void>;
protected onAddExistingCardLink: (services: $LinksSearchCards & $LayoutLinksController & $CardId & $CardTimestamp, callback?: Function) => Promise<any>;
protected closeAllMenus(): void;
set model(model: GenModels.LinksDataModel);
set isExpanded(val: boolean);
set commandBarExpanded(val: boolean);
loadLinksModel(model: GenModels.LinksDataModel, force?: boolean, callback?: Function): Promise<unknown>;
protected getCardCreateLink(cardTypeId: string, kindId: string, linkTypeId: string): string;
protected onDocumentClick(ev: any): void;
protected onLinkClick(linkItem: LinkItem, ev?: React.MouseEvent): void;
protected processBatchModeEnablingRowClick(linkItem: LinkItem, ev: React.MouseEvent): boolean;
protected onRowClick(linkItem: LinkItem, ev: React.MouseEvent): void;
protected makeLinkUrl(url: string): string;
onHeaderClick(): void;
protected onCollapsed(): void;
protected onExpanded(): void;
onCommandBarClick(ev?: React.MouseEvent<any>): void;
onAddNewFileClick: (ev?: React.MouseEvent) => void;
onAddNewUrlClick: (ev?: React.MouseEvent) => void;
addNewUrl: (url: string, linkType: string) => Promise<void>;
closeAddNewUrlDialog: () => void;
onAddNewCardLinkClick(ev?: React.MouseEvent<any>): Promise<void>;
onAddExistingCardLinkClick(ev?: React.MouseEvent): void;
setLastMaximized: (value: any) => void;
protected onViewFileMenuClick(linkItem: LinkItem): void;
protected onFollowLinkClick(linkItem: LinkItem): void;
onDeleteMenuClick(linkItem: LinkItem): void;
protected onDeleteFileMenuClick(linkItem: LinkItem): void;
protected onLinkMenuClick(linkItem: LinkItem): void;
protected getLinkIconClass(linkItem: LinkItem): "dv-ico icon-spin loader-animate" | "dv-ico ico-dv-card" | "dv-ico ico-file" | "dv-ico ico-url";
protected afterLinkAdded: () => Promise<string[]>;
protected onDownloadFile(linkItem: LinkItem): void;
protected getShowFilesForLinksTypesIds: () => string[];
protected hideInfoPopover(linkItem: LinkItem): void;
protected showInfoPopover(linkItem: LinkItem): void;
protected updateInfoPopopverPosition: (ev: MouseEvent, element: Popover) => void;
protected onLinkInfoEdited(linkItem: LinkItem): void;
protected preventDisclosureToggle: (event: React.MouseEvent<any>) => void;
protected onShowColumnSettingsDialog: () => Promise<void>;
protected toggleBatchMode: () => void;
toggleItemSelection: (link: LinkItem) => void;
protected onChangeItemSelection: (link: LinkItem, ev: React.ChangeEvent<HTMLInputElement>) => void;
protected onChangeHeaderSelectionCheckbox: (ev: React.ChangeEvent<HTMLInputElement>) => void;
selectAll(): Promise<unknown>;
clearSelection(): Promise<unknown>;
setSelection(selection: LinkSelectionItem[]): Promise<unknown>;
protected onAttachRow(linkItem: LinkItem, elem: HTMLElement): void;
protected createLinkItemKey: (linkItem: LinkItem) => string;
protected renderFileUploadForm(attach: FileListAttachedElements): JSX.Element;
protected getLinksCount(): number;
protected renderHeader(): JSX.Element;
protected renderLinksTable(): JSX.Element;
protected renderLinksTableRow({ prevLink, link, nextLink }: {
prevLink: LinkItem;
link: LinkItem;
nextLink: LinkItem;
}, options: {
batchSelectionColumnWidth: string;
kindColumnWidth: string;
infoColumnWidth: string;
settingsColumnWidth: string;
}): JSX.Element;
protected renderLinkDescription(link: LinkItem): JSX.Element;
protected renderLinksTableLoadingRow(link: LoadingLinkItem, options: {
batchSelectionColumnWidth: string;
kindColumnWidth: string;
infoColumnWidth: string;
settingsColumnWidth: string;
}): JSX.Element;
protected noLinksExists(): boolean;
protected renderEasyLinksTable(): JSX.Element;
protected renderEasyLinksTableRow(link: LinkItem, options: {
infoColumnWidth: string;
linksCount: number;
}): JSX.Element;
protected renderEasyLinksTableLoadingRow(link: LoadingLinkItem, options: {
infoColumnWidth: string;
linksCount: number;
}): JSX.Element;
protected renderLinkItemUnion({ prevLink, link, nextLink }: {
prevLink: LinkItem;
link: LinkItem;
nextLink: LinkItem;
}): JSX.Element;
protected renderPlaceholders(): any[];
protected getLoaderWidth(i: number): number;
protected onMenuClose(linkItem: LinkItem): void;
protected renderSettingsMenu(linkItem: LinkItem): JSX.Element;
renderControl(): JSX.Element;
openFilePreview(linkItem: LinkItem): void;
getLinkUrl(linkItem: LinkItem): string;
onToggleRowClass(link: LinkItem, style: string): void;
}