{"version":3,"sources":["webpack:///./app/util/fetch-json.js","webpack:///./app/components/react/Navigation/SiteSearch/index.js","webpack:///./app/components/render/Navigation/SiteSearch.js"],"names":["__webpack_require__","Sentry","FetchJSON","url","method","arguments","length","undefined","data","Promise","resolve","reject","postData","indexOf","QueryString","stringify","JSON","xhr","XMLHttpRequest","destroy","onload","onerror","open","setRequestHeader","send","parse","response","error","captureException","_react","_emptyHelpers","SiteSearch","props","_classCallCheck","this","_this","_possibleConstructorReturn","__proto__","Object","getPrototypeOf","call","state","searchValue","results","Component","index","window","location","href","Url","event","_this2","target","value","setState","isLoading","fetch","then","valueLowerCase","toLowerCase","valueUpper","capitalizeFirstLetter","regex","RegExp","regexUpper","i","replaceName","Title","replace","type","_this3","_react2","default","createElement","className","action","role","name","placeholder","onChange","handleChange","autoComplete","aria-hidden","map","result","typeClass","getTypeClass","Template","key","dangerouslySetInnerHTML","__html","onClick","selectOption","_class","context","init","initReact","ReactDOM","render","_SiteSearch2"],"mappings":"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","file":"SiteSearchRender.js","sourcesContent":["import QueryString from 'query-string';\r\nimport * as Sentry from '@sentry/browser';\r\n\r\nexport default class FetchJSON {\r\n\r\n static fetch(url, method = 'GET', data = {}) {\r\n return new Promise(function(resolve, reject) {\r\n let postData = null;\r\n\r\n if (method === 'GET') {\r\n if (url.indexOf('?') === -1) {\r\n url += '?' + QueryString.stringify(data);\r\n }\r\n } else {\r\n postData = JSON.stringify(data);\r\n }\r\n\r\n let xhr = new XMLHttpRequest();\r\n xhr.open(method, url, true);\r\n xhr.setRequestHeader(\"Content-type\", \"application/json;charset=UTF-8\");\r\n xhr.send(postData);\r\n\r\n xhr.onload = function() {\r\n resolve(JSON.parse(xhr.response));\r\n destroy();\r\n }\r\n\r\n xhr.onerror = function(error) {\r\n Sentry.captureException(error);\r\n reject(error);\r\n destroy();\r\n }\r\n\r\n function destroy() {\r\n xhr.onload = null;\r\n xhr.onerror = null;\r\n xhr = null;\r\n }\r\n });\r\n }\r\n}\r\n","import React, { Component, PropTypes } from 'react';\r\n\r\nimport { capitalizeFirstLetter } from '../../../../util/empty-helpers.js';\r\nimport FetchJSON from '../../../../util/fetch-json';\r\n\r\nexport default class SiteSearch extends Component {\r\n\r\n constructor(props) {\r\n super(props);\r\n\r\n this.state = {\r\n searchValue: \"\",\r\n results: []\r\n }\r\n }\r\n\r\n selectOption(index) {\r\n window.location.href = this.state.results[index].Url;\r\n }\r\n\r\n handleChange(event) {\r\n const searchValue = event.target.value;\r\n const url = '/api/SiteSearch/Search?query=' + searchValue;\r\n\r\n if (searchValue === \"\") {\r\n this.setState({results: [], searchValue});\r\n } else {\r\n this.setState({isLoading: true, searchValue});\r\n\r\n\r\n FetchJSON.fetch(url, 'GET').then(results => {\r\n if (results) {\r\n // Set values to search\r\n let valueLowerCase = searchValue.toLowerCase();\r\n let valueUpper = capitalizeFirstLetter(valueLowerCase);\r\n\r\n // Set up regex for global search\r\n let regex = new RegExp(valueLowerCase, \"g\");\r\n let regexUpper = new RegExp(valueUpper, \"g\");\r\n\r\n // Loop through and replace instances\r\n for (let i = 0; i < results.length; i++) {\r\n let replaceName = results[i].Title;\r\n replaceName = replaceName.replace(regex,''+valueLowerCase+'');\r\n replaceName = replaceName.replace(regexUpper,''+valueUpper+'');\r\n results[i].Title = replaceName;\r\n }\r\n if (searchValue === this.state.searchValue) {\r\n this.setState({results});\r\n }\r\n }\r\n });\r\n }\r\n }\r\n\r\n getTypeClass(type) {\r\n switch(type) {\r\n case \"Hotel\": {\r\n return \"SiteSearch_item-hotel\";\r\n }\r\n case \"MultiCenterPage\": {\r\n return \"SiteSearch_item-multi\";\r\n }\r\n case \"Point of Interest\": {\r\n return \"SiteSearch_item-excursion\";\r\n }\r\n default: {\r\n return \"SiteSearch_item-location\";\r\n }\r\n }\r\n }\r\n\r\n render() {\r\n return (\r\n