import * as lCore from './core'; import * as lForm from './form'; import * as lControl from './control'; /** * --- 初始化系统级 ID,仅能设置一次 --- * @param id 系统级 ID */ export declare function initSysId(id: string): void; /** * --- 获取任务的 runtime 数据,仅系统可以获取 --- * @param current 当前任务 ID * @param taskId 任务 ID */ export declare function getRuntime(current: lCore.TCurrent, taskId: string): IRuntime | null; /** --- 获取原始 list --- */ export declare function getOriginList(current: lCore.TCurrent): Promise>; /** * --- 获取任务简略信息 --- * @param taskId 任务 id */ export declare function get(taskId: lCore.TCurrent): ITaskInfo | null; /** * --- 获取任务对象 --- * @param taskId 任务 ID */ export declare function getOrigin(taskId: lCore.TCurrent): ITask | null; /** * --- 设置 task focus id --- * @param id task id 或 null */ export declare function setFocus(id?: string): boolean; /** --- 获取当前有焦点的任务 ID --- */ export declare function getFocus(current: lCore.TCurrent): Promise; /** * --- 创建 frame 监听,formId 存在则为窗体范围,否则为任务级范围 --- * @param current 当前任务 ID * @param fun 监听回调 * @param opt 选项,count:执行次数,默认无限次,formId:限定在当前任务的某个窗体 */ export declare function onFrame(current: lCore.TCurrent, fun: () => void | Promise, opt?: { 'count'?: number; 'formId'?: string; }): number; /** * --- 移除 frame 监听 --- * @param current 当前任务 ID * @param ft 监听 ID */ export declare function offFrame(current: lCore.TCurrent, ft: number): void; /** * --- 获取某个任务的已授权权限列表 --- * @param current 当前任务 ID */ export declare function getPermissions(current: lCore.TCurrent): string[]; /** * --- 获取 task list 的简略情况 --- */ export declare function getList(): ITaskInfo[]; /** --- initProgress 的 type --- */ export declare enum EIPTYPE { 'APP' = 0, 'LOCAL' = 1, 'CONTROL' = 2, 'THEME' = 3, 'STYLE' = 4, 'PERMISSION' = 5, 'START' = 6, 'DONE' = 7 } /** * --- 运行一个应用 --- * @param current 当前任务 ID * @param url app 路径(以 .cga 结尾的文件),或 APP 包对象 * @param opt 选项 * @returns 字符串代表成功,否则代表错误代号 */ export declare function run(current: lCore.TCurrent, url: string | lCore.IApp, opt?: ITaskRunOptions): Promise; /** * --- 检测应用是否有相应的权限(如果 taskId 是 sysId 则直接成功) --- * @param taskId 要检查的 taskId * @param vals 要检测的权限 * @param apply 如果没有权限是否自动弹出申请,默认为否 * @param applyHandler 向用户申请成功的权限列表回调 */ export declare function checkPermission(taskId: lCore.TCurrent, vals: string | string[], apply?: boolean, applyHandler?: (list: string[]) => void | Promise): Promise; /** * --- 完全结束任务 --- * @param taskId 要结束的任务 id */ export declare function end(taskId: lCore.TCurrent): Promise; /** * --- 加载 locale data 对象到 task --- * @param taskId 任务 ID * @param lang 语言名,如 sc * @param data 数据 * @param pre 前置 */ export declare function loadLocaleData(taskId: lCore.TCurrent, lang: string, data: Record, pre?: string): void; /** * --- 加载 locale 文件 json --- * @param taskId 所属的 taskId * @param lang 语言名,如 sc * @param path 绝对或者相对 app 路径的地址 */ export declare function loadLocale(taskId: lCore.TCurrent, lang: string, path: string): Promise; /** * --- 清除任务的所有加载的语言包 --- * @param taskId 要清除的任务 id */ export declare function clearLocale(taskId: lCore.TCurrent): void; /** * --- 加载全新 locale(老 locale 的所有语言的缓存会被卸载) --- * @param taskId 要加载的任务 id * @param lang 语言名,如 sc * @param path 绝对或者相对 app 路径的地址 */ export declare function setLocale(taskId: lCore.TCurrent, lang: string, path: string): Promise; /** * --- 设置本 task 的语言 name --- * @param current 当前任务 id * @param lang 语言名,如 sc */ export declare function setLocaleLang(current: lCore.TCurrent, lang: string): void; /** * --- 清除 task 的语言设置 --- * @param current 当前任务 id */ export declare function clearLocaleLang(current: lCore.TCurrent): void; /** * --- 创建 timer --- * @param current 所属的 taskId * @param fun 执行函数 * @param delay 延迟/间隔,毫秒 * @param opt 选项, formId: 可省略,省略代表生命周期为当前整个任务,否则只是当前窗体,immediate: 立即执行,默认 false,count: 执行次数,0 为无限次,默认 0 */ export declare function createTimer(current: lCore.TCurrent, fun: () => void | Promise, delay: number, opt?: ICreateTimerOptions): number; /** * --- 移除 timer --- * @param current 当前任务 id * @param timer ID */ export declare function removeTimer(current: lCore.TCurrent, timer: number): void; /** * --- 暂停一小段时间 --- * @param current 当前任务 id * @param fun 回调函数 * @param delay 暂停时间 */ export declare function sleep(current: lCore.TCurrent, fun: () => void | Promise, delay: number): number; /** --- task 的信息 --- */ export declare let systemTaskInfo: ISystemTaskInfo; /** * --- 将任务注册为系统 task --- * @param taskId task id * @param formId task bar 的 form id */ export declare function setSystem(taskId: lCore.TCurrent, formId: string): boolean; /** * --- 清除系统任务设定 --- * @param taskId 清除的 taskId */ export declare function clearSystem(taskId: lCore.TCurrent): Promise; /** * --- 刷新系统任务的 form 的位置以及 length --- */ export declare function refreshSystemPosition(): void; export declare function init(): void; /** --- 线程抽象类 --- */ export declare abstract class AbstractThread { /** --- 当前文件在包内的路径 --- */ get filename(): string; /** --- 系统会自动设置本项 --- */ taskId: string; /** --- 线程入口 --- */ abstract main(data: Record): void | Promise; /** --- 线程接收事件 --- */ onMessage(e: MessageEvent): void | Promise; /** --- 线程结束事件 --- */ onEnded(): void | Promise; /** --- 报错 --- */ onError(e: any): void | Promise; /** --- 发送数据 --- */ send(data: Record): void; /** --- 关闭线程 --- */ close(): void; } /** * --- 运行线程(同一个线程文件只能运行一个) --- * @param current 当前任务 id * @param cls 线程类 * @param data 线程初始化数据 */ export declare function runThread(current: lCore.TCurrent, cls: new () => AbstractThread, data?: Record): IThread; export interface IThread { /** --- 绑定事件 --- */ on: (name: 'message', handler: (e: MessageEvent) => any | Promise) => void; /** --- 移除事件 --- */ off: (name: 'message', handler: (e: MessageEvent) => any | Promise) => void; /** --- 发送数据 --- */ send: (data: Record) => void; /** --- 结束线程 --- */ end: () => Promise; } /** --- 运行中的任务对象 --- */ export interface ITask { 'id': string; 'app': lCore.IApp; 'class': lCore.AbstractApp; 'customTheme': boolean; 'locale': { 'lang': string; 'data': Record>; }; /** --- 当前 app 自己的完整路径,如 /x/xx.cga,或 /x/x,末尾不含 / --- */ 'path': string; /** --- 当前 app 运行路径,末尾不含 / --- */ 'current': string; /** --- 窗体对象列表 --- */ 'forms': Record; /** --- 已解析的控件处理后的对象,任务启动时解析,窗体创建时部分复用 --- */ 'controls': Record; /** --- 控件对象配置文件 --- */ 'config': lControl.IControlConfig; 'props': Record; 'emits': Record; 'data': Record; 'access': Record; 'methods': Record; 'computed': Record; }>; /** --- 任务中的 timer 列表 --- */ 'timers': Record; /** --- 文件名 -> thread 控制对象 --- */ 'threads': Record; } export interface IRuntime { 'dialogFormIds': string[]; 'permissions': string[]; 'index': number; } /** --- 系统任务信息 --- */ export interface ISystemTaskInfo { 'taskId': string; 'formId': string; 'length': number; } export interface ITaskRunOptions { 'icon'?: string; /** --- 初始化进度回调 --- */ 'initProgress'?: (loaded: number, total: number, type: EIPTYPE, msg: string) => void | Promise; /** --- 加载进度回调(根据 type 分为不同阶段) --- */ 'progress'?: (loaded: number, total: number, type: 'app' | 'control', path: string) => void | Promise; /** --- 返回总加载进度百分比(0 - 1) --- */ 'perProgress'?: (per: number) => void | Promise; /** --- 显示 notify 窗口 --- */ 'notify'?: boolean; /** --- 直接赋予此任务相应权限,有 "root" 权限的应用才能设置 --- */ 'permissions'?: string[]; /** --- 如果是网络加载 cga,则网址后面会附带,如 ?123 --- */ 'after'?: string; /** --- 给 task 传值 --- */ 'data'?: Record; /** --- 执行文件的基路径,一般在传入 APP 包时使用,以 .cga 结尾 --- */ 'path'?: string; } export interface ICreateTimerOptions { 'formId'?: string; 'immediate'?: boolean; 'count'?: number; } /** --- Task 的简略情况,通常在 list 当中 --- */ export interface ITaskInfo { 'name': string; 'locale': string; 'customTheme': boolean; 'formCount': number; 'icon': string; 'path': string; 'current': string; }