UNPKG

@docsvision/webclient

Version:

Type definitions for DocsVision WebClient scripts and extensions.

94 lines (93 loc) 6.15 kB
import { GenModels } from '@docsvision/webclient/Generated/DocsVision.WebClient.Models'; import { IBoxWithButtonsButtonInfo } from "@docsvision/webclient/Helpers/BoxWithButtons"; import { ModalHost } from '@docsvision/webclient/Helpers/ModalHost'; import { IEditPopoverProps } from "@docsvision/webclient/Helpers/PopoverHelpers/EditPopover/IEditPopoverProps"; import { ITypeaheadProps } from '@docsvision/webclient/Helpers/Typeahead/ITypeaheadProps'; import { ITypeaheadSearchQuery } from "@docsvision/webclient/Helpers/Typeahead/Models/ITypeaheadSearchQuery"; import { ITypeaheadSearchResult } from "@docsvision/webclient/Helpers/Typeahead/Models/ITypeaheadSearchResult"; import { ITypeaheadVariant } from "@docsvision/webclient/Helpers/Typeahead/Models/ITypeaheadVariant"; import { Typeahead } from "@docsvision/webclient/Helpers/Typeahead/Typeahead"; import { DirectorySelectingMode } from '@docsvision/webclient/System/DirectorySelectingMode'; import { IDirectoryFilterChangeEventArgs } from "@docsvision/webclient/System/IDirectoryFilterChangeEventArgs"; import { DirectoryBase, DirectoryBaseParams } from "@docsvision/webclient/System/DirectoryBase"; import { DirectorySelectDialog, IDirectorySelectDialogProps } from "@docsvision/webclient/System/DirectorySelectDialog"; import { InputBasedControlImpl, InputBasedControlState } from "@docsvision/webclient/System/InputBasedControlImpl"; import { IBindingResult } from "@docsvision/webclient/System/IBindingResult"; import { RequestHelper } from "@docsvision/webclient/System/RequestHelper"; import React from "react"; import { IDirectorySelectDialog } from '@docsvision/webclient/System/IDirectorySelectDialog'; /** @internal */ export interface DirectoryBaseState<ValueT extends NodeT | ItemT | NodeT[] | ItemT[], NodeT extends GenModels.IDirectoryItemData, ItemT extends GenModels.IDirectoryItemData> extends DirectoryBaseParams<ValueT, NodeT, ItemT>, InputBasedControlState<ValueT> { binding: IBindingResult<ValueT>; requestHelper: RequestHelper; directoryDialogSelectedValue: ValueT; typeahead: Typeahead; beforeModalSelectedFilterPath: NodeT[]; maximized?: boolean; maximizeButtonEnabled?: boolean; /** Путь для элемента из поиска, отличается от selectedFilterPath тем, что применяется только при закрытии DirectorySelectDialog */ searchFilterPath: NodeT[]; } /** @internal */ export declare abstract class DirectoryBaseImpl<ValueT extends NodeT | ItemT | NodeT[] | ItemT[], NodeT extends GenModels.IDirectoryItemData, ItemT extends GenModels.IDirectoryItemData, ParamsT extends DirectoryBaseParams<ValueT, NodeT, ItemT> = DirectoryBaseParams<ValueT, NodeT, ItemT>, StateT extends DirectoryBaseState<ValueT, NodeT, ItemT> = DirectoryBaseState<ValueT, NodeT, ItemT>> extends InputBasedControlImpl<ValueT, ParamsT, StateT> { static FirstPageSize: number; static NextPageSize: number; static SearchTimeout: number; private services; protected: any; modalHost: ModalHost; constructor(props: ParamsT, state: StateT, services?: any); /** Отрисовка диалога справочника. */ protected abstract renderSelectDialog(props: IDirectorySelectDialogProps<ValueT, NodeT, ItemT> & { ref: any; }): JSX.Element; /** Реализация быстрого поиска. */ protected abstract findItems(typeaheadQuery: ITypeaheadSearchQuery): Promise<ITypeaheadSearchResult>; /** Возвращает путь в справочнике для переданного значения. */ protected abstract getValuePath(value: ValueT): NodeT[]; /** Что является значением контрола - узлы или записи. */ protected abstract getSelectingMode(): DirectorySelectingMode; componentWillUnmount(): void; componentDidUpdate(): void; setValue(value: ValueT, redraw: boolean): void; protected getCssClass(): string; protected getInputTitle(): string; protected showEditPopover(popoverOptions?: IEditPopoverProps): Promise<DirectoryBase<ValueT, NodeT, ItemT, ParamsT, StateT>>; get currentFilterPath(): NodeT[]; get currentFilter(): string | undefined; protected attachTypeahead(typeahead: Typeahead): void; protected onTypeaheadSelected(variant: ITypeaheadVariant): Promise<void>; protected processTypeaheadSelected(variant: ITypeaheadVariant): Promise<void>; protected onDropdownStateChanged(): void; attachDialogComponent: (dialog: DirectorySelectDialog<ValueT, NodeT, ItemT>) => void; showDictionary(): Promise<IDirectorySelectDialog>; hideDictionary(): Promise<void>; protected cancelModal(): void; protected onMaximizeModal(): void; protected onDirectoryDialogNodeSelected(node: ValueT): void; protected onDirectoryDialogSelectButtonClick(): Promise<void>; protected onFilterSelected: (items: NodeT[]) => Promise<void>; protected onSelectedFilterPathChange: (newSelected: NodeT[]) => void; protected onDialogSelectedFilterPathChange: (newSelected: NodeT[]) => void; setSelectedFilterPath(newValue: NodeT[]): Promise<unknown>; setSearchFilterPath: (newValue: NodeT[]) => void; setPredefinedFilter(newValue: NodeT): Promise<IDirectoryFilterChangeEventArgs<NodeT>>; protected onInputChange(event: any): void; get isDictionaryShown(): boolean; protected renderFilter(): React.ReactNode; protected renderFilterBreadcrumbs(): any; protected renderPlaceholder(): JSX.Element; protected getCurrentNode(): NodeT; protected renderTypeaheadHeader(): any; protected renderSelectDialogInternal(): JSX.Element; protected renderInputWithPlaceholder(): React.ReactNode; protected getLastFilterState(): string; protected onButtonBlur(event: React.FocusEvent<any>): void; protected getButtons(): IBoxWithButtonsButtonInfo[]; protected renderTypeaheadInput(): JSX.Element; protected onTypeaheadOpened(): void; protected getTypeaheadProps(): ITypeaheadProps & { ref: any; }; protected renderTypeahead(): JSX.Element; }