@docsvision/webclient
Version:
Type definitions for DocsVision WebClient scripts and extensions.
169 lines (168 loc) • 10.1 kB
TypeScript
import { SimpleItemViewContent } from "@docsvision/webclient/BackOffice/SimpleItemViewContent";
import { DepartmentSelectMode } from '@docsvision/webclient/BackOffice/DepartmentSelectMode';
import { IPartnerDirectoryTreeItem } from "@docsvision/webclient/BackOffice/IPartnerDirectoryTreeItem";
import { IPartnerDataLoadingEventArgs } from "@docsvision/webclient/BackOffice/IPartnerDataLoadingEventArgs";
import { PartnerDirectoryItemVisualiser } from "@docsvision/webclient/BackOffice/PartnerDirectoryItemVisualiser";
import { $DepartmentController, $LayoutPartnerController, $LayoutRowController, $LayoutStaffController } from "@docsvision/webclient/Generated/DocsVision.WebClient.Controllers";
import { GenModels } from "@docsvision/webclient/Generated/DocsVision.WebClient.Models";
import { ICustomTreeNodeContentDefaultProps } from "@docsvision/webclient/Helpers/CustomTree/Theme/Default/CustomTreeNodeContentDefault";
import { QuickSearchLogic } from "@docsvision/webclient/Helpers/QuickSearchLogic";
import { LayoutControl } from '@docsvision/webclient/System/BaseControl';
import { $LocationContainerControlServices } from '@docsvision/webclient/System/LocationContainerControl';
import { LoadingState } from "@docsvision/webclient/System/LoadingState";
import { RequestHelper } from "@docsvision/webclient/System/RequestHelper";
import { BasicApiEvent, CancelableApiEvent } from "@docsvision/webclient/System/ApiEvent";
import React from "react";
import { $DeviceType } from "@docsvision/webclient/StandardServices";
/** @internal */
export interface IPartnerSelectDialogSearchPathOptions {
path: GenModels.DepartmentModel[];
notAppendToSelectedFilterPath?: boolean;
}
/** @internal */
export interface IPartnerSelectDialogProps {
partnerSelected: (node: GenModels.EmployeeDataModel | GenModels.DepartmentModel) => void;
searchDelay: number;
onSelect?: () => void;
predefinedFilter: GenModels.DepartmentModel;
selectedFilterPath: GenModels.DepartmentModel[];
onSelectedFilterPathChange?: (newPath: GenModels.DepartmentModel[]) => void;
onSearchFilterPathChange?: (newPath: GenModels.DepartmentModel[]) => void;
itemVisualiser: PartnerDirectoryItemVisualiser;
searchResultsLoading: CancelableApiEvent<IPartnerDataLoadingEventArgs>;
searchResultsLoaded: BasicApiEvent<IPartnerDataLoadingEventArgs>;
departmentMode: DepartmentSelectMode;
parent: LayoutControl;
allowDirectoryEdit: boolean;
selectedPartner: GenModels.EmployeeDataModel | GenModels.DepartmentModel;
isOpen: boolean;
onCancel: () => void;
/** Существует ли кнопка развертывания */
maximizeButtonEnabled?: boolean;
/** Вызывается при попытке развернуть окно */
onMaximize?: () => void;
/** При смене значения на true модальное окно развернётся, при смене в false - свернётся. */
maximized?: boolean;
services: $LayoutPartnerController & $LayoutRowController & $LocationContainerControlServices & $LayoutStaffController & $DepartmentController & $DeviceType;
}
/** @internal */
export interface IPartnerChildrenCacheItem {
items: GenModels.PartnerDirectoryItem[];
totalItemsCount: number;
accessTimestamp: Date;
}
/** @internal */
export interface IPartnerChildrenCache {
[id: string]: IPartnerChildrenCacheItem;
}
/** @internal */
export interface IPartnerSelectedNodesPath {
[departmentId: string]: GenModels.PartnerDirectoryItem;
}
/** @internal */
export interface IPartnerSelectDialogState {
/** Выбранный партнёр */
selectedValue: GenModels.EmployeeDataModel | GenModels.DepartmentModel;
/** Выбранный узел, используется только для навигации с клавиатуры */
selectedNode: GenModels.EmployeeDataModel;
/** Список выбранных узлов с прошлых уровней, используется только для навигации с клавиатуры */
selectedNodesPath: IPartnerSelectedNodesPath;
searchRequestHelper: RequestHelper;
showingSearchResults: boolean;
searchText: string;
searchItems: GenModels.PartnerDirectorySearchItem[];
hasMoreSearchItems: boolean;
searchDebouncer: QuickSearchLogic;
searchMode: GenModels.PartnerSearchMode;
selectedNodeFocused: boolean;
loadChildrenHelper: RequestHelper;
childrenListCache: IPartnerChildrenCache;
initialLoading: boolean;
initialLoadingState: LoadingState;
directoryTimestamp: number;
openActionMenuItem: GenModels.PartnerDirectoryItem | undefined;
openInfoItem: GenModels.PartnerDirectoryItem | undefined;
refreshTokenValue: number;
}
/** @internal */
export declare class PartnerSelectDialog extends React.Component<IPartnerSelectDialogProps, IPartnerSelectDialogState> {
static ChildrenPageSize: number;
static SearchPageSize: number;
private modalHost;
static SimpleItemView:
import("styled-components").StyledComponent<typeof SimpleItemViewContent, any, ICustomTreeNodeContentDefaultProps, never>;
static SimpleItemViewCompact:
import("styled-components").StyledComponent<typeof SimpleItemViewContent, any, ICustomTreeNodeContentDefaultProps, never>;
/** @internal */
state: IPartnerSelectDialogState;
searchInput: HTMLInputElement;
protected readonly rootId = "root";
constructor(props: IPartnerSelectDialogProps);
componentDidMount(): void;
componentWillUnmount(): void;
UNSAFE_componentWillReceiveProps(newProps: IPartnerSelectDialogProps): void;
get selectedPartner(): GenModels.DepartmentModel | GenModels.EmployeeDataModel;
protected onModalKeyDown: (ev: any) => void;
protected onNavigateToFolder(departmentId: string): Promise<{}>;
protected onSelectedFilterPathChange: (newPath: GenModels.DepartmentModel[]) => void;
protected onSelectedFilterMoveBack: () => void;
protected get currentDepartmentId(): string;
protected get currentDepartmentName(): string;
protected get currentChildren(): GenModels.PartnerDirectoryItem[];
protected get currentChildrenCache(): IPartnerChildrenCacheItem;
protected getDepartmentCache(id: string): IPartnerChildrenCacheItem;
protected clearCache(): void;
protected loadChildrenList(departmentId: string, from: number, to: number): Promise<IPartnerDirectoryTreeItem[]>;
private getDepartmentId;
protected onChildrenLoaded(response: GenModels.PartnerTreeLoadResponse, departmentId: string, from: number): void;
protected onReactListLoadRequest: (indexes: number[]) => void;
protected search(query: GenModels.PartnerQuickSearchQuery, reset: boolean): Promise<{}>;
protected onSearchResultLoaded(response: GenModels.PartnerSearchResponse, reset: boolean): void;
attachSearchInput: (elem: HTMLInputElement) => void;
protected onInputKeyUp(ev: React.KeyboardEvent<any>): void;
protected onInputChange(event: any): void;
protected onSearchFilterPathChange(newPath: GenModels.DepartmentModel[]): void;
private resetSearchMode;
private get employeeMode();
private get departmentMode();
private get organizationMode();
protected isUnavailableValue(item: GenModels.PartnerDirectoryItem): boolean;
protected onSelectValue(item: GenModels.PartnerDirectoryItem, searchPathOptions?: IPartnerSelectDialogSearchPathOptions): void;
protected hasChildren(item: GenModels.PartnerDirectoryItem): boolean;
protected onChildrenListItemClick: (item: GenModels.PartnerDirectoryItem) => void;
protected onSearchItemClick: (item: GenModels.PartnerDirectorySearchItem) => void;
protected onItemAccepted: (item: GenModels.PartnerDirectoryItem) => void;
protected onChildrenListItemDoubleClick: (item: GenModels.PartnerDirectoryItem) => void;
protected onChildrenListItemGoInto: (item: GenModels.PartnerDirectoryItem) => void;
protected onSearchItemDoubleClick: (item: GenModels.PartnerDirectorySearchItem) => void;
protected onChildrenListItemSelectSibling: (mode: 'prev' | 'next', index: number, getCollectionData: () => GenModels.PartnerDirectoryItem[]) => void;
protected onSearchPathItemClick: (department: GenModels.DepartmentModel, item: GenModels.PartnerDirectorySearchItem) => void;
protected onToggleSearchMode: () => void;
protected onLoadNextSearchPage: () => Promise<{}>;
protected onLoadNewSearchResults: () => Promise<{}>;
protected onOpenActionMenu: (item: GenModels.PartnerDirectoryItem | GenModels.PartnerDirectorySearchItem) => void;
protected onCloseActionMenu: () => void;
protected renderGoToButton(item: GenModels.PartnerDirectoryItem): JSX.Element;
protected refreshAfterEdit: () => void;
protected onShowInfo: (item: GenModels.PartnerDirectoryItem) => void;
protected onHideInfo: () => void;
protected onEdit: (item: GenModels.PartnerDirectoryItem) => Promise<void>;
protected onDelete: (item: GenModels.PartnerDirectoryItem) => void;
protected getCurrentDepartment(): GenModels.DepartmentModel;
protected onCreateOrganization: () => Promise<void>;
protected onCreateDepartment: () => Promise<void>;
protected onCreateEmployee: () => Promise<void>;
protected stopPropagation: (ev: React.MouseEvent) => void;
protected renderActionButton: (item: GenModels.PartnerDirectoryItem) => JSX.Element;
protected renderActionMenu: (item: GenModels.PartnerDirectoryItem) => JSX.Element;
renderSearchItem: (index: number, key: string) => JSX.Element;
renderChildrenListItem: (key: number | string, item: GenModels.PartnerDirectoryItem, index: number) => JSX.Element;
renderLoadingItem: (index: number, key: number | string) => JSX.Element;
renderEmptyItem: (index: number, key: number | string) => JSX.Element;
renderChildrenListItems(): JSX.Element;
renderSearchItems(): JSX.Element;
renderItems(): JSX.Element;
/** @internal */
renderDialog(): React.ReactNode;
render(): JSX.Element;
}