UNPKG

@docsvision/webclient

Version:

Type definitions for DocsVision WebClient scripts and extensions.

204 lines (203 loc) 14 kB
import { SimpleItemViewContent } from "@docsvision/webclient/BackOffice/SimpleItemViewContent"; import { GenModels } from '@docsvision/webclient/Generated/DocsVision.WebClient.Models'; import { CommonModalDialogHost } from '@docsvision/webclient/Helpers/ModalDialog/CommonModalDialogHost'; import { QuickSearchLogic } from "@docsvision/webclient/Helpers/QuickSearchLogic"; import { DirectorySelectingMode } from '@docsvision/webclient/System/DirectorySelectingMode'; import { IDirectoryChildrenLoadResponse, IDirectoryItem, IDirectorySearchItem, IDirectorySearchResponse } from '@docsvision/webclient/System/DirectoryServerModels'; import { LoadingState } from "@docsvision/webclient/System/LoadingState"; import { RequestHelper } from "@docsvision/webclient/System/RequestHelper"; import React from "react"; import { IDirectorySelectDialog } from '@docsvision/webclient/System/IDirectorySelectDialog'; /** @internal */ export interface IDirectorySelectDialogSearchPathOptions<NodeT> { path: NodeT[]; notAppendToSelectedFilterPath?: boolean; } /** @internal */ export interface IDirectorySelectDialogProps<ValueT extends NodeT | ItemT | NodeT[] | ItemT[], NodeT extends GenModels.IDirectoryItemData, ItemT extends GenModels.IDirectoryItemData> { valueSelected: (node: ValueT) => void; searchDelay: number; onSelect?: () => void; predefinedFilter: NodeT; selectedFilterPath: NodeT[]; onSelectedFilterPathChange?: (newPath: NodeT[]) => void; onSearchFilterPathChange?: (newPath: NodeT[]) => void; selectingNodesMode: DirectorySelectingMode; selectedValue: ValueT; className?: string; isOpen: boolean; onCancel: () => void; /** Существует ли кнопка развертывания */ maximizeButtonEnabled?: boolean; /** Вызывается при попытке развернуть окно */ onMaximize?: () => void; /** При смене значения на true модальное окно развернётся, при смене в false - свернётся. */ maximized?: boolean; services?: any; dataTestId?: string; } /** @internal */ export interface IDirectoryChildrenCacheItem<DataT extends GenModels.IDirectoryItemData> { items: IDirectoryItem<DataT>[]; totalItemsCount: number; accessTimestamp: Date; } /** @internal */ export interface IDirectoryChildrenCache<DataT extends GenModels.IDirectoryItemData> { [id: string]: IDirectoryChildrenCacheItem<DataT>; } /** @internal */ export interface IDirectorySelectedNodesPath<DataT extends GenModels.IDirectoryItemData> { [departmentId: string]: IDirectoryItem<DataT>; } /** @internal */ export interface IDirectorySelectDialogState<ValueT extends NodeT | ItemT | NodeT[] | ItemT[], NodeT extends GenModels.IDirectoryItemData, ItemT extends GenModels.IDirectoryItemData> { /** Выбранный партнёр */ selectedValue: ValueT; /** Выбранный узел, используется только для навигации с клавиатуры */ selectedNode: NodeT | ItemT; /** Список выбранных узлов с прошлых уровней, используется только для навигации с клавиатуры */ selectedNodesPath: IDirectorySelectedNodesPath<NodeT | ItemT>; searchRequestHelper: RequestHelper; showingSearchResults: boolean; searchText: string; searchItems: IDirectorySearchItem<NodeT, NodeT | ItemT>[]; hasMoreSearchItems: boolean; searchDebouncer: QuickSearchLogic; selectedNodeFocused: boolean; loadChildrenHelper: RequestHelper; childrenListCache: IDirectoryChildrenCache<NodeT | ItemT>; initialLoading: boolean; initialLoadingState: LoadingState; directoryTimestamp: number; } /** @internal */ export declare abstract class DirectorySelectDialog<ValueT extends NodeT | ItemT | NodeT[] | ItemT[], NodeT extends GenModels.IDirectoryItemData, ItemT extends GenModels.IDirectoryItemData, PropsT extends IDirectorySelectDialogProps<ValueT, NodeT, ItemT> = IDirectorySelectDialogProps<ValueT, NodeT, ItemT>, StateT extends IDirectorySelectDialogState<ValueT, NodeT, ItemT> = IDirectorySelectDialogState<ValueT, NodeT, ItemT>> extends React.Component<PropsT, StateT> implements IDirectorySelectDialog { static ChildrenPageSize: number; static SearchPageSize: number; protected modalHost: CommonModalDialogHost; static SimpleItemView: import("styled-components").StyledComponent<typeof SimpleItemViewContent, any, import("D:/BuildAgent/work/43698d70d905217f/Bin/Helpers/CustomTree/Theme/Default/CustomTreeNodeContentDefault").ICustomTreeNodeContentDefaultProps, never>; static SimpleItemViewCompact: import("styled-components").StyledComponent<typeof SimpleItemViewContent, any, import("D:/BuildAgent/work/43698d70d905217f/Bin/Helpers/CustomTree/Theme/Default/CustomTreeNodeContentDefault").ICustomTreeNodeContentDefaultProps, never>; /** @internal */ state: StateT; searchInput: HTMLInputElement; protected readonly rootId = "root"; constructor(props: PropsT); protected abstract itemHasChildren(item: IDirectoryItem<NodeT | ItemT>): boolean; protected abstract itemIsNode(item: IDirectoryItem<NodeT | ItemT>): boolean; protected abstract getSearchItemDisplayName(item: IDirectorySearchItem<NodeT, NodeT | ItemT>): string; protected abstract getSearchItemIconClassName(item: IDirectorySearchItem<NodeT, NodeT | ItemT>): string; protected abstract getSearchItemTooltip(item: IDirectorySearchItem<NodeT, NodeT | ItemT>): string; protected abstract getItemDisplayName(item: IDirectoryItem<NodeT | ItemT>): string; protected abstract getItemIconClassName(item: IDirectoryItem<NodeT | ItemT>): string; protected abstract getItemTooltip(item: IDirectoryItem<NodeT | ItemT>): string; protected abstract loadChildrenList(nodeId: string, nodeType: GenModels.DirectoryDataType, from: number, to: number): Promise<IDirectoryChildrenLoadResponse<NodeT | ItemT>>; protected abstract search(searchText: string, nodeId: string, nodeType: GenModels.DirectoryDataType, maxCount: number, skip: number, reset: boolean): Promise<IDirectorySearchResponse<NodeT, NodeT | ItemT>>; componentDidMount(): void; componentWillUnmount(): void; UNSAFE_componentWillReceiveProps(newProps: IDirectorySelectDialogProps<ValueT, NodeT, ItemT>): void; cancel(): void; accept(): void; protected isItemAllowedToAccept(item: IDirectoryItem<NodeT | ItemT>): boolean; get selectedValue(): ValueT; protected loadChildrenListInternal(nodeId: string, nodeType: GenModels.DirectoryDataType, from: number, to: number): Promise<unknown>; protected searchInternal(searchText: string, nodeId: string, nodeType: GenModels.DirectoryDataType, maxCount: number, skip: number, reset: boolean): Promise<unknown>; protected onModalKeyDown: (ev: any) => void; protected onNavigateToFolder(nodeId: string, nodeType: GenModels.DirectoryDataType): Promise<{}>; protected onSelectedFilterPathChange(newPath: NodeT[]): void; protected onSelectedFilterMoveBack(): void; protected get currentNodeId(): string; protected get currentNodeType(): GenModels.DirectoryDataType; protected get currentChildren(): IDirectoryItem<NodeT | ItemT>[]; protected get currentChildrenCache(): IDirectoryChildrenCacheItem<NodeT | ItemT>; protected getNodeCache(id: string): IDirectoryChildrenCacheItem<NodeT | ItemT>; protected clearCache(): void; protected onChildrenLoaded(response: IDirectoryChildrenLoadResponse<NodeT | ItemT>, departmentId: string, from: number, to: number): void; protected onReactListLoadRequest: (indexes: number[]) => void; protected onSearchResultLoaded(response: IDirectorySearchResponse<NodeT, NodeT | ItemT>, reset: boolean): void; protected attachSearchInput(elem: HTMLInputElement): void; protected onInputKeyUp(ev: React.KeyboardEvent<any>): void; protected onInputChange(event: any): void; protected onSearchFilterPathChange(newPath: NodeT[]): void; protected resetSearchMode(): Promise<{}>; protected get selectingItemsAndNodesMode(): boolean; protected get selectingOnlyItemsMode(): boolean; protected get selectingOnlyNodesMode(): boolean; protected onDialogAccept(): void; protected onDialogCancel(): void; protected onSelectValue(item: IDirectoryItem<NodeT | ItemT>, searchPathOptions?: IDirectorySelectDialogSearchPathOptions<NodeT>): void; protected processSelectValue(item: IDirectoryItem<NodeT | ItemT>, searchPathOptions?: IDirectorySelectDialogSearchPathOptions<NodeT>): void; protected onChildrenListItemClick(item: IDirectoryItem<NodeT | ItemT>, ev: React.MouseEvent<any>): void; protected onChildrenListItemFocus(item: IDirectoryItem<NodeT | ItemT>, ev: React.FocusEvent<any>): void; protected onSearchItemClick(item: IDirectorySearchItem<NodeT, NodeT | ItemT>, ev: React.MouseEvent<any>): void; protected onSearchItemFocus(item: IDirectorySearchItem<NodeT, NodeT | ItemT>, ev: React.FocusEvent<any>): void; protected onChildrenListItemKeyDown(item: IDirectoryItem<NodeT | ItemT>, ev: React.KeyboardEvent<unknown>): boolean; protected onChildrenListItemDoubleClick(item: IDirectoryItem<NodeT | ItemT>, ev: React.MouseEvent<unknown>): boolean; protected onSearchItemKeyDown(item: IDirectorySearchItem<NodeT, NodeT | ItemT>, ev: React.KeyboardEvent<unknown>): boolean; protected onSearchItemDoubleClick(item: IDirectorySearchItem<NodeT, NodeT | ItemT>, ev: React.MouseEvent<unknown>): boolean; protected onChildrenListItemMoveForward(item: IDirectoryItem<NodeT | ItemT>): void; protected onChildrenListItemGoInto(item: IDirectoryItem<NodeT | ItemT>): void; protected onSearchItemMoveForward(item: IDirectorySearchItem<NodeT, NodeT | ItemT>): void; protected onChildrenListItemSelectSibling(mode: 'prev' | 'next', index: number, getCollectionData: () => IDirectoryItem<NodeT | ItemT>[]): void; protected onSearchPathItemClick(clickedNode: NodeT, searchItem: IDirectorySearchItem<NodeT, NodeT | ItemT>): void; protected onLoadNextSearchPage(): Promise<unknown>; protected onLoadNewSearchResults(): Promise<unknown>; protected isGoToButtonActive(item: IDirectoryItem<NodeT | ItemT>): boolean; protected getGoToButtonTitle(item: IDirectoryItem<NodeT | ItemT>): string; protected isGoToButtonVisible(item: IDirectoryItem<NodeT | ItemT>): boolean; protected renderGoToButton(item: IDirectoryItem<NodeT | ItemT>): JSX.Element; protected reload(): void; protected getCurrentNode(): NodeT; protected stopPropagation: (ev: React.MouseEvent) => void; protected findSelected(items: IDirectoryItem<ItemT | NodeT>[]): IDirectoryItem<NodeT | ItemT>; protected isItemSelected(item: IDirectoryItem<ItemT | NodeT>): boolean; protected onItemListMouseWheel(ev: React.MouseEvent): void; protected renderSearchItem(index: number, key: string): JSX.Element; protected renderSearchItemBreadcrumbsRow(item: IDirectorySearchItem<NodeT, NodeT | ItemT>): JSX.Element; protected renderSearchItemNameRow(item: IDirectorySearchItem<NodeT, NodeT | ItemT>): JSX.Element; protected renderActionButton: (item: IDirectoryItem<NodeT | ItemT>) => any; protected renderActionMenu: (item: IDirectoryItem<NodeT | ItemT>) => any; protected renderSearchItemPath(item: IDirectorySearchItem<NodeT, NodeT | ItemT>): any; protected renderSearchItemName(item: IDirectorySearchItem<NodeT, NodeT | ItemT>): JSX.Element; protected getMatchedPropertyNameTranslation(item: IDirectorySearchItem<NodeT, NodeT | ItemT>): string; protected renderSearchItemMatchedPropertyRow(item: IDirectorySearchItem<NodeT, NodeT | ItemT>): JSX.Element; protected renderSearchItemContentView(item: IDirectorySearchItem<NodeT, NodeT | ItemT>, index: number): JSX.Element; protected renderSearchItemContent(item: IDirectorySearchItem<NodeT, NodeT | ItemT>, index: number): JSX.Element; protected renderItemName(item: IDirectoryItem<NodeT | ItemT>): JSX.Element; protected renderItemNameRow(item: IDirectoryItem<NodeT | ItemT>): JSX.Element; protected renderChildrenListItemView(item: IDirectoryItem<NodeT | ItemT>, index: number): JSX.Element; protected renderChildrenListItem(key: number | string, item: IDirectoryItem<NodeT | ItemT>, index: number): JSX.Element; protected renderLoadingItem(index: number, key: number | string): JSX.Element; protected renderEmptyItem(index: number, key: number | string): JSX.Element; protected renderChildrenInfiniteScrollList(): JSX.Element; protected renderChildrenListItems(): JSX.Element; protected renderSearchInfiniteScrollList(): JSX.Element; protected renderSearchItems(): JSX.Element; protected renderItems(): JSX.Element; protected renderDialogBreadcrumbs(): any; protected renderDialogBreadcrumbsPanel(): JSX.Element; protected renderSearchModeToggle(): any; protected getSearchInputClassName(): string; protected getSearchInputPlaceholder(): string; protected renderSearchInput(): JSX.Element; protected renderSearchInputCell(): JSX.Element; protected renderSearchLoadingIcon(): JSX.Element; protected renderSearchResetButton(): JSX.Element; protected renderInitialLoading(): JSX.Element; protected renderSearchInputRow(): JSX.Element; /** @internal */ protected renderDialogContent(): React.ReactNode; protected renderExtraDialogButtons(): any; protected isDialogSelectButtonEnabled(): boolean; protected renderDialogSelectButtonName(): string; protected renderDialogSelectButton(): JSX.Element; protected renderDialogCancelButton(): JSX.Element; protected renderDialogExtraButtonsSeparator(): JSX.Element; protected renderButtonsPanel(): JSX.Element; protected getDialogHeader(): JSX.Element; render(): JSX.Element; }