UNPKG

@docsvision/webclient

Version:

Type definitions for DocsVision WebClient scripts and extensions.

169 lines (168 loc) 10.1 kB
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; }