]>
git.proxmox.com Git - ceph.git/blob - ceph/src/pybind/mgr/dashboard/static/AdminLTE-2.3.7/plugins/flot/jquery.flot.stack.min.js
1 (function($){var options
={series
:{stack
:null}};function init(plot
){function findMatchingSeries(s
,allseries
){var res
=null;for(var i
=0;i
<allseries
.length
;++i
){if(s
==allseries
[i
])break;if(allseries
[i
].stack
==s
.stack
)res
=allseries
[i
]}return res
}function stackData(plot
,s
,datapoints
){if(s
.stack
==null||s
.stack
===false)return;var other
=findMatchingSeries(s
,plot
.getData());if(!other
)return;var ps
=datapoints
.pointsize
,points
=datapoints
.points
,otherps
=other
.datapoints
.pointsize
,otherpoints
=other
.datapoints
.points
,newpoints
=[],px
,py
,intery
,qx
,qy
,bottom
,withlines
=s
.lines
.show
,horizontal
=s
.bars
.horizontal
,withbottom
=ps
>2&&(horizontal
?datapoints
.format
[2].x
:datapoints
.format
[2].y
),withsteps
=withlines
&&s
.lines
.steps
,fromgap
=true,keyOffset
=horizontal
?1:0,accumulateOffset
=horizontal
?0:1,i
=0,j
=0,l
,m
;while(true){if(i
>=points
.length
)break;l
=newpoints
.length
;if(points
[i
]==null){for(m
=0;m
<ps
;++m
)newpoints
.push(points
[i
+m
]);i
+=ps
}else if(j
>=otherpoints
.length
){if(!withlines
){for(m
=0;m
<ps
;++m
)newpoints
.push(points
[i
+m
])}i
+=ps
}else if(otherpoints
[j
]==null){for(m
=0;m
<ps
;++m
)newpoints
.push(null);fromgap
=true;j
+=otherps
}else{px
=points
[i
+keyOffset
];py
=points
[i
+accumulateOffset
];qx
=otherpoints
[j
+keyOffset
];qy
=otherpoints
[j
+accumulateOffset
];bottom
=0;if(px
==qx
){for(m
=0;m
<ps
;++m
)newpoints
.push(points
[i
+m
]);newpoints
[l
+accumulateOffset
]+=qy
;bottom
=qy
;i
+=ps
;j
+=otherps
}else if(px
>qx
){if(withlines
&&i
>0&&points
[i
-ps
]!=null){intery
=py
+(points
[i
-ps
+accumulateOffset
]-py
)*(qx
-px
)/(points[i-ps+keyOffset]-px);newpoints.push(qx);newpoints.push(intery+qy);for(m=2;m<ps;++m)newpoints.push(points[i+m]);bottom=qy}j+=otherps}else{if(fromgap&&withlines){i+=ps;continue}for(m=0;m<ps;++m)newpoints.push(points[i+m]);if(withlines&&j>0&&otherpoints[j-otherps]!=null)bottom=qy+(otherpoints[j-otherps+accumulateOffset]-qy)*(px-qx)/(otherpoints
[j
-otherps
+keyOffset
]-qx
);newpoints
[l
+accumulateOffset
]+=bottom
;i
+=ps
}fromgap
=false;if(l
!=newpoints
.length
&&withbottom
)newpoints
[l
+2]+=bottom
}if(withsteps
&&l
!=newpoints
.length
&&l
>0&&newpoints
[l
]!=null&&newpoints
[l
]!=newpoints
[l
-ps
]&&newpoints
[l
+1]!=newpoints
[l
-ps
+1]){for(m
=0;m
<ps
;++m
)newpoints
[l
+ps
+m
]=newpoints
[l
+m
];newpoints
[l
+1]=newpoints
[l
-ps
+1]}}datapoints
.points
=newpoints
}plot
.hooks
.processDatapoints
.push(stackData
)}$.plot
.plugins
.push({init
:init
,options
:options
,name
:"stack",version
:"1.2"})})(jQuery
);