UNPKG

react-google-charts-with-key

Version:

temporary package as a fix to react-google-charts to add maps apiKey

52 lines (42 loc) 1.56 kB
'use strict'; exports.__esModule = true; var _debug = require('debug'); var _debug2 = _interopRequireDefault(_debug); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } var debug = new _debug2.default('react-google-charts:GoogleChartLoader'); // GoogleChartLoader Singleton // Based on http://blog.arkency.com/2014/09/react-dot-js-and-google-charts/ var script = typeof window !== 'undefined' ? require('loadjs') : function (link, _ref) { var callback = _ref.success; return callback(); }; var googleChartLoader = { isLoaded: false, isLoading: false, initPromise: {}, init: function init(packages, version, mapsApiKey) { var _this = this; debug('init', packages, version, mapsApiKey); if (this.isLoading || this.isLoaded) { return this.initPromise; } this.isLoading = true; this.initPromise = new Promise(function (resolve) { script('https://www.gstatic.com/charts/loader.js', { success: function success() { var opts = { packages: packages || ['corechart'] }; if (mapsApiKey) { opts.mapsApiKey = mapsApiKey; } window.google.charts.load(version || 'current', opts); window.google.charts.setOnLoadCallback(function () { debug('Chart Loaded'); _this.isLoaded = true; _this.isLoading = false; resolve(); }); } }); }); return this.initPromise; } }; exports.default = googleChartLoader; module.exports = exports['default'];