{"version":3,"file":"js/TodayPageOpeningHours.bundle.js","mappings":"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","sources":["webpack://rp-majoitus-client/./src/views/TodayPageOpeningHours/Company.js","webpack://rp-majoitus-client/./src/views/TodayPageOpeningHours/TodayPageOpeningHours.js","webpack://rp-majoitus-client/./src/views/TodayPageOpeningHours/index.js"],"sourcesContent":["import React from 'react';\nimport PropTypes from 'prop-types';\n\nconst Company = (props) => {\n // Formats the time. Shows minutes only if they're not zero.\n function formatTime(time) {\n const times = [time.substring(0, 2), time.substring(2, 4)];\n let formattedTime = times[0];\n\n if (times[1] !== '00') {\n formattedTime += `:${times[1]}`;\n }\n\n return formattedTime;\n }\n\n return (\n
\n
\n

\n {props.title}\n

\n

\n {formatTime(props.openingHours.open)}-\n {formatTime(props.openingHours.close)}\n

\n
\n
\n );\n};\n\nCompany.propTypes = {\n title: PropTypes.string,\n website: PropTypes.string,\n openingHours: PropTypes.shape({\n close: PropTypes.string,\n open: PropTypes.string,\n }),\n};\n\nexport default Company;\n","import React from 'react';\n\nimport Company from './Company';\nimport Accordion from '../../components/Accordion';\n\nconst TodayPageOpeningHours = () => {\n const { places } = drupalSettings;\n\n const currentTimeHours = new Date().getHours();\n const currentTimeMinutes = new Date().getMinutes();\n\n async function getCompanyList(companies) {\n const fetchOpeningHours = companies.map((company) =>\n getCompanyInfo(company.nid)\n );\n const companyInfo = await Promise.all(fetchOpeningHours);\n\n const companyListing = companies.map((company, i) => {\n if (\n companyInfo &&\n companyInfo[i].status === 'OK' &&\n companyInfo[i].data.opening_hours\n ) {\n const openingHours = JSON.parse(companyInfo[i].data.opening_hours);\n // Check if the first day returned is actually today\n // Ref: https://jira.exove.net/browse/RMJ-2156\n const firstDayOpeningHours = Object.keys(openingHours)[0];\n const today = new Date().toISOString().split('T')[0];\n if (today !== firstDayOpeningHours) {\n return null;\n }\n\n const todaysOpeningHours = Object.values(openingHours)[0];\n\n let closingTimeHours = parseInt(\n todaysOpeningHours.close.substring(0, 2)\n );\n const closingTimeMinutes = parseInt(\n todaysOpeningHours.close.substring(2, 4)\n );\n\n // We are not interested in closing times between 00 and 06\n // because after midnight we get the new day's hours.\n if (closingTimeHours <= 6 || closingTimeHours === 0) {\n // 0 means 24\n closingTimeHours = 24;\n }\n if (\n closingTimeHours < currentTimeHours ||\n (closingTimeHours === currentTimeHours &&\n closingTimeMinutes <= currentTimeMinutes)\n ) {\n // Closed already\n return null;\n }\n\n return {\n title: company.title,\n openingHours: todaysOpeningHours,\n };\n }\n });\n\n return companyListing\n .filter((company) => company && company !== undefined)\n .sort((a, b) => (a.openingHours.open > b.openingHours.open ? 1 : -1));\n }\n\n async function getCompanyInfo(nid) {\n const response = await fetch(\n `/${drupalSettings.current_language}/api/opening_hours/${nid}`\n );\n\n if (response.ok) {\n const data = await response.json();\n return {\n data,\n status: 'OK',\n };\n } else {\n return { status: 'request failed' };\n }\n }\n\n async function getCompanies() {\n if (!places) {\n return

{Drupal.t('No opening hours to display.')}

;\n }\n\n const companyList = await getCompanyList(places);\n if (companyList) {\n const content = (\n \n );\n return content;\n } else {\n return

{Drupal.t('No opening hours to display.')}

;\n }\n }\n\n return (\n
\n

{Drupal.t('Opening hours')}

\n\n
\n
\n {Drupal.t('Show opening hours')}}\n />\n
\n
\n
\n );\n};\n\nexport default TodayPageOpeningHours;\n","import React from 'react';\nimport ReactDOM from 'react-dom/client';\n\nimport TodayPageOpeningHours from './TodayPageOpeningHours';\n\nconst root = ReactDOM.createRoot(\n document.getElementById('today_page_opening_hours')\n);\n\nroot.render(\n \n \n \n);\n"],"names":["Company","props","formatTime","time","times","substring","formattedTime","concat","React","className","title","openingHours","open","close","propTypes","PropTypes","website","places","drupalSettings","currentTimeHours","Date","getHours","currentTimeMinutes","getMinutes","getCompanyList","_x","_getCompanyList","apply","arguments","_asyncToGenerator","_regeneratorRuntime","_callee","companies","fetchOpeningHours","companyInfo","companyListing","_context","prev","next","map","company","getCompanyInfo","nid","Promise","all","sent","i","status","data","opening_hours","JSON","parse","firstDayOpeningHours","Object","keys","toISOString","split","todaysOpeningHours","values","closingTimeHours","parseInt","closingTimeMinutes","abrupt","filter","undefined","sort","a","b","stop","_x2","_getCompanyInfo","_callee2","response","_context2","fetch","current_language","ok","json","_getCompanies","_callee3","companyList","content","_context3","Drupal","t","length","key","Accordion","fetchContent","ReactDOM","document","getElementById","render","TodayPageOpeningHours"],"sourceRoot":""}