UNPKG

@docsvision/webclient

Version:

Type definitions for DocsVision WebClient scripts and extensions.

95 lines (94 loc) 2.89 kB
/// <reference types="react" /> import { LoginView } from "@docsvision/webclient/Account/LoginContainer"; import { LoginLogic } from "@docsvision/webclient/Account/LoginLogic"; export declare enum FormType { FormAndProviders = 0, Form = 1, Providers = 2, Error = 3, Loading = 4 } export interface ILoginProvider { description: string; id: string; logo: string; name: string; supportedModes: string[]; supportedTypes: string[]; url: string; isStateCompare: boolean; timeOut: number; } export declare type EventParameters = { logic: LoginLogic; data: FormData; } | { loginPageRef: React.RefObject<HTMLDivElement>; } | { logic: LoginLogic; } | { loginPageRef: React.RefObject<HTMLDivElement>; } | { logic: LoginLogic; body: object; } | { logic: LoginLogic; view: LoginView; }; export interface ILoginPlugin { name?: string; order?: number; fn: (data: EventParameters) => boolean | void | Promise<boolean | void>; eventName: LoginEvents; } export declare type AutoCompleteOptions = Partial<{ login: string; password: string; form: string; }>; export declare type LoginEvents = "LogicEventConstructor" | "LogicEventBeforeFormSubmit" | "LogicEventAfterFormSubmit" | "LogicEventBeforeGetProviders" | "LogicEventAfterGetProviders" | "EventLoginPageUseEffect" | "EventContainerUseEffect"; export interface ILoginExtensionManager { currentLocale: string; getResources?: () => { [key: string]: string; }; setResources?: (resources: { [key: string]: string; }) => void; addPlugin: (plugin: ILoginPlugin) => void; addPlugins: (plugins: ILoginPlugin[]) => void; removePlugin: (name: string) => void; onSetupView: (view: LoginView) => LoginView; logicEventConstructor: (data: { logic: LoginLogic; }) => boolean | void; logicEventBeforeFormSubmit: (data: { logic: LoginLogic; data: FormData; }) => Promise<boolean | void>; logicEventAfterFormSubmit: (data: { logic: LoginLogic; data: object; }) => Promise<boolean | void>; eventContainerUseEffect: (data: { logic: LoginLogic; view: LoginView; }) => Promise<boolean | void>; logicEventBeforeGetProviders: (data: { logic: LoginLogic; data: { body: string; }; }) => Promise<boolean | void>; logicEventAfterGetProviders: (data: { logic: LoginLogic; data: object; }) => Promise<boolean | void>; eventLoginPageUseEffect: (data: { loginPageRef: React.RefObject<HTMLDivElement>; }) => Promise<boolean | void>; } export declare type LoginExtensionManager = { loginExtensionManager: ILoginExtensionManager; }; export declare type windowWithLoginExtensionManager = Window & typeof globalThis & LoginExtensionManager;