UNPKG

kepler.gl.geoiq

Version:

kepler.gl is a webgl based application to visualize large scale location data in the browser

87 lines (61 loc) 10.3 kB
"use strict"; var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault"); Object.defineProperty(exports, "__esModule", { value: true }); exports.calculateExportImageSize = calculateExportImageSize; exports.convertToPng = convertToPng; exports.dataURItoBlob = dataURItoBlob; exports.downloadFile = downloadFile; var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty")); var _domToImage = _interopRequireDefault(require("./dom-to-image")); var _window = require("global/window"); var _defaultSettings = require("../constants/default-settings"); function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; } function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { (0, _defineProperty2["default"])(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; } function calculateExportImageSize(_ref) { var width = _ref.width, height = _ref.height, ratio = _ref.ratio, resolution = _ref.resolution; var resolutionItem = _defaultSettings.RESOLUTION_OPTIONS.find(function (op) { return op.id === resolution; }); var _resolutionItem$getSi = resolutionItem.getSize(width, height), scaledWidth = _resolutionItem$getSi.width, scaledHeight = _resolutionItem$getSi.height; var zoomOffset = resolutionItem.zoomOffset, scale = resolutionItem.scale; return _objectSpread({ zoomOffset: zoomOffset, scale: scale }, _defaultSettings.RATIO_OPTIONS.find(function (op) { return op.id === ratio; }).getSize(scaledWidth, scaledHeight)); } function convertToPng(sourceElem, options) { return _domToImage["default"].toPng(sourceElem, options); } function dataURItoBlob(dataURI) { var binary = (0, _window.atob)(dataURI.split(',')[1]); // separate out the mime component var mimeString = dataURI.split(',')[0].split(':')[1].split(';')[0]; // write the bytes of the string to an ArrayBuffer var ab = new _window.ArrayBuffer(binary.length); // create a view into the buffer var ia = new _window.Uint8Array(ab); for (var i = 0; i < binary.length; i++) { ia[i] = binary.charCodeAt(i); } return new _window.Blob([ab], { type: mimeString }); } function downloadFile(fileBlob, filename) { var url = _window.URL.createObjectURL(fileBlob); var link = _window.document.createElement('a'); link.setAttribute('href', url); link.setAttribute('download', filename); _window.document.body.appendChild(link); link.click(); _window.document.body.removeChild(link); _window.URL.revokeObjectURL(url); } //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy91dGlscy9leHBvcnQtaW1hZ2UtdXRpbHMuanMiXSwibmFtZXMiOlsiY2FsY3VsYXRlRXhwb3J0SW1hZ2VTaXplIiwid2lkdGgiLCJoZWlnaHQiLCJyYXRpbyIsInJlc29sdXRpb24iLCJyZXNvbHV0aW9uSXRlbSIsIlJFU09MVVRJT05fT1BUSU9OUyIsImZpbmQiLCJvcCIsImlkIiwiZ2V0U2l6ZSIsInNjYWxlZFdpZHRoIiwic2NhbGVkSGVpZ2h0Iiwiem9vbU9mZnNldCIsInNjYWxlIiwiUkFUSU9fT1BUSU9OUyIsImNvbnZlcnRUb1BuZyIsInNvdXJjZUVsZW0iLCJvcHRpb25zIiwiZG9tdG9pbWFnZSIsInRvUG5nIiwiZGF0YVVSSXRvQmxvYiIsImRhdGFVUkkiLCJiaW5hcnkiLCJzcGxpdCIsIm1pbWVTdHJpbmciLCJhYiIsIkFycmF5QnVmZmVyIiwibGVuZ3RoIiwiaWEiLCJVaW50OEFycmF5IiwiaSIsImNoYXJDb2RlQXQiLCJCbG9iIiwidHlwZSIsImRvd25sb2FkRmlsZSIsImZpbGVCbG9iIiwiZmlsZW5hbWUiLCJ1cmwiLCJVUkwiLCJjcmVhdGVPYmplY3RVUkwiLCJsaW5rIiwiZG9jdW1lbnQiLCJjcmVhdGVFbGVtZW50Iiwic2V0QXR0cmlidXRlIiwiYm9keSIsImFwcGVuZENoaWxkIiwiY2xpY2siLCJyZW1vdmVDaGlsZCIsInJldm9rZU9iamVjdFVSTCJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7QUFvQkE7O0FBQ0E7O0FBUUE7Ozs7OztBQUVPLFNBQVNBLHdCQUFULE9BQXNFO0FBQUEsTUFBbkNDLEtBQW1DLFFBQW5DQSxLQUFtQztBQUFBLE1BQTVCQyxNQUE0QixRQUE1QkEsTUFBNEI7QUFBQSxNQUFwQkMsS0FBb0IsUUFBcEJBLEtBQW9CO0FBQUEsTUFBYkMsVUFBYSxRQUFiQSxVQUFhOztBQUMzRSxNQUFNQyxjQUFjLEdBQUdDLG9DQUFtQkMsSUFBbkIsQ0FBd0IsVUFBQUMsRUFBRTtBQUFBLFdBQUlBLEVBQUUsQ0FBQ0MsRUFBSCxLQUFVTCxVQUFkO0FBQUEsR0FBMUIsQ0FBdkI7O0FBQ0EsOEJBQW1EQyxjQUFjLENBQUNLLE9BQWYsQ0FDakRULEtBRGlELEVBRWpEQyxNQUZpRCxDQUFuRDtBQUFBLE1BQWNTLFdBQWQseUJBQU9WLEtBQVA7QUFBQSxNQUFtQ1csWUFBbkMseUJBQTJCVixNQUEzQjs7QUFJQSxNQUFPVyxVQUFQLEdBQTRCUixjQUE1QixDQUFPUSxVQUFQO0FBQUEsTUFBbUJDLEtBQW5CLEdBQTRCVCxjQUE1QixDQUFtQlMsS0FBbkI7QUFFQTtBQUNFRCxJQUFBQSxVQUFVLEVBQVZBLFVBREY7QUFFRUMsSUFBQUEsS0FBSyxFQUFMQTtBQUZGLEtBR0tDLCtCQUFjUixJQUFkLENBQW1CLFVBQUFDLEVBQUU7QUFBQSxXQUFJQSxFQUFFLENBQUNDLEVBQUgsS0FBVU4sS0FBZDtBQUFBLEdBQXJCLEVBQTBDTyxPQUExQyxDQUNEQyxXQURDLEVBRURDLFlBRkMsQ0FITDtBQVFEOztBQUVNLFNBQVNJLFlBQVQsQ0FBc0JDLFVBQXRCLEVBQWtDQyxPQUFsQyxFQUEyQztBQUNoRCxTQUFPQyx1QkFBV0MsS0FBWCxDQUFpQkgsVUFBakIsRUFBNkJDLE9BQTdCLENBQVA7QUFDRDs7QUFFTSxTQUFTRyxhQUFULENBQXVCQyxPQUF2QixFQUFnQztBQUNyQyxNQUFNQyxNQUFNLEdBQUcsa0JBQUtELE9BQU8sQ0FBQ0UsS0FBUixDQUFjLEdBQWQsRUFBbUIsQ0FBbkIsQ0FBTCxDQUFmLENBRHFDLENBR3JDOztBQUNBLE1BQU1DLFVBQVUsR0FBR0gsT0FBTyxDQUN2QkUsS0FEZ0IsQ0FDVixHQURVLEVBQ0wsQ0FESyxFQUVoQkEsS0FGZ0IsQ0FFVixHQUZVLEVBRUwsQ0FGSyxFQUdoQkEsS0FIZ0IsQ0FHVixHQUhVLEVBR0wsQ0FISyxDQUFuQixDQUpxQyxDQVNyQzs7QUFDQSxNQUFNRSxFQUFFLEdBQUcsSUFBSUMsbUJBQUosQ0FBZ0JKLE1BQU0sQ0FBQ0ssTUFBdkIsQ0FBWCxDQVZxQyxDQVlyQzs7QUFDQSxNQUFNQyxFQUFFLEdBQUcsSUFBSUMsa0JBQUosQ0FBZUosRUFBZixDQUFYOztBQUVBLE9BQUssSUFBSUssQ0FBQyxHQUFHLENBQWIsRUFBZ0JBLENBQUMsR0FBR1IsTUFBTSxDQUFDSyxNQUEzQixFQUFtQ0csQ0FBQyxFQUFwQyxFQUF3QztBQUN0Q0YsSUFBQUEsRUFBRSxDQUFDRSxDQUFELENBQUYsR0FBUVIsTUFBTSxDQUFDUyxVQUFQLENBQWtCRCxDQUFsQixDQUFSO0FBQ0Q7O0FBRUQsU0FBTyxJQUFJRSxZQUFKLENBQVMsQ0FBQ1AsRUFBRCxDQUFULEVBQWU7QUFBQ1EsSUFBQUEsSUFBSSxFQUFFVDtBQUFQLEdBQWYsQ0FBUDtBQUNEOztBQUVNLFNBQVNVLFlBQVQsQ0FBc0JDLFFBQXRCLEVBQWdDQyxRQUFoQyxFQUEwQztBQUMvQyxNQUFNQyxHQUFHLEdBQUdDLFlBQUlDLGVBQUosQ0FBb0JKLFFBQXBCLENBQVo7O0FBRUEsTUFBTUssSUFBSSxHQUFHQyxpQkFBU0MsYUFBVCxDQUF1QixHQUF2QixDQUFiOztBQUNBRixFQUFBQSxJQUFJLENBQUNHLFlBQUwsQ0FBa0IsTUFBbEIsRUFBMEJOLEdBQTFCO0FBQ0FHLEVBQUFBLElBQUksQ0FBQ0csWUFBTCxDQUFrQixVQUFsQixFQUE4QlAsUUFBOUI7O0FBRUFLLG1CQUFTRyxJQUFULENBQWNDLFdBQWQsQ0FBMEJMLElBQTFCOztBQUNBQSxFQUFBQSxJQUFJLENBQUNNLEtBQUw7O0FBQ0FMLG1CQUFTRyxJQUFULENBQWNHLFdBQWQsQ0FBMEJQLElBQTFCOztBQUNBRixjQUFJVSxlQUFKLENBQW9CWCxHQUFwQjtBQUNEIiwic291cmNlc0NvbnRlbnQiOlsiLy8gQ29weXJpZ2h0IChjKSAyMDIzIFViZXIgVGVjaG5vbG9naWVzLCBJbmMuXG4vL1xuLy8gUGVybWlzc2lvbiBpcyBoZXJlYnkgZ3JhbnRlZCwgZnJlZSBvZiBjaGFyZ2UsIHRvIGFueSBwZXJzb24gb2J0YWluaW5nIGEgY29weVxuLy8gb2YgdGhpcyBzb2Z0d2FyZSBhbmQgYXNzb2NpYXRlZCBkb2N1bWVudGF0aW9uIGZpbGVzICh0aGUgXCJTb2Z0d2FyZVwiKSwgdG8gZGVhbFxuLy8gaW4gdGhlIFNvZnR3YXJlIHdpdGhvdXQgcmVzdHJpY3Rpb24sIGluY2x1ZGluZyB3aXRob3V0IGxpbWl0YXRpb24gdGhlIHJpZ2h0c1xuLy8gdG8gdXNlLCBjb3B5LCBtb2RpZnksIG1lcmdlLCBwdWJsaXNoLCBkaXN0cmlidXRlLCBzdWJsaWNlbnNlLCBhbmQvb3Igc2VsbFxuLy8gY29waWVzIG9mIHRoZSBTb2Z0d2FyZSwgYW5kIHRvIHBlcm1pdCBwZXJzb25zIHRvIHdob20gdGhlIFNvZnR3YXJlIGlzXG4vLyBmdXJuaXNoZWQgdG8gZG8gc28sIHN1YmplY3QgdG8gdGhlIGZvbGxvd2luZyBjb25kaXRpb25zOlxuLy9cbi8vIFRoZSBhYm92ZSBjb3B5cmlnaHQgbm90aWNlIGFuZCB0aGlzIHBlcm1pc3Npb24gbm90aWNlIHNoYWxsIGJlIGluY2x1ZGVkIGluXG4vLyBhbGwgY29waWVzIG9yIHN1YnN0YW50aWFsIHBvcnRpb25zIG9mIHRoZSBTb2Z0d2FyZS5cbi8vXG4vLyBUSEUgU09GVFdBUkUgSVMgUFJPVklERUQgXCJBUyBJU1wiLCBXSVRIT1VUIFdBUlJBTlRZIE9GIEFOWSBLSU5ELCBFWFBSRVNTIE9SXG4vLyBJTVBMSUVELCBJTkNMVURJTkcgQlVUIE5PVCBMSU1JVEVEIFRPIFRIRSBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSxcbi8vIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFORCBOT05JTkZSSU5HRU1FTlQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRVxuLy8gQVVUSE9SUyBPUiBDT1BZUklHSFQgSE9MREVSUyBCRSBMSUFCTEUgRk9SIEFOWSBDTEFJTSwgREFNQUdFUyBPUiBPVEhFUlxuLy8gTElBQklMSVRZLCBXSEVUSEVSIElOIEFOIEFDVElPTiBPRiBDT05UUkFDVCwgVE9SVCBPUiBPVEhFUldJU0UsIEFSSVNJTkcgRlJPTSxcbi8vIE9VVCBPRiBPUiBJTiBDT05ORUNUSU9OIFdJVEggVEhFIFNPRlRXQVJFIE9SIFRIRSBVU0UgT1IgT1RIRVIgREVBTElOR1MgSU5cbi8vIFRIRSBTT0ZUV0FSRS5cblxuaW1wb3J0IGRvbXRvaW1hZ2UgZnJvbSAndXRpbHMvZG9tLXRvLWltYWdlJztcbmltcG9ydCB7XG4gIEJsb2IsXG4gIFVSTCxcbiAgYXRvYixcbiAgVWludDhBcnJheSxcbiAgQXJyYXlCdWZmZXIsXG4gIGRvY3VtZW50XG59IGZyb20gJ2dsb2JhbC93aW5kb3cnO1xuaW1wb3J0IHtSRVNPTFVUSU9OX09QVElPTlMsIFJBVElPX09QVElPTlN9IGZyb20gJ2NvbnN0YW50cy9kZWZhdWx0LXNldHRpbmdzJztcblxuZXhwb3J0IGZ1bmN0aW9uIGNhbGN1bGF0ZUV4cG9ydEltYWdlU2l6ZSh7d2lkdGgsIGhlaWdodCwgcmF0aW8sIHJlc29sdXRpb259KSB7XG4gIGNvbnN0IHJlc29sdXRpb25JdGVtID0gUkVTT0xVVElPTl9PUFRJT05TLmZpbmQob3AgPT4gb3AuaWQgPT09IHJlc29sdXRpb24pO1xuICBjb25zdCB7d2lkdGg6IHNjYWxlZFdpZHRoLCBoZWlnaHQ6IHNjYWxlZEhlaWdodH0gPSByZXNvbHV0aW9uSXRlbS5nZXRTaXplKFxuICAgIHdpZHRoLFxuICAgIGhlaWdodFxuICApO1xuICBjb25zdCB7em9vbU9mZnNldCwgc2NhbGV9ID0gcmVzb2x1dGlvbkl0ZW07XG5cbiAgcmV0dXJuIHtcbiAgICB6b29tT2Zmc2V0LFxuICAgIHNjYWxlLFxuICAgIC4uLlJBVElPX09QVElPTlMuZmluZChvcCA9PiBvcC5pZCA9PT0gcmF0aW8pLmdldFNpemUoXG4gICAgICBzY2FsZWRXaWR0aCxcbiAgICAgIHNjYWxlZEhlaWdodFxuICAgIClcbiAgfTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGNvbnZlcnRUb1BuZyhzb3VyY2VFbGVtLCBvcHRpb25zKSB7XG4gIHJldHVybiBkb210b2ltYWdlLnRvUG5nKHNvdXJjZUVsZW0sIG9wdGlvbnMpO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gZGF0YVVSSXRvQmxvYihkYXRhVVJJKSB7XG4gIGNvbnN0IGJpbmFyeSA9IGF0b2IoZGF0YVVSSS5zcGxpdCgnLCcpWzFdKTtcblxuICAvLyBzZXBhcmF0ZSBvdXQgdGhlIG1pbWUgY29tcG9uZW50XG4gIGNvbnN0IG1pbWVTdHJpbmcgPSBkYXRhVVJJXG4gICAgLnNwbGl0KCcsJylbMF1cbiAgICAuc3BsaXQoJzonKVsxXVxuICAgIC5zcGxpdCgnOycpWzBdO1xuXG4gIC8vIHdyaXRlIHRoZSBieXRlcyBvZiB0aGUgc3RyaW5nIHRvIGFuIEFycmF5QnVmZmVyXG4gIGNvbnN0IGFiID0gbmV3IEFycmF5QnVmZmVyKGJpbmFyeS5sZW5ndGgpO1xuXG4gIC8vIGNyZWF0ZSBhIHZpZXcgaW50byB0aGUgYnVmZmVyXG4gIGNvbnN0IGlhID0gbmV3IFVpbnQ4QXJyYXkoYWIpO1xuXG4gIGZvciAobGV0IGkgPSAwOyBpIDwgYmluYXJ5Lmxlbmd0aDsgaSsrKSB7XG4gICAgaWFbaV0gPSBiaW5hcnkuY2hhckNvZGVBdChpKTtcbiAgfVxuXG4gIHJldHVybiBuZXcgQmxvYihbYWJdLCB7dHlwZTogbWltZVN0cmluZ30pO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gZG93bmxvYWRGaWxlKGZpbGVCbG9iLCBmaWxlbmFtZSkge1xuICBjb25zdCB1cmwgPSBVUkwuY3JlYXRlT2JqZWN0VVJMKGZpbGVCbG9iKTtcblxuICBjb25zdCBsaW5rID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnYScpO1xuICBsaW5rLnNldEF0dHJpYnV0ZSgnaHJlZicsIHVybCk7XG4gIGxpbmsuc2V0QXR0cmlidXRlKCdkb3dubG9hZCcsIGZpbGVuYW1lKTtcblxuICBkb2N1bWVudC5ib2R5LmFwcGVuZENoaWxkKGxpbmspO1xuICBsaW5rLmNsaWNrKCk7XG4gIGRvY3VtZW50LmJvZHkucmVtb3ZlQ2hpbGQobGluayk7XG4gIFVSTC5yZXZva2VPYmplY3RVUkwodXJsKTtcbn1cbiJdfQ==