diff --git a/3/ecolyo.fa2723ff444c1a46bf69.js b/3/ecolyo.dc910e7784d10a6898bb.js similarity index 97% rename from 3/ecolyo.fa2723ff444c1a46bf69.js rename to 3/ecolyo.dc910e7784d10a6898bb.js index 58fb67a0352de7be2570baa0ba7b406a64127c63..6af5255c18fbb56de97743eb9f06a04ab7eeb689 100644 --- a/3/ecolyo.fa2723ff444c1a46bf69.js +++ b/3/ecolyo.dc910e7784d10a6898bb.js @@ -948,7 +948,7 @@ exports.default = _default; exports = module.exports = __webpack_require__("JPst")(false); // Module -exports.push([module.i, "/** BLACK **/\n/** RED **/\n/** YELLOW **/\n/** ORANGE **/\n/** BLUE **/\n/** GREEN **/\n/** WHITE **/\n/** GREY **/\n/** App colors **/\n/** TABS GRADIENT **/\n/** SCROLLBAR **/\n.totalAnalysis-container {\n display: flex;\n justify-content: center;\n flex-direction: column;\n color: white;\n}\n.totalAnalysis-container .title {\n text-align: center;\n color: #e0e0e0;\n margin-bottom: 1.5rem;\n}\n.totalAnalysis-container .no_data {\n color: #e0e0e0;\n margin-top: 1rem;\n}\n.totalAnalysis-container .pie-container {\n text-align: center;\n position: relative;\n margin: auto;\n overflow: visible;\n}\n.totalAnalysis-container svg {\n margin: auto;\n overflow: visible;\n}\n.totalAnalysis-container .pie-center {\n box-sizing: border-box;\n position: absolute;\n border-radius: 50%;\n background: #121212;\n z-index: 5;\n padding: 1rem;\n display: flex;\n flex-direction: column;\n justify-content: center;\n align-items: center;\n}\n.totalAnalysis-container .pie-center .euro-unit {\n margin-left: 0.6rem;\n}\n.totalAnalysis-container .pie-center .date {\n text-transform: uppercase;\n color: #a0a0a0;\n display: inline-block;\n margin: 0.5rem 0;\n}\n.totalAnalysis-container .pie-center .estimated {\n display: block;\n text-decoration: underline;\n}\n.totalAnalysis-container .pie-center .circle {\n box-sizing: border-box;\n border: 1px solid #7b7b7b;\n position: absolute;\n border-radius: 50%;\n background: transparent;\n z-index: -1;\n padding: 1rem;\n}\n@media screen and (max-width: 345px) {\n .totalAnalysis-container .pie-center .circle {\n display: none;\n }\n}\n.totalAnalysis-container .total-card-container {\n display: flex;\n justify-content: center;\n margin-top: 1rem;\n}\n.totalAnalysis-container .total-card-container .total-card {\n margin: 1rem;\n display: flex;\n flex-direction: column;\n justify-content: center;\n align-items: center;\n}\n@media screen and (max-width: 350px) {\n .totalAnalysis-container .total-card-container .total-card {\n margin: 0.5rem;\n }\n}\n.totalAnalysis-container .total-card-container .total-card svg {\n margin: 0.7rem 0;\n}\n@media screen and (max-width: 345px) {\n .totalAnalysis-container .text-36-bold {\n font-size: 1.6rem;\n }\n}\n@media screen and (max-width: 345px) {\n .totalAnalysis-container .date {\n font-size: 1rem;\n }\n}\n@media screen and (max-width: 365px) {\n .totalAnalysis-container .text-18-bold {\n font-size: 1rem;\n }\n}\n.totalAnalysis-container .estimation-text {\n cursor: pointer;\n}", ""]); +exports.push([module.i, "/** BLACK **/\n/** RED **/\n/** YELLOW **/\n/** ORANGE **/\n/** BLUE **/\n/** GREEN **/\n/** WHITE **/\n/** GREY **/\n/** App colors **/\n/** TABS GRADIENT **/\n/** SCROLLBAR **/\n.totalAnalysis-container {\n display: flex;\n justify-content: space-around;\n flex-direction: column;\n color: white;\n}\n.totalAnalysis-container .title {\n text-align: center;\n color: #e0e0e0;\n margin-bottom: 1.5rem;\n}\n.totalAnalysis-container .no_data {\n color: #e0e0e0;\n margin-top: 1rem;\n}\n.totalAnalysis-container .pie-container {\n text-align: center;\n position: relative;\n margin: auto;\n overflow: visible;\n}\n.totalAnalysis-container svg {\n margin: auto;\n overflow: visible;\n}\n.totalAnalysis-container .pie-center {\n box-sizing: border-box;\n position: absolute;\n border-radius: 50%;\n background: #121212;\n z-index: 5;\n padding: 1rem;\n display: flex;\n flex-direction: column;\n justify-content: center;\n align-items: center;\n}\n.totalAnalysis-container .pie-center .euro-unit {\n margin-left: 0.6rem;\n}\n.totalAnalysis-container .pie-center .date {\n text-transform: uppercase;\n color: #a0a0a0;\n display: inline-block;\n margin: 0.5rem 0;\n}\n.totalAnalysis-container .pie-center .estimated {\n display: block;\n text-decoration: underline;\n}\n.totalAnalysis-container .pie-center .circle {\n box-sizing: border-box;\n border: 1px solid #7b7b7b;\n position: absolute;\n border-radius: 50%;\n background: transparent;\n z-index: -1;\n padding: 1rem;\n}\n@media screen and (max-width: 345px) {\n .totalAnalysis-container .pie-center .circle {\n display: none;\n }\n}\n.totalAnalysis-container .total-card-container {\n display: flex;\n justify-content: center;\n margin-top: 1rem;\n}\n.totalAnalysis-container .total-card-container .total-card {\n margin: 1rem;\n display: flex;\n flex-direction: column;\n justify-content: center;\n align-items: center;\n}\n@media screen and (max-width: 350px) {\n .totalAnalysis-container .total-card-container .total-card {\n margin: 0.5rem;\n }\n}\n.totalAnalysis-container .total-card-container .total-card svg {\n margin: 0.7rem 0;\n}\n@media screen and (max-width: 345px) {\n .totalAnalysis-container .text-36-bold {\n font-size: 1.6rem;\n }\n}\n@media screen and (max-width: 345px) {\n .totalAnalysis-container .date {\n font-size: 1rem;\n }\n}\n@media screen and (max-width: 365px) {\n .totalAnalysis-container .text-18-bold {\n font-size: 1rem;\n }\n}\n.totalAnalysis-container .estimation-text {\n cursor: pointer;\n}", ""]); @@ -986,6 +986,8 @@ var _slicedToArray2 = _interopRequireDefault(__webpack_require__("J4zp")); var _EstimatedConsumptionModal = _interopRequireDefault(__webpack_require__("ta6n")); +var _Loader = _interopRequireDefault(__webpack_require__("Ra/y")); + var _cozyClient = __webpack_require__("SH7X"); var _I18n = __webpack_require__("buk/"); @@ -1027,20 +1029,25 @@ var TotalAnalysisChart = function TotalAnalysisChart(_ref) { }), analysisMonth = _useAppSelector.analysisMonth; - var _useState = (0, _react.useState)(null), + var _useState = (0, _react.useState)(true), _useState2 = (0, _slicedToArray2.default)(_useState, 2), - dataLoadValueDetailArray = _useState2[0], - setDataLoadValueDetailArray = _useState2[1]; + isLoading = _useState2[0], + setIsLoading = _useState2[1]; - var _useState3 = (0, _react.useState)(0), + var _useState3 = (0, _react.useState)(null), _useState4 = (0, _slicedToArray2.default)(_useState3, 2), - totalLoadValue = _useState4[0], - setTotalLoadValue = _useState4[1]; + dataLoadValueDetailArray = _useState4[0], + setDataLoadValueDetailArray = _useState4[1]; - var _useState5 = (0, _react.useState)(false), + var _useState5 = (0, _react.useState)(0), _useState6 = (0, _slicedToArray2.default)(_useState5, 2), - openEstimationModal = _useState6[0], - setOpenEstimationModal = _useState6[1]; + totalLoadValue = _useState6[0], + setTotalLoadValue = _useState6[1]; + + var _useState7 = (0, _react.useState)(false), + _useState8 = (0, _slicedToArray2.default)(_useState7, 2), + openEstimationModal = _useState8[0], + setOpenEstimationModal = _useState8[1]; var arcWidth = 30; var radius = Math.min(375, innerWidth - 100); @@ -1080,7 +1087,9 @@ var TotalAnalysisChart = function TotalAnalysisChart(_ref) { setTotalLoadValue(monthTotalData.actualData[0].value); } - case 6: + setIsLoading(false); + + case 7: case "end": return _context.stop(); } @@ -1121,7 +1130,7 @@ var TotalAnalysisChart = function TotalAnalysisChart(_ref) { } }, /*#__PURE__*/_react.default.createElement("div", { className: "text-24-normal title" - }, t('analysis_pie.total')), !dataLoadValueDetailArray ? emptyPieChart() : /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, /*#__PURE__*/_react.default.createElement(_PieChart.default, { + }, t('analysis_pie.total')), isLoading && /*#__PURE__*/_react.default.createElement(_Loader.default, null), !isLoading && !dataLoadValueDetailArray && emptyPieChart(), !isLoading && dataLoadValueDetailArray && /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, /*#__PURE__*/_react.default.createElement(_PieChart.default, { dataloadValueDetailArray: dataLoadValueDetailArray, radius: radius, innerRadius: innerRadius, @@ -1149,7 +1158,7 @@ var TotalAnalysisChart = function TotalAnalysisChart(_ref) { handleCloseClick: function handleCloseClick() { return setOpenEstimationModal(false); } - })), dataLoadValueDetailArray && fluidsWithData.length > 1 && /*#__PURE__*/_react.default.createElement("div", { + }), dataLoadValueDetailArray && fluidsWithData.length > 1 && /*#__PURE__*/_react.default.createElement("div", { className: "total-card-container" }, dataLoadValueDetailArray.map(function (dataload, index) { return /*#__PURE__*/_react.default.createElement("div", { @@ -1164,7 +1173,7 @@ var TotalAnalysisChart = function TotalAnalysisChart(_ref) { }), /*#__PURE__*/_react.default.createElement("div", { className: "text-16-normal" }, t('FLUID.' + _fluid.FluidType[index] + '.LABEL'))); - })))); + }))))); }; var _default = TotalAnalysisChart; @@ -1191,6 +1200,8 @@ var _asyncToGenerator2 = _interopRequireDefault(__webpack_require__("yXPU")); var _slicedToArray2 = _interopRequireDefault(__webpack_require__("J4zp")); +var _core = __webpack_require__("TTf+"); + var _Loader = _interopRequireDefault(__webpack_require__("Ra/y")); var _cozyClient = __webpack_require__("SH7X"); @@ -1342,7 +1353,9 @@ var MonthlyAnalysis = function MonthlyAnalysis(_ref) { }, [loadAnalysis, scrollPosition]); return /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, loadAnalysis && /*#__PURE__*/_react.default.createElement("div", { className: "loaderContainer" - }, /*#__PURE__*/_react.default.createElement(_Loader.default, null)), !loadAnalysis && /*#__PURE__*/_react.default.createElement("div", { + }, /*#__PURE__*/_react.default.createElement(_Loader.default, null)), !loadAnalysis && /*#__PURE__*/_react.default.createElement(_core.Fade, { + in: !loadAnalysis + }, /*#__PURE__*/_react.default.createElement("div", { className: "analysis-root" }, /*#__PURE__*/_react.default.createElement("div", { className: "analysis-content" @@ -1375,7 +1388,7 @@ var MonthlyAnalysis = function MonthlyAnalysis(_ref) { className: "card" }, /*#__PURE__*/_react.default.createElement(_ElecHalfHourMonthlyAnalysis.default, { perfIndicator: performanceIndicators[_fluid.FluidType.ELECTRICITY] - }))))); + })))))); }; var _default = MonthlyAnalysis; @@ -1946,9 +1959,7 @@ var ProfileComparator = function ProfileComparator(_ref) { className: "analysis-graph" }, isLoading ? /*#__PURE__*/_react.default.createElement("div", { className: "loader-container" - }, /*#__PURE__*/_react.default.createElement(_Loader.default, { - color: "elec" - })) : /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, /*#__PURE__*/_react.default.createElement("div", { + }, /*#__PURE__*/_react.default.createElement(_Loader.default, null)) : /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, /*#__PURE__*/_react.default.createElement("div", { className: "consumption-title text-20-bold" }, /*#__PURE__*/_react.default.createElement("div", { className: "user-title" diff --git a/5/ecolyo.ccdaaf8fd4a55cd8ddf1.js b/5/ecolyo.d99b87866525e384f778.js similarity index 99% rename from 5/ecolyo.ccdaaf8fd4a55cd8ddf1.js rename to 5/ecolyo.d99b87866525e384f778.js index 54a9cbb6caf2790c6b03dc0bf38bcae48e77eb65..de6ab0bb7b9a1c936aebcedbc18056e130f09c51 100644 --- a/5/ecolyo.ccdaaf8fd4a55cd8ddf1.js +++ b/5/ecolyo.d99b87866525e384f778.js @@ -3784,7 +3784,7 @@ exports.push([module.i, "/** BLACK **/\n/** RED **/\n/** YELLOW **/\n/** ORANGE exports = module.exports = __webpack_require__("JPst")(false); // Module -exports.push([module.i, "/** BLACK **/\n/** RED **/\n/** YELLOW **/\n/** ORANGE **/\n/** BLUE **/\n/** GREEN **/\n/** WHITE **/\n/** GREY **/\n/** App colors **/\n/** TABS GRADIENT **/\n/** SCROLLBAR **/\n.fluidchart-root {\n background-color: #121212;\n padding: 0.5rem 2rem 1rem 2rem;\n}\n@media only screen and (max-width : 768px) {\n .fluidchart-root {\n padding: 0rem 1rem 1rem 1rem;\n }\n}\n\n.fluidchart-content {\n min-height: 29.5rem;\n}\n@media only screen and (max-width : 768px) {\n .fluidchart-content {\n min-height: 21.5rem;\n }\n}\n\n.fluidchart-footer {\n display: flex;\n align-items: center;\n justify-content: left;\n margin: auto;\n padding-top: 1.5rem;\n max-width: 45.75rem;\n}\n.fluidchart-footer .fluidchart-footer-label {\n color: #e0e0e0;\n}\n\n.compareLegend {\n padding: 0.5rem 0 1rem 0;\n display: flex;\n gap: 1rem;\n font-weight: 700;\n max-width: 45.75rem;\n margin: auto;\n}\n.compareLegend .electricity {\n color: #d87b39;\n}\n.compareLegend .electricity.compare {\n color: #e2bca1;\n}\n.compareLegend .gas {\n color: #45d1b8;\n}\n.compareLegend .gas.compare {\n color: #a8f7e9;\n}\n.compareLegend .water {\n color: #3a98ec;\n}\n.compareLegend .water.compare {\n color: #abd4fa;\n}\n.compareLegend .multifluid {\n color: #e3b82a;\n}\n.compareLegend .multifluid.compare {\n color: #ffd597;\n}\n.compareLegend div {\n display: flex;\n gap: 0.5rem;\n align-items: center;\n}\n\n.lastValidData {\n display: flex;\n flex-direction: column;\n align-items: center;\n text-align: center;\n}\n.lastValidData span.date {\n color: #e0e0e0;\n cursor: pointer;\n text-decoration: underline;\n}\n.lastValidData button {\n margin-top: 0rem !important;\n width: 70% !important;\n height: 40px !important;\n max-width: 22.5rem;\n}", ""]); +exports.push([module.i, "/** BLACK **/\n/** RED **/\n/** YELLOW **/\n/** ORANGE **/\n/** BLUE **/\n/** GREEN **/\n/** WHITE **/\n/** GREY **/\n/** App colors **/\n/** TABS GRADIENT **/\n/** SCROLLBAR **/\n.fluidchart-root {\n background-color: #121212;\n padding: 0.5rem 2rem 1rem 2rem;\n}\n@media only screen and (max-width : 768px) {\n .fluidchart-root {\n padding: 0rem 1rem 1rem 1rem;\n }\n}\n\n.fluidchart-content {\n min-height: 29.5rem;\n}\n@media only screen and (max-width : 768px) {\n .fluidchart-content {\n min-height: 21.5rem;\n }\n}\n\n.fluidchart-footer {\n display: flex;\n align-items: center;\n justify-content: left;\n margin: auto;\n padding-top: 1.5rem;\n max-width: 45.75rem;\n}\n.fluidchart-footer .fluidchart-footer-label {\n color: #e0e0e0;\n}\n\n.compareLegend {\n padding: 0 0 1rem 0;\n display: flex;\n gap: 1rem;\n font-weight: 700;\n max-width: 45.75rem;\n margin: auto;\n}\n.compareLegend .electricity {\n color: #d87b39;\n}\n.compareLegend .electricity.compare {\n color: #e2bca1;\n}\n.compareLegend .gas {\n color: #45d1b8;\n}\n.compareLegend .gas.compare {\n color: #a8f7e9;\n}\n.compareLegend .water {\n color: #3a98ec;\n}\n.compareLegend .water.compare {\n color: #abd4fa;\n}\n.compareLegend .multifluid {\n color: #e3b82a;\n}\n.compareLegend .multifluid.compare {\n color: #ffd597;\n}\n.compareLegend div {\n display: flex;\n gap: 0.5rem;\n align-items: center;\n}\n\n.lastValidData {\n display: flex;\n flex-direction: column;\n align-items: center;\n text-align: center;\n}\n.lastValidData span.date {\n color: #e0e0e0;\n cursor: pointer;\n text-decoration: underline;\n}\n.lastValidData button {\n margin-top: 0rem !important;\n width: 70% !important;\n height: 40px !important;\n max-width: 22.5rem;\n}", ""]); @@ -5619,7 +5619,10 @@ var FluidChart = function FluidChart(_ref) { }, /*#__PURE__*/_react.default.createElement(_FluidChartSwipe.default, { fluidType: fluidType, setActive: setActive - })), showCompare && currentTimeStep !== _timeStep.TimeStep.YEAR && /*#__PURE__*/_react.default.createElement(DisplayLegend, null)), /*#__PURE__*/_react.default.createElement(_TimeStepSelector.default, { + })), showCompare && currentTimeStep !== _timeStep.TimeStep.YEAR && /*#__PURE__*/_react.default.createElement(_core.Slide, { + direction: "right", + in: showCompare + }, DisplayLegend())), /*#__PURE__*/_react.default.createElement(_TimeStepSelector.default, { fluidType: fluidType }), currentTimeStep !== _timeStep.TimeStep.YEAR && /*#__PURE__*/_react.default.createElement("div", { className: "fluidchart-footer", diff --git a/6/ecolyo.ad72db6c65430f444071.js b/6/ecolyo.00b7bb572cf6a542f328.js similarity index 99% rename from 6/ecolyo.ad72db6c65430f444071.js rename to 6/ecolyo.00b7bb572cf6a542f328.js index 59c9e8cead3f2fbd65807e39381e4ec5f4122d96..84e5bcf2e10d4d01feafc488a5d0bcdca8ccdbfe 100644 --- a/6/ecolyo.ad72db6c65430f444071.js +++ b/6/ecolyo.00b7bb572cf6a542f328.js @@ -955,7 +955,9 @@ var EcogestureList = function EcogestureList(_ref) { className: "ecogesture-root" }, /*#__PURE__*/_react.default.createElement("div", { className: "efficiency-button-content" - }, displaySelection ? /*#__PURE__*/_react.default.createElement("div", { + }, displaySelection ? /*#__PURE__*/_react.default.createElement(_core.Grow, { + in: displaySelection + }, /*#__PURE__*/_react.default.createElement("div", { className: "selection text-16-normal" }, /*#__PURE__*/_react.default.createElement("span", null, t('ecogesture.selection')), /*#__PURE__*/_react.default.createElement("span", null, "(".concat(selectionViewed, " ").concat(t('ecogesture.selection_2'), " ").concat(selectionTotal, ")")), /*#__PURE__*/_react.default.createElement(_Button.default, { "aria-label": t('ecogesture.accessibility.button_selection'), @@ -966,7 +968,9 @@ var EcogestureList = function EcogestureList(_ref) { onClick: function onClick() { return navigate('/ecogesture-selection'); } - }, t('ecogesture.button_selection'))) : /*#__PURE__*/_react.default.createElement("div", { + }, t('ecogesture.button_selection')))) : /*#__PURE__*/_react.default.createElement(_core.Grow, { + in: !displaySelection + }, /*#__PURE__*/_react.default.createElement("div", { className: "filters text-16-normal" }, /*#__PURE__*/_react.default.createElement("div", { className: "filter-button", @@ -1024,7 +1028,7 @@ var EcogestureList = function EcogestureList(_ref) { icon: _check.default, size: 13 }))); - }))))), /*#__PURE__*/_react.default.createElement("div", { + })))))), /*#__PURE__*/_react.default.createElement("div", { className: "ecogesture-content" }, renderEcogestureContent(), !displaySelection && handleReinitClick && /*#__PURE__*/_react.default.createElement(_Button.default, { onClick: handleReinitClick, diff --git a/app/ecolyo.c233854fc59a5d2e094e.js b/app/ecolyo.012756ab128fed45ade9.js similarity index 99% rename from app/ecolyo.c233854fc59a5d2e094e.js rename to app/ecolyo.012756ab128fed45ade9.js index ecf41b70fa2db63a77693c7ef63b4dcd99da4f23..e03b20e27c5435b2a8c87da82dd904b0badf9ee0 100644 --- a/app/ecolyo.c233854fc59a5d2e094e.js +++ b/app/ecolyo.012756ab128fed45ade9.js @@ -64,7 +64,7 @@ /******/ /******/ // script path function /******/ function jsonpScriptSrc(chunkId) { -/******/ return __webpack_require__.p + "" + ({}[chunkId]||chunkId) + "/ecolyo." + {"1":"415fd625cd64389d9c8d","3":"fa2723ff444c1a46bf69","4":"c76888d97f431150c7d1","5":"ccdaaf8fd4a55cd8ddf1","6":"ad72db6c65430f444071","7":"1abe158dc55e2f003411","8":"a9363dc7eb1de5bcc528","9":"d41ce4d7fb2ce55b5111","10":"24e1a14cab96b50d3fbd"}[chunkId] + ".js" +/******/ return __webpack_require__.p + "" + ({}[chunkId]||chunkId) + "/ecolyo." + {"1":"415fd625cd64389d9c8d","3":"dc910e7784d10a6898bb","4":"c76888d97f431150c7d1","5":"d99b87866525e384f778","6":"00b7bb572cf6a542f328","7":"1abe158dc55e2f003411","8":"a9363dc7eb1de5bcc528","9":"d41ce4d7fb2ce55b5111","10":"24e1a14cab96b50d3fbd"}[chunkId] + ".js" /******/ } /******/ /******/ // The require function diff --git a/index.html b/index.html index 3e12b047a205ecadbaf69eb882f3e757fb45b92b..15c0e10e4791409a55fd8e700cb9c2a0cf8a3239 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.69beab954af56959f24c.js"></script><script src="app/ecolyo.c233854fc59a5d2e094e.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.69beab954af56959f24c.js"></script><script src="app/ecolyo.012756ab128fed45ade9.js"></script></div></body></html> \ No newline at end of file