{"version":3,"file":"static/chunks/9420.fa90e46121a4c2b5.js","mappings":"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","sources":["webpack://_N_E/./utils/debounce.js","webpack://_N_E/./components/Outage/Outage.js","webpack://_N_E/./components/Outage/index.js","webpack://_N_E/./components/Spinner/Spinner.js","webpack://_N_E/./components/Spinner/index.js","webpack://_N_E/./components/Outage/Outage.module.scss","webpack://_N_E/./components/Spinner/Spinner.module.scss"],"sourcesContent":["export const debounce = (fn, delay) => {\n let timerId;\n return (...args) => {\n clearTimeout(timerId);\n timerId = setTimeout(() => fn(...args), delay);\n };\n};\n","import React, { useState, useEffect } from 'react';\nimport { debounce } from '../../utils/debounce';\nimport { useTranslation } from 'next-i18next';\nimport axios from 'axios';\n\nimport Spinner from '../Spinner';\nimport styles from './Outage.module.scss';\n\nconst Outage = ({hideOngoingPlanned}) => {\n const [results, setResults] = useState({\n ongoing: [],\n planned: [],\n historic: [],\n historicLatest: [],\n });\n const [isLoading, setIsLoading] = useState(true);\n const [hasError, setError] = useState(false);\n\n const { t } = useTranslation();\n\n useEffect(() => {\n loadOptions();\n debounceLoadOptions();\n }, []);\n\n const loadOptions = () => {\n axios({\n method: 'GET',\n url: `/api/outage`,\n headers: {\n Accept: 'application/json',\n },\n })\n .then((response) => {\n setIsLoading(false);\n handleResult(response.data.result.result);\n\n setError(false);\n })\n .catch((error) => {\n setError(true);\n console.log(error.message);\n });\n };\n\n const sortByDate = (array, order) => {\n array.sort(function (a, b) {\n if (order === 'ascending') {\n return (\n new Date(a.startDate).getTime() -\n new Date(b.startDate).getTime()\n );\n } else if (order === 'descending') {\n return (\n new Date(b.startDate).getTime() -\n new Date(a.startDate).getTime()\n );\n }\n });\n };\n\n const debounceLoadOptions = debounce(loadOptions, 1000 * 60);\n\n const isOlderThanThirtyDays = (item) => {\n const thirtyDaysInMilliseconds = 30 * 24 * 60 * 60 * 1000;\n const timeDiff =\n new Date().getTime() - new Date(item.startDate).getTime();\n\n return thirtyDaysInMilliseconds <= timeDiff;\n };\n\n const handleResult = (response) => {\n const ongoing = response.filter((item) => {\n return item.statusDescription === 'Körs';\n });\n\n const planned = response.filter((item) => {\n return item.statusDescription === 'Planerad';\n });\n\n const historic = response.filter((item) => {\n return (\n item.statusDescription === 'Över' &&\n !isOlderThanThirtyDays(item)\n );\n });\n\n const historicLatest = response.filter((item) => {\n return (\n item.statusDescription === 'Över' && isOlderThanThirtyDays(item)\n );\n });\n\n sortByDate(ongoing, 'descending');\n sortByDate(planned, 'ascending');\n sortByDate(historic, 'descending');\n sortByDate(historicLatest, 'descending');\n\n setResults({\n ongoing: ongoing,\n planned: planned,\n historic: historic,\n historicLatest: historicLatest,\n });\n };\n\n const formatDate = (data) => {\n const date = new Date(data);\n\n const formatted = date.toLocaleString('sv-SE', {\n year: 'numeric',\n month: '2-digit',\n day: '2-digit',\n hour: '2-digit',\n minute: '2-digit',\n });\n\n return formatted;\n };\n\n return (\n
\n {isLoading ? (\n \n ) : hasError ? (\n \n ) : (\n \n )}\n
\n );\n};\n\nOutage.propTypes = {};\n\nconst OutageList = ({\n ongoing = [],\n planned = [],\n historic = [],\n historicLatest = [],\n t,\n formatDate,\n hideOngoingPlanned\n}) => {\n return (\n <>\n {!hideOngoingPlanned && (\n <>\n

{t('Outage.ongoing')}

\n {ongoing.length !== 0 ? (\n ongoing.map((item, index) => {\n return (\n \n );\n })\n ) : (\n

\n {t('Outage.ongoingText')}\n

\n )}\n\n

{t('Outage.planned')}

\n {planned.length !== 0 ? (\n planned.map((item, index) => {\n return (\n \n );\n })\n ) : (\n

\n {t('Outage.plannedText')}\n

\n )}\n \n )}\n\n\n

\n {t('Outage.historic')}\n

\n {historic.length !== 0\n ? historic.map((item, index) => {\n return (\n \n );\n })\n : historicLatest.map((item, index) => {\n return (\n index <= 4 && (\n \n )\n );\n })}\n \n );\n};\n\nconst OutageListItem = ({\n address = '',\n description = '',\n concernedSites = '',\n plannedStartDate = null,\n startDate = '',\n endDate = '',\n actiondescription = '',\n statusDescription = '',\n currentCustomersInOutage = null,\n estEndTime = null,\n additionalDescription = '',\n formatDate,\n t,\n}) => {\n const isPlannedOutage = statusDescription === 'Planerad';\n const showAdditionalDescription =\n statusDescription === 'Körs' &&\n currentCustomersInOutage > 0 &&\n plannedStartDate === null &&\n estEndTime === null;\n\n return (\n
    \n
  • \n {address}\n
  • \n
  • \n {t('Outage.reason')}:{' '}\n {description}\n
  • \n
  • \n {t('Outage.affectedCustomers')}:{' '}\n {concernedSites}\n
  • \n
  • \n {t('Outage.startTime')}:{' '}\n \n {formatDate(\n isPlannedOutage && plannedStartDate\n ? plannedStartDate\n : startDate\n )}\n \n
  • \n {!!endDate ? (\n
  • \n {t('Outage.endTime')}:{' '}\n \n {formatDate(endDate)}\n \n
  • \n ) : (\n
  • \n {t('Outage.estimatedEndTime')}:{' '}\n \n {actiondescription}\n \n
  • \n )}\n {showAdditionalDescription && (\n
  • \n {t('Outage.status')}:{' '}\n \n {additionalDescription}\n \n
  • \n )}\n
\n );\n};\n\nexport default Outage;\n","import Outage from './Outage';\n\nexport default Outage;\n","import React from 'react';\nimport { ucFirst } from '../../utils/caseconverters';\nimport classNames from 'classnames';\n\nimport styles from './Spinner.module.scss';\n\nconst Spinner = () => {\n return (\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n );\n};\n\nSpinner.propTypes = {};\n\nexport default Spinner;\n","import Spinner from './Spinner';\n\nexport default Spinner;\n","// extracted by mini-css-extract-plugin\nmodule.exports = {\"Outage__RichText\":\"Outage_Outage__RichText__kK90u\",\"Outage__Heading\":\"Outage_Outage__Heading__ND6wC\",\"Outage__Label\":\"Outage_Outage__Label__Wwz3v\",\"Outage__List\":\"Outage_Outage__List__MaXSs\",\"Outage__Text\":\"Outage_Outage__Text__n0Qpj\",\"Outage__Bold\":\"Outage_Outage__Bold__GQubp\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"Spinner\":\"Spinner_Spinner__9e7Hf\"};"],"names":["debounce","fn","delay","timerId","args","clearTimeout","setTimeout","Outage","hideOngoingPlanned","param","results","setResults","useState","ongoing","planned","historic","historicLatest","isLoading","setIsLoading","hasError","setError","t","useTranslation","useEffect","loadOptions","debounceLoadOptions","axios","method","url","headers","Accept","then","handleResult","response","data","result","catch","console","log","error","message","sortByDate","array","order","sort","a","b","Date","startDate","getTime","isOlderThanThirtyDays","thirtyDaysInMilliseconds","item","filter","statusDescription","jsx_runtime","jsx","div","className","styles","Spinner","dangerouslySetInnerHTML","__html","OutageList","formatDate","date","toLocaleString","year","month","day","hour","minute","propTypes","jsxs","Fragment","h2","length","map","index","OutageListItem","p","address","description","concernedSites","plannedStartDate","endDate","actiondescription","currentCustomersInOutage","estEndTime","additionalDescription","ul","li","span","isPlannedOutage","showAdditionalDescription","components_Outage","components_Spinner","module","exports"],"sourceRoot":""}