feat: Implement support for gesture-based PTZ control (#2378)

- Closes: #1839
This commit is contained in:
Dermot Duffy
2026-02-28 20:36:53 -08:00
committed by GitHub
parent 40ad3b4460
commit ea86ad0016
32 changed files with 1714 additions and 126 deletions
@@ -640,6 +640,36 @@ describe('ZoomController', () => {
});
});
it('should report activation state', () => {
const element = document.createElement('div');
vi.mocked(Panzoom).mockReturnValueOnce(createMockPanZoom());
const controller = new ZoomController(element);
expect(controller.isActivated()).toBe(false);
controller.activate();
expect(controller.isActivated()).toBe(true);
});
it('should not zoom or pan when zoom is disabled', () => {
const element = document.createElement('div');
const panzoom = createMockPanZoom();
vi.mocked(Panzoom).mockReturnValueOnce(panzoom);
const controller = createAndRegisterZoom(element);
// Simulate being zoomed in.
panzoom.getScale = vi.fn().mockReturnValue(1.2);
controller.setZoom(false);
const ev = new PointerEvent('pointerdown');
element.dispatchEvent(ev);
expect(panzoom.handleDown).not.toBeCalled();
});
it('should set touch action on zoom/unzoom', () => {
const element = document.createElement('div');
vi.mocked(Panzoom).mockReturnValueOnce(createMockPanZoom());