@docsvision/webclient
Version:
Type definitions for DocsVision WebClient scripts and extensions.
95 lines (94 loc) • 4.75 kB
TypeScript
import { GenModels } from "@docsvision/webclient/Generated/DocsVision.WebClient.Models";
import { ComboBoxTitle } from "@docsvision/webclient/Helpers/ComboBox/ComboBoxTitle";
import { IEditPopoverProps } from "@docsvision/webclient/Helpers/PopoverHelpers/EditPopover/IEditPopoverProps";
import { Dropdown, DropdownParams } from "@docsvision/webclient/Platform/Dropdown";
import { InputBasedControlImpl, InputBasedControlState } from "@docsvision/webclient/System/InputBasedControlImpl";
import { IBindingResult } from "@docsvision/webclient/System/IBindingResult";
import { CancelableEventArgs } from "@docsvision/webclient/System/CancelableEventArgs";
import { IEventArgs } from "@docsvision/webclient/System/IEventArgs";
import { IValidationResult } from "@docsvision/webclient/System/IValidationResult";
import React from "react";
/** @internal */
export interface IDropdownState extends DropdownParams, InputBasedControlState<string> {
binding: IBindingResult<string>;
onMouseDownEvent: boolean;
passedValidation?: boolean;
isTooltipDisabled?: boolean;
}
export interface DropdownState extends IDropdownState {
}
/** @internal */
export declare type DropdownImplState = IDropdownState;
/** @internal */
export declare class DropdownImpl extends InputBasedControlImpl<string, DropdownParams, IDropdownState> {
/**
* Корневой узел дропдауна
*/
protected el: HTMLElement;
/**
* Сфокусированный элемент
*/
protected focusedElement: GenModels.BindingMetadata;
/**
* Заголовок комбобокса
*/
protected comboboxTitle: ComboBoxTitle;
/**
* Предыдущий сфокусированный элемент (глобально)
*/
protected prevActiveElement: HTMLElement;
protected prevActiveElementEvent: (event: FocusEvent) => void;
static readonly EMPTY_ELEMENT: GenModels.BindingMetadata;
/**
* Родительский модальный элемент (ModalDialog), если такой существует
*/
private parentModal;
constructor(props: DropdownParams, state: IDropdownState);
UNSAFE_componentWillMount(): void;
componentDidMount(): void;
componentWillUnmount(): void;
protected handleDocumentClick: (event?: Event) => void;
protected handleDocumentFocus: (event: FocusEvent) => void;
setValue(value: string, redraw: boolean): void;
protected getTextValue(): string;
getTextValueFor(key: string): string;
protected onDropdownContainerClick(e?: MouseEvent): void;
protected onElementClick(element: GenModels.BindingMetadata): void;
protected onClearValueClick(e: React.MouseEvent): void;
protected onPlaceholderClick(event: any): void;
protected toggleCollapsed: () => CancelableEventArgs<IEventArgs>;
protected expandDropdown: () => CancelableEventArgs<IEventArgs>;
protected collapseDropdown: () => CancelableEventArgs<IEventArgs>;
protected onCloseDropdownTriggered: () => void;
protected isNotSameDropdown: (target: HTMLElement) => boolean;
protected getCssClass(): string;
protected onInputFocus(event: React.FocusEvent): void;
protected onMouseDown(event?: React.MouseEvent): void;
protected onInputBlur(event: React.FocusEvent): void;
protected onValueClick(): void;
validate(params: unknown): IValidationResult;
/**
* При фокусе элемента списка
* @param event Событие фокуса
* @param element Текущий элемент
*/
protected onFocusElement: (event: React.FocusEvent, element: GenModels.BindingMetadata) => void;
/**
* При снятии фокуса у элемента списка
* @param event Событие снятия фокуса
* @param element Текущий элемент
*/
protected onBlurElement: (event: React.FocusEvent, element: GenModels.BindingMetadata) => void;
/**
* При фокусе соседнего элемента в списке
* @param element Текущий элемент
* @param mode Какой из соседних элементов должен получить фокус (предыдущий или следующий)
*/
protected onFocusSiblingElement: (element: GenModels.BindingMetadata, mode: 'prev' | 'next') => void;
protected showEditPopover(popoverOptions?: IEditPopoverProps): Promise<Dropdown>;
protected renderWithText(): JSX.Element;
protected renderInto(props: DropdownParams, container: HTMLElement): void;
protected renderInput(): React.ReactNode;
protected renderPlaceholder(): any;
protected renderPlaceholderEditInPlace(): any;
}