@netless/forge-imagery-doc 1.0.8 → 1.1.0-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.
@@ -1 +1 @@
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;;IA6EpB,UAAU,CAAC,MAAM,EAAE,gBAAgB,GAAG,OAAO,CAAC,IAAI,CAAC;IA8FhE,OAAO,CAAC,OAAO;IAIF,OAAO,CAAC,YAAY,EAAE,OAAO,GAAG,OAAO,CAAC,IAAI,CAAC;CAW3D"}
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;;IA6EpB,UAAU,CAAC,MAAM,EAAE,gBAAgB,GAAG,OAAO,CAAC,IAAI,CAAC;IAgGhE,OAAO,CAAC,OAAO;IAIF,OAAO,CAAC,YAAY,EAAE,OAAO,GAAG,OAAO,CAAC,IAAI,CAAC;CAW3D"}
@@ -7,8 +7,21 @@ export declare class InfinityScroll extends EventEmitter<InfinityScrollEvents> {
7
7
  readonly view: HTMLDivElement;
8
8
  private lastDelta;
9
9
  private lastTriggerTime;
10
+ private lastTouchDistance;
11
+ private lastTouchCenter;
12
+ private isPinching;
13
+ private touchEventCache;
14
+ private gestureType;
15
+ private gestureDetectionComplete;
10
16
  constructor(view: HTMLDivElement);
11
17
  private handleWheel;
18
+ private handleTouchStart;
19
+ private handleTouchMove;
20
+ private handleTouchEnd;
21
+ private getDistance;
22
+ private getCenter;
23
+ private detectGesture;
24
+ private resetGestureDetection;
12
25
  dispose(): void;
13
26
  }
14
27
  export {};
@@ -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;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
+ {"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;IAGpC,OAAO,CAAC,iBAAiB,CAAa;IACtC,OAAO,CAAC,eAAe,CAA0C;IACjE,OAAO,CAAC,UAAU,CAAkB;IAGpC,OAAO,CAAC,eAAe,CAAuD;IAC9E,OAAO,CAAC,WAAW,CAA0C;IAC7D,OAAO,CAAC,wBAAwB,CAAkB;gBAE/B,IAAI,EAAE,cAAc;IAYvC,OAAO,CAAC,WAAW,CA8BjB;IAEF,OAAO,CAAC,gBAAgB,CAWtB;IAEF,OAAO,CAAC,eAAe,CAmCrB;IAEF,OAAO,CAAC,cAAc,CAQpB;IAEF,OAAO,CAAC,WAAW,CAIjB;IAEF,OAAO,CAAC,SAAS,CAKf;IAEF,OAAO,CAAC,aAAa,CA0DnB;IAEF,OAAO,CAAC,qBAAqB,CAI3B;IAEK,OAAO;CAUf"}
@@ -339,6 +339,15 @@ var InfinityScroll = class extends EventEmitter2 {
339
339
  y: 0
340
340
  });
341
341
  _defineProperty4(this, "lastTriggerTime", 0);
342
+ _defineProperty4(this, "lastTouchDistance", 0);
343
+ _defineProperty4(this, "lastTouchCenter", {
344
+ x: 0,
345
+ y: 0
346
+ });
347
+ _defineProperty4(this, "isPinching", false);
348
+ _defineProperty4(this, "touchEventCache", []);
349
+ _defineProperty4(this, "gestureType", "unknown");
350
+ _defineProperty4(this, "gestureDetectionComplete", false);
342
351
  _defineProperty4(this, "handleWheel", (evt) => {
343
352
  evt.preventDefault();
344
353
  evt.stopImmediatePropagation();
@@ -371,14 +380,132 @@ var InfinityScroll = class extends EventEmitter2 {
371
380
  y: 0
372
381
  };
373
382
  });
383
+ _defineProperty4(this, "handleTouchStart", (evt) => {
384
+ console.log("Touch Start");
385
+ evt.preventDefault();
386
+ if (evt.touches.length === 2) {
387
+ this.resetGestureDetection();
388
+ this.isPinching = true;
389
+ this.lastTouchDistance = this.getDistance(evt.touches[0], evt.touches[1]);
390
+ this.lastTouchCenter = this.getCenter(evt.touches[0], evt.touches[1]);
391
+ }
392
+ });
393
+ _defineProperty4(this, "handleTouchMove", (evt) => {
394
+ evt.preventDefault();
395
+ if (evt.touches.length === 2 && this.isPinching) {
396
+ const currentDistance = this.getDistance(evt.touches[0], evt.touches[1]);
397
+ const currentCenter = this.getCenter(evt.touches[0], evt.touches[1]);
398
+ if (!this.gestureDetectionComplete) {
399
+ this.gestureType = this.detectGesture(evt.touches[0], evt.touches[1]);
400
+ if (this.gestureType !== "unknown") {
401
+ this.gestureDetectionComplete = true;
402
+ }
403
+ }
404
+ if (this.gestureType === "drag" || this.gestureType === "unknown") {
405
+ const deltaX = currentCenter.x - this.lastTouchCenter.x;
406
+ const deltaY = this.lastTouchCenter.y - currentCenter.y;
407
+ this.emit("translate", deltaX, deltaY);
408
+ }
409
+ if (this.gestureType === "zoom" || this.gestureType === "unknown") {
410
+ if (this.lastTouchDistance > 0) {
411
+ const scale = currentDistance / this.lastTouchDistance;
412
+ this.emit("scale", scale);
413
+ }
414
+ }
415
+ this.lastTouchDistance = currentDistance;
416
+ this.lastTouchCenter = currentCenter;
417
+ }
418
+ });
419
+ _defineProperty4(this, "handleTouchEnd", (evt) => {
420
+ evt.preventDefault();
421
+ if (evt.touches.length < 2) {
422
+ this.isPinching = false;
423
+ this.lastTouchDistance = 0;
424
+ this.resetGestureDetection();
425
+ }
426
+ });
427
+ _defineProperty4(this, "getDistance", (touch1, touch2) => {
428
+ const dx = touch1.clientX - touch2.clientX;
429
+ const dy = touch1.clientY - touch2.clientY;
430
+ return Math.sqrt(dx * dx + dy * dy);
431
+ });
432
+ _defineProperty4(this, "getCenter", (touch1, touch2) => {
433
+ return {
434
+ x: (touch1.clientX + touch2.clientX) / 2,
435
+ y: (touch1.clientY + touch2.clientY) / 2
436
+ };
437
+ });
438
+ _defineProperty4(this, "detectGesture", (touch1, touch2) => {
439
+ const center = this.getCenter(touch1, touch2);
440
+ const distance = this.getDistance(touch1, touch2);
441
+ this.touchEventCache.push({
442
+ x: center.x,
443
+ y: center.y,
444
+ distance
445
+ });
446
+ if (this.touchEventCache.length > 3) {
447
+ this.touchEventCache.shift();
448
+ }
449
+ if (this.touchEventCache.length < 3) {
450
+ return "unknown";
451
+ }
452
+ const events = this.touchEventCache;
453
+ let xDirectionSame = true;
454
+ let yDirectionSame = true;
455
+ const xDirection1 = Math.sign(events[1].x - events[0].x);
456
+ const xDirection2 = Math.sign(events[2].x - events[1].x);
457
+ if (xDirection1 !== 0 && xDirection2 !== 0 && xDirection1 !== xDirection2) {
458
+ xDirectionSame = false;
459
+ }
460
+ const yDirection1 = Math.sign(events[1].y - events[0].y);
461
+ const yDirection2 = Math.sign(events[2].y - events[1].y);
462
+ if (yDirection1 !== 0 && yDirection2 !== 0 && yDirection1 !== yDirection2) {
463
+ yDirectionSame = false;
464
+ }
465
+ if (xDirectionSame || yDirectionSame) {
466
+ const movementThreshold = 10;
467
+ const totalXMovement = Math.abs(events[2].x - events[0].x);
468
+ const totalYMovement = Math.abs(events[2].y - events[0].y);
469
+ if (totalXMovement > movementThreshold || totalYMovement > movementThreshold) {
470
+ return "drag";
471
+ }
472
+ }
473
+ const totalDistanceChange = Math.abs(events[2].distance - events[0].distance);
474
+ const zoomThreshold = 15;
475
+ if (totalDistanceChange > zoomThreshold) {
476
+ return "zoom";
477
+ }
478
+ return "unknown";
479
+ });
480
+ _defineProperty4(this, "resetGestureDetection", () => {
481
+ this.touchEventCache = [];
482
+ this.gestureType = "unknown";
483
+ this.gestureDetectionComplete = false;
484
+ });
374
485
  this.view = view;
375
486
  this.view.addEventListener("wheel", this.handleWheel, {
376
487
  passive: false,
377
488
  capture: true
378
489
  });
490
+ console.log(this.view);
491
+ this.view.addEventListener("touchstart", this.handleTouchStart, {
492
+ passive: false,
493
+ capture: true
494
+ });
495
+ this.view.addEventListener("touchmove", this.handleTouchMove, {
496
+ passive: false,
497
+ capture: true
498
+ });
499
+ this.view.addEventListener("touchend", this.handleTouchEnd, {
500
+ passive: false,
501
+ capture: true
502
+ });
379
503
  }
380
504
  dispose() {
381
505
  this.view.removeEventListener("wheel", this.handleWheel);
506
+ this.view.removeEventListener("touchstart", this.handleTouchStart);
507
+ this.view.removeEventListener("touchmove", this.handleTouchMove);
508
+ this.view.removeEventListener("touchend", this.handleTouchEnd);
382
509
  this.removeAllListeners();
383
510
  }
384
511
  };
@@ -881,11 +1008,12 @@ var ImageryDocApplication = class extends AbstractApplication {
881
1008
  whiteboardApp.appId = `${this.appId}_wb`;
882
1009
  whiteboardApp.userId = this.userId;
883
1010
  whiteboardApp.userManager = this.userManager;
1011
+ whiteboardApp.writableManager = this.writableManager;
884
1012
  whiteboardApp.deleteSubDoc = this.deleteSubDoc;
885
1013
  await whiteboardApp.initialize({
886
1014
  width: -1,
887
1015
  height: -1,
888
- maxScaleRatio: 1
1016
+ maxScaleRatio: -1
889
1017
  });
890
1018
  this.whiteboardApp = whiteboardApp;
891
1019
  this.whiteboard = whiteboardApp.emitter;
@@ -919,16 +1047,16 @@ var ImageryDocApplication = class extends AbstractApplication {
919
1047
  this.images[i] = new LazyImage(image.src, image.width, image.height);
920
1048
  this.container.append(this.images[i]);
921
1049
  if (option.displayMode === "single") {
922
- this.whiteboard.addPage(`doc_${i}`);
1050
+ this.whiteboardApp.addPage(`doc_${i}`, true);
923
1051
  }
924
1052
  i += 1;
925
1053
  }
926
1054
  if (option.displayMode === "continuous") {
927
- this.whiteboard.addPage("doc_continuous");
1055
+ this.whiteboardApp.addPage("doc_continuous", true);
928
1056
  this.whiteboard.gotoPage("doc_continuous");
929
1057
  }
930
1058
  this.whiteboard.setViewModeToFree();
931
- this.permissions = new ImageryDocPermissions(this.userManager, (userId) => {
1059
+ this.permissions = new ImageryDocPermissions(this.writableManager, this.userManager, (userId) => {
932
1060
  return this.userMap(userId);
933
1061
  });
934
1062
  this.permissions.on("change", (userId, flags, value) => {
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../src/ImageryDoc.ts", "../src/ImageryDocApplication.ts", "../src/LazyImage.ts", "../src/ImageryDocPermissions.ts", "../src/icons.ts", "../src/FooterView.ts", "../src/InfinityScroll.ts", "../src/Container.ts", "../src/ContinuousContainer.ts", "../src/SingleContainer.ts"],
4
- "sourcesContent": ["function _defineProperty(e, r, t) { return (r = _toPropertyKey(r)) in e ? Object.defineProperty(e, r, { value: t, enumerable: !0, configurable: !0, writable: !0 }) : e[r] = t, e; }\nfunction _toPropertyKey(t) { var i = _toPrimitive(t, \"string\"); return \"symbol\" == typeof i ? i : i + \"\"; }\nfunction _toPrimitive(t, r) { if (\"object\" != typeof t || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || \"default\"); if (\"object\" != typeof i) return i; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (\"string\" === r ? String : Number)(t); }\nimport EventEmitter from 'eventemitter3';\nexport class ImageryDoc extends EventEmitter {\n constructor() {\n super(...arguments);\n _defineProperty(this, \"view\", void 0);\n /**\n * \u5E95\u90E8\u64CD\u4F5C\u680F\n */\n _defineProperty(this, \"footView\", void 0);\n _defineProperty(this, \"permissions\", void 0);\n _defineProperty(this, \"window\", undefined);\n /**\n * \u5F53\u524D\u9875\u9762\u7D22\u5F15, \u4ECE 0 \u5F00\u59CB\n */\n _defineProperty(this, \"pageIndex\", void 0);\n /**\n * \u603B\u9875\u6570\n */\n _defineProperty(this, \"pageCount\", void 0);\n /**\n * \u5207\u6362\u5230\u53C2\u6570\u6307\u5B9A\u9875\u9762, index \u4ECE 0 \u5F00\u59CB\n * @param {number} index \u9875\u9762\u7D22\u5F15\n */\n _defineProperty(this, \"goto\", void 0);\n /**\n * \u83B7\u53D6\u56FE\u7247\u5185\u5BB9, base64 \u7F16\u7801\n * @param {number} index \u9875\u9762\u7D22\u5F15\n */\n _defineProperty(this, \"imgContent\", void 0);\n /**\n * \u83B7\u53D6\u56FE\u7247\u5C3A\u5BF8\n * @param {number} index \u9875\u9762\u7D22\u5F15\n */\n _defineProperty(this, \"imgSize\", void 0);\n }\n}", "function _defineProperty(e, r, t) { return (r = _toPropertyKey(r)) in e ? Object.defineProperty(e, r, { value: t, enumerable: !0, configurable: !0, writable: !0 }) : e[r] = t, e; }\nfunction _toPropertyKey(t) { var i = _toPrimitive(t, \"string\"); return \"symbol\" == typeof i ? i : i + \"\"; }\nfunction _toPrimitive(t, r) { if (\"object\" != typeof t || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || \"default\"); if (\"object\" != typeof i) return i; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (\"string\" === r ? String : Number)(t); }\nimport { AbstractApplication } from '@netless/forge-room';\nimport { WhiteboardApplication, WhiteboardPermissionFlag } from '@netless/forge-whiteboard';\nimport { ImageryDoc } from './ImageryDoc';\nimport { LazyImage } from './LazyImage';\nimport { ImageryDocPermissionFlag, ImageryDocPermissions } from './ImageryDocPermissions';\nimport { FooterView } from './FooterView';\nimport { ContinuousContainer } from './ContinuousContainer';\nimport { SingleContainer } from './SingleContainer';\nexport const IMAGERY_DOC_APP_NAME = 'imagery_doc';\n\n/**\n * \u9700\u7528\u6237\u81EA\u884C\u4FDD\u8BC1 ImageryDocApplication.view \u7684\u9AD8\u5BBD\u6BD4\u4E00\u81F4\n */\nexport class ImageryDocApplication extends AbstractApplication {\n constructor() {\n super();\n _defineProperty(this, \"name\", IMAGERY_DOC_APP_NAME);\n _defineProperty(this, \"emitter\", new ImageryDoc());\n _defineProperty(this, \"whiteboardApp\", void 0);\n _defineProperty(this, \"whiteboard\", void 0);\n _defineProperty(this, \"container\", void 0);\n _defineProperty(this, \"rootView\", document.createElement('div'));\n _defineProperty(this, \"contentContainer\", document.createElement('div'));\n _defineProperty(this, \"whiteboardContainer\", document.createElement('div'));\n _defineProperty(this, \"footerContainer\", document.createElement('div'));\n _defineProperty(this, \"permissions\", void 0);\n _defineProperty(this, \"footer\", void 0);\n _defineProperty(this, \"images\", []);\n this.rootView.setAttribute('data-forge-app', 'imagery-doc');\n this.rootView.style.overflow = 'hidden';\n this.rootView.style.userSelect = 'none';\n this.rootView.style.backgroundColor = '#f9f9fc';\n this.contentContainer.style.width = '100%';\n this.contentContainer.style.height = '100%';\n this.contentContainer.style.display = 'flex';\n this.contentContainer.style.flexDirection = 'column';\n this.footer = new FooterView(this.emitter);\n this.rootView.appendChild(this.contentContainer);\n this.emitter.on('renderStart', pageIndex => {\n this.footer.prevPageState(pageIndex !== 0);\n this.footer.nextPageState(pageIndex !== this.images.length - 1);\n });\n\n // eslint-disable-next-line @typescript-eslint/no-this-alias\n const that = this;\n Object.defineProperty(this.emitter, 'footView', {\n get() {\n return that.footerContainer;\n }\n });\n Object.defineProperty(this.emitter, 'view', {\n get() {\n return that.rootView;\n }\n });\n Object.defineProperty(this.emitter, 'permissions', {\n get() {\n return that.permissions;\n }\n });\n Object.defineProperty(this.emitter, 'pageIndex', {\n get() {\n return that.container.pageIndex;\n }\n });\n Object.defineProperty(this.emitter, 'pageCount', {\n get() {\n return that.images.length;\n }\n });\n Object.defineProperty(this.emitter, 'goto', {\n get() {\n return index => {\n if (that.permissions.hasPermission(ImageryDocPermissionFlag.switchPage)) {\n that.container.goto(index);\n }\n };\n }\n });\n Object.defineProperty(this.emitter, 'imgContent', {\n get() {\n return index => {\n return that.images[index].getImgContent();\n };\n }\n });\n Object.defineProperty(this.emitter, 'imgSize', {\n get() {\n return index => {\n return {\n width: that.images[index].width,\n height: that.images[index].height\n };\n };\n }\n });\n }\n async initialize(option) {\n const whiteboardApp = new WhiteboardApplication();\n // @ts-ignore\n whiteboardApp.appDoc = this.appDoc;\n // @ts-ignore\n whiteboardApp.appId = `${this.appId}_wb`;\n // @ts-ignore\n whiteboardApp.userId = this.userId;\n // @ts-ignore\n whiteboardApp.userManager = this.userManager;\n // @ts-ignore\n whiteboardApp.deleteSubDoc = this.deleteSubDoc;\n await whiteboardApp.initialize({\n width: -1,\n height: -1,\n maxScaleRatio: 1\n });\n this.whiteboardApp = whiteboardApp;\n this.whiteboard = whiteboardApp.emitter;\n this.whiteboard.enableCameraBoundaryHighlight = false;\n this.whiteboard.enableCameraByMouse = false;\n this.whiteboard.enableCameraByTouch = false;\n this.whiteboard.view.style.width = '100%';\n this.whiteboard.view.style.height = '100%';\n this.whiteboard.view.style.position = 'absolute';\n this.whiteboard.view.style.top = '0';\n this.whiteboard.view.style.left = '0';\n this.whiteboard.setCanvasBackgroundColor('#f0f0f000');\n if (option.displayMode === 'single') {\n this.container = new SingleContainer(this.getMap('single-container'), whiteboardApp, this.whiteboardContainer, this.emitter);\n } else {\n this.container = new ContinuousContainer(this.getMap('continuous-container'), whiteboardApp, this.whiteboardContainer, this.emitter);\n }\n this.whiteboardContainer.style.position = 'relative';\n this.whiteboardContainer.style.flex = '1 1 auto';\n this.whiteboardContainer.style.overflow = 'hidden';\n this.whiteboardContainer.appendChild(this.container.view);\n this.whiteboardContainer.appendChild(this.whiteboard.view);\n this.contentContainer.appendChild(this.whiteboardContainer);\n this.contentContainer.appendChild(this.footerContainer);\n this.footerContainer.appendChild(this.footer.root);\n let i = 0;\n this.whiteboard.permissions.addPermission(WhiteboardPermissionFlag.mainView);\n this.whiteboard.setViewModeToMain();\n while (i < option.images.length) {\n const image = option.images[i];\n this.images[i] = new LazyImage(image.src, image.width, image.height);\n this.container.append(this.images[i]);\n if (option.displayMode === 'single') {\n this.whiteboard.addPage(`doc_${i}`);\n }\n i += 1;\n }\n if (option.displayMode === 'continuous') {\n this.whiteboard.addPage('doc_continuous');\n this.whiteboard.gotoPage('doc_continuous');\n }\n this.whiteboard.setViewModeToFree();\n this.permissions = new ImageryDocPermissions(this.userManager, userId => {\n return this.userMap(userId);\n });\n this.permissions.on('change', (userId, flags, value) => {\n this.emitter.emit('permissionChange', userId, flags, value);\n });\n this.permissions.setPermission(ImageryDocPermissionFlag.all);\n this.whiteboardApp.disableViewModel();\n this.container.init();\n this.whiteboard.permissions.removePermission(WhiteboardPermissionFlag.mainView);\n if (option.inheritWhiteboardId) {\n whiteboardApp.linkToWhiteboard(option.inheritWhiteboardId);\n }\n this.emitter.emit('ready');\n return Promise.resolve(undefined);\n }\n userMap(userId) {\n return this.getMap(`user/${userId}`);\n }\n async dispose(removeSubDoc) {\n if (removeSubDoc) {\n this.deleteSubDoc(this.appId);\n }\n await this.whiteboardApp.dispose(removeSubDoc);\n this.whiteboardApp.emitter.view.remove();\n this.container.dispose();\n this.permissions.dispose();\n this.emitter.removeAllListeners();\n return Promise.resolve(undefined);\n }\n}\n\n// @ts-ignore\n_defineProperty(ImageryDocApplication, \"applicationName\", IMAGERY_DOC_APP_NAME);\nwindow.__ImageryDocApplication = ImageryDocApplication;", "function _defineProperty(e, r, t) { return (r = _toPropertyKey(r)) in e ? Object.defineProperty(e, r, { value: t, enumerable: !0, configurable: !0, writable: !0 }) : e[r] = t, e; }\nfunction _toPropertyKey(t) { var i = _toPrimitive(t, \"string\"); return \"symbol\" == typeof i ? i : i + \"\"; }\nfunction _toPrimitive(t, r) { if (\"object\" != typeof t || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || \"default\"); if (\"object\" != typeof i) return i; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (\"string\" === r ? String : Number)(t); }\nimport { kvStore } from '@netless/forge-room';\nexport class LazyImage {\n constructor(src, width, height) {\n _defineProperty(this, \"view\", void 0);\n _defineProperty(this, \"width\", void 0);\n _defineProperty(this, \"height\", void 0);\n _defineProperty(this, \"src\", void 0);\n this.src = src;\n this.width = width;\n this.height = height;\n this.view = document.createElement('div');\n this.view.setAttribute('data-forge-src', src);\n this.view.style.width = `${width}px`;\n this.view.style.height = `${height}px`;\n this.view.style.transformOrigin = '0 0';\n }\n scale(scale) {\n // this.localScale = scale;\n this.view.style.width = `${this.width * scale}px`;\n this.view.style.height = `${this.height * scale}px`;\n // this.img.style.width = \"100%\";\n }\n async getImgContent() {\n let base64Data = null;\n try {\n base64Data = await kvStore.getItem(this.src);\n } catch {\n // ignore\n }\n if (base64Data) {\n return base64Data;\n }\n const response = await fetch(this.src);\n const blob = await response.blob();\n return new Promise((resolve, reject) => {\n const reader = new FileReader();\n reader.onload = _e => {\n kvStore.setItem(this.src, reader.result);\n resolve(reader.result);\n };\n reader.onerror = () => {\n reject(reader.error);\n };\n reader.readAsDataURL(blob);\n });\n }\n async prepare() {\n if (this.view.children.length > 0) {\n return;\n }\n const base64Data = await this.getImgContent();\n const img = document.createElement('img');\n img.src = base64Data;\n img.style.width = '100%';\n if (this.view.children.length === 0) {\n this.view.appendChild(img);\n }\n }\n}", "import { AbstractApplicationPermissions } from '@netless/forge-room';\nexport let ImageryDocPermissionFlag = function (ImageryDocPermissionFlag) {\n /**\n * \u6CA1\u6709\u4EFB\u4F55\u6743\u9650, \u53EA\u80FD\u540C\u6B65\u4ED6\u4EBA\u7684\u64CD\u4F5C\n */\n ImageryDocPermissionFlag[ImageryDocPermissionFlag[\"none\"] = 0] = \"none\";\n /**\n * \u53EF\u4EE5\u5207\u6362\u9875\u9762\n */\n ImageryDocPermissionFlag[ImageryDocPermissionFlag[\"switchPage\"] = 1] = \"switchPage\";\n /**\n * \u53EF\u4EE5\u64CD\u4F5C\u76F8\u673A, \u5305\u62EC\u7F29\u653E, \u5E73\u79FB\n */\n ImageryDocPermissionFlag[ImageryDocPermissionFlag[\"camera\"] = 2] = \"camera\";\n /**\n * \u53EF\u4EE5\u64CD\u4F5C\u4FA7\u8FB9\u680F\n */\n ImageryDocPermissionFlag[ImageryDocPermissionFlag[\"sideBar\"] = 4] = \"sideBar\";\n /**\n * \u62E5\u6709\u6240\u6709\u6743\u9650\n */\n ImageryDocPermissionFlag[ImageryDocPermissionFlag[\"all\"] = ImageryDocPermissionFlag.switchPage | ImageryDocPermissionFlag.camera | ImageryDocPermissionFlag.sideBar] = \"all\";\n return ImageryDocPermissionFlag;\n}({});\nexport class ImageryDocPermissions extends AbstractApplicationPermissions {\n /**\n * \u89E3\u6790\u6743\u9650\u5217\u8868\u7EC4\u5408\n * @param {number} value - \u6743\u9650\u6570\u5B57\u503C\n * @return {WhiteboardPermissionFlag[]} - \u6743\u9650\u5217\u8868\n */\n resolveFlags(value) {\n return [ImageryDocPermissionFlag.switchPage, ImageryDocPermissionFlag.sideBar, ImageryDocPermissionFlag.camera].filter(v => (v & value) !== 0);\n }\n}", "const chevronLeft = color => `<svg style=\"width:100%;height:100%;padding:2px;box-sizing:border-box;\" viewBox=\"0 0 12.3926 16.9629\"><g><rect height=\"16.9629\" opacity=\"0\" width=\"12.3926\" x=\"0\" y=\"0\"/><path d=\"M0 8.47656C0 8.7207 0.0878906 8.93555 0.273438 9.12109L8.01758 16.6895C8.18359 16.8652 8.39844 16.9531 8.65234 16.9531C9.16016 16.9531 9.55078 16.5723 9.55078 16.0645C9.55078 15.8105 9.44336 15.5957 9.28711 15.4297L2.17773 8.47656L9.28711 1.52344C9.44336 1.35742 9.55078 1.13281 9.55078 0.888672C9.55078 0.380859 9.16016 0 8.65234 0C8.39844 0 8.18359 0.0878906 8.01758 0.253906L0.273438 7.83203C0.0878906 8.00781 0 8.23242 0 8.47656Z\" fill=\"${color}\"/></g></svg>`;\nconst chevronRight = color => `<svg style=\"width:100%;height:100%;padding:2px;box-sizing:border-box;\" viewBox=\"0 0 11.6895 16.9629\"><g><rect height=\"16.9629\" opacity=\"0\" width=\"11.6895\" x=\"0\" y=\"0\"/><path d=\"M11.6895 8.47656C11.6895 8.23242 11.5918 8.00781 11.4062 7.83203L3.67188 0.253906C3.49609 0.0878906 3.28125 0 3.02734 0C2.5293 0 2.13867 0.380859 2.13867 0.888672C2.13867 1.13281 2.23633 1.35742 2.39258 1.52344L9.50195 8.47656L2.39258 15.4297C2.23633 15.5957 2.13867 15.8105 2.13867 16.0645C2.13867 16.5723 2.5293 16.9531 3.02734 16.9531C3.28125 16.9531 3.49609 16.8652 3.67188 16.6895L11.4062 9.12109C11.5918 8.93555 11.6895 8.7207 11.6895 8.47656Z\" fill=\"${color}\"/></g></svg>`;\nconst sideBar = color => `<svg style=\"width:100%;height:100%;padding:2px;box-sizing:border-box;\" viewBox=\"0 0 23.3887 17.998\"><g><rect height=\"17.998\" opacity=\"0\" width=\"23.3887\" x=\"0\" y=\"0\"/><path d=\"M3.06641 17.998L19.9609 17.998C22.0117 17.998 23.0273 16.9824 23.0273 14.9707L23.0273 3.04688C23.0273 1.03516 22.0117 0.0195312 19.9609 0.0195312L3.06641 0.0195312C1.02539 0.0195312 0 1.02539 0 3.04688L0 14.9707C0 16.9922 1.02539 17.998 3.06641 17.998ZM3.08594 16.4258C2.10938 16.4258 1.57227 15.9082 1.57227 14.8926L1.57227 3.125C1.57227 2.10938 2.10938 1.5918 3.08594 1.5918L19.9414 1.5918C20.9082 1.5918 21.4551 2.10938 21.4551 3.125L21.4551 14.8926C21.4551 15.9082 20.9082 16.4258 19.9414 16.4258ZM7.44141 16.7285L8.97461 16.7285L8.97461 1.29883L7.44141 1.29883ZM5.56641 5.21484C5.85938 5.21484 6.12305 4.95117 6.12305 4.66797C6.12305 4.375 5.85938 4.12109 5.56641 4.12109L3.4668 4.12109C3.17383 4.12109 2.91992 4.375 2.91992 4.66797C2.91992 4.95117 3.17383 5.21484 3.4668 5.21484ZM5.56641 7.74414C5.85938 7.74414 6.12305 7.48047 6.12305 7.1875C6.12305 6.89453 5.85938 6.65039 5.56641 6.65039L3.4668 6.65039C3.17383 6.65039 2.91992 6.89453 2.91992 7.1875C2.91992 7.48047 3.17383 7.74414 3.4668 7.74414ZM5.56641 10.2637C5.85938 10.2637 6.12305 10.0195 6.12305 9.72656C6.12305 9.43359 5.85938 9.17969 5.56641 9.17969L3.4668 9.17969C3.17383 9.17969 2.91992 9.43359 2.91992 9.72656C2.91992 10.0195 3.17383 10.2637 3.4668 10.2637Z\" fill=\"${color}\"/></g></svg>`;\nexport const Icons = {\n chevronLeft,\n chevronRight,\n sideBar\n};", "function _defineProperty(e, r, t) { return (r = _toPropertyKey(r)) in e ? Object.defineProperty(e, r, { value: t, enumerable: !0, configurable: !0, writable: !0 }) : e[r] = t, e; }\nfunction _toPropertyKey(t) { var i = _toPrimitive(t, \"string\"); return \"symbol\" == typeof i ? i : i + \"\"; }\nfunction _toPrimitive(t, r) { if (\"object\" != typeof t || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || \"default\"); if (\"object\" != typeof i) return i; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (\"string\" === r ? String : Number)(t); }\nimport { Icons } from './icons';\nconst EM_COLOR = '#8C8C8C';\nexport class FooterView {\n constructor(imageryDoc) {\n _defineProperty(this, \"root\", void 0);\n _defineProperty(this, \"prevPage\", void 0);\n _defineProperty(this, \"nextPage\", void 0);\n _defineProperty(this, \"sideBarToggle\", void 0);\n _defineProperty(this, \"sideBarContainer\", document.createElement('div'));\n _defineProperty(this, \"navigator\", document.createElement('div'));\n _defineProperty(this, \"navigatorIndex\", document.createElement('span'));\n _defineProperty(this, \"navigatorTotal\", document.createElement('span'));\n _defineProperty(this, \"isSlideBarVisible\", false);\n _defineProperty(this, \"imageryDoc\", void 0);\n _defineProperty(this, \"updateIndex\", () => {\n this.navigatorIndex.textContent = `${this.imageryDoc.pageIndex + 1}`;\n });\n _defineProperty(this, \"updateTotal\", () => {\n this.navigatorTotal.textContent = `/${this.imageryDoc.pageCount}`;\n });\n _defineProperty(this, \"handleSideBarClick\", evt => {\n const target = evt.target;\n const targetIndex = target.getAttribute('data-doc-index');\n if (targetIndex) {\n this.imageryDoc.goto(parseInt(targetIndex, 10));\n }\n });\n this.imageryDoc = imageryDoc;\n this.root = document.createElement('div');\n this.root.style.height = '24px';\n this.root.style.zIndex = '2';\n this.root.style.display = 'flex';\n this.root.style.alignItems = 'center';\n this.root.style.backgroundColor = '#fff';\n this.root.style.borderTop = '1px solid #f0f0f0';\n this.prevPage = this.createIcon(Icons.chevronLeft(EM_COLOR), '18px', () => {\n this.imageryDoc.goto(this.imageryDoc.pageIndex - 1);\n });\n this.nextPage = this.createIcon(Icons.chevronRight(EM_COLOR), '18px', () => {\n this.imageryDoc.goto(this.imageryDoc.pageIndex + 1);\n });\n this.sideBarToggle = this.createIcon(Icons.sideBar(EM_COLOR), '20px', () => {\n this.createSideBar();\n this.isSlideBarVisible = !this.isSlideBarVisible;\n if (this.isSlideBarVisible) {\n this.sideBarContainer.style.display = 'block';\n } else {\n this.sideBarContainer.style.display = 'none';\n }\n });\n this.root.appendChild(this.sideBarToggle);\n this.root.appendChild(this.createSpacer());\n this.root.appendChild(this.prevPage);\n this.root.appendChild(this.nextPage);\n this.root.appendChild(this.createSpacer());\n this.createNavigator();\n this.imageryDoc.addListener('renderEnd', this.updateIndex);\n this.imageryDoc.addListener('ready', this.updateTotal);\n }\n prevPageState(enable) {\n if (enable) {\n this.prevPage.style.pointerEvents = 'all';\n this.prevPage.style.opacity = '1';\n } else {\n this.prevPage.style.pointerEvents = 'none';\n this.prevPage.style.opacity = '0.5';\n }\n }\n nextPageState(enable) {\n if (enable) {\n this.nextPage.style.pointerEvents = 'all';\n this.nextPage.style.opacity = '1';\n } else {\n this.nextPage.style.pointerEvents = 'none';\n this.nextPage.style.opacity = '0.5';\n }\n }\n createSpacer() {\n const div = document.createElement('div');\n div.style.flex = '1 1 auto';\n return div;\n }\n createIcon(svgContent, size, action) {\n const icon = document.createElement('div');\n icon.style.width = size;\n icon.style.height = size;\n icon.style.borderRadius = '2px';\n icon.style.margin = '6px';\n icon.innerHTML = svgContent;\n icon.addEventListener('click', () => {\n action();\n });\n icon.addEventListener('mouseover', () => {\n icon.style.backgroundColor = '#f0f0f0';\n });\n icon.addEventListener('mouseout', () => {\n icon.style.backgroundColor = 'transparent';\n });\n return icon;\n }\n createNavigator() {\n this.navigator.style.height = '24px';\n this.navigator.style.padding = '12px';\n this.navigator.style.display = 'flex';\n this.navigator.style.alignItems = 'center';\n this.navigator.style.justifyContent = 'center';\n this.navigator.style.fontSize = '12px';\n this.navigator.style.color = '#585858';\n this.navigatorIndex.textContent = `${this.imageryDoc.pageIndex + 1}`;\n this.navigatorTotal.textContent = `/${this.imageryDoc.pageCount}`;\n this.navigator.appendChild(this.navigatorIndex);\n this.navigator.appendChild(this.navigatorTotal);\n this.root.appendChild(this.navigator);\n }\n createSideBar() {\n if (this.imageryDoc.pageCount === 0) {\n return;\n }\n if (this.root.contains(this.sideBarContainer)) {\n return;\n }\n this.sideBarContainer.style.width = '24%';\n this.sideBarContainer.style.maxWidth = '180px';\n this.sideBarContainer.style.height = 'calc(100% - 24px)';\n this.sideBarContainer.style.position = 'absolute';\n this.sideBarContainer.style.bottom = '25px';\n this.sideBarContainer.style.left = '0';\n this.sideBarContainer.style.fontSize = '0px';\n this.sideBarContainer.style.overflow = 'auto';\n this.sideBarContainer.style.backgroundColor = '#EFEFEF';\n this.root.appendChild(this.sideBarContainer);\n for (let i = 0, l = this.imageryDoc.pageCount; i < l; i++) {\n const reviewPage = document.createElement('div');\n reviewPage.style.width = '100%';\n reviewPage.style.marginTop = '12px';\n const reviewIndex = document.createElement('div');\n reviewIndex.style.cssText = 'font-size:12px;width:100%;text-align:center;height:24px;line-height:24px;color:#585858';\n reviewIndex.textContent = `${i + 1}`;\n const reviewImg = document.createElement('img');\n reviewImg.setAttribute('data-doc-index', `${i}`);\n reviewImg.style.cssText = 'width:80%;margin:0 10%;box-shadow:1px 1px 5px #f9f9fc';\n this.imageryDoc.imgContent(i).then(base64Data => {\n reviewImg.src = base64Data;\n });\n reviewPage.appendChild(reviewImg);\n reviewPage.appendChild(reviewIndex);\n this.sideBarContainer.appendChild(reviewPage);\n }\n this.sideBarContainer.addEventListener('click', this.handleSideBarClick);\n }\n}", "function _defineProperty(e, r, t) { return (r = _toPropertyKey(r)) in e ? Object.defineProperty(e, r, { value: t, enumerable: !0, configurable: !0, writable: !0 }) : e[r] = t, e; }\nfunction _toPropertyKey(t) { var i = _toPrimitive(t, \"string\"); return \"symbol\" == typeof i ? i : i + \"\"; }\nfunction _toPrimitive(t, r) { if (\"object\" != typeof t || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || \"default\"); if (\"object\" != typeof i) return i; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (\"string\" === r ? String : Number)(t); }\nimport EventEmitter from 'eventemitter3';\nexport class InfinityScroll extends EventEmitter {\n constructor(view) {\n super();\n _defineProperty(this, \"view\", void 0);\n _defineProperty(this, \"lastDelta\", {\n x: 0,\n y: 0\n });\n _defineProperty(this, \"lastTriggerTime\", 0);\n _defineProperty(this, \"handleWheel\", evt => {\n evt.preventDefault();\n evt.stopImmediatePropagation();\n evt.stopPropagation();\n if (Date.now() - this.lastTriggerTime < 32) {\n this.lastDelta.y += evt.deltaY;\n this.lastDelta.x += evt.deltaX;\n return;\n }\n if (evt.ctrlKey) {\n // \u53CC\u6307\u634F\u5408\n // @ts-ignore\n const wheelDelta = Math.sign(evt.wheelDelta || 100) * 120;\n const deltaY = evt.deltaY + this.lastDelta.y;\n let scale;\n if (deltaY > 0) {\n scale = Math.max(1 - Math.abs(deltaY / wheelDelta), 0.00000001);\n } else {\n // \u653E\u5927\n scale = 1 + Math.abs(deltaY / wheelDelta);\n }\n scale = Math.max(0.9, scale);\n scale = Math.min(1.1, scale);\n this.emit('scale', scale);\n } else {\n // \u62D6\u52A8\n const deltaX = this.lastDelta.x + evt.deltaX;\n const deltaY = this.lastDelta.y + evt.deltaY;\n this.emit('translate', deltaX, deltaY);\n }\n this.lastTriggerTime = Date.now();\n this.lastDelta = {\n x: 0,\n y: 0\n };\n });\n this.view = view;\n this.view.addEventListener('wheel', this.handleWheel, {\n passive: false,\n capture: true\n });\n }\n dispose() {\n this.view.removeEventListener('wheel', this.handleWheel);\n this.removeAllListeners();\n }\n}", "export const ContainerKeys = {\n scale: 'scale',\n translateX: 'translateX',\n translateY: 'translateY',\n pageIndex: 'pageIndex'\n};", "function _defineProperty(e, r, t) { return (r = _toPropertyKey(r)) in e ? Object.defineProperty(e, r, { value: t, enumerable: !0, configurable: !0, writable: !0 }) : e[r] = t, e; }\nfunction _toPropertyKey(t) { var i = _toPrimitive(t, \"string\"); return \"symbol\" == typeof i ? i : i + \"\"; }\nfunction _toPrimitive(t, r) { if (\"object\" != typeof t || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || \"default\"); if (\"object\" != typeof i) return i; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (\"string\" === r ? String : Number)(t); }\nimport { InfinityScroll } from './InfinityScroll';\nimport { ContainerKeys } from './Container';\nexport class ContinuousContainer {\n get translateY() {\n return this.map.get(ContainerKeys.translateY);\n }\n set translateY(value) {\n this.map.set(ContainerKeys.translateY, value);\n }\n get pageIndex() {\n const step = 1 / this.images.length;\n for (let i = 0; i < this.images.length; i++) {\n if (this.translateY < step * i && Math.abs(this.translateY - step * i) >= 0.0001) {\n return i - 1;\n }\n }\n return this.images.length - 1;\n }\n constructor(map, whiteboardApp, parentView, imageDoc) {\n _defineProperty(this, \"view\", void 0);\n _defineProperty(this, \"parentView\", void 0);\n _defineProperty(this, \"resizeObserver\", void 0);\n _defineProperty(this, \"images\", []);\n _defineProperty(this, \"scroll\", void 0);\n _defineProperty(this, \"map\", void 0);\n _defineProperty(this, \"whiteboardApp\", void 0);\n _defineProperty(this, \"imageDoc\", void 0);\n _defineProperty(this, \"totalHeight\", 0);\n _defineProperty(this, \"localScale\", 1);\n _defineProperty(this, \"handleMapChange\", event => {\n if (event.keysChanged.has(ContainerKeys.translateY)) {\n this.updateSyncedTransform();\n }\n });\n _defineProperty(this, \"handleResize\", () => {\n const bound = this.view.getBoundingClientRect();\n let scaledHeight = 0;\n for (const image of this.images) {\n const scale = bound.width / image.width;\n image.scale(scale);\n scaledHeight += image.height * scale;\n }\n this.localScale = scaledHeight / this.totalHeight;\n this.whiteboardApp.updateOptionSize(bound.width, bound.height);\n this.whiteboardApp.adjustByOutFrame(bound.width, bound.height);\n this.updateSyncedTransform();\n });\n _defineProperty(this, \"updateSyncedTransform\", () => {\n const bounds = this.view.getBoundingClientRect();\n const maxTy = this.totalHeight * this.localScale - bounds.height;\n let ty = this.translateY * this.totalHeight * this.localScale;\n ty = Math.min(ty, maxTy);\n ty = Math.max(ty, 0);\n this.view.style.transform = `translate(0, ${-ty}px)`;\n this.whiteboardApp.emitter.resetCamera();\n this.whiteboardApp.emitter.translateCamera(0, -ty);\n this.whiteboardApp.emitter.scaleCamera(this.localScale, 'top-left');\n this.handleGoto(this.pageIndex);\n });\n this.imageDoc = imageDoc;\n this.parentView = parentView;\n this.map = map;\n this.scroll = new InfinityScroll(this.parentView);\n this.whiteboardApp = whiteboardApp;\n this.view = document.createElement('div');\n this.view.style.width = '100%';\n this.view.style.height = '100%';\n this.view.style.position = 'absolute';\n this.view.style.top = '0';\n this.view.style.left = '0';\n this.view.style.transformOrigin = '0, 0';\n this.view.setAttribute('data-imagery-container', 'continuous');\n this.resizeObserver = new ResizeObserver(this.handleResize);\n this.resizeObserver.observe(this.view);\n this.whiteboardApp.updateInternalResizeObserverStatus(false);\n this.map.observe(this.handleMapChange);\n if (!this.map.has(ContainerKeys.scale)) {\n this.map.set(ContainerKeys.scale, 1);\n }\n if (!this.map.has(ContainerKeys.translateX)) {\n this.map.set(ContainerKeys.translateX, 0);\n }\n if (!this.map.has(ContainerKeys.translateY)) {\n this.map.set(ContainerKeys.translateY, 0);\n }\n this.scroll.on('translate', (dx, dy) => {\n this.handleTranslate(dx, dy);\n });\n }\n init() {\n this.updateSyncedTransform();\n this.totalHeight = this.images.reduce((prev, curr) => prev + curr.height, 0);\n }\n handleTranslate(dx, dy) {\n const dyNormalized = dy / this.totalHeight;\n let nextTy = this.translateY + dyNormalized;\n nextTy = Math.max(0, nextTy);\n nextTy = Math.min(1, nextTy);\n this.translateY = nextTy;\n }\n goto(index) {\n let nextIndex = Math.max(0, index);\n nextIndex = Math.min(this.images.length - 1, nextIndex);\n this.translateY = nextIndex / this.images.length;\n }\n append(image) {\n this.images.push(image);\n this.view.appendChild(image.view);\n }\n async handleGoto(index) {\n if (index < 0 || index >= this.images.length) {\n return;\n }\n this.imageDoc.emit('renderStart', index);\n const target = this.images[index];\n if (target) {\n await target.prepare();\n }\n this.imageDoc.emit('renderEnd', index);\n for (let i = index - 3; i <= index + 3; i++) {\n const img = this.images[i];\n if (img) {\n img.prepare();\n }\n }\n }\n dispose() {\n this.resizeObserver.disconnect();\n this.scroll.dispose();\n }\n}", "function _defineProperty(e, r, t) { return (r = _toPropertyKey(r)) in e ? Object.defineProperty(e, r, { value: t, enumerable: !0, configurable: !0, writable: !0 }) : e[r] = t, e; }\nfunction _toPropertyKey(t) { var i = _toPrimitive(t, \"string\"); return \"symbol\" == typeof i ? i : i + \"\"; }\nfunction _toPrimitive(t, r) { if (\"object\" != typeof t || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || \"default\"); if (\"object\" != typeof i) return i; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (\"string\" === r ? String : Number)(t); }\nimport { InfinityScroll } from './InfinityScroll';\nimport { ContainerKeys } from './Container';\nimport { removeObserver } from '@netless/forge-room';\nexport const delay = value => new Promise(resolve => setTimeout(resolve, value));\nasync function waitUntil(fn, timeout) {\n let start = Date.now();\n while (!fn() && Date.now() - start < timeout) {\n await delay(50);\n start = Date.now();\n }\n}\nexport class SingleContainer {\n get scale() {\n return this.map.get(ContainerKeys.scale);\n }\n set scale(value) {\n this.map.set(ContainerKeys.scale, value);\n }\n get translateX() {\n return this.map.get(ContainerKeys.translateX);\n }\n set translateX(value) {\n this.map.set(ContainerKeys.translateX, value);\n }\n get translateY() {\n return this.map.get(ContainerKeys.translateY);\n }\n set translateY(value) {\n this.map.set(ContainerKeys.translateY, value);\n }\n get pageIndex() {\n return this.map.get(ContainerKeys.pageIndex);\n }\n constructor(map, whiteboardApp, parentView, imageDoc) {\n _defineProperty(this, \"view\", void 0);\n _defineProperty(this, \"parentView\", void 0);\n _defineProperty(this, \"resizeObserver\", void 0);\n _defineProperty(this, \"images\", []);\n _defineProperty(this, \"currentImage\", null);\n _defineProperty(this, \"scroll\", void 0);\n _defineProperty(this, \"map\", void 0);\n _defineProperty(this, \"whiteboardApp\", void 0);\n _defineProperty(this, \"imageDoc\", void 0);\n _defineProperty(this, \"handleMapChange\", event => {\n if (event.keysChanged.has(ContainerKeys.scale) || event.keysChanged.has(ContainerKeys.translateX) || event.keysChanged.has(ContainerKeys.translateY)) {\n this.updateSyncedTransform();\n }\n if (event.keysChanged.has(ContainerKeys.pageIndex)) {\n this.handleGoto(this.pageIndex).catch(_error => {\n // todo error\n });\n }\n });\n _defineProperty(this, \"handleResize\", () => {\n const bound = this.parentView.getBoundingClientRect();\n if (this.currentImage) {\n let scale = bound.width / this.currentImage.width;\n if (this.currentImage.height * scale > bound.height) {\n scale = bound.height / this.currentImage.height;\n }\n const tx = Math.round((bound.width - this.currentImage.width * scale) / 2 / scale);\n const ty = Math.round((bound.height - this.currentImage.height * scale) / 2 / scale);\n this.currentImage.view.style.transform = `scale(${scale}) translate(${tx}px, ${ty}px)`;\n this.updateSyncedTransform();\n this.resetTranslateOnResize();\n }\n });\n _defineProperty(this, \"updateSyncedTransform\", () => {\n if (!this.currentImage) {\n return;\n }\n const parentBounds = this.parentView.getBoundingClientRect();\n const tx = -this.translateX * parentBounds.width / this.scale;\n const ty = -this.translateY * parentBounds.height / this.scale;\n this.view.style.transform = `scale(${this.scale}) translate(${tx}px, ${ty}px)`;\n this.whiteboardApp.adjustByOutFrame(parentBounds.width * this.scale, parentBounds.height * this.scale);\n const whiteboardSize = this.whiteboardApp.getViewSize();\n const whiteboardScale = this.whiteboardApp.getInherentScale();\n this.whiteboardApp.emitter.resetCamera();\n this.whiteboardApp.emitter.translateCamera(-this.translateX * whiteboardSize[0] / whiteboardScale / this.scale, -this.translateY * whiteboardSize[1] / whiteboardScale / this.scale);\n });\n this.imageDoc = imageDoc;\n this.parentView = parentView;\n this.map = map;\n this.scroll = new InfinityScroll(this.parentView);\n this.whiteboardApp = whiteboardApp;\n this.view = document.createElement('div');\n this.view.style.width = '100%';\n this.view.style.height = '100%';\n this.view.style.position = 'absolute';\n this.view.style.top = '0';\n this.view.style.left = '0';\n this.view.style.transformOrigin = 'center';\n this.view.setAttribute('data-imagery-container', 'single');\n this.resizeObserver = new ResizeObserver(this.handleResize);\n this.resizeObserver.observe(this.view);\n this.whiteboardApp.updateInternalResizeObserverStatus(false);\n this.map.observe(this.handleMapChange);\n if (!this.map.has(ContainerKeys.scale)) {\n this.map.set(ContainerKeys.scale, 1);\n }\n if (!this.map.has(ContainerKeys.translateX)) {\n this.map.set(ContainerKeys.translateX, 0);\n }\n if (!this.map.has(ContainerKeys.translateY)) {\n this.map.set(ContainerKeys.translateY, 0);\n }\n if (!this.map.has(ContainerKeys.pageIndex)) {\n this.map.set(ContainerKeys.pageIndex, 0);\n }\n this.scroll.on('translate', (dx, dy) => {\n this.handleTranslate(dx, dy);\n });\n this.scroll.on('scale', scale => {\n let nextScale = this.scale * scale;\n nextScale = Math.max(1, nextScale);\n nextScale = Math.min(2, nextScale);\n this.scale = nextScale;\n this.handleTranslate(0, 0);\n });\n }\n init() {\n this.handleGoto(this.pageIndex).catch(_error => {\n console.error(_error);\n }).finally(() => {\n this.handleResize();\n });\n this.updateSyncedTransform();\n }\n resetTranslateOnResize() {\n const image = this.view.children[0];\n if (!image) {\n return;\n }\n const imageBounds = image.getBoundingClientRect();\n const parentBounds = this.parentView.getBoundingClientRect();\n const maxDx = (imageBounds.width - parentBounds.width) / 2;\n const maxDy = (imageBounds.height - parentBounds.height) / 2;\n if (maxDx < 0) {\n this.translateX = 0;\n }\n if (maxDy < 0) {\n this.translateY = 0;\n }\n }\n handleTranslate(dx, dy) {\n const image = this.view.children[0];\n if (!image) {\n return;\n }\n const imageBounds = image.getBoundingClientRect();\n const parentBounds = this.parentView.getBoundingClientRect();\n const maxDx = (imageBounds.width - parentBounds.width) / 2;\n const maxDy = (imageBounds.height - parentBounds.height) / 2;\n if (maxDx > 0) {\n let nextDx = this.translateX * parentBounds.width + dx;\n if (nextDx >= 0) {\n nextDx = Math.min(nextDx, maxDx);\n } else {\n nextDx = Math.max(nextDx, -maxDx);\n }\n this.translateX = nextDx / parentBounds.width;\n } else {\n this.translateX = 0;\n }\n if (maxDy > 0) {\n let nextDy = this.translateY * parentBounds.height + dy;\n if (nextDy >= 0) {\n nextDy = Math.min(nextDy, maxDy);\n } else {\n nextDy = Math.max(nextDy, -maxDy);\n }\n this.translateY = nextDy / parentBounds.height;\n } else {\n this.translateY = 0;\n }\n }\n goto(index) {\n let nextIndex = Math.max(0, index);\n nextIndex = Math.min(this.images.length - 1, nextIndex);\n this.map.set(ContainerKeys.pageIndex, nextIndex);\n }\n append(image) {\n this.images.push(image);\n }\n async handleGoto(index) {\n await waitUntil(() => this.images.length > 0, 3000);\n if (index < 0 || index >= this.images.length) {\n return;\n }\n this.imageDoc.emit('renderStart', index);\n if (this.view.children[0]) {\n this.view.removeChild(this.view.children[0]);\n }\n this.whiteboardApp.emitter.view.style.opacity = '0';\n const target = this.images[index];\n if (target) {\n await target.prepare();\n this.view.appendChild(target.view);\n this.currentImage = target;\n this.whiteboardApp.emitter.gotoPage(`doc_${index}`);\n this.whiteboardApp.updateOptionSize(this.currentImage.width, this.currentImage.height);\n this.whiteboardApp.emitter.view.style.opacity = '1';\n this.handleResize();\n }\n this.imageDoc.emit('renderEnd', index);\n for (let i = index - 3; i <= index + 3; i++) {\n const img = this.images[i];\n if (img) {\n img.prepare();\n }\n }\n }\n dispose() {\n removeObserver(this.map, this.handleMapChange);\n this.resizeObserver.disconnect();\n this.scroll.dispose();\n }\n}"],
5
- "mappings": "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",
4
+ "sourcesContent": ["function _defineProperty(e, r, t) { return (r = _toPropertyKey(r)) in e ? Object.defineProperty(e, r, { value: t, enumerable: !0, configurable: !0, writable: !0 }) : e[r] = t, e; }\nfunction _toPropertyKey(t) { var i = _toPrimitive(t, \"string\"); return \"symbol\" == typeof i ? i : i + \"\"; }\nfunction _toPrimitive(t, r) { if (\"object\" != typeof t || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || \"default\"); if (\"object\" != typeof i) return i; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (\"string\" === r ? String : Number)(t); }\nimport EventEmitter from 'eventemitter3';\nexport class ImageryDoc extends EventEmitter {\n constructor() {\n super(...arguments);\n _defineProperty(this, \"view\", void 0);\n /**\n * \u5E95\u90E8\u64CD\u4F5C\u680F\n */\n _defineProperty(this, \"footView\", void 0);\n _defineProperty(this, \"permissions\", void 0);\n _defineProperty(this, \"window\", undefined);\n /**\n * \u5F53\u524D\u9875\u9762\u7D22\u5F15, \u4ECE 0 \u5F00\u59CB\n */\n _defineProperty(this, \"pageIndex\", void 0);\n /**\n * \u603B\u9875\u6570\n */\n _defineProperty(this, \"pageCount\", void 0);\n /**\n * \u5207\u6362\u5230\u53C2\u6570\u6307\u5B9A\u9875\u9762, index \u4ECE 0 \u5F00\u59CB\n * @param {number} index \u9875\u9762\u7D22\u5F15\n */\n _defineProperty(this, \"goto\", void 0);\n /**\n * \u83B7\u53D6\u56FE\u7247\u5185\u5BB9, base64 \u7F16\u7801\n * @param {number} index \u9875\u9762\u7D22\u5F15\n */\n _defineProperty(this, \"imgContent\", void 0);\n /**\n * \u83B7\u53D6\u56FE\u7247\u5C3A\u5BF8\n * @param {number} index \u9875\u9762\u7D22\u5F15\n */\n _defineProperty(this, \"imgSize\", void 0);\n }\n}", "function _defineProperty(e, r, t) { return (r = _toPropertyKey(r)) in e ? Object.defineProperty(e, r, { value: t, enumerable: !0, configurable: !0, writable: !0 }) : e[r] = t, e; }\nfunction _toPropertyKey(t) { var i = _toPrimitive(t, \"string\"); return \"symbol\" == typeof i ? i : i + \"\"; }\nfunction _toPrimitive(t, r) { if (\"object\" != typeof t || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || \"default\"); if (\"object\" != typeof i) return i; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (\"string\" === r ? String : Number)(t); }\nimport { AbstractApplication } from '@netless/forge-room';\nimport { WhiteboardApplication, WhiteboardPermissionFlag } from '@netless/forge-whiteboard';\nimport { ImageryDoc } from './ImageryDoc';\nimport { LazyImage } from './LazyImage';\nimport { ImageryDocPermissionFlag, ImageryDocPermissions } from './ImageryDocPermissions';\nimport { FooterView } from './FooterView';\nimport { ContinuousContainer } from './ContinuousContainer';\nimport { SingleContainer } from './SingleContainer';\nexport const IMAGERY_DOC_APP_NAME = 'imagery_doc';\n\n/**\n * \u9700\u7528\u6237\u81EA\u884C\u4FDD\u8BC1 ImageryDocApplication.view \u7684\u9AD8\u5BBD\u6BD4\u4E00\u81F4\n */\nexport class ImageryDocApplication extends AbstractApplication {\n constructor() {\n super();\n _defineProperty(this, \"name\", IMAGERY_DOC_APP_NAME);\n _defineProperty(this, \"emitter\", new ImageryDoc());\n _defineProperty(this, \"whiteboardApp\", void 0);\n _defineProperty(this, \"whiteboard\", void 0);\n _defineProperty(this, \"container\", void 0);\n _defineProperty(this, \"rootView\", document.createElement('div'));\n _defineProperty(this, \"contentContainer\", document.createElement('div'));\n _defineProperty(this, \"whiteboardContainer\", document.createElement('div'));\n _defineProperty(this, \"footerContainer\", document.createElement('div'));\n _defineProperty(this, \"permissions\", void 0);\n _defineProperty(this, \"footer\", void 0);\n _defineProperty(this, \"images\", []);\n this.rootView.setAttribute('data-forge-app', 'imagery-doc');\n this.rootView.style.overflow = 'hidden';\n this.rootView.style.userSelect = 'none';\n this.rootView.style.backgroundColor = '#f9f9fc';\n this.contentContainer.style.width = '100%';\n this.contentContainer.style.height = '100%';\n this.contentContainer.style.display = 'flex';\n this.contentContainer.style.flexDirection = 'column';\n this.footer = new FooterView(this.emitter);\n this.rootView.appendChild(this.contentContainer);\n this.emitter.on('renderStart', pageIndex => {\n this.footer.prevPageState(pageIndex !== 0);\n this.footer.nextPageState(pageIndex !== this.images.length - 1);\n });\n\n // eslint-disable-next-line @typescript-eslint/no-this-alias\n const that = this;\n Object.defineProperty(this.emitter, 'footView', {\n get() {\n return that.footerContainer;\n }\n });\n Object.defineProperty(this.emitter, 'view', {\n get() {\n return that.rootView;\n }\n });\n Object.defineProperty(this.emitter, 'permissions', {\n get() {\n return that.permissions;\n }\n });\n Object.defineProperty(this.emitter, 'pageIndex', {\n get() {\n return that.container.pageIndex;\n }\n });\n Object.defineProperty(this.emitter, 'pageCount', {\n get() {\n return that.images.length;\n }\n });\n Object.defineProperty(this.emitter, 'goto', {\n get() {\n return index => {\n if (that.permissions.hasPermission(ImageryDocPermissionFlag.switchPage)) {\n that.container.goto(index);\n }\n };\n }\n });\n Object.defineProperty(this.emitter, 'imgContent', {\n get() {\n return index => {\n return that.images[index].getImgContent();\n };\n }\n });\n Object.defineProperty(this.emitter, 'imgSize', {\n get() {\n return index => {\n return {\n width: that.images[index].width,\n height: that.images[index].height\n };\n };\n }\n });\n }\n async initialize(option) {\n const whiteboardApp = new WhiteboardApplication();\n // @ts-ignore\n whiteboardApp.appDoc = this.appDoc;\n // @ts-ignore\n whiteboardApp.appId = `${this.appId}_wb`;\n // @ts-ignore\n whiteboardApp.userId = this.userId;\n // @ts-ignore\n whiteboardApp.userManager = this.userManager;\n // @ts-ignore\n whiteboardApp.writableManager = this.writableManager;\n // @ts-ignore\n whiteboardApp.deleteSubDoc = this.deleteSubDoc;\n await whiteboardApp.initialize({\n width: -1,\n height: -1,\n maxScaleRatio: -1\n });\n this.whiteboardApp = whiteboardApp;\n this.whiteboard = whiteboardApp.emitter;\n this.whiteboard.enableCameraBoundaryHighlight = false;\n this.whiteboard.enableCameraByMouse = false;\n this.whiteboard.enableCameraByTouch = false;\n this.whiteboard.view.style.width = '100%';\n this.whiteboard.view.style.height = '100%';\n this.whiteboard.view.style.position = 'absolute';\n this.whiteboard.view.style.top = '0';\n this.whiteboard.view.style.left = '0';\n this.whiteboard.setCanvasBackgroundColor('#f0f0f000');\n if (option.displayMode === 'single') {\n this.container = new SingleContainer(this.getMap('single-container'), whiteboardApp, this.whiteboardContainer, this.emitter);\n } else {\n this.container = new ContinuousContainer(this.getMap('continuous-container'), whiteboardApp, this.whiteboardContainer, this.emitter);\n }\n this.whiteboardContainer.style.position = 'relative';\n this.whiteboardContainer.style.flex = '1 1 auto';\n this.whiteboardContainer.style.overflow = 'hidden';\n this.whiteboardContainer.appendChild(this.container.view);\n this.whiteboardContainer.appendChild(this.whiteboard.view);\n this.contentContainer.appendChild(this.whiteboardContainer);\n this.contentContainer.appendChild(this.footerContainer);\n this.footerContainer.appendChild(this.footer.root);\n let i = 0;\n this.whiteboard.permissions.addPermission(WhiteboardPermissionFlag.mainView);\n this.whiteboard.setViewModeToMain();\n while (i < option.images.length) {\n const image = option.images[i];\n this.images[i] = new LazyImage(image.src, image.width, image.height);\n this.container.append(this.images[i]);\n if (option.displayMode === 'single') {\n this.whiteboardApp.addPage(`doc_${i}`, true);\n }\n i += 1;\n }\n if (option.displayMode === 'continuous') {\n this.whiteboardApp.addPage('doc_continuous', true);\n this.whiteboard.gotoPage('doc_continuous');\n }\n this.whiteboard.setViewModeToFree();\n this.permissions = new ImageryDocPermissions(this.writableManager, this.userManager, userId => {\n return this.userMap(userId);\n });\n this.permissions.on('change', (userId, flags, value) => {\n this.emitter.emit('permissionChange', userId, flags, value);\n });\n this.permissions.setPermission(ImageryDocPermissionFlag.all);\n this.whiteboardApp.disableViewModel();\n this.container.init();\n this.whiteboard.permissions.removePermission(WhiteboardPermissionFlag.mainView);\n if (option.inheritWhiteboardId) {\n whiteboardApp.linkToWhiteboard(option.inheritWhiteboardId);\n }\n this.emitter.emit('ready');\n return Promise.resolve(undefined);\n }\n userMap(userId) {\n return this.getMap(`user/${userId}`);\n }\n async dispose(removeSubDoc) {\n if (removeSubDoc) {\n this.deleteSubDoc(this.appId);\n }\n await this.whiteboardApp.dispose(removeSubDoc);\n this.whiteboardApp.emitter.view.remove();\n this.container.dispose();\n this.permissions.dispose();\n this.emitter.removeAllListeners();\n return Promise.resolve(undefined);\n }\n}\n\n// @ts-ignore\n_defineProperty(ImageryDocApplication, \"applicationName\", IMAGERY_DOC_APP_NAME);\nwindow.__ImageryDocApplication = ImageryDocApplication;", "function _defineProperty(e, r, t) { return (r = _toPropertyKey(r)) in e ? Object.defineProperty(e, r, { value: t, enumerable: !0, configurable: !0, writable: !0 }) : e[r] = t, e; }\nfunction _toPropertyKey(t) { var i = _toPrimitive(t, \"string\"); return \"symbol\" == typeof i ? i : i + \"\"; }\nfunction _toPrimitive(t, r) { if (\"object\" != typeof t || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || \"default\"); if (\"object\" != typeof i) return i; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (\"string\" === r ? String : Number)(t); }\nimport { kvStore } from '@netless/forge-room';\nexport class LazyImage {\n constructor(src, width, height) {\n _defineProperty(this, \"view\", void 0);\n _defineProperty(this, \"width\", void 0);\n _defineProperty(this, \"height\", void 0);\n _defineProperty(this, \"src\", void 0);\n this.src = src;\n this.width = width;\n this.height = height;\n this.view = document.createElement('div');\n this.view.setAttribute('data-forge-src', src);\n this.view.style.width = `${width}px`;\n this.view.style.height = `${height}px`;\n this.view.style.transformOrigin = '0 0';\n }\n scale(scale) {\n // this.localScale = scale;\n this.view.style.width = `${this.width * scale}px`;\n this.view.style.height = `${this.height * scale}px`;\n // this.img.style.width = \"100%\";\n }\n async getImgContent() {\n let base64Data = null;\n try {\n base64Data = await kvStore.getItem(this.src);\n } catch {\n // ignore\n }\n if (base64Data) {\n return base64Data;\n }\n const response = await fetch(this.src);\n const blob = await response.blob();\n return new Promise((resolve, reject) => {\n const reader = new FileReader();\n reader.onload = _e => {\n kvStore.setItem(this.src, reader.result);\n resolve(reader.result);\n };\n reader.onerror = () => {\n reject(reader.error);\n };\n reader.readAsDataURL(blob);\n });\n }\n async prepare() {\n if (this.view.children.length > 0) {\n return;\n }\n const base64Data = await this.getImgContent();\n const img = document.createElement('img');\n img.src = base64Data;\n img.style.width = '100%';\n if (this.view.children.length === 0) {\n this.view.appendChild(img);\n }\n }\n}", "import { AbstractApplicationPermissions } from '@netless/forge-room';\nexport let ImageryDocPermissionFlag = function (ImageryDocPermissionFlag) {\n /**\n * \u6CA1\u6709\u4EFB\u4F55\u6743\u9650, \u53EA\u80FD\u540C\u6B65\u4ED6\u4EBA\u7684\u64CD\u4F5C\n */\n ImageryDocPermissionFlag[ImageryDocPermissionFlag[\"none\"] = 0] = \"none\";\n /**\n * \u53EF\u4EE5\u5207\u6362\u9875\u9762\n */\n ImageryDocPermissionFlag[ImageryDocPermissionFlag[\"switchPage\"] = 1] = \"switchPage\";\n /**\n * \u53EF\u4EE5\u64CD\u4F5C\u76F8\u673A, \u5305\u62EC\u7F29\u653E, \u5E73\u79FB\n */\n ImageryDocPermissionFlag[ImageryDocPermissionFlag[\"camera\"] = 2] = \"camera\";\n /**\n * \u53EF\u4EE5\u64CD\u4F5C\u4FA7\u8FB9\u680F\n */\n ImageryDocPermissionFlag[ImageryDocPermissionFlag[\"sideBar\"] = 4] = \"sideBar\";\n /**\n * \u62E5\u6709\u6240\u6709\u6743\u9650\n */\n ImageryDocPermissionFlag[ImageryDocPermissionFlag[\"all\"] = ImageryDocPermissionFlag.switchPage | ImageryDocPermissionFlag.camera | ImageryDocPermissionFlag.sideBar] = \"all\";\n return ImageryDocPermissionFlag;\n}({});\nexport class ImageryDocPermissions extends AbstractApplicationPermissions {\n /**\n * \u89E3\u6790\u6743\u9650\u5217\u8868\u7EC4\u5408\n * @param {number} value - \u6743\u9650\u6570\u5B57\u503C\n * @return {WhiteboardPermissionFlag[]} - \u6743\u9650\u5217\u8868\n */\n resolveFlags(value) {\n return [ImageryDocPermissionFlag.switchPage, ImageryDocPermissionFlag.sideBar, ImageryDocPermissionFlag.camera].filter(v => (v & value) !== 0);\n }\n}", "const chevronLeft = color => `<svg style=\"width:100%;height:100%;padding:2px;box-sizing:border-box;\" viewBox=\"0 0 12.3926 16.9629\"><g><rect height=\"16.9629\" opacity=\"0\" width=\"12.3926\" x=\"0\" y=\"0\"/><path d=\"M0 8.47656C0 8.7207 0.0878906 8.93555 0.273438 9.12109L8.01758 16.6895C8.18359 16.8652 8.39844 16.9531 8.65234 16.9531C9.16016 16.9531 9.55078 16.5723 9.55078 16.0645C9.55078 15.8105 9.44336 15.5957 9.28711 15.4297L2.17773 8.47656L9.28711 1.52344C9.44336 1.35742 9.55078 1.13281 9.55078 0.888672C9.55078 0.380859 9.16016 0 8.65234 0C8.39844 0 8.18359 0.0878906 8.01758 0.253906L0.273438 7.83203C0.0878906 8.00781 0 8.23242 0 8.47656Z\" fill=\"${color}\"/></g></svg>`;\nconst chevronRight = color => `<svg style=\"width:100%;height:100%;padding:2px;box-sizing:border-box;\" viewBox=\"0 0 11.6895 16.9629\"><g><rect height=\"16.9629\" opacity=\"0\" width=\"11.6895\" x=\"0\" y=\"0\"/><path d=\"M11.6895 8.47656C11.6895 8.23242 11.5918 8.00781 11.4062 7.83203L3.67188 0.253906C3.49609 0.0878906 3.28125 0 3.02734 0C2.5293 0 2.13867 0.380859 2.13867 0.888672C2.13867 1.13281 2.23633 1.35742 2.39258 1.52344L9.50195 8.47656L2.39258 15.4297C2.23633 15.5957 2.13867 15.8105 2.13867 16.0645C2.13867 16.5723 2.5293 16.9531 3.02734 16.9531C3.28125 16.9531 3.49609 16.8652 3.67188 16.6895L11.4062 9.12109C11.5918 8.93555 11.6895 8.7207 11.6895 8.47656Z\" fill=\"${color}\"/></g></svg>`;\nconst sideBar = color => `<svg style=\"width:100%;height:100%;padding:2px;box-sizing:border-box;\" viewBox=\"0 0 23.3887 17.998\"><g><rect height=\"17.998\" opacity=\"0\" width=\"23.3887\" x=\"0\" y=\"0\"/><path d=\"M3.06641 17.998L19.9609 17.998C22.0117 17.998 23.0273 16.9824 23.0273 14.9707L23.0273 3.04688C23.0273 1.03516 22.0117 0.0195312 19.9609 0.0195312L3.06641 0.0195312C1.02539 0.0195312 0 1.02539 0 3.04688L0 14.9707C0 16.9922 1.02539 17.998 3.06641 17.998ZM3.08594 16.4258C2.10938 16.4258 1.57227 15.9082 1.57227 14.8926L1.57227 3.125C1.57227 2.10938 2.10938 1.5918 3.08594 1.5918L19.9414 1.5918C20.9082 1.5918 21.4551 2.10938 21.4551 3.125L21.4551 14.8926C21.4551 15.9082 20.9082 16.4258 19.9414 16.4258ZM7.44141 16.7285L8.97461 16.7285L8.97461 1.29883L7.44141 1.29883ZM5.56641 5.21484C5.85938 5.21484 6.12305 4.95117 6.12305 4.66797C6.12305 4.375 5.85938 4.12109 5.56641 4.12109L3.4668 4.12109C3.17383 4.12109 2.91992 4.375 2.91992 4.66797C2.91992 4.95117 3.17383 5.21484 3.4668 5.21484ZM5.56641 7.74414C5.85938 7.74414 6.12305 7.48047 6.12305 7.1875C6.12305 6.89453 5.85938 6.65039 5.56641 6.65039L3.4668 6.65039C3.17383 6.65039 2.91992 6.89453 2.91992 7.1875C2.91992 7.48047 3.17383 7.74414 3.4668 7.74414ZM5.56641 10.2637C5.85938 10.2637 6.12305 10.0195 6.12305 9.72656C6.12305 9.43359 5.85938 9.17969 5.56641 9.17969L3.4668 9.17969C3.17383 9.17969 2.91992 9.43359 2.91992 9.72656C2.91992 10.0195 3.17383 10.2637 3.4668 10.2637Z\" fill=\"${color}\"/></g></svg>`;\nexport const Icons = {\n chevronLeft,\n chevronRight,\n sideBar\n};", "function _defineProperty(e, r, t) { return (r = _toPropertyKey(r)) in e ? Object.defineProperty(e, r, { value: t, enumerable: !0, configurable: !0, writable: !0 }) : e[r] = t, e; }\nfunction _toPropertyKey(t) { var i = _toPrimitive(t, \"string\"); return \"symbol\" == typeof i ? i : i + \"\"; }\nfunction _toPrimitive(t, r) { if (\"object\" != typeof t || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || \"default\"); if (\"object\" != typeof i) return i; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (\"string\" === r ? String : Number)(t); }\nimport { Icons } from './icons';\nconst EM_COLOR = '#8C8C8C';\nexport class FooterView {\n constructor(imageryDoc) {\n _defineProperty(this, \"root\", void 0);\n _defineProperty(this, \"prevPage\", void 0);\n _defineProperty(this, \"nextPage\", void 0);\n _defineProperty(this, \"sideBarToggle\", void 0);\n _defineProperty(this, \"sideBarContainer\", document.createElement('div'));\n _defineProperty(this, \"navigator\", document.createElement('div'));\n _defineProperty(this, \"navigatorIndex\", document.createElement('span'));\n _defineProperty(this, \"navigatorTotal\", document.createElement('span'));\n _defineProperty(this, \"isSlideBarVisible\", false);\n _defineProperty(this, \"imageryDoc\", void 0);\n _defineProperty(this, \"updateIndex\", () => {\n this.navigatorIndex.textContent = `${this.imageryDoc.pageIndex + 1}`;\n });\n _defineProperty(this, \"updateTotal\", () => {\n this.navigatorTotal.textContent = `/${this.imageryDoc.pageCount}`;\n });\n _defineProperty(this, \"handleSideBarClick\", evt => {\n const target = evt.target;\n const targetIndex = target.getAttribute('data-doc-index');\n if (targetIndex) {\n this.imageryDoc.goto(parseInt(targetIndex, 10));\n }\n });\n this.imageryDoc = imageryDoc;\n this.root = document.createElement('div');\n this.root.style.height = '24px';\n this.root.style.zIndex = '2';\n this.root.style.display = 'flex';\n this.root.style.alignItems = 'center';\n this.root.style.backgroundColor = '#fff';\n this.root.style.borderTop = '1px solid #f0f0f0';\n this.prevPage = this.createIcon(Icons.chevronLeft(EM_COLOR), '18px', () => {\n this.imageryDoc.goto(this.imageryDoc.pageIndex - 1);\n });\n this.nextPage = this.createIcon(Icons.chevronRight(EM_COLOR), '18px', () => {\n this.imageryDoc.goto(this.imageryDoc.pageIndex + 1);\n });\n this.sideBarToggle = this.createIcon(Icons.sideBar(EM_COLOR), '20px', () => {\n this.createSideBar();\n this.isSlideBarVisible = !this.isSlideBarVisible;\n if (this.isSlideBarVisible) {\n this.sideBarContainer.style.display = 'block';\n } else {\n this.sideBarContainer.style.display = 'none';\n }\n });\n this.root.appendChild(this.sideBarToggle);\n this.root.appendChild(this.createSpacer());\n this.root.appendChild(this.prevPage);\n this.root.appendChild(this.nextPage);\n this.root.appendChild(this.createSpacer());\n this.createNavigator();\n this.imageryDoc.addListener('renderEnd', this.updateIndex);\n this.imageryDoc.addListener('ready', this.updateTotal);\n }\n prevPageState(enable) {\n if (enable) {\n this.prevPage.style.pointerEvents = 'all';\n this.prevPage.style.opacity = '1';\n } else {\n this.prevPage.style.pointerEvents = 'none';\n this.prevPage.style.opacity = '0.5';\n }\n }\n nextPageState(enable) {\n if (enable) {\n this.nextPage.style.pointerEvents = 'all';\n this.nextPage.style.opacity = '1';\n } else {\n this.nextPage.style.pointerEvents = 'none';\n this.nextPage.style.opacity = '0.5';\n }\n }\n createSpacer() {\n const div = document.createElement('div');\n div.style.flex = '1 1 auto';\n return div;\n }\n createIcon(svgContent, size, action) {\n const icon = document.createElement('div');\n icon.style.width = size;\n icon.style.height = size;\n icon.style.borderRadius = '2px';\n icon.style.margin = '6px';\n icon.innerHTML = svgContent;\n icon.addEventListener('click', () => {\n action();\n });\n icon.addEventListener('mouseover', () => {\n icon.style.backgroundColor = '#f0f0f0';\n });\n icon.addEventListener('mouseout', () => {\n icon.style.backgroundColor = 'transparent';\n });\n return icon;\n }\n createNavigator() {\n this.navigator.style.height = '24px';\n this.navigator.style.padding = '12px';\n this.navigator.style.display = 'flex';\n this.navigator.style.alignItems = 'center';\n this.navigator.style.justifyContent = 'center';\n this.navigator.style.fontSize = '12px';\n this.navigator.style.color = '#585858';\n this.navigatorIndex.textContent = `${this.imageryDoc.pageIndex + 1}`;\n this.navigatorTotal.textContent = `/${this.imageryDoc.pageCount}`;\n this.navigator.appendChild(this.navigatorIndex);\n this.navigator.appendChild(this.navigatorTotal);\n this.root.appendChild(this.navigator);\n }\n createSideBar() {\n if (this.imageryDoc.pageCount === 0) {\n return;\n }\n if (this.root.contains(this.sideBarContainer)) {\n return;\n }\n this.sideBarContainer.style.width = '24%';\n this.sideBarContainer.style.maxWidth = '180px';\n this.sideBarContainer.style.height = 'calc(100% - 24px)';\n this.sideBarContainer.style.position = 'absolute';\n this.sideBarContainer.style.bottom = '25px';\n this.sideBarContainer.style.left = '0';\n this.sideBarContainer.style.fontSize = '0px';\n this.sideBarContainer.style.overflow = 'auto';\n this.sideBarContainer.style.backgroundColor = '#EFEFEF';\n this.root.appendChild(this.sideBarContainer);\n for (let i = 0, l = this.imageryDoc.pageCount; i < l; i++) {\n const reviewPage = document.createElement('div');\n reviewPage.style.width = '100%';\n reviewPage.style.marginTop = '12px';\n const reviewIndex = document.createElement('div');\n reviewIndex.style.cssText = 'font-size:12px;width:100%;text-align:center;height:24px;line-height:24px;color:#585858';\n reviewIndex.textContent = `${i + 1}`;\n const reviewImg = document.createElement('img');\n reviewImg.setAttribute('data-doc-index', `${i}`);\n reviewImg.style.cssText = 'width:80%;margin:0 10%;box-shadow:1px 1px 5px #f9f9fc';\n this.imageryDoc.imgContent(i).then(base64Data => {\n reviewImg.src = base64Data;\n });\n reviewPage.appendChild(reviewImg);\n reviewPage.appendChild(reviewIndex);\n this.sideBarContainer.appendChild(reviewPage);\n }\n this.sideBarContainer.addEventListener('click', this.handleSideBarClick);\n }\n}", "function _defineProperty(e, r, t) { return (r = _toPropertyKey(r)) in e ? Object.defineProperty(e, r, { value: t, enumerable: !0, configurable: !0, writable: !0 }) : e[r] = t, e; }\nfunction _toPropertyKey(t) { var i = _toPrimitive(t, \"string\"); return \"symbol\" == typeof i ? i : i + \"\"; }\nfunction _toPrimitive(t, r) { if (\"object\" != typeof t || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || \"default\"); if (\"object\" != typeof i) return i; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (\"string\" === r ? String : Number)(t); }\nimport EventEmitter from 'eventemitter3';\nexport class InfinityScroll extends EventEmitter {\n constructor(view) {\n super();\n _defineProperty(this, \"view\", void 0);\n _defineProperty(this, \"lastDelta\", {\n x: 0,\n y: 0\n });\n _defineProperty(this, \"lastTriggerTime\", 0);\n // Touch event properties\n _defineProperty(this, \"lastTouchDistance\", 0);\n _defineProperty(this, \"lastTouchCenter\", {\n x: 0,\n y: 0\n });\n _defineProperty(this, \"isPinching\", false);\n // Gesture detection properties\n _defineProperty(this, \"touchEventCache\", []);\n _defineProperty(this, \"gestureType\", 'unknown');\n _defineProperty(this, \"gestureDetectionComplete\", false);\n _defineProperty(this, \"handleWheel\", evt => {\n evt.preventDefault();\n evt.stopImmediatePropagation();\n evt.stopPropagation();\n if (Date.now() - this.lastTriggerTime < 32) {\n this.lastDelta.y += evt.deltaY;\n this.lastDelta.x += evt.deltaX;\n return;\n }\n if (evt.ctrlKey) {\n // \u53CC\u6307\u634F\u5408\n // @ts-ignore\n const wheelDelta = Math.sign(evt.wheelDelta || 100) * 120;\n const deltaY = evt.deltaY + this.lastDelta.y;\n let scale;\n if (deltaY > 0) {\n scale = Math.max(1 - Math.abs(deltaY / wheelDelta), 0.00000001);\n } else {\n // \u653E\u5927\n scale = 1 + Math.abs(deltaY / wheelDelta);\n }\n scale = Math.max(0.9, scale);\n scale = Math.min(1.1, scale);\n this.emit('scale', scale);\n } else {\n // \u62D6\u52A8\n const deltaX = this.lastDelta.x + evt.deltaX;\n const deltaY = this.lastDelta.y + evt.deltaY;\n this.emit('translate', deltaX, deltaY);\n }\n this.lastTriggerTime = Date.now();\n this.lastDelta = {\n x: 0,\n y: 0\n };\n });\n _defineProperty(this, \"handleTouchStart\", evt => {\n console.log('Touch Start');\n evt.preventDefault();\n if (evt.touches.length === 2) {\n // Reset gesture detection for new gesture\n this.resetGestureDetection();\n this.isPinching = true;\n this.lastTouchDistance = this.getDistance(evt.touches[0], evt.touches[1]);\n this.lastTouchCenter = this.getCenter(evt.touches[0], evt.touches[1]);\n }\n });\n _defineProperty(this, \"handleTouchMove\", evt => {\n evt.preventDefault();\n if (evt.touches.length === 2 && this.isPinching) {\n const currentDistance = this.getDistance(evt.touches[0], evt.touches[1]);\n const currentCenter = this.getCenter(evt.touches[0], evt.touches[1]);\n\n // Detect gesture type if not yet determined\n if (!this.gestureDetectionComplete) {\n this.gestureType = this.detectGesture(evt.touches[0], evt.touches[1]);\n if (this.gestureType !== 'unknown') {\n this.gestureDetectionComplete = true;\n }\n }\n\n // Handle based on detected gesture\n if (this.gestureType === 'drag' || this.gestureType === 'unknown') {\n // Handle two-finger drag\n const deltaX = currentCenter.x - this.lastTouchCenter.x;\n const deltaY = this.lastTouchCenter.y - currentCenter.y;\n this.emit('translate', deltaX, deltaY);\n }\n if (this.gestureType === 'zoom' || this.gestureType === 'unknown') {\n // Handle pinch-to-zoom\n if (this.lastTouchDistance > 0) {\n const scale = currentDistance / this.lastTouchDistance;\n this.emit('scale', scale);\n }\n }\n this.lastTouchDistance = currentDistance;\n this.lastTouchCenter = currentCenter;\n }\n });\n _defineProperty(this, \"handleTouchEnd\", evt => {\n evt.preventDefault();\n if (evt.touches.length < 2) {\n this.isPinching = false;\n this.lastTouchDistance = 0;\n this.resetGestureDetection();\n }\n });\n _defineProperty(this, \"getDistance\", (touch1, touch2) => {\n const dx = touch1.clientX - touch2.clientX;\n const dy = touch1.clientY - touch2.clientY;\n return Math.sqrt(dx * dx + dy * dy);\n });\n _defineProperty(this, \"getCenter\", (touch1, touch2) => {\n return {\n x: (touch1.clientX + touch2.clientX) / 2,\n y: (touch1.clientY + touch2.clientY) / 2\n };\n });\n _defineProperty(this, \"detectGesture\", (touch1, touch2) => {\n const center = this.getCenter(touch1, touch2);\n const distance = this.getDistance(touch1, touch2);\n\n // Add to cache\n this.touchEventCache.push({\n x: center.x,\n y: center.y,\n distance\n });\n\n // Keep only last 3 events\n if (this.touchEventCache.length > 3) {\n this.touchEventCache.shift();\n }\n\n // Need at least 3 events to determine gesture\n if (this.touchEventCache.length < 3) {\n return 'unknown';\n }\n\n // Check for drag gesture (consistent movement in one direction)\n const events = this.touchEventCache;\n let xDirectionSame = true;\n let yDirectionSame = true;\n\n // Check X axis direction consistency\n const xDirection1 = Math.sign(events[1].x - events[0].x);\n const xDirection2 = Math.sign(events[2].x - events[1].x);\n if (xDirection1 !== 0 && xDirection2 !== 0 && xDirection1 !== xDirection2) {\n xDirectionSame = false;\n }\n\n // Check Y axis direction consistency\n const yDirection1 = Math.sign(events[1].y - events[0].y);\n const yDirection2 = Math.sign(events[2].y - events[1].y);\n if (yDirection1 !== 0 && yDirection2 !== 0 && yDirection1 !== yDirection2) {\n yDirectionSame = false;\n }\n\n // If movement is consistent in either axis, it's a drag\n if (xDirectionSame || yDirectionSame) {\n const movementThreshold = 10; // Minimum movement to be considered drag\n const totalXMovement = Math.abs(events[2].x - events[0].x);\n const totalYMovement = Math.abs(events[2].y - events[0].y);\n if (totalXMovement > movementThreshold || totalYMovement > movementThreshold) {\n return 'drag';\n }\n }\n\n // Check for zoom gesture (significant distance change)\n const totalDistanceChange = Math.abs(events[2].distance - events[0].distance);\n const zoomThreshold = 15; // Minimum distance change to be considered zoom\n if (totalDistanceChange > zoomThreshold) {\n return 'zoom';\n }\n return 'unknown';\n });\n _defineProperty(this, \"resetGestureDetection\", () => {\n this.touchEventCache = [];\n this.gestureType = 'unknown';\n this.gestureDetectionComplete = false;\n });\n this.view = view;\n this.view.addEventListener('wheel', this.handleWheel, {\n passive: false,\n capture: true\n });\n console.log(this.view);\n // Add touch event listeners\n this.view.addEventListener('touchstart', this.handleTouchStart, {\n passive: false,\n capture: true\n });\n this.view.addEventListener('touchmove', this.handleTouchMove, {\n passive: false,\n capture: true\n });\n this.view.addEventListener('touchend', this.handleTouchEnd, {\n passive: false,\n capture: true\n });\n }\n dispose() {\n this.view.removeEventListener('wheel', this.handleWheel);\n\n // Remove touch event listeners\n this.view.removeEventListener('touchstart', this.handleTouchStart);\n this.view.removeEventListener('touchmove', this.handleTouchMove);\n this.view.removeEventListener('touchend', this.handleTouchEnd);\n this.removeAllListeners();\n }\n}", "export const ContainerKeys = {\n scale: 'scale',\n translateX: 'translateX',\n translateY: 'translateY',\n pageIndex: 'pageIndex'\n};", "function _defineProperty(e, r, t) { return (r = _toPropertyKey(r)) in e ? Object.defineProperty(e, r, { value: t, enumerable: !0, configurable: !0, writable: !0 }) : e[r] = t, e; }\nfunction _toPropertyKey(t) { var i = _toPrimitive(t, \"string\"); return \"symbol\" == typeof i ? i : i + \"\"; }\nfunction _toPrimitive(t, r) { if (\"object\" != typeof t || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || \"default\"); if (\"object\" != typeof i) return i; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (\"string\" === r ? String : Number)(t); }\nimport { InfinityScroll } from './InfinityScroll';\nimport { ContainerKeys } from './Container';\nexport class ContinuousContainer {\n get translateY() {\n return this.map.get(ContainerKeys.translateY);\n }\n set translateY(value) {\n this.map.set(ContainerKeys.translateY, value);\n }\n get pageIndex() {\n const step = 1 / this.images.length;\n for (let i = 0; i < this.images.length; i++) {\n if (this.translateY < step * i && Math.abs(this.translateY - step * i) >= 0.0001) {\n return i - 1;\n }\n }\n return this.images.length - 1;\n }\n constructor(map, whiteboardApp, parentView, imageDoc) {\n _defineProperty(this, \"view\", void 0);\n _defineProperty(this, \"parentView\", void 0);\n _defineProperty(this, \"resizeObserver\", void 0);\n _defineProperty(this, \"images\", []);\n _defineProperty(this, \"scroll\", void 0);\n _defineProperty(this, \"map\", void 0);\n _defineProperty(this, \"whiteboardApp\", void 0);\n _defineProperty(this, \"imageDoc\", void 0);\n _defineProperty(this, \"totalHeight\", 0);\n _defineProperty(this, \"localScale\", 1);\n _defineProperty(this, \"handleMapChange\", event => {\n if (event.keysChanged.has(ContainerKeys.translateY)) {\n this.updateSyncedTransform();\n }\n });\n _defineProperty(this, \"handleResize\", () => {\n const bound = this.view.getBoundingClientRect();\n let scaledHeight = 0;\n for (const image of this.images) {\n const scale = bound.width / image.width;\n image.scale(scale);\n scaledHeight += image.height * scale;\n }\n this.localScale = scaledHeight / this.totalHeight;\n this.whiteboardApp.updateOptionSize(bound.width, bound.height);\n this.whiteboardApp.adjustByOutFrame(bound.width, bound.height);\n this.updateSyncedTransform();\n });\n _defineProperty(this, \"updateSyncedTransform\", () => {\n const bounds = this.view.getBoundingClientRect();\n const maxTy = this.totalHeight * this.localScale - bounds.height;\n let ty = this.translateY * this.totalHeight * this.localScale;\n ty = Math.min(ty, maxTy);\n ty = Math.max(ty, 0);\n this.view.style.transform = `translate(0, ${-ty}px)`;\n this.whiteboardApp.emitter.resetCamera();\n this.whiteboardApp.emitter.translateCamera(0, -ty);\n this.whiteboardApp.emitter.scaleCamera(this.localScale, 'top-left');\n this.handleGoto(this.pageIndex);\n });\n this.imageDoc = imageDoc;\n this.parentView = parentView;\n this.map = map;\n this.scroll = new InfinityScroll(this.parentView);\n this.whiteboardApp = whiteboardApp;\n this.view = document.createElement('div');\n this.view.style.width = '100%';\n this.view.style.height = '100%';\n this.view.style.position = 'absolute';\n this.view.style.top = '0';\n this.view.style.left = '0';\n this.view.style.transformOrigin = '0, 0';\n this.view.setAttribute('data-imagery-container', 'continuous');\n this.resizeObserver = new ResizeObserver(this.handleResize);\n this.resizeObserver.observe(this.view);\n this.whiteboardApp.updateInternalResizeObserverStatus(false);\n this.map.observe(this.handleMapChange);\n if (!this.map.has(ContainerKeys.scale)) {\n this.map.set(ContainerKeys.scale, 1);\n }\n if (!this.map.has(ContainerKeys.translateX)) {\n this.map.set(ContainerKeys.translateX, 0);\n }\n if (!this.map.has(ContainerKeys.translateY)) {\n this.map.set(ContainerKeys.translateY, 0);\n }\n this.scroll.on('translate', (dx, dy) => {\n this.handleTranslate(dx, dy);\n });\n }\n init() {\n this.updateSyncedTransform();\n this.totalHeight = this.images.reduce((prev, curr) => prev + curr.height, 0);\n }\n handleTranslate(dx, dy) {\n const dyNormalized = dy / this.totalHeight;\n let nextTy = this.translateY + dyNormalized;\n nextTy = Math.max(0, nextTy);\n nextTy = Math.min(1, nextTy);\n this.translateY = nextTy;\n }\n goto(index) {\n let nextIndex = Math.max(0, index);\n nextIndex = Math.min(this.images.length - 1, nextIndex);\n this.translateY = nextIndex / this.images.length;\n }\n append(image) {\n this.images.push(image);\n this.view.appendChild(image.view);\n }\n async handleGoto(index) {\n if (index < 0 || index >= this.images.length) {\n return;\n }\n this.imageDoc.emit('renderStart', index);\n const target = this.images[index];\n if (target) {\n await target.prepare();\n }\n this.imageDoc.emit('renderEnd', index);\n for (let i = index - 3; i <= index + 3; i++) {\n const img = this.images[i];\n if (img) {\n img.prepare();\n }\n }\n }\n dispose() {\n this.resizeObserver.disconnect();\n this.scroll.dispose();\n }\n}", "function _defineProperty(e, r, t) { return (r = _toPropertyKey(r)) in e ? Object.defineProperty(e, r, { value: t, enumerable: !0, configurable: !0, writable: !0 }) : e[r] = t, e; }\nfunction _toPropertyKey(t) { var i = _toPrimitive(t, \"string\"); return \"symbol\" == typeof i ? i : i + \"\"; }\nfunction _toPrimitive(t, r) { if (\"object\" != typeof t || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || \"default\"); if (\"object\" != typeof i) return i; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (\"string\" === r ? String : Number)(t); }\nimport { InfinityScroll } from './InfinityScroll';\nimport { ContainerKeys } from './Container';\nimport { removeObserver } from '@netless/forge-room';\nexport const delay = value => new Promise(resolve => setTimeout(resolve, value));\nasync function waitUntil(fn, timeout) {\n let start = Date.now();\n while (!fn() && Date.now() - start < timeout) {\n await delay(50);\n start = Date.now();\n }\n}\nexport class SingleContainer {\n get scale() {\n return this.map.get(ContainerKeys.scale);\n }\n set scale(value) {\n this.map.set(ContainerKeys.scale, value);\n }\n get translateX() {\n return this.map.get(ContainerKeys.translateX);\n }\n set translateX(value) {\n this.map.set(ContainerKeys.translateX, value);\n }\n get translateY() {\n return this.map.get(ContainerKeys.translateY);\n }\n set translateY(value) {\n this.map.set(ContainerKeys.translateY, value);\n }\n get pageIndex() {\n return this.map.get(ContainerKeys.pageIndex);\n }\n constructor(map, whiteboardApp, parentView, imageDoc) {\n _defineProperty(this, \"view\", void 0);\n _defineProperty(this, \"parentView\", void 0);\n _defineProperty(this, \"resizeObserver\", void 0);\n _defineProperty(this, \"images\", []);\n _defineProperty(this, \"currentImage\", null);\n _defineProperty(this, \"scroll\", void 0);\n _defineProperty(this, \"map\", void 0);\n _defineProperty(this, \"whiteboardApp\", void 0);\n _defineProperty(this, \"imageDoc\", void 0);\n _defineProperty(this, \"handleMapChange\", event => {\n if (event.keysChanged.has(ContainerKeys.scale) || event.keysChanged.has(ContainerKeys.translateX) || event.keysChanged.has(ContainerKeys.translateY)) {\n this.updateSyncedTransform();\n }\n if (event.keysChanged.has(ContainerKeys.pageIndex)) {\n this.handleGoto(this.pageIndex).catch(_error => {\n // todo error\n });\n }\n });\n _defineProperty(this, \"handleResize\", () => {\n const bound = this.parentView.getBoundingClientRect();\n if (this.currentImage) {\n let scale = bound.width / this.currentImage.width;\n if (this.currentImage.height * scale > bound.height) {\n scale = bound.height / this.currentImage.height;\n }\n const tx = Math.round((bound.width - this.currentImage.width * scale) / 2 / scale);\n const ty = Math.round((bound.height - this.currentImage.height * scale) / 2 / scale);\n this.currentImage.view.style.transform = `scale(${scale}) translate(${tx}px, ${ty}px)`;\n this.updateSyncedTransform();\n this.resetTranslateOnResize();\n }\n });\n _defineProperty(this, \"updateSyncedTransform\", () => {\n if (!this.currentImage) {\n return;\n }\n const parentBounds = this.parentView.getBoundingClientRect();\n const tx = -this.translateX * parentBounds.width / this.scale;\n const ty = -this.translateY * parentBounds.height / this.scale;\n this.view.style.transform = `scale(${this.scale}) translate(${tx}px, ${ty}px)`;\n this.whiteboardApp.adjustByOutFrame(parentBounds.width * this.scale, parentBounds.height * this.scale);\n const whiteboardSize = this.whiteboardApp.getViewSize();\n const whiteboardScale = this.whiteboardApp.getInherentScale();\n this.whiteboardApp.emitter.resetCamera();\n this.whiteboardApp.emitter.translateCamera(-this.translateX * whiteboardSize[0] / whiteboardScale / this.scale, -this.translateY * whiteboardSize[1] / whiteboardScale / this.scale);\n });\n this.imageDoc = imageDoc;\n this.parentView = parentView;\n this.map = map;\n this.scroll = new InfinityScroll(this.parentView);\n this.whiteboardApp = whiteboardApp;\n this.view = document.createElement('div');\n this.view.style.width = '100%';\n this.view.style.height = '100%';\n this.view.style.position = 'absolute';\n this.view.style.top = '0';\n this.view.style.left = '0';\n this.view.style.transformOrigin = 'center';\n this.view.setAttribute('data-imagery-container', 'single');\n this.resizeObserver = new ResizeObserver(this.handleResize);\n this.resizeObserver.observe(this.view);\n this.whiteboardApp.updateInternalResizeObserverStatus(false);\n this.map.observe(this.handleMapChange);\n if (!this.map.has(ContainerKeys.scale)) {\n this.map.set(ContainerKeys.scale, 1);\n }\n if (!this.map.has(ContainerKeys.translateX)) {\n this.map.set(ContainerKeys.translateX, 0);\n }\n if (!this.map.has(ContainerKeys.translateY)) {\n this.map.set(ContainerKeys.translateY, 0);\n }\n if (!this.map.has(ContainerKeys.pageIndex)) {\n this.map.set(ContainerKeys.pageIndex, 0);\n }\n this.scroll.on('translate', (dx, dy) => {\n this.handleTranslate(dx, dy);\n });\n this.scroll.on('scale', scale => {\n let nextScale = this.scale * scale;\n nextScale = Math.max(1, nextScale);\n nextScale = Math.min(2, nextScale);\n this.scale = nextScale;\n this.handleTranslate(0, 0);\n });\n }\n init() {\n this.handleGoto(this.pageIndex).catch(_error => {\n console.error(_error);\n }).finally(() => {\n this.handleResize();\n });\n this.updateSyncedTransform();\n }\n resetTranslateOnResize() {\n const image = this.view.children[0];\n if (!image) {\n return;\n }\n const imageBounds = image.getBoundingClientRect();\n const parentBounds = this.parentView.getBoundingClientRect();\n const maxDx = (imageBounds.width - parentBounds.width) / 2;\n const maxDy = (imageBounds.height - parentBounds.height) / 2;\n if (maxDx < 0) {\n this.translateX = 0;\n }\n if (maxDy < 0) {\n this.translateY = 0;\n }\n }\n handleTranslate(dx, dy) {\n const image = this.view.children[0];\n if (!image) {\n return;\n }\n const imageBounds = image.getBoundingClientRect();\n const parentBounds = this.parentView.getBoundingClientRect();\n const maxDx = (imageBounds.width - parentBounds.width) / 2;\n const maxDy = (imageBounds.height - parentBounds.height) / 2;\n if (maxDx > 0) {\n let nextDx = this.translateX * parentBounds.width + dx;\n if (nextDx >= 0) {\n nextDx = Math.min(nextDx, maxDx);\n } else {\n nextDx = Math.max(nextDx, -maxDx);\n }\n this.translateX = nextDx / parentBounds.width;\n } else {\n this.translateX = 0;\n }\n if (maxDy > 0) {\n let nextDy = this.translateY * parentBounds.height + dy;\n if (nextDy >= 0) {\n nextDy = Math.min(nextDy, maxDy);\n } else {\n nextDy = Math.max(nextDy, -maxDy);\n }\n this.translateY = nextDy / parentBounds.height;\n } else {\n this.translateY = 0;\n }\n }\n goto(index) {\n let nextIndex = Math.max(0, index);\n nextIndex = Math.min(this.images.length - 1, nextIndex);\n this.map.set(ContainerKeys.pageIndex, nextIndex);\n }\n append(image) {\n this.images.push(image);\n }\n async handleGoto(index) {\n await waitUntil(() => this.images.length > 0, 3000);\n if (index < 0 || index >= this.images.length) {\n return;\n }\n this.imageDoc.emit('renderStart', index);\n if (this.view.children[0]) {\n this.view.removeChild(this.view.children[0]);\n }\n this.whiteboardApp.emitter.view.style.opacity = '0';\n const target = this.images[index];\n if (target) {\n await target.prepare();\n this.view.appendChild(target.view);\n this.currentImage = target;\n this.whiteboardApp.emitter.gotoPage(`doc_${index}`);\n this.whiteboardApp.updateOptionSize(this.currentImage.width, this.currentImage.height);\n this.whiteboardApp.emitter.view.style.opacity = '1';\n this.handleResize();\n }\n this.imageDoc.emit('renderEnd', index);\n for (let i = index - 3; i <= index + 3; i++) {\n const img = this.images[i];\n if (img) {\n img.prepare();\n }\n }\n }\n dispose() {\n removeObserver(this.map, this.handleMapChange);\n this.resizeObserver.disconnect();\n this.scroll.dispose();\n }\n}"],
5
+ "mappings": "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",
6
6
  "names": ["_defineProperty", "_toPropertyKey", "_toPrimitive", "ImageryDocPermissionFlag", "_defineProperty", "_toPropertyKey", "_toPrimitive", "EventEmitter", "_defineProperty", "_toPropertyKey", "_toPrimitive", "_defineProperty", "_toPropertyKey", "_toPrimitive", "_defineProperty", "_toPropertyKey", "_toPrimitive", "_defineProperty", "_toPropertyKey", "_toPrimitive"]
7
7
  }