define("@widget/CONTACT/bs-genericMap-d50d3368.js",["exports","~/c/bs-_rollupPluginBabelHelpers","~/c/bs-data-aids","@wsb/guac-widget-shared@^1/lib/common/utils/form"],(function(e,t,o,a){"use strict";const s=e=>`//img1.wsimg.com/isteam/ip/static/${e}`,r="undefined"==typeof window,l="IEMobile",n="Android",i="BlackBerry",p="iPhone|iPad|iPod",c=function(){return!r&&(arguments.length>0&&void 0!==arguments[0]?arguments[0]:[n,i,p,l]).reduce(((e,t)=>e||new RegExp(`/${t}/i`).test(navigator.userAgent)),!1)},g=e=>{const t=`http://maps.google.com/maps?daddr=${e}`;window.open(t)},d=c,u=()=>c([p]),{Z_INDEX_FULL_SCREEN_OVERLAY:h}=(global.Core||guac["@wsb/guac-widget-core"]).constants.layers;class m extends(global.React||guac.react).Component{constructor(){super(...arguments),this.el=document.createElement("div"),this.el.className="x",this.mapContainer=null}componentDidMount(){const{renderMap:e}=this.props,t=document.querySelector(".device-chrome.device-chrome-mobile .viewport");Object.assign(this.el.style,{backgroundColor:"#ffffff",zIndex:h},t?{position:"absolute",left:t.style.left,right:t.style.right,top:t.style.top,bottom:t.style.bottom,width:t.style.width,height:t.style.height}:{position:"fixed",left:0,right:0,top:0,bottom:0,width:"100%",height:"100%"}),this.parentContainer=t?t.parentNode:document.body,this.parentContainer.appendChild(this.el),e(this.mapContainer)}componentWillUnmount(){this.parentContainer.removeChild(this.el)}render(){const{handleClose:e,getDirectionsLabel:t,handleGetDirections:a}=this.props,r=(global.React||guac.react).createElement((global.Core||guac["@wsb/guac-widget-core"]).UX2.Element.Block,{category:"neutral",section:"overlay",style:{width:"100%",height:"100%"},"data-aid":o.D.CONTACT_MAP_MOBILE_OVERLAY},(global.React||guac.react).createElement((global.Core||guac["@wsb/guac-widget-core"]).UX2.Element.Link,{tag:"a",style:{position:"absolute",right:"small",top:"small",cursor:"pointer",background:`url('${s("mapIcon/close.svg")}')`,zIndex:1,width:"34px",height:"34px"},onClick:e}),(global.React||guac.react).createElement("div",{ref:e=>{this.mapContainer=e},style:{width:"100%",height:"100%"}}),(global.React||guac.react).createElement((global.Core||guac["@wsb/guac-widget-core"]).UX2.Element.Button.Primary,{style:{zIndex:1,position:"absolute",bottom:"xlarger",left:"50%",transform:"translate(-50%, -50%)",textAlign:"center",width:"90%"},onClick:a,children:t,solid:!0}));return(global.ReactDOM||guac["react-dom"]).createPortal(r,this.el)}}t._(m,"propTypes",{renderMap:(global.PropTypes||guac["prop-types"]).func.isRequired,handleClose:(global.PropTypes||guac["prop-types"]).func.isRequired,handleGetDirections:(global.PropTypes||guac["prop-types"]).func.isRequired,getDirectionsLabel:(global.PropTypes||guac["prop-types"]).string.isRequired,container:(global.PropTypes||guac["prop-types"]).node.isRequired});const b=()=>({marker:null,set:function(e,t){let{lat:o,lng:a}=t;window.google&&(this.marker=new window.google.maps.Marker({position:{lat:o,lng:a},map:e}))},update:function(e,t){let{lat:o,lng:a}=t;this.marker?.setMap?.(null),this.marker=null,this.set(e,{lat:o,lng:a})}}),y=e=>{if(window.google&&window.google.maps&&"function"==typeof e)return e();if(document.querySelectorAll("script[src*='maps.googleapis.com/maps/api/js']").length)return setTimeout(e,2e3);const t=document.createElement("script"),o=["https://maps.googleapis.com/maps/api/js","?client=gme-godaddycom","&channel=gc-widget-contact"].join("");t.setAttribute("src",`${o}`),t.setAttribute("async","async"),document.body.appendChild(t),t.onload=e};class w extends(global.React||guac.react).Component{render(){const{address:e,staticContent:t,isRouteMobilePreviewPublish:a,openFullScreenOverlay:s}=this.props,r={button:{position:"absolute",left:"xxlarge",top:"xsmall",width:"auto","@xs-only":{fontSize:"xsmall",left:"xsmall",maxWidth:"90%"}}};if(!a){const o=t.mapCTA,a=(0,(global.Core||guac["@wsb/guac-widget-core"]).UX2.utils.TCCLUtils.getTCCLString)({eid:"ux2.contact.get_directions.click",type:"click"});return(global.React||guac.react).createElement((global.Core||guac["@wsb/guac-widget-core"]).UX2.Element.Button.Primary,{tag:"button","data-tccl":a,onClick:g.bind(null,e),style:r.button,solid:!0,icon:"direction",size:"small"},o)}return(global.React||guac.react).createElement("a",{onClick:s,style:r.icon,"data-aid":o.D.CONTACT_MAP_EXPAND_ICON})}}w.propTypes={address:(global.PropTypes||guac["prop-types"]).string,isRouteMobilePreviewPublish:(global.PropTypes||guac["prop-types"]).bool,staticContent:(global.PropTypes||guac["prop-types"]).object.isRequired,openFullScreenOverlay:(global.PropTypes||guac["prop-types"]).func.isRequired};var C={local:{formSubmitHost:"http://contact.apps-api.instantpage.dev-secureserver.net:8400",generateUrlHost:"http://url-generator.apps.dev-secureserver.net:8080",contactsHost:"https://contacts.dev-godaddy.com"},development:{formSubmitHost:"https://contact.apps-api.instantpage.dev-secureserver.net",generateUrlHost:"https://url-generator.apps.dev-secureserver.net",contactsHost:"https://contacts.dev-godaddy.com"},test:{formSubmitHost:"https://contact.apps-api.instantpage.test-secureserver.net",generateUrlHost:"https://url-generator.apps.test-secureserver.net",contactsHost:"https://contacts.test-godaddy.com"},production:{formSubmitHost:"https://contact.apps-api.instantpage.secureserver.net",generateUrlHost:"https://url-generator.apps.secureserver.net",contactsHost:"https://contacts.godaddy.com"}};const{GOOGLE_MAP_STATIC:T}=o.D;class v extends(global.React||guac.react).Component{constructor(e){super(e),this.state={staticUrl:""}}componentDidMount(){const{lat:e,lon:t,address:o}=this.props;(e&&t||o)&&this.generateUrl()}generateStyles(){return{width:"100%",height:"100%","@xs-only":{objectFit:"contain",position:"absolute"}}}generateUrl(){const{lat:e,lon:t,address:o,dimensions:a,env:s}=this.props,{height:r,width:l}=a,n=(C&&C[s]||{}).generateUrlHost;if(!n)return;const i=[`lat=${e}`,`&lon=${t}`,`&address=${o}`,`&height=${r}`,`&width=${l}`].join("");window.fetch(`${n}/v1/static-google-map?${i}`).then((e=>e.json())).then((e=>{let{url:t}=e;return this.setState({staticUrl:t})}))}render(){const{staticUrl:e}=this.state;return e?(global.React||guac.react).createElement((global.Core||guac["@wsb/guac-widget-core"]).UX2.Element.Image,{"data-aid":T,style:this.generateStyles(),src:e}):null}}v.propTypes={lat:(global.PropTypes||guac["prop-types"]).number,lon:(global.PropTypes||guac["prop-types"]).number,address:(global.PropTypes||guac["prop-types"]).string,dimensions:(global.PropTypes||guac["prop-types"]).object,env:(global.PropTypes||guac["prop-types"]).string},v.defaultProps={dimensions:{height:80,width:275}};class P extends(global.React||guac.react).Component{constructor(e){super(e),t._(this,"toggleMobileOverlay",(()=>{this.setState({showMobileOverlay:!this.state.showMobileOverlay})})),t._(this,"handleGetDirections",(()=>{const{address:e}=this.props;(e=>{const t=u()?`http://maps.apple.com/?q=${e}`:`http://www.google.com/maps/dir//${e}`;window.location.href=t})(e)})),t._(this,"renderFullScreenMap",(e=>{this.generateGMap(e,!0)})),this.state={isMobile:d(),isViewPortRender:"MOBILE_RENDER_DEVICE"===e.viewDevice&&!!document.querySelector(".device-chrome"),showMobileOverlay:!1},this.generateGMap=this.generateGMap.bind(this),this.googleMap=null,this.mapContainer=null,this.markerController=b(),this.currentCoords={lastLat:null,lastLon:null}}componentDidMount(){y(!this.state.isMobile&&this.generateGMap.bind(this,this.mapContainer,!1))}componentDidUpdate(e){const{lat:t,lon:o,address:a,isEditMode:s}=this.props,{isMobile:r}=this.state,{lastLat:l,lastLon:n}=this.currentCoords;t&&o&&l!==t&&n!==o&&((e=>{let{map:t,lat:o,lon:a}=e;const s=()=>{t.panTo({lat:parseFloat(o,10),lng:parseFloat(a,10)})};t&&t.mapUrl&&setTimeout(s,200)})({map:this.googleMap,lat:t,lon:o}),this.currentCoords={lastLat:t,lastLon:o},this.markerController.update(this.googleMap,{lat:parseFloat(t,10),lng:parseFloat(o,10)})),e.address===a&&(s||r)||this.generateGMap(this.mapContainer)}generateGMap(e){let t=arguments.length>1&&void 0!==arguments[1]&&arguments[1];const{lat:o,lon:a,zoom:s,isEditMode:r,viewDevice:l}=this.props,{isMobile:n,isViewPortRender:i}=this.state;if(!o||!a||!window.google)return;const p={lat:parseFloat(o,10),lng:parseFloat(a,10)},c={center:p,zoom:s,mapTypeId:google.maps.MapTypeId.ROADMAP,mapTypeControl:!1,scrollwheel:!1,fullscreenControl:!1,streetViewControl:!1,zoomControl:(t||!n||r||"DESKTOP_RENDER_DEVICE"===l)&&!i,zoomControlOptions:{position:google.maps.ControlPosition.LEFT_TOP}};n&&!t&&(c.gestureHandling="none"),this.googleMap=new google.maps.Map(e,c),this.markerController.set(this.googleMap,p)}render(){const{lat:e,lon:t,zoom:a,category:s,section:r,address:l,staticContent:n,viewDevice:i,isEditMode:p,overrideOverlay:c}=this.props,{isMobile:g,isViewPortRender:d,showMobileOverlay:u}=this.state;if(!Boolean(Number(e)&&Number(t)&&Number(a)))return null;const h={shared:{left:0,top:0,right:0,bottom:0,position:"absolute",transform:"translate3d(0,0,0)"},wrapper:{display:"block",cursor:"pointer",position:"absolute !important"}},b=c||g&&!p&&"DESKTOP_RENDER_DEVICE"!==i,y=b&&!d?this.toggleMobileOverlay:(global._||guac.lodash).noop,C={address:l,staticContent:n,isRouteMobilePreviewPublish:b,openFullScreenOverlay:y};return(global.React||guac.react).createElement((global.Core||guac["@wsb/guac-widget-core"]).UX2.Element.Block,{category:s,section:r,style:{...h.shared,...h.wrapper}},(global.React||guac.react).createElement("div",{ref:e=>{this.mapContainer=e},style:h.shared,"data-aid":o.D.CONTACT_MAP_REND,onClick:y},b&&(global.React||guac.react).createElement(v,this.props)),!d&&(global.React||guac.react).createElement(w,C),u&&(global.React||guac.react).createElement(m,{getDirectionsLabel:n.mapCTA,renderMap:this.renderFullScreenMap,handleClose:this.toggleMobileOverlay,handleGetDirections:this.handleGetDirections}))}}P.propTypes={lat:(global.PropTypes||guac["prop-types"]).string,lon:(global.PropTypes||guac["prop-types"]).string,zoom:(global.PropTypes||guac["prop-types"]).number,address:(global.PropTypes||guac["prop-types"]).string,env:(global.PropTypes||guac["prop-types"]).string,category:(global.PropTypes||guac["prop-types"]).string,section:(global.PropTypes||guac["prop-types"]).string,staticContent:(global.PropTypes||guac["prop-types"]).object.isRequired,isPublishMode:(global.PropTypes||guac["prop-types"]).bool,viewDevice:(global.PropTypes||guac["prop-types"]).string,isEditMode:(global.PropTypes||guac["prop-types"]).bool,overrideOverlay:(global.PropTypes||guac["prop-types"]).bool,renderMode:(global.PropTypes||guac["prop-types"]).string},P.defaultProps={staticContent:{mapCTA:""}};class f extends(global.React||guac.react).Component{render(){const e={left:0,top:0,right:0,bottom:0,position:"absolute",display:"block",backgroundImage:`url('${s("mapIcon/mboxThumb.png")}')`,backgroundSize:"cover",backgroundPosition:"center"};return(global.React||guac.react).createElement((global.Core||guac["@wsb/guac-widget-core"]).UX2.Element.Block,{"data-aid":o.D.CONTACT_MAP_STATIC_REND,style:e,"data-traffic2":"pandc.vnext.edit_widget_contact.static_map.click"})}}var E="google",M="static";class R extends(global.React||guac.react).Component{render(){const{type:e}=this.props;switch(e){case M:return(global.React||guac.react).createElement(f,null);case E:return(global.React||guac.react).createElement(P,this.props);default:return null}}}R.propTypes={type:(global.PropTypes||guac["prop-types"]).string,...P.propTypes},e.default=R,Object.defineProperty(e,"__esModule",{value:!0})})),"undefined"!=typeof window&&(window.global=window); //# sourceMappingURL=bs-genericMap-d50d3368.js.map