{"version":3,"file":"static/chunks/671-55f37e9a55c4f05a.js","mappings":"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","sources":["webpack://_N_E/./services/computation/computeToDuration.js","webpack://_N_E/./components/analyses/AnalysisPrecision.js","webpack://_N_E/./components/analyses/AnalysisParameters.js","webpack://_N_E/./components/analyses/AnalysisTitle.js","webpack://_N_E/./components/common/CompareScoreChip.js","webpack://_N_E/./components/common/ConfirmDialog.js","webpack://_N_E/./components/common/Status.js","webpack://_N_E/./components/common/TotalScoreConsumption.js","webpack://_N_E/./components/common/TypographyWithIcon.js","webpack://_N_E/./proptypes/analysis.js","webpack://_N_E/./proptypes/milestone.js","webpack://_N_E/./proptypes/milestones.js","webpack://_N_E/./proptypes/project.js","webpack://_N_E/./proptypes/score.js","webpack://_N_E/./services/analyses/status.js","webpack://_N_E/./services/api/scenarios/useScenariosByAnalysisId.js","webpack://_N_E/./services/computation/computeDisplayableCo2g.js","webpack://_N_E/./services/computation/computeMilliWh.js","webpack://_N_E/"],"sourcesContent":["import { formatDistanceStrict } from 'date-fns';\n\n/**\n * Get distance between 2 dates in human-readable format\n *\n * @param {string} start - The start date ISOString\n * @param {string} end - The end date ISOString\n * @returns {string} - The duration in a human-readable format\n */\nexport const computeToDuration = (start, end) => {\n return formatDistanceStrict(new Date(start), new Date(end));\n};\n","import PropTypes from 'prop-types';\nimport { FiMinimize2 } from 'react-icons/fi';\n\nimport useScenariosByAnalysisId from '../../services/api/scenarios/useScenariosByAnalysisId';\nimport TypographyWithIcon from '../common/TypographyWithIcon';\n\nexport const AnalysisPrecision = ({ analysisId }) => {\n const { scenarios } = useScenariosByAnalysisId(analysisId);\n if (!scenarios) return null;\n const precision =\n scenarios.reduce(\n (total, scenario) => total + scenario.precision * scenario.score.wh.total,\n 0\n ) / scenarios.reduce((whTotal, scenario) => whTotal + scenario.score.wh.total, 0);\n return (\n }>\n Precision: {precision.toFixed(2)}%\n \n );\n};\n\nAnalysisPrecision.propTypes = {\n analysisId: PropTypes.any,\n};\n","import { Box } from '@mui/material';\nimport makeStyles from '@mui/styles/makeStyles';\nimport formatDistanceToNow from 'date-fns/formatDistanceToNow';\nimport PropTypes from 'prop-types';\nimport { FiClock, FiFolder, FiGitBranch, FiRepeat } from 'react-icons/fi';\n\nimport AnalysisPropTypes from '../../proptypes/analysis';\nimport { computeToDuration } from '../../services/computation/computeToDuration';\nimport TypographyWithIcon from '../common/TypographyWithIcon';\nimport { AnalysisPrecision } from './AnalysisPrecision';\n\nconst useStyles = makeStyles((theme) => ({\n root: {\n width: '100%',\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'space-between',\n flexDirection: 'row',\n flexWrap: 'wrap',\n '& > *': {\n margin: theme.spacing(1, 0),\n },\n [theme.breakpoints.up('sm')]: {\n flexDirection: 'column',\n alignItems: 'flex-start',\n width: 'auto',\n '& > *': {\n margin: 0,\n },\n },\n },\n}));\n\nconst AnalysisParameters = ({ analysis, expanded }) => {\n const classes = useStyles();\n return (\n \n {analysis.project?.name && (\n } sx={{ maxWidth: '100%' }}>\n {decodeURIComponent(analysis.project.name)}\n \n )}\n {analysis.gitBranchName && (\n } noWrap>\n {analysis.gitBranchName}\n \n )}\n } noWrap>\n {formatDistanceToNow(new Date(analysis.createdAt), {\n addSuffix: true,\n })}\n \n {expanded && (\n <>\n }>\n Samples: {analysis.samples}\n \n {analysis.finishedAt && (\n }>\n Duration:{' '}\n {computeToDuration(\n Date.parse(analysis.createdAt),\n Date.parse(analysis.finishedAt)\n )}\n \n )}\n \n \n )}\n \n );\n};\n\nAnalysisParameters.propTypes = {\n analysis: AnalysisPropTypes,\n expanded: PropTypes.bool,\n};\n\nexport default AnalysisParameters;\n","import { Box, Typography } from '@mui/material';\nimport PropTypes from 'prop-types';\n\nconst AnalysisTitle = ({ incrementalId, gitCommitMessage, variant, projectId }) => {\n return (\n \n {incrementalId && projectId && (\n \n #{incrementalId}\n \n )}\n \n {gitCommitMessage}\n \n \n );\n};\n\nAnalysisTitle.propTypes = {\n incrementalId: PropTypes.number,\n gitCommitMessage: PropTypes.string,\n variant: PropTypes.string,\n projectId: PropTypes.string,\n};\n\nAnalysisTitle.defaultProps = {\n variant: 'h5',\n};\n\nexport default AnalysisTitle;\n","import ArrowDownwardIcon from '@mui/icons-material/ArrowDownward';\nimport ArrowUpwardIcon from '@mui/icons-material/ArrowUpward';\nimport { Box } from '@mui/material';\nimport PropTypes from 'prop-types';\n\nconst CompareScoreChip = ({ score, scoreReference, isCorner }) => {\n const isDifferencePositive = score > scoreReference;\n let scoreDifference = 0;\n if (isDifferencePositive) {\n scoreDifference = Math.round(((score - scoreReference) / scoreReference) * 100);\n } else {\n scoreDifference = Math.round(((scoreReference - score) / scoreReference) * 100);\n }\n\n if (scoreReference < 0.001 || !scoreDifference || isNaN(scoreDifference)) {\n return null;\n }\n return (\n \n isDifferencePositive ? 'error.main' : 'success.main',\n color: () => (isDifferencePositive ? 'white.light' : 'dark.main'),\n borderRadius: () => (isCorner ? '0 0 0 4px' : 8),\n py: '2px',\n px: () => (isCorner ? '4px' : 1),\n maxWidth: '80px',\n fontSize: '0.75rem',\n }}\n >\n {isDifferencePositive ? (\n \n ) : (\n \n )}\n \n {scoreDifference}%\n \n \n );\n};\n\nCompareScoreChip.propTypes = {\n score: PropTypes.number,\n scoreReference: PropTypes.number,\n isCorner: PropTypes.bool,\n};\n\nexport default CompareScoreChip;\n","import { Button, Dialog, DialogActions, DialogContent, DialogTitle } from '@mui/material';\nimport PropTypes from 'prop-types';\n\nconst ConfirmDialog = ({\n open,\n onValidate,\n onCancel,\n title,\n validationText,\n mainSentence,\n softDisplay,\n}) => {\n return (\n \n \n {title ? title : 'Are you sure ?'}\n \n {mainSentence}\n \n \n \n {validationText ? validationText : 'Confirm'}\n \n \n \n );\n};\n\nConfirmDialog.propTypes = {\n open: PropTypes.bool.isRequired,\n onValidate: PropTypes.func.isRequired,\n onCancel: PropTypes.func.isRequired,\n title: PropTypes.string,\n validationText: PropTypes.oneOfType([PropTypes.string, PropTypes.element]),\n mainSentence: PropTypes.element,\n softDisplay: PropTypes.bool,\n};\n\nexport default ConfirmDialog;\n","import DoneIcon from '@mui/icons-material/Done';\nimport ErrorOutlineIcon from '@mui/icons-material/ErrorOutline';\nimport TimerIcon from '@mui/icons-material/Timer';\nimport { Box, Typography } from '@mui/material';\nimport PropTypes from 'prop-types';\n\nimport STATUS from '../../services/analyses/status';\n\nconst iconClasses = {\n fontSize: '1rem',\n};\nconst iconByStatus = {\n finished: ,\n failed: ,\n initial: ,\n};\n\nconst labelByStatus = {\n finished: 'finished',\n failed: 'failed',\n initial: 'running',\n};\n\nconst Status = ({ status }) => {\n return (\n \n {iconByStatus[status]}\n \n {labelByStatus[status]}\n \n \n );\n};\n\nStatus.propTypes = {\n status: PropTypes.string.isRequired,\n};\n\nexport default Status;\n","import BoltIcon from '@mui/icons-material/Bolt';\nimport GroupsIcon from '@mui/icons-material/Groups';\nimport NatureIcon from '@mui/icons-material/Nature';\nimport { Box, Tooltip, Typography } from '@mui/material';\nimport PropTypes from 'prop-types';\n\nimport ScorePropTypes from '../../proptypes/score';\nimport {\n computeDisplayableCo2g,\n computeDisplayableCo2gPerMin,\n computeDisplayableCo2gWithUnit,\n} from '../../services/computation/computeDisplayableCo2g';\nimport { computeMilliWh } from '../../services/computation/computeMilliWh';\nimport CompareScoreChip from './CompareScoreChip';\nimport TypographyWithIcon from './TypographyWithIcon';\n\nconst TotalScoreConsumption = ({\n score,\n scoreReference,\n variant,\n iconFontSize,\n executionCount,\n}) => (\n \n \n \n \n \n }\n variant={variant}\n >\n {computeDisplayableCo2g(score?.co2?.total)} mg eq. CO2\n \n ({computeDisplayableCo2gPerMin(score)} mg/min)\n \n \n \n \n \n }\n variant=\"body\"\n >\n {computeMilliWh(score?.wh?.total)} mWh\n \n {executionCount && (\n \n \n \n }\n variant=\"body\"\n >\n {computeDisplayableCo2gWithUnit(score?.co2?.total, executionCount)}\n eq. CO2 - Estimated visit: {executionCount}\n \n )}\n \n);\n\nTotalScoreConsumption.propTypes = {\n score: ScorePropTypes.isRequired,\n whReference: ScorePropTypes,\n variant: PropTypes.string,\n iconFontSize: PropTypes.string,\n scoreReference: ScorePropTypes,\n executionCount: PropTypes.number,\n};\n\nTotalScoreConsumption.defaultProps = {\n variant: 'h5',\n iconFontSize: 'default',\n};\n\nexport default TotalScoreConsumption;\n","import { Typography } from '@mui/material';\nimport PropTypes from 'prop-types';\nimport React from 'react';\n\nconst classes = {\n ellipsis: {\n textOverflow: 'ellipsis',\n overflow: 'hidden',\n },\n};\n\nconst TypographyWithIcon = React.forwardRef(\n ({ icon, alignItems, children, ...props }, ref) => {\n return (\n \n \n {icon}\n \n {children}\n \n );\n }\n);\n\nTypographyWithIcon.displayName = 'TypographyWithIcon';\n\nTypographyWithIcon.propTypes = {\n icon: PropTypes.element.isRequired,\n children: PropTypes.node.isRequired,\n style: PropTypes.object,\n alignItems: PropTypes.string,\n};\n\nexport default TypographyWithIcon;\n","import PropTypes from 'prop-types';\n\nimport MilestonesPropType from './milestones';\nimport ProjectPropTypes from './project';\nimport ScorePropTypes from './score';\n\nexport default PropTypes.shape({\n id: PropTypes.string,\n status: PropTypes.string,\n url: PropTypes.string,\n date: PropTypes.string,\n threshold: PropTypes.number,\n errorCode: PropTypes.string,\n errorMessage: PropTypes.string,\n milestones: MilestonesPropType,\n score: ScorePropTypes,\n project: ProjectPropTypes,\n statsId: PropTypes.string,\n incrementalId: PropTypes.number,\n pageTitle: PropTypes.string,\n pageScreenshot: PropTypes.string,\n});\n","import PropTypes from 'prop-types';\n\nexport default PropTypes.shape({\n title: PropTypes.string,\n time: PropTypes.number,\n});\n","import PropTypes from 'prop-types';\n\nimport MilestonePropType from './milestone';\n\nexport default PropTypes.arrayOf(MilestonePropType);\n","import PropTypes from 'prop-types';\n\nexport default PropTypes.shape({\n id: PropTypes.string,\n name: PropTypes.string,\n defaultBranch: PropTypes.string,\n});\n","import PropTypes from 'prop-types';\n\nexport default PropTypes.shape({\n s: PropTypes.shape({\n cpu: PropTypes.number,\n screen: PropTypes.number,\n totalTime: PropTypes.number,\n }),\n gb: PropTypes.shape({\n mem: PropTypes.number,\n disk: PropTypes.number,\n network: PropTypes.number,\n }),\n wh: PropTypes.shape({\n cpu: PropTypes.number,\n mem: PropTypes.number,\n disk: PropTypes.number,\n total: PropTypes.number,\n screen: PropTypes.number,\n network: PropTypes.number,\n }),\n co2: PropTypes.shape({\n cpu: PropTypes.number,\n mem: PropTypes.number,\n disk: PropTypes.number,\n total: PropTypes.number,\n screen: PropTypes.number,\n network: PropTypes.number,\n }),\n});\n","module.exports = {\n INITIAL: 'initial',\n FINISHED: 'finished',\n FAILED: 'failed',\n};\n","import useSWR from 'swr';\n\nconst useScenariosByAnalysisId = (analysisId) => {\n const { data, error } = useSWR(\n analysisId ? `/analyses/${analysisId}/scenarios` : null\n );\n return {\n scenarios: data,\n isLoading: !error && !data,\n isError: error,\n };\n};\n\nexport default useScenariosByAnalysisId;\n","/**\n * Converts the CO2 score in grams into a displayable output in milligrams\n *\n * Examples :\n * - computeDisplayableCo2g(0.125111) returns 125\n * - computeDisplayableCo2g(0.125911) returns 126\n * - computeDisplayableCo2g(0.0082591) returns 8.3\n *\n * @param {number} co2g - The CO2 score in grams (g)\n * @returns {number} - The rounded CO2 score in milligrams (mg)\n */\nexport const computeDisplayableCo2g = (co2g) =>\n co2g < 0.01 ? Math.round(co2g * 10000) / 10 : Math.round(co2g * 1000);\n\nexport const computeDisplayableCo2gWithUnit = (co2g, executionCount) => {\n const co2gWithExecutionCount = computeDisplayableCo2g(co2g) * executionCount;\n\n if (co2gWithExecutionCount >= 1e6) {\n return `${Math.round(co2gWithExecutionCount * 1) / 1e6} kg`;\n }\n\n if (co2gWithExecutionCount >= 1000 && co2gWithExecutionCount < 1e6) {\n return `${Math.round(co2gWithExecutionCount * 1) / 1000} g`;\n }\n\n return `${Math.round(co2gWithExecutionCount)} mg`;\n};\n\nexport const computeDisplayableCo2gPerMin = (score) => {\n const totalCo2 = score?.co2?.total;\n const totalDuration = score?.s?.totalTime;\n if (totalCo2 && totalDuration) {\n return computeDisplayableCo2g((totalCo2 / totalDuration) * 60);\n }\n return 0;\n};\n","/**\n * Converts the consumption score in Watt.hour into a displayable output in milliWatt.hour\n *\n * Examples :\n * - computeMilliWh(0.125111) returns 125\n * - computeMilliWh(0.125911) returns 126\n * - computeMilliWh(0.0082591) returns 8.3\n *\n * @param {number} wh - The score in Watt.hour (Wh)\n * @returns {number} - The score in milliWatt.hour (mWh)\n */\nexport const computeMilliWh = (wh) =>\n wh < 0.01 ? Math.round(wh * 10000) / 10 : Math.round(wh * 1000);\n\nexport const computeDisplayableMilliWithUnit = (wh, executionCount) => {\n const mWhWithExecutionCount = computeMilliWh(wh) * executionCount;\n\n if (mWhWithExecutionCount >= 1e6) {\n return `${Math.round(mWhWithExecutionCount * 1) / 1e6} kWh`;\n }\n\n if (mWhWithExecutionCount >= 1000 && mWhWithExecutionCount < 1e6) {\n return `${Math.round(mWhWithExecutionCount * 1) / 1000} Wh`;\n }\n\n return `${Math.round(mWhWithExecutionCount)} mWH`;\n};\n\nexport const computeDisplayableMilliWhPerMin = (score) => {\n const totalMilliWh = score?.wh?.total;\n const totalDuration = score?.s?.totalTime;\n if (totalMilliWh && totalDuration) {\n return computeMilliWh((totalMilliWh / totalDuration) * 60);\n }\n return 0;\n};\n"],"names":["computeToDuration","start","end","formatDistanceStrict","Date","AnalysisPrecision","analysisId","param","scenarios","useScenariosByAnalysisId","precision","reduce","total","scenario","score","wh","whTotal","jsx_runtime","jsxs","TypographyWithIcon","icon","jsx","FiMinimize2","toFixed","propTypes","PropTypes","useStyles","makeStyles","root","width","display","alignItems","justifyContent","flexDirection","flexWrap","margin","theme","spacing","breakpoints","up","AnalysisParameters","analysis","expanded","classes","Box","className","whiteSpace","project","name","FiFolder","sx","maxWidth","decodeURIComponent","gitBranchName","FiGitBranch","noWrap","FiClock","formatDistanceToNow","createdAt","addSuffix","Fragment","FiRepeat","samples","finishedAt","parse","id","AnalysisPropTypes","analyses_AnalysisParameters","AnalysisTitle","incrementalId","gitCommitMessage","variant","projectId","react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__","overflow","Typography","color","marginRight","component","textOverflow","defaultProps","__webpack_exports__","CompareScoreChip","scoreReference","isCorner","isDifferencePositive","scoreDifference","Math","round","isNaN","gap","verticalAlign","backgroundColor","borderRadius","py","px","fontSize","ArrowUpwardIcon","ArrowDownwardIcon","span","style","ConfirmDialog","open","onValidate","onCancel","title","validationText","mainSentence","softDisplay","Dialog","fullWidth","onClose","aria-labelledby","aria-describedby","DialogTitle","DialogContent","DialogActions","Button","onClick","textTransform","iconClasses","iconByStatus","finished","DoneIcon","failed","ErrorOutlineIcon","initial","TimerIcon","labelByStatus","Status","status","minWidth","flex","m","STATUS","TotalScoreConsumption","iconFontSize","executionCount","Tooltip","aria-label","NatureIcon","computeDisplayableCo2g","co2","sub","computeDisplayableCo2gPerMin","BoltIcon","computeMilliWh","GroupsIcon","computeDisplayableCo2gWithUnit","ScorePropTypes","whReference","ellipsis","React","ref","children","props","Object","assign","displayName","url","date","threshold","errorCode","errorMessage","milestones","MilestonesPropType","ProjectPropTypes","statsId","pageTitle","pageScreenshot","milestone","time","MilestonePropType","defaultBranch","s","cpu","screen","totalTime","gb","mem","disk","network","module","exports","INITIAL","FINISHED","FAILED","data","error","useSWR","concat","isLoading","isError","co2g","co2gWithExecutionCount","totalCo2","totalDuration","computeDisplayableMilliWithUnit","mWhWithExecutionCount","computeDisplayableMilliWhPerMin","totalMilliWh"],"sourceRoot":""}