{"version":3,"sources":["components/GoogleTagManager.js","images/Skoda_LOISTO_tunnus_RGB_musta.png","components/NavMenu.js","components/FooterLinks.js","components/Footer.js","images/arrowUp.png","components/RenderGate.js","components/CookieConsent.js","components/Symbols.js","components/Layout.js","components/VehicleSearchFilters.js","components/ResetFiltersButton.js","components/PrimaryBannerButton.js","images/icon-search.svg","images/cars/citigo.png","images/cars/fabia.png","images/cars/karoq.png","images/cars/kamiq.png","images/cars/kodiaq.png","images/cars/octavia.png","images/cars/scala.png","images/cars/superb.png","images/cars/rapid.png","components/Home.js","images/arrow-back-big.svg","images/arrow-back-small.svg","components/Vehicle.js","images/demovehicle/auto-kuvat.png","components/Content.js","components/ContactForm.js","components/ReloadFiltersBlock.js","compatibility.js","App.js","registerServiceWorker.js","index.js"],"names":["GoogleTagManager","componentDidMount","dataLayerName","this","props","scriptId","window","gtmScriptNode","document","getElementById","eval","textContent","gtm","gtmParts","id","gtmId","additionalEvents","previewVariables","scheme","noScriptAsReact","scriptAsReact","Component","NavMenu","toggleNavbar","bind","state","collapsed","setState","Navbar","className","light","Container","NavbarBrand","tag","Link","to","src","logo","alt","NavbarToggler","onClick","Collapse","isOpen","navbar","NavItem","activeClassName","exact","displayName","name","FooterLinks","Row","Col","xs","sm","md","lg","xl","href","target","rel","Footer","scrollTo","scrollTop","RenderGate","shouldRender","children","i18n","use","initReactI18next","init","resources","fi","translation","mainHeader","cookieInfo","cookiePolicy","manageCookies","accept","allow","privacyControlCenter","privacyInfo","additionalInfo","controlManagement","alwaysActive","necessary","analytics","functional","marketing","necessaryInfo","analyticsInfo","functionalInfo","marketingInfo","confirm","lng","fallbackLng","interpolation","escapeValue","modalStyles","content","top","left","right","bottom","padding","overflow","marginRight","transform","width","maxWidth","maxHeight","display","fontSize","CookieConsent","modalOpen","settingsOpen","closeModal","acceptAllCookies","openSettings","handleAnalytics","handleFunctional","handleMarketing","getConsent","setCookiesOnConsent","setScriptSrc","cookieComponent","consentCookie","Cookies","get","undefined","categories","split","includes","createConsentEvent","body","style","overflowY","overflowX","event","checked","analyticsScripts","querySelectorAll","functionalScripts","marketingScripts","isConsented","scripts","forEach","script","dataset","consentSrc","category","set","expires","setTimeout","consentClosed","CustomEvent","dispatchEvent","t","onRequestClose","ariaHideApp","contentLabel","shouldCloseOnOverlayClick","bodyOpenClassName","role","aria-modal","aria-hidden","type","xlinkHref","aria-checked","aria-labelledby","onChange","defaultChecked","htmlFor","React","withTranslation","Symbols","viewBox","d","fill","cx","cy","r","stroke","y","height","x","Layout","VehicleSearchFilters","vehicleSearchFilters","currentVehicleSearchFilterValues","JSON","parse","sessionStorage","getItem","vehicleSearchFilterValues","selectedModelNames","isBodyTypeSedanSelected","isBodyTypeFarmariSelected","isBodyTypeHacthbackSelected","isBodyTypeSUVSelected","selectedBodyTypeIds","isFuelBensiiniSelected","isFuelDieselSelected","isFuelKaasuSelected","isFuelSahkoSelected","isFuelHybridiSelected","selectedFuelIds","isTransmissionManualSelected","isTransmissionAutomaticSelected","selectedTransmissionIds","isFourWheelDriveSelected","askPrice","min","max","mileage","year","Date","getFullYear","locations","selectedLocationIds","isTowHitchSelected","isFuelDrivenAuxiliaryHeaterSelected","isCruiseControlSelected","isMetallicSelected","accessories","co2","isMoreOpen","handleChange","toggleModelName","toggleLocation","handleSelectedModelClick","handleSelectedLocationClick","toggleMore","showHideMoreTitles","linkToNewSearch","value","SUV","name2","temp","filtered","slice","doubleValue","push","first","second","filter","index","arr","dropdownOpenModelName","console","log","dropdownOpenLocation","selectedLocation","temp2","that","selected","apply","locationIds","map","item","j","location","preventDefault","btn","classList","add","remove","history","pathname","stringify","every","populateLocationsData","a","fetch","method","headers","Accept","response","json","data","prevState","Object","assign","selectedLocations","Form","FormGroup","Label","Dropdown","toggle","DropdownToggle","caret","DropdownMenu","modelNames","DropdownItem","CardGroup","selectedModelName","Card","CardBody","CardTitle","Button","close","CardText","for","CustomInput","label","maxValue","minValue","step","ref","allowSameValues","onChangeComplete","ResetFiltersButton","resetSearchFilters","PrimaryBannerButton","contentPagePath","contentPageTitle","navigateToContentPage","Home","handleOnDocumentBottom","vehicleSearchResultIndex","vehicleSearchResult","totalResultCount","skip","loading","setDropdownOpen","fallbackCarImages","carImageCitigo","carImageFabia","carImageKaroq","carImageKamiq","carImageKodiaq","carImageOctavia","carImageScala","carImageSuperb","carImageRapid","renderVehicleSearchResult","renderVehicles","vehicleSearchResultChunk","inventoryVehicles","vehicle","i","search","images","marketingImageUrls","length","replace","modelName","makeName","formattedLicensePlateNumber","onError","e","onerror","modelYear","kilometrage","displayType","thousandSeparator","searchResultCount","smallSearch","render","Spinner","animation","vehicles","contents","bannerClassName","supportsWebp","onBottom","prevProps","populateVehicleData","suppressScroll","Top","Skip","ModelNames","FuelIds","BodyIds","TransmissionIds","DriveIds","Accessories","Locations","AskPriceFilterRange","MinAskPrice","MaxAskPrice","InTrafficDateFilterRange","MinInTrafficDate","MaxInTrafficDate","KilometrageFilterRange","MinKilometrage","Math","floor","MaxKilometrage","CO2FilterRange","MinCO2","MaxCO2","clear","setItem","nextProps","Vehicle","vehicleResult","activeTab","isMoreFeaturesOpen","isSearchFiltersOpen","toggleTabs","toggleMoreFeatures","showHideMoreFeaturesTitles","renderVehicle","toggleSearchFilters","tab","currentVehicleId","substring","filteredStockVehicles","v","arrowBackSmall","driveType","1","2","3","technicalInformation","vehicleFuel","0","10","11","12","13","14","15","16","4","5","6","7","8","9","fuelType","transmission","transmissionType","bodyType","20","31","32","33","34","35","36","37","61","81","inTrafficDate","inTrafficYear","inTrafficMonth","getMonth","inTraffidDateStr","getDate","kWPower","maxPower","hpPower","input","parseFloat","Number","isNaN","toFixed","toString","printHpPower","inspectionDate","inspectionMonth","inspectionDateStr","accessoriesArray","resultToRender","customStandardAccessoriesArray","sectionTitle","customAccessoriesArray","newCarAccessoriesArray","newCarAdditionalAccessoriesArray","orderedAccessoriesArray","unknownAccessoriesArray","externalSourceAccessoriesArray","vehicleImages","imageUrl","indexOf","AccessoriesListNested","listItems","acc","idx","ListGroupItem","identifier","columnSize","ListGroup","active","ListGroupItemHeading","AccessoriesList","rootAccessories","rootPosition","position","nestedAccessoriesList","nestedAccessories","modelType","indexOfRegex","marketingText","Nav","tabs","NavLink","classnames","TabContent","TabPane","tabId","Table","sellerCompanyName","toLocaleString","fuelEconomy","city","road","combined","colorText","cO2","engineVol","volume","printEngineVol","seatCount","doorAmount","curbWeight","towingCapacityWithBrakes","towingCapacityWithoutBrakes","acceleration","othervehicles","arrowBackBig","vehicleId","status","Content","ContactForm","messagePlaceholderValue","email","email2","phone","interestedInTestDriveSelected","interestedInBuyingSelected","interestedInChangingSelected","message","isContactTypeEmailSelected","isContactTypePhoneSelected","isSendCopySelected","isEmailsTheSame","isSentWithErrors","isSentWithoutErrors","interestedInChangingReg","interestedInChangingKm","gdbrAcceptedSelected","marketingByEmailAllowedSelected","then","interestedInChangingContent","aria-describedby","maxLength","placeholder","onSubmit","handleSubmit","required","rows","disabled","ReloadFiltersBlock","createImageBitmap","blob","Array","prototype","fun","TypeError","len","res","thisp","arguments","val","call","find","defineProperty","predicate","o","thisArg","k","kValue","configurable","writable","String","regex","match","App","path","component","Boolean","hostname","baseUrl","getElementsByTagName","getAttribute","rootElement","ReactDOM","basename","navigator","serviceWorker","ready","registration","unregister"],"mappings":"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","file":"static/js/main.2527309e.chunk.js","sourcesContent":["import React, { Component } from 'react';\r\nimport gtmParts from 'react-google-tag-manager';\r\nimport PropTypes from 'prop-types';\r\n\r\n// inside the render method where you want to include the tag manager\r\n//\r\n\r\n// or with all optional parameters\r\n// const event = { platform: 'react-stack' }\r\n// < GoogleTagManager gtmId = 'GTM-12345' scriptId = 'gtm-script-container' dataLayerName = 'dl-backup' additionalEvents = { event } previewVariables = '' scheme = 'https:' />\r\n\r\nclass GoogleTagManager extends Component {\r\n componentDidMount() {\r\n const dataLayerName = this.props.dataLayerName || 'dataLayer';\r\n const scriptId = this.props.scriptId || 'react-google-tag-manager-gtm';\r\n\r\n if (!window[dataLayerName]) {\r\n const gtmScriptNode = document.getElementById(scriptId);\r\n\r\n eval(gtmScriptNode.textContent);\r\n }\r\n }\r\n\r\n render() {\r\n const gtm = gtmParts({\r\n id: this.props.gtmId,\r\n dataLayerName: this.props.dataLayerName || 'dataLayer',\r\n additionalEvents: this.props.additionalEvents || {},\r\n previewVariables: this.props.previewVariables || false,\r\n scheme: this.props.scheme || 'https:',\r\n });\r\n\r\n return (\r\n
\r\n
{gtm.noScriptAsReact()}
\r\n
\r\n {gtm.scriptAsReact()}\r\n
\r\n
\r\n );\r\n }\r\n}\r\n\r\nGoogleTagManager.propTypes = {\r\n gtmId: PropTypes.string.isRequired,\r\n dataLayerName: PropTypes.string,\r\n additionalEvents: PropTypes.object,\r\n previewVariables: PropTypes.string,\r\n scriptId: PropTypes.string,\r\n scheme: PropTypes.string,\r\n};\r\n\r\nexport default GoogleTagManager;\r\n","export default __webpack_public_path__ + \"static/media/Skoda_LOISTO_tunnus_RGB_musta.d5e70670.png\";","import React, { Component } from 'react';\r\nimport { Collapse, Container, Navbar, NavbarBrand, NavbarToggler, NavItem } from 'reactstrap';\r\nimport { NavLink } from 'react-router-dom';\r\nimport { Link } from 'react-router-dom';\r\n\r\nimport '../custom.css';\r\nimport './NavMenu.css';\r\n\r\nimport logo from '../images/Skoda_LOISTO_tunnus_RGB_musta.png';\r\n//import search from '../images/search.png';\r\n\r\nexport class NavMenu extends Component {\r\n static displayName = NavMenu.name;\r\n\r\n constructor (props) {\r\n super(props);\r\n\r\n this.toggleNavbar = this.toggleNavbar.bind(this);\r\n this.state = {\r\n collapsed: true\r\n };\r\n }\r\n\r\n toggleNavbar () {\r\n this.setState({\r\n collapsed: !this.state.collapsed\r\n });\r\n }\r\n\r\n render () {\r\n return (\r\n
\r\n \r\n \r\n \r\n \r\n \"SkodaLoisto\"\r\n \r\n \r\n \r\n\r\n \r\n
    \r\n \r\n \r\n \r\n Tutustu Loisto-palveluun\r\n \r\n \r\n \r\n
\r\n
\r\n {/*\r\n \r\n \"Hae\"\r\n \r\n */}\r\n
\r\n
\r\n\r\n
\r\n );\r\n }\r\n}\r\n","import React, { Component } from 'react';\r\nimport { Row, Col } from 'reactstrap';\r\nimport '../custom.css';\r\nimport './FooterLinks.css';\r\n\r\nexport class FooterLinks extends Component {\r\n static displayName = FooterLinks.name;\r\n\r\n render() {\r\n return (\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n );\r\n }\r\n}","import React, { Component } from 'react';\r\nimport { Row, Col } from 'reactstrap';\r\nimport '../custom.css';\r\nimport './Footer.css';\r\nimport arrowUp from '../images/arrowUp.png';\r\n\r\nexport class Footer extends Component {\r\n static displayName = Footer.name;\r\n\r\n scrollTop() {\r\n window.scrollTo(0, 600);\r\n }\r\n\r\n render() {\r\n return (\r\n
\r\n \r\n \r\n ©2021 Škoda Auto a.s.\r\n EVÄSTEET\r\n \r\n \"Ylös\" this.scrollTop()} className=\"arrowUp\" />\r\n \r\n \r\n
\r\n );\r\n }\r\n}\r\n","export default \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABsAAAANCAYAAABYWxXTAAAABHNCSVQICAgIfAhkiAAAAS1JREFUOE+dlGFRw0AQhb+nAByAA4oCioNWAa0CqINWAXUAVUAdgARwAA5AwTKP2TBNuCYX9k8yye19u/venRgZEbEFTiQtR6ai2oSIOAXugUXmvALXkj5r96iCJegZmABfgAFn+TTQ4MEYhEWEAU/AOfABzIB34AW4SOBK0uMQrRcWEdMEeYRvwPRwbBFhwE1C1pI2fcCjsIiwNg+ZvAPuSvp01hnuLos6FmGdijeS1n0V5wT2dilg/eaSPOpWtGBpBHdjXRzLGi28MLV1Z42Of4zzCys4zvpUuawpP/dwh1elYn9gWZWt3RhhMRZ0OK88+Lf5bStp5XdFhEfm0RUdN2TnY/87xvExmRvW2Hcnqbkd/sto5eXEDLJxLg1zR7NaI4ytIiJ8GUwk7b8BPC16SMHVnzMAAAAASUVORK5CYII=\"","const RenderGate = ({ shouldRender, children }) => (shouldRender ? children : null)\r\n\r\nexport default RenderGate\r\n","import React from 'react'\r\nimport Modal from 'react-modal'\r\nimport Cookies from 'js-cookie'\r\nimport i18n from 'i18next'\r\nimport { withTranslation, initReactI18next } from 'react-i18next'\r\nimport RenderGate from './RenderGate'\r\n\r\nimport './CookieConsent.css'\r\n\r\n// Usage of the component:\r\n//\r\n// Add an event listener before scripts that set cookies as below:\r\n//\r\n// window.addEventListener('consentClosed', function (event) {\r\n// if (window.cookieComponent.getConsent('analytics')) {\r\n// \r\n// }\r\n// }\r\n\r\n// For one-liner scripts that set cookies:\r\n//\r\n// Add src of the script initially as a data-attribute \"data-consent-src\", e.g. data-consent-src=\"scriptSrc\" and leave src attribute empty or do not set it at all\r\n// Add the cookie category of the script as a data-attribute, e.g. data-cookie-analytics, data-cookie-functional or data-cookie-marketing\r\n\r\n// It's better to move the translations into a separate JSON file and not initialize i18n in this component\r\ni18n\r\n .use(initReactI18next) // passes i18n down to react-i18next\r\n .init({\r\n resources: {\r\n fi: {\r\n translation: {\r\n mainHeader: 'Yksityisyytesi on meille tärkeää',\r\n cookieInfo: 'Evästeitä käytetään asetustesi ja valintojesi tallentamiseen, liikenteemme analysointiin,'\r\n + ' sosiaalisen median ominaisuuksien tuottamiseen sekä sisällön ja mainonnan kohdentamiseen.'\r\n + ' Luovutamme myös tietoja sivustomme käytöstä sosiaalisen median sekä mainonta- ja analytiikkakumppaneillemme.'\r\n + ' Annat suostumuksesi yritykselle ŠKODA AUTO a.s., Helkama- Auto Oy, ja ŠKODAn jakeluverkostolle.'\r\n + ' Lue lisää kohdasta',\r\n cookiePolicy: 'Evästekäytäntö',\r\n manageCookies: 'Evästeiden hallinta',\r\n accept: 'Hyväksy kaikki',\r\n allow: 'Salli kaikki',\r\n privacyControlCenter: 'Tietosuojavalintakeskus',\r\n privacyInfo: 'Aina kun käyt jollakin verkkosivustolla, se voi tallentaa tai hakea tietoja selaimestasi, enimmäkseen evästeiden muodossa.'\r\n + ' Nämä tiedot voivat liittyä sinuun, valintoihisi tai laitteeseesi, ja niitä käytetään lähinnä huolehtimaan siitä,'\r\n + ' että sivusto toimii odotetulla tavalla.'\r\n + ' Tietojen perusteella ei tavallisesti voida suoraan tunnistaa sinua,'\r\n + ' mutta ne voivat antaa sinulle henkilökohtaisemman verkkokokemuksen.'\r\n + ' Koska tietosuojasi on meille tärkeä asia, voit kieltäytyä sallimasta tietyntyyppisiä evästeitä.'\r\n + ' Napsauttamalla luokkien otsikoita saat lisätietoja ja voit muuttaa oletusasetuksiamme.'\r\n + ' Tietyntyyppisten evästeiden estäminen voi kuitenkin vaikuttaa verkkosivustokokemukseesi tarjoamiimme palveluihin.'\r\n + ' Aktivoimalla minkä tahansa alla olevista evästeistä annat myös nimenomaisen suostumuksen siihen,'\r\n + ' että henkilötietosi voidaan siirtää kolmansiin maihin.'\r\n + ' Lisätietoja siirrosta ja siihen liittyvistä riskeistä löytyy evästekäytännössä.',\r\n additionalInfo: 'Lisätiedot',\r\n controlManagement: 'Evästevalintojen hallinta',\r\n alwaysActive: 'Aina aktiivinen',\r\n necessary: 'Tarvittavat evästeet',\r\n analytics: 'Kehittynyt analytiikka',\r\n functional: 'Toiminnot ja valinnat',\r\n marketing: 'Kohdennetut tarjoukset',\r\n necessaryInfo: 'Tarvittavilla evästeillä otetaan käyttöön verkkosivuston ydintoiminnot kuten tietoturva,'\r\n + ' verkonhallinta, käytettävyys ja perustilastotiedot sivustolla kävijöistä.'\r\n + ' Voit ottaa nämä evästeet pois käytöstä muuttamalla selaimesi asetuksia, mutta tämä voi vaikuttaa sivuston toimintaan.',\r\n analyticsInfo: 'Kolmannen osapuolen työkalut, kuten Google-analytiikka,'\r\n + ' tarjoavat meille mahdollisuuden verkkosivuston parantamiseen raportoimalla verkkosivuston käytöstäsi.'\r\n + ' Evästeillä kerättyjen tietojen perusteella ei voida tunnistaa ketään.',\r\n functionalInfo: 'Toiminto- ja valintaevästeillä otetaan käyttöön kehittynyt verkkosivustosisältö ja kehittyneet ominaisuudet,'\r\n + ' ja niiden avulla tallennetaan asetuksesi ja valintasi.',\r\n marketingInfo: 'Käytämme näitä evästeitä SKODA AUTOon sekä kolmansien osapuolten verkkosivustoihin'\r\n + ' ja sosiaaliseen mediaan osoittamasi mielenkiinnon kohteisiin perustuvien kohdennettujen tarjousten,'\r\n + ' sisältöjen ja mainosten näyttämiseen.',\r\n confirm: 'Vahvista valinnat'\r\n }\r\n }\r\n },\r\n lng: 'fi', // if you're using a language detector, do not define the lng option\r\n fallbackLng: 'fi',\r\n\r\n interpolation: {\r\n escapeValue: false // react already safes from xss => https://www.i18next.com/translation-function/interpolation#unescape\r\n }\r\n });\r\n\r\nconst modalStyles = {\r\n content: {\r\n top: '50%',\r\n left: '50%',\r\n right: 'auto',\r\n bottom: 'auto',\r\n padding: '0',\r\n overflow: 'hidden',\r\n marginRight: '-50%',\r\n transform: 'translate(-50%, -50%)',\r\n width: 'auto',\r\n maxWidth: '650px',\r\n maxHeight: '65%',\r\n display: 'flex',\r\n fontSize: '18px'\r\n }\r\n}\r\n\r\nclass CookieConsent extends React.Component {\r\n constructor(props) {\r\n super(props)\r\n\r\n this.state = {\r\n modalOpen: false,\r\n settingsOpen: false,\r\n analytics: false,\r\n functional: false,\r\n marketing: false\r\n }\r\n\r\n this.closeModal = this.closeModal.bind(this)\r\n this.acceptAllCookies = this.acceptAllCookies.bind(this)\r\n this.openSettings = this.openSettings.bind(this)\r\n this.handleAnalytics = this.handleAnalytics.bind(this)\r\n this.handleFunctional = this.handleFunctional.bind(this)\r\n this.handleMarketing = this.handleMarketing.bind(this)\r\n this.getConsent = this.getConsent.bind(this)\r\n this.setCookiesOnConsent = this.setCookiesOnConsent.bind(this)\r\n this.setScriptSrc = this.setScriptSrc.bind(this)\r\n\r\n window.cookieComponent = this\r\n }\r\n\r\n componentDidMount() {\r\n const consentCookie = Cookies.get('ConsentInformationLoisto')\r\n\r\n if (!consentCookie || consentCookie === undefined) {\r\n this.setState({\r\n modalOpen: true\r\n })\r\n } else {\r\n const categories = consentCookie.split(',')\r\n\r\n this.setState({\r\n analytics: categories[0].includes('true'),\r\n functional: categories[1].includes('true'),\r\n marketing: categories[2].includes('true')\r\n })\r\n\r\n this.createConsentEvent()\r\n }\r\n }\r\n\r\n componentDidUpdate() {\r\n if (this.state.modalOpen) {\r\n document.body.style.overflow = 'hidden';\r\n } else {\r\n document.body.style.overflowY = 'unset';\r\n document.body.style.overflowX = 'hidden';\r\n this.setCookiesOnConsent()\r\n }\r\n }\r\n\r\n handleAnalytics(event) {\r\n this.setState({\r\n analytics: event.target.checked\r\n })\r\n }\r\n\r\n handleFunctional(event) {\r\n this.setState({\r\n functional: event.target.checked\r\n })\r\n }\r\n\r\n handleMarketing(event) {\r\n this.setState({\r\n marketing: event.target.checked\r\n })\r\n }\r\n\r\n setCookiesOnConsent() {\r\n const analyticsScripts = document.querySelectorAll('[data-cookie-analytics]')\r\n const functionalScripts = document.querySelectorAll('[data-cookie-functional]')\r\n const marketingScripts = document.querySelectorAll('[data-cookie-marketing]')\r\n\r\n this.setScriptSrc(this.state.analytics, analyticsScripts)\r\n this.setScriptSrc(this.state.functional, functionalScripts)\r\n this.setScriptSrc(this.state.marketing, marketingScripts)\r\n }\r\n\r\n setScriptSrc(isConsented, scripts) {\r\n if (isConsented && scripts) {\r\n scripts.forEach((script) => {\r\n if (script.dataset.consentSrc) {\r\n script.src = script.dataset.consentSrc\r\n }\r\n })\r\n }\r\n }\r\n\r\n getConsent(category) {\r\n const consentGiven = (category === 'analytics' && this.state.analytics)\r\n || (category === 'functional' && this.state.functional)\r\n || (category === 'marketing' && this.state.marketing)\r\n\r\n if (consentGiven) return true\r\n\r\n return false\r\n }\r\n\r\n closeModal() {\r\n const { analytics, functional, marketing } = this.state\r\n\r\n Cookies.set('ConsentInformationLoisto', `Analytics:${analytics},Functional:${functional},Marketing:${marketing}`, { expires: 60 })\r\n\r\n this.setState({\r\n modalOpen: false\r\n })\r\n\r\n this.createConsentEvent()\r\n }\r\n\r\n openSettings() {\r\n this.setState({\r\n modalOpen: true,\r\n settingsOpen: true\r\n })\r\n }\r\n\r\n acceptAllCookies() {\r\n Cookies.set('ConsentInformationLoisto', 'Analytics:true,Functional:true,Marketing:true', { expires: 60 })\r\n\r\n this.setState({\r\n analytics: true,\r\n functional: true,\r\n marketing: true,\r\n modalOpen: false\r\n })\r\n\r\n this.createConsentEvent()\r\n }\r\n\r\n // In order to listen to user's consent changes to allow/block scripts in DOM\r\n createConsentEvent() {\r\n // Timeout to wait for component state to update before creating and listening to the event\r\n setTimeout(() => {\r\n const consentClosed = new CustomEvent('consentClosed')\r\n window.dispatchEvent(consentClosed)\r\n }, 0)\r\n }\r\n\r\n render() {\r\n const { t } = this.props\r\n\r\n if (!this.state.modalOpen) {\r\n return (\r\n \r\n )\r\n }\r\n\r\n return (\r\n this.closeModal()}\r\n ariaHideApp={false}\r\n style={modalStyles}\r\n contentLabel='Evästeiden hallinta'\r\n shouldCloseOnOverlayClick={false}\r\n bodyOpenClassName='cookie-consent-modal'\r\n >\r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n

{t('mainHeader')}

\r\n

\r\n {t('cookieInfo')}\r\n {t('cookiePolicy')}.\r\n

\r\n
\r\n \r\n \r\n
\r\n
\r\n
\r\n \r\n
\r\n

{t('privacyControlCenter')}

\r\n

{t('privacyInfo')}

\r\n {t('additionalInfo')}\r\n
\r\n \r\n
\r\n
\r\n

{t('controlManagement')}

\r\n
\r\n
\r\n

{t('necessary')}

\r\n

{t('alwaysActive')}

\r\n
\r\n

{t('necessaryInfo')}

\r\n
\r\n
\r\n
\r\n

{t('analytics')}

\r\n \r\n \r\n
\r\n

{t('analyticsInfo')}

\r\n
\r\n
\r\n
\r\n

{t('functional')}

\r\n \r\n \r\n
\r\n

{t('functionalInfo')}

\r\n
\r\n
\r\n
\r\n

{t('marketing')}

\r\n \r\n \r\n
\r\n

{t('marketingInfo')}

\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n \r\n
\r\n
\r\n
\r\n \r\n )\r\n }\r\n}\r\n\r\nexport default withTranslation()(CookieConsent)\r\n","const Symbols = () => {\r\n\treturn (\r\n\t\t\r\n\t\t\t\r\n\t\t\t\t\r\n\t\t\t\r\n\r\n\t\t\t\r\n\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t\r\n\r\n\t\t\t\r\n\t\t\t\t\r\n\t\t\t\r\n\r\n\t\t\t\r\n\t\t\t\t\r\n\t\t\t\r\n\r\n\t\t\t\r\n\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t\r\n\r\n\t\t\t\r\n\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t\r\n\r\n\t\t\t\r\n\t\t\t\t\r\n\t\t\t\r\n\r\n\t\t\t\r\n\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t\r\n\r\n\t\t\t\r\n\t\t\t\t\r\n\t\t\t\r\n\t\t\r\n\t)\r\n}\r\n\r\nexport default Symbols","import React, { Component } from 'react';\r\nimport { NavMenu } from './NavMenu';\r\nimport { FooterLinks } from './FooterLinks';\r\nimport { Footer } from './Footer';\r\nimport CookieConsent from './CookieConsent';\r\nimport Symbols from './Symbols';\r\n\r\nexport class Layout extends Component {\r\n static displayName = Layout.name;\r\n\r\n render () {\r\n return (\r\n
\r\n \r\n {/**/}\r\n {this.props.children}\r\n {/**/}\r\n \r\n
\r\n \r\n \r\n
\r\n );\r\n }\r\n}\r\n","import React, { Component } from 'react';\r\n\r\nimport { Button, Collapse } from 'reactstrap';\r\nimport { Form, FormGroup, Label, CustomInput } from 'reactstrap';\r\nimport { Dropdown, DropdownToggle, DropdownMenu, DropdownItem } from 'reactstrap';\r\nimport { Card, CardBody, CardText, CardGroup, CardTitle } from 'reactstrap';\r\nimport InputRange from 'react-input-range';\r\nimport 'react-input-range/lib/css/index.css';\r\nimport '../custom.css';\r\nimport './VehicleSearchFilters.css';\r\n\r\nexport class VehicleSearchFilters extends Component {\r\n static displayName = VehicleSearchFilters.name;\r\n\r\n constructor(props) {\r\n super(props);\r\n\r\n let vehicleSearchFilters = props.currentVehicleSearchFilterValues !== undefined && props.currentVehicleSearchFilterValues !== null ?\r\n JSON.parse(props.currentVehicleSearchFilterValues) : null;\r\n\r\n if (vehicleSearchFilters === null) {\r\n vehicleSearchFilters = JSON.parse(sessionStorage.getItem('session_vehicleSearchFilterValues'));\r\n }\r\n\r\n this.state = {\r\n vehicleSearchFilterValues: {\r\n selectedModelNames: vehicleSearchFilters !== undefined && vehicleSearchFilters !== null ? vehicleSearchFilters.selectedModelNames : [],\r\n isBodyTypeSedanSelected: vehicleSearchFilters !== undefined && vehicleSearchFilters !== null ? vehicleSearchFilters.isBodyTypeSedanSelected : false,\r\n isBodyTypeFarmariSelected: vehicleSearchFilters !== undefined && vehicleSearchFilters !== null ? vehicleSearchFilters.isBodyTypeFarmariSelected : false,\r\n isBodyTypeHacthbackSelected: vehicleSearchFilters !== undefined && vehicleSearchFilters !== null ? vehicleSearchFilters.isBodyTypeHacthbackSelected : false,\r\n isBodyTypeSUVSelected: vehicleSearchFilters !== undefined && vehicleSearchFilters !== null ? vehicleSearchFilters.isBodyTypeSUVSelected : false,\r\n selectedBodyTypeIds: vehicleSearchFilters !== undefined && vehicleSearchFilters !== null ? vehicleSearchFilters.selectedBodyTypeIds : [],\r\n isFuelBensiiniSelected: vehicleSearchFilters !== undefined && vehicleSearchFilters !== null ? vehicleSearchFilters.isFuelBensiiniSelected : false,\r\n isFuelDieselSelected: vehicleSearchFilters !== undefined && vehicleSearchFilters !== null ? vehicleSearchFilters.isFuelDieselSelected : false,\r\n isFuelKaasuSelected: vehicleSearchFilters !== undefined && vehicleSearchFilters !== null ? vehicleSearchFilters.isFuelKaasuSelected : false,\r\n isFuelSahkoSelected: vehicleSearchFilters !== undefined && vehicleSearchFilters !== null ? vehicleSearchFilters.isFuelSahkoSelected : false,\r\n isFuelHybridiSelected: vehicleSearchFilters !== undefined && vehicleSearchFilters !== null ? vehicleSearchFilters.isFuelHybridiSelected : false,\r\n selectedFuelIds: vehicleSearchFilters !== undefined && vehicleSearchFilters !== null ? vehicleSearchFilters.selectedFuelIds : [],\r\n isTransmissionManualSelected: vehicleSearchFilters !== undefined && vehicleSearchFilters !== null ? vehicleSearchFilters.isTransmissionManualSelected : false,\r\n isTransmissionAutomaticSelected: vehicleSearchFilters !== undefined && vehicleSearchFilters !== null ? vehicleSearchFilters.isTransmissionAutomaticSelected : false,\r\n selectedTransmissionIds: vehicleSearchFilters !== undefined && vehicleSearchFilters !== null ? vehicleSearchFilters.selectedTransmissionIds : [],\r\n isFourWheelDriveSelected: vehicleSearchFilters !== undefined && vehicleSearchFilters !== null ? vehicleSearchFilters.isFourWheelDriveSelected : false,\r\n askPrice: {\r\n min: vehicleSearchFilters !== undefined && vehicleSearchFilters !== null ? vehicleSearchFilters.askPrice.min : 0,\r\n max: vehicleSearchFilters !== undefined && vehicleSearchFilters !== null ? vehicleSearchFilters.askPrice.max : 80000\r\n },\r\n mileage: {\r\n min: vehicleSearchFilters !== undefined && vehicleSearchFilters !== null ? vehicleSearchFilters.mileage.min : 0,\r\n max: vehicleSearchFilters !== undefined && vehicleSearchFilters !== null ? vehicleSearchFilters.mileage.max : 130000\r\n },\r\n year: {\r\n min: vehicleSearchFilters !== undefined && vehicleSearchFilters !== null ? vehicleSearchFilters.year.min : (new Date().getFullYear()) - 5,\r\n max: vehicleSearchFilters !== undefined && vehicleSearchFilters !== null ? vehicleSearchFilters.year.max : new Date().getFullYear()\r\n },\r\n locations: vehicleSearchFilters !== undefined && vehicleSearchFilters !== null ? vehicleSearchFilters.locations : [],\r\n selectedLocationIds: vehicleSearchFilters !== undefined && vehicleSearchFilters !== null && vehicleSearchFilters.selectedLocationIds !== undefined ? vehicleSearchFilters.selectedLocationIds : [],\r\n isTowHitchSelected: vehicleSearchFilters !== undefined && vehicleSearchFilters !== null ? vehicleSearchFilters.isTowHitchSelected : false,\r\n isFuelDrivenAuxiliaryHeaterSelected: vehicleSearchFilters !== undefined && vehicleSearchFilters !== null ? vehicleSearchFilters.isFuelDrivenAuxiliaryHeaterSelected : false,\r\n isCruiseControlSelected: vehicleSearchFilters !== undefined && vehicleSearchFilters !== null ? vehicleSearchFilters.isCruiseControlSelected : false,\r\n isMetallicSelected: vehicleSearchFilters !== undefined && vehicleSearchFilters !== null ? vehicleSearchFilters.isMetallicSelected : false,\r\n accessories: vehicleSearchFilters !== undefined && vehicleSearchFilters !== null ? vehicleSearchFilters.accessories : [],\r\n co2: {\r\n min: vehicleSearchFilters !== undefined && vehicleSearchFilters !== null ? vehicleSearchFilters.co2.min : -1,\r\n max: vehicleSearchFilters !== undefined && vehicleSearchFilters !== null ? vehicleSearchFilters.co2.max : 220\r\n }\r\n },\r\n isMoreOpen: false\r\n };\r\n\r\n this.handleChange = this.handleChange.bind(this);\r\n this.toggleModelName = this.toggleModelName.bind(this);\r\n this.toggleLocation = this.toggleLocation.bind(this);\r\n this.handleSelectedModelClick = this.handleSelectedModelClick.bind(this);\r\n this.handleSelectedLocationClick = this.handleSelectedLocationClick.bind(this);\r\n this.toggleMore = this.toggleMore.bind(this);\r\n this.showHideMoreTitles = this.showHideMoreTitles.bind(this);\r\n this.linkToNewSearch = this.linkToNewSearch.bind(this);\r\n }\r\n\r\n handleChange(event) {\r\n const target = event.target;\r\n const checked = target.type === 'checkbox' ? target.checked : false;\r\n const name = target.name;\r\n const value = target.value;\r\n const SUV = \"isBodyTypeSUVSelected\";\r\n let name2 = '';\r\n var temp = [];\r\n var filtered = [];\r\n\r\n if (name === 'isBodyTypeSedanSelected' || name === 'isBodyTypeFarmariSelected' || name === 'isBodyTypeHacthbackSelected' || name === SUV) {\r\n name2 = 'selectedBodyTypeIds';\r\n temp = this.state.vehicleSearchFilterValues.selectedBodyTypeIds.slice();\r\n if (checked) {\r\n if (name === SUV) {\r\n var doubleValue = JSON.parse(target.value);\r\n temp.push(doubleValue.first, doubleValue.second) // SUV bodyTypeId can be both '7' and '8'\r\n } else {\r\n temp.push(value)\r\n }\r\n }\r\n else {\r\n if (name === SUV) {\r\n var doubleValue = JSON.parse(target.value);\r\n const second = doubleValue.second;\r\n const first = doubleValue.first;\r\n\r\n filtered = temp.filter(function (first, index, arr) {\r\n return first !== doubleValue.first;\r\n });\r\n temp = filtered.slice(0);\r\n\r\n filtered = temp.filter(function (second, index, arr) {\r\n return second !== doubleValue.second;\r\n });\r\n temp = filtered.slice(0);\r\n\r\n } else {\r\n filtered = temp.filter(function (value, index, arr) {\r\n return value !== target.value;\r\n });\r\n temp = filtered.slice(0);\r\n } \r\n }\r\n }\r\n\r\n if (name === 'isFuelBensiiniSelected' || name === 'isFuelDieselSelected' || name === 'isFuelKaasuSelected'\r\n || name === 'isFuelSahkoSelected' || name === 'isFuelHybridiSelected') {\r\n name2 = 'selectedFuelIds';\r\n temp = this.state.vehicleSearchFilterValues.selectedFuelIds.slice();\r\n if (checked) {\r\n temp.push(value)\r\n }\r\n else {\r\n filtered = temp.filter(function (value, index, arr) {\r\n return value !== target.value;\r\n });\r\n temp = filtered.slice(0);\r\n }\r\n }\r\n\r\n if (name === 'isTransmissionManualSelected' || name === 'isTransmissionAutomaticSelected') {\r\n name2 = 'selectedTransmissionIds';\r\n temp = this.state.vehicleSearchFilterValues.selectedTransmissionIds.slice();\r\n if (checked) {\r\n temp.push(value)\r\n }\r\n else {\r\n filtered = temp.filter(function (value, index, arr) {\r\n return value !== target.value;\r\n });\r\n temp = filtered.slice(0);\r\n }\r\n }\r\n\r\n if (name === 'isFuelDrivenAuxiliaryHeaterSelected' || name === 'isCruiseControlSelected' || name === 'isTowHitchSelected' || name === 'isMetallicSelected') {\r\n name2 = 'accessories';\r\n temp = this.state.vehicleSearchFilterValues.accessories.slice();\r\n if (checked) {\r\n temp.push(value)\r\n }\r\n else {\r\n filtered = temp.filter(function (value, index, arr) {\r\n return value !== target.value;\r\n });\r\n temp = filtered.slice(0);\r\n }\r\n }\r\n\r\n var vehicleSearchFilterValues = { ...this.state.vehicleSearchFilterValues }\r\n vehicleSearchFilterValues[name] = checked;\r\n vehicleSearchFilterValues[name2] = temp;\r\n this.setState({\r\n vehicleSearchFilterValues\r\n }, () => { this.linkToNewSearch(); });\r\n }\r\n\r\n toggleModelName(event) {\r\n this.setState({\r\n dropdownOpenModelName: !this.state.dropdownOpenModelName\r\n });\r\n\r\n const target = event.target;\r\n const value = target.textContent;\r\n if (value !== 'Valitse') {\r\n var temp = this.state.vehicleSearchFilterValues.selectedModelNames.slice();\r\n if (!temp.includes(value)) {\r\n temp.push(value)\r\n }\r\n var vehicleSearchFilterValues = { ...this.state.vehicleSearchFilterValues }\r\n vehicleSearchFilterValues.selectedModelNames = temp;\r\n this.setState({\r\n vehicleSearchFilterValues\r\n }, () => { this.linkToNewSearch(); });\r\n }\r\n }\r\n\r\n handleSelectedModelClick(event) {\r\n const target = event.target;\r\n console.log(\"target\", target);\r\n var temp = this.state.vehicleSearchFilterValues.selectedModelNames.slice();\r\n\r\n var filtered = temp.filter(function (value, index, arr) {\r\n return value !== event;\r\n });\r\n\r\n var vehicleSearchFilterValues = { ...this.state.vehicleSearchFilterValues }\r\n vehicleSearchFilterValues.selectedModelNames = filtered;\r\n this.setState({\r\n vehicleSearchFilterValues\r\n }, () => { this.linkToNewSearch(); });\r\n }\r\n\r\n toggleLocation(event) {\r\n this.setState({\r\n dropdownOpenLocation: !this.state.dropdownOpenLocation\r\n });\r\n\r\n const target = event.target;\r\n const selectedLocation = target.textContent;\r\n const index = target.value;\r\n if (selectedLocation !== 'Valitse') {\r\n var temp = this.state.vehicleSearchFilterValues.locations.slice();\r\n var temp2 = this.state.vehicleSearchFilterValues.selectedLocationIds.slice();\r\n var vehicleSearchFilterValues = { ...this.state.vehicleSearchFilterValues }\r\n\r\n var that = this;\r\n\r\n setTimeout(function() {\r\n temp[index].selected = true;\r\n temp2.push.apply(temp2, temp[index].locationIds);\r\n\r\n vehicleSearchFilterValues.locations = temp;\r\n vehicleSearchFilterValues.selectedLocationIds = temp2;\r\n\r\n that.setState({\r\n vehicleSearchFilterValues\r\n }, () => { that.linkToNewSearch(); });\r\n }, 100);\r\n }\r\n }\r\n\r\n handleSelectedLocationClick(event) {\r\n var temp = this.state.vehicleSearchFilterValues.locations.slice();\r\n\r\n var index = 0;\r\n this.state.vehicleSearchFilterValues.locations.map((item, j) => {\r\n if (item.location === event) {\r\n index = j;\r\n }\r\n });\r\n temp[index].selected = false;\r\n\r\n var temp2 = this.state.vehicleSearchFilterValues.selectedLocationIds.filter((item) => {\r\n if (item !== event) {\r\n return item;\r\n }\r\n });\r\n\r\n var vehicleSearchFilterValues = { ...this.state.vehicleSearchFilterValues }\r\n\r\n vehicleSearchFilterValues.locations = temp;\r\n vehicleSearchFilterValues.selectedLocationIds = temp2;\r\n\r\n this.setState({\r\n vehicleSearchFilterValues\r\n }, () => { this.linkToNewSearch(); });\r\n }\r\n\r\n toggleMore(event) {\r\n event.preventDefault();\r\n\r\n this.setState({\r\n isMoreOpen: !this.state.isMoreOpen\r\n }, () => { this.showHideMoreTitles() });\r\n }\r\n\r\n showHideMoreTitles() {\r\n var btn = document.getElementById(\"btn-collapse-open\");\r\n if (this.state.isMoreOpen) {\r\n btn.classList.add(\"hidden\");\r\n }\r\n else {\r\n btn.classList.remove(\"hidden\");\r\n }\r\n }\r\n\r\n linkToNewSearch() {\r\n console.log(\"linkToNewSearch() with \", this.state.vehicleSearchFilterValues);\r\n\r\n this.props.history.push({\r\n pathname: \"/\",\r\n state: {\r\n vehicleSearchFilterValues: JSON.stringify(this.state.vehicleSearchFilterValues)\r\n }\r\n });\r\n }\r\n\r\n componentDidMount() {\r\n if (this.state.vehicleSearchFilterValues.locations.every(location => !location.selected)) {\r\n this.populateLocationsData();\r\n } \r\n }\r\n\r\n async populateLocationsData() {\r\n const response = await fetch('vehiclelocations', {\r\n method: 'POST',\r\n headers: {\r\n Accept: 'application/json',\r\n 'Content-Type': 'application/json',\r\n },\r\n body: JSON.stringify({\r\n }),\r\n });\r\n const data = await response.json();\r\n\r\n this.setState(prevState => {\r\n let vehicleSearchFilterValues = Object.assign({}, prevState.vehicleSearchFilterValues)\r\n vehicleSearchFilterValues.locations = data\r\n return { vehicleSearchFilterValues }\r\n });\r\n }\r\n\r\n render() {\r\n let modelNames = ['Scala', 'Citigo', 'Fabia', 'Octavia', 'Kamiq', 'Karoq', 'Kodiaq', 'Superb', 'Rapid', 'Enyaq'];\r\n\r\n let selectedLocations = this.state.vehicleSearchFilterValues.locations.filter(location => {\r\n return location.selected === true;\r\n });\r\n \r\n return (\r\n
\r\n
\r\n \r\n \r\n\r\n \r\n \r\n Valitse\r\n \r\n \r\n {modelNames.map(modelNames => (\r\n this.toggleModelName}>{modelNames}\r\n ))}\r\n \r\n \r\n\r\n \r\n {this.state.vehicleSearchFilterValues.selectedModelNames.map(selectedModelName => (\r\n \r\n \r\n \r\n \r\n
\r\n \r\n \r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n\r\n \r\n

Päästöt (CO2) g/km

\r\n {\r\n var vehicleSearchFilterValues = { ...this.state.vehicleSearchFilterValues };\r\n vehicleSearchFilterValues.co2 = co2;\r\n this.setState({ vehicleSearchFilterValues });\r\n }}\r\n onChangeComplete={co2 => {\r\n this.linkToNewSearch();\r\n }}\r\n />\r\n
\r\n\r\n
\r\n \r\n
\r\n
\r\n \r\n \r\n \r\n );\r\n }\r\n}","import React, { Component } from 'react';\r\nimport { Button } from 'reactstrap';\r\nimport { Container } from 'reactstrap';\r\n\r\nimport '../custom.css';\r\n\r\nexport class ResetFiltersButton extends Component {\r\n\r\n constructor(props) {\r\n super(props);\r\n\r\n this.resetSearchFilters = this.resetSearchFilters.bind(this);\r\n }\r\n\r\n resetSearchFilters(event) {\r\n this.props.history.push({\r\n pathname: \"/reloadfiltersblock\"\r\n });\r\n }\r\n\r\n render() {\r\n return (\r\n \r\n
\r\n \r\n
\r\n
\r\n )\r\n }\r\n}","import React, { Component } from 'react';\r\nimport { Button } from 'reactstrap';\r\nimport { Container } from 'reactstrap';\r\n\r\nimport '../custom.css';\r\n\r\nexport class PrimaryBannerButton extends Component {\r\n\r\n constructor(props) {\r\n super(props);\r\n\r\n this.state = {\r\n contentPagePath: this.props.contentPagePath,\r\n contentPageTitle: this.props.contentPageTitle\r\n };\r\n\r\n this.navigateToContentPage = this.navigateToContentPage.bind(this);\r\n }\r\n\r\n navigateToContentPage(event) {\r\n this.props.history.push({\r\n pathname: this.state.contentPagePath\r\n });\r\n }\r\n\r\n render() {\r\n return (\r\n \r\n \r\n \r\n )\r\n}\r\n}","export default __webpack_public_path__ + \"static/media/icon-search.55fd26bb.svg\";","export default __webpack_public_path__ + \"static/media/citigo.5dae8052.png\";","export default __webpack_public_path__ + \"static/media/fabia.369949ad.png\";","export default __webpack_public_path__ + \"static/media/karoq.dc521841.png\";","export default __webpack_public_path__ + \"static/media/kamiq.d4350eb9.png\";","export default __webpack_public_path__ + \"static/media/kodiaq.7b41c59f.png\";","export default __webpack_public_path__ + \"static/media/octavia.c2d30619.png\";","export default __webpack_public_path__ + \"static/media/scala.6d2d860a.png\";","export default __webpack_public_path__ + \"static/media/superb.c1603890.png\";","export default __webpack_public_path__ + \"static/media/rapid.cf829190.png\";","import React, { Component} from 'react';\r\nimport { Container, Row, Col, Spinner } from 'reactstrap';\r\nimport { Link, Route } from 'react-router-dom';\r\nimport NumberFormat from 'react-number-format';\r\nimport { BottomScrollListener } from 'react-bottom-scroll-listener';\r\n\r\nimport { VehicleSearchFilters } from './VehicleSearchFilters';\r\nimport { ResetFiltersButton } from './ResetFiltersButton';\r\nimport { PrimaryBannerButton } from './PrimaryBannerButton';\r\nimport GoogleTagManager from './GoogleTagManager';\r\n\r\nimport '../custom.css';\r\nimport './Home.css';\r\n\r\nimport smallSearch from '../images/icon-search.svg';\r\n// Fallback car images\r\nimport carImageCitigo from '../images/cars/citigo.png';\r\nimport carImageFabia from '../images/cars/fabia.png';\r\nimport carImageKaroq from '../images/cars/karoq.png';\r\nimport carImageKamiq from '../images/cars/kamiq.png';\r\nimport carImageKodiaq from '../images/cars/kodiaq.png';\r\nimport carImageOctavia from '../images/cars/octavia.png';\r\nimport carImageScala from '../images/cars/scala.png';\r\nimport carImageSuperb from '../images/cars/superb.png';\r\nimport carImageRapid from '../images/cars/rapid.png'\r\n\r\nexport class Home extends Component {\r\n static displayName = Home.name;\r\n\r\n constructor(props) {\r\n super(props);\r\n\r\n let vehicleSearchFilters = props.location.state !== undefined && props.location.state !== null\r\n && props.location.state.vehicleSearchFilterValues !== undefined && props.location.state.vehicleSearchFilterValues !== null ?\r\n JSON.parse(props.location.state.vehicleSearchFilterValues) : null;\r\n\r\n if (vehicleSearchFilters === null) {\r\n vehicleSearchFilters = JSON.parse(sessionStorage.getItem('session_vehicleSearchFilterValues'));\r\n }\r\n\r\n this.state = {\r\n vehicleSearchResult: [],\r\n vehicleSearchResultIndex: -1,\r\n loading: true,\r\n top: 30,\r\n skip: 0,\r\n dropdownOpenModelName: false,\r\n dropdownOpenLocation: false,\r\n setDropdownOpen: false,\r\n isMoreOpen: false,\r\n fallbackCarImages: {\r\n \"Citigo\": carImageCitigo,\r\n \"Fabia\": carImageFabia,\r\n \"Karoq\": carImageKaroq,\r\n \"Kamiq\": carImageKamiq,\r\n \"Kodiaq\": carImageKodiaq,\r\n \"Octavia\": carImageOctavia,\r\n \"Scala\": carImageScala,\r\n \"Superb\": carImageSuperb,\r\n \"Rapid\": carImageRapid\r\n },\r\n vehicleSearchFilterValues: {\r\n selectedModelNames: vehicleSearchFilters !== undefined && vehicleSearchFilters !== null ? vehicleSearchFilters.selectedModelNames : [],\r\n isBodyTypeSedanSelected: vehicleSearchFilters !== undefined && vehicleSearchFilters !== null ? vehicleSearchFilters.isBodyTypeSedanSelected : false,\r\n isBodyTypeFarmariSelected: vehicleSearchFilters !== undefined && vehicleSearchFilters !== null ? vehicleSearchFilters.isBodyTypeFarmariSelected : false,\r\n isBodyTypeHacthbackSelected: vehicleSearchFilters !== undefined && vehicleSearchFilters !== null ? vehicleSearchFilters.isBodyTypeHacthbackSelected : false,\r\n isBodyTypeSUVSelected: vehicleSearchFilters !== undefined && vehicleSearchFilters !== null ? vehicleSearchFilters.isBodyTypeSUVSelected : false,\r\n selectedBodyTypeIds: vehicleSearchFilters !== undefined && vehicleSearchFilters !== null ? vehicleSearchFilters.selectedBodyTypeIds : [],\r\n isFuelBensiiniSelected: vehicleSearchFilters !== undefined && vehicleSearchFilters !== null ? vehicleSearchFilters.isFuelBensiiniSelected : false,\r\n isFuelDieselSelected: vehicleSearchFilters !== undefined && vehicleSearchFilters !== null ? vehicleSearchFilters.isFuelDieselSelected : false,\r\n isFuelKaasuSelected: vehicleSearchFilters !== undefined && vehicleSearchFilters !== null ? vehicleSearchFilters.isFuelKaasuSelected : false,\r\n isFuelSahkoSelected: vehicleSearchFilters !== undefined && vehicleSearchFilters !== null ? vehicleSearchFilters.isFuelSahkoSelected : false,\r\n isFuelHybridiSelected: vehicleSearchFilters !== undefined && vehicleSearchFilters !== null ? vehicleSearchFilters.isFuelHybridiSelected : false,\r\n selectedFuelIds: vehicleSearchFilters !== undefined && vehicleSearchFilters !== null ? vehicleSearchFilters.selectedFuelIds : [],\r\n isTransmissionManualSelected: vehicleSearchFilters !== undefined && vehicleSearchFilters !== null ? vehicleSearchFilters.isTransmissionManualSelected : false,\r\n isTransmissionAutomaticSelected: vehicleSearchFilters !== undefined && vehicleSearchFilters !== null ? vehicleSearchFilters.isTransmissionAutomaticSelected : false,\r\n selectedTransmissionIds: vehicleSearchFilters !== undefined && vehicleSearchFilters !== null ? vehicleSearchFilters.selectedTransmissionIds : [],\r\n isFourWheelDriveSelected: vehicleSearchFilters !== undefined && vehicleSearchFilters !== null ? vehicleSearchFilters.isFourWheelDriveSelected : false,\r\n askPrice: {\r\n min: vehicleSearchFilters !== undefined && vehicleSearchFilters !== null ? vehicleSearchFilters.askPrice.min : 0,\r\n max: vehicleSearchFilters !== undefined && vehicleSearchFilters !== null ? vehicleSearchFilters.askPrice.max : 80000\r\n },\r\n mileage: {\r\n min: vehicleSearchFilters !== undefined && vehicleSearchFilters !== null ? vehicleSearchFilters.mileage.min : 0,\r\n max: vehicleSearchFilters !== undefined && vehicleSearchFilters !== null ? vehicleSearchFilters.mileage.max : 130000\r\n },\r\n year: {\r\n min: vehicleSearchFilters !== undefined && vehicleSearchFilters !== null ? vehicleSearchFilters.year.min : (new Date().getFullYear()) - 5,\r\n max: vehicleSearchFilters !== undefined && vehicleSearchFilters !== null ? vehicleSearchFilters.year.max : new Date().getFullYear()\r\n },\r\n locations: vehicleSearchFilters !== undefined && vehicleSearchFilters !== null ? vehicleSearchFilters.locations : [],\r\n selectedLocationIds: vehicleSearchFilters !== undefined && vehicleSearchFilters !== null && vehicleSearchFilters.selectedLocationIds !== undefined ? vehicleSearchFilters.selectedLocationIds : [],\r\n isTowHitchSelected: vehicleSearchFilters !== undefined && vehicleSearchFilters !== null ? vehicleSearchFilters.isTowHitchSelected : false,\r\n isFuelDrivenAuxiliaryHeaterSelected: vehicleSearchFilters !== undefined && vehicleSearchFilters !== null ? vehicleSearchFilters.isFuelDrivenAuxiliaryHeaterSelected : false,\r\n isCruiseControlSelected: vehicleSearchFilters !== undefined && vehicleSearchFilters !== null ? vehicleSearchFilters.isCruiseControlSelected : false,\r\n isMetallicSelected: vehicleSearchFilters !== undefined && vehicleSearchFilters !== null ? vehicleSearchFilters.isMetallicSelected : false,\r\n accessories: vehicleSearchFilters !== undefined && vehicleSearchFilters !== null ? vehicleSearchFilters.accessories : [],\r\n co2: {\r\n min: vehicleSearchFilters !== undefined && vehicleSearchFilters !== null ? vehicleSearchFilters.co2.min : -1,\r\n max: vehicleSearchFilters !== undefined && vehicleSearchFilters !== null ? vehicleSearchFilters.co2.max : 220\r\n }\r\n }\r\n };\r\n\r\n this.renderVehicleSearchResult = this.renderVehicleSearchResult.bind(this);\r\n this.renderVehicles = this.renderVehicles.bind(this);\r\n\r\n this.handleOnDocumentBottom = this.handleOnDocumentBottom.bind(this);\r\n }\r\n\r\n handleOnDocumentBottom = () => {\r\n console.log('Scrolled to bottom! ')\r\n\r\n if (this.state.vehicleSearchResultIndex > -1 &&\r\n this.state.vehicleSearchResult[this.state.vehicleSearchResultIndex].totalResultCount > this.state.top) {\r\n this.setState({\r\n top: this.state.top + 30,\r\n skip: this.state.skip + 30,\r\n loading: true\r\n }, () => { this.componentDidMount(true) });\r\n }\r\n }\r\n\r\n renderVehicles(vehicleSearchResultChunk) {\r\n return (\r\n vehicleSearchResultChunk.inventoryVehicles.map((vehicle, i) =>\r\n \r\n
\r\n \r\n {vehicle.makeName { e.target.onerror = null; e.target.src = this.state.fallbackCarImages[vehicle.modelName] }} />\r\n

{vehicle.modelName}

\r\n

{vehicle.modelYear} | {vehicle.kilometrage} 000 km

\r\n

\r\n

\r\n \r\n
\r\n \r\n ) \r\n );\r\n }\r\n\r\n renderVehicleSearchResult(vehicleSearchResult) { \r\n\r\n let searchResultCount = vehicleSearchResult != null && this.state.vehicleSearchResultIndex > -1 ?\r\n vehicleSearchResult[this.state.vehicleSearchResultIndex].totalResultCount : 0;\r\n\r\n if (this.state.loading && this.state.vehicleSearchResultIndex < 0) {\r\n return (\r\n \r\n \r\n
\r\n

\"Hae\" Pikahakukriteerit

\r\n
\r\n
\r\n Löytyi {searchResultCount} Loisto-autoa\r\n
\r\n (\r\n \r\n )} />\r\n\r\n (\r\n \r\n )} />\r\n \r\n \r\n \r\n \r\n
\r\n

Loisto - vaihtoautojen valioyksilöt

\r\n
\r\n \r\n
\r\n
\r\n \r\n \r\n
\r\n \r\n
\r\n );\r\n\r\n }\r\n else {\r\n if (vehicleSearchResult[0].totalResultCount > 0) {\r\n let vehicles = [];\r\n vehicleSearchResult.map((vehicleSearchResultChunk, i) => vehicles.push(this.renderVehicles(vehicleSearchResultChunk)));\r\n return (\r\n \r\n \r\n
\r\n

\"Hae\" Pikahakukriteerit

\r\n
\r\n
\r\n Löytyi {searchResultCount} Loisto-autoa\r\n
\r\n (\r\n \r\n )} />\r\n\r\n (\r\n \r\n )} />\r\n \r\n \r\n \r\n \r\n
\r\n

Loisto - vaihtoautojen valioyksilöt

\r\n
\r\n \r\n
\r\n
\r\n {vehicles}\r\n
\r\n \r\n
\r\n );\r\n }\r\n else {\r\n return (\r\n \r\n \r\n
\r\n

\"Hae\" Pikahakukriteerit

\r\n
\r\n
\r\n Löytyi {searchResultCount} Loisto-autoa\r\n
\r\n (\r\n \r\n )} />\r\n\r\n (\r\n \r\n )} />\r\n \r\n \r\n \r\n \r\n
\r\n

Loisto - vaihtoautojen valioyksilöt

\r\n
\r\n \r\n
\r\n
Antamillasi hakuehdoilla ei löydy autoja
\r\n \r\n
\r\n );\r\n }\r\n }\r\n }\r\n\r\n\r\n render() {\r\n \r\n let contents = this.renderVehicleSearchResult(this.state.vehicleSearchResult);\r\n let bannerClassName = \"banner\";\r\n if (window.supportsWebp === false) {\r\n bannerClassName = \"banner-no-webp\";\r\n }\r\n const event = { platform: 'react-stack' }\r\n return (\r\n \r\n {/**/}\r\n
\r\n \r\n \r\n
\r\n

Loisto

\r\n

Vaihtoautojen valioyksilöt

\r\n (\r\n \r\n )} />\r\n
\r\n \r\n
\r\n
\r\n\r\n {contents}\r\n\r\n \r\n\r\n
\r\n );\r\n }\r\n\r\n static getDerivedStateFromProps(nextProps, prevState) {\r\n\r\n let vehicleSearchFilters = nextProps.location.state !== undefined && nextProps.location.state !== null\r\n && nextProps.location.state.vehicleSearchFilterValues !== undefined && nextProps.location.state.vehicleSearchFilterValues !== null ?\r\n JSON.parse(nextProps.location.state.vehicleSearchFilterValues) : null;\r\n\r\n if (vehicleSearchFilters !== null) {\r\n if (vehicleSearchFilters.selectedModelNames.length !== prevState.vehicleSearchFilterValues.selectedModelNames.length ||\r\n vehicleSearchFilters.isBodyTypeSedanSelected !== prevState.vehicleSearchFilterValues.isBodyTypeSedanSelected ||\r\n vehicleSearchFilters.isBodyTypeFarmariSelected !== prevState.vehicleSearchFilterValues.isBodyTypeFarmariSelected ||\r\n vehicleSearchFilters.isBodyTypeHacthbackSelected !== prevState.vehicleSearchFilterValues.isBodyTypeHacthbackSelected ||\r\n vehicleSearchFilters.isBodyTypeSUVSelected !== prevState.vehicleSearchFilterValues.isBodyTypeSUVSelected ||\r\n vehicleSearchFilters.isFuelBensiiniSelected !== prevState.vehicleSearchFilterValues.isFuelBensiiniSelected ||\r\n vehicleSearchFilters.isFuelDieselSelected !== prevState.vehicleSearchFilterValues.isFuelDieselSelected ||\r\n vehicleSearchFilters.isFuelKaasuSelected !== prevState.vehicleSearchFilterValues.isFuelKaasuSelected ||\r\n vehicleSearchFilters.isFuelSahkoSelected !== prevState.vehicleSearchFilterValues.isFuelSahkoSelected ||\r\n vehicleSearchFilters.isFuelHybridiSelected !== prevState.vehicleSearchFilterValues.isFuelHybridiSelected ||\r\n vehicleSearchFilters.isTransmissionManualSelected !== prevState.vehicleSearchFilterValues.isTransmissionManualSelected || \r\n vehicleSearchFilters.isTransmissionAutomaticSelected !== prevState.vehicleSearchFilterValues.isTransmissionAutomaticSelected ||\r\n vehicleSearchFilters.isFourWheelDriveSelected !== prevState.vehicleSearchFilterValues.isFourWheelDriveSelected ||\r\n vehicleSearchFilters.askPrice.min !== prevState.vehicleSearchFilterValues.askPrice.min ||\r\n vehicleSearchFilters.askPrice.max !== prevState.vehicleSearchFilterValues.askPrice.max ||\r\n vehicleSearchFilters.mileage.min !== prevState.vehicleSearchFilterValues.mileage.min ||\r\n vehicleSearchFilters.mileage.max !== prevState.vehicleSearchFilterValues.mileage.max ||\r\n vehicleSearchFilters.year.min !== prevState.vehicleSearchFilterValues.year.min ||\r\n vehicleSearchFilters.year.max !== prevState.vehicleSearchFilterValues.year.max ||\r\n vehicleSearchFilters.selectedLocationIds.length !== prevState.vehicleSearchFilterValues.selectedLocationIds.length ||\r\n vehicleSearchFilters.isTowHitchSelected !== prevState.vehicleSearchFilterValues.isTowHitchSelected ||\r\n vehicleSearchFilters.isFuelDrivenAuxiliaryHeaterSelected !== prevState.vehicleSearchFilterValues.isFuelDrivenAuxiliaryHeaterSelected ||\r\n vehicleSearchFilters.isCruiseControlSelected !== prevState.vehicleSearchFilterValues.isCruiseControlSelected ||\r\n vehicleSearchFilters.isMetallicSelected !== prevState.vehicleSearchFilterValues.isMetallicSelected ||\r\n vehicleSearchFilters.co2.min !== prevState.vehicleSearchFilterValues.co2.min ||\r\n vehicleSearchFilters.co2.max !== prevState.vehicleSearchFilterValues.co2.max)\r\n {\r\n return {\r\n vehicleSearchFilterValues: vehicleSearchFilters,\r\n vehicleSearchResult: [],\r\n vehicleSearchResultIndex: -1,\r\n loading: true,\r\n top: 30,\r\n skip: 0\r\n };\r\n }\r\n else return null;\r\n }\r\n else return null;\r\n \r\n }\r\n\r\n componentDidUpdate(prevProps, prevState) {\r\n\r\n if (prevState.vehicleSearchFilterValues.selectedModelNames.length !== this.state.vehicleSearchFilterValues.selectedModelNames.length ||\r\n prevState.vehicleSearchFilterValues.isBodyTypeSedanSelected !== this.state.vehicleSearchFilterValues.isBodyTypeSedanSelected ||\r\n prevState.vehicleSearchFilterValues.isBodyTypeFarmariSelected !== this.state.vehicleSearchFilterValues.isBodyTypeFarmariSelected ||\r\n prevState.vehicleSearchFilterValues.isBodyTypeHacthbackSelected !== this.state.vehicleSearchFilterValues.isBodyTypeHacthbackSelected ||\r\n prevState.vehicleSearchFilterValues.isBodyTypeSUVSelected !== this.state.vehicleSearchFilterValues.isBodyTypeSUVSelected ||\r\n prevState.vehicleSearchFilterValues.isFuelBensiiniSelected !== this.state.vehicleSearchFilterValues.isFuelBensiiniSelected ||\r\n prevState.vehicleSearchFilterValues.isFuelDieselSelected !== this.state.vehicleSearchFilterValues.isFuelDieselSelected ||\r\n prevState.vehicleSearchFilterValues.isFuelKaasuSelected !== this.state.vehicleSearchFilterValues.isFuelKaasuSelected ||\r\n prevState.vehicleSearchFilterValues.isFuelSahkoSelected !== this.state.vehicleSearchFilterValues.isFuelSahkoSelected ||\r\n prevState.vehicleSearchFilterValues.isFuelHybridiSelected !== this.state.vehicleSearchFilterValues.isFuelHybridiSelected ||\r\n prevState.vehicleSearchFilterValues.isTransmissionManualSelected !== this.state.vehicleSearchFilterValues.isTransmissionManualSelected ||\r\n prevState.vehicleSearchFilterValues.isTransmissionAutomaticSelected !== this.state.vehicleSearchFilterValues.isTransmissionAutomaticSelected ||\r\n prevState.vehicleSearchFilterValues.isFourWheelDriveSelected !== this.state.vehicleSearchFilterValues.isFourWheelDriveSelected ||\r\n prevState.vehicleSearchFilterValues.askPrice.min !== this.state.vehicleSearchFilterValues.askPrice.min ||\r\n prevState.vehicleSearchFilterValues.askPrice.max !== this.state.vehicleSearchFilterValues.askPrice.max ||\r\n prevState.vehicleSearchFilterValues.mileage.min !== this.state.vehicleSearchFilterValues.mileage.min ||\r\n prevState.vehicleSearchFilterValues.mileage.max !== this.state.vehicleSearchFilterValues.mileage.max ||\r\n prevState.vehicleSearchFilterValues.year.min !== this.state.vehicleSearchFilterValues.year.min ||\r\n prevState.vehicleSearchFilterValues.year.max !== this.state.vehicleSearchFilterValues.year.max ||\r\n prevState.vehicleSearchFilterValues.selectedLocationIds.length !== this.state.vehicleSearchFilterValues.selectedLocationIds.length ||\r\n prevState.vehicleSearchFilterValues.isTowHitchSelected !== this.state.vehicleSearchFilterValues.isTowHitchSelected ||\r\n prevState.vehicleSearchFilterValues.isFuelDrivenAuxiliaryHeaterSelected !== this.state.vehicleSearchFilterValues.isFuelDrivenAuxiliaryHeaterSelected ||\r\n prevState.vehicleSearchFilterValues.isCruiseControlSelected !== this.state.vehicleSearchFilterValues.isCruiseControlSelected ||\r\n prevState.vehicleSearchFilterValues.isMetallicSelected !== this.state.vehicleSearchFilterValues.isMetallicSelected ||\r\n prevState.vehicleSearchFilterValues.co2.min !== this.state.vehicleSearchFilterValues.co2.min ||\r\n prevState.vehicleSearchFilterValues.co2.max !== this.state.vehicleSearchFilterValues.co2.max)\r\n {\r\n this.populateVehicleData();\r\n }\r\n }\r\n\r\n componentDidMount(suppressScroll) {\r\n this.populateVehicleData();\r\n //if (!suppressScroll) {\r\n // window.scrollTo(0, 750);\r\n //}\r\n }\r\n\r\n async populateVehicleData() {\r\n const response = await fetch('vehiclesearch', {\r\n method: 'POST',\r\n headers: {\r\n Accept: 'application/json',\r\n 'Content-Type': 'application/json',\r\n },\r\n body: JSON.stringify({\r\n Top: this.state.top,\r\n Skip: this.state.skip,\r\n ModelNames: this.state.vehicleSearchFilterValues.selectedModelNames,\r\n FuelIds: this.state.vehicleSearchFilterValues.selectedFuelIds,\r\n BodyIds: this.state.vehicleSearchFilterValues.selectedBodyTypeIds,\r\n TransmissionIds: this.state.vehicleSearchFilterValues.selectedTransmissionIds,\r\n DriveIds: this.state.vehicleSearchFilterValues.isFourWheelDriveSelected ? [\"3\"] : [],\r\n Accessories: this.state.vehicleSearchFilterValues.accessories,\r\n Locations: this.state.vehicleSearchFilterValues.selectedLocationIds,\r\n AskPriceFilterRange: { \r\n MinAskPrice: this.state.vehicleSearchFilterValues.askPrice.min,\r\n MaxAskPrice: this.state.vehicleSearchFilterValues.askPrice.max\r\n },\r\n InTrafficDateFilterRange: {\r\n MinInTrafficDate: new Date(this.state.vehicleSearchFilterValues.year.min + \"-01-01\"),\r\n MaxInTrafficDate: new Date(this.state.vehicleSearchFilterValues.year.max + \"-12-31\")\r\n },\r\n KilometrageFilterRange: {\r\n MinKilometrage: this.state.vehicleSearchFilterValues.mileage.min < 1000 ? 0 :\r\n Math.floor(this.state.vehicleSearchFilterValues.mileage.min / 1000),\r\n MaxKilometrage: Math.floor(this.state.vehicleSearchFilterValues.mileage.max/1000)\r\n },\r\n CO2FilterRange: {\r\n MinCO2: this.state.vehicleSearchFilterValues.co2.min,\r\n MaxCO2: this.state.vehicleSearchFilterValues.co2.max\r\n }\r\n }),\r\n });\r\n const data = await response.json();\r\n\r\n var temp = this.state.vehicleSearchResult.slice();\r\n temp.push(data)\r\n\r\n this.setState({\r\n vehicleSearchResult: temp,\r\n vehicleSearchResultIndex: this.state.vehicleSearchResultIndex + 1,\r\n loading: false\r\n });\r\n\r\n sessionStorage.clear();\r\n sessionStorage.setItem('session_vehicleSearchFilterValues', JSON.stringify(this.state.vehicleSearchFilterValues));\r\n sessionStorage.setItem('session_vehicleSearchResult', JSON.stringify(this.state.vehicleSearchResult));\r\n }\r\n}\r\n\r\n","export default __webpack_public_path__ + \"static/media/arrow-back-big.2ee45c3c.svg\";","export default __webpack_public_path__ + \"static/media/arrow-back-small.4f06438e.svg\";","import React, { Component } from 'react';\r\nimport { Link, Route } from 'react-router-dom';\r\nimport { Container, Row, Col, Spinner } from 'reactstrap';\r\nimport { TabContent, TabPane, Nav, NavItem, NavLink } from 'reactstrap';\r\nimport classnames from 'classnames';\r\nimport { Table } from 'reactstrap';\r\nimport { ListGroup, ListGroupItem, ListGroupItemHeading } from 'reactstrap';\r\nimport { Button, Collapse } from 'reactstrap';\r\nimport \"react-responsive-carousel/lib/styles/carousel.min.css\";\r\nimport { Carousel } from 'react-responsive-carousel';\r\nimport NumberFormat from 'react-number-format';\r\nimport GoogleTagManager from './GoogleTagManager';\r\nimport { VehicleSearchFilters } from './VehicleSearchFilters';\r\nimport { ResetFiltersButton } from './ResetFiltersButton';\r\nimport { PrimaryBannerButton } from './PrimaryBannerButton';\r\n\r\nimport '../custom.css';\r\nimport './Home.css';\r\nimport './Vehicle.css';\r\n\r\nimport smallSearch from '../images/icon-search.svg';\r\nimport arrowBackBig from '../images/arrow-back-big.svg';\r\nimport arrowBackSmall from '../images/arrow-back-small.svg';\r\n\r\n// Fallback car images\r\nimport carImageCitigo from '../images/cars/citigo.png';\r\nimport carImageFabia from '../images/cars/fabia.png';\r\nimport carImageKaroq from '../images/cars/karoq.png';\r\nimport carImageKamiq from '../images/cars/kamiq.png';\r\nimport carImageKodiaq from '../images/cars/kodiaq.png';\r\nimport carImageOctavia from '../images/cars/octavia.png';\r\nimport carImageScala from '../images/cars/scala.png';\r\nimport carImageSuperb from '../images/cars/superb.png';\r\nimport carImageRapid from '../images/cars/rapid.png'\r\nimport demoVehicleBigImage from '../images/demovehicle/auto-kuvat.png';\r\n\r\nexport class Vehicle extends Component {\r\n static displayName = Vehicle.name;\r\n\r\n constructor(props) {\r\n super(props);\r\n\r\n let vehicleSearchFilters = props.location.state !== undefined && props.location.state.vehicleSearchFilterValues !== undefined ?\r\n JSON.parse(props.location.state.vehicleSearchFilterValues) : null;\r\n\r\n if (this.props.history.location.search === \"\") {\r\n this.props.history.push({\r\n pathname: \"/\"\r\n });\r\n }\r\n\r\n this.state = {\r\n vehicleSearchFilterValues: vehicleSearchFilters,\r\n vehicleResult: null,\r\n loading: true,\r\n activeTab: '1',\r\n isMoreFeaturesOpen: false,\r\n isSearchFiltersOpen: false,\r\n dropdownOpenModelName: false,\r\n dropdownOpenLocation: false,\r\n setDropdownOpen: false,\r\n isMoreOpen: false,\r\n fallbackCarImages: {\r\n \"Citigo\": carImageCitigo,\r\n \"Fabia\": carImageFabia,\r\n \"Karoq\": carImageKaroq,\r\n \"Kamiq\": carImageKamiq,\r\n \"Kodiaq\": carImageKodiaq,\r\n \"Octavia\": carImageOctavia,\r\n \"Scala\": carImageScala,\r\n \"Superb\": carImageSuperb,\r\n \"Rapid\": carImageRapid\r\n }\r\n };\r\n\r\n this.toggleTabs = this.toggleTabs.bind(this);\r\n this.toggleMoreFeatures = this.toggleMoreFeatures.bind(this);\r\n this.showHideMoreFeaturesTitles = this.showHideMoreFeaturesTitles.bind(this);\r\n this.renderVehicle = this.renderVehicle.bind(this);\r\n this.toggleSearchFilters = this.toggleSearchFilters.bind(this);\r\n }\r\n\r\n toggleTabs(tab) {\r\n if (this.state.activeTab !== tab) {\r\n this.setState({\r\n activeTab: tab\r\n });\r\n }\r\n }\r\n\r\n toggleMoreFeatures(event) {\r\n this.setState({\r\n isMoreFeaturesOpen: !this.state.isMoreFeaturesOpen\r\n }, () => { this.showHideMoreFeaturesTitles() });\r\n }\r\n\r\n showHideMoreFeaturesTitles() {\r\n console.log(\"this.state.isMoreFeaturesOpen \", this.state.isMoreFeaturesOpen);\r\n var btn = document.getElementById(\"btn-collapse-features-open\");\r\n if (this.state.isMoreFeaturesOpen) {\r\n btn.classList.add(\"hidden\");\r\n }\r\n else {\r\n btn.classList.remove(\"hidden\");\r\n }\r\n }\r\n\r\n toggleSearchFilters(event) {\r\n this.setState({\r\n isSearchFiltersOpen: !this.state.isSearchFiltersOpen\r\n });\r\n }\r\n\r\n renderVehicles(vehicleSearchResult) {\r\n let currentVehicleId = this.props.location.search.substring(4);\r\n let filteredStockVehicles = vehicleSearchResult[0].inventoryVehicles.filter(v => v.id !== currentVehicleId);\r\n let max = vehicleSearchResult[0].totalResultCount < 6 ? vehicleSearchResult[0].totalResultCount : 6;\r\n return (\r\n filteredStockVehicles.slice(0, max).map((vehicle, i) =>\r\n \r\n
\r\n \r\n {vehicle.formattedLicensePlateNumber} { e.target.onerror = null; e.target.src = this.state.fallbackCarImages[vehicle.modelName] }} />\r\n

{vehicle.modelName}

\r\n

{vehicle.modelYear} | {vehicle.kilometrage} 000 km

\r\n

\r\n

\r\n \r\n
\r\n \r\n ));\r\n }\r\n\r\n renderVehicle(vehicle) {\r\n if (vehicle === null) {\r\n return (\r\n \r\n
\r\n \r\n \r\n
\r\n \r\n \"Back\"\r\n Loisto - vaihtoautojen valioyksilöt\r\n \r\n
\r\n

Autoa ei löytynyt, se on mahdollisesti jo poistunut myynnistä.

\r\n \r\n
\r\n
\r\n \r\n );\r\n }\r\n\r\n console.log(\"renderVehicle with \", vehicle);\r\n\r\n const fuelIdArray = {\r\n 0: 'Ei tiedossa', 1: 'Bensiini', 10: 'Hybridi diesel', 11: 'Plugin-hybridi bensiini', 12: 'Plugin-hybridi diesel',\r\n 13: 'Bensiini MHVE', 14: 'Diesel MHVE', 15: 'Sähkö-bensiini REx', 16: 'Sähkö-diesel REx',\r\n 2: 'Diesel', 3: 'Kaasu', 4: 'Sähkö', 5: 'Hybridi', 6: 'Bensiini-Kaasu', 7: 'Bensiini-Etanoli', 8: 'CNG Maakaasu', 9: 'Vety'};\r\n\r\n const gearboxArray = {\r\n 1: 'Manuaalinen' , 0: 'Puoliautomaatti' , 3: 'Automaattinen portaaton' , 2: 'Automaattinen' }\r\n ;\r\n\r\n const bodyTypeArray = {\r\n 0: 'Ei tiedossa', 1: 'Sedan', 2: 'Monikäyttö', 20: 'Erillinen kuormatila',\r\n 3: 'Viistoperä', 31: 'Custom/Chopper/Cruiser', 32: 'Enduro/Cross/All road/Off Road',\r\n 33: 'Katu/Matka/Sport', 34: 'Kilpa-ajoneuvo', 35: 'Trial', 36: 'Trike', 37: 'Yhdistelmä/Sivuvaunu',\r\n 4: 'Coupe', 5: 'Farmari', 6: 'Erikoisauto', 61: 'Avoauto', 7: 'Pakettiauto', 8: 'Maastoauto', 81: 'Pick-up', 9: 'Tila-auto'\r\n }\r\n\r\n const driveTypeArray = {\r\n 1: 'Etuveto',\r\n 2: 'Takaveto',\r\n 3: 'Neliveto'\r\n }\r\n let driveType = driveTypeArray[vehicle.technicalInformation.driveType];\r\n\r\n let vehicleFuel = fuelIdArray[vehicle.fuelType];\r\n let transmission = gearboxArray[vehicle.technicalInformation.transmissionType];\r\n let bodyType = bodyTypeArray[vehicle.bodyType];\r\n\r\n let inTrafficDate = new Date(Date.parse(vehicle.inTrafficDate));\r\n let inTrafficYear = inTrafficDate.getFullYear();\r\n let inTrafficMonth = inTrafficDate.getMonth() +1;\r\n let inTraffidDateStr = inTrafficDate.getDate() + '.' + inTrafficMonth + '.' + inTrafficYear;\r\n\r\n let kWPower = vehicle.technicalInformation.maxPower;\r\n let hpPower = printHpPower(kWPower);\r\n\r\n let inspectionDate = new Date(Date.parse(vehicle.inspectionDate));\r\n let inspectionMonth = inspectionDate.getMonth() + 1;\r\n let inspectionDateStr = inspectionDate.getDate() + '.' + inspectionMonth + '.' + inspectionDate.getFullYear();\r\n if (inspectionDateStr === '1.1.1') {\r\n inspectionDateStr = \"-\";\r\n }\r\n\r\n let accessoriesArray = vehicle.accessories;\r\n let resultToRender = [];\r\n\r\n // 0 - Package\r\n //const packageAccessoriesArray = accessoriesArray.filter(a =>\r\n // a.type === 0\r\n //);\r\n //if (packageAccessoriesArray.length !== 0) {\r\n // resultToRender.push({ sectionTitle: \"Paketti\", accessories: packageAccessoriesArray});\r\n //}\r\n\r\n // 1 - Custom standard accessories\r\n const customStandardAccessoriesArray = accessoriesArray.filter(a =>\r\n a.type === 0 || a.type === 1 || a.type === 7\r\n );\r\n if (customStandardAccessoriesArray.length !== 0) {\r\n resultToRender.push({ sectionTitle: \"Muut varusteet ja lisätiedot autosta\", accessories: customStandardAccessoriesArray });\r\n }\r\n\r\n // 2 - Custom accessories\r\n const customAccessoriesArray = accessoriesArray.filter(a =>\r\n a.type === 2\r\n );\r\n if (customAccessoriesArray.length !== 0) {\r\n resultToRender.push({ sectionTitle: \"Custom accessories (FI)\", accessories: customAccessoriesArray });\r\n }\r\n\r\n // 3 - New car standard accessories\r\n const newCarAccessoriesArray = accessoriesArray.filter(a =>\r\n a.type === 3\r\n );\r\n if (newCarAccessoriesArray.length !== 0) {\r\n resultToRender.push({ sectionTitle: \"Vakiovarusteet\", accessories: newCarAccessoriesArray });\r\n }\r\n\r\n // 4 - New car additional accessories\r\n const newCarAdditionalAccessoriesArray = accessoriesArray.filter(a =>\r\n a.type === 4\r\n );\r\n if (newCarAdditionalAccessoriesArray.length !== 0) {\r\n resultToRender.push({ sectionTitle: \"Tehdasasenteiset lisävarusteet\", accessories: newCarAdditionalAccessoriesArray });\r\n }\r\n\r\n // 5 - Ordered accessories\r\n const orderedAccessoriesArray = accessoriesArray.filter(a =>\r\n a.type === 5\r\n );\r\n if (orderedAccessoriesArray.length !== 0) {\r\n resultToRender.push({ sectionTitle: \"Tilatut lisävarusteet\", accessories: orderedAccessoriesArray });\r\n }\r\n\r\n // 6 - Unknown\r\n const unknownAccessoriesArray = accessoriesArray.filter(a =>\r\n a.type === 6\r\n );\r\n if (unknownAccessoriesArray.length !== 0) {\r\n resultToRender.push({ sectionTitle: \"Ei-määritellyt lisävarusteet\", accessories: unknownAccessoriesArray });\r\n }\r\n\r\n //// 7 - Campaign\r\n //const campaignAccessoriesArray = accessoriesArray.filter(a =>\r\n // a.type === 7\r\n //);\r\n //if (campaignAccessoriesArray.length !== 0) {\r\n // resultToRender.push({ sectionTitle: \"Kampanjavarusteet\", accessories: campaignAccessoriesArray });\r\n //}\r\n\r\n // 8 - From an external source\r\n const externalSourceAccessoriesArray = accessoriesArray.filter(a =>\r\n a.type === 8\r\n );\r\n if (externalSourceAccessoriesArray.length !== 0) {\r\n resultToRender.push({ sectionTitle: \"Muut lisävarusteet\", accessories: externalSourceAccessoriesArray });\r\n }\r\n\r\n let vehicleImages = vehicle.images.marketingImageUrls.slice().map((imageUrl, i) =>\r\n
\r\n \r\n \r\n {\"Kuva { e.target.onerror = null; e.target.src = this.state.fallbackCarImages[vehicle.modelName] }}>\r\n \r\n
\r\n );\r\n function AccessoriesListNested(props) {\r\n const accessories = props.accessories;\r\n\r\n const listItems = accessories.accessories.map((acc, idx) =>\r\n {acc.name}\r\n );\r\n return (\r\n \r\n \r\n \r\n {accessories.sectionTitle}\r\n \r\n {listItems}\r\n \r\n \r\n );\r\n }\r\n\r\n function AccessoriesList(props) {\r\n const accessories = props.accessories;\r\n const rootPosition = props.position;\r\n let position = props.position;\r\n\r\n let columnSize = accessories.length === 1 ? \"12\" : accessories.length === 2 ? \"6\" : \"4\"; \r\n\r\n let nestedAccessoriesList = [];\r\n let rootAccessories;\r\n\r\n if (accessories === undefined || accessories.length === 0) {\r\n return;\r\n }\r\n\r\n if (accessories.length > 1) {\r\n\r\n for (var i = position + 1; i < accessories.length; i++) {\r\n position = i;\r\n\r\n if (position % 3 === 0) {\r\n break;\r\n } \r\n\r\n let nestedAccessories = ;\r\n\r\n nestedAccessoriesList.push(nestedAccessories);\r\n }\r\n } else {\r\n columnSize = 12;\r\n }\r\n\r\n if (position > 1 && position < accessories.length - 1) {\r\n rootAccessories = ;\r\n }\r\n\r\n const listItems = accessories[rootPosition].accessories.map((acc, idx) => \r\n {acc.name}\r\n );\r\n return (\r\n <>\r\n \r\n \r\n \r\n \r\n {resultToRender[rootPosition].sectionTitle}\r\n \r\n {listItems}\r\n \r\n \r\n {nestedAccessoriesList}\r\n \r\n {rootAccessories}\r\n \r\n );\r\n }\r\n\r\n function printEngineVol(engineVol) {\r\n if (engineVol === 0) {\r\n return '';\r\n }\r\n if (engineVol === 999) {\r\n return \"1.0\";\r\n }\r\n\r\n var volume = engineVol.toString().substring(0, 1) + \".\" + engineVol.toString().substring(1);\r\n const input = parseFloat(volume);\r\n if (Number.isNaN(input)) {\r\n return '';\r\n }\r\n const rounded = input.toFixed(1);\r\n return rounded.toString();\r\n }\r\n\r\n function printHpPower(kWPower) {\r\n if (kWPower === 0) {\r\n return '';\r\n }\r\n\r\n const input = parseFloat(kWPower);\r\n if (Number.isNaN(input)) {\r\n return '';\r\n }\r\n const rounded = (input * 1.36).toFixed(0);\r\n return rounded.toString();\r\n }\r\n\r\n return (\r\n \r\n
\r\n \r\n \r\n
\r\n \r\n \"Back\"\r\n Loisto - vaihtoautojen valioyksilöt\r\n \r\n
\r\n

{vehicle.modelName} {vehicle.modelType.substring(0, vehicle.modelType.indexOfRegex('#|(\\\\d)'))}\r\n \r\n \r\n €\r\n

\r\n

{vehicle.modelType}

\r\n
\r\n {vehicle.marketingText}\r\n
\r\n \r\n
\r\n\r\n {vehicleImages.length > 0 &&\r\n \r\n \r\n \r\n {vehicleImages}\r\n \r\n \r\n \r\n }\r\n\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
Käyttövoima{vehicleFuel}
Vaihteisto{transmission}
Rekisterinumero{vehicle.formattedLicensePlateNumber}
Korimalli{bodyType}
Käyttöönottovuosi{inTrafficYear}
Mittarilukema{vehicle.kilometrage} 000
Vetotapa{driveType}
Sijainti{vehicle.sellerCompanyName}
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
Teho{kWPower} kW ({hpPower.toLocaleString('fi')} hv)
Kulutus l/100 km
- kaupunki{vehicle.fuelEconomy.city.toFixed(1)} l/100km
- maantie{vehicle.fuelEconomy.road.toFixed(1)} l/100 km
- yhdistetty{vehicle.fuelEconomy.combined.toFixed(1)} l/100 km
Väri{vehicle.colorText.fi}
Päästöt (CO2) g/km{vehicle.cO2} g/km
\r\n \r\n
\r\n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
Moottorin tilavuus{printEngineVol(vehicle.technicalInformation.engineVol)} L
Henkilömäärä{vehicle.technicalInformation.seatCount}
Ovien lukumäärä{vehicle.doorAmount}
Viimeisin katsastus{inspectionDateStr}
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
Omamassa{vehicle.technicalInformation.curbWeight} kg
Käyttöönottopäivä{inTraffidDateStr}
Vetomassa (jarrullinen){vehicle.technicalInformation.towingCapacityWithBrakes} kg
Vetomassa (ei jarruja){vehicle.technicalInformation.towingCapacityWithoutBrakes} kg
Kiihtyvyys 0-100 km/h{vehicle.technicalInformation.acceleration.toFixed(1)} s
\r\n \r\n
\r\n \r\n
\r\n
\r\n \r\n \r\n \r\n
\r\n
\r\n\r\n {/*\r\n \r\n
\r\n At vero eos et accusamus et iusto odio dignissimos ducimus qui blanditiis praesentium voluptatum deleniti atque corrupti quos dolores et quas molestias excepturi sint occaecati cupiditate non provident, similique sunt in culpa qui officia deserunt mollitia animi, id est laborum et dolorum fuga. Et harum quidem rerum facilis est et expedita distinctio. Nam libero tempore,\r\n
\r\n\r\n
\r\n At vero eos et accusamus et iusto odio dignissimos ducimus qui blanditiis praesentium voluptatum deleniti atque corrupti quos dolores et quas molestias excepturi sint occaecati cupiditate non provident, similique sunt in culpa qui officia deserunt mollitia animi, id est laborum et dolorum fuga. Et harum quidem rerum facilis est et expedita distinctio.\r\n
\r\n \r\n
*/}\r\n\r\n \r\n \r\n \r\n Ota yhteyttä\r\n \r\n \r\n {/*\r\n \r\n \r\n \r\n \r\n \r\n */}\r\n \r\n\r\n \r\n \r\n
\r\n \r\n \"Back\"\r\n Loisto - vaihtoautojen valioyksilöt\r\n \r\n
\r\n \r\n
\r\n
\r\n \r\n );\r\n\r\n }\r\n\r\n render() {\r\n\r\n let contents = this.state.loading ?\r\n \r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n : \r\n this.renderVehicle(this.state.vehicleResult);\r\n\r\n let searchResultCount = this.props.location.state !== undefined && this.props.location.state.vehicleSearchResult != null ?\r\n this.props.location.state.vehicleSearchResult[0].totalResultCount : 0;\r\n\r\n let othervehicles = this.props.location.state !== undefined && this.props.location.state.vehicleSearchResult ? this.renderVehicles(this.props.location.state.vehicleSearchResult) : null;\r\n\r\n let bannerClassName = \"vehicle-page-banner\";\r\n if (window.supportsWebp === false) {\r\n bannerClassName = \"vehicle-page-banner-no-webp\";\r\n }\r\n const event = { platform: 'react-stack' }\r\n return (\r\n \r\n {/**/}\r\n
\r\n \r\n \r\n
\r\n

Loisto

\r\n

Vaihtoautojen valioyksilöt

\r\n (\r\n \r\n )} />\r\n
\r\n \r\n
\r\n
\r\n\r\n \r\n \r\n
\r\n \r\n
\r\n\r\n
\r\n Löytyi {searchResultCount} Loisto-autoa\r\n
\r\n (\r\n \r\n )} />\r\n \r\n\r\n (\r\n \r\n )} />\r\n\r\n \r\n \r\n\r\n
\r\n\r\n {othervehicles}\r\n\r\n
\r\n \r\n \"Back\"\r\n Loisto - vaihtoautojen valioyksilöt\r\n \r\n
\r\n
\r\n \r\n \r\n {contents}\r\n\r\n
\r\n\r\n
\r\n );\r\n }\r\n\r\n componentWillReceiveProps() {\r\n this.setState({\r\n loading: true\r\n }, () => {this.componentDidMount() }\r\n );\r\n }\r\n\r\n componentDidMount() {\r\n if (this.props.location.search !== \"\") {\r\n this.populateVehicleData();\r\n window.scrollTo(0, 700);\r\n }\r\n }\r\n\r\n async populateVehicleData() {\r\n const vehicleId = this.props.location.search;\r\n const response = await fetch('vehicle' + vehicleId);\r\n\r\n if (response.status === 200) {\r\n const data = await response.json();\r\n\r\n this.setState({\r\n vehicleResult: data,\r\n loading: false,\r\n activeTab: '1',\r\n isMoreFeaturesOpen: false\r\n });\r\n } else {\r\n this.setState({\r\n loading: false\r\n });\r\n }\r\n }\r\n}","export default __webpack_public_path__ + \"static/media/auto-kuvat.a87ca132.png\";","import React, { Component } from 'react';\r\nimport { Link, Route } from 'react-router-dom';\r\nimport { Container, Row, Col } from 'reactstrap';\r\nimport { Button, Collapse } from 'reactstrap';\r\nimport NumberFormat from 'react-number-format';\r\nimport GoogleTagManager from './GoogleTagManager';\r\nimport { VehicleSearchFilters } from './VehicleSearchFilters';\r\nimport { ResetFiltersButton } from './ResetFiltersButton';\r\nimport { PrimaryBannerButton } from './PrimaryBannerButton';\r\n\r\nimport '../custom.css';\r\nimport './Home.css';\r\nimport './Vehicle.css';\r\nimport './Content.css';\r\n\r\nimport smallSearch from '../images/icon-search.svg';\r\nimport arrowBackBig from '../images/arrow-back-big.svg';\r\nimport arrowBackSmall from '../images/arrow-back-small.svg';\r\n\r\n// Fallback car images\r\nimport carImageCitigo from '../images/cars/citigo.png';\r\nimport carImageFabia from '../images/cars/fabia.png';\r\nimport carImageKaroq from '../images/cars/karoq.png';\r\nimport carImageKamiq from '../images/cars/kamiq.png';\r\nimport carImageKodiaq from '../images/cars/kodiaq.png';\r\nimport carImageOctavia from '../images/cars/octavia.png';\r\nimport carImageScala from '../images/cars/scala.png';\r\nimport carImageSuperb from '../images/cars/superb.png';\r\nimport carImageRapid from '../images/cars/rapid.png'\r\n\r\n//import demoCar from '../images/demovehicle/skoda-superb-black-edition-black.jpg';\r\n\r\nexport class Content extends Component {\r\n static displayName = Content.name;\r\n\r\n constructor(props) {\r\n super(props);\r\n\r\n let vehicleSearchFilters = JSON.parse(sessionStorage.getItem('session_vehicleSearchFilterValues'));\r\n let vehicleSearchResult = JSON.parse(sessionStorage.getItem('session_vehicleSearchResult'));\r\n\r\n this.state = {\r\n vehicleSearchResult: vehicleSearchResult,\r\n vehicleSearchFilterValues: vehicleSearchFilters,\r\n isSearchFiltersOpen: false,\r\n dropdownOpenModelName: false,\r\n dropdownOpenLocation: false,\r\n setDropdownOpen: false,\r\n isMoreOpen: false,\r\n fallbackCarImages: {\r\n \"Citigo\": carImageCitigo,\r\n \"Fabia\": carImageFabia,\r\n \"Karoq\": carImageKaroq,\r\n \"Kamiq\": carImageKamiq,\r\n \"Kodiaq\": carImageKodiaq,\r\n \"Octavia\": carImageOctavia,\r\n \"Scala\": carImageScala,\r\n \"Superb\": carImageSuperb,\r\n \"Rapid\": carImageRapid\r\n }\r\n };\r\n\r\n this.toggleSearchFilters = this.toggleSearchFilters.bind(this);\r\n }\r\n\r\n toggleSearchFilters(event) {\r\n this.setState({\r\n isSearchFiltersOpen: !this.state.isSearchFiltersOpen\r\n });\r\n }\r\n\r\n renderVehicles(vehicleSearchResult) {\r\n let max = 0;\r\n if (vehicleSearchResult && (vehicleSearchResult.length > 0)) {\r\n max = vehicleSearchResult[0].totalResultCount < 6 ? vehicleSearchResult[0].totalResultCount : 6;\r\n }\r\n\r\n if (!max) {\r\n return \"\";\r\n }\r\n\r\n return (\r\n vehicleSearchResult[0].inventoryVehicles.slice(0, max).map((vehicle, i) =>\r\n \r\n
\r\n \r\n {vehicle.makeName { e.target.onerror = null; e.target.src = this.state.fallbackCarImages[vehicle.modelName] }} />\r\n

{vehicle.modelName} {vehicle.modelType}

\r\n

{vehicle.modelYear} | {vehicle.kilometrage} 000 km

\r\n

\r\n

\r\n \r\n
\r\n \r\n ));\r\n }\r\n\r\n render() {\r\n\r\n let searchResultCount = 0;\r\n if (this.state.vehicleSearchResult && this.state.vehicleSearchResult.length > 0) {\r\n searchResultCount = this.state.vehicleSearchResult[0].totalResultCount;\r\n }\r\n\r\n let bannerClassName = \"vehicle-page-banner\";\r\n if (window.supportsWebp === false) {\r\n bannerClassName = \"vehicle-page-banner-no-webp\";\r\n }\r\n\r\n\r\n let othervehicles = this.renderVehicles(this.state.vehicleSearchResult);\r\n const event = { platform: 'react-stack' }\r\n return (\r\n \r\n {/**/}\r\n
\r\n \r\n \r\n
\r\n

Loisto

\r\n

Vaihtoautojen valioyksilöt

\r\n
\r\n \r\n
\r\n
\r\n\r\n \r\n \r\n
\r\n \r\n
\r\n\r\n
\r\n Löytyi {searchResultCount} Loisto-autoa\r\n
\r\n\r\n (\r\n \r\n )} />\r\n\r\n \r\n\r\n (\r\n \r\n )} />\r\n\r\n \r\n \r\n\r\n
\r\n {othervehicles}\r\n
\r\n \r\n \"Back\"\r\n Loisto-vaihtoautojen valioyksilöt\r\n \r\n
\r\n
\r\n \r\n\r\n \r\n
\r\n \r\n \r\n
\r\n \r\n \"Back\"\r\n Loisto - vaihtoautojen valioyksilöt\r\n \r\n
\r\n\r\n

Loisto – vaihtoautojen valioyksilöt

\r\n\r\n
\r\n Loisto on Škodan uusi vaihtoauto-ohjelma, josta löydät parhaat ja valikoidut Škoda-vaihtoautot. Kaikki Loisto-ohjelmaan kuuluvat vaihtoautot ovat huolellisesti kuntotarkastettuja ja huoltokirjoiltaan aukottomia, alle viisivuotiaita ja maksimissaan 130 000 km ajettuja valioyksilöitä.\r\n
\r\n \r\n
\r\n Loisto-ohjelman vaihtoautoihin on hankittavissa Loisto-vaihtoautoturva, joka tuo huolettomuutta autonhankintaan. Loisto-vaihtoautoturva kattaa auton tekniset viat ja rikkoutumiset 1 vuoden tai 20 000 km ajan ostohetkestä. Loisto-vaihtoautoturvassa on nerokasta sekin, että jos jostain syystä tulet toisiin aatoksiin uuden Loisto-vaihtoautosi kanssa, voit vaihtaa sen toiseen Škoda-merkkiseen autoon 14 vuorokauden tai 1000 km kuluttua auton ostohetkestä.\r\n
\r\n\r\n
\r\n Loisto-vaihtoautoturvan saat ainoastaan valtuutetulta Škoda-jälleenmyyjältäsi.\r\n
\r\n\r\n
\r\n Tutustu Škodan Loisto-vaihtoautovalikoimaan ja valitse omasi.\r\n
\r\n\r\n

Škodan Loisto-vaihtoautot pähkinänkuoressa

\r\n\r\n
\r\n Alle 5-vuotiaita valioyksilöitä\r\n Mittarilukema alle 130 000 km\r\n Merkkihuolloissa huollettuja ja kuntotarkastettuja\r\n Ajoturva voimassa\r\n Lisäpalveluna hankittavissa myös Loisto-vaihtoautoturva 12 kk/20 000 km\r\n
\r\n\r\n

Loisto-vaihtoautoturva tuo huolettomuutta autonhankintaan

\r\n\r\n
\r\n

Huolettomia ajokilometrejä

\r\n Loisto-vaihtoautoturva kattaa auton teknisten vikojen ja rikkoutumisien korjauksen 1 vuoden tai 20 000 km ajan auton ostohetkestä.\r\n
\r\n
\r\n

Tarkastettu ja kunnostettu

\r\n Loisto-vaihtoautot ovat Škoda Service -merkkihuolloissa huollettuja ja huolellisesti kuntotarkastettuja sekä huoltokirjaltaan aukottomia vaihtoautoja.\r\n
\r\n
\r\n

Turva tien päälle

\r\n Loisto-vaihtoautoissa on voimassa myös Škoda Ajoturva, joka tarjoaa 24 h tiepalvelun ja tarvittaessa autosi hinauksen sekä sinun ja matkaseurueesi kuljetuksen pois vikapaikalta, mikäli autosi kuntoon saattaminen vaatisikin korjaamotoimenpiteitä.\r\n
\r\n
\r\n Teknisen vian tai rikkoutumisen sattuessa Škoda Ajoturva tarjoaa sinulle sijaisauton, mikäli autoasi ei saada saman päivän aikana kuntoon. Škoda Ajoturva on voimassa seuraavaan huoltoon asti ja on elinikäinen, kun huollatat autosi huolto-ohjelman mukaisesti Škoda Service -merkkihuollossa.\r\n
\r\n
\r\n Lue lisää Škoda Ajoturvasta tästä.\r\n
\r\n
\r\n

Vaihto-oikeus

\r\n Jos jostain syystä tuletkin toisiin aatoksiin uuden Loisto-vaihtoturvallisen autosi kanssa, sinulla on mahdollisuus vaihtaa autosi toiseen Škoda-merkkiseen vaihtoautoon 14 vuorokauden tai 1000 km kuluttua auton ostohetkestä.\r\n
\r\n
\r\n

Kotiinkuljetus

\r\n Halutessasi auto toimitetaan kaupanteon jälkeen suoraan kotiosoitteeseesi. Kysy lisää kotiinkuljetuksesta ja siihen liittyvistä kustannuksista Škoda-jälleenmyyjältäsi.\r\n
\r\n
\r\n
\r\n Loisto-vaihtoautoturvan hinta on 490€.\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n\r\n
\r\n );\r\n }\r\n}","import React, { Component } from 'react';\r\nimport { Link, Route } from 'react-router-dom';\r\nimport { Container, Row, Col, Spinner } from 'reactstrap';\r\nimport { CustomInput } from 'reactstrap';\r\nimport GoogleTagManager from './GoogleTagManager';\r\nimport { PrimaryBannerButton } from './PrimaryBannerButton';\r\n\r\nimport '../custom.css';\r\nimport './ContactForm.css';\r\n\r\nimport arrowBackBig from '../images/arrow-back-big.svg';\r\nimport arrowBackSmall from '../images/arrow-back-small.svg';\r\n\r\nexport class ContactForm extends Component {\r\n static displayName = ContactForm.name;\r\n\r\n constructor(props) {\r\n super(props);\r\n\r\n let vehicleResult = props.location.state !== undefined && props.location.state.vehicleResult !== undefined ?\r\n JSON.parse(props.location.state.vehicleResult) : null;\r\n\r\n var messagePlaceholderValue = \"Hei, olen kiinnostunut Loisto-autosta \";\r\n\r\n if (vehicleResult !== null) {\r\n messagePlaceholderValue = messagePlaceholderValue + vehicleResult.makeName + ' '\r\n + vehicleResult.modelName + ' rekisterinumero ' + vehicleResult.formattedLicensePlateNumber;\r\n }\r\n\r\n this.state = {\r\n vehicleResult: vehicleResult,\r\n name: '',\r\n email: '',\r\n email2: '',\r\n phone: '',\r\n interestedInTestDriveSelected: false,\r\n interestedInBuyingSelected: false,\r\n interestedInChangingSelected: false,\r\n message: messagePlaceholderValue,\r\n isContactTypeEmailSelected: false,\r\n isContactTypePhoneSelected: false,\r\n isSendCopySelected: false,\r\n isEmailsTheSame: true,\r\n isSentWithErrors: false,\r\n isSentWithoutErrors: false,\r\n loading: false,\r\n interestedInChangingReg: '',\r\n interestedInChangingKm: '',\r\n gdbrAcceptedSelected: false,\r\n marketingByEmailAllowedSelected: false\r\n };\r\n\r\n this.handleChange = this.handleChange.bind(this);\r\n }\r\n\r\n handleChange(event) {\r\n const target = event.target;\r\n const value = target.type === 'checkbox' ? target.checked : target.value;\r\n const name = target.name;\r\n\r\n if (name === \"interestedInChangingSelected\")\r\n if (!target.checked)\r\n this.setState({\r\n interestedInChangingReg: '',\r\n interestedInChangingKm: ''\r\n });\r\n \r\n this.setState({\r\n [name]: value,\r\n isEmailsTheSame: true,\r\n }\r\n );\r\n }\r\n\r\n componentDidMount() {\r\n window.scrollTo(0, 0);\r\n }\r\n\r\n handleSubmit(event) {\r\n event.preventDefault();\r\n console.log(this.state);\r\n\r\n if (this.state.email !== this.state.email2) {\r\n this.setState({\r\n isEmailsTheSame: false\r\n }\r\n );\r\n } else {\r\n this.setState({\r\n loading: true\r\n }\r\n );\r\n\r\n fetch('InfoDealer',\r\n {\r\n method: \"POST\",\r\n body: JSON.stringify(this.state),\r\n headers: {\r\n 'Accept': 'application/json',\r\n 'Content-Type': 'application/json'\r\n },\r\n }).then(\r\n (response) => (response.json())\r\n ).then((response) => {\r\n if (response === true) {\r\n this.setState({\r\n isSentWithoutErrors: true,\r\n loading: false\r\n });\r\n } else {\r\n this.setState({\r\n isSentWithErrors: true,\r\n loading: false\r\n });\r\n }\r\n });\r\n }\r\n }\r\n\r\n render() {\r\n let bannerClassName = \"vehicle-page-banner\";\r\n if (window.supportsWebp === false) {\r\n bannerClassName = \"vehicle-page-banner-no-webp\";\r\n }\r\n const interestedInChangingContent = this.state.interestedInChangingSelected\r\n ?
\r\n
\r\n \r\n \r\n \r\n \r\n  \r\n
\r\n
\r\n \r\n \r\n \r\n \r\n  \r\n
\r\n
\r\n : null;\r\n const event = { platform: 'react-stack' }\r\n return (\r\n \r\n {/**/}\r\n
\r\n \r\n \r\n
\r\n

Loisto

\r\n

Vaihtoautojen valioyksilöt

\r\n (\r\n \r\n )} />\r\n
\r\n \r\n
\r\n
\r\n\r\n \r\n \r\n \r\n\r\n
\r\n\r\n
\r\n \r\n \"Back\"\r\n Loisto
-vaihtoautot
\r\n \r\n
\r\n
\r\n \r\n\r\n {!this.state.isSentWithErrors && !this.state.isSentWithoutErrors && !this.state.loading &&\r\n (\r\n
\r\n\r\n \r\n \r\n
\r\n \r\n \"Back\"\r\n Loisto-vaihtoautot\r\n \r\n
\r\n\r\n

Ota yhteyttä

\r\n\r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n \r\n  \r\n
\r\n\r\n
\r\n \r\n \r\n \r\n \r\n  \r\n
\r\n\r\n
\r\n \r\n \r\n \r\n \r\n  \r\n
\r\n\r\n
\r\n \r\n \r\n \r\n \r\n  \r\n
\r\n\r\n
\r\n Olen kiinnostunut\r\n
    \r\n
  • \r\n \r\n
  • \r\n
  • \r\n \r\n
  • \r\n
  • \r\n \r\n {interestedInChangingContent}\r\n
  • \r\n
\r\n
\r\n\r\n
\r\n \r\n \r\n \r\n \r\n
\r\n\r\n
\r\n Haluamani vastaustapa\r\n
    \r\n
  • \r\n \r\n
  • \r\n
  • \r\n \r\n
  • \r\n
\r\n
\r\n\r\n
\r\n \r\n \r\n Olen lukenut ja ymmärtänyt Škoda:n \r\n \r\n \r\n tietoturvaselosteen\r\n \r\n
\r\n }\r\n checked={this.state.gdbrAcceptedSelected}\r\n onChange={this.handleChange}\r\n />\r\n \r\n \r\n
\r\n \r\n {!this.state.isEmailsTheSame &&\r\n
\r\n \r\n ! \r\n
\r\n }\r\n\r\n
\r\n \r\n Lähetä yhteydenottolomake\r\n \r\n
\r\n Tämän viestin vastaanottaja: {this.state.vehicleResult.sellerCompanyName}\r\n \r\n
\r\n\r\n \r\n
\r\n\r\n \r\n )}\r\n {!this.state.isSentWithErrors && this.state.isSentWithoutErrors && !this.state.loading &&\r\n (\r\n
\r\n \r\n \r\n
\r\n \r\n \"Back\"\r\n Loisto-vaihtoautot\r\n \r\n
\r\n\r\n

Ota yhteyttä

\r\n\r\n
\r\n
\r\n Viesti on lähetetty.\r\n
\r\n
\r\n\r\n \r\n
\r\n\r\n
\r\n )}\r\n {this.state.isSentWithErrors && !this.state.isSentWithoutErrors && !this.state.loading &&\r\n (\r\n
\r\n \r\n \r\n
\r\n \r\n \"Back\"\r\n Loisto-vaihtoautot\r\n \r\n
\r\n\r\n

Ota yhteyttä

\r\n\r\n
\r\n
\r\n \r\n
\r\n
\r\n\r\n \r\n
\r\n\r\n
\r\n )}\r\n {this.state.loading &&\r\n (\r\n
\r\n \r\n \r\n
\r\n \r\n \r\n
\r\n \r\n
\r\n\r\n
\r\n )}\r\n \r\n\r\n
\r\n )\r\n }\r\n}","/*Due to existing implementation, I found no other easy way to reset filters on the welcome page. Another option is to refactor code to pass parameters correctly. In this case it means to rewrite code completely.*/\r\n\r\nimport React, { Component } from 'react';\r\nimport { Route } from 'react-router-dom';\r\nimport { Container } from 'reactstrap';\r\n\r\nimport { VehicleSearchFilters } from './VehicleSearchFilters';\r\n\r\nexport class ReloadFiltersBlock extends Component {\r\n\r\n constructor(props) {\r\n super(props);\r\n\r\n let vehicleSearchFilters = JSON.parse(sessionStorage.getItem('session_vehicleSearchFilterValues'));\r\n let vehicleSearchResult = JSON.parse(sessionStorage.getItem('session_vehicleSearchResult'));\r\n\r\n this.state = {\r\n vehicleSearchResult: vehicleSearchResult,\r\n vehicleSearchFilterValues: vehicleSearchFilters\r\n };\r\n }\r\n componentDidMount() {\r\n var vehicleSearchFilterValues = { ...this.state.vehicleSearchFilterValues }\r\n\r\n vehicleSearchFilterValues.selectedModelNames = [];\r\n vehicleSearchFilterValues.isBodyTypeSedanSelected = false;\r\n vehicleSearchFilterValues.isBodyTypeFarmariSelected = false;\r\n vehicleSearchFilterValues.isBodyTypeHacthbackSelected = false;\r\n vehicleSearchFilterValues.isBodyTypeSUVSelected = false;\r\n vehicleSearchFilterValues.selectedBodyTypeIds = [];\r\n vehicleSearchFilterValues.isFuelBensiiniSelected = false;\r\n vehicleSearchFilterValues.isFuelDieselSelected = false;\r\n vehicleSearchFilterValues.isFuelKaasuSelected = false;\r\n vehicleSearchFilterValues.isFuelSahkoSelected = false;\r\n vehicleSearchFilterValues.isFuelHybridiSelected = false;\r\n vehicleSearchFilterValues.selectedFuelIds = [];\r\n vehicleSearchFilterValues.isTransmissionManualSelected = false;\r\n vehicleSearchFilterValues.isTransmissionAutomaticSelected = false;\r\n vehicleSearchFilterValues.selectedTransmissionIds = [];\r\n vehicleSearchFilterValues.isFourWheelDriveSelected = false;\r\n\r\n if (vehicleSearchFilterValues.askPrice !== undefined) {\r\n vehicleSearchFilterValues.askPrice.min = 0;\r\n vehicleSearchFilterValues.askPrice.max = 80000;\r\n } else {\r\n vehicleSearchFilterValues.askPrice = {\r\n min: 0,\r\n max: 80000\r\n }\r\n }\r\n\r\n if (vehicleSearchFilterValues.mileage !== undefined) {\r\n vehicleSearchFilterValues.mileage.min = 0;\r\n vehicleSearchFilterValues.mileage.max = 130000;\r\n } else {\r\n vehicleSearchFilterValues.mileage = {\r\n min: 0,\r\n max: 130000\r\n }\r\n }\r\n\r\n if (vehicleSearchFilterValues.locations !== undefined) {\r\n for (var index = 0; index < vehicleSearchFilterValues.locations.length; ++index) {\r\n vehicleSearchFilterValues.locations[index].selected = false;\r\n }\r\n } else {\r\n vehicleSearchFilterValues.locations = [];\r\n }\r\n\r\n if (vehicleSearchFilterValues.year !== undefined) {\r\n vehicleSearchFilterValues.year.min = (new Date().getFullYear()) - 5;\r\n vehicleSearchFilterValues.year.max = new Date().getFullYear();\r\n } else {\r\n vehicleSearchFilterValues.year = {\r\n min: (new Date().getFullYear()) - 5,\r\n max: new Date().getFullYear()\r\n }\r\n }\r\n vehicleSearchFilterValues.selectedModelNames = [];\r\n vehicleSearchFilterValues.selectedLocationIds = [];\r\n vehicleSearchFilterValues.isTowHitchSelected = false;\r\n vehicleSearchFilterValues.isFuelDrivenAuxiliaryHeaterSelected = false;\r\n vehicleSearchFilterValues.isCruiseControlSelected = false;\r\n vehicleSearchFilterValues.isMetallicSelected = false;\r\n vehicleSearchFilterValues.accessories = [];\r\n\r\n if (vehicleSearchFilterValues.co2 !== undefined) {\r\n vehicleSearchFilterValues.co2.min = -1;\r\n vehicleSearchFilterValues.co2.max = 220;\r\n } else {\r\n vehicleSearchFilterValues.co2 = {\r\n min: -1,\r\n max: 220\r\n }\r\n }\r\n\r\n\r\n this.setState({\r\n vehicleSearchFilterValues\r\n }, () => {\r\n this.props.history.push({\r\n pathname: \"/\",\r\n state: {\r\n vehicleSearchFilterValues: JSON.stringify(this.state.vehicleSearchFilterValues)\r\n }\r\n });\r\n });\r\n }\r\n render() {\r\n return (\r\n \r\n (\r\n \r\n )} />\r\n \r\n )\r\n }\r\n}","if (!Array.prototype.filter) {\r\n Array.prototype.filter = function (fun /*, thisp */) {\r\n \"use strict\";\r\n\r\n if (this == null)\r\n throw new TypeError();\r\n\r\n var t = Object(this);\r\n var len = t.length >>> 0;\r\n if (typeof fun != \"function\")\r\n throw new TypeError();\r\n\r\n var res = [];\r\n var thisp = arguments[1];\r\n for (var i = 0; i < len; i++) {\r\n if (i in t) {\r\n var val = t[i]; // in case fun mutates this\r\n if (fun.call(thisp, val, i, t))\r\n res.push(val);\r\n }\r\n }\r\n\r\n return res;\r\n };\r\n}\r\n\r\n// https://tc39.github.io/ecma262/#sec-array.prototype.find\r\nif (!Array.prototype.find) {\r\n Object.defineProperty(Array.prototype, 'find', {\r\n value: function (predicate) {\r\n // 1. Let O be ? ToObject(this value).\r\n if (this == null) {\r\n throw TypeError('\"this\" is null or not defined');\r\n }\r\n\r\n var o = Object(this);\r\n\r\n // 2. Let len be ? ToLength(? Get(O, \"length\")).\r\n var len = o.length >>> 0;\r\n\r\n // 3. If IsCallable(predicate) is false, throw a TypeError exception.\r\n if (typeof predicate !== 'function') {\r\n throw TypeError('predicate must be a function');\r\n }\r\n\r\n // 4. If thisArg was supplied, let T be thisArg; else let T be undefined.\r\n var thisArg = arguments[1];\r\n\r\n // 5. Let k be 0.\r\n var k = 0;\r\n\r\n // 6. Repeat, while k < len\r\n while (k < len) {\r\n // a. Let Pk be ! ToString(k).\r\n // b. Let kValue be ? Get(O, Pk).\r\n // c. Let testResult be ToBoolean(? Call(predicate, T, « kValue, k, O »)).\r\n // d. If testResult is true, return kValue.\r\n var kValue = o[k];\r\n if (predicate.call(thisArg, kValue, k, o)) {\r\n return kValue;\r\n }\r\n // e. Increase k by 1.\r\n k++;\r\n }\r\n\r\n // 7. Return undefined.\r\n return undefined;\r\n },\r\n configurable: true,\r\n writable: true\r\n });\r\n}\r\n\r\nString.prototype.indexOfRegex = function (regex) {\r\n var match = this.match(regex);\r\n return match ? this.indexOf(match[0]) : -1;\r\n}\r\n\r\nasync function supportsWebp() {\r\n if (!window.createImageBitmap) return false;\r\n\r\n const webpData = 'data:image/webp;base64,UklGRh4AAABXRUJQVlA4TBEAAAAvAAAAAAfQ//73v/+BiOh/AAA=';\r\n const blob = await fetch(webpData).then(r => r.blob());\r\n return createImageBitmap(blob).then(() => true, () => false);\r\n}\r\n\r\n(async () => {\r\n if (await supportsWebp()) {\r\n window.supportsWebp = true;\r\n }\r\n else {\r\n window.supportsWebp = false;\r\n }\r\n})();","import React, { Component } from 'react';\r\nimport { Route } from 'react-router';\r\nimport { Layout } from './components/Layout';\r\nimport { Home } from './components/Home';\r\nimport { Vehicle } from './components/Vehicle';\r\nimport { Content } from './components/Content';\r\nimport { ContactForm } from './components/ContactForm';\r\nimport { ReloadFiltersBlock } from './components/ReloadFiltersBlock';\r\nimport './compatibility.js';\r\n\r\nimport './custom.css'\r\n\r\nexport default class App extends Component {\r\n static displayName = App.name;\r\n\r\n render() {\r\n return (\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n );\r\n }\r\n}\r\n","// In production, we register a service worker to serve assets from local cache.\r\n\r\n// This lets the app load faster on subsequent visits in production, and gives\r\n// it offline capabilities. However, it also means that developers (and users)\r\n// will only see deployed updates on the \"N+1\" visit to a page, since previously\r\n// cached resources are updated in the background.\r\n\r\n// To learn more about the benefits of this model, read https://goo.gl/KwvDNy.\r\n// This link also includes instructions on opting out of this behavior.\r\n\r\nconst isLocalhost = Boolean(\r\n window.location.hostname === 'localhost' ||\r\n // [::1] is the IPv6 localhost address.\r\n window.location.hostname === '[::1]' ||\r\n // 127.0.0.1/8 is considered localhost for IPv4.\r\n window.location.hostname.match(\r\n /^127(?:\\.(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)){3}$/\r\n )\r\n);\r\n\r\nexport default function register () {\r\n if (process.env.NODE_ENV === 'production' && 'serviceWorker' in navigator) {\r\n // The URL constructor is available in all browsers that support SW.\r\n const publicUrl = new URL(process.env.PUBLIC_URL, window.location);\r\n if (publicUrl.origin !== window.location.origin) {\r\n // Our service worker won't work if PUBLIC_URL is on a different origin\r\n // from what our page is served on. This might happen if a CDN is used to\r\n // serve assets; see https://github.com/facebookincubator/create-react-app/issues/2374\r\n return;\r\n }\r\n\r\n window.addEventListener('load', () => {\r\n const swUrl = `${process.env.PUBLIC_URL}/service-worker.js`;\r\n\r\n if (isLocalhost) {\r\n // This is running on localhost. Lets check if a service worker still exists or not.\r\n checkValidServiceWorker(swUrl);\r\n } else {\r\n // Is not local host. Just register service worker\r\n registerValidSW(swUrl);\r\n }\r\n });\r\n }\r\n}\r\n\r\nfunction registerValidSW (swUrl) {\r\n navigator.serviceWorker\r\n .register(swUrl)\r\n .then(registration => {\r\n registration.onupdatefound = () => {\r\n const installingWorker = registration.installing;\r\n installingWorker.onstatechange = () => {\r\n if (installingWorker.state === 'installed') {\r\n if (navigator.serviceWorker.controller) {\r\n // At this point, the old content will have been purged and\r\n // the fresh content will have been added to the cache.\r\n // It's the perfect time to display a \"New content is\r\n // available; please refresh.\" message in your web app.\r\n console.log('New content is available; please refresh.');\r\n } else {\r\n // At this point, everything has been precached.\r\n // It's the perfect time to display a\r\n // \"Content is cached for offline use.\" message.\r\n console.log('Content is cached for offline use.');\r\n }\r\n }\r\n };\r\n };\r\n })\r\n .catch(error => {\r\n console.error('Error during service worker registration:', error);\r\n });\r\n}\r\n\r\nfunction checkValidServiceWorker (swUrl) {\r\n // Check if the service worker can be found. If it can't reload the page.\r\n fetch(swUrl)\r\n .then(response => {\r\n // Ensure service worker exists, and that we really are getting a JS file.\r\n if (\r\n response.status === 404 ||\r\n response.headers.get('content-type').indexOf('javascript') === -1\r\n ) {\r\n // No service worker found. Probably a different app. Reload the page.\r\n navigator.serviceWorker.ready.then(registration => {\r\n registration.unregister().then(() => {\r\n window.location.reload();\r\n });\r\n });\r\n } else {\r\n // Service worker found. Proceed as normal.\r\n registerValidSW(swUrl);\r\n }\r\n })\r\n .catch(() => {\r\n console.log(\r\n 'No internet connection found. App is running in offline mode.'\r\n );\r\n });\r\n}\r\n\r\nexport function unregister () {\r\n if ('serviceWorker' in navigator) {\r\n navigator.serviceWorker.ready.then(registration => {\r\n registration.unregister();\r\n });\r\n }\r\n}\r\n","import 'react-app-polyfill/ie11';\r\nimport 'react-app-polyfill/stable';\r\nimport 'bootstrap/dist/css/bootstrap.css';\r\nimport React from 'react';\r\nimport ReactDOM from 'react-dom';\r\nimport { BrowserRouter } from 'react-router-dom';\r\nimport App from './App';\r\nimport { unregister } from './registerServiceWorker';\r\n\r\nconst baseUrl = document.getElementsByTagName('base')[0].getAttribute('href');\r\nconst rootElement = document.getElementById('root');\r\n\r\nReactDOM.render(\r\n \r\n \r\n ,\r\n rootElement);\r\n\r\nunregister();\r\n\r\n"],"sourceRoot":""}