From e161872b841a54f73b3b1e57d8669cb6b0dc897d Mon Sep 17 00:00:00 2001
From: build-pipeline <build-token>
Date: Mon, 17 Apr 2023 09:34:06 +0000
Subject: [PATCH] publish: Merge branch 'fix-major-smells' into 'dev'

generated from commit 21f2a8ddab158e4cc0e6b3380e4f32651a5d84bc
---
 ...37bf.js => ecolyo.740f12bc0ccead1472ad.js} | 136 ++-
 ...2abc.js => ecolyo.6b6b7a737312b80a3d2d.js} | 162 ++--
 ...0cca.js => ecolyo.2d69c974d9f5967c346e.js} |  44 +-
 ...0fb1.js => ecolyo.9f5a83d8c8dc6246dc90.js} | 852 +++++++++++-------
 index.html                                    |   2 +-
 services/aggregatorUsageEvents/ecolyo.js      |  32 +-
 .../enedisHalfHourMonthlyAnalysis/ecolyo.js   |   1 -
 7 files changed, 720 insertions(+), 509 deletions(-)
 rename 3/{ecolyo.756f7b49c5e712ba37bf.js => ecolyo.740f12bc0ccead1472ad.js} (97%)
 rename 5/{ecolyo.32856d540af4f4ee2abc.js => ecolyo.6b6b7a737312b80a3d2d.js} (99%)
 rename 6/{ecolyo.68590aa155e034150cca.js => ecolyo.2d69c974d9f5967c346e.js} (97%)
 rename app/{ecolyo.8a385260ba5108570fb1.js => ecolyo.9f5a83d8c8dc6246dc90.js} (99%)

diff --git a/3/ecolyo.756f7b49c5e712ba37bf.js b/3/ecolyo.740f12bc0ccead1472ad.js
similarity index 97%
rename from 3/ecolyo.756f7b49c5e712ba37bf.js
rename to 3/ecolyo.740f12bc0ccead1472ad.js
index 69e9f620a..9fc653f07 100644
--- a/3/ecolyo.756f7b49c5e712ba37bf.js
+++ b/3/ecolyo.740f12bc0ccead1472ad.js
@@ -1119,18 +1119,19 @@ var AnalysisView = function AnalysisView() {
       search = _useLocation.search;
 
   var query = new URLSearchParams(search);
-  var paramToken = query.get('token'); // Scroll handling
-
+  var paramToken = query.get('token');
   var app = document.querySelector('.app-content');
 
   var _useState5 = (0, _react.useState)(0),
       _useState6 = (0, _slicedToArray2.default)(_useState5, 2),
       scrollPosition = _useState6[0],
       setScrollPosition = _useState6[1];
+  /** Scroll handling for switching months and staying on the same scroll position */
+
 
   var saveLastScrollPosition = (0, _react.useCallback)(function () {
     if (app) {
-      var position = app.scrollTop > window.pageYOffset ? app.scrollTop : window.pageYOffset;
+      var position = Math.max(app.scrollTop, window.scrollY);
       setScrollPosition(position);
     }
   }, [app]);
@@ -1597,10 +1598,10 @@ var _fluidsPrices = _interopRequireDefault(__webpack_require__("VjcQ"));
 
 var _picto = __webpack_require__("6DBe");
 
-__webpack_require__("70Bo");
-
 var _ElecInfoModal = _interopRequireDefault(__webpack_require__("l5Ue"));
 
+__webpack_require__("70Bo");
+
 function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
 
 function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || typeof obj !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
@@ -1617,17 +1618,17 @@ var ElecHalfHourMonthlyAnalysis = function ElecHalfHourMonthlyAnalysis(_ref) {
   var _useState = (0, _react.useState)(true),
       _useState2 = (0, _slicedToArray2.default)(_useState, 2),
       isWeekend = _useState2[0],
-      setisWeekend = _useState2[1];
+      setIsWeekend = _useState2[1];
 
   var _useState3 = (0, _react.useState)(true),
       _useState4 = (0, _slicedToArray2.default)(_useState3, 2),
       isHalfHourActivated = _useState4[0],
-      setisHalfHourActivated = _useState4[1];
+      setIsHalfHourActivated = _useState4[1];
 
   var _useState5 = (0, _react.useState)(true),
       _useState6 = (0, _slicedToArray2.default)(_useState5, 2),
       isLoading = _useState6[0],
-      setisLoading = _useState6[1];
+      setIsLoading = _useState6[1];
 
   var _useState7 = (0, _react.useState)(),
       _useState8 = (0, _slicedToArray2.default)(_useState7, 2),
@@ -1637,7 +1638,7 @@ var ElecHalfHourMonthlyAnalysis = function ElecHalfHourMonthlyAnalysis(_ref) {
   var _useState9 = (0, _react.useState)(),
       _useState10 = (0, _slicedToArray2.default)(_useState9, 2),
       enedisAnalysisValues = _useState10[0],
-      setenedisAnalysisValues = _useState10[1];
+      setEnedisAnalysisValues = _useState10[1];
 
   var _useState11 = (0, _react.useState)(),
       _useState12 = (0, _slicedToArray2.default)(_useState11, 2),
@@ -1655,7 +1656,7 @@ var ElecHalfHourMonthlyAnalysis = function ElecHalfHourMonthlyAnalysis(_ref) {
       setOpenInfoModal = _useState16[1];
 
   var handleChangeWeek = (0, _react.useCallback)(function () {
-    setisWeekend(function (prev) {
+    setIsWeekend(function (prev) {
       return !prev;
     });
   }, []);
@@ -1686,13 +1687,13 @@ var ElecHalfHourMonthlyAnalysis = function ElecHalfHourMonthlyAnalysis(_ref) {
   (0, _react.useEffect)(function () {
     var subscribed = true;
 
-    function getEnedisAnalysisData() {
-      return _getEnedisAnalysisData.apply(this, arguments);
+    function fetchEnedisAnalysisData() {
+      return _fetchEnedisAnalysisData.apply(this, arguments);
     }
 
-    function _getEnedisAnalysisData() {
-      _getEnedisAnalysisData = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee() {
-        var cs, activateHalfHourLoad, emas, aggegatedDate, data, aggregatedData, percentage;
+    function _fetchEnedisAnalysisData() {
+      _fetchEnedisAnalysisData = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee() {
+        var cs, isHalfHourLoadActivated, emas, aggregatedDate, data, aggregatedData, percentage;
         return _regenerator.default.wrap(function _callee$(_context) {
           while (1) {
             switch (_context.prev = _context.next) {
@@ -1702,59 +1703,62 @@ var ElecHalfHourMonthlyAnalysis = function ElecHalfHourMonthlyAnalysis(_ref) {
                 return cs.checkDoctypeEntries(_fluid.FluidType.ELECTRICITY, _timeStep.TimeStep.HALF_AN_HOUR);
 
               case 3:
-                activateHalfHourLoad = _context.sent;
+                isHalfHourLoadActivated = _context.sent;
 
-                if (!subscribed) {
-                  _context.next = 16;
+                if (subscribed) {
+                  _context.next = 6;
                   break;
                 }
 
-                if (!activateHalfHourLoad) {
-                  _context.next = 14;
+                return _context.abrupt("return");
+
+              case 6:
+                if (!isHalfHourLoadActivated) {
+                  _context.next = 15;
                   break;
                 }
 
                 emas = new _enedisMonthlyAnalysisData.default(client);
-                aggegatedDate = analysisDate.minus({
+                aggregatedDate = analysisDate.minus({
                   month: 1
                 });
-                _context.next = 10;
-                return emas.getEnedisMonthlyAnalysisByDate(aggegatedDate.year, aggegatedDate.month);
+                _context.next = 11;
+                return emas.getEnedisMonthlyAnalysisByDate(aggregatedDate.year, aggregatedDate.month);
 
-              case 10:
+              case 11:
                 data = _context.sent;
 
-                if (subscribed && data !== null && data !== void 0 && data.length) {
+                if (data !== null && data !== void 0 && data.length) {
                   aggregatedData = emas.aggregateValuesToDataLoad(data[0]);
-                  setenedisAnalysisValues(data[0]);
+                  setEnedisAnalysisValues(data[0]);
                   setMonthDataloads(aggregatedData);
 
-                  if (data[0].minimumLoad && perfIndicator.value && subscribed) {
+                  if (data[0].minimumLoad && perfIndicator.value) {
                     percentage = data[0].minimumLoad / perfIndicator.value * 100;
                     setFacturePercentage(percentage);
                   }
                 }
 
-                _context.next = 15;
+                _context.next = 16;
                 break;
 
-              case 14:
-                setisHalfHourActivated(false);
-
               case 15:
-                setisLoading(false);
+                setIsHalfHourActivated(false);
 
               case 16:
+                setIsLoading(false);
+
+              case 17:
               case "end":
                 return _context.stop();
             }
           }
         }, _callee);
       }));
-      return _getEnedisAnalysisData.apply(this, arguments);
+      return _fetchEnedisAnalysisData.apply(this, arguments);
     }
 
-    getEnedisAnalysisData();
+    fetchEnedisAnalysisData();
     return function () {
       subscribed = false;
     };
@@ -1938,10 +1942,10 @@ var _ElecHalfHourMonthlyAnalysis = _interopRequireDefault(__webpack_require__("L
 
 var _MaxConsumptionCard = _interopRequireDefault(__webpack_require__("AJTi"));
 
-__webpack_require__("oXWw");
-
 var _TotalAnalysisChart = _interopRequireDefault(__webpack_require__("8LDu"));
 
+__webpack_require__("oXWw");
+
 function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
 
 function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || typeof obj !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
@@ -1993,8 +1997,7 @@ var MonthlyAnalysis = function MonthlyAnalysis(_ref) {
 
     function _populateData() {
       _populateData = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee() {
-        var consumptionService, performanceIndicatorService, periods, fetchedPerformanceIndicators, i, _fetchedPerformanceIn;
-
+        var consumptionService, performanceIndicatorService, periods, fetchedPerformanceIndicators, hasValidPI;
         return _regenerator.default.wrap(function _callee$(_context) {
           while (1) {
             switch (_context.prev = _context.next) {
@@ -2035,13 +2038,10 @@ var MonthlyAnalysis = function MonthlyAnalysis(_ref) {
                   if (fetchedPerformanceIndicators) {
                     setPerformanceIndicators(fetchedPerformanceIndicators);
                     setLoadAnalysis(false);
-
-                    for (i = 0; i < fetchedPerformanceIndicators.length; i++) {
-                      if ((_fetchedPerformanceIn = fetchedPerformanceIndicators[i]) !== null && _fetchedPerformanceIn !== void 0 && _fetchedPerformanceIn.value) {
-                        setLoadAnalysis(true);
-                      }
-                    }
-
+                    hasValidPI = fetchedPerformanceIndicators.some(function (pi) {
+                      return pi === null || pi === void 0 ? void 0 : pi.value;
+                    });
+                    if (hasValidPI) setLoadAnalysis(true);
                     setAggregatedPerformanceIndicators(performanceIndicatorService.aggregatePerformanceIndicators(fetchedPerformanceIndicators));
                   }
 
@@ -2597,14 +2597,14 @@ exports.default = void 0;
 
 var _toConsumableArray2 = _interopRequireDefault(__webpack_require__("RIqP"));
 
-var _slicedToArray2 = _interopRequireDefault(__webpack_require__("J4zp"));
-
 var _AxisBottom = _interopRequireDefault(__webpack_require__("ZUUJ"));
 
 var _AxisRight = _interopRequireDefault(__webpack_require__("0bt6"));
 
 var _Bar = _interopRequireDefault(__webpack_require__("qOdy"));
 
+var _useChartResize2 = __webpack_require__("tWvI");
+
 var _d3Scale = __webpack_require__("ziQ1");
 
 var _fluid = __webpack_require__("5Wkc");
@@ -2624,18 +2624,12 @@ function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj &&
 var ElecHalfHourChart = function ElecHalfHourChart(_ref) {
   var dataLoad = _ref.dataLoad,
       isWeekend = _ref.isWeekend;
+  var chartContainer = (0, _react.useRef)(null);
 
-  var _useState = (0, _react.useState)(0),
-      _useState2 = (0, _slicedToArray2.default)(_useState, 2),
-      width = _useState2[0],
-      setWidth = _useState2[1];
-
-  var _useState3 = (0, _react.useState)(0),
-      _useState4 = (0, _slicedToArray2.default)(_useState3, 2),
-      height = _useState4[0],
-      setHeight = _useState4[1];
+  var _useChartResize = (0, _useChartResize2.useChartResize)(chartContainer, 170, 940),
+      height = _useChartResize.height,
+      width = _useChartResize.width;
 
-  var chartContainer = (0, _react.useRef)(null);
   var marginLeft = 10;
   var marginRight = 60;
   var marginTop = 0;
@@ -2650,35 +2644,17 @@ var ElecHalfHourChart = function ElecHalfHourChart(_ref) {
   };
 
   var getMaxLoad = function getMaxLoad() {
-    return dataLoad ? Math.max.apply(Math, (0, _toConsumableArray2.default)(dataLoad.map(function (d) {
-      return d.value;
-    }))) : 0;
+    if (!dataLoad || dataLoad.length === 0) return 0;
+    return Math.max.apply(Math, (0, _toConsumableArray2.default)(dataLoad.map(function (_ref2) {
+      var value = _ref2.value;
+      return value;
+    })));
   };
 
   var xScale = (0, _d3Scale.scaleBand)().domain(dataLoad.map(function (d) {
     return d.date.toLocaleString(_luxon.DateTime.DATETIME_SHORT);
   })).range([0, getContentWidth()]).padding(0.1);
   var yScale = (0, _d3Scale.scaleLinear)().domain([0, getMaxLoad()]).range([getContentHeight(), 0]);
-  (0, _react.useEffect)(function () {
-    function handleResize() {
-      var maxWidth = 940;
-      var maxHeight = 170;
-
-      var _width = chartContainer.current ? chartContainer.current.offsetWidth > maxWidth ? maxWidth : chartContainer.current.offsetWidth : 400;
-
-      setWidth(_width);
-
-      var _height = chartContainer.current ? chartContainer.current.offsetHeight > maxHeight ? maxHeight : chartContainer.current.offsetHeight : 200;
-
-      setHeight(_height);
-    }
-
-    handleResize();
-    window.addEventListener('resize', handleResize);
-    return function () {
-      return window.removeEventListener('resize', handleResize);
-    };
-  }, []);
   return /*#__PURE__*/_react.default.createElement("div", {
     className: "graph-elec-half-hour",
     ref: chartContainer
diff --git a/5/ecolyo.32856d540af4f4ee2abc.js b/5/ecolyo.6b6b7a737312b80a3d2d.js
similarity index 99%
rename from 5/ecolyo.32856d540af4f4ee2abc.js
rename to 5/ecolyo.6b6b7a737312b80a3d2d.js
index facce3fc3..848115330 100644
--- a/5/ecolyo.32856d540af4f4ee2abc.js
+++ b/5/ecolyo.6b6b7a737312b80a3d2d.js
@@ -2682,7 +2682,7 @@ var FormLogin = function FormLogin(_ref) {
       connectError = _useKonnectorAuth2[2];
 
   var changeLogin = function changeLogin(value) {
-    if (/[0-9]/.test(value) && value.length <= 7 || value === '') {
+    if (/\d/.test(value) && value.length <= 7 || value === '') {
       setError('');
       setLogin(value);
     }
@@ -5125,6 +5125,8 @@ var _slicedToArray2 = _interopRequireDefault(__webpack_require__("J4zp"));
 
 var _FluidChartSlide = _interopRequireDefault(__webpack_require__("KA1Q"));
 
+var _useChartResize2 = __webpack_require__("tWvI");
+
 var _react = _interopRequireWildcard(__webpack_require__("q1tI"));
 
 var _reactRedux = __webpack_require__("/MKj");
@@ -5161,20 +5163,10 @@ var FluidChartSwipe = function FluidChartSwipe(_ref) {
 
   var swipe = (0, _react.useRef)(null);
 
-  var _useState = (0, _react.useState)(0),
+  var _useState = (0, _react.useState)(false),
       _useState2 = (0, _slicedToArray2.default)(_useState, 2),
-      width = _useState2[0],
-      setWidth = _useState2[1];
-
-  var _useState3 = (0, _react.useState)(0),
-      _useState4 = (0, _slicedToArray2.default)(_useState3, 2),
-      height = _useState4[0],
-      setHeight = _useState4[1];
-
-  var _useState5 = (0, _react.useState)(false),
-      _useState6 = (0, _slicedToArray2.default)(_useState5, 2),
-      isSwitching = _useState6[0],
-      setIsSwitching = _useState6[1];
+      isSwitching = _useState2[0],
+      setIsSwitching = _useState2[1];
 
   var handleChangeIndex = function handleChangeIndex(index) {
     var dateChartService = new _dateChart.default();
@@ -5192,28 +5184,10 @@ var FluidChartSwipe = function FluidChartSwipe(_ref) {
     dispatch((0, _chart.setCurrentIndex)(updatedIndex));
   };
 
-  (0, _react.useEffect)(function () {
-    function handleResize() {
-      if (!loading) {
-        var maxWidth = 940;
-        var maxHeight = 300;
+  var _useChartResize = (0, _useChartResize2.useChartResize)(swipe, 300, 940, loading),
+      height = _useChartResize.height,
+      width = _useChartResize.width;
 
-        var _width = swipe.current ? swipe.current.offsetWidth > maxWidth ? maxWidth : swipe.current.offsetWidth : 400;
-
-        setWidth(_width);
-
-        var _height = swipe.current ? swipe.current.offsetHeight > maxHeight ? maxHeight : swipe.current.offsetHeight : 300;
-
-        setHeight(_height);
-      }
-    }
-
-    handleResize();
-    window.addEventListener('resize', handleResize);
-    return function () {
-      return window.removeEventListener('resize', handleResize);
-    };
-  }, [loading]);
   (0, _react.useEffect)(function () {
     function initIndex() {
       var dateChartService = new _dateChart.default();
@@ -5223,6 +5197,20 @@ var FluidChartSwipe = function FluidChartSwipe(_ref) {
 
     initIndex();
   }, [dispatch, currentTimeStep, selectedDate]);
+
+  var _slideRenderer = function slideRenderer(key, index) {
+    return /*#__PURE__*/_react.default.createElement(_FluidChartSlide.default, {
+      key: key,
+      index: index,
+      fluidType: fluidType,
+      showCompare: showCompare,
+      width: width,
+      height: height,
+      isSwitching: isSwitching,
+      setActive: setActive
+    });
+  };
+
   return /*#__PURE__*/_react.default.createElement("div", {
     className: 'fluidchartswipe-root',
     ref: swipe
@@ -5234,16 +5222,7 @@ var FluidChartSwipe = function FluidChartSwipe(_ref) {
     slideRenderer: function slideRenderer(_ref2) {
       var key = _ref2.key,
           index = _ref2.index;
-      return /*#__PURE__*/_react.default.createElement(_FluidChartSlide.default, {
-        key: key,
-        index: index,
-        fluidType: fluidType,
-        showCompare: showCompare,
-        width: width,
-        height: height,
-        isSwitching: isSwitching,
-        setActive: setActive
-      });
+      return _slideRenderer(key, index);
     },
     enableMouseEvents: true,
     onSwitching: !isSwitching ? function () {
@@ -6077,7 +6056,17 @@ var TotalConsumption = function TotalConsumption(_ref) {
                     totalPrice += converterService.LoadToEuro(data.value, fluidType, data.price);
                   }
                 });
-                displayedValue = total <= 0 || !activateHalfHourLoad && currentTimeStep === _timeStep.TimeStep.HALF_AN_HOUR && fluidType === _fluid.FluidType.ELECTRICITY ? '-----' : fluidType === _fluid.FluidType.MULTIFLUID ? (0, _utils.formatNumberValues)(total).toString() : totalPrice <= 0 ? (0, _utils.formatNumberValues)(converterService.LoadToEuro(total, fluidType)).toString() : (0, _utils.formatNumberValues)(totalPrice).toString();
+
+                if (total <= 0 || !activateHalfHourLoad && currentTimeStep === _timeStep.TimeStep.HALF_AN_HOUR && fluidType === _fluid.FluidType.ELECTRICITY) {
+                  displayedValue = '-----';
+                } else if (fluidType === _fluid.FluidType.MULTIFLUID) {
+                  displayedValue = (0, _utils.formatNumberValues)(total).toString();
+                } else if (totalPrice <= 0) {
+                  displayedValue = (0, _utils.formatNumberValues)(converterService.LoadToEuro(total, fluidType)).toString();
+                } else {
+                  displayedValue = (0, _utils.formatNumberValues)(totalPrice).toString();
+                }
+
                 setTotalValue(displayedValue);
 
               case 15:
@@ -7300,10 +7289,10 @@ var _global = __webpack_require__("c4IZ");
 
 var _utils = __webpack_require__("c+yx");
 
-__webpack_require__("uUyM");
-
 var _DeleteGRDFAccountModal = _interopRequireDefault(__webpack_require__("h30T"));
 
+__webpack_require__("uUyM");
+
 function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
 
 function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || typeof obj !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
@@ -7574,39 +7563,58 @@ var ConnectionResult = function ConnectionResult(_ref) {
   };
 
   var consentError = konnectorError === _konnectorUpdate.KonnectorUpdate.ERROR_CONSENT_FORM_GAS || konnectorError === _konnectorUpdate.KonnectorUpdate.ERROR_UPDATE_OAUTH;
+  /**
+   * Get Konnector state, possible values:
+   * * partner maintenance
+   * * error state
+   * * outdated
+   * * last update date
+   */
+
+  var getConnectionStatus = function getConnectionStatus() {
+    // First check if there is partner error from backoffice
+    if (fluidStatus.maintenance) {
+      return /*#__PURE__*/_react.default.createElement("div", {
+        className: "connection-caption text-16-normal"
+      }, /*#__PURE__*/_react.default.createElement("div", {
+        className: "text-16-normal"
+      }, /*#__PURE__*/_react.default.createElement("div", {
+        className: "connection-caption"
+      }, t('konnector_form.wait_end_issue'))));
+    } // Else check if konnector is in error state
+
+
+    if (status === 'errored') {
+      return /*#__PURE__*/_react.default.createElement(DisplayKonnectorErrorState, {
+        konnectorError: konnectorError,
+        consentRelatedError: consentError,
+        lastExecutionDate: lastExecutionDate,
+        fluidConcerned: getFluidTypeTranslation(fluidType)
+      });
+    } // Else check if data is outdated
+
+
+    if (outDatedDataDays) {
+      return /*#__PURE__*/_react.default.createElement(DisplayDataOutdated, {
+        fluidStatus: fluidStatus,
+        fluidType: fluidType,
+        lastExecutionDate: lastExecutionDate,
+        hasUpdatedToday: hasUpdatedToday()
+      });
+    } // Default to displaying the last update date
+
+
+    return /*#__PURE__*/_react.default.createElement(DisplayLastUpdateDate, {
+      fluidType: fluidType,
+      lastExecutionDate: lastExecutionDate
+    });
+  };
+
   return /*#__PURE__*/_react.default.createElement("div", {
     className: "connection-update-result"
   }, /*#__PURE__*/_react.default.createElement("div", {
     className: status === 'errored' && !hasUpdatedToday() && !fluidStatus.maintenance ? 'connection-update-errored' : ''
-  }, fluidStatus.maintenance ?
-  /*#__PURE__*/
-  // First check if there is partner error from backoffice
-  _react.default.createElement("div", {
-    className: "connection-caption text-16-normal"
-  }, /*#__PURE__*/_react.default.createElement("div", {
-    className: "text-16-normal"
-  }, /*#__PURE__*/_react.default.createElement("div", {
-    className: "connection-caption"
-  }, t('konnector_form.wait_end_issue')))) : status === 'errored' ?
-  /*#__PURE__*/
-  // Else check if konnector is in error state
-  _react.default.createElement(DisplayKonnectorErrorState, {
-    konnectorError: konnectorError,
-    consentRelatedError: consentError,
-    lastExecutionDate: lastExecutionDate,
-    fluidConcerned: getFluidTypeTranslation(fluidType)
-  }) : outDatedDataDays ?
-  /*#__PURE__*/
-  // Else check if data is outdated
-  _react.default.createElement(DisplayDataOutdated, {
-    fluidStatus: fluidStatus,
-    fluidType: fluidType,
-    lastExecutionDate: lastExecutionDate,
-    hasUpdatedToday: hasUpdatedToday()
-  }) : /*#__PURE__*/_react.default.createElement(DisplayLastUpdateDate, {
-    fluidType: fluidType,
-    lastExecutionDate: lastExecutionDate
-  })), /*#__PURE__*/_react.default.createElement("div", {
+  }, getConnectionStatus()), /*#__PURE__*/_react.default.createElement("div", {
     className: "inline-buttons"
   }, !consentError && /*#__PURE__*/_react.default.createElement(_Button.default, {
     "aria-label": t('konnector_form.accessibility.button_delete'),
diff --git a/6/ecolyo.68590aa155e034150cca.js b/6/ecolyo.2d69c974d9f5967c346e.js
similarity index 97%
rename from 6/ecolyo.68590aa155e034150cca.js
rename to 6/ecolyo.2d69c974d9f5967c346e.js
index 92e7cdc0c..8067c0f4c 100644
--- a/6/ecolyo.68590aa155e034150cca.js
+++ b/6/ecolyo.2d69c974d9f5967c346e.js
@@ -983,6 +983,30 @@ var EcogestureList = function EcogestureList(_ref) {
     }
   };
 
+  var renderEcogestureContent = function renderEcogestureContent() {
+    if (list.length > 0) {
+      if (activeFilter === _ecogesture.Usage[_ecogesture.Usage.ALL]) {
+        return list.map(function (ecogesture) {
+          return /*#__PURE__*/_react.default.createElement(_EcogestureCard.default, {
+            key: ecogesture.id,
+            ecogesture: ecogesture,
+            selectionCompleted: selectionViewed === selectionTotal
+          });
+        });
+      } else {
+        return filterEcogesture(list);
+      }
+    } else if (!displaySelection) {
+      return /*#__PURE__*/_react.default.createElement("div", {
+        className: "ec-filter-error"
+      }, /*#__PURE__*/_react.default.createElement("div", {
+        className: "text-20-normal"
+      }, t('ecogesture.no_ecogesture_filter.text1')), /*#__PURE__*/_react.default.createElement("div", {
+        className: "text-16-italic"
+      }, t('ecogesture.no_ecogesture_filter.text2')));
+    }
+  };
+
   return /*#__PURE__*/_react.default.createElement("div", {
     className: "ecogesture-root"
   }, /*#__PURE__*/_react.default.createElement("div", {
@@ -1058,19 +1082,7 @@ var EcogestureList = function EcogestureList(_ref) {
     })));
   }))))), /*#__PURE__*/_react.default.createElement("div", {
     className: "ecogesture-content"
-  }, list.length > 0 && activeFilter === _ecogesture.Usage[_ecogesture.Usage.ALL] ? list.map(function (ecogesture) {
-    return /*#__PURE__*/_react.default.createElement(_EcogestureCard.default, {
-      key: ecogesture.id,
-      ecogesture: ecogesture,
-      selectionCompleted: selectionViewed === selectionTotal
-    });
-  }) : list.length > 0 && activeFilter !== _ecogesture.Usage[_ecogesture.Usage.ALL] ? filterEcogesture(list) : !displaySelection && /*#__PURE__*/_react.default.createElement("div", {
-    className: "ec-filter-error"
-  }, /*#__PURE__*/_react.default.createElement("div", {
-    className: "text-20-normal"
-  }, t('ecogesture.no_ecogesture_filter.text1')), /*#__PURE__*/_react.default.createElement("div", {
-    className: "text-16-italic"
-  }, t('ecogesture.no_ecogesture_filter.text2'))), !displaySelection && handleReinitClick && /*#__PURE__*/_react.default.createElement("button", {
+  }, renderEcogestureContent(), !displaySelection && handleReinitClick && /*#__PURE__*/_react.default.createElement("button", {
     className: "reinit-button",
     onClick: handleReinitClick
   }, /*#__PURE__*/_react.default.createElement("span", null, t('ecogesture.reinit')))));
@@ -1334,6 +1346,8 @@ var EcogestureEmptyList = function EcogestureEmptyList(_ref) {
       t = _useI18n.t;
 
   var navigate = (0, _reactRouterDom.useNavigate)();
+  var objOrDoing = isObjective ? 'obj' : 'doing';
+  var isDone = isSelectionDone ? '_done' : '';
   return /*#__PURE__*/_react.default.createElement("div", {
     className: "ec-empty-container"
   }, /*#__PURE__*/_react.default.createElement("div", {
@@ -1344,9 +1358,9 @@ var EcogestureEmptyList = function EcogestureEmptyList(_ref) {
     size: 150
   }), /*#__PURE__*/_react.default.createElement("div", {
     className: "text-16-normal text"
-  }, isObjective ? t("ecogesture.emptyList.obj1".concat(isSelectionDone ? '_done' : '')) : t("ecogesture.emptyList.doing1".concat(isSelectionDone ? '_done' : ''))), /*#__PURE__*/_react.default.createElement("div", {
+  }, t("ecogesture.emptyList.".concat(objOrDoing, "1").concat(isDone))), /*#__PURE__*/_react.default.createElement("div", {
     className: "text-16-normal text"
-  }, isObjective ? t("ecogesture.emptyList.obj2".concat(isSelectionDone ? '_done' : '')) : t("ecogesture.emptyList.doing2".concat(isSelectionDone ? '_done' : ''))), /*#__PURE__*/_react.default.createElement("div", {
+  }, t("ecogesture.emptyList.".concat(objOrDoing, "2").concat(isDone))), /*#__PURE__*/_react.default.createElement("div", {
     className: "btn-container"
   }, /*#__PURE__*/_react.default.createElement(_Button.default, {
     "aria-label": t('ecogesture.emptyList.btn1'),
diff --git a/app/ecolyo.8a385260ba5108570fb1.js b/app/ecolyo.9f5a83d8c8dc6246dc90.js
similarity index 99%
rename from app/ecolyo.8a385260ba5108570fb1.js
rename to app/ecolyo.9f5a83d8c8dc6246dc90.js
index 4db2d1135..65b4804ef 100644
--- a/app/ecolyo.8a385260ba5108570fb1.js
+++ b/app/ecolyo.9f5a83d8c8dc6246dc90.js
@@ -64,7 +64,7 @@
 /******/
 /******/ 	// script path function
 /******/ 	function jsonpScriptSrc(chunkId) {
-/******/ 		return __webpack_require__.p + "" + ({}[chunkId]||chunkId) + "/ecolyo." + {"1":"c44aefc530d1de68ee3f","3":"756f7b49c5e712ba37bf","4":"39d7b1099221e57244fe","5":"32856d540af4f4ee2abc","6":"68590aa155e034150cca","7":"d2a6fc631880361b47a0","8":"5a104e5906433ba909f2","9":"d4e0f8345c64c54574af"}[chunkId] + ".js"
+/******/ 		return __webpack_require__.p + "" + ({}[chunkId]||chunkId) + "/ecolyo." + {"1":"c44aefc530d1de68ee3f","3":"740f12bc0ccead1472ad","4":"39d7b1099221e57244fe","5":"6b6b7a737312b80a3d2d","6":"2d69c974d9f5967c346e","7":"d2a6fc631880361b47a0","8":"5a104e5906433ba909f2","9":"d4e0f8345c64c54574af"}[chunkId] + ".js"
 /******/ 	}
 /******/
 /******/ 	// The require function
@@ -4174,31 +4174,30 @@ var ActionOnGoing = function ActionOnGoing(_ref) {
     });
   }, [setOpenEcogestureModal]);
   var setGradient = (0, _react.useCallback)(function () {
-    if (userAction.startDate && userAction.ecogesture) {
-      var circle = 360;
-      var durationInDays = userAction.ecogesture.actionDuration;
-      var ratio = circle / durationInDays;
-      var progressionInDays = -Math.round(userAction.startDate.diffNow('days').days);
-      var progress = ratio * progressionInDays;
-
-      if (progress === 0) {
-        return "linear-gradient(90deg, #121212 50%,transparent 50%), linear-gradient(110deg, #58ffff 50%, transparent 50%)";
-      } else if (progress === circle) {
-        return "linear-gradient(90deg, #58ffff 50%, #58ffff 50%)";
-      } else if (progress === circle / 2) {
-        return "linear-gradient(90deg, #121212 50%, #58ffff 50%)";
-      } else if (progress > circle / 2) {
-        if (durationInDays / 3 === 1) {
-          return "linear-gradient(".concat(progress / 2, "deg, transparent 50%, #58ffff  50%),\n          \n        linear-gradient(90deg, transparent 50%, #58ffff 50%)");
-        } else {
-          return "linear-gradient(90deg, transparent 50%, #58ffff  50%),\n        linear-gradient(180deg, transparent 50%, #58ffff 50%)";
-        }
-      } else if (progress < circle / 2) {
-        if (durationInDays / 3 === 1) {
-          return "linear-gradient(90deg, #121212 50%,transparent 50%), linear-gradient(240deg, #58ffff 50%, transparent 50%)";
-        } else {
-          return "linear-gradient(90deg, #121212 50%,transparent 50%), linear-gradient(".concat(progress * 2, "deg, #58ffff 50%, transparent 50%)");
-        }
+    if (!userAction.startDate || !userAction.ecogesture) return null;
+    var circle = 360;
+    var durationInDays = userAction.ecogesture.actionDuration;
+    var ratio = circle / durationInDays;
+    var progressionInDays = -Math.round(userAction.startDate.diffNow('days').days);
+    var progress = ratio * progressionInDays;
+
+    if (progress === 0) {
+      return "linear-gradient(90deg, #121212 50%,transparent 50%), linear-gradient(110deg, #58ffff 50%, transparent 50%)";
+    } else if (progress === circle) {
+      return "linear-gradient(90deg, #58ffff 50%, #58ffff 50%)";
+    } else if (progress === circle / 2) {
+      return "linear-gradient(90deg, #121212 50%, #58ffff 50%)";
+    } else if (progress > circle / 2) {
+      if (durationInDays / 3 === 1) {
+        return "linear-gradient(".concat(progress / 2, "deg, transparent 50%, #58ffff  50%),\n        linear-gradient(90deg, transparent 50%, #58ffff 50%)");
+      } else {
+        return "linear-gradient(90deg, transparent 50%, #58ffff  50%),\n        linear-gradient(180deg, transparent 50%, #58ffff 50%)";
+      }
+    } else if (progress < circle / 2) {
+      if (durationInDays / 3 === 1) {
+        return "linear-gradient(90deg, #121212 50%,transparent 50%), linear-gradient(240deg, #58ffff 50%, transparent 50%)";
+      } else {
+        return "linear-gradient(90deg, #121212 50%,transparent 50%), linear-gradient(".concat(progress * 2, "deg, #58ffff 50%, transparent 50%)");
       }
     }
   }, [userAction.startDate, userAction.ecogesture]);
@@ -4631,7 +4630,8 @@ var SgeConnectView = function SgeConnectView() {
     dispatch((0, _global.updateSgeStore)(currentSgeState));
   }, [currentSgeState, currentStep, dispatch]);
   var onChange = (0, _react.useCallback)(function (key, value, maxLength) {
-    if (!maxLength || value === '' || /[0-9]/.test(value.toString()) && value.toString().length <= maxLength) {
+    // TODO duplicate with Form login input
+    if (!maxLength || value === '' || /\d/.test(value.toString()) && value.toString().length <= maxLength) {
       var updatedState = _objectSpread(_objectSpread({}, currentSgeState), {}, (0, _defineProperty2.default)({}, key, value));
 
       setCurrentSgeState(updatedState);
@@ -5619,6 +5619,8 @@ var _DuelResultModal = _interopRequireDefault(__webpack_require__("yOtt"));
 
 var _lastDuelModal = _interopRequireDefault(__webpack_require__("B5Op"));
 
+var _useChartResize2 = __webpack_require__("tWvI");
+
 var _cozyClient = __webpack_require__("SH7X");
 
 var _I18n = __webpack_require__("buk/");
@@ -5683,22 +5685,17 @@ var DuelOngoing = function DuelOngoing(_ref) {
       isLastDuel = _useState6[0],
       setIsLastDuel = _useState6[1];
 
-  var _useState7 = (0, _react.useState)(0),
+  var _useState7 = (0, _react.useState)(),
       _useState8 = (0, _slicedToArray2.default)(_useState7, 2),
-      width = _useState8[0],
-      setWidth = _useState8[1];
+      finishedDataLoad = _useState8[0],
+      setFinishedDataLoad = _useState8[1];
 
-  var _useState9 = (0, _react.useState)(0),
-      _useState10 = (0, _slicedToArray2.default)(_useState9, 2),
-      height = _useState10[0],
-      setHeight = _useState10[1];
+  var chartContainer = (0, _react.useRef)(null);
 
-  var _useState11 = (0, _react.useState)(),
-      _useState12 = (0, _slicedToArray2.default)(_useState11, 2),
-      finishedDataLoad = _useState12[0],
-      setFinishedDataLoad = _useState12[1];
+  var _useChartResize = (0, _useChartResize2.useChartResize)(chartContainer),
+      height = _useChartResize.height,
+      width = _useChartResize.width;
 
-  var chartContainer = (0, _react.useRef)(null);
   var challengeService = (0, _react.useMemo)(function () {
     return new _challenge.default(client);
   }, [client]);
@@ -5767,26 +5764,6 @@ var DuelOngoing = function DuelOngoing(_ref) {
       }
     }, _callee2);
   })), [navigate]);
-  (0, _react.useEffect)(function () {
-    function handleResize() {
-      var maxWidth = 940;
-      var maxHeight = 300;
-
-      var _width = chartContainer.current ? chartContainer.current.offsetWidth > maxWidth ? maxWidth : chartContainer.current.offsetWidth : 400;
-
-      setWidth(_width);
-
-      var _height = chartContainer.current ? chartContainer.current.offsetHeight > maxHeight ? maxHeight : chartContainer.current.offsetHeight : 300;
-
-      setHeight(_height);
-    }
-
-    handleResize();
-    window.addEventListener('resize', handleResize);
-    return function () {
-      return window.removeEventListener('resize', handleResize);
-    };
-  }, []);
   (0, _react.useEffect)(function () {
     var subscribed = true;
 
@@ -6145,16 +6122,16 @@ function getNavPicto(fluidType, active, connected) {
 
 function getPartnerPicto(slug) {
   var blackLogo = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : true;
-  var fluidconfig = new _fluidConfig.default().getFluidConfig();
+  var fluidConfig = new _fluidConfig.default().getFluidConfig();
 
   switch (slug) {
-    case fluidconfig[_fluid.FluidType.ELECTRICITY].konnectorConfig.slug:
+    case fluidConfig[_fluid.FluidType.ELECTRICITY].konnectorConfig.slug:
       return blackLogo ? _enedisLogo.default : _enedisLogoWhite.default;
 
-    case fluidconfig[_fluid.FluidType.WATER].konnectorConfig.slug:
+    case fluidConfig[_fluid.FluidType.WATER].konnectorConfig.slug:
       return blackLogo ? _eglLogo.default : _eglLogoWhite.default;
 
-    case fluidconfig[_fluid.FluidType.GAS].konnectorConfig.slug:
+    case fluidConfig[_fluid.FluidType.GAS].konnectorConfig.slug:
       return blackLogo ? _grdfLogo.default : _grdfLogoWhite.default;
 
     default:
@@ -8144,52 +8121,51 @@ var ProfileTypeService = /*#__PURE__*/function () {
                 warmingFluid = this.profileType.warmingFluid;
                 hotWaterFluid = this.profileType.hotWaterFluid;
                 cookingFluid = this.profileType.cookingFluid;
+                detailsMonthlyForecast = {
+                  heatingConsumption: null,
+                  ecsConsumption: null,
+                  cookingConsumption: null,
+                  electricSpecificConsumption: null,
+                  coldWaterConsumption: null
+                };
 
-                if (!(this.profileType.heating === _profileType.IndividualOrCollective.COLLECTIVE)) {
-                  _context4.next = 7;
+                if (!(this.profileType.heating !== _profileType.IndividualOrCollective.COLLECTIVE)) {
+                  _context4.next = 10;
                   break;
                 }
 
-                _context4.t0 = null;
-                _context4.next = 15;
-                break;
-
-              case 7:
                 if (!(warmingFluid !== null && fluidType === warmingFluid)) {
-                  _context4.next = 13;
+                  _context4.next = 9;
                   break;
                 }
 
-                _context4.next = 10;
+                _context4.next = 8;
                 return this.getMonthHeating(month);
 
+              case 8:
+                detailsMonthlyForecast.heatingConsumption = _context4.sent;
+
+              case 9:
+                if (hotWaterFluid !== null && fluidType === hotWaterFluid) {
+                  detailsMonthlyForecast.ecsConsumption = this.getMonthEcs(month);
+                }
+
               case 10:
-                _context4.t1 = _context4.sent;
-                _context4.next = 14;
-                break;
+                if (fluidType === cookingFluid) {
+                  detailsMonthlyForecast.cookingConsumption = this.getMonthCookingConsumption(month);
+                }
 
-              case 13:
-                _context4.t1 = null;
+                if (fluidType === _fluid.FluidType.ELECTRICITY) {
+                  detailsMonthlyForecast.electricSpecificConsumption = this.getMonthElectricSpecificConsumption(month);
+                }
 
-              case 14:
-                _context4.t0 = _context4.t1;
+                if (fluidType === _fluid.FluidType.WATER) {
+                  detailsMonthlyForecast.coldWaterConsumption = this.getMonthColdWaterConsumption(month);
+                }
 
-              case 15:
-                _context4.t2 = _context4.t0;
-                _context4.t3 = this.profileType.heating === _profileType.IndividualOrCollective.COLLECTIVE ? null : hotWaterFluid !== null && fluidType === hotWaterFluid ? this.getMonthEcs(month) : null;
-                _context4.t4 = fluidType === cookingFluid ? this.getMonthCookingConsumption(month) : null;
-                _context4.t5 = fluidType === _fluid.FluidType.ELECTRICITY ? this.getMonthElectricSpecificConsumption(month) : null;
-                _context4.t6 = fluidType === _fluid.FluidType.WATER ? this.getMonthColdWaterConsumption(month) : null;
-                detailsMonthlyForecast = {
-                  heatingConsumption: _context4.t2,
-                  ecsConsumption: _context4.t3,
-                  cookingConsumption: _context4.t4,
-                  electricSpecificConsumption: _context4.t5,
-                  coldWaterConsumption: _context4.t6
-                };
                 return _context4.abrupt("return", detailsMonthlyForecast);
 
-              case 22:
+              case 14:
               case "end":
                 return _context4.stop();
             }
@@ -8721,7 +8697,7 @@ var PerformanceIndicatorService = /*#__PURE__*/function () {
         for (var key in performanceIndicators) {
           var performanceIndicator = performanceIndicators[key];
           var fluidType = parseInt(key);
-          currentValue += performanceIndicator.value ? converterService.LoadToEuro(performanceIndicator.value, fluidType, performanceIndicator ? performanceIndicator.price : null) : 0;
+          currentValue += performanceIndicator.value ? converterService.LoadToEuro(performanceIndicator.value, fluidType, (performanceIndicator === null || performanceIndicator === void 0 ? void 0 : performanceIndicator.price) || null) : 0;
         }
 
         if (!performanceIndicators[0].compareValue || !performanceIndicators[1].compareValue || !performanceIndicators[2].compareValue) {
@@ -8732,7 +8708,7 @@ var PerformanceIndicatorService = /*#__PURE__*/function () {
 
             var _fluidType = parseInt(_key);
 
-            compareValue += _performanceIndicator.compareValue ? converterService.LoadToEuro(_performanceIndicator.compareValue, _fluidType, _performanceIndicator ? _performanceIndicator.price : null) : 0;
+            compareValue += _performanceIndicator.compareValue ? converterService.LoadToEuro(_performanceIndicator.compareValue, _fluidType, (_performanceIndicator === null || _performanceIndicator === void 0 ? void 0 : _performanceIndicator.price) || null) : 0;
           }
         }
       } else {
@@ -8748,7 +8724,7 @@ var PerformanceIndicatorService = /*#__PURE__*/function () {
 
             var _fluidType2 = parseInt(_key2);
 
-            currentValue += _performanceIndicator3.value ? converterService.LoadToEuro(_performanceIndicator3.value, _fluidType2, _performanceIndicator3 ? _performanceIndicator3.price : null) : 0;
+            currentValue += _performanceIndicator3.value ? converterService.LoadToEuro(_performanceIndicator3.value, _fluidType2, (_performanceIndicator3 === null || _performanceIndicator3 === void 0 ? void 0 : _performanceIndicator3.price) || null) : 0;
           }
         }
 
@@ -8760,7 +8736,7 @@ var PerformanceIndicatorService = /*#__PURE__*/function () {
 
             var _fluidType3 = parseInt(_key3);
 
-            compareValue += _performanceIndicator5.compareValue ? converterService.LoadToEuro(_performanceIndicator5.compareValue, _fluidType3, _performanceIndicator5 ? _performanceIndicator5.price : null) : 0;
+            compareValue += _performanceIndicator5.compareValue ? converterService.LoadToEuro(_performanceIndicator5.compareValue, _fluidType3, (_performanceIndicator5 === null || _performanceIndicator5 === void 0 ? void 0 : _performanceIndicator5.price) || null) : 0;
           }
         }
       }
@@ -13913,8 +13889,6 @@ var _circleStar = _interopRequireDefault(__webpack_require__("rN4g"));
 
 var _default2 = _interopRequireDefault(__webpack_require__("sbny"));
 
-var _locked = _interopRequireDefault(__webpack_require__("EG+L"));
-
 var _classnames = _interopRequireDefault(__webpack_require__("TSYQ"));
 
 var _StyledIcon = _interopRequireDefault(__webpack_require__("I07j"));
@@ -13947,12 +13921,12 @@ var _challenge2 = __webpack_require__("ojwR");
 
 var _utils = __webpack_require__("c+yx");
 
-__webpack_require__("FCQH");
-
 var _ChallengeNoFluidModal = _interopRequireDefault(__webpack_require__("rDu6"));
 
 var _StarsContainer = _interopRequireDefault(__webpack_require__("ujnP"));
 
+__webpack_require__("FCQH");
+
 function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
 
 function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || typeof obj !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
@@ -13999,6 +13973,12 @@ var ChallengeCardOnGoing = function ChallengeCardOnGoing(_ref) {
       fluidTypes = _useSelector$global.fluidTypes,
       fluidStatus = _useSelector$global.fluidStatus;
 
+  var _userChallenge$progre = userChallenge.progress,
+      actionProgress = _userChallenge$progre.actionProgress,
+      explorationProgress = _userChallenge$progre.explorationProgress,
+      quizProgress = _userChallenge$progre.quizProgress,
+      target = userChallenge.target,
+      duel = userChallenge.duel;
   var toggleNoFluidModal = (0, _react.useCallback)(function () {
     setIsOneFluidUp(function (prev) {
       return !prev;
@@ -14211,56 +14191,63 @@ var ChallengeCardOnGoing = function ChallengeCardOnGoing(_ref) {
       subscribed = false;
     };
   }, [client, currentDataload, userChallenge, dispatch]);
-  return /*#__PURE__*/_react.default.createElement("div", {
-    className: "cardContent onGoing"
-  }, /*#__PURE__*/_react.default.createElement("div", {
-    className: "titleBlock"
-  }, /*#__PURE__*/_react.default.createElement("span", {
-    className: "challengeTitle"
-  }, (0, _utils.getChallengeTitleWithLineReturn)(userChallenge.id))), /*#__PURE__*/_react.default.createElement("button", {
-    title: t('challenge.card.ongoing.quiz'),
-    tabIndex: userChallenge.progress.quizProgress === 5 ? -1 : 0,
-    className: (0, _classnames.default)('smallCard', (0, _defineProperty2.default)({}, 'finished', userChallenge.progress.quizProgress === 5)),
-    onClick: goQuiz
-  }, /*#__PURE__*/_react.default.createElement(_StyledIcon.default, {
-    className: "cardIcon",
-    icon: userChallenge.progress.quizProgress === 5 ? _circleChecked.default : _circleUnchecked.default,
-    size: 25
-  }), /*#__PURE__*/_react.default.createElement("div", {
-    className: "content"
-  }, /*#__PURE__*/_react.default.createElement("span", null, t('challenge.card.ongoing.quiz')), /*#__PURE__*/_react.default.createElement(_StarsContainer.default, {
-    result: userChallenge.progress.quizProgress
-  }))), /*#__PURE__*/_react.default.createElement("button", {
-    title: t('challenge.card.ongoing.exploration'),
-    tabIndex: userChallenge.progress.explorationProgress === 5 ? -1 : 0,
-    className: (0, _classnames.default)('smallCard explorationCard', (0, _defineProperty2.default)({}, 'finished', userChallenge.progress.explorationProgress === 5)),
-    onClick: goExploration
-  }, /*#__PURE__*/_react.default.createElement(_StyledIcon.default, {
-    className: "cardIcon",
-    icon: userChallenge.progress.explorationProgress === 5 ? _circleChecked.default : _circleUnchecked.default,
-    size: 25
-  }), userChallenge.exploration.state === _userExploration.UserExplorationState.NOTIFICATION && /*#__PURE__*/_react.default.createElement("div", {
-    className: "notifChallenge"
-  }, "1"), /*#__PURE__*/_react.default.createElement("div", {
-    className: "content"
-  }, /*#__PURE__*/_react.default.createElement("span", null, t('challenge.card.ongoing.exploration')), /*#__PURE__*/_react.default.createElement(_StarsContainer.default, {
-    result: userChallenge.progress.explorationProgress
-  }))), /*#__PURE__*/_react.default.createElement("button", {
-    title: t('challenge.card.ongoing.action'),
-    tabIndex: userChallenge.progress.actionProgress === 5 ? -1 : 0,
-    className: (0, _classnames.default)('smallCard actionCard', (0, _defineProperty2.default)({}, 'finished', userChallenge.progress.actionProgress === 5)),
-    onClick: goAction
-  }, /*#__PURE__*/_react.default.createElement(_StyledIcon.default, {
-    className: "cardIcon",
-    icon: userChallenge.progress.actionProgress === 5 ? _circleChecked.default : _circleUnchecked.default,
-    size: 25
-  }), userChallenge.action.state === _userAction.UserActionState.NOTIFICATION && /*#__PURE__*/_react.default.createElement("div", {
-    className: "notifChallenge"
-  }, "1"), /*#__PURE__*/_react.default.createElement("div", {
-    className: "content"
-  }, /*#__PURE__*/_react.default.createElement("span", null, t('challenge.card.ongoing.action')), /*#__PURE__*/_react.default.createElement(_StarsContainer.default, {
-    result: userChallenge.progress.actionProgress
-  }))), userChallenge.progress.actionProgress + userChallenge.progress.explorationProgress + userChallenge.progress.quizProgress >= userChallenge.target && userChallenge.duel.state === _userDuel.UserDuelState.UNLOCKED || userChallenge.duel.state === _userDuel.UserDuelState.NO_REF_PERIOD_VALID ? /*#__PURE__*/_react.default.createElement("button", {
+
+  var quizButton = function quizButton() {
+    return /*#__PURE__*/_react.default.createElement("button", {
+      title: t('challenge.card.ongoing.quiz'),
+      tabIndex: userChallenge.progress.quizProgress === 5 ? -1 : 0,
+      className: (0, _classnames.default)('smallCard', (0, _defineProperty2.default)({}, 'finished', userChallenge.progress.quizProgress === 5)),
+      onClick: goQuiz
+    }, /*#__PURE__*/_react.default.createElement(_StyledIcon.default, {
+      className: "cardIcon",
+      icon: userChallenge.progress.quizProgress === 5 ? _circleChecked.default : _circleUnchecked.default,
+      size: 25
+    }), /*#__PURE__*/_react.default.createElement("div", {
+      className: "content"
+    }, /*#__PURE__*/_react.default.createElement("span", null, t('challenge.card.ongoing.quiz')), /*#__PURE__*/_react.default.createElement(_StarsContainer.default, {
+      result: userChallenge.progress.quizProgress
+    })));
+  };
+
+  var explorationButton = function explorationButton() {
+    return /*#__PURE__*/_react.default.createElement("button", {
+      title: t('challenge.card.ongoing.exploration'),
+      tabIndex: userChallenge.progress.explorationProgress === 5 ? -1 : 0,
+      className: (0, _classnames.default)('smallCard explorationCard', (0, _defineProperty2.default)({}, 'finished', userChallenge.progress.explorationProgress === 5)),
+      onClick: goExploration
+    }, /*#__PURE__*/_react.default.createElement(_StyledIcon.default, {
+      className: "cardIcon",
+      icon: userChallenge.progress.explorationProgress === 5 ? _circleChecked.default : _circleUnchecked.default,
+      size: 25
+    }), userChallenge.exploration.state === _userExploration.UserExplorationState.NOTIFICATION && /*#__PURE__*/_react.default.createElement("div", {
+      className: "notifChallenge"
+    }, "1"), /*#__PURE__*/_react.default.createElement("div", {
+      className: "content"
+    }, /*#__PURE__*/_react.default.createElement("span", null, t('challenge.card.ongoing.exploration')), /*#__PURE__*/_react.default.createElement(_StarsContainer.default, {
+      result: userChallenge.progress.explorationProgress
+    })));
+  };
+
+  var actionButton = function actionButton() {
+    return /*#__PURE__*/_react.default.createElement("button", {
+      title: t('challenge.card.ongoing.action'),
+      tabIndex: userChallenge.progress.actionProgress === 5 ? -1 : 0,
+      className: (0, _classnames.default)('smallCard actionCard', (0, _defineProperty2.default)({}, 'finished', userChallenge.progress.actionProgress === 5)),
+      onClick: goAction
+    }, /*#__PURE__*/_react.default.createElement(_StyledIcon.default, {
+      className: "cardIcon",
+      icon: userChallenge.progress.actionProgress === 5 ? _circleChecked.default : _circleUnchecked.default,
+      size: 25
+    }), userChallenge.action.state === _userAction.UserActionState.NOTIFICATION && /*#__PURE__*/_react.default.createElement("div", {
+      className: "notifChallenge"
+    }, "1"), /*#__PURE__*/_react.default.createElement("div", {
+      className: "content"
+    }, /*#__PURE__*/_react.default.createElement("span", null, t('challenge.card.ongoing.action')), /*#__PURE__*/_react.default.createElement(_StarsContainer.default, {
+      result: userChallenge.progress.actionProgress
+    })));
+  };
+
+  var duelButton = /*#__PURE__*/_react.default.createElement("button", {
     className: "smallCard goDuel",
     onClick: goDuel
   }, isLoading ? /*#__PURE__*/_react.default.createElement("div", {
@@ -14271,44 +14258,56 @@ var ChallengeCardOnGoing = function ChallengeCardOnGoing(_ref) {
     className: "challengeminIcon",
     icon: challengeIcon,
     size: 60
-  }))) : userChallenge.duel.state === _userDuel.UserDuelState.ONGOING && !isDone ? /*#__PURE__*/_react.default.createElement("div", {
-    className: 'smallCard duelCard active',
-    onClick: goDuel
+  })));
+
+  var duelCard = function duelCard(content) {
+    var extraClassName = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : '';
+    return /*#__PURE__*/_react.default.createElement("div", {
+      className: "smallCard duelCard ".concat(extraClassName),
+      onClick: goDuel
+    }, content, /*#__PURE__*/_react.default.createElement(_StyledIcon.default, {
+      className: "circleStar",
+      icon: challengeIcon,
+      size: 60
+    }));
+  };
+
+  var duelContainer = function duelContainer() {
+    if (duel.state === _userDuel.UserDuelState.NO_REF_PERIOD_VALID || actionProgress + explorationProgress + quizProgress >= target && duel.state === _userDuel.UserDuelState.UNLOCKED) {
+      return duelButton;
+    } else if (duel.state === _userDuel.UserDuelState.ONGOING && !isDone) {
+      return duelCard( /*#__PURE__*/_react.default.createElement("div", {
+        className: "finalDuel"
+      }, /*#__PURE__*/_react.default.createElement("span", null, t('challenge.card.ongoing.duel')), /*#__PURE__*/_react.default.createElement("p", {
+        className: "starCount"
+      }, /*#__PURE__*/_react.default.createElement("span", {
+        className: "blueNumber"
+      }, "".concat(duel.userConsumption, " \u20AC  ")), /*#__PURE__*/_react.default.createElement("span", null, " / ".concat(duel.threshold, " \u20AC")))), 'active');
+    } else if (duel.state === _userDuel.UserDuelState.ONGOING && isDone) {
+      return duelCard( /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, /*#__PURE__*/_react.default.createElement("div", {
+        className: "finalDuel result"
+      }, /*#__PURE__*/_react.default.createElement("span", null, t('challenge.card.ongoing.result')), /*#__PURE__*/_react.default.createElement("span", null, t('challenge.card.ongoing.duelDone'))), /*#__PURE__*/_react.default.createElement("div", {
+        className: "notifChallenge"
+      }, "1")), 'active');
+    } else {
+      return duelCard( /*#__PURE__*/_react.default.createElement("p", {
+        className: "starCount"
+      }, /*#__PURE__*/_react.default.createElement(_StyledIcon.default, {
+        icon: _circleStar.default,
+        size: 30
+      }), /*#__PURE__*/_react.default.createElement("span", {
+        className: "blueNumber"
+      }, quizProgress + explorationProgress + actionProgress), /*#__PURE__*/_react.default.createElement("span", null, " / ".concat(target))));
+    }
+  };
+
+  return /*#__PURE__*/_react.default.createElement("div", {
+    className: "cardContent onGoing"
   }, /*#__PURE__*/_react.default.createElement("div", {
-    className: "finalDuel"
-  }, /*#__PURE__*/_react.default.createElement("span", null, t('challenge.card.ongoing.duel')), /*#__PURE__*/_react.default.createElement("p", {
-    className: "starCount"
+    className: "titleBlock"
   }, /*#__PURE__*/_react.default.createElement("span", {
-    className: "blueNumber"
-  }, "".concat(userChallenge.duel.userConsumption, " \u20AC  ")), /*#__PURE__*/_react.default.createElement("span", null, " / ".concat(userChallenge.duel.threshold, " \u20AC")))), /*#__PURE__*/_react.default.createElement(_StyledIcon.default, {
-    className: "circleStar",
-    icon: challengeIcon,
-    size: 60
-  })) : userChallenge.duel.state === _userDuel.UserDuelState.ONGOING && isDone ? /*#__PURE__*/_react.default.createElement("div", {
-    className: 'smallCard duelCard active',
-    onClick: goDuel
-  }, /*#__PURE__*/_react.default.createElement("div", {
-    className: "finalDuel result"
-  }, /*#__PURE__*/_react.default.createElement("span", null, t('challenge.card.ongoing.result')), /*#__PURE__*/_react.default.createElement("span", null, t('challenge.card.ongoing.duelDone'))), /*#__PURE__*/_react.default.createElement(_StyledIcon.default, {
-    className: "duelLocked",
-    icon: challengeIcon,
-    size: 60
-  }), /*#__PURE__*/_react.default.createElement("div", {
-    className: "notifChallenge"
-  }, "1")) : /*#__PURE__*/_react.default.createElement("div", {
-    className: 'smallCard duelCard'
-  }, /*#__PURE__*/_react.default.createElement("p", {
-    className: "starCount"
-  }, /*#__PURE__*/_react.default.createElement(_StyledIcon.default, {
-    icon: _circleStar.default,
-    size: 30
-  }), /*#__PURE__*/_react.default.createElement("span", {
-    className: "blueNumber"
-  }, "".concat(userChallenge.progress.quizProgress + userChallenge.progress.explorationProgress + userChallenge.progress.actionProgress, "  ")), /*#__PURE__*/_react.default.createElement("span", null, " / ".concat(userChallenge.target))), /*#__PURE__*/_react.default.createElement(_StyledIcon.default, {
-    className: "duelLocked",
-    icon: _locked.default,
-    size: 60
-  })), /*#__PURE__*/_react.default.createElement(_ChallengeNoFluidModal.default, {
+    className: "challengeTitle"
+  }, (0, _utils.getChallengeTitleWithLineReturn)(userChallenge.id))), quizButton(), explorationButton(), actionButton(), duelContainer(), /*#__PURE__*/_react.default.createElement(_ChallengeNoFluidModal.default, {
     open: !isOneFluidUp,
     handleCloseClick: toggleNoFluidModal
   }));
@@ -15776,6 +15775,23 @@ var EcogestureSelection = function EcogestureSelection() {
     }, /*#__PURE__*/_react.default.createElement(_Loader.default, null)));
   }
 
+  var renderEcogestureSelection = function renderEcogestureSelection() {
+    if (indexEcogesture <= ecogestureList.length - 1) {
+      return /*#__PURE__*/_react.default.createElement(_EcogestureSelectionDetail.default, {
+        ecogesture: ecogestureList[indexEcogesture],
+        validate: validateChoice,
+        title: getTitle()
+      });
+    } else if (totalAvailable > totalViewed + ecogestureList.length) {
+      return /*#__PURE__*/_react.default.createElement(_EcogestureSelectionRestart.default, {
+        listLength: ecogestureList.length,
+        restart: restartSelection
+      });
+    } else {
+      return /*#__PURE__*/_react.default.createElement(_EcogestureSelectionEnd.default, null);
+    }
+  };
+
   return /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, /*#__PURE__*/_react.default.createElement(_CozyBar.default, {
     titleKey: 'common.title_ecogestures_choice',
     displayBackArrow: true,
@@ -15790,14 +15806,7 @@ var EcogestureSelection = function EcogestureSelection() {
     className: "eg-selection-header"
   }, indexEcogesture <= ecogestureList.length - 1 ? "".concat(totalViewed + indexEcogesture + 1, "/").concat(totalAvailable) : '')), /*#__PURE__*/_react.default.createElement(_Content.default, {
     height: headerHeight
-  }, indexEcogesture <= ecogestureList.length - 1 ? /*#__PURE__*/_react.default.createElement(_EcogestureSelectionDetail.default, {
-    ecogesture: ecogestureList[indexEcogesture],
-    validate: validateChoice,
-    title: getTitle()
-  }) : totalAvailable > totalViewed + ecogestureList.length ? /*#__PURE__*/_react.default.createElement(_EcogestureSelectionRestart.default, {
-    listLength: ecogestureList.length,
-    restart: restartSelection
-  }) : /*#__PURE__*/_react.default.createElement(_EcogestureSelectionEnd.default, null)), openEcogestureSelectionModal && /*#__PURE__*/_react.default.createElement(_EcogestureSelectionModal.default, {
+  }, renderEcogestureSelection()), openEcogestureSelectionModal && /*#__PURE__*/_react.default.createElement(_EcogestureSelectionModal.default, {
     open: openEcogestureSelectionModal,
     handleCloseClick: function handleCloseClick() {
       return setOpenEcogestureSelectionModal(false);
@@ -17179,13 +17188,6 @@ var ProfileEcogestureFormService = /*#__PURE__*/function () {
     key: "getAnswerForStep",
     value: function getAnswerForStep(step) {
       switch (step) {
-        case _ecogestureForm.EcogestureStepForm.HEATING_TYPE:
-          return {
-            type: _ecogestureForm.ProfileEcogestureAnswerType.SINGLE_CHOICE,
-            attribute: 'heating',
-            choices: Object.values(_profileType.IndividualOrCollective)
-          };
-
         case _ecogestureForm.EcogestureStepForm.WARMING_FLUID:
           return {
             type: _ecogestureForm.ProfileEcogestureAnswerType.SINGLE_CHOICE,
@@ -17207,6 +17209,7 @@ var ProfileEcogestureFormService = /*#__PURE__*/function () {
             choices: Object.keys(_ecogesture.EquipmentType)
           };
 
+        case _ecogestureForm.EcogestureStepForm.HEATING_TYPE:
         default:
           return {
             type: _ecogestureForm.ProfileEcogestureAnswerType.SINGLE_CHOICE,
@@ -18447,10 +18450,6 @@ var Loader = function Loader(_ref) {
   var variant = color;
 
   switch (fluidType) {
-    case _fluid.FluidType.MULTIFLUID:
-      variant = 'gold';
-      break;
-
     case _fluid.FluidType.ELECTRICITY:
       variant = 'elec';
       break;
@@ -21142,6 +21141,12 @@ function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (O
 
 function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { (0, _defineProperty2.default)(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
 
+function _createForOfIteratorHelper(o, allowArrayLike) { var it = typeof Symbol !== "undefined" && o[Symbol.iterator] || o["@@iterator"]; if (!it) { if (Array.isArray(o) || (it = _unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === "number") { if (it) o = it; var i = 0; var F = function F() {}; return { s: F, n: function n() { if (i >= o.length) return { done: true }; return { done: false, value: o[i++] }; }, e: function e(_e) { throw _e; }, f: F }; } throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); } var normalCompletion = true, didErr = false, err; return { s: function s() { it = it.call(o); }, n: function n() { var step = it.next(); normalCompletion = step.done; return step; }, e: function e(_e2) { didErr = true; err = _e2; }, f: function f() { try { if (!normalCompletion && it.return != null) it.return(); } finally { if (didErr) throw err; } } }; }
+
+function _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === "string") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === "Object" && o.constructor) n = o.constructor.name; if (n === "Map" || n === "Set") return Array.from(o); if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }
+
+function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }
+
 var logStack = _cozyLogger.default.namespace('duelService');
 
 var DuelService = /*#__PURE__*/function () {
@@ -21377,7 +21382,8 @@ var DuelService = /*#__PURE__*/function () {
     key: "deleteAllDuelEntities",
     value: function () {
       var _deleteAllDuelEntities = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee5() {
-        var dueles, index, errorMessage;
+        var duels, _iterator, _step, duel, errorMessage;
+
         return _regenerator.default.wrap(function _callee5$(_context5) {
           while (1) {
             switch (_context5.prev = _context5.next) {
@@ -21387,9 +21393,9 @@ var DuelService = /*#__PURE__*/function () {
                 return this.getAllDuelEntities();
 
               case 3:
-                dueles = _context5.sent;
+                duels = _context5.sent;
 
-                if (dueles) {
+                if (duels) {
                   _context5.next = 6;
                   break;
                 }
@@ -21397,42 +21403,62 @@ var DuelService = /*#__PURE__*/function () {
                 return _context5.abrupt("return", true);
 
               case 6:
-                index = 0;
+                _iterator = _createForOfIteratorHelper(duels);
+                _context5.prev = 7;
 
-              case 7:
-                if (!(index < dueles.length)) {
-                  _context5.next = 13;
+                _iterator.s();
+
+              case 9:
+                if ((_step = _iterator.n()).done) {
+                  _context5.next = 15;
                   break;
                 }
 
-                _context5.next = 10;
-                return this._client.destroy(dueles[index]);
+                duel = _step.value;
+                _context5.next = 13;
+                return this._client.destroy(duel);
 
-              case 10:
-                index++;
-                _context5.next = 7;
+              case 13:
+                _context5.next = 9;
                 break;
 
-              case 13:
+              case 15:
+                _context5.next = 20;
+                break;
+
+              case 17:
+                _context5.prev = 17;
+                _context5.t0 = _context5["catch"](7);
+
+                _iterator.e(_context5.t0);
+
+              case 20:
+                _context5.prev = 20;
+
+                _iterator.f();
+
+                return _context5.finish(20);
+
+              case 23:
                 return _context5.abrupt("return", true);
 
-              case 16:
-                _context5.prev = 16;
-                _context5.t0 = _context5["catch"](0);
-                errorMessage = "deleteAllDuelEntities:".concat(JSON.stringify(_context5.t0));
+              case 26:
+                _context5.prev = 26;
+                _context5.t1 = _context5["catch"](0);
+                errorMessage = "deleteAllDuelEntities:".concat(JSON.stringify(_context5.t1));
                 logStack('error', errorMessage);
 
                 _logger.default.error(errorMessage);
 
                 Sentry.captureException(errorMessage);
-                throw _context5.t0;
+                throw _context5.t1;
 
-              case 23:
+              case 33:
               case "end":
                 return _context5.stop();
             }
           }
-        }, _callee5, this, [[0, 16]]);
+        }, _callee5, this, [[0, 26], [7, 17, 20, 23]]);
       }));
 
       function deleteAllDuelEntities() {
@@ -23247,37 +23273,49 @@ function TextAxis(_ref) {
       })));
 
     case _timeStep.TimeStep.DAY:
-      return /*#__PURE__*/_react.default.createElement("text", {
-        y: "10",
-        dy: "0.71em",
-        transform: "translate(".concat(width, ")")
-      }, displayAllDays ? /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, /*#__PURE__*/_react.default.createElement("tspan", {
-        className: style,
-        x: "0",
-        textAnchor: "middle"
-      }, dataload.date.toLocaleString({
-        weekday: 'narrow'
-      })), /*#__PURE__*/_react.default.createElement("tspan", {
-        className: style,
-        x: "0",
-        dy: "1.2em",
-        textAnchor: "middle"
-      }, dataload.date.toLocaleString({
-        day: 'numeric'
-      }))) : dataload.date.weekday === 1 ? /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, /*#__PURE__*/_react.default.createElement("tspan", {
-        className: style,
-        x: "0",
-        textAnchor: "middle"
-      }, (0, _lodash.capitalize)(dataload.date.toLocaleString({
-        weekday: 'short'
-      }).substring(0, 3))), /*#__PURE__*/_react.default.createElement("tspan", {
-        className: style,
-        x: "0",
-        dy: "1.2em",
-        textAnchor: "middle"
-      }, dataload.date.toLocaleString({
-        day: 'numeric'
-      }))) : null);
+      {
+        var renderText = function renderText() {
+          if (displayAllDays) {
+            return /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, /*#__PURE__*/_react.default.createElement("tspan", {
+              className: style,
+              x: "0",
+              textAnchor: "middle"
+            }, dataload.date.toLocaleString({
+              weekday: 'narrow'
+            })), /*#__PURE__*/_react.default.createElement("tspan", {
+              className: style,
+              x: "0",
+              dy: "1.2em",
+              textAnchor: "middle"
+            }, dataload.date.toLocaleString({
+              day: 'numeric'
+            })));
+          } else if (dataload.date.weekday === 1) {
+            return /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, /*#__PURE__*/_react.default.createElement("tspan", {
+              className: style,
+              x: "0",
+              textAnchor: "middle"
+            }, (0, _lodash.capitalize)(dataload.date.toLocaleString({
+              weekday: 'short'
+            }).substring(0, 3))), /*#__PURE__*/_react.default.createElement("tspan", {
+              className: style,
+              x: "0",
+              dy: "1.2em",
+              textAnchor: "middle"
+            }, dataload.date.toLocaleString({
+              day: 'numeric'
+            })));
+          }
+
+          return null;
+        };
+
+        return /*#__PURE__*/_react.default.createElement("text", {
+          y: "10",
+          dy: "0.71em",
+          transform: "translate(".concat(width, ")")
+        }, renderText());
+      }
 
     case _timeStep.TimeStep.WEEK:
       return /*#__PURE__*/_react.default.createElement("text", {
@@ -23954,6 +23992,12 @@ function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "functio
 
 function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || typeof obj !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
 
+function _createForOfIteratorHelper(o, allowArrayLike) { var it = typeof Symbol !== "undefined" && o[Symbol.iterator] || o["@@iterator"]; if (!it) { if (Array.isArray(o) || (it = _unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === "number") { if (it) o = it; var i = 0; var F = function F() {}; return { s: F, n: function n() { if (i >= o.length) return { done: true }; return { done: false, value: o[i++] }; }, e: function e(_e) { throw _e; }, f: F }; } throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); } var normalCompletion = true, didErr = false, err; return { s: function s() { it = it.call(o); }, n: function n() { var step = it.next(); normalCompletion = step.done; return step; }, e: function e(_e2) { didErr = true; err = _e2; }, f: function f() { try { if (!normalCompletion && it.return != null) it.return(); } finally { if (didErr) throw err; } } }; }
+
+function _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === "string") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === "Object" && o.constructor) n = o.constructor.name; if (n === "Map" || n === "Set") return Array.from(o); if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }
+
+function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }
+
 function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
 
 function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { (0, _defineProperty2.default)(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
@@ -24254,35 +24298,56 @@ var ProfileTypeEntityService = /*#__PURE__*/function () {
     key: "deleteProfileTypes",
     value: function () {
       var _deleteProfileTypes = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee4(profileTypes) {
-        var index, errorMessage;
+        var _iterator, _step, profileType, errorMessage;
+
         return _regenerator.default.wrap(function _callee4$(_context4) {
           while (1) {
             switch (_context4.prev = _context4.next) {
               case 0:
                 _context4.prev = 0;
-                index = 0;
+                _iterator = _createForOfIteratorHelper(profileTypes);
+                _context4.prev = 2;
 
-              case 2:
-                if (!(index < profileTypes.length)) {
-                  _context4.next = 8;
+                _iterator.s();
+
+              case 4:
+                if ((_step = _iterator.n()).done) {
+                  _context4.next = 10;
                   break;
                 }
 
-                _context4.next = 5;
-                return this._client.destroy(profileTypes[index]);
+                profileType = _step.value;
+                _context4.next = 8;
+                return this._client.destroy(profileType);
 
-              case 5:
-                index++;
-                _context4.next = 2;
+              case 8:
+                _context4.next = 4;
                 break;
 
-              case 8:
+              case 10:
+                _context4.next = 15;
+                break;
+
+              case 12:
+                _context4.prev = 12;
+                _context4.t0 = _context4["catch"](2);
+
+                _iterator.e(_context4.t0);
+
+              case 15:
+                _context4.prev = 15;
+
+                _iterator.f();
+
+                return _context4.finish(15);
+
+              case 18:
                 return _context4.abrupt("return", true);
 
-              case 11:
-                _context4.prev = 11;
-                _context4.t0 = _context4["catch"](0);
-                errorMessage = "deleteProfileTypes: ".concat(JSON.stringify(_context4.t0));
+              case 21:
+                _context4.prev = 21;
+                _context4.t1 = _context4["catch"](0);
+                errorMessage = "deleteProfileTypes: ".concat(JSON.stringify(_context4.t1));
                 logStack('error', errorMessage);
 
                 _logger.default.error(errorMessage);
@@ -24290,12 +24355,12 @@ var ProfileTypeEntityService = /*#__PURE__*/function () {
                 Sentry.captureException(errorMessage);
                 return _context4.abrupt("return", false);
 
-              case 18:
+              case 28:
               case "end":
                 return _context4.stop();
             }
           }
-        }, _callee4, this, [[0, 11]]);
+        }, _callee4, this, [[0, 21], [2, 12, 15, 18]]);
       }));
 
       function deleteProfileTypes(_x4) {
@@ -29412,7 +29477,7 @@ var ChallengeService = /*#__PURE__*/function () {
           while (1) {
             switch (_context3.prev = _context3.next) {
               case 0:
-                userChallenge = null; // Check if it's a conditionnal exploration
+                userChallenge = null; // Check if it's a conditional exploration
 
                 if (!(exploration.fluid_condition.length > 0)) {
                   _context3.next = 10;
@@ -29712,7 +29777,7 @@ var ChallengeService = /*#__PURE__*/function () {
                 duelService = new _duel2.default(this._client);
                 quizService = new _quiz2.default(this._client);
                 explorationService = new _exploration.default(this._client);
-                buildList = []; // Case UserChallengList is empty
+                buildList = []; // Case UserChallengeList is empty
 
                 if (!(challengeEntityList.length > 0 && userChallengeList.length === 0)) {
                   _context7.next = 55;
@@ -29933,7 +29998,8 @@ var ChallengeService = /*#__PURE__*/function () {
     key: "deleteAllChallengeEntities",
     value: function () {
       var _deleteAllChallengeEntities = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee8() {
-        var challengeEntity, index, errorMessage;
+        var challengeEntity, _iterator5, _step5, entity, errorMessage;
+
         return _regenerator.default.wrap(function _callee8$(_context9) {
           while (1) {
             switch (_context9.prev = _context9.next) {
@@ -29953,42 +30019,62 @@ var ChallengeService = /*#__PURE__*/function () {
                 return _context9.abrupt("return", true);
 
               case 6:
-                index = 0;
+                _iterator5 = _createForOfIteratorHelper(challengeEntity);
+                _context9.prev = 7;
 
-              case 7:
-                if (!(index < challengeEntity.length)) {
-                  _context9.next = 13;
+                _iterator5.s();
+
+              case 9:
+                if ((_step5 = _iterator5.n()).done) {
+                  _context9.next = 15;
                   break;
                 }
 
-                _context9.next = 10;
-                return this._client.destroy(challengeEntity[index]);
+                entity = _step5.value;
+                _context9.next = 13;
+                return this._client.destroy(entity);
 
-              case 10:
-                index++;
-                _context9.next = 7;
+              case 13:
+                _context9.next = 9;
                 break;
 
-              case 13:
+              case 15:
+                _context9.next = 20;
+                break;
+
+              case 17:
+                _context9.prev = 17;
+                _context9.t0 = _context9["catch"](7);
+
+                _iterator5.e(_context9.t0);
+
+              case 20:
+                _context9.prev = 20;
+
+                _iterator5.f();
+
+                return _context9.finish(20);
+
+              case 23:
                 return _context9.abrupt("return", true);
 
-              case 16:
-                _context9.prev = 16;
-                _context9.t0 = _context9["catch"](0);
-                errorMessage = "deleteAllChallengeEntities :".concat(JSON.stringify(_context9.t0));
+              case 26:
+                _context9.prev = 26;
+                _context9.t1 = _context9["catch"](0);
+                errorMessage = "deleteAllChallengeEntities :".concat(JSON.stringify(_context9.t1));
                 logStack('error', errorMessage);
 
                 _logger.default.error(errorMessage);
 
                 Sentry.captureException(errorMessage);
-                throw _context9.t0;
+                throw _context9.t1;
 
-              case 23:
+              case 33:
               case "end":
                 return _context9.stop();
             }
           }
-        }, _callee8, this, [[0, 16]]);
+        }, _callee8, this, [[0, 26], [7, 17, 20, 23]]);
       }));
 
       function deleteAllChallengeEntities() {
@@ -31947,6 +32033,8 @@ var _CozyBar = _interopRequireDefault(__webpack_require__("CJMG"));
 
 var _Header = _interopRequireDefault(__webpack_require__("frrP"));
 
+var _Loader = _interopRequireDefault(__webpack_require__("Ra/y"));
+
 var _ProfileTypeFinished = _interopRequireDefault(__webpack_require__("dULq"));
 
 var _ProfileTypeFormMultiChoice = _interopRequireDefault(__webpack_require__("Mqix"));
@@ -32160,9 +32248,9 @@ var ProfileTypeView = function ProfileTypeView() {
     height: headerHeight
   }, /*#__PURE__*/_react.default.createElement("div", {
     className: 'profile-type-container'
-  }, isLoading ? null : step !== _profileType2.ProfileTypeStepForm.END ? selectForm() : /*#__PURE__*/_react.default.createElement(_ProfileTypeFinished.default, {
+  }, isLoading && /*#__PURE__*/_react.default.createElement(_Loader.default, null), !isLoading && /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, step !== _profileType2.ProfileTypeStepForm.END && selectForm(), step === _profileType2.ProfileTypeStepForm.END && /*#__PURE__*/_react.default.createElement(_ProfileTypeFinished.default, {
     profileType: profileType
-  }))));
+  })))));
 };
 
 var _default = ProfileTypeView;
@@ -32715,18 +32803,18 @@ var UncomingBar = function UncomingBar(_ref) {
     setAnimationEnded(true);
   };
 
-  var barClass = animationEnded ? "bar-UNCOMING " : "bar-UNCOMING bounce-".concat((browser === null || browser === void 0 ? void 0 : browser.name) !== 'edge' ? '1' : '3', " delay--").concat(index % 13);
+  var barClass = "bar-UNCOMING ".concat(animationEnded ? '' : "bounce-".concat((browser === null || browser === void 0 ? void 0 : browser.name) !== 'edge' ? '1' : '3', " delay--").concat(index % 13));
 
   var getBandWidth = function getBandWidth() {
     return xScale.bandwidth();
   };
 
-  var topRoundedRectDashedLine = function topRoundedRectDashedLine(_x, _y, _width, _height) {
-    var radius = _height > 4 ? 4 : _height / 4;
-    return 'M' + _x + ',' + (_y + radius + (_height - radius)) + 'v-' + (_height - radius) + ' a' + radius + ',' + radius + ' 0 0 1 ' + radius + ',' + -radius + 'h' + (_width - 2 * radius) + 'a' + radius + ',' + radius + ' 0 0 1 ' + radius + ',' + radius + 'v' + (_height - radius);
+  var topRoundedRectDashedLine = function topRoundedRectDashedLine(x, y, width, height) {
+    var radius = height > 4 ? 4 : height / 4;
+    return 'M' + x + ',' + (y + radius + (height - radius)) + 'v-' + (height - radius) + ' a' + radius + ',' + radius + ' 0 0 1 ' + radius + ',' + -radius + 'h' + (width - 2 * radius) + 'a' + radius + ',' + radius + ' 0 0 1 ' + radius + ',' + radius + 'v' + (height - radius);
   };
 
-  return /*#__PURE__*/_react.default.createElement("g", null, height > 0 ? /*#__PURE__*/_react.default.createElement("g", {
+  return /*#__PURE__*/_react.default.createElement("g", null, height > 0 && /*#__PURE__*/_react.default.createElement("g", {
     transform: "translate(".concat(xScale(dataload.date.toLocaleString(_luxon.DateTime.DATETIME_SHORT)), ", -40)")
   }, /*#__PURE__*/_react.default.createElement("rect", {
     x: "0",
@@ -32735,7 +32823,7 @@ var UncomingBar = function UncomingBar(_ref) {
     height: height + 40,
     className: "background-false",
     fill: "#E0E0E0"
-  })) : null, height > 0 && dataload.value && dataload.value >= 0 ? /*#__PURE__*/_react.default.createElement("g", {
+  })), height > 0 && dataload.value >= 0 && /*#__PURE__*/_react.default.createElement("g", {
     transform: "translate(".concat(xScale(dataload.date.toLocaleString(_luxon.DateTime.DATETIME_SHORT)), ", ").concat(yScale(dataload.value), ")")
   }, /*#__PURE__*/_react.default.createElement("path", {
     d: topRoundedRectDashedLine(0, 0, getBandWidth(), height - yScale(dataload.value)),
@@ -32744,7 +32832,7 @@ var UncomingBar = function UncomingBar(_ref) {
     stroke: '#61f0f2',
     onAnimationEnd: onAnimationEnd,
     className: barClass
-  })) : null);
+  })));
 };
 
 var _default = UncomingBar;
@@ -32904,9 +32992,43 @@ var Bar = function Bar(_ref) {
   var tempXScale = xScale(dataload.date.toLocaleString(_luxon.DateTime.DATETIME_SHORT));
   var xScaleValue = tempXScale ? tempXScale : 0;
   var isSelectedDate = isDuel ? false : new _dateChart.default().compareStepDate(timeStep, selectedDate, dataload.date);
-  var barClass = clicked ? "bar-".concat(fluidStyle, " ").concat(weekdays, " selected bounce-").concat(browser && browser.name !== 'edge' ? '2' : '3', " delay") : isSelectedDate ? animationEnded ? "bar-".concat(fluidStyle, " ").concat(weekdays, " selected") : "bar-".concat(fluidStyle, " ").concat(weekdays, " selected bounce-").concat(browser && browser.name !== 'edge' ? '1' : '3', " delay--").concat(index % 13) : animationEnded ? "bar-".concat(fluidStyle, " ").concat(weekdays) : "bar-".concat(fluidStyle, " ").concat(weekdays, " bounce-").concat(browser && browser.name !== 'edge' ? '1' : '3', " delay--").concat(index % 13);
+  var delayIndex = index % 13;
+  var edgeBrowser = browser && browser.name !== 'edge';
+  var selected = isSelectedDate ? ' selected' : '';
+  var bounce = edgeBrowser ? '1' : '3';
+
+  var getBarClass = function getBarClass() {
+    var bounceDelay = " bounce-".concat(bounce, " delay--").concat(delayIndex);
+    var fluidWeekdays = "bar-".concat(fluidStyle, " ").concat(weekdays);
+
+    if (clicked) {
+      return "".concat(fluidWeekdays).concat(selected, " bounce-2 delay");
+    } else if (animationEnded) {
+      return "".concat(fluidWeekdays).concat(selected);
+    }
+
+    return "".concat(fluidWeekdays).concat(bounceDelay).concat(selected);
+  };
+
+  var getCompareBarClass = function getCompareBarClass() {
+    var bounceValue = clicked ? edgeBrowser ? '2' : '3' : bounce;
+    var bounceDelay = " bounce-".concat(bounceValue, " delay--").concat(clicked ? 0 : delayIndex);
+    var fluidStyleClass = "bar-compare-".concat(fluidStyle);
+
+    if (clicked) {
+      return "".concat(fluidStyleClass, " ").concat(selected).concat(bounceDelay);
+    }
+
+    if (isSelectedDate) {
+      return compareAnimationEnded ? "".concat(fluidStyleClass, " ").concat(selected) : "".concat(fluidStyleClass, " ").concat(selected).concat(bounceDelay);
+    }
+
+    return compareAnimationEnded ? fluidStyleClass : "".concat(fluidStyleClass, " ").concat(bounceDelay);
+  };
+
+  var compareBarClass = getCompareBarClass();
+  var barClass = getBarClass();
   var barBackgroundClass = isSelectedDate;
-  var compareBarClass = clicked ? "bar-compare-".concat(fluidStyle, " selected bounce-").concat(browser && browser.name !== 'edge' ? '2' : '3', " delay--0") : isSelectedDate ? compareAnimationEnded ? "bar-compare-".concat(fluidStyle, " selected") : "bar-compare-".concat(fluidStyle, " selected bounce-").concat(browser && browser.name !== 'edge' ? '1' : '3', " delay--").concat(index % 13) : compareAnimationEnded ? "bar-compare-".concat(fluidStyle, " ") : "bar-compare-".concat(fluidStyle, " bounce-").concat(browser && browser.name !== 'edge' ? '1' : '3', " delay--").concat(index % 13);
 
   var getBandWidth = function getBandWidth() {
     return showCompare ? xScale.bandwidth() / 2 : xScale.bandwidth();
@@ -34108,6 +34230,71 @@ var result = _node_modules_svg_sprite_loader_runtime_browser_sprite_build_js__WE
 
 /***/ }),
 
+/***/ "tWvI":
+/***/ (function(module, exports, __webpack_require__) {
+
+"use strict";
+
+
+var _interopRequireDefault = __webpack_require__("TqRt");
+
+Object.defineProperty(exports, "__esModule", {
+  value: true
+});
+exports.useChartResize = void 0;
+
+var _slicedToArray2 = _interopRequireDefault(__webpack_require__("J4zp"));
+
+var _react = __webpack_require__("q1tI");
+
+var useChartResize = function useChartResize(ref) {
+  var maxHeight = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 300;
+  var maxWidth = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 940;
+  var loading = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : false;
+
+  var _useState = (0, _react.useState)(0),
+      _useState2 = (0, _slicedToArray2.default)(_useState, 2),
+      width = _useState2[0],
+      setWidth = _useState2[1];
+
+  var _useState3 = (0, _react.useState)(0),
+      _useState4 = (0, _slicedToArray2.default)(_useState3, 2),
+      height = _useState4[0],
+      setHeight = _useState4[1];
+
+  (0, _react.useEffect)(function () {
+    function handleResize() {
+      if (!loading) {
+        var _ref$current$offsetWi, _ref$current, _ref$current$offsetHe, _ref$current2;
+
+        var chartContainerWidth = (_ref$current$offsetWi = ref === null || ref === void 0 ? void 0 : (_ref$current = ref.current) === null || _ref$current === void 0 ? void 0 : _ref$current.offsetWidth) !== null && _ref$current$offsetWi !== void 0 ? _ref$current$offsetWi : 400;
+        var chartContainerHeight = (_ref$current$offsetHe = ref === null || ref === void 0 ? void 0 : (_ref$current2 = ref.current) === null || _ref$current2 === void 0 ? void 0 : _ref$current2.offsetHeight) !== null && _ref$current$offsetHe !== void 0 ? _ref$current$offsetHe : 200;
+
+        var _width = Math.min(chartContainerWidth, maxWidth);
+
+        var _height = Math.min(chartContainerHeight, maxHeight);
+
+        setWidth(_width);
+        setHeight(_height);
+      }
+    }
+
+    handleResize();
+    window.addEventListener('resize', handleResize);
+    return function () {
+      return window.removeEventListener('resize', handleResize);
+    };
+  }, [loading]);
+  return {
+    width: width,
+    height: height
+  };
+};
+
+exports.useChartResize = useChartResize;
+
+/***/ }),
+
 /***/ "tuNa":
 /***/ (function(module, __webpack_exports__, __webpack_require__) {
 
@@ -37382,6 +37569,12 @@ function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (O
 
 function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { (0, _defineProperty2.default)(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
 
+function _createForOfIteratorHelper(o, allowArrayLike) { var it = typeof Symbol !== "undefined" && o[Symbol.iterator] || o["@@iterator"]; if (!it) { if (Array.isArray(o) || (it = _unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === "number") { if (it) o = it; var i = 0; var F = function F() {}; return { s: F, n: function n() { if (i >= o.length) return { done: true }; return { done: false, value: o[i++] }; }, e: function e(_e) { throw _e; }, f: F }; } throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); } var normalCompletion = true, didErr = false, err; return { s: function s() { it = it.call(o); }, n: function n() { var step = it.next(); normalCompletion = step.done; return step; }, e: function e(_e2) { didErr = true; err = _e2; }, f: function f() { try { if (!normalCompletion && it.return != null) it.return(); } finally { if (didErr) throw err; } } }; }
+
+function _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === "string") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === "Object" && o.constructor) n = o.constructor.name; if (n === "Map" || n === "Set") return Array.from(o); if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }
+
+function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }
+
 var ExplorationService = /*#__PURE__*/function () {
   function ExplorationService(_client) {
     (0, _classCallCheck2.default)(this, ExplorationService);
@@ -37480,7 +37673,8 @@ var ExplorationService = /*#__PURE__*/function () {
     key: "deleteAllExplorationEntities",
     value: function () {
       var _deleteAllExplorationEntities = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee3() {
-        var explorations, index;
+        var explorations, _iterator, _step, exploration;
+
         return _regenerator.default.wrap(function _callee3$(_context3) {
           while (1) {
             switch (_context3.prev = _context3.next) {
@@ -37492,35 +37686,55 @@ var ExplorationService = /*#__PURE__*/function () {
                 explorations = _context3.sent;
 
                 if (!explorations) {
-                  _context3.next = 11;
+                  _context3.next = 21;
                   break;
                 }
 
-                index = 0;
+                _iterator = _createForOfIteratorHelper(explorations);
+                _context3.prev = 5;
 
-              case 5:
-                if (!(index < explorations.length)) {
-                  _context3.next = 11;
+                _iterator.s();
+
+              case 7:
+                if ((_step = _iterator.n()).done) {
+                  _context3.next = 13;
                   break;
                 }
 
-                _context3.next = 8;
-                return this._client.destroy(explorations[index]);
+                exploration = _step.value;
+                _context3.next = 11;
+                return this._client.destroy(exploration);
 
-              case 8:
-                index++;
-                _context3.next = 5;
+              case 11:
+                _context3.next = 7;
                 break;
 
-              case 11:
+              case 13:
+                _context3.next = 18;
+                break;
+
+              case 15:
+                _context3.prev = 15;
+                _context3.t0 = _context3["catch"](5);
+
+                _iterator.e(_context3.t0);
+
+              case 18:
+                _context3.prev = 18;
+
+                _iterator.f();
+
+                return _context3.finish(18);
+
+              case 21:
                 return _context3.abrupt("return", true);
 
-              case 12:
+              case 22:
               case "end":
                 return _context3.stop();
             }
           }
-        }, _callee3, this);
+        }, _callee3, this, [[5, 15, 18, 21]]);
       }));
 
       function deleteAllExplorationEntities() {
diff --git a/index.html b/index.html
index 50e95fd81..9dfd42d45 100644
--- a/index.html
+++ b/index.html
@@ -1 +1 @@
-<!DOCTYPE html><html lang="{{.Locale}}"><head><meta charset="utf-8"><title>Ecolyo</title><link rel="icon" type="image/png" href="/favicon-32x32.png" sizes="32x32"><link rel="icon" type="image/png" href="/favicon-16x16.png" sizes="16x16"><!-- PWA Manifest --><link rel="manifest" href="/manifest.json" crossorigin="use-credentials"><link rel="mask-icon" href="/safari-pinned-tab.svg" color="#297EF2"><meta name="viewport" content="width=device-width,height=device-height,initial-scale=1,viewport-fit=cover"><!-- PWA Chrome --><link rel="icon" sizes="192x192" href="/android-chrome-192x192.png"><link rel="icon" sizes="512x512" href="/android-chrome-512x512.png"><!-- PWA iOS --><link rel="apple-touch-icon" sizes="180x180" href="/apple-touch-icon.png"><link rel="apple-touch-startup-image" href="/apple-touch-icon.png"><meta name="apple-mobile-web-app-title" content="Ecolyo"><meta name="apple-mobile-web-app-capable" content="yes"><meta name="apple-mobile-web-app-status-bar-style" content="black"><!-- PWA Colors --><meta name="theme-color" content="#343641"><meta name="background-color" content="#121212">{{.ThemeCSS}} {{.CozyBar}}<script src="//{{.Domain}}/assets/js/piwik.js"></script></head><body><div role="application" class="application" data-cozy="{{.CozyData}}"><script src="vendors/ecolyo.d332a37d84cf028b68a7.js"></script><script src="app/ecolyo.8a385260ba5108570fb1.js"></script></div></body></html>
\ No newline at end of file
+<!DOCTYPE html><html lang="{{.Locale}}"><head><meta charset="utf-8"><title>Ecolyo</title><link rel="icon" type="image/png" href="/favicon-32x32.png" sizes="32x32"><link rel="icon" type="image/png" href="/favicon-16x16.png" sizes="16x16"><!-- PWA Manifest --><link rel="manifest" href="/manifest.json" crossorigin="use-credentials"><link rel="mask-icon" href="/safari-pinned-tab.svg" color="#297EF2"><meta name="viewport" content="width=device-width,height=device-height,initial-scale=1,viewport-fit=cover"><!-- PWA Chrome --><link rel="icon" sizes="192x192" href="/android-chrome-192x192.png"><link rel="icon" sizes="512x512" href="/android-chrome-512x512.png"><!-- PWA iOS --><link rel="apple-touch-icon" sizes="180x180" href="/apple-touch-icon.png"><link rel="apple-touch-startup-image" href="/apple-touch-icon.png"><meta name="apple-mobile-web-app-title" content="Ecolyo"><meta name="apple-mobile-web-app-capable" content="yes"><meta name="apple-mobile-web-app-status-bar-style" content="black"><!-- PWA Colors --><meta name="theme-color" content="#343641"><meta name="background-color" content="#121212">{{.ThemeCSS}} {{.CozyBar}}<script src="//{{.Domain}}/assets/js/piwik.js"></script></head><body><div role="application" class="application" data-cozy="{{.CozyData}}"><script src="vendors/ecolyo.d332a37d84cf028b68a7.js"></script><script src="app/ecolyo.9f5a83d8c8dc6246dc90.js"></script></div></body></html>
\ No newline at end of file
diff --git a/services/aggregatorUsageEvents/ecolyo.js b/services/aggregatorUsageEvents/ecolyo.js
index 5c68f88ed..fe16bc1f8 100644
--- a/services/aggregatorUsageEvents/ecolyo.js
+++ b/services/aggregatorUsageEvents/ecolyo.js
@@ -44171,7 +44171,7 @@ class ChallengeService {
 
 
   async getUpdatedUserChallengeIfExplorationConditionIsValid(exploration, challenge, duel, quiz, fluidStatus) {
-    let userChallenge = null; // Check if it's a conditionnal exploration
+    let userChallenge = null; // Check if it's a conditional exploration
 
     if (exploration.fluid_condition.length > 0) {
       const isConditionVerified = await this.isExplorationConditionVerified(exploration, fluidStatus); // if condition is verified, add exploration to UserChallenge and return it
@@ -44283,7 +44283,7 @@ class ChallengeService {
     const duelService = new _duel.default(this._client);
     const quizService = new _quiz.default(this._client);
     const explorationService = new _exploration.default(this._client);
-    let buildList = []; // Case UserChallengList is empty
+    let buildList = []; // Case UserChallengeList is empty
 
     if (challengeEntityList.length > 0 && userChallengeList.length === 0) {
       for (const challenge of challengeEntityList) {
@@ -44349,8 +44349,8 @@ class ChallengeService {
       const challengeEntity = await this.getAllChallengeEntities();
       if (!challengeEntity) return true;
 
-      for (let index = 0; index < challengeEntity.length; index++) {
-        await this._client.destroy(challengeEntity[index]);
+      for (const entity of challengeEntity) {
+        await this._client.destroy(entity);
       }
 
       return true;
@@ -98544,11 +98544,11 @@ class DuelService {
 
   async deleteAllDuelEntities() {
     try {
-      const dueles = await this.getAllDuelEntities();
-      if (!dueles) return true;
+      const duels = await this.getAllDuelEntities();
+      if (!duels) return true;
 
-      for (let index = 0; index < dueles.length; index++) {
-        await this._client.destroy(dueles[index]);
+      for (const duel of duels) {
+        await this._client.destroy(duel);
       }
 
       return true;
@@ -98773,7 +98773,7 @@ class PerformanceIndicatorService {
       for (const key in performanceIndicators) {
         const performanceIndicator = performanceIndicators[key];
         const fluidType = parseInt(key);
-        currentValue += performanceIndicator.value ? converterService.LoadToEuro(performanceIndicator.value, fluidType, performanceIndicator ? performanceIndicator.price : null) : 0;
+        currentValue += performanceIndicator.value ? converterService.LoadToEuro(performanceIndicator.value, fluidType, (performanceIndicator === null || performanceIndicator === void 0 ? void 0 : performanceIndicator.price) || null) : 0;
       }
 
       if (!performanceIndicators[0].compareValue || !performanceIndicators[1].compareValue || !performanceIndicators[2].compareValue) {
@@ -98782,7 +98782,7 @@ class PerformanceIndicatorService {
         for (const key in performanceIndicators) {
           const performanceIndicator = performanceIndicators[key];
           const fluidType = parseInt(key);
-          compareValue += performanceIndicator.compareValue ? converterService.LoadToEuro(performanceIndicator.compareValue, fluidType, performanceIndicator ? performanceIndicator.price : null) : 0;
+          compareValue += performanceIndicator.compareValue ? converterService.LoadToEuro(performanceIndicator.compareValue, fluidType, (performanceIndicator === null || performanceIndicator === void 0 ? void 0 : performanceIndicator.price) || null) : 0;
         }
       }
     } else {
@@ -98796,7 +98796,7 @@ class PerformanceIndicatorService {
         for (const key in performanceIndicators) {
           const performanceIndicator = performanceIndicators[key];
           const fluidType = parseInt(key);
-          currentValue += performanceIndicator.value ? converterService.LoadToEuro(performanceIndicator.value, fluidType, performanceIndicator ? performanceIndicator.price : null) : 0;
+          currentValue += performanceIndicator.value ? converterService.LoadToEuro(performanceIndicator.value, fluidType, (performanceIndicator === null || performanceIndicator === void 0 ? void 0 : performanceIndicator.price) || null) : 0;
         }
       }
 
@@ -98806,7 +98806,7 @@ class PerformanceIndicatorService {
         for (const key in performanceIndicators) {
           const performanceIndicator = performanceIndicators[key];
           const fluidType = parseInt(key);
-          compareValue += performanceIndicator.compareValue ? converterService.LoadToEuro(performanceIndicator.compareValue, fluidType, performanceIndicator ? performanceIndicator.price : null) : 0;
+          compareValue += performanceIndicator.compareValue ? converterService.LoadToEuro(performanceIndicator.compareValue, fluidType, (performanceIndicator === null || performanceIndicator === void 0 ? void 0 : performanceIndicator.price) || null) : 0;
         }
       }
     }
@@ -101614,8 +101614,8 @@ class ExplorationService {
     const explorations = await this.getAllExplorationEntities();
 
     if (explorations) {
-      for (let index = 0; index < explorations.length; index++) {
-        await this._client.destroy(explorations[index]);
+      for (const exploration of explorations) {
+        await this._client.destroy(exploration);
       }
     }
 
@@ -118349,8 +118349,8 @@ class ProfileTypeEntityService {
 
   async deleteProfileTypes(profileTypes) {
     try {
-      for (let index = 0; index < profileTypes.length; index++) {
-        await this._client.destroy(profileTypes[index]);
+      for (const profileType of profileTypes) {
+        await this._client.destroy(profileType);
       }
 
       return true;
diff --git a/services/enedisHalfHourMonthlyAnalysis/ecolyo.js b/services/enedisHalfHourMonthlyAnalysis/ecolyo.js
index 646139ec4..d7203f04a 100644
--- a/services/enedisHalfHourMonthlyAnalysis/ecolyo.js
+++ b/services/enedisHalfHourMonthlyAnalysis/ecolyo.js
@@ -97241,7 +97241,6 @@ const syncEnedisMonthlyAnalysisDataDoctype = async ({
     }
   } else {
     logStack('info', 'Enedis Minute is not activated or there is no data yet in this doctype');
-    return;
   }
 };
 
-- 
GitLab