Skip to content

Commit 2eb285d

Browse files
fix(overlay): change zIndex type from number to string
1 parent e030d84 commit 2eb285d

File tree

1 file changed

+9
-7
lines changed

1 file changed

+9
-7
lines changed

packages/elements/src/overlay/managers/zindex-manager.ts

Lines changed: 9 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,7 @@ export type OverlayLayer = {
1515
* @returns {void}
1616
*/
1717
export class ZIndexManager {
18-
private registry: Map<Overlay, number> = new Map();
18+
private registry: Map<Overlay, string> = new Map();
1919
private focusThrottled = new AfterRenderTaskRunner();
2020

2121
private sortByZIndex(overlays: OverlayLayer[]): OverlayLayer[] {
@@ -47,15 +47,15 @@ export class ZIndexManager {
4747

4848
this.registry.forEach((zIndex, overlay) => {
4949
overlays.push({
50-
zIndex,
50+
zIndex: Number.parseInt(zIndex, 10),
5151
overlay
5252
});
5353
});
5454

5555
return this.sortByZIndex(overlays);
5656
}
5757

58-
private setZIndex(overlay: Overlay, zIndex: number): void {
58+
private setZIndex(overlay: Overlay, zIndex: string): void {
5959
const oldZIndex = this.registry.get(overlay);
6060
if (oldZIndex !== zIndex) {
6161
this.registry.set(overlay, zIndex);
@@ -106,12 +106,12 @@ export class ZIndexManager {
106106
};
107107

108108
public toFront(overlay: Overlay): void {
109-
this.setZIndex(overlay, this.getNextZIndex(overlay));
109+
this.setZIndex(overlay, String(this.getNextZIndex(overlay)));
110110
}
111111

112112
public register(overlay: Overlay): void {
113113
if (!this.registry.has(overlay)) {
114-
let zIndex: number;
114+
let zIndex: number | string;
115115

116116
if (typeof overlay.zIndex === 'number') {
117117
const overlayZIndex = overlay.zIndex;
@@ -121,15 +121,17 @@ export class ZIndexManager {
121121
const nextZIndex = this.getNextZIndex(overlay);
122122
zIndex = overlayZIndex > nextZIndex ? overlayZIndex : nextZIndex;
123123
}
124+
} else if (overlay.zIndex === 'auto') {
125+
zIndex = overlay.zIndex;
124126
} else {
125127
zIndex = this.registry.size === 0 ? ZIndex : this.getNextZIndex(overlay);
126128
}
127129

128-
this.setZIndex(overlay, zIndex);
130+
this.setZIndex(overlay, String(zIndex));
129131
overlay.addEventListener('focus', this.onFocus);
130132
} else if (typeof overlay.zIndex === 'number') {
131133
/* z-index has set manually. If it is removed, do nothing */
132-
this.setZIndex(overlay, overlay.zIndex);
134+
this.setZIndex(overlay, String(overlay.zIndex));
133135
}
134136
}
135137

0 commit comments

Comments
 (0)