UNPKG

@future-grid/fgp-graph

Version:

fgp-graph is a chart lib based on Dygraphs

113 lines (91 loc) 11.4 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.ExportUtils = exports.LoadingSpinner = void 0; var _html2canvas = _interopRequireDefault(require("html2canvas")); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; } function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } function _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; } 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 LoadingSpinner = /*#__PURE__*/ function () { function LoadingSpinner(container) { _classCallCheck(this, LoadingSpinner); this.container = container; _defineProperty(this, "spinner", void 0); _defineProperty(this, "spinnerHtml", "\n <svg width=\"16px\" height=\"12px\">\n <polyline id=\"back\" points=\"1 6 4 6 6 11 10 1 12 6 15 6\"></polyline>\n <polyline id=\"front\" points=\"1 6 4 6 6 11 10 1 12 6 15 6\"></polyline>\n </svg>\n "); _defineProperty(this, "isLoading", false); this.spinner = document.createElement('div'); this.spinner.setAttribute("class", "indicator"); this.spinner.innerHTML = this.spinnerHtml; } _createClass(LoadingSpinner, [{ key: "show", value: function show() { // add into parent this.container.appendChild(this.spinner); this.isLoading = true; } }, { key: "done", value: function done() { this.container.removeChild(this.spinner); this.isLoading = false; } }]); return LoadingSpinner; }(); exports.LoadingSpinner = LoadingSpinner; var ExportUtils = /*#__PURE__*/ function () { function ExportUtils() { _classCallCheck(this, ExportUtils); } _createClass(ExportUtils, null, [{ key: "exportCsv", value: function exportCsv(content, fileName) { // simulate click "<a>" var downloadDom = document.createElement('a'); var mimeType = 'application/octet-stream'; if (URL && 'download' in downloadDom) { //html5 A[download] downloadDom.href = URL.createObjectURL(new Blob([content], { type: mimeType })); downloadDom.setAttribute('download', fileName); document.body.appendChild(downloadDom); downloadDom.click(); document.body.removeChild(downloadDom); } } }, { key: "saveAsImage", value: function saveAsImage(graphDiv, fileName) { if (graphDiv) { // to blob and then download (0, _html2canvas["default"])(graphDiv).then(function (canvas) { canvas.toBlob(function (blobData) { if (blobData) { var downloadDom = document.createElement('a'); if (URL && 'download' in downloadDom) { //html5 A[download] downloadDom.href = URL.createObjectURL(blobData); downloadDom.setAttribute('download', fileName); document.body.appendChild(downloadDom); downloadDom.click(); document.body.removeChild(downloadDom); } } }); }); } } }]); return ExportUtils; }(); exports.ExportUtils = ExportUtils; //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9zZXJ2aWNlcy9kYXRhU2VydmljZS50cyJdLCJuYW1lcyI6WyJMb2FkaW5nU3Bpbm5lciIsImNvbnRhaW5lciIsInNwaW5uZXIiLCJkb2N1bWVudCIsImNyZWF0ZUVsZW1lbnQiLCJzZXRBdHRyaWJ1dGUiLCJpbm5lckhUTUwiLCJzcGlubmVySHRtbCIsImFwcGVuZENoaWxkIiwiaXNMb2FkaW5nIiwicmVtb3ZlQ2hpbGQiLCJFeHBvcnRVdGlscyIsImNvbnRlbnQiLCJmaWxlTmFtZSIsImRvd25sb2FkRG9tIiwibWltZVR5cGUiLCJVUkwiLCJocmVmIiwiY3JlYXRlT2JqZWN0VVJMIiwiQmxvYiIsInR5cGUiLCJib2R5IiwiY2xpY2siLCJncmFwaERpdiIsInRoZW4iLCJjYW52YXMiLCJ0b0Jsb2IiLCJibG9iRGF0YSJdLCJtYXBwaW5ncyI6Ijs7Ozs7OztBQUFBOzs7Ozs7Ozs7Ozs7SUEwQmFBLGM7OztBQVlULDBCQUFtQkMsU0FBbkIsRUFBMkM7QUFBQTs7QUFBQSxTQUF4QkEsU0FBd0IsR0FBeEJBLFNBQXdCOztBQUFBOztBQUFBOztBQUFBLHVDQUZmLEtBRWU7O0FBQ3ZDLFNBQUtDLE9BQUwsR0FBZUMsUUFBUSxDQUFDQyxhQUFULENBQXVCLEtBQXZCLENBQWY7QUFDQSxTQUFLRixPQUFMLENBQWFHLFlBQWIsQ0FBMEIsT0FBMUIsRUFBbUMsV0FBbkM7QUFDQSxTQUFLSCxPQUFMLENBQWFJLFNBQWIsR0FBeUIsS0FBS0MsV0FBOUI7QUFDSDs7OzsyQkFFbUI7QUFDaEI7QUFDQSxXQUFLTixTQUFMLENBQWVPLFdBQWYsQ0FBMkIsS0FBS04sT0FBaEM7QUFDQSxXQUFLTyxTQUFMLEdBQWlCLElBQWpCO0FBQ0g7OzsyQkFFbUI7QUFDaEIsV0FBS1IsU0FBTCxDQUFlUyxXQUFmLENBQTJCLEtBQUtSLE9BQWhDO0FBQ0EsV0FBS08sU0FBTCxHQUFpQixLQUFqQjtBQUNIOzs7Ozs7OztJQUlRRSxXOzs7Ozs7Ozs7OEJBRWVDLE8sRUFBaUJDLFEsRUFBa0I7QUFDdkQ7QUFDQSxVQUFJQyxXQUE4QixHQUFHWCxRQUFRLENBQUNDLGFBQVQsQ0FBdUIsR0FBdkIsQ0FBckM7QUFDQSxVQUFJVyxRQUFnQixHQUFHLDBCQUF2Qjs7QUFDQSxVQUFJQyxHQUFHLElBQUksY0FBY0YsV0FBekIsRUFBc0M7QUFDbEM7QUFDQUEsUUFBQUEsV0FBVyxDQUFDRyxJQUFaLEdBQW1CRCxHQUFHLENBQUNFLGVBQUosQ0FBb0IsSUFBSUMsSUFBSixDQUFTLENBQUNQLE9BQUQsQ0FBVCxFQUFvQjtBQUN2RFEsVUFBQUEsSUFBSSxFQUFFTDtBQURpRCxTQUFwQixDQUFwQixDQUFuQjtBQUdBRCxRQUFBQSxXQUFXLENBQUNULFlBQVosQ0FBeUIsVUFBekIsRUFBcUNRLFFBQXJDO0FBQ0FWLFFBQUFBLFFBQVEsQ0FBQ2tCLElBQVQsQ0FBY2IsV0FBZCxDQUEwQk0sV0FBMUI7QUFDQUEsUUFBQUEsV0FBVyxDQUFDUSxLQUFaO0FBQ0FuQixRQUFBQSxRQUFRLENBQUNrQixJQUFULENBQWNYLFdBQWQsQ0FBMEJJLFdBQTFCO0FBQ0g7QUFDSjs7O2dDQUV5QlMsUSxFQUF1QlYsUSxFQUFrQjtBQUMvRCxVQUFJVSxRQUFKLEVBQWM7QUFDVjtBQUNBLHFDQUFZQSxRQUFaLEVBQXNCQyxJQUF0QixDQUEyQixVQUFBQyxNQUFNLEVBQUk7QUFDakNBLFVBQUFBLE1BQU0sQ0FBQ0MsTUFBUCxDQUFjLFVBQUFDLFFBQVEsRUFBSTtBQUN0QixnQkFBSUEsUUFBSixFQUFjO0FBQ1Ysa0JBQUliLFdBQThCLEdBQUdYLFFBQVEsQ0FBQ0MsYUFBVCxDQUF1QixHQUF2QixDQUFyQzs7QUFDQSxrQkFBSVksR0FBRyxJQUFJLGNBQWNGLFdBQXpCLEVBQXNDO0FBQ2xDO0FBQ0FBLGdCQUFBQSxXQUFXLENBQUNHLElBQVosR0FBbUJELEdBQUcsQ0FBQ0UsZUFBSixDQUFvQlMsUUFBcEIsQ0FBbkI7QUFDQWIsZ0JBQUFBLFdBQVcsQ0FBQ1QsWUFBWixDQUF5QixVQUF6QixFQUFxQ1EsUUFBckM7QUFDQVYsZ0JBQUFBLFFBQVEsQ0FBQ2tCLElBQVQsQ0FBY2IsV0FBZCxDQUEwQk0sV0FBMUI7QUFDQUEsZ0JBQUFBLFdBQVcsQ0FBQ1EsS0FBWjtBQUNBbkIsZ0JBQUFBLFFBQVEsQ0FBQ2tCLElBQVQsQ0FBY1gsV0FBZCxDQUEwQkksV0FBMUI7QUFDSDtBQUNKO0FBQ0osV0FaRDtBQWFILFNBZEQ7QUFlSDtBQUNKIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IGh0bWwyY2FudmFzIGZyb20gJ2h0bWwyY2FudmFzJztcbmltcG9ydCB7RGF0YVJlcXVlc3RUYXJnZXQsIEdyYXBoU2VyaWVzfSBmcm9tICcuLi9tZXRhZGF0YS9jb25maWd1cmF0aW9ucyc7XG5cbmV4cG9ydCBpbnRlcmZhY2UgRGF0YUhhbmRsZXIge1xuXG4gICAgc291cmNlOiBzdHJpbmc7XG5cbiAgICAvKipcbiAgICAgKiBmZXRjaCBkYXRhIGZvciBtdWx0aS1kZXZpY2VzXG4gICAgICpcbiAgICAgKiBAcGFyYW0ge0FycmF5PHN0cmluZz59IGlkc1xuICAgICAqIEBwYXJhbSBkZXZpY2VUeXBlXG4gICAgICogQHBhcmFtIGludGVydmFsXG4gICAgICogQHBhcmFtIHt7IHN0YXJ0OiBudW1iZXI7IGVuZDogbnVtYmVyIH19IHJhbmdlXG4gICAgICogQHBhcmFtIHtBcnJheTxzdHJpbmc+fSBbZmllbGRzXVxuICAgICAqIEBwYXJhbSBzZXJpZXNDb25maWcgY29uZmlnIGZyb20gdmlld0NvbmZpZ1xuICAgICAqIEBwYXJhbSB0YXJnZXQgcmFuZ2ViYXIgb3IgZ3JhcGhcbiAgICAgKiBAcmV0dXJucyB7QXJyYXk8eyBpZDogc3RyaW5nLCBkYXRhOiBBcnJheTxhbnk+IH0+fVxuICAgICAqIEBtZW1iZXJvZiBEYXRhSGFuZGxlclxuICAgICAqL1xuICAgIGZldGNoZGF0YShpZHM6IEFycmF5PHN0cmluZz4sIGRldmljZVR5cGU6IHN0cmluZywgaW50ZXJ2YWw6IHN0cmluZywgcmFuZ2U6IHsgc3RhcnQ6IG51bWJlcjsgZW5kOiBudW1iZXIgfSwgZmllbGRzPzogQXJyYXk8c3RyaW5nPiwgc2VyaWVzQ29uZmlnPzogQXJyYXk8R3JhcGhTZXJpZXM+LCB0YXJnZXQ/OiBEYXRhUmVxdWVzdFRhcmdldCk6IFByb21pc2U8QXJyYXk8eyBpZDogc3RyaW5nLCBkYXRhOiBBcnJheTxhbnk+IH0+PjtcblxuICAgIGZldGNoRmlyc3ROTGFzdChpZHM6IEFycmF5PHN0cmluZz4sIGRldmllVHlwZTogc3RyaW5nLCBpbnRlcnZhbDogc3RyaW5nLCBmaWVsZHM/OiBBcnJheTxzdHJpbmc+KTogUHJvbWlzZTxBcnJheTx7IGlkOiBzdHJpbmcsIGRhdGE6IHsgZmlyc3Q6IGFueSwgbGFzdDogYW55IH0gfT4+O1xufVxuXG5cbmV4cG9ydCBjbGFzcyBMb2FkaW5nU3Bpbm5lciB7XG5cbiAgICBwcml2YXRlIHNwaW5uZXI6IEhUTUxFbGVtZW50O1xuXG4gICAgcHJpdmF0ZSBzcGlubmVySHRtbDogc3RyaW5nID0gYFxuICAgICAgICAgICAgPHN2ZyB3aWR0aD1cIjE2cHhcIiBoZWlnaHQ9XCIxMnB4XCI+XG4gICAgICAgICAgICAgICAgPHBvbHlsaW5lIGlkPVwiYmFja1wiIHBvaW50cz1cIjEgNiA0IDYgNiAxMSAxMCAxIDEyIDYgMTUgNlwiPjwvcG9seWxpbmU+XG4gICAgICAgICAgICAgICAgPHBvbHlsaW5lIGlkPVwiZnJvbnRcIiBwb2ludHM9XCIxIDYgNCA2IDYgMTEgMTAgMSAxMiA2IDE1IDZcIj48L3BvbHlsaW5lPlxuICAgICAgICAgICAgPC9zdmc+XG4gICAgICAgIGA7XG4gICAgcHVibGljIGlzTG9hZGluZzogYm9vbGVhbiA9IGZhbHNlO1xuXG4gICAgY29uc3RydWN0b3IocHVibGljIGNvbnRhaW5lcjogSFRNTEVsZW1lbnQpIHtcbiAgICAgICAgdGhpcy5zcGlubmVyID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnZGl2Jyk7XG4gICAgICAgIHRoaXMuc3Bpbm5lci5zZXRBdHRyaWJ1dGUoXCJjbGFzc1wiLCBcImluZGljYXRvclwiKTtcbiAgICAgICAgdGhpcy5zcGlubmVyLmlubmVySFRNTCA9IHRoaXMuc3Bpbm5lckh0bWw7XG4gICAgfVxuXG4gICAgcHVibGljIHNob3coKTogdm9pZCB7XG4gICAgICAgIC8vIGFkZCBpbnRvIHBhcmVudFxuICAgICAgICB0aGlzLmNvbnRhaW5lci5hcHBlbmRDaGlsZCh0aGlzLnNwaW5uZXIpO1xuICAgICAgICB0aGlzLmlzTG9hZGluZyA9IHRydWU7XG4gICAgfVxuXG4gICAgcHVibGljIGRvbmUoKTogdm9pZCB7XG4gICAgICAgIHRoaXMuY29udGFpbmVyLnJlbW92ZUNoaWxkKHRoaXMuc3Bpbm5lcik7XG4gICAgICAgIHRoaXMuaXNMb2FkaW5nID0gZmFsc2U7XG4gICAgfVxuXG59XG5cbmV4cG9ydCBjbGFzcyBFeHBvcnRVdGlscyB7XG5cbiAgICBwdWJsaWMgc3RhdGljIGV4cG9ydENzdihjb250ZW50OiBzdHJpbmcsIGZpbGVOYW1lOiBzdHJpbmcpIHtcbiAgICAgICAgLy8gc2ltdWxhdGUgY2xpY2sgXCI8YT5cIlxuICAgICAgICBsZXQgZG93bmxvYWREb206IEhUTUxBbmNob3JFbGVtZW50ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnYScpO1xuICAgICAgICBsZXQgbWltZVR5cGU6IHN0cmluZyA9ICdhcHBsaWNhdGlvbi9vY3RldC1zdHJlYW0nO1xuICAgICAgICBpZiAoVVJMICYmICdkb3dubG9hZCcgaW4gZG93bmxvYWREb20pIHtcbiAgICAgICAgICAgIC8vaHRtbDUgQVtkb3dubG9hZF1cbiAgICAgICAgICAgIGRvd25sb2FkRG9tLmhyZWYgPSBVUkwuY3JlYXRlT2JqZWN0VVJMKG5ldyBCbG9iKFtjb250ZW50XSwge1xuICAgICAgICAgICAgICAgIHR5cGU6IG1pbWVUeXBlXG4gICAgICAgICAgICB9KSk7XG4gICAgICAgICAgICBkb3dubG9hZERvbS5zZXRBdHRyaWJ1dGUoJ2Rvd25sb2FkJywgZmlsZU5hbWUpO1xuICAgICAgICAgICAgZG9jdW1lbnQuYm9keS5hcHBlbmRDaGlsZChkb3dubG9hZERvbSk7XG4gICAgICAgICAgICBkb3dubG9hZERvbS5jbGljaygpO1xuICAgICAgICAgICAgZG9jdW1lbnQuYm9keS5yZW1vdmVDaGlsZChkb3dubG9hZERvbSk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBwdWJsaWMgc3RhdGljIHNhdmVBc0ltYWdlKGdyYXBoRGl2OiBIVE1MRWxlbWVudCwgZmlsZU5hbWU6IHN0cmluZykge1xuICAgICAgICBpZiAoZ3JhcGhEaXYpIHtcbiAgICAgICAgICAgIC8vIHRvIGJsb2IgYW5kIHRoZW4gZG93bmxvYWRcbiAgICAgICAgICAgIGh0bWwyY2FudmFzKGdyYXBoRGl2KS50aGVuKGNhbnZhcyA9PiB7XG4gICAgICAgICAgICAgICAgY2FudmFzLnRvQmxvYihibG9iRGF0YSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIGlmIChibG9iRGF0YSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgbGV0IGRvd25sb2FkRG9tOiBIVE1MQW5jaG9yRWxlbWVudCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2EnKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIGlmIChVUkwgJiYgJ2Rvd25sb2FkJyBpbiBkb3dubG9hZERvbSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vaHRtbDUgQVtkb3dubG9hZF1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBkb3dubG9hZERvbS5ocmVmID0gVVJMLmNyZWF0ZU9iamVjdFVSTChibG9iRGF0YSk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgZG93bmxvYWREb20uc2V0QXR0cmlidXRlKCdkb3dubG9hZCcsIGZpbGVOYW1lKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBkb2N1bWVudC5ib2R5LmFwcGVuZENoaWxkKGRvd25sb2FkRG9tKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBkb3dubG9hZERvbS5jbGljaygpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRvY3VtZW50LmJvZHkucmVtb3ZlQ2hpbGQoZG93bmxvYWREb20pO1xuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfVxuICAgIH1cblxufVxuIl19