{"version":3,"sources":["Constants.js","components/selectParkingZoneView.js","components/confirmedView.js","components/alreadyTaken.js","components/visitorPass.js","routers.js","i18n.js","serviceWorker.js","index.js","assets/images/logo_white.svg","assets/images/clock.svg"],"names":["config","url","API_URL","SelectParkingZone","props","useTranslation","t","className","src","require","alt","zoneQuery","sheetData","Visitor","Pass","RequiredFieldsPartA","submitted","visitorPassResponse","ipark_out","r","purchasedConsecutive","purchasedThreeTimes","RegisterForFreeLabel","freeHours","FreeParking","ZoneName","currentZone","name","ParkingZone","id","size","onChange","e","onZoneChange","target","value","required","Object","keys","zoneList","map","prop","key","ParkingOptions","option","x","type","checked","optionCode","formData","handleChange","htmlFor","style","marginTop","EnterYourPlate","placeholder","PlateNumber","PlateNo","undefined","onClick","clearPlateNo","color","PlateRequired","autoFocus","disabled","parkingOption","onSubmit","Submit","resetForm","Clear","href","Date","getFullYear","AllRightReserved","ConfirmedView","convertStartDateFormat","startDate","toLocaleString","convertEndDateFormat","endtDate","endDate","FreeRegConfirmed","Hours","FreeRegValidFrom","StartTime","EndTime","Plate","visitorPassModel","Zone","visitorPassConfirmation","IssuedAt","Reset","AlreadyTakenView","convertDateFormat","console","log","expireDate","FreeRegAlreadyUsedPartA","textDecoration","FreeRegAlreadyUsedPartB","isFreeHourExpired","YourFreePakingExpiresAt","YourFreePakingExpiredAt","DownloadBlinkayForEase","isIOS","DownloadBlinkayButton","moment","VisitorPass","state","showConfirmation","showForm","isAlreadyTaken","ZoneCode","String","parkingOptionList","installationList","currentParkingOption","ParkingOption","ZoneId","userLanguage","userLang","navigator","language","this","setState","getAllZones","getAllInstallations","getGoogleSheetData","Papa","parse","download","header","complete","res","result","mapLanguages","data","languageData","languageArray","forEach","item","split","savedPlateNo","localStorage","getItem","form","JSON","axios","get","then","response","zones","match","params","filteredZoneCode","filter","zoneCode","length","history","push","getAllOptions","options","newCurrentParkingOption","slice","test","zoneId","hours","installations","filterOptions","event","obj","find","parkings","parkingPurchase","i","date","subtract","format","findDate","plate","reduce","acc","o","parseInt","checkLocalParkings","findRate","grp_id","setItem","stringify","selectedZone","amountSteps","ipark_in","ins_id","installationId","installationCode","lic_pla","tar_id","amou_off","prov","vers","ah","amountStepsReq","post","headers","convertIntoHours","t_min","d_init","tz","d_min","passConfirmation","CNo","RemainingVisitors","device","getMobileOperatingSystem","d_max","currentDate","seconds","getTime","success","window","location","reload","userAgent","vendor","MSStream","React","Component","Routers","path","component","exact","from","to","order","lookupQuerystring","lookupCookie","lookupLocalStorage","lookupFromPathIndex","lookupFromSubdomainIndex","caches","excludeCacheFor","cookieMinutes","cookieDomain","htmlTag","document","documentElement","checkWhitelist","i18n","use","Backend","LanguageDetector","initReactI18next","init","fallbackLng","debug","whitelist","detection","interpolation","escapeValue","Boolean","hostname","ReactDOM","render","fallback","getElementById","serviceWorker","ready","registration","unregister","module","exports"],"mappings":"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","file":"static/js/main.f12a263f.chunk.js","sourcesContent":["const prod = {\r\n url: {\r\n API_URL: 'https://vp-api.blinkay.app/api/zoneoptions' \r\n }\r\n};\r\nconst dev = {\r\n url: {\r\n API_URL: 'https://vp-api.blinkay.app/api/zoneoptions' \r\n // API_URL: 'https://localhost:44386/api/zoneoptions'\r\n }\r\n};\r\n\r\nexport const config = process.env.NODE_ENV === \"development\" ? dev : prod;","import React from \"react\";\r\nimport { useTranslation } from 'react-i18next';\r\n\r\nexport default function SelectParkingZone(props) { \r\n const { t } = useTranslation(); \r\n return( \r\n
\r\n
\r\n
\r\n
\r\n
\"\"/
\r\n {!props.zoneQuery &&
\r\n

{props.sheetData.Visitor} {props.sheetData.Pass}

\r\n

\r\n {props.sheetData.RequiredFieldsPartA} (*) {props.sheetData.RequiredFieldsPartA}\r\n

\r\n {props.submitted === true && props.visitorPassResponse && props.visitorPassResponse.ipark_out.r !== '1' &&
\r\n Some error occured while registration, please try again.\r\n
}\r\n {props.purchasedConsecutive === true &&
\r\n {props.sheetData.purchasedThreeTimes}\r\n
}\r\n
}\r\n {props.zoneQuery &&
\r\n {/*

{props.sheetData.Visitor} {props.sheetData.Pass}

*/}\r\n

{props.sheetData.RegisterForFreeLabel} {props.freeHours} {props.sheetData.FreeParking}

\r\n {props.purchasedConsecutive === true &&
\r\n {props.sheetData.purchasedThreeTimes}\r\n
}\r\n
\r\n {props.sheetData.ZoneName} {props.currentZone[0].name}\r\n
}\r\n

\r\n
\r\n {!props.zoneQuery &&
\r\n \r\n \r\n
}\r\n
\r\n
\r\n \r\n
\r\n {props.option.map(x=>{\r\n return(\r\n
\r\n
\r\n {props.handleChange(e)}} required>\r\n \r\n
\r\n
\r\n )\r\n })}\r\n
\r\n
\r\n \r\n {!props.zoneQuery &&
\r\n {props.handleChange(e)}} required>\r\n {props.formData.PlateNo !== \"\" && props.formData.PlateNo !== undefined && }\r\n {props.formData.PlateNo == \"\" &&
\r\n
{props.sheetData.PlateRequired}
\r\n
}\r\n
}\r\n {props.zoneQuery &&
\r\n {props.handleChange(e)}} autoFocus required>\r\n {props.formData.PlateNo !== \"\" && props.formData.PlateNo !== undefined && }\r\n {props.formData.PlateNo == \"\" &&
\r\n
{props.sheetData.PlateRequired}
\r\n
}\r\n
}\r\n
\r\n {!props.zoneQuery &&
\r\n \r\n \r\n\r\n
}\r\n {props.zoneQuery &&
\r\n \r\n
}\r\n
\r\n
© Blinkay {(new Date().getFullYear())}. {props.sheetData.AllRightReserved}
\r\n
\r\n
\r\n
\r\n
\r\n )\r\n}","import React from \"react\";\r\nimport { useTranslation } from 'react-i18next';\r\n\r\nexport default function ConfirmedView(props) { \r\n var convertStartDateFormat = props.startDate;\r\n var startDate = (new Date(convertStartDateFormat)).toLocaleString(); \r\n var convertEndDateFormat = props.endtDate;\r\n var endDate = (new Date(convertEndDateFormat)).toLocaleString(); \r\n return(\r\n
\r\n
\r\n
\r\n
\r\n
\"\"/
\r\n
\r\n
\r\n
{props.sheetData.FreeRegConfirmed} {props.freeHours} {props.sheetData.Hours}
\r\n
\"\"/{props.sheetData.FreeRegValidFrom}
\r\n
\r\n {props.sheetData.StartTime} { startDate }\r\n {props.sheetData.EndTime} { endDate }\r\n
\r\n
\r\n

{props.sheetData.Plate} {props.visitorPassModel.PlateNo}

\r\n

{props.sheetData.Zone} {props.visitorPassConfirmation.ParkingZone}

\r\n

{props.sheetData.IssuedAt} { startDate }

\r\n
\r\n
\r\n \r\n
\r\n
\r\n
© Blinkay {(new Date().getFullYear())}. {props.sheetData.AllRightReserved}
\r\n
\r\n
\r\n
\r\n
\r\n )\r\n}","import React from \"react\";\r\nimport { useTranslation } from 'react-i18next';\r\n\r\nexport default function AlreadyTakenView(props) {\r\n var convertDateFormat = props.startDate\r\n console.log(convertDateFormat)\r\n var expireDate = (new Date(convertDateFormat)).toLocaleString(); \r\n return(\r\n
\r\n
\r\n
\r\n
\r\n
\"\"/
\r\n
\r\n
\r\n
\r\n {props.sheetData.FreeRegAlreadyUsedPartA} {props.visitorPassModel.PlateNo} {props.sheetData.FreeRegAlreadyUsedPartB}\r\n
\r\n
\"\"/\r\n {!props.isFreeHourExpired && \r\n {props.sheetData.YourFreePakingExpiresAt}\r\n }\r\n {props.isFreeHourExpired && \r\n {props.sheetData.YourFreePakingExpiredAt}\r\n }\r\n
\r\n
\r\n \r\n {expireDate} \r\n \r\n
\r\n
\r\n

{props.sheetData.Zone} {props.visitorPassConfirmation.ParkingZone}

\r\n

{props.sheetData.DownloadBlinkayForEase}

\r\n
\r\n
\r\n \r\n
\r\n \r\n
\r\n
\r\n
\r\n
© Blinkay {(new Date().getFullYear())}. {props.sheetData.AllRightReserved}
\r\n
\r\n
\r\n
\r\n
\r\n ) \r\n}","import React from 'react';\r\nimport {config} from '../Constants';\r\nimport SelectParkingZone from './selectParkingZoneView';\r\nimport ConfirmedView from './confirmedView';\r\nimport AlreadyTakenView from './alreadyTaken';\r\nimport axios from 'axios';\r\nimport Papa from 'papaparse'\r\n// import moment from \"moment\"\r\nconst moment = require('moment-timezone');\r\n\r\nexport default class VisitorPass extends React.Component{\r\n \r\n constructor(){\r\n super();\r\n this.state = { \r\n API_URL : config.url.API_URL,\r\n submitted : false,\r\n showConfirmation : false,\r\n showForm : false,\r\n isAlreadyTaken : false,\r\n isFreeHourExpired : false,\r\n isIOS : false,\r\n freeHours : '',\r\n startDate : Date,\r\n endtDate : Date,\r\n ZoneCode : String,\r\n zoneQuery : false,\r\n zoneList : [],\r\n currentZone : [],\r\n parkingOptionList : [],\r\n installationList : [],\r\n visitorPassResponse : '',\r\n currentParkingOption : [],\r\n ParkingOption : [],\r\n visitorPassConfirmation :{},\r\n ZoneId : '',\r\n PlateNumber : '',\r\n formData : {},\r\n sheetData: {},\r\n userLanguage : '',\r\n purchasedConsecutive: false\r\n }\r\n }\r\n \r\n\r\n componentDidMount(){ \r\n var userLang = navigator.language || navigator.userLanguage; \r\n this.setState({userLanguage : userLang})\r\n \r\n this.getAllZones(); \r\n this.getAllInstallations(); \r\n // this.getLocalData(); \r\n this.getGoogleSheetData();\r\n }\r\n\r\n getGoogleSheetData(){\r\n Papa.parse(\"https://docs.google.com/spreadsheets/d/19v2WbZtUApzDHlE-fkjPPe5RJ9tVUzSfF0EmhAh8-pQ/pub?gid=1655665746&output=csv\", {\r\n download: true,\r\n header: true,\r\n complete: (res) => {\r\n let result = this.mapLanguages(this.state.userLanguage, res.data);\r\n this.setState({sheetData : result}, ()=>{console.log(this.state.sheetData)})\r\n },\r\n });\r\n // axios.get(\"https://sheet.best/api/sheets/135a1d49-6321-484e-b93e-e00287b52292/tabs/English\").then((res)=>{\r\n // console.log(res);\r\n // let result = this.mapLanguages(this.state.userLanguage, res.data);\r\n // this.setState({sheetData : result}, ()=>{console.log(this.state.sheetData)})\r\n // })\r\n // Tabletop.init({\r\n // key: 'https://docs.google.com/spreadsheets/d/19v2WbZtUApzDHlE-fkjPPe5RJ9tVUzSfF0EmhAh8-pQ/edit?usp=sharing',\r\n // callback: googleData => { \r\n // let result = this.mapLanguages(this.state.userLanguage, googleData.English.elements);\r\n // console.log(googleData.English.elements)\r\n // this.setState({sheetData : result}, ()=>{console.log(this.state.sheetData)})\r\n // },\r\n // simpleSheet: false\r\n // })\r\n }\r\n\r\n mapLanguages(language, languageData){\r\n let languageArray = [];\r\n languageData.forEach((item)=>{ \r\n if(item[language] !== undefined || item[language.split('-')[0]] !== undefined){\r\n languageArray[item.key] = item[language] || item[language.split('-')[0]];\r\n }else{\r\n languageArray[item.key] = item['en'];\r\n }\r\n })\r\n return languageArray;\r\n }\r\n\r\n getLocalData(){\r\n let savedPlateNo = localStorage.getItem('vpp-PlateNo');\r\n savedPlateNo = JSON.parse(savedPlateNo);\r\n let form = {\r\n PlateNo : savedPlateNo\r\n }\r\n this.setState({\r\n formData : form\r\n })\r\n }\r\n\r\n getAllZones(){ \r\n axios.get(this.state.API_URL+'/GetAllParkingZones')\r\n .then(response => {\r\n this.setState({\r\n zoneList : response.data.zones,\r\n ZoneId : response.data.zones[0].id\r\n })\r\n let ZoneCode = this.props.match.params.id;\r\n let filteredZoneCode = this.state.zoneList.filter(x=>x.zoneCode === ZoneCode);\r\n if(ZoneCode && filteredZoneCode.length === 0){\r\n this.props.history.push('/')\r\n }\r\n else if(ZoneCode && filteredZoneCode.length > 0){\r\n this.setState({zoneQuery : true, currentZone : filteredZoneCode})\r\n this.setState({\r\n ZoneId : this.state.currentZone[0].id,\r\n }) \r\n } \r\n this.getAllOptions();\r\n });\r\n }\r\n\r\n getAllOptions(){\r\n axios.get(this.state.API_URL+'/GetAllParkingOptions')\r\n .then(response => {\r\n this.setState({parkingOptionList : response.data.options})\r\n var newCurrentParkingOption = this.state.currentParkingOption.slice();\r\n newCurrentParkingOption.push(this.state.parkingOptionList[0]);\r\n this.setState({\r\n currentParkingOption : newCurrentParkingOption,\r\n ParkingOption : newCurrentParkingOption[0].id,\r\n formData : {parkingOption: newCurrentParkingOption[0].optionCode}\r\n })\r\n let ZoneCode = this.props.match.params.id;\r\n let filteredZoneCode = this.state.zoneList.filter(x=>x.zoneCode === ZoneCode);\r\n if(ZoneCode && filteredZoneCode.length === 0){\r\n this.props.history.push('/')\r\n }else if(ZoneCode && filteredZoneCode.length > 0){\r\n let test = this.state.zoneList.filter(x=>x.zoneCode === ZoneCode);\r\n let options = this.state.parkingOptionList.filter(x=>x.zoneId === test[0].id);\r\n this.setState({\r\n currentParkingOption : options,\r\n ParkingOption : options[0].id,\r\n formData : {parkingOption: options[0].optionCode},\r\n freeHours : options[0].hours\r\n }) \r\n }\r\n this.setState({\r\n showForm : true\r\n }) \r\n });\r\n }\r\n\r\n getAllInstallations(){\r\n axios.get(this.state.API_URL+'/GetAllInstallations')\r\n .then(response => {\r\n this.setState({\r\n installationList : response.data.installations\r\n }) \r\n });\r\n }\r\n \r\n onZoneChange(value){ \r\n let filterOptions = this.state.parkingOptionList.filter(x=>x.zoneId == value);\r\n this.setState({ParkingOption : -1}); \r\n this.setState({\r\n currentParkingOption : filterOptions,\r\n ZoneId : filterOptions[0].zoneId,\r\n formData : {parkingOption: filterOptions[0].optionCode}\r\n }, () => {\r\n console.log(this.state.currentParkingOption,this.state.ZoneId);\r\n }); \r\n }\r\n\r\n handleChange(event, obj){\r\n console.log(event.target.value);\r\n let form = this.state.formData;\r\n form[event.target.name] = event.target.name == 'parkingOption' ? \r\n this.state.parkingOptionList.find(x=>x.id == event.target.value).optionCode : event.target.value;\r\n this.setState({\r\n formData : form\r\n },()=>{console.log(this.state.formData)});\r\n if(event.target.name == 'parkingOption'){\r\n let hours = this.state.parkingOptionList.find(x=>x.id == event.target.value).hours;\r\n console.log(hours)\r\n this.setState({\r\n freeHours : hours\r\n });\r\n }\r\n }\r\n\r\n checkLocalParkings(){\r\n let parkings = JSON.parse(localStorage.getItem('parkings')) || [];\r\n let parkingPurchase = [];\r\n for(let i = 1; i < 4; i++){\r\n let date = moment(new Date()).subtract(i, 'd').format(\"DDMMYYYY\")\r\n let findDate = parkings.find(x=> x.date == date && x.plate == this.state.formData['PlateNo'])\r\n if(findDate){\r\n parkingPurchase.push(findDate)\r\n }\r\n }\r\n console.log(parkingPurchase)\r\n console.log(parkingPurchase.reduce((acc, o) => acc + parseInt(o.hours), 0))\r\n if(parkingPurchase.reduce((acc, o) => acc + parseInt(o.hours), 0) >= 72){\r\n this.setState({purchasedConsecutive : true})\r\n return true;\r\n }\r\n }\r\n\r\n onSubmit() {\r\n console.log('submit')\r\n if(this.checkLocalParkings()){\r\n return;\r\n }\r\n // return;\r\n let findRate = this.state.parkingOptionList.find(x=>x.optionCode == this.state.formData.parkingOption)\r\n let parkings = JSON.parse(localStorage.getItem('parkings')) || [];\r\n parkings.push({\r\n plate: this.state.formData['PlateNo'],\r\n date: moment(new Date()).format(\"DDMMYYYY\"),\r\n hours: findRate.hours,\r\n grp_id: this.state.zoneList.find(x => x.id == this.state.ZoneId).zoneCode,\r\n })\r\n localStorage.setItem('parkings', JSON.stringify(parkings));\r\n this.setState({submitted: true})\r\n if(this.state.zoneQuery == true){\r\n this.setState({ParkingOption : this.state.currentParkingOption[0].id})\r\n }else if(!this.state.zoneQuery){\r\n this.setState({ParkingOption : this.state.currentParkingOption[0].id})\r\n }\r\n if (this.state.ParkingOption === -1 || this.state.ZoneId == undefined || this.state.ZoneId == null) {\r\n return;\r\n }\r\n let selectedOption = this.state.currentParkingOption.filter(x=>x.id == this.state.ParkingOption);\r\n let selectedZone = this.state.zoneList.filter(x => x.id == this.state.ZoneId);\r\n let installation = this.state.installationList.filter(x => x.id == selectedZone[0].installationId)\r\n const iParkIn = {\r\n ins_id: installation[0].installationCode,\r\n lic_pla: this.state.formData['PlateNo'],\r\n date: moment(new Date()).format(\"HHmmssDDMMYYYY\"),\r\n grp_id: selectedZone[0].zoneCode,\r\n tar_id: this.state.formData.parkingOption,\r\n amou_off: \"5\",\r\n prov: \"VISITOR_PASS\",\r\n vers: \"1.0\",\r\n ah:\"\"\r\n }\r\n\r\n const amountSteps = {\r\n ipark_in: iParkIn\r\n }\r\n\r\n const headerOptions = { 'Content-Type': 'application/json' };\r\n const amountStepsReq = JSON.stringify(amountSteps);\r\n\r\n axios.post(this.state.API_URL+'/SubmitVisitorPass', amountStepsReq, {headers: headerOptions})\r\n .then(result => { \r\n this.setState({visitorPassResponse : result.data})\r\n var freeMinutes = this.state.visitorPassResponse.ipark_out.t_min;\r\n var convertIntoHours = freeMinutes/60;\r\n this.setState({freeHours : convertIntoHours})\r\n if(this.state.visitorPassResponse.ipark_out.r == \"1\"){\r\n this.setState({showConfirmation : true})\r\n if(this.state.visitorPassResponse.ipark_out.t_min != \"0\"){\r\n var d_init = moment(this.state.visitorPassResponse.ipark_out.d_init, \"MM/DD/YYYY hh:mm:ss a\").tz('America/New_York').format('\"MM/DD/YYYY hh:mm:ss a\"');\r\n var d_min = moment(this.state.visitorPassResponse.ipark_out.d_min, \"MM/DD/YYYY hh:mm:ss a\").tz('America/New_York').format('\"MM/DD/YYYY hh:mm:ss a\"');\r\n this.setState({startDate : d_init,endtDate : d_min})\r\n let hours = parseInt(this.state.visitorPassResponse.ipark_out.t_min)/60; \r\n let passConfirmation = {\r\n CNo : \"CN000001\",\r\n Hours : hours,\r\n RemainingVisitors : 2,\r\n ParkingZone : selectedZone[0].name,\r\n ZoneCode : selectedZone[0].zoneCode\r\n }\r\n this.setState({\r\n visitorPassConfirmation : passConfirmation,\r\n }) \r\n }else{\r\n let device = this.getMobileOperatingSystem();\r\n if(device == \"iOS\"){\r\n this.isIOS = true;\r\n }else{\r\n this.isIOS = false;\r\n }\r\n this.setState({isAlreadyTaken : true})\r\n this.setState({startDate : moment(this.state.visitorPassResponse.ipark_out.d_min, \"MM/DD/YYYY hh:mm:ss a\").tz('America/New_York').format('\"MM/DD/YYYY hh:mm:ss a\"')})\r\n this.setState({endtDate : moment(this.state.visitorPassResponse.ipark_out.d_max, \"MM/DD/YYYY hh:mm:ss a\").tz('America/New_York').format('\"MM/DD/YYYY hh:mm:ss a\"')})\r\n let passConfirmation = {\r\n ParkingZone : selectedZone[0].name,\r\n ZoneCode : selectedZone[0].zoneCode\r\n }\r\n this.setState({\r\n visitorPassConfirmation : passConfirmation\r\n })\r\n\r\n let currentDate = new Date();\r\n let sd = new Date(this.state.startDate);\r\n let seconds = (sd.getTime() - currentDate.getTime()) / 1000;\r\n if(seconds > 0){\r\n this.isFreeHourExpired = false;\r\n }else{\r\n this.isFreeHourExpired = true;\r\n }\r\n }\r\n\r\n }\r\n else{\r\n let passConfirmation = {\r\n success : false\r\n }\r\n this.setState({visitorPassResponse : passConfirmation})\r\n }\r\n });\r\n localStorage.setItem('vpp-PlateNo',JSON.stringify(this.state.formData['PlateNo'])) \r\n }\r\n\r\n resetForm() {\r\n window.location.reload();\r\n }\r\n\r\n clearPlateNo(e){\r\n let form = {\r\n parkingOption : this.state.formData['parkingOption'],\r\n PlateNo : \"\"\r\n }\r\n this.setState({\r\n formData : form\r\n })\r\n }\r\n\r\n getMobileOperatingSystem() {\r\n var userAgent = navigator.userAgent || navigator.vendor;// || window.opera;\r\n \r\n // Windows Phone must come first because its UA also contains \"Android\"\r\n if (/windows phone/i.test(userAgent)) {\r\n return \"Windows\";\r\n }\r\n \r\n if (/android/i.test(userAgent)) {\r\n return \"Android\";\r\n }\r\n \r\n // iOS detection from: http://stackoverflow.com/a/9039885/177710\r\n if (/iPad|iPhone|iPod/.test(userAgent) && !window.MSStream) {\r\n this.setState({isIOS : true})\r\n return \"iOS\";\r\n }\r\n \r\n return \"unknown\";\r\n }\r\n\r\n render(){ \r\n return( \r\n
\r\n {(this.state.showForm && !this.state.showConfirmation) && {this.onZoneChange(e)}}\r\n handleChange={(e)=>{this.handleChange(e)}} formData = {this.state.formData} onSubmit = {()=>{this.onSubmit()}}\r\n resetForm = {()=>{this.resetForm()}} clearPlateNo = {()=>{this.clearPlateNo()}}\r\n sheetData = {this.state.sheetData} purchasedConsecutive={this.state.purchasedConsecutive}/>}\r\n\r\n {this.state.showConfirmation && !this.state.isAlreadyTaken && \r\n {this.resetForm()}}\r\n />}\r\n\r\n {(this.state.showConfirmation && this.state.isAlreadyTaken) && \r\n {this.resetForm()}}\r\n />}\r\n
\r\n )\r\n }\r\n}\r\n","import React from 'react';\nimport { Route, Switch, Redirect } from \"react-router-dom\";\nimport VisitorPass from './components/visitorPass';\n\nfunction Routers() { \n return (\n \n
\n \n \n \n \n \n
\n );\n}\n\nexport default Routers;\n","import i18n from 'i18next';\nimport Backend from 'i18next-xhr-backend';\nimport LanguageDetector from 'i18next-browser-languagedetector';\nimport { initReactI18next } from 'react-i18next';\n\nconst fallbackLng = ['en'];\nconst availableLanguages = ['en', 'fr'];\n\n\nconst options = {\n // order and from where user language should be detected\n order: [ 'navigator', 'htmlTag', 'path', 'subdomain'],\n\n // keys or params to lookup language from\n lookupQuerystring: 'lng',\n lookupCookie: 'i18next',\n lookupLocalStorage: 'i18nextLng',\n lookupFromPathIndex: 0,\n lookupFromSubdomainIndex: 0,\n\n // cache user language on\n caches: ['localStorage', 'cookie'],\n excludeCacheFor: ['cimode'], // languages to not persist (cookie, localStorage)\n\n // optional expire and domain for set cookie\n cookieMinutes: 10,\n cookieDomain: 'myDomain',\n\n // optional htmlTag with lang attribute, the default is:\n htmlTag: document.documentElement,\n\n // only detect languages that are in the whitelist\n checkWhitelist: true\n}\n\ni18n\n .use(Backend) // load translation using xhr -> see /public/locales. We will add locales in the next step\n\n .use(LanguageDetector) // detect user language\n\n .use(initReactI18next) // pass the i18n instance to react-i18next.\n\n .init({\n fallbackLng, // if user computer language is not on the list of available languages, than we will be using the fallback language specified earlier\n debug: true,\n whitelist: availableLanguages,\n detection: options,\n\n interpolation: {\n escapeValue: false\n },\n });\n\nexport default i18n;","// This optional code is used to register a service worker.\n// register() is not called by default.\n\n// This lets the app load faster on subsequent visits in production, and gives\n// it offline capabilities. However, it also means that developers (and users)\n// will only see deployed updates on subsequent visits to a page, after all the\n// existing tabs open on the page have been closed, since previously cached\n// resources are updated in the background.\n\n// To learn more about the benefits of this model and instructions on how to\n// opt-in, read https://bit.ly/CRA-PWA\n\nconst isLocalhost = Boolean(\n window.location.hostname === 'localhost' ||\n // [::1] is the IPv6 localhost address.\n window.location.hostname === '[::1]' ||\n // 127.0.0.1/8 is considered localhost for IPv4.\n window.location.hostname.match(\n /^127(?:\\.(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)){3}$/\n )\n);\n\nexport function register(config) {\n if (process.env.NODE_ENV === 'production' && 'serviceWorker' in navigator) {\n // The URL constructor is available in all browsers that support SW.\n const publicUrl = new URL(process.env.PUBLIC_URL, window.location.href);\n if (publicUrl.origin !== window.location.origin) {\n // Our service worker won't work if PUBLIC_URL is on a different origin\n // from what our page is served on. This might happen if a CDN is used to\n // serve assets; see https://github.com/facebook/create-react-app/issues/2374\n return;\n }\n\n window.addEventListener('load', () => {\n const swUrl = `${process.env.PUBLIC_URL}/service-worker.js`;\n\n if (isLocalhost) {\n // This is running on localhost. Let's check if a service worker still exists or not.\n checkValidServiceWorker(swUrl, config);\n\n // Add some additional logging to localhost, pointing developers to the\n // service worker/PWA documentation.\n navigator.serviceWorker.ready.then(() => {\n console.log(\n 'This web app is being served cache-first by a service ' +\n 'worker. To learn more, visit https://bit.ly/CRA-PWA'\n );\n });\n } else {\n // Is not localhost. Just register service worker\n registerValidSW(swUrl, config);\n }\n });\n }\n}\n\nfunction registerValidSW(swUrl, config) {\n navigator.serviceWorker\n .register(swUrl)\n .then(registration => {\n registration.onupdatefound = () => {\n const installingWorker = registration.installing;\n if (installingWorker == null) {\n return;\n }\n installingWorker.onstatechange = () => {\n if (installingWorker.state === 'installed') {\n if (navigator.serviceWorker.controller) {\n // At this point, the updated precached content has been fetched,\n // but the previous service worker will still serve the older\n // content until all client tabs are closed.\n console.log(\n 'New content is available and will be used when all ' +\n 'tabs for this page are closed. See https://bit.ly/CRA-PWA.'\n );\n\n // Execute callback\n if (config && config.onUpdate) {\n config.onUpdate(registration);\n }\n } else {\n // At this point, everything has been precached.\n // It's the perfect time to display a\n // \"Content is cached for offline use.\" message.\n console.log('Content is cached for offline use.');\n\n // Execute callback\n if (config && config.onSuccess) {\n config.onSuccess(registration);\n }\n }\n }\n };\n };\n })\n .catch(error => {\n console.error('Error during service worker registration:', error);\n });\n}\n\nfunction checkValidServiceWorker(swUrl, config) {\n // Check if the service worker can be found. If it can't reload the page.\n fetch(swUrl)\n .then(response => {\n // Ensure service worker exists, and that we really are getting a JS file.\n const contentType = response.headers.get('content-type');\n if (\n response.status === 404 ||\n (contentType != null && contentType.indexOf('javascript') === -1)\n ) {\n // No service worker found. Probably a different app. Reload the page.\n navigator.serviceWorker.ready.then(registration => {\n registration.unregister().then(() => {\n window.location.reload();\n });\n });\n } else {\n // Service worker found. Proceed as normal.\n registerValidSW(swUrl, config);\n }\n })\n .catch(() => {\n console.log(\n 'No internet connection found. App is running in offline mode.'\n );\n });\n}\n\nexport function unregister() {\n if ('serviceWorker' in navigator) {\n navigator.serviceWorker.ready.then(registration => {\n registration.unregister();\n });\n }\n}\n","import React, { Suspense } from 'react';\nimport { BrowserRouter} from 'react-router-dom';\nimport ReactDOM from 'react-dom';\nimport './assets/css/main.css';\nimport './assets/css/bootstrap.min.css';\nimport Routers from './routers';\n\nimport './i18n';\n\nimport * as serviceWorker from './serviceWorker';\n\nReactDOM.render(\n Loading)}>\n \n \n \n \n , document.getElementById('root'));\nserviceWorker.unregister();\n","module.exports = __webpack_public_path__ + \"static/media/logo_white.2f69da5c.svg\";","module.exports = __webpack_public_path__ + \"static/media/clock.b74e007b.svg\";"],"sourceRoot":""}