UNPKG

@docsvision/webclient

Version:

Type definitions for DocsVision WebClient scripts and extensions.

108 lines (107 loc) 6.44 kB
import { ISignatureDialogProps } from '@docsvision/webclient/BackOffice/SignatureDialog'; import { IDigitalSignatureDialogManagement } from '@docsvision/webclient/BackOffice/IDigitalSignatureDialogManagement'; import { GenModels } from '@docsvision/webclient/Generated/DocsVision.WebClient.Models'; import { ModalHost } from '@docsvision/webclient/Helpers/ModalHost'; import { ISignatureLabel } from '@docsvision/webclient/Legacy/ISignatureLabel'; import { IFileSignInfo } from '@docsvision/webclient/Legacy/IFileSingInfo'; import { Event } from 'effector'; export interface ISignatureDialogOptions { /** Не отбражать выбор метки в диалоге подписи. */ signWithoutLabel?: boolean; /** Отключить возможность настройки вариантов подписания. */ hideSignatureMethodsSetup?: boolean; /** Если задано, то выполняется вместо станартного метода формированяи подписи. */ onCreateSignature?: (options: IDigitalSignOptions) => Promise<IEncryptedInfo | ITaskEncryptedInfo>; /** Если задано, то выполняется вместо станартного метода прикрепления подписи. */ onAttachSignatureToCard?(encryptedInfo: IEncryptedInfo): Promise<void>; /** Дополнительные свойства для {@link SignatureDialog} */ dialogProps?: Partial<ISignatureDialogProps>; /** Дополнительная необязательная информация о карточке для кастомизации подписи в решениях. */ sourceCardInfo?: GenModels.CardInfoModel; } export interface CertificateInfo { externalId?: string; source: GenModels.SignatureMethodSources; thumberprint: string; } export interface SignatureMethod { isSimple: boolean; certificateInfo?: CertificateInfo; } export interface IDigitalSignOptions { /** Идентификатор карточки документа */ cardId: string; /** Файлы для подписания */ files: IFileSignInfo[]; method: SignatureMethod; label: ISignatureLabel; /** Необходимо ли подписать Поля */ signFields?: boolean; /** Необходимо ли подписать Дополнения */ signAttachments?: boolean; /** Таймштамп последнего изменения карточки. */ timestamp: number; /** Дополнительная необязательная информация о карточке для кастомизации подписи в решениях. */ cardInfo?: GenModels.CardInfoModel; powerOfAttorneyID?: string; /** Параметр позволяет задать явно тип подписи, если вызывающий код хочет отменить стандартную логику выбора. */ signatureType?: GenModels.DigitalSignatureKind; } export declare class IEncryptedInfo { /** Идентификатор карточки документа */ cardId: string; /** Файлы для подписания */ files: IFileSignInfo[]; /** Таймштамп последнего изменения карточки. */ cardTimestamp: string; labelId: string; certificateThumberprint: string; signedFiles: GenModels.SignatureItemData[]; /** Дополнительная необязательная информация о карточке для кастомизации подписи в решениях. */ cardInfo?: GenModels.CardInfoModel; powerOfAttorneyID?: string; } export declare class ITaskEncryptedInfo { isSimpleSign: boolean; signatureData: GenModels.SignatureData; } export declare enum DigitalSignatureCardType { Document = 0, Task = 1 } export interface BeforeSignatureDialogShowEventArgs { cardId: string; cardInfo?: GenModels.CardInfoModel; options: ISignatureDialogOptions; dialogProps: ISignatureDialogProps; } export interface AfterSignatureDialogShowEventArgs { cardId: string; cardInfo?: GenModels.CardInfoModel; management: IDigitalSignatureDialogManagement; } /** Сервис для выполнения цифровой подписи */ export interface IDigitalSignatureService { /** Инициирует процесс подписания документа. */ showDocumentSignDialog(documentId: string, options?: ISignatureDialogOptions): Promise<void>; /** Стандартный метод формирования подписи документа. */ createDocumentSignature(options: IDigitalSignOptions): Promise<IEncryptedInfo>; /** Стандартный метод формирования подписи задания. */ createTaskSignature(options: IDigitalSignOptions): Promise<ITaskEncryptedInfo>; /** Стандартный метод прикрепления подписи к документу. */ attachDocumentSignature(encryptedInfo: IEncryptedInfo): Promise<GenModels.AttachSignatureResponse>; /** Отображает диалог журнала подписи. */ showDocumentSignatureListDialog(documentId: string): Promise<ModalHost>; /** Отображает диалог настроек подписания. */ showSignatureMethodsSetupDialog(): Promise<void>; /** Предоставляет доступ к управлению текущим отображаемым диалогом подписи. */ getCurrentDialogManagement(): IDigitalSignatureDialogManagement; /** Событие, генерируемое перед открытием диалога подписи. Позволяет изменить параметры отображения диалога. */ beforeSignatureDialogShown: Event<BeforeSignatureDialogShowEventArgs>; /** Событие, генерируемое после открытия диалога подписи. Предоставляет доступ к управлению диалогом. */ afterSignatureDialogShown: Event<AfterSignatureDialogShowEventArgs>; } export declare type $DigitalSignature = { digitalSignature: IDigitalSignatureService; }; export declare const $DigitalSignature: string | ((model?: $DigitalSignature) => IDigitalSignatureService);