@netless/appliance-plugin 1.1.5-beta.0 → 1.1.5-beta.1
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/READMA.zh-CN.md +259 -0
- package/README.md +49 -5
- package/cdn/cdn.js +1 -1
- package/cdn/{fullWorker-Ci_RYp.js → fullWorker-DAG_oD.js} +1 -1
- package/cdn/{subWorker-B_Pv2q.js → subWorker-CPdSut.js} +1 -1
- package/dist/appliance-plugin.js +1 -1
- package/dist/appliance-plugin.mjs +1 -1
- package/dist/fullWorker.js +1 -1
- package/dist/{index-OGShnQTn.mjs → index-C8k3ukRX.mjs} +1 -1
- package/dist/{index-CCSJm7F7.mjs → index-Da1l9Z2E.mjs} +282 -264
- package/dist/{index-SHjau6rI.js → index-Db7ol5aF.js} +1 -1
- package/dist/{index-C0oRJxGu.js → index-DeCqvhJL.js} +1 -1
- package/dist/plugin/types.d.ts +25 -4
- package/dist/subWorker.js +1 -1
- package/package.json +4 -2
package/READMA.zh-CN.md
ADDED
|
@@ -0,0 +1,259 @@
|
|
|
1
|
+
# appliance-plugin
|
|
2
|
+
|
|
3
|
+
该插件依附于 white-web-sdk 的插件机制, 实现了一套白板的教具,状态同步\回放\场景切换等功能还是依赖于white-web-sdk或window-manager。
|
|
4
|
+
|
|
5
|
+
## 简介
|
|
6
|
+
|
|
7
|
+
一个基于SpriteJS作为渲染引擎的白板铅笔绘制插件。
|
|
8
|
+
|
|
9
|
+
example 文件夹下实现了以下两种方式的demo,仅供参考.
|
|
10
|
+
| 场景 | demo路径 | 必要依赖 |
|
|
11
|
+
| :--- | :----: | :--- |
|
|
12
|
+
| 多窗口 | [example/src/multi.ts](https://github.com/hqer927/appliance-plugin/blob/master/example/src/multi.ts) | @netless/window-manager、white-web-sdk |
|
|
13
|
+
| 单白板 | [example/src/single.ts](https://github.com/hqer927/appliance-plugin/blob/master/example/src/single.ts) | white-web-sdk |
|
|
14
|
+
<!-- | fastboard | todo | todo | -->
|
|
15
|
+
|
|
16
|
+
## 原理
|
|
17
|
+
|
|
18
|
+
1. 该插件主要是基于SpriteJS的2D功能,支持 webgl2 渲染,并可向后兼容降级为 webgl 和 canvas2d
|
|
19
|
+
2. 该插件通过双webWorker+offscreenCanvas机制,把绘制计算+渲染逻辑都放在独立的worker线程中处理.不占用主线程的cpu任务.
|
|
20
|
+
3. 针对移动端有些终端不支持offscreenCanvas,则会把它放在主进程处理.
|
|
21
|
+
|
|
22
|
+
## 插件用法
|
|
23
|
+
|
|
24
|
+
### 安装
|
|
25
|
+
|
|
26
|
+
```bash
|
|
27
|
+
npm install @netless/appliance-plugin
|
|
28
|
+
```
|
|
29
|
+
|
|
30
|
+
### 注册插件
|
|
31
|
+
|
|
32
|
+
插件可以支持两种场景,它们接入插件命名不同:
|
|
33
|
+
- 多窗口 `ApplianceMultiPlugin`
|
|
34
|
+
```js
|
|
35
|
+
import { ApplianceMultiPlugin } from '@netless/appliance-plugin';
|
|
36
|
+
```
|
|
37
|
+
- 单白板 `ApplianceSinglePlugin`
|
|
38
|
+
```js
|
|
39
|
+
import { ApplianceSinglePlugin } from '@netless/appliance-plugin';
|
|
40
|
+
```
|
|
41
|
+
|
|
42
|
+
> **workerjs文件cdn部署**
|
|
43
|
+
>
|
|
44
|
+
>我们采用双worker并发来提高绘制效率,这样让它比单线程效率提高了40%以上.但是两个worker文件上的公共依赖都是重复的,所以如果直接构建到包中,那么会大大增加包体积.所以我们允许workerjs文件cdn部署,只要把@netless/appliance-plugin/cdn下的文件部署到cdn中即可,然后通过插件中的getInstance的第二个参数options.cdn中配置上两个workerjs的cdn地址即可.这样就可以解决包体积过大的问题.
|
|
45
|
+
>
|
|
46
|
+
> - **总包大概在300kB,两个wokerjs各有600kB.** 如果需要考虑构建的包体积大小的,请选择配置cdn.
|
|
47
|
+
|
|
48
|
+
### 接入方式参考
|
|
49
|
+
|
|
50
|
+
#### 多窗口模式(对接window-manager)
|
|
51
|
+
```js
|
|
52
|
+
import '@netless/window-manager/dist/style.css';
|
|
53
|
+
import '@netless/appliance-plugin/dist/style.css';
|
|
54
|
+
import { WhiteWebSdk } from "white-web-sdk";
|
|
55
|
+
import { WindowManager } from "@netless/window-manager";
|
|
56
|
+
// 全打包
|
|
57
|
+
import { ApplianceMultiPlugin } from '@netless/appliance-plugin';
|
|
58
|
+
// 以下步骤可选, 如果走cdn,可以不用从dist中引入,如果从dist中引入,需要以资源引入并通过bolb内联形式配置到options.cdn中.如?raw,这个需要打包器的支持,vite默认支持?raw,webpack需要配置.
|
|
59
|
+
import fullWorkerString from '@netless/appliance-plugin/dist/fullWorker.js?raw';
|
|
60
|
+
import subWorkerString from '@netless/appliance-plugin/dist/subWorker.js?raw';
|
|
61
|
+
const fullWorkerBlob = new Blob([fullWorkerString], {type: 'text/javascript'});
|
|
62
|
+
const fullWorkerUrl = URL.createObjectURL(fullWorkerBlob);
|
|
63
|
+
const subWorkerBlob = new Blob([subWorkerString], {type: 'text/javascript'});
|
|
64
|
+
const subWorkerUrl = URL.createObjectURL(subWorkerBlob);
|
|
65
|
+
|
|
66
|
+
const whiteWebSdk = new WhiteWebSdk(...)
|
|
67
|
+
const room = await whiteWebSdk.joinRoom({
|
|
68
|
+
...
|
|
69
|
+
invisiblePlugins: [WindowManager, ApplianceMultiPlugin],
|
|
70
|
+
useMultiViews: true,
|
|
71
|
+
})
|
|
72
|
+
const manager = await WindowManager.mount({ room , container:elm, chessboard: true, cursor: true, supportAppliancePlugin: true});
|
|
73
|
+
if (manager) {
|
|
74
|
+
await manager.switchMainViewToWriter();
|
|
75
|
+
await ApplianceMultiPlugin.getInstance(manager,
|
|
76
|
+
{
|
|
77
|
+
options: {
|
|
78
|
+
cdn: {
|
|
79
|
+
fullWorkerUrl,
|
|
80
|
+
subWorkerUrl,
|
|
81
|
+
}
|
|
82
|
+
}
|
|
83
|
+
}
|
|
84
|
+
);
|
|
85
|
+
}
|
|
86
|
+
```
|
|
87
|
+
#### 单白板(对接white-web-sdk)
|
|
88
|
+
```js
|
|
89
|
+
import { WhiteWebSdk } from "white-web-sdk";
|
|
90
|
+
// 全打包
|
|
91
|
+
import { ApplianceSinglePlugin, ApplianceSigleWrapper } from '@netless/appliance-plugin';
|
|
92
|
+
// 以下步骤可选, 如果走cdn,可以不用从dist中引入,如果从dist中引入,需要以资源引入并通过bolb内联形式配置到options.cdn中.如?raw,这个需要打包器的支持,vite默认支持?raw,webpack需要配置.
|
|
93
|
+
import fullWorkerString from '@netless/appliance-plugin/dist/fullWorker.js?raw';
|
|
94
|
+
import subWorkerString from '@netless/appliance-plugin/dist/subWorker.js?raw';
|
|
95
|
+
const fullWorkerBlob = new Blob([fullWorkerString], {type: 'text/javascript'});
|
|
96
|
+
const fullWorkerUrl = URL.createObjectURL(fullWorkerBlob);
|
|
97
|
+
const subWorkerBlob = new Blob([subWorkerString], {type: 'text/javascript'});
|
|
98
|
+
const subWorkerUrl = URL.createObjectURL(subWorkerBlob);
|
|
99
|
+
|
|
100
|
+
const whiteWebSdk = new WhiteWebSdk(...)
|
|
101
|
+
const room = await whiteWebSdk.joinRoom({
|
|
102
|
+
...
|
|
103
|
+
invisiblePlugins: [ApplianceSinglePlugin],
|
|
104
|
+
wrappedComponents: [ApplianceSigleWrapper]
|
|
105
|
+
})
|
|
106
|
+
await ApplianceSinglePlugin.getInstance(room,
|
|
107
|
+
{
|
|
108
|
+
options: {
|
|
109
|
+
cdn: {
|
|
110
|
+
fullWorkerUrl,
|
|
111
|
+
subWorkerUrl,
|
|
112
|
+
}
|
|
113
|
+
}
|
|
114
|
+
}
|
|
115
|
+
);
|
|
116
|
+
```
|
|
117
|
+
#### 关于?raw的webpack配置
|
|
118
|
+
```js
|
|
119
|
+
module: {
|
|
120
|
+
rules: [
|
|
121
|
+
// ...
|
|
122
|
+
{
|
|
123
|
+
test: /\.m?js$/,
|
|
124
|
+
resourceQuery: { not: [/raw/] },
|
|
125
|
+
use: [ ... ]
|
|
126
|
+
},
|
|
127
|
+
{
|
|
128
|
+
resourceQuery: /raw/,
|
|
129
|
+
type: 'asset/source',
|
|
130
|
+
}
|
|
131
|
+
]
|
|
132
|
+
},
|
|
133
|
+
```
|
|
134
|
+
|
|
135
|
+
## 调用介绍
|
|
136
|
+
|
|
137
|
+
### api介绍
|
|
138
|
+
|
|
139
|
+
#### 优化原有接口
|
|
140
|
+
|
|
141
|
+
插件重新实现了一些room或windowmanager上的同名接口,但是我们内部已经通过``injectMethodToObject`` 重新注入回原来的对象中.从而外部用户无需任何改动.如以下几个:
|
|
142
|
+
```js
|
|
143
|
+
// 内部 hack
|
|
144
|
+
injectMethodToObject(windowmanager, 'undo');
|
|
145
|
+
injectMethodToObject(windowmanager, 'redo');
|
|
146
|
+
injectMethodToObject(windowmanager,'cleanCurrentScene');
|
|
147
|
+
injectMethodToObject(windowmanager,'insertImage');
|
|
148
|
+
injectMethodToObject(windowmanager,'completeImageUpload');
|
|
149
|
+
injectMethodToObject(windowmanager,'lockImage');
|
|
150
|
+
injectMethodToObject(room,'getImagesInformation');
|
|
151
|
+
injectMethodToObject(room,'callbacks');
|
|
152
|
+
injectMethodToObject(room,'screenshotToCanvasAsync');
|
|
153
|
+
injectMethodToObject(room,'getBoundingRectAsync');
|
|
154
|
+
injectMethodToObject(room,'scenePreviewAsync');
|
|
155
|
+
injectMethodToObject(windowmanager.mainView,'setMemberState');
|
|
156
|
+
// 这些我们可以通过前端日志看到调用行为,例如:
|
|
157
|
+
// [ApplianceMultiPlugin] setMemberState
|
|
158
|
+
// [ApplianceMultiPlugin] cleanCurrentScene
|
|
159
|
+
```
|
|
160
|
+
具体涉及以下接口:
|
|
161
|
+
|
|
162
|
+
1. room上接口
|
|
163
|
+
- `setMemberState`
|
|
164
|
+
- `undo`
|
|
165
|
+
- `redo`
|
|
166
|
+
- `callbacks`
|
|
167
|
+
- `insertImage`
|
|
168
|
+
- `lockImage`
|
|
169
|
+
- `completeImageUpload`
|
|
170
|
+
- `getImagesInformation`
|
|
171
|
+
- `cleanCurrentScene`
|
|
172
|
+
|
|
173
|
+
2. windowmanager上接口
|
|
174
|
+
- `cleanCurrentScene`
|
|
175
|
+
- `canUndoSteps`
|
|
176
|
+
- `canRedoSteps`
|
|
177
|
+
|
|
178
|
+
3. windowmanager的mainview上的接口
|
|
179
|
+
- `setMemberState`
|
|
180
|
+
- `undo`
|
|
181
|
+
- `redo`
|
|
182
|
+
- `callbacks`
|
|
183
|
+
- `insertImage`
|
|
184
|
+
- `lockImage`
|
|
185
|
+
- `completeImageUpload`
|
|
186
|
+
- `getImagesInformation`
|
|
187
|
+
- `cleanCurrentScene`
|
|
188
|
+
|
|
189
|
+
4. 自定义
|
|
190
|
+
- `getBoundingRectAsync` 替代接口 room.getBoundingRect
|
|
191
|
+
- `screenshotToCanvasAsync` 替代接口 room.screenshotToCanvas
|
|
192
|
+
- `scenePreviewAsync` 替代接口 room.scenePreview
|
|
193
|
+
- `fillSceneSnapshotAsync` 替代接口 room.fillSceneSnapshot
|
|
194
|
+
- `destroy` 销毁appliance-plugin的实例
|
|
195
|
+
|
|
196
|
+
5. 不兼容
|
|
197
|
+
- `exportScene` appliance-plugin开启后,笔记不能按room的方式导出
|
|
198
|
+
- 服务端截图, appliance-plugin开启后, 笔记不能通过调用服务端截图方式获取截图,而需要改用`screenshotToCanvasAsync`获取
|
|
199
|
+
|
|
200
|
+
#### 新功能
|
|
201
|
+
1. 小地图功能
|
|
202
|
+
```js
|
|
203
|
+
/** 创建小地图
|
|
204
|
+
* @param viewId 多白板下白板ID, 主白板ID为 `mainView`, 其他白板ID为 addApp() return 的appID
|
|
205
|
+
* @param div 小地图DOM容器
|
|
206
|
+
*/
|
|
207
|
+
createMiniMap(viewId: string, div: HTMLElement): Promise<void>;
|
|
208
|
+
/** 销毁小地图 */
|
|
209
|
+
destroyMiniMap(viewId: string): Promise<boolean>;
|
|
210
|
+
```
|
|
211
|
+
2. 过滤笔记
|
|
212
|
+
```js
|
|
213
|
+
/** 过滤笔记
|
|
214
|
+
* @param viewId 多白板下白板ID, 主白板ID为 `mainView`, 其他白板ID为 addApp() return 的appID
|
|
215
|
+
* @param filter 过滤条件
|
|
216
|
+
* render: 笔记是否能要渲染, [uid1, uid2, ...] 或 true. true, 即都会渲染, [uid1, uid2, ...] 为指定渲染的用户uid集合
|
|
217
|
+
* hide: 笔记是否隐藏, [uid1, uid2, ...] 或 true. true, 即都要隐藏, [uid1, uid2, ...] 为指定隐藏的用户uid集合
|
|
218
|
+
* clear: 笔记是否可被清除, [uid1, uid2, ...] 或 true. true, 即都可以被清除, [uid1, uid2, ...] 为指定可被清除的用户uid集合
|
|
219
|
+
* @param isSync 是否同步到其他用户, 默认为true, 即会同步到其他用户
|
|
220
|
+
*/
|
|
221
|
+
filterRenderByUid(viewId: string, filter: { render?: _ArrayTrue, hide?: _ArrayTrue, clear?: _ArrayTrue}, isSync?:boolean): void;
|
|
222
|
+
/** 取消过滤笔记
|
|
223
|
+
* @param viewId 多白板下白板ID, 主白板ID为 `mainView`, 其他白板ID为 addApp() return 的appID
|
|
224
|
+
* @param isSync 是否同步到其他用户, 默认为true, 即会同步到其他用户. 请保持和filterRenderByUid设置的一致
|
|
225
|
+
*/
|
|
226
|
+
cancelFilterRender(viewId: string, isSync?:boolean): void;
|
|
227
|
+
```
|
|
228
|
+
3. 分屏显示笔记(小白板功能),需要结合 `@netless/app-little-white-board`
|
|
229
|
+
|
|
230
|
+
4. 激光铅笔教具
|
|
231
|
+
```js
|
|
232
|
+
import { EStrokeType, ApplianceNames } from '@netless/appliance-plugin';
|
|
233
|
+
room.setMemberState({currentApplianceName: ApplianceNames.laserPen, strokeType: EStrokeType.Normal});
|
|
234
|
+
```
|
|
235
|
+
|
|
236
|
+
### 配置参数
|
|
237
|
+
``getInstance(wm: WindowManager, adaptor: ApplianceAdaptor)``
|
|
238
|
+
- wm: `` WindowManager\room\player``。多窗口模式下传入的是WindowManager,单窗口模式下传入的是room或者player(白板回放模式)。
|
|
239
|
+
- adaptor: 配置适配器.
|
|
240
|
+
- options: ``AppliancePluginOptions``; 必须配置, 两个worker的cdn地址。
|
|
241
|
+
```js
|
|
242
|
+
export type AppliancePluginOptions = {
|
|
243
|
+
/** cdn配置项 */
|
|
244
|
+
cdn: CdnOpt;
|
|
245
|
+
/** 同步数据配置项 */
|
|
246
|
+
syncOpt?: SyncOpt;
|
|
247
|
+
/** 画布配置项 */
|
|
248
|
+
canvasOpt?: CanvasOpt;
|
|
249
|
+
}
|
|
250
|
+
```
|
|
251
|
+
- cursorAdapter?: ``CursorAdapter``; 非必填, 单白板模式下, 配置的自定义鼠标样式。
|
|
252
|
+
|
|
253
|
+
### 前端调试介绍
|
|
254
|
+
对接过程中如果想了解和跟踪插件内部状态,可以通过以下几个控制台指令,查看内部数据.
|
|
255
|
+
```js
|
|
256
|
+
const applianPlugin = await ApplianceSinglePlugin.getInstance(...)
|
|
257
|
+
appliancePlugin.currentManager // 可以查看到包版本号,内部状态等
|
|
258
|
+
appliancePlugin.currentManager.consoleWorkerInfo() // 可以查看到worker上的绘制信息
|
|
259
|
+
```
|
package/README.md
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
# appliance-plugin
|
|
2
2
|
|
|
3
|
-
[中文文档](https://github.com/
|
|
3
|
+
[中文文档](https://github.com/netless-io/fastboard/blob/main/docs/zh/appliance-plugin.md)
|
|
4
4
|
|
|
5
5
|
The plug-in is attached to the plug-in mechanism of white-web-sdk to achieve a set of whiteboard teaching AIDS, state synchronization, playback, scene switching and other functions still rely on white-web-sdk or window-manager.
|
|
6
6
|
|
|
@@ -135,7 +135,11 @@ module: {
|
|
|
135
135
|
```
|
|
136
136
|
|
|
137
137
|
## Call introduction
|
|
138
|
+
|
|
138
139
|
### api introduction
|
|
140
|
+
|
|
141
|
+
#### Optimize legacy interface
|
|
142
|
+
|
|
139
143
|
The plugin re-implements some of the interfaces of the same name on room or Windows Manager, but internally we have re-injected them back into the original object via injectMethodToObject. No changes are required for external users. As follows:
|
|
140
144
|
```js
|
|
141
145
|
// Internal hack
|
|
@@ -183,10 +187,50 @@ The following interfaces are involved:
|
|
|
183
187
|
- `cleanCurrentScene`
|
|
184
188
|
|
|
185
189
|
4. Customize
|
|
186
|
-
- `getBoundingRectAsync`
|
|
187
|
-
- `screenshotToCanvasAsync`
|
|
188
|
-
- `scenePreviewAsync`
|
|
189
|
-
- `destroy`
|
|
190
|
+
- `getBoundingRectAsync` Replace the api room.getBoundingRect
|
|
191
|
+
- `screenshotToCanvasAsync` Replace the api room.screenshotToCanvas
|
|
192
|
+
- `scenePreviewAsync` Replace the api room.scenePreview
|
|
193
|
+
- `destroy` Destroy the instance of appliance-plugin
|
|
194
|
+
|
|
195
|
+
5.Incompatible
|
|
196
|
+
- `exportScene` When the appliance-plugin is enabled, notes cannot be exported in room mode
|
|
197
|
+
- Server-side screenshot, after the appliance-plugin is turned on, notes cannot be obtained by calling server-side screenshot, but need to use `screenshotToCanvasAsync` to obtain the screenshot
|
|
198
|
+
|
|
199
|
+
#### New features
|
|
200
|
+
1. Minimap function
|
|
201
|
+
```js
|
|
202
|
+
/** Create a minimap
|
|
203
|
+
* @param viewId ID of the whiteboard under windowManager. The ID of the main whiteboard is mainView, and the ID of other whiteboards is the appID of addApp() return
|
|
204
|
+
* @param div Small map DOM container
|
|
205
|
+
*/
|
|
206
|
+
createMiniMap(viewId: string, div: HTMLElement): Promise<void>;
|
|
207
|
+
/** Destroy minimap */
|
|
208
|
+
destroyMiniMap(viewId: string): Promise<void>;
|
|
209
|
+
```
|
|
210
|
+
2. Filter Elements
|
|
211
|
+
```js
|
|
212
|
+
/** Filter Elements
|
|
213
|
+
* @param viewId ID of the whiteboard under windowManager. The ID of the main whiteboard is mainView, and the ID of other whiteboards is the appID of addApp() return
|
|
214
|
+
* @param filter filter condition
|
|
215
|
+
* render: Whether notes can be rendered, [uid1, uid2,...] Or true. true, that is, both render, [uid1, uid2,...] The collection of user Uids rendered for the specified
|
|
216
|
+
* hide: Note is hidden, [uid1, uid2,...] Or true. true, that is to hide, [uid1, uid2,...] To specify a hidden user uid collection
|
|
217
|
+
* clear: Whether notes can be cleared, [uid1, uid2,...] Or true. true, that is, can be cleared, [uid1, uid2,...] Specifies a collection of user Uids that can be cleared
|
|
218
|
+
* @param isSync Whether to synchronize data to other users. The default value is true, that is, the data will be synchronized to other users
|
|
219
|
+
*/
|
|
220
|
+
filterRenderByUid(viewId: string, filter: { render?: _ArrayTrue, hide?: _ArrayTrue, clear?: _ArrayTrue}, isSync?:boolean): void;
|
|
221
|
+
/** Filter Elements
|
|
222
|
+
* @param viewId ID of the whiteboard under windowManager. The ID of the main whiteboard is mainView, and the ID of other whiteboards is the appID of addApp() return
|
|
223
|
+
* @param isSync Whether to synchronize data to other users. The default value is true, that is, the data will be synchronized to other users. Keep it the same as the filterRenderByUid setting
|
|
224
|
+
*/
|
|
225
|
+
cancelFilterRender(viewId: string, isSync?:boolean): void;
|
|
226
|
+
```
|
|
227
|
+
3. Split screen display Elements (little whiteboard featrue), need to combine '@netless/app-little-white-board'
|
|
228
|
+
|
|
229
|
+
4. laserPen teaching aids
|
|
230
|
+
```js
|
|
231
|
+
import { EStrokeType, ApplianceNames } from '@netless/appliance-plugin';
|
|
232
|
+
room.setMemberState({currentApplianceName: ApplianceNames.laserPen, strokeType: EStrokeType.Normal});
|
|
233
|
+
```
|
|
190
234
|
|
|
191
235
|
### Configure parameters
|
|
192
236
|
``getInstance(wm: WindowManager, adaptor: ApplianceAdaptor)``
|
package/cdn/cdn.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const r="/fullWorker-
|
|
1
|
+
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const r="/fullWorker-DAG_oD.js",e="/subWorker-CPdSut.js";exports.fullWorkerUrl=r;exports.subWorkerUrl=e;
|
|
@@ -396,7 +396,7 @@ _inherits(o,_e$default22);return _createClass(o,[{key:"texture",get:function get
|
|
|
396
396
|
l=="length"||// Node.js 0.10 has enumerable non-index properties on buffers.
|
|
397
397
|
n&&(l=="offset"||l=="parent")||// PhantomJS 2 has enumerable non-index properties on typed arrays.
|
|
398
398
|
i&&(l=="buffer"||l=="byteLength"||l=="byteOffset")||// Skip index properties.
|
|
399
|
-
gc(l,s)))&&o.push(l);return o;}var kn=yc,Sc=Object.prototype;function xc(h){var r=h&&h.constructor,t=typeof r=="function"&&r.prototype||Sc;return h===t;}var Or=xc;function Tc(h,r){return function(t){return h(r(t));};}var Jn=Tc,Mc=Jn,Pc=Mc(Object.keys,Object),Oc=Pc,Ec=Or,Cc=Oc,Ac=Object.prototype,Rc=Ac.hasOwnProperty;function Ic(h){if(!Ec(h))return Cc(h);var r=[];for(var t in Object(h))Rc.call(h,t)&&t!="constructor"&&r.push(t);return r;}var Lc=Ic,bc=Fn,wc=Vn;function Dc(h){return h!=null&&wc(h.length)&&!bc(h);}var Er=Dc,Nc=kn,Wc=Lc,Bc=Er;function Fc(h){return Bc(h)?Nc(h):Wc(h);}var Cr=Fc,Uc=ir,jc=Cr;function $c(h,r){return h&&Uc(r,jc(r),h);}var zc=$c;function Gc(h){var r=[];if(h!=null)for(var t in Object(h))r.push(t);return r;}var Hc=Gc,Kc=he,Yc=Or,Vc=Hc,Xc=Object.prototype,kc=Xc.hasOwnProperty;function Jc(h){if(!Kc(h))return Vc(h);var r=Yc(h),t=[];for(var e in h)e=="constructor"&&(r||!kc.call(h,e))||t.push(e);return t;}var Zc=Jc,Qc=kn,qc=Zc,_c=Er;function tf(h){return _c(h)?Qc(h,!0):qc(h);}var Ar=tf,ef=ir,rf=Ar;function nf(h,r){return h&&ef(r,rf(r),h);}var sf=nf,Ke={exports:{}};Ke.exports;(function(h,r){var t=ee,e=r&&!r.nodeType&&r,n=e&&!0&&h&&!h.nodeType&&h,i=n&&n.exports===e,a=i?t.Buffer:void 0,o=a?a.allocUnsafe:void 0;function s(l,d){if(d)return l.slice();var c=l.length,p=o?o(c):new l.constructor(c);return l.copy(p),p;}h.exports=s;})(Ke,Ke.exports);var of=Ke.exports;function af(h,r){var t=-1,e=h.length;for(r||(r=Array(e));++t<e;)r[t]=h[t];return r;}var lf=af;function cf(h,r){for(var t=-1,e=h==null?0:h.length,n=0,i=[];++t<e;){var a=h[t];r(a,t,h)&&(i[n++]=a);}return i;}var Zn=cf;function ff(){return[];}var Qn=ff,hf=Zn,uf=Qn,df=Object.prototype,gf=df.propertyIsEnumerable,qr=Object.getOwnPropertySymbols,pf=qr?function(h){return h==null?[]:(h=Object(h),hf(qr(h),function(r){return gf.call(h,r);}));}:uf,Rr=pf,mf=ir,vf=Rr;function yf(h,r){return mf(h,vf(h),r);}var Sf=yf;function xf(h,r){for(var t=-1,e=r.length,n=h.length;++t<e;)h[n+t]=r[t];return h;}var Ir=xf,Tf=Jn,Mf=Tf(Object.getPrototypeOf,Object),qn=Mf,Pf=Ir,Of=qn,Ef=Rr,Cf=Qn,Af=Object.getOwnPropertySymbols,Rf=Af?function(h){for(var r=[];h;)Pf(r,Ef(h)),h=Of(h);return r;}:Cf,_n=Rf,If=ir,Lf=_n;function bf(h,r){return If(h,Lf(h),r);}var wf=bf,Df=Ir,Nf=Ue;function Wf(h,r,t){var e=r(h);return Nf(h)?e:Df(e,t(h));}var ti=Wf,Bf=ti,Ff=Rr,Uf=Cr;function jf(h){return Bf(h,Uf,Ff);}var ei=jf,$f=ti,zf=_n,Gf=Ar;function Hf(h){return $f(h,Gf,zf);}var Kf=Hf,Yf=ge,Vf=ee,Xf=Yf(Vf,"DataView"),kf=Xf,Jf=ge,Zf=ee,Qf=Jf(Zf,"Promise"),qf=Qf,_f=ge,th=ee,eh=_f(th,"Set"),ri=eh,rh=ge,nh=ee,ih=rh(nh,"WeakMap"),sh=ih,dr=kf,gr=Tr,pr=qf,mr=ri,vr=sh,ni=de,Ae=Un,_r="[object Map]",oh="[object Object]",tn="[object Promise]",en="[object Set]",rn="[object WeakMap]",nn="[object DataView]",ah=Ae(dr),lh=Ae(gr),ch=Ae(pr),fh=Ae(mr),hh=Ae(vr),ue=ni;(dr&&ue(new dr(new ArrayBuffer(1)))!=nn||gr&&ue(new gr())!=_r||pr&&ue(pr.resolve())!=tn||mr&&ue(new mr())!=en||vr&&ue(new vr())!=rn)&&(ue=function ue(h){var r=ni(h),t=r==oh?h.constructor:void 0,e=t?Ae(t):"";if(e)switch(e){case ah:return nn;case lh:return _r;case ch:return tn;case fh:return en;case hh:return rn;}return r;});var or=ue,uh=Object.prototype,dh=uh.hasOwnProperty;function gh(h){var r=h.length,t=new h.constructor(r);return r&&typeof h[0]=="string"&&dh.call(h,"index")&&(t.index=h.index,t.input=h.input),t;}var ph=gh,mh=ee,vh=mh.Uint8Array,ii=vh,sn=ii;function yh(h){var r=new h.constructor(h.byteLength);return new sn(r).set(new sn(h)),r;}var Lr=yh,Sh=Lr;function xh(h,r){var t=r?Sh(h.buffer):h.buffer;return new h.constructor(t,h.byteOffset,h.byteLength);}var Th=xh,Mh=/\w*$/;function Ph(h){var r=new h.constructor(h.source,Mh.exec(h));return r.lastIndex=h.lastIndex,r;}var Oh=Ph,on=Fe,an=on?on.prototype:void 0,ln=an?an.valueOf:void 0;function Eh(h){return ln?Object(ln.call(h)):{};}var Ch=Eh,Ah=Lr;function Rh(h,r){var t=r?Ah(h.buffer):h.buffer;return new h.constructor(t,h.byteOffset,h.length);}var Ih=Rh,Lh=Lr,bh=Th,wh=Oh,Dh=Ch,Nh=Ih,Wh="[object Boolean]",Bh="[object Date]",Fh="[object Map]",Uh="[object Number]",jh="[object RegExp]",$h="[object Set]",zh="[object String]",Gh="[object Symbol]",Hh="[object ArrayBuffer]",Kh="[object DataView]",Yh="[object Float32Array]",Vh="[object Float64Array]",Xh="[object Int8Array]",kh="[object Int16Array]",Jh="[object Int32Array]",Zh="[object Uint8Array]",Qh="[object Uint8ClampedArray]",qh="[object Uint16Array]",_h="[object Uint32Array]";function tu(h,r,t){var e=h.constructor;switch(r){case Hh:return Lh(h);case Wh:case Bh:return new e(+h);case Kh:return bh(h,t);case Yh:case Vh:case Xh:case kh:case Jh:case Zh:case Qh:case qh:case _h:return Nh(h,t);case Fh:return new e();case Uh:case zh:return new e(h);case jh:return wh(h);case $h:return new e();case Gh:return Dh(h);}}var eu=tu,ru=he,cn=Object.create,nu=/* @__PURE__ */function(){function h(){}return function(r){if(!ru(r))return{};if(cn)return cn(r);h.prototype=r;var t=new h();return h.prototype=void 0,t;};}(),iu=nu,su=iu,ou=qn,au=Or;function lu(h){return typeof h.constructor=="function"&&!au(h)?su(ou(h)):{};}var cu=lu,fu=or,hu=ne,uu="[object Map]";function du(h){return hu(h)&&fu(h)==uu;}var gu=du,pu=gu,mu=sr,fn=Pr,hn=fn&&fn.isMap,vu=hn?mu(hn):pu,yu=vu,Su=or,xu=ne,Tu="[object Set]";function Mu(h){return xu(h)&&Su(h)==Tu;}var Pu=Mu,Ou=Pu,Eu=sr,un=Pr,dn=un&&un.isSet,Cu=dn?Eu(dn):Ou,si=Cu,Au=/* @__PURE__ */fe(si),Ru=$n,Iu=_a,Lu=Hn,bu=zc,wu=sf,Du=of,Nu=lf,Wu=Sf,Bu=wf,Fu=ei,Uu=Kf,ju=or,$u=ph,zu=eu,Gu=cu,Hu=Ue,Ku=Mr,Yu=yu,Vu=he,Xu=si,ku=Cr,Ju=Ar,Zu=1,Qu=2,qu=4,oi="[object Arguments]",_u="[object Array]",td="[object Boolean]",ed="[object Date]",rd="[object Error]",ai="[object Function]",nd="[object GeneratorFunction]",id="[object Map]",sd="[object Number]",li="[object Object]",od="[object RegExp]",ad="[object Set]",ld="[object String]",cd="[object Symbol]",fd="[object WeakMap]",hd="[object ArrayBuffer]",ud="[object DataView]",dd="[object Float32Array]",gd="[object Float64Array]",pd="[object Int8Array]",md="[object Int16Array]",vd="[object Int32Array]",yd="[object Uint8Array]",Sd="[object Uint8ClampedArray]",xd="[object Uint16Array]",Td="[object Uint32Array]",Ft={};Ft[oi]=Ft[_u]=Ft[hd]=Ft[ud]=Ft[td]=Ft[ed]=Ft[dd]=Ft[gd]=Ft[pd]=Ft[md]=Ft[vd]=Ft[id]=Ft[sd]=Ft[li]=Ft[od]=Ft[ad]=Ft[ld]=Ft[cd]=Ft[yd]=Ft[Sd]=Ft[xd]=Ft[Td]=!0;Ft[rd]=Ft[ai]=Ft[fd]=!1;function ze(h,r,t,e,n,i){var a,o=r&Zu,s=r&Qu,l=r&qu;if(t&&(a=n?t(h,e,n,i):t(h)),a!==void 0)return a;if(!Vu(h))return h;var d=Hu(h);if(d){if(a=$u(h),!o)return Nu(h,a);}else{var c=ju(h),p=c==ai||c==nd;if(Ku(h))return Du(h,o);if(c==li||c==oi||p&&!n){if(a=s||p?{}:Gu(h),!o)return s?Bu(h,wu(a,h)):Wu(h,bu(a,h));}else{if(!Ft[c])return n?h:{};a=zu(h,c,o);}}i||(i=new Ru());var y=i.get(h);if(y)return y;i.set(h,a),Xu(h)?h.forEach(function(v){a.add(ze(v,r,t,v,h,i));}):Yu(h)&&h.forEach(function(v,x){a.set(x,ze(v,r,t,x,h,i));});var P=l?s?Uu:Fu:s?Ju:ku,T=d?void 0:P(h);return Iu(T||h,function(v,x){T&&(x=v,v=h[x]),Lu(a,x,ze(v,r,t,x,h,i));}),a;}var Md=ze,Pd=Md,Od=1,Ed=4;function Cd(h){return Pd(h,Od|Ed);}var Ad=Cd,Xt=/* @__PURE__ */fe(Ad);var ci="1.1.5-beta.0",Rd="@netless/appliance-plugin",Id=typeof OffscreenCanvas=="function"?"worker":"mainThread";if((typeof window==="undefined"?"undefined":_typeof(window))<"u"){var h=window.__netlessUA||"";h+=" ".concat(Rd,"@").concat(ci,"_").concat(Id),window.__netlessUA=h;}var re={syncOpt:{interval:500},cdn:{subWorkerUrl:"https://cdn.jsdelivr.net/npm/@netless/appliance-plugin@latest/dist/subWorker.js",fullWorkerUrl:"https://cdn.jsdelivr.net/npm/@netless/appliance-plugin@latest/dist/fullWorker.js"},cursor:{expirationTime:5e3},bufferSize:{full:2e4,sub:1e3},bezier:{combineUnitTime:100},pencilEraser:{useBitMap:!0}};function ae(h){var r=arguments.length>1&&arguments[1]!==undefined?arguments[1]:!0;var t=h.length;if(t<2)return"";var e=h[0],n=h[1];if(t===2)return"M".concat(pe(e),"L").concat(pe(n));var i="";for(var a=2,o=t-1;a<o;a++)e=h[a],n=h[a+1],i+=me(e,n);return r?"M".concat(me(h[0],h[1]),"Q").concat(pe(h[1])).concat(me(h[1],h[2]),"T").concat(i).concat(me(h[t-1],h[0])).concat(me(h[0],h[1]),"Z"):"M".concat(pe(h[0]),"Q").concat(pe(h[1])).concat(me(h[1],h[2])).concat(h.length>3?"T":"").concat(i,"L").concat(pe(h[t-1]));}var Jt=/*#__PURE__*/function(){function Jt(r){_classCallCheck(this,Jt);et(this,"syncUnitTime",re.syncOpt.interval);et(this,"vNodes");et(this,"drawLayer");et(this,"fullLayer");et(this,"workId");var t=r.vNodes,e=r.fullLayer,n=r.drawLayer,i=r.workId,a=r.toolsOpt;this.vNodes=t,this.fullLayer=e,this.drawLayer=n,this.workId=i,this.syncUnitTime=a.syncUnitTime||this.syncUnitTime;}return _createClass(Jt,[{key:"baseConsumeResult",get:function get(){return{workId:this.workId,toolsType:this.toolsType,opt:this.workOptions};}},{key:"filterSamePoints",value:function filterSamePoints(r){var t=arguments.length>1&&arguments[1]!==undefined?arguments[1]:0.01;return r.reduce(function(e,n){var i=e[e.length-1];return(n&&!i||n&&i&&!n.isNear(i,t))&&e.push(n),e;},[]);}/** 设置工作id */},{key:"setWorkId",value:function setWorkId(r){this.workId=r;}},{key:"getWorkId",value:function getWorkId(){return this.workId;}/** 获取工作选项配置 */},{key:"getWorkOptions",value:function getWorkOptions(){return this.workOptions;}/** 设置工作选项配置 */},{key:"setWorkOptions",value:function setWorkOptions(r){var n,i,a;this.workOptions=r,this.syncUnitTime=r.syncUnitTime||this.syncUnitTime;var t=(n=this.workId)==null?void 0:n.toString(),e=t&&((i=this.vNodes)==null?void 0:i.get(t))||void 0;t&&e&&(e.opt=r,(a=this.vNodes)==null||a.setInfo(t,e));}/** 更新服务端同步配置,返回绘制结果 */},{key:"updataOptService",value:function updataOptService(r){var n,i;var t;var e=(n=this.workId)==null?void 0:n.toString();if(e&&r){var a=this.fullLayer.getElementsByName(e)||this.drawLayer&&this.drawLayer.getElementsByName(e)||[];if(a.length!==1)return;var o=a[0],s=r.pos,l=r.zIndex,d=r.scale,c=r.angle,p=r.translate,y={};_t(l)&&(y.zIndex=l),s&&(y.pos=[s[0],s[1]]),d&&(y.scale=d),c&&(y.rotate=c),p&&(y.translate=p),o.attr(y);var P=o==null?void 0:o.getBoundingClientRect();return P&&(t=Pt(t,{x:Math.floor(P.x-Jt.SafeBorderPadding),y:Math.floor(P.y-Jt.SafeBorderPadding),w:Math.floor(P.width+Jt.SafeBorderPadding*2),h:Math.floor(P.height+Jt.SafeBorderPadding*2)})),(i=this.vNodes)==null||i.setInfo(e,{rect:t,centerPos:s}),t;}}},{key:"drawEraserlines",value:function drawEraserlines(r){var t=r.group,e=r.eraserlines,n=r.pos,i=r.layer,_r$isClear=r.isClear,a=_r$isClear===void 0?!0:_r$isClear,o=!!i.parent.gl;var _iterator13=_createForOfIteratorHelper(e),_step13;try{for(_iterator13.s();!(_step13=_iterator13.n()).done;){var s=_step13.value;var l=s.thickness,d=s.op;var _iterator14=_createForOfIteratorHelper(d),_step14;try{for(_iterator14.s();!(_step14=_iterator14.n()).done;){var c=_step14.value;var p=c.map(function(x,f){return f%2?x-n[1]:x-n[0];}),y=this.computEraserPoints(p,l),P=ae(y,!0),T={pos:[0,0],d:P,fillColor:"rgba(0,0,0,1)"},v=new ce(T);a&&(v.addEventListener("beforerender",function(_ref165){var x=_ref165.detail;var f=x.context;o?f.blendFuncSeparate(f.ZERO,f.ZERO,f.ZERO,f.ZERO):f.globalCompositeOperation="destination-out";}),v.addEventListener("afterrender",function(_ref166){var x=_ref166.detail;var f=x.context;o?f.blendFuncSeparate(f.SRC_ALPHA,f.ONE_MINUS_SRC_ALPHA,f.ONE,f.ONE_MINUS_SRC_ALPHA):f.globalCompositeOperation="source-over";})),t.append(v);}}catch(err){_iterator14.e(err);}finally{_iterator14.f();}}}catch(err){_iterator13.e(err);}finally{_iterator13.f();}}},{key:"computEraserPoints",value:function computEraserPoints(r,t){var e=Math.ceil(t/2);return r.length===2?this.computDot(r,e):this.computLine(r,e);}},{key:"computDot",value:function computDot(r,t){var e=new xt(r[0],r[1]);return xt.GetDotStroke(e,t,8);}},{key:"computLine",value:function computLine(r,t){var e=[],n=[];var i,a;for(var o=0;o<r.length;o+=2){var s=new xt(r[o],r[o+1]);var l=void 0;if(o==r.length-2){var d=new xt(r[o-2],r[o-1]);l=_.Sub(s,d).uni(),i=s;}else{o===0&&(a=s);var _d4=new xt(r[o+2],r[o+3]);l=_.Sub(_d4,s).uni();}if(l){var _d5=_.Per(l).mul(t);e.push(xt.Sub(s,_d5)),n.push(xt.Add(s,_d5));}}if(i&&a){var _o3=xt.GetSemicircleStroke(i,e[e.length-1],-1,8),_s4=xt.GetSemicircleStroke(a,n[0],-1,8);return e.concat(_o3,n.reverse(),_s4);}return[];}},{key:"replace",value:function replace(r,t,e){var _this61=this;var o;var n=r.getElementsByName(t),i=n.length;if(i){if(i>1)for(var s=1;s<n.length;s++)r.removeChild(n[s]),n[s].disconnect();e?r.replaceChild(e,n[0]):r.removeChild(n[0]),n[0].disconnect();}else e&&r.append(e);this.fullLayer===r?(o=this.drawLayer)==null||o.getElementsByName(t).forEach(function(s){var l;(l=_this61.drawLayer)==null||l.removeChild(s),s.disconnect();}):this.fullLayer.getElementsByName(t).forEach(function(s){_this61.fullLayer.removeChild(s),s.disconnect();});}}],[{key:"updateNodeOpt",value:function updateNodeOpt(r){var f;var t=r.node,e=r.opt,n=r.vNodes,i=r.willSerializeData,a=r.targetNode,o=e.zIndex,s=e.translate,l=e.angle,d=e.originPoint,c=e.scenePoint,p=e.scale,y=e.pointMap,P=e.thickness;var T;var v=a&&Xt(a)||n.get(t.name);if(!v)return;_t(o)&&(t.setAttribute("zIndex",o),v.opt.zIndex=o);var x=t.parent;if(x){if(d&&p&&a){var g=[v.op[0],v.op[1]];Fr(v.op,c,p,s);var u=[v.op[0],v.op[1]],m=[u[0]-g[0],u[1]-g[1]];if(v.centerPos=[v.centerPos[0]+m[0],v.centerPos[1]+m[1]],v.opt.translate=void 0,v.opt.scale=void 0,v.opt.eraserlines)for(var _i2=0,_Object$values=Object.values(v.opt.eraserlines);_i2<_Object$values.length;_i2++){var M=_Object$values[_i2];var E=M.op,R=M.thickness;M.thickness=R*Math.max(p[0],p[1]);for(var b=0;b<E.length;b++)Ur(E[b],c,p,s);}}else if(s){if(t.setAttribute("translate",s),v.opt.translate=s,a){var _g6=[s[0]*x.worldScaling[0],s[1]*x.worldScaling[1]];T=Sr(v.rect,_g6),v.rect=T;}else{var _g7=Jt.getRectFromLayer(x,t.name);v.rect=_g7||v.rect;}}else if(_t(l))if(t.setAttribute("rotate",l),v.opt.rotate=l,a)T=Oi(v.rect,l),v.rect=T;else{var _g8=Jt.getRectFromLayer(x,t.name);v.rect=_g8||v.rect;}if(y){var _g9=y.get(t.name);if(_g9)for(var _u10=0,_m9=0;_u10<v.op.length;_u10+=3,_m9++)v.op[_u10]=_g9[_m9][0],v.op[_u10+1]=_g9[_m9][1];}if(P&&(f=v==null?void 0:v.opt)!=null&&f.thickness&&(v.opt.thickness=P),i&&!(d&&p&&a)){if(s){var _g10=v.op.map(function(u,m){var M=m%3;return M===0?u+s[0]:M===1?u+s[1]:u;});if(v.op=_g10,v.centerPos=[v.centerPos[0]+s[0],v.centerPos[1]+s[1]],v!=null&&v.opt&&(v.opt.translate=void 0),v.opt.eraserlines)for(var _i3=0,_Object$values2=Object.values(v.opt.eraserlines);_i3<_Object$values2.length;_i3++){var _u11=_Object$values2[_i3];var _m10=_u11.op;for(var _M6=0;_M6<_m10.length;_M6++){var _E3=_m10[_M6].map(function(R,b){return b%2?R+s[1]:R+s[0];});_u11.op[_M6]=_E3;}}}else if(_t(l)){var _g11=v.op;if(Gg(_g11,v.centerPos,l),v.op=_g11,v!=null&&v.opt&&(v.opt.rotate=void 0),v.opt.eraserlines)for(var _i4=0,_Object$values3=Object.values(v.opt.eraserlines);_i4<_Object$values3.length;_i4++){var _u12=_Object$values3[_i4];var _m11=_u12.op;for(var _M7=0;_M7<_m11.length;_M7++)Hg(_m11[_M7],v.centerPos,l);}}}v&&n.setInfo(t.name,v);}}},{key:"getCenterPos",value:function getCenterPos(r,t){var e=t.worldPosition,n=t.worldScaling;return[(r.x+r.w/2-e[0])/n[0],(r.y+r.h/2-e[1])/n[1]];}},{key:"getRectFromLayer",value:function getRectFromLayer(r,t){var e=r.getElementsByName(t)[0];if(e){var n=e.getBoundingClientRect();return{x:Math.floor(n.x-Jt.SafeBorderPadding),y:Math.floor(n.y-Jt.SafeBorderPadding),w:Math.floor(n.width+Jt.SafeBorderPadding*2),h:Math.floor(n.height+Jt.SafeBorderPadding*2)};}}}]);}();et(Jt,"SafeBorderPadding",10);var vt=Jt;var br={exports:{}};br.exports;(function(h){var r=function(){var t=String.fromCharCode,e="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=",n="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+-$",i={};function a(s,l){if(!i[s]){i[s]={};for(var d=0;d<s.length;d++)i[s][s.charAt(d)]=d;}return i[s][l];}var o={compressToBase64:function compressToBase64(s){if(s==null)return"";var l=o._compress(s,6,function(d){return e.charAt(d);});switch(l.length%4){default:case 0:return l;case 1:return l+"===";case 2:return l+"==";case 3:return l+"=";}},decompressFromBase64:function decompressFromBase64(s){return s==null?"":s==""?null:o._decompress(s.length,32,function(l){return a(e,s.charAt(l));});},compressToUTF16:function compressToUTF16(s){return s==null?"":o._compress(s,15,function(l){return t(l+32);})+" ";},decompressFromUTF16:function decompressFromUTF16(s){return s==null?"":s==""?null:o._decompress(s.length,16384,function(l){return s.charCodeAt(l)-32;});},//compress into uint8array (UCS-2 big endian format)
|
|
399
|
+
gc(l,s)))&&o.push(l);return o;}var kn=yc,Sc=Object.prototype;function xc(h){var r=h&&h.constructor,t=typeof r=="function"&&r.prototype||Sc;return h===t;}var Or=xc;function Tc(h,r){return function(t){return h(r(t));};}var Jn=Tc,Mc=Jn,Pc=Mc(Object.keys,Object),Oc=Pc,Ec=Or,Cc=Oc,Ac=Object.prototype,Rc=Ac.hasOwnProperty;function Ic(h){if(!Ec(h))return Cc(h);var r=[];for(var t in Object(h))Rc.call(h,t)&&t!="constructor"&&r.push(t);return r;}var Lc=Ic,bc=Fn,wc=Vn;function Dc(h){return h!=null&&wc(h.length)&&!bc(h);}var Er=Dc,Nc=kn,Wc=Lc,Bc=Er;function Fc(h){return Bc(h)?Nc(h):Wc(h);}var Cr=Fc,Uc=ir,jc=Cr;function $c(h,r){return h&&Uc(r,jc(r),h);}var zc=$c;function Gc(h){var r=[];if(h!=null)for(var t in Object(h))r.push(t);return r;}var Hc=Gc,Kc=he,Yc=Or,Vc=Hc,Xc=Object.prototype,kc=Xc.hasOwnProperty;function Jc(h){if(!Kc(h))return Vc(h);var r=Yc(h),t=[];for(var e in h)e=="constructor"&&(r||!kc.call(h,e))||t.push(e);return t;}var Zc=Jc,Qc=kn,qc=Zc,_c=Er;function tf(h){return _c(h)?Qc(h,!0):qc(h);}var Ar=tf,ef=ir,rf=Ar;function nf(h,r){return h&&ef(r,rf(r),h);}var sf=nf,Ke={exports:{}};Ke.exports;(function(h,r){var t=ee,e=r&&!r.nodeType&&r,n=e&&!0&&h&&!h.nodeType&&h,i=n&&n.exports===e,a=i?t.Buffer:void 0,o=a?a.allocUnsafe:void 0;function s(l,d){if(d)return l.slice();var c=l.length,p=o?o(c):new l.constructor(c);return l.copy(p),p;}h.exports=s;})(Ke,Ke.exports);var of=Ke.exports;function af(h,r){var t=-1,e=h.length;for(r||(r=Array(e));++t<e;)r[t]=h[t];return r;}var lf=af;function cf(h,r){for(var t=-1,e=h==null?0:h.length,n=0,i=[];++t<e;){var a=h[t];r(a,t,h)&&(i[n++]=a);}return i;}var Zn=cf;function ff(){return[];}var Qn=ff,hf=Zn,uf=Qn,df=Object.prototype,gf=df.propertyIsEnumerable,qr=Object.getOwnPropertySymbols,pf=qr?function(h){return h==null?[]:(h=Object(h),hf(qr(h),function(r){return gf.call(h,r);}));}:uf,Rr=pf,mf=ir,vf=Rr;function yf(h,r){return mf(h,vf(h),r);}var Sf=yf;function xf(h,r){for(var t=-1,e=r.length,n=h.length;++t<e;)h[n+t]=r[t];return h;}var Ir=xf,Tf=Jn,Mf=Tf(Object.getPrototypeOf,Object),qn=Mf,Pf=Ir,Of=qn,Ef=Rr,Cf=Qn,Af=Object.getOwnPropertySymbols,Rf=Af?function(h){for(var r=[];h;)Pf(r,Ef(h)),h=Of(h);return r;}:Cf,_n=Rf,If=ir,Lf=_n;function bf(h,r){return If(h,Lf(h),r);}var wf=bf,Df=Ir,Nf=Ue;function Wf(h,r,t){var e=r(h);return Nf(h)?e:Df(e,t(h));}var ti=Wf,Bf=ti,Ff=Rr,Uf=Cr;function jf(h){return Bf(h,Uf,Ff);}var ei=jf,$f=ti,zf=_n,Gf=Ar;function Hf(h){return $f(h,Gf,zf);}var Kf=Hf,Yf=ge,Vf=ee,Xf=Yf(Vf,"DataView"),kf=Xf,Jf=ge,Zf=ee,Qf=Jf(Zf,"Promise"),qf=Qf,_f=ge,th=ee,eh=_f(th,"Set"),ri=eh,rh=ge,nh=ee,ih=rh(nh,"WeakMap"),sh=ih,dr=kf,gr=Tr,pr=qf,mr=ri,vr=sh,ni=de,Ae=Un,_r="[object Map]",oh="[object Object]",tn="[object Promise]",en="[object Set]",rn="[object WeakMap]",nn="[object DataView]",ah=Ae(dr),lh=Ae(gr),ch=Ae(pr),fh=Ae(mr),hh=Ae(vr),ue=ni;(dr&&ue(new dr(new ArrayBuffer(1)))!=nn||gr&&ue(new gr())!=_r||pr&&ue(pr.resolve())!=tn||mr&&ue(new mr())!=en||vr&&ue(new vr())!=rn)&&(ue=function ue(h){var r=ni(h),t=r==oh?h.constructor:void 0,e=t?Ae(t):"";if(e)switch(e){case ah:return nn;case lh:return _r;case ch:return tn;case fh:return en;case hh:return rn;}return r;});var or=ue,uh=Object.prototype,dh=uh.hasOwnProperty;function gh(h){var r=h.length,t=new h.constructor(r);return r&&typeof h[0]=="string"&&dh.call(h,"index")&&(t.index=h.index,t.input=h.input),t;}var ph=gh,mh=ee,vh=mh.Uint8Array,ii=vh,sn=ii;function yh(h){var r=new h.constructor(h.byteLength);return new sn(r).set(new sn(h)),r;}var Lr=yh,Sh=Lr;function xh(h,r){var t=r?Sh(h.buffer):h.buffer;return new h.constructor(t,h.byteOffset,h.byteLength);}var Th=xh,Mh=/\w*$/;function Ph(h){var r=new h.constructor(h.source,Mh.exec(h));return r.lastIndex=h.lastIndex,r;}var Oh=Ph,on=Fe,an=on?on.prototype:void 0,ln=an?an.valueOf:void 0;function Eh(h){return ln?Object(ln.call(h)):{};}var Ch=Eh,Ah=Lr;function Rh(h,r){var t=r?Ah(h.buffer):h.buffer;return new h.constructor(t,h.byteOffset,h.length);}var Ih=Rh,Lh=Lr,bh=Th,wh=Oh,Dh=Ch,Nh=Ih,Wh="[object Boolean]",Bh="[object Date]",Fh="[object Map]",Uh="[object Number]",jh="[object RegExp]",$h="[object Set]",zh="[object String]",Gh="[object Symbol]",Hh="[object ArrayBuffer]",Kh="[object DataView]",Yh="[object Float32Array]",Vh="[object Float64Array]",Xh="[object Int8Array]",kh="[object Int16Array]",Jh="[object Int32Array]",Zh="[object Uint8Array]",Qh="[object Uint8ClampedArray]",qh="[object Uint16Array]",_h="[object Uint32Array]";function tu(h,r,t){var e=h.constructor;switch(r){case Hh:return Lh(h);case Wh:case Bh:return new e(+h);case Kh:return bh(h,t);case Yh:case Vh:case Xh:case kh:case Jh:case Zh:case Qh:case qh:case _h:return Nh(h,t);case Fh:return new e();case Uh:case zh:return new e(h);case jh:return wh(h);case $h:return new e();case Gh:return Dh(h);}}var eu=tu,ru=he,cn=Object.create,nu=/* @__PURE__ */function(){function h(){}return function(r){if(!ru(r))return{};if(cn)return cn(r);h.prototype=r;var t=new h();return h.prototype=void 0,t;};}(),iu=nu,su=iu,ou=qn,au=Or;function lu(h){return typeof h.constructor=="function"&&!au(h)?su(ou(h)):{};}var cu=lu,fu=or,hu=ne,uu="[object Map]";function du(h){return hu(h)&&fu(h)==uu;}var gu=du,pu=gu,mu=sr,fn=Pr,hn=fn&&fn.isMap,vu=hn?mu(hn):pu,yu=vu,Su=or,xu=ne,Tu="[object Set]";function Mu(h){return xu(h)&&Su(h)==Tu;}var Pu=Mu,Ou=Pu,Eu=sr,un=Pr,dn=un&&un.isSet,Cu=dn?Eu(dn):Ou,si=Cu,Au=/* @__PURE__ */fe(si),Ru=$n,Iu=_a,Lu=Hn,bu=zc,wu=sf,Du=of,Nu=lf,Wu=Sf,Bu=wf,Fu=ei,Uu=Kf,ju=or,$u=ph,zu=eu,Gu=cu,Hu=Ue,Ku=Mr,Yu=yu,Vu=he,Xu=si,ku=Cr,Ju=Ar,Zu=1,Qu=2,qu=4,oi="[object Arguments]",_u="[object Array]",td="[object Boolean]",ed="[object Date]",rd="[object Error]",ai="[object Function]",nd="[object GeneratorFunction]",id="[object Map]",sd="[object Number]",li="[object Object]",od="[object RegExp]",ad="[object Set]",ld="[object String]",cd="[object Symbol]",fd="[object WeakMap]",hd="[object ArrayBuffer]",ud="[object DataView]",dd="[object Float32Array]",gd="[object Float64Array]",pd="[object Int8Array]",md="[object Int16Array]",vd="[object Int32Array]",yd="[object Uint8Array]",Sd="[object Uint8ClampedArray]",xd="[object Uint16Array]",Td="[object Uint32Array]",Ft={};Ft[oi]=Ft[_u]=Ft[hd]=Ft[ud]=Ft[td]=Ft[ed]=Ft[dd]=Ft[gd]=Ft[pd]=Ft[md]=Ft[vd]=Ft[id]=Ft[sd]=Ft[li]=Ft[od]=Ft[ad]=Ft[ld]=Ft[cd]=Ft[yd]=Ft[Sd]=Ft[xd]=Ft[Td]=!0;Ft[rd]=Ft[ai]=Ft[fd]=!1;function ze(h,r,t,e,n,i){var a,o=r&Zu,s=r&Qu,l=r&qu;if(t&&(a=n?t(h,e,n,i):t(h)),a!==void 0)return a;if(!Vu(h))return h;var d=Hu(h);if(d){if(a=$u(h),!o)return Nu(h,a);}else{var c=ju(h),p=c==ai||c==nd;if(Ku(h))return Du(h,o);if(c==li||c==oi||p&&!n){if(a=s||p?{}:Gu(h),!o)return s?Bu(h,wu(a,h)):Wu(h,bu(a,h));}else{if(!Ft[c])return n?h:{};a=zu(h,c,o);}}i||(i=new Ru());var y=i.get(h);if(y)return y;i.set(h,a),Xu(h)?h.forEach(function(v){a.add(ze(v,r,t,v,h,i));}):Yu(h)&&h.forEach(function(v,x){a.set(x,ze(v,r,t,x,h,i));});var P=l?s?Uu:Fu:s?Ju:ku,T=d?void 0:P(h);return Iu(T||h,function(v,x){T&&(x=v,v=h[x]),Lu(a,x,ze(v,r,t,x,h,i));}),a;}var Md=ze,Pd=Md,Od=1,Ed=4;function Cd(h){return Pd(h,Od|Ed);}var Ad=Cd,Xt=/* @__PURE__ */fe(Ad);var ci="1.1.5-beta.1",Rd="@netless/appliance-plugin",Id=typeof OffscreenCanvas=="function"?"worker":"mainThread";if((typeof window==="undefined"?"undefined":_typeof(window))<"u"){var h=window.__netlessUA||"";h+=" ".concat(Rd,"@").concat(ci,"_").concat(Id),window.__netlessUA=h;}var re={syncOpt:{interval:500},cdn:{subWorkerUrl:"https://cdn.jsdelivr.net/npm/@netless/appliance-plugin@latest/dist/subWorker.js",fullWorkerUrl:"https://cdn.jsdelivr.net/npm/@netless/appliance-plugin@latest/dist/fullWorker.js"},cursor:{expirationTime:5e3},bufferSize:{full:2e4,sub:1e3},bezier:{combineUnitTime:100},pencilEraser:{useBitMap:!0}};function ae(h){var r=arguments.length>1&&arguments[1]!==undefined?arguments[1]:!0;var t=h.length;if(t<2)return"";var e=h[0],n=h[1];if(t===2)return"M".concat(pe(e),"L").concat(pe(n));var i="";for(var a=2,o=t-1;a<o;a++)e=h[a],n=h[a+1],i+=me(e,n);return r?"M".concat(me(h[0],h[1]),"Q").concat(pe(h[1])).concat(me(h[1],h[2]),"T").concat(i).concat(me(h[t-1],h[0])).concat(me(h[0],h[1]),"Z"):"M".concat(pe(h[0]),"Q").concat(pe(h[1])).concat(me(h[1],h[2])).concat(h.length>3?"T":"").concat(i,"L").concat(pe(h[t-1]));}var Jt=/*#__PURE__*/function(){function Jt(r){_classCallCheck(this,Jt);et(this,"syncUnitTime",re.syncOpt.interval);et(this,"vNodes");et(this,"drawLayer");et(this,"fullLayer");et(this,"workId");var t=r.vNodes,e=r.fullLayer,n=r.drawLayer,i=r.workId,a=r.toolsOpt;this.vNodes=t,this.fullLayer=e,this.drawLayer=n,this.workId=i,this.syncUnitTime=a.syncUnitTime||this.syncUnitTime;}return _createClass(Jt,[{key:"baseConsumeResult",get:function get(){return{workId:this.workId,toolsType:this.toolsType,opt:this.workOptions};}},{key:"filterSamePoints",value:function filterSamePoints(r){var t=arguments.length>1&&arguments[1]!==undefined?arguments[1]:0.01;return r.reduce(function(e,n){var i=e[e.length-1];return(n&&!i||n&&i&&!n.isNear(i,t))&&e.push(n),e;},[]);}/** 设置工作id */},{key:"setWorkId",value:function setWorkId(r){this.workId=r;}},{key:"getWorkId",value:function getWorkId(){return this.workId;}/** 获取工作选项配置 */},{key:"getWorkOptions",value:function getWorkOptions(){return this.workOptions;}/** 设置工作选项配置 */},{key:"setWorkOptions",value:function setWorkOptions(r){var n,i,a;this.workOptions=r,this.syncUnitTime=r.syncUnitTime||this.syncUnitTime;var t=(n=this.workId)==null?void 0:n.toString(),e=t&&((i=this.vNodes)==null?void 0:i.get(t))||void 0;t&&e&&(e.opt=r,(a=this.vNodes)==null||a.setInfo(t,e));}/** 更新服务端同步配置,返回绘制结果 */},{key:"updataOptService",value:function updataOptService(r){var n,i;var t;var e=(n=this.workId)==null?void 0:n.toString();if(e&&r){var a=this.fullLayer.getElementsByName(e)||this.drawLayer&&this.drawLayer.getElementsByName(e)||[];if(a.length!==1)return;var o=a[0],s=r.pos,l=r.zIndex,d=r.scale,c=r.angle,p=r.translate,y={};_t(l)&&(y.zIndex=l),s&&(y.pos=[s[0],s[1]]),d&&(y.scale=d),c&&(y.rotate=c),p&&(y.translate=p),o.attr(y);var P=o==null?void 0:o.getBoundingClientRect();return P&&(t=Pt(t,{x:Math.floor(P.x-Jt.SafeBorderPadding),y:Math.floor(P.y-Jt.SafeBorderPadding),w:Math.floor(P.width+Jt.SafeBorderPadding*2),h:Math.floor(P.height+Jt.SafeBorderPadding*2)})),(i=this.vNodes)==null||i.setInfo(e,{rect:t,centerPos:s}),t;}}},{key:"drawEraserlines",value:function drawEraserlines(r){var t=r.group,e=r.eraserlines,n=r.pos,i=r.layer,_r$isClear=r.isClear,a=_r$isClear===void 0?!0:_r$isClear,o=!!i.parent.gl;var _iterator13=_createForOfIteratorHelper(e),_step13;try{for(_iterator13.s();!(_step13=_iterator13.n()).done;){var s=_step13.value;var l=s.thickness,d=s.op;var _iterator14=_createForOfIteratorHelper(d),_step14;try{for(_iterator14.s();!(_step14=_iterator14.n()).done;){var c=_step14.value;var p=c.map(function(x,f){return f%2?x-n[1]:x-n[0];}),y=this.computEraserPoints(p,l),P=ae(y,!0),T={pos:[0,0],d:P,fillColor:"rgba(0,0,0,1)"},v=new ce(T);a&&(v.addEventListener("beforerender",function(_ref165){var x=_ref165.detail;var f=x.context;o?f.blendFuncSeparate(f.ZERO,f.ZERO,f.ZERO,f.ZERO):f.globalCompositeOperation="destination-out";}),v.addEventListener("afterrender",function(_ref166){var x=_ref166.detail;var f=x.context;o?f.blendFuncSeparate(f.SRC_ALPHA,f.ONE_MINUS_SRC_ALPHA,f.ONE,f.ONE_MINUS_SRC_ALPHA):f.globalCompositeOperation="source-over";})),t.append(v);}}catch(err){_iterator14.e(err);}finally{_iterator14.f();}}}catch(err){_iterator13.e(err);}finally{_iterator13.f();}}},{key:"computEraserPoints",value:function computEraserPoints(r,t){var e=Math.ceil(t/2);return r.length===2?this.computDot(r,e):this.computLine(r,e);}},{key:"computDot",value:function computDot(r,t){var e=new xt(r[0],r[1]);return xt.GetDotStroke(e,t,8);}},{key:"computLine",value:function computLine(r,t){var e=[],n=[];var i,a;for(var o=0;o<r.length;o+=2){var s=new xt(r[o],r[o+1]);var l=void 0;if(o==r.length-2){var d=new xt(r[o-2],r[o-1]);l=_.Sub(s,d).uni(),i=s;}else{o===0&&(a=s);var _d4=new xt(r[o+2],r[o+3]);l=_.Sub(_d4,s).uni();}if(l){var _d5=_.Per(l).mul(t);e.push(xt.Sub(s,_d5)),n.push(xt.Add(s,_d5));}}if(i&&a){var _o3=xt.GetSemicircleStroke(i,e[e.length-1],-1,8),_s4=xt.GetSemicircleStroke(a,n[0],-1,8);return e.concat(_o3,n.reverse(),_s4);}return[];}},{key:"replace",value:function replace(r,t,e){var _this61=this;var o;var n=r.getElementsByName(t),i=n.length;if(i){if(i>1)for(var s=1;s<n.length;s++)r.removeChild(n[s]),n[s].disconnect();e?r.replaceChild(e,n[0]):r.removeChild(n[0]),n[0].disconnect();}else e&&r.append(e);this.fullLayer===r?(o=this.drawLayer)==null||o.getElementsByName(t).forEach(function(s){var l;(l=_this61.drawLayer)==null||l.removeChild(s),s.disconnect();}):this.fullLayer.getElementsByName(t).forEach(function(s){_this61.fullLayer.removeChild(s),s.disconnect();});}}],[{key:"updateNodeOpt",value:function updateNodeOpt(r){var f;var t=r.node,e=r.opt,n=r.vNodes,i=r.willSerializeData,a=r.targetNode,o=e.zIndex,s=e.translate,l=e.angle,d=e.originPoint,c=e.scenePoint,p=e.scale,y=e.pointMap,P=e.thickness;var T;var v=a&&Xt(a)||n.get(t.name);if(!v)return;_t(o)&&(t.setAttribute("zIndex",o),v.opt.zIndex=o);var x=t.parent;if(x){if(d&&p&&a){var g=[v.op[0],v.op[1]];Fr(v.op,c,p,s);var u=[v.op[0],v.op[1]],m=[u[0]-g[0],u[1]-g[1]];if(v.centerPos=[v.centerPos[0]+m[0],v.centerPos[1]+m[1]],v.opt.translate=void 0,v.opt.scale=void 0,v.opt.eraserlines)for(var _i2=0,_Object$values=Object.values(v.opt.eraserlines);_i2<_Object$values.length;_i2++){var M=_Object$values[_i2];var E=M.op,R=M.thickness;M.thickness=R*Math.max(p[0],p[1]);for(var b=0;b<E.length;b++)Ur(E[b],c,p,s);}}else if(s){if(t.setAttribute("translate",s),v.opt.translate=s,a){var _g6=[s[0]*x.worldScaling[0],s[1]*x.worldScaling[1]];T=Sr(v.rect,_g6),v.rect=T;}else{var _g7=Jt.getRectFromLayer(x,t.name);v.rect=_g7||v.rect;}}else if(_t(l))if(t.setAttribute("rotate",l),v.opt.rotate=l,a)T=Oi(v.rect,l),v.rect=T;else{var _g8=Jt.getRectFromLayer(x,t.name);v.rect=_g8||v.rect;}if(y){var _g9=y.get(t.name);if(_g9)for(var _u10=0,_m9=0;_u10<v.op.length;_u10+=3,_m9++)v.op[_u10]=_g9[_m9][0],v.op[_u10+1]=_g9[_m9][1];}if(P&&(f=v==null?void 0:v.opt)!=null&&f.thickness&&(v.opt.thickness=P),i&&!(d&&p&&a)){if(s){var _g10=v.op.map(function(u,m){var M=m%3;return M===0?u+s[0]:M===1?u+s[1]:u;});if(v.op=_g10,v.centerPos=[v.centerPos[0]+s[0],v.centerPos[1]+s[1]],v!=null&&v.opt&&(v.opt.translate=void 0),v.opt.eraserlines)for(var _i3=0,_Object$values2=Object.values(v.opt.eraserlines);_i3<_Object$values2.length;_i3++){var _u11=_Object$values2[_i3];var _m10=_u11.op;for(var _M6=0;_M6<_m10.length;_M6++){var _E3=_m10[_M6].map(function(R,b){return b%2?R+s[1]:R+s[0];});_u11.op[_M6]=_E3;}}}else if(_t(l)){var _g11=v.op;if(Gg(_g11,v.centerPos,l),v.op=_g11,v!=null&&v.opt&&(v.opt.rotate=void 0),v.opt.eraserlines)for(var _i4=0,_Object$values3=Object.values(v.opt.eraserlines);_i4<_Object$values3.length;_i4++){var _u12=_Object$values3[_i4];var _m11=_u12.op;for(var _M7=0;_M7<_m11.length;_M7++)Hg(_m11[_M7],v.centerPos,l);}}}v&&n.setInfo(t.name,v);}}},{key:"getCenterPos",value:function getCenterPos(r,t){var e=t.worldPosition,n=t.worldScaling;return[(r.x+r.w/2-e[0])/n[0],(r.y+r.h/2-e[1])/n[1]];}},{key:"getRectFromLayer",value:function getRectFromLayer(r,t){var e=r.getElementsByName(t)[0];if(e){var n=e.getBoundingClientRect();return{x:Math.floor(n.x-Jt.SafeBorderPadding),y:Math.floor(n.y-Jt.SafeBorderPadding),w:Math.floor(n.width+Jt.SafeBorderPadding*2),h:Math.floor(n.height+Jt.SafeBorderPadding*2)};}}}]);}();et(Jt,"SafeBorderPadding",10);var vt=Jt;var br={exports:{}};br.exports;(function(h){var r=function(){var t=String.fromCharCode,e="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=",n="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+-$",i={};function a(s,l){if(!i[s]){i[s]={};for(var d=0;d<s.length;d++)i[s][s.charAt(d)]=d;}return i[s][l];}var o={compressToBase64:function compressToBase64(s){if(s==null)return"";var l=o._compress(s,6,function(d){return e.charAt(d);});switch(l.length%4){default:case 0:return l;case 1:return l+"===";case 2:return l+"==";case 3:return l+"=";}},decompressFromBase64:function decompressFromBase64(s){return s==null?"":s==""?null:o._decompress(s.length,32,function(l){return a(e,s.charAt(l));});},compressToUTF16:function compressToUTF16(s){return s==null?"":o._compress(s,15,function(l){return t(l+32);})+" ";},decompressFromUTF16:function decompressFromUTF16(s){return s==null?"":s==""?null:o._decompress(s.length,16384,function(l){return s.charCodeAt(l)-32;});},//compress into uint8array (UCS-2 big endian format)
|
|
400
400
|
compressToUint8Array:function compressToUint8Array(s){for(var l=o.compress(s),d=new Uint8Array(l.length*2),c=0,p=l.length;c<p;c++){var y=l.charCodeAt(c);d[c*2]=y>>>8,d[c*2+1]=y%256;}return d;},//decompress from uint8array (UCS-2 big endian format)
|
|
401
401
|
decompressFromUint8Array:function decompressFromUint8Array(s){if(s==null)return o.decompress(s);for(var l=new Array(s.length/2),d=0,c=l.length;d<c;d++)l[d]=s[d*2]*256+s[d*2+1];var p=[];return l.forEach(function(y){p.push(t(y));}),o.decompress(p.join(""));},//compress into a string that is already URI encoded
|
|
402
402
|
compressToEncodedURIComponent:function compressToEncodedURIComponent(s){return s==null?"":o._compress(s,6,function(l){return n.charAt(l);});},//decompress from an output of compressToEncodedURIComponent
|
|
@@ -396,7 +396,7 @@ _inherits(o,_e$default22);return _createClass(o,[{key:"texture",get:function get
|
|
|
396
396
|
l=="length"||// Node.js 0.10 has enumerable non-index properties on buffers.
|
|
397
397
|
n&&(l=="offset"||l=="parent")||// PhantomJS 2 has enumerable non-index properties on typed arrays.
|
|
398
398
|
i&&(l=="buffer"||l=="byteLength"||l=="byteOffset")||// Skip index properties.
|
|
399
|
-
gc(l,s)))&&o.push(l);return o;}var kn=yc,Sc=Object.prototype;function xc(h){var r=h&&h.constructor,t=typeof r=="function"&&r.prototype||Sc;return h===t;}var Or=xc;function Tc(h,r){return function(t){return h(r(t));};}var Jn=Tc,Mc=Jn,Pc=Mc(Object.keys,Object),Oc=Pc,Ec=Or,Cc=Oc,Ac=Object.prototype,Rc=Ac.hasOwnProperty;function Ic(h){if(!Ec(h))return Cc(h);var r=[];for(var t in Object(h))Rc.call(h,t)&&t!="constructor"&&r.push(t);return r;}var Lc=Ic,bc=Fn,wc=Vn;function Dc(h){return h!=null&&wc(h.length)&&!bc(h);}var Er=Dc,Nc=kn,Wc=Lc,Bc=Er;function Fc(h){return Bc(h)?Nc(h):Wc(h);}var Cr=Fc,Uc=ir,jc=Cr;function $c(h,r){return h&&Uc(r,jc(r),h);}var zc=$c;function Gc(h){var r=[];if(h!=null)for(var t in Object(h))r.push(t);return r;}var Hc=Gc,Kc=he,Yc=Or,Vc=Hc,Xc=Object.prototype,kc=Xc.hasOwnProperty;function Jc(h){if(!Kc(h))return Vc(h);var r=Yc(h),t=[];for(var e in h)e=="constructor"&&(r||!kc.call(h,e))||t.push(e);return t;}var Zc=Jc,Qc=kn,qc=Zc,_c=Er;function tf(h){return _c(h)?Qc(h,!0):qc(h);}var Ar=tf,ef=ir,rf=Ar;function nf(h,r){return h&&ef(r,rf(r),h);}var sf=nf,Ke={exports:{}};Ke.exports;(function(h,r){var t=ee,e=r&&!r.nodeType&&r,n=e&&!0&&h&&!h.nodeType&&h,i=n&&n.exports===e,a=i?t.Buffer:void 0,o=a?a.allocUnsafe:void 0;function s(l,d){if(d)return l.slice();var c=l.length,p=o?o(c):new l.constructor(c);return l.copy(p),p;}h.exports=s;})(Ke,Ke.exports);var of=Ke.exports;function af(h,r){var t=-1,e=h.length;for(r||(r=Array(e));++t<e;)r[t]=h[t];return r;}var lf=af;function cf(h,r){for(var t=-1,e=h==null?0:h.length,n=0,i=[];++t<e;){var a=h[t];r(a,t,h)&&(i[n++]=a);}return i;}var Zn=cf;function ff(){return[];}var Qn=ff,hf=Zn,uf=Qn,df=Object.prototype,gf=df.propertyIsEnumerable,qr=Object.getOwnPropertySymbols,pf=qr?function(h){return h==null?[]:(h=Object(h),hf(qr(h),function(r){return gf.call(h,r);}));}:uf,Rr=pf,mf=ir,vf=Rr;function yf(h,r){return mf(h,vf(h),r);}var Sf=yf;function xf(h,r){for(var t=-1,e=r.length,n=h.length;++t<e;)h[n+t]=r[t];return h;}var Ir=xf,Tf=Jn,Mf=Tf(Object.getPrototypeOf,Object),qn=Mf,Pf=Ir,Of=qn,Ef=Rr,Cf=Qn,Af=Object.getOwnPropertySymbols,Rf=Af?function(h){for(var r=[];h;)Pf(r,Ef(h)),h=Of(h);return r;}:Cf,_n=Rf,If=ir,Lf=_n;function bf(h,r){return If(h,Lf(h),r);}var wf=bf,Df=Ir,Nf=Ue;function Wf(h,r,t){var e=r(h);return Nf(h)?e:Df(e,t(h));}var ti=Wf,Bf=ti,Ff=Rr,Uf=Cr;function jf(h){return Bf(h,Uf,Ff);}var ei=jf,$f=ti,zf=_n,Gf=Ar;function Hf(h){return $f(h,Gf,zf);}var Kf=Hf,Yf=ge,Vf=ee,Xf=Yf(Vf,"DataView"),kf=Xf,Jf=ge,Zf=ee,Qf=Jf(Zf,"Promise"),qf=Qf,_f=ge,th=ee,eh=_f(th,"Set"),ri=eh,rh=ge,nh=ee,ih=rh(nh,"WeakMap"),sh=ih,dr=kf,gr=Tr,pr=qf,mr=ri,vr=sh,ni=de,Ae=Un,_r="[object Map]",oh="[object Object]",tn="[object Promise]",en="[object Set]",rn="[object WeakMap]",nn="[object DataView]",ah=Ae(dr),lh=Ae(gr),ch=Ae(pr),fh=Ae(mr),hh=Ae(vr),ue=ni;(dr&&ue(new dr(new ArrayBuffer(1)))!=nn||gr&&ue(new gr())!=_r||pr&&ue(pr.resolve())!=tn||mr&&ue(new mr())!=en||vr&&ue(new vr())!=rn)&&(ue=function ue(h){var r=ni(h),t=r==oh?h.constructor:void 0,e=t?Ae(t):"";if(e)switch(e){case ah:return nn;case lh:return _r;case ch:return tn;case fh:return en;case hh:return rn;}return r;});var or=ue,uh=Object.prototype,dh=uh.hasOwnProperty;function gh(h){var r=h.length,t=new h.constructor(r);return r&&typeof h[0]=="string"&&dh.call(h,"index")&&(t.index=h.index,t.input=h.input),t;}var ph=gh,mh=ee,vh=mh.Uint8Array,ii=vh,sn=ii;function yh(h){var r=new h.constructor(h.byteLength);return new sn(r).set(new sn(h)),r;}var Lr=yh,Sh=Lr;function xh(h,r){var t=r?Sh(h.buffer):h.buffer;return new h.constructor(t,h.byteOffset,h.byteLength);}var Th=xh,Mh=/\w*$/;function Ph(h){var r=new h.constructor(h.source,Mh.exec(h));return r.lastIndex=h.lastIndex,r;}var Oh=Ph,on=Fe,an=on?on.prototype:void 0,ln=an?an.valueOf:void 0;function Eh(h){return ln?Object(ln.call(h)):{};}var Ch=Eh,Ah=Lr;function Rh(h,r){var t=r?Ah(h.buffer):h.buffer;return new h.constructor(t,h.byteOffset,h.length);}var Ih=Rh,Lh=Lr,bh=Th,wh=Oh,Dh=Ch,Nh=Ih,Wh="[object Boolean]",Bh="[object Date]",Fh="[object Map]",Uh="[object Number]",jh="[object RegExp]",$h="[object Set]",zh="[object String]",Gh="[object Symbol]",Hh="[object ArrayBuffer]",Kh="[object DataView]",Yh="[object Float32Array]",Vh="[object Float64Array]",Xh="[object Int8Array]",kh="[object Int16Array]",Jh="[object Int32Array]",Zh="[object Uint8Array]",Qh="[object Uint8ClampedArray]",qh="[object Uint16Array]",_h="[object Uint32Array]";function tu(h,r,t){var e=h.constructor;switch(r){case Hh:return Lh(h);case Wh:case Bh:return new e(+h);case Kh:return bh(h,t);case Yh:case Vh:case Xh:case kh:case Jh:case Zh:case Qh:case qh:case _h:return Nh(h,t);case Fh:return new e();case Uh:case zh:return new e(h);case jh:return wh(h);case $h:return new e();case Gh:return Dh(h);}}var eu=tu,ru=he,cn=Object.create,nu=/* @__PURE__ */function(){function h(){}return function(r){if(!ru(r))return{};if(cn)return cn(r);h.prototype=r;var t=new h();return h.prototype=void 0,t;};}(),iu=nu,su=iu,ou=qn,au=Or;function lu(h){return typeof h.constructor=="function"&&!au(h)?su(ou(h)):{};}var cu=lu,fu=or,hu=ne,uu="[object Map]";function du(h){return hu(h)&&fu(h)==uu;}var gu=du,pu=gu,mu=sr,fn=Pr,hn=fn&&fn.isMap,vu=hn?mu(hn):pu,yu=vu,Su=or,xu=ne,Tu="[object Set]";function Mu(h){return xu(h)&&Su(h)==Tu;}var Pu=Mu,Ou=Pu,Eu=sr,un=Pr,dn=un&&un.isSet,Cu=dn?Eu(dn):Ou,si=Cu,Au=/* @__PURE__ */fe(si),Ru=$n,Iu=_a,Lu=Hn,bu=zc,wu=sf,Du=of,Nu=lf,Wu=Sf,Bu=wf,Fu=ei,Uu=Kf,ju=or,$u=ph,zu=eu,Gu=cu,Hu=Ue,Ku=Mr,Yu=yu,Vu=he,Xu=si,ku=Cr,Ju=Ar,Zu=1,Qu=2,qu=4,oi="[object Arguments]",_u="[object Array]",td="[object Boolean]",ed="[object Date]",rd="[object Error]",ai="[object Function]",nd="[object GeneratorFunction]",id="[object Map]",sd="[object Number]",li="[object Object]",od="[object RegExp]",ad="[object Set]",ld="[object String]",cd="[object Symbol]",fd="[object WeakMap]",hd="[object ArrayBuffer]",ud="[object DataView]",dd="[object Float32Array]",gd="[object Float64Array]",pd="[object Int8Array]",md="[object Int16Array]",vd="[object Int32Array]",yd="[object Uint8Array]",Sd="[object Uint8ClampedArray]",xd="[object Uint16Array]",Td="[object Uint32Array]",Ft={};Ft[oi]=Ft[_u]=Ft[hd]=Ft[ud]=Ft[td]=Ft[ed]=Ft[dd]=Ft[gd]=Ft[pd]=Ft[md]=Ft[vd]=Ft[id]=Ft[sd]=Ft[li]=Ft[od]=Ft[ad]=Ft[ld]=Ft[cd]=Ft[yd]=Ft[Sd]=Ft[xd]=Ft[Td]=!0;Ft[rd]=Ft[ai]=Ft[fd]=!1;function ze(h,r,t,e,n,i){var a,o=r&Zu,s=r&Qu,l=r&qu;if(t&&(a=n?t(h,e,n,i):t(h)),a!==void 0)return a;if(!Vu(h))return h;var d=Hu(h);if(d){if(a=$u(h),!o)return Nu(h,a);}else{var c=ju(h),p=c==ai||c==nd;if(Ku(h))return Du(h,o);if(c==li||c==oi||p&&!n){if(a=s||p?{}:Gu(h),!o)return s?Bu(h,wu(a,h)):Wu(h,bu(a,h));}else{if(!Ft[c])return n?h:{};a=zu(h,c,o);}}i||(i=new Ru());var y=i.get(h);if(y)return y;i.set(h,a),Xu(h)?h.forEach(function(v){a.add(ze(v,r,t,v,h,i));}):Yu(h)&&h.forEach(function(v,x){a.set(x,ze(v,r,t,x,h,i));});var P=l?s?Uu:Fu:s?Ju:ku,T=d?void 0:P(h);return Iu(T||h,function(v,x){T&&(x=v,v=h[x]),Lu(a,x,ze(v,r,t,x,h,i));}),a;}var Md=ze,Pd=Md,Od=1,Ed=4;function Cd(h){return Pd(h,Od|Ed);}var Ad=Cd,Xt=/* @__PURE__ */fe(Ad);var ci="1.1.5-beta.0",Rd="@netless/appliance-plugin",Id=typeof OffscreenCanvas=="function"?"worker":"mainThread";if((typeof window==="undefined"?"undefined":_typeof(window))<"u"){var h=window.__netlessUA||"";h+=" ".concat(Rd,"@").concat(ci,"_").concat(Id),window.__netlessUA=h;}var re={syncOpt:{interval:500},cdn:{subWorkerUrl:"https://cdn.jsdelivr.net/npm/@netless/appliance-plugin@latest/dist/subWorker.js",fullWorkerUrl:"https://cdn.jsdelivr.net/npm/@netless/appliance-plugin@latest/dist/fullWorker.js"},cursor:{expirationTime:5e3},bufferSize:{full:2e4,sub:1e3},bezier:{combineUnitTime:100},pencilEraser:{useBitMap:!0}};function ae(h){var r=arguments.length>1&&arguments[1]!==undefined?arguments[1]:!0;var t=h.length;if(t<2)return"";var e=h[0],n=h[1];if(t===2)return"M".concat(pe(e),"L").concat(pe(n));var i="";for(var a=2,o=t-1;a<o;a++)e=h[a],n=h[a+1],i+=me(e,n);return r?"M".concat(me(h[0],h[1]),"Q").concat(pe(h[1])).concat(me(h[1],h[2]),"T").concat(i).concat(me(h[t-1],h[0])).concat(me(h[0],h[1]),"Z"):"M".concat(pe(h[0]),"Q").concat(pe(h[1])).concat(me(h[1],h[2])).concat(h.length>3?"T":"").concat(i,"L").concat(pe(h[t-1]));}var Jt=/*#__PURE__*/function(){function Jt(r){_classCallCheck(this,Jt);et(this,"syncUnitTime",re.syncOpt.interval);et(this,"vNodes");et(this,"drawLayer");et(this,"fullLayer");et(this,"workId");var t=r.vNodes,e=r.fullLayer,n=r.drawLayer,i=r.workId,a=r.toolsOpt;this.vNodes=t,this.fullLayer=e,this.drawLayer=n,this.workId=i,this.syncUnitTime=a.syncUnitTime||this.syncUnitTime;}return _createClass(Jt,[{key:"baseConsumeResult",get:function get(){return{workId:this.workId,toolsType:this.toolsType,opt:this.workOptions};}},{key:"filterSamePoints",value:function filterSamePoints(r){var t=arguments.length>1&&arguments[1]!==undefined?arguments[1]:0.01;return r.reduce(function(e,n){var i=e[e.length-1];return(n&&!i||n&&i&&!n.isNear(i,t))&&e.push(n),e;},[]);}/** 设置工作id */},{key:"setWorkId",value:function setWorkId(r){this.workId=r;}},{key:"getWorkId",value:function getWorkId(){return this.workId;}/** 获取工作选项配置 */},{key:"getWorkOptions",value:function getWorkOptions(){return this.workOptions;}/** 设置工作选项配置 */},{key:"setWorkOptions",value:function setWorkOptions(r){var n,i,a;this.workOptions=r,this.syncUnitTime=r.syncUnitTime||this.syncUnitTime;var t=(n=this.workId)==null?void 0:n.toString(),e=t&&((i=this.vNodes)==null?void 0:i.get(t))||void 0;t&&e&&(e.opt=r,(a=this.vNodes)==null||a.setInfo(t,e));}/** 更新服务端同步配置,返回绘制结果 */},{key:"updataOptService",value:function updataOptService(r){var n,i;var t;var e=(n=this.workId)==null?void 0:n.toString();if(e&&r){var a=this.fullLayer.getElementsByName(e)||this.drawLayer&&this.drawLayer.getElementsByName(e)||[];if(a.length!==1)return;var o=a[0],s=r.pos,l=r.zIndex,d=r.scale,c=r.angle,p=r.translate,y={};_t(l)&&(y.zIndex=l),s&&(y.pos=[s[0],s[1]]),d&&(y.scale=d),c&&(y.rotate=c),p&&(y.translate=p),o.attr(y);var P=o==null?void 0:o.getBoundingClientRect();return P&&(t=Pt(t,{x:Math.floor(P.x-Jt.SafeBorderPadding),y:Math.floor(P.y-Jt.SafeBorderPadding),w:Math.floor(P.width+Jt.SafeBorderPadding*2),h:Math.floor(P.height+Jt.SafeBorderPadding*2)})),(i=this.vNodes)==null||i.setInfo(e,{rect:t,centerPos:s}),t;}}},{key:"drawEraserlines",value:function drawEraserlines(r){var t=r.group,e=r.eraserlines,n=r.pos,i=r.layer,_r$isClear=r.isClear,a=_r$isClear===void 0?!0:_r$isClear,o=!!i.parent.gl;var _iterator13=_createForOfIteratorHelper(e),_step13;try{for(_iterator13.s();!(_step13=_iterator13.n()).done;){var s=_step13.value;var l=s.thickness,d=s.op;var _iterator14=_createForOfIteratorHelper(d),_step14;try{for(_iterator14.s();!(_step14=_iterator14.n()).done;){var c=_step14.value;var p=c.map(function(x,f){return f%2?x-n[1]:x-n[0];}),y=this.computEraserPoints(p,l),P=ae(y,!0),T={pos:[0,0],d:P,fillColor:"rgba(0,0,0,1)"},v=new ce(T);a&&(v.addEventListener("beforerender",function(_ref165){var x=_ref165.detail;var f=x.context;o?f.blendFuncSeparate(f.ZERO,f.ZERO,f.ZERO,f.ZERO):f.globalCompositeOperation="destination-out";}),v.addEventListener("afterrender",function(_ref166){var x=_ref166.detail;var f=x.context;o?f.blendFuncSeparate(f.SRC_ALPHA,f.ONE_MINUS_SRC_ALPHA,f.ONE,f.ONE_MINUS_SRC_ALPHA):f.globalCompositeOperation="source-over";})),t.append(v);}}catch(err){_iterator14.e(err);}finally{_iterator14.f();}}}catch(err){_iterator13.e(err);}finally{_iterator13.f();}}},{key:"computEraserPoints",value:function computEraserPoints(r,t){var e=Math.ceil(t/2);return r.length===2?this.computDot(r,e):this.computLine(r,e);}},{key:"computDot",value:function computDot(r,t){var e=new xt(r[0],r[1]);return xt.GetDotStroke(e,t,8);}},{key:"computLine",value:function computLine(r,t){var e=[],n=[];var i,a;for(var o=0;o<r.length;o+=2){var s=new xt(r[o],r[o+1]);var l=void 0;if(o==r.length-2){var d=new xt(r[o-2],r[o-1]);l=_.Sub(s,d).uni(),i=s;}else{o===0&&(a=s);var _d4=new xt(r[o+2],r[o+3]);l=_.Sub(_d4,s).uni();}if(l){var _d5=_.Per(l).mul(t);e.push(xt.Sub(s,_d5)),n.push(xt.Add(s,_d5));}}if(i&&a){var _o3=xt.GetSemicircleStroke(i,e[e.length-1],-1,8),_s4=xt.GetSemicircleStroke(a,n[0],-1,8);return e.concat(_o3,n.reverse(),_s4);}return[];}},{key:"replace",value:function replace(r,t,e){var _this61=this;var o;var n=r.getElementsByName(t),i=n.length;if(i){if(i>1)for(var s=1;s<n.length;s++)r.removeChild(n[s]),n[s].disconnect();e?r.replaceChild(e,n[0]):r.removeChild(n[0]),n[0].disconnect();}else e&&r.append(e);this.fullLayer===r?(o=this.drawLayer)==null||o.getElementsByName(t).forEach(function(s){var l;(l=_this61.drawLayer)==null||l.removeChild(s),s.disconnect();}):this.fullLayer.getElementsByName(t).forEach(function(s){_this61.fullLayer.removeChild(s),s.disconnect();});}}],[{key:"updateNodeOpt",value:function updateNodeOpt(r){var f;var t=r.node,e=r.opt,n=r.vNodes,i=r.willSerializeData,a=r.targetNode,o=e.zIndex,s=e.translate,l=e.angle,d=e.originPoint,c=e.scenePoint,p=e.scale,y=e.pointMap,P=e.thickness;var T;var v=a&&Xt(a)||n.get(t.name);if(!v)return;_t(o)&&(t.setAttribute("zIndex",o),v.opt.zIndex=o);var x=t.parent;if(x){if(d&&p&&a){var g=[v.op[0],v.op[1]];Fr(v.op,c,p,s);var u=[v.op[0],v.op[1]],m=[u[0]-g[0],u[1]-g[1]];if(v.centerPos=[v.centerPos[0]+m[0],v.centerPos[1]+m[1]],v.opt.translate=void 0,v.opt.scale=void 0,v.opt.eraserlines)for(var _i2=0,_Object$values=Object.values(v.opt.eraserlines);_i2<_Object$values.length;_i2++){var M=_Object$values[_i2];var E=M.op,R=M.thickness;M.thickness=R*Math.max(p[0],p[1]);for(var b=0;b<E.length;b++)Ur(E[b],c,p,s);}}else if(s){if(t.setAttribute("translate",s),v.opt.translate=s,a){var _g6=[s[0]*x.worldScaling[0],s[1]*x.worldScaling[1]];T=Sr(v.rect,_g6),v.rect=T;}else{var _g7=Jt.getRectFromLayer(x,t.name);v.rect=_g7||v.rect;}}else if(_t(l))if(t.setAttribute("rotate",l),v.opt.rotate=l,a)T=Oi(v.rect,l),v.rect=T;else{var _g8=Jt.getRectFromLayer(x,t.name);v.rect=_g8||v.rect;}if(y){var _g9=y.get(t.name);if(_g9)for(var _u10=0,_m9=0;_u10<v.op.length;_u10+=3,_m9++)v.op[_u10]=_g9[_m9][0],v.op[_u10+1]=_g9[_m9][1];}if(P&&(f=v==null?void 0:v.opt)!=null&&f.thickness&&(v.opt.thickness=P),i&&!(d&&p&&a)){if(s){var _g10=v.op.map(function(u,m){var M=m%3;return M===0?u+s[0]:M===1?u+s[1]:u;});if(v.op=_g10,v.centerPos=[v.centerPos[0]+s[0],v.centerPos[1]+s[1]],v!=null&&v.opt&&(v.opt.translate=void 0),v.opt.eraserlines)for(var _i3=0,_Object$values2=Object.values(v.opt.eraserlines);_i3<_Object$values2.length;_i3++){var _u11=_Object$values2[_i3];var _m10=_u11.op;for(var _M6=0;_M6<_m10.length;_M6++){var _E3=_m10[_M6].map(function(R,b){return b%2?R+s[1]:R+s[0];});_u11.op[_M6]=_E3;}}}else if(_t(l)){var _g11=v.op;if(Gg(_g11,v.centerPos,l),v.op=_g11,v!=null&&v.opt&&(v.opt.rotate=void 0),v.opt.eraserlines)for(var _i4=0,_Object$values3=Object.values(v.opt.eraserlines);_i4<_Object$values3.length;_i4++){var _u12=_Object$values3[_i4];var _m11=_u12.op;for(var _M7=0;_M7<_m11.length;_M7++)Hg(_m11[_M7],v.centerPos,l);}}}v&&n.setInfo(t.name,v);}}},{key:"getCenterPos",value:function getCenterPos(r,t){var e=t.worldPosition,n=t.worldScaling;return[(r.x+r.w/2-e[0])/n[0],(r.y+r.h/2-e[1])/n[1]];}},{key:"getRectFromLayer",value:function getRectFromLayer(r,t){var e=r.getElementsByName(t)[0];if(e){var n=e.getBoundingClientRect();return{x:Math.floor(n.x-Jt.SafeBorderPadding),y:Math.floor(n.y-Jt.SafeBorderPadding),w:Math.floor(n.width+Jt.SafeBorderPadding*2),h:Math.floor(n.height+Jt.SafeBorderPadding*2)};}}}]);}();et(Jt,"SafeBorderPadding",10);var vt=Jt;var br={exports:{}};br.exports;(function(h){var r=function(){var t=String.fromCharCode,e="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=",n="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+-$",i={};function a(s,l){if(!i[s]){i[s]={};for(var d=0;d<s.length;d++)i[s][s.charAt(d)]=d;}return i[s][l];}var o={compressToBase64:function compressToBase64(s){if(s==null)return"";var l=o._compress(s,6,function(d){return e.charAt(d);});switch(l.length%4){default:case 0:return l;case 1:return l+"===";case 2:return l+"==";case 3:return l+"=";}},decompressFromBase64:function decompressFromBase64(s){return s==null?"":s==""?null:o._decompress(s.length,32,function(l){return a(e,s.charAt(l));});},compressToUTF16:function compressToUTF16(s){return s==null?"":o._compress(s,15,function(l){return t(l+32);})+" ";},decompressFromUTF16:function decompressFromUTF16(s){return s==null?"":s==""?null:o._decompress(s.length,16384,function(l){return s.charCodeAt(l)-32;});},//compress into uint8array (UCS-2 big endian format)
|
|
399
|
+
gc(l,s)))&&o.push(l);return o;}var kn=yc,Sc=Object.prototype;function xc(h){var r=h&&h.constructor,t=typeof r=="function"&&r.prototype||Sc;return h===t;}var Or=xc;function Tc(h,r){return function(t){return h(r(t));};}var Jn=Tc,Mc=Jn,Pc=Mc(Object.keys,Object),Oc=Pc,Ec=Or,Cc=Oc,Ac=Object.prototype,Rc=Ac.hasOwnProperty;function Ic(h){if(!Ec(h))return Cc(h);var r=[];for(var t in Object(h))Rc.call(h,t)&&t!="constructor"&&r.push(t);return r;}var Lc=Ic,bc=Fn,wc=Vn;function Dc(h){return h!=null&&wc(h.length)&&!bc(h);}var Er=Dc,Nc=kn,Wc=Lc,Bc=Er;function Fc(h){return Bc(h)?Nc(h):Wc(h);}var Cr=Fc,Uc=ir,jc=Cr;function $c(h,r){return h&&Uc(r,jc(r),h);}var zc=$c;function Gc(h){var r=[];if(h!=null)for(var t in Object(h))r.push(t);return r;}var Hc=Gc,Kc=he,Yc=Or,Vc=Hc,Xc=Object.prototype,kc=Xc.hasOwnProperty;function Jc(h){if(!Kc(h))return Vc(h);var r=Yc(h),t=[];for(var e in h)e=="constructor"&&(r||!kc.call(h,e))||t.push(e);return t;}var Zc=Jc,Qc=kn,qc=Zc,_c=Er;function tf(h){return _c(h)?Qc(h,!0):qc(h);}var Ar=tf,ef=ir,rf=Ar;function nf(h,r){return h&&ef(r,rf(r),h);}var sf=nf,Ke={exports:{}};Ke.exports;(function(h,r){var t=ee,e=r&&!r.nodeType&&r,n=e&&!0&&h&&!h.nodeType&&h,i=n&&n.exports===e,a=i?t.Buffer:void 0,o=a?a.allocUnsafe:void 0;function s(l,d){if(d)return l.slice();var c=l.length,p=o?o(c):new l.constructor(c);return l.copy(p),p;}h.exports=s;})(Ke,Ke.exports);var of=Ke.exports;function af(h,r){var t=-1,e=h.length;for(r||(r=Array(e));++t<e;)r[t]=h[t];return r;}var lf=af;function cf(h,r){for(var t=-1,e=h==null?0:h.length,n=0,i=[];++t<e;){var a=h[t];r(a,t,h)&&(i[n++]=a);}return i;}var Zn=cf;function ff(){return[];}var Qn=ff,hf=Zn,uf=Qn,df=Object.prototype,gf=df.propertyIsEnumerable,qr=Object.getOwnPropertySymbols,pf=qr?function(h){return h==null?[]:(h=Object(h),hf(qr(h),function(r){return gf.call(h,r);}));}:uf,Rr=pf,mf=ir,vf=Rr;function yf(h,r){return mf(h,vf(h),r);}var Sf=yf;function xf(h,r){for(var t=-1,e=r.length,n=h.length;++t<e;)h[n+t]=r[t];return h;}var Ir=xf,Tf=Jn,Mf=Tf(Object.getPrototypeOf,Object),qn=Mf,Pf=Ir,Of=qn,Ef=Rr,Cf=Qn,Af=Object.getOwnPropertySymbols,Rf=Af?function(h){for(var r=[];h;)Pf(r,Ef(h)),h=Of(h);return r;}:Cf,_n=Rf,If=ir,Lf=_n;function bf(h,r){return If(h,Lf(h),r);}var wf=bf,Df=Ir,Nf=Ue;function Wf(h,r,t){var e=r(h);return Nf(h)?e:Df(e,t(h));}var ti=Wf,Bf=ti,Ff=Rr,Uf=Cr;function jf(h){return Bf(h,Uf,Ff);}var ei=jf,$f=ti,zf=_n,Gf=Ar;function Hf(h){return $f(h,Gf,zf);}var Kf=Hf,Yf=ge,Vf=ee,Xf=Yf(Vf,"DataView"),kf=Xf,Jf=ge,Zf=ee,Qf=Jf(Zf,"Promise"),qf=Qf,_f=ge,th=ee,eh=_f(th,"Set"),ri=eh,rh=ge,nh=ee,ih=rh(nh,"WeakMap"),sh=ih,dr=kf,gr=Tr,pr=qf,mr=ri,vr=sh,ni=de,Ae=Un,_r="[object Map]",oh="[object Object]",tn="[object Promise]",en="[object Set]",rn="[object WeakMap]",nn="[object DataView]",ah=Ae(dr),lh=Ae(gr),ch=Ae(pr),fh=Ae(mr),hh=Ae(vr),ue=ni;(dr&&ue(new dr(new ArrayBuffer(1)))!=nn||gr&&ue(new gr())!=_r||pr&&ue(pr.resolve())!=tn||mr&&ue(new mr())!=en||vr&&ue(new vr())!=rn)&&(ue=function ue(h){var r=ni(h),t=r==oh?h.constructor:void 0,e=t?Ae(t):"";if(e)switch(e){case ah:return nn;case lh:return _r;case ch:return tn;case fh:return en;case hh:return rn;}return r;});var or=ue,uh=Object.prototype,dh=uh.hasOwnProperty;function gh(h){var r=h.length,t=new h.constructor(r);return r&&typeof h[0]=="string"&&dh.call(h,"index")&&(t.index=h.index,t.input=h.input),t;}var ph=gh,mh=ee,vh=mh.Uint8Array,ii=vh,sn=ii;function yh(h){var r=new h.constructor(h.byteLength);return new sn(r).set(new sn(h)),r;}var Lr=yh,Sh=Lr;function xh(h,r){var t=r?Sh(h.buffer):h.buffer;return new h.constructor(t,h.byteOffset,h.byteLength);}var Th=xh,Mh=/\w*$/;function Ph(h){var r=new h.constructor(h.source,Mh.exec(h));return r.lastIndex=h.lastIndex,r;}var Oh=Ph,on=Fe,an=on?on.prototype:void 0,ln=an?an.valueOf:void 0;function Eh(h){return ln?Object(ln.call(h)):{};}var Ch=Eh,Ah=Lr;function Rh(h,r){var t=r?Ah(h.buffer):h.buffer;return new h.constructor(t,h.byteOffset,h.length);}var Ih=Rh,Lh=Lr,bh=Th,wh=Oh,Dh=Ch,Nh=Ih,Wh="[object Boolean]",Bh="[object Date]",Fh="[object Map]",Uh="[object Number]",jh="[object RegExp]",$h="[object Set]",zh="[object String]",Gh="[object Symbol]",Hh="[object ArrayBuffer]",Kh="[object DataView]",Yh="[object Float32Array]",Vh="[object Float64Array]",Xh="[object Int8Array]",kh="[object Int16Array]",Jh="[object Int32Array]",Zh="[object Uint8Array]",Qh="[object Uint8ClampedArray]",qh="[object Uint16Array]",_h="[object Uint32Array]";function tu(h,r,t){var e=h.constructor;switch(r){case Hh:return Lh(h);case Wh:case Bh:return new e(+h);case Kh:return bh(h,t);case Yh:case Vh:case Xh:case kh:case Jh:case Zh:case Qh:case qh:case _h:return Nh(h,t);case Fh:return new e();case Uh:case zh:return new e(h);case jh:return wh(h);case $h:return new e();case Gh:return Dh(h);}}var eu=tu,ru=he,cn=Object.create,nu=/* @__PURE__ */function(){function h(){}return function(r){if(!ru(r))return{};if(cn)return cn(r);h.prototype=r;var t=new h();return h.prototype=void 0,t;};}(),iu=nu,su=iu,ou=qn,au=Or;function lu(h){return typeof h.constructor=="function"&&!au(h)?su(ou(h)):{};}var cu=lu,fu=or,hu=ne,uu="[object Map]";function du(h){return hu(h)&&fu(h)==uu;}var gu=du,pu=gu,mu=sr,fn=Pr,hn=fn&&fn.isMap,vu=hn?mu(hn):pu,yu=vu,Su=or,xu=ne,Tu="[object Set]";function Mu(h){return xu(h)&&Su(h)==Tu;}var Pu=Mu,Ou=Pu,Eu=sr,un=Pr,dn=un&&un.isSet,Cu=dn?Eu(dn):Ou,si=Cu,Au=/* @__PURE__ */fe(si),Ru=$n,Iu=_a,Lu=Hn,bu=zc,wu=sf,Du=of,Nu=lf,Wu=Sf,Bu=wf,Fu=ei,Uu=Kf,ju=or,$u=ph,zu=eu,Gu=cu,Hu=Ue,Ku=Mr,Yu=yu,Vu=he,Xu=si,ku=Cr,Ju=Ar,Zu=1,Qu=2,qu=4,oi="[object Arguments]",_u="[object Array]",td="[object Boolean]",ed="[object Date]",rd="[object Error]",ai="[object Function]",nd="[object GeneratorFunction]",id="[object Map]",sd="[object Number]",li="[object Object]",od="[object RegExp]",ad="[object Set]",ld="[object String]",cd="[object Symbol]",fd="[object WeakMap]",hd="[object ArrayBuffer]",ud="[object DataView]",dd="[object Float32Array]",gd="[object Float64Array]",pd="[object Int8Array]",md="[object Int16Array]",vd="[object Int32Array]",yd="[object Uint8Array]",Sd="[object Uint8ClampedArray]",xd="[object Uint16Array]",Td="[object Uint32Array]",Ft={};Ft[oi]=Ft[_u]=Ft[hd]=Ft[ud]=Ft[td]=Ft[ed]=Ft[dd]=Ft[gd]=Ft[pd]=Ft[md]=Ft[vd]=Ft[id]=Ft[sd]=Ft[li]=Ft[od]=Ft[ad]=Ft[ld]=Ft[cd]=Ft[yd]=Ft[Sd]=Ft[xd]=Ft[Td]=!0;Ft[rd]=Ft[ai]=Ft[fd]=!1;function ze(h,r,t,e,n,i){var a,o=r&Zu,s=r&Qu,l=r&qu;if(t&&(a=n?t(h,e,n,i):t(h)),a!==void 0)return a;if(!Vu(h))return h;var d=Hu(h);if(d){if(a=$u(h),!o)return Nu(h,a);}else{var c=ju(h),p=c==ai||c==nd;if(Ku(h))return Du(h,o);if(c==li||c==oi||p&&!n){if(a=s||p?{}:Gu(h),!o)return s?Bu(h,wu(a,h)):Wu(h,bu(a,h));}else{if(!Ft[c])return n?h:{};a=zu(h,c,o);}}i||(i=new Ru());var y=i.get(h);if(y)return y;i.set(h,a),Xu(h)?h.forEach(function(v){a.add(ze(v,r,t,v,h,i));}):Yu(h)&&h.forEach(function(v,x){a.set(x,ze(v,r,t,x,h,i));});var P=l?s?Uu:Fu:s?Ju:ku,T=d?void 0:P(h);return Iu(T||h,function(v,x){T&&(x=v,v=h[x]),Lu(a,x,ze(v,r,t,x,h,i));}),a;}var Md=ze,Pd=Md,Od=1,Ed=4;function Cd(h){return Pd(h,Od|Ed);}var Ad=Cd,Xt=/* @__PURE__ */fe(Ad);var ci="1.1.5-beta.1",Rd="@netless/appliance-plugin",Id=typeof OffscreenCanvas=="function"?"worker":"mainThread";if((typeof window==="undefined"?"undefined":_typeof(window))<"u"){var h=window.__netlessUA||"";h+=" ".concat(Rd,"@").concat(ci,"_").concat(Id),window.__netlessUA=h;}var re={syncOpt:{interval:500},cdn:{subWorkerUrl:"https://cdn.jsdelivr.net/npm/@netless/appliance-plugin@latest/dist/subWorker.js",fullWorkerUrl:"https://cdn.jsdelivr.net/npm/@netless/appliance-plugin@latest/dist/fullWorker.js"},cursor:{expirationTime:5e3},bufferSize:{full:2e4,sub:1e3},bezier:{combineUnitTime:100},pencilEraser:{useBitMap:!0}};function ae(h){var r=arguments.length>1&&arguments[1]!==undefined?arguments[1]:!0;var t=h.length;if(t<2)return"";var e=h[0],n=h[1];if(t===2)return"M".concat(pe(e),"L").concat(pe(n));var i="";for(var a=2,o=t-1;a<o;a++)e=h[a],n=h[a+1],i+=me(e,n);return r?"M".concat(me(h[0],h[1]),"Q").concat(pe(h[1])).concat(me(h[1],h[2]),"T").concat(i).concat(me(h[t-1],h[0])).concat(me(h[0],h[1]),"Z"):"M".concat(pe(h[0]),"Q").concat(pe(h[1])).concat(me(h[1],h[2])).concat(h.length>3?"T":"").concat(i,"L").concat(pe(h[t-1]));}var Jt=/*#__PURE__*/function(){function Jt(r){_classCallCheck(this,Jt);et(this,"syncUnitTime",re.syncOpt.interval);et(this,"vNodes");et(this,"drawLayer");et(this,"fullLayer");et(this,"workId");var t=r.vNodes,e=r.fullLayer,n=r.drawLayer,i=r.workId,a=r.toolsOpt;this.vNodes=t,this.fullLayer=e,this.drawLayer=n,this.workId=i,this.syncUnitTime=a.syncUnitTime||this.syncUnitTime;}return _createClass(Jt,[{key:"baseConsumeResult",get:function get(){return{workId:this.workId,toolsType:this.toolsType,opt:this.workOptions};}},{key:"filterSamePoints",value:function filterSamePoints(r){var t=arguments.length>1&&arguments[1]!==undefined?arguments[1]:0.01;return r.reduce(function(e,n){var i=e[e.length-1];return(n&&!i||n&&i&&!n.isNear(i,t))&&e.push(n),e;},[]);}/** 设置工作id */},{key:"setWorkId",value:function setWorkId(r){this.workId=r;}},{key:"getWorkId",value:function getWorkId(){return this.workId;}/** 获取工作选项配置 */},{key:"getWorkOptions",value:function getWorkOptions(){return this.workOptions;}/** 设置工作选项配置 */},{key:"setWorkOptions",value:function setWorkOptions(r){var n,i,a;this.workOptions=r,this.syncUnitTime=r.syncUnitTime||this.syncUnitTime;var t=(n=this.workId)==null?void 0:n.toString(),e=t&&((i=this.vNodes)==null?void 0:i.get(t))||void 0;t&&e&&(e.opt=r,(a=this.vNodes)==null||a.setInfo(t,e));}/** 更新服务端同步配置,返回绘制结果 */},{key:"updataOptService",value:function updataOptService(r){var n,i;var t;var e=(n=this.workId)==null?void 0:n.toString();if(e&&r){var a=this.fullLayer.getElementsByName(e)||this.drawLayer&&this.drawLayer.getElementsByName(e)||[];if(a.length!==1)return;var o=a[0],s=r.pos,l=r.zIndex,d=r.scale,c=r.angle,p=r.translate,y={};_t(l)&&(y.zIndex=l),s&&(y.pos=[s[0],s[1]]),d&&(y.scale=d),c&&(y.rotate=c),p&&(y.translate=p),o.attr(y);var P=o==null?void 0:o.getBoundingClientRect();return P&&(t=Pt(t,{x:Math.floor(P.x-Jt.SafeBorderPadding),y:Math.floor(P.y-Jt.SafeBorderPadding),w:Math.floor(P.width+Jt.SafeBorderPadding*2),h:Math.floor(P.height+Jt.SafeBorderPadding*2)})),(i=this.vNodes)==null||i.setInfo(e,{rect:t,centerPos:s}),t;}}},{key:"drawEraserlines",value:function drawEraserlines(r){var t=r.group,e=r.eraserlines,n=r.pos,i=r.layer,_r$isClear=r.isClear,a=_r$isClear===void 0?!0:_r$isClear,o=!!i.parent.gl;var _iterator13=_createForOfIteratorHelper(e),_step13;try{for(_iterator13.s();!(_step13=_iterator13.n()).done;){var s=_step13.value;var l=s.thickness,d=s.op;var _iterator14=_createForOfIteratorHelper(d),_step14;try{for(_iterator14.s();!(_step14=_iterator14.n()).done;){var c=_step14.value;var p=c.map(function(x,f){return f%2?x-n[1]:x-n[0];}),y=this.computEraserPoints(p,l),P=ae(y,!0),T={pos:[0,0],d:P,fillColor:"rgba(0,0,0,1)"},v=new ce(T);a&&(v.addEventListener("beforerender",function(_ref165){var x=_ref165.detail;var f=x.context;o?f.blendFuncSeparate(f.ZERO,f.ZERO,f.ZERO,f.ZERO):f.globalCompositeOperation="destination-out";}),v.addEventListener("afterrender",function(_ref166){var x=_ref166.detail;var f=x.context;o?f.blendFuncSeparate(f.SRC_ALPHA,f.ONE_MINUS_SRC_ALPHA,f.ONE,f.ONE_MINUS_SRC_ALPHA):f.globalCompositeOperation="source-over";})),t.append(v);}}catch(err){_iterator14.e(err);}finally{_iterator14.f();}}}catch(err){_iterator13.e(err);}finally{_iterator13.f();}}},{key:"computEraserPoints",value:function computEraserPoints(r,t){var e=Math.ceil(t/2);return r.length===2?this.computDot(r,e):this.computLine(r,e);}},{key:"computDot",value:function computDot(r,t){var e=new xt(r[0],r[1]);return xt.GetDotStroke(e,t,8);}},{key:"computLine",value:function computLine(r,t){var e=[],n=[];var i,a;for(var o=0;o<r.length;o+=2){var s=new xt(r[o],r[o+1]);var l=void 0;if(o==r.length-2){var d=new xt(r[o-2],r[o-1]);l=_.Sub(s,d).uni(),i=s;}else{o===0&&(a=s);var _d4=new xt(r[o+2],r[o+3]);l=_.Sub(_d4,s).uni();}if(l){var _d5=_.Per(l).mul(t);e.push(xt.Sub(s,_d5)),n.push(xt.Add(s,_d5));}}if(i&&a){var _o3=xt.GetSemicircleStroke(i,e[e.length-1],-1,8),_s4=xt.GetSemicircleStroke(a,n[0],-1,8);return e.concat(_o3,n.reverse(),_s4);}return[];}},{key:"replace",value:function replace(r,t,e){var _this61=this;var o;var n=r.getElementsByName(t),i=n.length;if(i){if(i>1)for(var s=1;s<n.length;s++)r.removeChild(n[s]),n[s].disconnect();e?r.replaceChild(e,n[0]):r.removeChild(n[0]),n[0].disconnect();}else e&&r.append(e);this.fullLayer===r?(o=this.drawLayer)==null||o.getElementsByName(t).forEach(function(s){var l;(l=_this61.drawLayer)==null||l.removeChild(s),s.disconnect();}):this.fullLayer.getElementsByName(t).forEach(function(s){_this61.fullLayer.removeChild(s),s.disconnect();});}}],[{key:"updateNodeOpt",value:function updateNodeOpt(r){var f;var t=r.node,e=r.opt,n=r.vNodes,i=r.willSerializeData,a=r.targetNode,o=e.zIndex,s=e.translate,l=e.angle,d=e.originPoint,c=e.scenePoint,p=e.scale,y=e.pointMap,P=e.thickness;var T;var v=a&&Xt(a)||n.get(t.name);if(!v)return;_t(o)&&(t.setAttribute("zIndex",o),v.opt.zIndex=o);var x=t.parent;if(x){if(d&&p&&a){var g=[v.op[0],v.op[1]];Fr(v.op,c,p,s);var u=[v.op[0],v.op[1]],m=[u[0]-g[0],u[1]-g[1]];if(v.centerPos=[v.centerPos[0]+m[0],v.centerPos[1]+m[1]],v.opt.translate=void 0,v.opt.scale=void 0,v.opt.eraserlines)for(var _i2=0,_Object$values=Object.values(v.opt.eraserlines);_i2<_Object$values.length;_i2++){var M=_Object$values[_i2];var E=M.op,R=M.thickness;M.thickness=R*Math.max(p[0],p[1]);for(var b=0;b<E.length;b++)Ur(E[b],c,p,s);}}else if(s){if(t.setAttribute("translate",s),v.opt.translate=s,a){var _g6=[s[0]*x.worldScaling[0],s[1]*x.worldScaling[1]];T=Sr(v.rect,_g6),v.rect=T;}else{var _g7=Jt.getRectFromLayer(x,t.name);v.rect=_g7||v.rect;}}else if(_t(l))if(t.setAttribute("rotate",l),v.opt.rotate=l,a)T=Oi(v.rect,l),v.rect=T;else{var _g8=Jt.getRectFromLayer(x,t.name);v.rect=_g8||v.rect;}if(y){var _g9=y.get(t.name);if(_g9)for(var _u10=0,_m9=0;_u10<v.op.length;_u10+=3,_m9++)v.op[_u10]=_g9[_m9][0],v.op[_u10+1]=_g9[_m9][1];}if(P&&(f=v==null?void 0:v.opt)!=null&&f.thickness&&(v.opt.thickness=P),i&&!(d&&p&&a)){if(s){var _g10=v.op.map(function(u,m){var M=m%3;return M===0?u+s[0]:M===1?u+s[1]:u;});if(v.op=_g10,v.centerPos=[v.centerPos[0]+s[0],v.centerPos[1]+s[1]],v!=null&&v.opt&&(v.opt.translate=void 0),v.opt.eraserlines)for(var _i3=0,_Object$values2=Object.values(v.opt.eraserlines);_i3<_Object$values2.length;_i3++){var _u11=_Object$values2[_i3];var _m10=_u11.op;for(var _M6=0;_M6<_m10.length;_M6++){var _E3=_m10[_M6].map(function(R,b){return b%2?R+s[1]:R+s[0];});_u11.op[_M6]=_E3;}}}else if(_t(l)){var _g11=v.op;if(Gg(_g11,v.centerPos,l),v.op=_g11,v!=null&&v.opt&&(v.opt.rotate=void 0),v.opt.eraserlines)for(var _i4=0,_Object$values3=Object.values(v.opt.eraserlines);_i4<_Object$values3.length;_i4++){var _u12=_Object$values3[_i4];var _m11=_u12.op;for(var _M7=0;_M7<_m11.length;_M7++)Hg(_m11[_M7],v.centerPos,l);}}}v&&n.setInfo(t.name,v);}}},{key:"getCenterPos",value:function getCenterPos(r,t){var e=t.worldPosition,n=t.worldScaling;return[(r.x+r.w/2-e[0])/n[0],(r.y+r.h/2-e[1])/n[1]];}},{key:"getRectFromLayer",value:function getRectFromLayer(r,t){var e=r.getElementsByName(t)[0];if(e){var n=e.getBoundingClientRect();return{x:Math.floor(n.x-Jt.SafeBorderPadding),y:Math.floor(n.y-Jt.SafeBorderPadding),w:Math.floor(n.width+Jt.SafeBorderPadding*2),h:Math.floor(n.height+Jt.SafeBorderPadding*2)};}}}]);}();et(Jt,"SafeBorderPadding",10);var vt=Jt;var br={exports:{}};br.exports;(function(h){var r=function(){var t=String.fromCharCode,e="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=",n="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+-$",i={};function a(s,l){if(!i[s]){i[s]={};for(var d=0;d<s.length;d++)i[s][s.charAt(d)]=d;}return i[s][l];}var o={compressToBase64:function compressToBase64(s){if(s==null)return"";var l=o._compress(s,6,function(d){return e.charAt(d);});switch(l.length%4){default:case 0:return l;case 1:return l+"===";case 2:return l+"==";case 3:return l+"=";}},decompressFromBase64:function decompressFromBase64(s){return s==null?"":s==""?null:o._decompress(s.length,32,function(l){return a(e,s.charAt(l));});},compressToUTF16:function compressToUTF16(s){return s==null?"":o._compress(s,15,function(l){return t(l+32);})+" ";},decompressFromUTF16:function decompressFromUTF16(s){return s==null?"":s==""?null:o._decompress(s.length,16384,function(l){return s.charCodeAt(l)-32;});},//compress into uint8array (UCS-2 big endian format)
|
|
400
400
|
compressToUint8Array:function compressToUint8Array(s){for(var l=o.compress(s),d=new Uint8Array(l.length*2),c=0,p=l.length;c<p;c++){var y=l.charCodeAt(c);d[c*2]=y>>>8,d[c*2+1]=y%256;}return d;},//decompress from uint8array (UCS-2 big endian format)
|
|
401
401
|
decompressFromUint8Array:function decompressFromUint8Array(s){if(s==null)return o.decompress(s);for(var l=new Array(s.length/2),d=0,c=l.length;d<c;d++)l[d]=s[d*2]*256+s[d*2+1];var p=[];return l.forEach(function(y){p.push(t(y));}),o.decompress(p.join(""));},//compress into a string that is already URI encoded
|
|
402
402
|
compressToEncodedURIComponent:function compressToEncodedURIComponent(s){return s==null?"":o._compress(s,6,function(l){return n.charAt(l);});},//decompress from an output of compressToEncodedURIComponent
|
package/dist/appliance-plugin.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("./index-
|
|
1
|
+
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("./index-Db7ol5aF.js");exports.ActiveContainerType=e.ActiveContainerType;exports.ApplianceMultiPlugin=e.ApplianceMultiPlugin;exports.ApplianceNames=e.ApplianceNames;exports.ApplianceSigleWrapper=e.ApplianceSigleWrapper;exports.ApplianceSinglePlugin=e.ApplianceSinglePlugin;exports.ECanvasShowType=e.ECanvasShowType;exports.EDataType=e.EDataType;exports.EMatrixrRelationType=e.EMatrixrRelationType;exports.EOperationType=e.EOperationType;exports.EPostMessageType=e.EPostMessageType;exports.ERenderFilterType=e.ERenderFilterType;exports.EScaleType=e.EScaleType;exports.EStrokeType=e.EStrokeType;exports.EToolsKey=e.EToolsKey;exports.ElayerType=e.ElayerType;exports.EmitEventType=e.EmitEventType;exports.EventMessageType=e.EventMessageType;exports.EvevtWorkState=e.EvevtWorkState;exports.EvevtWorkType=e.EvevtWorkType;exports.InternalMsgEmitterType=e.InternalMsgEmitterType;exports.ShapeType=e.ShapeType;exports.fullWorkerUrl=e.fullWorker;exports.subWorkerUrl=e.subWorker;
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { H as s, A as p, B as r, z as t, y as l, J as y, h as i, r as n, P as E, k as T, Q as o, N as v, F as g, E as S, L as c, p as k, K as A, a as u, O as M, I as W, G as m, w as P, x as h } from "./index-
|
|
1
|
+
import { H as s, A as p, B as r, z as t, y as l, J as y, h as i, r as n, P as E, k as T, Q as o, N as v, F as g, E as S, L as c, p as k, K as A, a as u, O as M, I as W, G as m, w as P, x as h } from "./index-Da1l9Z2E.mjs";
|
|
2
2
|
export {
|
|
3
3
|
s as ActiveContainerType,
|
|
4
4
|
p as ApplianceMultiPlugin,
|