weboffice-js-sdk 2.0.3 → 2.0.4
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +532 -0
- package/dist/OfficeSDK.d.ts +656 -0
- package/dist/OfficeSDK.facade.d.ts +15 -0
- package/dist/OfficeSDK.facade.types.d.ts +849 -0
- package/dist/OfficeSDK.headerBars.d.ts +87 -0
- package/dist/editorFacade.contract.d.ts +47 -0
- package/{index.d.ts → dist/index.d.ts} +3 -0
- package/dist/index.js +2 -0
- package/dist/types/EmptyPage.d.ts +120 -0
- package/dist/types/SlashMenu.d.ts +19 -0
- package/package.json +54 -4
- package/OfficeSDK.d.ts +0 -338
- package/assets/loading.d.ts +0 -1
- package/index.js +0 -1
- /package/{assert.d.ts → dist/assert.d.ts} +0 -0
- /package/{connect.d.ts → dist/connect.d.ts} +0 -0
- /package/{types → dist/types}/BaseEditor.d.ts +0 -0
- /package/{types → dist/types}/Document.d.ts +0 -0
- /package/{types → dist/types}/DocumentPro.d.ts +0 -0
- /package/{types → dist/types}/FlowChart.d.ts +0 -0
- /package/{types → dist/types}/Form.d.ts +0 -0
- /package/{types → dist/types}/Presentation.d.ts +0 -0
- /package/{types → dist/types}/Spreadsheet.d.ts +0 -0
- /package/{types → dist/types}/Table.d.ts +0 -0
|
@@ -0,0 +1,120 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* 缺省页能力的对外契约类型。
|
|
3
|
+
*
|
|
4
|
+
* 关于 scene 枚举归属(已确定):
|
|
5
|
+
* P1~P4 实施期,两侧(shimo-js-sdk 与 lizard-service-iframe-sdk)在本地 types
|
|
6
|
+
* 文件里手工保持字面量一致;联调稳定后沉淀到 `shimo-js-sdk-shared` 的常量中。
|
|
7
|
+
*/
|
|
8
|
+
/**
|
|
9
|
+
* 缺省页场景枚举,必须与 `lizard-service-iframe-sdk` 侧完全一致。
|
|
10
|
+
*/
|
|
11
|
+
export type EmptyPageScene = 'file-open-failed' | 'no-permission' | 'network-error' | 'token-expired';
|
|
12
|
+
/**
|
|
13
|
+
* `file-open-failed` 下可细分的子原因,承载 HTTP 协议级差异;
|
|
14
|
+
* 保持 scene 枚举粒度稳定,细节通过 reason 下钻。
|
|
15
|
+
*/
|
|
16
|
+
export type FileOpenFailedReason = 'file-not-found' | 'file-deleted' | 'file-load-failed' | 'unknown';
|
|
17
|
+
export type TokenExpiredStrategy = 'refresh-first' | 'show-immediately';
|
|
18
|
+
/**
|
|
19
|
+
* 单个按钮的自定义。点击后统一触发 `emptyPageAction` 事件,
|
|
20
|
+
* 宿主监听事件后自行决定后续行为(重登 / 重试 / 隐藏等)。
|
|
21
|
+
*/
|
|
22
|
+
export interface EmptyPageActionOverride {
|
|
23
|
+
/** 按钮文案。必填。 */
|
|
24
|
+
label: string;
|
|
25
|
+
}
|
|
26
|
+
/**
|
|
27
|
+
* 单个 scene 的文案/按钮自定义。未提供的字段走内置默认(文案走默认,按钮不渲染)。
|
|
28
|
+
*/
|
|
29
|
+
export interface EmptyPageContentOverride {
|
|
30
|
+
/** 覆盖标题。 */
|
|
31
|
+
title?: string;
|
|
32
|
+
/** 覆盖描述。 */
|
|
33
|
+
description?: string;
|
|
34
|
+
/** 主按钮。不传则不渲染主按钮。 */
|
|
35
|
+
primary?: EmptyPageActionOverride;
|
|
36
|
+
/** 次按钮。不传则不渲染次按钮。 */
|
|
37
|
+
secondary?: EmptyPageActionOverride;
|
|
38
|
+
}
|
|
39
|
+
/**
|
|
40
|
+
* 宿主通过 `connect({ emptyPage })` 传入的配置。所有字段均可选。
|
|
41
|
+
*
|
|
42
|
+
* 默认行为:
|
|
43
|
+
* - 图片 / 文案(title / description)均内置,宿主无需传
|
|
44
|
+
* - **默认不渲染任何按钮**。如需按钮,必须在 `overrides[scene].primary/secondary`
|
|
45
|
+
* 里显式配置 label。按钮点击统一触发 `emptyPageAction` 事件。
|
|
46
|
+
*/
|
|
47
|
+
export interface EmptyPageOptions {
|
|
48
|
+
/**
|
|
49
|
+
* 总开关,默认 true。
|
|
50
|
+
*/
|
|
51
|
+
enabled?: boolean;
|
|
52
|
+
/**
|
|
53
|
+
* 启用的场景白名单。未指定时全部启用。
|
|
54
|
+
*/
|
|
55
|
+
scenes?: EmptyPageScene[];
|
|
56
|
+
/**
|
|
57
|
+
* token 过期场景的定制策略:
|
|
58
|
+
* - `refresh-first`(默认):先走一次 getCredentials 刷新,失败再展示缺省页
|
|
59
|
+
* - 仅在宿主传了 `getCredentials` 时生效
|
|
60
|
+
* - 最多重试 1 次,5s 超时按失败处理
|
|
61
|
+
* - `show-immediately`:立即展示,不做刷新尝试
|
|
62
|
+
*
|
|
63
|
+
* 未传 `getCredentials` 时,无论配置如何都按 `show-immediately` 执行。
|
|
64
|
+
*/
|
|
65
|
+
tokenExpiredStrategy?: TokenExpiredStrategy;
|
|
66
|
+
/**
|
|
67
|
+
* 按 scene 自定义文案和按钮。未配置 scene 走默认行为(默认文案 + 无按钮)。
|
|
68
|
+
*/
|
|
69
|
+
overrides?: Partial<Record<EmptyPageScene, EmptyPageContentOverride>>;
|
|
70
|
+
}
|
|
71
|
+
/**
|
|
72
|
+
* 归一化后的缺省页配置,透传给 iframe 使用。
|
|
73
|
+
* 所有基础字段都是必填且完整填充,iframe 侧不需要再补默认值。
|
|
74
|
+
* `overrides` 保持稀疏(仅携带宿主显式传入的字段),避免透传多余数据。
|
|
75
|
+
*/
|
|
76
|
+
export interface NormalizedEmptyPageOptions {
|
|
77
|
+
enabled: boolean;
|
|
78
|
+
scenes: EmptyPageScene[];
|
|
79
|
+
tokenExpiredStrategy: TokenExpiredStrategy;
|
|
80
|
+
overrides: Partial<Record<EmptyPageScene, EmptyPageContentOverride>>;
|
|
81
|
+
}
|
|
82
|
+
/**
|
|
83
|
+
* `emptyPageShown` 事件 payload。
|
|
84
|
+
*/
|
|
85
|
+
export interface EmptyPageShownPayload {
|
|
86
|
+
scene: EmptyPageScene;
|
|
87
|
+
/**
|
|
88
|
+
* scene 内的子类型(如 FileOpenFailedReason),宿主可用于定制文案或埋点。
|
|
89
|
+
*/
|
|
90
|
+
reason?: FileOpenFailedReason | string;
|
|
91
|
+
httpStatus?: number;
|
|
92
|
+
retryable?: boolean;
|
|
93
|
+
}
|
|
94
|
+
/**
|
|
95
|
+
* `emptyPageAction` 事件 payload,按钮被点击时触发。
|
|
96
|
+
* 宿主根据 scene + action 决定业务行为(重登 / 重试 / 隐藏等)。
|
|
97
|
+
*/
|
|
98
|
+
export interface EmptyPageActionPayload {
|
|
99
|
+
scene: EmptyPageScene;
|
|
100
|
+
action: 'primary' | 'secondary';
|
|
101
|
+
}
|
|
102
|
+
/**
|
|
103
|
+
* `emptyPageHidden` 事件 payload。
|
|
104
|
+
*/
|
|
105
|
+
export interface EmptyPageHiddenPayload {
|
|
106
|
+
scene: EmptyPageScene;
|
|
107
|
+
}
|
|
108
|
+
/**
|
|
109
|
+
* 完整的 scene 列表,用于作为默认值与合法性校验。
|
|
110
|
+
*/
|
|
111
|
+
export declare const ALL_EMPTY_PAGE_SCENES: EmptyPageScene[];
|
|
112
|
+
/**
|
|
113
|
+
* 把宿主传入的 `emptyPage` 配置归一化成完整对象。
|
|
114
|
+
*
|
|
115
|
+
* - 未传 / undefined:启用全部 scene,使用默认 tokenExpiredStrategy,不携带 overrides
|
|
116
|
+
* - 传 true:等价于 `{ enabled: true }`
|
|
117
|
+
* - 传 false:等价于 `{ enabled: false }`,其余字段仍填充默认以保证形状一致
|
|
118
|
+
* - 传对象:按字段覆盖,未覆盖部分使用默认
|
|
119
|
+
*/
|
|
120
|
+
export declare function normalizeEmptyPageOptions(input?: boolean | EmptyPageOptions): NormalizedEmptyPageOptions;
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
export interface SlashMenuButton {
|
|
2
|
+
name: string;
|
|
3
|
+
type: 'button';
|
|
4
|
+
disabled?: boolean;
|
|
5
|
+
label?: string;
|
|
6
|
+
icon?: string;
|
|
7
|
+
callback?: () => void;
|
|
8
|
+
}
|
|
9
|
+
export interface SlashMenuEntry {
|
|
10
|
+
name: string;
|
|
11
|
+
type: 'entry';
|
|
12
|
+
disabled?: boolean;
|
|
13
|
+
label?: string;
|
|
14
|
+
icon?: string;
|
|
15
|
+
children?: Array<SlashMenuEntry | SlashMenuButton>;
|
|
16
|
+
}
|
|
17
|
+
export interface SlashMenuOptions {
|
|
18
|
+
entries: Array<SlashMenuEntry | SlashMenuButton>;
|
|
19
|
+
}
|
package/package.json
CHANGED
|
@@ -1,10 +1,50 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "weboffice-js-sdk",
|
|
3
|
-
"version": "2.0.
|
|
4
|
-
"description": "
|
|
5
|
-
"
|
|
6
|
-
|
|
3
|
+
"version": "2.0.4",
|
|
4
|
+
"description": "",
|
|
5
|
+
"repository": {
|
|
6
|
+
"type": "git",
|
|
7
|
+
"url": "git+https://github.com/shimo-open/shimo-js-sdk.git"
|
|
8
|
+
},
|
|
9
|
+
"main": "dist/index.js",
|
|
10
|
+
"types": "dist/index.d.ts",
|
|
11
|
+
"scripts": {
|
|
12
|
+
"preversion": "npm run docs && git add -A docs && git diff-index --quiet HEAD || git commit -m 'docs: update'",
|
|
13
|
+
"test": "echo \"Error: no test specified\" && exit 1",
|
|
14
|
+
"build": "webpack",
|
|
15
|
+
"lint": "eslint .",
|
|
16
|
+
"format": "eslint --fix .&& prettier --write .",
|
|
17
|
+
"prepack": "npm run lint && NODE_ENV=production npm run build && node scripts/prepack.js",
|
|
18
|
+
"publish:dist": "npm run prepack && npm publish ./dist",
|
|
19
|
+
"prepare": "husky install",
|
|
20
|
+
"docs": "typedoc && cp -r ./src/types/readme ./docs/details",
|
|
21
|
+
"prepublishOnly": "node scripts/prepublishOnly.js"
|
|
22
|
+
},
|
|
23
|
+
"author": "Chris Yip <chris@yesui.co>",
|
|
7
24
|
"license": "MIT",
|
|
25
|
+
"devDependencies": {
|
|
26
|
+
"@types/globalthis": "^1.0.1",
|
|
27
|
+
"@types/lodash.forin": "^4.4.6",
|
|
28
|
+
"@types/uuid": "^8.3.3",
|
|
29
|
+
"@typescript-eslint/eslint-plugin": "^4.33.0",
|
|
30
|
+
"clean-webpack-plugin": "^3.0.0",
|
|
31
|
+
"eslint": "^7.32.0",
|
|
32
|
+
"eslint-config-prettier": "^8.0.0",
|
|
33
|
+
"eslint-config-standard-with-typescript": "^21.0.1",
|
|
34
|
+
"eslint-plugin-import": "^2.22.1",
|
|
35
|
+
"eslint-plugin-node": "^11.1.0",
|
|
36
|
+
"eslint-plugin-promise": "^4.2.1",
|
|
37
|
+
"eslint-plugin-standard": "^5.0.0",
|
|
38
|
+
"husky": "^6.0.0",
|
|
39
|
+
"lint-staged": "^10.5.4",
|
|
40
|
+
"prettier": "^2.2.1",
|
|
41
|
+
"ts-loader": "^8.0.14",
|
|
42
|
+
"typedoc": "0.22.10",
|
|
43
|
+
"typedoc-plugin-markdown": "3.11.7",
|
|
44
|
+
"typescript": "^4.7.4",
|
|
45
|
+
"webpack": "^5.18.0",
|
|
46
|
+
"webpack-cli": "^4.4.0"
|
|
47
|
+
},
|
|
8
48
|
"dependencies": {
|
|
9
49
|
"base62str": "^1.0.9",
|
|
10
50
|
"core-js": "^3.19.1",
|
|
@@ -20,7 +60,17 @@
|
|
|
20
60
|
"tiny-emitter": "^2.1.0",
|
|
21
61
|
"uuid": "^8.3.2"
|
|
22
62
|
},
|
|
63
|
+
"files": [
|
|
64
|
+
"dist"
|
|
65
|
+
],
|
|
23
66
|
"publishConfig": {
|
|
24
67
|
"registry": "https://registry.npmjs.org/"
|
|
68
|
+
},
|
|
69
|
+
"lint-staged": {
|
|
70
|
+
"*.{js,ts}": [
|
|
71
|
+
"npm run lint",
|
|
72
|
+
"prettier --write"
|
|
73
|
+
],
|
|
74
|
+
"*.{css,md,json}": "prettier --write"
|
|
25
75
|
}
|
|
26
76
|
}
|
package/OfficeSDK.d.ts
DELETED
|
@@ -1,338 +0,0 @@
|
|
|
1
|
-
import 'core-js/features/promise';
|
|
2
|
-
import 'core-js/features/url';
|
|
3
|
-
import 'core-js/features/array/includes';
|
|
4
|
-
import 'core-js/features/object/assign';
|
|
5
|
-
import 'proxy-polyfill';
|
|
6
|
-
import { TinyEmitter } from 'tiny-emitter';
|
|
7
|
-
import { ContainerMethod, ContainerRect, DisableMentionCards, FileType, InvokeMethod, MouseMovePayload, ReadyState, PerformanceEntry, DeviceMode, GenerateUrlHandler, APIAdaptor, RequestContext, ShowToastOptions, Credentials } from 'weboffice-js-sdk-shared';
|
|
8
|
-
import { Document, DocumentPro, Presentation, Spreadsheet, Table, Form, Flowchart } from '.';
|
|
9
|
-
import { BaseEditor } from './types/BaseEditor';
|
|
10
|
-
export declare const MessageEvent: typeof InvokeMethod;
|
|
11
|
-
export declare class OfficeSDK extends TinyEmitter {
|
|
12
|
-
/**
|
|
13
|
-
* 编辑器页面对应的 iframe 元素。需要注意调整父元素大小来控制 iframe 大小。
|
|
14
|
-
*/
|
|
15
|
-
element: HTMLIFrameElement;
|
|
16
|
-
readonly uuid: string;
|
|
17
|
-
readonly userUuid?: string;
|
|
18
|
-
/**
|
|
19
|
-
* 传统文档编辑器实例
|
|
20
|
-
* @deprecated - 用 `sdk.getEditor<T>()` 替代
|
|
21
|
-
*/
|
|
22
|
-
documentPro?: DocumentPro.Editor;
|
|
23
|
-
/**
|
|
24
|
-
* 轻文档编辑器实例
|
|
25
|
-
* @deprecated - 用 `sdk.getEditor<T>()` 替代
|
|
26
|
-
*/
|
|
27
|
-
document?: Document.Editor;
|
|
28
|
-
/**
|
|
29
|
-
* 表格编辑器实例
|
|
30
|
-
* @deprecated - 用 `sdk.getEditor<T>()` 替代
|
|
31
|
-
*/
|
|
32
|
-
spreadsheet?: Spreadsheet.Editor;
|
|
33
|
-
/**
|
|
34
|
-
* 专业幻灯片编辑器实例
|
|
35
|
-
* @deprecated - 用 `sdk.getEditor<T>()` 替代
|
|
36
|
-
*/
|
|
37
|
-
presentation?: Presentation.Editor;
|
|
38
|
-
/**
|
|
39
|
-
* 应用表格编辑器实例
|
|
40
|
-
* @deprecated - 用 `sdk.getEditor<T>()` 替代
|
|
41
|
-
*/
|
|
42
|
-
table?: Table.Editor;
|
|
43
|
-
/**
|
|
44
|
-
* 表单编辑器实例
|
|
45
|
-
* @deprecated - 用 `sdk.getEditor<T>()` 替代
|
|
46
|
-
*/
|
|
47
|
-
form?: Form.Editor;
|
|
48
|
-
/**
|
|
49
|
-
* 图谱编辑器实例
|
|
50
|
-
* @deprecated - 用 `sdk.getEditor<T>()` 替代
|
|
51
|
-
*/
|
|
52
|
-
flowchart?: Flowchart.Editor;
|
|
53
|
-
private _fileType;
|
|
54
|
-
private readonly messageHandler;
|
|
55
|
-
private loadingOverlay?;
|
|
56
|
-
/**
|
|
57
|
-
* 内部 event emitter,比如用来中转 editor 事件
|
|
58
|
-
*/
|
|
59
|
-
private readonly emitter;
|
|
60
|
-
private channel;
|
|
61
|
-
private readonly connectOptions;
|
|
62
|
-
private _readyState;
|
|
63
|
-
private editor;
|
|
64
|
-
private readonly startParams;
|
|
65
|
-
private collaborators;
|
|
66
|
-
private readonly apiAdaptor;
|
|
67
|
-
private readonly apiAdaptorContext;
|
|
68
|
-
private readonly handledMessageCache;
|
|
69
|
-
/**
|
|
70
|
-
* 消息过期时间,单位毫秒,默认 5 分钟
|
|
71
|
-
*/
|
|
72
|
-
private readonly messageExpires;
|
|
73
|
-
/**
|
|
74
|
-
* SDK 服务器的地址
|
|
75
|
-
*/
|
|
76
|
-
private readonly endpoint;
|
|
77
|
-
private readonly sameOrigin;
|
|
78
|
-
private readonly onViewportResize;
|
|
79
|
-
constructor(options: OfficeSDKOptions);
|
|
80
|
-
get fileType(): FileType;
|
|
81
|
-
get readyState(): ReadyState;
|
|
82
|
-
getEditor<T extends BaseEditor | Document.Editor | DocumentPro.Editor | Presentation.Editor | Spreadsheet.Editor | Form.Editor | Flowchart.Editor | Table.Editor = BaseEditor>(): T;
|
|
83
|
-
/**
|
|
84
|
-
* 更新鉴权 signature 和 token
|
|
85
|
-
* @deprecated - 用 `OfficeSDKOptions.getCredentials()` 替代
|
|
86
|
-
*/
|
|
87
|
-
setCredentials(payload: {
|
|
88
|
-
signature: string;
|
|
89
|
-
token: string;
|
|
90
|
-
}): Promise<void>;
|
|
91
|
-
/**
|
|
92
|
-
* 设置石墨的鉴权 signature。用于实时更新鉴权信息,优化用户出现因长时间放置,鉴权失败而引起的体验问题。
|
|
93
|
-
* @deprecated - 用 `sdk.setCredentials()` 替代
|
|
94
|
-
*/
|
|
95
|
-
setSignature(signature: string): Promise<void>;
|
|
96
|
-
/**
|
|
97
|
-
* 设置您系统的鉴权 token。用于实时更新鉴权信息,优化用户出现因长时间放置,鉴权失败而引起的体验问题。
|
|
98
|
-
* @deprecated - 用 `sdk.setCredentials()` 替代
|
|
99
|
-
*/
|
|
100
|
-
setToken(token: string): Promise<void>;
|
|
101
|
-
/**
|
|
102
|
-
* 获取性能信息片段列表,由于性能标记是分段的、异步的,因此每次调用时获取的列表有可能不一致
|
|
103
|
-
*/
|
|
104
|
-
getPerformanceEntries(): Promise<PerformanceEntry[]>;
|
|
105
|
-
disconnect(): void;
|
|
106
|
-
/**
|
|
107
|
-
* 初始化 SDK,返回 Promise,当 ReadState 变为 Ready 或 Failed 时,Promise 将被 resolve。
|
|
108
|
-
* Promise resovled 不代表编辑器已经完整加载完毕,只代表 SDK 已经准备好了。
|
|
109
|
-
* 同时 Promise 一直 pending 也不代表编辑器加载失败,只代表无法通过 SDK 和编辑器交互。
|
|
110
|
-
* 比如受浏览器限制无法发出 postMessage() 时,Promise 将会一直 pending。
|
|
111
|
-
*/
|
|
112
|
-
init(): Promise<void>;
|
|
113
|
-
private setupLoadingOverlay;
|
|
114
|
-
private removeLoadingOverlay;
|
|
115
|
-
private ensureLoadingStyle;
|
|
116
|
-
private initIframe;
|
|
117
|
-
private initChannel;
|
|
118
|
-
/**
|
|
119
|
-
* 初始化处理编辑器需要容器返回数据的方法
|
|
120
|
-
*/
|
|
121
|
-
private bindContainerMethodHandlers;
|
|
122
|
-
private initEditor;
|
|
123
|
-
private shouldHandleMessage;
|
|
124
|
-
private getContainerRect;
|
|
125
|
-
private updateCollaborators;
|
|
126
|
-
}
|
|
127
|
-
/**
|
|
128
|
-
* 需要容器提供给编辑器使用的方法
|
|
129
|
-
*/
|
|
130
|
-
export interface ContainerMethods {
|
|
131
|
-
/**
|
|
132
|
-
* 获取容器尺寸等信息
|
|
133
|
-
*/
|
|
134
|
-
[ContainerMethod.GetContainerRect]?: () => ContainerRect;
|
|
135
|
-
/**
|
|
136
|
-
* 处理石墨文档内点击链接事件
|
|
137
|
-
*/
|
|
138
|
-
[ContainerMethod.OpenLink]?: (
|
|
139
|
-
/**
|
|
140
|
-
* 目标链接
|
|
141
|
-
*/
|
|
142
|
-
url: string,
|
|
143
|
-
/**
|
|
144
|
-
* 意义和 window.open 的第二个参数一样,属于石墨建议的值,具体是否需要使用请接入方自行判断。
|
|
145
|
-
*/
|
|
146
|
-
target?: string) => void;
|
|
147
|
-
/**
|
|
148
|
-
* 生成插入到石墨文档中的链接,用于处理 @ 文件等功能需要插入的链接
|
|
149
|
-
*/
|
|
150
|
-
[ContainerMethod.GenerateUrl]?: GenerateUrlHandler;
|
|
151
|
-
/**
|
|
152
|
-
* 用于移动端处理 @ 点击事件
|
|
153
|
-
*/
|
|
154
|
-
[ContainerMethod.MentionClickHandlerForMobile]?: (payload: MouseMovePayload) => void;
|
|
155
|
-
/**
|
|
156
|
-
* 用于从客户业务 URL 中获取对应的文件 ID,供编辑器使用。
|
|
157
|
-
*/
|
|
158
|
-
[ContainerMethod.GetFileInfoFromUrl]?: (url: string) => Promise<{
|
|
159
|
-
/**
|
|
160
|
-
* 文件 ID
|
|
161
|
-
*/
|
|
162
|
-
fileId: string;
|
|
163
|
-
} | undefined>;
|
|
164
|
-
/**
|
|
165
|
-
* 用于显示客户自定义toast。
|
|
166
|
-
*/
|
|
167
|
-
[ContainerMethod.ShowToast]?: (options: ShowToastOptions) => Promise<void>;
|
|
168
|
-
/**
|
|
169
|
-
* 通知用户执行自定义操作,操作由用户自定义按钮触发
|
|
170
|
-
*/
|
|
171
|
-
[ContainerMethod.HandleCustomTask]?: (taskId: string) => Promise<void>;
|
|
172
|
-
/**
|
|
173
|
-
* 请求容器获取鉴权信息
|
|
174
|
-
* @returns {Credentials} 鉴权信息
|
|
175
|
-
*/
|
|
176
|
-
[ContainerMethod.GetCredentials]: () => Promise<Credentials>;
|
|
177
|
-
}
|
|
178
|
-
export declare enum Event {
|
|
179
|
-
/**
|
|
180
|
-
* SDK 初始化事件,用于内部逻辑
|
|
181
|
-
*/
|
|
182
|
-
SDKInit = "SDKInit",
|
|
183
|
-
/**
|
|
184
|
-
* 错误事件,包含编辑器抛出的错误
|
|
185
|
-
*/
|
|
186
|
-
Error = "error",
|
|
187
|
-
/**
|
|
188
|
-
* OfficeSDK 状态变化事件
|
|
189
|
-
*/
|
|
190
|
-
ReadyState = "readyState",
|
|
191
|
-
/**
|
|
192
|
-
* 编辑器事件
|
|
193
|
-
*/
|
|
194
|
-
EditorEvent = "editorEvent"
|
|
195
|
-
}
|
|
196
|
-
export interface Message {
|
|
197
|
-
uuid?: string;
|
|
198
|
-
event: string;
|
|
199
|
-
body: any;
|
|
200
|
-
error?: Error;
|
|
201
|
-
}
|
|
202
|
-
export interface MessageEventPayload {
|
|
203
|
-
event: InvokeMethod;
|
|
204
|
-
data: unknown[];
|
|
205
|
-
}
|
|
206
|
-
export interface ContainerMethodPayload {
|
|
207
|
-
method: ContainerMethod;
|
|
208
|
-
args: unknown[];
|
|
209
|
-
}
|
|
210
|
-
export interface ReadyStateEvent {
|
|
211
|
-
state: ReadyState;
|
|
212
|
-
fileType: FileType;
|
|
213
|
-
error?: Error | string;
|
|
214
|
-
}
|
|
215
|
-
/**
|
|
216
|
-
* 事件回调函数
|
|
217
|
-
*/
|
|
218
|
-
export type EventCallback = (...args: any[]) => any;
|
|
219
|
-
/**
|
|
220
|
-
* SDK toast 文案配置,值仅允许字符串或嵌套对象。
|
|
221
|
-
*/
|
|
222
|
-
export interface SDKToastOptions {
|
|
223
|
-
[key: string]: string | SDKToastOptions | undefined;
|
|
224
|
-
}
|
|
225
|
-
/**
|
|
226
|
-
* OfficeSDK 初始化参数
|
|
227
|
-
*/
|
|
228
|
-
export interface OfficeSDKOptions extends Omit<ContainerMethods, 'getContainerRect'> {
|
|
229
|
-
/**
|
|
230
|
-
* 石墨 SDK 服务器地址
|
|
231
|
-
*/
|
|
232
|
-
endpoint: string;
|
|
233
|
-
/**
|
|
234
|
-
* 您要打开的文档 ID
|
|
235
|
-
*/
|
|
236
|
-
fileId: string;
|
|
237
|
-
/**
|
|
238
|
-
* 用于石墨 SDK 鉴权用的签名
|
|
239
|
-
*/
|
|
240
|
-
signature: string;
|
|
241
|
-
/**
|
|
242
|
-
* iframe 挂载的目标容器
|
|
243
|
-
*/
|
|
244
|
-
container: HTMLElement;
|
|
245
|
-
/**
|
|
246
|
-
* 用于您系统鉴权使用的 token
|
|
247
|
-
*/
|
|
248
|
-
token: string;
|
|
249
|
-
/**
|
|
250
|
-
* 刷新鉴权信息的间隔时间,单位为毫秒
|
|
251
|
-
*/
|
|
252
|
-
refreshCredentialsInterval: number;
|
|
253
|
-
/**
|
|
254
|
-
* 添加到 iframe URLSearchParams 的参数列表
|
|
255
|
-
*/
|
|
256
|
-
params?: {
|
|
257
|
-
[key: string]: string;
|
|
258
|
-
};
|
|
259
|
-
/**
|
|
260
|
-
* 石墨 SDK URL 参数 url?smParams={params},用于传递石墨 SDK 内部需要的参数。
|
|
261
|
-
*/
|
|
262
|
-
smParams?: string | Record<string, unknown> | Array<string | Record<string, unknown>>;
|
|
263
|
-
/**
|
|
264
|
-
* 指定石墨 SDK 编辑器界面语言,添加到 iframe URLSearchParams 的参数列表。
|
|
265
|
-
* 若未指定,则 iframe 使用服务器设置的默认语言。
|
|
266
|
-
*
|
|
267
|
-
* 目前支持的语言取值:
|
|
268
|
-
* 1. zh-CN(简体中文)
|
|
269
|
-
* 2. en(英文)
|
|
270
|
-
* 3. ja(日文)
|
|
271
|
-
* 4. ar-SA(阿拉伯语)
|
|
272
|
-
* 5. ru-RU(俄语)
|
|
273
|
-
*/
|
|
274
|
-
lang?: 'zh-CN' | 'en' | 'ja' | 'ar-SA' | 'ru-RU';
|
|
275
|
-
/**
|
|
276
|
-
* 是否禁用提及的浮动卡片组件
|
|
277
|
-
*/
|
|
278
|
-
disableMentionCards?: DisableMentionCards;
|
|
279
|
-
/**
|
|
280
|
-
* 用于覆盖编辑器内部分 toast 文案。
|
|
281
|
-
* 支持套件类型:form、documentPro、presentation、spreadsheet、table(仅对支持 ui 配置的套件生效)。
|
|
282
|
-
* 当前已文档化支持字段:ui.toast.tips.edit.noPermission。
|
|
283
|
-
* 其他字段暂不作为稳定公共 API 承诺。
|
|
284
|
-
*/
|
|
285
|
-
ui?: {
|
|
286
|
-
toast?: SDKToastOptions;
|
|
287
|
-
};
|
|
288
|
-
/**
|
|
289
|
-
* 用于控制 iframe feature policy (https://developer.mozilla.org/zh-CN/docs/Web/HTTP/Headers/Feature-Policy) 。
|
|
290
|
-
* 会覆盖默认的 policy,因此使用时需要注意把需要的 policy 写完整。
|
|
291
|
-
*/
|
|
292
|
-
allowPolicy?: string;
|
|
293
|
-
/**
|
|
294
|
-
* 是否开启调试模式,true 会通过 console 打印一些信息
|
|
295
|
-
*/
|
|
296
|
-
debug?: boolean;
|
|
297
|
-
/**
|
|
298
|
-
* 编辑器插件配置,不是所有类型的套件都支持,以套件是否提供 PluginOptions 为准
|
|
299
|
-
*/
|
|
300
|
-
plugins?: Spreadsheet.PluginOptions | Table.PluginOptions;
|
|
301
|
-
/**
|
|
302
|
-
* iframe postMessage 的目标 origin,默认是当前页面的 location.origin。
|
|
303
|
-
* @deprecated
|
|
304
|
-
*/
|
|
305
|
-
targetOrigin?: string;
|
|
306
|
-
/**
|
|
307
|
-
* 使用什么设备类型模式,会直接影响功能和样式,不传值或空字符串则默认用 user-agent 自动判断。受版本限制,不是所有类型都支持。
|
|
308
|
-
*/
|
|
309
|
-
deviceMode?: DeviceMode;
|
|
310
|
-
/**
|
|
311
|
-
* 是否禁用默认的签名组件,以支持自定义签名组件。受版本限制,部分版本的特定类型文档才支持。
|
|
312
|
-
*/
|
|
313
|
-
disableSignatureComponent?: boolean;
|
|
314
|
-
/**
|
|
315
|
-
* 是否显示内置的加载动画,只在静态资源加载到编辑器渲染这个阶段显示
|
|
316
|
-
*/
|
|
317
|
-
showLoadingEffect?: boolean;
|
|
318
|
-
/**
|
|
319
|
-
* 是否展示 SDK 默认的加载遮罩,覆盖 container,默认 false
|
|
320
|
-
*/
|
|
321
|
-
showLoading?: boolean;
|
|
322
|
-
/**
|
|
323
|
-
* 用于在编辑器发起 API 请求时,对请求参数进行修改的函数。详细用法见文档。
|
|
324
|
-
*/
|
|
325
|
-
apiAdaptor?: APIAdaptor;
|
|
326
|
-
/**
|
|
327
|
-
* 用于在编辑器发起 API 请求时,对请求参数进行修改的函数时传入的上下文数据。
|
|
328
|
-
*/
|
|
329
|
-
apiAdaptorContext?: RequestContext;
|
|
330
|
-
/**
|
|
331
|
-
* 用于判断通信消息过期时间,过期后的消息会被抛弃,默认 5 分钟。
|
|
332
|
-
*/
|
|
333
|
-
messageExpires?: number;
|
|
334
|
-
/**
|
|
335
|
-
* 加密后的用户id
|
|
336
|
-
*/
|
|
337
|
-
userUuid?: string;
|
|
338
|
-
}
|
package/assets/loading.d.ts
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export declare const LoadingSvg = "data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMzIiIGhlaWdodD0iMzIiIHZpZXdCb3g9IjAgMCAzMiAzMiIgZmlsbD0ibm9uZSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB4bWxuczp4bGluaz0iaHR0cDovL3d3dy53My5vcmcvMTk5OS94bGluayI+CjxyZWN0IHdpZHRoPSIzMiIgaGVpZ2h0PSIzMiIgZmlsbD0idXJsKCNwYXR0ZXJuMF8yNDA3NV8yMjMyNikiLz4KPGRlZnM+CjxwYXR0ZXJuIGlkPSJwYXR0ZXJuMF8yNDA3NV8yMjMyNiIgcGF0dGVybkNvbnRlbnRVbml0cz0ib2JqZWN0Qm91bmRpbmdCb3giIHdpZHRoPSIxIiBoZWlnaHQ9IjEiPgo8dXNlIHhsaW5rOmhyZWY9IiNpbWFnZTBfMjQwNzVfMjIzMjYiIHRyYW5zZm9ybT0ic2NhbGUoMC4wMTA0MTY3KSIvPgo8L3BhdHRlcm4+CjxpbWFnZSBpZD0iaW1hZ2UwXzI0MDc1XzIyMzI2IiB3aWR0aD0iOTYiIGhlaWdodD0iOTYiIHByZXNlcnZlQXNwZWN0UmF0aW89Im5vbmUiIHhsaW5rOmhyZWY9ImRhdGE6aW1hZ2UvcG5nO2Jhc2U2NCxpVkJPUncwS0dnb0FBQUFOU1VoRVVnQUFBR0FBQUFCZ0NBWUFBQURpbUhjNEFBQUFBWE5TUjBJQXJzNGM2UUFBQ2R0SlJFRlVlRjd0WFMyWTJ6Z1FWWmtEU3dzTEM1Y1dGaFlXSGoxWWVPd08zckdEaGFVSEZ4WVdMbDFZdUhCcFlNSnkzeWdhN1dnOG94bkpkcktKc3lTT0xjM1Blek1qMlpHOGI4THQ3NndJdkRtcjlwdnljQ1BnekVGd0krQkdRQWgvM3o4ZmRpR0VUUWlCZnY3ejVkMHNBZkxuL2ZPQnk0YnZmODBrZndxSHN6allZNEFHK3B4QWVYWE1SWFFQRGljbkFFRHBNYlExV2srbHA4Y1gydWRrQlBRQ1FvMzFrbkJLWGErZWdEbkFRQ2RQU1FEbzlPcWJRc0tpR1NDQlB3eWJzTi9EVVB2eXg4OXAzejJBY0owOStzQXkycytqdDVlRVJRaEFFS2dURnNqY2FlbTdKeW9sM1pxc0ZwdVdJbUYyQWpnQUVnbTFjM2hOYS9QSDU3ZFZtMEUvbHpGRkgyUXJsV2ZwYjgyRVdRbEE1OEVJYnJqM25OWFBpc1IvZjJ3UFhBWitsMnl3OUVsa3prbkNMQVJRcDZtVE5ZZTFkbFlmeTNtUExSN2RWaHNyRUx5Wk1Cc0JYb1ZUMmxuZ28yd2dZWXFlbHI1ZW16U1prd2c0cGFQZ2dOZlpVOXJsdFdsMkFscWRIR0JjYUFrdG1BcVNQcTJPdHRyWGFOcW9lYXQ5S0tBckE2aHpITmhXb0QzdGU1M2pKQXdEVEE1SzdFYjJlOXF3WUFJWlg0M1oyYXdaQUk1WndGTm5hVnM4bG9DWDJ2V0NUOGNEUzFlOFR4QXlsQk5tK2R4amEzTUdmSU5wWHZJT0RlU2dXb0FYNUtTSXl6S0dFTDUrcXMvMWU4c0YyazUxUVViVTdCMzVodlp5dXhPQnJTUTBFWkFkU0ZZQkVTTm5pR0Z3TVRwSVBtRWd5QVFtbytINlVxQkxaSDM3Q2ZjS3N1MW9IN1c1OEFGdEpyYno2eTNseUUwQWdDOEJxZ0U4eWc1S0dndXJGb043bzE4amdnSStBbDhEV2NzQ2N0NGJVSDRDZm00UG85RGx4Yk1wbDA4YjlUWGlJQ09pYnkyMVZQS1Y0T0VOS2hjQmhZSHhGakVaNnpsV0hQTkd5SndSMzBVQ2dvcSswcUFERWlRTVVodVBqeVlCR3ZneEFMQytLMFJnbXlLeVlNcTIwQ0E3bGF6b0svTWxCM29LSlA0ZGdqR1dXOUlQMjNqOGRCRkFnU3hBNVVxcGtTUkxXZ3lhQ3VJYy9ZRUlIang1NWtiS2xOVUcrdnh1QkZ1VmdHd0lteWYzbEVwUE5Nd0IzbHd5V24zWE1JSHpOUktxQkh5SDZSb2JtMmlHZXE5ZEd2aElZcXYvMmpqZVJRQlZMb0d1amIvY0NDc0Y1NHJZcGVSSUpHaHpFSTRKL2E3aG9HWUFLSjdEcVdzZ0lPSWdQYXRvQUtpSmdBaSs5ZUFEbFZjTXUzVHdhU25LV0J2ei94RlpwTDJFaDVnQnJ1aFhDTm9NSWV6Mjl1amZFRHl2b3FrTEU4UFNOZ0lTd0Fnb3l1YmZSenBUdjJ1Si9wd0ZEOXZqK2xMK0lJdVhwMHFHL1A1eC9KQnhsQUhBZEFHeVJBU1pjMldqaHJTNDlncWpuNWNpaWsvck1RL01FUUgvUFd3UGtXVUNLQ3F4UHNIUWE0dDhtdUhmV1JaazhBbFdGRGZwK0RlV0JlTU1JRXBNQmJDa1BOVjhWTVlWdklvQ1BxTVJHS0JXTUlyWDB4SjhpbEZCQUFnSFd5RURRRURQOFNvSVNFQnErRWo0NGJscUJrUjJxZkRHNDJzSEh4TXBCNnFCRDRLZU41Mmt3RFl6b0RkajEwYkFIRGlKSldnT3diMHlMcUVmWmtDdnJZdGt3RnFpbjVlaEdnbkRKZ1MyRWo4M1I3eHlCaUNyMWhPSTRqNkRLRmdyQWRwOUZ5V0d0L2xDcHFJRkFlb3o3UVIwN1RFSUZkcWJtcGZVRHdLVzQwVnZpcTNmVEJDdlRNRDk0L1lBNllKcGt6L3hKMkFrSVcxanpJOWswL20xWmNBSUwwQ2ZZS1JoaVcxR0plZyszUU1Vei9OWjVLZGJnK052OG9TSXRZRVBXQmQ0OGFDVTFpM1FOcHNRdnR3ZG53c1ZHVkRza3NZTnU0bFo2OXJhU2xBazRYRjdpTGpVTUpKd0RDR01TeEJrQU44bDdSRk0yTHlrR2o3VjFpYndoZDNudmd5SXorU0dzSSszZE93OUF1UTdDcHZxMUtYMWp5VEU1eEhDZXhZa3ZFaGJtUUFMY0txTXRWMGJDUUIrRVp3S2RqeUFoODBROW1FL0hnTitQTzRPUE5Kalp4aHk0K3pvSlJPNDBEWFdmem9HVUd5T1U5RngxZEF3S3dkaDdCejJoUkFrZ2dvcHpoRkdMNjJNOU5vYkF4WnhJbmhoaEdjaWVKdjAvZlBkcHB3RmdVRG94SVY2enEydC9DQnBJZ2tKNElqYmJuK3NIQUpCb3pHQUNwTkFSeUgwR2oxR1Juc2o2dEw2OFlEVmNMSHd5aVVJQlVZZ090YkFySldBM3NCUlM5QlVnYjM5TDYxZkViQ054dE5nbFRPQUNaUjJGM0tkdHd4b1kyR1VBZEQ5NTY5ZDNEdlY4a2ZKV1FzSk5QcEhPeW1GYmE2eHFwUHpZZ1pBb3grL2RuR3JqclNMa1F1UnNtSk5CRmpBMXpEODlPRTRCWVcvNGlkSllMWVZmTHFia0FwdXlhSkxhNHVWUXQxSlNhSmR3bFBOQUJBY3AwMHBDMXFQMTBDQUYzd0FYc05QelFBY0I2WkU1TFdUZ0VIYWl4SEhaN1F5YnFvQ01PeWFTWmlLejQyQTN0Qk5zOFFKM1dOWGt3QXNROWJxaURnclVsNUJjNDBaOEFCVGRJSys5SU84aGdtMmxYQVJOMmpRTkpOQXJwRlRVelkxZXM3Wkh6SFJnczZEazVzQVpIdktzZ3VJbG12SkJBNis5cFlZbWdIU3NwU1BaUDR2M2dmUUNNc2sxTjUrd3Q4Y2tnVEVWUk5EQ0IvZnY5eHduRE42cCtnRzhPT1VNcjNsWlFTc2hBOS95VWNJUVFKL2RDTldFUEIwdkN1dXZoYUNHWmJmcGtLSXVPUXNnQ0JFVERJT0ZQREthelBpUFVBS1JEaG9KZ0FFWkFPczlYZTFBbmpCbWZDUWdqQ1NZTTFLS2hocDRGY3pJQktBQm5nR0E2a0FrcFNxR1RHbFJDelZWd1JmWGJ0SnBvT2NDQ2cvbFZKc3ZxeWpNQVM5OVJCQzJ1Qkd2a3Nob1JwNFBCc01VaXlmL1FTa1p4dDBWeVFmSU9oK3NkRUxrRkpSdEF4YUtxSzljbFh3aFlCU1gvQkUybG9URVpNQU1QenhhUmUzTGtramNrRUlhOFBKUW9KZUl3a1VlR25yTGQveGlGamtsWWRwK3hIZFlYcm5tQVc2Q01EeFFGc2NCOWM5MTJnN09MYWl3eHUxVTlzQitEMzJqOEJQaHNCNUQvam1JRXdkd3l5b3JGQjByMVBsTXM1RmhPWlRMYUFzLy9HNjF5ZDNCdEJTVkRNQzJubVhTdElkbWQ2SW1ScnQyQi9BcjluYTR3ZjYwK0pMRXdGSVFnMEVDcW9YcktMUEVNTGR1Mlh1b0JGMENxNW1ZN01mYWVCdEFiK3BCUEZ5NUFWWGJlZFllOVRxakthTEFqL1pia05BcTgzTkdSQ3o0UG40bUtMNHF3RnFnRzB0ZTJsMUtwY1p5YzZGR09pMXNZdUFvaFF4Y1BrUDFkUmZDMmlPRFczZjZxQVU5WnB0a2wxdVA0YmpVNG9QbldXem13QUE2OWZ6eXpvaURkeWFjeUJEV2pXZzlmRTZDZUJycXp1c2dMRDhrT1MyQmdlMVlSSUJHZ2xTOUxTZW8rUmdYNitqR0JnMWNqMzJlTExBYTVOVytTWVRnQ1RBSjMrUnQ3Uzh4WHRPa3VmSkFBNCtYeDdTWW1PdExkam5zY2NhY21ZaEFKV0E4M2hzclMzU25CdTlqWjJ0VTdLY1Joc3MvWlJnN3pINlp0bGdnVDVyQ2VMS0tBa3RobmpiV3M2Zlc3L1hEMnczYXdaSW1kQnFrTlgrbkFSWXVpM2JwZXVMRU9BaHduRWZKdnBqZ2JCRUJsZzZlNEJmTkFPb1FVOHdWWFZZcUsyendhNXcvYjF6cm8wa1dMOGl4cG1XOU05N3lMa2x3UWY5aTJaQVNjUWg3aXJrVG52VzJXQWJMeGljZEkySXZMMVUrT2NaWGwyTzJLbzJPUmtCYU1YVDloRDNJeGMvbmFZOXlPSXZuZWxhS3lCSVFwYkpkRkJVYUp2M2I5K2NGSk9US2lzeVluczQ0R3RveGRlK2t6ZWlla3NQRHpVZ0czUlk4dUVWa2FjRy9tUmpnQ2RGRWFqOEV0SUVmaS93R2hGTHlmZjRxTFU1V3daTU1mcWErdDRJT0RPYk53SnVCSndaZ1RPci94OGdaQ1haZUNqMmJRQUFBQUJKUlU1RXJrSmdnZz09Ii8+CjwvZGVmcz4KPC9zdmc+Cg==";
|