@docsvision/webclient
Version:
Type definitions for DocsVision WebClient scripts and extensions.
94 lines (93 loc) • 6.15 kB
TypeScript
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;
}