@qogni/dygraphs
Version:
dygraphs is a fast, flexible open source JavaScript charting library.
77 lines (73 loc) • 10.2 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", {
value: true
});
exports["default"] = void 0;
var utils = _interopRequireWildcard(require("./dygraph-utils"));
function _getRequireWildcardCache(e) { if ("function" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(e) { return e ? t : r; })(e); }
function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != typeof e && "function" != typeof e) return { "default": e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u && {}.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n["default"] = e, t && t.set(e, n), n; }
/**
* To create a "drag" interaction, you typically register a mousedown event
* handler on the element where the drag begins. In that handler, you register a
* mouseup handler on the window to determine when the mouse is released,
* wherever that release happens. This works well, except when the user releases
* the mouse over an off-domain iframe. In that case, the mouseup event is
* handled by the iframe and never bubbles up to the window handler.
*
* To deal with this issue, we cover iframes with high z-index divs to make sure
* they don't capture mouseup.
*
* Usage:
* element.addEventListener('mousedown', function() {
* var tarper = new IFrameTarp();
* tarper.cover();
* var mouseUpHandler = function() {
* ...
* window.removeEventListener(mouseUpHandler);
* tarper.uncover();
* };
* window.addEventListener('mouseup', mouseUpHandler);
* });
*
* @constructor
*/
function IFrameTarp() {
/** @type {Array.<!HTMLDivElement>} */
this.tarps = [];
}
/**
* Find all the iframes in the document and cover them with high z-index
* transparent divs.
*/
IFrameTarp.prototype.cover = function () {
var iframes = document.getElementsByTagName("iframe");
for (var i = 0; i < iframes.length; i++) {
var iframe = iframes[i];
var pos = utils.findPos(iframe),
x = pos.x,
y = pos.y,
width = iframe.offsetWidth,
height = iframe.offsetHeight;
var div = document.createElement("div");
div.style.position = "absolute";
div.style.left = x + 'px';
div.style.top = y + 'px';
div.style.width = width + 'px';
div.style.height = height + 'px';
div.style.zIndex = 999;
document.body.appendChild(div);
this.tarps.push(div);
}
};
/**
* Remove all the iframe covers. You should call this in a mouseup handler.
*/
IFrameTarp.prototype.uncover = function () {
for (var i = 0; i < this.tarps.length; i++) {
this.tarps[i].parentNode.removeChild(this.tarps[i]);
}
this.tarps = [];
};
var _default = exports["default"] = IFrameTarp;
module.exports = exports.default;
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJ1dGlscyIsIl9pbnRlcm9wUmVxdWlyZVdpbGRjYXJkIiwicmVxdWlyZSIsIl9nZXRSZXF1aXJlV2lsZGNhcmRDYWNoZSIsImUiLCJXZWFrTWFwIiwiciIsInQiLCJfX2VzTW9kdWxlIiwiaGFzIiwiZ2V0IiwibiIsIl9fcHJvdG9fXyIsImEiLCJPYmplY3QiLCJkZWZpbmVQcm9wZXJ0eSIsImdldE93blByb3BlcnR5RGVzY3JpcHRvciIsInUiLCJoYXNPd25Qcm9wZXJ0eSIsImNhbGwiLCJpIiwic2V0IiwiSUZyYW1lVGFycCIsInRhcnBzIiwicHJvdG90eXBlIiwiY292ZXIiLCJpZnJhbWVzIiwiZG9jdW1lbnQiLCJnZXRFbGVtZW50c0J5VGFnTmFtZSIsImxlbmd0aCIsImlmcmFtZSIsInBvcyIsImZpbmRQb3MiLCJ4IiwieSIsIndpZHRoIiwib2Zmc2V0V2lkdGgiLCJoZWlnaHQiLCJvZmZzZXRIZWlnaHQiLCJkaXYiLCJjcmVhdGVFbGVtZW50Iiwic3R5bGUiLCJwb3NpdGlvbiIsImxlZnQiLCJ0b3AiLCJ6SW5kZXgiLCJib2R5IiwiYXBwZW5kQ2hpbGQiLCJwdXNoIiwidW5jb3ZlciIsInBhcmVudE5vZGUiLCJyZW1vdmVDaGlsZCIsIl9kZWZhdWx0IiwiZXhwb3J0cyIsIm1vZHVsZSIsImRlZmF1bHQiXSwic291cmNlcyI6WyIuLi9zcmMvaWZyYW1lLXRhcnAuanMiXSwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBUbyBjcmVhdGUgYSBcImRyYWdcIiBpbnRlcmFjdGlvbiwgeW91IHR5cGljYWxseSByZWdpc3RlciBhIG1vdXNlZG93biBldmVudFxuICogaGFuZGxlciBvbiB0aGUgZWxlbWVudCB3aGVyZSB0aGUgZHJhZyBiZWdpbnMuIEluIHRoYXQgaGFuZGxlciwgeW91IHJlZ2lzdGVyIGFcbiAqIG1vdXNldXAgaGFuZGxlciBvbiB0aGUgd2luZG93IHRvIGRldGVybWluZSB3aGVuIHRoZSBtb3VzZSBpcyByZWxlYXNlZCxcbiAqIHdoZXJldmVyIHRoYXQgcmVsZWFzZSBoYXBwZW5zLiBUaGlzIHdvcmtzIHdlbGwsIGV4Y2VwdCB3aGVuIHRoZSB1c2VyIHJlbGVhc2VzXG4gKiB0aGUgbW91c2Ugb3ZlciBhbiBvZmYtZG9tYWluIGlmcmFtZS4gSW4gdGhhdCBjYXNlLCB0aGUgbW91c2V1cCBldmVudCBpc1xuICogaGFuZGxlZCBieSB0aGUgaWZyYW1lIGFuZCBuZXZlciBidWJibGVzIHVwIHRvIHRoZSB3aW5kb3cgaGFuZGxlci5cbiAqXG4gKiBUbyBkZWFsIHdpdGggdGhpcyBpc3N1ZSwgd2UgY292ZXIgaWZyYW1lcyB3aXRoIGhpZ2ggei1pbmRleCBkaXZzIHRvIG1ha2Ugc3VyZVxuICogdGhleSBkb24ndCBjYXB0dXJlIG1vdXNldXAuXG4gKlxuICogVXNhZ2U6XG4gKiBlbGVtZW50LmFkZEV2ZW50TGlzdGVuZXIoJ21vdXNlZG93bicsIGZ1bmN0aW9uKCkge1xuICogICB2YXIgdGFycGVyID0gbmV3IElGcmFtZVRhcnAoKTtcbiAqICAgdGFycGVyLmNvdmVyKCk7XG4gKiAgIHZhciBtb3VzZVVwSGFuZGxlciA9IGZ1bmN0aW9uKCkge1xuICogICAgIC4uLlxuICogICAgIHdpbmRvdy5yZW1vdmVFdmVudExpc3RlbmVyKG1vdXNlVXBIYW5kbGVyKTtcbiAqICAgICB0YXJwZXIudW5jb3ZlcigpO1xuICogICB9O1xuICogICB3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcignbW91c2V1cCcsIG1vdXNlVXBIYW5kbGVyKTtcbiAqIH0pO1xuICpcbiAqIEBjb25zdHJ1Y3RvclxuICovXG5pbXBvcnQgKiBhcyB1dGlscyBmcm9tICcuL2R5Z3JhcGgtdXRpbHMnO1xuXG5mdW5jdGlvbiBJRnJhbWVUYXJwKCkge1xuICAvKiogQHR5cGUge0FycmF5LjwhSFRNTERpdkVsZW1lbnQ+fSAqL1xuICB0aGlzLnRhcnBzID0gW107XG59XG5cbi8qKlxuICogRmluZCBhbGwgdGhlIGlmcmFtZXMgaW4gdGhlIGRvY3VtZW50IGFuZCBjb3ZlciB0aGVtIHdpdGggaGlnaCB6LWluZGV4XG4gKiB0cmFuc3BhcmVudCBkaXZzLlxuICovXG5JRnJhbWVUYXJwLnByb3RvdHlwZS5jb3ZlciA9IGZ1bmN0aW9uKCkge1xuICB2YXIgaWZyYW1lcyA9IGRvY3VtZW50LmdldEVsZW1lbnRzQnlUYWdOYW1lKFwiaWZyYW1lXCIpO1xuICBmb3IgKHZhciBpID0gMDsgaSA8IGlmcmFtZXMubGVuZ3RoOyBpKyspIHtcbiAgICB2YXIgaWZyYW1lID0gaWZyYW1lc1tpXTtcbiAgICB2YXIgcG9zID0gdXRpbHMuZmluZFBvcyhpZnJhbWUpLFxuICAgICAgICB4ID0gcG9zLngsXG4gICAgICAgIHkgPSBwb3MueSxcbiAgICAgICAgd2lkdGggPSBpZnJhbWUub2Zmc2V0V2lkdGgsXG4gICAgICAgIGhlaWdodCA9IGlmcmFtZS5vZmZzZXRIZWlnaHQ7XG5cbiAgICB2YXIgZGl2ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudChcImRpdlwiKTtcbiAgICBkaXYuc3R5bGUucG9zaXRpb24gPSBcImFic29sdXRlXCI7XG4gICAgZGl2LnN0eWxlLmxlZnQgPSB4ICsgJ3B4JztcbiAgICBkaXYuc3R5bGUudG9wID0geSArICdweCc7XG4gICAgZGl2LnN0eWxlLndpZHRoID0gd2lkdGggKyAncHgnO1xuICAgIGRpdi5zdHlsZS5oZWlnaHQgPSBoZWlnaHQgKyAncHgnO1xuICAgIGRpdi5zdHlsZS56SW5kZXggPSA5OTk7XG4gICAgZG9jdW1lbnQuYm9keS5hcHBlbmRDaGlsZChkaXYpO1xuICAgIHRoaXMudGFycHMucHVzaChkaXYpO1xuICB9XG59O1xuXG4vKipcbiAqIFJlbW92ZSBhbGwgdGhlIGlmcmFtZSBjb3ZlcnMuIFlvdSBzaG91bGQgY2FsbCB0aGlzIGluIGEgbW91c2V1cCBoYW5kbGVyLlxuICovXG5JRnJhbWVUYXJwLnByb3RvdHlwZS51bmNvdmVyID0gZnVuY3Rpb24oKSB7XG4gIGZvciAodmFyIGkgPSAwOyBpIDwgdGhpcy50YXJwcy5sZW5ndGg7IGkrKykge1xuICAgIHRoaXMudGFycHNbaV0ucGFyZW50Tm9kZS5yZW1vdmVDaGlsZCh0aGlzLnRhcnBzW2ldKTtcbiAgfVxuICB0aGlzLnRhcnBzID0gW107XG59O1xuXG5leHBvcnQgZGVmYXVsdCBJRnJhbWVUYXJwO1xuIl0sIm1hcHBpbmdzIjoiOzs7Ozs7QUF5QkEsSUFBQUEsS0FBQSxHQUFBQyx1QkFBQSxDQUFBQyxPQUFBO0FBQXlDLFNBQUFDLHlCQUFBQyxDQUFBLDZCQUFBQyxPQUFBLG1CQUFBQyxDQUFBLE9BQUFELE9BQUEsSUFBQUUsQ0FBQSxPQUFBRixPQUFBLFlBQUFGLHdCQUFBLFlBQUFBLHlCQUFBQyxDQUFBLFdBQUFBLENBQUEsR0FBQUcsQ0FBQSxHQUFBRCxDQUFBLEtBQUFGLENBQUE7QUFBQSxTQUFBSCx3QkFBQUcsQ0FBQSxFQUFBRSxDQUFBLFNBQUFBLENBQUEsSUFBQUYsQ0FBQSxJQUFBQSxDQUFBLENBQUFJLFVBQUEsU0FBQUosQ0FBQSxlQUFBQSxDQUFBLHVCQUFBQSxDQUFBLHlCQUFBQSxDQUFBLHNCQUFBQSxDQUFBLFFBQUFHLENBQUEsR0FBQUosd0JBQUEsQ0FBQUcsQ0FBQSxPQUFBQyxDQUFBLElBQUFBLENBQUEsQ0FBQUUsR0FBQSxDQUFBTCxDQUFBLFVBQUFHLENBQUEsQ0FBQUcsR0FBQSxDQUFBTixDQUFBLE9BQUFPLENBQUEsS0FBQUMsU0FBQSxVQUFBQyxDQUFBLEdBQUFDLE1BQUEsQ0FBQUMsY0FBQSxJQUFBRCxNQUFBLENBQUFFLHdCQUFBLFdBQUFDLENBQUEsSUFBQWIsQ0FBQSxvQkFBQWEsQ0FBQSxPQUFBQyxjQUFBLENBQUFDLElBQUEsQ0FBQWYsQ0FBQSxFQUFBYSxDQUFBLFNBQUFHLENBQUEsR0FBQVAsQ0FBQSxHQUFBQyxNQUFBLENBQUFFLHdCQUFBLENBQUFaLENBQUEsRUFBQWEsQ0FBQSxVQUFBRyxDQUFBLEtBQUFBLENBQUEsQ0FBQVYsR0FBQSxJQUFBVSxDQUFBLENBQUFDLEdBQUEsSUFBQVAsTUFBQSxDQUFBQyxjQUFBLENBQUFKLENBQUEsRUFBQU0sQ0FBQSxFQUFBRyxDQUFBLElB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