export interface BackendServer { /** * Wyn Server URL. * @example * url: 'http://localhost:51980/' */ url: string; /** * The token needed to access the Wyn API. * @example * token: 'DA3CF35403BF9B0823A63CB2663D58E88B0B85FB588A1068753E0BDEF935B7C2' */ token: string; /** * Set if the token should be sent in the request header instead of the query parameter.\ * default value: false * @example * useTokenInHeader: true, */ useTokenInHeader?: boolean; } export interface InitOptionBase { /** * The designer or viewer version * @example * version: '1.0.0' */ version?: string; /** * The designer or viewer theme * @example * theme: 'red' */ theme?: string; /** * The designer or viewer language * @example * language: 'zh' */ language: string; /** * The web tab title * @example * siteTitle: 'dataset' */ siteTitle?: string; } export interface InitOption extends InitOptionBase { /** * The dom contain designer or viewer. * @example * parentSelector: () => document.querySelector('#root') */ parentSelector: () => HTMLElement; backendServer: BackendServer; } export interface EventsOptionBase { /** * The callback after save. * @example * afterDocumentSave: () => {} */ afterDocumentSave?: (success: boolean, documentId?: string) => void; } export type DocumentBinderInitOptionCore = { /** * The documentBinder id. * @example * documentId: '1f183c3f-64f9-4b4c-ac92-cd37580bde21' */ documentId?: string; /** * A flag specifying whether to show the showCloseButton. * @example * showCloseButton: true */ showCloseButton?: boolean; }; export type DocumentBinderInitOption = InitOptionBase & DocumentBinderInitOptionCore; export type DocumentBinderInitOptionFull = InitOption & DocumentBinderInitOptionCore; export type destroyAble = { destroy: () => void; }; export interface DocumentBinder { designer?: { init: (option: DocumentBinderInitOptionFull) => Element; destroy: (element: Element) => void; }; preview?: { init: (option: DocumentBinderInitOptionFull) => Element; destroy: (element: Element) => void; }; }