plotly.js
Version:
The open source javascript graphing library that powers plotly
38 lines (33 loc) • 1.17 kB
JavaScript
var setCursor = require('./setcursor');
var STASHATTR = 'data-savedcursor';
var NO_CURSOR = '!!';
/*
* works with our CSS cursor classes (see css/_cursor.scss)
* to override a previous cursor set on d3 single-element selections,
* by moving the name of the original cursor to the data-savedcursor attr.
* omit cursor to revert to the previously set value.
*/
module.exports = function overrideCursor(el3, csr) {
var savedCursor = el3.attr(STASHATTR);
if(csr) {
if(!savedCursor) {
var classes = (el3.attr('class') || '').split(' ');
for(var i = 0; i < classes.length; i++) {
var cls = classes[i];
if(cls.indexOf('cursor-') === 0) {
el3.attr(STASHATTR, cls.substr(7))
.classed(cls, false);
}
}
if(!el3.attr(STASHATTR)) {
el3.attr(STASHATTR, NO_CURSOR);
}
}
setCursor(el3, csr);
} else if(savedCursor) {
el3.attr(STASHATTR, null);
if(savedCursor === NO_CURSOR) setCursor(el3);
else setCursor(el3, savedCursor);
}
};
;