@future-grid/fgp-graph
Version:
fgp-graph is a chart lib based on Dygraphs
113 lines (91 loc) • 11.4 kB
JavaScript
;
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