@@ -82,12 +82,10 @@ const getSlaLabel = (chartElement, slaPathElementIdentifier, fillColor) => {
8282 return slaLabelText ;
8383} ;
8484
85- const calculateSlaProcentile = ( { chartElement, slaPosition } ) => {
86- const singleIssuesUnderSlaCount = [ ...chartElement . querySelectorAll ( 'g.layer.issues circle.issue' ) ] . filter (
87- issue => issue . attributes . cy . value >= slaPosition
88- ) . length ;
85+ const calculateSlaProcentile = ( { slaPosition, issues, issuesCluster } ) => {
86+ const singleIssuesUnderSlaCount = issues . filter ( issue => issue . attributes . cy . value >= slaPosition ) . length ;
8987
90- const issuesInClustersUnderSlaCount = [ ... chartElement . querySelectorAll ( 'g.layer.issue-clusters circle.cluster' ) ]
88+ const issuesInClustersUnderSlaCount = issuesCluster
9189 . filter ( issue => issue . attributes . cy . value >= slaPosition )
9290 . map ( cluster =>
9391 Math . round (
@@ -119,7 +117,7 @@ const renderSlaPercentageLabel = ({ chartElement, value, slaProcentile, slaPosit
119117 slaLabel . setAttributeNS ( null , 'y' , slaPosition + 12 ) ;
120118} ;
121119
122- const findDiaposonForSlaRectPosition = ( { chartElement , slaProcentile, ticsVals } ) => {
120+ const findDiaposonForSlaRectPosition = ( { slaProcentile, ticsVals, issues , issuesCluster } ) => {
123121 const maxDay = ticsVals [ ticsVals . length - 1 ] . value ;
124122 const slaPosition = [ 0 , 0 ] ;
125123 const step = maxDay < 50 ? 0.5 : 1 ;
@@ -131,7 +129,7 @@ const findDiaposonForSlaRectPosition = ({ chartElement, slaProcentile, ticsVals
131129
132130 while ( pIn < 2 && day <= maxDay ) {
133131 valPosition = getChartLinePosition ( ticsVals , day ) ;
134- fProcentile = calculateSlaProcentile ( { chartElement , slaPosition : valPosition } ) ;
132+ fProcentile = calculateSlaProcentile ( { slaPosition , issues , issuesCluster } ) ;
135133
136134 day += step ; // for case if user set fractional number to input
137135 if ( fProcentile === slaProcentile ) {
@@ -161,6 +159,9 @@ const findDiaposonForSlaRectPosition = ({ chartElement, slaProcentile, ticsVals
161159const renderSlaLine = ( sla , chartElement , changingSlaValue = sla ) => {
162160 const ticsVals = getChartTics ( chartElement ) ;
163161
162+ const issues = [ ...chartElement . querySelectorAll ( 'g.layer.issues circle.issue' ) ] ;
163+ const issuesCluster = [ ...chartElement . querySelectorAll ( 'g.layer.issue-clusters circle.cluster' ) ] ;
164+
164165 const meanLine = chartElement . querySelector ( '.control-chart-mean' ) ;
165166 const [ , rightPoint ] = meanLine . getAttribute ( 'd' ) . split ( 'L' ) ;
166167 const [ lineLength ] = rightPoint . split ( ',' ) ;
@@ -169,11 +170,12 @@ const renderSlaLine = (sla, chartElement, changingSlaValue = sla) => {
169170 const slaPosition = getChartLinePosition ( ticsVals , value ) ;
170171 if ( Number . isNaN ( slaPosition ) ) return ;
171172
172- const slaProcentile = calculateSlaProcentile ( { chartElement , slaPosition } ) ;
173+ const slaProcentile = calculateSlaProcentile ( { slaPosition , issues , issuesCluster } ) ;
173174 const [ minSlaPosition , maxSlaPosition ] = findDiaposonForSlaRectPosition ( {
174- chartElement,
175175 slaProcentile,
176176 ticsVals,
177+ issues,
178+ issuesCluster,
177179 } ) ;
178180
179181 const slaPath = getBasicSlaPath ( chartElement , pathId , strokeColor ) ;
0 commit comments