1
1
import {
2
- forEachNodeList ,
3
2
getLastItemOfNodeList ,
4
3
getParentByClassName ,
5
4
removeChildren ,
@@ -87,7 +86,7 @@ class OverlayManager implements OverlayManagerClass {
87
86
* Opens an overlay - rerenders others internaly
88
87
*/
89
88
public openOverlay ( index : number , y : number , detailsHeight : number ,
90
- entry : WaterfallEntry , barEls : SVGGElement [ ] ) {
89
+ entry : WaterfallEntry , rowItems : SVGAElement [ ] ) {
91
90
if ( this . openOverlays . some ( ( o ) => o . index === index ) ) {
92
91
return ;
93
92
}
@@ -97,61 +96,61 @@ class OverlayManager implements OverlayManagerClass {
97
96
"entry" : entry ,
98
97
"index" : index ,
99
98
"onClose" : ( ) => {
100
- self . closeOverlay ( index , detailsHeight , barEls ) ;
99
+ self . closeOverlay ( index , detailsHeight , rowItems ) ;
101
100
} ,
102
101
"openTabIndex" : 0 ,
103
102
} ;
104
103
this . openOverlays . push ( newOverlay ) ;
105
104
this . openOverlays = this . openOverlays . sort ( ( a , b ) => a . index > b . index ? 1 : - 1 ) ;
106
105
107
- this . renderOverlays ( detailsHeight ) ;
106
+ this . renderOverlays ( detailsHeight , rowItems ) ;
108
107
this . context . pubSub . publishToOverlayChanges ( {
109
108
"changedIndex" : index ,
110
109
"changedOverlay" : newOverlay ,
111
110
"combinedOverlayHeight" : self . getCombinedOverlayHeight ( ) ,
112
111
"openOverlays" : self . openOverlays ,
113
112
"type" : "open" ,
114
113
} as OverlayChangeEvent ) ;
115
- this . realignBars ( barEls ) ;
114
+ this . realignBars ( rowItems ) ;
116
115
}
117
116
118
117
/**
119
118
* Toggles an overlay - rerenders others
120
119
*/
121
120
public toggleOverlay ( index : number , y : number , detailsHeight : number ,
122
- entry : WaterfallEntry , barEls : SVGGElement [ ] ) {
121
+ entry : WaterfallEntry , rowItems : SVGAElement [ ] ) {
123
122
if ( this . openOverlays . some ( ( o ) => o . index === index ) ) {
124
- this . closeOverlay ( index , detailsHeight , barEls ) ;
123
+ this . closeOverlay ( index , detailsHeight , rowItems ) ;
125
124
} else {
126
- this . openOverlay ( index , y , detailsHeight , entry , barEls ) ;
125
+ this . openOverlay ( index , y , detailsHeight , entry , rowItems ) ;
127
126
}
128
127
}
129
128
130
129
/**
131
130
* closes on overlay - rerenders others internally
132
131
*/
133
- public closeOverlay ( index : number , detailsHeight : number , barEls : SVGGElement [ ] ) {
132
+ public closeOverlay ( index : number , detailsHeight : number , rowItems : SVGAElement [ ] ) {
134
133
const self = this ;
135
134
this . openOverlays . splice ( this . openOverlays . reduce ( ( prev : number , curr , i ) => {
136
135
return ( curr . index === index ) ? i : prev ;
137
136
} , - 1 ) , 1 ) ;
138
137
139
- this . renderOverlays ( detailsHeight ) ;
138
+ this . renderOverlays ( detailsHeight , rowItems ) ;
140
139
this . context . pubSub . publishToOverlayChanges ( {
141
140
"changedIndex" : index ,
142
141
"combinedOverlayHeight" : self . getCombinedOverlayHeight ( ) ,
143
142
"openOverlays" : self . openOverlays ,
144
143
"type" : "closed" ,
145
144
} as OverlayChangeEvent ) ;
146
- this . realignBars ( barEls ) ;
145
+ this . realignBars ( rowItems ) ;
147
146
}
148
147
149
148
/**
150
149
* sets the offset for request-bars
151
- * @param {SVGGElement [] } barEls
150
+ * @param {SVGAElement [] } rowItems
152
151
*/
153
- private realignBars ( barEls : SVGGElement [ ] ) {
154
- barEls . forEach ( ( bar , j ) => {
152
+ private realignBars ( rowItems : SVGAElement [ ] ) {
153
+ rowItems . forEach ( ( bar , j ) => {
155
154
let offset = this . getOverlayOffset ( j ) ;
156
155
bar . setAttribute ( "transform" , `translate(0, ${ offset } )` ) ;
157
156
} ) ;
@@ -173,9 +172,9 @@ class OverlayManager implements OverlayManagerClass {
173
172
* @summary this is to re-set the "y" position since there is a bug in chrome with
174
173
* tranform of an SVG and positioning/scoll of a foreignObjects
175
174
* @param {number } detailsHeight
176
- * @param {SVGGElement } overlayHolder
175
+ * @param {SVGAElement[] } rowItems
177
176
*/
178
- private renderOverlays ( detailsHeight : number ) {
177
+ private renderOverlays ( detailsHeight : number , rowItems : SVGAElement [ ] ) {
179
178
/** shared variable to keep track of heigth */
180
179
let currY = 0 ;
181
180
let updateHeight = ( overlay , y , currHeight ) => {
@@ -200,8 +199,8 @@ class OverlayManager implements OverlayManagerClass {
200
199
updateHeight ( overlay , y , infoOverlay . getBoundingClientRect ( ) . height ) ;
201
200
} ;
202
201
203
- const rowItems = this . rowHolder . getElementsByClassName ( "row-item" ) as NodeListOf < SVGAElement > ;
204
- forEachNodeList ( rowItems , ( rowItem , index ) => {
202
+ // const rowItems = this.rowHolder.getElementsByClassName("row-item") as NodeListOf<SVGAElement>;
203
+ rowItems . forEach ( ( rowItem , index ) => {
205
204
const overlay = find ( this . openOverlays , ( o ) => o . index === index ) ;
206
205
const overlayEl = rowItem . nextElementSibling . firstElementChild as SVGGElement ;
207
206
if ( overlay === undefined ) {
0 commit comments