dome-embedded-app-sdk
Version:
Build Dome cards and document viewers with a single SDK. Cards let you extend a dome with custom functionality, while viewers let you render and edit documents inside Dome.
54 lines (53 loc) • 1.56 kB
TypeScript
import { DomeEmbeddedAppSdk, ViewerClientMessageType } from "./dome-sdk";
export interface Document {
data: any;
name: string;
type: string;
}
export interface UiProps {
theme: string;
}
interface SaveStatusData {
status: "success" | "error";
message: string;
}
export interface ViewerEventHandler {
onInitialData: (data: {
doc: Document;
ui: UiProps;
isNewFile: boolean;
perms: any;
config?: Record<string, any>;
}) => void;
onDataChange?: (data: {
doc: Document;
perms: any;
userConsent: "override" | null;
}) => void;
onCloseRequest: () => void;
onSaveRequest: () => void;
}
export declare class ViewerSdk extends DomeEmbeddedAppSdk {
private static instance;
private static initialized;
private handler;
private pendingRequests;
private pendingInitAck;
private constructor();
static init(handler?: ViewerEventHandler): ViewerSdk;
setHandler(handler: ViewerEventHandler): void;
canRead(perms?: string): boolean;
canWrite(perms?: string): boolean;
initializeViewerSdk(): void;
requestInitialData(): void;
requestSave(doc: Document, isDataDirty: boolean): Promise<SaveStatusData>;
private handleOnSave;
setDirty(isDirty: boolean): void;
sendClose(doc: Document, isDataDirty: boolean): void;
sendException(error: {
name?: string;
message: string;
} | string): void;
protected handleMessage(type: ViewerClientMessageType, data: any): void;
}
export {};