@@ -15,7 +15,7 @@ export type OverlayLayer = {
1515 * @returns {void }
1616 */
1717export 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