@netless/forge-imagery-doc 0.1.2 → 0.1.3

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/changelog.md ADDED
@@ -0,0 +1,4 @@
1
+ ### 0.1.3
2
+
3
+ * 修复首页无法画图的问题
4
+ * 修复连续滚动视图的相机对齐问题
@@ -1,4 +1,4 @@
1
- import type { LazyImage } from "./LazyImage";
1
+ import type { LazyImage } from './LazyImage';
2
2
  export interface Container {
3
3
  readonly view: HTMLDivElement;
4
4
  readonly pageIndex: number;
@@ -1 +1 @@
1
- {"version":3,"file":"Container.d.ts","sourceRoot":"","sources":["../src/Container.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAC,SAAS,EAAC,MAAM,aAAa,CAAC;AAE3C,MAAM,WAAW,SAAS;IACtB,QAAQ,CAAC,IAAI,EAAE,cAAc,CAAC;IAC9B,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,MAAM,CAAC,KAAK,EAAE,SAAS,GAAG,IAAI,CAAC;IAC/B,IAAI,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;IAC1B,IAAI,IAAI,IAAI,CAAC;IACb,OAAO,IAAI,IAAI,CAAC;CACnB;AAED,eAAO,MAAM,aAAa;;;;;CAKzB,CAAA"}
1
+ {"version":3,"file":"Container.d.ts","sourceRoot":"","sources":["../src/Container.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AAE7C,MAAM,WAAW,SAAS;IACtB,QAAQ,CAAC,IAAI,EAAE,cAAc,CAAC;IAC9B,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,MAAM,CAAC,KAAK,EAAE,SAAS,GAAG,IAAI,CAAC;IAC/B,IAAI,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;IAC1B,IAAI,IAAI,IAAI,CAAC;IACb,OAAO,IAAI,IAAI,CAAC;CACnB;AAED,eAAO,MAAM,aAAa;;;;;CAKzB,CAAC"}
@@ -1,8 +1,8 @@
1
- import { LazyImage } from "./LazyImage";
2
- import * as Y from "yjs";
3
- import { WhiteboardApplication } from "@netless/forge-whiteboard";
4
- import type { ImageryDoc } from "./ImageryDoc";
5
- import { Container } from "./Container";
1
+ import { LazyImage } from './LazyImage';
2
+ import * as Y from 'yjs';
3
+ import { WhiteboardApplication } from '@netless/forge-whiteboard';
4
+ import type { ImageryDoc } from './ImageryDoc';
5
+ import { Container } from './Container';
6
6
  export declare class ContinuousContainer implements Container {
7
7
  readonly view: HTMLDivElement;
8
8
  private parentView;
@@ -1 +1 @@
1
- {"version":3,"file":"ContinuousContainer.d.ts","sourceRoot":"","sources":["../src/ContinuousContainer.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,SAAS,EAAC,MAAM,aAAa,CAAC;AAEtC,OAAO,KAAK,CAAC,MAAM,KAAK,CAAC;AACzB,OAAO,EAAC,qBAAqB,EAAC,MAAM,2BAA2B,CAAC;AAChE,OAAO,KAAK,EAAC,UAAU,EAAC,MAAM,cAAc,CAAC;AAC7C,OAAO,EAAC,SAAS,EAAgB,MAAM,aAAa,CAAC;AAErD,qBAAa,mBAAoB,YAAW,SAAS;IACjD,SAAgB,IAAI,EAAE,cAAc,CAAC;IACrC,OAAO,CAAC,UAAU,CAAiB;IACnC,OAAO,CAAC,cAAc,CAAkB;IACxC,OAAO,CAAC,MAAM,CAAmB;IACjC,OAAO,CAAC,MAAM,CAAiB;IAC/B,OAAO,CAAC,GAAG,CAAa;IACxB,OAAO,CAAC,aAAa,CAAwB;IAC7C,OAAO,CAAC,QAAQ,CAAa;IAC7B,OAAO,CAAC,WAAW,CAAa;IAChC,OAAO,CAAC,UAAU,CAAa;IAE/B,OAAO,KAAK,UAAU,GAErB;IACD,OAAO,KAAK,UAAU,QAErB;IAED,IAAW,SAAS,IAAI,MAAM,CAQ7B;gBAGG,GAAG,EAAE,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,EACf,aAAa,EAAE,qBAAqB,EACpC,UAAU,EAAE,cAAc,EAC1B,QAAQ,EAAE,UAAU;IAmCjB,IAAI;IAKX,OAAO,CAAC,eAAe;IAQvB,OAAO,CAAC,eAAe,CAKrB;IAEK,IAAI,CAAC,KAAK,EAAE,MAAM;IAMlB,MAAM,CAAC,KAAK,EAAE,SAAS;YAKhB,UAAU;IAkBxB,OAAO,CAAC,YAAY,CAYnB;IAED,OAAO,CAAC,qBAAqB,CAY5B;IAEM,OAAO;CAIjB"}
1
+ {"version":3,"file":"ContinuousContainer.d.ts","sourceRoot":"","sources":["../src/ContinuousContainer.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AAExC,OAAO,KAAK,CAAC,MAAM,KAAK,CAAC;AACzB,OAAO,EAAE,qBAAqB,EAAE,MAAM,2BAA2B,CAAC;AAClE,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAC/C,OAAO,EAAE,SAAS,EAAiB,MAAM,aAAa,CAAC;AAEvD,qBAAa,mBAAoB,YAAW,SAAS;IACnD,SAAgB,IAAI,EAAE,cAAc,CAAC;IACrC,OAAO,CAAC,UAAU,CAAiB;IACnC,OAAO,CAAC,cAAc,CAAkB;IACxC,OAAO,CAAC,MAAM,CAAmB;IACjC,OAAO,CAAC,MAAM,CAAiB;IAC/B,OAAO,CAAC,GAAG,CAAa;IACxB,OAAO,CAAC,aAAa,CAAwB;IAC7C,OAAO,CAAC,QAAQ,CAAa;IAC7B,OAAO,CAAC,WAAW,CAAa;IAChC,OAAO,CAAC,UAAU,CAAa;IAE/B,OAAO,KAAK,UAAU,GAErB;IACD,OAAO,KAAK,UAAU,QAErB;IAED,IAAW,SAAS,IAAI,MAAM,CAQ7B;gBAGC,GAAG,EAAE,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,EACf,aAAa,EAAE,qBAAqB,EACpC,UAAU,EAAE,cAAc,EAC1B,QAAQ,EAAE,UAAU;IAmCf,IAAI;IAKX,OAAO,CAAC,eAAe;IAQvB,OAAO,CAAC,eAAe,CAKrB;IAEK,IAAI,CAAC,KAAK,EAAE,MAAM;IAMlB,MAAM,CAAC,KAAK,EAAE,SAAS;YAKhB,UAAU;IAkBxB,OAAO,CAAC,YAAY,CAYlB;IAEF,OAAO,CAAC,qBAAqB,CAY3B;IAEK,OAAO;CAIf"}
@@ -1,4 +1,4 @@
1
- import { ImageryDoc } from "./ImageryDoc";
1
+ import { ImageryDoc } from './ImageryDoc';
2
2
  export declare class FooterView {
3
3
  readonly root: HTMLDivElement;
4
4
  private prevPage;
@@ -1 +1 @@
1
- {"version":3,"file":"FooterView.d.ts","sourceRoot":"","sources":["../src/FooterView.ts"],"names":[],"mappings":"AACA,OAAO,EAAC,UAAU,EAAC,MAAM,cAAc,CAAC;AAIxC,qBAAa,UAAU;IAEnB,SAAgB,IAAI,EAAE,cAAc,CAAC;IAErC,OAAO,CAAC,QAAQ,CAAiB;IACjC,OAAO,CAAC,QAAQ,CAAiB;IACjC,OAAO,CAAC,aAAa,CAAiB;IACtC,OAAO,CAAC,gBAAgB,CAAiD;IAEzE,OAAO,CAAC,iBAAiB,CAAkB;IAC3C,OAAO,CAAC,UAAU,CAAa;gBAEZ,UAAU,EAAE,UAAU;IAgClC,aAAa,CAAC,MAAM,EAAE,OAAO,GAAG,IAAI;IAUpC,aAAa,CAAC,MAAM,EAAE,OAAO,GAAG,IAAI;IAU3C,OAAO,CAAC,YAAY;IAMpB,OAAO,CAAC,UAAU;IAmBlB,OAAO,CAAC,aAAa;IAqCrB,OAAO,CAAC,kBAAkB,CAMxB;CACL"}
1
+ {"version":3,"file":"FooterView.d.ts","sourceRoot":"","sources":["../src/FooterView.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAI1C,qBAAa,UAAU;IAErB,SAAgB,IAAI,EAAE,cAAc,CAAC;IAErC,OAAO,CAAC,QAAQ,CAAiB;IACjC,OAAO,CAAC,QAAQ,CAAiB;IACjC,OAAO,CAAC,aAAa,CAAiB;IACtC,OAAO,CAAC,gBAAgB,CAAiD;IAEzE,OAAO,CAAC,iBAAiB,CAAkB;IAC3C,OAAO,CAAC,UAAU,CAAa;gBAEZ,UAAU,EAAE,UAAU;IAgClC,aAAa,CAAC,MAAM,EAAE,OAAO,GAAG,IAAI;IAUpC,aAAa,CAAC,MAAM,EAAE,OAAO,GAAG,IAAI;IAU3C,OAAO,CAAC,YAAY;IAMpB,OAAO,CAAC,UAAU;IAmBlB,OAAO,CAAC,aAAa;IAqCrB,OAAO,CAAC,kBAAkB,CAMxB;CACH"}
@@ -1,6 +1,6 @@
1
- import EventEmitter from "eventemitter3";
2
- import { ApplicationInstanceType } from "@netless/forge-room";
3
- import { ImageryDocPermissionFlag, ImageryDocPermissions } from "./ImageryDocPermissions";
1
+ import EventEmitter from 'eventemitter3';
2
+ import { ApplicationInstanceType } from '@netless/forge-room';
3
+ import { ImageryDocPermissionFlag, ImageryDocPermissions } from './ImageryDocPermissions';
4
4
  export interface ImageryDocEvents {
5
5
  /**
6
6
  * 当用户权限变更时触发
@@ -23,32 +23,32 @@ export interface ImageryDocEvents {
23
23
  export declare class ImageryDoc extends EventEmitter<ImageryDocEvents> implements ApplicationInstanceType {
24
24
  readonly view: HTMLDivElement;
25
25
  /**
26
- * 底部操作栏
27
- */
26
+ * 底部操作栏
27
+ */
28
28
  readonly footView: HTMLDivElement;
29
29
  readonly permissions: ImageryDocPermissions;
30
30
  /**
31
- * 当前页面索引, 从 0 开始
32
- */
31
+ * 当前页面索引, 从 0 开始
32
+ */
33
33
  readonly pageIndex: number;
34
34
  /**
35
- * 总页数
36
- */
35
+ * 总页数
36
+ */
37
37
  readonly pageCount: number;
38
38
  /**
39
- * 切换到参数指定页面, index 从 0 开始
40
- * @param {number} index 页面索引
41
- */
39
+ * 切换到参数指定页面, index 从 0 开始
40
+ * @param {number} index 页面索引
41
+ */
42
42
  goto: (index: number) => void;
43
43
  /**
44
- * 获取图片内容, base64 编码
45
- * @param {number} index 页面索引
46
- */
44
+ * 获取图片内容, base64 编码
45
+ * @param {number} index 页面索引
46
+ */
47
47
  imgContent: (index: number) => Promise<string>;
48
48
  /**
49
- * 获取图片尺寸
50
- * @param {number} index 页面索引
51
- */
49
+ * 获取图片尺寸
50
+ * @param {number} index 页面索引
51
+ */
52
52
  imgSize: (index: number) => {
53
53
  width: number;
54
54
  height: number;
@@ -1 +1 @@
1
- {"version":3,"file":"ImageryDoc.d.ts","sourceRoot":"","sources":["../src/ImageryDoc.ts"],"names":[],"mappings":"AAAA,OAAO,YAAY,MAAM,eAAe,CAAC;AACzC,OAAO,EAAC,uBAAuB,EAAC,MAAM,qBAAqB,CAAC;AAE5D,OAAO,EAAC,wBAAwB,EAAE,qBAAqB,EAAC,MAAM,yBAAyB,CAAC;AAExF,MAAM,WAAW,gBAAgB;IAC7B;;;;;OAKG;IACH,gBAAgB,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,wBAAwB,EAAE,EAAE,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;IAE7F;;;OAGG;IACH,WAAW,EAAE,CAAC,SAAS,EAAE,MAAM,KAAK,IAAI,CAAC;IAEzC;;;OAGG;IACH,SAAS,EAAE,CAAC,SAAS,EAAE,MAAM,KAAK,IAAI,CAAC;CAC1C;AAGD,qBAAa,UAAW,SAAQ,YAAY,CAAC,gBAAgB,CAAE,YAAW,uBAAuB;IAE7F,SAAgB,IAAI,EAAG,cAAc,CAAC;IACtC;;OAEG;IACH,SAAgB,QAAQ,EAAG,cAAc,CAAC;IAC1C,SAAgB,WAAW,EAAG,qBAAqB,CAAC;IAEpD;;OAEG;IACH,SAAgB,SAAS,EAAG,MAAM,CAAC;IACnC;;OAEG;IACH,SAAgB,SAAS,EAAG,MAAM,CAAC;IAEnC;;;OAGG;IACI,IAAI,EAAG,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;IAEtC;;;OAGG;IACI,UAAU,EAAG,CAAC,KAAK,EAAE,MAAM,KAAK,OAAO,CAAC,MAAM,CAAC,CAAC;IAEvD;;;OAGG;IACI,OAAO,EAAG,CAAC,KAAK,EAAE,MAAM,KAAK;QAAC,KAAK,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAA;KAAC,CAAC;CACvE"}
1
+ {"version":3,"file":"ImageryDoc.d.ts","sourceRoot":"","sources":["../src/ImageryDoc.ts"],"names":[],"mappings":"AAAA,OAAO,YAAY,MAAM,eAAe,CAAC;AACzC,OAAO,EAAE,uBAAuB,EAAE,MAAM,qBAAqB,CAAC;AAE9D,OAAO,EAAE,wBAAwB,EAAE,qBAAqB,EAAE,MAAM,yBAAyB,CAAC;AAE1F,MAAM,WAAW,gBAAgB;IAC7B;;;;;OAKG;IACH,gBAAgB,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,wBAAwB,EAAE,EAAE,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;IAE7F;;;OAGG;IACH,WAAW,EAAE,CAAC,SAAS,EAAE,MAAM,KAAK,IAAI,CAAC;IAEzC;;;OAGG;IACH,SAAS,EAAE,CAAC,SAAS,EAAE,MAAM,KAAK,IAAI,CAAC;CAC1C;AAGD,qBAAa,UAAW,SAAQ,YAAY,CAAC,gBAAgB,CAAE,YAAW,uBAAuB;IAE/F,SAAgB,IAAI,EAAG,cAAc,CAAC;IACtC;;SAEK;IACL,SAAgB,QAAQ,EAAG,cAAc,CAAC;IAC1C,SAAgB,WAAW,EAAG,qBAAqB,CAAC;IAEpD;;SAEK;IACL,SAAgB,SAAS,EAAG,MAAM,CAAC;IACnC;;SAEK;IACL,SAAgB,SAAS,EAAG,MAAM,CAAC;IAEnC;;;SAGK;IACE,IAAI,EAAG,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;IAEtC;;;SAGK;IACE,UAAU,EAAG,CAAC,KAAK,EAAE,MAAM,KAAK,OAAO,CAAC,MAAM,CAAC,CAAC;IAEvD;;;SAGK;IACE,OAAO,EAAG,CAAC,KAAK,EAAE,MAAM,KAAK;QAAC,KAAK,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAA;KAAC,CAAC;CACrE"}
@@ -1,5 +1,5 @@
1
- import { AbstractApplication } from "@netless/forge-room";
2
- import { ImageryDoc } from "./ImageryDoc";
1
+ import { AbstractApplication } from '@netless/forge-room';
2
+ import { ImageryDoc } from './ImageryDoc';
3
3
  export interface ImageryDocOption {
4
4
  images: {
5
5
  src: string;
@@ -10,7 +10,7 @@ export interface ImageryDocOption {
10
10
  * 从指定的白板 id 继承白板权限以及工具栏配置
11
11
  */
12
12
  inheritWhiteboardId?: string;
13
- displayMode: "continuous" | "single";
13
+ displayMode: 'continuous' | 'single';
14
14
  }
15
15
  export declare const IMAGERY_DOC_APP_NAME = "imagery_doc";
16
16
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"ImageryDocApplication.d.ts","sourceRoot":"","sources":["../src/ImageryDocApplication.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,mBAAmB,EAAC,MAAM,qBAAqB,CAAC;AAIxD,OAAO,EAAC,UAAU,EAAC,MAAM,cAAc,CAAC;AAQxC,MAAM,WAAW,gBAAgB;IAC7B,MAAM,EAAE;QACJ,GAAG,EAAE,MAAM,CAAC;QACZ,KAAK,EAAE,MAAM,CAAC;QACd,MAAM,EAAE,MAAM,CAAC;KAClB,EAAE,CAAC;IACJ;;OAEG;IACH,mBAAmB,CAAC,EAAE,MAAM,CAAC;IAC7B,WAAW,EAAE,YAAY,GAAG,QAAQ,CAAC;CACxC;AAED,eAAO,MAAM,oBAAoB,gBAAgB,CAAC;AAElD;;GAEG;AACH,qBAAa,qBAAsB,SAAQ,mBAAmB,CAAC,gBAAgB,EAAE,UAAU,CAAC;IAExF,MAAM,CAAC,eAAe,SAAwB;IAE9C,SAAgB,IAAI,EAAE,MAAM,CAAwB;IAE7C,OAAO,EAAE,UAAU,CAAoB;IAE9C,OAAO,CAAC,aAAa,CAAyB;IAC9C,OAAO,CAAC,UAAU,CAAc;IAChC,OAAO,CAAC,SAAS,CAAa;IAC9B,OAAO,CAAC,QAAQ,CAAiD;IACjE,OAAO,CAAC,gBAAgB,CAAiD;IACzE,OAAO,CAAC,mBAAmB,CAAiD;IAC5E,OAAO,CAAC,eAAe,CAAiD;IACxE,OAAO,CAAC,WAAW,CAAyB;IAC5C,OAAO,CAAC,MAAM,CAAa;IAC3B,OAAO,CAAC,MAAM,CAAmB;;IA2EpB,UAAU,CAAC,MAAM,EAAE,gBAAgB,GAAG,OAAO,CAAC,IAAI,CAAC;IA4FhE,OAAO,CAAC,OAAO;IAIF,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC;CAMxC"}
1
+ {"version":3,"file":"ImageryDocApplication.d.ts","sourceRoot":"","sources":["../src/ImageryDocApplication.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,mBAAmB,EAAE,MAAM,qBAAqB,CAAC;AAI1D,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAQ1C,MAAM,WAAW,gBAAgB;IAC7B,MAAM,EAAE;QACJ,GAAG,EAAE,MAAM,CAAC;QACZ,KAAK,EAAE,MAAM,CAAC;QACd,MAAM,EAAE,MAAM,CAAC;KAClB,EAAE,CAAC;IACJ;;OAEG;IACH,mBAAmB,CAAC,EAAE,MAAM,CAAC;IAC7B,WAAW,EAAE,YAAY,GAAG,QAAQ,CAAC;CACxC;AAED,eAAO,MAAM,oBAAoB,gBAAgB,CAAC;AAElD;;GAEG;AACH,qBAAa,qBAAsB,SAAQ,mBAAmB,CAAC,gBAAgB,EAAE,UAAU,CAAC;IAE1F,MAAM,CAAC,eAAe,SAAwB;IAE9C,SAAgB,IAAI,EAAE,MAAM,CAAwB;IAE7C,OAAO,EAAE,UAAU,CAAoB;IAE9C,OAAO,CAAC,aAAa,CAAyB;IAC9C,OAAO,CAAC,UAAU,CAAc;IAChC,OAAO,CAAC,SAAS,CAAa;IAC9B,OAAO,CAAC,QAAQ,CAAiD;IACjE,OAAO,CAAC,gBAAgB,CAAiD;IACzE,OAAO,CAAC,mBAAmB,CAAiD;IAC5E,OAAO,CAAC,eAAe,CAAiD;IACxE,OAAO,CAAC,WAAW,CAAyB;IAC5C,OAAO,CAAC,MAAM,CAAa;IAC3B,OAAO,CAAC,MAAM,CAAmB;;IA4EpB,UAAU,CAAC,MAAM,EAAE,gBAAgB,GAAG,OAAO,CAAC,IAAI,CAAC;IA2FhE,OAAO,CAAC,OAAO;IAIF,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC;CAgBtC"}
@@ -1,6 +1,6 @@
1
- import { type UserManager } from "@netless/forge-room";
2
- import EventEmitter from "eventemitter3";
3
- import * as Y from "yjs";
1
+ import { type UserManager } from '@netless/forge-room';
2
+ import EventEmitter from 'eventemitter3';
3
+ import * as Y from 'yjs';
4
4
  export declare enum ImageryDocPermissionFlag {
5
5
  /**
6
6
  * 没有任何权限, 只能同步他人的操作
@@ -43,38 +43,39 @@ export declare class ImageryDocPermissions extends EventEmitter<ImageryDocPermis
43
43
  private createModel;
44
44
  private handleUserPermissionChange;
45
45
  /**
46
- * 解析权限列表组合
47
- * @param {number} value - 权限数字值
48
- * @return {WhiteboardPermissionFlag[]} - 权限列表
49
- */
46
+ * 解析权限列表组合
47
+ * @param {number} value - 权限数字值
48
+ * @return {WhiteboardPermissionFlag[]} - 权限列表
49
+ */
50
50
  resolveFlags(value: number): ImageryDocPermissionFlag[];
51
51
  /**
52
- * 获取权限列表组合对应的数值
53
- * @param { string } userId 不传表示获取自己
54
- */
52
+ * 获取权限列表组合对应的数值
53
+ * @param { string } userId 不传表示获取自己
54
+ */
55
55
  getPermissionValue(userId?: string): number;
56
56
  /**
57
- * 获取权限列表
58
- * @param {string=} userId 可选, 不传表示获取自己
59
- */
57
+ * 获取权限列表
58
+ * @param {string=} userId 可选, 不传表示获取自己
59
+ */
60
60
  getPermissionFlags(userId?: string): ImageryDocPermissionFlag[];
61
61
  /**
62
- * 返回对应 userId 是否有相应权限
63
- * @param {string=} userId 可选, 不传表示返回自己是否有相应权限
64
- * @param {WhiteboardPermissionFlag} flag
65
- */
62
+ * 返回对应 userId 是否有相应权限
63
+ * @param {string=} userId 可选, 不传表示返回自己是否有相应权限
64
+ * @param {WhiteboardPermissionFlag} flag
65
+ */
66
66
  hasPermission(flag: ImageryDocPermissionFlag, userId?: string): boolean;
67
67
  /**
68
- * 添加权限
69
- * @param {WhiteboardPermissionFlag} flag 权限标记
70
- * @param {string=} userId 可选, 为 userId 添加权限, 不传表示为自己添加权限
71
- */
68
+ * 添加权限
69
+ * @param {WhiteboardPermissionFlag} flag 权限标记
70
+ * @param {string=} userId 可选, 为 userId 添加权限, 不传表示为自己添加权限
71
+ */
72
72
  addPermission(flag: ImageryDocPermissionFlag, userId?: string): void;
73
73
  /**
74
- * 移除权限
75
- * @param {WhiteboardPermissionFlag} flag 权限标记
76
- * @param {string=} userId 可选, 为 userId 移除权限, 不传表示为自己移除权限
77
- */
74
+ * 移除权限
75
+ * @param {WhiteboardPermissionFlag} flag 权限标记
76
+ * @param {string=} userId 可选, 为 userId 移除权限, 不传表示为自己移除权限
77
+ */
78
78
  removePermission(flag: ImageryDocPermissionFlag, userId?: string): void;
79
+ dispose(): void;
79
80
  }
80
81
  //# sourceMappingURL=ImageryDocPermissions.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"ImageryDocPermissions.d.ts","sourceRoot":"","sources":["../src/ImageryDocPermissions.ts"],"names":[],"mappings":"AAAA,OAAO,EAAiB,KAAK,WAAW,EAAE,MAAM,qBAAqB,CAAC;AACtE,OAAO,YAAY,MAAM,eAAe,CAAC;AACzC,OAAO,KAAK,CAAC,MAAM,KAAK,CAAC;AAEzB,oBAAY,wBAAwB;IAChC;;OAEG;IACH,IAAI,IAAqB;IACzB;;OAEG;IACH,UAAU,IAAqB;IAC/B;;OAEG;IACH,MAAM,IAAqB;IAC3B;;OAEG;IACH,OAAO,IAAqB;IAC5B;;OAEG;IACH,GAAG,IAEiC;CACvC;AAED,MAAM,WAAW,0BAA0B;IACvC;;;;;OAKG;IACH,MAAM,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,wBAAwB,EAAE,EAAE,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;CACtF;AAED,qBAAa,qBAAsB,SAAQ,YAAY,CAAC,0BAA0B,CAAC;IAE/E,OAAO,CAAC,cAAc,CAAiC;IACvD,OAAO,CAAC,WAAW,CAAc;IACjC,OAAO,CAAC,SAAS,CAA+B;gBAG5C,WAAW,EAAE,WAAW,EACxB,cAAc,EAAE,CAAC,MAAM,EAAE,MAAM,KAAK,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC;IAclD,OAAO,CAAC,eAAe,CAKrB;IAEF,OAAO,CAAC,cAAc,CAEpB;IAEF,OAAO,CAAC,UAAU;IAQlB,OAAO,CAAC,WAAW;IAOnB,OAAO,CAAC,0BAA0B;IAWlC;;;;OAIG;IACI,YAAY,CAAC,KAAK,EAAE,MAAM,GAAG,wBAAwB,EAAE;IAQ9D;;;OAGG;IACI,kBAAkB,CAAC,MAAM,CAAC,EAAE,MAAM,GAAG,MAAM;IAIlD;;;OAGG;IACI,kBAAkB,CAAC,MAAM,CAAC,EAAE,MAAM,GAAG,wBAAwB,EAAE;IAKtE;;;;OAIG;IACI,aAAa,CAAC,IAAI,EAAE,wBAAwB,EAAE,MAAM,CAAC,EAAE,MAAM,GAAG,OAAO;IAI9E;;;;OAIG;IACI,aAAa,CAAC,IAAI,EAAE,wBAAwB,EAAE,MAAM,CAAC,EAAE,MAAM;IAMpE;;;;OAIG;IACI,gBAAgB,CAAC,IAAI,EAAE,wBAAwB,EAAE,MAAM,CAAC,EAAE,MAAM;CAK1E"}
1
+ {"version":3,"file":"ImageryDocPermissions.d.ts","sourceRoot":"","sources":["../src/ImageryDocPermissions.ts"],"names":[],"mappings":"AAAA,OAAO,EAAiB,KAAK,WAAW,EAAE,MAAM,qBAAqB,CAAC;AACtE,OAAO,YAAY,MAAM,eAAe,CAAC;AACzC,OAAO,KAAK,CAAC,MAAM,KAAK,CAAC;AAEzB,oBAAY,wBAAwB;IAChC;;OAEG;IACH,IAAI,IAAqB;IACzB;;OAEG;IACH,UAAU,IAAqB;IAC/B;;OAEG;IACH,MAAM,IAAqB;IAC3B;;OAEG;IACH,OAAO,IAAqB;IAC5B;;OAEG;IACH,GAAG,IAEiC;CACvC;AAED,MAAM,WAAW,0BAA0B;IACvC;;;;;OAKG;IACH,MAAM,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,wBAAwB,EAAE,EAAE,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;CACtF;AAED,qBAAa,qBAAsB,SAAQ,YAAY,CAAC,0BAA0B,CAAC;IAEjF,OAAO,CAAC,cAAc,CAAiC;IACvD,OAAO,CAAC,WAAW,CAAc;IACjC,OAAO,CAAC,SAAS,CAA+B;gBAG9C,WAAW,EAAE,WAAW,EACxB,cAAc,EAAE,CAAC,MAAM,EAAE,MAAM,KAAK,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC;IAchD,OAAO,CAAC,eAAe,CAKrB;IAEF,OAAO,CAAC,cAAc,CAEpB;IAEF,OAAO,CAAC,UAAU;IAQlB,OAAO,CAAC,WAAW;IAOnB,OAAO,CAAC,0BAA0B;IAWlC;;;;SAIK;IACE,YAAY,CAAC,KAAK,EAAE,MAAM,GAAG,wBAAwB,EAAE;IAQ9D;;;SAGK;IACE,kBAAkB,CAAC,MAAM,CAAC,EAAE,MAAM,GAAG,MAAM;IAIlD;;;SAGK;IACE,kBAAkB,CAAC,MAAM,CAAC,EAAE,MAAM,GAAG,wBAAwB,EAAE;IAKtE;;;;SAIK;IACE,aAAa,CAAC,IAAI,EAAE,wBAAwB,EAAE,MAAM,CAAC,EAAE,MAAM,GAAG,OAAO;IAI9E;;;;SAIK;IACE,aAAa,CAAC,IAAI,EAAE,wBAAwB,EAAE,MAAM,CAAC,EAAE,MAAM;IAMpE;;;;SAIK;IACE,gBAAgB,CAAC,IAAI,EAAE,wBAAwB,EAAE,MAAM,CAAC,EAAE,MAAM;IAMhE,OAAO;CASf"}
@@ -1,4 +1,4 @@
1
- import EventEmitter from "eventemitter3";
1
+ import EventEmitter from 'eventemitter3';
2
2
  interface InfinityScrollEvents {
3
3
  scale: (value: number) => void;
4
4
  translate: (x: number, y: number) => void;
@@ -1 +1 @@
1
- {"version":3,"file":"InfinityScroll.d.ts","sourceRoot":"","sources":["../src/InfinityScroll.ts"],"names":[],"mappings":"AAAA,OAAO,YAAY,MAAM,eAAe,CAAC;AAEzC,UAAU,oBAAoB;IAC1B,KAAK,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;IAC/B,SAAS,EAAE,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,KAAK,IAAI,CAAC;CAC7C;AAED,qBAAa,cAAe,SAAQ,YAAY,CAAC,oBAAoB,CAAC;IAElE,SAAgB,IAAI,EAAE,cAAc,CAAC;IACrC,OAAO,CAAC,SAAS,CAA0C;IAC3D,OAAO,CAAC,eAAe,CAAa;gBAEjB,IAAI,EAAE,cAAc;IAMvC,OAAO,CAAC,WAAW,CA8BjB;IAEK,OAAO;CAGjB"}
1
+ {"version":3,"file":"InfinityScroll.d.ts","sourceRoot":"","sources":["../src/InfinityScroll.ts"],"names":[],"mappings":"AAAA,OAAO,YAAY,MAAM,eAAe,CAAC;AAEzC,UAAU,oBAAoB;IAC1B,KAAK,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;IAC/B,SAAS,EAAE,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,KAAK,IAAI,CAAC;CAC7C;AAED,qBAAa,cAAe,SAAQ,YAAY,CAAC,oBAAoB,CAAC;IAEpE,SAAgB,IAAI,EAAE,cAAc,CAAC;IACrC,OAAO,CAAC,SAAS,CAA0C;IAC3D,OAAO,CAAC,eAAe,CAAa;gBAEjB,IAAI,EAAE,cAAc;IAMvC,OAAO,CAAC,WAAW,CA8BjB;IAEK,OAAO;CAIf"}
@@ -1 +1 @@
1
- {"version":3,"file":"LazyImage.d.ts","sourceRoot":"","sources":["../src/LazyImage.ts"],"names":[],"mappings":"AAEA,qBAAa,SAAS;IAElB,SAAgB,IAAI,EAAE,cAAc,CAAC;IACrC,SAAgB,KAAK,EAAE,MAAM,CAAC;IAC9B,SAAgB,MAAM,EAAE,MAAM,CAAC;IAC/B,OAAO,CAAC,GAAG,CAAS;gBAED,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM;IAWtD,KAAK,CAAC,KAAK,EAAE,MAAM;IAOb,aAAa,IAAI,OAAO,CAAC,MAAM,CAAC;IA0BhC,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC;CAYxC"}
1
+ {"version":3,"file":"LazyImage.d.ts","sourceRoot":"","sources":["../src/LazyImage.ts"],"names":[],"mappings":"AAEA,qBAAa,SAAS;IAEpB,SAAgB,IAAI,EAAE,cAAc,CAAC;IACrC,SAAgB,KAAK,EAAE,MAAM,CAAC;IAC9B,SAAgB,MAAM,EAAE,MAAM,CAAC;IAC/B,OAAO,CAAC,GAAG,CAAS;gBAED,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM;IAWtD,KAAK,CAAC,KAAK,EAAE,MAAM;IAOb,aAAa,IAAI,OAAO,CAAC,MAAM,CAAC;IA0BhC,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC;CAYtC"}
@@ -1,8 +1,8 @@
1
- import { LazyImage } from "./LazyImage";
2
- import * as Y from "yjs";
3
- import { WhiteboardApplication } from "@netless/forge-whiteboard";
4
- import type { ImageryDoc } from "./ImageryDoc";
5
- import { Container } from "./Container";
1
+ import { LazyImage } from './LazyImage';
2
+ import * as Y from 'yjs';
3
+ import { WhiteboardApplication } from '@netless/forge-whiteboard';
4
+ import type { ImageryDoc } from './ImageryDoc';
5
+ import { Container } from './Container';
6
6
  export declare const delay: (value: number) => Promise<unknown>;
7
7
  export declare class SingleContainer implements Container {
8
8
  readonly view: HTMLDivElement;
@@ -13,7 +13,6 @@ export declare class SingleContainer implements Container {
13
13
  private scroll;
14
14
  private map;
15
15
  private whiteboardApp;
16
- private timeoutId;
17
16
  private imageDoc;
18
17
  private get scale();
19
18
  private set scale(value);
@@ -24,6 +23,7 @@ export declare class SingleContainer implements Container {
24
23
  get pageIndex(): number;
25
24
  constructor(map: Y.Map<any>, whiteboardApp: WhiteboardApplication, parentView: HTMLDivElement, imageDoc: ImageryDoc);
26
25
  init(): void;
26
+ private resetTranslateOnResize;
27
27
  private handleTranslate;
28
28
  private handleMapChange;
29
29
  goto(index: number): void;
@@ -1 +1 @@
1
- {"version":3,"file":"SingleContainer.d.ts","sourceRoot":"","sources":["../src/SingleContainer.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,SAAS,EAAC,MAAM,aAAa,CAAC;AAEtC,OAAO,KAAK,CAAC,MAAM,KAAK,CAAC;AACzB,OAAO,EAAC,qBAAqB,EAAC,MAAM,2BAA2B,CAAC;AAChE,OAAO,KAAK,EAAC,UAAU,EAAC,MAAM,cAAc,CAAC;AAC7C,OAAO,EAAC,SAAS,EAAgB,MAAM,aAAa,CAAC;AAErD,eAAO,MAAM,KAAK,UAAW,MAAM,qBAAuD,CAAC;AAU3F,qBAAa,eAAgB,YAAW,SAAS;IAC7C,SAAgB,IAAI,EAAE,cAAc,CAAC;IACrC,OAAO,CAAC,UAAU,CAAiB;IACnC,OAAO,CAAC,cAAc,CAAkB;IACxC,OAAO,CAAC,MAAM,CAAmB;IACjC,OAAO,CAAC,YAAY,CAA0B;IAC9C,OAAO,CAAC,MAAM,CAAiB;IAC/B,OAAO,CAAC,GAAG,CAAa;IACxB,OAAO,CAAC,aAAa,CAAwB;IAC7C,OAAO,CAAC,SAAS,CAAa;IAC9B,OAAO,CAAC,QAAQ,CAAa;IAE7B,OAAO,KAAK,KAAK,GAEhB;IACD,OAAO,KAAK,KAAK,QAEhB;IACD,OAAO,KAAK,UAAU,GAErB;IACD,OAAO,KAAK,UAAU,QAErB;IACD,OAAO,KAAK,UAAU,GAErB;IACD,OAAO,KAAK,UAAU,QAErB;IACD,IAAW,SAAS,IAAI,MAAM,CAE7B;gBAGG,GAAG,EAAE,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,EACf,aAAa,EAAE,qBAAqB,EACpC,UAAU,EAAE,cAAc,EAC1B,QAAQ,EAAE,UAAU;IA8CjB,IAAI;IAQX,OAAO,CAAC,eAAe;IAkCvB,OAAO,CAAC,eAAe,CAerB;IAEK,IAAI,CAAC,KAAK,EAAE,MAAM;IAMlB,MAAM,CAAC,KAAK,EAAE,SAAS;YAIhB,UAAU;IAgCxB,OAAO,CAAC,YAAY,CAYnB;IAED,OAAO,CAAC,qBAAqB,CAwB5B;IAEM,OAAO;CAKjB"}
1
+ {"version":3,"file":"SingleContainer.d.ts","sourceRoot":"","sources":["../src/SingleContainer.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AAExC,OAAO,KAAK,CAAC,MAAM,KAAK,CAAC;AACzB,OAAO,EAAE,qBAAqB,EAAE,MAAM,2BAA2B,CAAC;AAClE,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAC/C,OAAO,EAAE,SAAS,EAAiB,MAAM,aAAa,CAAC;AAEvD,eAAO,MAAM,KAAK,UAAW,MAAM,qBAAuD,CAAC;AAU3F,qBAAa,eAAgB,YAAW,SAAS;IAC/C,SAAgB,IAAI,EAAE,cAAc,CAAC;IACrC,OAAO,CAAC,UAAU,CAAiB;IACnC,OAAO,CAAC,cAAc,CAAkB;IACxC,OAAO,CAAC,MAAM,CAAmB;IACjC,OAAO,CAAC,YAAY,CAA0B;IAC9C,OAAO,CAAC,MAAM,CAAiB;IAC/B,OAAO,CAAC,GAAG,CAAa;IACxB,OAAO,CAAC,aAAa,CAAwB;IAC7C,OAAO,CAAC,QAAQ,CAAa;IAE7B,OAAO,KAAK,KAAK,GAEhB;IACD,OAAO,KAAK,KAAK,QAEhB;IACD,OAAO,KAAK,UAAU,GAErB;IACD,OAAO,KAAK,UAAU,QAErB;IACD,OAAO,KAAK,UAAU,GAErB;IACD,OAAO,KAAK,UAAU,QAErB;IACD,IAAW,SAAS,IAAI,MAAM,CAE7B;gBAGC,GAAG,EAAE,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,EACf,aAAa,EAAE,qBAAqB,EACpC,UAAU,EAAE,cAAc,EAC1B,QAAQ,EAAE,UAAU;IA+Cf,IAAI;IAQX,OAAO,CAAC,sBAAsB;IAiB9B,OAAO,CAAC,eAAe;IAkCvB,OAAO,CAAC,eAAe,CAerB;IAEK,IAAI,CAAC,KAAK,EAAE,MAAM;IAMlB,MAAM,CAAC,KAAK,EAAE,SAAS;YAIhB,UAAU;IAgCxB,OAAO,CAAC,YAAY,CAalB;IAEF,OAAO,CAAC,qBAAqB,CAgB3B;IAEK,OAAO;CAKf"}
@@ -86,7 +86,7 @@ var LazyImage = class {
86
86
  const blob = await response.blob();
87
87
  return new Promise((resolve, reject) => {
88
88
  const reader = new FileReader();
89
- reader.onload = (e) => {
89
+ reader.onload = (_e) => {
90
90
  kvStore.setItem(this.src, reader.result);
91
91
  resolve(reader.result);
92
92
  };
@@ -185,56 +185,65 @@ var ImageryDocPermissions = class extends EventEmitter2 {
185
185
  }
186
186
  }
187
187
  /**
188
- * 解析权限列表组合
189
- * @param {number} value - 权限数字值
190
- * @return {WhiteboardPermissionFlag[]} - 权限列表
191
- */
188
+ * 解析权限列表组合
189
+ * @param {number} value - 权限数字值
190
+ * @return {WhiteboardPermissionFlag[]} - 权限列表
191
+ */
192
192
  resolveFlags(value) {
193
193
  return [ImageryDocPermissionFlag.switchPage, ImageryDocPermissionFlag.sideBar, ImageryDocPermissionFlag.camera].filter((v) => (v & value) !== 0);
194
194
  }
195
195
  /**
196
- * 获取权限列表组合对应的数值
197
- * @param { string } userId 不传表示获取自己
198
- */
196
+ * 获取权限列表组合对应的数值
197
+ * @param { string } userId 不传表示获取自己
198
+ */
199
199
  getPermissionValue(userId) {
200
200
  return this.requestUserMap(userId ?? this.userManager.selfId).get("permission") ?? 0;
201
201
  }
202
202
  /**
203
- * 获取权限列表
204
- * @param {string=} userId 可选, 不传表示获取自己
205
- */
203
+ * 获取权限列表
204
+ * @param {string=} userId 可选, 不传表示获取自己
205
+ */
206
206
  getPermissionFlags(userId) {
207
207
  const value = this.requestUserMap(userId ?? this.userManager.selfId).get("permission") ?? 0;
208
208
  return this.resolveFlags(value);
209
209
  }
210
210
  /**
211
- * 返回对应 userId 是否有相应权限
212
- * @param {string=} userId 可选, 不传表示返回自己是否有相应权限
213
- * @param {WhiteboardPermissionFlag} flag
214
- */
211
+ * 返回对应 userId 是否有相应权限
212
+ * @param {string=} userId 可选, 不传表示返回自己是否有相应权限
213
+ * @param {WhiteboardPermissionFlag} flag
214
+ */
215
215
  hasPermission(flag, userId) {
216
216
  return ((this.requestUserMap(userId ?? this.userManager.selfId).get("permission") ?? 0) & flag) !== 0;
217
217
  }
218
218
  /**
219
- * 添加权限
220
- * @param {WhiteboardPermissionFlag} flag 权限标记
221
- * @param {string=} userId 可选, 为 userId 添加权限, 不传表示为自己添加权限
222
- */
219
+ * 添加权限
220
+ * @param {WhiteboardPermissionFlag} flag 权限标记
221
+ * @param {string=} userId 可选, 为 userId 添加权限, 不传表示为自己添加权限
222
+ */
223
223
  addPermission(flag, userId) {
224
224
  const userMap = this.requestUserMap(userId ?? this.userManager.selfId);
225
225
  const oldValue = userMap.get("permission") ?? 0;
226
226
  this.requestUserMap(userId ?? this.userManager.selfId).set("permission", oldValue | flag);
227
227
  }
228
228
  /**
229
- * 移除权限
230
- * @param {WhiteboardPermissionFlag} flag 权限标记
231
- * @param {string=} userId 可选, 为 userId 移除权限, 不传表示为自己移除权限
232
- */
229
+ * 移除权限
230
+ * @param {WhiteboardPermissionFlag} flag 权限标记
231
+ * @param {string=} userId 可选, 为 userId 移除权限, 不传表示为自己移除权限
232
+ */
233
233
  removePermission(flag, userId) {
234
234
  const userMap = this.requestUserMap(userId ?? this.userManager.selfId);
235
235
  const oldValue = userMap.get("permission") ?? 0;
236
236
  this.requestUserMap(userId ?? this.userManager.selfId).set("permission", oldValue & ~flag);
237
237
  }
238
+ dispose() {
239
+ this.userManager.off("join", this.handleUserJoin);
240
+ this.userManager.off("leave", this.handleUserLeave);
241
+ for (const [userId, observer] of this.observers) {
242
+ this.requestUserMap(userId).unobserve(observer);
243
+ }
244
+ this.observers.clear();
245
+ this.removeAllListeners();
246
+ }
238
247
  };
239
248
 
240
249
  // src/icons.ts
@@ -458,6 +467,7 @@ var InfinityScroll = class extends EventEmitter3 {
458
467
  }
459
468
  dispose() {
460
469
  this.view.removeEventListener("wheel", this.handleWheel);
470
+ this.removeAllListeners();
461
471
  }
462
472
  };
463
473
 
@@ -523,7 +533,7 @@ var ContinuousContainer = class {
523
533
  const bound = this.view.getBoundingClientRect();
524
534
  let scaledHeight = 0;
525
535
  for (const image of this.images) {
526
- let scale = bound.width / image.width;
536
+ const scale = bound.width / image.width;
527
537
  image.scale(scale);
528
538
  scaledHeight += image.height * scale;
529
539
  }
@@ -675,14 +685,13 @@ var SingleContainer = class {
675
685
  _defineProperty7(this, "scroll", void 0);
676
686
  _defineProperty7(this, "map", void 0);
677
687
  _defineProperty7(this, "whiteboardApp", void 0);
678
- _defineProperty7(this, "timeoutId", null);
679
688
  _defineProperty7(this, "imageDoc", void 0);
680
689
  _defineProperty7(this, "handleMapChange", (event) => {
681
690
  if (event.keysChanged.has(ContainerKeys.scale) || event.keysChanged.has(ContainerKeys.translateX) || event.keysChanged.has(ContainerKeys.translateY)) {
682
691
  this.updateSyncedTransform();
683
692
  }
684
693
  if (event.keysChanged.has(ContainerKeys.pageIndex)) {
685
- this.handleGoto(this.pageIndex).catch((error) => {
694
+ this.handleGoto(this.pageIndex).catch((_error) => {
686
695
  });
687
696
  }
688
697
  });
@@ -697,6 +706,7 @@ var SingleContainer = class {
697
706
  const ty = Math.round((bound.height - this.currentImage.height * scale) / 2 / scale);
698
707
  this.currentImage.view.style.transform = `scale(${scale}) translate(${tx}px, ${ty}px)`;
699
708
  this.updateSyncedTransform();
709
+ this.resetTranslateOnResize();
700
710
  }
701
711
  });
702
712
  _defineProperty7(this, "updateSyncedTransform", () => {
@@ -707,22 +717,11 @@ var SingleContainer = class {
707
717
  const tx = -this.translateX * parentBounds.width / this.scale;
708
718
  const ty = -this.translateY * parentBounds.height / this.scale;
709
719
  this.view.style.transform = `scale(${this.scale}) translate(${tx}px, ${ty}px)`;
710
- const whiteboardView = this.whiteboardApp.emitter.view;
711
- whiteboardView.style.width = `${parentBounds.width}px`;
712
- whiteboardView.style.height = `${parentBounds.height}px`;
713
- whiteboardView.style.top = "0";
714
- whiteboardView.style.left = "0";
715
- whiteboardView.style.transform = `scale(${this.scale}) translate(${tx}px, ${ty}px)`;
716
- this.whiteboardApp.adjustByOutFrame(parentBounds.width, parentBounds.height);
717
- window.clearTimeout(this.timeoutId);
718
- this.timeoutId = window.setTimeout(() => {
719
- whiteboardView.style.width = `${parentBounds.width * this.scale}px`;
720
- whiteboardView.style.height = `${parentBounds.height * this.scale}px`;
721
- whiteboardView.style.top = `${-(this.scale - 1) * parentBounds.height / 2 + ty * this.scale}px`;
722
- whiteboardView.style.left = `${-(this.scale - 1) * parentBounds.width / 2 + tx * this.scale}px`;
723
- whiteboardView.style.transform = `scale(1) translate(0px, 0px)`;
724
- this.whiteboardApp.adjustByOutFrame(parentBounds.width * this.scale, parentBounds.height * this.scale);
725
- }, 200);
720
+ this.whiteboardApp.adjustByOutFrame(parentBounds.width * this.scale, parentBounds.height * this.scale);
721
+ const whiteboardSize = this.whiteboardApp.getViewSize();
722
+ const whiteboardScale = this.whiteboardApp.getInherentScale();
723
+ this.whiteboardApp.emitter.resetCamera();
724
+ this.whiteboardApp.emitter.translateCamera(-this.translateX * whiteboardSize[0] / whiteboardScale / this.scale, -this.translateY * whiteboardSize[1] / whiteboardScale / this.scale);
726
725
  });
727
726
  this.imageDoc = imageDoc;
728
727
  this.parentView = parentView;
@@ -739,7 +738,6 @@ var SingleContainer = class {
739
738
  this.view.setAttribute("data-imagery-container", "single");
740
739
  this.resizeObserver = new ResizeObserver(this.handleResize);
741
740
  this.resizeObserver.observe(this.view);
742
- window.imageWhiteboard = this.whiteboardApp;
743
741
  this.whiteboardApp.updateInternalResizeObserverStatus(false);
744
742
  this.map.observe(this.handleMapChange);
745
743
  if (!this.map.has(ContainerKeys.scale)) {
@@ -764,12 +762,29 @@ var SingleContainer = class {
764
762
  this.scale = nextScale;
765
763
  this.handleTranslate(0, 0);
766
764
  });
765
+ window.__doc = this;
767
766
  }
768
767
  init() {
769
- this.handleGoto(this.pageIndex).catch((error) => {
768
+ this.handleGoto(this.pageIndex).catch((_error) => {
770
769
  });
771
770
  this.updateSyncedTransform();
772
771
  }
772
+ resetTranslateOnResize() {
773
+ const image = this.view.children[0];
774
+ if (!image) {
775
+ return;
776
+ }
777
+ const imageBounds = image.getBoundingClientRect();
778
+ const parentBounds = this.parentView.getBoundingClientRect();
779
+ const maxDx = (imageBounds.width - parentBounds.width) / 2;
780
+ const maxDy = (imageBounds.height - parentBounds.height) / 2;
781
+ if (maxDx < 0) {
782
+ this.translateX = 0;
783
+ }
784
+ if (maxDy < 0) {
785
+ this.translateY = 0;
786
+ }
787
+ }
773
788
  handleTranslate(dx, dy) {
774
789
  const image = this.view.children[0];
775
790
  if (!image) {
@@ -839,9 +854,9 @@ var SingleContainer = class {
839
854
  }
840
855
  }
841
856
  dispose() {
857
+ this.map.unobserve(this.handleMapChange);
842
858
  this.resizeObserver.disconnect();
843
859
  this.scroll.dispose();
844
- window.clearTimeout(this.timeoutId);
845
860
  }
846
861
  };
847
862
 
@@ -979,9 +994,9 @@ var ImageryDocApplication = class extends AbstractApplication {
979
994
  this.contentContainer.appendChild(this.whiteboardContainer);
980
995
  this.contentContainer.appendChild(this.footerContainer);
981
996
  this.footerContainer.appendChild(this.footer.root);
982
- this.whiteboard.setViewModeToMain();
983
997
  let i = 0;
984
998
  this.whiteboard.permissions.addPermission(WhiteboardPermissionFlag.mainView);
999
+ this.whiteboard.setViewModeToMain();
985
1000
  while (i < option.images.length) {
986
1001
  const image = option.images[i];
987
1002
  this.images[i] = new LazyImage(image.src, image.width, image.height);
@@ -995,14 +1010,13 @@ var ImageryDocApplication = class extends AbstractApplication {
995
1010
  this.whiteboard.addPage("doc_continuous");
996
1011
  this.whiteboard.gotoPage("doc_continuous");
997
1012
  }
998
- if (option.displayMode === "single") {
999
- this.whiteboard.setViewModeToMain();
1000
- } else {
1001
- this.whiteboard.setViewModeToFree();
1002
- }
1013
+ this.whiteboard.setViewModeToFree();
1003
1014
  this.permissions = new ImageryDocPermissions(this.userManager, (userId) => {
1004
1015
  return this.userMap(userId);
1005
1016
  });
1017
+ this.permissions.on("change", (userId, flags, value) => {
1018
+ this.emitter.emit("permissionChange", userId, flags, value);
1019
+ });
1006
1020
  this.permissions.addPermission(ImageryDocPermissionFlag.all);
1007
1021
  this.whiteboardApp.disableViewModel();
1008
1022
  this.container.init();
@@ -1019,10 +1033,37 @@ var ImageryDocApplication = class extends AbstractApplication {
1019
1033
  await this.whiteboardApp.dispose();
1020
1034
  this.rootView.parentElement?.removeChild(this.rootView);
1021
1035
  this.container.dispose();
1036
+ this.permissions.dispose();
1037
+ Object.defineProperty(this.emitter, "footView", {
1038
+ value: null
1039
+ });
1040
+ Object.defineProperty(this.emitter, "view", {
1041
+ value: null
1042
+ });
1043
+ Object.defineProperty(this.emitter, "permissions", {
1044
+ value: null
1045
+ });
1046
+ Object.defineProperty(this.emitter, "pageIndex", {
1047
+ value: null
1048
+ });
1049
+ Object.defineProperty(this.emitter, "pageCount", {
1050
+ value: null
1051
+ });
1052
+ Object.defineProperty(this.emitter, "goto", {
1053
+ value: null
1054
+ });
1055
+ Object.defineProperty(this.emitter, "imgContent", {
1056
+ value: null
1057
+ });
1058
+ Object.defineProperty(this.emitter, "imgSize", {
1059
+ value: null
1060
+ });
1061
+ this.emitter.removeAllListeners();
1022
1062
  return Promise.resolve(void 0);
1023
1063
  }
1024
1064
  };
1025
1065
  _defineProperty8(ImageryDocApplication, "applicationName", IMAGERY_DOC_APP_NAME);
1066
+ window.__ImageryDocApplication = ImageryDocApplication;
1026
1067
  export {
1027
1068
  ImageryDoc,
1028
1069
  ImageryDocApplication,