@netless/forge-whiteboard 0.1.9 → 0.1.10

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/README.md CHANGED
@@ -28,11 +28,12 @@ document.body.appendChild(whiteboard.view);
28
28
 
29
29
  **白板配置 WhiteboardOption**
30
30
 
31
- | 属性名 | 类型 | 默认值 | 说明 |
32
- | --- | --- |---|---|
33
- | width | number | 无 | 可视区域的宽度 |
34
- | height | number | 无 | 可视区域的高度 |
35
- | defaultToolbarStyle | ToolbarStyle | 见下文 | 默认工具栏样式 |
31
+ | 属性名 | 类型 | 默认值 | 说明 |
32
+ |---------------------|---------------|-----|------------|
33
+ | width | number | 无 | 可视区域的宽度 |
34
+ | height | number | 无 | 可视区域的高度 |
35
+ | defaultToolbarStyle | ToolbarStyle | 见下文 | 默认工具栏样式 |
36
+ | maxScaleRatio | maxScaleRatio | -1 | 参考[相机]()一节 |
36
37
 
37
38
  **工具栏配置 ToolbarStyle**
38
39
 
@@ -88,7 +89,7 @@ whiteboard.on(WhiteboardEvents.toolbarStyleChange, (style) => {
88
89
  `WhiteboardToolType` 类型定义了白板的工具类型, 目前支持以下工具:
89
90
 
90
91
  | 名称 | 说明 |
91
- |--- | --- | --- | --- |
92
+ | --- | --- |
92
93
  | curve | 自由曲线 |
93
94
  | rectangle | 矩形 |
94
95
  | selector | 选择工具 |
@@ -199,17 +200,17 @@ whiteboard.clearPage();
199
200
 
200
201
  `forge-whiteboard` 设计了细致的白板权限控制机制, 通过不同权限配置可以实现很多有趣的场景. 默认没有给任何权限.
201
202
 
202
- | 权限类型 | 描述 |
203
- |---|---|
204
- |WhiteboardPermissionFlag.none|没有任何权限, 只能同步的看他人绘制|
205
- |WhiteboardPermissionFlag.draw|可以绘制元素|
206
- |WhiteboardPermissionFlag.editSelf|可以修改自己创建的元素|
207
- |WhiteboardPermissionFlag.editOthers|可以修改他人创建的元素|
208
- |WhiteboardPermissionFlag.deleteSelf|可以删除自己创建的元素|
209
- |WhiteboardPermissionFlag.deleteOthers|可以删除他人创建的元素|
210
- |WhiteboardPermissionFlag.mainView|可以修改主视角, 包括页面和画布状态, 添加页面, 删除页面|
211
- |WhiteboardPermissionFlag.setOthersView|可以修改他人的视角模式, 指定他人的页码|
212
- |WhiteboardPermissionFlag.all|拥有所有权限|
203
+ | 权限类型 | 描述 |
204
+ |---|--------------------------------------|
205
+ |WhiteboardPermissionFlag.none| 没有任何权限, 只能同步的看他人绘制 |
206
+ |WhiteboardPermissionFlag.draw| 可以绘制元素 |
207
+ |WhiteboardPermissionFlag.editSelf| 可以修改自己创建的元素 |
208
+ |WhiteboardPermissionFlag.editOthers| 可以修改他人创建的元素 |
209
+ |WhiteboardPermissionFlag.deleteSelf| 可以删除自己创建的元素 |
210
+ |WhiteboardPermissionFlag.deleteOthers| 可以删除他人创建的元素 |
211
+ |WhiteboardPermissionFlag.mainView| 可以修改主视角, 包括切换页面, 拖动和缩放画布, 添加页面, 删除页面 |
212
+ |WhiteboardPermissionFlag.setOthersView| 可以修改他人的视角模式, 指定他人的页码 |
213
+ |WhiteboardPermissionFlag.all| 拥有所有权限 |
213
214
 
214
215
  ### 权限相关 api
215
216
 
@@ -265,12 +266,12 @@ whiteboard.enableCameraByMouse = false;
265
266
 
266
267
  ### 通过代码控制相机
267
268
 
268
- **Whiteboard.translateCamera** 拖动相机
269
- **Whiteboard.scaleCamera** 以画布中心为不动点缩放相机
270
- **Whiteboard.resetCamera** 重置相机位置和缩放
269
+ **Whiteboard.translateCamera** 拖动相机
270
+ **Whiteboard.scaleCamera** 以画布中心为不动点缩放相机
271
+ **Whiteboard.resetCamera** 重置相机位置和缩放
271
272
 
272
273
  ```typescript
273
274
  whiteboard.scaleCamera(1.2);
274
275
  whiteboard.translateCamera(10, 10);
275
276
  whiteboard.resetCamera();
276
- ```
277
+ ```
package/changelog.md CHANGED
@@ -16,13 +16,20 @@
16
16
 
17
17
  - 修复对应工具不支持时不能加载白板的问题
18
18
 
19
- ### 0.1.8
19
+ ### 0.1.9
20
20
 
21
- - `Whiteboard.translateView`相机拖动 api
22
- - `Whiteboard.scaleView`相机缩放 api
23
- - `Whiteboard.resetView`相机缩放 api
21
+ - `Whiteboard.translateCamera`相机拖动 api
22
+ - `Whiteboard.scaleCamera`相机缩放 api
23
+ - `Whiteboard.resetCamera`相机缩放 api
24
24
  - `Whiteboard.enableCameraByTouch` 控制是否允许通过触摸手势控制相机
25
25
  - `Whiteboard.enableCameraByMouse` 控制是否允许通过鼠标/触摸板控制相机
26
26
  - `Whiteboard.enableCameraBoundaryHighlight` 控制是否允许相机超出边界时高亮显示
27
27
  - `Whiteboard.cameraBoundaryColor` 设置边界高亮颜色
28
- - `WhiteboardOption.maxScaleRatio` 控制相机最大放大比例
28
+ - `WhiteboardOption.maxScaleRatio` 控制相机最大放大比例
29
+
30
+ ### 0.1.10
31
+
32
+ - 删除 `Whiteboard.rasterize` 函数
33
+ - 添加 `Whiteboard.rasterizeViewport`
34
+ - 添加 `Whiteboard.rasterizeElementsBounds`
35
+ - 添加 `Whiteboard.rasterizeMaxBounds`
@@ -217,17 +217,32 @@ export declare class Whiteboard extends EventEmitter<WhiteboardEvents> implement
217
217
  */
218
218
  redo: () => void;
219
219
  /**
220
- * 光栅化指定页面
221
- * @param {string | number | undefined} page 指定页码, string 指示页码 id, number 指示 IndexedNavigation 页面索引, undefined 指示光栅化当前页
222
- * @return {Promise<string>} 异步返回光栅化结果, 图片 png 对应的 base64 url, 如果页面不存在返回 null
220
+ * 光栅化指定页面的可视区域
221
+ * @param {number} scale 缩放比例
222
+ * @param {string=} page string 指示页码 id; number 指示 IndexedNavigation 页面索引; undefined 指示光栅化当前页
223
+ * @return {Promise<string>} 异步返回光栅化结果, 图片 png 对应的 base64 url. 如果页面不存在返回 null
223
224
  */
224
- rasterize: (page: string | number | undefined) => Promise<string | null>;
225
+ rasterizeViewport: (scale: number, page?: string | number | undefined) => Promise<string | null>;
226
+ /**
227
+ * 光栅化指定页面包含所有元素的包围盒
228
+ * @param {number} outputMaxWidth 输出图片最大宽度, 在保证高宽比的情况下限值输出图片的宽度小于等于此值
229
+ * @param {number} outputMaxHeight 输出图片最大高度, 在保证高宽比的情况下限值输出图片的高度小于等于此值
230
+ * @param {string=} page string 指示页码 id; number 指示 IndexedNavigation 页面索引; undefined 指示光栅化当前页
231
+ * @return {Promise<string>} 异步返回光栅化结果, 图片 png 对应的 base64 url. 如果页面不存在返回 null
232
+ */
233
+ rasterizeElementsBounds: (outputMaxWidth: number, outputMaxHeight: number, page?: string | number | undefined) => Promise<string | null>;
234
+ /**
235
+ * 光栅化指定页面最大缩放区域, 如果没有指定 `WhiteboardOption.maxScaleRatio` 或者指定的值为 -1, 则按 `rasterizeViewport` 返回结果.
236
+ * @param {number} scale 缩放比例
237
+ * @param {string=} page string 指示页码 id; number 指示 IndexedNavigation 页面索引; undefined 指示光栅化当前页
238
+ * @return {Promise<string>} 异步返回光栅化结果, 图片 png 对应的 base64 url. 如果页面不存在返回 null
239
+ */
240
+ rasterizeMaxBounds: (scale: number, page?: string | number | undefined) => Promise<string | null>;
225
241
  /**
226
242
  * 设置输入类型, "pen" 仅接受手写笔输入, "any" 接受任意输入, 当首次侦测到手写笔输入时, 将自动切换为 "pen"
227
243
  * @param {"pen" | "any"} type 输入类型
228
244
  */
229
245
  setInputType: (type: "pen" | "any") => void;
230
- insertImage: (src: string) => void;
231
246
  constructor(view: HTMLDivElement);
232
247
  }
233
248
  //# sourceMappingURL=Whiteboard.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"Whiteboard.d.ts","sourceRoot":"","sources":["../src/Whiteboard.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"Whiteboard.d.ts","sourceRoot":"","sources":["../src/Whiteboard.ts"],"names":[],"mappings":"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"}
@@ -73,7 +73,8 @@ export declare class WhiteboardApplication extends AbstractApplication<Whiteboar
73
73
  private handleRemoveTrashedElementForSelf;
74
74
  private handleElementsTrash;
75
75
  private handleElementsSelect;
76
- rasterize(page: string | number | undefined): Promise<string | null>;
76
+ private ensureScale;
77
+ private rasterize;
77
78
  dispose(): Promise<void>;
78
79
  }
79
80
  //# sourceMappingURL=WhiteboardApplication.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"WhiteboardApplication.d.ts","sourceRoot":"","sources":["../src/WhiteboardApplication.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,mBAAmB,EAAM,MAAM,qBAAqB,CAAC;AAS7D,OAAO,EAAC,YAAY,EAAE,YAAY,EAAC,MAAM,sBAAsB,CAAC;AAUhE,OAAO,EAAyC,UAAU,EAAC,MAAM,cAAc,CAAC;AAchF;;GAEG;AACH,MAAM,WAAW,gBAAgB;IAC7B;;OAEG;IACH,KAAK,EAAE,MAAM,CAAC;IACd;;OAEG;IACH,MAAM,EAAE,MAAM,CAAC;IACf;;;;OAIG;IACH,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB;;OAEG;IACH,mBAAmB,CAAC,EAAE,OAAO,CAAC,YAAY,CAAC,CAAC;CAC/C;AAED,eAAO,MAAM,mBAAmB,eAAe,CAAC;AAEhD,MAAM,MAAM,kBAAkB,GAC1B,OAAO,GACL,WAAW,GACX,UAAU,GACV,MAAM,GACN,OAAO,GACP,MAAM,GACN,SAAS,GACT,UAAU,GACV,QAAQ,GACR,OAAO,GACP,MAAM,CAAC;AAEb,qBAAa,qBAAsB,SAAQ,mBAAmB,CAAC,gBAAgB,EAAE,UAAU,CAAC;IAExF,MAAM,CAAC,eAAe,SAAuB;IAE7C,SAAgB,IAAI,EAAE,MAAM,CAAuB;IAC5C,OAAO,EAAE,UAAU,CAAC;IAEpB,YAAY,EAAG,YAAY,CAAC;IACnC,OAAO,CAAC,mBAAmB,CAAuB;IAClD,OAAO,CAAC,oBAAoB,CAAwB;IACpD,OAAO,CAAC,SAAS,CAAa;IAC9B,OAAO,CAAC,MAAM,CAA2C;IACzD,OAAO,CAAC,YAAY,CAAyC;IAE7D,OAAO,CAAC,WAAW,CAAiD;IACpE,OAAO,CAAC,UAAU,CAA4C;IAC9D,OAAO,CAAC,aAAa,CAAuD;IAC5E,OAAO,CAAC,WAAW,CAA4C;IAC/D,OAAO,CAAC,qBAAqB,CAAuD;IACpF,OAAO,CAAC,aAAa,CAA4C;IACjE,OAAO,CAAC,mBAAmB,CAAuD;IAClF,OAAO,CAAC,aAAa,CAAiB;IACtC,OAAO,CAAC,KAAK,CAA8C;IAC3D,OAAO,CAAC,OAAO,CAAkC;IACjD,OAAO,CAAC,MAAM,CAAU;IACxB,OAAO,CAAC,cAAc,CAAkB;IACxC,OAAO,CAAC,MAAM,CAAoB;IAClC,OAAO,CAAC,WAAW,CAAyB;IAE5C,OAAO,CAAC,SAAS,CAAwB;IACzC,OAAO,CAAC,UAAU,CAAkB;IACpC,OAAO,CAAC,WAAW,CAAwB;IAE3C,OAAO,KAAK,WAAW,GAMtB;;IAgQD,OAAO,CAAC,OAAO;IAIf,OAAO,CAAC,eAAe,CAErB;IAEW,UAAU,CAAC,MAAM,EAAE,gBAAgB,GAAG,OAAO,CAAC,IAAI,CAAC;IA6OhE,OAAO,CAAC,gBAAgB,CA6CtB;IAEF,OAAO,CAAC,aAAa,CAEnB;IAEF,OAAO,CAAC,oBAAoB,CAI1B;IAEF,OAAO,CAAC,qBAAqB,CAG3B;IAEF,OAAO,CAAC,kBAAkB,CAmCxB;IAEF,OAAO,CAAC,aAAa;IAkBrB,OAAO,CAAC,yBAAyB,CAQhC;IAED,OAAO,CAAC,kBAAkB,CAExB;IAEF,OAAO,CAAC,gBAAgB;IAmBxB,OAAO,CAAC,mBAAmB,CAazB;IAEF,OAAO,CAAC,qBAAqB;IAY7B,OAAO,CAAC,mBAAmB,CAUzB;IAEF,OAAO,CAAC,iCAAiC,CAGvC;IAEF,OAAO,CAAC,mBAAmB,CAczB;IAEF,OAAO,CAAC,oBAAoB,CAqD1B;IAEK,SAAS,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,GAAG,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC;IA4C9D,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC;CAexC"}
1
+ {"version":3,"file":"WhiteboardApplication.d.ts","sourceRoot":"","sources":["../src/WhiteboardApplication.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,mBAAmB,EAAM,MAAM,qBAAqB,CAAC;AAS7D,OAAO,EAAC,YAAY,EAAE,YAAY,EAAC,MAAM,sBAAsB,CAAC;AAUhE,OAAO,EAAyC,UAAU,EAAC,MAAM,cAAc,CAAC;AAchF;;GAEG;AACH,MAAM,WAAW,gBAAgB;IAC7B;;OAEG;IACH,KAAK,EAAE,MAAM,CAAC;IACd;;OAEG;IACH,MAAM,EAAE,MAAM,CAAC;IACf;;;;OAIG;IACH,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB;;OAEG;IACH,mBAAmB,CAAC,EAAE,OAAO,CAAC,YAAY,CAAC,CAAC;CAC/C;AAED,eAAO,MAAM,mBAAmB,eAAe,CAAC;AAEhD,MAAM,MAAM,kBAAkB,GAC1B,OAAO,GACL,WAAW,GACX,UAAU,GACV,MAAM,GACN,OAAO,GACP,MAAM,GACN,SAAS,GACT,UAAU,GACV,QAAQ,GACR,OAAO,GACP,MAAM,CAAC;AAEb,qBAAa,qBAAsB,SAAQ,mBAAmB,CAAC,gBAAgB,EAAE,UAAU,CAAC;IAExF,MAAM,CAAC,eAAe,SAAuB;IAE7C,SAAgB,IAAI,EAAE,MAAM,CAAuB;IAC5C,OAAO,EAAE,UAAU,CAAC;IAEpB,YAAY,EAAG,YAAY,CAAC;IACnC,OAAO,CAAC,mBAAmB,CAAuB;IAClD,OAAO,CAAC,oBAAoB,CAAwB;IACpD,OAAO,CAAC,SAAS,CAAa;IAC9B,OAAO,CAAC,MAAM,CAA2C;IACzD,OAAO,CAAC,YAAY,CAAyC;IAE7D,OAAO,CAAC,WAAW,CAAiD;IACpE,OAAO,CAAC,UAAU,CAA4C;IAC9D,OAAO,CAAC,aAAa,CAAuD;IAC5E,OAAO,CAAC,WAAW,CAA4C;IAC/D,OAAO,CAAC,qBAAqB,CAAuD;IACpF,OAAO,CAAC,aAAa,CAA4C;IACjE,OAAO,CAAC,mBAAmB,CAAuD;IAClF,OAAO,CAAC,aAAa,CAAiB;IACtC,OAAO,CAAC,KAAK,CAA8C;IAC3D,OAAO,CAAC,OAAO,CAAkC;IACjD,OAAO,CAAC,MAAM,CAAU;IACxB,OAAO,CAAC,cAAc,CAAkB;IACxC,OAAO,CAAC,MAAM,CAAoB;IAClC,OAAO,CAAC,WAAW,CAAyB;IAE5C,OAAO,CAAC,SAAS,CAAwB;IACzC,OAAO,CAAC,UAAU,CAAkB;IACpC,OAAO,CAAC,WAAW,CAAwB;IAE3C,OAAO,KAAK,WAAW,GAMtB;;IA0QD,OAAO,CAAC,OAAO;IAIf,OAAO,CAAC,eAAe,CAErB;IAEW,UAAU,CAAC,MAAM,EAAE,gBAAgB,GAAG,OAAO,CAAC,IAAI,CAAC;IA6OhE,OAAO,CAAC,gBAAgB,CA6CtB;IAEF,OAAO,CAAC,aAAa,CAEnB;IAEF,OAAO,CAAC,oBAAoB,CAI1B;IAEF,OAAO,CAAC,qBAAqB,CAG3B;IAEF,OAAO,CAAC,kBAAkB,CAmCxB;IAEF,OAAO,CAAC,aAAa;IAkBrB,OAAO,CAAC,yBAAyB,CAQhC;IAED,OAAO,CAAC,kBAAkB,CAExB;IAEF,OAAO,CAAC,gBAAgB;IAmBxB,OAAO,CAAC,mBAAmB,CAazB;IAEF,OAAO,CAAC,qBAAqB;IAY7B,OAAO,CAAC,mBAAmB,CAUzB;IAEF,OAAO,CAAC,iCAAiC,CAGvC;IAEF,OAAO,CAAC,mBAAmB,CAczB;IAEF,OAAO,CAAC,oBAAoB,CAqD1B;IAEF,OAAO,CAAC,WAAW;IAInB,OAAO,CAAC,SAAS;IAqEJ,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC;CAexC"}
@@ -29353,17 +29353,33 @@ var Whiteboard = class extends EventEmitter9 {
29353
29353
  */
29354
29354
  redo;
29355
29355
  /**
29356
- * 光栅化指定页面
29357
- * @param {string | number | undefined} page 指定页码, string 指示页码 id, number 指示 IndexedNavigation 页面索引, undefined 指示光栅化当前页
29358
- * @return {Promise<string>} 异步返回光栅化结果, 图片 png 对应的 base64 url, 如果页面不存在返回 null
29356
+ * 光栅化指定页面的可视区域
29357
+ * @param {number} scale 缩放比例
29358
+ * @param {string=} page string 指示页码 id; number 指示 IndexedNavigation 页面索引; undefined 指示光栅化当前页
29359
+ * @return {Promise<string>} 异步返回光栅化结果, 图片 png 对应的 base64 url. 如果页面不存在返回 null
29359
29360
  */
29360
- rasterize;
29361
+ rasterizeViewport;
29362
+ /**
29363
+ * 光栅化指定页面包含所有元素的包围盒
29364
+ * @param {number} outputMaxWidth 输出图片最大宽度, 在保证高宽比的情况下限值输出图片的宽度小于等于此值
29365
+ * @param {number} outputMaxHeight 输出图片最大高度, 在保证高宽比的情况下限值输出图片的高度小于等于此值
29366
+ * @param {string=} page string 指示页码 id; number 指示 IndexedNavigation 页面索引; undefined 指示光栅化当前页
29367
+ * @return {Promise<string>} 异步返回光栅化结果, 图片 png 对应的 base64 url. 如果页面不存在返回 null
29368
+ */
29369
+ rasterizeElementsBounds;
29370
+ /**
29371
+ * 光栅化指定页面最大缩放区域, 如果没有指定 `WhiteboardOption.maxScaleRatio` 或者指定的值为 -1, 则按 `rasterizeViewport` 返回结果.
29372
+ * @param {number} scale 缩放比例
29373
+ * @param {string=} page string 指示页码 id; number 指示 IndexedNavigation 页面索引; undefined 指示光栅化当前页
29374
+ * @return {Promise<string>} 异步返回光栅化结果, 图片 png 对应的 base64 url. 如果页面不存在返回 null
29375
+ */
29376
+ rasterizeMaxBounds;
29361
29377
  /**
29362
29378
  * 设置输入类型, "pen" 仅接受手写笔输入, "any" 接受任意输入, 当首次侦测到手写笔输入时, 将自动切换为 "pen"
29363
29379
  * @param {"pen" | "any"} type 输入类型
29364
29380
  */
29365
29381
  setInputType;
29366
- insertImage;
29382
+ // public insertImage!: (src: string) => void;
29367
29383
  constructor(view) {
29368
29384
  super();
29369
29385
  this.view = view;
@@ -30265,8 +30281,14 @@ var WhiteboardApplication = class extends AbstractApplication {
30265
30281
  this.emitter.redo = () => {
30266
30282
  this.undoManager?.redo();
30267
30283
  };
30268
- this.emitter.rasterize = (page) => {
30269
- return this.rasterize(page);
30284
+ this.emitter.rasterizeViewport = (scale, page) => {
30285
+ return this.rasterize(1, 1, scale, "viewport", page);
30286
+ };
30287
+ this.emitter.rasterizeElementsBounds = (outputMaxWidth, outputMaxHeight, page) => {
30288
+ return this.rasterize(outputMaxWidth, outputMaxHeight, 1, "bounds", page);
30289
+ };
30290
+ this.emitter.rasterizeMaxBounds = (scale, page) => {
30291
+ return this.rasterize(1, 1, scale, "maxScale", page);
30270
30292
  };
30271
30293
  this.emitter.setInputType = (type) => {
30272
30294
  this.inputType = type;
@@ -30376,6 +30398,7 @@ var WhiteboardApplication = class extends AbstractApplication {
30376
30398
  that.camera.enableBoundaryHighlight = value;
30377
30399
  }
30378
30400
  });
30401
+ window["__wb"] = this;
30379
30402
  }
30380
30403
  userMap(userId) {
30381
30404
  return this.getMap(`user/${userId}`);
@@ -30824,7 +30847,10 @@ var WhiteboardApplication = class extends AbstractApplication {
30824
30847
  this.emitter.emit("elementDeselected", userId);
30825
30848
  }
30826
30849
  };
30827
- rasterize(page) {
30850
+ ensureScale(outputWidth, outputHeight, originSize) {
30851
+ return Math.min(outputWidth / originSize.width, outputHeight / originSize.height);
30852
+ }
30853
+ rasterize(outputMaxWidth, outputMaxHeight, scale, area, page) {
30828
30854
  let pageId;
30829
30855
  if (typeof page === "string") {
30830
30856
  pageId = page;
@@ -30838,8 +30864,6 @@ var WhiteboardApplication = class extends AbstractApplication {
30838
30864
  return Promise.resolve(null);
30839
30865
  }
30840
30866
  this.snapshotScope.project.activeLayer.removeChildren();
30841
- this.snapshotScope.view.matrix = this.paperScope.project.view.matrix.clone();
30842
- this.snapshotScope.view.viewSize = this.paperScope.project.view.viewSize.clone();
30843
30867
  for (const key of Array.from(renderableModel.elements.keys())) {
30844
30868
  let elementModel = null;
30845
30869
  if (renderableModel.elementModels.has(key)) {
@@ -30860,6 +30884,29 @@ var WhiteboardApplication = class extends AbstractApplication {
30860
30884
  }
30861
30885
  }
30862
30886
  }
30887
+ if (area === "bounds") {
30888
+ const bounds = this.snapshotScope.project.activeLayer.bounds;
30889
+ const scale2 = this.ensureScale(outputMaxWidth, outputMaxHeight, bounds.size);
30890
+ const matrix = new this.paperScope.Matrix();
30891
+ matrix.scale(scale2);
30892
+ matrix.translate({ x: -bounds.x, y: -bounds.y });
30893
+ this.snapshotScope.view.viewSize = bounds.size.multiply(scale2);
30894
+ this.snapshotScope.view.matrix = matrix;
30895
+ } else if (area === "maxScale" && this.option.maxScaleRatio && this.option.maxScaleRatio !== -1) {
30896
+ const width = this.option.width * this.option.maxScaleRatio;
30897
+ const height = this.option.height * this.option.maxScaleRatio;
30898
+ const offsetX = this.option.width * (this.option.maxScaleRatio - 1) / 2;
30899
+ const offsetY = this.option.height * (this.option.maxScaleRatio - 1) / 2;
30900
+ const matrix = new this.paperScope.Matrix();
30901
+ matrix.scale(scale);
30902
+ matrix.translate({ x: offsetX, y: offsetY });
30903
+ this.snapshotScope.view.viewSize = new this.snapshotScope.Size(width, height).multiply(scale);
30904
+ this.snapshotScope.view.matrix = matrix;
30905
+ } else {
30906
+ this.snapshotScope.view.matrix = this.paperScope.project.view.matrix.clone();
30907
+ this.snapshotScope.view.matrix.scale(scale, this.paperScope.project.view.bounds.topLeft);
30908
+ this.snapshotScope.view.viewSize = this.paperScope.project.view.viewSize.clone().multiply(scale);
30909
+ }
30863
30910
  return new Promise((resolve) => {
30864
30911
  setTimeout(() => {
30865
30912
  resolve(this.snapshotScope.view.element.toDataURL("image/png"));