1+ ( function ( global , factory ) {
2+ if ( typeof define === "function" && define . amd ) {
3+ define ( [ 'exports' , 'react' , 'react-dom' , './lib/ScriptCache' , './lib/GoogleApi' ] , factory ) ;
4+ } else if ( typeof exports !== "undefined" ) {
5+ factory ( exports , require ( 'react' ) , require ( 'react-dom' ) , require ( './lib/ScriptCache' ) , require ( './lib/GoogleApi' ) ) ;
6+ } else {
7+ var mod = {
8+ exports : { }
9+ } ;
10+ factory ( mod . exports , global . react , global . reactDom , global . ScriptCache , global . GoogleApi ) ;
11+ global . GoogleApiComponent = mod . exports ;
12+ }
13+ } ) ( this , function ( exports , _react , _reactDom , _ScriptCache , _GoogleApi ) {
14+ 'use strict' ;
15+
16+ Object . defineProperty ( exports , "__esModule" , {
17+ value : true
18+ } ) ;
19+ exports . wrapper = undefined ;
20+
21+ var _react2 = _interopRequireDefault ( _react ) ;
22+
23+ var _reactDom2 = _interopRequireDefault ( _reactDom ) ;
24+
25+ var _GoogleApi2 = _interopRequireDefault ( _GoogleApi ) ;
26+
27+ function _interopRequireDefault ( obj ) {
28+ return obj && obj . __esModule ? obj : {
29+ default : obj
30+ } ;
31+ }
32+
33+ function _classCallCheck ( instance , Constructor ) {
34+ if ( ! ( instance instanceof Constructor ) ) {
35+ throw new TypeError ( "Cannot call a class as a function" ) ;
36+ }
37+ }
38+
39+ var _createClass = function ( ) {
40+ function defineProperties ( target , props ) {
41+ for ( var i = 0 ; i < props . length ; i ++ ) {
42+ var descriptor = props [ i ] ;
43+ descriptor . enumerable = descriptor . enumerable || false ;
44+ descriptor . configurable = true ;
45+ if ( "value" in descriptor ) descriptor . writable = true ;
46+ Object . defineProperty ( target , descriptor . key , descriptor ) ;
47+ }
48+ }
49+
50+ return function ( Constructor , protoProps , staticProps ) {
51+ if ( protoProps ) defineProperties ( Constructor . prototype , protoProps ) ;
52+ if ( staticProps ) defineProperties ( Constructor , staticProps ) ;
53+ return Constructor ;
54+ } ;
55+ } ( ) ;
56+
57+ function _possibleConstructorReturn ( self , call ) {
58+ if ( ! self ) {
59+ throw new ReferenceError ( "this hasn't been initialised - super() hasn't been called" ) ;
60+ }
61+
62+ return call && ( typeof call === "object" || typeof call === "function" ) ? call : self ;
63+ }
64+
65+ function _inherits ( subClass , superClass ) {
66+ if ( typeof superClass !== "function" && superClass !== null ) {
67+ throw new TypeError ( "Super expression must either be null or a function, not " + typeof superClass ) ;
68+ }
69+
70+ subClass . prototype = Object . create ( superClass && superClass . prototype , {
71+ constructor : {
72+ value : subClass ,
73+ enumerable : false ,
74+ writable : true ,
75+ configurable : true
76+ }
77+ } ) ;
78+ if ( superClass ) Object . setPrototypeOf ? Object . setPrototypeOf ( subClass , superClass ) : subClass . __proto__ = superClass ;
79+ }
80+
81+ var defaultMapConfig = { } ;
82+ var defaultCreateCache = function defaultCreateCache ( options ) {
83+ options = options || { } ;
84+ var apiKey = options . apiKey ;
85+ var libraries = options . libraries || [ 'places' ] ;
86+ var version = options . version || '3' ;
87+ var language = options . language || 'en' ;
88+ var url = options . url ;
89+
90+ return ( 0 , _ScriptCache . ScriptCache ) ( {
91+ google : ( 0 , _GoogleApi2 . default ) ( {
92+ apiKey : apiKey ,
93+ language : language ,
94+ libraries : libraries ,
95+ version : version ,
96+ url : url
97+ } )
98+ } ) ;
99+ } ;
100+
101+ var DefaultLoadingContainer = function DefaultLoadingContainer ( props ) {
102+ return _react2 . default . createElement (
103+ 'div' ,
104+ null ,
105+ 'Loading...'
106+ ) ;
107+ } ;
108+
109+ var wrapper = exports . wrapper = function wrapper ( options ) {
110+ return function ( WrappedComponent ) {
111+ var createCache = options . createCache || defaultCreateCache ;
112+
113+ var Wrapper = function ( _React$Component ) {
114+ _inherits ( Wrapper , _React$Component ) ;
115+
116+ function Wrapper ( props , context ) {
117+ _classCallCheck ( this , Wrapper ) ;
118+
119+ var _this = _possibleConstructorReturn ( this , ( Wrapper . __proto__ || Object . getPrototypeOf ( Wrapper ) ) . call ( this , props , context ) ) ;
120+
121+ _this . scriptCache = createCache ( options ) ;
122+ _this . scriptCache . google . onLoad ( _this . onLoad . bind ( _this ) ) ;
123+ _this . LoadingContainer = options . LoadingContainer || DefaultLoadingContainer ;
124+
125+ _this . state = {
126+ loaded : false ,
127+ map : null ,
128+ google : null
129+ } ;
130+ return _this ;
131+ }
132+
133+ _createClass ( Wrapper , [ {
134+ key : 'onLoad' ,
135+ value : function onLoad ( err , tag ) {
136+ this . _gapi = window . google ;
137+
138+ this . setState ( { loaded : true , google : this . _gapi } ) ;
139+ }
140+ } , {
141+ key : 'render' ,
142+ value : function render ( ) {
143+ var LoadingContainer = this . LoadingContainer ;
144+
145+ if ( ! this . state . loaded ) {
146+ return _react2 . default . createElement ( LoadingContainer , null ) ;
147+ }
148+
149+ var props = Object . assign ( { } , this . props , {
150+ loaded : this . state . loaded ,
151+ google : window . google
152+ } ) ;
153+
154+ return _react2 . default . createElement (
155+ 'div' ,
156+ null ,
157+ _react2 . default . createElement ( WrappedComponent , props ) ,
158+ _react2 . default . createElement ( 'div' , { ref : 'map' } )
159+ ) ;
160+ }
161+ } ] ) ;
162+
163+ return Wrapper ;
164+ } ( _react2 . default . Component ) ;
165+
166+ return Wrapper ;
167+ } ;
168+ } ;
169+
170+ exports . default = wrapper ;
171+ } ) ;
0 commit comments