@docsvision/webclient
Version:
Type definitions for DocsVision WebClient scripts and extensions.
97 lines (96 loc) • 5.58 kB
TypeScript
import { CommentsImpl } from "@docsvision/webclient/BackOffice/CommentsImpl";
import { ICommentEventArgs } from "@docsvision/webclient/BackOffice/ICommentEventArgs";
import { CommentModel } from '@docsvision/webclient/BackOffice/CommentModel';
import { $CommentsController } from "@docsvision/webclient/Generated/DocsVision.WebClient.Controllers";
import { GenModels } from "@docsvision/webclient/Generated/DocsVision.WebClient.Models";
import { $CurrentEmployeeId, $DeviceType, $IsIE, $Locale } from "@docsvision/webclient/StandardServices";
import { BaseControl, BaseControlParams, BaseControlState } from "@docsvision/webclient/System/BaseControl";
import { IDataChangedEventArgsEx } from "@docsvision/webclient/System/IDataChangedEventArgs";
import { $CardInfo, $EditOperationStore, $LayoutInfo } from "@docsvision/webclient/System/LayoutServices";
import { IBindingResult } from "@docsvision/webclient/System/IBindingResult";
import { BasicApiEvent, CancelableApiEvent } from "@docsvision/webclient/System/ApiEvent";
import { $ExperimentalFeature } from "@docsvision/webclient/System/$ExperimentalFeature";
/**
* Публичные свойства для контрола {@link Comments}.
*/
export declare class CommentsParams extends BaseControlParams {
/** Стандартный CSS класс со стилями элемента управления. */
standardCssClass?: string;
/** Список комментариев. */
comments: Array<CommentModel>;
/** Источник данных. */
commentsDataSource?: GenModels.CommentsDataSourceInfoModel;
/** Количество комментариев. */
allCommentsCount?: number;
/** Максимальное количество отображаемых комментариев. */
maxVisibleComments?: number;
/** Плейсхолдер */
placeHolder?: string;
/** Ширина блока комментария. */
commentMaxWidth?: string;
/** Событие, возникающее после добавления комментария. */
commentAdded?: BasicApiEvent<ICommentEventArgs>;
/** Событие, возникающее перед добавлением комментария. */
commentAdding?: CancelableApiEvent<ICommentEventArgs>;
/** Событие, возникающее после удаления комментария. */
commentDeleted?: BasicApiEvent<ICommentEventArgs>;
/** Событие, возникающее перед удалением комментария. */
commentDeleting?: CancelableApiEvent<ICommentEventArgs>;
/** Событие, возникающее после изменения комментария. */
commentEdited?: BasicApiEvent<ICommentEventArgs>;
/** Событие, возникающее перед изменением комментария. */
commentEditing?: CancelableApiEvent<ICommentEventArgs>;
/** Событие, возникающее после изменения списка комментариев. */
dataChanged?: BasicApiEvent<IDataChangedEventArgsEx<GenModels.Comment[]>>;
/** Можно ли добавлять новые комментарии. */
canComment?: boolean;
/** Можно ли изменять собственные комментарии. */
canEditSelf?: boolean;
/** Можно ли изменять все комментарии. */
canEditAll?: boolean;
/** Флаг, показывающий включен ли режим создания комментариев через HTML (Summernote в режиме Air-mode). */
useHtml?: boolean;
/** Редактируется ли комментарий в данный момент. */
isCommentEditing?: boolean;
services?: $CommentsController & $CurrentEmployeeId & $CardInfo & $LayoutInfo & $EditOperationStore & $DeviceType & $Locale & $IsIE & $ExperimentalFeature;
}
/** @internal */
export interface CommentsState extends CommentsParams, BaseControlState {
addingComment: CommentModel;
editingComment: CommentModel | undefined;
textArea: HTMLElement;
binding: IBindingResult<GenModels.CommentsModel>;
useHtml: boolean;
isCommentEditing: boolean;
}
/**
* Представляет элемент управления для отображения списка комментариев.
*/
export declare class Comments extends BaseControl<CommentsParams, CommentsState> {
protected createParams(): CommentsParams;
private get CommentsImpl();
protected createImpl(): CommentsImpl;
protected set canComment(binding: IBindingResult<{}>);
protected set canEditSelf(binding: IBindingResult<{}>);
protected set canEditAll(binding: IBindingResult<{}>);
protected set comments(binding: IBindingResult<GenModels.CommentsModel>);
init(): void;
/** Обновление комментариев. */
refresh(): void;
/**
* Добавление комментария.
* @param text Текст нового комментария
*/
addComment(text: string): Promise<{}>;
/**
* Изменение комментария
* @param commentId Идентификатор комментария
* @param text Текст комментария
*/
updateComment(commentId: string, text: string): Promise<{}>;
/**
* Удаление комментария
* @param commentId Идентификатор комментария
*/
deleteComment(commentId: string): Promise<{}>;
}