UNPKG

@future-grid/fgp-graph

Version:

fgp-graph is a chart lib based on Dygraphs

109 lines (80 loc) 10.7 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports["default"] = void 0; function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; } var CrossHairs = // function CrossHairs(opts) { var _this = this; _classCallCheck(this, CrossHairs); _defineProperty(this, "direction", 'v'); _defineProperty(this, "graph", void 0); _defineProperty(this, "canvas_", void 0); _defineProperty(this, "activate", function (graph) { // update graph _this.graph = graph; _this.graph.graphDiv.appendChild(_this.canvas_); return { select: _this.select, deselect: _this.deselect }; }); _defineProperty(this, "select", function (e) { var _this$graph, _this$graph2; // never get null direction, default V if (_this.direction === null) { return; } var width = (_this$graph = _this.graph) === null || _this$graph === void 0 ? void 0 : _this$graph.width_; var height = (_this$graph2 = _this.graph) === null || _this$graph2 === void 0 ? void 0 : _this$graph2.height_; if (_this.canvas_) { var _this$canvas_; _this.canvas_.width = width; _this.canvas_.height = height; _this.canvas_.style.width = width + 'px'; // for IE _this.canvas_.style.height = height + 'px'; // for IE var ctx = (_this$canvas_ = _this.canvas_) === null || _this$canvas_ === void 0 ? void 0 : _this$canvas_.getContext('2d'); if (ctx && _this.graph && _this.graph.selPoints_ && _this.graph.selPoints_.length > 0) { ctx.clearRect(0, 0, width, height); ctx.strokeStyle = 'rgba(0, 0, 0,0.3)'; ctx.beginPath(); var canvasx = Math.floor(_this.graph.selPoints_[0].canvasx) + 0.5; // crisper rendering if (_this.direction === 'v' || _this.direction === 'both') { ctx.moveTo(canvasx, 0); ctx.lineTo(canvasx, height); } if (_this.direction === 'h' || _this.direction === 'both') { for (var i = 0; i < _this.graph.selPoints_.length; i++) { var canvasy = Math.floor(_this.graph.selPoints_[i].canvasy) + 0.5; // crisper rendering ctx.moveTo(0, canvasy); ctx.lineTo(width, canvasy); } } ctx.stroke(); ctx.closePath(); } } }); _defineProperty(this, "deselect", function (e) { // if (_this.canvas_) { var ctx = _this.canvas_.getContext('2d'); if (ctx) { ctx.clearRect(0, 0, _this.canvas_.width, _this.canvas_.height); } } }); _defineProperty(this, "destroy", function () { _this.canvas_ = null; }); // if (opts.direction) { this.direction = opts.direction; } this.canvas_ = document.createElement('canvas'); } // ; exports["default"] = CrossHairs; //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9leHRyYXMvcGx1Z2lucy9Dcm9zc0hhaXJzLnRzIl0sIm5hbWVzIjpbIkNyb3NzSGFpcnMiLCJvcHRzIiwiZ3JhcGgiLCJncmFwaERpdiIsImFwcGVuZENoaWxkIiwiY2FudmFzXyIsInNlbGVjdCIsImRlc2VsZWN0IiwiZSIsImRpcmVjdGlvbiIsIndpZHRoIiwid2lkdGhfIiwiaGVpZ2h0IiwiaGVpZ2h0XyIsInN0eWxlIiwiY3R4IiwiZ2V0Q29udGV4dCIsInNlbFBvaW50c18iLCJsZW5ndGgiLCJjbGVhclJlY3QiLCJzdHJva2VTdHlsZSIsImJlZ2luUGF0aCIsImNhbnZhc3giLCJNYXRoIiwiZmxvb3IiLCJtb3ZlVG8iLCJsaW5lVG8iLCJpIiwiY2FudmFzeSIsInN0cm9rZSIsImNsb3NlUGF0aCIsImRvY3VtZW50IiwiY3JlYXRlRWxlbWVudCJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7SUFBcUJBLFUsR0FDakI7QUFJQSxvQkFBWUMsSUFBWixFQUEwQztBQUFBOztBQUFBOztBQUFBLHFDQUhkLEdBR2M7O0FBQUE7O0FBQUE7O0FBQUEsb0NBUy9CLFVBQUNDLEtBQUQsRUFBb0I7QUFDM0I7QUFDQSxJQUFBLEtBQUksQ0FBQ0EsS0FBTCxHQUFhQSxLQUFiOztBQUNBLElBQUEsS0FBSSxDQUFDQSxLQUFMLENBQVdDLFFBQVgsQ0FBb0JDLFdBQXBCLENBQWdDLEtBQUksQ0FBQ0MsT0FBckM7O0FBQ0EsV0FBTztBQUNIQyxNQUFBQSxNQUFNLEVBQUUsS0FBSSxDQUFDQSxNQURWO0FBRUhDLE1BQUFBLFFBQVEsRUFBRSxLQUFJLENBQUNBO0FBRlosS0FBUDtBQUlILEdBakJ5Qzs7QUFBQSxrQ0FtQmpDLFVBQUNDLENBQUQsRUFBbUI7QUFBQTs7QUFDeEI7QUFDQSxRQUFJLEtBQUksQ0FBQ0MsU0FBTCxLQUFtQixJQUF2QixFQUE2QjtBQUN6QjtBQUNIOztBQUVELFFBQUlDLEtBQUssa0JBQUcsS0FBSSxDQUFDUixLQUFSLGdEQUFH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QUFDTCxPQUFMLENBQWFPLE1BQXJEO0FBQ0g7QUFDSjtBQUNKLEdBekV5Qzs7QUFBQSxtQ0EyRWhDLFlBQU07QUFDWixJQUFBLEtBQUksQ0FBQ1AsT0FBTCxHQUFlLElBQWY7QUFDSCxHQTdFeUM7O0FBQ3RDO0FBQ0EsTUFBSUosSUFBSSxDQUFDUSxTQUFULEVBQW9CO0FBQ2hCLFNBQUtBLFNBQUwsR0FBaUJSLElBQUksQ0FBQ1EsU0FBdEI7QUFDSDs7QUFDRCxPQUFLSixPQUFMLEdBQWUwQixRQUFRLENBQUNDLGFBQVQsQ0FBdUIsUUFBdkIsQ0FBZjtBQUNILEMsQ0FFRCIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCBkZWZhdWx0IGNsYXNzIENyb3NzSGFpcnMge1xuICAgIC8vXG4gICAgcHJpdmF0ZSBkaXJlY3Rpb246IHN0cmluZyA9ICd2JztcbiAgICBwcml2YXRlIGdyYXBoPzogYW55O1xuICAgIHByaXZhdGUgY2FudmFzXzogSFRNTENhbnZhc0VsZW1lbnQgfCBudWxsO1xuICAgIGNvbnN0cnVjdG9yKG9wdHM6IHsgZGlyZWN0aW9uPzogc3RyaW5nIH0pIHtcbiAgICAgICAgLy9cbiAgICAgICAgaWYgKG9wdHMuZGlyZWN0aW9uKSB7XG4gICAgICAgICAgICB0aGlzLmRpcmVjdGlvbiA9IG9wdHMuZGlyZWN0aW9uO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMuY2FudmFzXyA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2NhbnZhcycpO1xuICAgIH1cblxuICAgIC8vXG4gICAgYWN0aXZhdGUgPSAoZ3JhcGg6IER5Z3JhcGgpID0+IHtcbiAgICAgICAgLy8gdXBkYXRlIGdyYXBoXG4gICAgICAgIHRoaXMuZ3JhcGggPSBncmFwaDtcbiAgICAgICAgdGhpcy5ncmFwaC5ncmFwaERpdi5hcHBlbmRDaGlsZCh0aGlzLmNhbnZhc18pO1xuICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgc2VsZWN0OiB0aGlzLnNlbGVjdCxcbiAgICAgICAgICAgIGRlc2VsZWN0OiB0aGlzLmRlc2VsZWN0LFxuICAgICAgICB9O1xuICAgIH07XG5cbiAgICBzZWxlY3QgPSAoZTogTW91c2VFdmVudCkgPT4ge1xuICAgICAgICAvLyBuZXZlciBnZXQgbnVsbCBkaXJlY3Rpb24sIGRlZmF1bHQgVlxuICAgICAgICBpZiAodGhpcy5kaXJlY3Rpb24gPT09IG51bGwpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuXG4gICAgICAgIGxldCB3aWR0aCA9IHRoaXMuZ3JhcGg/LndpZHRoXztcbiAgICAgICAgbGV0IGhlaWdodCA9IHRoaXMuZ3JhcGg/LmhlaWdodF87XG4gICAgICAgIGlmICh0aGlzLmNhbnZhc18pIHtcbiAgICAgICAgICAgIHRoaXMuY2FudmFzXy53aWR0aCA9IHdpZHRoO1xuICAgICAgICAgICAgdGhpcy5jYW52YXNfLmhlaWdodCA9IGhlaWdodDtcbiAgICAgICAgICAgIHRoaXMuY2FudmFzXy5zdHlsZS53aWR0aCA9IHdpZHRoICsgJ3B4JzsgLy8gZm9yIElFXG4gICAgICAgICAgICB0aGlzLmNhbnZhc18uc3R5bGUuaGVpZ2h0ID0gaGVpZ2h0ICsgJ3B4JzsgLy8gZm9yIElFXG4gICAgICAgICAgICBsZXQgY3R4ID0gdGhpcy5jYW52YXNfPy5nZXRDb250ZXh0KCcyZCcpO1xuICAgICAgICAgICAgaWYgKFxuICAgICAgICAgICAgICAgIGN0eCAmJlxuICAgICAgICAgICAgICAgIHRoaXMuZ3JhcGggJiZcbiAgICAgICAgICAgICAgICB0aGlzLmdyYXBoLnNlbFBvaW50c18gJiZcbiAgICAgICAgICAgICAgICB0aGlzLmdyYXBoLnNlbFBvaW50c18ubGVuZ3RoID4gMFxuICAgICAgICAgICAgKSB7XG4gICAgICAgICAgICAgICAgY3R4LmNsZWFyUmVjdCgwLCAwLCB3aWR0aCwgaGVpZ2h0KTtcbiAgICAgICAgICAgICAgICBjdHguc3Ryb2tlU3R5bGUgPSAncmdiYSgwLCAwLCAwLDAuMyknO1xuICAgICAgICAgICAgICAgIGN0eC5iZWdpblBhdGgoKTtcbiAgICAgICAgICAgICAgICBsZXQgY2FudmFzeCA9XG4gICAgICAgICAgICAgICAgICAgIE1hdGguZmxvb3IodGhpcy5ncmFwaC5zZWxQb2ludHNfWzBdLmNhbnZhc3gpICsgMC41OyAvLyBjcmlzcGVyIHJlbmRlcmluZ1xuXG4gICAgICAgICAgICAgICAgaWYgKHRoaXMuZGlyZWN0aW9uID09PSAndicgfHwgdGhpcy5kaXJlY3Rpb24gPT09ICdib3RoJykge1xuICAgICAgICAgICAgICAgICAgICBjdHgubW92ZVRvKGNhbnZhc3gsIDApO1xuICAgICAgICAgICAgICAgICAgICBjdHgubGluZVRvKGNhbnZhc3gsIGhlaWdodCk7XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgaWYgKHRoaXMuZGlyZWN0aW9uID09PSAnaCcgfHwgdGhpcy5kaXJlY3Rpb24gPT09ICdib3RoJykge1xuICAgICAgICAgICAgICAgICAgICBmb3IgKGxldCBpID0gMDsgaSA8IHRoaXMuZ3JhcGguc2VsUG9pbnRzXy5sZW5ndGg7IGkrKykge1xuICAgICAgICAgICAgICAgICAgICAgICAgbGV0IGNhbnZhc3kgPVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIE1hdGguZmxvb3IodGhpcy5ncmFwaC5zZWxQb2ludHNfW2ldLmNhbnZhc3kpICsgMC41OyAvLyBjcmlzcGVyIHJlbmRlcmluZ1xuICAgICAgICAgICAgICAgICAgICAgICAgY3R4Lm1vdmVUbygwLCBjYW52YXN5KTtcbiAgICAgICAgICAgICAgICAgICAgICAgIGN0eC5saW5lVG8od2lkdGgsIGNhbnZhc3kpO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgY3R4LnN0cm9rZSgpO1xuICAgICAgICAgICAgICAgIGN0eC5jbG9zZVBhdGgoKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH07XG5cbiAgICBkZXNlbGVjdCA9IChlOiBNb3VzZUV2ZW50KSA9PiB7XG4gICAgICAgIC8vXG4gICAgICAgIGlmICh0aGlzLmNhbnZhc18pIHtcbiAgICAgICAgICAgIGxldCBjdHggPSB0aGlzLmNhbnZhc18uZ2V0Q29udGV4dCgnMmQnKTtcbiAgICAgICAgICAgIGlmIChjdHgpIHtcbiAgICAgICAgICAgICAgICBjdHguY2xlYXJSZWN0KDAsIDAsIHRoaXMuY2FudmFzXy53aWR0aCwgdGhpcy5jYW52YXNfLmhlaWdodCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9O1xuXG4gICAgZGVzdHJveSA9ICgpID0+IHtcbiAgICAgICAgdGhpcy5jYW52YXNfID0gbnVsbDtcbiAgICB9O1xufVxuIl19