[ts][wecomponents] Determine overlay z-index when widget is added.

This commit is contained in:
Davide Tantillo 2025-05-12 11:43:11 +02:00
parent 428b3f09cd
commit 4acd202f41

View File

@ -149,6 +149,8 @@ export class SpineWebComponentOverlay extends HTMLElement implements OverlayAttr
private lastCanvasBaseWidth = 0;
private lastCanvasBaseHeight = 0;
private zIndex?: number;
private disposed = false;
private loaded = false;
@ -376,6 +378,8 @@ export class SpineWebComponentOverlay extends HTMLElement implements OverlayAttr
this.parentElement!.appendChild(this);
}
}
this.updateZIndexIfNecessary(widget);
}
/**
@ -1000,6 +1004,23 @@ export class SpineWebComponentOverlay extends HTMLElement implements OverlayAttr
this.canvas.style.transform = `translate(${scrollPositionX}px,${scrollPositionY}px)`;
}
private updateZIndexIfNecessary (element: HTMLElement) {
let parent: HTMLElement | null = element;
let zIndex: undefined | number;
do {
let currentZIndex = parseInt(parent!.style.zIndex);
// searching the shallowest z-index
if (!isNaN(currentZIndex)) zIndex = currentZIndex;
parent = parent.parentElement;
} while (parent && parent !== document.body)
if (zIndex && (!this.zIndex || this.zIndex < zIndex)) {
this.zIndex = zIndex;
this.div.style.zIndex = `${this.zIndex}`;
}
}
/*
* Other utilities
*/