@netless/app-presentation 0.1.9-beta.6 → 0.1.9-beta.7
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/index.d.ts +65 -3
- package/dist/index.global.js +45 -13
- package/dist/index.js +45 -13
- package/dist/index.js.map +1 -1
- package/dist/index.mjs +45 -14
- package/dist/index.mjs.map +1 -1
- package/package.json +1 -1
- package/src/app-presentation.ts +11 -9
- package/src/index.ts +1 -0
- package/src/scrollbar/index.ts +32 -1
package/package.json
CHANGED
package/src/app-presentation.ts
CHANGED
|
@@ -454,15 +454,6 @@ export const NetlessAppPresentation: NetlessApp<{}, {}, PresentationAppOptions,
|
|
|
454
454
|
}
|
|
455
455
|
}
|
|
456
456
|
|
|
457
|
-
const moveCamera = (camera: { centerX: number, centerY: number, scale: number }) => {
|
|
458
|
-
if (context.getIsWritable()) {
|
|
459
|
-
view.moveCamera({...camera, animationMode: 'immediately' as AnimationMode});
|
|
460
|
-
syncView();
|
|
461
|
-
return;
|
|
462
|
-
}
|
|
463
|
-
throw new Error('[Presentation]: moveCamera must be called in writable room')
|
|
464
|
-
}
|
|
465
|
-
|
|
466
457
|
let scrollbar:Scrollbar | undefined;
|
|
467
458
|
if (options.useScrollbar) {
|
|
468
459
|
dispose.make(() => {
|
|
@@ -478,6 +469,17 @@ export const NetlessAppPresentation: NetlessApp<{}, {}, PresentationAppOptions,
|
|
|
478
469
|
})
|
|
479
470
|
}
|
|
480
471
|
|
|
472
|
+
const moveCamera = (camera: { centerX: number, centerY: number, scale: number }) => {
|
|
473
|
+
if (context.getIsWritable() && scrollbar) {
|
|
474
|
+
if (!scrollbar) {
|
|
475
|
+
throw new Error('[Presentation]: moveCamera must be called when appOptions: useScrollbar is true')
|
|
476
|
+
}
|
|
477
|
+
scrollbar.moveCamera(camera);
|
|
478
|
+
return;
|
|
479
|
+
}
|
|
480
|
+
throw new Error('[Presentation]: moveCamera must be called in writable room')
|
|
481
|
+
}
|
|
482
|
+
|
|
481
483
|
context.emitter.on('destroy', () => dispose())
|
|
482
484
|
|
|
483
485
|
const reportProgress = (progress: number, result: { pdf: ArrayBuffer, title: string } | null) => {
|
package/src/index.ts
CHANGED
package/src/scrollbar/index.ts
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import './style.scss?inline';
|
|
2
2
|
import type { View, AnimationMode } from "@netless/window-manager";
|
|
3
3
|
import { makeDraggable } from "./Draggable";
|
|
4
|
-
import { debounce } from 'lodash';
|
|
4
|
+
import { debounce, isNumber } from 'lodash';
|
|
5
5
|
|
|
6
6
|
export interface ScrollbarOption {
|
|
7
7
|
appId: string;
|
|
@@ -256,4 +256,35 @@ export class Scrollbar {
|
|
|
256
256
|
|
|
257
257
|
}
|
|
258
258
|
|
|
259
|
+
moveCamera = (camera: { centerX: number, centerY: number, scale: number }) => {
|
|
260
|
+
const { centerX, centerY } = camera;
|
|
261
|
+
const cacheCamera = this.view.camera;
|
|
262
|
+
const _camera: { centerX?: number, centerY?: number, scale?: number} = {};
|
|
263
|
+
if(isNumber(centerX)) {
|
|
264
|
+
const { minX, maxX } = this.getScrollXRange(cacheCamera);
|
|
265
|
+
let newCenterX = centerX;
|
|
266
|
+
if (centerX < minX) {
|
|
267
|
+
newCenterX = minX;
|
|
268
|
+
} else if (centerX > maxX) {
|
|
269
|
+
newCenterX = maxX;
|
|
270
|
+
}
|
|
271
|
+
_camera.centerX = newCenterX;
|
|
272
|
+
}
|
|
273
|
+
if(isNumber(centerY)) {
|
|
274
|
+
const { minY, maxY } = this.getScrollYRange(cacheCamera);
|
|
275
|
+
let newCenterY = centerY;
|
|
276
|
+
if (centerY < minY) {
|
|
277
|
+
newCenterY = minY;
|
|
278
|
+
} else if (centerY > maxY) {
|
|
279
|
+
newCenterY = maxY;
|
|
280
|
+
}
|
|
281
|
+
_camera.centerY = newCenterY;
|
|
282
|
+
}
|
|
283
|
+
this.view.moveCamera({
|
|
284
|
+
..._camera,
|
|
285
|
+
animationMode: 'immediately' as AnimationMode
|
|
286
|
+
})
|
|
287
|
+
this.option.syncView();
|
|
288
|
+
}
|
|
289
|
+
|
|
259
290
|
}
|