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