diff --git a/src/assets/icons/tabbar/profile/off.svg b/src/assets/icons/tabbar/profile/off.svg new file mode 100644 index 0000000000000000000000000000000000000000..4fc19edd02653eb34830cac2f699a3cb5a17cfe7 --- /dev/null +++ b/src/assets/icons/tabbar/profile/off.svg @@ -0,0 +1,4 @@ +<svg width="64" height="36" viewBox="0 0 64 36" fill="none" xmlns="http://www.w3.org/2000/svg"> +<circle cx="31.5" cy="15.5" r="6" stroke="#ABABAB"/> +<path d="M26.3256 22.6206L26.1536 22.4729L25.9292 22.505C24.0866 22.7686 22.7128 23.7203 21.8109 25.0837C20.9172 26.4346 20.5 28.1667 20.5 30V31V31.3904L20.8787 31.485L21 31C20.8787 31.485 20.8788 31.4851 20.879 31.4851L20.8793 31.4852L20.8802 31.4854L20.8831 31.4861L20.8933 31.4886L20.9311 31.4977C20.964 31.5055 21.0122 31.5167 21.0753 31.5309C21.2015 31.5591 21.3874 31.5991 21.63 31.6468C22.1154 31.7423 22.8279 31.8689 23.7442 31.9953C25.5765 32.248 28.2245 32.5 31.5 32.5C34.7755 32.5 37.4235 32.248 39.2558 31.9953C40.1721 31.8689 40.8846 31.7423 41.37 31.6468C41.6126 31.5991 41.7985 31.5591 41.9247 31.5309C41.9878 31.5167 42.036 31.5055 42.0689 31.4977L42.1067 31.4886L42.1169 31.4861L42.1198 31.4854L42.1207 31.4852L42.121 31.4851C42.1212 31.4851 42.1213 31.485 42 31L42.1213 31.485L42.5 31.3904V31V30C42.5 28.1667 42.0828 26.4346 41.1891 25.0837C40.2872 23.7203 38.9134 22.7686 37.0708 22.505L36.8816 22.478L36.7226 22.584C36.4258 22.7819 36.1612 22.9836 35.9205 23.1671C35.8447 23.2249 35.7713 23.2809 35.7 23.3344C35.3955 23.5628 35.1112 23.7604 34.7764 23.9278C34.1181 24.2569 33.2019 24.5 31.5 24.5C29.6215 24.5 27.5528 23.6738 26.3256 22.6206Z" stroke="#ABABAB"/> +</svg> diff --git a/src/assets/icons/tabbar/profile/on.svg b/src/assets/icons/tabbar/profile/on.svg new file mode 100644 index 0000000000000000000000000000000000000000..03291d21d107f6390afb0f9e021b25496fca624a --- /dev/null +++ b/src/assets/icons/tabbar/profile/on.svg @@ -0,0 +1,4 @@ +<svg width="64" height="36" viewBox="0 0 64 36" fill="none" xmlns="http://www.w3.org/2000/svg"> +<circle cx="31.5" cy="15.5" r="5.5" fill="#E3B82A"/> +<path d="M21 30C21 26.4735 22.6077 23.4852 26 23C27.3163 24.1296 29.5 25 31.5 25C35 25 35.5 24 37 23C40.3923 23.4852 42 26.4735 42 30V31C42 31 38 32 31.5 32C25 32 21 31 21 31V30Z" fill="#E3B82A"/> +</svg> diff --git a/src/components/CommonKit/Button/StyledAuthButton.tsx b/src/components/CommonKit/Button/StyledAuthButton.tsx index fd8a20d8bad972173014f480e29f7d1a02e5e9a5..c97f9f3578a04e5c25fb70b2d3ab1fc794555660 100644 --- a/src/components/CommonKit/Button/StyledAuthButton.tsx +++ b/src/components/CommonKit/Button/StyledAuthButton.tsx @@ -81,7 +81,7 @@ const StyledAuthButton: React.ComponentType<ButtonProps> = props => { return ( <> <MuiThemeProvider theme={theme}> - <MyButton {...props}>{props.children}</MyButton> + <MyButton {...props}></MyButton> </MuiThemeProvider> </> ) diff --git a/src/components/CommonKit/Button/StyledButton.tsx b/src/components/CommonKit/Button/StyledButton.tsx index cf3c8b34e45724d2cb6c433c6851e2ad1b4c362f..568e5f6fd3463685374111660ea8f40f38ec9f73 100644 --- a/src/components/CommonKit/Button/StyledButton.tsx +++ b/src/components/CommonKit/Button/StyledButton.tsx @@ -80,7 +80,7 @@ const StyledButton: React.ComponentType<ButtonProps> = props => { return ( <> <MuiThemeProvider theme={theme}> - <MyButton {...props}>{props.children}</MyButton> + <MyButton {...props}></MyButton> </MuiThemeProvider> </> ) diff --git a/src/components/CommonKit/Button/StyledButtonValid.tsx b/src/components/CommonKit/Button/StyledButtonValid.tsx index 349cc268d2dbb2c4a1470a33b5b938c67957081d..0711059826ffa51a0da39a74e0fd4f47e5402386 100644 --- a/src/components/CommonKit/Button/StyledButtonValid.tsx +++ b/src/components/CommonKit/Button/StyledButtonValid.tsx @@ -87,7 +87,7 @@ const StyledButtonValid: React.ComponentType<ButtonProps> = props => { return ( <> <MuiThemeProvider theme={theme}> - <MyButton {...props}>{props.children}</MyButton> + <MyButton {...props}></MyButton> </MuiThemeProvider> </> ) diff --git a/src/components/CommonKit/Button/StyledClearGreyButton.tsx b/src/components/CommonKit/Button/StyledClearGreyButton.tsx index a825276ceeb564cccb66ad1e522c151ceb3f9eb9..d28b80aba7273d8a45d8c30cfa30f1d98b6cecd6 100644 --- a/src/components/CommonKit/Button/StyledClearGreyButton.tsx +++ b/src/components/CommonKit/Button/StyledClearGreyButton.tsx @@ -77,7 +77,7 @@ const StyledClearGreyButton: React.ComponentType<ButtonProps> = props => { return ( <> <MuiThemeProvider theme={theme}> - <MyButton {...props}>{props.children}</MyButton> + <MyButton {...props}></MyButton> </MuiThemeProvider> </> ) diff --git a/src/components/CommonKit/Button/StyledStopButton.tsx b/src/components/CommonKit/Button/StyledStopButton.tsx index b449615bfaed6cbc32c129dcc2c6ef4051dba784..a6f7f5b00fb006d2f55f41e8f96a2faf82f0e1b2 100644 --- a/src/components/CommonKit/Button/StyledStopButton.tsx +++ b/src/components/CommonKit/Button/StyledStopButton.tsx @@ -71,7 +71,7 @@ const StyledStopButton: React.ComponentType<ButtonProps> = props => { return ( <> <MuiThemeProvider theme={theme}> - <MyButton {...props}>{props.children}</MyButton> + <MyButton {...props}></MyButton> </MuiThemeProvider> </> ) diff --git a/src/components/CommonKit/Button/StyledWhiteButton.tsx b/src/components/CommonKit/Button/StyledWhiteButton.tsx index 748730a869ccc3632eb2d43fa0618fa958855b59..4821da2ea7bc66843a48b24c33a5b43d1c6fd7a8 100644 --- a/src/components/CommonKit/Button/StyledWhiteButton.tsx +++ b/src/components/CommonKit/Button/StyledWhiteButton.tsx @@ -71,7 +71,7 @@ const StyledButton: React.ComponentType<ButtonProps> = props => { return ( <> <MuiThemeProvider theme={theme}> - <MyButton {...props}>{props.children}</MyButton> + <MyButton {...props}></MyButton> </MuiThemeProvider> </> ) diff --git a/src/components/CommonKit/ExpansionPanel/StyledSampleExpansionPanel.tsx b/src/components/CommonKit/ExpansionPanel/StyledSampleExpansionPanel.tsx index e02334ce0d902222c7f6a1ef2e7f130be69def28..00ec1f7cac116d3d8bfd5b3e4d00b54e8ad432c0 100644 --- a/src/components/CommonKit/ExpansionPanel/StyledSampleExpansionPanel.tsx +++ b/src/components/CommonKit/ExpansionPanel/StyledSampleExpansionPanel.tsx @@ -3,7 +3,6 @@ import ExpansionPanel from '@material-ui/core/ExpansionPanel' import ExpansionPanelSummary from '@material-ui/core/ExpansionPanelSummary' import ExpansionPanelDetails from '@material-ui/core/ExpansionPanelDetails' import { withStyles } from '@material-ui/core/styles' - import StyledIcon from 'components/CommonKit/Icon/StyledIcon' import ChevronOffIcon from 'assets/icons/ico/chevron-off.svg' @@ -57,22 +56,21 @@ const StyledExpansionPanelDetails = withStyles({ }, })(ExpansionPanelDetails) -const GenericExpansionPanel: React.ComponentType<GenericExpansionPanelProps> = props => { +const GenericExpansionPanel: React.FC<GenericExpansionPanelProps> = ({ + summary, + details, + expanded, + onChange, +}: GenericExpansionPanelProps) => { return ( <> - <StyledExpansionPanel - expanded={props.expanded} - onChange={props.onChange} - {...props} - > + <StyledExpansionPanel expanded={expanded} onChange={onChange}> <StyledExpansionPanelSummary expandIcon={<StyledIcon icon={ChevronOffIcon} />} > - {props.summary} + {summary} </StyledExpansionPanelSummary> - <StyledExpansionPanelDetails> - {props.details} - </StyledExpansionPanelDetails> + <StyledExpansionPanelDetails>{details}</StyledExpansionPanelDetails> </StyledExpansionPanel> </> ) diff --git a/src/components/CommonKit/Spinner/StyledChallengeSpinner.tsx b/src/components/CommonKit/Spinner/StyledChallengeSpinner.tsx index 655e31e4b1821a2e3bc4b2a569b840124fdad88c..730b367faf5d7480df001d9697b219d8b156961a 100644 --- a/src/components/CommonKit/Spinner/StyledChallengeSpinner.tsx +++ b/src/components/CommonKit/Spinner/StyledChallengeSpinner.tsx @@ -1,5 +1,4 @@ import React from 'react' -import { FluidType } from 'enum/fluid.enum' import { withStyles } from '@material-ui/core/styles' import MuiCircularProgress, { CircularProgressProps, diff --git a/src/components/CommonKit/Spinner/StyledSpinner.tsx b/src/components/CommonKit/Spinner/StyledSpinner.tsx index 3afde4af9c76131e6a4b7aa27f1bdaab61270ac0..390ecdcb17d097f51573064091aafa56052ef4a0 100644 --- a/src/components/CommonKit/Spinner/StyledSpinner.tsx +++ b/src/components/CommonKit/Spinner/StyledSpinner.tsx @@ -31,13 +31,15 @@ const SpinnerGas = withStyles({ interface StyledSpinnerProps extends CircularProgressProps { fluidTypes?: FluidType[] + isHome?: boolean } const StyledSpinner: React.ComponentType<StyledSpinnerProps> = ({ fluidTypes, + isHome, ...props }: StyledSpinnerProps) => { - if (!fluidTypes) { + if (!fluidTypes || isHome) { return <SpinnerBase {...props} /> } else if (fluidTypes.length === 1) { switch (fluidTypes[0]) { diff --git a/src/components/ContainerComponents/ChallengeCardContainer/ChallengeCardContainer.tsx b/src/components/ContainerComponents/ChallengeCardContainer/ChallengeCardContainer.tsx index 19ba76fd24772a56ed2ec1bce7fbd71cf780e985..caf56ad846cdc99f3e8cbde0d746e74ea2d9710d 100644 --- a/src/components/ContainerComponents/ChallengeCardContainer/ChallengeCardContainer.tsx +++ b/src/components/ContainerComponents/ChallengeCardContainer/ChallengeCardContainer.tsx @@ -1,5 +1,5 @@ import React, { useContext } from 'react' -import { withClient, Client } from 'cozy-client' +import { Client } from 'cozy-client' import { translate } from 'cozy-ui/react/I18n' import ChallengeCard from 'components/ContentComponents/ChallengeCard/ChallengeCard' import { AppContext } from 'components/Contexts/AppContextProvider' diff --git a/src/components/ContainerComponents/EcogestureContainer/EcogesturesContainer.tsx b/src/components/ContainerComponents/EcogestureContainer/EcogesturesContainer.tsx index 559485a2175455e4f73f792b5217a6feabdc0cc0..8b9f6b9ca0b40ec92db12a6db163fd95ceb56665 100644 --- a/src/components/ContainerComponents/EcogestureContainer/EcogesturesContainer.tsx +++ b/src/components/ContainerComponents/EcogestureContainer/EcogesturesContainer.tsx @@ -1,12 +1,29 @@ -import React, { useEffect } from 'react' +import React, { useEffect, useState } from 'react' import EcogesturesList from 'components/ContentComponents/EcogestureList/EcogestureList' +import CozyBar from 'components/ContainerComponents/CozyBar/CozyBar' +import Header from 'components/ContainerComponents/Header/Header' +import Content from 'components/ContainerComponents/Content/Content' const EcogesturesContainer: React.FC = () => { useEffect(() => { window.scrollTo(0, 0) }, []) - - return <EcogesturesList /> + const [headerHeight, setHeaderHeight] = useState<number>(0) + const defineHeaderHeight = (height: number) => { + setHeaderHeight(height) + } + return ( + <> + <CozyBar titleKey={'COMMON.APP_ECO_GESTURE_TITLE'} /> + <Header + setHeaderHeight={defineHeaderHeight} + desktopTitleKey={'COMMON.APP_ECO_GESTURE_TITLE'} + ></Header> + <Content height={headerHeight}> + <EcogesturesList /> + </Content> + </> + ) } export default EcogesturesContainer diff --git a/src/components/ContainerComponents/Header/Header.tsx b/src/components/ContainerComponents/Header/Header.tsx index 02928413be821220db66039a77508dd5de92d4c8..748daf599f8767e0f4b9c40213118551b8863338 100644 --- a/src/components/ContainerComponents/Header/Header.tsx +++ b/src/components/ContainerComponents/Header/Header.tsx @@ -1,7 +1,6 @@ import React, { useEffect, useRef, useContext } from 'react' import { translate } from 'cozy-ui/react/I18n' import { history } from 'components/ContainerComponents/ViewContainer/ViewContainer' -import { withClient, Client } from 'cozy-client' import { ScreenType } from 'enum/screen.enum' import { AppContext } from 'components/Contexts/AppContextProvider' import BackArrowIcon from 'assets/icons/ico/back-arrow.svg' @@ -14,7 +13,6 @@ interface HeaderProps { displayBackArrow?: boolean children?: React.ReactNode setHeaderHeight(height: number): void - client: Client t: Function } @@ -24,7 +22,6 @@ const Header: React.FC<HeaderProps> = ({ displayBackArrow, children, setHeaderHeight, - client, t, }: HeaderProps) => { const header = useRef(null) @@ -113,4 +110,4 @@ const Header: React.FC<HeaderProps> = ({ ) } -export default translate()(withClient(Header)) +export default translate()(Header) diff --git a/src/components/ContainerComponents/ViewContainer/AvailableChallengeDetailsViewContainer.tsx b/src/components/ContainerComponents/ViewContainer/AvailableChallengeDetailsViewContainer.tsx index 7152d937d96a2337d0b608dc2ac24db390f83ad8..185aab9cf09af9509c7f2228afb6ee189d177460 100644 --- a/src/components/ContainerComponents/ViewContainer/AvailableChallengeDetailsViewContainer.tsx +++ b/src/components/ContainerComponents/ViewContainer/AvailableChallengeDetailsViewContainer.tsx @@ -17,7 +17,7 @@ import ConsumptionDataManager from 'services/consumptionDataManagerService' import { DateTime } from 'luxon' interface AvailableChallengeDetailsViewProps { - location: any + location: Location props: any client: Client t: Function @@ -39,6 +39,7 @@ const AvailableChallengeDetailsViewContainer: React.FC<AvailableChallengeDetails const [lackOfDataForChallenge, setLackOfDataForChallenge] = useState<boolean>( false ) + const [isLoaded, setIsLoaded] = useState<boolean>(false) const defineHeaderHeight = (height: number) => { setHeaderHeight(height) @@ -77,34 +78,36 @@ const AvailableChallengeDetailsViewContainer: React.FC<AvailableChallengeDetails useEffect(() => { let subscribed = true - const lag = challengeManager.getLagDays(fluidTypes) - - const timePeriod = { - startDate: DateTime.local() - .plus({ days: -6 }) - .startOf('day'), - endDate: DateTime.local() - .plus({ days: -lag }) - .endOf('day'), - } + if (props.location.state) { + const lag = challengeManager.getLagDays(fluidTypes) + const firstDayOfPreviousPeriod = + props && props.location.state.challenge.duration.days + const timePeriod = { + startDate: DateTime.local() + .plus({ days: -firstDayOfPreviousPeriod }) + .startOf('day'), + endDate: DateTime.local() + .plus({ days: -lag }) + .endOf('day'), + } - async function checkPreviousData() { - const cdm = new ConsumptionDataManager(client) - const fetchedPerformanceIndicators = await cdm.getPerformanceIndicators( - timePeriod, - 20, - fluidTypes - ) - if (fetchedPerformanceIndicators && subscribed) { - fetchedPerformanceIndicators.forEach(element => { - !element.value ? setLackOfDataForChallenge(true) : null - }) - } else { - setLackOfDataForChallenge(true) + async function checkPreviousData() { + const cdm = new ConsumptionDataManager(client) + const fetchedPerformanceIndicators = await cdm.getPerformanceIndicators( + timePeriod, + 20, + fluidTypes + ) + if (fetchedPerformanceIndicators && subscribed) { + fetchedPerformanceIndicators.forEach(element => { + !element.value ? setLackOfDataForChallenge(true) : null + }) + } else { + setLackOfDataForChallenge(true) + } + setIsLoaded(true) } - } - checkPreviousData() - if (props.location.state) { + checkPreviousData() setChallenge(props && props.location.state.challenge) } return () => { @@ -152,7 +155,7 @@ const AvailableChallengeDetailsViewContainer: React.FC<AvailableChallengeDetails </div> <div className="cp-right-button"> <StyledButtonValid - disabled={lackOfDataForChallenge} + disabled={lackOfDataForChallenge || !isLoaded} color="primary" onClick={handleStartClick} > @@ -162,7 +165,7 @@ const AvailableChallengeDetailsViewContainer: React.FC<AvailableChallengeDetails </div> </div> <div className="lack-of-data-challenge"> - {lackOfDataForChallenge + {lackOfDataForChallenge && isLoaded ? t('CHALLENGE.LACK_OF_DATA') : null} </div> diff --git a/src/components/ContainerComponents/ViewContainer/ChallengesViewContainer.tsx b/src/components/ContainerComponents/ViewContainer/ChallengesViewContainer.tsx index 083944ccecf8758a9cd263bbbdccff81c2e16a71..63e5d2b4a35fb5788dc231a509e5b559660a4ef8 100644 --- a/src/components/ContainerComponents/ViewContainer/ChallengesViewContainer.tsx +++ b/src/components/ContainerComponents/ViewContainer/ChallengesViewContainer.tsx @@ -2,35 +2,24 @@ import React, { useState } from 'react' import CozyBar from 'components/ContainerComponents/CozyBar/CozyBar' import Header from 'components/ContainerComponents/Header/Header' import Content from 'components/ContainerComponents/Content/Content' -import { SelectView } from 'services/dataChallengeContracts' -import ChallengeNavigator from 'components/ContentComponents/ChallengeNavigator/ChallengeNavigator' import BadgesContainer from 'components/ContainerComponents/BadgesContainer/BadgesContainer' -import EcogesturesContainer from 'components/ContainerComponents/EcogestureContainer/EcogesturesContainer' const ChallengesViewContainer: React.FC = () => { const [headerHeight, setHeaderHeight] = useState<number>(0) - const [selectedView, setSelectedView] = useState<SelectView>(0) + const defineHeaderHeight = (height: number) => { setHeaderHeight(height) } - const handleClickSelectedViewForNavigation = (_selectedView: SelectView) => { - setSelectedView(_selectedView) - } return ( <React.Fragment> <CozyBar titleKey={'COMMON.APP_CHALLENGE_TITLE'} /> <Header setHeaderHeight={defineHeaderHeight} desktopTitleKey={'COMMON.APP_CHALLENGE_TITLE'} - > - <ChallengeNavigator - selectedView={selectedView} - handleClickSelectView={handleClickSelectedViewForNavigation} - /> - </Header> + ></Header> <Content height={headerHeight} background="var(--darkLight2)"> - {selectedView === 0 ? <BadgesContainer /> : <EcogesturesContainer />} + <BadgesContainer /> </Content> </React.Fragment> ) diff --git a/src/components/ContainerComponents/ViewContainer/HomeViewContainer.tsx b/src/components/ContainerComponents/ViewContainer/HomeViewContainer.tsx index b17278c282a74a8a5893064dcca49042eb6791df..29be4f352a2a5797174ee4b41aa31c658267f876 100644 --- a/src/components/ContainerComponents/ViewContainer/HomeViewContainer.tsx +++ b/src/components/ContainerComponents/ViewContainer/HomeViewContainer.tsx @@ -1,4 +1,4 @@ -import React, { useState, useContext, useEffect } from 'react' +import React, { useState, useContext } from 'react' import StyledSpinner from 'components/CommonKit/Spinner/StyledSpinner' import CozyBar from 'components/ContainerComponents/CozyBar/CozyBar' import Header from 'components/ContainerComponents/Header/Header' @@ -12,12 +12,9 @@ import ChallengeCardContainer from 'components/ContainerComponents/ChallengeCard import KonnectorViewerContainer from 'components/ContainerComponents/KonnectorViewerContainer/KonnectorViewerContainer' const HomeViewContainer: React.FC = () => { - const { - fluidTypes, - previousTimeStep, - setPreviousTimeStep, - chartIsLoaded, - } = useContext(AppContext) + const { fluidTypes, previousTimeStep, setPreviousTimeStep } = useContext( + AppContext + ) const [timeStep, setTimeStep] = useState<TimeStep>( previousTimeStep && previousTimeStep !== TimeStep.HALF_AN_HOUR ? previousTimeStep @@ -68,14 +65,14 @@ const HomeViewContainer: React.FC = () => { /> </Header> <Content height={headerHeight}> - {(isChartLoading || isIndicatorsLoading || !chartIsLoaded) && ( + {(isChartLoading || isIndicatorsLoading) && ( <div className="content-view-loading"> <StyledSpinner size="5em" /> </div> )} <div className={`${ - isChartLoading || isIndicatorsLoading || !chartIsLoaded + isChartLoading || isIndicatorsLoading ? 'chart-indicator-none' : 'chart-indicator-block' }`} diff --git a/src/components/ContainerComponents/ViewContainer/ParametersViewContainer.tsx b/src/components/ContainerComponents/ViewContainer/ParametersViewContainer.tsx index a4b973251c128e001891585a7cfe2d2c2f63a978..8a324f27c932302802c4c0faddacffa6b2d21031 100644 --- a/src/components/ContainerComponents/ViewContainer/ParametersViewContainer.tsx +++ b/src/components/ContainerComponents/ViewContainer/ParametersViewContainer.tsx @@ -2,7 +2,6 @@ import React, { useState } from 'react' import CozyBar from 'components/ContainerComponents/CozyBar/CozyBar' import Header from 'components/ContainerComponents/Header/Header' import Content from 'components/ContainerComponents/Content/Content' -import KonnectorViewerContainer from 'components/ContainerComponents/KonnectorViewerContainer/KonnectorViewerContainer' import FAQContainer from 'components/ContainerComponents/FAQContainer/FAQContainer' import LegalNoticeContainer from 'components/ContainerComponents/LegalNoticeContainer/LegalNoticeContainer' import Version from 'components/ContentComponents/Version/Version' @@ -13,7 +12,7 @@ const ParametersViewContainer: React.FC = () => { setHeaderHeight(height) } return ( - <React.Fragment> + <> <CozyBar titleKey={'COMMON.APP_PARAMETERS_TITLE'} /> <Header setHeaderHeight={defineHeaderHeight} @@ -21,11 +20,10 @@ const ParametersViewContainer: React.FC = () => { ></Header> <Content height={headerHeight}> <FAQContainer /> - <KonnectorViewerContainer isParam={true} /> <LegalNoticeContainer /> <Version /> </Content> - </React.Fragment> + </> ) } diff --git a/src/components/ContainerComponents/ViewContainer/ProfileViewContainer.tsx b/src/components/ContainerComponents/ViewContainer/ProfileViewContainer.tsx new file mode 100644 index 0000000000000000000000000000000000000000..e6aceefc3b9ecf92703e81be59505f0084eb3382 --- /dev/null +++ b/src/components/ContainerComponents/ViewContainer/ProfileViewContainer.tsx @@ -0,0 +1,28 @@ +import React, { useState } from 'react' +import CozyBar from 'components/ContainerComponents/CozyBar/CozyBar' +import Header from 'components/ContainerComponents/Header/Header' +import Content from 'components/ContainerComponents/Content/Content' +import KonnectorViewerContainer from 'components/ContainerComponents/KonnectorViewerContainer/KonnectorViewerContainer' +import Report from 'components/ContentComponents/Report/Report' + +const ProfileViewContainer: React.FC = () => { + const [headerHeight, setHeaderHeight] = useState<number>(0) + const defineHeaderHeight = (height: number) => { + setHeaderHeight(height) + } + return ( + <> + <CozyBar titleKey={'COMMON.APP_PARAMETERS_TITLE'} /> + <Header + setHeaderHeight={defineHeaderHeight} + desktopTitleKey={'COMMON.APP_PARAMETERS_TITLE'} + ></Header> + <Content height={headerHeight}> + <Report /> + <KonnectorViewerContainer isParam={true} /> + </Content> + </> + ) +} + +export default ProfileViewContainer diff --git a/src/components/ContainerComponents/ViewContainer/SingleFluidViewContainer.tsx b/src/components/ContainerComponents/ViewContainer/SingleFluidViewContainer.tsx index 9394f64f5f368eb045273a8ba4d913ff97c63d99..5bddaece35c68dbbd9eced3828ab0f97b13173be 100644 --- a/src/components/ContainerComponents/ViewContainer/SingleFluidViewContainer.tsx +++ b/src/components/ContainerComponents/ViewContainer/SingleFluidViewContainer.tsx @@ -1,4 +1,4 @@ -import React, { useState, useEffect, useContext } from 'react' +import React, { useState, useContext } from 'react' import StyledSpinner from 'components/CommonKit/Spinner/StyledSpinner' import CozyBar from 'components/ContainerComponents/CozyBar/CozyBar' import Header from 'components/ContainerComponents/Header/Header' @@ -16,9 +16,7 @@ interface SingleFluidViewContainerProps { const SingleFluidViewContainer: React.FC<SingleFluidViewContainerProps> = ({ fluidTypes, }: SingleFluidViewContainerProps) => { - const { setPreviousTimeStep, previousTimeStep, chartIsLoaded } = useContext( - AppContext - ) + const { setPreviousTimeStep, previousTimeStep } = useContext(AppContext) const [timeStep, setTimeStep] = useState<TimeStep | null>( previousTimeStep && previousTimeStep !== TimeStep.HALF_AN_HOUR @@ -73,14 +71,14 @@ const SingleFluidViewContainer: React.FC<SingleFluidViewContainerProps> = ({ /> </Header> <Content height={headerHeight}> - {(isChartLoading || isIndicatorsLoading || !chartIsLoaded) && ( + {(isChartLoading || isIndicatorsLoading) && ( <div className="content-view-loading"> <StyledSpinner size="5em" fluidTypes={fluidTypes} /> </div> )} <div className={`${ - isChartLoading || isIndicatorsLoading || !chartIsLoaded + isChartLoading || isIndicatorsLoading ? 'chart-indicator-none' : 'chart-indicator-block' }`} diff --git a/src/components/ContainerComponents/ViewContainer/ViewContainer.tsx b/src/components/ContainerComponents/ViewContainer/ViewContainer.tsx index d2f2184cbb710559f2fed8b43d6a8ec18f9d8234..7fb2270c5bbdefe272780ee6e1f5a53d1572e116 100644 --- a/src/components/ContainerComponents/ViewContainer/ViewContainer.tsx +++ b/src/components/ContainerComponents/ViewContainer/ViewContainer.tsx @@ -20,6 +20,8 @@ import AvailableChallengeDetailsViewContainer from './AvailableChallengeDetailsV import SplashContainer from 'components/ContainerComponents/SplashContainer/SplashContainer' import LegalNoticeViewContainer from './LegalNoticeViewContainer' import FeedbackContainer from 'components/ContainerComponents/FeedbackContainer/FeedbackContainer' +import EcogesturesContainer from 'components/ContainerComponents/EcogestureContainer/EcogesturesContainer' +import ProfileViewContainer from './ProfileViewContainer' export const history = createBrowserHistory() @@ -118,6 +120,8 @@ export const ViewContainer = () => { </> )} /> + <Route path="/ecogestures" component={EcogesturesContainer} /> + <Route path="/profile" component={ProfileViewContainer} /> <Route path="/splash" component={SplashContainer} /> <Redirect from="/" to="/consumption" /> <Redirect from="*" to="/consumption" /> diff --git a/src/components/ContentComponents/Card/Card.tsx b/src/components/ContentComponents/Card/Card.tsx index a85e1864e39f42c70558f52259547ada878f9ae5..b1ef73e496d04a4aa596fdbb201546b1809374d7 100644 --- a/src/components/ContentComponents/Card/Card.tsx +++ b/src/components/ContentComponents/Card/Card.tsx @@ -6,7 +6,7 @@ import { getPicto, getCardColor } from 'utils/utils' import { ProcessedData } from 'services/fluidService' export interface CardProps extends ProcessedData { type: FluidType - t: any // translation service + t: Function // translation service } const Card: React.FC<CardProps> = ({ diff --git a/src/components/ContentComponents/Card/RedirectionMiniCard.tsx b/src/components/ContentComponents/Card/RedirectionMiniCard.tsx index 488f3bdc71c840b2c2e8394a1705d394cae0544e..b68da80da9f73e51e4032799b3066e55d97e089d 100644 --- a/src/components/ContentComponents/Card/RedirectionMiniCard.tsx +++ b/src/components/ContentComponents/Card/RedirectionMiniCard.tsx @@ -1,23 +1,17 @@ import React from 'react' -import Icon from 'cozy-ui/react/Icon' import { translate } from 'cozy-ui/react/I18n' import { FluidType } from 'enum/fluid.enum' -import { getPicto, getCardColor } from 'utils/utils' -import { ProcessedData } from 'services/fluidService' import StyledIconCard from 'components/CommonKit/Card/StyledIconCard' import { NavLink } from 'react-router-dom' -import { TimeStep } from 'services/dataConsumptionContracts' export interface RedirectionMiniCard { fluidTypes: FluidType[] t: Function - timeStep: TimeStep } const RedirectionMiniCard: React.FC<RedirectionMiniCard> = ({ fluidTypes, t, - timeStep, }: RedirectionMiniCard) => { return ( <> diff --git a/src/components/ContentComponents/Challenge/FollowChallengeTimeline.tsx b/src/components/ContentComponents/Challenge/FollowChallengeTimeline.tsx index 6cc015ff90dd0bd569bd5f4722b1b7eaf68e7ccd..ce45ffcf069fbaecd3e7e8d9285a9d424773ec5f 100644 --- a/src/components/ContentComponents/Challenge/FollowChallengeTimeline.tsx +++ b/src/components/ContentComponents/Challenge/FollowChallengeTimeline.tsx @@ -1,10 +1,8 @@ -import React, { useContext } from 'react' +import React from 'react' import { translate } from 'cozy-ui/react/I18n' import { UserChallenge } from 'services/dataChallengeContracts' import { DateTime, Interval } from 'luxon' -import { FluidType } from 'enum/fluid.enum' import ChallengeManager from 'services/challengeDataManagerService' -import { AppContext } from 'components/Contexts/AppContextProvider' import { Client } from 'cozy-client' interface FollowChallengeTimelineViewProps { @@ -16,7 +14,6 @@ const FollowChallengeTimeline: React.FC<FollowChallengeTimelineViewProps> = ({ challenge, client, }: FollowChallengeTimelineViewProps) => { - const { fluidTypes } = useContext(AppContext) const challengeManager = new ChallengeManager(client) const viewingDate = () => { diff --git a/src/components/ContentComponents/Challenge/OngoingChallengeViewingDate.tsx b/src/components/ContentComponents/Challenge/OngoingChallengeViewingDate.tsx index 85dd1f3734738666cd4be57f06e1e93d81b275fb..8dbf84aedab15dc1f4498ea0a78df7093026e872 100644 --- a/src/components/ContentComponents/Challenge/OngoingChallengeViewingDate.tsx +++ b/src/components/ContentComponents/Challenge/OngoingChallengeViewingDate.tsx @@ -1,10 +1,9 @@ -import React, { useState, useEffect, useContext } from 'react' +import React, { useState, useEffect } from 'react' import { translate } from 'cozy-ui/react/I18n' import { UserChallenge } from 'services/dataChallengeContracts' import { DateTime } from 'luxon' import ChallengeManager from 'services/challengeDataManagerService' import { Client, withClient } from 'cozy-client' -import { AppContext } from 'components/Contexts/AppContextProvider' interface OngoingChallengeViewingDateProps { challenge: UserChallenge @@ -18,7 +17,6 @@ const OngoingChallengeViewingDate: React.FC<OngoingChallengeViewingDateProps> = t, }: OngoingChallengeViewingDateProps) => { const challengeManager = new ChallengeManager(client) - const { fluidTypes } = useContext(AppContext) const [firstDateWithData, setFirstDateWithData] = useState<DateTime | null>( null ) diff --git a/src/components/ContentComponents/ChallengeNavigator/ChallengeNavigator.tsx b/src/components/ContentComponents/ChallengeNavigator/ChallengeNavigator.tsx deleted file mode 100644 index ad7d1aeb598de56ef0e523d1dc4a03a50b0a9a44..0000000000000000000000000000000000000000 --- a/src/components/ContentComponents/ChallengeNavigator/ChallengeNavigator.tsx +++ /dev/null @@ -1,56 +0,0 @@ -import React from 'react' -import { translate } from 'cozy-ui/react/I18n' -import Tabs from 'components/CommonKit/Tabs/StyledBlueTabs' -import Tab from 'components/CommonKit/Tabs/StyledBlueTab' -import { SelectView } from 'services/dataChallengeContracts' - -interface ChallengeNavigatorProps { - selectedView: SelectView - handleClickSelectView(selectView: SelectView): void - t: Function -} - -const ChallengeNavigator: React.FC<ChallengeNavigatorProps> = ({ - selectedView, - handleClickSelectView, - t, -}: ChallengeNavigatorProps) => { - // const view = SelectView[selectedView[0]] - const handleClick = (selectedView: SelectView) => { - handleClickSelectView(selectedView) - } - - const defineNavTab = () => { - return [SelectView.BADGES, SelectView.ECOGESTURES] - } - - const defineLabel = (inputSelectedView: SelectView) => { - const classes = - inputSelectedView === selectedView ? `tab-text-on` : `tab-text-off` - return ( - <span className={classes}> - {t(`Nav.${SelectView[inputSelectedView]}`)} - </span> - ) - } - - return ( - <div className="cn"> - <Tabs className="cn-tabs" value={selectedView} variant="fullWidth"> - {defineNavTab().map((inputSelectedView, index) => { - return ( - <Tab - className="cn-tab" - key={index} - value={inputSelectedView} - label={defineLabel(inputSelectedView)} - onClick={() => handleClick(inputSelectedView)} - /> - ) - })} - </Tabs> - </div> - ) -} - -export default translate()(ChallengeNavigator) diff --git a/src/components/ContentComponents/Charts/AxisRight.tsx b/src/components/ContentComponents/Charts/AxisRight.tsx index 54519c76c225cacb3eb23ff19c4825943459ee06..ac48b6a18ef1452442885774fb8b2918394d134b 100644 --- a/src/components/ContentComponents/Charts/AxisRight.tsx +++ b/src/components/ContentComponents/Charts/AxisRight.tsx @@ -16,8 +16,9 @@ interface AxisRightProps { const AxisRight = (props: AxisRightProps) => { const { yScale, fluidTypes, width, marginRight, marginTop, t } = props + const isHome: boolean = !window.location.hash.split('/')[2] ? true : false const fluidStyle = - fluidTypes.length > 1 ? 'MULTIFLUID' : FluidType[fluidTypes[0]] + fluidTypes.length > 1 || isHome ? 'MULTIFLUID' : FluidType[fluidTypes[0]] const yAxisRef = useRef<SVGGElement>(null) const drawYAxis = () => { diff --git a/src/components/ContentComponents/Charts/Bar.tsx b/src/components/ContentComponents/Charts/Bar.tsx index 9d480f56727b37736e4e7d859d2794b767032889..f9fd12557402de2fda01ff780fd55b08842cb03c 100644 --- a/src/components/ContentComponents/Charts/Bar.tsx +++ b/src/components/ContentComponents/Charts/Bar.tsx @@ -1,10 +1,6 @@ import React, { useState, useEffect } from 'react' import { ScaleBand, ScaleLinear } from 'd3-scale' -import { - IDataload, - TimeStep, - ITimePeriod, -} from 'services/dataConsumptionContracts' +import { IDataload, TimeStep } from 'services/dataConsumptionContracts' import { compareStepDate } from 'services/dateChartService' import { FluidType } from 'enum/fluid.enum' import { DateTime } from 'luxon' diff --git a/src/components/ContentComponents/Charts/BarChart.tsx b/src/components/ContentComponents/Charts/BarChart.tsx index 8fa45f2fb68be6e2cfbf6776b9ca827e1c20cfe3..6237d14786fe4513c52564b0676a44a4550bb4f1 100644 --- a/src/components/ContentComponents/Charts/BarChart.tsx +++ b/src/components/ContentComponents/Charts/BarChart.tsx @@ -1,4 +1,4 @@ -import React from 'react' +import React, { useContext } from 'react' import { scaleBand, ScaleBand, scaleLinear, ScaleLinear } from 'd3-scale' import { IDataload, @@ -12,6 +12,7 @@ import Hash from 'components/ContentComponents/Charts/Hash' import AxisBottom from 'components/ContentComponents/Charts/AxisBottom' import AxisRight from 'components/ContentComponents/Charts/AxisRight' import { DateTime } from 'luxon' +import { AppContext } from 'components/Contexts/AppContextProvider' export interface BarChartProps { chartData: IChartData @@ -32,6 +33,7 @@ export interface BarChartProps { marginTop?: number marginBottom?: number isSwitching: boolean + isHome: boolean } interface DefaultProps { @@ -62,7 +64,10 @@ const BarChart: React.FC<BarChartProps> = (props: BarChartProps) => { marginTop, marginBottom, isSwitching, + isHome, } = props as PropsWithDefaults + const { maxLoads } = useContext(AppContext) + const getContentWidth = () => { return width - marginLeft - marginRight } @@ -72,14 +77,30 @@ const BarChart: React.FC<BarChartProps> = (props: BarChartProps) => { } const getMaxLoad = () => { - let max = chartData.actualData - ? Math.max(...chartData.actualData.map(d => d.value)) - : 0 - const maxCompare = chartData.comparisonData - ? Math.max(...chartData.comparisonData.map(d => d.value)) - : 0 - max = max <= 0 ? 15 : max - return showCompare ? Math.max(max, maxCompare) : max + if ( + (timeStep === TimeStep.DAY && !showCompare) || + timeStep === TimeStep.HALF_AN_HOUR + ) { + const actualMonth = selectedDate.startOf('week').month + const actualYear = selectedDate.startOf('week').year + const key = `${actualMonth}/${actualYear}-${isHome}-${fluidTypes + .sort() + .join('-')}-${timeStep}` + if (DateTime.local() < selectedDate && !maxLoads[key]) { + maxLoads[key] = 15 + } + + return maxLoads[key] > 0 ? maxLoads[key] : 15 + } else { + let max = chartData.actualData + ? Math.max(...chartData.actualData.map(d => d.value)) + : 0 + const maxCompare = chartData.comparisonData + ? Math.max(...chartData.comparisonData.map(d => d.value)) + : 0 + max = max <= 0 ? 15 : max + return showCompare ? Math.max(max, maxCompare) : max + } } const xScale: ScaleBand<string> = scaleBand() diff --git a/src/components/ContentComponents/ConsumptionVisualizer/DataloadConsumptionVisualizer.tsx b/src/components/ContentComponents/ConsumptionVisualizer/DataloadConsumptionVisualizer.tsx index af8a52377b7de0e8461aaf060f9f38b9e7b820f3..227806bcf14349e287ad99cf155095dcff98a946 100644 --- a/src/components/ContentComponents/ConsumptionVisualizer/DataloadConsumptionVisualizer.tsx +++ b/src/components/ContentComponents/ConsumptionVisualizer/DataloadConsumptionVisualizer.tsx @@ -7,8 +7,7 @@ import StyledIcon from 'components/CommonKit/Icon/StyledIcon' import { getPicto, formatNumberValues } from 'utils/utils' import LoadToCurrencyConverter from 'services/loadToCurrencyConverterService' import { isDataToCome } from 'services/dateChartService' -import StyledSpinner from 'components/CommonKit/Spinner/StyledSpinner' -import { DateTime, Interval } from 'luxon' +import { DateTime } from 'luxon' interface DataloadConsumptionVisualizerProps { fluidTypes: FluidType[] @@ -99,14 +98,10 @@ const DataloadConsumptionVisualizer = ({ <div className={`cv-load-value ${fluidStyle.toLowerCase()} chart-result`} > - {multiFluid && fluidTypes.length === 1 - ? formatNumberValues( - ltcc.Convert(dataload.value, fluidTypes[0]) - ) - : formatNumberValues(dataload.value)} - <span className="text-18-normal">{`${t( - 'FLUID.' + fluidStyle + '.UNIT' - )}`}</span> + {formatNumberValues(dataload.value)} + <span className="text-18-normal"> + {`${t('FLUID.' + fluidStyle + '.UNIT')}`} + </span> </div> {!multiFluid ? ( <div diff --git a/src/components/ContentComponents/EcogestureCard/EcogestureCard.tsx b/src/components/ContentComponents/EcogestureCard/EcogestureCard.tsx index f6ff64f40476cd6925470b88c75cb7c2893b39b4..d5a68580773e54858173d1e9088c0dd45c691d67 100644 --- a/src/components/ContentComponents/EcogestureCard/EcogestureCard.tsx +++ b/src/components/ContentComponents/EcogestureCard/EcogestureCard.tsx @@ -1,5 +1,4 @@ import React, { useState, useEffect } from 'react' -import { translate } from 'cozy-ui/react/I18n' import { EcogestureType } from 'services/dataChallengeContracts' import StyledEcogestureCard from 'components/CommonKit/Card/StyledEcogestureCard' import Icon from 'cozy-ui/react/Icon' @@ -8,14 +7,12 @@ import def from 'assets/icons/visu/ecogesture/default.svg' interface EcogestureCardProps { ecogesture: EcogestureType handleClick?: (ecogesture: EcogestureType) => void - t: Function challengeEcogesture?: number } const EcogestureCard: React.FC<EcogestureCardProps> = ({ ecogesture, handleClick, - t, challengeEcogesture, }: EcogestureCardProps) => { const handleCardclick = () => { @@ -90,4 +87,4 @@ const EcogestureCard: React.FC<EcogestureCardProps> = ({ ) } -export default translate()(EcogestureCard) +export default EcogestureCard diff --git a/src/components/ContentComponents/FluidChart/FluidChartContent.tsx b/src/components/ContentComponents/FluidChart/FluidChartContent.tsx index 5d9bbf1651bbf03cbb9f3ed2f21cde41783d0f8d..e324db81179b6825356db5027aff3e525cce011a 100644 --- a/src/components/ContentComponents/FluidChart/FluidChartContent.tsx +++ b/src/components/ContentComponents/FluidChart/FluidChartContent.tsx @@ -123,7 +123,7 @@ const FluidChartContent: React.FC<FluidChartContentProps> = ({ setSelectedDate(referenceDate) setIndexDisplayed(0) setIsLoaded(false) - }, [referenceDate, timeStep]) + }, [referenceDate, timeStep, fluidTypes]) return ( <div className="fv-root"> diff --git a/src/components/ContentComponents/FluidChart/FluidChartSlide.tsx b/src/components/ContentComponents/FluidChart/FluidChartSlide.tsx index 1eb1465ea6dd297c5f44e2abb4041ff8d3f4797f..20c9e25598d9beb21363c53ba6f6adc418e34747 100644 --- a/src/components/ContentComponents/FluidChart/FluidChartSlide.tsx +++ b/src/components/ContentComponents/FluidChart/FluidChartSlide.tsx @@ -13,6 +13,7 @@ import { FluidType } from 'enum/fluid.enum' import BarChart from 'components/ContentComponents/Charts/BarChart' import { AppContext } from 'components/Contexts/AppContextProvider' +import StyledSpinner from 'components/CommonKit/Spinner/StyledSpinner' interface FluidChartSlideProps { index: number @@ -51,7 +52,9 @@ const FluidChartSlide: React.FC<FluidChartSlideProps> = ({ const [chartData, setChartData] = useState<IChartData>(new ChartData([])) const [isLoaded, setIsLoaded] = useState<boolean>(false) - const { setChartIsLoaded, chartIsLoaded } = useContext(AppContext) + const { maxLoads } = useContext(AppContext) + + const isHome: boolean = !window.location.hash.split('/')[2] ? true : false useEffect(() => { let subscribed = true @@ -60,16 +63,65 @@ const FluidChartSlide: React.FC<FluidChartSlideProps> = ({ defineTimePeriod(referenceDate, timeStep, index), defineTimePeriod(referenceDate, timeStep, index + 1), ]) + const graphData = await consumptionDataManager.getGraphData( timePeriod, timeStep, fluidTypes, - compareTimePeriod + compareTimePeriod, + isHome ) + + if ( + graphData && + graphData.actualData.length > 0 && + (timeStep === TimeStep.DAY || timeStep === TimeStep.HALF_AN_HOUR) + ) { + const lastSlideDate = + graphData.actualData[graphData.actualData.length - 1].date + const actualMonth = lastSlideDate.startOf('week').month + const actualYear = lastSlideDate.startOf('week').year + + const maxTimePeriod = { + startDate: + timeStep === TimeStep.HALF_AN_HOUR + ? lastSlideDate.startOf('month') + : lastSlideDate.startOf('week').startOf('month').weekday === 1 + ? lastSlideDate.startOf('week').startOf('month') + : lastSlideDate + .startOf('week') + .startOf('month') + .plus({ days: +7 }) + .startOf('week'), + endDate: + timeStep === TimeStep.HALF_AN_HOUR + ? lastSlideDate.endOf('month') + : lastSlideDate.startOf('week').month !== + lastSlideDate.endOf('week').month + ? lastSlideDate.endOf('week') + : lastSlideDate.endOf('month').endOf('week'), + } + + const compareMaxTimePeriod = maxTimePeriod + + const key = `${actualMonth}/${actualYear}-${isHome}-${fluidTypes + .sort() + .join('-')}-${timeStep}` + + const graphMaxLoad = await consumptionDataManager.getMaxLoad( + maxTimePeriod, + timeStep, + fluidTypes, + compareMaxTimePeriod, + isHome + ) + + maxLoads[key] = graphMaxLoad + } + if (subscribed && graphData && graphData.actualData.length > 0) { setChartData(graphData) setIsLoaded(true) - setChartIsLoaded(true) } } setIsLoaded(false) @@ -81,23 +133,30 @@ const FluidChartSlide: React.FC<FluidChartSlideProps> = ({ }, [timeStep, fluidTypes]) return ( - <div className="fs-slide"> - {!isLoaded ? null : ( - <BarChart - chartData={chartData} - fluidTypes={fluidTypes} - timeStep={timeStep} - multiFluid={multiFluid} - selectedDate={selectedDate} - showCompare={showCompare} - handleClickData={handleClickData} - height={height} - width={width} - challengePeriod={challengePeriod} - isSwitching={isSwitching} - /> - )} - </div> + <> + <div className="fs-slide"> + {!isLoaded ? ( + <div className="chart-loading"> + <StyledSpinner size="5em" fluidTypes={fluidTypes} isHome={isHome} /> + </div> + ) : ( + <BarChart + chartData={chartData} + fluidTypes={fluidTypes} + timeStep={timeStep} + multiFluid={multiFluid} + selectedDate={selectedDate} + showCompare={showCompare} + handleClickData={handleClickData} + height={height} + width={width} + challengePeriod={challengePeriod} + isSwitching={isSwitching} + isHome={isHome} + /> + )} + </div> + </> ) } diff --git a/src/components/ContentComponents/Navbar/Navbar.tsx b/src/components/ContentComponents/Navbar/Navbar.tsx index d4fc5e1f71849db51a41528f28859624ba317868..c9f4086a5b58f21ee3381b55955e857157291e8d 100644 --- a/src/components/ContentComponents/Navbar/Navbar.tsx +++ b/src/components/ContentComponents/Navbar/Navbar.tsx @@ -7,10 +7,13 @@ import Icon from 'cozy-ui/react/Icon' import ConsoIconOff from 'assets/icons/tabbar/conso/off.svg' import ChallengeIconOn from 'assets/icons/tabbar/defi/on.svg' import ChallengeIconOff from 'assets/icons/tabbar/defi/off.svg' -import ChallengeIconOffNotif from 'assets/icons/tabbar/defi/off-notif.svg' import ParameterIconOff from 'assets/icons/tabbar/parametre/off.svg' import ConsoIconOn from 'assets/icons/tabbar/conso/on.svg' import ParameterIconOn from 'assets/icons/tabbar/parametre/on.svg' +import EcogestesIconOn from 'assets/icons/tabbar/ecogeste/on.svg' +import EcogestesIconOff from 'assets/icons/tabbar/ecogeste/off.svg' +import ProfileIconOn from 'assets/icons/tabbar/profile/on.svg' +import ProfileIconOff from 'assets/icons/tabbar/profile/off.svg' import logoGrandLyon from 'assets/icons/tabbar/grand-lyon.svg' interface NavbarProps { @@ -48,7 +51,28 @@ export const Navbar = ({ t }: NavbarProps) => { {t('Nav.challenges')} </NavLink> </li> - + <li className="c-nav-item"> + <NavLink + to="/ecogestures" + className="c-nav-link" + activeClassName="is-active" + > + <Icon className="c-nav-icon off" icon={EcogestesIconOff} /> + <Icon className="c-nav-icon on" icon={EcogestesIconOn} /> + {t('Nav.ECOGESTURES')} + </NavLink> + </li> + <li className="c-nav-item"> + <NavLink + to="/profile" + className="c-nav-link" + activeClassName="is-active" + > + <Icon className="c-nav-icon off" icon={ProfileIconOff} /> + <Icon className="c-nav-icon on" icon={ProfileIconOn} /> + {t('Nav.profile')} + </NavLink> + </li> <li className="c-nav-item"> <NavLink to="/parameters" diff --git a/src/components/ContentComponents/PerformanceIndicator/FluidPerformanceIndicator.tsx b/src/components/ContentComponents/PerformanceIndicator/FluidPerformanceIndicator.tsx index ff20ad148d09aa04172fc25204fa102e320b657d..0e49f43955ee656a3a0cab43570f24da9e005353 100644 --- a/src/components/ContentComponents/PerformanceIndicator/FluidPerformanceIndicator.tsx +++ b/src/components/ContentComponents/PerformanceIndicator/FluidPerformanceIndicator.tsx @@ -13,7 +13,7 @@ interface FluidPerformanceIndicatorProps { performanceIndicator: IPerformanceIndicator timePeriodText: string fluidType: FluidType - t: any + t: Function } const FluidPerformanceIndicator: React.FC<FluidPerformanceIndicatorProps> = ({ diff --git a/src/components/ContentComponents/Report/Report.tsx b/src/components/ContentComponents/Report/Report.tsx new file mode 100644 index 0000000000000000000000000000000000000000..c5e5656d663488cd35b3573f55a0f11cee99d17c --- /dev/null +++ b/src/components/ContentComponents/Report/Report.tsx @@ -0,0 +1,79 @@ +import React, { useContext } from 'react' +import { translate } from 'cozy-ui/react/I18n' +import { AppContext } from 'components/Contexts/AppContextProvider' +import UserProfileManager from 'services/userProfileDataManagerService' +import { Client, withClient } from 'cozy-client' + +interface ReportProps { + t: Function + client: Client +} + +const Report: React.FC<ReportProps> = ({ t, client }: ReportProps) => { + const { userProfile, setUserProfile } = useContext(AppContext) + + const upm = new UserProfileManager(client) + const updatedUserProfile = async (value: string) => { + const updatedProfile = await upm.updateUserProfile({ report: value }) + if (updatedProfile) { + setUserProfile(updatedProfile) + } + } + + const handleChange = (e: React.ChangeEvent<HTMLInputElement>) => { + updatedUserProfile(e.target.value) + } + + return ( + <div className="report-root"> + <div className="report-content"> + <div className="head text-14-normal-uppercase"> + {t('PROFILE.REPORT.TITLE')} + </div> + <form action="" className="radios"> + <div className="input"> + <input + id="weekly" + name="report" + type="radio" + value="weekly" + onChange={handleChange} + checked={ + userProfile && userProfile.report === 'weekly' ? true : false + } + ></input> + <label htmlFor="weekly"> {t('PROFILE.REPORT.WEEKLY')}</label> + </div> + <div className="input"> + <input + id="monthly" + name="report" + type="radio" + value="monthly" + onChange={handleChange} + checked={ + userProfile && userProfile.report === 'monthly' ? true : false + } + ></input> + <label htmlFor="monthly"> {t('PROFILE.REPORT.MONTHLY')}</label> + </div> + <div className="input"> + <input + id="never" + name="report" + type="radio" + value="never" + onChange={handleChange} + checked={ + userProfile && userProfile.report === 'never' ? true : false + } + ></input> + <label htmlFor="never"> {t('PROFILE.REPORT.NEVER')}</label> + </div> + </form> + </div> + </div> + ) +} + +export default translate()(withClient(Report)) diff --git a/src/components/Contexts/AppContextProvider.tsx b/src/components/Contexts/AppContextProvider.tsx index 1cf2982fb3bee221305107e38e6fde79cfa62e40..095a772b2866de01ccc9ecedf85e8c27f915dcf0 100644 --- a/src/components/Contexts/AppContextProvider.tsx +++ b/src/components/Contexts/AppContextProvider.tsx @@ -28,12 +28,13 @@ interface AppContextProps { previousTimeStep: TimeStep setPreviousTimeStep: Function userProfile: UserProfile | null + setUserProfile: Function setWelcomeModalViewed: Function - chartIsLoaded: boolean - setChartIsLoaded: Function feedbackIsOpened: boolean setFeedbackOpened: Function disableBackgroundScroll: Function + maxLoads: Record<string, any> + setMaxLoads: Function } export const AppContext = React.createContext<AppContextProps>({ @@ -55,13 +56,14 @@ export const AppContext = React.createContext<AppContextProps>({ screenType: ScreenType.MOBILE, previousTimeStep: TimeStep.DAY, userProfile: null, + setUserProfile: () => null, setPreviousTimeStep: () => null, setWelcomeModalViewed: () => null, - chartIsLoaded: false, - setChartIsLoaded: () => null, feedbackIsOpened: false, setFeedbackOpened: () => null, disableBackgroundScroll: () => null, + maxLoads: {}, + setMaxLoads: () => null, }) interface AppContextProviderProps { @@ -73,9 +75,9 @@ const AppContextProvider: React.FC<AppContextProviderProps> = ({ children, client, }: AppContextProviderProps) => { - const [chartIsLoaded, setChartIsLoaded] = useState<boolean>(false) const [feedbackIsOpened, setFeedbackOpened] = useState<boolean>(false) const [isIndexesLoading, setIndexesLoading] = useState<boolean>(false) + const [maxLoads, setMaxLoads] = useState<object>({}) const [isIndexesLoadingSuccess, setIndexesLoadingSuccess] = useState< boolean | null >(null) @@ -341,14 +343,15 @@ const AppContextProvider: React.FC<AppContextProviderProps> = ({ isError, screenType, userProfile, + setUserProfile, previousTimeStep, setPreviousTimeStep, setWelcomeModalViewed, - setChartIsLoaded, - chartIsLoaded, feedbackIsOpened, setFeedbackOpened, disableBackgroundScroll, + maxLoads, + setMaxLoads, }} > {children} diff --git a/src/cozy-client.d.ts b/src/cozy-client.d.ts index c3be97b9c91d3ca9a2a686579ef8517c7b40e513..b7e058c87e899350fca479f64af60d21f6e82e1a 100644 --- a/src/cozy-client.d.ts +++ b/src/cozy-client.d.ts @@ -1,5 +1,3 @@ -import { Component } from 'react' - declare module 'cozy-client' type QueryDefinition = { @@ -28,8 +26,8 @@ type Offline = { export type Client = { find(doctype: string): typeof QueryDefinition query(doctype: string): typeof QueryDefinition - destroy(document: any): typeof QueryDefinition - save(document: any): typeof QueryDefinition + destroy(document: Document): typeof QueryDefinition + save(document: Document): typeof QueryDefinition create( doctype: string, entry: any, diff --git a/src/locales/fr.json b/src/locales/fr.json index 032de073e7987a91ed95d4f25c4d88075b846707..2469c9cfbeb901aaefba94cc6463c55d341b28bc 100644 --- a/src/locales/fr.json +++ b/src/locales/fr.json @@ -13,13 +13,14 @@ "ECOGESTURES": "Ecogestes", "BADGES": "Badges", "parameters": "Options", + "profile": "Profil", "connectors": "connecteurs", "graphs": "graphes" }, "COMMON": { "APP_TITLE": "Ecolyo", "APP_CHALLENGE_TITLE": "Défis", - "APP_ECO_GESTURE_TITLE": "Eco-gestes", + "APP_ECO_GESTURE_TITLE": "Ecogestes", "APP_PARAMETERS_TITLE": "Options", "APP_HELLO": "Bonjour", "APP_PRESENTATION": "Votre consommation d'énergie", @@ -109,6 +110,14 @@ "DISPLAY_DETAIL": "Voir le détail", "DISPLAY_LAST_DATA": "Voir mes dernières consos" }, + "PROFILE": { + "REPORT": { + "TITLE": "Réception du bilan énergétique", + "WEEKLY": "Hebdomadaire", + "MONTHLY": "Mensuel", + "NEVER": "Jamais" + } + }, "KONNECTORCONFIG": { "TITLE_CONNECTION": "Connexion aux distributeurs", "TITLE_KONNECTEURS": "connecteurs", diff --git a/src/services/challengeDataMapperService.ts b/src/services/challengeDataMapperService.ts index c865ca78e1c5646085e235aa3f5203af44745433..d55871c5f6501f6a1695a18ad8e64f3cdbbd73a2 100644 --- a/src/services/challengeDataMapperService.ts +++ b/src/services/challengeDataMapperService.ts @@ -18,7 +18,7 @@ export class UserChallengeEntity { maxEnergy: number currentEnergy: number badge: BadgeState - relationships: any + relationships: object fluidTypes: FluidType[] constructor( @@ -28,7 +28,7 @@ export class UserChallengeEntity { maxEnergy: number, currentEnergy: number, badge: BadgeState, - relationships: any, + relationships: object, fluidTypes: FluidType[], _id?: string ) { @@ -52,7 +52,7 @@ export class ChallengeTypeEntity { level: number duration: Duration fluidTypes: FluidType[] - relationships: any + relationships: object constructor( _id: string, diff --git a/src/services/consumptionDataManagerService.ts b/src/services/consumptionDataManagerService.ts index b203ecb491b6e8db3d992536e511e790cf11a23d..9b8b0cc25f5932598c8cf3c822b5c0d9edbefa41 100644 --- a/src/services/consumptionDataManagerService.ts +++ b/src/services/consumptionDataManagerService.ts @@ -37,7 +37,8 @@ export default class ConsumptionDataManager implements IConsumptionDataManager { timePeriod: ITimePeriod, timeStep: TimeStep, fluidTypes: FluidType[], - compareTimePeriod?: ITimePeriod + compareTimePeriod?: ITimePeriod, + isHome?: boolean ): Promise<IChartData | null> { const InputisValid: boolean = this._consumptionDataValidator.ValidateGetGraphData( timePeriod, @@ -50,7 +51,7 @@ export default class ConsumptionDataManager implements IConsumptionDataManager { let mappedData = null - if (fluidTypes.length === 1) { + if (fluidTypes.length === 1 && !isHome) { //TODO validating input data //TODO applying buisness logic to the query arguments @@ -60,6 +61,7 @@ export default class ConsumptionDataManager implements IConsumptionDataManager { timePeriod, timeStep, fluidTypes[0], + false, compareTimePeriod ) @@ -75,13 +77,14 @@ export default class ConsumptionDataManager implements IConsumptionDataManager { // mapping result to contract mappedData = formattedData - } else if (fluidTypes.length > 1) { + } else if (fluidTypes.length > 1 || isHome) { const toBeAgreggatedData: ISingleFluidChartData[] = [] for (const fluidType of fluidTypes) { const fetchedData = await this.fetchSingleFLuidGraphData( timePeriod, timeStep, fluidType, + false, compareTimePeriod ) @@ -111,6 +114,39 @@ export default class ConsumptionDataManager implements IConsumptionDataManager { return mappedData } + public async getMaxLoad( + maxTimePeriod: ITimePeriod, + timeStep: TimeStep, + fluidTypes: FluidType[], + compareMaxTimePeriod?: ITimePeriod, + isHome?: boolean + ): Promise<number | null> { + let allData + if (isHome) { + allData = await this.getGraphData( + maxTimePeriod, + timeStep, + fluidTypes, + compareMaxTimePeriod, + isHome + ) + + const max = + allData && allData.actualData + ? Math.max(...allData.actualData.map(d => d.value)) + : 0 + + return max + } else { + const max = await this._queryRunner.fetchFluidMaxData( + maxTimePeriod, + timeStep, + fluidTypes[0] + ) + return max + } + } + public async getPerformanceIndicators( timePeriod: ITimePeriod, timeStep: TimeStep, @@ -190,12 +226,19 @@ export default class ConsumptionDataManager implements IConsumptionDataManager { timePeriod: ITimePeriod, timeStep: TimeStep, fluidType: FluidType, + maxLoad: boolean, compareTimePeriod?: ITimePeriod ): Promise<IChartData | null> { let actualData: IDataload[] | null = [] let comparisonData: IDataload[] | null = [] let singleFluidGraphData: IChartData | null = null - + if (maxLoad) { + actualData = await this._queryRunner.fetchFluidData( + timePeriod, + timeStep, + fluidType + ) + } if (compareTimePeriod) { const result = await Promise.all([ this._queryRunner.fetchFluidData(timePeriod, timeStep, fluidType), diff --git a/src/services/consumptionDataValidatorService.ts b/src/services/consumptionDataValidatorService.ts index 4ae36fed62149da06319f8ffd5be0d2e75a9c581..b5e9b8088867f40fd59044edafcb57d0f6429848 100644 --- a/src/services/consumptionDataValidatorService.ts +++ b/src/services/consumptionDataValidatorService.ts @@ -43,7 +43,7 @@ export default class ConsumptionDataValidator { ) if (timeStep == TimeStep.HALF_AN_HOUR && interval.length('hour') > 24) return false - if (timeStep == TimeStep.DAY && interval.length('day') > 31) return false + if (timeStep == TimeStep.DAY && interval.length('day') > 36) return false if (timeStep == TimeStep.MONTH && interval.length('month') > 12) return false if (timeStep == TimeStep.YEAR && interval.length('year') > 10) return false diff --git a/src/services/consumptionPeriodSelectorService.ts b/src/services/consumptionPeriodSelectorService.ts index 09335ad7ffaf63a36e7e9efa7b57aea5f43a3a11..cd06ce689bfa682c69ff47df24f6b25496aa1a90 100644 --- a/src/services/consumptionPeriodSelectorService.ts +++ b/src/services/consumptionPeriodSelectorService.ts @@ -1,6 +1,6 @@ import { DateTime } from 'luxon' import { FluidType } from 'enum/fluid.enum' -import { ITimePeriod, TimeStep, TimePeriod } from './dataConsumptionContracts' +import { ITimePeriod, TimeStep } from './dataConsumptionContracts' import Config from '../../config.json' import IFluidConfig from './IFluidConfig' diff --git a/src/services/dataChallengeContracts.ts b/src/services/dataChallengeContracts.ts index 766705ac0ab45e6866a32107b6866e7f24c871f9..61b0ee344d54edd2a14ffaadb313d5fef18876aa 100644 --- a/src/services/dataChallengeContracts.ts +++ b/src/services/dataChallengeContracts.ts @@ -141,19 +141,22 @@ export class UserProfile { challengeTypeHash: string ecogestureHash: string haveSeenWelcomeModal: boolean + report: string constructor( id: string, level: number, challengeTypeHash: string, ecogestureHash: string, - haveSeenWelcomeModal: boolean + haveSeenWelcomeModal: boolean, + report: string ) { this.id = id this.level = level this.challengeTypeHash = challengeTypeHash this.ecogestureHash = ecogestureHash this.haveSeenWelcomeModal = haveSeenWelcomeModal + this.report = report } } diff --git a/src/services/dataConsumptionContracts.ts b/src/services/dataConsumptionContracts.ts index ef8373498613e85d5600e8f4640d4aae5c9b39d3..9bd1b234b225038c1f7779357aee391e1ad4f340 100644 --- a/src/services/dataConsumptionContracts.ts +++ b/src/services/dataConsumptionContracts.ts @@ -16,7 +16,7 @@ export interface IPerformanceIndicator { percentageVariation: number | null } -class Dataload implements IDataload { +/*class Dataload implements IDataload { date: DateTime value: number valueDetail?: number[] @@ -26,7 +26,7 @@ class Dataload implements IDataload { this.value = value this.valueDetail = valueDetail } -} +}*/ export interface IChartData { actualData: IDataload[] @@ -73,9 +73,18 @@ export interface IConsumptionDataManager { timePeriod: ITimePeriod, timeStep: TimeStep, fluidTypes: FluidType[], - compareTimePeriod?: ITimePeriod + compareTimePeriod?: ITimePeriod, + isHome?: boolean ): Promise<IChartData | null> + getMaxLoad( + timePeriod: ITimePeriod, + timeStep: TimeStep, + fluidTypes: FluidType[], + compareTimePeriod?: ITimePeriod, + isHome?: boolean + ): Promise<number | null> + fetchLastDateData(fluidType: FluidType[]): Promise<DateTime | null> getPerformanceIndicators( diff --git a/src/services/queryRunnerService.ts b/src/services/queryRunnerService.ts index a5c0e288929f68824fd7a3de26b09e0b49cc1182..a788e6d6c53959cf36b6c306343daaa6b938c513 100644 --- a/src/services/queryRunnerService.ts +++ b/src/services/queryRunnerService.ts @@ -72,12 +72,48 @@ export class QueryRunner { if (result && result.data) { const filteredResult = this.filterDataList(result, timePeriod) const mappedResult = this.mapDataList(filteredResult) + return mappedResult } return null } + public async fetchFluidMaxData( + maxTimePeriod: ITimePeriod, + timeStep: TimeStep, + fluidType: FluidType + ): Promise<number | null> { + const result = await this.fetchData( + this.buildMaxQuery(timeStep, maxTimePeriod, fluidType, this._max_limit) + ) + if (timeStep === TimeStep.HALF_AN_HOUR) { + const lastDayOfPreviousMonth = { + startDate: maxTimePeriod.startDate.plus({ day: -1 }), + endDate: maxTimePeriod.startDate.plus({ day: -1 }).endOf('days'), + } + const lastDayOfPreviousMonthResult = await this.fetchData( + this.buildMaxQuery( + timeStep, + lastDayOfPreviousMonth, + fluidType, + this._max_limit + ) + ) + return Math.max( + lastDayOfPreviousMonthResult.data[0].load, + result.data[0].load + ) + } + + if (result && result.data) { + const filteredResult = this.filterDataList(result, maxTimePeriod) + const mappedResult = this.mapDataList(filteredResult) + return mappedResult && mappedResult[0] && mappedResult[0].value + } + return null + } + public async getLastDateData(fluidType: FluidType): Promise<DateTime | null> { const result = await this.fetchData(this.buildLastDateQuery(fluidType, 1)) @@ -167,6 +203,29 @@ export class QueryRunner { .limitBy(limit) } + private buildMaxQuery( + timeStep: TimeStep, + maxTimePeriod: ITimePeriod, + fluidType: FluidType, + limit: number + ) { + const doctype = this.getRelevantDoctype(fluidType, timeStep) + if (timeStep === TimeStep.HALF_AN_HOUR) { + const lastDayOfPreviousMonth = maxTimePeriod.startDate.plus({ day: -1 }) + + return this._client + .find(doctype) + .where(this.getPredicate(maxTimePeriod, 20)) + .limitBy(1) + .sortBy([{ load: 'desc' }]) + } + return this._client + .find(doctype) + .where(this.getPredicate(maxTimePeriod, timeStep)) + .limitBy(limit) + .sortBy([{ load: 'desc' }]) + } + private withinDateBoundaries(dateTime: DateTime, timePeriod: ITimePeriod) { return dateTime <= timePeriod.endDate && dateTime >= timePeriod.startDate } @@ -221,7 +280,7 @@ export class QueryRunner { .where({}) .indexFields(['year', 'month', 'day']) .sortBy([{ year: 'desc' }, { month: 'desc' }, { day: 'desc' }]) - .limitBy(1) + .limitBy(limit) } private getPredicate(timePeriod: ITimePeriod, timeStep: TimeStep) { diff --git a/src/styles/components/_fluid.scss b/src/styles/components/_fluid.scss index 270a37b2c3f0af3a11a3ec8c1b3a2cb52ef47b1a..469fdd027d28c279b9ca9174dca7fd00072e4e47 100644 --- a/src/styles/components/_fluid.scss +++ b/src/styles/components/_fluid.scss @@ -120,7 +120,6 @@ height: auto; } - //FluidSwipe .fs-root { flex: 1; @@ -128,6 +127,11 @@ @media #{$large-phone} { height: 14rem; } + .chart-loading { + width: 100%; + justify-content: center; + display: flex; + } .fs-slide { min-height: 22rem; overflow-x: hidden; @@ -137,6 +141,13 @@ @media #{$large-phone} { min-height: 14rem; } + .chart-none { + visibility: hidden; + width: 0; + } + .chart-block { + visibility: visible; + } } } diff --git a/src/styles/components/_nav.scss b/src/styles/components/_nav.scss index 1c3d2dc6fe710934dffffb019f8912fab3a3042c..e6e5b155e9f499257bef5ca914335f73a25c48d8 100644 --- a/src/styles/components/_nav.scss +++ b/src/styles/components/_nav.scss @@ -7,13 +7,7 @@ 0px 8px 10px rgba(0, 0, 0, 0.14); border-top: unset; border-right: unset; - // justify-content: flex-end; z-index: 19; - // position: fixed; - // bottom: 0; - // left: 0; - // display: block; - // width: 100%; @media #{$tablet} { background-color: $primary-color; } @@ -28,6 +22,7 @@ } .c-nav-link { padding: 0 1rem; + font-size: 0.9rem; .on { display: none; } @@ -40,10 +35,19 @@ // display: flex; // list-style: none; // justify-content: space-around; +// height: 56px; +// align-items: center; // } +@media #{$tablet} { + .c-nav-item { + height: 54px; + margin: -0.3rem 0 0 0; + } +} + .c-nav-link .c-nav-icon { padding-right: 0.5rem; - width: 50px; + width: 60px; height: 36px; fill: none; } diff --git a/src/styles/components/_report.scss b/src/styles/components/_report.scss new file mode 100644 index 0000000000000000000000000000000000000000..3d1c5e0340c3d2a827af6e14ed8c0624b14c927a --- /dev/null +++ b/src/styles/components/_report.scss @@ -0,0 +1,61 @@ +.report-root { + display: flex; + flex-direction: column; + align-items: center; + justify-content: center; + padding: 0 1.5rem; + .report-content { + width: 45.75rem; + @media #{$large-phone} { + width: 100%; + } + } + .head { + margin-top: 2rem; + color: $google-text-1; + } + .radios { + margin-top: 0.5rem; + .input { + padding: 0.5rem; + input[type='radio'] { + box-sizing: border-box; + -webkit-appearance: none; + outline: none; + border-radius: 50%; + position: relative; + top: 0.3rem; + width: 1.3rem; + height: 1.3rem; + border: 2px solid $google-text-1; + background: transparent; + &:after { + transition: all 300ms ease; + content: ''; + border-radius: 50%; + } + &:checked { + &:after { + content: ''; + position: absolute; + top: -2px; + left: -2px; + box-sizing: border-box; + width: inherit; + height: inherit; + background-color: transparent; + border-radius: 50%; + border: 6px solid $gold-shadow; + } + } + } + input:checked label { + color: $google-text-1; + } + } + label { + color: $text-dark; + margin-left: 1rem; + } + } +} diff --git a/src/styles/index.css b/src/styles/index.css index 64441c8f78e7b9f80fa6f256d88eaee850561053..bf119c41ef2628c7395e658d8f7addf47b9ba5d0 100644 --- a/src/styles/index.css +++ b/src/styles/index.css @@ -46,7 +46,7 @@ body { @media only screen and (max-width: 768px) { /* line 30, src/styles/base/_layout.scss */ [role='banner'] .coz-bar-container { - padding: 0 3.25em 0 0; + padding: 0 0 0 0; background-color: unset; } } /* line 38, src/styles/base/_layout.scss */ @@ -84,15 +84,9 @@ body { color: #e0e0e0; } /* line 73, src/styles/base/_layout.scss */ .header .header-content { - margin: 0 0 0 220px; } - /* line 75, src/styles/base/_layout.scss */ - .header .header-content .header-text { - padding: 2rem 1rem; } - /* line 78, src/styles/base/_layout.scss */ - .header .header-content .header-text-desktop { - display: block; - padding: 2rem 1.25rem; - color: #e0e0e0; } + margin: 0 0 0 220px; + display: flex; + flex-direction: column; } @media only screen and (max-width: 1023px) { /* line 73, src/styles/base/_layout.scss */ .header .header-content { @@ -100,24 +94,48 @@ body { @media only screen and (max-width: 768px) { /* line 73, src/styles/base/_layout.scss */ .header .header-content { - margin: 60px 0 0 0; } - /* line 88, src/styles/base/_layout.scss */ - .header .header-content .header-text { + margin: 60px 0 0 0; } } + /* line 83, src/styles/base/_layout.scss */ + .header .header-content .header-content-top { + display: flex; + flex-direction: row; } + /* line 86, src/styles/base/_layout.scss */ + .header .header-content .header-content-top.header-content-top-right { + justify-content: flex-end; } + /* line 89, src/styles/base/_layout.scss */ + .header .header-content .header-content-top .header-text { + padding: 2rem 1rem; + flex: 1; } + /* line 93, src/styles/base/_layout.scss */ + .header .header-content .header-content-top .header-text-desktop { + display: flex; + flex: 1; + padding: 2rem 1.25rem; + color: #e0e0e0; } + /* line 99, src/styles/base/_layout.scss */ + .header .header-content .header-content-top .header-back-button { + padding: 0 0.75rem; } + @media only screen and (max-width: 768px) { + /* line 103, src/styles/base/_layout.scss */ + .header .header-content .header-content-top .header-text { padding: 0 1rem 1rem 1rem; color: #e0e0e0; } - /* line 92, src/styles/base/_layout.scss */ - .header .header-content .header-text-desktop { + /* line 107, src/styles/base/_layout.scss */ + .header .header-content .header-content-top .header-text-desktop { + display: none; } + /* line 110, src/styles/base/_layout.scss */ + .header .header-content .header-content-top .header-feedbacks-button { display: none; } } -/* line 99, src/styles/base/_layout.scss */ +/* line 118, src/styles/base/_layout.scss */ .content-view { margin-top: 116px; } @media only screen and (max-width: 768px) { - /* line 99, src/styles/base/_layout.scss */ + /* line 118, src/styles/base/_layout.scss */ .content-view { margin-top: 0; } } -/* line 106, src/styles/base/_layout.scss */ +/* line 125, src/styles/base/_layout.scss */ .content-view-loading { height: 80vh; width: 100%; @@ -126,28 +144,28 @@ body { justify-content: center; align-items: center; color: #e0e0e0; } - /* line 114, src/styles/base/_layout.scss */ + /* line 133, src/styles/base/_layout.scss */ .content-view-loading .content-view-loading-text { padding-top: 1rem; margin: 0 2rem; text-align: center; } - /* line 119, src/styles/base/_layout.scss */ + /* line 138, src/styles/base/_layout.scss */ .content-view-loading .content-view-loading-button { max-width: 50vw; margin-top: 1rem; } -/* line 125, src/styles/base/_layout.scss */ +/* line 144, src/styles/base/_layout.scss */ [role='main'] { /* width */ /* Track */ /* Handle */ } - /* line 127, src/styles/base/_layout.scss */ + /* line 146, src/styles/base/_layout.scss */ [role='main']::-webkit-scrollbar { width: 10px; } - /* line 131, src/styles/base/_layout.scss */ + /* line 150, src/styles/base/_layout.scss */ [role='main']::-webkit-scrollbar-track { background: #3e4045; } - /* line 135, src/styles/base/_layout.scss */ + /* line 154, src/styles/base/_layout.scss */ [role='main']::-webkit-scrollbar-thumb { background: #6f7074; } @@ -222,6 +240,22 @@ p { color: #7fd771; } /* line 53, src/styles/base/_typography.scss */ +.text-10-normal { + font-family: Lato, sans-serif; + font-style: normal; + font-weight: normal; + font-size: 0.625rem; + line-height: 120%; } + +/* line 60, src/styles/base/_typography.scss */ +.text-10-bold { + font-family: Lato, sans-serif; + font-style: normal; + font-weight: bold; + font-size: 0.625rem; + line-height: 120%; } + +/* line 67, src/styles/base/_typography.scss */ .text-14-normal { font-family: Lato, sans-serif; font-style: normal; @@ -229,7 +263,7 @@ p { font-size: 0.875rem; line-height: 120%; } -/* line 60, src/styles/base/_typography.scss */ +/* line 74, src/styles/base/_typography.scss */ .text-14-normal-uppercase { font-family: Lato, sans-serif; font-style: normal; @@ -238,7 +272,7 @@ p { line-height: 120%; text-transform: uppercase; } -/* line 68, src/styles/base/_typography.scss */ +/* line 82, src/styles/base/_typography.scss */ .text-15-normal { font-family: Lato, sans-serif; font-style: normal; @@ -246,7 +280,7 @@ p { font-size: 0.938rem; line-height: 120%; } -/* line 75, src/styles/base/_typography.scss */ +/* line 89, src/styles/base/_typography.scss */ .text-16-normal { font-family: Lato, sans-serif; font-style: normal; @@ -254,7 +288,7 @@ p { font-size: 1rem; line-height: 120%; } -/* line 82, src/styles/base/_typography.scss */ +/* line 96, src/styles/base/_typography.scss */ .text-16-normal-150 { font-family: Lato, sans-serif; font-style: normal; @@ -262,7 +296,7 @@ p { font-size: 1rem; line-height: 150%; } -/* line 89, src/styles/base/_typography.scss */ +/* line 103, src/styles/base/_typography.scss */ .text-16-bold { font-family: Lato, sans-serif; font-style: normal; @@ -270,15 +304,15 @@ p { font-size: 1rem; line-height: 120%; } -/* line 96, src/styles/base/_typography.scss */ -.text-18-medium { +/* line 110, src/styles/base/_typography.scss */ +.text-18-normal { font-family: Lato, sans-serif; font-style: normal; font-weight: 500; font-size: 1.125rem; line-height: 120%; } -/* line 103, src/styles/base/_typography.scss */ +/* line 117, src/styles/base/_typography.scss */ .text-18-bold { font-family: Lato, sans-serif; font-style: normal; @@ -286,7 +320,7 @@ p { font-size: 1.125rem; line-height: 120%; } -/* line 110, src/styles/base/_typography.scss */ +/* line 124, src/styles/base/_typography.scss */ .text-19-bold { font-family: Lato, sans-serif; font-style: normal; @@ -294,7 +328,7 @@ p { font-size: 1.188rem; line-height: 120%; } -/* line 117, src/styles/base/_typography.scss */ +/* line 131, src/styles/base/_typography.scss */ .text-20-bold { font-family: Lato, sans-serif; font-style: normal; @@ -302,7 +336,7 @@ p { font-size: 1.25rem; line-height: 120%; } -/* line 124, src/styles/base/_typography.scss */ +/* line 138, src/styles/base/_typography.scss */ .text-21-bold { font-family: Lato, sans-serif; font-style: normal; @@ -310,7 +344,7 @@ p { font-size: 1.313rem; line-height: 120%; } -/* line 131, src/styles/base/_typography.scss */ +/* line 145, src/styles/base/_typography.scss */ .text-22-normal { font-family: Lato, sans-serif; font-style: normal; @@ -318,7 +352,7 @@ p { font-size: 1.375rem; line-height: 120%; } -/* line 138, src/styles/base/_typography.scss */ +/* line 152, src/styles/base/_typography.scss */ .text-22-bold { font-family: Lato, sans-serif; font-style: normal; @@ -326,7 +360,7 @@ p { font-size: 1.375rem; line-height: 120%; } -/* line 145, src/styles/base/_typography.scss */ +/* line 159, src/styles/base/_typography.scss */ .text-24-normal { font-family: Lato, sans-serif; font-style: normal; @@ -334,7 +368,7 @@ p { font-size: 1.5rem; line-height: 120%; } -/* line 152, src/styles/base/_typography.scss */ +/* line 166, src/styles/base/_typography.scss */ .text-24-bold { font-family: Lato, sans-serif; font-style: normal; @@ -343,7 +377,7 @@ p { line-height: 120%; } /* Button */ -/* line 162, src/styles/base/_typography.scss */ +/* line 176, src/styles/base/_typography.scss */ .button-primary-text span { font-family: Lato, sans-serif; font-style: normal; @@ -352,7 +386,7 @@ p { line-height: 120%; color: #e0e0e0; } -/* line 171, src/styles/base/_typography.scss */ +/* line 185, src/styles/base/_typography.scss */ .button-secondary-text { font-family: Lato, sans-serif; font-style: normal; @@ -362,7 +396,7 @@ p { color: #e0e0e0; } /* Card */ -/* line 181, src/styles/base/_typography.scss */ +/* line 195, src/styles/base/_typography.scss */ .card-title-on { font-family: Lato, sans-serif; font-style: normal; @@ -371,7 +405,7 @@ p { line-height: 120%; color: #e0e0e0; } -/* line 189, src/styles/base/_typography.scss */ +/* line 203, src/styles/base/_typography.scss */ .card-title-off { font-family: Lato, sans-serif; font-style: normal; @@ -380,7 +414,7 @@ p { line-height: 120%; color: #e0e0e0; } -/* line 197, src/styles/base/_typography.scss */ +/* line 211, src/styles/base/_typography.scss */ .card-text-bold { font-family: Lato, sans-serif; font-style: normal; @@ -389,7 +423,7 @@ p { line-height: 120%; color: #e0e0e0; } -/* line 205, src/styles/base/_typography.scss */ +/* line 219, src/styles/base/_typography.scss */ .card-result { font-family: Lato, sans-serif; font-style: normal; @@ -398,7 +432,7 @@ p { line-height: 120%; color: #e0e0e0; } -/* line 213, src/styles/base/_typography.scss */ +/* line 227, src/styles/base/_typography.scss */ .card-indicator { font-family: Lato, sans-serif; font-style: normal; @@ -407,7 +441,7 @@ p { line-height: 120%; color: #e0e0e0; } -/* line 221, src/styles/base/_typography.scss */ +/* line 235, src/styles/base/_typography.scss */ .card-text { font-family: Lato, sans-serif; font-style: normal; @@ -417,7 +451,7 @@ p { color: #e0e0e0; } /* Chart */ -/* line 231, src/styles/base/_typography.scss */ +/* line 245, src/styles/base/_typography.scss */ .chart-date { font-family: Lato, sans-serif; font-style: normal; @@ -426,7 +460,7 @@ p { line-height: 123%; color: #e0e0e0; } -/* line 239, src/styles/base/_typography.scss */ +/* line 253, src/styles/base/_typography.scss */ .chart-result { font-family: Lato, sans-serif; font-style: normal; @@ -435,7 +469,7 @@ p { line-height: 120%; color: #e0e0e0; } -/* line 247, src/styles/base/_typography.scss */ +/* line 261, src/styles/base/_typography.scss */ .chart-fluid { font-family: Lato, sans-serif; font-style: normal; @@ -444,7 +478,7 @@ p { line-height: 120%; color: #e0e0e0; } -/* line 255, src/styles/base/_typography.scss */ +/* line 269, src/styles/base/_typography.scss */ .chart-switch-text { font-family: Lato, sans-serif; font-style: normal; @@ -453,7 +487,7 @@ p { line-height: 120%; color: #e0e0e0; } -/* line 263, src/styles/base/_typography.scss */ +/* line 277, src/styles/base/_typography.scss */ .chart-ticks-x-text { font-family: Lato, sans-serif; font-style: normal; @@ -461,11 +495,11 @@ p { font-size: 1rem; line-height: 120%; } @media only screen and (max-width: 768px) { - /* line 263, src/styles/base/_typography.scss */ + /* line 277, src/styles/base/_typography.scss */ .chart-ticks-x-text { font-size: 0.875rem; } } -/* line 273, src/styles/base/_typography.scss */ +/* line 287, src/styles/base/_typography.scss */ .chart-ticks-y-text { font-family: Lato, sans-serif; font-style: normal; @@ -473,12 +507,12 @@ p { font-size: 0.9rem; line-height: 120%; } @media only screen and (max-width: 768px) { - /* line 273, src/styles/base/_typography.scss */ + /* line 287, src/styles/base/_typography.scss */ .chart-ticks-y-text { font-size: 0.75rem; } } /* Cozy bar */ -/* line 285, src/styles/base/_typography.scss */ +/* line 299, src/styles/base/_typography.scss */ .cozybar { font-family: Lato, sans-serif; font-style: normal; @@ -488,7 +522,7 @@ p { color: #e0e0e0; } /* List */ -/* line 295, src/styles/base/_typography.scss */ +/* line 309, src/styles/base/_typography.scss */ .list-title { font-family: Lato, sans-serif; font-style: normal; @@ -499,7 +533,7 @@ p { color: #e0e0e0; } /* Tab */ -/* line 306, src/styles/base/_typography.scss */ +/* line 320, src/styles/base/_typography.scss */ .tab-text-on { font-family: Lato, sans-serif; font-style: normal; @@ -507,7 +541,7 @@ p { font-size: 1rem; line-height: 120%; } -/* line 313, src/styles/base/_typography.scss */ +/* line 327, src/styles/base/_typography.scss */ .tab-text-off { font-family: Lato, sans-serif; font-style: normal; @@ -622,11 +656,11 @@ p { /** TABS GRADIENT **/ /* line 4, src/styles/components/_form.scss */ .form { - padding: 1vh 1.5vw; } + padding: 1rem; } @media only screen and (max-width: 768px) { /* line 4, src/styles/components/_form.scss */ .form { - padding: 1vh 0; } } + padding: 1rem; } } /* line 9, src/styles/components/_form.scss */ .form label { font-style: normal; @@ -824,26 +858,27 @@ p { /** GREY **/ /** App colors **/ /** TABS GRADIENT **/ -/* line 4, src/styles/components/_konnector.scss */ +/* line 3, src/styles/components/_konnector.scss */ .accordion { display: flex; flex-direction: column; color: white; - padding: 1rem 1rem; + padding: 1rem 0; margin-bottom: 2vh; border-radius: 4px; background: linear-gradient(180deg, #323339 0%, #25262b 100%); box-shadow: 0px 4px 8px rgba(0, 0, 0, 0.75); transition: background-color 0.6s ease; } - /* line 14, src/styles/components/_konnector.scss */ + /* line 13, src/styles/components/_konnector.scss */ .accordion.active { background-color: #34353a; } - /* line 18, src/styles/components/_konnector.scss */ + /* line 17, src/styles/components/_konnector.scss */ .accordion .accordion-header { display: flex; align-items: center; border: none; - outline: none; } + outline: none; + padding: 0 1rem; } /* line 23, src/styles/components/_konnector.scss */ .accordion .accordion-header:hover { cursor: pointer; } @@ -909,110 +944,131 @@ p { /* line 86, src/styles/components/_konnector.scss */ .accordion .inline-buttons { display: flex; - flex-flow: row nowrap; } - /* line 90, src/styles/components/_konnector.scss */ + flex-flow: row nowrap; + padding: 0 1rem; } + /* line 91, src/styles/components/_konnector.scss */ + .accordion .konnector-delete { + margin-right: 0.25rem; + color: #D25959 !important; } + /* line 95, src/styles/components/_konnector.scss */ + .accordion .konnector-update { + margin-left: 0.25rem; } + /* line 98, src/styles/components/_konnector.scss */ .accordion .btn-position { width: 100%; margin: 0.5rem 1rem; } -/* line 96, src/styles/components/_konnector.scss */ +/* line 103, src/styles/components/_konnector.scss */ +.--errored { + border: solid 1px #D25959; } + +/* line 107, src/styles/components/_konnector.scss */ .kv-root { display: flex; flex-direction: column; align-items: center; justify-content: center; padding: 0 1.5rem; } - /* line 102, src/styles/components/_konnector.scss */ + /* line 113, src/styles/components/_konnector.scss */ .kv-root .kv-content { width: 45.75rem; } @media only screen and (max-width: 768px) { - /* line 102, src/styles/components/_konnector.scss */ + /* line 113, src/styles/components/_konnector.scss */ .kv-root .kv-content { width: 100%; } } - /* line 107, src/styles/components/_konnector.scss */ + /* line 118, src/styles/components/_konnector.scss */ .kv-root .kv-content .kv-header { margin-top: 2.5rem; margin-bottom: 1.25rem; color: #e0e0e0; } -/* line 116, src/styles/components/_konnector.scss */ +/* line 127, src/styles/components/_konnector.scss */ .knotfound { margin: 0 1.5rem; } @media only screen and (max-width: 768px) { - /* line 116, src/styles/components/_konnector.scss */ + /* line 127, src/styles/components/_konnector.scss */ .knotfound { margin: 0; } } - /* line 121, src/styles/components/_konnector.scss */ + /* line 132, src/styles/components/_konnector.scss */ .knotfound .knotfound-text { color: #e0e0e0; padding-top: 1rem; } - /* line 125, src/styles/components/_konnector.scss */ + /* line 136, src/styles/components/_konnector.scss */ .knotfound .knotfound-button { margin-bottom: 1rem; } -/* line 131, src/styles/components/_konnector.scss */ +/* line 142, src/styles/components/_konnector.scss */ .koauthform { - margin: 0 1.5rem; } + margin: 0 1.5rem; + padding: 0 1rem; } + /* line 145, src/styles/components/_konnector.scss */ + .koauthform .create-account { + color: #e0e0e0; } @media only screen and (max-width: 768px) { - /* line 131, src/styles/components/_konnector.scss */ + /* line 142, src/styles/components/_konnector.scss */ .koauthform { - margin: 0; } } - /* line 136, src/styles/components/_konnector.scss */ + margin: 0; + padding: 0 1rem; } } + /* line 152, src/styles/components/_konnector.scss */ .koauthform .koauthform-text { color: #e0e0e0; padding-top: 1rem; } - /* line 140, src/styles/components/_konnector.scss */ + /* line 156, src/styles/components/_konnector.scss */ .koauthform .koauthform-button { margin-bottom: 1rem; } -/* line 147, src/styles/components/_konnector.scss */ +/* line 163, src/styles/components/_konnector.scss */ +.kloginauthform .create-account { + color: #e0e0e0; } + +/* line 166, src/styles/components/_konnector.scss */ .kloginauthform .kloginauthform-text { color: #e0e0e0; padding-top: 1rem; } -/* line 151, src/styles/components/_konnector.scss */ +/* line 170, src/styles/components/_konnector.scss */ .kloginauthform .kloginauthform-button { margin-bottom: 1rem; } -/* line 158, src/styles/components/_konnector.scss */ +/* line 176, src/styles/components/_konnector.scss */ .klaunch-content { margin: 0.5rem 1.5rem; } @media only screen and (max-width: 768px) { - /* line 158, src/styles/components/_konnector.scss */ + /* line 176, src/styles/components/_konnector.scss */ .klaunch-content { margin: 0.5rem 0; } } - /* line 163, src/styles/components/_konnector.scss */ + /* line 181, src/styles/components/_konnector.scss */ .klaunch-content .klaunch-content-text { color: #e0e0e0; margin: 1rem; text-align: center; } - /* line 167, src/styles/components/_konnector.scss */ + /* line 185, src/styles/components/_konnector.scss */ .klaunch-content .klaunch-content-text .kc-wait { color: #a0a0a0; margin-bottom: 2rem; } - /* line 172, src/styles/components/_konnector.scss */ + /* line 190, src/styles/components/_konnector.scss */ .klaunch-content .klaunch-content-text-center { text-align: center; } - /* line 175, src/styles/components/_konnector.scss */ + /* line 193, src/styles/components/_konnector.scss */ .klaunch-content .klaunch-info { margin: 1.5rem; } - /* line 177, src/styles/components/_konnector.scss */ + /* line 195, src/styles/components/_konnector.scss */ .klaunch-content .klaunch-info .konnector-config { display: flex; flex-direction: column; justify-content: center; align-items: center; text-align: center; } - /* line 183, src/styles/components/_konnector.scss */ + /* line 201, src/styles/components/_konnector.scss */ .klaunch-content .klaunch-info .konnector-config .kce-picto-txt { color: #D25959; margin: 1.25rem; } - /* line 187, src/styles/components/_konnector.scss */ + /* line 205, src/styles/components/_konnector.scss */ .klaunch-content .klaunch-info .konnector-config .kcs-picto-txt { color: #e3b82a; margin: 1.25rem; } -/* line 195, src/styles/components/_konnector.scss */ +/* line 213, src/styles/components/_konnector.scss */ .state-icon { height: 22px; width: 22px; @@ -1141,21 +1197,28 @@ p { /* line 114, src/styles/components/_fluid.scss */ .chart-indicator-none { - display: none; } + visibility: hidden; + height: 0; } -/* line 117, src/styles/components/_fluid.scss */ +/* line 118, src/styles/components/_fluid.scss */ .chart-indicator-block { - display: block; } + visibility: visible; + height: auto; } -/* line 123, src/styles/components/_fluid.scss */ +/* line 124, src/styles/components/_fluid.scss */ .fs-root { flex: 1; height: 22rem; } @media only screen and (max-width: 768px) { - /* line 123, src/styles/components/_fluid.scss */ + /* line 124, src/styles/components/_fluid.scss */ .fs-root { height: 14rem; } } - /* line 129, src/styles/components/_fluid.scss */ + /* line 130, src/styles/components/_fluid.scss */ + .fs-root .chart-loading { + width: 100%; + justify-content: center; + display: flex; } + /* line 135, src/styles/components/_fluid.scss */ .fs-root .fs-slide { min-height: 22rem; overflow-x: hidden; @@ -1163,11 +1226,18 @@ p { justify-content: center; align-items: center; } @media only screen and (max-width: 768px) { - /* line 129, src/styles/components/_fluid.scss */ + /* line 135, src/styles/components/_fluid.scss */ .fs-root .fs-slide { min-height: 14rem; } } - -/* line 142, src/styles/components/_fluid.scss */ + /* line 144, src/styles/components/_fluid.scss */ + .fs-root .fs-slide .chart-none { + visibility: hidden; + width: 0; } + /* line 148, src/styles/components/_fluid.scss */ + .fs-root .fs-slide .chart-block { + visibility: visible; } + +/* line 155, src/styles/components/_fluid.scss */ .cta-box { background-color: rgba(18, 18, 18, 0.8); position: absolute; @@ -1181,15 +1251,15 @@ p { flex-direction: column; height: 37.5rem; } @media only screen and (max-width: 768px) { - /* line 142, src/styles/components/_fluid.scss */ + /* line 155, src/styles/components/_fluid.scss */ .cta-box { height: 29rem; width: 100vw; } } @media only screen and (max-width: 1023px) { - /* line 142, src/styles/components/_fluid.scss */ + /* line 155, src/styles/components/_fluid.scss */ .cta-box { width: 100vw; } } - /* line 162, src/styles/components/_fluid.scss */ + /* line 175, src/styles/components/_fluid.scss */ .cta-box .cta-box-header { text-align: center; font-weight: bold; @@ -1198,16 +1268,16 @@ p { color: #e0e0e0; width: 50%; } @media only screen and (max-width: 768px) { - /* line 162, src/styles/components/_fluid.scss */ + /* line 175, src/styles/components/_fluid.scss */ .cta-box .cta-box-header { width: 80%; } } - /* line 173, src/styles/components/_fluid.scss */ + /* line 186, src/styles/components/_fluid.scss */ .cta-box .cta-box-button { margin-left: auto; margin-right: auto; width: 50%; } @media only screen and (max-width: 768px) { - /* line 173, src/styles/components/_fluid.scss */ + /* line 186, src/styles/components/_fluid.scss */ .cta-box .cta-box-button { width: 80%; } } @@ -1403,78 +1473,78 @@ p { /* line 13, src/styles/components/_barchart.scss */ .background-true { - opacity: 1; } + opacity: 0.1; } -/* line 17, src/styles/components/_barchart.scss */ +/* line 16, src/styles/components/_barchart.scss */ .background-false { opacity: 0; } -/* line 21, src/styles/components/_barchart.scss */ +/* line 19, src/styles/components/_barchart.scss */ .bar-ELECTRICITY { fill: #5d3d2a; } - /* line 23, src/styles/components/_barchart.scss */ + /* line 21, src/styles/components/_barchart.scss */ .bar-ELECTRICITY.selected { fill: #d87b39; filter: drop-shadow(0 -0.1rem 0.2rem #d87b39); } -/* line 29, src/styles/components/_barchart.scss */ +/* line 27, src/styles/components/_barchart.scss */ .bar-compare-ELECTRICITY { fill: #795c47; } - /* line 31, src/styles/components/_barchart.scss */ + /* line 29, src/styles/components/_barchart.scss */ .bar-compare-ELECTRICITY.selected { fill: #e2bca1; filter: drop-shadow(0 -0.1rem 0.2rem #e2bca1); } -/* line 37, src/styles/components/_barchart.scss */ +/* line 35, src/styles/components/_barchart.scss */ .bar-WATER { fill: #20415e; } - /* line 39, src/styles/components/_barchart.scss */ + /* line 37, src/styles/components/_barchart.scss */ .bar-WATER.selected { fill: #3a98ec; filter: drop-shadow(0 -0.1rem 0.2rem #3a98ec); } -/* line 45, src/styles/components/_barchart.scss */ +/* line 43, src/styles/components/_barchart.scss */ .bar-compare-WATER { fill: #4d5c6e; } - /* line 47, src/styles/components/_barchart.scss */ + /* line 45, src/styles/components/_barchart.scss */ .bar-compare-WATER.selected { fill: #abd4fa; filter: drop-shadow(0 -0.1rem 0.2rem #abd4fa); } -/* line 53, src/styles/components/_barchart.scss */ +/* line 51, src/styles/components/_barchart.scss */ .bar-GAS { fill: #184940; } - /* line 55, src/styles/components/_barchart.scss */ + /* line 53, src/styles/components/_barchart.scss */ .bar-GAS.selected { fill: #45d1b8; filter: drop-shadow(0 -0.1rem 0.2rem #45d1b8); } -/* line 61, src/styles/components/_barchart.scss */ +/* line 59, src/styles/components/_barchart.scss */ .bar-compare-GAS { fill: #597773; } - /* line 63, src/styles/components/_barchart.scss */ + /* line 61, src/styles/components/_barchart.scss */ .bar-compare-GAS.selected { fill: #a8f7e9; filter: drop-shadow(0 -0.1rem 0.2rem #a8f7e9); } -/* line 69, src/styles/components/_barchart.scss */ +/* line 67, src/styles/components/_barchart.scss */ .bar-MULTIFLUID { fill: #705d1d; } - /* line 71, src/styles/components/_barchart.scss */ + /* line 69, src/styles/components/_barchart.scss */ .bar-MULTIFLUID.selected { fill: #e3b82a; filter: drop-shadow(0 -0.1rem 0.2rem #e3b82a); } -/* line 77, src/styles/components/_barchart.scss */ +/* line 75, src/styles/components/_barchart.scss */ .bar-compare-MULTIFLUID { fill: #7d6a4e; } - /* line 79, src/styles/components/_barchart.scss */ + /* line 77, src/styles/components/_barchart.scss */ .bar-compare-MULTIFLUID.selected { fill: #ffd597; filter: drop-shadow(0 -0.1rem 0.2rem #e3b82a); } /** Animation **/ -/* line 86, src/styles/components/_barchart.scss */ +/* line 84, src/styles/components/_barchart.scss */ .bounce-1 { animation-name: bounce-1; animation-timing-function: cubic-bezier(1, 1, 0.42, 1); @@ -1496,7 +1566,7 @@ p { 75% { transform: scale(1, 1); } } -/* line 114, src/styles/components/_barchart.scss */ +/* line 112, src/styles/components/_barchart.scss */ .bounce-2 { animation-name: bounce-2; animation-timing-function: cubic-bezier(1, 1, 0.42, 1); @@ -1518,60 +1588,78 @@ p { 75% { transform: scale(1, 1); } } +/* line 140, src/styles/components/_barchart.scss */ +.bounce-3 { + animation-name: bounce-3; + animation-timing-function: cubic-bezier(1, 1, 0.42, 1); + animation-iteration-count: 1; + transform-origin: bottom center; } + +@keyframes bounce-3 { + 0% { + opacity: 0.6; + transform: scaleY(1); } + 50% { + transform: scaleY(1.1); + opacity: 0.8; } + 100% { + transform: scaleY(1); + opacity: 1; } } + /** Animatio ndelay **/ -/* line 143, src/styles/components/_barchart.scss */ +/* line 162, src/styles/components/_barchart.scss */ .delay { animation-duration: 0.4s; } -/* line 146, src/styles/components/_barchart.scss */ +/* line 165, src/styles/components/_barchart.scss */ .delay--0 { animation-duration: 0.6s; } -/* line 149, src/styles/components/_barchart.scss */ +/* line 168, src/styles/components/_barchart.scss */ .delay--1 { animation-duration: 0.7s; } -/* line 152, src/styles/components/_barchart.scss */ +/* line 171, src/styles/components/_barchart.scss */ .delay--2 { animation-duration: 0.8s; } -/* line 155, src/styles/components/_barchart.scss */ +/* line 174, src/styles/components/_barchart.scss */ .delay--3 { animation-duration: 0.9s; } -/* line 158, src/styles/components/_barchart.scss */ +/* line 177, src/styles/components/_barchart.scss */ .delay--4 { animation-duration: 1s; } -/* line 161, src/styles/components/_barchart.scss */ +/* line 180, src/styles/components/_barchart.scss */ .delay--5 { animation-duration: 1.1s; } -/* line 164, src/styles/components/_barchart.scss */ +/* line 183, src/styles/components/_barchart.scss */ .delay--6 { animation-duration: 1.2s; } -/* line 167, src/styles/components/_barchart.scss */ +/* line 186, src/styles/components/_barchart.scss */ .delay--7 { animation-duration: 1.3s; } -/* line 170, src/styles/components/_barchart.scss */ +/* line 189, src/styles/components/_barchart.scss */ .delay--8 { animation-duration: 1.4s; } -/* line 173, src/styles/components/_barchart.scss */ +/* line 192, src/styles/components/_barchart.scss */ .delay--9 { animation-duration: 1.5s; } -/* line 176, src/styles/components/_barchart.scss */ +/* line 195, src/styles/components/_barchart.scss */ .delay--10 { animation-duration: 1.6s; } -/* line 179, src/styles/components/_barchart.scss */ +/* line 198, src/styles/components/_barchart.scss */ .delay--11 { animation-duration: 1.8s; } -/* line 182, src/styles/components/_barchart.scss */ +/* line 201, src/styles/components/_barchart.scss */ .delay--12 { animation-duration: 1.9s; } @@ -1914,7 +2002,7 @@ p { margin: 0.5rem 0; z-index: 5; width: 62px; - height: 100%; } + height: 62px; } /* line 103, src/styles/components/_challenges.scss */ .cli .cli-left .cli-content .cli-content-title { color: #ffffff; @@ -2039,7 +2127,7 @@ p { align-items: center; justify-items: center; position: absolute; - top: 15px; } + top: 52px; } @media only screen and (max-width: 768px) { /* line 236, src/styles/components/_challenges.scss */ .cm-content .cm-win-badge-star { @@ -2306,7 +2394,11 @@ p { margin-left: 0.25rem; margin-right: 0; width: 100%; } - /* line 515, src/styles/components/_challenges.scss */ + /* line 514, src/styles/components/_challenges.scss */ + .cp-root .cp-content .cp-info .lack-of-data-challenge, .cp-root .cm-content .cm-win-badge-star.--ecolyo-royal .cp-info .lack-of-data-challenge, .cm-content .cp-root .cm-win-badge-star.--ecolyo-royal .cp-info .lack-of-data-challenge { + text-align: center; + width: 90%; } + /* line 519, src/styles/components/_challenges.scss */ .cp-root .cp-content .cp-follow, .cp-root .cm-content .cm-win-badge-star.--ecolyo-royal .cp-follow, .cm-content .cp-root .cm-win-badge-star.--ecolyo-royal .cp-follow { width: 90%; display: flex; @@ -2314,12 +2406,12 @@ p { align-items: center; margin-bottom: 1rem; max-width: 53rem; } - /* line 523, src/styles/components/_challenges.scss */ + /* line 527, src/styles/components/_challenges.scss */ .cp-root .cp-content .cp-valid-locked, .cp-root .cm-content .cm-win-badge-star.--ecolyo-royal .cp-valid-locked, .cm-content .cp-root .cm-win-badge-star.--ecolyo-royal .cp-valid-locked { margin-top: 2rem; width: 80%; max-width: 53rem; } - /* line 528, src/styles/components/_challenges.scss */ + /* line 532, src/styles/components/_challenges.scss */ .cp-root .cp-content .cp-bottom, .cp-root .cm-content .cm-win-badge-star.--ecolyo-royal .cp-bottom, .cm-content .cp-root .cm-win-badge-star.--ecolyo-royal .cp-bottom { padding: 1.25rem 1.25rem; width: 90%; @@ -2329,16 +2421,16 @@ p { max-width: 53rem; margin-bottom: 2rem; } @media only screen and (max-width: 768px) { - /* line 528, src/styles/components/_challenges.scss */ + /* line 532, src/styles/components/_challenges.scss */ .cp-root .cp-content .cp-bottom, .cp-root .cm-content .cm-win-badge-star.--ecolyo-royal .cp-bottom, .cm-content .cp-root .cm-win-badge-star.--ecolyo-royal .cp-bottom { margin-bottom: 0; } } - /* line 539, src/styles/components/_challenges.scss */ + /* line 543, src/styles/components/_challenges.scss */ .cp-root .cp-content .cp-bottom .cp-eg-content, .cp-root .cm-content .cm-win-badge-star.--ecolyo-royal .cp-bottom .cp-eg-content, .cm-content .cp-root .cm-win-badge-star.--ecolyo-royal .cp-bottom .cp-eg-content { width: 100%; } - /* line 541, src/styles/components/_challenges.scss */ + /* line 545, src/styles/components/_challenges.scss */ .cp-root .cp-content .cp-bottom .cp-eg-content .linked-ecogestures, .cp-root .cm-content .cm-win-badge-star.--ecolyo-royal .cp-bottom .cp-eg-content .linked-ecogestures, .cm-content .cp-root .cm-win-badge-star.--ecolyo-royal .cp-bottom .cp-eg-content .linked-ecogestures { text-transform: uppercase; } - /* line 544, src/styles/components/_challenges.scss */ + /* line 548, src/styles/components/_challenges.scss */ .cp-root .cp-content .cp-bottom .cp-eg-content .cp-ecogestures, .cp-root .cm-content .cm-win-badge-star.--ecolyo-royal .cp-bottom .cp-eg-content .cp-ecogestures, .cm-content .cp-root .cm-win-badge-star.--ecolyo-royal .cp-bottom .cp-eg-content .cp-ecogestures { width: 100%; display: flex; @@ -2397,13 +2489,13 @@ p { padding: 1rem 1.5rem 2.5rem 1.5rem; } /* line 11, src/styles/components/_ecogesture.scss */ .ecogesture-root .negawatt-button-content { - width: calc(53rem - 2%); - margin: 0 1%; } - @media only screen and (max-width: 768px) { + max-width: 52rem; + width: 97%; } + @media only screen and (max-width: 1023px) { /* line 11, src/styles/components/_ecogesture.scss */ .ecogesture-root .negawatt-button-content { width: 97%; } } - @media only screen and (max-width: 1023px) { + @media only screen and (max-width: 768px) { /* line 11, src/styles/components/_ecogesture.scss */ .ecogesture-root .negawatt-button-content { width: 97%; } } @@ -2412,12 +2504,12 @@ p { display: flex; flex-wrap: wrap; justify-content: space-around; - width: 53rem; } - @media only screen and (max-width: 768px) { + max-width: 53rem; } + @media only screen and (max-width: 1023px) { /* line 21, src/styles/components/_ecogesture.scss */ .ecogesture-root .ecogesture-content { width: 100%; } } - @media only screen and (max-width: 1023px) { + @media only screen and (max-width: 768px) { /* line 21, src/styles/components/_ecogesture.scss */ .ecogesture-root .ecogesture-content { width: 100%; } } @@ -2490,40 +2582,8 @@ p { display: flex; justify-content: center; } -/* line 101, src/styles/components/_ecogesture.scss */ -.em-icon { - margin-bottom: 1rem; } - -/* line 104, src/styles/components/_ecogesture.scss */ -.em-title { - margin-bottom: 0; } - -/* line 107, src/styles/components/_ecogesture.scss */ -.em-detail { - display: flex; - flex-direction: row; - margin: 0.5em 0; } - /* line 111, src/styles/components/_ecogesture.scss */ - .em-detail .em-detail-nwh { - display: flex; - flex: 1; - align-self: flex-start; - margin-top: 0.65rem; - color: var(--textDark); } - /* line 117, src/styles/components/_ecogesture.scss */ - .em-detail .em-detail-nwh .em-detail-nwh-unit { - margin-left: 0.2rem; } - /* line 121, src/styles/components/_ecogesture.scss */ - .em-detail .em-picto-flow { - display: flex; - align-self: flex-end; } - /* line 124, src/styles/components/_ecogesture.scss */ - .em-detail .em-picto-flow .em-pic-content { - margin: 0.3em; } - -/* line 130, src/styles/components/_ecogesture.scss */ -.em-content-box { - max-height: 25rem; +/* line 102, src/styles/components/_ecogesture.scss */ +.em-root { overflow: auto; width: 100%; display: flex; @@ -2531,48 +2591,88 @@ p { /* width */ /* Track */ /* Handle */ } - /* line 137, src/styles/components/_ecogesture.scss */ - .em-content-box::-webkit-scrollbar { + /* line 108, src/styles/components/_ecogesture.scss */ + .em-root::-webkit-scrollbar { width: 10px; } - /* line 141, src/styles/components/_ecogesture.scss */ - .em-content-box::-webkit-scrollbar-track { + /* line 112, src/styles/components/_ecogesture.scss */ + .em-root::-webkit-scrollbar-track { background: #3e4045; } - /* line 145, src/styles/components/_ecogesture.scss */ - .em-content-box::-webkit-scrollbar-thumb { + /* line 116, src/styles/components/_ecogesture.scss */ + .em-root::-webkit-scrollbar-thumb { background: #6f7074; } - /* line 148, src/styles/components/_ecogesture.scss */ - .em-content-box .em-content-box-text { - display: flex; - flex-direction: column; - padding: 1.5rem 1.5rem; - width: 22.125rem; } + /* line 119, src/styles/components/_ecogesture.scss */ + .em-root .em-content { + padding: 1.5rem 2.5rem 0; } @media only screen and (max-width: 768px) { - /* line 148, src/styles/components/_ecogesture.scss */ - .em-content-box .em-content-box-text { - width: 100%; } } - /* line 156, src/styles/components/_ecogesture.scss */ - .em-content-box .em-content-box-text .em-content-box-text-header { + /* line 119, src/styles/components/_ecogesture.scss */ + .em-root .em-content { + width: 100%; + padding: 1.5rem 1.5rem 0; } } + /* line 126, src/styles/components/_ecogesture.scss */ + .em-root .em-content .em-content-box-img { display: flex; flex-direction: column; justify-content: center; align-items: center; } - /* line 161, src/styles/components/_ecogesture.scss */ - .em-content-box .em-content-box-text .em-content-box-text-header .icon { + /* line 131, src/styles/components/_ecogesture.scss */ + .em-root .em-content .em-content-box-img .icon { margin-bottom: 1rem; } - /* line 165, src/styles/components/_ecogesture.scss */ - .em-content-box .em-content-box-text .long-name { + /* line 135, src/styles/components/_ecogesture.scss */ + .em-root .em-content .em-detail { + display: flex; + flex-direction: row; + margin: 0.5em 0; } + /* line 139, src/styles/components/_ecogesture.scss */ + .em-root .em-content .em-detail .em-detail-nwh { + display: flex; + flex: 1; + align-self: flex-start; + margin-top: 0.65rem; + color: var(--textDark); } + /* line 145, src/styles/components/_ecogesture.scss */ + .em-root .em-content .em-detail .em-detail-nwh .em-detail-nwh-unit { + margin-left: 0.2rem; } + /* line 149, src/styles/components/_ecogesture.scss */ + .em-root .em-content .em-detail .em-picto-flow { + display: flex; + align-self: flex-end; } + /* line 152, src/styles/components/_ecogesture.scss */ + .em-root .em-content .em-detail .em-picto-flow .em-pic-content { + margin: 0.3em; } + /* line 157, src/styles/components/_ecogesture.scss */ + .em-root .em-content .em-title { + margin-bottom: 0; + text-align: center; } + /* line 162, src/styles/components/_ecogesture.scss */ + .em-root .em-content .long-name { font-weight: bold; line-height: 150%; margin: 0.5rem 0 1rem; } - /* line 170, src/styles/components/_ecogesture.scss */ - .em-content-box .em-content-box-text .em-description { - padding-bottom: 2.5rem; } - /* line 173, src/styles/components/_ecogesture.scss */ - .em-content-box .em-content-box-text .em-description-2 { - padding-top: 2rem; } - /* line 176, src/styles/components/_ecogesture.scss */ - .em-content-box .em-content-box-text .em-description-3 { - padding-bottom: 0.5rem; } + /* line 167, src/styles/components/_ecogesture.scss */ + .em-root .em-content .em-description { + padding-bottom: 2rem; } + +/* line 172, src/styles/components/_ecogesture.scss */ +.em-content-box-text { + display: flex; + flex-direction: column; + padding: 1.5rem 2.5rem; } + @media only screen and (max-width: 768px) { + /* line 172, src/styles/components/_ecogesture.scss */ + .em-content-box-text { + padding: 1.5rem 1.5rem; } } + /* line 179, src/styles/components/_ecogesture.scss */ + .em-content-box-text .em-description { + padding-bottom: 2rem; } + /* line 182, src/styles/components/_ecogesture.scss */ + .em-content-box-text .em-description-2 { + padding-top: 2rem; } + /* line 185, src/styles/components/_ecogesture.scss */ + .em-content-box-text .em-description-3 { + padding-bottom: 0.5rem; } + /* line 188, src/styles/components/_ecogesture.scss */ + .em-content-box-text .em-title { + margin-bottom: 0; } /** BLACK **/ /** TEXT COLOR **/ @@ -2605,38 +2705,38 @@ p { .modal-overlay .modal-box { background: linear-gradient(180deg, #323339 0%, #25262B 100%); position: fixed; - top: 50%; - left: 50%; width: 36rem; max-width: 100%; - max-height: 30rem; - transform: translate(-50%, -50%); + max-height: 90vh; padding: 1rem 0 0 0; box-sizing: border-box; box-shadow: 0px 4px 16px rgba(0, 0, 0, 0.55); border-radius: 4px; } - @media only screen and (max-width: 768px) { + @media only screen and (max-width: 1023px) { /* line 19, src/styles/components/_modal.scss */ .modal-overlay .modal-box { - width: 20rem; } } + width: 35rem; } } @media only screen and (max-width: 768px) { /* line 19, src/styles/components/_modal.scss */ .modal-overlay .modal-box { - max-height: unset; } } - /* line 38, src/styles/components/_modal.scss */ + width: 85%; + max-width: 35rem; } } + /* line 36, src/styles/components/_modal.scss */ .modal-overlay .modal-box.modal-box-bordered { border: 1px solid #58FFFF40; } - /* line 41, src/styles/components/_modal.scss */ + /* line 39, src/styles/components/_modal.scss */ .modal-overlay .modal-box.yellow-border { border: 1px solid rgba(227, 184, 42, 0.4); } - /* line 44, src/styles/components/_modal.scss */ + /* line 42, src/styles/components/_modal.scss */ .modal-overlay .modal-box .modal-close-button { position: absolute; top: 0.5rem; right: 0.5rem; - padding: 5px 5px; } - /* line 50, src/styles/components/_modal.scss */ + padding: 5px 5px; + z-index: 10; } + /* line 49, src/styles/components/_modal.scss */ .modal-overlay .modal-box .modal-content { + max-height: 85vh; display: flex; flex-direction: column; align-items: center; @@ -2692,43 +2792,47 @@ p { .faq-root .faq-content { margin-bottom: -1rem; width: 45.75rem; } + /* line 14, src/styles/components/_faq.scss */ + .faq-root .faq-content a { + text-decoration: none; } @media only screen and (max-width: 768px) { /* line 11, src/styles/components/_faq.scss */ .faq-root .faq-content { width: 100%; } } - /* line 17, src/styles/components/_faq.scss */ + /* line 20, src/styles/components/_faq.scss */ .faq-root .faq-content .faq-header { margin-top: 2.5rem; margin-bottom: 1.25rem; color: #e0e0e0; } -/* line 25, src/styles/components/_faq.scss */ +/* line 28, src/styles/components/_faq.scss */ .faq-card-link { color: black; } -/* line 28, src/styles/components/_faq.scss */ +/* line 31, src/styles/components/_faq.scss */ .faq-card { display: flex; flex-direction: row; margin: -0.75rem 0; width: 100%; } @media only screen and (max-width: 768px) { - /* line 28, src/styles/components/_faq.scss */ + /* line 31, src/styles/components/_faq.scss */ .faq-card { width: 100%; } } - /* line 36, src/styles/components/_faq.scss */ + /* line 39, src/styles/components/_faq.scss */ .faq-card .faq-card-content { display: flex; flex-direction: row; } - /* line 39, src/styles/components/_faq.scss */ + /* line 42, src/styles/components/_faq.scss */ .faq-card .faq-card-content .faq-card-content-icon { margin: 0.5rem 0; } - /* line 42, src/styles/components/_faq.scss */ + /* line 45, src/styles/components/_faq.scss */ .faq-card .faq-card-content .faq-card-content-title { margin: 0 1rem; - align-self: center; } + align-self: center; + text-decoration: none; } -/* line 50, src/styles/components/_faq.scss */ +/* line 54, src/styles/components/_faq.scss */ .faq-view-root { display: flex; flex-direction: column; @@ -2736,23 +2840,23 @@ p { justify-content: center; padding: 1rem 0; margin-top: 1.5rem; } - /* line 57, src/styles/components/_faq.scss */ + /* line 61, src/styles/components/_faq.scss */ .faq-view-root .faq-view-content { width: 45.75rem; } @media only screen and (max-width: 768px) { - /* line 57, src/styles/components/_faq.scss */ + /* line 61, src/styles/components/_faq.scss */ .faq-view-root .faq-view-content { width: 100%; } } - /* line 62, src/styles/components/_faq.scss */ + /* line 66, src/styles/components/_faq.scss */ .faq-view-root .faq-view-content .faq-content-detail { padding-bottom: 0.6rem; } - /* line 64, src/styles/components/_faq.scss */ + /* line 68, src/styles/components/_faq.scss */ .faq-view-root .faq-view-content .faq-content-detail .text-bold { font-weight: bold; } - /* line 67, src/styles/components/_faq.scss */ + /* line 71, src/styles/components/_faq.scss */ .faq-view-root .faq-view-content .faq-content-detail .text-underline { text-decoration: underline; } - /* line 70, src/styles/components/_faq.scss */ + /* line 74, src/styles/components/_faq.scss */ .faq-view-root .faq-view-content .faq-content-detail .spaceline { height: 0.6rem; display: block; } @@ -2768,82 +2872,68 @@ p { /** GREY **/ /** App colors **/ /** TABS GRADIENT **/ -/* line 5, src/styles/components/_legal.scss */ -.legal-root { +/* line 5, src/styles/components/_legalnotice.scss */ +.legal-notice-root { display: flex; flex-direction: column; align-items: center; justify-content: center; - padding: 0 1.5rem 1.5rem; } - /* line 11, src/styles/components/_legal.scss */ - .legal-root .legal-content { - margin-bottom: -1rem; + color: #ffffff; + padding: 1.5rem 1.5rem 0; } + /* line 12, src/styles/components/_legalnotice.scss */ + .legal-notice-root .legal-notice-content { width: 45.75rem; } + /* line 13, src/styles/components/_legalnotice.scss */ + .legal-notice-root .legal-notice-content p { + color: #ffffff; } + /* line 16, src/styles/components/_legalnotice.scss */ + .legal-notice-root .legal-notice-content a { + color: #ffffff; + text-decoration: none; } + /* line 20, src/styles/components/_legalnotice.scss */ + .legal-notice-root .legal-notice-content li { + margin: 1rem 0; } + /* line 23, src/styles/components/_legalnotice.scss */ + .legal-notice-root .legal-notice-content h2 { + color: #ffffff; } + /* line 26, src/styles/components/_legalnotice.scss */ + .legal-notice-root .legal-notice-content h3 { + color: #ffffff; + margin: 2.5rem 0 1rem; } + /* line 30, src/styles/components/_legalnotice.scss */ + .legal-notice-root .legal-notice-content .ln-contact { + color: #e3b82a; } @media only screen and (max-width: 768px) { - /* line 11, src/styles/components/_legal.scss */ - .legal-root .legal-content { + /* line 12, src/styles/components/_legalnotice.scss */ + .legal-notice-root .legal-notice-content { width: 100%; } } - /* line 17, src/styles/components/_legal.scss */ - .legal-root .legal-content .legal-header { - margin-top: 2rem; - margin-bottom: 1.25rem; - color: #e0e0e0; } -/* line 25, src/styles/components/_legal.scss */ -.legal-card-link { +/* line 40, src/styles/components/_legalnotice.scss */ +.legal-notice-card-link { color: black; } -/* line 28, src/styles/components/_legal.scss */ -.legal-card { +/* line 43, src/styles/components/_legalnotice.scss */ +.legal-notice-card { display: flex; flex-direction: row; margin: -0.75rem 0; width: 100%; } @media only screen and (max-width: 768px) { - /* line 28, src/styles/components/_legal.scss */ - .legal-card { + /* line 43, src/styles/components/_legalnotice.scss */ + .legal-notice-card { width: 100%; } } - /* line 36, src/styles/components/_legal.scss */ - .legal-card .legal-card-content { + /* line 51, src/styles/components/_legalnotice.scss */ + .legal-notice-card .legal-notice-card-content { display: flex; flex-direction: row; } - /* line 39, src/styles/components/_legal.scss */ - .legal-card .legal-card-content .legal-card-content-icon { + /* line 54, src/styles/components/_legalnotice.scss */ + .legal-notice-card .legal-notice-card-content .legal-notice-card-content-icon { margin: 0.5rem 0; } - /* line 42, src/styles/components/_legal.scss */ - .legal-card .legal-card-content .legal-card-content-title { + /* line 57, src/styles/components/_legalnotice.scss */ + .legal-notice-card .legal-notice-card-content .legal-notice-card-content-title { margin: 0 1rem; align-self: center; } -/* line 50, src/styles/components/_legal.scss */ -.legal-view-root { - display: flex; - flex-direction: column; - align-items: center; - justify-content: center; - padding: 1rem 0; - margin-top: 1.5rem; } - /* line 57, src/styles/components/_legal.scss */ - .legal-view-root .legal-view-content { - width: 45.75rem; } - @media only screen and (max-width: 768px) { - /* line 57, src/styles/components/_legal.scss */ - .legal-view-root .legal-view-content { - width: 100%; } } - /* line 62, src/styles/components/_legal.scss */ - .legal-view-root .legal-view-content .legal-content-detail { - padding-bottom: 0.6rem; } - /* line 64, src/styles/components/_legal.scss */ - .legal-view-root .legal-view-content .legal-content-detail .text-bold { - font-weight: bold; } - /* line 67, src/styles/components/_legal.scss */ - .legal-view-root .legal-view-content .legal-content-detail .text-underline { - text-decoration: underline; } - /* line 70, src/styles/components/_legal.scss */ - .legal-view-root .legal-view-content .legal-content-detail .spaceline { - height: 0.6rem; - display: block; } - /** BLACK **/ /** TEXT COLOR **/ /** RED **/ @@ -2931,7 +3021,115 @@ p { text-align: left; max-width: 10.625rem; } -/* line 28, src/styles/index.scss */ +/** BLACK **/ +/** TEXT COLOR **/ +/** RED **/ +/** YELLOW **/ +/** ORANGE **/ +/** BLUE **/ +/** GREEN **/ +/** WHITE **/ +/** GREY **/ +/** App colors **/ +/** TABS GRADIENT **/ +/* line 5, src/styles/components/_feedback.scss */ +.fb-root { + overflow-y: auto; } + /* line 7, src/styles/components/_feedback.scss */ + .fb-root .fb-header { + color: #e3b82a; + padding: 1.5rem 1.5rem 0rem 1.5rem; + display: flex; + justify-content: center; } + /* line 14, src/styles/components/_feedback.scss */ + .fb-root .fb-content { + padding: 1rem 1.5rem 1.5rem 1.5rem; + display: flex; + flex-direction: column; } + /* line 18, src/styles/components/_feedback.scss */ + .fb-root .fb-content .fb-content-success { + color: #e0e0e0; + color: #e0e0e0; + display: flex; + flex-direction: column; + align-items: center; + text-align: center; } + /* line 26, src/styles/components/_feedback.scss */ + .fb-root .fb-content .fb-content-error { + color: #e0e0e0; + display: flex; + flex-direction: column; + align-items: center; + text-align: center; } + /* line 33, src/styles/components/_feedback.scss */ + .fb-root .fb-content .fb-icon { + display: flex; + justify-content: center; + margin: 0 0 1.5rem 0; } + /* line 38, src/styles/components/_feedback.scss */ + .fb-root .fb-content .fb-label { + margin: 0.5rem 0 0 0; } + /* line 41, src/styles/components/_feedback.scss */ + .fb-root .fb-content .fb-selector { + margin: 0.5rem 0; + display: flex; + flex-direction: row; + align-content: space-around; + justify-content: space-around; } + /* line 47, src/styles/components/_feedback.scss */ + .fb-root .fb-content .fb-selector .fb-selector-item { + height: 3.125rem; + width: 3.125rem; } + /* line 50, src/styles/components/_feedback.scss */ + .fb-root .fb-content .fb-selector .fb-selector-item .fb-selector-item-label { + color: #e0e0e0; } + /* line 53, src/styles/components/_feedback.scss */ + .fb-root .fb-content .fb-selector .fb-selector-item .fb-selector-item-selectedlabel { + color: white; } + /* line 58, src/styles/components/_feedback.scss */ + .fb-root .fb-content .fb-form { + margin: 0.5rem 0; + border: 1px solid #7b7b7b; + border-radius: 4px; + color: #e0e0e0; + background: rgba(0, 0, 0, 0.3); + padding: 0 1rem; + outline: none; } + /* line 67, src/styles/components/_feedback.scss */ + .fb-root .fb-content .fb-form:focus { + border: 1px solid #e3b82a; } + /* line 70, src/styles/components/_feedback.scss */ + .fb-root .fb-content .fb-textarea { + height: 8.725rem; + padding: 0.5rem 1rem; + resize: none; } + /* line 75, src/styles/components/_feedback.scss */ + .fb-root .fb-content .fb-input { + height: 2rem; } + /* line 78, src/styles/components/_feedback.scss */ + .fb-root .fb-content .fb-button { + max-width: 9.375rem; + align-self: center; + margin-top: 1rem; } + +/** BLACK **/ +/** TEXT COLOR **/ +/** RED **/ +/** YELLOW **/ +/** ORANGE **/ +/** BLUE **/ +/** GREEN **/ +/** WHITE **/ +/** GREY **/ +/** App colors **/ +/** TABS GRADIENT **/ +/* line 4, src/styles/components/_version.scss */ +.version-root { + color: #e0e0e0; + text-align: end; + margin: 1rem 1.5rem 2rem; } + +/* line 30, src/styles/index.scss */ :root { --blue: #58FFFF; --blue40: #58FFFF40; @@ -2939,13 +3137,17 @@ p { --blueRadialGradient: radial-gradient(105.25% 64.58% at 49.68% 70.83%, rgba(1, 153, 163, 0.5) 0%, rgba(255, 255, 255, 0) 100%), #58FFFF; --blueRadialGradientTrans: radial-gradient(circle, #58FFFF 0%, rgba(255, 255, 255, 0) 100%); --elecColor: #d87b39; + --elecColor40: rgba(216, 123, 57, 0.4); --elecCompareColor: #e2bca1; --gasColor: #45d1b8; + --gasColor40: rgba(69, 209, 184, 0.4); --gasCompareColor: #a8f7e9; --waterColor: #3a98ec; + --waterColor40: rgba(58, 152, 236, 0.4); --waterCompareColor: #abd4fa; --multiColor: #e3b82a; --multiCompareColor: #ffd597; + --redPrimary: #D25959; --greyBright: #e0e0e0; --greyDark: #7b7b7b; --textBlack: black; @@ -2965,10 +3167,10 @@ p { --gasColorRadialGradient: radial-gradient(105.25% 64.58% at 49.68% 70.83%, rgba(4, 106, 88, 0.5) 0%, rgba(255, 255, 255, 0) 100%), #45d1b8; --waterColorRadialGradient: radial-gradient(105.25% 64.58% at 49.68% 70.83%, rgba(2, 93, 174, 0.5) 0%, rgba(255, 255, 255, 0) 100%), #3a98ec; } -/* line 62, src/styles/index.scss */ +/* line 68, src/styles/index.scss */ .application { overflow-x: hidden; } @media only screen and (max-width: 768px) { - /* line 62, src/styles/index.scss */ + /* line 68, src/styles/index.scss */ .application { min-height: 100vh; } } diff --git a/src/styles/index.scss b/src/styles/index.scss index de482173597c003adbeffa5ee9a58d2858891970..86e30c87e149d87052cf0a0a1bf49b9ecbc7e6da 100644 --- a/src/styles/index.scss +++ b/src/styles/index.scss @@ -26,6 +26,7 @@ @import 'components/auth'; @import 'components/feedback'; @import 'components/version'; +@import 'components/report'; :root { --blue: #{$blue}; diff --git a/test/app.sp_ec.js b/test/app.sp_ec.js index aedf9c05040ff339ea25d47ffffe405aa62d0db3..ba97cc254013b81aed311fe15aece2450b148d9a 100644 --- a/test/app.sp_ec.js +++ b/test/app.sp_ec.js @@ -2,8 +2,8 @@ /* eslint-env jest */ -import React from 'react' -import { shallow } from 'enzyme' +//import React from 'react' +//import { shallow } from 'enzyme' //import { App } from '../src/components/App' diff --git a/test/createDayDataFiles.js b/test/createDayDataFiles.js index f625c79bcae18f982f557aa8b8b91cf465d84abb..cf968f06f9cc35085a22d8ad77a64b95d80ff4c4 100644 --- a/test/createDayDataFiles.js +++ b/test/createDayDataFiles.js @@ -118,7 +118,7 @@ const dumpElec = { 'com.grandlyon.enedis.year': Elec.yearlyLoad, } const dumpStringElec = JSON.stringify(dumpElec) -fs.writeFile('data/dayData-elec.json', dumpStringElec, function(err, result) { +fs.writeFile('data/dayData-elec.json', dumpStringElec, function(err) { if (err) console.log('error', err) }) @@ -128,7 +128,7 @@ const dumpGas = { 'com.grandlyon.grdf.year': Gaz.yearlyLoad, } const dumpStringGas = JSON.stringify(dumpGas) -fs.writeFile('data/dayData-gas.json', dumpStringGas, function(err, result) { +fs.writeFile('data/dayData-gas.json', dumpStringGas, function(err) { if (err) console.log('error', err) }) @@ -138,7 +138,7 @@ const dumpWater = { 'com.grandlyon.egl.year': Eau.yearlyLoad, } const dumpStringWater = JSON.stringify(dumpWater) -fs.writeFile('data/dayData-water.json', dumpStringWater, function(err, result) { +fs.writeFile('data/dayData-water.json', dumpStringWater, function(err) { if (err) console.log('error', err) }) @@ -158,6 +158,6 @@ const dump = { const dumpString = JSON.stringify(dump) -fs.writeFile('data/dayData.json', dumpString, function(err, result) { +fs.writeFile('data/dayData.json', dumpString, function(err) { if (err) console.log('error', err) }) diff --git a/test/createMockFile.js b/test/createMockFile.js index f26e3d3a8d66ac2e662478d0eca8095df08fbc41..98b0df5dfb80ed5a15995db85a01e58d33f87d81 100644 --- a/test/createMockFile.js +++ b/test/createMockFile.js @@ -164,6 +164,6 @@ const dump = { const dumpString = JSON.stringify(dump) -fs.writeFile('dayData.json', dumpString, function(err, result) { +fs.writeFile('dayData.json', dumpString, function(err) { if (err) console.log('error', err) }) diff --git a/test/data/dayData-elec.json b/test/data/dayData-elec.json index 5dacd1e5536dec375d9ba26261168c8139f8750d..0f24ba3c574bb88bae609373b190979fa5152dc4 100644 --- a/test/data/dayData-elec.json +++ b/test/data/dayData-elec.json @@ -1 +1 @@ -{"com.grandlyon.enedis.day":[{"load":5.25,"year":2020,"month":1,"day":1,"hour":0,"minute":0},{"load":3.76,"year":2020,"month":1,"day":2,"hour":0,"minute":0},{"load":8.03,"year":2020,"month":1,"day":3,"hour":0,"minute":0},{"load":5.32,"year":2020,"month":1,"day":4,"hour":0,"minute":0},{"load":8.72,"year":2020,"month":1,"day":5,"hour":0,"minute":0},{"load":8.17,"year":2020,"month":1,"day":6,"hour":0,"minute":0},{"load":6.08,"year":2020,"month":1,"day":7,"hour":0,"minute":0},{"load":4.06,"year":2020,"month":1,"day":8,"hour":0,"minute":0},{"load":4.82,"year":2020,"month":1,"day":9,"hour":0,"minute":0},{"load":7.5,"year":2020,"month":1,"day":10,"hour":0,"minute":0},{"load":6.21,"year":2020,"month":1,"day":11,"hour":0,"minute":0},{"load":4.63,"year":2020,"month":1,"day":12,"hour":0,"minute":0},{"load":4.32,"year":2020,"month":1,"day":13,"hour":0,"minute":0},{"load":8.79,"year":2020,"month":1,"day":14,"hour":0,"minute":0},{"load":7.88,"year":2020,"month":1,"day":15,"hour":0,"minute":0},{"load":4.1,"year":2020,"month":1,"day":16,"hour":0,"minute":0},{"load":5.09,"year":2020,"month":1,"day":17,"hour":0,"minute":0},{"load":8.58,"year":2020,"month":1,"day":18,"hour":0,"minute":0},{"load":9.97,"year":2020,"month":1,"day":19,"hour":0,"minute":0},{"load":6.68,"year":2020,"month":1,"day":20,"hour":0,"minute":0},{"load":9.13,"year":2020,"month":1,"day":21,"hour":0,"minute":0},{"load":4.77,"year":2020,"month":1,"day":22,"hour":0,"minute":0},{"load":3.6,"year":2020,"month":1,"day":23,"hour":0,"minute":0},{"load":8.33,"year":2020,"month":1,"day":24,"hour":0,"minute":0},{"load":3.42,"year":2020,"month":1,"day":25,"hour":0,"minute":0},{"load":8.46,"year":2020,"month":1,"day":26,"hour":0,"minute":0},{"load":5.85,"year":2020,"month":1,"day":27,"hour":0,"minute":0},{"load":3.01,"year":2020,"month":1,"day":28,"hour":0,"minute":0},{"load":8.06,"year":2020,"month":1,"day":29,"hour":0,"minute":0},{"load":6.39,"year":2020,"month":1,"day":30,"hour":0,"minute":0},{"load":6.9,"year":2020,"month":1,"day":31,"hour":0,"minute":0},{"load":3.9,"year":2020,"month":2,"day":1,"hour":0,"minute":0},{"load":8.07,"year":2020,"month":2,"day":2,"hour":0,"minute":0},{"load":9.85,"year":2020,"month":2,"day":3,"hour":0,"minute":0},{"load":7.23,"year":2020,"month":2,"day":4,"hour":0,"minute":0},{"load":6.05,"year":2020,"month":2,"day":5,"hour":0,"minute":0},{"load":8.02,"year":2020,"month":2,"day":6,"hour":0,"minute":0},{"load":8.45,"year":2020,"month":2,"day":7,"hour":0,"minute":0},{"load":7.01,"year":2020,"month":2,"day":8,"hour":0,"minute":0},{"load":6.36,"year":2020,"month":2,"day":9,"hour":0,"minute":0},{"load":3.07,"year":2020,"month":2,"day":10,"hour":0,"minute":0},{"load":4.03,"year":2020,"month":2,"day":11,"hour":0,"minute":0},{"load":7.2,"year":2020,"month":2,"day":12,"hour":0,"minute":0},{"load":3.66,"year":2020,"month":2,"day":13,"hour":0,"minute":0},{"load":8.3,"year":2020,"month":2,"day":14,"hour":0,"minute":0},{"load":5.93,"year":2020,"month":2,"day":15,"hour":0,"minute":0},{"load":9.08,"year":2020,"month":2,"day":16,"hour":0,"minute":0},{"load":5.32,"year":2020,"month":2,"day":17,"hour":0,"minute":0},{"load":4.72,"year":2020,"month":2,"day":18,"hour":0,"minute":0},{"load":6,"year":2020,"month":2,"day":19,"hour":0,"minute":0},{"load":7.73,"year":2020,"month":2,"day":20,"hour":0,"minute":0},{"load":3.59,"year":2020,"month":2,"day":21,"hour":0,"minute":0},{"load":7.75,"year":2020,"month":2,"day":22,"hour":0,"minute":0},{"load":5.37,"year":2020,"month":2,"day":23,"hour":0,"minute":0},{"load":8.33,"year":2020,"month":2,"day":24,"hour":0,"minute":0},{"load":9.02,"year":2020,"month":2,"day":25,"hour":0,"minute":0},{"load":5.19,"year":2020,"month":2,"day":26,"hour":0,"minute":0},{"load":6.75,"year":2020,"month":2,"day":27,"hour":0,"minute":0},{"load":5.49,"year":2020,"month":2,"day":28,"hour":0,"minute":0},{"load":8.13,"year":2020,"month":2,"day":29,"hour":0,"minute":0},{"load":7.68,"year":2020,"month":3,"day":1,"hour":0,"minute":0},{"load":5.47,"year":2020,"month":3,"day":2,"hour":0,"minute":0},{"load":4.37,"year":2020,"month":3,"day":3,"hour":0,"minute":0},{"load":8.85,"year":2020,"month":3,"day":4,"hour":0,"minute":0},{"load":9.68,"year":2020,"month":3,"day":5,"hour":0,"minute":0},{"load":8.61,"year":2020,"month":3,"day":6,"hour":0,"minute":0},{"load":6.27,"year":2020,"month":3,"day":7,"hour":0,"minute":0},{"load":8.06,"year":2020,"month":3,"day":8,"hour":0,"minute":0},{"load":9.96,"year":2020,"month":3,"day":9,"hour":0,"minute":0},{"load":9.91,"year":2020,"month":3,"day":10,"hour":0,"minute":0},{"load":5.55,"year":2020,"month":3,"day":11,"hour":0,"minute":0},{"load":6.27,"year":2020,"month":3,"day":12,"hour":0,"minute":0},{"load":9.86,"year":2020,"month":3,"day":13,"hour":0,"minute":0},{"load":8.55,"year":2020,"month":3,"day":14,"hour":0,"minute":0},{"load":3.36,"year":2020,"month":3,"day":15,"hour":0,"minute":0},{"load":7.22,"year":2020,"month":3,"day":16,"hour":0,"minute":0},{"load":7.82,"year":2020,"month":3,"day":17,"hour":0,"minute":0},{"load":5.28,"year":2020,"month":3,"day":18,"hour":0,"minute":0},{"load":5.82,"year":2020,"month":3,"day":19,"hour":0,"minute":0},{"load":4.65,"year":2020,"month":3,"day":20,"hour":0,"minute":0},{"load":5.52,"year":2020,"month":3,"day":21,"hour":0,"minute":0},{"load":6.94,"year":2020,"month":3,"day":22,"hour":0,"minute":0},{"load":4.58,"year":2020,"month":3,"day":23,"hour":0,"minute":0},{"load":6.12,"year":2020,"month":3,"day":24,"hour":0,"minute":0},{"load":6.24,"year":2020,"month":3,"day":25,"hour":0,"minute":0},{"load":5.14,"year":2020,"month":3,"day":26,"hour":0,"minute":0},{"load":7.43,"year":2020,"month":3,"day":27,"hour":0,"minute":0},{"load":8.71,"year":2020,"month":3,"day":28,"hour":0,"minute":0},{"load":4.07,"year":2020,"month":3,"day":29,"hour":0,"minute":0},{"load":6.7,"year":2020,"month":3,"day":30,"hour":0,"minute":0},{"load":5.08,"year":2020,"month":3,"day":31,"hour":0,"minute":0},{"load":4.72,"year":2020,"month":4,"day":1,"hour":0,"minute":0},{"load":3.11,"year":2020,"month":4,"day":2,"hour":0,"minute":0},{"load":9.82,"year":2020,"month":4,"day":3,"hour":0,"minute":0},{"load":8.12,"year":2020,"month":4,"day":4,"hour":0,"minute":0},{"load":3.04,"year":2020,"month":4,"day":5,"hour":0,"minute":0},{"load":6.59,"year":2020,"month":4,"day":6,"hour":0,"minute":0},{"load":4.94,"year":2020,"month":4,"day":7,"hour":0,"minute":0},{"load":5.26,"year":2020,"month":4,"day":8,"hour":0,"minute":0},{"load":4.45,"year":2020,"month":4,"day":9,"hour":0,"minute":0},{"load":8.01,"year":2020,"month":4,"day":10,"hour":0,"minute":0},{"load":8.93,"year":2020,"month":4,"day":11,"hour":0,"minute":0},{"load":7.82,"year":2020,"month":4,"day":12,"hour":0,"minute":0},{"load":4.13,"year":2020,"month":4,"day":13,"hour":0,"minute":0},{"load":6.43,"year":2020,"month":4,"day":14,"hour":0,"minute":0},{"load":5.82,"year":2020,"month":4,"day":15,"hour":0,"minute":0},{"load":5.44,"year":2020,"month":4,"day":16,"hour":0,"minute":0},{"load":9.53,"year":2020,"month":4,"day":17,"hour":0,"minute":0},{"load":7.29,"year":2020,"month":4,"day":18,"hour":0,"minute":0},{"load":3.61,"year":2020,"month":4,"day":19,"hour":0,"minute":0},{"load":3.04,"year":2020,"month":4,"day":20,"hour":0,"minute":0},{"load":7.83,"year":2020,"month":4,"day":21,"hour":0,"minute":0},{"load":3.21,"year":2020,"month":4,"day":22,"hour":0,"minute":0},{"load":3.76,"year":2020,"month":4,"day":23,"hour":0,"minute":0},{"load":9.21,"year":2020,"month":4,"day":24,"hour":0,"minute":0},{"load":5.85,"year":2020,"month":4,"day":25,"hour":0,"minute":0},{"load":7.79,"year":2020,"month":4,"day":26,"hour":0,"minute":0},{"load":6.8,"year":2020,"month":4,"day":27,"hour":0,"minute":0},{"load":3.89,"year":2020,"month":4,"day":28,"hour":0,"minute":0},{"load":7.34,"year":2020,"month":4,"day":29,"hour":0,"minute":0}],"com.grandlyon.enedis.month":[{"load":199.78,"year":2020,"month":1,"day":0,"hour":0,"minute":0},{"load":193.38,"year":2020,"month":2,"day":0,"hour":0,"minute":0},{"load":206.81,"year":2020,"month":3,"day":0,"hour":0,"minute":0},{"load":171.06,"year":2020,"month":4,"day":1,"hour":0,"minute":0}],"com.grandlyon.enedis.year":[{"load":771.03,"year":2020,"month":1,"day":1,"hour":0,"minute":0}]} \ No newline at end of file +{"com.grandlyon.enedis.day":[{"load":8.68,"year":2020,"month":3,"day":2,"hour":0,"minute":0},{"load":9.16,"year":2020,"month":3,"day":3,"hour":0,"minute":0},{"load":9.5,"year":2020,"month":3,"day":4,"hour":0,"minute":0},{"load":8.15,"year":2020,"month":3,"day":5,"hour":0,"minute":0},{"load":4.59,"year":2020,"month":3,"day":6,"hour":0,"minute":0},{"load":3.54,"year":2020,"month":3,"day":7,"hour":0,"minute":0},{"load":9.21,"year":2020,"month":3,"day":8,"hour":0,"minute":0},{"load":7.08,"year":2020,"month":3,"day":9,"hour":0,"minute":0},{"load":4.4,"year":2020,"month":3,"day":10,"hour":0,"minute":0},{"load":5.22,"year":2020,"month":3,"day":11,"hour":0,"minute":0},{"load":3.41,"year":2020,"month":3,"day":12,"hour":0,"minute":0},{"load":3.41,"year":2020,"month":3,"day":13,"hour":0,"minute":0},{"load":3.33,"year":2020,"month":3,"day":14,"hour":0,"minute":0},{"load":6.61,"year":2020,"month":3,"day":15,"hour":0,"minute":0},{"load":7.97,"year":2020,"month":3,"day":16,"hour":0,"minute":0},{"load":9.36,"year":2020,"month":3,"day":17,"hour":0,"minute":0},{"load":6.45,"year":2020,"month":3,"day":18,"hour":0,"minute":0},{"load":9.29,"year":2020,"month":3,"day":19,"hour":0,"minute":0},{"load":5.51,"year":2020,"month":3,"day":20,"hour":0,"minute":0},{"load":7.63,"year":2020,"month":3,"day":21,"hour":0,"minute":0},{"load":4.14,"year":2020,"month":3,"day":22,"hour":0,"minute":0},{"load":7.2,"year":2020,"month":3,"day":23,"hour":0,"minute":0},{"load":7.1,"year":2020,"month":3,"day":24,"hour":0,"minute":0},{"load":9.56,"year":2020,"month":3,"day":25,"hour":0,"minute":0},{"load":7.74,"year":2020,"month":3,"day":26,"hour":0,"minute":0},{"load":9.03,"year":2020,"month":3,"day":27,"hour":0,"minute":0},{"load":7.2,"year":2020,"month":3,"day":28,"hour":0,"minute":0},{"load":4.65,"year":2020,"month":3,"day":29,"hour":0,"minute":0},{"load":7.98,"year":2020,"month":3,"day":30,"hour":0,"minute":0},{"load":3.01,"year":2020,"month":3,"day":31,"hour":0,"minute":0},{"load":4.67,"year":2020,"month":4,"day":1,"hour":0,"minute":0},{"load":5.53,"year":2020,"month":4,"day":2,"hour":0,"minute":0},{"load":8.43,"year":2020,"month":4,"day":3,"hour":0,"minute":0},{"load":9.08,"year":2020,"month":4,"day":4,"hour":0,"minute":0},{"load":9.18,"year":2020,"month":4,"day":5,"hour":0,"minute":0},{"load":3.15,"year":2020,"month":4,"day":6,"hour":0,"minute":0},{"load":3.26,"year":2020,"month":4,"day":7,"hour":0,"minute":0},{"load":7.97,"year":2020,"month":4,"day":8,"hour":0,"minute":0},{"load":7.09,"year":2020,"month":4,"day":9,"hour":0,"minute":0},{"load":7.34,"year":2020,"month":4,"day":10,"hour":0,"minute":0},{"load":6.55,"year":2020,"month":4,"day":11,"hour":0,"minute":0},{"load":8.89,"year":2020,"month":4,"day":12,"hour":0,"minute":0},{"load":8.5,"year":2020,"month":4,"day":13,"hour":0,"minute":0},{"load":3.09,"year":2020,"month":4,"day":14,"hour":0,"minute":0},{"load":9.6,"year":2020,"month":4,"day":15,"hour":0,"minute":0},{"load":8.07,"year":2020,"month":4,"day":16,"hour":0,"minute":0},{"load":7.47,"year":2020,"month":4,"day":17,"hour":0,"minute":0},{"load":3.4,"year":2020,"month":4,"day":18,"hour":0,"minute":0},{"load":5.24,"year":2020,"month":4,"day":19,"hour":0,"minute":0},{"load":3.06,"year":2020,"month":4,"day":20,"hour":0,"minute":0},{"load":7.16,"year":2020,"month":4,"day":21,"hour":0,"minute":0},{"load":5.07,"year":2020,"month":4,"day":22,"hour":0,"minute":0},{"load":5.82,"year":2020,"month":4,"day":23,"hour":0,"minute":0},{"load":5.75,"year":2020,"month":4,"day":24,"hour":0,"minute":0},{"load":5.52,"year":2020,"month":4,"day":25,"hour":0,"minute":0},{"load":6.62,"year":2020,"month":4,"day":26,"hour":0,"minute":0},{"load":4.27,"year":2020,"month":4,"day":27,"hour":0,"minute":0},{"load":8.87,"year":2020,"month":4,"day":28,"hour":0,"minute":0},{"load":7.04,"year":2020,"month":4,"day":29,"hour":0,"minute":0},{"load":8.21,"year":2020,"month":4,"day":30,"hour":0,"minute":0},{"load":3.85,"year":2020,"month":5,"day":1,"hour":0,"minute":0},{"load":8.96,"year":2020,"month":5,"day":2,"hour":0,"minute":0},{"load":9.83,"year":2020,"month":5,"day":3,"hour":0,"minute":0},{"load":3.36,"year":2020,"month":5,"day":4,"hour":0,"minute":0},{"load":8.83,"year":2020,"month":5,"day":5,"hour":0,"minute":0},{"load":4.05,"year":2020,"month":5,"day":6,"hour":0,"minute":0},{"load":8.95,"year":2020,"month":5,"day":7,"hour":0,"minute":0},{"load":7.85,"year":2020,"month":5,"day":8,"hour":0,"minute":0},{"load":9.96,"year":2020,"month":5,"day":9,"hour":0,"minute":0},{"load":5.44,"year":2020,"month":5,"day":10,"hour":0,"minute":0},{"load":9.65,"year":2020,"month":5,"day":11,"hour":0,"minute":0},{"load":5.54,"year":2020,"month":5,"day":12,"hour":0,"minute":0},{"load":3.05,"year":2020,"month":5,"day":13,"hour":0,"minute":0},{"load":9.62,"year":2020,"month":5,"day":14,"hour":0,"minute":0},{"load":4.28,"year":2020,"month":5,"day":15,"hour":0,"minute":0},{"load":3.11,"year":2020,"month":5,"day":16,"hour":0,"minute":0},{"load":7.45,"year":2020,"month":5,"day":17,"hour":0,"minute":0},{"load":5.36,"year":2020,"month":5,"day":18,"hour":0,"minute":0},{"load":9.64,"year":2020,"month":5,"day":19,"hour":0,"minute":0},{"load":4.5,"year":2020,"month":5,"day":20,"hour":0,"minute":0},{"load":5.11,"year":2020,"month":5,"day":21,"hour":0,"minute":0},{"load":7.72,"year":2020,"month":5,"day":22,"hour":0,"minute":0},{"load":9.19,"year":2020,"month":5,"day":23,"hour":0,"minute":0},{"load":8.19,"year":2020,"month":5,"day":24,"hour":0,"minute":0},{"load":4.41,"year":2020,"month":5,"day":25,"hour":0,"minute":0},{"load":7.95,"year":2020,"month":5,"day":26,"hour":0,"minute":0},{"load":8.4,"year":2020,"month":5,"day":27,"hour":0,"minute":0},{"load":8.73,"year":2020,"month":5,"day":28,"hour":0,"minute":0},{"load":5.2,"year":2020,"month":5,"day":29,"hour":0,"minute":0},{"load":4.26,"year":2020,"month":5,"day":30,"hour":0,"minute":0},{"load":3.8,"year":2020,"month":5,"day":31,"hour":0,"minute":0},{"load":6.69,"year":2020,"month":6,"day":1,"hour":0,"minute":0},{"load":7.28,"year":2020,"month":6,"day":2,"hour":0,"minute":0},{"load":8.83,"year":2020,"month":6,"day":3,"hour":0,"minute":0},{"load":6.49,"year":2020,"month":6,"day":4,"hour":0,"minute":0},{"load":6.84,"year":2020,"month":6,"day":5,"hour":0,"minute":0},{"load":9.76,"year":2020,"month":6,"day":6,"hour":0,"minute":0},{"load":3.12,"year":2020,"month":6,"day":7,"hour":0,"minute":0},{"load":8.7,"year":2020,"month":6,"day":8,"hour":0,"minute":0},{"load":7.81,"year":2020,"month":6,"day":9,"hour":0,"minute":0},{"load":5.05,"year":2020,"month":6,"day":10,"hour":0,"minute":0},{"load":7.76,"year":2020,"month":6,"day":11,"hour":0,"minute":0},{"load":8.68,"year":2020,"month":6,"day":12,"hour":0,"minute":0},{"load":6.58,"year":2020,"month":6,"day":13,"hour":0,"minute":0},{"load":7.68,"year":2020,"month":6,"day":14,"hour":0,"minute":0},{"load":5.51,"year":2020,"month":6,"day":15,"hour":0,"minute":0},{"load":7.02,"year":2020,"month":6,"day":16,"hour":0,"minute":0},{"load":5.28,"year":2020,"month":6,"day":17,"hour":0,"minute":0},{"load":9.06,"year":2020,"month":6,"day":18,"hour":0,"minute":0},{"load":9.41,"year":2020,"month":6,"day":19,"hour":0,"minute":0},{"load":8.09,"year":2020,"month":6,"day":20,"hour":0,"minute":0},{"load":3.51,"year":2020,"month":6,"day":21,"hour":0,"minute":0},{"load":4.73,"year":2020,"month":6,"day":22,"hour":0,"minute":0},{"load":8.66,"year":2020,"month":6,"day":23,"hour":0,"minute":0},{"load":9.45,"year":2020,"month":6,"day":24,"hour":0,"minute":0},{"load":5.84,"year":2020,"month":6,"day":25,"hour":0,"minute":0},{"load":6.63,"year":2020,"month":6,"day":26,"hour":0,"minute":0},{"load":7.43,"year":2020,"month":6,"day":27,"hour":0,"minute":0},{"load":9.44,"year":2020,"month":6,"day":28,"hour":0,"minute":0},{"load":3.65,"year":2020,"month":6,"day":29,"hour":0,"minute":0}],"com.grandlyon.enedis.month":[{"load":204.78,"year":2020,"month":3,"day":0,"hour":0,"minute":0},{"load":193.08,"year":2020,"month":4,"day":0,"hour":0,"minute":0},{"load":209.08,"year":2020,"month":5,"day":0,"hour":0,"minute":0},{"load":198.29,"year":2020,"month":6,"day":1,"hour":0,"minute":0}],"com.grandlyon.enedis.year":[{"load":805.23,"year":2020,"month":1,"day":1,"hour":0,"minute":0}]} \ No newline at end of file diff --git a/test/data/dayData-gas.json b/test/data/dayData-gas.json index a1f2193c7fde22595a7e2b2888104f6acdf058e4..7f93ad6f0920018eba10965246ea3ab7b85281fc 100644 --- a/test/data/dayData-gas.json +++ b/test/data/dayData-gas.json @@ -1 +1 @@ -{"com.grandlyon.grdf.day":[{"load":52.41,"year":2020,"month":1,"day":1,"hour":0,"minute":0},{"load":58.73,"year":2020,"month":1,"day":2,"hour":0,"minute":0},{"load":41.05,"year":2020,"month":1,"day":3,"hour":0,"minute":0},{"load":17.93,"year":2020,"month":1,"day":4,"hour":0,"minute":0},{"load":41.19,"year":2020,"month":1,"day":5,"hour":0,"minute":0},{"load":53.38,"year":2020,"month":1,"day":6,"hour":0,"minute":0},{"load":37.93,"year":2020,"month":1,"day":7,"hour":0,"minute":0},{"load":39.38,"year":2020,"month":1,"day":8,"hour":0,"minute":0},{"load":65.88,"year":2020,"month":1,"day":9,"hour":0,"minute":0},{"load":45.74,"year":2020,"month":1,"day":10,"hour":0,"minute":0},{"load":17.4,"year":2020,"month":1,"day":11,"hour":0,"minute":0},{"load":33.71,"year":2020,"month":1,"day":12,"hour":0,"minute":0},{"load":36.05,"year":2020,"month":1,"day":13,"hour":0,"minute":0},{"load":62.06,"year":2020,"month":1,"day":14,"hour":0,"minute":0},{"load":34.61,"year":2020,"month":1,"day":15,"hour":0,"minute":0},{"load":64.29,"year":2020,"month":1,"day":16,"hour":0,"minute":0},{"load":25.38,"year":2020,"month":1,"day":17,"hour":0,"minute":0},{"load":65.92,"year":2020,"month":1,"day":18,"hour":0,"minute":0},{"load":22.58,"year":2020,"month":1,"day":19,"hour":0,"minute":0},{"load":32.96,"year":2020,"month":1,"day":20,"hour":0,"minute":0},{"load":30.61,"year":2020,"month":1,"day":21,"hour":0,"minute":0},{"load":26.95,"year":2020,"month":1,"day":22,"hour":0,"minute":0},{"load":44.24,"year":2020,"month":1,"day":23,"hour":0,"minute":0},{"load":54.35,"year":2020,"month":1,"day":24,"hour":0,"minute":0},{"load":37.44,"year":2020,"month":1,"day":25,"hour":0,"minute":0},{"load":28.66,"year":2020,"month":1,"day":26,"hour":0,"minute":0},{"load":59.73,"year":2020,"month":1,"day":27,"hour":0,"minute":0},{"load":58.37,"year":2020,"month":1,"day":28,"hour":0,"minute":0},{"load":16.59,"year":2020,"month":1,"day":29,"hour":0,"minute":0},{"load":58.36,"year":2020,"month":1,"day":30,"hour":0,"minute":0},{"load":62.08,"year":2020,"month":1,"day":31,"hour":0,"minute":0},{"load":21.78,"year":2020,"month":2,"day":1,"hour":0,"minute":0},{"load":54.82,"year":2020,"month":2,"day":2,"hour":0,"minute":0},{"load":51.54,"year":2020,"month":2,"day":3,"hour":0,"minute":0},{"load":45.73,"year":2020,"month":2,"day":4,"hour":0,"minute":0},{"load":36.5,"year":2020,"month":2,"day":5,"hour":0,"minute":0},{"load":24.41,"year":2020,"month":2,"day":6,"hour":0,"minute":0},{"load":64.03,"year":2020,"month":2,"day":7,"hour":0,"minute":0},{"load":26.36,"year":2020,"month":2,"day":8,"hour":0,"minute":0},{"load":66.75,"year":2020,"month":2,"day":9,"hour":0,"minute":0},{"load":26.88,"year":2020,"month":2,"day":10,"hour":0,"minute":0},{"load":38.9,"year":2020,"month":2,"day":11,"hour":0,"minute":0},{"load":33.79,"year":2020,"month":2,"day":12,"hour":0,"minute":0},{"load":46.06,"year":2020,"month":2,"day":13,"hour":0,"minute":0},{"load":40.21,"year":2020,"month":2,"day":14,"hour":0,"minute":0},{"load":32.47,"year":2020,"month":2,"day":15,"hour":0,"minute":0},{"load":63.28,"year":2020,"month":2,"day":16,"hour":0,"minute":0},{"load":24.66,"year":2020,"month":2,"day":17,"hour":0,"minute":0},{"load":61.52,"year":2020,"month":2,"day":18,"hour":0,"minute":0},{"load":51.06,"year":2020,"month":2,"day":19,"hour":0,"minute":0},{"load":30.18,"year":2020,"month":2,"day":20,"hour":0,"minute":0},{"load":31.51,"year":2020,"month":2,"day":21,"hour":0,"minute":0},{"load":60.22,"year":2020,"month":2,"day":22,"hour":0,"minute":0},{"load":49.48,"year":2020,"month":2,"day":23,"hour":0,"minute":0},{"load":24.37,"year":2020,"month":2,"day":24,"hour":0,"minute":0},{"load":40.91,"year":2020,"month":2,"day":25,"hour":0,"minute":0},{"load":33.09,"year":2020,"month":2,"day":26,"hour":0,"minute":0},{"load":58.14,"year":2020,"month":2,"day":27,"hour":0,"minute":0},{"load":67.46,"year":2020,"month":2,"day":28,"hour":0,"minute":0},{"load":47.03,"year":2020,"month":2,"day":29,"hour":0,"minute":0},{"load":50.89,"year":2020,"month":3,"day":1,"hour":0,"minute":0},{"load":39.84,"year":2020,"month":3,"day":2,"hour":0,"minute":0},{"load":48.55,"year":2020,"month":3,"day":3,"hour":0,"minute":0},{"load":54.28,"year":2020,"month":3,"day":4,"hour":0,"minute":0},{"load":24.52,"year":2020,"month":3,"day":5,"hour":0,"minute":0},{"load":36.45,"year":2020,"month":3,"day":6,"hour":0,"minute":0},{"load":35.05,"year":2020,"month":3,"day":7,"hour":0,"minute":0},{"load":18.47,"year":2020,"month":3,"day":8,"hour":0,"minute":0},{"load":58.52,"year":2020,"month":3,"day":9,"hour":0,"minute":0},{"load":41.14,"year":2020,"month":3,"day":10,"hour":0,"minute":0},{"load":42.74,"year":2020,"month":3,"day":11,"hour":0,"minute":0},{"load":54.73,"year":2020,"month":3,"day":12,"hour":0,"minute":0},{"load":23.45,"year":2020,"month":3,"day":13,"hour":0,"minute":0},{"load":55.12,"year":2020,"month":3,"day":14,"hour":0,"minute":0},{"load":47.33,"year":2020,"month":3,"day":15,"hour":0,"minute":0},{"load":20.84,"year":2020,"month":3,"day":16,"hour":0,"minute":0},{"load":60.22,"year":2020,"month":3,"day":17,"hour":0,"minute":0},{"load":38.98,"year":2020,"month":3,"day":18,"hour":0,"minute":0},{"load":59.29,"year":2020,"month":3,"day":19,"hour":0,"minute":0},{"load":23.69,"year":2020,"month":3,"day":20,"hour":0,"minute":0},{"load":45.61,"year":2020,"month":3,"day":21,"hour":0,"minute":0},{"load":22.03,"year":2020,"month":3,"day":22,"hour":0,"minute":0},{"load":22.81,"year":2020,"month":3,"day":23,"hour":0,"minute":0},{"load":65.09,"year":2020,"month":3,"day":24,"hour":0,"minute":0},{"load":39.38,"year":2020,"month":3,"day":25,"hour":0,"minute":0},{"load":34.56,"year":2020,"month":3,"day":26,"hour":0,"minute":0},{"load":50.35,"year":2020,"month":3,"day":27,"hour":0,"minute":0},{"load":31.03,"year":2020,"month":3,"day":28,"hour":0,"minute":0},{"load":51.73,"year":2020,"month":3,"day":29,"hour":0,"minute":0},{"load":40.89,"year":2020,"month":3,"day":30,"hour":0,"minute":0},{"load":64.64,"year":2020,"month":3,"day":31,"hour":0,"minute":0},{"load":28.41,"year":2020,"month":4,"day":1,"hour":0,"minute":0},{"load":56.89,"year":2020,"month":4,"day":2,"hour":0,"minute":0},{"load":41.85,"year":2020,"month":4,"day":3,"hour":0,"minute":0},{"load":41.24,"year":2020,"month":4,"day":4,"hour":0,"minute":0},{"load":26.86,"year":2020,"month":4,"day":5,"hour":0,"minute":0},{"load":40.83,"year":2020,"month":4,"day":6,"hour":0,"minute":0},{"load":59.65,"year":2020,"month":4,"day":7,"hour":0,"minute":0},{"load":34.4,"year":2020,"month":4,"day":8,"hour":0,"minute":0},{"load":66.36,"year":2020,"month":4,"day":9,"hour":0,"minute":0},{"load":66.64,"year":2020,"month":4,"day":10,"hour":0,"minute":0},{"load":33.56,"year":2020,"month":4,"day":11,"hour":0,"minute":0},{"load":20.23,"year":2020,"month":4,"day":12,"hour":0,"minute":0},{"load":54.13,"year":2020,"month":4,"day":13,"hour":0,"minute":0},{"load":38.69,"year":2020,"month":4,"day":14,"hour":0,"minute":0},{"load":33.34,"year":2020,"month":4,"day":15,"hour":0,"minute":0},{"load":44.67,"year":2020,"month":4,"day":16,"hour":0,"minute":0},{"load":17.46,"year":2020,"month":4,"day":17,"hour":0,"minute":0},{"load":39.25,"year":2020,"month":4,"day":18,"hour":0,"minute":0},{"load":49.73,"year":2020,"month":4,"day":19,"hour":0,"minute":0},{"load":57.52,"year":2020,"month":4,"day":20,"hour":0,"minute":0},{"load":47.97,"year":2020,"month":4,"day":21,"hour":0,"minute":0},{"load":36.41,"year":2020,"month":4,"day":22,"hour":0,"minute":0},{"load":37.39,"year":2020,"month":4,"day":23,"hour":0,"minute":0},{"load":26.73,"year":2020,"month":4,"day":24,"hour":0,"minute":0},{"load":17.99,"year":2020,"month":4,"day":25,"hour":0,"minute":0},{"load":48.2,"year":2020,"month":4,"day":26,"hour":0,"minute":0},{"load":21.47,"year":2020,"month":4,"day":27,"hour":0,"minute":0},{"load":38.01,"year":2020,"month":4,"day":28,"hour":0,"minute":0},{"load":25.59,"year":2020,"month":4,"day":29,"hour":0,"minute":0}],"com.grandlyon.grdf.month":[{"load":1347.74,"year":2020,"month":1,"day":0,"hour":0,"minute":0},{"load":1282.25,"year":2020,"month":2,"day":0,"hour":0,"minute":0},{"load":1279.74,"year":2020,"month":3,"day":0,"hour":0,"minute":0},{"load":1123.06,"year":2020,"month":4,"day":1,"hour":0,"minute":0}],"com.grandlyon.grdf.year":[{"load":5032.79,"year":2020,"month":1,"day":1,"hour":0,"minute":0}]} \ No newline at end of file +{"com.grandlyon.grdf.day":[{"load":54.26,"year":2020,"month":3,"day":2,"hour":0,"minute":0},{"load":23.68,"year":2020,"month":3,"day":3,"hour":0,"minute":0},{"load":37.71,"year":2020,"month":3,"day":4,"hour":0,"minute":0},{"load":49.7,"year":2020,"month":3,"day":5,"hour":0,"minute":0},{"load":17.21,"year":2020,"month":3,"day":6,"hour":0,"minute":0},{"load":65.57,"year":2020,"month":3,"day":7,"hour":0,"minute":0},{"load":18.23,"year":2020,"month":3,"day":8,"hour":0,"minute":0},{"load":34.33,"year":2020,"month":3,"day":9,"hour":0,"minute":0},{"load":28.06,"year":2020,"month":3,"day":10,"hour":0,"minute":0},{"load":57.34,"year":2020,"month":3,"day":11,"hour":0,"minute":0},{"load":30.97,"year":2020,"month":3,"day":12,"hour":0,"minute":0},{"load":58.28,"year":2020,"month":3,"day":13,"hour":0,"minute":0},{"load":49.57,"year":2020,"month":3,"day":14,"hour":0,"minute":0},{"load":66.56,"year":2020,"month":3,"day":15,"hour":0,"minute":0},{"load":22.51,"year":2020,"month":3,"day":16,"hour":0,"minute":0},{"load":62.52,"year":2020,"month":3,"day":17,"hour":0,"minute":0},{"load":17.31,"year":2020,"month":3,"day":18,"hour":0,"minute":0},{"load":16,"year":2020,"month":3,"day":19,"hour":0,"minute":0},{"load":39.09,"year":2020,"month":3,"day":20,"hour":0,"minute":0},{"load":28.44,"year":2020,"month":3,"day":21,"hour":0,"minute":0},{"load":44.14,"year":2020,"month":3,"day":22,"hour":0,"minute":0},{"load":59.75,"year":2020,"month":3,"day":23,"hour":0,"minute":0},{"load":30.8,"year":2020,"month":3,"day":24,"hour":0,"minute":0},{"load":29.87,"year":2020,"month":3,"day":25,"hour":0,"minute":0},{"load":42.77,"year":2020,"month":3,"day":26,"hour":0,"minute":0},{"load":61.1,"year":2020,"month":3,"day":27,"hour":0,"minute":0},{"load":20.67,"year":2020,"month":3,"day":28,"hour":0,"minute":0},{"load":53.12,"year":2020,"month":3,"day":29,"hour":0,"minute":0},{"load":31.16,"year":2020,"month":3,"day":30,"hour":0,"minute":0},{"load":36.92,"year":2020,"month":3,"day":31,"hour":0,"minute":0},{"load":25.89,"year":2020,"month":4,"day":1,"hour":0,"minute":0},{"load":35.35,"year":2020,"month":4,"day":2,"hour":0,"minute":0},{"load":60.23,"year":2020,"month":4,"day":3,"hour":0,"minute":0},{"load":20.91,"year":2020,"month":4,"day":4,"hour":0,"minute":0},{"load":45.95,"year":2020,"month":4,"day":5,"hour":0,"minute":0},{"load":59.7,"year":2020,"month":4,"day":6,"hour":0,"minute":0},{"load":64.69,"year":2020,"month":4,"day":7,"hour":0,"minute":0},{"load":67.26,"year":2020,"month":4,"day":8,"hour":0,"minute":0},{"load":63.95,"year":2020,"month":4,"day":9,"hour":0,"minute":0},{"load":47.16,"year":2020,"month":4,"day":10,"hour":0,"minute":0},{"load":67.37,"year":2020,"month":4,"day":11,"hour":0,"minute":0},{"load":64.67,"year":2020,"month":4,"day":12,"hour":0,"minute":0},{"load":34.26,"year":2020,"month":4,"day":13,"hour":0,"minute":0},{"load":43.72,"year":2020,"month":4,"day":14,"hour":0,"minute":0},{"load":16.33,"year":2020,"month":4,"day":15,"hour":0,"minute":0},{"load":39.6,"year":2020,"month":4,"day":16,"hour":0,"minute":0},{"load":31.53,"year":2020,"month":4,"day":17,"hour":0,"minute":0},{"load":41.88,"year":2020,"month":4,"day":18,"hour":0,"minute":0},{"load":25.59,"year":2020,"month":4,"day":19,"hour":0,"minute":0},{"load":16.86,"year":2020,"month":4,"day":20,"hour":0,"minute":0},{"load":21.62,"year":2020,"month":4,"day":21,"hour":0,"minute":0},{"load":26.31,"year":2020,"month":4,"day":22,"hour":0,"minute":0},{"load":50.56,"year":2020,"month":4,"day":23,"hour":0,"minute":0},{"load":35.57,"year":2020,"month":4,"day":24,"hour":0,"minute":0},{"load":60.46,"year":2020,"month":4,"day":25,"hour":0,"minute":0},{"load":45.19,"year":2020,"month":4,"day":26,"hour":0,"minute":0},{"load":45.61,"year":2020,"month":4,"day":27,"hour":0,"minute":0},{"load":18.76,"year":2020,"month":4,"day":28,"hour":0,"minute":0},{"load":55.74,"year":2020,"month":4,"day":29,"hour":0,"minute":0},{"load":18.01,"year":2020,"month":4,"day":30,"hour":0,"minute":0},{"load":62.47,"year":2020,"month":5,"day":1,"hour":0,"minute":0},{"load":46.36,"year":2020,"month":5,"day":2,"hour":0,"minute":0},{"load":30.68,"year":2020,"month":5,"day":3,"hour":0,"minute":0},{"load":34.05,"year":2020,"month":5,"day":4,"hour":0,"minute":0},{"load":65.52,"year":2020,"month":5,"day":5,"hour":0,"minute":0},{"load":41.96,"year":2020,"month":5,"day":6,"hour":0,"minute":0},{"load":17.5,"year":2020,"month":5,"day":7,"hour":0,"minute":0},{"load":39.3,"year":2020,"month":5,"day":8,"hour":0,"minute":0},{"load":31.36,"year":2020,"month":5,"day":9,"hour":0,"minute":0},{"load":39.88,"year":2020,"month":5,"day":10,"hour":0,"minute":0},{"load":59.32,"year":2020,"month":5,"day":11,"hour":0,"minute":0},{"load":30.2,"year":2020,"month":5,"day":12,"hour":0,"minute":0},{"load":25.99,"year":2020,"month":5,"day":13,"hour":0,"minute":0},{"load":30.02,"year":2020,"month":5,"day":14,"hour":0,"minute":0},{"load":61.32,"year":2020,"month":5,"day":15,"hour":0,"minute":0},{"load":30.49,"year":2020,"month":5,"day":16,"hour":0,"minute":0},{"load":62.52,"year":2020,"month":5,"day":17,"hour":0,"minute":0},{"load":54.46,"year":2020,"month":5,"day":18,"hour":0,"minute":0},{"load":34.97,"year":2020,"month":5,"day":19,"hour":0,"minute":0},{"load":65.65,"year":2020,"month":5,"day":20,"hour":0,"minute":0},{"load":47.9,"year":2020,"month":5,"day":21,"hour":0,"minute":0},{"load":31.9,"year":2020,"month":5,"day":22,"hour":0,"minute":0},{"load":32.14,"year":2020,"month":5,"day":23,"hour":0,"minute":0},{"load":60.88,"year":2020,"month":5,"day":24,"hour":0,"minute":0},{"load":62.44,"year":2020,"month":5,"day":25,"hour":0,"minute":0},{"load":40.6,"year":2020,"month":5,"day":26,"hour":0,"minute":0},{"load":22.11,"year":2020,"month":5,"day":27,"hour":0,"minute":0},{"load":31.99,"year":2020,"month":5,"day":28,"hour":0,"minute":0},{"load":64.52,"year":2020,"month":5,"day":29,"hour":0,"minute":0},{"load":41.9,"year":2020,"month":5,"day":30,"hour":0,"minute":0},{"load":39.57,"year":2020,"month":5,"day":31,"hour":0,"minute":0},{"load":17.65,"year":2020,"month":6,"day":1,"hour":0,"minute":0},{"load":37.92,"year":2020,"month":6,"day":2,"hour":0,"minute":0},{"load":21.91,"year":2020,"month":6,"day":3,"hour":0,"minute":0},{"load":39.04,"year":2020,"month":6,"day":4,"hour":0,"minute":0},{"load":25.55,"year":2020,"month":6,"day":5,"hour":0,"minute":0},{"load":22.35,"year":2020,"month":6,"day":6,"hour":0,"minute":0},{"load":36.99,"year":2020,"month":6,"day":7,"hour":0,"minute":0},{"load":38.82,"year":2020,"month":6,"day":8,"hour":0,"minute":0},{"load":18.47,"year":2020,"month":6,"day":9,"hour":0,"minute":0},{"load":51.11,"year":2020,"month":6,"day":10,"hour":0,"minute":0},{"load":23.93,"year":2020,"month":6,"day":11,"hour":0,"minute":0},{"load":63.05,"year":2020,"month":6,"day":12,"hour":0,"minute":0},{"load":42.87,"year":2020,"month":6,"day":13,"hour":0,"minute":0},{"load":64.65,"year":2020,"month":6,"day":14,"hour":0,"minute":0},{"load":22.86,"year":2020,"month":6,"day":15,"hour":0,"minute":0},{"load":56.89,"year":2020,"month":6,"day":16,"hour":0,"minute":0},{"load":35.68,"year":2020,"month":6,"day":17,"hour":0,"minute":0},{"load":23.83,"year":2020,"month":6,"day":18,"hour":0,"minute":0},{"load":22.83,"year":2020,"month":6,"day":19,"hour":0,"minute":0},{"load":27.9,"year":2020,"month":6,"day":20,"hour":0,"minute":0},{"load":21.87,"year":2020,"month":6,"day":21,"hour":0,"minute":0},{"load":19.93,"year":2020,"month":6,"day":22,"hour":0,"minute":0},{"load":32.48,"year":2020,"month":6,"day":23,"hour":0,"minute":0},{"load":66.18,"year":2020,"month":6,"day":24,"hour":0,"minute":0},{"load":21.37,"year":2020,"month":6,"day":25,"hour":0,"minute":0},{"load":62.57,"year":2020,"month":6,"day":26,"hour":0,"minute":0},{"load":56.02,"year":2020,"month":6,"day":27,"hour":0,"minute":0},{"load":60.83,"year":2020,"month":6,"day":28,"hour":0,"minute":0},{"load":47.79,"year":2020,"month":6,"day":29,"hour":0,"minute":0}],"com.grandlyon.grdf.month":[{"load":1213.53,"year":2020,"month":3,"day":0,"hour":0,"minute":0},{"load":1287.31,"year":2020,"month":4,"day":0,"hour":0,"minute":0},{"load":1295.15,"year":2020,"month":5,"day":0,"hour":0,"minute":0},{"load":1065.69,"year":2020,"month":6,"day":1,"hour":0,"minute":0}],"com.grandlyon.grdf.year":[{"load":4861.68,"year":2020,"month":1,"day":1,"hour":0,"minute":0}]} \ No newline at end of file diff --git a/test/data/dayData-water.json b/test/data/dayData-water.json index 268c9df73a7b26381bc1e8775894a04b73fd23fe..9fc1b5b30652b8a411940ff6bd96f4c7da62d9b4 100644 --- a/test/data/dayData-water.json +++ b/test/data/dayData-water.json @@ -1 +1 @@ -{"com.grandlyon.egl.day":[{"load":299.91,"year":2020,"month":1,"day":1,"hour":0,"minute":0},{"load":296.56,"year":2020,"month":1,"day":2,"hour":0,"minute":0},{"load":240.03,"year":2020,"month":1,"day":3,"hour":0,"minute":0},{"load":236.24,"year":2020,"month":1,"day":4,"hour":0,"minute":0},{"load":291.67,"year":2020,"month":1,"day":5,"hour":0,"minute":0},{"load":210.55,"year":2020,"month":1,"day":6,"hour":0,"minute":0},{"load":203.23,"year":2020,"month":1,"day":7,"hour":0,"minute":0},{"load":281.99,"year":2020,"month":1,"day":8,"hour":0,"minute":0},{"load":250.63,"year":2020,"month":1,"day":9,"hour":0,"minute":0},{"load":259.45,"year":2020,"month":1,"day":10,"hour":0,"minute":0},{"load":238.95,"year":2020,"month":1,"day":11,"hour":0,"minute":0},{"load":236.73,"year":2020,"month":1,"day":12,"hour":0,"minute":0},{"load":280.6,"year":2020,"month":1,"day":13,"hour":0,"minute":0},{"load":205.89,"year":2020,"month":1,"day":14,"hour":0,"minute":0},{"load":254.44,"year":2020,"month":1,"day":15,"hour":0,"minute":0},{"load":292.74,"year":2020,"month":1,"day":16,"hour":0,"minute":0},{"load":296,"year":2020,"month":1,"day":17,"hour":0,"minute":0},{"load":288.7,"year":2020,"month":1,"day":18,"hour":0,"minute":0},{"load":223.4,"year":2020,"month":1,"day":19,"hour":0,"minute":0},{"load":211.4,"year":2020,"month":1,"day":20,"hour":0,"minute":0},{"load":271.46,"year":2020,"month":1,"day":21,"hour":0,"minute":0},{"load":211.2,"year":2020,"month":1,"day":22,"hour":0,"minute":0},{"load":235.32,"year":2020,"month":1,"day":23,"hour":0,"minute":0},{"load":232.02,"year":2020,"month":1,"day":24,"hour":0,"minute":0},{"load":259.27,"year":2020,"month":1,"day":25,"hour":0,"minute":0},{"load":243.77,"year":2020,"month":1,"day":26,"hour":0,"minute":0},{"load":256.47,"year":2020,"month":1,"day":27,"hour":0,"minute":0},{"load":228.03,"year":2020,"month":1,"day":28,"hour":0,"minute":0},{"load":267.64,"year":2020,"month":1,"day":29,"hour":0,"minute":0},{"load":259.33,"year":2020,"month":1,"day":30,"hour":0,"minute":0},{"load":276.25,"year":2020,"month":1,"day":31,"hour":0,"minute":0},{"load":210.73,"year":2020,"month":2,"day":1,"hour":0,"minute":0},{"load":287.85,"year":2020,"month":2,"day":2,"hour":0,"minute":0},{"load":210.99,"year":2020,"month":2,"day":3,"hour":0,"minute":0},{"load":208.92,"year":2020,"month":2,"day":4,"hour":0,"minute":0},{"load":295.65,"year":2020,"month":2,"day":5,"hour":0,"minute":0},{"load":296.67,"year":2020,"month":2,"day":6,"hour":0,"minute":0},{"load":264.52,"year":2020,"month":2,"day":7,"hour":0,"minute":0},{"load":299.73,"year":2020,"month":2,"day":8,"hour":0,"minute":0},{"load":258.76,"year":2020,"month":2,"day":9,"hour":0,"minute":0},{"load":275.98,"year":2020,"month":2,"day":10,"hour":0,"minute":0},{"load":239.97,"year":2020,"month":2,"day":11,"hour":0,"minute":0},{"load":205.36,"year":2020,"month":2,"day":12,"hour":0,"minute":0},{"load":207.2,"year":2020,"month":2,"day":13,"hour":0,"minute":0},{"load":291.79,"year":2020,"month":2,"day":14,"hour":0,"minute":0},{"load":222.06,"year":2020,"month":2,"day":15,"hour":0,"minute":0},{"load":288.42,"year":2020,"month":2,"day":16,"hour":0,"minute":0},{"load":231.57,"year":2020,"month":2,"day":17,"hour":0,"minute":0},{"load":234.53,"year":2020,"month":2,"day":18,"hour":0,"minute":0},{"load":233.43,"year":2020,"month":2,"day":19,"hour":0,"minute":0},{"load":267.26,"year":2020,"month":2,"day":20,"hour":0,"minute":0},{"load":299.93,"year":2020,"month":2,"day":21,"hour":0,"minute":0},{"load":297.36,"year":2020,"month":2,"day":22,"hour":0,"minute":0},{"load":241.96,"year":2020,"month":2,"day":23,"hour":0,"minute":0},{"load":220.85,"year":2020,"month":2,"day":24,"hour":0,"minute":0},{"load":278.39,"year":2020,"month":2,"day":25,"hour":0,"minute":0},{"load":260.37,"year":2020,"month":2,"day":26,"hour":0,"minute":0},{"load":267.83,"year":2020,"month":2,"day":27,"hour":0,"minute":0},{"load":281.76,"year":2020,"month":2,"day":28,"hour":0,"minute":0},{"load":247.64,"year":2020,"month":2,"day":29,"hour":0,"minute":0},{"load":271.26,"year":2020,"month":3,"day":1,"hour":0,"minute":0},{"load":219.47,"year":2020,"month":3,"day":2,"hour":0,"minute":0},{"load":202.65,"year":2020,"month":3,"day":3,"hour":0,"minute":0},{"load":280.34,"year":2020,"month":3,"day":4,"hour":0,"minute":0},{"load":280.48,"year":2020,"month":3,"day":5,"hour":0,"minute":0},{"load":294.57,"year":2020,"month":3,"day":6,"hour":0,"minute":0},{"load":230.79,"year":2020,"month":3,"day":7,"hour":0,"minute":0},{"load":295.34,"year":2020,"month":3,"day":8,"hour":0,"minute":0},{"load":283.26,"year":2020,"month":3,"day":9,"hour":0,"minute":0},{"load":283.79,"year":2020,"month":3,"day":10,"hour":0,"minute":0},{"load":251.3,"year":2020,"month":3,"day":11,"hour":0,"minute":0},{"load":297.2,"year":2020,"month":3,"day":12,"hour":0,"minute":0},{"load":226.87,"year":2020,"month":3,"day":13,"hour":0,"minute":0},{"load":214.02,"year":2020,"month":3,"day":14,"hour":0,"minute":0},{"load":269.95,"year":2020,"month":3,"day":15,"hour":0,"minute":0},{"load":235.28,"year":2020,"month":3,"day":16,"hour":0,"minute":0},{"load":251.1,"year":2020,"month":3,"day":17,"hour":0,"minute":0},{"load":296.24,"year":2020,"month":3,"day":18,"hour":0,"minute":0},{"load":296.49,"year":2020,"month":3,"day":19,"hour":0,"minute":0},{"load":252.83,"year":2020,"month":3,"day":20,"hour":0,"minute":0},{"load":283.27,"year":2020,"month":3,"day":21,"hour":0,"minute":0},{"load":216.5,"year":2020,"month":3,"day":22,"hour":0,"minute":0},{"load":213.42,"year":2020,"month":3,"day":23,"hour":0,"minute":0},{"load":224.05,"year":2020,"month":3,"day":24,"hour":0,"minute":0},{"load":214.4,"year":2020,"month":3,"day":25,"hour":0,"minute":0},{"load":239.42,"year":2020,"month":3,"day":26,"hour":0,"minute":0},{"load":252.32,"year":2020,"month":3,"day":27,"hour":0,"minute":0},{"load":222.37,"year":2020,"month":3,"day":28,"hour":0,"minute":0},{"load":222.35,"year":2020,"month":3,"day":29,"hour":0,"minute":0},{"load":261.47,"year":2020,"month":3,"day":30,"hour":0,"minute":0},{"load":220.18,"year":2020,"month":3,"day":31,"hour":0,"minute":0},{"load":258.52,"year":2020,"month":4,"day":1,"hour":0,"minute":0},{"load":257.72,"year":2020,"month":4,"day":2,"hour":0,"minute":0},{"load":230.25,"year":2020,"month":4,"day":3,"hour":0,"minute":0},{"load":229.2,"year":2020,"month":4,"day":4,"hour":0,"minute":0},{"load":294.61,"year":2020,"month":4,"day":5,"hour":0,"minute":0},{"load":211.77,"year":2020,"month":4,"day":6,"hour":0,"minute":0},{"load":281.43,"year":2020,"month":4,"day":7,"hour":0,"minute":0},{"load":226.14,"year":2020,"month":4,"day":8,"hour":0,"minute":0},{"load":233,"year":2020,"month":4,"day":9,"hour":0,"minute":0},{"load":260.06,"year":2020,"month":4,"day":10,"hour":0,"minute":0},{"load":266.91,"year":2020,"month":4,"day":11,"hour":0,"minute":0},{"load":285.71,"year":2020,"month":4,"day":12,"hour":0,"minute":0},{"load":245.52,"year":2020,"month":4,"day":13,"hour":0,"minute":0},{"load":225.5,"year":2020,"month":4,"day":14,"hour":0,"minute":0},{"load":213.33,"year":2020,"month":4,"day":15,"hour":0,"minute":0},{"load":294.27,"year":2020,"month":4,"day":16,"hour":0,"minute":0},{"load":260.93,"year":2020,"month":4,"day":17,"hour":0,"minute":0},{"load":269.84,"year":2020,"month":4,"day":18,"hour":0,"minute":0},{"load":269.08,"year":2020,"month":4,"day":19,"hour":0,"minute":0},{"load":254.89,"year":2020,"month":4,"day":20,"hour":0,"minute":0},{"load":221.99,"year":2020,"month":4,"day":21,"hour":0,"minute":0},{"load":237.89,"year":2020,"month":4,"day":22,"hour":0,"minute":0},{"load":205.67,"year":2020,"month":4,"day":23,"hour":0,"minute":0},{"load":238.43,"year":2020,"month":4,"day":24,"hour":0,"minute":0},{"load":263.61,"year":2020,"month":4,"day":25,"hour":0,"minute":0},{"load":200.89,"year":2020,"month":4,"day":26,"hour":0,"minute":0},{"load":296.27,"year":2020,"month":4,"day":27,"hour":0,"minute":0},{"load":210.59,"year":2020,"month":4,"day":28,"hour":0,"minute":0},{"load":251.88,"year":2020,"month":4,"day":29,"hour":0,"minute":0}],"com.grandlyon.egl.month":[{"load":8050.6,"year":2020,"month":1,"day":0,"hour":0,"minute":0},{"load":7488.01,"year":2020,"month":2,"day":0,"hour":0,"minute":0},{"load":7790.24,"year":2020,"month":3,"day":0,"hour":0,"minute":0},{"load":6937.38,"year":2020,"month":4,"day":1,"hour":0,"minute":0}],"com.grandlyon.egl.year":[{"load":30266.23,"year":2020,"month":1,"day":1,"hour":0,"minute":0}]} \ No newline at end of file +{"com.grandlyon.egl.day":[{"load":247.65,"year":2020,"month":3,"day":2,"hour":0,"minute":0},{"load":232.71,"year":2020,"month":3,"day":3,"hour":0,"minute":0},{"load":217.9,"year":2020,"month":3,"day":4,"hour":0,"minute":0},{"load":258.81,"year":2020,"month":3,"day":5,"hour":0,"minute":0},{"load":289.17,"year":2020,"month":3,"day":6,"hour":0,"minute":0},{"load":286.9,"year":2020,"month":3,"day":7,"hour":0,"minute":0},{"load":206.26,"year":2020,"month":3,"day":8,"hour":0,"minute":0},{"load":201.78,"year":2020,"month":3,"day":9,"hour":0,"minute":0},{"load":200.18,"year":2020,"month":3,"day":10,"hour":0,"minute":0},{"load":202.96,"year":2020,"month":3,"day":11,"hour":0,"minute":0},{"load":286.27,"year":2020,"month":3,"day":12,"hour":0,"minute":0},{"load":238.18,"year":2020,"month":3,"day":13,"hour":0,"minute":0},{"load":274.11,"year":2020,"month":3,"day":14,"hour":0,"minute":0},{"load":276.18,"year":2020,"month":3,"day":15,"hour":0,"minute":0},{"load":223.14,"year":2020,"month":3,"day":16,"hour":0,"minute":0},{"load":299.63,"year":2020,"month":3,"day":17,"hour":0,"minute":0},{"load":276.89,"year":2020,"month":3,"day":18,"hour":0,"minute":0},{"load":288.3,"year":2020,"month":3,"day":19,"hour":0,"minute":0},{"load":224.24,"year":2020,"month":3,"day":20,"hour":0,"minute":0},{"load":296.3,"year":2020,"month":3,"day":21,"hour":0,"minute":0},{"load":273.51,"year":2020,"month":3,"day":22,"hour":0,"minute":0},{"load":204.61,"year":2020,"month":3,"day":23,"hour":0,"minute":0},{"load":203.61,"year":2020,"month":3,"day":24,"hour":0,"minute":0},{"load":230.36,"year":2020,"month":3,"day":25,"hour":0,"minute":0},{"load":218.49,"year":2020,"month":3,"day":26,"hour":0,"minute":0},{"load":280.85,"year":2020,"month":3,"day":27,"hour":0,"minute":0},{"load":223.82,"year":2020,"month":3,"day":28,"hour":0,"minute":0},{"load":252.06,"year":2020,"month":3,"day":29,"hour":0,"minute":0},{"load":291.88,"year":2020,"month":3,"day":30,"hour":0,"minute":0},{"load":207.27,"year":2020,"month":3,"day":31,"hour":0,"minute":0},{"load":249.33,"year":2020,"month":4,"day":1,"hour":0,"minute":0},{"load":220.06,"year":2020,"month":4,"day":2,"hour":0,"minute":0},{"load":249.28,"year":2020,"month":4,"day":3,"hour":0,"minute":0},{"load":287.94,"year":2020,"month":4,"day":4,"hour":0,"minute":0},{"load":237.88,"year":2020,"month":4,"day":5,"hour":0,"minute":0},{"load":287.62,"year":2020,"month":4,"day":6,"hour":0,"minute":0},{"load":299.19,"year":2020,"month":4,"day":7,"hour":0,"minute":0},{"load":254.24,"year":2020,"month":4,"day":8,"hour":0,"minute":0},{"load":272.49,"year":2020,"month":4,"day":9,"hour":0,"minute":0},{"load":232.14,"year":2020,"month":4,"day":10,"hour":0,"minute":0},{"load":284.61,"year":2020,"month":4,"day":11,"hour":0,"minute":0},{"load":258.03,"year":2020,"month":4,"day":12,"hour":0,"minute":0},{"load":234.38,"year":2020,"month":4,"day":13,"hour":0,"minute":0},{"load":295.21,"year":2020,"month":4,"day":14,"hour":0,"minute":0},{"load":236.01,"year":2020,"month":4,"day":15,"hour":0,"minute":0},{"load":257.66,"year":2020,"month":4,"day":16,"hour":0,"minute":0},{"load":250.71,"year":2020,"month":4,"day":17,"hour":0,"minute":0},{"load":213.32,"year":2020,"month":4,"day":18,"hour":0,"minute":0},{"load":259.05,"year":2020,"month":4,"day":19,"hour":0,"minute":0},{"load":220.95,"year":2020,"month":4,"day":20,"hour":0,"minute":0},{"load":225.31,"year":2020,"month":4,"day":21,"hour":0,"minute":0},{"load":223.71,"year":2020,"month":4,"day":22,"hour":0,"minute":0},{"load":250.34,"year":2020,"month":4,"day":23,"hour":0,"minute":0},{"load":248.72,"year":2020,"month":4,"day":24,"hour":0,"minute":0},{"load":275.59,"year":2020,"month":4,"day":25,"hour":0,"minute":0},{"load":232.33,"year":2020,"month":4,"day":26,"hour":0,"minute":0},{"load":254.08,"year":2020,"month":4,"day":27,"hour":0,"minute":0},{"load":221.86,"year":2020,"month":4,"day":28,"hour":0,"minute":0},{"load":289.57,"year":2020,"month":4,"day":29,"hour":0,"minute":0},{"load":208.69,"year":2020,"month":4,"day":30,"hour":0,"minute":0},{"load":254.81,"year":2020,"month":5,"day":1,"hour":0,"minute":0},{"load":257.92,"year":2020,"month":5,"day":2,"hour":0,"minute":0},{"load":280.71,"year":2020,"month":5,"day":3,"hour":0,"minute":0},{"load":202.37,"year":2020,"month":5,"day":4,"hour":0,"minute":0},{"load":205.7,"year":2020,"month":5,"day":5,"hour":0,"minute":0},{"load":282.76,"year":2020,"month":5,"day":6,"hour":0,"minute":0},{"load":206.52,"year":2020,"month":5,"day":7,"hour":0,"minute":0},{"load":218.92,"year":2020,"month":5,"day":8,"hour":0,"minute":0},{"load":226.36,"year":2020,"month":5,"day":9,"hour":0,"minute":0},{"load":215.4,"year":2020,"month":5,"day":10,"hour":0,"minute":0},{"load":250.81,"year":2020,"month":5,"day":11,"hour":0,"minute":0},{"load":217.54,"year":2020,"month":5,"day":12,"hour":0,"minute":0},{"load":204.09,"year":2020,"month":5,"day":13,"hour":0,"minute":0},{"load":211.4,"year":2020,"month":5,"day":14,"hour":0,"minute":0},{"load":283.43,"year":2020,"month":5,"day":15,"hour":0,"minute":0},{"load":203.69,"year":2020,"month":5,"day":16,"hour":0,"minute":0},{"load":216.3,"year":2020,"month":5,"day":17,"hour":0,"minute":0},{"load":275.13,"year":2020,"month":5,"day":18,"hour":0,"minute":0},{"load":224.24,"year":2020,"month":5,"day":19,"hour":0,"minute":0},{"load":211.48,"year":2020,"month":5,"day":20,"hour":0,"minute":0},{"load":238.59,"year":2020,"month":5,"day":21,"hour":0,"minute":0},{"load":253.97,"year":2020,"month":5,"day":22,"hour":0,"minute":0},{"load":294.1,"year":2020,"month":5,"day":23,"hour":0,"minute":0},{"load":229.54,"year":2020,"month":5,"day":24,"hour":0,"minute":0},{"load":290.48,"year":2020,"month":5,"day":25,"hour":0,"minute":0},{"load":227.17,"year":2020,"month":5,"day":26,"hour":0,"minute":0},{"load":273.5,"year":2020,"month":5,"day":27,"hour":0,"minute":0},{"load":246.74,"year":2020,"month":5,"day":28,"hour":0,"minute":0},{"load":292.37,"year":2020,"month":5,"day":29,"hour":0,"minute":0},{"load":223.45,"year":2020,"month":5,"day":30,"hour":0,"minute":0},{"load":292.97,"year":2020,"month":5,"day":31,"hour":0,"minute":0},{"load":238.23,"year":2020,"month":6,"day":1,"hour":0,"minute":0},{"load":206.24,"year":2020,"month":6,"day":2,"hour":0,"minute":0},{"load":253.29,"year":2020,"month":6,"day":3,"hour":0,"minute":0},{"load":293.48,"year":2020,"month":6,"day":4,"hour":0,"minute":0},{"load":234.42,"year":2020,"month":6,"day":5,"hour":0,"minute":0},{"load":202.9,"year":2020,"month":6,"day":6,"hour":0,"minute":0},{"load":258.29,"year":2020,"month":6,"day":7,"hour":0,"minute":0},{"load":284.04,"year":2020,"month":6,"day":8,"hour":0,"minute":0},{"load":252.25,"year":2020,"month":6,"day":9,"hour":0,"minute":0},{"load":297.81,"year":2020,"month":6,"day":10,"hour":0,"minute":0},{"load":208.7,"year":2020,"month":6,"day":11,"hour":0,"minute":0},{"load":201.99,"year":2020,"month":6,"day":12,"hour":0,"minute":0},{"load":277.3,"year":2020,"month":6,"day":13,"hour":0,"minute":0},{"load":243.84,"year":2020,"month":6,"day":14,"hour":0,"minute":0},{"load":250.95,"year":2020,"month":6,"day":15,"hour":0,"minute":0},{"load":275.6,"year":2020,"month":6,"day":16,"hour":0,"minute":0},{"load":292.57,"year":2020,"month":6,"day":17,"hour":0,"minute":0},{"load":203.66,"year":2020,"month":6,"day":18,"hour":0,"minute":0},{"load":225.43,"year":2020,"month":6,"day":19,"hour":0,"minute":0},{"load":231.72,"year":2020,"month":6,"day":20,"hour":0,"minute":0},{"load":242.33,"year":2020,"month":6,"day":21,"hour":0,"minute":0},{"load":247.47,"year":2020,"month":6,"day":22,"hour":0,"minute":0},{"load":229.35,"year":2020,"month":6,"day":23,"hour":0,"minute":0},{"load":231.66,"year":2020,"month":6,"day":24,"hour":0,"minute":0},{"load":244.6,"year":2020,"month":6,"day":25,"hour":0,"minute":0},{"load":253.68,"year":2020,"month":6,"day":26,"hour":0,"minute":0},{"load":251.6,"year":2020,"month":6,"day":27,"hour":0,"minute":0},{"load":282.54,"year":2020,"month":6,"day":28,"hour":0,"minute":0},{"load":259.97,"year":2020,"month":6,"day":29,"hour":0,"minute":0}],"com.grandlyon.egl.month":[{"load":7663.35,"year":2020,"month":3,"day":0,"hour":0,"minute":0},{"load":7535.78,"year":2020,"month":4,"day":0,"hour":0,"minute":0},{"load":7495.88,"year":2020,"month":5,"day":0,"hour":0,"minute":0},{"load":6937.68,"year":2020,"month":6,"day":1,"hour":0,"minute":0}],"com.grandlyon.egl.year":[{"load":29632.69,"year":2020,"month":1,"day":1,"hour":0,"minute":0}]} \ No newline at end of file diff --git a/test/data/dayData.json b/test/data/dayData.json index 9f2082015db2c64b09c79cfe0b1ac22be300844b..4d04550e79f9f3f13671c911904966c147bf5a36 100644 --- a/test/data/dayData.json +++ b/test/data/dayData.json @@ -1 +1 @@ -{"com.grandlyon.enedis.day":[{"load":5.25,"year":2020,"month":1,"day":1,"hour":0,"minute":0},{"load":3.76,"year":2020,"month":1,"day":2,"hour":0,"minute":0},{"load":8.03,"year":2020,"month":1,"day":3,"hour":0,"minute":0},{"load":5.32,"year":2020,"month":1,"day":4,"hour":0,"minute":0},{"load":8.72,"year":2020,"month":1,"day":5,"hour":0,"minute":0},{"load":8.17,"year":2020,"month":1,"day":6,"hour":0,"minute":0},{"load":6.08,"year":2020,"month":1,"day":7,"hour":0,"minute":0},{"load":4.06,"year":2020,"month":1,"day":8,"hour":0,"minute":0},{"load":4.82,"year":2020,"month":1,"day":9,"hour":0,"minute":0},{"load":7.5,"year":2020,"month":1,"day":10,"hour":0,"minute":0},{"load":6.21,"year":2020,"month":1,"day":11,"hour":0,"minute":0},{"load":4.63,"year":2020,"month":1,"day":12,"hour":0,"minute":0},{"load":4.32,"year":2020,"month":1,"day":13,"hour":0,"minute":0},{"load":8.79,"year":2020,"month":1,"day":14,"hour":0,"minute":0},{"load":7.88,"year":2020,"month":1,"day":15,"hour":0,"minute":0},{"load":4.1,"year":2020,"month":1,"day":16,"hour":0,"minute":0},{"load":5.09,"year":2020,"month":1,"day":17,"hour":0,"minute":0},{"load":8.58,"year":2020,"month":1,"day":18,"hour":0,"minute":0},{"load":9.97,"year":2020,"month":1,"day":19,"hour":0,"minute":0},{"load":6.68,"year":2020,"month":1,"day":20,"hour":0,"minute":0},{"load":9.13,"year":2020,"month":1,"day":21,"hour":0,"minute":0},{"load":4.77,"year":2020,"month":1,"day":22,"hour":0,"minute":0},{"load":3.6,"year":2020,"month":1,"day":23,"hour":0,"minute":0},{"load":8.33,"year":2020,"month":1,"day":24,"hour":0,"minute":0},{"load":3.42,"year":2020,"month":1,"day":25,"hour":0,"minute":0},{"load":8.46,"year":2020,"month":1,"day":26,"hour":0,"minute":0},{"load":5.85,"year":2020,"month":1,"day":27,"hour":0,"minute":0},{"load":3.01,"year":2020,"month":1,"day":28,"hour":0,"minute":0},{"load":8.06,"year":2020,"month":1,"day":29,"hour":0,"minute":0},{"load":6.39,"year":2020,"month":1,"day":30,"hour":0,"minute":0},{"load":6.9,"year":2020,"month":1,"day":31,"hour":0,"minute":0},{"load":3.9,"year":2020,"month":2,"day":1,"hour":0,"minute":0},{"load":8.07,"year":2020,"month":2,"day":2,"hour":0,"minute":0},{"load":9.85,"year":2020,"month":2,"day":3,"hour":0,"minute":0},{"load":7.23,"year":2020,"month":2,"day":4,"hour":0,"minute":0},{"load":6.05,"year":2020,"month":2,"day":5,"hour":0,"minute":0},{"load":8.02,"year":2020,"month":2,"day":6,"hour":0,"minute":0},{"load":8.45,"year":2020,"month":2,"day":7,"hour":0,"minute":0},{"load":7.01,"year":2020,"month":2,"day":8,"hour":0,"minute":0},{"load":6.36,"year":2020,"month":2,"day":9,"hour":0,"minute":0},{"load":3.07,"year":2020,"month":2,"day":10,"hour":0,"minute":0},{"load":4.03,"year":2020,"month":2,"day":11,"hour":0,"minute":0},{"load":7.2,"year":2020,"month":2,"day":12,"hour":0,"minute":0},{"load":3.66,"year":2020,"month":2,"day":13,"hour":0,"minute":0},{"load":8.3,"year":2020,"month":2,"day":14,"hour":0,"minute":0},{"load":5.93,"year":2020,"month":2,"day":15,"hour":0,"minute":0},{"load":9.08,"year":2020,"month":2,"day":16,"hour":0,"minute":0},{"load":5.32,"year":2020,"month":2,"day":17,"hour":0,"minute":0},{"load":4.72,"year":2020,"month":2,"day":18,"hour":0,"minute":0},{"load":6,"year":2020,"month":2,"day":19,"hour":0,"minute":0},{"load":7.73,"year":2020,"month":2,"day":20,"hour":0,"minute":0},{"load":3.59,"year":2020,"month":2,"day":21,"hour":0,"minute":0},{"load":7.75,"year":2020,"month":2,"day":22,"hour":0,"minute":0},{"load":5.37,"year":2020,"month":2,"day":23,"hour":0,"minute":0},{"load":8.33,"year":2020,"month":2,"day":24,"hour":0,"minute":0},{"load":9.02,"year":2020,"month":2,"day":25,"hour":0,"minute":0},{"load":5.19,"year":2020,"month":2,"day":26,"hour":0,"minute":0},{"load":6.75,"year":2020,"month":2,"day":27,"hour":0,"minute":0},{"load":5.49,"year":2020,"month":2,"day":28,"hour":0,"minute":0},{"load":8.13,"year":2020,"month":2,"day":29,"hour":0,"minute":0},{"load":7.68,"year":2020,"month":3,"day":1,"hour":0,"minute":0},{"load":5.47,"year":2020,"month":3,"day":2,"hour":0,"minute":0},{"load":4.37,"year":2020,"month":3,"day":3,"hour":0,"minute":0},{"load":8.85,"year":2020,"month":3,"day":4,"hour":0,"minute":0},{"load":9.68,"year":2020,"month":3,"day":5,"hour":0,"minute":0},{"load":8.61,"year":2020,"month":3,"day":6,"hour":0,"minute":0},{"load":6.27,"year":2020,"month":3,"day":7,"hour":0,"minute":0},{"load":8.06,"year":2020,"month":3,"day":8,"hour":0,"minute":0},{"load":9.96,"year":2020,"month":3,"day":9,"hour":0,"minute":0},{"load":9.91,"year":2020,"month":3,"day":10,"hour":0,"minute":0},{"load":5.55,"year":2020,"month":3,"day":11,"hour":0,"minute":0},{"load":6.27,"year":2020,"month":3,"day":12,"hour":0,"minute":0},{"load":9.86,"year":2020,"month":3,"day":13,"hour":0,"minute":0},{"load":8.55,"year":2020,"month":3,"day":14,"hour":0,"minute":0},{"load":3.36,"year":2020,"month":3,"day":15,"hour":0,"minute":0},{"load":7.22,"year":2020,"month":3,"day":16,"hour":0,"minute":0},{"load":7.82,"year":2020,"month":3,"day":17,"hour":0,"minute":0},{"load":5.28,"year":2020,"month":3,"day":18,"hour":0,"minute":0},{"load":5.82,"year":2020,"month":3,"day":19,"hour":0,"minute":0},{"load":4.65,"year":2020,"month":3,"day":20,"hour":0,"minute":0},{"load":5.52,"year":2020,"month":3,"day":21,"hour":0,"minute":0},{"load":6.94,"year":2020,"month":3,"day":22,"hour":0,"minute":0},{"load":4.58,"year":2020,"month":3,"day":23,"hour":0,"minute":0},{"load":6.12,"year":2020,"month":3,"day":24,"hour":0,"minute":0},{"load":6.24,"year":2020,"month":3,"day":25,"hour":0,"minute":0},{"load":5.14,"year":2020,"month":3,"day":26,"hour":0,"minute":0},{"load":7.43,"year":2020,"month":3,"day":27,"hour":0,"minute":0},{"load":8.71,"year":2020,"month":3,"day":28,"hour":0,"minute":0},{"load":4.07,"year":2020,"month":3,"day":29,"hour":0,"minute":0},{"load":6.7,"year":2020,"month":3,"day":30,"hour":0,"minute":0},{"load":5.08,"year":2020,"month":3,"day":31,"hour":0,"minute":0},{"load":4.72,"year":2020,"month":4,"day":1,"hour":0,"minute":0},{"load":3.11,"year":2020,"month":4,"day":2,"hour":0,"minute":0},{"load":9.82,"year":2020,"month":4,"day":3,"hour":0,"minute":0},{"load":8.12,"year":2020,"month":4,"day":4,"hour":0,"minute":0},{"load":3.04,"year":2020,"month":4,"day":5,"hour":0,"minute":0},{"load":6.59,"year":2020,"month":4,"day":6,"hour":0,"minute":0},{"load":4.94,"year":2020,"month":4,"day":7,"hour":0,"minute":0},{"load":5.26,"year":2020,"month":4,"day":8,"hour":0,"minute":0},{"load":4.45,"year":2020,"month":4,"day":9,"hour":0,"minute":0},{"load":8.01,"year":2020,"month":4,"day":10,"hour":0,"minute":0},{"load":8.93,"year":2020,"month":4,"day":11,"hour":0,"minute":0},{"load":7.82,"year":2020,"month":4,"day":12,"hour":0,"minute":0},{"load":4.13,"year":2020,"month":4,"day":13,"hour":0,"minute":0},{"load":6.43,"year":2020,"month":4,"day":14,"hour":0,"minute":0},{"load":5.82,"year":2020,"month":4,"day":15,"hour":0,"minute":0},{"load":5.44,"year":2020,"month":4,"day":16,"hour":0,"minute":0},{"load":9.53,"year":2020,"month":4,"day":17,"hour":0,"minute":0},{"load":7.29,"year":2020,"month":4,"day":18,"hour":0,"minute":0},{"load":3.61,"year":2020,"month":4,"day":19,"hour":0,"minute":0},{"load":3.04,"year":2020,"month":4,"day":20,"hour":0,"minute":0},{"load":7.83,"year":2020,"month":4,"day":21,"hour":0,"minute":0},{"load":3.21,"year":2020,"month":4,"day":22,"hour":0,"minute":0},{"load":3.76,"year":2020,"month":4,"day":23,"hour":0,"minute":0},{"load":9.21,"year":2020,"month":4,"day":24,"hour":0,"minute":0},{"load":5.85,"year":2020,"month":4,"day":25,"hour":0,"minute":0},{"load":7.79,"year":2020,"month":4,"day":26,"hour":0,"minute":0},{"load":6.8,"year":2020,"month":4,"day":27,"hour":0,"minute":0},{"load":3.89,"year":2020,"month":4,"day":28,"hour":0,"minute":0},{"load":7.34,"year":2020,"month":4,"day":29,"hour":0,"minute":0}],"com.grandlyon.enedis.month":[{"load":199.78,"year":2020,"month":1,"day":0,"hour":0,"minute":0},{"load":193.38,"year":2020,"month":2,"day":0,"hour":0,"minute":0},{"load":206.81,"year":2020,"month":3,"day":0,"hour":0,"minute":0},{"load":171.06,"year":2020,"month":4,"day":1,"hour":0,"minute":0}],"com.grandlyon.enedis.year":[{"load":771.03,"year":2020,"month":1,"day":1,"hour":0,"minute":0}],"com.grandlyon.grdf.day":[{"load":52.41,"year":2020,"month":1,"day":1,"hour":0,"minute":0},{"load":58.73,"year":2020,"month":1,"day":2,"hour":0,"minute":0},{"load":41.05,"year":2020,"month":1,"day":3,"hour":0,"minute":0},{"load":17.93,"year":2020,"month":1,"day":4,"hour":0,"minute":0},{"load":41.19,"year":2020,"month":1,"day":5,"hour":0,"minute":0},{"load":53.38,"year":2020,"month":1,"day":6,"hour":0,"minute":0},{"load":37.93,"year":2020,"month":1,"day":7,"hour":0,"minute":0},{"load":39.38,"year":2020,"month":1,"day":8,"hour":0,"minute":0},{"load":65.88,"year":2020,"month":1,"day":9,"hour":0,"minute":0},{"load":45.74,"year":2020,"month":1,"day":10,"hour":0,"minute":0},{"load":17.4,"year":2020,"month":1,"day":11,"hour":0,"minute":0},{"load":33.71,"year":2020,"month":1,"day":12,"hour":0,"minute":0},{"load":36.05,"year":2020,"month":1,"day":13,"hour":0,"minute":0},{"load":62.06,"year":2020,"month":1,"day":14,"hour":0,"minute":0},{"load":34.61,"year":2020,"month":1,"day":15,"hour":0,"minute":0},{"load":64.29,"year":2020,"month":1,"day":16,"hour":0,"minute":0},{"load":25.38,"year":2020,"month":1,"day":17,"hour":0,"minute":0},{"load":65.92,"year":2020,"month":1,"day":18,"hour":0,"minute":0},{"load":22.58,"year":2020,"month":1,"day":19,"hour":0,"minute":0},{"load":32.96,"year":2020,"month":1,"day":20,"hour":0,"minute":0},{"load":30.61,"year":2020,"month":1,"day":21,"hour":0,"minute":0},{"load":26.95,"year":2020,"month":1,"day":22,"hour":0,"minute":0},{"load":44.24,"year":2020,"month":1,"day":23,"hour":0,"minute":0},{"load":54.35,"year":2020,"month":1,"day":24,"hour":0,"minute":0},{"load":37.44,"year":2020,"month":1,"day":25,"hour":0,"minute":0},{"load":28.66,"year":2020,"month":1,"day":26,"hour":0,"minute":0},{"load":59.73,"year":2020,"month":1,"day":27,"hour":0,"minute":0},{"load":58.37,"year":2020,"month":1,"day":28,"hour":0,"minute":0},{"load":16.59,"year":2020,"month":1,"day":29,"hour":0,"minute":0},{"load":58.36,"year":2020,"month":1,"day":30,"hour":0,"minute":0},{"load":62.08,"year":2020,"month":1,"day":31,"hour":0,"minute":0},{"load":21.78,"year":2020,"month":2,"day":1,"hour":0,"minute":0},{"load":54.82,"year":2020,"month":2,"day":2,"hour":0,"minute":0},{"load":51.54,"year":2020,"month":2,"day":3,"hour":0,"minute":0},{"load":45.73,"year":2020,"month":2,"day":4,"hour":0,"minute":0},{"load":36.5,"year":2020,"month":2,"day":5,"hour":0,"minute":0},{"load":24.41,"year":2020,"month":2,"day":6,"hour":0,"minute":0},{"load":64.03,"year":2020,"month":2,"day":7,"hour":0,"minute":0},{"load":26.36,"year":2020,"month":2,"day":8,"hour":0,"minute":0},{"load":66.75,"year":2020,"month":2,"day":9,"hour":0,"minute":0},{"load":26.88,"year":2020,"month":2,"day":10,"hour":0,"minute":0},{"load":38.9,"year":2020,"month":2,"day":11,"hour":0,"minute":0},{"load":33.79,"year":2020,"month":2,"day":12,"hour":0,"minute":0},{"load":46.06,"year":2020,"month":2,"day":13,"hour":0,"minute":0},{"load":40.21,"year":2020,"month":2,"day":14,"hour":0,"minute":0},{"load":32.47,"year":2020,"month":2,"day":15,"hour":0,"minute":0},{"load":63.28,"year":2020,"month":2,"day":16,"hour":0,"minute":0},{"load":24.66,"year":2020,"month":2,"day":17,"hour":0,"minute":0},{"load":61.52,"year":2020,"month":2,"day":18,"hour":0,"minute":0},{"load":51.06,"year":2020,"month":2,"day":19,"hour":0,"minute":0},{"load":30.18,"year":2020,"month":2,"day":20,"hour":0,"minute":0},{"load":31.51,"year":2020,"month":2,"day":21,"hour":0,"minute":0},{"load":60.22,"year":2020,"month":2,"day":22,"hour":0,"minute":0},{"load":49.48,"year":2020,"month":2,"day":23,"hour":0,"minute":0},{"load":24.37,"year":2020,"month":2,"day":24,"hour":0,"minute":0},{"load":40.91,"year":2020,"month":2,"day":25,"hour":0,"minute":0},{"load":33.09,"year":2020,"month":2,"day":26,"hour":0,"minute":0},{"load":58.14,"year":2020,"month":2,"day":27,"hour":0,"minute":0},{"load":67.46,"year":2020,"month":2,"day":28,"hour":0,"minute":0},{"load":47.03,"year":2020,"month":2,"day":29,"hour":0,"minute":0},{"load":50.89,"year":2020,"month":3,"day":1,"hour":0,"minute":0},{"load":39.84,"year":2020,"month":3,"day":2,"hour":0,"minute":0},{"load":48.55,"year":2020,"month":3,"day":3,"hour":0,"minute":0},{"load":54.28,"year":2020,"month":3,"day":4,"hour":0,"minute":0},{"load":24.52,"year":2020,"month":3,"day":5,"hour":0,"minute":0},{"load":36.45,"year":2020,"month":3,"day":6,"hour":0,"minute":0},{"load":35.05,"year":2020,"month":3,"day":7,"hour":0,"minute":0},{"load":18.47,"year":2020,"month":3,"day":8,"hour":0,"minute":0},{"load":58.52,"year":2020,"month":3,"day":9,"hour":0,"minute":0},{"load":41.14,"year":2020,"month":3,"day":10,"hour":0,"minute":0},{"load":42.74,"year":2020,"month":3,"day":11,"hour":0,"minute":0},{"load":54.73,"year":2020,"month":3,"day":12,"hour":0,"minute":0},{"load":23.45,"year":2020,"month":3,"day":13,"hour":0,"minute":0},{"load":55.12,"year":2020,"month":3,"day":14,"hour":0,"minute":0},{"load":47.33,"year":2020,"month":3,"day":15,"hour":0,"minute":0},{"load":20.84,"year":2020,"month":3,"day":16,"hour":0,"minute":0},{"load":60.22,"year":2020,"month":3,"day":17,"hour":0,"minute":0},{"load":38.98,"year":2020,"month":3,"day":18,"hour":0,"minute":0},{"load":59.29,"year":2020,"month":3,"day":19,"hour":0,"minute":0},{"load":23.69,"year":2020,"month":3,"day":20,"hour":0,"minute":0},{"load":45.61,"year":2020,"month":3,"day":21,"hour":0,"minute":0},{"load":22.03,"year":2020,"month":3,"day":22,"hour":0,"minute":0},{"load":22.81,"year":2020,"month":3,"day":23,"hour":0,"minute":0},{"load":65.09,"year":2020,"month":3,"day":24,"hour":0,"minute":0},{"load":39.38,"year":2020,"month":3,"day":25,"hour":0,"minute":0},{"load":34.56,"year":2020,"month":3,"day":26,"hour":0,"minute":0},{"load":50.35,"year":2020,"month":3,"day":27,"hour":0,"minute":0},{"load":31.03,"year":2020,"month":3,"day":28,"hour":0,"minute":0},{"load":51.73,"year":2020,"month":3,"day":29,"hour":0,"minute":0},{"load":40.89,"year":2020,"month":3,"day":30,"hour":0,"minute":0},{"load":64.64,"year":2020,"month":3,"day":31,"hour":0,"minute":0},{"load":28.41,"year":2020,"month":4,"day":1,"hour":0,"minute":0},{"load":56.89,"year":2020,"month":4,"day":2,"hour":0,"minute":0},{"load":41.85,"year":2020,"month":4,"day":3,"hour":0,"minute":0},{"load":41.24,"year":2020,"month":4,"day":4,"hour":0,"minute":0},{"load":26.86,"year":2020,"month":4,"day":5,"hour":0,"minute":0},{"load":40.83,"year":2020,"month":4,"day":6,"hour":0,"minute":0},{"load":59.65,"year":2020,"month":4,"day":7,"hour":0,"minute":0},{"load":34.4,"year":2020,"month":4,"day":8,"hour":0,"minute":0},{"load":66.36,"year":2020,"month":4,"day":9,"hour":0,"minute":0},{"load":66.64,"year":2020,"month":4,"day":10,"hour":0,"minute":0},{"load":33.56,"year":2020,"month":4,"day":11,"hour":0,"minute":0},{"load":20.23,"year":2020,"month":4,"day":12,"hour":0,"minute":0},{"load":54.13,"year":2020,"month":4,"day":13,"hour":0,"minute":0},{"load":38.69,"year":2020,"month":4,"day":14,"hour":0,"minute":0},{"load":33.34,"year":2020,"month":4,"day":15,"hour":0,"minute":0},{"load":44.67,"year":2020,"month":4,"day":16,"hour":0,"minute":0},{"load":17.46,"year":2020,"month":4,"day":17,"hour":0,"minute":0},{"load":39.25,"year":2020,"month":4,"day":18,"hour":0,"minute":0},{"load":49.73,"year":2020,"month":4,"day":19,"hour":0,"minute":0},{"load":57.52,"year":2020,"month":4,"day":20,"hour":0,"minute":0},{"load":47.97,"year":2020,"month":4,"day":21,"hour":0,"minute":0},{"load":36.41,"year":2020,"month":4,"day":22,"hour":0,"minute":0},{"load":37.39,"year":2020,"month":4,"day":23,"hour":0,"minute":0},{"load":26.73,"year":2020,"month":4,"day":24,"hour":0,"minute":0},{"load":17.99,"year":2020,"month":4,"day":25,"hour":0,"minute":0},{"load":48.2,"year":2020,"month":4,"day":26,"hour":0,"minute":0},{"load":21.47,"year":2020,"month":4,"day":27,"hour":0,"minute":0},{"load":38.01,"year":2020,"month":4,"day":28,"hour":0,"minute":0},{"load":25.59,"year":2020,"month":4,"day":29,"hour":0,"minute":0}],"com.grandlyon.grdf.month":[{"load":1347.74,"year":2020,"month":1,"day":0,"hour":0,"minute":0},{"load":1282.25,"year":2020,"month":2,"day":0,"hour":0,"minute":0},{"load":1279.74,"year":2020,"month":3,"day":0,"hour":0,"minute":0},{"load":1123.06,"year":2020,"month":4,"day":1,"hour":0,"minute":0}],"com.grandlyon.grdf.year":[{"load":5032.79,"year":2020,"month":1,"day":1,"hour":0,"minute":0}],"com.grandlyon.egl.day":[{"load":299.91,"year":2020,"month":1,"day":1,"hour":0,"minute":0},{"load":296.56,"year":2020,"month":1,"day":2,"hour":0,"minute":0},{"load":240.03,"year":2020,"month":1,"day":3,"hour":0,"minute":0},{"load":236.24,"year":2020,"month":1,"day":4,"hour":0,"minute":0},{"load":291.67,"year":2020,"month":1,"day":5,"hour":0,"minute":0},{"load":210.55,"year":2020,"month":1,"day":6,"hour":0,"minute":0},{"load":203.23,"year":2020,"month":1,"day":7,"hour":0,"minute":0},{"load":281.99,"year":2020,"month":1,"day":8,"hour":0,"minute":0},{"load":250.63,"year":2020,"month":1,"day":9,"hour":0,"minute":0},{"load":259.45,"year":2020,"month":1,"day":10,"hour":0,"minute":0},{"load":238.95,"year":2020,"month":1,"day":11,"hour":0,"minute":0},{"load":236.73,"year":2020,"month":1,"day":12,"hour":0,"minute":0},{"load":280.6,"year":2020,"month":1,"day":13,"hour":0,"minute":0},{"load":205.89,"year":2020,"month":1,"day":14,"hour":0,"minute":0},{"load":254.44,"year":2020,"month":1,"day":15,"hour":0,"minute":0},{"load":292.74,"year":2020,"month":1,"day":16,"hour":0,"minute":0},{"load":296,"year":2020,"month":1,"day":17,"hour":0,"minute":0},{"load":288.7,"year":2020,"month":1,"day":18,"hour":0,"minute":0},{"load":223.4,"year":2020,"month":1,"day":19,"hour":0,"minute":0},{"load":211.4,"year":2020,"month":1,"day":20,"hour":0,"minute":0},{"load":271.46,"year":2020,"month":1,"day":21,"hour":0,"minute":0},{"load":211.2,"year":2020,"month":1,"day":22,"hour":0,"minute":0},{"load":235.32,"year":2020,"month":1,"day":23,"hour":0,"minute":0},{"load":232.02,"year":2020,"month":1,"day":24,"hour":0,"minute":0},{"load":259.27,"year":2020,"month":1,"day":25,"hour":0,"minute":0},{"load":243.77,"year":2020,"month":1,"day":26,"hour":0,"minute":0},{"load":256.47,"year":2020,"month":1,"day":27,"hour":0,"minute":0},{"load":228.03,"year":2020,"month":1,"day":28,"hour":0,"minute":0},{"load":267.64,"year":2020,"month":1,"day":29,"hour":0,"minute":0},{"load":259.33,"year":2020,"month":1,"day":30,"hour":0,"minute":0},{"load":276.25,"year":2020,"month":1,"day":31,"hour":0,"minute":0},{"load":210.73,"year":2020,"month":2,"day":1,"hour":0,"minute":0},{"load":287.85,"year":2020,"month":2,"day":2,"hour":0,"minute":0},{"load":210.99,"year":2020,"month":2,"day":3,"hour":0,"minute":0},{"load":208.92,"year":2020,"month":2,"day":4,"hour":0,"minute":0},{"load":295.65,"year":2020,"month":2,"day":5,"hour":0,"minute":0},{"load":296.67,"year":2020,"month":2,"day":6,"hour":0,"minute":0},{"load":264.52,"year":2020,"month":2,"day":7,"hour":0,"minute":0},{"load":299.73,"year":2020,"month":2,"day":8,"hour":0,"minute":0},{"load":258.76,"year":2020,"month":2,"day":9,"hour":0,"minute":0},{"load":275.98,"year":2020,"month":2,"day":10,"hour":0,"minute":0},{"load":239.97,"year":2020,"month":2,"day":11,"hour":0,"minute":0},{"load":205.36,"year":2020,"month":2,"day":12,"hour":0,"minute":0},{"load":207.2,"year":2020,"month":2,"day":13,"hour":0,"minute":0},{"load":291.79,"year":2020,"month":2,"day":14,"hour":0,"minute":0},{"load":222.06,"year":2020,"month":2,"day":15,"hour":0,"minute":0},{"load":288.42,"year":2020,"month":2,"day":16,"hour":0,"minute":0},{"load":231.57,"year":2020,"month":2,"day":17,"hour":0,"minute":0},{"load":234.53,"year":2020,"month":2,"day":18,"hour":0,"minute":0},{"load":233.43,"year":2020,"month":2,"day":19,"hour":0,"minute":0},{"load":267.26,"year":2020,"month":2,"day":20,"hour":0,"minute":0},{"load":299.93,"year":2020,"month":2,"day":21,"hour":0,"minute":0},{"load":297.36,"year":2020,"month":2,"day":22,"hour":0,"minute":0},{"load":241.96,"year":2020,"month":2,"day":23,"hour":0,"minute":0},{"load":220.85,"year":2020,"month":2,"day":24,"hour":0,"minute":0},{"load":278.39,"year":2020,"month":2,"day":25,"hour":0,"minute":0},{"load":260.37,"year":2020,"month":2,"day":26,"hour":0,"minute":0},{"load":267.83,"year":2020,"month":2,"day":27,"hour":0,"minute":0},{"load":281.76,"year":2020,"month":2,"day":28,"hour":0,"minute":0},{"load":247.64,"year":2020,"month":2,"day":29,"hour":0,"minute":0},{"load":271.26,"year":2020,"month":3,"day":1,"hour":0,"minute":0},{"load":219.47,"year":2020,"month":3,"day":2,"hour":0,"minute":0},{"load":202.65,"year":2020,"month":3,"day":3,"hour":0,"minute":0},{"load":280.34,"year":2020,"month":3,"day":4,"hour":0,"minute":0},{"load":280.48,"year":2020,"month":3,"day":5,"hour":0,"minute":0},{"load":294.57,"year":2020,"month":3,"day":6,"hour":0,"minute":0},{"load":230.79,"year":2020,"month":3,"day":7,"hour":0,"minute":0},{"load":295.34,"year":2020,"month":3,"day":8,"hour":0,"minute":0},{"load":283.26,"year":2020,"month":3,"day":9,"hour":0,"minute":0},{"load":283.79,"year":2020,"month":3,"day":10,"hour":0,"minute":0},{"load":251.3,"year":2020,"month":3,"day":11,"hour":0,"minute":0},{"load":297.2,"year":2020,"month":3,"day":12,"hour":0,"minute":0},{"load":226.87,"year":2020,"month":3,"day":13,"hour":0,"minute":0},{"load":214.02,"year":2020,"month":3,"day":14,"hour":0,"minute":0},{"load":269.95,"year":2020,"month":3,"day":15,"hour":0,"minute":0},{"load":235.28,"year":2020,"month":3,"day":16,"hour":0,"minute":0},{"load":251.1,"year":2020,"month":3,"day":17,"hour":0,"minute":0},{"load":296.24,"year":2020,"month":3,"day":18,"hour":0,"minute":0},{"load":296.49,"year":2020,"month":3,"day":19,"hour":0,"minute":0},{"load":252.83,"year":2020,"month":3,"day":20,"hour":0,"minute":0},{"load":283.27,"year":2020,"month":3,"day":21,"hour":0,"minute":0},{"load":216.5,"year":2020,"month":3,"day":22,"hour":0,"minute":0},{"load":213.42,"year":2020,"month":3,"day":23,"hour":0,"minute":0},{"load":224.05,"year":2020,"month":3,"day":24,"hour":0,"minute":0},{"load":214.4,"year":2020,"month":3,"day":25,"hour":0,"minute":0},{"load":239.42,"year":2020,"month":3,"day":26,"hour":0,"minute":0},{"load":252.32,"year":2020,"month":3,"day":27,"hour":0,"minute":0},{"load":222.37,"year":2020,"month":3,"day":28,"hour":0,"minute":0},{"load":222.35,"year":2020,"month":3,"day":29,"hour":0,"minute":0},{"load":261.47,"year":2020,"month":3,"day":30,"hour":0,"minute":0},{"load":220.18,"year":2020,"month":3,"day":31,"hour":0,"minute":0},{"load":258.52,"year":2020,"month":4,"day":1,"hour":0,"minute":0},{"load":257.72,"year":2020,"month":4,"day":2,"hour":0,"minute":0},{"load":230.25,"year":2020,"month":4,"day":3,"hour":0,"minute":0},{"load":229.2,"year":2020,"month":4,"day":4,"hour":0,"minute":0},{"load":294.61,"year":2020,"month":4,"day":5,"hour":0,"minute":0},{"load":211.77,"year":2020,"month":4,"day":6,"hour":0,"minute":0},{"load":281.43,"year":2020,"month":4,"day":7,"hour":0,"minute":0},{"load":226.14,"year":2020,"month":4,"day":8,"hour":0,"minute":0},{"load":233,"year":2020,"month":4,"day":9,"hour":0,"minute":0},{"load":260.06,"year":2020,"month":4,"day":10,"hour":0,"minute":0},{"load":266.91,"year":2020,"month":4,"day":11,"hour":0,"minute":0},{"load":285.71,"year":2020,"month":4,"day":12,"hour":0,"minute":0},{"load":245.52,"year":2020,"month":4,"day":13,"hour":0,"minute":0},{"load":225.5,"year":2020,"month":4,"day":14,"hour":0,"minute":0},{"load":213.33,"year":2020,"month":4,"day":15,"hour":0,"minute":0},{"load":294.27,"year":2020,"month":4,"day":16,"hour":0,"minute":0},{"load":260.93,"year":2020,"month":4,"day":17,"hour":0,"minute":0},{"load":269.84,"year":2020,"month":4,"day":18,"hour":0,"minute":0},{"load":269.08,"year":2020,"month":4,"day":19,"hour":0,"minute":0},{"load":254.89,"year":2020,"month":4,"day":20,"hour":0,"minute":0},{"load":221.99,"year":2020,"month":4,"day":21,"hour":0,"minute":0},{"load":237.89,"year":2020,"month":4,"day":22,"hour":0,"minute":0},{"load":205.67,"year":2020,"month":4,"day":23,"hour":0,"minute":0},{"load":238.43,"year":2020,"month":4,"day":24,"hour":0,"minute":0},{"load":263.61,"year":2020,"month":4,"day":25,"hour":0,"minute":0},{"load":200.89,"year":2020,"month":4,"day":26,"hour":0,"minute":0},{"load":296.27,"year":2020,"month":4,"day":27,"hour":0,"minute":0},{"load":210.59,"year":2020,"month":4,"day":28,"hour":0,"minute":0},{"load":251.88,"year":2020,"month":4,"day":29,"hour":0,"minute":0}],"com.grandlyon.egl.month":[{"load":8050.6,"year":2020,"month":1,"day":0,"hour":0,"minute":0},{"load":7488.01,"year":2020,"month":2,"day":0,"hour":0,"minute":0},{"load":7790.24,"year":2020,"month":3,"day":0,"hour":0,"minute":0},{"load":6937.38,"year":2020,"month":4,"day":1,"hour":0,"minute":0}],"com.grandlyon.egl.year":[{"load":30266.23,"year":2020,"month":1,"day":1,"hour":0,"minute":0}]} \ No newline at end of file +{"com.grandlyon.enedis.day":[{"load":8.68,"year":2020,"month":3,"day":2,"hour":0,"minute":0},{"load":9.16,"year":2020,"month":3,"day":3,"hour":0,"minute":0},{"load":9.5,"year":2020,"month":3,"day":4,"hour":0,"minute":0},{"load":8.15,"year":2020,"month":3,"day":5,"hour":0,"minute":0},{"load":4.59,"year":2020,"month":3,"day":6,"hour":0,"minute":0},{"load":3.54,"year":2020,"month":3,"day":7,"hour":0,"minute":0},{"load":9.21,"year":2020,"month":3,"day":8,"hour":0,"minute":0},{"load":7.08,"year":2020,"month":3,"day":9,"hour":0,"minute":0},{"load":4.4,"year":2020,"month":3,"day":10,"hour":0,"minute":0},{"load":5.22,"year":2020,"month":3,"day":11,"hour":0,"minute":0},{"load":3.41,"year":2020,"month":3,"day":12,"hour":0,"minute":0},{"load":3.41,"year":2020,"month":3,"day":13,"hour":0,"minute":0},{"load":3.33,"year":2020,"month":3,"day":14,"hour":0,"minute":0},{"load":6.61,"year":2020,"month":3,"day":15,"hour":0,"minute":0},{"load":7.97,"year":2020,"month":3,"day":16,"hour":0,"minute":0},{"load":9.36,"year":2020,"month":3,"day":17,"hour":0,"minute":0},{"load":6.45,"year":2020,"month":3,"day":18,"hour":0,"minute":0},{"load":9.29,"year":2020,"month":3,"day":19,"hour":0,"minute":0},{"load":5.51,"year":2020,"month":3,"day":20,"hour":0,"minute":0},{"load":7.63,"year":2020,"month":3,"day":21,"hour":0,"minute":0},{"load":4.14,"year":2020,"month":3,"day":22,"hour":0,"minute":0},{"load":7.2,"year":2020,"month":3,"day":23,"hour":0,"minute":0},{"load":7.1,"year":2020,"month":3,"day":24,"hour":0,"minute":0},{"load":9.56,"year":2020,"month":3,"day":25,"hour":0,"minute":0},{"load":7.74,"year":2020,"month":3,"day":26,"hour":0,"minute":0},{"load":9.03,"year":2020,"month":3,"day":27,"hour":0,"minute":0},{"load":7.2,"year":2020,"month":3,"day":28,"hour":0,"minute":0},{"load":4.65,"year":2020,"month":3,"day":29,"hour":0,"minute":0},{"load":7.98,"year":2020,"month":3,"day":30,"hour":0,"minute":0},{"load":3.01,"year":2020,"month":3,"day":31,"hour":0,"minute":0},{"load":4.67,"year":2020,"month":4,"day":1,"hour":0,"minute":0},{"load":5.53,"year":2020,"month":4,"day":2,"hour":0,"minute":0},{"load":8.43,"year":2020,"month":4,"day":3,"hour":0,"minute":0},{"load":9.08,"year":2020,"month":4,"day":4,"hour":0,"minute":0},{"load":9.18,"year":2020,"month":4,"day":5,"hour":0,"minute":0},{"load":3.15,"year":2020,"month":4,"day":6,"hour":0,"minute":0},{"load":3.26,"year":2020,"month":4,"day":7,"hour":0,"minute":0},{"load":7.97,"year":2020,"month":4,"day":8,"hour":0,"minute":0},{"load":7.09,"year":2020,"month":4,"day":9,"hour":0,"minute":0},{"load":7.34,"year":2020,"month":4,"day":10,"hour":0,"minute":0},{"load":6.55,"year":2020,"month":4,"day":11,"hour":0,"minute":0},{"load":8.89,"year":2020,"month":4,"day":12,"hour":0,"minute":0},{"load":8.5,"year":2020,"month":4,"day":13,"hour":0,"minute":0},{"load":3.09,"year":2020,"month":4,"day":14,"hour":0,"minute":0},{"load":9.6,"year":2020,"month":4,"day":15,"hour":0,"minute":0},{"load":8.07,"year":2020,"month":4,"day":16,"hour":0,"minute":0},{"load":7.47,"year":2020,"month":4,"day":17,"hour":0,"minute":0},{"load":3.4,"year":2020,"month":4,"day":18,"hour":0,"minute":0},{"load":5.24,"year":2020,"month":4,"day":19,"hour":0,"minute":0},{"load":3.06,"year":2020,"month":4,"day":20,"hour":0,"minute":0},{"load":7.16,"year":2020,"month":4,"day":21,"hour":0,"minute":0},{"load":5.07,"year":2020,"month":4,"day":22,"hour":0,"minute":0},{"load":5.82,"year":2020,"month":4,"day":23,"hour":0,"minute":0},{"load":5.75,"year":2020,"month":4,"day":24,"hour":0,"minute":0},{"load":5.52,"year":2020,"month":4,"day":25,"hour":0,"minute":0},{"load":6.62,"year":2020,"month":4,"day":26,"hour":0,"minute":0},{"load":4.27,"year":2020,"month":4,"day":27,"hour":0,"minute":0},{"load":8.87,"year":2020,"month":4,"day":28,"hour":0,"minute":0},{"load":7.04,"year":2020,"month":4,"day":29,"hour":0,"minute":0},{"load":8.21,"year":2020,"month":4,"day":30,"hour":0,"minute":0},{"load":3.85,"year":2020,"month":5,"day":1,"hour":0,"minute":0},{"load":8.96,"year":2020,"month":5,"day":2,"hour":0,"minute":0},{"load":9.83,"year":2020,"month":5,"day":3,"hour":0,"minute":0},{"load":3.36,"year":2020,"month":5,"day":4,"hour":0,"minute":0},{"load":8.83,"year":2020,"month":5,"day":5,"hour":0,"minute":0},{"load":4.05,"year":2020,"month":5,"day":6,"hour":0,"minute":0},{"load":8.95,"year":2020,"month":5,"day":7,"hour":0,"minute":0},{"load":7.85,"year":2020,"month":5,"day":8,"hour":0,"minute":0},{"load":9.96,"year":2020,"month":5,"day":9,"hour":0,"minute":0},{"load":5.44,"year":2020,"month":5,"day":10,"hour":0,"minute":0},{"load":9.65,"year":2020,"month":5,"day":11,"hour":0,"minute":0},{"load":5.54,"year":2020,"month":5,"day":12,"hour":0,"minute":0},{"load":3.05,"year":2020,"month":5,"day":13,"hour":0,"minute":0},{"load":9.62,"year":2020,"month":5,"day":14,"hour":0,"minute":0},{"load":4.28,"year":2020,"month":5,"day":15,"hour":0,"minute":0},{"load":3.11,"year":2020,"month":5,"day":16,"hour":0,"minute":0},{"load":7.45,"year":2020,"month":5,"day":17,"hour":0,"minute":0},{"load":5.36,"year":2020,"month":5,"day":18,"hour":0,"minute":0},{"load":9.64,"year":2020,"month":5,"day":19,"hour":0,"minute":0},{"load":4.5,"year":2020,"month":5,"day":20,"hour":0,"minute":0},{"load":5.11,"year":2020,"month":5,"day":21,"hour":0,"minute":0},{"load":7.72,"year":2020,"month":5,"day":22,"hour":0,"minute":0},{"load":9.19,"year":2020,"month":5,"day":23,"hour":0,"minute":0},{"load":8.19,"year":2020,"month":5,"day":24,"hour":0,"minute":0},{"load":4.41,"year":2020,"month":5,"day":25,"hour":0,"minute":0},{"load":7.95,"year":2020,"month":5,"day":26,"hour":0,"minute":0},{"load":8.4,"year":2020,"month":5,"day":27,"hour":0,"minute":0},{"load":8.73,"year":2020,"month":5,"day":28,"hour":0,"minute":0},{"load":5.2,"year":2020,"month":5,"day":29,"hour":0,"minute":0},{"load":4.26,"year":2020,"month":5,"day":30,"hour":0,"minute":0},{"load":3.8,"year":2020,"month":5,"day":31,"hour":0,"minute":0},{"load":6.69,"year":2020,"month":6,"day":1,"hour":0,"minute":0},{"load":7.28,"year":2020,"month":6,"day":2,"hour":0,"minute":0},{"load":8.83,"year":2020,"month":6,"day":3,"hour":0,"minute":0},{"load":6.49,"year":2020,"month":6,"day":4,"hour":0,"minute":0},{"load":6.84,"year":2020,"month":6,"day":5,"hour":0,"minute":0},{"load":9.76,"year":2020,"month":6,"day":6,"hour":0,"minute":0},{"load":3.12,"year":2020,"month":6,"day":7,"hour":0,"minute":0},{"load":8.7,"year":2020,"month":6,"day":8,"hour":0,"minute":0},{"load":7.81,"year":2020,"month":6,"day":9,"hour":0,"minute":0},{"load":5.05,"year":2020,"month":6,"day":10,"hour":0,"minute":0},{"load":7.76,"year":2020,"month":6,"day":11,"hour":0,"minute":0},{"load":8.68,"year":2020,"month":6,"day":12,"hour":0,"minute":0},{"load":6.58,"year":2020,"month":6,"day":13,"hour":0,"minute":0},{"load":7.68,"year":2020,"month":6,"day":14,"hour":0,"minute":0},{"load":5.51,"year":2020,"month":6,"day":15,"hour":0,"minute":0},{"load":7.02,"year":2020,"month":6,"day":16,"hour":0,"minute":0},{"load":5.28,"year":2020,"month":6,"day":17,"hour":0,"minute":0},{"load":9.06,"year":2020,"month":6,"day":18,"hour":0,"minute":0},{"load":9.41,"year":2020,"month":6,"day":19,"hour":0,"minute":0},{"load":8.09,"year":2020,"month":6,"day":20,"hour":0,"minute":0},{"load":3.51,"year":2020,"month":6,"day":21,"hour":0,"minute":0},{"load":4.73,"year":2020,"month":6,"day":22,"hour":0,"minute":0},{"load":8.66,"year":2020,"month":6,"day":23,"hour":0,"minute":0},{"load":9.45,"year":2020,"month":6,"day":24,"hour":0,"minute":0},{"load":5.84,"year":2020,"month":6,"day":25,"hour":0,"minute":0},{"load":6.63,"year":2020,"month":6,"day":26,"hour":0,"minute":0},{"load":7.43,"year":2020,"month":6,"day":27,"hour":0,"minute":0},{"load":9.44,"year":2020,"month":6,"day":28,"hour":0,"minute":0},{"load":3.65,"year":2020,"month":6,"day":29,"hour":0,"minute":0}],"com.grandlyon.enedis.month":[{"load":204.78,"year":2020,"month":3,"day":0,"hour":0,"minute":0},{"load":193.08,"year":2020,"month":4,"day":0,"hour":0,"minute":0},{"load":209.08,"year":2020,"month":5,"day":0,"hour":0,"minute":0},{"load":198.29,"year":2020,"month":6,"day":1,"hour":0,"minute":0}],"com.grandlyon.enedis.year":[{"load":805.23,"year":2020,"month":1,"day":1,"hour":0,"minute":0}],"com.grandlyon.grdf.day":[{"load":54.26,"year":2020,"month":3,"day":2,"hour":0,"minute":0},{"load":23.68,"year":2020,"month":3,"day":3,"hour":0,"minute":0},{"load":37.71,"year":2020,"month":3,"day":4,"hour":0,"minute":0},{"load":49.7,"year":2020,"month":3,"day":5,"hour":0,"minute":0},{"load":17.21,"year":2020,"month":3,"day":6,"hour":0,"minute":0},{"load":65.57,"year":2020,"month":3,"day":7,"hour":0,"minute":0},{"load":18.23,"year":2020,"month":3,"day":8,"hour":0,"minute":0},{"load":34.33,"year":2020,"month":3,"day":9,"hour":0,"minute":0},{"load":28.06,"year":2020,"month":3,"day":10,"hour":0,"minute":0},{"load":57.34,"year":2020,"month":3,"day":11,"hour":0,"minute":0},{"load":30.97,"year":2020,"month":3,"day":12,"hour":0,"minute":0},{"load":58.28,"year":2020,"month":3,"day":13,"hour":0,"minute":0},{"load":49.57,"year":2020,"month":3,"day":14,"hour":0,"minute":0},{"load":66.56,"year":2020,"month":3,"day":15,"hour":0,"minute":0},{"load":22.51,"year":2020,"month":3,"day":16,"hour":0,"minute":0},{"load":62.52,"year":2020,"month":3,"day":17,"hour":0,"minute":0},{"load":17.31,"year":2020,"month":3,"day":18,"hour":0,"minute":0},{"load":16,"year":2020,"month":3,"day":19,"hour":0,"minute":0},{"load":39.09,"year":2020,"month":3,"day":20,"hour":0,"minute":0},{"load":28.44,"year":2020,"month":3,"day":21,"hour":0,"minute":0},{"load":44.14,"year":2020,"month":3,"day":22,"hour":0,"minute":0},{"load":59.75,"year":2020,"month":3,"day":23,"hour":0,"minute":0},{"load":30.8,"year":2020,"month":3,"day":24,"hour":0,"minute":0},{"load":29.87,"year":2020,"month":3,"day":25,"hour":0,"minute":0},{"load":42.77,"year":2020,"month":3,"day":26,"hour":0,"minute":0},{"load":61.1,"year":2020,"month":3,"day":27,"hour":0,"minute":0},{"load":20.67,"year":2020,"month":3,"day":28,"hour":0,"minute":0},{"load":53.12,"year":2020,"month":3,"day":29,"hour":0,"minute":0},{"load":31.16,"year":2020,"month":3,"day":30,"hour":0,"minute":0},{"load":36.92,"year":2020,"month":3,"day":31,"hour":0,"minute":0},{"load":25.89,"year":2020,"month":4,"day":1,"hour":0,"minute":0},{"load":35.35,"year":2020,"month":4,"day":2,"hour":0,"minute":0},{"load":60.23,"year":2020,"month":4,"day":3,"hour":0,"minute":0},{"load":20.91,"year":2020,"month":4,"day":4,"hour":0,"minute":0},{"load":45.95,"year":2020,"month":4,"day":5,"hour":0,"minute":0},{"load":59.7,"year":2020,"month":4,"day":6,"hour":0,"minute":0},{"load":64.69,"year":2020,"month":4,"day":7,"hour":0,"minute":0},{"load":67.26,"year":2020,"month":4,"day":8,"hour":0,"minute":0},{"load":63.95,"year":2020,"month":4,"day":9,"hour":0,"minute":0},{"load":47.16,"year":2020,"month":4,"day":10,"hour":0,"minute":0},{"load":67.37,"year":2020,"month":4,"day":11,"hour":0,"minute":0},{"load":64.67,"year":2020,"month":4,"day":12,"hour":0,"minute":0},{"load":34.26,"year":2020,"month":4,"day":13,"hour":0,"minute":0},{"load":43.72,"year":2020,"month":4,"day":14,"hour":0,"minute":0},{"load":16.33,"year":2020,"month":4,"day":15,"hour":0,"minute":0},{"load":39.6,"year":2020,"month":4,"day":16,"hour":0,"minute":0},{"load":31.53,"year":2020,"month":4,"day":17,"hour":0,"minute":0},{"load":41.88,"year":2020,"month":4,"day":18,"hour":0,"minute":0},{"load":25.59,"year":2020,"month":4,"day":19,"hour":0,"minute":0},{"load":16.86,"year":2020,"month":4,"day":20,"hour":0,"minute":0},{"load":21.62,"year":2020,"month":4,"day":21,"hour":0,"minute":0},{"load":26.31,"year":2020,"month":4,"day":22,"hour":0,"minute":0},{"load":50.56,"year":2020,"month":4,"day":23,"hour":0,"minute":0},{"load":35.57,"year":2020,"month":4,"day":24,"hour":0,"minute":0},{"load":60.46,"year":2020,"month":4,"day":25,"hour":0,"minute":0},{"load":45.19,"year":2020,"month":4,"day":26,"hour":0,"minute":0},{"load":45.61,"year":2020,"month":4,"day":27,"hour":0,"minute":0},{"load":18.76,"year":2020,"month":4,"day":28,"hour":0,"minute":0},{"load":55.74,"year":2020,"month":4,"day":29,"hour":0,"minute":0},{"load":18.01,"year":2020,"month":4,"day":30,"hour":0,"minute":0},{"load":62.47,"year":2020,"month":5,"day":1,"hour":0,"minute":0},{"load":46.36,"year":2020,"month":5,"day":2,"hour":0,"minute":0},{"load":30.68,"year":2020,"month":5,"day":3,"hour":0,"minute":0},{"load":34.05,"year":2020,"month":5,"day":4,"hour":0,"minute":0},{"load":65.52,"year":2020,"month":5,"day":5,"hour":0,"minute":0},{"load":41.96,"year":2020,"month":5,"day":6,"hour":0,"minute":0},{"load":17.5,"year":2020,"month":5,"day":7,"hour":0,"minute":0},{"load":39.3,"year":2020,"month":5,"day":8,"hour":0,"minute":0},{"load":31.36,"year":2020,"month":5,"day":9,"hour":0,"minute":0},{"load":39.88,"year":2020,"month":5,"day":10,"hour":0,"minute":0},{"load":59.32,"year":2020,"month":5,"day":11,"hour":0,"minute":0},{"load":30.2,"year":2020,"month":5,"day":12,"hour":0,"minute":0},{"load":25.99,"year":2020,"month":5,"day":13,"hour":0,"minute":0},{"load":30.02,"year":2020,"month":5,"day":14,"hour":0,"minute":0},{"load":61.32,"year":2020,"month":5,"day":15,"hour":0,"minute":0},{"load":30.49,"year":2020,"month":5,"day":16,"hour":0,"minute":0},{"load":62.52,"year":2020,"month":5,"day":17,"hour":0,"minute":0},{"load":54.46,"year":2020,"month":5,"day":18,"hour":0,"minute":0},{"load":34.97,"year":2020,"month":5,"day":19,"hour":0,"minute":0},{"load":65.65,"year":2020,"month":5,"day":20,"hour":0,"minute":0},{"load":47.9,"year":2020,"month":5,"day":21,"hour":0,"minute":0},{"load":31.9,"year":2020,"month":5,"day":22,"hour":0,"minute":0},{"load":32.14,"year":2020,"month":5,"day":23,"hour":0,"minute":0},{"load":60.88,"year":2020,"month":5,"day":24,"hour":0,"minute":0},{"load":62.44,"year":2020,"month":5,"day":25,"hour":0,"minute":0},{"load":40.6,"year":2020,"month":5,"day":26,"hour":0,"minute":0},{"load":22.11,"year":2020,"month":5,"day":27,"hour":0,"minute":0},{"load":31.99,"year":2020,"month":5,"day":28,"hour":0,"minute":0},{"load":64.52,"year":2020,"month":5,"day":29,"hour":0,"minute":0},{"load":41.9,"year":2020,"month":5,"day":30,"hour":0,"minute":0},{"load":39.57,"year":2020,"month":5,"day":31,"hour":0,"minute":0},{"load":17.65,"year":2020,"month":6,"day":1,"hour":0,"minute":0},{"load":37.92,"year":2020,"month":6,"day":2,"hour":0,"minute":0},{"load":21.91,"year":2020,"month":6,"day":3,"hour":0,"minute":0},{"load":39.04,"year":2020,"month":6,"day":4,"hour":0,"minute":0},{"load":25.55,"year":2020,"month":6,"day":5,"hour":0,"minute":0},{"load":22.35,"year":2020,"month":6,"day":6,"hour":0,"minute":0},{"load":36.99,"year":2020,"month":6,"day":7,"hour":0,"minute":0},{"load":38.82,"year":2020,"month":6,"day":8,"hour":0,"minute":0},{"load":18.47,"year":2020,"month":6,"day":9,"hour":0,"minute":0},{"load":51.11,"year":2020,"month":6,"day":10,"hour":0,"minute":0},{"load":23.93,"year":2020,"month":6,"day":11,"hour":0,"minute":0},{"load":63.05,"year":2020,"month":6,"day":12,"hour":0,"minute":0},{"load":42.87,"year":2020,"month":6,"day":13,"hour":0,"minute":0},{"load":64.65,"year":2020,"month":6,"day":14,"hour":0,"minute":0},{"load":22.86,"year":2020,"month":6,"day":15,"hour":0,"minute":0},{"load":56.89,"year":2020,"month":6,"day":16,"hour":0,"minute":0},{"load":35.68,"year":2020,"month":6,"day":17,"hour":0,"minute":0},{"load":23.83,"year":2020,"month":6,"day":18,"hour":0,"minute":0},{"load":22.83,"year":2020,"month":6,"day":19,"hour":0,"minute":0},{"load":27.9,"year":2020,"month":6,"day":20,"hour":0,"minute":0},{"load":21.87,"year":2020,"month":6,"day":21,"hour":0,"minute":0},{"load":19.93,"year":2020,"month":6,"day":22,"hour":0,"minute":0},{"load":32.48,"year":2020,"month":6,"day":23,"hour":0,"minute":0},{"load":66.18,"year":2020,"month":6,"day":24,"hour":0,"minute":0},{"load":21.37,"year":2020,"month":6,"day":25,"hour":0,"minute":0},{"load":62.57,"year":2020,"month":6,"day":26,"hour":0,"minute":0},{"load":56.02,"year":2020,"month":6,"day":27,"hour":0,"minute":0},{"load":60.83,"year":2020,"month":6,"day":28,"hour":0,"minute":0},{"load":47.79,"year":2020,"month":6,"day":29,"hour":0,"minute":0}],"com.grandlyon.grdf.month":[{"load":1213.53,"year":2020,"month":3,"day":0,"hour":0,"minute":0},{"load":1287.31,"year":2020,"month":4,"day":0,"hour":0,"minute":0},{"load":1295.15,"year":2020,"month":5,"day":0,"hour":0,"minute":0},{"load":1065.69,"year":2020,"month":6,"day":1,"hour":0,"minute":0}],"com.grandlyon.grdf.year":[{"load":4861.68,"year":2020,"month":1,"day":1,"hour":0,"minute":0}],"com.grandlyon.egl.day":[{"load":247.65,"year":2020,"month":3,"day":2,"hour":0,"minute":0},{"load":232.71,"year":2020,"month":3,"day":3,"hour":0,"minute":0},{"load":217.9,"year":2020,"month":3,"day":4,"hour":0,"minute":0},{"load":258.81,"year":2020,"month":3,"day":5,"hour":0,"minute":0},{"load":289.17,"year":2020,"month":3,"day":6,"hour":0,"minute":0},{"load":286.9,"year":2020,"month":3,"day":7,"hour":0,"minute":0},{"load":206.26,"year":2020,"month":3,"day":8,"hour":0,"minute":0},{"load":201.78,"year":2020,"month":3,"day":9,"hour":0,"minute":0},{"load":200.18,"year":2020,"month":3,"day":10,"hour":0,"minute":0},{"load":202.96,"year":2020,"month":3,"day":11,"hour":0,"minute":0},{"load":286.27,"year":2020,"month":3,"day":12,"hour":0,"minute":0},{"load":238.18,"year":2020,"month":3,"day":13,"hour":0,"minute":0},{"load":274.11,"year":2020,"month":3,"day":14,"hour":0,"minute":0},{"load":276.18,"year":2020,"month":3,"day":15,"hour":0,"minute":0},{"load":223.14,"year":2020,"month":3,"day":16,"hour":0,"minute":0},{"load":299.63,"year":2020,"month":3,"day":17,"hour":0,"minute":0},{"load":276.89,"year":2020,"month":3,"day":18,"hour":0,"minute":0},{"load":288.3,"year":2020,"month":3,"day":19,"hour":0,"minute":0},{"load":224.24,"year":2020,"month":3,"day":20,"hour":0,"minute":0},{"load":296.3,"year":2020,"month":3,"day":21,"hour":0,"minute":0},{"load":273.51,"year":2020,"month":3,"day":22,"hour":0,"minute":0},{"load":204.61,"year":2020,"month":3,"day":23,"hour":0,"minute":0},{"load":203.61,"year":2020,"month":3,"day":24,"hour":0,"minute":0},{"load":230.36,"year":2020,"month":3,"day":25,"hour":0,"minute":0},{"load":218.49,"year":2020,"month":3,"day":26,"hour":0,"minute":0},{"load":280.85,"year":2020,"month":3,"day":27,"hour":0,"minute":0},{"load":223.82,"year":2020,"month":3,"day":28,"hour":0,"minute":0},{"load":252.06,"year":2020,"month":3,"day":29,"hour":0,"minute":0},{"load":291.88,"year":2020,"month":3,"day":30,"hour":0,"minute":0},{"load":207.27,"year":2020,"month":3,"day":31,"hour":0,"minute":0},{"load":249.33,"year":2020,"month":4,"day":1,"hour":0,"minute":0},{"load":220.06,"year":2020,"month":4,"day":2,"hour":0,"minute":0},{"load":249.28,"year":2020,"month":4,"day":3,"hour":0,"minute":0},{"load":287.94,"year":2020,"month":4,"day":4,"hour":0,"minute":0},{"load":237.88,"year":2020,"month":4,"day":5,"hour":0,"minute":0},{"load":287.62,"year":2020,"month":4,"day":6,"hour":0,"minute":0},{"load":299.19,"year":2020,"month":4,"day":7,"hour":0,"minute":0},{"load":254.24,"year":2020,"month":4,"day":8,"hour":0,"minute":0},{"load":272.49,"year":2020,"month":4,"day":9,"hour":0,"minute":0},{"load":232.14,"year":2020,"month":4,"day":10,"hour":0,"minute":0},{"load":284.61,"year":2020,"month":4,"day":11,"hour":0,"minute":0},{"load":258.03,"year":2020,"month":4,"day":12,"hour":0,"minute":0},{"load":234.38,"year":2020,"month":4,"day":13,"hour":0,"minute":0},{"load":295.21,"year":2020,"month":4,"day":14,"hour":0,"minute":0},{"load":236.01,"year":2020,"month":4,"day":15,"hour":0,"minute":0},{"load":257.66,"year":2020,"month":4,"day":16,"hour":0,"minute":0},{"load":250.71,"year":2020,"month":4,"day":17,"hour":0,"minute":0},{"load":213.32,"year":2020,"month":4,"day":18,"hour":0,"minute":0},{"load":259.05,"year":2020,"month":4,"day":19,"hour":0,"minute":0},{"load":220.95,"year":2020,"month":4,"day":20,"hour":0,"minute":0},{"load":225.31,"year":2020,"month":4,"day":21,"hour":0,"minute":0},{"load":223.71,"year":2020,"month":4,"day":22,"hour":0,"minute":0},{"load":250.34,"year":2020,"month":4,"day":23,"hour":0,"minute":0},{"load":248.72,"year":2020,"month":4,"day":24,"hour":0,"minute":0},{"load":275.59,"year":2020,"month":4,"day":25,"hour":0,"minute":0},{"load":232.33,"year":2020,"month":4,"day":26,"hour":0,"minute":0},{"load":254.08,"year":2020,"month":4,"day":27,"hour":0,"minute":0},{"load":221.86,"year":2020,"month":4,"day":28,"hour":0,"minute":0},{"load":289.57,"year":2020,"month":4,"day":29,"hour":0,"minute":0},{"load":208.69,"year":2020,"month":4,"day":30,"hour":0,"minute":0},{"load":254.81,"year":2020,"month":5,"day":1,"hour":0,"minute":0},{"load":257.92,"year":2020,"month":5,"day":2,"hour":0,"minute":0},{"load":280.71,"year":2020,"month":5,"day":3,"hour":0,"minute":0},{"load":202.37,"year":2020,"month":5,"day":4,"hour":0,"minute":0},{"load":205.7,"year":2020,"month":5,"day":5,"hour":0,"minute":0},{"load":282.76,"year":2020,"month":5,"day":6,"hour":0,"minute":0},{"load":206.52,"year":2020,"month":5,"day":7,"hour":0,"minute":0},{"load":218.92,"year":2020,"month":5,"day":8,"hour":0,"minute":0},{"load":226.36,"year":2020,"month":5,"day":9,"hour":0,"minute":0},{"load":215.4,"year":2020,"month":5,"day":10,"hour":0,"minute":0},{"load":250.81,"year":2020,"month":5,"day":11,"hour":0,"minute":0},{"load":217.54,"year":2020,"month":5,"day":12,"hour":0,"minute":0},{"load":204.09,"year":2020,"month":5,"day":13,"hour":0,"minute":0},{"load":211.4,"year":2020,"month":5,"day":14,"hour":0,"minute":0},{"load":283.43,"year":2020,"month":5,"day":15,"hour":0,"minute":0},{"load":203.69,"year":2020,"month":5,"day":16,"hour":0,"minute":0},{"load":216.3,"year":2020,"month":5,"day":17,"hour":0,"minute":0},{"load":275.13,"year":2020,"month":5,"day":18,"hour":0,"minute":0},{"load":224.24,"year":2020,"month":5,"day":19,"hour":0,"minute":0},{"load":211.48,"year":2020,"month":5,"day":20,"hour":0,"minute":0},{"load":238.59,"year":2020,"month":5,"day":21,"hour":0,"minute":0},{"load":253.97,"year":2020,"month":5,"day":22,"hour":0,"minute":0},{"load":294.1,"year":2020,"month":5,"day":23,"hour":0,"minute":0},{"load":229.54,"year":2020,"month":5,"day":24,"hour":0,"minute":0},{"load":290.48,"year":2020,"month":5,"day":25,"hour":0,"minute":0},{"load":227.17,"year":2020,"month":5,"day":26,"hour":0,"minute":0},{"load":273.5,"year":2020,"month":5,"day":27,"hour":0,"minute":0},{"load":246.74,"year":2020,"month":5,"day":28,"hour":0,"minute":0},{"load":292.37,"year":2020,"month":5,"day":29,"hour":0,"minute":0},{"load":223.45,"year":2020,"month":5,"day":30,"hour":0,"minute":0},{"load":292.97,"year":2020,"month":5,"day":31,"hour":0,"minute":0},{"load":238.23,"year":2020,"month":6,"day":1,"hour":0,"minute":0},{"load":206.24,"year":2020,"month":6,"day":2,"hour":0,"minute":0},{"load":253.29,"year":2020,"month":6,"day":3,"hour":0,"minute":0},{"load":293.48,"year":2020,"month":6,"day":4,"hour":0,"minute":0},{"load":234.42,"year":2020,"month":6,"day":5,"hour":0,"minute":0},{"load":202.9,"year":2020,"month":6,"day":6,"hour":0,"minute":0},{"load":258.29,"year":2020,"month":6,"day":7,"hour":0,"minute":0},{"load":284.04,"year":2020,"month":6,"day":8,"hour":0,"minute":0},{"load":252.25,"year":2020,"month":6,"day":9,"hour":0,"minute":0},{"load":297.81,"year":2020,"month":6,"day":10,"hour":0,"minute":0},{"load":208.7,"year":2020,"month":6,"day":11,"hour":0,"minute":0},{"load":201.99,"year":2020,"month":6,"day":12,"hour":0,"minute":0},{"load":277.3,"year":2020,"month":6,"day":13,"hour":0,"minute":0},{"load":243.84,"year":2020,"month":6,"day":14,"hour":0,"minute":0},{"load":250.95,"year":2020,"month":6,"day":15,"hour":0,"minute":0},{"load":275.6,"year":2020,"month":6,"day":16,"hour":0,"minute":0},{"load":292.57,"year":2020,"month":6,"day":17,"hour":0,"minute":0},{"load":203.66,"year":2020,"month":6,"day":18,"hour":0,"minute":0},{"load":225.43,"year":2020,"month":6,"day":19,"hour":0,"minute":0},{"load":231.72,"year":2020,"month":6,"day":20,"hour":0,"minute":0},{"load":242.33,"year":2020,"month":6,"day":21,"hour":0,"minute":0},{"load":247.47,"year":2020,"month":6,"day":22,"hour":0,"minute":0},{"load":229.35,"year":2020,"month":6,"day":23,"hour":0,"minute":0},{"load":231.66,"year":2020,"month":6,"day":24,"hour":0,"minute":0},{"load":244.6,"year":2020,"month":6,"day":25,"hour":0,"minute":0},{"load":253.68,"year":2020,"month":6,"day":26,"hour":0,"minute":0},{"load":251.6,"year":2020,"month":6,"day":27,"hour":0,"minute":0},{"load":282.54,"year":2020,"month":6,"day":28,"hour":0,"minute":0},{"load":259.97,"year":2020,"month":6,"day":29,"hour":0,"minute":0}],"com.grandlyon.egl.month":[{"load":7663.35,"year":2020,"month":3,"day":0,"hour":0,"minute":0},{"load":7535.78,"year":2020,"month":4,"day":0,"hour":0,"minute":0},{"load":7495.88,"year":2020,"month":5,"day":0,"hour":0,"minute":0},{"load":6937.68,"year":2020,"month":6,"day":1,"hour":0,"minute":0}],"com.grandlyon.egl.year":[{"load":29632.69,"year":2020,"month":1,"day":1,"hour":0,"minute":0}]} \ No newline at end of file diff --git a/test/services/ConsumptionDataManager.spec.ts b/test/services/ConsumptionDataManager.spec.ts index e965fb02636c701039dc0f6d3c4b60ff2b4a89bd..c73f138014c38cee3f17b960ae56962317d15d8e 100644 --- a/test/services/ConsumptionDataManager.spec.ts +++ b/test/services/ConsumptionDataManager.spec.ts @@ -1,13 +1,13 @@ 'use strict' -import ConsumptionDataManager from '../../src/services/consumptionDataManagerService' -import { DateTime } from 'luxon' +//import ConsumptionDataManager from '../../src/services/consumptionDataManagerService' +/*import { DateTime } from 'luxon' import { TimeStep } from '../../src/services/dataConsumptionContracts' // client needs to be mocked correctely to test the CDM const mockClient = { query: jest.fn(), get: jest.fn(), -} +}*/ //jest.mock('../../src/services/consumptionDataFormatterService') diff --git a/test/services/ConsumptionDataValidator.spec.ts b/test/services/ConsumptionDataValidator.spec.ts index 1b035df9f4c416f2d0b4afb7c81e5fb4117ab3b4..4dfbe0ed6ab955b2e72efbf5439a2a0b7bcae4b9 100644 --- a/test/services/ConsumptionDataValidator.spec.ts +++ b/test/services/ConsumptionDataValidator.spec.ts @@ -18,21 +18,20 @@ consumptionDataValidator.ValidateGetGraphData( fluidTypes, compareTimePeriod ) -*/ const yearTimeStep = TimeStep.MONTH - const sumReducer = (acc, dataLoad) => acc + dataLoad.value + const sumReducer = (acc, dataLoad) => acc + dataLoad.value*/ it('matching fluidTypes and TimeStep', () => { const timePeriod = { startDate: DateTime.local(2018, 1, 1), endDate: DateTime.local(2018, 1, 2), } - const compareTimePeriod = { + /*const compareTimePeriod = { startDate: DateTime.local(2018, 1, 2), endDate: DateTime.local(2018, 1, 3), - } + }*/ expect( consumptionDataValidator.ValidateGetGraphData( diff --git a/test/services/QueryRunner.spec.ts b/test/services/QueryRunner.spec.ts index fa7dc3c74e70d051e5ac5deb90e45400c15819d2..132c2849aa3c41784309a95ff9c8ffbe3ec0bc0e 100644 --- a/test/services/QueryRunner.spec.ts +++ b/test/services/QueryRunner.spec.ts @@ -1,13 +1,13 @@ 'use strict' -import QuerryRunner from '../../src/services/queryRunnerService' -import { DateTime } from 'luxon' +//import QuerryRunner from '../../src/services/queryRunnerService' +/*import { DateTime } from 'luxon' import { TimeStep } from '../../src/services/dataConsumptionContracts' // client needs to be mocked correctely to test the CDM const mockClient = { query: jest.fn(), get: jest.fn(), -} +}*/ describe('Querry Runner', () => { beforeEach(() => {