{"version":3,"file":"index.6806a87e6443cc846e00.js","mappings":"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","sources":["webpack://website/webpack/bootstrap","webpack://website/webpack/runtime/make namespace object","webpack://website/./src/js/utils.js","webpack://website/./node_modules/@googlemaps/js-api-loader/dist/index.esm.js","webpack://website/./src/js/index.js"],"sourcesContent":["// The module cache\nvar __webpack_module_cache__ = {};\n\n// The require function\nfunction __webpack_require__(moduleId) {\n\t// Check if module is in cache\n\tvar cachedModule = __webpack_module_cache__[moduleId];\n\tif (cachedModule !== undefined) {\n\t\treturn cachedModule.exports;\n\t}\n\t// Create a new module (and put it into the cache)\n\tvar module = __webpack_module_cache__[moduleId] = {\n\t\t// no module.id needed\n\t\t// no module.loaded needed\n\t\texports: {}\n\t};\n\n\t// Execute the module function\n\t__webpack_modules__[moduleId](module, module.exports, __webpack_require__);\n\n\t// Return the exports of the module\n\treturn module.exports;\n}\n\n","// define __esModule on exports\n__webpack_require__.r = (exports) => {\n\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n\t}\n\tObject.defineProperty(exports, '__esModule', { value: true });\n};","export function navigatePro(search, state, city, category) {\n const urlParams = `search=${search}&state=${state}&city=${city}`;\n if (category) {\n window.location = `${process.env.HOME_BUYER_GUIDE_DASHBOARD_URL}professionals/${category}?${urlParams}`;\n } else {\n window.location = `${process.env.HOME_BUYER_GUIDE_DASHBOARD_URL}professionals?${urlParams}`;\n }\n}\n\nexport function navigateGuide(search, state, city, category) {\n const urlParams = `search=${search}&state=${state}&city=${city}`;\n if (category) {\n window.location = `${process.env.HOME_BUYER_GUIDE_DASHBOARD_URL}guide/${category}?${urlParams}`;\n } else {\n window.location = `${process.env.HOME_BUYER_GUIDE_DASHBOARD_URL}guide?${urlParams}`;\n }\n}\n\nexport function getProSvg(dataId) {\n switch (dataId)\n {\n case 'MortgageBrokers':\n return ['#mortgage-brokers', 'Mortgage
Lenders'];\n case 'RealEstateAgents':\n return ['#real-estate', 'Real Estate
Agents'];\n case 'Attorneys':\n return ['#attorneys', 'Attorneys'];\n case 'HomeInspectors':\n return ['#home-inspectors', 'Home
Inspectors'];\n case 'HomeownersInsurance':\n return ['#home-insurance', 'Home
Insurance'];\n case 'Movers':\n return ['#movers', 'Moving
Companies'];\n }\n}\n\nexport function getProName(dataId) {\n switch (dataId)\n {\n case 'MortgageBrokers':\n return 'a Mortgage Lender';\n case 'RealEstateAgents':\n return 'a Real Estate Agent';;\n case 'Attorneys':\n return 'an Attorney';;\n case 'HomeInspectors':\n return 'a Home Inspector';;\n case 'HomeownersInsurance':\n return 'an Insurance Broker';\n case 'Movers':\n return 'a Moving Company';\n }\n}\n\n\nexport function getGuideSvg(dataId) {\n switch (parseInt(dataId))\n {\n case 1:\n return ['#pre-approved', 'Get
Pre-Approved'];\n case 2:\n return ['#find-property', 'Find a
Property'];\n case 3:\n return ['#make-offer', ' Make an
Offer'];\n case 4:\n return ['#home-inspectors', 'Home
Inspection'];\n case 5:\n return ['#sign-contract', 'Sign
Contract'];\n case 6:\n return ['#home-insurance', 'Get
Insurance'];\n case 7:\n return ['#mortgage-brokers', 'Mortgage
Application'];\n case 8:\n return ['#walkthrough', 'Final
Walkthrough'];\n case 9:\n return ['#real-estate', 'Closing'];\n case 10:\n return ['#movers', 'Move'];\n }\n}\n\n","// do not edit .js files directly - edit src/index.jst\n\n\n\nvar fastDeepEqual = function equal(a, b) {\n if (a === b) return true;\n\n if (a && b && typeof a == 'object' && typeof b == 'object') {\n if (a.constructor !== b.constructor) return false;\n\n var length, i, keys;\n if (Array.isArray(a)) {\n length = a.length;\n if (length != b.length) return false;\n for (i = length; i-- !== 0;)\n if (!equal(a[i], b[i])) return false;\n return true;\n }\n\n\n\n if (a.constructor === RegExp) return a.source === b.source && a.flags === b.flags;\n if (a.valueOf !== Object.prototype.valueOf) return a.valueOf() === b.valueOf();\n if (a.toString !== Object.prototype.toString) return a.toString() === b.toString();\n\n keys = Object.keys(a);\n length = keys.length;\n if (length !== Object.keys(b).length) return false;\n\n for (i = length; i-- !== 0;)\n if (!Object.prototype.hasOwnProperty.call(b, keys[i])) return false;\n\n for (i = length; i-- !== 0;) {\n var key = keys[i];\n\n if (!equal(a[key], b[key])) return false;\n }\n\n return true;\n }\n\n // true if both NaN, false otherwise\n return a!==a && b!==b;\n};\n\n/**\n * Copyright 2019 Google LLC. All Rights Reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at.\n *\n * Http://www.apache.org/licenses/LICENSE-2.0.\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nconst DEFAULT_ID = \"__googleMapsScriptId\";\n/**\n * The status of the [[Loader]].\n */\nvar LoaderStatus;\n(function (LoaderStatus) {\n LoaderStatus[LoaderStatus[\"INITIALIZED\"] = 0] = \"INITIALIZED\";\n LoaderStatus[LoaderStatus[\"LOADING\"] = 1] = \"LOADING\";\n LoaderStatus[LoaderStatus[\"SUCCESS\"] = 2] = \"SUCCESS\";\n LoaderStatus[LoaderStatus[\"FAILURE\"] = 3] = \"FAILURE\";\n})(LoaderStatus || (LoaderStatus = {}));\n/**\n * [[Loader]] makes it easier to add Google Maps JavaScript API to your application\n * dynamically using\n * [Promises](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Promise).\n * It works by dynamically creating and appending a script node to the the\n * document head and wrapping the callback function so as to return a promise.\n *\n * ```\n * const loader = new Loader({\n * apiKey: \"\",\n * version: \"weekly\",\n * libraries: [\"places\"]\n * });\n *\n * loader.load().then((google) => {\n * const map = new google.maps.Map(...)\n * })\n * ```\n */\nclass Loader {\n /**\n * Creates an instance of Loader using [[LoaderOptions]]. No defaults are set\n * using this library, instead the defaults are set by the Google Maps\n * JavaScript API server.\n *\n * ```\n * const loader = Loader({apiKey, version: 'weekly', libraries: ['places']});\n * ```\n */\n constructor({ apiKey, authReferrerPolicy, channel, client, id = DEFAULT_ID, language, libraries = [], mapIds, nonce, region, retries = 3, url = \"https://maps.googleapis.com/maps/api/js\", version, }) {\n this.CALLBACK = \"__googleMapsCallback\";\n this.callbacks = [];\n this.done = false;\n this.loading = false;\n this.errors = [];\n this.apiKey = apiKey;\n this.authReferrerPolicy = authReferrerPolicy;\n this.channel = channel;\n this.client = client;\n this.id = id || DEFAULT_ID; // Do not allow empty string\n this.language = language;\n this.libraries = libraries;\n this.mapIds = mapIds;\n this.nonce = nonce;\n this.region = region;\n this.retries = retries;\n this.url = url;\n this.version = version;\n if (Loader.instance) {\n if (!fastDeepEqual(this.options, Loader.instance.options)) {\n throw new Error(`Loader must not be called again with different options. ${JSON.stringify(this.options)} !== ${JSON.stringify(Loader.instance.options)}`);\n }\n return Loader.instance;\n }\n Loader.instance = this;\n }\n get options() {\n return {\n version: this.version,\n apiKey: this.apiKey,\n channel: this.channel,\n client: this.client,\n id: this.id,\n libraries: this.libraries,\n language: this.language,\n region: this.region,\n mapIds: this.mapIds,\n nonce: this.nonce,\n url: this.url,\n authReferrerPolicy: this.authReferrerPolicy,\n };\n }\n get status() {\n if (this.errors.length) {\n return LoaderStatus.FAILURE;\n }\n if (this.done) {\n return LoaderStatus.SUCCESS;\n }\n if (this.loading) {\n return LoaderStatus.LOADING;\n }\n return LoaderStatus.INITIALIZED;\n }\n get failed() {\n return this.done && !this.loading && this.errors.length >= this.retries + 1;\n }\n /**\n * CreateUrl returns the Google Maps JavaScript API script url given the [[LoaderOptions]].\n *\n * @ignore\n */\n createUrl() {\n let url = this.url;\n url += `?callback=${this.CALLBACK}`;\n if (this.apiKey) {\n url += `&key=${this.apiKey}`;\n }\n if (this.channel) {\n url += `&channel=${this.channel}`;\n }\n if (this.client) {\n url += `&client=${this.client}`;\n }\n if (this.libraries.length > 0) {\n url += `&libraries=${this.libraries.join(\",\")}`;\n }\n if (this.language) {\n url += `&language=${this.language}`;\n }\n if (this.region) {\n url += `®ion=${this.region}`;\n }\n if (this.version) {\n url += `&v=${this.version}`;\n }\n if (this.mapIds) {\n url += `&map_ids=${this.mapIds.join(\",\")}`;\n }\n if (this.authReferrerPolicy) {\n url += `&auth_referrer_policy=${this.authReferrerPolicy}`;\n }\n return url;\n }\n deleteScript() {\n const script = document.getElementById(this.id);\n if (script) {\n script.remove();\n }\n }\n /**\n * Load the Google Maps JavaScript API script and return a Promise.\n */\n load() {\n return this.loadPromise();\n }\n /**\n * Load the Google Maps JavaScript API script and return a Promise.\n *\n * @ignore\n */\n loadPromise() {\n return new Promise((resolve, reject) => {\n this.loadCallback((err) => {\n if (!err) {\n resolve(window.google);\n }\n else {\n reject(err.error);\n }\n });\n });\n }\n /**\n * Load the Google Maps JavaScript API script with a callback.\n */\n loadCallback(fn) {\n this.callbacks.push(fn);\n this.execute();\n }\n /**\n * Set the script on document.\n */\n setScript() {\n if (document.getElementById(this.id)) {\n // TODO wrap onerror callback for cases where the script was loaded elsewhere\n this.callback();\n return;\n }\n const url = this.createUrl();\n const script = document.createElement(\"script\");\n script.id = this.id;\n script.type = \"text/javascript\";\n script.src = url;\n script.onerror = this.loadErrorCallback.bind(this);\n script.defer = true;\n script.async = true;\n if (this.nonce) {\n script.nonce = this.nonce;\n }\n document.head.appendChild(script);\n }\n /**\n * Reset the loader state.\n */\n reset() {\n this.deleteScript();\n this.done = false;\n this.loading = false;\n this.errors = [];\n this.onerrorEvent = null;\n }\n resetIfRetryingFailed() {\n if (this.failed) {\n this.reset();\n }\n }\n loadErrorCallback(e) {\n this.errors.push(e);\n if (this.errors.length <= this.retries) {\n const delay = this.errors.length * Math.pow(2, this.errors.length);\n console.log(`Failed to load Google Maps script, retrying in ${delay} ms.`);\n setTimeout(() => {\n this.deleteScript();\n this.setScript();\n }, delay);\n }\n else {\n this.onerrorEvent = e;\n this.callback();\n }\n }\n setCallback() {\n window.__googleMapsCallback = this.callback.bind(this);\n }\n callback() {\n this.done = true;\n this.loading = false;\n this.callbacks.forEach((cb) => {\n cb(this.onerrorEvent);\n });\n this.callbacks = [];\n }\n execute() {\n this.resetIfRetryingFailed();\n if (this.done) {\n this.callback();\n }\n else {\n // short circuit and warn if google.maps is already loaded\n if (window.google && window.google.maps && window.google.maps.version) {\n console.warn(\"Google Maps already loaded outside @googlemaps/js-api-loader.\" +\n \"This may result in undesirable behavior as options and script parameters may not match.\");\n this.callback();\n return;\n }\n if (this.loading) ;\n else {\n this.loading = true;\n this.setCallback();\n this.setScript();\n }\n }\n }\n}\n\nexport { DEFAULT_ID, Loader, LoaderStatus };\n//# sourceMappingURL=index.esm.js.map\n","require('normalize.css/normalize.css');\nrequire('../css/index.scss');\n\nimport { getProName, navigatePro } from './utils.js';\nimport { Loader } from '@googlemaps/js-api-loader';\n\nconst locationContainer = document.getElementById('location_container');\nconst categoryContainer = document.getElementById('category_container');\nconst backButton = document.getElementById('back_button');\n\nconst params = new URLSearchParams(location.search);\nconst proLanding = params.get('proLanding');\n\nif (proLanding) {\n const name = getProName(proLanding);\n const whereHeader = document.getElementById('where_header');\n whereHeader.innerHTML = 'Where are you looking for ' + name + \"?\";\n\n categoryContainer.classList.toggle('hide');\n locationContainer.classList.toggle('show');\n backButton.classList.toggle('hide');\n}\n\ndocument.getElementById('button_container').addEventListener('click', (event) => {\n if (event.target.closest('input') !== null) {\n\n const category = document.querySelector('input[name=radio-pro-category]:checked').getAttribute('data-id');\n const name = getProName(category);\n\n const whereHeader = document.getElementById('where_header');\n whereHeader.innerHTML = 'And where are you looking for ' + name + \"?\";\n\n categoryContainer.classList.toggle('animate');\n locationContainer.classList.remove('hide');\n locationContainer.classList.toggle('animate');\n }\n});\n\nbackButton.addEventListener('click', (_) => {\n categoryContainer.classList.toggle('animate');\n locationContainer.classList.toggle('animate');\n});\n\nconst loader = new Loader({\n apiKey: 'AIzaSyDPRMuc-vQprevDs0T98KYsk2Wj_ytM0gM',\n libraries: ['places'],\n region: 'us',\n});\n\nloader\n .load()\n .then(() => {\n const input = document.getElementById('location_search');\n const options = {\n componentRestrictions: { country: ['us'] },\n types: ['geocode'],\n };\n const autocomplete = new google.maps.places.Autocomplete(input, options);\n google.maps.event.addListener(autocomplete, 'place_changed', () => {\n const radioChecked= document.querySelector('input[name=radio-pro-category]:checked');\n const category = radioChecked ? radioChecked.getAttribute('data-id') : params.get('proLanding');\n \n const place = autocomplete.getPlace();\n const search = place.formatted_address;\n let city; let\n state;\n\n place.address_components.forEach((component) => {\n if (component.types.includes('sublocality') || component.types.includes('locality')) {\n city = component.short_name;\n }\n if (component.types.includes('administrative_area_level_1')) {\n state = component.short_name;\n }\n\n navigatePro(search, state, city, category);\n });\n });\n })\n .catch((e) => {\n console.log(e);\n });\n"],"names":["__webpack_module_cache__","__webpack_require__","moduleId","cachedModule","undefined","exports","module","__webpack_modules__","r","Symbol","toStringTag","Object","defineProperty","value","getProName","dataId","fastDeepEqual","equal","a","b","constructor","length","i","keys","Array","isArray","RegExp","source","flags","valueOf","prototype","toString","hasOwnProperty","call","key","DEFAULT_ID","LoaderStatus","Loader","apiKey","authReferrerPolicy","channel","client","id","language","libraries","mapIds","nonce","region","retries","url","version","this","CALLBACK","callbacks","done","loading","errors","instance","options","Error","JSON","stringify","status","FAILURE","SUCCESS","LOADING","INITIALIZED","failed","createUrl","join","deleteScript","script","document","getElementById","remove","load","loadPromise","Promise","resolve","reject","loadCallback","err","error","window","google","fn","push","execute","setScript","callback","createElement","type","src","onerror","loadErrorCallback","bind","defer","async","head","appendChild","reset","onerrorEvent","resetIfRetryingFailed","e","delay","Math","pow","console","log","setTimeout","setCallback","__googleMapsCallback","forEach","cb","maps","warn","locationContainer","categoryContainer","backButton","params","URLSearchParams","location","search","proLanding","get","name","innerHTML","classList","toggle","addEventListener","event","target","closest","querySelector","getAttribute","_","then","input","autocomplete","places","Autocomplete","componentRestrictions","country","types","addListener","radioChecked","category","place","getPlace","formatted_address","city","state","address_components","component","includes","short_name","urlParams","navigatePro","catch"],"sourceRoot":""}