@datafinder/embed-sdk
Version:
Embed SDK for DataFinder
40 lines (39 loc) • 1.8 kB
TypeScript
import * as Comlink from 'comlink';
import { EmbedRenderOptions, FilterType } from '../../types';
export interface IComlinkBaseControllerAction {
eventTracer: () => void;
updateInterfaceConfig: (state: any) => void;
getDsl: () => Promise<any>;
getResultId: () => Promise<string | undefined>;
setFilters(vids: FilterType[]): Promise<void>;
getCurrentUrl: () => Promise<string>;
getTeaUrl: () => Promise<string>;
updateResultId: (resultId: string, source: string) => Promise<void>;
copyResultId: (resultId: string) => Promise<string>;
}
export declare abstract class BaseAnalysisController {
/** 基础状态值 */
protected abstract state: EmbedRenderOptions;
/** 页面iframe */
protected iframe: HTMLIFrameElement | undefined;
/** 页面交互控制器 */
protected comlinkController: Comlink.Remote<IComlinkBaseControllerAction> | undefined;
/** 埋点 */
protected abstract eventTrace(): void;
/** 打开嵌出页面 */
openPage: (customeIframe?: HTMLIFrameElement) => Promise<void>;
/** 获取查询dsl,包含时间、事件 */
getDsl: () => any;
/** 获取当前的resultId */
getResultId: () => Promise<string> | Promise<undefined> | undefined;
/** 获取当前嵌出页的url */
getCurrentUrl: () => Promise<string> | undefined;
/** 获取当前嵌出页对应的tea页面url */
getTeaUrl: () => Promise<string> | undefined;
/** 更新resultId内容 */
updateResultId: (resultId: string, source: string) => Promise<void> | undefined;
/** 更新细分筛选内容 */
setFilters: (filters: FilterType[]) => Promise<void> | undefined;
/** 复制 resultId */
copyResultId: (resultId: string) => Promise<string> | undefined;
}