{"version":3,"sources":["modules/Common.Map.js"],"names":["Common","Map","Location","australiaLatLng","google","maps","LatLng","Autocomplete","Geocode","MarkerLocation","deg2rad","deg","Math","PI","convertLocation","formattedAddress","addressComponents","types","latLng","suburb","num","route","addr","state","postcode","country","premise","subpremise","establishment","i","length","comp","indexOf","long_name","short_name","$","trim","ampersand","comma","substring","building","address","convertGeocoder","result","geometry","location","formatted_address","address_components","SetMarker","marker","lat","lng","setPosition","GetPointForAddress","onSuccess","onFail","Geocoder","geocode","results","status","GeocoderStatus","OK","alert","FitMapBounds","map","bounds","fitBounds","event","addListenerOnce","window","MapView","this","getZoom","setZoom","GetStandardMapStyle","featureType","stylers","saturation","elementType","hue","weight","InitAutoComplete","inputElem","mapElem","data","input","get","autocomplete","places","componentRestrictions","addListener","place","getPlace","is","trigger","setCenter","addressMarker","setMap","viewport","convertPlace","InitMap","options","zoom","mapOptions","extend","center","MY_MAPTYPE_ID","mapTypeControlOptions","style","ZoomControlStyle","SMALL","mapTypeIds","MapTypeId","ROADMAP","mapTypeId","customMapType","StyledMapType","name","mapTypes","set","AddMarker","markerOptions","position","icon","draggable","Marker","e","SetCentre","SetDraggable","setDraggable","GetAddressForPoint","geocoder","req","GeocodeAddress","DistanceBetween","latLng1","latLng2","lat1","lon1","lat2","lon2","dLat","dLon","a","sin","cos","atan2","sqrt","LoadMapMarkers","mapName","showResourceList","searchCenter","markerHandler","InfoWindow","setContent","html","open","Bounds","LatLngBounds","Markers","forEach","array","CouncilLayer","filter","listing","Outlet","MapLocation","ShowMarker","phone","Phone","pstripped","replace","substr","value","DisplayAddress","inner","encodeURIComponent","Url","Suburb","Distance","LookingForVolunteer","Yes","Maybe","markerPos","Lat","Lng","Nickname","CurrentCouncil","KmlLayer","url","KmlLocation","GetCustomStyle","color","visibility"],"mappings":"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","file":"Common.Map.min.js","sourcesContent":["var Common;\r\n(function (Common) {\r\n    var Map;\r\n    (function (Map) {\r\n        var addressIcon = \"https://mcdcdn.blob.core.windows.net/map-icons/markers/blank.png\";\r\n        var australiaLatLng = new google.maps.LatLng(-25.610111, 134.354806);\r\n        var australiaZoom = 10;\r\n        var Location = /** @class */ (function () {\r\n            function Location() {\r\n            }\r\n            return Location;\r\n        }());\r\n        Map.Location = Location;\r\n        ;\r\n        var Autocomplete = /** @class */ (function () {\r\n            function Autocomplete() {\r\n            }\r\n            return Autocomplete;\r\n        }());\r\n        Map.Autocomplete = Autocomplete;\r\n        var Geocode = /** @class */ (function () {\r\n            function Geocode() {\r\n            }\r\n            return Geocode;\r\n        }());\r\n        Map.Geocode = Geocode;\r\n        ;\r\n        var MarkerLocation = /** @class */ (function () {\r\n            function MarkerLocation() {\r\n            }\r\n            return MarkerLocation;\r\n        }());\r\n        Map.MarkerLocation = MarkerLocation;\r\n        function deg2rad(deg) {\r\n            return deg * (Math.PI / 180);\r\n        }\r\n        function getDistanceBetweenPoints(lat1, lon1, lat2, lon2) {\r\n            var R = 6371; // Radius of the earth in km\r\n            var dLat = deg2rad(lat2 - lat1); // deg2rad below\r\n            var dLon = deg2rad(lon2 - lon1);\r\n            var a = Math.sin(dLat / 2) * Math.sin(dLat / 2) +\r\n                Math.cos(deg2rad(lat1)) * Math.cos(deg2rad(lat2)) *\r\n                    Math.sin(dLon / 2) * Math.sin(dLon / 2);\r\n            var c = 2 * Math.atan2(Math.sqrt(a), Math.sqrt(1 - a));\r\n            var d = R * c; // Distance in km\r\n            return d;\r\n        }\r\n        function convertLocation(formattedAddress, addressComponents, types, latLng) {\r\n            var suburb = '';\r\n            var num = '';\r\n            var route = '';\r\n            var addr = '';\r\n            var state = '';\r\n            var postcode = '';\r\n            var country = '';\r\n            var premise = '';\r\n            var subpremise = '';\r\n            var establishment = '';\r\n            for (var i = 0; i < addressComponents.length; i++) {\r\n                var comp = addressComponents[i];\r\n                if (comp.types.indexOf(\"premise\", 0) !== -1)\r\n                    premise = comp.long_name;\r\n                else if (comp.types.indexOf(\"subpremise\", 0) !== -1)\r\n                    subpremise = comp.long_name;\r\n                else if (comp.types.indexOf(\"establishment\", 0) !== -1)\r\n                    establishment = comp.long_name;\r\n                else if (comp.types.indexOf(\"street_address\", 0) !== -1)\r\n                    addr = comp.long_name;\r\n                else if (comp.types.indexOf(\"street_number\", 0) !== -1)\r\n                    num = comp.long_name;\r\n                else if (comp.types.indexOf(\"route\", 0) !== -1)\r\n                    route = comp.long_name;\r\n                else if (comp.types.indexOf(\"locality\", 0) !== -1)\r\n                    suburb = comp.long_name;\r\n                else if (comp.types.indexOf(\"administrative_area_level_1\", 0) !== -1)\r\n                    state = comp.short_name;\r\n                else if (comp.types.indexOf(\"postal_code\", 0) !== -1)\r\n                    postcode = comp.short_name;\r\n                else if (comp.types.indexOf(\"country\", 0) !== -1)\r\n                    country = comp.long_name;\r\n            }\r\n            if (addr.length === 0) {\r\n                addr = $.trim(num + \" \" + route);\r\n            }\r\n            // Look for text like Brunswick St & McLachlan St, Fortitude Valley QLD 4006, Australia\r\n            if (types.indexOf(\"intersection\", 0) !== -1) {\r\n                var ampersand = formattedAddress.indexOf(\"&\", 0);\r\n                var comma = formattedAddress.indexOf(\",\", 0);\r\n                if (ampersand > 0 && comma > ampersand) {\r\n                    addr = \"Cnr of \" + $.trim(formattedAddress.substring(0, comma));\r\n                }\r\n            }\r\n            if (addr.length > 0 || suburb.length > 0) {\r\n                var result = {\r\n                    building: $.trim(subpremise + \" \" + premise + \" \" + establishment),\r\n                    address: addr,\r\n                    suburb: suburb,\r\n                    postcode: postcode,\r\n                    state: state,\r\n                    country: country,\r\n                    latLng: latLng\r\n                };\r\n                return result;\r\n            }\r\n            return null;\r\n        }\r\n        function convertPlace(place) {\r\n            if (place && place.geometry && place.geometry.location) {\r\n                return convertLocation(place.formatted_address, place.address_components, place.types, place.geometry.location);\r\n            }\r\n            return undefined;\r\n        }\r\n        function convertGeocoder(result) {\r\n            if (result && result.geometry && result.geometry.location) {\r\n                return convertLocation(result.formatted_address, result.address_components, result.types, result.geometry.location);\r\n            }\r\n            return undefined;\r\n        }\r\n        function InitAutoComplete(inputElem, mapElem) {\r\n            var auto = $(inputElem).data(\"auto-obj\");\r\n            if (!auto) {\r\n                var input = $(inputElem).get(0);\r\n                var autocomplete = new google.maps.places.Autocomplete(input, { componentRestrictions: { country: 'au' } });\r\n                $(inputElem).data(\"auto-obj\", autocomplete);\r\n                google.maps.event.addListener(autocomplete, 'place_changed', function () {\r\n                    var place = autocomplete.getPlace();\r\n                    if (!place || !place.geometry)\r\n                        return;\r\n                    if (mapElem && $(mapElem).is(\":visible\")) {\r\n                        var map = $(mapElem).data(\"map-obj\");\r\n                        if (map) {\r\n                            google.maps.event.trigger(map, 'resize');\r\n                            if (place.geometry.location) {\r\n                                map.setCenter(place.geometry.location);\r\n                                var addressMarker = $(mapElem).data(\"autocomplete-marker\");\r\n                                if (addressMarker) {\r\n                                    addressMarker.setPosition(place.geometry.location);\r\n                                    addressMarker.setMap(map);\r\n                                }\r\n                            }\r\n                            else if (place.geometry.viewport) {\r\n                                map.fitBounds(place.geometry.viewport);\r\n                            }\r\n                        }\r\n                    }\r\n                    $(inputElem).trigger(\"mcd:autocomplete\", { location: convertPlace(place), result: place });\r\n                });\r\n            }\r\n        }\r\n        Map.InitAutoComplete = InitAutoComplete;\r\n        function InitMap(mapElem, latLng, options) {\r\n            var map = $(mapElem).data(\"map-obj\");\r\n            if (!map) {\r\n                var zoom = 13;\r\n                if (options && options.zoom) {\r\n                    zoom = options.zoom;\r\n                }\r\n                $(mapElem).data(\"map-zoom\", zoom);\r\n                var mapOptions = void 0;\r\n                if (latLng && latLng.lat && latLng.lng) {\r\n                    mapOptions = $.extend({ zoom: zoom, center: latLng }, options);\r\n                }\r\n                else {\r\n                    mapOptions = $.extend({ zoom: australiaZoom, center: australiaLatLng }, options);\r\n                }\r\n                var MY_MAPTYPE_ID = 'custom_style';\r\n                mapOptions = $.extend({\r\n                    mapTypeControlOptions: { style: google.maps.ZoomControlStyle.SMALL, mapTypeIds: [google.maps.MapTypeId.ROADMAP, MY_MAPTYPE_ID] },\r\n                    mapTypeId: MY_MAPTYPE_ID\r\n                }, mapOptions);\r\n                map = new google.maps.Map($(mapElem)[0], mapOptions);\r\n                var styledMapOptions = { name: 'Custom' };\r\n                var customMapType = new google.maps.StyledMapType(GetStandardMapStyle(), styledMapOptions);\r\n                map.mapTypes.set(MY_MAPTYPE_ID, customMapType);\r\n                $(mapElem).data(\"map-obj\", map);\r\n            }\r\n            return map;\r\n        }\r\n        Map.InitMap = InitMap;\r\n        function AddMarker(mapElem, latLng, options) {\r\n            var map = $(mapElem).data(\"map-obj\");\r\n            if (!map)\r\n                throw \"Map not initialised\";\r\n            var markerOptions = $.extend({\r\n                position: latLng,\r\n                map: map,\r\n                icon: addressIcon,\r\n                draggable: false,\r\n                autocomplete: true\r\n            }, options);\r\n            var addressMarker = new google.maps.Marker(markerOptions);\r\n            if (markerOptions.draggable) {\r\n                google.maps.event.addListener(addressMarker, 'dragend', function (e) {\r\n                    $(mapElem).trigger(\"mcd:marker-drag\", { marker: addressMarker, latLng: { lat: e.latLng.lat(), lng: e.latLng.lng() } });\r\n                });\r\n            }\r\n            if (markerOptions.autocomplete) {\r\n                $(mapElem).data(\"autocomplete-marker\", addressMarker);\r\n            }\r\n            return addressMarker;\r\n        }\r\n        Map.AddMarker = AddMarker;\r\n        function SetMarker(marker, latLng) {\r\n            if (marker && latLng && latLng.lat && latLng.lng) {\r\n                marker.setPosition(latLng);\r\n            }\r\n        }\r\n        Map.SetMarker = SetMarker;\r\n        function SetCentre(mapElem, latLng) {\r\n            var map = $(mapElem).data(\"map-obj\");\r\n            if (!map)\r\n                throw \"Map not initialised\";\r\n            if (latLng && latLng.lat && latLng.lng) {\r\n                map.setCenter(latLng);\r\n                map.setZoom($(mapElem).data(\"map-zoom\"));\r\n            }\r\n        }\r\n        Map.SetCentre = SetCentre;\r\n        function SetDraggable(marker, draggable) {\r\n            marker.setDraggable(draggable);\r\n        }\r\n        Map.SetDraggable = SetDraggable;\r\n        function GetAddressForPoint(latLng, onSuccess, onFail) {\r\n            var geocoder = new google.maps.Geocoder();\r\n            var req = {};\r\n            req.location = latLng;\r\n            geocoder.geocode(req, function (results, status) {\r\n                if (status === google.maps.GeocoderStatus.OK) {\r\n                    if (onSuccess) {\r\n                        onSuccess({ location: convertGeocoder(results[0]), results: results, status: status });\r\n                    }\r\n                }\r\n                else {\r\n                    if (onFail) {\r\n                        onFail({ results: results, status: status });\r\n                    }\r\n                    else {\r\n                        alert('We were unable to determine the address for the new location: ' + status);\r\n                    }\r\n                }\r\n            });\r\n        }\r\n        Map.GetAddressForPoint = GetAddressForPoint;\r\n        function GetPointForAddress(address, onSuccess, onFail) {\r\n            var geocoder = new google.maps.Geocoder();\r\n            geocoder.geocode({ address: address }, function (results, status) {\r\n                if (status === google.maps.GeocoderStatus.OK) {\r\n                    if (onSuccess) {\r\n                        onSuccess({ location: convertGeocoder(results[0]), results: results, status: status });\r\n                    }\r\n                }\r\n                else {\r\n                    if (onFail) {\r\n                        onFail({ results: results, status: status });\r\n                    }\r\n                    else {\r\n                        alert('We were unable to determine the location from the address: ' + status);\r\n                    }\r\n                }\r\n            });\r\n        }\r\n        Map.GetPointForAddress = GetPointForAddress;\r\n        function GeocodeAddress(address, mapElem, marker) {\r\n            var map = $(mapElem).data(\"map-obj\");\r\n            if (!map)\r\n                throw \"Map not initialised\";\r\n            GetPointForAddress(address, function (data) {\r\n                if (data.location.latLng) {\r\n                    SetMarker(marker, data.location.latLng);\r\n                    $(mapElem).trigger(\"mcd:marker-move\", { marker: marker, location: data.location });\r\n                }\r\n                else {\r\n                    alert(\"We are unable to pinpoint your location from the supplied address\");\r\n                }\r\n            });\r\n        }\r\n        Map.GeocodeAddress = GeocodeAddress;\r\n        function DistanceBetween(latLng1, latLng2) {\r\n            return getDistanceBetweenPoints(latLng1.lat(), latLng1.lng(), latLng2.lat(), latLng2.lng());\r\n        }\r\n        Map.DistanceBetween = DistanceBetween;\r\n        function LoadMapMarkers(mapName, results, showResourceList, searchCenter) {\r\n            window.MapView = Common.Map.InitMap(mapName);\r\n            window.Bounds = new google.maps.LatLngBounds();\r\n            // Clear out any existing map markers\r\n            if (window.Markers && window.Markers.length > 0) {\r\n                window.Markers.forEach(function (marker, i, array) {\r\n                    marker.setMap(null);\r\n                });\r\n            }\r\n            window.Markers = [];\r\n            window.InfoWindow = new google.maps.InfoWindow({});\r\n            // Clear out the council map if used.\r\n            if (typeof window.CouncilLayer !== 'undefined') {\r\n                window.CouncilLayer.setMap(window.MapView);\r\n            }\r\n            var markerHandler = function () {\r\n                window.InfoWindow.setContent(this.html);\r\n                window.InfoWindow.open(window.MapView, this);\r\n            };\r\n            window.Markers = results.filter(function (listing, i, array) {\r\n                return listing.Outlet.MapLocation.ShowMarker;\r\n            }).map(function (listing, i, array) {\r\n                var html = \"<div class='google-result'><div class='contact-details'>\";\r\n                if (showResourceList) {\r\n                    var phone = listing.Outlet.Phone || \"\";\r\n                    var pstripped = phone.replace(/[^0-9]+/g, \"\");\r\n                    if (pstripped.length > 0) {\r\n                        html += \"<p class='icon icon-phone60'><a href='tel:\" + pstripped + \"'>\" + phone + \"</a></p>\";\r\n                    }\r\n                    else if (phone.substr(0, 2) === \"--\") {\r\n                        html += \"<p class='icon icon-phone60'>\" + value + \"</p>\";\r\n                    }\r\n                    var value = listing.Outlet.DisplayAddress || \"\";\r\n                    var inner = \"--not supplied--\";\r\n                    if (value.length > 0) {\r\n                        if (value.substr(0, 2) === \"--\") {\r\n                            inner = value;\r\n                        }\r\n                        else {\r\n                            inner = \"<a href='https://maps.google.com/?q=\" + encodeURIComponent(value) + \"' target='_blank'>\" + value + \"</a>\";\r\n                        }\r\n                    }\r\n                    html += \"<p class='icon icon-map15'>\" + inner + \"</p>\";\r\n                }\r\n                else {\r\n                    html += \"<p class='icon icon-phone60'><a href='\" + listing.Url + \"' class='btn btn-small btn-blue'>Contact Us</a></p>\";\r\n                    html += \"<p class='icon icon-map15'>\" + listing.Outlet.Suburb + \"</p>\";\r\n                }\r\n                if (searchCenter !== 'undefined' && searchCenter !== '') {\r\n                    html += \"<p class='icon icon-podcast distance'>\" + listing.Distance + \" from the centre of \" + searchCenter + \"</p>\";\r\n                }\r\n                if (listing.Outlet.LookingForVolunteer === Common.LookingForVolunteer.Yes) {\r\n                    html += \"<p class='icon icon-user58'><a href='\" + listing.Url + \"' style='color: #d14905' class='nofollow'>We currently have (THE NUMBER OF POSITION) volunteer positions available. Click here for further information</a></p>\";\r\n                }\r\n                if (listing.Outlet.LookingForVolunteer === Common.LookingForVolunteer.Maybe) {\r\n                    html += \"<p class='icon icon-user58'><a href='\" + listing.Url + \"' style='color: #d14905' class='nofollow'>We may have volunteer positions available for the right person. Click here for further information</a></p>\";\r\n                }\r\n                html += \"</div></div>\";\r\n                var markerPos = new google.maps.LatLng(listing.Outlet.MapLocation.Lat, listing.Outlet.MapLocation.Lng);\r\n                var marker = new google.maps.Marker({\r\n                    position: markerPos,\r\n                    map: window.MapView,\r\n                    icon: \"/_static/images/map_marker.png\",\r\n                    html: \"<h3 class=\\\"h5 orange\\\"><a href=\\\"\" + listing.Url + \"\\\">\" + listing.Outlet.Nickname + \"</a></h3>\" + html\r\n                });\r\n                window.Bounds.extend(markerPos);\r\n                google.maps.event.addListener(marker, 'click', markerHandler);\r\n                return marker;\r\n            });\r\n            //for (i = 0; i < results.length; i++) {\r\n            //    // An example marker\r\n            //    var listing = results[i];\r\n            //    var html = \"<div class='google-result'><div class='contact-details'>\";\r\n            //    if (showResourceList) {\r\n            //        var phone = listing.Outlet.Phone || \"\";\r\n            //        var pstripped = phone.replace(/[^0-9]+/g, \"\");\r\n            //        if (pstripped.length > 0) {\r\n            //            html += \"<p class='icon icon-phone60'><a href='tel:\" + pstripped + \"'>\" + phone + \"</a></p>\";\r\n            //        }\r\n            //        else if (phone.substr(0, 2) === \"--\") {\r\n            //            html += \"<p class='icon icon-phone60'>\" + value + \"</p>\";\r\n            //        }\r\n            //        var value = listing.Outlet.DisplayAddress || \"\";\r\n            //        var inner = \"--not supplied--\";\r\n            //        if (value.length > 0) {\r\n            //            if (value.substr(0, 2) === \"--\") {\r\n            //                inner = value;\r\n            //            }\r\n            //            else {\r\n            //                inner = \"<a href='https://maps.google.com/?q=\" + encodeURIComponent(value) + \"' target='_blank'>\" + value + \"</a>\";\r\n            //            }\r\n            //        }\r\n            //        html += \"<p class='icon icon-map15'>\" + inner + \"</p>\";\r\n            //    }\r\n            //    else {\r\n            //        html += \"<p class='icon icon-phone60'><a href='\" + listing.Url + \"' class='btn btn-small btn-blue'>Contact Us</a></p>\";\r\n            //        html += \"<p class='icon icon-map15'>\" + listing.Outlet.Suburb + \"</p>\";\r\n            //    }\r\n            //    if (searchCenter !== 'undefined' && searchCenter !== '') {\r\n            //        html += \"<p class='icon icon-podcast distance'>\" + listing.Distance + \" from the centre of \" + searchCenter + \"</p>\";\r\n            //    }\r\n            //    html += \"</div></div>\";\r\n            //    if (listing.Outlet.MapLocation.ShowMarker) {\r\n            //        var markerPos = new google.maps.LatLng(listing.Outlet.MapLocation.Lat, listing.Outlet.MapLocation.Lng);\r\n            //        var marker = new google.maps.Marker({\r\n            //            position: markerPos,\r\n            //            map: window.Map,\r\n            //            icon: \"/_static/images/map_marker.png\",\r\n            //            html: `<h3 class=\"h5 orange\"><a href=\"${listing.Url}\">${listing.Outlet.Nickname}</a></h3>${html}`\r\n            //        });\r\n            //        bounds.extend(markerPos);\r\n            //        google.maps.event.addListener(marker, 'click', markerHandler);\r\n            //        window.Markers[window.Markers.length] = marker;\r\n            //    }\r\n            //}\r\n            if (window.Markers.length === 0) {\r\n                if (window.CurrentCouncil) {\r\n                    window.CouncilLayer = new google.maps.KmlLayer({ url: window.CurrentCouncil.KmlLocation });\r\n                    window.CouncilLayer.setMap(window.MapView);\r\n                }\r\n            }\r\n            else {\r\n                FitMapBounds(window.MapView, window.Bounds);\r\n            }\r\n        }\r\n        Map.LoadMapMarkers = LoadMapMarkers;\r\n        function FitMapBounds(map, bounds) {\r\n            map.fitBounds(bounds);\r\n            google.maps.event.addListenerOnce(window.MapView, 'bounds_changed', function (event) {\r\n                if (this.getZoom() > 17) {\r\n                    this.setZoom(17);\r\n                }\r\n            });\r\n        }\r\n        Map.FitMapBounds = FitMapBounds;\r\n        function GetStandardMapStyle() {\r\n            var featureOpts = [\r\n                { featureType: \"water\", stylers: [{ saturation: -63 }] },\r\n                { featureType: \"road\", stylers: [{ saturation: -100 }] },\r\n                { featureType: \"administrative.province\", elementType: \"labels.text\", stylers: [{ hue: \"#dd00ff\" }, { weight: 1.2 }] },\r\n                { featureType: \"poi.government\", stylers: [{ saturation: -100 }] },\r\n                { featureType: \"poi.business\", stylers: [{ saturation: -100 }] },\r\n                { featureType: \"poi.government\", stylers: [{ saturation: -100 }] },\r\n                { featureType: \"poi.medical\", stylers: [{ saturation: -100 }] },\r\n                { featureType: \"poi.place_of_worship\", stylers: [{ saturation: -100 }] },\r\n                { featureType: \"poi.school\", stylers: [{ saturation: -100 }] },\r\n                { featureType: \"poi.sports_complex\", stylers: [{ saturation: -100 }] },\r\n                { featureType: \"water\", stylers: [{ saturation: 44 }] },\r\n                { featureType: \"administrative.locality\" }\r\n            ];\r\n            return featureOpts;\r\n        }\r\n        Map.GetStandardMapStyle = GetStandardMapStyle;\r\n        function GetCustomStyle() {\r\n            var featureOpts = [\r\n                {\r\n                    featureType: \"water\", elementType: 'geometry.fill', stylers: [{\r\n                            color: '#d3d3d3',\r\n                        }]\r\n                },\r\n                {\r\n                    featureType: 'transit',\r\n                    stylers: [\r\n                        {\r\n                            color: '#808080',\r\n                        },\r\n                        {\r\n                            visibility: 'off',\r\n                        },\r\n                    ],\r\n                },\r\n                {\r\n                    featureType: 'road.highway',\r\n                    elementType: 'geometry.stroke',\r\n                    stylers: [\r\n                        {\r\n                            visibility: 'on',\r\n                        },\r\n                        {\r\n                            color: '#b3b3b3',\r\n                        },\r\n                    ],\r\n                },\r\n                {\r\n                    featureType: 'road.highway',\r\n                    elementType: 'geometry.fill',\r\n                    stylers: [\r\n                        {\r\n                            color: '#ffffff',\r\n                        },\r\n                    ]\r\n                },\r\n                {\r\n                    featureType: 'road.local',\r\n                    elementType: 'geometry.fill',\r\n                    stylers: [\r\n                        {\r\n                            visibility: 'on',\r\n                        },\r\n                        {\r\n                            color: '#ffffff',\r\n                        },\r\n                        {\r\n                            weight: 1.8,\r\n                        },\r\n                    ]\r\n                },\r\n                {\r\n                    featureType: 'road.local',\r\n                    elementType: 'geometry.stroke',\r\n                    stylers: [\r\n                        {\r\n                            color: '#d7d7d7',\r\n                        },\r\n                    ]\r\n                },\r\n                {\r\n                    featureType: 'poi',\r\n                    elementType: 'geometry.fill',\r\n                    stylers: [\r\n                        {\r\n                            visibility: 'on',\r\n                        },\r\n                        {\r\n                            color: '#ebebeb',\r\n                        },\r\n                    ]\r\n                },\r\n                {\r\n                    featureType: 'administrative',\r\n                    elementType: 'geometry',\r\n                    stylers: [\r\n                        {\r\n                            color: '#a7a7a7',\r\n                        },\r\n                    ]\r\n                },\r\n                {\r\n                    featureType: 'road.arterial',\r\n                    elementType: 'geometry.fill',\r\n                    stylers: [\r\n                        {\r\n                            color: '#ffffff',\r\n                        },\r\n                    ]\r\n                },\r\n                {\r\n                    featureType: 'road.arterial',\r\n                    elementType: 'geometry.fill',\r\n                    stylers: [\r\n                        {\r\n                            color: '#ffffff',\r\n                        },\r\n                    ]\r\n                },\r\n                {\r\n                    featureType: 'landscape',\r\n                    elementType: 'geometry.fill',\r\n                    stylers: [\r\n                        {\r\n                            visibility: 'on',\r\n                        },\r\n                        {\r\n                            color: '#efefef',\r\n                        },\r\n                    ]\r\n                },\r\n                {\r\n                    featureType: 'road',\r\n                    elementType: 'labels.text.fill',\r\n                    stylers: [\r\n                        {\r\n                            color: '#696969',\r\n                        },\r\n                    ]\r\n                },\r\n                {\r\n                    featureType: 'administrative',\r\n                    elementType: 'labels.text.fill',\r\n                    stylers: [\r\n                        {\r\n                            visibility: 'on',\r\n                        },\r\n                        {\r\n                            color: '#737373',\r\n                        },\r\n                    ],\r\n                },\r\n                {\r\n                    featureType: 'poi',\r\n                    elementType: 'labels.icon',\r\n                    stylers: [\r\n                        {\r\n                            visibility: 'off',\r\n                        },\r\n                    ],\r\n                },\r\n                {\r\n                    featureType: 'poi',\r\n                    elementType: 'labels.icon',\r\n                    stylers: [\r\n                        {\r\n                            visibility: 'off',\r\n                        },\r\n                    ],\r\n                },\r\n                {\r\n                    featureType: 'poi',\r\n                    elementType: 'labels.icon',\r\n                    stylers: [\r\n                        {\r\n                            visibility: 'off',\r\n                        },\r\n                    ],\r\n                }\r\n            ];\r\n            return featureOpts;\r\n        }\r\n        Map.GetCustomStyle = GetCustomStyle;\r\n    })(Map = Common.Map || (Common.Map = {}));\r\n})(Common || (Common = {}));\r\n"]}