@xpert-ai/plugin-excalidraw 0.1.1 → 0.2.0
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/.xpertai-plugin/plugin.json +1 -1
- package/dist/index.js +153 -0
- package/dist/index.js.map +1 -0
- package/dist/lib/constants.js +42 -0
- package/dist/lib/constants.js.map +1 -0
- package/dist/lib/entities/excalidraw-action-log.entity.js +69 -0
- package/dist/lib/entities/excalidraw-action-log.entity.js.map +1 -0
- package/dist/lib/entities/excalidraw-drawing-version.entity.js +82 -0
- package/dist/lib/entities/excalidraw-drawing-version.entity.js.map +1 -0
- package/dist/lib/entities/excalidraw-drawing.entity.js +94 -0
- package/dist/lib/entities/excalidraw-drawing.entity.js.map +1 -0
- package/dist/lib/entities/index.js +4 -0
- package/dist/lib/entities/index.js.map +1 -0
- package/dist/lib/excalidraw-view.provider.js +423 -0
- package/dist/lib/excalidraw-view.provider.js.map +1 -0
- package/dist/lib/excalidraw.middleware.js +173 -0
- package/dist/lib/excalidraw.middleware.js.map +1 -0
- package/dist/lib/excalidraw.plugin.js +27 -0
- package/dist/lib/excalidraw.plugin.js.map +1 -0
- package/dist/lib/excalidraw.service.js +441 -0
- package/dist/lib/excalidraw.service.js.map +1 -0
- package/dist/lib/excalidraw.templates.js +78 -0
- package/dist/lib/excalidraw.templates.js.map +1 -0
- package/dist/lib/remote-components/excalidraw-workbench/src/i18n.js +103 -0
- package/dist/lib/remote-components/excalidraw-workbench/src/i18n.js.map +1 -0
- package/dist/lib/remote-components/excalidraw-workbench/src/react-dom-client-shim.js +4 -0
- package/dist/lib/remote-components/excalidraw-workbench/src/react-dom-client-shim.js.map +1 -0
- package/dist/lib/remote-components/excalidraw-workbench/src/react-dom-shim.js +11 -0
- package/dist/lib/remote-components/excalidraw-workbench/src/react-dom-shim.js.map +1 -0
- package/dist/lib/remote-components/excalidraw-workbench/src/react-jsx-runtime-shim.js +8 -0
- package/dist/lib/remote-components/excalidraw-workbench/src/react-jsx-runtime-shim.js.map +1 -0
- package/dist/lib/remote-components/excalidraw-workbench/src/react-shim.js +36 -0
- package/dist/lib/remote-components/excalidraw-workbench/src/react-shim.js.map +1 -0
- package/dist/lib/remote-components/excalidraw-workbench/src/runtime.js +198 -0
- package/dist/lib/remote-components/excalidraw-workbench/src/runtime.js.map +1 -0
- package/dist/lib/remote-components/excalidraw-workbench/src/styles.js +324 -0
- package/dist/lib/remote-components/excalidraw-workbench/src/styles.js.map +1 -0
- package/dist/lib/remote-components/excalidraw-workbench/src/vendor.js +4 -0
- package/dist/lib/remote-components/excalidraw-workbench/src/vendor.js.map +1 -0
- package/dist/lib/types.js +2 -0
- package/dist/lib/types.js.map +1 -0
- package/package.json +1 -1
|
@@ -0,0 +1,103 @@
|
|
|
1
|
+
const translations = {
|
|
2
|
+
zh_Hans: {
|
|
3
|
+
newDrawing: '新建',
|
|
4
|
+
save: '保存',
|
|
5
|
+
saveChanges: '保存当前改动',
|
|
6
|
+
saveNoChanges: '没有改动,无需保存',
|
|
7
|
+
import: '导入',
|
|
8
|
+
exportJson: 'JSON',
|
|
9
|
+
exportPng: 'PNG',
|
|
10
|
+
exportSvg: 'SVG',
|
|
11
|
+
askAssistant: '发送',
|
|
12
|
+
search: '搜索图形',
|
|
13
|
+
allStatuses: '全部状态',
|
|
14
|
+
draft: '草稿',
|
|
15
|
+
reviewed: '已审核',
|
|
16
|
+
archived: '已归档',
|
|
17
|
+
versions: '版本',
|
|
18
|
+
restore: '恢复',
|
|
19
|
+
archive: '归档',
|
|
20
|
+
markReviewed: '标记已审核',
|
|
21
|
+
backToDraft: '退回草稿',
|
|
22
|
+
mermaid: 'Mermaid',
|
|
23
|
+
convert: '转换',
|
|
24
|
+
saveConverted: '保存转换',
|
|
25
|
+
title: '标题',
|
|
26
|
+
description: '描述',
|
|
27
|
+
drawingRequest: '绘图需求',
|
|
28
|
+
changeSummary: '变更摘要',
|
|
29
|
+
operationCompleted: '操作已完成',
|
|
30
|
+
operationFailed: '操作失败',
|
|
31
|
+
requestTimeout: '请求超时',
|
|
32
|
+
remoteRequestFailed: '远程请求失败',
|
|
33
|
+
unknownError: '未知错误',
|
|
34
|
+
noDrawing: '请选择或新建图形',
|
|
35
|
+
dirty: '未保存',
|
|
36
|
+
saved: '已保存',
|
|
37
|
+
mermaidNotice: 'Flowchart 可结构化转换,其他 Mermaid 类型可能以图片进入画布。',
|
|
38
|
+
untitled: '未命名图形',
|
|
39
|
+
drawingCreated: '图形已创建',
|
|
40
|
+
convertFailed: 'Mermaid 转换失败',
|
|
41
|
+
agentDrawingUpdated: 'Agent 绘图结果已刷新',
|
|
42
|
+
mermaidAutoPreviewed: 'Mermaid 草稿已自动转换为预览,确认后请保存转换',
|
|
43
|
+
drawings: '图形',
|
|
44
|
+
inspector: '详情',
|
|
45
|
+
collapseDrawings: '收起图形侧栏',
|
|
46
|
+
expandDrawings: '展开图形侧栏',
|
|
47
|
+
collapseInspector: '收起详情侧栏',
|
|
48
|
+
expandInspector: '展开详情侧栏'
|
|
49
|
+
},
|
|
50
|
+
en_US: {
|
|
51
|
+
newDrawing: 'New',
|
|
52
|
+
save: 'Save',
|
|
53
|
+
saveChanges: 'Save current changes',
|
|
54
|
+
saveNoChanges: 'No changes to save',
|
|
55
|
+
import: 'Import',
|
|
56
|
+
exportJson: 'JSON',
|
|
57
|
+
exportPng: 'PNG',
|
|
58
|
+
exportSvg: 'SVG',
|
|
59
|
+
askAssistant: 'Send',
|
|
60
|
+
search: 'Search drawings',
|
|
61
|
+
allStatuses: 'All statuses',
|
|
62
|
+
draft: 'Draft',
|
|
63
|
+
reviewed: 'Reviewed',
|
|
64
|
+
archived: 'Archived',
|
|
65
|
+
versions: 'Versions',
|
|
66
|
+
restore: 'Restore',
|
|
67
|
+
archive: 'Archive',
|
|
68
|
+
markReviewed: 'Mark reviewed',
|
|
69
|
+
backToDraft: 'Back to draft',
|
|
70
|
+
mermaid: 'Mermaid',
|
|
71
|
+
convert: 'Convert',
|
|
72
|
+
saveConverted: 'Save converted',
|
|
73
|
+
title: 'Title',
|
|
74
|
+
description: 'Description',
|
|
75
|
+
drawingRequest: 'Drawing request',
|
|
76
|
+
changeSummary: 'Change summary',
|
|
77
|
+
operationCompleted: 'Operation completed',
|
|
78
|
+
operationFailed: 'Operation failed',
|
|
79
|
+
requestTimeout: 'Request timed out',
|
|
80
|
+
remoteRequestFailed: 'Remote request failed',
|
|
81
|
+
unknownError: 'Unknown error',
|
|
82
|
+
noDrawing: 'Select or create a drawing',
|
|
83
|
+
dirty: 'Unsaved',
|
|
84
|
+
saved: 'Saved',
|
|
85
|
+
mermaidNotice: 'Flowcharts convert to editable elements best; other Mermaid types may enter as images.',
|
|
86
|
+
untitled: 'Untitled drawing',
|
|
87
|
+
drawingCreated: 'Drawing created',
|
|
88
|
+
convertFailed: 'Mermaid conversion failed',
|
|
89
|
+
agentDrawingUpdated: 'Agent drawing result refreshed',
|
|
90
|
+
mermaidAutoPreviewed: 'Mermaid draft auto-converted for preview. Save the conversion after review.',
|
|
91
|
+
drawings: 'Drawings',
|
|
92
|
+
inspector: 'Inspector',
|
|
93
|
+
collapseDrawings: 'Collapse drawings sidebar',
|
|
94
|
+
expandDrawings: 'Expand drawings sidebar',
|
|
95
|
+
collapseInspector: 'Collapse inspector',
|
|
96
|
+
expandInspector: 'Expand inspector'
|
|
97
|
+
}
|
|
98
|
+
};
|
|
99
|
+
export function createTranslator(locale) {
|
|
100
|
+
const dictionary = String(locale || '').toLowerCase().startsWith('en') ? translations.en_US : translations.zh_Hans;
|
|
101
|
+
return (key) => dictionary[key] || translations.en_US[key] || key;
|
|
102
|
+
}
|
|
103
|
+
//# sourceMappingURL=i18n.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"i18n.js","sourceRoot":"","sources":["../../../../../src/lib/remote-components/excalidraw-workbench/src/i18n.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"react-dom-client-shim.js","sourceRoot":"","sources":["../../../../../src/lib/remote-components/excalidraw-workbench/src/react-dom-client-shim.ts"],"names":[],"mappings":"AAAA,MAAM,cAAc,GAAI,MAAc,CAAC,QAAQ,CAAA;AAE/C,MAAM,CAAC,MAAM,UAAU,GAAG,cAAc,CAAC,UAAU,CAAA;AACnD,MAAM,CAAC,MAAM,WAAW,GAAG,cAAc,CAAC,WAAW,CAAA"}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
const ReactDOMGlobal = window.ReactDOM;
|
|
2
|
+
export default ReactDOMGlobal;
|
|
3
|
+
export const createPortal = ReactDOMGlobal.createPortal;
|
|
4
|
+
export const flushSync = ReactDOMGlobal.flushSync;
|
|
5
|
+
export const findDOMNode = ReactDOMGlobal.findDOMNode;
|
|
6
|
+
export const hydrate = ReactDOMGlobal.hydrate;
|
|
7
|
+
export const render = ReactDOMGlobal.render;
|
|
8
|
+
export const unstable_batchedUpdates = ReactDOMGlobal.unstable_batchedUpdates;
|
|
9
|
+
export const unmountComponentAtNode = ReactDOMGlobal.unmountComponentAtNode;
|
|
10
|
+
export const version = ReactDOMGlobal.version;
|
|
11
|
+
//# sourceMappingURL=react-dom-shim.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"react-dom-shim.js","sourceRoot":"","sources":["../../../../../src/lib/remote-components/excalidraw-workbench/src/react-dom-shim.ts"],"names":[],"mappings":"AAAA,MAAM,cAAc,GAAI,MAAc,CAAC,QAAQ,CAAA;AAE/C,eAAe,cAAc,CAAA;AAC7B,MAAM,CAAC,MAAM,YAAY,GAAG,cAAc,CAAC,YAAY,CAAA;AACvD,MAAM,CAAC,MAAM,SAAS,GAAG,cAAc,CAAC,SAAS,CAAA;AACjD,MAAM,CAAC,MAAM,WAAW,GAAG,cAAc,CAAC,WAAW,CAAA;AACrD,MAAM,CAAC,MAAM,OAAO,GAAG,cAAc,CAAC,OAAO,CAAA;AAC7C,MAAM,CAAC,MAAM,MAAM,GAAG,cAAc,CAAC,MAAM,CAAA;AAC3C,MAAM,CAAC,MAAM,uBAAuB,GAAG,cAAc,CAAC,uBAAuB,CAAA;AAC7E,MAAM,CAAC,MAAM,sBAAsB,GAAG,cAAc,CAAC,sBAAsB,CAAA;AAC3E,MAAM,CAAC,MAAM,OAAO,GAAG,cAAc,CAAC,OAAO,CAAA"}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
const ReactGlobal = window.React;
|
|
2
|
+
export const Fragment = ReactGlobal.Fragment;
|
|
3
|
+
export function jsx(type, props, key) {
|
|
4
|
+
return ReactGlobal.createElement(type, key === undefined ? props : { ...props, key });
|
|
5
|
+
}
|
|
6
|
+
export const jsxs = jsx;
|
|
7
|
+
export const jsxDEV = jsx;
|
|
8
|
+
//# sourceMappingURL=react-jsx-runtime-shim.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"react-jsx-runtime-shim.js","sourceRoot":"","sources":["../../../../../src/lib/remote-components/excalidraw-workbench/src/react-jsx-runtime-shim.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,GAAI,MAAc,CAAC,KAAK,CAAA;AAEzC,MAAM,CAAC,MAAM,QAAQ,GAAG,WAAW,CAAC,QAAQ,CAAA;AAC5C,MAAM,UAAU,GAAG,CAAC,IAAS,EAAE,KAAU,EAAE,GAAS;IAClD,OAAO,WAAW,CAAC,aAAa,CAAC,IAAI,EAAE,GAAG,KAAK,SAAS,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,GAAG,KAAK,EAAE,GAAG,EAAE,CAAC,CAAA;AACvF,CAAC;AACD,MAAM,CAAC,MAAM,IAAI,GAAG,GAAG,CAAA;AACvB,MAAM,CAAC,MAAM,MAAM,GAAG,GAAG,CAAA"}
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
const ReactGlobal = window.React;
|
|
2
|
+
export default ReactGlobal;
|
|
3
|
+
export const Children = ReactGlobal.Children;
|
|
4
|
+
export const Component = ReactGlobal.Component;
|
|
5
|
+
export const Fragment = ReactGlobal.Fragment;
|
|
6
|
+
export const Profiler = ReactGlobal.Profiler;
|
|
7
|
+
export const PureComponent = ReactGlobal.PureComponent;
|
|
8
|
+
export const StrictMode = ReactGlobal.StrictMode;
|
|
9
|
+
export const Suspense = ReactGlobal.Suspense;
|
|
10
|
+
export const cloneElement = ReactGlobal.cloneElement;
|
|
11
|
+
export const createContext = ReactGlobal.createContext;
|
|
12
|
+
export const createElement = ReactGlobal.createElement;
|
|
13
|
+
export const createFactory = ReactGlobal.createFactory;
|
|
14
|
+
export const createRef = ReactGlobal.createRef;
|
|
15
|
+
export const forwardRef = ReactGlobal.forwardRef;
|
|
16
|
+
export const isValidElement = ReactGlobal.isValidElement;
|
|
17
|
+
export const lazy = ReactGlobal.lazy;
|
|
18
|
+
export const memo = ReactGlobal.memo;
|
|
19
|
+
export const startTransition = ReactGlobal.startTransition;
|
|
20
|
+
export const useCallback = ReactGlobal.useCallback;
|
|
21
|
+
export const useContext = ReactGlobal.useContext;
|
|
22
|
+
export const useDebugValue = ReactGlobal.useDebugValue;
|
|
23
|
+
export const useDeferredValue = ReactGlobal.useDeferredValue;
|
|
24
|
+
export const useEffect = ReactGlobal.useEffect;
|
|
25
|
+
export const useId = ReactGlobal.useId;
|
|
26
|
+
export const useImperativeHandle = ReactGlobal.useImperativeHandle;
|
|
27
|
+
export const useInsertionEffect = ReactGlobal.useInsertionEffect;
|
|
28
|
+
export const useLayoutEffect = ReactGlobal.useLayoutEffect;
|
|
29
|
+
export const useMemo = ReactGlobal.useMemo;
|
|
30
|
+
export const useReducer = ReactGlobal.useReducer;
|
|
31
|
+
export const useRef = ReactGlobal.useRef;
|
|
32
|
+
export const useState = ReactGlobal.useState;
|
|
33
|
+
export const useSyncExternalStore = ReactGlobal.useSyncExternalStore;
|
|
34
|
+
export const useTransition = ReactGlobal.useTransition;
|
|
35
|
+
export const version = ReactGlobal.version;
|
|
36
|
+
//# sourceMappingURL=react-shim.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"react-shim.js","sourceRoot":"","sources":["../../../../../src/lib/remote-components/excalidraw-workbench/src/react-shim.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,GAAI,MAAc,CAAC,KAAK,CAAA;AAEzC,eAAe,WAAW,CAAA;AAC1B,MAAM,CAAC,MAAM,QAAQ,GAAG,WAAW,CAAC,QAAQ,CAAA;AAC5C,MAAM,CAAC,MAAM,SAAS,GAAG,WAAW,CAAC,SAAS,CAAA;AAC9C,MAAM,CAAC,MAAM,QAAQ,GAAG,WAAW,CAAC,QAAQ,CAAA;AAC5C,MAAM,CAAC,MAAM,QAAQ,GAAG,WAAW,CAAC,QAAQ,CAAA;AAC5C,MAAM,CAAC,MAAM,aAAa,GAAG,WAAW,CAAC,aAAa,CAAA;AACtD,MAAM,CAAC,MAAM,UAAU,GAAG,WAAW,CAAC,UAAU,CAAA;AAChD,MAAM,CAAC,MAAM,QAAQ,GAAG,WAAW,CAAC,QAAQ,CAAA;AAC5C,MAAM,CAAC,MAAM,YAAY,GAAG,WAAW,CAAC,YAAY,CAAA;AACpD,MAAM,CAAC,MAAM,aAAa,GAAG,WAAW,CAAC,aAAa,CAAA;AACtD,MAAM,CAAC,MAAM,aAAa,GAAG,WAAW,CAAC,aAAa,CAAA;AACtD,MAAM,CAAC,MAAM,aAAa,GAAG,WAAW,CAAC,aAAa,CAAA;AACtD,MAAM,CAAC,MAAM,SAAS,GAAG,WAAW,CAAC,SAAS,CAAA;AAC9C,MAAM,CAAC,MAAM,UAAU,GAAG,WAAW,CAAC,UAAU,CAAA;AAChD,MAAM,CAAC,MAAM,cAAc,GAAG,WAAW,CAAC,cAAc,CAAA;AACxD,MAAM,CAAC,MAAM,IAAI,GAAG,WAAW,CAAC,IAAI,CAAA;AACpC,MAAM,CAAC,MAAM,IAAI,GAAG,WAAW,CAAC,IAAI,CAAA;AACpC,MAAM,CAAC,MAAM,eAAe,GAAG,WAAW,CAAC,eAAe,CAAA;AAC1D,MAAM,CAAC,MAAM,WAAW,GAAG,WAAW,CAAC,WAAW,CAAA;AAClD,MAAM,CAAC,MAAM,UAAU,GAAG,WAAW,CAAC,UAAU,CAAA;AAChD,MAAM,CAAC,MAAM,aAAa,GAAG,WAAW,CAAC,aAAa,CAAA;AACtD,MAAM,CAAC,MAAM,gBAAgB,GAAG,WAAW,CAAC,gBAAgB,CAAA;AAC5D,MAAM,CAAC,MAAM,SAAS,GAAG,WAAW,CAAC,SAAS,CAAA;AAC9C,MAAM,CAAC,MAAM,KAAK,GAAG,WAAW,CAAC,KAAK,CAAA;AACtC,MAAM,CAAC,MAAM,mBAAmB,GAAG,WAAW,CAAC,mBAAmB,CAAA;AAClE,MAAM,CAAC,MAAM,kBAAkB,GAAG,WAAW,CAAC,kBAAkB,CAAA;AAChE,MAAM,CAAC,MAAM,eAAe,GAAG,WAAW,CAAC,eAAe,CAAA;AAC1D,MAAM,CAAC,MAAM,OAAO,GAAG,WAAW,CAAC,OAAO,CAAA;AAC1C,MAAM,CAAC,MAAM,UAAU,GAAG,WAAW,CAAC,UAAU,CAAA;AAChD,MAAM,CAAC,MAAM,MAAM,GAAG,WAAW,CAAC,MAAM,CAAA;AACxC,MAAM,CAAC,MAAM,QAAQ,GAAG,WAAW,CAAC,QAAQ,CAAA;AAC5C,MAAM,CAAC,MAAM,oBAAoB,GAAG,WAAW,CAAC,oBAAoB,CAAA;AACpE,MAAM,CAAC,MAAM,aAAa,GAAG,WAAW,CAAC,aAAa,CAAA;AACtD,MAAM,CAAC,MAAM,OAAO,GAAG,WAAW,CAAC,OAAO,CAAA"}
|
|
@@ -0,0 +1,198 @@
|
|
|
1
|
+
const CHANNEL = 'xpertai.remote_component';
|
|
2
|
+
const VERSION = 1;
|
|
3
|
+
const pending = new Map();
|
|
4
|
+
let instanceId = null;
|
|
5
|
+
let requestSequence = 0;
|
|
6
|
+
let runtimeText = {
|
|
7
|
+
requestTimeout: 'Request timed out',
|
|
8
|
+
remoteRequestFailed: 'Remote request failed',
|
|
9
|
+
unknownError: 'Unknown error'
|
|
10
|
+
};
|
|
11
|
+
export function isObject(value) {
|
|
12
|
+
return Boolean(value && typeof value === 'object' && !Array.isArray(value));
|
|
13
|
+
}
|
|
14
|
+
export function post(type, body, transfer) {
|
|
15
|
+
if (!instanceId && type !== 'ready') {
|
|
16
|
+
return;
|
|
17
|
+
}
|
|
18
|
+
parent.postMessage(Object.assign({
|
|
19
|
+
channel: CHANNEL,
|
|
20
|
+
protocolVersion: VERSION,
|
|
21
|
+
instanceId,
|
|
22
|
+
type
|
|
23
|
+
}, body || {}), '*', transfer || []);
|
|
24
|
+
}
|
|
25
|
+
export function request(type, body, transfer) {
|
|
26
|
+
const requestId = String(++requestSequence);
|
|
27
|
+
return new Promise((resolve, reject) => {
|
|
28
|
+
pending.set(requestId, { resolve, reject });
|
|
29
|
+
try {
|
|
30
|
+
post(type, Object.assign({ requestId }, body || {}), transfer);
|
|
31
|
+
}
|
|
32
|
+
catch (error) {
|
|
33
|
+
pending.delete(requestId);
|
|
34
|
+
reject(error instanceof Error ? error : new Error(runtimeText.remoteRequestFailed));
|
|
35
|
+
return;
|
|
36
|
+
}
|
|
37
|
+
setTimeout(() => {
|
|
38
|
+
if (!pending.has(requestId)) {
|
|
39
|
+
return;
|
|
40
|
+
}
|
|
41
|
+
pending.delete(requestId);
|
|
42
|
+
reject(new Error(runtimeText.requestTimeout));
|
|
43
|
+
}, 30000);
|
|
44
|
+
});
|
|
45
|
+
}
|
|
46
|
+
export function requestData(query) {
|
|
47
|
+
return request('requestData', { query: query || {} });
|
|
48
|
+
}
|
|
49
|
+
export function executeAction(actionKey, targetId, input, parameters) {
|
|
50
|
+
return request('executeAction', {
|
|
51
|
+
actionKey,
|
|
52
|
+
targetId,
|
|
53
|
+
input,
|
|
54
|
+
parameters
|
|
55
|
+
});
|
|
56
|
+
}
|
|
57
|
+
export async function executeFileAction(actionKey, targetId, input, parameters, file) {
|
|
58
|
+
const buffer = await file.arrayBuffer();
|
|
59
|
+
return request('executeFileAction', {
|
|
60
|
+
actionKey,
|
|
61
|
+
targetId,
|
|
62
|
+
input,
|
|
63
|
+
parameters,
|
|
64
|
+
file: {
|
|
65
|
+
name: file.name,
|
|
66
|
+
type: file.type,
|
|
67
|
+
size: file.size,
|
|
68
|
+
buffer
|
|
69
|
+
}
|
|
70
|
+
}, [buffer]);
|
|
71
|
+
}
|
|
72
|
+
export function invokeClientCommand(commandKey, payload) {
|
|
73
|
+
return request('invokeClientCommand', {
|
|
74
|
+
commandKey,
|
|
75
|
+
payload
|
|
76
|
+
});
|
|
77
|
+
}
|
|
78
|
+
export function notify(level, message) {
|
|
79
|
+
post('notify', { level, message });
|
|
80
|
+
}
|
|
81
|
+
export function reportResize() {
|
|
82
|
+
const height = Math.max(document.body.scrollHeight, document.documentElement.scrollHeight, window.innerHeight || 0, 720);
|
|
83
|
+
post('resize', { height, viewportBound: true });
|
|
84
|
+
}
|
|
85
|
+
export function getResponsePayload(response) {
|
|
86
|
+
if (!response) {
|
|
87
|
+
return null;
|
|
88
|
+
}
|
|
89
|
+
if (response.payload !== undefined) {
|
|
90
|
+
return response.payload;
|
|
91
|
+
}
|
|
92
|
+
if (response.data !== undefined) {
|
|
93
|
+
return response.data;
|
|
94
|
+
}
|
|
95
|
+
if (response.result !== undefined) {
|
|
96
|
+
return response.result;
|
|
97
|
+
}
|
|
98
|
+
return response;
|
|
99
|
+
}
|
|
100
|
+
export function resolveMessage(message, locale) {
|
|
101
|
+
if (!message) {
|
|
102
|
+
return '';
|
|
103
|
+
}
|
|
104
|
+
if (typeof message === 'string') {
|
|
105
|
+
return message;
|
|
106
|
+
}
|
|
107
|
+
if (String(locale || '').toLowerCase().startsWith('en')) {
|
|
108
|
+
return message.en_US || message.en || message.zh_Hans || message.zh_CN || '';
|
|
109
|
+
}
|
|
110
|
+
return message.zh_Hans || message.zh_CN || message.en_US || message.en || '';
|
|
111
|
+
}
|
|
112
|
+
export function getErrorMessage(error) {
|
|
113
|
+
return error?.message ? error.message : String(error || runtimeText.unknownError);
|
|
114
|
+
}
|
|
115
|
+
export function setRuntimeText(nextText) {
|
|
116
|
+
runtimeText = {
|
|
117
|
+
...runtimeText,
|
|
118
|
+
...nextText
|
|
119
|
+
};
|
|
120
|
+
}
|
|
121
|
+
export function startRemoteBridge(setContext, handleHostEvent) {
|
|
122
|
+
let currentContext = null;
|
|
123
|
+
function applyHostTheme(theme) {
|
|
124
|
+
if (window.XpertRemoteUI && typeof window.XpertRemoteUI.applyTheme === 'function') {
|
|
125
|
+
;
|
|
126
|
+
window.XpertRemoteUI.applyTheme(theme);
|
|
127
|
+
}
|
|
128
|
+
currentContext = {
|
|
129
|
+
...(currentContext || {}),
|
|
130
|
+
theme
|
|
131
|
+
};
|
|
132
|
+
setContext(currentContext);
|
|
133
|
+
setTimeout(reportResize, 0);
|
|
134
|
+
}
|
|
135
|
+
window.addEventListener('message', (event) => {
|
|
136
|
+
const message = event.data;
|
|
137
|
+
if (!isObject(message) || message.channel !== CHANNEL || message.protocolVersion !== VERSION) {
|
|
138
|
+
return;
|
|
139
|
+
}
|
|
140
|
+
if (message.type === 'init') {
|
|
141
|
+
instanceId = typeof message.instanceId === 'string' ? message.instanceId : null;
|
|
142
|
+
currentContext = {
|
|
143
|
+
manifest: message.manifest,
|
|
144
|
+
payload: message.payload,
|
|
145
|
+
initialQuery: message.initialQuery || {},
|
|
146
|
+
locale: message.locale,
|
|
147
|
+
theme: message.theme
|
|
148
|
+
};
|
|
149
|
+
if (window.XpertRemoteUI && typeof window.XpertRemoteUI.applyTheme === 'function') {
|
|
150
|
+
;
|
|
151
|
+
window.XpertRemoteUI.applyTheme(message.theme);
|
|
152
|
+
}
|
|
153
|
+
setContext(currentContext);
|
|
154
|
+
setTimeout(reportResize, 0);
|
|
155
|
+
return;
|
|
156
|
+
}
|
|
157
|
+
if (message.instanceId !== instanceId) {
|
|
158
|
+
return;
|
|
159
|
+
}
|
|
160
|
+
if (isThemeMessage(message)) {
|
|
161
|
+
applyHostTheme(extractThemeFromMessage(message));
|
|
162
|
+
return;
|
|
163
|
+
}
|
|
164
|
+
if (message.type === 'hostEvent') {
|
|
165
|
+
handleHostEvent(message.event);
|
|
166
|
+
return;
|
|
167
|
+
}
|
|
168
|
+
if (message.requestId && pending.has(String(message.requestId))) {
|
|
169
|
+
const item = pending.get(String(message.requestId));
|
|
170
|
+
pending.delete(String(message.requestId));
|
|
171
|
+
if (!item) {
|
|
172
|
+
return;
|
|
173
|
+
}
|
|
174
|
+
if (message.type === 'error') {
|
|
175
|
+
item.reject(new Error(String(message.message || runtimeText.remoteRequestFailed)));
|
|
176
|
+
}
|
|
177
|
+
else {
|
|
178
|
+
item.resolve(message);
|
|
179
|
+
}
|
|
180
|
+
}
|
|
181
|
+
});
|
|
182
|
+
}
|
|
183
|
+
function isThemeMessage(message) {
|
|
184
|
+
return ['theme', 'themeChanged', 'theme-change', 'hostThemeChanged', 'host-theme-changed'].includes(String(message.type || ''));
|
|
185
|
+
}
|
|
186
|
+
function extractThemeFromMessage(message) {
|
|
187
|
+
if (message.theme !== undefined) {
|
|
188
|
+
return message.theme;
|
|
189
|
+
}
|
|
190
|
+
if (isObject(message.payload) && message.payload.theme !== undefined) {
|
|
191
|
+
return message.payload.theme;
|
|
192
|
+
}
|
|
193
|
+
if (isObject(message.data) && message.data.theme !== undefined) {
|
|
194
|
+
return message.data.theme;
|
|
195
|
+
}
|
|
196
|
+
return message.payload ?? message.data ?? null;
|
|
197
|
+
}
|
|
198
|
+
//# sourceMappingURL=runtime.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"runtime.js","sourceRoot":"","sources":["../../../../../src/lib/remote-components/excalidraw-workbench/src/runtime.ts"],"names":[],"mappings":"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"}
|