@docsvision/webclient
Version:
Type definitions for DocsVision WebClient scripts and extensions.
103 lines (102 loc) • 4.99 kB
TypeScript
import { CardKindParams } from "@docsvision/webclient/BackOffice/CardKind";
import { CardKindTreeNodeModel } from "@docsvision/webclient/BackOffice/CardKindTreeNodeModel";
import { GenModels } from "@docsvision/webclient/Generated/DocsVision.WebClient.Models";
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 { InputBasedControlImpl, InputBasedControlState } from "@docsvision/webclient/System/InputBasedControlImpl";
import { RequestHelper } from "@docsvision/webclient/System/RequestHelper";
import { SimpleEvent } from "@docsvision/webclient/System/SimpleEvent";
import React from "react";
/** @internal */
export interface CardKindState extends CardKindParams, InputBasedControlState<GenModels.CardKindModel> {
requestHelper: RequestHelper;
isLoading: boolean;
/** cardKindsTree и cardKindsList это всегда одна и та же модель, но в одном случае она древовидна, а в другом сплющенная */
cardKindsTree: CardKindTreeNodeModel[];
/** cardKindsTree и cardKindsList это всегда одна и та же модель, но в одном случае она древовидна, а в другом сплющенная */
cardKindsList: CardKindTreeNodeModel[];
selectKindModalOpen: boolean;
displayIcon: boolean;
}
/** @internal */
export declare class CardKindImpl extends InputBasedControlImpl<GenModels.CardKindModel, CardKindParams, CardKindState> {
protected onLoadEvent: SimpleEvent<any>;
protected typeahead: Typeahead;
constructor(props: CardKindParams, state: CardKindState);
/**
* Загружаем дерево с видами
*/
protected loadCardKindsTree(): Promise<CardKindTreeNodeModel[]>;
/**
* Загружаем дерево с видами и сохраняем его в контроле
*/
protected loadAndApplyCardKindsTree: () => void;
/**
* Текстовое значение выбранного вида
*/
protected getTextValue(): string;
/**
* Заголовок выбранного вида
*/
protected getValueTitle(): string;
protected getCssClass(): string;
/**
* Список элементов для выпадающего списка с автодополнением
*/
protected findItems: (typeaheadQuery: ITypeaheadSearchQuery) => Promise<ITypeaheadSearchResult>;
/**
* Доступен ли вид карточки
*/
protected isCardKindAvailable: (cardKind: CardKindTreeNodeModel, notAvailableProperty?: "notAvailable" | "notSelectable") => boolean;
/**
* При выборе вида в списке с автодополнением
*/
protected onSelected: (variant: ITypeaheadVariant) => void;
/**
* Показать модальное окно с выбором вида
*/
protected showSelectKindModal: () => void;
/**
* Скрыть модальное окно с выбором вида
*/
protected hideSelectKindModal: () => void;
/**
* Конвертирует узел из дерева видов в модель контрола (например, для установки значения при выборе в дереве)
*/
protected convertCardKindTreeNodeToModel: (node: CardKindTreeNodeModel) => GenModels.CardKindModel;
/**
* При выборе узла в дереве видов
*/
protected onCardKindTreeNodeSelect: (cardKind: CardKindTreeNodeModel) => void;
/**
* При вводе в инпут с автодополнением
* @param ev Событие клавиатуры
*/
protected onInputKeyDown(ev: React.KeyboardEvent<any>): void;
protected onModalKeyDown(ev: React.KeyboardEvent<any>): void;
private attachTypeahead;
/**
* Куда рендерим контрол
* @param props Свойства
* @param container Контейнер
*/
protected renderInto(props: CardKindParams, container: HTMLElement): void;
/**
* Отрисовывание контрола
*/
renderControl(): {};
/**
* Отрисовывание контрола в режиме просмотра
*/
protected renderWithText(): JSX.Element;
/**
* Отрисовывание контрола в режиме редактирования
*/
protected renderInputWithPlaceholder(): React.ReactNode;
/**
* Отрисовываем дерево видов.
*/
protected renderCardKindsTree(): React.ReactNode;
}