@@ -11,6 +11,7 @@ interface GoogleMapOptions {
1111 language ?: string ;
1212 region ?: string ;
1313 mapIds ?: string [ ] ;
14+ version ?: string ;
1415}
1516
1617/**
@@ -35,19 +36,30 @@ export default class GoogleMap {
3536 const scriptTag = document . createElement ( 'script' ) ;
3637 const defaultLanguage = window . navigator . language . slice ( 0 , 2 ) ;
3738 const defaultRegion = window . navigator . language . slice ( 3 , 5 ) ;
39+
40+ const {
41+ libraries,
42+ mapIds,
43+ version,
44+ language,
45+ region,
46+ googleMapsAPIKey,
47+ onLoadScript
48+ } = options ;
49+
3850 scriptTag . setAttribute ( 'type' , 'text/javascript' ) ;
3951 scriptTag . setAttribute (
4052 'src' ,
41- `https://maps.googleapis.com/maps/api/js?key=${
42- options . googleMapsAPIKey
43- } &language= ${ options . language || defaultLanguage } & region=${ options . region || defaultRegion } ${
44- options . libraries ? `&libraries=${ options . libraries . join ( ',' ) } ` : ''
45- } ${
46- options . mapIds ? `&map_ids =${ options . mapIds . join ( ',' ) } ` : ''
53+ `https://maps.googleapis.com/maps/api/js?key=${ googleMapsAPIKey } &language= ${
54+ language || defaultLanguage
55+ } ®ion=${ region || defaultRegion } ${
56+ libraries ? `&libraries=${ libraries . join ( ',' ) } ` : ''
57+ } ${ mapIds ? `&map_ids= ${ mapIds . join ( ',' ) } ` : '' } ${
58+ version ? `&v =${ version } ` : ''
4759 } `
4860 ) ;
4961 scriptTag . onload = ( ) : void => {
50- options . onLoadScript ( ) ;
62+ onLoadScript ( ) ;
5163 this . initMap ( options ) ;
5264 } ;
5365 document . getElementsByTagName ( 'head' ) [ 0 ] . appendChild ( scriptTag ) ;
@@ -81,9 +93,11 @@ export default class GoogleMap {
8193 */
8294 public destroyComplete = ( ) : void => {
8395 if ( this . map ) {
84- document . querySelectorAll ( 'script[src^="https://maps.googleapis.com"]' ) . forEach ( script => {
85- script . remove ( ) ;
86- } ) ;
96+ document
97+ . querySelectorAll ( 'script[src^="https://maps.googleapis.com"]' )
98+ . forEach ( ( script ) => {
99+ script . remove ( ) ;
100+ } ) ;
87101 if ( window . google && window . google . maps ) {
88102 // @ts -ignore: The operand of a 'delete' operator must be optional.
89103 delete window . google . maps ;
0 commit comments