fix: Error when a zoomable element is removed during zoom initialization (#2624)
- Closes: #2410
This commit is contained in:
+1
-1
@@ -18,7 +18,7 @@
|
|||||||
"license": "MIT",
|
"license": "MIT",
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"@cycjimmy/jsmpeg-player": "^6.0.5",
|
"@cycjimmy/jsmpeg-player": "^6.0.5",
|
||||||
"@dermotduffy/panzoom": "^4.5.1",
|
"@dermotduffy/panzoom": "^4.6.2",
|
||||||
"@egjs/hammerjs": "^2.0.17",
|
"@egjs/hammerjs": "^2.0.17",
|
||||||
"@graphiteds/core": "^1.9.21",
|
"@graphiteds/core": "^1.9.21",
|
||||||
"@lit-labs/scoped-registry-mixin": "^1.0.3",
|
"@lit-labs/scoped-registry-mixin": "^1.0.3",
|
||||||
|
|||||||
@@ -18,7 +18,7 @@ import {
|
|||||||
|
|
||||||
export class ZoomController {
|
export class ZoomController {
|
||||||
private _element: HTMLElement;
|
private _element: HTMLElement;
|
||||||
private _panzoom?: PanzoomObject;
|
private _panzoom: PanzoomObject | null = null;
|
||||||
|
|
||||||
// Is the controller zoomed in at all?
|
// Is the controller zoomed in at all?
|
||||||
private _zoomed = false;
|
private _zoomed = false;
|
||||||
@@ -184,6 +184,8 @@ export class ZoomController {
|
|||||||
|
|
||||||
this._resizeObserver.disconnect();
|
this._resizeObserver.disconnect();
|
||||||
this._element.removeEventListener('panzoomchange', this._debouncedChangeHandler);
|
this._element.removeEventListener('panzoomchange', this._debouncedChangeHandler);
|
||||||
|
|
||||||
|
this._panzoom = null;
|
||||||
}
|
}
|
||||||
|
|
||||||
public setDefaultSettings(config: PartialZoomSettings | null): void {
|
public setDefaultSettings(config: PartialZoomSettings | null): void {
|
||||||
|
|||||||
@@ -655,6 +655,9 @@ describe('ZoomController', () => {
|
|||||||
|
|
||||||
controller.activate();
|
controller.activate();
|
||||||
expect(controller.isActivated()).toBe(true);
|
expect(controller.isActivated()).toBe(true);
|
||||||
|
|
||||||
|
controller.deactivate();
|
||||||
|
expect(controller.isActivated()).toBe(false);
|
||||||
});
|
});
|
||||||
|
|
||||||
it('should not zoom or pan when zoom is disabled', () => {
|
it('should not zoom or pan when zoom is disabled', () => {
|
||||||
|
|||||||
@@ -209,10 +209,10 @@ __metadata:
|
|||||||
languageName: node
|
languageName: node
|
||||||
linkType: hard
|
linkType: hard
|
||||||
|
|
||||||
"@dermotduffy/panzoom@npm:^4.5.1":
|
"@dermotduffy/panzoom@npm:^4.6.2":
|
||||||
version: 4.5.1
|
version: 4.6.2
|
||||||
resolution: "@dermotduffy/panzoom@npm:4.5.1"
|
resolution: "@dermotduffy/panzoom@npm:4.6.2"
|
||||||
checksum: 10c0/566f62a81714f9b836b6c0138cdc9913577c3854fe7ce6b609e26734c6692a3db5c9282945930bb6e83c0a70befa269203694f9aeb588e8831842a698c7b51cf
|
checksum: 10c0/a9c105a2be9dfd1f20e87dc091263579c0f1f4ce6ea0dfe045aa1c5d8c2aea9417783b3f994276e4a840b4bb78f1a048953d4ce7e056ad4d45ed31fae8158b5e
|
||||||
languageName: node
|
languageName: node
|
||||||
linkType: hard
|
linkType: hard
|
||||||
|
|
||||||
@@ -2324,7 +2324,7 @@ __metadata:
|
|||||||
resolution: "advanced-camera-card@workspace:."
|
resolution: "advanced-camera-card@workspace:."
|
||||||
dependencies:
|
dependencies:
|
||||||
"@cycjimmy/jsmpeg-player": "npm:^6.0.5"
|
"@cycjimmy/jsmpeg-player": "npm:^6.0.5"
|
||||||
"@dermotduffy/panzoom": "npm:^4.5.1"
|
"@dermotduffy/panzoom": "npm:^4.6.2"
|
||||||
"@egjs/hammerjs": "npm:^2.0.17"
|
"@egjs/hammerjs": "npm:^2.0.17"
|
||||||
"@eslint/eslintrc": "npm:^3.3.6"
|
"@eslint/eslintrc": "npm:^3.3.6"
|
||||||
"@eslint/js": "npm:^9.24.0"
|
"@eslint/js": "npm:^9.24.0"
|
||||||
|
|||||||
Reference in New Issue
Block a user